数字视频技术
推荐给好友
打印
加入收藏
更新于2008-07-28 15:42:44


数字视频

在上世纪90年代中期以前,几乎所有的视频都采用了模拟格式。正是在那之后,诸如MPEG‐2压缩的出现、互联网上流媒体的繁荣以及FCC采用“数字电视(DTV)”标准等推动力形成了一场“完美风暴”,将数字视频表现方式的优点呈现给整个视频世界。这些超越模拟信号的优点包括:更好的信噪比性能,更好的带宽利用(可以将若干路数字视频通道融入每个现有的视频频道中),而且通过数字压缩技术来减少存储空间。 
  
从根本上来说,视频的数字化同时包括了对模拟视频信号的采样和量化。在视频帧的2D框架之中,采样最终体现为将栅格状的图像空间划分为小块的区域,并根据每个区域中颜色空间分量的强度来为其分配相对幅值。请注意,模拟视频信号已经被从垂直方向上(离散的多行扫描)和时间上(每秒分立的多帧图像)做了采样。 
  
量化是指在采样过程中设法确定这些离散幅值的过程。8bit视频是消费类应用中常用的格式,在每个颜色通道(R、G、B或者 YCbCr)中,0代表最暗(全黑),255代表最亮(白)。不过,应该指出的是,每单色通道10bit 和12bit的量化水平,也正在迅速融入主流的视频产品中,从而带来更高的精度,这对于避免其截断误差从而降低接收到的图像噪声来说,是非常有效的。 
  
数字视频的出现,在很大程度上为NTSC和PAL系统接口的标准化提供了极佳的机会。当ITU(国际电信联盟)开会以确定关于数字视频标准方面的推荐方案时,它把重点放在如何在NTSC和PAL格式之间实现高度的共享性,这样使得两种标准都可以采用同一种编码格式。 
   
他们确定了2种独立的推荐方案-ITU‐R  BT.601和ITU‐R BT656。这两种方案合起来,就定义了一种结构,该结构能让不同的数字视频系统部件实现互操作。鉴于BT.601定义了数字视频传输所用的参数,BT.656定义了接口本身。 
  
ITU-R BT.601(前 CCIR-601)

BT.601规定了对视频信号进行数字化编码的方法,它利用了YCbCr颜色空间,以更好地利用通道带宽。它建议将4:2:2 YCbCr作为广播视频的首选格式。同时也提供了同步信号(HSYNC,VSYNC,FIELD)和时钟信号,以便划定有效视频区的边界。图4示出了同步信号、时钟和数字信号之间典型的时序关系。


每个BT.601像素分量(Y、Cr或 Cb)被量化为8或者10bit信息,NTSC和PAL的有效视频画面中每行有720个像素 。不过,它们在垂直分辨率方面存在差异。30帧/s的NTSC有525行(线)(包括垂直消隐或者回扫区),而通过在PAL帧上添加100条线,或者说,使之总共达到625条线,使PAL的25帧/s的速率适应同样的标准。

BT.601规定Y值的额定值范围从16(全黑)一直到235(全白)。颜色分量Cb和Cr则从16到240,但128的量值对应着无颜色。有时,由于噪声或者截断误差的存在,一个量值可能会超出额定值边界之外,但永远不会取值到0或者255。
 
ITU-R BT.656 (前 CCIR-656)

BT.601规划了对视频进行数字编码的方法,而BT.656则实际定义了实施BT.601所必需的物理接口和数据流。它同时定义了位并行和位串行模式。位并行模式只需要27MHz的时钟(在NTSC 30 帧/s条件下)以及8或10条连线(具体取决于像素的分辨率)。所有的同步化信号都嵌入到数据流中,因此无需额外添加硬件连线。

位串行模式只需要在单个通道上传输一路复用化的10bit/像素串行数据流,不过它需要运用复杂的同步化、频谱整形和时钟恢复调理等技术手段。此外,其位时钟速率接近300MHz,因此要在很多系统中实施基于采用串行位形式的BT.656是极富挑战性的任务。从我们的目标出发,我们将把注意力仅放在位并行模式上。

图5和图6示出了ITU-R BT. 656中分别针对525/60 (NTSC)和625/50 (PAL)系统的帧划分方法和数据流的特性。


在BT.656标准中,水平(H)、垂直(V)和场(F)信号作为嵌入到视频数据流中的一串字节来发送,这一串字节构成了一个控制字。有效视频起点(SAV)和有效视频终点(EAV)信号指示了每行读入的数据单元的开始和结束。SAV出现在H发生1-0切换时,EAV出现在H发生0-1切换时。整个视频场由有效的视频+水平消隐(EAV和SAV代码之间的空间)以及垂直消隐(V=1的空间)组成。

视频的场从F位的切换开始。“奇数场”由F=0表示,而F=1则表示偶数场。逐行扫描的视频并不区分场1和场2,而隔行扫描的视频则要求专门对每个场进行独立的处理,因为每个场交替的扫描行组合起来最终形成实际的视频图像。

图7更为详细地示出了SAV和EAV代码。请注意,视频数据有一个由三个字节构成的前导码(8bit视频是0xFF, 0x00,0x00,而10bit视频则是0x3FF, 0x000, 0x000),后面跟随着XY状态字,这个字除了包含F (场), V (垂直消隐) 和 H (水平消隐)位之外,还包含了4个保护位,以实现单位错误的检测和纠正。请注意,F和V只能作为EAV序列的一部分来变化(即,从H = 0切换到H = 1)。此外,请注意,对于10bit视频来说,增加的两位实际上是最低位,而不是最高位。

图中:8-bit Data——8位数据,10bit Data——10位数据

各个数位的定义如下:

  • F = 0 for Field 1
  • F = 0 ,场 1
  • F = 1 for Field 2 
  •  F = 1, 场 2
  • V = 1 during Vertical Blanking
  • V = 1 垂直消隐期间
  • V = 0 when not in Vertical Blanking
  • V = 0 未在垂直消隐期内
  • H = 0 at SAV
  • H = 0 @ SAV
  • H = 1 at EAV
  • H = 1 @ EAV
  • P3 = V XOR H
  • P2 = F XOR H
  • P1 = F XOR V
  • P0 = F XOR V XOR H

垂直消隐间隔(V=1的时间)可以被用来发送非视频的信息,如音频、文字电视广播(teletext)、字幕(closed‐captioning)或者甚至交互电视应用所需的数据。BT.656借助辅助性的数据包实现这些功能。这些辅助性数据包并未采用通常在控制代码前的那些“0xFF, 0x00, 0x00”前导码,而是以“0x00, 0xFF, 0xFF”前导码为开头。 
  
 假定并不发送辅助数据,则在水平和垂直消隐间隔期间,(Cb, Y, Cr, Y, Cb, Y, …)流是(0x80, 0x10, 0x80, 0x10, 0x80, 0x10…)。另外,请注意,由于0x00 和 0xFF等量值专门用于控制前导码,故不能用作有效视频流的一部分。在10bit系统中,(0x000 到 0x003)以及(0x3FC 到0x3FF)等量值也都被专门留出,以免给8bit的视频引用造成问题。 
  
 上述就是我们关于数字视频的概念介绍。在下一部分中,我们将把注意力放在如何从系统角度来考察视频技术上,讨论视频流是如何进入和输出嵌入式系统的。

相关链接