朱勝利,姚素英,徐江濤
ZHU Shengli,YAO Suying,XU Jiangtao
天津大學(xué)電子信息工程學(xué)院,天津300072
School of Electronic and Information Engineering,Tianjin University,Tianjin 300072,China
隨著CMOS圖像傳感器在智能終端中被廣泛應(yīng)用,CMOS圖像傳感器的視頻后處理涵蓋的處理技術(shù)越來越多,當(dāng)前很多高集成度的應(yīng)用處理芯片系統(tǒng)已經(jīng)將視頻編解碼也作為CMOS圖像傳感器系統(tǒng)的視頻后處理的重要部分被應(yīng)用。對于視頻編解碼技術(shù)領(lǐng)域而言,無論新一代視頻編解碼標(biāo)準(zhǔn)(如H.264、AVS等),還是上一代視頻編解碼標(biāo)準(zhǔn)(如MPEG-1、MPEG-2等),其中的運動估計和運動補償都是壓縮圖像時間冗余的主要方法,也是達(dá)到高壓縮比所采用的重要技術(shù)之一[1-2]。有效運動補償?shù)幕A(chǔ)是獲取參考圖像宏塊的運動向量,一般運動向量范圍都限制在已編碼的參考幀內(nèi),這種限制使對當(dāng)前幀圖像邊界宏塊進(jìn)行運動估計時,由于參考宏塊可能已在參考幀之外而無法得到最優(yōu)效果。在運動圖像專家組標(biāo)準(zhǔn)MPEG-2以前壓縮標(biāo)準(zhǔn)以及國際電信聯(lián)盟視頻編解碼標(biāo)準(zhǔn)H.261中都存在因為參考宏塊處于參考幀之外而無法進(jìn)行有效的運動補償。在H.263、MPEG-4以及中國音視頻編解碼國家標(biāo)準(zhǔn)AVS1.0中取消了這種限制[3],允許運動向量指向圖像以外區(qū)域。當(dāng)視頻圖像中存在跨邊界運動時,這種模式能取得很大編碼增益,特別是對小圖像和邊界運動激烈的圖像而言。此外,這種模式允許使用更大運動矢量,對攝像機運動和手機拍攝特別有利。
本文基于采用流水線設(shè)計的AVS視頻解碼器,提出一種新型的基于像素的圖像邊界擴(kuò)展算法,對參考幀進(jìn)行高效的邊界擴(kuò)展。該算法考慮了從視頻解碼系統(tǒng)角度分析圖像數(shù)據(jù)信息和流水線設(shè)計,以及視頻解碼器存儲器開銷的優(yōu)化。確定了圖像邊界擴(kuò)展算法在重構(gòu)幀存儲模塊實現(xiàn)可以達(dá)到邊界像素一次擴(kuò)展、多次使用的高效性。研究了視頻解碼中的數(shù)據(jù)信息,通過設(shè)計乒乓存儲器和FIFO確保在最優(yōu)緩存設(shè)計的基礎(chǔ)上實現(xiàn)流水線處理,確保了整個視頻解碼系統(tǒng)的實時性。從而在運動補償過程中能夠高效地獲取無限制運動向量,優(yōu)化了運動補償,增強了圖像的解碼效率。針對本文算法進(jìn)行了VLSI設(shè)計并用Verilog HDL描述,最后給出綜合和FPGA測試結(jié)果。以往研究中,在實現(xiàn)UMV中沒有考慮流水線設(shè)計[4]。對基于宏塊或者字節(jié)進(jìn)行邊界擴(kuò)展的方法[5],并沒考慮算法實現(xiàn)的難度,且對巨大緩存存儲器開銷也沒有充分考慮。本文在充分分析和考慮存儲器設(shè)計最優(yōu)的前提下,基于解碼器系統(tǒng)流水線設(shè)計的思想,在重構(gòu)幀存儲過程中實現(xiàn)了分別基于亮度像素和色度像素的圖像邊界擴(kuò)展算法,同時給出了硬件設(shè)計及測試,有助于在低成本、高效率地實現(xiàn)UMV方面有更加深入的研究。
AVS視頻解碼系統(tǒng)是基于我國自主知識產(chǎn)權(quán)的國家標(biāo)準(zhǔn)AVS1.0的新一代視頻解碼系統(tǒng)[3],此系統(tǒng)包括存儲控制器、圖像變長解碼、反量化、反變換、幀內(nèi)預(yù)測、運動補償、抗塊效應(yīng)濾波、重構(gòu)幀存儲、顯示等處理單元(如圖1)?;贏VS視頻解碼器,圖像邊界擴(kuò)展系統(tǒng)主要是在重構(gòu)幀存儲模塊中實現(xiàn)圖像邊界擴(kuò)展算法,相關(guān)模塊包括環(huán)形濾波模塊、運動補償模塊和DRAM存儲器模塊。環(huán)形濾波模塊提供輸入數(shù)據(jù),重構(gòu)幀存儲模塊將數(shù)據(jù)進(jìn)行圖像邊界擴(kuò)展,為無限制運動向量的獲取奠定了基礎(chǔ),并將數(shù)據(jù)存儲到DRAM存儲器模塊中,運動補償模塊從DRAM存儲器模塊中獲得實現(xiàn)了無限制運動向量的圖像數(shù)據(jù)進(jìn)行圖像的運動補償。其中,運動補償是通過先前圖像來預(yù)測和補償當(dāng)前圖像,是減少幀序列冗余信息的有效方法[6-7],而重構(gòu)幀存儲模塊將先前圖像(參考幀)進(jìn)行了擴(kuò)展,然后存儲在DRAM中,運動補償模塊從DRAM實時取出所需參考幀,進(jìn)行補償運算,然后將當(dāng)前圖像輸出給幀內(nèi)預(yù)測模塊。將圖像邊界擴(kuò)展系統(tǒng)設(shè)計在重構(gòu)幀存儲模塊中,一次性將參考幀進(jìn)行擴(kuò)展并存儲在DRAM中,使得運動補償模塊能夠多次使用,同時也簡化了包括運動補償、幀內(nèi)預(yù)測等模塊的設(shè)計,否則每個邊界模塊到使用無限制運動向量的時候再去擴(kuò)展并計算,會出現(xiàn)計算的高重復(fù)性和對DRAM的訪問率的提高,降低了系統(tǒng)的高效性和成本結(jié)構(gòu)。
圖1 AVS視頻解碼系統(tǒng)
針對UMV算法和視頻解碼數(shù)據(jù)結(jié)構(gòu)進(jìn)行分析,依據(jù)UMV算法要求的數(shù)據(jù)處理方式和基于流水線的視頻解碼架構(gòu)對重構(gòu)幀存儲模塊圖像擴(kuò)展的要求,本文提出了高效的圖像邊界擴(kuò)展算法。算法從視頻解碼器系統(tǒng)角度出發(fā),充分分析解碼圖像數(shù)據(jù)的結(jié)構(gòu)信息,依據(jù)不同圖像類型(幀模式、頂場模式、底場模式)和像素不同的位置(圖像周邊宏塊的邊界像素和四角頂點像素的擴(kuò)展)及不同像素類型(亮度(Y)和色度(U和V))進(jìn)行不同的擴(kuò)展方式。這些擴(kuò)展之后的數(shù)據(jù)依據(jù)UMV算法的需求存儲到外部存儲器中,提供給運動補償模塊所需的運動向量[8-9]。本文算法減少了中間緩存的冗余,保證了視頻解碼的實時性,為在基于流水線設(shè)計的重構(gòu)幀存儲模塊實現(xiàn)圖像邊界像素的實時擴(kuò)展建立了理論基礎(chǔ)。
在AVS標(biāo)準(zhǔn)里,一個亮度塊E和它的相鄰亮度8×8塊A、B、C和D之間的空間位置如圖2所示。亮度塊E的大小可以是16×16、16×8、8×16或者8×8。A、B、D都是與E的左上角樣本緊鄰的塊,C是與E的右上角樣本緊鄰的塊。而當(dāng)前塊的運動向量(Motion Vector,MV)計算是按照當(dāng)前塊的類型,從相鄰塊或者當(dāng)前塊在參考幀中對應(yīng)塊的MV預(yù)測出當(dāng)前塊的MV,該MV的預(yù)測值即MVP(Motion Vector Prediction),MVP和碼流中解出MV的殘差MVD(Motion Vector Decrease)相加就是所要的MV[10]。而MVD可以通過數(shù)據(jù)解析部分從碼流中得到,所以在幀間解碼中重點是MVP的計算。當(dāng)A、B、C都是超出圖像之外的參考宏塊,如此計算的參考幀圖像塊運動向量就是UMV,同樣MVD可以通過數(shù)據(jù)解析,而UMVP(Unrestricted Motion Vector Prediction)可以通過如下的計算獲得[8,11]。分如下三步:
(1)第一步計算UMVA、UMVB和UMVC:
其中,X是變量,表示亮度塊E相鄰的亮度塊A、B和C。umv表示亮度宏塊的原始運動向量,對應(yīng)的BlkDist表示當(dāng)前塊和它的運動向量所指向的參考塊之間的距離。式(1)依據(jù)AVS-P2標(biāo)準(zhǔn)中對亮度塊的運動向量的定義進(jìn)行總結(jié)[3]。
(2)第二步計算兩個塊運動向量之間的空間距離[12]:
(3)第三步求UMVP:
無限制運動向量的預(yù)測值為:
圖2 無限制運動矢量示意圖
在AVS標(biāo)準(zhǔn)里,如果A、B、C都是超出圖像之外的參考宏塊,MVA、MVB和MVC都是0,這對圖像的運動補償極為不利,特別是圖像邊界有激烈運動的圖像塊。而采用UMV技術(shù)可以減少因為運動矢量超界造成的影響,同時也增大了圖像塊運動向量的值域,完善了運動補償?shù)男Ч?/p>
在AVS視頻解碼的流水線系統(tǒng)中,解碼圖像是自左向右按照光柵掃描的順序進(jìn)行解碼。環(huán)形濾波模塊將解碼數(shù)據(jù)輸出到重構(gòu)幀存儲模塊前,采用了乒乓存儲器將解碼數(shù)據(jù)進(jìn)行拼接且存儲,以提供重構(gòu)幀存儲模塊所需要的數(shù)據(jù)。而重構(gòu)幀存儲模塊中的圖像邊界擴(kuò)展的算法,主要是依據(jù)環(huán)形濾波模塊提供不同的數(shù)據(jù)類型進(jìn)行圖像擴(kuò)展重構(gòu)存儲的,該算法主要是從減少內(nèi)部存儲器的使用和提高解碼效率角度考慮。乒乓存儲器基于保證宏塊級流水線的正常運行進(jìn)行設(shè)計,主要保存的是經(jīng)過環(huán)形濾波之后的數(shù)據(jù)。下面通過該存儲器數(shù)據(jù)結(jié)構(gòu)分析重構(gòu)幀存儲模塊的輸入數(shù)據(jù)。由于乒乓存儲器是兩個完全相同的存儲器進(jìn)行時序上的乒乓讀寫,選其中之一進(jìn)行分析。存儲器深度是26 bit,要求能夠存儲一個亮度和色度宏塊的數(shù)據(jù)(見圖3),從0到1存儲宏塊的上兩行亮度數(shù)據(jù),從2到9存儲宏塊Y0、Y1亮度數(shù)據(jù),從10到17存儲宏塊Y2、Y3亮度數(shù)據(jù),18存儲宏塊的上一行色度數(shù)據(jù),從19到26存儲宏塊的色度數(shù)據(jù)。重構(gòu)存儲模塊就是按照Y0、Y1、Y2、Y3、U和V順序取數(shù)進(jìn)行邊界擴(kuò)展。要求一個存儲器讀取完成前,另一個存儲器宏塊數(shù)據(jù)全部寫入。
圖3 乒乓存儲器數(shù)據(jù)存儲結(jié)構(gòu)
作為參考幀圖像的擴(kuò)展,本文算法首先規(guī)定了邊界像素擴(kuò)展的布局和機制。以幀類型的圖像邊界像素擴(kuò)展布局(如圖4(a))為例,說明宏塊邊緣像素的亮度和色度的擴(kuò)展布局。其中亮度數(shù)據(jù)直接復(fù)制邊界宏塊的邊緣像素,復(fù)制擴(kuò)展16個像素單元,但是色度需要進(jìn)行該宏塊邊緣像素的U和V交叉之后再進(jìn)行水平方向復(fù)制擴(kuò)展16個像素單元(8個UV單元),垂直方向復(fù)制擴(kuò)展8個像素單元。圖像(包括幀和場)像素擴(kuò)展機制如圖4(b)所示,四角部分的像素擴(kuò)展順序按照abcdefghijkl進(jìn)行處理。周邊部分的像素擴(kuò)展順序按照abcdef進(jìn)行處理。圖像內(nèi)部的存儲順序按照abc進(jìn)行處理。這樣的順序完全是依據(jù)環(huán)形濾波模塊輸出的數(shù)據(jù)特征進(jìn)行確定,使得不需要內(nèi)部存儲器進(jìn)行解碼數(shù)據(jù)暫存。
圖像邊界擴(kuò)展算法考慮數(shù)據(jù)類型、幀場模式、擴(kuò)展位置和高效存儲等因素,采用高效圖像擴(kuò)展機制,針對圖像邊界像素的亮度和色度進(jìn)行圖像邊界擴(kuò)展。具體擴(kuò)展算法如下:
小時候,我常在母親坐下休息時,給她繒滿頭的小辮兒??赏撕螘r,母親開始躲我,轟我,不讓碰她的頭發(fā)。有次放學(xué)早,回家便看到新奇又心酸的一幕:父親戴著塑料手套,端著一盤黑糊糊,用牙刷一綹一綹翻騰著母親的頭發(fā)刷了又刷。父親很不自然地說:“你娘頭發(fā)白了,染染?!敝肋@個秘密后,我不再碰母親的頭發(fā),看到被染發(fā)劑傷得黑中泛黃泛紅的頭發(fā),心就難受。
圖4 圖像像素擴(kuò)展布局及機制
對于幀模式的亮度(如圖4(a)),周邊處的宏塊單元擴(kuò)充以邊緣像素為單位直接向外重復(fù)擴(kuò)充16次;四角處擴(kuò)充以各角處宏塊的角點像素為單位向外重復(fù)擴(kuò)充16×16次。對于頂場模式的亮度,周邊處宏塊單元擴(kuò)充以邊緣像素為單位直接向外重復(fù)擴(kuò)充16次,但針對場模式在DRAM存儲的地址需要跳變:以首行計算地址為準(zhǔn),隔行再進(jìn)行地址計算,如1357…。四角處的擴(kuò)充以各角處宏塊的角點像素為單位向外重復(fù)擴(kuò)充8×16次。對于底場模式的亮度,周邊處的宏塊單元擴(kuò)充以邊緣像素為單位直接向外重復(fù)擴(kuò)充16次,但是針對場模式在DRAM存儲的地址需要跳變:以首行計算地址為準(zhǔn),隔行再進(jìn)行地址計算,如2468…。四角處的擴(kuò)充以各角處宏塊的角點像素為單位向外重復(fù)擴(kuò)充8×16次。
對于幀進(jìn)模式的色度(如圖4(a)),在左右方向上分別把U和V的邊界像素模塊合成以一個U像素和一個V像素為單位整體,分別向左或向右擴(kuò)展8次。上下方向上把U和V交叉后分別擴(kuò)充8次;對頂角,把U的角點像素單元和V的角點像素單元合為一體,擴(kuò)充16×8次。對于頂場進(jìn)模式的色度,左右方向上分別把U和V的邊界像素單元合成以一個U像素單元和一個V像素單元為單位的整體,分別向左或向右擴(kuò)展8次;在上下方向上把U和V交叉后分別擴(kuò)充4次。對于頂角,把U的拐角點像素單元和V的頂角點像素單元合為一體,擴(kuò)充8×8次。對底場進(jìn)模式的色度,左右方向上分別把U和V的邊界像素單元合成以一個U像素單元和一個V像素單元為單位的整體,分別向左或向右擴(kuò)展8次。上下方向上把U和V交叉后分別擴(kuò)充4次。對頂角,把U拐角點像素單元和V頂角點像素單元合為一體,擴(kuò)充8×8次。
基于圖像邊界擴(kuò)展算法在AVS視頻解碼器的重構(gòu)幀存儲模塊里進(jìn)行VLSI設(shè)計和實現(xiàn)。重構(gòu)幀存儲模塊中,圖像邊界擴(kuò)展系統(tǒng)(如圖5)進(jìn)行圖像邊界擴(kuò)展,為獲得無限制運動向量提供有效參考幀。系統(tǒng)包括變長解碼器、環(huán)形濾波電路、存儲器控制器及動態(tài)存儲模塊以及運動補償電路[13]。變長解碼器通過命令總線和控制總線與重構(gòu)幀存儲模塊、運動補償模塊相連接,為圖像解碼提供圖像碼流的參數(shù)和控制信息。環(huán)形濾波電路向重建幀存儲電路提供視頻解碼數(shù)據(jù)。重構(gòu)幀存儲電路獲得圖像參數(shù)和控制信息以及相應(yīng)的視頻解碼數(shù)據(jù),實現(xiàn)圖像擴(kuò)展算法的圖像擴(kuò)展,并將相應(yīng)的視頻解碼數(shù)據(jù)存儲到DRAM之中。運動補償模塊進(jìn)行當(dāng)前幀補償?shù)臅r候會從DRAM中取出對應(yīng)的參考幀,并進(jìn)行運動矢量的計算,實現(xiàn)完善的運動補償,最后將實現(xiàn)運動補償?shù)漠?dāng)前幀數(shù)據(jù)傳輸?shù)较乱粋€解碼環(huán)節(jié)。
圖5 重構(gòu)幀存儲系統(tǒng)
基于流水線設(shè)計的AVS視頻解碼系統(tǒng),要求模塊的輸入必須采用FIFO同步存儲解碼數(shù)據(jù)和圖像控制信息,而且要求深度保證兩個宏塊以上,確保流水處理實時性。本文設(shè)計了解碼數(shù)據(jù)存儲器和圖像控制信息存儲器用于重構(gòu)幀存儲模塊的輸入數(shù)據(jù)存儲。其中圖像解碼數(shù)據(jù)存儲器和上一級的乒乓存儲器按照流水線的級別進(jìn)行合理對接。
圖像解碼數(shù)據(jù)存儲器(解碼數(shù)據(jù)FIFO)設(shè)計為兩個位寬64 bit、深度48的隨機存儲器(FIFO),主要存儲來自環(huán)形濾波電路乒乓存儲器輸出的圖像數(shù)據(jù),圖像數(shù)據(jù)存儲器以宏塊為單位將亮度和色度進(jìn)行存儲,并且依據(jù)控制信息把64 bit的輸入數(shù)據(jù)轉(zhuǎn)換為128 bit數(shù)據(jù)。圖像控制信息存儲器(控制信息FIFO)設(shè)計為位寬32 bit、深度8的寄存器數(shù)組,主要來自變長解碼器輸出的存儲圖像控制信息,輸出信息包括:反饋到變長解碼器的存儲器命令和數(shù)據(jù)溢出信息、存儲圖像邊界像素擴(kuò)展模塊電路的讀數(shù)據(jù)命令、以及主存儲器模塊請求、地址及其大小、行、定位和寫數(shù)據(jù)命令。變長解碼器發(fā)送給重構(gòu)幀存儲電路的是圖像控制信號,該控制信號包含的信息有四個命令[3](見表1)。
表1 圖像控制信息命令字
圖像控制數(shù)據(jù)信息說明:LEVEL0包含初始化信號,由32位中的0~15位提供DRAM width,從而確定邏輯存儲的圖像寬度。LEVEL1包含的是圖像序列級的信息,其2~13位標(biāo)志本圖像序列中每幀圖像的寬度(img_width),14~29位標(biāo)志本圖像序列中每幀圖像的高度(img_height)。LEVEL2包含的是幀級信息,其6~25位標(biāo)志每幀圖像的基址。LEVEL3包含的是宏塊級信息,其0~6位標(biāo)志宏塊在每幀圖像中的縱向相對地址(mb_y),其7~13位標(biāo)志宏塊在每幀圖像中的水平方向相對地址(mb_x)。命令數(shù)據(jù)的30~31位作為圖像信息級別的標(biāo)志位。
如圖5,在圖像邊界擴(kuò)展系統(tǒng)中,圖像邊界擴(kuò)展電路是核心模塊,主要由控制信息FIFO、解碼數(shù)據(jù)FIFO、存儲地址計算器、色度交叉排列器、解碼圖像邊界擴(kuò)展模塊等模塊組成。圖像邊界擴(kuò)展模塊電路實現(xiàn)了圖像邊界擴(kuò)展算法,工作流程(如圖6)從數(shù)據(jù)輸入、圖像擴(kuò)展到數(shù)據(jù)存儲和輸出有序進(jìn)行。解碼圖像的控制信息存儲在控制信息FIFO中,為構(gòu)建解碼圖像提供相應(yīng)圖像參數(shù)和控制信息,主要是定位圖像的相對位置和圖像的類
圖6 圖像邊界像素擴(kuò)展模塊電路的工作流程
圖像邊界擴(kuò)展系統(tǒng)采用高效的二維存儲控制算法,存儲方式是每次提供一個行數(shù)信號,只計算行數(shù)×16 pixel塊的首地址,然后存儲器的控制器根據(jù)首地址和行數(shù),僅在一次對存儲器控制器的請求信號的情況下,就可以依次向動態(tài)存儲器寫入行數(shù)據(jù),實現(xiàn)二維存儲。采用表2的機制進(jìn)行擴(kuò)展存儲,使得整個硬件設(shè)計系統(tǒng)具有較高的數(shù)據(jù)處理效率并且節(jié)省存儲空間。一方面,整個圖像邊界像素擴(kuò)展處理過程也是向動態(tài)存儲器存儲數(shù)據(jù)的過程,本文的二維存儲是在存儲的過程中實現(xiàn)圖像擴(kuò)展,而不是將像素擴(kuò)展需要的數(shù)據(jù)存儲后再進(jìn)行擴(kuò)展,這樣就大大節(jié)省存儲空間。另一方面,只取所用數(shù)據(jù)進(jìn)行處理,而不把整個宏塊數(shù)據(jù)取出進(jìn)行邊界像素擴(kuò)展,減少數(shù)據(jù)冗余,提高處理數(shù)據(jù)效率。
重構(gòu)幀存儲模塊電路和變長解碼器、環(huán)形濾波器及DRAM控制器之間通過控制信號和數(shù)據(jù)信號進(jìn)行相連,由于FIFO設(shè)計,使得各模塊之間的控制信號主要是讀/寫信號及讀/寫使能信號以及讀/寫完成信號。接口設(shè)計分為兩部分:一方面,與重構(gòu)幀存儲模塊輸入接口的模塊有變長解碼器和環(huán)形濾波,前者是傳送解碼圖像控制型。解碼圖像的數(shù)據(jù)存儲在數(shù)據(jù)FIFO中,為圖像擴(kuò)展提供解碼圖像數(shù)據(jù)。依據(jù)圖像控制信息和圖像數(shù)據(jù)重構(gòu)了相應(yīng)圖像并進(jìn)行邊界像素擴(kuò)展。在輸入的解碼圖像數(shù)據(jù)中,對于亮度Y,直接采用本文3.4節(jié)的圖像邊界擴(kuò)展算法實現(xiàn)擴(kuò)展。對于色度U和V,色度交叉排列器將色度U和V進(jìn)行交叉排列,然后針對邊界的像素進(jìn)行以UV為單位的邊界像素模塊向外復(fù)制擴(kuò)展,同樣也采用本文3.4節(jié)的圖像邊界擴(kuò)展算法實現(xiàn)擴(kuò)展。存儲地址計算器實時計算出當(dāng)前圖像數(shù)據(jù)映射到DRAM的地址,同時,解碼圖像邊界擴(kuò)展模塊輸出圖像數(shù)據(jù)。DRAM控制器接收到地址和相應(yīng)的圖像數(shù)據(jù),將擴(kuò)展中的圖像數(shù)據(jù)依序存儲到DRAM中。運動補償模塊可以從DRAM中取出經(jīng)過圖像邊界擴(kuò)展的參考幀,計算無限制運動向量并進(jìn)行運動補償。信息的,而后者是傳送解碼圖像數(shù)據(jù)碼流給重構(gòu)幀存儲模塊。另一方面,與重構(gòu)幀存儲模塊輸出接口的是模塊DRAM控制器,主要是把經(jīng)過圖像邊界擴(kuò)展了的解碼圖像存儲到DRAM進(jìn)行圖像重構(gòu),以供運動補償模塊計算參考幀運動向量之用。圖像邊界像素擴(kuò)展模塊的接口如圖7所示。
表2 圖像邊界像素擴(kuò)展存儲算法
圖7 圖像邊界像素擴(kuò)展模塊的接口
采用的時鐘是AVS視頻解碼系統(tǒng)的系統(tǒng)時鐘,時鐘控制下的時序設(shè)計(主要指端口的時序設(shè)計)如圖8所示。
圖8 輸入(a)、輸出(b)接口信號時序圖
輸入端口的時序設(shè)計(如圖8(a)):重構(gòu)幀存儲模塊電路先向變長解碼器和環(huán)形濾波器發(fā)出讀請求信號,然后等待變長解碼器和環(huán)形濾波器發(fā)出讀使能信號,經(jīng)過若干周期后,當(dāng)變長解碼器和環(huán)形濾波器準(zhǔn)備好數(shù)據(jù)可以被讀取時,變長解碼器和環(huán)形濾波器會發(fā)出讀使能信號,接收到讀使能信號后,重構(gòu)幀存儲模塊電路開始讀取數(shù)據(jù)。讀完數(shù)據(jù)后,重構(gòu)幀存儲模塊電路會發(fā)出讀完成信號給變長解碼器和環(huán)形濾波器以示完成讀操作。
輸出端口的時序設(shè)計(如圖8(b)):重構(gòu)幀存儲模塊電路準(zhǔn)備好數(shù)據(jù)后,先向DRAM控制器發(fā)送寫請求信號,同時送出寫入首地址,然后等待DRAM控制器允許被寫時,并DRAM控制器發(fā)出寫使能信號之后,當(dāng)前模塊開始將數(shù)據(jù)經(jīng)DRAM控制器寫入DRAM,完成寫操作時,DRAM控制器會發(fā)送寫完成信號給重構(gòu)幀存儲模塊電路以示寫操作完成,重構(gòu)幀存儲模塊電路會停止寫操作。
基于AVS視頻解碼器的圖像邊界擴(kuò)展系統(tǒng)通過仿真后,利用Synopsys公司的DC-FPGA工具進(jìn)行了FPGA的綜合,綜合的門級網(wǎng)表經(jīng)過Xilinx公司的VirtexII XC2V6000系統(tǒng)進(jìn)行了FPGA驗證。本文設(shè)計的圖像邊界擴(kuò)展系統(tǒng)在AVS解碼器中實現(xiàn)了圖像邊界的有序而高效的擴(kuò)展,使得運動補償能夠獲取無限制運動向量,提高了視頻解碼效率。
為了比較有UMV和無UMV對視頻解碼系統(tǒng)的影響,本文引用效率E[14-15]作為衡量依據(jù),E為硬件結(jié)構(gòu)的吞吐率R和實現(xiàn)面積A的比值。
其中,R采用重構(gòu)幀存儲模塊輸出的平均數(shù)率,A是重構(gòu)幀存儲模塊的面積。
綜合面積結(jié)果:采用Synopsys公司的DC_FPGA工具綜合,系統(tǒng)時鐘為6.7 ns的條件下,打開UMV綜合模塊面積83 848.562 500門,關(guān)閉UMV綜合模塊面積82 626.432 300門,面積僅增加1.5%。測試的解碼效率:實驗選用具有代表性的測試序列(如表3),碼流1到碼流5為同一分辨率下的不同邊界運動劇烈程度的碼流,碼流6到碼流10屬于同一圖像劇烈程度的不同分辨率大小的碼流。采用同一AVS編碼器對相應(yīng)的碼流序列進(jìn)行編碼。
表4是針對測試選定的10個碼流測試的結(jié)果,主要是針對打開UMV和關(guān)閉UMV的情況,依據(jù)公式(4)計算出解碼效率,從實驗結(jié)果看,打開UMV解碼器解碼效率得到了普遍提高。而對于不同邊界運動劇烈程度的圖像解碼效率和不同分辨率大小的圖像解碼效率的變化趨勢從圖9可以看出。很明顯,圖像邊界運動越劇烈,采用UMV后解碼效率提高得越多。而對于邊界運動一樣,圖像越小,采用UMV后解碼效率提高得越多。
表3 圖像擴(kuò)展系統(tǒng)測試流說明
表4 圖像邊界擴(kuò)展系統(tǒng)測試
本文通過分析AVS視頻解碼系統(tǒng)設(shè)計中需要無限制運動向量改善運動補償,提出了一種高性能的圖像邊界像素擴(kuò)展算法,該算法通過硬件實現(xiàn),在芯片面積增加不大的情況下,有效實現(xiàn)了UMV的獲取,從而改善了運動補償?shù)慕Y(jié)果,提高了視頻解碼系統(tǒng)的解碼效率。通過仿真與在FPGA中的驗證,證明了本文算法的低成本、高效性以及可實現(xiàn)性,為AVS視頻解碼系統(tǒng)提高解碼效率,特別是小尺寸且圖像邊界運動劇烈的圖像解碼,本文選擇的碼流解碼效率提高都在4%以上。同時,值得指出的是本文采用了高效的二維存儲機制進(jìn)行存儲圖像數(shù)據(jù),從而提高了整個系統(tǒng)的存儲效率。
圖9 圖像邊界擴(kuò)展系統(tǒng)提升圖像解碼效率
[1] Huang A M,Nguyen T.Correlation-based motion vector processing with adaptive interpolation scheme for motioncompensated frame interpolation[J].IEEE Transactions on Image Processing,2009,18(11):740-752.
[2] Li Ming,Chang Yilin,Yang Fuzheng,et al.Rate-distortion criterion based picture padding for arbitrary resolution video coding using H.264/MPEG-4 AVC[J].IEEE Transactions on Circuits and Systems for Video Technology,2010,20(9):1233-1241.
[3] 國家質(zhì)量監(jiān)督檢驗檢疫總局.信息技術(shù)先進(jìn)音視頻編碼第二部分:視頻(AVS視頻(報批稿))[S].2005.
[4] 張鳳.H_263_中高級選項UMV和ADV的研究和實現(xiàn)[J].有線電視技術(shù),2004,160(16):43-46.
[5]張大勇,莊弈琪,湯華蓮.MPEG-4中的無限制運動補償?shù)膶崿F(xiàn)[J].微計算機信息,2008,24(5/3):224-295.
[6] Yang Heechul,Yang Jungyoup,Won Kwanghyun,et al.Motion vector coding with decoder selectable PMV[C]//2010 2nd International Conference on Signal Processing Systems,2010:447-450.
[7] Yokoyama T,Iwasaki T,Watanabe T.Motion vector based moving object detection and tracking in the MPEG compressed domain[C]//2009 Seventh International Workshop on Content-Based Multimedia Indexing,2009.
[8] Zheng Junhao,Deng Lei,Zhang Peng,et al.An efficient VLSI architecture for motion compensation of AVS HDTV decoder[J].J Comput Sci&Technol,2006,21(3):370-377.
[9] 趙建全,張衛(wèi)寧,袁鯤,等.AVS視頻硬件解碼器運動補償單元的設(shè)計[J].電氣電子教學(xué)學(xué)報,2008,30(6):21-24.
[10] 龔聲蓉,郭麗,韓軍,等.基于全局運動補償編碼的AVS編碼器設(shè)計[J].通信學(xué)報,2007,28(10):102-108.
[11] Laroche G,Jung J,Pesquent-Popescu B.RD optimized codingformotionvectorpredictorselection[J].IEEE Trans on Circuit and Syst for Video Tech,2008,18(12):1247-1257.
[12] Rye S N,Sang L G.Error concealment in H.264 considering direction and distance of motion vectors[J].Korea Inf Comm Soc,2009,34(1):34-47.
[13] 劉龍,韓崇昭,王占輝.MPEG-4運動補償?shù)腣LSI結(jié)構(gòu)設(shè)計[J].通信學(xué)報,2005,26(11).
[14] 鄧?yán)?,高文,胡銘曾,?基于AVC/AVS標(biāo)準(zhǔn)高效運動估計硬件結(jié)構(gòu)設(shè)計[J].計算機研究與發(fā)展,2006,43(11):1972-1979.
[15] Pirsch P,Gehrke1 W.VLSI architectures for video compression[C]//Proc of the 1995 IEEE Int,1995:220-246.