使用libyuv替换sws_scale提高性能

作者: 熊皮皮 | 来源:发表于2017-02-14 21:11 被阅读788次

使用FFmpeg的sws_scale进行YUV等转换时,从执行日志上看,在Android设备上运行性能较低,如下所示,单位为毫秒。

sws_scale耗时图示

对于实时性要求较高的场合,可考虑使用libyuv等NEON指令实现的库。

libyuv耗时图示

对比可发现libyuv相对sws_scale有数十倍性能改善。

使用libyuv接口时得注意它参数定义,以NV21ToI420为例,其定义如下。参数src_stride_y和src_stride_vu都应该传递源Y平面的宽。

// Convert NV21 to I420.
LIBYUV_API
int NV21ToI420(const uint8 *src_y, int src_stride_y,
               const uint8 *src_vu, int src_stride_vu,
               uint8 *dst_y, int dst_stride_y,
               uint8 *dst_u, int dst_stride_u,
               uint8 *dst_v, int dst_stride_v,
               int width, int height);

相关文章

  • 使用libyuv替换sws_scale提高性能

    使用FFmpeg的sws_scale进行YUV等转换时,从执行日志上看,在Android设备上运行性能较低,如下所...

  • 2017.5.4

    真真不懂,转码(YUV TO ABGR)一帧,说好的libyuv性能比较好呢。结果: sws_scale 比 li...

  • 2017.5.3

    arm neon优化已做。sws_scale太慢,明天换libyuv测试时间不然就不用avwindow,直接用SD...

  • libyuv使用

    RGBA转I420,缩放后转NV12 RGB直接缩放后转NV12

  • Volley学习记录

    当你替换一个框架、使用一个框架的理由是什么呢?做了哪些准备和调研 性能上的优化使用场景:用retrofit来提高性...

  • android 相机预览编译 libyuv 处理 YUV 数据

    libyuv 源码: https://chromium.googlesource.com/libyuv/libyu...

  • Android ndk cmake编译libyuv

    下载源码:https://chromium.googlesource.com/libyuv/libyuv 将lib...

  • Android技巧 - 收藏集 - 掘金

    Android 中使用 ViewStub 提高布局性能 - Android - 掘金在 Android 开发中, ...

  • jQuery性能优化

    使用合适的选择器 不同的选择器有性能差异,以下为性能从好到坏: $("#id")使用id来定位无疑是最佳提高性能的...

  • Android性能优化记录

    ListView 性能优化:1.使用RecyclerView,使用ViewHolder2.为了提高流畅度,在滑动的...

网友评论

本文标题:使用libyuv替换sws_scale提高性能

本文链接:https://www.haomeiwen.com/subject/norfwttx.html