用于使用有关发射机的信息进行错误恢复的方法和装置

申请号 CN201380044393.X 申请日 2013-06-13 公开(公告)号 CN104541469B 公开(公告)日 2017-12-15
申请人 微软技术许可有限责任公司; 发明人 R.瓦芬; S.V.安德森; M.尼尔森;
摘要 用于处理通过有损通信信道从发射机传输到接收机的已编码数据比特的方法,所述方法包括:通过通信信道接收已编码数据比特,所述已编码数据比特包括冗余数据单元;在纠错 解码器 处对已编码数据比特进行解码,其中对丢失数据的恢复在纠错解码器处使用冗余数据单元中的至少一个来实现;确定是否至少一个数据比特由于解码器找到用于所述至少一个数据比特的多个候选比特值而不能被恢复;接收有关发射机的信息;分析该多个候选比特值,从而使用有关发射机的信息将用于该至少一个数据比特的候选比特值的至少一个排除在外;并且基于所述分析来判定该至少一个数据比特。
权利要求

1.一种在接收机处处理已编码数据比特的方法,所述已编码数据比特通过经由网络建立的有损通信信道从发射机被传输到接收机,所述方法包括:
通过有损通信信道接收已编码数据比特,所述已编码数据比特包括冗余数据单元,所述已编码数据的至少部分原始数据是在通过所述有损通信信道的传输期间丢失的数据;
接收与所接收的已编码数据比特的生成相关联的信息;
在纠错解码器处对所述已编码数据比特进行解码;
在纠错解码器处至少部分地基于该冗余数据单元中的至少一个来恢复所述丢失的数据的至少一部分;
至少部分地基于所述纠错解码器找到用于至少一个不可恢复的数据比特的多个候选比特值,确定所述丢失的数据的所述至少一个数据比特是在所述纠错解码器处不可恢复的;
分析所述多个候选比特值,从而有效地使用与所接收的已编码数据比特的所述生成相关联的的信息来将用于该至少一个不可恢复的数据比特的候选比特值中的至少一个排除在外;并且
基于所述分析来判定该至少一个不可恢复的数据比特。
2.按照权利要求1的方法,其中与所接收的已编码数据比特的所述生成相关联的信息通过网络接收。
3.按照权利要求1或2的方法,还包括:响应于所述纠错解码器找到了用于数据比特序列中的每个数据比特的多个候选比特值,使用与所接收的已编码数据比特的所述生成相关联的所述信息为所述数据比特序列中的每个比特分析多个候选比特值,从而确定对该序列而言最可能的候选比特值。
4.按照权利要求1的方法,其中,与所接收的已编码数据比特的所述生成相关联的信息包括下列至少一项:
关于在被编码之前数据比特的源的信息;
关于用来对已编码数据比特进行编码的编码过程的信息;
关于用来打包已编码数据比特的打包过程的信息;以及
关于在生成已编码数据比特时由发射机遵循的预定规则的信息。
5.按照权利要求1的方法,其中,所述分析包括辨别用于所述至少一个数据比特的多个候选比特值中的一个或者多个是否将在所述已编码数据比特的后续解码之后导致质量降级。
6.按照权利要求1的方法,其中所述分析还包括:
使用应用解码器对候选比特值进行解码,从而生成候选解码结果;以及
使用与所接收的已编码数据比特的所述生成相关联的信息来基于候选解码结果将无效或者低概率的候选比特值排除在外。
7.按照权利要求6的方法,所述方法进一步包括:
使用所述应用解码器,对所恢复的或者所判定的数据比特进行解码,从而生成已解码数据比特;并且
存储所述已解码数据比特,以供在将无效或者低概率的候选解码结果排除在外时使用。
8.按照权利要求6或7的方法,所述方法进一步包括:
当候选比特值不能使用有关所述发射机的信息来判定时,有选择地将候选比特值供应给应用解码器,从而对候选比特值进行解码。
9.按照权利要求6的方法,其中所述候选解码结果代表原始数据单元的参数,并且其中,所述分析包括基于下列知识的至少一项来将代表用于该参数的无效或者低概率值的候选解码结果排除在外,所述知识即:参数值的边缘概率分布;或在不同参数值之间的相互关系。
10.一种用于处理已编码数据比特的接收机,所述已编码数据比特通过经由网络建立的有损通信网络从发射机被传输到接收机,所述接收机包括:
接收装置,被配置为:
通过有损通信信道接收已编码数据比特,所述已编码数据比特包括冗余数据单元,所述已编码数据的至少部分原始数据是在通过所述有损通信信道的传输期间丢失的数据;以及
接收与所接收的已编码数据比特的生成相关联的信息;
纠错解码器,被配置为:
对已编码数据比特进行解码;以及
在纠错解码器处至少部分地基于该冗余数据单元中的至少一个来恢复所述丢失的数据的至少一部分;
确定装置,被配置为:
确定所述丢失的数据的至少一个数据比特何时由于所述纠错解码器找到用于所述至少一个不可恢复数据比特的多个候选比特值而不能被所述纠错解码器恢复;
分析装置,被配置为:
分析所述多个候选比特值,从而有效地使用与所接收的已编码数据比特的所述生成相关联的的所接收的信息将用于该至少一个不可恢复的数据比特的候选比特值的至少一个排除在外;以及
判定装置,被配置为:
用于基于所述分析来判定该至少一个不可恢复的数据比特。

说明书全文

用于使用有关发射机的信息进行错误恢复的方法和装置

背景技术

