CN112154669A - 基于系统时钟的视频流帧时间戳的相关 - Google Patents

基于系统时钟的视频流帧时间戳的相关 Download PDF

Info

Publication number
CN112154669A
CN112154669A CN201980034237.2A CN201980034237A CN112154669A CN 112154669 A CN112154669 A CN 112154669A CN 201980034237 A CN201980034237 A CN 201980034237A CN 112154669 A CN112154669 A CN 112154669A
Authority
CN
China
Prior art keywords
frame
timestamp
video stream
frame timestamp
received
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
Application number
CN201980034237.2A
Other languages
English (en)
Other versions
CN112154669B (zh
Inventor
S·卡里瓦拉达斯瓦米
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
Publication of CN112154669A publication Critical patent/CN112154669A/zh
Application granted granted Critical
Publication of CN112154669B publication Critical patent/CN112154669B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23608Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/167Synchronising or controlling image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/139Format conversion, e.g. of frame-rate or size
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/242Synchronization processes, e.g. processing of PCR [Program Clock References]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/04Synchronising
    • H04N5/08Separation of synchronising signals from picture signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本文描述的方法被配置为将视频流的帧与系统时钟进行相关。相关器应用经由总线接口从捕获设备接收视频流的帧,该帧包括起始帧时间戳和结束帧时间戳,该起始帧时间戳和结束帧时间戳基于捕获设备的设备时钟。第二起始帧时间戳和第二结束帧时间戳基于先前接收的帧和系统时钟而被预测。帧的扭斜值基于起始帧时间戳和结束帧时间戳之间的差而被计算。在所计算的扭斜值超过扭斜阈值时,帧被校正以与预测的起始帧时间戳和结束帧时间戳向。经校正的帧然后被提供以用于显示。以所描述的方式校正视频流帧的时间戳减少抖动并且实现多个视频流的准确同步。

Description

基于系统时钟的视频流帧时间戳的相关
背景技术
现代视频捕获设备使用各种不同类型的技术来捕获、处理、和发送或以其他方式传送捕获的视频数据。视频捕获设备可以被设计为主要捕获可见光视频、基于深度的视频、基于红外的视频或其组合。但是,在某些情况下,视频捕获设备用来处理和/或传送捕获的视频数据的技术限制了所得视频流的质量和/或对观看所得视频流的用户体验产生了负面影响。视频捕获设备的设备时钟可能会漂移,从而导致视频流中出现时间失真或“抖动”,视频处理操作可能会导致视频流扭斜而不同步,和/或通信总线或其他介质可能提供与在传送的另一端向用户提供高质量视频流所必需的相比可靠更低的数据传送。例如,使用通用串行总线(USB)技术来传送视频流的帧有可能会带来与传送后视频流中帧的准确时序相关联的各种挑战。
当多个视频流被组合以形成三维视频流、具有多个视点的视频流等时,这些挑战变得更加复杂。同步每个视频流需要每个帧的极其准确的时序,并且每个视频流可能由不同的视频捕获设备捕获,每个设备都具有独特的一组技术,这些技术必须被考虑以便将视频流与共享的时间帧进行相关。提供用于观看的组合视频流而没有明显的时间失真、抖动或引起负面用户体验的其他问题是一项艰巨的任务。
发明内容
提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助限制所要求保护的主题的范围。
一种计算机化方法,包括:经由总线接口从捕获设备接收视频流的帧,该帧包括第一起始帧时间戳和第一结束帧时间戳,该第一起始帧时间戳和第一结束帧时间戳基于与捕获设备关联的设备时钟。基于视频流的多个先前接收的帧,与所接收的帧相关联的第二起始帧时间戳和第二结束帧时间戳被预测。该第二起始帧时间戳和第二结束帧时间戳还基于与显示系统关联的系统时钟。基于第一起始帧时间戳与第二起始帧时间戳之间的差以及第一结束帧时间戳与第二结束帧时间戳之间的差,所接收的帧的扭斜值(skew value)被计算。在所计算的扭斜值超过扭斜阈值时,所接收的帧被校正,以与第二起始帧时间戳和第二结束帧时间戳进行相关。然后经校正的视频流被提供以用于显示。
通过参考结合附图所考虑的以下具体实施方式,将更好地理解许多附带特征,因为它们将变得更好理解。
附图说明
图1是示出了根据实施例的包括计算设备和被配置为捕获视频流并且将视频流的帧进行相关的视频捕获设备的系统的示例性框图。
图2是示出了根据实施例的帧从视频捕获设备被传送到计算设备的示例性框图;
图3是示出了根据实施例的计算设备接收帧并且基于预测的时间戳将帧进行相关的操作的示例性流程图;
图4是示出了根据实施例的计算设备接收多个视频流的帧,将所接收的帧进行相关,并且将多个视频流组合成组合视频流的操作的示例性流程图;
图5将根据实施例的计算装置示出为功能框图。
在所有的附图中对应的附图标记指示对应的部件。在图1至图5中,系统被示出为示意图。附图可能未按比例绘制。
具体实施方式
本文描述的系统和方法被配置为将从视频捕获设备接收的视频流帧与接收计算设备的系统时钟进行相关,并且提供相关视频流帧以用于显示。包括基于视频捕获设备的设备时钟的时间戳的帧由计算设备经由通信总线接口接收。计算设备基于计算设备的系统时钟和先前接收的视频流帧的时间戳来预测所接收的帧的预期时间戳。如果预测的时间戳和与帧一起接收的时间戳之间的差超过定义的扭斜阈值,则帧的时间戳被校正,以与预测的时间戳进行相关。然后相关帧被提供以用于显示(例如,经由在计算设备上执行的一个或多个用户应用)。
本文所述的将帧进行相关和/或同步有效地消除了一个或多个视频流的帧的时间戳的显著差异,这减少了时间失真,平滑了视频流的“抖动”,并且总体上改进了观看视频流的用户体验。在一些示例中,本文所述的用于将帧进行相关的操作是时钟、处理器、存储器和其他常规计算资源的非常规使用。所描述的方法提供的多个组合视频流的准确同步可以被用于改进三维视频流和/或依赖于使用多个视频流输入的其他类型的视频流的质量。此外,通过使用所描述的系统和方法,增强了USB和其他类似总线技术作为用于高质量实时视频流通信介质的性能。以这种方式,本公开改进了执行本文所述的操作的计算设备的功能。
图1是示出了根据实施例的系统100的示例性框图,系统100包括计算设备102和视频捕获设备104,视频捕获设备104被配置为捕获视频流并且使视频流的帧118进行关联。计算设备102包括相关器应用106,相关器应用106被配置为从视频捕获设备104接收视频流帧118,并且使用本文所述的系统时钟108将视频流帧118进行相关。视频流帧118经由通用串行总线(USB)接口110被接收。相关器应用106向一个或多个应用120提供相关帧,该一个或多个应用120可以以各种方式(例如,显示、另外的处理、图像分析等)使用相关视频流帧118。
每个视频捕获设备104包括设备时钟112和USB接口114。捕获的视频流帧118由视频捕获设备104基于设备时钟112加时间戳,并且使用USB接口114被发送给计算设备102。USB总线116将USB接口114连接到USB接口110。
计算设备102可以是个人计算机、服务器设备、膝上型电脑、平板电脑、移动电话、游戏系统、可穿戴设备等。计算设备102可以包括一个或多个处理器、存储器、接口和/或其他计算机组件。相关器应用106可以被存储在计算设备102的存储器中,并且被配置为将帧118的时间戳进行相关,如本文中所述。在一些示例中,相关器应用106包括驱动器软件、固件等,并且可以在用户水平或内核水平执行。计算设备102的系统时钟108被配置为提供时间流逝的准确测量,并且帧118的相关可以基于使用系统时钟108进行的时间测量。
如本领域普通技术人员将理解的,USB接口110可以包括传统的USB接口。例如,这可以包括被配置为容纳USB电缆的至少一个物理USB端口、到计算设备102的其他部分的物理连接、被配置为使用USB协议通过USB接口110实现通信的固件和/或软件等等。
在一些示例中,计算设备102包括多个接口,包括USB接口110,使得计算设备102能够与多种其他实体进行交互。例如,计算设备可以包括USB接口110之外的网络接口(例如,诸如以太网接口的有线网络接口、诸如Wi-Fi接口或蜂窝网络接口的无线网络接口、诸如显示器、触摸屏、扬声器、麦克风、键盘、鼠标、游戏控制器的用户接口等等)。应当理解,计算设备102可以包括使得计算设备102能够在不脱离本说明书情况下执行本文中描述的操作的接口的任何组合。
视频捕获设备104可以包括一个或多个基于可见光的相机,例如红绿蓝(RGB)相机、基于深度的相机、基于红外的相机或其他类型的相机。视频捕获设备104可以各自被配置为收集视频数据,以限定的质量水平(例如720p、1080p、4K等)缓冲或存储视频数据,并且使用USB接口114将视频数据发送给计算设备102。每个视频捕获设备104的设备时钟112被配置为提供时间测量,视频捕获设备104使用该时间测量对捕获的视频数据的帧118加时间戳,如本文中所述。
每个视频捕获设备104可以经由总线116连接到计算设备102和/或与计算设备102通信。在一些示例中,总线116可以仅包括无线通信或与有线通信与无线通信相结合。每个视频捕获设备104可以经由单独的总线116连接至计算设备102,多个视频捕获设备104可以经由单个总线116连接至计算设备102,或其组合。在一些示例中,总线116可以是视频捕获设备104与计算设备102之间的直接连接。备选地,在不脱离本文中的描述的情况下,总线116可以是包括一个或多个集线器、交换机或其他网络组件等的间接连接。
图2是示出了根据实施例的帧218从视频捕获设备被传送给计算设备的示例性框图200。帧218由视频捕获设备204基于捕获的视频数据生成。帧218包括报头220以及帧数据222,报头220存储与帧218关联的元数据,帧数据222包括帧的捕获的视频数据。在生成帧218时,视频捕获设备204生成相对于设备时钟212的、表示与帧218相关联的视频数据的捕获开始时的时刻的起始帧时间戳224和表示与帧218相关联的视频数据的捕获结束时的时刻的结束帧时间戳226。帧218的报头220中包括起始帧时间戳224和结束帧时间戳226。备选地,在不脱离本文中的描述的情况下,时间戳224和时间戳226可以以不同的方式与帧218相关联(例如,时间戳224和时间戳226可以分别被存储,并且基于帧ID被映射到帧218等)。例如,图1中的应用120可以使用应用编程接口(API)查询视频捕获设备204以获得时间戳224和时间戳226。
在一些示例中,帧218可以被分成多个帧分组228,以被发送给计算设备202(例如,经由USB总线116等)。每个帧分组228的数目和大小可以基于所使用的通信协议和帧218的大小被确定(例如,USB协议可以具有1千字节(KB)的最大分组大小,并且如果帧218是大约3兆字节(MB),则帧218可以被分成大约3000个帧分组228等)。每个帧分组228包括用于与帧218和/或特定帧分组228相关联的元数据的报头230和帧数据222的帧数据部分232(例如,帧标识符、帧分组标识符、帧序列信息等)。在一些示例中,每个帧分组228的报头230可以包括帧218的起始帧时间戳224和结束帧时间戳226。
在一些示例中,视频捕获设备204可以在将帧218发送到计算设备之前对其进行另外的处理。这样的处理可以包括压缩、降噪和/或其他图像处理。这种处理可能会增加帧218的捕获与将帧218传送到计算设备202之间所需的时间。
包括第一帧分组234和最后帧分组236的帧分组228被串行发送到计算设备202(例如,经由USB总线116等)。在接收到第一帧分组234时,帧218的系统起始帧时间戳240可以使用由计算设备202的系统时钟208测量的时间被生成(例如,系统时间戳可以基于与计算设备202相关联的操作系统(OS)的QueryPerformanceCounter(QPC)功能性被生成等)。在接收到最后帧分组236时,系统结束帧时间戳242还可以使用由计算设备202的系统时钟208测量的时间被生成。第一帧分组234可以基于该分组是接收的与帧218相关联的第一分组(例如,分组元数据可以包括帧标识符等)和/或基于指示该分组是第一分组的分组序列数据被检测。最后帧分组236还可以基于分组的元数据被检测(例如,最后的帧标记被设置,元分组括最后的分组序列值,并且最后帧分组236包括与最终分组序列值匹配的序列值等)。备选地或附加地,最后帧分组236的帧数据部分232可以包括由计算设备202标识的帧结束或文件结束(EOF)数据。
系统起始帧时间戳240和系统结束帧时间戳242被提供给计算设备202的相关器应用206。与帧218相关联的其他数据也可以被提供给相关器应用206(例如,帧218的帧标识符、视频流标识符、起始帧时间戳224和结束帧时间戳226等)。计算设备202和相关器应用206被配置为从帧218的接收的帧分组228中生成相关帧244,相关帧244包括报头246和帧数据252,其中相关帧244已经与系统时钟208的时序和已经由计算设备202接收的其他帧的时序进行相关。相关器应用206生成相关起始帧时间戳248和相关结束帧时间戳250,以包括在相关帧244的报头246中。相关时间戳248和250基于以下:原始帧218的起始帧时间戳224和结束帧时间戳226、基于系统时钟208的系统起始帧时间戳240和系统结束帧时间戳242、和/或与相同视频流的其他接收的帧相关联的时间戳。
相关器应用206包括帧缓冲器254、预测的时间戳256、与帧218关联的计算的扭斜值258和定义的扭斜阈值260,它们被用于将相关帧244的时间戳248和时间戳250进行相关。在一些示例中,帧缓冲器254包括与帧218关联的视频流的先前接收的帧。在其他示例中,相关器应用206的帧缓冲器254包括与多个视频流相关联的多个帧缓冲器,从而使得相关器应用206能够如下关于图4所描述地将多个视频流的帧进行相关和/或同步。帧缓冲器254可以被配置为循环缓冲器或链接列表,使该缓冲器保留定义数目的帧的帧数据,并且当新帧的帧数据被添加到帧缓冲器254时,最旧的帧数据被移除和/或由新的帧数据覆盖。存储在帧缓冲器254中的帧数据可以包括例如相关联的视频流的先前接收的帧的起始帧时间戳和/或结束帧时间戳的映射。先前接收的帧的起始帧时间戳和结束时间戳(例如,先前已经被映射到相关联的帧ID、帧序列ID等的如本文中所描述与系统时钟208进行相关的起始帧时间戳和结束帧时间戳)使得相关器应用206能够分析多个帧的时间戳数据以检测视频流的接收的帧(例如,帧218等)的模式(pattern)和/或预测的时间戳256。
在一些示例中,相关器应用206被配置为基于帧缓冲器254的时间戳数据来计算帧218的视频流的平均时钟差值。基于设备时钟212的帧的开始帧时间戳和结束帧时间戳与基于系统时钟208的帧的系统开始帧时间戳和系统结束帧时间戳之间的差可以在帧缓冲器254中跨一些或所有先前接收的帧被平均(例如,跨前几分钟的帧被平均),得到平均时钟差值,该平均时钟差值指示帧被视频捕获设备204捕获后到达计算设备202所需的平均时间和/或设备时钟212与系统时钟208之间的平均时间差。
附加地或备选地,相关器应用206可以被配置为基于帧缓冲器254的帧数据计算平均帧率和/或平均帧长度。帧缓冲器254的帧的相关起始帧时间戳和相关结束帧时间戳之间的差可以被合并,并且然后结果除以帧缓冲器254中的帧的数目(例如,如果帧缓冲器254中的帧长度之和为5秒并且帧缓冲器254包括300帧,则平均帧长度为16.67毫秒(ms)等)。当生成帧218的预测的时间戳256时,可以使用计算的平均帧长度,如本文中所述。此外,平均帧率可以基于在帧缓冲器254中接收的帧的总数除以定义的时间段来计算(例如,如果帧缓冲器包括300个接收的帧的帧数据以及第一帧的时间戳和最后的帧的时间戳之间的差为6秒,则平均帧率可以被计算为每秒50帧(fps)等)。
还可以基于帧缓冲器254的帧数据计算其他值,以用于生成预测的时间戳256。例如,相关器应用206可以计算帧之间的平均时间(例如,帧的相关结束帧时间戳和按顺序的下一帧的相关起始帧时间戳之间的时间等),其可以被用于基于最近接收的帧的结束预测将到来的帧的起始的时间戳。
在一些示例中,相关器应用206可以基于在视频捕获设备204处帧最初何时被放置在总线上来从USB接口和/或总线驱动器软件获得信息,诸如USB通信的当前带宽和/或时间戳。USB起始帧时间戳可以与系统时钟208同步,从而使得相关器应用206能够准确地生成预测的时间戳256。与系统时钟208类似地同步的USB结束帧时间戳也可以被添加到帧的最后分组中,并且被相关器应用206用来将帧与系统时钟208和视频流的其他帧进行相关。
相关器应用206被配置为基于上述收集和/或计算的值来生成预测的时间戳256。例如,预测的起始帧时间戳可以基于设备时钟212与系统时钟208之间的平均时钟差值和/或基于USB的起始帧时间戳被生成。预测的起始帧时间戳可以说明在视频捕获设备204处的处理时间,与从视频捕获设备204和计算设备202传送帧218关联的持续时间或等待时间,视频捕获设备204处与帧的处理关联的持续时间或等待时间,以及系统时钟208和设备时钟212之间的时间差等。此外,基于计算的平均帧率、计算的平均帧长度和/或计算的帧之间的平均时间等(例如,以每秒60帧的平均帧速率,每个帧的长约为16.67毫秒,并且预测的起始帧时间戳可以在帧缓冲器254中紧接的前一帧的相关起始帧时间戳之后16.67毫秒被生成),可以生成预测的起始帧时间戳以与帧缓冲器254中的先前接收的帧进行关联。生成预测的时间戳256的预测的结束帧时间戳可以基于预测的起始帧时间戳和计算的平均帧长度,该计算的平均帧长度基于帧缓冲器254的接收的帧,使得预测的时间戳256与帧缓冲器254的帧的时间戳紧密进行相关。
在计算预测的时间戳256时,相关器应用206被配置为计算接收的帧218的扭斜值258。扭斜值258基于帧218的预测的时间戳256与测量的时间戳(例如,起始帧时间戳224、结束帧时间戳226、系统起始帧时间戳240、系统结束帧时间戳242等)的比较。在一些示例中,预测的时间戳256被生成为与视频捕获设备204上的帧218的捕获有关(例如,与起始帧时间戳224和结束帧时间戳226等有关)。扭斜值258被计算为帧218的预测的时间戳256和测量的时间戳之间的差。扭斜值258可以表示测量的时间戳与预测的时间戳256相差一个时间量(例如,整个帧218早扭斜或者晚扭斜)和/或表示预测的时间戳256之间的时间差与测量的时间戳之间的时间差不同(例如,帧218的帧长度长于或短于预测帧长度)。扭斜值258可以包括表示所检测到的各种时间戳差(例如,预测的起始帧时间戳和测量的起始帧时间戳之间的差,预测的结束帧时间戳与测量的结束帧时间戳之间的差等)的一个或多个值。
相关器应用206被配置为将(多个)扭斜值258与至少一个定义的扭斜阈值260进行比较。在一些示例中,当扭斜值258超过扭斜阈值260时,预测的时间戳256被用作相关帧244的相关起始帧时间戳248和相关结束帧时间戳250。当扭斜值258不超过扭斜阈值260时,帧218的测量的时间戳可以被用于相关起始帧时间戳248和相关结束帧时间戳250。
在一些示例中,扭斜阈值260包括与起始帧时间戳差相关联的扭斜阈值和与结束帧时间戳差相关联的扭斜阈值。如果相关联的扭斜值超过了扭斜阈值之一,而没有超过另一扭斜阈值,则相关器应用206可以将与超过的扭斜阈值相关联的时间戳(例如,起始帧或结束帧等)替换为预测的时间戳作为相关帧244中的相关时间戳,而另一测量的时间戳则被保持为相关帧244中的相关时间戳。备选地,如果相关联的扭斜值超过了一个或两个扭斜阈值,则相关器应用可以将测量帧218的两个时间戳替换为预测的时间戳256作为相关帧244的相关时间戳248和250。
备选地或附加地,扭斜阈值260可以被配置为应用于表示整个帧218早扭斜或晚扭斜的时序的帧扭斜,或应用于表示帧218的测量的长度比预测的帧长度长扭斜阈值260的帧扭斜。在整个帧218扭斜超过扭斜阈值260的情况下,相关时间戳248和250可以被校正以匹配预测的时间戳256。备选地,在测量的帧长度超过预测的帧长度多于扭斜阈值260(例如,帧218的测量的结束帧时间戳晚于预测的结束帧时间戳等)的情况下,相关结束帧时间戳250可以被校正以匹配预测的时间戳256的预测的结束帧时间戳,从而有效地“剪切”帧218以创建相关帧244。如果测量的帧长度小于预测的帧长度,则可以忽略该差异,从而保持帧218的测量的时间戳。
相关器应用206还可被配置为将相关帧244的包括相关时间戳248和250的帧数据添加到帧缓冲器254,以供相关器应用206将来使用。在一些示例中,帧缓冲器254的最旧的帧数据可以被移除或以其他方式利用新的帧数据被覆盖。
图3是示出了根据实施例的计算设备(例如,计算设备202等)接收帧(例如,帧218等)并且基于预测的时间戳(例如,预测的时间戳256等)将帧进行相关的操作的示例性流程图300。流程图300的操作可以由被配置为由在显示系统的计算设备上进行此类操作的一个或多个软件应用(例如,相关器应用206等)执行。在302处,视频流的帧经由总线接口(例如,USB接口110等)从捕获设备(例如,视频捕获设备204等)被接收,该帧包括基于与捕获设备相关联的设备时钟(例如,设备时钟212等)的第一起始帧时间戳(例如,起始帧时间戳224等)和第一结束帧时间戳(例如,结束帧时间戳226等)。在一些示例中,如上所述,在一系列分组中接收帧,每个分组在分组的报头中包括第一起始帧时间戳和第一结束帧时间戳。在接收到帧分组时,帧分组可以被用于在流程图300中描述的过程期间重建帧。接收的帧可以是先前从捕获设备接收的视频流的一系列帧中的一个。总线接口可以包括USB接口和/或可以在不脱离本文中的描述的情况下使用的其他类型的总线接口。
在304处,第二起始帧时间戳和第二结束帧时间戳基于视频流的多个先前接收的帧(例如,帧缓冲器254中的帧)被预测(例如,预测的时间戳256等),第二起始帧时间戳和第二结束帧时间戳基于与显示系统相关联的系统时钟(例如,系统时钟208等)。第二起始帧时间戳和第二结束帧时间戳可以基于以下被预测:与视频流和/或总线接口的先前接收的帧关联的一个或多个收集和/或计算的值以及与总线、协议等相关联的方面(例如,平均帧速率、平均帧长度、总线带宽、基于总线的时间戳、时钟差值等),如上所述。
在306处,接收的帧的扭斜值基于第一起始帧时间戳和第二起始帧时间戳之间的差以及第一结束帧时间戳和第二结束帧时间戳之间的差被计算。在一些示例中,计算的扭斜值是以离散数目的时间单位(例如3毫秒、2.6毫秒等)的形式。备选地或附加地,计算的扭斜值可以包括相对于视频流的接收的帧和其他帧的值。例如,扭斜值可以指示接收的帧的帧长度比相关联的视频流的帧的平均帧长度长10%,或者扭斜值可以指示接收的帧的测量的时间戳与接收的帧的预测的时间戳不同步扭斜达20%(例如,接收的帧长度与预测的帧长度在20毫秒处匹配,但是接收的帧的测量的起始帧时间戳和测量的结束帧时间戳比预测的起始帧时间戳和预测的结束帧时间戳晚4毫秒)等。
如果在308处计算的扭斜值超过扭斜阈值,则在310处接收的帧被校正以与第二起始帧时间戳和第二结束帧时间戳进行相关。在接收的帧已经被校正之后,在312处其被提供以用于显示。在一些示例中,校正接收的帧包括校正接收的帧的时间戳以匹配预测的时间戳值,如本文中所述。
备选地,如果在308处计算的扭斜值不超过扭斜阈值,则在312处接收的帧被提供以用于显示。
在312,提供帧以用于显示可以包括在用户接口上将该帧与视频流的其他帧按顺序立即显示为实时视频。备选地,该帧可以与视频流的其他帧被组合成存储的视频文件,然后该视频文件可以在以后的时间被播放。
在一些示例中,接收的帧经由图1中的应用120被提供以用于显示,该应用120可以在显示之前首先对接收的帧执行附加处理。
在一些示例中,提供的帧还被用于更新帧缓冲器,以用于在未来将接收的帧进行相关。预测的帧基于帧缓冲器的帧数据,并且由于使用了帧的测量的时间戳,除非它们偏离预测的时间戳太远,否则计算的平均数据值响应于帧缓冲器利用接收的帧的测量的时间戳被更新而可以随时间变化。因此,预测的时间戳可以动态变化以反映视频捕获设备、通信总线和/或接口等的变化特性。
图4是示出了根据实施例的计算设备(例如,计算设备202等)接收多个视频流的帧(例如,帧218等),将接收的帧进行相关,以及将多个视频流组合到组合视频流中的操作的示范性流程图400。如图3所示,流程图400的操作可以由被配置为在显示系统的计算设备上执行此类操作的一个或多个软件应用(例如,相关器应用206等)执行。在402处,来自第一视频流和第二视频流的帧被接收。来自多个流的帧可以经由单个总线接口或通过多个接口被接收。每个帧可以包括用于相关联的视频流的标识符,使得该帧能够被计算设备分类。在帧被接收和/或按顺序被存储在队列中时,帧可以按顺序被处理,直到其可以被进行相关为止,如本文中所述。在一些示例中,帧可以在流程图400中描述的操作期间连续地被接收,使得只要帧被接收到,所描述的操作就可以重复发生。
在404处,下一接收的帧由计算设备(例如,计算设备202和/或具体地相关器应用206等)选择以进行相关。在406,选择的帧的至少一个时间戳基于与选择的帧关联的视频流的多个先前接收的帧被预测。在一些示例中,至少一个时间戳包括起始帧时间戳和结束帧时间戳,如本文中所述。预测所述至少一个时间戳可以包括访问特定于选择的帧的视频流的帧缓冲器(例如,帧缓冲器254等),并且生成至少一个预测的时间戳,如上文参考图2所述。
在408处,选择的帧的扭斜值基于选择的帧的接收的至少一个时间戳与预测的至少一个时间戳之间的差被计算。例如,如果选择的帧包括起始帧时间戳,则预测的起始帧时间戳被生成并且与接收的起始帧时间戳被比较,从而得出接收的起始帧时间戳的计算的扭斜值。在起始帧时间戳和结束帧时间戳被接收到的示例中,(多个)扭斜值可以基于预测的起始帧时间戳和预测的结束帧时间戳被计算,如本文中所述。
在410处如果计算的扭斜值超过扭斜阈值,则在412处选择的帧被校正为与预测的至少一个时间戳进行相关。备选地,在410处如果计算的扭斜值未超过扭斜阈值,则在414处选择的帧被包括到组合视频流中,如下所述。在一些示例中,可以为多个视频流之一专门定义扭斜阈值,从而将与每个视频流关联的帧的扭斜值与特定于流的扭斜阈值进行比较(例如,第一视频流可以具有3毫秒的扭斜阈值,并且第二视频流可以具有2毫秒的扭斜阈值等)。备选地,对于所有视频流,扭斜阈值可以是相同的。
在412处,选择的帧被校正为与预测的至少一个时间戳进行相关。在一些示例中,校正选择的帧包括将选择的帧的时间戳设置为相关时间戳值(例如,相关起始帧时间戳248和相关结束帧时间戳250等)。由于接收的时间戳的过度扭斜值,因此校正时间戳值可以包括校正选择的帧的接收的时间戳,以匹配预测的时间戳。
在414处,选择的帧被包括在组合视频流中。组合视频流包括来自第一视频流和第二视频流中的每个的相关帧,以这种方式组合以形成单个视频流。例如,组合视频流可以是基于组合两个视频流的三维视频流。两个视频流可以包括来自两个不同角度的两个基于RGB的视频流、基于RGB的视频流和基于深度的视频流、基于RGB的视频流和红外(IR)视频流等。第一视频流的每个帧可以基于相关时间戳与第二视频流的帧被匹配,以使两个视频流同步。在不脱离本文的描述的情况下,可以使用将当前相关的多个视频流的帧组合成单个视频流的任何方法,这是本领域普通技术人员所理解的。此外,应当理解,如参考图4所述,多于两个的视频流可以被处理、进行相关和组合。
在416处,如果剩余有尚未被处理的接收的帧,则在404处下一帧被选择。备选地,如果没有剩余的帧待处理,则在418处组合视频流被提供以用于显示。当流程图400的操作在剩余帧上被执行时,在418处组合视频流可以提供以用于显示,使得在其余帧被处理的同时,已经被处理的组合视频流的帧可以被显示,如所描述的。观看组合视频流可以包括:基于多个视频流来观看场景或房间的三维表示;基于多个视频流来从多个位置观看区域等等。
附加示例场景
本公开的各方面支持各种场景,诸如下面描述的。
在示例中,计算设备的用户正在观看来自经由USB电缆连接到该计算设备的基于USB的相机的实时视频流。在视频流被捕获时,视频流的帧被相机设备使用相关联的设备时钟加上时间戳。时间戳包括起始帧时间戳和结束帧时间戳。相机设备对帧执行压缩操作,并且将压缩后的帧通过USB电缆传送到计算设备。通过USB电缆进行的传送包括将帧数据分为多个分组,并且在每个分组的报头中包括帧的时间戳。此外,基于USB协议的时间戳也可以被包括在分组的报头中,基于USB协议的时间戳基于起始帧分组和结束帧分组何时经由USB接口bei传送。在接收到帧分组时,计算设备使用相关器应用生成帧的预测的时间戳。预测起始帧和预测的结束帧时间戳基于以下被生成:接收的基于USB协议的时间戳、计算的USB接口的平均带宽、以及就要存储在与相关器应用相关联的帧缓冲器中的多个先前接收的帧的计算的平均帧长度。扭斜值通过将基于相机设备时钟的起始帧时间戳和结束帧时间戳与预测的起始帧和预测的结束帧时间戳进行比较而被计算。计算的扭斜值超过了定义的扭斜阈值,因此相关器应用校正帧的时间戳以匹配预测的时间戳,而不是由摄像头设备应用的测量的时间戳。该帧被添加到实时视频流中,并且按顺序与视频流的其他帧一起以被提供以用于用户查看。此外,帧被添加到相关器应用的帧缓冲器中,以替换缓冲器中最旧的帧。
在另一示例中,用户正在使用虚拟现实设备查看房间的三维表示。基于RGB的摄像头和基于深度的摄像头被放置在房间中,以便捕获生成三维视频流以显示给用户所需的视频数据。如本文中所述,两个相机都经由基于USB的无线通信接口将视频流帧数据传送到虚拟现实设备。来自每个相机的帧以分组的流的形式的被传送到虚拟现实设备。虚拟现实设备包括相关器应用,该相关器应用基于特定于每个视频流的特性从两个摄像机接收帧并且将其进行相关,以便将两个视频流同步到虚拟现实设备的系统时钟。相关器应用包括特定于每个视频流的帧缓冲器,并且基于特定于接收的帧的帧缓冲器的先前接收的帧,为接收的帧生成预测的时间戳。每个帧的扭斜值与定义的扭斜阈值被比较,该扭斜阈值也特定于相关联的视频流,并且当帧的扭斜值超过扭斜阈值时,帧的预测的时间戳被用于将使帧时间戳与虚拟现实设备的系统时钟进行相关,如本文中所述。一旦来自每个视频流的帧与系统时钟进行相关,它们便彼此同步,并且可以被组合以创建高质量的三维视频流,以用于用户观看。
示范操作环境
本公开与根据实施例的计算装置一起可操作为图5中的功能框图500。在实施例中,根据本说明书中描述的一个或多个实施例,计算装置518的组件可以被实现为电子设备的一部分。计算装置518包括一个或多个处理器519,一个或多个处理器519可以是微处理器、控制器或用于处理计算机可执行指令以控制电子设备的操作的任何其他合适类型的处理器。包括操作系统520的平台软件或任何其他合适的平台软件可以在装置518上被提供,以使得应用软件521能够在设备上被执行。根据实施例,对使用系统时钟的视频流的帧进行相关可以由软件实现。
计算机可执行指令可以使用由计算装置518可访问的任何计算机可读介质来提供。计算机可读介质可以包括例如计算机存储介质,诸如存储器522和通信介质。诸如存储器522的计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块的信息的任何方法或技术实现的易失性介质和非易失性介质、可移动介质和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EPROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁性存储设备,或可以被用于存储信息以用于由计算装置访问的任何其他非传输介质。相反,通信介质可以在诸如载波的调制数据信号或其他传输机制中实施计算机可读指令、数据结构、程序模块等。如本文所定义,计算机存储介质不包括通信介质。因此,计算机存储介质本身不应被解释为传播信号。传播信号本身并不是计算机存储介质的示例。尽管计算机存储介质(存储器522)被示出在计算装置518内,但是本领域技术人员将理解,存储装置可以远程地分布或定位并且可以经由网络或其他通信链路(例如,使用通信接口523)访问。
计算装置518可以包括输入/输出控制器524,输入/输出控制器524被配置为将信息输出到一个或多个输出设备525(例如显示器或扬声器),其可以与电子设备分离或集成到电子设备中。输入/输出控制器524还可被配置为接收和处理来自一个或多个输入设备526(例如键盘、麦克风或触摸板)的输入。在实施例中,输出设备525也可以充当输入设备。这种设备的示例可以是触敏显示器。输入/输出控制器524还可以将数据输出到除输出设备之外的设备,例如,本地连接的打印设备。在一些实施例中,用户527可以将输入提供给(多个)输入设备526和/或从(多个)输出设备525接收输出。
本文描述的功能性可以至少部分地由一个或多个硬件逻辑组件执行。根据实施例,当由处理器519执行时,计算装置518通过程序代码被配置,以执行所描述的操作和功能性的实施例。备选地或另外地,本文描述的功能性可以至少部分地由一个或多个硬件逻辑组件执行。例如但不限于,可以使用示意性类型的硬件逻辑组件,包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、特定程序标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)、图形处理单元(GPU)。
尽管可以将本实施例中的一些实施例描述和示出为在智能电话、移动电话或平板计算机中实现,但是这些仅是设备的示例而不是限制。如本领域技术人员将理解的,这些示出的实施例适用于各种不同类型的设备,例如便携设备和移动设备,例如膝上型计算机、平板计算机、游戏机或游戏控制器、各种可穿戴设备等
附图中各个元素的功能性的至少一部分可以由附图中的其他元素执行,或者可以由未在附图中所示的实体(例如,处理器、web服务、服务器、应用程序、计算设备等)执行。
尽管结合示例性计算系统环境进行了描述,但是本公开的示例能够利用许多其他通用或专用计算系统环境、配置或设备实现。
适于与本公开的各方面一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于移动计算设备、个人计算机、服务器计算机、手持式或或膝上型设备、多处理器系统、游戏机、基于微处理器的系统、机顶盒、可编程消费电子产品、移动电话、移动计算和/或可穿戴或附件形式的通信设备(例如手表,眼镜,头戴式装置或耳机)、网络PC、小型计算机、大型机、包括任何以上系统或设备的分布式计算环境等。这样的系统或设备可以接受来自用户的以任何方式的输入,包括来自诸如键盘或定点设备的输入设备的输入、经由手势输入的输入,接近输入(诸如通过悬停)的输入和/或经由语音输入的输入。
可以在计算机可执行指令的一般上下文中描述本公开的示例,诸如一个或多个计算机或其他设备以软件、固件、硬件或其组合执行的程序模块。可以将计算机可执行指令组织成一个或多个计算机可执行组件或模块。通常,程序模块包括但不限于执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件和数据结构。可以用任何数目和任何组织形式的这种组件或模块实现本公开的方面。例如,本公开的各方面不限于附图中所示和本文描述的特定计算机可执行指令或特定组件或模块。本公开的其他示例可以包括具有比本文示出和描述的功能性更多或更少的功能性的不同的计算机可执行指令或组件。
在涉及通用计算机的示例中,本公开的各方面在被配置为执行本文描述的指令时将通用计算机转换为专用计算设备。
备选地,或除了本文描述的其他示例之外,示例包括以下的任何组合:
-一种计算机化显示系统,该计算机化显示系统用于将来自捕获设备的视频帧的时间戳进行相关,该计算机化显示系统包括:
至少一个处理器;
包括计算机程序代码的至少一个存储器,该至少一个存储器和计算机程序代码被配置为与至少一个处理器一起使至少一个处理器;
由相关器应用经由总线接口从捕获设备接收视频流的帧,帧包括第一起始帧时间戳和第一结束帧时间戳,该第一起始帧时间戳和第一结束帧时间戳基于与捕获设备关联的设备时钟;
由相关器应用基于视频流的多个先前接收的帧来预测与所接收的帧相关联的第二起始帧时间戳和第二结束帧时间戳,第二起始帧时间戳和第二结束帧时间戳基于与显示系统相关联的系统时钟;
相关器应用基于第一起始帧时间戳与第二起始帧时间戳之间的差以及第一结束帧时间戳与第二结束帧时间戳之间的差,来计算
所接收的帧的扭斜值;
在计算的扭斜值超过扭斜阈值时,由相关器应用校正接收的帧以与第二起始帧时间戳和第二结束帧时间戳进行相关;以及
提供经校正的帧以用于显示。
-预测第二起始帧时间戳包括:维持视频流的多个先前接收的帧的起始帧时间戳的映射。
-预测第二起始帧时间戳和第二结束帧时间戳包括:确定视频流的多个先前接收的帧的平均帧长度,其中所预测的第二起始帧时间戳和第二结束帧时间戳以所确定的平均帧长度分隔。
-校正所接收的帧包括:裁剪所接收的帧以匹配所预测的第二起始帧时间戳和第二结束帧时间戳,以及利用所预测的第二起始帧时间戳和第二结束帧时间戳对所接收的帧重新加时间戳。
-至少一个存储器包括计算机程序代码,至少一个存储器和计算机程序代码被配置为与至少一个处理器一起还使至少一个处理器:将接收的帧与视频流的多个接收的帧进行组合。
-视频流与另一视频流同步;并且
基于第二起始帧时间戳和第二结束帧时间戳中的至少一个时间戳,经校正的帧与另一视频流的匹配帧被同步。
-视频流是基于可见光的视频流,并且另一视频流是基于深度的视频流。
-视频流是从第一角度捕获场景的基于可见光的视频流,并且另一视频流是从第二角度捕获场景的基于可见光的视频流。
-视频流包括实况视频。
-总线接口是通用串行总线(USB)接口。
-一种计算机化方法,用于关联来自捕获设备的视频帧的时间戳,该计算机化方法包括:
由相关器应用经由总线接口从捕获设备接收视频流的帧,帧包括第一起始帧时间戳和第一结束帧时间戳,该第一起始帧时间戳和第一结束帧时间戳基于与捕获设备关联的设备时钟;
由相关器应用基于视频流的多个先前接收的帧来预测与所接收的帧关联的第二起始帧时间戳和第二结束帧时间戳,第二起始帧时间戳和第二结束帧时间戳基于与相关器应用的计算设备相关联的系统时钟;
相关器应用基于第一起始帧时间戳与第二起始帧时间戳之间的差以及第一结束帧时间戳与第二结束帧时间戳之间的差,来计算所接收的帧的扭斜值;
在计算的扭斜值超过扭斜阈值时,由相关器应用校正所接收的帧,以与第二起始帧时间戳和第二结束帧时间戳进行相关;
将所接收的帧与视频流的多个接收的帧进行组合;以及
提供视频流以用于显示。
-其中预测第二起始帧时间戳包括:维持视频流的多个先前接收的帧的起始帧时间戳的映射。.
-其中预测第二起始帧时间戳和第二结束帧时间戳包括:确定视频流的多个先前接收的帧的平均帧长度,其中所预测的第二起始帧时间戳和第二结束帧时间戳以所确定的平均帧长度分隔。
-其中校正所接收的帧包括:裁剪所接收的帧,以匹配所预测的第二起始帧时间戳和第二结束帧时间戳,以及利用所预测的第二起始帧时间戳和第二结束帧时间戳对所接收的帧重新加时间戳。
-其中视频流与另一视频流同步;并且
基于第二起始帧时间戳和第二结束帧时间戳中的至少一个时间戳,经校正的帧与另一视频流的匹配帧被同步。
-视频流是基于可见光的视频流,并且另一视频流是基于深度的视频流。
-视频流是从第一角度捕获场景的基于可见光的视频流,并且另一视频流是从第二角度捕获场景的基于可见光的视频流。
-一种或多种计算机存储介质,具有用于将来自捕获设备的视频帧的时间戳进行相关的计算机可执行指令,计算机可执行指令在由处理器执行后会使处理器至少:
由相关器应用经由总线接口从捕获设备接收视频流的帧,帧包括第一起始帧时间戳和第一结束帧时间戳,该第一起始帧时间戳和第一结束帧时间戳基于与捕获设备关联的设备时钟;
由相关器应用基于视频流的多个先前接收的帧来预测与所接收的帧相关联的第二起始帧时间戳和第二结束帧时间戳,第二起始帧时间戳和第二结束帧时间戳基于与处理器关联的系统时钟;相关器应用基于第一起始帧时间戳与第二起始帧时间戳之间的差以及第一结束帧时间戳与第二结束帧时间戳之间的差,来计算
所接收的帧的扭斜值;
在计算的扭斜值超过扭斜阈值时,由相关器应用校正所接收的帧,以与第二起始帧时间戳和第二结束帧时间戳进行相关;以及
提供经校正的帧以用于显示。
-在由处理器执行时,该计算机可执行指令还使处理器至少:
从第二捕获设备接收第二视频流的帧;
对第二视频流的接收的帧加时间戳;
将视频流与第二视频流进行组合;并且
其中经校正的帧与第二视频流的匹配帧同步。
-视频流是基于可见光的视频流,并且第二视频流是基于深度相机的视频流;并且
其中将视频流与第二视频流组合创建三维相关视频流。
如对于本领域技术人员而言将是明显的,可以在不丧失寻求的效果的情况下扩展或改变本文给出的任何范围或设备值。
尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应该理解,所附权利要求书中定义的主题不必限于上述特定特征或动作。相反,上述特定特征和动作被公开为实现权利要求的示例形式。
应当理解,上述益处和优点可以涉及一个实施例或者可以涉及多个实施例。实施例不限于解决任何一个或所有所述问题的实施例或具有任何一个或所有益处和优点的实施例。还应当理解,对“一个”项的引用是指那些项中的一个或多个。
在本文中示出和描述的实施例以及在本文中未具体描述但在权利要求方面的范围内的实施例构成了用于经由总线接口从捕获设备接收视频流的帧的示例性部件,该帧包括第一起始帧时间戳和第一结束帧时间戳,该第一起始帧时间戳和第一结束帧时间戳基于与捕获设备关联的设备时钟;用于基于视频流的多个先前接收的帧来预测与所接收的帧相关联的第二起始帧时间戳和第二结束帧时间戳的部件,该第二起始帧时间戳和第二结束帧时间戳基于与显示系统相关联的系统时钟;用于根据第一起始帧时间戳和第二起始帧时间戳之间的差以及第一结束帧时间戳和第二结束帧时间戳之间的差来计算所接收的帧的扭斜值的部件;用于在所计算的扭斜值超过扭斜阈值时校正所接收的帧以与第二起始帧时间戳和第二结束帧时间戳进行相关的部件;用于提供经校正的帧以用于显示的设备。如本文中所述,所示的一个或多个处理器519与存储在存储器522中的计算机程序代码一起构成示例性处理部件,该示例性处理部件用于基于对接收帧时间戳的分析生成预测的时间戳并将相关帧组合成视频流。
在本说明书中使用的术语“包括”是指包括其后跟随的(多个)特征或(多个)行为,而不排除存在一个或多个附加特征或行为。
在一些示例中,附图中所示的操作可以被实现为在计算机可读介质上编码的软件指令、以被编程为或被设计为执行该操作的硬件被实现或两者。例如,本公开的方面可以被实现为包括多个互连的导电元件的片上系统或其他电路。
在本文中图示和描述的本公开的示例中,除非另有说明,否则操作的执行或实现顺序不是必需的。也就是说,除非另有说明,否则可以以任何顺序执行操作,并且本公开的示例可以包括比本文公开的操作更多或更少的操作。例如,在另一操作之前,与另一操作同时或在另一操作之后执行或实现特定操作被认为是在本公开的方面的范围内。
当介绍本公开的各方面的要素或其示例时,冠词“一”,“一个”,“该”和“所述”旨在表示存在一个或多个要素。术语“包括”、“包含”和“具有”旨在是包括性的,并且意味着除所列要素外可能还有其他要素。术语“示例性”旨在表示“…的示例”。短语“以下一项或多项:A、B和C”是指“A中的至少一个和/或B中的至少一个和/或C中的至少一个”。
已经详细描述了本公开的各方面,明显的是,在不脱离如所附权利要求所限定的本公开的方面的范围的情况下,可以进行修改和变化。由于可以在不脱离本公开的各方面的范围的情况下对以上结构、产品和方法进行各种改变,因此以上描述中包含的以及附图中示出的所有内容应当旨在解释为说明性的,而并非限定性的。

