我是靠谱客的博主 端庄牛排,最近开发中收集的这篇文章主要介绍海思多媒体(MPP)开发(4)——视频编码(VENC)前言:编码:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言:

海思多媒体处理平台(MPP)分为:视频输入(VI),视频处理(VPSS),视频编码(VENC),视频解码(VDEC),视频输出(VO)、视频侦测分析(VDA),音频输入(AI),音频输出(AO),音频编码(AENC),音频解码(ADEC),区域管理(REGION)等模块. 这里介绍视频编码模块
    视频编码模块涉及很多的概念,具体内容可以去查看海思官方文档。

视频编码问题现象及问题原因分析:
【问题现象】:输入和编码配置都正常,可以获取到h264码流,但是获取到的数据包非常小,图像是全黑,没有任何画面。
【问题原因】:可能是没有摄像头,导致没有摄像头数据输入。
【根本原因】:1.摄像头没插入或是接线异常,2 6134ADC芯片设置与实际摄像头输入不相符(PAL制式摄像头输入必须配置nvp6134 PAL 模式VIDEO_ENCODING_MODE_PAL,否者检测不到摄像头)

编码:

(1)瞬时码率超过阈值时的丢帧策略

主要由下面参数设置

  • enFrmLostMode:丢帧策略模式。
  • u32EncFrmGaps:丢帧间隔。
  • bFrmLostOpen:丢帧开关。
  • u32FrmLostBpsThr:丢帧阈值。


(2)码率控制:

Qstep 量化步长

QP(quantizer parameter)质量参数

  • QP取最小值0 时,表示量化最精细;相反,QP取最大值51时,表示量化是最粗糙的。
  • QP和Qstep具有线性相关性,Qstep随着QP的增加而增加,每当QP值增加6,Qstep便增加一倍。

具体内容可以查看网上的这篇文章:
《码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清的区别》


(3)码率控制模式(RC)

码率控制器:

  • 从信息学的角度分析,图像的压缩比越低,压缩图像的质量越高;图像压缩比例越高,压缩图像的质量越低。对于场景变化的真实场景,图像质量稳定,编码码率会波动;编码码率稳定,图像质量会波动。以 H.264 编码为例,通常图像 QP 越低,图像的质量越好,码率越高;图像 QP 越高,图像质量越差,码率越低。码率控制是针对连续的编码码流而言,所以,JPEG 协议编码通道不包括码率控制功能。

码率控制器分别提供了对 H.264H.265MPEG-4MJPEG 协议编码通道 CBR、VBR、FIXQP 等三种码率控制模式,对图像质量和码率进行调节。

  • CBR(Constant Bit Rate)固定比特率
  • VBR(Variable Bit Rate)可变比特率
  • Fix Qp 固定 QP 值

CBR   

CBR(Constant Bit Rate)固定比特率。即在码率统计时间内保证编码码率平稳。码率稳定主要由两个量来评估。

  • 码率统计时间 u32StatTime

单位为秒(s),码率统计时间越长,每帧图像的码率波动对于码率调节的影响越弱,码率的调节会更缓慢,图像质量的波动会更轻微;码率统计时间越短,每帧图像的码率波动对于码率调节的影响越强,图像码率的调节会更灵敏,图像质量的波动会更剧烈。

  • 行级码率控制调节幅度 u32RowQpDelta

行级码率控制调节幅度是一帧内行级调节的最大范围,其中行级以宏块行为单位。调节幅度越大,允许行级调整的 QP 范围越大,码率越平稳。对于图像复杂度分布不均匀的场景,行级码率控制调节幅度设置过大会带来图像质量不均匀。

VBR 

VBR(Variable Bit Rate)可变比特率,即在码率统计时间内编码码率波动,从而保证编码图像质量平稳。以 H.264 编码为例,VENC 模块提供用户可设置MaxQp,MinQp,MaxBitrate。MaxQp,MinQp 用于控制图像的质量范围, MaxBitrate 用于钳位码率统计时间内的最大编码码率。当编码码率接近最大码率时,图像 QP 会逐步向MaxQp 调整,当编码码率远小于最大码率时,图像 QP 会逐步向 MinQp 调整。当图像QP 达到 MaxQp 时,QP 被钳位到最大值,MaxBirate 的钳位效果失效,编码码率有可能会超出 MaxBirate。当图像 QP 达到 MinQp 时,QP 被钳位到最小值,此时编码的码率已经达到最大值,而且图像质量最好。    

FIXQP

Fix Qp 固定 QP 值。在码率统计时间内,编码图像所有宏块 QP 值相同,采用用户设定的图像 QP 值,I 帧和 P 帧的 QP 值可以分别设置。

编码等级:

海思支持:编码的等级。取值范围:[0, 3]。0:Baseline;  1:Main Profile;  2:High Profile;  3:Svc-T
通常profile level 分别是BP、EP、MP、HP:

  1. BP-Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC;
  2. EP-Extended profile:进阶画质。支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC;
  3. MP-Main profile:主流画质。提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),也支持CAVLC 和CABAC 的支持;
  4. HP-High profile:高级画质。在main Profile 的基础上增加了8x8内部预测、自定义量化、无损视频编码和更多的YUV 格式;

H.264规定了三种档次,每个档次支持一组特定的编码功能,并支持一类特定的应用。

  1. 基本档次:利用I片和P片支持帧内和帧间编码,支持利用基于上下文的自适应的变长编码进行的熵编码(CAVLC)。主要用于可视电话、会议电视、无线通信等实时视频通信;
  2. 主要档次:支持隔行视频,采用B片的帧间编码和采用加权预测的帧内编码;支持利用基于上下文的自适应的算术编码(CABAC)。主要用于数字广播电视与数字视频存储;
  3. 扩展档次:支持码流之间有效的切换(SP和SI片)、改进误码性能(数据分割),但不支持隔行视频和CABAC。主要用于网络的视频流,如视频点播。
     

本章频测工程可以从「目录与序言」提供的地址去获取

本专栏第一篇文章「目录与序言」列出了专栏的完整目录,按目录顺序阅读,有助于你的理解。

----------------------------------------------------------------2022.08.28----------------------------------------------------------------

|公|_新的文章内容和附件工程文件

|众|_已更新在博客首页和:

|号|:liwen01

----------------------------------------------------------------2022.08.28----------------------------------------------------------------

最后

以上就是端庄牛排为你收集整理的海思多媒体(MPP)开发(4)——视频编码(VENC)前言:编码:的全部内容,希望文章能够帮你解决海思多媒体(MPP)开发(4)——视频编码(VENC)前言:编码:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部