> For the complete documentation index, see [llms.txt](https://wangwei1237.gitbook.io/digital_video_concepts/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wangwei1237.gitbook.io/digital_video_concepts/shi-pin-bian-ma-xing-neng/5_3_0_performanceconsiderations.md).

# 对性能的考虑

在视频编码和处理应用中，性能优化的目的在于通过适当地改变编码器的设计或实现，以提高编码速度。单纯增加处理器的频率并不会获得性能最佳的编码方案。并且如前所述，CPU的频率增长会存在上限。因此，需要探索其他的性能增强方法。需要注意的是，某些技术所做的必要的设计修改相对便宜，而其他技术则可能需要大量投资。例如，获得更高性能的低成本的方法包括：编码任务并行化，调整任务的调度，优化各个任务的资源利用率等。当然，也可以利用更复杂的专用硬件单元实现更高的性能。但是，这些专用硬件单元的制造成本更高。性能优化需要考虑：如何明智地选择技术方案，从而能够以最低开销提供最高性能。但是，根据应用程序的性质和可用的资源，可能需要支付大量的资金才能获得预期的性能。例如，更大的缓存可能有助于达到某些性能目标，但同时意味着可能会花更多的钱。因此，在任何性能优化的方案中，必须做出仔细的权衡。

一般不会只考虑性能优化，性能优化一般会与视觉质量和功耗放在一起研究。例如，具备更高频率的CPU或GPU可以提供更快的编码速度，但同时也将消耗更多的电量。因此，在系统设计和架构级别上，需要在能量消耗和编码速度之间进行权衡。如今的视频应用程序一般运行在资源受限的计算平台之上。当可用的系统资源处于活动状态时最大化其利用率，当系统资源再不需要时则使其进入休眠状态。可以通过如上的方式来获得性能和功耗之间的权衡。

调整某些视频编码参数（例如码率，量化参数）也可以实现更高的编码速度。丢弃大部分的高频细节后，只需要处理更少的信息，从而提升编码速度。但是，这种调整编码参数的方法会直接影响得到的视频的视觉质量。因此，使用该技术时，需要在视觉质量和性能之间做好权衡。

在给定的时间段内，编码性能最大化的方式主要有三种：

* 确保在工作负载期间充分利用可用的系统资源（CPU和内存）。但是，根据工作负载的不同，资源利用也会有所不同。例如，编码应用程序应以CPU执行周期的100%的占空比(*duty cycle*)的方式运行（100%占空比意味着CPU在整个周期内均处于运行状态）。如前所述，这种性能最大化需要考虑电量优化。例如，CPU在必要时以100％的占空比运行，并在之后快速进入休眠状态。但是，实时播放应用可能只会使用一小部分的资源（比如10％的占空比）。此时需要重点考虑的是应用的节能，而不是应用的性能优化。
* 如果可以，那就使用专门的资源。专用资源通常权衡任务的性能和功耗，因此可以在不需要明确权衡的情况下提供性能改进。
* 根据应用的需求来调整部分视频参数，从而提高编码速度。但是，编码参数的调整可能会影响视频的视觉质量、编码器的压缩率、以及应用的功耗。此时，需要对各种因素做仔细的权衡。
