view point 技术视点

基于FPGA的高清嵌入解嵌系统的设计与实现

发布时间:2014-04-17 09:02:29     阅读次数:5495

【摘要】
       本文研究了基于单片FPGA的高清嵌入解嵌系统实现。根据SMPTE相关协议阐述了HD-SDI的信号格式,AES3音频接口数据格式以及嵌入解嵌的实现框架和各个子模块功能的实现。系统的实现结果符合预期,系统集成度、可靠性得到了有效的保障。
 
【关键字】 高清SDI, 嵌入, 解嵌, FPGA
 
[Abstract] 
       This paper make the research about mux and demux process of inserting audio or other user data into HD-SDI stream based on monolithic FPGA device. It discusses HD-SDI format which come from SMPTE protocol and AES3 interface data format acquired from AES3 standard. 
More detail about system building and mux&demux implementation function are stated following. The designed 
system accomplished good result as expected and show good integrity and stability.
 
[Key Words]  HD-SDI, MUX, DEMUX, FPGA
 
 
 
 
 
前言
       HD-SDI 已经成为视频广播中心非压缩高清晰视频的主流接口。自从 HD-SDI的出现,就一直伴随着其他类型的数据,包括嵌入数字音频。在模拟视频信号数字化的过程中,模拟信号中的行消隐时间和场消隐时间都被保留,并且转换成为空白信息区间。在视频演播室中,通常可以利用这些空白信息区间携带一些有用信息,这样既能节省传输通道,减少干扰,又能保证这些信息与视频信号的同步。模拟信号的行消隐区间对应的是数字信号中的水平消隐区间,通常称为水平辅助数据区,用于嵌入一些辅助数据,最常见的就是嵌入数字音频信息。音频嵌入解嵌在视频处理过程中是非常重要的两个环节。
HD-SDI接口
 目前,广播影视行业最普遍使用的数字分量视频格式是采用 Y’、Cb’、Cr’彩色空间并且给予 4:2:2 采样的方案。下表列出了 SMPTE 274M (Society of Motion Picture and Television Engineers,1998b)标准定义的 1080P/1080i 的高清视频信号格式以及 1080i 一个完整帧的扫描示意图。
表 1 HD-SDI 支持的高清视频格式,有效样本个数都是 1920*1080
 
注:表格中的 M=1.001
视频格式的两种命名方式是根据视频扫描的隔行扫描和逐行扫描来区分的,“i”表示隔行扫描,“p”表示逐行扫描。通常后面还跟着一个帧率,例如 1080i60,表示各行扫描率为 60Hz。我国采用的高清视频标准是 1080i50。表2是 1080i 一个完整帧的扫描示意图:
表 2 视频帧格式

1~20
Vertical Blanking
 
First Field
21~560
Active lines
561~563
Vertical Blanking
564~583
Vertical Blanking
 
Second Field
584~1123
Active lines
1124~1125
Vertical Blanking

 
在 4:2:2 采样格式中,亮度信号 Y’的采样频率为 74.25MHz,两个色度信号Cr’、Cb’的采样频率分别为 37.125MHz,每种信号的量化比特数为 10 位。亮度信号和色度信号在处理的过程中是利用单独的通道处理的,但是在传输过程中则需要交错排列成一个通道。因此,并行高清信号的传输速率必须满足 148.50MHz,串行传输速率为 1.485Gbps。HD-SDI 还支持另一种比特率,即 1.485/1.001G。 
表1中显示了高清视频信号的总行数和每行的样本总数(SMPTE 274M,1998),每一个视频行作为视频信号中的标准单元,被分成了两个主要的部分,水平消隐区和有效视频区。一行从参考时序 EAV(有效视频结尾)开始,EAV后面就是水平消隐区,水平消隐区的结尾是 SAV(有效视频开始),SAV 后面紧跟的就是有效视频区。有效视频区的样本就是真正显示在屏幕上的点,而空白区对应的就是模拟视频信号中的消隐区。下图1显示高清视频数据流中的一个视频行的数据格式,分开处理的亮度信号和色度信号必须同步,对应区域必须对齐。在演播室的传输中,是把两种信号流交错到成一个信号流来传输。(SMPTE 292M,1998)。
 
