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

相关文章

Before和BeforeClass的区别及说明

《Before和BeforeClass的区别及说明》:本文主要介绍Before和BeforeClass的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Before和BeforeClass的区别一个简单的例子当运行这个测试类时总结Before和Befor

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

一文详解PostgreSQL复制参数

《一文详解PostgreSQL复制参数》PostgreSQL作为一款功能强大的开源关系型数据库,其复制功能对于构建高可用性系统至关重要,本文给大家详细介绍了PostgreSQL的复制参数,需要的朋友可... 目录一、复制参数基础概念二、核心复制参数深度解析1. max_wal_seChina编程nders:WAL

Linux高并发场景下的网络参数调优实战指南

《Linux高并发场景下的网络参数调优实战指南》在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃,本文基于真实案例分析,从参数解读、问题诊断到优... 目录一、问题背景:当并发连接遇上性能瓶颈1.1 案例环境1.2 初始参数分析二、深度诊断:连接状态与

idea报错java: 非法字符: ‘\ufeff‘的解决步骤以及说明

《idea报错java:非法字符:‘ufeff‘的解决步骤以及说明》:本文主要介绍idea报错java:非法字符:ufeff的解决步骤以及说明,文章详细解释了为什么在Java中会出现uf... 目录BOM是什么?1. BOM的作用2. 为什么会出现 \ufeff 错误?3. 如何解决 \ufeff 问题?最

史上最全nginx详细参数配置

《史上最全nginx详细参数配置》Nginx是一个轻量级高性能的HTTP和反向代理服务器,同时也是一个通用代理服务器(TCP/UDP/IMAP/POP3/SMTP),最初由俄罗斯人IgorSyso... 目录基本命令默认配置搭建站点根据文件类型设置过期时间禁止文件缓存防盗链静态文件压缩指定定错误页面跨域问题

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

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

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