1. 程式人生 > >視訊編碼名詞引數解釋

視訊編碼名詞引數解釋

GOP(Group of Pictures)
策略影響編碼質量:所謂GOP,意思是畫面組,一個GOP就是一組連續的畫面。MPEG編碼將畫面(即幀)分為I、P、B三種,I是內部編碼幀,P是前向預測幀,B是雙向內插幀。簡單地講,I幀是一個完整的畫面,而P幀和B幀記錄的是相對於I幀的變化。沒有I幀,P幀和B幀就無法解碼,這就是MPEG格式難以精確剪輯的原因,也是我們之所以要微調頭和尾的原因。GOP 越長,B 幀所佔比例更高,編碼的率失真效能越高。

In Video coding, a group of pictures specifies the order in which intra- and inter-frames are arranged.The GOP is a group of successive pictures within a coded video stream. Each coded video stream consists of successive GOPs. From the pictures contained in it, the visible frames are generated.A GOP can contain the following picture types:
§ I-picture or I-frame (intra coded picture) - reference picture, which represents a fixed image and which is independent of other picture types. Each GOP begins with this type of picture.
§ P-picture or P-frame (predictive coded picture) - contains motion-compensated difference
information from the preceding I- or P-frame.
§ B-picture or B-frame (bidirectionally predictive coded picture) - contains difference information from the preceding and following I- or P-frame within a GOP.
§ D-picture or D-frame (DC direct coded picture) - serves the fast advance.
A GOP always begins with an I-frame. Afterwards several P-frames follow, in each case with
some frames distance. In the remaining gaps are B-frames. A few video codecs allow for more than
one I-frame in a GOP.
The I-frames contain the full image and do not require any additional information to reconstruct it.
Therefore any errors within the GOP structure are corrected by the next I-frame.
B-frames within a GOP only propagate errors in H.264, where B-frames can be referenced by other pictures in order to increase compression efficiency.
The more I-frames the video stream has, the more editable it is. However, having more I-frames increases the stream size. In order to save bandwidth and disk space, videos
prepared for internet broadcast often have only one I-frame per GOP.
The GOP structure is often referred by two numbers, for example M=3, N=12. The first one
tells the distance between two anchor frames (I or P). The second one tells the distance
between two full images (I-frames): it is the GOP length <就是說GOP長度是兩個I幀的距離>.
For the example M=3 N=12, the GOP structure is IBBPBBPBBPBBI.

QP 量化引數
Wikipedia上居然沒有對這個做一個解釋,至少現在還木有。只好查了別的資料,解釋如下:

H.264編解碼器中,量化引數QP和量化步長Qstep的關係:
量化步長Qstep共有52個值。(對於亮度編碼而言)
量化引數QP是量化步長Qstep的序號,取值0~51。
QP取最小值0 時,表示量化最精細;相反,QP取最大值51時,表示量化是最粗糙的。
Qstep隨著QP的增加而增加,QP每增加6,Qstep增加一倍。
對於色度編碼,QP的最大值是39。
在深度視訊實驗裡我用的QP分別是22,27,32,37;結果可見22的最清晰,37的最模糊。

Bit Rate 位元速率


In telecommunications and computing, bitrate (sometimes written bit rate, data rate or as a variable R[1])
is the number of bits that are conveyed or processed per unit of time.
位元速率就是資料傳輸時單位時間傳送的資料位數,一般我們用的單位是kbps即千位每秒。 通俗一點的理解就是取樣率,單位時間內取樣率越大,精度就越高,處理出來的檔案就越接近原始檔案,也就是說畫面的細節就越豐富,但壓縮率也就越小。
碼流 x 時間 = 總容量

熵編碼
熵編碼即編碼過程中按熵原理不丟失任何資訊的編碼。資訊熵為信源的平均資訊量(不確定性的度量)。常見的熵編碼有:夏農(Shannon)編碼、哈夫曼(Huffman)編碼和算術編碼(arithmetic coding)。在視訊編碼中,熵編碼把一系列用來表示視訊序列的元素符號轉變為一個用來傳輸或是儲存的壓縮碼流。輸入的符號可能包括量化後的變換系數,運動向量,頭資訊(巨集塊頭,圖象頭,序列的頭等)以及附加資訊(對於正確解碼來說重要的標記位資訊)。

SODB
SODB是String of Data Bits,最原始的編碼資料,沒有任何附加資料。

RBSP
RBSP是原始位元組序列載荷:Raw Byte Sequence Payload,在SODB的後面填加了結尾位元(RBSP trailing bits 一個bit“1”和若干位元“0”),以便位元組對齊。

EBSP
EBSP是Encapsulation Byte Sequence Packets,在RBSP基礎上填加了仿校驗位元組(0X03),它的原因是: 在NALU加到Annexb上時,需要新增每組NALU之前的開始碼StartCodePrefix,如果該NALU對應的slice為一幀的開始則用4位元組表示(0x00000001),否則用3位元組表示(0x000001)。為了使NALU主體中不包括與開始碼相沖突的連續位元組碼,在編碼時,每遇到兩個位元組連續為0,就插入一個位元組的0x03。解碼時將0x03去掉。也稱為脫殼操作。即:
在對整幀影象的資料位元串(SODB)新增原始位元組序列載荷(RBSP)結尾位元(RBSP trailing bits,新增一位元的“1”和若干位元“0”,以便位元組對齊)後,再檢查RBSP 中是否存在連續的三位元組“00000000 00000000 000000xx”;若存在這種連續的三位元組碼,則在第三位元組前插入一位元組的“0x03”,以免與起始碼競爭,形成EBSP碼流。這需要將近兩倍的整幀影象碼流大小。為了減小儲存器需求,在每個巨集塊編碼結束後即檢查該巨集塊SODB中的起始碼競爭問題,並保留SODB最後兩位元組的零位元組個數,以便與下一巨集塊的SODB的開始位元組形成連續的起始碼競爭檢測;對一幀影象的最後一個巨集塊,先新增結尾停止位元,再檢測起始碼競爭。
NAL(Network Abstraction Layer)基本上可分兩種:1,以有序位元組流方式傳送的針對 H.320的NAL;2,針對IP網路的RTP打包方式的NAL。
NAL作用:specified to format that data and provide header information in a manner appropriate for conveyance on a variety of communication channels or storage media.
NAL的處理過程基本上分為兩步:
1,將VCL層輸出的SODB封裝成nal_unit. Nal_unit是一個通用封裝格式,可以適用於有序位元組流方式和IP包交換方式。
2,針對不同的傳送網路 (電路交換|包交換),將nal_unit 封裝成針對不同網路的封裝格式。
第一步的具體過程: VCL層輸出的位元流SODB(String Of Data Bits)到nal_unit之間,經過了以下三步處理:
1,SODB位元組對齊處理後封裝成RBSP(Raw Byte Sequence Payload)。
2,為防止RBSP的位元組流與有序位元組流傳送方式下的SCP(start_code_prefix_one_3bytes ,0x000001)出現位元組競爭情形,迴圈檢測RBSP前三個位元組,在出現位元組競爭時在第三字 節前加入emulation_prevention_three_byte (0x03),具體方法:

nal_unit(  NumBytesInNALunit ) 
{ 
 forbidden_zero_bit 
 nal_ref_idc 
 nal_unit_type  
 NumBytesInRBSP = 0 
 for( i = 1; i < NumBytesInNALunit; i++ ) 
 { 
     if( i + 2 <  NumBytesInNALunit && next_bits( 24 ) = = 0x000003 ) 
     { 
         rbsp_byte[NumBytesInRBSP++ ] 
         rbsp_byte[ NumBytesInRBSP++ ] 
         i += 2 
         emulation_prevention_t 
         hree_byte /* equal to 0x03 */ 
     } 
     else 
         rbsp_byte[ NumBytesInRBSP++ ] 
 } 
}
     3,防位元組競爭處理後的RBSP再加一個位元組的header(forbidden_zero_bit+  nal_ref_idc+ nal_unit_type),封裝成nal_unit。

    第二步的具體過程:

case1:有序位元組流的封裝

    byte_stream_nal_unit(NumBytesInNALunit) 
    {
        while (next_bits(24) != 0x000001) 
            zero_byte /* equal  to 0x00 */ 
        if (more_data_in_byte_stream()) 
        {
            start_code_prefix_one_3bytes
            /* equal to 0x000001 */ nal_unit(NumBytesInNALunit)
        }
    } 

Case2:
IP網路的RTP打包封裝。

