用于解码前向纠错码的系统和方法 |
|||||||
申请号 | CN200680016541.7 | 申请日 | 2006-05-11 | 公开(公告)号 | CN101176263A | 公开(公告)日 | 2008-05-07 |
申请人 | 韦里佐内服务公司; | 发明人 | 阿德里安·埃文斯·康韦; | ||||
摘要 | 一种通过利用到达的滞后数据分组中包含的信息来更新(或重算) 解码器 状态以改进前向纠错解码的解码器性能的系统和方法。 实施例 公开的系统和方法通常应用于解码器,该解码器在对连续比特或 帧 信息进行解码时维持状态信息。在此公开的系统和方法可以提高解码器的性能(即,比特误差率),因所述重算的状态就是当所述滞后数据分组所包含信息起初准时到达并且按通常方式被解码的情况下该解码器所应具有的状态。实际上,在滞后数据分组到达后的解码器状态的更新终止了滞后数据分组擦除对解码器状态影响的时间传播。 | ||||||
权利要求 | 1.一种数据分组解码系统,包括: |
||||||
说明书全文 | 技术领域本发明涉及解码前向纠错码的系统和方法。 背景技术在分组网络中,非实时数据信号和实时数据信号,例如声音、视 频和音频,在对其进行分组划分和通过数据分组网络传输之前,可通 过纠错编码来进行编码。这可以通过各种前向纠错(FEC)方案实现。 总体而言,FEC方案在信号(或消息)被发送前引入充分的冗余,以 使得在传输过程中丢失或破坏的分组能够在接收器中重构。换句话说, FEC的目的在于,通过对信道中传输的数据附加一些精心设计的冗余 信息来提高信道的容量。这种利用前向纠错码的信号编码能保护被传 输信号,避免数据分组丢失、数据分组擦除、比特误差以及在实时数 据中的数据分组延迟。 在使用前向纠错码码进行编码和数据分组划分的传输的接收端, 到达的数据分组通常首先被存储在分组接收缓冲器中(或“重放 (playout)”缓冲器)。根据“流水线”处理过程,从缓冲器中周期 性读出(或“重放”)被缓冲的数据分组,从分组有效载荷(payload) 中提取比特或帧,所述比特或帧已使用对应于数据分组划分前在发送 端已经应用的编码方法的解码方法来解码,以及已经解码的数字信号 被重放到该接收机构(或装置、过程或人)。当该缓冲器已满时,或 者如果是实时信号,当调度(或要求)的重放时间已过,到达数据分 组接收缓冲器的数据分组可能被擦除。滞后数据分组的丢弃导致包含 在滞后分组中的比特或者帧数据的丢弃(或)擦除。滞后数据分组的 丢弃是除数据分组网络中可能已经产生的任何数据分组丢弃、数据分 组擦除或数据分组破坏之外的丢弃。 可以向解码器指出已经被擦除或者丢弃的比特或者帧数据,应用 在已经接收的比特或者帧数据的解码方法可以校正已经被擦除、丢失 或破坏的比特或帧数据。然而,即使使用FEC方案,仍然会在解码过程 中出现误差。因此,仍然需要其它方案和方法以提高前向纠错码性能 (即,比特误差率)。 附图说明 将参考以下附图,这些附图无需按比例绘制,其中: 图1示出了用于接收数据分组以及对已经利用纠错码编码的比特 信息或者帧信息进行解码的传统技术; 图2示出了根据本发明一个实施例实现的解码技术实例的高级框 图;和 图3示出了根据本发明一个实施例实现的解码技术的更详细的实 例,其中在对纠错码的解码中利用所到达的滞后数据分组所包含的信 息。 具体实施方式以下将要参考附图描述根据本发明的优选实施例,示出本发明的 其中一些但并非所有可能的实施例。当然,本发明可以按不同形式实 现,且本发明不限于所列出的实施例;这些提供的实施例仅使得本公 开达到法定要求,全文用同一标记标识同一部件。 根据本发明实现的一个实施例,其公开了一种方法和系统,利用 所到达滞后数据分组中所包含的信息来更新(或重算)解码器状态, 因此改进前向纠错码解码器性能。以下通过例子中参考的已知纠错码 为传统纠错码编码,当然根据本发明的实施例中的方法和系统也可以 使用其他纠错码。如以下所述,该方法和系统通常应用于在对连续比 特/帧数据做解码时保存状态信息的解码器中。一种公知的解码器根据 Viterbi算法操作,当然该方法或系统也可以使用其他类型的解码器。 该方法或系统通常改进该解码器的性能(即,比特误差率),因所述 重算的状态就是在所述滞后数据分组所包含信息起初是准时到达并且 按通常方式被解码的情况下该解码器所应具有的状态。实际上,在滞 后数据分组到达后的解码器状态的更新终止了滞后数据分组擦除在解 码器状态产生影响的时间上的传播。 以下详细描述该方法和系统,按照解码器优先于数据分组接收缓 冲器的顺序介绍。注意该分组接收缓冲器的尺寸(按分组为单位)可 以是0、1或更多。因此,所描述的方法或系统也包括不含接收缓冲器 的情况,在这种情况下,到达的比特或帧数据被立即从到达的数据分 组中提取并在流水线过程中被解码。 用于接收数据分组和对已经利用前向纠错码编码的比特/帧信息 进行解码的现有技术如图1所示。在图1中,从网络来到的数据分组 通常首先存储在数据分组接收缓冲器12中。在缓冲器已满时,到达的 数据分组被丢弃(例如,擦除,阻塞)。数据分组,例如,滞后数据 分组在调度的或要求的重放时间之后到达也被丢弃。在接收缓冲器12 中保存的数据分组根据数据分组重放调度表被重放。如通常所知,在 传输的接收端处可以利用重放调度表来连续重放被传输的信号(包含 在各接收的数据分组中)而不管网络延迟的变化。在存在延迟变化的 情况下(公知为延迟抖动),在接收端的重放调度表可以大大地影响 数据分组网络中的丢失和等待时间之间的平衡。因此,在输出解码信 号x(k)之前,通常使用数据分组接收缓冲器12来吸收延迟抖动,此处 k表示离散的时间点。晚于调度(或要求)的重放期限到达的任何数据 分组将会被丢弃,其导致丢失。尔调度更迟的期限以增加重放更多数 据分组以及更低丢失率的可能性,要以付出更高的缓冲器延迟为代价。 当重放数据分组时,从数据分组中提取信息比特/帧数据f(k),并 且通过纠错解码器14一次一比特或一帧地对信息比特/帧数据进行解 码(在一些实施例,可以按组对比特或帧进行解码)。解码器14的输 出是已经解码的输出信号x(k)。注意,当数据分组需重放时,如果分组 缓冲器12为空(缺省),或如果一个或多个数据分组在分组缓冲器中 的分组时间序列中遗失,例如由于到达滞后,则通常在已经接收的比 特/帧数据数据流插入比特/帧数据的擦除指示标志,以保持进入到解码 器的信息的连续比特/帧数据流。 更正式地说,如果f(k)是第k个比特或帧信息(即,在离散的时 间点k到达的比特或帧信息),则该对应于该第k个时间间隔的被解 码输出信号为x(k),这里x(k)=D(f(k),S(k-1)),D(.)为纠错解码运算 符,且S(k-1)是解码了前一信息帧f(k-1)之后的该纠错解码器14的状态。 在解码了f(k)之后的解码器14的状态是S(k)。注意,对于比特的情况, f(k)可以对应1、0,或者指出的擦除。对于帧的情况,f(k)可以对应比 特的帧或指出帧擦除。 如以上所述,用于接收和解码利用纠错码编码的比特/帧信息的现 有技术因延迟到达的数据分组而造成丢失。为了至少部分弥补这种丢 失而不增加缓冲器的延迟,图2示出了根据本发明一个实施例实现的 解码技术实例的高级框图。更具体地说,图2示出了一种解码技术, 在对纠错码进行解码过程中,使用到达的滞后数据分组所包含信息。 在图1所示的传统解码技术中,到达的滞后数据分组仅仅被丢弃(或 擦除)。然而,在图2所示的实施例中,到达的滞后数据分组被传输 到以26标记的滞后数据分组到达处理单元26。以下将详细描述,滞后 数据分组到达处理单元26可以利用包含在所到达的滞后数据分组中的 信息来更新(或重算)纠错解码器24的状态。滞后数据分组到达处理 单元26及其构成元件如图3的实例所示,可以包括存储在解码器中存 储器内的软件以及通过解码器的处理元件例如控制器、微处理器或其 他计算装置来获取和执行。可替换地,滞后数据分组到达处理单元26 以及其组成元件可以包含硬件或软件或软件、硬件和固件的任意结合, 如本领域技术人员可理解的。 图3示出了根据本发明的实施例实现的解码技术的更详细的实例, 该解码技术在对前向纠错码进行解码的过程中使用包含在到达的滞后 数据分组中的信息。在图3中,从网络到达的分组首先被置于数据分 组接收缓冲器22中,除非数据分组在其调度(或要求)的重放时间之 后到达,或除非该数据分组接收缓冲器已满。如果该数据分组接收缓 冲器22已满,该到达的数据分组可仅仅被丢弃或阻塞。如图1所示, 在数据分组接收缓冲器22中的数据分组根据数据分组重放调度表来重 放。当数据分组被重放,从数据分组中提取比特/帧数据信息并且利用 纠错解码器一次一比特/帧地对比特/帧数据信息进行解码(或者,在一 些实施例中,按比特/帧的组进行解码)。解码器24的输出为已经解码 的输出信号x(k),此处x(k)=D(f(k),S(k-1))。当数据分组应当被重放 时,如果数据分组缓冲器22为空(缺省),则可插入所擦除的比特/ 帧数据擦除,以保持进入解码器24的连续信息流。 不同于图1所示通常技术,如图3所示实施例包括滞后数据分组 到达处理单元26,其帮助实现一系列附加步骤,在当滞后数据分组到 来时,可以执行所述附加步骤。在图1中的现有技术中,滞后数据分 组仅仅被丢弃(或擦除)。然而,在图3所示实施例的实例中,在到 达的滞后数据分组中的比特/帧数据信息可被用于:(i)如步骤29所 示,更新辅助比特/帧数据缓冲器28;(ii)如步骤31所示,更新辅助 解码器状态缓冲器30;以及(iii)如步骤33所示,更新纠错解码器状 态S(k)。比特/帧数据缓冲器28保存最近输入的M-1个比特/帧数据, 以及当数据分组缓冲器空时已经被插入的比特/帧数据擦除指示。换句 话说,比特/帧数据缓冲器28保存了已经提供给纠错解码器24的比特/ 帧数据的最近历史记录。当比特/帧数据提供给纠错解码器24时,该比 特/帧数据也被复制到比特/帧数据缓冲器28中。因此,比特/帧数据缓 冲器28在时间k的状态可以定义成一组比特/帧数据A(k)= {f(k),f(k-1),...,f(k-M)}。解码器状态缓冲器30保存纠错解码器24的最 近M个状态。换句话说,解码器状态缓冲器30保存解码器状态的最新 历史记录。在对连续比特/帧数据进行解码时,随着解码器24的状态改 变,解码器的每个新状态也被复制到解码器状态缓冲器30。因此,解 码器状态缓冲器30在时间k的状态可以定义成一组解码器状态B(k)= {S(k),S(k-1),...,S(k-M-1)}。 当滞后数据分组到来时,滞后数据分组到达处理单元26通常首先 确定时间点,步骤29更新该比特/帧数据缓冲器期间,滞后数据分组中 的比特/帧对应于所述时间点。这可以根据包含在滞后数据分组的头部 字段中的序列号和/或时间戳信息来确定。在滞后数据分组中比特/帧的 集合g(.)因此由{g(e),g(e+1),...,g(e+n+1)}给出,其中n是该滞后数据分 组中比特/帧的数量并且e是该滞后数据分组中第一个比特/帧数据的时 间点。通过入滞后分组那样替换A(k)中那些对应于滞后数据分组中相 同时间点的比特/帧数据,比特/帧数据缓冲器A(k)(28)因此被更新。例 如,如果f(e)在A(k)中,f(e)可以被g(e)替换,如果f(e+1)在A(k)中, f(e+1)可以被g(e+1)替换,...,如果f(e+n-1)在A(k)中,f(e+n-1)可以被 g(e)替换。如以上所指出的,擦除的比特/帧数据最初可以被插入到比特 /帧数据缓冲器A(k)中代替滞后到达数据分组,以保持对解码器24的输 入是连续信息流。例如,如果f(i)在A(k)中,且滞后数据分组包含g(i), 则f(i)是的指出的比特/帧数据擦除,其最初用作该擦除的占位符。随后 的更新包括滞后到达的数据分组,比特/帧数据缓冲器28可以被定义为 A*(k)={f*(k),f*(k-1),...,f*(k-M)}. 当更新了比特/帧数据缓冲器28,考虑更新后的比特/帧数据缓冲 器A*(k),递归重算(更新)解码器的过去状态,因此解码器状态缓冲 器30也被更新。对此,设f(j)是在更新比特/帧缓冲器28时被g(j)替换 的A(k)中最早的比特/帧。S(j)重算为S*(j)=D(f*(j),S(j-1)),S(j+1)重算 为S*(j+1)=D(f*(j+1),S(j)),等等,直到S(k)重算为S*(k)=D(f*(k),S(k-1)), 由此解码器状态缓冲器30被递归更新。最终,通过把解码器24的当 前状态设置成重算后(更新后)状态S*(k),解码器24的当前状态本身 被更新。解码器24的性能,至少就比特误差率而言,可以因此得到提 高。因重算的解码器状态就是当包含在滞后数据分组中的信息最初是 准时到达且按通常方式被解码时该解码器应有的状态。通过根据接收 的滞后数据分组来更新解码器的状态,根据本发明优选实施例的方法 和系统可以终止滞后数据分组擦除在解码器的状态上产生效应的时间 上的传播。 如以上所指出,根据本发明实现的实施例利用了在到达的滞后数 据分组中包含的信息,可用于纠错解码器中,在对连续比特/帧数据进 行解码时用于保存状态信息。用于卷积纠错码的Viterbi解码器即是一 个例子。然而,本发明的实施例在应用中不限于任何特定的纠错码方 案或解码方案,只要在对连续比特/帧数据进行解码时该解码器保存状 态信息。还存在可以应用本发明实施例的方法和系统的许多其他解码 器,例如用于卷积turbo码的解码器。此处描述的这些实施例可以被应 用到未来可能发明的任何新的纠错码解码器中,在对连续的比特/帧数 据进行解码时保存状态信息。 在前述说明书中,由于参照特定实施例来描述本发明。因此,该 相关领域的技术人员容易理解对具体描述实施例的任何的变动或改动 也可以在本发明的精神和范围内,本发明的范围仅由权利要求书限定。 依据的说明书和附图应理解为仅起说明作用而并非限制。 |