H 264中CAVLC解碼過程詳解

2021-06-16 23:54:05 字數 1485 閱讀 8822

例項解析<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

nc = 1

編碼後得到輸出碼流為:0000 1000 1110 0101 1110 1101

解碼詳細過程如下:

1.       根據coeff_token和nc查表(見標準表9-5),得到非零係數數目totalcoeffs和拖尾係數數目trailingones

nc = 1選擇對應的表,coeff_token為0000100,查表得到totalcoeffs=5 trailingones="3"

輸出序列:無

2.       解析拖尾係數

由第一步得到拖尾係數有3個,輸入拖尾係數符號編碼碼流011,得到兩個拖尾係數由先到後是1,-1,-1

輸出序列:1,-1,-1

3.       解析除拖尾係數外的非零係數的幅值(level)

(1)       確定字尾長度suffixlength

(2)       根據碼流查表9-6得到字首levelprefix

(3)       根據字首和字尾,得到levelcode=(levelprefix<(4)       levelcode為偶數 level=(level+2)/2

levelcode為奇數 level=(-level-1)/2

(5)       根據設定的閾值確定是否update suffixlegth

回到例子中,按照逆序

i=0,sufixlegth=0,查表9-6,1對應的字首levelprefix=0,levelcode=0,計算得到level=1,i++

i=1,sufixlegth=1,查表0010對應的字首levelprefix=2,計算levelcode=4,level=3,i++

i=2>=totalcoeffs-trailingones,除拖尾係數外的非零係數解析完畢

輸出序列:3,1,1,-1,-1

4.       解析每個非零係數前零的個數

根據totalcoeffs=5和輸入碼流111查表9-7得到totalzeros=3

初始i=totalcoeffs-1=4,zeroleft=totalzeros=3,5個非零係數前零的數目解析如下:

i=4,zeroleft=3,根據碼流10查表9-10,runbefor=1,輸出序列:3,1,1,-1,0,-1

i=3,zeroleft=3-1=2,根據碼流1查表runbefore=0,輸出序列:3,1,1,-1,0,-1

i=2,zeroleft=2-0=2,根據碼流1查表runbefore=0,輸出序列:3,1,1,-1,0,-1

i=1,zeroleft=2-0=2,根據碼流01查表runbefore=1,輸出序列:3,0,1,1,-1,0,-1

i=0,zeroleft=2-1=1,輸出序列:0,3,0,1,1,-1,0,-1

5.       解碼完畢,將剩下的元素用0補齊,反序排列就可以得到4*4矩陣。

H 264中的指數哥倫布解碼

h.264中用到的指數哥倫布解碼 標準中描述為ue v te v se v me v 時呼叫 哥倫布碼字表前幾行 碼字 編碼數字 code num 1 0 010 1 011 2 00100 3 00101 4 00110 5 00111 6 0001000 7 字首為m個0 字尾為m位的二進位制數...

H264 編譯碼框架簡介

2 h264和以前的標準 如h261 h263 mpeg 1 mpeg 4 的編解碼器實現流程沒有太大區別,主要的不同在於各功能塊的細節。3 h264就是利用實現的複雜性獲得壓縮效能的明顯改善。至於複雜度的評估,以後會介紹 下面介紹一下h264的編碼器框圖 編碼器採用的仍是變換和 的混合編碼法。在圖...

H264 解碼耗時分析

在數字基帶處理器上 的最佳放置 美國模擬器件公司 jose fridman 最近幾年,高速緩衝儲存器 caches 在dsp和嵌入式系統中已經很普遍。在快取記憶體出現前,嵌入式軟體需要對片內sram和片外sram sdram和flash等所有物理儲存資源中的 進行管理。軟體工程師必須根據執行時間統計...