CRT显示器通过内部的电子枪从上到下、从左到右扫描屏幕来播放画面。分为逐行和隔行扫描,逐行就是从第1行、第2行依次扫描。而隔行扫描方式为先扫描第1行、第3行、第5行这些奇数行,再扫描第2、4、6偶数行。 一帧画面因此分为两场,奇场和偶场。
在实际拍摄视频时,奇场和偶场的拍摄是存在顺序的。不管先拍摄奇场,还是先拍摄偶场,这两场数据存在时间间隔,因此对于运动图像来说,在这两个不同时间点处于不同的位置,活动主体的位置往往会形成梳状条纹。如下图所示:
隔行扫描视频文件中的帧就是一张照片。如果转换视频时想提高帧率,就需要加插几张相同的图片。但是这种方法在帧率低的时候有问题,易造成视频不流畅。实际生活中并没有真正超过30fps的视频,而平板电视在低刷新率下也不会像CRT那出现亮度衰减现象,为什么还需要50p跟60p的规格呢,25p和30p不就行了吗?不行。事实上这么做就是为了解决插帧后流畅度下降的问题。电视机并不能以任意刷新率工作,但视频文件的帧率有太多可能,为了保证流畅度,使用高的刷新率就很有用。比如,如果一个24fps视频想要转换成30fps,每4帧必须要加插一个重复帧。假设原视频为
A B C D E F G H I J …
现在就会变成
A B C D (D) E F G H (H) I J K…
每一组的前三帧是加快了速度,而第四帧的播放速又减慢了每帧时间占用很不均匀,流畅度成问题
但是插帧到60fps
A A A B B C C C D D E E E F F G G G H H I II J J…
相邻两幅画面的时间比是3:2,情况就好多了
时间再倒回到以前。作为观众,会认为电视上播放电影的能力是必须要有的,但NTSC规范是30fps,播放24p的电影时,如果简单插帧,会造成不流畅,而已经成熟电影的24fps规范不可能专门为了电视而修改。所以电视工程师想到了一个折衷的办法。既然已经有了隔行扫描系统,何不好好利用一下?
让电影的第一帧占用3场,也就是在上场、下场都显示出来后再扫描一次上场,以占用时间。很明显,多出来的这一场对第一帧的显像完全不会影响——事实上对第二帧也不会影响。这是由于隔行扫描的特性:在某帧的一个场已经出来的情况下,只要接下来的1/60秒继续把与它互补的场显示出来,人就能看到完整的画面。第一帧是在第一、二、三场时显示的,第二帧则是在第四、五场显示的,满足要求,较好地实现了升帧。
我们用tFn,bFn分别表示原电影中第n帧的上场和下场的,用Gn表示转换后视频的第n帧,那么
G1=tF1+bF1
G2=tF1+bF2
G3=tF2+bF3
G4=tF3+bF4
G5=tF4+bF4(这里以上场优先为例)
这种模式,使每相邻的两帧占用的时间比为3:2,类似于上述第二种插帧方案。像这种将24fps的逐行视频转换成30fps的隔行视频的方案叫做3:2pulldown,亦称Film、24p(注意该说法只在做反交错的场合下才是这个意思).
话题再回到帧与交错上来。对于逐行扫描,帧指的是一幅完整画面,而隔行扫描是以场为基础的,帧只是将两个相邻场硬性合成的一个小组,不去管画面是不是完整(只因视频文件的结构是以帧为单位,没有帧就不行)。如上面所示,只有G1和G5是由同一个帧的上下场组合而成的完整画面,G2、G3和G4都是由原属于不同帧的上下场凑合而成,不是完整画面。一个帧的上下场分属于两个画面,这种现象叫做交错,有这种现象的帧称为交错帧,而G1和G5这样的为非交错帧。3:2pulldown的特点就是,连续出现3个交错帧(G2到G4)和2个非交错帧(G5和G6)。对于PAL规范,帧率定义为25fps,由于和24fps相差不大,大多数情况都不插帧,而是进行加速播放。少数PAL规格的视频是每24帧(即每秒)加插一个重复帧。大多数PAL视频都是隔行扫描但无交错。
(这里注意了,隔行扫描和交错的概念要分开,不是所有隔行视频都有交错哦)
交错现象原本是在升高帧率时产生的,但后来又出现了一些种类的隔行制式摄像机,它们以25或30fps拍摄,采样后不将同一帧的上下场配对,而总是将某帧的上场与上一帧或下一帧的下场组合,即
Gm=tFm+bFn
或
Gn=tFn+bFm (其中m=n+1)。
这样产生的视频,每一帧都是交错,称为25i和30i,亦称video型。
交错的视频在隔行扫描电视机上播放都是正常的,但是不能直接在逐行扫描显示设备上放,因为对逐行系统来说,它会按帧序依次播放,其中就包含了让原本不属于同一幅画面的上下场——即所谓的“帧”——共同显示1/30的时间,这样人们就很容易看到奇偶数行画面的明显差异,也就是横纹。正是因为交错视频的存在,隔行扫描才一直没有被废除,如果想使用逐行扫描设备播放隔行视频,就必须先进行反交错处理,用专用播放软件,或者进行一次转换,在转换过程中进行反交错。计算机尚且有这个能力,而DVD机、电视机就难说了,所以还不如保留隔行体系来得容易。
反交错
有交错就有反交错。并非所有隔行扫描视频都要进行反交错处理,只有那些存在交错的视频才需要这么做。所以大多数PAL DVD的Rip工作理论上是可以直接跳过反交错步骤(实际仍然需要修正意外的交错帧)。
反交错主要分为场匹配反交错(IVTC)和Deinterlace。场匹配反交错,如果是上场优先,先指定本帧的上场,通过对比它与前一帧、本帧和下一帧的下场的耦合度,力求能把原本属于同一幅画面的上下场找到并重新组合到一起,还原视频。而De-interlace是基于单个的帧,将其处理成你看不出交错的程度,并非还原,跟原画面还是有不一样的。对于3:2pulldown的视频,采取的一般为IVTC,具体过程如下
H1=tG1+bG1=tF1+bF1
H2=tG2+bG1=tF1+bF1
H3=tG3+bG2=tF2+bF2
H4=tG4+bG3=tF3+bF3
H5=tG5+bG5=tF4+bF4这样一来,H1和H2重复了,采用删帧程序删掉其中一个即可。这样就把3:2pulldown还原成24fps的逐行扫描视频,可以在计算机上播放了。(25i/30i的视频则通常使用De-interlace处理)
De-interlace:去隔行,通过一定手段,让原本交错的帧显得不再交错。注意,是“显得不再交错”而不是“还原”,经过De-interlace的画面与原本的画面是有很大差别的。De-interlace只在本帧内进行,是对单幅画面的处理。
常用De-interlace方法:奇偶场直接合并、场复制合并、内插补点、场融合;
奇偶场直接合并法对于静止画面来说,可以实现合并为完整的一帧。但是对于运动画面,物体的边缘会存在梳状条纹。
场复制合并,即仅保留单场,抛弃另一场。再将保留场的行信息进行复制,最后组合为新的一帧。这样虽然大大减少梳状条纹,但是会带来严重的锯齿现象。
内插补点:同样是保留单场信息,丢弃另一场。但是,通过计算保留场相邻行之间的信息,以生成丢失的另一场。效果相对较好且快捷,但是仍然存在一些锯齿。
场融合:为了增加画面的有效信息,可以把内插补点的方法加以延伸,就是分别把原画面的奇数场使用内插补点得到新画面,再把原偶数场使用内场补点得到另一个新画面,然后再把两个新得到画面各取一半合并起来,就便是所谓的场融合方法,也叫奇偶平均合并方法。
CH7038的de-interlace做法应该是场合并的方法,没有使用任何算法实现。所以可以看到比较严重的梳状条纹。
时间滤波(Temporal-Filtering)、空间滤波(Spatial-Filtering)及时空滤波(Temporal-Spatial Filtering):
时间滤波是通过处理相邻场间的信息,而空间滤波是通过处理一场内的信息。时间滤波使用上一场同行同列的像素点产生未知像素。空间滤波使用场内上一行同列的像素点产生未知像素(该方法就是上述的所谓场复制合并)。