HEVC/H.265理论知识(11)——网络适配层

本文介绍了HEVC(高效视频编码)的基本概念,包括其分层结构、NALU单元组成及分类、图像类型及其分类如IRAP图像和前置图像等、时域层的作用与分类、NALU的构成与转换过程,以及如何生成字节流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、HEVC分成视频编码层VCL和网络适配层NAL两层。VCL就是传统的视频编码处理,NAL就处理怎么把编码后的数据传输到网络上去

二、NAL上的数据流由一个一个的NALU(NAL单元)构成

三、NALU的分类:封装VPS、SPS、PPS、slice头部信息的NALU称为node-VALU;封装一个slice segment的编码数据的NALU称为VCLU

四、图像类型
     视频中会存在随机接入点IRAP,从IRAP开始,后续视频流(播放顺序在IRAP后面的图像)可以独立正确编码,无需参考IRAP前面的图像,IRAP的第一个图像称为IRAP图像!
1、解码顺序在IRAP前面,但是播放顺序在其后的图像称为IRAP图像的前置(Leading)图像
2、解码顺序在IRAP后面,播放顺序在其后(这是必定的)的图像称为IRAP图像的的后置(Trailing)图像
3、IRAP图像必须是I帧(但是I帧不一定是IRAP图像)
4、前置图像分成两种:
     (1)RADL图像。它不依赖IRAP前面的码流信息
     (2)RASL图像。它依赖IRAP前面的码流信息
5、有三种IRAP图像
     (1)IDR图像。IDR图像及其后面的图像不参考IRAP前面的码流,换句话说IDR图像后面不允许包含RASL图像
     (2)CRA图像。CRA图像运行前置图像可以是RASL图像(但是,无法正确解码)
     (3)BLA图像。如果指定CRA图像后面的RASL图像可以被丢弃(因为无法解码),那么这种CRA图像就是BLA图像
6、IRAP图像把视频流分成多个相对独立的区域,叫做CVS(也叫GOP),如果IRAP图像是IDR图像,那么GOP就是封闭的GOP,否则是开放的GOP

五、时域层
     时域层的作用就是为了标记图像的重要性,在网络比较差的时候,有些不重要的图像往往可以被丢弃。层数越高越不重要,层数越底越重要。共有七层(0~6)
1、下切换,从任何图像开始,把更高层的图像丢弃
2、上切换,从任意图像开始,接收处理更高层的图像
3、对于满足上切换的图像,应该使用sps_temporal_id_nesting_flag标记(值为1)。HEVC定义了两种新的图像类型:TSA和STSA图像用于标识切换点(上切换)。
     (1)STSA图像表示从该图像可以切换到该图像所属的时域层     
     (2)TSA图像表示从该图像可以切换到时域层标识号大于或等于该图像时域层的时域层。

六、NALU介绍
1、NALU中的数据部分需要整字节化(因为数据可能不足整数个字节),即在真实的数据后面添加一个比特1(称为停止比特),如果不足整数个字节,那么需要补充比特0,这些总称为RBSP数据(真实数据+比特1+若干比特0)
2、RBSP数据仍然不能作为NALU的载荷,因为0x000001是NALU的起始码,0x000000是NALU的结束码,因此需要对RBSP的数据进行转换,才能作为NALU的载荷
3、NALU由四个部分构成:
     (1)1个比特的forbidden_zero_bit,值是1
     (2)6比特的nal_unit_type
     (3)3比特的nuh_layer_id,取值为0
     (4)3比特的nuh_layer_plus1,该值减去1表示NALU所在的时域层
4、NALU单元的顺序和解码顺序一致,接入单元AU是多个按解码顺序排列的NALU,这些NALU解码后恰好生成一个图像。
     (1)一个AU包含一帧图像所有的VCLU,还可以包含non-VCLU
     (2)一般情况下,基本的AU不包含下面的NALU:参数集、保留的VCL、填充、保留non-VCLU、未明确等
     (3)当下面的NALU出现的时候,表示一个新的AU的开始:
          ①VPS的NALU
          ②SPS的NALU
          ③PPS的NALU
          ④前置SEI NALU
          ⑤nal_unit_type取值为RSV_NVCL41到RSV_NVCL44之间的NALU
          ⑥定界NALU
          ⑦nal_unit_type取值为UNSPEC48到UNSPEC55之间的NALU
          ⑧编码图像的第一个VCLU(first_slice_segment_in_pic_flag等于1)
5、CVS就是一组按照解码顺序排列的AU,从NoRasOutputFlag=1的IRAP图像的AU到下一个NoRasOutputFlag等于1的AU(不包含它)
6、PPS包含了一个或多个图像共用的参数信息,SPS包含一个CVS共有的参数信息(被一个或多个PPS使用),VPS包含一个CVS共有的信息(被一个或多个SPS使用)
7、NALU流生成字节流的过程:
     (1)在每个NALU前面插入3个字节的起始码start_code_prefix_one_3byte对应的值是0x000001
     (2)如果NALU的类型是VPS_NUT,SPS_NUT、PPS_NUT或者帧的第一个NALU,那么在起始码前面再插入zaro_byte,值是0
     (3)在视频流的首个NALU的起始码(可能包含zero_byte)前面插入leading_zero_8bits,值是0
     (4)根据需要在每个NALU后增加trailing_zero_8bits,值是0

七、结束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值