H.264其它術語縮寫
RDO: Rate Distortion Optimization, 率失真優化
QP: Quantization Parameter, 量化引數
RC: Rate Control, 位元速率控制
ABR: Average BitsRate, 平均位元速率
VBV: Video Buffer Verify(or Verifier), 視訊緩衝驗證(或驗證器)
FMO: Flexable Macroblock Ordering ,靈活的巨集塊排序,就是各個巨集塊和slicegroup的對應關係.
SH: Slice Header.
EC: Error Concealment, 誤碼掩蓋
ASO: 任意條帶順序,條帶編碼可以不是光柵掃描順序
BAB: 二值Alpha塊,用於標示區域的邊界
BAP: 身體動畫引數
塊: 做變換的巨集塊區域 8x8 4x4
塊匹配: 矩形圖象區域上的運動估計
塊效應: 圖象的方塊或矩形失真區域
B幀: 雙向運動補償預測的編碼影象(條帶)
CABAC: 基於上下文的自適應二值算數編碼
CAE: 基於上下文的算數編碼
CAVLC: 基於上下文的自適應變長編碼
色度: 色彩差異分量
CIF: 通用中間格式,一種彩色影象格式 352 x 288
色彩空間 : 表示彩色影象的方法
DCT: 離散餘弦變換
直接預測: 一種編碼模式,此模式中不傳輸運動適量
DPCM: 差分脈衝編碼調製
DSCQS: 雙激勵連續質量等級,主管質量衡量的等級和方法
DWT: 離散小波變換
熵編碼: 降低冗餘的編碼方法
錯誤隱藏: 編碼影象的後處理,以消除或減小可見的錯誤效應
Exp-Colomb: 指數哥倫布變長編碼
FAP: 臉部動畫引數
FBA: 臉部和身體動畫
FGS: 精細顆粒分級
場: 隔行視訊序列的偶數行或奇數行
流程圖: 變換演算法的圖示表示
FMO: 靈活的巨集塊順序,巨集塊的編碼順序可以不是光柵掃描順序
完全搜尋: 一種運動估計演算法
GMC: 全域性運動補償,用於整個編碼物件
GOP: 影象組,編碼視訊影象的集合
哈夫曼編碼: 降低冗餘的編碼方法
HVS: 人體視覺系統,用來官場和解釋視訊影象的系統
混合: 以湧動補償和變換為特徵的編解碼器
IEC: 國際電工委員會,一個標準體;
幀間編碼: 使用時間預測和補償的視訊幀編碼
隔行掃描: 表示為一系列場的視訊資料
幀內編碼: 不使用時間預測的視訊幀編碼
ISO: 國際標準化組織
ITU: 國際電信聯盟
JPEG: 聯合影象專家組,ISO的委員會
JPEG2000: 一種編碼標準
延遲: 通過通訊系統的延遲
級別: 符合一定特性的引數集合(適用於檔次)
環內濾波器: 編碼或解碼反饋環路里的空間濾波器
巨集塊: 幀編碼的單元
巨集塊分塊: 有自己的運動適量的巨集塊子區域
巨集塊子分塊: 有自己的運動適量的巨集塊子區域
媒體處理器: 具有媒體編碼和處理特性的處理器
運動補償: 視訊幀預測的運動模型
運動估計: 兩個或多個視訊幀之間的相對運動估計
運動適量: 用於運動補償的指示位移塊或區域的適量
NAL: 網路提取層
主觀質量: 衡量演算法的視訊影象視覺質量
OBMC: 重疊塊運動補償
影象: 編碼的視訊幀
P幀: 使用參考幀作豫補償預測的編碼影象
檔次: 視訊編解碼器的工具集
逐行掃描: 由完整幀的序列來表示視訊資料
PSNR: 峰值信噪比,一種客觀質量的量度方法
QCIF: 四分之一通用中間格式 176 x 144
量化: 降低標量或向量地精度
位元速率控制: 編碼視訊訊號的位元率的控制
位元速率失真: 編解碼器效能的量度
RBSP: 原始位元組序列載荷
RGB: 紅/綠/藍色彩空間
環狀效應: 解碼影象中尖銳邊緣周圍的"波紋"裝痕跡
RTP: 實時傳輸協議
RVLC: 可逆變長編碼
分級編碼: 把訊號編碼成若干層
SI條帶: 用於在編碼的位元流之間切換的幀內條帶
條帶: 編碼影象的一個區域
SNHC: 合成的影象,自然的影象混合編碼
SP條帶: 用於在編碼的位元流之間切換的幀間條帶
Sprite: 可以包含在一系列解碼幀中的紋理區域
統計冗餘: 由資料的統計分佈引起的冗餘
演播室質量: 無損或接近無損的視訊質量
主觀質量: 由人的眼睛感覺到的視訊質量
主管冗餘: 由主管上不重要的資料帶來的冗餘
半畫素(運動補償): 整數畫素位插值形成的參考區域的運動補償預測
測試模型: 描述視訊編碼標準的參考實現的軟體模型和文件
紋理: 影象或殘差資料
樹結構運動補償: 以分塊尺寸的靈活可變為特徵的運動補償
TSS: 三步搜尋法,一種運動估計演算法
VCEG: 視訊編碼專家組
VCL: 視訊編碼層
視訊包: 合適打包的編碼單元
VLC: 變長碼
VLD: 變長解碼器
VLE: 變長編碼器
VLSI: 超級大規模積體電路
VO: 視訊物件
VOP: 視訊物件面
VQEG: 視訊質量專家組
加權預測: 來自兩個參考區域的預測點做尺度變換的運動補償
YCbCr: 亮度,藍色度,紅色度的色彩空間
YUV: 一個色彩空間

http://blog.csdn.net/abcjennifer/article/details/6593705
http://blog.chinaunix.net/uid-17053077-id-1987956.html
http://blog.chinaunix.net/uid-17053077-id-1987957.html
http://blog.163.com/[email protected]/blog/static/11174277620112892317148/
http://wenku.baidu.com/link?url=JijeZhwq84IFY6xJeg_Ohg2hEeAB-zKtCfrPJHu58qnf925zBxsEql3ong0UlUE7UtnBwmWizHkQ1nmEYQ-q6kwd8By5G-PKMiaII2Mie2a

轉載於:https://blog.csdn.net/bytxl/article/details/50436875