MBAFF 视频处理

最近在压制 BBC 出品的纪录片的时候,遇到了 MBAFF 格式的视频。doom9 上查了一下,这种被标注为“1080i”的视频,其实既不是逐行也不是隔行。

407_mbaff_source.jpg

通常,我们所说的“i”(interlaced,隔行扫描)和“p”(progressive,逐行扫描)都是针对“帧”(frame)来说的。将一帧分为高场(top field)和低场(bottom field),统一编码则为逐行扫描,分开编码即是隔行扫描。

但是,MBAFF(Macro-block Adaptive Field Frame)是按照大块来分场。也就是说,在一帧当中,有的大块是逐行,有的大块是隔行。这样一来,用普通的反交错(deinterlace)的话,碰到隔行块还好说,如果遇到逐行块,结果就是变模糊。

在网上搜了很久,终于在 doom9 上找到某达人的解决方法(姑且暂称为“插值法”):

  1. Interp = nnedi2(field=0)
  2. em = TMM(order=0,field=0)
  3. TDeint(order=0,field=0,type=1,edeint=Interp,emask=em)

以下为源片、TomsMoComp 和“插值法”的对比(依次从上到下)。片源为 Bluray 版《BBC: Wild China》。


00:00:12.251

408_wild.china.01.original.jpg

409_wild.china.01.tomsmocomp.jpg

410_wild.china.01.interpolation.jpg

由于这一帧基本上全部为隔行,TomsMoComp 和“插值法”的效果不相上下。但是 TomsMoComp 的速度比“插值法”快很多。


00:49:53.377

411_wild.china.02.original.jpg 412_wild.china.02.tomsmocomp.jpg 413_wild.china.02.interpolation.jpg

这一帧比较复杂。蟒蛇部分为隔行,其他部分都是逐行。可以看出,TomsMoComp 虽然将蟒蛇部分成功反交错,同时也将树枝部分变得模糊。但是“插值法”很出色,不仅反交错了蟒蛇部分,同时也将树枝部分的细节保留得很好。


通过以上比较,暂时可以得出结论,对于 MBAFF 片源,“插值法”是最佳选择。


参考文章:
1. How to deinterlace MBAFF source?

添加新评论