HEVC中GOP参数说明

2023-10-13 06:40
文章标签 参数 说明 hevc gop

本文主要是介绍HEVC中GOP参数说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

编码结构从编码的分层处理架构和编码后码流的语法架构进行描述,对有若干时间连续的图像构成的视频序列进行压缩时,先将其分割为若干个图像组GOP(Group of Picture,GOP).分为封闭GOP和开放GOP。封闭GOP是,每个GOP都以IDR(Instantaneous Decoding Refresh)开始,各个GOP之间独立编码。开放GOP,是第一个GOP的第一个帧内编码图像为IDR图像,后续GOP中的第一个帧内编码图像为non-IDR,就是后面GOP中的帧间编码图像可以越过non_IDR图像,使用前一个GOP中已编码的图像做参考图像。
封闭式GOP
在这里插入图片描述
开放式GOP
在这里插入图片描述
GOP参数说明,HM的软件手册有如下说明:
在这里插入图片描述
下面用原文的图解释GOP结构的参数:
在这里插入图片描述
参数说明,在下述说明中:frame n 代表解码顺序的第几帧。poc(Display
order of the frame within a GOP, ranging from 1 to GOPSize)。上述GOP结构中的参数配置说明如下:
在这里插入图片描述
介绍表格中参数为何是如下配置:(Framen 中的n代表解码顺序)
Type:表示图像的I,P,B帧,所以Frame1~Frame4的相应的值为P,B,B,B。
POC:表示在一个GOP中图像显示顺序,则Frame1~Frame4的相应的显示顺序为:4、2、1、3。
QPOffset:表示实际编码的帧等于初始QP+QPOffset,此值越大表示图像最终使用QP越大图像质量越不好。
temporal_id:当前帧所在的时域子层序号,只能序号大的参考序号小的图像。
num_ref_pics_active:参考帧图像列表L0和L1的大小;此表格设置中表示前后参考帧都只有1帧,所以值都为1。
num_ref_pics:当前帧所保存的参考帧数目,表示当前帧及未来帧所需要的参考帧;Frame1为P帧,仅参考1帧,则num_ref_pics为1;Frame2为B帧,参考了poc值0和4的2帧,则配置的值为2;Frame3为B帧,参考了poc为0和2的2帧,但Frame3的此处还包含poc为4的图片,需要保留以便将来帧参考,设置为3。(此处,Frame4就要用到poc为4的图片了);Frame4为B帧参考了poc为2和4的图片。此处值设置为2。
reference_pictures :表示当前帧的参考帧列表,参考帧的poc减去前帧的POC,在根据 num_ref_pics的值可以知道,reference_pictures包含几个值了。所以配置是表格所示的(-4),(-2,2),(-1,1,3),(-1,1)。
predict:表示inter_ref_pic_set_prediction_flag的值,是否需要要RPS预测值,0表示不需要,1表示需要,并忽略后面的deltaRIdx-1, deltaRPS等参数;1表示需要RPS预测,使用deltaRIdx-1, deltaRPS, num refidcs和Reference idcs;2表示需要RPS预测,但仅使用deltaRIdx-1;Frame1参考poc为0的I帧,I帧没有参考帧,也没有RPS,则frame1不需要使用技术,设置为0;其余帧都需要,设置为1;
deltaRIdx-1:当前RPS索引同预测RPS索引的差值减去1后的值;如果使用 了帧间预测,此值为0,所以Frame2~Frame4对应的此值为0。
deltaRPS:预测RPS同当前RPS的POC之差;即等于预测器的POC减去当前图像的POC,因此Frame2的预测器为Frame1,deltaRPS为4-2= 2,对于Frame3为2-1 = 1,Frame4为1-3 =-2。
num_ref_idcs:编码当前帧的RPS的ref_idcs的数量。
reference_idcs:指定RPS间预测的ref_idcs。共有num_ref_idcs个。其中最后一个代表该帧的predictor,其余表示predictor的RPS。取0/1分别表示不作为参考帧,1表示作为参考帧。Frame2此处设置为11,Frame2参考poc0和Frame4,Frame1(poc 为4)作为Frame2的predictor,最后一个数字为1,且poc0为的Frame0作为Frame1的参考帧,依旧是Frame2的参考帧,第一个数字为1;Frame3此处设置为111,预测因子为Frame2,作为当前帧的参考帧,所以最后一个数字为1,而Frame2的参考帧的Frame0(poc0)和Frame1(poc4)的帧依旧需要作为参考帧。而Frame4,其 reference_idcs为 0110,第一个零代表frame0(在frame3的参考帧索引(reference_pictures)中是-1)不再是参考帧,后面的两个1代表frame1和frame2(在Frame3的参考列表这两个值的索引为1和3)是它的参考帧,最后一个零代表frame3不在作为当前帧或者后续帧的参考帧。
参考文章:https://blog.csdn.net/VioletHan7/article/details/81286691
参考文章:https://blog.csdn.net/qq_21747841/article/details/74930721

这篇关于HEVC中GOP参数说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/201448

相关文章

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

SpringMVC获取请求参数的方法

《SpringMVC获取请求参数的方法》:本文主要介绍SpringMVC获取请求参数的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下... 目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

SpringBoot利用@Validated注解优雅实现参数校验

《SpringBoot利用@Validated注解优雅实现参数校验》在开发Web应用时,用户输入的合法性校验是保障系统稳定性的基础,​SpringBoot的@Validated注解提供了一种更优雅的解... 目录​一、为什么需要参数校验二、Validated 的核心用法​1. 基础校验2. php分组校验3

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

一文带你了解SpringBoot中启动参数的各种用法

《一文带你了解SpringBoot中启动参数的各种用法》在使用SpringBoot开发应用时,我们通常需要根据不同的环境或特定需求调整启动参数,那么,SpringBoot提供了哪些方式来配置这些启动参... 目录一、启动参数的常见传递方式二、通过命令行参数传递启动参数三、使用 application.pro

基于@RequestParam注解之Spring MVC参数绑定的利器

《基于@RequestParam注解之SpringMVC参数绑定的利器》:本文主要介绍基于@RequestParam注解之SpringMVC参数绑定的利器,具有很好的参考价值,希望对大家有所帮助... 目录@RequestParam注解:Spring MVC参数绑定的利器什么是@RequestParam?@

SpringBoot接收JSON类型的参数方式

《SpringBoot接收JSON类型的参数方式》:本文主要介绍SpringBoot接收JSON类型的参数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、jsON二、代码准备三、Apifox操作总结一、JSON在学习前端技术时,我们有讲到过JSON,而在

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2