11345 29.97 Hz 这种奇葩帧率是怎么来的?

  制作电影或视频的人也许知道,有些影视节目的帧率是 29.97 帧每秒。你也许有想过:这个数字明明这么接近 30,为什么就不能凑个整呢?我在网上试图找寻答案,却发现竟然没有一篇文章能够清晰、完整地梳理出 29.97 这个数字的来历。那么,就由我来考一下古,补上这个空缺吧!当然,作为半个外行,考证出的细节难免有错误或遗漏,欢迎影视、通信等业内人士纠正、补充。

  29.97 Hz 这个帧率,要追溯到 1950 年代美国模拟电视的 NTSC[1]标准。模拟电视在最近十年已经逐渐被数字电视所取代了,但模拟电视带给我们的影响还未消散。NTSC 是模拟电视的三种制式之一,另外两种是 PAL 和 SECAM。三种制式分别由美国、德国和法国提出,它们的使用范围如下图所示。

图 1:三种模拟电视制式在世界上的分布。图片来自:https://upload.wikimedia.org/wikipedia/commons/0/0d/PAL-NTSC-SECAM.svg

  NTSC 制式标准有过两代:第一代是 1941 年制定的,只支持黑白画面,此时的帧率确实是正好的 30 帧每秒。到了 1953 年,又推出了支持彩色画面的第二代标准。在第二代标准的制定过程中,人们发现,为了避免声音信号对彩色画面产生干扰,不得不对第一代标准中已经定好的一些参数进行微调,29.97 Hz 的帧率就是这样微调出来的。

  在这篇文章中,我就来追溯一下 NTSC 黑白及彩色电视标准的制定过程,以及在选取一些参数时的技术考量。你将会看到第一代标准是怎样给第二代标准埋下了坑,第二代标准又是怎样通过「丑陋而又巧妙」的方式避开这个坑的。

一、NTSC 黑白电视标准

1.1 画面标准

  黑白模拟电视的原理大概是这样的:屏幕后面有一个显像管,它可以发射电子束打到屏幕上,形成亮斑。电子束的强度以及它打在屏幕上的位置都是可以控制的。电子束在屏幕上沿水平方向从左扫到右(称为一条「扫描线」),就可以显示出一行画面;从上到下扫描许多行(称为一「场」),就可以在显示出一幅完整的画面来了。

  屏幕上的扫描线数,实际上会多于画面在竖直方向的分辨率。多出来的扫描线不会在屏幕上显示出画面,而是用于承载同步信号等必要的信号,或者字幕等额外信息。为了减弱画面的闪烁感,实际电视中还采用了「隔行扫描」技术,也就是在一场中只扫描偶数行,下一场中只扫描奇数行,这样就需要两场才能显示一帧画面。

  NTSC 黑白电视标准制定于 1941 年。其中,与画面有关的参数为:

  ● 帧率为 30 帧每秒,采用隔行扫描,故场频为 30 * 2 = 60 Hz;
  ● 画面分辨率为 486 行 * 720 列;
  ● 水平扫描线数为 525 条,故行频为 30 * 525 = 15,750 Hz。

  这里,场频 60 Hz 这个数字与美国交流电的频率一致,这样取的好处是可以减少电源杂波的干扰。720 列这个数字可以说是「拍脑袋」想出来的,并没有什么原因要求它必须正好是这个数值,它与本文下面的讨论关系也不大。486 行这个数字,是从 525 条扫描线中扣除承载其它信息的扫描线后剩下来的。而 525 条扫描线这个数字的来源就比较复杂了[2]

  首先,扫描线的数量需要是一个奇数。这样,在扫描完最后一个偶数行(第 524 行)后,开始扫描第一个奇数行(第 1 行)时,电子束需要上移 523 行的距离;在扫描完最后一个奇数行(第 525 行)后,开始扫描第一个偶数行(第 2 行)时,电子束也需要上移 523 行的距离:这两个距离一致,比较方便电路实现。

  其次,扫描线的数量不能包含比较大的质因数。这是因为,在发射端(电视台)和接收端(电视机)中,都需要用电路来产生频率为场频和行频的周期性信号。为了保证这两个信号的同步,它们是从同一个振荡器发出的高频周期性信号中通过「分频器」降频产生的。以 40 年代的技术水平,分频器输出的频率只能是输入频率的小整数分之一。

  扫描线的数量既然是奇数,就说明它不能包含质因数 2。如果只允许它含有质因数 3、5、7,那么在 400 ~ 700 之间(画面竖直分辨率的合理范围)可选的数就只有如下这些:

\begin{align} 405 &= 3^4 \times 5 \\ 441 &= 3^2 \times 7^2 \\ 525 &= 3 \times 5^2 \times 7 \\ 567 &= 3^4 \times 7 \\ 625 &= 5^ 4 \\ 675 &= 3^3 \times 5^2 \\ \end{align} \

