使用极化码进行编码和解码的制作方法

文档序号:16511971发布日期:2019-01-05 09:23阅读:580来源:国知局
使用极化码进行编码和解码的制作方法

本文给出的实施例涉及用于将信息序列编码成编码序列的方法、信息编码器、计算机程序和计算机程序产品。本文给出的进一步的实施例涉及用于将编码序列解码成信息序列的方法、信息解码器、计算机程序和计算机程序产品。



背景技术:

在通信网络中,对于给定的通信协议、其参数以及在其中部署通信网络的物理环境,获取良好性能和容量可能存在挑战。

例如在数字通信中,要从发送方传送到接收方的数据可以被划分成以分组发送的较小数据段。这些数据段被提供有用于将数据从发送方传送到接收方的数据协议应如何映射分组以及在一些情况下分析分组的数据内容是否正确的信息。通常可以由接收机预测或获知该信息。例如,当使用因特网协议(ip)时,沿从发送方到接收方的路径的每个设备都需要ip分组报头以路由该分组。在一些通信网络中,例如在长期演进(lte)无线接入网络中,所服务的无线设备通常将永远不会接收具有错误ip地址的ip分组(其被所谓的报头压缩利用)。

极化码,如2009年ieee信息论汇刊(ieeetrans.inform.theory)第55卷第3051-3073页“信道极化:构造用于对称二进制输入无记忆信道的容量实现代码的方法(channelpolarization:amethodforconstructingcapacity-achievingcodesforsymmetricbinary-inputmemorylesschannels)”中所给出的,是容量实现代码,具有明确的结构(即,不是随机生成的),并且具有有效的编码和解码算法。除了容量实现特性(其在代码长度趋于无穷时有效),它们在较短的代码长度上表现出良好的性能。

用于解码极化码的现有机制的一个问题在于遵循极化码的比特顺序的连续解码(sd)过程。极化码的解码易于错误传播,因此,连续解码过程中早期产生的错误将不会被校正,而是将一直传播到解码结束。这将导致解码错误。此外,更有可能在过程的早期而不是结束时产生错误,参见图2。图2示出了具有索引i的比特位可以携带的信息量的示例(i=1,2,...n,其中,n是比特位的总数,在该示例中n=1024),假设所有先前的比特1,2,...,i-1都是已知的,即,遵循极化码解码顺序。

根据现有技术,例如2011年7月31日至2011年8月5日的ieee国际信息论会议(ieeeinternationalsymposiumoninformationtheoryproceedings,isit)“极化码的列表解码(listdecodingofpolarcodes)”中,通过扩展最可能出错的比特位(索引)(即解码器很难确定它们是0还是1的比特)的固定列表来缓解这个问题。这种技术通常被称为列表解码。但是,任何列表解码过程的列表都会非常快速地增长。大列表对于解码性能是有利的,但是在开销和能量消耗方面是不利的。

因此,仍然需要一种使用极化码进行编码和解码的改进机制。



技术实现要素:

本文的实施例的目的是提供极化码的有效编码和解码。

根据第一方面,提出了一种用于将信息序列编码成编码序列的方法。该方法由信息编码器执行。该方法包括获取信息序列。该方法包括在信息序列中插入至少一个检查点序列。该方法包括使用极化码将包括至少一个检查点序列的信息序列编码成编码序列。

根据第二方面,提供了一种用于将信息序列编码成编码序列的信息编码器。信息编码器包括处理电路。处理电路被配置为使信息编码器获取信息序列。处理电路被配置为使信息编码器在信息序列中插入至少一个检查点序列。处理电路被配置为使信息编码器使用极化码将包括至少一个检查点序列的信息序列编码成编码序列。

根据第三方面,提供了一种用于将信息序列编码成编码序列的信息编码器。信息编码器包括处理电路和计算机程序产品。计算机程序产品存储有指令,这些指令在由处理电路执行时使信息编码器执行多个步骤或操作。这些步骤或操作使信息编码器获取信息序列。这些步骤或操作使信息编码器在信息序列中插入至少一个检查点序列。这些步骤或操作使信息编码器使用极化码将包括至少一个检查点序列的信息序列编码成编码序列。

根据第四方面,提供了一种用于将信息序列编码成编码序列的信息编码器。信息编码器包括被配置为获取信息序列的获取模块。信息编码器包括被配置为在信息序列中插入至少一个检查点序列的插入模块。信息编码器包括被配置为使用极化码将包括至少一个检查点序列的信息序列编码成编码序列的编码模块。

根据第五方面,提供了一种用于将信息序列编码成编码序列的计算机程序,所述计算机程序包括计算机程序代码,所述计算机程序代码当在信息编码器的处理电路上运行时使信息编码器执行根据第一方面的方法。

