Quantcast
Channel: 英特尔开发人员专区文章
Viewing all articles
Browse latest Browse all 583

JumpChat案例 – 在基于英特尔® Atom™ 处理器的设备上使用MediaCodec进行硬件解码

$
0
0

下载 PDF[PDF 416KB]

Christine M. Lin,软件工程师

简介

在 Android* 平台上,处理视频流的通信应用可充分利用英特尔® 凌动™ 处理器上的硬件加速功能。 这样可以轻松提升性能,同时降低 CPU 利用率和功耗。

2014 年秋季,英特尔与 WebRTC 视频聊天 ISV JumpChat 联手合作,共同优化了其 Android 应用在英特尔凌动处理器 E3800 平板电脑上的性能。 经过此番努力,我们将双向高清视频聊天应用的 CPU 利用率降低了 10%,功耗降低了 1.3 瓦。 本案例研究描述了我们与 JumpChat 是如何合作实现上述成果的,旨在向您展示借助 MediaCodec 能够非常轻松地为支持的编解码器提供硬件加速。

JumpChat

JumpChat 是一款适用于 Android、iOS* 和 Chrome*、Firefox* 以及 Opera* 浏览器的视频会议应用。 借助这款应用,用户无需任何登陆或账户便可视频聊天。 如要发起视频通话,您只需向接受者发送房间 URL,即创建一个保证安全和加密的连接。 其中一个突出的特性是 JumpChat 在视频会议期间支持桌面共享和文件传输。

凌动处理器 E800 上的软件解码

JumpChat 首先做的一件事是将应用移植到 x86 架构,以便支持高清视频会议。 此外,我们还进行了多项 UI 改进和漏洞修复。 使用 1.0.7 版,我们在两台使用平均带宽 (500 kbps) 的 KitKat 灵动处理器 E3800 平板电脑之间实现了基准双向视频通话。 较之本地非 WebRTC 竞争产品,图像质量良好,无视频延迟或音频延迟,并且在使用一段时间后设备温度没有明显升高。 使用 NI_DAQ* 仪表系统获得的电源和性能采集结果显示,视频通话期间整体 CPU 利用率为 60%,功耗约为 7.0 瓦:

为了降低功耗和 CPU 利用率,我们特别注意了运行期间最为活跃的模块。 目前,libjingle_peerconnection_so.so (谷歌的 WebRTC 代码)是最活跃的模块,约占活跃 JumpChat 进程时间的 56%。 许多 JumpChat 线程以超过 60Hz 屏幕刷新率的频率运行,这样会阻止 CPU 进入睡眠状态。

MediaCodec

为了降低 CPU 利用率以及将可能的编码/解码活动卸载至 GPU,我们决定研究硬件加速的解码对当前正使用的软件编解码器会有多大的影响。 由于该应用是在 WebRTC 上实施的,所以 JumpChat 主要使用VP8 编解码器。 凌动处理器 E3800 平板电脑支持硬件加速的 VP8 解码,但不支持硬件加速的 VP8 编码。 1.0.8 版 JumpChat 通过 MediaCodec 支持面向 x86 和 ARM* 的硬件加速解码。 Android 的 MediaCodec 类可用于访问低级别的媒体组件。 借助 Java* 在您的设备上选择硬件解码器,使用 getSupportedTypes 评估器查询适合 MIME 类型(在本案例中是 VP8_MIME_TYPE)的 MediaCodecInfo。 面向凌动处理器 E3800 平板电脑的英特尔硬件加速编码器和解码器以前缀 “OMX.Intel” 开头,且返回字符串为 OMX.Intel.VideoDecoder.VPX。 照常创建和配置解码器初始化属性。

凌动处理器 E3800 上的硬件解码

使用 1.0.8 版 JumpChat 对两台相同的 KitKat 凌动处理器 E3800 设备进行了另一次 NI_DAQ 采集,结果显示视频通话期间整体 CPU 利用率为 51%,功耗约为 5.6 瓦。

较之软件解码器,使用硬件加速解码器将 VP8 解码卸载至 GPU 可将 CPU 利用率降低约 10%,功耗降低约 1.3 瓦。 凌动处理器 E800 后续平台配有 VP8 的硬件加速编码器,在降低利用率和功耗方面的效果可能会更明显。1

1性能测试中使用的软件和工作负载可能仅在英特尔® 微处理器上针对性能进行了优化。 诸如 SYSmark 和 MobileMark 等测试均系基于特定计算机系统、硬件、软件、操作系统及功能, 上述任何要素的变动都有可能导致测试结果的变化。 请参考其他信息及性能测试(包括结合其他产品使用时的运行性能)以对目标产品进行全面评估。 更多信息敬请登录 http://www.intel.com/performance

结论

对于处理大量视频流的应用,通过 MediaCodec 使用平台支持的硬件加速解码器和编码器可轻松降低 CPU 利用率和功耗。


Viewing all articles
Browse latest Browse all 583

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>