3G SDI 的 level B 格式包括两种,DL(Dual Link) 和 DS(Dual Stream)。
其中 DS 是通过两根线缆分别传输两个 HD SDI 视频流,总带宽与 3G SDI 相同;而 DL 是通过一根线缆,将两路 HD SDI 同时传输,从而实现 3G SDI 的带宽。
所以当实现 3G SDI 解码时,需要兼容的 level B 格式就是 level B-DL。
以下是 GS 2971 Data Sheet 中 level B(下文中 level B 都特指 level B-DL)的 20 bits 并行数据格式:
其中高 10 bits 传输 Link A,低 10 bits 传输 Link B,每个 Link 是一个单通道的 HD SDI 数据流,单通道传输时Y/C通道复用,时钟速率为原本的两倍,即 148.5MHz。
要解码 level B 首先要将其转换为两路正常的 HD SDI。因为Y和C交替传输,所以需要一个分频的时钟作为采样信号,将Y和C分别提取寄存并同步,从图中可以看出先传输C再传输Y,所以需要C需要寄存一拍来实现与Y的同步。在 Lattice SDI IP 核中 ychannel 信号可以作为该采样信号。
用分频时钟采样后,得到了 74.25MHz 的两路 HD SDI 数据流,根据协议 SMPTE 425M 和 SMPTE 372M,两个 Link 分别为两幅子图像(Sub Image),一个传输奇数行,一个传输偶数行。由于一帧图像总行数为1125行,肯定是不能简单地区分为奇偶的,所以3G level B 将两帧图像打包为一帧,第一帧 Link A 传输偶数行,第二帧 Link B传输偶数行。为了方便,以下将打包的两帧区分为奇数帧和偶数帧。
下图是 SMPTE 425M 中 level B 行数映射的示意图:
此图中需要注意的主要有以下几点:
-
打包后 level B 的两个 Link 共享一个行号。
-
打包后 level B 的奇数帧和偶数帧 Field 值不同,所以 level B 是确实存在奇偶帧之分的。
-
奇数帧的 583 行和 1123 行。583 行在有效数据区之外,所以 583 行中两个 Link 的 TRS 都是消隐区对应的值。而 1123 在有效数据区之内,所以 1123 行的两个 Link 的 TRS 都是有效数据区对应的值。
综上,兼容 level B 主要就是解决以上问题。第一点,由于 level B 的两个 Link 使用相同行号,所以每传输 1125 行数据实际是传输了 2250 行,将 level B 每一帧的每行数据映射到 [0:2249] 更加方便操作;第二点,在第一点的基础上就不用进行奇偶帧分别操作了,将所有行的 Field 值更改为 0 即可;第三点,也是最坑的一点,需要单独操作 583 行和 1123 行的 Link B,583 行的 Link B 是数据行,但是 TRS 的 V 为 1,同样的,1123 行的 Link B 是消隐行,但是 TRS 的 V 为 0,需要分别修改。
完成以上的修改,就实现了 level B 到 level A 的转换。
标签:level,1123,传输,Link,3G,SDI From: https://blog.csdn.net/alexmercer12138/article/details/139807890