CN100546200C - 用于从位流解码可变长代码字的方法、解码器、系统和设备 - Google Patents

用于从位流解码可变长代码字的方法、解码器、系统和设备 Download PDF

Info

Publication number
CN100546200C
CN100546200C CNB038142732A CN03814273A CN100546200C CN 100546200 C CN100546200 C CN 100546200C CN B038142732 A CNB038142732 A CN B038142732A CN 03814273 A CN03814273 A CN 03814273A CN 100546200 C CN100546200 C CN 100546200C
Authority
CN
China
Prior art keywords
code word
decoded
bit stream
length
field
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.)
Expired - Fee Related
Application number
CNB038142732A
Other languages
English (en)
Other versions
CN1663128A (zh
Inventor
S·瓦西利亚迪斯
J·尼卡拉
J·塔卡拉
P·利乌哈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Oyj
Sisvel International SA
Original Assignee
Nokia Oyj
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nokia Oyj filed Critical Nokia Oyj
Publication of CN1663128A publication Critical patent/CN1663128A/zh
Application granted granted Critical
Publication of CN100546200C publication Critical patent/CN100546200C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory

Abstract

本发明涉及一种用于从位流解码可变长代码字的方法,在该位流中为代码字定义最小长度和最大长度。在本方法中,分部分地处理将被解码的位流,在位流的每一部分中搜索代码字,并解码发现的代码字。在本方法中,以这种方式从正处理的位流部分提取至少部分重叠的字段,即:至少两个字段的起点是所述位流部分中代码字的可能的起点。在至少一个字段中,搜索代码字的结尾,并根据代码字终点确定和代码字相关的数据。使用和至少一个代码字相关的数据来发现字段中将被解码的代码字的发生,并解码发现的代码字。本发明还涉及解码器、其中应用本方法的系统和设备,以及存储应用本方法的程序的存储装置。

Description

用于从位流解码可变长代码字的方法、解码器、系统和设备
技术领域
本发明涉及一种从位流中解码可变长代码字的方法,在该位流中为代码字定义最小长度和最大长度,在本方法中,分部分地处理将被解码的位流,在位流的每一部分中进行代码字搜索,并且解码发现的代码字。本发明还涉及一种用于从位流中解码可变长代码字的解码器,在该位流中为代码字定义最小长度和最大长度,所述解码器配有用于以特定长度的部分处理将被解码位流的装置,用于在位流的每一部分搜索代码字的装置,以及用于解码发现的代码字的装置。本发明还涉及一种传输二进制形式的信息的系统,该系统包括一个编码器和一个解码器,并且所述解码器包括用于从位流解码可变长代码字的装置,在该位流中为代码字定义最小长度和最大长度,所述解码器配有用于以定长部分处理将被解码该位流的装置,用于在位流的每一部分搜索代码字的装置,以及用于解码发现的代码字的装置。而且,本发明涉及一种包括从位流解码可变长代码字的解码器的设备,在该位流中为代码字定义最小长度和最大长度,所述解码器配有用于以定长部分处理将被解码的位流的装置,用于在位流的每一部分中搜索代码字的装置,以及用于解码发现的代码字的装置。最后,本发明涉及用于存储程序的存储设备,所述程序包括可由机器执行的、从位流中解码可变长代码字的步骤,在该位流中为代码字定义最小长度和最大长度,所述程序配有以特定长度部分处理将被解码的位流的计算机指令,在位流的每一部分搜索代码字的计算机指令,以及解码发现的代码字的计算机指令。
背景技术
在通过数据网络传输图像和视频数据中,需要压缩图像数据,这是因为由可获得的传输速率来看,将被传输的数据量是非常大的。已知的压缩算法包括无损算法和有损算法。离散余弦变换(DCT)是结合量化,用于从图像数据去掉冗余信息的有损算法。为基本图像单元(例如,8×8象素)计算DCT因子,并且图像块以由这些因子组成的矩阵表示。在DCT后,通过锯齿形(Zig-Zag)扫描将这些因子排列成合适的顺序用于无损哈夫曼编码。哈夫曼编码仅是可变长编码(VLC)的一个示例,可变长编码(VLC)在DCT和量化之后降低统计冗余。可变长编码的原理是用较短的代码字表示频繁发生的符号而用较长的代码字表示不常发生的符号。为了开始编码,要通过根据符号发生的概率安排各个符号来处理源数据。概率最小的符号被递归地组合到一个符号中,其中形成一个树结构(如图1a所示的示例)以通过定义一位来代表每个分支而为每个符号分配它自身的代码字。从图1a的代码树可以看出,发生概率最小的符号具有最长的代码字。表1b表示每个符号的发生概率P(X),代码字(代码)和熵H(x)。上述方法导致对于平均值的最短的代码字,并且上述压缩非常接近于原始源的熵;因此,编码在总体上是有效的。从而,可变长编码在许多涉及图像处理的标准中是一个必要的元素。
如可变长编码的定义指出的,可变长编码的代码字在长度上是变化的。如果不能从位流直接检测到代码字的起点和终点,在代码字间会产生递归依赖性,这会使解码更困难。这种依赖性将使得在可变长解码(VLD)前必须从位流发现代码字,也就是说必须确定代码字的位置。因此,在解码过程中,确定码长和位置、代码字和相应的符号是必须的。
根据下面方式的位流处理可表征VLD实现。在位的串行处理中,连续地一位一位的处理位流。因此,整个进入的位流是以恒定的输入速率处理的。因为代码字具有可变长度,代码字的全部解码也用去可变的时间,这将导致可变的输出速率。
在位的并行处理中,以恒定的输入速率或可变输入速率并行处理进入位流的多个位。当输入速率保持恒定时,输出速率仍然是可变的,这是因为代码字的可变长度而导致的。为获得恒定的输出速率,需要可变地处理进入位流。换句话说,为保证恒定的输出速率,输入必须包含对应于所需输出速率和最长代码字长度乘积的多个位。
以类似于根据位流处理的特征的方式,解码器的并行性也可以用将被同时解码的多个代码字(或从输出获得的符号)来描述。当一次对一个代码字执行解码时,解码可以被表征成符号串。因此,当解码结果是一次获得多个符号时,解码是符号并行的。
解码可以通过基于树的算法实现,该算法是与哈夫曼树结构相反的实现:将编码的进入位流与二叉树进行比较,从根开始,并一直执行直到从各个叶单元确定了整个代码字。在树模型的解码中,只有用短代码字才能获得有效解码。然而,对实时处理的高要求需要对长代码字也应该获得相应的输出速率。而且,因为树模型的位串行形式,所以树模型不适合于同时解码几个符号,即,不适合用于符号的并行处理,这是因为当处理单个位流时代码字之间的依赖性。
为了改进处理能力,已通过并行处理多位来提高并行性,这是通过在输入缓冲器中收集足够的数据量(最大代码字长度)而实现的,从缓冲器的开始检测和解码代码字。在符号串行解码中,为确保每一循环发现一个符号,在输入缓冲器中累积对应最大代码长度的数据量。这里的问题在于多个位被留在缓冲器的末端,它们不能在当前循环中被利用。符号并行解码(或多符号解码)涉及设计方面的问题和挑战:装置或系统将很快变得非常复杂。
Hsieh&al在C.T.Hsieh和S.P.Kim“A concurrent memory-efficient VLCdecoder for MPEG applications”IEEE Trans Consumer Electron.,42卷第3期439-446页,1996年8月中给出在同一循环中同时并行解码短代码字(并行解码算法)。解码器使用可变长编码的概率分布,根据该概率分布,进入位流的位序列有较大概率包括比长代码字更短的代码字。例如,在最差的情况下,一个16位进入数据序列可包含8个2位代码字,这些代码字的一次一个符号的解码需要8次解码循环。在出版物中公开的解码算法的目标是通过同时检测2个或更多较短代码字而加速解码过程;换句话说,使用该方法来检测代码字的组合。例如,在解码两级代码字中,树模型的第一级对应将被解码的第一代码字,以及第二级对应将被解码的第二代码字。因此,目标是同时解码两个代码字。第一代码字的长度可能在2至k位之间变化。如果第一代码字的长度是2位,那么可能被并行解码的第二代码字的长度是2至k2位。另一方面,如果第一代码字的长度是3位,那么可能被同时解码的第二代码字的长度是2至k3位等等。因为第一级包括所有代码,因此k等于代码本的最大长度,对应最长代码字的长度。在第二级,根据VLC的基本属性优选较短的(较可能)代码。因此,ki的值在范围0≤ki≤k内。
两级解码过程中的基本过程开始于树模型的根。对照每级上所有可能的代码字,大致上同时测试树中每个分支的位序列。如果在树的第二级上发现一个以上的合适分支,那么将选择从根一直连续的路径,也就是,位流是连续而无中断的。如果下一级没有分支给出从根的连续路径,则解码过程可在第一级结束。这意味着不能解码第二级代码字。使用从每级获得的代码字长度来控制输入流的下一个数据,其中解码过程将再次开始。也可以对更多级使用相同的解码方法。根据最大可能位模式(MLBP)的代码字检测块返回3个因子以完成解码循环:确定组中残余的组标记,转移位流到下一个代码字开始的长度,以及用于存储器的组代码。根据残余和组来从随机存取存储器检索该符号。
发明内容
本发明的目的是通过在解码过程的第一步中去除代码字间的依赖性,而使得可能并行地且管道化地进行解码,在解码过程的第一步中定位该代码字。在根据本发明的方法中,从输入缓冲器中提取定长的位字段,以发现所有可能的代码字。借助级联结构从缓冲器大致同时检测所有可能的代码字。换句话说,从进入缓冲器的位流中,从每个可能的缓冲器位置检测代码字长度。然而,这将导致从输入缓冲器中也检测到无效的代码字。在根据本发明的方法中,通过使用第一检测器(第一代码字长度)控制第二输出的选择的方式,根据在前的代码字长度而选择有效的代码字长度。依次,根据在前的代码字长度之和选择第三代码字长度等等。在选择实际代码字中,使用多路复用器从几个代码字长度(这些长度已从缓冲器中所有可能的代码字位置获得)选择有效的代码字长度。例如,可以使用基本逻辑电路(与/或门和反相器)实现上述多路复用器。在根据本发明的方法中,多路复用器以这样的方式链接,它们给出缓冲器中所有完整的代码字的长度作为它们的直接输出。关于部分和以及所检测代码字长度之和的数据也可获得以稍后使用。本发明的一个优选实施例的特征在于实施级联的结构,其通过MultiplexedAdd(MA复用相加)设备使关键路径更短而变得更长。在本发明的方法中,可以检测缓冲器中出现的所有完整代码字;因此,可以并行执行对符号的实际搜索,以在没有限制依赖性的情况下加速解码。
据此,根据本发明所提供的一种从位流解码可变长代码字的方法,在该位流中为代码字定义最小长度和最大长度,在本方法中分部分地处理将被解码的位流,对位流的每一部分进行代码字的搜索,并解码发现的代码字,在本方法中,
·以这种方式从将被处理的位流部分提取不大于代码字最大长度的大小的至少部分重叠的字段,使得至少两个字段的起点是所述位流部分中代码字的可能的起点,
·从至少一个字段搜索代码字结尾终点,
·根据代码字终点确定和代码字相关的数据,并
·使用和至少一个代码字相关的数据来确定字段中将被解码的代码字的发生,以及
·解码发现的代码字。
本发明还提供一种从位流解码具有可变长度的代码字的解码器,在该位流中为代码字定义最小长度和最大长度,所述解码器配有:用于以各定长的部分处理将被解码的位流的发理装置,用于在位流的每一部分中搜索代码字的搜索装置,而且,所述解码器被配置为用于解码发现的代码字,其中:
·解码器还包括提取装置,用于从正处理的位流部分提取不大于代码字最大长度的大小的至少部分重叠的字段,因而至少两个字段的起点是所述位流部分中代码字的可能的起点;
·其中搜索装置被配置为用于在至少一个字段中搜索代码字终点;和
·其中解码器包括用于根据代码字终点来确定和在该字段中发现的代码字相关的数据的第一确定装置;以及
·用于根据和至少一个代码字相关的数据,确定该字段中将被解码的代码字的发生的第二确定装置。
本发明还涉及一种传输二进制形式的信息的系统,包括一个编码器和一个解码器,所述解码器被配置为用于从位流解码可变长代码字,在该位流中为代码字定义最小长度和最大长度,所述解码器配有:用于以各定长的部分处理将被解码的位流的处理装置,用于在位流的每一部分搜索代码字的搜索装置,而所述解码器被配置为用于解码发现的代码字,其中:
·解码器还包括提取装置,用于从正处理的位流部分提取不大于代码字最大长度的大小的至少部分重叠的字段,因而至少两个字段的起点是所述位流部分中代码字的可能的起点;
·其中搜索装置被配置为用于在至少一个字段中搜索代码字终点;和
·解码器包括用于根据代码字终点确定和在该字段中发现的代码字相关的数据的第一确定装置;以及
·用于根据和至少一个代码字相关的数据来确定该字段中将被解码的代码字的发生的第二确定装置。
本发明还提供一种包括从位流解码可变长代码字的解码器的设备,在该位流中为代码字定义最小长度和最大长度,所述解码器配有:用于以各定长的部分处理将被解码的位流的处理装置,以及用于在位流的每一部分中搜索代码字的搜索装置,而解码器被配置为用于解码所发现的代码字,其中,
·解码器还包括提取装置,用于从正处理的位流部分提取不大于代码字最大长度的大小的至少部分重叠的字段,因而至少两个字段的起点是所述位流部分中代码字的可能的起点;
·其中搜索装置被配置为用于在至少一个字段中搜索代码字终点;以及
·解码器包括用于根据终点确定和在该字段中发现的代码字相关的数据的第一确定装置;以及
·用于根据和至少一个代码字相关的数据来确定该字段中将被解码的代码字的发生的第二确定装置。
为使之更为精确,根据本发明的方法的主要特征在于,在本方法中,从将被处理的部分位流中以这样的方式分离出至少部分重叠的字段,使得至少两个字段的起点是所述位流部分中代码字的可能的起点,从至少一个字段搜索代码字结尾,以及根据该代码字的终点确定与代码字相关的数据,并且使用和至少一个代码字相关的数据来确定该字段中将被解码的代码字的发生,并解码发现的代码字。根据本发明的解码器的主要特征在于,所述解码器也包括:从正处理的位流部分提取至少部分重叠的字段的装置,使得至少两个字段的起点是所述位流部分中代码字的可能的起点;在至少一个字段中搜索代码字结尾的装置;和根据该结尾确定与该字段中发现的代码字相关的数据的装置(CD);以及根据和至少一个代码字相关的数据,确定字段中将被解码的代码字的发生的装置(MUX1,MUX,M,MA)。根据本发明的系统的主要特征在于,解码器也包括:用于以这种方式从正处理的位流部分提取至少部分重叠的字段的装置,使得至少两个字段的起点是所述位流部分中代码字的可能的起点;用于在至少一个字段中搜索代码字结尾的装置;和用于根据终点确定和在该字段中发现的代码字相关的数据的装置;以及用于根据和至少一个代码字相关的数据来确定该字段中将被解码的代码字的发生的装置。根据本发明的设备的主要特征在于,解码器也包括:用于以这种方式从正处理的位流部分提取至少部分重叠的字段的装置,使得至少两个字段的起点是所述位流部分中代码字的可能的起点;用于在至少一个字段中搜索代码字结尾的装置;和用于根据终点确定和在该字段中发现的代码字相关的数据的装置;以及用于根据和至少一个代码字相关的数据来确定该字段中将被解码的代码字的发生的装置。最后,根据本发明的存储装置的主要特征在于,程序包括:以这种方式从正处理的位流部分提取部分重叠的字段的计算机指令,使得至少两个字段的起点是所述位流部分中代码字的可能的起点;在至少一个字段中搜索代码字结尾的计算机指令;和根据终点确定和在该字段中发现的代码字相关的数据的计算机指令;以及根据和至少一个代码字相关的数据来确定该字段中将被解码的代码字的发生的计算机指令。
本发明通过位并行、符号并行的方式改进了解码代码字的现有技术,该方式也适合于并行长代码字的解码。因此,本发明可以使用较长的输入缓冲器(任何长度的缓冲器)。而且,本方法将解码划分成阶段以便使该实施流水线化。在代码字可能位于的输入缓冲器的所有位置搜索可能的代码字。有效代码字通过索引来检测,上述索引是通过计算在前适合代码字的长度之和获得的。因为关于限制(起点和终点)的数据是与发现代码字相关地发现的,所以独立于其他代码字来解码该代码字并提高并行性是可能的。根据本发明的方法的输出阶段与输入缓冲器的大小成比例。
附图说明
下面,将参考附图更详细的描述本发明,其中
图1a表示通过哈夫曼编码形成的树结构,
图1b以表格的形式表示哈夫曼代码字和相应的符号以及发生的概率,
图2表示根据优选实施例从位流发现VLC代码字的原理,
图3以简化的图表表示根据发明的优选实施例从位流发现VLC代码字的系统,
图4a表示图表中的MultiplexedAdd装置,
图4b表示MultiplexedAdd的内部结构,以及
图5以简化的图表表示根据发明的另一优选实施例通过使用MultiplexedAdd从位流发现VLC代码字的系统。
具体实施方式
让我们首先定义在缓冲器中一次可出现多少可变长代码字。为此,代码表的代码长度由组SL={l1,...,ln}定义,其中l1和ln分别表示代码字的最小长度和最大长度。因此,在一个N位缓冲器中,代码字的最大长度是
Figure C0381427300111
N≥ln。让我们指出具有符号Wi的可变长代码字,其中i=0,1,...,(Kmax-1),和具有符号Li的代码字Wi的长度。同时,让我们定义索引j1,0≤ji≤(N-1),来表示在N位的代码字缓冲器中代码字Wi的第一位。
一般而言,可以假设第一个代码字W0总是位于缓冲器的开始,其中W0的起点是j0=0。第二个代码字W1正位于第一个代码字之后,其中定义第二个代码字的起点的索引j1是第一个代码字的长度,也就是,j1=L0。这意味着代码字Wi的起点是在前代码字的长度之和,也就是, j i = Σ k = 0 i - 1 L k .
缓冲器中代码字长度并非是事先已知的。为避免递归的依赖性,也需要在缓冲器中任意位置并行搜索代码字。一般而言,任何代码字的所有可能位置可以由p={l1,l+1,l+2,...,N-l1}定义,这在N位缓冲器中意味着N-2(l1-1)个位置。因为代码字的最大长度ln是已知的,将不大于最大长度ln大小的字段从p定义的所有可能位置分离,通过使用例如模式匹配、代码表属性,诸如引导字符、最大可能位模式(MLBP)或数字属性而在上述的每个字段中搜索可能的代码字长度。然而,只有定义代码字的所有位可获得来完成解码,即发现符号,才能发现符号。为此原因,在以最后ln-1索引开始的字段中检测代码字是比较容易的;仅需要从以起点N-K开始的位字段搜索K位代码字,其中K<ln
在上述过程中,检测冗余代码字,这是因为如果从有效较长代码字的中间分离出位字段,则可能在此代码字中发现更短的代码字。为此原因,每次搜索过程只返回所检测代码字的长度。缓冲器中有效代码字的索引可以递归性地由长度定义;第一代码字长度定义第二代码字的起点;第一和第二代码字的长度定义第三代码字的起点,等等。
图2表示通过根据本发明的一个优选实施例的方法,在16位缓冲器中发现代码字的示例。让我们假设其中长度由组S={2,3,4,5,6,7,8}定义以及16位输入缓冲器中代码字的最大长度是Kmax=8的代码表。根据上述方法,从缓冲器中区分14个字段F0-F13,在每个字段中尝试发现可能的代码字。确定的是,第一字段F0包括第一合适的代码字W0。在字段F1-F7中的一个发现第二代码字W1。以相应的方式,可以在字段F3-F13之一中发现可能的第三代码字W2。可以在字段F5-F13中发现可能的其他代码字W3-W7。在字段F8-F13中的位字段长度比在其他字段中的长度短,这是因为装在缓冲器末端的代码字比最大长度ln要短。
为了完成解码过程,从代码表检索对应代码字的符号。因为可以通过上述方法发现代码字的起点和终点,所以消除了代码字之间的依赖性。换句话说,可以从输入流分离出代码字,并可独立地执行搜索。
总体上,描述的模式可以如下表示:
·确定N位代码字缓冲器中代码字的最大数量Kmax
·从缓冲器分离必要大小的(N-2(l1-1))个字段F0-F(N-2(l1-1)-1)以确定代码字长度。各字段的起点是缓冲器位置{0,l1,l1+1,l1+2,...,N-l1},
·在每个字段的开始处发现可能的代码字。返回所发现代码字的长度,
·在第一字段发现第一代码字的长度,通过索引在缓冲器发现其他有效的代码字,该索引通过计算在前合适代码字的长度之和而获得,
·根据代码表发现对应于合适的代码字的符号。
因为在上述方法中输入级别和输出级别是可变的,所以在输入和输出中将需要缓冲。图3表示实现上述过程的解码器,在解码器的设计中已经考虑到同时检测输入缓冲器中的所有代码字。为了实现该目的,使用N-2(l1-1)个代码字检测器CD。第一代码字检测器CD1(图3中左边一个)使用从输入缓冲器开端开始的字段以检测代码字。第二代码字检测器CD2使用从输入缓冲器的点l1开始的字段以检测代码字。在根据该图的顺序中,左面的N-ln-l1+2个代码字检测器使用从输入缓冲器不同点开始的字段(最大长度代码字),而其他ln-l1个代码字检测器只需要检测比最大长度短的代码字。所有的代码字检测器CD1-CD(N-2(l1-1))大致上同时检测代码字并返回所发现代码字的长度。为了从所有发现的代码字选择合适的代码字长度Li,使用多路复用器MUX,其形成一个级联结构。每个多路复用器MUX具有来自每个代码字检测器CD的输入,检测器的位置由组p定义。代码字检测器CD的位字段在输入缓冲器的位置il1-iln中。因为第一代码长度L0总是从第一代码字检测器CD1获得,所以它将控制第一多路复用器MUX1去选择第二合适代码长度L1。这也可以被用于转换关于解码模式的信息。换句话说,如果代码长度是0,则或者终止解码或者已经发现错误。由在前代码长度之和控制其他多路复用器。以这种方式,代码长度之和的计算产生一条关键路径,在图3中该路径由虚线表示。
根据长度数据可以将代码字从输入缓冲器中分离出来并独立解码。而且,当已去除代码字的依赖性时,可以并行进行解码。
在根据本发明另一优选实施例的系统中,使用MultiplexedAdd MA,其示意图如图4a所示,且内部结构图如图4b所示。可以使用该方案来减小在确定代码字中产生的关键路径。如图4a所示,MultiplexedAdd MA计算两个输入之和并且也大致上同时执行复用,图4b表示3位MultiplexedAdd的内部结构。一个X位MultiplexedAdd包括X个全加器FA和一个X级别复用树结构,该结构接收全加器之和作为其输入,作为选择信号以及备选对象(概率,P)。如图所示的系统示例是两个3位数字A和B,它们的和S控制从概率P0-P7的输出O的选择(对应从概率P选择的代码字长度Li),在根据本发明的方法中,这些概率代表从输入缓冲器的位置pi开始的那些代码字的所有可能的代码字长度。因此,实现输出的公式可以定义如下:
O=P0s2s1s0+P1s2s1s0+P2s2s1s0+P3s2s1s0+
P4s2s1s0+P5s2s1s0+P6s2s1s0+P7s2s1s0
该公式可以进一步简化成如下形式:
O=(P0s1s0+P1s1s0+P2s1s0+P3s1s0)s2+(P4s1s0+P5s1s0+P6s1s0+P7s1s0)s2
=[(P0s0+P1s0)s1+(P2s0+P3s0)s1]s2+[(P4s0+P5s0)s1+(P6s0+P7s0)s1]s2
通过MultiplexedAdd MA,计算当前代码长度Li和在前代码长度之和∑k=0 i-1Lk并选择下一代码长度Li+1是有可能的。通过使用MultiplexedAdd MA,两个代码长度之间的延迟由log(N)位加法器和多路复用器组的延迟降低到log(N)全加器和2-1多路复用器的延迟。以相应的形式,通过使用3-4与或门和2-2与或门以及反相器,而将逻辑级由2log(N)级减少到log(N)+1级。图5表示根据本发明的第二个优选实施例,通过MultiplexedAdd MA发现代码字的系统。
根据本发明的可变长编码解码器可以作为电子装置的一部分实现,例如,作为单独的逻辑电路,借助在数字信号处理器中的专用集成电路(ASIC),或处理器中的功能单元。代表性地,上述电子装置也包括其他功能,例如向用户显示已解码的信息的装置以及控制电子装置的处理器。
很明显的是本发明并不仅局限于上述实施例,而是能在附加的权利要求的范围内加以修改。

Claims (13)

1.一种从位流解码可变长代码字的方法,在该位流中为代码字定义最小长度和最大长度,在本方法中分部分地处理将被解码的位流,对位流的每一部分进行代码字的搜索,并解码发现的代码字,其特征在于,在本方法中,
·从将被处理的位流部分提取不大于代码字最大长度的大小的至少部分重叠的字段,使得至少两个字段的起点是所述位流部分中代码字的可能的起点,
·从至少一个字段搜索代码字终点,
·根据代码字终点确定和代码字相关的数据,并
·使用和至少一个代码字相关的数据来确定字段中将被解码的代码字的发生,以及
·解码发现的代码字。
2.如权利要求1所述的方法,特征在于和将被解码的代码字相关的数据包括将被解码的代码字的长度,其中搜索将被解码的代码字以如下方式执行:
·在第一字段中搜索将被解码的第一代码字,
·在正处理的位流部分中,在其起点是对应将被解码的在前代码字长度之和的点的字段中,搜索将被解码的下一代码字,
·执行上述步骤以在正处理的位流部分中发现所有将被解码的代码字。
3.如权利要求2所述的方法,特征在于在本方法中,为了发现将被解码的下一代码字的起点,计算将被解码的在前发现的代码字长度之和并基本上同时选择该起点。
4.如权利要求3所述的方法,特征在于在从正处理的位流部分发现代码字的步骤中,接收从代码字的可能位置开始的代码字的所有可能的代码字长度的求和位以及概率,以便确定对应于代码字长度的输出的选择。
5.如权利要求1至4任一个所述的方法,特征在于至少第一个、第二个和第三个发现的代码字被解码。
6.一种从位流解码具有可变长度的代码字的解码器,在该位流中为代码字定义最小长度和最大长度,所述解码器配有:用于以各定长的部分处理将被解码的位流的处理装置,用于在位流的每一部分中搜索代码字的搜索装置,而且,所述解码器被配置为用于解码发现的代码字,特征在于:
·解码器还包括提取装置,用于从正处理的位流部分提取不大于代码字最大长度的大小的至少部分重叠的字段,因而至少两个字段的起点是所述位流部分中代码字的可能的起点;
·其中搜索装置被配置为用于在至少一个字段中搜索代码字终点;和
·其中解码器包括用于根据代码字终点来确定和在该字段中发现的代码字相关的数据的第一确定装置;以及
·用于根据和至少一个代码字相关的数据,确定该字段中将被解码的代码字的发生的第二确定装置。
7.如权利要求6所述的解码器,特征在于和将被解码的代码字相关的数据包括将被解码的代码字的长度,而且,
·搜索装置被配置为用于在第一字段搜索将被解码的第一代码字,并且
·用于搜索该字段中将被解码的下一代码字,其中所述搜索装置进一步被安排用以形成在字段中发现的代码字的长度数据,
·其中解码器包括用于在起点是将被解码的在前代码字长度之和的位置处从正处理的位流部分选择将被解码的代码字的选择装置。
8.一种传输二进制形式的信息的系统,包括一个编码器和一个解码器,所述解码器被配置为用于从位流解码可变长代码字,在该位流中为代码字定义最小长度和最大长度,所述解码器配有:用于以各定长的部分处理将被解码的位流的处理装置,用于在位流的每一部分搜索代码字的搜索装置,而所述解码器被配置为用于解码发现的代码字,特征在于:
·解码器还包括提取装置,用于从正处理的位流部分提取不大于代码字最大长度的大小的至少部分重叠的字段,因而至少两个字段的起点是所述位流部分中代码字的可能的起点;
·其中搜索装置被配置为用于在至少一个字段中搜索代码字终点;和
·解码器包括用于根据代码字终点确定和在该字段中发现的代码字相关的数据的第一确定装置;以及
·用于根据和至少一个代码字相关的数据来确定该字段中将被解码的代码字的发生的第二确定装置。
9.如权利要求8所述的系统,特征在于和将被解码的代码字相关的数据包括将被解码的代码字的长度,而且,
·搜索装置被配置为用于在第一字段搜索将被解码的第一代码字,并
·用于在该字段中搜索将被解码的下一个代码字,其中所述搜索装置进一步被安排用以形成在该字段中发现的代码字的长度数据,
·其中解码器包括选择装置,用于在起点是将被解码的在前代码字的长度之和的位置处从正处理的位流部分选择将被解码的代码字。
10.一种包括从位流解码可变长代码字的解码器的设备,在该位流中为代码字定义最小长度和最大长度,所述解码器配有:用于以各定长的部分处理将被解码的位流的处理装置,以及用于在位流的每一部分中搜索代码字的搜索装置,而解码器被配置为用于解码所发现的代码字,特征在于,
·解码器还包括提取装置,用于从正处理的位流部分提取不大于代码字最大长度的大小的至少部分重叠的字段,因而至少两个字段的起点是所述位流部分中代码字的可能的起点;
·其中搜索装置被配置为用于在至少一个字段中搜索代码字终点;以及
·解码器包括用于根据终点确定和在该字段中发现的代码字相关的数据的第一确定装置;以及
·用于根据和至少一个代码字相关的数据来确定该字段中将被解码的代码字的发生的第二确定装置。
11.如权利要求10所述的设备,特征在于和将被解码的代码字相关的数据包括将被解码的代码字的长度,而且,
·搜索装置被配置为用于在第一字段中搜索将被解码的第一代码字,并
·用于在该字段中搜索将被解码的下一代码字,其中所述搜索装置进一步被安排用以形成在该字段中发现的代码字的长度数据,
·其中解码器包括用于在起点是将被解码的在前代码字的长度之和的位置处从正处理的位流部分选择将被解码的代码字的选择装置。
12.如权利要求10或11所述的设备,特征在于该解码器包括对将被解码的代码字长度求和的求和装置,以发现将被解码的代码字的起点并基本上同时选择该起点。
13.如权利要求10或11所述的设备,特征在于该设备被配置为用于执行移动通信。
CNB038142732A 2002-06-20 2003-06-16 用于从位流解码可变长代码字的方法、解码器、系统和设备 Expired - Fee Related CN100546200C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20021221A FI116813B (fi) 2002-06-20 2002-06-20 Menetelmä ja järjestelmä vaihtuvapituisen koodauksen purkamiseksi, ja koodisanojen paikannuslaite
FI20021221 2002-06-20

Publications (2)

Publication Number Publication Date
CN1663128A CN1663128A (zh) 2005-08-31
CN100546200C true CN100546200C (zh) 2009-09-30

Family

ID=8564212

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038142732A Expired - Fee Related CN100546200C (zh) 2002-06-20 2003-06-16 用于从位流解码可变长代码字的方法、解码器、系统和设备

Country Status (9)

Country Link
US (1) US6980138B2 (zh)
EP (1) EP1514356B1 (zh)
KR (1) KR20050010918A (zh)
CN (1) CN100546200C (zh)
AT (1) ATE363769T1 (zh)
AU (1) AU2003240915A1 (zh)
DE (1) DE60314139T2 (zh)
FI (1) FI116813B (zh)
WO (1) WO2004001978A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100440979C (zh) * 2005-12-15 2008-12-03 清华大学 基于上下文的自适应二维变长解码方法和装置
CN100466743C (zh) * 2006-08-07 2009-03-04 清华大学 一种基于共享存储可编程的熵解码和反量化的方法
JP4841496B2 (ja) * 2007-04-26 2011-12-21 パナソニック株式会社 可変長符号復号化装置
JP4763853B2 (ja) * 2008-03-31 2011-08-31 パナソニック株式会社 可変長符号復号化装置及びその方法
US8660261B2 (en) * 2009-06-04 2014-02-25 Mediatek Singapore Pte. Ltd. System and apparatus for integrated video/image encoding/decoding and encryption/decryption
KR20120084639A (ko) 2011-01-20 2012-07-30 한국전자통신연구원 엔트로피 부호화를 위한 적응적 정렬 테이블
WO2012099433A2 (ko) * 2011-01-20 2012-07-26 한국전자통신연구원 인덱스 매핑 테이블을 이용한 엔트로피 코딩 방법 및 이러한 방법을 사용하는 영상 부호화/복호화 장치 및 방법
US9819359B1 (en) 2016-12-11 2017-11-14 Microsoft Technology Licensing, Llc Multi-symbol, multi-format, parallel symbol decoder for hardware decompression engines
US11211945B1 (en) * 2020-10-29 2021-12-28 Microsoft Technology Licensing, Llc Parallelized decoding of variable-length prefix codes

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5280349A (en) 1992-02-13 1994-01-18 Industrial Technology Research Institute HDTV decoder
US5245338A (en) 1992-06-04 1993-09-14 Bell Communications Research, Inc. High-speed variable-length decoder
KR940010433B1 (ko) * 1992-06-09 1994-10-22 대우전자 주식회사 가변길이 코드 디코딩장치
US5488366A (en) 1993-10-12 1996-01-30 Industrial Technology Research Institute Segmented variable length decoding apparatus for sequentially decoding single code-word within a fixed number of decoding cycles
KR0124191B1 (ko) 1994-01-18 1998-10-01 배순훈 가변길이 코드 디코딩장치
JP2746109B2 (ja) * 1994-03-09 1998-04-28 日本電気株式会社 ハフマン符号復号化回路
US5491480A (en) * 1994-05-25 1996-02-13 Industrial Technology Research Institute Variable length decoder using serial and parallel processing
US6217234B1 (en) * 1994-07-29 2001-04-17 Discovision Associates Apparatus and method for processing data with an arithmetic unit
KR0141298B1 (ko) 1994-11-17 1998-06-15 배순훈 가변 길이 복호화 장치
US5835035A (en) 1995-12-28 1998-11-10 Philips Electronics North America Corporation High performance variable length decoder with two-word bit stream segmentation and related method
KR100214593B1 (ko) * 1996-03-15 1999-08-02 구자홍 캐스케이드 구조를 이용한 런랭스 코드의 코드워드 검출 방법 및 장치
DE60100416T2 (de) * 2000-04-28 2004-06-09 Matsushita Electric Industrial Co., Ltd., Kadoma Dekoder für Kode variabler Länge
US6542095B1 (en) * 2001-12-14 2003-04-01 Taiwan University Universal variable length code (UVLC) encoder
US6573846B1 (en) * 2001-12-31 2003-06-03 Apple Computer, Inc. Method and apparatus for variable length decoding and encoding of video streams

Also Published As

Publication number Publication date
US6980138B2 (en) 2005-12-27
ATE363769T1 (de) 2007-06-15
KR20050010918A (ko) 2005-01-28
FI116813B (fi) 2006-02-28
FI20021221A0 (fi) 2002-06-20
DE60314139T2 (de) 2008-01-24
EP1514356B1 (en) 2007-05-30
US20040070525A1 (en) 2004-04-15
AU2003240915A1 (en) 2004-01-06
EP1514356A1 (en) 2005-03-16
FI20021221A (fi) 2003-12-21
DE60314139D1 (de) 2007-07-12
WO2004001978A1 (en) 2003-12-31
CN1663128A (zh) 2005-08-31

Similar Documents

Publication Publication Date Title
EP0951753B1 (en) Computer sorting system for data compression
US7378992B2 (en) Content independent data compression method and system
US6982661B2 (en) Method of performing huffman decoding
CN102098508B (zh) 多媒体签名的编码和解码
CN109716658B (zh) 一种基于相似性的重复数据删除方法和系统
KR20040041651A (ko) 허프만 코딩
JP4805365B2 (ja) 置換符号による特にベクトル量子化におけるディジタル信号の符号化/復号化の改善
JP2003218703A (ja) データ符号化装置及びデータ復号装置
US5857036A (en) System and method for the fractal encoding of datastreams
CN100546200C (zh) 用于从位流解码可变长代码字的方法、解码器、系统和设备
Cho et al. A low power variable length decoder for MPEG-2 based on nonuniform fine-grain table partitioning
US7652596B1 (en) Variable-length compression technique for encoding or decoding a sequence of integers
CN1426629A (zh) 使用多个编码器的优化无损压缩的方法和装置
US7609000B1 (en) Variable-length compression technique for encoding or decoding a sequence of integers
US6130631A (en) Method and apparatus utilizing a simplified content-addressable memory for JPEG decoding
US6778107B2 (en) Method and apparatus for huffman decoding technique
KR20030016859A (ko) 허프만 부호의 복호화 방법
Yokoo Data compression using a sort-based context similarity measure
Doshi et al. Achieving Better Compression Applying Index-based Byte-Pair Transformation before Arithmetic Coding
Gu A new Chinese text compression scheme combining dictionary coding and adaptive alphabet-character grouping
KR100451256B1 (ko) Mpeg-4 역방향 가변장부호 복호화방법 및 회로
Park et al. High speed search and an area efficient Huffman decoder
GB2360916A (en) Compression encoder which transmits difference between new data word and recent data word where this falls within a threshold
GB2360917A (en) Run length compression encoding of runs of similar data words
Jiang et al. Lossless compression of images by a search order based entropy coding

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
ASS Succession or assignment of patent right

Owner name: SISVEL INTERNATIONAL S.A.

Free format text: FORMER OWNER: NOKIA CORPORATION

Effective date: 20121011

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee

Owner name: NOKIA CORPORATION

Free format text: FORMER NAME: NOKIA LTD.

CP01 Change in the name or title of a patent holder

Address after: Espoo, Finland

Patentee after: NOKIA Corp.

Address before: Espoo, Finland

Patentee before: NOKIA Corp.

TR01 Transfer of patent right

Effective date of registration: 20121011

Address after: Luxemburg Luxemburg

Patentee after: Sisvel International S.A.

Address before: Espoo, Finland

Patentee before: NOKIA Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090930

Termination date: 20200616

CF01 Termination of patent right due to non-payment of annual fee