陳孫陽 ,陳穎琪 ,王 慈
(1.上海交通大學 電子工程系 圖像通信與信息處理研究所,上海 200240;2.上海市數字媒體處理與傳輸重點實驗室,上海 200240)
視頻監控系統在工業控制、保密通信、公共安全、道路交通等領域得到越來越廣泛的應用。監控視頻的傳輸主要有兩種方式:有線傳輸和無線傳輸。無線信道固有的隨機性以及宇宙射線、工業火花、雷電等對無線信道的干擾,無線信道中同時存在隨機錯誤與突發錯誤。不等差錯保護機制根據視頻流分層的重要性以及信道狀況,對不同的數據提供不同的保護級別,提高糾錯性能的同時更為有效地利用了信道帶寬。
文獻[1]提出了基于分層編碼和OFDM的不等差錯保護方案,文獻[2]提出了基于Reed-Solomon編碼的不等差錯保護方案。然而,前者僅僅考慮了視頻流不同分層的權重因子而未考慮實際信道狀況,因此不能用于要求自適應能力的信道編碼;后者能夠糾正大部分的隨機錯誤和一定程度的突發錯誤,但是當信道連續惡化造成大面積的突發錯誤時,該方案的糾錯容限就無能為力了。為了同時糾正信道中的隨機錯誤和突發錯誤,筆者提出了多級RS編碼器(Multi-level RS Encoder)與信道交織器級聯的方案。為了有效地利用信道帶寬傳輸碼流數據或者實現雙方的保密通信,本系統能在MCU的控制下實時地改變信道糾錯編碼保護級別和傳輸碼率。
現有的差錯控制編碼分為兩大類:分組編碼和卷積編碼。Reed-Solomon編碼是一種分組碼、系統碼和線性、循環碼,能夠高效地糾正信道中出現的突發錯誤。RS碼憑借其優異的性能和折中的實現復雜度,在電視廣播中得到了廣泛應用,如 DVB-T 中的 RS(204,188)。
為了實現不等差錯保護機制,設計了4個糾錯級別的 RS 碼,分別是 RS(255,239),RS(255,223),RS(255,191)和RS(255,255)。系統控制端根據信道狀況指定每一個數據包的編碼保護級別[4],在信道情況較好時選擇RS(255,239)或 RS(255,255),在信道情況較差時選擇最高編碼保護級別的RS(255,191)。為了通信雙方的保密性,控制器可以隨機選擇編碼保護級別,這種隨機選擇算法大大增加了潛在竊聽者識別信息包的難度,即使截獲了某個信息包,在不知道包頭信息含義的情況下也毫無意義。
根據重要性、信道狀況或者是保密通信的需要,將原始碼流分割為191,223,239和255這4種不同長度的數據包,如圖1中標號①所示。每個數據包的包頭指示當前數據包的編碼保護級別,MRSE模塊根據該信息確定當前包采用何種級別的RS編碼。

各個RS編碼器的輸出端都是255 byte的數據包。當采用RS(255,191)時,在一個數據包里最多允許有64個錯誤符號。當錯誤超過64個符號時,整個信息包無效。無線信道里因為存在雷電、工業火花等干擾而引起的突發錯誤,很有可能使得差錯符號超出上述基于RS編碼的UEP系統的糾錯容限。為了進一步提高系統的整體容錯性能,增加了一級數據交織模塊,將突發錯誤離散化。
數據交織時,將184個255 byte的數據包組成一個內部數據幀(frame)。交織器按照行的順序將RS數據包寫入內部Buffer,當Buffer中填滿一幀的數據后,控制邏輯按照列的順序讀出Buffer中數據,并在每列數據的前面加入包頭信息。數據幀定義和數據交織過程如圖1中標號②所示。
上述的數據交織模塊根據交織算法的要求,輸入端的數據包按照行的順序寫入幀緩存,輸出端按照列的順序輸出數據包,并加入包頭信息,形成長度為188 byte的新數據包。因為第一級數據包(255 byte)的前4個字節為包頭信息,因此,在按照列的順序輸出數據時,前4列的數據對應于交織器Buffer中數據的所有包頭信息。如果這4個包發生錯誤的話,幀緩存中的信息包就不能正確地得到譯碼。為了進一步保護這些包頭信息,再級聯一個 RS(204,188)編碼器,將交織后的 188 byte的數據包編碼為204 byte的數據包。本級RS編碼后的碼流如圖1中標號③所示。實際上,RS(204,188)編碼器的實現和RS(255,239)完全一樣,并沒有增加系統的設計復雜度。
MCU對Host IF模塊中的寄存器進行配置,并將編碼后的視頻流分成含分割指示信息的原始數據包,原始數據包的長度可以為 4 種模式 191,223,239,255,MCU可以根據當前的信道情況或者保密通信的要求將視頻流分割成上述的長度后發送到Host IF模塊。
Host IF模塊作為FPGA端接口模塊,緩存來自MCU的32 bit的數據流,提取包頭信息,加入負荷符號位后組成待編碼信息包發送到MRSE模塊進行不同保護級別的RS編碼。HOST IF中包括了一個深度為256 byte的異步FIFO用于緩存MCU模塊發送的異步數據。

圖2 系統整體設計框圖
MRSE模塊為本系統的核心算法模塊,提供4個級別的差錯保護編碼。其內部包含了4個并行的RS編碼器,同時給上一級模塊提供了選通邏輯。
Data Interleave模塊對經過不同保護級別RS編碼后的數據進行交織處理,將184個長度為255 byte的數據包變換255個長度為188 byte的數據包,其中188 byte的前4 byte為交織器加入的包頭信息。
RS(204,188)模塊對交織后的 188 byte的數據包進行第2級的RS編碼,進一步保護了原始數據包的包頭信息和信息符號位。
Channel Adapter模塊緩存來自前端的數據包,在信道工作時鐘下發送數據包(204 byte)給調制模塊,同時將當前的信道情況反饋給數據交織模塊。
RS編碼器實現的關鍵在于乘法器的實現方式,RS編碼器的數學運算基于Galois域,傳統的Galois全乘器有著實現方式過于復雜、面積占用多等缺點,因此有必要設計高效的Galois乘法器。
當本原多項式確定了之后,生成多項式的系數就確定了,亦即編碼過程中用到的乘法系數就固定了。根據Galois域上運算的定義,Galois域上的乘運算可以轉化為位異或運算[3],這個轉換過程可以通過高級編程語言將乘系數所對應的參與位異或運算的位找出來。
本系統采用GF(28)上的RS編碼器,它的本原特征多項式為

生成多項式為

由于RS編碼器采用了專用乘法器實現,單個RS編碼器的資源占用已經大為降低,本方案采用了3個并行的RS編碼器和一個直通通路構成的RS(255,255)編碼器,實現4個不同等級的差錯保護。采用3個并行RS編碼器構建多級RS編碼器的優點是前面模塊能夠快速選通相應級別的編碼器,而不需要等待很多時鐘周期的配置時間。
為了處理連續的數據流,交織器模塊包含了2塊RAM,實現數據流的乒乓操作。當第一塊RAM填滿數據后,交織器的輸入端將新進的數據包填入第二塊RAM,同時交織器中的輸出控制模塊開始逐列讀出第一塊RAM中的有效數據,同時加入包頭信息后形成188 byte的數據包。當第二塊RAM 中填滿數據后,新進的數據包又開始填入第一塊中,同時,輸出控制模塊開始逐列讀出第二塊中的有效數據,加入包頭信息形成188 byte的數據包。總之,交織器控制模塊按照這種乒乓操作的方式處理進來的每個數據包。
CPU的數據寬度為32 bit,工作頻率為60 MHz;后續基于FPGA實現的編碼器、交織器的數據寬度為8 bit,工作頻率要求根據不同的應用配置為不同的值。因此需要設計一個接口模塊對它們之間的數據流進行變換。Host IF模塊中含有若干個寄存器,可以對系統的工作環境進行配置,如對復位寄存器進行一次寫操作能實現系統的軟復位。接口模塊中還包括了一個寬度為32 bit、深度為256 byte的異步FIFO用于緩存數據包。當FIFO達到半滿狀態時,啟動讀控制模塊,按照輸出端時序的要求讀出FIFO中的數據,具體是在FPGA主工作時鐘下,每4個周期讀出FIFO中的一個數據(32 bit),讀控制模塊將其拆分4個8 bit的數據,然后發送到MRSE模塊。
信道的工作時鐘比系統處理時鐘低,為了將處理后的數據包(長度為204 byte)發送給后續的調制模塊(圖中未畫出),采用一塊寬度為8 bit、深度為256 byte的FIFO緩存數據[5]。FIFO近空時向前級數據交織模塊發送讀請求,將新的一個數據包讀入本模塊FIFO中。信道適配模塊的讀控制邏輯在信道時鐘要求的速率下連續輸出最終的數據。
整體系統采用Verilog HDL編寫RTL代碼,通過了功能仿真與時序仿真。整體設計在Xilinx ISE 10.1綜合后的頻率是158.03 MHz,布局布線后的頻率為104.5 MHz,在 Virtex-4 XC4VLX100 里僅占用 1 378 個 Slice,即僅占用2.8%的Slice(1 378/49 152)。在基于Virtex-4 XC4VLX100的FPGA自主開發版上實現了D1規格的視頻流的信道編碼。
假設FPGA的工作時鐘為10 MHz,系統能達到的碼率可以這樣計算

由以上計算可知,當FPGA工作在10 MHz時,本系統提供了54 Mbit/s的碼率,能夠較好地支持現有的全高清(Full-HD)編碼視頻流。表1給出了CIF與D1兩種視頻監控采用的主流規格對應的碼率和信道編碼工作頻率,可與Full-HD進行對比。

表1 視頻規格與信道編碼工作頻率
提出了一種將多級RS編碼與交織器級聯的不等差錯保護方案用于傳輸編碼后的視頻流。多級RS編碼器較好地糾正信道中的隨機錯誤。同時,級聯的交織器將信道中的突發錯誤離散化,進一步提高了該系統的整體糾錯能力。理論分析及實驗結果表明,本實現方案能夠對視頻監控的D1碼流進行信道編碼,同時能夠支持Full-HD視頻流的信道編碼。
[1]郭東亮,吳樂南.基于分層編碼和OFDM的不等差錯保護[J].電路與系統學報,2003,8(2):18-22.
[2]楊海明,趙明生.多媒體會議中圖像通信的不等差錯保護技術實現[J].電視技術,2004,28(6):80-82.
[3]SHU L,COSTELLO D J.差錯控制編碼[M].晏堅,何元智,等譯.北京:機械工業出版社,2007.
[4]FANG T,CHAU L P.A novel unequal error protection approach for error resilient video transmission[J].IEEE International Symposium on Circuits and Systems,2005,4:4022-4025.
[5]HUANG C,LIANG S.Unequal error protection for MPEG-2 video transmission over wireless channels[J].IEEE Trans. Signal Processing Image Communication,2004,19:67-69.