图1、视频行数据排列
其中,SAV 是有效视频行的开始标志,占 4 个字,前三个是 3FF、000、000,第四个字是 XYZ,包含主要的时序信息。EAV 表示有效视频行的结束,同 SAV格式相同。下表显示的是 SAV 和 EAV 中第四个字的比特信息。
表 3.XYZ 比特位信息
其中,F 表示该行属于哪一个场,F=0 表示场 1,F=1 表示场 2。V 表示该行是否为场消隐区的行,H 用于区分 EAV 和 SAV,H=0 表示 SAV,H=1 表示 EAV。
P3=V⊕H、P2=F⊕H、P1=F⊕V、P0=F⊕V⊕H。EAV 之后的两个字 LN,表示该视频行在特定的视频格式中所处的行数,色度和亮度信息中的 LN 是相同的。
表 4 LN 字比特信息
LN 后面的两个字是前一行的循环冗余码(CRC)。HD-SDI 接收器利用 CRC值检查传输中的错误。循环冗余码在 HD-SDI 中的作用,并不是实时处理错误,HD-SDI 中也不存在纠错码。CRC 错误检测会被系统输出,指示在传输链中的某个链接的设备出错了,从而该设备可以被维修或更换。每个数据流都有各自的 CRC 值,其计算是根据下面的公式:
CRC 校验从有效视频区间的第一个字开始计算直到下一行的 LN 的第二个字。水平消隐区和 SAV 不被计算。水平消隐区中的辅助数据通常有自己的错误检测方法。
表 5 CRC 字的比特信息
HD-SDI 数据流中,SAV 和 EAV 中的 3FF、000、000 作为独一无二的序列,作为整个数据流的参考时序,HD-SDI 接收器通过检测这个序列来同步比特流。上面说的是系统中亮度信号和色度信号分别在各自的通道进行处理,因此各自具有视频行的所有特征。在系统中数据传输时,这两个数据通道则会交错成一个数据流。在 10 比特宽度的字传输中,色度信号流中的数据通常先发送。在 20比特宽度的传输中,色度信号被放置在低 10 比特位。这是因为 HD-SDI 串行器先发送低位,因此把色度信号流放在低位就是为了保证先被发送。在串行数据传输加扰之前,两个数据流需要按照下图被交错到一个数据流中。每个视频采样点先是 2 个色差信号,再是一个亮度信号。在 10 比特宽度的字传输中,数据流 2 中的数据通常先发送。在 20 比特宽度的串行器中,数据流2 被连接到串行器的低 10 比特位,数据流 1 被连接到串行器的高 10 个比特位。因为 HD-SDI 串行器先发送低位。因此,把数据流 2 中的字放在低位,就是为了保证先被发送。
 
图2、数据流交错
在 HD-SDI 数据流交错之后,需要对数据进行一定的预加扰,增强数据的随机性,便于接收端的时钟数据恢复。HD-SDI 通常通过两个阶段对信号进行加扰。首先,对数据进行伪随机加扰,其次把伪随机加扰的输出从非归零 NRZ 数据转换为反非归零码 NRZI。伪随机加扰和线性反馈移位寄存器类似,下面两个公式就是这两个步骤:
下图显示加扰的串行实现,当在 FPGA 中实现时,这样的 HD-SDI 加扰器在一个时钟周期可以进行 10 或者 20 比特的编码。
 
图3、HD-SDI加扰
数字音频格式
       在标清应用中,视频素材一般嵌入立体声音频,分为左右声道。在高清播出系统中,音频的嵌入不仅要考虑到立体声,还有可能是5.1声道的环绕声或者Dolby-E压缩数字音频。数字音频信号标准也有很多种,例如AES/EBU、MADI、SDIF2、SPDIF 等。其中 AES/EBU 是 AES 和 EBU 共同制定的数字音频的接口标准,指的是一种专业数字音频接口标准,是目前广播领域数字音频的主流标准,广泛应用于演播室各种接口的音频设备间。
AES3 音频结构的最基本数据结构称为子帧。每个 32 比特的子帧携带一个音频样本字以及一些其他的信息位。音频字既可以是 24 比特,也可以是 20 比特。子帧的开始是一个 4 比特的前导码,音频字后面的是有效位(V)、用户数据位(U)、声道状态位(C)和校验位(P)。一个帧由两个连续的子帧组成,这两个子帧分别是一个声道对的两个声道的样本。音频帧按照 192 帧一组组成一个音频块,音频组织结构如图4所示。
 
 
  图4、一个音频块组成结构图
 
AES3 接口的数据速率取决于音频采样率。理论上,音频可以被任意的采样率采样,所以比特速率也可以是任意的。AES3 定义的标准音频采样率是 32 kHz,48 kHz, and 96 kHz。AES3 的多种比特速率使得在实际应用中经常用到音频采样率的转换。
嵌入解嵌技术
SMPTE272M是SD-SDI音频嵌入标准,SMPTE299M是HD-SDI的24bits PCM音频嵌入标准。美国电影电视工程协会(SMPTE)制定的SMPTE299M附加标准A中描述在 AES3 接口上传输SMPTE337M定义的非 PCM 编码的多声道音频(环绕声)。
传输的音频信号数从最少的两个声道到最大的 16声道。音频声道成对发送,一般一组 4 个,每组都有一个单独的辅助数据 ID。音频数据包被嵌入到并行色差信号 Cb/Cr 的水平辅助数据空间,音频控制包被嵌入到并行亮度信号 Y 的水平辅助数据空间。嵌入到视频中的音频包和SD-SDI的嵌入不同,没有音频扩展包只有两种:一种是音频数据包,一种是音频控制包。
音频数据包的格式在图5 所示,音频数据包包括辅助数据标志(ADF),数据标识(DID),数据块序号(DBN),数据计数(DC),用户数据(UDW)和校验和(CS)。
 
图5、音频数据包格式
其中:
ADF:作为音频包的其实标志,是一个 000 3FF 3FF 的序列。
DID:用在音频包中,用于识别音频组的标志,音频组 1(声道 1~4)的 DID是 2E7h,音频组 
2(声道 5~8)的 DID 是 1E6h,音频组 3(声道 9~12)的 DID 是 1E5h,音频组 4(声道 
13~16)的 DID 是 2E4h。
DBN:区别连续的 DID 相同的辅助数据包
DC: HD-SDI 中音频包的 DC 值恒为 218h。
CLK:音频时钟相位表示视频 EAV 的第一个字到音频样本输入到格式化模块时视频样本点之间的视频时钟数。专门用于异步音频在接收端重新生成音频采样时钟。
CH1~CH4:一个音频包中包含一个音频组即两个声道对共 4 个声道的音频样本。每个音频子帧在音频数据包中用 4 个连续的字来表示,其格式如下表6:
                                                                                                                    表6、音频子帧比特信息
       其中,Z 标志的状态用于同步 AES 音频块。相邻两个声道一个 Z 标志。
ECC:BCS(31,25)纠错码,对每个比特序列 b0 位到 b7 位。在该码的范围内对从 ADF 的第一个字到音频数据的最后一个字进行纠错或检错。ECC 是 BCH(31,25)纠错码,用来对从 ADF 到 ECC 之前的所有字进行纠错。BCH 码只针对每个字的 b0~b7 进行纠错。六个字的 ECC 是通过下面的式子生成的:
 
下图为BCH码的编码电路:
 
图6、BCH编码电路
 
FPGA系统实现
        嵌入和解嵌分别设计成两个系统,最后完成两个设备——嵌入设备、解嵌设备。由于两个系统实现的是一种互逆过程,基本原理都一样且实现方式都是采用单片FPGA完成数字逻辑的大部分功能,所以本文主要把两个系统融合一起研究。
FPGA选定为Xilinx公司Spartan6系列芯片,具体型号为XC6SLX45T-FG484。该款FPGA芯片资源及特点如下表7所示:
      表7

器件型号
XC6SLX45T
逻辑单元
43661
Slices数量
6822
触发器数量
54576
DSP处理单元
58
BlockRAM容量
2Mbits
时钟管理单元
4
DDR存储器接口

上一篇: 没有了

下一篇: 广播电视制播网的病毒防范

分享到: