一種lt編解碼算法的dsp硬體實現方法
2023-06-08 04:26:11
專利名稱:一種lt編解碼算法的dsp硬體實現方法
技術領域:
本申請涉及一種基於DSP技術實現LT編解碼算法的方法,該方法可以廣泛的運用於有線數字通訊,數字存儲,多源下載等技術領域。
背景技術:
隨著信息技術的高速發展,傳統的TCP/IP協議由於數據傳輸時延較大,並不適合網際網路中大容量信息的實時傳輸,因此研究學者提出了糾刪編碼技術。即發送端把需要傳輸的#個源信息包通過編碼,整合成#個編碼包,通過網絡發送出去。接收端接收到這個# 個編碼包中的任意#個編碼包就能使用特定的解碼方法以很高的概率重構這^個源信息包。1998年Bayers等提出了一類新的糾刪碼一Fountain碼。它具有魯棒性和可靠性, 且可以在無反饋信道下,以任意的碼率傳輸數據,從而簡化了網絡中數據的傳輸方式,使其得成為一類適用於可靠通信的有效編碼技術,在遠距離,大容量的實時傳輸中具有廣闊的應用前景。2003年Lucy提出了第一類Fountain碼,也是第一類碼率不受限制的碼一LT碼。 LT碼對於具有不同刪除概率的各種刪除信道均是逼近最優的1。由於LT碼的諸多優點, LT碼被認為是適用於可靠多播傳輸、多源下載、數據存儲和無線協作傳輸等應用方向最有前途的編碼技術,在國際上掀起了一場LT碼的研究熱潮。近些年,隨著信息技術地高速發展,人們迫切地需要將各種先進的編碼技術引入實際運用。由於DSP技術精度高,速度快,成本低,靈活性強,可靠性好的特點,DSP技術被越來越多了運用於信道編碼技術中。通過研究,Turbo碼,卷積碼[3],LDPCH M等大部分早期碼的編解碼器都通過DSP等技術得以實現。但由於DSP晶片的處理能力和內存空間都十分有限,使用DSP技術實現LT碼編解碼器必須要解決兩個難題1)如何設計編解碼算法, 簡化程序,減少CPU負擔;2)如何建立信息儲存機制,存儲度鄰接信號表,合理利用DSP晶片片上內存資源。
發明內容
本發明為解決上述技術問題,提供一種設計使用TI公司的TMS320VC54146晶片, 便捷地實現LT編解碼算法,並且提高算法效率,充分減少DSP晶片片上內存使用量的一種 LT編解碼算法的DSP實現方法。本發明為解決上述技術問題所採用的技術方案是一種LT編解碼算法的DSP硬體實現方法,包括異步串行通信收發器、TMS320VC5416晶片、FIASH晶片、電源調節器晶片、LT 編碼器和解碼器,採用異步串行通信收發器來實現異步數據傳輸,使用電源調節器晶片給 TMS320VC5416晶片供電,使用FIASH晶片保存編解碼程序段,LT解碼器從異步串行通信收發器接收到編碼信號後進行解碼,解碼過程中LT解碼器通過通訊信道發送反饋信息給LT 編碼器,控制LT編碼器的工作;步驟一、LT編碼器從通訊信道中接收到A個源信號,確定首次生成編碼信號的數量 Ar=L 05 Xk ;
步驟二、根據魯棒弧波分布確定編碼信號的度分布率V (幻,根據V (k)將時隔
劃分成非重複不等間隔的A個子時隔,一個子時隔對應一個不同的度值,使用C語言內部函數生成
區間的隨機數列,根據隨機數列中第i項的值確定第i個編碼信號的度值d,.; 步驟三、使用函數生成
區間長度屯為的隨機數列{adi},取出第ai(i=l,2,…,(Ii) 個源信號做為該編碼信號的度鄰接信號,異或運算得到編碼信號e,.;
步驟四、重複步驟二和步驟三,生成#個編碼信號,通過通信信道發送;
步驟五、解碼器接收到所有的編碼信號後,根據預先在編碼器和解碼器設立的seed 表,確定seed值,進而得到編碼信號的度和度鄰接信號表,將編碼信號及其度鄰接信號表分別存儲於數據鍊表L1和L2中;
步驟六、尋找度為I的編碼信號開始進行解碼,當編碼信號被釋放後,刪除存儲該編碼信號的數據鍊表L1中節點,及存儲其度鄰接信號表的數據鍊表L2中節點,重複以上操作至度為I的編碼信號耗盡;
步驟七、如源信號未被完全恢復,則生成反饋控制信號ACK=I,反饋到編碼器,編碼器在接收到ACK=I信號後,重複步驟二至步驟四,添加生成Ar=O. OlXA個編碼信號;
步驟八、解碼器接收到所有的新編碼信號後進行冗餘信息處理,將已恢復源信號的信息更新至所有的新編碼信號及其度鄰接信號表中,繼續進行解碼,重複步驟五至步驟七,至源信號被完全恢復停止處理。本發明的優點使用反饋控制信號ACK,實現根據編碼器實際需要生成最少數量編碼信號的功能,簡化LT編碼過程。使用C語言內部函數生成隨機數列,改善編碼信號的度和度鄰接信號的隨機選擇效果。建立二進位位儲存機制、構建數據鍊表,不但縮小儲存信息所需的DSP晶片片上內存空間,還方便信息的添加和刪除。引入冗餘信息處理程序,剔除編碼信號的冗餘,提高了解碼效率。
圖I是本發明的系統硬體結構框圖2是本發明的LT編碼算法的軟體流程圖3是本發明的LT解碼算法的軟體流程圖4是本發明的度鄰接信號表存儲機制示意圖。具體實施方法
下面結合附圖對本發明的一種LT編解碼算法的DSP硬體實現方法進行說明。一種LT編解碼算法的DSP硬體實現方法,包括異步串行通信收發器、 TMS320VC5416晶片、FIASH晶片、電源調節器晶片、LT編碼器和解碼器,採用異步串行通信收發器來實現異步數據傳輸,使用電源調節器晶片給TMS320VC5416晶片供電,使用FIASH 晶片保存編解碼程序段,LT解碼器從異步串行通信收發器接收到編碼信號後進行解碼,解碼過程中LT解碼器通過通訊信道發送反饋信息給LT編碼器,控制LT編碼器的工作。如圖I所示,在編碼器中,源信號通過串口(RS232接口)傳入晶片。由於數據採用異步傳輸,可以採用DSP的McBSP結合DMA,在不擴展硬體的情況下,用軟體實現異步數據傳輸。但該方法軟體設計複雜,加大了 CPU的負擔,因此添加TI公司的TL16C550異步串行通信收發器來實現異步數據傳輸。使用TI公司的雙路低壓差電源調節器晶片TPS767D301給TMS320VC5416晶片提供1.6V的工作電壓。使用TI公司的FIASH晶片AM29LV800保存編解碼程序段,以便在系統啟動時將編 (譯)碼程序裝載進DSP內部DARAM運行。下面結合附圖對本發明的一種LT編碼算法的DSP軟體實現方法進行說明。如圖 2所示,其具體步驟如下
步驟一、使用反饋控制信號ACK,ACK由解碼器判定生成,控制編碼信號的生成,初值設定為ACK=0。當解碼器中源信號未被完全恢復時,解碼器生成ACK=1,反饋到編碼器;當解碼算法結束,ACK=O,編碼器停止工作,LT編解碼結束。步驟二 .編碼器從通訊信道中異步接收到A個源信號,確定生成編碼信號的數量 Ar=L 05X左。步驟三、根據魯棒弧波分布確定編碼信號的度分布率// (幻,根據//⑷將時隔
劃分成非重複不等間隔的々個子時隔,一個子時隔對應一個不同的度值。例如 O. O、(I)對應度值1,P U) U (i+1)對應度值iW。步驟四、使用srand函數設置隨機數發生器的初始化種子Seed=S115使用rand函數生成
區間長度為#的隨機數列。確定隨機數列中第i項值所處的子時隔,根據對應關係確定第i個編碼信號的度值式。步驟五、設置隨機數發生器的初始化種子Seed=S2(S1-S2),生成[0,幻區間長度為 Cli的不重複隨機數列{adi}。步驟六、取第ai(i=l,2,…,(Ii)個源信號做為該編碼信號的度鄰接信號。異或運算得到該編碼信號ei;通過通訊信道發送。步驟七.當編碼器接收到ACK=I信號時,生成Ar=O. 01 X左個編碼信號。記#為添加編碼信號的次數,r為已生成的編碼信號的數量,#初值位隊編碼器每次接收到Ack=I信號#自動加I。TM. 05X左+⑷-口 X0. 01 X左。步驟八、重複步驟三,生成
區間長度為I. 05XWXO. OlX左的隨機數列,確定隨機數列中第r+i項值所處的子時隔,根據對應關係確定新加的第i個編碼信號的度值步驟九、記前T1個編碼信號的度值總和為η。步驟十、生成
內容得到編碼信號的度和度鄰接信號表。
採用二進位位存儲機制將編碼信號及其度鄰接信號表分別存儲於數據鍊表U、L2 中。為了減少DSP晶片片上內存使用量,提高DSP晶片解碼效率。採用二進位位存儲機制將度鄰接信號表分別存儲於整形數組中,即在16bit的整型數據中存儲16位度鄰接信號信息。然後構建數據鍊表,將每一個度鄰接信號表存儲於數據鍊表節點上,方便信息地插入和刪除。如附圖4所示。對度鄰接信號表信息進行更新操作通過位操作實現。為方便操作,定義兩個位置參數A和7,對於度鄰接信號表第i位
A=i/16 ;7=i%16o對度鄰接信號表第i位進行操作,只需對整型數組中第A個元素的第7位進行位操作。例如將度鄰接信號表的第35位置I,需將整型數組中的第個元素與0x0004進行按位或運算。步驟二、尋找度為I的編碼信號~開始進行解碼。將^.值賦予其唯一的度鄰接信號&,釋放力。當編碼信號被釋放後,刪除存儲該編碼信號的數據鍊表L1中節點。此時存儲其度鄰接信號表的數據鍊表L2中節點內為無用信息(全零整形數組),也將此節點刪除。將&與度鄰接信號表第J位為I的編碼信號進行異或運算,並將該編碼信號度鄰接信號表第J位置O,源信號&恢復成功。步驟103.重複以上步驟,至度為I的編碼信號耗盡。如源信號未被完全恢復,則生成反饋控制信號ACK=I,編碼器添加編碼信號。當ACK=I時,解碼程序已經恢復了部分源信號,數據鍊表L1, L2節點帶冗餘信息,需要進行處理.
則將該編碼信號與源信號Si進行異或運算,並將其度鄰接信號表的第i位置O。重複上述操作,至#個新編碼信號及其度鄰接信號表都得到處理,刪除冗餘信息,提高節點攜帶信息質量。重複解碼算法步驟101,102至源信息被完全恢復,解碼過程結束。本發明解決了解碼器根據實際情況生成最少數量編碼信號的問題,減少了編碼器不必要的工作,降低了編碼器的功耗。使用C語言內部函數對編碼信號的度和度鄰接信號進行隨機選擇,改善了兩者的隨機選擇效果,提高了 LT編解碼算法效率。本發明採用二進位位存儲機制將度鄰接信號表儲存於整形數組中,再構建數據鍊表,不但減小了 DSP晶片片上內存空間的使用量,而且方便信息的添加和刪除,簡化了 LT解碼過程。引入冗餘信息處理程序,剔除了編碼信號中的冗餘,提高節點攜帶信息的質量,一定程度上加快了解碼算法。以上僅為本發明的優選實施方案,並不用於限制本發明,對於本領域的技術人員來說,本發明可以有任何更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
1.一種LT編解碼算法的DSP硬體實現方法,其特徵在於包括異步串行通信收發器、 TMS320VC5416晶片、FIASH晶片、電源調節器晶片、LT編碼器和解碼器,採用異步串行通信收發器來實現異步數據傳輸,使用電源調節器晶片給TMS320VC5416晶片供電,使用FIASH 晶片保存編解碼程序段,LT解碼器從異步串行通信收發器接收到編碼信號後進行解碼,解碼過程中LT解碼器通過通訊信道發送反饋信息給LT編碼器,控制LT編碼器的工作;步驟一、LT編碼器從通訊信道中接收到A個源信號,確定首次生成編碼信號的數量 Ar=L 05 Xk ;步驟二、根據魯棒弧波分布確定編碼信號的度分布率V (幻,根據V (k)將時隔
劃分成非重複不等間隔的A個子時隔,一個子時隔對應一個不同的度值,使用C語言內部函數生成
區間的隨機數列,根據隨機數列中第i項的值確定第i個編碼信號的度值d,.; 步驟三、使用函數生成
區間長度屯為的隨機數列{adi},取出第ai(i=l,2,…,(Ii) 個源信號做為該編碼信號的度鄰接信號,異或運算得到編碼信號e,.;步驟四、重複步驟二和步驟三,生成#個編碼信號,通過通信信道發送;步驟五、解碼器接收到所有的編碼信號後,根據預先在編碼器和解碼器設立的seed 表,確定seed值,進而得到編碼信號的度和度鄰接信號表,將編碼信號及其度鄰接信號表分別存儲於數據鍊表L1和L2中;步驟六、尋找度為I的編碼信號開始進行解碼,當編碼信號被釋放後,刪除存儲該編碼信號的數據鍊表L1中節點,及存儲其度鄰接信號表的數據鍊表L2中節點,重複以上操作至度為I的編碼信號耗盡;步驟七、如源信號未被完全恢復,則生成反饋控制信號ACK=I,反饋到編碼器,編碼器在接收到ACK=I信號後,重複步驟二至步驟四,添加生成#=0. 01 XA個編碼信號,通過通信信道發送;步驟八、解碼器接收到所有的新編碼信號後進行冗餘信息處理,將已恢復源信號的信息更新至所有的新編碼信號及其度鄰接信號表中,繼續進行解碼,重複步驟五至步驟七,至源信號被完全恢復停止處理。
全文摘要
一種LT編解碼算法的DSP硬體實現方法,包括異步串行通信收發器、TMS320VC5416晶片、FIASH晶片、電源調節器晶片、LT編碼器和解碼器,採用異步串行通信收發器來實現異步數據傳輸,使用電源調節器晶片給TMS320VC5416晶片供電,使用FIASH晶片保存編解碼程序段,LT解碼器從異步串行通信收發器接收到編碼信號後進行解碼,解碼過程中LT解碼器通過通訊信道發送反饋信息給LT編碼器,控制LT編碼器的工作,便捷地實現LT編解碼算法,並且提高算法效率,充分減少DSP晶片片上內存使用量的一種LT編解碼算法的DSP實現方法。
文檔編號H04L1/00GK102594504SQ201210027330
公開日2012年7月18日 申請日期2012年2月8日 優先權日2012年2月8日
發明者師春靈, 師歌, 胡俊宏, 謝澤峰, 邵鴻翔, 高宏峰 申請人:河南科技大學