HEVC/H.265面试问题准备(PART 1. 基础+框架+编码结构)

近期因为要准备暑期实习以及后期的秋招环节,再一次温习了《新一代高效视频编码H.265/HEVC原理、标准与实现》经典书籍,现在记录下有关阅读心得以及可能面试的问题(所有的答案都是我自己思考的或者网络/书上摘抄的,因为本人水平有限,如果有错误或者需要补充可以私聊我)。

第一章. 绪论

1. 视频编码标准如AVC HEVC VVC AVS AVS2 AVS3到底在规定什么?

  • 规定编码码流的语法语义和解码器,只要求视频编码后的码流符合标准规定的语法结构,解码器就可以根据码流的语法语义进行正常解码。
  • 编码器输出的码流每个bit都属于某语法元素,可以根据标准进行解释。
  • 编码器选择什么编码模式/参数,不做规定,只要生成的码流可以解码即可。所以给编码器很大的自由度,标准规定解码过程。

2. 常见的编码标准(看过类似笔试的选择题)

  • VCD: MPEG-1
  • DVD: MPEG-2 / H.262
  • H.264/AVC是MPEG-4的第10部分。MPEG-4支持面对对象编码。

3. HEVC编码框架(之前面试有要求当场画出)
与H.264相比没有革命性改变,仍然是基于混合编码框架,包括预测、变换、量化、熵编码、环路滤波等模块。
在这里插入图片描述
3. 视频编码利用和去除的哪些冗余?

  • 空间相关性 (intra prediction, ibc)
  • 时间相关性 (inter prediction)
  • 频域相关性 (变换,量化)。其中,变换将图像从时域信号变换至频域,能量集中在低频。量化可以减少编码的动态范围。
  • 视觉冗余 (人眼对亮度比色度敏感 4:2:0,对高频不敏感 量化)

4. HEVC/H.265 相比AVC/H.264的新技术/变化?
这个问题可以根据编码框架按照编码流程回答区别和新技术:编码单元与划分===> 预测(intra/inter) ===> 变换 ===> 量化 ===> 熵编码 ===> 环路滤波(去块滤波/SAO)。

① 编码单元与划分
不同于AVC采取宏块(1个16 * 16大小的亮度块和2个8 * 8大小的色度块)为基本的编码单元,HEVC新引入了编码树单元CTU的概念。对于CTU,可以采取四叉树划分,将CTU划分为若干个大小不一(8 * 8 ~ 64 * 64)的CU。HEVC定义了一套新的分割模式,包括CU、PU和TU,下面会有具体的问题分析区别与联系。

② 预测

  • 帧内预测
    HEVC帧内预测模式IPM从最多9种(4 * 4: DC+8角度 = 9, 16 * 16: DC+Plane+Hor+Ver = 4)变为35种(DC+Planar+33角度 = 35)。

  • 帧间预测
    HEVC引入了新的帧间预测技术,包括Merge、AMVP和基于Merge的Skip模式。
    其中,AMVP技术产生的MV既可以作为ME的搜索起点,也可以作为MVP使用。
    亚像素插值算法改进,从AVC的6抽头滤波器(半像素精度)和两点内插(1/4像素精度)变为基于DCT的8抽头和7抽头滤波器。

③ 变换

  • HEVC引入了RQT(Residual Quad-tree Transform)技术。基于四叉树结构,根据CU的残差特性,自适应选择变换块大小。
  • AVC中仅支持4 * 4和8 * 8大小的DCT,而HEVC支持的DCT最大尺寸为32 * 32。大尺寸的变换单元可以在处理高分辨率的平坦区域时提高压缩率。
  • 除了支持DCT,HEVC还支持对于4 * 4的intra块使用4 * 4DST。
  • HEVC引入了ACS(Adaptive Coefficient Scanning)技术。基于4 * 4的块,将TU划分为多个4 * 4块单元,分为对角、水平、垂直扫描。其中,inter块只使用对角扫描,4 * 4和8 * 8大小的intra块,IPM接近水平就垂直扫描,接近垂直就水平扫描,其他对角扫描。

④ 量化
HEVC引入了量化组QG的概念。一个QG可以包括多个CU,也可能存在1个CU包含多个QG的情形。

⑤ 熵编码
AVC中采取了CAVLC+CABAC(大于baseline),HEVC中采取并行的CABAC为主。

