一种基于gpu的模块化实时视频与图像处理方法

文档序号:8546378阅读:730来源:国知局
一种基于gpu的模块化实时视频与图像处理方法
【技术领域】
[0001]本发明涉及图像处理,尤其涉及一种基于GPU的模块化实时视频与图像处理方法。
【背景技术】
[0002]目前的手机、平板电脑等移动设备已经可以支持1SOp甚至4k视频的录制。移动设备通常使用ISP,CPU或GPU对视频进行处理。由于GPU拥有较强的计算吞吐量和可编程性,很多主流图像处理库如GPHmage,CoreImage等都使用GPU进行图像处理。这些图像处理库的处理以滤镜为主,缺少视频HDR,防抖,实时美容等高级功能,不能满足移动设备上视频录制的功能需求。如果要调用多个滤镜,需要顺序地调用多个shader渲染程序。一方面,滤镜之间不能共享一些公共的计算,增加了计算量;另一方面,GPU在每次调用shader时都至少需要分别读和写一次纹理,这显著增加了对显存的访问。移动设备受体积,功耗和成本限制,GPU性能和存储器带宽都较弱。采用现有图像处理不能满足对视频同时开启多个实时滤镜,或者开启计算量较大滤镜的需求。

【发明内容】

[0003]本发明的目的就在于提供一种基于GPU的模块化实时视频与图像处理方法,将基于GPU的图像处理分为前处理和主要处理,采用了模块化架构组装主要处理shader实现多种滤镜和功能组合,能有效解决上述现有技术中的不足。
[0004]本发明针对现有技术的不足,提供了以下技术方案:
本发明所述一种基于GPU的模块化实时视频与图像处理方法,其特征在于,具体步骤如下:
101、获取待处理视频帧、图像帧;
102、输入滤镜和功能变量,选定要处理的参数;
103、根据参数对待处理视频帧、图像帧进行图像渲染前处理,输出中间结果;根据参数与滤镜和功能对前处理的依赖动态选择高斯模糊前处理shader、图像分割前处理shader和视频稳像前处理shader对视频帧、图像帧进行前处理,输出中间结果;
104、根据参数对中间结果进行图像渲染主要处理,输出已处理视频帧、图像帧;根据参数选择主要处理shader通用参数字符串、主要处理shader通用头部字符串、主要处理shader通用尾部字符串、处理模块参数字符串和处理模块计算字符串组装成主要渲染处理shader对中间结果进行主要处理,输出已处理视频帧、图像帧。
[0005]进一步地,所述步骤103根据参数和滤镜对前处理的依赖动态决定是否需要开启某个或某几个前处理shader。
[0006]又进一步地,所述步骤104处理模块参数字符串和处理模块计算字符串为某个或某几个滤镜和功能变量对应的处理模块参数字符串和处理模块计算字符串。
[0007]再进一步地,所述步骤104主要处理shader内通过寄存器传递参数,只对每帧内容读写一次。
[0008]更近一步地,所述处理基于GPU,使用包括但不限于OpenGL,DirectX,DirectCompute, CUDA, Cg, Mantle, metal, renderscript 的图形学或 GPU 通用计算 API。
[0009]与现有技术相比,本发明的优点在于:
本发明将基于GPU的图像处理分为前处理和主要处理,采用了模块化架构组装主要处理shader,实现视频实时美容,HDR,防抖,颜色滤镜,镜头滤镜,艺术滤镜,蓝幕,颜色替换,保留单色等功能,及多种不同的滤镜和功能组合;同时开启多个功能时尽可能共用中间处理结果,不增加额外计算开销;通过寄存器传递参数,只需对每帧内容读写一次,不增加额外存储器访问,提高处理速度。
[0010]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0011]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
【附图说明】
[0012]附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明所述一种基于GPU的模块化实时视频与图像处理方法的流程图;
图2是本发明所述一种基于GPU的模块化实时视频与图像处理方法的步骤103的流程图;
图3是本发明所述一种基于GPU的模块化实时视频与图像处理方法的步骤104的结构框图。
【具体实施方式】
[0013]下面将结合附图对本发明作进一步说明。
[0014]实施例:
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0015]参见图1、图2、图3所示。
[0016]本发明所述一种基于GPU的模块化实时视频与图像处理方法的系统,包括处理管理器和主要处理shader组装器,处理管理器用于高斯模糊前处理shader、图像分割前处理shader和视频稳像前处理shader,主要处理shader组装器用于进行主要处理,主要处理shader组装器包括主要处理shader通用参数字符串、主要处理shader通用头部字符串、主要处理shader通用尾部字符串、多个处理模块参数字符串和多个处理模块计算字符串。
[0017]本发明所述一种基于GPU的模块化实时视频与图像处理方法,具体步骤如下: 步骤101、获取待处理视频帧、图像帧;
步骤102、输入滤镜和功能变量,选定要处理的参数;
输入包括颜色滤镜ID,特效滤镜ID,稳像功能开关,HDR功能开关,美颜功能开关等滤镜和功能变量,在架构初始化或输入变量发生变化时,处理管理器判断需要进行处理并将参数传递给主要处理shader组装器,否则直接输出。
[0018]步骤103、根据参数对待处理视频帧、图像帧进行图像渲染前处理,输出中间结果;根据参数与滤镜和功能对前处理的依赖动态选择高斯模糊前处理shader、图像分割前处理shader和视频稳像前处理shader对视频帧、图像帧进行前处理,输出中间结果;
处理管理器进行的前处理包括高斯模糊前处理shader、图像分割前处理shader和视频稳像前处理shader,处理管理器根据参数与滤镜和功能对前处理依赖表决定是否要使用某个或者某几个前处理shader程序对当前帧内容进行处理,并输出中间结果。
[0019]步骤104、根据参数对中间结果进行图像渲染主要处理,输出已处理视频帧、图
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1