Claims (15)

1.一种计算机化显示系统,用于将来自捕获设备的视频帧的时间戳进行相关,所述计算机化显示系统包括:
至少一个处理器;
至少一个存储器,包括计算机程序代码,所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述至少一个处理器:
由相关器应用经由总线接口从捕获设备接收视频流的帧,所述帧包括第一起始帧时间戳和第一结束帧时间戳,所述第一起始帧时间戳和所述第一结束帧时间戳基于与所述捕获设备相关联的设备时钟;
由所述相关器应用基于所述视频流的多个先前接收的帧来预测与所接收的所述帧相关联的第二起始帧时间戳和第二结束帧时间戳,所述第二起始帧时间戳和所述第二结束帧时间戳基于与所述显示系统相关联的系统时钟;
所述相关器应用基于所述第一起始帧时间戳与所述第二起始帧时间戳之间的差以及所述第一结束帧时间戳与所述第二结束帧时间戳之间的差,来计算所接收的所述帧的扭斜值;
在所计算的所述扭斜值超过扭斜阈值时,由所述相关器应用校正所接收的所述帧,以与所述第二起始帧时间戳和所述第二结束帧时间戳进行相关;以及
提供经校正的所述帧以用于显示。
2.根据权利要求1所述的计算机化系统,其中预测所述第二起始帧时间戳包括:维持所述视频流的所述多个先前接收的帧的起始帧时间戳的映射。
3.根据权利要求1所述的计算机化系统,其中预测所述第二起始帧时间戳和所述第二结束帧时间戳包括:确定所述视频流的所述多个先前接收的帧的平均帧长度,其中所预测的所述第二起始帧时间戳和第二结束帧时间戳以所确定的所述平均帧长度分隔。
4.根据权利要求1所述的计算机化系统,其中校正所接收的所述帧包括:裁剪所接收的所述帧,以匹配所预测的所述第二起始帧时间戳和第二结束帧时间戳,以及利用预测的所述第二起始帧时间戳和第二结束帧时间戳对所接收的所述帧重新加时间戳。
5.根据权利要求1所述的计算机化系统,其中所述至少一个存储器包括计算机程序代码,所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起还使所述至少一个处理器:将所接收的所述帧与所述视频流的所述多个接收的帧进行组合。
6.根据权利要求1所述的计算机化系统,其中所述视频流与另一视频流同步;并且
基于所述第二起始帧时间戳和所述第二结束帧时间戳中的至少一个时间戳,经校正的所述帧与所述另一视频流的匹配帧被同步。
7.根据权利要求1所述的计算机化系统,其中所述视频流包括实况视频。
8.根据权利要求1所述的计算机化系统,其中所述总线接口是通用串行总线(USB)接口。
9.一种计算机化方法,用于将来自捕获设备的视频帧的时间戳进行相关,所述计算机化方法包括:
由相关器应用经由总线接口从捕获设备接收视频流的帧,所述帧包括第一起始帧时间戳和第一结束帧时间戳,所述第一起始帧时间戳和所述第一结束帧时间戳基于与所述捕获设备相关联的设备时钟;
由所述相关器应用基于所述视频流的多个先前接收的帧来预测与所接收的所述帧相关联的第二起始帧时间戳和第二结束帧时间戳,所述第二起始帧时间戳和所述第二结束帧时间戳基于与所述相关器应用的计算设备相关联的系统时钟;
所述相关器应用基于所述第一起始帧时间戳与所述第二起始帧时间戳之间的差以及所述第一结束帧时间戳与所述第二结束帧时间戳之间的差,来计算所接收的所述帧的扭斜值;
在所计算的所述扭斜值超过扭斜阈值时,由所述相关器应用校正所接收的所述帧,以与所述第二起始帧时间戳和所述第二结束帧时间戳进行相关;
将所接收的所述帧与所述视频流的所述多个接收的帧进行组合;以及
提供所述视频流以用于显示。
10.根据权利要求9所述的计算机化方法,其中所述视频流与另一视频流同步;并且
基于所述第二起始帧时间戳和所述第二结束帧时间戳中的至少一个时间戳,经校正的所述帧与所述另一视频流的匹配帧被同步。
11.根据权利要求10所述的计算机化方法,其中所述视频流是基于可见光的视频流,并且所述另一视频流是基于深度的视频流。
12.根据权利要求10所述的计算机化方法,其中所述视频流是从第一角度捕获场景的基于可见光的视频流,并且所述另一视频流是从第二角度捕获所述场景的基于可见光的视频流。
13.一种或多种计算机存储介质,具有用于将来自捕获设备的视频帧的时间戳进行相关的计算机可执行指令,所述计算机可执行指令在由处理器执行后使所述处理器至少:
由相关器应用经由总线接口从捕获设备接收视频流的帧,所述帧包括第一起始帧时间戳和第一结束帧时间戳,所述第一起始帧时间戳和所述第一结束帧时间戳基于与所述捕获设备相关联的设备时钟;
由所述相关器应用基于所述视频流的多个先前接收的帧来预测与所接收的所述帧相关联的第二起始帧时间戳和第二结束帧时间戳,所述第二起始帧时间戳和所述第二结束帧时间戳基于与所述处理器相关联的系统时钟;
所述相关器应用基于所述第一起始帧时间戳与所述第二起始帧时间戳之间的差以及所述第一结束帧时间戳与所述第二结束帧时间戳之间的差,来计算所接收的所述帧的扭斜值;
在所计算的所述扭斜值超过扭斜阈值时,由所述相关器应用校正所接收的所述帧,以与所述第二起始帧时间戳和所述第二结束帧时间戳进行相关;以及
提供经校正的所述帧以用于显示。
14.根据权利要求13所述的一种或多种计算机存储介质,其中在由所述处理器执行时,所述计算机可执行指令还使所述处理器至少:
从第二捕获设备接收第二视频流的帧;
对所述第二视频流的接收的帧加时间戳;
将所述视频流与所述第二视频流进行组合;并且
其中所述经校正的所述帧与所述第二视频流的匹配帧同步。
15.根据权利要求14所述的一种或多种计算机存储介质,其中所述视频流是基于可见光的视频流,并且所述第二视频流是基于深度相机的视频流;并且
其中将所述视频流与所述第二视频流组合创建三维相关视频流。
CN201980034237.2A 2018-05-21 2019-05-06 基于系统时钟的视频流帧时间戳的相关 Active CN112154669B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862674599P 2018-05-21 2018-05-21
US62/674,599 2018-05-21
US15/990,549 US10742955B2 (en) 2018-05-21 2018-05-25 Correlation of video stream frame timestamps based on a system clock
US15/990,549 2018-05-25
PCT/US2019/030792 WO2019226296A1 (en) 2018-05-21 2019-05-06 Correlation of video stream frame timestamps based on a system clock

Publications (2)

Publication Number Publication Date
CN112154669A true CN112154669A (zh) 2020-12-29
CN112154669B CN112154669B (zh) 2022-10-21

Family

ID=68533172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980034237.2A Active CN112154669B (zh) 2018-05-21 2019-05-06 基于系统时钟的视频流帧时间戳的相关

Country Status (4)

Country Link
US (1) US10742955B2 (zh)
EP (1) EP3797519A1 (zh)
CN (1) CN112154669B (zh)
WO (1) WO2019226296A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115328923A (zh) * 2022-10-12 2022-11-11 北京中科心研科技有限公司 时序生理数据的存储结构、查询方法、存储介质及系统

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112329500B (zh) * 2019-08-05 2024-05-28 阿波罗智能技术(北京)有限公司 基于离散帧的场景段实现方法、装置及存储介质
US11328031B2 (en) 2020-07-11 2022-05-10 International Business Machines Corporation Automatically generated timestamps based on comment
GB202012559D0 (en) 2020-08-12 2020-09-23 Samsung Electronics Co Ltd Reducing latency between receiving user input and displaying resulting frame
US11763414B2 (en) * 2020-09-23 2023-09-19 Ati Technologies Ulc Glitchless GPU switching at a multiplexer
CN114374871B (zh) * 2020-10-15 2023-11-14 瑞昱半导体股份有限公司 串流媒体的时戳处理方法
CN113328801B (zh) * 2021-05-19 2022-03-15 郑州信大捷安信息技术股份有限公司 一种基于可见光通讯的数据加密通讯方法和装置
CN113949898B (zh) * 2021-10-13 2024-03-08 北京奇艺世纪科技有限公司 多媒体处理方法、装置、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090319819A1 (en) * 2008-06-19 2009-12-24 Microsoft Corporation Clock Synchronization Using Correlation Events
US20100215057A1 (en) * 2009-02-24 2010-08-26 Verivue, Inc. Canonical Scheduling for Heterogeneous Content Delivery
CN103959807A (zh) * 2011-10-04 2014-07-30 摩托罗拉移动有限责任公司 匹配视频编码器和广告插入器中的输入和输出时间戳的方法
CN107079193A (zh) * 2014-10-31 2017-08-18 瑞典爱立信有限公司 视频流同步

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5640388A (en) 1995-12-21 1997-06-17 Scientific-Atlanta, Inc. Method and apparatus for removing jitter and correcting timestamps in a packet stream
US6081299A (en) 1998-02-20 2000-06-27 International Business Machines Corporation Methods and systems for encoding real time multimedia data
US6259677B1 (en) 1998-09-30 2001-07-10 Cisco Technology, Inc. Clock synchronization and dynamic jitter management for voice over IP and real-time data
WO2000033521A1 (en) 1998-12-02 2000-06-08 Koninklijke Philips Electronics N.V. System and method for generating a real-time signal
US6871006B1 (en) * 2000-06-30 2005-03-22 Emc Corporation Processing of MPEG encoded video for trick mode operation
US8234395B2 (en) 2003-07-28 2012-07-31 Sonos, Inc. System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
US7397825B2 (en) * 2004-03-10 2008-07-08 Scientific-Atlanta, Inc. Transport stream dejitterer
US8462212B1 (en) * 2008-12-04 2013-06-11 Stoplift, Inc. Correlating detected events with image data
US8428045B2 (en) 2010-03-16 2013-04-23 Harman International Industries, Incorporated Media clock recovery
US8736700B2 (en) * 2010-09-30 2014-05-27 Apple Inc. Techniques for synchronizing audio and video data in an image signal processing system
WO2014160448A1 (en) * 2013-03-13 2014-10-02 Soloinsight, Inc. Integrated workforce management and access control

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090319819A1 (en) * 2008-06-19 2009-12-24 Microsoft Corporation Clock Synchronization Using Correlation Events
US20100215057A1 (en) * 2009-02-24 2010-08-26 Verivue, Inc. Canonical Scheduling for Heterogeneous Content Delivery
CN103959807A (zh) * 2011-10-04 2014-07-30 摩托罗拉移动有限责任公司 匹配视频编码器和广告插入器中的输入和输出时间戳的方法
CN107079193A (zh) * 2014-10-31 2017-08-18 瑞典爱立信有限公司 视频流同步

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115328923A (zh) * 2022-10-12 2022-11-11 北京中科心研科技有限公司 时序生理数据的存储结构、查询方法、存储介质及系统

Also Published As

Publication number Publication date
CN112154669B (zh) 2022-10-21
US10742955B2 (en) 2020-08-11
US20190356897A1 (en) 2019-11-21
EP3797519A1 (en) 2021-03-31
WO2019226296A1 (en) 2019-11-28

Similar Documents

Publication Publication Date Title
CN112154669B (zh) 基于系统时钟的视频流帧时间戳的相关
CN108737908B (zh) 一种媒体播放方法、装置及存储介质
CN110418170B (zh) 检测方法和装置、存储介质及电子装置
CN106507202B (zh) 播放控制方法及装置
WO2017166497A1 (zh) 一种多媒体数据的同步播放方法及装置
US9626985B2 (en) Audio processing method and apparatus
WO2018076982A2 (zh) 一种音视频同步播放的方法及终端
US10742693B2 (en) Method and system for writing trajectory synchronization among multiple clients
US9893974B2 (en) Synchronization of data for colliding bodies
WO2022166927A1 (zh) 基于远程桌面的光标显示方法、装置、介质及电子设备
US20160378177A1 (en) Visualized content transmission control method, sending method and apparatuses thereof
CN109803087B (zh) 一种图像生成方法及终端设备
CN111988654B (zh) 视频数据对齐方法、装置和电子设备
CN109324776B (zh) 笔迹的同步方法、装置和系统
CN113393061B (zh) 一种基于区块链的交易打包方法和相关装置
WO2019096134A1 (zh) 信息存储方法、装置、存储介质及电子设备
CN114327201B (zh) 云手机操控方法、装置及计算机设备
CN109640141B (zh) 一种音频时间戳的校正方法、校正装置及音视频终端
CN109361864B (zh) 一种拍摄参数设置方法及终端设备
CN111632382B (zh) 游戏数据同步方法、装置、计算机及可读存储介质
WO2023201822A1 (zh) 多相机同步校正方法、装置及存储介质
US9722898B2 (en) Quality estimation methods, quality estimation apparatus, and recording medium
CN114866829A (zh) 同步播放的控制方法及装置
CN113031895A (zh) 投屏控制方法、装置及电子设备
TWI786694B (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