您的位置 首页 发布

根据MPEG-4的嵌入式多媒体监控体系中紧缩/解压卡的规划与完成

本文在简单分析多媒体监控系统发展现状的基础上,提出了一种基于VW2010芯片的多媒体压缩/ 解压卡的设计方案,包括硬件设计和Linux下设备驱动程序设计。最后在Linux Redhat7.3下编写了测

1  MPEG-4 规范及其在多媒体监控体系中的运用
多媒体监控体系是多媒体技能在安防范畴的新运用。音视频紧缩技能是多媒体监控体系中的要害技能。在数字多媒体紧缩范畴内有许多国际规范,如ISO/ITU-T 技能委员会下的JPEG 规范,CCITT拟定的H. 263规范,以及闻名的MPEG规范等。

MPEG-4规范于2000年10月发布。MPEG-4 规范的首要特点是对图画中的内容进行编码, 其间心是依据内容的规范可变性(Content – basedscalability) 。内容规范可变性意味着给图画中的各个目标分配优先级。其间,比较重要的目标用较高的空间和(或) 时刻分辨力表明。对甚低比特率运用来说,规范可变性是一个要害的要素,因为它供给了自适应可用资源的才能。例如,这个功用答应运用者规则:对具有较高优先级的目标以可接受的质量显现,第二优先级的目标则以较低的质量显现,而其他内容(目标) 则不显现。关于监控体系来说,在绝大部分时刻内,监督画面的布景都坚持不变,因此在要求低比特率时,关于监督画面的布景部分能够以较低的质量显现,且不会影响整个画面的作用。本体系选用MPEG- 4 紧缩规范,在完结上挑选硬紧缩和硬解压, 所用的紧缩解压芯片为VWEB公司的VW2010 芯片。

2  硬件规划原理

2. 1 VW2010 芯片的首要特点
VW2010是VWEB公司开发的实时MPEG-4音视频紧缩/ 解压芯片(CODEC) 。该芯片具有以下首要特点:
(1) 单片集成3 个信号处理/ 操控单元,包含一个视频编码(紧缩) 器、一个视频解码(解压) 器和一个片内CPU(内部扩展一个音频编码DSP、一个音频解码DSP、一个多路复合单元和一个多路解复合单元) 。
(2) 为了到达可编程、高功用和低功耗,每个信号处理/ 操控单元都是由一个RISC处理器和专用的硬件加速器构成,视频编、解码器内部还集成一个专用的SDRAM。
(3) 在体系上电/ 复位时,视频编、解码器的固件程序从外部主机(host )载入各自专用的SDRAM;片内CPU的固件程序载入VW2010外挂的SDRAM。
(4) 芯片主机接口选用规范PCI 接口。契合PCI部分总线规范2. 2 。
(5) 为了使编、解码功用到达最佳,VW2010内部集成了一个双通道DMAC。体系host直接经过主机接口对VW2010 进行操控,MPEG流数据则选用DMA办法传输。
(6) 供给了与PHILIPS公司兼容的I2C总线,便利对外围芯片的操控。

2. 2 依据VW2010 的紧缩/ 解压卡硬件规划原理
紧缩卡的原理框图如图1所示。CVBS信号先经过视频接纳电路进行前端处理,包含阻抗匹配、限幅和钳位,然后经过视频解码电路发生契合VW2010视频接口规范的ITU656信号。视频解码电路的中心是一个视频解码芯片,解码芯片对CVBS信号进行A/ D转化和编码,发生ITU656 规范的并行数字电视信号。高级的视频解码器还支撑图画尺度缩放( scaling) 和帧提取(decimating) 功用,如PHILIPS 公司的SAA7114 、SAA7115 以及Rockwell 公司的BT829A 等。因为VW2010的视频输入为ITU656/D1 格局,所以只需求挑选具有根本A/D 转化和编码功用的视频解码芯片如SAA7113 即可。

图1  紧缩卡原理图

模仿音频信号先经过模仿音频接纳电路进行前端处理,然后经过音频ADC 发生契合VW2010音频接口规范的I2S 信号。VW2010是紧缩卡的中心处理芯片,除了完结音视频编码外,还供给对解码器和ADC 的操控(经过I2C 总线) ,编码发生的MPEG流则经过芯片内部集成的PCI 接口输出。

解压是紧缩的逆进程,根本原理相似,限于篇幅,不再赘述。

3  Linux 下V W2010 设备驱动程序规划

3. 1 VW2010 与host 的通讯机制
VW2010供给了三种用于同host 通讯的机制: 直接拜访内部寄存器、同享存储区( sharedmemory) 和DMA。VW2010答应host 直接拜访其内部寄存器和外部存储单元,寄存器办法首要用于调试意图和下载固件程序; DMA 办法则担任VW2010 芯片和运用缓冲区之间的数据传输(如MPEG流数据) ;同享存储区机制是设备驱动程序和VW2010 间的首要通讯办法。

3. 1. 1 同享存储区(shared memory)
VW2010 选用同享存储区机制接纳host 的指令并回来指令履行成果。用于host 到VW2010 通讯的同享存储区(以下简称SM-PC2VW) 坐落en-coder SDRAM 中地址3F1800 处,共128 字节; 用于VW2010到host 通讯的同享存储区(以下简称SM-VW2PC) 坐落encoder SDRAM 中地址3F1880 处,共128 字节。

SM_PC2VW 的格局如表1 所示。表中,CMD 为指令码, 分别是: 读数据(CMD=1) 、发IOCTL 码(CMD=2) 、写数据(CMD=3) 、翻开指令(CMD = 4) 和封闭指令(CMD=5) ; Int Flag为中止标识, Int Flag 为1 ,则VW2010 履行完CMD 界说的使命后将发生一个中止,为0 则不发生;Device Handle 由翻开指令从firmware 中取得; 当CMD不一起,Parameters 有不同的意义,后边将具体评论。

SM_VW2PC 的格局如表2 所示。ACK/NACK的意义是:假如SM_PC2VW 中Int Flag 为1 ,且指令CMD 成功履行,则为ACK;假如SM-PC2VW 中Int Flag 为1 ,且履行指令CMD 失利,则为NACK,并将错误码保存在Return Code 字段。

在发送其它指令之前有必要先发送翻开指令,此刻,Device Handle 字段为0 ,Parameters 字段为翻开类型( TSMUX , PSMUX , TSDEMUX 或PSDE-MUX) 。假如该指令成功履行, 则会在SM_VW2PC 的Device Handle字段回来所分配的Device Handle ;在SM_VW2PC 的Parameters字段回来辅佐参数区的首地址(下面简称为X) 。辅佐参数区由firmware 在encoder SDRAM 中动态分配,用于传递跟指令相关的参数。在完毕运用同享内存区后,有必要发送封闭指令以开释辅佐参数区。

3. 1. 2 信号灯
因为同享存储区是临界资源,所以有必要供给一种机制确保VW2010 和host 互斥地运用它们。为此,VW2010 分别给SM_PC2VW 和SM_VW2PC 供给了两个硬件信号灯, 由寄存器REG_INT1 和REG_INT2 的最低位完结。VW2010 为信号灯界说了两种操作: 写操作:向REG_INT1 或REG_INT2 的最低位写入1 ,开释同享存储区。读操作:回来REG _INT1 或REG_INT2 的最低位的值,一起清该位为0 。

3. 1. 3 host 到VW2010 的中止
host 经过向VW2010发中止的办法告诉VW2010 从同享存储区读取主机指令。VW2010用寄存器REG_DHIU5完结host 到VW2010 的中止。REG_DHIU5 的最低四位用于保存中止计数,第五位为中止屏蔽位。host 向REG_DHIU5 每写一次, 中止计数加1 ; VW2010 每读REG_DHIU5 一次,中止计数减1 。只需中止计数不为0 ,则VW2010 内部的中止请求信号一向坚持有用。

3. 2 VW2010 数据读写和IOCTL 办法(method) 的完结
数据读写和IOCTL 的完结依赖于上述的同享存储区机制,鄙人面的评论中,咱们假定现已经过翻开指令(CMD = 4) 从firmware 获取了DeviceHandle 和辅佐参数区(首地址为X) 。

3. 2. 1 数据读写办法的完结
VW2010 选用DMA 办法完结与运用空间的数据交换。读/ 写指令用于树立从VW2010 到host 的DMA 通道并发动数据传输,它并不等候数据传输完结, 而是让DMA 传输在后台运转, 当DMA 传输完毕后,VW2010 会中止主机。

当运用程序要读写数据时,它首要会分配一些缓冲区用于保存读写数据。这些缓冲区能够用首地址和长度标识,如能够用(Address ,Len) 代表首地址为Address、长度为Len的缓冲区。在发送读/写数据指令时,SM_PC2VW 的Parameters 字段为X ,辅佐参数区的内容为运用空间数据缓冲区的信息,其格局即为上述的首地址和缓冲长度标识对(Address ,Len) 。VW2010 依据这些缓冲区信息树立到运用空间的DMA 通道。读数据办法的程序流程图如图2 所示,其间,左面是体系调用部分的流程图,右边则是中止服务部分的流程图。

图2  读数据办法流程图

3. 2. 2 IOCTL 办法的完结
VW2010 界说了许多IOCTL 码用于操控VW2010 芯片,各个IOCTL 码的参数各不相同.需求留意的是此处的IOCTL 码不同于Driver API中的IOCTL 码。该指令与读写数据指令的首要差异在于其指令辅佐参数存储区的格局不同,而操控流程相似,限于篇幅,不再赘述。

4  试验与测验

为了测验紧缩/ 解压卡和设备驱动程序的功用,作者在Linux Redhat7. 3下编写了测验程序。测验中,分别让VW2010 芯片作业在以下几种形式:手动录像形式、守时录像形式和动态侦测录像形式。成果都能安稳作业。

5  总结

本文具体介绍了依据VW2010 芯片的MPEG-4紧缩/ 解压卡的规划办法, 包含硬件规划和Linux 下的设备驱动程序的规划,并在实践中进行了全面的测验。VW2010功用强大,编解码高效且外围电路简略,具有重要的实践运用价值。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/fabu/200050.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部