CN104620595A - 主动式视频帧丢弃 - Google Patents

主动式视频帧丢弃 Download PDF

Info

Publication number
CN104620595A
CN104620595A CN201380046899.4A CN201380046899A CN104620595A CN 104620595 A CN104620595 A CN 104620595A CN 201380046899 A CN201380046899 A CN 201380046899A CN 104620595 A CN104620595 A CN 104620595A
Authority
CN
China
Prior art keywords
video
frame
computer
acquisition time
horizon
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.)
Pending
Application number
CN201380046899.4A
Other languages
English (en)
Inventor
刘宇新
海姆·魏斯布尔德
杨溢欣
苏少炜
刘旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TangoMe Inc
Original Assignee
TangoMe Inc
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 TangoMe Inc filed Critical TangoMe Inc
Publication of CN104620595A publication Critical patent/CN104620595A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping

Landscapes

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

Abstract

公开了一种用于主动丢弃视频帧的方法和系统。该方法包括:通过计算机记录在第一装置处采集的视频帧的视频帧采集时间戳;通过计算机将视频帧采集时间戳与采集的视频帧关联;通过计算机将视频帧采集时间戳与视频帧的视频帧目标时间戳比较;并且根据该比较,如果视频帧采集时间戳与视频帧目标时间戳之间的时间差超出了时间值的预定范围,则通过计算机丢弃该视频帧。

Description

