基于FPGA NiosII的MPEG-4视频播放器设计

发布者:JoyfulSpirit最新更新时间:2012-05-17 来源: eefocus关键字:FPGA嵌入式  NiosII软核  SOPC平台 手机看文章 扫描二维码
随时随地手机看文章

引 言

多媒体技术实用化的关键技术之一,就是解决视频、音频数字化以后数据量大,与数字存储媒体、通信网容量小的矛盾,其解决途径就是压缩。

为了支持低比特率视频传输业务,MPEG(Moving Picture Expert5 Group)推出了MPEG-4标准。于1999年正式成为国际标准的MPEG-4是一个适合于低传输率的视频、音频解决方案,更注重于多媒体系统的交互性和灵活性。MPEG-4视频压缩标准提供了一种高度灵活、基于“内容”的编码方法,解码端可以“按需解码”,还可以添加对象和信息。这种灵活性使得MPEG-4具有高效的编码效率、基于内容的可扩展性以及在易受干扰环境下的鲁棒性。

MFEG-4的这些特性使得它十分适合于存储容量有限的手持终端设备。但是MPEG-4视频解码中涉及的反量化(Inverse Quantlzation,IQ)、反离散余弦变换(InverseDiscrete Cosine Transform,IDCT),运动补偿(Motion Composition,MC)等技术均是典型的计算密集型变换,对于本身处理能力有限,功耗受限的手持终端设备而言,视频解码的实时性是一个很大的挑战。

本系统在NiosII 和FPGA构成的SOPC平台上,使用NiosII的用户自定义指令以硬件逻辑方式实现MPEG-4解码中的IQ、IDCT、MC等计算复杂、高度耗时的功能模块,极大地提高解码速度。从而在以GPL协议发布的XviD Codec基础上,实现Simple Profile视觉框架下,L1级、QCIF(177×144分辨率)、25fps的MPEG-4实时解码,并通过DMA方式在LCD上加以显示。

1 系统功能描述

本系统从功能上可以分为视频文件存取、视频解码器、YUV-RGB变换器和LCD控制模块4个部分。

1.1 视频文件存取

要进行视频文件的播放,首先需要对视频文件进行方便地存储和读取。系统播放的MP4文件由XviD Codec在PC上对4:2:0的YUV文件压缩得到。该MP4文件采用177×144分辨率的QCIF格式,25帧/s。在下载模式,可以通过JTAG接口将MP4文件写入Flash存储器中。在播放模式下,Nios II处理器将MP4文件从Flash存储器中读出,送入文件缓冲池中等待解码器对其进行读取并解码。

1.2 视频解码器

视频解码器是系统的核心。如图1所示,视频解码器由熵解码器、反量化、反离散余弦变换、运动补偿模块和视频帧缓存5个模块组成。

解码时,首先对输入码流进行熵解码,然后根据帧的头信息判断帧的类型。对于每个宏块,熵解码后首先经过IQ,再经过IDCT变换得到空问域的值。对于参考帧(R_ Frame),由于不需要进行运动补偿,变换后的结果直接输出,同时还要将它存储在视频帧缓存中.留给后面的预测帧(P-Frame)做运动补偿。对于预测帧,先通过熵解码得到运动向量,根据运动向量搜索到相应的参考帧后,再将IDCT变换后的预测差值与之相加,合成最后的预测帧图像。解码后的预测帧同样是一路输出,一路存放于视频帧缓存当中。

视频解码如果采用纯软件方式实现,运算量太大,难以满足实时性要求。利用NiosII的自定义指令,将IQ、IDCT和MC这3个主要的计算密集型解码单元用硬件逻辑方式实现,以硬件逻辑的复杂性换取解码的实时性。

1.3 YUV-RGB变换器

解码器解码得到的YUV格式图像不适合直接用于LCD显示。要在LCD上显示解码得到的图象必须将YUV格式的图像转换为RGB格式,两者的转换关系如下:

