`
H.264三大开源编码器之评测报告
Outline
1、三大开源编码器介绍
2、实验条件
3、实验结果
4、实验结论
plus:
增加t264 high quality mode的实验结果
note: 新增内容设置为黄色底纹,以示区别;文中t264表示t264 fast mode,t264表示 t264 high quality mode。
一、三大开源编码器介绍
1、JM
H.264的官方测试源码,由德国hhi研究所负责开发。
特点:实现了264所有的特性,由于是官方的测试源码,所以学术研究的算法都是在JM基础上实现并和JM进行比较。但其程序结构冗长,只考虑引入各种新特性以提高编码性能,忽视了编码复杂度,其编码复杂度极高,不宜实用。
开发起始时间:2002.2
2、X264
网上自由组织联合开发的兼容264标准码流的编码器,创始人是一个法国人。X264在网上的口碑极佳。
特点:注重实用。和JM相比,在不明显降低编码性能的前提下,努力降低编码的计算复杂度,故X264摈弃了264中一些对编码性能贡献微笑但计算复杂度极高的新特性,如多参考帧、帧间预测中不必要的块模式、CABAC等。
开发起始时间:2004.6
3、T264
中国视频编码自由组织联合开发的264编解码器,编码器编码输出标准的264码流,解码器只能解T264编码器生成的码流。
特点:和X264的出发点相似,并吸收了JM、X264、XVID的优点。
开发起始时间:2004.10
二、实验条件
1、测试序列
选用原则:
a、不同分辨率 qcif和cif
b、不同纹理复杂程度
c、不同运动剧烈程度
选用的测试序列:
Note: 编码帧数的选取原则:采用的帧数和运动剧烈程度成正比关系,因为对于运动不大剧烈的序列,较少的帧数就可以反映该序列的特点。
所有测试序列帧率:30fps
2、实验环境
CPU: Intel P4 2.4G
RAM: 512 DDR
OS: windows 2000 professional
3、编码器版本
JM: JM86(选用的原因:90之后的版本主要是针对高保真的视频,不适合本文的测试序列),VC71编译
X264: 2005.06.16版本,VC6编译
T264: 0.14版本,VC71编译
note: 三个编码器生成的都是release版本,通常release版本的执行速度比debug版本的执行速度快。
4、编码选项
由于x264和t264是基于baseline的,所以JM采用baseline profile.
另注:t264采用fast mode
三个编码器都采用默认的编码选项。
量化步长选择:24、28、32、36
三、实验结果
1、三大编码器的RD曲线比较和编码时间比较
总的平均psnr的求取公式:
The PSNR is derived from average PSNRs of luma (Y) and chroma (U, V) based on the equations below:
Substituting (11) into (6), which gives the overall PSNR
【实验结果分析】
1)RD曲线比较
T264的编码性能和JM86相比,有明显的降低,在同样的码率下,psnr下降1-2dB
X264的编码性能和JM86相比,对于运动剧烈的序列,如foreman, mobile,两者的编码性能相当;对于运动不剧烈的序列,X264的编码性能有提高,在相同码率下,psnr提高0.2-1dB.
2)编码速度比较
从上图中无法看出JM86的编码速度,从后面附表中可以得到,对于QCIF序列,其编码速度是0.4fps;对于CIF序列,其编码速度是0.1fps。
由此可得,X264的编码速度是JM86的200-500倍。而且,x264在低码率的时候其编码速度比高码率时快。
T264的编码速度比X264更快。对于qcif序列,其编码速度是x264的2-2.5倍;对于cif序列,其编码速度是是x264的1.5-2倍。这表明,从编码速度角度讲,t264对于低分辨率序列的效果突出。
另外,对于不同的码率,T264在编码速度上差异不大。
3)In generally
X264和JM86相比,在编码性能和JM86相当甚至更好的情况下,其编码速度可以提高200-500倍。这说明x264真的是非常的有效!!!
T264和JM86相比,虽然编码速度有更大的提高,但其编码性能下降太大,除了一些特殊应用场合(传输带宽比较大但延时要求极其苛刻的场合),T264(fast mode)的意义不大。
4)t264- high quality mode(t264high)
RD性能方面:
T264high和t264fast相比,编码性能有一定的提高,但和jm86相比,还是有一定的距离。
而T264high和x264相比,编码性能的差距就更大了(除了mobile.cif序列)。
编码速度方面:
T264high不如x264,对于qcif序列,编码速度为80-100fps;对于cif序列,编码速度为20fps左右。
In generally:
T264high在编码性能不如x264的同时,编码速度也不如x264。总而言之,t264不如x264来得有效!
2、各量化步长下编码得到的主观图像质量比较选用测试序列foreman.cif首帧重建作为示例。
【JM86组】:
【X264组】:
【实验结果分析】
1) 三个编码器所得重建图像的主观质量相比,从好到差分别是:x264>jm86> t264。在高码率时,三者的差异不大明显,在低码率qp=36可以看出明显的差异。
2) qp从24增至36的过程中,t264的主观质量下降明显,x264的主观质量差异不大(脸部基本上看不出变化,左下角墙壁处可以看出差异)
3) x264的主观质量明显比t264的高,特别是qp=36的情况,但有附表的客观质量psnr比较可以看到,两者的psnr并无太大差异,如qp=36时,x264的y分量psnr=31.14, t264的y分量psnr=30.98, 而两者的主观质量缺有如此悬殊的差异,足见x264在提高主观质量上引入的编码技术是非常有成效的!
3、相同测试序列foreman在不同分辨率下的实验结果比较
【实验结果分析】
1)psnr: 三个编码器的表现一致。Cif序列比qcif序列的psnr略高,特别是y分量,其差异不大于1dB.
2)rate: 三个编码器的表现一致。Cif序列的码率是qcif序列的三倍多,qp越大倍数减少,qp=24为3.5倍,qp=36时为3倍。
为什么分辨率是4倍,而码率是3倍多?
a) 分辨率低了,图像纹理会变得复杂。
b) 一些公共信息(如图片头信息)消耗的码率一样。
3)encoding speed: jm86和x264表现一致,qcif编码速度是cif的4倍左右,而t264下,其倍数达4.5倍左右,说明t264对低分辨率序列的编码比较有效。
4)In generally, 分辨率提高n倍,要得到相近的编码质量,输出码率和花费的编码时间也要增加近n倍。
四、实验结论
1、x264
X264和JM86相比,在编码性能和JM86相当甚至更好的情况下,其编码速度可以提高200-500倍。这说明x264真的是非常的有效!!!
而且,在客观质量psnr x264不如jm86的情况下,x264的主观图像质量却比jm86来得好,这说明x264非常注重实效。
2、t264
T264和JM86相比,虽然编码速度有更大的提高,但其编码性能下降太大,除了一些特殊应用场合(传输带宽比较大但延时要求极其苛刻的场合),T264(fast mode)的意义不大。为了对t264有个公平的比较,需要对t264的high quality 进行评测。
3、t264high
T264high在编码性能不如x264的同时,编码速度也不如x264。总而言之,t264不如x264来得有效!
附:详细的实验结果(表)
`
0