开启辅助访问
 找回密码
 立即注册

11345 29.97 Hz 这种奇葩帧率是如何来的?

m999999 回答数20 浏览数10498
  制作影片或视频的人也许知道,有些影视节目的帧率是 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;
  ● 水平扫描线数为 525 条,故行频为 30 * 525 = 15,750 Hz;
  ● 画面上实际可见的扫描线数为 483 行。
  这里,场频 60 Hz 这个数字与美国交流电的频率一致,这样取的好处是可以减少电源杂波的干扰。画面上实际可见的扫描线数(483)对于下文的讨论并不重要,重要的是扫描线的总数(525)。而 525 这个数字的来源就比较复杂了[2]:
  首先,扫描线的数量需要是一台奇数。这是为了在隔行扫描的时候,奇数场与偶数场的扫描线正好交错开,组成完整的画面。下面是隔行扫描的原理图,图中两场共有 11 条扫描线(其中 8 条可见),可以看到奇数场的扫描线(c)与偶数场的扫描线(e)是如何交错组成完成画面(g)的。



图 2:隔行扫描原理图,取自百度百科「隔行扫描」页面

  其次,扫描线的数量不能包含比较大的质因数。这是因为,在发射端(电视机台)和接收端(电视机机)中,都需要用电路来产生频率为场频和行频的周期性信号。为了保证这两个信号的同步,它们是从同一台振荡器发出的高频周期性信号中通过「分频器」降频产生的。以 40 年代的技术水平,分频器输出的频率只能是输入频率的小整数分之一。
  扫描线的数量既然是奇数,就说明它不能包含质因数 2。如果只允许它含有质因数 3、5、7,那么在 400 ~ 700 之间(画面竖直分辨率的合理范围)可选的数就只有如下这些:


NTSC 选择了 525。下面将会看到,525 中包含的质因数 7,就是万恶之源
1.2 传输标准
  除了与画面有关的参数外,NTSC 标准还包括有关信号传输的内容。电视机信号是利用无线电频谱中的甚高频(VHF,30 ~ 300 MHz)和超高频(UHF,300 ~ 3000 MHz)频段传输的。信号在从电视机台发射出去之前,要进行调制,即通过修饰一台频率处于 VHF 或 UHF 频段内的载波信号,让它携带上画面以及声音的信息;被电视机机接收到后,则要进行解调,即把画面和声音信息解码出来。常用的调制方法有调幅(AM)和调频(FM),即让载波的幅度或频率随着要传输的信号变化。
  调制后的信号,会在频谱上占用一段带宽,它一般是关于载波频率对称的一段,其宽度与被传输的信号本身的带宽有关。NTSC 标准选择把画面信号的带宽限制在 4.2 MHz 以内[3](根据奈奎斯特采样定理,这个带宽相当于每行有 4.2 M * 2 / 15,750 ≈ 533 个像素;由于扫描过程存在「行逆程期」,实际会再略少些)。画面信号是采用调幅(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 是下面将要讲的彩色电视机中的色差信号,可以先忽略。



图 3: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 的带宽,实际上是有很多缝隙的!同样,色差信号也可以近似看成周期为行频的周期信号,其频谱也是梳状的。如果能把两把梳子插到一起,问题不就解决了嘛!



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

  如果接收端是彩色电视机机,就可以用「梳状滤波器」把亮度信号和色差信号分离开来,互相干扰不大。如果接收端是老式的黑白电视机机,那么色差信号确实会对亮度信号产生干扰。不过,若以亮度信号的载波为基准,色差信号的峰都会落在行频的半整数倍处。这相当于一台基频为行频的一半,且只含奇数次谐波的信号;放到画面上,就是周期为 2 行,且相邻两行的干扰正好相反。只要人不去仔细分辨画面上的每一行像素,这样的干扰就会被人眼的「模糊滤镜」给忽略掉。
  我们再回到图 3。NTSC 彩色电视机标准,就把两个色差信号放在了亮度信号比较高频的位置。通过一种叫做「正交幅度调制」(QAM)的技术,可以用同一台载波同时承载两个色差信号。其中一台色差信号(Q)保留了载波左右两侧各 0.5 MHz 的带宽,另一台色差信号(I)采用残留边带调制,保留了载波左侧 1.5 MHz、右侧 0.5 MHz 的带宽。
  剩下的事情,就是为色差信号寻找一台合适的载波频率,使得亮度信号和色差信号的两把「梳子」能够正好对插起来了。用 、 、 分别表示亮度信号的载波频率、色差信号的载波频率以及行频,则「梳子对插」要求  是  的半整数倍。同时, 也是要通过「分频器」产生的,所以它与  之比也不能有太大的质因数。实际制定的标准取了 ,其中 455 = 5 * 7 * 13,质因数都不算太大。
  故事到这里,本来就应该有一台圆满的结局了。但还有一台问题:声音信号对色差信号的干扰[6]。从图 3 上看,声音信号与色差信号的频率范围没有重叠,本不应该有干扰的。但是,当传输的信道不是完美的线性时,非线性就会把信号中原有的频率加加减减地进行组合,产生本来不应该有的频率分量(这种现象称为 intermodulation)。其中比较显著的一台,是 ( 表示声音信号的载波频率),即以色差信号的载波频率  为轴,把声音信号的载波频率  翻转过来 —— 这个频率落在了色差信号 I 的范围内,会对它产生干扰。为了让梳状滤波器能够尽可能消除这个干扰,就要让这个干扰落在色差信号频谱的缝隙中,即让  也是行频  的半整数倍。
  整理一下:
  ● 色差与亮度信号的载波频率之差  ,需要是行频  的半整数倍;
  ● 声音与色差信号的载波频率之差  ,也需要是行频  的半整数倍。
两个条件一综合,发现声音与亮度信号的载波频率之差  ,需要是行频  的整数倍。但这些数值都是在黑白电视机时代都定好了的呀!试除一下看看……


  不是整数!
  看到了吗?扫描线数 525 中的质因数 7,就是万恶之源!
  为了把这个比值凑成整数,就必须调整声音与亮度信号的载波频率之差  ,或者调整行频  。调整前者就会造成黑白与彩色两代标准不兼容,使得黑白电视机机无法同时接收彩色电视机节目的画面与声音,反之亦然。而调整后者则没有这么严重的问题。至此,就只能放弃正好 30 Hz 的帧率了!
  刚刚算出来,声音与亮度信号的载波频率之差 ,是行频的 285 又 5/7 倍。NTSC 决定把这个倍数四舍五入成 286,它比 285 又 5/7 多出了千分之一。新的行频为:


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


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


如图 3 所示。
  把帧率调整成 29.97 Hz 以后,它就不再是交流电频率 60 Hz 的一半了,这其实可能引入电源杂波的干扰。这个问题是如何解决的,我并没有找到足够的资料。
  如果要用一句话来概括帧率调整成 29.97 Hz 的原因,则是为了减轻信道的非线性造成声音信号干扰色差信号。需要注意的是,有些资料上说是为了减轻干扰而降频。这个说法不能说错,但仿佛暗示着干扰是帧率过高造成的。实际上产生干扰的原因,在于声音与亮度信号的载波频率之差  与帧率之比不是整数;如果这个比值取整时不是「五入」而是「四舍」,那么结果就会是帧率略微升高了。
三、PAL 制式

  PAL 制式于 1962 年产生于德国(西德),它也是中国使用的彩色模拟电视机制式。PAL 制式的制定过程中就吸取了 NTSC 制式的教训。它的主要参数如下:
  ● 帧率为 25 帧每秒,采用隔行扫描,故场频为 25 * 2 = 50 Hz;
  ● 水平扫描线数为 625 条,故行频为 25 * 625 = 15,625 Hz;
  ● 画面上实际可见的扫描线数为 576 行;
  ● 每个频道占用的带宽为 8 MHz;
  ● 亮度信号与声音信号的载波频率之差为 6 MHz。
  可以看到,6 MHz 正好是行频 15,625 Hz 的 384 倍,所以 PAL 制式能够直接避免声音信号干扰色差信号的问题,可以使用正好 25 Hz 的帧率。不过,PAL 制式实际使用的色差信号与亮度信号的载波频率之差  为 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 为了保证黑白与彩色电视机标准的兼容性而对帧率进行的千分之一的微调,让人们在许多场合白费了无数脑细胞。但技术的进化就像生物的进化,不可能在最初的时候就把一切都设计得天衣无缝,进化的结果往往带有许多不完美,这也是自然的规律吧。
  在写作本文的过程中,我看过的以下内容对我有帮助:
但看了一圈之后,发现其实或是维基百科写得最详尽:
参考


  • ^NTSC 的全称是 National Television System Committee(国家电视机系统委员会)。
  • ^https://en.wikipedia.org/wiki/NTSC#Lines_and_refresh_rate
  • ^abhttps://en.wikipedia.org/wiki/NTSC#Transmission_modulation_method
  • ^https://www.sciencedirect.com/topics/computer-science/modulation-level
  • ^https://hive.asu.edu/minc/images/originalphotos/groupphotos/888/929/video_formats_slides2.pdf
  • ^https://arstechnica.com/civis/viewtopic.php?p=12819531&sid=3fca04fb90af2c03734a78c6e0e82ebb#p12819531
  • ^https://en.wikipedia.org/wiki/PAL#Colour_encoding
使用道具 举报
| 来自上海
elong0309 | 来自北京
最初的时候广播信号并没有规定具体横向有多少个像素……反正是模拟信号,就看3.58MHz那可怜巴巴带宽里面能承载多少信号了……约等于445个像素吧。720像素是DVD时期SDTV数字标准定下来之后才有的数字。
回复
使用道具 举报
asdfasdfasdfasd | 来自北京
BTW,音频中常用的 44.1 kHz 采样率的由来,竟也与 NTSC、PAL 两种制式有关。这个答案写得不错:https://www.zhihu.com/question/27644914/answer/37568508
回复
使用道具 举报
jhkfdsafadf | 来自北京
对比NTSC和PAL,这是否说明美国人不如德国人严谨?
回复
使用道具 举报
桃宫草莓 | 来自北京
这有点儿地图炮了哈。我觉得只是 NTSC 帮 PAL 排了雷。
回复
使用道具 举报
IZphabrc | 未知
原来音画不同步是这么来的
回复
使用道具 举报
gydcoconut | 来自北京
当然也可能有别的原因
回复
使用道具 举报
dong123jinpei | 来自广东
不能,只能说明先行者容易掉坑里。
回复
使用道具 举报
mas830 | 来自北京
梳理关键知识点:
Luminance近似于行频为周期的信号,频谱是梳状的,有缝隙;
使用梳状滤波器分离出Chrominance,需要Chrominance峰值落于Luminance频谱缝隙中,载波f_c - f_y差分必须是行频的半整数倍;
为了让梳状滤波器能够尽可能消除声音对色差干扰,就要让这个干扰落在Chrominance频谱的缝隙中,载波f_s - f_c差分必须是行频的半整数倍;
所以f_s与f_y差分必须是行频的整数倍。
回复
使用道具 举报
kkndlijie | 来自北京
捉个虫
做隔行的动机 我的理解是
1.首先CRT的显示机理决定了 50/60hz的显示刷新率必须保证 否则屏幕直接波纹闪烁 不能再低
2.而如果做逐行扫描的话 数据带宽大了整整一倍 压力大很多 做成隔行能在保证刷新率的情况下降低数据带宽 减少传输压力
我的论据是 最近的8k电视台特效机都选择了隔行输出 这不可能是所谓为了“画面更流畅”吧
我认为应该是单纯因为性能跟不上
回复
使用道具 举报
123下一页
快速回复
您需要登录后才可以回帖 登录 | 立即注册

当贝投影