Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20328
  • 博文数量: 5
  • 博客积分: 286
  • 博客等级: 二等列兵
  • 技术积分: 40
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-05 22:20
文章分类

全部博文(5)

文章存档

2010年(5)

我的朋友
最近访客

分类: 嵌入式

2010-08-22 10:51:11

 

typedef struct x264_param_t

{

    /* CPU 标志位 */

    unsigned int cpu;

    int         i_threads;       /* 并行编码多帧 */

    int         b_deterministic; /*是否允许非确定性时线程优化*/

    int         i_sync_lookahead; /* 线程超前缓冲 */

 

    /* 视频属性 */

    int         i_width; /* 宽度*/

    int         i_height; /* 高度*/

    int         i_csp;  /* 编码比特流的CSP,仅支持i420,色彩空间设置 */

    int         i_level_idc; /* level值的设置*/

    int         i_frame_total; /* 编码帧的总数, 默认 0 */

/*Vui参数集视频可用性信息视频标准化选项 */

    struct

    {

        /* they will be reduced to be 0 < x <= 65535 and prime */

        int         i_sar_height;

        int         i_sar_width; /* 设置长宽比 */

 

        int         i_overscan;    /* 0=undef, 1=no overscan, 2=overscan 过扫描线,默认"undef"(不设置),可选项:show(观看)/crop(去除)*/

 

        /*见以下的值h264附件E */

        Int       i_vidformat;/* 视频格式,默认"undef",component/pal/ntsc/secam/mac/undef*/

        int       b_fullrange; /*Specify full range samples setting,默认"off",可选项:off/on*/

        int       i_colorprim; /*原始色度格式,默认"undef",可选项:undef/bt709/bt470m/bt470bg,smpte170m/smpte240m/film*/

        int   i_transfer; /*转换方式,默认"undef",可选项:undef/bt709/bt470m/bt470bg/linear,log100/log316/smpte170m/smpte240m*/

        int  i_colmatrix; /*色度矩阵设置,默认"undef",undef/bt709/fcc/bt470bg,smpte170m/smpte240m/GBR/YCgCo*/

        int         i_chroma_loc;    /* both top & bottom色度样本指定,范围0~5,默认0 */

    } vui;

 

    int         i_fps_num;

    int         i_fps_den;

/*这两个参数是由fps帧率确定的,赋值的过程见下:

{        float fps;       

 if( sscanf( value, "%d/%d", &p->i_fps_num, &p->i_fps_den ) == 2 )

            ;

        else if( sscanf( value, "%f", &fps ) )

        {

            p->i_fps_num = (int)(fps * 1000 + .5);

            p->i_fps_den = 1000;

        }

        else

            b_error = 1;

    }

Value的值就是fps。*/

 

    /*流参数 */

    int         i_frame_reference;  /* 参考帧最大数目 */

    int         i_keyint_max;       /* 在此间隔设置IDR关键帧 */

    int         i_keyint_min;       /* 场景切换少于次值编码位I, 而不是 IDR. */

    int         i_scenecut_threshold; /*如何积极地插入额外的I帧 */

    int         i_bframe;   /*两个相关图像间P帧的数目 */

    int         i_bframe_adaptive; /*自适应B帧判定*/

    int         i_bframe_bias; /*控制插入B帧判定,范围-100~+100,越高越容易插入B帧,默认0*/

    int         b_bframe_pyramid;   /*允许部分B为参考帧 */

/*去块滤波器需要的参数*/

    int         b_deblocking_filter;

    int         i_deblocking_filter_alphac0;    /* [-6, 6] -6 light filter, 6 strong */

    int         i_deblocking_filter_beta;       /* [-6, 6]  idem */

   /*熵编码 */

    int         b_cabac;

    int         i_cabac_init_idc;

 

    int         b_interlaced; /* 隔行扫描 */

    /*量化 */

    int         i_cqm_preset;         /*自定义量化矩阵(CQM),初始化量化模式为flat*/

    char        *psz_cqm_file;      /* JM format读取JM格式的外部量化矩阵文件,自动忽略其他—cqm 选项*/

    uint8_t     cqm_4iy[16];        /* used only if i_cqm_preset == X264_CQM_CUSTOM */

    uint8_t     cqm_4ic[16];

    uint8_t     cqm_4py[16];

    uint8_t     cqm_4pc[16];

    uint8_t     cqm_8iy[64];

    uint8_t     cqm_8py[64];

 

    /* 日志 */

    void        (*pf_log)( void *, int i_level, const char *psz, va_list );

    void        *p_log_private;

    int         i_log_level;

    int         b_visualize;

    char        *psz_dump_yuv;  /* 重建帧的名字 */

 

    /* 编码分析参数*/

    struct

    {

        unsigned int intra;     /* 帧间分区*/

        unsigned int inter;     /* 帧内分区 */

 

        int          b_transform_8x8; /* 帧间分区*/

        int          b_weighted_bipred; /*为b帧隐式加权 */

        int          i_direct_mv_pred; /*时间空间队运动预测 */

        int          i_chroma_qp_offset; /*色度量化步长偏移量 */

 

        int          i_me_method; /* 运动估计算法 (X264_ME_*) */

        int          i_me_range; /* 整像素运动估计搜索范围 (from predicted mv) */

        int          i_mv_range; /* 运动矢量最大长度(in pixels). -1 = auto, based on level */

        int          i_mv_range_thread; /* 线程之间的最小空间. -1 = auto, based on number of threads. */

        int          i_subpel_refine; /* 亚像素运动估计质量 */

        int          b_chroma_me; /* 亚像素色度运动估计和P帧的模式选择 */

        int          b_mixed_references; /*允许每个宏块的分区在P帧有它自己的参考号*/

        int          i_trellis;  /* Trellis量化,对每个8x8的块寻找合适的量化值,需要CABAC,默认0 0:关闭1:只在最后编码时使用2:一直使用*/

        int          b_fast_pskip; /*快速P帧跳过检测*/

        int          b_dct_decimate; /* 在P-frames转换参数域 */

        int          i_noise_reduction; /*自适应伪盲区 */

        float        f_psy_rd; /* Psy RD strength */

        float        f_psy_trellis; /* Psy trellis strength */

        int          b_psy; /* Toggle all psy optimizations */

 

        /*,亮度量化中使用的无效区大小*/

        int          i_luma_deadzone[2]; /* {帧间, 帧内} */

 

        int          b_psnr;    /* 计算和打印PSNR信息 */

        int          b_ssim;  %

阅读(1465) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:(转)x264中重要结构体说明

给主人留下些什么吧!~~