H.265视频编码与技术全析(下)
H.265視頻編碼與技術(shù)全析(下)
四.幀內(nèi)預(yù)測(cè)模式
共35個(gè)(h264有9個(gè)),包括Planar,DC,33個(gè)方向模式:
除了Intra_Angular預(yù)測(cè)外,HEVC還和H.264/MPEG-4 AVC一樣,支持Intra_Planar, Intra_DC預(yù)測(cè)模式;
. Intra_DC 使用參考像素的均值進(jìn)行預(yù)測(cè);
. Intra_Planar 使用四個(gè)角的參考像素得到的兩個(gè)線性預(yù)測(cè)的均值;
劃分模式:幀內(nèi)只能使用PART_2Nx2N、PART_NxN兩種
五、幀間預(yù)測(cè)
Skipped模式:無MV差異和殘差信息的幀間預(yù)測(cè)模式
針對(duì)運(yùn)動(dòng)向量預(yù)測(cè),H.265有兩個(gè)參考表:L0和L1。每一個(gè)都擁有16個(gè)參照項(xiàng),但是唯一圖片的最大數(shù)量是8。H.265運(yùn)動(dòng)估計(jì)要比H.264更加復(fù)雜。它使用列表索引,有兩個(gè)主要的預(yù)測(cè)模式:合并和高級(jí)運(yùn)動(dòng)向量(Merge and Advanced MV.)。
- 運(yùn)動(dòng)估計(jì)準(zhǔn)則
最小均方誤差(Mean Square Error,MSE)
最小平均絕對(duì)誤差(Mean Absolute Difference,MAD)
最大匹配像素?cái)?shù)(Matching-Pixel Count,MPC)
絕對(duì)誤差和(Sum Of Absolute Difference,SAD)
最小變換域絕對(duì)誤差和(Sum Of Absolute Transformed Difference,SATD)
一般用SAD或者SATD。SAD不含乘除法,且便于硬件實(shí)現(xiàn),因而使用最廣泛。實(shí)際中,在SAD基礎(chǔ)上還進(jìn)行了別的運(yùn)算來保證失真率。
- 搜索算法
·
dia 菱形
· hex (default) 六邊形
· umh 可變半徑六邊形搜索(非對(duì)稱十字六邊形網(wǎng)絡(luò)搜索)
· star 星型
· full 全搜索
全搜索:
所有可能的位置都計(jì)算兩個(gè)塊的匹配誤差,相當(dāng)于原塊在搜索窗口內(nèi)一個(gè)像素一個(gè)像素點(diǎn)的移動(dòng)匹配
菱形搜索: 在x265中實(shí)際是十字搜索,僅對(duì)菱形對(duì)角線十字上的塊進(jìn)行搜索
HM的則是全搜索和TZSearch以及對(duì)TZSearch的優(yōu)化的搜索。
- MV預(yù)測(cè)
HEVC在預(yù)測(cè)方面提出了兩種新的技術(shù)–Merge &&
AMVP (Advanced Motion Vector Prediction)都使用了空域和時(shí)域MV預(yù)測(cè)的思想,通過建立候選MV列表,選取性能最優(yōu)的一個(gè)作為當(dāng)前PU的預(yù)測(cè)MV,二者的區(qū)別:
·
Merge可以看成一種編碼模式,在該模式下,當(dāng)前PU的MV直接由空域或時(shí)域上臨近的PU預(yù)測(cè)得到,不存在MVD;而AMVP可以看成一種MV預(yù)測(cè)技術(shù),編碼器只需要對(duì)實(shí)際MV與預(yù)測(cè)MV的差值進(jìn)行編碼,因此是存在MVD的。
· 二者候選MV列表長(zhǎng)度不同,構(gòu)建候選MV列表的方式也有所區(qū)別
Merge
當(dāng)前塊的運(yùn)動(dòng)信息可以通過相鄰塊的PUs運(yùn)動(dòng)信息推導(dǎo)出來,只需要傳輸合并索引,合并標(biāo)記,不需要傳輸運(yùn)動(dòng)信息。
空間合并候選:從5個(gè)不同位置候選中選擇4個(gè)合并候選
圖中便是5個(gè)PU,但是標(biāo)準(zhǔn)規(guī)定最多四個(gè),則列表按照A1–>B1–>B0–>A0–>(B2)的順序建立,B2為替補(bǔ),即當(dāng)其他有一個(gè)或者多個(gè)不存在時(shí),需要使用B2的運(yùn)動(dòng)信息。
時(shí)間合并候選:從2個(gè)候選中選擇1個(gè)合并候選
從C3、H中選擇一個(gè):
AMVP
構(gòu)造一個(gè)時(shí)空PUs的運(yùn)動(dòng)矢量候選列表,當(dāng)前PU遍歷候選列表,通過SAD選擇最優(yōu)預(yù)測(cè)運(yùn)動(dòng)矢量。
空間運(yùn)動(dòng)矢量候選:從5個(gè)位置中左側(cè)、上側(cè)分別選1個(gè)共2個(gè)候選
而AMVP的選擇順序,左側(cè)為A0–>A1–>scaled
A0–>scaledA1,其中scaled A0表示將A0的MV進(jìn)行比例伸縮。
上方為B0–>B1–B2–>(scaled B0–>scaled B1–>scaled
B2)。
然而,x265并不在乎標(biāo)準(zhǔn),我們要的就是速度,所以在x265的代碼中,只能看到它使用AMVP且對(duì)應(yīng)的變量是
且對(duì)左側(cè)和上側(cè)分別if-else,選出兩個(gè)。
時(shí)間運(yùn)動(dòng)矢量候選:從2個(gè)不同位置候選中選擇1個(gè)候選
C0(右下) represents the bottom right neighbor and
C1(中心) represents the center block.
Skip vs Merge:
分?jǐn)?shù)像素內(nèi)插:
用于產(chǎn)生非整數(shù)采樣位置像素值的預(yù)測(cè)樣本。
六、量化變換
七、其它
熵編碼
目前HEVC規(guī)定只使用CABAC算術(shù)編碼。
去塊效應(yīng)濾波器
消除反量化和反變換后由于預(yù)測(cè)誤差產(chǎn)生的塊效應(yīng),即塊邊緣處的像素值跳變。
自適應(yīng)樣點(diǎn)補(bǔ)償
通過對(duì)重建圖像進(jìn)行分類,對(duì)每一類圖像像素值進(jìn)行加減1,從而達(dá)到減少失真,提高壓縮率,減少碼流的作用。
目前自適應(yīng)樣點(diǎn)補(bǔ)償分為帶狀補(bǔ)償,邊緣補(bǔ)償:
-
帶狀補(bǔ)償,按像素值強(qiáng)度劃分為不同的等級(jí),一共32個(gè)等級(jí),按像素值排序,位于中間的16個(gè)等級(jí)進(jìn)行補(bǔ)償,將補(bǔ)償信息寫進(jìn)碼流,其余16個(gè)等級(jí)不進(jìn)行補(bǔ)償,減少碼流。
-
邊緣補(bǔ)償,選擇不同的模板,確定當(dāng)前像素類型,如局部最大,局部最小,或者圖像邊緣。
Wavefront Parallel
Processing (WPP)
WPP的并行技術(shù)是以一行LCU塊為單位進(jìn)行的,但是不完全截?cái)郘CU行之間的關(guān)系,如下圖,Thread1的第二個(gè)塊的CABAC狀態(tài)保存下來,用于Thread2的起始CABAC狀態(tài),依次類推進(jìn)行并行編碼或解碼,因此行與行之間存在很大的依賴關(guān)系。通常該方法的壓縮性高于tiles。
總結(jié)
以上是生活随笔為你收集整理的H.265视频编码与技术全析(下)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: H.265视频编码与技术全析(上)
- 下一篇: 芯片内亿万的晶体管制程工艺