TW202139709A - 幀間預測方法、編碼器、解碼器及儲存媒介 - Google Patents

幀間預測方法、編碼器、解碼器及儲存媒介 Download PDF

Info

Publication number
TW202139709A
TW202139709A TW110109408A TW110109408A TW202139709A TW 202139709 A TW202139709 A TW 202139709A TW 110109408 A TW110109408 A TW 110109408A TW 110109408 A TW110109408 A TW 110109408A TW 202139709 A TW202139709 A TW 202139709A
Authority
TW
Taiwan
Prior art keywords
current block
partition
prediction
area
preset
Prior art date
Application number
TW110109408A
Other languages
English (en)
Inventor
馬彥卓
霍俊彦
萬帥
楊付正
冉啟宏
邱瑞鵬
Original Assignee
大陸商Oppo廣東移動通信有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 大陸商Oppo廣東移動通信有限公司 filed Critical 大陸商Oppo廣東移動通信有限公司
Publication of TW202139709A publication Critical patent/TW202139709A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申請實施例公開了一種幀間預測方法、編碼器、解碼器及儲存媒介,該方法包括:確定當前塊的預測模式參數;當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定滿足預設條件的分區在當前塊中的第一位置;在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區;從所述當前塊除所述第一分區之外的區域中,確定第二分區;確定所述第一分區的第一預測值和所述第二分區的第二預測值;對所述第一預測值和所述第二預測值進行加權融合,確定所述當前塊的幀間預測值。

Description

幀間預測方法、編碼器、解碼器及儲存媒介
本申請實施例涉及影像編碼技術,涉及但不限於幀間預測方法、編碼器、解碼器及儲存媒介。
在影像編解碼,對當前塊進行編解碼的過程中,除了有幀內預測外,還可以採用幀間預測方式。幀間預測可以包括運動估計和運動補償,針對運動補償,可以採用幾何劃分預測模式(Geometrical partition Mode,GPM),將幀間的當前塊劃分為兩個非矩形的分區分別進行預測後進行加權融合,從而得到當前塊的預測值。
本申請實施例提供一種幀間預測方法、編碼器、解碼器及儲存媒介,可以選取靠近右上角像素位置的分區作為第一分區,這樣第一分區的候選比第二分區的候選更靠前可以使得編碼碼率更低。
本申請實施例的技術方案可以如下實現:
第一方面,本申請實施例提供了一種幀間預測方法,應用於編碼器,該方法包括:
確定當前塊的預測模式參數;
當所述預測模式參數指示使用幾何劃分預測模式確定當前塊的幀間預測值時,確定滿足預設條件的分區在當前塊中的第一位置;
在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區;
從所述當前塊除所述第一分區之外的區域中,確定第二分區;
確定所述第一分區的第一預測值和所述第二分區的第二預測值;
對所述第一預測值和所述第二預測值進行加權融合,確定所述當前塊的幀間預測值。
第二方面,本申請實施例提供了一種幀間預測方法,應用於解碼器,該方法包括:
解析位元流,確定當前塊的預測解碼參數;
當所述預測解碼參數指示使用幾何劃分預測模式確定當前塊的幀間預測值時,確定滿足預設條件的分區在當前塊中的第一位置;
在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區;
從所述當前塊除所述第一分區之外的區域中,確定第二分區;
確定所述第一分區的第一預測值和所述第二分區的第二預測值;
對所述第一預測值和所述第二預測值進行加權融合,確定所述當前塊的幀間預測值。
第三方面,本申請實施例提供了一種編碼器,其中,
第一確定模組,用於確定當前塊的預測模式參數;
第一指示模組,用於當所述預測模式參數指示使用幾何劃分預測模式確定當前塊的幀間預測值時,確定滿足預設條件的分區在當前塊中的第一位置;
第一劃分模組,用於在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區;
第二劃分模組,用於從所述當前塊除所述第一分區之外的區域中,確定第二分區;
第二確定模組,用於確定所述第一分區的第一預測值和所述第二分區的第二預測值;
第一融合模組,用於對所述第一預測值和所述第二預測值進行加權融合,確定所述當前塊的幀間預測值。
第四方面,本申請實施例提供了一種編碼器,其中,
第一解析模組,用於解析位元流,確定當前塊的預測解碼參數;
第二指示模組,用於當所述預測解碼參數指示使用幾何劃分預測模式確定當前塊的幀間預測值時,確定滿足預設條件的分區在當前塊中的第一位置;
第三劃分模組,用於在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區;
第四劃分模組,用於從所述當前塊除所述第一分區之外的區域中,確定第二分區;
第三確定模組,用於確定所述第一分區的第一預測值和所述第二分區的第二預測值;
第二融合模組,用於對所述第一預測值和所述第二預測值進行加權融合,確定所述當前塊的幀間預測值。
第五方面,本申請實施例還提供了一種編碼器,包括:
第一記憶體和第一處理器;
所述第一記憶體儲存有可在第一處理器上運行的電腦程式,所述第一處理器執行所述程式時實現編碼器的所述幀間預測方法。
第六方面,本申請實施例還提供了一種解碼器,包括:
第二記憶體和第二處理器;
所述第二記憶體儲存有可在第二處理器上運行的電腦程式,所述第二處理器執行所述程式時實現解碼器的所述幀間預測方法。
第七方面,本申請實施例提供了一種儲存媒介,包括:
其上儲存有電腦程式,該電腦程式被第一處理器執行時,實現編碼器的所述幀間預測方法;或者,該電腦程式被第二處理器執行時,實現解碼器的所述幀間預測方法。
本申請實施例提供了一種幀間預測方法、編碼器、解碼器及儲存媒介,在進行幀間預測的過程中,根據預設候選清單中當前塊的不同分區之間的建構順序;將所述建構順序中排列在預設序號的分區的位置,確定為所述第一位置;然後,在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區;從所述當前塊除所述第一分區之外的區域中,確定第二分區;這樣,選取靠近右上角像素位置的分區作為第一分區,這樣第一分區的候選比第二分區的候選更靠前可以使得編碼碼率更低,利用這樣的分區方式,對當前塊進行分區,從而使得預測到的當前塊的幀間預測值更加準確。
為了能夠更加詳盡地瞭解本申請實施例的特點與技術內容,下面結合附圖對本申請實施例的實現進行詳細闡述,所附附圖僅供參考說明之用,並非用來限定本申請實施例。
在相關技術中,GPM的兩個分區的選取是由角度確定的結果,如圖1A所示,圖1A為本申請一示例性實施例不同角度下GPM分區示意圖,從圖1A可以看出,分區11表示第一分區(即A分區),分區12表示第二分區(即B分區);序號12與序號28之間的分區情況是相反的。然而,得到的權重索引(weightIdx)值的正負區域則是如圖1B所示的結果,從圖1B所示,分區13的權重索引為正,分區14的權重索引為負;綜合對比圖1A與圖1B,可以得出,在範圍為13-27的角度內,A分區對應距離為負的區域,而其他角度上A分區對應距離為正的區域。
為了統一實現計算的權值與A分區像素相乘的計算式;在計算權重值的時候,需要用partFlip進行分區的翻轉,在範圍為13-27的角度內,A分區對應距離為負的區域,而其他角度上A分區對應距離為正的區域。
但是這樣根據角度的翻轉方式有一些弊端存在:
第一個弊端就是單純按照角度進行AB分區的判斷或許比較草率,考慮到Merge候選的建構規則對AB分區候選選取的影響,現有的Merge清單的建構順序為:B1-A1-B0-A0-B2-同位時域候選-基於歷史的候選-組合平均候選-零候選,因此應該盡可能選取靠近右上角像素位置的分區作為A分區,這樣A分區的候選比B分區的候選更靠前可以使得編碼碼率更低。儘管多數角度上在正方形塊的分佈接近了這樣的選擇,但是還有很多情況不滿足。
第二個弊端在於,在13-27範圍內的角度,需要對兩個分區進行翻轉,使得A分區的權值索引始終為正。但是透過分析每個角度的分區分佈,從理論上講角度索引為12和28所對應的分區應該保持一致,即左上側為A分區,右下側為B分區,但是這裡卻出現明顯的斷層,雖然對性能影響差別不大,但是違背了GPM的分區分佈規則。
基於此,本申請實施例提供一種幀間預測方法,首先,確定當前塊的預測模式參數;當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定滿足預設條件的分區在當前塊中的第一位置;然後,在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區;從所述當前塊除所述第一分區之外的區域中,確定第二分區;確定所述第一分區的第一預測值和所述第二分區的第二預測值;最後,對所述第一預測值和所述第二預測值進行加權融合,確定所述當前塊的幀間預測值。如此,結合Merge清單的建構順序(比如,建構順序為B1-A1-B0-A0-B2-同位時域候選-基於歷史的候選-組合平均候選-零候選),選取靠近右上角像素位置的分區作為A分區,這樣A分區的候選比B分區的候選更靠前可以使得編碼碼率更低。
在影像編碼混合框架中,以正方形和矩形的塊為單位實施預測、變換和量化等編碼技術。然而實際中運動物體的邊緣並不一定都是水平或者垂直方向的,即使是,也不一定剛好在可以劃分的塊邊緣上,而運動邊緣兩側的運動向量往往不同,這樣在編碼的過程中以一個整塊進行運動預測和補償,易產生較大的預測誤差,從而導致編碼效率受限。
在多功能影像編碼(Versatile Video Coding,VVC)的制定過程中,引入了正方形和矩形之外的其他形狀劃分。首先是三角劃分模式(Triangular partition Mode,TPM)的引入,以一個正方形或矩形的對角線、或反對角線為分割線,得到三角形的預測單元,從而更靈活的表示幀間預測資料,降低預測誤差,從而提高編碼效率。
將幀間幾何劃分幀間預測模式(Geometrical partitioning for inter blocks,GEO),預測模式採納到VVC的標準中,形成幾何劃分預測模式(Geometrical partition Mode,GPM)。在GPM中,針對圖像中運動物體邊緣部分,採用更為靈活的表示方法,將幀間塊劃分為兩個非矩形的子分區分別進行預測後進行加權融合,在影像圖像中,一般採用第一圖像分量、第二圖像分量和第三圖像分量來表徵編碼塊(Coding Block,CB);其中,這三個圖像分量分別為一個亮度分量、一個藍色色度分量和一個紅色色度分量,具體地,亮度分量通常使用符號Y表示,藍色色度分量通常使用符號Cb或者U表示,紅色色度分量通常使用符號Cr或者V表示;這樣,影像圖像可以用YCbCr格式表示,也可以用YUV格式表示。
在本申請實施例中,第一圖像分量可以為亮度分量,第二圖像分量可以為藍色色度分量,第三圖像分量可以為紅色色度分量,但是本申請實施例不作具體限定。
為本申請提供一種影像編碼系統,如圖2A所示,該影像編碼系統10包括變換與量化單元101、幀內估計單元102、幀內預測單元103、運動補償單元104、運動估計單元105、反變換與反量化單元106、濾波器控制分析單元107、濾波單元108、編碼單元109和解碼圖像暫存單元110等,其中,濾波單元108可以實現去方塊濾波及取樣自適應偏移(Sample Adaptive Offset,SAO)濾波,編碼單元109可以實現標頭資訊編碼及前文參考之適應性二元算術編碼(Context-based Adaptive Binary Arithmatic 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中。
參見圖2B,其示出了本申請實施例提供的一種影像解碼系統的組成方塊圖示例;如圖2B所示,該影像解碼系統20包括解碼單元201、反變換與反量化單元202、幀內預測單元203、運動補償單元204、濾波單元205和解碼圖像暫存單元206等,其中,解碼單元201可以實現標頭資訊解碼以及CABAC解碼,濾波單元205可以實現去方塊濾波以及SAO濾波。輸入的視訊訊號經過圖2A的編碼處理之後,輸出該視訊訊號的位元流;該位元流輸入影像解碼系統20中,首先經過解碼單元201,用於得到解碼後的變換係數;針對該變換係數透過反變換與反量化單元202進行處理,以便在像素域中產生殘差塊;幀內預測單元203可用於基於所確定的幀內預測模式和來自當前幀或圖片的先前經解碼塊的資料而產生當前影像解碼塊的預測資料;運動補償單元204是透過剖析運動向量和其他關聯語法元素來確定用於影像解碼塊的預測訊息,並使用該預測訊息以產生正被解碼的影像解碼塊的預測性塊;透過對來自反變換與反量化單元202的殘差塊與由幀內預測單元203或運動補償單元204產生的對應預測性塊進行求和,而形成解碼的影像塊;該解碼的視訊訊號透過濾波單元205以便去除方塊效應假影,可以改善影像品質;然後將經解碼的影像塊儲存於解碼圖像暫存單元206中,解碼圖像暫存單元206儲存用於後續幀內預測或運動補償的參考圖像,同時也用於視訊訊號的輸出,即得到了所恢復的原始視訊訊號。
本申請實施例中的圖像分量預測方法,主要應用在如圖2A所示的幀內預測單元103部分和如圖2B所示的幀內預測單元203部分。也就是說,本申請實施例中的圖像分量預測方法,既可以應用於影像編碼系統,也可以應用於影像解碼系統,甚至還可以同時應用於影像編碼系統和影像解碼系統,但是本申請實施例不作具體限定。還需要說明的是,當該圖像分量預測方法應用於幀內預測單元103部分時,“當前塊”具體是指幀內預測中的當前塊;當該圖像分量預測方法應用於幀內預測單元203部分時,“當前塊”具體是指幀內預測中的當前解碼塊。
基於此,下面結合附圖和實施例對本申請的技術方案進一步詳細闡述。在進行詳細闡述之前,需要說明的是,說明書通篇中提到的“第一”、“第二”、“第三”等,僅僅是為了區分不同的特徵,不具有限定優先順序、先後順序、大小關係等功能。
本申請實施例提供一種幀間預測方法,該方法應用於影像編碼設備,即編碼器。該方法所實現的功能可以透過影像編碼設備中的處理器調用程式碼來實現,當然程式碼可以保存在電腦儲存媒介中,可見,該影像編碼設備至少包括處理器和儲存媒介。參見圖3,其示出了本申請實施例提供的一種幀間預測方法的流程示意圖。如圖3所示,該方法可以包括:
步驟S301,確定當前塊的預測模式參數。
需要說明的是,影像圖像可以劃分為多個圖像塊,每個當前待編碼的圖像塊可以稱為編碼塊(Coding Block,CB)。這裡,每個編碼塊可以包括第一圖像分量、第二圖像分量和第三圖像分量;而當前塊為影像圖像中當前待進行第一圖像分量、第二圖像分量或者第三圖像分量預測的編碼塊。
其中,假定當前塊進行第一圖像分量預測,而且第一圖像分量為亮度分量,即待預測圖像分量為亮度分量,那麼當前塊也可以稱為亮度塊;或者,假定當前塊進行第二圖像分量預測,而且第二圖像分量為色度分量,即待預測圖像分量為色度分量,那麼當前塊也可以稱為色度塊。
還需要說明的是,預測模式參數指示了當前塊的編碼模式及該模式相關的參數。通常可以採用位元率失真最佳化(Rate Distortion Optimization,RDO)的方式確定當前塊的預測模式參數。
具體地,在一些實施例中,編碼器確定當前塊的預測模式參數的實現為:編碼器確定當前塊的待預測圖像分量;基於當前塊的參數,利用多種預測模式分別對待預測圖像分量進行預測編碼,計算多種預測模式下每一種預測模式對應的位元率失真代價結果;從計算得到的多個位元率失真代價結果中選取最小位元率失真代價結果,並將最小位元率失真代價結果對應的預測模式確定為當前塊的預測模式參數。
也就是說,在編碼器側,針對當前塊可以採用多種預測模式分別對待預測圖像分量進行編碼。這裡,多種預測模式通常包括有幀間預測模式、傳統幀內預測模式和非傳統幀內預測模式,而傳統幀內預測模式又可以包括有直流(Direct Current,DC)模式、平面(PLANAR)模式和角度模式等,非傳統幀內預測模式又可以包括有MIP模式、跨分量線性模型預測(Cross-component Linear Model Prediction,CCLM)模式、幀內塊複製(Intra Block Copy,IBC)模式和PLT(Palette)模式等,幀間預測模式可以包括:幀間幾何劃分預測模式(Geometrical partitioning for inter blocks,GEO)、幾何劃分預測模式、三角預測模式(Triangle partition mode,TPM)等。
這樣,在利用多種預測模式分別對當前塊進行編碼之後,可以得到每一種預測模式對應的位元率失真代價結果;然後從所得到的多個位元率失真代價結果中選取最小位元率失真代價結果,並將該最小位元率失真代價結果對應的預測模式確定為當前塊的預測模式參數;如此,最終可以使用所確定的預測模式對當前塊進行編碼,而且在這種預測模式下,可以使得預測殘差小,能夠提高編碼效率。
步驟S302,當預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定滿足預設條件的分區在當前塊中的第一位置。
在本申請實施例中,為使得A分區的候選比B分區的候選更靠前,這裡,將按照merge清單的建構順序中第一個建構的B1分區的位置確定為第一位置。GPM是針對圖像中物體邊緣部分,將幀間塊(即,當前塊)劃分為兩個非矩形的子分區分別進行預測後進行加權融合。例如,非矩形的形式可以如下圖4a-4g所示。
其中,在GPM中,總共有64種劃分模式,每種劃分模式對應一種角度α和一種步長ρ,總共有20種角度,4種步長,每種角度和步長的組合構成一種劃分模式。GPM將當前塊劃分為兩個非矩形的子分區,每個子分區單獨進行單向的運動補償得到單向預測值,最後利用權重矩陣對兩分區的單向預測值加權融合得到最終的GPM預測值。
需要說明的是,角度表用基於斜率的角度表替代之前基於固定步長的角度表,使用5種固定的斜率(1、1/2、1/4、4、2)去建構不等間隔的角度表。
示例性的,如圖5A所示,每種角度α和步長ρ的組合構成一種劃分模式。GPM將當前塊劃分為兩個非矩形的子分區,每個子分區單獨進行單向的運動補償得到單向預測值,最後利用權重矩陣對兩分區的單向預測值加權融合得到最終的GPM預測值。
在本申請實施例中,滿足預設條件的分區可以理解為是候選清單中建構順序靠前的分區,比如,在建構順序中排列在首個的分區,將該分區確定為滿足預設條件的分區,然後,確定該分區在候選清單中的編碼塊中的位置。在一個具體例子中,Merge清單的建構順序為:B1-A1-B0-A0-B2-同位時域候選-基於歷史的候選-組合平均候選-零候選;即首個建構的分區為B1,從圖5B可以看出,B1在當前塊的右上角,所以為了使得盡可能選取靠近右上角像素位置的分區作為A分區,所以將右上角附近的區域劃分為A分區,從而保證了A分區的候選比B分區的候選更靠前可以使得編碼碼率更低。
在本申請的一些實施例中,在VTM8.0中,每個編碼單元(coding unit,CU)對GPM的使用需要滿足一些限制條件:
(1)     序列層參數集(sequence parameter set,Sps)允許採用GPM預測方式
(2)     當前編碼圖像區域屬於雙向預測片(B slice)
(3)     塊尺寸限制:寬和高必須都大於等於8,且小於等於64,並且當前塊的寬高比和高寬比都小於8。
(4)     當前塊非普通融合預測(general merge),非融合子塊預測(merge_subblock),非仿射預測,也非聯合幀內幀間預測(composed intra inter prediction,CIIP)。
(5)對4:0:0格式的色度分量禁用GPM預測過程。
編碼單元層語法,如下所示: merge_data(x0,y0,cbWidth,cbHeight,chType){   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) ……}
上述語法解析包括以下步驟:
第一步:建構merge候選清單,與普通merge模式建構清單的過程一致。
這裡,GPM採用原有VVC8中TPM的單向merge候選清單,即預設合併候選清單,找到GPM的劃分後的兩個分區各自的運動向量(MV),即運動訊息。
如圖5B所示,圖5B為本申請一示例性實施例候選清單相鄰塊的結構示意圖,從圖5B可以看出,建構順序為上側相鄰塊(B1)501,左側相鄰塊503(A1),右上側相鄰塊502(B0),左下側相鄰塊504(A0),左上側相鄰塊B2,參考幀對應位置塊505(col),歷史參考塊(his),第一、第二候選MV的平均(MV avg),以及零運動向量0。
第二步:兩個分區的MV獲取(比如,先獲取A分區後獲取B分區)
merge_gpm_idx0[x0][y0],表示A分區的MV在merge清單中的位置,令m = merge_gpm_idx0[xCb][yCb],等待後續處理。
merge_gpm_idx1[x0][y0],代表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=mergeCandList[m],從merge清單中取出第m項用於A分區的MV建構。
因為在幾何預測的塊中,每個分區都只會使用單向預測模式,而merge清單中每一項都可能是雙向預測的MV訊息,因此需要取出其中的單向預測MV來供使用。令X=(m&0x01),其中,&為位與運算,即取出m的最後一個位元位(類似於同位)。這樣,優先使用X對應的參考清單中的參考幀對應的MV訊息predFlagLXM用於分區預測,如圖5C中的塊511對應的選項。如果相應的MV不可用(相鄰塊的MV本身也可能是單向的),才使用對向的MV(與塊511水平對應的塊512(即圖5C中的白色塊)表示的MV),X=1-X。
此時,再將相應的MV訊息存入給A分區的處理變數,準備後續的預測塊建構,如下所示:
MVA[0]=MVLXM[0]
MVA[1]=MVLXM[1]
refIdxA=refIdxLXM
predListFlagA=X
其中,MVA為MV向量,refIdxA為該運動向量對應的參考幀,predListFlagA表示當前選用了該運動向量備選項的哪個list中的分量。
令N=mergeCandList[n],從merge清單中取出第n項用於B分區的MV建構。
第n項的單向運動向量用於MVB建構,優先使用如圖5C中的塊511(比如圖5C中的黑色塊)對應MV,如不可用,才使用對向的MV。因此令X=(n&0x01)。如果predFlagLXN不可用,則X=1-X。
此時,再將相應的MV訊息存入給B分區的處理變數,準備後續的預測塊建構,如下所示:
MVB[0]=MVLXN[0]
MVB[1]=MVLXN[1]
refIdxB=refIdxLXN
predListFlagB=X
其中,MVB為MV向量,refIdxB為該運動向量對應的參考幀,predListFlagB表示當前選用了該運動向量備選項的哪個list中的分量。
在本申請實施例中,編碼器透過遍歷GPM對應的64種劃分模型,確定出位元率失真代價最小的劃分模式,即確定出目標劃分模式;該編碼器就可以依據目標劃分模式,透過預設劃分模式、角度索引和步長索引的映射表,確定出該目標劃分模式對應的角度索引訊息和步長索引訊息了。當前預測塊是GPM模式時,會根據當前塊選中的劃分模式索引merge_gpm_partition_idx去查表得到對應的角度angleIdx和步長distanceIdx,該劃分模式的映射表如表1所示:
表1.基於wedge_partition_idx的角度和步長的映射表
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
步驟S303,在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區。
在本申請實施例中,為使得A分區的候選比B分區的候選更靠前,這裡,將當前塊中與該當前塊的右上角(即按照merge清單的建構順序中第一個建構的B1分區的第一位置)之間的距離較小的區域,劃分為第一分區,這樣,當前塊的右上角附近的區域劃分為A分區;從而使得A分區的候選比B分區的候選更靠前,以使得編碼碼率更低。
在本申請實施例中,所述第一位置可以理解為是先透過獲取的候選清單(比如,merge清單)中的編碼塊的不同分區之間的建構順序,確定首個建構的分區在編碼塊的位置。然後,確定第一位置之後,判斷當前塊中與該當前塊的第一位置之間的距離小於預設距離的區域,將這一區域劃分為第一分區(比如,A分區),最後,將當前塊中剩餘的其他區域確定為第二分區(比如,B分區),這樣,就保證了A分區的候選比B分區的候選更靠前。在一個具體例子中,按照merge清單中編碼塊的不同分區之間的建構順序,首個建構的分區在編碼塊中的位置為右上角,那麼右上角即為第一位置;然後,在當前塊中,確定與右上角附近的區域為A分區,其他區域為B分區。
在一些可能的實現方式中,首先,確定當前塊的第一位置,比如,當前塊的右上角位置,然後,在當前塊中,確定與右上角位置之間的距離小於預設距離的區域,將這一區域劃分為第一分區,比如,將當前塊的第一位置的周圍0.1毫米以內的區域,確定為當前塊的第一位置之間的距離小於預設距離的區域。
需要說明的是,在本申請實施例中,GPM採用原有VVC8中TPM的單向Merge候選清單,即預設合併候選清單,找到GPM的劃分後的兩個分區各自的MV,即運動訊息。
其中,Merge候選清單中一般包括預設個數的參考塊的元素,預設個數可以為6個,每個元素是以結構體的形式儲存資料的,每個結構體中可以包括:該參考塊的運動訊息、參考幀清單,預測方向等。而儲存GPM對應的資料時,是按照4×4大小的塊儲存的。
在本申請實施例中,角度索引訊息和步長索引訊息、第一運動訊息和第二運動訊息等訊息,都需要在編碼時被寫入位元流,供解碼時使用。
步驟S304,從所述當前塊除所述第一分區之外的區域中,確定第二分區。
這裡,第二分區是所述當前塊中除第一分區外的其他區域中的一部分,即:當前塊包括:第一分區、第二分區、其他剩餘部分。比如,當前塊僅包括第一分區和第二分區。比如,將當前塊除所述第一分區之外的區域的部分或者全部確定為第二分區。
步驟S305,確定所述第一分區的第一預測值和所述第二分區的第二預測值。
在本申請實施例中,可以根據由於GPM參數,確定所述第一分區的第一預測值和所述第二分區的第二預測值。由於GPM參數可以包括角度索引訊息和目標劃分模式,因此,編碼器可以根據目標劃分模式對當前塊進行劃分,得到第一分區和第二分區;從預設合併候選清單中,確定出與第一分區對應的第一參考塊的第一運動訊息,以及與第二分區對應的第二參考塊的第二運動訊息;編碼器根據第一運動訊息進行運動補償,得到第一分區的第一預測值,編碼器根據第二運動訊息進行運動補償,得到第二分區的第二預測值。
步驟S306,對所述第一預測值和所述第二預測值進行加權融合,確定所述當前塊的幀間預測值。
在本申請實施例中,首先,根據GPM參數,確定當前塊內像素點的第一權重值和當前塊內像素點的第二權重值,然後,根據所述第一預測值、所述第二預測值、第一權重值和第二權重值,對所述當前塊內像素點進行加權融合,得到所述當前塊的幀間預測值。編碼器可以根據每個像素點的第一預測值與第一權重值相乘,加上對應的每個像素點的第二預測值與第二權重值之積,完成對當前塊內像素點的加權融合,得到當前塊的幀間預測值。
需要說明的是,第一預測值和第二預測值為當前塊內的各個像素點對飲的兩個預測值,第一權重值和第二權重值也是分別都對應了當前塊的各個像素點的不同的兩種權重值。
當前塊的幀間預測值的獲取可以採用運算式(1)得到,如下所示: pbSamples[x][y]=Clip3(0,(1<<bitDepth)1,(predSamplesLPART1[x][y]* (8sampleWeight1)+predSamplesLPART2[x][y]*sampleWeight2+offset1)>>shift1)(1);
其中,pbSamples[x][y]為當前塊的每個像素點的幀間預測值,predSamplesLPART1[x][y]為每個像素點的第一預測值,sampleWeight1為每個像素點的第一權重值,predSamplesLPART2[x][y]為每個像素點的第二預測值,sampleWeight2為每個像素點的第二權重值。
在本申請的一些實施例中,編碼器在進行當前塊的幀間預測時,是對影像分量分別進行預測的,也就是說,第一預測值和第二預測值均為包括亮度預測值和色度預測值的。
在本申請實施例中,編碼器可以先進行亮度分量的權重值的獲取,而色度分量的權重值則可以依據亮度分量的權重值得到。
本申請前述的第一權重和第二權重值可以為亮度分量的權重值。
需要說明的是,編碼器透過獲取每個2*2塊的右上角的亮度樣本權重直接作為當前(x,y)處的色度樣本權重,即對亮度樣本權重進行下採樣。
示例性的,如圖6a所示為亮度的第一權重,對其進行下採樣,得到圖6b所示的色度的第一權重值,同理,可以根據亮度的第二權重,對其進行下採樣後,每個2*2塊的右上角(或左上角或右下角或左下角等)的亮度樣本的第二權重直接作為當前(x,y)處的色度樣本的第二權重。
可以理解的是,編碼器在進行幀間預測的過程中,可以透過確定滿足預設條件的分區的第一位置,然後,將與當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區;將當前塊中的其他區域確定為第二分區,這樣,第一分區的候選比第二分區的候選更靠前可以使得編碼碼率更低。
在一些實施例中,轉碼器GPM預測過程,如圖7所示,圖7為本申請實施例轉碼器預測過程流程圖,GPM的預測流程為:
首先,在輸入模組701中,輸入亮度值(xCb,yCb)、(寬度,高度)、最大精度為1/16的A分區的MV和B分區的MV、最大亮度精度為1/32的A分區的MV和B分區的MV、A分區運動向量對應的參考幀和B分區運動向量對應的參考幀、當前選用了A分區運動向量備選項的哪個list中的分量和當前選用了B分區運動向量備選項的哪個list中的分量。
其次,在處理模組702中,進行以下四個步驟的處理過程:
步驟一,為L、Cb、Cr三個分量推導參考幀清單refPicLN、亞像素預測像素值predSamplesLN(14位元深度),N為A或B。
這裡,L、Cb、Cr分別表示當前塊的亮度、色度中的藍色和紅色。
步驟二,推到分割角度和位置。
步驟三,為L、Cb、Cr三個分量推導加權預測像素值predSamples。
步驟四,儲存MV訊息用於後續預測MVN、refidxN、predListFlagN。
最後,在輸出模組703,輸出GPM預測結果,比如,預測像素值、預採樣亮度(predSamplesL)、預採樣藍色(predSamplesCb)和預採樣紅色(predSamplesCr)。
在本申請實施例中,GPM模式重用現有的常規Merge清單,按照同位的方式建構屬於GPM的單向Merge清單,GPM劃分後的兩個子分區各自的Merge候選都是從該單向Merge候選清單中選出的,即先是建構merge候選清單,然後,兩個分區的MV獲取。
為L、Cb、Cr三個分量推導參考幀清單refPicLN、亞像素預測像素值predSamplesLN,N為A或B。即採用運動補償方式,計算得到兩個分區各自的單向運動補償預測值,用於後面GPM最終的加權融合過程。這裡的運動補償和常規運動補償過程一樣,即透過運動向量找到相應的區域的像素值並複製。
在一些實施例中,為使得確定的第一位置能夠使得分區滿足預設條件,步驟S302可以透過以下步驟實現:
步驟S321,當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定預設候選清單中編碼塊的不同分區之間的建構順序。
這裡,預設候選清單可以是merge候選清單,該清單就是極盡所能找到所有的與當前塊運動訊息有關的MVp訊息,也就是找到對當前塊運動訊息有聯繫有相關性的所有的MVp訊息,儲存到merge清單中對當前塊給與參考。merge候選清單中編碼塊的不同分區之間的建構順序為:上側相鄰塊B1,左側相鄰塊A1,右上側相鄰塊B0,左下側相鄰塊A0,左上側相鄰塊B2,參考幀對應位置塊col,歷史參考塊his,第一、第二候選MV的平均MV avg,以及零運動向量0。
步驟S322,將所述建構順序中排列在預設序號的分區的位置,確定為所述第一位置。
這裡,預設序號為排列在建構順序中前幾個的序號,在一些可能的實現方式中,首先,按照所述建構順序,確定首個建構的分區;即,確定建構順序中第一個需要建構的分區,即上側相鄰塊B1;然後,確定所述首個建構的分區在所述當前塊中的第一位置。即,將當前塊的右上角確定為第一位置。
在一些實施例中,為使得劃分的第一分區的候選塊比第二分區的候選塊更靠前,步驟S304可以透過以下多種方式實現:
方式一:
步驟S341,在所述當前塊中的第二位置處,確定至少一個參考點。
這裡,第二位置可以是當前塊的右上角,比如,如圖8所示,在第二位置801處,確定兩個參考點81和82。
步驟S342,確定所述至少一個參考點與所述當前塊中的分割線之間的距離之和。
在一些實施例中,分割線用於將當前塊分割為多個分區,如圖9所示,當前塊901的分割線為902,確定當前塊901的右上角的兩個參考點到分割線的距離之和,一般在坐標系中,如果分割線在像素點的右側,那麼二者之間的距離為正,如果分割線在像素點的左側,那麼二者之間的距離為負。
步驟S343,如果所述距離之和大於等於預設數值,將所述當前塊中與所述分割線之間的距離為正值的像素點所在的區域,確定為所述第一區域。
在一些實施例中,預設數值可以是0,如圖8所示,如果兩個參考點81和82與分割線的距離之和大於等於0,那麼將則將正距離值所對應的分區判斷為第一分區(即A分區(partFlip=1))。
這裡,色度處理與亮度一致,運動向量儲存也與此處A、B分區一致。
或者具體實現為,最後計算加權和時,用運算式(2)計算最終結果:
wValue= weightSum>0?wValue:8- wValue; pbSamples[x][y]=Clip3(0,(1<<BitDepth)−1,(predSamplesLA[x][y]*wValue+ predSamplesLB[x][y]*(8−wValue)+offset1)>>shift1)    (2);
這裡,色度處理與亮度按比例一致,而且運動向量儲存也與此處A、B分區一致。
步驟S344,如果所述距離之和小於所述預設數值,將所述當前塊中與所述分割線之間的距離為負值的像素點所在的區域,確定為所述第一區域。
如圖8所示,如果兩個參考點81和82與分割線的距離之和小於0,那麼將負距離值所對應的分區判斷為第一分區(A分區)。
方式二:
步驟S351,確定所述當前塊的GPM參數。
在本申請實施例中,所述當前塊的GPM參數包括:角度索引訊息和當前塊的尺寸訊息。
步驟S352,根據所述GPM參數,確定所述當前塊中每一像素點的權重。
首先,根據所述當前塊的尺寸訊息,確定所述當前塊內像素點的位置訊息;比如,當前塊中包括有很多像素點,編碼器可以根據當前塊的尺寸訊息,確定出當前塊內像素點的位置訊息,基於該當前塊內的每個像素點的位置訊息,角度索引訊息和更新角度映射表,就可以計算得到當前塊內的每個像素點對應的權重索引了。
然後,根據所述角度索引訊息、預設角度映射表和所述當前塊內像素點的位置訊息,確定出當前塊內像素點的權重。
在本申請實施例中,編碼器根據餘弦角度索引訊息、正弦角度索引訊息、更新角度映射表,分別結合當前塊內像素點的位置訊息,確定出當前塊內像素點對應的權重索引的實現過程中,該編碼器需要先根據餘弦角度索引訊息和正弦角度索引訊息確定塊中心點到當前分割線的垂直距離rho,再根據餘弦角度索引訊息、正弦角度索引訊息、更新角度映射表、當前塊內像素點的位置訊息和rho,確定每個像素點的權重索引。
這裡,確定當前塊中每一個分量的權重預測像素值的過程如下,即為L、Cb、Cr三個分量推導加權預測像素值predSamples的過程為:
首先,對當前亮度塊預測值進行計算。透過對預定義的權重矩陣裁剪獲取當前亮度塊的權重遮罩矩陣,過程如下:
步驟一,權重矩陣的獲取需要透過當前塊以及當前塊的劃分模式去計算當前塊的左上角對應於座標原點的偏移值Offset(x,y),而座標原點處於同樣角度分割線穿過幾何中心點的同樣尺寸塊的幾何中心點,如圖9所示,其中,背景903是根據限定條件,透過偏移值offset向量,確定的最大尺寸塊(64x64)相對該坐標系的最大移動範圍(112x112)。如果分割線不經過塊中心點,那麼就保持分割線相對位置不動,移動該塊在坐標系中的位置,從而得到恰當的分割。
下面是偏移值計算所需要用到的核心參數:
因為點(x1,y1)到線cosαx-sinαy=0的距離d=cosαx1-sinαy1;
首先,需要獲取當前角度所對應的cos(α)中α的索引號displacementX,如運算式(3)所示,以及對應的-sin(α)=cos(α+π/2)對應的α+π/2的索引號displacementY如運算式(4)所示。
displacementX= angleIdx;                        (3);
displacementY=(displacementX + 8)%32;            (4);
建構預定義權重矩陣時所使用的步長僅僅為第一個步長(即分割線一定與塊的中心點相交)。
A分區和B分區在位元流中相關訊息的傳輸是有先後順序的。因此在兩個分區的順序安排上須遵循一定的原則,透過運算式(5)計算獲得partFlip:
partFlip=(angleIdx>=13&&angleIdx<=27)?0:1    (5);
其中,partFlip為0,表示後續運算式(8)中得到的點與分割線之間的距離(weightIdx)為負值的一側為A分區,分割線對側為B分區;值為1時則相反,距離weightIdx為正值的一側為A分區,負值一側對應B分區。
透過下面運算式(6)和(7)計算獲得關鍵參數shiftHor:
hwRatio=nH/nW     (6);
這裡,即CU的高/CU的寬。
shiftHor=(angleIdx%16==8||(angleIdx%16!=0&&hwRatio>0))?0  (7);
其中,shiftHor的含義是在同一角度下不同分割線之間的位移方向的確定,如其值為0,分割線將在Y軸上偏移;其值為1,分割線將在X軸上偏移。
然後,根據當前預測塊的尺寸和劃分訊息,用運算式(8)和(9)計算當前預測塊的偏移值offsetX和offsetY:
如果shiftHor==0,當前塊在垂直方向上存在跟塊的高相關的偏移值。
offsetX=(−nW)>>1 offsetY=(−nH)>>1+angleIdx<16?(distanceIdx*nH)>>3:−((distanceIdx*nH)>>3)                       (8);
其中,如果shiftHor==1,當前塊在水平方向上存在跟塊的寬相關的偏移值。
offsetX=(−nW)>>1+angleIdx<16?(distanceIdx*nW)>>3:−((distanceIdx*nW)>>3);
offsetY=(−nH)>>1       (9);
步驟二,透過像素點的位置計算當前像素點處的權重索引weightIdx,透過運算式(10)至(12)直接計算當前像素點處的權重值。
weightIdx=(((x*subW+offsetX)<<1)+1)*disLut[displacementX]+ (((y*subH+offsetY)<<1)+1))*disLut[displacementY]     (10); weightIdxL=partFlip?32+weightIdx:32–weightIdx       (11); wValue=Clip3(0,8,(weightIdxL+4)>>3)      (12);
其中,使用的disLut[]如表2所示。subW和subH表示下取樣速率,如果是420格式,subW和subH都為2。亮度不需要下採樣,色度權重是對亮度權重下採樣得到的。
表2 多個分割線距離排列查閱資料表
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
這裡,weightIdxL越小,當前像素點距離分區邊緣越近,該點處在A、B兩分區上的權重分佈越平均。
其次,對兩個分區的單向預測值進行逐像素加權,得到最終的GPM預測塊,具體加權的計算如運算式(13)所示:
pbSamples[x][y]=Clip3(0,(1<<BitDepth)−1,(predSamplesLA[x][y]*; wValue+predSamplesLB[x][y]*(8−wValue)+offset1)>> shift1)   (13);
其中,offset1和shift1的計算過程如下,offset1用於四捨五入,shift1用於使得加權平均後的預測值恢復到與輸入影像相同的位元深度,如運算式(14)和(15)所示:
shift1=Max(5,17−BitDepth)            (14);
offset1=1<<(shift1−1)                    (15);
再次,對當前色度塊(Cb和Ct)預測值的計算,過程如下: 透過獲取每個2*2塊的右上角的亮度樣本權重直接作為當前(x,y)處的色度樣本權重,即對亮度樣本權重進行下採樣。色度加權的計算也如運算式(13)所示。
在一些實施例中,為L、Cb、Cr三個分量推導加權預測像素值完成之後,需要對當前預測塊GPM運動向量進行儲存,過程如下:
該儲存過程是利用當前亮度塊的運動遮罩矩陣來實現的,預測值完全來自於A分區的,則記錄A分區的運動向量,完全來自於B分區的,記錄B分區的運動向量;否則同時記錄兩個分區的運動向量。運動遮罩的計算同計算亮度權重矩陣的過程基本一致,首先計算偏移值offset,該offset的計算如運算式(16)和運算式(17)所示:
如果 shiftHor==0;
offsetX=(−cbWidth)>>1  ; offsetY=((−cbHeight)>>1)+(angleIdx<16?(distanceIdx*cbHeight)>> 3−((distanceIdx*cbHeight)>>3))       (16);
如果shiftHor==1;
offsetX=((−cbWidth)>>1+(angleIdx<16?(distanceIdx*cbWidth)>>3−((distanceIdx*cbWidth)>>3))?; offsetY=(−cbHeight)>>1                (17);
其中,cbWidth和cbHeight分別是當前預測塊對應的運動遮罩矩陣的寬和高(也即當前塊亮度分量的寬和高)。 當前預測塊的運動遮罩矩陣仍是以4×4子塊為單位進行計算的,每個4×4子塊中心位置(4i+2,4j+2)處的運動索引(motionIdx)的計算類似於如運算式(8)中weightIdx的計算,如運算式(18)所示:
motionIdx=(((4*xSbIdx+offsetX)<<1)+5)*disLut[displacementX]+ (((4*ySbIdx+offsetY)<<1)+5)*disLut[displacementY]    (18);
其中,motionIdx為運動索引訊息,當前塊的左上角的像素點的位置訊息(xSbIdx,ySbIdx),(xSbIdx,ySbIdx)表示每個4×4子塊(subblock,sb)在當前CU中的子塊座標。座標的範圍為xSbIdx=0..numSbX–1和ySbIdx=0..numSbY–1。offsetX為運動橫坐標偏移值,offsetY為運動縱坐標偏移值,DisLut [displacementX]為第一角度,DisLut [displacementY]為第二角度。
然後,再確定當前4x4的子塊需要儲存的MV訊息。同預測加權時一樣,需要首先確定當前子塊處於A分區還是B分區的一側,如運算式(19)所示:
partIdx=(angleIdx>=13&&angleIdx<=27)?0:1    (19);
其中,partIdx表示是否需要對兩個分區進行翻轉。
在一些實施例中,可以透過判斷類型(sType)的值,來判斷當前子塊儲存單向還是雙向MV,如運算式(20)所示:
sType=abs(motionIdx)<32?2:(motionIdx<=0?partIdx:(1−partIdx))  (20);
根據每個4×4子塊中心位置(4i+2,4j+2)處的motionIdx 的絕對值(即abs(motionIdx))的大小,來判斷當前子塊儲存單向還是雙向MV:
如果sType為2,當前塊儲存建構的雙向MV;
否則,
如果sType為0,當前塊儲存第一個分區的MVA;
如果sType為1,當前塊儲存第二個分區的MVB;
這些儲存下來的MV訊息將用於後續編碼塊的MV預測。
在一些實施例中,編碼器針對GPM預測模式相關語法的編碼過程如下:
編碼器中將GPM與其他幀間預測模式視為相互競爭的模式,依照位元率失真最佳化或其他策略在模式之間進行選擇,將選擇的結果以位元流中語法元素的形式傳送給解碼端。即1)節中所述語法的寫入操作。該過程與解析過程相反,首先得到的m和n這兩個A、B分區各自在merge清單中所選擇的參考選項位置訊息,然後再依照如下方式對語法元素進行賦值:
merge_gpm_idx0[xCb][yCb]=m
merge_gpm_idx1[xCb][yCb]=n-(merge_gpm_idx1[xCb][yCb]>=m)?1:0
然後,再對其進行二值化、熵編碼,從而最終寫入位元流傳輸。
步驟S353,如果所述至少一個參考點的權重值之和大於等於權重閾值,將所述當前塊中確定像素點的權重為所述權重值之和的區域,確定為所述第一分區。
這裡,權重閾值可以設定為8,如果兩點權重之和大於8,則將目前權值所對應的分區判斷為第一分區,即A分區;否則判斷目前權值所對應的為第二分區,即B分區。
兩點權重之和(WeightSum)的具體實現如下所示:
WeightSum=wValue[nCbW-1][0]+wValue[nCbW-2][0];
partFlip=WeightSum>8;或partFlip=WeightSum<=8?0:1;
其中,wValue指的是按照以下方法確定的值:
wValue=Clip3(0,8,(weightIdxL+4)>>3)
其中,weightIdxL可以表示為weightIdxL=32+weightIdx;
weightIdx可以表示為:
weightIdx=(((x*subW+offsetX)<<1)+1)*disLut[displacementX]+(((y* subH+offsetY)<<1)+1))*disLut[displacementY];
步驟S355,如果所述至少一個參考點的權重值之和小於所述權重閾值,將所述當前塊中像素點的權重為所述權重值之和的區域,確定為第二分區。
這裡,如果權重閾值設定為8,兩點權重之和小於8,判斷目前權值所對應的為第二分區,即B分區。這樣,透過結合Merge清單的建構順序,將A分區選擇merge清單中靠前的選項,而B分區選擇其後面的選項,使得編碼碼率更低。
方式三:編碼器根據角度序號,以及分割線與邊界的交點位置來確定第一分區,實現過程如下所示:
當angleIdx為0~8時,weightIdx為正值的一邊為A分區(partFlip=1)。
當angleIdx為8~15時,如果分割線與上邊界不相交,weightIdx正值的一邊為A分區(partFlip=1);如果分割線與上邊界相交,weightIdx負值的一邊為A分區(partFlip=0)。
當angleIdx為16~23時,weightIdx負值的一邊為A分區(partFlip=0)。
當angleIdx為24~31時,如果分割線與上邊界不相交,weightIdx負值的一邊為A分區(partFlip=0);如果分割線與上邊界相交:weightIdx正值的一邊為A分區(partFlip=1)。
這裡,色度處理與亮度按比例一致,而且運動向量儲存也與此處A、B分區一致。
方式四:透過設定的清單,把各種尺寸、各種模式下的A、B分區進行指定,如表3所示,當需要對當前塊進行分區時,根據當前塊的尺寸和表3即可獲取該如何對當前塊進行劃分,即透過查表的方式即可實現,從而能夠更加快捷方便且準確的實現當前塊的分區。
表3不同尺寸和模式下的分區指示表
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
PartFlip 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 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
PartFlip 1 1 1 1 h>=w h>=w h>=w h>=w h>=w h>w h>w h>2w h>w h>2w h>2w h>2w
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
PartFlip h>2w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
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
PartFlip 0 0 0 0 2h<w 2h<w 0 H<w 2h<w 0 h<=w h<w 2h<w h<2w h<2w h<w
方式五:修正GPM分區翻轉一致性修改,將運算式(3)修改為:partFlip=(angleIdx>=13&&angleIdx<=27)?0:1;
將運算式(19)修改為:partIdx=(angleIdx>=13&&angleIdx<=28)?0:1;
修正後的分區分佈圖,如圖10所示,圖10為本申請實施例修正後的分區分佈示意圖,從圖10可以看出,分區之後序號12和序號28的分區是相同的,解決了不同角度下GPM分區中對應塊之間的分區不同的情況。
在本申請的一些實施例中,本申請實施例提供的一種幀間預測方法的步驟
S306之後,該方法還可以包括:
第一步,將所述角度索引訊息寫入位元流。
第二步,根據餘弦角度索引訊息、正弦角度索引訊息、更新角度映射表,確定運動偏移值,以及根據角度索引訊息、步長索引訊息和當前塊的尺寸訊息,得到當前塊對應的運動橫坐標偏移值和運動縱坐標偏移值。
第三步,根據運動偏移值,運動橫坐標偏移值、運動縱坐標偏移值、當前塊的左上角的像素點的位置訊息、餘弦角度索引訊息對應的第一角度、正弦角度索引訊息對應的第二角度,得到運動索引訊息。
第四步,當運動索引訊息的絕對值小於預設運動索引閾值的一半時,將第一運動訊息和第二運動訊息確定為當前塊的運動訊息。
第五步,當運動索引訊息小於等於0時,將第一運動訊息確定為當前塊的運動訊息。
第六步,當運動索引訊息大於0時,將第而運動訊息確定為當前塊的運動訊息。
第七步,將當前塊的運動訊息儲存在預設合併候選清單中。
在本申請實施例中,編碼器在進行當前塊的編碼時,還需要將當前塊的編碼的運動訊息儲存起來,供後續的編碼塊進行幀間預測時使用。編碼器根據餘弦角度索引訊息、正弦角度索引訊息、更新角度映射表,計算出第一角度和第二角度,再基於第一角度和第二角度,得到運動偏移值;編碼器根據運動偏移值,運動橫坐標偏移值、運動縱坐標偏移值當前塊的左上角的像素點的位置訊息、餘弦角度索引訊息對應的第一角度、正弦角度索引訊息對應的第二角度,得到運動索引訊息;當運動索引訊息的絕對值小於預設運動索引閾值的一半時,編碼器將第一運動訊息和第二運動訊息確定為當前塊的運動訊息;當運動索引訊息小於等於0時,編碼器將第一運動訊息確定為當前塊的運動訊息;當運動索引訊息大於0時,編碼器將第而運動訊息確定為當前塊的運動訊息;將當前塊的運動訊息儲存在預設合併候選清單中。
本申請實施例提供一種幀間預測方法,該方法應用於影像解碼設備,即解碼器。該方法所實現的功能可以透過影像解碼設備中的處理器調用程式碼來實現,當然程式碼可以保存在電腦儲存媒介中,可見,該影像編碼設備至少包括處理器和儲存媒介。
圖11為本申請實施例一種幀內預測方法的實現流程示意圖,應用於解碼器,如圖11所示,該方法包括:
步驟S1101,解析位元流,確定當前塊的預測解碼參數。
步驟S1102,當預測解碼參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定滿足預設條件的分區在當前塊中的第一位置。
這裡,首先,當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定預設候選清單中編碼塊的不同分區之間的建構順序;然後,將所述建構順序中排列在預設序號的分區的位置,確定為所述第一位置;在一個具體例子中,按照所述建構順序,確定首個建構的分區;確定所述首個建構的分區在所述當前塊中的第一位置。
步驟S1103,在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區。
步驟S1104,從所述當前塊除所述第一分區之外的區域中,確定第二分區。
步驟S1105,確定所述第一分區的第一預測值和所述第二分區的第二預測值。
步驟S1106,對所述第一預測值和所述第二預測值進行加權融合,確定所述當前塊的幀間預測值。
在本申請實施例中,解碼器透過解析位元流,確定當前塊的預測解碼參數;然後,結合候選清單中建構順序,確定滿足預設條件的分區在當前塊中的第一位置;接下來,在當前塊中,將與當前塊的第一位置之間的距離小於預設距離的區域,確定為A分區;將所述當前塊除所述第一分區之外的區域,確定為B分區;這樣,就保證了A分區的候選比B分區的候選更靠前可以使得編碼碼率更低。最後,確定所述第一分區的第一預測值和所述第二分區的第二預測值;對所述第一預測值和所述第二預測值進行加權融合,確定所述當前塊的幀間預測值;提高了預測的準確度。
在本申請的一些實施例中,解碼器在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區的方式包括以下多種:
方式一:解碼器首先,在所述當前塊中的第二位置處,確定至少一個參考點;然後,確定所述至少一個參考點與所述當前塊中的分割線之間的距離之和;如果所述距離之和大於等於預設數值,解碼器將所述當前塊中與所述分割線之間的距離為正值的像素點所在的區域,確定為所述第一區域。如果所述距離之和小於所述預設數值,解碼器將所述當前塊中與所述分割線之間的距離為負值的像素點所在的區域,確定為所述第一區域。
方式二:解碼器首先確定所述當前塊的GPM參數;然後,根據所述GPM參數,確定所述當前塊中每一像素點的權重;如果所述至少一個參考點的權重值之和大於等於權重閾值,解碼器將所述當前塊中確定像素點的權重為所述權重值之和的區域,確定為所述第一分區。如果所述至少一個參考點的權重值之和小於所述權重閾值,解碼器將所述當前塊中像素點的權重為所述權重值之和的區域,確定為第二分區。
方式三:解碼器根據角度序號,以及分割線與邊界的交點位置來確定第一分區。
方式四:解碼器透過設定的清單,把各種尺寸、各種模式下的A、B分區進行指定。
在本申請實施例中,解碼器的S1101-S1106的實現與編碼器側的實現S301-S306的過程基本一致,這裡不再贅述。
不同的是,解碼器側的當前塊的預測解碼參數和GPM參數都是從位元流中解析出來的。而編碼器則是自己獲取的。
可以理解的是,解碼器在進行幀間預測的過程中,可以根據預設候選清單中編碼塊的不同分區之間的建構順序;將所述建構順序中排列在預設序號的分區的位置,確定為所述第一位置;然後,在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區;從所述當前塊除所述第一分區之外的區域中,確定第二分區;這樣,選取靠近右上角像素位置的分區作為A分區,這樣A分區的候選比B分區的候選更靠前可以使得編碼碼率更低。利用這樣的分區方式,對當前塊進行AB分區,從而使得預測到的當前塊的幀間預測值更加準確。
在本申請的一些實施例中,當前塊的GPM參數包括:角度索引訊息和當前塊的尺寸訊息;本申請實施例中確定所述當前塊中每一像素點的權重的實現可以包括:
第一步,根據所述當前塊的尺寸訊息,確定所述當前塊內像素點的位置訊息。
第二步,根據所述角度索引訊息、預設角度映射表和所述當前塊內像素點的位置訊息,確定出當前塊內像素點的權重。
在本申請的一些實施例中,解碼器可以根據角度索引訊息,確定出餘弦角度索引訊息和正弦角度索引訊息;將預設角度映射表的角度進行降冪處理,得到更新角度映射表;根據餘弦角度索引訊息、正弦角度索引訊息、更新角度映射表,分別結合當前塊內像素點的位置訊息,確定出當前塊內像素點對應的權重索引。
如圖12所示,本申請實施例提供一種編碼器1,包括:
第一確定模組1201,用於確定當前塊的預測模式參數;
第一指示模組1202,用於當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定滿足預設條件的分區在當前塊中的第一位置;
第一劃分模組1203,用於在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區;
第二劃分模組1204,用於從所述當前塊除所述第一分區之外的區域中,確定第二分區;
第二確定模組1205,用於確定所述第一分區的第一預測值和所述第二分區的第二預測值;
第一融合模組1206,用於對所述第一預測值和所述第二預測值進行加權融合,確定所述當前塊的幀間預測值。
在本申請的一些實施例中,所述第一指示模組1202,還用於:當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定預設候選清單中編碼塊的不同分區之間的建構順序;將所述建構順序中排列在預設序號的分區的位置,確定為所述第一位置。
在本申請的一些實施例中,所述第一指示模組1202,還用於:按照所述建構順序,確定首個建構的分區;確定所述首個建構的分區在所述當前塊中的第一位置。
在本申請的一些實施例中,所述第一劃分模組1203,還用於:在所述當前塊中的第二位置處,確定至少一個參考點;確定所述至少一個參考點與所述當前塊中的分割線之間的距離之和;如果所述距離之和大於等於預設數值,將所述當前塊中與所述分割線之間的距離為正值的像素點所在的區域,確定為所述第一區域。
在本申請的一些實施例中,所述第一劃分模組1203,還用於:如果所述距離之和小於所述預設數值,將所述當前塊中與所述分割線之間的距離為負值的像素點所在的區域,確定為所述第一區域。
在本申請的一些實施例中,所述第一劃分模組1203,還用於:確定所述當前塊的GPM參數;根據所述GPM參數,確定所述當前塊中每一像素點的權重;如果所述至少一個參考點的權重值之和大於等於權重閾值,將所述當前塊中確定像素點的權重為所述權重值之和的區域,確定為所述第一分區。
在本申請的一些實施例中,所述第一劃分模組1203,還用於:如果所述至少一個參考點的權重值之和小於所述權重閾值,將所述當前塊中像素點的權重為所述權重值之和的區域,確定為第二分區。
在本申請的一些實施例中,所述當前塊的GPM參數包括:角度索引訊息和當前塊的尺寸訊息;所述第一劃分模組1203,還用於:根據所述當前塊的尺寸訊息,確定所述當前塊內像素點的位置訊息;根據所述角度索引訊息、預設角度映射表和所述當前塊內像素點的位置訊息,確定出當前塊內像素點的權重。
在實際應用中,如圖13所示,本申請實施例還提供了一種編碼器,包括:第一記憶體1301和第一處理器1302;所述第一記憶體1301儲存有可在第一處理器1302上運行的電腦程式,所述第一處理器1302執行所述程式時編碼器側的幀間預測方法。
可以理解的是,編碼器在進行幀間預測的過程中,根據預設候選清單中編碼塊的不同分區之間的建構順序;將所述建構順序中排列在預設序號的分區的位置,確定為所述第一位置;然後,在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區;從所述當前塊除所述第一分區之外的區域中,確定第二分區;這樣,選取靠近右上角像素位置的分區作為A分區,這樣A分區的候選比B分區的候選更靠前可以使得編碼碼率更低。利用這樣的分區方式,對當前塊進行AB分區,從而使得預測到的當前塊的幀間預測值更加準確。
如圖14所示,本申請實施例提供一種解碼器2,包括:第一解析模組1401,用於解析位元流,確定當前塊的預測解碼參數;第二指示模組1402,用於當所述預測解碼參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定滿足預設條件的分區在當前塊中的第一位置;第三劃分模組1403,用於在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區;第四劃分模組1404,用於從所述當前塊除所述第一分區之外的區域中,確定第二分區;第三確定模組1405,用於確定所述第一分區的第一預測值和所述第二分區的第二預測值;第二融合模組1406,用於對所述第一預測值和所述第二預測值進行加權融合,確定所述當前塊的幀間預測值。
在本申請的一些實施例中,所述第二指示模組1402,還用於:當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定預設候選清單中編碼塊的不同分區之間的建構順序;將所述建構順序中排列在預設序號的分區的位置,確定為所述第一位置。
在本申請的一些實施例中,所述第二指示模組1402,還用於:按照所述建構順序,確定首個建構的分區;確定所述首個建構的分區在所述當前塊中的第一位置。
在本申請的一些實施例中,所述第三劃分模組1403,還用於:在所述當前塊中的第二位置處,確定至少一個參考點;確定所述至少一個參考點與所述當前塊中的分割線之間的距離之和;如果所述距離之和大於等於預設數值,將所述當前塊中與所述分割線之間的距離為正值的像素點所在的區域,確定為所述第一區域。
在本申請的一些實施例中,所述第三劃分模組1403,還用於:如果所述距離之和小於所述預設數值,將所述當前塊中與所述分割線之間的距離為負值的像素點所在的區域,確定為所述第一區域。
在本申請的一些實施例中,所述第三劃分模組1403,還用於:確定所述當前塊的GPM參數;根據所述GPM參數,確定所述當前塊中每一像素點的權重;如果所述至少一個參考點的權重值之和大於等於權重閾值,將所述當前塊中確定像素點的權重為所述權重值之和的區域,確定為所述第一分區。
在本申請的一些實施例中,所述第三劃分模組1403,還用於:如果所述至少一個參考點的權重值之和小於所述權重閾值,將所述當前塊中像素點的權重為所述權重值之和的區域,確定為第二分區。
在本申請的一些實施例中,所述第三劃分模組1403,還用於:根據所述當前塊的尺寸訊息,確定所述當前塊內像素點的位置訊息;根據所述角度索引訊息、預設角度映射表和所述當前塊內像素點的位置訊息,確定出當前塊內像素點的權重。
在實際應用中,如圖15所示,本申請實施例還提供了一種解碼器,包括:第二記憶體1501和第二處理器1502;所述第二記憶體1501儲存有可在第二處理器1502上運行的電腦程式,所述第二處理器1502執行所述程式時實現解碼器側的幀間預測方法。
可以理解的是,解碼器在進行幀間預測的過程中,根據預設候選清單中編碼塊的不同分區之間的建構順序;將所述建構順序中排列在預設序號的分區的位置,確定為所述第一位置;然後,在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區;從所述當前塊除所述第一分區之外的區域中,確定第二分區;這樣,選取靠近右上角像素位置的分區作為A分區,這樣A分區的候選比B分區的候選更靠前可以使得編碼碼率更低。利用這樣的分區方式,對當前塊進行AB分區,從而使得預測到的當前塊的幀間預測值更加準確。
相應的,本申請實施例提供了一種儲存媒介,其上儲存有電腦程式,該電腦程式被第一處理器執行時,實現編碼器的幀間預測方法;或者,該電腦程式被第二處理器執行時,實現解碼器的幀間預測方法。這裡需要指出的是:以上儲存媒介和裝置實施例的描述,與上述方法實施例的描述是類似的,具有同方法實施例相似的有益效果。對於本申請儲存媒介和裝置實施例中未披露的技術細節,請參照本申請方法實施例的描述而理解。以上所述,僅為本申請的實施方式,但本申請的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本申請揭露的技術範圍內,可輕易想到變化或替換,都應涵蓋在本申請的保護範圍之內。因此,本申請的保護範圍應以所述請求項的保護範圍為準。
工業實用性
本申請實施例中,在幀間預測的過程中,可以根據預設候選清單中編碼塊的不同分區之間的建構順序;將所述建構順序中排列在預設序號的分區的位置,確定為所述第一位置;然後,在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區;從所述當前塊除所述第一分區之外的區域中,確定第二分區;這樣,選取靠近右上角像素位置的分區作為第一分區,這樣第一分區的候選比第二區的候選更靠前可以使得編碼碼率更低。利用這樣的分區方式,對當前塊進行分區,從而使得預測到的當前塊的幀間預測值更加準確。
1:編碼器 10:影像編碼系統 101:變換與量化單元 102:幀內估計單元 103:幀內預測單元 104:運動補償單元 105:運動估計單元 106:反變換與反量化單元 107:濾波器控制分析單元 108:濾波單元 109:編碼單元 110:解碼圖像暫存單元 1201:第一確定模組 1202:第一指示模組 1203:第一劃分模組 1204:第二劃分模組 1205:第二確定模組 1206:第一融合模組 1301:第一記憶體 1302:第一處理器 1401:第一解析模組 1402:第二指示模組 1403:第三劃分模組 1404:第四劃分模組 1405:第三確定模組 1406:第二融合模組 1501:第二記憶體 1502:第二處理器 2:解碼器 20:影像解碼系統 201:解碼單元 202:反變換與反量化單元 203:幀內預測單元 204:運動補償單元 205:濾波單元 206:解碼圖像暫存單元 701:輸入模組 702:處理模組 703:輸出模組 801:第二位置 81、82:參考點 901:當前塊 902:分割線 S301~S306:步驟 S1101~S1106:步驟 A0、504:左下側相鄰塊 A1、503:左側相鄰塊 B0、502:右上側相鄰塊 B1、501:上側相鄰塊 B2:左上側相鄰塊 Co1、505:參考幀對應位置塊
圖1A為本申請一示例性實施例不同角度下GPM分區示意圖;
圖1B為本申請一示例性實施例不同角度下直接計算距離的正負值分佈示意圖;
圖2A為本申請實施例提供的一種影像編碼系統的組成方塊圖;
圖2B為本申請實施例提供的一種影像解碼系統的組成方塊圖;
圖3為本申請實施例提供的一種圖像分量預測方法的流程示意圖;
圖4a-4g為本申請實施例提供的示例性的多種劃分模式的示意圖;
圖5A為本申請實施例提供的示例性當前塊的角度和步長的示意圖;
圖5B為本申請實施例候選清單中相鄰塊示意圖;
圖5C為本申請實施例候選清單示意圖;
圖6a為本申請實施例提供的示例性的亮度的第一權重值的示意圖;
圖6b為本申請實施例提供的示例性的色度的第一權重值的示意圖;
圖7為本申請實施例轉碼器預測過程流程圖;
圖8為本申請實施例透過兩點距離判斷AB分區示意圖;
圖9為本申請實施例殘差計算示意圖;
圖10為本申請實施例修正後的分區分佈示意圖;
圖11為本申請實施例一種幀內預測方法的實現流程示意圖;
圖12為本申請實施例一種編碼器的硬體結構示意圖;
圖13為本申請實施例另一種編碼器的硬體結構示意圖;
圖14為本申請實施例一種解碼器的硬體結構示意圖;
圖15為本申請實施例另一種解碼器的硬體結構示意圖。
S301~S306:步驟

