h.264的乙個重要特色就是採用uvlc(universal variable length coding, 統一可變長編碼)編碼,提高了編碼效率。
uvlc編碼中有一種編碼方式就是指數哥倫布編碼。程式實現該編碼時需要計算編碼長度len及其value,下面分別對無符號和有符號兩種指數哥倫布編碼進行分析。
設編碼值為code_val。
static const int i_size0_255[256] =;
void bs_write( bs_t *s, int bit_len, int value);
1. ue(v)
1) value = code_val+1
2)len = 2*i_size0_255[value]+1
程式設計實現如下:
void ue_v( bs_t *s, unsigned int code_val )
else
if( tmp >= 0x100 )
i_size += i_size0_255[tmp];
bs_write( s, 2 * i_size - 1, code_val);}}
2. se(v)
1) 若code_val>0: value = 2*code_val-1
若code_val>0: value = -2*val
2)len = 2*i_size0_255[value]+1
程式設計實現如下:
static void se_v( bs_t *s, int code_val )
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編碼分析 哥倫布編碼
1 首先h264為什麼選用哥倫布編碼?因為h264協議為了節省bits,沒有規定字段表示資料字段長度 資料字段可以根據自身的實際值,可長可短,這樣可以大程度上的節省bit。2 無符號指數哥倫布編碼如何編碼的?在實際資料前面有幾個0就表示,有效資料位數是多少,理解為長度字段,然後資料數值 數值 1,因...
H264編碼原理
條件 1.yuv格式為yuv420 2.解析度為640 480 3.幀率為15 建議碼流500kbps,通過計算可以得到h264壓縮比約為1 100。gop中幀與幀之間的差別小 有失真壓縮包括幀內壓縮和幀間壓縮,幀內壓縮解決的是空域資料冗餘問題,幀間壓縮解決的是時域資料冗餘的問題。無失真壓縮包括dc...