基于OMAP平台的AVS解码实现
Video Decoding Realization of AVS-M standard based on OMAP5910
山东大学信息学院信号与信息处理(250100) 杨阳
摘要:本算法在OMAP5910/12平台上实现了对符合AVS-M标准的比特流的解码功能。ARM端采用Linux操作系统,DSP端针对C55X的结构特点,使用了内存优化、DMA、硬件加速等关键技术来提高解码速度。在输入数据为QCIF(176x144)大小的视频流条件下,解码速度达25帧/秒以上,远远满足实时需求。
Abstract: This Algorithm can decode the bitstream of AVS-M standard in real-time on the OMAP5910/12. Linux operating system is run on ARM while many key technologies have been used on C55X based on its structure property to increase the decoding rate greatly, such as memory optimizing, DMA, hardware accelerator etc. Decoding frames rate for QCIF (176x144) version could be more than 25 frames / second, which can sufficiently satisfy the needs of real-time playing.
关键词:OMAP AVS 解码器 优化
视频解码软件在视频产业链上占据特殊地位,它们是任何视频应用必需的。在3G的手机播放器市场上,开发出自主的播放软件和编解码软件对推动我国的3G产业,甚至整个音视频产业有着关键的作用。AVS(Audio-Video Coding Standard)是我国具备自主知识产权的第二代信源编码标准,与目前比较流行的标准如MPEG-2、MPEG-4、H.263、AVC/H.264相比,从主要技术指标——编码效率来看:MPEG-4是MPEG-2的1.4倍,AVS和AVC相当,都是MPEG-2两倍以上;算法复杂度上来看:AVC的算法在编码端比MPEG-2复杂4-5倍,在解码端比之复杂2-3倍,而AVS比AVC算法复杂度上有较大幅度降低。同时AVS不需要交纳高昂的专利费用,具有重要的经济价值。
移动通信的发展对数字信号处理器提出了越来越高的要求,传统的DSP芯片已不能胜任。为了满足移动通信和多媒体领域新应用的需要,德州仪器公司提出了开放式多媒体应用平台OMAP(Open Multimedia Applications Platform)体系结构,并为此设计了OMAP芯片。它采用一种独特的双核结构,把高性能低功耗的DSP核与控制性能强的ARM微处理器结合起来,成为一颗高度整合性SoC。它是一种开放式的、可编程的基于DSP的体系结构。由于OMAP先进独特的结构,其芯片运算处理能力强、功耗低,在移动通信和多媒体信号处理方面具有明显优势。
本设计在OMAP5910/12的开发板上实现了AVS第7部分AVS-M:移动视频的解码,设计中通过算法和代码优化以及各种硬件开发技术的应用,最终在满足了解码器的质量要求前提下大大提高了解码速度,使得解码速度达到了25fps。
1 AVS-M标准解码算法详细介绍
AVS-M标准的解码算法框图如图1所示。算法包括去块效应算法、插值算法、整数IDCT变换算法等。其各部分完成的功能如下:
初始化部分:算法的输入数据为符合AVS-M标准的比特流,在不考虑网络传送的实验环境下, 可以使用编码完成的比特流文件作为输入数据。因此算法中的初始化环节,在PC上就是从硬盘中读取输入比特流文件,在OMAP实现上就是通过ARM将PC上的比特流传输到OMAP的片外内存SDRAM(ARM与DSP共享)中,DSP程序就可以直接读取。
解析帧参数:输入的比特流数据中每帧都含有相应的解码参数,需要在后续的宏块(16x16的帧数据矩阵)解码中使用。
取宏块类型:宏块类型为宏块的编码类型,它决定了宏块的解码流程,分为P_16x16、P_16x8、P_8x16、P_8x8、I_4x4等五种,图中P_X即为前四种,为帧间编码方式,需要根据参考宏块(位于参考帧上,由运动矢量决定位置)来得到当前宏块的近似值,运动矢量可以指向非整数像素,这时需要插值计算得到参考帧宏块数据。I_4x4为帧内编码方式,需要根据帧内相邻像素来预测当前宏块的近似值。
计算运动矢量:运动矢量决定了参考宏块的位置,它由两部分组成:a)帧内预测值:该值根据在空间上位于当前宏块上面和左面两个宏块的最终运动矢量来得到决定。b)编码后的运动补偿残差,该值即为从比特流中读取的结果。这两者相加才得到运动矢量的最终值。
亮度色度插值:根据AVS-M标准,在编码端的运动补偿阶段使用搜索算法匹配当前块时,匹配精度为1/4像素精度,所以当运动矢量不指向整数像素时,解码端就需要对参考帧(亮度、色度)插值得到参考宏块数据。
当宏块为帧内预测模式时,与计算运动矢量类似,最终的预测结果需要宏块左面和上面的数据加上比特流的数据共同确定宏块的帧内预测模式。根据不同的帧内预测模式,可以得到不同的亮度、色度预测结果。
从比特流中读取残差,反量化、反变换后,再加上由上述参考帧宏块(或帧内预测结果)得到的当前宏块得近似值后,就可以重构当前宏块数据。
由于编码过程是针对宏块进行的,当前帧的所有宏块解码后,如果不进行处理,在块的边界上会出现典型的边界效应,这就需要对块边界进行去块效应环路滤波,滤波后即为最终的解码结果。
图1 解码器算法流程图
2 OMAP平台简介
开放式多媒体应用平台(Open Multimedia Applications Platform ,简称OMAP) ,把高性能低功耗的DSP 核与控制性能强的ARM微处理器结合起来,是一种开放式的、可编程的基于DSP 的体系结构,如图2 所示。


图2 OMAP1510/12结构框图
2.1 OMAP 的硬件平台
OMAP 的硬件平台主要由ARM核、DSP 核以及流量控制器(Traffic Controler) 组成。下面分别作一下介绍:
ARM核,OMAP151X系列采用TI 增强型ARM925 核,工作主频175MHz。它包括存储器管理单元、16k 字节的高速指令缓冲存储器、8k 字节的数据高速缓冲存储器和17 个字的写缓冲器。片内有1. 5Mb 的内部SRAM,为液晶显示等应用提供大量的数据和代码存储空间。有13 个内部中断和19 个外部中断,采用两级中断管理。TI925T(ARM9TDMI)内核是采用5 阶段管道化流水线32 位的RISC处理器架构的体系结构。系统中的控制寄存器可通过对协处理器CP15 的读写来对MMU、Cache 和读写缓存控制器进行存取操作。 ARM具有整个系统的控制权,可以设置ARM、DSP、TC以及各种外设的时钟及其他工作参数,控制DSP的运行停止。OMAP161X与OMAP151X程序完全兼容,采用了ARM926核,加大了内部的RAM,集成了硬件安全加速器。OMAP161x平台可支持包含绘图、多媒体内容和Java程序的先进应用。
C55x DSP 核具有最佳的功耗性能比,工作主频为200MHz。它具有高度的并行能力,32位读写和功能强大的EMIF, 双流水线的独立操作以及双MAC 的运算能力,它采用了三项关键的革新技术:增大的空闲省电区域、变长指令、扩大的并行机制。其结构对于多媒体应用高度优化,适合低功耗的实时语音图像处理。
C55x DSP 核增加了固化了算法的硬件加速器,来处理运动估计、8×8的DCT/IDCT和1/ 2 像素插值,降低了视频处理的功耗,其结构对于多媒体应用高度优化适合低功耗的实时语音图像处理。
流量控制器(Traffic Controler),简称TC,控制MPU、DSP、DMA以及本地总线对OMAP1510内所有存储器的访问,包括SRAM, SDRAM, flash, ROM 。
OMAP 芯片具有丰富的外围接口,如:液晶控制器、存储器接口、摄像机接口、空中接口、蓝牙接口、通用异步收发器、I2C 主机接口、脉宽音频发生器、串行接口、主客户机USB 口、安全数字多媒体卡控制器接口、键盘接口等等。这些丰富的外围接口,使应用OMAP的系统具有了更大的灵活性和可扩展性。
2.2 OMAP 的软件平台
利用OMAP 可以建立两个操作系统,一是基于ARM 的操作系统,如Windows CE、Linux 等,二是基于DSP 的DSP/ BIOS 。连接两个操作系统所使用的核心技术是DSP/BIOS 桥。OMAP支持多种实时多任务操作系统在ARM 微处理器上工作,用来对ARM微处理器进行实时多任务调度管理,对DSP C55x 进行控制和通信。同时也支持多种实时多任务操作系统在DSPC55X上工作,实现复杂的多媒体信号处理。DSP/ BIOS 桥包含DSP 管理器,DSP 管理服务器,DSP和外围接口链接驱动器。DSP/ BIOS 桥提供运行在ARM925 上的应用程序和运行在C55x DSP 上的算法之间的通信管理服务。开发者可以利用DSP/ BIOS 桥中的应用编程接口,控制在DSP 中实时任务的执行,并同DSP 交换任务运行结果和状态消息。在这个环境下,开发者可以调用局部DSP 网关组件来完成诸如视频、音频和语音等功能。因此,开发者不需要了解DSP 和DSP/ BIOS 桥,就能开发新的应用软件。一旦使用标准应用编程接口的应用软件开发出来,它将与基于OMAP 的未来无线设备兼容。