CN104869323A - 一种基于gpu的模块化实时视频与图像处理方法 - Google Patents
一种基于gpu的模块化实时视频与图像处理方法 Download PDFInfo
- Publication number
- CN104869323A CN104869323A CN201510251859.4A CN201510251859A CN104869323A CN 104869323 A CN104869323 A CN 104869323A CN 201510251859 A CN201510251859 A CN 201510251859A CN 104869323 A CN104869323 A CN 104869323A
- Authority
- CN
- China
- Prior art keywords
- shader
- character string
- gpu
- video
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Image Processing (AREA)
Abstract
本发明公开了一种基于GPU的模块化实时视频与图像处理方法,其特征在于,具体步骤如下:获取待处理视频帧、图像帧;输入滤镜和功能变量,选定要处理的参数;根据参数对待处理视频帧、图像帧进行图像渲染前处理,输出中间结果;根据参数对中间结果进行图像渲染主要处理,输出已处理视频帧、图像帧。本发明将基于GPU的图像处理分为前处理和主要处理,采用了模块化架构组装主要处理shader,实现视频实时美容,HDR,防抖,颜色滤镜,镜头滤镜,艺术滤镜,蓝幕,颜色替换,保留单色等功能,及多种不同的滤镜和功能组合。
Description
技术领域
本发明涉及图像处理,尤其涉及一种基于GPU的模块化实时视频与图像处理方法。
背景技术
目前的手机、平板电脑等移动设备已经可以支持1080p甚至4k视频的录制。移动设备通常使用ISP,CPU或GPU对视频进行处理。由于GPU拥有较强的计算吞吐量和可编程性,很多主流图像处理库如GPUImage,CoreImage等都使用GPU进行图像处理。这些图像处理库的处理以滤镜为主,缺少视频HDR,防抖,实时美容等高级功能,不能满足移动设备上视频录制的功能需求。如果要调用多个滤镜,需要顺序地调用多个shader渲染程序。一方面,滤镜之间不能共享一些公共的计算,增加了计算量;另一方面,GPU在每次调用shader时都至少需要分别读和写一次纹理,这显著增加了对显存的访问。移动设备受体积,功耗和成本限制,GPU性能和存储器带宽都较弱。采用现有图像处理不能满足对视频同时开启多个实时滤镜,或者开启计算量较大滤镜的需求。
发明内容
本发明的目的就在于提供一种基于GPU的模块化实时视频与图像处理方法,将基于GPU的图像处理分为前处理和主要处理,采用了模块化架构组装主要处理shader实现多种滤镜和功能组合,能有效解决上述现有技术中的不足。
本发明针对现有技术的不足,提供了以下技术方案:
本发明所述一种基于GPU的模块化实时视频与图像处理方法,其特征在于,具体步骤如下:
101、获取待处理视频帧、图像帧;
102、输入滤镜和功能变量,选定要处理的参数;
103、根据参数对待处理视频帧、图像帧进行图像渲染前处理,输出中间结果;根据参数与滤镜和功能对前处理的依赖动态选择高斯模糊前处理shader、图像分割前处理shader和视频稳像前处理shader对视频帧、图像帧进行前处理,输出中间结果;
104、根据参数对中间结果进行图像渲染主要处理,输出已处理视频帧、图像帧;根据参数选择主要处理shader通用参数字符串、主要处理shader通用头部字符串、主要处理shader通用尾部字符串、处理模块参数字符串和处理模块计算字符串组装成主要渲染处理shader对中间结果进行主要处理,输出已处理视频帧、图像帧。
进一步地,所述步骤103根据参数和滤镜对前处理的依赖动态决定是否需要开启某个或某几个前处理shader。
又进一步地,所述步骤104处理模块参数字符串和处理模块计算字符串为某个或某几个滤镜和功能变量对应的处理模块参数字符串和处理模块计算字符串。
再进一步地,所述步骤104主要处理shader内通过寄存器传递参数,只对每帧内容读写一次。
更近一步地,所述处理基于GPU,使用包括但不限于OpenGL,DirectX,Direct Compute, CUDA, Cg, Mantle, metal, renderscript的图形学或GPU通用计算API。
与现有技术相比,本发明的优点在于:
本发明将基于GPU的图像处理分为前处理和主要处理,采用了模块化架构组装主要处理shader,实现视频实时美容,HDR,防抖,颜色滤镜,镜头滤镜,艺术滤镜,蓝幕,颜色替换,保留单色等功能,及多种不同的滤镜和功能组合;同时开启多个功能时尽可能共用中间处理结果,不增加额外计算开销;通过寄存器传递参数,只需对每帧内容读写一次,不增加额外存储器访问,提高处理速度。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明所述一种基于GPU的模块化实时视频与图像处理方法的流程图;
图2是本发明所述一种基于GPU的模块化实时视频与图像处理方法的步骤103的流程图;
图3是本发明所述一种基于GPU的模块化实时视频与图像处理方法的步骤104的结构框图。
具体实施方式
下面将结合附图对本发明作进一步说明。
实施例:
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
参见图1、图2、图3所示。
本发明所述一种基于GPU的模块化实时视频与图像处理方法的系统,包括处理管理器和主要处理shader组装器,处理管理器用于高斯模糊前处理shader、图像分割前处理shader和视频稳像前处理shader,主要处理shader组装器用于进行主要处理,主要处理shader组装器包括主要处理shader通用参数字符串、主要处理shader通用头部字符串、主要处理shader通用尾部字符串、多个处理模块参数字符串和多个处理模块计算字符串。
本发明所述一种基于GPU的模块化实时视频与图像处理方法,具体步骤如下:
步骤101、获取待处理视频帧、图像帧;
步骤102、输入滤镜和功能变量,选定要处理的参数;
输入包括颜色滤镜ID,特效滤镜ID,稳像功能开关,HDR功能开关,美颜功能开关等滤镜和功能变量,在架构初始化或输入变量发生变化时,处理管理器判断需要进行处理并将参数传递给主要处理shader组装器,否则直接输出。
步骤103、根据参数对待处理视频帧、图像帧进行图像渲染前处理,输出中间结果;根据参数与滤镜和功能对前处理的依赖动态选择高斯模糊前处理shader、图像分割前处理shader和视频稳像前处理shader对视频帧、图像帧进行前处理,输出中间结果;
处理管理器进行的前处理包括高斯模糊前处理shader、图像分割前处理shader和视频稳像前处理shader,处理管理器根据参数与滤镜和功能对前处理依赖表决定是否要使用某个或者某几个前处理shader程序对当前帧内容进行处理,并输出中间结果。
步骤104、根据参数对中间结果进行图像渲染主要处理,输出已处理视频帧、图像帧;根据参数选择主要处理shader通用参数字符串、主要处理shader通用头部字符串、主要处理shader通用尾部字符串、处理模块参数字符串和处理模块计算字符串组装成主要渲染处理shader对中间结果进行主要处理,输出已处理视频帧、图像帧。
主要处理shader组装器根据选择的滤镜和功能,将主要处理shader通用参数字符串、主要处理shader通用头部字符串、主要处理shader通用尾部字符串和某个或某几个滤镜和功能变量对应的处理模块参数字符串及处理模块计算字符串组装成一段shader代码,称为主要渲染处理shader,对中间结果进行主要处理,输出已处理视频帧、图像帧。
根据选择的滤镜和功能选择主要处理shader通用参数字符串、主要处理shader通用头部字符串、主要处理shader通用尾部字符串、处理模块1参数字符串、处理模块1计算字符串、处理模块2参数字符串、处理模块2计算字符串及处理模块N参数字符串和处理模块N计算字符串组装成主要处理shader代码,包括通用参数字符串、处理模块X参数字符串、处理模块Y参数字符串、处理模块Z参数字符串、通用头字符串、处理模块X计算字符串、处理模块Y计算字符串、处理模块Z计算字符串和通用尾字符串。
主要处理shader程序只对每帧内容读写(处理)一次。由于同在一个shader内,主要处理shader内不同实现滤镜和功能的程序片段之间通过寄存器就能传递参数,而不需要读写纹理。这样,主要处理shader在实现多种滤镜和功能时就只需要读取前处理shader的输出和当前帧的内容一次,写一次处理结果到输出缓冲区。
本发明处理基于GPU,使用包括但不限于OpenGL,DirectX,Direct Compute, CUDA, Cg, Mantle, metal, renderscript的图形学或GPU通用计算API。
本发明将基于GPU的图像处理分为前处理和主要处理,采用了模块化架构组装主要处理shader,实现视频实时美容,HDR,防抖,颜色滤镜,镜头滤镜,艺术滤镜,蓝幕,颜色替换,保留单色等功能,及多种不同的滤镜和功能组合;同时开启多个功能时尽可能共用中间处理结果,不增加额外计算开销;通过寄存器传递参数,只需对每帧内容读写一次,不增加额外存储器访问,提高处理速度。
在iphone5S上可以对1080p高清视频同时开启颜色滤镜,特效滤镜或蓝幕功能,稳像功能,HDR功能或实时磨皮功能四级处理的同时保证每秒30帧,实现不同的处理效果组合。
在iPhone5S上,开启多个功能时不需要额外地读写视频、图像内容纹理,每多开启一个功能,节省7%GPU占用率。
在iphone5S上,基于高斯模糊的HDR和磨皮,与依赖高斯模糊的特效滤镜同时开启时,可以共用高斯模糊前处理结果,节省20%GPU占用率。
本发明可以通过增加、替换前处理shader和主要处理渲染shader功能片段灵活扩展视频实时稳像、蓝幕、替换颜色、保留单色、插入水印、片尾等功能。
本发明采用了模块化架构组装shader,只需要保留每个功能或滤镜的计算部分,而不用再编写一个完整的shader,减少了代码量,维护更加容易。
最后说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于GPU的模块化实时视频与图像处理方法,其特征在于,具体步骤如下:
101、获取待处理视频帧、图像帧;
102、输入滤镜和功能变量,选定要处理的参数;
103、根据参数对待处理视频帧、图像帧进行图像渲染前处理,输出中间结果;根据参数与滤镜和功能对前处理的依赖动态选择高斯模糊前处理shader、图像分割前处理shader和视频稳像前处理shader对视频帧、图像帧进行前处理,输出中间结果;
104、根据参数对中间结果进行图像渲染主要处理,输出已处理视频帧、图像帧;根据参数选择主要处理shader通用参数字符串、主要处理shader通用头部字符串、主要处理shader通用尾部字符串、处理模块参数字符串和处理模块计算字符串组装成主要渲染处理shader对中间结果进行主要处理,输出已处理视频帧、图像帧。
2.根据权利要求1所述一种基于GPU的模块化实时视频与图像处理方法,其特征在于:所述步骤103根据参数和滤镜对前处理的依赖动态决定是否需要开启某个或某几个前处理shader。
3.根据权利要求1所述一种基于GPU的模块化实时视频与图像处理方法,其特征在于:所述步骤104处理模块参数字符串和处理模块计算字符串为某个或某几个滤镜和功能变量对应的处理模块参数字符串和处理模块计算字符串。
4.根据权利要求1所述一种基于GPU的模块化实时视频与图像处理方法,其特征在于:所述步骤104主要处理shader内通过寄存器传递参数,只对每帧内容读写一次。
5.根据权利要求1所述一种基于GPU的模块化实时视频与图像处理方法,其特征在于:所述处理基于GPU,使用包括但不限于OpenGL,DirectX,Direct Compute, CUDA, Cg, Mantle, metal, renderscript的图形学或GPU通用计算API。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510251859.4A CN104869323A (zh) | 2015-05-18 | 2015-05-18 | 一种基于gpu的模块化实时视频与图像处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510251859.4A CN104869323A (zh) | 2015-05-18 | 2015-05-18 | 一种基于gpu的模块化实时视频与图像处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104869323A true CN104869323A (zh) | 2015-08-26 |
Family
ID=53914804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510251859.4A Pending CN104869323A (zh) | 2015-05-18 | 2015-05-18 | 一种基于gpu的模块化实时视频与图像处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104869323A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133909A (zh) * | 2017-03-30 | 2017-09-05 | 北京奇艺世纪科技有限公司 | 一种着色器重组的方法及装置 |
CN107295285A (zh) * | 2017-08-11 | 2017-10-24 | 腾讯科技(深圳)有限公司 | 视频数据的处理方法、处理装置及存储介质 |
CN108012090A (zh) * | 2017-10-25 | 2018-05-08 | 北京川上科技有限公司 | 一种视频处理方法、装置、移动终端及存储介质 |
CN108012091A (zh) * | 2017-11-29 | 2018-05-08 | 北京奇虎科技有限公司 | 图像处理方法、装置、设备及其存储介质 |
CN109089043A (zh) * | 2018-08-30 | 2018-12-25 | Oppo广东移动通信有限公司 | 拍摄图像预处理方法、装置、存储介质及移动终端 |
CN109104626A (zh) * | 2017-06-20 | 2018-12-28 | 武汉斗鱼网络科技有限公司 | 一种网络直播中过滤图像的方法及设备 |
CN111882483A (zh) * | 2020-08-31 | 2020-11-03 | 北京百度网讯科技有限公司 | 视频渲染方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102810199A (zh) * | 2012-06-15 | 2012-12-05 | 成都平行视野科技有限公司 | 一种基于gpu的图像处理方法 |
US20130127858A1 (en) * | 2009-05-29 | 2013-05-23 | Luc Leroy | Interception of Graphics API Calls for Optimization of Rendering |
CN103337093A (zh) * | 2013-06-07 | 2013-10-02 | 国家电网公司 | 一种基于Unity3D着色器实现三维机房实时温场效果的方法 |
CN103714574A (zh) * | 2013-12-19 | 2014-04-09 | 浙江大学 | 一种基于gpu加速的海中场景建模与实时交互绘制方法 |
US20140362093A1 (en) * | 2013-06-06 | 2014-12-11 | Nvidia Corporation | Graphics effect data structure and method of use thereof |
CN204156999U (zh) * | 2014-05-09 | 2015-02-11 | 北京乐成光视科技发展有限公司 | 一种基于Unity3D游戏引擎的裸眼3D显示系统 |
-
2015
- 2015-05-18 CN CN201510251859.4A patent/CN104869323A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130127858A1 (en) * | 2009-05-29 | 2013-05-23 | Luc Leroy | Interception of Graphics API Calls for Optimization of Rendering |
CN102810199A (zh) * | 2012-06-15 | 2012-12-05 | 成都平行视野科技有限公司 | 一种基于gpu的图像处理方法 |
US20140362093A1 (en) * | 2013-06-06 | 2014-12-11 | Nvidia Corporation | Graphics effect data structure and method of use thereof |
CN103337093A (zh) * | 2013-06-07 | 2013-10-02 | 国家电网公司 | 一种基于Unity3D着色器实现三维机房实时温场效果的方法 |
CN103714574A (zh) * | 2013-12-19 | 2014-04-09 | 浙江大学 | 一种基于gpu加速的海中场景建模与实时交互绘制方法 |
CN204156999U (zh) * | 2014-05-09 | 2015-02-11 | 北京乐成光视科技发展有限公司 | 一种基于Unity3D游戏引擎的裸眼3D显示系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133909A (zh) * | 2017-03-30 | 2017-09-05 | 北京奇艺世纪科技有限公司 | 一种着色器重组的方法及装置 |
CN107133909B (zh) * | 2017-03-30 | 2020-09-25 | 北京奇艺世纪科技有限公司 | 一种着色器重组的方法及装置 |
CN109104626A (zh) * | 2017-06-20 | 2018-12-28 | 武汉斗鱼网络科技有限公司 | 一种网络直播中过滤图像的方法及设备 |
CN109104626B (zh) * | 2017-06-20 | 2021-11-09 | 武汉斗鱼网络科技有限公司 | 一种网络直播中过滤图像的方法及设备 |
CN107295285A (zh) * | 2017-08-11 | 2017-10-24 | 腾讯科技(深圳)有限公司 | 视频数据的处理方法、处理装置及存储介质 |
CN108012090A (zh) * | 2017-10-25 | 2018-05-08 | 北京川上科技有限公司 | 一种视频处理方法、装置、移动终端及存储介质 |
CN108012091A (zh) * | 2017-11-29 | 2018-05-08 | 北京奇虎科技有限公司 | 图像处理方法、装置、设备及其存储介质 |
CN109089043A (zh) * | 2018-08-30 | 2018-12-25 | Oppo广东移动通信有限公司 | 拍摄图像预处理方法、装置、存储介质及移动终端 |
CN111882483A (zh) * | 2020-08-31 | 2020-11-03 | 北京百度网讯科技有限公司 | 视频渲染方法及装置 |
CN111882483B (zh) * | 2020-08-31 | 2024-04-09 | 北京百度网讯科技有限公司 | 视频渲染方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104869323A (zh) | 一种基于gpu的模块化实时视频与图像处理方法 | |
KR101931466B1 (ko) | 로컬 톤 곡선 계산을 사용한 이미지 톤 조정 | |
KR101952922B1 (ko) | 중간-분류 아키텍처에서 프레임 대 프레임 일관성의 활용 | |
US8199164B2 (en) | Advanced anti-aliasing with multiple graphics processing units | |
US20180084292A1 (en) | Web-based live broadcast | |
US9787922B2 (en) | Pixel defect preprocessing in an image signal processor | |
CN106030652B (zh) | 提供输出面的方法、系统和合成显示控制器及计算机介质 | |
US10621464B1 (en) | Block based non-maximum suppression | |
US9336561B2 (en) | Color buffer caching | |
US11983848B2 (en) | AI frame engine for mobile edge | |
US9959643B2 (en) | Variable rasterization order for motion blur and depth of field | |
CN109767408A (zh) | 图像处理方法、装置、存储介质及计算机设备 | |
US9245324B2 (en) | Lossy color merge for multi-sampling anti-aliasing compression | |
US9183652B2 (en) | Variable rasterization order for motion blur and depth of field | |
CN111080505A (zh) | 一种提高图元装配效率的方法、装置及计算机存储介质 | |
US9530237B2 (en) | Interpolation circuitry and techniques for graphics processing | |
CN116563172B (zh) | 一种vr全球化在线教育互动优化增强方法及装置 | |
CN114584831B (zh) | 提高视频清晰度的视频优化处理方法、装置、设备和存储介质 | |
US20170323416A1 (en) | Processing image fragments from one frame in separate image processing pipes based on image analysis | |
US20160037058A1 (en) | Providing frame delay using a temporal filter | |
CN105991937A (zh) | 一种基于Bayer格式图像的虚拟曝光方法及装置 | |
CN114677464A (zh) | 图像处理方法、图像处理装置、计算机设备及存储介质 | |
US20150093026A1 (en) | Conservative Morphological Anti-Aliasing | |
CN115953331B (zh) | 一种图像边缘增强方法及系统 | |
Bjorke | Image processing on parallel GPU pixel units |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150826 |
|
WD01 | Invention patent application deemed withdrawn after publication |