网站链接: ngui
当前位置: 首页 > 学习教程  > 编程语言

H.264图解

2020/11/22 5:48:11 人评论 文章标签: 图解h

http://vod.cs.nthu.edu.tw/~yyma/NTHU_VC_H264/H_264_Technique_Introduction.php 流程 離散餘弦轉換 量化 運動向量補償 in-loop濾波器 位元率-誤差模組 熵編碼 畫面內預測 畫面間預測 流程 離散餘弦轉換 整數轉換避免數值誤差 量化 利用所謂 quantizat…

http://vod.cs.nthu.edu.tw/~yyma/NTHU_VC_H264/H_264_Technique_Introduction.php

  流程   離散餘弦轉換   量化   運動向量補償   in-loop濾波器   位元率-誤差模組  

熵編碼   畫面內預測   畫面間預測  

 

  流程

  1.jpg

 離散餘弦轉換

整數轉換避免數值誤差

2.jpg

 

 量化

利用所謂 quantization parameter (QP)值來達到純量量化的效果

共有52種QP值

QP值每增加1會增加約12%的位元率

故約增加6個QP會達到兩倍

QSTEP = 2(QP-4)/6

QSTEP就代表位元率的增長

 

 運動向量補償

multiple reference

採用七種不同的macro block大小來做運動向量的估計

4.jpg

 

variable block size

可參考前後5張FRAME

5.jpg

 

fractional pixel 

利用內插法達到1/2,1/4的精準度動作向量估計

3.jpg

 in-loop濾波器

 避免編碼時區塊化的效應

在編碼流程中加入去區塊化濾波器

有別於編碼後再加入的濾波動作

可以達到更有效率的編碼

img1.jpg

 位元率-誤差模組

 針對之編碼模式:

INTRA 4X4, INTRA 16X16, INTER 16X16, INTER 16X8, INTER 8X16,

INTER 8X8, INTER 8X4, INTER 4X8, INTER 4X4, SKIP and DIRECT.

利用拉格蘭日乘數法達到最佳位元分配

 7.jpg

 熵編碼

 

利用exp-Golomb code編碼所有的 syntax elements

利用Context-Adaptive Variable Length Coding (CAVLC) 或

Context-Adaptive Binary Arithmetic Coding (CABAC) 編碼

quantized transform coefficients

 

exp-Golomb code 

8.jpg

 

CAVLC

針對非零個數,以及其值和位置獨立作編碼

以例子來作說明

 

7, 6, -2, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0 ,0 ,0.

第一步 # of nonzero coefficients (N) and Trailing T1s

計算非零值和所謂的 “Trailing T1s

T1s = 2, N = 5,

這兩個數字以組合的事件壓縮,從四個VLC表中,根據相鄰區塊的係數找一個使用

 

第二步 Encoding the value of Coefficients

對非零係數作編碼, T1s只需記錄正負號

非零係數以反序記錄 -26, …

並利用不同的VLC表達到適應式編碼

六個 exp-Golomb code 表可供使用

 

第三步 Sign Information

傳送正負號

T1s使用一個位元表示

其餘係數之正負號則包含在 exp-Golomb codes 之中

 

第四步 TotalZeroes

傳送從最後一個非零數值到開始之間的的零值個數

    TotalZeroes = 3

N=5意味著所有非零值介於 0-11,

有15個表可供選擇來編碼

N=16 表示沒有非零值

 

第五步 RunBefore

    記錄上一步的零值的位置

 

CABAC

10.jpg

第一步 Binarization

Huffman tree

unary, truncated unary, kth order exp-Golomb, and fixed-length codes

第二步 Context modeling

Adaptive probability models

第三步 Binary arithmetic coding: M coder

Table-based BAC

 

 畫面內預測

 在Spatial domain實作

分成以下幾種方式

 

Intra_4×4

有9種預測模式可以選擇

Intra_16×16

適合用於平緩變化的區域

有四種模式

4 prediction modes

Vertical prediction, Horizontal prediction , DC-prediction , and Plane-prediction

對於Chrominance signals部分

因為 大多相當平滑 直接對8X 8採用 Intra_16X16

I_PCM

Bypass prediction and transform coding and, send the values of the encoded samples directly

 

 

 畫面間預測

11.jpg

每張frame都可以參考(包含B slices

兩個往前以及往後的動態向量(list0, list1)

可用權重分配產生最後的動態向量

四種權重模式 [llist0], [list1], [bi-predictive], [direct prediction]或 B_Skip

每一個partition可用不同的模式.

本文链接: http://xiahunao.cn/news/show-814664.html

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?