嵌入式MPEG—4解码系统的设计与实现
图3
MIPS通过内部的FlashC和SDRAMC实现对外围Flash和SDRAM的控制,其中SDRAM的数据地址线要与外部总线控制接口(EBUSI)连接,Flash的数据地址线连接到对应的FlashC的数据地址端口。MIPS通过PCI总线控制器(PCIC)控制其他PCI接口设备,其控制原理图如图2所示。
2.2 MPEG-4解码系统设计
解码系统实现MPEG-4硬解码,将PCI总线传来的视频码流转换成电视信号输出。此部分关键是解码芯片选择及相关电路的设计。解码芯片采用Vweb公司的VW2010 A/V/S编解码芯片,它可以实现MPEG—1、MPEG-2、MPEG-4和H.263的视频编解码,可以编恒速码流或变速码流,码流速率为22.5kbps~15Mbps,编解码能同时进行,可实现Codec、转码功能,还可以进行MP3、AAC、AC-3和G7xx等多种格式的音频编解码。
VW2010有PCI、GPIO、I2S和CDI等多种数据接口,解码输入端口有两个:Host/PCI port和CDI(CompressData Input)port CDI port还分串行和八位并行两种输入方式。解码原理图如图3所示。(凹丫丫范文网fanwen.oyaya.net收集整理)
MPEG-4视频数据流送至VW2010后,由它内部的PCI接口(Host/PCI Interface)传送到芯片内部的解复用模块(Demux);解复用输出单节目视频流再经过内部解码总线和解码存储接口单元(DMIU)存储在解码缓冲区SDRAM中(SDRAM经DMIU连接到内部解码总线上);再由片内精简指令集计算单元(RISC)、数字信号处理器(DSP)和VLD、IQ/IDCT、MCU、dCPU等专用微处理单元通过内部总线解码;解码后视频、音频数据分别由视频输出单元(VOU)、音频输出单元(AOU)输出,视频单元输出8位数字Y、C-R、C-B三者比为4∶2∶2的ITU-R.BT.656格式的数据。音频输出单元通过I2S总线输出数字音频信号,两者经过各自的数模转换器(DAC)输出模拟的电视信号。
音频数模转换芯片选用Philips公司的UDAl342TS音频编解码芯片,将I2S总线输出的解码后的数字音频信号转换成左右声道音频模拟信号输出。视频数模转换芯片选用Philips公司的SAA7129AH数字视频编码器,解码前要通过VW2010的I2C控制函数配置其寄存器。SAA7129AH将VW2010解码输出单元输出的8位数字Y、C-B、C-R视频数据变成PAL(NTSC)制式的混合电视广播信号(CVBS)、适用S端子的Y、C信号或者R、G.、B三原色信号输出以适应不同场合需要。
3 系统软件设计
本系统软件设计主要分为嵌入式Linux操作系统内核移植、VW2010、PCI桥芯片及网口等系统驱动程序编写和解码应用程序的编写,其体系结构及与硬件的关系如图4所示。
嵌入式Linux操作系统是用户控制系统的硬件平台,系统驱动程序采用模块化形式,向上为用户层的解码应用程序提供API函数,向下通过系统硬件API函数控制系统硬件。VW2010驱动模块采用实时加载方式,其他如网口、I2C和PCI/IDE接口等驱动通用性强,直接编译入内核。解码应用程序则实现系统MPEG-4数据流的传输和解码。
Linux下的驱动开发技术已经发展成熟,嵌入式Linux内核的定制和移植也很普遍,本文不作详细的阐述,主要介绍解码应用程序。
以IDE硬盘文件解码为例,解码程序主要由两部分组成:主程序和解码线程程序。解码线程程序主要控制MPEG-4数据流的传输,先从数据源(IDE接口硬盘)获取MPEG-4数据流文件,再以块的方式将数据传送至W2010进行数据流的解码,然后在检测外部中断信号同时不断地把文件中的数据以块的方式写入VW2010,直到文件终止或者外部信号中断解码过程。解码过程相对独立。为便于其后台用使
《嵌入式MPEG—4解码系统的设计与实现(第2页)》