当前位置: 首页 > article >正文

RKMEDIA画面质量调节-QP调节

        QP是在视频采集编码过程中的量化参数,其值与画面质量成反比,即QP值越大画面质量越小,其具体调整方法如下:

typedef struct rkVENC_RC_PARAM_S {
  RK_U32 u32ThrdI[RC_TEXTURE_THR_SIZE]; // [0, 255]
  RK_U32 u32ThrdP[RC_TEXTURE_THR_SIZE]; // [0, 255]
  RK_U32 u32RowQpDeltaI;                // [0, 10]
  RK_U32 u32RowQpDeltaP;                // [0, 10]

  RK_U32 s32FirstFrameStartQp; // RW; Start QP value of the first frame
  union {
    VENC_PARAM_H264_S stParamH264;
    VENC_PARAM_H265_S stParamH265;
    VENC_PARAM_MJPEG_S stParamMjpeg;
  };
} VENC_RC_PARAM_S;

  RK_U32 u32ThrdI[RC_TEXTURE_THR_SIZE];
  RK_U32 u32ThrdP[RC_TEXTURE_THR_SIZE]; 

        分别表示I帧与P帧的阈值,一般来说不改动,这个数组是控制宏块画面质量,对于一帧图片来说改动其内部宏块的意义其实不大,因此我们通常不改动。
  RK_U32 u32RowQpDeltaI;                // [0, 10]
  RK_U32 u32RowQpDeltaP;                // [0, 10]

        分别表示I帧、P帧的宏块的QP值与整个帧的QP值之间的可接受的波动范围。

 RK_U32 s32FirstFrameStartQp; // RW; Start QP value of the first frame

        第一帧的QP值,默认-1。

下面是H264QP结构体的具体内容:

/* The param of H264e cbr*/
typedef struct rkVENC_PARAM_H264_S {
  RK_U32 u32StepQp;
  RK_U32 u32MaxQp; // RW; Range:[8, 51];the max QP value
  RK_U32 u32MinQp; // RW; Range:[0, 48]; the min QP value,can not be larger than
                   // u32MaxQp
  RK_U32 u32MaxIQp; // RW; max qp for i frame
  RK_U32 u32MinIQp; // RW; min qp for i frame,can not be larger
                    // than u32MaxIQp
  // RK_S32  s32MaxReEncodeTimes;        /* RW; Range:[0, 3]; Range:max number
  // of re-encode times.*/
} VENC_PARAM_H264_S;

  RK_U32 u32StepQp;

        整个是帧的QP的关键的配置项,其越小画面质量越好,通常配置在1-51之间
  RK_U32 u32MaxQp; // RW; Range:[8, 51];the max QP value
  RK_U32 u32MinQp; // RW; Range:[0, 48]; the min QP value,can not be larger than

        P帧最大最小的QP值
  RK_U32 u32MaxIQp; // RW; max qp for i frame
  RK_U32 u32MinIQp;

        I帧最大最小的QP值

下面是关于QP的使用,其实我们只需要在VENC下面定义结构体

    VENC_RC_PARAM_S venc_rc_param;

配置该结构体后使用该函数进行初始化即可

    ret = RK_MPI_VENC_SetRcParam(0, &venc_rc_param);

即可,其不需要单独的进行管道的配置

效果如下:

        

在文件大小中第一个视频的大小为20m第二个为3m,静态图片从键盘来看,第一个图片的清晰度远大于第二个


http://www.kler.cn/news/337817.html

相关文章:

  • 电脑怎么卸载软件?学会这6个卸载软件技巧就够了(精选)
  • 基于Tensorrt C++ API 构建YOLOV5实现engine以及推理
  • PhpStudy-PHP5.4.45后门漏洞应用程序(C++/base64/winhttp)
  • OmniCorpus数据集:最大(百亿级别)多模态数据集
  • 深入理解C语言中的内存分配函数:malloc、calloc、realloc
  • Modern CMake 简明教程(5)- 安装
  • Redis篇(面试题 - 连环16炮)(持续更新迭代)
  • 【笔记】I/O总结王道强化视频笔记
  • WSL--安装各种软件包
  • 《Linux从小白到高手》进阶实操篇:Linux找回Root用户密码
  • 掌握这17个Python自动化操作,简化你的日常工作流程,提升工作效率!
  • FDS-112 土壤盐分传感器 三针 自带温度补偿功能
  • 【爬虫】网站反debugger、内存爆破以及网站限制开发者工具
  • 教培机构如何向知识付费转型
  • github命令行管理工具推荐
  • kubernetes基础操作(pod生命周期)
  • mysql系统常用参数查询命令
  • Python去除字符串中的括号
  • 网文:孙子兵法看人性
  • ACT调试pycharm报错