优化 Cyberlink PowerDVD 10* 提高了电池续航能力





5.00/5 (1投票)
讯连科技与 Intel 利用多种工具分析和优化 PowerDVD* 的功耗。下文将介绍在 PowerDVD 中添加流媒体功能时遇到的技术挑战以及用于改善应用程序功耗的技巧。
引言
电池续航能力不足是目前普遍困扰移动设备,特别是 Ultrabook™ 设备和平板电脑的严峻问题之一。用户已经习惯于从云端的内容服务器“按需”向其移动设备流式传输多媒体内容。由于这些设备的电池容量有限,因此能效至关重要。讯连科技 PowerDVD 10* (PowerDVD*) 是高清和 3D 电影播放行业的顶级播放器之一。此应用程序通常由 OEM 厂商预装。在本案例研究中,我们将展示 Intel 和讯连科技如何协作优化 PowerDVD* 应用程序,在 Intel 设备上提供一流的体验。
首先,我们将讨论讯连科技在 PowerDVD 中添加流媒体功能时遇到的挑战,以及 Intel 用于改善 PowerDVD 功耗的工具和技术。
接下来,我们将讨论讯连科技 PowerDVD 流媒体应用程序的功耗情况及其对移动设备电池续航能力的影响。我们还将分析 PowerDVD 的行为,以识别导致功耗增加的问题,例如 CPU 解码、大量上下文切换、高中断率等。最后,我们将提供数据,展示优化后功耗的降低情况。
优化取得了巨大成功。Intel 团队在 PowerDVD 上实现了以下改进:
- 媒体播放期间,Package C0 从 100% 降至 20%
- 使用 Intel® Power Gadget 将 SoC 功耗从约 6 W 降至约 1.8 W
- Intel® VTune™ 分析器报告称 CPU 利用率从 70% 降至 25%
- Windows* 性能分析器显示,与本地或流媒体播放的 10 毫秒唤醒频率相比,频繁唤醒(5 毫秒)的频率更低(10%)。
定义
缩写 |
定义 |
---|---|
BLA |
电池续航分析器 |
GPU |
图形处理单元 |
WPA |
Windows 性能分析器 |
DLNA 服务器 |
数字生活网络联盟服务器 |
HD |
高密度 |
SoC |
片上系统 |
帧率 (FPS) |
每秒帧数 |
SDK |
软件开发工具包 |
SKU |
库存单位 |
优化电池续航的挑战
PowerDVD 提供了组织、流媒体、移动设备和社交媒体的新功能。除了作为客户端运行外,最新软件还可以将设备变成 DLNA 服务器,并通过网络将多媒体内容从 PC 流式传输到其他设备。它还可以从外部内容服务器流式传输内容。然而,添加流媒体功能是要付出代价的。高清流媒体等新功能需要运行更多进程,消耗更多的内存和 CPU 周期。这严重影响了电池续航能力。我们需要回答以下问题:
- 1080p 流媒体播放期间 PowerDVD 的功耗是多少?
- 为什么充满电的电池只能播放一个小时的媒体?
经过两个月的三次分析和验证迭代,工程团队通过进行以下更改提高了电池续航能力:
- 将图形卸载到 GPU(使用 Intel® Media SDK)
- 从两个线程中删除了睡眠循环调用
- 使用覆盖层减少额外的内存复制
以下将介绍导致 PowerDVD 优化的过程和工具。
讯连科技 PowerDVD 的功耗优化
测试系统配置
- 第四代 Intel® Core™ i7 处理器
- 联想 Yoga* 2 Pro
- CPU 速度:1.4 GHz 非 Turbo 频率
- 内存 4 GB 显示屏:1920x1080p 高清面板
- 讯连科技 PowerDVD 10 和讯连科技 PowerDVD 12
验证和分析显示:
- 媒体播放期间 Package C0 达到 100%,而我们预计为 20%。
- Intel Power Gadget 显示 SoC 功耗约为 6 W。对于第四代 Intel 处理器,应为约 1.7 W。
- Intel VTune 结果显示未将图形卸载到 GPU,CPU 利用率高达 70%(我们预计约为 10%)。
- Windows 性能分析器测试显示频繁唤醒(5 毫秒)。音频播放时的正常频率为 10 毫秒。
第一步 - 验证
为了理解和解决 PowerDVD 对电池续航能力的影响,我们使用了 Intel Power Gadget 和 Battery Life Analyzer (BLA) 来验证应用程序的 SoC 功耗。图 1 显示了 Windows 平台上的 Intel Power Gadget UI。
作为 PowerDVD 验证的一部分,我们使用 Intel Power Gadget 来确定播放期间的功耗影响。图 2 显示了 Intel Power Gadget 记录的功耗输出。
PowerDVD 播放期间的功耗约为 6 W SoC 功耗。Intel 建议第四代 Intel 处理器(通常用于 Ultrabook 设备上的低功耗处理器)的最高功耗约为 2.0 W。
为了更深入地了解影响功耗的其他活动,我们使用了 Battery Life Analyzer (BLA) 工具来了解媒体播放对驻留时间的影响。了解驻留时间很重要,因为更改 SoC SKU 会影响功耗。
BLA 是 Intel 开发的功耗管理分析工具,用于识别影响电池续航能力的问题。BLA 在软件分析期间有助于识别各种问题,例如:
- 软件 CPU 利用率
- 操作系统计时器分辨率更改
- 频繁的 C 状态转换
- 过度的 ISR/DPC 活动
图 3 显示了使用讯连科技 PowerDVD 进行 1080p 高清视频播放期间的软件包驻留时间。
软件包驻留时间包括 CPU、图形和 UnCore 事件。Package C0 停留时间越长,SoC 功耗就越高。对于第四代 U-Processor,讯连科技 PowerDVD 1080p 播放的预期软件包 C0 驻留时间约为 20%。从图 3 可以看出,软件包驻留时间远高于应有的水平。
Intel Power Gadget 和 BLA 都证实了功耗较高,在 42 Whr(瓦时)电池容量下,约 6 W SoC + 3 W 显示屏和 2+ W 的其他组件,电池续航能力约为 4 小时。
我们的下一步是分析应用程序以进行功耗优化。
第二步 - 分析
在分析阶段,我们使用了两种工具:
下表总结了分析结果,这些结果表明有明显的改进空间。
实际结果 |
预期结果 |
---|---|
媒体播放期间 Package C0 达到 100% |
媒体播放期间 Package C0 应为 20% |
使用 Intel® Power Gadget 的 SoC 功耗约为 6 W |
对于第四代 Intel 处理器,SoC 功耗应为约 1.7 W |
分析工具 |
观察 |
---|---|
Intel VTune 结果 |
|
Windows 性能分析器 |
频繁唤醒(5 毫秒)——音频播放时的预期频率为 10 毫秒。 |
接下来的几张图将逐步展示我们分析中的一些重要截图。
Intel VTune 分析器用于验证 PowerDVD 应用程序是否存在自旋等待、硬件加速以及热点(微架构问题)。图 4 显示了收集图形调用堆栈的步骤。
图 5 显示了 VTune 摘要,其中大部分时间花在了自旋循环上。GPU 使用率显示没有编解码器使用。GPU 上花费的大部分时间用于显示和播放期间的其他预处理算法。
深入分析,Intel VTune 显示媒体播放期间 CPU 利用率很高,并且 VSync(图 5 中的红色高亮)和 GPU 软件队列未每约 33 毫秒(30 FPS 播放)发生。此分析显示了媒体播放期间的软件故障。
查看图 7,摘要报告确认帧速率随时间不一致。30 FPS 电影播放的 FPS 在 0-60 FPS 之间变化。图表显示应用程序中以特定帧速率执行的总帧数。大量慢帧或快帧表明存在性能瓶颈。目标是优化代码以保持帧速率恒定,例如从 30 到 60 FPS。
接下来,我们使用 Windows 性能分析器 (WPA) 工具来分析应用程序的唤醒活动、中断和上下文切换。图 8 显示了使用基于 CPU 的 Intel® SSE 指令进行 H264 解码。将此工作卸载到 GPU 比在 CPU 上运行更有效。
WPA 还显示了播放期间 PowerDVD 的唤醒活动。图 9 显示了两个 PowerDVD 线程,均以 10 毫秒运行。这两个线程未合并,导致整个系统在 5 毫秒的计时器间隔内唤醒。图 10 显示了调用堆栈,其中睡眠循环 Win32* API 每 10 毫秒间隔调用一次。
表 3 显示了优化后软件包驻留时间的显著减少。
C 状态计数器 |
优化前平均值(%) |
优化后平均值(%) |
---|---|---|
PackageC0-C1 |
100% |
20.18% |
PackageC0-C2 |
0% |
8.29% |
PackageC0 C3 |
0% 0% |
0.19% |
PackageC0 C6 |
0% |
1.91% |
PackageC0 C7 |
0% |
69.43% |
优化结果/验证
下表显示了“优化前”和“优化后”的结果。
优化前 |
优化后 |
---|---|
媒体播放期间 Package C0 达到 100% |
Package C0 降至 20% |
SoC 功耗约为 6 W |
在测试系统中,SoC 功耗降至约 1.8 W |
以前 |
操作后 |
|
---|---|---|
Intel® VTune™ Amplifier |
|
|
Windows 性能分析器 |
频繁唤醒(5 毫秒)——音频播放时的预期频率为 10 毫秒。 |
移除了睡眠线程——唤醒次数减少了 2 倍(从 5 毫秒到 10 毫秒) |
电池续航分析器 |
软件包驻留时间 100% |
软件包驻留时间约 20% |
1 性能测试中使用的软件和工作负载可能已针对 Intel 微处理器进行了性能优化。SYSmark* 和 MobileMark* 等性能测试使用特定的计算机系统、组件、软件、操作和功能进行测量。更改其中任何一个因素都可能导致结果有所不同。您应参考其他信息和性能测试,以协助您全面评估您打算购买的产品,包括该产品与其他产品结合使用时的性能。有关更多信息,请访问 **http://www.intel.com/performance**
我们通过以下方式进行了优化:
- 使用 Intel Media SDK 将图形卸载到 Intel® HD Graphics
- 优化导致 CPU 定期唤醒的 Win32 API 调用
- 使用覆盖层节省每帧的内存复制
第一个任务是使用 Intel Media SDK 将解码卸载到图形,这将提供更好的 Intel HD 图形的效率/瓦特使用率。图 11 中的伪代码提供了一个简单的 Intel Media SDK 用途示例,即将帧流卸载到图形。
一旦我们使用 Intel Media SDK 将其卸载到图形,我们就运行了 PowerDVD 并使用 Intel VTune Amplifier 测量了结果。与图 5 中未看到任何编解码器使用的情况相比,现在我们在摘要中看到了视频增强(图 12)。
查看其他 Intel VTune 图形视图,我们验证了通过使用 Intel Media SDK [做什么?] 在 GPU 上解码帧而不是在 CPU 上解码。图 13 显示了一批帧在 GPU 上约 20 毫秒后解码。将解码工作卸载到 GPU 有助于将测试系统的 CPU 利用率降低约 25%。
为了验证我们图形卸载的优化,我们运行了 Intel Power Gadget。与图 2 中显示的基线结果相比,仅通过图形卸载就节省了约 2 W 的功耗(图 14)。
我们取得了不错的进展,但约 4 W 仍然不够低。如前所述,流媒体 1080p 播放的目标是约 1.7 W 的 SoC/软件包功耗。
下一步是寻找其他基于 CPU 的优化。初步分析显示,来自两个线程(非合并)的睡眠循环调用每 5 毫秒唤醒一次 CPU。讯连科技工程师需要从他们的应用程序中删除睡眠线程。然而,这是最困难的更改之一,因为它需要修改应用程序的结构。图 15 显示,在移除了周期性活动后,唤醒活动增加到 10 毫秒。
移除周期性活动可节省约 800 mW。通过当前的优化,1080p 高清流媒体播放的 SoC 功耗从约 6 W 降至 2.8 W,但仍需进行其他优化才能达到一流应用程序中的 1.7 W 目标。
下一步是使用覆盖层减少额外的内存复制。使用覆盖层后,总体软件包功耗降低了约 400 mW。图 17 显示功耗从约 6 W 降至约 1.8 W。
至此,最重要的优化目标已达成,Intel 和讯连科技工程师认为该项目取得了成功。
讯连科技和 Intel 之间的紧密合作帮助在两个月内完成了优化并进行了全面验证。所有优化完成的最终产品在项目启动六个月后发布给 OEM 厂商。
结论
Intel 和 PowerDVD 工程师使用了包括 Intel VTune 和 Microsoft Windows Performance Analyzer 在内的多种工具,以实现最佳的低功耗播放。合作包括通过每周的分析/会议进行工具知识共享,以在发布截止日期前达到电池续航目标。
在团队满意其结果(PowerDVD 功耗从约 6 W 降至约 1.8 W)之前,完成了多个迭代。Intel 和讯连科技工程师面临的挑战是保持优化前后播放质量不变。每项优化都需要进行验证和分析,才能通过讯连科技团队的内部质量测试。因此,跟踪了每一项更改,并评估了用户体验指标(功耗和性能)。
以下优化被发现对实现优化目标最有效,但如上所述,这些优化是在多个迭代中完成的:
- 将图形卸载到 GPU(使用 Intel Media SDK)
- 从两个线程中删除睡眠循环调用
- 使用覆盖层减少额外的内存复制
Intel 和讯连科技 PowerDVD 团队的共同努力,将他们的流媒体播放应用程序优化到了行业领先水平。
关于作者
![]() |
Manuj Sabharwal 是 Intel 软件解决方案部门的软件工程师。Manuj 一直致力于探索闲置和活动软件工作负载的功耗提升机会。他在能效方面拥有丰富的研究经验,并在行业中提供过教程和技术讲座。他还致力于通过软件优化技术来赋能客户端平台。 |
![]() |
Gael Hofemeier 自 2000 年起在 Intel 软件解决方案部门担任应用工程师。Gael 目前专注于面向企业客户端应用程序和技术的技术宣传。 |
参考文献
- Windows 性能分析器:http://www.microsoft.com/en-us/download/details.aspx?id=30652
- 电池续航分析器:http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=19351
- Intel® Power Gadget:https://software.intel.com/en-us/articles/intel-power-gadget-20
- 讯连科技 PowerDVD:http://www.cyberlink.com/products/powerdvd-ultra/features_en_US.html?&r=1
- Intel® Media SDK:https://software.intel.com/en-us/vcsource/tools/media-sdk-clients
相关 Intel 链接
能效软件开发:https://software.intel.com/en-us/energy-efficient-software
Windows* 功耗分析指南: https://software.intel.com/en-us/articles/power-analysis-guide-for-windows
Windows 8* 软件功耗优化:https://software.intel.com/en-us/articles/windows-8-software-power-optimization
Intel 处理器编号:http://www.intel.com/products/processor_number/
Intel Developer Zone
Intel® Developer Zone 提供跨平台应用程序开发工具和操作指南、平台和技术信息、代码示例以及同行专业知识,以帮助开发人员进行创新并取得成功。加入我们的社区,了解 物联网、Android*、Intel® RealSense™ 技术和 Windows*,下载工具,获取开发套件,与志同道合的开发人员交流想法,并参与黑客马拉松、竞赛、路演和本地活动。
声明与免责条款
http://legal.intel.com/Marketing/notices+and+disclaimers.htm
Intel、Intel 徽标、Ultrabook 和 VTune 是 Intel Corporation 在美国和其他国家/地区的商标。
*其他名称和品牌可能被声明为他方财产
版权© 2014 Intel Corporation。保留所有权利。