国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

FPGA實現(xiàn)AVS編碼器P幀全過程

2014-11-20 08:19:04王永霞
電視技術 2014年7期
關鍵詞:編碼器殘差編碼

王永霞,劉 博,張 剛

(太原理工大學信息工程學院,山西太原030024)

AVS是我國自主知識產(chǎn)權的第二代數(shù)字音視頻信源標準,在2006年2月確定為國家標準并開始實施。它的編碼效率與H.264相當,算法復雜度和硬件實現(xiàn)成本比H.264低。尤其是在碼率和PSNR相當?shù)那闆r下,AVS的編碼速度比H.264高[1]。AVS視頻編碼標準采用一系列新技術去除數(shù)據(jù)傳輸和存儲冗余,因此AVS視頻編碼過程包含幀內(nèi)預測、幀間預測、DCT變換、和熵編碼[2]等。其中,幀間預測中利用運動矢量來消除圖像間的冗余;幀內(nèi)預測中采用臨近宏塊相關性來消除圖像內(nèi)部的空間冗余;再通過對預測殘差進行DCT變換和量化消除視覺冗余,最后利用熵編碼有效減小編碼冗余[3]。

由于AVS標準提出的時間較晚,所以FPGA實現(xiàn)的實例較少。由于FPGA具有集成度高和系統(tǒng)結構靈活的特點[4],本文設計選擇FPGA為平臺,在其上實現(xiàn)了AVS編碼器的P幀部分。

1 AVS編碼器原理

完整的AVS編碼器框圖如圖1所示,AVS編碼幀分為3種:幀內(nèi)預測幀(I幀)、前向幀間預測幀(P幀)和雙向幀間預測幀(B幀)。下面介紹AVS編碼原理[5]。

圖1 AVS編碼器框圖

預測值是由前面已編碼的參考圖像經(jīng)運動補償后獲得。為了提高預測精度和壓縮比,實際的參考圖像可從已重建并濾波的幀中選擇,再與當前塊相減產(chǎn)生1個殘差塊,殘差塊經(jīng)整數(shù)變換(DCT)和量化[6](Quant)后產(chǎn)生一組系數(shù),將這些系數(shù)熵編碼(CAVLC),并與解碼所需的一些頭信息整合組成1個壓縮后的比特流,經(jīng)NAL(網(wǎng)絡自適應層)傳輸和存儲。為提供進一步預測所用的傳輸參考圖像,利用編碼器具有重建圖像的功能,將殘差圖像經(jīng)反量化(DE-QUANT)和反整數(shù)變換(IDCT)[7]得到新的殘差塊,將其與預測值相加,在本地得到一幀新的圖像,經(jīng)濾波后所得重建圖像作為后續(xù)編碼參考圖像[8]。

2 P幀編碼器整體設計

根據(jù)AVS編碼器編碼算法的特點,P幀編碼器包括MV預測模塊、運動估計模塊、變換量化模塊和熵編碼模塊,再加上重構、殘差和CBP頭文件等一些外圍電路構成。具體實現(xiàn)框圖如圖2所示。

圖2 整體設計原理框圖

MV預測模塊:當前編碼塊由臨近已編碼塊的MV預測而得到MVp。

運動估計模塊:由于運動圖像臨近幀之間存在相關性,所以將運動圖像分割成若干宏塊,并經(jīng)運動搜索得出當前編碼塊的最佳匹配塊在參考幀中的位置,根據(jù)其準確位置即可得到空間相對偏移矢量MV。

變換量化模塊:反量化、反DCT變換所得數(shù)據(jù)與參考塊相加得重建幀。

編碼模塊:主要包括DCT變換和反DCT變換、量化和反量化、ZIG-ZAG掃描和CAVLC熵編碼。DCT變換、量化后所得數(shù)據(jù)經(jīng)ZIG-ZAG掃描后傳送給熵編碼,作為CAVLC熵編碼的輸入數(shù)據(jù),CAVLC熵編碼形成的碼流前加入CBP頭文件,得到最終壓縮后的比特流8位對齊存入RAM中。

3 模塊設計

依據(jù)FPGA硬件平臺的特點,采用硬件描述語言VHD語言設計。本設計的核心模塊是MV預測模塊、運動估計模塊和編碼模塊。下面以P幀任一宏塊為例介紹各個模塊的功能和作用。

3.1 MV 預測

該模塊主要完成MVP_x和MVP_y的獲取。實現(xiàn)過程分4個狀態(tài)完成,分別是空閑、接收、計算和傳輸,如圖3所示。

圖3 MV預測狀態(tài)轉移圖

Stidle是空閑狀態(tài);Streceive是數(shù)據(jù)接收狀態(tài),加載左邊塊、上邊塊和右上邊塊這3個相鄰參考塊,分別用i_refa,i_refb,i_refc表示,及其相應運動矢量為 mva_x、mva_y,mvb_x、mvb_y,mvc_x、mvc_y;Stcalculate 是計算過程,具體步驟與AVS標準中MV預測過程[4]完全一致;Sttrans是MVP_x和MVP_y的輸出過程。用ModelSim仿真,結果如圖4所示。

圖4 MV預測模塊仿真結果(截圖)

3.2 運動估計

該模塊需要從當前幀和參考幀中獲取輸入數(shù)據(jù),從當前幀中得到當前塊數(shù)據(jù),從參考幀中獲取搜索窗數(shù)據(jù)。在搜索窗中搜索得到SAD值最小的宏塊,作為當前塊的最佳匹配塊,并用運動矢量的形式記錄匹配塊的空間位置。此過程主要包括運動搜索、SAD計算、最佳運動矢量和預測模式的獲取。由于全搜索算法數(shù)據(jù)規(guī)則容易控制且易并行處理,所以本設計采用的搜索模式為全搜索;利用當前塊數(shù)據(jù)與參考窗數(shù)據(jù)作絕對差再求和所得結果即為所需SAD值;根據(jù)最佳匹配塊位置即可得到最佳運動矢量;預測模式包括8×8、8×16、16×8、16×16四種,SAD值最小的預測模式為最佳預測模式。由于最佳搜索模式為16×16的概率最大,因此,以16×16搜索模式為例介紹搜索過程。

實現(xiàn)過程包含空閑、數(shù)據(jù)接收、SAD計算和輸出16×16搜索模式下的最小SAD值4個狀態(tài),SAD計算過程和狀態(tài)轉移過程用ModelSim仿真,結果如圖5所示。ssad0_inter16×16o~ssad16_inter16×16o輸出SAD計算結果其中,dataout_inter16×16o輸出數(shù)據(jù)為16×16搜索模式下的最小SAD,mv_x和mv_y為此SAD值對應的運動矢量,stcurrent_inter16×16o為狀態(tài)跳轉。

圖5 16×16運動搜索仿真結果(截圖)

3.3 編碼模塊

此模塊由DCT變換、量化、反DCT變換、反量化和熵編碼五部分構成。其中,DCT變換和反DCT變換都采用蝶形算法,每次處理8×8塊的一行數(shù)據(jù),且大量采用加法和移位,這樣節(jié)省了大量的時間和空間。查表實現(xiàn)量化和反量化,表格存儲在ROM中。DCT變換和量化后的數(shù)據(jù)通過DV_RAM傳給熵編碼模塊,反量化和反DCT變換的數(shù)據(jù)形成重構殘差塊。熵編碼主要實現(xiàn)ZIG-ZAG掃描、游程編碼、碼表的查詢與切換、哥倫布編碼和碼流輸出;此過程采用占用空間少的存儲方法存儲碼表,并將碼表查詢與切換、哥倫布編碼合并成流水線單元并行完成,省去了中間數(shù)據(jù)的存儲,還將熵編碼子過程并行完成,加快了處理速度。

編碼模塊輸入數(shù)據(jù)是當前塊與預測塊對應數(shù)據(jù)作差得到的殘差塊數(shù)據(jù),如圖6所示,其中圖6a是C代碼中輸入殘差數(shù)據(jù),圖6b是ModelSim仿真中截取的輸入數(shù)據(jù)流。經(jīng)DCT變換、量化和熵編碼后的碼流如圖7所示,其中圖7a是從AVS算法C代碼中截取的碼流;圖7b是從ModelSim仿真中截取的比特流。通過比較可以看出,2種方法輸入數(shù)據(jù)和所得結果都完全一致,說明FPGA的P幀編碼過程可正確輸出比特流。

