TW202139707A - 幀間預測方法、編碼器、解碼器以及儲存媒介 - Google Patents
幀間預測方法、編碼器、解碼器以及儲存媒介 Download PDFInfo
- Publication number
- TW202139707A TW202139707A TW110109406A TW110109406A TW202139707A TW 202139707 A TW202139707 A TW 202139707A TW 110109406 A TW110109406 A TW 110109406A TW 110109406 A TW110109406 A TW 110109406A TW 202139707 A TW202139707 A TW 202139707A
- Authority
- TW
- Taiwan
- Prior art keywords
- value
- current block
- index value
- preset
- prediction
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一種幀間預測方法、編碼器、解碼器以及儲存媒介,該方法包括:確定當前塊的預測模式參數;當預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定當前塊內分割線對應的角度和步長,並將角度索引值和步長索引值分別設置為角度和步長在預設映射表中對應的索引序號;基於當前塊的尺寸訊息以及角度索引值,利用預設模型確定當前塊的偏移方向標識值;其中,偏移方向標識值用於指示當前塊在角度下不同分割線之間的位移方向;基於偏移方向標識值和步長索引值,對當前塊進行幀間預測。
Description
本申請實施例涉及影像編解碼技術領域,尤其涉及一種幀間預測方法、編碼器、解碼器以及儲存媒介。
在影像編解碼領域,針對當前塊進行編解碼的過程,除了採用幀內預測方式之外,還可以採用幀間預測方式。其中,幀間預測具體可以採用幀間幾何劃分預測模式(Geometrical partitioning for inter blocks,GEO),或稱之為GPM預測模式,將幀間的當前塊劃分為兩個非矩形的分區分別進行預測後再加權融合,從而得到當前塊的預測值。
然而,每一種尺寸的當前塊在不同角度下各自對應有2~4種步長的分割線,而這幾種不同步長的分割線是根據當前塊在對應方向上移動以及步長索引相關聯的偏移距離得到的。經過研究發現,目前的計算過程涉及的比較情況較多,使得計算複雜度高;而且對於角度索引為2、18、14、30、3、19、13、29的角度,其所對應的當前塊中存在有不合理的分割線分佈情況,比如在垂直方向上移動所獲得的不同步長的分割線之間的距離太過密集,從而導致當前角度下的性能丟失,降低了編解碼效率。
本申請實施例提供一種幀間預測方法、編碼器、解碼器以及儲存媒介,可以簡化計算過程,降低計算複雜度,同時還能夠解決GPM預測模式下分割線分佈過於密集而導致性能丟失的問題。
本申請實施例的技術方案可以如下實現:
第一方面,本申請實施例提供了一種幀間預測方法,應用於編碼器,該方法包括:
確定當前塊的預測模式參數;
當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定所述當前塊內分割線對應的角度和步長,並將角度索引值和步長索引值分別設置為所述角度和所述步長在預設映射表中對應的索引序號;
基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型計算確定當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示所述當前塊在所述角度下不同分割線之間的位移方向;
基於所述偏移方向標識值和所述步長索引值,對所述當前塊進行幀間預測。
在一實施例中,所述根據所述角度索引值,計算第一修正值,包括:基於所述角度索引值,從第一查閱資料表中查找與所述角度索引值對應的對數值;將所查找到的對數值確定為所述第一修正值。
在一實施例中,所述方法還包括:若所述偏移方向標識值等於1,則確定所述當前塊在所述角度下分割線的位移方向為水平方向;若所述偏移方向標識值等於0,則確定所述當前塊在所述角度下分割線的位移方向為垂直方向。
第二方面,本申請實施例提供了一種幀間預測方法,應用於解碼器,該方法包括:
解析位元流,獲取當前塊的預測模式參數;
當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定角度索引值和步長索引值;其中,所述角度索引值和所述步長索引值表示所述當前塊內分割線對應的角度和步長在預設映射表中對應的索引序號;
基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示所述當前塊在所述角度下不同分割線之間的位移方向;
基於所述偏移方向標識值和所述步長索引值,確定所述當前塊的幀間預測值。
在一實施例中,所述根據所述角度索引值,計算第一修正值,包括:基於所述角度索引值,從第一查閱資料表中查找與所述角度索引值對應的對數值;將所查找到的對數值確定為所述第一修正值。
在一實施例中,所述方法還包括:若所述偏移方向標識值等於1,則確定所述當前塊在所述角度下分割線的位移方向為水平方向;若所述偏移方向標識值等於0,則確定所述當前塊在所述角度下分割線的位移方向為垂直方向。
第三方面,本申請實施例提供了一種編碼器,該編碼器包括第一確定單元、第一計算單元和第一預測單元;其中,
所述第一確定單元,配置為確定當前塊的預測模式參數;
所述第一確定單元,還配置為當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定所述當前塊內分割線對應的角度和步長,並將角度索引值和步長索引值分別設置為所述角度和所述步長在預設映射表中對應的索引序號;
所述第一計算單元,配置為基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示所述當前塊在所述角度下不同分割線之間的位移方向;
所述第一預測單元,配置為基於所述偏移方向標識值和所述步長索引值,對所述當前塊進行幀間預測。
第四方面,本申請實施例提供了編碼器,該編碼器包括第一記憶體和第一處理器;其中,
所述第一記憶體,用於儲存能夠在所述第一處理器上運行的電腦程式;
所述第一處理器,用於在運行所述電腦程式時,執行如第一方面所述的方法。
第五方面,本申請實施例提供了解碼器,該解碼器包括解析單元、第二確定單元、第二計算單元和第二預測單元;其中,
所述解析單元,配置為解析位元流,獲取當前塊的預測模式參數;
所述第二確定單元,配置為當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定角度索引值和步長索引值;其中,所述角度索引值和所述步長索引值表示所述當前塊內分割線對應的角度和步長在預設映射表中對應的索引序號;
所述第二計算單元,配置為基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示所述當前塊在所述角度下不同分割線之間的位移方向;
所述第二預測單元,配置為基於所述偏移方向標識值和所述步長索引值,確定所述當前塊的幀間預測值。
第六方面,本申請實施例提供了解碼器,該解碼器包括第二記憶體和第二處理器;其中,
所述第二記憶體,用於儲存能夠在所述第二處理器上運行的電腦程式;
所述第二處理器,用於在運行所述電腦程式時,執行如第二方面所述的方法。
第七方面,本申請實施例提供了電腦儲存媒介,該電腦儲存媒介儲存有電腦程式,所述電腦程式被第一處理器執行時實現如第一方面所述的方法、或者被第二處理器執行時實現如第二方面所述的方法。
本申請實施例提供了一種幀間預測方法、編碼器、解碼器以及儲存媒介,應用於編碼器,確定當前塊的預測模式參數;當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定所述當前塊內分割線對應的角度和步長,並將角度索引值和步長索引值分別設置為所述角度和所述步長在預設映射表中對應的索引序號;基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示所述當前塊在所述角度下不同分割線之間的位移方向;基於所述偏移方向標識值和所述步長索引值,對所述當前塊進行幀間預測。應用於解碼器,透過解析位元流,獲取當前塊的預測模式參數;當所述預測模式參數指示使用GPM確定當前塊的幀間預測值時,確定角度索引值和步長索引值;其中,所述角度索引值和所述步長索引值表示所述當前塊內分割線對應的角度和步長在預設映射表中對應的索引序號;基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示所述當前塊在所述角度下不同分割線之間的位移方向;基於所述偏移方向標識值和所述步長索引值,確定所述當前塊的幀間預測值。這樣,利用預設模型簡化了偏移方向標識值的計算過程,降低了計算複雜度;另外,還能夠修正GPM預測模式下部分角度下不同尺寸塊內分割線的移動方向,使得針對所有塊尺寸的分割線分佈更加均勻稀疏,解決了GPM預測模式下分割線分佈過於密集而導致性能丟失的問題,從而提高了編解碼性能,以達到提升編解碼效率的目的。
為了能夠更加詳盡地瞭解本申請實施例的特點與技術內容,下面結合附圖對本申請實施例的實現進行詳細闡述,所附附圖僅供參考說明之用,並非用來限定本申請實施例。
在影像圖像中,一般採用第一圖像分量、第二圖像分量和第三圖像分量來表徵當前塊(Coding Block,CB);其中,這三個圖像分量分別為一個亮度分量、一個藍色色度分量和一個紅色色度分量,具體地,亮度分量通常使用符號Y表示,藍色色度分量通常使用符號Cb或者U表示,紅色色度分量通常使用符號Cr或者V表示;這樣,影像圖像可以用YCbCr格式表示,也可以用YUV格式表示。
在本申請實施例中,第一圖像分量可以為亮度分量,第二圖像分量可以為藍色色度分量,第三圖像分量可以為紅色色度分量,但是本申請實施例不作具體限定。
下面將針對幾何劃分預測模式(Geometrical Partition Mode,GPM)進行相關技術方案的描述。
在影像編碼的混合框架中,通常只以正方形和矩形的塊為單位實施預測、變換和量化等編碼技術。然而實際應用中,運動物體的邊緣並不一定都是水平或者垂直方向;即使是,也不一定剛好處於可以劃分的塊邊緣上,由於運動邊緣兩側的運動向量往往不同,這樣在編碼過程中以一個整塊進行運動預測和補償,容易產生較大的預測誤差,從而導致編碼效率受限。
在新一代影像編碼標準H.266/多功能影像編碼(Versatile Video Coding,VVC)的制定過程中,引入了正方形和矩形之外的其他形狀劃分。首先是三角劃分預測模式(Triangular partition Mode,TPM)的引入,如圖1A所示;在圖1A中,以一個正方形或矩形的對角線、或反對角線作為分割線,用以得到三角形的預測單元,從而能夠更靈活的表示幀間預測資料,降低了預測誤差,進而提高了編碼效率。
在聯合影像專家組(Joint Video Experts Team,JVET)的第某次會議中,提出了一種比TPM更為靈活的幀間幾何劃分幀間預測模式(Geometrical partitioning for inter blocks,GEO),之後JVET還正式將GEO預測模式採納到VVC中,並且更名為GPM。具體地,該GPM預測技術針對圖像中運動物體的邊緣部分,採用更為靈活的表示方法,將幀間塊劃分為兩個非矩形的子分區,如圖1B所示;針對劃分後的兩個子分區分別進行預測後再加權融合,以得到當前塊的幀間預測值。
還需要說明的是,在目前VVC中,GPM預測技術總共可以有64種劃分模式,而每一種劃分模式對應一種角度(用α表示)和一種步長(用ρ表示),也即總共可以有20種角度、4種步長。如圖2所示,水平方向向右旋轉到分割線法線位置的角度即為α,分割線的法線距離即為ρ;這裡,每一種角度和步長的組合可以構成一種劃分模式。在GPM預測模式下,根據一種劃分模式可以將當前塊劃分為兩個非矩形的子分區,每個子分區單獨進行單向的運動補償以得到單向預測值,最後利用權重矩陣對兩個子分區的單向預測值進行加權融合,可以得到最終的GPM預測值。
在實際應用中,針對每一個當前塊的預測過程,都需要透過一定的偏移值來獲得對應的權重矩陣,而偏移值的計算需要根據當前塊的角度來判斷需要在水平方向(即X軸方向)偏移還是需要在垂直方向(即Y軸方向)偏移,具體的偏移距離取決於當前塊的寬度(即X軸方向)或者高度(即Y軸方向)以及當前塊的步長索引值。由於每一種尺寸的當前塊,在不同的角度下都有各自對應的2~4種步長的分割線,這幾種不同步長的分割線,就是當前塊在對應方向上偏移相應的偏移距離得到的。但是目前透過對所有塊尺寸以及所有角度不同步長的分割線研究可以發現,對於角度索引值為2、18、14、30的角度,其所對應的所有塊尺寸在垂直方向上移動所獲得的不同步長的分割線之間的距離太過密集,導致當前角度下這幾種步長的模式之間性能相當,而且還佔用了多餘的模式位元數;同時,角度索引值為3、19、13、29所對應的角度下,對於正方形和高度小於寬度的塊,在垂直方向上移動得到的分割線之間的分佈也過於密集,而反觀在水平方向上移動得到的分割線之間的分佈就相對比較均勻稀疏。如圖3A、圖3B和圖3C所示,其給出了GPM預測模式在不同角度下分割線之間的間距示意圖。其中,塊尺寸涵蓋了4:1、2:1、1:1、1:2和1:4等5種尺寸,角度索引涵蓋了2、18、3、19、4、20、5、21、11、27、12、28、13、29、14和30等多種角度索引值;在每個方框內,左側表示水平移動方向,右側為垂直移動方向,“”表示水平移動的間距大於垂直移動的間距,“”表示水平移動的間距小於垂直移動的間距,“”表示水平移動的間距近似等於垂直移動的間距,而灰色橢圓覆蓋部分為原始方案不採納的情況。從圖3A、圖3B和圖3C中看出,如果當前塊內的分割線是在垂直方向上偏移,即對於水平劃分角度(法線垂直)8和24的所有塊尺寸,以及其餘角度的高度大於或等於寬度的塊,那麼都只在垂直方向上偏移與高度以及步長索引值有關的步長;如果當前塊內的分割線是在水平方向上偏移,對於垂直劃分角度(法線水平)0和16的所有塊尺寸,以及其餘角度的寬度大於或等於高度的塊,那麼都只在水平方向上偏移與寬度以及步長索引值有關的步長,最終能得到當前塊所對應的角度和步長索引下的分割線。
根據上述原理分析以及結合圖3A、圖3B和圖3C,對於角度索引值為2、18、14、30、3、19、13、29所對應的角度,都存在有選擇不合理的分割線過密間距的情況,導致當前角度下的性能丟失;另外,原始方案中所涉及的比較情況較多,而且還使用了“位與”、“位或”運算子,導致計算複雜度高,從而降低了編解碼效率。
本申請實施例提供了一種幀間預測方法,應用於編碼器或解碼器。在當前塊的預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,透過確定當前塊內分割線對應的角度和步長,並將角度索引值和步長索引值分別設置為所述角度和所述步長在預設映射表中對應的索引序號;基於當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示當前塊在所述角度下不同分割線之間的位移方向;基於所述偏移方向標識值和所述步長索引值,確定所述當前塊進行幀間預測值。這樣,利用預設模型簡化了偏移方向標識值的計算過程,降低了計算複雜度;另外,還能夠修正GPM預測模式下部分角度下不同尺寸塊內分割線的移動方向,使得針對所有塊尺寸的分割線分佈更加均勻稀疏,解決了GPM預測模式下分割線分佈過於密集而導致性能丟失的問題,從而提高了編解碼性能,以達到提升編解碼效率的目的。
下面將結合附圖對本申請各實施例進行詳細說明。
參見圖4A,其示出了本申請實施例提供的一種影像編碼系統的組成方塊圖示例;如圖4A所示,該影像編碼系統10包括變換與量化單元101、幀內估計單元102、幀內預測單元103、運動補償單元104、運動估計單元105、反變換與反量化單元106、濾波器控制分析單元107、濾波單元108、編碼單元109和解碼圖像暫存單元110等,其中,濾波單元108可以實現去方塊濾波及取樣自適應偏移(Sample Adaptive Offset,SAO)濾波,編碼單元109可以實現標頭資訊編碼及前文參考之適應性二元算術編碼(Context-based Adaptive Binary Arithmetic Coding,CABAC)。針對輸入的原始視訊訊號,透過編碼樹單元(Coding Tree Unit,CTU)的劃分可以得到一個影像編碼塊,然後對經過幀內或幀間預測後得到的殘差像素訊息透過變換與量化單元101對該影像編碼塊進行變換,包括將殘差訊息從像素域變換到變換域,並對所得的變換係數進行量化,用以進一步減少位元速率;幀內估計單元102和幀內預測單元103是用於對該影像編碼塊進行幀內預測;明確地說,幀內估計單元102和幀內預測單元103用於確定待用以編碼該影像編碼塊的幀內預測模式;運動補償單元104和運動估計單元105用於執行所接收的影像編碼塊相對於一或多個參考幀中的一或多個塊的幀間預測編碼以提供時間預測訊息;由運動估計單元105執行的運動估計為產生運動向量的過程,所述運動向量可以估計該影像編碼塊的運動,然後由運動補償單元104基於由運動估計單元105所確定的運動向量執行運動補償;在確定幀內預測模式之後,幀內預測單元103還用於將所選擇的幀內預測資料提供到編碼單元109,而且運動估計單元105將所計算確定的運動向量資料也發送到編碼單元109;此外,反變換與反量化單元106是用於該影像編碼塊的重構建,在像素域中重構建殘差塊,該重構建殘差塊透過濾波器控制分析單元107和濾波單元108去除方塊效應假影,然後將該重構殘差塊添加到解碼圖像暫存單元110的幀中的一個預測性塊,用以產生經重構建的影像編碼塊;編碼單元109是用於編碼各種編碼參數及量化後的變換係數,在基於CABAC的編碼演算法中,上下文內容可基於相鄰編碼塊,可用於編碼指示所確定的幀內預測模式的訊息,輸出該視訊訊號的位元流;而解碼圖像暫存單元110是用於存放重構建的影像編碼塊,用於預測參考。隨著影像圖像編碼的進行,會不斷生成新的重構建的影像編碼塊,這些重構建的影像編碼塊都會被存放在解碼圖像暫存單元110中。
參見圖4B,其示出了本申請實施例提供的一種影像解碼系統的組成方塊圖示例;如圖4B所示,該影像解碼系統20包括解碼單元201、反變換與反量化單元202、幀內預測單元203、運動補償單元204、濾波單元205和解碼圖像暫存單元206等,其中,解碼單元201可以實現標頭資訊解碼以及CABAC解碼,濾波單元205可以實現去方塊濾波以及SAO濾波。輸入的視訊訊號經過圖4A的編碼處理之後,輸出該視訊訊號的位元流;該位元流輸入影像解碼系統20中,首先經過解碼單元201,用於得到解碼後的變換係數;針對該變換係數透過反變換與反量化單元202進行處理,以便在像素域中產生殘差塊;幀內預測單元203可用於基於所確定的幀內預測模式和來自當前幀或圖片的先前經解碼塊的資料而產生當前影像解碼塊的預測資料;運動補償單元204是透過剖析運動向量和其他關聯語法元素來確定用於影像解碼塊的預測訊息,並使用該預測訊息以產生正被解碼的影像解碼塊的預測性塊;透過對來自反變換與反量化單元202的殘差塊與由幀內預測單元203或運動補償單元204產生的對應預測性塊進行求和,而形成解碼的影像塊;該解碼的視訊訊號透過濾波單元205以便去除方塊效應假影,可以改善影像品質;然後將經解碼的影像塊儲存於解碼圖像暫存單元206中,解碼圖像暫存單元206儲存用於後續幀內預測或運動補償的參考圖像,同時也用於視訊訊號的輸出,即得到了所恢復的原始視訊訊號。
本申請實施例中的幀間預測方法,可以應用在如圖4A所示的運動補償單元104和運動估計單元105的幀間預測部分,也可以應用在如圖4B所示的運動補償單元204的幀間預測部分。也就是說,本申請實施例中的幀間預測方法,既可以應用於影像編碼系統,也可以應用於影像解碼系統,甚至還可以同時應用於影像編碼系統和影像解碼系統,但是本申請實施例不作具體限定。還需要說明的是,當該幀間預測方法應用於如圖4A所示的幀間預測部分時,“當前塊”具體是指幀間預測中的當前編碼塊;當該幀間預測方法應用於如圖4B所示的幀間預測部分時,“當前塊”具體是指幀間預測中的當前解碼塊。
基於上述圖4A的應用場景示例,參見圖5,其示出了本申請實施例提供的一種幀間預測方法的流程示意圖。如圖5所示,該方法可以包括:
S501:確定當前塊的預測模式參數;
需要說明的是,影像圖像可以劃分為多個圖像塊,每個當前待編碼的圖像塊可以稱為編碼塊(Coding Block,CB)。這裡,每個編碼塊可以包括第一圖像分量、第二圖像分量和第三圖像分量;而當前塊為影像圖像中當前待進行第一圖像分量、第二圖像分量或者第三圖像分量預測的編碼塊。
其中,假定當前塊進行第一圖像分量預測,而且第一圖像分量為亮度分量,即待預測圖像分量為亮度分量,那麼當前塊也可以稱為亮度塊;或者,假定當前塊進行第二圖像分量預測,而且第二圖像分量為色度分量,即待預測圖像分量為色度分量,那麼當前塊也可以稱為色度塊。
還需要說明的是,預測模式參數指示了當前塊採用的預測模式以及與該預測模式相關的參數。這裡,針對預測模式參數的確定,可以採用簡單的決策策略,比如根據失真值的大小進行確定;也可以採用複雜的決策策略,比如根據位元率失真最佳化(Rate Distortion Optimization,RDO)的結果進行確定,本申請實施例不作任何限定。通常而言,可以採用RDO方式來確定當前塊的預測模式參數。
具體地,在一些實施例中,對於S501來說,所述確定當前塊的預測模式參數,可以包括:
利用多種預測模式對所述當前塊進行預編碼處理,獲得每一種預測模式對應的位元率失真代價值;
從所獲得的多個位元率失真代價值中選擇最小位元率失真代價值,將所述最小位元率失真代價值對應的預測模式確定為當前塊的預測模式參數。
也就是說,在編碼器側,針對當前塊可以採用多種預測模式分別對當前塊進行預編碼處理。這裡,多種預測模式通常包括有幀間預測模式、傳統幀內預測模式和非傳統幀內預測模式;其中,傳統幀內預測模式可以包括有直流(Direct Current,DC)模式、平面(PLANAR)模式和角度模式等,非傳統幀內預測模式可以包括有基於矩陣的幀內預測(Matrix-based Intra Prediction,MIP)模式、跨分量線性模型預測(Cross-component Linear Model Prediction,CCLM)模式、幀內塊複製(Intra Block Copy,IBC)模式和PLT(Palette)模式等,而幀間預測模式可以包括有傳統幀間預測模式和GPM預測模式等。
這樣,在利用多種預測模式分別對當前塊進行預編碼之後,可以得到每一種預測模式對應的位元率失真代價值;然後從所得到的多個位元率失真代價值中選取最小位元率失真代價值,並將該最小位元率失真代價值對應的預測模式確定為當前塊的預測模式參數。除此之外,還可以在利用多種預測模式分別對當前塊進行預編碼之後,得到每一種預測模式對應的失真值;然後從所得到的多個失真值中選取最小失真值,並將該最小失真值對應的預測模式確定為當前塊的預測模式參數。如此,最終使用所確定的預測模式參數對當前塊進行編碼,而且在這種預測模式下,可以使得預測殘差較小,能夠提高編碼效率。
S502:當所述預測模式參數指示使用GPM確定當前塊的幀間預測值時,確定所述當前塊內分割線對應的角度和步長,並將角度索引值和步長索引值分別設置為所述角度和所述步長在預設映射表中對應的索引序號;
需要說明的是,對於當前塊而言,如果當前塊能夠使用GPM預測模式,那麼當前塊需要滿足一些限制條件。示例性地,這些限制條件可以包括:
(a)序列層參數集(Sequence Parameter Set,SPS)允許採用GPM預測模式;
(b)當前塊的編碼圖像區域屬於雙向預測片(B slice);
(c)當前塊的尺寸限制,寬度和高度必須都大於或等於8,且小於或等於64,並且當前塊的寬高比和高寬比都小於8;
(d)當前塊為非普通融合(general merge)預測,非融合子塊(merge_ subblock)預測,非仿射預測,也非聯合幀內幀間預測(Composed Intra Inter Prediction,CIIP);
(e)對4:0:0格式的色度分量禁用GPM預測模式。
還需要說明的是,如果當前塊滿足上述限制條件,且預測模式參數指示使用GPM確定當前塊的幀間預測值時,這時候就可以獲取或者確定出當前塊的角度和步長。這裡,角度索引值和步長索引值分別設置為所述角度和所述步長在預設映射表中對應的索引序號。
進一步地,在一些實施例中,當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,該方法還可以包括:
確定所述當前塊的劃分模式;
將劃分模式索引值確定為所述劃分模式在預設映射表中對應的索引序號並寫入位元流;其中,所述預設映射表用於指示劃分模式索引值、角度索引值和步長索引之間的對應關係。
也就是說,在確定出預測模式參數指示使用GPM確定當前塊的幀間預測值時,這時候還可以確定當前塊的劃分模式;其中,每一種劃分模式對應有一種角度和一種步長。通常而言,GPM預測模式總共有64種劃分模式,針對這麼多的劃分模式,仍然可以採用RDO方式來確定當前塊的劃分模式,同時將劃分模式索引值確定為該劃分模式在預設映射表中對應的索引序號並寫入位元流,以便後續在解碼器側可以透過解析位元流以獲取到劃分模式索引值,進而透過查找預設映射表來確定當前塊的角度索引值和步長索引值。
其中,用於反映劃分模式索引值、角度索引值和步長索引的預設映射表如表1所示;在表1中,總共提供了64種劃分模式,以及每一種劃分模式對應的角度索引值和步長索引值;這裡,merge_gpm_partition_idx為劃分模式索引值,angleIdx為角度索引值,distanceIdx為步長索引值。
表1
merge_gpm_partition _idx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
angleIdx | 0 | 0 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 4 | 4 | 4 | 4 | 5 | 5 |
distanceIdx | 1 | 3 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 0 | 1 |
merge_gpm_partition _idx | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
angleIdx | 5 | 5 | 8 | 8 | 11 | 11 | 11 | 11 | 12 | 12 | 12 | 12 | 13 | 13 | 13 | 13 |
distanceIdx | 2 | 3 | 1 | 3 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 |
merge_gpm_partition _idx | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
angleIdx | 14 | 14 | 14 | 14 | 16 | 16 | 18 | 18 | 18 | 19 | 19 | 19 | 20 | 20 | 20 | 21 |
distanceIdx | 0 | 1 | 2 | 3 | 1 | 3 | 1 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | 3 | 1 |
merge_gpm_partition _idx | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
angleIdx | 21 | 21 | 24 | 24 | 27 | 27 | 27 | 28 | 28 | 28 | 29 | 29 | 29 | 30 | 30 | 30 |
distanceIdx | 2 | 3 | 1 | 3 | 1 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | 3 |
S503:基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示所述當前塊在所述角度下不同分割線之間的位移方向;
需要說明的是,當確定出當前塊之後,即可以得到當前塊的尺寸訊息,比如當前塊的高度和寬度。這樣,根據當前塊的尺寸訊息以及角度索引值,能夠計算得到當前塊的偏移方向標識值,可以用shiftHor表示。
具體地,在一些實施例中,對於S503來說,所述基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值,可以包括:
根據所述角度索引值,確定第一修正值;
利用所述第一修正值對所述當前塊的高度進行移位處理,獲得移位後的高度;
利用預設位移值對所述當前塊的寬度進行移位處理,獲得移位後的寬度;
將所述移位後的高度和所述移位後的寬度進行比較;
根據比較的結果,獲得所述當前塊的偏移方向標識值。
進一步地,在一些實施例中,所述根據所述角度索引值,確定第一修正值,可以包括:
利用所述角度索引值對第三預設值進行取模運算,獲得取模結果;
將所述取模結果與第四預設值進行比較,根據比較的結果確定所述第一修正值。
這裡,預設位移值可以為4,第三預設值可以為16,第四預設值可以為8。另外,當前塊的尺寸訊息可以包括當前塊的高度和寬度,當前塊的高度用nH表示,當前塊的寬度用nW表示,當前塊的角度索引值用angleIdx表示;如此,第一修正值的計算如下,
其中,“%”表示取模運算子。根據式(1),如果的取模結果大於8,那麼比較的結果為,即為第一修正值;如果的取模結果小於或等於8,那麼比較的結果為,即為第一修正值。需要說明的是,對於式(1)而言,該式的一種等價形式可以表示為,但不作具體限定。
還需要說明的是,由於用於指示當前塊在同一角度下不同分割線之間的位移方向,也就是說,根據的取值不同,可以確定當前塊在同一角度下不同分割線之間的位移方向是水平方向還是垂直方向。因此,在一些實施例中,該方法還可以包括:
若所述偏移方向標識值等於1,則確定所述當前塊在所述角度下分割線的位移方向為水平方向;
若所述偏移方向標識值等於0,則確定所述當前塊在所述角度下分割線的位移方向為垂直方向。
S504:基於所述偏移方向標識值和所述步長索引值,對所述當前塊進行幀間預測。
需要說明的是,在得到偏移方向標識值和步長索引值之後,可以確定出當前塊的目標分割線以及偏移訊息,用以計算當前塊的幀間預測值。具體地,在一些實施例中,所述基於所述偏移方向標識值和所述步長索引值,對所述當前塊進行幀間預測,可以包括:
基於所述偏移方向標識值和所述步長索引值,確定所述當前塊的目標分割線以及偏移訊息;
基於所述目標分割線對所述當前塊的劃分,確定所述當前塊的第一分區的第一預測值和所述當前塊的第二分區的第二預測值;
根據所述偏移訊息,計算所述當前塊的權重矩陣;
利用所述第一預測值、所述第二預測值以及所述權重矩陣對所述當前塊內各像素點進行加權運算,獲得所述當前塊的幀間預測值。
可以理解地,在GPM預測模式中,確定出偏移方向標識值和步長索引值之後,可以獲得當前塊的目標分割線,用以將當前塊劃分為第一分區和第二分區(即A分區和B分區)。而在確定出兩個分區之後,還需要計算這兩個分區各自的單向預測值。
這裡,GPM預測模式可以重用已有的常規merge清單,按照同位方式建構屬於GPM的單向merge清單,使得使用GPM劃分後的兩個分區各自的候選運動向量(motion vector,mv)訊息都是從該單向merge清單中選出的。
具體來講,第一步,建構merge清單,與常規merge模式下建構清單的過程一致。其建構順序為:上側相鄰塊(用B1表示),左側相鄰塊(用A1表示),右上側相鄰塊(用B0表示),左下側相鄰塊(用A0表示),左上側相鄰塊(用B2表示),參考幀對應位置塊(用col表示),歷史參考塊(用his表示),第一、第二候選mv的平均運動向量(用mv avg表示),以及零運動向量(用0表示)。如圖6A所示,其給出了當前塊建構merge清單的相鄰塊分佈示意圖;按照該建構順序,能夠得到當前塊的merge清單。
第二步,可以確定出A分區和B分區各自在merge清單中所選擇的參考選項位置訊息,分別用m、n表示;編碼器側可以按照下式對語法元素進行賦值:
merge_gpm_idx0[xCb][yCb]=m
merge_gpm_idx1[xCb][yCb]=n-(merge_gpm_idx1[xCb][yCb]>=m)?1:0
然後對其進行二值化、熵編碼等處理,並將其寫入位元流傳輸。也就是說,在編碼器側,當前塊對應的編碼單元(coding unit,CU)層語法元素描述如下表2所示。
表2
merge_data(x0, y0, cbWidth, cbHeight, cbType) { | Descriptor |
…… | |
merge_gpm_partition_idx[x0][y0] | ae(v) |
merge_gpm_idx0[x0][y0] | ae(v) |
if( MaxNumGpmMergeCand > 2 ) | |
merge_gpm_idx1[x0][y0] | ae(v) |
……} |
這裡,ae(v)表示context-adaptive arithmetic entropy-coded syntax element,即前文適應性算術熵編碼語法元素。
進一步地,令M=mergeCandList[m],表示從merge清單中取出第m項用於A分區的mv建構。因為在使用GPM預測的當前塊中,每個分區都只會使用單向預測模式,但是merge清單中每一項都可能是雙向預測的mv訊息,因此需要取出其中的單向預測mv來供使用。令X=(m & 0x01),其中&表示“位與”運算子,即取出m的最後一個位元位(類似於同位)。這樣,優先使用X對應的參考清單中參考幀對應的mv訊息(用predFlagLXM表示),可以用於分區預測,如圖6B中的灰色塊對應的選項。如果相應的mv不可用(即相鄰塊的mv本身也可能是單向的),這時候才會使用對向的mv(與灰色塊水平對應的白色塊表示的mv),即X=1-X。
此時,再將相應的mv訊息存入給A分區的處理變數,準備後續的預測塊建構,具體如下所示,
mvA[0] = mvLXM[0]
mvA[1] = mvLXM[1]
refIdxA = refIdxLXM
predListFlagA = X
其中,mvA為A分區的mv訊息,refIdxA為該mv訊息對應的參考幀,predListFlagA表示當前選用了該mv訊息備選項的哪個list中的分量。其中,圖6B中提供的list0和list1表示當前塊在兩個方向所對應的list0和list1;這兩個方向可以是一個前向和一個後向,或者還可以是兩個前向,或者也可以是兩個後向,本申請實施例不作限定。
進一步地,令N=mergeCandList[n],表示從merge清單中取出第n項用於B分區的mv建構。其中,第n項的單向運動向量用於mvB建構,優先使用如圖6B中的灰色塊對應的選項,如果不可用,才使用對向的mv。因此,令X=(n & 0x01)。如果predFlagLXN不可用,那麼X=1-X。
此時,再將相應的mv訊息存入給B分區的處理變數,準備後續的預測塊建構,具體如下所示,
mvB[0] = mvLXN[0]
mvB[1] = mvLXN[1]
refIdxB = refIdxLXN
predListFlagB = X
其中,mvB為B分區的mv訊息,refIdxB為該mv訊息對應的參考幀,predListFlagB表示當前選用了該mv訊息備選項的哪個list中的分量。
如圖7所示,其示出了本申請實施例提供的一種GPM預測處理流程的總體架構示意圖。在圖7中,該總體架構可以包括有輸入模組701、處理模組702和輸出模組703。其中,輸入模組701提供GPM預測模式下的輸入參數,這些輸入參數包括有:當前塊的像素位置,以亮度分量為例,可以用a luma location(xCb,yCb)描述;當前塊的尺寸訊息,可以用cbWidth和cbHeight描述;1/16像素精度的亮度分量的mv訊息,可以用1/16 fractional-sample accuracy mvA and mvB表示;1/32像素精度的色度分量的mv訊息,可以用1/32 fractional-sample accuracy mvCA and mvCB表示;mv訊息對應的參考幀,可以用refIdxA and refIdxB表示;mv訊息所選用的list標識,用predListFlagA and predListFlagB表示。處理模組702包括有3個步驟:首先,為三個圖像分量(包括L分量、Cb分量和Cr分量)推導參考幀清單(用refPicLN表示)、亞像素預測像素值(用predSamplesLN表示),N為A或B,而且亞像素預測像素值為14位元深度;其次,推導分割線的角度和步長;再次,為三個圖像分量推導加權預測像素值(用predSamples表示);最後,儲存mv訊息,用於後續預測mvN、refIdxN和predListFlagN。輸出模組703用於輸出預測像素值,可以包括三個圖像分量各自對應的預測像素值,分別用predSampleL、predSampleCb和predSampleCr表示。這裡,與常規的幀間預測技術相同,即採用已有的運動補償方式,計算得到兩個分區各自的單向預測值,以便用於後續GPM預測的加權融合過程。
需要說明的是,在進行加權融合之前,還需要確定當前塊的權重矩陣。而在確定當前塊的權重矩陣之前,首先需要根據當前塊的劃分模式以及偏移方向標識值去計算當前塊的左上角對應於座標原點的偏移訊息,可以用offset(x , y)表示,而座標原點處於同一角度下分割線穿過幾何中心點的同樣尺寸塊的幾何中心點,如圖8所示。在圖8中,黑色加粗直線表示分割線,灰色背景是根據目前的限定條件,透過偏移訊息對應的向量,最大尺寸的當前塊(64×64)相對該坐標系的最大移動範圍(112×112)。如果分割線不經過當前塊的幾何中心點,那麼就保持分割線相對位置不動,移動當前塊在坐標系中的位置,從而能夠得到恰當的分割,以將當前塊劃分為第一分區和第二分區,也即A分區和B分區。
其中,建構預定義的權重矩陣時,所使用的步長僅僅為第一個步長(即分割線一定與當前塊的幾何中心點相交)。
其中,partFlip用於指示A分區和B分區在當前塊內的分佈位置。具體地,如果partFlip值為0,表示可以利用後續式(11)中得到的權重索引值weightIdx為負值的一側為A分區,其對側為B分區;如果partFlip值為1時則相反,即權重索引值weightIdx為正值的一側為A分區,其對側(也即負值一側)為B分區。
進一步地,根據已經獲得的偏移方向標識值(可以用shiftHor表示)和步長索引值(可以用distanceIdx表示),可以計算出當前塊的偏移訊息,即在X軸方向的offsetX和在Y軸方向的offsetY。
其中,“>>”表示右移運算子,nW表示當前塊的寬度,nH表示當前塊的高度。
這裡,在確定出偏移訊息offsetX和offsetY後,透過當前塊內像素點位置可以計算當前像素點處的權重索引值(用weightIdx表示),進而能夠計算出當前像素點處的權重值,以得到當前塊的權重矩陣。(11)(12)(13)
其中,clip3表示鉗位運算子,0表示下界值,8表示上界值,比如clip3(i,j,x)表示:當x小於i時,其取值為i;當x大於j時,其取值為j;當x大於或等於i且小於或等於j時,其取值為x。
另外,表3提供了一種幾何分割線距離排列查閱資料表示例,式(11)中所使用的disLut[]如表3所示,subW和subH表示下取樣速率,如果當前塊的YUV格式為420格式,subW和subH都可以為2。
表3
idx | 0 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 11 | 12 | 13 | 14 |
disLut[idx] | 8 | 8 | 8 | 4 | 4 | 2 | 0 | −2 | −4 | −4 | −8 | −8 |
idx | 16 | 18 | 19 | 20 | 21 | 22 | 24 | 26 | 27 | 28 | 29 | 30 |
disLut[idx] | 8 | −8 | −8 | −4 | −4 | −2 | 0 | 2 | 4 | 4 | 8 | 8 |
這裡,weightIdx絕對值越小,表明了當前像素點距離分區的邊緣越近,該像素點處在A、B兩個分區上的權重分佈越平均。
另外,亮度不需要下採樣,而色度權重是針對亮度權重下採樣得到的。具體地,編碼器可以透過獲取每個2*2塊的右上角的亮度樣本權重直接作為當前像素點(x,y)處的色度樣本權重,即對亮度樣本權重進行下採樣。
示例性的,如圖9A所示為亮度權重矩陣,對其進行下採樣,可以得到圖9B所示的色度權重矩陣;針對圖9A中每個2*2塊內選取一個像素點(優選為左上角像素點)的亮度樣本權重直接作為當前像素點(x,y)處的色度樣本權重,從而實現對亮度樣本權重的下採樣。
進一步地,針對當前塊來說,其幀間預測值可以用三個圖像分量各自應的預測值表示,並且均可以採用下述式(14)進行加權計算。具體地,對這兩個分區的單向預測值進行逐像素的加權融合,可以得到當前塊內每一像素的幀間預測值,從而得到最終的GPM預測塊。具體的加權計算方式如下所示,(14)
進一步地,還需要將GPM預測塊的mv訊息進行儲存。該儲存過程可以是利用當前亮度塊的運動遮罩矩陣來實現的,如果預測值完全來自於A分區,那麼記錄A分區的mv訊息;如果預測值完全來自於B分區,那麼記錄B分區的mv訊息;否則,將會同時記錄兩個分區的mv訊息。這裡,運動遮罩的計算同計算亮度權重矩陣的過程基本一致,首先計算偏移訊息,包括在X軸方向的offsetX和在Y軸方向的offsetY。
其中,cbWidth和cbHeight是GPM預測塊對應的運動遮罩矩陣的寬度和高度(也即當前塊亮度分量的寬度和高度)。
由於GPM預測塊的運動遮罩矩陣仍是以4×4子塊為單位進行計算的,那麼每個4×4子塊的幾何中心位置(4i+2, 4j+2)處的運動索引值(可以用motionIdx表示)的計算類似於權重索引值weightIdx的計算,具體如下所示,(21)
然後,再確定當前4×4的子塊需要儲存的mv訊息。同預測加權時一樣,需要首先確定出當前子塊處於A分區還是B分區,而partIdx的計算具體如上述式(6)所示。這裡,(xSbIdx, ySbIdx)表示每個4×4子塊(SubBlock,SB)在當前CU中的子塊座標訊息,該座標訊息的範圍為xSbIdx=0, …, numSbX–1,ySbIdx=0, …, numSbY–1。partIdx表示是否需要對兩個分區進行翻轉。(22)
如此,根據每個4×4子塊的幾何中心位置(4i+2, 4j+2)處abs(motionIdx)的大小,來判斷當前子塊儲存單向mv還是雙向mv;具體判斷過程如下,
如果sType的取值為2,那麼當前塊儲存建構的雙向mv;否則,如果sType的取值為0,那麼當前塊儲存第一分區的mvA;如果sType的取值為1,那麼當前塊儲存第二分區的mvB。需要注意的是,這些儲存下來的mv訊息將用於後續編碼塊的mv預測。
這樣,結合圖7所示的GPM預測處理流程的總體架構示例,在確定處當前塊的第一分區的第一預測值和當前塊的第二分區的第二預測值之後,由於根據偏移訊息,還可以計算出當前塊的權重矩陣;那麼利用第一預測值、第二預測值以及所述權重矩陣對當前塊內各像素點進行加權融合,可以獲得當前塊的幀間預測值。
其中,nH表示當前塊的高度,nW表示當前塊的寬度,HwRatio表示當前塊的高寬比值,angleIdx表示當前塊的角度索引值。
根據式(23)和式(24),原始方案中shiftHor的計算過程採用了3次比較運算、1次或運算、1次與運算和1次除法運算,該計算過程比較複雜;而本申請實施例中shiftHor的計算過程如式(1)和式(2)所示,僅採用了2次比較運算、2次移位運算和1次減法運算,兩者計算過程的比較如表4所示。由於本申請的方案中比較次數較少,而且沒有運用或運算和與運算,也即本申請的方案簡化了shiftHor的計算過程,降低了計算複雜度。
表4
計算過程 | 比較運算 | 或運算 | 與運算 | 移位運算 | 加減運算 (取反) | 除法 (移位) |
原始方案 | 3 | 1 | 1 | 0 | 0 | 1 |
本申請的方案 | 2 | 0 | 0 | 2 | 1 | 0 |
另外,針對原始方案中不同角度下分割線移動方向的選用,即結合圖3A、圖3B和圖3C中移動方向的特徵匯總,可以得到如圖10A所示的原始方案中塊尺寸、角度索引值和分割線移動方向的對應關係示意圖。在圖10A中,灰色區域均具有水平方向移動的間距大於垂直方向移動的間距,但是原始方案中有很多情況下均選用了垂直移動。
在本申請實施例中,由於採用了優化GPM分割線移動方向的技術,即針對shiftHor的計算過程進行了優化。透過分析原始方案中分割線移動方向的原理,可以發現能夠利用角度正切與塊的高寬比之間的關係來準確表述分割線移動方向與間距(也可以稱為間隔)大小之間的關係。也就是說,本申請實施例修改了ShiftHor的判斷方式,使得當水平移動分割線的間隔大於垂直移動分割線的間隔時,這時候均採用水平方向移動分割線,其他情況則採用垂直方向移動分割線。參見圖10B,其示出了本申請實施例提供的一種塊尺寸、角度索引值和分割線移動方向的對應關係示意圖。如圖10B所示,針對原始方案進行修正,使得灰色區域均採用水平方向移動,黑色區域均採用垂直方向移動;中間的白色區域採用垂直方向移動,但是白色區域內可以隨便選用垂直方向或者水平方向移動,技術效果是相同的。
結合圖10A和圖10B,白色區域對應於角度正切(用tan()表示)與當前塊的高寬比(用h/w表示)之乘積為1,或角度餘切與塊的高寬比相等,或角度正切與塊的寬高比相等,這時候對分割線進行水平移動和垂直移動,得到的分割線間距是相同的;而灰色區域對應於角度正切與塊的高寬比之積小於1,或角度餘切大於塊的高寬比,或角度正切小於塊的寬高比,水平移動分割線的間距大於垂直移動分割線的間距;而黑色區域與灰色區域的特徵相反,即垂直移動分割線的間距大於水平移動分割線的間距。如此,基於本申請實施例的方案,依據以上特徵指示,如圖10B所示,利用角度索引值分段近似線性表示分割線角度的正切函數的對數值,對黑色區域均採用垂直移動分割線,灰色區域均採用水平移動分割線,白色區域可以採用垂直或水平移動分割線。
示例性地,採用如表5所示的角度正切與當前塊的高寬比兩者之間的乘積訊息,其中,左列的4/1、2/1、1/1、1/2、1/4表示當前塊的高寬比,上行的0、16、2、18、14、30等數位表示角度索引值,中間位置的數字表示兩者的乘積。這裡,乘積小於(或者,小於或等於)1的區域將全部採用水平移動分割線,乘積大於或等於(或者,大於)1的區域全部採用垂直移動分割線,也就實現了對當前塊內分割線移動方向的確定。
表5
乘積 | 0\16 | 2\18\14\30 | 3\19\13\29 | 4\20\12\28 | 5\21\11\27 | ---- | 8/24 |
4/1 | 0 | 1 | 2 | 4 | 8 | 16 | ∞ |
2/1 | 0 | 1/2 | 1 | 2 | 4 | 8 | ∞ |
1/1 | 0 | 1/4 | 1/2 | 1 | 2 | 4 | ∞ |
1/2 | 0 | 1/8 | 1/4 | 1/2 | 1 | 2 | ∞ |
1/4 | 0 | 1/16 | 1/8 | 1/4 | 1/2 | 1 | ∞ |
基於此,與原始方案相比,本申請實施例的幀間預測方法還能夠修正GPM預測模式下分割線移動方向的規則,使得所有模式下對於所有塊尺寸的分割線分佈更加均勻,彌補了原始方案在角度索引為2、18、14、30的角度下,對正方形和豎長形的塊所帶來的性能丟失。例如,本申請實施例的幀間預測方法基於最新版本的VVC參考軟體,在隨機訪問(Random Access)的條件下對JVET要求的測試序列進行粗略的初步測試,在三個圖像分量(Y分量、Cb分量和Cr分量)上的編解碼性能分別為-0.03%、-0.04%和-0.24%,從而能夠提升編解碼效率。
進一步地,針對shiftHor的計算過程,除了可以根據如上述式(2)或者式(3)所示的預設模型來計算之外,還可以採用下述的預設模型來計算。
可選地,在一些實施例中,對於S503來說,所述基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值,可以包括:
根據所述角度索引值,確定第一修正值;
利用所述第一修正值對所述當前塊的高度進行移位處理,獲得移位後的高度;
對所述移位後的高度與所述當前塊的寬度進行比值運算,獲得所述當前塊的高寬比值;
將所述當前塊的高寬比值與預設比值進行比較;
根據比較的結果,獲得所述當前塊的偏移方向標識值。
其中,對於式(26)而言,該等式的等價形式有很多種,本申請實施例不作具體限定。
可選地,在一些實施例中,對於S503來說,所述基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值,可以包括:
對所述當前塊的寬度和高度分別進行對數計算,獲得寬度對數值和高度對數值;
計算所述寬度對數值與所述高度對數值之間的差值;
對所計算的差值與第一預設值進行疊加運算,獲得第二修正值;
將第二修正值與第一修正值進行比較;
根據比較的結果,獲得所述當前塊的偏移方向標識值。
可選地,在一些實施例中,對於S503來說,所述基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值,可以包括:
利用預設位移值對所述當前塊的高度進行移位處理,獲得移位後的高度;
對所述移位後的高度與所述當前塊的寬度進行比值運算,獲得所述當前塊的高寬比值;
利用第一修正值對第二預設值進行移位處理,獲得移位後的修正值;
將所述移位後的修正值與所述當前塊的高寬比值進行比較;
根據比較的結果,獲得所述當前塊的偏移方向標識值。
進一步地,針對第一修正值的計算,還可以透過查閱資料表的方式來實現。在一些實施例中,所述根據所述角度索引值,計算第一修正值,可以包括:
基於所述角度索引值,從第一查閱資料表中查找與所述角度索引值對應的對數值;
將所查找到的對數值確定為所述第一修正值。
這裡,第一查閱資料表如表6所示,從表6中可以查找出與角度索引值對應的對數值,將所查找到的對數值確定為第一修正值。
表6
idx | 0 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 11 | 12 | 13 | 14 |
disLut[idx] | 8 | 8 | 8 | 4 | 4 | 2 | 0 | −2 | −4 | −4 | −8 | −8 |
Log2TanAnglePlus3[idx] | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 5 | 4 | 3 | 2 | 1 |
idx | 16 | 18 | 19 | 20 | 21 | 22 | 24 | 26 | 27 | 28 | 29 | 30 |
disLut[idx] | −8 | −8 | −8 | −4 | −4 | −2 | 0 | 2 | 4 | 4 | 8 | 8 |
Log2TanAnglePlus3[idx] | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 5 | 4 | 3 | 2 | 1 |
需要說明的是,這時候的第一修正值還可以用Log2TanAnglePlus3[idx]表示。在第一查閱資料表中,如果角度索引值為0,可以查找出第一修正值為0;如果角度索引值為2,可以查找出第一修正值為1等等。
其中,對於式(35)而言,該等式的等價形式有很多種,本申請實施例不作具體限定。
進一步地,本申請實施例還可以僅考慮當前塊的角度索引值,而不考慮當前塊的尺寸訊息來確定當前塊的偏移方向標識值,即當前塊內分割線的移動方向。在一些實施例中,對於S503來說,所述基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值,可以包括:
對所述角度索引值與第五預設值進行相加運算,得到相加結果;
利用所述相加結果對第六預設值進行取模運算,獲得取模結果;
將所述取模結果與第七預設值進行比較;
根據比較的結果,獲得所述當前塊的偏移方向標識值。
還需要說明的是,除了上述式(39)~(42)之外,本申請實施例的方法也適用於這些等式的其他等價形式。
進一步地,在本申請實施例中,只有對角和斜對角方向按照當前塊的尺寸訊息,其他角度方向按照角度索引值來確定當前塊的偏移方向標識值,即當前塊內分割線的移動方向。具體地,可以透過下述等式或者其等價形式來實現,本申請實施例不作具體限定。示例性地,(43)
進一步地,還可以透過第二查閱資料表的方式來確定當前塊的偏移方向標識值,即當前塊內分割線是在水平方向移動還是在垂直方向移動。在一些實施例中,對於S503來說,所述基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值,可以包括:
基於所述角度索引值,從第二查閱資料表中查找與所述角度索引值對應的位移指示值;
將所查找到的位移指示值與預設判斷結果進行比較;
根據比較的結果,獲得所述當前塊的偏移方向標識值;其中,所述預設判斷結果是透過判斷所述當前塊的高度是否大於寬度所得到的。
需要說明的是,第二查閱資料表如表7所示,從表7中可以查找出與角度索引值對應的位移指示值,根據所查找到的位移指示值確定當前塊的偏移方向標識值。
表7
idx | 0 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 11 | 12 | 13 | 14 | 4 |
shiftLut[idx] | 2 | 2 | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 2 | 2 | 1 |
idx | 16 | 18 | 19 | 20 | 21 | 22 | 24 | 26 | 27 | 28 | 29 | 30 | 20 |
shiftLut [idx] | 2 | 2 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 2 | 2 | 1 |
或者,也可以是在已有表3的基礎上增加位移指示項,用以選擇不同的參數,即如表8所示。
表8
idx | 0 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 11 | 12 | 13 | 14 |
disLut[idx] | 8 | 8 | 8 | 4 | 4 | 2 | 0 | −2 | −4 | −4 | −8 | −8 |
shiftLut[idx] | 2 | 2 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 2 |
idx | 16 | 18 | 19 | 20 | 21 | 22 | 24 | 26 | 27 | 28 | 29 | 30 |
disLut[idx] | −8 | −8 | −8 | −4 | −4 | −2 | 0 | 2 | 4 | 4 | 8 | 8 |
shiftLut[idx] | 2 | 2 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 2 |
這裡,表7或表8中元素的含義如下所示:元素0表示所有塊尺寸的分割線僅垂直方向移動;元素2表示所有塊尺寸的分割線僅水平方向移動;元素1表示對於扁長形和正方形的塊的分割線為水平方向移動,而對於豎長形的塊的分割線為垂直方向移動。
也就是說,透過修改ShiftHor的判斷方式,能夠僅使得角度索引值為2、18、14、30和3、19、13、29的角度所對應的正方形、豎長形或者扁長形的塊的分割線僅在水平方向上移動(即最靠近水平角度的那部分角度都調整為僅在水平方向上移動),而角度索引為5、21、11、27的角度對應的正方形、豎長形或者扁長形的塊的分割線僅在垂直方向上移動(即最靠近垂直角度的那部分角度都調整為僅在垂直方向上移動)。
進一步地,在一些實施例中,針對水平方向和垂直方向移動分割線間隔相同的情況,無論是選擇水平方向移動還是選擇垂直方向移動,兩者所達到的效果是等價的,針對這種情況,透過修改ShiftHor的判斷方式,可以使得角度索引值為2、18、14、30的角度對應的正方形或者豎長形的塊也只在水平方向上移動,同時將角度索引值為3、19、13、29所對應的角度下,對於正方形的塊也調整為水平方向上移動,如圖11A所示。
進一步地,在一些實施例中,還可以透過修改ShiftHor的判斷方式,使得角度索引值為2、18、14、30的角度對應的正方形或者豎長形的塊只在水平方向上移動,如圖11B所示。
進一步地,還可以將以上shiftHor的計算等效為清單實現方式。也就是說,針對shiftHor的取值,還可以透過查表方式得到,比如表9或者表10所示。
表9
angleIdx | 0~2 | 3~4 | 5 | 8 | 11 | 12~13 | 14~18 | 19~20 | 21 | 24 | 27 | 28~29 | 30 |
hwRatio | - | >1 | >=1 | 任意值 | >=1 | >1 | - | >1 | >=1 | 任意值 | >=1 | >1 | - |
shiftHor | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
angleIdx | 0~2 | 3~4 | 5 | 8 | 11 | 12~13 | 14~18 | 19~20 | 21 | 24 | 27 | 28~29 | 30 |
hwRatio | 任意值 | <=1 | <1 | - | <1 | <=1 | 任 意 值 | <=1 | <1 | - | <1 | <=1 | 任意值 |
shiftHor | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
表10
angleIdx | 0~2 | 3 | 4~5 | 8 | 11~12 | 13 | 14~18 | 19 | 20~21 | 24 | 27~28 | 29 | 30 |
hwRatio | - | >1 | >=1 | 任意值 | >=1 | >1 | - | >1 | >=1 | 任意值 | >=1 | >1 | - |
shiftHor | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
angleIdx | 0~2 | 3 | 4~5 | 8 | 11~12 | 13 | 14~18 | 19 | 20~21 | 24 | 27~28 | 29 | 30 |
hwRatio | 任意值 | <=1 | <1 | - | <1 | <=1 | 任 意 值 | <=1 | <1 | - | <1 | <=1 | 任意值 |
shiftHor | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
除此之外,在一些實施例中,還可以針對shiftHor的判斷方式進行最小更改,即當前塊的高寬比值(HwRatio)的計算與原始方案相同,即如式(23)所示,而只是針對shiftHor的計算進行修正,具體如下所示,(77)
這裡,根據式(77)的修正,也可以使得當前塊分割線移動間隔的選擇總體有所改善,如圖11C所示。
如此,在編碼器側,計算出當前塊中至少一個像素的幀間預測值之後,可以根據當前塊內至少一個像素的真實值與幀間預測值之間的差值計算出至少一個像素對應的殘差,並將得到的殘差寫入位元流中;另外,在得到劃分模式索引值之後,還需要將劃分模式索引值(用merge_gpm_partition_idx表示)以及兩個分區各自在merge清單中所選擇的參考位置訊息(用merge_ gpm_idx0[xCb][yCb]和merge_gpm_idx1[xCb][yCb]表示)也寫入位元流中;然後該位元流由編碼器側傳輸到解碼器側,以便在解碼器側解析位元流。
本實施例提供了一種幀間預測方法,應用於編碼器。透過確定當前塊的預測模式參數;當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定所述當前塊內分割線對應的角度和步長,並將角度索引值和步長索引值分別設置為所述角度和所述步長在預設映射表中對應的索引序號;基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示所述當前塊在所述角度下不同分割線之間的位移方向;基於所述偏移方向標識值和所述步長索引值,對所述當前塊進行幀間預測。這樣,利用預設模型簡化了偏移方向標識值的計算過程,降低了計算複雜度;另外,還能夠修正GPM預測模式下部分角度下不同尺寸塊內分割線的移動方向,使得針對所有塊尺寸的分割線分佈更加均勻稀疏,解決了GPM預測模式下分割線分佈過於密集而導致性能丟失的問題,從而提高了編解碼性能,以達到提升編解碼效率的目的。
基於上述圖4B的應用場景示例,參見圖12,其示出了本申請實施例提供的另一種幀間預測方法的流程示意圖。如圖12所示,該方法可以包括:
S1201:解析位元流,獲取當前塊的預測模式參數;
需要說明的是,該方法應用於解碼器。其中,在解碼器側,一幀影像圖像也可以劃分為多個圖像塊,每個當前待解碼的圖像塊可以為一個CB。這裡,當前塊具體是指影像圖像中當前待進行第一圖像分量、第二圖像分量或者第三圖像分量解碼預測的解碼塊。
還需要說明的是,預測模式參數指示了當前塊採用的預測模式以及與該預測模式相關的參數。其中,預測模式通常包括有幀間預測模式、傳統幀內預測模式和非傳統幀內預測模式等,而幀間預測模式又包括有傳統幀間預測模式和GPM預測模式等。也就是說,編碼器會選取最優的預測模式對當前塊進行預編碼,在這過程中就可以確定出當前塊的預測模式,從而將相應的預測模式參數寫入位元流,由編碼器傳輸到解碼器。
這樣,在解碼器側,透過解析位元流可以獲取到當前塊的預測模式參數,根據所獲取的預測模式參數用以確定當前塊是否使用GPM預測模式。
S1202:當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定角度索引值和步長索引值;其中,所述角度索引值和所述步長索引值表示所述當前塊內分割線對應的角度和步長在預設映射表中對應的索引序號;
需要說明的是,如果預測模式參數指示當前塊使用GPM預測模式,那麼還需要繼續解析位元流,以獲取到當前塊的角度索引值和步長索引值。具體地,對於S1202來說,當預測模式參數指示使用GPM確定當前塊的幀間預測值時,該方法還可以包括:
解析位元流,獲取所述當前塊的劃分模式索引值;
相應地,所述確定角度索引值和步長索引值,包括:
基於所述劃分模式索引值,從預設映射表中查詢與所述劃分模式索引值對應的角度索引值和步長索引值;其中,所述預設映射表用於指示劃分模式索引值、角度索引值和步長索引之間的對應關係;
將查詢得到的角度索引值和步長索引值確定為所述角度索引值和所述步長索引值。
也就是說,當預測模式參數指示當前塊使用GPM預測模式時,還可以繼續解析位元流,以獲取當前塊的劃分模式索引值,用merge_gpm_partition_ idx表示,結合表1所示的預設映射表,可以查表得到對應的角度索引值(用angleIdx表示)和步長索引值(用distanceIdx表示)。
S1203:基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示所述當前塊在所述角度下不同分割線之間的位移方向;
需要說明的是,當確定出當前塊之後,即可以得到當前塊的尺寸訊息,比如當前塊的高度和寬度。這樣,根據當前塊的尺寸訊息以及角度索引值,能夠計算得到當前塊的偏移方向標識值,可以用shiftHor表示。
具體地,在一些實施例中,對於S1203來說,所述基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值,可以包括:
根據所述角度索引值,確定第一修正值;
利用所述第一修正值對所述當前塊的高度進行移位處理,獲得移位後的高度;
利用預設位移值對所述當前塊的寬度進行移位處理,獲得移位後的寬度;
將所述移位後的高度和所述移位後的寬度進行比較;
根據比較的結果,獲得所述當前塊的偏移方向標識值。
進一步地,在一些實施例中,在所述獲得移位後的高度之後,該方法還可以包括:
對所述移位後的高度與所述當前塊的寬度進行比值運算,獲得所述當前塊的高寬比值;
將所述當前塊的高寬比值與預設比值進行比較;
根據比較的結果,獲得所述當前塊的偏移方向標識值。
進一步地,在一些實施例中,在所述根據所述角度索引值,確定第一修正值之後,該方法還可以包括:
對所述當前塊的寬度和高度分別進行對數計算,獲得寬度對數值和高度對數值;
計算所述寬度對數值與所述高度對數值之間的差值;
對所計算的差值與第一預設值進行疊加運算,獲得第二修正值;
將所述第二修正值與所述第一修正值進行比較;
根據比較的結果,獲得所述當前塊的偏移方向標識值。
可選地,在一些實施例中,在所述根據所述角度索引值,確定第一修正值之後,該方法還可以包括:
利用預設位移值對所述當前塊的高度進行移位處理,獲得移位後的高度;
對所述移位後的高度與所述當前塊的寬度進行比值運算,獲得所述當前塊的高寬比值;
利用所述第一修正值對第二預設值進行移位處理,獲得移位後的修正值;
將所述移位後的修正值與所述當前塊的高寬比值進行比較;
根據比較的結果,獲得所述當前塊的偏移方向標識值。
進一步地,在一些實施例中,所述根據所述角度索引值,確定第一修正值,可以包括:
利用所述角度索引值對第三預設值進行取模運算,獲得取模結果;
將所述取模結果與第四預設值進行比較,根據比較的結果確定所述第一修正值。
進一步地,在一些實施例中,所述根據所述角度索引值,計算第一修正值,可以包括:
基於所述角度索引值,從第一查閱資料表中查找與所述角度索引值對應的對數值;
將所查找到的對數值確定為所述第一修正值。
進一步地,還可以透過查閱資料表的方式來確定當前塊的偏移方向標識值,即當前塊內分割線是在水平方向移動還是在垂直方向移動。在一些實施例中,對於S1203來說,所述基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值,可以包括:
基於所述角度索引值,從第二查閱資料表中查找與所述角度索引值對應的位移指示值;
將所查找到的位移指示值與預設判斷結果進行比較;
根據比較的結果,獲得所述當前塊的偏移方向標識值;其中,所述預設判斷結果是透過判斷所述當前塊的高度是否大於寬度所得到的。
進一步地,本申請實施例還可以僅考慮當前塊的角度索引值,而不考慮當前塊的尺寸訊息來確定當前塊的偏移方向標識值,即當前塊內分割線的移動方向。在一些實施例中,對於S1203來說,所述基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值,可以包括:
對所述角度索引值與第五預設值進行相加運算,得到相加結果;
利用所述相加結果對第六預設值進行取模運算,獲得取模結果;
將所述取模結果與第七預設值進行比較;
根據比較的結果,獲得所述當前塊的偏移方向標識值。
進一步地,在一些實施例中,該方法還可以包括:
若所述偏移方向標識值等於1,則確定所述當前塊在所述角度下分割線的位移方向為水平方向;
若所述偏移方向標識值等於0,則確定所述當前塊在所述角度下分割線的位移方向為垂直方向。
S1204:基於所述偏移方向標識值和所述步長索引值,確定所述當前塊的幀間預測值。
需要說明的是,在得到偏移方向標識值和步長索引值之後,可以確定出當前塊的目標分割線以及偏移訊息,用以計算當前塊的幀間預測值。具體地,在一些實施例中,所述基於所述偏移方向標識值和所述步長索引值,確定所述當前塊的幀間預測值,可以包括:
基於所述偏移方向標識值和所述步長索引值,確定所述當前塊的目標分割線以及偏移訊息;
基於所述目標分割線對所述當前塊的劃分,確定所述當前塊的第一分區的第一預測值和所述當前塊的第二分區的第二預測值;
根據所述偏移訊息,計算所述當前塊的權重矩陣;
利用所述第一預測值、所述第二預測值以及所述權重矩陣對所述當前塊內各像素點進行加權運算,獲得所述當前塊的幀間預測值。
可以理解地,在GPM預測模式中,確定出偏移方向標識值和步長索引值之後,可以獲得當前塊的目標分割線,用以將當前塊劃分為第一分區和第二分區(即A分區和B分區)。而在確定出兩個分區之後,還需要計算這兩個分區各自的單向預測值。
這裡,GPM預測模式可以重用已有的常規merge清單,按照同位方式建構屬於GPM的單向merge清單,使得使用GPM劃分後的兩個分區各自的候選mv訊息都是從該單向merge清單中選出的。由於編碼器傳輸的位元流中包括有A分區和B分區各自在merge清單中所選擇的參考位置訊息(用merge_gpm_idx0[xCb][yCb]和merge_gpm_idx1[xCb][yCb])表示),透過解析位元流還可以得到merge_gpm_idx0[xCb][yCb],表示A分區的mv在merge清單中的位置,令m= merge_gpm_idx0[xCb][yCb];透過解析位元流還可以得到merge_gpm_idx1[xCb][yCb],表示B分區的mv在merge清單中的位置,由於B分區的mv在merge清單中的位置可能因為A分區先選取了靠前位置的選項,而會減小1,即令n= merge_gpm_idx1 [xCb][yCb]+(merge_ gpm_idx1[xCb][yCb]>=m)?1:0,n表示的就是B分區選擇的mv在merge清單中的實際位置。需要說明的是,解碼器側無需進行運動估計,在獲得m和n之後,後續的處理步驟與編碼器側的處理步驟相同,這裡不再詳述。
這樣,結合上述圖7所示的GPM預測處理流程的總體架構示例,在確定處當前塊的第一分區的第一預測值和當前塊的第二分區的第二預測值之後,由於根據偏移訊息,還可以計算出當前塊的權重矩陣;那麼利用第一預測值、第二預測值以及所述權重矩陣對當前塊內各像素點進行加權融合,可以獲得當前塊的幀間預測值。
本實施例提供了一種幀間預測方法,應用於解碼器。透過解析位元流,獲取當前塊的預測模式參數;當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定角度索引值和步長索引值;其中,所述角度索引值和所述步長索引值表示所述當前塊內分割線對應的角度和步長在預設映射表中對應的索引序號;基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示所述當前塊在所述角度下不同分割線之間的位移方向;基於所述偏移方向標識值和所述步長索引值,確定所述當前塊的幀間預測值。這樣,利用預設模型簡化了偏移方向標識值的計算過程,降低了計算複雜度;另外,還能夠修正GPM預測模式下部分角度下不同尺寸塊內分割線的移動方向,使得針對所有塊尺寸的分割線分佈更加均勻稀疏,解決了GPM預測模式下分割線分佈過於密集而導致性能丟失的問題,從而提高了編解碼性能,以達到提升編解碼效率的目的。
基於前述實施例相同的發明構思,參見圖13,其示出了本申請實施例提供的一種編碼器130的組成結構示意圖。如圖13所示,該編碼器130可以包括:第一確定單元1301、第一計算單元1302和第一預測單元1303;其中,
第一確定單元1301,配置為確定當前塊的預測模式參數;
第一確定單元1301,還配置為當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定所述當前塊內分割線對應的角度和步長,並將角度索引值和步長索引值分別設置為所述角度和所述步長在預設映射表中對應的索引序號;
第一計算單元1302,配置為基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示所述當前塊在所述角度下不同分割線之間的位移方向;
第一預測單元1303,配置為基於所述偏移方向標識值和所述步長索引值,對所述當前塊進行幀間預測。
在一些實施例中,當前塊的尺寸訊息包括所述當前塊的高度和寬度;第一計算單元1302,具體配置為根據所述角度索引值,確定第一修正值;利用所述第一修正值對所述當前塊的高度進行移位處理,獲得移位後的高度;利用預設位移值對所述當前塊的寬度進行移位處理,獲得移位後的寬度;將所述移位後的高度和所述移位後的寬度進行比較;根據比較的結果,獲得所述當前塊的偏移方向標識值。
在一些實施例中,第一計算單元1302,還配置為對所述移位後的高度與所述當前塊的寬度進行比值運算,獲得所述當前塊的高寬比值;將所述當前塊的高寬比值與預設比值進行比較;根據比較的結果,獲得所述當前塊的偏移方向標識值。
在一些實施例中,第一計算單元1302,還配置為對所述當前塊的寬度和高度分別進行對數計算,獲得寬度對數值和高度對數值;計算所述寬度對數值與所述高度對數值之間的差值;對所計算的差值與第一預設值進行疊加運算,獲得第二修正值;將所述第二修正值與所述第一修正值進行比較;根據比較的結果,獲得所述當前塊的偏移方向標識值。
在一些實施例中,第一計算單元1302,還配置為利用預設位移值對所述當前塊的高度進行移位處理,獲得移位後的高度;對所述移位後的高度與所述當前塊的寬度進行比值運算,獲得所述當前塊的高寬比值;利用所述第一修正值對第二預設值進行移位處理,獲得移位後的修正值;將所述移位後的修正值與所述當前塊的高寬比值進行比較;根據比較的結果,獲得所述當前塊的偏移方向標識值。
在一些實施例中,第一計算單元1302,還配置為利用所述角度索引值對第三預設值進行取模運算,獲得取模結果;將所述取模結果與第四預設值進行比較,根據比較的結果確定所述第一修正值。
在一些實施例中,第一計算單元1302,還配置為基於所述角度索引值,從第一查閱資料表中查找與所述角度索引值對應的對數值;將所查找到的對數值確定為所述第一修正值。
在一些實施例中,第一計算單元1302,還配置為基於所述角度索引值,從第二查閱資料表中查找與所述角度索引值對應的位移指示值;將所查找到的位移指示值與預設判斷結果進行比較;根據比較的結果,獲得所述當前塊的偏移方向標識值;其中,所述預設判斷結果是透過判斷所述當前塊的高度是否大於寬度所得到的。
在一些實施例中,第一計算單元1302,還配置為對所述角度索引值與第五預設值進行相加運算,得到相加結果;利用所述相加結果對第六預設值進行取模運算,獲得取模結果;將所述取模結果與第七預設值進行比較;根據比較的結果,獲得所述當前塊的偏移方向標識值。
在一些實施例中,第一確定單元1301,還配置為若所述偏移方向標識值等於1,則確定所述當前塊在所述角度下分割線的位移方向為水平方向;若所述偏移方向標識值等於0,則確定所述當前塊在所述角度下分割線的位移方向為垂直方向。
在一些實施例中,參見圖13,編碼器130還可以包括預編碼單元1304和選擇單元1305;其中,
預編碼單元1304,配置為利用多種預測模式對所述當前塊進行預編碼處理,獲得每一種預測模式對應的位元率失真代價值;
選擇單元1305,配置為從所獲得的多個位元率失真代價值中選擇最小位元率失真代價值,將所述最小位元率失真代價值對應的預測模式確定為當前塊的預測模式參數。
在一些實施例中,第一確定單元1301,還配置為確定所述當前塊的劃分模式;以及將劃分模式索引值確定為所述劃分模式在預設映射表中對應的索引序號並寫入位元流;其中,所述預設映射表用於指示劃分模式索引值、角度索引值和步長索引之間的對應關係。
在一些實施例中,第一確定單元1301,還配置為基於所述偏移方向標識值和所述步長索引值,確定所述當前塊的目標分割線以及偏移訊息;基於所述目標分割線對所述當前塊的劃分,確定所述當前塊的第一分區的第一預測值和所述當前塊的第二分區的第二預測值;
第一計算單元1302,還配置為根據所述偏移訊息,計算所述當前塊的權重矩陣;
第一預測單元1303,具體配置為利用所述第一預測值、所述第二預測值以及所述權重矩陣對所述當前塊內各像素點進行加權運算,獲得所述當前塊的幀間預測值。
可以理解地,在本申請實施例中,“單元”可以是部分電路、部分處理器、部分程式或軟體等等,當然也可以是模組,還可以是非模組化的。而且在本實施例中的各組成部分可以集成在一個處理單元中,也可以是各個單元單獨實體存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用軟體功能模組的形式實現。
所述集成的單元如果以軟體功能模組的形式實現並非作為獨立的產品進行銷售或使用時,可以儲存在一個電腦可讀取儲存媒介中,基於這樣的理解,本實施例的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟體產品的形式體現出來,該電腦軟體產品儲存在一個儲存媒介中,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)或processor(處理器)執行本實施例所述方法的全部或部分步驟。而前述的儲存媒介包括:隨身碟、移動硬碟、唯讀記憶體(Read Only Memory,ROM)、隨機存取記憶體(Random Access Memory,RAM)、磁碟或者光碟等各種可以儲存程式碼的媒介。
因此,本申請實施例提供了一種電腦儲存媒介,應用於編碼器130,該電腦儲存媒介儲存有幀間預測程式,所述幀間預測程式被第一處理器執行時實現前述實施例中任一項所述的方法。
基於上述編碼器130的組成以及電腦儲存媒介,參見圖14,其示出了本申請實施例提供的編碼器130的具體硬體結構示例,可以包括:第一通訊介面1401、第一記憶體1402和第一處理器1403;各個元件透過第一匯流排系統1404耦合在一起。可理解,第一匯流排系統1404用於實現這些元件之間的連接通訊。第一匯流排系統1404除包括資料匯流排之外,還包括電源匯流排、控制匯流排和狀態信號匯流排。但是為了清楚說明起見,在圖14中將各種匯流排都標為第一匯流排系統1404。其中,
第一通訊介面1401,用於在與其他外部網路元件之間進行收發訊息過程中,信號的接收和發送;
第一記憶體1402,用於儲存能夠在第一處理器1403上運行的電腦程式;
第一處理器1403,用於在運行所述電腦程式時,執行:
確定當前塊的預測模式參數;
當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定所述當前塊內分割線對應的角度和步長,並將角度索引值和步長索引值分別設置為所述角度和所述步長在預設映射表中對應的索引序號;
基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示所述當前塊在所述角度下不同分割線之間的位移方向;
基於所述偏移方向標識值和所述步長索引值,對所述當前塊進行幀間預測。
可以理解,本申請實施例中的第一記憶體1402可以是揮發性記憶體或非揮發性記憶體,或可包括揮發性和非揮發性記憶體兩者。其中,非揮發性記憶體可以是唯讀記憶體(Read-Only Memory,ROM)、可程式唯讀記憶體(Programmable ROM,PROM)、可擦除可程式唯讀記憶體(Erasable PROM,EPROM)、電可擦除可程式唯讀記憶體(Electrically EPROM,EEPROM)或快閃記憶體。揮發性記憶體可以是隨機存取記憶體(Random Access Memory,RAM),其用作外部快取記憶體。透過示例性但不是限制性說明,許多形式的RAM可用,例如靜態隨機存取記憶體(Static RAM,SRAM)、動態隨機存取記憶體(Dynamic RAM,DRAM)、同步動態隨機存取記憶體(Synchronous DRAM,SDRAM)、雙倍數據速率同步動態隨機存取記憶體(Double Data Rate SDRAM,DDRSDRAM)、增強型同步動態隨機存取記憶體(Enhanced SDRAM,ESDRAM)、同步連接動態隨機存取記憶體(Synclink DRAM,SLDRAM)和直接記憶體匯流排隨機存取記憶體(Direct Rambus RAM,DRRAM)。本申請描述的系統和方法的第一記憶體1402旨在包括但不限於這些和任意其它適合類型的記憶體。
而第一處理器1403可能是一種積體電路晶片,具有信號的處理能力。在實現過程中,上述方法的各步驟可以透過第一處理器1403中的硬體的集成邏輯電路或者軟體形式的指令完成。上述的第一處理器1403可以是通用處理器、數位訊號處理器(Digital Signal Processor,DSP)、專用積體電路(Application Specific Integrated Circuit,ASIC)、場域可程式閘陣列(Field Programmable Gate Array,FPGA)或者其他可程式邏輯器件、離散門或者電晶體邏輯器件、離散硬體元件。可以實現或者執行本申請實施例中的公開的各方法、步驟及邏輯方塊圖。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。結合本申請實施例所公開的方法的步驟可以直接體現為硬體解碼處理器執行完成,或者用解碼處理器中的硬體及軟體模組組合執行完成。軟體模組可以位於隨機記憶體,快閃記憶體、唯讀記憶體,可程式唯讀記憶體或者電可讀寫可程式記憶體、暫存器等本領域成熟的儲存媒介中。該儲存媒介位於第一記憶體1402,第一處理器1403讀取第一記憶體1402中的訊息,結合其硬體完成上述方法的步驟。
可以理解的是,本申請描述的這些實施例可以用硬體、軟體、固件、中介軟體、微碼或其組合來實現。對於硬體實現,處理單元可以實現在一個或多個專用積體電路(Application Specific Integrated Circuits,ASIC)、數位訊號處理器(Digital Signal Processing,DSP)、數位信號處理設備(DSP Device,DSPD)、可程式邏輯裝置(Programmable Logic Device,PLD)、場域可程式閘陣列(Field-Programmable Gate Array,FPGA)、通用處理器、控制器、微控制器、微處理器、用於執行本申請所述功能的其它電子單元或其組合中。對於軟體實現,可透過執行本申請所述功能的模組(例如過程、函數等)來實現本申請所述的技術。軟體代碼可儲存在記憶體中並透過處理器執行。記憶體可以在處理器中或在處理器外部實現。
可選地,作為另一個實施例,第一處理器1403還配置為在運行所述電腦程式時,執行前述實施例中任一項所述的方法。
本實施例提供了一種編碼器,該編碼器可以包括第一確定單元、第一計算單元和第一預測單元。在該編碼器中,利用預設模型簡化了偏移方向標識值的計算過程,降低了計算複雜度;另外,還能夠修正GPM預測模式下部分角度下不同尺寸塊內分割線的移動方向,使得針對所有塊尺寸的分割線分佈更加均勻稀疏,解決了GPM預測模式下分割線分佈過於密集而導致性能丟失的問題,從而提高了編解碼性能,以達到提升編解碼效率的目的。
基於前述實施例相同的發明構思,參見圖15,其示出了本申請實施例提供的一種解碼器150的組成結構示意圖。如圖15所示,該解碼器150可以包括:解析單元1501、第二確定單元1502、第二計算單元1503和第二預測單元1504;其中,
解析單元1501,配置為解析位元流,獲取當前塊的預測模式參數;
第二確定單元1502,配置為當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定角度索引值和步長索引值;其中,所述角度索引值和所述步長索引值表示所述當前塊內分割線對應的角度和步長在預設映射表中對應的索引序號;
第二計算單元1503,配置為基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示所述當前塊在所述角度下不同分割線之間的位移方向;
第二預測單元1504,配置為基於所述偏移方向標識值和所述步長索引值,確定所述當前塊的幀間預測值。
在一些實施例中,解析單元1501,還配置為解析位元流,獲取所述當前塊的劃分模式索引值;
相應地,第二確定單元1502,具體配置為基於所述劃分模式索引值,從預設映射表中查詢與所述劃分模式索引值對應的角度索引值和步長索引值;其中,所述預設映射表用於指示劃分模式索引值、角度索引值和步長索引之間的對應關係;將查詢得到的角度索引值和步長索引值確定為所述當前塊的角度索引值和步長索引值。
在一些實施例中,當前塊的尺寸訊息包括所述當前塊的高度和寬度;第二計算單元1503,具體配置為根據所述角度索引值,確定第一修正值;利用所述第一修正值對所述當前塊的高度進行移位處理,獲得移位後的高度;利用預設位移值對所述當前塊的寬度進行移位處理,獲得移位後的寬度;將所述移位後的高度和所述移位後的寬度進行比較;根據比較的結果,獲得所述當前塊的偏移方向標識值。
在一些實施例中,第二計算單元1503,還配置為對所述移位後的高度與所述當前塊的寬度進行比值運算,獲得所述當前塊的高寬比值;將所述當前塊的高寬比值與預設比值進行比較;根據比較的結果,獲得所述當前塊的偏移方向標識值。
在一些實施例中,第二計算單元1503,還配置為對所述當前塊的寬度和高度分別進行對數計算,獲得寬度對數值和高度對數值;計算所述寬度對數值與所述高度對數值之間的差值;對所計算的差值與第一預設值進行疊加運算,獲得第二修正值;將所述第二修正值與所述第一修正值進行比較;根據比較的結果,獲得所述當前塊的偏移方向標識值。
在一些實施例中,第二計算單元1503,還配置為利用預設位移值對所述當前塊的高度進行移位處理,獲得移位後的高度;對所述移位後的高度與所述當前塊的寬度進行比值運算,獲得所述當前塊的高寬比值;利用所述第一修正值對第二預設值進行移位處理,獲得移位後的修正值;將所述移位後的修正值與所述當前塊的高寬比值進行比較;根據比較的結果,獲得所述當前塊的偏移方向標識值。
在一些實施例中,第二計算單元1503,還配置為利用所述角度索引值對第三預設值進行取模運算,獲得取模結果;將所述取模結果與第四預設值進行比較,根據比較的結果確定所述第一修正值。
在一些實施例中,第二計算單元1503,還配置為基於所述角度索引值,從第一查閱資料表中查找與所述角度索引值對應的對數值;將所查找到的對數值確定為所述第一修正值。
在一些實施例中,第二計算單元1503,還配置為基於所述角度索引值,從第二查閱資料表中查找與所述角度索引值對應的位移指示值;將所查找到的位移指示值與預設判斷結果進行比較;根據比較的結果,獲得所述當前塊的偏移方向標識值;其中,所述預設判斷結果是透過判斷所述當前塊的高度是否大於寬度所得到的。
在一些實施例中,第二計算單元1503,還配置為對所述角度索引值與第五預設值進行相加運算,得到相加結果;利用所述相加結果對第六預設值進行取模運算,獲得取模結果;將所述取模結果與第七預設值進行比較;根據比較的結果,獲得所述當前塊的偏移方向標識值。
在一些實施例中,第二確定單元1502,還配置為若所述偏移方向標識值等於1,則確定所述當前塊在所述角度下分割線的位移方向為水平方向;若所述偏移方向標識值等於0,則確定所述當前塊在所述角度下分割線的位移方向為垂直方向。
在一些實施例中,第二確定單元1502,還配置為基於所述偏移方向標識值和所述步長索引值,確定所述當前塊的目標分割線以及偏移訊息;基於所述目標分割線對所述當前塊的劃分,確定所述當前塊的第一分區的第一預測值和所述當前塊的第二分區的第二預測值;
第二計算單元1503,還配置為根據所述偏移訊息,計算所述當前塊的權重矩陣;
第二預測單元1504,具體配置為利用所述第一預測值、所述第二預測值以及所述權重矩陣對所述當前塊內各像素點進行加權運算,獲得所述當前塊的幀間預測值。
可以理解地,在本實施例中,“單元”可以是部分電路、部分處理器、部分程式或軟體等等,當然也可以是模組,還可以是非模組化的。而且在本實施例中的各組成部分可以集成在一個處理單元中,也可以是各個單元單獨實體存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用軟體功能模組的形式實現。
所述集成的單元如果以軟體功能模組的形式實現並非作為獨立的產品進行銷售或使用時,可以儲存在一個電腦可讀取儲存媒介中,基於這樣的理解,本實施例提供了一種電腦儲存媒介,應用於解碼器150,該電腦儲存媒介儲存有幀間預測程式,所述幀間預測程式被第二處理器執行時實現前述實施例中任一項所述的方法。
基於上述解碼器150的組成以及電腦儲存媒介,參見圖16,其示出了本申請實施例提供的解碼器150的具體硬體結構示例,可以包括:第二通訊介面1601、第二記憶體1602和第二處理器1603;各個元件透過第二匯流排系統1604耦合在一起。可理解,第二匯流排系統1604用於實現這些元件之間的連接通訊。第二匯流排系統1604除包括資料匯流排之外,還包括電源匯流排、控制匯流排和狀態信號匯流排。但是為了清楚說明起見,在圖16中將各種匯流排都標為第二匯流排系統1604。其中,
第二通訊介面1601,用於在與其他外部網路元件之間進行收發訊息過程中,信號的接收和發送;
第二記憶體1602,用於儲存能夠在第二處理器1603上運行的電腦程式;
第二處理器1603,用於在運行所述電腦程式時,執行:
解析位元流,獲取當前塊的預測模式參數;
當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定角度索引值和步長索引值;其中,所述角度索引值和所述步長索引值表示所述當前塊內分割線對應的角度和步長在預設映射表中對應的索引序號;
基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示所述當前塊在所述角度下不同分割線之間的位移方向;
基於所述偏移方向標識值和所述步長索引值,確定所述當前塊的幀間預測值。
可選地,作為另一個實施例,第二處理器1603還配置為在運行所述電腦程式時,執行前述實施例中任一項所述的方法。
可以理解,第二記憶體1602與第一記憶體1402的硬體功能類似,第二處理器1603與第一處理器1403的硬體功能類似;這裡不再詳述。
本實施例提供了一種解碼器,該解碼器可以包括解析單元、第二確定單元、第二計算單元和第二預測單元。在該解碼器中,利用預設模型簡化了偏移方向標識值的計算過程,降低了計算複雜度;另外,還能夠修正GPM預測模式下部分角度下不同尺寸塊內分割線的移動方向,使得針對所有塊尺寸的分割線分佈更加均勻稀疏,解決了GPM預測模式下分割線分佈過於密集而導致性能丟失的問題,從而提高了編解碼性能,以達到提升編解碼效率的目的。
需要說明的是,在本申請中,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
上述本申請實施例序號僅僅為了描述,不代表實施例的優劣。
本申請所提供的幾個方法實施例中所揭露的方法,在不衝突的情況下可以任意組合,得到新的方法實施例。
本申請所提供的幾個產品實施例中所揭露的特徵,在不衝突的情況下可以任意組合,得到新的產品實施例。
本申請所提供的幾個方法或設備實施例中所揭露的特徵,在不衝突的情況下可以任意組合,得到新的方法實施例或設備實施例。
以上所述,僅為本申請的具體實施方式,但本申請的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本申請揭露的技術範圍內,可輕易想到變化或替換,都應涵蓋在本申請的保護範圍之內。因此,本申請的保護範圍應以所述請求項的保護範圍為準。
本申請實施例中,在當前塊的預測模式參數指示使用GPM確定當前塊的幀間預測值時,可以利用預設模型計算當前塊的偏移方向標識值,進而確定所述當前塊的幀間預測值。這樣,利用預設模型簡化了偏移方向標識值的計算過程,降低了計算複雜度;另外,還能夠修正GPM預測模式下部分角度下不同尺寸塊內分割線的移動方向,使得針對所有塊尺寸的分割線分佈更加均勻稀疏,解決了GPM預測模式下分割線分佈過於密集而導致性能丟失的問題,從而提高了編解碼性能,以達到提升編解碼效率的目的。
10:影像編碼系統
101:變換與量化單元
102:幀內估計單元
103:幀內預測單元
104:運動補償單元
105:運動估計單元
106:反變換與反量化單元
107:濾波器控制分析單元
108:濾波單元
109:編碼單元
110:解碼圖像暫存單元
130:編碼器
1301:第一確定單元
1302:第一計算單元
1303:第一預測單元
1304:預編碼單元
1305:選擇單元
1401:第一通訊介面
1402:第一記憶體
1403:第一處理器
1404:第一匯流排系統
150:解碼器
1501:解析單元
1502:第二確定單元
1503:第二計算單元
1504:第二預測單元
1601:第二通訊介面
1602:第二記憶體
1603:第二處理器
1604:第二匯流排系統
20:影像解碼系統
201:解碼單元
202:反變換與反量化單元
203:幀內預測單元
204:運動補償單元
205:濾波單元
206:解碼圖像暫存單元
701:輸入模組
702:處理模組
703:輸出模組
S501~S504:步驟
S1201~S1204:步驟
A0:左下側相鄰塊
A1:左側相鄰塊
B0:右上側相鄰塊
B1:上側相鄰塊
B2:左上側相鄰塊
Co1:參考幀對應位置塊
圖1A為相關技術方案提供的一種幾何劃分模式的結構示意圖;
圖1B為相關技術方案提供的另一種幾何劃分模式的結構示意圖;
圖2為相關技術方案提供的一種當前塊的角度和步長的結構示意圖;
圖3A、圖3B和圖3C分別為相關技術方案提供的一種GPM預測模式在不同角度下分割線之間的間距示意圖;
圖4A為本申請實施例提供的一種影像編碼系統的組成方塊圖;
圖4B為本申請實施例提供的一種影像解碼系統的組成方塊圖;
圖5為本申請實施例提供的一種幀間預測方法的流程示意圖;
圖6A為本申請實施例提供的一種建構merge清單的相鄰塊分佈示意圖;
圖6B為本申請實施例提供的一種merge清單單向mv選擇的結構示意圖;
圖7為本申請實施例提供的一種GPM預測處理流程的總體架構示意圖;
圖8為本申請實施例提供的一種偏移訊息計算的結構示意圖;
圖9A為本申請實施例提供的一種當前塊的亮度權重矩陣示意圖;
圖9B為本申請實施例提供的一種當前塊的色度權重矩陣示意圖;
圖10A為相關技術方案提供的一種塊尺寸、角度索引值和分割線移動方向的對應關係示意圖;
圖10B為本申請實施例提供的一種塊尺寸、角度索引值和分割線移動方向的對應關係示意圖;
圖11A為本申請實施例提供的另一種塊尺寸、角度索引值和分割線移動方向的對應關係示意圖;
圖11B為本申請實施例提供的又一種塊尺寸、角度索引值和分割線移動方向的對應關係示意圖;
圖11C為本申請實施例提供的再一種塊尺寸、角度索引值和分割線移動方向的對應關係示意圖;
圖12為本申請實施例提供的另一種幀間預測方法的流程示意圖;
圖13為本申請實施例提供的一種編碼器的組成結構示意圖;
圖14為本申請實施例提供的一種編碼器的具體硬體結構示意圖;
圖15為本申請實施例提供的一種解碼器的組成結構示意圖;
圖16為本申請實施例提供的一種解碼器的具體硬體結構示意圖。
S501~S504:步驟
Claims (20)
- 一種幀間預測方法,應用於編碼器,所述方法包括: 確定當前塊的預測模式參數; 當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定所述當前塊內分割線對應的角度和步長,並將角度索引值和步長索引值分別設置為所述角度和所述步長在預設映射表中對應的索引序號; 基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示所述當前塊在所述角度下不同分割線之間的位移方向; 基於所述偏移方向標識值和所述步長索引值,對所述當前塊進行幀間預測。
- 根據請求項1所述的方法,其中,所述當前塊的尺寸訊息包括所述當前塊的高度和寬度;所述基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值,包括: 根據所述角度索引值,確定第一修正值; 利用所述第一修正值對所述當前塊的高度進行移位處理,獲得移位後的高度; 利用預設位移值對所述當前塊的寬度進行移位處理,獲得移位後的寬度; 將所述移位後的高度和所述移位後的寬度進行比較; 根據比較的結果,獲得所述當前塊的偏移方向標識值。
- 根據請求項2所述的方法,其中,在所述獲得移位後的高度之後,所述方法還包括: 對所述移位後的高度與所述當前塊的寬度進行比值運算,獲得所述當前塊的高寬比值; 將所述當前塊的高寬比值與預設比值進行比較; 根據比較的結果,獲得所述當前塊的偏移方向標識值。
- 根據請求項2所述的方法,其中,在所述根據所述角度索引值,確定第一修正值之後,所述方法還包括: 對所述當前塊的寬度和高度分別進行對數計算,獲得寬度對數值和高度對數值; 計算所述寬度對數值與所述高度對數值之間的差值; 對所計算的差值與第一預設值進行疊加運算,獲得第二修正值; 將所述第二修正值與所述第一修正值進行比較; 根據比較的結果,獲得所述當前塊的偏移方向標識值。
- 根據請求項2所述的方法,其中,在所述根據所述角度索引值,確定第一修正值之後,所述方法還包括: 利用預設位移值對所述當前塊的高度進行移位處理,獲得移位後的高度; 對所述移位後的高度與所述當前塊的寬度進行比值運算,獲得所述當前塊的高寬比值; 利用所述第一修正值對第二預設值進行移位處理,獲得移位後的修正值; 將所述移位後的修正值與所述當前塊的高寬比值進行比較; 根據比較的結果,獲得所述當前塊的偏移方向標識值。
- 根據請求項2至5任一項所述的方法,其中,所述根據所述角度索引值,確定第一修正值,包括: 利用所述角度索引值對第三預設值進行取模運算,獲得取模結果; 將所述取模結果與第四預設值進行比較,根據比較的結果確定所述第一修正值;或者 基於所述角度索引值,從第一查閱資料表中查找與所述角度索引值對應的對數值; 將所查找到的對數值確定為所述第一修正值。
- 根據請求項1所述的方法,其中,所述基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值,包括: 基於所述角度索引值,從第二查閱資料表中查找與所述角度索引值對應的位移指示值; 將所查找到的位移指示值與預設判斷結果進行比較; 根據比較的結果,獲得所述當前塊的偏移方向標識值;其中,所述預設判斷結果是透過判斷所述當前塊的高度是否大於寬度所得到的。
- 根據請求項1所述的方法,其中,所述基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值,包括: 對所述角度索引值與第五預設值進行相加運算,得到相加結果; 利用所述相加結果對第六預設值進行取模運算,獲得取模結果; 將所述取模結果與第七預設值進行比較; 根據比較的結果,獲得所述當前塊的偏移方向標識值。
- 根據請求項1所述的方法,其中,所述確定當前塊的預測模式參數,包括: 利用多種預測模式對所述當前塊進行預編碼處理,獲得每一種預測模式對應的位元率失真代價值; 從所獲得的多個位元率失真代價值中選擇最小位元率失真代價值,將所述最小位元率失真代價值對應的預測模式確定為當前塊的預測模式參數。
- 根據請求項1所述的方法,其中,當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,所述方法還包括: 確定所述當前塊的劃分模式; 將劃分模式索引值確定為所述劃分模式在預設映射表中對應的索引序號並寫入位元流;其中,所述預設映射表用於指示劃分模式索引值、角度索引值和步長索引之間的對應關係。
- 根據請求項1所述的方法,其中,所述基於所述偏移方向標識值和所述步長索引值,對所述當前塊進行幀間預測,包括: 基於所述偏移方向標識值和所述步長索引值,確定所述當前塊的目標分割線以及偏移訊息; 基於所述目標分割線對所述當前塊的劃分,確定所述當前塊的第一分區的第一預測值和所述當前塊的第二分區的第二預測值; 根據所述偏移訊息,計算所述當前塊的權重矩陣; 利用所述第一預測值、所述第二預測值以及所述權重矩陣對所述當前塊內各像素點進行加權運算,獲得所述當前塊的幀間預測值。
- 一種幀間預測方法,應用於解碼器,所述方法包括: 解析位元流,獲取當前塊的預測模式參數; 當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定角度索引值和步長索引值;其中,所述角度索引值和所述步長索引值表示所述當前塊內分割線對應的角度和步長在預設映射表中對應的索引序號; 基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值;其中,所述偏移方向標識值用於指示所述當前塊在所述角度下不同分割線之間的位移方向; 基於所述偏移方向標識值和所述步長索引值,確定所述當前塊的幀間預測值。
- 根據請求項12所述的方法,其中,當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測時,所述方法還包括: 解析位元流,獲取所述當前塊的劃分模式索引值; 相應地,所述確定角度索引值和步長索引值,包括: 基於所述劃分模式索引值,從預設映射表中查詢與所述劃分模式索引值對應的角度索引值和步長索引值;其中,所述預設映射表用於指示劃分模式索引值、角度索引值和步長索引之間的對應關係; 將查詢得到的角度索引值和步長索引值確定為所述角度索引值和所述步長索引值。
- 根據請求項12所述的方法,其中,所述當前塊的尺寸訊息包括所述當前塊的高度和寬度;所述基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值,包括: 根據所述角度索引值,確定第一修正值; 利用所述第一修正值對所述當前塊的高度進行移位處理,獲得移位後的高度; 利用預設位移值對所述當前塊的寬度進行移位處理,獲得移位後的寬度; 將所述移位後的高度和所述移位後的寬度進行比較; 根據比較的結果,獲得所述當前塊的偏移方向標識值。
- 根據請求項14所述的方法,其中,在所述獲得移位後的高度之後,所述方法還包括: 對所述移位後的高度與所述當前塊的寬度進行比值運算,獲得所述當前塊的高寬比值; 將所述當前塊的高寬比值與預設比值進行比較; 根據比較的結果,獲得所述當前塊的偏移方向標識值。
- 根據請求項16所述的方法,其中,在所述根據所述角度索引值,確定第一修正值之後,所述方法還包括: 對所述當前塊的寬度和高度分別進行對數計算,獲得寬度對數值和高度對數值; 計算所述寬度對數值與所述高度對數值之間的差值; 對所計算的差值與第一預設值進行疊加運算,獲得第二修正值; 將所述第二修正值與所述第一修正值進行比較; 根據比較的結果,獲得所述當前塊的偏移方向標識值;或者 利用預設位移值對所述當前塊的高度進行移位處理,獲得移位後的高度; 對所述移位後的高度與所述當前塊的寬度進行比值運算,獲得所述當前塊的高寬比值; 利用所述第一修正值對第二預設值進行移位處理,獲得移位後的修正值; 將所述移位後的修正值與所述當前塊的高寬比值進行比較; 根據比較的結果,獲得所述當前塊的偏移方向標識值。
- 根據請求項14至16任一項所述的方法,其中,所述根據所述角度索引值,確定第一修正值,包括: 利用所述角度索引值對第三預設值進行取模運算,獲得取模結果; 將所述取模結果與第四預設值進行比較,根據比較的結果確定所述第一修正值;或者 基於所述角度索引值,從第一查閱資料表中查找與所述角度索引值對應的對數值; 將所查找到的對數值確定為所述第一修正值。
- 根據請求項12所述的方法,其中,所述基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值,包括: 基於所述角度索引值,從第二查閱資料表中查找與所述角度索引值對應的位移指示值; 將所查找到的位移指示值與預設判斷結果進行比較; 根據比較的結果,獲得所述當前塊的偏移方向標識值;其中,所述預設判斷結果是透過判斷所述當前塊的高度是否大於寬度所得到的。
- 根據請求項12所述的方法,其中,所述基於所述當前塊的尺寸訊息以及所述角度索引值,利用預設模型確定所述當前塊的偏移方向標識值,包括: 對所述角度索引值與第五預設值進行相加運算,得到相加結果; 利用所述相加結果對第六預設值進行取模運算,獲得取模結果; 將所述取模結果與第七預設值進行比較; 根據比較的結果,獲得所述當前塊的偏移方向標識值。
- 根據請求項12所述的方法,其中,所述基於所述偏移方向標識值和所述步長索引值,確定所述當前塊的幀間預測值,包括: 基於所述偏移方向標識值和所述步長索引值,確定所述當前塊的目標分割線以及偏移訊息; 基於所述目標分割線對所述當前塊的劃分,確定所述當前塊的第一分區的第一預測值和所述當前塊的第二分區的第二預測值; 根據所述偏移訊息,計算所述當前塊的權重矩陣; 利用所述第一預測值、所述第二預測值以及所述權重矩陣對所述當前塊內各像素點進行加權運算,獲得所述當前塊的幀間預測值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
WOPCT/CN2020/083356 | 2020-04-03 | ||
PCT/CN2020/083356 WO2021196228A1 (zh) | 2020-04-03 | 2020-04-03 | 帧间预测方法、编码器、解码器以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202139707A true TW202139707A (zh) | 2021-10-16 |
Family
ID=77928925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110109406A TW202139707A (zh) | 2020-04-03 | 2021-03-16 | 幀間預測方法、編碼器、解碼器以及儲存媒介 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230080546A1 (zh) |
EP (1) | EP4131956A4 (zh) |
CN (1) | CN115280778A (zh) |
TW (1) | TW202139707A (zh) |
WO (1) | WO2021196228A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115699736A (zh) * | 2020-06-03 | 2023-02-03 | 北京达佳互联信息技术有限公司 | 具有运动矢量细化的几何分区模式 |
CN114422781B (zh) * | 2022-03-29 | 2022-07-12 | 深圳传音控股股份有限公司 | 图像处理方法、智能终端及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI536811B (zh) * | 2013-12-27 | 2016-06-01 | 財團法人工業技術研究院 | 影像處理方法與系統、解碼方法、編碼器與解碼器 |
EP3355585A1 (en) * | 2015-11-24 | 2018-08-01 | Samsung Electronics Co., Ltd. | Image encoding method and device, and image decoding method and device |
-
2020
- 2020-04-03 WO PCT/CN2020/083356 patent/WO2021196228A1/zh unknown
- 2020-04-03 EP EP20928250.8A patent/EP4131956A4/en active Pending
- 2020-04-03 CN CN202080098554.3A patent/CN115280778A/zh active Pending
-
2021
- 2021-03-16 TW TW110109406A patent/TW202139707A/zh unknown
-
2022
- 2022-10-02 US US17/958,420 patent/US20230080546A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4131956A1 (en) | 2023-02-08 |
EP4131956A4 (en) | 2023-05-03 |
US20230080546A1 (en) | 2023-03-16 |
CN115280778A (zh) | 2022-11-01 |
WO2021196228A1 (zh) | 2021-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021196235A1 (zh) | 帧间预测方法、编码器、解码器及存储介质 | |
WO2022104498A1 (zh) | 帧内预测方法、编码器、解码器以及计算机存储介质 | |
WO2021139572A1 (zh) | 编码方法、解码方法、编码器、解码器以及存储介质 | |
WO2021196242A1 (zh) | 一种帧间预测方法、编码器、解码器及存储介质 | |
WO2021203924A1 (zh) | 编码方法、解码方法、编码器、解码器以及存储介质 | |
US20230080546A1 (en) | Inter Prediction Method, Encoder, Decoder and Storage Medium | |
US11785208B2 (en) | Prediction method for decoding and apparatus, and computer storage medium | |
WO2021238396A1 (zh) | 帧间预测方法、编码器、解码器以及计算机存储介质 | |
WO2021134635A1 (zh) | 变换方法、编码器、解码器以及存储介质 | |
TW202139694A (zh) | 一種幀間預測方法、編碼器、解碼器及儲存媒介 | |
TW202139700A (zh) | 一種幀間預測方法、編碼器、解碼器及儲存媒介 | |
WO2021258841A1 (zh) | 帧间预测方法、编码器、解码器以及计算机存储介质 | |
US20230045687A1 (en) | Inter Prediction Method, Encoder, Decoder, and Storage Medium | |
WO2020056767A1 (zh) | 视频图像分量的预测方法、装置及计算机存储介质 | |
WO2020063687A1 (zh) | 视频解码方法及视频解码器 | |
WO2020140214A1 (zh) | 解码预测方法、装置及计算机存储介质 | |
WO2024098263A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2024119521A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2024077569A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
WO2023141970A1 (zh) | 解码方法、编码方法、解码器、编码器和编解码系统 | |
TW202431846A (zh) | 編解碼方法、碼流、編碼器、解碼器以及儲存媒介 | |
CN118511508A (zh) | 用于视频处理的方法、装置和介质 |