Claims (20)

  1. 一種幀間預測方法,應用於編碼器,所述方法包括: 確定當前塊的預測模式參數; 當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定滿足預設條件的分區在所述當前塊中的第一位置; 在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區; 從所述當前塊除所述第一分區之外的區域中,確定第二分區; 確定所述第一分區的第一預測值和所述第二分區的第二預測值; 對所述第一預測值和所述第二預測值進行加權融合,確定所述當前塊的幀間預測值。
  2. 根據請求項1所述的方法,其中,所述當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定滿足預設條件的分區在當前塊中的第一位置,包括: 當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定預設候選清單中編碼塊的不同分區之間的建構順序; 將所述建構順序中排列在預設序號的分區的位置,確定為所述第一位置。
  3. 根據請求項1所述的方法,其中,所述將所述建構順序中排列在預設序號的分區的位置,確定為所述第一位置,包括: 按照所述建構順序,確定首個建構的分區; 確定所述首個建構的分區在所述當前塊中的第一位置。
  4. 根據請求項1所述的方法,其中,所述在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區,包括: 在所述當前塊中的第二位置處,確定至少一個參考點; 確定所述至少一個參考點與所述當前塊中的分割線之間的距離之和; 如果所述距離之和大於等於預設數值,將所述當前塊中與所述分割線之間的距離為正值的像素點所在的區域,確定為所述第一區域。
  5. 根據請求項4所述的方法,所述方法還包括: 如果所述距離之和小於所述預設數值,將所述當前塊中與所述分割線之間的距離為負值的像素點所在的區域,確定為所述第一區域。
  6. 根據請求項4所述的方法,其中,所述在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區之前,所述方法還包括: 確定所述當前塊的GPM參數; 根據所述GPM參數,確定所述當前塊中每一像素點的權重; 對應地,所述在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區,包括: 如果所述至少一個參考點的權重值之和大於等於權重閾值,將所述當前塊中確定像素點的權重為所述權重值之和的區域,確定為所述第一分區。
  7. 根據請求項6所述的方法,所述方法還包括: 如果所述至少一個參考點的權重值之和小於所述權重閾值,將所述當前塊中像素點的權重為所述權重值之和的區域,確定為第二分區。
  8. 根據請求項6所述的方法,其中,所述當前塊的GPM參數包括:角度索引訊息和當前塊的尺寸訊息;所述根據所述GPM參數,確定所述當前塊中每一像素點的權重,包括: 根據所述當前塊的尺寸訊息,確定所述當前塊內像素點的位置訊息; 根據所述角度索引訊息、預設角度映射表和所述當前塊內像素點的位置訊息,確定出當前塊內像素點的權重。
  9. 一種幀間預測方法,應用於解碼器,所述方法包括: 解析位元流,確定當前塊的預測解碼參數; 當所述預測解碼參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定滿足預設條件的分區在所述當前塊中的第一位置; 在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區; 從所述當前塊除所述第一分區之外的區域中,確定第二分區; 確定所述第一分區的第一預測值和所述第二分區的第二預測值; 對所述第一預測值和所述第二預測值進行加權融合,確定所述當前塊的幀間預測值。
  10. 根據請求項9所述的方法,其中,所述當所述預測解碼參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定滿足預設條件的分區在當前塊中的第一位置,包括: 當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定預設候選清單中編碼塊的不同分區之間的建構順序; 將所述建構順序中排列在預設序號的分區的位置,確定為所述第一位置。
  11. 根據請求項10所述的方法,其中,所述將所述建構順序中排列在預設序號的分區的位置,確定為所述第一位置,包括: 按照所述建構順序,確定首個建構的分區; 確定所述首個建構的分區在所述當前塊中的第一位置。
  12. 根據請求項9所述的方法,其中,所述在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區,包括: 在所述當前塊中的第二位置處,確定至少一個參考點; 確定所述至少一個參考點與所述當前塊中的分割線之間的距離之和; 如果所述距離之和大於等於預設數值,將所述當前塊中與所述分割線之間的距離為正值的像素點所在的區域,確定為所述第一區域。
  13. 根據請求項12所述的方法,所述方法還包括: 如果所述距離之和小於所述預設數值,將所述當前塊中與所述分割線之間的距離為負值的像素點所在的區域,確定為所述第一區域。
  14. 根據請求項12所述的方法,其中,所述在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區之前,所述方法還包括: 確定所述當前塊的GPM參數; 根據所述GPM參數,確定所述當前塊中每一像素點的權重; 對應地,所述在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區,包括: 如果所述至少一個參考點的權重值之和大於等於權重閾值,將所述當前塊中確定像素點的權重為所述權重值之和的區域,確定為所述第一分區。
  15. 根據請求項14所述的方法,所述方法還包括: 如果所述至少一個參考點的權重值之和小於所述權重閾值,將所述當前塊中像素點的權重為所述權重值之和的區域,確定為第二分區。
  16. 根據請求項15所述的方法,其中,所述當前塊的GPM參數包括:角度索引訊息和當前塊的尺寸訊息;所述根據所述GPM參數,確定所述當前塊中每一像素點的權重,包括: 根據所述當前塊的尺寸訊息,確定所述當前塊內像素點的位置訊息; 根據所述角度索引訊息、預設角度映射表和所述當前塊內像素點的位置訊息,確定出當前塊內像素點的權重。
  17. 一種編碼器,包括: 第一確定模組,用於確定當前塊的預測模式參數; 第一指示模組,用於當所述預測模式參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定滿足預設條件的分區在當前塊中的第一位置; 第一劃分模組,用於在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區; 第二劃分模組,用於從所述當前塊除所述第一分區之外的區域中,確定第二分區; 第二確定模組,用於確定所述第一分區的第一預測值和所述第二分區的第二預測值; 第一融合模組,用於對所述第一預測值和所述第二預測值進行加權融合,確定所述當前塊的幀間預測值。
  18. 一種解碼器,包括: 第一解析模組,用於解析位元流,確定當前塊的預測解碼參數; 第二指示模組,用於當所述預測解碼參數指示使用幾何劃分預測模式GPM確定當前塊的幀間預測值時,確定滿足預設條件的分區在當前塊中的第一位置; 第三劃分模組,用於在所述當前塊中,將與所述當前塊的第一位置之間的距離小於預設距離的區域,確定為第一分區; 第四劃分模組,用於從所述當前塊除所述第一分區之外的區域中,確定第二分區; 第三確定模組,用於確定所述第一分區的第一預測值和所述第二分區的第二預測值; 第二融合模組,用於對所述第一預測值和所述第二預測值進行加權融合,確定所述當前塊的幀間預測值。
  19. 一種編碼器,包括: 第一記憶體和第一處理器; 所述第一記憶體儲存有可在第一處理器上運行的電腦程式,所述第一處理器執行所述程式時實現請求項1至8任一項所述幀間預測方法。
  20. 一種解碼器,包括: 第二記憶體和第二處理器; 所述第二記憶體儲存有可在第二處理器上運行的電腦程式,所述第二處理器執行所述程式時實現請求項9至16任一項所述幀間預測方法。
TW110109408A 2020-04-03 2021-03-16 幀間預測方法、編碼器、解碼器及儲存媒介 TW202139709A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/CN2020/083373 WO2021196235A1 (zh) 2020-04-03 2020-04-03 帧间预测方法、编码器、解码器及存储介质
WOPCT/CN2020/083373 2020-04-03

Publications (1)

Publication Number Publication Date
TW202139709A true TW202139709A (zh) 2021-10-16

Family

ID=77927567

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110109408A TW202139709A (zh) 2020-04-03 2021-03-16 幀間預測方法、編碼器、解碼器及儲存媒介

Country Status (3)

Country Link
CN (1) CN114586366A (zh)
TW (1) TW202139709A (zh)
WO (1) WO2021196235A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI815377B (zh) * 2021-11-17 2023-09-11 聯發科技股份有限公司 視訊編解碼方法和裝置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023174426A1 (en) * 2022-03-18 2023-09-21 Mediatek Inc. Geometric partitioning mode and merge candidate reordering
CN114422781B (zh) * 2022-03-29 2022-07-12 深圳传音控股股份有限公司 图像处理方法、智能终端及存储介质
CN114598880B (zh) * 2022-05-07 2022-09-16 深圳传音控股股份有限公司 图像处理方法、智能终端及存储介质
CN115002463B (zh) * 2022-07-15 2023-01-13 深圳传音控股股份有限公司 图像处理方法、智能终端及存储介质
CN115379214B (zh) * 2022-10-26 2023-05-23 深圳传音控股股份有限公司 图像处理方法、智能终端及存储介质
CN118057814A (zh) * 2022-11-18 2024-05-21 中兴通讯股份有限公司 帧间预测方法及解码方法、电子装置和存储介质
CN115955565B (zh) * 2023-03-15 2023-07-04 深圳传音控股股份有限公司 处理方法、处理设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101740039B1 (ko) * 2009-06-26 2017-05-25 톰슨 라이센싱 적응형 기하학적 분할을 이용한 비디오 인코딩 및 디코딩 방법 및 장치
CN102611880B (zh) * 2011-01-19 2015-02-04 华为技术有限公司 标识图像块几何划分模式的编解码方法和设备
CN102790892B (zh) * 2012-07-05 2014-06-11 清华大学 深度图编码方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI815377B (zh) * 2021-11-17 2023-09-11 聯發科技股份有限公司 視訊編解碼方法和裝置
TWI841265B (zh) * 2021-11-17 2024-05-01 聯發科技股份有限公司 視訊編解碼方法和裝置

Also Published As

Publication number Publication date
WO2021196235A1 (zh) 2021-10-07
CN114586366A (zh) 2022-06-03

Similar Documents

Publication Publication Date Title
WO2021196235A1 (zh) 帧间预测方法、编码器、解码器及存储介质
JP7372433B2 (ja) オプティカルフローを用いた予測リファインメントに関する方法および装置
WO2021238396A1 (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
US20230023856A1 (en) Inter prediction method, encoder, decoder, and storage medium
US11785208B2 (en) Prediction method for decoding and apparatus, and computer storage medium
TW202139700A (zh) 一種幀間預測方法、編碼器、解碼器及儲存媒介
CN116233466A (zh) 光流预测细化(prof)的方法和装置
US20230080546A1 (en) Inter Prediction Method, Encoder, Decoder and Storage Medium
TW202139694A (zh) 一種幀間預測方法、編碼器、解碼器及儲存媒介
WO2021258841A1 (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
CN114979631B (zh) 用于利用光流的预测细化、双向光流和解码器侧运动矢量细化的方法和装置
TW202145784A (zh) 幀間預測方法、編碼器、解碼器以及電腦儲存媒介
US20230045687A1 (en) Inter Prediction Method, Encoder, Decoder, and Storage Medium
WO2021134627A1 (zh) 一种帧间预测方法、编码器、解码器及存储介质
WO2022022278A1 (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
JP2010226528A (ja) 符号化装置およびその方法
WO2020258052A1 (zh) 图像分量预测方法、装置及计算机存储介质
CN113545090A (zh) 用于帧内子分区编解码模式的方法和设备
WO2023044916A1 (zh) 帧内预测的方法、编码器、解码器和编解码系统
WO2023044917A1 (zh) 帧内预测的方法、编码器、解码器和编解码系统
WO2023044918A1 (zh) 帧内预测的方法、编码器、解码器和编解码系统
TW202209893A (zh) 幀間預測方法、編碼器、解碼器以及電腦儲存媒介
TW202145783A (zh) 幀間預測方法、編碼器、解碼器以及電腦儲存媒介
TW202209884A (zh) 幀間預測方法、編碼器、解碼器及電腦可讀儲存媒介
TW202425631A (zh) 編解碼方法、碼流、編碼器、解碼器以及儲存媒介