1、PAL格式图像的实时采集和显示,实验一,(一)实验目的,(1)了解视频编码的基本知识(2)熟悉视频显示程序的结构、组成、视频数据的处理流程(3)浏览源程序代码并对其进行详细分析,(二)实验原理,(1)数字图像,数字图像是模拟图像经过数字化转换并可以用数字表示、处理的图像。数字图像由象素点组成,其中横向的点数称为水平分辨率,纵向的为垂直分辨率,一幅完整的图分为若干行,称为一帧图像。每个象素根据量化精度不同其取值也不同,例如可以用三个色彩分量RGB来表示一个彩色点,每个分量采用一个8 位二进制数表示。(200,100,64)描述的点的红色分量为200,绿色分量100,蓝色分量64,其中每个分量的取
2、值均为0255 ,表示从最暗到最亮256个等级。多帧静态的图像可以经连续播放产生动态效果,25 帧/秒或30 帧/秒的帧速可产生较平滑的动态显示效果。,(2)色彩空间,RGB 色彩空间:图像采集和显示设备采用,例如CCD、CMOS 摄像头,CRT 监视器等。因其色彩分量之间有较大的相关性,不适于做图像处理 。 YCbCr 色彩空间:Y 表示亮度,Cb 和Cr 表示色差。各色彩分量之间相关性小,适于进行处理操作。色差信号常做2:1 抽样处理以节省带宽。,(3)视频图像,视频图像简单地说就是活动图像。例如电影和电视。对于电视视频,每秒钟包含几十帧静止图像,每一帧静止图像由几百个行组成,每一行又由几
3、百个像素点组成。1 秒钟包含的图像帧数为帧频,1 秒钟包含的总行数为行频,1 秒钟包含的总像素数实际上就是相当于视频带宽。我国的黑白视频信号帧频为25 Hz,就是说每秒显示25 幅图像。主要原因是因为与人的视觉生理特点有关,当图像的刷新速度达到24 帧/秒的时候,人感觉图像是完全连续和流畅的,所以视频信号帧频应大于等于24 Hz(电影所使用的帧频就是24 Hz)。另一个原因是因为我国的电网频率是50Hz,当采用25 Hz 帧频时,隔行扫描时的场频为50Hz,正好与电网同频,这样,电源对图像的干扰是固定的,人眼不容易感觉出来,所以选择了25 Hz 帧频。,(3)视频图像,电视在显示图像的时候,把
4、一帧分成了两场来显示,一个场由帧中的奇数行组成,叫做奇场,另一个场由帧中的偶数行组成,叫做偶场。主要原因是在CRT 显象管上一秒钟显示25 帧图像时,人眼感觉到连续性还是不太好,有明显的闪烁,一帧分成两场后,场频( 1 秒钟包含的奇场和偶场图像的帧数)为50 Hz,图像更加连续。我国的黑白视频信号规定每帧图像共625 行,每场为312.5 行,行频15625 Hz,视频带宽6MHz。(384列/场)在每场的312.5 行中,有一些行要用作场消隐,是不包含视频信号的,按照CCIR656标准规定的行编号方法,奇场的行号为第1 至312.5 行,偶场的行号为第312.5 至625 行,其中,奇场的第
5、23.5 至310 行包含有效的视频信号,共287.5 行,偶场的第336 至622.5行包含有效的视频信号,共287.5 行。所以一帧中有效的总行数为576 行,由最上面的半行加上中间的574 行加上最下面的半行组成。,奇数场和偶数场,(3)视频图像,彩色视频信号:彩色电视信号为了能够与黑白电视信号保持兼容,以便彩色电视信号在黑白电视机上能播放出黑白的图像。运用压缩亮度信号带宽、大面积着色等技术解决了这个问题。从频域的角度来看,色度信号(UV 色差信号)是插在亮度信号的频谱的间隙之中的,具体的位置是插在4.43MHz 的地方,带宽1.3MHz。在接收机中,简单地说,把收到的信号中的4.43M
6、Hz 处的带宽1.3MHz 的信号取出来就成了色度信号,而把收到的信号中的4.43MHz 处的这个信号滤掉剩下的就是亮度信号。从时域的角度来看,黑白视频的亮度信号采用了调幅制,一行的周期是64s,其中显示在屏幕上的信号占52s,其余部分为行消隐、行同步头。对于彩色信号,还在行同步头上叠加了一小段4.43MHz 的副载波信号,用作接收机中的4.43MHz 信号的频率和相位基准。,一个行周期的黑白全电视信号,彩色电视系统的水平消隐间隔,(3)视频图像,在彩色视频信号传输中采用的YUV合成的方法。Y 代表亮度信息,U(Cb)代表蓝色色差(就是蓝色信号与亮度信号之间的差值),V(Cr)代表红色色差。彩
7、色图像与黑白图像兼容。假定一个像素是用YUV 表示的,我们只要忽略UV 分量,取出Y 分量,就可以得到像素的亮度值,从而把彩色图像转换为黑白图像。这样很容易实现彩色电视信号与黑白电视信号的兼容。节省带宽。实验发现,人眼对亮度信息是敏感的,而对彩色信息是不敏感的。因此,可以对亮度信号用较高的采样频率采样,而对色度信号用较低的采样频率采样(或者用较低的量化深度)。YUV 方式描述,则对于每2个像素,Y 用2 个字节,U 取相同的值,用一个字节,V 取相同的值,用一个字节,平均每个像素2 个字节。,(3)视频图像,抗干扰能力强。由于亮度信号是单独表示的,所以如果色差信号受到干扰,不会影响到亮度,主观
8、感觉噪声不会明显增加。 在电视机中,彩色视频信号首先分解为亮度信号Y 和色度信号,色度信号再分解为U色差信号和V 色差信号,最后由YUV 三个分量经过矩阵运算变换为RGB 信号,以便在显像管上显示。模拟视频信号每秒25 帧,每帧周期40ms,而每帧又分为2 场,每场20ms,先输出的是奇场,然后是偶场。 把模拟视频信号解码为YUV 分量后,分别进行A/D 量化采样,转换为数字视频流,时间上也是按上面的顺序依次输出。几个相关的国际标准: CCIR601 标准、 CCIR656 建议,(3)视频图像,CCIR601 标准:规定亮度信号的采样频率是13.5 MHz,色度信号的采样频率是6.75 MH
9、z,采用8 位PCM 编码。这样,每行的Y 采样数为864 个,其中有效的Y 采样数为720 个。而每行的U 或V 采样数为432 个,有效的U 或V 采样数为360 个。平均描述每个像素的YUV 的位数分别为8bit、4bit、4bit,又叫做YUV422 编码方案。 CCIR656 建议:规定视频数据的量化值中的0 和255 保留不用,而量化数据串行输出的顺序是:U0、Y0、V0、Y1,U2,Y2,V2,Y3,U4,Y5,V4,Y6,如此循环。 数字视频流应包含的元素有:奇偶场指示信号FI(有的称为ODD)、场同步信号、行同步信号、像素时钟、YUV 数据输出。 数字视频流的数据量,每秒的数
10、据量=(720 像素*576 行*25 帧)*2 字节=20736000 字节,数据率约165Mbps。,(3)视频图像,复合电视信号(全电视信号)复合电视信号由视频模拟数据和视频同步数据构成,用于接收端正确地显示图像。制式的区分主要在于其帧频(场频)的不同、分解率的不同、信号带宽以及载频的不同、色彩空间的转换关系不同等等。世界上现行的彩色电视制式有三种:NTSC制(简称N制)、PAL制和SECAM制。 复合电视信号中包含伴音信号,伴音信号放置在图像频带以外,放置的频率点称为声音载频,我国电视信号的声音载频为6.5MHz,伴音质量为单声道调频广播。 复合电视信号通常采用BNC 插头。,(3)视
11、频图像,复合视频信号复合视频(Composite Video)信号定义为包括亮度和色度的单路模拟信号,也即从全电视信号中分离出伴音后的视频信号。这时的色度信号还是间插在亮度信号的高端。由于复合视频的亮度和色度是间插在一起的,在信号重放时很难恢复完全一致的色彩。这种信号带宽较窄,一般只有水平240线左右的分解率。复合视频输入和输出端(Video In,Video Out)可以直接输入和输出解调后的视频信号。视频信号已不包含高频分量,处理起来相对简单。 由于视频信号中已不包含伴音,故一般与视频输入、输出端口配套的还有音频输入、输出端口(AudioIn、AudioOut),以便同步传输伴音。因此,复
12、合式视频接口也称为AV(Audio Video)口。,(3)视频图像,S视频信号(S-Video)S视频信号俗称S端子信号,它同时传送两路信号:亮度信号Y和色度信号C。由于将亮度和色度分离,所以图象质量优于复合视频信号,色度对亮度的串扰现象也消失。 由于S视频信号亮度带宽没有改变,色度信号仍须解调,所以其图象质量的提高是有限的,但肯定解决了亮色串扰,消除图象的爬行现象。 S端子采用四芯插头、七芯插头,欧洲也用SCART插头。四针接口比较常见,七针接口常用在计算机显卡中。,(三)视频显示程序的结构、处理流程及程序分析,在视频采集与显示任务中,程序首先将摄像头捕捉到的视频数据通过EDMA读入FIF
13、O中,然后再将数据从FIFO中读到输入数据缓冲区,最后将输入缓冲区的数据放入显示缓冲区,通过液晶屏显示。,DSP图像采集与处理的一般流程图,对DSP片上资源的使用,例如对片上外设的初始化、配置等,一般通过调用CSL API库函数来完成的。,主程序用到的一些CSL API和函数有:,CSL_init():芯片运行支持库CSL初始化,使用CSL API前必须调用此函数。CHIP_config():调用CSL库中CHIP模块,向配置地址中写设备配置值。CHIP模块是驻留着指定芯片和芯片相关代码,如器件的大小端、CPU和REV ID等。 EMIFA_Config():调用CSL库中EMIFA模块。外设
14、EMIFA的配置结构,初始化外设EMIFA的寄存器来初始化EMIFA。IRQ_setVecs()、IRQ_nmiEnable()、IRQ_globalEnable()、IRQ_map()、IRQ_reset() :调用CSL库中IRQ模块,初始化中断向量表。,I2C_Config():调用CSL库中I2C模块,动态配置外设I2C,初始化外设I2C的寄存器。I2C_open():调用CSL库中I2C模块,打开一个I2C设备。DAT_open():调用CSL库中DAT模块,打开一个DMA或EDMA通道。DAT_copy():调用CSL库中DAT模块,使用DMA或EDMA将数据从存储器一个地方移到另
15、一个地方。SEEDDM642_rset():读CPLD寄存器值(函数体在seeddm642_cpld.c中)GPIO_RSET():初始化GPIO的输出值(csl_stdinchal.h和csl_chiphal.h中预定义)_IIC_read():从I2C总线中读(函数体在iic.c中)。_IIC_write():向I2C总线中写(函数体在iic.c中)。bt656_8bit_ncfc():配置给定视频端口通道A不连续帧捕捉8位BT.656视频采集,打开一个视频端口VP,输入VP端口号,输出VP句柄(函数体在vportcap.c中)。bt656_capture_start():配置给定视频端口
16、通道A不连续帧捕捉8位BT.656视频采集,输入VP句柄,进行视频采集(函数体在vportcap.c中)。 bt656_display_start():配置给定视频端口不连续帧捕捉8位BT.656视频显示,输入VP句柄,进行视频显示(函数体在vportdis.c中)。,DSP图像采集与PAL显示工程文件管理器如右图所示。,工程由下列文件组成:主程序dm642main.c、TVP5150A初始化文件_tvp51xx.c、SA7121H初始化文件_sa7121h.c、SEEDDM642的I2C结构设置iic.c、CPLD逻辑模块seed_cpld.c、图像采集参数定义程序vportcap.c、图像
17、显示参数定义程序vportdis.c、中断向量表ves_dm642.asm、连接命令文件文件seeddm642video.cmd、库文件cslDM642.lib和rts6400.lib以及相关的头文件。,一、源程序代码及其详细分析参见教材P205P243,包括以下内容。,1 主程序dm642main.c代码及其分析2 TVP5150A视频解码器初始化(tvp51xx.h、_tvp51xx.h和_tvp51xx.c) 3vportcap.c视频捕捉代码及其分析4SAA7121H视频编码器初始化(sa7121h.h和_sa7121h.c) 5vportdis.c视频显示代码及其分析6连接命令文件seeddm642video.cmd代码及其分析,(四)、实验内容,二、在CCS集成开发环境下使用ViewGraphic观察图像采集缓冲区的图像数据,1. 这里是将第二通道(Vin1)作为视频输入,第一通道(Vout0)作为视频输出的。请更改程序,将第三通道(Vin2)作为输入时,进行视频的采集显示。 2. 如果视频处理任务不能及时地在下一个新的视频准备好之前完成处理,将会发生什么样的结果?显示将会怎样? 3 实验中采用什么方式进行视频捕捉?采用什么方式进行视频显示?4 如何为视频采集数据和视频显示数据分配存储器空间?5 简述利用DM642进行图像采集与显示的过程。,(五)、思考题,