x264中位元流的儲存結構

2021-06-16 20:13:24 字數 739 閱讀 9402

**:

在未包含熵編碼時,這涉及到3個結構體

nal單元的資料結構:

typedef

struct

x264_nal_t;

位元流的資料結構:

typedef

struct bs_s

x264結構體中對於輸出資料的結構定義:

struct  out;

上面,x264.out中可以包含若干個nal單元,每個nal單元記錄其本身的資料長度和資料儲存的位址,x264.out中還包含乙個bs單元,該單元用來位元流的寫入操作,因為編碼之後的資料常常以位元的形式出現,需要將之變換成位元組、字型的資料進行儲存。

資料在位元流中的儲存通過三個函式來完成

bs_init:設定bs->p=bs->start=out->p_bitstream

x264_nal_start:初始化nal單元的資料結構,指定nal->p_payload等於p_bitstream的當前起始位置

x264_***_write:寫入資料到bs-.>p,同時bs->p相應的增長

x264_nal_end:使用bs->p 

–bs->p_start得到寫完該nal的在p_bitstream中的位置,用該位置-nal->p_payload得到資料的長度。

上面3個結構體的邏輯關係可以見下圖:

x264中變數介紹

運動估計 me move estination,有運動向量 當前幀分成若干塊,每乙個塊在一定的範圍內找到最相似的參考幀的塊,之間的距離稱為運動向量,還需要中間的差值 運動補償 rd 簡稱為 rate distortion 位元速率失真 optimization 優化 psy rdoq rate di...

將x264編譯到ffmpeg中 mac

實現如題的目標,要做的有兩件事,先編譯x264,將編譯的x264靜態庫編譯進ffmpeg中,生成具有libx264編碼功能的ffmpeg可執行檔案。在x264檔案目錄上開啟terminal,先configure,在終端內輸入如下命令 configure prefix code extern lib ...

x264中關於編碼幀訪問lookahead的操作

編碼幀的輸入順序是i b b b b p,設定4個b幀。這裡假設每次最多能快取5幀影象,即lookahead的列表中能存5幀影象。編碼的第一幀影象是i幀或者idr幀,首先將第一幀影象存入h lookahead next list中,它的size加1,接著依次存入四幀影象,它的size為5,此時h l...