分享
分享赚钱 收藏 举报 版权申诉 / 6

类型基于OMAP的MPEG4.doc

  • 上传人:scg750829
  • 文档编号:8926177
  • 上传时间:2019-07-17
  • 格式:DOC
  • 页数:6
  • 大小:136.50KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    基于OMAP的MPEG4.doc
    资源描述:

    1、基于 OMAP 的 MPEG-4 实时解码器的实现 随着移动通信和多媒体技术的发展,人们对通信的要求已不满足于传统的语音业务,而是追求更高品质的视频、音频等多媒体信息服务。在多媒体通信中,视频区别于音频和文字的显著特点是其大数据量以及高处理复杂度。现有的移动终端一般采用 DSP芯片作为核心,DSP 芯片在数据处理方面具有较多的优势,但其系统处理和控制能力比较弱。第三代移动通信(3G)终端需要提供更多更复杂的服务如实时视频交互等,原有的 DSP 芯片很难满足这些需求1。TI 公司提出了开放式多媒体应用平台 OMAP (Open Multimedia Applications Platform)体

    2、系结构,并为此设计了 OMAP 处理器。笔者利用本文提出的方法在使用 TI OMAPl510 的 PocketPC 上实现了 MPEG-4 简单级(simple profile)解码,基本满足了实时的要求,同时保持了较好的质量。1 开放式多媒体平台(OMAP)OMAP 采用一种独特的双核结构,把控制性能较强的 ARM 处理器与高性能低功耗的DSP 核结合,是一种开放式的、可编程的基于 DSP 的体系结构。主要目标是满足2 5G 和 3G 网络上移动电话、PDA 上的语音与多媒体需要。1 1 OMAP 的硬件平台 OMAP 硬件平台主要由 DSP 核、ARM 核以及业务控制器(Traffic C

    3、ontroller)组成。这三部分可以独立地进行时钟管理,有效地控制功耗。OMAP 硬件平台采用双核技术提高操作系统的效率和优化多媒体代码的执行。实时性任务如实时视频通信等由 DSP完成,非实时性任务和系统控制工作如界面交互、操作系统等由 ARM 完成2。例如,使用者在进行视频通信时可以同时使用操作系统上的应用软件如 Word、Excel 等,这样分别利用了 DSP 低功耗而又较强数据处理能力和 ARM 的较强控制能力的优势。与传统只使用 ARM 或者只使用 DSP 芯片的移动终端相比,OMAP 成功地解决了性能与功耗的最佳组合问题。OMAP 硬件平台不断升级,以满足日益增长的应用需求。本文使

    4、用 OMAPl510 芯片,它的两个关键部分是 TI 增强型 ARM925 (TI925T) 和 TMS320C55x DSP。TMS320C55x DSP 的工作主频为 200MHz,内部有 32K 字双存取 SRAM,48K 字单存取 SRAM 和 12K 字的高速指令缓存。它具有高度的并行能力,32 位读写和功能强大的 EMIF、双流水线的独立操作以及双 MAC 的运算能力。它采用了三项关键的革新技术:增大的空闲省电区域、变长指令、扩大的并行机制。此外 TMS320C55x DSP 核增加了处理运动估计、离散余弦变换(DCT)、离散余弦反变换(IDCT)、12 像素插值的硬件加速器,降低

    5、了视频处理的功耗,其结构对于多媒体应用高度优化,适合低功耗的实时语音图像处理。TI 增强型 ARM925 采用 ARM9TDMI 技术,工作主频为175MHz,有 16K 字节的高速指令缓存、 8K 字节的高速数据缓存和 17 个字的写缓冲。ARM 和 DSP 都可以访问内部 SRAM 和外部存储器接口,但 ARM 是平台的核心,它能访问全部 16M 字节的内存空间和 DSP 的 128K 字节的 IO 空间。1 2 OMAP 的软件平台OMAP 的软件结构建立在两个操作系统之上,一个是基于 ARM 的操作系统如WindowsCE、Linux 等;另一个是基于 DSP 的实时操作系统(RTOS

    6、) DSPBIOS。无缝连接两个操作系统的关键技术是 DSPBIOS 桥。DSP BIOS 桥建立的这种连接使ARM 端的客户能与 DSP 上的任务交换信息和数据3。对于软件开发者来说,DSPBIOS 桥提供了一种使用 DSP 的无缝接口,开发者可以在 GPP(通用处理器,包括 ARM)上使用标准应用编程接口访问并控制 DSP 的运行环境。2 MPEG4 实时视频解码在 OMAP 上的软件实现2 1 MPEG-4 解码流程MPEG -4 标准因其给出多种抗误码工具而适于应用在无线信道环境下的多媒体通信4。本文实现的是主要应用于无线通信的简单级(simple profile)5,因而只使用了 I

    7、帧和 P 帧。其解码的流程如图 1 所示。如果是 I 帧,码流中主要是纹理信息,经过可变长(VLC) 解码、反扫描、反预测、反量化和反 DCT(IDCT)可以直接得到重构的帧。如果是 P 帧,码流中还含有运动矢量信息,经过 VLC 解码、反扫描、反预测、反量化和反 DCT 得到的只是残差信息。利用解码得到的运动矢量、残差信息和参考帧进行运动补偿可以得到重构的帧。2 2 在 OMAPl510 上的程序结构在 OMAP 上开发程序通常分为两部分,一部分是使用 Embedded Visual C 开发 ARM 端程序,另一部分是使用 TI CCS 开发 DSP 端程序。前者主要是为了使设计的算法与x

    8、DAIS(eXpressDSP TM 算法标准)兼容,在 ARM 端程序中调用一些 DSPBIOS 桥的API 实现在 DSP 上初始化信号处理任务、与 DSP 任务交换消息、对来自 DSP 和从 DSP 发出的数据流进行缓冲、暂停、继续、删除 DSP 任务并进行资源状态查询等。而具体的功能实现则是在 DSP 端完成。图 2 显示了 TI-enhanced ARM925 应用程序与DSP 节点之间的关系。 通过写节点封装器的创建、执行及删除函数,将 xDAIS 算法封装于 DSP 节点中。创建函数可分配节点处理和 xDAIS 算法所需的存储器,还可分配节点的相关模块。这些模块是传递到执行和删除

    9、函数的一种结构。创建函数还可给出 xDAIS 算法的实例,并可将其激活,还可初始化任何在任务执行前必须初始化的数据或参数。执行函数是主要的分派函数,在此函数执行阶段中一般不分配存储器及其它资源。执行函数一般包括消息处理循环,该循环可中断函数并等待来自 ARM925 的消息或数据流,然后节点将这些消息或数据分派到合适的 xDAIS 控制或处理任务中去。同时执行函数查询DSPBIOS 桥所发送的指示函数退出循环的特殊消息,然后检查定制消息或流数据,并对这些消息或数据流进行适当处理。删除函数清空创建函数所分配的资源,包括相关模块和数据流。删除函数还必须关闭算法、释放存储器以及分配给节点的其它资源。2

    10、 3 程序的优化考虑(1)合理分配存储位置。TMS320C55x 的片内存储器容量小而存取速度快,片外存储器容量大但存取速度慢。在分配存储器的时候应考虑到这个特点合理地安排程序各部分。对于那些使用频繁的变量应考虑放在片内,如 VLC 表、运动矢量、反量化、反 DCT 的系数以及其它中间变量都应放在片内,而对于那些执行次数比较少或者比较大的变量如参考帧和当前解码出的帧则应该放在片外。此外由于编译和分配空间是以文件为单位的,所以应当把使用频繁的函数尽量放在相同的几个文件中,再将这几个文件放入片内存储器以高效地利用有限的片内资源。(2)数据传输的管理。对于视频解码工作来说,TMS320C55x 的片

    11、内存储器资源不是很多,必须合理利用。例如一帧 42 0 的 QCIF(176x144)图像,如果以紧凑的方式(2个字节存到一个 16bit 的字中 )存放也需要 18K 字。因此不可能在解码时把一整帧都放在片内,而应考虑使用 DMA 在需要时把图像的一部分传入片内进行处理。此外,为了使 CPU 访问和 DMA 传输同时无冲突地进行,将数据访问设计成乒乓结构。在解 I 帧时片内准备两个大小为一宏块行的存储区用于存放 YUV 数据,CPU 将解码的一宏块行数据放在其中一块后,DMA 把这一宏块行的数据传输到片外对应的位置,同时 CPU 解下一宏块行的数据并将结果放在另外一块存储区,DMA 再传送此

    12、块的数据,如此反复执行。选择两宏块行大小的原因是不能使用片内太多的存储器资源,同时如果每次解码传输的数据太少将过于频繁地启动 DMA,导致效率下降,折衷考虑决定在片内为解码数据开辟两宏块行大小的缓存。而在解 P 帧的时候因为要先读入参考帧的某些数据所以更为复杂。在片内开辟两块缓存,用以存放对 Inter 宏块进行运动补偿所需的参考帧中对应搜索范围内的数据,同时准备两个宏块大小的片内空间用于存放当前宏块解码的结果(为描述方便称为 M1 和 M2)。此时需要使用两个 DMA 通道,通道 1 负责将解当前宏块进行运动补偿时所需的参考帧部分数据读到片内缓存中,通道 2 负责将解码的数据传输到片外对应的

    13、空间。先启动通道 1 读所需参考帧数据到缓存 1,CPU 用这些数据和读人的码流对 Inter 宏块进行运动补偿解出当前宏块的数据放入 M1,同时通道1 读下一宏块所需的参考帧数据到缓存 2。之后 CPU、通道 1、通道 2 并行工作,CPU利用缓存 2 的数据解下一宏块放入 M2,通道 1 再读数据到缓存 1 中,通道 2 将解码的数据从 M1 传输到片外对应的空间,如此循环,P 帧利用 DMA 解码如图 3 所示。(3) 使用 TI 提供的 IMCLIB 库函数。IMCLIB 是专门为图像处理和视频提供的库,用来提高视频处理速度。这些库函数中有的是软件库函数,是用汇编写成的高效代码例如反量

    14、化函数 IMG_dequantiZe_8x8 等;有的则是硬件库函数,它们利用 OMAPl510 芯片中一些专门为视频编解码的硬件加速模块来处理数据,如利用反 DCT 模块的IMG_idct_8x8 等,这些函数处理数据的速度更快,效率更高。在使用某些库函数的时候需要按照其接口的要求调整。 (4)使用 DSP 内部固定的 intrinsics 指令,这些指令主要执行一些简单的算术操作,由于它们是由优化的汇编代码写成,因而使用它们可以提高代码执行的效率。(5)其它一些优化考虑和措施。为了使程序的效率更高,采用了一些代码优化的措施,例如将一些循环内部展开,特别是对多重循环的控制,如果外层循环较少,

    15、可将内层循环展开,把转移条件结合起来,以减少内层与外层之间的相互联系,减少判断转移并实现并行操作。又如利用 DMA 来代替原有的复制函数、为方便将浮点数定点化、使用移位操作代替乘除法等。此外,在应用到多媒体通信中,采用支持数据分割的方法来有效控制无线通信中可能产生的误码。3 测试结果使用 QCIF(176144)的两测试码流 foreman 和 car-phone(各编码 100 帧)在使用数据分割和没使用数据分割的情况下得到的解码速度(包括显示部分)如表 1 所示。测试结果使用数据分割 没使用数据分割foreman 25.2fps 27.9fpscarphone 27.4fps 29.9fps从表 1 可以看出,本文提出的方法基本上能够满足 MPEG4 实时解码的需求,即使对比较复杂的使用数据分割的序列,仍能达到 25 帧秒(fps)以上,图像的质量也比较好,因此适合在无线终端实现多媒体的应用。OMAP 平台因其独有的双核结构和为无线应用提供了一个强大的软硬件基础。本文结合其在 MPEC4 解码中应用的实例,具体阐述了 OMAP1510 的软件优化开发方法,并基本上实现了实时解码,希望能对使用 OMAP 或准备使用的开发人员具有借鉴意义。作者单位: 浙江大学信电系信息与通信系统作者:姜超 刘济林 王兴国 更新日期:2005-04-03来源:电子技术应用 浏览次数:

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:基于OMAP的MPEG4.doc
    链接地址:https://www.docduoduo.com/p-8926177.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开