⑥ 环路滤波

  • 去块滤波
    HEVC的去块滤波先处理垂直边界再处理水平边界,并非AVC中的垂直和水平穿插进行,所以CTB的解码顺序更加灵活。

  • SAO
    新增了SAO滤波技术来解决振铃效应。其他博文将会分析。

⑦ 其他
多了VPS参数集,用于描述时域各层的依赖关系,传输视频分级信息,兼容可分级视频编码、多视点视频编码的扩展。

第二章. 数字视频格式

1. YUV视频三分量的含义
Y是明亮度,即灰阶值。
U是RGB输入信号蓝色部分与亮度值的差异。
V是RGB输入信号红色部分与亮度值的差异。

2. 常见的色度亚采样

  • 4:4:4格式,色度和亮度分量有相同的空间分辨率。
  • 4:2:2格式,色度和亮度分量有相同的垂直分辨率,但是色度是亮度分量水平分辨率的1/2。
  • 4:1:1格式,色度和亮度分量有相同的垂直分辨率,但是色度是亮度分量水平分辨率的1/4。
  • 4:2:0格式,色度是亮度分量垂直分辨率的1/2,色度是亮度分量水平分辨率的1/2。
  • 在这里插入图片描述

第三章. 编码结构

1. 编码的分层处理架构
GOP ===> Slice ===> SS ===> CTU ===> CU
① GOP图像组
HEVC中,GOP分为封闭式GOP和开放式GOP。其中,和AVC一样,IDR帧引领封闭GOP。IDR会导致DPB(Decoded Picture Buffer 参考帧列表)清空,所以对于IDR帧来说,在IDR帧之后同GOP内的所有帧都不能引用任何IDR帧之前的帧的内容。
此外,CRA是HEVC新增的类型,引领开放GOP。不同于IDR,CRA后的帧可以跨过CRA参考前一个GOP的帧,独立性较差,但是某种程度上可以提高编码效率(参考帧数量和选择增多)。
GOP

② Slice
Slice之间相互独立编解码,不能跨Slice边界进行帧内帧间预测,在熵编码前需要初始化,所以Slice的引入可以防止错误扩散,可方便在数据丢失时重新同步。注:由于Slice之间相互独立,所以也可以用来做基于Slice的并行编解码设计,但是并行编解码的效率不及Tile,原因在于Slice的形状为条带状,横向跨度高,数据的相关性不如矩形形状的Tile。

③ SS (Slice Segment)
SS中包含整数个(≥1)完整的按序排列的CTU,一个Slice可以划为一个独立SS和若干个依赖SS,以独立SS作为Slice的开始。而且,HEVC中每个VCLU包含一个SS的压缩数据,所以SS是VCL的压缩数据输出单位,SS可以作为一个分组传送视频编码数据。

④ CTU
编码树单元,HEVC新引入的编码结构,类似于AVC中的宏块,对CTU进行四叉树划分可以生成不同类型的CU。

结构

2. 视频参数集

  • 参数集是独立的数据单位,包含视频的不同层级编码单元的共享信息。
  • 参数集在NAL被作为non-VCLU进行传输,对关键数据有高鲁棒性机制。
  • VPS是HEVC中新增的视频参数集,包括了多个子层共享的语法元素,其他不属于SPS的特定信息。VPS的引入可以兼容标准在其他应用上的扩展,比如可分级视频编码、多视点视频编码。SPS可以引用VPS的信息。
  • SPS包含了一个CVS(一个GOP生成的压缩数据)中所有图像的共享解码相关信息,比如档次级别、分辨率、某tool的开关标识及参数、时域可分级信息。PPS可以引用SPS的信息。
  • PPS包含了一幅图像的共享参数,一幅图像所有SS(HEVC中每个VCLU包含一个SS的压缩数据,所以SS是VCL的压缩数据输出单位)引用同一个PPS。包含初始图象控制信息,比如QP、分块信息等。
    在这里插入图片描述
    3. 设置VPS的目的
  • AVC中没有VPS来叙述时域各层的依赖关系,所以AVC-SVC中,必须在SEI中提供各层相关信息。但是在多播、广播场景,SEI的部分信息会重复在SPS中,会造成参数重传而导致延迟。所以,HEVC中新增了VPS克服这个问题。
  • VPS的引入可以兼容标准在其他应用上的扩展,比如可分级视频编码、多视点视频编码。SPS可以引用VPS的信息。

4. 简述CU、PU、TU
① 概述

  • CU是预测、变换、量化、熵编码等处理的基本单元。
  • PU是帧内、帧间预测的基本单元
  • TU是变换、量化的基本单元。
  • 三部分单元的分离使得预测、变换和编码各个处理环节更加来灵活,划分更符合纹理特性,保证编码性能最优化。

② CU,编码单元

  • AVC中宏块的最大尺寸是16 * 16。而针对大尺寸图像,平缓区域面积更大,所以更大的块可以显著提高编码效率。HEVC新引入了CTU,CTU进行四叉划分可以分割为若干个尺寸不一的CU,CU的大小可以支持 8 * 8 ~ 64 * 64,更加灵活。
    在这里插入图片描述

  • CU通过Split_flag(1,四叉树划分; 0,不划分)可以标识是否往下划分。
    CU
    ③ PU,预测单元

  • 编码单元的所有预测模式,一切与预测有关的信息都定义在PU中,如IPM、PU的分割方式、MVP_index、MV等等。

  • CU可以进一步进行划分为若干个PU(intra: 2, inter: 8)。具体在标准中,在coding_unit()中,根据CuPredMode(intra/inter)和 PartMode(2N2N,NN,……)进行划分的标识。
    PU
    ④ TU,变换单元

  • TU是完成变换和量化的基本单元,尺寸支持4 * 4 ~ 32 * 32的变换编码。

  • HEVC引入了RQT(Residual Quad-tree Transform)技术。基于四叉树结构,根据CU的残差特性,自适应选择变换块大小。

  • AVC中仅支持 4 * 4 和 8 * 8 大小的DCT,而HEVC支持的DCT最大尺寸为 32 * 32。大尺寸的变换单元可以在处理高分辨率的平坦区域时提高压缩率。

  • 除了支持DCT,HEVC还支持对于4 * 4的intra块使用4 * 4DST。

  • HEVC引入了ACS(Adaptive Coefficient Scanning)技术。基于4 * 4的块,将TU划分为多个4 * 4块单元,分为对角、水平、垂直扫描。其中,inter块只使用对角扫描,4 * 4和8 * 8大小的intra块,IPM接近水平就垂直扫描,接近垂直就水平扫描,其他对角扫描。
    TU

5. 档次、层和级别

  • 档次Profile规定可以使用什么编码工具和算法。
  • 级别Level根据解码端的负载和存储空间的情况对关键参数进行限制,如最大采样率、最大图像尺寸、分辨率、CPB大小等等。
  • 层Tier是把Level分为Main Tier和High Tier。主层用于大多数应用,高层用于严苛应用。
  • 13
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
H.265/HEVC(High Efficiency Video Coding)是视频编码的新标准,也是H.264/AVC(Advanced Video Coding)的后继者。H.265/HEVC的目标是提供比H.264/AVC更高的压缩性能,即可以在相同的视频质量下减小文件大小,或者在相同的文件大小下保持更高的视频质量。 H.265/HEVC通过引入一系列新的技术和算法来实现高效率的视频编码。其中一项重要的改进是采用更高级的块划分和运动估计算法,以利用视频序列中的时空相关性。此外,H.265/HEVC还引入了新的预测模式、变换和量化方法,以更好地利用视频序列中的统计特性。通过这些改进,H.265/HEVC可以达到更高的编码效率,减小文件大小。 H.265/HEVC还支持更高的分辨率和更高的帧率。相比于H.264/AVC,H.265/HEVC可以编码更大尺寸的视频,以适应高清视频和超高清视频的需求。此外,H.265/HEVC还支持更高的帧率,可以编码更流畅的视频。 H.265/HEVC还有一些其他的扩展特性。例如,它可以支持更多的色彩空间和位深度,以提供更丰富和准确的颜色表现。它还支持有损和无损视频编码,以满足不同应用场景的需求。 总的来说,H.265/HEVC是一种具有高压缩性能和更好视频质量的视频编码标准。它在视频通信、视频点播和储存等领域有着广泛的应用前景,可以为用户提供更好的观看体验,并帮助节省带宽和存储空间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值