我正在做一个有关处理视频帧的Android项目,我需要在显示每个帧之前对其进行处理。该过程包括将帧从1920x1080扩展到2560x1440分辨率,色彩空间转换以及基于RGB的必要图像处理,所有这些工作都应在33ms〜40ms之内完成。
我已经用手臂霓虹灯优化了yuv-> rgb和其他处理,它们运行良好。但是我必须首先将帧从1080p扩展到2k分辨率,现在这是性能的瓶颈。
我的问题是如何在20ms内有效地将图像从1080p缩放到2k,我对缩放算法没有太多的经验,所以任何建议都是有帮助的。我可以使用臂霓虹灯优化现有算法吗?
硬件环境:
更新:
我将描述我的解码过程,我使用MediaCodec将普通视频(H.264)解码为YUV(NV12),默认解码器是硬件,速度非常快。然后,我使用臂霓虹灯将NV12转换为RGBW,然后将RGBW帧发送到surfaceflinger进行显示。我只使用普通的SurfaceView而不是GLSurfaceView。
瓶颈在于如何将YUV快速从1080p扩展到2K。