落岸天使论坛

 找回密码
 注册
搜索
论坛,不要冷落了陌生人新人注册后在此报道,奖励20羽毛:)严肃处理违规灌水行为及处罚办法
参与论坛宣传活动,获得积分勋章奖励知羽艺匠及其他模板资源下载珍惜你的ID 珍惜你的名誉
查看: 2820|回复: 2

[分享] 小日本TMPGEnc参数详解(转)

[复制链接]

74

主题

600

回帖

479

积分

水天使

Rank: 3Rank: 3

积分
479

原创先锋奖新人进步奖

发表于 2011-7-27 18:46:12 | 显示全部楼层 |阅读模式
A. video(视频)部分:
, Y. h4 e0 @; j7 y7 ~本部分设定输出的视频码流的类型和参数,大部分参数在模版中已经固定。
% u; p" K9 A8 d1)基本类型:有mpeg1/mpeg2,mpeg1用于vcd, mpeg2用于svcd/dvd.1 O* \; q0 Z1 x, C6 U8 u
2)大小:PAL vcd标准为352x288, pal svcd标准为480x576, pal dvd标准为720x5761 {/ G0 ^; n( a, @0 D
3)画面宽高比:一般应该用4:3 625 line PAL, 这是电视机的屏幕比例
1 k' G8 @$ n% u  s, ?1 Z+ c4)桢率:pal 的标准为25fps
, R0 d& l& t, D/ E2 Z5 [5) 码率控制:码率控制算法是造成各种编码器编码效率和质量不同的关键因素。; C3 A8 P; \6 r' D: @. X# {& ?- |
mpeg标准中并没有对次算法
  i9 q) P( q6 L的具体实现做规定,这通常也是商业版本的知识产权内容。2 n5 U. v. s, q6 l5 P( U# a
CBR, 固定码率:保持码率基本维持在平均码率。实现简单,对复杂场景会因码率不足造成马赛克现象,
' h0 V' @$ Y2 w. g/ Q  z7 V对于5 i- p; `& ?) g/ h1 `5 I
简单场景则不能充分利用编码空间。(这里讲的复杂场景是指细节/边缘丰富以及快速变化场景)。
& q" z0 x% n' x0 L  X5 Y$ z& }VBR, (2-pass VBR), “二次处理VBR”。,
$ ?' a& T7 c; X- ^4 j/ w认为其意思是通过对整个视频源进行2次处理使编码效率最高:: G- j0 H* ?/ i
第一遍判断何处为复杂场景和简单场景,第二遍根据码率的上下限,把码率重新分配更多给复杂场景。3 u1 ~/ }, a- N7 j& `
可以在实验中看出, tmpgenc在进行这种编码时进度指示在50%以前是没有预览图象的,% m! {9 Z5 }  k$ Z" `: t
而且桢进度指示为0。所以建议威龙改译为“二次处理”。  \1 W, b7 m) k8 w
这种码流控制方式应该在给定码率下得到最好的质量,但是和具体2 次分配算法关系很大。7 j* U+ K( \8 }- w
同时耗时最长。一些其他编码器甚至有3次处理的码率优化。9 Z6 @$ p. Z( t- K: j( Z# i  [2 s  E
MVBR (手动可变码率),设定最大码率和对不同的帧类型设定不同的信息损失量,实现局部码率优化。- E( @* h; F9 l9 S5 ]
可以通过手工指定复杂场景为I帧对之进行较精细的编码。参见对于GOP参数设定部分。5 m' `) J0 N9 t4 h2 B7 U, M
CQ-VBR (自动可变码率),设定主观质量值和码率上下限,以主观质量标准对编码器量化环节进行控制,
$ j; ?( h* ~3 v在可 选参数中设定主观质量值以后,编码器就在能达到此质量标准的前提下尽量节省码率。
. J. o( M9 Y  x关键在于编码器对主观质
- P  b$ c% `+ _; x$ `4 h6 _量的评价方法。这是CQ和VBR的综合,也可以看作自动的MVBR。
; H: `$ R5 k- A* T4 M威龙汉化5版 在可选参数中有一行是“不破坏最小码率的状态而填充数据”,
# q6 [- Q3 r: ~2 v0 i4 O# S$ |理解是,如果码率过低就填充无意义码(好浪费啊,不过可能是为了兼容性的原因),; P) e6 p* {' E
英文版这一句没有翻译,还是日文。/ {" D3 x# B- Z
CQ (固定品质),就是比MVBR多了一个主观质量值的设定。7 a3 Z$ v* t- {
RT-CBR (实时固定码率):连GOP层次的码率优化也不做了的CBR,快一点,质量不高3 Y+ l7 \, s; z+ }/ ~: m
RT-CQ (实时固定品质):连GOP层次的码率优化也不做了的CQ,快一点,质量不高4 R% [7 T3 L# m% r; M2 v, F
6)码率:这个码率是指CBR方式下的平均码率
; {. p3 }: r+ n6 w8 A# g! _2 {) g8 v7)VBV缓冲区大小:缓冲区大的话,编码优化会好一些,但是解码的时候也要求大一些的缓冲区。
5 a4 s/ ?+ d' f3 ~8 p, X/ J% i8 t因此,vcd/svcd标准中参数是固定的,否则可能机器无法播放。! m9 p/ R. b6 d  Q7 L7 W, o
8)Pofile & level(类别与级别): 这个参数是mpeg1没有的。6 h3 Q; F3 t$ x2 l5 }1 _' x" W9 k4 W
在svcd/dvd应用中应该是MP&ML,模版自动选定。
7 k$ Q8 i! V; q$ B5 _/ j  S* QMP&HL是为HDTV定义的,分辨率可以高达 1920x1100 ./ B! m8 t$ u6 L1 V; J5 A7 o. _
9)制式:好象这个也是mpeg2相关的参数。我们应该用PAL.. o0 H$ P- @8 j( Q
10) 隔行扫描:mpeg1只支持逐行扫描(25 frame/sec),mpeg2可以选择隔行(50 field/sec)。$ c: h8 p1 m# s! @- o& B' m, _/ ~
如果成品在电视上播放,建议选择隔行,使运动平滑。但是隔行的视频在pc上看会有毛刺现象,
9 }# r6 d6 W: M! v在水平运动景象中尤其明显。9 c! ^/ _. A$ M. T
11)播放时实现3:2下拉: 这是在film/NTSC制式转换中需要的,即在编码时维持帧率不变,6 Y* _% T; ]+ M" r: ?% a0 N( W
不做3:2下拉,而在播放中实现。参见B.advanced部分。感谢威龙指正。- _5 N0 k; L2 k* i+ V9 H9 ~
12)YUV格式:给亮度/红色差/蓝色差分配的码位。对于人眼来说,亮度信号+ b: E# p- u2 y' |/ D4 s
是最敏感的,所以就分配比较多的编码空间以求精细,对于色差则粗糙些。一般就是4:2:0了。5 b! t) ^9 V7 [% }/ }! h7 ]" z; {) A
(其实4:2:0方案给蓝色差的码位不是0,不知道为什么这样写)
$ g8 F/ U( ~5 \5 h# e13)DC分量精度:在mpeg编码中需要对8x8的图象块进行DCT(离散余弦变换),
+ q1 ]9 f  F7 @5 C$ N7 ^DC分量的意义基本是代表8x8块中的平均值,一般需要为之分配比较大的编码空间,& R6 E% J& J5 a) g
否则马赛克的边缘效应就比较明显。(8bit就不小啦,图象压缩中是每个bit的油水都要榨干的)
; W) c! w5 O" W6 c14)运动检测精度:mpeg是对I帧进行帧内编码,对P帧进行预测误差编码。就是对于P帧的图块,
" e: F9 k% o7 V5 F% x% ~在I帧中寻找对应的部分,然后对两个图块的差异部分进行编码,可以大大节省码率。6 H0 W& e! g/ p* |" l  m
运动检测精度越高,图块搜索匹配的范围越大,编码效率越高,同时编码速度越慢。! p  \6 |9 p$ r" O  U% }
这部分算法同样没有在mpeg标准中定义,各个厂商实现水平相差会很大。
+ c' Q1 ?+ T1 _8 `4 ~一般来说,在 tmpgenc中设置为普通即可。, a. _1 l% G+ g; x- x% U# ~( l8 Q

! \* n! j5 ^* Z" w! nB. Advanced (影象源)部分:8 w% M/ \$ F8 W  u0 F6 \) C9 j0 P
本部分设置视频源相关的参数,以及在编码之前对视频源进行的预处理。
) @0 Z6 H1 h5 {/ W. m7 }1)视频源类型:隔行扫描/逐行扫描。这个参数在打开视频源文件的时候会对之自动判断设置。( _1 a3 @' F' G) J7 f( {0 M$ z
tmpgenc12版不能自动识别type1 DV,在12a版本中已经解决。参看的编码测试页。" ^. J% p* c- R) I, N
2)场顺序:这是整个 tmpgenc甚至整个桌面视频领域中最混乱的一部分。
4 Y  t7 w6 k& N' Y& s2 i' \. b0 etmpgenc12a好象也不能根据视频源自动设置这个参数.7 n, h3 X  B7 ~* N/ b
在这个问题上搞了很久,才算明白了一点。这个参数是至关重要的,设置反了会造成生成# L: ?3 b1 P) p: i2 @4 ^! b$ q
图象的明显闪动,打个比方,一个物体的运动位置次序本来是1-2-3-4-5-6-7。。。,
, x* [! x" |# F6 M- [" ?设置反了以后就成了2-1-4-3-6-5-8。。。对于模拟视频源,其场序是由捕捉卡类型决定的,! U( l* D& I& V8 S5 C
对于dv,则定义为field order A。讲到这里还没有什么麻烦,但麻烦的是虽然场序只有2种,
* u5 A4 x- t0 L' r8 Y0 c对于他们的叫法却有3种:
) [3 e; A. D: j; yfield order A/B (在ulead软件中的叫法),
( L! E: u) X% f( a; a$ a  i; ]& J( Seven/odd line first ( tmpgenc的叫法),/ X! @+ J% h5 N) y, z
field top/bottom first(bitrate viewer叫法),这3种叫法之间的对应关系是最让人头疼的。2 w9 Y! t8 O5 t! o
在英文版的 tmpgenc12a中,缺省的设置为“even line first (field A)”,,
# s) \$ S' o- t8 N8 H但在威龙汉化中缺省设置为“奇数场->偶数场”,曾就此请教威龙,威龙讲这是日文版的原意,7 M3 m; C( p% V0 t# {
注意不要在字面上混淆了.
7 K' F2 v% _: z3 v) r4 s总之,3种叫法的关系是这样的:$ v1 u/ w' Y& k2 J
field A = even line first(奇数场->偶数场) = field bottom first。 最可靠的方法,是用不同的
5 o7 J% s$ V: A2 p: Z设置对高速运动场景各生成一段隔行扫描的视频,并在电视上观察,应该能够看到差别。  U/ z6 |+ N2 Q& h
3)视频源的宽高比: tmpgenc可以自动识别设置,一般应该为4:3
- v9 O* K* q+ s& M  W. K625line PAL.; I' s- {% G% s
4) 画面显示比例和位置:4 l" @+ F" R: @9 B+ V0 q4 R7 T8 U2 L
一般选用“全画面显示并宽高比不变”,# C, `* O9 D# N
所谓“全画面显示并宽高比不变2”选项可能是会造成部分画面不可见,没有尝试过这一种。/ j- P% s" [3 D2 D
在4:3视频源中可能没有差别,但对于16:9宽屏影象在 4:3屏幕上输出而言,
" {, A; B2 `! W7 ]“全画面显示并宽高比不变”是在上下留出空白,
( S" I( y# [# C/ r) _" B, l. q3 ~8 Z“全画面显示并宽高比不变2”会截掉左右两端画面。。。没有这样试过,' x8 {6 q  }* G" o  H
仅为猜测,不正确的地方请朋友们指正。
, @8 p( _  T6 l7 }4 G( s8 w9 W5)滤镜选项组:
* `4 A) _  X. V7 v- ?+ F  Z$ \这一组设置可以对视频源进行预处理以提高影象质量。
5 V/ t8 B6 W9 J% u4 n4 {" [一般来说,都是在非编软件中实现这些功能的。) @4 _. P* U% w, Q  |$ [
另外,对滤镜的使用要适度,因为客观上任何滤镜的使用都是引入了信息损失,
5 S2 E' r; h- {/ [6 p" k这是对低品质视频源提高主观质量的代价。2 l2 ~  _7 _( N2 A. V; N; p1 L
影象源范围:选取部分影象源进行压缩
# p3 X  v( I' p/ \7 `5 R8 W" Y  T24fps化:24fps是电影标准,一般不选- W4 l: w8 D! V* v0 J6 I( A. N
消除鬼影:鬼影是影象的重影,视频源不好的时候会出现。在dv中没有遇到过。
6 N4 I; X! O( _$ J+ s消除噪音:在低光条件下的拍摄中影响中回出现明显的颗粒噪声,利用此滤镜可以消除。
( L+ l# ~6 @& f不过副作用是平滑了图象,. e' i" h( P4 ?' T1 w
比如人的面部会象橡皮娃娃一样,光滑但没有质感。) a" \! \  J7 `( R  H
锐化边缘:可以对横向/纵向边缘分别设置参数,做增强处理
* Z6 [; ?8 @/ j. F6 O简单色彩矫正:调整亮度,对比度,gamma,色度等1 q7 p& v% p* V% N/ G. h. w
高级色彩矫正:可以按照不同的色彩空间RGB/YUV等进行色彩矫正6 h: v9 h6 c7 h3 E  ~, }
消除交错信号(de-interlace):把隔行扫描的视频源转换成逐行扫描的视频,( `5 L: \2 y! x7 a  u8 w: g
如果对输出的视频设置为隔行扫描(如在打算电视上播放的svcd/dvd),则不要选用。/ S0 O, H, ^: P
认为在做vcd(逐行扫描mpeg1)时候也未必需要选用,要看视频源的大小决定。3 E; e3 X- L: q& l' i1 ~: u8 O. k
比如用dv 576线,在做vcd时候只需要288线,简单舍弃一个场就可以,不需要deinterlace.
( D' P, z6 {9 X4 {$ g相反,如果视频源是352x288的隔行扫描视频,则需要做de-interlace., B/ V9 ^' r$ p; w; [) s
裁减画面:由于电视机播放视频的时候对边缘四周的部分做舍弃,
: i( |; A5 [% }" {0 v) k4 d所以可以利用这一点只对可见部分进行编码,这样可以加快编码速度,+ j0 T$ }. ?5 X# h  q+ i( B
并且因为节省的码率可以利用在未裁剪区域从而提高画面质量。一般来说对上下左右各裁剪5%是安全的。- B9 M' ]5 Y( p6 O$ H
3:2下拉:因film 24fps和 NTSC 30fps帧率不同,在制式转换中所需要做的调整。一般不用。
: t1 U* U% ]- i; }- D* W/ X帧率不变:没什么好讲的
) N, K% R0 P. G声音处理:可以增大/减小音量,并做声音的淡入/淡出。* N' R3 f* Y; f7 H8 _2 }2 N/ T

8 W9 Y& e, _& L% eC. GOP结构
5 y/ C! V3 b3 d6 n7 U- ]GOP = group of picture. 在mpeg中一个GOP就是一组时间上连续的画面。
  ?, q, a8 ^. h9 Empeg中的画面分为3种:I,P,B.I是内部编码帧,编码方式基本上就是jpeg的格式。
# o( l4 F0 U) o" AP是前向预测帧,编码方式是使用运动检测误差编码,参看A部分对运动检测的说明;! E# E3 @* w1 B$ F
B是双向内插帧,根据前后I/P帧进行插值运算,对插值误差进行编码。, d5 k( E! n% }/ @* i
建议一般不要修改GOP结构,以取得压缩比例和图象质量之间的最好平衡。
& ]4 ^) ]& a0 D" [7 o. f( s4 e, G极端的例子是只用I帧,图象质量会有保证,但码流会很大。: u. t, Q* K0 i5 U2 o
1)输出编辑用的码流:这个选项会把GOP最后的B帧取消。因为B帧是双向内插的,
) M! ]/ _# @: x其编码/解码不仅需要以前的I/P, 也需要以后的I/P帧。
6 }% L2 C, P( g. V  f取消最后的B帧,可以去除GOP之间的依赖性,从而便于编辑。# C6 x& `% s( b- y1 S8 T% H4 _8 i: G3 a- p
2)检测场景变化:对于快速变化的场景,强行设置为I帧,以保证画面质量
, R$ P( d4 Y& b+ e# R3)手工强制设定帧类型:手工设定需要精细编码的画面帧为I帧。% a! V* v7 C' n% g' A# O4 D
结合MVBR码流控制可以全面控制码流分配。/ }3 D; `; m# M$ U7 R: ~
) D* Y; R& ~% c% R
D.量化矩阵
* d+ H. s( ?0 Z$ J" r9 m" |9 J, ampeg中的量化是对8x8 YUV 信号图块进行DCT变换之后的系数的量化。+ }. T- p$ d  x
通过对高频分量使用比较大的量化阶从而达
7 l! o% X# C$ ^到减小高频分量的编码空间,达到压缩的目的。代价就是丧失图像细节,边缘模糊等。8 e1 b5 W/ C" I4 f8 p; u  g3 A
1)帧内编码量化矩阵:这是指对I帧使用的帧内编码量化矩阵0 W1 A4 A4 @( W
2)帧间编码量化矩阵:是指对非I帧的帧间预测误差编码所用的量化矩阵。威龙汉化版中叫外部矩阵。
8 g: d2 x; l& {# m/ I3)矩阵模版的选择:建议对一般的视频选用mpeg标准,可以看到,其帧间编码矩阵统一为16,
1 n9 G" Q9 K( G! r5 H5 ^" _这是因为帧间误差已经抵消了低频分量,高频分量丰富,所以和帧内编码矩阵有所不同。; k' s8 @6 }- D0 Q$ c2 d
对于计算机动画尤其是2维线条为主的动画,
' g# A7 o; {5 ^( |建议选用CG模版,,可以看到因为CG本身高频信号丰富,其帧内编码矩阵也统一为32。
& S% B: p: W$ S. B另外,有朋友尝试减小量化矩阵的各个数值,认为这样做的意义不大。
8 x5 p  G) [8 D+ w( h. ~0 b6 R; [因为量化矩阵并不是量化的唯一因素, 事实上的量化程度要根据码流控制部分的反馈信息而自适应调整。
1 \7 q. N" z8 r这样,即使量化阶减小,在码率有限的前提下,6 D/ X* R! p! X
量化系数还是会加大的。。
; L7 d( b# x. k* W& }4)YUV输出为YCrCb: YCrCb色彩空间分配给Y亮度信号的编码空间更大,如果视频源是YCrCb格式的话,
+ @- @( X# a: d这个选项 可以增加画面质量。。不过一般都是采用YUV(CCIR601),5 F! N4 B/ |2 K
如dv,所以不要选择这个选项,否则白白浪费码率。
4 d" T1 m  ?/ g- @5)浮点离散余弦变换:整点运算的速度比浮点要快很多,但精度不如浮点。
: S7 }, ~$ \- ^7 o; @5 l猜测这里的浮点其实只是把DCT变换的系数从8bit增大为16bit的精度,9 n1 d+ w6 b0 J
并不需要浮点运算器单元参与变换,否则速度是不可忍耐的。* ~7 P# q& E4 L  l: F2 g
6)不对静止部分做半像素的运动检测:由于视频源是隔行的,对于精细的静止边缘线条(1个像素宽度)+ w# R- ?, W* \  }/ G
比如静止字幕会出现一个场中出现,另一个场中不出现的闪动。选中这个选项会消除闪动。。
1 F* s3 A9 t4 W" i. @: H不过觉得好像这个和量化矩阵无关。
# t( _+ w! u3 ]6 [& w7)柔化马赛克:没什么好说的。就是在8x8图块的边缘做一些特别处理。
4 n3 f2 t; }6 h能用足够的码率或者码率控制手段解决马赛克最好,
  }9 ?* p% h0 c! i! z因为这里的柔化虽然只对边缘进行低频滤波,毕竟还是会对画面造成影响模糊化。
3 Q5 y: W$ K, e+ Q7 C
( ^  R% h: w  b4 w* i( e& VE. 音频:+ a# L6 y% O5 e  ?" E
这部分大多不需要改动vcd/svcd模版。也没有大的影响。不多讨论。
4 B5 V( U  }2 w- x* [$ |; A5 x  U
F. 系统:! B3 l" x# M8 o5 {  V5 g9 W; k
mpeg的系统是指视频+音频。vcd/svcd/dvd模版中已经设定好。(
" n( F$ @+ a% ]7 i& p9 H4 F' j
8 j% S( }" {0 M$ D, [& C' A[ 本帖最后由 goodskycn 于 2011-7-27 19:05 编辑 ]
天行健,君子以自强不息。
地势坤,君子以厚德载物。

147

主题

1万

回帖

8987

积分

圣天使

Rank: 8Rank: 8

积分
8987

优秀会员奖

QQ
发表于 2011-7-27 18:57:58 | 显示全部楼层
好教程,谢谢。
强烈野心成就伟大梦想!
回复 支持 反对

使用道具 举报

20

主题

1529

回帖

1402

积分

云天使

Rank: 4

积分
1402

60周年国庆纪念勋章五周年纪念勋章

QQ
发表于 2011-7-27 20:20:07 | 显示全部楼层
不错的教程,收藏了。感谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|落岸天使论坛

GMT+8, 2025-7-6 23:27 , Processed in 0.078863 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表