[0001] 存在许多其中数据流通过通信信道从发射机传输到接收机的情况。通信信道可以存在于许多不同的可能网络中的一个(或者多个)网络中。例如,通信信道可以存在于互联网中,或者存在于诸如移动电信网络那样的无线网络之中。数据流中的数据可以被划分为数据分组以便通过通信信道传输。用于将数据划分为数据分组的协议(例如,数据分组的报头的形式,和其它这样的实现细节)可以取决于要在其上传输数据的通信信道的性质,例如,要通过其传输数据分组的网络的类型。数据可以在从发射机传输之前由编码器进行编码,并且当在接收机处接收之后由解码器进行解码。
[0002] 在理想化的系统中,通信信道是无损的,这样使得通过通信信道从发射机传输的每个数据分组都在接收机处被接收。然而,在真实的物理系统中,通信信道可能是有损的(lossy),这意味着所传输的某些数据分组将在通信信道中丢失,并且照这样将不会在接收机处被接收。这可能是不利的。可以在接收机处使用校正方案,从而帮助恢复至少一些丢失的数据分组。
[0003] 作为一个示例,前向纠错(FEC)是一种可以用来对抗在通信信道中的分组丢失的校正方案。发明内容
[0004] 本概要被提供来以简化的形式介绍概念的选择,这些概念还将在下面的详细说明中进行描述。本概要既不打算标识所要求保护的主题的关键特征或者必要特征,也不打算用来限制所要求保护的主题的范围。
[0005] 本发明的实施例提供用于在接收机处处理已编码数据比特的方法,其中已编码数据比特通过经由网络建立的有损通信信道从发射机被传输到接收机。通过通信信道接收的已编码数据比特包括冗余数据单元。在纠错解码器处,已编码数据比特被解码,其中对丢失数据的恢复在纠错解码器处使用冗余数据单元中的至少一个来实现。所述方法包括如下步骤:确定是否至少一个数据比特由于解码器找到用于该至少一个数据比特的多个候选比特值而不能被恢复,并且接收有关发射机的信息。分析多个候选比特值,从而使用有关所述发射机的信息将用于该至少一个数据比特的候选比特值中的至少一个排除在外,并且基于所述分析来判定(resolve)该至少一个数据比特。附图说明
[0006] 为了对本发明有更好的理解,并且为了示出可以如何实行本发明,作为示例,现在将参考下列附图,其中:
[0007] 图1a图示可以如何生成FEC数据单元的第一示例;
[0008] 图1b图示可以如何生成FEC数据单元的第二示例;
[0009] 图1c图示可以如何生成FEC数据单元的第三示例;
[0010] 图2是示出通信系统中数据分组的传输的时序图;
[0011] 图3示出通信系统;
[0012] 图4是在通信系统中正被传输的数据流的代表;
[0013] 图5是用于判定数据比特的过程的流程图
[0014] 图6是接收机处的处理器的示意图;
[0015] 图7是发射机处的处理器的示意图。

具体实施方式

