有关优化视频解码器的建议

时间:2013-02-26 08:59:23

标签: android optimization android-ndk render porting

我最近将一个视频解码器(用C编写)移植到android平台。它的输出是YUV格式。因此,我必须将其转换为RGB8888,以使用本机代码中的ANativeWindow API显示它。虽然移植成功,但是对于416x240的输入,我能够渲染的输出大约是8.5fps,在使用-O2(LOCAL_C_FLAG)的优化级别之后也是如此。

  • 有没有一种方法可以更快地渲染视频而无需使用c和 装配水平的优化?
  • 即使解码速度较慢,有没有办法让它看起来 好像视频运行得更快?

任何有用的建议都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

您可以使用GLSurfaceView / Renderer对进行渲染。

  1. 在您自己的GLSurfaceView.Renderer实现中,使用本机方法覆盖OnDrawFrame。

  2. 在本机实现中,使用OpenGL ES.20 frag着色器进行色彩空间转换(以及缩放)。

  3. 您不必以这种方式担心视图/位图/ UI同步的细节。 OpenGL ES非常快。