YUV到RGB格式的转换是一个很占用CPU资源的过程。本系统以查表的方式,采用硬件逻辑实现该转换。

1.4 LCD控制模块

标准VGA LCD显示模块(640×480,@60 Hz)是一种逐行扫描设备。这种扫描是顺序的,下一个扫描点能够预知,从而可以将需要送出的像素信息排成一行,看作一个数据流(Streaming)。借助于NiosII的Avalon流模式外设的设计方法,可以实现一个Avalon流模式的LCD控制器。利用DMA控制器在流模式的LCD控制器和系统SDRAM之间建立一条DMA传送通道,由硬件完成像素信息的读取和送出。NiosII只需要操作SDRAM中的相应区域就可完成显示图像的更新。

2 系统设计结构

2.1 系统硬件结构

系统硬件结构如图2所示。

为了达到25 fps的实时解码速度,IDCT、IQ、MC和YUV-RGB转换这4部分计算密集型的功能单元全部以用户自定义指令的方式实现。

2.1.1 反量化

系数的二维数组QF[v][u]被反量化,产生重构的DCT系数。该过程的实质是以量化步长为倍数的乘法运算。

内部编码块DC系数的反量化过程不同于其他的AC系数。DC反量化系数由一个常数因子intra-dc与QF[0][0]相乘而得到。intra_dc与编码精度有关,表1显示的即为两者对应关系。
[page]

AC系数的反量化要用到两个加权矩阵,分别用于内部子块和非内部子块。用户也可以使用自定义的量化矩阵。如果用QDCT表示输入已量化的AC系数,用DCT表示反量化后的AC系数,那么AC系数的IQ变换公式如下:

式中,quantiser_scale为0~112之间的两组数值,分别对应不同的比特流控制状态。但是在本系统采用的XviDCodec版本中,比特流控制功能并没有得到实现,所以这里quantiser_scale的取值固定。

反量化得到的结果通过饱和化,使其限制在[-2048,+2047]之间。

IQ在FPGA上按照图3的框图进行硬件实现。



2.1.2 反离散余弦变换

IDCT是DCT的逆过程,用于还原DCT系数矩阵。

IDCT过程可由下面的公式描述:

将8元的输入向量[X0,X1,X2,X3,X4,X5,X6,X7]分成奇元素[X1,X3,X5,X7]和偶元素[Xo,X2,X4,X6],8×8矩阵则用2个4×4矩阵来代替,奇元素和偶元素分别与这2个矩阵v和u相乘,生成2个4×4向量p和q,通过加减向量p和q,可得到输出向量x。

算法可以表示成下面的公式:

基于8×8矩阵的IDCT算法,在FPGA上按照图4所示的结构加以硬件实现。

2.1.3 运动补偿

运动补偿是一种大量、单调的运算。为了能实现运动补偿,采用了多级、多个运算单元并行流水运算的方式,如图5所示。

[page]

运动补偿模块的控制很复杂。实际设计时将它分成几个子模块:补偿控制、补偿地址产生、差分数据提供以及补偿运算。这几个子模块直接采用硬件逻辑设计,运行时无需NiosII处理器干预。其中补偿控制是完成整个运动补偿的控制,提供输入控制信号、输出控制信号、缓存控制信号、预测数据和差分数据等;补偿地址产生用于生成预测数据在帧缓存中的地址及补偿结果的写地址;差分数据负责接收IDCT的结果,通过缓存在适当时机提供补偿使用;补偿运算则完成最终预测数据的计算。

2.1.4 YUV-RGB转换

根据YUV到RGB色彩空间的转换关系,对每个乘积项都预先做出结果,存放在ROM当中。对每一个YUV分量的输入,由硬件逻辑产生存取地址,并进行加法运算,从而得到对应的结果。其实现结构如图6所示。

2.2 系统软件工作流程

本系统的软件工作流程如图7所示。

结 语

该系统采用基于Altera FPGA嵌入式NiosII软核的SOPC平台实现,具有较低的硬件成本,IP核的大量使用,良好的系统扩展性的特点。

