Android:GraphicBuffer 数据格式
Posted
技术标签:
【中文标题】Android:GraphicBuffer 数据格式【英文标题】:Android: GraphicBuffer data format 【发布时间】:2014-01-07 08:54:53 【问题描述】:据我所知,android 中有 2 个图形引擎:OpenGL ES 和 Skia。两者都提供了一套绘图API,并将图形数据输出到底层的GraphicBuffer。我的问题是 GraphicBuffer 的数据格式是什么?有标准吗?
【问题讨论】:
你为什么不自己做研究呢?我们不是来为你做的,也不是教你各种东西以及它们是如何工作的! @Vallentin 你对这个问题投了反对票是不公平的。我不认为这有什么问题。我在这里问之前做了我的研究。 所以你说投反对票是不公平的,因为你没有阅读关于如何提问和提问什么的 SO 指南?并且因为您根本没有遵守准则! @Vallentin 您有权否决这个问题,但显然这个问题符合所有准则! “不要问...您还没有尝试找到答案的问题(展示您的作品!)”...“您的作品”在哪里?你尝试了什么? 【参考方案1】:OpenGL 不是图形引擎,它是直接与 GPU 对话的绘图 API。它不像 OpenGL 是一个库,通过该库可以绘制某种格式的图像,然后 然后 将其加载到图形处理器上。 OpenGL 通常直接在图形处理器上运行。
Skia 然而确实是一个图形引擎。它可以在软件中渲染到像素缓冲区或 PDF。或者它可以进行 OpenGL 调用,这是它通常在 Android 上所做的。
图形缓冲区对象实际上是一个抽象句柄,它表示保存图形数据的实际内存。但是没有“标准格式”;每个 GPU 可能有自己的首选布局。重要的参数是每种 RAW 图像格式的参数:原点、行长、步幅、通道数、每个通道的位数、像素数据对齐方式。
然而,最常见的格式是 BGRA,每像素 8 位,stride == 行长度,4 字节数据对齐。但对于作为开发人员的你来说,操作系统在幕后使用什么并不重要。
【讨论】:
以上是关于Android:GraphicBuffer 数据格式的主要内容,如果未能解决你的问题,请参考以下文章
为啥从GraphicBuffer里memcpy拷贝数据效率特别低
Android中的GraphicBuffer同步机制-Fence