CN114520868B - 视频处理方法、装置及存储介质 - Google Patents

视频处理方法、装置及存储介质 Download PDF

Info

Publication number
CN114520868B
CN114520868B CN202011309139.6A CN202011309139A CN114520868B CN 114520868 B CN114520868 B CN 114520868B CN 202011309139 A CN202011309139 A CN 202011309139A CN 114520868 B CN114520868 B CN 114520868B
Authority
CN
China
Prior art keywords
camera
layer
cameras
data streams
fwk
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.)
Active
Application number
CN202011309139.6A
Other languages
English (en)
Other versions
CN114520868A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011309139.6A priority Critical patent/CN114520868B/zh
Priority to EP21893906.4A priority patent/EP4228244A4/en
Priority to PCT/CN2021/130989 priority patent/WO2022105759A1/zh
Priority to US18/253,204 priority patent/US20240007583A1/en
Publication of CN114520868A publication Critical patent/CN114520868A/zh
Application granted granted Critical
Publication of CN114520868B publication Critical patent/CN114520868B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/2624Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects for obtaining an image which is composed of whole input images, e.g. splitscreen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/4223Cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/45Cameras or camera modules comprising electronic image sensors; Control thereof for generating image signals from two or more image sensors being of different type or operating in different modes, e.g. with a CMOS sensor for moving images in combination with a charge-coupled device [CCD] for still images
    • 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/617Upgrading or updating of programs or applications for camera control
    • 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
    • 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/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N23/661Transmitting camera control signals through networks, e.g. control via the Internet
    • 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/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N23/661Transmitting camera control signals through networks, e.g. control via the Internet
    • H04N23/662Transmitting camera control signals through networks, e.g. control via the Internet by using master/slave camera arrangements for affecting the control of camera image capture, e.g. placing the camera in a desirable condition to capture a desired image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/90Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • H04N5/77Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television camera
    • 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/65Control of camera operation in relation to power supply

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Studio Devices (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请涉及视频处理方法、装置及存储介质。所述方法包括:第一设备在监测到对多个相机的预览请求时,在相机Android应用程序包APK创建多个相机对应的视图以及缓存、并将视图对应的缓存下发到框架FWK层,通过FWK层从硬件抽象层HAL获取多个相机对应的相机数据流;第一设备通过FWK层的图层传递模块,将多个相机数据流分别渲染到对应的缓存上。通过多个视图承接并显示多个相机的相机数据流,采用图层传递模块将多个相机数据流渲染到对应的视图的缓存上,实现快速预览。

Description

视频处理方法、装置及存储介质
技术领域
本申请涉及电子设备技术领域,尤其涉及一种视频处理方法、装置及存储介质。
背景技术
随着科学技术的发展,电子设备已经成为人们日常生活中最常用的电子产品之一。一些电子设备上配置有多个摄像头,比如说手机上可以配置有前置摄像头以及一个或多个后置摄像头,用户经常会通过电子设备拍摄图片或者视频。因此,目前电子设备对多媒体数据的处理方式非常重要。
发明内容
有鉴于此,提出了一种视频处理方法及装置,通过多个视图承接并显示多个相机的相机数据流,采用图层传递模块将多个相机数据流渲染到对应的视图的缓存上,相比于相关技术中采用APK层的openGL将多个相机数据流合成渲染到一个视图效率高。
第一方面,本申请的实施例提供了一种视频处理方法,所述方法应用于第一设备上,所述方法包括:
所述第一设备在监测到对多个相机的预览请求时,在相机Android应用程序包APK创建所述多个相机对应的视图以及缓存、并将视图对应的缓存下发到框架FWK层,通过FWK层从硬件抽象层HAL获取所多个相机对应的相机数据流;
所述第一设备通过FWK层的图层传递模块r,将多个相机数据流分别渲染到对应的缓存,,以在相机数据流对应的视图上进行预览。
本申请的视频处理方法,在监测到对多个相机的预览请求时,在相机APK创建与多个相机对应的视图以及缓存,通过FWK层从相机HAL获取多路相机数据流,并采用native层(FWK层)的图层传递模块将获取的多路相机数据流渲染到从相机APK获取的对应的缓存上,从而实现将多路相机流传输给相机APK的多个视图,快速实现多相机预览。相比于相关技术中采用APK层的openGL将多个相机数据流合成渲染到一个视图效率高。
结合第一方面的第一种可能的实现方式中,所述第一设备上包括虚拟相机,所述方法还包括:
所述第一设备通过分布式融合感知平台DMSDP服务获取第二设备上的实体相机的硬件参数;
所述第一设备根据所述实体相机的硬件参数在本地配置对应的虚拟相机。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述硬件参数包括实体相机的相机能力参数,
所述第一设备根据所述实体相机的硬件参数在本地配置对应的虚拟相机,包括:
所述第一设备根据所述相机能力参数创建所述实体相机对应的虚拟相机硬件抽象层HAL和相机框架,并将所述相机框架加入到分布式相机框架中,
其中,所述虚拟相机HAL位于所述HAL,所述分布式相机框架位于所述FWK层。
通过在第一设备和第二设备之间建立DMSDP服务,在第一设备本地建立第二设备的实体相机的虚拟相机HAL,模拟真实ISP(Internet Service Provider,互联网服务提供商)控制,实现相机命令和数据跨设备,可以实现分布式相机的快速控制。
结合第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述第一设备在监测到对多个相机的预览请求时,通过FWK层从HAL获取所多个相机对应的相机数据流,包括:
所述第一设备在监测到预览请求时,若所述多个相机包括虚拟相机,则所述第一设备通过DMSDP服务向虚拟相机对应的实体相机发送控制命令;其中,所述控制命令用于控制所述实体相机拍摄当前画面;
所述第一设备通过DMSDP服务接收所述实体相机响应于所述控制命令返回的相机数据流;其中,所述相机数据流包括所述当前画面。
在分布式相机场景下,根据本申请上述实施方式的视频处理方法,第一设备通过多个视图承接并显示多个相机的相机数据流,采用FWK层从虚拟相机HAL获取多路相机数据流,并采用native层(FWK层)的图层传递模块将获取的多路相机数据流渲染到从相机APK获取的对应的缓存上,从而实现将多路相机流传输给相机APK的多个视图,快速生成预览结果。可以在多设备协同完成一个业务或者体验的时候实现快速预览,也将多个设备的相机数据进行同步录制。降低了单设备的功耗,同时更全面的还原一个业务场景。这种方式通过多设备的能力查询方式获取虚拟设备能力,获取多设备的多个实体相机的能力,还降低了本地设备的功耗。
结合第一方面或者第一方面的第一种或第二种可能的实现方式,在第四种可能的实现方式中,若所述第一设备监测到对多个相机的录像请求,在所述第一设备将多个相机数据流分别渲染到对应的缓存上之后,所述方法还包括:
在APK层后台对多个所述缓存上的相机数据流进行合成处理。
根据本申请上述实施方式的视频处理方法,通过多个视图承接并显示多个相机的相机数据流,采用FWK层从相机HAL获取多路相机数据流,并采用native层(FWK层)的图层传递模块将获取的多路相机数据流渲染到从相机APK获取的对应的缓存上,从而实现将多路相机流传输给相机APK的多个视图,在APK层后台对多个所述缓存上的相机数据流进行录像合成处理,对于录像合成的过程用户无感知。相比于现有技术中的采用APK层的openGL将多个相机数据流合成渲染到一个视图效率高。
第二方面,本申请的实施例提供了一种视频处理装置,所述装置应用于第一设备上,所述装置包括:
第一获取模块,用于在监测到对多个相机的预览请求时,在相机Android应用程序包APK创建所述多个相机对应的视图以及缓存、并将视图对应的缓存下发到框架FWK层,通过FWK层从硬件抽象层HAL获取所多个相机对应的相机数据流;
渲染模块,用于通过FWK层的图层传递模块,将多个相机数据流分别渲染到对应的缓存,以在相机数据流对应的视图上进行预览。
本申请的视频处理装置,在监测到对多个相机的预览请求时,在相机APK创建与多个相机对应的视图以及缓存,通过FWK层从相机HAL获取多路相机数据流,并采用native层(FWK层)的图层传递模块将获取的多路相机数据流渲染到从相机APK获取的对应的Buffer上,从而实现将多路相机流传输给相机APK的多个视图,快速实现多相机预览。相比于相关技术中采用APK层的openGL将多个相机数据流合成渲染到一个视图效率高。
结合第二方面的第一种可能的实现方式中,所述第一设备上包括虚拟相机,所述装置还包括:
第二获取模块,用于通过分布式融合感知平台DMSDP服务获取第二设备上的实体相机的硬件参数;
配置模块,用于根据所述实体相机的硬件参数在本地配置对应的虚拟相机。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述硬件参数包括实体相机的相机能力参数,
所述配置模块,包括:
创建单元,用于根据所述相机能力参数创建所述实体相机对应的虚拟相机硬件抽象层HAL和相机框架,并将所述相机框架加入到分布式相机框架中,
其中,所述虚拟相机HAL位于所述HAL,所述分布式相机框架位于所述FWK层。
通过在第一设备和第二设备之间建立DMSDP服务,在第一设备本地建立第二设备的实体相机的虚拟相机HAL,模拟真实ISP(Internet Service Provider,互联网服务提供商)控制,实现相机命令和数据跨设备,可以实现分布式相机的快速控制。
结合第二方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述第一获取模块,包括:
发送单元,用于在监测到预览请求时,若所述多个相机包括虚拟相机,则所述第一设备通过DMSDP服务向虚拟相机对应的实体相机发送控制命令;其中,所述控制命令用于控制所述实体相机拍摄当前画面;
接收单元,用于通过DMSDP服务接收所述实体相机响应于所述控制命令返回的相机数据流;其中,所述相机数据流包括所述当前画面。
在分布式相机场景下,根据本申请上述实施方式的视频处理装置,第一设备通过多个视图承接并显示多个相机的相机数据流,采用FWK层从虚拟相机HAL获取多路相机数据流,并采用native层(FWK层)的图层传递模块将获取的多路相机数据流渲染到从相机APK获取的对应的缓存上,从而实现将多路相机流传输给相机APK的多个视图,快速生成预览结果。可以在多设备协同完成一个业务或者体验的时候实现快速预览,也将多个设备的相机数据进行同步录制。降低了单设备的功耗,同时更全面的还原一个业务场景。这种方式通过多设备的能力查询方式获取虚拟设备能力,获取多设备的多个实体相机的能力,还降低了本地设备的功耗。
结合第二方面或者第一方面的第一种或第二种可能的实现方式,在第四种可能的实现方式中,若所述第一设备监测到对多个相机的录像请求,在所述渲染模块之后,所述装置还包括:
合成模块,用于在APK层后台对多个所述Buffer上的相机数据流进行合成处理。
根据本申请上述实施方式的视频处理装置,通过多个视图承接并显示多个相机的相机数据流,采用FWK层从相机HAL获取多路相机数据流,并采用native层(FWK层)的图层传递模块将获取的多路相机数据流渲染到从相机APK获取的对应的缓存上,从而实现将多路相机流传输给相机APK的多个视图,在APK层后台对多个所述缓存上的相机数据流进行录像合成处理,对于录像合成的过程用户无感知。相比于现有技术中的采用APK层的openGL将多个相机数据流合成渲染到一个视图效率高。
第三方面,本申请的实施例提供了一种视频处理装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令时实现如上所述的视频处理方法。
第四方面,本申请的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如上所述的视频处理方法。
第五方面,本申请的实施例提供了一种终端设备,该终端设备可以执行上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的视频处理方法。
第六方面,本申请的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的视频处理方法。
本申请的这些和其他方面在以下(多个)实施例的描述中会更加简明易懂。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本申请的示例性实施例、特征和方面,并且用于解释本申请的原理。
图1a示出本申请相关技术中单设备双摄的场景的示意图。
图1b和图1c分别示出单设备多摄场景下显示预览的示意图。
图2示出本申请相关技术中分布式设备场景的示意图。
图3示出根据本申请一实施例的终端设备的结构示意图。
图4是本申请实施例的终端设备的软件结构框图。
图5a示出根据本申请一实施例的视频处理方法的流程图。
图5b示出根据本申请一实施例的视频处理方法的流程图。
图6示出根据本申请一实施方式的第一设备实现视频处理方法的框图。
图7示出根据本申请一实施方式的分布式相机场景的示意图。
图8示出根据本申请一实施例的应用场景中设备配置的框图。
图9示出根据本申请一实施方式的视频处理方法的流程图。
图10示出根据本申请一实施例的获取图像的方法的流程图。
图11示出根据本申请一实施例的分布式相机场景下预览和录像的示意图。
图12示出根据本申请一实施例的视频处理装置的框图。
具体实施方式
以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
目前单设备多摄的方案在APK(Android application package,Android应用程序包)层用openGL(Open Graphics Library,开放图形库)进行渲染后做画面融合显示,也就是用openGL进行合成渲染会导致预览画面生成时间较长,且画面存在延迟。
在分布式设备场景,可以通过多设备联动完成一个工作,或者完成一种业务体验。在分布式相机场景下,随着设备的增多,openGL处理量逐渐增大,同样存在预览画面生成时间较长,且画面存在延迟的问题。
图1a示出本申请相关技术中单设备双摄的场景的示意图。如图1a所示,单设备双摄方案中,电子设备包括两个摄像头(前置相机和后置相机),相机APK(应用层的应用程序包)对FWK(Framework,框架)下的两路画面(画面一和画面二)进行预览时,相机APK通过FWK层从硬件抽象层HAL(Hardware Abstraction Layer)获取由硬件设备(摄像头)拍摄出的两路画面,在相机APK中用OpenGL将两路画面渲染到一个视图SurfaceView中(图1a中的双路融合显示),再用共享上下文shareContext将渲染好的画面再次渲染到另一个SurfaceView中并发送给编码设备(图1a中的双路编码)进行编码,生成录像文件。单设备场景下,无法预览其他设备的摄像头的画面,在相机APK中用OpenGL对多路画面渲染,导致生成预览画面的时间较长,影响用户体验。
图1b和图1c分别示出单设备多摄场景下显示预览的示意图。如图1b所示,为采用双后摄像头进行预览的示例,图1c为采用前置相机和后置相机进行双路预览的示例。相关技术中,在进行双路(多路)画面预览时,用openGL进行合成渲染会导致预览画面生成时间较长,且画面存在延迟。
图2示出本申请相关技术中分布式设备场景的示意图。如图2所示,在两主播联合直播的场景下,两个设备接入一个云账号,连接到一个云服务器,两个设备可以将本地摄像头获取的数据(视频画面、声音等)在本地编码后得到视频文件,发送给云服务器上,云服务器对视频文件进行解码后,对两路画面进行合成得到合成后的画面,将合成后的画面通过网络传输给用户。分布式设备场景下,两个设备需要通过云账号接入云服务器,将采集的数据发送给云端,再从运算下载合成后的画面,速度慢、延迟大。
为了解决上述技术问题,本申请提供了一种视频处理方法。本申请的视频处理方法,在监测到对多个相机的预览请求时,在相机APK创建与多个相机对应的视图以及缓存,通过FWK层从相机HAL获取多路相机数据流,并采用native层(FWK层)的图层传递模块将获取的多路相机数据流渲染到从相机APK获取的对应的缓存上,从而实现将多路相机流传输给相机APK的多个视图。
本申请的实施方式提供的视频处理方法,通过多个视图承接并显示多个相机的相机数据流,采用图层传递模块将多个相机数据流渲染到对应的视图的缓存上,相比于相关技术中采用APK层的openGL将多个相机数据流合成渲染到一个视图效率高。
本申请实施例的视频处理方法能够实现多路相机数据的快速渲染,快速生成预览画面。该方法可以应用于终端设备,从而实现在一个终端设备上同时快速预览来自本设备或者其他设备的多个相机画面。
本申请涉及的终端设备(包括上文所述的源端的设备和接收端的设备)可以是指具有无线连接功能的设备,无线连接的功能是指可以通过wifi、蓝牙等无线连接方式与其他终端设备进行连接,本申请的终端设备也可以具有有线连接进行通信的功能。本申请的终端设备可以是触屏的、也可以是非触屏的、也可以是没有屏幕的,触屏的可以通过手指、触控笔等在显示屏幕上点击、滑动等方式对终端设备进行控制,非触屏的设备可以连接鼠标、键盘、触控面板等输入设备,通过输入设备对终端设备进行控制,没有屏幕的设备比如说可以是没有屏幕的蓝牙音箱等。
举例来说,本申请的终端设备可以是智能手机、上网本、平板电脑、笔记本电脑、可穿戴电子设备(如智能手环、智能手表等)、TV、虚拟现实设备、音响、电子墨水,等等。
图3示出根据本申请一实施例的终端设备的结构示意图。以终端设备是手机为例,图3示出了手机200的结构示意图。
手机200可以包括处理器210,外部存储器接口220,内部存储器221,USB接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块251,无线通信模块252,音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及SIM卡接口295等。其中传感器模块280可以包括陀螺仪传感器280A,加速度传感器280B,接近光传感器280G、指纹传感器280H,触摸传感器280K(当然,手机200还可以包括其它传感器,比如温度传感器,压力传感器、距离传感器、磁传感器、环境光传感器、气压传感器、骨传导传感器等,图中未示出)。
可以理解的是,本申请实施例示意的结构并不构成对手机200的具体限定。在本申请另一些实施例中,手机200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(Neural-network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是手机200的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
处理器210可以运行本申请实施例提供的视频处理方法,以便于快速生成预览画面。处理器210可以包括不同的器件,比如集成CPU和GPU时,CPU和GPU可以配合执行本申请实施例提供的视频处理方法,比如视频处理方法中部分算法由CPU执行,另一部分算法由GPU执行,以得到较快的处理效率。
显示屏294用于显示图像,视频等,还可以用于拍摄图像或者视频之前的预览,比如说在本申请的实施方式中,通过显示屏294可以进行多相机的预览。显示屏294包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,手机200可以包括1个或N个显示屏294,N为大于1的正整数。显示屏294可用于显示由用户输入的信息或提供给用户的信息以及各种图形用户界面(graphical user interface,GUI)。例如,显示器294可以显示照片、视频、网页、或者文件等。再例如,显示器294可以显示图形用户界面。其中,图形用户界面上包括状态栏、可隐藏的导航栏、时间和天气小组件(widget)、以及应用的图标,例如浏览器图标等。状态栏中包括运营商名称(例如中国移动)、移动网络(例如4G)、时间和剩余电量。导航栏中包括后退(back)键图标、主屏幕(home)键图标和前进键图标。此外,可以理解的是,在一些实施例中,状态栏中还可以包括蓝牙图标、Wi-Fi图标、外接设备图标等。还可以理解的是,在另一些实施例中,图形用户界面中还可以包括Dock栏,Dock栏中可以包括常用的应用图标等。当处理器210检测到用户的手指(或触控笔等)针对某一应用图标的触摸事件后,响应于该触摸事件,打开与该应用图标对应的应用的用户界面,并在显示器294上显示该应用的用户界面。
在本申请实施例中,显示屏294可以是一个一体的柔性显示屏,也可以采用两个刚性屏以及位于两个刚性屏之间的一个柔性屏组成的拼接显示屏。
当处理器210运行本申请实施例提供的视频处理方法后,终端设备可以通过天线1、天线2或者USB接口与其他的终端设备建立连接,并根据本申请实施例提供的视频处理方法传输数据以及控制显示屏294显示相应的图形用户界面。
摄像头293(前置摄像头或者后置摄像头,或者一个摄像头既可作为前置摄像头,也可作为后置摄像头)用于捕获静态图像或视频。通常,摄像头293可以包括感光元件比如镜头组和图像传感器,其中,镜头组包括多个透镜(凸透镜或凹透镜),用于采集待拍摄物体反射的光信号,并将采集的光信号传递给图像传感器。图像传感器根据所述光信号生成待拍摄物体的原始图像。
内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器210通过运行存储在内部存储器221的指令,从而执行手机200的各种功能应用以及数据处理。内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,应用程序(比如相机应用,微信应用等)的代码等。存储数据区可存储手机200使用过程中所创建的数据(比如相机应用采集的图像、视频等)等。
内部存储器221还可以存储本申请实施例提供的视频处理方法对应的一个或多个计算机程序1310。该一个或多个计算机程序1304被存储在上述存储器221中并被配置为被该一个或多个处理器210执行,该一个或多个计算机程序1310包括指令,上述指令可以用于执行如图5a、图5b、图9或图10相应实施例中的各个步骤,该计算机程序1310可以包括第一获取模块61、渲染模块62。其中,第一获取模块61,用于所述第一终端设备用于在监测到对多个相机的预览请求时,在相机Android应用程序包APK创建所述多个相机对应的视图以及缓存、并将视图对应的缓存下发到框架FWK层,通过FWK层从硬件抽象层HAL获取所多个相机对应的相机数据流;渲染模块62,用于通过FWK层的图层传递模块,将多个相机数据流分别渲染到对应的缓存,以在相机数据流对应的视图上进行预览。
此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
当然,本申请实施例提供的视频处理方法的代码还可以存储在外部存储器中。这种情况下,处理器210可以通过外部存储器接口220运行存储在外部存储器中的视频处理方法的代码。
下面介绍传感器模块280的功能。
陀螺仪传感器280A,可以用于确定手机200的运动姿态。在一些实施例中,可以通过陀螺仪传感器280A确定手机200围绕三个轴(即,x,y和z轴)的角速度。即陀螺仪传感器280A可以用于检测手机200当前的运动状态,比如抖动还是静止。
当本申请实施例中的显示屏为可折叠屏时,陀螺仪传感器280A可用于检测作用于显示屏294上的折叠或者展开操作。陀螺仪传感器280A可以将检测到的折叠操作或者展开操作作为事件上报给处理器210,以确定显示屏294的折叠状态或展开状态。
加速度传感器280B可检测手机200在各个方向上(一般为三轴)加速度的大小。即陀螺仪传感器280A可以用于检测手机200当前的运动状态,比如抖动还是静止。当本申请实施例中的显示屏为可折叠屏时,加速度传感器280B可用于检测作用于显示屏294上的折叠或者展开操作。加速度传感器280B可以将检测到的折叠操作或者展开操作作为事件上报给处理器210,以确定显示屏294的折叠状态或展开状态。
接近光传感器280G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。手机通过发光二极管向外发射红外光。手机使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定手机附近有物体。当检测到不充分的反射光时,手机可以确定手机附近没有物体。当本申请实施例中的显示屏为可折叠屏时,接近光传感器280G可以设置在可折叠的显示屏294的第一屏上,接近光传感器280G可根据红外信号的光程差来检测第一屏与第二屏的折叠角度或者展开角度的大小。
陀螺仪传感器280A(或加速度传感器280B)可以将检测到的运动状态信息(比如角速度)发送给处理器210。处理器210基于运动状态信息确定当前是手持状态还是脚架状态(比如,角速度不为0时,说明手机200处于手持状态)。
指纹传感器280H用于采集指纹。手机200可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
触摸传感器280K,也称“触控面板”。触摸传感器280K可以设置于显示屏294,由触摸传感器280K与显示屏294组成触摸屏,也称“触控屏”。触摸传感器280K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏294提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器280K也可以设置于手机200的表面,与显示屏294所处的位置不同。
示例性的,手机200的显示屏294显示主界面,主界面中包括多个应用(比如相机应用、微信应用等)的图标。用户通过触摸传感器280K点击主界面中相机应用的图标,触发处理器210启动相机应用,打开摄像头293。显示屏294显示相机应用的界面,例如取景界面。
手机200的无线通信功能可以通过天线1,天线2,移动通信模块251,无线通信模块252,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。手机200中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块251可以提供应用在手机200上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块251可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块251可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块251还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块251的至少部分功能模块可以被设置于处理器210中。在一些实施例中,移动通信模块251的至少部分功能模块可以与处理器210的至少部分模块被设置在同一个器件中。在本申请实施例中,移动通信模块251还可以用于与其它终端设备进行信息交互。比如说,通过DMSDP(英文全称:distribute mobile sensing development platform;中文全称:分布式融合感知平台)与其他设备交互控制命令以及相机数据流。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器270A,受话器270B等)输出声音信号,或通过显示屏294显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器210,与移动通信模块251或其他功能模块设置在同一个器件中。
无线通信模块252可以提供应用在手机200上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块252可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块252经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块252还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。本申请实施例中,无线通信模块252,用于在处理器210的控制下与其他终端设备之间传输数据,比如,处理器210运行本申请实施例提供的视频处理方法时,处理器可以控制无线通信模块252向其他终端设备发送控制命令控制其他设备的相机,还可以接收其他终端设备基于上述控制命令返回的相机数据流,然后采用FWK层的图层传递模块surfaceFlinger将获取的多个相机数据流渲染到从相机APK获取的相机数据流对应的Buffer上,从而实现将多路相机流传输给相机APK的SurfaceView,快速生成预览图。
另外,手机200可以通过音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,以及应用处理器等实现音频功能。例如音乐播放,录音等。手机200可以接收按键290输入,产生与手机200的用户设置以及功能控制有关的键信号输入。手机200可以利用马达291产生振动提示(比如来电振动提示)。手机200中的指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。手机200中的SIM卡接口295用于连接SIM卡。SIM卡可以通过插入SIM卡接口295,或从SIM卡接口295拔出,实现和手机200的接触和分离。
应理解,在实际应用中,手机200可以包括比图3所示的更多或更少的部件,本申请实施例不作限定。图示手机200仅是一个范例,并且手机200可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
终端设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明终端设备的软件结构。
图4是本申请实施例的终端设备的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图4所示,应用程序包可以包括电话、相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图4所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端设备的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
图5a示出根据本申请一实施例的视频处理方法的流程图。如图5a所示,本申请的视频处理方法可以应用于如上所述的终端设备,具体可以包括:
步骤S501,所述第一设备在监测到对多个相机的预览请求时,在相机APK创建所述多个相机对应的视图以及缓存、并将视图对应的缓存下发到FWK层,通过FWK层从HAL获取所多个相机对应的相机数据流;
步骤S502,所述第一设备通过FWK层的图层传递模块,将多个相机数据流分别渲染到对应的缓存,以在相机数据流对应的视图上进行预览。
其中,所述预览请求可以是第一设备监测到打开相机的操作或者进行录像的操作时生成的,预览请求可以包括打开相机的控制命令以及相机的标识。打开相机的操作可以是用户点击屏幕上的相机应用的图标,进行录像的操作可以是用户打开相机后,点击“录像”或者“摄像”等控件开启录像。
第一设备在监测到上述操作时,可以生成预览请求,并根据预览请求携带的相机的标识将预览请求下发到相机的标识对应实体相机,以打开实体相机捕捉实时画面。
在一种可能的实现方式中,对于单设备多摄的场景,实体相机可以是第一设备本地的一个或者多个相机。由于第一终端设备上可能包含多个实体相机,以手机为例,手机上可以配置有前置相机、后置相机,手机上配置的前置相机和后置相机的数量可以是一个或多个,本申请对此不作限定。第一设备上包含多个实体相机时,每个实体相机都有对应的标识(ID),因此,第一设备生成的预览请求可以携带有对应的实体相机的标识。这样,第一设备可以根据预览请求携带的实体相机的标识将预览请求下发给对应的实体相机,以实现对预览请求对应的实体相机的控制。
举例来说,用户点击屏幕上的相机应用的图标,第一设备在检测到用户的操作后,生成预览请求,预览请求中携带的实体相机的标识可以默认为后置相机的标识(也可以是前置相机的标识,本申请对此不作限定),若用户打开相机后,又点击了屏幕上的“切换相机”的控件,第一设备在监测到用户的操作后,可以生成新的预览请求,预览请求中携带的实体相机的标识可以为前置相机的标识。第一设备在生成预览请求后,可以将预览请求经过相机APK、FWK层、HAL层下发到与相机的标识对应的实体相机,控制对应的实体相机打开捕捉实时画面。这样,第一设备可以从HAL层的相机HAL获取到对应的相机数据流,相机数据流也可以携带对应的实体相机的标识。
第一设备在监测到预览请求时,还可以根据预览请求中的相机的标识确定承载相机数据流的视图的数量,并在相机APK创建与多个相机对应的视图、为视图分配对应的第一缓存,用于渲染多个相机的相机数据流。第一设备可以将视图逐层下发给FWK层以及HAL,HAL的相机HAL可以创建视图对应的第二缓存,相机HAL收到对应的实体相机捕捉的图像后可以保存在第二缓存。
其中,在本申请的实施方式中,视图可以是SurfaceView,第一缓存和第二缓存都可以是Buffer,比如说,第一缓存为Buffer1,第二缓存为Buffer2。图层传递模块可以是Surfaceflinger。
在本申请的实施方式中,第一设备可以将SurfaceView对应的Buffer1下发给FWK层,比如说将SurfaceView对应的Buffer1的地址信息下发到FWK层。第一设备的FWK层从相机HAL获得多个相机数据流后,第一设备可以通过FWK层的Surfaceflinger在native层(FWK层)将获取的相机数据流渲染到Buffer1上,用户即可进行预览。
在单设备上存在多个实体相机的场景下,如果要进行多相机预览,分别用不同的SurfaceView承载每个相机的相机数据流,第一设备可以为多个SurfaceView分配对应的Buffer,每个实体相机对应一个SurfaceView和Buffer。第一设备在进行渲染时,可以根据相机数据流对应的实体相机的标识,将相机数据流渲染到对应的Buffer。
根据本申请上述实施方式的视频处理方法,通过多个视图承接并显示多个相机的相机数据流,采用native层(FWK层)的surfaceFlinger将获取的相机数据流渲染到从相机APK获取的对应的Buffer上,从而实现将多个相机流传输给相机APK的多个视图,相比于相关技术中采用APK层的openGL将多个相机数据流合成渲染到一个视图效率高。
图5b示出根据本申请一实施例的视频处理方法的流程图。如图5b所示,对于获取到多个相机数据流的情况,本申请的视频处理方法还可以包括:
步骤S503,若第一设备监测到对多个相机的录像请求,则第一设备在APK层后台对多个所述缓存上的相机数据流进行录像合成处理。
其中,录像请求可以是用户打开相机后,点击“录像”或者“摄像”等控件开启录像时生成的。第一设备在监测到上述操作后,生成录像请求,并将录像请求经过相机APK、FWK层、HAL层逐层下发,获取多个相机数据流,从相机APK获取每个相机数据流对应的Buffer1。第一设备通过FWK层的图层传递模块surfaceFlinger,将多个相机数据流分别渲染到对应的Buffer1上。然后,第一设备在APK层后台对多个所述Buffer1上的相机数据流进行录像合成处理,可以得到多相机摄像后合成的视频数据。
根据本申请上述实施方式的视频处理方法,通过多个视图承接并显示多个相机的相机数据流,采用FWK层从相机HAL获取多路相机数据流,并采用native层(FWK层)的图层传递模块surfaceFlinger将获取的多路相机数据流渲染到从相机APK获取的对应的Buffer上,从而实现将多路相机流传输给相机APK的多个视图,在APK层后台对多个所述Buffer上的相机数据流进行录像合成处理,对于录像合成的过程用户无感知。相比于现有技术中的采用APK层的openGL将多个相机数据流合成渲染到一个视图效率高。
图6示出根据本申请一实施方式的第一设备实现视频处理方法的框图。图6所示的示例中为单设备双摄的场景,如图6所示,HardWare层包括两个本地相机,HAL层包括相应的相机HAL API(Application Programming Interface,应用程序接口),FWK层包括相机FWK以及Surfaceflinger,APK层的相机APK中包括与本地相机对应的两个SurfaceView(SurfaceView1、SurfaceView2)、OpenGL、录像surface等模块。
第一设备在监测到预览请求时,可以从相机APK打开本机多相机,并经过相机APK、FWK层、HAL层逐层下发预览(录像)request,通过本地多个硬件相机获取相机数据流。第一设备通过HAL层从硬件设备获取相机数据流,并在HAL层的PipileManager中进行处理,通过Camera HAL3的API接口传输给FWK层。第一设备通过FWK层进行Buffer轮转,将相机APK提供的两个预览SurfaceView和接收到的HAL层传输的两路相机数据流进行交换,具体是:第一设备采用FWK层的surfaceFlinger将从HAL层获取的相机数据流渲染到从相机APK获取的两个空Buffer(分别与两个SurfaceView对应,在Buffer中渲染即可实现对SurfaceView的渲染)中,从而将相机数据流传送给相机APK,通过native层的SurfaceFlinger渲染,比采用APK层的openGL渲染效率高。如果有录像request下发,前面的过程与上述预览流程相同,在进行渲染后,第一设备还可以在APK层后台进行录像合成得到合成后的视频数据,合成的过程用户是感知不到的。
在一种可能的实现方式中,本申请的视频处理方法还可以应用于分布式相机的场景下。图7示出根据本申请一实施方式的分布式相机场景的示意图。如图7所示,应用场景中可以包括第一设备,第一设备可以为手机、Pad、智能手表等终端设备。应用场景中还可以包括一个或两个以上第二设备,第二设备可以为包括摄像头的车载相机、手机、Pad、智能手表等。
第一设备和第二设备之间建立了通信连接,第一设备和第二设备之间可以直接传输数据。图8示出根据本申请一实施例的应用场景中设备配置的框图。如图8所示,在一种可能的实现方式中,可以通过DMSDP(英文全称:distribute mobile sensing developmentplatform;中文全称:分布式融合感知平台)服务在第一设备和第二设备之间建立通信。具体地,可以将第一设备和第二设备的DMSDP服务提供的相机接口进行对接,从而建立跨设备双景模式的场景,第一设备和第二设备之间可以通过DMSDP服务传输命令和数据。其中,DMSDP服务提供的相机接口可以为CameraKit接口,通过统一第一设备和第二设备的相机编程接口为CameraKit接口,可以实现相机接口对接。
在建立DMSDP通信后,第一设备和第二设备之间可以按照DMSDP协议进行通信。DMSDP服务可以包括命令管道和数据管道。第一设备可以通过DMSDP服务向第二设备发送配置请求,所述配置请求用于获取第二设备的实体相机的硬件参数。具体地,第一设备可以通过DMSDP服务的命令管道向第二设备发送配置请求。
第二设备接收到上述配置请求,响应于配置请求,第二设备可以通过DMSDP服务,将第二设备的实体相机的硬件参数以标准接口的形式发送给第一设备,比如说,可以通过DMSDP服务的数据管道发送实体相机的硬件参数。
第一设备通过DMSDP服务接收到第二设备的实体相机的硬件参数,通过读取标准接口获取第二设备的实体相机的硬件参数,并根据第二设备的实体相机的硬件参数在本地配置对应的虚拟相机。具体地,硬件参数可以包括实体相机的相机能力参数,第一设备可以根据相机能力参数创建实体相机对应的虚拟相机硬件抽象层HAL和相机框架,并将所述相机框架加入到分布式相机框架中。
其中,虚拟相机HAL是对第二设备的实体相机的硬件抽象层。HAL是位于操作系统内核与硬件电路之间的接口层,以模块的方式来管理各个硬件访问的接口,每一个硬件模块都对应一个动态链接库文件。因此,相机HAL是相机的访问接口,通过访问虚拟相机HAL,并将访问通过DMSDP服务发给虚拟相机HAL对应的实体相机,可以实现对相应的实体相机的访问。
相机能力参数可以包括相机的光圈参数、焦距参数等,还可以包括高动态范围HDR(High Dynamic Range)能力、人像能力、超级夜景能力等。根据实体相机的硬件参数创建虚拟相机,可以全量同步实体相机的元数据,保证对本端虚拟相机的控制和对实体相机的远程控制完全相同。
第一设备可以通过控制虚拟相机HAL,控制虚拟相机对应第二设备的实体相机。比如说,第一设备可以通过在本地打开虚拟相机HAL,打开对应的第二设备的实体相机进行拍摄,还可以通过在本地虚拟相机HAL,关闭对应的第二设备的实体相机。
在一种可能的实现方式中,第一设备本地可以包括一个或者两个以上虚拟相机HAL,一个虚拟相机HAL对应一个第二设备的实体相机。举例来说,假设第二设备包括两个以上实体相机或者第一设备与两个以上第二设备的相机连接,则第一设备可以将两个以上实体相机虚拟到本地,创建对应的虚拟相机HAL。比如说,第二设备可以是手机,第一设备上的一个虚拟相机HAL与第二设备上的多个实体相机(前置相机、后置相机)对应。
在一种可能的实现方式中,本申请不限制第一设备和第二设备的操作系统(Operating System,简称OS)的类型。第一设备可以采用安卓OS、鸿蒙OS、Linux OS等操作系统,第二设备也可以采用安卓OS、鸿蒙OS、Linux OS、Lite OS等操作系统。
如图8所示,第一设备可以与多个第二设备通过DMSDP服务通信,第一设备上可以配置有多个虚拟相机HAL,一个虚拟相机HAL与一个第二设备的实体相机相对应,第二设备上可以包括一个或多个实体相机。
在一种可能的实现方式中,如图8所示,第一设备上还可以配置有分布式相机框架,第一设备在接收到第二设备的实体相机的硬件参数时,还可以创建对应的相机框架,并将相机框架加入到分布式相机框架中。分布式相机框架包括多个虚拟相机HAL对应的相机框架、以及控制模块,控制模块可以连接多个相机框架,负责动态控制流水线、设备协同管理等。
在第一设备和第二设备之间建立DMSDP服务,在第一设备本地建立第二设备的实体相机的虚拟相机HAL,模拟真实ISP(Internet Service Provider,互联网服务提供商)控制,实现相机命令和数据跨设备。根据本申请上述实施方式的配置方式,可以实现对第二设备的实体相机的快速控制,并获取第二设备的实体相机返回的相机数据流。
图9示出根据本申请一实施方式的视频处理方法的流程图。在第一设备上包括虚拟相机HAL的情况下,如图9所示,本申请的视频处理方法还可以包括以下步骤:
步骤S901,第一设备通过DMSDP服务获取第二设备上的实体相机的硬件参数;
步骤S902,第一设备根据所述实体相机的硬件参数在本地配置对应的虚拟相机;
其中,所述硬件参数可以包括实体相机的相机能力参数,第一设备根据所述实体相机的硬件参数在本地配置对应的虚拟相机,可以包括:所述第一设备根据所述相机能力参数创建所述实体相机对应的虚拟相机硬件抽象层HAL和相机框架,并将所述相机框架加入到分布式相机框架中。
关于步骤S901、S902的具体过程可以参见上文中关于图7和图8部分的描述,不再赘述。
在图9所示的实施方式中,步骤S501中的所述第一设备在监测到对多个相机的预览请求时,通过FWK层从HAL获取所多个相机对应的相机数据流,可以包括:
步骤S903,所述第一设备在监测到对多个相机的预览请求时,若所述多个相机包括虚拟相机,则所述第一设备通过DMSDP服务向虚拟相机对应的实体相机发送控制命令;其中,所述控制命令用于控制所述实体相机拍摄当前画面;
步骤S904,所述第一设备通过DMSDP服务接收所述实体相机响应于所述控制命令返回的相机数据流;其中,所述相机数据流包括所述当前画面。
在一种可能的实现方式中,如图8所示,第一设备监测到相机应用(相机APK)打开相机的操作,生成预览请求,可以通过分布式相机框架向多个虚拟相机HAL下发控制命令,通过控制多个虚拟相机HAL控制虚拟相机HAL对应的实体相机。控制命令可以包括打开、拍摄、关闭相机等过程,第一设备的虚拟相机HAL在接收到控制命令时,可以根据控制命令向虚拟相机HAL对应的实体相机发送子控制命令,比如说,打开命令、拍摄命令等等。
第一设备在创建实体相机对应的虚拟相机HAL后,在本地的相机应用层上也可以创建相应的虚拟相机图标,虚拟相机可以是指虚拟相机的图标,与第一设备上其他应用的图标类似。用户可以通过点击虚拟相机图标控制虚拟相机对应的实体相机。因此,第一设备在监测到用户点击虚拟相机图标的操作,可以生成预览请求,通过分布式相机框架向多个虚拟相机HAL下发控制命令,通过控制多个虚拟相机HAL控制虚拟相机HAL对应的实体相机。
如图8所示,所述DMSDP服务可以包括命令管道和数据管道,命令管道用于传输控制命令,数据管道用于传输图像数据。因此,第一设备可以通过DMSDP服务的命令管道向虚拟相机对应的实体相机发送控制命令。
第二设备的实体相机通过DMSDP服务接收控制命令,根据控制命令控制本地的实体相机。图10示出根据本申请一实施例的获取图像的方法的流程图。如图10所示,可以包括以下步骤:
步骤S101,第二设备通过DMSDP服务接收第一设备发送的控制命令,其中,所述控制命令用于控制所述第二设备捕获当前画面;
步骤S102,所述第二设备根据所述控制命令打开摄像头并捕获当前画面;
步骤S103,所述第二设备将所述当前画面发送给所述第一设备。
如图8所示,第二设备通过DMSDP服务器接收到控制命令后,可以根据控制命令调用相机API(Application Programming Interface,应用程序接口)接口,然后通过相机框架向相机HAL下发控制命令,通过相机HAL控制实体相机的打开、拍摄、捕获、关闭等操作。
第二设备可以通过DMSDP服务的数据管道向第一设备发送当前画面。因此,第一设备可以通过DMSDP服务的数据管道接收实体相机响应于控制命令返回的相机数据流。在一种可能的实现方式中,第一设备上可以包括多个虚拟相机HAL,也就是第一设备可以从多个实体相机获取相机数据流。
本实施方式的视频处理方法还可以包括:步骤S905,所述第一设备通过FWK层的图层传递模块,将多个相机数据流分别渲染到对应的缓存,以在相机数据流对应的视图上进行预览。对于步骤S905的介绍,具体可以参见上文所述的步骤S502。在本实施方式中,若所述第一设备监测到对多个相机的录像请求,所述方法还包括:第一设备在APK层后台对所述Buffer上的相机数据流进行合成处理。
在分布式相机场景下,根据本申请上述实施方式的视频处理方法,在第一设备和第二设备之间建立DMSDP服务,在第一设备本地建立第二设备的实体相机的虚拟相机HAL,模拟真实ISP(Internet Service Provider,互联网服务提供商)控制,实现相机命令和数据跨设备,可以实现分布式相机的快速控制。第一设备通过多个视图承接并显示多个相机的相机数据流,采用FWK层从虚拟相机HAL获取多路相机数据流,并采用native层(FWK层)的图层传递模块将获取的多路相机数据流渲染到从相机APK获取的对应的缓存上,从而实现将多路相机流传输给相机APK的多个视图,生成预览结果。
也就是说,在分布上相机框架下,将本地多摄像头换成了远端设备的摄像头,通过分布式相机框架,将本地预览请求和录像请求,下发到对端设备,同时获取对端设备的对应相机数据流,通过不同的surfaceView进行承载显示,在FWK层进行surfaceFlinger渲染,实现多设备的快速预览和录制。
图11示出根据本申请一实施例的分布式相机场景下预览和录像的示意图。如图11所示,两个设备之间建立了DMSDP服务,图11中间的设备可以在显示屏同时预览本设备摄像头采集的实时画面,以及另外一个设备(图11右侧的设备)的摄像头采集到的实时画面,同样的,图11右侧的设备可以在显示屏同时预览本设备摄像头在即的实时画面以及图11中间的设备的摄像头采集的实时画面。
通过本申请上述实施方式的视频处理方法,可以在多设备协同完成一个业务或者体验的时候实现快速预览,也可以将多个设备的相机数据进行同步录制。降低了单设备的功耗,同时更全面的还原一个业务场景。这种方式通过多设备的能力查询方式获取虚拟设备能力,获取多设备的多个实体相机的能力,还降低了本地设备的功耗。
本申请的实施例还提供了一种视频处理装置,所述装置应用于第一设备上。图12示出根据本申请一实施例的视频处理装置的框图,如图12所示,所述装置可以包括:
第一获取模块111,用于在监测到对多个相机的预览请求时,在相机Android应用程序包APK创建所述多个相机对应的视图以及缓存、并将视图对应的缓存下发到框架FWK层,通过FWK层从硬件抽象层HAL获取所多个相机对应的相机数据流;
渲染模块112,用于通过FWK层的图层传递模块,将多个相机数据流分别渲染到对应的缓存,以在相机数据流对应的视图上进行预览。
本申请的视频处理装置,在监测到对多个相机的预览请求时,在相机APK创建与多个相机对应的视图以及缓存,通过FWK层从相机HAL获取多路相机数据流,并采用native层(FWK层)的图层传递模块将获取的多路相机数据流渲染到从相机APK获取的对应的缓存上,从而实现将多路相机流传输给相机APK的多个视图,快速实现多相机预览。相比于相关技术中采用APK层的openGL将多个相机数据流合成渲染到一个视图效率高。
在一种可能的实现方式中,所述第一设备上包括虚拟相机,所述装置还包括:
第二获取模块,用于通过DMSDP服务获取第二设备上的实体相机的硬件参数;
配置模块,用于根据所述实体相机的硬件参数在本地配置对应的虚拟相机。
在一种可能的实现方式中,所述硬件参数包括实体相机的相机能力参数,
所述配置模块,包括:
创建单元,用于根据所述相机能力参数创建所述实体相机对应的虚拟相机硬件抽象层HAL和相机框架,并将所述相机框架加入到分布式相机框架中,
其中,所述虚拟相机HAL位于所述HAL,所述分布式相机框架位于所述FWK层。
通过在第一设备和第二设备之间建立DMSDP服务,在第一设备本地建立第二设备的实体相机的虚拟相机HAL,模拟真实ISP(Internet Service Provider,互联网服务提供商)控制,实现相机命令和数据跨设备,可以实现分布式相机的快速控制。
在一种可能的实现方式中,所述第一获取模块,包括:
发送单元,用于在监测到预览请求时,若所述多个相机包括虚拟相机,则所述第一设备通过DMSDP服务向虚拟相机对应的实体相机发送控制命令;其中,所述控制命令用于控制所述实体相机拍摄当前画面;
接收单元,用于通过DMSDP服务接收所述实体相机响应于所述控制命令返回的相机数据流;其中,所述相机数据流包括所述当前画面。
在分布式相机场景下,根据本申请上述实施方式的视频处理装置,第一设备通过多个视图承接并显示多个相机的相机数据流,采用FWK层从虚拟相机HAL获取多路相机数据流,并采用native层(FWK层)的图层传递模块将获取的多路相机数据流渲染到从相机APK获取的对应的缓存上,从而实现将多路相机流传输给相机APK的多个视图,快速生成预览结果。可以在多设备协同完成一个业务或者体验的时候实现快速预览,也将多个设备的相机数据进行同步录制。降低了单设备的功耗,同时更全面的还原一个业务场景。这种方式通过多设备的能力查询方式获取虚拟设备能力,获取多设备的多个实体相机的能力,还降低了本地设备的功耗。
在一种可能的实现方式中,若所述第一设备监测到对多个相机的录像请求,在所述渲染模块之后,所述装置还包括:
合成模块,用于在APK层后台对多个所述Buffer上的相机数据流进行合成处理。
根据本申请上述实施方式的视频处理装置,通过多个视图承接并显示多个相机的相机数据流,采用FWK层从相机HAL获取多路相机数据流,并采用native层(FWK层)的图层传递模块将获取的多路相机数据流渲染到从相机APK获取的对应的缓存上,从而实现将多路相机流传输给相机APK的多个视图,在APK层后台对多个所述缓存上的相机数据流进行录像合成处理,对于录像合成的过程用户无感知。相比于现有技术中的采用APK层的openGL将多个相机数据流合成渲染到一个视图效率高。
本申请的实施例提供了一种视频处理装置,包括:处理器以及用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令时实现上述方法。
本申请的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
本申请的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RandomAccess Memory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(Electrically Programmable Read-Only-Memory,EPROM或闪存)、静态随机存取存储器(Static Random-Access Memory,SRAM)、便携式压缩盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数字多功能盘(Digital Video Disc,DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
这里所描述的计算机可读程序指令或代码可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(Instruction Set Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(Local Area Network,LAN)或广域网(WideArea Network,WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(Field-ProgrammableGate Array,FPGA)或可编程逻辑阵列(Programmable Logic Array,PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。
这里参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本申请的多个实施例的装置、系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件(例如电路或ASIC(Application SpecificIntegrated Circuit,专用集成电路))来实现,或者可以用硬件和软件的组合,如固件等来实现。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (12)

1.一种视频处理方法,其特征在于,所述方法应用于第一设备上,所述方法包括:
所述第一设备在监测到对多个相机的预览请求时,在相机Android应用程序包APK创建所述多个相机对应的视图以及缓存、并将视图对应的缓存下发到框架FWK层,通过FWK层从硬件抽象层HAL获取所述多个相机对应的相机数据流;
所述第一设备通过FWK层的图层传递模块,将多个相机数据流分别渲染到对应的缓存,以在相机数据流对应的视图上进行预览;
其中,所述第一设备上包括虚拟相机,所述方法还包括:
所述第一设备通过分布式融合感知平台DMSDP服务获取第二设备上的实体相机的硬件参数;
所述第一设备根据所述实体相机的硬件参数在本地配置对应的虚拟相机。
2.根据权利要求1所述的方法,其特征在于,所述硬件参数包括实体相机的相机能力参数,
所述第一设备根据所述实体相机的硬件参数在本地配置对应的虚拟相机,包括:
所述第一设备根据所述相机能力参数创建所述实体相机对应的虚拟相机硬件抽象层HAL和相机框架,并将所述相机框架加入到分布式相机框架中,
其中,所述虚拟相机HAL位于所述HAL,所述分布式相机框架位于所述FWK层。
3.根据权利要求1或2所述的方法,其特征在于,所述第一设备在监测到对多个相机的预览请求时,通过FWK层从HAL获取所多个相机对应的相机数据流,包括:
所述第一设备在监测到预览请求时,若所述多个相机包括虚拟相机,则所述第一设备通过DMSDP服务向虚拟相机对应的实体相机发送控制命令;其中,所述控制命令用于控制所述实体相机拍摄当前画面;
所述第一设备通过DMSDP服务接收所述实体相机响应于所述控制命令返回的相机数据流;其中,所述相机数据流包括所述当前画面。
4.根据权利要求1或2所述的方法,其特征在于,若所述第一设备监测到对多个相机的录像请求,在所述第一设备将多个相机数据流分别渲染到对应的缓存之后,所述方法还包括:
在APK层后台对多个所述缓存上的相机数据流进行合成处理。
5.根据权利要求3所述的方法,其特征在于,若所述第一设备监测到对多个相机的录像请求,在所述第一设备将多个相机数据流分别渲染到对应的缓存之后,所述方法还包括:
在APK层后台对多个所述缓存上的相机数据流进行合成处理。
6.一种视频处理装置,其特征在于,所述装置应用于第一设备上,所述装置包括:
第一获取模块,用于在监测到对多个相机的预览请求时,在相机Android应用程序包APK创建所述多个相机对应的视图以及缓存、并将视图对应的缓存下发到框架FWK层,通过FWK层从硬件抽象层HAL获取所述多个相机对应的相机数据流;
渲染模块,用于通过FWK层的图层传递模块,将多个相机数据流分别渲染到对应的缓存,以在相机数据流对应的视图上进行预览;
其中,所述第一设备上包括虚拟相机,所述装置还包括:
第二获取模块,用于通过分布式融合感知平台DMSDP服务获取第二设备上的实体相机的硬件参数;
配置模块,用于根据所述实体相机的硬件参数在本地配置对应的虚拟相机。
7.根据权利要求6所述的装置,其特征在于,所述硬件参数包括实体相机的相机能力参数,
所述配置模块,包括:
创建单元,用于根据所述相机能力参数创建所述实体相机对应的虚拟相机硬件抽象层HAL和相机框架,并将所述相机框架加入到分布式相机框架中,
其中,所述虚拟相机HAL位于所述HAL,所述分布式相机框架位于所述FWK层。
8.根据权利要求6或7所述的装置,其特征在于,所述第一获取模块,包括:
发送单元,用于在监测到预览请求时,若所述多个相机包括虚拟相机,则所述第一设备通过DMSDP服务向虚拟相机对应的实体相机发送控制命令;其中,所述控制命令用于控制所述实体相机拍摄当前画面;
接收单元,用于通过DMSDP服务接收所述实体相机响应于所述控制命令返回的相机数据流;其中,所述相机数据流包括所述当前画面。
9.根据权利要求6或7所述的装置,其特征在于,若所述第一设备监测到对多个相机的录像请求,在所述渲染模块之后,所述装置还包括:
合成模块,用于在APK层后台对多个所述缓存上的相机数据流进行合成处理。
10.根据权利要求8所述的装置,其特征在于,若所述第一设备监测到对多个相机的录像请求,在所述渲染模块之后,所述装置还包括:
合成模块,用于在APK层后台对多个所述缓存上的相机数据流进行合成处理。
11.一种视频处理装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令时实现权利要求1-5任意一项所述的方法。
12.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1-5中任意一项所述的方法。
CN202011309139.6A 2020-11-20 2020-11-20 视频处理方法、装置及存储介质 Active CN114520868B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202011309139.6A CN114520868B (zh) 2020-11-20 2020-11-20 视频处理方法、装置及存储介质
EP21893906.4A EP4228244A4 (en) 2020-11-20 2021-11-16 VIDEO PROCESSING METHOD AND APPARATUS, AND STORAGE MEDIUM
PCT/CN2021/130989 WO2022105759A1 (zh) 2020-11-20 2021-11-16 视频处理方法、装置及存储介质
US18/253,204 US20240007583A1 (en) 2020-11-20 2021-11-16 Video processing method and apparatus, and storage media

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011309139.6A CN114520868B (zh) 2020-11-20 2020-11-20 视频处理方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN114520868A CN114520868A (zh) 2022-05-20
CN114520868B true CN114520868B (zh) 2023-05-12

Family

ID=81594286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011309139.6A Active CN114520868B (zh) 2020-11-20 2020-11-20 视频处理方法、装置及存储介质

Country Status (4)

Country Link
US (1) US20240007583A1 (zh)
EP (1) EP4228244A4 (zh)
CN (1) CN114520868B (zh)
WO (1) WO2022105759A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116366957B (zh) * 2022-07-21 2023-11-14 荣耀终端有限公司 一种虚拟化相机使能的方法、电子设备及协同工作系统
CN115484403B (zh) * 2022-08-08 2023-10-24 荣耀终端有限公司 录像方法和相关装置
CN117135448A (zh) * 2023-02-24 2023-11-28 荣耀终端有限公司 拍摄的方法和电子设备
CN117135299A (zh) * 2023-04-27 2023-11-28 荣耀终端有限公司 视频录制方法和电子设备
CN116260956B (zh) * 2023-05-15 2023-07-18 四川中绳矩阵技术发展有限公司 一种虚拟现实拍摄方法及系统
CN116320218B (zh) * 2023-05-24 2023-08-29 深圳金智凌轩视讯技术有限公司 基于嵌入式计算机平台的多路视频合成分析处理管理系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657757A (zh) * 2015-11-04 2017-05-10 阿里巴巴集团控股有限公司 一种相机应用的图像预览方法、装置及相机应用系统
WO2018094261A1 (en) * 2016-11-21 2018-05-24 Alibaba Group Holding Limited Method and system for managing buffers
CN109379627A (zh) * 2018-11-27 2019-02-22 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备以及存储介质
CN110377264A (zh) * 2019-07-17 2019-10-25 Oppo广东移动通信有限公司 图层合成方法、装置、电子设备及存储介质
CN111402374A (zh) * 2018-12-29 2020-07-10 曜科智能科技(上海)有限公司 多路视频与三维模型融合方法及其装置、设备和存储介质
CN111405178A (zh) * 2020-03-09 2020-07-10 Oppo广东移动通信有限公司 基于Camera2的拍照方法、装置、存储介质及移动设备
CN111510678A (zh) * 2020-04-21 2020-08-07 上海歌尔泰克机器人有限公司 一种无人机图像传输控制方法、装置和系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103716535B (zh) * 2013-12-12 2018-04-27 乐视致新电子科技(天津)有限公司 一种切换拍摄模式方法和电子设备
CN104951298A (zh) * 2014-03-27 2015-09-30 飞搜股份有限公司 应用程序与虚拟机通讯连接的系统与方法
CN104657956B (zh) * 2015-03-16 2018-10-02 龙旗电子(惠州)有限公司 一种实现智能手机图片美化功能的方法
CN106161991A (zh) * 2016-07-29 2016-11-23 青岛海信移动通信技术股份有限公司 一种摄像头视频处理方法及终端
JP6830203B2 (ja) * 2016-11-18 2021-02-17 パナソニックIpマネジメント株式会社 無線中継装置、プログラム、無線通信システム及び無線通信方法
CN109271117A (zh) * 2017-07-17 2019-01-25 北京海鲸科技有限公司 一种图像显示方法、装置及设备
CN109168021B (zh) * 2018-10-25 2021-03-19 京信通信系统(中国)有限公司 一种推流的方法及装置
CN116320782B (zh) * 2019-12-18 2024-03-26 荣耀终端有限公司 一种控制方法、电子设备、计算机可读存储介质、芯片
CN115136570A (zh) * 2020-02-20 2022-09-30 华为技术有限公司 物联网设备的集成

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657757A (zh) * 2015-11-04 2017-05-10 阿里巴巴集团控股有限公司 一种相机应用的图像预览方法、装置及相机应用系统
WO2018094261A1 (en) * 2016-11-21 2018-05-24 Alibaba Group Holding Limited Method and system for managing buffers
CN109379627A (zh) * 2018-11-27 2019-02-22 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备以及存储介质
CN111402374A (zh) * 2018-12-29 2020-07-10 曜科智能科技(上海)有限公司 多路视频与三维模型融合方法及其装置、设备和存储介质
CN110377264A (zh) * 2019-07-17 2019-10-25 Oppo广东移动通信有限公司 图层合成方法、装置、电子设备及存储介质
CN111405178A (zh) * 2020-03-09 2020-07-10 Oppo广东移动通信有限公司 基于Camera2的拍照方法、装置、存储介质及移动设备
CN111510678A (zh) * 2020-04-21 2020-08-07 上海歌尔泰克机器人有限公司 一种无人机图像传输控制方法、装置和系统

Also Published As

Publication number Publication date
CN114520868A (zh) 2022-05-20
EP4228244A1 (en) 2023-08-16
WO2022105759A1 (zh) 2022-05-27
US20240007583A1 (en) 2024-01-04
EP4228244A4 (en) 2024-05-01

Similar Documents

Publication Publication Date Title
CN114520868B (zh) 视频处理方法、装置及存储介质
CN112286477B (zh) 投屏显示方法及相关产品
CN111666055B (zh) 数据的传输方法及装置
CN113553014A (zh) 多窗口投屏场景下的应用界面显示方法及电子设备
CN111221845A (zh) 一种跨设备信息搜索方法及终端设备
CN114065706A (zh) 一种多设备数据协作的方法及电子设备
CN114442969A (zh) 一种设备间屏幕协同方法及设备
WO2022134691A1 (zh) 一种终端设备中啸叫处理方法及装置、终端
CN114356195B (zh) 一种文件传输的方法及相关设备
CN112822544A (zh) 视频素材文件生成方法、视频合成方法、设备及介质
CN114510186A (zh) 一种跨设备控制方法及设备
CN115484404B (zh) 基于分布式控制的相机控制方法及终端设备
WO2022105793A1 (zh) 图像处理方法及其设备
CN114519935B (zh) 道路识别方法以及装置
WO2022194005A1 (zh) 一种跨设备同步显示的控制方法及系统
CN116954409A (zh) 应用的显示方法、装置及存储介质
CN113642010B (zh) 一种获取扩展存储设备数据的方法及移动终端
CN115114607A (zh) 分享授权方法、装置及存储介质
WO2022121751A1 (zh) 相机控制方法、装置和存储介质
EP4273679A1 (en) Method and apparatus for executing control operation, storage medium, and control
CN114513760B (zh) 字库同步方法、装置和存储介质
WO2023061298A1 (zh) 一种图片备份系统、方法与设备
CN116801346A (zh) 数据传输方法、装置、电子设备及存储介质
CN111125571A (zh) 图片显示方法及装置

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
GR01 Patent grant
GR01 Patent grant