【发布时间】:2012-11-15 16:05:06
【问题描述】:
我正在尝试将 NV21 图像从 LG 3D Android 手机转换为位图,以便通过 TCP 套接字将其发送到计算机。
目前它必须经过 NV21->YUV->JPEG->ByteBuffer->位图转换,这只是在消耗 CPU,有没有更好的方法来减少一些转换?
谢谢
【问题讨论】:
标签: android image-processing android-camera android-image
我正在尝试将 NV21 图像从 LG 3D Android 手机转换为位图,以便通过 TCP 套接字将其发送到计算机。
目前它必须经过 NV21->YUV->JPEG->ByteBuffer->位图转换,这只是在消耗 CPU,有没有更好的方法来减少一些转换?
谢谢
【问题讨论】:
标签: android image-processing android-camera android-image
也许计算机可以直接接受 NV21 缓冲区?如果您坚持使用Bitmap格式,请注意Android位图与Windows位图不同。如果在Android端需要RGB,可以使用这里描述的recepy:yuv to rgb in assembler
【讨论】:
您可以使用 RenderScript 直接将 NV21 转换为位图(或字节数组)。在具有 720p 图像的 SGS3 上,我能够获得大约 20 FPS。
RenderSctipt 是一个 Android 子系统,主要作为 CPU 代码的本机运行(在某些神奇的情况下甚至在 GPU 上),并且可以很好地并行化以使用所有可用的内核。
您可以在这里阅读更多相关信息 - Converting camera YUV-data to ARGB with renderscript
【讨论】: