拥塞控制比特率算法_2

文档序号:8514564阅读:来源:国知局
率。根据某些方面,因为比特率可仅通过增加用于纠错的FEC包的数量来调整,所以即使比特率的增加导致拥塞和包丢失增加,一个或多个接收器设备也能够重构源数据。例如,因为FEC包与源包的比率可增大,所以FEC包很可能被成功输送足以重构由于输送期间源包丢失而丢失的数据的数量。
[0024]审多细节
[0025]现转向图1,根据本公开的某些方面描绘数据传输和前向纠错(FEC)技术的说明性示例。在图1的示例中,一个或多个发送器设备102可以通过网络106向一个或多个接收器设备104发送数据,并且该数据可以按多个数据包108的形式传输。数据包108可以是使用不可靠协议(例如UDP)发送的数据报,在UDP协议中,无论是依次输送每个包108还是依次输送多个包108均不受该协议保证。因此,在包丢失的情况下,发送器设备102不重传丢失的包;相反,接收器设备104可试图使用通过使用的特定FEC技术编码进数据流中的冗余来重构丢失的源数据。
[0026]如图1所示,数据包108可以包括源包(图1中的阴影框)和FEC包(图1中的白色/空白框)两者,源包包含被输送至接收器设备104的原始源数据110,FEC包是奇偶校验包,其包含只要有足够可用的其他源或奇偶校验包就允许其取代任何丢失的源包的信息。FEC包可以包含原始的源数据110的冗余并且在源包中的一个或多个无法正确到达接收器104 (例如,因为它们被网络106丢弃)的情况下,可被接收器设备104用于重构源数据110。在所传输的数据包括音频和视频流的某些实施中,数据包108还可以包括前述两种类型的音频包和视频包两者,例如数据包108可以包括音频源包、音频FEC包、视频源包和视频FEC包,并且音频包通常可小于(即,含有较少量的数据)视频包。
[0027]在某些实施中,源数据110可以是被实时传输到接收器设备104的数据流,并且源数据110可以通过在发送器设备102上运行的应用生成。在这类实施中,实时源数据110可以由按顺序输出的数据的多个帧组成,并且帧可以由生成源数据的应用定义。例如,源数据I1可以是从在发送器设备102上运行的应用输出的实时音频/视频(A/V)流(诸如视频游戏、视频电话程序或其他A/V源程序)并且该应用可以定义每个帧。
[0028]在图1的示例中,所示的源数据110的块可对应于单帧(例如单A/V帧),对于其多个源包和FEC包被生成并且通过网络106被传送至接收器设备104。数据流可以由多个帧110组成,所述多个帧可在发送器设备102按顺序生成,并且多个数据包108可被形成用于每个帧用于传送至接收器设备104。
[0029]需要注意的是,当数据使用UDP或其他不可靠协议传输时,数据包108 (例如,数据报)可以通过网络106被路由通过不同的相应路径并可以不按顺序到达接收器设备。为了便于在接收器设备104重构数据,每个数据包108可被发送器设备标记特定的识别信息。例如,每个数据包108可用帧标识符(例如,帧号,其指示该数据包属于序列中的哪个帧)以及序列标识符(例如,序列号,其指示数据包在每个帧内(和/或跨帧)的序列中属于何处)标记。因此,发送器设备102可递增所形成的每个新数据包的序列号,并且对于所形成的每个新帧可递增该数据包的帧号。可选地,数据包108还可以被标记另外的识别信息(诸如类型标识符,其在例如数据流是具有音频和视频分量两者的实时数据流的实施的情况下识别包是音频包还是视频包)。接收器设备104可以根据被标记到每个包的这个增补信息汇编该数据,并可以相应解码该数据(例如,用于在接收器侧向终端用户呈现)。
[0030]在源包中的一个或多个被网络106丢弃或者以其它方式无法到达它们的目的地的包丢失的情况下,接收器设备104可以利用冗余编码的FEC奇偶校验包重构源数据110而无需发送器设备102重传,如图1所示。需要注意的是,任何数量的FEC奇偶校验包可以使用不同的算法从一个或多个源包生成。在某些实施中,FEC数据可以使用纠删码生成。在某些实施中,纠删码可以是里德所罗门编码(Reed-Solomon code)。支持纠删编码并且可被用于实施本公开的开源库的一个非限制性示例(其中之一)被称为Jerasure。在某些实施中,纠错方案可以是使得对于无法到达接收器的每个源包,可能需要一个FEC包重构特定数据集的纠错方案。例如,对于被输送给接收器设备的特定数据帧,FEC技术可以是以下技术:其中在包丢失的情况下为了完全重构帧,正确到达接收器设备的FEC包的数量需要至少等于丢失源包的数量。否则,帧可能被损坏。换句话说,如果存在N个源包并且生成M个奇偶校验包,则源数据可在至少总共N个包(源和奇偶校验)被接收时恢复。在图1的例证中,为简化说明,由发送器发送的源包的数量等于所发送的FEC包的数量,即由发送器102传输的源包与FEC包的比率简单是1:1。不过,应当注意的是,可以使用许多其他的比率,并且根据本公开的某些方面,源包与FEC包的比率可以是动态的并在流期间随时间改变,如下所述。
[0031]为了在数据传送期间优化如何有效地利用可用带宽以及避免以触发不可接受的包丢失的方式使网络信道过载,发送器设备102和/或接收器设备104可以经配置根据本公开的方面实施拥塞控制算法。
[0032]现转向图2,描绘在一个或多个发送器设备202与一个或多个接收器设备204之间的拥塞控制技术的说明性示例的流程图。在某些实施中,拥塞控制技术可以在如图1所示的数据传输和纠错技术的至少一些方面具有相似性。
[0033]根据本公开的不同方面,发送器设备202可以经配置通过网络206向至少一个接收器设备204发送原始的源数据212。作为示例,并且不作为限制,网络206可以是互联网、WAN、LAN或使用包交换将数据包路由至其目的地的其他网络。在某些实施中,发送器设备202可以从应用接收源数据212,该应用可以运行在该发送器设备上,并且发送器设备可以经配置使用不可靠传输协议(例如UDP)向接收器设备204实时传输源数据212。
[0034]在某些实施中,源数据212可以是在通过网络传输之前需要被压缩的类型,并且发送器设备可以经配置压缩该源数据,如在214所指示。作为示例但不是限制,源数据可包括实时音频流、实时视频流或二者(即,实时音频/视频流),并且发送器设备可以使用音频和/或视频编码器将该数据压缩为各种压缩格式的任一种。在某些实施中,源数据可以使用低延迟编解码器来编码。例如,作为低延迟视频编解码器的示例,源数据可以包括根据h.264格式编码的实时视频流。进一步举例来说,以及作为地延迟音频编解码器的示例,源数据可包括根据CELT格式编码的实时音频流。
[0035]接着发送器设备202以准备源数据(例如从应用接收的压缩或非压缩形式的源数据)用于通过形成多个数据包进行传输,如在216和218所指示。形成数据包可以包括将源数据集合划分成多个离散的有效载荷并向每个有效载荷添加增补数据以形成数据包。通过发送器设备202形成的数据包可以包括源包(如在216所指示),其可以包含源数据212 (以压缩格式,如图2所示的示例)和FEC包(如218所指示),其包含源数据212的冗余并可以根据某种纠错码来形成。
[0036]根据本公开的某些方面,源数据212可以由多个帧组成,帧可以由在发送器设备202上运行的应用定义,并且发送器设备可以形成用于每个帧的多个数据包(包括源包和FEC包)。在本公开的某些实施中,在发送数据包之前,发送器设备202可使用用于传输过程中的特定识别信息标记每个数据包。根据某些方面,被添加到每个数据包的标记信息(如在216和218所指示)可包括帧标识符(例如,帧号,其指示每个数据包属于哪个帧)以及序列标识符(例如,序列号,其指示每个数据包在帧内和跨帧延伸的序列内属于何处)。因此,发送器设备可以经配置对每个不同数据包递增序列号,并且可对每个不同的数据帧递增帧号。在某些实施中(例如源数据包括实时音频和视频流的实施),标记信息还可任选地包括媒体类型标识符,其可以识别特定数据包是包含音频数据还是视频数据。接着发送器设备可以在数据包形成并被标记后将其发送(如在220所指示),通过网络206将将数据包输送到一个或多个接收器设备204。
[0037]可对每个新包递增预定量(例如,递增I)的序列号。接收器设备204可以使用接收包的序列号来确定多少个包丢失。该标记信息还可以包括额外的信息以确定(例如)多少个包在帧内以及给定的包在该帧内是哪个包索引。
[0038]接收器设备204可以接收被正确输送的这些数据包(例如,未被网络206丢弃的数据包),并且接收器设备204可以在数据包到达时累积该数据包,如在222所指示。接收器设备204可以使用每个包包含的增补信息(包括例如帧和序列标识符信息)以相应汇编所接收的数据。接收器设备204也可以根据所使用的特定纠错技术使用FEC包重构任何丢失的源包。
[0039]根据某些方面,接收器设备204可以经配置从每个包包含的标记信息周期性地确定给定时间周期内的包丢失,如在224所指示。在某些实施中,接收器设备204可以将在一定时间周期内所接收的数据包的总数与该时间周期内被标记为已接收包的序列信息比较以确定该特定周期内包丢失的比率。例如,由于序列标识符可以随每个新的包递增,如果所有的数据包被正确输送,那么序列标识符可以表示在特定时间周期内应该已接收的数据包的总数。接收器设备204可以将这个从序列标识符确定的预期包数量与该时间周期内实际接收的包的数量比较,以便计算该时间周期内的包丢失。接着接收器设备204可以向发送器设备202发送包丢失作为特定时间周期内的反馈信息,如在226所指示。
[0040]需要注意的是,用于将反馈信息从接收器设备发送回发送器设备的传输协议可以是与用于将数据包从发送器传输到接收器的不可靠协议相同的协议,或它可以是不同的协议。例如,用于从发送器向接
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1