<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

H.263/avc整象素向量搜索算法的制作方法

文檔序號:7645611閱讀:212來源:國知局

專利名稱::H.263/avc整象素向量搜索算法的制作方法
技術領域
:本發明涉及一種視頻信號壓縮的技術。技術背景視頻圖像的壓縮目前在移動通信、視頻會議、數字電視等領域均有廣泛的應用。隨著攝像頭技術的發展以及對圖像壓縮比、圖像信噪比的要求日益提高,目前H.263作為一種新的壓縮標準得以推廣。H.263由MPEG工作組及ITU工作組聯合推出,是一種基于塊的混合編碼,主要的工作原理是利用視頻圖像的時間相關性及空間相關性,通過幀內/幀間預測及變換編碼壓縮圖像信息。幀間預測在進行搜索點匹配時需要進行大量的加法運算,所以實質上算法的設計就是設法減少搜索點的過程。在衡量一個搜索算法的優劣時,通常須要綜合考慮算法的復雜度、匹配精度、硬件實現難易度等因素,下面分析幾種常用的向量搜索算法全區域搜索算法(FullSearch)[3]是效果最好的算法,它能確保獲得最佳的匹配點。從硬件的實現上看,七種模式可以共用一套處理引擎(PE)[3],非常易于硬件實現。但是其明顯的缺點就是計算量太大,處理時必須將搜索區域內的所有點遍歷一次,這對硬件資源的消耗是難以接受的,所以通常只作為測試使用。三步法(Three-StepSearch)、兩維對數搜索法(LogarithmicSearch)等算法結構簡單,運算量小,算法的運算時間非常固定。但是這類算法從原理上看比較粗糙,非常容易落入局部最小值的陷阱,所以通常造成的圖像損失很大。三步法另外一個缺點是由于搜索區域比較分散,很難進行硬件的復用。而預測性的運動向量場適應搜索技術(PMVFAST)及增強的預測性帶狀搜索(EPZS)[6]充分進行了時域和空域的預測,既減小了運算量又能將圖像損失控制在可接受范圍內,所以這類的算法在實際應用中得以廣泛使用,并且已被標準接受(見JM10.0)。其優勢體現在以下三個方面首先,算法在時域及空域上選擇幾個和當前處理塊關系最密切的相鄰塊的向量作為向量預測點(predictors),這能夠相當程度地預測當前模塊的運動趨勢。其次,為了獲取區域內的極值,算法對第一步獲得的最佳預測點選用一定的模板沿帶狀路徑進行提取(zonalsearch),直到最佳向量落到模板中心。最后,此類算法具有自適應性,算法先對可能性較大預測點進行搜索,如果該預測點滿足域值要求則提前結束搜索,這不但能減少運算量而且也能提高圖像的質量。
發明內容本發明將采用第三類算法的思路,對其預測點的選擇及搜索模板的選擇進行優化,進一步地減小算法的運算量以達到硬件設計的要求。本發明提供一種H.263/AVC整象素向量搜索算法,該方法包括以下步驟(1)幀間預測;在參考幀上尋找與當前圖像塊最匹配的參考圖像,比較當前圖像與參考圖像的率失真RDO,獲取運動向量,其中,RDO中的絕對值差;雄-Z2|/t(/,_/)—/*—,(!+血,八圳式中,/力',力為原始圖像的象素灰度,1,(/+血,_/+辦)為參考圖像在當前向量(血,辦)下的象素灰度,(M,iV)為當前塊的大小(2)選擇搜索模板;選擇4X4為7種模式的基本單位,模板大小為±2時,選擇并行內存為8X8素,進行模板搜索時預測點在空間上相鄰,內存可以得到相當程度的重復使用;(3)選擇預測點a,標準中的預測向量;b,(0,0)向量C,A,B,C(D)三個向量;d,參考幀中與當前幀當前塊同一位置的塊向量;e,上述各向量(±1,±1)范圍內的八個鄰近向量。該算法的流程是(1)參考幀圖像與當前幀圖像存儲在兩個單元中;(2)搜索開始后,經過非線性重排后的參考幀圖像與當前圖像做SAD運算;(3)然后該SAD與前面累積的SAD再進行累加,直到完成該模式下的一次模板搜索;(4)當完成一次模板搜索點后,先在模板里的九個搜索點中選出最佳的一個;(5)然后將它與之前搜索點的最佳SAD比較,假如該最佳點的SAD優于臨時最佳SAD,則更新臨時最佳SAD和臨時最佳向量;(6)最后將最佳向量輸入地址產生器生成下一個搜索地址。本發明的優點是,可以大幅緩解內存訪問的壓力、減小運算量,同時保證視頻的峰值信噪比及碼流大小。附圖1是本發明的工作流程圖。附圖2是搜索模板(圖a,b,c,d)示意圖。附圖3是大方形模板搜索內存復用情況示意圖。具體實施方式本發明相對于前代算法,H.263由于采用了細化幀間預測宏塊、引入幀內預測、引入l/4亞象素、整數化DCT變換等手段,在相同的視覺效果下,碼流大約只為MPEG4的50%左右。而幀間預測作為其關鍵技術,對壓縮比的提升具有決定性的作用。H.263支持7種不同尺寸的宏塊分割分別為16X16,16X8,8X16,8X8,8X4,4X8,4X4。從計算量上來說,幀間壓縮的運算量要達到整個壓縮運算量的50%左右,如果采用多參考幀這個比例甚至高達70%。具體來說幀間預測就是通過在參考幀上尋找與當前圖像塊最匹配的參考圖像,再在此基礎上進行運動補償。運動向量的獲取通常通過比較當前圖像與參考圖像的率失真(RDO)來實現,絕對值差(SAD)是RDO中重要組成部分式中,A(/,y')為原始圖像的象素灰度,/4_1(/+血,_/+辦)為參考圖像在當前向量(血,辦)下的象素灰度,(M,AO為當前塊的大小;由上式可以看到,在7種模式中任一模式下進行一個參考點的向量搜索,需要進行256次的減法和255次的加法,而算法中通常需要幾十到上百的參考點。這對處理器的能力是一個考驗。為了減小運算量,向量搜索通常分割成整象素搜索(IME)及亞象素提取(FME)兩部分,這樣做就是將向量的搜索限定在整數象素,而亞象素向量只在最終的整數向量士l象素范圍內提取。幀間預測中,有幾個比較特殊的向量,協議中將其稱為A,B,C,D向量。即當前塊的左塊向量,上塊向量,右上塊向量,左上塊向量。這幾個向量的特殊性在于首先A—D向量所在的塊與當前塊毗鄰,這些向量能夠在一定程度上代表當前塊的運動趨勢;其次在進行當前塊向量搜索時,A—D向量已經預先計算完成,可以直接使用。而標準中規定當前塊的預測向量取A,B,C(D)向量的中值。在H.263中4X4為7種模式的基本單位,同時搜索模板中所涉及的參考象素點非常集中,這種情況下,考慮并行完成4X4象素塊的一次模.板搜索。在硬件實現中,搜索模板的大小決定了并行內存的訪問模式,從而也就決定了算法的硬件資源。進行4X4象素的并行搜索時,如果搜索模板大小為士l,則要求的內存訪問模式最小為6X6,而如果模板大小為士2,則內存最小為8X8……以此類推。考慮硬件的實現難易程度,最終選擇的并行內存為8X8象素。所以EPZS、PMVFAST中大于士2的模板將被剔除,這些內存利用率不高的模板并不適合硬件實現。這樣剩下的模板為小鉆石、大鉆石、小方形、大方形四種(如圖2,圖2a為小鉆石搜索模板,圖2b為小方形搜索模板,圖2c為大鉆石搜索模板,圖2d為小方形搜索模板)。其中除小鉆石模板具有5個搜索點外,其余三個模板均具有9個搜索點,并行處理分別需要5條和9條SAD流水線。在H.263的實現中,內存的訪問是一個非常重要的環節,從模板的選擇上可以看到,由于進行模板搜索時預測點在空間上相鄰,內存可以得到相當程度的重復使用,進行9個點搜索時需要的內存只是8X8=64,而非4X4X9=144。內存的復用在一定程度上緩解了內存訪問中極高的帶寬要求。預測點的選擇直接決定了算法的優劣,本發明選取以下很有代表性的預測點1,標準中的預測向量;2,(0,0)向量;3,A,B,C(D)三個向量;4,參考幀中與當前幀當前塊同一位置的塊的向量;5,上述各向量(±1,±1)范圍內的八個鄰近向量。以上預測點按與當前向量的相關度排序。首先預測向量作為標準中對當前向量的預測,無疑具有最高的相關性。其次通常視頻中存在大量局部靜止或是大片的均勻背景的情形,所以選擇(O,0)向量作為第二預測點。再次從空間相鄰的角度考慮,選擇A,B,C(D)三個個向量作為第三預測點。最后從時間相鄰的角度考慮,選取參考幀中與當前幀當前塊同一空間位置塊的向量作為最后的預測點。另外,由于本發明硬件系統具有9點并行處理的能力,本算法可以使用小方形搜索模板對各預測點進行提取,既處理了原預測點±1范圍內的9個預測點。該步驟提高了預測的準確度。后面的實驗結果將表明,本發明采用的算法并未造成圖像質量的明顯下降,這證明選取的預測點非常具有代表性。3本發明的硬件結構,采用單參考幀搜索,搜索范圍設定為X-[-32,31]、Y:[-24,23]。算法要求內存能夠一次讀出任意位置8X8X8bit的參考區域。這需要進行512bit的數據總線寬度并行內存讀取[7]。并行內存讀取其實是整個設計的關鍵,因為它直接決定了外部總線帶寬及片內內存的大小等關鍵參數。具體實現如下首先,因為參考圖像讀取時起始點可能位于任何位置,所以不能采用以提高數據寬度來減少內存數目的方法,必須將內存分割成8行乘8列的格式。XC2V3000中有96片的片上BlockRam,能夠滿足算法的需求。其次,為了實現幀間搜索的流水線不間斷,在單參考幀時片上內存至少要存儲(32X2+16+16)X(24X2十16)二6144bytet的數據,對應每塊ram的大小為96byte。VirtexII系列中BlockRam的大小為2kbyte,滿足設計要求。再次,并行內存讀取需要進行內存映射,具體來說象素的存儲順序為第1,9,17等模8為1的行的象素存到相應列的第1行,而模8為1的列的象素則存到相應行的第1列。地址映射和內存的片選公式為分別為a(/,力-TO""d(〃8)+ro""dC/78)x12,^,_/)=i'mod8+8x(ymod8),最后,XC2V3000中BlockRam為雙口結構,這為算法的流水線處理[8]提供了便利,可將A端口用于從外部存儲器讀入數據,而將B端口用于向SAD模塊提供并行數據。這種結構中A端口其實占用率并不高,將來可以方便地進行亞象素搜索的擴展。使用了片上存儲器后,對于使用單參考幀處理30fps的Dl視頻,片外存儲器.的帶寬要求僅為63.18MB/s。這樣一塊32bit的SDRAM便很容易達到該要求。參考幀圖像與當前幀圖像存儲在兩個單元中。搜索開始后,經過非線性重排后的參考幀圖像與當前圖像做SAD運算;然后該SAD與前面累積的SAD再進行累加,直到完成該模式下的一次模板搜索;當完成一次模板搜索點后,先在模板里的九個搜索點中選出最佳的一個,然后將它與之前搜索點的最佳SAD比較,假如該最佳點的SAD優于臨時最佳SAD,則更新臨時最佳SAD和臨時最佳向量;最后將最佳向量輸入地址產生器生成下一個搜索地址。在使用帶狀搜索算法時,硬件上最大的瓶頸在于必須計算出當前最佳預測點,才能確定搜索窗口的移動方向。而在100MHz高速處理時,為了保證時序要求,最佳預測點的計算需要多級觸發器緩存,這使得從地址產生、內存讀出……到最終的新的參考圖像地址的產生整個流程產生很大的流水線延遲。本設計中這個延遲為12個時鐘周期。為了解決延遲造成的等待問題,本發明采取的是7種模式輪換的方式,既以單個時鐘周期為單位進行1->2->3……->7->1的輪轉切換計算,七種模式相互填補其余各模式的等待時間。從硬件損耗上看,算法進行7種模式搜索在內存、SAD計算、SAD比較等主要單元上是完全復用的,區別僅在于增加了中間結果的存儲。為了防止搜索步驟過長,本發明規定只進行12步的搜索。如果進行完12步的搜索后仍舊無法得出區域最佳向量,則把當前預測點作為最佳。所以最壞情形下本算法一個宏塊的處理時間為12X16X7=1344時鐘周期。而Dl(30fps,720X572pixels)視頻包含1620個宏塊,所以一幀圖像的處理時間為1344X1620=2177280時鐘周期,對應100MHz的時鐘則為0.022s,相對0.033s的幀頻要求具有O.Olls的冗余,完全滿足視頻的實時處理要求。本發明已在XC2V3000(300萬門的FPGA)平臺實現,包含時鐘模塊,視頻輸入模塊,SDRAM控制模塊,SRAM控制模塊,ME模塊,結果輸出模塊等。FPGA內鄰消耗如下芯片中SLICE使用量為6553(寄存器使用量為7355,4輸入的査找表為10500),BlockRam使用率為68/96。外部存儲器為64Mbit的SDRAM兩片,256Kbit的SRAM兩片。通過PCI總線傳輸測試仿真圖像及回傳運算結果。然后將算法結果與H.263中的全區域搜索算法結果進行比較,算法參數及比較結果如下<table>tableseeoriginaldocumentpage10</column></row><table>算法表1算法關鍵參數比較<table>tableseeoriginaldocumentpage10</column></row><table>表2算法率失真及碼流比較(100framesQp=28)表1列出了主要的硬件消耗。算法的復雜程度實質上取決于搜索點的數目,本發明算法的搜索點雖然3倍于三步法的搜索點,但是也只是相當于全搜算法的23%,處于一個合理的尺度。其次由于進行模板搜索時實現了內存很大程度的復用,本發明所需的片上內存帶寬要求小于三步法。而從表2的運行結果來看,三步法和本發明的算法在PSNR上相差無幾,甚至三步法還要略高于本發明算法。但是從碼流的分析來看,本發明算法明顯地優于三步法。從表中可以明顯看出,本發明算法與全搜算法碼流相當,而三步法的碼流要明顯大于另外兩種算法,這在高分辨率的Dl序列中表現尤為明顯。在Dl格式的Mobile視頻測試中,三步法的碼流甚至超過本發明算法15%。造成上述現象的原因是本發明算法采用了向量的預測,所以最終的匹配點更接近于最佳向量;而三步法通常可以獲得較小的SAD值,但是它無法客觀地表現當前圖像的運動趨勢,相鄰向量的相關性不強,從而產生很大的碼流。本發明引入了一種完整的7種模式完全搜索的硬件運動向量評估算法。算法根據硬件計算的特點,對EPZS和PMVFAST中的搜索模板和預測向量進行了優化。通過引入并行內存、并行SAD流水線,算法具有30fpsDl視頻實時處理的能力。本算法的運算量僅為全搜算法的23%左右,且硬件消耗遠低于參考文獻[3]中提供的全搜索算法。實驗結果表明相對全區域搜索,本發明算法PSNR的降低在0.07dB以內,而碼流差別在1%以內。權利要求1.一種H.263/AVC整象素向量搜索算法,其特征在于該方法包括以下步驟(1)幀間預測;在參考幀上尋找與當前圖像塊最匹配的參考圖像,比較當前圖像與參考圖像的率失真RDO,獲取運動向量,其中,RDO中的絕對值差;2、按權利要求1所述的H.263/AVC整象素向量搜索算法,其特征在于該算法的流程是(1)參考幀圖像與當前幀圖像存儲在兩個單元中;(2)搜索開始后,經過非線性重排后的參考幀圖像與當前圖像做SAD運算;(3)然后該SAD與前面累積的SAD再進行累加,直到完成該模式下的一次模板搜索;(4)當完成一次模板搜索點后,先在模板里的九個搜索點中選出最佳的一個;(5)然后將它與之前搜索點的最佳SAD比較,假如該最佳點的SAD優于臨時最佳SAD,則更新臨時最佳SAD和臨時最佳向量;(6)最后將最佳向量輸入地址產生器生成下一個搜索地址。全文摘要本發明提供一種H.263/AVC整象素向量搜索算法,通過比較幾種常用的整象素向量搜索算法,引入一種適合硬件實現的H.263整象素向量搜索算法。該算法通過向量的預測及帶狀搜索實現快速的整象素向量搜索,目前已經在IP音、視頻編解碼芯片上成功實現。實驗結果表明本發明可以大幅緩解內存訪問的壓力、減小運算量,同時保證視頻的峰值信噪比及碼流大小。文檔編號H04N7/32GK101227616SQ200710036469公開日2008年7月23日申請日期2007年1月15日優先權日2007年1月15日發明者周文娟,沈國華,王小明,錚胡,鄭堅鈞申請人:上海賽唯倫科技有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影