不知道大家有没有了解过,或者曾经购买过家用摄像头产品。通常这些厂家在宣传这类产品的时候,会这样打广告:
这里的50%到底是从何而来的呢?有何依据?
今天就来探究一下,H.265/HEVC编码相比于H.264编码,是否真的会有50%的码率/带宽节省,这个50%是理论数据或是测试结果,或是以讹传讹呢?
读过H265/HEVC视频编码标准下面这篇经典论文的人应该都有印象,那里面就提到过50%的码率节省。见下图:
我们知道,视频编码标准里面,对于编码器压缩性能的评价,通常采用的指标是BD-RATE[1]。即在相同视频质量下,考察平均码率的大小。
因此,压缩性能的测试过程,需要考虑视频质量评价的类别,分为客观测试和主观测试两类进行。通常客观压缩性能的BD-RATE计算以PSNR作为视频失真衡量指标,而主观压缩性能的BD-RATE计算会以MOS打分作为视频失真衡量指标。
1.主观性能测试
JCTVC对H265和H264的压缩性能的主观测试过程以及结果,可以在2014年的提案JCTVC-Q1011中查到[3],或者大家也可以阅读参考文献[4]的这篇论文。
这里我说一下这个测试相关的一些重点内容,主观测试打分等级分了11档,每一档表示的具体含义如下:
主观测试时使用的参考软件分别是,HEVC的HM12.1和H264的JM18.5(High profile)。测试分辨率包括UHD,1080P,720P,480P共四类,每个分辨率选择了5个测试序列,一共20个测试序列,如下图。测试时使用CQP(关闭码控)同一序列选择4个码率点。
测试得到JM编码的H264码流,以及HM编码的H265码流的四个码率点数据(MOS分数和平均码率)后,以MOS分数作为纵轴,以平均码率作为横轴,绘制R-D曲线如下图例子所示:
明显可以看到HEVC的R-D曲线要比AVC的R-D曲线更靠左侧,也就是说,相同的主观质量MOS分数下,HEVC码流的平均码率要更小,即更节省码率。
所有主观测试序列最终测试结果如下:
可以看到,HM参考软件编码得到码流和JM编码得到码流相比,不同分辨率的测试序列的平均码率节省情况是不一样的,实际上,即使同一分辨率的测试序列,不同视频内容得到的的BD-RATE值也是不一样的。
从Q1101提案的测试结果,我们可以得出一台结论:
在相同主观质量下(即MOS值相等),在提案所规定的测试序列和编码器配置参数条件下,使用HEVC的参考软件HM12.1相比JM18.5编码码流,可以平均节省59%的码率。
2.客观性能测试
通常进行主观性能测试需要耗费大量的人力,物力,而客观性能测试则相对更加容易实施。
虽然选择PSNR作为客观视频质量测试时失真衡量指标,会存在与实际人眼主观质量评价的差异,但它也依旧是编码器压缩性能评估,不可缺少的一台数据。
在2012年的提案JCTVC-K0279里面,JCTVC选择参考软件HM8.0和JM18.4(High profile)进行了H265和H264编码器客观压缩性能测试。
提案测试时选用的测试序列是JCTVC-L1100里面指定的CTC测试序列,如下:
具体的测试编码参数和配置请看提案。
这个提案最终客观性能测试结果如下图所示:
可以看到,按照JCTVC-K0279提案的测试方案和测试序列,使用HM8.0相比于JM18.4编码,客观性能提升并没有达到50%。
从上图数据来看,在相同客观视频质量下(同一PSNR值),HM编码的码流比JM编码的码流,平均码率节省也就35%左右,All Intra编码配置更低。
不过,在第1部分主观性能测试提案JCTVC-Q1011对应的论文[4]中,他们实际上也同时做了基于PSNR的客观BD-RATE测试。他们的客观性能测试结果是:
按照上图这个测试结果,在同等客观质量下,HM编码的H265码流确实比JM编码的H264码流,可以平均节省码率50%。
虽然说JCTVC-K0279提案的客观性能测试,和JCTVC-Q1101提案的主观测试测试,所用参考软件版本不一致,但H265的参考软件HM8.0和HM12.1之间不会有太大的压缩性能差异。所以,应该或是两次客观性能测试所用的测试序列和编码器配置不同导致的压缩性能差异。
3.结论
通过以上H.265/HEVC视频编码标准中,H265和H264编码器的主观和客观压缩性能测试结果的分析,可以知道:
1.有关H265压缩性能比H264高50%这个数字,是使用H265视频编码标准的官方参考软件编码器HM,以及H264的官方参考软件编码器JM测试得到的。
2.性能测试时测试序列是指定的,且用的CQP模式即关闭码率控制。
所以,关于这个50%,准确来说应当这样表述:
在同等视频主(客)观质量下,支持H265视频编码标准的HM编码器,相比支持H264标准的JM编码器,在特定测试下序列和测试配置条件,可以平均节省约50%的码率。
强调同等视频质量,因为使用的压缩性能衡量指标是BD-RATE。至于到底是主观质量或是客观质量,需要进一步说明。
强调HM和JM,是作为对比测试必须明确作为对比的两个测试对象,即你所用的H265编码器和H264编码器是指什么。
强调平均和约50%,是因为不同测试序列,以及不同分辨率的压缩性能差异很大。有些场景下可能会超过50%,而有些场景可能不足50%。
那么新的问题来了,是否你用一台支持H265视频编码标准的阿猫编码器,和一台支持H264标准的阿狗编码器,进行想当然(不告知测试序列,不说明编码参数)的测试,就能得到在同等视频质量下,阿猫比阿狗可以节省平均50%的码率的结论?
大家可以自个思考一下。
我们再回过头来,重新看一下文章开头的那个宣传广告:
相同像素和码率下,H.265编码的视频存储是传统H.264的50%,节约一半的存储空间。
翻译过来就是:相同像素是说对比测试序列分辨率一样,相同码率,我猜是说目标码率一样,意味着是在开启码控下的测试。H.265编码的视频,应该说的是他们的产品用H265编码得到的视频,至于传统H.264,我就不清楚它指的是个什么了。
这里正常来说,不应该是跟你自个或者某个竞品的H264编码器比吗?还有看这个广告表述,难道只比视频大小,不考虑视频质量吗???
所以,我不禁想问:
1.标准参考软件编码器能做的压缩性能,是否别的编码器也能做到?
2.软件编码器能做到的压缩性能,硬件编码器也能达到吗?
参考文献
[1]Gisle Bjøntegaard, “Calculation of Average PSNR Differences Between RD Curves”, ITU-T SG16/Q6, 13th VCEG Meeting, Austin, Texas, USA, April 2001, Doc. VCEG-M33.
[2]Gisle Bjøntegaard, "Improvements of the BD-PSNR model", ITU-T SG16/Q6, 35th VCEG Meeting, Berlin, Germany, July, 2008, Doc.VCEG-AI11.
[3]T. K. Tan, M. Mrak, V. Baroncini, and N. Ramzan, HEVC Veriication Test Report, document JCTVC-Q1011, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, Valencia, Spain, Mar./Apr. 2014.
[4]T.K.Tan et al.,"Video Quality Evaluation Methodology and Verification Testing of HEVC Compression Performance,"in IEEE Transactions on Circuits and Systems for VideoTechnology,vol.26, no.1, pp. 76-90, Jan. 2016, doi: 10.1109/TCSVT.2015.2477916.
[5]JCTVC-K0279,Comparison of Compression Performance of HEVC Draft 8 with AVC High Profile,Stockholm, SE, Oct. 2012. |