HEVC原理 率失真優化

2021-09-11 06:45:24 字數 3662 閱讀 5586

二、編碼器的率失真優化的工作主要是按照某種策略選取最優的編碼引數,以實現最優的編碼效能

三、率失真函式rd 是在假定信源在給定的情況下,在使用者可以容忍的失真度內再現資料訊息所必需獲得的最小平均互信資訊,直白一點說,就是在允許的失真內,資料可以壓縮的極限!我們對資料的壓縮不能超過這個極限,否則,資料在解碼端就不能再現了!因此我們的工作就是,在不超過這個極限的前提下,盡量使資料壓縮得更小!

五、率失真優化在編碼器中不同層次(ctu級、cu級、pu級、tu級等)的運用。附:ctu可以劃分成為cu、cu在**的時候被劃分成為pu、cu在變換量化的時候被劃分成為tu

1、在ctu級的應用。在總位元數r受限的情況下選擇乙個cu(cu從8x8到64x64)的劃分模式,使得乙個ctu的總失真d最小。

2、在cu級的應用。在總位元數r受限的情況下,適當的選擇選擇pu劃分模式和tu(tu從4x4到32x32)劃分模式,使得乙個cu的總失真d最小。

3、在pu級的應用。對於幀內**,就是從35中幀內模式中選出最優的一種,使得pu的失真d最小;對於幀間**,選出最優的運動模式(包括運動向量、參考影象、**權值等)使得pu的失真d最小

4、在tu級的應用。在最優的pu的模式下,選取最優的tu模式。

六、hm實際的優化方式

1、對於ctu。

(1)遍歷所有的cu劃分模式,確定最優的cu劃分模式

(2)對於確定的cu,遍歷所有的pu模式和tu模式的組合,確定最優的pu模式和tu模式

(3)對於其中的每乙個pu,遍歷所有的**模式,選取最優的**模式

2、對於變換。採用hadamard變換代替實際的dct/sdt變換。

3、其他快速的策略

(1)提前終止策略(early_cu)

如果當前cu的最優編碼模式是mode_skip模式,那麼終止該cu後續四叉樹劃分和模式判決

(2)早期跳出模式(early_skip)

如果cu的pu劃分模式是part_2nx2n,**模式是mode_inter,運動向量差mvd是(0,0),且**殘差不包含非零變換係數(就是變換係數全是0),就判定當前模式是最優模式,跳過剩餘的模式,直接進行下一步的四叉樹分割及子cu模式判決。

(3)快速cbf策略(cbf_fast)

如果cu的**模式是mode_inter,其對應的**殘差不包含非零的變換係數,就跳過該cu的其餘候選模式,當前模式為最優模式,且直接進行下一步的四叉樹分割

(4)縮減amp模式

依據兩個引數來判斷是否縮減當前amp模式。具體是利用在進行amp模式判決當前的最優分割模式,以及父親節點cu內採用的分割模式和**模式,來確定候選編碼中可使用的amp模式。

七、率失真優化全流程

1、分層遞迴遍歷所有的cu劃分模式,選取最優的cu劃分模式,這個過程稱為cu劃分模式判別

2、對於其中的每乙個cu,遍歷所有的pu模式,選取最優的pu模式,並在此基礎上選擇最優的tu模式

3、對於其中的每乙個pu,遍歷所有的**模式,選取最優的**模式,這個過程稱為**模式判別

(1)幀內**模式。

①遍歷所有的**模式,得到每種模式下的殘差訊號,再對殘差訊號進行hadamard變換計算satd值

②利用satd值計算每種**模式的率失真代價,選取率失真代價最小的幾種模式(與pu大小相關)為**模式集

③將已編碼相鄰塊的**模式補充到**模式集中

④遍歷模式集合中的所有模式,並對殘差訊號進行正常編碼(熵編碼),計算率失真代價

⑤選取最優的**模式作為該pu的最優模式

⑥當亮度塊的模式確定之後,把該模式以及dc、planar、水平方向模式、垂直方向模式作為色度塊的候選模式,選取最優的模式即可

(2)幀間**模式。

hevc採用了merge和amvp技術,更加高效地表示幀間**引數,但是這兩種方式有比較大的區別,因此幀間**可以分成merge幀間**模式和非merge幀間**模式(採用amvp技術),分別選取最優的merge幀間**模式和非merge幀間**模式,然後從中選取最優的模式。

對於merge幀間**模式,遍歷所有的候選模式,計算率失真代價,選擇率失真代價最小的模式為最優模式。當採用merge幀間**模式i按摩,且**殘差訊號的編碼位元數為零時,只需要編碼skip標識和merge索引兩個語法元素,此時該模式稱為mode_skip模式

對於非merge幀間**模式(採用amvp技術)

①根據amvp技術確定mvp列表,計算每個mvp的率失真代價,得到最優的mvp

②以最優mvp為起始點,進行整畫素運動**,得到最優的整畫素運動向量

③以整畫素運動向量為中心,進行半畫素搜尋,從周圍的8個點確定最優的半畫素精度運動向量

④以半畫素精度向量為中心,進行1/4畫素精度的運動搜尋,確定最優的1/4畫素精度運動向量

(3)pu模式判別

①計算2nx2n模式的率失真代價,將其作為最優代價,如果**殘差的編碼位元數為零,那麼滿足cbf_fast,直接跳至⑪,並將2nx2n作為最優的pu模式

②如果cu的深度已經取得最大值,且inter_4x4_enabled_flag是1,那麼執行③,否則執行④

③計算nxn模式的率失真,更新最優代價和模式,如果**殘差的編碼位元數為零,那麼滿足cbf_fast,直接跳至⑪,並將nxn作為最優的pu模式

④計算nx2n模式的率失真代價,更新最優代價和模式,如果**殘差的編碼位元數為零,那麼滿足cbf_fast,直接跳至⑪,並將nx2n作為最優的pu模式

⑤計算2nxn模式的率失真代價,更新最優代價和模式,如果**殘差的編碼位元數為零,那麼滿足cbf_fast,直接跳至⑪,並將2nxn作為最優的pu模式

⑥如果testamp_hor為1,當前cu執行水平方向上的amp模式,否則執行本步驟。計算2nxnu模式的率失真代價,更新最優代價和模式,如果**殘差的編碼位元數為零,那麼滿足cbf_fast,直接跳至⑪,並將2nxnu作為最優的pu模式;否則計算2nxnd模式的率失真代價,更新最優的代價和模式,如果**殘差的編碼位元數為零,那麼滿足cbf_fast,直接跳至⑪,並將2nnd作為最優的pu模式

⑦如果testamp_ver為1,當前cu執行垂直方向上的amp模式,否則執行本步驟。計算nlx2n模式的率失真代價,更新最優模式和代價,如果**殘差的編碼位元數為零,那麼滿足cbf_fast,直接跳至⑪,並將nlx2n作為最優的pu模式;否則計算nrx2n模式的率失真代價,更新最優模式和代價,如果**殘差的編碼位元數為零,那麼滿足cbf_fast,直接跳至⑪,並將nrx2n作為最優的pu模式

⑧注意上面的都是幀間的模式,現在需要計算幀內2nx2n模式的率失真代價,更新最優模式和代價

⑨如果當前cu深度為最大值,計算幀內nxn模式的率失真代價,更新最優模式和代價

⑩如果當前cu大於或等於pcm模式所允許的最小單元,並且代價大於pcm模式,那麼更新最優模式和代價

⑪結束搜尋,得到最優的pu模式。注意對於每一種pu模式,都要夯實不同的tu劃分,選取最優的tu模式,因此最優的pu模式包含了最優的tu模式

(4)cu劃分模式判決

①把ctu作為cu,計算率失真代價(最優pu模式時),此時應包含cu分割標誌(split_flag)的編碼位元數

②對cu進行四叉樹劃分,計算每個子cu的最小率失真代價,並對所有子cu的率失真代價求和,得到該cu的率失真代價

③為每個子cu作為cu重複②

④重複③直到編碼的最大深度

⑤從最大的編碼深度,比較4個子cu與cu的率失真代價,一次選出最優的劃分方式。

⑥碎語每個cu,如果其幀間2nx2n模式為mode_skip,則滿足early_skip條件,直接結束該cu的進一步劃分

4、結束!

HEVC率失真優化

基於率失真理論的編碼引數優化方法就是率失真優化。其目的是權衡位元速率與失真,為編碼器選擇最優引數。實際應用中,常採用平均誤差 sse 均方誤差 mse 絕對誤差和 sad 以及峰值訊雜比 psnr 等客觀質量評估標準作為失真測度。假設d為失真,r為位元速率,率失真優化可以轉化為乙個拉格朗日優化問題 ...

HEVC率失真優化量化硬體實現策略

hevc率失真優化量化硬體實現 1.基於硬體實現的率失真優化量化位元速率控制是實現量化控制的乙個重要模組,它確定乙個模組的量化步長,在特定編碼失真約束下控制編碼輸出位元速率。確定量化引數後,就考慮如何量化。通過hdq給出量化結果,然後考慮係數間的資料依賴,同時考慮編碼位元速率消耗和編碼失真,實現係數...

h 264 率失真優化

搜尋時,乙個不可避免的問題就是如何對mv進行比較,從而得到最優 對於同一壓縮演算法來說,位元速率越高表示影象質量越好 失真越小,但是位元速率越高要求更大的儲存空間,也會增加網路傳輸的壓力。因此在位元速率與失真中找出平衡點,使壓縮效果最優,這種方法叫做r d optimization 位元速率失真優化...