H 264 中的指數哥倫布編碼

2021-04-15 09:43:37 字數 766 閱讀 3050

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...