关键字:FPGA嵌入式  NiosII软核  SOPC平台 引用地址:基于FPGA NiosII的MPEG-4视频播放器设计

上一篇:苹果新专利或使人脸实现鼠标部分功能
下一篇:基于DirectFB的嵌入式播放器设计

推荐阅读最新更新时间:2024-05-02 22:03

FPGA与多核CPU使嵌入式设计更灵活
随着嵌入式器件在过去数十年来的爆炸性成长,使得硬件组件及软件工具都有显著的改善。虽然有着这种成长与创新,但传统嵌入式系统的设计方法却少有进步,并逐渐变成一种障碍。有鉴于新标准与协议的快速发展,以及对产品上市压力的日益增加,嵌入式系统设计也即将发生颠覆性的典范改变。   随着硬件技术及软件工具的进步在加速成长,由整合所带来的挑战也开始浮现。如果无法妥善处理这些挑战,将会使得终端产品变得更加昂贵,并且有碍于让更多创新设计的实验、成长及上市。    标准的嵌入式架构   在一般的计算市场,标准化已带来更加稳健而耐用的操作系统、更精炼的终端应用,及基础硬件组件的进步。我们从其中所学到的经验是,从避免花在客制化硬件架构及相关软件组件的
[模拟电子]
<font color='red'>FPGA</font>与多核CPU使<font color='red'>嵌入式</font>设计更灵活
莱迪思ECP5™ FPGA助力实现低功耗网络边缘嵌入式视觉系统
莱迪思将在CES Asia 2017展会上展示市场领先的智能交通摄像头车牌识别应用以及ADAS 360度环绕视野应用 ECP5 FPGA可用于实现智能交通监控系统的车牌检测、图像处理和图像增强功能 ADAS 360度环绕视野系统使用ECP5 FPGA实现4通道图像拼接、鱼眼校正和3D无缝合并功能 上述两种系统都通过使用基于ECP5 FPGA的加速应用改善了功耗、系统性能并降低成本 莱迪思半导体公司(NASDAQ: LSCC),客制化智能互连解决方案市场的领先供应商,今日宣布旗下ECP5 FPGA解决方案已被应用于智能监控和汽车领域中的网络边缘嵌入式视觉应用。莱迪思不断加强对工业和汽车市场的投入,低功耗、小尺寸的
[嵌入式]
莱迪思ECP5™ <font color='red'>FPGA</font>助力实现低功耗网络边缘<font color='red'>嵌入式</font>视觉系统
嵌入式闪存成就MAX 10 FPGA的系统价值
30年的低成本创新 中国有句俗话叫“30年河东,30年河西”,Altera在1984年发布了第一款非易失PLD EP300器件,30年间,可编程器件在性能上不断发展甚至挑战摩尔定律,工艺技术也有了长足的进步,电子设计领域出现了很多替代品,而终端应用领域更是发生了翻天覆地的变化,这一定是PLD的发明者不曾想到的。最近一年,终端需求也使得芯片领域加速创新。就Altera来说,在过去6个月,其相继发布了3款足够“有料”的FPGA及SoC系列:Arria 10、Stratix 10以及MAX 10,它们都是Altera在创新大潮中重磅推出的“第10代”(Generation 10)产品,也为Altera第4个十年打下了坚实的基础。
[嵌入式]
<font color='red'>嵌入式</font>闪存成就MAX 10 <font color='red'>FPGA</font>的系统价值
Altera最新Nios II嵌入式评估套件展示独特FPGA能力
设计实例突出了硬件加速和远程硬件更新功能 2007年12月4号,北京 ——Altera今天宣布开始提供新的Cyclone III版Nios II嵌入式评估套件。Nios II评估套件是功能丰富的低成本平台,为嵌入式设计人员提供快捷简单的实践方式来评估Nios II处理器、SOPC Builder系统设计软件及其定制应用软件。 在独特的树脂玻璃箱中,Nios II 评估套件含有一块Cyclone III入门电路板和触摸屏LCD,通过屏幕触摸,支持开发人员启动网络和音频图像处理等实例应用软件。对于刚开始FPGA处理器设计的软件开发人员,它还是理想的开发平台。 套件包括为嵌入式软件开发提供的Nios II嵌入式设计包(EDS),7个
[新品]
爱特Fusion嵌入式系统开发展示FPGA设计
     爱特公司 (Actel Corporation) 宣布推出Fusion嵌入式系统开发套件,进一步展示混合信号FPGA所提供的集成优势,让系统设计人员以高成本效益的方式快速构建完整的系统级芯片设计原型。这款套件备有Actel Fusion® 混合信号FPGA,是支持各种处理器包括免授权费用的ARM® CortexTM-M1和 Core805处理器型款的FPGA产品。       爱特公司市场拓展和业务发展副总裁 Rich Kapusta 称:“使用Fusion和全新开发套件,嵌入式系统设计人员现在能够轻易将定制逻辑和可编程模拟功能集成进其嵌入式处理器设计中。业界尚无其它产品能如Fusion FPGA器件和这款易于使用的
[嵌入式]
基于FPGA的片上系统和嵌入式系统的远程监控系统
本系统立足于利用Intemet实现核环境信息的远程采集。在实现上,采用了基于SOPC技术的嵌入式解决方案,通过在FPGA中嵌入NioslI软核处理器和所需外设的IP Core(硅知识产权核),然后再配备相应的网络接口,实现利用互联网进行信息的传输。   另外,通过开发用于控制信息采集子系统的IP核,利用FPGA固有的硬件并行特性,本系统做到了对多个信息源进行真正意义上的并行监控,即在进行α射线探测的同时也可以进行γ射线和温湿度等信息的获取。    1 系统硬件设计及实现   在本系统的设计中,硬件上为了做到通用性,在结构上划分为两部分,即用于完成现场监控和数据远程传输的通用网络平台和用于完成温湿度、液位、α及γ辐射总量测量
[嵌入式]
基于<font color='red'>FPGA</font>的片上系统和<font color='red'>嵌入式</font>系统的远程监控系统
基于OR1200的嵌入式SoPC硬件平台设计
摘要:针对现有商业SoPC系统的固有问题,提出了基于开源IP核与软件资源的SoPC系统硬件平台构建方案,并使用Cyclone FPGA进行了实际验证,证明了该硬件平台的实用性。探讨了该平台在普及SoPC技术和研究更高性能系统方面的积极作用。 关键词:OpenRISC1200可编程片上系统IP核 FPGA SoC(System on Chip)片上系统是现代电子系统设计的一个发展方向,它将原先分立的多个芯片集成在一块芯片上,通过提高芯片的集成度、减少系统芯片的数量和相互之间的PCB连线、减少PCB面积来降低整个系统的成本,同时使系统的性能、功能和可靠性都有很大的提高。随着新型的高性能、低成本FPGA的出现和综合技术的提高,基于
[嵌入式]
赛灵思65nm高端FPGA量产给嵌入式设计产业带来了什么?
近日,赛灵思举办了一系列活动来庆祝其65nm Virtex-5 FPGA实现量产。自2006年5月15日推出65nm Virtex-5 FPGA平台以来,该公司已向市场发售了基于三款平台(LX、LXT和SXT)的13种器件。其中两款LX50和LX50T目前可量产供货,其它型号很快就可进入量产。 “在从推出样片到量产的一年里,赛灵思在高低温测试、ESD保护以及开发工具、参考设计等方面做了大量工作。”赛灵思亚太区Virtex解决方案高级市场经理邹志雄表示。不过,虽然他强调“量产的FPGA意味着客户现在可以放心地大量采用65nm FPGA进行整机产品制造。”但业内分析人士认为:65nm FPGA量产给嵌入式设计产业带来的不仅仅是几
[焦点新闻]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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