消费性多媒体产品硬软件系统的互操作性测试.docVIP

消费性多媒体产品硬软件系统的互操作性测试.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
消费性多媒体产品硬软件系统的互操作性测试.doc

  消费性多媒体产品硬软件系统的互操作性测试|第1 图2:迭代优化过程。 软件优化 在消费性媒体产品的软件中,音、视频编解码器通常是对资源需求最大的一部分。现今的产品数据率高,采用的算法对计算能力要求也较高,并且常用价格较低(也可能是低功耗)的处理器,因此要想设计出具有竞争力的消费性媒体产品,往往需要对编解码器软件进行仔细优化。即便是在并非严格要求优化的情况下,优化仍是有益的。通过优化可以降低功耗,将处理器资源解放出来以便添加更多其他特性,或者方便较低价处理器的使用。 软件的效绩性能 编解码器软件的优化过程可以针对几个不同的性能方面进行,如软件运行速度、存储器使用情况、能耗大小以及音频/视频质量。有时,在对某个性能进行优化时,另一种性能也得到了优化,而有时不同性能的优化要求又会产生冲突。大多数情况下,开发商都会主要针对运行速度、存储器的使用和能耗这三个方面进行优化,而信号的音频和视频质量只需保持在一个足够的范围内即可。 为使设备具备实时性,通常需要针对软件实现的运行速度进行大量优化。之所以需要进行如此高级的优化,原因主要有二:一是压缩和解压算法(这些算法需要在很高的数据率下执行复杂的数学操作)对计算能力要求很高,二是产品中通常使用的是性能有限的低成本处理器。 优化过程 优化是一个迭代过程,如图2所示,首先进行软件剖析(profiling),然后分析,接着再进行具体的优化实现,重复这个过程直到软件性能满足要求。 软件剖析 第一步是在功能一级剖析编解码器软件,得到每个子函数所需执行时间占处理器总执行时间的百分比,或者每个子函数被调用的次数。剖析结果通常都能够大致符合80/20规律,即20%的软件占用了处理器80%的执行时间,而剩下80%的软件只占用20%的执行时间。在表2中列出的三大类操作中,S-rate的一类操作通常都是处理器负荷的主要。 在表2这个分类表中,相邻级别的操作发生的频率相差2到3个数量级,因此,每一级别操作的执行成本也相差2到3个数量级。优化I-rate和K-rate操作通常不会对整个软件的执行时间产生什么影响,因为这类函数出现的频率相对较低。但对出现频率很高的S-rate操作就必须进行彻底的优化才能使软件的效率达到最佳。 信号处理函数中通常既有K-rate的操作也有S-rate的操作。根据80/20规律,编解码器软件中只包含相对较少的S-rate函数。利用这一特性,我们就能极大简化优化过程,因为所有函数中,只有很小一部分需要仔细地进行优化。 在媒体应用软件的优化中可以采用许多种优化技术。本文将这些技术分为两大类:处理器无关的软件优化技术和处理器定制的软件优化技术。 500)this.style.ouseg(this)表1 常用的压缩/解压算法。 优化过程通常从剖析后认定的最耗时的函数开始,首先要对函数进行分析,然后才开始制定优化策略。常用的策略是首先考虑采用处理器无关的优化技术,因为这种技术能够保持软件的可移植性。如果还需要进一步优化,才采用处理器定制的优化技术进行高级语言优化,例如算法转换。后者尽管是针对某个特定的处理器进行的,但也不会完全破坏软件的可移植性,只是经过这样优化的软件在其他处理器上可能无法达到良好的性能。最后才考虑在汇编语言一级再进行处理器定制的优化。这种优化能够最大程度地提高软件的效率,但牺牲了软件的可移植性。 处理器无关的优化技术 第一种优化技术就是处理器无关的软件优化。大多数A/V压缩算法都是先用C来实现的,而且通常在初次编写一个编解码器软件时并没有考虑使软件效率达到最优。例如,有些参考实现就是以文档清晰而非软件效率为目的。因此,通过修改或者重写高级语言代码往往就很可能大大降低软件的处理和存储要求。例如,许多编译器都采用了一种叫做强度折减(strength reduction)的优化技术,采用这种技术后,就可能用简单的操作来取代那些耗费资源的操作。但有时编译器做得不够好,或者算法的有关信息不足以让编译器应用强度折减技术。这时一个好的程序员应该能够通过重写代码来避免这些耗费资源的操作。如果通过优化技术回避掉的是S-rate操作,那么带来的资源节省将十分可观。 另外还有一些处理器无关的优化技术,包括函数内嵌和存储缓冲的回收利用。通过内嵌函数来平化函数调用层次,将一些常用的低级操作限制在他们自己函数内部,能够大大加快软件的运行速度。回收存储缓冲主要用于减少存储器的使用,但因为这样同时也改善了存储系统的性能(例如提高缓存命中率)所以缓存回收有时也能帮助加快软件运行速度。处理器定制的优化技术 第二种优化技术是处理器定制的优化技术,可用于高级语言或汇编代码级的优化。 1. 算法修改和转换 顾名思义,算法修改就是修改算法的内部操作,以便更好的配合可用的硬件资源。在算法修改过程中,通常都要在使用存储器和进行

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档