久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

視頻編解碼學(xué)習(xí)之二:編解碼框架

 liluvu 2013-10-15

第四章 視頻編碼基礎(chǔ)

1. 壓縮碼流

  • 語法:碼流中各個(gè)元素的位置關(guān)系
    • 01001001…
    • 圖像編碼類型(01),,宏塊類型(00),,編碼系數(shù)1001等
  • 語義:每個(gè)語法元素所表達(dá)的意義。
    • 例如:圖像編碼類型

2. 編碼層次

  • 序列(Sequence)
  • 圖像組(Group of Pictures,,GOP)
  • 圖像(Picture)
  • 條帶(Slice)
  • 宏塊(Macroblock,,MB)
  • 塊(Block)

3. 碼流結(jié)構(gòu)

3. PB幀編碼

4. 序列編碼對象

(1)IBBP序列

  • 序列:一段連續(xù)編碼的并具有相同參數(shù)的視頻圖像。
  • 序列起始碼:專有的一段比特串,,標(biāo)識一個(gè)序列的壓縮數(shù)據(jù)的開始
    • MPEG-2的序列起始碼為十六進(jìn)制數(shù)000001(B3),。
  • 序列頭:記錄序列信息
    • 檔次(Profile),級別(Level),,寬度,,高度,是否是逐行序列,,幀率等,。
  • 序列結(jié)束碼:專有的一段比特串,標(biāo)識該序列的壓縮數(shù)據(jù)的結(jié)束
    • MPEG-2的序列結(jié)束碼為十六進(jìn)制數(shù)000001(B7),。

5. 圖像組編碼對象

6. 圖像編碼結(jié)構(gòu)

  • 圖像:
  • 圖像起始碼:專有的一段比特串,,標(biāo)識一個(gè)圖像的壓縮數(shù)據(jù)的開始
    • MPEG-2的圖像起始碼為十六進(jìn)制數(shù)000001(00)。
  • 圖像頭:記錄圖像信息
    • 圖像編碼類型,,圖像距離,,圖像編碼結(jié)構(gòu),圖像是否為逐行掃描,。

7. 圖像分塊編碼

8. 條帶編碼結(jié)構(gòu)

  • 條帶:多個(gè)宏塊的組合,。
  • 條帶起始碼:專有的一段比特串,標(biāo)識一個(gè)條帶的壓縮數(shù)據(jù)的開始
    • MPEG-2的條帶起始碼為十六進(jìn)制數(shù)000001(0~AF),。
  • 條帶頭:記錄當(dāng)前圖像的相關(guān)信息
    • 條帶位置,,條帶量化參數(shù),宏塊編碼技術(shù)標(biāo)識等,。

9. 條帶編碼對象

10. 宏塊編碼結(jié)構(gòu)

  • 宏塊:16x16的像素塊(對亮度而言),。
  • 宏塊內(nèi)容:宏塊編碼類型,編碼模式,參考幀索引,,運(yùn)動矢量信息,,宏塊編碼系數(shù)等。

11. 宏塊編碼對象

12. 塊編碼結(jié)構(gòu)

  • 8x8或4x4塊的變換量化系數(shù)的熵編碼數(shù)據(jù),。
  • CBP (Coded Block Patten):用來指示塊的變換量化系數(shù)是否全為零,。
    • 對于YUV(4:2:0)編碼,CBP通常6比特長,,每個(gè)比特對應(yīng)一個(gè)塊,,當(dāng)某一塊的變換量化系數(shù)全為零時(shí),其對應(yīng)比特位值為0,,否則為1,。
  • 每個(gè)塊的變換量化系數(shù)的最后用一個(gè)EOB (End of Block)符號來標(biāo)識。

13. 視頻編解碼關(guān)鍵技術(shù)

  • 預(yù)測:通過幀內(nèi)預(yù)測和幀間預(yù)測降低視頻圖像的空間冗余和時(shí)間冗余,。
  • 變換:通過從時(shí)域到頻域的變換,去除相鄰數(shù)據(jù)之間的相關(guān)性,,即去除空間冗余,。
  • 量化:通過用更粗糙的數(shù)據(jù)表示精細(xì)的數(shù)據(jù)來降低編碼的數(shù)據(jù)量,或者通過去除人眼不敏感的信息來降低編碼數(shù)據(jù)量,。
  • 掃描:將二維變換量化數(shù)據(jù)重新組織成一維的數(shù)據(jù)序列,。
  • 熵編碼:根據(jù)待編碼數(shù)據(jù)的概率特性減少編碼冗余。

14. 預(yù)測

  • 空間預(yù)測:利用圖像空間相鄰像素的相關(guān)性來預(yù)測的方法,。
    • 幀內(nèi)預(yù)測技術(shù):利用當(dāng)前編碼塊周圍已經(jīng)重構(gòu)出來的像素預(yù)測當(dāng)前塊
    • Intra圖像編碼(I幀)
  • 時(shí)間預(yù)測:利用時(shí)間上相鄰圖像的相關(guān)性來預(yù)測的方法,。
    • 幀間預(yù)測:運(yùn)動估計(jì)(Motion Estimation,ME),,運(yùn)動補(bǔ)償(Motion Compensation,,MC)
    • Inter圖像編碼:前向預(yù)測編碼圖像(P幀),雙向預(yù)測編碼圖像(B幀)

15. 幀內(nèi)預(yù)測

  • I幀圖像的每個(gè)宏塊都采用幀內(nèi)(Intra)預(yù)測編碼模式,。
  • 宏塊分成8x8或者4x4塊,,對每個(gè)塊采用幀內(nèi)預(yù)測編碼,稱作Intra8x8或者Intra4x4,。
  • 幀內(nèi)預(yù)測有多個(gè)預(yù)測方向:水平,,垂直,左下,,右上,。
  • 幀內(nèi)預(yù)測還有直流(DC)預(yù)測。
  • 色度塊預(yù)測還有平面預(yù)測,。

16. 幀間預(yù)測

  • 塊基運(yùn)動估計(jì):為待預(yù)測塊在參考幀上找到最佳的預(yù)測塊,,并記錄預(yù)測塊在參考幀上的相對位置。
  • 運(yùn)動矢量(MV):參考幀上的預(yù)測塊與當(dāng)前幀上的的待預(yù)測塊的相對位置。
    • MV有兩個(gè)分量:(x,,y)

  • 分像素運(yùn)動估計(jì)
    • 最佳的預(yù)測塊不在整像素位置,,而在分像素位置;
    • 1/2,,1/4,,1/8像素插值得到分像素值。

  • 幀間預(yù)測流程:

  • 運(yùn)動補(bǔ)償:給定MV和參考幀,,為待解碼塊從參考幀上獲取預(yù)測塊,。
  • 運(yùn)動矢量編碼
    • MV預(yù)測:用當(dāng)前塊的周圍可得到鄰塊的運(yùn)動矢量來預(yù)測當(dāng)前塊的運(yùn)動矢量
    • 運(yùn)動矢量差(MV difference,MVD):實(shí)際運(yùn)動矢量與預(yù)測運(yùn)動矢量的差,,即:
    • 運(yùn)動矢量差采用變長編碼,。

17. 預(yù)測殘差

18. 變換編碼

  • 變換編碼:通過變換將空域信號轉(zhuǎn)換為頻域信號來去除空間信號的冗余信息,減少編碼數(shù)據(jù),。
  • 二維離散余弦變換
    • 4x4變換,,8x8變換

  • 二維離散余弦變換

例:

  • 變換系數(shù):直流(DC)系數(shù),交流(AC)系數(shù)

19. 量化

  • 量化原理:將含有大量的數(shù)據(jù)集合映射到含有少量的數(shù)據(jù)集合中,。

  • 一般情況下量化后高頻部分包含大量的零系數(shù)

  • 量化對主觀質(zhì)量的影響

20. 掃描

  • 掃描:將二維數(shù)據(jù)轉(zhuǎn)換為一維的數(shù)據(jù)序列,。

21. 熵編碼

  • 熵編碼:根據(jù)符號出現(xiàn)的概率,對經(jīng)常出現(xiàn)的符號分配較短的碼字,,對不常出現(xiàn)的符號分配較長的碼字,。
  • Level-Run編碼:用數(shù)據(jù)中非零值和其前面非零值之間出現(xiàn)零值的個(gè)數(shù)重新描述量化系數(shù)序列為(Level,Run)二元組序列

  • 變長編碼
    • 將Level-Run編碼后的(level,,run)變長編碼成最終的比特串,。

22. 碼率控制

  • 受到緩沖區(qū),帶寬的限制,,編碼碼率不能無限制的增長,,因此需要通過碼率控制來將編碼碼流控制在目標(biāo)碼率范圍內(nèi)。
  • 一般通過調(diào)整量化參數(shù)的手段控制碼率
    • 幀級控制
    • 條帶級控制
    • 宏塊級控制
  • 碼率控制考慮的問題
    • 防止碼流有較大的波動,,導(dǎo)致緩沖區(qū)發(fā)生溢出,,
    • 同時(shí)保持緩沖區(qū)盡可能的充滿,讓圖像質(zhì)量盡可能的好而且穩(wěn)定
  • CBR(Constant Bit Rate)
    • 比特率穩(wěn)定,,但圖像質(zhì)量變化大
  • VBR(Variable Bit Rate)
    • 比特率波動大,,但圖像質(zhì)量穩(wěn)定
  • 碼率控制算法
    • 碼率分配
    • 碼率控制
  • 碼率控制屬于非標(biāo)準(zhǔn)技術(shù)
    • 編碼端有,解碼端沒有

第5章 預(yù)測

1. 預(yù)測技術(shù)

  • 目的:去除空間冗余和時(shí)間冗余,。
  • 視頻存在大量的空間冗余和時(shí)間冗余
    • 空間冗余:用幀內(nèi)預(yù)測編碼去除
      • 基于塊的幀內(nèi)預(yù)測
    • 時(shí)間冗余:用幀間預(yù)測編碼去除
      • 基于塊匹配(Block Matching)的幀間預(yù)測
  • 預(yù)測后得到去除大部分空間或時(shí)間冗余的殘差

2. 空間冗余

  • 圖像空間相鄰像素具有很強(qiáng)的相關(guān)性,。
  • 幀內(nèi)預(yù)測技術(shù)去除空間冗余

3. 亮度預(yù)測模式

4. 色度預(yù)測模式

5. 時(shí)間冗余

  • 視頻圖像在時(shí)間上有較強(qiáng)的相關(guān)性,即存在時(shí)間冗余
  • 去除時(shí)間冗余的編碼技術(shù)
    • 運(yùn)動估計(jì)(Motion Estimation,,ME)
      • 為待編碼塊搜索最相似的預(yù)測塊
      • 記錄運(yùn)動矢量(Motion Vector,,MV)
      • 記錄預(yù)測殘差:
    • 運(yùn)動補(bǔ)償(Motion Compensation,MC)
      • 根據(jù)運(yùn)動矢量獲取預(yù)測塊
      • 根據(jù)預(yù)測殘差計(jì)算重構(gòu)塊:

6. 運(yùn)動模型

(1)平移

7. 匹配準(zhǔn)則

8. 匹配準(zhǔn)則簡化

  • 簡化技術(shù)方法
    • 分別計(jì)算當(dāng)前塊和預(yù)測塊的象素值和
    • 根據(jù)簡化形式,比較當(dāng)前塊和預(yù)測塊
    • 如果用簡化準(zhǔn)則對預(yù)測塊和當(dāng)前塊比較的結(jié)果比以前最好的結(jié)果差,,可以確定預(yù)測效果不好,,不必對預(yù)測塊再進(jìn)行比較。

9. 運(yùn)動估計(jì)

  • 去除視頻圖像的時(shí)間冗余
  • 運(yùn)動估計(jì)在搜索范圍內(nèi)為當(dāng)前塊尋找匹配最好的預(yù)測塊
  • 全搜索方式的運(yùn)動估計(jì)計(jì)算復(fù)雜度高

10. 全搜索復(fù)雜度分析

  • 圖像大?。篗xM
  • 預(yù)測塊大?。篘xN
  • 搜索范圍:(-R,R)
  • 每個(gè)搜索點(diǎn)象素比較個(gè)數(shù):N2
  • 搜索點(diǎn)個(gè)數(shù)(2R+1)2
  • 在搜索范圍內(nèi)的象素比較個(gè)數(shù)總和N2(2R+1)2
  • 一幀圖像所有塊的全搜索象素比較個(gè)數(shù)總和N2(2R+1)2(M/N)2=(2R+1)2M2
  • 例:M=512,,N=4,,R=8,幀率:30幀/秒

    (2R+1)2M2

    =172X5122

    = 75759616次/幀

    = 75759616x30次/秒

    =2272788480次/秒

    采用SSD匹配準(zhǔn)則:每次象素比較需1個(gè)減法,,1個(gè)乘法,,1個(gè)加法,則上述全搜索計(jì)算每秒需要2272788480x2次加減法和2272788480次乘法操作,。

11. 快速運(yùn)動估計(jì)

  • 在保持預(yù)測精度的同時(shí)減少運(yùn)動估計(jì)的搜索次數(shù),。
    • 三步搜索(Three Step Search,TSS)
    • 二維Log搜索(2D Logarithmic Search,,2DLOG)
    • 正交搜索(Orthogonal Search Algorithm,,OSA)
    • 十字搜索(Cross Search Algorithm,CSA)
    • 新三步搜索(New Three Step Search,,NTSS)
    • 四步搜索(Four Step Search,,F(xiàn)SS)
    • 共軛方向搜索(Conjugate Direction Search,,CDS)
    • 梯度下降搜索(Gradient Descent Search,,GDS)
    • 層次塊搜索(Hierarchical Block Matching Algorithm,HBMA)

12. 三步搜索

  • 由粗到精搜索最優(yōu)點(diǎn),,初始步長為R/2.
  • 第一步:檢查起始點(diǎn)和其周圍步長為R/2的8個(gè)點(diǎn),,將最優(yōu)點(diǎn)作為第二步的起始點(diǎn);
  • 第二步:以新的起始點(diǎn)為中心檢查其周圍步長為R/4的8個(gè)點(diǎn),,找到最優(yōu)點(diǎn)作為第三步的起始點(diǎn),;
  • 第三步:以新的起始點(diǎn)為中心檢查其周圍步長為R/8的8個(gè)點(diǎn),找到最優(yōu)點(diǎn),,如果R/8=1則搜索終止,,最優(yōu)點(diǎn)位置的預(yù)測塊作為最優(yōu)的預(yù)測塊,否則重復(fù)該過程直到R/n2=1,;
  • 三步搜索方法檢查點(diǎn)的個(gè)數(shù)為1+8log2(d+1),,當(dāng)d=8時(shí),檢查點(diǎn)個(gè)數(shù)為9+8+8=25

13. 二維Log搜索

  • 每一步采用十字搜索模式
  • 如果每一步的最優(yōu)點(diǎn)為中心點(diǎn)或者搜索窗的邊界點(diǎn),,搜索步長減半,,否則搜索步長不變
  • 當(dāng)搜索步長為1時(shí),中心點(diǎn)周圍的8個(gè)點(diǎn)都要檢查
  • 兩個(gè)搜索路徑一個(gè)需要5+3+3+8=19,另外一個(gè)需要5+3+2+3+2+8=23

14. 正交搜索

  • 起始搜索步長R/2,,從起始點(diǎn)開始水平搜索三個(gè)點(diǎn),,得到最優(yōu)點(diǎn)并沿著最優(yōu)點(diǎn)垂直方向搜索相鄰的兩個(gè)點(diǎn),得到最優(yōu)點(diǎn),,以搜索步長為R/4再以同樣的方式先水平再垂直搜索,,當(dāng)步長為1時(shí)停止搜索
  • 搜索方法檢查點(diǎn)的個(gè)數(shù)為1+4log2(d+1),當(dāng)d=8時(shí),,檢查點(diǎn)個(gè)數(shù)為3+2+2+2+2+2=13,。

 

15. 十字搜索

  • 起始搜索步長R/2,從起始點(diǎn)開始以"X"形十字搜索,,當(dāng)搜索步長降為1時(shí),,如果上一步的最優(yōu)點(diǎn)為中心點(diǎn),左上點(diǎn)或右下點(diǎn),,則這一步搜索以"+"形狀十字搜索,,然后結(jié)束搜索,否則還是以"X"形十字搜索,,然后結(jié)束搜索,。
  • 十字搜索方法檢查點(diǎn)的個(gè)數(shù)為1+4log22d,當(dāng)d=8時(shí),,檢查點(diǎn)個(gè)數(shù)為5+4+4+4=17

