CN101861709B - 用于具有合并的自动重复请求的自适应前向纠错以在无线局域网中进行可靠多播的方法和装置 - Google Patents
用于具有合并的自动重复请求的自适应前向纠错以在无线局域网中进行可靠多播的方法和装置 Download PDFInfo
- Publication number
- CN101861709B CN101861709B CN200780101553.4A CN200780101553A CN101861709B CN 101861709 B CN101861709 B CN 101861709B CN 200780101553 A CN200780101553 A CN 200780101553A CN 101861709 B CN101861709 B CN 101861709B
- Authority
- CN
- China
- Prior art keywords
- error correction
- forward error
- correction coding
- content
- layer
- 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.)
- Active
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/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1812—Hybrid protocols; Hybrid automatic repeat request [HARQ]
- H04L1/1819—Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
-
- 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/0057—Block codes
-
- 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
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
- H04L2001/0093—Point-to-multipoint
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
描述了一种用于增加多播可靠性的方法和装置,包括:从第一多播组接收内容和多个前向纠错编码分组的第一层;以及加入附加的多播组,以便接收前向纠错编码分组的附加层之一以及所述内容、连同所述多个前向纠错编码分组的另一附加层。
Description
技术领域
本发明涉及无线通信网络,更具体地涉及通过应用前向纠错和自动重复请求的组合来增加多播应用的可靠性。
背景技术
如在这里所使用的,“内容”用于包括音频、视频、以及包括任何多媒体数据的任何其它形式的数据。术语视频和内容在这里可互换地使用。如这里所使用的,“/”表示用于相同或者相似组件或者结构的可供选择的名称。也就是说,这里所使用的“/”可被当作“或”的含义。
无线局域网(WLAN)由于其灵活性和低成本已在家庭、酒店、校园、以及诸如机场和火车站之类的其它热点被广泛使用。尽管在大多数情况下用户连接到WLAN以浏览网站或者检查电子邮件,但是对于WLAN支持实时多媒体流传输存在正在增长的需要。然而,无线信道可能经受多径衰落以及干扰,其可能导致随机和突发分组丢失并且影响流传输应用的内容回放质量。为了提高可靠性,可以使用诸如前向纠错(FEC)和/或自动重复请求(ARQ)之类的纠错方案。在FEC中,与原始/源媒体分组/数据一起发送奇偶分组。然而,由于每个移动设备可能经历不同的信道状况,因此难以判断要发送多少FEC。较低的FEC可能导致较差的保护,并且丢失的分组/数据可能不能够被恢复。较高的FEC可能导致更多的开销并且浪费网络带宽。本发明描述了一种自适应方法,其给予客户端/移动设备适当的保护,同时有效地使用带宽资源。
使用ARQ用于纠错,客户端/移动设备的数据/分组恢复可能经受较长的往返(round trip)时间延迟。在多播应用中,ARQ也可能造成反馈爆炸(feedback explosion)问题。然而,在往返时间延迟较短并且使用适当的反馈抑制算法时,ARQ仍是对于实时内容流传输来说可行的纠错方案。
FEC是用于改进多播应用的可靠性的有效方式。可以在应用层处利用多种FEC方案,以用于分组级纠错。候选方案包括具有/不具有随机交织的Pro-MPEG和Reed-Solomon(RS)。所有的FEC方案都具有优点和缺点。Pro-MPEG是非常轻型的方案,因为其仅利用XOR运算,而其纠错能力相应地受限制。Pro-MPEG不能纠正一些错误模式(error pattern),即使分组丢失并不高。RS在大多数情况下与基于XOR的FEC方案相比具有更好的纠错能力,因为RS不依赖错误模式地工作。利用RS的成本增加了计算资源。然而,在一些情况下,RS与基于XOR的FEC方案相比具有更低的性能,因为RS(n,k)码在FEC编码块中的n个编码分组中有多于n-k个分组丢失的情况下完全失效。在存在多于n-k个分组丢失时,基于XOR的FEC仍可以纠正部分失去的分组/数据。
FEC的问题是首先要判断要发送多少FEC。在多播应用中,不同的移动设备可能具有不同的信道状况和丢失率。单个静态FEC不能满足所有移动设备的需求。在现有技术中引入了与可缩放源编码(scalable source coding)相结合的分层的FEC,以改进有线网络中的带宽使用效率和服务质量。然而,现有技术方案未考虑ARQ重新传送(retransmission)。如果接收机的分组丢失大于FEC码的能力,则不能恢复丢失的分组。此外,接收机不能得到其需要的FEC分组的确切数量,因为其在各层中以不连续数目的FEC分组得到FEC。另外,现有技术的分层的方案未考虑多媒体会话的多个轨道之间的同步。例如,在多媒体会话中,经常存在音频轨道和视频轨道,在使用相同的FEC块大小的情况下,视频轨道与音频轨道相比具有高得多的比特率,对于音频轨道而言填满FEC缓存器将花费长得多的时间。
在一种现有技术解决方案中,设置将用于在FEC块中进行FEC编码的分组的最大数目(maxK)。在缓存器中用于一轨道的视频(音频)分组的数目达到maxK时,执行基于这些视频(音频)分组的FEC编码。同时,无论在其它音频(视频)轨道缓存器中有多少分组,也执行基于其它轨道的音频(视频)媒体分组的FEC编码。由于N和K两者对于不同的FEC块来说都不是固定的,因此N和K必须被包括在FEC首部中,由此,信息被传递给客户端。
在现有技术中,在从客户端到服务器的平均往返时间较低并且多播会话中客户端的数目较低时,在多播中使用了ARQ。通常,实施反馈抑制以避免反馈爆炸的问题。在现有技术的混合ARQ方案中,客户端/移动设备发送对于其需要用于解码FEC块的奇偶分组的数目的请求,而不是对于原始媒体分组的序列号的请求。重新传送的奇偶分组在多播会话中被多播到所有客户端。奇偶分组可以由不同的客户端/移动设备使用以恢复不同的丢失。
不同的情形(scenario)可以使用不同的纠错方案。在一些情况下,FEC可能更有效,而在其它情况下,ARQ可能是更好的选择。对于所有的应用情形提供单个解决方案将是有利的。
发明内容
本发明描述了一种用于通过应用前向纠错和自动重复请求的组合来增加WLAN中的多播应用的可靠性的自适应方法。在无线广播/多播系统中,分组/数据可能经受由于多径衰落、干扰、移交(handoff)情况等的随机和突发丢失。为了提高可靠性,可以采用诸如前向纠错(FEC)和自动重复请求(ARQ)之类的纠错方案。组合FEC和ARQ存在优点。组合FEC和ARQ可以增加系统实施灵活性并且提高系统在特定情形下的性能。本发明了描述了一种组合的方案,在这里将其表示为合并的混合ARQ方案或者mhARQ方案。在本发明的mhARQ系统中,FEC分组被编码并且被划分为一个或者多个自适应FEC多播组以及一个ARQ多播组。WLAN广播/多播系统可以由此被配置以在多播应用中使用ARQ或者自适应FEC或者它们两者。
描述了一种用于增加多播可靠性的方法和装置,包括从第一多播组接收内容和多个前向纠错编码分组的第一层,并且加入附加的多播组,以便接收前向纠错编码分组中的附加层之一和内容、连同多个前向纠错编码分组中的另一附加层。还描述了一种用于增加多播可靠性的方法和系统,包括生成多个层的前向纠错编码分组,传送内容和所述多个前向纠错编码分组的第一层,应请求而传送所述多个前向纠错编码分组的第二层,在接收到自动重复请求消息时传送所述多个前向纠错编码分组的第三层,并且在接收到自动重复请求内容请求时重新传送内容和所述多个前向纠错编码分组的第四层。
应注意:每一层的FEC分组可以是多个多播组。也就是说,上述第二层实际上可以是通过多个多播组传送的若干子层。对于第二层,存在或者可以存在若干多播组。对于每个多播组,延迟时间是不同的(并且是可配置的)。客户端/移动设备不需要加入此层中的所有多播组,而是仅需要加入客户端/移动设备需要以便接收对于恢复内容来说足够的FEC/奇偶分组的多播组。
附图说明
在结合附图阅读以下具体描述时,从以下具体描述中最好地理解本发明。附图包括在下面简要描述的以下各图:
图1示出了用于热点多媒体内容无线LAN播送(经由无线LAN(WLAN)的多播)应用的典型的WLAN视频分发系统。
图2示出了三种类型的用于源流的FEC组。
图3是本发明的合并的混合ARQ方法的客户端/移动设备的的示意图/框图。
图4A、4B、4C和4D合起来是客户端代理模块中的处理的三个线程的流程图。
图5是本发明的客户端侧代理的数据结构的图。
图6是本发明的合并的混合ARQ方法的服务器侧的示意图/框图。
具体实施方式
不同的情形可以使用不同的纠错方案。在一些情况下,FEC可能更有效,而在其它情况下,ARQ可能是更好的选择。在一些情形下,可以将这两个方案组合在一起以提高性能。对于所有的应用情形提供单个解决方案将是有利的。
本发明描述了一种用于通过应用前向纠错和自动重复请求的组合来增加WLAN中的多播应用的可靠性的自适应方法。在无线广播/多播系统中,分组/数据可能经受由于多径衰落、干扰、移交情况等的随机和突发丢失。组合FEC和ARQ存在优点。组合FEC和ARQ可以增加系统实施灵活性并且提高系统在特定情形下的性能。在本发明的mhARQ系统中,FEC分组被编码并且被划分为一个或者多个自适应FEC多播组以及一个ARQ多播组。WLAN广播/多播系统可以由此被配置以在多播应用中使用ARQ或者自适应FEC或者它们两者。也就是说,本发明是对于多播多媒体内容应用的单个集成数据/分组恢复解决方案。如这里所使用的,除非另外指示,术语“组”表示多播组。
图1示出了用于热点多媒体内容无线LAN播送(经由无线LAN(WLAN)的多播)应用的典型的WLAN分发系统。内容服务器(要求的内容105和实况内容110)通过高速以太网LAN 125连接到无线接入点120a、120b。内容服务器(要求的内容(COD)、实况内容)105、110将一个或多个节目(音频和/或视频)经由高速有线网络多播到无线接入点120a、120b。执行应用层FEC,并且通过流传输服务器115以无延迟和有延迟FEC多播组发送FEC分组,以提供错误恢复能力。接入点120a、120b将内容经由无线链路135以多播分发给无线设备130a、130b、130c、130d。无线设备130a、130b、130c、130d的用户可以观看一个或者多个节目,并且同时接入因特网140。对于因特网140的接入是经由无线链路135、适当的WLAN接入点120a和120b、高速以太网LAN 125以及以太网开关145、通信链路150以及可能有防火墙155进行的。ARQ服务器160从客户端/移动设备接收NACKS并且发送ARQFEC分组。在一些情况下,ARQ服务器和流传输服务器可以共同位于一个装置/机器/设备中。如果有延迟FEC分组不足以恢复丢失的/损坏的分组/数据,则客户端/移动设备经由IGMP加入ARQ FEC组。
用于内容/源/视频/音频流的FEC分组被划分为不同的层。以不同的多播组传送每个层。如图2所示,存在三种类型的用于源流的FEC组:
●无延迟FEC组:这些组中的FEC分组相对于内容/源未被延迟,即,这些FEC分组一生成就被发送。为了随机丢失恢复,客户端/移动设备基于其“长期”信道状况加入一个或者多个无延迟FEC组。如果成员数(membership)是静态的或者“半静态的”(以分钟表示),则客户端/移动设备不需要加入有延迟FEC组或者发送ARQ。无延迟FEC减少来自客户端/移动设备的反馈流量。
●有延迟FEC组:这些组中的FEC分组的传送相对于媒体分组被延迟可配置的时间。使用因特网组管理协议(IGMP),客户端/移动设备在无延迟FEC分组不足以恢复数据/内容丢失的情况下动态地(每FEC块)加入/离开有延迟FEC组。如果加入时间大于内容和有延迟FEC之间的时移,则对应的奇偶分组将被接收以由客户端/移动设备恢复丢失的内容/数据分组。为了节省无线带宽,如果没有与AP/路由器120a、120b相关联的客户端/移动设备加入多播组,则用于此特定组的有延迟FEC数据将不通过所述AP/路由器在无线网络中传送。
●ARQ FEC组:ARQ FEC组中的FEC数据根据来自客户端/移动设备的NACK而发送。客户端/移动设备将NACK发送给ARQ服务器,并且在有延迟FEC分组不足以恢复丢失的分组/数据的情况下经由IGMP加入对应的ARQ FEC组。
●ARQ源/内容组:如果丢失的分组的数目超过阈值,则ARQ服务器可以以多播组重新传送媒体分组的原始块。原因是FEC分组用于要么恢复所有丢失的/损坏的分组/数据,要么一点也不恢复丢失的/损坏的分组/数据。在存在许多丢失的/损坏的媒体分组/数据时,接收机至少能够接收重新传送的媒体分组中的一些。
为了灵活性,可以配置无延迟FEC组和有延迟FEC组的数目、内容流和有延迟FEC流之间的时移、以及无延迟FEC组、有延迟FEC组以及ARQ FEC组中的FEC的量。
可用的商用和免费软件内容/视频播放器,例如、Quicktime、ThomsonMultimedia Application Framework(MMAF)、以及VideoLAN Client(VLC)播放器,不支持FEC。对于商用播放器,源代码通常不可用。即使免费软件的源代码可用,也难以将FEC并入每个免费软件播放器并且维护和更新源代码。本发明包括如图3所示的客户端代理架构。客户端代理可以与任何商用和免费软件视频播放器一起工作,而不需要改变播放器代码。客户端代理从不同的多播组接收媒体和FEC分组,加入以及离开FEC多播组,将ARQNACK发送到ARQ服务器,接收重新传送的FEC和媒体分组,恢复丢失的媒体分组,并且通过通信接口(communication socket)将经过恢复的媒体分组发送到播放器。
仍旧参照图3,客户端/移动设备经由WLAN接口305(经由WLAN接入点120a、120b)从内容服务器105、110接收内容。客户端/移动设备可以同时是通过共用的用户数据报协议/因特网协议(UDP/IP)协议栈315的多个多播组(内容、FEC、有延迟FEC、ARQ FEC、ARQ源/内容)的成员,所述多个多播组中的每一个由分开的流(310a、310b)指示。在共用的UDP/IP协议栈315处,内容320和FEC分组325被分开并且进入本发明的FEC客户端代理模块330。可以将经过恢复的内容存储在存储系统335中,该存储系统335可以包括诸如盘、磁带、CD、存储器、DVD等之类的任何形式的存储装置,以用于以后的回放,或者可以经由通信接口将经过恢复的内容发送到播放器(或者任何合适的并且可用的显示设备)355,所述通信接口包括UDP/IP协议栈340和345以及显示设备355处的UDP/IP协议栈350。
在内容服务器侧,在执行FEC编码操作之前,对特定数目的媒体分组(K个)进行缓存。多媒体内容可以包括多个轨道,例如视频轨道和音频轨道。对于每个轨道分别执行FEC编码操作。不同的媒体轨道具有不同的比特率,通常视频与音频相比具有更高的比特率。对于视频和音频两者使用相同的FEC块大小将在接收机处产生音频/视频同步问题。例如,在视频缓存器中的视频分组的数目达到K时,对于这些分组执行FEC编码,将视频FEC分组送出,并且清空缓存器以用于下一块;同时,音频缓存器中的音频分组的数目在其达到K之前可能仍需要等待一未指定的时间。一种途径是对于视频和音频使用不同的块大小。然而,对于特定块大小的视频,如何为音频选择块大小是一个设计问题。不同的内容可能需要音频和视频轨道之间的不同的块大小配对。即使对于相同的内容,可变比特率的内容在不同时刻对于音频和视频可能需要不同的K。
对于可变比特率的流,用于将固定数目的媒体分组填充到缓存器中的时间可能变化。为了进一步防止由于FEC缓存可能引起的回放抖动,在本发明中为FEC块设置最大缓存时间(maxT)。如果用于视频或者音频FEC缓存器中的第一分组的缓存时间等于或者大于maxT,或者用于缓存器中的一轨道的视频(或者音频)分组的数目达到maxK(最大缓存器大小),则执行对于多媒体内容的视频轨道和音频轨道两者的分组的FEC编码。
对于实时应用,使用变量N和K可以解决音频和视频同步问题,但是可能造成额外的编码和解码开销,因为用于不同的N和K的生成矩阵是不同的,并且创建生成矩阵在计算上是非常耗资源的(computationally expensive)。为了提高编码和解码效率,在本发明中maxK和maxN是固定的。该生成矩阵是基于maxK和maxN两者创建的,并且在服务器侧和客户端侧两者上仅初始化一次。由此,可以基于收缩/截短码(punctured/shortened code)使用初始的生成矩阵来生成所有的(N,K)码,其中K≤maxK,并且N≤maxN,所述收缩/截短码显著减少编码和解码时间。
客户端代理330的功能细节在图4A、图4B、图4C和图4D中详细示出。客户端代理的功能/动作/步骤可以以以下方式实施:软件、硬件、固件、专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)、或上述方式的任何组合或者任何适当的部件。客户端代理接收并且缓存接收到的FEC和媒体分组,基于分组丢失估计信道状况。如果客户端代理不能从FEC块恢复原始消息,则客户端代理将加入有更多延迟的FEC组,和/或发送对于重新传送更多的FEC或者原始媒体分组的ARQ请求。ARQ反馈抑制算法也在客户端代理处实施。如果一些分组丢失/损坏,但是FEC块可被解码,则客户端代理将从奇偶(FEC)分组恢复丢失的/损坏的分组,并且向播放器发送经过恢复的媒体分组。如果分组丢失/损坏,并且客户端代理不能解码FEC分组,则在缓存器定时器到期时,即使一些媒体分组丢失并且不能被恢复,客户端代理也将向播放器发送接收到的媒体分组。
通过三个分开的线程执行客户端代理的任务。主线程将接收并且缓存媒体/奇偶分组。主线程还将接收并且处理来自多播组中的其它客户端/移动设备的ARQ请求。主线程也将执行信道估计,自适应FEC处理和FEC解码。分别由第二和第三线程执行ARQ处理和分组转发(packet forwarding)。
返回参照一起示出在图3的客户端代理模块330处实行的方法的图4A、图4B、图4C以及图4D。图4A是主例程,并且源缓存器在405处初始化。在410处,调用分组转发进程(第二)线程。在415处,初始化ARQ事件队列。在420处,调用ARQ事件进程(第三)线程。最后,在425处,调用处理媒体分组接收、媒体分组的缓存以及错误恢复等的主/第一线程。
图4B是由图3的客户端代理模块330实行的方法的主/第一线程的流程图。在430处,接收分组。在435处,估计信道状况。在440处,执行测试以确定接收到的分组是否是FEC分组。如果接收到的分组是FEC分组,则在465处处理分组。在客户端/移动设备接收到奇偶(FEC)分组时,客户端/移动设备从FEC块首部得到有关此奇偶分组所属的(其中包括奇偶/FEC分组的)FEC块的所有信息。客户端/移动设备首先检查是否已经给FEC块分配了块数据结构。如果尚未分配块数据结构,则分配块数据结构。根据FEC块的基础序列号将FEC块插入到数据结构(例如,链接的列表)中。FEC块的基础序列号是属于此FEC块的(包括在此FEC块中的)媒体分组的最小序列号。在已经分配了FEC块之后,客户端/移动设备观察源缓存器并且标注属于此FEC块的媒体分组,并且更新对应于此块的信息(诸如丢失了多少分组、丢失了哪些分组等)。在485处执行测试以确定FEC块是否是可解码的。在已经分配了FEC块之后,客户端/移动设备能够观察源缓存器,检索对应于此块的信息(诸如丢失了多少分组、丢失了哪些分组等),并且在FEC解码进程中使用所检索的信息。如果FEC块不是可解码的,则在495处调用自适应FEC算法。也就是说,客户端代理加入有延迟FEC多播组,并且请求有延迟FEC分组。然后,在497处执行测试以确定是否需要ARQ。如果有延迟FEC分组不足以恢复丢失的/损坏的分组/数据,则将需要ARQ。这里,ARQ包括ARQFEC分组以及ARQ源/内容分组请求。这包括加入ARQ FEC以及ARQ源/内容多播组。如果需要ARQ,则在499处将ARQ请求插入ARQ事件队列。然后,处理返回430。如果不需要ARQ,则处理然后返回到430。
如果FEC块是可解码的,则在490处将经过恢复的(多个)分组插入源缓存器。丢弃在FEC已被解码之后接收到的媒体或者FEC分组。在将用于FEC块的所有媒体分组送出到显示器时,FEC块结构被清空,并且存储器被释放。然后,在491处激活自适应FEC以判断客户端是否接收到了不必要的奇偶分组以及是否需要离开/退出已经加入的FEC组。然后,处理返回到430。
如果接收到的分组不是FEC分组,则在445处执行测试以确定接收到的分组是否是媒体分组。如果接收到的分组是媒体分组,则在470处处理该媒体分组。在客户端/移动设备接收到媒体分组时,根据序列号将接收到的媒体分组插入到数据结构(例如,链接的列表)中。如果在已经分配了FEC块之后,接收到属于该FEC块的媒体分组,则客户端/移动设备能够基于媒体分组的序列号、以及FEC块的基础序列号与N和K来从链接的列表中定位此FEC块结构。客户端/移动设备标注此媒体分组并且更新FEC块信息。然后,处理前进到485。
还可能是这样的情况:用于特定FEC块的奇偶分组(例如在移交中)完全丢失。客户端/移动设备可能不能够获得有关属于此FEC块的媒体分组的任何FEC信息。如果最后一个未标注的媒体分组和第一个未标注的媒体分组之间的差超过特定阈值(例如,K的估计值的3/2倍),则客户端/移动设备断定用于这些媒体分组的所有FEC分组丢失/损坏(FEC块是不可解码的)。然后,客户端/移动设备将激活本发明的自适应FEC算法或者ARQ请求处理,而不需要任何有关这些媒体分组的FEC信息。
如果接收到的分组不是媒体分组,则在450处执行测试以确定接收到的分组是否是ARQ分组。如果接收到的分组是ARQ分组,则在475处执行ARQ抑制以防止ARQ反馈爆炸问题。然后,处理返回到430。
如果接收到的分组不是ARQ分组,则在455处执行测试以确定接收到的分组是否是RTCP分组。如果接收到的分组是RTCP分组,则在480处处理该RTCP分组。接收到的RTCP分组根据它们被接收的时刻而被插入到源缓存器中,因为RTCP分组中的序列号不是根据RTP分组指派的。然后,处理返回到430。如果接收到的分组不是RTCP分组,则在460处丢弃接收到的分组。然后,处理返回到430。
图4C是由图3的客户端代理模块330实行的方法的第二线程的流程图。第二线程处理源分组转发。在433处,执行测试以确定源缓存器是否是空的。如果源缓存器是空的,则处理返回,并且处于等待状态,直至源缓存器不再是空的为止。可以基于某一时刻或者任何其它便利的因素执行在433处的测试,使得可以做出关于源缓存器的状态的确定。如果源缓存器不是空的,则在443处执行测试以确定头分组(head packet)的分组缓存时间是否已到期。头分组是缓存器中要处理的下一分组。由于本发明的方法可以使用链接的列表数据结构,因此,缓存器中的下一分组可以不是结构中的下一分组,但是要处理的下一分组可以是由链接的列表指针所指向的下一分组。如果缓存时间已经到期,则在453处将头分组转发给媒体播放器或者媒体显示设备。也就是说,如果接收到的媒体或者RTCP分组在缓存器中保留长于时间T的时间,则客户端/移动设备将该分组转发给媒体播放器。在463处将指向头分组的指针设置为指向源缓存器中的下一分组。然后,处理返回到433。如果头分组缓存时间尚未到期,则处理返回到433。
图4D是由图3的客户端代理模块330实行的方法的第三线程的流程图。第三线程处理ARQ处理。在437处,执行测试以确定事件队列缓存器是否是空的。如果事件队列缓存器是空的,则处理返回,并且处于等待状态,直至事件队列缓存器不再是空的为止。可以基于某一时刻或者任何其它便利的因素执行在437处的测试,使得可以做出关于事件队列缓存器的状态的确定。如果事件队列缓存器不是空的,则在447处执行测试以确定头事件定时器(head event timer)是否到期。头事件定时器是用于处理事件队列中的下一事件的定时器。如果头事件定时器已经到期,则在457处送出ARQ请求。在467处将头事件定时器设置为指向事件队列中的下一事件。然后,处理返回到437。如果头事件定时器尚未到期,则处理返回到437。
图5中示出了客户端侧处的主数据结构。客户端/移动设备在会话中维持用于媒体流的每个轨道的源缓存器(媒体缓存器)。源缓存器缓存T秒的媒体分组。可以使用链接的列表数据结构实施源缓存器。下面描述的本发明的数据结构被图4A、图4B、图4C、以及图4D的进程使用。所述数据结构被在时间上的多个点处使用,并且用于图4A、图4B、图4C、以及图4D的进程中的多个目的。
FEC块包括一个或者多个媒体分组(上至k个媒体分组)。由此,假定媒体分组属于FEC块。FEC块还包括一个或者多个FEC(奇偶)分组(上至(n-k)个奇偶/FEC分组)。由此,假定FEC/奇偶分组属于FEC块。这里,n是FEC块大小,k是FEC块中的媒体分组的数目。如果已经分配了媒体分组所属的FEC块,则标注该媒体分组。由此,如果已经分配了FEC块,则客户端/移动设备能够基于媒体分组的序列号、以及FEC块的基础序列号与N和K来从链接的列表中定位此FEC块结构。
在本发明的实施中,在服务器侧处的FEC编码期间,未修改媒体分组。将有关FEC编码参数的所有信息包括在FEC分组中。该实施是后向兼容的,因为即使客户端/移动设备不支持FEC,其仍可以加入媒体多播组,接收媒体分组,并且回放接收到的内容。
在客户端/移动设备接收到媒体分组时,根据如505a、505b、…、505α+1中所示的序列号将接收到的媒体分组插入到源缓存器数据结构(例如,链接的列表)中。如果尚未分配接收到的媒体分组所属的FEC块数据结构,则客户端/移动设备不具有有关此媒体分组所属的FEC块的信息。媒体分组不包括任何有关FEC块的信息。而且,本发明在FEC编码中不使用固定的N和K(而MaxN和MaxK是固定的),不能从序列号中导出FEC块索引信息。如果不存在有关媒体分组所属的FEC块的信息,则不标注媒体分组。
应注意:也将用于媒体轨道的实时传输控制协议(RTCP)分组插入到对应的源缓存器数据结构(例如,链接的列表)中。RTCP分组中的序列号不是根据RTP分组分配的。而根据RTCP分组被接收的时刻将RTCP分组插入到源缓存器中。
如果媒体或者RTCP分组在缓存器中保留大于预定的或者可配置的时间T的时间,则客户端/移动设备将分组发送给媒体播放器。
客户端/移动设备也维持FEC块缓存器数据结构。此数据结构也可以被实施为链接的列表,该链接的列表中的每个元素是FEC块数据结构,该FEC块数据结构包括诸如基础序列号、N和K等之类的有关FEC块的所有信息。
在客户端/移动设备接收到奇偶(FEC)分组时,客户端/移动设备从FEC块首部得到有关此奇偶分组所属的FEC块的所有信息。客户端/移动设备首先检查是否已经给FEC块分配了块数据结构。如果尚未分配块数据结构,则分配块数据结构。FEC块数据结构被根据如510a、510b、510β+1中所示的其基础序列号而插入到数据结构(例如,链接的列表)中。FEC块的基础序列号是属于此FEC块的媒体分组的最小序列号。在已经分配了FEC块之后,客户端/移动设备观察源缓存器并且标注属于此FEC块的媒体分组,并且更新对应于此块的信息(诸如丢失了多少分组、丢失了哪些分组等)。在本发明的自适应FEC中使用该信息。还在FEC解码(图4B的485和490)中使用该信息。随后,如果对于此FEC块接收到媒体分组或者FEC分组,则相应地更新此块的信息。
如果在已经分配了FEC块之后接收到属于该FEC块的媒体分组,则客户端/移动设备能够基于该媒体分组的序列号、以及FEC块的基础序列号与N和K来从链接的列表中定位此FEC块结构。客户端/移动设备标注此媒体分组并且更新FEC块信息。
FEC块数据结构包括指向属于此块的所有媒体分组的指针的阵列。该FEC块数据结构还包括用于存储用于此块的FEC分组的解码缓存器。还在该解码缓存器中分配执行FEC解码所需要的存储器缓存器。
如果FEC块是可解码的,则执行FEC解码并且将经过恢复的媒体分组插入到源缓存器中。丢弃在FEC块已经被解码之后接收到的媒体或者FEC分组。在用于FEC块的所有媒体分组都被送出到显示器时,FEC块结构被清空,并且存储器被释放。
还可能是这样的情况:用于特定FEC块的奇偶分组(例如在移交中)完全丢失。客户端/移动设备可能不能够获得有关这些媒体分组的任何FEC信息。客户端/移动设备还保持指针指向源缓存器中的第一个未标注的媒体分组,在图5中,pkt-(α+1)是该第一个未标注的媒体分组。
如果最后一个未标注的媒体分组和第一个未标注的媒体分组之间的差超过特定阈值(例如,K的估计值的3/2倍),则客户端/移动设备断定用于这些媒体分组的所有FEC分组丢失/损坏(FEC块是不可解码的)。然后,客户端/移动设备将激活本发明的自适应FEC算法或者ARQ请求处理,而不需要任何有关这些媒体分组的FEC信息。由于在本发明中K不是固定的,因此客户端/移动设备保持K的平均值的估计。
每个客户端/移动设备维持事件队列数据结构。事件可以是ARQ处理事件,其包括用于客户端/移动终端发送ARQ请求或者处理ARQ抑制的所有信息。根据如515a、515b、…、515γ+1中所示的每个事件的到期时间将它们插入到事件队列中。事件也可以是检查事件。例如,在客户端/移动设备发送ARQ请求之后,客户端/移动设备可以将检查事件插入到事件队列中,以用于客户端/移动设备在以后检查以确定其是否已经接收到了重新传送奇偶分组以及其是否能够解码FEC块。如果客户端/移动设备未接收到并且未解码重新传送分组,则客户端/移动设备可以发送另一ARQ请求。
多播会话具有由media_group表示的一个媒体组。多播会话中的每个媒体轨道也具有多个FEC组。FEC组的数目例如对于上面讨论的音频和视频轨道可以是不同的。对于每个媒体轨道分别部署自适应FEC和ARQ算法。在下面的讨论中,假定多播会话仅具有一个媒体轨道,从而描述自适应FEC和ARQ算法。对于具有多个轨道的多媒体会话,可以对于每个轨道使用该方法。
假定流具有总共(m+1)个FEC组(组(0)、组(1)、…、组(m)),组(0)到组(m-1)是自适应FEC组,组(m)用于ARQ。在媒体组(无延迟FEC组)之后立即发送第一FEC组。客户端将总是加入媒体组以及第一FEC组。在下文中,组编号用于指明与该组相关联的参数。例如,组(i)的开销将是overhead(i),组(i)的延迟将是delay(i)。如果FEC码具有块大小n,则每个块中的消息码元的数目将是:
每个组中的奇偶码元的数目是:
num_parity(i)=overhead(i)*k
客户端/移动设备将接收到的FEC块的平均丢失率以及其方差分别估计为avg_loss_rate以及avg_variance。
在客户端/移动设备接收到用于FEC块的第一FEC分组时,这意味着客户端/移动设备已经接收到当前FEC块的最后的媒体分组/码元。
客户端/移动设备从FEC首部提取有关此FEC块的所有信息,并且具有关于对于此FEC块是否已经丢失了任何媒体分组以及已经丢失了多少分组的知识。此信息用于更新平均丢失和方差的估计。此时,如果客户端/移动设备已经接收到了对于解码当前的FEC块来说足够的分组/码元,则客户端/移动设备不需要加入任何新的FEC组或者发送ARQ请求。然而,如果客户端/移动设备加入了更多的FEC组,则客户端/移动设备可以接收冗余的奇偶分组/码元。也就是说,客户端/移动设备可以接收比该客户端/移动设备所需要的更多的奇偶分组/码元。客户端可能需要离开(退出)那些FEC组。
假定客户端没有接收到对于解码当前的FEC块来说足够的码元。丢失的媒体/消息码元的数目是:lost_msg=k-recv_msg(接收到的消息)。客户端/移动设备需要判断其需要加入的FEC组的数目。一个实施例是一次加入所有的组。第二个实施例是首先加入一个附加的FEC组。在某一延迟之后,客户端/移动设备然后检查以确定其是否已经接收到了对于解码FEC块来说足够的分组/码元。如果否,则客户端/移动设备加入下一FEC组。
在第一实施例中,可以由下式来估计所需的码元的数目:
req_sym=lost_msg*(1+avg_loss_rate)+α*avg_variance
在无线网络中,分组丢失方差可以非常大。由此,在大多数时间,客户端/移动设备可能过高估计所需要的奇偶码元。然而,仍然可能过低估计所请求的码元,其导致(多个)不可解码的FEC块。客户端/移动设备需要加入的组的数目则将是:
在客户端/移动设备加入多播FEC组时,客户端/移动设备需要指定该客户端/移动设备应当保持加入此组的持续时间。这由grp_expire参数指定。
grp_expire(i)=current_time(当前时间)+delay(i)+Te i≤m-1 (2)
其中Te是可配置的参数,例如Te=500ms。如果客户端/移动设备加入所有的自适应FEC组,但仍不能解码FEC块,则客户端/移动设备将需要发送ARQ请求。对了处理反馈爆炸,不立即发送ARQ请求。将ARQ请求定时器插入到事件队列中,将定时器的到期时间设置在(K-lost_msg)*Ts和(K-lost_msg+1)*Ts之间。这样,已经丢失了大多数分组的客户端/移动设备首先将发送ARQ请求。ARQ请求将被多播到ARQ请求多播组。其它的客户端/移动设备在接收到此ARQ请求时将把接收到的ARQ请求中的所请求的奇偶分组的数目与其自身需要进行比较。如果由另一客户端/移动设备请求的奇偶分组的数目大于其自身请求,则客户端/移动设备将抑制其自身ARQ请求并且等待以得到将具有比其需要的更多的奇偶分组的多播。
在第二实施例中,客户端/移动设备首先加入一个附加的有延迟FEC组。设置定时器。该定时器应当在下一有延迟FEC组的延迟时间之前的某一时刻到期。如果客户端/移动设备然后确定其仍不能解码FEC块,则客户端/移动设备具有用于加入下一FEC组的时间。例如,如果IGMP加入等待时间在几毫秒到大约50毫秒之间,将定时器到期时间指定为下一FEC组延迟时间之前的Tx=100ms:
timer_expire(i)=current_time+delay(i+1)-Tx (3)
其中Tx是可配置的参数。再一次,如果已经加入了FEC组,则客户端/移动设备仅需要更新该组的到期时间,但定时器仍需要被设置。在客户端/移动设备已经加入了最后的自适应FEC组、但仍不能解码FEC块时,客户端/移动设备将需要发送ARQ请求。
在一些情形下,如果FEC块中丢失的媒体分组的数目超过阈值(例如,K的50%),则发送ARQ以仅请求奇偶分组可能不是有效的。在此情况下,客户端/移动设备可以发送ARQ以请求重新传送原始媒体分组。
如果客户端/移动设备接收到了对于解码FEC块来说足够的分组/码元,或者如果客户端/移动设备需要与由其已经加入的FEC组提供的奇偶码元相比较少的奇偶码元,则客户端/移动设备需要检查其是否应当离开(退出)一个或者多个FEC多播组。公式(1)给出了客户端/移动设备应当加入的FEC组的数目,如果当前加入的组的数目l大于g,则客户端/移动设备应当离开组(g+1)到组(l)。为了减少加入和离开的数目,引入了另一个参数。令
以及t=max(g,h),如果l>t,则客户端/移动设备离开组(t+1)到组(l)。
图6是本发明的合并的混合ARQ方法的服务器侧的示意图/框图。具体地,图6描绘本发明的流传输服务器115和ARQ服务器160。如上所述,可以将流传输服务器和ARQ服务器放置在不同的机器上,或者使它们共同位于一个机器上。流传输服务器115以内容RTP(媒体)分组的形式从内容服务器105和/或实况内容服务器110接收内容。FEC模块605向FEC块分配这些媒体分组,并且FEC/奇偶分组被生成并且添加到FEC块,使得在FEC块中存在k个媒体分组和(n-k)个奇偶/FEC分组。将FEC/奇偶分组分为各层,所述各层表示在FEC块(包括媒体和无延迟FEC分组)不足以恢复内容的情况下可由客户端/移动设备请求和使用的增加的奇偶/FEC。客户端/移动设备通过加入提供附加的FEC的多播组来请求附加的FEC。在需要附加的FEC的情况下将其存储于延迟缓存器610中。将所有的数据(媒体、无延迟FEC、以及有延迟FEC)经由UDP/IP/以太网协议栈615转发给客户端/移动设备。
由流传输服务器115将内容(媒体分组)转发给ARQ服务器160。流传输服务器115还将ARQ FEC组中的FEC分组转发给ARQ服务器160。经由UDP/IP/以太网协议栈620将内容和ARQ FEC分组两者转发给混合ARQ进程模块625。在客户端/移动终端发送对于重新传送FEC分组或者内容分组的NACK请求时,客户端/移动设备加入ARQ重新传送多播组,以便接收FEC分组或者内容分组的重新传送。存在若干类型的NACK/ARQ请求。在一种类型的NACK/ARQ请求中,客户端/移动设备请求其需要的数目的FEC分组;在另一种类型的NACK/ARQ请求中,客户端/移动设备请求ARQ服务器重新传送特定的内容分组。在此情况下,NACK/ARQ请求包括客户端/移动设备需要的内容分组的序列号。第三种类型的NACK/ARQ请求是前两种NACK/ARQ请求的组合。在第三种情况下,客户端/移动设备请求一定数目的FEC分组以及一些内容分组。在从客户端/移动终端接收到NACK时,ARQ组的原始内容或者FEC分组的重新传送由混合ARQ进程模块625处理,并且由UDP/IP/以太网协议栈620传送。
应理解:可以以各种形式的硬件、软件、固件、专用处理器、或者它们的组合来实施本发明。优选地,将本发明实施为硬件和软件的组合。此外,优选地将软件实施为切实地包含在程序存储设备上的应用程序。该应用程序可以被上载到包含任何适当的架构的机器并且由其执行。优选地,该机器被实施在计算机平台之上,该计算机平台具有诸如一个或者多个中央处理单元(“CPU”)、随机存取存储器(“RAM”)、以及输入/输出(“I/O”)接口之类的硬件。该计算机平台还可以包括操作系统和微指令代码。这里描述的各种进程和功能可以为微指令代码的一部分或者为应用程序的一部分(或者其组合),其经由操作系统执行。另外,诸如附加的数据存储设备以及打印设备之类的各种其他的外围设备可以连接到该计算机平台。
还应理解:由于在附图中描绘的一些系统构成组件和方法步骤优选地以软件实施,因此系统组件(或者进程步骤)之间的实际连接可以取决于本发明被编排的方式而不同。给出这里的教学,相关领域的普通技术人员将能够设想本发明的这些和类似的实施或者配置。
Claims (37)
1.一种用于增加多播可靠性的方法,所述方法包括:
生成多个层的前向纠错编码分组;
接收对于加入第一多播组、以便接收内容和所述多个层的前向纠错编码分组的第一层的请求;
传送所述内容和所述多个所述前向纠错编码分组的所述第一层;
在所述内容不能从来自所述第一多播组的所述内容以及多个所述前向纠错编码分组的所述第一层恢复的情况下,接收对于加入第二多播组以便接收所述多个层的前向纠错编码分组的第二层的请求;
在接收到请求时传送所述多个前向纠错编码分组的所述第二层,其中延迟所述多个前向纠错编码分组的所述第二层的所述传送;
在接收到自动重复请求消息时传送所述多个前向纠错编码分组的第三层;并且
在接收到自动重复请求内容请求时重新传送所述内容和所述多个前向纠错编码分组的第四层。
2.根据权利要求1所述的方法,还包括:在所述内容不能从所接收到的内容、所述多个前向纠错编码分组的所述第一层、以及所述多个前向纠错编码分组的所述第二层恢复的情况下,接收对于加入第三多播组以便接收所述多个层的前向纠错编码分组的第三层的请求,其中延迟所述多个前向纠错编码分组的所述第三层的所述传送。
3.根据权利要求1所述的方法,还包括:在所述内容不能从所接收到的内容、所述多个前向纠错编码分组的所述第一层、所述多个前向纠错编码分组的所述第二层、以及所述多个前向纠错编码分组的所述第三层恢复的情况下,接收自动重复请求否定应答,并且接收对于加入第四多播组以便接收重新传送的丢失的内容以及所述多个层的前向纠错编码分组的第四层的请求,其中延迟所述丢失的内容以及所述多个层的前向纠错编码分组的所述第四层的所述重新传送。
4.根据权利要求3所述的方法,其中由自动重复请求服务器重新传送所述丢失的内容以及所述多个前向纠错编码分组的所述第四层。
5.根据权利要求1所述的方法,其中由流传输服务器传送所述多个前向纠错编码分组的所述第二层。
6.根据权利要求1所述的方法,其中所述多个前向纠错编码分组的所述第二层在时间上延迟可配置的时间段。
7.根据权利要求1所述的方法,其中在所述多个层中的每一层处应用的前向纠错编码的量是可配置的。
8.根据权利要求1所述的方法,其中所述内容包括多个媒体轨道。
9.一种用于增加多播可靠性的系统,包括:
用于生成多个层的前向纠错编码分组的部件;
用于接收对于加入第一多播组、以便接收内容和所述多个层的前向纠错编码分组的第一层的请求的部件;
用于传送所述内容和所述多个前向纠错编码分组的所述第一层的部件;
用于在所述内容不能从来自所述第一多播组的所述内容以及多个前向纠错编码分组的所述第一层恢复的情况下、接收对于加入第二多播组以便接收所述多个层的前向纠错编码分组的第二层的请求的部件;以及
用于在接收到所述请求时传送所述多个前向纠错编码分组的所述第二层的部件,其中延迟所述多个前向纠错编码分组的所述第二层的所述传送;
用于在接收到自动重复请求消息时传送所述多个前向纠错编码分组的第三层的部件;以及
用于在接收到自动重复请求内容请求时重新传送所述内容以及所述多个前向纠错编码分组的第四层的部件。
10.根据权利要求9所述的系统,还包括用于在所述内容不能从所接收到的内容、所述多个前向纠错编码分组的所述第一层、以及所述多个前向纠错编码分组的所述第二层恢复的情况下、接收对于加入第三多播组以便接收所述多个层的前向纠错编码分组的第三层的请求的部件,其中延迟所述多个前向纠错编码分组的所述第三层的所述传送。
11.根据权利要求9所述的系统,还包括用于在所述内容不能从所接收到的内容、所述多个前向纠错编码分组的所述第一层、所述多个前向纠错编码分组的所述第二层、以及所述多个前向纠错编码分组的所述第三层恢复的情况下,接收对于加入第四多播组以便接收所述内容以及所述多个层的前向纠错编码分组的第四层的请求的部件,其中延迟所述内容以及所述多个层的前向纠错编码分组的所述第四层的所述传送。
12.根据权利要求9所述的系统,其中由自动重复请求服务器重新传送所述内容和所述多个前向纠错编码分组的所述第四层。
13.根据权利要求9所述的系统,其中由流传输服务器传送所述多个前向纠错编码分组的所述第二层。
14.根据权利要求9所述的系统,其中所述多个前向纠错编码分组的所述第二层中的每一个前向纠错编码分组在时间上被延迟可配置的时间段。
15.根据权利要求9所述的系统,其中在所述多个层中的每一层处应用的前向纠错编码的量是可配置的。
16.根据权利要求9所述的系统,其中所述内容包括多个媒体轨道。
17.一种用于增加多播可靠性的方法,所述方法包括:
加入第一多播组以便接收内容和多个前向纠错编码分组的第一层;
从第一多播组接收内容和多个前向纠错编码分组的第一层;并且
加入附加的多播组,以便接收前向纠错编码分组的附加层之一以及所述内容、连同所述多个前向纠错编码分组的另一附加层,
其中在时间上延迟可配置的时间段而接收所述多个前向纠错编码分组的所述附加层中的第一个附加层,并且其中所述可配置的时间段大于加入所述附加的多播组所需的时间段。
18.根据权利要求17所述的方法,其中如果所述内容不能从来自第一多播组的所述内容以及多个前向纠错编码分组的所述第一层恢复,则执行所述加入动作。
19.根据权利要求17所述的方法,还包括加入所述第一多播组,以便接收所述内容以及所述多个前向纠错编码分组的所述第一层。
20.根据权利要求18所述的方法,其中如果所述内容不能从所接收到的内容以及所述多个前向纠错编码分组的所述第一层恢复,则加入第二多播组以便接收所述多个前向纠错编码分组的第二层。
21.根据权利要求20所述的方法,其中如果所述内容不能从所接收到的内容、所述多个前向纠错编码分组的所述第一层、以及所述多个前向纠错编码分组的所述第二层恢复,则加入第三多播组以便接收所述多个前向纠错编码分组的第三层。
22.根据权利要求21所述的方法,其中如果所述内容不能从所接收到的内容、所述多个前向纠错编码分组的所述第一层、所述多个前向纠错编码分组的所述第二层、以及所述多个前向纠错编码分组的所述第三层恢复,则加入第四多播组以便接收丢失的内容以及所述多个前向纠错编码分组的第四层。
23.根据权利要求22所述的方法,其中如果丢失的内容分组的数目超过阈值,则作出加入所述第四多播组的决定,所述方法还包括传送自动重复请求否定应答。
24.根据权利要求17所述的方法,还包括将经过恢复的内容转发给播放设备。
25.根据权利要求18所述的方法,其中所述动作由客户端代理模块执行。
26.根据权利要求17所述的方法,其中同时加入多个附加的多播组。
27.根据权利要求17所述的方法,其中所述内容包括多个媒体轨道。
28.一种用于增加多播可靠性的装置,包括:
用于加入第一多播组以便接收内容和多个前向纠错编码分组的第一层的部件;
用于从第一多播组接收内容和多个前向纠错编码分组的第一层的部件;
用于加入附加的多播组、以便接收前向纠错编码分组的附加层之一以及所述内容、连同所述多个前向纠错编码分组的另一附加层的部件,
其中在时间上延迟可配置的时间段而接收所述多个前向纠错编码分组的所述附加层中的第一个附加层,并且其中所述可配置的时间段大于加入所述第一个附加的多播组所需的时间段。
29.根据权利要求28所述的装置,还包括用于加入所述第一多播组、以便接收所述内容以及所述多个前向纠错编码分组的所述第一层的部件。
30.根据权利要求28所述的装置,其中如果所述内容不能从所接收到的内容以及所述多个前向纠错编码分组的所述第一层恢复,则激活用于加入第二多播组、以便接收所述多个前向纠错编码分组的第二层的部件。
31.根据权利要求30所述的装置,其中如果所述内容不能从所接收到的内容、所述多个前向纠错编码分组的所述第一层、以及所述多个前向纠错编码分组的所述第二层恢复,则激活用于加入第三多播组、以便接收所述多个前向纠错编码分组的第三层的部件。
32.根据权利要求31所述的装置,其中如果所述内容不能从所接收到的内容、所述多个前向纠错编码分组的所述第一层、所述多个前向纠错编码分组的所述第二层、以及所述多个前向纠错编码分组的所述第三层恢复,则激活用于加入第四多播组、以便再次接收所述内容并且接收所述多个前向纠错编码分组的第四层的部件。
33.根据权利要求32所述的装置,其中如果丢失的内容分组的数目超过阈值,则作出加入所述第四多播组的决定,所述装置还包括用于传送自动重复请求否定应答的部件。
34.根据权利要求28所述的装置,还包括用于将经过恢复的内容转发给播放设备的部件。
35.根据权利要求28所述的装置,包括客户端代理模块。
36.根据权利要求28所述的装置,其中同时加入多个多播组。
37.根据权利要求28所述的装置,其中所述内容包括多个媒体轨道。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2007/022453 WO2009054822A1 (en) | 2007-10-23 | 2007-10-23 | Method and apparatus for adaptive forward error correction with merged automatic repeat request for reliable multicast in wireless local area networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101861709A CN101861709A (zh) | 2010-10-13 |
CN101861709B true CN101861709B (zh) | 2014-06-11 |
Family
ID=40032454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780101553.4A Active CN101861709B (zh) | 2007-10-23 | 2007-10-23 | 用于具有合并的自动重复请求的自适应前向纠错以在无线局域网中进行可靠多播的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8499212B2 (zh) |
JP (1) | JP5591708B2 (zh) |
KR (2) | KR101571145B1 (zh) |
CN (1) | CN101861709B (zh) |
BR (1) | BRPI0722125B1 (zh) |
WO (1) | WO2009054822A1 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8881309B2 (en) * | 2008-03-04 | 2014-11-04 | Microsoft Corporation | Systems for finding a lost transient storage device |
EP2131516A1 (en) | 2008-06-04 | 2009-12-09 | THOMSON Licensing | A cell dependent multi-group hybrid automatic repeat request method for multicast in wireless networks |
US8489954B2 (en) * | 2008-08-29 | 2013-07-16 | Ntt Docomo, Inc. | Method and apparatus for reliable media transport |
CN101729228B (zh) * | 2008-10-31 | 2014-04-16 | 华为技术有限公司 | 丢包抑制重传的方法、网络节点和系统 |
CN101902315B (zh) * | 2009-06-01 | 2013-04-17 | 华为技术有限公司 | 基于前向纠错的重传方法、设备和通信系统 |
US8306049B2 (en) | 2010-02-22 | 2012-11-06 | Microsoft Corporation | Multicast subscription based on forward error correction |
US8839078B2 (en) * | 2010-03-05 | 2014-09-16 | Samsung Electronics Co., Ltd. | Application layer FEC framework for WiGig |
US8489948B2 (en) | 2010-04-02 | 2013-07-16 | Nokia Corporation | Methods and apparatuses for facilitating error correction |
JP5748471B2 (ja) * | 2010-12-14 | 2015-07-15 | キヤノン株式会社 | 配信装置、配信方法、プログラム |
KR101781159B1 (ko) | 2010-12-20 | 2017-09-22 | 한국전자통신연구원 | 데이터 분배 서비스에서 경량 멀티캐스트를 제공하는 방법 및 장치 |
KR20120112981A (ko) * | 2011-04-04 | 2012-10-12 | 삼성전기주식회사 | 데이터 프레임의 재전송 감소 방법 및 이를 위한 수신 노드 |
EP2731278A4 (en) * | 2011-07-06 | 2015-04-29 | Sk Planet Co Ltd | SYSTEM AND METHOD FOR CONTENT TRANSMISSION ON A MULTI-DESTINATION BASE AND HIGH SPEED TRAVEL ESTIMATING APPARATUS AND METHOD |
US9060252B2 (en) | 2012-07-31 | 2015-06-16 | International Business Machines Corporation | Rate adaptive transmission of wireless broadcast packets |
JP2014068295A (ja) * | 2012-09-27 | 2014-04-17 | Kddi Corp | 無線環境に適したマルチキャストデータを配信する配信サーバ、システム及びプログラム |
US10356143B2 (en) * | 2012-10-10 | 2019-07-16 | Samsung Electronics Co., Ltd. | Method and apparatus for media data delivery control |
US9059847B2 (en) | 2013-04-26 | 2015-06-16 | International Business Machines Corporation | Reliable multicast broadcast in wireless networks |
US9560172B2 (en) * | 2013-05-06 | 2017-01-31 | Alcatel Lucent | Stateless recognition of keep-alive packets |
KR102017719B1 (ko) | 2013-05-23 | 2019-10-21 | 한국전자통신연구원 | 멀티캐스트 장치 및 그 방법 |
KR102173084B1 (ko) | 2013-08-23 | 2020-11-02 | 삼성전자주식회사 | 무선 통신 시스템에서 데이터 패킷 송수신 방법 및 장치 |
US10075266B2 (en) * | 2013-10-09 | 2018-09-11 | Qualcomm Incorporated | Data transmission scheme with unequal code block sizes |
KR102198701B1 (ko) * | 2014-07-03 | 2021-01-05 | 삼성전자주식회사 | 멀티미디어 시스템에서 정보를 송수신하는 방법 및 장치 |
US9756098B2 (en) | 2014-09-15 | 2017-09-05 | Verizon Digital Media Services Inc. | Multi-tenant over-the-top multicast |
US9781488B2 (en) * | 2015-07-30 | 2017-10-03 | Adi Rozenberg | Controlled adaptive rate switching system and method for media streaming over IP networks |
CN110301116B (zh) * | 2017-11-27 | 2021-09-28 | 柏思科技有限公司 | 通过绑定连接传送和接收数据分组的方法和系统 |
US11476924B2 (en) * | 2020-06-22 | 2022-10-18 | Video Flow Ltd. | System and method for seamless broadcast data recovery using non-intrusive terrestrial and broad band connectivity |
US11811877B2 (en) * | 2021-05-13 | 2023-11-07 | Agora Lab, Inc. | Universal transport framework for heterogeneous data streams |
US11722427B1 (en) | 2022-03-04 | 2023-08-08 | Cisco Technology, Inc. | Hybrid deadline-based transport for group applications using Hybrid Information-Centric Networking (hICN) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
WO2006109105A1 (en) * | 2005-04-12 | 2006-10-19 | Stmicroelectronics S.R.L. | Method and system for controlling transmission of multicast packets over a local area network, related network and computer program product therefor |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3127440B2 (ja) | 1995-10-23 | 2001-01-22 | 日本電信電話株式会社 | 誤り回復装置 |
US6101180A (en) * | 1996-11-12 | 2000-08-08 | Starguide Digital Networks, Inc. | High bandwidth broadcast system having localized multicast access to broadcast content |
US6862622B2 (en) * | 1998-07-10 | 2005-03-01 | Van Drebbel Mariner Llc | Transmission control protocol/internet protocol (TCP/IP) packet-centric wireless point to multi-point (PTMP) transmission system architecture |
US7006530B2 (en) * | 2000-12-22 | 2006-02-28 | Wi-Lan, Inc. | Method and system for adaptively obtaining bandwidth allocation requests |
US7224702B2 (en) * | 2000-08-30 | 2007-05-29 | The Chinese University Of Hong Kong | System and method for error-control for multicast video distribution |
US7095729B2 (en) | 2000-12-22 | 2006-08-22 | Intel Corporation | Method for multimedia communication over packet channels |
JP2002359641A (ja) * | 2001-05-31 | 2002-12-13 | Matsushita Electric Ind Co Ltd | ファイル配信システム、ファイル配信サーバ装置、及び受信クライアント装置 |
DE60219588T2 (de) * | 2002-02-04 | 2008-01-10 | Matsushita Electric Industrial Co., Ltd., Kadoma | Verfahren zur Unterscheidung von Paketverlusten |
JP2004201111A (ja) | 2002-12-19 | 2004-07-15 | Ntt Docomo Inc | マルチキャストパケット配信システム、方法及びプログラム |
US7451381B2 (en) * | 2004-02-03 | 2008-11-11 | Phonex Broadband Corporation | Reliable method and system for efficiently transporting dynamic data across a network |
WO2006009105A1 (ja) | 2004-07-20 | 2006-01-26 | Matsushita Electric Industrial Co., Ltd. | 映像処理装置およびその方法 |
US7590922B2 (en) * | 2004-07-30 | 2009-09-15 | Nokia Corporation | Point-to-point repair request mechanism for point-to-multipoint transmission systems |
JP4645281B2 (ja) | 2005-04-19 | 2011-03-09 | ソニー株式会社 | 情報処理装置および方法、プログラム、並びに記録媒体 |
JP4666309B2 (ja) | 2006-03-07 | 2011-04-06 | 財団法人エヌエイチケイエンジニアリングサービス | 送信装置、受信装置、中継装置及びパケット伝送システム |
US7774672B2 (en) * | 2006-07-07 | 2010-08-10 | Scientific-Atlanta, Llc | Requesting additional forward error correction |
-
2007
- 2007-10-23 WO PCT/US2007/022453 patent/WO2009054822A1/en active Application Filing
- 2007-10-23 KR KR1020147020431A patent/KR101571145B1/ko active IP Right Grant
- 2007-10-23 CN CN200780101553.4A patent/CN101861709B/zh active Active
- 2007-10-23 KR KR1020107008641A patent/KR20100070361A/ko not_active Application Discontinuation
- 2007-10-23 JP JP2010530969A patent/JP5591708B2/ja active Active
- 2007-10-23 US US12/739,235 patent/US8499212B2/en active Active
- 2007-10-23 BR BRPI0722125-8A patent/BRPI0722125B1/pt active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
WO2006109105A1 (en) * | 2005-04-12 | 2006-10-19 | Stmicroelectronics S.R.L. | Method and system for controlling transmission of multicast packets over a local area network, related network and computer program product therefor |
Non-Patent Citations (1)
Title |
---|
罗云峰等.基于FEC/ARQ的流媒体可靠实时通信.《武汉大学学报(理学版)》.2002,第48卷(第5期),第626~630页. * |
Also Published As
Publication number | Publication date |
---|---|
JP2011501613A (ja) | 2011-01-06 |
BRPI0722125B1 (pt) | 2020-03-03 |
KR20100070361A (ko) | 2010-06-25 |
JP5591708B2 (ja) | 2014-09-17 |
US20100260180A1 (en) | 2010-10-14 |
KR20140098259A (ko) | 2014-08-07 |
KR101571145B1 (ko) | 2015-11-23 |
CN101861709A (zh) | 2010-10-13 |
BRPI0722125A2 (pt) | 2014-04-08 |
US8499212B2 (en) | 2013-07-30 |
WO2009054822A1 (en) | 2009-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101861709B (zh) | 用于具有合并的自动重复请求的自适应前向纠错以在无线局域网中进行可靠多播的方法和装置 | |
US7443797B2 (en) | Medium streaming distribution system | |
US9209938B2 (en) | Recovery from burst packet loss in internet protocol based wireless networks using staggercasting and cross-packet forward error correction | |
JP4454320B2 (ja) | 伝送装置、伝送制御プログラム、及び伝送方法 | |
US9312989B2 (en) | Importance-based FEC-aware error-repair scheduling | |
CN101867453B (zh) | 一种rtp抗丢包的方法 | |
CN100592670C (zh) | 一种在iptv网络中动态自适应前向差错控制的系统及方法 | |
CN101432991A (zh) | 基于互连网协议的无线网络中利用错位播放的多播会话的无缝切换 | |
CN102143130B (zh) | 一种快速频道切换时获取关键信息的方法、装置和系统 | |
Chieochan et al. | Wireless fountain coding with IEEE 802.11 e block ACK for media streaming in wireline-cum-WiFi networks: a performance study | |
KR20080052042A (ko) | 데이터를 멀티캐스팅하는 방법 및 장치 | |
US20160134672A1 (en) | Delivering partially received segments of streamed media data | |
Wu et al. | IPTV multicast over wireless LAN using merged hybrid ARQ with staggered adaptive FEC | |
CN102239658A (zh) | 按需差错控制 | |
US10484148B2 (en) | Method and device for transmitting and receiving multimedia data | |
JP5682292B2 (ja) | 映像配信装置及び映像配信方法 | |
CN114422864A (zh) | 一种音视频抗弱网传输方法及系统 | |
KR101891618B1 (ko) | 디지털 방송 시스템에서 비실시간 서비스를 수행하는 방법 및 그 장치 | |
JP3730977B2 (ja) | データ伝送方法およびデータ処理方法 | |
Liu et al. | A staggered FEC system for seamless handoff in wireless LANs: implementation experience and experimental study | |
Nazir | Scalable Video Streaming with Fountain Codes | |
Hou et al. | A novel differentiated retransmission scheme for MPEG video streaming over wireless links | |
KR20220124031A (ko) | 영상 패킷을 송수신하는 전자 장치 및 이의 동작 방법 | |
Freytes | New ARQ protocol for interactive video over data networks | |
Liu et al. | A SYSTEM FOR ROBUST VIDEO MULTICAST OVER WIRELESS LANS |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190530 Address after: France Patentee after: Interactive Digital CE Patent Holding Company Address before: I Si Eli Murli Nor, France Patentee before: Thomson Licensing Corp. |
|
TR01 | Transfer of patent right |