0

我正在尝试将 NV21 图像从 LG 3D Android 手机转换为位图,以便我可以通过 TCP 套接字将其发送到计算机。

目前它必须经过 NV21->YUV->JPEG->ByteBuffer->Bitmap 转换,这只会杀死 CPU,有没有更好的方法来减少一些转换?

谢谢

4

2 回答 2

1

也许计算机可以直接接受 NV21 缓冲区?如果您坚持使用Bitmap格式,请注意Android位图与Windows位图不同。如果你在Android端需要RGB,你可以使用这里描述的recepy:yuv to rgb in assembler

于 2012-11-15T19:52:28.907 回答
0

您可以使用 RenderScript 直接将 NV21 转换为位图(或字节数组)。在具有 720p 图像的 SGS3 上,我能够获得大约 20 FPS。

RenderSctipt 是一个 Android 子系统,主要作为 CPU 代码的本机运行(在某些神奇的情况下甚至在 GPU 上),并且可以很好地并行化以使用所有可用的内核。

你可以在这里阅读更多关于它的信息 - Converting camera YUV-data to ARGB with renderscript

于 2013-12-26T20:35:25.467 回答