0

GLSurfaceViewを使用してすべてのビデオ フレームを単一の画像ファイルにダンプしようとするMediaDumpプロジェクトを実行しています。しかし、setEGLConfigChooser の RGBA サイズ設定が、glReadPixelsの速度で重要な役割を果たしていることがわかりました。

私は常に glReadPixels で RGBA と UNSIGNED_BYTE のペアを設定します。一部のデバイスは を使用すると読み取りが速くなりsetEGLConfigChooser(8, 8, 8, 8, x, x)、他の RGBA サイズを設定するとピクセルの読み取りが非常に遅くなります。一部のデバイスでは読み取りが速くなりますがsetEGLConfigChooser(5, 6, 5, 0, x, x)、他の RGBA サイズ設定ではピクセルの読み取りが非常に遅くなります。もっと多いケースもあるかもしれません。

それで、これはどのように起こりますか?glReadPixels を使用してピクセルの読み取り速度を最速にする適切な RGBA サイズ設定を知る方法はありますか?

ありがとう。

4

2 に答える 2

0

eglGetConfigAttribを使用して最速のデフォルト値を取得できるかどうかはわかりません。

の場合EGL_COLOR_BUFFER_TYPE == EGL_RGB_BUFFEREGL_RED_SIZEEGL_GREEN_SIZEEGL_BLUE_SIZE、およびEGL_ALPHA_SIZEの合計が に等しいことを確認しEGL_BUFFER_SIZEます。

それぞれ (5, 6, 5, 0, 16) を取得した場合、 glReadPixelssetEGLConfigChooser(5, 6, 5, 0, x, x)を使用してGL_RGB/GL_UNSIGNED_SHORT_5_6_5ペアリングします。(8, 8, 8, 8, 32) を取得する場合、 を使用し ますが、色の形式は RGBA または BGRA のいずれかである可能性があり、glGetIntegervで確認した後、その形式をglReadPixelsのペアとして使用します。setEGLConfigChooser(8, 8, 8, 8, x, x)GL_IMPLEMENTATION_COLOR_READ_FORMATGL_UNSIGNED_BYTE

上記の方法を使用して、最速のピクセル読み取り環境を取得できました。それが正しい方法かどうかはわかりません。

ps eglGetConfigAttrib の基本的な使用法では getDetectedVersion ()をチェックして、デバイスが OpenGL ES 2.0 をサポートしているかどうかを確認する方法を確認できます。

于 2013-06-16T00:00:39.007 に答える