專利名稱:運動向量補償的內插裝置和方法
技術領域:
本發明涉及運動向量的補償,尤其涉及一種用于改善運動向量補償精確性的內插方法和裝置。
背景技術:
依照諸如MPEG-1、MPEG-2、MPEG-4以及H.264等視頻編碼標準,使用P-picture編碼方法或者B-picture編碼方法來對目標畫面進行編碼,并在編碼結果基礎上執行運動向量補償。也就是,通過參照P-picture編碼方法中的先前畫面以及通過參照P-picture編碼方法中的先前畫面和未來畫面兩者,來對目標畫面進行編碼。特別是,MPEG-4和H.264標準規定以宏塊為單位或者以宏塊的細分塊為單位來執行運動向量補償。同樣,通過在由整數像素組成的塊上執行內插以獲得二分之一像素、四分之一像素或八分之一像素從而提高了數據精度之后,再現了運動向量補償。
圖1是解釋內插過程的圖。現參照圖1,陰影框1至4表示原始像素,即整數像素,而空白框5至9表示內插像素。該空白框5至8,也就是內插像素5至8,表示二分之一像素,而另一個空白框9表示四分之一像素。二分之一像素可以基于在垂直或水平方向上相鄰的整數像素或相鄰的二分之一像素來獲得。例如,二分之一像素5和8可以分別通過整數像素1和2以及整數像素3和4來獲得。同樣,二分之一像素6和7可以分別通過整數像素1和3以及整數像素2和4來獲得。四分之一像素9既可以通過二分之一像素5和8來獲得,也可以通過二分之一像素6和7來獲得。在此為方便起見,將整數像素的數目設定為4,但是在內插中使用的像素數目不作限定。例如,二分之一像素5可以從水平方向上鄰近于像素1和2的其他整數像素上獲得,也可以從整數像素1和2上獲得。用與相關原始像素的整數相同范圍內的整數來表示內插像素。如果用0和255之間的整數來表示原始像素,那么就同樣可以用0和255之間的整數來表示內插像素。
通常來講,由內插而增加的特定像素塊的像素數目越多,運動向量補償的精確度就越高。然而,這也并非總是對的。由于內插算法使用四舍五入、上舍入或下舍入來獲得具有整數值的內插像素,因而用內插算法獲得的像素值很有可能包含誤差。
因此,需要對內插算法進行設計,以便盡可能地消除誤差累積。為此目標,可以通過使用四舍五入、上舍入或下舍入中的任意一種,或者使用上述算法在不同時期的若干結合來計算內插像素,以便消除誤差。
此外,內插算法必需具有前后一致性。如果內插像素值根據算法所應用的程序的類型或者根據處理該算法的順序而變化,則運動向量補償就需要針對這些不同的數值類型來不同地執行。在這種情況下,可能會增加編碼器與解碼器之間的失配。失配的增加可能會導致圖像質量下降。圖5舉例說明了用于根據H.264標準(Draft ITU-T Rec.H.264(2002 E))獲得四分之一像素9的算法的例子。
發明內容
本發明提供了一種使用內插算法的內插方法和裝置,該內插算法一致性地實現了運動向量補償。
本發明還提供了一種使用內插算法的內插方法和裝置,該內插算法增加了運動向量補償效率。
依照本發明的一方面,提供了一種內插方法,包括(a)通過分別向二分之一像素提供預定權值并將已加權的二分之一像素相加,來計算在水平方向上與預定四分之一像素相鄰或相近的多個二分之一像素的值的水平和;(b)通過分別向二分之一像素提供預定權值并將已加權的二分之一像素相加,來計算在垂直方向上與該四分之一像素相鄰或相近的多個二分之一像素的值的垂直和;以及(c)使用垂直和與水平和來計算四分之一像素值的整數值。
在此,在(a)和(b)期間,當計算每個垂直和與水平和時所用的二分之一像素的總數是偶數。所給定的權值的和最好為“2n”。
依照本發明的另一方面所提供的內插方法包括通過分別向二分之一像素提供預定權值并將結果相加,來計算在水平方向上與預定四分之一像素相鄰的多個二分之一像素的值的水平和;通過使用水平和計算二分之一像素的平均值來計算二分之一像素的水平平均值,并將它們的平均值化為整數;通過分別向二分之一像素提供預定權值并將結果相加,來計算在垂直方向上與該四分之一像素相鄰的多個二分之一像素的值的垂直和;通過使用垂直和計算二分之一像素的平均值來計算二分之一像素的垂直平均值,并將它們的平均值化為整數;以及通過計算水平平均值與垂直平均值的平均值并將它們的平均值化為整數,來計算四分之一像素的值。
仍依照本發明的另一方面,提供了一種運動補償裝置,包括內插單元,該單元通過向在水平方向上與預定四分之一像素相鄰的多個二分之一像素提供權值并將結果相加來計算水平和,通過向在垂直方向上與該四分之一像素相鄰的多個二分之一像素提供權值并將結果相加來計算垂直和,以及使用垂直和與水平和來計算四分之一像素的整數值;和運動補償器,該運動補償器在由內插單元進行內插的像素塊上執行運動向量補償。
依照本發明的又一方面,提供了一種運動補償裝置,包括內插單元,該內插單元通過向二分之一像素提供權值并將結果相加,來計算在水平方向上與預定四分之一像素相鄰的多個二分之一像素的水平和,使用該水平和計算二分之一像素的水平平均值并將該水平平均值化為整數,通過向二分之一像素提供權值并將結果相加,來計算在垂直方向上與該四分之一像素相鄰的多個二分之一像素的垂直和,使用該垂直和計算二分之一像素的垂直平均值并將垂直平均值化為整數,計算水平平均值與垂直平均值的平均值并將它們的平均值化為整數,以及將該整數確定為四分之一像素的值;和運動補償器,該運動補償器在由內插單元進行內插的像素塊上執行運動向量補償。
通過參照附圖來詳細描述本發明的優選實施例,將使本發明上述方面和其它方面、以及有益效果變得更加明顯。
圖1是解釋內插過程的圖;圖2是包括依照本發明優選實施例的運動補償器的編碼器的結構圖;圖3是向圖2中編碼器輸入圖像數據的例子;
圖4是包括依照本發明優選實施例的運動補償器的解碼器的結構圖;圖5是示出多種參照方法的圖;圖6是示出作為運動向量補償的測量單位的運動向量補償塊的圖;圖7是示出由依照本發明優選實施例的內插單元執行的內插的圖;和圖8是示出由依照本發明另一實施例的內插單元執行的內插的圖;具體實施方式
圖2是包括依照本發明優選實施例的運動補償器的編碼器的結構圖。現參照圖2,該編碼器適用于多種參照方法來對圖像數據進行編碼,并且包括編碼控制器100、轉換編碼器200、轉換解碼器300、存儲器400、運動補償器500、運動估算器600以及熵編碼器700。多種參照方法隨后將會說明。
輸入數據由從照相機中輸入的幀組成,或者由具有預定大小的幀的細分塊組成。幀可以是使用順序掃描方法獲得的順序掃描幀,也可以是使用隔行掃描方法獲得的半幀或者隔行掃描幀。在本篇公開內容中,圖像數據相當于由順序掃描幀、隔行掃描幀、半幀以及塊組成的畫面。
當將圖像數據輸入到編碼控制器100時,編碼控制器100基于所輸入圖像數據的特征或者用戶渴望的預定操作對象,來檢查該圖像數據的編碼類型(例如,內部編碼或中間編碼),從而確定是否會在圖像數據上執運動向量補償行。接著,編碼控制器100將與檢查結果相對應的控制信號輸出到第一開關S1。為了執行運動向量補償,將第一開關S1打開來獲得先前或未來的圖像數據。然而,如果確定將不執行運動向量補償,則由于不需要先前或未來的圖像數據而將第一開關S1關閉。當第一開關打開時,將輸入圖像數據與先前或未來圖像數據之間的差別數據,連同輸入圖像數據一起輸入到轉換編碼器200。否則,僅有輸入圖像數據輸入到轉換編碼器200。
轉換編碼器200在輸入圖像數據上執行轉換編碼,來獲得轉換系數,并且依照預定量化步驟來量化轉換系數,從而獲得由已量化的轉換系數組成的2維(2D)數據N×M。在此,可以使用離散余弦變換(DCT)并且依照預定量化步驟來實現量化。
其間,輸入到轉換編碼器并由轉換編碼器200編碼的圖像數據,可以用作關于先前或未來輸入圖像數據的運動向量補償的參照數據。由此,轉換解碼器300執行反向量化和反向轉換編碼,這是由轉換編碼器200在圖像數據上為獲得轉換系數而執行的量化和轉換編碼的逆運算。將所獲得的系數存儲在存儲器400中。如果從轉換解碼器300輸出的數據是不同的圖像數據,則編碼控制器100打開第二開關S2,以便于將不同的圖像數據與運動補償器500的輸出相加在一起,并且將相加結果存儲在存儲器400中。
運動估算器600將輸入圖像數據與存儲于存儲器400中的數據進行比較,以便檢測出與該輸入數據最為相似的數據,將所檢測數據與輸入數據進行比較,并基于比較結果輸出運動向量(MV)。在此,MV是通過參照至少一個畫面來獲得的。作為選擇,MV還可以通過參照多個先前和/或未來畫面來獲得。當將MV發送到存儲器400時,存儲器400將與該MV相對應的數據輸出到運動補償器500,并且運動補償器500基于與將要編碼的圖像數據相關的輸入數據,來產生并輸出運動向量補償值。
熵編碼器700接收從轉換編碼器200輸出的已量化的轉換系數、接收從運動估算器600輸出的與MV相關的數據,并且接收從編碼控制器100輸出的關于編碼類型、量化步驟和解碼的信息。對所接收的轉換系數和信息進行編碼并繼而作為比特流輸出。
依照本發明優選實施例的運動補償器500,對關于圖像數據的運動向量誤差進行補償,并且該運動補償器包括內插單元5。該內插單元5在圖像數據上執行內插,當由運動補償器500產生運動向量補償值時需要執行上述內插操作,以便于提高圖像數據的分辨率。由內插單元5執行的內插(或內插算法)將在后面進行描述。
圖4是包括依照本發明優選實施例的運動補償器的解碼器的結構圖。現參照圖4,該解碼器是用于對由圖2中編碼器編碼的比特流進行解碼的裝置。該解碼器包括分離比特流的信號分離器110、編碼類型信息分析器120、依照本發明分析MV的運動向量(MV)分析器130、轉換解碼器210、存儲器410、運動補償器510以及熵解碼器710。
信號分離器110分離比特流,從而成為轉換系數以及諸如關于MV和編碼類型的信息,其中上述轉換系數和信息被熵編碼和量化。熵解碼器710對熵編碼轉換系數進行熵解碼,并將其結果作為已量化的轉換系數輸出。轉換解碼器210在量化后的轉換系數上執行轉換解碼,也就是由圖3中轉換編碼器執行的轉換過程的逆運算。例如,如果轉換編碼器200執行DCT,則轉換解碼器210通過在已量化的轉換系數上執行反DCT(IDCT)來重建原始圖像數據。將重建的圖像數據存儲在存儲器400中以用于運動向量補償。
編碼類型信息分析器120確定圖像數據的編碼類型,并且當編碼類型為需要運動向量補償的中間類型時,就打開第三開關S30。在這種情況下,將從轉換解碼器210輸出的數據與從運動補償器510輸出的運動向量補償值相加。上述兩者的和就是重建的圖像數據。MV分析器130基于有關MV的信息確定由MV表示的位置,并且運動補償器510使用由MV表示的參照圖像數據來產生并輸出的運動向量補償值。
依照本發明優選實施例的運動補償器510為圖像數據的運動進行補償,并且該運動補償器包括內插單元5。該內插單元5在圖像數據上執行內插,當由運動補償器510產生運動向量補償值時需要執行上述內插操作,以便于提高圖像數據的分辨率。由內插單元5執行的內插(或內插算法)將在后面進行描述。
圖5是舉例說明多種參照方法的圖。現參照圖5,畫面I0表示在未參照其它畫面的情況下獲得的內部畫面。畫面B2至B7表示雙向預測畫面,這些畫面是通過參照兩個或多個不同畫面來獲得的,而畫面P8表示僅參照畫面I0來獲得的預測畫面。在圖5中,箭頭表明在解碼中使用的畫面之間的關系。例如,畫面B2從屬于畫面I0和P4,而畫面B3從屬于畫面I0,P4,B1和B2。為此,雖然按照I0,B1,B2,B3和P4的順序來顯示畫面,但是畫面是按照I0,P4,B1,B2和B3的順序來傳輸的。當使用圖2的編碼器來對圖像數據進行編碼時,通過參照多個畫面來產生畫面BX。換言之,在圖2的編碼器以及圖4的解碼器中,使用雙向預測方法和/或向前預測方法、向后預測方法、以及直接預測方法中的至少一種來產生MV。在雙向預測方法中,兩個參照畫面可以是兩個先前的畫面、兩個未來的畫面或者一個先前畫面和一個未來畫面。
圖6舉例說明作為運動向量補償的測量單位的運動向量補償塊的圖。現參照圖6,一個畫面由多個運動向量補償塊組成。該運動向量補償塊有幾種類型,包括16×16宏塊(MBs)、在水平方向上為16×16MBs的一半的16×8MBs、在垂直方向上為16×16MBs的一半的8×16MBs、在水平方向或垂直方向上為8×16或16×8MBs的一半的8×8MBs、在水平方向或垂直方向上為8×8MBs的一半的8×4MBs或4×8MBs、以及在垂直或水平方向上為8×4或4×8MBs的一半的4×4MBs。
圖7是舉例說明由依照本發明優選實施例的內插單元執行的內插的圖。特別是,圖7示出了包括運動向量補償塊的像素。陰影框表示整數像素而空白框表示內插像素。該內插單元使用以下方法之一來測量四分之一像素100的值,這些方法包括方法11-(a)首先,通過分別向所述值提供預定權值并繼而將結果相加,來計算在水平方向上與四分之一像素100相鄰的多個二分之一像素的值的水平和Sum_h_100。在此,當計算四分之一像素100的值時所使用的多個二分之一像素的范圍不作限制,但是二分之一像素的總數必需是偶數。例如,如果二分之一像素的數目是2,則選擇二分之一像素11和12,如果二分之一像素的數目是4,則除了二分之一像素11和12之外,還選擇二分之一像素13至14,如果二分之一像素的數目是6則另外選擇二分之一像素11至16。該權值可以按下述方式來確定(i)提供給靠近四分之一像素100的二分之一像素的權值的絕對值,大于提供給遠離四分之一像素100的二分之一像素的權值的絕對值,和(ii)與四分之一像素100距離相同的二分之一像素的絕對值是相同的。提供的所有權值的總和是“2n”。
例如,當使用6個二分之一像素并且提供給上述二分之一像素的權值為a,b,c,d,e和f時,由[(a*二分之一像素15)+(b*二分之一像素13)+(c*二分之一像素11)+(d*二分之一像素12)+(e*二分之一像素14)+(f*二分之一像素16)]來計算水平和Sum_h_100。在此,a+b+c+d+e+f=2n。
1-(b)通過分別向所述值提供預定權值并隨后將結果相加,來計算在垂直方向上與四分之一像素100相鄰的多個二分之一像素的值的垂直和Sum_v_100。正如計算水平和Sum_h_100時一樣,對二分之一像素的范圍也不作限制,但是用來計算水平和Sum_h_100的二分之一像素的數目最好等于用來計算垂直和Sum_v_100的二分之一像素的數目。此外,最好與計算水平和Sum_h_100時一樣來確定權值。
例如,當選擇6個二分之一像素并且提供給上述二分之一像素的權值為a,b,c,d,e和f時,由[(a*二分之一像素25)+(b*二分之一像素23)+(c*二分之一像素21)+(d*二分之一像素22)+(e*二分之一像素24)+(f*二分之一像素26)]來計算垂直和Sum_v_100。
1-(c)其值為整數值的四分之一像素100,它是使用水平和Sum_h_100和垂直和Sum_v_100來計算的。詳細來說,四分之一像素100的值是通過將水平和Sum_h_100與垂直和Sum_v_100相加并計算它們的平均值M_hv來獲得的,按下式來計算它們的平均值M_hv=(Sum_h_100+Sum_v_100)/[2*(a+b+c+d+e+f)] (1)接下來,通過上舍入、下舍入或者四舍五入將平均值M_hv化為整數。在這種情況下,四舍五入使誤差隨機化和最小化。該整數就是四分之一像素100的值。如果該整數沒能落在與原始像素相同的范圍內,那么使用適當的映射算法將該整數映射成具有相同范圍的整數。例如,當原始像素以從0到255之間范圍的整數來表示時,所獲得的四分之一像素的值必須是在相同范圍內的整數。
方法22-(a)首先,通過分別為多個二分之一像素提供預定權值并繼而將結果相加,來計算在水平方向上與四分之一像素100相鄰的多個二分之一像素的值的水平和Sum_h_100。對二分之一像素的范圍不作限制。例如,當二分之一像素的數目是2時,選擇二分之一像素11和12。當二分之一像素的數目是4時,除了二分之一像素11和12之外,還選擇二分之一像素13至14。如果二分之一像素的數目是6,則另外選擇二分之一像素11至16。該權值可以按下述方式來確定(i)提供給靠近四分之一像素100的二分之一像素的權值的絕對值,大于提供給遠離四分之一像素100的二分之一像素的權值的絕對值,和(ii)與四分之一像素100距離相同的二分之一像素的絕對值是相同的。
例如,當選擇6個二分之一像素并且提供給上述二分之一像素的權值為a,b,c,d,e和f時,由[(a*二分之一像素15)+(b*二分之一像素13)+(c*二分之一像素11)+(d*二分之一像素12)+(e*二分之一像素14)+(f*二分之一像素16)]來計算水平和Sum_h_100。
2-(b)通過計算水平和Sum_h_100的平均值M_h并且將該平均值化為整數,來獲得二分之一像素的水平平均值integer_M_h。
更具體而言,考慮到提供給多個二分之一像素的權值,水平和Sum_h_100的平均值M_h按如下來計算M_h=(Sum_h_100)/(a+b+c+d+e+f) (2)接下來,通過上舍入、下舍入或四舍五入將平均值M_h化為整數。四舍五入使誤差隨機化和最小化。該整數就是水平平均值integer_M_h。
2-(c)通過向所述值提供預定權值并繼而將結果相加,來計算在垂直方向上與四分之一像素100相鄰的多個二分之一像素的值的垂直和Sum_v_100。正如計算水平和Sum_h_100時一樣,對二分之一像素的范圍不作限制,但是與水平和Sum_h_100相關的二分之一像素的數目最好等于與垂直和Sum_v_100相關的二分之一像素的數目。此外,最好與計算水平和Sum_h_100時一樣來確定權值。
例如,當選擇6個二分之一像素并且提供給上述二分之一像素的權值為a,b,c,d,e和f時,由[(a*二分之一像素25)+(b*二分之一像素23)+(c*二分之一像素21)+(d*二分之一像素22)+(e*二分之一像素24)+(f*二分之一像素26)]來計算垂直和Sum_v_100。
2-(d)通過計算垂直和Sum_v_100的平均值M_v并且將該平均值M_v化為整數,來獲得二分之一像素的垂直平均值integer_M_v。
更具體而言,考慮到提供給多個二分之一像素的權值,平均值M_v按如下來計算M_v=(Sum_v_100)/(a+b+c+d+e+f) ...... (3)接下來,通過上舍入、下舍入或四舍五入來將平均值M_v化為整數。四舍五入使誤差隨機化和最小化。該整數就是垂直平均值integer_M_v。
2-(e)四分之一像素100的值是通過計算水平和Sum_h_100和垂直和Sum_v_100的平均值并且將該平均值化為整數來計算的,所使用的方程如下四分之一像素100=integer[(integer_M_h+integer_M_v)/2](4)其中,integer[]表示基于由附在括號[]中的公式計算的值來生成整數的操作。在這種情況下,可以使用上舍入、下舍入、四舍五入。四舍五入使誤差隨機化和最小化。
作為選擇,即使按照2-(c),2-(d),2-(a),2-(b),2-(e)的順序來執行方法2,也能夠獲得相同的結果。
此外,其它內插像素值,即八分之一像素或十六分之一像素,可以通過上述計算四分之一像素100的方法來計算。
圖8是舉例說明由依照本發明的另一實施例的內插單元執行的內插的圖。具體而言,圖8示出了構成預定運動向量補償塊或其部分的像素。在此,陰影框和空白框分別表示整數像素和內插像素。在依照該實施例的內插過程中,使用了多個像素,即6個像素來計算內插像素的值。同樣,分別給上述像素提供權值。當給上述像素提供權值時,采用了具有6個分支值的6分支過濾器。分支值是提供給為內插而選出的像素的權值。在該實施例中,將分支值確定為(1,-5,20,20,-5,1)。像素的數目以及權值,即分支值是沒有限制的。
二分之一像素b使用在水平方向上與二分之一像素b相鄰的6個整數像素E,F,G,H,I和J,來計算二分之一像素b的值。當將整數像素E,F,G,H,I和J輸入到上述6分支過濾器中時,從6分支(6-tap)過濾器輸出其水平和Sum_h_b。水平和Sum_h_b由以下方程來計算Sum_h_b=(E-5F+20G+20H-5I+J)... (5)接下來,通過給水平和Sum_h_b加上16,將相加的結果除以32,再將除得的結果化為整數并調節該整數的范圍,來計算二分之一像素b的值,正如下面方程所示b=Clip1[(Sum_h_b+16)>>5] (6)其中將水平和Sum_h_b加上16,以使得將水平和Sum_h_b四舍五入化為整數。>>5表示將所獲得的整數除以32(=25)并且在除得的結果中省略了小數點后面的位的操作。該省略操作的原因是6分支過濾器的分支值的和是32,且平均像素值需要被32除。Clip1()表示映射由公式Sum_h_b+16獲得的整數落在原始像素即整數像素范圍內的操作。例如,如果整數像素落在0到255之間范圍內,那么當該平均值沒有落在相同范圍內時,Clip1()將所獲得的平均值映射到相同范圍內的預定值上。
二分之一像素h二分之一像素h的值是使用在垂直方向上與二分之一像素h相鄰的6個整數像素A,C,G,M,R和T來計算的。當將整數像素A,C,G,M,R和T輸入到上述6分支過濾器中時,從6分支過濾器輸出其垂直和Sum_v_h。垂直和Sum_v_h由以下方程來計算Sum_v_h=(A-5C+20G+20M-5R+T)... (7)接下來,通過給垂直和Sum_v_h加上16,將相加的結果除以32,再將除得的結果化為整數并調節該整數的范圍,來計算二分之一像素h的值,正如下面方程所示h=Clip1[(Sum_v_h+16)>>5]… (8)
其中將垂直和Sum_v_h加上16,以使得將垂直和Sum_v_h四舍五入化為整數。>>5表示將所獲得的整數除以32(=25)并且在除得的結果中省略了小數點后面的位的操作。省略小數點后面的位的原因是因為6分支過濾器的分支值的和是32,也就是說將32個像素值相加,且平均像素值需要被32除。Clip1()表示映射由公式Sum_v_h+16獲得的整數落在原始像素即整數像素范圍內的操作。例如,如果整數像素落在0到255之間范圍內,那么當該平均值沒有落在相同范圍內時,Clip1()將所獲得的平均值映射到相同范圍內的預定值上。
二分之一像素s二分之一像素s的值也可以使用計算二分之一像素b的值的方法并按下面所示的方程來計算Sum_h_s=(K-5L+20M+20N-5P+Q)s=Clip1[(Sum_h_s+16)>>5] (9)二分之一像素m二分之一像素m的值也可以使用計算二分之一像素h的值的方法并按下面所示的方程來計算Sum_v_m=(B-5D+20H+20N-5S+U)m=Clip1[(Sum_v_m+16)>>5] (10)四分之一像素j四分之一像素j的值使用下面的方法之一,和在水平方向上與四分之一像素相鄰的6個二分之一像素cc,dd,h,m,ee和ff,以及在垂直方向上與四分之一像素相鄰的6個二分之一像素aa,bb,b,s,gg和hh來計算。也就是說總共使用12個二分之一像素。
方法3首先,將6個二分之一像素cc,dd,h,m,ee和ff的值輸入到上述6分支過濾器中,從該6分支過濾器中輸出其水平和Sum_h_j,如在下面方程中所示出的Sum_h_j=(cc-5dd+20h+20m-5ee+ff)... (11)接下來,將6個二分之一像素aa,bb,b,s,gg和hh的值輸入到該6分支過濾器中,從該6分支過濾器中輸出其垂直和Sum_v_j,如在下面方程中所示出的
Sum_v_j=(aa-5bb+20b+20s-5gg+hh) (12)下一步,使用下面的方程,通過計算水平和Sum_h_j和垂直和Sum_v_j的平均值并將該平均值化為整數,以及調節該整數的范圍,來獲得四分之一像素j的值,該方程為j=Clip1[(Sum_h_j+Sum_v_j+32)>>6]... (13)其中(Sum_h_j+Sum_v_j+32)>>6是通過將Sum_h_j+Sum_v_j加上32來使得Sum_h_j+Sum_v_j化為整數、將相加的結果除以64并刪除該除得結果的小數點后面的位的操作。在此,將Sum_h_j+Sum_v_j加上32以使得將Sum_h_j+Sum_v_j四舍五入為整數。Clip1()是將使用(Sum_h_j+Sum_v_j+32)>>6獲得的整數映射到原始像素值的范圍內的值。例如,如果原始像素值在0到255之間范圍內降低,那么當該整數在相同范圍內沒有降低時,Clip1()將所獲得的整數映射到該相同范圍內的預定值上。
方法4首先,將在水平方向上與四分之一像素j相鄰的6個二分之一像素cc,dd,h,m,ee和ff的值輸入到上述6分支過濾器中,以獲得其水平和Sum_h_j。接下來,通過計算水平和Sum_h_j的平均值并將該平均值化為整數,來獲得二分之一像素的水平平均值M_h_j,如以下方程所示Sum_h_j=(cc-5dd+20h+20m-5ee+ff)M_h_j=Clip1[(Sum_h_j+16)>>5]... (14)接下來,將在垂直方向上與四分之一像素j相鄰的6個二分之一像素aa,bb,b,s,gg和hh的值輸入到上述6分支過濾器中,以便獲得其垂直和Sum_v_j。下一步,通過計算垂直和Sum_v_j的平均值并將該平均值化為整數,來獲得二分之一像素的垂直平均值M_v_j,如以下方程所示Sum_v_j=(aa-5bb+20b+20s-5g+hh)M_v_j=Clip1[(Sum_v_j+16)>>5]... (15)其次,使用下面的方程,通過計算水平平均值M_h_j和垂直平均值M_v_j的平均值并將該平均值化為整數,來獲得四分之一像素j的值,該方程為j=Clip1[(M_h_j+M_v_j+1)>>1]... (16)其它四分之一像素、八分之一像素、或者十六分之一像素的值可以使用計算四分之一像素j的方法來計算。
如上所述,依照本發明的內插方法和裝置使用了在運動向量補償中具有一致性的內插算法,由此提高了運動向量補償的效率。
上述內插算法可以具體化為能夠由計算機或處理器執行的計算機程序。構成該計算機程序的代碼以及代碼段可以由本領域普通技術人員來輕易地生成。當該程序由計算機讀取并執行時,實現內插。該程序可以存儲在包括軟件、固件、硬件的計算機可讀介質,以及適用本發明的其他媒體,所述其他媒體包括磁記錄媒體、光記錄媒體或載波媒體,或者是它們的結合,但是并不僅限于此。
雖然參照本發明的優選實施例已對本發明進行了特定的說明,但是本領域技術人員將會在不脫離由所附權利要求限定的本發明的實質和范圍的情況下,從中作出形式和細節上的各種變化。
權利要求
1.一種內插方法,包括通過向第一組多個二分之一像素中的二分之一像素提供預定權值,并將該第一組多個二分之一像素中的已加權二分之一像素相加,來計算在水平方向上與預定四分之一像素相鄰或相近的第一組多個二分之一像素的值的水平和;通過向第二組多個二分之一像素中的二分之一像素提供預定權值,并將該第二組多個二分之一像素中的已加權二分之一像素相加,來計算在垂直方向上與該四分之一像素相鄰或相近的第二組多個二分之一像素的值的垂直和;基于垂直和與水平和來計算四分之一像素的整數值;以及將該四分之一像素的整數值作為內插值輸出。
2.如權利要求1所述的內插方法,其特征在于當計算每個垂直和與水平和時所使用的二分之一像素的總數是偶數。
3.如權利要求1所述的內插方法,其特征在于所提供的預定權值的和是2n,n是所使用的預定權值的數目。
4.如權利要求1所述的內插方法,其特征在于在計算垂直和與水平和時,將該第一組多個二分之一像素和第二組多個二分之一像素各自輸入到分支過濾器中,其中該分支過濾器具有作為分支值的預定權值。
5.如權利要求4所述的內插方法,其特征在于預定權值的和是2n,n是所使用的預定權值的數目。
6.如權利要求5所述的內插方法,其特征在于將6個二分之一像素輸入6分支過濾器中,其中該6分支過濾器具有分支值(1,-5,20,20,-5,1)。
7.如權利要求1所述的內插方法,其特征在于通過計算垂直和與水平和的平均值,并將該平均值四舍五入化為整數,來獲得四分之一像素的整數值。
8.如權利要求7所述的內插方法,其特征在于使用下面的方程來計算四分之一像素的整數值,該方程為平均值=(水平和+垂直和)/[2*(a+b+c+d+e+f)]其中,a,b,c,d,e和f是6分支過濾器的分支值,該分支值是預定權值。
9.如權利要求7所述的內插方法,其特征在于在計算四分之一像素的整數值時,使用以下的方程四分之一像素=integer[(integer_M_h+integer_M_v)/2]integer_M_h=integer[水平和/(a+b+c+d+e+f)]integer_M_v=integer[垂直和/(a+b+c+d+e+f)]其中,a,b,c,d,e和f是6分支過濾器的分支值,且integer[]表示將使用在括號[]中表達的公式計算出的值化為整數的操作。
10.一種內插方法,包括通過向第一組多個二分之一像素中的二分之一像素提供預定權值,并將該第一組多個二分之一像素中已加權的二分之一像素相加,來計算在水平方向上與預定四分之一像素相鄰或相近的第一組多個二分之一像素的值的水平和;基于該水平和計算第一組多個二分之一像素中的二分之一像素的水平平均值,并將該平均值化為整數;通過向第二組多個二分之一像素中的二分之一像素提供預定權值,并將該第二組多個二分之一像素中已加權的二分之一像素相加,來計算在垂直方向上與該四分之一像素相鄰或相近的第二組多個二分之一像素的值的垂直和;基于該垂直和計算第二組多個二分之一像素中的二分之一像素的垂直平均值,并將該平均值化為整數;和通過計算水平平均值與垂直平均值的平均值,并將它們的平均值化為整數,來計算四分之一像素的值。
11.如權利要求10所述的內插方法,其特征在于在計算水平和與垂直和時,將該第一組多個二分之一像素和第二組多個二分之一像素各自輸入到分支過濾器中,其中該分支過濾器具有作為分支值的預定權值。
12.如權利要求10所述的內插方法,其特征在于在計算水平和與垂直和時,將6個二分之一像素輸入6分支過濾器中,其中該6分支過濾器具有分支值(1,-5,20,20,-5,1)。
13.如權利要求10所述的內插方法,其特征在于在計算四分之一像素的整數值時,使用以下的方程四分之一像素=integer[(integer_M_h+integer_M_v)/2]integer_M_h=integer[水平和/(a+b+c+d+e+f)]integer_M_v=integer[垂直和/(a+b+c+d+e+f)]其中,a,b,c,d,e和f是6分支過濾器的分支值,且integer[]表示將使用在括號[]中括起來的公式計算出的值化為整數的操作。
14.如權利要求10所述的內插方法,其特征在于在計算四分之一像素的整數值時,使用以下的方程四分之一像素=Clip1[(M_h+M_v+1)>>1]M_h=Clip1[(Sum_h+16)>>5]M_v=Clip1[(Sum_v+16)>>5]其中,Clip1是將所獲得的整數映射到與原始整數像素值相同范圍內的預定值上的操作,并且>>x是將其前面的項除以2x的操作。
15.一種運動補償裝置,包括內插單元,配置成通過向在水平方向上與預定四分之一像素相鄰或相近的多個第一組二分之一像素提供權值并將該第一組多個二分之一像素中已加權的二分之一像素相加來計算水平和,通過向在垂直方向上與四分之一像素相鄰或相近的多個第二組二分之一像素提供權值并將該第二組多個二分之一像素中的已加權二分之一像素相加來計算垂直和,并且基于垂直和與水平和來計算四分之一像素的整數值;和運動補償器,配置成在包含有由內插單元進行內插的四分之一像素的像素塊上執行運動向量補償,并輸出運動向量補償的結果。
16.如權利要求15所述的運動向量補償裝置,其特征在于把內插單元配置成將該第一組多個二分之一像素和第二組多個二分之一像素輸入到分支過濾器中,其中該分支過濾器具有作為分支值的預定權值。
17.如權利要求15所述的運動向量補償裝置,其特征在于把內插單元配置成將該第一組多個二分之一像素和第二組多個二分之一像素中至少其中一組的6個二分之一像素輸入6分支過濾器中,其中該6分支過濾器具有分支值(1,-5,20,20,-5,1)。
18.如權利要求15所述的運動向量補償裝置,其特征在于把內插單元配置成計算垂直和與水平和的平均值,并將該平均值四舍五入化為整數,來將該整數確定為四分之一像素的值。
19.如權利要求15所述的運動向量補償裝置,其特征在于把內插單元配置成基于以下方程來計算垂直和與水平和的平均值,該方程為平均值=(水平和+垂直和)/[2*(a+b+c+d+e+f)]其中,a,b,c,d,e和f是6分支過濾器的分支值。
20.如權利要求15所述的運動向量補償裝置,其特征在于把內插單元配置成基于以下方程來計算四分之一像素值,所述方程為四分之一像素=integer[(integer_M_h+integer_M_v)/2]integer_M_h=integer[水平和/(a+b+c+d+e+f)]integer_M_v=integer[垂直和/(a+b+c+d+e+f)]其中,a,b,c,d,e和f是6分支過濾器的分支值,且integer[]表示將使用在括號[]中括起來的公式計算出的值化為整數的操作。
21.一種運動補償裝置,包括內插單元,配置成通過向第一組多個二分之一像素中的二分之一像素提供權值并將該第一組多個二分之一像素中已加權的二分之一像素相加,來計算在水平方向上與預定四分之一像素相鄰或相近的第一組多個二分之一像素的水平和,基于水平和計算第一組多個二分之一像素的水平平均值,并將該水平平均值化為整數,通過向第二組多個二分之一像素中的二分之一像素提供權值并將該第二組多個二分之一像素中已加權的二分之一像素相加,來計算在垂直方向上與該四分之一像素相鄰的第二組多個二分之一像素的垂直和,基于垂直和計算第二組多個二分之一像素中的二分之一像素的垂直平均值,并將該垂直平均值化為整數,基于水平平均值與垂直平均值的平均值,來計算四分之一像素平均值,并且將該四分之一像素平均值化為整數,以及將該整數確定為四分之一像素的內插值;和運動補償器,配置成在包含由內插單元進行內插的四分之一像素的像素塊上執行運動向量補償,并輸出運動向量補償的結果。
22.如權利要求21所述的運動補償裝置,其特征在于把內插單元進一步配置成將該第一組多個二分之一像素和第二組多個二分之一像素輸入到分支過濾器中,其中該分支過濾器具有作為分支值的權值。
23.如權利要求21所述的運動向量補償裝置,其特征在于把內插單元進一步配置成計算以下的方程四分之一像素=Clip1[(M_h+M_v+1)>>1]M_h=Clip1[(Sum_h+16)>>5]M_v=Clip1[(Sum_v+16)>>5]其中,Clip1是將所獲得的整數映射到與原始整數像素值相同范圍內的預定值上的操作,并且>>x是將其前面的項除以2x的操作。
24.一種編碼裝置,包括內插單元,配置成通過向第一組多個二分之一像素中的二分之一像素提供權值并將該第一組多個二分之一像素中已加權的二分之一像素相加,來計算在水平方向上與預定四分之一像素相鄰或相近的第一組多個二分之一像素的水平和,基于水平和計算第一組多個二分之一像素的水平平均值,并將該水平平均值化為整數,通過向第二組多個二分之一像素中的二分之一像素提供權值并將該第二組多個二分之一像素中已加權的二分之一像素相加,來計算在垂直方向上與該四分之一像素相鄰或相近的第二組多個二分之一像素的垂直和,基于垂直和計算第二組多個二分之一像素的垂直平均值,并將該垂直平均值化為整數,計算垂直平均值與水平平均值的四分之一像素平均值,并將該四分之一像素平均值化為整數,以及將該整數確定為四分之一像素的內插值;和運動補償器,配置成在包含由內插單元進行內插的四分之一像素的像素塊上執行運動向量補償,并輸出運動向量補償的結果。
25.如權利要求24所述的編碼裝置,其特征在于把內插單元配置成將該第一組多個二分之一像素和第二組多個二分之一像素輸入到分支過濾器中,其中該分支過濾器具有作為分支值的權值。
26.如權利要求24所述的編碼裝置,其特征在于內插單元基于以下方程計算四分之一像素,所述方程為四分之一像素=Clip[(M_h+M_v+1)>>1]M_h=Clip1[(Sum_h+16)>>5]M_v=Clip1[(Sum_v+16)>>5]其中,Clip1是將所獲得的整數映射到與原始整數像素值相同范圍內的預定值上的操作,并且>>x是將其前面的項除以2x的操作。
27.一種解碼裝置,包括內插單元,配置成通過向第一組多個二分之一像素中的二分之一像素提供權值并將該第一組多個二分之一像素中已加權的二分之一像素相加,來計算在水平方向上與預定四分之一像素相鄰或相近的第一組多個二分之一像素的水平和,基于水平和計算第一組多個二分之一像素的水平平均值,并將該水平平均值化為整數,通過向第二組多個二分之一像素中的二分之一像素提供權值并將該第二組多個二分之一像素中已加權的二分之一像素相加,來計算在垂直方向上與該四分之一像素相鄰的第二組多個二分之一像素的垂直和,基于垂直和計算第二組多個二分之一像素的垂直平均值,并將該垂直平均值化為整數,計算垂直平均值與水平平均值的四分之一像素平均值,并將該四分之一像素平均值化為整數,以及提供該整數為內插四分之一像素的平均值;和運動補償器,配置成在包含有由內插單元進行內插的四分之一像素的像素塊上執行運動向量補償,并輸出運動向量補償。
28.如權利要求27所述的解碼裝置,其特征在于把內插單元進一步配置成將該第一組多個二分之一像素和第二組多個二分之一像素輸入到分支過濾器中,其中該分支過濾器具有作為分支值的權值。
29.如權利要求27所述的解碼裝置,其特征在于內插單元基于以下方程計算四分之一像素,所述方程為四分之一像素=Clip1[(M_h+M_v+1)>>1]M_h=Clip1[(Sum_h+16)>>5]M_v=Clip1[(Sum_v+16)>>5]其中,Clip1是將所獲得的整數映射到與原始整數像素值相同范圍內的預定值上的操作,并且>>x是將其前面的項除以2x的操作。
全文摘要
提供了用于運動向量補償的內插方法和裝置。該內插方法包括通過向每個二分之一像素提供預定權值并將結果相加,來計算在水平方向上與預定的四分之一像素相鄰或相近的多個二分之一像素的值的水平和;通過向每個二分之一像素提供預定權值并將結果相加,來計算在垂直方向上與該四分之一像素相鄰或相近的第二組多個二分之一像素的值的垂直和;以及使用垂直和與水平和來計算四分之一像素的整數值。依照本發明的一個方面,可以對運動向量中的誤差實現具有更高一致性和可靠性的補償,由此提高運動向量補償的效率。
文檔編號H04N7/36GK1495674SQ03147030
公開日2004年5月12日 申請日期2003年9月1日 優先權日2002年8月31日
發明者樸正 , 樸正煇, 李英烈, 金容帝 申請人:三星電子株式會社