引用
12-12-2002以前曾经说过,使用 Qpel 的时候遇到高动态的场景,压出来的档案反而会变大。
我有提到这是 XviD ME 演算法的问题,后来有做一个补充说明没在这边提过:
引用> 不过高动态使用 HPel 也许是比较好的作法,因为根据他的观察,QPel 在高动态
> 的时候越难成功的找到误差最小的参考方块。
> (这点也和我的测试结果相同,我觉得这是目前 XviD 使用的 ME 演算法的问题)
因为目前使用 QPel 的时候,没有相对应的扩大动作搜寻的距离,
所以使用 QPel 的时候,等于动作搜寻的距离比原来少一半。
(搜寻的 Pixel 数目长度没有增加,而使用 QPel 在同范围内长宽 Pixel 数多一倍,
所以等于搜寻的范围缩小,距离减少一半)
因此使用 QPel 遇到前后物体移动距离较远的高动态画面,就越难找到误差最小的方块。
下一版应该会改进...
- sysKin fixed the search range for qpel resolution.
上述问题现在改进了
- Suxendrol's experimental chroma optimizer
这个 chroma 最佳化的处理是做在 decoder 的部分。
虽然原始提议的 mf 说搞不好用在 encoder 上也可以增加压缩率,
不过我觉得帮助应该不大。
使用动态切换 qpel/hpel,每个 VOP 需要增加一些额外的信息,记录这个 VOP 切换为
哪一种过取样模式。
就像 Quant Type 使用 Modulated 一样,要动态切换 H.263/MPEG 的量化方法,
每切换一次也需要增加一些额外的信息,这样 decode 时译码器才知道要怎么正确解碼。
如果这些动态的切换没有能够提高压缩率,或是增进画面的品质,这样这些切换反而会
白白的浪费一些 bit,用在记录这些额外的信息上面。
之前 sysKin 之所以设计动态 qpel/hpel,是因为使用 qpel 压出来的档案反而变大,
为了让 qpel 的使用更有效率,能够真正的提升压缩率,所设计了动态切换的机制,
只有静态、锐利的画面才使用 qpel。
然而现在 qpel 的搜寻范围的 bug 已经修正,即使在高动态的画面,qpel 也应该能提高
压缩率,所以 koepi 提供一个切换的开关,让你试试是单独用 qpel 压出来好,
还是动态切换 qpel/hpel 压出来好?
最新进度:XviD 现在已经实作出 rrp 的编解碼,加油 XviD!!朝最强的 MPEG-4 Encoder
继续迈进吧~~
时间不多,稍微提一下,关于 2-pass 使用的 quant type,1st pass 用的 quant type
要和 2nd pass 用的 quant type 一样,压出来的效果才会好。
2nd pass 的时候会按照 1st pass 压出来的流量曲线做调整,scale 每个
frame 的大小,
如果 1st pass 用的量化方法和 2nd pass 用的不一样,scale 的预测就会非常不准确,
连带影响 encoder 分配 bit 的效果,这样就无法做到 linear-scaling 了。
所以 koepi 以前说,当你使用 Modulated 的量化方法时,quantizer < 4 会用 MPEG 量化,
>= 4 会用 H.263 量化,quant type 会自动切换。这时如果你设定的码率比较低,
可以预期 2nd pass 时大部分的
frame 的 quantizer 会大于或等于 4,也就是大部分的
frame 会用 H.263 量化,此时你的 1st pass 就要选择 H.263,这样 2nd pass 的 scale
才会准确。
反过来,如果 2nd pass 大部分的
frame quantizer 会小于 4,则你 1st pass 就最好选择
MPEG 量化。
如果没有使用动态的切换 quant type,则 1st pass 时用哪种 quant type,2nd pass 就用哪种。
同样的道理,1st pass 时有用 QPel/Lumi masking,2nd pass 就要跟着用 QPel/Lumi masking;
1st pass 时没有用 QPel/Lumi masking,2nd pass 时就不要用 QPel/Lumi masking。
1st pass 的设定要和 2nd pass 一致。
关于 DVD2AVI 的 Force Film,以下针对的是 NTSC 的 DVD 说明:
DVD2AVI 的 Force Film 只有在 Film 的比例高达 95% 以上时才能使用。
先用预览 Preview 跑一遍,或是大概跑一段,看看 Film 的比例占多少,
如果 Film 的比率太低,强制 Force Film 输出,输出的结果会是垃圾。
DVD2AVI 的 Force Film 选项并不是像 TMPGEnc 的 IVTC 那样,
真的去分析画面交错的数据来判断还原回原来的 24fps。
DVD2AVI 的 Force Film 只是根据 DVD 内储存的旗标(Flag)信息,
组合出原本储存在 DVD 内的 24fps 的
Frame。
Film 的 DVD,也就是 24fps 的 DVD,是在 DVD 压缩的时候,就先做好IVTC。
也就是 DVD 压缩的内容,本来就已经是 24fps 了。
先做好 IVTC 再压缩,因为每秒钟需要压缩的
Frame 由 30fps 减少为 24fps,
少压 6 个
Frame,所以会比较好压,同码率下画质会更好。
然而输出的时候,DVD Player 会根据 DVD 内的 RTF/TFF 旗标的信息,
将内部储存的 24fps
Frame 组合成 30fps 输出,以符合 NTSC TV 的规格。
DVD2AVI 的 Force Film 就是根据这两个旗标的信息,反过来不做 24->30 的转换,
直接输出原本内部储存的 24fps。
所以如果原本的 DVD 的 Film 比例不高(也就是 24fps 的比例不高,
为 24/30 fps 混杂的 DVD),强制 Film 输出的结果会得到错误的
Frame 组合。
因此唯有当 Film 的例超过 95%,才可以选择强制 Film 输出。
一区的 DVD 有很多都是 Film(24fps)的 DVD,所以强制 Film 输出没有什么问题。
因为 DVD2AVI 并不是真的在做 IVTC,真的去分析画面,组合还原回正确的
Frame,
所以也不能批评 DVD2AVI 的 ""IVTC"" 很烂。
使用者应该自行判断,什么时候该用 Force Film,什么时候不该用 Force Film。