HD-SDI数字视频信号处理及传输的FPGA设计与实现

HD-SDI数字视频信号处理及传输的FPGA设计与实现
HD-SDI数字视频信号处理及传输的FPGA设计与实现

《单片机原理与接口技术》期中论文

论文题目HD-SDI数字视频信号处理及传输的FPGA设计与

实现

姓名

学号

学院电气工程学院

专业班级2008级通信工程

目录

引言 (3)

1.HD-SD I卡电路结构 (4)

2.HD-SD I数字行、场定时关系 (5)

3.视频数据的提取及处理 (9)

4.DMA控制模块 (13)

5.PLX9656局部总线到Avalon总线转换模块 (13)

6.实验调试 (14)

7.结束语 (15)

参考文献: (16)

HD-SD I数字视频信号处理及传输的FPGA设计与实现专业:通信工程姓名:黄鑫

摘要:设计了一种符合SMPTE292M标准的高清晰度数字电视信号采集传输用的HD-SD I卡,介绍了其电路结构,对HD-SD I中的视频数据、视频定时基准码、行号数据、校验码进行了分析,并就数字视频识别和提取模块、DMA传输模块和PLX9656 局部总线到Avalon总线的转换模块进行了设计。FPGA采用Altera公司的StratixEP1S25,实验调试结果表明, HD-SD I数字视频信号处理及传输工作稳定可靠。

关键词:高清晰度电视; 比特串行数字接口; HD-SD I; 现场可编程门阵列

FPGA design and implementation of HD-SD I digital video signal

processing and transport

Abstract: This paper designed a newly developed SDI card for HDTV of SMPTE292M, and gave the construction of the HD-SD I card’s circuits. Gave detailed analyses of video data, timing reference codes, line number data, DMA transport,conversion between PLX9656 local bus and Avalon bus. This paper also p resented the design of these model.The design adopted Altera’s Stratix EP1S25 as FPGA, and experimental results show that the processing and transport of HD-SD I card isstabilization and trustiness.

Key words: HD-SD I; FPGA; bit-serial digital interface

引言

高清晰度数字电视节目的制作在我国还处于起步阶段。目前的电视制作仍以标准清晰度数字电视节目为主。高清晰度数字电视和标准清晰度数字电视在未来相当长的时间内将并存。数字视频接口是非线性编辑系统中数字信号输入和输出的通道,对视频质量的好坏有直接的影响。比特串行数字接口(SD I)标准由移动图像和电视工程师协会( SMPTE)制定,在当今的广播和视频产品领域得到了广泛的应用。SD I 接口作为当前主要的数字视频外部接口,可以实时地传送无压缩的视频数据。其高质量的视频信号,对广播级设备而言具有重要作用。

本文介绍了用于高清晰度数字电视信号采集传输用的HD-SD I卡,它可以连接HD摄像机或其他节目信号源,将SD I输入信号进行串并转换和处理后传输给工作站。同样也可以将工作站中的数字电视节目源经HD-SD I卡上的SD I接口输出,这样就为数字电视节目的非线性编辑提供了极大的方便。目前国内市场高清晰度数字电视信号采集传输用的HD-SD I卡都为国外产品,国内进行SD I接口卡的设计企业也只是进行标准清晰度数字电视SD-SD I卡的设计和生产。本文设计的HD-SD I 卡可完全替代国外的同类产品,必将为我国高清数字电视技术的推广应用添砖加瓦。

1.HD-SD I卡电路结构

HD-SD I卡由Stratix EP1S25、SDRAM、SRAM、flash、均衡电路GS1524A、串并/并串转换电路GS1560A /GS1532、输出驱动电路

GS1528A、PCI接口电路、配置器件MAX7128S、可编程时钟电路、同步锁相电路GS4982和电源转换电路等组成。电路原理框图如图1所示。由于篇幅所限,有部分外围电路和电源电路没有在图中绘出。

HD-SD I卡具有二通道的视频输入,定义为A和B 通道;三通道的视频输出,定义为C、D和E通道(其中E通道为上述二通道中选择输入通道的回路输出,可用于输出监视) 。视频输入可以是符合SMPTE292M 11485 Gbp s或SMPTE259M 270Mbp s的串行数字接口。图1中genlock 为同步锁相输入。HD-SD I卡中C、D、genlock采用BNC连接; A、B、E 采用HD-SD I卡所连数字视频接口DV I线缆分出的三个BNC连接; DV I 线缆分出的一个DV I接口可以连接外部输出的DV I视频信号, HD-SD I 卡可以把此视频信号通过PCI总线传输给工作站。

2.HD-SD I数字行、场定时关系

按照高清晰度数字电视演播室参数标准中的规定,一帧画面亮度像素数为1 920 ×1 080;两个色差信号像素各为960 ×1 080,数字设备向外输出每帧内的像素数据时,按次序时分复用。亮度信号Y和经过时分复用后的色差信号Cb、Cr处理为20 bit数据字。该数据字对应一个色差取样和一个亮度取样。复用次序为

(Cb1 , Y1 ) (Cr1 , Y2 ) (Cb3 , Y3 ) (Cr3 , Y4 ) ?

其中: Yi 表示每行的第i个亮度有效取样; Cbi、Cri表示与Yi 取样点位置相同的色差Cb 和Cr 分量的取样。由于色差信号取样频率是亮度信号取样频率的一半,色差取样的序号“i”仅取奇数值。

HD-SD I隔行扫描数字场的定时关系如图2所示。一帧总行数为1125。其中第1 124行、1 125行和1~20行位于第一场数字场消隐区,计22行; 561~583行位于第二场数字消隐区,计23行。每帧场消隐区总共为45行。21~560行为第一场有效视频区,计540行; 584~1 123为第二场有效视频区,计540行。两场合计共1 080行,即为一帧的有效视频行数。

每一亮度行(或Cb、Cr色差行)的样点序号从SAV后第一个有效样点开始计数,第一个样点序号为零,至SAV的终点为最后一个样点,序号为2639。

HD-SD I数字行的定时关系如图3所示。其中的SAV和EAV为视频定时基准码。SAV存在于每个视频数据块的开始, EAV存在于每个视频数据块的终止。

定时基准码EAV由八个字组成,每个字为10 bit。前三个字是一个固定前缀,第一个字用全1表示,第二和第三个字用全0 表示,留给定时基准信号用,第四个字载有定义场识别( F) 、场消隐期(V)和行消隐期(H)等信息。为了与8 bit接口兼容,第四个字的第0和1比特位的值没有使用,只使用了序号为2~9的八个比特位。定时基准码EAV四个字的比特分配如表1所示。其中:第四个字的P0、P1、P2、P3 是保护

比特。Pi 的状态取决于F、V、H的状态,它们与F、V、H比特共同组成线性分组码序列,从而为F、V和H比特提供检错和误码校正,在接收端可以检测出F、V和H三个比特中的两位错码并能纠正其中一位错码。

在数字高清晰度电视中存在几种格式,包括多样的帧频以及水平和垂直扫描频率。为了在数字高清晰度数字电视中帮助这一点, SMPTE292M在EAV之后插入了行计数,它由LN0和LN1两个码字构成。LN0和LN1合在一起,用11 bit的二进制数值(L0~L10)给出了它所在行的行序号。其比特分配如表2所示。在这两个字中,最高位bit 9总是bit 8的逻辑非;两个最低位作为保留比特,预置为零。现举例说明行序号指示的用法:假设LN0 = 394h, LN1 = 220h,对应的二进制数据分别为

1110010100和1000100000。按照表2对行序号的分配规定,可知该行的行序号为10001100101,即第1 125行。

定时基准码EAV最后两个码字由YCR0和YCR1构成,它们构成对亮

度数据行和Cb、Cr色差数据行的逐行CRC校验。CRC校验的基本原理是把该行发送的视频数据比特序列当做一个数学多项式的系数(如一组比特序列1000010001可用F (X) = X9 + X4 + 1来表示) ,并将它作为被除数,用一个收发双方预先约定的生成多项式做除数,两者相除

后就得到一个余数多项式。在发送端将这个余数多项式的系数(它被称为CRC校验字)存放YCR0和YCR1内,随同视频数据序列一起发送,在

