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

GOP模式调节画面质量讲解

一.RV1126GOP模式的分类:

在RV1126中GOP模式,一般分为三大类,分别是普通GOP模式智能SMARTPGOP模式TSVCGOP模式。这三种不同的GOP模式,分别对应不同的视频场景。下面我们来一一介绍这三种GOP模式的特点。

1.普通GOP模式

 普通GOP模式是最常见的GOP模式,它的特点就是两个I帧间隔固定的GOPSIZE,而GOPSIZE里面都是P帧或者B帧。

比方说上图,GOPSIZE=5,相当于每隔5个P帧或者B帧插入一个I帧;普通的GOP模式通常适用于普通场景,比方说视频场景比较单一,没有那种运动画面、静止画面频繁切换的场景。

​​​​​​​2.智能编码SMARTPGOP模式

在SMART的GOP模式下,会分成两种I帧,一种是普通的I另外一种是虚拟I

        普通的I帧主要是检测画面的静止区域,当检测到视频里面有静止画面的时候,编码器会利用长参考帧大幅度降低码率,静止画面降低码率能够有效防止画面的呼吸效应出现。

        而在运动区域,则利用短参考帧进行运动估计,并插入Virtual I(虚拟I帧就是SMARTP)。在插入虚拟I帧的时候,可以最大拉长I帧间隔让它其提高在运动场景下的码率能够得到足够的提高,画面质量能够得到很好的改善;SMARTP模式常使用在静止画面和运动画面经常切换的场景,尤其是体育赛事。

​​​​​​​3.多层时域参考模型

        多层时域指的是编码层可以划分为多个层级,RV1126提供了RK_MPI_MB_GetTsvcLevel获取层数,并通过层数来定制码流。

        举个例子,TSVC技术可以将一个普通的H264码流分割成不同的帧率、分辨率和视频质量的层数。一般而言,TSVC技术会根据目前的编码的网络情况把视频码流分割成一个基础层和多个视频增强层,基础层为开发者提供最基本的视频质量、帧率和分辨率。

        基础层可以作为一个独立的层进行解码,而增强层的信息则依赖于基础层进行解码;总体来说,解码端接受的增强层数量越大,解码的视频质量就会越好。

TSVC模式主要运用在网络环境不好的情况,如弱网环境、或者移动场景下比较多。

二.RV1126中设置GOP模式的结构体和API:

2.1. RV1126的GOP属性结构体

上图就是RV1126设置GOP属性的结构体,下面我们来分别介绍它的成员变量:

1. enGopMode:编码GOP类型的设置,RV1126中分别提供了三种GOP类型的设置,分别是:

VENC_GOPMODE_NORMALP(普通GOP模式)

VENC_GOPMODE_SMARTP(智能SMARTP模式)

VENC_GOPMODE_TSVC(多层时域参考模型)

2. u32GopSize:编码GOP的长度大小,在普通的GOP模式下这个值就是I帧关键帧间隔。在SMARTP模式下,它是短期参考帧的间隔。

3. s32IPQpDelta:I帧相对于P帧的差值,这个值主要是调节I帧过大或者呼吸效应的场景,默认值为6, 取值范围是[-10, 30]

4. u32BgInterval长期参考帧的间隔, 主要运用在SMARTP模式下, 普通GOP模式不起作用。一般而言,长参考帧是短参考帧的整数倍。

5. s32ViQpDelta:虚拟I帧相对于P帧的差值,这个值主要是调节虚拟I帧过大默认值为6,这个值主要使用在SMARTP模式下调节运动画面的场景,取值范围是[-10, 30]。

2.2. RV1126设置GOP属性的API

上面这个就是设置VENC GOP模式的API:

第一个传参数:VeChn编码通道号

第二个传参数:VENC_GOP_ATTR_S结构体指针

http://www.xdnf.cn/news/519625.html

相关文章:

  • 八股碎碎念01——HashMap原理
  • GESP编程能力等级认证C++3级1-数组1
  • 研读论文《Attention Is All You Need》(6)
  • 软考复习——部署
  • 嵌入式通信协议(二)——IIC总线
  • 《P5283 [十二省联考 2019] 异或粽子》
  • OpenAI Chat API 详解:打造智能对话应用的基石
  • 牛客网NC210769:孪生素数对问题解析与实现
  • 5月18日day29打卡
  • Listener method could not be invoked with the incoming message
  • 《C++与OpenCV实战:图像增强大核心算法详解》​​
  • [ctfshow web入门] web122
  • Git目录分析与第一个git commit文件
  • 20倍云台球机是一种高性能的监控设备
  • PortSwigger Labs CSRF详细教程
  • C++学习:六个月从基础到就业——C++17:string_view与filesystem
  • Vue3前端xlsx导出
  • 微服务项目->在线oj系统(Java版 - 3)
  • 王树森推荐系统公开课 排序02:Multi-gate Mixture-of-Experts (MMoE)
  • 【AI面试秘籍】| 第15期:大模型如何稳定输出合法JSON?
  • 【Linux笔记】——线程同步条件变量与生产者消费者模型的实现
  • GEE谷歌地球引擎批量下载逐日ERA5气象数据的方法
  • 等于和绝对等于的区别
  • LeetCode 394. 字符串解码详解:Java栈实现与逐行解析
  • 第5章 监控与回归测试:日志收集 · 代码覆盖率 · 静态分析 · 质量门
  • Python爬虫实战:通过PyExecJS库实现逆向解密
  • 院士方复全数学命题证明采用预期理由和循环论证以及类比的错误方法
  • web页面布局基础
  • 【动态规划】路径问题
  • STM32八股【9】-----volatile关键字