HEVC视频编解码标准学习笔记-1

视频编解码标准H.265/HEVC(High Efficiency Video Coding)通过将视频数据编码为更高效格式,大幅改善了视频流的压缩效率。这里主要介绍Tile、Slice和CTU的定义,以及介绍这些技术组件之间的相互关系。

CTU(编码树单元)

在H.265/HEVC中,CTU(编码树单元)是视频编码的最基本处理单元,它是对H.264/AVC中宏块(Macroblock)技术的一种扩展。CTU的尺寸最大可以达到64x64像素,并且它能被进一步递归地分割成更小的编码块(Coding Block, CB)和变换块(Transform Block, TB)。CTU能在不同的深度上对视频数据进行编码,使得编解码处理能够根据视频内容的不同而灵活调整,大幅度提升编码效率。

Slice和Tile

在H.265/HEVC中,Slice和Tile是对视频图像帧实行并发编解码处理的两个关键机制,但二者有着不同的侧重点。

Slice(切片)

Slice是视频图像中的一部分,由一连串的CTU组成。Slice的设计初衷是为了支持错误恢复、并行处理和提供一定程度上的随机访问。Slice可以是条带形状(条形切片,但必须是符合光栅扫描的顺序,也即从左到右,从上到下)或任意矩形,取决于它们是如何界定的。一幅图像可以包含多个Slice,每个Slice可以单独进行编码和解码,实现了编解码处理的灵活性和效率。
在这里插入图片描述

Tile

Tile是通过将图像在空间上进行分割得到的。一个图像可以被分割成几个Tile,这对于图像的并发处理尤为重要。与Slice不同,Tile提供一种机制来并行处理视频中的多个区域。Tile的设计提高了视频处理过程中的并发性,有利于充分利用现代多核处理器的计算能力。

在这里插入图片描述
(VVC中新增了子图像划分,后续再学习,也希望各位大佬可以加个好友共享一下学习资源,感谢~)

Tile、Slice和CTU之间的关系

Tile、Slice和CTU共同构成了H.265/HEVC编码体系中的多层结构,这些技术配合使用可以在视频编解码中实现不同的目的:
Slice划分目的是压缩数据的高效存储与传输,每个Slice对应一个独立的NAL单元;

Tile划分目的是在增强并行处理能力的同时又不引入新的错误扩散(这里的错误扩散我理解的是当前解码部分会依赖于已解码的像素,如果出现错误,像素错误会扩散到其他CTU);

CTU划分目的是为了适应不同的视频内容

层次结构:从层次上讲,CTU是编解码处理的最小单位,而Slice则是对由若干个CTU组成的视频图像区域进行编码的单元。Tile则通过对整幅图像在空间上的分割来提高处理的并发性。这样的分层和模块化设计既实现了编解码效率的最大化,也保持了足够的灵活性来应对不同的编码情境。
Slice和Tile是互相包含的关系,也即既可以一个Slice包含多个Tile,也可以一个Tile包含多个Slice,但至少需要满足一下两个条件之一:
1、一个Slice中的所有CTU属于同一个Tile(我的理解是这里是指一个Tile包含多个Silce的情况,需要保证其中每个Silce都完整属于Tile)
2、一个Tile中的所有CTU属于同一个Slice(我的理解是这里是指一个Slice包含多个Tile的情况,需要保证其中每个Tile都完整属于Slice)

并发处理:通过Tile和Slice的应用,可以在宏观上对视频图像进行区域划分,实现多个图像区域的并行处理。这对于大幅提高视频编解码效率、加快处理速度、并最终减少编码延迟起到了至关重要的作用。(其中Slice在《新一代视频编解码H266/VVC:原理、标准与实现》有提到,Slice的压缩数据不依赖于其他Slice,可以被独立解码,这里的独立我的理解是这里应该是该Slice涉及的语法元素自身可以确定,指可以正常的进行解码,而不一定能独立的解码输出成一帧图像或一部分图像,因为B slice和P Slice中还需要参考图像参考列表中的内容,不知道这里理解的对不对,如果有大佬能看到这里,希望能指导一下,万分感谢~)

H.265/HEVC的Tile、Slice和CTU这三个组件通过其独特的结构和功能,为视频编解码技术带来了前所未有的效率和灵活性。它们之间的协同工作不仅提升了编码的效率,还大幅改善了视频质量和传输的可靠性。随着视频内容的不断增长和分辨率的提高,这些技术的优势将更加明显,为未来的视频技术发展奠定坚实的基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/400759.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Chrome插件精选 — 缓存清理

Chrome实现同一功能的插件往往有多款产品,逐一去安装试用耗时又费力,在此为某一类型插件挑选出比较好用的一款或几款,尽量满足界面精致、功能齐全、设置选项丰富的使用要求,便于节省一个个去尝试的时间和精力。 1. Chrome清理大师…

基于深度学习的红肉新鲜过期判决系统matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 系统构成与流程 4.2 模型训练与优化 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 ...............................................…

phar反序列化原理及利用

phar是什么? phar 是 PHP 的一种归档文件格式,类似于 ZIP 或 TAR 文件,它可以包含多个文件和目录,并且可以像访问普通文件系统一样在 PHP 中进行访问。在php 5.3 或更高版本中默认开启 在php.ini中配置如下时,才能生成…

线性代数:线性方程组解的结构

目录 齐次/非齐次方程组的解 Ax 0 的解的性质 定理 Ax b 的解的性质 相关证明 例1 例2 例3 齐次/非齐次方程组的解 Ax 0 的解的性质 定理 Ax b 的解的性质 相关证明 例1 例2 例3

docker容器常见操作

目录 一、认识容器 1.1、docker用到的内核技术 1.2、namespace 1.3、Control Group 1.4、LXC与docker区别 二、docker环境准备 2.1、安装docker 2.2、docker daemon环境管理 三、镜像、容器和仓库 3.1、镜像常见操作 3.2、配置镜像加速器 命名空间 3.3、非官方镜像仓…

亿道丨防爆工业平板哪家好丨防爆平板电脑pad:防什么?

在爆炸性环境中,工作安全是至关重要的。防爆工业平板作为一种特殊设计的设备,不仅能够抵御爆炸风险,还提供高效的工作性能。本文将介绍防爆工业平板的防护功能以及其在各个行业中的应用。 在许多行业,如石油、化工、矿山和制药等领…

【RT-DETR有效改进】Best Paper | DAttention (DAT)可变形注意力机制和动态采样点

一、本文介绍 本文给大家带来的是RT-DETR改进DAT(Vision Transformer with Deformable Attention)的教程,其发布于2022年CVPR2022上同时被评选为Best Paper,由此可以证明其是一种十分有效的改进机制,其主要的核心思想是:引入可变…

考研高数(高阶导数的计算)

1.归纳法 常见高阶导数 2.泰勒展开式 3.莱布尼兹公式 4.用导数定义证明导函数在某一点连续的例题

亿道丨三防平板电脑厂商哪家好丨麒麟系统三防平板PAD

随着科技的飞速发展,人们对于移动设备的需求越来越高。然而,在不同的行业应用场景下,常规的智能平板往往无法满足特殊的工作要求。,亿道三防平板,将高可靠性与卓越性能高度结合,为各行各业提供卓越的移动解…

stm32——hal库学习笔记(ADC)

这里写目录标题 一、ADC简介(了解)1.1,什么是ADC?1.2,常见的ADC类型1.3,并联比较型工作示意图1.4,逐次逼近型工作示意图1.5,ADC的特性参数1.6,STM32各系列ADC的主要特性 …

华为OD机试真题-用连续自然数之和来表达整数-2023年OD统一考试(C卷)---python代码免费

题目: 代码 """ 题目分析: 一个整数 连续的自然数之和表示(非负整数)输入: 一个整数T[1,1000] 输出: 输出多个表达式,自然数个数最少优先输出 最后一行, 输出“Result : 个数…

[计网底层小探索]:实现并部署多线程并发Tcp服务器框架(基于生产者消费者模型的线程池结构)

文章目录 一.网络层与传输层协议sockaddr结构体继承体系(Linux体系)贯穿计算机系统的网络通信架构图示: 二.实现并部署多线程并发Tcp服务器框架线程池模块序列化反序列化工具模块通信信道建立模块服务器主体模块任务回调模块(根据具体应用场景可重构)Tips:DebugC代码过程中遇到…

4.Spring MVC入门

文章目录 1. HTTP协议2. Spring MVC2.1. 三层架构2.2. MVC(解决表现层的问题)2.3. 核心组件 3. Thymeleaf3.1. 模板引擎3.2. Thymeleaf3.3. 常用语法 代码 1. HTTP协议 网址:https://www.ietf.org/ (官网网址) https:…

oppo手机如何录屏?解锁录屏新功能!

“最近换了一款oppo手机,感觉它的拍照功能真的很强大。但除此之外,我发现oppo还有许多隐藏功能,比如录屏。但我尝试了很久,都没找到录屏的开关在哪里。有没有哪位oppo用户知道怎么打开这个功能呢?” 随着科技的不断发…

几个常见的C/C++语言冷知识

当涉及到C/C语言时,有一些冷知识可能并不为人所熟知,但却可以让你更深入地理解这门古老而强大的编程语言。以下是一些有趣的C/C语言冷知识。 1. 数组的下标可以是负数 在我们日常的C语言编程中,数组是一个非常常见的数据结构。我们习惯性地使…

opencv python投影变换效果

变换原理: https://www.cnblogs.com/txwtech/p/18024547 python示范代码: src2原图,4个坐标点 dst2转换后,4个坐标点 p_touyin cv2.getPerspectiveTransform(src2,dst2) #计算投影变换矩阵 #利用矩阵值进行图像投影变换 r…

TCP 三次握手和四次挥手

为了准确无误地把数据送达目标处,TCP协议采用了三次握手策略。 1 TCP 三次握手漫画图解 如下图所示,下面的两个机器人通过3次握手确定了对方能正确接收和发送消息(图片来源网络)。 简单示意图: 客户端–发送带有 SYN 标志的数据包–一次握手…

jmeter下载base64加密版pdf文件

一、何为base64加密版pdf文件 如下图所示,接口jmeter执行后,返回一串包含大小写英文字母、数字、、/、的长字符串,直接另存为pdf文件后,文件有大小,但是打不开;另存为doc文件后,打开可以看到和…

Linux多线程服务端编程:使用muduo C++网络库 学习笔记 第十二章 C++经验谈(一)

作者对C的基本态度是“练从难处练,用从易处用”,因此本章有几节“负面”的内容。作者坚信软件开发一定要时刻注意减少不必要的复杂度,一些花团锦簇的招式玩不好反倒会伤到自己。作为应用程序的开发者,对技术的运用要明智&#xff…

Pandas时间序列数据补全

一、问题 时间序列数据缺失,将其补全。 如下图所示,数据存在缺失秒级的情况 二、方法 1、需要将时间戳字段设置成 df 的索引 2、使用df.resample()方法 (1)上采样(将上一条数据作为当前缺失数据) resample()中的参数&#x…