文獻標識碼: A
文章編號: 0258-7998(2012)09-0039-03
AVS作為新一代音視頻編碼標準[1],,2006年正式被批準為國家標準,。AVS視頻編碼標準兼顧了性能與實現(xiàn)復雜度之間的矛盾,,代表了國際先進水平。目前AVS解碼器和解碼芯片已經有了比較成熟的發(fā)展,,但AVS編碼器仍處于研究階段,,市場還未產業(yè)化。FPGA平臺擁有豐富的寄存器資源和邏輯資源,,其并行執(zhí)行的硬件實現(xiàn)方式可以滿足大量的高速電子線路設計需求,,能實現(xiàn)復雜的數(shù)字視頻信號處理,是硬件實現(xiàn)的最佳選擇之一,。
本文對AVS編碼I幀算法進行深入研究,,根據(jù)FPGA硬件特點[2],實現(xiàn)了AVS的全I幀實時編碼,。以宏塊為單元,,考慮到占用資源和運行速度兩方面的限制,采用適當?shù)膹陀眉夹g和流水線技術對系統(tǒng)進行了優(yōu)化,,保證了流水線的高效運行以及硬件資源的最優(yōu)利用,。
1 系統(tǒng)設計
本設計基于FPGA平臺完成CIF分辨率圖像的實時采集、AVS全I幀壓縮編碼和網絡傳輸,,主要由視頻采集系統(tǒng),、數(shù)據(jù)調度系統(tǒng)、I幀編碼系統(tǒng)和以太網傳輸系統(tǒng)構成,,其實現(xiàn)框圖如圖1所示,。
視頻采集系統(tǒng)主要完成將復合視頻解碼成YUV(4:2:0)數(shù)字視頻,為AVS 全I幀編碼準備好視頻數(shù)據(jù),。
數(shù)據(jù)調度系統(tǒng)主要完成向I幀編碼系統(tǒng)提供原始數(shù)據(jù),,同時將編碼后的碼流傳輸?shù)揭蕴W傳輸系統(tǒng)。視頻數(shù)據(jù)吞吐量大,、帶寬高,,涉及到低速存儲器(如DDR)和高速存儲器(如FPGA內部RAM)之間大量的數(shù)據(jù)交換,成功的數(shù)據(jù)調度策略是實現(xiàn)實時編碼的關鍵技術之一,。
I幀編碼系統(tǒng)主要完成AVS視頻I幀實時編碼,,整個系統(tǒng)使用硬件描述語言獨立設計完成。
以太網傳輸系統(tǒng)主要完成對AVS碼流的打包,,并將其傳輸?shù)絇C機,。本系統(tǒng)包含實驗室設計的以太網控制器IP核和網絡傳輸協(xié)議IP核。
PC機上的AVS播放器采用DirectShow架構,,基于本實驗室完成的AVS解碼器設計了AVS實時播放器,,用來驗證AVS編碼系統(tǒng)的實時編碼能力。
2 數(shù)據(jù)采集與數(shù)據(jù)交換
前端視頻采集模塊采用TVP5150PBS視頻解碼器將輸入的PAL視頻信號轉換成數(shù)字YUV(4:2:0)信號,輸出格式為ITU-R BT.656,。
系統(tǒng)上電后,,F(xiàn)PGA通過IIC總線對TVP5150解碼器進行初始化配置;接通復合視頻信號后,,TVP5150即可正確輸出8 bit數(shù)字YUV視頻信號至FPGA,。由于接收的視頻信號為ITU565格式,視頻信息僅由8 bit視頻信號組成,,沒有獨立的行,、場同步信息,所以,,F(xiàn)PGA需要從接收的8 bit視頻信號中提取行場同步信號,并將相鄰8 bit數(shù)據(jù)(亮度,、色差信號)轉換成16 bit視頻信號,。
轉換后的16 bit視頻信號經DDR SDRAM控制器寫入到外部DDR SDRAM存儲器中,系統(tǒng)采用的DDR SDRAM存儲器容量為16 M×16 bit,,利用迸發(fā)模式,,將接收的一行視頻信號存儲到DDR SDRM的一行,則一幀視頻信號可存儲在DDR SDRAM的一個Bank空間,。
3 I幀編碼系統(tǒng)整體設計
根據(jù)AVS I幀編碼算法的特點,,將I幀編碼系統(tǒng)的整體設計[3]分為幀內預測模塊、變換量化模塊和熵編碼模塊,,再加上殘差,、重構和寫CBP等一些外圍電路,即可實現(xiàn)AVS全I幀的編碼,。整體設計框圖如圖2所示,。
幀內預測模塊主要完成從鄰近宏塊的重構數(shù)據(jù)中獲取用于當前宏塊預測的參考數(shù)據(jù),并完成對8×8塊的預測,,得到預測數(shù)據(jù)和預測模式,。
變換量化模塊主要完成DCT變換、量化,、反量化和反DCT變換,。輸出的量化數(shù)據(jù)經過Z掃描后進行熵編碼,輸出編碼碼流,;反DCT變換后的數(shù)據(jù)與預測數(shù)據(jù)相加,,得到子宏塊的重構數(shù)據(jù),重構數(shù)據(jù)反饋給幀內預測模塊進行下一個子宏塊的預測,。
熵編碼模塊主要完成Z掃描和變長編碼,。對掃描后的數(shù)據(jù)進行全零判斷,得到該宏塊的CBP值。變長編碼后的碼流前面加上寫入的CBP信息,,組成一個宏塊的編碼碼流,,編碼碼流8 bit對齊放到RAM中。
4 I幀編碼模塊設計
對AVS全I幀編碼設計時,,需充分考慮FPGA硬件平臺的特點,,整個系統(tǒng)使用硬件描述語言獨立設計完成。
4.1 幀內預測模塊
幀內預測模塊[4]以宏塊為單元,,主要包括參考樣本獲取和預測兩部分,。首先在預測前要從鄰近宏塊中獲取進行16×16宏塊預測時所需要的上面25個數(shù)據(jù)和前一個宏塊重構的最右列16個數(shù)據(jù)。子宏塊的預測數(shù)據(jù)經變換量化模塊后,,從重構數(shù)據(jù)中提取下一個子宏塊預測所需的邊界數(shù)據(jù),。輸出的預測數(shù)據(jù)與子宏塊編碼前原始數(shù)據(jù)相減,得到的殘差數(shù)據(jù)給變換量化模塊,。輸出最佳預測模式給寫CBP模塊,。
算法采用多種預測模式并行執(zhí)行,一個時鐘預測一個像素,,并對預測完的一個像素計算一次絕對值差,,每次時鐘都會將SAD累加,64個時鐘就能將預測和計算SAD同時完成,。所有可用預測模式并行完成后,,進行模式判決模塊,比較所有模式下SAD的最小值,,選出最佳預測模式并輸出對應的預測數(shù)據(jù),。本算法共享公共運算單元和多級流水線操作,資源利用率高,,并且兼顧了處理速度和實現(xiàn)代價,。
用ModelSim進行仿真的結果如圖3所示,信號sum_v,、sum_h,、sum_dc、sum_dc_left,、sum_dc_top,、sum_ddl、sum_ddr和sum_p是各種模式下計算的代價值SAD,,通過比較大小,,得出最佳的預測模式(logout)和預測數(shù)據(jù)(dataout_intra)。
4.2 變換量化模塊
該模塊主要包括DCT變換,、量化,、反量化和反DCT變換[5]4個部分,。DCT變換采用蝶形算法,每次處理8×8的一行數(shù)據(jù),,節(jié)省了大量的運算時間,,且大量的乘法用移位和加法代替。量化中涉及查表運算,,表格存放在ROM中,,通過地址即可得到所需數(shù)據(jù)。殘差數(shù)據(jù)經DCT變換,、量化后,,量化系數(shù)傳給熵編碼模塊;同時將量化后的數(shù)據(jù)再進行反量化和反DCT變換,,得到8×8子宏塊的重構數(shù)據(jù),,重構的數(shù)據(jù)反饋給幀內預測模塊,進行下一個8×8子宏塊的預測,。
由于亮度和色度算法相同,,因此該模塊可以共享,減少了資源的利用,。變換量化模塊涉及大量的運算,是最耗時的模塊,,為了提高處理速度,,算法使用了適當?shù)牟⑿胁僮鳎瑢⒘炕c反量化,、反DCT變換并行執(zhí)行,;同時把數(shù)據(jù)位數(shù)擴展,可同時對8×8矩陣的一行數(shù)據(jù)賦值,,從而節(jié)省了讀取數(shù)據(jù)占用的時間,,并且提高了數(shù)據(jù)的利用率。
用ModelSim進行仿真的結果如圖4所示,,設定qp為36的情況下,,n0_o的輸出為量化數(shù)據(jù)。
在進行熵編碼模塊的設計時,,算法采用一種較少存儲空間來存儲碼表的方法,,并將碼表查詢、碼表優(yōu)化和指數(shù)哥倫布編碼合并為一個流水線單元并行處理,,節(jié)省了存儲中間結果所需的大量存儲空間,;將熵編碼各任務并行執(zhí)行,加快了處理速度,。
用ModelSim進行仿真的結果如圖6所示,,狀態(tài)機在4、5、6循環(huán)判斷,,并在6狀態(tài)時輸出子宏塊編碼碼流(dataout),。
5 仿真與驗證
本設計使用VHDL硬件描述語言進行設計實現(xiàn),采用Xilinx ISE進行綜合驗證,、ModelSim 6.2b進行仿真,,器件選用Xilinx公司的xc4vsx25-10ff668,最高工作頻率達到110 MHz,,綜合后的資源利用情況如圖7所示,。
本文完成了AVS全I幀編碼器在FPGA平臺上的設計與實現(xiàn)。經仿真與驗證,,能達到CIF分辨率下視頻圖像的實時編碼,。與同類設計相比,本設計采用適當?shù)膹陀眉夹g和流水線技術對系統(tǒng)進行了優(yōu)化,,保證了流水線的高效運行以及硬件資源的最優(yōu)利用,,且系統(tǒng)具有開發(fā)
成本低、性能和靈活性高,、更新方便等特點,。
參考文獻
[1] 畢厚杰.視頻壓縮編碼標準:H_264/AVC[M].北京:人民郵電出版社,2005.
[2] 王道憲.CPLD/FPGA可編程邏輯器件應用與開發(fā)[M].北京:國防工業(yè)出版社,,2004.
[3] 胡倩,,張珂,虞露.AVS視頻解碼器的一種結構設計與硬件實現(xiàn)[J].浙江大學學報(工學版),,2006,,40(12):2139-2143.
[4] Liu Min,Wei Zhiqiang.A fast mode decision algorithm for intra prediction in AVS-M video coding[C].Proceedings of the 2007 International Conference on Wavelet Analysis and Pattern Recognition, ICWAPR 07,,2008:326-331.
[5] 黃友文,,陳詠恩.AVS反掃描、反量化和反變換模塊的一種優(yōu)化設計[J].計算機工程與應用,,2008,,44(19):93-95.
[6] 劉群鑫.AVS中可變長解碼器的硬件設計[J].現(xiàn)代電子技術,2007,,30(23):185-187,,194.