YUV是一种颜色编码方法;
关于YUV参考:https://docs.microsoft.com/en-us/windows/win32/directshow/yuv-video-subtypes
和https://docs.microsoft.com/zh-cn/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering
libyuv官网:https://chromium.googlesource.com/libyuv/libyuv/
github地址:https://github.com/lemenkov/libyuv
libyuv是一个谷歌的开源项目,包括YUV缩放和转换功能。
缩放YUV以准备压缩内容,使用点,双线性或盒式过滤器。从网络摄像头格式转换为YUV以进行压缩。转换为RGB格式以进行渲染/效果。旋转90/180/270度可在纵向模式下调整移动设备。针对x86/x64上的SSSE3/AVX2进行了优化针对ARM上的NONE进行了优化针对Mips上的MSA进行了优化libyuv是Google开源的实现YUV与RGB之间相互转换、旋转、缩放的库;
可以在windows、Linux、Mac、Android等操作系统使用,是跨平台的;
支持x86、x64、arm架构上进行编译运行;
使用Java进行Bitmap转换为YUV时,一张1440 x 900 的Bitmap耗时大概35 ~ 45ms左右,而使用libyuv则花费14~22 ms左右,性能提升一倍,而更暴力的来了,如果同时进行拉伸缩放和格式转换,例如1440 x 90 —> 480 x 270,可以实现 5 ~ 13 ms,性能提升了3 ~ 6倍。这意味着1000 ms可以满足我们不低于25FPS的需求。