1. 程式人生 > >x264函式功能總結

x264函式功能總結

轉:X264函式功能總結

函式名稱

所以位置

完成功能

void x264_frame_filter

common\mc.c

幀濾波

void x264_frame_init_lowres

common\mc.c

亮度1/2畫素值初始化

void x264_mc_init

common\mc.c

運動估計初始化

static void motion_compensation_chroma

common\mc.c

色度運動估計

static uint8_t *get_ref

common\mc.c

獲取參考亮度畫素

static void mc_luma

common\mc.c

亮度運動估計

  

common\mc.c

  

void x264_param_default

common\common.c

設定預設引數

void x264_log

common\common.c

定義log級別

static void x264_log_default

common\common.c

設定預設日誌引數

void x264_picture_alloc

common\common.c

設定picture引數,根據輸出影象格式分配空間

void x264_picture_clean

common\common.c

釋放分配的影象空間

int x264_nal_encode

common\common.c

nal單元編碼

int x264_nal_decode

common\common.c

nal單元解碼

void *x264_malloc

common\common.c

X264內部定義的記憶體分配

void x264_free

common\common.c

X264記憶體釋放

void *x264_realloc

common\common.c

X264重新分配影象空間

void x264_reduce_fraction

common\common.c

分數化簡

char *x264_slurp_file

common\common.c

將檔案讀入分配的快取區

char *x264_param2string

common\common.c

轉換引數為字串,返回字串存放的地址

void x264_cabac_context_init

common\cabac.c

CABAC上下文取值表初始化

void x264_cabac_decode_init

common\cabac.c

CABAC解碼流初始化

static inline void x264_cabac_decode_renorm

common\cabac.c

CABAC解碼重新標準化

int x264_cabac_decode_decision

common\cabac.c

  

int x264_cabac_decode_bypass

common\cabac.c

  

int x264_cabac_decode_terminal

common\cabac.c

  

void x264_cabac_encode_init

common\cabac.c

  

static inline void x264_cabac_putbit

common\cabac.c

  

static inline void x264_cabac_encode_renorm

common\cabac.c

  

void x264_cabac_encode_decision

common\cabac.c

  

void x264_cabac_encode_bypass

common\cabac.c

  

void x264_cabac_encode_terminal

common\cabac.c

  

void x264_cabac_encode_flush

common\cabac.c

  

void x264_cabac_size_decision

common\cabac.c

  

int x264_cabac_size_decision2

common\cabac.c

  

int 264_cabac_size_decision_noup

common\cabac.c

  

static inline int clip_uint8

common\dct.c

clip3(x,0,255)

static void dct2x2dc

common\dct.c

2*2直流係數的Hadamard變換

以4*4變換為基礎

  

  

static void dct4x4dc

common\dct.c

4*4DC係數的Hadamard變換

static void idct4x4dc

common\dct.c

每行每列一維蝶形快速演算法,完成d[4][4]的Hadamard反變換

static void sub4x4_dct

common\dct.c

對4*4殘差進行DCT變換

static void sub8x8_dct

common\dct.c

對8*8殘差進行DCT變換

static void sub16x16_dct

common\dct.c

對16*16殘差進行DCT變換

static void add4x4_idct

common\dct.c

殘差塊DCT反變換後,加到預測塊上,重構4*4塊

static void add8x8_idct

common\dct.c

殘差塊DCT反變換後,加到預測塊上,重構8*8塊

static void add16x16_idct

common\dct.c

殘差塊DCT反變換後,加到預測塊上,重構16*16塊

void x264_dct_init

common\dct.c

DCT運算初始化

static void quant_8x8_core

common\quant.c

8*8 AC量化

static void quant_4x4_core

common\quant.c

4*4 AC量化

static void quant_4x4_dc_core

common\quant.c

4*4 亮度DC量化

static void quant_2x2_dc_core

common\quant.c

2*2 色度DC量化

static void dequant_4x4

common\quant.c

4*4 AC反量化

static void dequant_8x8

common\quant.c

8*8 AC反量化

void x264_mb_dequant_2x2_dc

common\quant.c

2*2 色度DC反量化

void x264_mb_dequant_4x4_dc

common\quant.c

4*4 亮度DC反量化

void x264_quant_init

common\quant.c

量化參量初始化

x264_frame_t *x264_frame_new

common\frame.c

建立新幀

void x264_frame_delete

common\frame.c

刪除幀,釋放空間

void x264_frame_copy_picture

common\frame.c

將影象拷貝到幀中

static void plane_expand_border

common\frame.c

邊界擴充套件(被其他具體的擴充套件函式呼叫)

void x264_frame_expand_border

common\frame.c

幀邊界擴充套件

void x264_frame_expand_border_filtered

common\frame.c

為濾波進行的邊界擴充套件

void x264_frame_expand_border_lowres

common\frame.c

為計算亮度半畫素值進行邊界擴充套件

void x264_frame_expand_border_mod16

common\frame.c

幀邊界不是16整數倍時進行邊界擴充套件

static inline void deblock_luma_c

common\frame.c

bs=1~3時,修正亮度MB邊界的p0和q0值

static void deblock_v_luma_c

common\frame.c

亮度分量垂直邊界去塊濾波

static void deblock_h_luma_c

common\frame.c

亮度分量水平邊界去塊濾波

static inline void deblock_chroma_c

common\frame.c

bs=1~3時,修正色度MB邊界的p0和q0值

static void deblock_v_chroma_c

common\frame.c

色度分量垂直邊界去塊濾波

static void deblock_h_chroma_c

common\frame.c

色度分量水平邊界去塊濾波

static inline void deblock_luma_intra_c

common\frame.c

bs=4時,修正亮度MB邊界的值

static void deblock_v_luma_intra_c

common\frame.c

幀內亮度分量垂直邊界去塊濾波

static void deblock_h_luma_intra_c

common\frame.c

幀內亮度分量水平邊界去塊濾波

static inline void deblock_chroma_intra_c

common\frame.c

bs=4時,修正色度MB邊界的值

static void deblock_v_chroma_intra_c

common\frame.c

幀內色度分量垂直邊界去塊濾波

static void deblock_h_chroma_intra_c

common\frame.c

幀內色度分量水平邊界去塊濾波

static inline void deblock_edge

common\frame.c

bs值確定

void x264_frame_deblocking_filter

common\frame.c

幀去塊濾波主函式

void x264_deblock_init

common\frame.c

去塊濾波初始化

int x264_mb_predict_intra4x4_mode

common\macroblock.c

幀內4*4塊模式預測

int x264_mb_predict_non_zero_code

common\macroblock.c

非零

int x264_mb_transform_8x8_allowed

common\macroblock.c

判斷當前巨集塊是否允許8*8變換

void x264_mb_predict_mv

common\macroblock.c

巨集塊運動向量預測

void x264_mb_predict_mv_16x16

common\macroblock.c

16*16塊MV預測

void x264_mb_predict_mv_pskip

common\macroblock.c

Pskip塊MV預測

static int x264_mb_predict_mv_direct16x16_temporal

common\macroblock.c

直接模式16*16塊MV時間預測

static int x264_mb_predict_mv_direct16x16_spatial

common\macroblock.c

直接模式16*16塊MV空間預測

int x264_mb_predict_mv_direct16x16

common\macroblock.c

直接模式16*16塊MV預測

void x264_mb_load_mv_direct8x8

common\macroblock.c

直接模式8*8塊MV載入

void x264_mb_predict_mv_ref16x16

common\macroblock.c

16*16參考塊MV預測

static inline void x264_mb_mc_0xywh

common\macroblock.c

前向巨集塊運動補償

static inline void x264_mb_mc_1xywh

common\macroblock.c

後向巨集塊運動補償

static inline void x264_mb_mc_01xywh

common\macroblock.c

巨集塊雙向運動補償

static void x264_mb_mc_direct8x8

common\macroblock.c

直接模式8*8塊運動補償

void x264_mb_mc_8x8

common\macroblock.c

各種型別8*8塊及其分割的運動補償

void x264_mb_mc

common\macroblock.c

各種型別塊運動補償(呼叫以上各MC子函式)

void x264_macroblock_cache_init

common\macroblock.c

初始化表徵巨集塊的各變數,分配記憶體空間

void x264_macroblock_cache_end

common\macroblock.c

釋放為巨集塊分配的cache空間

void x264_macroblock_slice_init

common\macroblock.c

初始MB與slice對映關係

void x264_macroblock_cache_load

common\macroblock.c

巨集塊cache載入,所有巨集塊表徵變數賦值

void x264_macroblock_cache_save

