本文摘自Chapter 6 数字视频接口——IC分量接口 - 知乎
在芯片之间传输数字视频的方案源于专业视频互联标准。典型情况下,针对专业视频应用的 芯片都支持毎个分量10位或12位的数据。而针对消费类市场的芯片每个视频分量使用8位数据。BT.601和BT.656是最常用的接口。
视频分量数据信息。
BT.601
视频时序
24位4:4:4 YCbCr数据格式。Y、Cb、Cr各有8位。专业视频使用30位接口,Y、Cb、Cr各有10位。Y0、Cb0、Cr0为最低有效位。
16位4:2:2 YCbCr数据格式。Y有8位,CbCr(复用在一起,先Cb后Cr)数据流有8位。专业视频使用20位接口,Y、CbCr流各有10位。
8位4:2:2 YCbCr数据格式。对16位4:2:2 YCbCr数据的Y、CbCr数据流以二倍采样时钟频率进行采样,对采样后的数据进行复用(顺序为Cb、Y、Cr)。专业视频使用10位接口。
下面几张图展示了在不同位数接口上传输YCbCr数据和RGB数据的情形。
控制信号
BT.601有4个控制信号。
HSYNC# 水平同步 低有效
VSYNC# 场同步 低有效
BLANK# 消隐 低有效
CLK 1倍或2倍采样时钟
对于8位和10位4:2:2 YCbCr数据格式,CLK为2倍采样时钟频率。对于其它的数据格式,CLK为1倍采样时钟频率。在信号源端,控制信号和视频数据紧接着CLK的上升沿输出。在信号接收端,控制信号和视频数据在CLK上升沿进行采样。
BLANK#=1(非消隐期低有效)时,提供的是有效的R'G'B'数据或YCbCr数据。
在每行扫描线的水平同步时间内,声明HSYNC#【低有效】同步,其前沿表示新的扫描线开始。HSYNC#声明的时间量通常与视频标准规定的量是一样的。
在每个场或帧的场同步时间内,声明VSYNC#【低有效】同步,其前沿表示新的场或帧开始。VSYNC#声明的扫描线编号通常与视频标准规定的量是一样的。
对于隔行视频,如果HSYNC#和VSYNC#的前沿是一致的,那么,该场就为场1。如果VSYNC#的前沿位于中线上,该场就是场2。对于逐行视频,VSYNC#的前沿表示新帧的开始。
与接收端相关的注意事项
不应该对每线的采样点数量或行消隐期做出假设,因为并不是对所有的源都有效。
为了确保各种信号源之间的兼容,水平计数器应该通过HSYNC#的前沿进行复位,而不是通 过BLANK#的后沿来复位。
为了处理现实中的信号源,接收端应该使用一个时间窗来检测提供的是场1还是场2,例如,如 果VSYNC#的前沿出现在HSYNC#前沿的1个时钟周期的±64内【64的单位是什么?】,那么该场为场1,否则该场为场2。
有些视频源使用小于0x10的8位数据Y的值来标识同步时序。然而,大多数视频IC并不是这样。另外,为了准许实际视号和测试信号可以以最小的干扰通过,现在许多IC准许数据Y在有效视频期间具有小于0x10的值。这样,接收端在Y通道提供同步时序的设计假定就可能出现错误。
视频模块接口
视频模块接口(VMI)的建立是为了与几个多媒体IC制造商合作。其目的是使得设备之间的视频接口标准化,如MPEG解码器、NTSC/PAL解码器和图形芯片。
视频数据格式
VMI规范规定了8位4:2:2 YCbCr数据格式。
控制信号
VMI有4个控制信号。
HREF 水平消隐
VREF 场同步
VACTIVE 有效视频
PIXCLK 2倍采样时钟/像素时钟
对于8位和10位的4:2:2 YCbCr数据格式,PIXCLK为2倍采样时钟频率。对于其他的数据格式,PIXCLK为1倍的采样时钟频率。在源端,控制信号和视频数据紧接着PIXCLK上升沿输出。在接收端,在PIXCLK的上升沿对控制信号和视频数据进行采样。
当VACTIVE声明为有效时,提供的是有效R'G'B'或YCbCr视频数据。尽管以VACTIVE传输是 准许的,但它主要是为了可以利用硬件机制来获取视频数据。对于不支持VACTIVE信号的系统,HREP通常可以以最小的功能代价连入VACITVE。
为了支持不生成线锁时钟的视频源,也可以使用DVALID#(数据有效)信号。当DVALID#声明为有效时,提供的就是有效数据。
在每行扫描线的有效视频时间内(包括在场消隐期内)声明HREF。
在场同步开始之后经过一半扫描线时,VREF被声明为6倍扫描线时间。
对于隔行视颊,VREF的后沿用于对HREF采样。如果HREF声明位有效,那么,该场就为场1, 如果HRHF声明位无效,那么该场为场2,对于逐行视频,VREF的前沿表示新帧的开始。
关于接收端的注意事项
不应该对每线的采样点数量或行消隐期做出假设,因为并不是对所有的源都有效。
视频数据、VACTIVE的输入设置和保持时间分别为5ns和0ns,这是相对于PIXCLK上升沿的值。
HREF和VREF的输入设置和保持时间分别为5ns和5ns,这是相对于PIXCLK上升沿的值。
BT.656接口
用于IC(集成电路)的BT.656接口是基于专业视频的BT.656类并行接口的。使用EAV和SAV序列来指示视频时序,减少了所需要的引脚数量。
BT.656接口使用的是标准的IC信号电平和时序,并支持任意的分辨率。
视频数据格式
BT.656使用的是8位或10位4:2:2 YCbCr数据。尽管源端可以在EAV和SAV序列中生成4个保护位,但基于芯片之间点到点传输的可靠性,接收端也可以选择忽略它们。
控制信号
CLK为2倍采样时钟频率。在信号源端,视频数据紧接着CLK的上升沿输出。在信号接收端,视频数据在CLK上升沿进行采样。
为了能够处理HDTV数据传输率,有些设计使用16位或20位YCbCr的接口(本质上是两个BT.656数据流,一个为数据Y,—个为CbCr数据)或使用时钟的两个边沿传输数据。
缩放视频端口
缩放视频端口(ZV端口)是笔记本电脑PC卡主机适配器和图形控制器之间的点到点单向总线。它使得视频数据可以直接实时地从PC卡传输到图形帧缓存。
PC卡,又称PCMCIA卡,被笔记本电脑广泛用作存储媒体。PCMCIA插槽是笔记本电脑上重要的设备扩展接口,可以用来插入传真卡/网卡/存储卡/声霸卡等等。
PC卡主机适配的多媒体模式配置。如果非ZV的PC卡插入扩展槽,主机适配器不会切换到多媒体模式,PC卡以预期的方式工作。一旦ZV卡插入,主适配器将切换到多媒体模式,引脚的功能指派也发生了变化。下图展示了PC卡引脚的变化。
视频数据格式
视频数据格式使用的是16位4:2:2 YCbCr数据。
控制信号
除了视频数据外,还有三个控制信号。
HREF 水平参考
VREF 场同步
PCLK 1倍采样时钟频率
HREF、VREF、PCLK与VMI接口具有同样的时序。
视频接口端口
VESA VIP(视频接口端口,Video Interface Port)规范是对针对IC的BT.656接口的一个增强。尽管这个概念很容易地用于其他应用,但其基本应用就是将最多四种设备接入图形控制芯片。
这类接口有三个部分。
主接口:
VIPCLK 主时钟
HAD0~HAD7 主数据/数据总线
GCTL 主控制
视频接口:
PIXCLK 视频采样时钟
VID0~VID7 低位视频数据总线
VIDA、VIDB 10位数据扩展
XPIXCLK 视频采样时钟
XVID0~XVID7 高位视频数据总线
XVIDA、XVIDB 10位数据扩展
系统接口:
VRST# 复位
VIRQ# 中断请求
主接口信号由图形控制器提供。实际上使用的是PCI接口的2、4或8位的版本。VIPCLK的频率范围为25~30MHz。PIXCLK和XPIXCLK的最高频率分别为75 MHz和80 MHz。
视频接口
与BT.656接口一样,视频接口需要在8位或10位的4:2:2 YCbCr视频流中插入特定的4字序列,来表示SAV和EAV。这些序列也指示什么时候提供水平和场消隐,以及传输的是哪个场。
VIP的SAV和EAV与最初介绍的不同。
T = 0 for task B
T = 1 for task A
F = 0 for Field 1
F = 1 for Field 2
V = 1 during vertical blanking
H = 0 at SAV
H = 1 at EAV
N = 1 for progressive
N = 0 for interlaced
任务位T是可以通过编程来改变的。如果要求与BT.656兼容,那么任务位总为1。否则,它可能会被用于指示提供的数据流是两个数据流中的哪一个:流A=1或流B=0。另外一种替代方式是,当提供2倍过采样VBI数据时,T可以为0,否则T就为1。
R表示重复位。如果当前场为重复场,R为1,这种情况只会出现在3:2下拉期(见Chapter 7)。
E表示额外标志位。如果EAV后有另外一个字节的数据,那么E为1。仅在EAV期间该位有效。附加字节中仍有一个额外标志位E,这样就可以根据需要附加任意多字节,并通过这种链的方式链接在一起。下图是额外字节。
与专业视频不同,编码0x00可以在有效视频数据期使用,用它来指示无效的视频采样点。
视频数据格式
8位模式:XVID0~XVID7没有使用
16位模式:SAV、EAV、Y、辅助数据包和偶数辅助数据值通过VID0~VID7进行传输;CbCr、奇数辅助数据值通过XVID0~XVID7进行传输;有效视频中的0x00也要传输,为了保持16位数据的对齐。
10位视频数据是通过VIDA、VIDB、XVIDA、XVIDB信号来支持的。VIDA、VIDB是最低有效位。
辅助数据
0x00和0xFF可以被辅助数据使用。VIP辅助数据格式定义要比很多专业视频辅助数据格式定义早,可能存在不匹配问题。
DID2:表明提供的是辅助数据场1还是场2。
0 场1
1 场2
DID1~DID0:表明辅助数据类型
00 场的开始
01 分片VBI数据,线1~23
10 场VBI数据的结束,线23
11 分片VBI数据,线24到场的结束
DC:规定辅助数据按双字(4字节)计的数目。DID之后的辅助数据包中的数据自数目必须是4的整数倍,不够的话在校验和后添加字节补齐。
当DID1-DID0为00或10时,没有辅助数据或校验和,DC为00000,是最后的数据。