根据第六方面,提出了一种用于将编码序列解码成信息序列的方法。该方法由信息解码器执行。该方法包括获取编码序列。编码序列已使用极化码被编码并且包括至少一个检查点序列。该方法包括对编码序列进行解码以获取信息序列。该方法包括通过使用至少一个检查点序列执行编码序列的列表解码来对编码序列进行解码,编码序列的列表解码产生至少两个候选解码序列。该方法包括通过丢弃至少两个候选解码序列中至少一个检查点序列的列表解码失败的候选解码序列来对编码序列进行解码。

根据第七方面,提供了一种用于将编码序列解码成信息序列的信息解码器。信息解码器包括处理电路。处理电路被配置为使信息解码器获取编码序列。编码序列已使用极化码被编码并且包括至少一个检查点序列。处理电路被配置为使信息解码器对编码序列进行解码以获取信息序列。处理电路被配置为使信息解码器通过使用至少一个检查点序列执行编码序列的列表解码来对编码序列进行解码,编码序列的列表解码产生至少两个候选解码序列。处理电路被配置为使信息解码器通过丢弃至少两个候选解码序列中至少一个检查点序列的列表解码失败的候选解码序列来对编码序列进行解码。

根据第八方面,提供了一种用于将编码序列解码成信息序列的信息解码器。信息解码器包括处理电路和计算机程序产品。计算机程序产品存储有指令,这些指令在由处理电路执行时使信息解码器执行多个步骤或操作。这些步骤或操作使信息解码器获取编码序列。编码序列已使用极化码被编码并且包括至少一个检查点序列。这些步骤或操作使信息解码器对编码序列进行解码以获取信息序列。这些步骤或操作使信息解码器通过使用至少一个检查点序列执行编码序列的列表解码来对编码序列进行解码,编码序列的列表解码产生至少两个候选解码序列。这些步骤或操作使信息解码器通过丢弃至少两个候选解码序列中至少一个检查点序列的列表解码失败的候选解码序列来对编码序列进行解码。

根据第九方面,提供了一种用于将编码序列解码成信息序列的信息解码器。信息解码器包括被配置为获取编码序列的获取模块。编码序列已使用极化码被编码并且包括至少一个检查点序列。信息解码器包括被配置为对编码序列进行解码以获取信息序列的解码模块。信息解码器包括被配置为使用至少一个检查点序列执行编码序列的列表解码的列表解码模块,编码序列的列表解码产生至少两个候选解码序列。信息解码器包括被配置为丢弃至少两个候选解码序列中至少一个检查点序列的列表解码失败的候选解码序列的丢弃模块。

根据第十方面,提供了一种用于将编码序列解码成信息序列的计算机程序,所述计算机程序包括计算机程序代码,所述计算机程序代码当在信息解码器的处理电路上运行时使信息解码器执行根据第六方面的方法。

根据第十一方面,提供了一种计算机程序产品,其包括根据第五方面和第十方面中的至少一个的计算机程序以及存储计算机程序的计算机可读存储介质。计算机可读存储介质可以是非暂时性计算机可读存储介质。

有利地,这些方法,这些信息编码器,这些信息解码器和这些计算机程序提供用于极化码的有效编码和解码。

有利地,这些方法、这些信息编码器、这些信息解码器和这些计算机程序提供了对已使用极化码编码的信息序列的列表解码的有效管理。这意味着信息解码器中的有效性能和/或更低的计算开销是可能的。

应当注意,在适当的情况下,第一、第二、第三、第四、第五、第六、第七、第八、第九、第十和第十一方面的任何特征可以应用于任何其它方面。类似地,第一方面的任何优点同样可以分别适用于第二、第三、第四、第五、第六、第七、第八、第九、第十和/或第十一方面,反之亦然。根据以下详细公开内容、所附从属权利要求以及附图,所附实施例的其它目的、特征和优点将显而易见。

通常,权利要求中使用的所有术语将根据它们在技术领域中的普通含义来解释,除非本文另有明确定义。所有提及“一/该元件、设备、组件、装置、步骤等”将被广泛地解释为是指元件、设备、组件、装置、步骤等的至少一个实例,除非另有明确说明。本文公开的任何方法的步骤不必以所公开的确切顺序执行,除非明确说明。

附图说明

现在仅以示例的方式参考附图描述本发明的构思,其中:

图1是示出根据实施例的通信网络的示意图;

图2是示出根据实施例的交互信息的示意图;

图3、4、5和6是根据实施例的方法的流程图;

图7和图8是示出根据实施例的列表解码的示意图;

图9是示出根据实施例的包括其mac报头的macsdu的示意图;

图10是示出根据实施例的信息编码器的功能单元的示意图;

