在视频编码和处理应用中,性能优化的目的在于通过适当地改变编码器的设计或实现,以提高编码速度。单纯增加处理器的频率并不会获得性能最佳的编码方案。并且如前所述,CPU的频率增长会存在上限。因此,需要探索其他的性能增强方法。需要注意的是,某些技术所做的必要的设计修改相对便宜,而其他技术则可能需要大量投资。例如,获得更高性能的低成本的方法包括:编码任务并行化,调整任务的调度,优化各个任务的资源利用率等。当然,也可以利用更复杂的专用硬件单元实现更高的性能。但是,这些专用硬件单元的制造成本更高。性能优化需要考虑:如何明智地选择技术方案,从而能够以最低开销提供最高性能。但是,根据应用程序的性质和可用的资源,可能需要支付大量的资金才能获得预期的性能。例如,更大的缓存可能有助于达到某些性能目标,但同时意味着可能会花更多的钱。因此,在任何性能优化的方案中,必须做出仔细的权衡。
一般不会只考虑性能优化,性能优化一般会与视觉质量和功耗放在一起研究。例如,具备更高频率的CPU或GPU可以提供更快的编码速度,但同时也将消耗更多的电量。因此,在系统设计和架构级别上,需要在能量消耗和编码速度之间进行权衡。如今的视频应用程序一般运行在资源受限的计算平台之上。当可用的系统资源处于活动状态时最大化其利用率,当系统资源再不需要时则使其进入休眠状态。可以通过如上的方式来获得性能和功耗之间的权衡。
调整某些视频编码参数(例如码率,量化参数)也可以实现更高的编码速度。丢弃大部分的高频细节后,只需要处理更少的信息,从而提升编码速度。但是,这种调整编码参数的方法会直接影响得到的视频的视觉质量。因此,使用该技术时,需要在视觉质量和性能之间做好权衡。
在给定的时间段内,编码性能最大化的方式主要有三种:
- 确保在工作负载期间充分利用可用的系统资源(CPU和内存)。但是,根据工作负载的不同,资源利用也会有所不同。例如,编码应用程序应以CPU执行周期的100%的占空比(duty cycle)1的方式运行(100%占空比意味着CPU在整个周期内均处于运行状态)。如前所述,这种性能最大化需要考虑电量优化。例如,CPU在必要时以100%的占空比运行,并在之后快速进入休眠状态。但是,实时播放应用可能只会使用一小部分的资源(比如10%的占空比)。此时需要重点考虑的是应用的节能,而不是应用的性能优化。
- 如果可以,那就使用专门的资源。专用资源通常权衡任务的性能和功耗,因此可以在不需要明确权衡的情况下提供性能改进。
- 根据应用的需求来调整部分视频参数,从而提高编码速度。但是,编码参数的调整可能会影响视频的视觉质量、编码器的压缩率、以及应用的功耗。此时,需要对各种因素做仔细的权衡。
Footnotes
-
占空比(duty ratio)指的是信号周期中,高电平和该周期内高、低电平所占的时间的比率,占空比越大,电路开通时间就越长,整机性能就越高。 ↩