16. 新三步搜索

  • 與三步搜索方法不同的是,,考慮到運(yùn)動矢量高的中心分布特點(diǎn),新三步搜索方法,,除了圍繞起始點(diǎn)為中心搜索步長為R/2的8個(gè)點(diǎn)之外,,在起始點(diǎn)周圍增加了步長為1的8個(gè)搜索點(diǎn),如果最優(yōu)點(diǎn)為步長為1的8個(gè)搜索點(diǎn)之一,,則在最優(yōu)點(diǎn)鄰近的三個(gè)點(diǎn)中搜索最優(yōu)點(diǎn),,然后結(jié)束搜索,否則,,和三步搜索方法過程一樣
  • 其中一個(gè)搜索路徑需要檢查點(diǎn)個(gè)數(shù)為17+3=20,,另一個(gè)需要17+8+8=33。

 

17. 塊梯度下降搜索

  • 該方法以起始點(diǎn)為中心搜索8個(gè)步長為1的相鄰點(diǎn),,確定最優(yōu)點(diǎn),,再以最優(yōu)點(diǎn)為中心搜索8個(gè)步長為1的相鄰點(diǎn),如此循環(huán)下去,,不限制搜索步驟,,但當(dāng)搜索得到的最優(yōu)點(diǎn)為中心點(diǎn)或者到搜索窗的邊界,搜索終止,。

18. 層次塊搜索

  • 對編碼圖像和參考圖像下采樣,,分別得到編碼圖像和參考圖像的下采樣圖像,,未經(jīng)采樣處理的編碼圖像和參考圖像屬于第0層,一次下采樣的編碼圖像和參考圖像屬于第1層,,對第1層圖像再進(jìn)行下采樣得到的編碼圖像和參考圖像屬于第2層,,依次重復(fù)上述過程,得到第n層下采樣的編碼圖像和參考圖像,。
  • 然后在n層下采樣參考圖像的搜索范圍中找到與下采樣編碼圖像塊最佳匹配塊的MV,,該MV作為n-1層的運(yùn)動估計(jì)搜索范圍的中心點(diǎn),依次重復(fù)上述過程,,直到n=0為止,,此時(shí)得到的最佳匹配塊就是編碼圖像的預(yù)測塊,其對應(yīng)的MV為最終的最優(yōu)MV,。

19. 搜索算法復(fù)雜度比較

20 . 分像素運(yùn)動估計(jì)與運(yùn)動補(bǔ)償

  • 時(shí)域運(yùn)動位置更可能在整象素之間,,即分像素上。
  • 利用相鄰的整象素可以估計(jì)出分象素的值
    • 常用線性或雙線性插值得到分象素的值,。
  • 分象素運(yùn)動估計(jì)有更高的預(yù)測精度,,但復(fù)雜度也更高,
    • 1/2分象素運(yùn)動估計(jì),,圖像存儲空間增加4倍,,運(yùn)動矢量需要放大2倍,1/4分象素運(yùn)動估計(jì),,圖像存儲空間增加16倍,,運(yùn)動矢量需要放大4倍,計(jì)算復(fù)雜度也成倍增加,。

 

21. 分像素插值

 

22. 多參考幀預(yù)測

  • 有更多的候選圖像,,搜索更精確的預(yù)測塊
  • 需要更多的參考圖像存儲空間
  • 碼流需要標(biāo)識參考幀索引的語法元素

 

23. 圖像分塊編碼

  • 視頻內(nèi)容的運(yùn)動非常復(fù)雜,圖像分塊編碼可以更好的提高運(yùn)動預(yù)測精度,,提高壓縮效率,。
  • 要在編碼塊大小和附信息(MV,,Mode)編碼比特?cái)?shù)之間權(quán)衡,,小的編碼塊大小會有更好的預(yù)測但有更多的附信息比特?cái)?shù)。

23. 雙向預(yù)測編碼

24. B幀有更好的編碼效率

  • B幀有更好的編碼效率
    • 新出現(xiàn)的對象參考將來的幀有更好的預(yù)測效果
    • 前后兩個(gè)預(yù)測的平均值可以減少預(yù)測方差

25. 全局運(yùn)動估計(jì)

  • 基于全局仿射運(yùn)動模型
  • 預(yù)測精度不如基于塊的運(yùn)動估計(jì)
  • MV數(shù)目少,,適合簡單運(yùn)動場景的運(yùn)動估計(jì)

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多