CN114741120B - 用于增强设备流的可插拔组件 - Google Patents

用于增强设备流的可插拔组件 Download PDF

Info

Publication number
CN114741120B
CN114741120B CN202210369341.0A CN202210369341A CN114741120B CN 114741120 B CN114741120 B CN 114741120B CN 202210369341 A CN202210369341 A CN 202210369341A CN 114741120 B CN114741120 B CN 114741120B
Authority
CN
China
Prior art keywords
stream
enhancement
output
devices
flow
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
CN202210369341.0A
Other languages
English (en)
Other versions
CN114741120A (zh
Inventor
M·L·威尔逊
C·P·拉尔森
S·K·曹
李寅
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN202210369341.0A priority Critical patent/CN114741120B/zh
Publication of CN114741120A publication Critical patent/CN114741120A/zh
Application granted granted Critical
Publication of CN114741120B publication Critical patent/CN114741120B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • G06F3/005Input arrangements through a video camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Studio Devices (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开的实施例涉及用于增强设备流的可插拔组件。描述了用于提供流增强组件的示例。具有增强功能的流增强组件可以被初始化,该增强功能指示到一个或多个设备的多个接口和输出流。使一个或多个设备进行以下至少一项的一个或多个功能可以被访问:获得来自一个或多个设备的流输出或者控制一个或多个设备。至少部分地通过修改或相关在多个流输出上所接收到的数据,来自一个或多个设备的多个流输出可以被虚拟化为输出流。输出流可以被输出至一个或多个其他流增强组件或应用。

Description

用于增强设备流的可插拔组件
本申请是国际申请日为2017年11月17日、于2019年5月23日进入中国国家阶段、中国国家申请号为201780072642.4、发明名称为“用于增强设备流的可插拔组件”的发明专利申请的分案申请。
技术领域
本申请涉及计算机领域,具体地涉及用于增强设备流的可插拔组件。
背景技术
许多计算设备采用产生输出流的输入设备,输出流用于由在计算设备上操作的应用所消耗。这些输入设备可以包括传感器设备(例如,相机、生物特征设备等),传感器设备获得并且输出流中的数据,该流中的数据包括多个数据帧,其中数据帧是根据节奏(cadence)来输出的。给定的输入设备通常与在计算设备的操作系统处的驱动器相关联,该驱动器向输入设备提供接口,允许经由操作系统执行的应用访问并利用针对给定输入设备的输出流。然而,驱动器通常由输入设备的硬件销售商来提供,并且因此驱动器受限于显露单个输入设备的各功能,这些功能在实施驱动器时由硬件销售商限定。
发明内容
以下呈现对一个或多个方面的简化的概述,以便提供对这些方面的基本理解。本发明内容不是所有设想的方面的综述,并且不旨在标识所有方面的关键或决定性元素,也不旨在描绘任何或全部方面的范围。其唯一目的是以简化形式呈现一个或多个方面的一些概念,以作为在稍后呈现的更详细描述的前奏。
在示例中,一种用于实施传感器增强组件的方法被提供。该方法包括:由处理器指示流增强配置,流增强配置指示与流增强组件有关的一个或多个增强功能,其中对于一个或多个增强功能中的至少一个增强功能,流增强配置指示至少一个增强功能所请求的多个接口和至少一个增强功能所提供的一个或多个流输出。该方法还包括:由处理器接收多个流以用于至少一个增强功能,该多个流对应于多个接口的至少一部分,由处理器修改来自多个流的数据,以生成用于至少一个增强功能的一个或多个流输出,以及由处理器提供一个或多个流输出,作为至少一个应用或一个或多个其他流增强组件的输入。
在另一示例中,一种用于配置传感器增强组件的方法被提供。该方法包括:由处理器接收第一流增强配置,其中第一流增强配置指示一个或多个增强功能,并且对于一个或多个增强功能中的至少一个增强功能,指示由至少一个增强功能使用的多个接口和由至少一个增强功能提供的一个或多个流输出。该方法还包括:由处理器向第二流增强组件指示由至少一个增强功能提供的一个或多个流输出,并且由处理器接收来自第二流增强组件的第二流增强配置,其中第二流增强配置指示具有接口的至少第二增强功能,该接口对应于第一流增强配置的至少一个增强功能所提供的一个或多个流输出的至少一个流输出。该方法进一步包括:由处理器接收第一流增强配置的至少一个增强功能所提供的至少一个流输出,并且由处理器向第二流增强组件提供该至少一个流输出。
在另一示例中,一种用于提供流增强组件的计算设备被提供。该计算设备包括:存储器和至少一个处理器,存储器存储用于执行流服务器的一个或多个参数或指令,其中流服务器显露与一个或多个流增强组件有关的一个或多个接口,至少一个处理器被耦合至存储器。至少一个处理器配备配置为:初始化具有增强功能的流增强组件,增强功能指示与一个或多个设备的多个接口和输出流;访问针对一个或多个设备的一个或多个接口的至少一部分,来进行以下至少一项:获得来自一个或多个设备的流输出,或控制一个或多个设备;至少部分地通过将在多个流输出上所接收到的数据进行修改或相关,将来自一个或多个设备的多个流输出虚拟化为输出流,并且经由一个或多个接口的至少另一部分向一个或多个其他流增强组件输出该输出流。
为了实现上述及有关目的,一个或多个方面包括此后全面描述并在权利要求中特别指出的特征。以下描述和附图详细阐述了一个或多个方面的图示特征。然而,这些特征仅仅指示各种方式中的少量方式,在这些方式中,多个方面的原则可以被采用,并且此描述旨在包括所有此类方面及其等同。
附图说明
图1是用于实施一个或多个流增强组件的设备的示例的示意图。
图2是用于初始化一个或多个流增强组件的方法的示例的流程图。
图3是用于提供一个或多个流增强组件的方法的示例的流程图。
图4是用于管理一个或多个流增强组件的方法的示例的流程图。
图5是具有被配置在流服务器中的多个流增强组件的设备的示例的示意图。
图6是用于实施流服务器和流增强组件的软件架构的示例的示意图。
图7是用于执行本文所述功能的设备的示例的示意图。
具体实施方式
下文结合附图所阐述的详细描述旨在作为各种配置的描述,而并非旨在仅表示本文所述的概念可以被实践的的配置。该详细描述包括具体细节,用于提供各种概念的透彻理解的目的。然而,本领域技术人员将清楚,这些概念可以在没有这些具体细节的情况下被实践。在一些实例中,已知的组件以框图的形式示出,使得避免模糊此类概念。
本公开描述与提供可插拔组件有关的各种示例,可插拔组件用于增强设备输出流和/或控制设备来产生输出流,可插拔组件在本文中被称为流增强组件。增强的设备输出流被显露给一个或多个应用,以允许应用利用增强的设备输出,以用于一个或多个目的。流增强组件可以与流增强配置相关联,流增强配置限定流增强组件的一个或多个增强功能。例如,对于每个增强功能,流增强配置指示增强功能所使用的多个接口(例如,计算设备中的输入设备的接口),以及增强功能所提供的一个或多个流输出。附加地,给定增强功能的(多个)流输出可以(例如,作为接口)向其他流增强组件显露,以用作其输入流。此外,流增强组件是可插拔的,其原因在于第一流增强组件的一个或多个增强功能可以基于到设备或其他流增强组件的所请求的接口的存在/激活而被启用或禁用(例如,接口是否对应于输入设备的流输出或第二流增强组件的增强组件的增强的输出流,用于控制输入设备的接口等)。
流服务器可以在计算设备上被实施,以允许与计算设备的输入设备通信,以便获得与计算设备的输入设备处的输入有关的输出流,控制输入设备提供输出流等。流服务器也可以允许可插拔的流增强组件被初始化和被用以获得和增强多个输入设备的输出流,控制多个输入设备等。流增强组件可以通过利用其他流增强组件的输出进行扩展,以提供进一步的功能。这可以允许各种源(例如,硬件销售商、原始设备制造商(OEM)、终端用户等)提供用于增强给定输入设备或给定输入设备集的输出的流增强组件,和/或基于给定的流增强组件的输出等提供附加功能。
在具体示例中,输入设备的硬件销售商可以提供具有一个或多个接口的一个或多个流增强组件,以用于获得来自输入设备的数据的流(例如,由(多个)流增强组件所接收的和/或增强的)。利用输入设备的计算设备的OEM可以提供具有一个或多个增强功能的另一流增强组件,以用于增强来自由硬件销售商提供的一个或多个流增强组件的数据流(例如,向数据流添加元数据,将数据流与另一输入设备或流增强组件的另一数据流进行组合,以提供附加功能等)。如由对应的流增强组件所提供的、来自硬件销售商的功能和/或来自OEM的增强功能中的一个或多个可以被显露以供在操作系统上执行的应用使用。相应地,当应用利用来自OEM的增强功能时,增强功能可以接收来自硬件销售商所提供的流增强组件的数据流,进一步修改数据流,并向应用提供输出。
在一个示例用例中,本公开可以在具有多个传感器(例如,相机或其他生物特征传感器,位置确定设备,定位确定设备等)的计算机设备中被实施。计算机设备可以包括一个或多个流增强组件,流增强组件将两个或更多个传感器的输出流从基本上转变为至少一个新的、增强的传感器输出流。例如,计算设备可以采用两个相机,诸如红绿蓝(RGB)相机和红外(IR)相机,并且流增强组件可以接收与相机有关的输入流(例如,经由与相机和/或提供相机的输出流的其他流增强组件的接口),并且可以将流相关和/或组合成单个输出流。流增强组件可以是可插拔的,使得流增强组件的初始化或激活可以取决于在计算设备处所请求的接口是否可用。如此,本公开的实施方式可以简单并有效地提供新的、可配置的信息流,该信息流可以由应用或者被连接至计算机设备的其他设备利用,而不需要特殊编程等,并且以此方式允许流增强组件的自动发现,以用于以下中的一者或两者:确定哪些流增强组件可以被初始化或激活,或者用于生成流增强组件。
现在转向图1-图6,各示例参考一个或多个组件和可以执行本文所述动作或操作的一个或多个方法进行了描绘,其中虚线的组件和/或动作/操作可以是可选的。尽管在以下图2-图4中所述的操作以特定顺序被呈现和/或由示例组件执行,动作的顺序和执行动作的组件可以是变化的,在一些示例中,这取决于实施方式。此外,在一些示例中,动作、功能和/或所述组件中的一个或多个可以由特殊编程的处理器、执行特殊编程的软件的处理器或计算机可读介质来执行,或由能够执行所述动作或功能的硬件组件和/或软件组件的任何其他组合来执行。
图1是可以实施用于促进操作一个或多个传感器设备、其他输入设备等的流服务器的设备100的示例的示意图,流服务器可以基于使用一个或多个可插拔的流增强组件。在示例中,设备100可以包括处理器102和/或存储器104,处理器102和/或存储器104被配置为执行或存储于与提供流服务器106有关的指令或其他参数。例如,处理器102和存储器104可以是通过总线被通信地耦合(例如,在母板上或计算设备的其他部分上,在集成电路上,诸如片上系统(SoC)等)的分离的组件,处理器102和存储器104可以是在彼此内部集成的组件(例如,处理器102可以包括存储器104作为板上组件)等。存储器104可以存储指令、参数、数据结构等,以用于处理器102的使用/执行,以执行本文所述的功能。设备100还可以包括一个或多个传感器设备108、110,以用于获得输入(例如,视频输入、音频输入、生物特征输入或可以在数据帧中获得的其他输入等),以及输出对应的数据的输出流。例如,一个或多个传感器设备108、110可以包括相机(例如,RGB相机、IR相机、深度相机等),相机可以是视频相机、静止图像相机等,眼睛扫描或眼睛追踪传感器、指纹或触摸传感器、麦克风等。设备100也可以可选地包括一个或多个其他输入设备112、114,基于请求和/或检测到的事件,输入设备112、114可以提供附加输入数据,诸如定位设备(例如,全球定位系统(GPS)接收器)、陀螺仪等。例如,传感器设备108、110和/或其他输入设备112、114可以经由基本上任何有线或无线接口(例如,通用串行总线(USB)、火线、局域网(LAN)、无线LAN(WLAN)、蓝牙、射频标识(RFID)、近场通信(NFC)等)而被通信地耦合到计算设备。
在示例中,流服务器106可以获得传感器设备108、110的输出流(例如,成帧的数据的流),以用于显露作为一个或多个应用或一个或多个流增强组件116、118、120等的输入,以供其消耗。例如,成帧的数据可以对应于根据节奏来输出的来自传感器设备108、110的数据。在一个示例中,成帧的数据可以对应于如根据节奏而被捕获的数据(例如,用于相机的每秒的帧)。另外,流服务器106可以包括一个或多个流增强组件116、118、120,流增强组件116、118、120可以限定一个或多个增强功能(诸如增强功能122),该一个或多个增强功能用于获得来自一个或多个传感器设备108、110的数据,一个或多个输入设备112、114等,将数据相关和/或修改数据,并且在增强的输出流中输出数据,以供一个或多个应用124、126、128或其他流增强组件116、118、120或对应的增强功能所使用。流输出140还可以输出成帧的数据,并且数据和/或帧化(framing)参数(例如,节奏)可以与接收自传感器设备108、110、其他输入设备112、114、和/或其他增强功能等的数据和/或帧化参数相同或者根据其来修改。
在具体示例中,流增强组件118可以限定增强功能122,流增强功能122可以被限定为包括至传感器设备108的传感器接口1 132,至传感器设备110的传感器接口2 134,至流增强组件116的增强的流接口136(例如,至其增强功能),至其他输入设备112的其他输入接口138,以及用于输出具有从各种接口132、134、136、138向一个或多个应用124、126(和/或向一个或多个其他流增强组件120)的数据的流的流输出140。例如,接口132、134、136、138可以对应于用以进行以下中至少一个的接口:接收(例如,请求)来自传感器设备108、传感器设备110、流增强组件116(或其特定增强功能)、其他输入设备112等的输出流,或者控制传感器设备108、传感器设备110、流增强组件116(或其特定增强功能)、其他输入设备112等的功能。如图1所示的流增强组件118是流增强组件的一个具体示例,并且其他流增强组件可以实施利用来自其他传感器设备、其他输入设备和/或其他流增强组件的其他输入的其他增强功能,针对这种组件和/或设备提供控制,和/或提供流输出。例如,流增强组件116可以包括与传感器设备108接口连接的至少一个增强功能,并且提供由增强的流接口136所消耗的输出流。附加地,例如,流增强组件120可以与传感器设备110、其他输入设备114和流增强组件118接口连接(例如,以接收流输出140),并且可以提供由应用128所消耗的流输出。
在一个示例中,流增强组件118可以包括通知或者以其他方式指示针对流增强组件118所提供的每个增强功能122的各种接口132、134、136、138和流输出140的配置。在一个示例中,对于一个或多个接口132、134、136、138,该配置可以指示用于获得来自对应设备或流增强组件的流数据的一个或多个所请求的功能,用于控制对应的设备或流增强组件的一个或多个所请求的功能等。相应地,流服务器106可以确定所请求的功能对于其可用的增强功能,并且可以激活这些增强功能的至少一部分,以供其他流增强组件、应用等所使用,这些增强功能附加地可以包括:显露增强功能的对应的可调用功能(例如,以获得其流输出,以控制增强功能的一个或多个方面等)。在示例中,设备的控制功能可以包括:对设备激活或上电,提供用于操作设备一个或多个参数等,如本文示例中进一步所述。
例如,流服务器106可以确定激活增强功能122,和/或相关联的流增强组件118,以便显露用于获得流输出140的增强功能122所限定的一个或多个接口,其中确定激活可以是基于确定:(1)传感器设备108、110是可用的,并且显露增强功能122所请求的功能,用于传感器接口1 132和传感器接口2 134(例如,如在相关联的配置中所规定的),以获得流输出或控制设备;(2)其他输入设备122是可用的,并且显露增强功能122所请求的功能,用于其他输入接口138(例如,如在相关联的配置中所规定的),以促进查询和/或接收相关数据,或控制其他输入设备112;和/或(3)流增强组件116是可用的,并且显露增强功能122所请求的功能,用于增强的流接口136(例如,如在相关联的配置中所规定的)以用于输出增强的流或允许流增强组件116的控制。例如,在这方面,基于确定传感器设备108是可用的,并且显露流增强组件116所请求的功能,流服务器106可以首先激活流增强组件116(或其增强功能),并且然后,可以至少部分地基于激活流增强组件118来激活增强功能122。此外,在这方面,流服务器106可以基于激活增强功能122来激活流增强组件120(或其增强功能),以输出流输出142,流输出142可以是流增强组件120的增强功能的输入(例如,除了确定传感器设备110和其他输入设备114是可用的并且显露所请求的功能之外)。
在一些示例中,流增强组件116、118和/或120的一个或多个增强功能可以是不被激活或显露的,其中一个或多个对应的接口是不可用的(例如,因为对应设备或流增强组件的所请求功能中的一个是不可用的)。附加地,流增强组件116可以在层级上被组织并被显露,使得应用124、126、128和/或高级别流增强组件可以访问下一个低级别流增强组件的输出(例如,应用124和126可以访问流增强组件118的流输出140,如由流增强组件120所显露的)。相应地,流增强组件120可以隐藏来自应用124、126、128的流增强组件118的一些或全部流输出。另外,例如,流服务器106可以向传感器设备108、110、其他输入设备112、114等显露接口,而不需要流增强组件,或者可以允许只通过可用的流增强组件访问这些设备。
在示例中,一旦被激活,流增强组件的增强功能可以接收来自各种输入的数据流和/或所请求的数据,控制一个或多个设备来获得数据流和/或所请求的数据等,并且可以修改、相关或者以其他方式使用各种数据来产生流输出。例如,增强功能122可以经由传感器接口1 132获得来自传感器设备108的输出流(和/或可以经由接口控制传感器设备108),经由传感器接口2 134获得来自传感器设备110的输出流(和/或可以经由接口控制传感器设备110),经由增强的流接口136获得来自流增强组件116的增强功能的输出流(和/或可以经由接口控制增强功能),并且经由其他输入接口138获得来自其他输入设备112的其他输入数据(例如,基于请求/响应,基于订阅或事件驱动的递送接收数据等)。在该示例中,在产生至少一个流输出142中,增强功能122可以修改、相关或者以其他方式使用流数据或其他输入数据。
在具体示例中,传感器设备108可以是RGB相机、传感器设备110可以是深度相机,流增强组件116可以从RGB相机输出镜头校正的流,并且其他输入设备112可以是陀螺仪。在该示例中,流增强组件118可以经由传感器接口2 134获得用于一个或多个对象的深度信息,使用深度信息以经由传感器1接口132设置RGB相机的深度,接收来自RGB相机的图像作为镜头校正的图像并从流增强组件116输出,并且将镜头校正的图像与来自陀螺仪的位置数据相关以产生流输出142。因而,例如,流输出142可以包括按节奏提供的成帧的数据,其中每个帧包括镜头校正的图像和包括陀螺仪位置信息的至少一些帧(例如,在陀螺仪经由传感器接口2 134提供位置改变通知的帧中)。相应地,应用124、126和/或流增强组件120可以接收流输出140(例如,根据节奏发送的帧,其中节奏可以对应于流增强组件116输出的节奏),并且可以利用流输出140,使用从流输出140获得的图像和对应的位置信息在创建更大的图像中相对于彼此放置图像,来创建更大的深度聚焦的全景图像。在另一示例中,传感器设备108和传感器设备110均可以是从不同角度提供三维图像的RGB相机,并且流增强组件118可以从两个相机提供相关的输出,以提供三维图像。这些是具体的示例,并且许多其他示例可以利用流增强组件来提供对流输出的更多或更少复杂度的修改。
图2是方法200的示例的流程图,方法200用于初始化和利用流增强组件,以用于与多个输入设备或其他流增强组件接口连接以生成供应用或其他流增强组件消耗的输出流。例如,方法200可以由设备100和/或其一个或多个组件执行,以促进执行一个或多个可插拔的流增强组件。
在方法200中,在动作202处,流增强组件可以被初始化,流增强组件具有指示到一个或多个设备的多个接口和输出流的增强功能。在示例中,流服务器106,例如,与处理器102、存储器104等一起,可以初始化流增强组件116、118、120,流增强组件116、118、120具有增强功能122,其指示到一个或多个设备(例如,传感器接口1 132,传感器接口2 134,增强的流接口136,其他输入接口138等)和输出流(例如,流输出140)的多个接口。在示例中,流增强组件118可以指示(例如,经由接口显露)一个或多个增强功能,包括增强功能122,相关联的接口(例如,针对增强功能122的接口132、134、136、138),和/或相关联的输出(例如,流输出140)。例如,流增强组件118可以指示用于一个或多个增强功能的配置,该配置指示各种接口和对应的输出。
在示例中,指示配置可以是向流服务器106注册流增强组件118和/或有关的增强功能(例如,增强功能122)的一部分。在一个示例中,流增强组件116、118、120和/或有关的配置可以在针对(在设备100上)执行流服务器106的操作系统的驱动程序(driver)包中被指定,并且流增强组件116、118、120的注册和/或初始化可以由操作系统基于驱动程序的初始化、设备100上的流服务器106的初始化等而发生。在一个示例中,当流增强组件116、118、120被注册和/或初始化时,如上所述,与其相关联的输出流(和/或用于接收输出流或用于修改流增强组件的增强功能的可能的一个或多个接口)可以被显露,以用于注册和/或初始化可以使用输出流(或接口)的其他流增强组件。在示例中,流服务器106可以利用描述每个流增强组件的配置来确定增强功能,针对这些增强功能,基于特定的接口是否可用,可以初始化流增强组件,并且可以相应地初始化每个可用的增强功能。
在这方面,如上所述,有可能一些增强功能和/或对应的流增强组件不会基于某些输出流或有关的接口被初始化,以访问输出流,或者修改不可用的某些设备、增强功能等。这可以允许组件是可插拔的,以便基于设备接口的可用性、其他流增强组件的其他增强功能等利用全部、一些或不可用的增强功能而操作,其中可用的增强功能或有关的接口可以被显露以供使用。
在方法200中,在动作204处,针对一个或多个设备的一个或多个接口可以被访问,以获得来自一个或多个设备的流输出或者控制一个或多个设备。在一个方面,接口132、134、136、138等,例如,与流服务器106、处理器102、存储器104等一起,可以访问针对一个或多个设备的一个或多个接口,以获得来自一个或多个设备的流输出或者控制一个或多个设备。例如,接口132、134可以获得来自传感器设备108、110的输出流,或者可以控制传感器设备108、110,这可以是基于来自设备和/或其他设备的输出流(例如,基于来自深度相机的输出流中的深度信息,控制用于聚焦RGB相机的深度)。在该示例中,传感器设备108可以显露用于从中获得流输出或控制其一个或多个方面的一个或多个接口,并且基于被限定针对增强功能122的指令,传感器接口1 132可以利用一个或多个接口以获得流输出或控制传感器设备108。类似地,传感器设备110可以显露用于从中获得流输出或控制其一个或多个方面的一个或多个接口,并且基于被限定针对增强功能122的指令,传感器接口2 134可以利用一个或多个接口以获得流输出或控制传感器设备110。同样地,在示例中,流增强组件116可以显露用于从中获得流输出(例如,从其增强功能)或控制流增强组件116的一个或多个方面(例如,其增强功能)的一个或多个接口,并且基于被限定针对增强功能122的指令,增强的流接口136可以利用一个或多个接口来获得流输出或控制流增强组件116(例如,或其增强功能)。
在一个示例中,增强功能122可以访问针对一个或多个设备的一个或多个接口,以用于基于访问一个或多个接口控制一个或多个设备来获得来自一个或多个设备的流输出。例如,基于接收来自一个或多个其他设备的流输出,增强功能122可以访问一个或多个接口以激活、修改针对一个或多个设备的一个或多个操作参数等。在具体示例中,基于经由传感器接口134接收来自传感器设备110的数据,增强功能122可以经由传感器接口1 132激活传感器设备108,基于经由传感器接口2 134接收来自传感器设备110的数据,增强功能122可以经由传感器接口1 132修改传感器设备108的操作参数(诸如时间偏移),等。
在方法200中,在动作206处,来自一个或多个设备的多个流输出可以被虚拟化为输出流。在一个方面,增强功能122,例如,与流服务器106、处理器102、存储器104等一起,可以将来自一个或多个设备的多个流输出虚拟化为输出流。在一个示例中,增强功能122可以虚拟化来自传感器设备108(经由传感器接口1 132)、传感器设备110(经由传感器接口2134)的流输出,并且流增强组件116输出(经由增强的流接口136)到输出流中(例如,流输出140)。在一个示例中,利用聚合的数据,和/或基于对流输出的进一步的修改和/或相关(基于增强功能122),增强功能122可以生成单个输出流。
在一个示例中,增强功能122可以将来自各种传感器设备108、110、流增强组件116等的数据聚合成单个输出流,并且因此,在数据被接收自传感器设备108、110、流增强组件116等时,流输出140可以输出数据。例如,单个输出流可以输出成帧的数据,其中每个帧可以具有针对特定类型的数据的容器(例如,特定设备的,如由增强功能122修改的,等),其中接收应用或流增强组件可以访问容器以获得在单个输出流中的数据。在另一示例中,在对多个流输出进行虚拟化时,可选地在动作208处,来自多个流输出中的每个的数据可以在单个输出流中相关。在一个方面,增强功能122,例如,与流服务器106、处理器102、存储器104等一起,可以将来自多个流输出中的每个的数据相关为输出流(例如,流输出140)。在示例中,增强功能122可以利用许多不同类型的相关函数,诸如空间相关函数,时间相关函数等,以将接收自多个流输出的数据相关成输出流。
例如,增强功能122可以实施时间相关,以基于与在输出流中所接收的成帧的数据有关的时间(例如,基于与成帧的数据相关联的时间戳),将传感器设备108、110的输出流相关,并且可以将来自传感器设备108、110两者的时间相关的成帧的数据递送至输出流(例如,基于确定来自传感器设备108、110的成帧的数据具有类似的时间戳)。在另一示例中,基于其他数据,诸如来自陀螺仪的位置,来自GPS接收器的定位等,增强功能122可以实施空间相关以将传感器设备108、110的输出流相关。例如,增强功能122可以基于确定帧与类似的空间数据相关联,而将来自传感器设备108、110的成帧的数据相关,空间数据可以从其他输入源获得。在另一示例中,增强功能122可以将来自传感器设备108、110的成帧的数据的流输出进行空间相关,以在来自麦克风的输入数据达到音量级别阈值(例如,当存在足够的音频活动时的流相机帧)时,显露来自传感器设备108、110的数据。
因此,例如,在虚拟化多个流输出时,可选地在动作210处,基于来自其他输入设备的附加输入,数据可以被修改。在一个方面,增强功能122,例如,与流服务器106、处理器102、存储器104等一起,可以基于来自其他输入设备的附加输入来修改数据。在另一示例中,基于将来自其他输入设备的元数据(例如,来自陀螺仪的位置数据,来自GPS的定位数据等)添加到流输出140中的成帧的数据,增强功能122可以修改数据。在示例中,其他输入设备112可以显露用于从中获得输出或控制其一个或多个方面的一个或多个接口,并且基于被限定针对增强功能122的指令,其他输入接口136可以利用一个或多个接口以获得输出或控制其他输入设备112。
在方法200中,在动作212处,输出流可以被输出。在一个方面,增强功能122,例如,与流服务器106、处理器102、存储器104等一起,可以输出输出流(例如,如流输出140)。例如,增强功能122可以向接口输出输出流,以用于由一个或多个应用124、126、其他流增强组件120等的消耗(或递送至一个或多个应用124、126、其他流增强组件120等)。在示例中,增强功能122可以输出输出流作为以节奏传输的成帧的数据,成帧的数据可以包括来自各种传感器设备的相关的流输出,来自其他输入设备的附加数据等,如上所述。在一个示例中,增强功能122可以以类似于一个或多个传感器设备108、110的节奏的节奏,比传感器设备108、110更快或更慢的节奏,传感器设备108、110的至少共同的节奏,不同的限定的节奏等,来输出输出流。在示例中,增强功能122还可以(例如,在配置中)指示关于流输出140的一个或多个参数,诸如节奏、帧大小或长度等。例如,应用124、126、另一流增强组件120等,可以获得并利用流输出140。在示例中,基于特定文件类型或输出类型,增强功能122可以输出输出流作为输出流的多路复用流,其允许分离多路复用流的某些部分(例如,通过一个或多个应用或其他流增强组件消耗输出流)等。
在方法200中,可选地在动作214处,输出流可以被显露以供其他流增强组件使用。在一个方面,流服务器106,例如,与处理器102、存储器104等一起,可以显露输出流(例如,流输出140),以供其他流增强组件(例如,流增强组件120)使用。例如,流服务器106可以在配置中显露输出流,其由其他流增强组件可访问,以允许流增强组件消耗和/或修改输出流。在另一示例中,基于流增强组件118的初始化,其他流增强组件可以被初始化,并且向其他流增强组件显露输出流可以基于初始化和/或执行其他流增强组件。在本文进一步描述的示例中,流服务器106可以显露输出流作为具有成帧的数据的多路复用的流,针对多个帧中的每个帧,成帧的数据(例如,根据节奏)被发送以用于每个传感器设备108、110,并且具有针对经由上下文可以被访问的每个数据的容器(例如,专用于给定的传感器设备108、110的容器)。
如上所述,流增强组件118可以促进隐藏一些功能或至设备和/或其他流增强组件的接口。在该示例中,流增强组件118可以显露输出流(例如,流输出140),输出流不同于经由接口132、134、136、138所提供的流。在具体示例中,流增强组件116可以由传感器设备1的硬件销售商提供,并且可以显露镜头校正的输出流。流增强组件118可以经由增强的流接口136获得镜头校正的输出流,并且在生成流输出140时使用此输出流,但是可以不显露如从流增强组件116接收的、对应于镜头校正的输出流的输出流,或者来自传感器设备108的原始数据输出流。在这方面,利用来自增强功能122的流输出140的流增强组件(例如,流增强组件120)可以只能够经由流增强组件118所显露的接口来访问输出流。
在这方面,在方法200中,可选地在动作216处,具有增强功能的另一流增强组件可以被初始化,该增强功能具有用以访问输出流的接口。在一个方面,流服务器106,例如,与处理器102、存储器104等一起,可以初始化具有增强功能的另一流增强组件(例如,流增强组件120),该增强功能具有用以访问输出流的接口。该其他流增强组件可以获得来自流输出140的数据并且修改数据以用于在另一流输出中输出。
图3是方法300的示例的流程图,方法300用于提供流增强组件,流增强组件用于与多个输入设备或其他流增强组件接口连接,以生成输出流,以供应用或其他流增强组件的消耗。例如,方法300可以由设备100和/或其一个或多个组件执行,以促进提供一个或多个可插拔的流增强组件。
在方法300中,可选地在动作302处,关于被指示用于一个或多个设备或流增强组件的接口的一个或多个参数可以被接收。在一个方面,流增强组件118,例如,与流服务器106、处理器102、存储器104等一起,可以接收关于被指示用于一个或多个设备(例如,传感器设备108、110,输入设备112、114等)或流增强组件(例如,流增强组件116)的接口的一个或多个参数。在示例中,流增强组件118可以接收一个或多个参数作为在流服务器106上执行初始化的一部分,以基于在配置中用于增强功能的被指示的相关联的接口是否可用,来确定哪些增强功能可以被激活。因此,例如,在初始化期间,流增强组件116可以接收来自流服务器106的一个或多个参数,并且可以确定在其增强功能(例如,增强功能122)中所限定的接口是否出现,该一个或多个参数包括至一个或多个设备或其他流增强组件的可用的接口的列表。在另一示例中,在初始化期间,流增强组件116可以向流服务器106指示配置,该配置指示用于其增强功能的接口,并且可以接收一个或多个参数作为来自流服务器106的指示,或用于给定增强功能的接口是否可用。
在方法300中,在动作304处,流增强配置可以被指示,流增强配置指示与流增强组件有关的一个或多个增强功能。在一个方面,流增强组件118,例如,与流服务器106、处理器102,、存储器104等一起,可以指示流增强配置,流增强配置指示与流增强组件118有关的一个或多个增强功能(例如,增强功能122)。例如,指示流增强配置可以包括向流服务器106提供配置,以允许流服务器106基于针对各种流增强组件的配置,来初始化流增强组件118和/或确定哪些其他流增强组件可以被初始化。例如,如上所述,流增强组件可以利用另一流增强组件的输出流,并且因此,流服务器106可以接收所指示的配置,并且基于显露所利用的接口的流增强组件是否出现(例如,由流服务器106配置或初始化),来确定哪些流增强组件可以被激活。在另一示例中,流增强组件118可以向流服务器106和/或其他流增强组件指示配置,以(例如,经由流服务器106或者以其他方式)促进确定流增强组件118所提供的流输出的类型,并且相应地生成或初始化流增强组件,流增强组件获得并修改流增强组件118的增强功能122的流输出140的数据。
在方法300中,可选地在动作306处,基于一个或多个增强功能所指示的一个或多个接口,一个或多个设备或流增强组件可以被控制。在一个方面,增强功能122,例如,与流服务器106、处理器102、存储器104等一起,基于一个或多个增强功能(例如,增强功能122)所指示的一个或多个接口,可以控制一个或多个设备(例如,传感器设备108、110、输入设备112等)或流增强组件(例如,流增强组件116)。例如,增强功能122可以经由其到达的对应的接口(例如,传感器接口1 132、传感器接口2 134、增强的流接口136、其他输入接口138等)激活一个或多个设备或流增强组件。在另一示例中,增强功能122可以修改一个或多个参数,以用于经由对应的接口操作设备或流增强组件,诸如用于操作设备或组件的时序偏移等。
在示例中,部分地基于接收来自一个或多个其他设备或流增强组件的输出流中的数据,部分地基于确定要控制其他设备或流增强组件等,增强功能122可以控制一个或多个设备或流增强组件。在一个具体示例中,增强功能122可以经由传感器接口1 132控制传感器设备108来激活传感器设备108,并且可以确定还要与传感器设备108并发地经由传感器接口2 134激活传感器设备110(例如,基于确定要激活传感器设备108)。在另一具体示例中,增强功能122可以确定接收自传感器设备108和传感器设备110的输出流之间的时序偏移(例如,基于经由输出流的数据输出中的时间戳),并且可以经由对应的接口控制传感器设备108或传感器设备110中的一个或多个,以使用时序偏移来操作,这可以产生来自传感器设备108、110的时间相关的数据。
在方法300中,在动作308处,对应于针对至少一个增强功能的多个接口的多个输出流可以被接收。在一个方面,增强功能122,例如,与流服务器106、处理器102和/或存储器104一起,可以接收对应于针对至少一个增强功能(例如,增强功能122)的多个接口(例如,接口132、134、136、138)的多个输出流。例如,基于对应的多个接口,流服务器106可以将如接收自对应的设备(例如,传感器设备108、110,输入设备112等)和/或流增强组件(例如,流增强组件116)的输出流输出至一个或多个应用、流增强组件(例如,流增强组件118)等。此外,在这方面,接收输出流可以包括接收来自输出流的数据(例如,设备或流增强组件所输出的成帧的数据,如其他输入设备所输出的其他输入数据,等)。相应地,在示例中,增强功能122可以以变化的节奏接收来自各种输出流的成帧的数据,和/或在被请求时接收其他输入数据等。
在方法300中,在动作310处,来自多个流的数据可以被修改以生成一个或多个流输出,以用于至少一个增强功能。在一个方面,增强功能122,例如,与流服务器106、处理器102、存储器104等一起,可以修改来自多个流的数据以生成一个或多个流输出,以用于至少一个增强功能。例如,增强功能122可以聚合来自多个流的数据,如上所述,以用于包括在输出流中(例如,流输出140),基于时间相关、空间相关等将来自多个流的数据相关,输出具有附加元数据(例如,关于流数据的位置或定位信息)的数据,更改数据(例如,基于其他输入数据)等。例如,基于附加输入数据,增强功能122可以更改数据,这可以包括用于修改数据的一个或多个滤波器,诸如针对相机传感器的镜头校正信息,或者针对来自相机传感器的图像的其他滤波器(例如,以降低噪声,减少红眼,提供白噪声均衡等)等。在任何情况下,增强功能122可以修改数据以提供增强的输出流。
在方法300中,在动作312处,一个或多个流输出可以被提供作为应用或另一流增强组件中的至少一个的输入。在一个方面,流服务器106,例如,与增强功能122、流增强组件118、处理器102、存储器104等一起,可以提供一个或多个流输出作为应用(例如,应用124、126)或另一流增强组件(例如,流增强组件120)中的至少一个的输入。例如,一旦其他流增强组件被激活或者被初始化,流服务器106就可以提供来自一个或多个流输出(例如,流输出140)的输出至一个或多个流增强组件120,或至经由对应的接口执行并请求(多个)流输出的应用124、126。
图4是方法400的示例的流程图,方法400用于促进流增强组件的操作,以用于与多个输入设备或其他流增强组件接口连接,以生成和利用输出流。例如,方法400可以由设备100和/或一个或多个其组件(例如,流服务器106)执行,以促进提供一个或多个可插拔的流增强组件。
在方法400中,在动作402处,第一流增强配置可以被接收以用于第一流增强组件,该第一流增强配置针对至少一个增强功能指示多个所请求的接口和一个或多个流输出。在一个方面,流服务器106,例如,与处理器102、存储器104等一起,可以接收用于第一流增强组件(例如,流增强组件118)的第一流增强配置,针对至少一个增强功能(例如,增强功能122)指示多个所请求的接口(例如,接口132、134、136、138)和一个或多个流输出(例如,流输出140)。在示例中,指示一个或多个流输出的第一流增强配置可以指示第一流增强组件所显露的一个或多个接口,以接收一个或多个流输出。另外,第一流增强配置还可以指示用于控制增强功能122的一个或多个方面(例如,以激活增强功能122,向流输出140应用时序偏移,等)的一个或多个接口。
在示例中,流服务器106可以接收来自流增强组件118的第一流增强配置,作为用于注册流增强组件118以供流服务器106使用的注册过程的一部分,作为初始化流增强组件118以用于经由流服务器106执行的一部分等。在任何情况下,流服务器106可以利用第一流增强配置来确定一个或多个接口,该一个或多个接口可以被显露以供在设备100的操作系统(例如,其可以是也执行流服务器106的操作系统)上执行的其他流增强组件和/或应用使用。
在方法400中,在动作404处,一个或多个流输出可以被指示给第二流增强组件。在一个方面,流服务器106,例如,与流增强组件118、处理器102、存储器104等一起,可以向第二流增强组件(例如,流增强组件120)指示一个或多个流输出(例如,流输出140)。例如,流服务器106可以(例如,经由一个或多个接口)显露流增强组件118的一个或多个流输出,以用于生成或初始化第二流增强组件120。如上所述,在示例中,基于向第二流增强组件120(例如,在如下图5所述的客户端上下文中)提供可用的接口的列表,基于确定一个或多个所请求的接口对于第二流增强组件120是否可用等,流服务器106可以指示一个或多个流输出。
在方法400中,在动作406处,第二流增强配置可以接收自第二流增强组件,第二流增强配置指示对应于第一流增强配置的一个或多个流输出中的至少一个流输出的接口。在一个方面,流服务器106,例如,与处理器102、存储器104等一起,可以从第二流增强组件(例如,流增强组件120)接收第二流增强配置,第二流增强配置指示对应于第一流增强配置的一个或多个流输出中的至少一个流输出的接口。如上所述,流服务器106可以接收第二流增强配置作为用于注册流增强组件120以供流服务器106使用的注册过程的一部分,作为初始化流增强组件120以用于经由流服务器106执行的一部分等。在任何情况下,流服务器106可以初始化第二流增强组件120,以接收来自第一流增强组件118的流输出140。
在方法400中,可选地在动作408处,来自一个或多个设备或流增强组件的一个或多个流和/或来自一个或多个其他输入的输入数据可以基于多个接口而被获得。在一个方面,流服务器106,例如,与处理器102、存储器104等一起,基于在流增强配置中所指示的多个接口(例如,接口132、134、136、138),可以获得来自一个或多个设备(例如,传感器设备108、110)或流增强组件(例如,流增强组件116)的一个或多个流和/或来自一个或多个其他输入(例如,其他输入设备112)的输入数据。例如,基于第一流增强配置,流服务器106可以获得一个或多个流或其他输入数据,这可以包括:根据流的节奏接收一个或多个流,基于第一流增强配置所指示的请求或对应的增强功能请求其他输入数据,等。
在方法400中,可选地在动作410处,一个或多个流和/或输入数据可以被提供给第一流增强组件。在一个方面,流服务器106,例如,与处理器102、存储器104等一起,可以向第一流增强组件118提供一个或多个流和/或输入数据。如上所述,例如,流服务器106可以在对应的接口132、134、136、138上向流增强组件118提供一个或多个流和/或其他输入数据,这可以包括:基于如接收自对应的设备/流增强组件的流的节奏来提供一个或多个流。此外,如上所述,流增强组件118可以接收流和/或输入数据,并且生成一个或多个流输出(例如,流输出140),该一个或多个流输出可以被提供至流服务器106,以用于经由对应的接口向一个或多个其他流增强组件或应用显露。
在方法400中,在动作412中,第一流增强组件的至少一个增强功能所提供的至少一个流输出可以被接收。在一个方面,流服务器106,例如,与处理器102、存储器104等一起,可以接收第一流增强组件(例如,流增强组件118)的至少一个增强功能(例如,增强功能122)所提供的至少一个流输出(例如,流输出140)。例如,接收至少一个流输出可以包括在如第一流增强配置所指示的流输出上接收数据。例如,如本文所述,在成帧的数据基于节奏而被发送时,流服务器106可以从至少一个增强功能接收至少一个流输出。
在方法400中,在动作414处,至少一个流输出可以被提供给第二流增强组件。在一个方面,流服务器106,例如,与处理器102、存储器104等一起,可以向第二流增强组件(例如,流增强组件120)提供至少一个流输出(例如,流输出140)。例如,如上所述,在成帧的数据基于第一流增强组件118的节奏而被发送时,流服务器106可以显露流输出140,以用于由第二流增强组件120接收。例如,第二流增强组件120可以利用流输出140作为输入,以生成另一增强的流输出。
图5是设备500的示例的示意图,设备500可以实施流服务器以用于提供对一个或多个传感器设备的访问。类似于图1的设备100的设备500可以包括流服务器502,流服务器502可以经由设备500的处理器102和/或存储器104来执行,如上文关于设备100所描述的。流服务器502可以类似于图1中的流服务器106。例如,设备500可以执行操作系统,流服务器502可以在该操作系统上执行。附加地,设备500可以包括一个或多个应用504、506(例如,类似于图1中的应用124、126),应用504、506也可以在操作系统上执行和/或访问来自流服务器502的一个或多个流(例如,以用于将其中的数据提供至接口或者以其他方式利用来自流的数据)。
在示例中,流服务器502可以包括客户端上下文510,客户端上下文510可以向一个或多个传感器设备512、514、516和/或流增强组件520、522、524显露各种接口,以用于由应用504、506使用,来控制一个或多个设备512、514、516或组件520、522、524和/或来从中获得数据流。如上所述,基于确定针对流增强组件520、522、524(例如,在其配置中)所限定的接口是否可用,流增强组件520、522、524可以是由流服务器502初始化的可插拔的组件。如上所述,例如,流服务器502可以在层级中初始化流增强组件520、522、524,以确保至少与其他流增强组件有关的接口可以是可用的。相应地,例如,流服务器502可以初始化流增强组件522,并且然后初始化流增强组件520,因此,当初始化流增强组件520时,来自流增强组件522的接口可以被确定为可用。在这方面,通过链接流增强组件(例如,流增强组件520、522等,其中附加的流增强组件可以在客户端上下文510和传感器设备514之间),流增强组件可以被水平地扩展,或者通过与多个输入(例如,与传感器设备512、514和516(例如,经由流增强组件520、522和524)通信的客户端上下文510等)接口连接,流增强组件可以被垂直地扩展。
另外,例如,经由客户端上下文510对传感器设备512、514、516或流增强组件520、522、524的访问可以是所示分层的,使得访问来自传感器设备514的流或者控制传感器设备514可以经由流增强组件522而发生,这可以基于流增强组件520所显露的接口经由流增强组件520来发生。在示例中,传感器设备514可以包括相机,基于由相机捕获图像,相机显露原始数据流输出。例如,基于流增强组件522中的相机的销售商所提供的镜头校正数据,流增强组件522可以限定用于向镜头校正的输出流提供接口的增强功能。流增强组件520可以经由至流增强组件522的接口获得镜头校正数据,但是可能不能够直接访问传感器设备514,以接收来自相机的原始输出流。因此,例如,基于所显露的接口,流增强组件522可以通过其他应用和/或传感器增强组件来限制与传感器设备514的交互。
类似地,流增强组件520可以获得镜头校正的输出流,并且附加地修改镜头校正的输出流,诸如通过将镜头校正的输出流与来自传感器设备516(诸如麦克风)的输出流进行空间相关。在具体示例中,当来自与传感器设备516有关的麦克风的音频达到阈值音量级别时,流增强组件520可以提供限定接口的增强功能,以用于提供来自与传感器设备514有关的相机的图像的输出流。因此,客户端上下文510可以经由流增强组件520访问该接口,但是可能不能够访问流增强组件522和/或传感器设备514的其他接口/增强功能。在另一示例中,流增强组件522可以提供增强功能,增强功能限定用于直接至客户端上下文510的镜头校正的输出流的接口(例如,和/或用以控制流增强组件522的接口,流增强组件522可以控制传感器设备514)。此外,例如,流增强组件520可以提供增强功能以限定用于针对传感器设备516的输出流的接口(例如,和/或用以控制流增强组件520的接口)。
在其他示例中,如图所示,客户端上下文510可以访问流增强组件524,以接收来自传感器设备516的输出流,或可能地控制传感器设备516的一个或多个参数。附加地,例如,客户端上下文510可能能够在没有流增强组件的情况下(例如,流增强组件可能没有针对传感器设备512而出现),直接访问传感器设备512以获得输出流,和/或修改其一个或多个参数。
图6是用于使用流服务器640和/或对应的流增强组件的软件架构600的示例的系统示意图。操作系统610可以管理应用的执行,管理应用之间的信息的交换,并且为应用提供服务,诸如通过提供至硬件传感器的接口。OS 610还可以包括流服务器640,流服务器640可以被用来发现和配置一个或多个流增强组件642,并且用来管理从流服务器640的资源至应用的数据的运输。例如,软件架构600可以由设备100、500(例如,经由处理器102、存储器104等)执行,以提供下面所描述的各方面。此外,流服务器640可以类似于流服务器106、502,并且流增强组件642(其可以包括多个流增强组件)可以类似于流增强组件116、118、120、520、522、524等。
OS 610可以将存储器(例如,设备100的存储器104)划分为对应于不同特权级别的不同空间,其中,较高特权的过程具有对存储器和服务的更多访问,并且较低特权的过程具有对存储器和服务的更少访问。例如,OS 610可以将存储器划分为用户空间620和内核空间630。应用(诸如应用650)和较低特权的软件例程可以在用户空间620中操作,并且OS 610的较高特权的服务可以在内核空间630中操作。通过限制对潜在易出错的或恶意的应用的存储器访问,将存储器分离成用户空间620和内核空间630可以增加OS 610的安全性、隐私性和默认容差。
OS 610可以包括不同的软件例程、模块或组件,用于管理程序的执行的不同方面。例如,OS 610可以包括用于管理流数据的流服务器640、用于管理虚拟和物理存储器的存储器管理器680、用于管理图形存储器的图形存储器管理器690、和用于初始化和管理硬件传感器的传感器驱动器670(例如,传感器设备,诸如传感器设备108、110、512、514、516)。例如,当过程被启动时,存储器管理器680可以被用来针对新的进程或应用创建虚拟存储空间,用以出于各种目的而分配虚拟存储器,并且用以将虚拟地址映射至物理地址和/或辅助存储装置中的定位。存储器管理器680可以使用页表来追踪虚拟至物理的映射。存储器管理器680通常使用位于系统存储器内的物理存储器,系统存储器被紧密耦合至GPU。图形存储器管理器690可以类似于存储器管理器680,区别在于图形存储器管理器690可以与被紧密耦合至GPU的图形存储器一起使用。因此,图形存储器管理器690和存储器管理器680在物理存储器的不同的非重叠部分上操作。
传感器驱动器670可以由OS 610使用,以与硬件传感器进行通信。为了易于说明,示出了单个传感器驱动器670,但是可以存在多个传感器驱动器,诸如针对设备的每种类型的传感器的传感器驱动器。传感器驱动器670可以被用来初始化和/或更新传感器的注册,以便传感器可以被控制。传感器驱动器670可以被用来读取传感器的注册,以便OS 610知晓数据何时从传感器可获得。传感器还可以具有在传感器内的嵌入式存储器,以用于存储传感器所收集的数据,并且传感器驱动器670可以被用来管理从嵌入式物理存储器至OS 610的数据的运输。
流服务器640可以使用流增强组件642来管理传感器的配置、来自传感器的数据的运输、修改传输自传感器的数据等。例如,流服务器640可以包括用于管理数据传输的传输组件644和用于管理传感器的配置的配置组件646,传感器的配置可以是经由接口从流增强组件642所提供的,如上所述。流服务器640,例如,经由客户端上下文,可以发布代表可用的流增强组件642的拓扑和对应的接口,以访问一个或多个其他流增强组件和/或传感器。
配置组件646也可以被用来创建缓冲器(例如,数据缓冲器654和674),以用于将来自传感器的数据运输至应用。例如,当传感器被首次使用时,过程(生产者过程)和虚拟存储器空间可以被创建用于传感器设备。生产者过程可以被用来产生和管理来自传感器的数据传输,并且可以包括传感器驱动器670的软件例程。使用传感器数据的应用或流增强组件可以运行在不同的过程(消耗者过程)中。生产者过程可以被创建作为设备的初始化序列的一部分,例如,当应用请求使用传感器时,或者响应于启动与传感器相关联的应用时。物理存储器可以被分配,以用于与传感器相关联的数据缓冲器。特别地,数据缓冲器可以在生产者过程的虚拟地址范围内被分配,并且物理存储器可以被映射至虚拟地址范围。例如,存储器可以通过调用存储器管理器680、图形存储器管理器690和/或传感器驱动器670的服务而被分配。因此,物理存储器可以是与CPU紧密耦合的系统存储器、与GPU紧密耦合的图形存储器、和/或与传感器紧密耦合的嵌入式传感器存储器。来自每个页面内的地址可以被读取(或被探测)并被锁定在物理存储器中。锁定存储器包括保持数据缓冲器的页面存留在物理存储器中,以便页面不会被页面调出至辅助存储装置。通过分配物理存储器页面至消耗过程的虚拟地址,物理存储器可以与调用或消耗应用所共享。因此,不同的虚拟地址可以映射至相同的物理地址。生产者虚拟地址、消耗者虚拟地址和物理地址的映射可以被保存在存储器描述符列表或其他数据结构中。存储器描述符列表可以是有效存储器定位的阵列或所链接的列表。
应当注意,为了易于说明,上述描述仅描述了用户空间620和内核空间630之间的一个功能划分。然而,其他划分是可能的。作为一个示例,流增强组件642可以被分配给用户空间620或内核空间630。同样,上述描述仅描述了OS 610的软件功能的一个组织。例如,流增强组件642可以是流服务器640的一部分,或者流增强组件642与流服务器640分离但保持通信等。
图7图示了设备100的示例,设备100包括如图1中所示的附加的可选的组件细节。在一个方面,设备700可以包括类似于处理器102的处理器702,用于执行与本文所述的一个或多个组件和功能相关联的处理功能。处理器702可以包括处理器或多核处理器的单个集合或多个集合。此外,处理器702可以被实施为集成式处理系统和/或分布式处理系统。
设备100可以进一步包括类似于存储器104的存储器704,诸如用于存储正由处理器702执行的应用的本地版本,诸如流服务器712、与指令有关的应用、参数等。存储器104可以包括由计算机可使用的存储器的类型,诸如随机存取存储器(RAM)、只读存储器(ROM)、磁带、磁盘、光盘、易失性存储器、非易失性存储器及其任何组合。
进一步地,设备700可以包括通信组件706,通信组件706利用如本文所述的硬件、软件和服务,提供用于建立和维持与一个或多个其他设备、当事方、实体等的通信。通信组件706可以执行在设备700上的组件之间的通信,以及设备700和外部设备之间的通信,外部设备诸如位于跨越通信网络和/或被串行或本地连接至设备700的设备。例如,通信组件706可以包括一个或多个总线,并且可以进一步包括传送链组件和接收链组件,其分别与无线或有线的发射器和接收器相关联,可操作以用于与外部设备接口连接。
附加地,设备700可以包括数据存储库708,数据存储库708可以是硬件和/或软件的任何适当组合,数据存储库708提供用于与本文所述的各方面有关地采用的信息、数据库和程序的大量存储。例如,数据存储库708可以是或者可以包括用于处理器702当前未执行的应用和/或有关参数(例如,流服务器712、应用等)的数据存储库。另外,数据存储库708可以是针对流服务器712、应用和/或设备700的一个或多个其他组件的数据存储库。
设备700可以可选地包括用户接口组件710,用户接口组件710可操作以接收来自设备700的用户的输入,并且进一步可操作以生成用于向用户呈现的输出。用户界面组件710可以包括一个或多个输入设备,包括但不限于键盘、数字键盘、鼠标、触摸敏感显示器、导航键、功能键、麦克风、语音识别组件、姿势识别组件、深度传感器、视线跟踪传感器、开关/按钮、能够接收来自用户的输入的任何其他机构、或其任何组合。进一步地,用户界面组件710可以包括一个或多个输出设备,包括但不限于显示器、扬声器、触觉反馈机构、打印机、能够向用户呈现输出的任何其他机构,或其任何组合。
设备700可以附加地包括流服务器712,流服务器712可以类似于流服务器106,如上所述,以用于获得数据或控制多个传感器设备或其他输入设备,和/或显露修改后的输出流。
通过示例,元件或元件的任何部分,或元件的组合可以利用“处理系统”来实施,该“处理系统”包括一个或多个处理器。处理器的示例包括微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门控逻辑、分立硬件电路、和被配置为执行本公开通篇所述的各种功能的其他适合的硬件。处理系统中的一个或多个处理器可以执行软件。软件将被广泛地解释为意味着指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行文件、执行的线程、步骤、功能等,不论被称为软件、固件、中间件、微代码、硬件描述语言还是其他。
相应地,在一个或多个方面,所描述的一个或多个功能可以被实施在硬件、软件、固件或其任何组合中。若被实施在软件中,则功能可以被存储在或者作为一个或多个指令或代码被编码在计算机可读介质上。计算机可读介质包括计算机存储介质。存储介质可以是计算机可以访问的任何可用的介质。通过示例而非限制,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储装置、磁盘存储装置或其他磁性存储设备,或者可以被用来携带或存储可以由计算机访问的指令或数据结构的形式的期望的程序代码的任何其他介质。本文所使用的磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字通用盘(DVD)、和软盘,其中磁盘通常磁性地复制数据,而光盘利用激光在光学上复制数据。以上组合也应当被包括在计算机可读介质的范围内。
先前的描述被提供,以使得任何本领域技术人员能够实践本文所述的各种方面。对这些方面的各种修改对于本领域技术人员而言可以清楚,并且本文所限定的一般原则可以被应用于其他方面。因此,权利要求的不旨在限于本文所示的各方面,而是符合与语言权利要求一致的全部范围,其中对单数形式的元件的参考并非旨在表示“一个并且只有一个”,除非特别如此说明,而是表示“一个或多个”。除非另有特别说明,否则术语“一些”指的是一个或多个。已知或者将在稍后被本领域普通技术人员所知晓的本文所述的各种方面的元件的所有结构的和功能的等同物均旨在由权利要求包含。此外,不论此公开内容是否在权利要求中被明确叙述,本文所公开的内容并非旨在贡献于公众。权利要求的元件不应当被解释为部件加功能,除非该元件在被清楚叙述时使用短语“用于…的部件”。

Claims (20)

1.一种用于提供流增强组件的计算设备,包括:
存储器,所述存储器存储用于执行流服务器的一个或多个参数或指令,其中所述流服务器显露与一个或多个流增强组件有关的一个或多个接口;以及
至少一个处理器,所述至少一个处理器被耦合至所述存储器,其中所述至少一个处理器被配置为:
初始化具有增强功能的流增强组件,所述增强功能指示到多个设备的多个接口和输出流;
访问到所述多个设备的所述多个接口的至少一部分,以获取来自所述多个设备的流输出,并且通过基于针对所述多个设备中的至少第二设备所接收到的所述流输出来修改从第一设备获取的所述流输出,以控制所述多个设备中的所述第一设备;
至少部分地通过对在多个流输出上所接收到的数据进行修改或者相关,将来自所述多个设备的所述多个流输出虚拟化为所述输出流;以及
由所述流增强组件,经由所述一个或多个接口的至少另一部分,向一个或多个其他流增强组件或者应用输出所述输出流。
2.根据权利要求1所述的计算设备,其中针对所述第二设备所接收到的所述流输出是从另一流增强组件的另一增强功能所接收到的,所述另一流增强组件指示到所述第二设备的接口。
3.根据权利要求1所述的计算设备,其中所述第一设备是相机,其中所述第二设备是深度相机,并且其中所述至少一个处理器被配置为至少部分地基于从所述深度相机所接收到的所述流输出中的深度信息来控制所述相机。
4.根据权利要求1所述的计算设备,其中所述至少一个处理器还被配置为基于初始化所述流增强组件,来初始化具有另一增强功能的另一流增强组件,所述另一增强功能具有访问所述输出流的另一接口。
5.根据权利要求1所述的计算设备,其中所述至少一个处理器还被配置为至少部分地通过向所述流输出中的成帧的数据添加来自其他设备的元数据,来虚拟化所述流输出。
6.根据权利要求1所述的计算设备,其中所述至少一个处理器还被配置为访问针对所述多个设备的所述多个接口的所述至少一部分,以基于操作参数控制所述多个设备来修改来自所述多个设备的所述流输出。
7.根据权利要求6所述的计算设备,其中所述操作参数是时间偏移。
8.一种用于提供流增强组件的方法,包括:
初始化具有增强功能的流增强组件,所述增强功能指示到多个设备的多个接口和输出流;
访问到所述多个设备的所述多个接口的至少一部分,以获取来自所述多个设备的流输出,并且通过基于针对所述多个设备中的至少第二设备所接收到的所述流输出来修改从第一设备获取的所述流输出,以控制所述多个设备中的所述第一设备;
至少部分地通过对在多个流输出上所接收到的数据进行修改或者相关,将来自所述多个设备的所述多个流输出虚拟化为所述输出流;以及
由所述流增强组件,经由由流服务器暴露的一个或多个接口的至少另一部分,向一个或多个其他流增强组件或者应用输出所述输出流。
9.根据权利要求8所述的方法,其中针对所述第二设备所接收到的所述流输出是从另一流增强组件的另一增强功能所接收到的,所述另一流增强组件指示到所述第二设备的接口。
10.根据权利要求8所述的方法,其中所述第一设备是相机,其中所述第二设备是深度相机,并且其中控制所述相机是至少部分地基于从所述深度相机所接收到的所述流输出中的深度信息的。
11.根据权利要求8所述的方法,还包括:基于初始化所述流增强组件,来初始化具有另一增强功能的另一流增强组件,所述另一增强功能具有访问所述输出流的另一接口。
12.根据权利要求8所述的方法,其中虚拟化所述流输出包括:向所述流输出中的成帧的数据添加来自其他设备的元数据。
13.根据权利要求8所述的方法,其中访问针对所述多个设备的所述多个接口的所述至少一部分包括:针对所述多个设备访问以基于操作参数控制所述多个设备来修改来自所述多个设备的所述流输出。
14.根据权利要求13所述的方法,其中所述操作参数是时间偏移。
15.一种非瞬态计算机可读介质,包括由一个或多个处理器可执行的用于提供流增强组件的代码,所述代码包括用于以下的代码:
初始化具有增强功能的流增强组件,所述增强功能指示到多个设备的多个接口和输出流;
访问到所述多个设备的所述多个接口的至少一部分,以获取来自所述多个设备的流输出,并且通过基于针对所述多个设备中的至少第二设备所接收到的所述流输出来修改从第一设备获取的所述流输出,以控制所述多个设备中的所述第一设备;
至少部分地通过对在多个流输出上所接收到的数据进行修改或者相关,将来自所述多个设备的所述多个流输出虚拟化为所述输出流;以及
由所述流增强组件,经由由流服务器暴露的一个或多个接口的至少另一部分,向一个或多个其他流增强组件或者应用输出所述输出流。
16.根据权利要求15所述的非瞬态计算机可读介质,其中针对所述第二设备所接收到的所述流输出是从另一流增强组件的另一增强功能所接收到的,所述另一流增强组件指示到所述第二设备的接口。
17.根据权利要求15所述的非瞬态计算机可读介质,其中所述第一设备是相机,其中所述第二设备是深度相机,并且其中用于访问的代码至少部分地基于从所述深度相机所接收到的所述流输出中的深度信息来控制所述相机。
18.根据权利要求15所述的非瞬态计算机可读介质,还包括用于以下的代码:基于初始化所述流增强组件,来初始化具有另一增强功能的另一流增强组件,所述另一增强功能具有访问所述输出流的另一接口。
19.根据权利要求15所述的非瞬态计算机可读介质,其中用于虚拟化所述流输出的所述代码向所述流输出中的成帧的数据添加来自其他设备的元数据。
20.根据权利要求15所述的非瞬态计算机可读介质,其中用于访问所述多个接口的所述至少一部分的所述代码访问所述多个设备,以基于操作参数控制所述多个设备来修改来自所述多个设备的所述流输出。
CN202210369341.0A 2016-11-28 2017-11-17 用于增强设备流的可插拔组件 Active CN114741120B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210369341.0A CN114741120B (zh) 2016-11-28 2017-11-17 用于增强设备流的可插拔组件

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/362,547 US10673917B2 (en) 2016-11-28 2016-11-28 Pluggable components for augmenting device streams
US15/362,547 2016-11-28
CN202210369341.0A CN114741120B (zh) 2016-11-28 2017-11-17 用于增强设备流的可插拔组件
CN201780072642.4A CN109997110B (zh) 2016-11-28 2017-11-17 用于增强设备流的可插拔组件
PCT/US2017/062120 WO2018098020A1 (en) 2016-11-28 2017-11-17 Pluggable components for augmenting device streams

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201780072642.4A Division CN109997110B (zh) 2016-11-28 2017-11-17 用于增强设备流的可插拔组件

Publications (2)

Publication Number Publication Date
CN114741120A CN114741120A (zh) 2022-07-12
CN114741120B true CN114741120B (zh) 2024-05-10

Family

ID=60702992

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210369341.0A Active CN114741120B (zh) 2016-11-28 2017-11-17 用于增强设备流的可插拔组件
CN201780072642.4A Active CN109997110B (zh) 2016-11-28 2017-11-17 用于增强设备流的可插拔组件

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201780072642.4A Active CN109997110B (zh) 2016-11-28 2017-11-17 用于增强设备流的可插拔组件

Country Status (4)

Country Link
US (2) US10673917B2 (zh)
EP (1) EP3545411A1 (zh)
CN (2) CN114741120B (zh)
WO (1) WO2018098020A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6808497B2 (ja) * 2017-01-05 2021-01-06 キヤノン株式会社 画像処理装置、画像処理装置の制御方法及びプログラム
CN110262838A (zh) * 2019-06-14 2019-09-20 深圳乐信软件技术有限公司 一种程序崩溃的处理方法、装置、终端及存储介质
US20200319812A1 (en) * 2020-06-03 2020-10-08 Intel Corporation Intermediary for storage command transfers
CN117806721B (zh) * 2024-02-28 2024-04-26 苏州元脑智能科技有限公司 故障诊断驱动加载方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102484740A (zh) * 2009-07-08 2012-05-30 霍尼韦尔国际公司 用于管理视频数据的系统和方法
CN104823234A (zh) * 2012-10-26 2015-08-05 微软技术许可有限责任公司 利用深度成像扩充语音识别
CN105283903A (zh) * 2013-04-09 2016-01-27 微软技术许可有限责任公司 多传感器相机重新校准
CN105723339A (zh) * 2013-12-17 2016-06-29 英特尔公司 用于便携式计算设备虚拟化的技术

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346891B2 (en) 2002-07-05 2008-03-18 Eka Systems Inc. System and method for automating generation of an automated sensor network
US6975959B2 (en) 2002-12-03 2005-12-13 Robert Bosch Gmbh Orientation and navigation for a mobile device using inertial sensors
US20050021712A1 (en) * 2003-01-24 2005-01-27 Constantin Chassapis Multi-user, multi-device remote access system
US7705908B2 (en) * 2003-12-16 2010-04-27 Eastman Kodak Company Imaging method and system for determining camera operating parameter
US20170118037A1 (en) * 2008-08-11 2017-04-27 Icontrol Networks, Inc. Integrated cloud system for premises automation
US8565943B2 (en) * 2006-09-25 2013-10-22 Appereo Systems, LLC Fleet operations quality management system
US8009200B2 (en) 2007-06-15 2011-08-30 Microsoft Corporation Multiple sensor input data synthesis
US9104430B2 (en) 2008-02-11 2015-08-11 Palo Alto Research Center Incorporated System and method for enabling extensibility in sensing systems
US8797178B2 (en) 2008-03-10 2014-08-05 Microsoft Corporation Efficient stream sharing for multi-user sensor data collection
CN201499199U (zh) * 2009-08-21 2010-06-02 北京思比科微电子技术有限公司 嵌入式系统多媒体功能扩展芯片及手持移动通信终端
CN102023345B (zh) * 2009-09-10 2014-12-03 华为技术有限公司 光模块、设备主板和无源光网络设备
US9084002B2 (en) 2010-05-03 2015-07-14 Microsoft Technology Licensing, Llc Heterogeneous image sensor synchronization
CN201733322U (zh) * 2010-07-30 2011-02-02 中国科学院软件研究所 一种无线传感器网络测试设备
US8849610B2 (en) 2010-09-30 2014-09-30 Fitbit, Inc. Tracking user physical activity with multiple devices
US20120197856A1 (en) * 2011-01-28 2012-08-02 Cisco Technology, Inc. Hierarchical Network for Collecting, Aggregating, Indexing, and Searching Sensor Data
US8660581B2 (en) * 2011-02-23 2014-02-25 Digimarc Corporation Mobile device indoor navigation
US20120254878A1 (en) * 2011-04-01 2012-10-04 Lama Nachman Mechanism for outsourcing context-aware application-related functionalities to a sensor hub
US9311825B2 (en) 2011-12-22 2016-04-12 Senstream, Inc. Biometric sensing and processing apparatus for mobile gaming, education, and wellness applications
US9316513B2 (en) 2012-01-08 2016-04-19 Sensor Platforms, Inc. System and method for calibrating sensors for different operating environments
US9654817B2 (en) * 2012-01-27 2017-05-16 Avaya Inc. System and method to synchronize video playback on mobile devices
US9275341B2 (en) * 2012-02-29 2016-03-01 New Sapience, Inc. Method and system for machine comprehension
US9641266B2 (en) 2012-07-17 2017-05-02 Qualcomm Incorporated Sensor with concurrent data streaming using various parameters
EP2907341B1 (en) * 2012-09-25 2020-07-15 Parallel Wireless Inc. Heterogeneous self-organizing network for access and backhaul
KR20150069018A (ko) * 2012-10-22 2015-06-22 브이아이디 스케일, 인크. 모바일 장치에서의 사용자 존재 검출
US10289204B2 (en) * 2012-11-15 2019-05-14 Quantum Interface, Llc Apparatuses for controlling electrical devices and software programs and methods for making and using same
US20140156833A1 (en) * 2012-11-22 2014-06-05 Perch Communications Inc. System and method for automatically triggered synchronous and asynchronous video and audio communications between users at different endpoints
BR112014016107A8 (pt) 2012-12-11 2017-07-04 Intel Corp método para detecção de contexto, dispositivo de computação e mídia legível por máquina
US9491187B2 (en) * 2013-02-15 2016-11-08 Qualcomm Incorporated APIs for obtaining device-specific behavior classifier models from the cloud
US10200654B2 (en) * 2013-02-27 2019-02-05 Szymczyk Matthew Systems and methods for real time manipulation and interaction with multiple dynamic and synchronized video streams in an augmented or multi-dimensional space
US20140331246A1 (en) * 2013-05-01 2014-11-06 Google Inc. Interactive content and player
WO2015092461A1 (en) * 2013-12-18 2015-06-25 Intel Corporation Techniques for image bitstream processing
US9996976B2 (en) * 2014-05-05 2018-06-12 Avigilon Fortress Corporation System and method for real-time overlay of map features onto a video feed
KR102229699B1 (ko) * 2014-05-22 2021-03-18 삼성전자주식회사 정보 운용 방법 및 전자 장치
US9241079B1 (en) 2014-06-27 2016-01-19 Sap Se Mobile application usage monitor
US10318361B2 (en) 2014-07-02 2019-06-11 Atheer, Inc. Methods and systems for multiple access to a single hardware data stream
WO2016008090A1 (en) * 2014-07-15 2016-01-21 Microsoft Technology Licensing, Llc Managing data ingestion
US20160050128A1 (en) * 2014-08-12 2016-02-18 Raco Wireless LLC System and Method for Facilitating Communication with Network-Enabled Devices
EP3428766B1 (en) * 2014-09-05 2021-04-07 SZ DJI Technology Co., Ltd. Multi-sensor environmental mapping
US9870410B2 (en) * 2014-09-15 2018-01-16 Microsoft Technology Licensing, Llc Constructed data stream for enhanced event processing
EP3016383B1 (en) * 2014-11-03 2017-06-21 Axis AB Method, device, and system for pre-processing a video stream for subsequent motion detection processing
US10142533B2 (en) * 2015-03-27 2018-11-27 Intel Corporation Technologies for controlling user access to image sensors of a camera device
US10085005B2 (en) * 2015-04-15 2018-09-25 Lytro, Inc. Capturing light-field volume image and video data using tiled light-field cameras
US20160334545A1 (en) * 2015-05-12 2016-11-17 Weendy, Inc. System and method for weather data processing in a mobile network
US10042038B1 (en) * 2015-09-01 2018-08-07 Digimarc Corporation Mobile devices and methods employing acoustic vector sensors
US20170155737A1 (en) * 2015-12-01 2017-06-01 Let's Maybe, Inc. Context-aware information discovery
US10862968B2 (en) * 2016-04-01 2020-12-08 Intel IP Corporation Sensor data search platform
US10594798B2 (en) * 2016-06-16 2020-03-17 Veniam, Inc. Systems and methods for managing containers in a network of moving things
CN106161984B (zh) * 2016-08-31 2020-03-31 钧捷智能(深圳)有限公司 视频图像强光抑制、轮廓及细节增强处理方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102484740A (zh) * 2009-07-08 2012-05-30 霍尼韦尔国际公司 用于管理视频数据的系统和方法
CN104823234A (zh) * 2012-10-26 2015-08-05 微软技术许可有限责任公司 利用深度成像扩充语音识别
CN105283903A (zh) * 2013-04-09 2016-01-27 微软技术许可有限责任公司 多传感器相机重新校准
CN105723339A (zh) * 2013-12-17 2016-06-29 英特尔公司 用于便携式计算设备虚拟化的技术

Also Published As

Publication number Publication date
CN114741120A (zh) 2022-07-12
US20200287953A1 (en) 2020-09-10
US10673917B2 (en) 2020-06-02
US11240282B2 (en) 2022-02-01
CN109997110A (zh) 2019-07-09
US20180152494A1 (en) 2018-05-31
CN109997110B (zh) 2022-04-26
WO2018098020A1 (en) 2018-05-31
EP3545411A1 (en) 2019-10-02

Similar Documents

Publication Publication Date Title
US11240282B2 (en) Pluggable components for augmenting device streams
US10515056B2 (en) API for resource discovery and utilization
US11188376B1 (en) Edge computing system
CN110199271B (zh) 用于现场可编程门阵列虚拟化的方法和设备
EP3479243B1 (en) Fault-tolerant variable region repaving during firmware over the air update
EP3414662B1 (en) Virtualizing sensors
US10944809B2 (en) Reading multiplexed device streams
US10185553B2 (en) Fault-tolerant variable region repaving during firmware over the air update
US11032342B2 (en) System and method for device audio
US10437601B2 (en) Centralized memory management for multiple device streams
US20150249769A1 (en) Image forming apparatus, method for controlling image forming apparatus, and storage medium
JP2024509739A (ja) コンテナアプリケーションの最小クラウドサービスアクセス権を自動的に設定する技術
WO2023273350A1 (zh) 一种应用授权方法、装置和终端设备
US10705982B2 (en) Securing stream buffers
US10355798B2 (en) Temporally correlating multiple device streams
US20220261489A1 (en) Capability management method and computer device
US20180152495A1 (en) Multiplexing multiple device streams
US20190266338A1 (en) Electronic device and control method therefor
US20180239628A1 (en) Hypervisor agnostic customization of virtual machines
US20230034196A1 (en) Techniques for providing synchronous and asynchronous data processing
WO2023202406A1 (zh) 显示方法及电子设备
CN112749022A (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