图11是示出根据实施例的信息编码器的功能模块的示意图;

图12是示出根据实施例的信息解码器的功能单元的示意图;

图13是示出根据实施例的信息解码器的功能模块的示意图;

图14示出根据实施例的包括计算机可读装置的计算机程序产品的一个示例。

具体实施方式

现在将在下文中参考附图更全面地描述本发明的构思,附图中示出了本发明构思的某些实施例。然而,本发明构思可以用许多不同的形式具体化,并且不应被解释为限于本文阐述的实施例;相反,这些实施例是以示例的方式提供的,使得本公开将是全面且完整的,并且将本发明构思的范围完全传达给本领域的技术人员。相同的数字在整个说明书中指代相同的元件。虚线所示的任何步骤或特征都应视为是可选的。

图1是示出其中可以应用本文给出的实施例的通信网络100的示意图。通信网络100包括信息编码器200和信息解码器300。信息编码器200被配置为将信息序列z编码成编码序列y。信息解码器300被配置为将编码序列解码成信息序列

信息编码器200和信息解码器300由符号通信信道110分隔开。通信信道110对信息编码器200与信息解码器300之间如何影响编码序列y进行建模。例如,编码序列y的传输可能导致错误被插入编码序列y中。在本文中,在通过通信信道110传输期间,错误被解释为编码序列y中的比特值从二进制的零翻转到二进制的一,或反之亦然。因此,由信息解码器300获取的编码序列y被表示为其中,如果信道没有错误,则而在其它情况下,此外,如果但如果则存在的非零概率。为了最小化的概率,信息编码器200在编码过程期间以受控的方式向信息序列z添加冗余,从而产生编码序列y。冗余通过使用极化码以受控的方式添加。相对地,在信息解码器300处,所添加的冗余以受控的方式从所接收的编码序列中移除,从而产生解码信息序列此外,通信网络100包括(可选的)数据存储设备120。假设数据存储设备120无损地存储数据,即,不会在所存储的数据中引入损失。数据中的任何损失都由通信信道110进行建模。

假设信息编码器200和信息解码器300基于极化码。如上所述,可以使用列表解码来确定解码信息序列极化码的列表解码的现有技术基于概率测量,以决定应考虑哪些候选解码序列并因此将其存储在列表中。这些概率测量不可靠,因为它们包含由于近似而导致的错误(即,它们包含估计错误)。

因此,本文公开的实施例涉及用于将信息序列z编码成编码序列y的机制。为了获得这样的机制,提供了一种信息编码器200、由信息编码器200执行的方法、包括代码的计算机程序产品,所述代码例如采用计算机程序的形式,所述代码当在信息编码器200的处理电路上运行时使信息编码器200执行所述方法。

因此,本文公开的其它实施例涉及用于将编码序列解码成信息序列的机制。为了获得这样的机制,还提供了一种信息解码器300、由信息解码器300执行的方法、以及包括代码的计算机程序产品,所述代码例如采用计算机程序的形式,所述代码当在信息解码器300的处理电路上运行时使信息解码器300执行所述方法。

图3和图4是示出由信息编码器200执行的用于将信息序列z编码成编码序列y的方法的实施例的流程图。图5和图6是示出由信息解码器300执行的用于将编码序列解码成信息序列的方法的实施例的流程图。这些方法有利地作为计算机程序提供。

本文公开的实施例中的至少一些基于将数据比特映射到由极化码给出的比特顺序,以使得信息序列z中的已知或部分已知的比特序列(在下文中被标示为检查点序列)被放置为使得信息解码器300能够在解码过程中相对早地检测到解码错误。当使用编码序列的列表解码时,这种解码错误的早期检测可以用于截断可能的候选解码序列的列表,但是如果当前列表中的所有候选解码序列都未通过检查点,则还可以用于决定是否需要使用新的候选解码序列列表重新进行部分解码。

现在参考图3,其示出了根据实施例的由信息编码器200执行的用于将信息序列z编码成编码序列y的方法。信息编码器200被配置为获取信息序列z,并因此被配置为执行步骤s102:

s102:信息编码器200获取信息序列z。

编码基于在要使用极化码进行编码的信息序列z中定义一组检查点序列(其中该组检查点序列可以由单个检查点序列或至少两个检查点序列组成)。因此,信息编码器200被配置为执行步骤s108:

s108:信息编码器200在信息序列z中插入至少一个检查点序列。每个检查点序列由一组比特定义(其中该组比特可以由单个比特或至少两个比特组成)。

然后,信息编码器200使用极化码对信息序列z进行编码(成为编码序列y)。因此,信息编码器200被配置为执行步骤s110:

s110:信息编码器200使用极化码将包括至少一个检查点序列的信息序列z编码成如此的编码序列y。

