病理学pbl教学案例:H.264的三种开源编码器比较

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 22:40:52
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、不同运动剧烈程度
选用的测试序列:
格式
序列名称
特点
编码帧数
Qcif
Foreman
纹理复杂度一般
运动剧烈:画面人物和镜头均运动,
并涉及到场景切换
350
Silent
背景纹理复杂度极高
头肩序列
150
Miss_am
背景纹理不明显
头肩序列
150
Cif
Foreman
如前述
350
Mobile
纹理复杂度极高
运动形式丰富——画面有多个运动物体,但各运动物体运动方向规则且平缓,镜头也在移动
250
Mother and daughter
背景简单
画面人物运动幅度不大
150
Note: 编码帧数的选取原则:采用的帧数和运动剧烈程度成正比关系,因为对于运动不大剧烈的序列,较少的帧数就可以反映该序列的特点。
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:
(6)
Solving (6) for rms gives:
(7)
Therefore,
(8)
(9)
(10)
From (8), (9) and (10), we have
(11)
Substituting (11) into (6), which gives the overall PSNR
(12)
【实验结果分析】
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组】:
qp=24                                                                                               qp=28
qp=32                                                                                          qp=36
【X264组】:
qp=24                                                                                       qp=28
qp=32                                                                                      qp=36
【T264组】:
qp=24                                                                                          qp=28
qp=32                                                                                     qp=36
【实验结果分析】
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 of JM86(dB)
_
QP=24
QP =28
QP =32
qp=36
yu
v
y
u
v
y
u
v
y
u
v
Foreman(Qcif)
38.54
40.79
42.63
35.79
39.14
40.51
33.10
37.96
38.97
30.61
36.78
37.35
Foreman(Cif)
38.67
40.45
43.41
36.19
38.47
41.54
33.74
37.31
40.10
31.53
36.19
38.46
(Qcif)-(Cif)
-0.13
0.34
-0.78
-0.40
0.67
-1.03
-0.64
0.65
-1.13
-0.92
0.59
-1.11
表2 psnr of x264(dB)
_
QP=24
QP =28
QP =32
qp=36
yu
v
y
u
v
y
u
v
y
u
v
Foreman(Qcif)
38.36
40.57
42.37
35.61
39.04
40.29
32.77
37.94
38.87
30.24
36.76
37.49
Foreman(Cif)
38.57
40.14
43.23
36.08
38.33
41.45
33.50
37.34
40.12
31.14
36.40
38.68
(Qcif)-(Cif)
-0.21
0.43
-0.86
-0.47
0.71
-1.16
-0.73
0.60
-1.25
-0.90
0.36
-1.19
表3 psnr of t264(dB)
_
QP=24
QP =28
QP =32
qp=36
yu
v
y
u
v
y
u
v
y
u
v
Foreman(Qcif)
38.01
40.67
42.48
35.22
39.06
40.42
32.43
38.00
39.11
30.09
36.85
37.67
Foreman(Cif)
38.24
40.39
43.32
35.72
38.45
41.49
33.14
37.34
40.11
30.98
36.35
38.77
(Qcif)-(Cif)
-0.23
0.28
-0.84
-0.50
0.61
-1.07
-0.71
0.66
-1.00
-0.89
0.50
-1.10
表4 rate of jm86(kbps)
QP=24
QP=28
QP=32
QP=36
Foreman(Qcif)
248.62
135.13
76.05
45.99
Foreman(Cif)
848.40
433.88
231.90
133.71
(Cif)/ (Qcif)
3.41
3.21
3.05
2.91
表5 rate of x264(kbps)
QP=24
QP=28
QP=32
QP=36
Foreman(Qcif)
241.21
130.15
70.16
40.78
Foreman(Cif)
826.88
421.54
218.66
121.50
(Cif)/ (Qcif)
3.43
3.24
3.12
2.98
表6 rate of t264(kbps)
QP=24
QP=28
QP=32
QP=36
Foreman(Qcif)
315.74
172.01
93.11
57.10
Foreman(Cif)
1123.09
576.26
301.40
175.25
(Cif)/ (Qcif)
3.56
3.35
3.24
3.07
表7 encoding speed of jm86(kbps)
QP=24
QP=28
QP=32
QP=36
Foreman(Qcif)
0.41
0.42
0.42
0.42
Foreman(Cif)
0.10
0.10
0.11
0.11
(Qcif)/(Cif)
3.99
3.99
4.00
3.99
表8 encoding speed of x264(kbps)
QP=24
QP=28
QP=32
QP=36
Foreman(Qcif)
3.87
3.80
3.59
3.43
Foreman(Cif)
3.87
3.80
3.59
3.43
(Qcif)/(Cif)
3.87
3.80
3.59
3.43
表9 encoding speed of t264(kbps)
QP=24
QP=28
QP=32
QP=36
Foreman(Qcif)
188.27
209.33
221.80
228.61
Foreman(Cif)
45.53
44.80
47.55
50.91
(Qcif)/(Cif)
4.14
4.67
4.66
4.49
【实验结果分析】
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来得有效!
附:详细的实验结果(表)
1、psnr
附表1 psnr of JM86(dB)
QP=24
QP =28
QP =32
qp=36
y
u
v
y
u
v
y
u
v
y
u
v
Foreman(Qcif)
38.54
40.79
42.63
35.79
39.14
40.51
33.10
37.96
38.97
30.61
36.78
37.35
Silent(Qcif)
38.90
41.22
42.03
35.91
38.77
39.86
32.97
37.21
38.62
30.42
35.43
37.14
miss_am(Qcif)
42.52
40.68
41.66
40.16
39.26
39.11
37.63
38.26
37.10
35.22
37.10
35.23
Foreman(Cif)
38.67
40.45
43.41
36.19
38.47
41.54
33.74
37.31
40.10
31.53
36.19
38.46
Mobile(Cif)
37.37
38.58
38.53
34.07
35.82
35.71
30.71
33.88
33.69
27.71
31.89
31.51
mthr_dotr(Cif)
40.45
43.02
43.21
37.88
41.50
41.54
35.20
40.33
40.23
32.70
38.74
38.79
附表2 psnr of x264(dB)
QP=24
QP =28
QP =32
qp=36
y
u
v
y
u
v
y
u
v
y
u
v
Foreman(Qcif)
38.36
40.57
42.37
35.61
39.04
40.29
32.77
37.94
38.87
30.24
36.76
37.49
Silent(Qcif)
39.53
41.93
42.60
36.67
39.79
40.75
33.67
37.81
39.27
31.02
36.43
38.05
miss_am(Qcif)
42.48
40.62
41.52
40.19
39.45
39.28
37.60
38.71
37.55
35.34
37.75
35.76
Foreman(Cif)
38.57
40.14
43.23
36.08
38.33
41.45
33.50
37.34
40.12
31.14
36.40
38.68
Mobile(Cif)
37.01
37.99
37.94
33.76
35.18
35.05
30.32
33.30
33.08
27.22
31.43
31.11
mthr_dotr(Cif)
40.51
42.88
43.16
38.06
41.67
41.72
35.35
40.68
40.65
32.82
39.39
39.34
附表3 psnr of t264(dB)
QP=24
QP =28
QP =32
qp=36
y
u
v
y
u
v
y
u
v
y
u
v
Foreman(Qcif)
38.01
40.67
42.48
35.22
39.06
40.42
32.43
38.00
39.11
30.09
36.85
37.67
Silent(Qcif)
38.36
41.09
42.02
35.42
38.71
39.78
32.59
37.17
38.50
30.07
35.66
37.18
miss_am(Qcif)
42.12
40.75
41.67
39.67
39.39
39.31
37.07
38.38
37.61
34.08
37.37
35.77
Foreman(Cif)
38.24
40.39
43.32
35.72
38.45
41.49
33.14
37.34
40.11
30.98
36.35
38.77
Mobile(Cif)
36.98
38.58
38.52
33.68
35.91
35.76
30.23
34.10
33.85
27.19
32.33
31.96
mthr_dotr(Cif)
40.04
42.99
43.21
37.51
41.48
41.55
34.79
40.40
40.33
32.27
39.07
39.11
附表3+ psnr of t264high(dB)
QP=24
QP =28
QP =32
qp=36
y
u
v
y
u
v
y
u
v
y
u
v
Foreman(Qcif)
38.37
40.98
42.81
35.68
39.28
40.76
33.05
38.19
39.40
30.70
37.03
37.97
Silent(Qcif)
38.52
41.15
42.08
35.58
38.78
39.87
32.81
37.27
38.60
30.39
35.58
37.13
miss_am(Qcif)
42.33
40.78
41.79
39.97
39.43
39.40
37.37
38.45
37.73
34.41
37.48
35.78
Foreman(Cif)
38.49
40.55
43.48
36.10
38.63
41.75
33.73
37.52
40.53
31.59
36.48
39.08
Mobile(Cif)
37.19
38.77
38.72
33.95
36.15
36.02
30.63
34.39
34.16
27.69
32.61
32.26
mthr_dotr(Cif)
40.21
43.04
43.24
37.74
41.55
41.66
35.01
40.51
40.33
32.49
39.13
39.21
附表4 rate of jm86(kbps)
QP=24
QP=28
QP=32
QP=36
Foreman(Qcif)
248.62
135.13
76.05
45.99
Silent(Qcif)
120.92
74.71
44.71
26.42
miss_am(Qcif)
58.81
29.93
17.40
11.19
Foreman(Cif)
848.40
433.88
231.90
133.71
Mobile(Cif)
2630.74
1482.95
732.12
355.22
mthr_dotr(Cif)
368.22
196.88
110.17
63.42
附表5 rate of x264(kbps)
QP=24
QP=28
QP=32
QP=36
Foreman(Qcif)
241.21
130.15
70.16
40.78
Silent(Qcif)
114.49
70.23
41.46
24.62
miss_am(Qcif)
55.49
28.94
16.77
10.60
Foreman(Cif)
826.88
421.54
218.66
121.50
Mobile(Cif)
2521.00
1481.24
752.51
349.80
mthr_dotr(Cif)
335.04
180.40
98.76
55.51
附表6 rate of t264(kbps)
QP=24
QP=28
QP=32
QP=36
Foreman(Qcif)
315.74
172.01
93.11
57.10
Silent(Qcif)
146.21
88.46
51.19
29.44
miss_am(Qcif)
73.37
36.70
21.31
13.75
Foreman(Cif)
1123.09
576.26
301.40
175.25
Mobile(Cif)
3619.04
2220.10
1198.13
601.28
mthr_dotr(Cif)
438.51
229.01
123.07
71.54
附表6+ rate of t264high(kbps)
QP=24
QP=28
QP=32
QP=36
Foreman(Qcif)
293.79
164.56
97.63
60.58
Silent(Qcif)
130.90
80.62
48.12
30.38
miss_am(Qcif)
65.81
34.43
20.91
13.38
Foreman(Cif)
1009.94
546.61
313.41
188.13
Mobile(Cif)
2749.18
1638.12
900.35
487.33
mthr_dotr(Cif)
363.49
200.02
114.67
67.13
附表7 encoding time of jm86(second per frame)
QP=24
QP=28
QP=32
QP=36
Foreman(Qcif)
2.45
2.41
2.38
2.36
Silent(Qcif)
2.31
2.29
2.26
2.24
miss_am(Qcif)
2.30
2.26
2.22
2.17
Foreman(Cif)
9.78
9.61
9.51
9.42
Mobile(Cif)
10.09
9.88
9.66
9.50
mthr_dotr(Cif)
9.23
9.11
8.96
8.83
附表8 encoding speed of jm86(fps)
QP=24
QP=28
QP=32
QP=36
Foreman(Qcif)
0.41
0.42
0.42
0.42
Silent(Qcif)
0.43
0.44
0.44
0.45
miss_am(Qcif)
0.44
0.44
0.45
0.46
Foreman(Cif)
0.10
0.10
0.11
0.11
Mobile(Cif)
0.10
0.10
0.10
0.11
mthr_dotr(Cif)
0.11
0.11
0.11
0.11
附表9 encoding speed of x264(fps)
QP=24
QP=28
QP=32
QP=36
Foreman(Qcif)
78.33
88.54
99.54
113.12
Silent(Qcif)
126.37
141.24
152.44
174.62
miss_am(Qcif)
123.05
152.28
188.21
223.21
Foreman(Cif)
20.22
23.31
27.72
32.99
Mobile(Cif)
19.56
20.54
21.48
23.29
mthr_dotr(Cif)
30.77
34.17
39.50
48.23
附表10 encoding speed of t264(fps)
QP=24
QP=28
QP=32
QP=36
Foreman(Qcif)
188.27
209.33
221.80
228.61
Silent(Qcif)
240.00
246.31
245.90
252.95
miss_am(Qcif)
252.53
259.52
266.43
266.90
Foreman(Cif)
45.53
44.80
47.55
50.91
Mobile(Cif)
39.03
43.48
48.04
52.12
mthr_dotr(Cif)
49.75
53.94
50.78
55.80
附表10+ encoding speed of t264high(fps)
QP=24
QP=28
QP=32
QP=36
Foreman(Qcif)
62.93
79.17
82.35
84.52
Silent(Qcif)
78.04
90.58
93.17
95.06
miss_am(Qcif)
82.74
96.96
97.98
99.01
Foreman(Cif)
14.86
20.16
21.05
21.68
Mobile(Cif)
12.77
19.71
20.62
21.68
mthr_dotr(Cif)
19.28
23.30
23.70
24.12