Android相机帧渲染

时间:2015-03-04 20:00:13

标签: android opengl-es android-ndk android-camera surfaceview

我正在尝试在Android中渲染我的相机帧,并使用canvas,bitmap,onDraw()在Surfaceview上显示帧。然而,我在Native端进行渲染的代码性能占用了我的cpu的70%。渲染速度很好,但CPU消耗很差。问题是我有另一个覆盖的surfaceview(surfaceview2)在我渲染和捕获相机时显示其他内容。我想知道如何减少CPU消耗并更多地使用gpu等。到目前为止可能的解决方案是: a)使用opengl在surfaceview上绘制我的帧,但资源和示例代码有限 b)使用原生方绘制我的框架,但也有限的资源

有谁知道如何使用上述技术执行YV12到rbg?

1 个答案:

答案 0 :(得分:0)

许多现代GPU可以原生解码YUV;问题是如何将YUV表面转换为OpenGL ES,因为这通常不是Open GL ES所做的......

大多数操作系统(包括Android)允许您通过EGL_image_external扩展将外部表面导入OpenGL ES,并且这些外部表面可以标记为YUV。

唯一的问题是,我并不完全确定它在Android方面是如何工作的(对不起) - 所以其他人必须回答这个问题。我只知道图形驱动程序方面 - 只知道它可以在大多数现代移动GPU上使用。