因此,假设检查点比特是信息比特(例如,极化码中的非固定比特位)。一般而言,检查点比特可由信息编码器200改变,因此在代码设计中不是固定的,即使这些检查点比特不传达信息。

尽管可以根据信息理论最优极化码规则来固定这些检查点比特,并且这样做会增加纠正错误比特的概率,但是这将不向信息解码器300提供到目前为止解码比特是否正确的任何信息。这是在代码设计中将比特分配给检查点序列与分配给固定值之间的根本区别。

现在参考图4,其示出了根据其它实施例的由信息编码器200执行的用于将信息序列z编码成编码序列y的方法。假设如参考图3所描述地执行步骤s102、s108和s110,因此省略对这些步骤的重复描述。

需要在信息编码器200和信息解码器300两处知道信息序列z中的检查点序列的位置(被称为检查点位置)。信息编码器200可以用不同的方式定义检查点位置并使信息解码器300能够识别检查点位置。现在将依次描述与其相关的不同实施例。

根据各方面,信息编码器200确定检查点位置并使用控制信息向信息解码器300指示检查点位置。因此,根据实施例,信息编码器200被配置为执行步骤s112:

s112:信息编码器200提供标识信息序列z中的至少一个检查点序列的位置的信息。信息编码器200还可以被配置为向信息解码器300通知检查点序列的数量。这将使得信息解码器300免于被配置为在检查点序列的上下文中处理扩展比特错误。

根据进一步的各方面,信息编码器200使用控制信息向信息解码器300指示检查点序列的长度。因此,根据实施例,信息编码器200被配置为执行步骤s114:

s114:信息编码器200提供标识至少一个检查点序列的长度的信息。

如下面将进一步公开的,信息编码器300可以基于解码器复杂度(即,信息解码器300用于对编码序列进行解码的复杂度)来确定检查点序列的位置。根据实施例,信息编码器200因此被配置为执行步骤s104:

s104:信息编码器200获取信息解码器300用于将编码序列解码成信息序列所需的计算工作量的指示。

然后,信息编码器200基于这所获取的指示来确定要使用的检查点序列的数量,如步骤s106。

s106:信息编码器200基于计算工作量的指示,确定要在信息序列中插入上述至少一个检查点序列中的多少个检查点序列。

下面将提供如何定义检查点位置的进一步的示例。

现在参考图5,其示出了根据实施例的由信息解码器300执行的用于将编码序列解码成信息序列的方法。

s202:信息解码器300获取编码序列编码序列已经使用极化码被编码,并且包括至少一个检查点序列。

在获取编码序列之后,信息解码器300通过被配置为执行步骤s208来对编码序列进行解码:

s208:信息解码器300对编码序列进行解码,以获得信息序列

解码包括使用列表解码,其中,执行一个或多个解码步骤以产生一个或多个候选解码序列。具体地,信息解码器300被配置为执行步骤s208a和s208b,以对编码序列进行解码以获取信息序列

s208a:信息解码器300使用至少一个检查点序列执行编码序列的列表解码。编码序列的列表解码产生至少两个候选解码序列。

执行步骤s208a以使信息解码器300确定要保留的至少两个候选解码序列中的哪个(如果有的话)。候选解码序列是解码比特的序列。在表示解码比特序列中的位置的检查点位置处,信息解码器300评估用于候选解码序列中的每一个的检查点检查。从候选解码序列列表中移除未通过检查的候选解码序列,如步骤s208b:

s208b:信息解码器300丢弃至少两个候选解码序列中至少一个检查点序列的列表解码失败的候选解码序列。

在步骤s208b中丢弃至少两个候选解码序列可导致信息解码器300保留一个(单个)候选解码序列。

在只找到一个正确的部分候选解码序列的情况下,该候选解码序列可用于去除列表中的所有其它部分候选解码序列并且只保留正确的候选解码序列(从而将列表大小减少到一个单个列表项)。这将有效地将当前检查点标记为已通过。

现在参考图6,其示出了根据进一步的实施例的由信息解码器300执行的用于将编码序列解码成信息序列的方法。假设如参考图5所描述地执行步骤s202、s208、s208a和s208b,因此省略对这些步骤的重复描述。

信息解码器300可以用不同的方式获知检查点序列在信息序列z中的位置。现在将依次描述与其相关的不同实施例。根据实施例,信息解码器300被配置为执行步骤s204:

s204:信息解码器300获取标识信息序列中至少一个检查点序列的位置的信息。

在步骤s204中,信息解码器300可以用不同的方式获取信息。例如,可以明确地获取例如由信息编码器200所指示的检查点序列的位置。例如,可以通过信息解码器300分析至少两个候选解码序列来获取信息。这可能需要信息解码器300知道由信息序列z表示的数据的结构。与此有关的进一步细节将在下面公开。此外,信息解码器300可以被配置为通过执行步骤s206来获取检查点序列的长度:

s206:信息解码器300获取标识至少一个检查点序列的长度的信息。信息解码器300可以使用该信息来确定信息序列中的至少一个检查点序列的位置。与此有关的进一步细节将在下面公开。

在步骤s208a中,可以用不同的方式对编码序列进行解码。根据实施例,信息解码器300被配置为通过执行步骤s208aa而在步骤s208a中执行列表解码:

s208aa:信息解码器300对编码序列进行解码,直到至少一个检查点序列中的第一个检查点序列已被解码。解码产生至少两个候选解码序列。至少两个候选解码序列中的每一个与已正确解码第一检查点序列的概率相关联。

根据该实施例,信息解码器300然后被配置为通过执行步骤s208ba而在步骤s208b中丢弃至少两个候选解码序列:

s208ba:信息解码器300丢弃至少两个候选解码序列中已正确解码第一检查点序列的概率低于阈值的所有候选解码序列。

根据实施例,存在至少两个检查点序列。根据实施例,信息解码器300然后被配置为通过执行步骤s208ab而在步骤s208a中执行列表解码:

s208ab:信息解码器300继续对编码序列进行解码,直到至少两个检查点序列中的第二个检查点序列已被解码。解码产生至少两个其它候选解码序列,每个候选解码序列与已正确解码第二检查点序列的概率相关联。

根据该实施例,信息解码器300然后被配置为通过执行步骤s208bb而在步骤s208b中丢弃至少两个候选解码序列:

s208bb:信息解码器300丢弃至少两个候选解码序列中已正确解码第二检查点序列的概率低于阈值的所有候选解码序列。

可存在不同的原因而在步骤s208a中的列表解码期间获取至少两个候选解码序列。根据实施例,至少两个候选解码序列是在编码序列的列表解码期间将解码序列分支成至少两个候选解码序列的结果。分支可能有不同的原因。根据实施例,分支是由解码序列的二进制数字引起的,其具有在编码序列的列表解码期间被解码为0和1的相等概率。在这方面,术语“相等概率”应被解释为将比特解码为零的概率值在0.35-0.65的范围内,更优选地在0.4-0.6的范围内。将参考图7和图8提供这种分支的示例。

当在步骤s208a中丢弃所有候选解码序列时,可以用不同的方式在步骤s208中进行解码。例如,可以基于挑选在最前面通过的检查点(并且因此成功解码的检查点序列)与当前失败的检查点之间的前一列表的构建期间被排除的亚军候选解码序列来构建新列表。可以重复该回溯,直到找到正确的候选解码序列,或者直到触发跟随有解码错误声明的停止标准。因此,根据实施例,当所有至少两个候选解码序列被丢弃时,信息解码器300被配置为执行步骤s210、s212和s214以继续解码过程:

s210:信息解码器300将列表解码回溯到解码序列中最近成功解码的检查点序列。

s212:信息解码器300将至少两个候选解码序列中在该最近成功解码的检查点序列处已成功解码的另一个候选解码序列定义为解码序列。

s214:信息解码器300从该最近成功解码的检查点序列开始并使用如步骤s212中定义的解码序列继续进行列表解码。

如上所述,存在至少一个检查点序列,但是通常可以存在多于一个的检查点序列。根据实施例,存在多个检查点序列。然后,信息解码器300被配置为执行步骤s216而对所有检查点重复列表解码:

s216:信息解码器300对所有检查点序列重复步骤s208a的解码和步骤s208b的丢弃,直到整个编码序列已被解码。这产生一个单个解码序列。该单个解码序列在信息解码器300处定义信息序列

图7示出了极化码的检查点辅助列表解码的示例,其中列表已达到大小4,并且其中第一检查点序列(由单个奇偶校验比特组成)在比特位5处被插入。在该示例中,概率表明每个比特位的评估似然值等于1。概率在0.5±0.2之间的任何比特位在该例子中被认为是不确定的,并且因此被分支出去(branchout)。当到达第一检查点序列(在比特位5处)时,这导致了四个不同的路径。在图7的示例中,只有第三路径在比特位5处指示0(将比特位5解码为1的概率为0.18,因此比特位5被解码为0),因此,选择该路径作为候选解码序列。

图8示出了极化码的检查点辅助列表解码的更一般的图示,其中不确定比特序列可导致候选解码序列的子树,并且其中检查点位置可以修剪整个子树(即,修剪来自候选解码序列的大量候选者)。

