【技术实现步骤摘要】
【国外来华专利技术】用于流式数据的前向纠错优先权要求本申请要求2016年8月1日提交的美国专利申请号15/235,508的优先权益处,所述申请的全部公开内容以引用方式并入本文。
本公开涉及通过网络进行的数据输送。具体地,本公开的各方面涉及用于在包交换网络中使用不可靠传输协议进行拥塞控制的系统和方法。
技术介绍
随着数字流服务和各种基于云的计算解决方案的日渐增加,在远程装置之间快速地且准确地传送大量数据的能力是一项重要任务。通过网络(诸如互联网、广域网(WAN)或局域网(LAN))的共享资源向目的地系统发送数字数据通常涉及将数据布置成可具有固定或可变长度的格式化块(其被称为包)。每个数据包通常包括有效载荷或主体,所述有效载荷或主体将基本用户数据递送至目的地;以及用于路由和控制目的的某些补充信息,所述某些补充信息通常至少部分地包含在数据包的标头内。广义上说,网络、发送系统和接收系统可使用这类补充信息来确保将有效载荷正确路由和递送至预期目的地。以此方式通过包交换网络输送数据的经常不可避免的结果是包丢失,这在一个或多个数据包不能正确地到达其目的地时发生。由于多种因素(包括信道拥塞、信号退化和其他原因),包丢失可能出现。为了防止致使包丢失发生的某些网络条件,同时还在网络信道中有效地使用可用带宽,已经开发了多种纠错技术。此外,存在一系列传输协议,所述一系列传输协议可并入用于处置包丢失的工具,并且用于在包丢失发生时处置所述包丢失的特定方法取决于在数据传送期间使用的特定传输协议。一般而言,这些传输协议可以分为如下两种类型:可靠协议和不可靠协议,所述可靠协议和不可靠协议各自存在某些折衷,并且在 ...
【技术保护点】
1.一种用于利用前向纠错(FEC)对帧进行编码并传输帧的方法,所述方法包括:接收或生成多个未编码帧,所述多个未编码帧包括序列中的当前帧和所述序列中的一个或多个先前帧;以第一比特率对所述当前帧进行编码以生成一个或多个编码的源帧;以等于或低于所述第一比特率的第二比特率对所述一个或多个先前帧进行编码以生成一个或多个编码的FEC帧;将所述一个或多个编码的源帧和所述一个或多个编码的FEC帧打包成一个或多个数据包;以及将所述一个或多个数据包存储在存储器中或通过数据网络传输所述一个或多个数据包。
【技术特征摘要】
【国外来华专利技术】2016.08.01 US 15/225,5081.一种用于利用前向纠错(FEC)对帧进行编码并传输帧的方法,所述方法包括:接收或生成多个未编码帧,所述多个未编码帧包括序列中的当前帧和所述序列中的一个或多个先前帧;以第一比特率对所述当前帧进行编码以生成一个或多个编码的源帧;以等于或低于所述第一比特率的第二比特率对所述一个或多个先前帧进行编码以生成一个或多个编码的FEC帧;将所述一个或多个编码的源帧和所述一个或多个编码的FEC帧打包成一个或多个数据包;以及将所述一个或多个数据包存储在存储器中或通过数据网络传输所述一个或多个数据包。2.如权利要求1所述的方法,其中所述第一比特率与所述第二比特率的比介于约1与约10之间。3.如权利要求1所述的方法,其中所述多个未编码帧包括一个或多个音频帧。4.如权利要求1所述的方法,其中通过数据网络传输所述一个或多个数据包包括通过无线链路传输所述一个或多个数据包。5.如权利要求1所述的方法,其中将所述一个或多个编码的源帧和所述一个或多个编码的FEC帧打包包括将序列信息放置到所述一个或多个数据包中的每个数据包中,其中所述序列信息指定所述一个或多个编码的源帧和所述一个或多个编码的FEC帧在所述序列中的对应位置。6.如权利要求1所述的方法,其中将所述一个或多个编码的源帧和所述一个或多个编码的FEC帧打包包括将序列信息放置到所述一个或多个数据包中的每个数据包的标头中,其中所述序列信息指定所述一个或多个编码的源帧和所述一个或多个编码的FEC帧在所述序列中的对应位置。7.如权利要求1所述的方法,其中将所述一个或多个编码的源帧和所述一个或多个编码的FEC帧打包包括将序列信息放置到所述一个或多个数据包中的每个数据包中,其中所述序列信息指定所述一个或多个编码的源帧和所述一个或多个编码的FEC帧在所述序列中的对应位置,其中所述序列信息包括下列中的任一个或多个:所述给定数据包的有效载荷中的编码的FEC帧的数量;所述第一比特率;所述第二比特率;所述有效载荷中哪一个编码帧对应于所述源帧以及所述有效载荷内哪一个编码帧对应于FEC帧;或所述有效载荷内所述编码的源帧或所述编码的FEC帧的序列标识符。8.如权利要求1所述的方法,其中所述一个或多个数据包包括一个或多个统一数据报协议(UDP)数据包。9.如权利要求1所述的方法,其中将所述一个或多个数据包存储在存储器中或通过数据网络传输所述一个或多个数据包包括将所述一个或多个数据包存储在所述存储器中并且通过所述数据网络传输所述一个或多个数据包。10.如权利要求1所述的方法,其中将所述一个或多个数据包存储在存储器中或通过数据网络传输所述一个或多个数据包包括通过所述数据网络传输所述一个或多个数据包,所述方法还包括确定通过所述数据网络进行的传输的突发丢失的持续时间。11.如权利要求1所述的方法,其中将所述一个或多个数据包存储在存储器中或通过数据网络传输所述一个或多个数据包包括通过所述数据网络传输所述一个或多个数据包,所述方法还包括确定通过所述数据网络进行的传输的突发丢失的持续时间,并且其中以等于或低于所述第一比特率的所述第二比特率对所述一个或多个先前帧进行编码以生成所述一个或多个编码的FEC帧包括对足够数量的先前帧进行编码以覆盖通过所述数据网络进行的传输的所述确定的突发丢失的持续时间。12.如权利要求1所述的方法,其中以第一比特率对所述当前帧进行编码以生成所述一个或多个编码的源帧包括利用编解码器的第一实例对所述当前帧进行编码,并且其中以等于或低于所述第一比特率的第二比特率对所述一个或多个先前帧进行编码以生成一个或多个编码的FEC帧包括利用所述编解码器的第二实例对所述一个或多个先前帧进行编码。13.如权利要求1所述的方法,其中所述多个未编码帧包括一个或多个视频帧。14.如权利要求1所述的方法,其中所述多个未编码帧包括来自游戏界面的输入流的一个或多个帧。15.如权利要求1所述的方法,其中所述多个未编码帧包括一个或多个音频帧,其中所述一个或多个音频帧中的每一个包括对应于两个或更多个音频信道的信息。16.如权利要求1所述的方法,其中所述多个未编码帧包括一个或多个音频帧,其中所述一个或多个音频帧中的每一个包括对应于左信道和右信道的信息。17.如权利要求1所述的方法,其中所述多个未编码帧包括一个或多个音频帧,其中所述一个或多个音频帧中的每一个包括对应于左信道、右信道和一个或多个另外的信道的信息。18.如权利要求1所述的方法,其中所述多个未编码帧包括一个或多个音频帧,其中所述一个或多个音频帧中的每一个包括对应于左信道、右信道和一个或多个另外的信道的信息,其中对所述当前帧进行编码包括以所述第一比特率对所述左信道和右信道和所述一个或多个另外的信道进行编码,并且其中将所述一个或多个编码的源帧打包包括将所述编码的左信道和右信道放置到一个或多个第一数据包中并且将所述编码的另外的信道放置到一个或多个第二数据包中。19.如权利要求1所述的方法,其中所述多个未编码帧包括一个或多个音频帧,其中所述一个或多个音频帧中的每一个包括对应于左信道、右信道和一个或多个另外的信道的信息,其中对所述当前帧进行编码包括以所述第一比特率对对应于所述当前帧的所述左信道和右信道以及所述一个或多个另外的信道的信息进行编码,其中将所述一个或多个先前帧编码为FEC帧包括以所述第二比特率对对应于所述一个或多个先前帧的所述左信道、右信道和一个或多个另外的信道的组合的信息进行编码,其中将所述一个或多个编码的源帧和所述一个或多个编码的FEC帧打包包括将对应于所述当前帧的所述左信道和右信道的所述编码信息和对应于所述一个或多个先前帧的所述左信道、右信道和一个或多个另外的信道的所述组合的所述编码信息放置到一个或多个第一数据包中,并且将所述当前帧的所述编码的另外的信道放置到一个或多个第二数据包中。20.如权利要求1所述的方法,其中所述多个未编码帧包括一个或多个音频帧,其中所述一个或多个音频帧中的每一个包括对应于第一左信道、第一右信道、第二左信道和第二右信道的信息,其中对所述当前帧进行编码包括以所述第一比特率对对应于所述当前帧的所述第一左信道和第二左信道以及第一右信道和第二右信道的信息进行编码,其中将所述一个或多个先前帧编码为FEC帧包括以所述第二比特率对对应于所述一个或多个先前帧的所述第一左信道和第二左信道以及第一右信道和第二右信道的组合的信息进行编码,其中将所述一个或多个编码的源帧和所述一个或多个编码的FEC帧打包包括将对应于所述当前帧的所述第一左信道和第一右信道的所述编码信息和对应于所述一个或多个先前帧的所述第一左信道和第二左信道以及第一右信道和第二右信道的所述组合的所述编码信息放置到一个或多个第一数据包中,并且将对应于所述当前帧的所述第二左信道和第二右信道的所述编码信息放置到一个或多个第二数据包中。21.如权利要求1所述的方法,其中所述多个未编码帧包括一个或多个音频帧,其中所述一个或多个音频帧中的每一个包括对应于第一左信道、第一右信道、第二左信道、第二右信道以及中心信道的信息,其中对所述当前帧进行编码包括以所述第一比特率对对应于所述当前帧的所述第一左信道和第二左信道、所述第一右信道和第二右信道以及所述中心信道的信息进行编码,其中将所述一个或多个先前帧编码为FEC帧包括以所述第二比特率对对应于所述一个或多个先前帧的所述第一左信道和第二左信道、所述第一右信道和第二右信道以及所述中心信道的组合的信息进行编码,其中将所述一个或多个编码的源帧和所述一个或多个编码的FEC帧打包包括将对应于所述当前帧的所述第一左信道和第一右信道的所述编码信息和对应于所述一个或多个先前帧的所述第一左信道和第二左信道、第一右信道和第二右信道以及所述中心信道的所述组合的所述编码信息放置到一个或多个第一数据包中,并且将对应于所述当前帧的所述第二左信道、所述第二右信道和所述中心信道的所述编码信息放置到一个或多个第二数据包中。22.如权利要求1所述的方法,其中所述多个未编码帧包括一个或多个音频帧,其中所述一个或多个音频帧中的每一个包括对应于第一左信道、第一右信道、第二左信道、第二右信道、中心信道以及低频效果(LFE)信道的信息,其中对所述当前帧进行编码包括以所述第一比特率对对应于所述当前帧的所述第一左信道和第二左信道、所述第一右信道和所述第二右信道以及所述中心信道的信息进行编码,其中将所述一个或多个先前帧编码为FEC帧包括以所述第二比特率对对应于所述一个或多个先前帧的所述第一左信道和第二左信道、所述第一右信道和第二右信道、所述中心信道以及所述LFE信道的组合的信息进行编码,其中将所述一个或多个编码的源帧和所述一个或多个编码的FEC帧打包包括将对应于所述当前帧的所述第一左信道和第一右信道的所述编码信息和对应于所述一个或多个先前帧的所述第一左信道和第二左信道、第一右信道和第二右信道、所述中心信道以及所述LFE信道的所述组合的所述编码信息放置到一个或多个第一数据包中,并且将对应于所述当前帧的所述第二左信道、所述第二右信道和所述中心信道的所述编码信息放置到一个或多个第二数据包中。23.一种系统,其包括:处理器模块;耦合到所述处理器的存储器,其中所述存储器包含被配置来实现方法的可执行指令,所述方法包括:接收或生成多个未编码帧,所述多个未编码帧包括当前帧和一个或多个先前帧;以第一比特率对所述当前帧进行编码以生成一个或多个编码的源帧;以等于或低于所述第一比特率的第二比特率对所述一个或多个先前帧进行编码以生成一个或多个编码的FEC帧;将所述一个或多个编码的源帧和所述一个或多个编码的FEC帧打包成一个或多个数据包;以及将所述一个或多个数据包存储在存储器中或通过数据网络传输所述一个或多个数据包。24.一种非暂时性计算机可读介质,其具有嵌入其中的计算机可读指令,所述计算机可读指令被配置来实现方法,所述方法包括:接收或生成多个未编码帧,所述多个未编码帧包括当前帧和一个或多个先前帧;以第一比特率对所述当前帧进行编码以生成一个或多个编码的源帧;以等于或低于所述第一比特率的第二比特率对所述一个或多个先前帧进行编码以生成一个或多个编码的FEC帧;将所述一个或多个编码的源帧和所述一个或多个编码的FEC帧打包成一个或多个数据包;以及将所述一个或多个数据包存储在存储器中或通过数据网络传输所述一个或多个数据包。25.一种用于解码和重构包含一个或多个编码的源帧和一个或多个编码的前向纠错(FEC)帧的数据包的方法,所述方法包括:接收多个数据包,其中所述多个中的每个数据包包含对应于序列中以第一比特率编码的源帧和所述序列中以等于或小于所述第一比特率的第二比特率编码为FEC帧的一个或多个先前帧的编码信息;将对应于所述一个或多个编码的源帧和所述一个或多个先前帧的所述编码信息从所述多个中的每个数据包中解包;对所述一个或多个编码的源帧进行解码以生成一个或多个解码的源帧;确定对应于所述序列的给定源帧的编码信息是否从所述多个数据包缺失;识别所述多个数据包中的对应于所述给定源帧的一个或多个对应的编码的FEC帧;对所述一个或多个对应的编码的FEC帧进行解码以生成一个或多个解码的FEC帧;使用一个或多个解码的FEC帧生成对应于所述给定源帧的重构帧;以及将所述一个或多个解码的源帧和所述重构的缺失帧存储在存储器中和/或利用显示器呈现所述序列中的一个或多个解码的源帧和所述重构的缺失帧。26.如权利要求25所述的方法,其中所述一个或多个编码的源帧和一个或多个编码的前向纠错(FEC)帧是编码的音频帧。27.如权利要求25所述的方法,其中接收所述多个数据包包括通过网络接收所述多个数据包。28.如权利要求25所述的方法,其中接收所述多个数据包包括通过无线链路接收所述一个或多个数据包。29.如权利要求25所述的方法,其中所述多个数据包中的每个数据包包括序列信息,所述序列信息指定所述源帧和所述序列中编码为FEC帧的所述一个或多个先前帧在所述序列中的对应位置。30.如权利要求25所述的方法,其中所述多个数据包中的每个数据包的标头包括序列信息,所述序列信息指定所述源帧和所述序列中编码为FEC帧的所述一个或多个先前帧在所述序列中的对应位置。31.如权利要求25所述的方法,其中所述多个数据包中的每个数据包包括序列信息,所述序列信息指定所述源帧和所述序列中编码为FEC帧的所述一个或多个先前帧在所述序列中的对应位置,其中所述序列信息包括下列中的任一个或多个:所述给定数据包的有效载荷中的编码的FEC帧的数量;所述第一比特率;所述第二比特率;所述有效载荷中哪一个编码帧对应于所述源帧以及所述有效载荷内哪一个编码帧对应于FEC帧;或所述有效载荷内所述编码的源帧或所述编码的FEC帧的序列标识符。32.如权利要求25所述的方法,其中所述一个或多个数据包包括一个或多个统一数据报协议(UDP)包。33.如权利要求25所述的方法,其中所述一个或多个编码的源帧和一个或多个编码的前向纠错(FEC)帧被编码成包括一个或多个编码的音频帧。34.如权利要求25所述的方法,其中所述一个或多个编码的源帧和一个或多个编码的前向纠错(FEC)帧被编码成包括来自游戏界面的输入流的一个或多个编码帧。35.如权利要求25所述的方法,其中所述一个或多个编码的源帧和一个或多个编码的前向纠错(FEC)帧对应于一个或多个音频帧,其中所述一个或多个音频帧包括对应于两个或更多个音频信道的信息。36.如权利要求25所述的方法,其中所述一个或多个编码的源帧和一个或多个编码的前向纠错(FEC)帧对应于一个或多个音频帧,其中所述一个或多个音频帧包括对应于左信道和右信道的信息。37.如权利要求25所述的方法,其中所述一个或多个编码的源帧和一个或多个编码的前向纠错(FEC)帧对应于一个或多个音频帧,其中所述一个或多个音频帧中的每一个包括对应于左信道、右信道和一个或多个另外的信道的信息,其中对应于所述源帧的所述编码信息包括对应于一个或多个第一数据包中的所述左信道和右信道的编码信息和对应于一个或多个第二数据包中的所述一个或多个另外的信道的编码信息。38.如权利要求25所述的方法,其中所述一个或多个编码的源帧和一个或多个编码的前向纠错(FEC)帧对应于一个或多个音频帧,其中所述一个或多个音频帧中的每一个包括对应于左信道、右信道和一个或多个另外的信道的信息,其中对应于所述源帧的所述编码信息包括对应于一个或多个第一数据包中的所述左信道和右信道的编码信息和对应于一个或多个第二数据包中的所述一个或多个另外的信道的编码信息,其中所述一个或多个第一数据包还包括一个或多个编码的FEC帧,所述一个或多个编码的FEC帧包含在所述第二比特率下对应于所述一个或多个先前帧的所述左信道、右信道和一个或多个另外的信道的组合的编码信息。39.如权利要求25所述的方法,其中所述一个或多个编码的源帧和一个或多个编码的前向纠错(FEC)帧对应于一个或多个音频帧,其中所述一个或多个音频帧中的每一个包括对应于左信道、右信道和一个或多个另外的信道的信息,其中对应于所述源帧的所述编码信息包括对应于一个或多个第一数据包中的所述左信道和右信道的编码信息和对应于一个或多个第二数据包中的所述一个或多个另外的信道的编码信息,其中所述一个或多个第一数据包还包括一个或多个编码的FEC帧,所述一个或多个编码的FEC帧包含在所述第二比特率下对应于所述一个或多个先前帧...
【专利技术属性】
技术研发人员:KH洛夫,K扬,
申请(专利权)人:索尼互动娱乐有限责任公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。