TW202404361A - 編解碼方法、編碼器、解碼器以及儲存媒介 - Google Patents
編解碼方法、編碼器、解碼器以及儲存媒介 Download PDFInfo
- Publication number
- TW202404361A TW202404361A TW112124177A TW112124177A TW202404361A TW 202404361 A TW202404361 A TW 202404361A TW 112124177 A TW112124177 A TW 112124177A TW 112124177 A TW112124177 A TW 112124177A TW 202404361 A TW202404361 A TW 202404361A
- Authority
- TW
- Taiwan
- Prior art keywords
- lfnst
- mip
- current block
- mode
- prediction mode
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 211
- 238000013507 mapping Methods 0.000 claims abstract description 148
- 238000012545 processing Methods 0.000 claims abstract description 38
- 239000013598 vector Substances 0.000 claims description 170
- 230000009466 transformation Effects 0.000 claims description 136
- 230000017105 transposition Effects 0.000 claims description 76
- 230000015654 memory Effects 0.000 claims description 66
- 238000005070 sampling Methods 0.000 claims description 55
- 239000011159 matrix material Substances 0.000 claims description 52
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 37
- 238000004364 calculation method Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 21
- 239000000523 sample Substances 0.000 description 66
- 238000005516 engineering process Methods 0.000 description 51
- 230000008569 process Effects 0.000 description 41
- 238000013139 quantization Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 18
- 238000001914 filtration Methods 0.000 description 16
- 239000000872 buffer Substances 0.000 description 13
- 239000013074 reference sample Substances 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000001360 synchronised effect Effects 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 8
- 238000012360 testing method Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 238000012935 Averaging Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 241000023320 Luma <angiosperm> Species 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 4
- 239000010751 BS 2869 Class A2 Substances 0.000 description 3
- 239000010754 BS 2869 Class F Substances 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 2
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 101100042371 Caenorhabditis elegans set-3 gene Proteins 0.000 description 1
- 101150055297 SET1 gene Proteins 0.000 description 1
- 101150117538 Set2 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申請實施例提供了一種解碼方法,在解碼端,解碼碼流,確定預測模式參數;當預測模式參數指示使用MIP確定幀內預測值時,解碼碼流,確定當前塊的MIP參數;解碼碼流,確定當前塊的變換係數和LFNST索引序號;當LFNST索引序號指示當前塊使用LFNST時,根據MIP參數,確定LFNST變換集的映射模式;根據LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定當前塊使用的LFNST變換核;使用LFNST變換核,對變換係數進行變換處理。
Description
本申請實施例涉及圖像處理技術領域,尤其涉及一種編解碼方法、編碼器、解碼器以及儲存媒介。
隨著人們對視訊顯示品質要求的提高,高清和超高清視訊等新視訊應用形式應運而生。H.265/高效率視訊編碼(High Efficiency Video Coding,HEVC)已經無法滿足視訊應用迅速發展的需求,聯合視訊研究組(Joint Video Exploration Team,JVET)提出了下一代視訊編碼標準H.266/多功能視訊編碼(Versatile Video Coding,VVC),其相應的測試模型為VVC的參考軟體測試平臺(VVC Test Model,VTM)。增強的壓縮模型(Enhanced Compression Model,ECM)在VTM10.0的基礎上開始接收更新和更高效的壓縮演算法。
解碼端幀內模式匯出(Decoder side Intra Mode Derivation,DIMD)是ECM的幀內預測技術。該技術主要核心點在於幀內預測的模式在解碼端使用與編碼端相同的方法匯出幀內預測模式,從而可以達到節省位元開銷的目的。
然而,DIMD技術的使用在軟體和硬體方面的均引入了較大的複雜度,增大了壓縮代價。
本申請實施例提供一種編解碼方法、編碼器、解碼器以及儲存媒介,能夠降低計算複雜度,從而可以提高編碼效率。
本申請實施例的技術方案可以如下實現:
第一方面,本申請實施例提供了一種解碼方法,應用於解碼器,所述方法包括:
解碼碼流,確定預測模式參數;
當所述預測模式參數指示使用MIP確定幀內預測值時,解碼碼流,確定當前塊的MIP參數;
解碼碼流,確定所述當前塊的變換係數和LFNST索引序號;
當所述LFNST索引序號指示所述當前塊使用LFNST時,根據所述MIP參數,確定LFNST變換集的映射模式;
根據所述LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定所述當前塊使用的LFNST變換核;
使用所述LFNST變換核,對所述變換係數進行變換處理。
第二方面,本申請實施例提供了一種編碼方法,應用於編碼器,所述方法包括:
確定預測模式參數;
當所述預測模式參數指示所述當前塊使用MIP確定幀內預測值時,確定當前塊的MIP參數;
根據所述MIP參數,確定所述當前塊的幀內預測塊,計算所述當前塊與所述幀內預測值之間的殘差塊;
當所述當前塊使用LFNST時,根據所述MIP參數,確定LFNST變換集的映射模式;
根據所述LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定所述當前塊使用的LFNST變換核,設置LFNST索引序號並寫入視訊碼流;
使用所述LFNST變換核,對所述殘差塊進行變換處理。
第三方面,本申請實施例提供了一種編碼器,所述編碼器包括第一確定單元,編碼單元,第一變換單元;其中,
所述第一確定單元,配置為確定預測模式參數;當所述預測模式參數指示所述當前塊使用MIP確定幀內預測值時,確定當前塊的MIP參數;根據所述MIP參數,確定所述當前塊的幀內預測塊,計算所述當前塊與所述幀內預測值之間的殘差塊;當所述當前塊使用LFNST時,根據所述MIP參數,確定LFNST變換集的映射模式;根據所述LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定所述當前塊使用的LFNST變換核,設置LFNST索引序號;
所述編碼單元,配置為寫入視訊碼流;
所述第一變換單元,還配置為使用所述LFNST變換核,對所述殘差塊進行變換處理。
第四方面,本申請實施例提供了一種編碼器,所述編碼器包括第一記憶體和第一處理器;其中,
所述第一記憶體,用於儲存能夠在所述第一處理器上運行的電腦程式;
所述第一處理器,用於在運行所述電腦程式時,執行如第二方面所述的方法。
第五方面,本申請實施例提供了一種解碼器,所述解碼器包括第二確定單元,第二變換單元;其中,
所述第二確定單元,配置為解碼碼流,確定預測模式參數;當所述預測模式參數指示使用MIP確定幀內預測值時,解碼碼流,確定當前塊的MIP參數;解碼碼流,確定所述當前塊的變換係數和LFNST索引序號;當所述LFNST索引序號指示所述當前塊使用LFNST時,根據所述MIP參數,確定LFNST變換集的映射模式;根據所述LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定所述當前塊使用的LFNST變換核;
所述第二變換單元,配置為使用所述LFNST變換核,對所述變換係數進行變換處理。
第六方面,本申請實施例提供了一種解碼器,所述解碼器包括第二記憶體和第二處理器;其中,
所述第二記憶體,用於儲存能夠在所述第二處理器上運行的電腦程式;
所述第二處理器,用於在運行所述電腦程式時,執行如第一方面所述的方法。
第七方面,本申請實施例提供了一種電腦可讀儲存媒介,所述電腦可讀儲存媒介儲存有電腦程式,所述電腦程式被執行時實現如第一方面所述的方法、或者實現如第二方面所述的方法。
本申請實施例提供了一種編解碼方法、編碼器、解碼器以及儲存媒介,在解碼端,解碼碼流,確定預測模式參數;當預測模式參數指示使用MIP確定幀內預測值時,解碼碼流,確定當前塊的MIP參數;解碼碼流,確定當前塊的變換係數和LFNST索引序號;當LFNST索引序號指示當前塊使用LFNST時,根據MIP參數,確定LFNST變換集的映射模式;根據LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定當前塊使用的LFNST變換核;使用LFNST變換核,對變換係數進行變換處理。在編碼端,確定預測模式參數;當預測模式參數指示當前塊使用MIP確定幀內預測值時,確定當前塊的MIP參數;根據MIP參數,確定當前塊的幀內預測塊,計算當前塊與幀內預測值之間的殘差塊;當當前塊使用LFNST時,根據MIP參數,確定LFNST變換集的映射模式;根據LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定當前塊使用的LFNST變換核,設置LFNST索引序號並寫入視訊碼流;使用LFNST變換核,對殘差塊進行變換處理。由此可見,在本申請的實施例中,在進行預測塊的匯出時,根據當前塊的MIP參數中的尺寸參數確定LFNST變換集的映射模式,其中,對於較大尺寸的圖像塊,可以選擇不使用DIMD匯出映射模式,能夠降低計算複雜度,從而可以提高編碼效率。
為了能夠更加詳盡地瞭解本申請實施例的特點與技術內容,下面結合附圖對本申請實施例的實現進行詳細闡述,所附附圖僅供參考說明之用,並非用來限定本申請實施例。
在以下的描述中,涉及到“一些實施例”,其描述了所有可能實施例的子集,但是可以理解,“一些實施例”可以是所有可能實施例的相同子集或不同子集,並且可以在不衝突的情況下相互結合。還需要指出,本申請實施例所涉及的術語“第一\第二\第三”僅是用於區別類似的物件,不代表針對物件的特定排序,可以理解地,“第一\第二\第三”在允許的情況下可以互換特定的順序或先後次序,以使這裡描述的本申請實施例能夠以除了在這裡圖示或描述的以外的順序實施。
在視訊圖像中,一般採用第一圖像分量、第二圖像分量和第三圖像分量來表徵編碼塊(Coding Block,CB);其中,這三個圖像分量分別為一個亮度分量、一個藍色色度分量和一個紅色色度分量,具體地,亮度分量通常使用符號Y表示,藍色色度分量通常使用符號Cb或者U表示,紅色色度分量通常使用符號Cr或者V表示;這樣,視訊圖像可以用YCbCr格式表示,也可以用YUV格式表示。
在本申請實施例中,第一圖像分量可以為亮度分量,第二圖像分量可以為藍色色度分量,第三圖像分量可以為紅色色度分量,但是本申請實施例不作具體限定。
通用的視訊編解碼標準基於都採用基於塊的混合編碼框架。視訊圖像中的每一幀被分割成相同大小(比如128×128,64×64等)的正方形的最大編碼單元(Largest Coding Unit,LCU)或編碼樹單元(Coding Tree Unit,CTU),每個最大編碼單元或編碼樹單元還可以根據規則劃分成矩形的編碼單元(Coding Unit,CU);而且編碼單元可能還會劃分成更小的預測單元(Prediction Unit,PU)、變換單元(Transform Unit,TU)等。
混合編碼框架可以包括有預測(Prediction)、變換(Transform)、量化(Quantization)、熵編碼(Entropy coding)、環路濾波(Inloop Filter)等模組。其中,預測模組可以包括幀內預測(Intra Prediction)和幀間預測(Inter Prediction),幀間預測可以包括運動估計(Motion Estimation)和運動補償(Motion Compensation)。由於視訊圖像的一個幀內相鄰像素之間存在很強的相關性,在視訊編解碼技術中使用幀內預測方式能夠消除相鄰像素之間的空間冗餘;但是由於視訊圖像中的相鄰幀之間也存在著很強的相似性,在視訊編解碼技術中使用幀間預測方式消除相鄰幀之間的時間冗餘,從而能夠提高編解碼效率。
視訊轉碼器的基本流程如下:在編碼端,將一幀圖像劃分成塊,對當前塊使用幀內預測或幀間預測產生當前塊的預測塊,當前塊的原始塊減去預測塊得到殘差塊,對殘差塊進行變換、量化得到量化係數矩陣,對量化係數矩陣進行熵編碼輸出到碼流中。在解碼端,對當前塊使用幀內預測或幀間預測產生當前塊的預測塊,另一方面解碼碼流得到量化係數矩陣,對量化係數矩陣進行反量化、反變換得到殘差塊,將預測塊和殘差塊相加得到重建塊。重建塊組成重建圖像,基於圖像或基於塊對重建圖像進行環路濾波得到解碼圖像。編碼端同樣需要和解碼端類似的操作獲得解碼圖像。解碼圖像可以為後續的幀作為幀間預測的參考幀。編碼端確定的塊劃分資訊,預測、變換、量化、熵編碼、環路濾波等模式資訊或者參數資訊如果有必要需要在輸出到碼流中。解碼端通過解碼及根據已有資訊進行分析確定與編碼端相同的塊劃分資訊,預測、變換、量化、熵編碼、環路濾波等模式資訊或者參數資訊,從而保證編碼端獲得的解碼圖像和解碼端獲得的解碼圖像相同。編碼端獲得的解碼圖像通常也叫做重建圖像。在預測時可以將當前塊劃分成預測單元,在變換時可以將當前塊劃分成變換單元,預測單元和變換單元的劃分可以不同。上述是基於塊的混合編碼框架下的視訊轉碼器的基本流程,隨著技術的發展,該框架或流程的一些模組或步驟可能會被優化,本申請實施例適用於該基於塊的混合編碼框架下的視訊轉碼器的基本流程,但不限於該框架及流程。
當前塊(current block)可以是當前編碼單元(CU)或當前預測單元(PU)等。
國際視訊編碼標準制定組織JVET已成立超越H.266/VVC編碼模型研究的小組,並將該模型,即平臺測試軟體,命名為增強的壓縮模型(Enhanced Compression Model,ECM)。ECM在VTM10.0的基礎上開始接收更新和更高效的壓縮演算法,目前已超越VVC約13%的編碼性能。ECM不僅擴大了特定解析度的編碼單元尺寸,同時也集成了許多幀內預測和幀間預測技術。
下面將針對基於矩陣的幀內預測(Matrix-based Intra Prediction,MIP)技術的相關技術方案進行描述。
基於矩陣的幀內預測技術,即MIP技術,可以分為三個主要步驟,分別是下採樣、矩陣相乘以及上採樣。第一步將空間相鄰重建樣本進行下採樣,得到下採樣後的樣本序列作為第二步的輸入向量;第二步將第一步的輸出向量作為輸入,與預先設定好的矩陣相乘並加上偏置向量,並輸出計算之後的樣本向量;第三步將第二步的輸出向量作為輸入上採樣成最終預測塊。圖1為基於矩陣的幀內預測技術的示意圖,上述過程如圖1所示,MIP技術在第一步過程中通過平均當前編碼單元上邊相鄰的重建樣本後得到上相鄰下採樣重建樣本向量,通過平均左相鄰的重建樣本後得到左相鄰下採樣重建樣本向量。上向量和左向量作為第二步矩陣向量相乘的輸入,Ak為預先設定好的矩陣,bk為預先設定好的偏置向量,其中k為MIP模式索引。第三步將第二步得到的結果進行線性插值上採樣得到與實際編碼單元樣本數相符的預測樣本塊。
對於不同塊尺寸的編碼單元,MIP的模式個數有所不同。以H.266/VVC為例,對於4×4大小的編碼單元,MIP有16種預測模式;對於8×8大小的編碼單元,或者寬、高等於4的編碼單元,MIP有8種預測模式;對於其他尺寸的編碼單元,MIP有6種預測模式。同時,MIP技術有一個轉置功能,對於符合當前尺寸的預測模式,MIP在編碼端都會嘗試轉置計算。若需要轉置,則將輸入上側和左側輸入向量的順序進行調換,而矩陣計算後再將輸出調換。
因此,MIP不僅需要一個標誌位元來表示當前編碼單元是否使用MIP技術,同時,若當前編碼單元使用MIP技術,則需要額外傳輸一個轉置標誌位元和MIP模式索引到解碼端。
在VVC標準文本當中,MIP的轉置標誌位元由定長編碼方式(Fixed Length,FL) 二值化,長度為1。而MIP的模式索引由截斷二進位編碼方式(Truncated Binary,TB)二值化。
低頻不可分二次變換(Low-Frequency Non-Separable Transform,LFNST)技術同樣是VVC文本中的已採納的技術,下面將針對LFNST的相關技術方案進行描述。
LFNST在編碼端應用在正向主變換以及量化之間,而在解碼端應用在反量化和反主變換之間。在當前編碼塊的殘差經過主變換後得到頻域的係數,LFNST在這基礎之上對部分係數再做頻域轉換,對部分頻域係數進行變換,得到另一個域的係數,之後再做量化以及熵編碼等操作。LFNST進一步去除了統計冗餘,在VVC的參考軟體VTM上有著不錯的性能表現。
LFNST主要對變換塊左上角的4×4或者8×8區域進行二次變換,此外,LFNST的變換核在VVC中主要歸類為4個變換集,每個變換集有2個候選變換核。而在ECM中,LFNST的變換核進行了拓展,從原始的4個變換集拓展成35個變換集,從原來的每個變換集2個候選變換核拓展成每個變換集3個候選變換核。
LFNST允許作用在幀內預測和幀間預測上。其中,LFNST在幀內預測上採用幀內預測模式對應選擇變換集的方式可以節省位元開銷,由於幀內預測通常有對應的幀內預測模式,即DC模式、PLANAR模式或者角度預測模式,將這些幀內預測模式和LFNST的變換集進行綁定。如在VVC中,DC模式和PLANAR模式對應第一個變換集,具體如下表1所示。
表1
predModeIntra | SetIdx |
predModeIntra < 0 | 1 |
0 <= predModeIntra <= 1 | 0 |
2 <= predModeIntra <= 12 | 1 |
13 <= predModeIntra <= 23 | 2 |
24 <= predModeIntra <= 44 | 3 |
45 <= predModeIntra <= 55 | 2 |
56 <= predModeIntra <= 80 | 1 |
81 <= IntraPredMode<= 83 | 0 |
其中,predModeIntra可以為幀內預測模式指示符,SetIdx可以為LFNST索引序號。這裡,LFNST索引序號的取值設置為指示當前塊使用LFNST、且LFNST變換核在LFNST變換核候選集中的索引序號。例如,如果LFNST變換集中包括有四個變換核候選集(set0,set1,set2,set3),分別對應於SetIdx的取值為0、1、2、3。
相應的,在ECM中對LFNST的變換核進行拓展之後,不同幀內預測模式對應的LFNST變換集對應就會更細細微性一些,例如,圖2為幀內預測模式與變換集的對應表,如圖2所示,拓展之後的對應有35個變換集。
下面將針對解碼端幀內模式匯出(Decoder side Intra Mode Derivation,DIMD)技術的相關技術方案進行描述。
DIMD是ECM的幀內預測技術,VVC中並沒有這個技術。該技術主要核心點在於幀內預測的模式在解碼端使用與編碼端相同的方法匯出幀內預測模式,以此避免在碼流中傳輸當前編碼單元的幀內預測模式索引,達到節省位元開銷的目的。具體做法分為兩個主要步驟,第一個步驟,即匯出預測模式,在編解碼端使用同樣的預測模式強度計算方法。編碼端利用索貝爾運算元統計每種預測模式下的梯度長條圖(histogram of gradients),作用區域為當前塊的上方三行相鄰重建樣本、左側三列相鄰重建樣本以及左上對應相鄰重建樣本,通過計算前述的L形區域梯度長條圖可以得到長條圖中幅度最大對應的第一預測模式和幅度第二大所對應的第二預測模式。解碼端以同樣步驟匯出第一預測模式和第二預測模式;第二個步驟,匯出預測塊,在編解碼端使用同樣的預測塊匯出方式得到當前預測塊。編碼端判斷以下兩個條件,1、第二預測模式的梯度不為0;2、第一預測模式和第二預測模式均不為PLANAR或者DC預測模式。若上述兩個條件不同時成立,則當前預測塊僅使用第一預測模式計算當前塊的預測樣本值,即對第一預測模式應用普通預測預測過程;否則,即上述兩個條件均成立,則當前預測塊將使用加權求平均方式匯出當前預測塊。具體方法為,PLANAR模式佔據1/3的加權權重,剩下2/3由第一預測模式根據第一預測模式的梯度強度比上第一和第二預測模式的梯度強度和作為加權權重,及第二預測模式根據第二預測模式的梯度強度比上第一和第二預測模式的梯度強度和作為加權權重。將上述三種預測模式,即PLANAR、第一預測模式和第二預測模式,加權求平均得到當前編碼單元的預測塊。解碼端以同樣步驟得到預測塊。圖3為解碼端幀內模式匯出技術的示意圖,上述具體操作過程如圖3所示。
其中,在上述第二個步驟中,具體的權重計算方法如下公式所示:
Weight(PLANAR) = 1/3 (1)
Weight(mode1) = 2/3 × (amp1/(amp1+amp2)) (2)
Weight(mode2) = 1 – Weight(PLANAR) – Weight(mode1) (3)
其中,mode1和mode2分別代表第一預測模式和第二預測模式,amp1和amp2分別代表第一預測模式的梯度幅度值和第二預測模式的梯度幅度值。對於DIMD技術,需要傳輸一個標誌位元到解碼端來表示當前編碼單元是否使用DIMD技術。
為了對MIP與LFNST進行改進,在VVC以及ECM中,MIP與LFNST的關係都被簡單化,所有的MIP預測模式在映射到LFNST的變換集過程前都被預設當成PLANAR模式。這是因為LFNST在設計初期就是利用幀內預測模式作為訓練輸入,通過深度學習訓練得到LFNST的變換核係數,而MIP的預測模式與傳統的幀內預測模式表達不同,MIP預測模式代表某一個預測矩陣係數,傳統預測模式代表方向性。同時,MIP的預測結果與傳統的PLANAR模式類似,因此MIP所有的預測模式都採用PLANAR映射到LFNST的變換集上。
可以選擇對MIP的預測塊使用DIMD對每個傳統幀內預測模式的梯度幅度值進行排序,將最優可能的傳統預測模式去映射到LFNST的變換集上。同時,也可以選擇擴展原始MIP允許使用LFNST的編碼單元尺寸範圍,VVC和ECM中僅允許當前編碼單元寬和高均大於等於16的時候,允許MIP使用LFNST。而在擴展之後,在當前編碼單元寬和高均大於等於4的時候,允許MIP使用LFNST。
雖然上述方法很好的解決了MIP預測模式映射到LFNST的問題,也提升了編碼效率,但同時也引入了相應的複雜度,無論是軟體上的編解碼時間還是硬體實現上的緩存以及時序問題等。
且提出的對MIP使用LFNST的範圍作出拓展,允許條件變成寬高均大於等於4即可使用LFNST,這樣使用DIMD對MIP預測塊匯出傳統預測模式的範圍擴大,編解碼複雜度也會繼續增加。
相對於編碼端,在解碼端增加複雜度代價更大。LFNST的4×4編碼單元使用範圍在原本的VVC以及ECM中均已支持,相訊並不會帶來太多的額外顧慮,但對預測塊的DIMD匯出過程是目前VVC和ECM中均沒有的技術和操作。若能減少DIMD的使用條件或者簡化步驟,同時保持相應的編碼性能,便可以大大提升解碼端的解碼效率。
也就是說,常見的基於DIMD技術的編解碼方案,會在軟體和硬體方面的均引入了較大的複雜度,增大了壓縮代價,降低了編碼效率。
為了解決上述問題,在本申請的實施例中,在解碼端,解碼碼流,確定預測模式參數;當預測模式參數指示使用MIP確定幀內預測值時,解碼碼流,確定當前塊的MIP參數;解碼碼流,確定當前塊的變換係數和LFNST索引序號;當LFNST索引序號指示當前塊使用LFNST時,根據MIP參數,確定LFNST變換集的映射模式;根據LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定當前塊使用的LFNST變換核;使用LFNST變換核,對變換係數進行變換處理。在編碼端,確定預測模式參數;當預測模式參數指示當前塊使用MIP確定幀內預測值時,確定當前塊的MIP參數;根據MIP參數,確定當前塊的幀內預測塊,計算當前塊與幀內預測值之間的殘差塊;當當前塊使用LFNST時,根據MIP參數,確定LFNST變換集的映射模式;根據LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定當前塊使用的LFNST變換核,設置LFNST索引序號並寫入視訊碼流;使用LFNST變換核,對殘差塊進行變換處理。由此可見,在本申請的實施例中,在進行預測塊的匯出時,根據當前塊的MIP參數中的尺寸參數確定LFNST變換集的映射模式,其中,對於較大尺寸的圖像塊,可以選擇不使用DIMD匯出映射模式,能夠降低計算複雜度,從而可以提高編碼效率。
參見圖4,其示出了本申請實施例提供的一種視訊編碼系統的組成框圖示例;如圖4所示,該視訊編碼系統10包括變換與量化單元101、幀內估計單元102、幀內預測單元103、運動補償單元104、運動估計單元105、反變換與反量化單元106、濾波器控制分析單元107、濾波單元108、編碼單元109和解碼圖像緩存單元110等,其中,濾波單元108可以實現去方塊濾波及樣本自我調整縮進(Sample Adaptive 0ffset,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中。
參見圖5,其示出了本申請實施例提供的一種視訊解碼系統的組成框圖示例;如圖5所示,該視訊解碼系統20包括解碼單元201、反變換與反量化單元202、幀內預測單元203、運動補償單元204、濾波單元205和解碼圖像緩存單元206等,其中,解碼單元201可以實現頭資訊解碼以及CABAC解碼,濾波單元205可以實現去方塊濾波以及SAO濾波。輸入的視訊訊號經過圖4的編碼處理之後,輸出該視訊訊號的碼流;該碼流輸入視訊解碼系統20中,首先經過解碼單元201,用於得到解碼後的變換係數;針對該變換係數通過反變換與反量化單元202進行處理,以便在像素域中產生殘差塊;幀內預測單元203可用於基於所確定的幀內預測模式和來自當前幀或圖片的先前經解碼塊的資料而產生當前視訊解碼塊的預測資料;運動補償單元204是通過剖析運動向量和其他關聯語法元素來確定用於視訊解碼塊的預測資訊,並使用該預測資訊以產生正被解碼的視訊解碼塊的預測性塊;通過對來自反變換與反量化單元202的殘差塊與由幀內預測單元203或運動補償單元204產生的對應預測性塊進行求和,而形成解碼的視訊塊;該解碼的視訊訊號通過濾波單元205以便去除方塊效應偽影,可以改善視訊品質;然後將經解碼的視訊塊儲存於解碼圖像緩存單元206中,解碼圖像緩存單元206儲存用於後續幀內預測或運動補償的參考圖像,同時也用於視訊訊號的輸出,即得到了所恢復的原始視訊訊號。
本申請實施例中的編碼方法,可以應用在如圖4所示的幀內估計單元102和幀內預測單元103部分。另外,本申請實施例中的解碼方法,還可以應用在如圖5所示的幀內預測單元203。也就是說,本申請實施例中的編解碼方法,既可以應用於視訊編碼系統,也可以應用於視訊解碼系統,甚至還可以同時應用於視訊編碼系統和視訊解碼系統,但是本申請實施例不作具體限定。還需要說明的是,當該編解碼方法應用於視訊編碼系統時,“當前塊”具體是指幀內預測中的當前編碼塊;當該編解碼方法應用於視訊解碼系統時,“當前塊”具體是指幀內預測中的當前解碼塊。
下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述。
本申請實施例提出的了一種解碼方法,圖6為本申請實施例提出的解碼方法的實現流程示意圖,如圖6所示,解碼器進行解碼處理的方法可以包括以下步驟:
步驟101、解碼碼流,確定預測模式參數。
在本申請的實施例中,解碼器解碼碼流,可以先確定預測模式參數。
需要說明的是,在本申請的實施例中,預測模式參數指示了當前塊的編碼模式及與該編碼模式相關的參數。其中,預測模式通常包括有傳統幀內預測模式和非傳統幀內預測模式,而傳統幀內預測模式又可以包括有直流(Direct Current,DC)模式、平面(PLANAR)模式和角度模式等,非傳統幀內預測模式又可以包括有MIP模式、跨分量線性模型預測(Cross-component Linear Model Prediction,CCLM)模式、幀內塊複製(Intra Block Copy,IBC)模式和PLT(Palette)模式等。
可以理解的是,在本申請的實施例中,在編碼側,可以針對當前塊進行預測編碼,在預測編碼的過程中就可以確定出當前塊的預測模式,並將相應的預測模式參數寫入碼流,從可以將預測模式參數由編碼器傳輸到解碼器。
相應的,在解碼側,通過解碼碼流可以獲取到當前塊或者當前塊所在編碼塊的亮度或色度分量的幀內預測模式,這時候可以確定出predModeIntra(幀內預測模式指示符)的取值,計算公式如下,
(4)
其中,圖像分量指示符(可以用cIdx表示)用於指示當前塊的亮度分量或色度分量;這裡,如果當前塊預測的為亮度分量,那麼cIdx等於0;如果當前塊預測的為色度分量,那麼cIdx等於1。另外,(xTbY,yTbY)是當前塊左上角採樣點的座標,IntraPredModeY[xTbY][yTbY]為亮度分量的幀內預測模式,IntraPredModeC[xTbY][yTbY]為色度分量的幀內預測模式。
進一步地,在本申請的實施例中,通過預測模式參數的獲取,可以基於預測模式參數確定在進行幀內預測時是否使用MIP確定幀內預測值。
步驟102、當預測模式參數指示使用MIP確定幀內預測值時,解碼碼流,確定當前塊的MIP參數。
在本申請的實施例中,在確定預測模式參數之後,如果預測模式參數指示使用MIP確定幀內預測值,那麼可以繼續解碼碼流,從而確定當前塊的MIP參數。
需要說明的是,在本申請的實施例中,MIP參數可以包括有MIP轉置指示參數(可以用isTransposed表示)、MIP模式索引序號(可以用modeId表示)、當前塊的大小、當前塊的類別(可以用mipSizeId表示)等參數;這些參數的取值可以通過解碼碼流得到。
也就是說,在本申請的實施例中,通過解碼碼流確定的MIP參數,可以對MIP轉置指示參數、MIP模式索引序號、當前塊的大小、當前塊的類別等資訊中的至少一個資訊進行指示。
進一步地,在本申請的實施例中,通過解碼碼流,可以確定isTransposed的取值;當isTransposed的取值等於1時,便可以確定需要對MIP模式使用的採樣點輸入向量進行轉置處理;當isTransposed的取值等於0時,便可以確定不需要對MIP模式使用的採樣點輸入向量進行轉置處理;也就是說,MIP轉置指示參數isTransposed可以用於指示是否對MIP模式使用的採樣點輸入向量進行轉置處理。
進一步地,在本申請的實施例中,通過解碼碼流,還可以確定MIP模式索引序號modeId;其中,MIP模式索引序號可以用於指示當前塊使用的MIP模式,MIP模式可以用於指示使用MIP確定當前塊的幀內預測塊的計算推導方式。也就是說,不同的MIP模式,其對應的MIP模式索引序號的取值是不同的;這裡,MIP模式索引序號的取值可以為0、1、2、3、4或5。
進一步地,在本申請的實施例中,通過解碼碼流,還可以確定當前塊的大小、寬高比、當前塊的類別mipSizeId等參數資訊。這樣,在確定出MIP參數之後,以方便後續根據所確定的MIP參數來選擇當前塊使用的LFNST變換核(可以用kernel表示)。
也就是說,在本申請的實施例中,MIP參數可以對當前塊的尺寸參數進行確定,其中,尺寸參數可以表徵當前塊的大小,既可以為當前塊的高度和寬度,也可以為當前塊的寬高比。
步驟103、解碼碼流,確定當前塊的變換係數和LFNST索引序號。
在本申請的實施例中,如果預測模式參數指示使用MIP確定幀內預測值,那麼在確定當前塊的MIP參數之後,可以繼續解碼碼流,進而確定當前塊的變換係數和LFNST索引序號。
需要說明的是,在本申請的實施例中,LFNST索引序號的取值可以用於指示當前塊是否使用LFNST,還可以用於指示LFNST變換核在LFNST變換核候選集中的索引序號。
也就是說,在本申請的實施例中,在解碼出LFNST索引序號之後,當LFNST索引序號的取值等於0時,表明了當前塊不使用LFNST;而當LFNST索引序號的取值大於0時,表明了當前塊使用LFNST,此時,變換核的索引序號可以等於LFNST索引序號的取值,或者,變換核的索引序號也可以等於LFNST索引序號的取值減1。
步驟104、當LFNST索引序號指示當前塊使用LFNST時,根據MIP參數,確定LFNST變換集的映射模式。
在本申請的實施例中,在確定當前塊的變換係數和LFNST索引序號之後,如果LFNST索引序號指示當前塊使用LFNST,那麼可以進一步根據MIP參數,確定LFNST變換集的映射模式。
需要說明的是,在本申請的實施例中,MIP參數可以為當前塊的尺寸參數,其中,尺寸參數可以表徵當前塊的大小,既可以為當前塊的高度和寬度,也可以為當前塊的寬高比。
也就是說,在本申請的實施例中,在進行LFNST變換集的映射模式的確定時,可以參考當前塊的尺寸參數。例如,基於當前塊的高度和寬度確定LFNST變換集的映射模式,或者,基於當前塊的寬高比確定LFNST變換集的映射模式。
進一步地,在本申請的實施例中,在根據當前塊的尺寸參數確定LFNST變換集的映射模式時,可以先判斷尺寸參數是否滿足第一預設條件,如果尺寸參數滿足第一預設條件,那麼可以將第一預設預測模式確定為LFNST變換集的映射模式;如果尺寸參數不滿足第一預設條件,那麼便使用DIMD確定LFNST變換集的映射模式。
需要說明的是,在本申請的實施例中,第一預設條件可以用於對當前塊的尺寸大小進行限定。其中,第一預設條件是與當前塊的尺寸參數相對應的。如果當前塊的尺寸參數為當前塊的高度和寬度,那麼第一預設條件可以對高度和寬度分別進行限定;如果當前塊的尺寸參數為當前塊的寬高比,那麼第一預設條件可以對寬高比進行限定。
示例性的,在本申請的實施例中,假設當前塊的尺寸參數為當前塊的高度和寬度,那麼可以設置第一預設條件為寬度大於或者等於預設寬度閾值,和/或,高度大於或者等於預設高度閾值。例如,如果當前塊的高度大於或者等於預設高度閾值,或者當前塊的寬度大於或者等於預設寬度閾值,那麼便可以確定尺寸參數滿足第一預設條件;如果當前塊的高度小於預設高度閾值,且當前塊的寬度小於預設寬度閾值,那麼可以確定尺寸參不滿足第一預設條件。
可以理解的是,在本申請的實施例中,預設寬度閾值和預設高度閾值可以為任意大於或者等於0的數值,例如,預設寬度閾值為32,預設高度閾值也為32,即如果當前塊的高度或者寬度均大於或者等於32,則可以確定當前塊滿足第一預設條件。預設寬度閾值為32,預設高度閾值也為16,即如果當前塊的高度大於或者等於32,或者當前塊的寬度大於或者等於16,則可以確定當前塊滿足第一預設條件。
可以理解的是,在本申請的實施例中,通過第一預設條件,可以對DIMD的使用進行限制,即只有在當前塊的尺寸參數不滿足第一預設條件時,才允許使用DIMD確定LFNST變換集的映射模式。
可見,本申請實施例提出的解碼方法,在確定LFNST變換集的映射模式時,可以利用第一預設條件對使用DIMD的圖像塊的尺寸進行限制,僅允許對部分圖像塊使用DIMD,從而有效降低了計算複雜度。例如,僅允許對尺寸較小的圖像塊使用DIMD確定LFNST變換集的映射模式。
進一步的,在本申請的實施例中,如果當前塊的尺寸參數滿足第一預設條件,那麼可以直接將第一預設預測模式確定為LFNST變換集的映射模式。其中,第一預設預測模式可以為PLANAR模式或DC模式。
也就是說,在本申請的實施例中,在確定LFNST變換集的映射模式時,結合第一預設條件,可以選擇對部分圖像塊直接進行映射模式的設定。例如,對尺寸較大的圖像塊,直接將PLANAR模式或DC模式確定為LFNST變換集的映射模式。
進一步地,在本申請的實施例中,在使用DIMD確定LFNST變換集的映射模式時,可以先遍歷至少一種幀內預測模式,從而確定當前塊對應的至少一個梯度資訊;接著,可以根據至少一個梯度資訊確定LFNST變換集的映射模式。其中,一種幀內預測模式對應一個梯度資訊,梯度資訊可以為梯度長條圖。
可以理解的是,在本申請的實施例中,在根據至少一個梯度資訊確定LFNST變換集的映射模式時,可以基於至少一個梯度資訊,確定每一種幀內預測模式對應的梯度幅度值;然後可以將至少一種幀內預測模式中的、梯度幅度值最大的幀內預測模式確定為LFNST變換集的映射模式。其中,一種幀內預測模式對應一個梯度幅度值。
也就是說,在本申請的實施例中,基於DIMD技術,可以選擇在解碼端使用與編碼端相同的方法匯出幀內預測模式,以節省位元開銷。其主要包括兩個步驟:第一個步驟,即匯出預測模式,在編解碼端使用同樣的預測模式強度計算方法。例如,利用索貝爾運算元統計每種預測模式下的梯度長條圖histogram of gradients,作用區域為當前塊的上方三行相鄰重建樣本、左側三列相鄰重建樣本以及左上對應相鄰重建樣本所構成的L形區域,通過計算該L形區域的梯度長條圖可以得到長條圖中幅度最大對應的第一預測模式和幅度第二大所對應的第二預測模式;第二個步驟,匯出預測塊,在編解碼端使用同樣的預測塊匯出方式得到當前預測塊。例如,判斷以下兩個條件,1、第二預測模式的梯度不為0;2、第一預測模式和第二預測模式均不為PLANAR或者DC預測模式。若上述兩個條件不同時成立,則當前預測塊僅使用第一預測模式計算當前塊的預測樣本值,即對第一預測模式應用普通預測預測過程;否則,即上述兩個條件均成立,則當前預測塊將使用加權求平均方式匯出當前預測塊。具體方法為,PLANAR模式佔據1/3的加權權重,剩下2/3由第一預測模式根據第一預測模式的梯度強度比上第一和第二預測模式的梯度強度和作為加權權重,及第二預測模式根據第二預測模式的梯度強度比上第一和第二預測模式的梯度強度和作為加權權重。將上述三種預測模式,即PLANAR、第一預測模式和第二預測模式,加權求平均得到當前編碼單元的預測塊。解碼端以同樣步驟得到預測塊。
進一步地,在本申請的實施例中,可以先根據MIP參數,確定當前塊的下採樣向量;然後根據下採樣向量進行矩陣乘法計算,獲得MIP輸出向量;再根據MIP輸出向量確定當前塊的MIP預測塊;最終對MIP預測塊遍歷至少一種幀內預測模式,獲得至少一個梯度資訊。
可以理解的是,在本申請的實施例中,可以根據當前塊的尺寸參數,對獲取得到的周邊參考重建樣本進行哈爾下採樣,採樣步長由當前塊的尺寸參數確定。其中,根據解碼得到的MIP轉置指示參數調整上側下採樣後的參考重建樣本與左側下採樣後的參考重建樣本拼接順序。若不需要轉置則將左側下採樣後的參考重建樣本拼接在上側下採樣後的參考重建樣本之後,將得到的向量最為輸入(下採樣向量);若需要轉置則將上側下採樣後的參考重建樣本拼接在左側下採樣後的參考重建樣本之後,將得到的向量作為輸入(下採樣向量)。
接著,可以根據解碼得到的MIP模式索引序號獲取MIP矩陣係數,與輸入(下採樣向量)計算得到輸出向量(MIP輸出向量)。再根據輸出向量個數與當前塊的尺寸參數,對輸出向量進行上採樣,若不需要上採樣則向量以水準方向依次填充作為當前塊的MIP預測塊輸出,若需要上採樣則先上採樣水準方向再下採樣垂直方向,上採樣至與範本尺寸相同後作為當前塊的MIP預測塊輸出。
接著,如果確定對當前塊使用DIMD,那麼便可以直接對當前塊的MIP預測塊使用DIMD方法匯出最優傳統幀內預測模式作為LFNST變換集的映射模式。即對當前塊的MIP預測塊遍歷至少一種幀內預測模式,計算至少一種幀內預測模式在當前塊的MIP預測塊上的梯度資訊,
也就是說,在本申請的實施例中,DIMD計算過程可以在MIP輸出向量上採樣之後進行。
進一步地,在本申請的實施例中,可以先根據MIP參數,確定當前塊的下採樣向量;接著根據下採樣向量進行矩陣乘法計算,獲得MIP輸出向量;最後對MIP輸出向量遍歷至少一種幀內預測模式,獲得至少一個梯度資訊。
可以理解的是,在本申請的實施例中,可以根據當前塊的尺寸參數,對獲取得到的周邊參考重建樣本進行哈爾下採樣,採樣步長由當前塊的尺寸參數確定。其中,根據解碼得到的MIP轉置指示參數調整上側下採樣後的參考重建樣本與左側下採樣後的參考重建樣本拼接順序。若不需要轉置則將左側下採樣後的參考重建樣本拼接在上側下採樣後的參考重建樣本之後,將得到的向量最為輸入(下採樣向量);若需要轉置則將上側下採樣後的參考重建樣本拼接在左側下採樣後的參考重建樣本之後,將得到的向量作為輸入(下採樣向量)。
接著,可以根據解碼得到的MIP模式索引序號獲取MIP矩陣係數,與輸入(下採樣向量)計算得到輸出向量(MIP輸出向量)。
接著,如果確定對當前塊使用DIMD,那麼便可以直接對當前塊的MIP輸出向量使用DIMD方法匯出最優傳統幀內預測模式作為LFNST變換集的映射模式。即對MIP輸出向量遍歷至少一種幀內預測模式,計算至少一種幀內預測模式在當前塊的MIP預測塊上的梯度資訊。然後再根據輸出向量(MIP輸出向量)個數與當前塊的尺寸參數,對輸出向量進行上採樣,若不需要上採樣則向量以水準方向依次填充作為當前塊的MIP預測塊輸出,若需要上採樣則先上採樣水準方向再下採樣垂直方向,上採樣至與範本尺寸相同後作為當前塊的MIP預測塊輸出。
也就是說,在本申請的實施例中,DIMD計算過程也可以在MIP輸出向量上採樣之前進行。
需要說明的是,在本申請的實施例中,在使用DIMD確定LFNST變換集的映射模式時,可以選擇遍歷所有67種幀內預測模式,獲得對應的67個梯度資訊;也可以選擇遍歷所有67種幀內預測模式中的一部分幀內預測模式,獲得對應的梯度資訊。
也就是說,在本申請的實施例中,為了進一步降低編解碼端的複雜度,對於DIMD的使用,針對67種幀內預測模式可以進行選擇性的跳過,減少遍歷的幀內預測模式的個數,例如,以步長為1進行有選擇性的篩選。
步驟105、根據LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定當前塊使用的LFNST變換核。
在本申請的實施例中,如果LFNST索引序號指示當前塊使用LFNST,那麼在根據MIP參數,確定LFNST變換集的映射模式之後,可以根據LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,然後從所選擇的LFNST變換核候選集中確定當前塊使用的LFNST變換核。
進一步地,在本申請的實施例中,在確定當前塊使用的LFNST變換核時,可以先確定LFNST變換集的映射模式的索引序號;然後可以根據索引序號的取值,確定LFNST幀內預測模式索引序號的取值;接著,可以根據LFNST幀內預測模式索引序號的取值,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集;最後便可以從所選擇的LFNST變換核候選集中,選擇LFNST索引序號指示的變換核,設置為當前塊使用的LFNST變換核。
也就是說,在本申請的實施例中,在確定出LFNST變換集的映射模式之後,可以進一步確定LFNST變換集的映射模式的索引序號,然後將LFNST變換集的映射模式的索引序號的取值轉換為LFNST幀內預測模式索引序號(可以用predModeIntra表示)的取值;然後再根據predModeIntra的取值,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,以確定出變換核候選集;並且在所選擇的LFNST變換核候選集中,選擇出LFNST索引序號指示的變換核,設置為當前塊使用的LFNST變換核。
需要說明的是,在本申請的實施例中,在進行LFNST變換核候選集和對應的LFNST變換核的確定時,多個LFNST變換核候選集可以包括4個LFNST變換核候選集,其中,每個LFNST變換核候選集包括2個LFNST變換核;相應的,可以使用第一查閱資料表確定索引序號的取值對應的LFNST幀內預測模式索引序號的取值。
可以理解的是,在本申請的實施例中,基於第一查閱資料表,可以將DC模式、PLANAR模式或者角度預測模式和LFNST的變換集進行綁定,例如表1所示的第一查閱資料表。
需要說明的是,在本申請的實施例中,在進行LFNST變換核候選集和對應的LFNST變換核的確定時,多個LFNST變換核候選集也可以包括35個LFNST變換核候選集,其中,每個LFNST變換核候選集包括3個LFNST變換核;相應的,可以使用第二查閱資料表確定索引序號的取值對應的LFNST幀內預測模式索引序號的取值。
可以理解的是,在本申請的實施例中,基於第二查閱資料表,不同幀內預測模式對應的LFNST變換集對應就會更細細微性一些,例如圖2所示的第二查閱資料表。
進一步地,在本申請的實施例中,MIP參數還可以包括MIP轉置指示參數,其中,MIP轉置指示參數的取值用於指示是否對MIP模式使用的採樣點輸入向量進行轉置處理。相應的,當MIP轉置指示參數的取值指示對MIP模式使用的採樣點輸入向量進行轉置處理時,可以選擇對LFNST索引序號指示的變換核進行矩陣轉置處理,得到當前塊使用的LFNST變換核。
可以理解的是,在本申請的實施例中,當MIP轉置指示參數的取值等於1,可以認為MIP轉置指示參數的取值指示對MIP模式使用的採樣點輸入向量進行轉置處理時,此時便需要對所選擇的變換核進行相應的矩陣轉置處理,從而可以得到當前塊使用的LFNST變換核。
步驟106、使用LFNST變換核,對變換係數進行變換處理。
在本申請的實施例中,在根據LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定當前塊使用的LFNST變換核之後,便可以使用LFNST變換核,對變換係數進行變換處理。
進一步地,在本申請的實施例中,從所選擇的LFNST變換核候選集中確定的LFNST變換核即為當前塊使用的LFNST變換核,該LFNST變換核可以為對變換係數進行變換處理的變換矩陣。進而可以將二次變換係數向量作為輸入,使用變換矩陣(變換核)與之相乘得到一次變換係數向量,如此,經過矩陣計算之後,可以實現對變換係數的變換處理。
示例性的,在一種可能的實施例中,在解碼端,解碼器可以解碼編碼單元級類型標誌位元,若指示為幀內模式,則解碼獲取MIP允許使用標誌位元(預測模式參數),該標誌位元可以為序列級標誌位元,用於指示當前解碼器是否允許使用MIP技術。其中,該序列級標誌位元可以表示為sps_mip_enable_flag的形式。
接著,如果MIP的允許使用標誌位元為真,則解碼當前編碼單元(當前塊)的MIP使用標誌位元,否則,當前解碼過程不需要解碼編碼單元級的MIP使用標誌位元,編碼單元級的MIP使用標誌位元預設為否。
如果當前編碼單元的MIP使用標誌位元為真,則解碼獲得當前編碼單元的MIP參數,其中,MIP參數可以包括MIP轉置指示參數、MIP模式索引序號、當前塊的大小、當前塊的類別等資訊中的至少一個資訊。否則繼續解碼其他幀內預測技術的使用標識位元或索引等資訊,並根據解碼到的資訊求得當前編碼單元的最終預測塊。
在解碼獲得MIP參數之後,可以根據當前編碼單元尺寸大小的情況(當前塊的尺寸參數),對獲取得到的周邊參考重建樣本進行哈爾下採樣,採樣步長根據編碼單元尺寸確定,同時可以結合解碼得到的MIP轉置指示參數調整上側下採樣後的參考重建樣本與左側下採樣後的參考重建樣本拼接順序。其中,若不需要轉置則將左側下採樣後的參考重建樣本拼接在上側下採樣後的參考重建樣本之後,將得到的向量最為輸入(下採樣向量);若需要轉置則將上側下採樣後的參考重建樣本拼接在左側下採樣後的參考重建樣本之後,將得到的向量作為輸入(下採樣向量)。
接著,根據解碼得到的MIP預測模式獲取MIP矩陣係數,與輸入(下採樣向量)計算得到輸出向量(MIP輸出向量)。然後根據輸出向量個數與當前編碼單元尺寸情況,對輸出向量進行上採樣。其中,若不需要上採樣則向量以水準方向依次填充作為當前編碼單元預測塊(當前塊的MIP預測塊)輸出,若需要上採樣則先上採樣水準方向再下採樣垂直方向,上採樣至與範本尺寸相同後作為當前編碼單元預測塊(當前塊的MIP預測塊)輸出。
需要說明的是,如果當前塊的尺寸參數滿足第一預設條件,則直接將第一預設預測模式確定為LFNST變換集的映射模式,例如,如果當前編碼單元的寬和高均大於或等於32,那麼可以將PLANAR模式(第一預設預測模式)作為LFNST變換集的映射模式。如果當前塊的尺寸參數滿足第一預設條件,則可以選擇對當前MIP預測塊使用DIMD方法匯出最優傳統幀內預測模式作為LFNST變換集的映射模式。
進一步地,在使用DIMD方法匯出傳統幀內預測模式最為LFNST變換集的映射模式時,可以對當前MIP預測塊遍歷在當前VVC以及ECM中的67種幀內預測模式(或者遍歷部分幀內預測模式),計算每種幀內預測模式在當前MIP預測塊上的梯度資訊,進而基於梯度資訊確定對應的梯度幅度值,再根據梯度幅度值對所遍歷的幀內預測模式進行排序,最大幅度的幀內預測模式即為最優模式,即作為後續步驟中反變換過程的LFNST變換集的映射模式。
在完成LFNST變換集的映射模式的確定之後,可以繼續解碼其他幀內預測技術的使用標識位元或索引等資訊,並根據解碼到的資訊求得當前編碼單元的最終預測塊;進一步地,可以解碼碼流並獲取殘差資訊,根據反量化及反變換得到時域殘差資訊,將最終預測塊與時域殘差資訊疊加得到重建樣本塊;所有重建樣本塊經由環路濾波等技術後,得到最終的重建圖像,可以同時作為視訊輸出也可以作為後面解碼參考。
示例性的,在另一種可能的實施例中,在解碼端,解碼器可以解碼編碼單元級類型標誌位元,若指示為幀內模式,則解碼獲取MIP允許使用標誌位元(預測模式參數),該標誌位元可以為序列級標誌位元,用於指示當前解碼器是否允許使用MIP技術。其中,該序列級標誌位元可以表示為sps_mip_enable_flag的形式。
接著,如果MIP的允許使用標誌位元為真,則解碼當前編碼單元(當前塊)的MIP使用標誌位元,否則,當前解碼過程不需要解碼編碼單元級的MIP使用標誌位元,編碼單元級的MIP使用標誌位元預設為否。
如果當前編碼單元的MIP使用標誌位元為真,則解碼獲得當前編碼單元的MIP參數,其中,MIP參數可以包括MIP轉置指示參數、MIP模式索引序號、當前塊的大小、當前塊的類別等資訊中的至少一個資訊。否則繼續解碼其他幀內預測技術的使用標識位元或索引等資訊,並根據解碼到的資訊求得當前編碼單元的最終預測塊。
在解碼獲得MIP參數之後,可以根據當前編碼單元尺寸大小的情況(當前塊的尺寸參數),對獲取得到的周邊參考重建樣本進行哈爾下採樣,採樣步長根據編碼單元尺寸確定,同時可以結合解碼得到的MIP轉置指示參數調整上側下採樣後的參考重建樣本與左側下採樣後的參考重建樣本拼接順序。其中,若不需要轉置則將左側下採樣後的參考重建樣本拼接在上側下採樣後的參考重建樣本之後,將得到的向量最為輸入(下採樣向量);若需要轉置則將上側下採樣後的參考重建樣本拼接在左側下採樣後的參考重建樣本之後,將得到的向量作為輸入(下採樣向量)。
接著,根據解碼得到的MIP預測模式獲取MIP矩陣係數,與輸入(下採樣向量)計算得到輸出向量(MIP輸出向量)。
需要說明的是,如果當前塊的尺寸參數滿足第一預設條件,則直接將第一預設預測模式確定為LFNST變換集的映射模式,例如,如果當前編碼單元的寬和高均大於或等於32,那麼可以將PLANAR模式(第一預設預測模式)作為LFNST變換集的映射模式。如果當前塊的尺寸參數滿足第一預設條件,則可以選擇對當前MIP輸出向量使用DIMD方法匯出最優傳統幀內預測模式作為LFNST變換集的映射模式。
進一步地,在使用DIMD方法匯出傳統幀內預測模式最為LFNST變換集的映射模式時,可以對當前MIP輸出向量(MIP輸出向量)在當前VVC以及ECM中的67種幀內預測模式(或者遍歷部分幀內預測模式),計算每種幀內預測模式在當前MIP輸出向量上的梯度資訊,進而基於梯度資訊確定對應的梯度幅度值,再根據梯度幅度值對所遍歷的幀內預測模式進行排序,最大幅度的幀內預測模式即為最優模式,即作為後續步驟中反變換過程的LFNST變換集的映射模式。
進一步地,可以根據輸出向量個數與當前編碼單元尺寸情況,對輸出向量進行上採樣。其中,若不需要上採樣則向量以水準方向依次填充作為當前編碼單元預測塊(當前塊的MIP預測塊)輸出,若需要上採樣則先上採樣水準方向再下採樣垂直方向,上採樣至與範本尺寸相同後作為當前編碼單元預測塊(當前塊的MIP預測塊)輸出。
在完成LFNST變換集的映射模式的確定之後,可以繼續解碼其他幀內預測技術的使用標識位元或索引等資訊,並根據解碼到的資訊求得當前編碼單元的最終預測塊;進一步地,可以解碼碼流並獲取殘差資訊,根據反量化及反變換得到時域殘差資訊,將最終預測塊與時域殘差資訊疊加得到重建樣本塊;所有重建樣本塊經由環路濾波等技術後,得到最終的重建圖像,可以同時作為視訊輸出也可以作為後面解碼參考。
需要說明的是,本申請實施例提出的編解碼方法,適用於編解碼端的幀內預測部分,採用本申請實施例提出的方案,集成到JVET-Z008上後,在通測條件AI下測試結果如下表2和表3:
表2
表3
All Intra Main10 | |||||||||
Over JVET-Z0048 | |||||||||
Y | U | V | EncT | DecT | |||||
Class A1 | #VALUE! | #VALUE! | #VALUE! | #NUM! | #NUM! | ||||
Class A2 | #VALUE! | #VALUE! | #VALUE! | #NUM! | #NUM! | ||||
Class B | 0.01% | 0.00% | 0.07% | 102% | 106% | ||||
Class C | 0.00% | 0.04% | 0.07% | 103% | 107% | ||||
Class E | 0.00% | 0.05% | 0.07% | 105% | 108% | ||||
Overall | #VALUE! | #VALUE! | #VALUE! | #NUM! | #NUM! | ||||
Class D | 0.00% | -0.04% | 0.06% | 105% | 111% | ||||
Class F | #VALUE! | #VALUE! | #VALUE! | #NUM! | #NUM! | ||||
Random access Main10 | |||||||||
Over JVET-Z0048 | |||||||||
Y | U | V | EncT | DecT | |||||
Class A1 | #VALUE! | #VALUE! | #VALUE! | #DIV/0! | #DIV/0! | ||||
Class A2 | #VALUE! | #VALUE! | #VALUE! | #DIV/0! | #DIV/0! | ||||
Class B | #VALUE! | #VALUE! | #VALUE! | #NUM! | #NUM! | ||||
Class C | 0.01% | -0.20% | 0.03% | 100% | 89% | ||||
Class E | |||||||||
Overall | #VALUE! | #VALUE! | #VALUE! | #DIV/0! | #DIV/0! | ||||
Class D | -0.01% | -0.02% | -0.01% | 98% | 85% | ||||
Class F | #VALUE! | #VALUE! | #VALUE! | #NUM! | #NUM! | ||||
採用本申請實施例提出的方案,在class D上同時跑了anchor和test,提供了較為準確的結果,如下表4和表5:
表4
表5
All intra Main10 | |||||||||
Over JVET-Z0048 | |||||||||
Y | U | V | EncT | DecT | |||||
Class D | 0.00% | -0.04% | 0.06% | 100% | 100% | ||||
Random access Main10 | |||||||||
Over JVET-Z0048 | |||||||||
Y | U | V | EncT | DecT | |||||
Class D | -0.01% | -0.02% | -0.01% | 100% | 98% | ||||
採用本申請實施例提出的方案,以ECM4.0作為anchor的(JVET-Z0048 + proposed method)測試結果如下表6:
表6
All Intra Main10 | |||||||||
Over ECM4.0 | |||||||||
Y | U | V | EncT | DecT | |||||
Class A1 | #VALUE! | #VALUE! | #VALUE! | #NUM! | #NUM! | ||||
Class A2 | #VALUE! | #VALUE! | #VALUE! | #NUM! | #NUM! | ||||
Class B | -0.08% | -0.05% | 0.03% | 107% | 106% | ||||
Class C | -0.13% | -0.07% | -0.04% | 107% | 107% | ||||
Class E | -0.15% | -0.05% | -0.06% | 110% | 107% | ||||
Overall | #VALUE! | #VALUE! | #VALUE! | #NUM! | #NUM! | ||||
Class D | -0.12% | -0.06% | -0.18% | 110% | 110% | ||||
Class F | #VALUE! | #VALUE! | #VALUE! | #NUM! | #NUM! | ||||
通過上述測試結果可知,本申請實施例提出的解碼方法,降低了JVET-Z0048方案中的軟硬體複雜度,同時保持著與其相似的性能,亮度分量沒有性能變化。與ECM4.0相比,與JVET-Z0048一樣保持著相同的性能。
進一步地,在本申請的實施例中,考慮到硬體解碼器對於I幀和B幀的要求不同,本申請實施例提出的解碼方法可以僅在B幀使用,也可以在I幀和B幀都同時使用。或者,本申請實施例提出的解碼方法也可以僅在I幀上使用。亦或者,本申請實施例提出的解碼方法允許使用的條件在B幀或者I幀上不同,例如,I幀允許所有尺寸的編碼單元都允許使用本申請實施例提出的解碼方法,而B幀僅允許小尺寸的編碼單元使用本申請實施例提出的解碼方法。
進一步地,在本申請的實施例中,若當前編碼單元(當前塊)的亮度分量使用MIP預測模式,而色度分量不使用MIP預測模式且不使用傳統幀內預測模式,則色度分量的LFNST變換集可以繼承亮度分量的LFNST變換集。
進一步地,在本申請的實施例中,若當前編碼單元(當前塊)不使用傳統幀內預測模式,那麼亮色度分量的LFNST變換集均可以根據本申請實施例提出的解碼方法求解。
綜上所述,本申請實施例提出的解碼方法,涉及到使用DIMD匯出MIP預測塊映射LFNST變換集的方法,一方面,提出限制使用DIMD的編碼單元使用尺寸。對於較大尺寸的圖像塊,MIP輸出向量上採樣較多,方向資訊不明顯,因此選擇跳過DIMD匯出傳統預測模式的過程以降低計算複雜度;另一方面,提出在限制DIMD的編碼單元使用尺寸的基礎上,進一步降低計算複雜度,使用未上採樣前的MIP輸出向量作為DIMD的輸入並匯出最優傳統幀內預測模式。
本申請實施例提供了一種解碼方法,在解碼端,解碼碼流,確定預測模式參數;當預測模式參數指示使用MIP確定幀內預測值時,解碼碼流,確定當前塊的MIP參數;解碼碼流,確定當前塊的變換係數和LFNST索引序號;當LFNST索引序號指示當前塊使用LFNST時,根據MIP參數,確定LFNST變換集的映射模式;根據LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定當前塊使用的LFNST變換核;使用LFNST變換核,對變換係數進行變換處理。由此可見,在本申請的實施例中,在進行預測塊的匯出時,根據當前塊的MIP參數中的尺寸參數確定LFNST變換集的映射模式,其中,對於較大尺寸的圖像塊,可以選擇不使用DIMD匯出映射模式,能夠降低計算複雜度,從而可以提高編碼效率。
基於上述實施例,本申請實施例提出的了一種編碼方法,圖7為本申請實施例提出的編碼方法的實現流程示意圖,如圖7所示,編碼器進行編碼處理的方法可以包括以下步驟:
步驟201、確定預測模式參數。
在本申請的實施例中,編碼器可以先確定預測模式參數。
需要說明的是,在本申請的實施例中,視訊圖像可以劃分為多個圖像塊,每個當前待編碼的圖像塊可以稱為編碼塊(Coding Block,CB)。這裡,每個編碼塊可以包括第一圖像分量、第二圖像分量和第三圖像分量;而當前塊為視訊圖像中當前待進行第一圖像分量、第二圖像分量或者第三圖像分量預測的編碼塊。
其中,假定當前塊進行第一圖像分量預測,而且第一圖像分量為亮度分量,即待預測圖像分量為亮度分量,那麼當前塊也可以稱為亮度塊;或者,假定當前塊進行第二圖像分量預測,而且第二圖像分量為色度分量,即待預測圖像分量為色度分量,那麼當前塊也可以稱為色度塊。
需要說明的是,預測模式參數指示了當前塊的編碼模式及該模式相關的參數。通常可以採用率失真優化(Rate Distortion Optimization,RDO)的方式確定當前塊的預測模式參數。
示例性的,在本申請的實施例中,在確定當前塊的預測模式參數時,可以先確定當前塊的待預測圖像分量;然後基於當前塊的參數,利用多種預測模式分別對待預測圖像分量進行預測編碼,計算多種預測模式下每一種預測模式對應的率失真代價結果;最終可以從計算得到的多個率失真代價結果中選取最小率失真代價結果,並將最小率失真代價結果對應的預測模式確定為當前塊的預測模式參數。
也就是說,在本申請的實施例中,在編碼側,針對當前塊可以採用多種預測模式分別對待預測圖像分量進行編碼。這裡,多種預測模式通常包括有傳統幀內預測模式和非傳統幀內預測模式,而傳統幀內預測模式又可以包括有直流(Direct Current,DC)模式、平面(PLANAR)模式和角度模式等,非傳統幀內預測模式又可以包括有MIP模式、跨分量線性模型預測(Cross-component Linear Model Prediction,CCLM)模式、幀內塊複製(Intra Block Copy,IBC)模式和PLT(Palette)模式等。
這樣,在利用多種預測模式分別對當前塊進行編碼之後,可以得到每一種預測模式對應的率失真代價結果;然後從所得到的多個率失真代價結果中選取最小率失真代價結果,並將該最小率失真代價結果對應的預測模式確定為當前塊的預測模式參數;如此,最終可以使用所確定的預測模式對當前塊進行編碼,而且在這種預測模式下,可以使得預測殘差小,能夠提高編碼效率。
可以理解的是,在本申請的實施例中,在編碼側,可以針對當前塊進行預測編碼,在預測編碼的過程中就可以確定出當前塊的預測模式,並將相應的預測模式參數寫入碼流,從可以將預測模式參數由編碼器傳輸到解碼器。
相應的,在解碼側,通過解碼碼流可以獲取到當前塊或者當前塊所在編碼塊的亮度或色度分量的幀內預測模式,這時候可以確定出predModeIntra(幀內預測模式指示符)的取值。
進一步地,在本申請的實施例中,通過預測模式參數的獲取,可以基於預測模式參數確定在進行幀內預測時是否使用MIP確定幀內預測值。
步驟202、當預測模式參數指示使用MIP確定幀內預測值時,確定當前塊的MIP參數。
在本申請的實施例中,在確定預測模式參數之後,如果預測模式參數指示使用MIP確定幀內預測值,那麼可以繼續確定當前塊的MIP參數。
需要說明的是,在本申請的實施例中,MIP參數可以包括有MIP轉置指示參數(可以用isTransposed表示)、MIP模式索引序號(可以用modeId表示)、當前塊的大小、當前塊的類別(可以用mipSizeId表示)等參數。
也就是說,在本申請的實施例中,通過確定的MIP參數,可以對MIP轉置指示參數、MIP模式索引序號、當前塊的大小、當前塊的類別等資訊中的至少一個資訊進行指示。
進一步地,在本申請的實施例中,MIP參數可以包括有MIP轉置指示參數(可以用isTransposed表示);這裡,MIP轉置指示參數的取值用於指示是否對MIP模式使用的採樣點輸入向量進行轉置處理。
具體地,在MIP模式中,根據當前塊左側邊相鄰參考像素對應的參考採樣值和上側邊相鄰參考像素對應的參考採樣值,可以得到相鄰參考採樣集;如此,在得到相鄰參考採樣集之後,這時候可以構造一個輸入參考樣值集,即MIP模式使用的採樣點輸入向量。但是針對輸入參考樣值集的構造,在編碼側和解碼側的構造方式是有區別的,主要是和MIP轉置指示參數的取值有關。
當應用于編碼側時,仍然可以利用率失真優化的方式,確定MIP轉置指示參數的取值,具體地,可以包括:
分別計算進行轉置處理的第一代價值和不進行轉置處理的第二代價值;
如果第一代價值小於第二代價值,這時候可以確定MIP轉置指示參數的取值為1;
如果第一代價值不小於第二代價值,這時候可以確定MIP轉置指示參數的取值為0。
進一步地,當MIP轉置指示參數的取值為0時,在緩衝區內,可以將相鄰參考採樣集中上側邊對應的參考採樣值儲存在左側邊對應的參考採樣值之前,這時候不需要進行轉置處理,即不需要對MIP模式使用的採樣點輸入向量進行轉置處理,可以直接將緩衝區確定為輸入參考樣值集;當MIP轉置指示參數的取值為1時,在緩衝區內,可以將相鄰參考採樣集中上側邊對應的參考採樣值儲存在左側邊對應的參考採樣值之後,這時候對緩衝區進行轉置處理,即需要對MIP模式使用的採樣點輸入向量進行轉置處理,然後將轉置後的緩衝區確定為輸入參考樣值集。這樣,在得到輸入參考樣值集之後,可以用於MIP模式下確定當前塊對應的幀內預測值的過程。
還需要說明的是,在編碼側,在確定出MIP轉置指示參數的取值之後,還需要將所確定的MIP轉置指示參數的取值寫入碼流中,便於後續在解器側進行解碼處理。
進一步地,在本申請的實施例中,MIP參數還可以包括MIP模式索引序號(可以用modeId表示),其中,MIP模式索引序號用於指示當前塊使用的MIP模式,而MIP模式用於指示使用MIP確定當前塊的幀內預測塊的計算推導方式。也就是說,在MIP模式中,由於MIP模式又可以包括有很多種,這多種MIP模式可以通過MIP模式索引序號進行區分,即不同的MIP模式具有不同的MIP模式索引序號;這樣,根據使用MIP確定當前塊的幀內預測塊的計算推導方式,可以確定出具體的MIP模式,從而就可以得到對應的MIP模式索引序號;本申請實施例中,MIP模式索引序號的取值可以為0、1、2、3、4或5。
進一步地,在本申請的實施例中,MIP參數還可以包括當前塊的大小、寬高比等參數;其中,根據當前塊的大小(即當前塊的寬度和高度),還可以確定出當前塊的類別(可以用mipSizeId表示)。
例如,如果當前塊的寬度和高度均等於4,那麼可以將mipSizeId的取值設置為0;反之,如果當前塊的寬度和高度之一等於4,或者當前塊的寬度和高度均等於8,那麼可以將mipSizeId的取值設置為1;反之,如果當前塊為其他大小的塊,那麼可以將mipSizeId的取值設置為2。
例如,如果當前塊的寬度和高度均等於4,那麼可以將mipSizeId的取值設置為0;反之,如果當前塊的寬度和高度之一等於4,那麼可以將mipSizeId的取值設置為1;反之,如果當前塊為其他大小的塊,那麼可以將mipSizeId的取值設置為2。
這樣,在使用MIP確定幀內預測值的過程中,還可以確定出MIP參數,便於根據所確定的MIP參數來確定當前塊使用的LFNST變換核(可以用kernel表示)。
也就是說,在本申請的實施例中,MIP參數可以對當前塊的尺寸參數進行確定,其中,尺寸參數可以表徵當前塊的大小,既可以為當前塊的高度和寬度,也可以為當前塊的寬高比。
步驟203、根據MIP參數,確定當前塊的幀內預測塊,計算當前塊與幀內預測值之間的殘差塊。
在本申請的實施例中,如果預測模式參數指示使用MIP確定幀內預測值,那麼在確定當前塊的MIP參數之後,可以根據MIP參數,進一步確定當前塊的幀內預測塊,並計算當前塊與幀內預測值之間的殘差塊。
需要說明的是,在本申請的實施例中,針對MIP模式,MIP預測的輸入資料,包括有:當前塊的位置(xTbCmp,yTbCmp)、當前塊所應用的MIP預測模式(可以用modeId表示)、當前塊的高度(用nTbH表示)、當前塊的寬度(用nTbW表示)以及是否需要轉置的轉置處理指示標誌(可以用isTransposed表示)等;MIP預測的輸出資料,包括有:當前塊的預測塊,該預測塊中像素座標[x][y]所對應的幀內預測值為predSamples[x][y];其中,x=0,1,…,nTbW-1;y=0,1,…, nTbH-1。
可以理解的是,在本申請的實施例中,MIP預測過程可以分為四個步驟:配置核心參數、獲取參考像素、構造輸入採樣以及生成預測值。其中,對於配置核心參數來說,根據幀內當前塊的大小,可以將當前塊劃分為三類,用mipSizeId記錄當前塊的種類;而且不同種類的當前塊,參考採樣點數量和矩陣乘法輸出採樣點數量是不同的。對於獲取參考像素來說,預測當前塊時,這時候當前塊的上塊和左塊都是已編碼的塊,MIP技術的參考像素為當前塊的上一行像素和左一列像素的重建值,獲取當前塊的上側邊相鄰的參考像素(用refT表示)和左側邊相鄰的參考像素(用refL表示)的過程即為參考像素的獲取過程。對於構造輸入採樣來說,該步驟用於矩陣乘法的輸入,主要可以包括:獲取參考採樣、構造參考採樣緩衝區和推導矩陣乘法輸入採樣;其中,獲取參考採樣的過程為下採樣過程,而構造參考採樣緩衝區又可以包括不需要轉置時緩衝區的填充方式和需要轉置時緩衝區的填充方式。對於生成預測值來說,該步驟用於獲取當前塊的MIP預測值,主要可以包括:構造矩陣乘法輸出採樣塊、矩陣乘法輸出採樣嵌位、矩陣乘法輸出採樣轉置和生成MIP最終預測值;其中,構造矩陣乘法輸出採樣塊又可以包括獲取權重矩陣、獲取移位因數和偏移因數和矩陣乘法運算,生成MIP最終預測值又可以包括生成不需要上採樣的預測值和生成需要上採樣的預測值。這樣,在經過該四個步驟之後,可以得到當前塊的幀內預測塊。
可以理解的是,在本申請的實施例中,在確定出當前塊的幀內預測塊之後,可以根據當前塊的像素真實值與幀內預測值進行差值計算,將計算得到的差值作為殘差塊,便於後續針對殘差塊進行變換處理。
步驟204、當當前塊使用LFNST時,根據MIP參數,確定LFNST變換集的映射模式。
在本申請的實施例中,在確定當前塊使用LFNST,那麼可以進一步根據MIP參數,確定LFNST變換集的映射模式。
需要說明的是,在本申請的實施例中,並不是任意的當前塊都可以執行LFNST。在一種可能的實施例中,只有當前塊同時滿足如下條件時,才可以對當前塊進行LFNST。其中,這些條件包括:(a)當前塊的寬度和高度均大於或等於4;(b)當前塊的寬度和高度均小於或等於變換塊的最大尺寸;(c)當前塊或當前所在編碼塊的預測模式為幀內預測模式;(d)當前塊的一次變換在水準方向和垂直方向上均為二維正向一次變換(DCT2);(e)當前塊或當前塊所在編碼塊的幀內預測模式為非MIP模式或者變換塊的預測模式為MIP模式且變換塊的寬度和高度均大於或等於16。
進一步地,在確定當前塊可以執行LFNST時,這時候還需要確定當前塊使用的LFNST變換核(可以用kernel表示)。
需要說明的是,在本申請的實施例中,MIP參數可以為當前塊的尺寸參數,其中,尺寸參數可以表徵當前塊的大小,既可以為當前塊的高度和寬度,也可以為當前塊的寬高比。
也就是說,在本申請的實施例中,在進行LFNST變換集的映射模式的確定時,可以參考當前塊的尺寸參數。例如,基於當前塊的高度和寬度確定LFNST變換集的映射模式,或者,基於當前塊的寬高比確定LFNST變換集的映射模式。
進一步地,在本申請的實施例中,在根據當前塊的尺寸參數確定LFNST變換集的映射模式時,可以先判斷尺寸參數是否滿足第一預設條件,如果尺寸參數滿足第一預設條件,那麼可以將第一預設預測模式確定為LFNST變換集的映射模式;如果尺寸參數不滿足第一預設條件,那麼便使用DIMD確定LFNST變換集的映射模式。
需要說明的是,在本申請的實施例中,第一預設條件可以用於對當前塊的尺寸大小進行限定。其中,第一預設條件是與當前塊的尺寸參數相對應的。如果當前塊的尺寸參數為當前塊的高度和寬度,那麼第一預設條件可以對高度和寬度分別進行限定;如果當前塊的尺寸參數為當前塊的寬高比,那麼第一預設條件可以對寬高比進行限定。
示例性的,在本申請的實施例中,假設當前塊的尺寸參數為當前塊的高度和寬度,那麼可以設置第一預設條件為寬度大於或者等於預設寬度閾值,和/或,高度大於或者等於預設高度閾值。例如,如果當前塊的高度大於或者等於預設高度閾值,或者當前塊的寬度大於或者等於預設寬度閾值,那麼便可以確定尺寸參數滿足第一預設條件;如果當前塊的高度小於預設高度閾值,且當前塊的寬度小於預設寬度閾值,那麼可以確定尺寸參不滿足第一預設條件。
可以理解的是,在本申請的實施例中,預設寬度閾值和預設高度閾值可以為任意大於或者等於0的數值,例如,預設寬度閾值為32,預設高度閾值也為32,即如果當前塊的高度或者寬度均大於或者等於32,則可以確定當前塊滿足第一預設條件。預設寬度閾值為32,預設高度閾值也為16,即如果當前塊的高度大於或者等於32,或者當前塊的寬度大於或者等於16,則可以確定當前塊滿足第一預設條件。
可以理解的是,在本申請的實施例中,通過第一預設條件,可以對DIMD的使用進行限制,即只有在當前塊的尺寸參數不滿足第一預設條件時,才允許使用DIMD確定LFNST變換集的映射模式。
可見,本申請實施例提出的編碼方法,在確定LFNST變換集的映射模式時,可以利用第一預設條件對使用DIMD的圖像塊的尺寸進行限制,僅允許對部分圖像塊使用DIMD,從而有效降低了計算複雜度。例如,僅允許對尺寸較小的圖像塊使用DIMD確定LFNST變換集的映射模式。
進一步的,在本申請的實施例中,如果當前塊的尺寸參數滿足第一預設條件,那麼可以直接將第一預設預測模式確定為LFNST變換集的映射模式。其中,第一預設預測模式可以為PLANAR模式或DC模式。
也就是說,在本申請的實施例中,在確定LFNST變換集的映射模式時,結合第一預設條件,可以選擇對部分圖像塊直接進行映射模式的設定。例如,對尺寸較大的圖像塊,直接將PLANAR模式或DC模式確定為LFNST變換集的映射模式。
進一步地,在本申請的實施例中,在使用DIMD確定LFNST變換集的映射模式時,可以先遍歷至少一種幀內預測模式,從而確定當前塊對應的至少一個梯度資訊;接著,可以根據至少一個梯度資訊確定LFNST變換集的映射模式。其中,一種幀內預測模式對應一個梯度資訊,梯度資訊可以為梯度長條圖。
可以理解的是,在本申請的實施例中,在根據至少一個梯度資訊確定LFNST變換集的映射模式時,可以基於至少一個梯度資訊,確定每一種幀內預測模式對應的梯度幅度值;然後可以將至少一種幀內預測模式中的、梯度幅度值最大的幀內預測模式確定為LFNST變換集的映射模式。其中,一種幀內預測模式對應一個梯度幅度值。
也就是說,在本申請的實施例中,基於DIMD技術,可以選擇在解碼端使用與編碼端相同的方法匯出幀內預測模式,以節省位元開銷。其主要包括兩個步驟:第一個步驟,即匯出預測模式,在編解碼端使用同樣的預測模式強度計算方法。例如,利用索貝爾運算元統計每種預測模式下的梯度長條圖histogram of gradients,作用區域為當前塊的上方三行相鄰重建樣本、左側三列相鄰重建樣本以及左上對應相鄰重建樣本所構成的L形區域,通過計算該L形區域的梯度長條圖可以得到長條圖中幅度最大對應的第一預測模式和幅度第二大所對應的第二預測模式;第二個步驟,匯出預測塊,在編解碼端使用同樣的預測塊匯出方式得到當前預測塊。例如,判斷以下兩個條件,1.第二預測模式的梯度不為0;2.第一預測模式和第二預測模式均不為PLANAR或者DC預測模式。若上述兩個條件不同時成立,則當前預測塊僅使用第一預測模式計算當前塊的預測樣本值,即對第一預測模式應用普通預測預測過程;否則,即上述兩個條件均成立,則當前預測塊將使用加權求平均方式匯出當前預測塊。具體方法為,PLANAR模式佔據1/3的加權權重,剩下2/3由第一預測模式根據第一預測模式的梯度強度比上第一和第二預測模式的梯度強度和作為加權權重,及第二預測模式根據第二預測模式的梯度強度比上第一和第二預測模式的梯度強度和作為加權權重。將上述三種預測模式,即PLANAR、第一預測模式和第二預測模式,加權求平均得到當前編碼單元的預測塊。解碼端以同樣步驟得到預測塊。
進一步地,在本申請的實施例中,可以先根據MIP參數,確定當前塊的下採樣向量;然後根據下採樣向量進行矩陣乘法計算,獲得MIP輸出向量;再根據MIP輸出向量確定當前塊的MIP預測塊;最終對MIP預測塊遍歷至少一種幀內預測模式,獲得至少一個梯度資訊。
可以理解的是,在本申請的實施例中,可以根據當前塊的尺寸參數,對獲取得到的周邊參考重建樣本進行哈爾下採樣,採樣步長由當前塊的尺寸參數確定。其中,根據MIP轉置指示參數調整上側下採樣後的參考重建樣本與左側下採樣後的參考重建樣本拼接順序。若不需要轉置則將左側下採樣後的參考重建樣本拼接在上側下採樣後的參考重建樣本之後,將得到的向量最為輸入(下採樣向量);若需要轉置則將上側下採樣後的參考重建樣本拼接在左側下採樣後的參考重建樣本之後,將得到的向量作為輸入(下採樣向量)。
接著,可以根據遍歷的預測模式作為索引獲取MIP矩陣係數,與輸入(下採樣向量)計算得到輸出向量(MIP輸出向量)。再根據輸出向量個數與當前塊的尺寸參數,對輸出向量進行上採樣,若不需要上採樣則向量以水準方向依次填充作為當前塊的MIP預測塊輸出,若需要上採樣則先上採樣水準方向再下採樣垂直方向,上採樣至與範本尺寸相同後作為當前塊的MIP預測塊輸出。
接著,如果確定對當前塊使用DIMD,那麼便可以直接對當前塊的MIP預測塊使用DIMD方法匯出最優傳統幀內預測模式作為LFNST變換集的映射模式。即對當前塊的MIP預測塊遍歷至少一種幀內預測模式,計算至少一種幀內預測模式在當前塊的MIP預測塊上的梯度資訊,
也就是說,在本申請的實施例中,DIMD計算過程可以在MIP輸出向量上採樣之後進行。
進一步地,在本申請的實施例中,可以先根據MIP參數,確定當前塊的下採樣向量;接著根據下採樣向量進行矩陣乘法計算,獲得MIP輸出向量;最後對MIP輸出向量遍歷至少一種幀內預測模式,獲得至少一個梯度資訊。
可以理解的是,在本申請的實施例中,可以根據當前塊的尺寸參數,對獲取得到的周邊參考重建樣本進行哈爾下採樣,採樣步長由當前塊的尺寸參數確定。其中,根據MIP轉置指示參數調整上側下採樣後的參考重建樣本與左側下採樣後的參考重建樣本拼接順序。若不需要轉置則將左側下採樣後的參考重建樣本拼接在上側下採樣後的參考重建樣本之後,將得到的向量最為輸入(下採樣向量);若需要轉置則將上側下採樣後的參考重建樣本拼接在左側下採樣後的參考重建樣本之後,將得到的向量作為輸入(下採樣向量)。
接著,可以根據遍歷的預測模式作為索引獲取MIP矩陣係數,與輸入(下採樣向量)計算得到輸出向量(MIP輸出向量)。
接著,如果確定對當前塊使用DIMD,那麼便可以直接對當前塊的MIP輸出向量使用DIMD方法匯出最優傳統幀內預測模式作為LFNST變換集的映射模式。即對MIP輸出向量遍歷至少一種幀內預測模式,計算至少一種幀內預測模式在當前塊的MIP預測塊上的梯度資訊。然後再根據輸出向量(MIP輸出向量)個數與當前塊的尺寸參數,對輸出向量進行上採樣,若不需要上採樣則向量以水準方向依次填充作為當前塊的MIP預測塊輸出,若需要上採樣則先上採樣水準方向再下採樣垂直方向,上採樣至與範本尺寸相同後作為當前塊的MIP預測塊輸出。
也就是說,在本申請的實施例中,DIMD計算過程也可以在MIP輸出向量上採樣之前進行。
需要說明的是,在本申請的實施例中,在使用DIMD確定LFNST變換集的映射模式時,可以選擇遍歷所有67種幀內預測模式,獲得對應的67個梯度資訊;也可以選擇遍歷所有67種幀內預測模式中的一部分幀內預測模式,獲得對應的梯度資訊。
也就是說,在本申請的實施例中,為了進一步降低編解碼端的複雜度,對於DIMD的使用,針對67種幀內預測模式可以進行選擇性的跳過,減少遍歷的幀內預測模式的個數,例如,以步長為1進行有選擇性的篩選。
步驟205、根據LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定當前塊使用的LFNST變換核,設置LFNST索引序號並寫入視訊碼流。
在本申請的實施例中,如果當前塊使用LFNST,那麼在根據MIP參數,確定LFNST變換集的映射模式之後,可以根據LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,然後從所選擇的LFNST變換核候選集中確定當前塊使用的LFNST變換核,進而可以設置LFNST索引序號,並將LFNST索引序號寫入視訊碼流。
進一步地,在本申請的實施例中,在確定當前塊使用的LFNST變換核時,可以先確定LFNST變換集的映射模式的索引序號;然後可以根據索引序號的取值,確定LFNST幀內預測模式索引序號的取值;接著,可以根據LFNST幀內預測模式索引序號的取值,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集;最後便可以從所選擇的LFNST變換核候選集中,選擇當前塊使用的LFNST變換核,進而可以設置LFNST索引序號,並將LFNST索引序號寫入視訊碼流。
也就是說,在本申請的實施例中,在確定出LFNST變換集的映射模式之後,可以進一步確定LFNST變換集的映射模式的索引序號,然後將LFNST變換集的映射模式的索引序號的取值轉換為LFNST幀內預測模式索引序號(可以用predModeIntra表示)的取值;然後再根據predModeIntra的取值,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,以確定出變換核候選集;並且在所選擇的LFNST變換核候選集中,選擇出當前塊使用的LFNST變換核。
需要說明的是,在本申請的實施例中,在進行LFNST變換核候選集和對應的LFNST變換核的確定時,多個LFNST變換核候選集可以包括4個LFNST變換核候選集,其中,每個LFNST變換核候選集包括2個LFNST變換核;相應的,可以使用第一查閱資料表確定索引序號的取值對應的LFNST幀內預測模式索引序號的取值。
可以理解的是,在本申請的實施例中,基於第一查閱資料表,可以將DC模式、PLANAR模式或者角度預測模式和LFNST的變換集進行綁定,例如表1所示的第一查閱資料表。
需要說明的是,在本申請的實施例中,在進行LFNST變換核候選集和對應的LFNST變換核的確定時,多個LFNST變換核候選集也可以包括35個LFNST變換核候選集,其中,每個LFNST變換核候選集包括3個LFNST變換核;相應的,可以使用第二查閱資料表確定索引序號的取值對應的LFNST幀內預測模式索引序號的取值。
可以理解的是,在本申請的實施例中,基於第二查閱資料表,不同幀內預測模式對應的LFNST變換集對應就會更細細微性一些,例如圖2所示的第二查閱資料表。
需要說明的是,在本申請的實施例中,LFNST變換核可以理解為LFNST的變換矩陣,是通過訓練得到的多個固定係數矩陣。
需要說明的是,在本申請的實施例中,由於LFNST變換核候選集中包括有預設的用於MIP的兩個或多個變換核,這時候可以使用率失真優化的方式選擇當前塊使用的變換核。具體地,可以針對每一種變換核分別使用率失真優化的方式計算率失真代價(Rate Distortion Cost,RDCost),然後選取率失真代價最小的變換核作為當前塊使用的變換核。
也就是說,在編碼側,可以通過RDCost選擇出一組LFNST變換核,並將LFNST變換核對應的索引序號(可以用lfnst_idx表示)寫入視訊碼流,傳輸到解碼側。其中,當選擇LFNST變換核候選集中的第一組LFNST變換核(即第一組變換矩陣)時,將lfnst_idx設置為1;當選擇LFNST變換核候選集中的第二組LFNST變換核(即第二組變換矩陣)時,將lfnst_idx設置為2。
需要說明的是,在本申請的實施例中,LFNST索引序號的取值可以用於指示當前塊是否使用LFNST,還可以用於指示LFNST變換核在LFNST變換核候選集中的索引序號。
也就是說,在本申請的實施例中,針對LFNST索引序號(即lfnst_idx)的取值,當LFNST索引序號的取值等於0時,將不使用LFNST;而當LFNST索引序號的取值大於0時,將使用LFNST,且變換核的索引序號等於LFNST索引序號的取值、或者該LFNST索引序號的取值減1。如此,根據LFNST索引序號,可以確定出當前塊使用的LFNST變換核。
進一步地,在本申請的實施例中,MIP參數還可以包括MIP轉置指示參數,其中,MIP轉置指示參數的取值用於指示是否對MIP模式使用的採樣點輸入向量進行轉置處理。相應的,當MIP轉置指示參數的取值指示對MIP模式使用的採樣點輸入向量進行轉置處理時,可以對所選擇的變換核進行矩陣轉置處理,得到當前塊使用的LFNST變換核。
可以理解的是,在本申請的實施例中,當MIP轉置指示參數的取值等於1,可以認為MIP轉置指示參數的取值指示對MIP模式使用的採樣點輸入向量進行轉置處理時,此時便需要對所選擇的變換核進行相應的矩陣轉置處理,從而可以得到當前塊使用的LFNST變換核。
步驟206、使用LFNST變換核,對殘差塊進行變換處理。
在本申請的實施例中,在根據LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定當前塊使用的LFNST變換核之後,便可以使用LFNST變換核,即使用當前塊所選擇的變換矩陣,對殘差塊進行變換處理。
示例性的,在一種可能的實施例中,在編碼端,編碼器遍歷預測模式,若當前編碼單元(當前塊)為幀內模式,則獲取本申請實施例提出編解碼方法的允許使用標誌位元,即獲取MIP允許使用標誌位元(預測模式參數),該標誌位元可以為序列級標誌位元,用於指示當前解碼器是否允許使用MIP技術。其中,該序列級標誌位元可以表示為sps_mip_enable_flag的形式。
接著,如果MIP的允許使用標誌位元為真,則編碼端嘗試MIP的預測方法,並計算對應的率失真代價記為cost1;若MIP的允許使用標誌位元為假,則編碼端不嘗試MIP的預測方法,而是繼續遍歷其他幀內預測技術並計算對應的率失真代價記為cost2…costN。
其中,如果MIP的允許使用標誌位元為真,可以根據當前編碼單元尺寸大小的情況(當前塊的尺寸參數),對獲取得到的周邊參考重建樣本進行哈爾下採樣,採樣步長根據編碼單元尺寸確定,同時可以結合MIP轉置指示參數調整上側下採樣後的參考重建樣本與左側下採樣後的參考重建樣本拼接順序。其中,若不需要轉置則將左側下採樣後的參考重建樣本拼接在上側下採樣後的參考重建樣本之後,將得到的向量最為輸入(下採樣向量);若需要轉置則將上側下採樣後的參考重建樣本拼接在左側下採樣後的參考重建樣本之後,將得到的向量作為輸入(下採樣向量)。
接著,根據遍歷的預測模式作為索引獲取MIP矩陣係數,與輸入(下採樣向量)計算得到輸出向量(MIP輸出向量)。然後根據輸出向量個數與當前編碼單元尺寸情況,對輸出向量進行上採樣。其中,若不需要上採樣則向量以水準方向依次填充作為當前編碼單元預測塊(當前塊的MIP預測塊)輸出,若需要上採樣則先上採樣水準方向再下採樣垂直方向,上採樣至與範本尺寸相同後作為當前編碼單元預測塊(當前塊的MIP預測塊)輸出。
需要說明的是,如果當前塊的尺寸參數滿足第一預設條件,則直接將第一預設預測模式確定為LFNST變換集的映射模式,例如,如果當前編碼單元的寬和高均大於或等於32,那麼可以將PLANAR模式(第一預設預測模式)作為LFNST變換集的映射模式。如果當前塊的尺寸參數滿足第一預設條件,則可以選擇對當前MIP預測塊使用DIMD方法匯出最優傳統幀內預測模式作為LFNST變換集的映射模式。
進一步地,在使用DIMD方法匯出傳統幀內預測模式最為LFNST變換集的映射模式時,可以對當前MIP預測塊遍歷在當前VVC以及ECM中的67種幀內預測模式(或者遍歷部分幀內預測模式),計算每種幀內預測模式在當前MIP預測塊上的梯度資訊,進而基於梯度資訊確定對應的梯度幅度值,再根據梯度幅度值對所遍歷的幀內預測模式進行排序,最大幅度的幀內預測模式即為最優模式,即使用該最優模式映射當前編碼單元的LFNST變換集。
在完成LFNST變換集的映射模式的確定之後,將當前編碼單元的原始圖像塊與預測塊(當前塊的MIP預測塊)做差得到當前編碼單元(當前塊)的殘差塊,殘差塊經過主變換後得到頻域的係數塊,利用LFNST對頻域係數塊的感興趣區域做二次變換,其中LFNST的變換集的映射預測模式已通過上述方法確定。之後經過量化以及反量化和反變換等過程,計算當前編碼單元的率失真代價,記為cost1。
進一步地,可以繼續遍歷其他幀內預測技術並計算對應的率失真代價記為cost2…costN;若cost1為所有率失真代價中最小,則當前編碼單元採用MIP技術,將當前編碼單元的MIP使用標誌位元以及對應的MIP轉置標識位元(MIP轉置指示參數)都置真並寫進碼流;若cost1不為最小率失真代價,則當前編碼單元採用其他幀內預測技術,將當前編碼單元的MIP使用標誌位置假並寫進碼流;其他幀內預測技術的標識位元或索引等資訊根據定義傳輸。
示例性的,在另一種可能的實施例中,編碼器遍歷預測模式,若當前編碼單元(當前塊)為幀內模式,則獲取本申請實施例提出編解碼方法的允許使用標誌位元,即獲取MIP允許使用標誌位元(預測模式參數),該標誌位元可以為序列級標誌位元,用於指示當前解碼器是否允許使用MIP技術。其中,該序列級標誌位元可以表示為sps_mip_enable_flag的形式。
接著,如果MIP的允許使用標誌位元為真,則編碼端嘗試MIP的預測方法,並計算對應的率失真代價記為cost1;若MIP的允許使用標誌位元為假,則編碼端不嘗試MIP的預測方法,而是繼續遍歷其他幀內預測技術並計算對應的率失真代價記為cost2…costN。
其中,如果MIP的允許使用標誌位元為真,可以根據當前編碼單元尺寸大小的情況(當前塊的尺寸參數),對獲取得到的周邊參考重建樣本進行哈爾下採樣,採樣步長根據編碼單元尺寸確定,同時可以結合MIP轉置指示參數調整上側下採樣後的參考重建樣本與左側下採樣後的參考重建樣本拼接順序。其中,若不需要轉置則將左側下採樣後的參考重建樣本拼接在上側下採樣後的參考重建樣本之後,將得到的向量最為輸入(下採樣向量);若需要轉置則將上側下採樣後的參考重建樣本拼接在左側下採樣後的參考重建樣本之後,將得到的向量作為輸入(下採樣向量)。
接著,根據遍歷的預測模式作為索引獲取MIP矩陣係數,與輸入(下採樣向量)計算得到輸出向量(MIP輸出向量)。
需要說明的是,如果當前塊的尺寸參數滿足第一預設條件,則直接將第一預設預測模式確定為LFNST變換集的映射模式,例如,如果當前編碼單元的寬和高均大於或等於32,那麼可以將PLANAR模式(第一預設預測模式)作為LFNST變換集的映射模式。如果當前塊的尺寸參數滿足第一預設條件,則可以選擇對當前MIP輸出向量使用DIMD方法匯出最優傳統幀內預測模式作為LFNST變換集的映射模式。
進一步地,在使用DIMD方法匯出傳統幀內預測模式最為LFNST變換集的映射模式時,可以對當前MIP輸出向量(MIP輸出向量)在當前VVC以及ECM中的67種幀內預測模式(或者遍歷部分幀內預測模式),計算每種幀內預測模式在當前MIP輸出向量上的梯度資訊,進而基於梯度資訊確定對應的梯度幅度值,再根據梯度幅度值對所遍歷的幀內預測模式進行排序,最大幅度的幀內預測模式即為最優模式,即使用該最優模式映射當前編碼單元的LFNST變換集。
進一步地,可以根據輸出向量個數與當前編碼單元尺寸情況,對輸出向量進行上採樣。其中,若不需要上採樣則向量以水準方向依次填充作為當前編碼單元預測塊(當前塊的MIP預測塊)輸出,若需要上採樣則先上採樣水準方向再下採樣垂直方向,上採樣至與範本尺寸相同後作為當前編碼單元預測塊(當前塊的MIP預測塊)輸出。
在完成LFNST變換集的映射模式的確定之後,將當前編碼單元的原始圖像塊與預測塊(當前塊的MIP預測塊)做差得到當前編碼單元(當前塊)的殘差塊,殘差塊經過主變換後得到頻域的係數塊,利用LFNST對頻域係數塊的感興趣區域做二次變換,其中LFNST的變換集的映射預測模式已通過上述方法確定。之後經過量化以及反量化和反變換等過程,計算當前編碼單元的率失真代價,記為cost1。
進一步地,可以繼續遍歷其他幀內預測技術並計算對應的率失真代價記為cost2…costN;若cost1為所有率失真代價中最小,則當前編碼單元採用MIP技術,將當前編碼單元的MIP使用標誌位元以及對應的MIP轉置標識位元(MIP轉置指示參數)都置真並寫進碼流;若cost1不為最小率失真代價,則當前編碼單元採用其他幀內預測技術,將當前編碼單元的MIP使用標誌位置假並寫進碼流;其他幀內預測技術的標識位元或索引等資訊根據定義傳輸。
本申請實施例提出的編碼方法,降低了JVET-Z0048方案中的軟硬體複雜度,同時保持著與其相似的性能,亮度分量沒有性能變化。與ECM4.0相比,與JVET-Z0048一樣保持著相同的性能。
進一步地,在本申請的實施例中,考慮到硬體解碼器對於I幀和B幀的要求不同,本申請實施例提出的編碼方法可以僅在B幀使用,也可以在I幀和B幀都同時使用。或者,本申請實施例提出的編碼方法也可以僅在I幀上使用。亦或者,本申請實施例提出的編碼方法允許使用的條件在B幀或者I幀上不同,例如,I幀允許所有尺寸的編碼單元都允許使用本申請實施例提出的編碼方法,而B幀僅允許小尺寸的編碼單元使用本申請實施例提出的編碼方法。
進一步地,在本申請的實施例中,若當前編碼單元(當前塊)的亮度分量使用MIP預測模式,而色度分量不使用MIP預測模式且不使用傳統幀內預測模式,則色度分量的LFNST變換集可以繼承亮度分量的LFNST變換集。
進一步地,在本申請的實施例中,若當前編碼單元(當前塊)不使用傳統幀內預測模式,那麼亮色度分量的LFNST變換集均可以根據本申請實施例提出的編碼方法求解。
綜上所述,本申請實施例提出的編碼方法,涉及到使用DIMD匯出MIP預測塊映射LFNST變換集的方法,一方面,提出限制使用DIMD的編碼單元使用尺寸。對於較大尺寸的圖像塊,MIP輸出向量上採樣較多,方向資訊不明顯,因此選擇跳過DIMD匯出傳統預測模式的過程以降低計算複雜度;另一方面,提出在限制DIMD的編碼單元使用尺寸的基礎上,進一步降低計算複雜度,使用未上採樣前的MIP輸出向量作為DIMD的輸入並匯出最優傳統幀內預測模式。
本申請實施例提供了一種編碼方法,在編碼端,確定預測模式參數;當預測模式參數指示當前塊使用MIP確定幀內預測值時,確定當前塊的MIP參數;根據MIP參數,確定當前塊的幀內預測塊,計算當前塊與幀內預測值之間的殘差塊;當當前塊使用LFNST時,根據MIP參數,確定LFNST變換集的映射模式;根據LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定當前塊使用的LFNST變換核,設置LFNST索引序號並寫入視訊碼流;使用LFNST變換核,對殘差塊進行變換處理。由此可見,在本申請的實施例中,在進行預測塊的匯出時,根據當前塊的MIP參數中的尺寸參數確定LFNST變換集的映射模式,其中,對於較大尺寸的圖像塊,可以選擇不使用DIMD匯出映射模式,能夠降低計算複雜度,從而可以提高編碼效率。
基於上述實施例,在本申請的再一實施例中,基於前述實施例相同的發明構思,圖8為編碼器的組成結構示意圖一,如圖8所示,編碼器110可以包括:第一確定單元111,編碼單元112,第一變換單元113;其中,
所述第一確定單元111,配置為所述第一確定單元,配置為確定預測模式參數;當所述預測模式參數指示所述當前塊使用MIP確定幀內預測值時,確定當前塊的MIP參數;根據所述MIP參數,確定所述當前塊的幀內預測塊,計算所述當前塊與所述幀內預測值之間的殘差塊;當所述當前塊使用LFNST時,根據所述MIP參數,確定LFNST變換集的映射模式;根據所述LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定所述當前塊使用的LFNST變換核,設置LFNST索引序號;
所述編碼單元112,配置為寫入視訊碼流;
所述第一變換單元113,配置為使用所述LFNST變換核,對所述殘差塊進行變換處理。
可以理解地,在本實施例中,“單元”可以是部分電路、部分處理器、部分程式或軟體等等,當然也可以是模組,還可以是非模組化的。而且在本實施例中的各組成部分可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用軟體功能模組的形式實現。
所述集成的單元如果以軟體功能模組的形式實現並非作為獨立的產品進行銷售或使用時,可以儲存在一個電腦可讀取儲存媒介中,基於這樣的理解,本實施例的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟體產品的形式體現出來,該電腦軟體產品儲存在一個儲存媒介中,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)或processor(處理器)執行本實施例所述方法的全部或部分步驟。而前述的儲存媒介包括:U盤、移動硬碟、唯讀記憶體(Read Only Memory,ROM)、隨機存取記憶體(Random Access Memory,RAM)、磁碟或者光碟等各種可以儲存程式碼的媒介。
因此,本申請實施例提供了一種電腦可讀儲存媒介,應用於編碼器110,該電腦可讀儲存媒介儲存有電腦程式,所述電腦程式被第一處理器執行時實現前述實施例中任一項所述的方法。
基於上述編碼器110的組成以及電腦可讀儲存媒介,圖9為編碼器的組成結構示意圖二,如圖9所示,編碼器110可以包括:第一記憶體114和第一處理器115,第一通訊介面116和第一匯流排系統117。第一記憶體114、第一處理器115、第一通訊介面116通過第一匯流排系統117耦合在一起。可理解,第一匯流排系統117用於實現這些元件之間的連接通訊。第一匯流排系統117除包括資料匯流排之外,還包括電源匯流排、控制匯流排和狀態訊號匯流排。但是為了清楚說明起見,在圖9中將各種匯流排都標為第一匯流排系統117。其中,
第一通訊介面116,用於在與其他外部網元之間進行收發資訊過程中,訊號的接收和發送;
所述第一記憶體114,用於儲存能夠在所述第一處理器上運行的電腦程式;
所述第一處理器115,用於在運行所述電腦程式時,確定預測模式參數;當所述預測模式參數指示所述當前塊使用MIP確定幀內預測值時,確定當前塊的MIP參數;根據所述MIP參數,確定所述當前塊的幀內預測塊,計算所述當前塊與所述幀內預測值之間的殘差塊;當所述當前塊使用LFNST時,根據所述MIP參數,確定LFNST變換集的映射模式;根據所述LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定所述當前塊使用的LFNST變換核,設置LFNST索引序號並寫入視訊碼流;使用所述LFNST變換核,對所述殘差塊進行變換處理。
可以理解,本申請實施例中的第一記憶體114可以是易失性記憶體或非易失性記憶體,或可包括易失性和非易失性記憶體兩者。其中,非易失性記憶體可以是唯讀記憶體(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)、同步連接動態隨機存取記憶體(Synchlink DRAM,SLDRAM)和直接記憶體匯流排隨機存取記憶體(Direct Rambus RAM,DRRAM)。本申請描述的系統和方法的第一記憶體114旨在包括但不限於這些和任意其它適合類型的記憶體。
而第一處理器115可能是一種積體電路晶片,具有訊號的處理能力。在實現過程中,上述方法的各步驟可以通過第一處理器115中的硬體的集成邏輯電路或者軟體形式的指令完成。上述的第一處理器115可以是通用處理器、數位訊號處理器(Digital Signal Processor,DSP)、專用積體電路(Application Specific Integrated Circuit,ASIC)、現成可程式設計閘陣列(Field Programmable Gate Array,FPGA)或者其他可程式設計邏輯器件、分立門或者電晶體邏輯器件、分立硬體元件。可以實現或者執行本申請實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。結合本申請實施例所公開的方法的步驟可以直接體現為硬體解碼處理器執行完成,或者用解碼處理器中的硬體及軟體模組組合執行完成。軟體模組可以位於隨機記憶體,快閃記憶體、唯讀記憶體,可程式設計唯讀記憶體或者電可讀寫可程式設計記憶體、寄存器等本領域成熟的儲存媒介中。該儲存媒介位於第一記憶體114,第一處理器115讀取第一記憶體114中的資訊,結合其硬體完成上述方法的步驟。
可以理解的是,本申請描述的這些實施例可以用硬體、軟體、固件、中介軟體、微碼或其組合來實現。對於硬體實現,處理單元可以實現在一個或多個專用積體電路(Application Specific Integrated Circuits,ASIC)、數位訊號處理器(Digital Signal Processing,DSP)、數位訊號處理設備(DSP Device,DSPD)、可程式設計邏輯裝置(Programmable Logic Device,PLD)、現場可程式設計閘陣列(Field-Programmable Gate Array,FPGA)、通用處理器、控制器、微控制器、微處理器、用於執行本申請所述功能的其它電子單元或其組合中。對於軟體實現,可通過執行本申請所述功能的模組(例如過程、函數等)來實現本申請所述的技術。軟體代碼可儲存在記憶體中並通過處理器執行。記憶體可以在處理器中或在處理器外部實現。
可選地,作為另一個實施例,第一處理器115還配置為在運行所述電腦程式時,執行前述實施例中任一項所述的方法。
圖10為解碼器的組成結構示意圖一,如圖10所示,解碼器120可以包括:第二確定單元121,第二變換單元122;其中,
所述第二確定單元121,配置為解碼碼流,確定預測模式參數;當所述預測模式參數指示使用MIP確定幀內預測值時,解碼碼流,確定當前塊的MIP參數;解碼碼流,確定所述當前塊的變換係數和LFNST索引序號;當所述LFNST索引序號指示所述當前塊使用LFNST時,根據所述MIP參數,確定LFNST變換集的映射模式;根據所述LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定所述當前塊使用的LFNST變換核;
所述第二變換單元122,配置為使用所述LFNST變換核,對所述變換係數進行變換處理。
可以理解地,在本實施例中,“單元”可以是部分電路、部分處理器、部分程式或軟體等等,當然也可以是模組,還可以是非模組化的。而且在本實施例中的各組成部分可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用軟體功能模組的形式實現。
所述集成的單元如果以軟體功能模組的形式實現並非作為獨立的產品進行銷售或使用時,可以儲存在一個電腦可讀取儲存媒介中,基於這樣的理解,本實施例的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟體產品的形式體現出來,該電腦軟體產品儲存在一個儲存媒介中,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)或processor(處理器)執行本實施例所述方法的全部或部分步驟。而前述的儲存媒介包括:U盤、移動硬碟、唯讀記憶體(Read Only Memory,ROM)、隨機存取記憶體(Random Access Memory,RAM)、磁碟或者光碟等各種可以儲存程式碼的媒介。
因此,本申請實施例提供了一種電腦可讀儲存媒介,應用於解碼器120,該電腦可讀儲存媒介儲存有電腦程式,所述電腦程式被第一處理器執行時實現前述實施例中任一項所述的方法。
基於上述解碼器120的組成以及電腦可讀儲存媒介,圖11為解碼器的組成結構示意圖二,如圖11所示,解碼器120可以包括:第二記憶體123和第二處理器124,第二通訊介面125和第二匯流排系統126。第二記憶體123和第二處理器124,第二通訊介面125通過第二匯流排系統126耦合在一起。可理解,第二匯流排系統126用於實現這些元件之間的連接通訊。第二匯流排系統126除包括資料匯流排之外,還包括電源匯流排、控制匯流排和狀態訊號匯流排。但是為了清楚說明起見,在圖11中將各種匯流排都標為第二匯流排系統126。其中,
第二通訊介面125,用於在與其他外部網元之間進行收發資訊過程中,訊號的接收和發送;
所述第二記憶體123,用於儲存能夠在所述第二處理器上運行的電腦程式;
所述第二處理器124,用於在運行所述電腦程式時,解碼碼流,確定預測模式參數;
當所述預測模式參數指示使用MIP確定幀內預測值時,解碼碼流,確定當前塊的MIP參數;解碼碼流,確定所述當前塊的變換係數和LFNST索引序號;當所述LFNST索引序號指示所述當前塊使用LFNST時,根據所述MIP參數,確定LFNST變換集的映射模式;根據所述LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定所述當前塊使用的LFNST變換核;使用所述LFNST變換核,對所述變換係數進行變換處理。
可以理解,本申請實施例中的第二記憶體123可以是易失性記憶體或非易失性記憶體,或可包括易失性和非易失性記憶體兩者。其中,非易失性記憶體可以是唯讀記憶體(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)、同步連接動態隨機存取記憶體(Synchlink DRAM,SLDRAM)和直接記憶體匯流排隨機存取記憶體(Direct Rambus RAM,DRRAM)。本申請描述的系統和方法的第二記憶體123旨在包括但不限於這些和任意其它適合類型的記憶體。
而第二處理器124可能是一種積體電路晶片,具有訊號的處理能力。在實現過程中,上述方法的各步驟可以通過第二處理器124中的硬體的集成邏輯電路或者軟體形式的指令完成。上述的第二處理器124可以是通用處理器、數位訊號處理器(Digital Signal Processor,DSP)、專用積體電路(Application Specific Integrated Circuit,ASIC)、現成可程式設計閘陣列(Field Programmable Gate Array,FPGA)或者其他可程式設計邏輯器件、分立門或者電晶體邏輯器件、分立硬體元件。可以實現或者執行本申請實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。結合本申請實施例所公開的方法的步驟可以直接體現為硬體解碼處理器執行完成,或者用解碼處理器中的硬體及軟體模組組合執行完成。軟體模組可以位於隨機記憶體,快閃記憶體、唯讀記憶體,可程式設計唯讀記憶體或者電可讀寫可程式設計記憶體、寄存器等本領域成熟的儲存媒介中。該儲存媒介位於第二記憶體123,第二處理器124讀取第二記憶體123中的資訊,結合其硬體完成上述方法的步驟。
可以理解的是,本申請描述的這些實施例可以用硬體、軟體、固件、中介軟體、微碼或其組合來實現。對於硬體實現,處理單元可以實現在一個或多個專用積體電路(Application Specific Integrated Circuits,ASIC)、數位訊號處理器(Digital Signal Processing,DSP)、數位訊號處理設備(DSP Device,DSPD)、可程式設計邏輯裝置(Programmable Logic Device,PLD)、現場可程式設計閘陣列(Field-Programmable Gate Array,FPGA)、通用處理器、控制器、微控制器、微處理器、用於執行本申請所述功能的其它電子單元或其組合中。對於軟體實現,可通過執行本申請所述功能的模組(例如過程、函數等)來實現本申請所述的技術。軟體代碼可儲存在記憶體中並通過處理器執行。記憶體可以在處理器中或在處理器外部實現。
本申請實施例提供了一種編碼器和解碼器,在進行預測塊的匯出時,根據當前塊的MIP參數中的尺寸參數確定LFNST變換集的映射模式,其中,對於較大尺寸的圖像塊,可以選擇不使用DIMD匯出映射模式,能夠降低計算複雜度,從而可以提高編碼效率。
需要說明的是,在本申請的實施例中,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
上述本申請實施例序號僅僅為了描述,不代表實施例的優劣。
本申請所提供的幾個方法實施例中所揭露的方法,在不衝突的情況下可以任意組合,得到新的方法實施例。
本申請所提供的幾個產品實施例中所揭露的特徵,在不衝突的情況下可以任意組合,得到新的產品實施例。
本申請所提供的幾個方法或設備實施例中所揭露的特徵,在不衝突的情況下可以任意組合,得到新的方法實施例或設備實施例。
以上所述,僅為本申請的具體實施方式,但本申請的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本申請揭露的技術範圍內,可輕易想到變化或替換,都應涵蓋在本申請的保護範圍之內。因此,本申請的保護範圍應以申請專利範圍的保護範圍為准。
10:視訊編碼系統
100:編碼器
101:變換與量化單元
102:幀內估計單元
103:幀內預測單元
104:運動補償單元
105:運動估計單元
106:反變換與反量化單元
107:濾波器控制分析單元
108:濾波單元
109:編碼單元
110:解碼圖像緩存單元
111:第一確定單元
112:編碼單元
113:第一變換單元
114:第一記憶體
115:第一處理器
116:第一通訊介面
117:第一匯流排系統
120:解碼器
121:第二確定單元
122:第二變換單元
123:第二記憶體
124:第二處理器
125:第二通訊介面
126:第二匯流排系統
20:視訊解碼系統
201:解碼單元
202:反變換與反量化單元
203:幀內預測單元
204:運動補償單元
205:濾波單元
206:解碼圖像緩存單元
S101~S106:步驟
S201~S206:步驟
圖1為基於矩陣的幀內預測技術的示意圖;
圖2為幀內預測模式與變換集的對應表;
圖3為解碼端幀內模式匯出技術的示意圖;
圖4為本申請實施例提供的一種視訊編碼系統的組成框圖;
圖5為本申請實施例提供的一種視訊解碼系統的組成框圖;
圖6為本申請實施例提出的解碼方法的實現流程示意圖;
圖7為本申請實施例提出的編碼方法的實現流程示意圖;
圖8為編碼器的組成結構示意圖一;
圖9為編碼器的組成結構示意圖二;
圖10為解碼器的組成結構示意圖一;
圖11為解碼器的組成結構示意圖二。
S101~S106:步驟
Claims (31)
- 一種解碼方法,應用於解碼器,所述方法包括: 解碼碼流,確定預測模式參數; 當所述預測模式參數指示使用基於矩陣的幀內預測(MIP)確定幀內預測值時,解碼碼流,確定當前塊的MIP參數; 解碼碼流,確定所述當前塊的變換係數和低頻不可分離二次變換(LFNST)索引序號; 當所述LFNST索引序號指示所述當前塊使用LFNST時,根據所述MIP參數,確定LFNST變換集的映射模式; 根據所述LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定所述當前塊使用的LFNST變換核; 使用所述LFNST變換核,對所述變換係數進行變換處理。
- 根據請求項1所述的方法,其中,所述MIP參數包括所述當前塊的尺寸參數,所述方法還包括: 若所述尺寸參數滿足第一預設條件,則將第一預設預測模式確定為所述LFNST變換集的映射模式; 若所述尺寸參數不滿足第一預設條件,則使用解碼端幀內模式匯出(DIMD)確定所述LFNST變換集的映射模式。
- 根據請求項2所述的方法,其中,所述方法還包括: 遍歷至少一種幀內預測模式,確定所述當前塊對應的至少一個梯度資訊; 根據所述至少一個梯度資訊確定所述LFNST變換集的映射模式。
- 根據請求項3所述的方法,其中,所述方法還包括: 基於所述至少一個梯度資訊,確定每一種幀內預測模式對應的梯度幅度值; 將所述至少一種幀內預測模式中的、梯度幅度值最大的幀內預測模式確定為所述LFNST變換集的映射模式。
- 根據請求項3或4所述的方法,其中,所述方法還包括: 根據所述MIP參數,確定所述當前塊的下採樣向量; 根據所述下採樣向量進行矩陣乘法計算,獲得MIP輸出向量; 根據所述MIP輸出向量確定所述當前塊的MIP預測塊; 對所述MIP預測塊遍歷所述至少一種幀內預測模式,獲得所述至少一個梯度資訊。
- 根據請求項3或4所述的方法,其中,所述方法還包括: 根據所述MIP參數,確定所述當前塊的下採樣向量; 根據所述下採樣向量進行矩陣乘法計算,獲得MIP輸出向量; 對所述MIP輸出向量遍歷所述至少一種幀內預測模式,獲得所述至少一個梯度資訊。
- 根據請求項2所述的方法,其中,所述尺寸參數包括所述當前塊的高度和寬度,所述方法還包括: 若所述當前塊的高度大於或者等於預設高度閾值,和/或,所述當前塊的寬度大於或者等於預設寬度閾值,則確定所述尺寸參數滿足所述第一預設條件; 若所述當前塊的高度小於預設高度閾值,和/或,所述當前塊的寬度小於預設寬度閾值,則確定所述尺寸參不滿足所述第一預設條件。
- 根據請求項2或7所述的方法,其中,所述第一預設預測模式為PLANAR模式或DC模式。
- 根據請求項2所述的方法,其中,所述方法還包括: 確定所述LFNST變換集的映射模式的索引序號; 根據所述索引序號的取值,確定LFNST幀內預測模式索引序號的取值; 根據所述LFNST幀內預測模式索引序號的取值,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集; 從所選擇的LFNST變換核候選集中,選擇所述LFNST索引序號指示的變換核,設置為所述當前塊使用的LFNST變換核。
- 根據請求項9所述的方法,其中, 所述多個LFNST變換核候選集包括4個LFNST變換核候選集,其中,每個LFNST變換核候選集包括2個LFNST變換核;相應的, 使用第一查閱資料表確定所述索引序號的取值對應的所述LFNST幀內預測模式索引序號的取值。
- 根據請求項9所述的方法,其中,所述方法還包括: 所述多個LFNST變換核候選集包括35個LFNST變換核候選集,其中,每個LFNST變換核候選集包括3個LFNST變換核;相應的, 使用第二查閱資料表確定所述索引序號的取值對應的所述LFNST幀內預測模式索引序號的取值。
- 根據請求項10或11所述的方法,其中,所述MIP參數包括MIP轉置指示參數,所述MIP轉置指示參數的取值用於指示是否對MIP模式使用的採樣點輸入向量進行轉置處理。
- 根據請求項12所述的方法,其中,所述方法還包括: 當所述MIP轉置指示參數的取值指示對MIP模式使用的採樣點輸入向量進行轉置處理時,對所述LFNST索引序號指示的變換核進行矩陣轉置處理,得到所述當前塊使用的LFNST變換核。
- 一種編碼方法,應用於編碼器,所述方法包括: 確定預測模式參數; 當所述預測模式參數指示所述當前塊使用MIP確定幀內預測值時,確定當前塊的MIP參數; 根據所述MIP參數,確定所述當前塊的幀內預測塊,計算所述當前塊與所述幀內預測值之間的殘差塊; 當所述當前塊使用LFNST時,根據所述MIP參數,確定LFNST變換集的映射模式; 根據所述LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定所述當前塊使用的LFNST變換核,設置LFNST索引序號並寫入視訊碼流; 使用所述LFNST變換核,對所述殘差塊進行變換處理。
- 根據請求項14所述的方法,其中,所述MIP參數包括所述當前塊的尺寸參數,所述方法還包括: 若所述尺寸參數滿足第一預設條件,則將第一預設預測模式確定為所述LFNST變換集的映射模式; 若所述尺寸參數不滿足第一預設條件,則使用DIMD確定所述LFNST變換集的映射模式。
- 根據請求項15所述的方法,其中,所述方法還包括: 遍歷至少一種幀內預測模式,確定所述當前塊對應的至少一個梯度資訊; 根據所述至少一個梯度資訊確定所述LFNST變換集的映射模式。
- 根據請求項16所述的方法,其中,所述方法還包括: 基於所述至少一個梯度資訊,確定每一種幀內預測模式對應的梯度幅度值; 將所述至少一種幀內預測模式中的、梯度幅度值最大的幀內預測模式確定為所述LFNST變換集的映射模式。
- 根據請求項16或17所述的方法,其中,所述方法還包括: 根據所述MIP參數,確定所述當前塊的下採樣向量; 根據所述下採樣向量進行矩陣乘法計算,獲得MIP輸出向量; 根據所述MIP輸出向量確定所述當前塊的MIP預測塊; 對所述MIP預測塊遍歷所述至少一種幀內預測模式,獲得所述至少一個梯度資訊。
- 根據請求項16或17所述的方法,其中,所述方法還包括: 根據所述MIP參數,確定所述當前塊的下採樣向量; 根據所述下採樣向量進行矩陣乘法計算,獲得MIP輸出向量; 對所述MIP輸出向量遍歷所述至少一種幀內預測模式,獲得所述至少一個梯度資訊。
- 根據請求項15所述的方法,其中,所述尺寸參數包括所述當前塊的高度和寬度,所述方法還包括: 若所述當前塊的高度大於或者等於預設高度閾值,和/或,所述當前塊的寬度大於或者等於預設寬度閾值,則確定所述尺寸參數滿足所述第一預設條件; 若所述當前塊的高度小於預設高度閾值,和/或,所述當前塊的寬度小於預設寬度閾值,則確定所述尺寸參不滿足所述第一預設條件。
- 根據請求項15或19所述的方法,其中,所述第一預設預測模式為PLANAR模式或DC模式。
- 根據請求項15所述的方法,其中,所述方法還包括: 確定所述LFNST變換集的映射模式的索引序號; 根據所述索引序號的取值,確定LFNST幀內預測模式索引序號的取值; 根據所述LFNST幀內預測模式索引序號的取值,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集; 從所選擇的LFNST變換核候選集中,選擇所述當前塊使用的變換核。
- 根據請求項22所述的方法,其中, 所述多個LFNST變換核候選集包括4個LFNST變換核候選集,其中,每個LFNST變換核候選集包括2個LFNST變換核;相應的, 使用第一查閱資料表 確定所述索引序號的取值對應的所述LFNST幀內預測模式索引序號的取值。
- 根據請求項22所述的方法,其中,所述方法還包括: 所述多個LFNST變換核候選集包括35個LFNST變換核候選集,其中,每個LFNST變換核候選集包括3個LFNST變換核;相應的, 使用第二查閱資料表 確定所述索引序號的取值對應的所述LFNST幀內預測模式索引序號的取值。
- 根據請求項23或24所述的方法,其中,所述MIP參數包括MIP轉置指示參數,所述MIP轉置指示參數的取值用於指示是否對MIP模式使用的採樣點輸入向量進行轉置處理。
- 根據請求項23所述的方法,其中,所述方法還包括: 當所述MIP轉置指示參數的取值指示對MIP模式使用的採樣點輸入向量進行轉置處理時,對所選擇的變換核進行矩陣轉置處理,得到所述當前塊使用的LFNST變換核。
- 一種編碼器,所述編碼器包括第一確定單元,編碼單元,第一變換單元;其中, 所述第一確定單元,配置為確定預測模式參數;當所述預測模式參數指示所述當前塊使用MIP確定幀內預測值時,確定當前塊的MIP參數;根據所述MIP參數,確定所述當前塊的幀內預測塊,計算所述當前塊與所述幀內預測值之間的殘差塊;當所述當前塊使用LFNST時,根據所述MIP參數,確定LFNST變換集的映射模式;根據所述LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定所述當前塊使用的LFNST變換核,設置LFNST索引序號; 所述編碼單元,配置為寫入視訊碼流; 所述第一變換單元,配置為使用所述LFNST變換核,對所述殘差塊進行變換處理。
- 一種編碼器,所述編碼器包括第一記憶體和第一處理器;其中, 所述第一記憶體,用於儲存能夠在所述第一處理器上運行的電腦程式; 所述第一處理器,用於在運行所述電腦程式時,執行如請求項14至26任一項所述的方法。
- 一種解碼器,所述解碼器包括第二確定單元,第二變換單元;其中, 所述第二確定單元,配置為解碼碼流,確定預測模式參數;當所述預測模式參數指示使用MIP確定幀內預測值時,解碼碼流,確定當前塊的MIP參數;解碼碼流,確定所述當前塊的變換係數和LFNST索引序號;當所述LFNST索引序號指示所述當前塊使用LFNST時,根據所述MIP參數,確定LFNST變換集的映射模式;根據所述LFNST變換集的映射模式,從多個LFNST變換核候選集中選擇一個LFNST變換核候選集,並從所選擇的LFNST變換核候選集中確定所述當前塊使用的LFNST變換核; 所述第二變換單元,配置為使用所述LFNST變換核,對所述變換係數進行變換處理。
- 一種解碼器,所述解碼器包括第二記憶體和第二處理器;其中, 所述第二記憶體,用於儲存能夠在所述第二處理器上運行的電腦程式; 所述第二處理器,用於在運行所述電腦程式時,執行如請求項1至13任一項所述的方法。
- 一種電腦可讀儲存媒介,所述電腦可讀儲存媒介儲存有電腦程式,所述電腦程式被執行時實現如請求項1至13任一項所述的方法、或者實現如請求項14至26任一項所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/103686 WO2024007120A1 (zh) | 2022-07-04 | 2022-07-04 | 编解码方法、编码器、解码器以及存储介质 |
WOPCT/CN2022/103686 | 2022-07-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202404361A true TW202404361A (zh) | 2024-01-16 |
Family
ID=89454679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112124177A TW202404361A (zh) | 2022-07-04 | 2023-06-28 | 編解碼方法、編碼器、解碼器以及儲存媒介 |
Country Status (2)
Country | Link |
---|---|
TW (1) | TW202404361A (zh) |
WO (1) | WO2024007120A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR112021020758A2 (pt) * | 2019-04-16 | 2021-12-14 | Lg Electronics Inc | Codificação de imagem usando índice de transformada |
CN113826395B (zh) * | 2019-04-16 | 2023-06-30 | Lg电子株式会社 | 图像编码中基于矩阵的帧内预测的变换 |
KR20210136157A (ko) * | 2019-05-08 | 2021-11-16 | 엘지전자 주식회사 | Mip 및 lfnst를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 |
CN114830664A (zh) * | 2019-12-30 | 2022-07-29 | Oppo广东移动通信有限公司 | 变换方法、编码器、解码器以及存储介质 |
CN114830663A (zh) * | 2019-12-31 | 2022-07-29 | Oppo广东移动通信有限公司 | 变换方法、编码器、解码器以及存储介质 |
JP2023509951A (ja) * | 2020-01-08 | 2023-03-10 | オッポ広東移動通信有限公司 | 符号化方法、復号化方法、符号器、復号器及び記憶媒体 |
CN114556943B (zh) * | 2020-04-03 | 2024-08-23 | Oppo广东移动通信有限公司 | 变换方法、编码器、解码器以及存储介质 |
-
2022
- 2022-07-04 WO PCT/CN2022/103686 patent/WO2024007120A1/zh unknown
-
2023
- 2023-06-28 TW TW112124177A patent/TW202404361A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024007120A1 (zh) | 2024-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7277616B2 (ja) | ビデオ・データを処理する方法、装置及び記憶媒体 | |
US11843781B2 (en) | Encoding method, decoding method, and decoder | |
WO2022087901A1 (zh) | 图像预测方法、编码器、解码器以及计算机存储介质 | |
US11477465B2 (en) | Colour component prediction method, encoder, decoder, and storage medium | |
MX2012013263A (es) | Metodos y aparatos para intracodificar un bloque que tiene pixeles asignados a grupos. | |
WO2021134635A1 (zh) | 变换方法、编码器、解码器以及存储介质 | |
WO2021238396A1 (zh) | 帧间预测方法、编码器、解码器以及计算机存储介质 | |
WO2021258841A1 (zh) | 帧间预测方法、编码器、解码器以及计算机存储介质 | |
CA3222255A1 (en) | Decoding prediction method and apparatus, and computer storage medium | |
WO2021134327A1 (zh) | 变换方法、编码器、解码器以及存储介质 | |
WO2022266971A1 (zh) | 编解码方法、编码器、解码器以及计算机存储介质 | |
WO2024007120A1 (zh) | 编解码方法、编码器、解码器以及存储介质 | |
WO2022227082A1 (zh) | 块划分方法、编码器、解码器以及计算机存储介质 | |
WO2021134303A1 (zh) | 变换方法、编码器、解码器以及存储介质 | |
KR20230111256A (ko) | 비디오 인코딩 및 디코딩 방법과 시스템, 비디오 인코더및 비디오 디코더 | |
WO2023141970A1 (zh) | 解码方法、编码方法、解码器、编码器和编解码系统 | |
CN114424544A (zh) | 允许基于矩阵的帧内预测块具有多个变换块 | |
WO2023193254A1 (zh) | 解码方法、编码方法、解码器以及编码器 | |
WO2023070505A1 (zh) | 帧内预测方法、解码器、编码器及编解码系统 | |
WO2023197195A1 (zh) | 视频编解码方法、编码器、解码器及存储介质 | |
WO2023193253A1 (zh) | 解码方法、编码方法、解码器以及编码器 | |
WO2024007116A1 (zh) | 解码方法、编码方法、解码器以及编码器 | |
WO2023184747A1 (zh) | 视频编解码方法、装置、设备、系统及存储介质 | |
WO2024077553A1 (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
WO2024183007A1 (zh) | 视频编解码方法、装置、设备、系统、及存储介质 |