位置:51电子网 » 技术资料 » 通信网络

MPEG-4 ASP视频编码器的软件优化设计

发布时间:2008/5/29 0:00:00 访问次数:536

  摘要:本文介绍了tms320c6416 dsp和mpeg-4asp (advanced simple profile )视频编码器在sp基础上新增的工具,详细阐述了基于该平台实现mpeg-4asp视频编码器的软件优化方法,最后通过实验结果的比较展现了在嵌入式系统应用中asp相对于sp编码器的优越性。由此可看出,在存储能力受限的情况下,采用asp进行mpeg-4视频编码更为适合。

  关键词:mpeg-4;视频编码器;软件优化

引言

  mpeg-4sp ( simple profile)编码器以其出众的压缩效率和图像质量受到了广泛关注,并随之诞生了很多基于pc平台的编解码器(如divx、xvid等) ,在远程教育和高清晰度电影等方面得到了广泛应用。而2001年发布的mpeg-4标准v2. 0 中包含的asp编码器,则在sp的基础上增加了一些新的工具,进一步提高了压缩效率,因此更适合在无线视频通信和数码摄像机等嵌入式系统中应用。

1 硬件平台tms320c6416介绍

  选用的实验硬件平台是tms320c6416 dsk(dsp starter kit) 。其核心处理器为美国ti公司的高性能定点32位dsp c6416,基于第2代高性能ve2lociti. 2 vliw结构,带有64个32位字长的寄存器,8个高度独立的功能单元( 2个乘法单元, 6个算术逻辑单元) ,工作时钟频率为600mhz,峰值处理速度可达4800mbit/s。c6416 dsp具有1mb 的片上存储空间,采用两级缓存结构。其中同cpu直接相连的l1p和l1d能以cpu相同的速度运行, 而l2cache有5 种配置模式,可根据实际需要来设定l2cache的大小。同时c6416还具有64个独立的edma通道,可在cpu 后台进行大量的数据搬移,并集成了16mb的sdram,可配置为高速缓存 ,提高访问效率。

2 mpeg-4asp视频编码

  运动图像专家组mpeg于2001年在其新发布的v2. 0版本中增加了一些新的工具和框架,其中包括了asp 。asp 在sp的基础上增加了对b-vop、1/4像素精度的运动矢量、可选量化器 、全局运动补偿gmc等的支持,进一步提高了压缩效率。

  (1)b-vop使用双向预测来提高运动补偿的效率,也即每个block块或者macroblock宏块都可由前向和后向预测加权得到。

  (2) 1/4像素运动矢量 : 在进行运动估计和补偿之前, 参考vop先在1/2像素位置处,进而在1/4处进行插值,尽管这样增加了运动估计、运动补偿和图像重建的复杂度,但编码效率相比sp编码器得到了提高。

  (3)可选量化器:在asp中提供了一种可选的反量化方式。在这种方式中,量化系数fq ( u, v)按照下面的方式进行反量化来生成系数f (u, v) : if (fq = 0) f = 0; elsef = [ (2 ×fc( u, v) + k) ×ww ( u, v) ×qp ] /16。其中ww 是8 ×8的加权因子矩阵,这种反量化方式使得编码器可根据量化系数在块中的位置,使用ww 改变步长。

  (4)全局运动补偿(gmc) :同一视频对象(vo)中的宏块可能经历相似的运动,如摄像机镜头的缩放和旋转等造成的线性移动,其中的一些宏块可能向同一方向运动。带gmc的编码器只需发送少量的运动参数就能为整个vop描述这个“全局”运动。因此,当vop中相当数量的宏块拥有相同运动特性时, gmc就可以显著的提高压缩效率。

3 软件移植及优化

  由于dsp不同于普通的pc环境,因此简单的将代码放到dsp上去编译,运行效率低甚至不能运行,必须进行适合dsp特点的代码移植、改写和优化工作,才能达到实时性要求。

3. 1 软件移植
  为使代码适合在dsp平台上运行,首先删除程序代码中大量的printf等调试信息,对必要的信息输出改用puts,以减少函数开销;对double类型数据改用long类型定义;删除不必要的浮点运算(如psnr的计算) ,必要的浮点运算通过定标来实现。

3. 2 存储器优化
  c6416dsp有1mb 的片上存储空间,最大能以cpu时钟频率进行访问。在dsk上集成了16mb/s的sdram,可通过em ifa以100mhz的频率进行访问。访问速度上存在的差异以及cpu寻址外部存储空间将导致流水线停止数个周期,因此,如何合理利用c6416的片上存储空间和二级缓存结构成了非常关键的因素。将1mb的存储空间分为256k的l2cache和768 k的l2sram,代码段、全局数据等放在片内存储器l2sram 上, 外部sdram 设定为可高速缓存(cacheable)以提高访问效率。这些设置可以通过调用csl (chip support library)库函数来完成:

#include < csl. h >
#include < csl_cache. h >
csl_init ( ) ;
csl_enablecaching(cache_em ifa_ce00) ;
cache_setl2mode (cache_256 k cache) 。

3. 3 项目级优化
  ti为其集成编译环境ccs提供了一系列的编译优化参数,可根据代码性能要求进行选取。因此可以通过不断对各个参数( - mw, - pm, - o3, - mt等)进行组合、优选,这可以通过ccs 2. 20的pbc选项来完成。同时在代码链接过程中,对代码段链接顺序进行一定的安排,可以减少程序执行时代码调用带来的缓存缺失,提高程序的执行效率。

