随着高清视频越来越受到欢迎和超高清视频( 2k * 4 k, 4k * 8k)的出现,他们对视频编码效率提出了更高的要求。如果这些要求再加上对播放立体视频的需求,对于编码效率的要求就更高了, 这些要求已经超出了H264 所能处理的范围。因为移动设备的视频应用所产生的流量对我们的网络环境提出了严峻的挑战。移动应用对高清视频的需求也在不断的增加。HEVC 在设计时主要集中在解决两类关键问题: 更高的视频分辨率、并行处理。
HEVC 的标准只对码流结构和语法结构做了标准化,语法元素中包含对于码流所做的限制, 解码图片所需要的参数。HEVC 的语法是广义的并不局限于某些应用。
CRA 和IDR的区别: 在CRA 之后编码并且在CRA之前显示的图片, 那么它可以用在CRA之前解码的图片作为参考帧。 以解码顺序而言,任何IDR或是IDR之后的图片都不会对IDR之前解码的图片产生依赖,即不会以它们作为参考帧。这就是CRA, IDR之间的区别, 因而CRA具有更加高效的编码效率。所以在解码CRA图片的时候也不需要清空DPB。
IDR 在HEVC中有两种类型: [19, 20] 分别是什么意思?对于解码过程有什么影响,因为IDR 是没有RPS的所以parse 完slice header 就可以对图片数据进行解码的流程,也就是进行熵解码,反量化,反变换等操作。 IDR 对 POC 计算的影响? POClsb = POCmsb = 0也就是IDR的图片POC = 0。所以在IDR之后进行编码但是在琦之前进行显示的图片的POC < 0。也就是说在HEVC中POC是负数的情况是合理的。 IDR 是没有reference picture set 的,但是其他类型的 I picture 是带有 reference picture set的。
BLA 有3种类型 [16, 17, 18] 分别是什么意思? BLA 和 IDR 类似都是重新开始一个CVS, 但是 BLA的POC != 0,而是设置成slice header 中的数值。做这种设定所基于的应用场景是什么东西?
CRA只有一种类型 [ 21] CRA 对 POC 计算的影响? 如果在CRA之后改变图片的分辨率呢? 分辨率改变只能在IDR 或者是BLA之后。
RADL 确保在执行random access 的时候图片是可解码的,这就要求它只能以与其相关的IRAP 为参考帧,或者以参考相同的IRAP的RADL为参考帧。 这才能保证其可解
short term ref 有两种: negative , positive . 每个还有一个相应的指示位用于标示该参考帧是否被当前帧采用。
解码后的图片在DPB中被标记为什么状态?应该是标记为short term ref。
POC 是从0开始还是1开始? 应该是从0 开始,但是POC 也有出现过负数的情况。
在HEVC 中只有POClsb 会在slice header中发送过来,POCmsb需要通过一种公式从前面的图片进行推导。而且这种推导需要保证在多种情况下同样有效。前一张图片的选择就比较讲究了:temperal layer id = 0 的最近的一张图片, 而它不能是RASL, RADL, Sub-layer non-reference picture。
1. 一张或者是多张解码后的图片。 2. 解码顺序上连续。
一个视频文件中的I帧的数目比较少,需要实现随机播放,应该怎么做?
参考文献
http://www.360doc.com/content/13/0925/09/7324690_316909743.shtml点击打开链接
https://hevc.hhi.fraunhofer.de/HM-doc/index.html点击打开链接
http://www.dektec.com/Products/Apps/DTC-354/Downloads/How%20to%20Validate%20HEVC%20Streams.pdf点击打开链接