NTSC 选择了 525。下面将会看到,525 中包含的质因数 7,就是万恶之源

1.2 传输标准

  除了与画面有关的参数外,NTSC 标准还包括有关信号传输的内容。电视信号是利用无线电频谱中的甚高频(VHF,30 ~ 300 MHz)和超高频(UHF,300 ~ 3000 MHz)频段传输的。信号在从电视台发射出去之前,要进行调制,即通过修饰一个频率处于 VHF 或 UHF 频段内的载波信号,让它携带上画面以及声音的信息;被电视机接收到后,则要进行解调,即把画面和声音信息解码出来。常用的调制方法有调幅(AM)和调频(FM),即让载波的幅度或频率随着要传输的信号变化。

  调制后的信号,会在频谱上占用一段带宽,它一般是关于载波频率对称的一段,其宽度与被传输的信号本身的带宽有关。来估算一下 NTSC 标准中黑白画面信号的带宽:电子束每秒扫描 30 * 525 = 15,750 行,每行有 720 个像素点,相当于采样率是 15,750 * 720 = 11.34 MHz。根据奈奎斯特采样定理,这样的采样率能够记录的信号频率不超过 11.34 / 2 = 5.67 MHz。实际上,因为高频信号强度较弱且相对不重要,NTSC 选择只传输其中 4.2 MHz 以内的部分[3]。画面信号是采用调幅(AM)的方式调制的。调制后的信号,会在载波频率的两侧各占用 4.2 MHz 的带宽。实际上两侧的内容是对称的,只传输一侧就可以,但受到技术的限制,无法把单侧的频谱清除得干干净净。NTSC 选择完整地传输右边的 4.2 MHz,而左边则只保留 1.25 MHz[3](称为「残留边带调制」),这样画面信号占用的总带宽就是 4.2 + 1.25 = 5.45 MHz。

  声音信号则采用调频(FM)的方式调制。人耳的可听频率范围为 20 kHz,NTSC 选择传输其中 15 kHz 以内的部分。调频时使用的最大频偏为 25 kHz[4]。根据卡森带宽法则,调制后的信号占用的带宽为 2 * (15 + 25) = 80 kHz。注意声音信号带宽的单位是 kHz,而画面信号的带宽单位是 MHz —— 声音信号占用的带宽是远小于画面信号的。

  NTSC 为每个频道分配了 6 MHz 的带宽。画面的载波被放在了 1.25 MHz 的位置(这个位置是相对于频道频率范围的最低端而言的,下同),这样画面信号占用的频率范围就是 0 ~ 5.45 MHz。声音信号的载波则被放在了 5.75 MHz 的位置,声音信号占用的频率范围是 5.67 ~ 5.83 MHz。这种分配方式如下图所示。其中 Luminance 表示黑白画面信号,Audio 表示声音信号,Chrominance 是下面将要讲的彩色电视中的色差信号,可以先忽略。

图 2:NTSC 一个频道 6 MHz 带宽的分配方式。图片来自:http://people.seas.harvard.edu/~jones/cscie129/nu_lectures/lecture8/analog_tv/spec_ntsc_col.gif

  上面的这些频率值,在选取时也都有一定的自由度,只要数量级差不多就行,并不是非要选择这些值。然而正因为如此,画面与声音两个载波的间距 —— 4.5 MHz,就为将来埋下了坑。

二、NTSC 彩色电视标准

  到了 1950 年代,彩色电视出现了。彩色电视的屏幕可以显示红、绿、蓝三种颜色,一幅彩色画面,就可以看成是由红、绿、蓝三幅画面组成的。NTSC 想要制定一套与黑白电视兼容的彩色电视标准,如果分别传输红、绿、蓝三幅画面,就无法与黑白电视兼容。但这个问题比较好解决:把红、绿、蓝三幅画面线性组合一下,就可以得到一幅纯黑白的画面(称为亮度信号),以及两个色差信号。亮度信号与黑白电视兼容,那么下面要做的事情,就是想办法在一个频道的 6 MHz 带宽内,把两个色差信号塞进去。然而黑白电视的画面信号与声音信号已经基本占满了 6 MHz 的带宽。怎么办呢?

  NTSC 首先想到的是能不能缩减色差信号的带宽。很幸运,这是可以做到的:人眼对色差信号的分辨率低于对亮度信号的分辨率[5],所以色差信号并不需要占到 4.2 MHz 的带宽:两个色差信号分别传输 1.5 MHz 和 0.5 MHz 以内的部分就行了。然而在黑白电视标准中,亮度信号与声音信号之间只留下了可怜的 0.22 MHz 的空隙,怎么办呢?

  这就是彩色电视标准中最聪明的地方了!注意到亮度信号中,相邻两行的信号是大同小异的。也就是说,亮度信号可以近似看成一个周期信号,其周期为 15,750 Hz,即行频。周期信号的频谱是梳状的:每隔 15,750 Hz,就有一个尖峰,而峰与峰之间的信号强度则很低。这种性质在调制之后依然保持。所以,调制后的亮度信号,看起来是占满了 5.45 MHz 的带宽,实际上是有很多缝隙的!同样,色差信号也可以近似看成周期为行频的周期信号,其频谱也是梳状的。如果能把两把梳子插到一起,问题不就解决了嘛!

图 3:「梳子对插」法叠加亮度信号(橙)与色差信号(蓝)的频谱。图中横轴中央为色差信号的载波频率;亮度信号的载波在图示范围左边很远处。

  如果接收端是彩色电视机,就可以用「梳状滤波器」把亮度信号和色差信号分离开来,互相干扰不大。如果接收端是老式的黑白电视机,那么色差信号确实会对亮度信号产生干扰。不过,若以亮度信号的载波为基准,色差信号的峰都会落在行频的半整数倍处。这相当于一个基频为行频的一半,且只含奇数次谐波的信号;放到画面上,就是周期为 2 行,且相邻两行的干扰正好相反。只要人不去仔细分辨画面上的每一行像素,这样的干扰就会被人眼的「模糊滤镜」给忽略掉。

  我们再回到图 2。NTSC 彩色电视标准,就把两个色差信号放在了亮度信号比较高频的位置。通过一种叫做「正交幅度调制」(QAM)的技术,可以用同一个载波同时承载两个色差信号。其中一个色差信号(Q)保留了载波左右两侧各 0.5 MHz 的带宽,另一个色差信号(I)采用残留边带调制,保留了载波左侧 1.5 MHz、右侧 0.5 MHz 的带宽。

  剩下的事情,就是为色差信号寻找一个合适的载波频率,使得亮度信号和色差信号的两把「梳子」能够正好对插起来了。用 f_Yf_Cf_H 分别表示亮度信号的载波频率、色差信号的载波频率以及行频,则「梳子对插」要求 f_C - f_Yf_H 的半整数倍。同时,f_C - f_Y 也是要通过「分频器」产生的,所以它与 f_H 之比也不能有太大的质因数。实际制定的标准取了 f_C - f_Y = \frac{455}{2} f_H ,其中 455 = 5 * 7 * 13,质因数都不算太大。

  故事到这里,本来就应该有一个圆满的结局了。但还有一个问题:声音信号对色差信号的干扰[6]。从图 2 上看,声音信号与色差信号的频率范围没有重叠,本不应该有干扰的。但是,当传输的信道不是完美的线性时,非线性就会把信号中原有的频率加加减减地进行组合,产生本来不应该有的频率分量(这种现象称为 intermodulation)。其中比较显著的一个,是 2f_C - f_Sf_S 表示声音信号的载波频率),即以色差信号的载波频率 f_C 为轴,把声音信号的载波频率 f_S 翻转过来 —— 这个频率落在了色差信号 I 的范围内,会对它产生干扰。为了让梳状滤波器能够尽可能消除这个干扰,就要让这个干扰落在色差信号频谱的缝隙中,即让 f_S - f_C 也是行频 f_H 的半整数倍。

  整理一下:

  ● 色差与亮度信号的载波频率之差 f_C - f_Y ,需要是行频 f_H 的半整数倍;
  ● 声音与色差信号的载波频率之差 f_S - f_C ,也需要是行频 f_H 的半整数倍。

两个条件一综合,发现声音与亮度信号的载波频率之差 f_S - f_Y ,需要是行频 f_H 的整数倍。但这些数值都是在黑白电视时代都定好了的呀!试除一下看看……

\frac{f_S - f_Y}{f_H} = \frac{4.5\text{ MHz}}{15\text{,}750\text{ Hz}} = \frac{2000}{7} = 285 \frac{5}{7} \

  不是整数!

  看到了吗?扫描线数 525 中的质因数 7,就是万恶之源!

  为了把这个比值凑成整数,就必须调整声音与亮度信号的载波频率之差 f_S - f_Y ,或者调整行频 f_H 。调整前者就会造成黑白与彩色两代标准不兼容,使得黑白电视机无法同时接收彩色电视节目的画面与声音,反之亦然。而调整后者则没有这么严重的问题。至此,就只能放弃正好 30 Hz 的帧率了!

  刚刚算出来,声音与亮度信号的载波频率之差 f_S - f_Y,是行频的 285 又 5/7 倍。NTSC 决定把这个倍数四舍五入成 286,它比 285 又 5/7 多出了千分之一。新的行频为:

\frac{4.5\text{ MHz}}{286} = \frac{15\text{,}750\text{ Hz}}{1.001} \approx 15\text{,}734\text{ Hz} \

而新的帧率,则是行频再除以 525,等于:

\frac{30\text{ Hz}}{1.001} \approx 29.97\text{ Hz} \

色差信号与亮度信号的载波频率之差 f_C - f_Y,则是:

\frac{15\text{,}750\text{ Hz}}{1.001} \times \frac{455}{2} \approx 3.579545\text{ MHz} \

如图 2 所示。

  把帧率调整成 29.97 Hz 以后,它就不再是交流电频率 60 Hz 的一半了,这其实可能引入电源杂波的干扰。这个问题是怎么解决的,我并没有找到足够的资料。

  如果要用一句话来概括帧率调整成 29.97 Hz 的原因,则是为了减轻信道的非线性造成声音信号干扰色差信号。需要注意的是,有些资料上说是为了减轻干扰而降频。这个说法不能说错,但仿佛暗示着干扰是帧率过高造成的。实际上产生干扰的原因,在于声音与亮度信号的载波频率之差 f_S - f_Y 与帧率之比不是整数;如果这个比值取整时不是「五入」而是「四舍」,那么结果就会是帧率略微升高了。

三、PAL 制式

  PAL 制式于 1962 年产生德国,它也是中国使用的彩色模拟电视制式。PAL 制式的制定过程中就吸取了 NTSC 制式的教训。它的主要参数如下:

  ● 帧率为 25 帧每秒,采用隔行扫描,故场频为 25 * 2 = 50 Hz;
  ● 画面分辨率为 576 行 * 720 列;
  ● 水平扫描线数为 625 条,故行频为 25 * 625 = 15,625 Hz;
  ● 每个频道占用的带宽为 8 MHz;
  ● 亮度信号与声音信号的载波频率之差为 6 MHz。

  可以看到,6 MHz 正好是行频 15,625 Hz 的 384 倍,所以 PAL 制式能够直接避免声音信号干扰色差信号的问题,可以使用正好 25 Hz 的帧率。不过,PAL 制式实际使用的色差信号与亮度信号的载波频率之差 f_C - f_Y 为 4.43361875 MHz,它等于行频 15,625 Hz 的 283.75 再加 25 Hz[7]。至于它为什么不是行频的半整数倍,我就没有再深究了。

四、29.97 Hz 的帧率产生的影响

  29.97 Hz 的帧率产生的流毒延续至今。一个重要的体现,就是电影的音画不同步问题。

  电影是电视节目的一个重要来源。而拍摄电影时,使用的标准帧率是 24 Hz,即每秒拍 24 张胶片。影视界有一种称为 3:2 pull down 的技术,可以把 4 帧画面拖长成 5 帧,从而适应 NTSC 黑白电视的 30 Hz 帧率。

  NTSC 彩色电视出现后,原来采用 30 Hz 帧率的节目,就被以 29.97 Hz 的帧率播放了。这样微小的速度变化,人是察觉不到的;一部 2 小时的电影,降低帧率后的时长也只是增加了 7.2 秒。但是,如果声音仍然按录制时的原速播放,那么只要几分钟的时间,观众就会明显觉察到声音比画面提前出现,这电影就没法看了。于是,有些电影录制设备就把帧率改成了 24 / 1.001 ≈ 23.976 Hz,这样经过 3:2 pull down 之后,就能按原速在 NTSC 制式的彩电上播放了。

  PAL 制式的彩色电视出现以后,原来使用 24 Hz 帧率拍摄的电影,可以调整成 25 Hz 后播放,不会出现音画不同步的问题。但是,为了适应 NTSC 制式的彩色电视而采用 23.976 Hz 帧率拍摄的电影,就只能调整成 24.975 Hz 的帧率。把这样的电影在 PAL 制式的电视上播放,就会出现相反的音画不同步的问题:这回是画面比声音快了。

五、总结

  NTSC 为了保证黑白与彩色电视标准的兼容性而对帧率进行的千分之一的微调,让人们在许多场合白费了无数脑细胞。但技术的进化就像生物的进化,不可能在最初的时候就把一切都设计得天衣无缝,进化的结果往往带有许多不完美,这也是自然的规律吧。

  在写作本文的过程中,我看过的以下内容对我有帮助:

Why is TV 29.97 frames per second? – standupmaths – YouTubeWhy do we have 29.97 frame rates, and not just 30?? – GlydeckThe 29.97 frames per NTSC standard – Physics Forums

但看了一圈之后,发现其实还是维基百科写得最详尽:

NTSC – Wikipedia

来源:知乎 www.zhihu.com

作者:王赟 Maigo

【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。
点击下载