《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > 嵌入式视频解码的实现

嵌入式视频解码的实现

2008-06-05
作者:刘东华1,2

  摘 要: 在嵌入式手机开发平台上实现视频解码" title="视频解码">视频解码处理的方法。首先介绍视频解码在嵌入式平台上的处理流程,然后具体分析视频解码算法中各个关键模块的实现方法,最后对该平台上的处理性能进行分析并给出结论。
  关键词: 嵌入式平台 视频解码 AVS-M


  视频业务作为下一代移动通信的重要应用,已经越来越受到重视。目前,很多高端移动通信设备和智能手机都提供嵌入式操作系统,支持第三方的小应用程序。因此,在嵌入式手机平台上开发视频应用具有很好的前景。但是,由于目前手机平台资源有限,不能实现复杂性较高的实时视频压缩编码,所以首先要实现视频的解码处理。下面介绍在嵌入式手机平台上实现视频解码处理的方法及相应结果。
1 系统处理流程
  在嵌入式平台上实现的视频解码可以分为系统设置(包括操作系统初始化等)和视频解码处理两部分。处理流程如图1所示。
1.1 系统设置
  完成初始化系统,调用系统程序完成CPU初始化,配置寄存器以确保存储器访问正确。对嵌入式操作系统的内核进行初始化,以μITRON操作系统为例,调用vsta_knl和ivsta_knl实现操作系统初始化。初始化过程主要包括:
  (1)设置终端寄存器和矢量寄存器(VBR)等关键寄存器。
  (2)初始化内核工作区。
  (3)创建初始化定义对象。
  (4)启动生成的系统初始化程序,包括定时器(timer)、存储管理单元(MMU)等。
  (5)转向多任务进程(MultiTasking),并开始第一个任务。
  由于视频解码算法采用C语言实现,因此还要完成任务的配置和初始化等工作以及C语言运行环境配置等。
  在完成操作系统内核初始化之后,程序进入多任务状态,其中视频解码处理部分作为主任务开始执行。
1.2 视频解码处理
  视频解码处理部分是整个系统的主任务,其第一步仍然是任务配置和初始化。首先通过寄存器配置启动CACHE并初始化,主要完成指令CACHE(IC)、操作数CACHE(OC)使能以及其他必需的模块操作。接下来初始化LCD显示模块,包括设置LCD初始化参数、LCD驱动参数及LCD绘图参数。RGB转换单元初始化用于使能视频引擎单元及视频色彩空间的转换。


  在解码开始前,先对解码参数初始化,包括分配存储和倒换缓冲区、初始化查找表等。而后通过解析压缩的标准视频数据流获取序列和图像参数集及标记信息。若解析得到的信息显示存在一帧图像数据,则进入主处理模块进行图像解码;否则释放资源,任务结束。在每一帧图像解码完成后,通常得到YCbCr格式的数据,通过RGB转换单元变换成可在LCD显示的RGB格式的数据(后处理),送入相应的缓冲区,实现LCD显示。然后继续解析码流,直到完成整个序列的解码、显示。最后释放资源,任务结束。
2 视频解码算法实现
  目前,比较流行的视频压缩标准主要有MPEG4和H.264。其中H.264的压缩效率和图像质量在同等条件下要优于MPEG4,同时也更适合移动应用。拥有自主知识产权的移动视频标准AVS-M" title="AVS-M">AVS-M也在制定。AVS-M与H.264 Baseline在标准框架上有很多相似之处,下面对这两种标准中采用的关键处理模块进行分析。
  由于嵌入式移动终端的主频和存储资源有限,因此实现视频解码的关键在于如何优化程序,提高执行效率,降低存储需求。针对嵌入式处理器的特点,考虑到资源的有效利用,在实现视频解码过程中应采用下列策略:
  (1)优化数据结构。例如采用合理的数据结构,提高指针和数组的寻址效率等。
  (2)改善数据处理流程。例如将解码过程中宏块的预测模式、运动矢量的初始化在帧一级实现,通过模块模糊化尽可能减少各个模块之间数据缓存的倒换等。
  (3)充分利用硬件平台特点。例如提高CACHE命中率、有效利用片上存储资源、实现软件流水等。
  以AVS-M为例,对标准视频序列总线进行测试,得到如表1所示的视频解码算法中各部分的处理时间比例。
  在解码过程中,反量化" title="反量化">反量化/反变换模块、运动补偿模块和重构" title="重构">重构模块占用了大部分处理资源,因此这里主要考虑对这三个模块的处理。