根据一些方面,检查点位置由标准化规范给出。标准化规范可以规定确定检查点位置的过程。检查点位置可以定期地进行定位。检查点位置还可以取决于信息序列的长度。在一些方面,检查点序列因此沿着信息序列的长度均匀地放置。例如,4个检查点序列可被放置在信息序列的总长度的1/5、2/5、3/5和4/5长度处。因此,根据其中存在多个检查点序列的实施例,多个检查点序列均匀地放置在信息序列的长度上。该策略具有稳健性,并且适用于大多数实现。

在一些方面,与信息序列的结束处相比,检查点序列被更密集地放置在信息序列的开始处。例如,4个检查点序列可被放置在信息序列的总长度的1/15、1/5、2/5、2/3长度处。因此,根据实施例,信息序列具有开始部分和结束部分,并且与结束部分相比,多个检查点序列被更密集地放置在开始部分中。如果信息解码器300包括并行化硬件处理器,则这允许在开始部分中执行大量地分支,直到使用并行化硬件处理器的所有核,并且因此允许生成大量的分支以用于列表解码。然后,本文公开的实施例可用于有效地修剪这大量的分支。

根据实施例,至少一个检查点序列根据预定方案被放置在信息序列中。例如,可以使用知道信息解码器300用来确定在到达给定检查点之前需要执行多少解码操作以及在给定的检查点之后将要执行多少解码操作的确切实现的机制。在一些实施例中,因此获取错误概率和列表大小的分析描述。例如,可以使用贪婪原则来生成哪些位置ni插入检查点序列,例如,哪些信息比特bi=[bi,...,bi+n](i=n0,...,nk)应当用于检查点序列。这可以通过评估解码c(n0,...,nk)的复杂度来完成。复杂度可被确定为解码所需的预期操作总数或者操作数的第99个百分位;或者预期的最大列表长度;或者列表大小的第99个百分位等。使用此值,贪婪算法将添加检查点序列,直到复杂度根据以下伪代码小于目标阈值thr为止:

whilec(n0,…,nk)>thrdo

nk+1=argmini(c(n0,…,nk,i))

increasekby1

endwhile

这意味着添加了检查点比特,以尽可能地降低复杂度,而无需任何全局优化。例如,如果信息解码器300可访问64个处理核,则列表大小将小于64。

根据进一步的实施例,检查点序列在信息序列z中的放置利用由信息序列z表示的数据的结构。例如,根据实施例,至少一个检查点序列中的每一个由循环冗余校验(crc)的校验和、因特网协议(ip)地址、报头、子报头、无线链路控制协议数据单元(rlcpdu)中的至少一个保留比特、或者无线链路控制协议数据单元中的至少一个扩展比特来定义。通常,数据分组的任何已知特性,例如crc校验和、ip地址、rlc段号窗口、报头中的保留比特等,可用于在信息序列z中构建检查点序列。以这种方式,检查点序列不需要从(或在)信息序列z中移除(或添加)任何信息比特,而是需要根据预定方案在信息序列z中映射已知序列,例如媒体访问控制(mac)子报头。

图9示意性地示出了包括其mac报头的mac服务数据单元(sdu)。mac报头又由三个子报头组成:子报头0、子报头1和子报头2。子报头包括指示是否存在附加子报头的扩展比特。就rlcpdu而言,对于未确认的rlc,在rlc子报头中存在三个保留比特和一个扩展比特,而对于确认模式rlc,则存在一个扩展比特。然后,可以通过在所需检查点位置中复用子报头(mac或rlc)来在解码期间检测错误。由于子报头的保留比特(被标示为r0、r1,用于mac子报头)是已知的,并且逻辑信道标识(lcid)是部分已知的,因此仅将非常有限的一组比特序列配置为有效检查点序列。此外,通过使用指示是否存在任何其它子报头的扩展比特(e)来嵌入mac子报头的数量。因此,在其中存在至少两个检查点序列的实施例中,至少两个检查点序列中的第一个检查点序列可以包括指示在信息序列z中存在至少两个检查点序列中的第二个检查点序列的比特。通过使用预定方案来分配子报头(如图9所示),子报头可以用作检查点序列,以在解码期间检测直接错误和级联错误。

此外,尽管信息编码器200和信息解码器300已经商定放置检查点序列的位置,但是信息解码器300不知道检查点序列的数量,因为信息解码器300事先不知道子报头的数量并且因此需要解码扩展比特以获知是否有任何其它子报头。如果由于传输信道110的影响而将扩展比特从其真实值切换到假值,则可以停止进一步的错误检测。但是信息解码器300仍然可以检查检查点序列的下一可能位置;任何下一子报头序列将被视为由“伪随机”数据比特序列组成,其可能与sdu的数据比特序列不同,因此,信息解码器300将很可能能够检测下一子报头序列。

总之,本文公开的实施例中的至少一些实现了在信息序列z中有效地包括检查点序列(例如,crc校验或mac/rlc(子)报头),以使得信息解码器300具有非常高的概率在列表解码过程的早期可以确定列表中哪些候选解码序列是错误的。在解码过程中,信息解码器300只确定了部分候选解码序列,因为整个候选解码序列只在列表解码结束时获取。

在某个检查点,用于生成检查点序列的候选解码序列的完整数据需要是可用的,因此使得可以生成用于部分候选解码序列的检查点序列,并与所接收的检查点序列进行比较。确实是这种情况,因为当到达某个比特位索引时(例如,标记crc校验的检查点),所有先前的比特1,...,i-1,i已被解码和固定。对于列表中的不同的部分候选解码序列,这些比特被解码为不同的值。检查点将提供信息以选择正确的部分候选解码序列(如果它在列表中),或者如果所有部分候选解码序列都是错误的,则通过清空列表以及例如从最后传递的检查点重新启动来重置该过程。为了缓解错误传播,尽早在信息序列z中具有检查点序列可能是有益的。

图10以多个功能单元的形式示意性地示出了根据实施例的信息编码器200的组件。处理电路210使用能够执行存储在例如具有存储介质230的形式的计算机程序产品1410a(如图14中)中的软件指令的适用的中央处理单元(cpu)、多处理器、微控制器、数字信号处理器(dsp)等中的一个或多个的任何组合来提供。处理电路210还可以被提供为至少一个专用集成电路(asic)或现场可编程门阵列(fpga)。

具体地,处理电路210被配置为使信息编码器200执行如上所述的一组操作或步骤s102-s114。例如,存储介质230可以存储该组操作,并且处理电路210可被配置为从存储介质230中获取该组操作以使信息编码器200执行该组操作。该组操作可以被提供为一组可执行指令。因此,处理电路210由此被布置为执行如本文所公开的方法。

存储介质230还可以包括永久存储设备,其例如可以是磁存储器、光存储器、固态存储器、或者甚至远程安装的存储器中的任意单个一个或组合。

信息编码器200还可以包括用于至少与信息解码器300通信的通信接口220。如此,通信接口220可以包括一个或多个发射机和接收机,其包括模拟和数字组件以及合适数量的用于无线通信的天线和用于有线通信的端口。

处理电路210控制信息编码器200的一般操作,例如,通过向通信接口220和存储介质230发送数据和控制信号、通过从通信接口220接收数据和报告、以及通过从存储介质230获取数据和指令。为了不使本文提出的概念模糊,省略了信息编码器200的其它组件以及相关功能。

图11以多个功能模块的形式示意性地示出了根据实施例的信息编码器200的组件。图11的信息编码器200包括多个功能模块:获取模块210a,其被配置为执行步骤s102;插入模块210d,其被配置为执行步骤s108;以及编码模块210e,其被配置为执行步骤s110。图11的信息编码器200还可以包括多个可选功能模块,例如被配置为执行步骤s104的获取模块210b、被配置为执行步骤s106的确定模块210c、被配置为执行步骤s112的提供模块210f、以及被配置为执行步骤s114的提供模块210g中的任何一个。

一般而言,每个功能模块210a-210g可以采用硬件或软件实现。优选地,一个或多个或者所有功能模块210a-210g可以由处理电路210实现,可与功能单元220和/或230协作。处理电路210因此可被布置为从存储介质230获取由功能模块210a-210g所提供的指令,并执行这些指令,从而执行如本文所公开的信息编码器200的任何步骤。

图12以多个功能单元的形式示意性地示出了根据实施例的信息解码器300的组件。处理电路310使用能够执行存储在例如具有存储介质330的形式的计算机程序产品1410b(如图14中)中的软件指令的适用的中央处理单元(cpu)、多处理器、微控制器、数字信号处理器(dsp)等中的一个或多个的任何组合来提供。处理电路310还可以被提供为至少一个专用集成电路(asic)或现场可编程门阵列(fpga)。

具体地,处理电路310被配置为使信息解码器300执行如上所述的一组操作或步骤s210-s216。例如,存储介质330可以存储该组操作,并且处理电路310可被配置为从存储介质330获取该组操作以使信息解码器300执行该组操作。该组操作可以被提供为一组可执行指令。因此,处理电路310由此被布置为执行如本文所公开的方法。

存储介质330还可以包括永久存储设备,其例如可以是磁存储器、光存储器、固态存储器、或者甚至远程安装的存储器中的任意单个一个或组合。

信息解码器300还可以包括用于至少与信息编码器200通信的通信接口320。如此,通信接口320可以包括一个或多个发射机和接收机,其包括模拟和数字组件以及合适数量的用于无线通信的天线和用于有线通信的端口。

