2.1 视频采集
在本系统中,对输入的模拟视频信号的采集是由BT835视频Decoder完成的,支持的视频输入为PAL制或NTSC制式的标准模拟视频信号,输入的视频信号既可以是复合视频信号,也可以是S-Video信号,输出为4:2:2的YUV格式的图像数据。
absMiddle" border="0" onload="return imgresize(this);" onclick="javascript:window.open(this.src);" style="cursor:pointer;"/>
图3所示为DSP 模拟视频输入接口原理框图。标准模拟视频信号经预处理进入A/ D转换器;同时又经时钟产生电路得到与行同步同相位的A/ D 转换时钟,这样可以使得每行的采样点均为整数。为了确保视频数据整行地被采集到DSP 中进行处理,特将行同步信号作为FIFO 读入数据的起点。同时,行同步、场同步以及奇偶场标志信号也直接进入DSP ,使其能够确定读入的视频数据在一帧中的具体位置。为了增强系统的实时性,这里利用TMS320C6416 DSP 的DMA(直接存储器存取) 通道背景操作特性,以使DSP 和外设的数据交换能够与其内部CPU 的高速运算操作同时进行。而FIFO 的功能在于,通过它的缓冲,使得DSP 可以从容地与A/ D 之外的其它外设交换数据。
其中ARM7的作用是时钟的产生及控制视频采集芯片,将采得的数据从8位或16位转化为32位,并且使数据按照Y、U、V分开的方式排列。这样相当于对采集到的数据进行了一次预处理,以便于视频编码使用。另外ARM7将32位宽的数据输出给32位的FIFO。用32位的FIFO以及将视频数据转换为32位,可以使DSP读取视频数据时32位的数据总线没有空闲,从而提高DSP读取视频数据的效率;这里使用FIFO是为了减少DSP读取数据的时间、降低高速设备和低速设备的不匹配。每次FIFO半满时,ARM7会给DSP发送中断信号, 并且在中断处理程序中使用DMA方式读取视频数据;如果不使用ARM7,DSP会频繁中断,从而花费大量时间在入栈、出栈以及寄存器的设置上。
2.2 视频的MPEG-4编码模块
DSP读入视频数据后进行先期处理,如将YUV格式转为RGB格式等;然后进行MPEG-4视频编码。在这一过程中,数据访问通常要占用50%的时间,算术运算要占用30%的时间,控制要占用20%的时间。因为需要进行运动估计和运动补偿,在数据存储器中通常保存一帧I(原始帧)帧图像和至少一帧P(预测帧)帧图像,这些图像占用的空间都比较大,因此放在外部存储器SDRAM里。在编码过程中还要存储DCT系数、运动向量、量化矩阵、可变长编码表、Z形编码表等,由于占用较小的存储空间而且会反复用到,因此把它们放在片内存储器中。
2.3 视频传输
与PC 机不同,DSP 片内片外的两级存储体系结构以及数据分配原则决定了编码器实现过程中必然存在大量的数据传输,因而必须有效地管理以减少数据
传输所需的时间。
至于数据的采集部分可以利用DSP的DMA来进行。TMS320C6000 DSP 大都具有几个独立的DMA 通道,DMA 的特点是可以在不受CPU 干预的情况下完成数据从源地址到目的地址的搬移。