主动式视频帧丢弃
相关申请的交叉引用
本申请涉及并要求2012年10月11日提交的编号为13/649,863的美国专利申请的优先权,在此通过引用将其全部内容并入本文中。
背景技术
视频帧速率定义为每秒所处理的视频帧的数量。通常,希望视频帧速率适应不同的/变化的CPU使用率和信道带宽。因此,一般希望以所确定的视频帧速率来采集视频帧。然而,由于众多不同的现有平台和各种各样的装置,装置并不总是能够精确地并动态地控制视频帧采集速率。
发明内容
广泛地,本发明讨论用于硬件和网络不一致的主动式视频帧丢弃。更详细地,本发明提出了一种用于主动地丢弃视频帧的方法和装置。该方法包括:计算机记录在第一装置采集的视频帧的视频帧采集时间戳;计算机将视频帧采集时间戳与采集的视频关联;计算机将视频帧采集时间戳与该视频帧的视频帧目标时间戳比较;并且根据该比较,如果视频帧采集时间戳与视频帧目标时间戳之间的时间差超出了时间值的预定范围,计算机丢弃该视频帧。
附图说明
图1示出了根据一个实施例的贯穿从发送器到接收器的完整视频通话线路的视频丢弃的示例。
图2示出了根据一个实施例的用于主动丢弃视频帧的装置。
图3A和3B是根据一个实施例的用于主动丢弃视频帧的方法的流程图。
图4示出了根据一个实施例的用于主动丢弃视频帧的视频帧数据包调度控制机构。
图5是根据一个实施例的用于主动丢弃视频帧的方法的流程图。
图6示出了根据一个实施例的用于主动丢弃视频帧的装置。
图7示出了根据一个实施例的用于主动丢弃视频帧的方法。
图8示出了根据实施例的可在其上执行主动丢弃视频帧的实施例的示例装置。
图9示出了根据实施例的可在其上执行主动丢弃视频帧的实施例的示例装置。
图10示出了根据实施例的可在其上执行主动丢弃视频帧的实施例的示例装置(例如,移动装置)的框图。
除非特别声明,否则本说明书所涉及的附图应该被理解为并非按比例绘制。
具体实施方式
现在将详细参考各个实施例,在附图中示出了这些实施例的示例。虽然将结合这些实施例描述发明主题,但是应该明白,其并不意在将所述主题限制为这些实施例。相反,本文所述的主题旨在涵盖可包含在本精神和范围内的替换、修改和等同变换。而且,在下面的描述中,阐述了大量具体细节以提供对本主题的充分理解。然而,某些实施例可以不用这些特定细节来实施。在其他情况下,为了不使本主题的观点不必要地模糊,没有对众所周知的结构和组件进行详细描述。
如下将要描述的那样,在视频通话线路(pipeline)的不同阶段期间,各实施例采用三种不同的方法来主动将不同装置(例如,移动的、桌上型的)中的视频丢弃:(1)采集到视频帧后的适应性视频帧丢弃;(2)编码前的适应性视频帧丢弃以促进视频帧数据包调度控制;和(3)视频帧渲染前的动态视频帧丢弃。下面对每种方法进行更加详细地描述。
图1示出了在贯穿从发送器到接收器的整个视频通话线路中发生的三种可能的视频帧丢弃情景。简而言之,图1示出了从在发送装置100中采集视频帧到在接收装置165中渲染视频帧发生的过程。如图所示,在发送装置100处,视频帧移动的过程如下:视频采集105;视频编码110;视频打包115;以及视频数据包调度120。如图所示,在接收装置165处,视频帧移动的过程如下:视频数据包调度135;视频解包140;视频解码145;以及视频渲染150。
在不同实施例中,在操作125中,视频帧在视频采集105的处理后丢弃。在不同实施例中,在操作130中,视频帧在视频帧编码10开始前丢弃。此外,在操作130中,示出了在视频帧编码110开始前的视频帧丢弃的过程期间考虑了视频帧调度状态160(其从视频帧数据包调度120过程中传输)。在不同实施例中,在操作155中,视频帧在视频渲染150前丢弃。图1中也示出了时间戳161至时间戳169。如图所示,一旦从一个过程进入到下一个过程,就生成时间戳。例如,在视频采集105中采集视频帧。一旦进入到视频编码110的过程中,就生成时间戳162,对视频帧编码发生的时间进行标记。
因此,各实施例提供了主动丢弃视频帧,而不是等待由于各种通信问题(例如,网络拥塞、带宽不足等)而导致网络丢弃视频帧,从而促进装置之间的视频帧能够稳定步调地传输。
符号和术语
现在将详细参考本技术的实施例,在附图中示出了这些实施例的示例。尽管本主题将结合不同实施例进行描述,但是应当理解的是,这些实施例并非意图将本主题限制为这些实施例。相反,如所附权利要求所限定的那样,本文所描述的主体旨在涵盖可包括在不同实施例的精神和范围内的替换、修改以及等同变换。
此外,在下面描述的实施例中,阐述了大量特定细节以便提供对本技术的充分理解。然而,本技术可以不用这些具体细节即可实施。在其他情况中,为了避免不必要地使本实施例的观点模糊,没有对众所周知的方法、过程、组件和电路进行详细描述。
随后的实施例的描述的一些部分以过程、逻辑模块、处理和对在计算机存储器中的数据比特进行操作的其他符号表示法来阐述。这些描述和表示法是数据处理领域中的技术人员用于向所属领域中的其他技术人员最有效地传达其工作本质的手段。在本申请中,过程、逻辑块、处理等被构思为产生期望结果的步骤或指令的自洽序列。这些步骤是需要物理量的物理操控的步骤。通常,虽然不是必须的,但是这些量表现为能够在计算机系统中被存储、传输、组合、比较和以其他方式操控的电信号或磁信号的形式。
然而,应该牢记,所有的这些和相似术语都与合适的物理量相关联并仅仅是应用到这些量的便利标记。除非特别声明,否则根据下面的论述显而易见的是,应该意识到,在整个本论述中,术语(例如,“记录”、“关联”、“比较”、“丢弃”、“发送”、“更新”、“估计”、“存取”、“接收”、“增加”、“预测”、“保持”、“发送”、“调度”、“维持”等)都是指计算机系统或类似的电子计算装置的行为和过程,所述计算机系统或类似的电子计算装置将计算机系统的寄存器和存储器中的以物理(电子)量表示的数据操控并转换为计算机系统的存储器或寄存器或其他这种信息存储器、传输装置或显示装置中的类似地以物理量表示的其他数据。
(1)采集到视频帧后的适应性视频帧丢弃
视频帧速率定义为每秒所处理的视频帧的数量。通常,希望视频帧速率适应不同的/变化的CPU使用率和信道带宽。因此,一般希望以所确定的视频帧速率来采集视频帧。然而,由于众多不同的现有平台和各种各样的装置,装置并不总是能够精确地并动态地控制视频帧采集速率。这在某种程度上是因为某些装置和/平台不提供如下的清晰API,该清晰API提供准确的视频帧速率;并且某些装置和/或平台在视频帧的采集过程中在没有出现暂停或闪烁的情况下不启用摄像机帧速率设置以动态变化。
因此,在瞬时目标视频帧速率低于瞬时摄像机采集视频帧速率的情况下,各实施例提供了一种视频帧丢弃的方法,使得采集的视频帧的步调稳定同时仍然获得变化的目标视频帧速率。在一些情况下,摄像机采集视频帧速率可以由于不同的CPU使用状态和/或不同的照明条件而改变。此外,在其他情况下,目标视频帧速率可以改变以获得优良的整体的端到端的用户体验,例如通过适应于变化的网络条件以及本地装置和/或对等装置的CPU使用状态来获得优良的整体的端到端的用户体验。
用于一个视频帧的“目标时间点(time instance)”定义为需要处理视频帧以最佳地达到目标视频帧速率的时间点。“采集时间点”定义为正在采集视频帧的时间点。在一个实施例中,为每个新采集的视频帧更新目标时间点。针对用于视频的采集的视频帧而使用与采集时间点相关联的历史数据,为下一个采集的视频帧估计采集时间点。在用于视频帧的目标时间点接近(达到和/或超出阈值)当前的采集时间点时,保留新采集的视频帧。否则,丢弃(跳过)该新采集的视频帧。
通过促进适应性的和主动的视频帧丢弃,各实施例使得视频帧以稳定的步调传输。由于大量的视频正在被采集(非常快地采集视频帧),所以希望在采集阶段丢弃视频帧。例如,发生网络拥塞、以及I帧丢失。最终,丢失这些I帧使得重新转换IDR,引起更大的拥塞。视频帧的反复无常的丢弃是危险的,这是因为不能确定哪些视频会丢失。各实施例对视频帧进行主动的丢弃。
图2示出了用于主动地丢弃视频帧的装置202。如本文所述,装置202至少包括与计算机耦接的以下组件:视频采集时间戳记录器215、视频帧采集时间戳关联器220、视频帧采集时间戳比较器235、和包含视频帧丢弃器250的视频帧操控器245。如本文所述,在不同实施例中,装置202可选地包括与计算机耦接的以下组件中的任意一个:视频帧发送器255、视频帧目标时间戳更新器265、和视频帧采集时间戳估计器270。
视频帧采集时间戳记录器215记录用于在第一装置200处采集的视频帧205的视频帧采集时间戳210。在不同实施例中,第一装置200是一种能够将视频传输到另一个装置(第二装置260)的装置。视频帧采集时间戳关联器220将视频帧采集时间戳210与采集的视频帧205关联。视频帧采集时间戳比较器235将视频帧采集时间戳210与用于视频帧205的视频帧采集目标时间戳240比较。视频帧采集目标时间戳240指示希望采集视频帧210的时间。
视频帧操控器245根据视频帧采集时间戳210与视频帧采集目标时间戳240的时间差来操控视频帧210。视频帧操控器245包括视频帧丢弃器250。如果视频帧采集时间戳210与视频帧采集目标时间戳240之间的时间差超出了时间值的预定范围,则视频帧丢弃器250就将视频帧205丢弃。
如果视频帧采集时间戳210与视频帧采集目标时间戳240之间的时间差落入时间值的预定范围内,则视频帧发送器255就将来自第一装置200的视频帧采集时间戳210和视频帧205发送给第二装置260。
视频帧目标时间戳更新器265更新与随后采集的视频帧相关联的随后的视频帧目标时间戳。从而,在视频帧205之后采集的每个视频帧都被认为是随后采集的视频帧。每个随后采集的视频帧接收视频帧采集时间戳,并与视频帧目标时间戳关联。每次采集到新的视频帧后,改变该视频帧采集目标时间戳以表明希望新的视频帧已经被采集的新的目标时间。
视频帧采集时间戳估计器270估计上述用于随后采集的视频帧的随后的视频帧采集时间戳,其中该估计基于历史视频帧采集数据。历史视频帧采集数据可以至少包括以下数据中的任意一个:所有之前的视频帧采集目标时间戳和所有之前的视频帧采集时间戳。
图3A和图3B示出了根据实施例的用于主动丢弃视频帧的方法的流程图。在操作305,在一个实施例中并如本文所述,记录用于在第一装置中采集的视频帧的视频帧采集时间戳。在操作310,在一个实施例中并如本文所述,视频帧采集时间戳与采集的视频帧关联。在操作315,在一个实施例中并如本文所述,将视频帧采集时间戳与用于视频帧的视频帧采集目标时间戳比较。在操作320,在一个实施例中并如本文所述,根据在操作315处的比较,如果视频帧采集时间戳与视频帧采集目标时间戳之间的时间差超出时间值的预定范围,则丢弃视频帧。
现在参照附图3B,在操作325,在一个实施例中并如本文所述,根据在操作315处的比较,如果视频帧采集时间戳与视频帧采集目标时间戳之间的时间差落入时间值的预定范围内,则将视频帧采集时间戳和视频帧从第一装置发送到第二装置。
在操作330,在一个实施例中并如本文所述,更新与随后采集的视频帧关联的随后的视频帧目标时间戳。在操作335,在一个实施例中并如本文所述,估计用于随后采集的视频帧的随后的视频帧采集时间戳,其中该估计基于历史视频帧采集数据。
(2)视频帧编码前的适应性视频帧丢弃以促进数据包调度控制
视频编码是将数字视频文件从一种格式转换为另一种格式的过程。在计算机、平板电脑、移动电话和机顶盒上看到的所有视频都必须经过编码过程以将原始“源”视频转换为在这些装置上是可视的。由于不同的装置和浏览器支持不同的视频格式,所以编码是必要的。这种过程有时还称为“代码转换”或“视频转换”。
不同的数字视频格式可以具有特定的变量,例如容器(例如.MOV、.FLV、.MP4、.OGG、.WMV、WebM)、编解码器(例如,H264、VP6、ProRes)和比特率(例如,兆位每秒或千位每秒)。对于这些变量,不同的装置和浏览器具有不同的规范。
网络服务质量(QoS)层监测在瞬时信道带宽、往返时间、抖动、丢包等参数方面变化的网络状态。然后,网络QoS层将实时监测到的信息反馈给视频编码器。
为了最大化全部的数据包发送,引入漏桶机制,以在只要信道条件允许时就调度数据包以将该数据包发送给网络。然而,对于实时通信,数据包不能在没有时间约束的情况下缓存。一旦出现网络拥塞,其不可避免地导致丢弃数据包以满足端到端的延时约束并还将有限的信道带宽分配给诸如控制数据包或音频数据包等具有较高优先级的数据包。
鉴于视频编码的这种属性,如果丢弃的视频数据包是将被用于参考的视频帧的一部分,那么对视频数据包进行丢弃可能需要对同步的视频帧进行编码以恢复视频流。
帧是在已知的时间间隔中获得的完整的图像,半帧(fie ld)是构成部分图像的奇数编号的或偶数编号的扫描行的集合。在视频以隔行扫描的格式发送时,每个视频帧作为奇数编号行的半帧发送,接着是偶数编号行的半帧。
用作预测其他帧的参考的帧称为参考帧。至少有三种类型的图片(或参考帧)用在视频压缩中:I帧、P帧和B帧。在这些设计中,不用根据其他帧预测而编码的帧称为I帧,使用根据单个参考帧(或用于对每个区域进行预测的单个帧)的预测的帧称为P帧,使用被形成为两个参考帧的均值(可能是加权均值)的预测信号的帧称为B帧。
I帧是一种‘帧内编码图片’,事实上是一种完全指定的图片,类似于传统的静态图像文件。P帧和B帧只保留了图像信息的一部分,所以它们比I帧需要更少的存储空间,从而提高视频压缩率。
P帧(‘预测图片’)只保留了图片与前一帧的变化内容。例如,在汽车穿过固定背景的场景中,只有汽车的运动需要被编码。编码器不需要将没有发生变化的背景像素存储在P帧中,从而节约空间。P帧也被称为增量帧(delta-frame)。
B帧(‘前后预测图片’)通过使用当前帧与前后两个帧之间的差以表示其内容从而节省了更多的空间。
同步视频帧也是一种使用确认参考视频帧的P帧的I/IDR帧。该同步视频帧独立于之前编码的视频帧的编码并能够终止由之前视频数据包丢弃而引起的错误的传播。这种同步视频帧,尤其是IDR帧,通常产生大视频帧尺寸。该大视频帧尺寸消耗了更多的带宽,给已经可能较差的网络状态增加了负担,同时造成了将这种大视频帧尺寸以其全部完整性的方式发送的难题。如果这种大视频帧的任何视频数据包正被丢弃,则需要插入其他同步视频帧。
各实施例提供了在编码发生前的视频帧丢弃、视频数据包调度促进视频帧丢弃,从而避免了对大视频帧尺寸的同步视频帧的插入。尤其是,各实施例提供了编码发生前合并适应性帧丢弃的视频数据包调度控制机构。视频数据包是一种由计算机网络承载的视频数据的格式化单元。如果媒体层中的视频编码器了解到来自计算机网络层的视频数据包调度细节的状态,则视频编码器在编码之前主动丢弃视频帧,从而避免在发生编码后才不必要地丢弃数据包。由于在编码之前丢弃一个视频帧是独立于对其他视频帧的编码,所以这可以有效地避免插入大尺寸的同步视频帧。
可以传输关于数据包调度细节的反馈信息,并且可以在编码之前实现传输缓存器。该传输缓存器,而不是实时视频帧缓存,用于促进对于视频帧丢弃的决策。可以通过将目标比特率乘以时间窗来确定传输缓存器大小以限制平均编码比特率。传输缓存器的传输缓存器充盈度随着编码的视频帧比特而增加,并随着实时传输比特率而降低。
为了促进视频数据包调度,传输缓存器充盈度进一步受计算机网络层中的数据包调度缓存器状态限制。例如,如果视频帧数据包调度缓存器指示其由于网络拥塞而接近必须丢弃至少一个数据包时,则传输缓存器将增加其充盈度,这使得没有剩余足够的缓存空间用于对即将到来的新视频帧的编码,这导致适当的视频帧丢弃。
各实施例的更加有益之处包括,由于在编码之前将注定被丢弃的视频帧丢弃,所以节省了CPU处理时间。历史数据被用于在编码之前更加准确地预测视频帧大小以更加准确地预测即将到来的视频帧是否应该被丢弃。例如,如果可以根据不同的视频帧类型(例如,I帧或P视频帧类型)预测视频帧大小,那么可以使用最新的多个I视频帧大小和/或P视频帧大小的平均值。
因此,各实施例能够避免过度丢弃(overshoot)。例如,在希望编码器生成100k FPS时,而编码器生成200k FPS,导致编码器过度丢弃。如果该200k FPS被发送给了路由器,则路由器会不将其传输,因为这会产生非常大的网络拥塞。在一个实施例中,视频帧在编码中被丢弃。例如,编码器可能已经对视频帧进行了编码,然后才了解到其正在导致编码器过度丢弃。编码器可以丢弃该视频帧,然后生成下一个视频帧。基本上,编码器返回到之前的状态并试图对下一个视频帧进行编码(该示例被看作是编码器内部的丢弃)。或者网络会通知所述线路根本不将视频帧发送给编码器。
图4示出了根据实施例的用于主动丢弃视频帧的视频帧数据包调度控制机构400。如下文所述,视频帧数据包调度控制机构包括与计算机耦接的下面组件:视频帧数据包调度缓存器访问器415、视频帧数据包调度缓存器状态接收器420和传输缓存器充盈度调节器425。在不同实施例中并如本文所述,视频帧数据包调度控制机构400可选地包括:与计算机耦接的即将到来视频帧丢弃器430,该即将到来视频帧丢弃器430可选地包括视频帧大小预测器435和视频帧大小值范围确定器440。
视频帧数据包调度缓存器访问器415访问计算机网络层450中的视频帧数据包调度缓存器405。视频帧数据包调度缓存器状态接收器420接收视频帧数据包调度缓存器405的视频帧数据包调度缓存状态。视频帧数据包调度缓存状态指示视频帧数据包调度缓存器405接近由于网络拥塞而丢弃视频帧数据包,其中视频帧数据包包括至少一个视频帧。在过量网络拥塞的情况下,网络的当前流量和/或预测的流量被预测为大于网络能够发送的流量,从而产生视频帧数据包将被丢弃的消息。
传输缓存器充盈度调节器425增加传输缓存器445的传输缓存器充盈度,使得在传输缓存器445中没有剩余足够的缓存空间用于对即将到来的至少一个视频帧的视频帧进行编码,从而在对该至少一个视频帧的视频帧进行编码前丢弃即将到来的视频帧。
如果在传输缓存器中没有足够的用于即将到来的视频帧的空间,则即将到来视频帧丢弃器430在编码之前丢弃即将到来的视频帧。如本文所述,即将到来视频帧丢弃器430可选地包括视频帧大小预测器435和视频帧大小值范围确定器440。视频帧大小预测器435使用历史视频帧数据来预测即将到来的视频帧的大小,从而获得所述即将到来的视频帧455的预测的大小。视频帧大小值范围确定器440确定即将到来的视频帧455的预测的大小是否超出大小值的预定范围之外。
图5示出了用于主动丢弃视频帧的方法的流程图。在操作505,在一个实施例中并如本文所述,访问计算机网络层中的视频帧数据包调度缓存器。在操作510,在一个实施例中并如本文所述,接收视频帧数据包调度缓存器的视频帧数据包调度缓存器的状态,其中视频帧数据包调度缓存器状态指示视频帧数据包调度缓存器接近由于网络拥塞而丢弃视频帧数据包,其中视频帧数据包包括至少一个视频帧。
在操作515,在一个实施例中并如本文所述,增加传输缓存器的传输缓存器充盈度,使得在传输缓存器中没有剩余的足够缓冲空间来对至少一个视频帧的即将到来的视频帧进行编码,从而在将至少一个视频帧的视频帧编码之前丢弃即将到来的视频帧。
在操作520,在一个实施例中并如本文所述,如果在传输缓存器中没有足够的空间用于即将到来的视频帧,则在编码之前丢弃即将到来的视频帧。在一个实施例中,在操作520处的丢弃包括:使用历史视频帧数据来预测即将到来的视频帧的大小,以获得即将到来的视频帧的预测的大小;并且如果即将到来的视频帧的预测的大小超出大小值的预定范围,则在编码发生之前丢弃即将到来的视频帧。
在操作525,在一个实施例中并如本文所述,如果在传输缓存器中具有足够的空间用于即将到来的视频帧,则发送即将到来的视频帧以进行编码。在一个实施例中,在操作525中的发送包括:使用历史视频帧数据来预测即将到来的视频帧的大小,以获得预测的即将到来的视频大小;并且如果即将到来的视频帧的大小落入大小值的预定范围内,则发送即将到来的视频帧以进行编码。
(3)视频帧渲染之前的动态视频帧丢弃
一般希望以与采集视频帧的步调几乎相同的步调来渲染视频帧。这在用户体验中产生最佳可能的主观视觉质量。然而,下面的各个方面在连续的视频帧中发生很大的变化:端到端延时,包括视频预处理和/或后处理、视频编码和/或视频解码、数据包调度、网络延时等;和装置渲染能力等。如果没有合适的视频帧渲染控制,在视频帧渲染时,可能观察到视频帧跳动和/或无法接受的长时间延时,从而引起令人不满意的视频体验。
各实施例使用适应性视频帧渲染调度范例来平滑视频渲染中的跳动并同时适应性地丢弃视频帧以避免无法忍受的端到端的延时。适应性视频帧渲染调度范例使用为每个视频帧标记的视频帧采集时间戳和视频帧编码器与视频帧渲染器之间的视频帧缓存器。(时间戳附接至每个视频帧。该构思[视频帧采集后的适应性视频帧丢弃/步调]和下面描述的构思[视频帧渲染之前的动态视频帧丢弃]都基于附接至每个视频帧的时间戳。在播放视频帧时,与视频帧关联的时间戳必须跟与音频帧关联的时间戳匹配,这是为了使视频和音频相配并产生良好的观看体验)。
在适应性视频帧渲染调度范例中,每个视频帧与采集时的时间戳关联(视频帧采集时间戳)。该视频采集时间戳在整个视频帧处理的线路中始终存储,直到视频帧被渲染为止。
根据下面的规则将视频帧采集时间戳用于调度目标视频帧渲染时间调度:(1)如果视频帧迟于其调度则应该立即渲染视频帧;(2)如果视频帧早于其调度,则应该将视频帧保持以具有调整的延时;(3)如果视频帧过于迟于其调度则应该丢弃视频帧,但该丢弃不应该导致缓存器下溢(即,视频帧只在仍然具有缓存的帧时丢弃)。
通过比较下面两个时间间隔之间的时间差来确定上述目标视频帧渲染时间调度:(1)与正在考虑的当前视频帧关联的时间戳与第一次采集的视频帧(即,起始视频帧采集时间点)的时间戳之间的时间间隔;和(2)正在考虑用于渲染的当前视频帧的时间点与起始视频帧渲染时间点之间的时间间隔。
起始视频帧渲染时间点随着时间自动调整并由最新目标视频帧渲染时间调度更新。根据以下规则执行该调整和更新:每次视频帧正在被渲染时,其最终视频帧渲染调度将被认为符合其原始视频帧采集调度。
涉及渲染前的动态帧丢弃的实施例只工作在移动装置中。
如果有10FPS被发送给了第二装置(例如,接收器)而视频帧渲染器只能处理5FPS的负载。如果强制渲染器生成10FPS,将发生较大的延迟并且音频和视频会不同步。
图6示出了根据实施例的用于主动视频帧丢弃的装置605。如下所述,该装置605包括与计算机耦接的以下组件:视频帧采集时间戳记录器620;视频帧采集时间戳关联器625;时间差比较器640;和目标视频帧渲染时间点调度器655。
视频帧采集时间戳记录器620记录用于在第一装置600处首先采集的视频帧610的视频帧采集时间戳615。换言之,在第一装置600处采集的第一视频帧是为其记录了视频帧采集时间戳615的视频帧。
视频帧采集时间戳关联器625将视频帧采集时间戳615与首先采集的视频帧610关联。
时间差比较器540比较第一时间间隔与第二时间间隔之间的时间差。第一时间间隔645是与正被考虑用于渲染的当前视频帧关联的时间戳与首先采集的视频帧的时间戳之间的第一时间差。第二时间间隔650是正被考虑用于渲染的当前视频帧的时间点与首先采集的视频帧的起始视频帧渲染时间点之间的第二时间差。
目标视频帧渲染时间点调度器655根据视频帧渲染规则集660,来调度正被考虑用于渲染的当前视频帧的目标视频帧渲染时间点。该视频帧渲染规则集660包括规则665,规则665维持其中第二时间间隔被保持为与第一时间间隔成比例的目标视频帧渲染时间调度。
该视频帧渲染规则集660进一步包括:规则670,如果至少一个视频帧晚于其调度则应该立即渲染该至少一个视频帧;规则675,如果至少一个视频帧早于其调度则应该将该至少一个视频帧保持以具有调整的时延;以及规则680,如果至少一个视频帧过于迟于的其调度,则该至少一个视频帧应该被丢弃,其中所述至少一个视频帧的丢弃不应导致传输缓存器下溢。
图7示出了根据实施例的用于主动丢弃视频帧的方法的流程图。在操作705,在一个实施例中并如本文所述,记录用于在第一装置处被首先采集的视频帧的视频帧采集时间戳。在操作710,在一个实施例中并如本文所述,将视频帧采集时间戳与首先采集的视频帧关联。在操作715,在一个实施例中并如本文所述,比较第一时间间隔与第二时间间隔之间的时间差。第一时间间隔是与正被考虑用于渲染的当前视频帧关联的时间戳与被首先采集的视频帧的时间戳之间的第一时间差。第二时间间隔是正被考虑用于渲染的当前视频帧的时间点与被首先采集的视频帧的起始视频帧渲染时间点之间的第二时间差。
在操作720,在一个实施例中并如本文所述,根据视频帧渲染规则集,来调度正被考虑用于渲染的当前视频帧的目标视频帧渲染时间点。该视频帧渲染规则集包括维持其中第二间隔被保持为与第一时间间隔成比例的目标视频帧渲染时间调度。
在不同实施例中,处理器和电气组件在计算机可读和计算机可执行指令的控制下执行方法300、方法500和方法700。计算机可读和计算机可执行指令驻留在例如数据存储介质(例如,计算机可用易失性和非易失性存储器)中。然而,计算机可读或计算机可执行指令可以驻留在任意类型的计算机可读存储介质中。在一些实施例中,如图2至图10所述,由装置800和/或装置900,并且更具体地,由装置202、视频帧数据包调度控制机构410和/或装置605执行方法300、方法500和方法700。
图8和图9描述了参与视频会议的装置800和装置900。通常,视频会议允许两个或多个位置通过多路视频和音频传输而同时进行交互。
应该注意的是,装置202、视频帧数据包调度控制机构410和/或装置605与移动装置耦接并在该移动装置内工作。在一个实施例中,移动装置包括图10的装置800中所描述的组件。在装置800和装置900之间的视频会议期间的装置800的功能在下面参考图8和图9进行描述。
装置800和装置900是任意能够参与视频会议的通信装置(例如,膝上型电脑、桌上型电脑、智能电话、平板电脑、电视机等)。在不同实施例中,装置900是手持移动装置,例如智能电话、个人数字助理(PDA)等。
而且,为了清楚和简洁起见,论述将针对装置800的组件和功能来进行。然而,装置900与装置800以相同的方式工作。在一个实施例中,装置900与装置800相同并且包括与装置800相同的组件。
在一个实施例中,装置800与如本文所述的下面装置中的任意一个耦接:不同实施例中的装置202、视频数据包调度控制机构410和装置605。在不同实施例中,装置800和/或装置202、视频数据包控制机构410和/或装置605进一步与以下组件耦接:根据实施例的装置800的框图的、图10所示的显示器1010、发射器1040、视频摄像机1050、麦克风1052、扬声器1054、指令存储器1025和全球定位系统1060。
显示器810被配置为显示在装置900处采集的视频。在另一实施例中,显示器810进一步被配置为显示在装置800处采集的视频。
发射器840用于发送数据(例如,控制代码)。
视频摄像机850在装置800处采集视频。麦克风852在装置800处采集音频。扬声器854在装置800处生成可听信号。
全球定位系统860确定装置800的位置。
现在参考图8A和8B,根据一个实施例,装置800和900正在参与彼此之间的视频会议。在不同实施例中,多于两个装置参与到彼此之间的视频会议中。
视频会议期间,视频摄像机950在装置900处采集视频。例如,视频摄像机950采集装置900的用户905的视频。
视频摄像机850在装置800处采集视频。例如,视频摄像机850采集用户805的视频。应该意识到,视频摄像机850和950可以采集摄像机850和950各自观察范围内的任意物体。(参见下面参考附图9的讨论)
麦克风852在装置800处采集与所采集的视频信号对应的音频信号。同样,装置900的麦克风在装置900处采集与所采集的视频信号对应的音频信号。
在一个实施例中,在装置900处采集的视频被传输至并显示在装置800的显示器810上。例如,用户905的视频在显示器810的第一视图812上显示。而且,用户905的视频在显示器910的第二视图914上显示。
在装置800处采集的视频被传输至并显示在装置900的显示器910上。例如,用户805的视频在显示器910的第一视图912上显示。而且,用户805的视频在显示器810的第二视图814上显示。
在一个实施例中,在装置800和900处采集的音频信号合成到采集的视频中。在另一个实施例中,音频信号的传输独立于视频的传输。
如图所示,第一视图812是在显示器上显示的主要视图,第二视图814是在显示器810上显示的较小的次要视图。在不同实施例中,第一视图810和第二视图814两者的大小可调。例如,第二视图814可以被放大为主要视图而第一视图112可以被减小尺寸作为次要视图(第二视图814)。然而,第一视图812和第二视图814中的任意一个视图都可以被关闭或完全减小使其不可见。
现在参考图9,装置900的用户905正在采集位于视频摄像机950的观察范围内的桥960的图像(而不是采集其自身905的图像)。桥的图像在装置900的第二视图914、装置800的第一视图812中描绘。
本文叙述的本技术的原理、观点和实施例及其特定示例旨在涵盖其结构性和功能性的等同物。此外,其目的是这些等同物包括当前众所周知的等同物和未来研发的等同物,例如不管结构如何只要执行相同功能的任意元件。因此,本技术的范围并不旨在限制于本文所展示的和所描述的实施例。而是,本技术的范围和精神由所附权利要求体现。
本领域技术人员应该明白,本描述中提及的方法步骤可以由包括但不限于处理器、包括至少键盘、鼠标、扫描器、摄像机的输入装置、包括至少监视器、打印机的输出装置的硬件执行。在需要时将用合适的装置执行所述方法步骤。例如,可以由处理器中的决策执行单元通过执行决策算法来执行决策步骤。本领域技术人员应该明白在执行上述决策算法时该决策执行单元可以物理地或实际地存在于例如计算机处理器中。上述分析将适用于本文所述的其他步骤。
优选包括本文所述的所有元件、部件、步骤。应该明白,这些元件、部件和步骤中的任意一个可以由其他元件、部件或步骤替代或者一起删除,这对于本领域技术人员来说是显而易见的。
构思
本文提出了至少下面的构思。
构思1.一种非暂时性计算机可读存储介质,其上存储有计算机可执行指令,在计算机执行该计算机可执行指令时,使得所述计算机执行用于主动丢弃视频帧的方法,其中所述方法包括:
通过所述计算机记录在第一装置处采集的视频帧的视频帧采集时间戳;
通过所述计算机将所述视频帧采集时间戳与采集的所述视频帧关联;
通过所述计算机将所述视频帧采集时间戳与用于所述视频帧的视频帧采集目标时间戳进行比较;以及
根据所述比较,如果所述视频帧采集时间戳与所述视频帧采集目标时间戳之间的时间差超出了时间值的预定范围,则通过所述计算机丢弃所述视频帧。
构思2.根据构思1所述的非暂时性计算机可读存储介质,其中所述方法进一步包括:
根据所述比较,如果所述视频帧采集时间戳与所述视频帧采集目标时间戳之间的所述时间差落入时间值的所述预定范围内,则通过所述计算机将所述视频帧采集时间戳和所述视频帧从所述第一装置发送到第二装置。
构思3.根据构思1和2中的任一项所述的非暂时性计算机可读存储介质,其中所述方法进一步包括:
通过所述计算机更新与随后采集的视频帧关联的随后视频帧目标时间戳。
构思4.根据构思1所述的非暂时性计算机可读存储介质,其中所述方法进一步包括:
通过所述计算机估计用于随后采集的视频帧的随后视频帧采集时间戳,其中所述估计基于历史视频帧采集数据。
构思5.一种用于主动丢弃视频帧的装置,所述装置包括:
视频帧采集时间戳记录器,其与计算机耦接,所述视频帧采集时间戳记录器被配置为用于记录在第一装置处采集的视频帧的视频帧采集时间戳;
视频帧采集时间戳关联器,其与所述计算机耦接,所述视频帧采集时间戳关联器被配置为用于将所述视频帧采集时间戳与采集的所述视频帧关联;
视频帧采集时间戳比较器,其与所述计算机耦接,所述视频帧采集时间戳比较器被配置为用于将所述视频帧采集时间戳与用于所述视频帧的视频帧目标时间戳进行比较;以及
视频帧操控器,其与所述计算机耦接,所述视频帧操控器被配置为用于根据所述视频帧采集时间戳与所述视频帧目标时间戳之间的时间差来操控所述视频帧,所述视频帧操控器包括:
视频帧丢弃器,其被配置为用于,如果所述视频帧采集时间戳与所述视频帧目标时间戳之间的所述时间差超出了值的预定范围,则丢弃所述视频帧。
构思6.根据构思5所述的装置,其中所述视频帧信息发送器进一步包括:
视频帧发送器,其被配置为用于,根据所述比较,如果所述视频帧采集时间戳与所述视频帧目标时间戳之间的所述时间差落入在值的所述预定范围内,则将所述视频帧采集时间戳和所述视频帧从所述第一装置发送到第二装置。
构思7.根据构思5和6中的任一项所述的装置,进一步包括:
视频帧目标时间戳更新器,其与所述计算机耦接,所述视频帧目标时间戳更新器被配置为用于更新与随后采集的视频帧关联的随后视频帧目标时间戳。
构思8.根据构思5和6中的任一项所述的装置,进一步包括:
视频帧采集时间戳估计器,其与所述计算机耦接,所述视频帧采集时间戳估计器被配置为用于估计用于随后采集的视频帧的随后视频帧采集时间戳,其中所述估计基于历史视频帧采集数据。
构思9.一种非暂时性计算机可读存储介质,其上存储有计算机可执行指令,在计算机执行该计算机可执行指令时,使得所述计算机执行用于主动丢弃视频帧的方法,其中所述方法包括:
通过所述计算机访问计算机网络层中的视频帧数据包调度缓存器;
通过所述计算机接收所述视频帧数据包调度缓存器的视频帧数据包调度缓存器状态,其中所述视频帧数据包调度缓存器状态指示所述视频帧数据包调度缓存器接近由于网络拥塞而丢弃视频帧数据包,其中所述视频帧数据包包括至少一个视频帧;以及
通过所述计算机增加传输缓存器的传输缓存器充盈度,使得在所述传输缓存器中没有剩余足够的缓存空间用于对所述至少一个视频帧的即将到来的视频帧进行编码,从而使得在对所述至少一个视频帧的视频帧进行编码之前丢弃所述即将到来视频帧。
构思10.根据构思9所述的非暂时性计算机可读存储介质,其中所述方法进一步包括:
如果在所述传输缓存器中没有足够的空间用于所述即将到来的视频帧,则通过所述计算机在编码前丢弃所述即将到来的视频帧。
构思11.根据构思10所述的非暂时性计算机可读存储介质,其中所述通过所述计算机在编码前丢弃所述即将到来的视频帧包括:
使用历史视频帧数据来预测所述即将到来的视频帧的大小,以获得所述即将到来的视频帧的预测大小;以及
如果所述即将到来的视频帧的所述预测大小超出了大小值的预定范围,则在执行所述编码前丢弃所述即将到来的视频帧。
构思12.根据构思9所述的非暂时性计算机可读存储介质,其中所述方法进一步包括:
如果在所述传输缓存器中有足够的空间用于所述即将到来的视频帧,则通过所述计算机发送所述即将到来的视频帧以进行所述编码。
构思13.根据构思12所述的非暂时性计算机可读存储介质,其中所述通过所述计算机发送所述即将到来的视频帧以进行所述编码包括:
使用历史视频帧数据来预测所述即将到来的视频帧的大小,以获得预测的即将到来的视频帧的大小;以及
如果所述即将到来的视频帧的预测大小落入在大小值的预定范围内,则发送所述即将到来的视频帧以进行所述编码。
构思14.一种用于主动丢弃视频帧的视频帧数据包调度控制机构,所述视频帧数据包调度控制机构包括:
视频帧数据包调度缓存器访问器,其与计算机耦接,所述视频帧数据包调度缓存器访问器被配置为用于访问计算机网络层中的视频帧数据包调度缓存器;
视频帧数据包调度缓存器状态接收器,其与所述计算机耦接,所述视频帧数据包调度缓存器状态接收器被配置为用于接收所述视频帧数据包调度缓存器的视频帧数据包调度缓存器状态,其中所述视频帧数据包调度缓存器状态指示所述视频帧数据包调度缓存器接近由于网络拥塞而丢弃视频帧数据包,其中所述视频帧数据包包括至少一个视频帧;以及
传输缓存器充盈度调节器,其与所述计算机耦接,所述传输缓存器充盈度调节器被配置为用于增加传输缓存器的传输缓存器充盈度,使得在所述传输缓存器中没有剩余足够的缓存空间用于对所述至少一个视频帧的即将到来的视频帧进行编码,从而使得在对所述至少一个视频帧的视频帧进行所述编码之前丢弃所述即将到来的视频帧。
构思15.根据构思14所述的视频帧数据包调度控制机构,进一步包括:
即将到来视频帧丢弃器,其与所述计算机耦接,所述即将到来视频帧丢弃器被配置为用于,如果在所述传输缓存器中没有足够的空间用于所述即将到来的视频帧,则在编码前丢弃所述即将到来的视频帧。
构思16.根据构思15所述的视频帧数据包调度控制机构,其中所述即将到来视频帧丢弃器包括:
视频帧大小预测器,其被配置为用于使用历史视频帧数据来预测所述即将到来的视频帧的大小,以获得所述即将到来的视频帧的预测大小;和
视频帧大小值范围确定器,其被配置为用于确定所述预测大小是否超出了大小值的预定范围。
构思17.一种非暂时性计算机可读存储介质,其上存储有计算机可执行指令,在由计算机执行该计算机可执行指令时,使得所述计算机执行用于主动丢弃视频帧的方法,其中所述方法包括:
记录在第一装置处首先采集的视频帧的视频帧采集时间戳;
将所述视频帧采集时间戳与首先采集的所述视频帧关联;
比较第一时间间隔与第二时间间隔之间的时间差,所述第一时间间隔是与正被考虑用于渲染的当前视频帧关联的时间戳与首先采集的所述视频帧的时间戳之间的第一时间差,所述第二时间间隔是正被考虑用于渲染的所述当前视频帧的时间点与首先采集的所述视频帧的起始视频帧渲染时间点之间的第二时间差;以及
根据视频帧渲染规则集来调度正被考虑用于渲染的所述当前视频帧的目标视频帧渲染时间点,其中所述视频帧渲染规则集包括:
维持目标视频帧渲染时间调度,在该目标视频帧渲染时间调度中所述第二时间间隔被保持为与所述第一时间间隔成比例。
构思18.一种用于主动丢弃视频帧的装置,包括:
视频帧采集时间戳记录器,其与计算机耦接,所述视频帧采集时间戳记录器被配置为用于记录在第一装置处首先采集的视频帧的视频帧采集时间戳;
视频帧采集时间戳关联器,其与所述计算机耦接,所述视频帧采集时间戳关联器被配置为用于将所述视频帧采集时间戳与首先采集的所述视频帧关联;
时间差比较器,其与所述计算机耦接,所述时间差比较器被配置为用于比较第一时间间隔和第二时间间隔之间的时间差,所述第一时间间隔是与正被考虑用于渲染的当前视频帧关联的时间戳与首先采集的所述视频帧的时间戳之间的第一时间差,所述第二时间间隔是正被考虑用于渲染的所述当前视频帧的时间点与首先采集的所述视频帧的起始视频帧渲染时间点之间的第二时间差;以及
目标视频帧渲染时间点调度器,其与所述计算机耦接,所述目标视频帧渲染时间点调度器被配置为用于根据视频帧渲染规则集,来调度正被考虑用于渲染的所述当前视频帧的目标视频帧渲染时间点,其中所述视频帧渲染规则集包括:
维持目标视频帧渲染时间调度,在该目标视频帧渲染时间调度中所述第二时间间隔被保持为与所述第一时间间隔成比例。
构思19.根据构思18所述的装置,其中所述视频帧渲染规则包括:
如果至少一个视频帧迟于其调度,则应该立即渲染所述至少一个视频帧。
构思20.根据构思18所述的装置,其中所述视频帧渲染规则包括:
如果至少一个视频帧早于其调度,则应该使该至少一个视频帧等待以具有调整的时延。
构思21.根据构思18所述的装置,其中所述视频帧渲染规则包括:
如果至少一个视频帧过于迟于其调度,则应该丢弃该至少一个视频帧,其中所述至少一个视频帧的丢弃不应导致传输缓存器下溢。

Claims (21)

1.一种非暂时性计算机可读存储介质,其上存储有计算机可执行指令,在计算机执行该计算机可执行指令时,使得所述计算机执行用于主动丢弃视频帧的方法,其中所述方法包括:
通过所述计算机记录在第一装置处采集的视频帧的视频帧采集时间戳;
通过所述计算机将所述视频帧采集时间戳与采集的所述视频帧关联;
通过所述计算机将所述视频帧采集时间戳与所述视频帧的视频帧采集目标时间戳进行比较;以及
根据所述比较,如果所述视频帧采集时间戳与所述视频帧采集目标时间戳之间的时间差超出了时间值的预定范围,则通过所述计算机丢弃所述视频帧。
2.根据权利要求1所述的非暂时性计算机可读存储介质,其中所述方法进一步包括:
根据所述比较,如果所述视频帧采集时间戳与所述视频帧采集目标时间戳之间的所述时间差落入时间值的所述预定范围内,则通过所述计算机将所述视频帧采集时间戳和所述视频帧从所述第一装置发送到第二装置。
3.根据权利要求1所述的非暂时性计算机可读存储介质,其中所述方法进一步包括:
通过所述计算机更新与随后采集的视频帧关联的随后视频帧目标时间戳。
4.根据权利要求1所述的非暂时性计算机可读存储介质,其中所述方法进一步包括:
通过所述计算机估计随后采集的视频帧的随后视频帧采集时间戳,其中所述估计基于历史视频帧采集数据。
5.一种用于主动丢弃视频帧的装置,所述装置包括:
视频帧采集时间戳记录器,其与计算机耦接,所述视频帧采集时间戳记录器被配置为用于记录在第一装置处采集的视频帧的视频帧采集时间戳;
视频帧采集时间戳关联器,其与所述计算机耦接,所述视频帧采集时间戳关联器被配置为用于将所述视频帧采集时间戳与采集的所述视频帧关联;
视频帧采集时间戳比较器,其与所述计算机耦接,所述视频帧采集时间戳比较器被配置为用于将所述视频帧采集时间戳与所述视频帧的视频帧目标时间戳进行比较;以及
视频帧操控器,其与所述计算机耦接,所述视频帧操控器被配置为用于根据所述视频帧采集时间戳与所述视频帧目标时间戳之间的时间差来操控所述视频帧,所述视频帧操控器包括:
视频帧丢弃器,其被配置为用于,如果所述视频帧采集时间戳与所述视频帧目标时间戳之间的所述时间差超出了值的预定范围,则丢弃所述视频帧。
6.根据权利要求5所述的装置,其中所述视频帧信息发送器进一步包括:
视频帧发送器,其被配置为用于,根据所述比较,如果所述视频帧采集时间戳与所述视频帧目标时间戳之间的所述时间差落入值的所述预定范围内,则将所述视频帧采集时间戳和所述视频帧从所述第一装置发送到第二装置。
7.根据权利要求5所述的装置,进一步包括:
视频帧目标时间戳更新器,其与所述计算机耦接,所述视频帧目标时间戳更新器被配置为用于更新与随后采集的视频帧关联的随后视频帧目标时间戳。
8.根据权利要求5所述的装置,进一步包括:
视频帧采集时间戳估计器,其与所述计算机耦接,所述视频帧采集时间戳估计器被配置为用于估计随后采集的视频帧的随后视频帧采集时间戳,其中所述估计基于历史视频帧采集数据。
9.一种非暂时性计算机可读存储介质,其上存储有计算机可执行指令,在计算机执行该计算机可执行指令时,使得所述计算机执行用于主动丢弃视频帧的方法,其中所述方法包括:
通过所述计算机访问计算机网络层中的视频帧数据包调度缓存器;
通过所述计算机接收所述视频帧数据包调度缓存器的视频帧数据包调度缓存器状态,其中所述视频帧数据包调度缓存器状态指示所述视频帧数据包调度缓存器接近由于网络拥塞而丢弃视频帧数据包,其中所述视频帧数据包包括至少一个视频帧;以及
通过所述计算机增加传输缓存器的传输缓存器充盈度,使得在所述传输缓存器中没有剩余足够的缓存空间用于对所述至少一个视频帧的即将到来的视频帧进行编码,从而使得在对所述至少一个视频帧的视频帧进行编码之前丢弃所述即将到来的视频帧。
10.根据权利要求9所述的非暂时性计算机可读存储介质,其中所述方法进一步包括:
如果在所述传输缓存器中没有足够的空间用于所述即将到来的视频帧,则通过所述计算机在编码前丢弃所述即将到来的视频帧。
11.根据权利要求10所述的非暂时性计算机可读存储介质,其中所述通过所述计算机在编码前丢弃所述即将到来的视频帧包括:
使用历史视频帧数据来预测所述即将到来的视频帧的大小,以获得所述即将到来的视频帧的预测大小;以及
如果所述即将到来的视频帧的所述预测大小超出了大小值的预定范围,则在执行所述编码前丢弃所述即将到来的视频帧。
12.根据权利要求9所述的非暂时性计算机可读存储介质,其中所述方法进一步包括:
如果在所述传输缓存器中有足够的空间用于所述即将到来的视频帧,则通过所述计算机发送所述即将到来的视频帧以进行所述编码。
13.根据权利要求12所述的非暂时性计算机可读存储介质,其中所述通过所述计算机发送所述即将到来的视频帧以进行所述编码包括:
使用历史视频帧数据来预测所述即将到来的视频帧的大小,以获得预测的即将到来的视频帧的大小;以及
如果所述即将到来的视频帧的预测大小落入大小值的预定范围内,则发送所述即将到来的视频帧以进行所述编码。
14.一种用于主动丢弃视频帧的视频帧数据包调度控制机构,所述视频帧数据包调度控制机构包括:
视频帧数据包调度缓存器访问器,其与计算机耦接,所述视频帧数据包调度缓存器访问器被配置为用于访问计算机网络层中的视频帧数据包调度缓存器;
视频帧数据包调度缓存器状态接收器,其与所述计算机耦接,所述视频帧数据包调度缓存器状态接收器被配置为用于接收所述视频帧数据包调度缓存器的视频帧数据包调度缓存器状态,其中所述视频帧数据包调度缓存器状态指示所述视频帧数据包调度缓存器接近由于网络拥塞而丢弃视频帧数据包,其中所述视频帧数据包包括至少一个视频帧;以及
传输缓存器充盈度调节器,其与所述计算机耦接,所述传输缓存器充盈度调节器被配置为用于增加传输缓存器的传输缓存器充盈度,使得在所述传输缓存器中没有剩余足够的缓存空间用于对所述至少一个视频帧的即将到来的视频帧进行编码,从而使得在对所述至少一个视频帧的视频帧进行所述编码之前丢弃所述即将到来的视频帧。
15.根据权利要求14所述的视频帧数据包调度控制机构,进一步包括:
即将到来视频帧丢弃器,其与所述计算机耦接,所述即将到来视频帧丢弃器被配置为用于,如果在所述传输缓存器中没有足够的空间用于所述即将到来的视频帧,则在编码前丢弃所述即将到来的视频帧。
16.根据权利要求15所述的视频帧数据包调度控制机构,其中所述即将到来视频帧丢弃器包括:
视频帧大小预测器,其被配置为用于使用历史视频帧数据来预测所述即将到来的视频帧的大小,以获得所述即将到来的视频帧的预测大小;和
视频帧大小值范围确定器,其被配置为用于确定所述预测大小是否超出了大小值的预定范围。
17.一种非暂时性计算机可读存储介质,其上存储有计算机可执行指令,在由计算机执行该计算机可执行指令时,使得所述计算机执行用于主动丢弃视频帧的方法,其中所述方法包括:
记录在第一装置处首先采集的视频帧的视频帧采集时间戳;
将所述视频帧采集时间戳与首先采集的所述视频帧关联;
比较第一时间间隔与第二时间间隔之间的时间差,所述第一时间间隔是与正被考虑用于渲染的当前视频帧关联的时间戳与首先采集的所述视频帧的时间戳之间的第一时间差,所述第二时间间隔是正被考虑用于渲染的所述当前视频帧的时间点与首先采集的所述视频帧的起始视频帧渲染时间点之间的第二时间差;以及
根据视频帧渲染规则集来调度正被考虑用于渲染的所述当前视频帧的目标视频帧渲染时间点,其中所述视频帧渲染规则集包括:
维持目标视频帧渲染时间调度,在该目标视频帧渲染时间调度中所述第二时间间隔被保持为与所述第一时间间隔成比例。
18.一种用于主动丢弃视频帧的装置,包括:
视频帧采集时间戳记录器,其与计算机耦接,所述视频帧采集时间戳记录器被配置为用于记录在第一装置处首先采集的视频帧的视频帧采集时间戳;
视频帧采集时间戳关联器,其与所述计算机耦接,所述视频帧采集时间戳关联器被配置为用于将所述视频帧采集时间戳与首先采集的所述视频帧关联;
时间差比较器,其与所述计算机耦接,所述时间差比较器被配置为用于比较第一时间间隔和第二时间间隔之间的时间差,所述第一时间间隔是与正被考虑用于渲染的当前视频帧关联的时间戳与首先采集的所述视频帧的时间戳之间的第一时间差,所述第二时间间隔是正被考虑用于渲染的所述当前视频帧的时间点与首先采集的所述视频帧的起始视频帧渲染时间点之间的第二时间差;以及
目标视频帧渲染时间点调度器,其与所述计算机耦接,所述目标视频帧渲染时间点调度器被配置为用于根据视频帧渲染规则集,来调度正被考虑用于渲染的所述当前视频帧的目标视频帧渲染时间点,其中所述视频帧渲染规则集包括:
维持目标视频帧渲染时间调度,在该目标视频帧渲染时间调度中所述第二时间间隔被保持为与所述第一时间间隔成比例。
19.根据权利要求18所述的装置,其中所述视频帧渲染规则包括:
如果至少一个视频帧迟于其调度,则应该立即渲染所述至少一个视频帧。
20.根据权利要求18所述的装置,其中所述视频帧渲染规则包括:
如果至少一个视频帧早于其调度,则应该使所述至少一个视频帧等待以具有调整的时延。
21.根据权利要求18所述的装置,其中所述视频帧渲染规则包括:
如果至少一个视频帧过于迟于其调度,则应该丢弃所述至少一个视频帧,其中所述至少一个视频帧的丢弃不应导致传输缓存器下溢。
CN201380046899.4A 2012-10-11 2013-10-03 主动式视频帧丢弃 Pending CN104620595A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/649,863 US20140104493A1 (en) 2012-10-11 2012-10-11 Proactive video frame dropping for hardware and network variance
US13/649,863 2012-10-11
PCT/US2013/063326 WO2014058713A1 (en) 2012-10-11 2013-10-03 Proactive video frame dropping

Publications (1)

Publication Number Publication Date
CN104620595A true CN104620595A (zh) 2015-05-13

Family

ID=50475031

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380046899.4A Pending CN104620595A (zh) 2012-10-11 2013-10-03 主动式视频帧丢弃

Country Status (4)

Country Link
US (1) US20140104493A1 (zh)
JP (1) JP2015536594A (zh)
CN (1) CN104620595A (zh)
WO (1) WO2014058713A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106357896A (zh) * 2016-08-31 2017-01-25 广东欧珀移动通信有限公司 一种掉帧信息的输出方法、装置及移动终端
CN106658176A (zh) * 2016-11-07 2017-05-10 广州视源电子科技股份有限公司 远程视频显示方法及系统
CN107566890A (zh) * 2017-09-15 2018-01-09 深圳国微技术有限公司 处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质
CN109327662A (zh) * 2017-07-31 2019-02-12 合网络技术(北京)有限公司 视频拼接方法及装置
CN110177308A (zh) * 2019-04-15 2019-08-27 广州虎牙信息科技有限公司 移动终端及其录屏中的音视频丢帧方法、计算机存储介质
CN110740380A (zh) * 2019-10-16 2020-01-31 腾讯科技(深圳)有限公司 视频处理方法和装置、存储介质及电子装置
WO2020192066A1 (zh) * 2019-03-26 2020-10-01 歌尔股份有限公司 视频录制方法、装置、网络摄像器及存储介质
CN112087627A (zh) * 2020-08-04 2020-12-15 西安万像电子科技有限公司 图像的编码控制方法、装置、设备及存储介质
CN113254120A (zh) * 2021-04-02 2021-08-13 荣耀终端有限公司 数据处理方法和相关装置
CN113347488A (zh) * 2021-08-04 2021-09-03 腾讯科技(深圳)有限公司 视频渲染方法、装置、设备及存储介质
WO2022142481A1 (zh) * 2020-12-31 2022-07-07 杭州星犀科技有限公司 音视频数据的处理方法、直播装置、电子设备和存储介质
CN116761036A (zh) * 2023-08-21 2023-09-15 北京中关村科金技术有限公司 视频编码方法及装置、电子设备、计算机可读存储介质

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9432556B2 (en) * 2015-01-05 2016-08-30 Qualcomm Incorporated Devices and methods for facilitating frame dropping in remote display applications
US10582258B2 (en) * 2015-12-26 2020-03-03 Intel Corporation Method and system of rendering late or early audio-video frames
US10904591B2 (en) * 2016-12-28 2021-01-26 Google Llc Scheme for zero-copy adaptive bitrate video streaming
US20190102223A1 (en) * 2017-09-29 2019-04-04 Niall Power System, Apparatus And Method For Real-Time Activated Scheduling In A Queue Management Device
CN110572695A (zh) * 2019-08-07 2019-12-13 苏州科达科技股份有限公司 媒体数据的编码、解码方法及电子设备
CN111385637B (zh) * 2020-03-18 2022-05-20 Oppo广东移动通信有限公司 媒体数据编码方法、装置及电子设备
CN115250357B (zh) * 2021-04-26 2024-04-12 海信集团控股股份有限公司 终端设备、视频处理方法和电子设备
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization
CN113840110B (zh) * 2021-11-23 2022-06-28 北京亮亮视野科技有限公司 面向工作流程的视频处理方法、装置、电子设备及存储介质
CN115190325B (zh) * 2022-07-01 2023-09-05 广州市百果园信息技术有限公司 丢帧控制方法、装置、设备、存储介质及程序产品

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6262776B1 (en) * 1996-12-13 2001-07-17 Microsoft Corporation System and method for maintaining synchronization between audio and video
US6993081B1 (en) * 1999-11-23 2006-01-31 International Business Machines Corporation Seamless splicing/spot-insertion for MPEG-2 digital video/audio stream
US7043651B2 (en) * 2001-09-18 2006-05-09 Nortel Networks Limited Technique for synchronizing clocks in a network
US7787539B2 (en) * 2002-07-17 2010-08-31 Broadcom Corporation Decoding and presentation time stamps for MPEG-4 advanced video coding
US7609763B2 (en) * 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
JP2005322995A (ja) * 2004-05-06 2005-11-17 Nippon Telegr & Teleph Corp <Ntt> リアルタイム映像転送におけるバッファ制御方法、送信端末、受信端末、映像配信システム、およびプログラム
US7434154B2 (en) * 2005-01-07 2008-10-07 Dell Products L.P. Systems and methods for synchronizing media rendering
US8379735B2 (en) * 2006-05-15 2013-02-19 Microsoft Corporation Automatic video glitch detection and audio-video synchronization assessment
WO2008070987A1 (en) * 2006-12-12 2008-06-19 Vantrix Corporation An improved video rate control for video coding standards
US8181217B2 (en) * 2007-12-27 2012-05-15 Microsoft Corporation Monitoring presentation timestamps
US20100039558A1 (en) * 2008-08-12 2010-02-18 Richard Detore Real time high definition caption correction
EP2351372B1 (en) * 2008-10-28 2020-08-05 Cisco Technology, Inc. Stream synchronization for live video encoding
US7830908B2 (en) * 2008-11-03 2010-11-09 Cisco Technologies, Inc. Systems and methods of reducing delay in decoding
EP2293554A1 (en) * 2009-07-27 2011-03-09 Trident Microsystems (Far East) Ltd. Frame-rate conversion
US20110064129A1 (en) * 2009-09-16 2011-03-17 Broadcom Corporation Video capture and generation at variable frame rates
CN102065214A (zh) * 2009-11-12 2011-05-18 鸿富锦精密工业(深圳)有限公司 影像处理系统及方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106357896A (zh) * 2016-08-31 2017-01-25 广东欧珀移动通信有限公司 一种掉帧信息的输出方法、装置及移动终端
CN106658176A (zh) * 2016-11-07 2017-05-10 广州视源电子科技股份有限公司 远程视频显示方法及系统
CN109327662A (zh) * 2017-07-31 2019-02-12 合网络技术(北京)有限公司 视频拼接方法及装置
CN109327662B (zh) * 2017-07-31 2021-02-05 阿里巴巴(中国)有限公司 视频拼接方法及装置
CN107566890A (zh) * 2017-09-15 2018-01-09 深圳国微技术有限公司 处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质
CN107566890B (zh) * 2017-09-15 2020-05-22 深圳国微技术有限公司 处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质
US11412172B2 (en) 2019-03-26 2022-08-09 Goertek Inc. Video recording method and device, Internet Protocol camera and storage medium
WO2020192066A1 (zh) * 2019-03-26 2020-10-01 歌尔股份有限公司 视频录制方法、装置、网络摄像器及存储介质
CN110177308A (zh) * 2019-04-15 2019-08-27 广州虎牙信息科技有限公司 移动终端及其录屏中的音视频丢帧方法、计算机存储介质
CN110740380A (zh) * 2019-10-16 2020-01-31 腾讯科技(深圳)有限公司 视频处理方法和装置、存储介质及电子装置
CN112087627A (zh) * 2020-08-04 2020-12-15 西安万像电子科技有限公司 图像的编码控制方法、装置、设备及存储介质
WO2022142481A1 (zh) * 2020-12-31 2022-07-07 杭州星犀科技有限公司 音视频数据的处理方法、直播装置、电子设备和存储介质
CN113254120A (zh) * 2021-04-02 2021-08-13 荣耀终端有限公司 数据处理方法和相关装置
CN113254120B (zh) * 2021-04-02 2022-11-01 荣耀终端有限公司 数据处理方法和相关装置
CN113347488A (zh) * 2021-08-04 2021-09-03 腾讯科技(深圳)有限公司 视频渲染方法、装置、设备及存储介质
CN116761036A (zh) * 2023-08-21 2023-09-15 北京中关村科金技术有限公司 视频编码方法及装置、电子设备、计算机可读存储介质
CN116761036B (zh) * 2023-08-21 2023-11-14 北京中关村科金技术有限公司 视频编码方法及装置、电子设备、计算机可读存储介质

Also Published As

Publication number Publication date
JP2015536594A (ja) 2015-12-21
WO2014058713A1 (en) 2014-04-17
US20140104493A1 (en) 2014-04-17

Similar Documents

Publication Publication Date Title
CN104620595A (zh) 主动式视频帧丢弃
KR102324326B1 (ko) 상이한 인코딩 파라미터를 이용해 인코딩되는 복수의 인코딩 스트리밍
US8711929B2 (en) Network-based dynamic encoding
CN103650509B (zh) 基于照相机和背景运动的参考帧缓冲区的自适应配置
US9479807B1 (en) Gateway-based video client-proxy sub-system for managed delivery of A/V content using fragmented method in a stateful system
US7652993B2 (en) Multi-stream pro-active rate adaptation for robust video transmission
US20130304934A1 (en) Methods and systems for controlling quality of a media session
Yahia et al. HTTP/2-based frame discarding for low-latency adaptive video streaming
US20140181266A1 (en) System, streaming media optimizer and methods for use therewith
CN112953922B (zh) 一种自适应流媒体控制方法、系统、计算机设备及应用
CN109729437B (zh) 流媒体自适应传输方法、终端和系统
US8861597B2 (en) Distributed channel time allocation for video streaming over wireless networks
WO2017214510A1 (en) Transcoding using time stamps
US20080084821A1 (en) Method and devices for adapting the transmission rate of a data stream when there is interference
JP2011019068A (ja) 品質制御装置、品質制御システム、品質制御方法およびプログラム
CN101771865B (zh) 影音控制响应及频宽调适方法、服务器
JP2010098441A (ja) 映像データ送信装置、映像配信システム、映像品質評価方法及びプログラム
JP2016506206A (ja) エラー制御のための再送およびフレーム同期
CN102651788A (zh) 图片传输装置、图片传输方法和程序
WO2014066975A1 (en) Methods and systems for controlling quality of a media session
Li et al. A joint optimization method of coding and transmission for conversational HD video service
EP3123730B1 (en) Enhanced distortion signaling for mmt assets and isobmff with improved mmt qos descriptor having multiple qoe operating points
KR20130122117A (ko) 실시간 동영상 전송 방법 및 장치
KR101795958B1 (ko) 실시간 네트워크 카메라에서의 적응적 영상 제공 방법, 장치 및 사용자 단말기
Fernandez et al. An Interactive Video Streaming Architecture Featuring Bitrate Adaptation.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150513