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

  

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章