Field :Video与graphics之间的关键区别
当今世界上主要的video信号都是基于field的,而不是基于frame的。无论何时,只要你想处理video,那你就必须对field的一些基本要素做深入理解。用软件正确处理video是需要技巧的;这与处理ol的graphics图像有根本的不同。本文档将对许多这样的基本概念进行解释。
注:这里的信息适用于任何每frame具有两交错的field的video信号格式,包括所有SEI设备所处理的主要video信号格式:NTSC,PAL和525/625线ITU 601数字video(常常被错误的引用为”D1”)。
重点:本文档将使你对由field的video引起的编程问题一般的理解。但是在你可以写代码之前,理解本文及我们的API库中所用到的基本术语也是很关键的。在读完本文之后,请读:Definitions: F1/F2, Interleave, Field Dominance, and More
Field究竟是什么?
你可能知道什么是field,对于以上所列的信号格式,都是一幅只包含一半行数的图像,你可以用这些行拼出一副完整的图片。许多计算机将field视为一种简单的在内存中以行方式展示图片的奇怪方法。其实它们不完全是那样的。Field是一组图像数据,这些图像数据是在同一时间内采样得到的。在video序列中的每一field都在不同的时间被采样,由video信号的field频率而决定的。这个存在于所有field之间的,不仅仅是不同frame之间的时间差正是为什么处理field需要很好的技巧的原因。
例如,假设你有个摄像机,它可每秒拍摄60张图像。假定你使用该摄像机拍摄一个小球随field而离心分离的画面。这里展示了该序列的10 张图片:
每幅图像之间的延时为1/60秒,所以这个序列持续1/6秒。
现在,如果你拍摄NTSC video的相同序列。我们知道,NTSC video是每秒60 field的,你或许会认为拍出来应该和上面的一样才对。那就错了。摄像机确实是以每秒60张的频率拍摄的,但每副图像只包含给定时刻的一半scanline。就像这样:
注:奇数行图像包含了一组line,偶数行包含了另一组line(如果你观察不到这些,试着去提问)。由摄像机拍摄的图像不会是下面的样子:
也不像这样:
拍摄到的field都是时间上不同的。video最严峻的现实是,在任何视频序列中,对于每一时刻的样本,你会丢失一半的空间信息。这就是我们所说的“video不是frame”。事实上,我们这些计算机人将video称之为“frame”并不意味着愚蠢——但是迟早,我们得面对现实……