一、 为什么会有H265?
1.1 视频分辨率 从720p 到 1080P 再到后面的4k 8k电视蓬勃发展
视频帧率从30帧 到60帧,再到120帧
宏快个数爆发式增长
宏快复杂度降低
运动矢量的复杂度大幅增加
1.2 H264需要改进的原因
对于宏快压缩算法还是以单个宏快进行预测式压缩,帧间预测,从2003年都没有发生过变化,也就是说H264的核心原理一直没变,当初开发编码时,不知道视频分辨率会发展的如此之快。完全超出了H264能编码的范畴。
H.265又称为HEVC(全称High Efficiency Video Coding,高效率视频编码,本文统称为H.265),是ITU-T H.264/MPEG-4 AVC标准的继任者。2004年由ISO/IEC Moving Picture Experts Group(MPEG)和ITU-T Video Coding Experts Group(VCEG)作为ISO/IEC 23008-2 MPEG-H Part 2或称作ITU-T H.265开始制定。第一版的HEVC/H.265视频压缩标准在2013年4月13日被接受为国际电信联盟(ITU-T)的正式标准。
理论上H.265比H.264效率提高30-50%(尤其是在更高的分辨率情形下)。
二、 H265特点
2.1 降低码流,提升编码效率
H.265提供了更加多样化的手段来降低dao码流。除了在编解zhuan码效率的提升之外,对网络的适应性方面H.265也有显著提升,可以很好地运行在多重复杂网络条件下。因此视频会议应用H.265,能够确保在低网络带宽下,仍可实现高分辨率的视频播放。
2.2 高品质1080P60图像质量
传统H.264视频会议系统,在10Mb的网络带宽下,想要达到1080P30的实时通信效果,已经是相当困难了。现在运用H.265编解码技术,这种情况得到大大改观,支持在相同带宽下,实现高于1080P30达到1080P60甚至是4k的视频播放,大幅度提升交互感和逼真感。这也意味着:H.265能够在有限带宽下,传输更高质量的视频内容,不仅让视频会议用户体验到更好的效果,也减少了网络带宽传输高清视频的压力,降低用户使用视频会议的带宽费用。
2.3 降低延时,更高效快捷。
H.265编解码在H.264的基础上进行大量技术创新,尤其是在降低实时时延上有着显著的成果,它通过减少信息获取时间、降低随机接入时延、降低算法复杂度等多维度技术优势来实现。
三、 H.264与H.265的主要差异
3.1 压缩性能比较
H.265/HEVC HM-9.0 和H.264 JM-18.4 的BD-rate 比较:
AllIntra case: 22%
RandomAccess case: 34%
LowDelay case: 37%
3.2 块划分结构
在H.265中,将宏块的大小从H.264的16×16扩展到了64×64,以便于高分辨率视频的压缩。
同时,采用了更加灵活的编码结构来提高编码效率,
包括编码单元(CodingUnit)、预测单元(PredictUnit)和变换单元(TransformUnit)。
3.3 帧内预测模式
本质上H.265是在H.264的预测方向基础上增加了更多的预测方向
H.265:所有尺寸的CU块,亮度有35种预测方向,色度有5种预测方向
H.264:亮度 4x4块9个方向,8x8块9个方向,16x16块4种方向,色度4种方向
H.264的帧内预测方向:H.265的帧内预测方向:
3.4 帧间预测
本质上H.265是在H.264基础上增加插值的抽头系数个数,改变抽头系数值以及增加运动矢量预测值的候选个数,以达到减少预测残差的目的。
H.265与H.264一样插值精度都是亮度到1/4,色度到1/8精度,但插值滤波器抽头长度和系数不同.
H.265的增加了运动矢量预测值候选的个数,而H.264预测值只有一个
四、 H265 帧类型判断
和264的&0x1f不同。265是 :
int type = (code & 0x7E)>>1;
在文件中查找00 00 00 01NALU头,发现在有6种开头分别为:
00 00 00 01 40 01 的nuh_unit_type的值为 32, 语义为视频参数集 VPS
00 00 00 01 42 01 的nuh_unit_type的值为 33, 语义为序列参数集 SPS
00 00 00 01 44 01 的nuh_unit_type的值为 34, 语义为图像参数集 PPS
00 00 00 01 4E 01 的nuh_unit_type的值为 39, 语义为补充增强信息 SEI
00 00 00 01 26 01 的nuh_unit_type的值为 19, 语义为可能有RADL图像的IDR图像的SS编码数据 IDR
00 00 00 01 02 01 的nuh_unit_type的值为1, 语义为被参考的后置图像,且非TSA、非STSA的SS编码数据
在编码过程中,从编码器获取码流的时候,1、2、3、4、5是在一帧数据当中。相当于H264的I帧。
五、 码流解析
5.1 预截取一段HEVC视频码流
5.2 预截取一段HEVC视频码流
5.3 具体分析说明
第一个NALU:0x00000001 NAL起始码 0x40>>1,0x20,十进制32,为NAL_VPS(Video Parameter Set视频参数集)。
第二个NALU:0x00000001 NAL起始码 0x42>>1,0x21,十进制33,为NAL_SPS(Sequence Parameter Set序列参数集)。
第三个NALU:0x00000001 NAL起始码 0x44 >> 1,0x22,十进制34,为NAL_PPS(Picture Parameter Set图像参数集)。
第四个NALU:0x00000001 NAL起始码 0x4E >> 1,0x27,十进制39,为NAL_SEI_PREFIX(Supplemental enhancement information)
第五个NALU:0x00000001 NAL起始码 0x26 >> 1,0x13,十进制19, 为NAL_IDR_W_RADL(Instantaneous decoding refresh)