嵌入式MPEG-4解码系统的设计与实现

发布者:科技飞翔最新更新时间:2012-04-26 来源: 21ic 关键字:嵌入式  MPEG-4  解码系统 手机看文章 扫描二维码
随时随地手机看文章

介绍了一种嵌入式高图像质量的MPEC-4视频流解码系统。该系统以嵌入式Linux作为操作系统,采用硬解码方式,把IDE接口设备或网络端口输入的MPEC-4视频码流(ES、PS和TS)转换成PAL/NTSC制式的电视信号输出。重点讨论了系统控制和MPEG-4解码部分的设计。

随着通信和网络技术的飞速发展,多媒体及其视频流应用越来越广泛,同时用户也对视频传输速率和图像质量有更高的要求,MPEG-4标准适时地解决了多媒体压缩存储和传输的问题。但是目前多数播放器都是在PC机上运行,应用范围受到很大限制。研究和开发一种嵌入式的MPEG-4解码系统终端具有重要的现实意义和实用价值。

MPEG-4标准是由国际运动图像专家组于2000年10月公布的一种面向多媒体应用的视频压缩标准。它采用了基于对象的压缩编码技术,在编码前首先对视频序列进行分析,从原始图像中分割出各个视频对象,然后再分别对每个视频对象的形状信息、运动信息、纹理信息单独编码,并通过比MPEG-2更优的运动预测和运动补偿来去除连续帧之间的时间冗余。其核心是基于内容的尺度可变性(Content-based scalability),可以对图像中各个对象分配优先级,对比较重要的对象用高的空间和时间分辩率表示,对不甚重要的对象(如监控系统的背景)以较低的分辩率表示,甚至不显示。因此它具有自适应调配资源能力,可以实现高质量低速率的图像通信和视频传输。

MPEG-4以其高质量、低传输速率等优点已经被广泛应用到网络多媒体、视频会议和多媒体监控等图像传输系统中。目前国内外大部分成熟的MPEG- 4应用均为基于PC层面的客户端和服务器模式,应用在嵌入式系统上的并不多,且多数嵌入式MPEG-4解码系统大多使用商业的嵌入式操作系统,如 Windows CE、VxWorks等,成本高、灵活性差。如以嵌入式Linux作为操作系统不仅开发方便,且可以节约成本,并可以根据实际情况进行裁减,占用资源少、灵活性强,网络性能好,适用范围更广。

下面详细地介绍此嵌入式MPEG-4解码系统的设计原理、硬件和软件组成。

1 系统设计原理

系统设计包括硬件和软件。硬件主要分控制系统、MPEG-4解码系统、输入数据源三部分。数据源可以是IDE接口设备(如硬盘)或网络端口。控制系统对系统各部分进行监测和控制、完成数据流的传输等。如图1所示,它主要由主控芯片、Flash和SRAM组成。主控芯片通过PCI总线控制系统其他模块,是控制系统的核心;Flash里固化嵌入式Linux操作系统,存放应用软件和备份数据;SDRAM作为内存供系统运行使用。MPEG-4硬件解码系统采用硬解码方式,负责将输入的MPEG-4数据流解码成普通的电视信号,其核心是解码芯片。为解决数据流不稳定的问题,解码芯片通常使用SDRAM进行数据缓冲才可以保证正常解码过程,解码芯片的输出数字音频、视频数据还要经数模转换器(DAC)转换成模拟电视图像信号和声音信号。解码芯片通过I2C总线发送指令配置音、视频数模转换器。整个系统框图如图1所示。

软件主要包括嵌入式Linux移植、解码驱动和应用程序编写。嵌入式Linux移植到由主控芯片Flash控制器控制的Flash里,操作系统程序文件分成五个主要部分:bootloader、kernel、ramdisk、usr和boot_param,分别放在Flash内的五个模块中。根据不同模块的具体功能采用不同的文件方式:bootloader、kernel、ramdisk和boot param,开发好后不需要动态改变,且容量小,使用节省空间的ROMFS只读文件系统,usr模块内容较多并需要进行读写操作,要使用支持动态擦写保存的JFFS文件系统。

2 系统硬件设计

系统的硬件设计主要分三部分:数据源接口设计、控制系统设计和解码系统设计。数据流先要从数据源经数据源接口送至PCI总线,此系统数据源接口为PCI总线上的PCI/IDE桥芯片和网络控制芯片。这部分采用通用的电路,本文不做详细介绍。

2.1 控制系统设计

控制系统调配系统资源、控制系统各个部分以及数据流的传输。主控芯片采用东芝公司的TMPR4925XB-200。它是一款64位MIPS,内部集成了NAND Flash控制器(FlashC)、32位PCI总线控制器(PCIC)、4通道DMA控制器、4通道SDRAM控制器(SDRAMC)、外部总线控制器 (EBUSC)、外部总线接口(E-BUSI)以及2个通用串口等,并通过内部总线对它们分别进行控制。其工作主频200MHz,处理速度快,功能强,性价比高,能很好满足嵌入式Linux系统的需求。

MIPS通过内部的FlashC和SDRAMC实现对外围Flash和SDRAM的控制,其中SDRAM的数据地址线要与外部总线控制接口 (EBUSI)连接,Flash的数据地址线连接到对应的FlashC的数据地址端口。MIPS通过PCI总线控制器(PCIC)控制其他PCI接口设备,其控制原理图如图2所示。[page]

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所示。

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数据流的传输和解码。[page]

Linux下的驱动开发技术已经发展成熟,嵌入式Linux内核的定制和移植也很普遍,本文不作详细的阐述,主要介绍解码应用程序。

以IDE硬盘文件解码为例,解码程序主要由两部分组成:主程序和解码线程程序。解码线程程序主要控制MPEG-4数据流的传输,先从数据源(IDE 接口硬盘)获取MPEG-4数据流文件,再以块的方式将数据传送至W2010进行数据流的解码,然后在检测外部中断信号同时不断地把文件中的数据以块的方式写入VW2010,直到文件终止或者外部信号中断解码过程。解码过程相对独立。为便于其后台用使用线程的方式实现,线程的级别要设为最高[5]。主程序主要进行系统初始化工作,内容包括读取解码参数,配置SAA7129的寄存器,启动并检查MIPS,开启VW2010并加载配置文件等。

如果数据源是从以太网端口输入,修改相应的配置选项,把对硬盘文件的操作换成对IP数据包的操作,把数据包解成MPEG-4数据流文件,再写入VW2010。

VW2010提供了十分齐全的API函数供使用,包括I2C配置、输入输出控制、解复用和解码控制等,在VW2010的驱动模块加载后可以在C++语言里直接调用,极大方便了软件程序的编写。主程序流程图如图5所示。

本文介绍了一种嵌入式MPEG-4视频流解码系统,该系统采用硬解码方式实现IDE接口设备或网络端口输入的MPEG-4码流(ES、PS和TS) 转换成PAL/NTSC制式的电视信号输出。系统采用64位MIPS芯片TM-PR4925XB-200作为主控制器,以VW2010作为MPEG-4解码芯片;采用嵌入式Linux作为操作系统和模块化的VW2010驱动程序,解码应用程序简单实用,可扩展性强。实验证明此系统可稳定地对比特率 1Mbps~16Mbps的MPEG-4码流进行解码,在码流比特率为2Mbps时,图像的质量仍与普通DVD效果相似。可广泛用于IP电视、卫星电视、基于MPEG-4标准的数字电视广播系统中,应用前景十分广阔。

关键字:嵌入式  MPEG-4  解码系统 引用地址:嵌入式MPEG-4解码系统的设计与实现

上一篇:嵌入式系统实时性的问题
下一篇:片上系统中断机制的可靠性设计

推荐阅读最新更新时间:2024-03-16 12:58

