基于dsp的视频算法系统的优化策略

基于dsp的视频算法系统的优化策略

ID:46419549

大小:85.50 KB

页数:4页

时间:2019-11-23

基于dsp的视频算法系统的优化策略_第1页
基于dsp的视频算法系统的优化策略_第2页
基于dsp的视频算法系统的优化策略_第3页
基于dsp的视频算法系统的优化策略_第4页
资源描述:

《基于dsp的视频算法系统的优化策略》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于DSP的视频算法系统的优化策略近年來,对数字视频产品的需求增t迅速。数字视频产品的主流应用包括视频通信、视频监控与工业自动化,最热门的则为娱乐应用,如IDVD、HDTV、卫星电视、标清(SD)或高清(HD)机顶盒、数码相机与HD摄像机、高端显示器(LCD、等离子显示器、DLP)以及个人摄像机等。这些应用对高质量的视频编解码算法及其标准提出更高要求。目前的主流压缩标准主要冇MPEG2、MPEG4和H・264/AVC,而针对这些编解码标准有各种各样的实现方案。本文主要讨论基于TI公司C64系列DSP的视频解码算法在系统优化过程屮

2、需要考虑的若干因素。TI的C64系列DSP以其强大的处理能力被广泛用于视频处理领域,但由于使用者对C64系列DSP的结构、指令的理解程度不一样,造成算法的实现效果有许多差异。具休休现在实现算法时所占用的CPU资源上,例如实现H.264MP@D1解码时所占用CPU的资源将有所丼异;或者体现在所包含的算法工具了集上,例如实现H.264MP@D1解码吋使用CAVLC而不是CABACo造成这些差异的主要原因有:算法关键模块的优化;算法系统集成时内存的管理;算法系统集成时EDMA的资源分配管理。本文将从这三方面探讨算法优化集成过程屮需耍考

3、虑的因素。算法关键模块的优化一般而言,针对目前主流视频解压缩标准都有非常消耗DSPCPU资源的模块,如IL264/AVC、MPEG4、AVS等编码中的运动矢量搜索就非常占用资源,而且这些模块在整个系统实现过程屮述被频繁调用,因此我们应首先找出这些模块。TI的CCS提供了工程剖析工具(Profile),可以很快找到整个工程中占用DSPCPU资源最多的模块,然后对这些模块进行优化。对这些关键算法模块的优化可以分三步进行。如图1所示,先认真分析这部分代码,并进行相应的调整,例如尽量减少有判断跳转的代码,特别是在for循环中,因为判断跳

4、转会打断软件流水。可以用杳表或者用_cmpgtu4^_cmpcq4等Intrinsics来代替比较判断指令,从而巧妙地替代判断跳转语句。同时还可以采用TI的CCS中所提供的#pragma,为编译器提供尽量多的信息。这些信息包扌舌for循环的次数信息、数据对齐信息等。如果经过这部分优化后述无法满足系统要求,则对这部分模块使用线性汇编來实现。线性汇编是介于C和汇编Z间的一种语言实现形式,可以控制指令的使用,而不必特别关心寄存器和功能单元(S、D、M、L)的分配和使用。使用线性汇编一般会比使用C语言具有更高的执行效率。如果线性汇编无法

5、满足要求,则使用汇编实现。为编写高并行、深软件流水的汇编,需要经过创建相关图、吋序表(Schedulingtable)等步骤,由于篇幅所限,这里就不再讨论。当运动搜索屮需要计算16X16宏块的SAD值时,在不同方式下消耗的DSPCPU的周期数:使用C+lntrinsics需要83个周期,使用线性汇编需要74个周期,而使用汇编只需要57个周期。由此可见,汇编实现所消耗的CPU周期数最少,但前捉是耍充分了解DSPCPU的结构、指令以及算法模块的结构,以编写出高并行、深软件流水的汇编,否则所写出的汇编冇可能述没冇线性汇编或者C的效率高

6、。一个行之有效的方法是,充分利用TI所提供的算法库中的函数,因为算法库屮的函数都是已经充分优化过的算法模块,而且大都提供对应的C、线性汇编和汇编源代码,并有文档进行APT介绍。=>C代码调整C代码中加^pragma.Intrinsics剖析(profile)Yes满足系统要求?=>结束ONo线性汇编函数买现满足系统要求?暑B结束卩N。汇编函数实现NoYes<.J满足系统要求?己结朿(>系统结构调整Memory,EDMA优化配賈妙优化编译.剖析一OYes隔足系统要求?=No关键模決线性汇编函数实现OYes满足系统要求?=鸭No关键

7、模块汇编函数实现Yes满足系统要求?=图]:基于TTDSP的视频算法关键模块的优化步骤(左);图2:基于TIDSP的视频算法的优化集成过程(右)。算法系统集成时内存的管理由于在基于DSP的嵌入式系统开发中,存储资源特别是片内高速存储资源有限。在算法系统集成时内存的管理对于整个系统的优化非常重要,它一方而将影响数据的读取、搬移速度;另一方面还将影响缓存的命中率。下面从程序和数据两方面进行分析。程序区:最大原则是将经常调度使用的算法模块放片内。为达到这一目标,TT的CCS中提供了^pragmaCODE_SECTION,可以把需要单独

8、控制存放的函数段从.text段屮独立出来,从而击.cmd文件屮对这些函数段进行单独物理地址映射。还可以使用动态控制的方式,将需要运行的代码段先调度到片内内存中。例如,H.264/AVC屮CAVLC和CABAC两个算法模块具有互斥性,可以将这两个算法模块放在片外,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。