欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
bs_t結構及其相關(guān)函數的定義

此部分內容對應H.264標準9.1節及[2]中6.4.13小節

bs_t結構描述了比特流的概念,從比特流中進(jìn)行順序讀寫(xiě)操作(類(lèi)似于前向迭代器)

typedef struct bs_s

{

    uint8_t *p_start;                // 緩沖區首地址

    uint8_t *p;                         // 緩沖區當前的讀寫(xiě)指針

    uint8_t *p_end;                 // 緩沖區尾地址

    int     i_left;                // p所指字節當前還有多少比特可讀寫(xiě)

    int     i_bits_encoded;   /* RD only */

} bs_t;

void bs_init( bs_t *s, void *p_data, int i_data )

使用p_data指向的i_data個(gè)字節作為緩沖區初始化比特流s

int bs_pos( bs_t *s )

返回比特流s當前讀寫(xiě)的位置(以比特為單位),類(lèi)似于ftell的功能,

int bs_eof( bs_t *s )

當前是否已經(jīng)位于比特流s的尾部,如果是,返回1;否則返回0

static uint32_t bs_read( bs_t *s, int i_count )

從比特流s中讀出i_count個(gè)比特的值并返回

static uint32_t bs_read1( bs_t *s )

從比特流s中讀出1個(gè)比特并返回之

static uint32_t bs_show( bs_t *s, int i_count )

從比特流中讀出i_count個(gè)比特的值并返回,但是不移動(dòng)讀寫(xiě)指針

此處實(shí)現似乎存在潛在的錯誤,即如果p<p_end但是p向后移動(dòng)i_count個(gè)比特后越過(guò)了p_end,程序依然能夠返回,不報錯??!

static void bs_skip( bs_t *s, int i_count )

將比特讀寫(xiě)位置向后移動(dòng)i_count個(gè)比特

static int bs_read_ue( bs_t *s )

static int bs_read_se( bs_t *s )

static int bs_read_te( bs_t *s, int x )

static void bs_write( bs_t *s, int i_count, uint32_t i_bits )

向指定比特流s寫(xiě)入i_count個(gè)比特的值i_bits;如果當前位置距離比特流尾部相差少于四個(gè)字節??,則不做任何工作,直接返回;如果要寫(xiě)入的值所需比特數大于i_count,則截掉高位后寫(xiě)入。

static void bs_write1( bs_t *s, uint32_t i_bit )

向指定比特流s寫(xiě)入一個(gè)比特值i_bit;如果當前已處于比特流尾部,則不做任何工作,直接返回。

static void bs_align_0( bs_t *s )

向后調整比特流的讀寫(xiě)位置,使其處于字節對齊位置;中間這些跳過(guò)的比特位全部置0

static void bs_align_1( bs_t *s )

向后調整比特流的讀寫(xiě)位置,使其處于字節對齊位置;中間這些跳過(guò)的比特位全部置1

static void bs_align( bs_t *s )

與bs_align_0函數完全相同

void bs_write_ue( bs_t *s, unsigned int val )

以ue映射方式向比特流中寫(xiě)入無(wú)符號值,具體過(guò)程為:

(1)    首先向比特流中寫(xiě)入連續M個(gè)比特的0,其中M=floor(log2(val+1));

(2)    向比特流中寫(xiě)入1個(gè)比特的1

(3)    向比特流中寫(xiě)入M個(gè)比特,這M個(gè)比特的值應等于val+1-2M

static void bs_write_se( bs_t *s, int val )

以H.264標準Table 9.3的映射方式向比特流中寫(xiě)入。具體為:

當val<=0時(shí),則以ue方式向比特流中寫(xiě)入-2*val

當val>0時(shí),則以ue方式向比特流中寫(xiě)入2*val-1

static void bs_write_te( bs_t *s, int x, int val )

當x=1時(shí),向比特流中寫(xiě)入val的最低比特的反碼;當x>1時(shí),按照ue映射方式寫(xiě)入;其他情況下不執行任何操作。

static void bs_rbsp_trailing( bs_t *s )

無(wú)論比特流當前位置是否字節對齊,都向其中寫(xiě)入一個(gè)比特1及若干個(gè)(0~7個(gè))比特0,使其字節對齊

static int bs_size_ue( unsigned int val )

返回以ue方式對val進(jìn)行Exp-goloma編碼所需要的比特數。

static int bs_size_se( int val )

返回以se方式對val進(jìn)行Exp-goloma編碼所需要的比特數。

static int bs_size_te( int x, int val )

返回以te方式對val進(jìn)行Exp-goloma編碼所需要的比特數。當x=1時(shí),返回1;當x>1時(shí),按照ue映射方式計算并返回;其他情況下返回0。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
H.264中的指數哥倫布編碼
MD5算法之C#程序 MD5算法描述
隊列
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久