VVC之编码结构

news/2024/12/31 1:07:33/

VVC之编码结构(新一代通用视频编码的读书笔记)

  • 缩写
  • 概述
  • EncApp
  • main函数解读

缩写

缩写含义
CVSCoded Video Sequence, 编码视频序列
IRAPIntra Random Access Point, 帧内随机接入点
GDRGradual Decoding Refresh, 逐渐解码刷新
AUAccess Unit, 访问单元
PUPicture Unit, 图像单元
CLVSCoded Layer Video Sequence, 编码视频序列层
CTUCoding Tree Unit, 树形编码单元
CTBCoding Tree Block, 树形编码块
VPSVideo Parameter Set, 视频参数集
SPSSequence Parameter Set, 序列参数集
PPSPicture Parameter Set, 图像参数集
PHPicture Header, 图像头
APSAdaptation Parameter Set, 自适应参数集
DCIDecoding Capability Information, 解码能力信息
SEISupplemental Enhancement Information, 附加增强信息
PTLProfile, Tier and Level
ALF子适应环路滤波
LMCS亮度映射与色度缩放

概述

每个PU包含且仅包含一幅完整图像的编码数据。
当一个AU包含多个PU时,每个PU可以是特定质量或分辨率(可分级视频流)图像,也可以是多视点视频的某一视点,以及深度、反射率等属性信息。因此,AU中的不同PU被归属为不同的层(Layer)。
在这里插入图片描述
参数集是一个独立的数据单位,它包含视频不同层级编码单元的共用信息。

  • VPS:PU间相互依赖关系,哪些PU解码图像可以输出之类的。主要用来支持分层编码。
  • SPS:一个CVS中所有图像共用的信息,如档次级别,编码工具开关标志等。
  • PPS:一幅图像所有Slice的共用信息。
  • APS:包含类似图像头信息或者Slice头信息,会被一幅图像的多个Slice或不同图像的Slice使用。
  • DCI:包含PTL信息,用于编码流的会话协商。
  • SEI:视频内容的附加信息,不影响解码过程。

在这里插入图片描述
Tile:一幅图像可以划分为若干个Tile,即从水平方向和垂直方向将一幅图像分割成若干个矩形区域,一个矩形区域就是一个Tile。每个Tile包含整数个CTU,可以独立解码。划分Tile的主要目的是在增强并行处理能力的同时又不引入新的错误扩散。

Tile提供比CTB更大程度的并行,在使用期间无须进行复杂的线程同步(这个没看懂)。

EncApp

主体编码代码模块,定义了编码时的输入输出和编码器。
成员函数:创建编码器,初始化,销毁编码器,文件写入写出及一些在编码时需要用的功能函数。
在这里插入图片描述

main函数解读

在这里插入图片描述
创建EncoderApp类,EncoderApp中定义了输入输出编码器等。
在这里插入图片描述
创建编码器。

poc:“Picture Order Count”,即图像序列编号或图片的序号。在视频编码(如H.266/VVC)中,POC通常用于表示每个图像帧(或场)在图像序列中的顺序编号,同时也可以作为参考图像(Reference Picture)的选择依据。

在这里插入图片描述
和EncApp.cpp中👇
在这里插入图片描述
和Enclib.cpp中👇
在这里插入图片描述

开始编码视频序列


http://www.ppmy.cn/news/42227.html

相关文章

【Matlab算法】粒子群算法求解二维线性优化问题(附MATLAB代码)

MATLAB求解二维线性优化问题前言正文函数实现可视化结果前言 二维线性优化问题指的是在二维空间中,对于一个由线性函数构成的目标函数,通过限制自变量的范围或满足特定的约束条件,寻找一个最优解(最小值或最大值)。这…

C语言从入门到精通第2天(深度解析C语言数据类型及取值范围)

C语言基本数据类型及取值范围数据存储概述基本数据类型整型数的二进制表示浮点型数的二进制表示取值范围数据存储概述 C语言的变量有着不同的数据类型,每种数据类型的取值空间都是不同的,因此,不同数据类型的变量,其取值空间也不…

Centos7安装部署Jenkins

Jenkins简介: Jenkins只是一个平台,真正运作的都是插件。这就是jenkins流行的原因,因为jenkins什么插件都有 Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,Hudson后来被…

在 Linux 上使用 Pigz 更快地压缩文件,真的快!

Pigz是一款快速压缩文件的工具,它能够使用多个CPU核心进行压缩,使得压缩速度得到了极大的提升。在本文中,我们将介绍如何在Linux上使用Pigz来更快地压缩文件。 安装Pigz 在开始使用Pigz之前,我们需要先安装它。在大多数Linux发行…

【ros2】ubuntu18.04同时安装ros1和ros2

序言 ubuntu18.04(已安装ros melodic)中安装ros2 dashing版本,以支持ros2工程的编译使用 1. 安装ros melodic 参考我之前的文章:docker容器中安装melodic-ros-core过程总结 2. 安装ros2 dashing (1)设置…

[论文速览] Sparks of Artificial General Intelligence: Early experiments with GPT-4

Sparks of Artificial General Intelligence: Early experiments with GPT-4 2023.3.22 微软官方发布了目前人类史上最强AI模型 GPT-4 的综合能力评估论文,总所周知,2023年是通用人工智能(Artificial General Intelligence,AGI&a…

Amazon SageMaker简直就是机器学习平台的天花板

一、前言 最近参与了亚马逊云科技【云上探索实验】活动,通过Amazon SageMaker基于Stable Diffusion模型,非常简单快速搭建的第一个AIGC,一开始以为非常复杂,不懂动手操作,但实际上操作非常简单,没有想象中…

day22—选择题

文章目录1.下列数据结构具有记忆功能的是(C)2.循环队列放在一维数组A[0…M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。初始时为空&#x…