官方源碼: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