基于DM642的网络视频系统的设计与实现

时间:2012-06-11来源:网络

2.2 图像的获取及视频端口驱动
本系统中,原始图像帧是由摄像机获取的,编码后进入DM642的视频端口(VP)。对于DM642的VP口,TI提供了一个两层设备驱动模型:类/微驱动模型(Class/Mini Driver),其中Class Driver(上层驱动)用于连接应用程序和下层驱动,Mini Driver(下层驱动)靠近底层硬件。在此基础上,应用程序可以复用绝大部分相似设备的驱动程序,从而提高驱动程序的开发效率。根据VP口的特点,Class Driver又可分为FVIDCl ass Driver和GIO Class Driver,FVID Class Driver更接近应用程序,提供一些特别适用于图像的API函数,而GIO ClassDriver则提供与Mini Driver进行通信的API函数。在视频采集过程中,使用硬件中断对视频数据进行控制和传输,在中断服务程序中,根据视频端口内部FIFO的状态通过EDMA完成视频数据的读入。
系统用于编码支持的视频标准有PAL、NTSC和SECAM制式。PHILIPS的图像解码芯片SAA7115支持6路复合模拟视频或3路S端子信号输入,支持多种格式的数字RGB和YUV视频信号输出。输入的模拟视频信号经过SAA7115H采样后转化为YUV 4:2:2格式的数字视频,分辨率为720x480(可根据需要进行设置,DM642通过I2C总线对SAA7115H进行参数设定)。这是第一次采样过程。为了方便调用TI提供的JPEG算法库,还要对图像信号进行二次采样,将其转换为YUV 4:2:0格式。转换完成以后,将指向所得图像在内存区位置的指针通过SCOM消息传递给下一个任务,即编码。
2.3 图像的压缩编码
原始图像的数据量非常大,而网络传输的带宽有限,为了提高图像的传输速率,有必要对原始图像进行压缩编码处理。这一模块就是要将YUV 4:2:0格式的图像压缩成JPEG格式的图像。JPEG是一种被大量应用程序支持且非常流行的静态图像压缩标准,用户可以直接通过标准网页浏览器解压并查看JPEG格式的图像。在NTSC模式下(每秒30帧图像),把每一秒中连续的图像看作是独立的30帧静态图,作为动态JPEG(MJPEG)来进行编码。用户可自定义JPEG压缩的压缩级别,这将决定图像的压缩程度,并会直接决定所产生图像的质量。JPEG编码流程如图3所示。

e.JPG


Data reformat:将原始扫描图像分割成一系列8x8大小的图像块,同时这个步骤还将象素的灰度进行平移,动态范围由(0~255)转化为(-127~128),以消除信号偏移量的影响。
DCT:对上一步得到的每个8x8图像块进行2D离散余弦变换,并输出其频谱。由于DCT是一种可分离变化,因此可把它作为两次8点1D离散余弦变换来实现。
DC encode:对离散余弦变换后得到的直流分量(DC)系数进行量化和Huffman编码(变长编码)。
Quantization and RLE:对非零交流分量(AC)系数进行量化,并对其进行行程长度编码。
AC VLC:对上一步的输出结果再进行变长编码,并且构造图像的熵编码块。
Byte stuff:在JPEG标准中,一个或多个控制码以后面的0xFF来标记。在字节0xFF后面加上0x00则表示该0xFF是数据的一部分而非控制字。Byte stuff给熵编码块里的所有OxFF的后面插入0x00。

1 2 3 4

关键词: 设计 实现 视频系统 网络 DM642 基于

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版