專利名稱:幀運動補償編碼、解碼方法、裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻編解碼領(lǐng)域,尤其涉及一種幀運動補償編碼、解碼方法、裝置。
背景技術(shù):
在現(xiàn)有視頻文件的編碼算法中,對于P幀和B幀的運動補償方案一般是假設(shè)當前 編碼幀相對于參考幀僅存在X方向和Y方向的位移例如P幀是假設(shè)當前編碼幀相對于其 前向參考幀僅存在X方向和Y方向的位移、B幀是假設(shè)當前編碼幀相對于其前向和后向參 考幀僅存在X方向和Y方向的位移。然而,在實際過程中,幀與幀之間的運動變化往往是復雜多樣的,很多幀內(nèi)圖像細 節(jié)無規(guī)律的變化并不僅限于平移,傳統(tǒng)的運動參考模型在圖像運動變化的方面無法很好的 表現(xiàn)出來,造成了當前編碼幀和參考幀之間差異較大,那么就導致編碼效率較低,壓縮性能 還有待于提高。綜上所述,現(xiàn)有技術(shù)在處理幀與幀之間的圖像變化時,無法很好的處理圖像之間 的無規(guī)律變化,導致編碼效率、壓縮性能低。
發(fā)明內(nèi)容
本發(fā)明實施例的目的在于提出一種幀運動補償編碼、解碼方法,旨在解決現(xiàn)有技 術(shù)在處理幀與幀之間的圖像變化時,無法很好的處理圖像之間的無規(guī)律變化,導致編碼效 率、壓縮性能低問題。本發(fā)明提供一種幀運動補償編碼方法,該方法包括確定當前編碼幀和參考幀之間對應(yīng)的標記點參數(shù);根據(jù)所述標記點參數(shù)對參考幀進行扭曲變換,得到扭曲參考幀;當前編碼幀劃分成宏塊,采用所述基于扭曲參考幀的運動補償、基于原始參考幀 的運動補償編碼代價最小的形式對當前編碼幀進行編碼,若采用了當前編碼幀對應(yīng)的扭曲 參考幀進行編碼,則將所述扭曲參考幀標識位置1,并存儲所述標記點參數(shù)。其中,所述采用基于扭曲參考幀的運動補償、基于原始參考幀的運動補償?shù)木幋a 代價最小的形式對當前編碼幀進行編碼獲取所述當前編碼幀每一個宏塊對應(yīng)的扭曲參考 幀的編碼代價的和A、以及獲取所述當前編碼幀每一個宏塊對應(yīng)的參考幀的編碼代價的和 B,以及生成扭曲參考幀所需的額外編碼代價D ;若A+D小于B,則采用所述扭曲參考幀進行 編碼。其中,所述采用所述扭曲參考幀、參考幀編碼代價最小的形式對當前編碼幀進行 編碼具體為比較當前編碼幀每一個宏塊對應(yīng)的扭曲參考幀編碼代價與參考幀編碼代價大 小;然后獲取當前編碼幀每一個宏塊對應(yīng)的扭曲參考幀編碼代價與參考幀編碼代價較小的 編碼代價和C,以及獲取所述當前編碼幀每一個宏塊對應(yīng)的參考幀編碼代價的和B,以及生 成扭曲參考幀所需的額外編碼代價D ;若和C+D小于和B,則采用當前編碼幀的每一個宏塊 對應(yīng)的編碼代價較小的扭曲參考幀或參考幀進行編碼。
其中,所述的參考幀為當前編碼幀的前向參考幀;所述標記點參數(shù)包括標記點集、標記點數(shù)量、標記點位移量(detaX,detaY)、扭 曲限制參數(shù)范圍。其中,其特征在于,所述步驟根據(jù)所述標記點參數(shù)對所述參考幀進行扭曲變換,得到扭曲參考幀具 體為f(Pi) = Qi (其中Pi為參考幀上的點,qi為當前編碼幀上面的對應(yīng)點, 為正整數(shù)))ηfx (χ, y) = χ+ Yj wxiU(\ - (x,^) I)/=1 ηtools] fy (x,y) = y+^ wytu(\ ρι ~ ^ D、(1)其中w是指對應(yīng)標記點的扭曲加權(quán)值,Wxi表示在第i個標記點對當前坐標的X方 向上的扭曲加權(quán);Wyi表示在第i個標記點對當前坐標的y方向上的扭曲加權(quán);所述系數(shù)w具體由下式求出,Kw+P = Q(2)其中,P= (Pl,p2,…,pn)T, Q = (q17 q2,…,qn)T, Cli = Pi+(detaX, detaY),K 為 nXn矩陣,Kij = U(riJ),riJ為參考幀上第i個標記點到第j個標記點的距離Uxl…Uu'·· ·K =υηλ……I其中U(rij)具體為U(r)一 tiΨ3,0(Γ/α) = (1-r/a)2+Ψ3,1(Γ/α) = (1-r/aY+(4r/a + \)Ψ3>2(Γ/α) = (1-r/a)6+(35-(r/a)2 +18"其中a為扭曲限制范圍的參數(shù),Ψ3,0 Ψ⑶ ⑷^(5)Ψ3,2對應(yīng)上述的U(ru),r為參考幀上 第i個標記點到第j個標記點的距離。本發(fā)明還提供一種幀運動補償解碼方法,該方法包括判斷扭曲參考幀標識位是否置1,若是則根據(jù)標記點參數(shù)對扭曲參考幀進行解碼。其中,若扭曲參考幀標識位沒有置1,則根據(jù)參考幀進行解碼。本發(fā)明還提供一種幀運動補償編碼裝置,該裝置包括標記點參數(shù)單元,用于確定當前編碼幀和參考幀之間對應(yīng)的標記點參數(shù);扭曲參考幀單元,用于根據(jù)所述標記點參數(shù)對參考幀進行扭曲變換,得到扭曲參 考幀;處理單元,用于將當前編碼幀劃分成宏塊,采用所述基于扭曲參考幀的運動補償、 基于原始參考幀的運動補償編碼代價最小的形式對當前編碼幀進行編碼,若采用了當前編碼幀對應(yīng)的扭曲參考幀進行編碼,則將所述扭曲參考幀標識位置1,并存儲所述標記點參數(shù)。其中,所述的處理單元,用于采用基于扭曲參考幀的運動補償、基于原始參考幀的 運動補償?shù)木幋a代價最小的形式對當前編碼幀進行編碼獲取所述當前編碼幀每一個宏塊 對應(yīng)的扭曲參考幀的編碼代價的和A、以及獲取所述當前編碼幀每一個宏塊對應(yīng)的參考幀 的編碼代價的和B,以及生成扭曲參考幀所需的額外編碼代價D ;若A+D小于B,則采用所述 扭曲參考幀進行編碼。其中,所述的處理單元,用于采用所述扭曲參考幀、參考幀編碼代價最小的形式對 當前編碼幀進行編碼具體為比較當前編碼幀每一個宏塊對應(yīng)的扭曲參考幀編碼代價與參 考幀編碼代價大??;然后獲取當前編碼幀每一個宏塊對應(yīng)的扭曲參考幀編碼代價與參考幀 編碼代價較小的編碼代價和C,以及獲取所述當前編碼幀每一個宏塊對應(yīng)的參考幀編碼代 價的和B,以及生成扭曲參考幀所需的額外編碼代價D ;若和C+D小于和B,則采用當前編碼 幀的每一個宏塊對應(yīng)的編碼代價較小的扭曲參考幀或參考幀進行編碼。其中,所述標記點參數(shù)用于確定當前編碼幀和前向參考幀之間對應(yīng)的標記點參 數(shù)具體為標記點集、標記點數(shù)量、標記點位移量(detaX,detaY)、扭曲限制參數(shù)范圍。其中,所述的扭曲參考幀單元,用于根據(jù)所述標記點參數(shù)對參考幀進行扭曲變換, 得到扭曲參考幀具體為f (Pi) = Qi(其中Pi為參考幀上的點,Qi為當前編碼幀上面的對應(yīng) 點,1彡i彡n(n為正整數(shù)))η
= χ + ΣPi 一(文,少)I)/=1 ηfy O,少)=} + Σ 丨 pi - 少)I)/=1其中w是指對應(yīng)標記點的扭曲加權(quán)值,Wxi表示在第i個標記點對當前坐標的X方 向上的扭曲加權(quán);Wyi表示在第i個標記點對當前坐標的y方向上的扭曲加權(quán);所述系數(shù)w具體由下式求出,Kw+P = Q其中,P= (Pl,p2,…,pn)T, Q = (q17 q2,…,qn)T, Cli = Pi+(detaX, detaY),K 為 nXn矩陣,Kij = U(riJ),riJ為參考幀上第i個標記點到第j個標記點的距離"C/π Un …Ui;^mmJ" 1· ··爭《K= 21U(r)=判,妒/ a) = (l-r/a)l(4r/a + \)yVx2(rla) = {\-rlaY+{Z5-{rla)2 +18r/a + 3)其中a為扭曲限制范圍的參數(shù),Ψ3,C1 Ψ3>1 Ψ3,2對應(yīng)上述的U(rij),r為參考幀上 第i個標記點到第j個標記點的距離。本發(fā)明還提供一種幀運動補償解碼裝置,該裝置包括
判斷單元,用于判斷扭曲參考幀標識位是否置1 ;解碼單元,若判斷出扭曲參考幀標識位置1,則根據(jù)標記點參數(shù)對扭曲參考幀進行 解碼。其中,所述解碼單元,進一步用于若判斷出扭曲參考幀沒有置1,則根據(jù)參考幀進 行解碼。綜上所述,本發(fā)明通過記錄當前編碼幀和參考幀之間一系列特征點的位移情況, 構(gòu)建映射函數(shù)對原始參考幀進行扭曲變換,得到一個新的扭曲參考幀。由于標記點記錄了 當前幀與參考幀之間的無規(guī)律變化情況,扭曲參考幀與當前編碼幀更為近似,因此更有利 于節(jié)省碼率。當?shù)玫竭@個新的扭曲參考幀后,進一步判斷根據(jù)參考扭曲參考幀進行編碼所 需代價是否小于采用原始參考幀編碼,如果是則采用扭曲參考幀進行編碼,否則采用其他 形式編碼;本發(fā)明提供的方法可以在考慮幀與幀之間圖像無規(guī)律變化的情況下以編碼代價 最小的方式進行編碼,解決了現(xiàn)有技術(shù)的問題。
圖1是本發(fā)明實施例1幀運動補償編碼的方法流程圖;圖2是本發(fā)明實施例2P幀運動補償編碼的方法流程圖;圖3為P幀前向參考幀上標記點示意圖;圖4為P幀對應(yīng)其前向參考幀標記點示意圖;圖5為當前編碼幀劃分成宏塊示意圖;圖6為當前編碼幀宏塊對應(yīng)的扭曲參考幀編碼代價示意圖;圖7為當前編碼幀宏塊對應(yīng)的參考幀編碼代價示意圖;圖8是本發(fā)明實施例3幀運動補償編碼的方法流程圖;圖9為本發(fā)明實施例4幀運動補償解碼方法流程圖;圖10為本發(fā)明實施例5幀運動補償編碼裝置示意圖;圖11為本發(fā)明實施例6幀運動補償解碼裝置示意圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖和實施例,對 本發(fā)明進行進一步詳細說明,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。應(yīng)當理 解,此處所描寫的具體實施例,僅僅用于解釋本發(fā)明,并不用以限制本發(fā)明。實施例1,本發(fā)明實施例提供了一種幀運動補償編碼方法,參見圖1,該方法具體 為步驟101 確定當前編碼幀和參考幀之間對應(yīng)的標記點參數(shù);當前編碼幀為P幀時,參考幀為其前向編碼幀,也就是本領(lǐng)域技術(shù)人員通常所說 的原始參考幀。所述標記點參數(shù)包括標記點集、標記點數(shù)量、標記點位移量、扭曲限制參數(shù)范圍; 其中的標記點集包括了當前編碼幀和參考幀之間一一對應(yīng)的標記點對;當前編碼幀是P幀 時,標記點位移量是(detaX,detaY)。其中標記點集、標記點數(shù)量、扭曲限制參數(shù)都可以是根據(jù)參考幀和編碼幀的圖像情況而設(shè)定,本發(fā)明并不進行限定。步驟102 根據(jù)所述標記點參數(shù)對參考幀進行扭曲變換,得到扭曲參考幀;步驟103 當前編碼幀劃分成宏塊,采用所述基于扭曲參考幀的運動補償、基于原 始參考幀的運動補償編碼代價最小的形式對當前編碼幀進行編碼,若采用了當前編碼幀對 應(yīng)的扭曲參考幀進行編碼,則將所述扭曲參考幀標識位置1,并存儲所述標記點參數(shù);若沒 有采用扭曲參考幀進行編碼,則將扭曲參考幀標識位置0則采用參考幀進行編碼,不記錄 標記點參數(shù)。在步驟103中,由于本領(lǐng)域技術(shù)人員通常在進行幀編碼時,有時候也會采用幀內(nèi) 預(yù)測的形式進行編碼,將當前幀宏塊對應(yīng)的幀內(nèi)預(yù)測編碼代價最小的部分內(nèi)嵌到參考幀的 編碼代價中,來以最小的編碼代價進行編碼;因此本發(fā)明所述的采用參考幀編碼代價的形 式也可以包括幀內(nèi)預(yù)測的編碼代價,在此并不做限制。在本發(fā)明的技術(shù)方案中有時也就會出現(xiàn)幀內(nèi)預(yù)測的編碼代價較小的情況,那么此 時可以將當前編碼幀的宏塊對應(yīng)的幀內(nèi)預(yù)測的編碼代價最小的部分內(nèi)嵌到扭曲參考幀中, 從而最終采用扭曲參考幀+幀內(nèi)預(yù)測編碼代價與參考幀+幀內(nèi)預(yù)測編碼代價最小的形式進 行編碼。由于幀內(nèi)預(yù)測是一種本領(lǐng)域技術(shù)人員通用的做法,因此采用幀內(nèi)預(yù)測內(nèi)嵌入扭曲 參考幀和參考幀編碼代價的形式并不構(gòu)成對本發(fā)明的限制。本發(fā)明實施例1通過確定當前編碼幀和參考幀之間的標記點參數(shù),并通過標記點 參數(shù)對參考幀進行扭曲變換,新得到一個扭曲參考幀;由于這個參考幀通過選擇各個方向 的標記點,因此考慮了幀與幀之間圖像無規(guī)律變化的情況;當?shù)玫竭@個新的扭曲參考幀后, 進一步判斷根據(jù)該扭曲參考幀后是否為編碼代價最小,如果是則進行編碼;通過這一步的 比較過程可以進一步確定本發(fā)明采用代價最小的方式進行編碼,因此本發(fā)明提供的方法可 以在考慮幀與幀之間圖像無規(guī)律變化的情況下以編碼代價最小的方式進行編碼。實施例2,本發(fā)明實施例提供了一種P幀運動補償編碼方法,參見圖2,該方法具體 為步驟201 確定當前編碼幀P幀和P幀前向參考幀之間對應(yīng)的標記點參數(shù);詳細的標記點可以參見圖3和圖4,如圖3所示,該圖表示了參考幀,也就是P幀前 向參考幀上的標記點;如圖4所示,該圖表示了當前編碼幀,也就是P幀上與其前向參考幀 標記點一一對應(yīng)的標記點;這些標記點參數(shù)包括了 標記點集、標記點數(shù)量、標記點位移量 (detaX,detaY)、扭曲限制參數(shù)范圍。步驟202 根據(jù)所述標記點參數(shù)對P幀前向參考幀進行扭曲變換,得到扭曲參考 幀;得到扭曲參考幀的詳細方法為利用選好的參考幀和扭曲幀之間的η個標記點對的一一對應(yīng)關(guān)系f (Pi) = 1 (其 中Pi為原始參考幀上的點,Qi為當前編碼幀上面的對應(yīng)點,1 ^ i ^n(n為正整數(shù))),具體 插值函數(shù)如公式(1)所示
權(quán)利要求
1.一種幀運動補償編碼方法,其特征在于,該方法包括確定當前編碼幀和參考幀之間對應(yīng)的標記點參數(shù);根據(jù)所述標記點參數(shù)對參考幀進行扭曲變換,得到扭曲參考幀;當前編碼幀劃分成宏塊,采用所述基于扭曲參考幀的運動補償、基于原始參考幀的運 動補償編碼代價最小的形式對當前編碼幀進行編碼。
2.根據(jù)權(quán)利要求1所述的幀運動補償編碼方法,其特征在于,所述當前編碼幀劃分成 宏塊后,若采用了當前編碼幀對應(yīng)的扭曲參考幀進行編碼,則將所述扭曲參考幀標識位置 1,并存儲所述標記點參數(shù)。
3.根據(jù)權(quán)利要求1所述的幀運動補償編碼方法,其特征在于,所述采用基于扭曲參考 幀的運動補償、基于原始參考幀的運動補償?shù)木幋a代價最小的形式對當前編碼幀進行編 碼獲取所述當前編碼幀每一個宏塊對應(yīng)的扭曲參考幀的編碼代價的和A、以及獲取所述 當前編碼幀每一個宏塊對應(yīng)的參考幀的編碼代價的和B,以及生成扭曲參考幀所需的額外 編碼代價D ;若A+D小于B,則采用所述扭曲參考幀進行編碼。
4.根據(jù)權(quán)利要求1所述的幀運動補償編碼方法,其特征在于,所述采用所述扭曲參考 幀、參考幀編碼代價最小的形式對當前編碼幀進行編碼具體為比較當前編碼幀每一個宏 塊對應(yīng)的扭曲參考幀編碼代價與參考幀編碼代價大??;然后獲取當前編碼幀每一個宏塊對 應(yīng)的扭曲參考幀編碼代價與參考幀編碼代價較小的編碼代價和C,以及獲取所述當前編碼 幀每一個宏塊對應(yīng)的參考幀編碼代價的和B,以及生成扭曲參考幀所需的額外編碼代價D ; 若和C+D小于和B,則采用當前編碼幀的每一個宏塊對應(yīng)的編碼代價較小的扭曲參考幀或 參考幀進行編碼。
5.根據(jù)權(quán)利要求1至4所述的幀運動補償編碼方法,其特征在于,所述的參考幀為當前 編碼幀的前向參考幀;所述標記點參數(shù)包括標記點集、標記點數(shù)量、標記點位移量(detaX,detaY)、扭曲限 制參數(shù)范圍。
6.根據(jù)權(quán)利要求1至4所述的幀運動補償編碼方法,其特征在于,所述步驟根據(jù)所述標記點參數(shù)對所述參考幀進行扭曲變換,得到扭曲參考幀具體為f(Pi) = Qi (其中Pi為參考幀上的點,Cli為當前編碼幀上面的對應(yīng)點,1彡i彡n(n為 正整數(shù)))/=1i=l ( 1 )其中w是指對應(yīng)標記點的扭曲加權(quán)值,表示在第i個標記點對當前坐標的χ方向上 的扭曲加權(quán);Wyi表示在第i個標記點對當前坐標的y方向上的扭曲加權(quán);所述系數(shù)w具體由下式求出,Kw+P = Q(2)其中,P = (P1, P2,…,Pn)T,Q = (q1 q2,…,qn)T,Qi = Pi+(detaX, detaY), K 為 nXn 矩陣,Kij = U(riJ),riJ為參考幀上第i個標記點到第j個標記點的距離其中a為扭曲限制范圍的參數(shù),Ψ^ Ψ3,! Ψ3,2對應(yīng)上述的U(rij),r為參考幀上第1個標記點到第j個標記點的距離。
7.—種幀運動補償解碼方法,其特征在于,該方法包括判斷扭曲參考幀標識位是否置1,若是則根據(jù)標記點參數(shù)對扭曲參考幀進行解碼。
8.根據(jù)權(quán)利要求7所述的幀運動補償解碼方法,其特征在于,若扭曲參考幀標識位沒 有置1,則根據(jù)參考幀進行解碼。
9.一種幀運動補償編碼裝置,其特征在于,該裝置包括標記點參數(shù)單元,用于確定當前編碼幀和參考幀之間對應(yīng)的標記點參數(shù);扭曲參考幀單元,用于根據(jù)所述標記點參數(shù)對參考幀進行扭曲變換,得到扭曲參考幀;處理單元,用于將當前編碼幀劃分成宏塊,采用所述基于扭曲參考幀的運動補償、基于 原始參考幀的運動補償編碼代價最小的形式對當前編碼幀進行編碼,若采用了當前編碼幀 對應(yīng)的扭曲參考幀進行編碼,則將所述扭曲參考幀標識位置1,并存儲所述標記點參數(shù)。
10.根據(jù)權(quán)利要求9所述的幀運動補償編碼裝置,其特征在于,所述的處理單元,用于 采用基于扭曲參考幀的運動補償、基于原始參考幀的運動補償?shù)木幋a代價最小的形式對當 前編碼幀進行編碼獲取所述當前編碼幀每一個宏塊對應(yīng)的扭曲參考幀的編碼代價的和 A、以及獲取所述當前編碼幀每一個宏塊對應(yīng)的參考幀的編碼代價的和B,以及生成扭曲參 考幀所需的額外編碼代價D ;若A+D小于B,則采用所述扭曲參考幀進行編碼。
11.根據(jù)權(quán)利要求9所述的幀運動補償編碼裝置,其特征在于,所述的處理單元,用于 采用所述扭曲參考幀、參考幀編碼代價最小的形式對當前編碼幀進行編碼具體為比較當 前編碼幀每一個宏塊對應(yīng)的扭曲參考幀編碼代價與參考幀編碼代價大?。蝗缓螳@取當前編 碼幀每一個宏塊對應(yīng)的扭曲參考幀編碼代價與參考幀編碼代價較小的編碼代價和C,以及 獲取所述當前編碼幀每一個宏塊對應(yīng)的參考幀編碼代價的和B,以及生成扭曲參考幀所需 的額外編碼代價D ;若和C+D小于和B,則采用當前編碼幀的每一個宏塊對應(yīng)的編碼代價較 小的扭曲參考幀或參考幀進行編碼。
12.根據(jù)權(quán)利要求9至11所述的幀運動補償編碼裝置,其特征在于,所述標記點參數(shù)用于確定當前編碼幀和前向參考幀之間對應(yīng)的標記點參數(shù)具體為 標記點集、標記點數(shù)量、標記點位移量(detaX,detaY)、扭曲限制參數(shù)范圍。
13.根據(jù)權(quán)利要求9至11所述的幀運動補償編碼裝置,其特征在于,所述的扭曲參考幀 單元,用于根據(jù)所述標記點參數(shù)對參考幀進行扭曲變換,得到扭曲參考幀具體為f(Pi)= Cli(其中Pi為參考幀上的點,Cii為當前編碼幀上面的對應(yīng)點,1彡i彡n(n為正整數(shù)))
14.一種幀運動補償解碼裝置,其特征在于,該裝置包括 判斷單元,用于判斷扭曲參考幀標識位是否置1 ;解碼單元,若判斷出扭曲參考幀標識位置1,則根據(jù)標記點參數(shù)對扭曲參考幀進行解碼。
15.根據(jù)權(quán)利要求14所述的幀運動補償解碼裝置,其特征在于,所述解碼單元,進一步 用于若判斷出扭曲參考幀沒有置1,則根據(jù)參考幀進行解碼。
全文摘要
本發(fā)明提供一種幀運動補償編碼方法,該方法包括確定當前編碼幀和參考幀之間對應(yīng)的標記點參數(shù);根據(jù)所述標記點參數(shù)對參考幀進行扭曲變換,得到扭曲參考幀;當前編碼幀劃分成宏塊,采用所述基于扭曲參考幀的運動補償、基于原始參考幀的運動補償編碼代價最小的形式對當前編碼幀進行編碼,若采用了當前編碼幀對應(yīng)的扭曲參考幀進行編碼,則將所述扭曲參考幀標識位置1,并存儲所述標記點參數(shù)。本發(fā)明提供的方法可以在考慮幀與幀之間圖像無規(guī)律變化的情況下以編碼代價最小的方式進行編碼。
文檔編號H04N7/32GK102055978SQ201010609969
公開日2011年5月11日 申請日期2010年12月28日 優(yōu)先權(quán)日2010年12月28日
發(fā)明者張智雄 申請人:深圳市融創(chuàng)天下科技發(fā)展有限公司