处理电路310控制信息解码器300的一般操作,例如,通过向通信接口320和存储介质330发送数据和控制信号、通过从通信接口320接收数据和报告、以及通过从存储介质330获取数据和指令。为了不使本文提出的概念模糊,省略了信息解码器300的其它组件以及相关功能。

图13以多个功能模块的形式示意性地示出了根据实施例的信息解码器300的组件。图13的信息解码器300包括多个功能模块:获取模块310a,其被配置为执行步骤s202;解码模块310d,其被配置为执行步骤s208;列表解码模块310e,其被配置为执行步骤s108a;以及丢弃模块310h,其被配置为执行步骤s108b。图13的信息解码器300还可以包括多个可选功能模块,例如被配置为执行步骤s204的获取模块310b、被配置为执行步骤s206的获取模块310c、被配置为执行步骤s208aa的解码模块310f、被配置为执行步骤s208ab的解码模块310g、被配置为执行步骤s208ba的丢弃模块310i、被配置为执行步骤s208bb的丢弃模块310j、被配置为执行步骤s210的回溯模块310k、被配置为执行步骤s212的定义模块310l、被配置为执行步骤s214的列表解码模块310m、以及被配置为执行步骤s216的重复模块310n中的任何一个。

一般而言,每个功能模块310a-310n可以采用硬件或软件实现。优选地,一个或多个或者所有功能模块310a-310n可以由处理电路310实现,可与功能单元320和/或330协作。处理电路310因此可以被布置为从存储介质330获取由功能模块310a-310n所提供的指令,并执行这些指令,从而执行如本文所公开的信息解码器300的任何步骤。

信息编码器200和/或信息解码器300可以作为独立设备提供或者被提供为至少一个其它设备的一部分。例如,信息编码器200和/或信息解码器300可以在无线接入网络节点中(例如,在无线基站、基站收发信台、节点b或者演进型节点b中),或者在终端用户设备中(例如,在便携式无线设备、移动台、移动电话、手持设备、无线本地环路电话、用户设备(ue)、智能电话、膝上型计算机、平板计算机、传感器设备、物联网设备或无线调制解调器中)提供。

可替代地,信息编码器200的功能可以分布在至少两个设备或节点之间。因此,由信息编码器200和/或信息解码器300执行的指令的第一部分可以在第一设备中执行,由信息编码器200和/或信息解码器300执行的指令的第二部分可以在第二设备中执行;本文公开的实施例不限于可以在其上执行由信息编码器200和/或信息解码器300执行的指令的任何特定数量的设备。因此,根据本文公开的实施例的方法适用于由驻留在云计算环境中的信息编码器200和/或信息解码器300执行。因此,尽管图10和图12中示出了单个处理电路210、310,处理电路210、310可以分布在多个设备或节点之间。这同样适用于图10和图12的功能模块210a-210g、310a-310n以及图14的计算机程序1420a、1420b(见下文)。

图14示出了包括计算机可读装置1430的计算机程序产品1410a、1410b的一个示例。在该计算机可读装置1430上,可以存储有计算机程序1420a,计算机程序1420a可以使处理电路210及其可操作地耦合的实体和设备(例如通信接口220和存储介质230)执行根据本文描述的实施例的方法。因此,计算机程序1420a和/或计算机程序产品1410a可以提供用于执行如本文所公开的信息编码器200的任何步骤的装置。在该计算机可读装置1430上,可以存储有计算机程序1420b,计算机程序1420b可以使处理电路310及其可操作地耦合的实体和设备(例如通信接口320和存储介质330)执行根据本文描述的实施例的方法。因此,计算机程序1420b和/或计算机程序产品1410b可以提供用于执行如本文所公开的信息解码器300的任何步骤的装置。

在图14的示例中,计算机程序产品1410a、1410b被示例为光盘,诸如cd(压缩盘)或dvd(数字多功能盘)或蓝光盘。计算机程序产品1410a、1410b还可以具体化为存储器,例如,随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom)或电可擦除可编程只读存储器(eeprom)以及更具体地作为外部存储器(例如,usb(通用串行总线)存储器)或闪存存储器(例如紧凑型闪存存储器)中的设备的非易失性存储介质。因此,虽然计算机程序1420a、1420b在本文中示意性地被示出为所示光盘上的轨道,但是计算机程序1420a、1420b可以用适合于计算机程序产品1410a、1410b的任何方式存储。

以上主要参考几个实施例描述了本发明的构思。然而,如本领域的技术人员所容易理解的,除了以上所公开的实施例之外的其它实施例落入如所附专利权要求所限定的本发明构思的范围内同样是可能的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1