基于SOPC的MPEG-4视频播放器

发布者:mancozc最新更新时间:2007-01-18 来源: 单片机及嵌入式系统应用关键字:终端  余弦  解码  LCD 手机看文章 扫描二维码
随时随地手机看文章

引言

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

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

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

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


图1 视频解码器结构框图

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

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

1.3 YUV-RGB变换器

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

  R=1.164(Y-16)+1.569(V-128)
  G=1.164(Y-16)+0.813(V-128)+0.391(U-128)
  B=1.164(Y-16)+2.018(U-128)

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


图2 系统硬件结构图

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

2.1.1 反量化

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

表1 intra_dc与编码精度对应表

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

  AC系数的反量化要用到两个加权矩阵,分别用于内部子块和非内部子块。用户也可以使用自定义的量化矩阵。

  如果用QDCT表示输入已量化的AC系数,用DCT表示反量化后的AC系数,那么AC系数的IQ变换公式如下:

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

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

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


图3 反量化的硬件实现结构

2.1.2 反离散余弦变换

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

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

上式可视为一个2个8元向量的点积:

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

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


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


图4 反离散余弦变换的硬件实现结构

2.1.3 运动补偿

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


图5 运动补偿的硬件实现结构

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

2.1.4 YUV-RGB转换

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


图6 YUV-RGB转换实现结构

2.2 系统软件工作流程

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


图7 软件流程图

结语

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

参考文献

1 彭澄廉.挑战SOC-基于Nios的SOPC设计与实践.北京:清华大学出版社,2004
2 邵丹,韩家伟.YUV-RGB之间的转换.长春大学学报,2004,14(4)
3 ChenC H Smith W H, S C F ralick. A Fast Computational Algorithm for the Discrete Cosine Transfrom. IEEE Trans.Circuit and System,1991,25(9):1004~1009
4 Yil Suk Yang, et al. A Serial Input/Output Circuit with 8 bit and 16 bit Selection Modes. ETRI J, 2002, 24(16):462~464
5 Park S M, et al. A SingleChip Video/Audio Codec for Low Bit Rate Application. ETRI J, 2000, 22(1):20~29
6 http://www.altera.com/

关键字:终端  余弦  解码  LCD 引用地址:基于SOPC的MPEG-4视频播放器

上一篇:基于LPC2214和uC/OS-II的音频处理方案
下一篇:长虹C2919PS彩电亮度信号丢失故障的快速检修

推荐阅读最新更新时间:2024-05-03 10:58

基于EP7312的新一代公用信息终端的设计
1 信息终端的总体设计   信息终端属于公用电话领域,在功耗,接入方式,操作方便性等方面都有特殊要求,因此采用标准的嵌入式系统设计。   信息终端的处理器选用SoC嵌入式处理器 ARM7系列中的EP7312。处理器采用ARM7TDMI的处理器内核,有8k字节高速缓冲存储器(CACHE),支持MMU,带64路TLB(translation look-aside buffer);写缓冲器。超低功耗(典型值)74MHz工作状态时为90mW, 18MHz工作状态时为30mW,空闲状态时为10mW(CPU时钟停止,其余工作),挂起状态时   操作系统采用NUCLEUS嵌入式操作系统。 NUCLEUS嵌入式操作系统提供源代码,用户能够深
[嵌入式]
ZDS2024 plus示波器MDIO解码/触发实战
MDIO是一个以太网控制器的传输协议,广泛用于以太网控制器和PHY之间的数据通讯,接下来,让我们详细了解一下MDIO协议。 MDIO(Management Data Input/Output),管理数据输入输出总线。它是由IEEE802.3定义的以太网行业标准,它承载着MAC层和物理层通信的重任。MDIO接口包括两跟信号线:MDC和MDIO,,MAC层芯片(或其他控制芯片)可以通过它们访问物理层芯片的寄存器,并通过这些寄存器来对物理芯片进行控制和管理。 MDC:管理接口的时钟,是一个非周期信号,信号的最小周期为400ns,最小正电平时间和负电平时间为160ns,最大正负电平时间无限制。 MDIO:是双向的数据线,用来传
[测试测量]
ZDS2024 plus示波器MDIO<font color='red'>解码</font>/触发实战
使用伊顿新一代MTL GECMA危险区域远程终端
动力管理公司伊顿(Eaton)已推出新的MTL GECMA RT远程操作终端,使得工厂管理人员能够降低运营成本、优化生产效率、并提高工厂安全性。新的MTL GECMA RT具有独特的模块化设计,是用尖端技术来提供无与伦比安全性能的下一代远程终端,适用于全球范围内化学、制药、炼油以及石油和天然气行业的危险EX区域应用。 MTL GECMA RT包含五个电子模块;显示单元、电源、通讯模块、键盘和鼠标。终端的模块化意味着现有设施的升级可以简单、快速地完成,可以节省时间,并把昂贵的维护和停机时间降至最低。传统上,整个设备单元必须在现场进行拆卸,但现在采用MTL GECMA RT,就可以在现场简单更换个别零部件,提高工厂设备利用率。 至
[工业控制]
对话英伟达首席科学家:解码AI芯片战局
英伟达又涨了。 从2017年1月底以来,英伟达的股价又从108美元一路飙升至240多美元,翻了一倍有多。而英伟达股价一飞冲天的背后,正是人工智能技术不断兴盛崛起、发展壮大的缩影。 英伟达成功的原因有很多,及时布局CUDA、积极推进人工智能、不断完善打造软硬件生态等,这些一个个具体业务的背后,核心是对世界科技进展的战略性前瞻与决策;只有及时预判到了下一个技术热点,才能在所有人反应过来之前积极抢占先机,乃至最终引领行业。 这一切的背后,英伟达CEO黄仁勋自然是一个重要决策者;而除了他之外,另一个角色也扮演着至关重要的位置——英伟达首席科学家兼NVIDIA Research高级副总裁,Bill Dally博士。 在EmT
[半导体设计/制造]
FlexEnable灵活的低成本OLCD技术推动多种技术大放异彩
FlexEnable全力以赴,通过最低成本的最具扩展性柔性显示技术,革新世界大众市场应用显示器行业,其中的成功秘诀就是使用有机材料。FlexEnable已经通过有机材料展示了毋须依赖传统玻璃背板并且富有竞争力的有机LCD(OLCD)显示器制造方法,并且提出了OLCD技术可为超高对比度电视显示器带来的诸多关键优势。 FlexEnable战略总监Paul Cain表示:“电视显示器市场是一个竞争激烈的领域,引领业界开发多种创新技术以提高图像质量,这些新技术旨在提供与OLED相当的高对比度性能,而且成本更低,以满足大众消费市场的需求。我们的OLCD技术采用相比其它柔性显示器更简单的制造方法来实现超高对比度显示器,并且与玻璃产品相比更
[电源管理]
FlexEnable灵活的低成本O<font color='red'>LCD</font>技术推动多种技术大放异彩
以汇编语言写的PIC18Fxxxx的LCD驱动程序
;************************************************ ;* 18F_LCD.asm * ;* Microchip Taiwan * ;* Date : Sept. 24 2002 * ;* Version : v1.00 * ;************************************************ ;* Contains subroutines to control an external * ;* lcd panel in 4-bit mode. These routines * ;* were designed s
[单片机]
1车用LCD面板背光应用电源浪涌设计考量
车用的DC电源由电源线提供,这条电源线连接了所有基于线路供电的电子模组、电池,以及由汽车引擎驱动的发电机。对于典型的12V或24V系统来说,我们通常看到的电源电压变化为±30%。因此,汽车应用中的所有电子模组都应该特别注意输入电压的变化。但是在电源浪涌期间,电源电压会大幅上升。在国际标準ISO7637-2中有pulse 2a和pulse 5a规範,并说明产生浪涌的一些塬因,pulse 2a所定义的浪涌是由线路和线束供电的电子模组中突然中断的电感电流所引起。pulse 5a所定义的浪涌是由以下情况所引起:当一个负载突降瞬态放电的电池被断开而且发电机同时又在利用残存在其电路的其他负载产生的充电电流时,激增发生并产生浪涌。   描述上
[模拟电子]
1车用<font color='red'>LCD</font>面板背光应用电源浪涌设计考量
凌鸥收购失败、终端需求不明 晶丰明源2022年业绩承压
4月7日,上海晶丰明源半导体股份有限公司(证券简称:晶丰明源,证券代码:688368)召开2021年年度股东大会,与会股东就《关于 2021年年度报告 及摘要的议案》等15项议案进行了审议。爱集微作为其机构股东出席参加了此次会议,并就上述议案投出赞同票。 值得一提的是,本次股东大会并未设置提问环节。晶丰明源表示,会前已通过邮件告知本次股东大会仅围绕议案进行提问,但对于爱集微提出的第四季度净利大幅下滑一事,公司表示会上不予以回答,会后将安排交流,但截至发稿,爱集微并未收到来自晶丰明源的相关安排。 晶丰明源会前与爱集微沟通邮件 涨价支撑去年净利大涨 但Q4已显终端需求颓势 今年以来,地缘政治以及疫情风险陡增,终端消费需求持续低迷,
[手机便携]
凌鸥收购失败、<font color='red'>终端</font>需求不明 晶丰明源2022年业绩承压
小广播
最新手机便携文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved