使用NDK编译 libyuv <转>

libyuv是一个开源项目,提供YUV缩放和色彩空间转换功能。它支持使用点、双线性和盒过滤器进行YUV缩放,以便为压缩准备内容。此外,该库还支持从网络摄像头格式转换到YUV,以及从YUV转换为渲染/效果所需的格式。它针对SSE2/SSSE3/AVX2进行了优化,并且在ARM平台上针对Neon进行了优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方源码:http://code.google.com/p/libyuv/
简介:

libyuv is an open source project that includes YUV scaling and conversion functionality.

Scale YUV to prepare content for compression, with point, bilinear or box filter.
Convert to YUV from webcam formats.
Convert from YUV to formats for rendering/effects.
Rotate by 90/180/270 degrees to adjust for mobile devices in portrait mode.
Optimized for SSE2/SSSE3/AVX2 on x86/x64.
<strong>Optimized for Neon on Arm.</strong> Optimized for DSP R2 on Mips.

YUV层的缩放,色彩空间转换(nv21/nv12 to i420,i420 to rgb565/rgb888),针对ARMv7使用NEON指令集优化.

实际项目使用中测试,缩放/转换性能秒杀ffmpeg的libswscale

按官方的编译方法太麻烦,需要装depot tools,ninja 这里直接用android make 方便的多.

默认编译为so动态库,通过LOCAL_SHARED_LIBRARIES在Android.mk中引入,

并且需要在java接口种System.loadLibrary(“yuv”);

加载 也可以修改Android.mk最后一行为include $(BUILD_STATIC_LIBRARY)编译为.a静态库直接链接

也可以加入到你的jni项目中一起编译. github:https://github.com/illuspas/libyuv-android

转载自贝壳博客

--------------------------------

如果单做x86平台的话 建议用libswscale
如果做ARM,x86多平台,用libyuv

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值