圖6 編碼輸入數(shù)據(jù)仿真結果對比(截圖)

圖7 編碼輸出比特流仿真結果對比(截圖)

4 仿真驗證與實驗結果

4.1 仿真驗證

本設計整個編碼過程都是利用VHDL硬件描述語言,Xilinx ISE綜合,仿真器選用Xilinx公司的xc5vlx110t-1ff1136,綜合后最高工作頻率為117.534 MHz下,資源占用情況如表1所示,實驗結果表明資源占用少。

表1 資源利用表

CIF分辨率(352×288)YUV4∶2∶0的原始圖像,在100 MHz的時鐘頻率下,編碼一個16×16宏塊所需周期數(shù)限定在=10 101內(nèi)。由表1看出,本實驗所占周期為7 670,完全滿足實時編碼需求。

4.2 實驗結果

一幀圖像(以foreman圖像為例)編碼完之后形成的比特流,利用本實驗室自主研發(fā)的解碼器解碼之后所得圖像如圖8所示,表明本設計編碼過程完全正確。

圖8 解碼所得圖像(截圖)

5 總結與討論

本文在FPGA上設計與實現(xiàn)了AVS編碼器P幀,經(jīng)驗證和仿真,能達到CIF分辨率下的實時編碼。與同類其他研究相比,本文實現(xiàn)過程中采用并行和流水處理,保證了硬件資源的高效運行和最優(yōu)利用,并且對AVS在FPGA上的發(fā)展和完善起到了良好的促進作用。

[1]張欣佑,張曉東,王浩.AVS編碼與DSP實現(xiàn)的視頻編碼器[J].單片機與嵌入式系統(tǒng)應用,2006(12):16-18.

[2]李德斌,易清明,石敏.AVS解碼器中碼流分割模塊的硬件實現(xiàn)[J].電視技術,2009,33(11):35-37.

[3]連云冠,石玥,夏軍,等.AVS和H.264編解碼性能的比較[J].電信科學,2007(3):18-21.

[4]鄧瓊,楊立志,劉力政,等.一種基于FPGA的AVS編碼加速器的設計[J].微電子學與計算機,2008(6):97-100.

[5] GB/T20090.2—2006,信息技術先進音視頻編碼第二部分:視頻[S].2006.

[6]黃學超,張衛(wèi)寧.AVS量化和掃描硬件設計與實現(xiàn)[J].電氣電子教學學報,2011(2):34-37.

[7]張璐,劉佩林.基于FPGA的AVS反變換的設計與實現(xiàn)[J].電視技術,2006,30(7):20-23.

[8]畢厚杰.視頻壓縮編碼標準—H.264/AVC[M].北京:人民郵電出版社,2005.

猜你喜歡
編碼器殘差編碼
基于雙向GRU與殘差擬合的車輛跟馳建模
基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達圖像配準
基于殘差學習的自適應無人機目標跟蹤算法
《全元詩》未編碼疑難字考辨十五則
子帶編碼在圖像壓縮編碼中的應用
電子制作(2019年22期)2020-01-14 03:16:24
基于遞歸殘差網(wǎng)絡的圖像超分辨率重建
自動化學報(2019年6期)2019-07-23 01:18:32
Genome and healthcare
基于FPGA的同步機軸角編碼器
基于PRBS檢測的8B/IOB編碼器設計
JESD204B接口協(xié)議中的8B10B編碼器設計
電子器件(2015年5期)2015-12-29 08:42:24
板桥市| 扎囊县| 涡阳县| 库尔勒市| 桐城市| 闽侯县| 天峻县| 分宜县| 吉隆县| 栾城县| 堆龙德庆县| 石棉县| 师宗县| 塘沽区| 宁河县| 沾化县| 灯塔市| 雷波县| 壤塘县| 鄱阳县| 文登市| 叙永县| 东明县| 武邑县| 侯马市| 托里县| 文登市| 乌鲁木齐市| 梁河县| 阿荣旗| 广州市| 铁岭县| 汝城县| 镇巴县| 阿克| 闽清县| 西峡县| 梁山县| 平湖市| 宁海县| 明光市|