YUV和libyuv相关了解

1.YUV

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

2.libyuv

2.1 libyuv

libyuv官网:https://chromium.googlesource.com/libyuv/libyuv/

github地址:https://github.com/lemenkov/libyuv

2.2 libyuv简介

libyuv是一个谷歌的开源项目,包括YUV缩放和转换功能。

  • 缩放YUV以准备压缩内容,使用点,双线性或盒式过滤器。
  • 从网络摄像头格式转换为YUV以进行压缩。
  • 转换为RGB格式以进行渲染/效果。
  • 旋转90/180/270度可在纵向模式下调整移动设备。
  • 针对x86/x64上的SSSE3/AVX2进行了优化
  • 针对ARM上的NONE进行了优化
  • 针对Mips上的MSA进行了优化

libyuv是Google开源的实现YUV与RGB之间相互转换、旋转、缩放的库;

2.3 编译平台

可以在windows、Linux、Mac、Android等操作系统使用,是跨平台的;

支持x86、x64、arm架构上进行编译运行;

2.4 libyuv优点

使用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的需求。

 

 

 

你可能感兴趣的:(YUV,直播,第三方lib,YUV,LibYUV)