[0016] 现在将仅仅以举例说明的方式来描述本发明的优选实施例。
[0017] 虽然与通信信道中的丢失相比,FEC减少了如由应用(例如,音频或者视频)解码器所看到的丢失,但是其并不保证对所有丢失的原始分组的恢复。
[0018] 通过公共网络(诸如互联网)进行数据传送的范围正快速地增长。因此,纠错机制对于确保可靠的数据传输而言,正变得更加重要。
[0019] 在FEC解码期间,由于FEC解码器确定对于特定比特值或者比特序列值存在多个候选选项,所以可能引发关于丢失分组的正确比特值或者比特序列值的不确定性。
[0020] 本发明人已经意识到,通过评价候选分组的内容,恢复过程的一些不确定性(即,其中比特或者比特序列可以取一个以上的值)可以被消除(resolve),从而与通信信道的分组丢失相比,进一步降低由应用解码器看到的分组丢失。
[0021] FEC产生除了原始数据单元之外的冗余的校正数据(如FEC数据单元),并且把FEC数据单元包括在通过通信信道传输的数据流中。传输原始和冗余FEC数据的FEC方案被称为系统FEC方案。不传输原始数据的FEC方案被称为非系统方案。在后一情况中,为了提供冗余,所传输的数据的总量仍然高于原始数据的量。为了简洁,但是不失一般性,本文中我们讨论系统FEC方案。冗余FEC数据单元可以被放置在它们自己的分组中,与数据流中的数据分组分开。可替换地,或者附加地,FEC数据单元可以被添加(或者“背负(piggybacked)”)到数据流中的原始数据分组。为了简洁,但是不失一般性,本文中我们讨论分开的原始分组和FEC分组。当原始数据分组的某一些在通信信道中丢失时,成功到达的FEC数据单元和成功到达的数据分组可以被使用来恢复丢失的数据分组(的至少某一些)。就是说,与通信信道中的实际的分组丢失相比,FEC降低了由接收机的解码器看到的分组丢失。
[0022] 图1a、1b和1c图示出FEC数据单元可以被如何生成的三个示例。
[0023] 如在图1a中所图示的,FEC数据单元104可以被生成为数据流的原始数据分组102的准确复制品。通过将数据分组102和FEC数据单元104两者都包括在数据流内,数据分组102中的数据被传输两次。因此,如果在传输期间,数据分组102丢失但是FEC数据单元104被成功接收的话,那么数据分组102中的数据可以在接收机处(使用FEC数据单元104)被成功地恢复。
[0024] 如在图1b中所图示的,模108可以被使用来生成FEC数据单元110,其是以较低比特速率编码的原始数据分组106的复制品。如果在传输期间数据分组106丢失但是FEC数据单元110被成功接收的话,那么数据分组106中的数据可以在接收机处基于FEC数据单元110被至少部分地恢复。应该注意的是,如果数据分组102和106具有相同的大小(例如,相同的比特数),那么FEC数据单元110将具有小于FEC数据单元104的大小(例如,较少的比特)。因此,虽然在恢复数据分组102时FEC数据单元104可能比FEC数据分组110更有用,但生成如图1b所示的FEC数据单元可能是有益的, 因为与FEC数据单元104所使用的相比的,FEC数据单元110使用通信信道上用于该数据流的可用比特速率中更少的比特速率。
[0025] 如在图1c中所图示的,混合模块118可以被使用来从多个原始数据分组(例如,数据分组112、114和116)生成FEC数据单元120。例如,混合模块118可以确定应用到三个数据分组112、114和116的异或函数的逐比特(bit-by-bit)的结果,从而生成FEC数据单元120。在另一种方法中,使用伽罗瓦域GF(28)运算将数据分组112、114和116逐字节地组合,从而生成FEC数据单元120。在这个意义上,FEC数据单元120是将原始数据分组112、114和116进行组合或者混合的结果。如果数据分组112、114和116中的一个在传输期间丢失,但是其它两个数据分组和FEC数据单元120被成功地接收的话,那么在丢失的数据分组中的数据可以在接收机处被成功地恢复(使用其它两个数据分组和FEC数据单元120)。
[0026] 因此,可以看到的是,FEC数据单元可以用若干不同的方式生成。不同的FEC方案描述要用以生成FEC数据单元的不同方式。FEC方案可以描述有关FEC数据单元的生成的要素,诸如:所生成的FEC数据单元的数量;使用哪些数据分组来生成FEC数据单元;FEC数据单元如何被传输(例如,作为单独的分组或者通过将FEC数据单元添加到数据分组);以及FEC数据单元被放置在数据流中何处。FEC方案的丢失-恢复性能描述了该FEC方案使用FEC数据单元在接收机处恢复丢失的数据分组的能
[0027] 一般地,增加数据流中的FEC数据单元的数量改进了FEC方案的丢失-恢复性能。然而,增加数据流中的FEC数据单元的数量是以比特速率有效性为代价来达到的。
[0028] FEC方案的丢失-恢复性能很大程度上取决于FEC开销和FEC深度。
[0029] FEC开销描述了相对于原始数据的量的冗余数据的量(例如,相对于原始分组的数量的FEC分组的数量)。较高的开销一般改进了FEC方案的丢失-恢复性能。另一方面,较高的开销是以比特速率有效性为代价来达到的。如果原始数据的编码比特速率保持不变,那么增加的冗余导致增加的总比特速率。可替换地,如果总比特速率被约束的话,那么所增加的冗余是以原始数据的降低的编码比特速率为代价来达到的。
[0030] FEC深度描述在可以由某个FEC数据单元所保护(即,被组合到某个FEC数据单元中)的最旧数据分组和最新数据分组(那两个数据分组都包括)之间的位移。换言之,其描述了可以被组合到某个FEC数据单元中的原始数据分组的最大数量。较高的深度为FEC数据单元提供了数据分组的不同组合的更多可能性,因此达到FEC方案针对例如改变的信道条件的较高灵活性。在一个极端的示例中,其中FEC数据单元被约束成一个原始数据分组的复制品,较高的深度为原始数据分组和其复制品(所述FEC数据单元)在时间上的较大间隔提供了可能性。在突发性分组丢失情形下,这是有利的,因为它使得通信信道中原始数据分组和复制品(FEC数据单元)两者都在突发中丢失的可能性最小化。
[0031] FEC深度与通信中的延迟相关。FEC数据单元将之前生成的原始数据分组进行组合,因此在发射机处不存在通过使用FEC所导致的附加算法延迟。然而,为了在接收机处重建丢失的数据分组,我们假设了接收机处的延迟,因为FEC数据单元比其所基于的数据分组更晚地生成和传输。这可以在图2所示出的时序图中看到。图2示出了使用数据流的数据分组中的三个(202、204和206)来生成FEC数据单元208的情况。在三个数据分组202、204和206全部被生成之前,FEC数据单元不能被生成。因此,数据分组202和204将于在发射机处生成FEC数据单元208之前从发射机被传输。因此,可以传输FEC数据单元208的最早时间是紧接在数据分组206之后。在图2中示出了这个情景。数据分组和FEC数据单元的传输占用一些有限的时间量。图2描绘出在通过网络经由有损通信信道传输期间的数据分组202的丢失(210)。然而,数据分组204和206 以及FEC数据单元208全部都在接收机处成功地被接收。数据分组204和206 以及FEC数据单元208可以被使用来在接收机处恢复丢失的数据分组202。然而,在数据分组204和206 以及FEC数据单元208这三者全部在接收机处被接收之前,丢失的数据分组202不能被恢复。因此,如在图2中所示出的,在当数据分组202应该已经在接收机处被接收(如果它没有丢失的话)的时间和可以使用FEC数据单元208恢复该数据分组的时间之间,存在数据分组202的FEC恢复所要求的延迟。如果未满足用于数据流的延迟要求,则丢失的数据分组202将在FEC数据单元208的到达之前,在接收机处被宣告为不可解码。这将最可能导致FEC方案的性能显著下降。
[0032] 然而,该延迟不必必然地由FEC在接收机处作为附加延迟引入。例如,所要求的延迟可能已经在接收机处存在。在接收机处的延迟的一个可能原因是抖动缓冲器的存在,因为为了减轻分组到达时刻的随机变化(抖动),抖动缓冲器将延迟引入数据流中。
[0033] 对于给定的信道条件、FEC开销和FEC深度,对用来形成FEC数据单元的原始数据分组的最优组合/混合的选择可以通过对所选的丢失-恢复性能量度进行最优化来驱动。通常,在最优化窗口内联合地对若干FEC分组进行最优化。
[0034] 丢失-恢复性能量度的示例为:
[0035] (i)可以恢复的丢失的数量;
[0036] (ii)和数∑pi,其中pi是第i个数据分组的不可恢复概率。该和数包括最优化窗口内的原始数据分组;
[0037] (iii)和数∑(pi)2。再次地,该和数包括最优化窗口内的原始数据分组。对不可恢复概率求平方更严重地惩罚了较高的不可恢复概率(即,离群值(outlier));以及[0038] (iv)和数∑wipi,其中wi是应用于第i个数据分组的不可恢复概率的权重。权重描述了不同数据分组的丢失的重要性或者灵敏度的不同平。再次地,和数包括最优化窗口内的原始数据分组。使用这样的加权性能量度的FEC方案被称为依赖源的FEC(source-dependent FEC)或者不均匀错误保护FEC(uneven-error-protection),因为提供给不同数据分组的保护是不同的。这允许将较大水平的保护提供给数据流中较重要的数据分组(例如,来自特定的应用或者用户的数据分组或者具有较大重要性的数据分组,例如,不同的音频数据分组和不同的视频数据分组可能具有由FEC方案提供给它们的不同水平的保护)。以这种方式,数据分组可以在FEC方案中具有不同水平的优先权。
[0039] 现在参考图3描述通信系统300。通信系统300包括发射机302、网络308和接收机310。发射机302包括用于处理数据的处理器304、用于跨网络308的数据的传输(和接收)的网络接口307、以及用于存储数据的存储器306。处理器304可以在发射机302中以硬件或者以软件来实现。相似地,接收机310包括用于处理数据的处理器312、用于跨网络308接收数据(和对数据进行传输)的网络接口309、以及用于存储数据的存储器314。处理器312可以在接收机310处以硬件或者以软件来实现。
[0040] 数据流可以通过网络308经由通信信道被传输到接收机310。用于通过网络经由通信信道传输数据流的方法在本领域是已知的,并且就其本身而论不在本文中详细描述。于是接收机310可以处理所接收的数据分组(例如,使用处理器312)从而检索数据。处理可以牵涉到对来自数据流的数据拆包(depacktize)和解码。数据可以存储在接收机处的存储器314中,或者从接收机310输出给例如用户。数据流中的数据可以涉及在发射机302的用户和接收机310的用户之间的实时通信事件(诸如话音呼叫或者视频呼叫)。可替换地,数据流中的数据可以涉及数据传送,诸如在发射机302和接收机310之间的文件传送。数据流中的数据可以是任何其它适当类型的数据。
[0041] 网络308可以是具有能力来在发射机302和接收机310之间提供通信信道的任何适当的网络。网络308可以是基于分组的网络。网络308可以是广域网(WAN)或者局域网(LAN)。作为示例,网络308可以是内联网、互联网或者电话网络,诸如移动电话网络。发射机302和接收机310可以以任何用于通过网络308相应地传输和接收数据流的适当装置或者设备来实现。例如,发射机302和接收机310可以被实现为用户设备,诸如具有连接到网络308的能力的个人计算机或者电话,或者被实现为其它设备,诸如网络中的服务器节点
[0042] 图4示出在通信系统300中从发射机302被传输到接收机310的数据流402的代表。数据流402包括八个数据分组,其在图4中被标注为1到8。为了简明而在图4中仅示出八个数据分组,但是数据流可以包括比八个更多的数据分组。如在图4中所示出的,数据流还包括FEC数据单元(被标注为“FEC”)。在图4中,FEC数据单元被示为与数据流中的数据分组分开的分组。然而,FEC数据单元可以被添加(或者“背负”)到数据分组。当FEC数据单元被添加到数据分组时,FEC数据单元不需要规定它们自身的分组的格式,诸如分组报头,并且照这样数据流中所需要用于FEC数据单元的数据量可以稍微减少。然而,将FEC数据单元添加到数据分组意味着如果数据分组丢失,那么添加到该丢失的数据分组的FEC数据单元也丢失了。
添加到数据分组的FEC数据单元保护除了其被添加到的那个数据分组之外的其它数据分组。如上文所解释的,在非系统的方案中,可以仅发送FEC数据,即,不发送数据流的原始数据分组。
[0043] 如上文所描述的(例如,关于图1a到图1c),基于数据流的一组数据分组生成FEC数据单元。该组可以包括一个或者多个数据分组。FEC数据单元可以例如是原始数据分组的准确复制品(如在图1a中所图示的),或者是以较低比特速率编码的原始数据分组的复制品(如在图1b中所图示的),或者是原始数据分组的组合/混合(如在图1c中所图示的)。在一种方法中,数据分组使用按位的异或操作而被逐比特地组合,所述异或操作被定义为(0 XOR 0)=(1 XOR 1)=0和(0 XOR 1)=(1 XOR 0)=1。在另一种方法中,数据分组使用伽罗瓦域GF(28)运算来逐字节地组合。FEC数据单元可以通过将数据分组中的两个或者更多个进行组合而生成。
[0044] 通过网络308的通信信道是有损的,这意味着数据流中的某些数据比特将在从发射机302到接收机310的传输期间丢失。FEC数据单元可以在接收机310处被使用来恢复在传输期间丢失的数据比特。术语“丢失的原始数据”包括在传输期间损坏而无法修复的数据比特以及在传输期间丢失的数据比特。
[0045] 如上文所讨论的,在FEC解码期间,可能引发关于丢失的分组的正确比特值或者比特序列值的不确定性。这可以通过考虑一个示例来进一步解释,在所述示例中传输三个分组:原始分组x1和x2,以及作为所述两个原始分组的混合的FEC分组,f1=mix(x1,x2),其中混合是基于逻辑按位的异或函数。
[0046] 如果分组x1丢失并且分组x2和f1被接收,那么可以通过将分组x2和f1进行混合(按位异或)而恢复分组x1。例如,如果x2中某个位置上的比特等于1,并且f1中相同位置上的比特等于0,那么x1中相同位置上的比特被恢复成(1 XOR 0)=1。
[0047] 另一方面,如果两个原始分组x1和x2都丢失,并且只有FEC分组f1被接收的话,那么分组x1和x2不能被FEC解码器恢复。例如,如果f1中某个位置上的比特等于0,那么留下x1和x2中相同位置上的比特是都等于0还是都等于1的不确定性。就是说, f1的比特0是通过(0 XOR 0)还是通过(1 XOR 1)获得。
[0048] 现在将参考图5讨论消除这些不确定性的过程。在图5中所示出的步骤在接收机310的处理器312处实现。
[0049] 在步骤S502,接收机310通过经由网络308建立的有损通信信道接收来自发射机302的已编码数据比特。
[0050] 在步骤S504,接收机310接收有关发射机302的信息。有关发射机的信息可以由已编码参数值来代表,所述已编码参数值在由处理器304对要被传输的数据进行处理期间插入到数据流的分组中。因此,已编码参数值在接收机310处被接收,并且由接收机处的处理器312解码,从而提取有关发射机302的信息。可替换地,有关发射机的信息可以与数据流分开地通过网络308从发射机302传输到接收机310。将认识到的是,有关发射机302的信息可以无需通过网络308传输而在接收机310处被接收,例如,有关发射机302的信息可以在接收机310处由用户本地地输入。
[0051] 在一个示例中,原始分组通过由源编码器(例如,音频或者视频编码器)对源(例如,音频或者视频)进行编码而生成,并且对最终得到的比特流打包(packetize)。因此,通过分析候选比特流和使用关于源和/或编码过程和/或打包过程的可用知识,可以潜在地消除不确定性。在这个示例中,有关发射机的信息可以包括源信息(视频/音频)、源编码器名称、源编码器模式、编码比特速率和打包协议。
[0052] 在步骤S506,处理器312对所接收的已编码数据比特执行FEC解码。如上文所讨论的,由于恢复过程中的不确定性(即,某个比特或者比特序列可以取多于一个值),步骤S506的FEC解码不保证对所有丢失的原始比特的恢复。因此在步骤S508,处理器312确定:在步骤S506的FEC解码之后,是否存在任何剩余的不确定性。就是说,在步骤S508,处理器312确定:在步骤S506的FEC解码之后,是否所有丢失的比特是可恢复的。处理器312可以通过检查每个比特是否具有不确定性来实现所述确定步骤。
[0053] 如果在步骤S508,处理器312确定在步骤S506处的FEC解码期间恢复了所有丢失的比特,则过程进行到步骤S512。在步骤S512,原始的和恢复的比特被发送给处理器312上的应用解码器,从而被应用解码器解码。解码的数据可以被存储在接收机上的存储器314中,或者从接收机310输出给例如用户。
[0054] 回过头来参考步骤S508,如果处理器312在步骤S508确定:由于关于正确的比特值的不确定性,在步骤S506的FEC解码期间没有恢复所有丢失的比特,则过程进行到步骤S510。
[0055] 在步骤S510,处理器312消除关于正确的比特值或者比特序列值的不确定性。步骤S510牵涉到分析用于一个或者多个丢失的比特值的候选选项。此分析在处理器312上使用在步骤S504所接收的有关发射机302的信息来实现。
[0056] 在一些情况下,通过查看单个比特而消除对于单个比特值而言的不确定性将是可能的。在其它情况下,过程将依赖于对比特序列值的联合分析。
[0057] 分析依赖于以下事实:原始分组不是完全随机的,而是按照某些规则生成的。考虑到这些规则,一些可以导致给定的FEC分组比特值(或者比特序列值)的原始分组比特值(或者比特序列值)可以被认为是不可能的,或者被认为是具有低概率性的,并且因此可以被排除在候选选项之外。
[0058] 步骤S510的对候选选项的分析可以用若干不同的方式实现。
[0059] 例如,步骤S510的对候选选项的分析可以包括辨别无效的候选比特序列值。
[0060] 可替换地或者附加地,步骤S510的对候选选项的分析可以包括辨别无效的或者低概率的候选参数值:这可以基于例如参数值的边缘概率分布的知识,并且可以可替换地或者附加地基于在不同参数之间的相互关系。边缘概率分布和参数之间的相互关系两者都可以被预先存储,和/或使用成功接收/恢复的比特进行实时更新。
[0061] 可替换地或者可选地,步骤S510的对候选选项的分析可以包括将最终得到的已解码信号质量降级最小化。该分析包括辨别:在应用解码器的后续解码之后,候选选项中的一个或者多个是否将导致质量的降级。这可以通过在接收机310上运行信号分析器或者质量估计器而实现。
[0062] 将认识到的是,步骤S510的对候选选项的分析可以包括上文所描述的方法的任何组合。
[0063] 在步骤S510,对于丢失的原始数据而言是不可行的选项的那些候选选项(比特值或者比特序列值)可以被丢弃,并且在对已丢失原始数据的恢复过程中的关于正确比特值或者比特序列值的不确定性可以使用剩余的候选选项(那些未被丢弃的)来消除。
[0064] 在一些情况下,判定在通信信道上丢失的原始分组的整个比特流将是不可能的。然而,在许多应用中,判定至少某些部分(例如比特流的开始)却是有用的,因为这使得能解码有用的信息/参数。仅作为示例,这些参数可以是感知上重要的参数,其描述了语音/音频或者视频帧的第一宏块。
[0065] 虽然在一些情况下,执行比特流分析而不用运行应用解码器可能是足够的,但是在许多情景中,通过对候选比特序列运行应用解码器并评价候选解码参数值,可以获得显著的益处。
[0066] 现在参考图6来更详细地描述比特流分析。图6是接收机310处的处理器312的示意性代表。处理器312的每个元件都可以以硬件或者以软件来实现。
[0067] 在接收到来自发射机302的数据流后,接收机310处的纠错解码器602(即,FEC解码器)接收该数据流。
[0068] 如果所有丢失的比特都是可恢复的(在步骤S508确定),那么在接收机310处接收的数据比特和所恢复的比特在线605上供应给第一交换装置612。第一交换装置612可被控制来将在接收机310接收的数据比特和所恢复的比特供应给应用解码器607以便被解码。一旦被解码,应用解码器607就被安排成经由第二交换装置622在线618上输出解码比特。解码比特可以被存储在接收机310处的存储器314中,或者从接收机310输出给例如用户。
[0069] 如果所有丢失的比特都不是可恢复的(在步骤S508确定),那么在接收机310处接收的数据比特和未恢复的比特在线603上供应给比特流分析器608。
[0070] 比特流分析器608包括主恢复块604和次恢复块614。主恢复块604被安排成在线603上接收具有一个或者多个不可恢复比特的数据比特。主恢复块604还被安排成在线606上接收有关发射机的信息(以 表示),所述信息可以包括关于源、和/或编码过程、和/或打包过程、和/或对于在发射机302处如何生成原始分组的规则的可用知识。
[0071] 主恢复块604可操作来尝试使用有关发射机的信息( )去消除从FEC解码器输出(在线603上接收)的一个或者多个不可恢复比特的不确定性。就是说,主恢复块604使用比特流分析来通过使用有关发射机的信息( )辨别无效比特流从而消除不确定性。
[0072] 在一些情况下,主恢复块604将能够消除一个或者多个不可恢复比特的所有不确定性。就是说,主恢复块604能够实现步骤S510(在图5中示出)。在这种情景下,主恢复块604被安排成将数据(包括所判定的比特)在线615上供应给第一交换装置612。第一交换装置可被控制来将数据(包括所判定的比特)供应给应用解码器607。
[0073] 在一些情况下,主恢复块604将不能消除在线603上接收到的一个或者多个不可恢复比特的所有不确定性。就是说,对于数据中的至少一个比特而言,将仍然保持有多个候选比特值。在这种情景下,主恢复块604被安排成将多个候选比特序列在线613上供应给次恢复块614。
[0074] 次恢复块614包括第一数据暂存器610,其被安排成存储该多个候选比特序列。次恢复块614包括第二数据暂存器611,其被安排成存储来自之前已经被应用解码器607解码的比特的解码结果。处理器312被安排成控制第二交换装置622以便将之前已经被应用解码器607解码的比特在线616上供应给次恢复块614。
[0075] 次恢复块614被安排成将候选比特序列的每一个在线625上供应给第一交换装置612。第一交换装置可被控制来将候选比特序列供应给应用解码器607。应用解码器被安排成将候选比特序列解码,从而输出解码的候选结果。从应用解码器607输出的解码候选结果经由第二交换装置622在线616上供应给次恢复块614。由于关于解码候选结果的不确定性,处理器312控制第二交换装置622,以使得从应用解码器607输出的解码候选结果不在线618上输出,这样使得它们不被存储在接收机310处的存储器314中,或者不被从接收机310输出给例如用户。
[0076] 次恢复块614可操作来尝试使用在线606上接收的有关发射机的信息( )并且通过分析存储在第二数据暂存器611中的解码结果而排除解码候选结果。
[0077] 通过不确定的(ambiguous)原始分组(它们的比特流和编码参数)常常彼此相关的事实,可以使分析便利。同样,不确定的分组常常与早先解码的原始分组相关。
[0078] 在一些情况下,基于这个分析,次恢复块614将能够排除掉除了一个之外的所有其它解码候选结果。就是说,除了恢复块604之外,次恢复块614操作来实现步骤S510(在图5中示出)。在这种情景下,次恢复块614被安排成在线617上输出解码候选结果。在线617上的解码比特输出可以被存储在接收机310处的存储器314中,或者从接收机310输出给例如用户。
[0079] 将明显的是,在上文描述的比特流分析中,第一交换装置612具有在线605、615和625上的三个输入连接。在比特流分析期间,第一交换装置612被安排成在其三个输入中的一个上接收数据,并且其可被控制来将所接收的数据供应给应用解码器607。就是说,第一交换装置612将接收下列之一:(i)在线605上的在接收机310处接收的数据比特和由纠错解码器602恢复的比特,(ii)在线615上的在接收机310处接收的比特和由主恢复块604判定的比特,以及(iii)在线625上的候选比特序列。第一交换装置612在其三个输入中的一个上接收的数据取决于在纠错解码器602处对丢失比特恢复的成功、以及主恢复块604消除从FEC解码器输出的一个或者多个不可恢复比特的不确定性的成功。
[0080] 同样将明显的是,处理器312的架构将取决于如何实现对候选选项的分析(在图5的步骤S510)。例如,如果对候选选项的分析仅包括辨别无效的候选比特序列值(由主恢复块604实现),那么可能不需要次恢复块614。相似地,如果对候选选项的分析仅包括辨别无效的或者低概率的解码候选参数值(由次恢复块614实现),那么可能不需要主恢复块604。在这种情况下,次恢复块614将被安排成接收从纠错解码器602输出的具有一个或者多个不可恢复的比特的数据比特,并且在消除一个或者多个不可恢复比特的不确定性的过程中确定被供应给应用解码器的候选比特序列。
[0081] 在本发明的一个实施例中,发射机302知道接收机310的消除在FEC解码后的不确定性的能力。在发射机302处的FEC编码器可以利用接收机310有能力消除在FEC解码后的不确定性的知识而得以最优化。这将参考图7进一步地详细讨论。
[0082] 图7是发射机302处的处理器304的示意性代表。出于简洁的目的,处理器304被显示为具有FEC编码器703,将认识到的是,处理器可以包括在图7中未示出的用在数据传输中的其它模块。FEC编码器703被安排成在线701上接收从源编码器(图7中未示出)输出的已编码信息(已编码数据比特)。源编码器可以例如是音频或者视频编码器。FEC编码器703还被安排成在线705上接收有关接收机的信息(β),并且将已编码数据在线707上输出,以用于通过网络308进行传输。在操作中,FEC编码器703对在线701上接收的信息进行编码。就是说,FEC编码器703尝试通过按照校正方案加入冗余来保护源编码的信息,所述校正方案基于在线705上接收的有关接收机的信息(β)而被最优化。
[0083] 在本发明的一个实施例中,FEC最优化可以通过运行离线“训练”而实现。就是说,将认识到的是,将存在许多不同方式来生成FEC数据,例如尽管图1c示出根据三个原始数据分组生成的FEC数据单元120,但是可以将任意数量的原始数据分组进行组合,从而生成FEC数据单元,并且因此存在很大的最优化空间。通过运行离线仿真,有可能确定被最优化从而按照特定量度给出最佳性能的FEC方案。仅作为用来图示该概念的示例,此量度可以是通过分析仿真结果可计算出来的分组丢失,所述仿真结果即从发射机发送的分组数量、在接收机处接收的分组数量、由FEC解码器恢复的分组数量和通过消除在FEC解码后的不确定性而进一步恢复的分组数量(如果这个进一步处理在接收机处被应用的话)。如果视频数据要跨网络传输,则该量度可以是视频质量的水平。在本领域中,视频质量评价技术是众所周知的,故将不在本文中讨论。
[0084] 这些仿真可以包括确定在通信信道的多个实现上的每种可能的FEC方案(即,可以怎样生成FEC数据单元的每种排列(permutation))的性能,例如仿真可以包括在仿真遭受到各种程度的分组丢失的信道时确定每种可能的FEC方案的性能。
[0085] 离线“训练”可以包括运行如下的一些仿真:其中接收机312仅包括一个FEC解码器602,以及其中接收机312包括一个FEC解码器并且能够消除在FEC解码(具有在图6中示出的元件)后剩余的不确定性。将认识到的是,为其中接收机312仅包括一个FEC解码器602的情景提供最佳性能的FEC方案可以不同于为其中接收机312包括一个FEC解码器并且能够消除在FEC解码后剩余的不确定性的情景提供最佳性能的FEC方案。
[0086] FEC编码器703可以用若干不同方式确定接收机的消除在FEC解码之后的不确定性的能力。在一个示例中,FEC编码器703通过在发射机处执行的通信客户端软件(由与通信系统300相关联的软件供应商所提供)来实现,该通信客户端软件允许发射机参加通过网络308的呼叫和其它通信会话。在FEC解码(和消除在FEC解码后剩余的不确定性)通过在接收机处执行通信客户端软件——其由提供用来实现FEC编码器703的通信客户端软件的相同软件供应商提供——来实现的场合,FEC编码器703能够通过读取在接收机处执行的通信客户端软件的版本号而确定接收机的消除在FEC解码之后的不确定性的能力。在另一个示例中,FEC编码器703可以通过经由网络从接收机310反馈回发射机302的数据而被通知接收机的消除在FEC解码之后的不确定性的能力。在又一个示例中,FEC编码器703可以通过由用户手动地将此信息供应给FEC编码器703而确定接收机的消除在FEC解码之后的不确定性的能力。在线705上接收的有关接收机的信息(β)包括指示接收机的用来执行FEC解码并且消除在FEC解码之后的不确定性的能力的信息。
[0087] 一旦FEC编码器703已经确定接收机是否有能力消除在FEC解码之后的不确定性,FEC编码器703就能够选择对于接收机的能力而言最优化的FEC方案。
[0088] 虽然本发明已经被参考优选实施例具体地示出并且进行了描述,但是本领域技术人员将理解的是,可以在不偏离由所附权利要求限定的本发明的范围的情况下,做出各种形式上和细节上的改变。
[0089] 在上文描述的优选实施例中使用了FEC数据。在可替换的实施例中,可以使用其它类型的校正数据而不是FEC数据,只要该校正数据允许在接收机处使用该校正数据恢复丢失分组的数据流单元即可。
[0090] 上文的示例举例说明了在按位异或混合的情况下,如何形成候选比特值的空间。相似地,形成用于其它混合方式的候选比特流。例如,在伽罗瓦域GF(28)的情况下,候选比特流逐字节地形成。
[0091] 上文的示例举例说明了在代表两个原始分组的混合的一个FEC分组中剩余的不确定性。相似地,可以对于更多数量的FEC分组和对于更多数量的被混合在FEC分组中的原始分组来联合地消除不确定性。
[0092] 按照本发明的第一个实施例,提供在接收机处处理已编码数据比特的方法,所述已编码数据比特通过经由网络建立的有损通信信道从发射机被传输到接收机,所述方法包括:通过通信信道接收已编码数据比特,所述已编码数据比特包括冗余数据单元;在纠错解码器处对已编码数据比特进行解码,其中对丢失数据的恢复在纠错解码器处使用冗余数据单元中的至少一个来实现;确定是否至少一个数据比特由于解码器找到用于所述至少一个数据比特的多个候选比特值而不能被恢复;通过网络接收有关所述发射机的信息;分析多个候选比特值,以便使用有关所述发射机的信息来将用于该至少一个数据比特的候选比特值的至少一个排除在外;并且基于所述分析来判定该至少一个数据比特。
[0093] 有关所述发射机的信息可以通过网络接收。
[0094] 当解码的步骤对数据比特序列进行操作并且为每个数据比特找到多个候选比特值时,所述方法可以进一步包括:使用有关所述发射机的信息为序列中的每个比特分析多个候选比特值,从而确定对于该序列而言最可能的候选比特值。
[0095] 优选地,有关所述发射机的信息包括下列的至少一项:关于在被编码之前数据比特的源的信息;关于用来对该已编码数据比特进行编码的编码过程的信息;关于用来打包已编码数据比特的打包过程的信息;和关于在生成已编码数据比特时由发射机遵循的预定规则的信息。
[0096] 所述分析可以进一步包括辨别用于至少一个数据比特的多个候选比特值中的一个或者多个是否将在后续解码步骤之后导致质量降级。
[0097] 优选地,分析的步骤包括使用应用解码器对候选比特值进行解码,从而生成候选解码结果,并且使用有关所述发射机的信息来基于候选解码结果将无效的或者低概率的候选比特值排除在外。
[0098] 本方法可以进一步包括:应用解码器对所恢复的或者所判定的数据比特进行解码,从而生成已解码数据比特;并且存储已解码数据比特以供在将无效或者低概率的候选解码结果排除在外时使用。
[0099] 本方法可以进一步包括:当候选比特值不能使用有关所述发射机的信息来判定时,有选择地将候选比特值供应给应用解码器,从而对候选比特值进行解码。
[0100] 候选解码结果可以代表原始数据单元的参数,所述分析可以包括基于下列的至少一项来将代表用于参数的无效或者低概率值的候选解码结果排除在外,即:参数值的边缘概率分布的知识;和在不同参数值之间的相互关系。
[0101] 纠错解码器可以实现前向纠错方案。
[0102] 按照系统校正方案,在接收机处接收的已编码数据比特可以进一步包括原始数据单元。
[0103] 当按照系统校正方案,在接收机处接收的已编码数据比特进一步包括原始数据单元时,所述已编码数据比特可以包括冗余数据单元,其以下列方式之一从原始数据单元生成:i) 作为原始数据单元的准确复制品;或者ii)作为在发射机处以低于原始数据单元的比特速率编码的原始数据单元的复制品;或者iii)通过将多个原始数据单元进行组合。
[0104] 当已经通过将多个原始数据单元进行组合而从原始数据单元生成冗余数据单元时,可以使用按位的异或操作将原始数据单元逐比特地组合,或者使用伽罗瓦域GF(28)运算将原始数据单元逐字节地组合。
[0105] 按照非系统的校正方案,在接收机处接收的冗余数据单元可以代表原始数据和冗余数据。
[0106] 网络可以是基于分组的网络。
[0107] 按照本发明的第二实施例,提供用于处理已编码数据比特的接收机,所述已编码数据比特通过经由网络建立的有损通信信道从发射机被传输到接收机,所述接收机包括:接收装置,用于通过通信信道接收已编码数据比特,所述已编码数据比特包括冗余数据单元;纠错解码器,用于对已编码数据比特进行解码,其中对丢失数据的恢复在纠错解码器处使用冗余数据单元中的至少一个来实现;确定装置,用于确定是否至少一个数据比特由于解码器找到用于所述至少一个数据比特的多个候选比特值而不能被恢复;接收装置,用于接收有关所述发射机的信息;分析装置,用于分析多个候选比特值,从而使用有关所述发射机的信息来将用于该至少一个数据比特的候选比特值中的至少一个排除在外;以及判定装置,用于基于所述分析来判定该至少一个数据比特。
[0108] 接收机可以进一步包括应用解码器,其被配置成对所恢复的或者所判定的数据比特进行解码以便生成解码结果,并且有选择地可操作来对候选比特值进行解码,从而生成候选解码结果以供分析装置和判定装置使用。
[0109] 接收机可以进一步包括交换装置,用于将候选比特值供应给应用解码器。
[0110] 应用解码器可以是话音解码器或者视频解码器。
[0111] 按照本发明的第三实施例,提供在接收机处处理已编码数据比特的方法,所述已编码数据比特通过经由网络建立的有损通信信道从发射机被传输到接收机,所述方法包括:通过通信信道接收已编码数据比特,所述已编码数据比特被包含在分组和冗余数据单元中;在纠错解码器处对已编码数据比特进行解码,其中使用冗余数据单元中的至少一个和至少一个其它分组来在纠错解码器处实现对丢失分组的恢复;确定是否至少一个丢失分组由于解码器找到用于所述丢失分组中的至少一个数据比特的多个候选比特值而不能被恢复;通过通信信道接收有关所述发射机的信息;分析多个候选比特值,从而使用有关所述发射机的信息来将用于该至少一个数据比特的候选比特值中的至少一个排除在外;并且基于所述分析来判定该至少一个丢失分组的一个或者多个数据比特。
[0112] 按照本发明的第四实施例,提供在发射机处处理用于通过经由网络建立的有损通信信道从发射机传输到接收机的数据比特的方法,所述方法包括:在纠错编码器处接收来自源编码器的数据比特;在纠错编码器处对数据比特进行编码,从而输出已编码数据比特,所述已编码数据比特按照校正方案被包含在分组和冗余数据单元中;并且在纠错编码器处接收有关接收机的信息,所述信息包括关于接收机包括用于对已编码数据比特进行解码的纠错解码器的指示,其中对丢失数据的恢复在纠错解码器处使用冗余数据单元中的至少一个来实现,并且所述接收机被安排成:确定是否至少一个数据比特由于解码器找到了用于该至少一个数据比特的多个候选比特值而不能被恢复;接收有关所述发射机的信息;分析多个候选比特值,从而使用有关所述发射机的信息来将用于该至少一个数据比特的候选比特值中的至少一个排除在外;并且基于所述分析来判定该至少一个数据比特;其中由纠错编码器使用的校正方案基于有关接收机的信息被最优化。
[0113] 按照本发明的第五实施例,提供用于处理数据比特的发射机,所述数据比特用于通过经由网络建立的有损通信信道从发射机传输到接收机,所述发射机包括:纠错编码器,其被安排成接收来自源编码器的数据比特,并且输出已编码数据比特,所述已编码数据比特按照校正方案被包含在分组和冗余数据单元中,所述纠错编码器包括:接收装置,用于接收有关接收机的信息,所述信息包括关于接收机包括用于对已编码数据比特进行解码的纠错解码器的指示,其中对丢失数据的恢复在纠错解码器处使用冗余数据单元中的至少一个来实现,并且所述接收机被安排成:确定是否至少一个数据比特由于解码器找到用于该至少一个数据比特的多个候选比特值而不能被恢复;接收有关所述发射机的信息;分析多个候选比特值,从而使用有关所述发射机的信息将用于该至少一个数据比特的候选比特值中的至少一个排除在外;并且基于所述分析来判定该至少一个数据比特;其中由纠错编码器使用的校正方案基于有关接收机的信息被最优化。
[0114] 按照本发明的第六实施例,提供一种包括本文以上所描述的发射机和接收机的通信系统。
QQ群二维码
意见反馈