劉 杰 王旭柱
(1.中國(guó)海洋大學(xué)信息科學(xué)與工程學(xué)院通信與信息系統(tǒng),山東 青島 266100;2.中國(guó)海洋大學(xué)信息科學(xué)與工程學(xué)院電子系,山東 青島 266100)
基于H.264的一種視頻編碼算法的研究與FPGA實(shí)現(xiàn)
劉 杰1王旭柱2
(1.中國(guó)海洋大學(xué)信息科學(xué)與工程學(xué)院通信與信息系統(tǒng),山東 青島 266100;2.中國(guó)海洋大學(xué)信息科學(xué)與工程學(xué)院電子系,山東 青島 266100)
H.264是由ITU-T視頻編碼專(zhuān)家組VCEG和ISO/IEC運(yùn)動(dòng)圖像專(zhuān)家組MPEG聯(lián)合制訂的新一代視頻編碼標(biāo)準(zhǔn)。而運(yùn)動(dòng)估計(jì)是整個(gè)編碼過(guò)程中最耗時(shí)的一部分,它的效率直接決定了整個(gè)編碼系統(tǒng)的效率。因此本文在混合非對(duì)稱(chēng)十字多六邊形搜索算法原理的基礎(chǔ)上,提出了一種混合六邊形搜索算法,使四種標(biāo)準(zhǔn)算法合理搭配。并且在FPGA上設(shè)計(jì)了一種有效的硬件結(jié)構(gòu)實(shí)現(xiàn)該算法。
H.264;運(yùn)動(dòng)估計(jì);混合搜索;FPGA
通過(guò)大量H.264算法的試驗(yàn),人們發(fā)現(xiàn)運(yùn)動(dòng)估計(jì)占整個(gè)編碼算法全部計(jì)算量的60%~80%,因此研究一種搜索速度快、精度高, 同時(shí)便于硬件實(shí)現(xiàn)的運(yùn)動(dòng)估計(jì)搜索算法成為視頻編碼領(lǐng)域的重點(diǎn)和難點(diǎn)。塊匹配算法是最常用的運(yùn)動(dòng)估計(jì)算法,算法簡(jiǎn)潔,便于硬件實(shí)現(xiàn)。通過(guò)研究已有的成熟的標(biāo)準(zhǔn)算法,我們發(fā)現(xiàn)運(yùn)動(dòng)估計(jì)不能僅僅使用某種單一的算法,需要我們根據(jù)優(yōu)缺點(diǎn)合理組合各種標(biāo)準(zhǔn)算法,只有這樣才能達(dá)到更好的編碼性能。因此,本文提出了以六邊形搜索為主,非對(duì)稱(chēng)十字搜索算法、全搜索算法和菱形搜索算法配合的一種混合搜索新算法。同時(shí)給出了一種并行流水結(jié)構(gòu)在FPGA上實(shí)現(xiàn)該算法。
匹配誤差準(zhǔn)則采用絕對(duì)誤差和:
本文設(shè)計(jì)的混合六邊形搜索算法示意圖如圖1所示。步驟如下:
2.1 通過(guò)運(yùn)動(dòng)矢量預(yù)測(cè),首先確定搜索的起始位置。要依據(jù)H.264標(biāo)準(zhǔn)的算法進(jìn)行預(yù)測(cè),然后得到一個(gè)起始搜索矢量的集合,從該集合中選出對(duì)應(yīng)費(fèi)用函數(shù)最小的運(yùn)動(dòng)矢量作為起始搜索點(diǎn)。
2.2 研究發(fā)現(xiàn),不同方向上的運(yùn)動(dòng)強(qiáng)度是不同的,水平方向大于垂直方向,所以通過(guò)非對(duì)稱(chēng)的十字搜索,我們可以初步搜索一下最佳運(yùn)動(dòng)矢量。以搜索起點(diǎn)為中心,搜索范圍上垂直方向是水平方向的一半,長(zhǎng)度2 是搜索點(diǎn)之間的步長(zhǎng),這樣一個(gè)非對(duì)稱(chēng)十字形就產(chǎn)生了。在此基礎(chǔ)上,找到當(dāng)前的最佳匹配點(diǎn),下一步的搜索中心就是該點(diǎn)。
2.3 以正方形方式全搜索當(dāng)前中心周?chē)?×3的區(qū)域,找到當(dāng)前的最佳匹配點(diǎn),下一步的搜索中心就是該點(diǎn)。
2.4 對(duì)更大的區(qū)域進(jìn)行搜索,采用六邊形搜索,該搜索相對(duì)于DS算法速度快且準(zhǔn)。
2.5 以搜索最佳匹配點(diǎn)為目的,在半徑為1的范圍內(nèi)采用小菱形搜索,搜索到位置點(diǎn)后,輸出該點(diǎn)的SAD值及其坐標(biāo)。
圖1 混合六邊形搜索算法示意圖
圖2 運(yùn)動(dòng)估計(jì)硬件結(jié)構(gòu)
并行結(jié)構(gòu)組成部分有(1)四種搜索算法實(shí)現(xiàn)器,主要組成部分有SAD計(jì)算器、比較器、計(jì)算器和延時(shí)器(2)兩個(gè)片上RAM組(3)一個(gè)控制器,主要由地址產(chǎn)生器組成。本設(shè)計(jì)同時(shí)用到寄存器、片內(nèi)RAM和片外SDRAM作為數(shù)據(jù)存儲(chǔ)空間,保證數(shù)據(jù)存取量和存取速度。一個(gè)片上RAM組存當(dāng)前塊像素?cái)?shù)據(jù),另一個(gè)存參考?jí)K像素?cái)?shù)據(jù),這是因?yàn)槠釹DRAM存取速度慢,達(dá)不到運(yùn)動(dòng)預(yù)測(cè)對(duì)數(shù)據(jù)的快速存取要求。一個(gè)RAM組由4個(gè)片內(nèi)RAM構(gòu)成,從而可以同時(shí)讀取所有子區(qū)域的像素值。結(jié)構(gòu)如圖2所示?;谝陨显O(shè)計(jì),該系統(tǒng)能達(dá)到高效實(shí)時(shí)的性能要求。
設(shè)計(jì)構(gòu)架中的四種搜索算法分別對(duì)應(yīng)其處理當(dāng)前塊和參考?jí)K。每種算法包含了不同個(gè)數(shù)的SAD計(jì)算器與相對(duì)應(yīng)的比較器、延時(shí)器、計(jì)數(shù)器,都對(duì)應(yīng)兩個(gè)片內(nèi)大小為16×16的RAM和大小為32×32的當(dāng)前幀。32×32的當(dāng)前幀由四個(gè)宏塊組成,計(jì)算一個(gè)宏塊內(nèi)點(diǎn)的運(yùn)動(dòng)矢量綽綽有余。本設(shè)計(jì)每搜一步都會(huì)重新確定一次搜索地址,然后再搜下一步。每組片內(nèi)RAM每次存儲(chǔ)搜索數(shù)據(jù)時(shí),都采用流水的方式進(jìn)行。每完成一個(gè)算法,就把坐標(biāo)點(diǎn)傳送給地址產(chǎn)生器,計(jì)算出下一個(gè)點(diǎn)搜索所需的數(shù)據(jù)起始位置,運(yùn)動(dòng)估計(jì)的搜索步驟通過(guò)起到重要作用的控制器控制。
本設(shè)計(jì)中FPGA芯片選用Xilinx公司的Spartan3E系列中的XC3S500E,系統(tǒng)門(mén)數(shù)是50萬(wàn)門(mén)。采用硬件描述語(yǔ)言Verilog HDL編寫(xiě)該硬件結(jié)構(gòu),在開(kāi)發(fā)軟件ISE 13.4上進(jìn)行綜合實(shí)現(xiàn)與仿真驗(yàn)證。綜合結(jié)果顯示該設(shè)計(jì)占用的片內(nèi)block RAM資源為1678 bytes,同時(shí)占用邏輯門(mén)數(shù)36.9k。將本文的設(shè)計(jì)與參考文獻(xiàn)[4]中的TSS算法,文獻(xiàn)[5]中FS的算法結(jié)構(gòu)進(jìn)行性能對(duì)比,如表1所示。由表可知,該設(shè)計(jì)平均需要1189個(gè)時(shí)鐘周期,平均到一種搜索算法,所需要的時(shí)鐘周期大約只有297個(gè)。所以,每個(gè)宏塊工作時(shí)時(shí)鐘周期處理速度比TSS和FS算法都要快。本設(shè)計(jì)的邏輯門(mén)資源的占有率跟其他文獻(xiàn)相比較,保持了很低的狀態(tài)。
TSS-三步搜索算法,F(xiàn)S-全搜索算法。
表1 本文結(jié)構(gòu)與其他文獻(xiàn)結(jié)構(gòu)性能比較
本文介紹了基于H.264編解碼標(biāo)準(zhǔn)的一種運(yùn)動(dòng)估計(jì)混合搜索算法及其FPGA實(shí)現(xiàn)方案,該設(shè)計(jì)提高了搜索速度,保持了較高的搜索精度,同時(shí)邏輯門(mén)資源的占用率也很低,有較高的實(shí)用價(jià)值。
[1]畢厚杰.新一代視頻壓縮編碼標(biāo)準(zhǔn)—H.264/AVC[M].北京:人民郵電出版社,2005.
[2]吳水明.基于H.264編解碼的算法優(yōu)化研究及FPGA的硬件實(shí)現(xiàn)[D].湖南:湖南大學(xué),2007.
[3]田耘,徐文波,胡彬,等.Xilinx ISE Design Suite 10.x FPGA 開(kāi)發(fā)指南-邏輯設(shè)計(jì)篇[M].北京:人民郵電出版社,2008.
[4]Sung-Tae Jung; Sang-sloe Lee.”A 4-way Pipelined Processing Architecture for Three-step Search Block-matching Motion Estimation”,IEEE Transactions on Consumer Electronics,Vol.50, No.2,pp.674-681, May 2004.
TN91
A
10.13612/j.cnki.cntp.2014.07.018