接收端采取与发送端同样的除法运算。如果计算出的余数多项式系数与存放在YCR0和YCR1内的系数相同,表示传输无差错;如果不同,则表示有误码产生。标准规定, CRC校验的生成多项式为CRC (X ) = X18 + X5 + X4 + 1。由于它的最高次幂为18,余数多项式的最高次幂不可能超过17,用18bit来存放CRC校验字能够满足位数的要求。YCR0和YCR1数据字的比特分配如表3所示。最高位bit 9仍然是bit 8的逻辑非。实际上, CRC校验过程是从亮度行的第一个视频数据字即Y0 开始计算,直到该行EAV 后的行序号字LN1 为止。CRC的初始值预置为零。这

种循环冗余校验在接收端能够检测出视频数据流中所有1位、2位和奇数位的离散错,以及所有长度不大于18位的突发错(即连续的一串错码) 。它对于长度大于18位的突发错也有相当强的检测能力[ 3, 4 ]。定时基准码SAV与EAV前四个字定义一样,在此就不赘述。

3.视频数据的提取及处理

如前所述,在HD-SD I信号中并非都是有效视频数据,因此在对数据进行各种处理前,需要将有效视频数据分离出来。

在本项目设计中,高清信号是2 :1、1 920 ×1 080格式的10 bit 彩色数字视频信号,隔行扫描,一行共1920个像素,共需采集3840个数据。通过HD-SD I传输的数据有两个标志码,在每行有效输出数据的前端有标志码SAV,后端有EAV。只有在这两个标志码之间的数据才是有用视频数据。

设计中设置了八个10 bit的移位寄存器:在第一个时钟周期,将

收到的字节数据写入第一个寄存器中;在第二个时钟周期,将这个字

节写入后一个寄存器中,而将最新收到的字节数据再写入第一个寄存

器中;在第三个时钟周期,将第二个寄存器中的数据写入三个寄存器,将第一个寄存器中的数据写入第二个寄存器,将最新收到的字节数据写入第一个寄存器??依此类推,每一个时钟周期,寄存器中的字节数据依次向后移一个寄存器,八个寄存器中的数据顺序是字节输入顺序的逆序,最早的数据在最后一个寄存器中,最新的数据在第一个寄存

器中。

通过对这八个移位寄存器逆序,再对其中的数据进行检测,就可

以对行起始标志码和行结束标志码进行判定了。如果八个寄存器中的前四个数据分别是十六进制的3FF、000、000、XYZ,并且XYZ中的第七位为0,则说明这是有效行的起始标志码,它后面的数据就是有效视频数据,需要开始进行存储和处理;如果八个寄存器中的数据分别是十

六进制的3FF、000、XYZ,并且XYZ的第七位为0,则说明这是有效行的行结束码,它后面的数据又是无效数据,需要进行舍弃。

在对SAV与EAV标志字节进行判断时,也要对XYZ其他各位数据的

变化进行分析。如果它们的次高位( bit 8)值为0,说明在第一场期间;如果为1,则说明当前数据行是第二场数据。如果它们的第六位( bit 6)值为0,则说明它是SAV信号,它后面的数据有效;如果为1,则说明它是EAV信号,它前面的数据有效。如果连续两行有效数据中XYZ的次高位( bit 8)值有变化,则说明开始传输一场新的数据,变化后的SAV标志位是场头的位置。其值如果从1变为0,说明是第一场的开始,同时也是一帧新图像的开始;如果从0变为1,说明是第二场的开始。

在系统启动后,为防止采集的第一帧图像不完整,不能立即对所

采集的第一行有效数据进行存储处理,而要等到一帧新图像的起始,即检测到XYZ的次高位值由1变为0时才可以开始对数据进行存储处理。由此可见,对SAV与EAV标志字节中各位数据的变化进行检测与分析是十分必要的。

在FPGA设计中,加入了四个双口RAM来协助完成有效视频数据的分离和存储工作。输入FPGA 的视频数据是1 920 ×1 080、2∶1格式信号,每一行有1 920个Y分量, 960个Cr分量与960个Cb 分量,每个分量用10 bit表示。因此,一行数据共有19 200 bit的Y分量, 9 600 bit 的Cr 分量与9 600 bit的Cb 分量。在FPGA内部设计的每个双口RAM 的容量是10KB,可以一次存储半行Y分量或整一行Cr、Cb 分量。四个双口RAM中,两个用来存储Y分量数据, 另外两个分别用来存储Cr、Cb 分量数据,这样刚好可以存储一行完整的视频数据。当一行数据存储满之后,再由FPGA控制,将数据写入SDRAM芯片中进行数据分离与缓冲。各数据分量在双口RAM中的存储格式如图4所示。

由于送入FPGA的视频数据是10位的,在FPGA的四个双口RAM中,是以两个字节共16位为单位对各数据分量进行存储的,以14位片内写地

址线与两位片选地址线共同组合对存储空间进行编址。然而在FPGA 中, SDRAM与DMA模块都是以32位数据线宽来传输数据的,需要在将双口RAM中的数据读出前,先将其中的数据两个一组拼凑成32位,以另一套15位的读地址线重新编址,再对新地址中的32位数据进行读取。由图3可以看出,由于Y、Cr、Cb 分量的存储格式不同,对它们的数据组合方式也是不同的。对Cr与Cb 分量,是将同一个双口RAM中地址相邻的两个有效数据进行合并,并以其中较小的地址与片选地址线组合,作为读地址而重新进行编址,这种组合方式与片选地址线无关,可以通过判断两个数据的高八位片内写地址线是否相同来实现。对Y分量,需要将片选地址线分别为01和11的两个双口RAM中片内写地址相同的两个数据进行合并,并以两个数据的片内写地址线作为读地址而重新进行编址。这种组合方式可以通过判断这两个双口RAM中数据的片内写地址线是否相同来实现。这样,就可以将Y、Cb、Cr分量合并成32位的Y、Cb、Cr 数据,向SDRAM和DMA中进行传输。SDRAM模块的存储容量为2 MB ×32 bit,可以存储一帧完整的数据。因此在本项目中,设计将SDRAM的存储空间划分为三个连续的区域。其中二分之一用来存储Y分量有效数据,四分之一用来存储Cb 分量有效数据,剩余四分之一用来存储Cr分量有效数据。对SDRAM内部地址的读写控制,是通过在FPGA内部设置的三个地址控制器来完成的。三个地址控制器首先需要分别计算三个分量的首地址,在后面的数据传输过程中,每输入一个数据,相应的地址控制器将偏移地址加1。这样, Y、Cb、Cr 分量都可以按顺序分别存储了。在实际设计中,设计Y分量的首地址为0。由于

在SDRAM中需要为它保留一半的存储空间, Cr 分量的首地址被设置

为1MB,相应地将Cb 分量的首地址设置为1500 KB。

4.DMA控制模块

由于SOPC builder提供了基于Avalon总线的DMA模块,设计中采

用了独立的、不需要CPU干预的DMA模块。它支持字节、半字和字传输。它既可以在存储器之间进行数据拷贝,也可以在存储器和外设之间进行数据传递。DMA外设拥有两个Avalon主端口(用于DMA读数据和写数据)和一个Avalon从端口(用于控制DMA) 。软件设计时需要先初始化存储器地址,然后启动DMA控制器进行数据的传输。可用以下指令来启动DMA传输:

nr_dma_copy_range_to_range ( na_dma_0, 4, RD_ADDRESS,WR_AD2 DRESS,LENGTH) ;

其中: RD_ADDRESS为源数据地址;WR _ADDRESS为目标地址; LENGTH

为数据长度。

5.PLX9656局部总线到Avalon总线转换模块

在HD-SD I数字视频信号处理及传输的FPGA实现中,各功能模块

之间的连接利用了Altera开发的Avalon总线。对于SOPC builder尚未集成的功能模块,用户必须设计出符合Avalon总线规范的模块才能集成到SOPC中,这就需要额外的总线转换模块。因此笔者进行了PLX9656局部总线到Avalon总线的转换模块设计。它的作用是把DMA传输的数

据送到PLX9656局部总线, 为进一步向PC 机的PCI总线传输提供通道。PLX9656局部总线到Avalon总线的转换模块接口如图5所示。

Avalon总线规范定义了主端口和从端口之间通过Avalon总线模

块传输数据所需的信号和时序。设计时PLX9656采用从端口传输模式,提供符合Avalon总线传输要求的信号线,即address、data(31. . 0)、write_n、chip_select、wait_request与时钟信号clk。当主设备DMA 控制模块要发送数据时,将address、write_n信号有效,同时将要发送的32位数据装载到data (31. .0)上,而同步时钟clk一直处于工作状态。当clk上升沿判断到以上信号有效后,Avalon总线对address译码,然后置chip_select有效。VHDL 程序设计时须判断address、

chip_select是否有效;如果有效,则在下一个clk上升沿前将

wait_request置为无效,就从Avalon总线获取data数据;如果

wait_request有效,则这个总线周期就成为等待周期,其他信号以及

数据信号保持不变。同理,数据接收采用具有外设控制等待周期的从端口读传输模式,可以将数据送入到主设备中进行处理。

6.实验调试

由于数字高清晰度电视SD I信号源和专业SD I高清显示器需要几十万元,实验调试时购置了一块澳大利亚BlackmagicDesign公司的decklink HD extreme板卡。通过把它插入工作站的PCI插槽,在工作站上播放高清节目源,该板卡就会输出高清电视SD I信号,相当于一

台高清信号发生器。通过这种工作站加板卡的方式成本还到五万元。

由于利用了国外HD-SD I卡进行输出高清信号来调试自己的板卡,又起到了“以它山之石,可以攻玉”的效果。

实验调试首先将decklink HD extreme板卡的SD I输出接到本设计板卡的输入通道,经过数字视频提取及处理并给上位机软件进行非线性编辑后,可以再通过PCI总线给板卡;板卡经过数字视频并/串转换后输出HD-SD I信号。输出的HD-SD I信号可以直接接至专业SD I 高清显示器上,实验调试时笔者利用了Blackmagic Design公司的HDL ink转换器,将HD-SD I格式的信号转换为DV I格式的信号,然后直接用于LCD监视器的显示。实验调试环境及结果如图6所示。LCD上显示的是经HD-SD I板卡采集和处理后传输过来的高清视频信号。

7.结束语

本文对高清晰度数字电视信号采集传输用的HD-SD I卡上视频处理和传输的FPGA设计进行了详细介绍,所有设计都经实验验证是可行的。它能将HDTV视频信号采集到计算机,还可以将进行非线性编辑后的视频信号输出。希望本设计对HDTV和SD I应用设计的人员有一定的参考价值。

参考文献:

[1] WH ITAKER J. 高清晰度数字视频原理与应用[M]. 曹晨,杨作梅,译. 3版. 北京:电子工业出版社, 2002: 10212.

[2] 王明臣,姜秀华,张永辉. 数字电视与高清晰度电视[M]. 北京:中国广播电视出版社, 2003: 45265.

[3] SMPTE259M, Television 10bit 4∶2∶2 component and 4FSC composite digital signal2serial interface[S].

[4] SMPTE292M, Television bit2serial digital interface for high2definition television systems[S].

[5] 屠添翼,石跃祥. 视频监控系统中的图像采集和视频有效存[J]. 计算机应用研究, 2005, 22 (8) : 2412242.

[6] 周望玮,史小军,朱为. 基于FPGA的SDRAM读写双口控制器设计[J]. 电子器件, 2006, 29 (2) : 5812584.

[7] 杨珂,刘明业. JPEG 2000系数位平面编码的FPGA设计[J]. 计算机应用研究, 2005, 22 (10) : 1572161.

[8] 邵亮,杜歆,应卓瑜. 基于FPGA的视觉处理系统设计与实现[J].传感技术学报, 2005, 18 (1) : 63265.

[9] 和志强,薛世建. 基于PCI总线的高速大容量数据采集卡[J]. 数据采集与处理, 2004, 19 (4) : 4632466

相关主题
相关文档
最新文档