摘要:随着计算机技术、多媒体和数据通信技术的发展,计算机视频的应用越来越广。但视频通常由于数据量巨大,应用受到不少限制。为解决视频数据的存储和传输,唯一途径就是对视频数据进行压缩。结合目前实际需求,给出了一种基于PCI总线的MPEG-I压缩卡的软件、硬件实现方案。
关键词:PCI总线 WDM驱动 MPEG-1压缩卡
随着计算机技术、多媒体和数据通信技术的高速发展,人们生活水平的提高,对计算机视频的需求和应用越来越多,如视频监控、视频会议、计算机视觉等。计算机视频提供给人的信息很多,但是视频的数据量很大,不利于传输和存储,使其应用受到不少限制。为解决视频数据的存储和传输,唯一途径就是对视频数据进行压缩。
目前常见的视频压缩方法有MPEG-1、MPEG-2、MPEG-4、H.261、H.263等。考虑压缩技术的成熟度和该压缩卡的主要用途,本文采用MPEG-1作为压缩标准,研制了基于PCI总线的MPEG-I压缩卡。该卡适用于视频监控、视频会议等多种应用场合。该卡加上一台主机、摄像头和软件可构成一个完整的视频采集压缩系统。
1 系统特点
(1)支持BNC、RCA、S-VIDEO视频接口;
(2)支持PAL和NTSC制式;
(3)可对视频实时预览,最大分辨率可达720%26;#215;576%26;#215;32;
(4)可对声音进行同步监听;
(5)可对音、视频信号进行MPEG-I压缩,生成MPEG文件和VCD文件;
(6)用户可编程MPEG-1编码设置,可支持CBR和VBR;
(7)可一机多卡同时工作;
(8)可从动态影像中捕获单帧,生成JPG和BMP文件;
(9)支持Win98/Win2000。
2 系统硬件设计
2.1 系统组成
该系统主要由视频解码、音频解码、压缩核心和PCI接口等组成,其总体框图如图1所示。
2.2 视频解码设计
视频解码部分主要完成模拟视频到数字视频的处理,以供后面预览、压缩用。视频解码芯片常用的有SAA7110、SAA7113和SAA7114等。本方案中采用Philips公司的SAA7114。SAA7114有六路模拟输入,内置模拟源选择器可构成6%26;#215;CVBS、2%26;#215;Y/C2%26;#215;CVBS、1%26;#215;Y/C和4 %26;#215;CVBS;两路模拟预处理通道,内有抗混迭滤波器;CVBS或Y/C通道含完全可编程静态增益控制或自动增益控制功能,对CVBS、Y/C通道可进行自动钳位控制;能自动检测50Hz/60Hz场频,并可自动在PAL和NTSC制式进行切换;能将PAL、NTSC和SECAM信号解码及模数变换得到符合ITU-601/ITU-656的数字电视信号。该芯片是目前视频解码芯片中接收视频源的宽容性及视频解码图像质量最好的一种。其通过I2C接口,进行初始化设置。
本系统采用Image Port作为数字视频输出端口,数字视频格式采用ITU-656AI11(PIN 20)作为BNC/RCA输入脚,AI12、AI22作为S-VIDEO输入脚。
图2 SAA7146A方框图
2.3 音频解码设计
音频解码的数据一部分提供给SAA7146A作声音监听用,另一部分用于压缩。考虑到成本,本系统采用BURR-BROWN公司的PCM1800E。该芯片是双声道单片ΔΣ型20 位ADC单+5V电源供电,信噪比为95dB(典型值),动态范围95dB(典型值),内嵌高通滤波器,支持四种接口方式和四种数据格式。其采样频率为32kHz、44.1kHz和48kHz可选。
本系统采用从模式,20位I2S数据格式。主时钟由SAA7114提供。
2.4 MPEG-1压缩部分设计
本系统中MPEG-I压缩芯片选用ZAPEX公司的SZ1510。该芯片基于TI的TMS320C54x DSP内核,能对ITU-601/ITU-656数字电视信号和PCM音频流进行MPEG-1实时压缩,可生成多种流,如音频基本流、视频基本流、音视频复合流等。
该芯片外接27MHz晶振,可支持多种主机接口,可工作在复用或非复用、Intel或Motorola类型总线。通过输入管脚HCONFIG1:0和SysConfig寄存器可设置成六种总线接口类型:Intel 8051类型的数据/地址复用的8位总线、Motorola类型的数据/地址复用的8位总线、Intel 8051类型的非复用的8位数据总线、Motorola类型的非复用的8位数据总线、Intel 8051类型的非复用的16位数据总线和Motorola类型的非复用的16位数据总线。支持I2S声音接口。
本系统中采用Intel 8051类型的非复用的16位数据总线。
2.5 PCI接口部分设计
本系统中PCI接口芯片选用SAA7146A,该芯片并不是通用的PCI接口芯片,而是一个多媒体桥(Multimedia Bridge)。方框图如图2。该芯片符合PCI2.1规范。它有八个DMA通道,三个视频,四个音频,一个DEBI(Data Expansion Bus Interface)。还具有两路视频通道,可对视频数据进行缩放,一路可无级缩放HPS(High Performace Scaler,其纵向可达1:1024、横向可达1:256;另一路有级缩放BRS(Binary Ratio Scaler支持CIF和QCIF格式。
音频接口以I2S为基础,通过编程控制以支持MSB-FIRST的不同格式及不同的时序格式。
本系统中该部分主要实现功能如下:
(1)通过DEBI接收SZ1510产生的MPEG-1数据,传输到内存;
(2)通过视频接口,接收SAA7114输出的视频解码信号,并进行亮度、色度、饱和度的控制,并实现无级缩放功能实现视频预览功能;
(3)通过音频接口,接收PCM1800E输出的PCM编码信号,传输到内存,实现声音监听功能;
(4)提供符合PCI2.1规范的接口,将板上数据传输到主机内存。
3 软件设计
软件设计主要包括驱动程序设计和应用层的API设计。
驱动程序主要负责与硬件打交道,应用层API主要负责与驱动程序接口。由于设计了应用层的API,应用程序可很容易在上面进行开发。
3.1 驱动程序设计
为了支持Windows2000和Windows98采用WDMWindows Driver Model 驱动程序。WDM 作为微软的最新驱动程序模型与传统的Win3.x和Win95使用的VxD驱动完全不同。WDM可支持电源管理、自动配置和热插拔等。WDM驱动的设计可以采用Driver StudioDS、Windriver、DDKDriver Device Kit等。本系统驱动采用Windows 2000 DDK借助VC6.0设计。
3.1.1 MPEG-I压缩部分
在驱动中,重置SZ1510后,就可以装载相应工作模式的微码;根据需要,设置好相应寄存值后就可以启动SZ1510对视频数据进行MPEG-1编码。每当产生的压缩数据超过SZ1510内部的FIFO门限后,SZ1510产生相应中断,内核调用中断例程,在中断例程中调用中断延迟例程DPC,在中断延迟例程中接收产生的压缩数据。SZ1510提供两种方式提取数据,一种用I2C总线接口方式,另一种用DEBI方式。
在本系统中,采用DEBI进行压缩数据的传输。考虑到压缩数据产生的速度,本系统开了32页大小的缓冲区,在中断延迟例程中填充该缓冲区。每当填满8页大小后,产生一个事件通知应用层进行数据读取。通过这种方式,可以避免压缩数据的丢失。
其流程图如图3所示。
在驱动中,压缩数据的提取方式将极大地影响生成MPEG文件的质量。如果处理不当,将导致马赛克、跳帧等现象。
3.1.2 驱动程序中用户缓冲区的访问
驱动程序访问用户内存主要通过缓冲I/O和直接I/O。缓冲I/OI/O管理器创建一个内核模式拷贝缓冲区,并把用户缓冲区的内容拷贝到该缓冲区中,并在IRP首部的AssociateIrp.SystemBuffer域中存储该非分页内存地址。驱动程序可简单地读写该块内存。直接I/O,I/O管理器为输入数据提供一个内核模式拷贝缓冲区,对输出数据提供一个内存描述符(MDL)。为了使用缓冲I/O或直接I/O在创建设备时,必须设置设备对象的Flags域中的DO_BUFFERED_IO标志位来使用缓冲I/O或设置DO_DIRECT_IO标志位来使用直接I/O。
在本驱动中由于缓冲I/O和直接I/O都被使用,DO_BUFFERED_IO标志位和DO_DIRECT_IO标志位都被设置。
在定义IOCTL码中,对缓冲I/O使用METHOD_BUFFEERED对直接I/O使用METHOD_OUT_DIRECT。
3.2 应用层API设计
应用层对驱动程序的访问通过调用Win32 I/O函数(如ReadFile、WriteFile和DeviceIoControl)访问。当应用层调用Win32 I/O函数以请求I/O后,该请求由内核的I/O系统服务接收,I/O管理器对该请求构造合适的IRP包,并将其传给驱动程序栈,IRP在栈中进行传递,传到驱动程序进行处理,并将结果返回给应用程序。
通过应用层API,在其上面可进一步开发各类应用程序。
本系统达到了预期的要求,能够在音视频采集过程中对视频、音频进行实时预览、监听。压缩生成的文件可在标准媒体播放器上播放,并可对生成的VCD文件进行刻录,然后由VCD机播放.
引用地址:基于PCI总线的MPEG-1压缩卡软硬件设计及实现
上一篇:数字传感器MPXY8020A与MSP430的接口设计
下一篇:焊缝检测系统中PCI总线高速数据采集卡的设计
- 热门资源推荐
- 热门放大器推荐
小广播
热门活动
换一批
更多
最新应用文章
更多精选电路图
更多热门文章
更多每日新闻
- 首都医科大学王长明:针对癫痫的数字疗法已进入使用阶段
- 非常见问题解答第223期:如何在没有软启动方程的情况下测量和确定软启动时序?
- 兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书
- 新型IsoVu™ 隔离电流探头:为电流测量带来全新维度
- 英飞凌推出简化电机控制开发的ModusToolbox™电机套件
- 意法半导体IO-Link执行器电路板为工业监控和设备厂商带来一站式参考设计
- Melexis采用无磁芯技术缩小电流感测装置尺寸
- 千丘智能侍淳博:用数字疗法,点亮“孤独症”儿童的光
- 数药智能冯尚:ADHD数字疗法正为儿童“多动症”提供更有效便捷服务
- Vicor高性能电源模块助力低空航空电子设备和 EVTOL的发展
更多往期活动
11月22日历史上的今天
厂商技术中心