H 266中幀內相關理解糾正

2021-08-17 10:58:58 字數 836 閱讀 4517

之前對幀內的一部分理解有很多誤區,記錄下剛糾正過來的知識點(慢慢更新):

1.xintracodingtubloc函式裡沒有熵編碼過程,這個函式的主要功能是重構影象,以用於下一幀影象的**,同時還會傳出失真,用於計算rd cost;

2.執行完xintracodingtubloc後,有乙個計算位元數的函式,而此位元數指的是編碼殘差係數的位元數,不包括其他;此位元數和xintracodingtubloc函式傳出的失真計算乙個rd cost,去選擇是否跳過變換和是否使用ccp技術;

3.在xrecurintrachromacodingqt函式後,也有乙個計算位元數的函式,此時的位元數就包括編碼幀內的頭資訊(**資訊等各種flag),殘差係數和cbf等(所有還是大部分需要熵編碼資訊?)。此位元數和xrecurintrachromacodingqt函式傳出的失真計算乙個rd cost去選擇最優的幀內**模式;

4.對於qtbt劃分來說,對於幀間,在二叉樹劃分時會限制有二叉樹劃分成四叉樹的冗餘,幾個例子,如果對當前乙個2n*2n的塊進行垂直劃分,然後對其左塊水平劃分,如果此時對其右塊也進行水平劃分,則此時劃分得到的和四叉樹得到的劃分一致,所以在幀間中,會限制右塊的水平劃分,而在幀內沒有此限制,即在幀內劃分中,可能會由二叉樹劃分得到和四叉樹劃分一致的形狀。

5.在編碼和解碼端,在重建完影象後對重建影象有乙個使用雙邊濾波器的過程,此過程只應用於亮度分量,雙邊濾波屬於環路濾波的第一步,後面還有去方塊濾波,樣點自適應補償和alf。

6.在色度**中,對於每種**模式,先對cb分量執行**,重建等步驟,再對cr分量執行**,重建等步驟。對兩個分量都執行完後,會計算總的失真和位元速率,參與不同**模式之間的rd cost的比較。所以,這樣能保證cb,cr的**模式是相同的。

H 266中的多核變換

在hevc標準中基本上僅僅使用dct2作為變換核,只在幀內4 4的塊的亮度分量使用了dst變換,而h.266的多核變換技術引入了更多的選擇,新引入了dst7,dct8,dct5,dst1,目前僅僅幀間保留了dct8和dst7,幀內全部存在,由於266不存在tu的概念,即cu pu tu那麼就出現了非...

H 266的目前探索的情況

h.266的編碼框架目前還是跟265相同,變換 量化 反量化 反變換 濾波 熵編碼,基本相似,都是在這個框架上增加或者優化原有的技術,最大的變化可能是劃分框架變了,不在是原來的四叉樹劃分,變為了四叉樹二叉樹 聯發科提出 劃分,之後有人也提出三叉樹劃分,效能提公升較大,但是複雜度太大,沒被採納,對於單...

H 266的目前探索的情況

h.266的編碼框架目前還是跟265相同,變換 量化 反量化 反變換 濾波 熵編碼,基本相似,都是在這個框架上增加或者優化原有的技術,最大的變化可能是劃分框架變了,不在是原來的四叉樹劃分,變為了四叉樹二叉樹 聯發科提出 劃分,之後有人也提出三叉樹劃分,效能提公升較大,但是複雜度太大,沒被採納,對於單...