读H.265/HEVC编码笔记(一)
为了适应不同网络环境和视频应用,HEVC也采取了视频编码层(Video coding Layer VCL)和网络适配层(Network Abstract layer NAL)。
NAL:对视频压缩后的数据进行划分和封装。并进行必要 的标识,使其可以很好的适应复杂多变的网络环境。
1分层结构
MTU(Maxiumum Transmission Unit)最大传输单元
分层要求:压缩视频数据与普通数据不同,高效的分组策略必须结合视频数据的内容特性,即不同的网络需要根据视频数据特性采用特定的分组;不同的应用场景对视频有不同的要求,视频业务会采用不同的协议传输。
2为啥要NAL?
目前点播类视频对时延要求低,注重对视频数据的完整性和正确性,采用可靠的TCP/IP,传输过程不需要分析视频数据的内容。视频会议对实时性要求高,采用不可靠的传输协议会导致数据分组丢失。高效的传输策略需要对视频分组的内容特性进行分析。
NAL为复杂的视频数据增加友好的网络接口。通过NAL,视频压缩数据根据其内容特性被分成具有不同特性的NAL单元,并对NALU的内容进行标识。网络根据NALU及标识优化视频传输的性能,不需要亲自分析视频数据的内容特性。
原始视频序列:按照时间顺序排列的一幅幅图像组成,每幅图像按空间顺序排列的像素组成。其有非常好的结构性,易于理解、处理。
压缩后的视频序列由于去除时域、空域及视觉冗余,其结构复杂,难以理解。在网络优化传输高度复杂的压缩视频流时,必须对码流进行深入分析或解码才能清楚不同数据的重要程度。另外,对于网络工程师,了解编码原理、分析压缩识视频流有难度。所以采用NAL来很据视频数据的特性对压缩视频流进行分装与标识,使其可以被网络识别并进行优化处理。
3 网络分组与NALU的组合形式
NAL根据压缩视频比特流的内容特性将其划分成多个数据段,对每个数据段进行封装并对其内容特性进行标识,生成NALU,其内容特性信息存放与NALU头信息中。NALU可以作为 载荷在网络上传输。值得注意,NAL的大小不一定与网络的MTU大小一致。可以有:一个网络分组包含一个NALU;一个网络分组包含多个NALU,即多个NALU合并到一个网络分组;多个网络分组包含一个NALU,即一个NALU被分割到多个网络分组。
4 图像类型
VCLU(VCL NALU):主要承载视频片(slice)的压缩数据(主要包含一个视频片段ss的压缩数据,ss为VCL的压缩数据输出单位,每个ss包含多个完整的按序排列的CTU。
VCLU的头信息标识VCLU载荷的内容特性,主要标识ss的重要性及与其他图像的依赖关系。
non—VCLU:承载的其他信息。
5 时域预测的优缺点
优点:可以有效的提高视频的压缩效率。
缺点:使具有参考关系的图像具有解码依赖关系,每一幅图像的正确解码依赖于其参考图像的正确解码,但是用了尤其是后向时域预测技术会导致图像的解码顺序与播放顺序不一致。时域预测技术使得压缩视频流中图像的关系复杂。
6 IRAP(Intra Random Access Point)随机介入点
为了满足压缩视频流的随机介入需求,如电视频道的切换、视频播放中的快进、拖曳等,一段视频流中通常会间隔地存在一些随机介入点。从IRAP开始,后续视频流(播放顺序在IRAP后的图像)可以独立正确解码,无需参考IRAP前面的视频信息。IRAP后的第一幅解码图像被称为IRAP图像。IRAP图像只包含帧内编码片,不采用帧间预测技术,可以独立解码。
IRAP的前置(Leading)图像:解码顺序在IRAP图像后而播放顺序在其前面的图像。
IRAP的后置(Trailing)图像:播放顺序在IRAP图像后(解码顺序必在其后)的图像。
7 前置图像分类
RADL(Random Access Decodable Leading):不依赖IRAP前码流信息的前置图像。即IRAP介入,其RADL图像可以正确解码
RASL(RAndom Access Skipped Leading):依赖IRAP前码流信息的前置图像。即IRAP介入,其RADL图像不能正确解码
8 IRAP(即随机介入点后的第一个解码图像)的分类:IDR(Instantaneous Decoding Refresh)图像,CRA(Clean Random Access)图像和BLA(Broken link Access)图像。
IDR图像在H.264中作为IRAP图像使用,IDR图像要求其前置图像必须是RADL图像,即IDR图像及其后续码流可以不依赖该IDR图像前的视频流信息进行独立解码。
CRA图像允许其前置图像识RASL图像,允许参考CRA图像前的视频流可以使RASL图像获得更高的编码效率,当直接从CRA图像介入,其RASL图像无法正常解码。当以CRA图像开始的码流的一部分也属于另一段码流时,其RASL肯定不能正常解码。为了方便,将CRA定义为BLA图像,明确其RASL图像不需要解码。
CVS(Coded Video Sequence):由IRAP所分成的相对独立的区域,且两个相邻IRAP图像的NORaslOutFlag=1的视频流。
CVS包含的编码图像组相当于早期的GOP,是一个相对可以独立解码的单位。编码过程通常一CVS为单位设置固定的时域编码结构。不同CVS内的视频压缩数据不会相互参考的称为封闭式GOP。
读H.265/HEVC编码笔记(一)相关推荐
- 【H.265】H.265(HEVC)编码过程和名词解释
一.H.265(HEVC)编码过程 和H.264一样,H.265编码由帧内预测.帧间预测.量化.线性变换等步骤.过程大致如下: 1.分块 一帧画面首先被切分成多个互不重叠的块状区域,称为编码单元(H. ...
- H.265/HEVC编码原理及其处理流程的分析
H.265/HEVC编码原理及其处理流程的分析 H.265/HEVC编码的框架图,查了很多资料都没搞明白,各个模块的处理的分析网上有很多,很少有把这个流程串起来的.本文的主要目的是讲清楚H.265/H ...
- H.265/HEVC学习笔记:量化
量化是指将信号的连续取值(或者大量可能的离散取值)映射为有限多个离散幅值的过程,实现信号取值多对一的映射.在视频编码中,残差信号经过DCT后,变换系数往往具有较大的动态范围.因此对变换系数进行量化可以 ...
- H.265/HEVC学习笔记:变换
一. 原理 图像变换编码是指将以空间域中像素形式描述的图像转换至变换域(频域),以变换系数的形式加以表示.由于绝大多数图像都含有较多平坦区域和内容变化缓慢的区域,适当的变换可使图像能量在空间域的分散分 ...
- H.265/HEVC学习笔记:帧内预测编码
帧内预测编码是指利用视频空间域的相关性,使用当前图像已编码的像素预测当前像素,然后将预测残差(当前像素真实值与预测值之间的差值)作为后续编码模块的输入,进行下一步编码处理.在解码端解码时使用同样的方式 ...
- 佳能R5/R6断电H.265/HEVC编码DAT视频损坏怎么修复
佳能EOS R5不仅支持8K,而且支持H.265/HEVC的MOV视频编码,如果有遇到佳能EOS R5拍摄电量不足等中断导致的DAT文件,一定很想知道这个DAT文件还能不能修复或者转为MOV的视频格式 ...
- 会声会影2018 转码导出H.265/HEVC编码视频
在win10系统 上安装会声会影2018 推荐去国外的官网 https://www.videostudiopro.com 新增功能: • HEVC (H.265) 支持要求 Windows 10 系统 ...
- 【笔记】H.265/HEVC 视频编码(二)——数字视频格式
一.数字视频 视频技术泛指一系列的图像以电信号的方式加以捕捉.记录.处理.存储.传送与重现的各种技术.数字视频即以数字形式记录的视频,数字视频由一幅幅数字图像组成,每幅图像由N行,每行M个像素组成,每 ...
- H.265/HEVC 简述 第二课(数字视频格式)
目录 零.前言 一.数字视频 二.数字视频格式 三.H.265/HEVC编码视频格式 零.前言 本系列博客是对H.265/HEVC视频编码进行一个简单的介绍,主要介绍大致的编码框架和流程,不涉及算法和 ...
最新文章
- java 模拟时钟_java模拟时钟
- 怎么学python-如何高效学python?这篇文章就是为想学的你写的
- Python 数据结构视频教程五
- python 匹配字符串多个_在Python中匹配多个数据集的字符串
- mybatis-plus CRUD及分页查询代码示例
- 0459-Repeated Substring Pattern(重复的子字符串)
- 「BZOJ2654」tree
- pytorch命令式和符号式混合编程
- maven引入hadoop_如何在maven中引用hadoop v2.3.0 jar?
- SQL2008数据库的备份与还原
- 【luogu3372】线段树 1 模板
- python微博接口_Python使用新浪微博API发送微博的例子
- vue在线预览word踩坑日记
- tips:如何在chrome浏览器的网页中截长图
- 简析平衡树(一)——替罪羊树 Scapegoat Tree
- PHP叫号系统,排队叫号系统
- Python爬取上交所年报下载并转成TXT
- 浩辰3D软件中应用程序菜单如何使用?
- HTML对表格隔行变色
- 计算机用老毛桃u盘备份系统,老毛桃一键还原,教您电脑如何使用老毛桃一键还原...