2.1 反量化/反变换
  为降低运算量,H.264基线和AVS-M的变换采用整数离散余弦的4×4变换,变换矩阵由全部是整数的核心矩阵和系数矩阵组成。系数矩阵与量化过程结合,变换部分就成为可逆的整数变换。视频解码过程中,从码流解析出每个4×4块的量化系数进行反量化和反变换,生成该4×4数据块的参差矩阵,与预测矩阵共同重构出解码图像块。实现此功能可采取以下策略:
  (1)将4×4量化系数矩阵用一维数组来表示,避免在每次取操作数时两次寻址,提高寻址效率。
  (2)在同一个模块实现反量化、反变换和重构。整个操作过程均针对存放16个量化系数的数组进行,每完成一个运算过程直接更新数组相应的元素,从而避免块数据的倒换。完成该操作后即得到解码图像块。
  (3)将重构过程中的两重4次循环的内循环打开,实现软件流水。也可以在整个宏块的所有4×4块均完成反量化和反变换后对两重16次循环采用软件流水,这样可以提高速度,但增加了存储资源占用。
  (4)反量化过程采用查找表实现,降低了运算复杂性。查找表存入CACHE,可提高访问速度。
  采用上述方法可大大提高处理速度,同时节省存储资源。
2.2 运动补偿
  为降低码率,H.264和AVS-M采用1/4像素精度的亮度插值" title="插值">插值预测和1/8像素精度的色度插值预测。插值过程占用了运动补偿的大部分时间。因此,在处理运动补偿时,应采用如下策略:
  (1)并行化处理。视频处理中,1/2像素插值通过水平FIR滤波器和垂直FIR滤波器实现。对于亮度插值,每个像素点的取值范围在[0,255],滤波器抽头系数在[-63,64]之间,每个插值计算的结果不会超出[-6630,22950],因此可以用16位运算器实现。而目前采用的嵌入式处理器至少是32位的,因此在每个指令周期可以并行完成至少两个插值运算,进而大大减少了插值运算时间。
  (2)预扩展参考图像边界。对于帧间预测,预测数据块根据运动矢量在参考图像中确定预测参考块(根据运动矢量的取值,参考块数据可以是参考像素值,也可以是1/2像素或1/4像素插值结果)。当运动矢量指向的参考样本超出图像参考边界时,需要使用图像内距离该参考样本最近的整数样本代替。如果每次在参考样本超出边界时进行判断和赋值,则会增加判断次数并会导致软件流水中断。为此,可以预先将参考图像根据边缘像素值做水平和垂直扩展。参考样本全在参考图像外面时,不论运动矢量延伸多大,所得到的预测块像素值都是相同的,可以将扩展的宽度设定为宏块的宽/高度以确保结果的正确性。这样就不再需要判断,同时解决了软件流水问题。
  (3)提高CACHE命中率。由于CACHE的存储空间有限,不可能将参考图像全部放入CACHE,因此考虑根据运动矢量的统计特性将最有可能的参考样本放入CACHE,用以提高命中率。
2.3 图像重构
  图像重构过程与反量化/反变换结合起来实现,具体实现参见2.1。
3 测试结果
  利用上述方法,可以实现嵌入式手机平台上的视频解码。表2给出了在手机开发平台上的测试结果。其中CPU主频为216MHz,操作系统为μITRON,视频标准为AVS-M,图像格式为QVGA,大小为320×240。测试序列选择具有代表性的标准序列。


  由表2可知,大多数测试序列基本可以达到实时解码(15帧/秒)。目前市场上的主流智能手机的主频在150MHz以上,而视频格式通常采用QCIF(大小为176×144)或近似大小的视频格式,远小于未来的主流视频格式——QVGA。因此,该嵌入式视频处理系统可以直接应用于移动终端产品。
参考文献
1 Renesas 32-bit RISC microcomputer SH mobile series SH73182 hardware manual,REJ09B0118-0070Z.RENESAS Corp,2004
2 Renesas 32-bit RISC microcomputer superHTM RISC engine family SH4AL-DSP software manual.REJ09B0002-0150Z.RENESAS Corp,2004
3 Renesas industrial realtime operating system HI7000 /4 series (HI7000/4,HI7700/4,HI7750/4) user′s manual.RENESAS Corp,2003
4 Wiegand T,Sullivan G J,Bjontegaard G et al.Overview of the H.264/AVC video coding standard.IEEE Trans.CircuitsSystem Video Technol,2003;13(7)
5 Draft ITU-T recommendation and final draft international standard of joint video specification(ITU-T Rec.H.264/ISO/IEC 14496-10 AVC.Joint Video Team(JVT) of ISO/IEC MPEG and ITU-T VCEG,JVT-GO50,2003
6 AVS工作组.音视频编码 第七部分:移动视频(草案).北京:AVS工作组,2004

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。