转:X264函数功能总结
函数名称所以位置完成功能
void x264_frame_filtercommon\mc.c帧滤波
void x264_frame_init_lowrescommon\mc.c亮度1/2像素值初始化
void x264_mc_initcommon\mc.c运动估计初始化
static void motion_compensation_chromacommon\mc.c色度运动估计
static uint8_t *get_refcommon\mc.c获取参考亮度像素
static void mc_lumacommon\mc.c亮度运动估计
common\mc.c
void x264_param_defaultcommon\common.c设置缺省参数
void x264_logcommon\common.c定义log级别
static void x264_log_defaultcommon\common.c设置缺省日志参数
void x264_picture_alloccommon\common.c设置picture参数,根据输出图像格式分配空间
void x264_picture_cleancommon\common.c释放分配的图像空间
int x264_nal_encodecommon\common.cnal单元编码
int x264_nal_decodecommon\common.cnal单元解码
void *x264_malloccommon\common.cX264内部定义的内存分配
void x264_freecommon\common.cX264内存释放
void *x264_realloccommon\common.cX264重新分配图像空间
void x264_reduce_fractioncommon\common.c分数化简
char *x264_slurp_filecommon\common.c将文件读入分配的缓存区
char *x264_param2stringcommon\common.c转换参数为字符串,返回字符串存放的地址
void x264_cabac_context_initcommon\cabac.cCABAC上下文取值表初始化
void x264_cabac_decode_initcommon\cabac.cCABAC解码流初始化
static inline void x264_cabac_decode_renormcommon\cabac.cCABAC解码重新标准化
int x264_cabac_decode_decisioncommon\cabac.c
int x264_cabac_decode_bypasscommon\cabac.c
int x264_cabac_decode_terminalcommon\cabac.c
void x264_cabac_encode_initcommon\cabac.c
static inline void x264_cabac_putbitcommon\cabac.c
static inline void x264_cabac_encode_renormcommon\cabac.c
void x264_cabac_encode_decisioncommon\cabac.c
void x264_cabac_encode_bypasscommon\cabac.c
void x264_cabac_encode_terminalcommon\cabac.c
void x264_cabac_encode_flushcommon\cabac.c
void x264_cabac_size_decisioncommon\cabac.c
int x264_cabac_size_decision2common\cabac.c
int 264_cabac_size_decision_noupcommon\cabac.c
static inline int clip_uint8common\dct.cclip3(x,0,255)
static void dct2x2dccommon\dct.c2*2直流系数的Hadamard变换
以4*4变换为基础
static void dct4x4dccommon\dct.c4*4DC系数的Hadamard变换
static void idct4x4dccommon\dct.c每行每列一维蝶形快速算法,完成d[4][4]的Hadamard反变换
static void sub4x4_dctcommon\dct.c对4*4残差进行DCT变换
static void sub8x8_dctcommon\dct.c对8*8残差进行DCT变换
static void sub16x16_dctcommon\dct.c对16*16残差进行DCT变换
static void add4x4_idctcommon\dct.c残差块DCT反变换后,加到预测块上,重构4*4块
static void add8x8_idctcommon\dct.c残差块DCT反变换后,加到预测块上,重构8*8块
static void add16x16_idctcommon\dct.c残差块DCT反变换后,加到预测块上,重构16*16块
void x264_dct_initcommon\dct.cDCT运算初始化
static void quant_8x8_corecommon\quant.c8*8 AC量化
static void quant_4x4_corecommon\quant.c4*4 AC量化
static void quant_4x4_dc_corecommon\quant.c4*4 亮度DC量化
static void quant_2x2_dc_corecommon\quant.c2*2 色度DC量化
static void dequant_4x4common\quant.c4*4 AC反量化
static void dequant_8x8common\quant.c8*8 AC反量化
void x264_mb_dequant_2x2_dccommon\quant.c2*2 色度DC反量化
void x264_mb_dequant_4x4_dccommon\quant.c4*4 亮度DC反量化
void x264_quant_initcommon\quant.c量化参量初始化
x264_frame_t *x264_frame_newcommon\frame.c创建新帧
void x264_frame_deletecommon\frame.c删除帧,释放空间
void x264_frame_copy_picturecommon\frame.c将图像拷贝到帧中
static void plane_expand_bordercommon\frame.c边界扩展(被其他具体的扩展函数调用)
void x264_frame_expand_bordercommon\frame.c帧边界扩展
void x264_frame_expand_border_filteredcommon\frame.c为滤波进行的边界扩展
void x264_frame_expand_border_lowrescommon\frame.c为计算亮度半像素值进行边界扩展
void x264_frame_expand_border_mod16common\frame.c帧边界不是16整数倍时进行边界扩展
static inline void deblock_luma_ccommon\frame.cbs=1~3时,修正亮度MB边界的p0和q0值
static void deblock_v_luma_ccommon\frame.c亮度分量垂直边界去块滤波
static void deblock_h_luma_ccommon\frame.c亮度分量水平边界去块滤波
static inline void deblock_chroma_ccommon\frame.cbs=1~3时,修正色度MB边界的p0和q0值
static void deblock_v_chroma_ccommon\frame.c色度分量垂直边界去块滤波
static void deblock_h_chroma_ccommon\frame.c色度分量水平边界去块滤波
static inline void deblock_luma_intra_ccommon\frame.cbs=4时,修正亮度MB边界的值
static void deblock_v_luma_intra_ccommon\frame.c帧内亮度分量垂直边界去块滤波
static void deblock_h_luma_intra_ccommon\frame.c帧内亮度分量水平边界去块滤波
static inline void deblock_chroma_intra_ccommon\frame.cbs=4时,修正色度MB边界的值
static void deblock_v_chroma_intra_ccommon\frame.c帧内色度分量垂直边界去块滤波
static void deblock_h_chroma_intra_ccommon\frame.c帧内色度分量水平边界去块滤波
static inline void deblock_edgecommon\frame.cbs值确定
void x264_frame_deblocking_filtercommon\frame.c帧去块滤波主函数
void x264_deblock_initcommon\frame.c去块滤波初始化
int x264_mb_predict_intra4x4_modecommon\macroblock.c帧内4*4块模式预测
int x264_mb_predict_non_zero_codecommon\macroblock.c非零
int x264_mb_transform_8x8_allowedcommon\macroblock.c判断当前宏块是否允许8*8变换
void x264_mb_predict_mvcommon\macroblock.c宏块运动矢量预测
void x264_mb_predict_mv_16x16common\macroblock.c16*16块MV预测
void x264_mb_predict_mv_pskipcommon\macroblock.cPskip块MV预测
static int x264_mb_predict_mv_direct16x16_temporalcommon\macroblock.c直接模式16*16块MV时间预测
static int x264_mb_predict_mv_direct16x16_spatialcommon\macroblock.c直接模式16*16块MV空间预测
int x264_mb_predict_mv_direct16x16common\macroblock.c直接模式16*16块MV预测
void x264_mb_load_mv_direct8x8common\macroblock.c直接模式8*8块MV加载
void x264_mb_predict_mv_ref16x16common\macroblock.c16*16参考块MV预测
static inline void x264_mb_mc_0xywhcommon\macroblock.c前向宏块运动补偿
static inline void x264_mb_mc_1xywhcommon\macroblock.c后向宏块运动补偿
static inline void x264_mb_mc_01xywhcommon\macroblock.c宏块双向运动补偿
static void x264_mb_mc_direct8x8common\macroblock.c直接模式8*8块运动补偿
void x264_mb_mc_8x8common\macroblock.c各种类型8*8块及其分割的运动补偿
void x264_mb_mccommon\macroblock.c各种类型块运动补偿(调用以上各MC子函数)
void x264_macroblock_cache_initcommon\macroblock.c初始化表征宏块的各变量,分配内存空间
void x264_macroblock_cache_endcommon\macroblock.c释放为宏块分配的cache空间
void x264_macroblock_slice_initcommon\macroblock.c初始MB与slice映射关系
void x264_macroblock_cache_loadcommon\macroblock.c宏块cache加载,所有宏块表征变量赋值
void x264_macroblock_cache_savecommon\macroblock.c保存cache中的变量值
void x264_macroblock_bipred_initcommon\macroblock.c宏块双向预测初始化
int64_t x264_pixel_ssd_wxhcommon\pixel.c计算像素差值平方和
static inline void pixel_sub_wxhcommon\pixel.c计算像素差
static int pixel_satd_wxhcommon\pixel.c计算4*4hardmard变换后的绝对误差和
static inline int pixel_sa8d_wxhcommon\pixel.c计算8*8hardmard变换后的绝对误差和
static void predict_16x16_dccommon\predict.c上和左邻块可用时,帧内16*16亮度块DC模式预测
static void predict_16x16_dc_leftcommon\predict.c左边邻块可用时,帧内16*16亮度块DC模式预测
static void predict_16x16_dc_topcommon\predict.c上边邻块可用时,帧内16*16亮度块DC模式预测
static void predict_16x16_dc_128common\predict.c邻块均不可用时,帧内16*16亮度块预测DC模式,预测值为128
static void predict_16x16_hcommon\predict.c帧内16*16亮度块水平预测
static void predict_16x16_vcommon\predict.c帧内16*16亮度块垂直预测
static void predict_16x16_pcommon\predict.c帧内16*16亮度块平面预测
static void predict_8x8c_dc_128common\predict.c
static void predict_8x8c_dc_leftcommon\predict.c
static void predict_8x8c_dc_topcommon\predict.c
static void predict_8x8c_dccommon\predict.c
static void predict_8x8c_hcommon\predict.c
static void predict_8x8c_vcommon\predict.c
static void predict_8x8c_pcommon\predict.c
static void predict_4x4c_dc_128common\predict.c
static void predict_4x4c_dc_leftcommon\predict.c
static void predict_4x4c_dc_topcommon\predict.c
static void predict_4x4c_dccommon\predict.c
static void predict_4x4c_hcommon\predict.c
static void predict_4x4c_vcommon\predict.c
static void predict_4x4c_pcommon\predict.c
static void predict_4x4_ddlcommon\predict.c模式3 左下对角预测
static void predict_4x4_ddrcommon\predict.c模式4 右下对角预测
static void predict_4x4_vrcommon\predict.c模式5 垂直左下角
static void predict_4x4_hdcommon\predict.c模式6 水平斜下角
static void predict_4x4_vlcommon\predict.c模式7 垂直左下角
static void predict_4x4_hucommon\predict.c模式8 水平斜上角
static void predict_8x8c_dc_128common\predict.c
static void predict_8x8c_dc_leftcommon\predict.c
static void predict_8x8c_dc_topcommon\predict.c
static void predict_8x8c_dccommon\predict.c
static void predict_8x8c_hcommon\predict.c
static void predict_8x8c_vcommon\predict.c
static void predict_8x8c_pcommon\predict.c
static void predict_8x8_ddlcommon\predict.c
static void predict_8x8_ddrcommon\predict.c
static void predict_8x8_vrcommon\predict.c
static void predict_8x8_hdcommon\predict.c
static void predict_8x8_vlcommon\predict.c
static void predict_8x8_hucommon\predict.c
void x264_predict_16x16_initcommon\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_initcommon\predict.c帧内4*4亮度块预测模式初始化
void x264_cqm_initcommon\set.c量化矩阵初始化
int x264_cqm_parse_jmlistcommon\set.c分析量化矩阵列表的正确性
int x264_cqm_parse_filecommon\set.c分析量化矩阵文件的正确性
static inline void x264_cabac_encode_ue_bypassencoder\cabac.c无符号指标GOLOMB编码
static inline void x264_cabac_mb_type_intraencoder\cabac.c宏块帧内类型cabac编码
static void x264_cabac_mb_typeencoder\cabac.c宏块类型cabac编码
static void x264_cabac_mb_intra4x4_pred_modeencoder\cabac.c4*4帧内亮度块预测模式cabac编码
static void x264_cabac_mb_intra_chroma_pred_modeencoder\cabac.c帧内色度块预测模式cabac编码
static void x264_cabac_mb_cbp_lumaencoder\cabac.c宏块亮度cbp值cabac编码
static void x264_cabac_mb_cbp_chromaencoder\cabac.c宏块色度cbp值cabac编码
static void x264_cabac_mb_qp_deltaencoder\cabac.c宏块增量量化参数cabac编码
void x264_cabac_mb_skipencoder\cabac.c可跳过宏块cabac编码
static inline void x264_cabac_mb_sub_p_partitionencoder\cabac.c8*8子宏块分割cabac编码
static inline void x264_cabac_mb_sub_b_partitionencoder\cabac.cB帧8*8子宏块各种分割cabac编码
static inline void x264_cabac_mb_transform_sizeencoder\cabac.c宏块变换块尺寸cabac编码
static inline void x264_cabac_mb_refencoder\cabac.c参考宏块cabac编码
static inline void x264_cabac_mb_mvd_cpnencoder\cabac.c宏块的mvd进行cabac编码
static inline void x264_cabac_mb_mvdencoder\cabac.c计算并保存宏块mvd,调用上个函数对mvd进行cabac编码
static inline void x264_cabac_mb8x8_mvdencoder\cabac.c8*8宏块mvd的cabac编码
static int x264_cabac_mb_cbf_ctxidxincencoder\cabac.c返回宏块左边和上边块非0像素的个数
static void block_residual_write_cabacencoder\cabac.c残差块cabac编码
void x264_macroblock_write_cabacencoder\cabac.c宏块cabac编码主函数(调用以上各子函数)
定义RD时使用encoder\cabac.c
void x264_partition_size_cabacencoder\cabac.c宏块分割cabac编码主函数
static void x264_partition_i8x8_size_cabacencoder\cabac.c
static void x264_partition_i4x4_size_cabacencoder\cabac.c
static void block_residual_write_cavlcencoder\cavlc.c残差块cavlc编码
static void cavlc_qp_deltaencoder\cavlc.c量化参数增量cavlc编码
static void cavlc_mb_mvdencoder\cavlc.c运动矢量差值cavlc编码
static void cavlc_mb8x8_mvdencoder\cavlc.c8*8子宏块运动矢量差值cavlc编码
static inline void x264_macroblock_luma_write_cavlcencoder\cavlc.c亮度宏块cavlc编码
void x264_macroblock_write_cavlcencoder\cavlc.c宏块cavlc编码主函数
#ifdef RDO_SKIP_BS时使用下列encoder\cavlc.c
int x264_partition_size_cavlcencoder\cavlc.c
static int cavlc_intra4x4_pred_sizeencoder\cavlc.c
static int x264_partition_i8x8_size_cavlcencoder\cavlc.c
static int x264_partition_i4x4_size_cavlcencoder\cavlc.c
static double popencoder\eval.c出栈
static void pushencoder\eval.c入栈
static int strmatchencoder\eval.c串匹配
static void evalPrimaryencoder\eval.c一些常用计算
static void evalPowencoder\eval.c运算式分析或计算
static void evalFactorencoder\eval.c求幂运算
static void evalTermencoder\eval.c
static void evalExpressionencoder\eval.c
double x264_evalencoder\eval.c输入运算变量和运算符,功能调用运算表达式分析函数
void x264_me_search_refencoder\me.c运动估计搜索
void x264_me_refine_qpel 亚像素运动估计
static void refine_subpel 亚像素运动估计搜索
int x264_me_refine_bidir 双向运动估计
void x264_me_refine_qpel_rd 有率失真的亚像素运动估计