common\macroblock.c

儲存cache中的變數值

void x264_macroblock_bipred_init

common\macroblock.c

巨集塊雙向預測初始化

int64_t x264_pixel_ssd_wxh

common\pixel.c

計算畫素差值平方和

static inline void pixel_sub_wxh

common\pixel.c

計算畫素差

static int pixel_satd_wxh

common\pixel.c

計算4*4hardmard變換後的絕對誤差和

static inline int pixel_sa8d_wxh

common\pixel.c

計算8*8hardmard變換後的絕對誤差和

static void predict_16x16_dc

common\predict.c

上和左鄰塊可用時,幀內16*16亮度塊DC模式預測

static void predict_16x16_dc_left

common\predict.c

左邊鄰塊可用時,幀內16*16亮度塊DC模式預測

static void predict_16x16_dc_top

common\predict.c

上邊鄰塊可用時,幀內16*16亮度塊DC模式預測

static void predict_16x16_dc_128

common\predict.c

鄰塊均不可用時,幀內16*16亮度塊預測DC模式,預測值為128

static void predict_16x16_h

common\predict.c

幀內16*16亮度塊水平預測

static void predict_16x16_v

common\predict.c

幀內16*16亮度塊垂直預測

static void predict_16x16_p

common\predict.c

幀內16*16亮度塊平面預測

static void predict_8x8c_dc_128

common\predict.c

  

static void predict_8x8c_dc_left

common\predict.c

  

static void predict_8x8c_dc_top

common\predict.c

  

static void predict_8x8c_dc

common\predict.c

  

static void predict_8x8c_h

common\predict.c

  

static void predict_8x8c_v

common\predict.c

  

static void predict_8x8c_p

common\predict.c

  

static void predict_4x4c_dc_128

common\predict.c

  

static void predict_4x4c_dc_left

common\predict.c

  

static void predict_4x4c_dc_top

common\predict.c

  

static void predict_4x4c_dc

common\predict.c

  

static void predict_4x4c_h

common\predict.c

  

static void predict_4x4c_v

common\predict.c

  

static void predict_4x4c_p

common\predict.c

  

static void predict_4x4_ddl

common\predict.c

模式3 左下對角預測

static void predict_4x4_ddr

common\predict.c

模式4 右下對角預測

static void predict_4x4_vr

common\predict.c

模式5 垂直左下角

static void predict_4x4_hd

common\predict.c

模式6 水平斜下角

static void predict_4x4_vl

common\predict.c

模式7 垂直左下角

static void predict_4x4_hu

common\predict.c

模式8 水平斜上角

static void predict_8x8c_dc_128

common\predict.c

  

static void predict_8x8c_dc_left

common\predict.c

  

static void predict_8x8c_dc_top

common\predict.c

  

static void predict_8x8c_dc

common\predict.c

  

static void predict_8x8c_h

common\predict.c

  

static void predict_8x8c_v

common\predict.c

  

static void predict_8x8c_p

common\predict.c

  

static void predict_8x8_ddl

common\predict.c

  

static void predict_8x8_ddr

common\predict.c

  

static void predict_8x8_vr

common\predict.c

  

static void predict_8x8_hd

common\predict.c

  

static void predict_8x8_vl

common\predict.c

  

static void predict_8x8_hu

common\predict.c

  

void x264_predict_16x16_init

common\predict.c

幀內16*16亮度塊預測模式初始化

void x264_predict_8x8c_init( int cpu, x264_predict8x8_t pf[7] )

common\predict.c

幀內8*8亮度塊預測模式初始化(7種模式)

void x264_predict_8x8c_init( int cpu, x264_predict8x8_t pf[12] )

common\predict.c

幀內8*8亮度塊預測模式初始化(12種模式)

void x264_predict_4x4_init

common\predict.c

幀內4*4亮度塊預測模式初始化

void x264_cqm_init

common\set.c

量化矩陣初始化

int x264_cqm_parse_jmlist

common\set.c

分析量化矩陣列表的正確性

int x264_cqm_parse_file

common\set.c

分析量化矩陣檔案的正確性

  

  

  

static inline void x264_cabac_encode_ue_bypass

encoder\cabac.c

無符號指標GOLOMB編碼

static inline void x264_cabac_mb_type_intra

encoder\cabac.c

巨集塊幀內型別cabac編碼

static void x264_cabac_mb_type

