• 首页 |  
  • 查询 |  
  • 供应 |  
  • 求购 |  
  • 资讯 |  
  • 产品中心 |  
  • 技术应用 |  
  • 商务中心 |  
  • IC供货商 |  
  • 下载中心 |  
  • 求职招聘 |  
  • 论坛 |  
  • 博客
  • 您所在的位置: 首页 > 技术应用 > 消费类电子 > 其他 > 正文
    文章搜索:
    基于SOPC的MPEG-4视频播放器

    http://www.ic36.com 2007年4月26日9:27 来源:单片机及嵌入式系统应用

        摘要 介绍Altera SOPC平台上MPEG-4视频播放器的实现。以NiosII用户自定义指令方式实现IQ、IDCT、MC等计算密集型功能模块,从而在XviD Codec基础上实现Simple Profile视觉框架下,L1级、QCIF、25fps的MPEG-4视频实时解码。
    关键词 MPEG-4 视频播放器 SOPC NiosII

    引 言
       
    多媒体技术实用化的关键技术之一,就是解决视频音频数字化以后数据量大,与数字存储媒体

     
    清华微电子推出高频管分立器件裸片,已做到9G截止频率

    通信网容量小的矛盾,其解决途径就是压缩。

        为了支持低比特率视频传输业务,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)等技术均是典型的计算密集型变换,对于本身处理能力有限,功耗受限的手持终端设备而言,视频解码的实时性是一个很大的挑战。

        本系统在Nios II和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显示的即为两者对应关系。

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

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

    2.1.4 YUV-RGB转换

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

    2.2 系统软件工作流程

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

    结 语

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


    (关键词):MPEG-4 视频播放器 SOPC NiosII

    IC型号速查
    [0]  [1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]  [A]  [B]  [C]  [D]  [E]  [F]  [G]  [H]
    [I]  [J]  [K]  [L]  [M]  [N]  [O]  [P]  [Q]  [R]  [S]  [T]  [U]  [V]  [W]  [X]  [Y]  [Z]
    相关链接
    基于ADSP-BF532嵌入式网络视频服务器研究2006-8-22 10:28:57
    基于VW2005的MPEG-4音视频压缩卡的设计2006-7-28 10:37:35
    基于VW2005的MPEG-4音视频压缩卡的设计2006-7-28 10:39:27
    自动语音记录系统(AVRS)的SOPC设计与实现2006-9-1 11:01:42
    基于VW2005的MPEG-4音视频压缩卡的设计2006-9-4 9:42:34
    基于SOPC的列车通信网卡的设计2006-8-30 10:56:50
    基于SOPC的列车通信网卡的设计2006-8-31 15:27:31
    基于VW2005的MPEG-4音视频压缩卡的设计2006-9-1 9:24:18
     我来评两句
    查看最新评论〗 

    昵称:  匿名
    请您注意:
    ·遵守中华人民共和国的各项有关法律法规
    ·承担一切因您的行为而导致的法律责任
    ·本网留言板管理人员有权删除其管辖留言内容
    ·您在本网的留言,本网有权在网站内转载或引用
    ·参与本留言即表明您已经阅读并接受上述条款

    芯片之家  电子之家  电子元器件之家  半导体之家  微电子之家 
    ·免费发布紧急IC求购 ·到哪里找工厂求购 ·全球最好十个IC网站 ·我为什么选择IC36
    ·IC是怎样炼成的 ·想知道所有的IC封装吗 ·如何鉴别旧货刷新货 ·芯片的前缀代表什么
    ·IC行业的网站体验 ·元器件常见问题解答 ·这里居然可以实时洽谈 ·有问必有答
    ·IC行业之25颗钻石 ·IC代理商查询 ·十家最牛的公司 ·中国IC公司200强
    元器件之家  晶圆之家  集成电路之家  电子元件之家  模块之家  电子管之家
    ·舍我其谁的高级会员 ·IC36是怎样收费的 ·网站广告是如何占领的 ·IC之家的增值服务
    ·我该到哪里去找工作 ·到哪里去招人呢 ·今日芯片需求排行 ·还有我们没有的型号吗
    ·中国IC行业的害群之马 ·中国最优秀的IC供应商 ·国外的IC骗子公司 ·信誉良好的IC供货商
    ·谁是IC之家的明星 ·做我们的代理吧 ·免费注册 机不可失 ·广告热线 010-51653935
    热 点 专 题
    热 点 论 坛
    关于我们 | 增值服务 | 免责条款 | 收费标准 | 付款方式 | 广告服务 | 网站地图 | 联系我们 | 友情链接 | 网站代理
    MSN:ic36@hotmail.com  QQ:IC之家 在线咨询  联系电话:(010)51653935 传真:(010)51653936 客户服务:service@ic36.com
    Copyright © 2003-2006 IC36.COM IC之家 本网站中文域名:IC之家 芯片之家
    京ICP证060068号