有谁知道以不需要混合的方式将 2vuy 非平面数据推送到 GPU 的有效方法?
我正在从 h264 视频文件中获取原始 2vuy 数据,并成功地将其加载到我映射到 OpenGL 对象的纹理中。我注意到我的代码在glgProcessPixelsWithProcessor
. 我的glTexImage2D
电话如下所示:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_YCBCR_422_APPLE,
GL_UNSIGNED_SHORT_8_8_APPLE, data);
Apple 在其 OpenGL 指南中说GL_YCBCR_422_APPLE
,提供“可接受的”性能 (p103),但是
注意:如果您的数据只需要进行混杂,
glgProcessPixels
则执行混杂的速度相当快,尽管不如数据不需要混杂那么快。但是非本地数据格式一次转换一个字节,并且会产生最好避免的性能成本。
我假设 CPU 上正在进行某种内部格式转换。我注意到另一个线程也在glgProcessPixels
运行块方法。
我的路径是最有效的吗?如果不是,那是什么?