CN1744048A - 摄像机共享 - Google Patents
摄像机共享 Download PDFInfo
- Publication number
- CN1744048A CN1744048A CNA200510093798XA CN200510093798A CN1744048A CN 1744048 A CN1744048 A CN 1744048A CN A200510093798X A CNA200510093798X A CN A200510093798XA CN 200510093798 A CN200510093798 A CN 200510093798A CN 1744048 A CN1744048 A CN 1744048A
- Authority
- CN
- China
- Prior art keywords
- video
- capture device
- storage buffer
- shared storage
- video capture
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/002—Specific input/output arrangements not covered by G06F3/01 - G06F3/16
- G06F3/005—Input arrangements through a video camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/765—Interface circuits between an apparatus for recording and another apparatus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
- H04N7/183—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a single remote source
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Studio Devices (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
系统、方法和软件在一个以上的应用之间共享视频捕获设备(例如摄像机)的输出。一些实施方案包括将视频帧写入可由一个或多个应用访问的共享存储器缓冲区。一些应用是虚拟设备驱动器,它们看起来就像产生视频数据的视频捕获设备的实际设备驱动器一样。一些实施方案包括获取对视频捕获设备驱动器的独占控制,分配共享存储器缓冲区,从所述视频捕获设备驱动器接收视频帧,并且将所述视频帧写入所述共享存储器缓冲区。在一些实施方案中,共享存储器缓冲区包括以交替方式写入并读出的两个共享存储器缓冲区。
Description
技术领域
本发明涉及计算机系统中的视频捕获设备,具体地说,涉及视频捕获设备的输出在应用之间的共享。
背景技术
用于计算机系统的摄像机在当今的计算环境中正变得更加常见。此外,越来越多的应用能够利用从摄像机捕获而来的视频。然而,计算机系统的应用对摄像机的访问通常被限制为单个应用。用于这些摄像机的设备驱动器是互斥的,即禁止在多个应用之间共享摄像机的使用。一旦某个应用获得了视频捕获设备驱动器,任何其他应用都无法接收到摄像机的输出,直到正在控制的应用解除对所述驱动器的控制。
发明内容
为解决以上问题,本发明提供了在一个以上的应用之间共享视频捕获设备(例如摄像机)的输出的系统、方法和软件。
根据本发明的一个方面,提供了一种方法,包括:获取对视频捕获设备驱动器的独占(exclusive)控制;分配共享存储器缓冲区;从所述视频捕获设备驱动器接收视频帧;并且将所述视频帧写入所述共享存储器缓冲区。
根据本发明的另一个方面,提供了一种方法,包括:将视频帧写入共享存储器缓冲区,其中所述共享存储器缓冲区可由一个或多个应用访问。
根据本发明的又一个方面,提供了一种系统,包括:存储器;视频捕获设备;从所述视频捕获设备接收所捕获的视频帧的视频捕获设备驱动器,其中所述视频捕获设备驱动器是互斥的;和可运行在所述系统上的软件,该软件在所述存储器中分配共享存储器缓冲区;从所述视频捕获设备驱动器接收视频帧;并且将所接收的视频帧写入所述共享存储器缓冲区。
根据本发明的再一个方面,提供了一种包括机器可访问介质的制品,所述机器可访问介质具有相关指令,其中所述指令在被访问时导致机器执行:将来自视频捕获设备的视频数据通过共享存储器缓冲区提供给可运行在所述机器上的两个或两个以上的应用。
根据本发明的再又一个方面,提供了一种方法,包括:获取互斥型视频捕获设备驱动器;分配两个共享存储器缓冲区;并且创建一个或多个虚拟设备驱动器,其中所述一个或多个虚拟设备驱动器对于可运行在执行所述方法的系统上的应用而言,看起来就像视频捕获设备驱动器一样。
根据本发明的再又一个方面,提供了一种方法,包括:获取对视频捕获设备驱动器的独占控制;分配共享存储器缓冲区;将来自所述视频捕获设备驱动器的视频流接收到过滤器图中,所述过滤器图包括:从所述视频捕获设备驱动器接收视频流的源过滤器;和一次一帧地将所述视频流写入共享存储器缓冲区的递交过滤器。
根据本发明的再又一个方面,提供了一种方法,包括:向系统提供一个或多个虚拟视频捕获设备驱动器,其中所述虚拟视频捕获设备驱动器从共享存储器缓冲区获得视频数据;并且用接收自互斥型视频捕获设备驱动器的视频数据填充所述共享存储器缓冲区。
附图说明
图1是根据本发明主题的一个示例性实施方案的系统的示意图。
图2是本发明主题的一个示例性实施方案的流程图。
图3是本发明主题的一种方法的示例性实施方案的框图。
图4是本发明主题的一种方法的示例性实施方案的框图。
图5是本发明主题的一种方法的示例性实施方案的框图。
图6是本发明主题的一个示例性实施方案的流程图。
具体实施方式
在以下详细描述中,参考构成其一部分的附图,在附图中以示例的方式示出了可以实现本发明主题的具体实施方案。足够详细地描述了这些实施方案,以使得本领域的技术人员能够实现它们,并且将会理解,可以采用其他实施方案,并且可以作出结构、逻辑和电气上的改变,而不会偏离本发明主题的范围。本发明主题的这些实施方案可以单一地和/或统一地被称为“发明”一词,这仅仅是为了方便起见,如果事实上公开了一个以上的发明或发明概念时,我们并不想主动地将这一申请的范围限制到任何单个发明或发明概念。
因此,以下描述并不是限制性的,本发明主题的范围由所附的权利要求书来限定。
这里所描述的功能或算法可以用硬件、软件或者软硬件的组合来实现。软件包括存储在计算机可读介质上的计算机可执行指令,所述计算机可读介质例如是存储器或其他类型的存储设备。术语“计算机可读介质”也被用来表示可以传送软件的载波。此外,这样的功能对应于由软件、硬件、固件或其任何组合构成的模块。根据需要可以在一个或多个模块中实现多种功能,所描述的实施方案仅仅是实施例而已。软件可以在数字信号处理器、专用集成电路(ASIC)、微处理器或者运行于系统中的其他类型处理器上执行,所述系统例如是个人计算机、服务器、路由器或者有能力处理数据的其他设备,包括网络互连设备。
一些实施方案在两个或更多的专门互连的硬件模块或设备中,利用在模块之间传送以及通过模块传送的相关控制和数据信号,或者作为专用集成电路的若干部分,实现所述功能。因此,示例性的处理流程(process flow)适用于软件、固件和硬件实现方式或者它们的组合。
用在这里,术语“视频”被用来涵盖所捕获的图像,无论是静止的还是运动的。因此,希望术语“视频”是广义的,不想限制本公开或权利要求书的广度。
用在这里,术语“互斥”被用来描述禁止在多个应用之间摄像机共享使用的设备驱动器。这种“互斥”型设备驱动器被第一个应用获得,就不能被另一个应用获得,直到第一个应用释放该驱动器。
本发明主题提供了在计算系统上的多个应用之间共享视频捕获设备(例如摄像机)的各种系统、方法和软件。一些这样的实施方案包括获取对互斥型视频捕获设备驱动器的独占控制,并且将所捕获的视频写入系统上的其他应用可访问的存储器缓冲区的服务器处理。然后,系统上的一个或多个其他处理从所述存储器缓冲区中读取所述视频,并将该视频提供给一个或多个应用。在附图中示出了多种实施方案,下面将进行描述。
图1是根据本发明主题的示例性实施方案的系统100的示意图。系统100的该示例性实施方案提供了本发明主题多种可能的硬件和/或软件设置中的一种。系统100包括具有处理器102、存储器104的计算设备101和视频捕获设备118。存储器104包括多个应用1-N,图中应用1和N分别用106和108来标识。存储器104还包括虚拟视频捕获设备110、共享存储器缓冲区112、视频服务器处理116和视频捕获设备驱动器114。
计算设备101代表能够与视频捕获设备118一同工作的任何类型的计算设备。这种计算设备101的一些例子包括计算机、个人计算机、服务器、个人数字助手(PDA)、或者实际上任何其他类型的计算设备101。计算设备101也可以具有使用实际上任意操作系统的体系结构。
计算设备101的处理器102代表数字信号处理器或任意类型体系结构的处理单元,包括ASIC(专用集成电路)、CISC(复杂指令集计算机)、RISC(精简指令集计算机)、VLIW(超长指令字)、或者混合体系结构,但是也可以使用任何适当的处理器。处理器102执行指令。处理器102还包括控制单元,该单元组织存储器(例如存储器104)内的数据和程序存储,并且将数据及其他信息传入并传出计算设备101,例如与视频捕获设备118之间传入传出数据,并且在一些实施方案中,还通过可选的网络接口(未示出)与一个或多个网络连接(未示出)之间传入传出数据。虽然在计算设备101内只示出了一个处理器,但是在一些实施方案中,计算设备101包括多个处理器102。
存储器104代表一个或多个存储数据的机制。例如,存储器104在不同的实施方案中包括随机访问存储器(RAM)、磁盘存储介质、光存储介质、闪存器件和/或其他易失性及非易失性机器可读介质中的一种或多种。在其他实施方案中,存储器包括适当类型的存储设备或存储器104。虽然只示出了一个存储器104,但是也可以出现不同类型的多个存储器104以及多种类型的存储设备。
视频捕获设备118在一些实施方案中是能够捕获视频的设备,例如摄像机。在不同的实施方案中,视频捕获设备118可以捕获单帧视频、时间上的多帧或以上两者。视频捕获设备118可以以多种方式被耦合到计算设备101。例如,视频捕获设备118可以经由一条线缆,例如通用串行总线(USB)线缆被有效地耦合到计算设备101。其他实施方案包括经由诸如Bluetooth(蓝牙)无线连接之类的无线连接,或者能够将所捕获的视频从视频捕获设备118传递到计算设备101的其他有线或无线连接设备或技术,被有效地耦合到计算设备101的视频捕获设备。
在一些实施方案中,视频捕获设备118可以以640×480像素的分辨率,以每秒30帧的速率来捕获彩色视频。这种视频捕获设备118可以捕获分辨率为1.3兆像素的静止图像。在其他实施方案中,视频捕获设备118能够以更高或更低的分辨率,以更高或更低的每秒帧率来捕获视频和静止图像。在一些实施方案中,可以通过调节视频捕获设备118的一个或多个参数来改变所捕获视频的属性。一些这样的设置包括捕获视频的分辨率。其他设置包括帧率、清晰度、亮度、聚焦、缩放、色彩、摄像机角度或位置,以及实际上用于调节所捕获视频的一种或多种属性或主题的任何其他设置。
视频捕获设备118的一些更进一步的实施方案包括麦克风。在一些这样的实施方案中,视频捕获设备118可以将复用信号(multiplexed signal)传递给计算设备101,所述复用信号包括视频和音频。
如上所述,视频捕获设备118被有效地耦合到计算设备101。视频捕获设备驱动器114从视频捕获设备118接收视频。在一些实施方案中,视频捕获设备驱动器114也向视频捕获设备118提供命令。这些命令包括改变由视频捕获设备118捕获的视频的属性的命令。在一些实施方案中,视频捕获设备驱动器114是互斥型设备驱动器,只允许运行在计算设备101上的一个应用使用视频捕获设备驱动器114。在一些实施方案中,视频捕获设备驱动器114是由视频捕获设备118的销售商/制作商提供的驱动器。
视频服务器处理116是获取对视频捕获设备驱动器114的控制的处理。如果共享存储器缓冲区112还未分配的话,视频服务器处理116还在存储器104内分配一个共享存储器缓冲区112。在已获取了视频捕获设备驱动器114并且分配了共享存储器缓冲区112后,视频服务器处理116将从视频捕获设备驱动器114接收到的视频写入共享存储器缓冲区112。可以一帧接一帧地完成视频向共享存储器缓冲区112的写入,每一帧覆写一个在前的帧。在一些实施方案中,存在两个或更多的共享存储器缓冲区112。在这种多个共享存储器缓冲区112的实施方案中,在共享存储器缓冲区之间以交替的方式写入视频。
共享存储器缓冲区112是存储器中分配来供视频服务器处理116及其他应用使用的区域。共享存储器缓冲区112具有的大小至少足够容纳一个视频帧。在包括一个以上共享存储器缓冲区112的实施方案中,每个共享存储器缓冲区112具有的大小都至少足以容纳一个视频帧。由视频服务器处理116写入共享存储器缓冲区112的视频帧可以被其他应用(例如虚拟视频捕获设备驱动器110)读取。在一些实施方案中,诸如应用106和应用108一类的应用可以直接从共享存储器缓冲区112取得视频。
在一些实施方案中,虚拟视频捕获设备驱动器110在计算设备101上就像是可由运行在计算设备101上的应用获得的实际视频捕获设备驱动器一样。虚拟视频捕获设备驱动器110从共享存储器缓冲区112读取视频,并将该视频提供给一个或多个应用。系统100的一些实施方案包括一个以上的虚拟视频捕获设备驱动器110。在一些实施方案中,虚拟视频捕获设备驱动器110是互斥的,只允许单个应用获得虚拟视频捕获设备驱动器110。在一些这样的实施方案中,存在多个互斥的虚拟视频捕获设备驱动器,以允许一个以上的应用同时接收视频。在其他实施方案中,如图1所示,虚拟视频捕获设备驱动器110是一个多实例(multi-instance)的虚拟驱动器,其允许一个以上的应用同时获得该多实例虚拟驱动器并接收视频。
在一些实施方案中,虚拟视频捕获设备驱动器110根据一个或多个设置对视频进行变换。在一些实施方案中,视频服务器处理116从视频捕获设备驱动器114接收由视频捕获设备118以高质量,甚至以视频捕获设备118所能实现的最高质量而捕获的视频。然后,视频服务器处理116将这个高质量的视频写入共享存储器缓冲区112。在一些实施方案中,视频服务器处理在将视频写入共享存储器之前,对该视频执行一种或多种变换,以改变一种或多种视频属性。然后,虚拟视频捕获设备驱动器110从共享存储器缓冲区112中读取所述视频,并且在将视频提供给发出请求的应用之前,根据一个或多个设置对该视频执行必要的变换。在一些实施方案中,所述设置包括对分辨率、帧大小、帧率、清晰度、亮度中的一种或多种属性的设置,或者实际上与视频属性相关的任何其他设置。在不同的实施方案中,这些设置由应用来提供,或者通过所述设置的用户操纵来提供。
应用106和应用108是要反映允许视频的(video-enabled)应用。在计算设备上可以运行有任意数量的这种允许视频的应用。这种允许视频的应用的例子包括视频记录应用、视频会议应用、短消息器应用、视频监督应用、以及实际上能够接收或请求源起于视频捕获设备118的视频的任何其他类型的应用。
图2是本发明主题的示例性实施方案的流程图。图2提供了所捕获的视频从视频捕获设备202流动到一个或多个客户应用210的高层视图,所述客户应用210将所捕获的视频提供给一个或多个用户应用(未示出)。视频捕获设备202可以与图1中的视频捕获设备118相同或不同。
图2的示例性图示包括视频捕获设备202提供视频给销售商提供的驱动器204。销售商提供的驱动器204是已由服务器206获得的互斥型驱动器。服务器206用来从销售商提供的驱动器204接收视频,并将该视频放入存储器208。存储器208是应用可访问的存储器。一些这样的应用包括客户(client),例如客户210A和210B。客户210A和210B的功能是从存储器208读取视频,并将该视频提供给一个或多个用户应用。用户应用通常是可与视频捕获设备202的所捕获视频相兼容的任何应用。
图3是本发明主题的方法300的示例性实施方案的框图。方法300包括获取对视频捕获设备驱动器的独占控制,并且分配共享存储器缓冲区304。方法300还包括从视频捕获设备驱动器接收视频帧306,并且将该视频帧写入共享存储器缓冲区308。在一些实施方案中,方法300还包括从视频捕获设备驱动器接收另一个视频帧306,并再次将该视频帧写入共享存储器缓冲区308。方法300然后在该方法的这些部分(即,306和308)上反复迭代,同时在接收视频帧。
方法300的共享存储器缓冲区可由一个或多个应用访问,例如虚拟视频捕获设备驱动器。虚拟视频捕获设备驱动器向允许视频的应用提供视频,在这些应用看来就像实际的设备驱动器一样。
在一些实施方案中,分配共享存储器缓冲区的操作包括在系统存储器(例如随机访问存储器(RAM))中分配一个空间。所分配的存储器量根据所捕获视频的属性而变。通常,较高分辨率的视频将需要分配更大的共享存储器缓冲区。另外,在捕获和传输视频时所使用的格式可能会影响所需要的存储器大小。此外,如果视频被复用而包括相关的音频,那么所需的存储器空间可能会受到影响。
图4是本发明主题的方法400的示例性实施方案的框图。方法400包括获取互斥型视频捕获设备驱动器402,分配两个共享存储器缓冲区404,并且创建一个或多个虚拟设备驱动器,其中所述一个或多个虚拟设备驱动器对于可运行在执行所述方法的系统上的应用而言,看起来就像视频捕获设备驱动器一样406。方法400的一些实施方案还包括从视频捕获设备驱动器接收视频帧流,并将在两个共享存储器缓冲区之间以交替的方式写入视频帧。方法400所创建的虚拟设备驱动器可运行来通过从两个共享存储器缓冲区中以交替的方式读取视频帧,而向运行在系统上的应用提供视频。
在方法400的一些实施方案中,创建一个或多个虚拟设备驱动器的步骤406包括创建固定数量的互斥虚拟设备驱动器。在一些实施方案中,所述的固定数量是2,而在其他实施方案中,固定数量是10。然而,方法400可以创建任意数量的互斥设备驱动器。在一些实施方案中,互斥设备驱动器的数量是同时可以从方法400接收视频的允许视频应用的最大数量。在一些其他实施方案中,如果使用了所有的互斥设备驱动器,那么实现方法400的系统动态地创建一个或多个额外的互斥设备驱动器。
在一些实施方案中,互斥型设备驱动器是销售商提供的设备驱动器的拷贝,其进行了某种改动,以使所述互斥型设备驱动器从共享存储器缓冲区读取视频数据,而不是从视频捕获设备读取。在其他实施方案中,互斥型设备驱动器包括被编写为对于可耦合到实现方法400的系统的视频捕获设备来说就像设备驱动器一样的软件。
图5是本发明主题的方法500的示例性实施方案的框图。方法500是在一个具有包括DirectShow在内的MicrosoftWindows操作系统的系统上的方法500的示例性实施方案。
Microsoft的Windows体系结构是建立在过滤器之上的。总地说,过滤器对一个数据流(例如视频帧流)执行一种操作。一些过滤器操作包括读取文件或流,将数据传递到视频卡或其他外围设备,并将数据转换成特定的帧大小或特定的格式,例如MPEG-1(运动图像专家组;国际标准组织/国际电学技术委员会标准11172)或RGB(红-绿-蓝)。
通常有三种过滤器类别:获得视频数据的源过滤器,以某种方式转换视频数据的转换过滤器,以及输出视频数据的递交(render)过滤器。多个过滤器可以以某种方式链接在一起,这样一个过滤器的输出就是下一个过滤器的输入。由相互链接的过滤器组成的组被称为过滤器图。通常,过滤器图至少包括一个源过滤器和一个递交过滤器。
方法500包括获取对视频捕获设备驱动器的独占控制502,并且分配共享存储器缓冲区504。该方法还包括将来自视频捕获设备驱动器的视频流接收到过滤器图中506,获得进入源过滤器的视频流,其中源过滤器看起来就像视频捕获设备驱动器508,并且由应用获取源过滤器,其中源过滤器被应用的过滤器图用来从共享存储器缓冲区获得视频流510。
将来自视频捕获设备驱动器的视频流接收到过滤器图中的步骤506包括获得所述视频流并将该视频流提供给递交过滤器的源过滤器。然后,递交过滤器一帧接一帧地将视频流递交给共享存储器缓冲区。
获得进入源过滤器的视频流,其中源过滤器对应用来讲看起来就像视频捕获设备驱动器的步骤508包括可以作为用于获得视频流的设备驱动器而被获取的源过滤器。源过滤器一旦被应用获取,然后就被用作供该应用的过滤器图从共享存储器缓冲区获得视频流的源过滤器。
图6是本发明主题的示例性实施方案的流程图。图6提供了类似于图2的高层视图,但是它在图5所提供的方法500的示例性实施方案之上进行了扩展。这个高层视图包括从视频捕获设备602流动到一个或多个客户源过滤器的所捕获的视频,所述客户源过滤器例如是610A和610B,它们向一个或多个用户应用(未示出)提供所捕获的视频。视频捕获设备602可以与图1中的视频捕获设备相同或不同。
图6的示例性图示包括向销售商提供的驱动器604提供视频的视频捕获设备602。销售商提供的驱动器604是已由服务器过滤器图606获取的互斥型驱动器。服务器过滤器图606包括用来从销售商提供的驱动器604获得视频的源过滤器。服务器过滤器图606还包括将视频写入共享存储器缓冲区608的递交过滤器。共享存储器缓冲区608是至少可以被客户源过滤器610A和610B访问的存储器。客户源过滤器610A和610B的功能是通过从共享存储器缓冲区608读取视频,并将该视频提供给一个或多个用户应用的过滤器图,从而对于一个或多个用户应用(未示出)而言起到过滤器图中的源过滤器的作用。
需要强调的是,说明书摘要是依照37C.F.R.§1.72(b)来提供的,该法条要求摘要能使读者快速地把握技术公开内容的本质和要旨。提交说明书摘要不是用来解释或限制权利要求书的范围或含义。
在以上具体实施方式部分中,将各种特征一起分组到单个实施方案中,以使本公开流畅。这一公开方法不想被解释为反映了以下意图,即本发明所要求保护的实施方案比在每个权利要求中所明确记载的特征需要更多的特征。相反,正如权利要求书所反映的,发明性的主题所具有的特征少于单个公开实施方案中的所有特征。因此,将权利要求书包含到具体实施方式这部分中,每个权利要求单独成为一个独立的实施方案。
本领域的技术人员很容易理解,在已经描述并图示来解释本发明主题的本质的细节、材料以及部件和方法阶段的设置方面,可以作出多种不同的其他改变,而不会偏离在附加的权利要求书中所表明的本发明主题的原理和范围。
Claims (28)
1.一种方法,包括:
获取对视频捕获设备驱动器的独占控制;
分配共享存储器缓冲区;
从所述视频捕获设备驱动器接收视频帧;以及
将所述视频帧写入所述共享存储器缓冲区。
2.如权利要求1所述的方法,其中所述共享存储器缓冲区可由一个或多个应用来访问。
3.如权利要求2所述的方法,其中所述一个或多个应用是允许视频的应用。
4.如权利要求1所述的方法,其中随后接收的视频帧被写入所述共享存储器缓冲区,覆写所述共享存储器缓冲区中在前的视频帧。
5.一种方法,包括:
将视频帧写入共享存储器缓冲区,其中所述共享存储器缓冲区可由一个或多个应用访问。
6.如权利要求5所述的方法,其中所述一个或多个应用包括允许视频的应用。
7.如权利要求6所述的方法,还包括接收视频帧,其中所述共享存储器缓冲区包括两个共享存储器缓冲区,并且其中接收所述视频帧的步骤包括接收一个视频帧流,所述方法还包括:
交替地在所述两个存储器缓冲区之间写入所述视频帧流。
8.如权利要求5所述的方法,其中所述共享存储器缓冲区具有的大小至少等于容纳一个接收的视频帧所需的大小。
9.如权利要求5所述的方法,还包括:
由所述一个或多个应用从所述共享存储器缓冲区读取所述视频帧。
10.一种系统,包括:
存储器;
视频捕获设备;
从所述视频捕获设备接收所捕获的视频帧的视频捕获设备驱动器,其中所述视频捕获设备驱动器是互斥的;以及
可运行在所述系统上的软件,该软件:
在所述存储器中分配共享存储器缓冲区;
从所述视频捕获设备驱动器接收视频帧;以及
将所接收的视频帧写入所述共享存储器缓冲区。
11.如权利要求10所述的系统,其中被写入所述共享存储器缓冲区的所接收视频帧可由运行在所述系统上的一个或多个应用来访问。
12.如权利要求11所述的系统,其中所述软件是多实例的虚拟驱动器。
13.如权利要求12所述的系统,其中所述多实例的虚拟驱动器对于运行在所述系统上的所述一个或多个应用而言,看起来就像视频捕获设备驱动器一样。
14.如权利要求10所述的系统,其中所述软件在执行时具有对所述视频捕获设备驱动器的独占控制。
15.一种包括机器可访问介质的制品,所述机器可访问介质具有相关指令,其中所述指令在被访问时导致机器执行:
将来自视频捕获设备的视频数据通过共享存储器缓冲区提供给可运行在所述机器上的两个或两个以上的应用。
16.如权利要求15所述的制品,其中所述指令在被访问时还导致所述机器执行:
提供一个或多个虚拟视频捕获设备驱动器,以将所述视频数据提供给所述两个或两个以上的应用,所述虚拟视频捕获设备驱动器从所述共享存储器缓冲区获得所述视频数据。
17.如权利要求15所述的制品,其中所述机器包括可操作地耦合到所述视频捕获设备的视频捕获设备驱动器,并且其中所述指令在被访问时导致所述机器执行:
将来自所述视频捕获设备的视频数据接收到所述视频捕获设备驱动器中;以及
将所述视频数据从所述视频捕获设备驱动器写入所述共享存储器缓冲区。
18.一种方法,包括:
获取互斥型视频捕获设备驱动器;
分配两个共享存储器缓冲区;以及
创建一个或多个虚拟设备驱动器,其中所述一个或多个虚拟设备驱动器对于可运行在执行所述方法的系统上的应用而言,看起来就像视频捕获设备驱动器一样。
19.如权利要求18所述的方法,还包括:
从所述视频捕获设备驱动器接收视频帧流;以及
在所述两个共享存储器缓冲区之间以交替的方式写入所述视频帧。
20.如权利要求19所述的方法,其中所述虚拟设备驱动器可运行来通过以交替的方式从所述两个共享存储器缓冲区读取所述视频帧,向可运行在所述系统上的应用提供视频。
21.如权利要求19所述的方法,其中创建一个或多个虚拟设备驱动器的步骤包括创建固定数量的互斥虚拟设备驱动器。
22.一种方法,包括:
获取对视频捕获设备驱动器的独占控制;
分配共享存储器缓冲区;
将来自所述视频捕获设备驱动器的视频流接收到过滤器图中,所述过滤器图包括:
从所述视频捕获设备驱动器接收视频流的源过滤器;以及
一次一帧地将所述视频流写入共享存储器缓冲区的递交过滤器。
23.如权利要求22所述的方法,其中分配所述共享存储器缓冲区包括分配一个以上的共享存储器缓冲区,它们被所述过滤器图的递交过滤器一次一帧地并在所述存储器缓冲区之间交替地写入。
24.如权利要求22所述的方法,还包括:
获得进入源过滤器的视频流,其中所述源过滤器在应用看来就像视频捕获设备驱动器;以及
由应用获取所述源过滤器,其中所述源过滤器被所述应用的过滤器图用来从所述共享存储器缓冲区获得视频。
25.如权利要求22所述的方法,其中所述视频流是包括音频流在内的复用流。
26.一种方法,包括:
向系统提供一个或多个虚拟视频捕获设备驱动器,其中所述虚拟视频捕获设备驱动器从共享存储器缓冲区获得视频数据;以及
用接收自互斥型视频捕获设备驱动器的视频数据填充所述共享存储器缓冲区。
27.如权利要求26所述的方法,其中所述一个或多个虚拟视频捕获设备驱动器是互斥的。
28.如权利要求26所述的方法,其中所述虚拟视频捕获设备驱动器至少包括过滤器图中的源过滤器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/932,566 US20060050155A1 (en) | 2004-09-02 | 2004-09-02 | Video camera sharing |
US10/932,566 | 2004-09-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1744048A true CN1744048A (zh) | 2006-03-08 |
CN1744048B CN1744048B (zh) | 2010-09-29 |
Family
ID=35457993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200510093798XA Expired - Fee Related CN1744048B (zh) | 2004-09-02 | 2005-08-31 | 摄像机共享 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20060050155A1 (zh) |
EP (1) | EP1790164A2 (zh) |
KR (2) | KR20070039982A (zh) |
CN (1) | CN1744048B (zh) |
TW (1) | TWI285499B (zh) |
WO (1) | WO2006028659A2 (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101594510B (zh) * | 2009-06-23 | 2011-11-23 | 腾讯科技(深圳)有限公司 | 一种实现摄像头资源共享的方法及系统 |
CN101833520B (zh) * | 2009-03-11 | 2013-01-16 | 凹凸电子(武汉)有限公司 | 多个应用程序同时使用一个摄像头的系统和方法 |
CN103327278A (zh) * | 2013-07-10 | 2013-09-25 | 亿览在线网络技术(北京)有限公司 | 一种图像实时共享方法及装置 |
CN104243906A (zh) * | 2014-06-26 | 2014-12-24 | 深圳市科瑞电子有限公司 | 视频监控与可视对讲系统间的视频码流共享实现方法 |
CN101714956B (zh) * | 2009-10-29 | 2015-08-05 | 北京中星微电子有限公司 | 一种虚拟视频系统、视频文件远程共享系统和方法 |
CN101667143B (zh) * | 2009-09-18 | 2015-11-25 | 北京中星微电子有限公司 | 一种视频数据处理系统及方法 |
CN105516666A (zh) * | 2015-12-14 | 2016-04-20 | 深圳市云视互联有限公司 | 音视频采集设备、音视频采集辅助系统和音视频监控系统 |
CN106598715A (zh) * | 2016-12-01 | 2017-04-26 | 北京光年无限科技有限公司 | 一种用于机器人的图像数据处理方法及机器人 |
WO2017152650A1 (zh) * | 2016-03-08 | 2017-09-14 | 珠海全志科技股份有限公司 | 一种摄像机资源共享的方法和装置 |
CN106020777B (zh) * | 2016-04-29 | 2018-08-07 | 杭州华橙网络科技有限公司 | 一种数据处理方法、装置及系统 |
CN109462726A (zh) * | 2017-09-06 | 2019-03-12 | 比亚迪股份有限公司 | 摄像头的控制方法和装置 |
CN110913145A (zh) * | 2019-01-10 | 2020-03-24 | 姜鹏飞 | 一种拍摄控制方法、装置、设备及计算机可读存储介质 |
CN111383168A (zh) * | 2018-12-31 | 2020-07-07 | Tcl集团股份有限公司 | 隐私保护摄影机 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6438638B1 (en) | 2000-07-06 | 2002-08-20 | Onspec Electronic, Inc. | Flashtoaster for reading several types of flash-memory cards with or without a PC |
US7295443B2 (en) | 2000-07-06 | 2007-11-13 | Onspec Electronic, Inc. | Smartconnect universal flash media card adapters |
US7508659B2 (en) * | 2002-11-15 | 2009-03-24 | Mcm Portfolio Llc | Flash media reading devices with integrated storage compartments |
US7930409B2 (en) * | 2005-02-23 | 2011-04-19 | Aol Inc. | Configuring output on a communication device |
EP1858261A1 (de) * | 2006-05-16 | 2007-11-21 | Ascom (Schweiz) AG | Echtzeitübertragung von Videodaten |
TW200832274A (en) * | 2007-01-17 | 2008-08-01 | Asustek Comp Inc | Video processing method and system for a virtual camera |
US9060094B2 (en) * | 2007-09-30 | 2015-06-16 | Optical Fusion, Inc. | Individual adjustment of audio and video properties in network conferencing |
US8954178B2 (en) | 2007-09-30 | 2015-02-10 | Optical Fusion, Inc. | Synchronization and mixing of audio and video streams in network-based video conferencing call systems |
US8276195B2 (en) * | 2008-01-02 | 2012-09-25 | Microsoft Corporation | Management of split audio/video streams |
US20170251145A1 (en) * | 2008-12-05 | 2017-08-31 | University Of Pittsburgh-Of The Commonwealth Syste M Of Higher Education | Passively powered image capture and transmission system |
AU2013348151B2 (en) * | 2012-11-21 | 2018-01-04 | H4 Engineering, Inc. | Automatic cameraman, automatic recording system and video recording network |
EP2790102A1 (en) * | 2013-04-12 | 2014-10-15 | ST-Ericsson SA | Vibrator and audio resource sharing for mobile communication device |
US9525892B2 (en) * | 2014-05-27 | 2016-12-20 | Nextdrive Inc. | Video image distribution method |
US10491812B2 (en) | 2015-03-23 | 2019-11-26 | Intel Corporation | Workload scheduler for computing devices with camera |
US10530706B2 (en) | 2016-03-25 | 2020-01-07 | Microsoft Technology Licensing, Llc | Arbitrating control access to a shared resource across multiple consumers |
KR20180023326A (ko) * | 2016-08-25 | 2018-03-07 | 삼성전자주식회사 | 전자 장치 및 이미지 센서로부터 획득된 이미지를 어플리케이션으로 전달하기 위한 방법 |
US10212326B2 (en) * | 2016-11-18 | 2019-02-19 | Microsoft Technology Licensing, Llc | Notifications for control sharing of camera resources |
US10206083B2 (en) * | 2016-12-30 | 2019-02-12 | Intel Corporation | Using wireless display docking technology over infrastructure networks |
US10447924B2 (en) | 2017-06-30 | 2019-10-15 | Microsoft Technology Licensing, Llc | Camera usage notification |
US10330932B2 (en) | 2017-07-14 | 2019-06-25 | Realwear, Incorporated | Multi-process access to a single-process resource |
US10368128B2 (en) * | 2017-08-11 | 2019-07-30 | Microsoft Technology Licensing, Llc | Memory allocation type for media buffer |
CN111327758B (zh) * | 2018-12-17 | 2022-08-02 | 中兴通讯股份有限公司 | 摄像头共享方法及装置 |
WO2020159032A1 (ko) * | 2019-01-30 | 2020-08-06 | 삼성전자 주식회사 | 복수의 어플리케이션에 카메라에서 획득한 이미지를 제공하는 전자 장치 및 그의 동작 방법 |
CN111565332A (zh) * | 2020-04-27 | 2020-08-21 | 北京字节跳动网络技术有限公司 | 视频传输方法、电子设备和计算机可读介质 |
CN114079732B (zh) * | 2020-08-20 | 2022-11-22 | 腾讯科技(深圳)有限公司 | 摄像头控制方法及装置、电子设备、存储介质 |
CN112118459A (zh) * | 2020-08-28 | 2020-12-22 | 上海商米科技集团股份有限公司 | 共享摄像头数据实现多个app共同直播的方法及可读介质 |
CN114302040B (zh) * | 2021-12-24 | 2024-03-19 | 展讯半导体(成都)有限公司 | 多应用共享单一摄像头的方法及相关产品 |
CN114500877A (zh) * | 2021-12-30 | 2022-05-13 | 惠州华阳通用智慧车载系统开发有限公司 | 一种摄像头的共享方法、系统及存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0167116B1 (ko) * | 1991-07-26 | 1999-03-20 | 마이클 에이치. 모리스 | 변형가능한 디스플레이 메모리 제공방법 및 장치 |
US5815678A (en) * | 1995-07-14 | 1998-09-29 | Adaptec, Inc. | Method and apparatus for implementing an application programming interface for a communications bus |
US5842015A (en) * | 1996-07-26 | 1998-11-24 | Hewlett-Packard Company | System and method for real-time control of hardware in a multiprocessing environment |
US6308248B1 (en) * | 1996-12-31 | 2001-10-23 | Compaq Computer Corporation | Method and system for allocating memory space using mapping controller, page table and frame numbers |
US6380968B1 (en) * | 1998-01-06 | 2002-04-30 | Intel Corporation | Method and apparatus for controlling a remote video camera in a video conferencing system |
EP0981085A3 (en) * | 1998-08-12 | 2005-01-19 | Texas Instruments Incorporated | Application controlled data flow between processing tasks |
US7830362B2 (en) * | 2001-07-05 | 2010-11-09 | Michael Cain Finley | Laser and digital camera computer pointer device system |
ATE388438T1 (de) * | 2001-12-14 | 2008-03-15 | Nxp Bv | Verfahren zur datenverarbeitung |
US7289716B2 (en) * | 2002-06-14 | 2007-10-30 | Microsoft Corporation | Scalable programmable video recorder |
TW589880B (en) * | 2003-03-07 | 2004-06-01 | Asustek Comp Inc | Processing method and system for real-time video stream |
US7032088B2 (en) * | 2003-08-07 | 2006-04-18 | Siemens Corporate Research, Inc. | Advanced memory management architecture for large data volumes |
US7139894B1 (en) * | 2003-09-12 | 2006-11-21 | Microsoft Corporation | System and methods for sharing configuration information with multiple processes via shared memory |
US7486297B2 (en) * | 2003-09-22 | 2009-02-03 | Ati Technologies, Inc. | Method and apparatus for image processing in a handheld device |
-
2004
- 2004-09-02 US US10/932,566 patent/US20060050155A1/en not_active Abandoned
-
2005
- 2005-08-11 TW TW094127320A patent/TWI285499B/zh not_active IP Right Cessation
- 2005-08-12 EP EP05786382A patent/EP1790164A2/en not_active Withdrawn
- 2005-08-12 WO PCT/US2005/028957 patent/WO2006028659A2/en active Application Filing
- 2005-08-12 KR KR1020077005165A patent/KR20070039982A/ko not_active Application Discontinuation
- 2005-08-12 KR KR1020097000603A patent/KR100962753B1/ko not_active IP Right Cessation
- 2005-08-31 CN CN200510093798XA patent/CN1744048B/zh not_active Expired - Fee Related
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833520B (zh) * | 2009-03-11 | 2013-01-16 | 凹凸电子(武汉)有限公司 | 多个应用程序同时使用一个摄像头的系统和方法 |
CN101594510B (zh) * | 2009-06-23 | 2011-11-23 | 腾讯科技(深圳)有限公司 | 一种实现摄像头资源共享的方法及系统 |
CN101667143B (zh) * | 2009-09-18 | 2015-11-25 | 北京中星微电子有限公司 | 一种视频数据处理系统及方法 |
CN101714956B (zh) * | 2009-10-29 | 2015-08-05 | 北京中星微电子有限公司 | 一种虚拟视频系统、视频文件远程共享系统和方法 |
CN103327278A (zh) * | 2013-07-10 | 2013-09-25 | 亿览在线网络技术(北京)有限公司 | 一种图像实时共享方法及装置 |
CN104243906B (zh) * | 2014-06-26 | 2018-06-01 | 深圳市麦驰物联股份有限公司 | 视频监控与可视对讲系统间的视频码流共享实现方法 |
CN104243906A (zh) * | 2014-06-26 | 2014-12-24 | 深圳市科瑞电子有限公司 | 视频监控与可视对讲系统间的视频码流共享实现方法 |
CN105516666A (zh) * | 2015-12-14 | 2016-04-20 | 深圳市云视互联有限公司 | 音视频采集设备、音视频采集辅助系统和音视频监控系统 |
WO2017152650A1 (zh) * | 2016-03-08 | 2017-09-14 | 珠海全志科技股份有限公司 | 一种摄像机资源共享的方法和装置 |
CN106020777B (zh) * | 2016-04-29 | 2018-08-07 | 杭州华橙网络科技有限公司 | 一种数据处理方法、装置及系统 |
CN106598715A (zh) * | 2016-12-01 | 2017-04-26 | 北京光年无限科技有限公司 | 一种用于机器人的图像数据处理方法及机器人 |
CN109462726A (zh) * | 2017-09-06 | 2019-03-12 | 比亚迪股份有限公司 | 摄像头的控制方法和装置 |
CN111383168A (zh) * | 2018-12-31 | 2020-07-07 | Tcl集团股份有限公司 | 隐私保护摄影机 |
CN110913145A (zh) * | 2019-01-10 | 2020-03-24 | 姜鹏飞 | 一种拍摄控制方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TWI285499B (en) | 2007-08-11 |
US20060050155A1 (en) | 2006-03-09 |
KR20070039982A (ko) | 2007-04-13 |
TW200611560A (en) | 2006-04-01 |
KR20090009998A (ko) | 2009-01-23 |
WO2006028659A2 (en) | 2006-03-16 |
KR100962753B1 (ko) | 2010-06-10 |
WO2006028659A3 (en) | 2007-03-15 |
EP1790164A2 (en) | 2007-05-30 |
CN1744048B (zh) | 2010-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1744048A (zh) | 摄像机共享 | |
US8284267B2 (en) | Virtual camera for sharing a physical camera | |
US10051202B2 (en) | Method and apparatus for adaptively mixing video source signals | |
US8638353B2 (en) | Video processing in a multi-participant video conference | |
CN1809153A (zh) | 视频合成设备及视频合成方法 | |
US20140074911A1 (en) | Method and apparatus for managing multi-session | |
CN1234688A (zh) | 图象输入装置、系统和方法图象收发系统和存储媒体 | |
CN1957371A (zh) | 用于查看与增强图像的方法和系统 | |
CN113302928B (zh) | 传输多视频流的系统和方法 | |
JP2006148875A (ja) | ステップ画像を用いた画像ベースビデオの生成 | |
CN1848916A (zh) | 多相机系统、图像拾取设备及方法、控制器及控制方法 | |
CN101076119A (zh) | Mpeg视频再现装置以及mpeg视频再现方法 | |
CN101046742A (zh) | 一种实时获取多媒体图像的方法以及设备 | |
CN1867027A (zh) | 具有网络扫描功能的图像扫描设备和网络扫描方法及系统 | |
WO2021159842A1 (zh) | 人脸抓拍架构及其人脸抓拍方法、装置、设备及存储介质 | |
US10452449B1 (en) | Scheduler for vector processing operator allocation | |
US20060093322A1 (en) | Data processing apparatus, data processing method, data processing system, program, and storage medium | |
US8280220B2 (en) | Reproduction apparatus, data processing system, reproduction method, program, and storage medium | |
CN1320829C (zh) | 图像处理方法及装置 | |
CN1218256C (zh) | 选择待显示图像的设备和方法 | |
US10649666B1 (en) | Link-list shortening logic | |
US11216307B1 (en) | Scheduler for vector processing operator readiness | |
US7729591B2 (en) | Data processing apparatus, reproduction apparatus, data processing system, reproduction method, program, and storage medium | |
CN1168023C (zh) | 设有照相机的膝上型电脑 | |
KR102621335B1 (ko) | 고속 시리얼 인터페이스를 이용한 영상 획득 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100929 Termination date: 20160831 |