基于嵌入式PsoC的MCU选色控制器设计
摘要:阐述Cypress公司的可配置片上系统(PSoC)的功能及其实现结构;结合选色控制器开发实例,详细阐述使用PsoC开发的方法和流程。其设计方法也可用于其它控制系统或工业自动化等各种应用。 关键词:PsoC(可配置片上系统) 选色控制器MCU 引言 最近几年,随着电子技术及半导体工艺的迅猛发展,片上系统(SoC),特别是可配置片上系统PsoC(Programmable System on Chip),已逐渐成为微控制器的主流产品。因此,要求设计工程师必须迅速地掌握SoC的开发特点和要求,尽快融入SoC的开发大潮中去。但是,SoC系统设计带来了与传统系统设计全然不同的挑战,其中包括从处理器和存储器的选择到产品环境的考虑。
[应用]
嵌入式实时操作系统ARTs-OS的中断管理
ARTs-OS是一个基于微内核的嵌入式实时操作系统。ARTs-OS中的中断管理应该提供的基本功能包括:管理中断处理设备、中断服务例程的管理、中断嵌套的管理、中断栈的维护、线程/进程切换时的现场保护和恢复等。但是ARTs-OS作为嵌入式实时操作系统,上述基本功能不能满足所有的要求,它还必须拥有更多体现嵌入和实时特性的功能。ARTs-OS在实现中必须采取一些措施将中断分配时间(IDT)和中断服务时间(IST)减到最小,并使用户能够很容易地在ARTs-OS上开发、调试驱动程序。 1 ARTs-OS的I/O特点 ARTs-OS的I/O体系结构的主要特点有:(1)基于微内核构架。(2)支持动态加载。(3)核内/核外驱动。(4)进程/
[嵌入式]
嵌入式操作系统简析
根据IEEE(电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。从中可看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。嵌入式系统是与应用紧密结合的,具有很强专用性,必须结合实际系统需求进行合理的裁减利用。国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。  一.嵌入式操作系统基本要点包括以
[模拟电子]
<font color='red'>嵌入式</font>操作<font color='red'>系统</font>简析
嵌入式MCU硬件设计概述
1引言 目前,集成电路的嵌入式技术发展越来越快,各色嵌入式产品也越来越受欢迎,尤其是以大屏幕多功能的手机、平板电脑等为典型代表,做为其控制核心的高性能、低功耗的微控制器(MCU)起到了决定性作用。因此以CPU为核心MCU的设计也成为了诸多高等院校、各大公司进行市场竞争的一个主流发展方向。 2 MCU选型技术 微控制器(MCU)的应用领域非常广泛,如消费类电子市场中的手机、照相机、摄像机、MP3、MP4、平板电脑、笔记本电脑、PC机、各种遥控电动玩具等,还有汽车电子的电子钥匙、控制系统、导航、倒车影像、倒车雷达等,还有各种安全防卫系统、医疗器械、工业控制、武器装备、航空航天等各个领域。因此在设计MCU之前需要进行明确的市场定位,从而
[电源管理]
<font color='red'>嵌入式</font>MCU硬件设计概述
嵌入式系统中的线性Flash文件系统设计
作者: WuYJ@263.net.cn 摘要:设计一种能够在典型嵌入式环境下应用的线性文件系统,为嵌入式系统Flash空间的管理提供一种非常有效的手段。它包装和通用文件系统类似的API接口,设计的实现独立于实时操作系统(RTOS)和具体的Flash典型,可方便移植到不同的嵌入式应用中。 在嵌入式系统中,为了便于对闪存(Flash)空间进行管理,会采用文件的形式来访问Flash。目前,可以购买到的Flash文件系统一般都是兼容DOS的文件系统(Flash File System,FFS),这对需要一个具有复杂的目录层次,并且DDS文件兼容的系统来说是必要的;但是对大多数的嵌入式应用来说,这种文件系统太过奢侈。笔者在参与嵌入式系
[应用]
基于嵌入式微处理器S3C44B0X音频文件播放
S3C44B0X是三星公司针对嵌入式系统推出高性价比微处理器,它是基于ARM7TDMI内核的16/32位RISC处理器,工作主频为66MHz.为了降低成本和节约产品开发周期,S3C44BO0X提供了丰富的内置部件,包括:内部SRAM,LCD控制器,8通道10位ADC,IIC总线接口,IIS总线接口等.其中S3C44B0X IIS接口能用来连接一个外部8/16位立体声声音解码器.CS4334是CIRRUS公司推出的系列音频解码芯片.文献 中对它们的工作原理和应用有详细的论述.   本文详细研究了S3C44B0X IIS总线接口和CS4334的连接,搭建了以二者为基础的嵌入式工作平台.在该平台上现WAVE音频文件的播放,并给
[手机便携]
基于<font color='red'>嵌入式</font>微处理器S3C44B0X音频文件播放
研华嵌入式边缘运算产业伙伴峰会圆满举办
202 3年10月19日,研华“嵌入式边缘运算产业伙伴峰会”于中国· 深圳举办。 作为2023研华系列产业伙伴峰会的边缘运算专场,本次峰会以“嵌入式边缘运算新趋势 引爆新兴产业应用商机”为主题,与微软、AMD、Arm、QT、开立医疗、瑞芯微电子、思谋科技等多位伙伴共同围绕嵌入式边缘运算与AI技术如何助力产业升级拓展新兴产业商机进行分享与讨论。 坚守“智能地球推手”企业使命,贯彻“ Sector Driven” 成长模型方针 会议开场,研华科技董事长刘克振先生,以“AIoT + Edge Computing为研华下阶段产业核心方针”为主题,回顾研华成立以来,立足数千工业产品,从第一阶段的自动化及边缘运算
[工业控制]
研华<font color='red'>嵌入式</font>边缘运算产业伙伴峰会圆满举办
嵌入式系统面向低功耗的协同设计
摘要:在系统设计中,低功耗系统或低功耗协同设计系统并没作为一个整体在当前的研究中得到充分的重视。本文阐述在系统级设计中功耗的重要性,综述硬件低功耗、软件低功耗和通信低功耗的设计方法,并给出实现低功耗设计的一种可行方法。 关键词:协同设计 硬件低功耗 软件低功耗 功耗估计 1 概述 对于当今的各种电子设备尤其是嵌入式系统来说,功耗是一个非常重要的问题。系统部件产生的热量和功耗成比例,为解决散热问题而采取的冷却措施进一步增加了整个系统的功耗。为了得到最好的结果,在设计初级阶段就要尽可能地考虑低功耗问题。 由于现在大部分数字系统都利用CMOS电路,因此,本文提出的思路和探讨领域,主要指CMOS电路。在CMOS电路里,功耗由下式决
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved