问题描述
我在 Android 上使用 camera2 api 来捕获图像,需要对图像进行一些操作,例如调整大小和裁剪。
我的应用程序对性能非常敏感,所以我想避免转换为 RGB 格式(位图)。 由于内存占用的考虑,我的意图是仅在图像的 Y 通道上工作。
有人可以建议在 Android 上的 Y 频道操作的现有实现吗?
解决方法
看看https://chromium.googlesource.com/libyuv/libyuv/:
libyuv 是一个开源项目,包括 YUV 缩放和转换功能。
- 缩放 YUV 以准备压缩内容,使用点过滤器、双线性过滤器或盒式过滤器。
- 从网络摄像头格式转换为 YUV 以进行压缩。
- 转换为 RGB 格式以进行渲染/效果。
- 旋转 90/180/270 度以适应处于纵向模式的移动设备。
- 针对 x86/x64 上的 SSSE3/AVX2 进行了优化。
- 针对 Neon on Arm 进行了优化。
- 针对 Mips 上的 MSA 进行了优化。
它也可以在 Android 上运行。