CN112804460A - 基于虚拟摄像头的图像处理方法、装置、存储介质及电子设备 - Google Patents

基于虚拟摄像头的图像处理方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN112804460A
CN112804460A CN202110038751.2A CN202110038751A CN112804460A CN 112804460 A CN112804460 A CN 112804460A CN 202110038751 A CN202110038751 A CN 202110038751A CN 112804460 A CN112804460 A CN 112804460A
Authority
CN
China
Prior art keywords
image data
target
editing
target image
virtual camera
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
Application number
CN202110038751.2A
Other languages
English (en)
Inventor
程文波
张�林
葛天杰
王康茂
孟环宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Xingxi Technology Co ltd
Original Assignee
Hangzhou Xingxi Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Xingxi Technology Co ltd filed Critical Hangzhou Xingxi Technology Co ltd
Priority to CN202110038751.2A priority Critical patent/CN112804460A/zh
Publication of CN112804460A publication Critical patent/CN112804460A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/631Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
    • H04N23/632Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters for displaying or modifying preview images prior to image capturing, e.g. variety of image resolutions or capturing parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/62Control of parameters via user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种基于虚拟摄像头的图像处理方法,所述方法包括步骤:获取图像数据源;对所述图像数据源进行编辑处理得到至少一个目标图像数据,按照预设对应关系将所述目标图像数据分发至至少一个虚拟摄像头的输出目标中,该输出目标为可存储并输出图像数据的组件,以使至少一个数据需求主体对所述目标图像数据进行调用预览,其中,所述数据需求主体包括单个应用本身的其他窗口和/或第三方应用;本发明所述技术方案能够满足不同第三方应用同时定制不同图像内容的需求,并同时分发不同的图像内容到不同的第三方应用。

Description

