数字视频基础(二)
2. 常用数字视频标准
2.1 BT656
首先要理解模拟PAL/NTSC的视频信号的波形:
SAV(有效视频开始)和EAV(有效视频结束)码,反映了模拟视频的同步信号。由前导符FF、00、00开始,这三个字节的前导符在视频数据中是不可能存在的,XY为状态字,每一位定义如下:
有时我们会看到BT.601,其与656的差别不过是数据流中缺少了同步信息,所以,必须另外有HS、VS、FIED、DE等同步信息才能完整传输数字视频。
大部分情况我们使用8bit的BT656,标准本身是支持10bit的。
BT656主要是针对PAL/NTSC等标清视频。时钟频率是27MHz。注意采样频率灰度为12.5MHz,色度为6.25MHz。
随着高清视频的发展的需要,又推出了BT1120标准,它与BT656是类似的,只不过时钟频率更高了,以适合高清视频的传输。
2.2 OpenLDI和CameraLink
2.2.1 OpenLDI
OpenLDI:Open LVDS Display Intrerface是通过LVDS信号来传输视频。
先了解一下LVDS:Low-voltage differentialsignaling. 低电压差分信号。
LVDS能带宽极高,可达数G。
模拟VGA信号的时序:
OpenLDI有以下几种传输方式:
(1)18bit单像素非平衡
(2)24bit单像素非平衡
(3)18bit双像素非平衡
(4)24bit双像素非平衡
(5)18bit单像素平衡模式
平衡模式,是每个周期除了像素和控制信息外,还增加了一位,这一位叫直流平衡位(DCBAL:DC Balance)。DCBAL位的目的是使得信号线上的直流偏置最小,为了最小化直流分量,是需要对传输的数据进行修改才能实现的。如果数据没有被修改的周期,DCBAL=0,否则,DCBAL=1。
类似还有24bit单像素平衡模式、以及双像素的18bit、24bit平衡模式。
因为平衡模式我们使有的比较少,具体算法不在这里介绍。可参考有关文档。
OPENLDI的时钟可能不高,但是数据线上的频率却很高,这是需要注意的。
2.2.2 CameraLink
2.2.2.1 概述
OpenLDI标准定义了视频传输的方式,在此基础上添加一些控制信号、通讯、所使用的连接器定义,由此构成可CameraLink标准。CameraLink最大时钟频率就是85MHz
CameraLink有5种配置:因为视频的分辨率越来越高,也即像素时钟越来越高,比如单色640x480@60Hz的点频是25.175MHz(Lite),彩色1024x768@60Hz点频是65MHz(Base),彩色1280x1024@60Hz点频是108MHz(Medium),所以,不同的配置是为了满足不同分辨率和精度的视频传输的要求。相当于车速不变,增加车道以提高车流量。
l Lite:支持10bit,端口A、B,1个电缆连接器
l Base:支持24bit,端口A、B、C,1个电缆连接器
l Medium:支持48bit,端口A、B、C、D、E、F,2个电缆连接器
l Full:支持64bit,端口A、B、C、D、E、F、G、H,2个电缆连接器
l 80 Bit。支持80bit,端口A、B、C、D、E、F、G、H、I、J,2个电缆连接器
连接器定义:
CameraLink的信号:
除了数据通道,还有:
(1)4个使能信号:
l FVAL:帧有效(FVAL),高有效,表示有效行。
l LVAL:行有效,高有效,表示有效像素
l DVAL:数据有效,高表示数据有效。对80bit配置,这个信号用来传输数据。
l Spare:备用。对80bit配置,这个信号用来传输数据。
(2)对Base/Medium/Full/80bit配置,还有下面摄像机控制信号:CC1、CC2、CC3、CC4。而对Lite配置,仅有CC一个控制信号。
(3)通讯:波特率至少9600,1个起始位,1个停止位、无奇偶校验、无握手信号。
l SerTFG:串行通讯差分对,去帧捕捉器。对Lite配置,这个信号被分配在一个携带图像数据的差分对上。见位分配。
l SerTC:串行通讯差分对,去摄像机。
端口(Port)的概念:一个端口是8bit宽,从信号连接的角度来说,1个端口可传输8bit的数,但是到底这8bit数是什么并没有规定。
Tap的概念:Tap表示一个类型的数据,比如:Red数据、Green数据、或Blue数据、灰度数据,或偶像素数据、或奇像素数据。比如:
1) 用一个Base配置来传输24bit的RGB,RGB的每个数据是8bit,那么我们就说是3个TAP,每个TAP是8bit。
2) 如果我们用一个Medium配置来传输双像素RGB,RGB数据是8bit,那么我们就说是6个TAP,每个TAP是8bit。
3) 如果我们用Lite配置来传输黑白图像,亮度用10bit数来表示,那么,我们说1个TAP,每个TAP是10bit。
CameraLink标准应该对如下一些内容作出明确定义:
1) 我们知道要传输的图像数据是由一个或多个Tap组成的,先要定义这些Tap的每一位是如何分配在Port上的,这就是第2.2.2.1节定义的位的分配(Bit Assignment)。
2) 然后要定义Port的每一位及LVAL、FVAL、FVAL、SPARE处于LVDS时钟周期的哪个相位,也就是是Port每一位与收发器的RX/Tx脚位之间的关系。这个问题在2.2.2.2节位的位置(Bit Allocation)中定义。
3) 标准还要定义每个Port位于哪个通道连接,或者说哪个芯片上,或者说是在X连接通道上,还是Y、Z连接通道上?这一点由第2.2.2.3节的配置的框图来定义。
2.2.2.1位的分配(Bit Assignment)
2.2.2.2位的位置(Bit Allocation)