a和5c所示,估計器為將與搜索路徑匹配的斜置Y估計器(Oblique Yestimator)中本次未迭代計算的空間預測塊放置在與該斜置Y估計器中線對稱的已迭代的塊位置。
[0039]以斜置Y估計器為基礎,做了以下估計器設計。以設置逐行搜索的搜索路徑為例,對于奇數(shù)次迭代(圖5a),從左至右搜索時,估計器為空間預測塊(Χ_1,Υ)、(Χ,Υ_1),分層預測塊(X,Y),時間預測塊(Χ+2,Υ+2)結構;從右至左搜索時,估計器結構為空間預測塊(Χ-1,Υ)、(Χ,Υ+1),分層預測塊(X,Y),時間預測塊(Χ-2,Υ-2)。對于偶數(shù)次迭代(圖5c),從右至左搜索時,估計器為空間預測塊(X+1,Y)、(X,Y+1),分層預測塊(X,Y),時間預測塊(X-2,Y-2)結構;從左至右搜索時,估計器結構為空間預測塊(Χ+1,Υ)、(Χ,Υ_1),分層預測塊(X,Y),時間預測塊(Χ+2,Υ+2) ο
[0040]需要說明的是,在隔行交替搜索方向時,若采用斜置Y估計器,由于塊(Χ+1,Υ)(奇次迭代),(Χ-1,Y)(偶次迭代)無法作為空間預測塊(尚未計算到),因此,選用了(Χ+1,Y)(奇次迭代),(Χ+1,Y)(偶次迭代)代替。
[0041]根據(jù)估計值獲取的當前計算塊的每個候選向量,候選向量包括:空間候選向量(Spatial Candidate)、時間候選向量(Temporal Candidate)、分層候選向量(HierarchyCandidate)、更新向量(Update Candidate)。其中,由空間預測塊按上一層對應塊的差異估計值乘以2得到空間候選向量(Spatial Candidate)、由時間預測塊按上一幀或上一次迭代的差異估計結果得到時間候選向量(Temporal Candidate)、由分層預測塊按本次迭代已完成塊的差異估計值得到分層候選向量(Hierarchy Candidate)、更新向量(UpdateCandidate)由空間候選向量與ASC表生成隨機向量疊加生成。
[0042]比較由以當前計算塊為中心的估計器中各候選向量指向位置區(qū)域為中心區(qū)域的比較窗與當前計算塊為中心區(qū)域的比較窗之間的差別(Distort1n),選擇差別最小者所對應向量作為當前塊的計算結果。分別指向位置區(qū)域,差別在一定比較窗(Search window)內(nèi)計算,并通過比較范圍(Search Area)進行約束。一種常規(guī)的做法是將比較窗的大小設置為與塊大小一致,如例中8*8像素。差別在像素網(wǎng)格下完成計算(即以像素為單位計算),常米用絕對差和(SAD:sum of absolute difference)或絕對差平均(MAD:mean of absolutedifference)的形式。
[0043]更新向量由空間候選向量與ASC表中隨機向量疊加組成。其中,由于ASC表具有亞像素精度(如0.25像素),并通過空間向量傳遞給其他向量。當候選向量指向以非整數(shù)中心位置時,需采用插值算法得到非整數(shù)坐標位置的值。
[0044]每次多層3DRS塊估計迭代計算過程中均包括:判斷估計值獲取的當前計算塊的每個候選向量的指向位置區(qū)域是否為整數(shù)(指向位置區(qū)域對應的中心位置坐標是否為整數(shù)),若是,則直接計算該候選向量指向位置區(qū)域為中心區(qū)域的比較窗與當前計算塊為中心區(qū)域的比較窗之間的差別;若不是,則通過單調(diào)分段立方插值方法插值出該候選向量指向的區(qū)域中心的比較窗,再計算差值得到的該候選向量指向的區(qū)域中心的比較窗與當前計算塊為中心區(qū)域的比較窗之間的差別;選擇與當前計算塊為中心區(qū)域的比較窗的差別最小的候選向量作為當前計算塊本次迭代的差異估計結果。
[0045]例如,當計算塊網(wǎng)格(10,10)位置時,如空間候選向量為(1,I),ASC向量為(0.25,O),則將指向中心位置為(11.25,11)的位置區(qū)域,需插值出以(11.25,11)為中心位置的區(qū)域內(nèi)8*8點的值。
[0046]本實施例的方法,與逐行同向搜索的搜索路徑相比,本實施例所得塊網(wǎng)格差異場金字塔中最底層的各塊差異估計值總體上較為均勻,有效防止了由于搜索路徑單一而造成的“異常點”的產(chǎn)生。
[0047]圖2示出根據(jù)本發(fā)明提供的一種基于多層3DRS的差異估計方法第二個實施例的方法流程圖。本實施例的一種基于多層3DRS的差異估計方法主要由智能終端來執(zhí)行。其中,智能終端包括但不限于:個人電腦、筆記本電腦、手機、平板電腦、視頻播放設備等,智能終端可以為能播放或解析3D視頻的智能終端。該方法包括以下步驟:
[0048]21:根據(jù)3D幀圖像的左圖和右圖分別搭建預設層數(shù)的圖像金字塔,根據(jù)所述圖像金字塔生成預設塊尺寸的塊網(wǎng)格差異場金字塔。
[0049]具體的,根據(jù)3D幀圖像的左圖和右圖采用加權平均的方法分別搭建預設層數(shù)的圖像金字塔,將所述圖像金字塔初始化為預設塊尺寸的塊網(wǎng)格差異場金字塔。圖像金字塔中包括左圖金字塔和右圖金字塔。3D幀圖像的左圖搭建預設層數(shù)的左圖金字塔,3D幀圖像的右圖也搭建預設層數(shù)的右圖金字塔,其中,高一層圖像金字塔的長、寬分別是底一層圖像金字塔的長、寬的1/2倍。根據(jù)圖像金字塔生成預設塊尺寸的塊網(wǎng)格差異場金字塔,差異場金字塔的生成方法為將右圖金字塔中相同層圖像像素坐標相比于左層金字塔中相同層圖像像素點對應的坐標的矢量差構成差異場金字塔。塊尺寸一般為正方形像素塊,如8*8,則將差異場金字塔通過以網(wǎng)格塊大小為8*8的塊網(wǎng)格分成若干個8*8的塊,得到塊網(wǎng)格差異場金字塔。
[0050]本實施例中,本步驟21包括步驟211和步驟212。
[0051]211:判斷3D幀圖像的左圖和右圖的長和寬是否分別能被塊邊長的21咅整除,η為預設層數(shù),若是,則根據(jù)3D幀圖像的左圖和右圖分別搭建預設層數(shù)的多層3DRS金字塔,若不是,則采用最近插值在3D幀圖像的左圖和右圖的四周補值至能被塊邊長的21咅整除的大小,再根據(jù)補值后的3D幀圖像的左圖和右圖搭建預設層數(shù)的金字塔。
[0052]例如,預設為3層,塊的尺寸為8*8像素,則判斷3D幀圖像的左圖和右圖的長和寬是否呢個被64整除,如果不能,則采用最近插值使3D幀圖像的左圖和右圖的四周補值至能被64整除的大小。
[0053]212:將所述多層金字塔初始化為預設塊尺寸的塊網(wǎng)格差異場金字塔。
[0054]22:設置預設迭代次數(shù)的搜索路徑,每次迭代相比于上一次迭代將搜索路徑相對于本次迭代相關的圖像及各差異場圖旋轉90度,每次迭代的搜索路徑均為逐行/列搜索,從每行/列的一端搜索到另一端,相鄰兩行/列搜索路徑相反的搜索路徑。
[0055]具體的,每次迭代相比于上一次迭代將搜索路徑相對于本次迭代相關的圖像及各差異場圖均旋轉90度,可以為順時針旋轉或逆時針旋轉,其中,可以通過旋轉本次迭代相關的圖像及各差異場來實現(xiàn),以逆時針旋轉為例,包括:每次迭代時,相關的圖像及各差異場圖逆時針旋轉90度后,對翻轉后各差異場中的各向量進行左右調(diào)換,并對調(diào)換后的各向量X方向分量做取反處理實現(xiàn)。具體實現(xiàn)方式見步驟23中的兩種實現(xiàn)方式。
[0056]每次迭代中,若設置逐行搜索,則將從每行的一端搜索到另一端,相鄰兩行搜索路徑相反,即若一行為從左向右搜索,則下一行為從右向左搜索;若設置逐列搜索,從每列的一端搜索到另一端,相鄰兩列搜索路徑相反,即若一列為從上至下,則下一列為從下至上。
[0057]23:根據(jù)預設的估計器逐層使用所述搜索路徑對各層塊網(wǎng)格差異場金字塔完成預設迭代次數(shù)的多層3DRS塊估計迭代計算,得到塊網(wǎng)格差異場金字塔中最底層的各塊差異估計值。
[0058]具體的,根據(jù)預設的估計器從最高層開始逐層使用所述搜索路徑對各層塊網(wǎng)格差異場金字塔完成預設迭代次數(shù)的多層3DRS塊估計迭代計算,得到塊網(wǎng)格差異場金字塔中最底層的各塊差異估計值。
[0059]其中,多層3DRS塊估計迭代計算為多層3DRS算法中獲得差異場金字塔最底層的各塊差異估計值的塊估計迭代計算步驟,但該步驟改變了多層3DRS算法中估計器的結構以及搜索路徑。
[0060]進一步的,對各層塊網(wǎng)格差異場金字塔完成預設迭代次數(shù)的多層3DRS塊估計迭代計算,包括:
[0061]對各層塊網(wǎng)格差異場金字塔完成每一次多層3DRS塊估計迭代計算后,判斷所述當次迭代次數(shù)是否達到預設迭代次數(shù),若是,則停止對該層塊網(wǎng)格差異場金字塔迭代計算;若否,則采用所述搜索路徑對下一次多層3DRS塊估計迭代計算,再重復本次迭代過程作為下一次迭代計算,直至達到預設迭代次數(shù)。
[0062]步驟23采用上述步驟22預設的搜索路徑,可以采用兩種方式來實現(xiàn):
[0063]例一、估計器為將斜置Y估計器中本次未迭代計算的空間預測塊放置在與該斜置Y估計器中線對稱的已迭代的塊位置,則估計器需與搜索路徑匹配。以搜索路徑為逐行搜索為例,如附圖5a、5b、5c和5d所示,例如,采用逐行搜索,若預設迭代次數(shù)為4,第一次迭代為5a,以與搜索路徑匹配的斜置Y估計器做了以下估計器設計。以4次迭代為例,第I次迭代(圖5a),估計器設計與第一實施例的步驟23中的實例奇數(shù)次迭代的估計器相同。第2次迭代時(圖5b),從上至下搜索,從左上角至右下角,等同于本步驟中將對第二次多層3DRS塊估計迭代計算相關的圖像及各差異場圖逆時針旋轉90度后,對翻轉后各差異場中的各向量進行左右調(diào)換,對調(diào)換后的各向量X方向分量做取反處理,再重復本次迭代過程作為第二次迭代計算,而此種不需要旋轉圖像及各差異場圖的實現(xiàn)方式,更易被直觀理解,此種實現(xiàn)方式的估計器為空間預測塊為(X+1,Y)、(X,Y+1),分層預測塊(X,Y),時間預測塊(Χ-2,Υ+2)的結構。同理可得,本實現(xiàn)方式中第三次的迭代搜索路徑見附圖(圖5c),估計器設計與第一實施例的步驟23中的實例的偶數(shù)次迭代的估計器相同。同理可得,本實現(xiàn)方式中第三次的迭代搜索路徑見附圖(圖5d),上至下搜索時,估計器為空間預測塊(X-1,Y)、(Χ,Υ-1),分層預測塊(X,Y),時間預測塊(Χ+2,Υ-2)的結構。與在隔行交替方向搜索相同,估計器設計時對于無法作為空間預測塊(尚未計算到)的塊使用對稱塊代替。
[0064]例二、采用附圖5a中第一次迭代的搜索路線及估計器進行估計。在完成第I次迭代后,將第二次多層3DRS塊估計迭代計算相關的圖像及各差異場圖逆時針翻轉90度。對于翻轉后各差異場中各向量進行左右交換,并對向量X方向分量做取反處理,即:
[0065]V (X,y)