一種幀間預測編碼方法及裝置與流程
2023-05-23 08:48:51
本發明涉及視頻編碼技術領域,特別涉及一種幀間預測編碼方法及裝置。
背景技術:
眾所周知,視頻圖像數據之間有著很強的相關性,也就是說有大量的冗餘信息。幀間預測編碼就是利用時域已經編碼的參考圖像中的塊,對當前待編碼塊的進行預測,得到預測值,然後將待編碼塊的值和預測值之差進行編碼。幀間預測編碼通常包括,前向預測、後向預測、對稱預測和雙向預測。對於前向預測、後向預測只需要一個前向或者後向參考幀,而對稱預測和雙向預測需要前向參考幀和後向參考幀。
通常,在現代的塊基運動補償混合DCT變換的視頻編碼框架中,雙向加權可以認為是加權參數為(1/2,1/2),那麼前向的加權參數是(1,0),後向加權參數是(0,1)。在H.264雙向編碼中,採用的是分開編碼,對於待編碼幀的待編碼塊來說,假設編碼參數是3個,分別為1/2,1/3,1/4,待編碼塊的前向參考幀和後向參考幀分別對應3個加權參數,前向參考幀和後向參考幀的加權參數要從9(3*3)種方式中進行選擇,實際預測過程中可能存在前向加權參數和後向加權參數均為1/3的情況,顯然這樣的加權參數是不合理的,會造成幀間預測編碼的準確性較低。
技術實現要素:
本發明實施例的目的在於提供一種雙向加權預測編碼方法及裝置,以提高幀間預測編碼的準確性。
為達到上述目的,本發明實施例公開了一種幀間預測編碼方法,所述方法包括:
利用編碼器將待編碼幀劃分為多個待編碼塊;
針對每一待編碼塊,確定該待編碼塊對應的前向編碼塊和後向編碼塊;
確定所述前向編碼塊對應的第一加權參數;
確定包含所述前向編碼塊的參考圖像的基於整體亮度的第二加權參數,以及確定包含所述後向編碼塊的參考圖像的基於整體亮度的第三加權參數;
根據所述第一加權參數,確定所述後向編碼塊對應的第四加權參數;
根據所述第一加權參數、所述第二加權參數、所述第三加權參數、所述第四加權參數,確定該待編碼塊的預測實際加權參數;
利用所述預測實際加權參數,對該待編碼塊進行預測編碼。
優選的,所述針對每一待編碼塊,確定該待編碼塊對應的前向編碼塊和後向編碼塊,包括:
針對每一待編碼塊,採用運動搜索技術,確定該待編碼塊對應的前向編碼塊和後向編碼塊。
優選的,所述確定所述前向編碼塊對應的第一加權參數,包括:
根據所述前向編碼塊和所述後向編碼塊,計算預先設置的每一前向加權參數對應的預測塊;
計算所述待編碼塊和每一預測塊的殘差值;
將絕對值最小的殘差值對應的前向加權參數,確定為第一加權參數。
優選的,確定參考圖像的基於整體亮度的加權參數,包括:
根據所述參考圖像的所有像素點的亮度值以及像素點總數,確定所述參考圖像的基於整體亮度的加權參數。
優選的,確定參考圖像的基於整體亮度的加權參數,包括:
根據所述待編碼圖像、所述參考圖像以及最小殘差技術,確定所述參考圖像的基於整體亮度的加權參數。
優選的,所述根據所述第一加權參數,確定所述後向編碼塊對應的第四加權參數,包括:
根據所述第一加權參數以及公式:第四加權參數=1-第一加權參數,確定所述後向編碼塊對應的第四加權參數。
為達到上述目的,本發明實施例公開了一種幀間預測編碼裝置,所述裝置包括:
劃分模塊,用於利用編碼器將待編碼幀劃分為多個待編碼塊;
第一確定模塊,用於針對每一待編碼塊,確定該待編碼塊對應的前向編碼塊和後向編碼塊;
第二確定模塊,用於確定所述前向編碼塊對應的第一加權參數;
第三確定模塊,用於確定包含所述前向編碼塊的參考圖像的基於整體亮度的第二加權參數,以及確定包含所述後向編碼塊的參考圖像的基於整體亮度的第三加權參數;
第四確定模塊,用於根據所述第一加權參數,確定所述後向編碼塊對應的第四加權參數;
第五確定模塊,用於根據所述第一加權參數、所述第二加權參數、所述第三加權參數、所述第四加權參數,確定該待編碼塊的預測實際加權參數;
編碼模塊,用於利用所述預測實際加權參數,對該待編碼塊進行預測編碼。
優選的,所述第一確定模塊,具體用於:
針對每一待編碼塊,採用運動搜索技術,確定該待編碼塊對應的前向編碼塊和後向編碼塊。
優選的,所述第二確定模塊包括:第一計算子模塊、第二計算子模塊、確定子模塊,
所述第一計算子模塊,用於根據所述前向編碼塊和所述後向編碼塊,計算預先設置的每一前向加權參數對應的預測塊;
所述第二計算子模塊,用於計算所述待編碼塊和每一預測塊的殘差值;
所述確定子模塊,用於將絕對值最小的殘差值對應的前向加權參數,確定為第一加權參數。
優選的,確定參考圖像的基於整體亮度的加權參數,包括:
根據所述參考圖像的所有像素點的亮度值以及像素點總數,確定所述參考圖像的基於整體亮度的加權參數。
優選的,確定參考圖像的基於整體亮度的加權參數,包括:
根據所述待編碼圖像、所述參考圖像以及最小殘差技術,確定所述參考圖像的基於整體亮度的加權參數。
優選的,所述第四確定模塊,具體用於:
根據所述第一加權參數以及公式:第四加權參數=1-第一加權參數,確定所述後向編碼塊對應的第四加權參數。
由上述的技術方案可見,本發明實施例提供的一種幀間預測編碼方法及裝置,所述方法包括:利用編碼器將待編碼幀劃分為多個待編碼塊;針對每一待編碼塊,確定該待編碼塊對應的前向編碼塊和後向編碼塊;確定所述前向編碼塊對應的第一加權參數;確定包含所述前向編碼塊的參考圖像的基於整體亮度的第二加權參數,以及確定包含所述後向編碼塊的參考圖像的基於整體亮度的第三加權參數;根據所述第一加權參數,確定所述後向編碼塊對應的第四加權參數;根據所述第一加權參數、所述第二加權參數、所述第三加權參數、所述第四加權參數,確定該待編碼塊的預測實際加權參數;利用所述預測實際加權參數,對該待編碼塊進行預測編碼。
應用本發明實施例提供的技術方案,通過前向編碼塊的前向加權參數確定後向編碼塊對應的後向加權參數,而不用從加權參數中選取後向加權參數,避免了現有技術在加權參數中選取後向加權參數的不合理會導致預測編碼的準確性較低的問題。因此,提高了幀間預測編碼的準確性。
當然,實施本發明的任一方法或裝置必不一定需要同時達到以上所述的所有優點。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的一種幀間預測編碼方法的流程示意圖;
圖2為本發明實施例提供的一種幀間預測編碼裝置的結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
為解決現有技術問題,本發明實施例提供了一種幀間預測編碼方法及裝置,以下分別進行詳細說明。
需要說明的是,編碼器把待編碼的圖像均勻分為互相不重疊的基本編碼單元,最大為64*64,對每個基本編碼單元按照從上到下、從左到右的順序編碼。實際操作中,可以將基本編碼單元直接作為一個編碼單元進行編碼,還可以將基本編碼單元按照四叉樹劃分為編碼單元,編碼單元可以再次劃分為編碼塊。
本發明實施例提供的幀間預測編碼方法及裝置,主要是針對對稱預測和雙向預測兩種預測方式,當前的待編碼幀包含前向參考幀列表和後向參考幀列表,參考幀列表又包含多個參考幀。針對每一個待編碼的塊,搜索前向編碼塊和後向編碼塊,根據預設的加權參數,選取最佳的加權參數進行編碼,當參考圖像具有亮度變化時,還需要根據亮度變化值進行加權預測。
圖1為本發明實施例提供的一種幀間預測編碼方法的流程示意圖,包括如下步驟:
S101,利用編碼器將待編碼幀劃分為多個待編碼塊。
S102,針對每一待編碼塊,確定該待編碼塊對應的前向編碼塊和後向編碼塊。
具體的,針對每一待編碼塊,確定該待編碼塊對應的前向編碼塊和後向編碼塊,可以針對每一待編碼塊,採用運動搜索技術,確定該待編碼塊對應的前向編碼塊和後向編碼塊。
S103,確定所述前向編碼塊對應的第一加權參數。
具體的,確定所述前向編碼塊對應的第一加權參數,可以根據所述前向編碼塊和所述後向編碼塊,計算預先設置的每一前向加權參數對應的預測塊;計算所述待編碼塊和每一預測塊的殘差值;將絕對值最小的殘差值對應的前向加權參數,確定為第一加權參數。
S104,確定包含所述前向編碼塊的參考圖像的基於整體亮度的第二加權參數,以及確定包含所述後向編碼塊的參考圖像的基於整體亮度的第三加權參數。
具體的,確定參考圖像的基於整體亮度的加權參數,可以根據所述參考圖像的所有像素點的亮度值以及像素點總數,確定所述參考圖像的基於整體亮度的加權參數。
具體的,確定參考圖像的基於整體亮度的加權參數,可以根據所述待編碼圖像、所述參考圖像以及最小殘差技術,確定所述參考圖像的基於整體亮度的加權參數。
S105,根據所述第一加權參數,確定所述後向編碼塊對應的第四加權參數。
具體的,確定後向編碼塊對應的第四加權參數,可以根據所述第一加權參數以及公式:第四加權參數=1-第一加權參數,確定所述後向編碼塊對應的第四加權參數。
S106,根據所述第一加權參數、所述第二加權參數、所述第三加權參數、所述第四加權參數,確定該待編碼塊的預測實際加權參數。
S107,利用所述預測實際加權參數,對該待編碼塊進行預測編碼。
本領域技術人員可以理解的是,待編碼幀首先劃分為基本編碼單元,基本編碼單元可以經過四叉樹劃分為四個編碼單元,四個編碼單元還可以進行獨立劃分,可以得到大小是8*8、8*16、16*8或16*16的編碼塊,針對每一個基本編碼單元採取上從到下、從左到右的編碼順序進行。本發明實施例中編碼塊只要能滿足編碼要求即可,不對編碼塊的大小加以限定。
實際使用中,每一待編碼塊要從前向參考幀列表和後向參考幀列表中搜索與之相匹配的塊,即前向編碼塊和後向編碼塊。通常,採用運動搜索技術確定前向編碼塊和後向編碼塊。運動搜索技術為現有技術,本發明實施例在此不對其進行贅述。
示例性的,編碼器預先設置的前向加權參數為:1/3、2/3、1/4、1/2、3/4,待編碼塊L0的前向編碼塊和後向編碼塊為L1、L2,以前向加權參數1/3對應的預測塊P1為例,P1=1/3*L1+(1-1/3)*L2,依次計算P2、P3、P4、P5。將得到的5個預測塊的值與待編碼塊L0相減,假設得到的殘差值分別為P1=0.15、P2=0.12、P3=0.11、P4=0.03、P5=-0.005,絕對值最小的是P5對應的-0.005,則將3/4確定為第一加權參數。
在前向編碼塊和後向編碼塊所在的參考圖像具有光線強度變化時,需要將參考圖像的亮度值也進行編碼。所以,需要計算出有關參考圖像的整體亮度的加權參數。實際使用中,可以將圖像所有亮度值加起來獲得亮度值的總和,然後用亮度值的總和除以所有的像素數,得到亮度加權參數。示例性的,參考圖像的像素點個數為10,10個像素點的亮度值之和為11,則亮度加權參數為11/10,即1.1。或者,將待編碼幀和兩幅參考圖像先進行降採樣,變成較小的圖像,選擇一個亮度加權參數,將它與參考圖像相乘得到加權參考圖像,並將圖像分塊,然後對當前圖像的每個塊,在加權參考圖像中搜索相匹配的塊,獲得預測殘差值並取其平方之和;通過變換不同的亮度加權參數,獲得對應的殘差值平方之和,選擇使殘差平方和最小的亮度加權參數作為參考圖像的亮度加權參數,對應的前向參考圖像和後向參考圖像的整體亮度加權參數為W1、W2。上述兩種獲得整體亮度加權參數的方法為現有技術,本發明實施例不做贅述。
本領域技術人員可以理解的是,在S103中,確定了前向編碼塊對應的第一加權參數,以確定的3/4為例,則後向編碼塊對應的第二加權參數是1-3/4=1/4。
實際應用中,前向編碼塊和後向編碼塊所在的參考圖像通常是有光線強度變化的,所以對待編碼塊的編碼不僅跟加權參數有關還跟參考圖像的亮度有關,實際的加權參數為(3/4*W1,1/4*W2)。假設W1=1.1、W2=1.2,實際的加權參數為(0.825,0.3)。將實際加權參數(0.825,0.3)結合前向編碼塊和後向編碼塊,獲得預測塊和待編碼塊的殘差值,對殘差值進行編碼。當圖像沒有光線強度的變化時,整體亮度的加權參數為1。
實際應用中,加權參數的獲得方式,可以採用設置一個參數N,假設N=4,則具體加權參數為:(0,1)、(1/4,3/4)、(1/2,1/2)、(3/4,1/4)、(1,0)。還可以將待編碼塊所在的待編碼幀與前向編碼塊和後向編碼塊所在的前向參考幀和後向參考幀進行綁定,當下次編碼的時候,如果待編碼幀仍對應該前向參考幀和後向參考幀,則直接調用N,獲得加權參數。
通常,N的獲得方式可以採用:預先進行設置;或者,將待編碼幀中的每一塊與前向參考幀和後向參考幀進行多次迭代,通常N的取值範圍是3以上,鑑於對編碼效率的影響,N的值一般不會超過10。可以將N寫入待編碼幀的幀頭、或者寫在編碼參數組合中。
當參數為(0,1)和(1,0)時,具體對應後向預測和前向預測,本發明實施例不做贅述。
可見,應用本發明圖1所示的實施例,通過前向編碼塊的前向加權參數確定後向編碼塊對應的後向加權參數,而不用從加權參數中選取後向加權參數,避免了現有技術在加權參數中選取後向加權參數的不合理會導致預測編碼的準確性較低的問題。因此,提高了幀間預測編碼的準確性。
圖2為本發明實施例提供的一種幀間預測編碼裝置的結構示意圖,可以包括:劃分模塊201、第一確定模塊202、第二確定模塊203、第三確定模塊204、第四確定模塊205、第五確定模塊206、編碼模塊207。
劃分模塊201,用於利用編碼器將待編碼幀劃分為多個待編碼塊。
第一確定模塊202,用於針對每一待編碼塊,確定該待編碼塊對應的前向編碼塊和後向編碼塊。
具體的,實際應用中,第一確定模塊202,可以用於:針對每一待編碼塊,採用運動搜索技術,確定該待編碼塊對應的前向編碼塊和後向編碼塊。
第二確定模塊203,用於確定所述前向編碼塊對應的第一加權參數。
具體的,實際應用中,第二確定模塊203可以包括:第一計算子模塊、第二計算子模塊、確定子模塊(圖中未示出),其中,
第一計算子模塊,用於根據所述前向編碼塊和所述後向編碼塊,計算預先設置的每一前向加權參數對應的預測塊;
第二計算子模塊,用於計算所述待編碼塊和每一預測塊的殘差值;
確定子模塊,用於將絕對值最小的殘差值對應的前向加權參數,確定為第一加權參數。
第三確定模塊204,用於確定包含所述前向編碼塊的參考圖像的基於整體亮度的第二加權參數,以及確定包含所述後向編碼塊的參考圖像的基於整體亮度的第三加權參數。
具體的,實際應用中,確定參考圖像的基於整體亮度的加權參數,可以根據所述參考圖像的所有像素點的亮度值以及像素點總數,確定所述參考圖像的基於整體亮度的加權參數。
具體的,實際應用中,確定參考圖像的基於整體亮度的加權參數,可以根據所述待編碼圖像、所述參考圖像以及最小殘差技術,確定所述參考圖像的基於整體亮度的加權參數。
第四確定模塊205,用於根據所述第一加權參數,確定所述後向編碼塊對應的第四加權參數。
具體的,實際應用中,第四確定模塊205,可以用於:根據所述第一加權參數以及公式:第四加權參數=1-第一加權參數,確定所述後向編碼塊對應的第四加權參數。
第五確定模塊206,用於根據所述第一加權參數、所述第二加權參數、所述第三加權參數、所述第四加權參數,確定該待編碼塊的預測實際加權參數。
編碼模塊207,用於利用所述預測實際加權參數,對該待編碼塊進行預測編碼。
可見,應用本發明圖2所示的實施例,通過前向編碼塊的前向加權參數確定後向編碼塊對應的後向加權參數,而不用從加權參數中選取後向加權參數,避免了現有技術在加權參數中選取後向加權參數的不合理會導致預測編碼的準確性較低的問題。因此,提高了幀間預測編碼的準確性。
需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
本說明書中的各個實施例均採用相關的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於裝置實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本領域普通技術人員可以理解實現上述方法實施方式中的全部或部分步驟是可以通過程序來指令相關的硬體來完成,所述的程序可以存儲於計算機可讀取存儲介質中,這裡所稱得的存儲介質,如:ROM/RAM、磁碟、光碟等。
以上所述僅為本發明的較佳實施例而已,並非用於限定本發明的保護範圍。凡在本發明的精神和原則之內所作的任何修改、等同替換、改進等,均包含在本發明的保護範圍內。