协作交叉平台视频捕捉的制作方法

文档序号:7978630阅读:111来源:国知局
协作交叉平台视频捕捉的制作方法
【专利摘要】描述了系统、设备和方法,其包括确定一个视频捕捉设备和另一个视频捕捉设备之间的时钟偏移,使用第一视频捕捉设备捕捉场景的第一视频序列,向所述另一个视频捕捉设备发送开始命令,向所述另一个视频捕捉设备发送停止命令,向所述另一个视频捕捉设备发送视频文件传输命令,以及接收由所述另一个视频捕捉设备响应于开始和停止命令捕捉的该场景的第二视频序列。然后,可以使用该时钟偏移来将第一视频序列与第二视频序列进行同步。
【专利说明】协作交叉平台视频捕捉
【背景技术】
[0001]当前,诸如智能电话或手写板的许多移动设备配备有支持视频的摄像头。通常,这种捕捉设备是由单个用户使用的,并且每个设备独立地捕捉图像和/或视频内容。一些应用,如场景的三维(3D)建模或者根据该场景的多个二维(2D)图像的运动视差3D感知创建,需要从多个角度和视角捕捉该场景的图像,并且然后对这些图像进行组合和处理以计算该场景的3D信息。不幸的是,只有待捕捉的场景呈现较少运动并且捕捉时间差异无关紧要时,在其中多个捕捉设备没有同步的独立捕捉框架才良好地工作。这种框架对于呈现出运动的场景无法良好地工作。
[0002]在不修改设备硬件的情况下使用多个独立的设备来实现同步的视频捕捉是具有挑战的问题。例如,可能期望具有小于16毫秒的定时同步精度。然而,由于各种因素,比如由平台、操作系统和/或应用软件引入的延迟/抖动,不同的捕捉设备在不同的捕捉阶段可能在捕捉时间上具有明显的延迟变化。当前的同步方案要么具有不足的定时精度(例如,网络时间协议NTP)要么需要明显的平台变化以支持现有的同步协议(例如,802.1lv和802.1AS 协议)。
【专利附图】

【附图说明】
[0003]在附图中以实例的方式而非限制的方式来说明本文描述的内容。为了说明的简单和清楚,图中示出的单元不是必须按照比例来画出的。例如,为了清楚起见,一些单元的尺寸相比其它单元而言可能被放大了。此外,在认为适当的情况下,参考标记在附图之间是重复的,以表示相应的或类似的单元。在附图中:
[0004]图1是示例方案的示图;
[0005]图2是示例设备的示图;
[0006]图3是示出了示例视频捕捉过程的流程图;
[0007]图4是示例控制消息的示图;
[0008]图5是不例二路握手方案的不图;
[0009]图6是示出了示例同步过程的流程图;
[0010]图7是示例元数据消息格式的示图;
[0011]图8是示例视频文件格式的示图;
[0012]图9是示例定时方案的示图;
[0013]图10是示例系统的示图;以及
[0014]图11示出了完全根据本公开的至少一部分实现方案来设置的示例设备。
【具体实施方式】
[0015]现在参照附图来描述一个或多个实施例或实现方案。尽管讨论了具体的配置和设置,但是应当理解这样做仅仅是为了说明的目的。相关领域技术人员将认识到,可以在不偏离本文的精神和范围的情况下运用其它的配置和设置。本文描述的技术和/或设置也可以运用在除本文描述的之外的各种其它系统和应用中,这对相关领域技术人员而言是清楚的。
[0016]尽管下面的描述给出了可以在诸如片上系统(SoC)体系结构的体系结构上呈现,但是本文描述的技术和/或设置的实现方案不局限于特定的体系结构和/或计算系统,并且可以由任何体系结构和/或计算系统来实现以用于相似的目的。例如,运用诸如多个集成电路(IC)芯片和/或封装的各种体系结构、和/或各种计算设备、和/或诸如机顶盒、智能电话的消费电子(CE)设备、等等,可以实现本文描述的技术和/或设置。此外,尽管下面的描述可能给出了很多具体细节,比如,逻辑实现方案、系统部件的类型和相互关系、逻辑划分/集成选择等等,但是可以在没有这些具体细节的情况下实现所要求保护的主题。在其它示例中,可能没有具体示出例如控制接口和全部软件指令序列的部分内容,以便避免混淆本公开内容。
[0017]本文描述的内容可以实现在硬件、固件、软件或其任意组合中。本文公开的内容也可以实现为存储在机器可读介质中的指令,该指令可以由一个或多个处理器来读取和执行。机器可读介质可以包括用于以机器(例如,计算设备)可读的形式来存储或发送信息的任何介质和/或机制。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储媒体;光存储媒体;闪存存储设备;传播信号的电、光、声、或其它形式(例如,载波、红外信号、数字信号等)、等等。
[0018]说明书中提及“一个实现方案”、“实现方案”、“示例实现方案”等等表示所描述的实现方案可以包括特定的特征、结构或特性,但是每个实现方案可以不必包括该特定的特征、结构或特性。此外,这些语句不必是指相同的实现方案。另外,当结合实现方案来描述特定的特征、结构或特性时,表明无论是否在本文中进行了具体的描述,结合其它实现方案来实现这种特征、结构或特性,是本领域技术人员公知的。
[0019]图1示出了根据本公开的示例性协作视频捕捉方案100。在各种实现方案中,方案100可以包括多个视频捕捉设备102、104和106,其被设置为捕捉三维(3D)场景108的视频。在各种实现方案中,为了协作捕捉场景108的视频,捕捉设备102、104和106可以运用下文将更详细描述的根据本公开的控制和/或同步协议。在这种操作中,设备102、104和106可以交换协议消息110。此外,如同样将在下文中更详细解释的,根据本公开,设备102、104和106中的每一个可以使用其自身的自由工作时钟(未示出)来产生各种时间戳,并且可以在协议消息110中包括这些时间戳中的一个或多个。
[0020]在各种实现方案中,根据本公开的捕捉设备可以是能够捕捉场景108的视频图像序列的任意类型的设备,例如,包括视频功能摄像头的各种消费电子(CE)设备、移动计算系统(例如,手写板计算机等)、移动和/或手持通信设备(例如,智能电话等)、等等。尽管图1看起来描绘了相类似的设备102、104和106,但是本公开不局限于运用相似和/或相同捕捉设备或设备平台的方案。因此,例如,设备102、104和106可以是不相似的设备(如,设备102和104可以是智能电话,而设备106可以是手写板计算机,等等)。在各种实现方案中,设备102、104和106可以捕捉具有基本相似或不同图像分辨率和/或帧速率的视频序列。
[0021]图2示出了根据本公开的捕捉设备200,其中,设备200可以是例如方案100的捕捉设备102、104和106中的任何一个。设备200包括成像模块202,其在处理器204的控制下捕捉视频图像,并且将该视频图像提供给处理器204。在各种实现方案中,成像模块202可以包括能够捕捉视频图像的任何类型的成像阵列和相关联的逻辑。在各种实现方案中,处理器204可以是能够从模块202接收视频序列并且能够如本文所描述地来处理该视频序列的任何类型的处理器,例如,媒体处理器、图形处理器、数字信号处理器等。
[0022]设备200还包括存储器206、无线电模块208、同步模块210、以及时钟模块212。在各种实现方案中,同步模块210可以与协作视频捕捉应用(未示出)相关联,并且可以例如利用由处理器204执行的软件代码来实现。在各种实现方案中,同步模块210可以实现根据本公开的控制和同步协议。在进行这种操作中,同步模块210可以使用无线电模块208来使用诸如WiFi等的已知无线通信方案将协议消息无线发送至方案100的其它捕捉设备。无线电208还可以从其它捕捉设备无线接收协议消息,并且然后可以将这些消息传送到同步模块210。此外,同步模块210也可以使用无线电208来将由成像模块202捕捉的(并且可以在传输之前由处理器204进行编码的)视频序列无线发送至方案100的其它捕捉设备。无线电208也可以从其它捕捉设备无线接收视频序列,并且然后将该视频传送至同步模块210。
[0023]根据本公开并且如将在下文中更详细描述的,同步模块210可以将根据由时钟模块212提供的时钟信号生成的定时数据(比如时间戳)插入到被发送至其它视频捕捉设备的各种协议消息中。此外,同步模块210可以接收与从其它视频捕捉设备接收的协议消息相关联的定时数据(比如时间戳),其中,该定时数据是由所述其它设备生成的。在各种实现方案中,同步模块210可以将在设备200内部生成的或者从其它视频捕捉设备接收的定时数据存储在存储器206中。在各种实现方案中,如将在下文更详细说明的,同步模块210可以使用该定时数据来确定设备200的(如由时钟模块212产生的)时钟信号与其它图像捕捉设备的时钟信号之间的时钟偏移。
[0024]无线电模块208可以包括能够使用各种合适的无线通信技术来发送和接收信号的一个或多个无线电。这些技术可以包括在一个或多个无线网络之间的通信。示例无线网络包括(但不局限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络、以及卫星网络。在这些网络之间的通信中,无线电模块208可以根据任何版本中的一个或多个可用标准来进行操作。此外,存储器206可以实现为易失性存储设备,例如,但不局限于,随机存取存储器(RAM)、动态随机存取存储器(DRAM)、或者静态RAM (SRAM)。在其它实现方案中,存储器206可以是非易失性存储器,例如,闪存存储器。
[0025]回到对图1的讨论,根据本公开,捕捉设备102、104和106中的任意设备的用户可以开启该设备上的协作视频捕捉应用。作为响应,捕捉设备可以自动初始化控制和/或同步协议,该控制和/或同步协议可以使用协议消息110来向设备102、104和106中的每一个提供包括时间戳的同步信息。此外,根据本公开,设备102、104和106中的每一个可以捕捉场景108的视频,可以相互交换捕捉的视频,并且可以使用同步信息来同步各个视频序列。
[0026]尽管方案100示出了三个视频捕捉设备102、104和106,但是在根据本公开实现协作视频捕捉方案和/或进行协作视频捕捉处理时,本公开不局限于任何具体数目的视频捕捉设备。因此,例如,在各种实现方案中,根据本公开的协作视频捕捉方案可以包括两个或更多个视频捕捉设备。
[0027]此外,如将在下文更详细说明的,根据本公开的协作视频捕捉方案可以包括实现主/从或者服务器/客户端方案的视频捕捉设备。在其它实现方案中,如同样将在下文更详细说明的,根据本公开的协作视频捕捉方案可以包括实现对等方案的视频捕捉设备。
[0028]图3示出了根据本公开的各种实现方案的协作视频捕捉的示例过程300的流程图。过程300可以包括如由图3的一个或多个方框302、303、304、305、306、307和308所示出的一个或多个操作、功能或动作。本文将参照图1的示例方案100和图2的示例视频捕捉设备200来以非限定示例的方式描述过程300。
[0029]过程300可以在方框302处开始,其中,确定在第一和第二视频捕捉设备之间的时钟偏移。在各种实现方案中,方框302可以包括设备200上的协作视频捕捉应用,其自动地使用控制协议来实现控制过程并且使用同步协议来实现同步过程。根据本公开,用于协作视频捕捉的控制过程可以允许一个视频捕捉设备作为主设备,以便触发相同无线网络上的其它视频捕捉从设备来在没有用户干预的情况下在从设备处自动捕捉视频序列。
[0030]根据本公开,控制协议可以定义至少四个控制消息,包括视频触发消息、开始消息、停止消息、以及视频文件传输消息。然而,本公开不局限于仅仅四个控制消息,并且可以定义额外的控制消息。在各个实现方案中,视频触发控制消息可以指示从捕捉设备发起协作视频捕捉应用,该协作视频捕捉应用可以根据本公开来执行同步过程。在各种实现方案中,开始控制消息可以包括开始命令,其指示从捕捉设备开始捕捉视频序列。在各种实现方案中,停止控制消息可以包括停止命令,其指示从捕捉设备停止捕捉视频序列。在各种实现方案中,视频文件传输消息可以包括视频文件传输命令,其指示从捕捉设备将包括捕捉的视频序列的视频文件传输到主捕捉设备。在各种实现方案中,包括捕捉的视频序列的视频文件可以与元数据相关联并且附加有元数据,该元数据包括指明捕捉的视频序列的开始时间的开始时间戳,其中,从捕捉设备使用其自身的内部时钟模块来生成该开始时间戳。
[0031]在各种实现方案中,控制消息可以包括两个字段。例如,图4描绘了包括帧类型字段402和ToD时间戳字段404形式的定时数据的示例控制消息格式400,其中,帧类型字段402标识消息类型(例如,视频触发、开始、停止、或视频文件传输)并且作为相应的命令(例如,时频触发命令、开始命令、停止命令、或视频文件传输命令),ToD时间戳字段404形式的定时数据指明了帧的离开时间(ToD)。例如,同步模块210可以使用无线电模块208来将控制消息传送至其它视频捕捉设备,并且可以使用从时钟模块212接收的时钟信号来生成出现在这些消息的ToD时间戳字段404中的定时数据。本文为了说明的目的而提供消息格式400,并且可以运用各种控制消息格式或方案,本公开不局限于任何特定控制消息格式或方案。
[0032]在各种实现方案中,作为在两个视频捕捉设备之间实现同步的机制,可以在方框302处使用同步协议来确定时钟偏移。因此,根据本公开的同步协议可以允许视频捕捉设备确定其自身的时钟信号与一个或多个其它视频捕捉设备的时钟信号之间的时钟偏移,而不是修改视频捕捉设备的时钟以匹配另一个设备的时钟。
[0033]根据本公开,时钟偏移测量或同步协议可以定义至少三个同步消息,包括时间同步请求、时间同步响应、以及时间同步确认(ACK)。然而,本公开不局限于三个同步消息,并且可以定义额外的控制消息。在各种实现方案中,同步消息可以具有与在图4中给出的相似的帧格式。此外,在各种实现方案中,在方框302处进行同步过程可以包括使用三个同步消息来执行如在图5中描绘的三路握手方案500。[0034]在方案500中,视频捕捉设备(设备A)可以发送包括定时数据(Tl)的时间同步请求消息502,该定时数据Tl以ToD时间戳的形式指明了离开时间。例如,同步模块210可以使用无线电模块208来将消息502发送至另一视频捕捉设备(设备B),并且可以包括使用从时钟模块212接收的时钟信号生成的ToD时间戳。在各种实现方案中,定时数据Tl可以指明消息502的离开时间,并且可以表示为以毫秒为单位的时间值。
[0035]在接收到时间同步请求消息502之后,设备B可以记录定时数据(T2),其指明了消息502的到达时间(ToA)。设备B可以使用其自身的同步和时钟模块来生成定时数据(T2)。然后,设备B可以将时间同步响应消息504发送至设备A,其中,消息504包括T2以及指明了消息504的ToD的额外定时数据(T3)。在各种实现方案中,定时数据T2和T3可以是以毫秒为单位的时间值。
[0036]在接收到时间同步响应消息504之后,设备A可以记录定时数据(T4),其指明了消息504的ToA。然后,设备A可以将包括T4的时间同步ACK消息506发送至设备B。在各种实现方案中,设备A和B均可以记录和存储定时数据T1、T2、T3和T4。例如,设备200可以将与时间戳Tl、Τ2、Τ3和Τ4对应的时间值存储在存储器206中。通过这样做,如下面将更详细说明的,方案500的设备A和B可以确定设备的内部时钟信号和其它设备的时钟信号之间的时钟偏移值。
[0037]在方框302处进行的根据本公开的同步过程可以运用(例如,如在图5中描绘的)三路握手方案来生成可以用于确定时钟偏移的定时数据(例如,时间戳Tl、Τ2、Τ3和Τ4)。例如,图6示出了根据本公开各种实现方案的示例同步过程600的流程图。过程600可以包括如通过图6的方框602、604、606、608、610和612中的一个或多个不出的一个或多个操作、功能或动作。本文将参照图1的示例方案100、图2的示例视频捕捉设备200、以及图5的示例三路握手方案500来以非限制性示例的方式描述过程600。
[0038]过程600可以在方框602处开始,其中,可以发送包括第一时间戳的第一消息。例如,方框602可以对应于诸如设备102和104的两个视频捕捉设备之间的三路握手的发起。例如,方框602可以在设备102的用户例如通过开启设备102上的软件应用来调用协作视频捕捉时自动地进行。在进行这样的操作中,设备102可以向设备104发送视频触发命令,该视频触发命令指示设备104开启相应的协作视频捕捉应用并且通知设备104正在发起同步过程。例如,参照示例方案500,方框602可以对应于设备102 (例如,方案500的设备Α)向设备104 (例如,方案500的设备B)发送包括Tl时间戳的时间同步请求消息502。如上所述,时间戳Tl可以表示来自设备102的第一消息的ToD。
[0039]在方框604处,可以接收第二消息,其中,该第二消息包括第二时间戳和第三时间戳。例如,方框604可以对应于设备102从设备104接收包括T2和T3时间戳的时间同步响应消息504。如上所述,时间戳T2可以表示第一消息在设备104处的ToA,时间戳T3可以表不来自设备104的第二消息的ToD。
[0040]过程600可以在方框606处继续,其中,可以发送包括第四时间戳的第三消息。例如,方框606可以对应于设备102向设备104发送包括T4时间戳的时间同步ACK消息506。如上所述,时间戳T4可以表示来自设备102的第四消息的ToD。
[0041]在方框608处,可以存储第一、第二、第三、和第四时间戳。例如,方框608可以包括设备102使用同步模块210来将与T1、T2、T3和Τ4时间戳对应的各个时间值存储在存储器206中。例如,在各种实现方案中,当进行方框602、604和606中的每一个时,设备102可以通过将相对应的时间值写入到存储器206中来记录T1、T2、T3和Τ4时间戳。
[0042]过程600可以在方框610处继续,其中,可以针对是否重复方框602-608做出决定。例如,在各种实现方案中,方框602-608可以进行多次,使得过程600可以通过方框602-610重复循环,并且在方框608的每个实例处可以存储相应的Tl、Τ2、Τ3和Τ4时间戳集合。在一些实现方案中,方框602-608可以进行十次或更多,并且可以存储相应的时间戳值集合以供如下面所描述的后续使用。例如,在方框602处发起的协作视频捕捉应用可以基于预先确定的方框602-606(对应于三路握手方案)将要进行的次数来执行方框610的决定。
[0043]如果在方框602处决定不重复方框602-608,则过程600可以在方框612处结束,其中,可以响应于第一、第二、第三和第四时间戳来确定时钟偏移。在各种实现方案中,方框610可以包括设备102的同步模块210使用作为进行方框602-610的结果存储的时间值来执行一系列的计算。
[0044]在各种实现方案中,同步模块210可以通过从存储器206取回时间值并且使用该时间值使用下面的表达式确定设备102和设备104之间的时钟偏移值,来进行方框612:
[0045]ClockOffsetdevl = [ (T2-T1) - (T4-T3) ] /2 (公式 I)
[0046]在各种实现方案中,各种时间戳Tl、T2、T3和T4中的每一个的值可以对应于不同的因素。例如,Tl的值可以是设备102的时钟信号的函数,Τ2的值可以是设备104的时钟信号和与在第一消息被设备102发送和其被设备104接收之间的间隔对应的帧延迟的函数,Τ3的值可以是设备104的时钟信号的函数,Τ4的值可以是设备102的时钟信号和与在第二消息被设备104发送和其被设备102接收之间的间隔对应的帧延迟的函数。因此,根据本公开,可以在第一视频捕捉设备处使用公式I来确定与第一视频捕捉设备和第二视频捕捉设备的时钟信号之间的偏移对应的时钟偏移值。
[0047]在各种实现方案中,同步模块210可以取回与Tl、Τ2、Τ3和Τ4时间戳对应的值的多个集合,将公式I应用到Τ1、Τ2、Τ3和Τ4值的每个集合以计算时钟偏移,以及将平滑函数应用到得出的时钟偏移值以解决平台和/或网络抖动。例如,可以应用各种已知的平滑算法来平滑时钟偏移值。例如,在各种实现方案中,可以应用包括以下函数形式的平滑算法:
[0048]y (i+1) = A*x (i+1) + (1_A) *y (i)(公式 2)
[0049]其中,X (i+1)是根据第(i+1)个T1、T2、T3和T4值的集合计算的第(i+Ι)个时钟偏移结果,y(i)是第(i)个经过平滑的时钟偏移,并且A是可变的加权因子,其具有大于零且小于一的值。例如,可以使用较大的A值(例如,A = 0.8)来对较近的时钟偏移值给出更重的加权。然而,本公开不局限于任何特定的数据处理技术,例如,对公式2的平滑函数的应用。因此,例如,在其它实现方案中,可以使用平均窗口来对公式I的结果应用平均处理,以将平均处理限制在例如最后K个采样。
[0050]尽管已经从一对协作视频捕捉设备中的一个设备(例如,通过向另一视频捕捉设备发送视频触发命令来发起方案500的设备)进行的动作的角度描述了过程600,但是另一个视频捕捉设备也可以按照对等的设置来进行存储时间戳值(方框608)和确定时钟偏移(方框612)。因此,在各种实现方案中,第二视频捕捉设备(例如,设备104)的同步模块210可以使用下面的表达式来确定其时钟信号与第一视频捕捉设备(例如,设备102)的时钟信号之间的时钟偏移:
[0051 ] ClockOffsetdev2 = [ (T4-T3) - (T2-T1) ] /2 (公式 3)
[0052]因此,在根据本公开的定时同步过程完成之后,两个视频捕捉设备可以了解到两个设备的时钟信号之间的定时偏移。
[0053]回到对图3的讨论,在方框302处确定时钟偏移之后,过程300可以在方框303和304处继续,其中,第一视频捕捉设备可以在方框303处向第二视频捕捉设备发出开始命令(例如,开始控制消息),同时第一视频捕捉设备可以在方框304处捕捉场景的第一视频序列。例如,在各种实现方案中,在方框302处进行时钟偏移测量或同步协议(例如,方案500)之后,设备102可以通过向设备104发出开始命令(例如,开始控制消息)来进行方框303,同时或者紧接着在方框304处捕捉场景108的视频序列。在接收到来自第一视频捕捉设备的开始命令之后,第二视频捕捉设备可以捕捉该场景的第二视频序列。例如,在各种实现方案中,在接收到来自设备102的开始命令后,设备104可以捕捉场景108的视频序列。
[0054]在方框305处,可以向第二视频捕捉设备发送停止命令。例如,设备102可以通过向设备104发出停止命令(例如,停止控制消息)来进行方框305,该停止命令指示设备104停止捕捉视频序列,该视频序列是设备104响应于作为方框303的结果接收的开始命令而开始进行捕捉的。
[0055]随后,在方框306处,可以向第二视频捕捉设备发送视频文件传输命令。例如,在已经在方框305处指示设备104停止捕捉视频的情况下,设备102可以通过向设备104发出视频文件传输命令(例如,视频文件传输控制消息)来进行方框306,该视频文件传输命令指示设备104提供其响应于开始(方框303)和停止(方框305)命令而捕捉的视频序列。
[0056]过程300可以在方框307处继续,其中,第一视频捕捉设备可以接收由第二视频捕捉设备捕捉的场景的第二视频序列。例如,在各种实现方案中,在响应于开始(方框303)和停止(方框305)命令而捕捉场景108的第二视频序列之后,设备104可以使用其自身的时钟信号来记录该视频的开始时间,并且然后可以响应于视频文件传输命令(方框306)而向设备102发送该视频序列和相应的开始时间,其将在方框307处被接收。
[0057]根据本公开,在将视频文件从一个设备传输到另一个设备时,可以首先传输相关联的元数据消息。在各种实现方案中,元数据消息可以包含捕捉开始时间(例如,以毫秒为单位)和与生成该视频文件的设备相关联的各种上下文信息,例如,陀螺仪数据、设备方向、等等。这种上下文信息对于包括对齐视频帧和将原生数据编辑为经过处理的数据的后续处理而言将会是有用的。
[0058]例如,图7描绘了示例元数据消息格式700,并且图8描绘了示例视频文件格式800。如 在图7中所示,元数据消息格式700可以包括:帧类型字段702,其将消息标识为视频元数据;令牌字段704,如计数器,其将元数据与特定视频文件相关联;长度字段706,其指明了消息主体的长度(例如,以八位字节为单位);以及一个或多个单元708、710、……、712,其包含不同类型的视频元数据。接下来,每个单元字段可以包括:单元类型字段714 ;长度字段716,其指明了单元主体的长度(例如,以八位字节为单位);以及单元主体字段817。单元类型字段714可以指明出现在主体字段718中的视频元数据的类型。根据本公开,元数据消息700提供的视频元数据可以包括但不局限于定时偏移值(例如,以毫秒为单位)、视频捕捉开始时间值(例如,以毫秒为单位)、以及设备方向和/或位置数据,比如,加速计数据、陀螺仪数据、光数据、磁场数据、经纬度数据、等等。本文为了说明的目的而提供格式700,并且可以运用各种元数据消息格式或方案,本公开不局限于任何特定的视频元数据消息格式或方案。
[0059]如在图8中所示,视频文件格式800可以包括:帧类型字段802,其将格式800标识为视频文件帧;令牌字段804,其具有与相应的元数据消息的令牌字段(例如,图7的令牌字段704)相同的值;长度字段806,其指明了视频文件主体的长度(例如,以八位字节为单位);以及视频文件主体字段808,其包含视频数据。本文为了说明的目的而提供格式800,并且可以运用各种文件格式或方案,本公开不局限于任何特定的视频文件格式或方案。例如,可以将视频文件分离为多个帧和/或可以运用更复杂的帧格式方案。
[0060]过程300可以在方框308处结束,其中,可以使用时钟偏移来同步第一和第二视频序列。例如,图9示出了分别针对示例第一和第二视频序列902和904的假定的定时方案900。在方案900中,序列902可以表示由第一视频捕捉设备在方框304处捕捉的视频序列,序列904可以表示由第二视频捕捉设备捕捉的并且由第一视频捕捉设备在方框307处接收的视频序列。
[0061]如在方案900中所示,序列902可以包括一系列图像帧906、908、910等等,其中,第一帧906的起始可以对应于序列902的开始时间912。类似地,序列904可以包括一系列图像帧914、916等等,其中,第一帧914的起始可以对应于序列904的开始时间918。继续上文的示例,设备102可以运用同步模块110来使用在方框302处确定的时钟偏移将序列902与序列904进行同步。因此,在各种实现方案中,在已知(使用设备104的时钟信号生成的并且在方框307处提供给设备102)的序列904的开始时间918、(利用设备102的时钟信号生成的)序列902的开始时间912、以及在方框302处确定的时钟偏移的情况下,设备102可以确定捕捉定时偏移920,以助于在方框308处冋步两个视频序列。
[0062]在各种实现方案中,假设序列902和904的帧速率是相同的,一旦设备102确定了捕捉定时偏移920,设备102也可以在方框308处确定视频序列902和/或904的适当的开始时间,以便最小化或减小序列902和904之间的帧偏移922。例如,设备102可以首先找到在时间上与序列904的开始时间918最接近的序列902的帧910,并且然后可以使用帧910的时间924作为序列902的开始时间。此外,当进行方框308时,设备102可以丢弃序列902的帧906和908。然而,本公开不局限于对具有相同帧速率的视频序列进行同步。因此,在各种实现方案中,如果两个序列具有不同的帧速率,但是每个序列的帧速率是已知恒定的,那么序列中的每个图像的捕捉时间可以根据已知的开始时间和帧速率来计算。此外,如果序列的帧速率不是恒定的和/或已知的,但是序列中的每个图像帧被独立地打上时间戳,那么可以使用每个图像的时间戳来用于同步。
[0063]因此,根据本公开,由于在设备处记录的每个帧是使用本地时钟来打时间戳的并且由于主设备(例如,设备102)已知其与从设备(例如,设备104)之间的时钟偏移以及捕捉定时偏移,所以主设备可以匹配在相同时间附近获得的视频帧。在各种实现方案中,经由过程300得到的经过同步的视频序列可以被用于支持各种应用,例如,对场景108的视频三维(3D)重建或建模、对场景108的运动视差3D感知创建、等等。此外,通过实现过程300,能够在各种实施例中获得小于16毫秒的定时同步精度。
[0064]尽管本文已经从一对协作视频捕捉设备中的一个设备(例如,设备102)进行的动作的角度描述了过程300,但是另一个视频捕捉设备(例如,设备104)可以进行与上面描述的相似的操作。因此,在各种实现方案中,设备104可以响应于从设备102接收的开始和停止控制消息来捕捉视频序列,可以接收由设备102捕捉的视频序列,并且然后可以如上文所描述的使用其已经(例如,使用公式2)确定的时钟偏移来同步两个视频序列。
[0065]此外,根据本公开,每个协作视频捕捉设备也可以独立地测量由设备平台、设备的操作系统(OS)软件、以及设备的视频捕捉软件引入的综合的捕捉延迟。例如,在接收对视频触发命令的确认之后并且在用户按下开始按钮之后,设备可以发送开始命令。接收设备可以记录开始命令的ToA,由设备的自动聚焦引入的延迟、以及由生成一个帧引入的延迟。因此,接收视频捕捉设备可以通过计算ToA_ToD+time_offset来估计巾贞传输延迟。然后,可以如下式来估计本地引入的延迟:
[0066]local_delay = delay_auto_focus+delay_frame_generation (公式 3)
[0067]因此,通过比较在不同设备处记录的loCal_delay,主设备可以估计在主设备或服务器处视频捕捉的开始和在从设备或客户端处视频捕捉的开始之间的定时偏移。
[0068]尽管如在图3和6中示出的示例过程300和600的实现方案可以包括按照示出的顺序进行所有示出的方框,但是本公开不局限于此,并且在各种示例中,过程300和600的实现方案可以包括仅仅进行所示出的方框的子集和/或以与所示的不同的顺序来进行。
[0069]此外,可以响应于由一个或多个计算机程序产品提供的指令来进行图3和6中的任何一个或多个方框。这种程序产品可以包括提供指令的信号承载媒体,其中,该指令在例如被处理器执行时可以提供本文描述的功能。该计算机程序产品可以在任何形式的计算机可读介质中提供。因此,例如,包括一个或多个处理器核的处理器可以响应于由计算机可读介质传送到处理器的指令来进行图3和6中示出的一个或多个方框。
[0070]如在本文描述的任何实现方案中所使用的,术语“模块”是指被配置为提供本文描述的功能的软件、固件、和/或硬件的任意组合。软件可以呈现为软件包、代码和/或指令集、或者指令,并且如在本文描述的任何实现方案中所使用的“硬件”可以包括例如单个的硬件电路、可编程电路、状态机电路、和/或存储由可编程电路执行的指令的固件,或者其任何组合。模块可以全体地或者独立地呈现为构成更大系统的组成部分的电路,例如,集成电路(IC)、片上系统(SoC)、等等。
[0071]图10示出了根据本公开的示例系统1000。在各种实现方案中,系统1000可以是媒体系统,尽管系统1000不局限于该上下文。例如,系统1000可以合并到个人计算机(PC)、膝上型计算机、超级膝上型计算机、写字板、触摸平板、便携式计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能设备(例如,智能电话、智能写字板、或智能电视机)、移动联网设备(MID)、消息传送设备、数据通信设备、照相机(例如,傻瓜式(point-and-shoot)相机、大变焦相机、数码单发(DSLR)相机)、等等。
[0072]在各种实现方案中,系统1000包括平台1002,其耦接至显示器1020。平台1002可以从诸如内容服务设备1030或内容传递设备1040或其它类似的内容源的内容设备接收内容。包括一个或多个导航特征的导航控制器1050可以被用于与例如平台1002和/或显示器1020进行交互。下面将更详细地描述这些部件中的每一个部件。
[0073]在各种实现方案中,平台1002可以包括芯片组1005、处理器1010、存储器1012、存储装置1014、图形子系统1015、应用1016和/或无线电1018。芯片组1005可以在处理器1010、存储器1012、存储装置1014、图形子系统1015、应用1016和/或无线电1018之间提
供相互间通信。例如,芯片组1005可以包括能够提供与存储装置1014的相互间通信的存储装置适配器(未示出)。
[0074]处理器1010可以实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核、或任何其它微处理器或中央处理单元(CPU)。在各种实现方案中,处理器1010可以是双核处理器、双核移动处理器、等等。
[0075]存储器1012可以实现为易失性存储器设备,例如但不局限于,随机存取存储器(RAM)、动态随机存取存储器(DRAM)、或者静态RAM(SRAM)。
[0076]存储装置1014可以实现为非易失性存储器设备,例如但不局限于,磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附属存储设备、闪存存储器、电池后备SDRAM(同步DRAM)、和/或网络可访问存储设备。在各种实现方案中,例如在包括多个硬盘驱动器时,存储装置1014可以包括用于提高针对有价值数字媒体的存储性能增强保护的技术。
[0077]图形子系统1015可以执行对用于显示的诸如静止或视频图像的处理。图形子系统1015可以是例如图形处理单元(GPU)或视觉处理单元(VPU)。可以使用模拟或数字接口来通信性地耦接图形子系统1015和显示器1020。例如,该接口可以是高清晰度多媒体接口、显示端口(DisplayPort)、无线HDM1、和/或无线HD适应技术中的任何接口。图形子系统1015可以集成到处理器1010或芯片组1005。在一些实现方案中,图形子系统1015可以是通信性耦接至芯片组1005的独立的板卡。
[0078]本文描述的图形和/或视频处理技术可以实现在各种硬件体系结构中。例如,图形和/或视频功能体可以集成在芯片组内。可替换地,可以使用分立的图形和/或视频处理器。作为另一种实现方案,图形和/或视频功能可以由包括多核处理器的通用处理器来提供。在其它的实施例中,该功能可以实现在消费电子设备中。
[0079]无线电1018可以包括能够使用各种适当的无线通信技术来发送和接收信号的一个或多个无线电。这种技术可以包括在一个或多个无线网络之间的通信。示例无线网络包括(但不局限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络、以及卫星网络。在这些网络之间的通信中,无线电1018可以根据任何版本中的一个或多个可用标准来进行操作。
[0080]在各种实现方案中,显示器1020可以包括任何电视机类型的监视器或显示器。显示器1020可以包括例如计算机显示屏、触摸屏显示器、视频监视器、电视机类的设备、和/或电视机。显示器1020可以是数字的和/或模拟的。在各种实现方案中,显示器1020可以是全息显示器。同样,显示器1020可以是可以接收视觉投影的透明表面。这种投影可以传递各种形式的信息、图像、和/或对象。例如,这种投影可以是用于移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用1016的控制之下,平台1002可以在显示器1020上显示用户接口 1022。
[0081]在各种实现方案中,内容服务设备1030可以寄存有任何国家的、国际的、和/或独立的服务,并且例如对平台1002而言是可以经由互联网来访问的。内容服务设备1030可以耦接至平台1002和/或显示器1020。平台1002和/或内容服务设备1030可以耦接至网络1060,以向和从网络1060传送(例如,发送和/或接收)媒体信息。内容传递设备1040也可以耦接至平台1002和/或显示器1020。[0082]在各种实现方案中,内容服务设备1030可以包括有线电视盒、个人计算机、网络、电话、支持互联网的设备或者能够传递数字信息和/或内容的装置、以及能够经由网络1060或直接在内容提供商和平台1002和/或显示器1020之间单向或双向传达内容的任何其它类似的设备。应当认识到,可以经由网络1060单向地和/或双向地向和从系统1000中的任何一个部件和内容提供商传送内容。内容的示例可以包括任何媒体信息,其包括例如视频、首乐、医药和游戏/[目息、等等。
[0083]内容服务设备1030可以接收诸如有线电视节目的内容,包括媒体信息、数字信息、和/或其它内容。内容提供商的示例可以包括任何有线或卫星电视或无线电或互联网内容提供商。所提供的示例不旨在以任何方式限制根据本公开的实现方案。
[0084]在各种实现方案中,平台1002可以从具有一个或多个导航特征的导航控制器1050接收控制信号。控制器1050的导航特征可以用于与例如用户接口 1022进行交互。在各种实施例中,导航控制器1050可以是指针设备,其可以是允许用户将空间(例如,连续的和多维的)数据输入到计算机中的计算机硬件部件(具体来说,人类接口设备)。诸如图形用户接口(GUI)、和电视机和监视器的许多系统允许用户使用身体手势来控制并将数据提供到计算机或电视机。
[0085]通过指示器、指针、对焦环、或在显示器上显示的其它虚拟指示符的移动来将控制器1050的导航特征的移动复制到显示器(例如,显示器1020)上。例如,在软件应用1016的控制下,可以将位于导航控制器1050上的导航特征映射到例如在用户接口 1022上显示的虚拟导航特征。在各种实施例中,控制器1050可以不是分离的部件,并且可以集成到平台1002和/或显示器1020。然而,本公开不局限于本文示出或描述的单元或上下文。
[0086]在各种实现方案中,驱动器(未示出)可以包括这样的技术,其使得用户能够例如在允许的时候在初始化启动之后通过触摸按钮来立即打开和关闭类似电视机的平台1002。程序逻辑可以允许平台1002将内容以流的形式传输到媒体适配器或其它内容服务设备1030或内容传递设备1040,即使在平台被“关闭”时。此外,芯片组1005可以包括支持例如5.1环绕立体声和/或更高清晰度的7.1环绕立体声的硬件和/或软件。驱动器可以包括用于集成图形平台的图形驱动器。在各种实施例中,图形驱动器可以包括外设组件互连(PCI)快速图形卡。
[0087]在各种实现方案中,可以集成系统1000中示出的组件中的任何一个或多个。例如,可以集成平台1002和内容服务设备1030,或者可以集成平台1002和内容传送设备1040,或者可以集成平台1002、内容服务设备1030、和内容传递设备1040。在各种实施例中,平台1002和显示器1020可以是集成单元。例如,可以集成显示器1020和内容服务设备1030,或者可以集成显示器1020和内容传送设备1040。这些示例不旨在限制本公开内容。
[0088]在各种实施例中,系统1000可以实现为无线系统、有线系统、或者两者的组合。当实现为无线系统中,系统1000可以包括用于通过无线共享媒体进行通信的组件和接口,例如,一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等等。无线共享媒体的示例可以包括部分无线频谱,例如,RF频谱等等。当实现为有线系统时,系统1000可以包括用于通过有线通信媒体进行通信的组件和接口,例如,输入/输出(I/O)适配器、用于将I/O适配器与相应的有线通信介质相连的物理连接器、网络接口卡(NIC)、光盘控制器、视频控制器、音频控制器、等等。有线通信媒体的示例可以包括电线、线缆、金属导线、印刷电路板(PCB)、背板、开关结构、半导体材料、双绞线、同轴电缆、光纤、等等。
[0089]平台1002可以建立一个或多个逻辑或物理信道以传送信息。该信息可以包括媒体信息和控制信息。媒体信息可以指表示用于用户的内容的任何数据。例如,内容的示例可以包括来自语音交谈、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母符号、图形、图像、视频、文本等等的数据。例如,来自语音交谈的数据可以是讲话信息、静默时段、背景噪声、舒适噪声、音调、等等。控制信息可以指表示用于自动系统的命令、指令或控制字的任何数据。例如,控制信息可以用于通过系统来路由媒体信息,或者指示节点以预定的方式来处理该媒体信息。然而,这些实施例不局限于图10中示出或描述的单元或上下文。
[0090]如上所述,系统1000可以体现为不同的物理形式或构成要素。图11示出了可以将系统1000嵌入其中的小型化设备1100的实现方案。例如,在各种实施例中,设备1100可以实现为具有无线能力的移动计算设备。例如,移动计算设备可以指具有处理系统和移动电源或供电(如一个或多个电池)的任何设备。
[0091]如上所述,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超级膝上型计算机、写字板、触摸平板、便携式计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能设备(例如,智能电话、智能写字板、或智能电视机)、移动联网设备(MID)、消息传送设备、数据通信设备、照相机(例如,傻瓜式(point-and-shoot)相机、大变焦相机、数码单发(DSLR)相机)、等等。
[0092]移动计算设备的示例还可以包括被设置为由人穿戴的计算机,例如,手腕计算机、手指计算机、指环计算机、眼镜计算机、腰带夹计算机、臂带计算机、鞋计算机、衣服计算机、以及其它可穿戴计算机。在各种实施例中,例如,移动计算设备可以实现为能够执行计算机应用以及语音通信和/或数据通信的任何智能电话。尽管以示例方式利用实现为智能电话的移动计算设备描述了一些实施例,但是可以认识到也可以使用其它无线移动计算设备来实现其它实施例。这些实施例不局限于该上下文。
[0093]如在图11中所示,设备1100可以包括外壳1102、显示器1104、输入/输出(I/O)设备1106、以及天线1108。设备1100也可以包括导航特征1112。显示器1104可以包括适用于移动计算设备的用于显示信息的任何适当的显示单元。I/O设备1106可以包括用于向移动计算设备输入信息的任何适当的I/O设备。I/O设备1106的示例可以包括字母键盘、数字小键盘、触摸平板、输入键、按钮、开关、摇杆开关、麦克风、扬声器、语音识别设备和软件、等等。信息也可以通过麦克风(未示出)的方式输入到设备1100。可以利用语音识别设备(未示出)将这种信息数字化。这些实施例不局限于该上下文。
[0094]各种实施例可以使用硬件单元、软件单元、或者两者的组合来实现。硬件单元的示例可以包括处理器、微处理器、电路、电路单元(例如,晶体管、电阻、电容、电感、等等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体设备、芯片、微型芯片、芯片组、等等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或者其任意组合。确定是否使用硬件单元和/或软件单元来实现实施例可以根据任意数量的因素而变化,例如,期望的计算速率、功率水平、热量容忍度、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度、以及其它设计或性能约束。
[0095]至少一个实施例的一个或多个方面可以通过存储在机器可读介质上的描绘指令来实现,该描绘指令描绘了处理器内的各种逻辑,其中当机器读取这些指令时导致该机器构建逻辑以执行本文描述的技术。这些被已知为“IP核”的描绘可以存储在实际的机器可读介质中,并且被提供给各种客户或制造设备以加载到实际制作逻辑或处理器的生产机器中。
[0096]尽管参照各种实现方案描述了本文给出的某些特征,但是该描述不旨在被理解为是限制性的。因此,对本文描述的实现方案以及对本公开涉及的【技术领域】的技术人员而言显而易见的其它实现方案的各种修改均在本公开的精神和范围内。
【权利要求】
1.一种计算机实现的方法,包括: 在第一视频捕捉设备处: 确定所述第一视频捕捉设备和第二视频捕捉设备之间的时钟偏移; 向所述第二视频捕捉设备发送开始命令; 捕捉场景的第一视频序列; 向所述第二视频捕捉设备发送停止命令; 向所述第二视频捕捉设备发送视频文件传输命令; 接收所述场景的第二视频序列,所述第二视频序列是由所述第二视频捕捉设备响应于所述开始和停止命令来捕捉的;以及 使用所述时钟偏移以将所述第一视频序列与所述第二视频序列进行同步。
2.根据权利要求1所述的方法,其中,确定所述时钟偏移包括执行同步协议,所述同步协议包括: 向所述第二视频捕捉设备发送第一消息,所述第一消息包括第一时间戳; 从所述第二视频捕捉设备接收第二消息,所述第二消息包括第二时间戳和第三时间戳;以及 响应于接收所述第二消息,生成第四时间戳。
3.根据权利要求2所述的方法,其中,所述第一视频捕捉设备包括第一时钟,其中,所述第二视频捕捉设备包括与所述第一时钟不同的第二时钟,其中,所述第一时钟生成所述第一和第四时间戳,并且其中,所述第二时钟生成所述第二和第三时间戳。
4.根据权利要求2所述的方法,其中,所述第一时间戳包括由所述第一视频捕捉设备发送所述第一消息的时间,其中,所述第二时间戳包括由所述第二视频捕捉设备接收所述第一消息的时间,其中,所述第三时间戳包括由所述第二视频捕捉设备发送所述第二消息的时间,并且其中,所述第四时间戳包括由所述第一视频捕捉设备接收所述第二消息的时间。
5.根据权利要求2所述的方法,还包括: 响应于所述第一、第二、第三和第四时间戳,来确定所述时钟偏移。
6.根据权利要求5所述的方法,其中,所述第二时间戳和所述第一时间戳之间的差包括第一定时偏移值,其中,所述第四时间戳和所述第三时间戳之间的差包括第二定时偏移值,并且其中,响应于所述第一、第二、第三和第四时间戳来确定所述时钟偏移包括将所述第一定时偏移值减去所述第二定时偏移值。
7.根据权利要求2所述的方法,还包括: 向所述第二视频捕捉设备发送第三消息,所述第三消息包括所述第四时间戳。
8.根据权利要求2所述的方法,其中,执行所述同步协议包括重复地执行所述同步协议。
9.根据权利要求1所述的方法,其中,接收所述第二视频序列包括接收包含所述第二视频序列的开始时间的元数据,并且其中,使用所述时钟偏移以将所述第一视频序列与所述第二视频序列进行同步包括使用所述时钟偏移、所述第一视频序列的开始时间、和所述第二视频序列的所述开始时间,以将所述第一视频序列与所述第二视频序列进行同步。
10.根据权利要求9所述的方法,其中,所述元数据包括所述第二视频序列的帧速率,并且其中,使用所述时钟偏移以将所述第一视频序列与所述第二视频序列进行同步包括使用所述时钟偏移、所述第一视频序列的开始时间、所述第二视频序列的所述开始时间、所述第一视频序列的所述帧速率、和所述第二视频序列的所述帧速率,以将所述第一视频序列与所述第二视频序列进行同步。
11.根据权利要求9所述的方法,其中,所述第一视频序列的每个图像帧包括时间戳,其中,所述第二视频序列的每个图像帧包括时间戳,并且其中,使用所述时钟偏移以将所述第一视频序列与所述第二视频序列进行同步包括使用所述时钟偏移、所述第一视频序列中的图像的时间戳、和所述第二视频序列中的图像的时间戳,以将所述第一视频序列与所述第二视频序列进行同步。
12.一种包括其中存储有指令的计算机程序产品的制品,其中,如果所述指令被执行,则导致: 在第一视频捕捉设备处: 确定所述第一视频捕捉设备和第二视频捕捉设备之间的时钟偏移; 向所述第二视频捕捉设备发送开始命令; 捕捉场景的第一视频序列; 向所述第二视频捕捉设备发送停止命令; 向所述第二视频捕捉设备发送视频文件传输命令; 接收所述场景的第二视频序列,所述第二视频序列是由所述第二视频捕捉设备响应于所述开始和停止命令来捕捉的;以及 使用所述时钟偏移以将所述第一视频序列与所述第二视频序列进行同步。
13.根据权利要求12所述的制品,其中,确定所述时钟偏移包括执行同步协议,所述同步协议包括: 向所述第二视频捕捉设备发送第一消息,所述第一消息包括第一时间戳; 从所述第二视频捕捉设备接收第二消息,所述第二消息包括第二时间戳和第三时间戳;以及 响应于接收所述第二消息,生成第四时间戳。
14.根据权利要求13所述的制品,其中,所述第一视频捕捉设备包括第一时钟,其中,所述第二视频捕捉设备包括与所述第一时钟不同的第二时钟,其中,所述第一时钟生成所述第一和第四时间戳,并且其中,所述第二时钟生成所述第二和第三时间戳。
15.根据权利要求13所述的制品,其中,所述第一时间戳包括由所述第一视频捕捉设备发送所述第一消息的时间,其中,所述第二时间戳包括由所述第二视频捕捉设备接收所述第一消息的时间,其中,所述第三时间戳包括由所述第二视频捕捉设备发送所述第二消息的时间,并且其中,所述第四时间戳包括由所述第一视频捕捉设备接收所述第二消息的时间。
16.根据权利要求13所述的制品,所述计算机程序产品中还存储有如果被执行则导致以下操作的指令: 响应于所述第一、第二、第三和第四时间戳,来确定所述时钟偏移。
17.根据权利要求16所述的制品,其中,所述第二时间戳和所述第一时间戳之间的差包括第一定时偏移值,其中,所述第四时间戳和所述第三时间戳之间的差包括第二定时偏移值,并且其中,响应于所述第一、第二、第三和第四时间戳来确定所述时钟偏移包括将所述第一定时偏移值减去所述第二定时偏移值。
18.根据权利要求13所述的制品,所述计算机程序产品中还存储有如果被执行则导致以下操作的指令: 向所述第二视频捕捉设备发送第三消息,所述第三消息包括所述第四时间戳。
19.根据权利要求13所述的制品,其中,执行所述同步协议包括重复地执行所述同步协议。
20.根据权利要求12所述的制品,其中,接收所述第二视频序列包括接收包含所述第二视频序列的开始时间的元数据,并且其中,使用所述时钟偏移以将所述第一视频序列与所述第二视频序列进行同步包括使用所述时钟偏移、所述第一视频序列的开始时间、和所述第二视频序列的所述开始时间,以将所述第一视频序列与所述第二视频序列进行同步。
21.根据权利要求20所述的制品,其中,所述元数据包括所述第二视频序列的帧速率,并且其中,使用所述时钟偏移以将所述第一视频序列与所述第二视频序列进行同步包括使用所述时钟偏移、所述第一视频序列的开始时间、所述第二视频序列的所述开始时间、所述第一视频序列的所述帧速率、和所述第二视频序列的所述帧速率,以将所述第一视频序列与所述第二视频序列进行同步。
22.根据权利要求20所述的制品,其中,所述第一视频序列的每个图像帧包括时间戳,其中,所述第二视频序列的每个图像帧包括时间戳,并且其中,使用所述时钟偏移以将所述第一视频序列与所述第二视频序列进行同步包括使用所述时钟偏移、所述第一视频序列中的图像的时间戳、和 所述第二视频序列中的图像的时间戳,以将所述第一视频序列与所述第二视频序列进行同步。
23.—种设备,包括: 处理器,被配置为: 确定所述第一视频捕捉设备和第二视频捕捉设备之间的时钟偏移; 向所述第二视频捕捉设备发送开始命令; 捕捉场景的第一视频序列; 向所述第二视频捕捉设备发送停止命令; 向所述第二视频捕捉设备发送视频文件传输命令; 接收所述场景的第二视频序列,所述第二视频序列是由所述第二视频捕捉设备响应于所述开始和停止命令来捕捉的;以及 使用所述时钟偏移以将所述第一视频序列与所述第二视频序列进行同步。
24.根据权利要求23所述的设备,其中,为了确定所述时钟偏移,所述处理器被配置为: 向所述第二视频捕捉设备发送第一消息,所述第一消息包括第一时间戳; 从所述第二视频捕捉设备接收第二消息,所述第二消息包括第二时间戳和第三时间戳;以及 响应于接收所述第二消息,生成第四时间戳。
25.根据权利要求24所述的设备,其中,所述第二时间戳和所述第一时间戳之间的差包括第一定时偏移值,其中,所述第四时间戳和所述第三时间戳之间的差包括第二定时偏移值,并且其中,确定所述时钟偏移包括将所述第一定时偏移值减去所述第二定时偏移值。
26.根据权利要求23所述的设备,其中,接收所述第二视频序列包括接收包含所述第二视频序列的开始时间的元数据,并且其中,使用所述时钟偏移以将所述第一视频序列与所述第二视频序列进行同步包括使用所述时钟偏移、所述第一视频序列的开始时间、和所述第二视频序列的所述开始时间,以将所述第一视频序列与所述第二视频序列进行同步。
27.—种系统,包括: 第一视频捕捉设备,包括: 成像模块;以及 耦合到所述成像模块的处理器,所述处理器用于: 确定所述第一视频捕捉设备和第二视频捕捉设备之间的时钟偏移; 向所述第二视频捕捉设备发送开始命令; 使用所述成像模块来捕捉场景的第一视频序列 ; 向所述第二视频捕捉设备发送停止命令; 向所述第二视频捕捉设备发送视频文件传输命令; 接收所述场景的第二视频序列,所述第二视频序列是由所述第二视频捕捉设备响应于所述开始和停止命令来捕捉的;以及 使用所述时钟偏移以将所述第一视频序列与所述第二视频序列进行同步。
28.根据权利要求27所述的系统,其中,为了确定所述时钟偏移,所述处理器被配置为: 向所述第二视频捕捉设备发送第一消息,所述第一消息包括第一时间戳; 从所述第二视频捕捉设备接收第二消息,所述第二消息包括第二时间戳和第三时间戳;以及 响应于接收所述第二消息,生成第四时间戳。
29.根据权利要求28所述的系统,其中,所述第二时间戳和所述第一时间戳之间的差包括第一定时偏移值,其中,所述第四时间戳和所述第三时间戳之间的差包括第二定时偏移值,并且其中,确定所述时钟偏移包括将所述第一定时偏移值减去所述第二定时偏移值。
30.根据权利要求27所述的系统,其中,接收所述第二视频序列包括接收包含所述第二视频序列的开始时间的元数据,并且其中,使用所述时钟偏移以将所述第一视频序列与所述第二视频序列进行同步包括使用所述时钟偏移、所述第一视频序列的开始时间、和所述第二视频序列的所述开始时间,以将所述第一视频序列与所述第二视频序列进行同步。
【文档编号】H04N7/14GK103999455SQ201180075545
【公开日】2014年8月20日 申请日期:2011年12月16日 优先权日:2011年12月16日
【发明者】M·X·龚, W·孙 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1