音视频的功耗优化

前言

在应用中,录制与音视频模块往往是高耗能的模块,设备容易发热,影响体验。

什么是功耗优化

手机有多个耗电模块, SOC(CPU,GPU,DDR),Display,Audio,Video,Camera, WIFI 等,通过参数配置优化、代码优化等手段提升元器件的使用效率、降低负载,从而降低耗能。

为什么要进行功耗优化

  • 降低发热
  • 提升用户使用时长
    最终目标是通过优化QOS获得QOE收益。

如何进行功耗优化

在音视频上,可从以下几个方面考虑:

  • 在分辨率方面,保持输入、处理与输出环节的分辨率一致,并在不同场景下使用最优分辨率,不作下采样甚至是上采样。
  • 在帧率方面,不同应用场景使用不同的帧率,能用15帧就用15帧,能动态调整帧率就动态调用。
  • Codec方面,尽量采用硬编硬解,并权衡使用H264/H265. 在Android平台上,用Surface不用ByteBuffer。
  • 图形数据方面,能用GPU的不用CPU,用OpengGL好过vImage(iOS),尽量避免数据颜色格式转换(譬如YUV转RGBA)。
  • 音频方面,采样率在链路上保持一致,避免重采样,譬如冗余Buffer拷贝,采样率可降级使用,3A处理是CPU占用大头。
  • 优化内存使用方面,减小冗余线程及线程间切换,频繁小Buffer申请与释放优化为内存池处理,减小重复调用/空调用/冗余调用,找出冗余的拷贝操作进行优化,根据Instrument Profile或者SystemTrace找出高耗函数或者冗余调用或者可降频函数进行优化。
  • Camera方面,优化配置参数,能不开启抖动检查等优化算法就不开启,不需要采集的时候确保采集通路是关闭的,而不是隐藏地开启的。
  • 高耗能场景进行降级操作,不同分辨率场景使用不同精度的特效模型,采集分辨率与帧率降级。
  • 日志治理,有的模块可能上报或者记录大量的日志埋点数据,劣化IO传输或者CPU占用。
    在整个应用方面,可参考以下抖音案例总结:

    链接:https://juejin.cn/post/7104618668835176456

总结

先整体梳理,从耗能大头入手,小修改可获取大收益,利用Time Profile或者火焰图可以深入挖掘可优化点。

相关推荐
I Am a robert girl4 分钟前
当视频预测遇上辛几何:拆解 LHFM 的拉格朗日-哈密顿流框架
深度学习·计算机视觉·音视频·视频预测·辛几何·哈密顿力学·拉格朗日力学
DogDaoDao11 分钟前
声音、图像、视频是如何形成的:从物理量到比特流的完整链条
图像处理·数学·音视频·音频·数字信号处理·视频处理·音视频编解码
yikegis14 分钟前
手机拍视频太多,内存不够用了怎么办?(怎么压缩视频)
智能手机·音视频
音视频牛哥1 小时前
从 RTSP、RTMP 到 WHIP:SmartMediaKit 的技术演进与工程实践
音视频·whip推流·whep播放器·rtsp转whip推流·rtmp转whip推流·安卓摄像头推送whip·webrtc推流
公子小六1 小时前
基于.NET的Windows窗体编程之WinForms自定义控件(3)
windows·c#·.net·音视频·winforms
jiangyoushushu1 小时前
FLAC手机播不了?转成MP3会更方便
音视频·音频
2601_965619699 小时前
把开源项目Changelog自动做成更新视频,AI工作流
人工智能·开源·音视频
小豆庄11 小时前
视频人脸打码追踪:转场丢失、漏检和ID撞号的处理
目标检测·计算机视觉·开源·音视频·视频·python3.11
微帧Visionular13 小时前
AI视频反复抽卡太贵,哪些问题可以用后处理修复?
人工智能·音视频
视频技术分享15 小时前
基于RTC SDK快速搭建实时协作应用:开发踩坑与选型思考
音视频·实时音视频