基于虚拟摄像头的图像处理方法、装置、存储介质及电子设备
技术领域
本发明属于图像处理技术领域,具体涉及一种基于虚拟摄像头的图像处理方法、装置、存储介质及电子设备。
背景技术
移动终端上一般使用摄像头的流程为:
调用摄像头open接口,建立与底层摄像头驱动的连接。底层摄像头实例包括前置摄像头、后置摄像头、USB摄像头等,也称真实摄像头。
设置真实摄像头的预览参数,并将预览图像绑定到Android设备的一个显示窗口上。所述预览参数包括预览图像的宽高、帧率等,所述显示窗口称为Surface。
调用摄像头的start preview接口,通知底层摄像头驱动开始输出视频图像流,即开始预览,摄像头的图像在移动终端的屏幕上显示。预览结束后关闭摄像头,并释放底层驱动对象。
通常情况下,应用在使用摄像头时,一次只能获取一个摄像头实例,预览一个摄像头的数据流(及图像数据内容),如要切换摄像头则需要关闭前一个打开下一个,且多个应用无法同时使用摄像头,同一时间只能有一个应用使用摄像头服务。
公开号为CN 108845861 A的中国发明专利,公开了一种虚拟摄像头的处理方法及装置,通过反射技术勾住了摄像头上层的一些接口的方式,生成虚拟摄像头,实现了对图像数据的预览,扩展了图像数据的来源,使得电子设备的图像数据来源不再仅依靠硬件摄像头提供。然而,其未在源码层面做出修改,且通过反射技术勾住摄像头上层接口的方式有很大的局限性,虚拟摄像头只能在单个应用内部使用,不能实现跨进程,即不能让抖音等第三方应用也能使用虚拟摄像头。此外,可勾住的接口有限,不能应对surface预览的情况。
此外,在现有技术中,若在同一应用中同时编辑处理多个图像数据源,则会降低应用响应速度,且对增加移动终端处理器负荷,增加发热量;当不同的第三方应用,需要预览同一图像数据源不同编辑效果时,现有技术仅能通过对同一图像数据源多次进行编辑处理操作,编辑处理效率低。
发明内容
本发明的目的在于提供一种能够实现将图像数据源的定制化编辑处理和输出预览至至少一个第三方应用的基于虚拟摄像头的图像处理方法、装置、存储介质及电子设备。具体通过以下技术方案实现:
方案1,一种基于虚拟摄像头的图像处理方法,所述方法包括步骤:
获取图像数据源;
对所述图像数据源进行编辑处理得到至少一个目标图像数据;
按照预设对应关系将所述目标图像数据分发至至少一个虚拟摄像头的输出目标中,该输出目标为可存储并输出图像数据的组件,以使至少一个数据需求主体对所述目标图像数据进行调用预览;
其中,所述数据需求主体包括单个应用本身的其他窗口和/或第三方应用。
方案2,基于方案1,所述对所述图像数据源进行编辑处理得到至少一个目标图像数据,包括:
对所述图像数据源的单个编辑处理过程进行多节点输出,得到至少一个目标图像数据;
或者,对图像数据源执行多个编辑处理过程,得到至少一个目标图像数据。
方案3,基于方案2,所述对所述图像数据源的单个编辑处理过程进行多节点输出,得到至少一个目标图像数据,包括:
确定每一节点的节点路径;
根据每一节点的节点路径构成单个编辑处理过程的有向无环图;
将所述图像数据源按照所述有向无环图进行编辑处理得到至少一个目标图像数据。
具体的,本方案中,所述编辑处理过程可以是由多个节点,通过有向无环图的方式组合而成,每个节点为一个pass,通过绑定一个fbo保存节点处理结果并输出,fbo保存的节点处理结果输出给输出目标或输出给下一个或多个节点作为输入,当fbo保存的节点结果输出给输出目标时,输出目标可作为新的节点,输入到有向无环图中作为下一个或多个节点作为输入,在有向无环图中不同路径的多个节点处理得到多个节点处理结果,通过多个fbo保存,保存的多个节点处理结果分别对应输出给多个输出目标。
方案4,基于方案1,在获取图像数据源之后,所述方法还包括:
若检测到交互界面发生指示编辑操作,通过Open GL接口技术生成编辑指令;
所述对所述图像数据源进行编辑处理得到至少一个目标图像数据,包括:
按照所述编辑指令对所述图像数据源进行编辑处理得到至少一个目标图像数据。
方案5,基于方案1,所述按照预设对应关系将所述目标图像数据分发至至少一个虚拟摄像头的输出目标中,包括:
根据预设对应关系确定与所述目标图像数据对应的输出目标;
通过可跨进程传输数据的缓存队列将所述目标图像数据分发至至少一个虚拟摄像头的输出目标中。
具体的,所述虚拟摄像头将所述目标图像数据发送给至少一个数据需求主体进行图像预览,包括:单个虚拟摄像头将多个相同或不同的目标图像数据发送给一个数据需求主体进行图像预览;或者单个虚拟摄像头将多个相同或不同的目标图像数据发送给多个数据需求主体进行图像预览;或者多个虚拟摄像头将多个相同或不同的目标图像数据发送给一个数据需求主体进行图像预览;或者多个虚拟摄像头将多个相同或不同的目标图像数据发送给多个数据需求主体进行图像预览。
其中,单个虚拟摄像头将多个相同或不同的目标图像数据发送给一个数据需求主体进行图像预览,比如:图像数据源可以为视频源和LOGO图片,编辑处理后成为多个相同或不同的带LOGO的视频,分别发送给一个第三方应用或单个应用的多个显示窗口进行图像预览;
其中,单个虚拟摄像头将多个相同或不同的目标图像数据发送给多个数据需求主体进行图像预览,比如:将前述多个相同或不同的带LOGO的视频分别发送给抖音、快手等多个第三方应用进行图像预览;
其中,多个虚拟摄像头将多个相同或不同的目标图像数据发送给一个数据需求主体进行图像预览,比如:将前述多个相同或不同的带LOGO的视频同时发送给抖音、快手等一个第三方应用进行图像预览;
其中,多个虚拟摄像头将多个相同或不同的目标图像数据发送给多个数据需求主体进行图像预览,比如:将前述多个相同或不同的带LOGO的视频同时发送给抖音、快手等多个第三方应用进行图像预览。
方案6,基于方案1~5任一方案,所述编辑处理过程包括按顺序执行的视频内容组装、叠加内容组装、视频动画、视频特效、转场和渲染。
所述视频内容组装为将一个或多个视频画面排布到编辑位置,可以是前后叠加、左右排放、上下排放等,支持多个视频画面任意排放;
所述叠加内容为图片、文字等静态资源,也可以是gif这种动态图像,在视频上层存在一定的遮挡关系的元素,元素包括水印、人像贴纸等;
所述视频动画则是对画面进行时间上的变化,比如移动、缩放、旋转、错切等;
所述视频特效则是对视频画面进行美化增强,如使用一些视频滤镜等;
所述转场则是从一个视频画面切换到另一个视频场景时所做的过渡特效;
所述渲染则是将以上过程生成的渲染参数和资源通过open GL的接口生成GPU的渲染指令,传递给GPU来驱动GPU进行以上过程的图像合成运算。
以上过程是一个渲染的流程,这个流程实现了一个简单的渲染引擎。
方案7,基于方案1~5任一方案,所述输出目标包括系统surface组件、GPU纹理缓冲或自定义的图像队列实现中的一种或多种。
方案8,本申请还提供了一种基于虚拟摄像头的图像处理装置,包括:
图像数据获取模块:用于获取图像数据源;
管理模块:处于系统应用层面,用于对所述图像数据源进行编辑处理得到至少一个目标图像数据,按照预设对应关系将所述目标图像数据分发至至少一个虚拟摄像头中;
虚拟摄像头:处于摄像头驱动层面,用于将所述目标图像数据发送给至少一个输出目标,该输出目标为可存储并输出图像数据的组件,以使至少一个数据需求主体对所述目标图像数据进行调用预览;
其中,所述数据需求主体包括单个应用本身的其他窗口和/或第三方应用。
方案9,本申请还提供了一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如方案1~7中任一所述方案的处理方法步骤。
方案10,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如方案1~7中任一所述方案的处理方法步骤。该电子设备可以是手机、直播机,还可以是平板电脑以及PDA(Personal Digital Assistant,个人数字助理)等终端设备。
方案11,基于方案1,所述图像数据源包括视频文件、图片、AR图像或自定义内容等,所述自定义内容包括使用系统图像工具绘制的文字、图形或动画,扩大了图像数据源格式种类范围。所述图像数据源来源于真实摄像头、虚拟摄像头、本地存储文件、网站或网络直播,拓宽了图像数据源的提供方式。
方案12,基于方案8所述系统应用层面应用于Android系统、iOS系统、YunOS系统、Windows Phone系统、鸿蒙系统中的一种或多种。本系统应用层面特指手机、平板电脑等移动终端所用系统,不同于PC,其系统框架不同,无法跨框架挪用。
方案13,基于方案1,通过ion技术或binder实现跨进程将所述目标图像数据分发至虚拟摄像头中。具体通过以下方法实现以binder技术为例:首先通过binder接口与虚拟摄像头通信,获取虚拟摄像头所保存的用户surface的一块缓存地址,通过文件句柄的方式回传到应用层,该过程将一块内存通过binder传递fd句柄到另一个进程,此方式不会进行内存拷贝,使得两个进程可以共享一块内存,大大提高了效率,得到缓存的内存地址后,使用neon加速过的拷贝方法进行数据拷贝,neon加速是Android平台为提高CPU并行运算性能而开发的汇编优化库,使用这个库可以将传统方法一次只拷贝一个字节优化为一次拷贝多个字节;通过以上过程即可将内存中的目标图像数据,复制到用户的surface缓存上,然后虚拟摄像头再将数据通知给第三方应用从而完成预览。
与现有技术相比,本发明还具有如下有益效果:
1)通过对所述图像数据源进行编辑处理得到至少一个目标图像数据,能够实现数据需求主体对图像数据源的不同定制化需求同时编辑;
2)通过将得到的目标图像数据按照预设对应关系由虚拟摄像头分发至数据需求主体预览,能够实现将目标图像数据跨进程同时输出到多个预览窗口;
3)没有修改系统上层的接口,对系统的侵入小;
4)从摄像头驱动层构建出虚拟的摄像头,扩展性很强,即虚拟摄像头可以有很多个,可以满足多个应用或平台同时预览摄像头数据的需求;管理模块是一个上层应用,对图像的处理有很大的扩展性和空间。
本发明所述技术方案能够满足不同第三方应用同时定制不同图像内容的需求,并同时分发不同的图像内容到不同的第三方应用。
附图说明
图1为本发明实施例中基于虚拟摄像头的图像处理方法的流程图;
图2为本发明实施例中基于虚拟摄像头的图像处理装置的结构图;
图3为本发明实施例中基于虚拟摄像头的图像处理装置的电子设备的结构图。
具体实施方式
下面通过具体实施方式或实施例对本发明所述的技术方案做进一步说明,要指出的是,以下具体实施方式或实施例所述的具体技术方案,并不作为对本发明权利要求的限制。
一种基于虚拟摄像头的图像处理装置,如图2所示,包括:
图像数据获取模块1,处于系统应用层面的管理模块2,处于摄像头驱动层面的虚拟摄像头3,数据需求主体4,所述数据需求主体4包括单个应用本身的其他窗口和/或第三方应用。
本实施例的系统应用层面以Android系统为例,本实施例预览至显示窗口可为surface预览。本实施例中管理模块2可调用GPU,内存等进行编辑处理过程。
前述装置,通过以下步骤运行,如图1所示,包括:
S1:图像数据获取模块1获取图像数据源,本实施例中图像数据源可为来自于本地或网络的视频或图片数据等;
S2:管理模块2对所述图像数据源进行编辑处理得到至少一个目标图像数据,按照预设对应关系将所述目标图像数据分发至至少一个虚拟摄像头3中;
S3:虚拟摄像头3将所述目标图像数据发送给至少一个输出目标,该输出目标为可存储并输出图像数据的组件,以使至少一个数据需求主体4对所述目标图像数据进行调用预览。
本实施例中,可通过以下述技术方案实现:
其中,本实施例所述对所述图像数据源进行编辑处理得到至少一个目标图像数据,包括:对所述图像数据源的单个编辑处理过程进行多节点输出,得到至少一个目标图像数据;或者,对图像数据源执行多个编辑处理过程,得到至少一个目标图像数据。
其中,前述所述对所述图像数据源的单个编辑处理过程进行多节点输出,得到至少一个目标图像数据,包括:
确定每一节点的节点路径;
根据每一节点的节点路径构成单个编辑处理过程的有向无环图;
将所述图像数据源按照所述有向无环图进行编辑处理得到至少一个目标图像数据。
具体的,本方案中,所述编辑处理过程可以是由多个节点,通过有向无环图的方式组合而成,每个节点为一个pass,通过绑定一个fbo保存节点处理结果并输出,fbo保存的节点处理结果输出给输出目标或输出给下一个或多个节点作为输入,当fbo保存的节点结果输出给输出目标时,输出目标可作为新的节点,输入到有向无环图中作为下一个或多个节点作为输入,在有向无环图中不同路径的多个节点处理得到多个节点处理结果,通过多个fbo保存,保存的多个节点处理结果分别对应输出给多个输出目标。
本实施例中,在获取图像数据源之后,所述方法还包括:
若检测到交互界面发生指示编辑操作,通过Open GL接口技术生成编辑指令;
所述对所述图像数据源进行编辑处理得到至少一个目标图像数据,包括:
按照所述编辑指令对所述图像数据源进行编辑处理得到至少一个目标图像数据。
本实施例中,所述按照预设对应关系将所述目标图像数据分发至至少一个虚拟摄像头3的输出目标中,包括:
根据预设对应关系确定与所述目标图像数据对应的输出目标;
通过可跨进程传输数据的缓存队列将所述目标图像数据分发至至少一个虚拟摄像头3的输出目标中。
具体的,在本实施例中,所述虚拟摄像头3将所述目标图像数据发送给至少一个数据需求主体4行图像预览,包括:单个虚拟摄像头3将多个相同或不同的目标图像数据发送给一个数据需求主体4进行图像预览,比如:多个相同或不同的图像数据源可以为视频源和LOGO图片,编辑处理后成为一个带LOGO的视频,分别发送给一个第三方应用或单个应用的多个显示窗口使用;
或者单个虚拟摄像头3将多个相同或不同的目标图像数据发送给多个数据需求主体4进行图像预览,比如:将前述带LOGO的视频分别发送给抖音或快手等多个第三方应用使用;
或者多个虚拟摄像头3将多个相同或不同的目标图像数据发送给一个数据需求主体4进行图像预览,比如:将前述多个相同或不同的带LOGO的视频同时发送给抖音、快手等一个第三方应用进行图像预览;
或者多个虚拟摄像头3将多个相同或不同的目标图像数据发送给多个数据需求主体4进行图像预览,比如:将前述多个相同或不同的带LOGO的视频同时发送给抖音、快手等多个第三方应用进行图像预览。
本实施例中,所述编辑处理过程包括按顺序执行的视频内容组装、叠加内容组装、视频动画、视频特效、转场和渲染。
所述视频内容组装为将一个或多个视频画面排布到编辑位置可以是前后叠加、左右排放、上下排放等,支持多个视频画面任意排放;
所述叠加内容为图片、文字等静态资源,也可以是gif这种动态图像,在视频上层存在一定的遮挡关系的元素,元素包括水印、人像贴纸等;
所述视频动画则是对画面进行时间上的变化,比如移动、缩放、旋转、错切等;
所述视频特效则是对视频画面进行美化增强,如使用一些视频滤镜等;
所述转场则是从一个视频画面切换到另一个视频场景时所做的过渡特效;
所述渲染则是将以上过程生成的渲染参数和资源通过open GL的接口生成GPU的渲染指令,传递给GPU来驱动GPU进行以上过程的图像合成运算。
以上过程是一个渲染的流程,这个流程实现了一个简单的渲染引擎。
具体的,本实施例中,所述输出目标包括系统surface组件、GPU纹理缓冲或自定义的图像队列实现中的一种或多种,本实施例中选用系统surface组件对目标图像数据预览。
本实施例中,所述图像数据源选用视频流,所述的内容包括:视频文件,可以是本地sd或内部存储的视频文件,也可以是网络上的视频文件,也可以是网络直播的视频流、图片、网络图片或本地相册图片、gif、AR图像等;还可以是自定义内容,如使用系统图像工具绘制的文字,图形或动画等。
上述视频流的内容可通过真实摄像头,如普通摄像头、USB摄像头、HDMI摄像头等获取。其中,视频流内容的获取过程各不相同,普通摄像头通过系统接口获取视频流内容;USB摄像头则通过扩展过的系统接口获取视频流内容;网络视频或本地视频通过系统Media接口来解封装,解码视频并输出数据到surface上;图片则通过文件读写到内存,然后解码图片格式并上传到GPU;AR图像由Google提供的AR core来生成提供;自定义内容通过系统图像接口绘制,主要包括view技术、canvas绘制技术等。
在本实施例中,所述管理模块2中进行的编辑处理过程通过渲染引擎实现。具体使用Open GL将视频流进行合成处理。
所述渲染引擎是通过视频内容组装、叠加内容组装、视频动画、视频特效、转场和渲染实现一个简单的渲染过程。
其中,视频内容组装为将一个或多个视频画面排布到编辑位置可以是前后叠加、左右排放、上下排放等,支持多个视频画面任意排放;
叠加内容组装的叠加内容可以为图片、文字等静态资源,也可以是gif这种动态图像,在视频上层存在一定的遮挡关系的元素,这些元素一般不会铺满屏幕,一般应用为加水印,加人像贴纸等;
视频动画则是对画面进行时间上的变化,比如移动、缩放、旋转、错切等;
视频特效则是对视频画面进行美化增强,如使用一些视频滤镜等;
转场则是从一个视频画面切换到另一个视频场景时所做的过渡特效;
渲染则是将以上过程生成的渲染参数和资源通过open GL的接口生成GPU的渲染指令,传递给GPU来驱动GPU进行以上过程的图像合成运算。
其中,视频的渲染处理可以输出多目标,其输出目标定义为以下几种:
系统的显示窗口,可直接显示到屏幕;
GPU纹理缓冲,可用于二次加工;
图像数据队列,可用于目标图像数据跨进程传输。
渲染简单说可以由多个pass即过程组成,一次pass就是一次绘制,包含顶点处理和片源处理,程序上将pass封装成program对象,一个渲染效果基本是由多个pass组合完成的。
本实施例中所述的GPU相关技术包括以下三种:
fbo缓冲技术:fbo为GPU提供的渲染缓冲,可以用于保存渲染的中间过程,包含纹理图像信息、深度信息等;
pbo技术:GPU提供的高效传输数据到GPU或从GPU传输数据到内存的API接口,可用于视频流传输到GPU的处理;
image read技术:Android系统提供的高效从GPU中拷贝并转换图像数据的接口,可用于输出图像数据。
本实施例中,管理模块2从获取视频流,然后通过surface技术上传到GPU中,然后提供交互界面来让用户编辑自己的图像数据源,编辑过程通过渲染引擎生成GPU可以执行的指令来进行图像的渲染合成,然后GPU输出合成好的内容(即目标图像数据)到内存中,管理模块2再将输出的内容分发给虚拟摄像头3,从而完成第三方应用内容的定制化预览。
本实施例中,因为GPU具有极高的并行计算能力,对视频图像这种计算密集型的任务具有很高的效率;而surface作为系统优化的缓存组件,可以使用dma技术上传数据到GPU存储中,而不需要消耗CPU时间,从而极大的节省了机器的性能。
在本实施例中,通过管理模块2应用的交互来编辑完成渲染引擎中的视频图像等的排布、图像的选择、特效的添加等。然后将用户编辑生成的渲染资源和参数通过前述的渲染引擎生成GPU的渲染指令来完成渲染过程。渲染引擎在GPU中顺序执行,满足视频流的大部分编辑需求。
具体的,所述管理模块2中的渲染引擎(即编辑处理过程)在设计上可以支持输出多个不同的内容,渲染过程被封装到一个流程中,这个流程可以指定输出目标,可以添加多个目标,针对多个用户需要不同内容的场景,可以创建多个流程以编辑不同的内容输出到不同的目标上,而一个流程也可以把执行过程中的过程内容输出到不同的目标上。这样的设计可以满足不同应用定制不同内容的需求。以上所述的输出目标是指可以存储并输出图像数据的组件。其中,本实施例中所述存储并输出图像数据的组件为系统surface组件。
在本实施例中,管理模块2通过surface技术将GPU的数据转移至内存。向虚拟摄像头3提供数据必须从内存中拷贝,GPU中的数据需要拷贝到内存中,而GPU只能输出RGBA数据,虚拟摄像头3则只接受YUV数据格式,于是存在一个数据转换的过程,此过程为计算密集型任务,本申请采用GPU转换的方式,然后将转换的数据输出到surface组件上,同样使用dma进行数据搬运,最终高效的输出合成的视频数据到内存中。
在本实施例中,具体的,首先通过binder接口与虚拟摄像头3通信,获取虚拟摄像头3所保存的用户输出目标(本实施例中具体为surface组件的一块缓存地址),通过文件句柄的方式回传到应用层,该过程将一块内存通过binder传递fd句柄到另一个进程,此方式不会进行内存拷贝,使得两个进程可以共享一块内存,大大提高了效率,得到缓存的内存地址后,使用neon加速过的拷贝方法进行数据拷贝,neon加速是Android平台为提高CPU并行运算性能而开发的汇编优化库,使用这个库可以将传统方法一次只拷贝一个字节优化为一次拷贝多个字节。
从以上过程即可将输出的内容复制到用户的surface组件的缓存地址上,然后虚拟摄像头3再将数据通知给第三方应用从而完成预览。
前述满足不同应用定制不同内容的需求过程,分发不同的内容到不同的应用,具体步骤为:在GPU中获得进行合成处理后的视频流;内存获取从GPU中输出处理后的视频流数据来生产不同的内容,然后将内容通过步骤:将合成好的视频流数据从内存分发给虚拟摄像头3,实现了把不同的内容分发给不同应用显示。
本实施例还提供了一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前述方案中任一所述的图像处理方法的步骤。
本实施例还提供了一种电子设备,如图3所示,包括存储器101、处理器102及存储在存储器101上并可在理器上102运行的计算机程序,所述处理器102执行所述程序时实现如前述方案中任一所述的图像处理方法的步骤。该电子设备可以是手机、直播机,还可以是平板电脑以及PDA(Personal Digital Assistant,个人数字助理)等终端设备。
需要说明的是,本申请实施例及说明书中描述的英文缩写技术,均为本领域常用术语,无需详述。此外,本说明书中所描述的具体实施方式或实施例,其技术特征的名称可以不同,凡依据本发明专利构思所述的技术特征及原理所做的等效变化或者简单变化,均包括于本发明专利的保护范围内。
以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
需要说明的是,本说明书中所描述的具体实施方式或实施例,其技术特征的名称可以不同,凡依据本发明专利构思所述的技术特征及原理所做的等效变化或者简单变化,均包括于本发明专利的保护范围内。

Claims (10)

1.一种基于虚拟摄像头的图像处理方法,其特征在于,所述方法包括步骤:
获取图像数据源;
对所述图像数据源进行编辑处理得到至少一个目标图像数据;
按照预设对应关系将所述目标图像数据分发至至少一个虚拟摄像头的输出目标中,该输出目标为可存储并输出图像数据的组件,以使至少一个数据需求主体对所述目标图像数据进行调用预览;
其中,所述数据需求主体包括单个应用本身的其他窗口和/或第三方应用。
2.如权利要求1所述的图像处理方法,其特征在于,所述对所述图像数据源进行编辑处理得到至少一个目标图像数据,包括:
对所述图像数据源的单个编辑处理过程进行多节点输出,得到至少一个目标图像数据;
或者,对图像数据源执行多个编辑处理过程,得到至少一个目标图像数据。
3.如权利要求2所述的图像处理方法,其特征在于,所述对所述图像数据源的单个编辑处理过程进行多节点输出,得到至少一个目标图像数据,包括:
确定每一节点的节点路径;
根据每一节点的节点路径构成单个编辑处理过程的有向无环图;
将所述图像数据源按照所述有向无环图进行编辑处理得到至少一个目标图像数据。
4.如权利要求1所述的图像处理方法,其特征在于,在获取图像数据源之后,所述方法还包括:
若检测到交互界面发生指示编辑操作,通过Open GL接口技术生成编辑指令;
所述对所述图像数据源进行编辑处理得到至少一个目标图像数据,包括:
按照所述编辑指令对所述图像数据源进行编辑处理得到至少一个目标图像数据。
5.如权利要求1所述的图像处理方法,其特征在于,所述按照预设对应关系将所述目标图像数据分发至至少一个虚拟摄像头的输出目标中,包括:
根据预设对应关系确定与所述目标图像数据对应的输出目标;
通过可跨进程传输数据的缓存队列将所述目标图像数据分发至至少一个虚拟摄像头的输出目标中。
6.如权利要求1~5中任一所述的图像处理方法,其特征在于,所述编辑处理过程包括按顺序执行的视频内容组装、叠加内容组装、视频动画、视频特效、转场和渲染。
7.如权利要求1~5中任一所述的图像处理方法,其特征在于,所述输出目标包括系统surface组件、GPU纹理缓冲或自定义的图像队列实现中的一种或多种。
8.一种基于虚拟摄像头的图像处理装置,其特征在于,包括:
图像数据获取模块:用于获取图像数据源;
管理模块:处于系统应用层面,用于对所述图像数据源进行编辑处理得到至少一个目标图像数据,按照预设对应关系将所述目标图像数据分发至至少一个虚拟摄像头中;
虚拟摄像头:处于摄像头驱动层面,用于将所述目标图像数据发送给至少一个输出目标,该输出目标为可存储并输出图像数据的组件,以使至少一个数据需求主体对所述目标图像数据进行调用预览;
其中,所述数据需求主体包括单个应用本身的其他窗口和/或第三方应用。
9.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~7中任一所述的处理方法步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~7中任一所述的处理方法步骤。
CN202110038751.2A 2021-01-12 2021-01-12 基于虚拟摄像头的图像处理方法、装置、存储介质及电子设备 Pending CN112804460A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110038751.2A CN112804460A (zh) 2021-01-12 2021-01-12 基于虚拟摄像头的图像处理方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110038751.2A CN112804460A (zh) 2021-01-12 2021-01-12 基于虚拟摄像头的图像处理方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN112804460A true CN112804460A (zh) 2021-05-14

Family

ID=75810234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110038751.2A Pending CN112804460A (zh) 2021-01-12 2021-01-12 基于虚拟摄像头的图像处理方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN112804460A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114205529A (zh) * 2021-12-20 2022-03-18 北京鸿合爱学教育科技有限公司 一种单摄像头的调用方法、装置、终端和可读存储介质
CN114363654A (zh) * 2022-01-12 2022-04-15 北京字节跳动网络技术有限公司 一种视频推流方法、装置、终端设备及存储介质
CN115396742A (zh) * 2022-07-11 2022-11-25 浙江大华系统工程有限公司 视频水印叠加方法、装置、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1873687A (zh) * 2005-06-03 2006-12-06 富士施乐株式会社 图像处理装置、方法以及存储程序的存储介质
CN101833520A (zh) * 2009-03-11 2010-09-15 凹凸电子(武汉)有限公司 计算机系统、多个应用程序同时使用一个摄像头的方法
CN107659768A (zh) * 2017-08-08 2018-02-02 珠海全志科技股份有限公司 一种基于Android多应用共享摄像头的系统及方法
CN109168021A (zh) * 2018-10-25 2019-01-08 京信通信系统(中国)有限公司 一种推流的方法及装置
EP3736667A1 (en) * 2019-05-09 2020-11-11 XRSpace CO., LTD. Virtual reality equipment capable of implementing a replacing function and a superimposition function and method for control thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1873687A (zh) * 2005-06-03 2006-12-06 富士施乐株式会社 图像处理装置、方法以及存储程序的存储介质
CN101833520A (zh) * 2009-03-11 2010-09-15 凹凸电子(武汉)有限公司 计算机系统、多个应用程序同时使用一个摄像头的方法
CN107659768A (zh) * 2017-08-08 2018-02-02 珠海全志科技股份有限公司 一种基于Android多应用共享摄像头的系统及方法
CN109168021A (zh) * 2018-10-25 2019-01-08 京信通信系统(中国)有限公司 一种推流的方法及装置
EP3736667A1 (en) * 2019-05-09 2020-11-11 XRSpace CO., LTD. Virtual reality equipment capable of implementing a replacing function and a superimposition function and method for control thereof

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114205529A (zh) * 2021-12-20 2022-03-18 北京鸿合爱学教育科技有限公司 一种单摄像头的调用方法、装置、终端和可读存储介质
CN114363654A (zh) * 2022-01-12 2022-04-15 北京字节跳动网络技术有限公司 一种视频推流方法、装置、终端设备及存储介质
CN114363654B (zh) * 2022-01-12 2023-12-19 北京字节跳动网络技术有限公司 一种视频推流方法、装置、终端设备及存储介质
CN115396742A (zh) * 2022-07-11 2022-11-25 浙江大华系统工程有限公司 视频水印叠加方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN112804459A (zh) 基于虚拟摄像头的图像展示方法、装置、存储介质及电子设备
CN106611435B (zh) 动画处理方法和装置
CN107770626B (zh) 视频素材的处理方法、视频合成方法、装置及存储介质
CN112804460A (zh) 基于虚拟摄像头的图像处理方法、装置、存储介质及电子设备
US20220007083A1 (en) Method and stream-pushing client for processing live stream in webrtc
WO2021135320A1 (zh) 一种视频的生成方法、装置及计算机系统
CN106453572B (zh) 基于云服务器同步图像的方法及系统
CN107040808B (zh) 用于视频播放中弹幕图片的处理方法和装置
CN113411664B (zh) 基于子应用的视频处理方法、装置和计算机设备
KR20180036153A (ko) 영상 편집 시스템 및 방법
CN108986009A (zh) 图片的生成方法、装置及电子设备
US20080124041A1 (en) Adding video effects for video enabled applications
US10237563B2 (en) System and method for controlling video encoding using content information
CN110213640B (zh) 虚拟物品的生成方法、装置及设备
KR101663085B1 (ko) 휴대형 스마트기기에서의 동영상 기반의 알파채널 영상합성을 이용한 비디오 카드 제작 시스템 및 그 방법
CN112153472A (zh) 一种画面特效的生成方法及装置、存储介质及电子设备
JP4321751B2 (ja) 描画処理装置、描画処理方法および描画処理プログラム、並びにそれらを備えた電子会議システム
KR20180054537A (ko) 영상 편집 시스템 및 방법
KR20100062822A (ko) 협업적 영상 제작 관리 장치
KR20180117826A (ko) 웹툰무비 제작 방법 및 장치
CN108235144B (zh) 播放内容获取方法、装置及计算设备
CN113628312B (zh) 一种基于Unity3D内置渲染管线的云渲染方法及装置
WO2024087971A1 (zh) 用于图像处理的方法、装置及存储介质
JP6108723B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP7278850B2 (ja) ビデオランダムアクセスメモリにおけるマルチソースメディアをオーバーレイするシステム及び方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination