CN101636983A - 减少视频传输时的分组丢失的影响 - Google Patents
减少视频传输时的分组丢失的影响 Download PDFInfo
- Publication number
- CN101636983A CN101636983A CN200880007934A CN200880007934A CN101636983A CN 101636983 A CN101636983 A CN 101636983A CN 200880007934 A CN200880007934 A CN 200880007934A CN 200880007934 A CN200880007934 A CN 200880007934A CN 101636983 A CN101636983 A CN 101636983A
- Authority
- CN
- China
- Prior art keywords
- end points
- data
- frame
- error correction
- protection
- 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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0009—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/007—Unequal error protection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/65—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Quality & Reliability (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
一种纠错***基于帧间依赖性、帧大小、分组丢失概率、历史分组丢失模式、中央处理单元(CPU)负载和可用网络带宽来确定将施加到发送端点发送到接收端点的视频数据帧的纠错保护级别,其中纠错保护级别的施加基于所预测的分组丢失影响以及帧的重要性。在接收端点处,当对于特定帧检测到分组丢失时,该接收端点将尝试使用连同视频数据一起接收到的保护分组来恢复该帧。
Description
背景
诸如因特网等的计算机网络已彻底改变了人们获取信息的方式。例如,现代计算机网络支持使用电子邮件通信以便在能够访问该计算机网络的人之间传输信息。正在开发越来越多的能够通过网络进行具有实时成分的数据交换的***。例如,视频流可以在通过网络连接的计算机之间传输以使得网络条件可影响信息如何被呈现给用户。数据通常通过计算机网络来以分组传输。不幸的是,当正通过计算机网络传送的一个或多个分组无法到达其目的地时发生分组丢失。多个因素可导致分组丢失:过度利用的网络、信号劣化、有故障的硬件等。当分组丢失发生时,用户就可能注意到性能问题。例如,在视频流的上下文中,分组丢失可导致在视频帧序列中可见的“伪像”或失真。
网络分组丢失是常见的。它发生在公共因特网、DSL、电缆、无限局域网(WLAN)、3G无线以及许多其他种类的网络上。因特网上的所估计的分组丢失率是5%,而某些无线网络可具有超过10%的分组丢失率。诸如传输控制协议(TCP)等可靠的网络传输协议将在传输介质丢弃分组时重发该分组,由此保证分组传递。诸如不可靠数据报协议(UDP)等不可靠协议不保证分组送达并且不重发丢弃的分组。重发分组花费时间且消耗额外的带宽。由于视频通信的实时特性,视频信号通常使用不可靠协议来发送并因此将遭受网络分组丢失。
对于实时视频通信,发送端点有时以每秒20到30帧或更多的速率跨网络将视频帧发送到接收端点。帧基于网络所允许的最大传输单元(MTU)(例如,对于以太网是1500字节)来被分成各分组。视频帧可足够小以适合在一个分组中,或足够大而需要许多分组。对于某些视频压缩器/解压器(编解码器),如果丢弃帧中的分组中的任一个,则接收端点由于遗漏数据而必须丢弃整个帧。
另外,编解码器通常使用依赖性结构来减少发送端点通过网络来传送的视频数据量。例如,被称为帧内(I)帧的帧基于其内容来完全编码。后续帧基于与先前帧的增量(差信号)来压缩。这些帧通常被称为预测(P)帧。某些编解码器引入甚至更复杂的依赖性结构。例如,编解码器可偶然发送被称为超预测帧(SP帧)的特殊P帧,与常规P帧形成对比,该SP帧不依赖直接前导P帧或I帧而依赖较老的SP帧或I帧。这些SP帧的内容通常较不与参考帧相关并由此携带更多视频数据。另一种类型的帧是包含与先前和后续帧两者的增量的中间或双向(B)帧。这些类型的帧间依赖性减少了发送端点通过网络来传送的数据量,但这些依赖性也夸大了网络分组丢失的影响。例如,如果丢弃I帧,则接收端点将遗漏对于依赖该I帧的所有后续P帧的数据,并且用户将看见视频伪像直到下一I帧到达。如果网络分组丢失是1%,则10个分组的I帧根据以下公式具有10%机率被丢弃:
PI=1-(1-P)N
其中PI是丢失I帧的概率,P是丢失任何分组的概率,而N是帧中的分组数量。如果I帧具有10%机率被丢弃,则依赖该I帧的后续帧具有10%机率具有视频伪像,即使所有后续帧都正确地到达接收端点。
一种减少分组丢失的影响的传统方法是前向纠错(FEC)。前向纠错(FEC)是用于数据传输的差错控制***,藉此发送端点向其消息添加允许接收端点检测并纠正差错(在某一限度内)而无需向发送端点要求附加数据的冗余数据。前向纠错的优点在于通常可避免数据重传(以平均较高的带宽要求为代价)并因此在诸如在传输实时视频数据时等其中重传是相对昂贵的或不可能的情形中应用。不同的FEC算法具有不同的带宽要求并且提供针对丢失分组的不同保护级别,因此不同的FEC算法适用于不同的条件。
不幸的是,发送端点难以确定哪一个FEC算法将提供对于特定网络连接的最佳视频体验。发送端点通常还具有使得对FEC算法的高效选择有利的带宽和计算资源限制。另外,许多发送端点负责将视频数据同时发送到许多不同的接收端点,从而使得针对每一个端点执行的确定可能在发送端点处的可用资源方面变得非常昂贵。
概述
提供了一种被称为纠错***的用于减少分组丢失对视频传输的的影响的方法和***。该纠错***基于帧间依赖性、帧大小、分组丢失概率、历史分组丢失模式、中央处理单元(CPU)负载和可用网络带宽来确定将施加到发送端点发送到接收端点的视频数据帧的纠错保护级别,其中该纠错保护级别的施加基于所预测的分组丢失影响以及帧的重要性。该纠错***使用所确定的保护级别来产生保护分组。发送端点将保护分组连同包含视频帧的分组一起传送到接收端点。在接收端点处,当对于特定帧检测到分组丢失时,该接收端点将尝试基于由给定保护分组使用的保护编码方案,使用所接收到的任何保护分组来恢复该帧。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
附图简述
图1是示出一个实施例中的纠错***的组件的框图。
图2A和2B示出一个实施例中的视频流中的示例性帧序列。
图3示出一个实施例中的其中发送端点将视频数据传送到接收端点的典型的联网环境。
图4示出一个实施例中的用于将视频数据发送到多个接收端点的联网环境。
图5是示出一个实施例中的***的传送数据组件的处理的流程图。
图6是示出一个实施例中的具有多个接收端点的视频会议环境中的***的传送数据组件的处理的流程图。
详细描述
概览
提供了一种被称为纠错***的用于减少分组丢失对视频传输的影响的方法和***。该纠错***基于帧间依赖性、帧大小、分组丢失概率、历史分组丢失模式、中央处理单元(CPU)负载和可用网络带宽来确定将施加到发送端点发送到接收端点的视频数据帧的纠错保护级别,该纠错保护级别的施加基于所预测的分组丢失影响以及帧的重要性。发送端点可对帧施加范围从零(没有保护)到N(大于零的任意数字)的保护级别,其中每一个后续数字涉及更高的保护级别。通常,每一个后续保护级别包括较大的恢复数据并消耗额外的计算资源以创建该恢复数据。用于预测分组丢失对视频质量的影响的数学模型在2006年10月31日提交的题为“Dynamic Modification of Video Properties(对视频特性的动态修正)”的美国专利申请第11/591,297号中描述,该申请通过引用结合于此。通过使用该模型和其他数学模型,纠错***可确定将提供目标分组丢失水平的保护级别。
该纠错***将所选保护级别传递给诸如Turbo编解码器或Reed-Solomon编解码器等信道保护压缩解压器以产生所选级别的保护分组。发送端点将保护分组连同包含视频帧的分组一起传送到接收端点。例如,发送端点可将保护分组附加在视频帧分组之后或者可将该保护分组作为单独净荷在不同的连接上发送。在接收端点处,当对于特定帧检测到分组丢失时,该接收端点将尝试基于由给定保护分组使用的保护编码方案,使用所接收到的任何保护分组来恢复该帧。由此,该纠错***提供了基于发送端点和接收端点之间的连接的特性来选择适当的保护级别的高效方式。
该纠错***导致接收到的分组的效率提升。例如,在现有***中,服务器可以按300kbps的速率发送数据,但由于丢失的I帧数,用户所察觉到的实际接收速率可能仅等于128kbps视频速率。通过使用该纠错***,丢失或到达时已被破坏的更多I帧由接收端点来恢复。因此,以300kbps的速率发送的服务器可产生270kbps或甚至更高的接收速率(因为可能仍然存在较不重要的帧的某些分组丢失)。因此,使用该纠错***的效率高得多。这导致对于发送端点的带宽成本节省、CPU节省以及接收端点的用户的改进的体验。
以下描述阐述了可在单个发送端点和接收端点之间应用的分组丢失减少技术。然后,这些和其他技术在其中单个发送端点提供供发送到许多接收端点的数据的视频会议服务器的上下文中描述。最后,描述用于执行这些技术的分组格式。
单链路技术
如上所述,存在范围从零(没有保护)到N(大于零的任意数字)的若干可能的保护级别,其中每一个后续数字涉及更高的保护级别。本领域的普通技术人员将会认识到该纠错***可应用许多不同类型的纠错以产生特定保护级别,这些纠错诸如异或(XOR)逻辑运算、Reed-Solomon算法、Viterbi算法等。每一保护级别在大小和计算强度两方面都稍微更加昂贵以计算保护数据。因此期望针对任何特定一组条件挑选最优保护级别。所需保护级别可基于帧大小和历史分组丢失百分比来确定。较大的帧大小具有较高的携带该帧的数据的至少一个分组将丢失的概率,并因此需要较高的保护级别。类似地,随着历史分组丢失水平上升,需要较高的保护级别来向接收端点提供足够的信息以恢复丢失分组。
在某些实施例中,接收端点向发送端点提供历史分组丢失的指示。视频数据通常通过不确认分组的不可靠链路来发送。然而,通常存在反向信道,接收端点通过该反向信道周期性地(例如,每五秒钟)与发送端点进行通信以指示历史分组丢失。一种确定分组丢失的方式是通过将序列号指派给由发送端点发送的每一个分组。接收端点然后通过对多少序列号未到达进行计数来确定分组丢失。
在某些实施例中,纠错***试图将帧拆分成均匀大小的分组。对于某些纠错算法,保护分组必须与视频帧的最大分组一样大。因此,通过将帧数据均匀地分布在分组上,纠错***减小了保护分组的大小。纠错分组可跟随视频数据并且具有基于保护级别的数量。例如,如果纠错***施加保护级别一,则一个纠错分组将跟随视频数据。如果纠错***施加保护级别二,则两个分组将跟随视频数据,以此类推。减小保护分组的大小还节省了带宽。
在某些实施例中,如果视频帧的最后一个分组比其他分组短,则纠错***向该最后一个分组添加填充物以使其具有类似于该视频帧的其他分组的大小。例如,10,000字节的帧可被拆分成七个1,500字节的分组,其中最后一个分组仅仅是1,000字节。纠错将向该最后一个分组添加5,00字节的填充物以使其大小与其他分组中的每一个相同。在某些实施例中,为了节省带宽,纠错***不将填充物从发送端点传送到接收端点。相反,接收端点基于前导分组的大小或基于最后一个分组的首部中的信息来添加填充物。例如,如果接收端点接收到具有指示总分组大小应该是1,500字节的首部的1,000字节的分组,则该接收端点将添加5,00字节的填充物。填充字节可包含诸如0等预先选择的值。
在某些实施例中,纠错***预先计算在保护分组中发送的保护数据。执行纠错计算可能是昂贵的,并且预先计算将昂贵的处理偏移到端点较不忙碌的时间。例如,对于任何给定帧大小和分组丢失水平,端点甚至能够在发送端点连接到接收端点之前计算要使用的适当的保护级别。发送端点可从该信息中构造出包含保护级别与预期分组丢失水平和帧大小之间的映射的表。然后,在传输期间,发送端点可基于特定帧大小和历史分组丢失水平来查找要使用的适当保护级别。本质上,差错保护级别变成自适应且随时间变化的。
在某些实施例中,纠错***主要对I帧和SP帧施加保护。如上所述,发送端点可使用依赖性结构来发送视频数据以使得许多其他帧(例如,P和B帧)依赖I和SP帧。如果P帧丢失,则在视频中可能只存在几毫秒的间隙(例如,如果帧率是30帧/秒,则间隙为33毫秒,或者如果帧率是15帧/秒,则间隙为66毫秒),而如果I帧丢失,则可能丢失一秒钟或更多的视频。即使P和B帧中的某一些将到达,但如果没有该遗漏的I帧,将没有足够的信息来在该时间段期间维护连贯的视频流。各实验已示出用户将察觉到比例行的小丢失更糟糕的一个大丢失。因此,丢失I或SP帧将对在接收端点处显示的视频的质量具有更多可注意到的影响。I和SP帧由于其较大的大小以及将其从发送端点传送到接收端点所需的相应增加的分组数而也更有可能丢失。因此,纠错***可向I和SP帧提供增加的保护。
在某些实施例中,纠错***不基于视频数据的特性来添加保护分组。例如,如果帧大小太小或者所需比特率太低,则添加保护分组的开销可能太高。事实上,对于小的帧大小,由添加保护导致的增加的分组计数可使得分组丢失的可能性更大。类似地,如果所需比特率太低(例如,50kbps),则向数据流添加保护分组的开销可足够大(例如,8kbps)而使得更值得采用其他保护方法(诸如重传分组等)。
会议
视频会议服务器通常从发送端点接收供广播至许多接收端点的视频数据。例如,演示用户可给出视频会议服务器转发给许多接收端点的演示,其中每一个端点表示该会议的参与者。在该环境中,在发送端点和视频会议服务器之间,以及在视频会议服务器和任何接收端点之间可能发生分组丢失。为了缩放良好,视频会议服务器通常被设计成减少对于每一个端点的计算开销。视频会议服务器为每一个端点花费的甚至少量的计算开销也可能在服务器向数千个接收端点发送数据时变成显著的负担。用于处理该环境中的分组丢失以及用于优化由视频会议服务器执行的处理的其他技术将在以下描述。
在某些实施例中,纠错***不单独为每一下行链路确定要使用的保护级别。相反,可对每一下行链路执行初始计算,并且可选择最差的下行链路以便选择将用于所有下行链路的纠错级别。或者,下行链路可被分类在哪些下行链路需要级别一保护,哪些下行链路需要级别二保护等的桶中。然后只形成一次纠错分组,并且然后为每一下行链路添加正确数量的分组。例如,如果特定下行链路具有保护级别一,则将只向该下行链路添加第一个纠错分组。另一种可能的优化是可将最差情况下行链路通知给发送者。在该示例中,如果该最差下行链路需要保护级别三,则发送者将负责随每一视频帧发送三个纠错分组。视频会议服务器然后可一起转发每一下行链路所需要的那样多的纠错分组。通过这样做,纠错分组的计算可被卸载到发送者并且视频会议服务器可在其确定较低的保护级别对于特定下行链路是可接受的情况下从比特流中移除差错保护分组。
在某些实施例中,发送端点分阶段施加保护。通过使用分阶段的保护级别,发送端点发送具有第一保护级别的第一保护分组,以及处于更高保护级别的一个或多个附加保护分组。当发生分组丢失时,接收端点可基于分组丢失程度和所需保护级别来选择要使用的保护分组以恢复丢失的分组。分阶段通过创建一次保护分组并按需对许多接收端点应用保护分组来减少由视频会议服务器执行的处理。例如,接收端点可将一个保护分组发送到具有低分组丢失率的接收端点,并且将相同的保护分组加上附加保护分组发送到具有高分组丢失率的接收端点。具有高分组丢失率的接收端点然后可使用这些附加保护分组来执行更大量的差错恢复。
在某些实施例中,视频会议服务器向发送端点发送指示最差情况接收端点的分组丢失的分组丢失报告。基于该分组丢失报告,发送者基于最差情况接收端点来以一保护级别保护帧并包括多个保护分组。在接收到视频数据后,视频会议服务器可基于关于每一个接收端点所经历的历史分组丢失的信息而不将所有保护分组转发给所有接收端点。例如,一个接收端点可能需要单个保护分组而另一个接收端点可能需要两个保护分组以实现目标有效分组丢失水平。发送端点可提供两个保护分组,但视频会议服务器可仅将第一个保护分组发送到一个端点而将两个保护分组发送到另一个端点。这同时向两个端点提供它们需要的保护级别,同时减少了视频会议服务器所消耗的带宽和计算开销。
在某些实施例中,视频会议服务器与发送者共享产生保护分组的负担。例如,发送者可提供处于第一级别的保护分组,并且视频会议服务器可负责为需要额外保护(例如,基于历史分组丢失)的那些接收端点添加额外的保护级别。本领域的普通技术人员将会认识到许多不同的方法都可用于在发送端点和视频会议服务器之间分摊计算开销。
在某些实施例中,纠错***在周期性的基础上动态地确定对于特定接收端点使用的保护级别。例如,视频会议服务器可从每一个接收端点接收周期性(例如,每五秒钟)的分组丢失报告,并且该视频会服务器可基于该报告来选择对所传送的数据施加的保护级别。特定连接的条件可随时间而改变或者正在发送的数据的类型(例如,帧大小)可改变以使得不同的保护级别更加有效。
分组格式
以下描述描述了一种用于实现此处所描述的纠错技术的分组格式。典型的分组包含格式自适应首部和净荷。该首部包含描述分组的净荷并且描述该分组如何与通过网络发送的其他分组相关的信息。该首部可包含指定分组特性的一系列标志。净荷包含视频帧的视频数据以及保护帧的纠错数据。
视频帧:
保护帧:
标志:
F 第一个分组
H 存在序列首部
K 关键帧
O 固定为一
L 最后一个分组的标记位
S SP 帧
C 高速缓存的帧
M 模式
P 净荷类型:1=元数据,0=视频
Ver 净荷首部版本
H-FC 高位帧计数
H-RF 高位参考计数
M 扩展模式
FC 帧计数
RFC 参考帧计数
H分组号以 分组数为单位的高位帧大小
L分组号以 分组数为单位的低位帧大小
偏移量 最后一个内容分组对于当前FEC分组的偏移量
H-L分组大小 以字节为单位的最后一个帧分组大小
L-L分组大小 以字节为单位的最后一个帧分组大小
在该示例分组格式中,标志V指定分组包含视频数据还是保护数据(例如,FEC)。对于视频分组,P=0,而对于保护分组,P=1。分组包含指示该分组是携带特定帧的数据的第一个(F=1)分组还是最后一个(L=1)分组的标志。分组还包含指示如上所述的可由接收端点用来添加适当的填充物的最后一个分组的大小的成员(例如,H-L分组大小和L-L分组大小)。分组还包含担当接收端点可用于确定是否遗漏任何分组的序列号的成员(例如,H分组号和L分组号)。参考帧号成员标识当前编码的帧依赖其以便解码的帧,诸如参考I帧的P帧等。分组还包含关于保护分组的成员偏移量,其指示当前分组是一系列多个保护分组中的哪一个保护分组。该成员因为保护分组也可能丢失而使用,并且如果如果保护分组以偏移量二到达(指示最后一个内容分组在两个分组之前),则接收端点可确定第一个保护分组已丢失。在某些实施例中,版本信息用于允许传统客户机与较新版本的发送端点或视频会议服务器互操作。
附图
以下描述示出了参考各附图描述的实施例的细节。
图1是示出一个实施例中的纠错***的组件的框图。纠错***100包括产生视频数据组件110、分组化视频数据组件120、确定保护级别组件130、创建纠错数据组件140、分组化纠错数据组件150、传送数据组件160、接收数据组件170以及恢复丢失数据组件180。产生视频数据组件110诸如通过从视频输入设备(例如,摄像头)中捕捉数字信号或回放包含视频数据的文件来产生视频数据。分组化视频数据组件120将视频数据分成适于通过网络来传输的分组。如上所述,分组可包含描述所传送的数据并由接收者用来作出关于所接收到的数据的各种判定的首部信息。确定保护级别组件130基于诸如视频数据帧大小和从接收端点接收到的历史分组丢失的指示等因素来确定对视频数据施加的适当的保护级别。
创建纠错数据组件140基于所确定的保护级别和视频数据来创建纠错数据。分组化纠错数据组件150将纠错数据分成适于通过网络来传输的分组。纠错***可基于用于产生纠错数据的纠错算法来划分所得纠错分组。纠错***可使用不止一个纠错算法来产生施加变化的纠错级别的纠错数据分组。传送数据组件160将视频数据和纠错分组从发送端点传送到接收端点。接收数据组件170从发送端点接收数据并确定任何分组是否已丢失。如果分组丢失,则恢复丢失数据组件180使用任何接收到的纠错分组来恢复任何丢失的视频数据分组。
在其上实现该***的计算设备可包括中央处理单元、存储器、输入设备(例如,键盘和定点设备)、输出设备(例如,显示设备)和存储设备(例如,盘驱动器)。存储器和存储设备是可以用实现该***的计算机可执行指令来编码的计算机可读介质,这意味着包含该指令的计算机可读介质。此外,数据结构和消息结构可被存储或经由诸如通信链路上的信号等数据传送介质发送。可以使用各种通信链路,诸如因特网、局域网、广域网、点对点拨号连接、蜂窝电话网络等。
该***的实施例可以在各种操作环境中实现,这些操作环境包括个人计算机、服务器计算机、手持式或膝上型设备、多处理器***、基于微处理器的***、可编程消费电子产品、数码照相机、网络PC、小型计算机、大型计算机、包括任何上述***或设备中任一种的分布式计算环境等。计算机***可以是蜂窝电话、个人数字助理、智能电话、个人计算机、可编程消费电子产品、数码照相机、机顶盒、IP摄像头等。
该***可以在由一个或多个计算机或其他设备执行的诸如程序模块等计算机可执行指令的通用上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可以在各个实施例中按需进行组合或分布。
图2A和2B示出了一个实施例中的视频流中的示例性帧序列。可使用编码器来以减少图像数据的冗余的方式压缩视频流中的帧。图2A示出了由I帧202-204、SP帧206-208、P帧210-216和B帧218-228组成的帧序列200。I帧202-204是独立的,这表现在I帧在不参考先前或后续帧的情况下进行编码并且一旦被解码就可用于呈现完整的图像。如图2A所示,I帧202-204或者直接或者间接地用作SP帧206-208、P帧210-216和B帧218-228的预测参考。SP帧206-208是可预测的,这表现在这些帧是参考最近的在前I帧或其它SP帧来编码的。类似地,P帧210-216也是可预测的,这表现在这些帧参考更早先的帧,该更早先的帧可以是最近的在前I帧或SP帧。如图2A所进一步示出的,B帧218-228使用被称为双向预测的技术来编码,其中图像数据参考先前的和后续的帧来编码。
每一帧中的数据量可视地在图2A中描绘,其中I帧202-204包含最大的数据量,而SP帧206-208、P帧210-216和B帧218-228各自提供依次更大的压缩量。如此处所使用的,术语“压缩模式”指的是当一特定帧类型(例如,I帧、SP帧、P帧、B帧等)被编码以便通过网络连接来传输时编码器的状态。本领域的技术人员和其他人将会认识到,编码器可出于创建不同的帧类型的目的而被配置成支持不同的压缩模式。虽然将帧序列200编码为各种帧类型减少了传送的数据量,但图像数据的压缩可使差错保存。I帧202可在通信地连接的计算机之间以一组分组来传输。然而,如果I帧202中的任一个分组在传输中丢失,则I帧202不是受该差错影响的唯一的帧。相反,该差错可持续至直接或间接参考该I帧202的其它帧。例如,如图2B的时间线250所描绘的那样,在事件252处当I帧202经受一差错时,该差错存留直到当接收到后续I帧204时的事件254。在这种情况下,在事件252和254之间接收到的帧经受通常是视频伪像的形式的质量劣化,因为帧通常使用由端点正确地接收的最后一个I帧来解码。
类似于以上所提供的描述,当与SP帧相关联的分组丢失时,差错可持续至其它帧。例如,如时间线250所描绘的那样,在事件256处当SP帧206经受分组丢失时,该差错存留直到当接收到下一个I帧204时的事件254。由于与I帧相比,对于SP帧存在更少的依赖性,所以分组丢失的影响也更小。当P帧经受分组丢失时,只有参考经受分组丢失的P帧的B帧和其它P帧受到该差错的影响。最后,B帧中的差错并不存留,因为B帧不被其它帧类型参考。该观察启发了这样的事实:在某些实施例中,可选择性地添加纠错数据并且具体而言,可将纠错数据限于参考视频帧(例如,可只保护I帧或I和SP帧)。
图3示出了一个实施例中的其中发送端点将视频数据传送到接收端点的典型的联网环境。联网环境300包括用对等网络连接来通信地连接的发送计算机302和接收计算机304。就此,发送计算机302和接收计算机304通过网络306来传送数据。如上所述,发送计算机302可以是与用户相关联的网络端点。或者,发送计算机302可通过将视频流中继给接收计算机304来用作联网环境300中的节点。本领域的技术人员及其他人将认识到,网络306可被实现为局域网(“LAN”)、诸如通常也被称为因特网或万维网(“WWW”)的全球网络等广域网(“WAN”)、蜂窝网络、IEEE 802.11、蓝牙无线网络等等。
在图3所示的实施例中,视频流使用输入设备308来从应用层305输入到发送计算机302中。输入设备308可以是能够捕捉图像流的任何设备,包括但不限于,摄像机、数码照相机、蜂窝电话等。当视频流被输入到发送计算机304中时,使用编码器/解码器310来压缩视频流的帧。本领域的技术人员将会认识到,编码器/解码器310以减少帧序列中的图像数据的冗余的方式来执行视频压缩。因为视频比特流通常包括仅递增地彼此不同的帧序列,所以显著的压缩通过基于与其他帧的区别来编码至少某些帧来实现。如上所述,视频流中的帧可被编码为I帧、P帧、SP帧和B帧,但也可利用其他帧类型(例如,单向B帧等)。然而,当差错导致分组丢失或其它视频劣化时,将视频流编码为压缩的帧可能使差错保持,由此导致视频伪像在多个帧上存留。
一旦编码器/解码器310通过减少帧序列中的图像数据的冗余来压缩视频流,网络设备312及相关联的媒体传输层313组件(未示出)就传送该视频流。视频数据帧可根据实时传输协议(“RTP”)所指示的标准来分组化和传送。本领域的技术人员和其他人将会认识到,RTP是可用于传输实时数据的一个示例性因特网标准协议。在任何情况下,当接收到视频流时,接收计算机304上的编码器/解码器310使得该流被解码并在呈现设备314上呈现给用户。呈现设备314可以是能够呈现图像数据的任何设备,包括但不限于计算机显示器(例如CRT或LCD屏幕)、电视机、监视器、打印机等。
控制层316为诸如支持视频流传输的应用程序等具有实时特性的应用程序提供服务质量支持。质量控制器318通过收集包括但不限于分组丢失率、往返时间等与视频流相关联的统计数据来提供服务质量反馈。仅作为示例,质量控制器318所收集的数据可由差错恢复组件320用来标识将在执行差错恢复时使用的分组。其他数据可出于该目的而在交换视频流的端点之间周期性地传输。可使用控制层316的组件来基于所收集的服务质量信息来修改视频流的特性。
图4示出了一个实施例中的用于将视频数据发送到多个接收端点的联网环境。联网环境700包括多点控制单元701(例如,视频会议服务器)、多个视频会议端点,这些端点包括发送设备702和接收设备704-708。此外,联网环境700包括发送设备702和多点控制单元701之间的对等网络连接710,以及多点控制单元701和接收设备704-708之间的多个下游网络连接712-716。一般而言,多点控制单元701收集关于将参与视频会议的设备的能力的信息。基于所收集的信息,可建立网络端点之间的视频流的特性。
图5是示出一个实施例中的该***的传送数据组件的处理的流程图。在框510,该组件接收帧大小和对于接收端点的历史分组丢失的指示。在框520,该组件基于所接收到的帧大小和历史分组丢失的指示来确定要施加的适当的保护级别,并且基于所确定的保护级别来创建保护分组。在框530,该组件将数据分组传送到接收端点。在框540,该组件将所创建的保护分组发送到接收端点。在判定框550,接收端点的接收数据组件确定是否已丢失任何数据分组。如果已丢失数据分组,则该组件在框560处继续,否则该组件完成。在框560,该组件使用冗余的所传送的数据来恢复丢失的数据,并且然后完成。
图6是示出一个实施例中的具有多个接收端点的视频会议环境中的***的传送数据组件的处理的流程图。在框610,该组件接收将通过网络来传送的视频数据。在框620,该组件确定将该视频数据传送到每一个接收端点所需的最高保护级别以使得每一个接收端点都能够恢复任何丢失的视频数据。在框630,该组件基于所确定的保护级别来创建附随该数据的保护分组。在框640,该组件选择第一个接收端点。在框650,该组件确定将该视频数据传送到所选接收端点所需的保护级别以使得所选接收端点都能够恢复任何丢失的视频数据。基于该判定,该组件在传送视频数据时包括所创建的保护分组中的一个或多个。在框660,该组件将视频数据和保护分组传送到该接收端点。在判定框670,如果存在更多的接收端点,则该组件循环到框640以选择下一个接收端点,否则该组件完成。
结论
从上文将会认识到,虽然在此已出于说明目的描述了纠错***的具体实施例,但是可以做出各种修改而不背离本发明的精神和范围。例如,尽管已描述了UDP作为纠错***能够与其一起使用的一种类型的协议,但也可使用许多其他协议,诸如实时协议(RTP)和实时控制协议(RTCP)等。因此,本发明只由所附权利要求来限制。
Claims (26)
1.一种计算机***中的用于当在发送端点和接收端点之间发送数据时减少分组丢失的影响的方法,所述方法包括:
接收数据大小和先前时间段期间的分组丢失率的指示(510);
基于所接收到的数据大小和所述分组丢失率的指示来确定要施加的保护级别(520);
向所述接收端点发送包含所述数据的一个或多个数据分组(530);以及
基于所确定的保护级别来向所述接收端点发送一个或多个保护分组(540),其中所述一个或多个保护分组包括所述接收端点可用于恢复丢失数据分组的信息,从而使得当数据分组丢失时所述接收端点能够在不与所述发送端点进行额外通信的情况下使用所述保护分组来获取所述数据的全部。
2.如权利要求1所述的方法,其特征在于,至少一个保护级别对所述数据应用异或运算。
3.如权利要求1所述的方法,其特征在于,至少一个保护级别对所述数据应用Reed-Solomon算法。
4.如权利要求1所述的方法,其特征在于,包括创建将保护级别映射到帧大小和分组丢失率的表,并且其中确定要施加的保护级别包括在所述表中查找所述保护级别。
5.如权利要求1所述的方法,其特征在于,所述保护分组包括分阶段的保护级别。
6.如权利要求1所述的方法,其特征在于,接收分组丢失率包括从所述接收端点接收分组丢失报告。
7.如权利要求1所述的方法,其特征在于,确定要施加的保护级别包括确定视频帧的类型,并且包括对其他帧所依赖的帧类型施加较高的保护级别。
8.如权利要求1所述的方法,其特征在于,确定要施加的保护级别包括不对大小低于阈值或包含低于预定比特率的视频数据的数据施加保护。
9.如权利要求1所述的方法,其特征在于,所述发送端点是为多个接收端点服务的视频会议服务器。
10.一种用于减少分组丢失对通过网络经由视频会议服务器从发送端点传送到接收端点的视频会议数据的影响的计算机***,所述计算机***包括:
被配置成从所述发送端点接收视频会议数据的视频会议数据接收组件(170);
被配置成基于所述视频会议数据来产生纠错数据的纠错组件(140),其中所述纠错数据提供用于恢复所述视频会议数据的丢失部分的信息并基于一个或多个保护级别来被分成各分组;
被配置成将从所述发送端点接收到的视频会议数据转发给多个接收端点的视频会议数据发送组件(160),其中所述视频会议数据发送组件基于所述视频会议数据和与所述接收端点的连接的特性来确定向每一个接收端点发送所述纠错数据的分组中的哪一些,从而使得所述纠错数据不是为每一个接收端点单独产生的。
11.如权利要求10所述的***,其特征在于,所述纠错组件从所述发送端点接收所述纠错数据。
12.如权利要求10所述的***,其特征在于,所述纠错组件在所述视频会议服务器处创建所述纠错数据。
13.如权利要求10所述的***,其特征在于,所述发送端点创建所述纠错数据的一部分而所述视频会议服务器创建所述纠错数据的另一部分。
14.如权利要求10所述的***,其特征在于,所述纠错组件将所需保护级别的指示发送到所述发送端点并且基于所述所需保护级别来从所述发送端点接收纠错数据。
15.如权利要求10所述的***,其特征在于,所述视频会议数据发送组件周期性地重新确定向每一个接收端点发送所述纠错数据的分组中的哪一些。
16.如权利要求10所述的***,其特征在于,被发送到所述接收端点的分组包括包含关于纠错数据在数字视频比特流中的存在和位置的信息的格式自适应首部。
17.如权利要求10所述的***,其特征在于,所述纠错组件基于特定视频帧的类型来确定对于该视频帧是否应产生纠错数据。
18.如权利要求10所述的***,其特征在于,所述纠错组件基于关于所述网络的历史条件的统计数据来产生纠错数据。
19.如权利要求10所述的***,其特征在于,至少一个接收端点基于从所述视频会议服务器接收到的信息来确定是否使用纠错数据来恢复一个或多个无效分组。
20.如权利要求10所述的***,其特征在于,所述视频会议数据包括版本信息,从而使得传统客户机能够与较新的视频会议服务器互操作。
21.如权利要求10所述的***,其特征在于,包括形成包括首部和净荷的分组的媒体传输分组化器,其中所述首部向接收端点指示当前帧对视频比特流中的其他帧的任何依赖性。
22.一种包含用于控制计算机***通过一种方法来在接收端点处恢复丢失分组的指令的计算机可读介质,所述方法包括:
从发送端点接收视频数据(540),其中所述视频数据被分成一个或多个数据分组;
从所述发送端点接收纠错数据(540),其中所述纠错数据被分成一个或多个保护分组;
确定由所述发送端点发送的至少一个数据分组未被所述接收端点接收到(550);
应用来自所述一个或多个保护分组的纠错数据来恢复未被接收到的至少一个数据分组(560)。
23.如权利要求22所述的计算机可读介质,其特征在于,包括基于数据分组的首部中的信息来向所述数据分组添加填充物。
24.如权利要求22所述的计算机可读介质,其特征在于,包括周期性地向所述发送端点发送分组丢失的指示。
25.如权利要求22所述的计算机可读介质,其特征在于,确定至少一个数据分组未被接收到包括检测对应于每一个接收到的数据分组的序列号。
26.如权利要求22所述的计算机可读介质,其特征在于,每一个保护分组都包括由所述保护分组中的纠错数据提供的保护级别的指示。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/686,198 US7957307B2 (en) | 2007-03-14 | 2007-03-14 | Reducing effects of packet loss in video transmissions |
US11/686,198 | 2007-03-14 | ||
PCT/US2008/055308 WO2008112441A1 (en) | 2007-03-14 | 2008-02-28 | Reducing effects of packet loss in video transmissions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101636983A true CN101636983A (zh) | 2010-01-27 |
CN101636983B CN101636983B (zh) | 2013-02-13 |
Family
ID=39759905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008800079340A Active CN101636983B (zh) | 2007-03-14 | 2008-02-28 | 用于减少视频传输时的分组丢失的影响的方法和*** |
Country Status (7)
Country | Link |
---|---|
US (1) | US7957307B2 (zh) |
EP (1) | EP2132908A1 (zh) |
KR (1) | KR20090119898A (zh) |
CN (1) | CN101636983B (zh) |
BR (1) | BRPI0808629A2 (zh) |
RU (1) | RU2009134145A (zh) |
WO (1) | WO2008112441A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104394485A (zh) * | 2012-08-21 | 2015-03-04 | 华为技术有限公司 | 视频流的帧类型检测、帧大小检测方法及装置 |
CN106534760A (zh) * | 2015-09-15 | 2017-03-22 | 华为技术有限公司 | 一种媒体流传输方法、设备及*** |
CN104040976B (zh) * | 2012-01-13 | 2017-03-22 | 微软技术许可有限责任公司 | 用于丢失实时媒体分组恢复的方法和装置 |
CN109150410A (zh) * | 2018-10-30 | 2019-01-04 | 京信通信***(中国)有限公司 | 数据传输方法和装置 |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9446305B2 (en) | 2002-12-10 | 2016-09-20 | Sony Interactive Entertainment America Llc | System and method for improving the graphics performance of hosted applications |
US8711923B2 (en) | 2002-12-10 | 2014-04-29 | Ol2, Inc. | System and method for selecting a video encoding format based on feedback data |
US9192859B2 (en) | 2002-12-10 | 2015-11-24 | Sony Computer Entertainment America Llc | System and method for compressing video based on latency measurements and other feedback |
US20090118019A1 (en) | 2002-12-10 | 2009-05-07 | Onlive, Inc. | System for streaming databases serving real-time applications used through streaming interactive video |
US9061207B2 (en) | 2002-12-10 | 2015-06-23 | Sony Computer Entertainment America Llc | Temporary decoder apparatus and method |
US8549574B2 (en) | 2002-12-10 | 2013-10-01 | Ol2, Inc. | Method of combining linear content and interactive content compressed together as streaming interactive video |
US8964830B2 (en) | 2002-12-10 | 2015-02-24 | Ol2, Inc. | System and method for multi-stream video compression using multiple encoding formats |
US9138644B2 (en) | 2002-12-10 | 2015-09-22 | Sony Computer Entertainment America Llc | System and method for accelerated machine switching |
US8526490B2 (en) | 2002-12-10 | 2013-09-03 | Ol2, Inc. | System and method for video compression using feedback including data related to the successful receipt of video content |
US9314691B2 (en) | 2002-12-10 | 2016-04-19 | Sony Computer Entertainment America Llc | System and method for compressing video frames or portions thereof based on feedback information from a client device |
US9077991B2 (en) | 2002-12-10 | 2015-07-07 | Sony Computer Entertainment America Llc | System and method for utilizing forward error correction with video compression |
US9108107B2 (en) * | 2002-12-10 | 2015-08-18 | Sony Computer Entertainment America Llc | Hosting and broadcasting virtual events using streaming interactive video |
US10201760B2 (en) | 2002-12-10 | 2019-02-12 | Sony Interactive Entertainment America Llc | System and method for compressing video based on detected intraframe motion |
US8366552B2 (en) | 2002-12-10 | 2013-02-05 | Ol2, Inc. | System and method for multi-stream video compression |
US8885632B2 (en) | 2006-08-02 | 2014-11-11 | Silver Peak Systems, Inc. | Communications scheduler |
US7978669B2 (en) * | 2007-05-09 | 2011-07-12 | Cisco Technology, Inc. | Methods and apparatus for efficient MPEG transmission over 802.11 |
JP2009027720A (ja) * | 2007-07-23 | 2009-02-05 | Polycom Inc | 輻輳回避と共に損失パケット回復を行うシステム及び方法 |
JP4412369B2 (ja) * | 2007-09-04 | 2010-02-10 | 日本電気株式会社 | 分散型処理システム、分散型処理方法、端末、及び、プログラム |
US9168457B2 (en) | 2010-09-14 | 2015-10-27 | Sony Computer Entertainment America Llc | System and method for retaining system state |
US9717021B2 (en) | 2008-07-03 | 2017-07-25 | Silver Peak Systems, Inc. | Virtual network overlay |
US10164861B2 (en) | 2015-12-28 | 2018-12-25 | Silver Peak Systems, Inc. | Dynamic monitoring and visualization for network health characteristics |
US10805840B2 (en) | 2008-07-03 | 2020-10-13 | Silver Peak Systems, Inc. | Data transmission via a virtual wide area network overlay |
US8489954B2 (en) * | 2008-08-29 | 2013-07-16 | Ntt Docomo, Inc. | Method and apparatus for reliable media transport |
US8804821B2 (en) * | 2008-09-26 | 2014-08-12 | Microsoft Corporation | Adaptive video processing of an interactive environment |
US8243117B2 (en) * | 2008-09-26 | 2012-08-14 | Microsoft Corporation | Processing aspects of a video scene |
US8088301B2 (en) | 2008-12-23 | 2012-01-03 | Cheil Industries Inc. | Epoxy compound for liquid crystal photo-alignment agent, liquid crystal photo-alignment agent, and liquid crystal photo-alignment film |
JP5086285B2 (ja) * | 2009-01-22 | 2012-11-28 | 株式会社日立製作所 | 映像配信システム,映像配信装置,及び同期補正処理装置 |
US20120121014A1 (en) * | 2009-03-04 | 2012-05-17 | Thomas Rusert | Processing of Multimedia Data |
KR101566004B1 (ko) * | 2009-03-05 | 2015-11-06 | 삼성전자주식회사 | 엔드 포인트를 복수개로 분할 가능한 반도체 장치 |
FI20095273A0 (fi) * | 2009-03-17 | 2009-03-17 | On2 Technologies Finland Oy | Digitaalinen videokoodaus |
US8189492B2 (en) * | 2009-03-18 | 2012-05-29 | Microsoft Corporation | Error recovery in an audio-video multipoint control component |
EP2302845B1 (en) | 2009-09-23 | 2012-06-20 | Google, Inc. | Method and device for determining a jitter buffer level |
EP2405661B1 (en) * | 2010-07-06 | 2017-03-22 | Google, Inc. | Loss-robust video transmission using two decoders |
US8630412B2 (en) | 2010-08-25 | 2014-01-14 | Motorola Mobility Llc | Transport of partially encrypted media |
US8477050B1 (en) | 2010-09-16 | 2013-07-02 | Google Inc. | Apparatus and method for encoding using signal fragments for redundant transmission of data |
US8838680B1 (en) | 2011-02-08 | 2014-09-16 | Google Inc. | Buffer objects for web-based configurable pipeline media processing |
US8995306B2 (en) * | 2011-04-06 | 2015-03-31 | Cisco Technology, Inc. | Video conferencing with multipoint conferencing units and multimedia transformation units |
US9014265B1 (en) | 2011-12-29 | 2015-04-21 | Google Inc. | Video coding using edge detection and block partitioning for intra prediction |
US9179196B2 (en) * | 2012-02-22 | 2015-11-03 | Adobe Systems Incorporated | Interleaved video streams |
CN108777676B (zh) | 2012-04-25 | 2021-01-12 | 三星电子株式会社 | 用于在多媒体传输***中接收媒体数据的装置及方法 |
US9667756B2 (en) * | 2012-06-05 | 2017-05-30 | Electronics And Telecommunications Research Institute | Apparatus and method for transmitting/receiving data in communication system |
KR101801565B1 (ko) * | 2012-06-05 | 2017-11-27 | 한국전자통신연구원 | 통신 시스템에서 데이터 송수신 장치 및 방법 |
GB201210779D0 (en) | 2012-06-18 | 2012-08-01 | Microsoft Corp | Correction data |
KR101506770B1 (ko) * | 2012-12-28 | 2015-03-27 | 삼성에스디에스 주식회사 | 데이터 전송 장치 및 방법 |
US9210424B1 (en) | 2013-02-28 | 2015-12-08 | Google Inc. | Adaptive prediction block size in video coding |
US9603039B2 (en) | 2013-04-03 | 2017-03-21 | Qualcomm Incorporated | Opportunistic media patching for a communication session |
KR101416901B1 (ko) * | 2013-06-19 | 2014-07-08 | 주식회사 케이티 | 손실된 영상 패킷을 복구하는 방법 및 장치 |
US9313493B1 (en) | 2013-06-27 | 2016-04-12 | Google Inc. | Advanced motion estimation |
US20150195326A1 (en) * | 2014-01-03 | 2015-07-09 | Qualcomm Incorporated | Detecting whether header compression is being used for a first stream based upon a delay disparity between the first stream and a second stream |
US9813931B2 (en) | 2014-07-29 | 2017-11-07 | University Of Ottawa | Adaptive packet preamble adjustment |
US9438853B2 (en) * | 2014-07-29 | 2016-09-06 | Qualcomm Incorporated | Receiver driven up-switching in video telephony |
US9948496B1 (en) | 2014-07-30 | 2018-04-17 | Silver Peak Systems, Inc. | Determining a transit appliance for data traffic to a software service |
US9363480B2 (en) * | 2014-08-20 | 2016-06-07 | Cisco Technology, Inc. | Obtaining replay of audio during a conference session |
US9875344B1 (en) | 2014-09-05 | 2018-01-23 | Silver Peak Systems, Inc. | Dynamic monitoring and authorization of an optimization device |
US9807416B2 (en) | 2015-09-21 | 2017-10-31 | Google Inc. | Low-latency two-pass video coding |
US10432484B2 (en) | 2016-06-13 | 2019-10-01 | Silver Peak Systems, Inc. | Aggregating select network traffic statistics |
US10154317B2 (en) * | 2016-07-05 | 2018-12-11 | BoxCast, LLC | System, method, and protocol for transmission of video and audio data |
CN107592540B (zh) * | 2016-07-07 | 2020-02-11 | 腾讯科技(深圳)有限公司 | 一种视频数据处理方法及装置 |
US9967056B1 (en) | 2016-08-19 | 2018-05-08 | Silver Peak Systems, Inc. | Forward packet recovery with constrained overhead |
US10892978B2 (en) | 2017-02-06 | 2021-01-12 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows from first packet data |
US11044202B2 (en) | 2017-02-06 | 2021-06-22 | Silver Peak Systems, Inc. | Multi-level learning for predicting and classifying traffic flows from first packet data |
US10771394B2 (en) | 2017-02-06 | 2020-09-08 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows on a first packet from DNS data |
US10257082B2 (en) | 2017-02-06 | 2019-04-09 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows |
US10594661B1 (en) * | 2017-06-13 | 2020-03-17 | Parallels International Gmbh | System and method for recovery of data packets transmitted over an unreliable network |
US20190068678A1 (en) * | 2017-08-31 | 2019-02-28 | Whatsapp Inc. | Techniques to dynamically engage an all-intra-coded mode for streaming video encoding |
US11212210B2 (en) | 2017-09-21 | 2021-12-28 | Silver Peak Systems, Inc. | Selective route exporting using source type |
US10637721B2 (en) | 2018-03-12 | 2020-04-28 | Silver Peak Systems, Inc. | Detecting path break conditions while minimizing network overhead |
US11088784B1 (en) | 2020-12-24 | 2021-08-10 | Aira Technologies, Inc. | Systems and methods for utilizing dynamic codes with neural networks |
US11477308B2 (en) | 2020-12-28 | 2022-10-18 | Aira Technologies, Inc. | Adaptive payload extraction in wireless communications involving multi-access address packets |
US11483109B2 (en) | 2020-12-28 | 2022-10-25 | Aira Technologies, Inc. | Systems and methods for multi-device communication |
US11368250B1 (en) | 2020-12-28 | 2022-06-21 | Aira Technologies, Inc. | Adaptive payload extraction and retransmission in wireless data communications with error aggregations |
US11575469B2 (en) * | 2020-12-28 | 2023-02-07 | Aira Technologies, Inc. | Multi-bit feedback protocol systems and methods |
US20220291955A1 (en) | 2021-03-09 | 2022-09-15 | Intel Corporation | Asynchronous input dependency resolution mechanism |
US11496242B2 (en) | 2021-03-15 | 2022-11-08 | Aira Technologies, Inc. | Fast cyclic redundancy check: utilizing linearity of cyclic redundancy check for accelerating correction of corrupted network packets |
US11489623B2 (en) | 2021-03-15 | 2022-11-01 | Aira Technologies, Inc. | Error correction in network packets |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03141752A (ja) | 1989-10-27 | 1991-06-17 | Hitachi Ltd | 画像信号伝送方法 |
US5608450A (en) | 1994-09-07 | 1997-03-04 | Intel Corporation | Video conferencing system with fast packet loss recovery |
US5602831A (en) * | 1995-03-31 | 1997-02-11 | Seiko Communications Systems, Inc. | Optimizing packet size to eliminate effects of reception nulls |
US6754181B1 (en) * | 1996-11-18 | 2004-06-22 | Mci Communications Corporation | System and method for a directory service supporting a hybrid communication system architecture |
US6421387B1 (en) | 1998-05-15 | 2002-07-16 | North Carolina State University | Methods and systems for forward error correction based loss recovery for interactive video transmission |
US6782490B2 (en) * | 1999-03-17 | 2004-08-24 | At&T Corp. | Network-based service for the repair of IP multicast sessions |
US6434191B1 (en) * | 1999-09-30 | 2002-08-13 | Telcordia Technologies, Inc. | Adaptive layered coding for voice over wireless IP applications |
US6971057B1 (en) * | 2000-02-25 | 2005-11-29 | Globespanvirata, Inc. | System and method for efficient convolutional interleaving/de-interleaving |
GB2360178B (en) | 2000-03-06 | 2004-04-14 | Mitel Corp | Sub-packet insertion for packet loss compensation in Voice Over IP networks |
US6754843B1 (en) | 2000-06-13 | 2004-06-22 | At&T Corp. | IP backbone network reliability and performance analysis method and apparatus |
US6816194B2 (en) | 2000-07-11 | 2004-11-09 | Microsoft Corporation | Systems and methods with error resilience in enhancement layer bitstream of scalable video coding |
US7116641B2 (en) * | 2000-11-15 | 2006-10-03 | Lg Electronics Inc. | Multicast and broadcast transmission method and apparatus of a CDMA mobile communication network |
EP1211837A1 (en) | 2000-12-04 | 2002-06-05 | Telefonaktiebolaget Lm Ericsson | Unequal error protection in a packet transmission system |
US6772388B2 (en) * | 2000-12-06 | 2004-08-03 | Motorola, Inc | Apparatus and method for providing optimal adaptive forward error correction in data communications |
US6970430B2 (en) | 2000-12-29 | 2005-11-29 | Texas Instruments Incorporated | Method to measure throughput efficiency of low speed modem relay over packet network |
US7103669B2 (en) | 2001-02-16 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | Video communication method and system employing multiple state encoding and path diversity |
US7151749B2 (en) * | 2001-06-14 | 2006-12-19 | Microsoft Corporation | Method and System for providing adaptive bandwidth control for real-time communication |
EP1421787A4 (en) | 2001-08-23 | 2008-10-08 | Polycom Inc | SYSTEM AND METHOD FOR HIDDING VIDEO ERRORS |
FI20011715A (fi) * | 2001-08-27 | 2003-02-28 | Nokia Corp | Koodekin toiminnallisen moodin valinta |
US6724727B2 (en) * | 2001-12-03 | 2004-04-20 | Nokia Corporation | Policy-based forward error correction in packet networks |
US7039851B2 (en) * | 2002-06-08 | 2006-05-02 | Axiowave Networks, Inc. | Method of and apparatus for correcting errors in data packet flow streams as in closed ring sequential address generators and the like without data flow stream interruption |
AU2003276786A1 (en) | 2002-11-04 | 2004-06-07 | Tandberg Telecom As | Inter-network and inter-protocol video conference privacy method, apparatus and computer program product |
EP1574066A1 (en) * | 2002-12-13 | 2005-09-14 | Koninklijke Philips Electronics N.V. | Switching method for mdc/scalable coding |
US20040240415A1 (en) * | 2003-06-02 | 2004-12-02 | Richard Lane | Base station-centric method for managing bandwidth and QoS in error-prone system |
US20070053445A1 (en) * | 2003-09-23 | 2007-03-08 | Koninklijke Philips Electronics, N.V. | System and method for providing video content and concealment dependent error protection and scheduling algorithms |
FR2861517B1 (fr) * | 2003-10-23 | 2006-01-27 | Thomson Licensing Sa | Methode de reconstruction de paquets perdus et appareils implementant la methode |
EP1555788A1 (en) | 2004-01-15 | 2005-07-20 | Alcatel | Method for improving the quality of an encoded video bit stream transmitted over a wireless link, and corresponding receiver |
US7451381B2 (en) * | 2004-02-03 | 2008-11-11 | Phonex Broadband Corporation | Reliable method and system for efficiently transporting dynamic data across a network |
US7539187B2 (en) * | 2004-07-07 | 2009-05-26 | Qvidium Technologies, Inc. | System and method for low-latency content-sensitive forward error correction |
US8634413B2 (en) * | 2004-12-30 | 2014-01-21 | Microsoft Corporation | Use of frame caching to improve packet loss recovery |
US7415041B2 (en) * | 2004-12-31 | 2008-08-19 | Motorola, Inc. | Method and apparatus for decoding data in a wireless communication system |
US20060291475A1 (en) * | 2005-06-28 | 2006-12-28 | Noam Cohen | Selective forward error correction |
US7617436B2 (en) * | 2005-08-02 | 2009-11-10 | Nokia Corporation | Method, device, and system for forward channel error recovery in video sequence transmission over packet-based network |
US7489675B2 (en) * | 2005-09-12 | 2009-02-10 | Motorola, Inc. | Method for indicating padding in a digital mobile radio system |
CN1984332B (zh) * | 2005-12-14 | 2010-05-26 | 财团法人工业技术研究院 | 数据及图像编码之方法与*** |
WO2008080260A1 (en) * | 2006-12-30 | 2008-07-10 | Thomson Licensing | Adaptive error correction method for data transmission and devices thereof |
US8605779B2 (en) * | 2007-06-20 | 2013-12-10 | Microsoft Corporation | Mechanisms to conceal real time video artifacts caused by frame loss |
-
2007
- 2007-03-14 US US11/686,198 patent/US7957307B2/en active Active
-
2008
- 2008-02-28 RU RU2009134145/09A patent/RU2009134145A/ru unknown
- 2008-02-28 BR BRPI0808629-0A patent/BRPI0808629A2/pt not_active IP Right Cessation
- 2008-02-28 CN CN2008800079340A patent/CN101636983B/zh active Active
- 2008-02-28 WO PCT/US2008/055308 patent/WO2008112441A1/en active Application Filing
- 2008-02-28 EP EP08730971A patent/EP2132908A1/en not_active Withdrawn
- 2008-02-28 KR KR1020097018917A patent/KR20090119898A/ko not_active IP Right Cessation
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104040976B (zh) * | 2012-01-13 | 2017-03-22 | 微软技术许可有限责任公司 | 用于丢失实时媒体分组恢复的方法和装置 |
CN104394485A (zh) * | 2012-08-21 | 2015-03-04 | 华为技术有限公司 | 视频流的帧类型检测、帧大小检测方法及装置 |
CN104394485B (zh) * | 2012-08-21 | 2017-12-15 | 华为技术有限公司 | 视频流的帧大小检测方法及装置 |
CN106534760A (zh) * | 2015-09-15 | 2017-03-22 | 华为技术有限公司 | 一种媒体流传输方法、设备及*** |
WO2017045568A1 (zh) * | 2015-09-15 | 2017-03-23 | 华为技术有限公司 | 一种媒体流传输方法、设备及*** |
CN106534760B (zh) * | 2015-09-15 | 2020-07-28 | 华为技术有限公司 | 一种媒体流传输方法、设备及*** |
CN109150410A (zh) * | 2018-10-30 | 2019-01-04 | 京信通信***(中国)有限公司 | 数据传输方法和装置 |
CN109150410B (zh) * | 2018-10-30 | 2021-09-24 | 京信网络***股份有限公司 | 数据传输方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101636983B (zh) | 2013-02-13 |
US7957307B2 (en) | 2011-06-07 |
RU2009134145A (ru) | 2011-03-20 |
WO2008112441A1 (en) | 2008-09-18 |
BRPI0808629A2 (pt) | 2014-08-05 |
EP2132908A1 (en) | 2009-12-16 |
KR20090119898A (ko) | 2009-11-20 |
US20080225735A1 (en) | 2008-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101636983B (zh) | 用于减少视频传输时的分组丢失的影响的方法和*** | |
AU2007313931B2 (en) | Dynamic modification of video properties | |
US8015474B2 (en) | Adaptive forward error correction | |
Wu et al. | Enabling adaptive high-frame-rate video streaming in mobile cloud gaming applications | |
CN106656422B (zh) | 一种动态调整fec冗余度的流媒体传输方法 | |
KR101242663B1 (ko) | 패킷 송신 장치, 통신 시스템 및 컴퓨터 판독가능한 기록매체 | |
US7254765B2 (en) | Method and devices for error tolerant data transmission, wherein retransmission of erroneous data is performed up to the point where the remaining number of errors is acceptable | |
CN100558167C (zh) | 多媒体视频通信方法及*** | |
Wu et al. | Improving multipath video transmission with raptor codes in heterogeneous wireless networks | |
JP2001045098A (ja) | データ通信システム、データ通信装置、データ通信方法及び記憶媒体 | |
JP2006287284A (ja) | 無線通信システム及びそのヘッダ圧縮制御方法 | |
CN101854224B (zh) | 纠错编码方法、装置和***以及转发控制方法和装置 | |
CN109587488B (zh) | 一种基于率失真优化和丢帧预测的长参考帧的选取方法 | |
Nikzad et al. | Performance evaluation of error control schemes for distributed video coding over wireless multimedia sensor networks | |
Ho et al. | QoS-supporting video streaming system with minimum data service cost over heterogeneous wireless networks | |
Takahata et al. | Packet error and frame rate controls for real time video stream over wireless LANs | |
EP4024811B1 (en) | Method and system for enhancing quality of experience (qoe) of video reception at receiver | |
Panahi et al. | A novel schema for multipath video transferring over ad hoc networks | |
Harris III et al. | On energy, adaptation, and the death of frames | |
Zhai et al. | Elements of a Video Communication System | |
Panahi | Multipath Local Error Management Technique Over Ad Hoc Networks | |
Sehlstedt et al. | Transparent cross-layer rate adaption of progressive multimedia streams for wired and wireless networks | |
Qian | Joint source-channel video transmission | |
Lin et al. | An Adaptive Error-Check Solution | |
JP2006285842A (ja) | 情報処理装置およびプログラム |
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 | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150507 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150507 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |