功率电感生产厂家
联系我们
热门搜索
点击排行
推荐阅读
猜猜你喜欢的
技术支持 您所在的位置: 首页 > 技术支持

H.264在ADSP-BF561上的实现与优化

来源:    作者:    发布时间:2016-05-05 21:57:08    浏览量:

  (2)饱和函数。在视频的计算中,几乎每次像素的计算都会调用饱和函数,X264代码的实现中已将这部分代码改为查表函数,在其他的编解码器实现中也有将这部分改为一个判断和几个逻辑运算的形式。对大部分DS模压电感P平台,采用判断跳转会打断流水线,即使平台有比较好的跳转预测功能,打断流差模电感水仍然会造成stall。所以查表方法是一种高效方法。而在ADSP-BF561汇编指令中,可以通过设置指令后缀或使用某些特殊指令来进行饱和工作。甚至不用查表,在不同的场合使用不同的饱和算法能大大提高代码的执行效率。
  (3)MC部分函数。实测中发现MC部分函数运行效率不如ffmpeg解码器中MC部分效率高,所以将这部分代码用ffmpeg中的相应部分替换。此外qpel16_hv函数中计算有冗余,减少这些冗余能提高代码运行效率。
  (4)算法替代和改进。帧间预测的改进:关于算法的改进主要集中在对me(motion estimation)的改进上,流程如图2所示。costmin1=min(cost16,cost8,cost16×8,cost8×16),costmin2=min(costmin1,costsub),依次在16×16、8×8、16×8和8×16大小宏块的整像素位置做预测,再做次像素估计和帧内预测,选用匹配准则函数(采用sad作为匹配准则函数)取得最小值的模式进行编码。每计算一种模式,都将sad值与一个经验阀值做比较。当sad值小于这个阀共模电感值时,立即结束运动估计,从而减少运算量。


  帧内预测的改进:H.264标准所采用的帧内预测模式除了DC模式都具有方向性,相邻4×4块都具有相关性。根据这样的相关性,只将当前4×4块上边和左边选用预测模式及其相邻的两种预测模式作为当前4×4块的预测模式,当其阀值都大于一个经验阀值时,才采用DC模式。这样的方案不用一一计算9种预测模式,在复杂度、编码效率、质量和速度上取了一个折中。流程如图3所示。


2.2.2.3 代码层次优化
  针对ADSP-BF561平台,代码层次的优化工作包括以下几个方面:
  (1)内联函数。将经常调用的函数体较小的函数改为内联。编译条件中有关于内联函数优化的选项。内联函数的使用是将代码的大小和运行效率取一个折中。根据实际情况,代码的大小并非限制条件,所以应尽可能多地使用内联函数。在项目配置中选中when declared inline选项。
  (2)跳转预测。ADSP-BF561采用了静态预测的方式来预测有条件判断情况,预测不成功会造成4~8个内核时钟(CCLK)的延误。如果事先知道某些跳转的概率,将可能性最大的分支放在最前面,可以从概率上降低预测不成功而造成的stall。
  (3)使用硬件支持循环。对于大部分平台,将一些循环体小的循环展开也能提高效率。ADSP-BF561有两组硬件计数器用以支持循环。所以除非是展开三层以上的循环,否则,展开循环体不能提高效率。
  (4)内存。嵌入式系统的内存是非常宝贵的资源。避免频繁的动态申请和释放内存,能减少碎片产生,提高内存的利用率。X264工程也不会频繁地申请释放内存。在项目中,具体做法是编写平台相关的malloc和free函数。将经常使用的中间数据在L1数据空间中分配。
  (5)注释不需要代码。去掉代码中不需要的部分,主要会去掉CAVLC以及部分码率控制、csp、cpu、信息统计、调试和psnr计算等部分代码,这样做的目的是为了减小文电感单位件大小和去除代码中的一些跳转。不建议删除代码,可以使用注释符或用宏切换的方式,以防止以后参数改变时需要使用未使用过的代码。
2.2.2.4 平台层次优化
  ADSP-BF561相应的编程参考和硬件参考对其平台特性有详细介绍。一些平台自带的优化功能,如CACHE的开启和配置等不专门在此讨论。
  (1)汇编代码编写
  使用汇编优化有两个方法:对于LEAF函数(函数体中不再调用其余函数),采用整个函数完全用汇编指令重写的方式;而对于NONLEAF函数则可使用asm关键字,在C代码中嵌入汇编代码。在汇编代码的编写过程中一些情况会造成流水线stall,在编写汇编代码时要特别注意避免这些情况。IDE集成了PIPLELINE VIEWER工具,如图4所示。在编写完成汇编代码后,可使用该工具观察运行时流水线共模电感的情况。如果有stall等出现,会给出原因,优化人员根据工具分析结果重新更改代码,提高执行效率。

  • 开关电源的控制环截止频率和开关频率有什么关系开关电源的控制环截止频率和开关频率有什么关系?
    小编你是针对我吗?我贴了一个人家对“开关电源的控制环截止频率和开关频率“的探讨文章链接,为什么你要删除我的回复???难道回复

  • 基于频率跟踪型PWM控制的臭氧发生器电源的研究1 概述 臭氧的强氧化能力和杀菌能力使其在水处理、化学氧化、食品加工和医疗卫生等许多领域具有广泛的应用。臭氧发生器的物理结构和等效电路如图1所示。当臭氧发生器负载两端的外加电压低于气体放电起始电压Vs

  • 采用AVR单片机的小型采暖炉控制系统抗干扰设计1. 引言: 单片机在工业控制领域应用时不同于民用、商用领域中的应用,工业控制所处的环境相对比较恶劣,干扰源多,其常见干扰源来自现场工业电气在投入、运行、切断等工况下产生的静电感应、尖峰电压、浪涌电流

  •