H.265/HEVC视频编码标准总结

目录

1.HEVC的Profiles(档次),Levels(级别),Tier(层)

1.1 HEVC的Profiles(档次)

1.2 HEVC Levels(级别)和Tiers(层)

 2.HEVC的分层结构

2.1 分层结构概述

2.2 VCL

2.2 NAL 

2.2.1 NAL unit 头包含的信息:

2.2.2 VCL-NALU和non VCL-NALU具体类型如下:

2.2.3 NALU Payload


1.HEVC的Profiles(档次),Levels(级别),Tier(层)

1.1 HEVC的Profiles(档次)

Profile(档次)规定了编码器可采用哪些编码工具(coding tools)或算法,共三个档次如下:
 (1)"Main" profile: 每像素8bit的位深,是最常见的档次。
 (2)"Main Still Picture" profile:
       支持单个静态图像,按照Main档次的规定进行编码,Bitstream contains only a single(intra) picture
Includes all(intra) coding features of Main profile
 (3)"Main 10" profile:
       除了8bit位深,也可扩展支持10bit位深。支持Main 10的解码器必须同时可解码Main档次的码流。

H.265/HEVC视频编码标准总结_第1张图片

1.2 HEVC Levels(级别)和Tiers(层)

level(级别)是对解码端的负载和内存占用影响较大的一系列编码约束的组合,如最大采样率,最大图像尺寸,最小压缩率,最大比特率,DPB容量和CPB(解码缓冲区)大小等。

Tier()是为了不同应用需要的最高比特率的不同做出区分,有main和high两种。

标准规定HEVC有13个level(级别)和2个Tier(层):

H.265/HEVC视频编码标准总结_第2张图片

 2.HEVC的分层结构

2.1 分层结构概述

与H.264/AVC类似,H.265/HEVC采用了视频编码层(Video Code Layer,VCL)和网络适配层(Network Abstract Layer,NAL),VCL层包含了视频数据的内容,NAL主要负责对视频压缩后的数据进行划分和封装,保证数据能在不同的网络环境中传输。通过NAL,视频压缩数据将被根据其内容特性分割成具有不同特性的NAL单元(NAL Unit,NALU),并对NALU的内容特性进行标识。因此,传输网络根据NALU的标识就可以优化视频传输的性能,而不需再分析视频的内容特征。NALU可以直接作为载体进行传输,而由于不同网络支持的最大传输单元(Maximum Transmission Unit,MTU)是不一样的,因此存在一个网络分组包含一个或者多个NALU,或者多个网络分组包含一个NALU。

H.265/HEVC视频编码标准总结_第3张图片 Caption

上图中的Network Abstraction Layer属于其他协议定义的内容。VCL可认为是视频编码后的裸码流,NAL是将VCL裸码流进行打包后进行网络传输的码流。

H.265/HEVC视频编码标准总结_第4张图片 Bitstream是有NAL units组成

2.2 VCL

VCL采用了把图片内静态压缩、图片间的动态压缩、2D变换,以及码流层的熵压缩等压缩技术组合在一起的混合编码技术,其编码框架如下图所示:

H.265/HEVC视频编码标准总结_第5张图片 典型的HEVC编码器结构

和H.254/AVC相比,H.265/HEVC采用了许多新的编码方法,如下表所示: 

 

HEVC/H.265

AVC/H.264

Year

Other Name

Resolutions

2013

MPEG-H

Up to 8K

2003

MPEG-4 Part 10

Up to 4K

Profiles

3 profiles; 13 levels; 2 tiers

21 profiles; 17 levels

Block size

Tree structure

8x8,16x16,32x32,64x64

Square, sym./asym. rect.

Macroblock

16x16(4x4)

Square, sym. rect.

Transforms

Integer-DCT

(4x4,8x8,16x16,32x32)

Integer-DST

(4x4 Intra)

Integer-DCT

(4x4,8x8)

Hadamard

(2x3,4x4 )

Intra-prediction

Up to 33 angular modes

(+DC+planar mode)

Up to 9 modes

Motion prediction

Motion-copy mode

MV precision

Advanced MV prediction

(spatial+temp. co-located)

Merge, Skip

1/4 pixel 7/8 tap

Spatial mediam

+temp. co-located

Direct, Skip

1/2 pixel 6-tap +

1/4 pixel bilinear

In-loop filtering

Deblocking, SAO

deblocking

Quantization

Entropy Coding

URQ

CABAC

URQ

CAVLC, CABAC

2.2 NAL 

HEVC码流是由一系列NAL unit(NALU)组成,每个NAL包含整数字节的数据,头两个字节为NAL unit Header(1 byte in H.264),剩余的为负载数据(原始字节序列负荷RBSP)。不同的NAL单元分为VCL NAL和non VCL NAL单元,前者携带编码过的图像数据,后者包含多帧共享的控制参数信息。

H.265/HEVC视频编码标准总结_第6张图片 HEVC NAL 结构​​​​​

2.2.1 NAL unit 头包含的信息:

  1. 第一bit‘F’为forbidden−zero位,固定为0
  2. 6-bits NALType确定NAL的类型,其中VCL NAL和non-VCL NAL各有32类
  3. LayerID表示NAL所在的Access unit所属的层,该字段是为了HEVC的继续扩展设置
  4. TID(temporal identifier),确定了NAL所在的unit的时域上的层次,如下图:对于a、b而言,虚线下TID都是0,虚线上TID都是1。同一picture内的NAL,TID字段内容相同,作用:TID小的NAL不能依赖TID大的NAL,还可用于控制视频选择部分帧播放。

2.2.2 VCL-NALU和non VCL-NALU具体类型如下:

H.265/HEVC视频编码标准总结_第7张图片 NAL 类型

2.2.3 NALU Payload

  • NALU负载长度为整数字节,承载视频压缩后的原始字节序列载荷(Raw Byte Sequence Payload,RBSP)。
  • RBSP是对视频编码后的原始比特流片段SODB(STring OF Data Bits)进行添加尾部(添加结尾比特1,以凑足整字节)的包装。
  • RBSP可以包含一个SS的压缩数据,VPS、SPS、PPS、补充增强信息等,也可以为定界、序列结束、比特流结束、填充数据等。
  • 在字节流环境中,如果NALU对应的Slice为一帧的开始,则其开始码为0x00000001,若对应的Slice不是一帧的开始,则为0x000001。
  • 为避免NALU载荷中的字节流片段与的NALU的起始码及结束码发生冲突,需要对RBSP字节流做避免冲突处理,经过处理后的RBSP才可以直接作为NALU的载荷信息。同时注意到在解码的时候,这些处理是会被逆处理恢复的。

下面是H.264/AVC的NALU sequence的一个示意图:

H.265/HEVC视频编码标准总结_第8张图片 H.264 NALU Sequence

 

 

本博客所有文章均同步发表于www.mx1980.cn/blog

 

你可能感兴趣的:(H.265/HEVC视频编码标准总结)