encoder\cabac.c

巨集塊型別cabac編碼

static void x264_cabac_mb_intra4x4_pred_mode

encoder\cabac.c

4*4幀內亮度塊預測模式cabac編碼

static void x264_cabac_mb_intra_chroma_pred_mode

encoder\cabac.c

幀內色度塊預測模式cabac編碼

static void x264_cabac_mb_cbp_luma

encoder\cabac.c

巨集塊亮度cbp值cabac編碼

static void x264_cabac_mb_cbp_chroma

encoder\cabac.c

巨集塊色度cbp值cabac編碼

static void x264_cabac_mb_qp_delta

encoder\cabac.c

巨集塊增量量化引數cabac編碼

void x264_cabac_mb_skip

encoder\cabac.c

可跳過巨集塊cabac編碼

static inline void x264_cabac_mb_sub_p_partition

encoder\cabac.c

8*8子巨集塊分割cabac編碼

static inline void x264_cabac_mb_sub_b_partition

encoder\cabac.c

B幀8*8子巨集塊各種分割cabac編碼

static inline void x264_cabac_mb_transform_size

encoder\cabac.c

巨集塊變換塊尺寸cabac編碼

static inline void x264_cabac_mb_ref

encoder\cabac.c

參考巨集塊cabac編碼

static inline void x264_cabac_mb_mvd_cpn

encoder\cabac.c

巨集塊的mvd進行cabac編碼

static inline void x264_cabac_mb_mvd

encoder\cabac.c

計算並儲存巨集塊mvd,呼叫上個函式對mvd進行cabac編碼

static inline void x264_cabac_mb8x8_mvd

encoder\cabac.c

8*8巨集塊mvd的cabac編碼

static int x264_cabac_mb_cbf_ctxidxinc

encoder\cabac.c

返回巨集塊左邊和上邊塊非0畫素的個數

static void block_residual_write_cabac

encoder\cabac.c

殘差塊cabac編碼

void x264_macroblock_write_cabac

encoder\cabac.c

巨集塊cabac編碼主函式(呼叫以上各子函式)

定義RD時使用

encoder\cabac.c

  

void x264_partition_size_cabac

encoder\cabac.c

巨集塊分割cabac編碼主函式

static void x264_partition_i8x8_size_cabac

encoder\cabac.c

  

static void x264_partition_i4x4_size_cabac

encoder\cabac.c

  

  

  

  

static void block_residual_write_cavlc

encoder\cavlc.c

殘差塊cavlc編碼

static void cavlc_qp_delta

encoder\cavlc.c

量化引數增量cavlc編碼

static void cavlc_mb_mvd

encoder\cavlc.c

運動向量差值cavlc編碼

static void cavlc_mb8x8_mvd

encoder\cavlc.c

8*8子巨集塊運動向量差值cavlc編碼

static inline void x264_macroblock_luma_write_cavlc

encoder\cavlc.c

亮度巨集塊cavlc編碼

void x264_macroblock_write_cavlc

encoder\cavlc.c

巨集塊cavlc編碼主函式

#ifdef RDO_SKIP_BS時使用下列

encoder\cavlc.c

  

int x264_partition_size_cavlc

encoder\cavlc.c

  

static int cavlc_intra4x4_pred_size

encoder\cavlc.c

  

static int x264_partition_i8x8_size_cavlc

encoder\cavlc.c

  

static int x264_partition_i4x4_size_cavlc

encoder\cavlc.c

  

  

  

  

static double pop

encoder\eval.c

出棧

static void push

encoder\eval.c

入棧

static int strmatch

encoder\eval.c

串匹配

static void evalPrimary

encoder\eval.c

一些常用計算

static void evalPow

encoder\eval.c

運算式分析或計算

static void evalFactor

encoder\eval.c

求冪運算

static void evalTerm

encoder\eval.c

  

static void evalExpression

encoder\eval.c

  

double x264_eval

encoder\eval.c

輸入運算變數和運算子,功能呼叫運算表示式分析函式

  

  

  

void x264_me_search_ref

encoder\me.c

運動估計搜尋

void x264_me_refine_qpel

  

亞畫素運動估計

static void refine_subpel

  

亞畫素運動估計搜尋

int x264_me_refine_bidir

  

雙向運動估計

void x264_me_refine_qpel_rd

  

有率失真的亞畫素運動估計