3. 4 代码优化
  代码优化是mpeg-4 asp

  摘要:本文介绍了tms320c6416 dsp和mpeg-4asp (advanced simple profile )视频编码器在sp基础上新增的工具,详细阐述了基于该平台实现mpeg-4asp视频编码器的软件优化方法,最后通过实验结果的比较展现了在嵌入式系统应用中asp相对于sp编码器的优越性。由此可看出,在存储能力受限的情况下,采用asp进行mpeg-4视频编码更为适合。

  关键词:mpeg-4;视频编码器;软件优化

引言

  mpeg-4sp ( simple profile)编码器以其出众的压缩效率和图像质量受到了广泛关注,并随之诞生了很多基于pc平台的编解码器(如divx、xvid等) ,在远程教育和高清晰度电影等方面得到了广泛应用。而2001年发布的mpeg-4标准v2. 0 中包含的asp编码器,则在sp的基础上增加了一些新的工具,进一步提高了压缩效率,因此更适合在无线视频通信和数码摄像机等嵌入式系统中应用。

1 硬件平台tms320c6416介绍

  选用的实验硬件平台是tms320c6416 dsk(dsp starter kit) 。其核心处理器为美国ti公司的高性能定点32位dsp c6416,基于第2代高性能ve2lociti. 2 vliw结构,带有64个32位字长的寄存器,8个高度独立的功能单元( 2个乘法单元, 6个算术逻辑单元) ,工作时钟频率为600mhz,峰值处理速度可达4800mbit/s。c6416 dsp具有1mb 的片上存储空间,采用两级缓存结构。其中同cpu直接相连的l1p和l1d能以cpu相同的速度运行, 而l2cache有5 种配置模式,可根据实际需要来设定l2cache的大小。同时c6416还具有64个独立的edma通道,可在cpu 后台进行大量的数据搬移,并集成了16mb的sdram,可配置为高速缓存 ,提高访问效率。

2 mpeg-4asp视频编码

  运动图像专家组mpeg于2001年在其新发布的v2. 0版本中增加了一些新的工具和框架,其中包括了asp 。asp 在sp的基础上增加了对b-vop、1/4像素精度的运动矢量、可选量化器 、全局运动补偿gmc等的支持,进一步提高了压缩效率。

  (1)b-vop使用双向预测来提高运动补偿的效率,也即每个block块或者macroblock宏块都可由前向和后向预测加权得到。

  (2) 1/4像素运动矢量 : 在进行运动估计和补偿之前, 参考vop先在1/2像素位置处,进而在1/4处进行插值,尽管这样增加了运动估计、运动补偿和图像重建的复杂度,但编码效率相比sp编码器得到了提高。

  (3)可选量化器:在asp中提供了一种可选的反量化方式。在这种方式中,量化系数fq ( u, v)按照下面的方式进行反量化来生成系数f (u, v) : if (fq = 0) f = 0; elsef = [ (2 ×fc( u, v) + k) ×ww ( u, v) ×qp ] /16。其中ww 是8 ×8的加权因子矩阵,这种反量化方式使得编码器可根据量化系数在块中的位置,使用ww 改变步长。

  (4)全局运动补偿(gmc) :同一视频对象(vo)中的宏块可能经历相似的运动,如摄像机镜头的缩放和旋转等造成的线性移动,其中的一些宏块可能向同一方向运动。带gmc的编码器只需发送少量的运动参数就能为整个vop描述这个“全局”运动。因此,当vop中相当数量的宏块拥有相同运动特性时, gmc就可以显著的提高压缩效率。

3 软件移植及优化

  由于dsp不同于普通的pc环境,因此简单的将代码放到dsp上去编译,运行效率低甚至不能运行,必须进行适合dsp特点的代码移植、改写和优化工作,才能达到实时性要求。

3. 1 软件移植
  为使代码适合在dsp平台上运行,首先删除程序代码中大量的printf等调试信息,对必要的信息输出改用puts,以减少函数开销;对double类型数据改用long类型定义;删除不必要的浮点运算(如psnr的计算) ,必要的浮点运算通过定标来实现。

3. 2 存储器优化
  c6416dsp有1mb 的片上存储空间,最大能以cpu时钟频率进行访问。在dsk上集成了16mb/s的sdram,可通过em ifa以100mhz的频率进行访问。访问速度上存在的差异以及cpu寻址外部存储空间将导致流水线停止数个周期,因此,如何合理利用c6416的片上存储空间和二级缓存结构成了非常关键的因素。将1mb的存储空间分为256k的l2cache和768 k的l2sram,代码段、全局数据等放在片内存储器l2sram 上, 外部sdram 设定为可高速缓存(cacheable)以提高访问效率。这些设置可以通过调用csl (chip support library)库函数来完成:

#include < csl. h >
#include < csl_cache. h >
csl_init ( ) ;
csl_enablecaching(cache_em ifa_ce00) ;
cache_setl2mode (cache_256 k cache) 。

3. 3 项目级优化
  ti为其集成编译环境ccs提供了一系列的编译优化参数,可根据代码性能要求进行选取。因此可以通过不断对各个参数( - mw, - pm, - o3, - mt等)进行组合、优选,这可以通过ccs 2. 20的pbc选项来完成。同时在代码链接过程中,对代码段链接顺序进行一定的安排,可以减少程序执行时代码调用带来的缓存缺失,提高程序的执行效率。

3. 4 代码优化
  代码优化是mpeg-4 asp
相关IC型号

热门点击

 

推荐技术资料

耳机的焊接
    整机电路简单,用洞洞板搭线比较方便。EM8621实际采... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!