CN101036298A - 静态赫夫曼解码的***和方法 - Google Patents

静态赫夫曼解码的***和方法 Download PDF

Info

Publication number
CN101036298A
CN101036298A CNA2005800341537A CN200580034153A CN101036298A CN 101036298 A CN101036298 A CN 101036298A CN A2005800341537 A CNA2005800341537 A CN A2005800341537A CN 200580034153 A CN200580034153 A CN 200580034153A CN 101036298 A CN101036298 A CN 101036298A
Authority
CN
China
Prior art keywords
probable value
code word
code book
huffman
bit sequence
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.)
Granted
Application number
CNA2005800341537A
Other languages
English (en)
Other versions
CN100576753C (zh
Inventor
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.)
Analog Devices Inc
Original Assignee
Analog Devices Inc
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 Analog Devices Inc filed Critical Analog Devices Inc
Publication of CN101036298A publication Critical patent/CN101036298A/zh
Application granted granted Critical
Publication of CN100576753C publication Critical patent/CN100576753C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • H03M7/425Conversion 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 for the decoding process only
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

提出的技术使用赫夫曼代码本的基本性质来基于赫夫曼代码本解码具有多个可变长度的代码字的编码数据位流。这通过基于可能值排序赫夫曼代码本中的代码字(120)来实现。使用赫夫曼代码本中的代码字的基本参数计算可能值。从编码数据位流提取具有预定长度的当前位序列(140)。然后使用赫夫曼代码本中的代码字的基本参数计算被提取位序列的可能值(150)。然后搜索被排序的赫夫曼代码本以找到被排序赫夫曼代码本中的计算出的可能值(160),该可能值基本接近于被提取位序列的计算出的可能值。基于搜索的结果解码被提取的当前位序列(170)。

Description

静态赫夫曼解码的***和方法
技术领域
本发明涉及数据压缩领域,更具体而言涉及一种对赫夫曼编码的代码字进行解码的***和方法。
背景技术
赫夫曼代码在数据压缩和远程通信领域中被广泛使用。一些应用包括JPEG图片压缩和MPEG视频和音频压缩。赫夫曼代码具有可变字长,这意味着用于组成消息的单个符号均由不同长度的不同位序列代表(编码)。代码字的这种特征有助于减小消息数据中的冗余量,即,它使数据压缩成为可能。
由于不同符号具有不同的发生概率,因此赫夫曼代码的使用提供了压缩。该性质通过根据那些符号各自的发生概率剪裁对应于那些符号的代码长度而得到有利的使用。具有更高发生概率的符号用更短的代码字编码,而具有更低概率的符号用更长的代码字编码。然而,更长的代码字仍然出现,但是倾向于频率更低,因而典型位串中的所有代码字的总代码长度由于赫夫曼编码而倾向于更小。
解码赫夫曼代码的基本困难在于解码器起先不能知道输入代码字的长度。如先前所解释的,赫夫曼代码是可变长度的代码。通过为这一目的而专门使用数量庞大的存储器就能够极快地检测到赫夫曼代码。对于最大字长为N位的赫夫曼代码字的集合,需要2N个存储位置,原因是N个输入位被用作进入查找表中找到相应代码字的地址。
需要更少存储器的技术当前使用按下列方法进行的逐位解码执行。取出一位并且与具有字长为1的所有可能代码比较。如果未发现匹配,移入另一位以尝试从具有字长为2的所有代码字中找到位偶。继续该过程直到找到匹配。尽管该方法存储效率很高,但是它很慢,尤其在正被解码的代码字长的时候。
另一技术是二叉树搜索法。在该实现方式的技术中,使用的赫夫曼表应当以二叉树的形式被转换。二叉树是空的或被分割成三个不相交子集的元素的微集。第一子集包含被称为树根的单一元素。另两个子集被称为原始树的左右子树。二叉树的每个元素被称为树的节点。一个分支连接两个节点。不带有任何分支的节点被称为叶子。用于符号搜索的赫夫曼解码开始于二叉树的根并且结束于任何叶子;当遍历二叉树时每个节点的一位被从位流提取。与以上两种方法相比,该方法在存储要求和赫夫曼代码搜索的数量之间折衷。另外,该技术的编码速度将按照是赫夫曼代码的最大长度的倍数下降。
当前用于解码赫夫曼代码的另一技术是使用正则赫夫曼代码。正则赫夫曼代码受到特别关注,原因是它们使解码更容易。它们通常用于多媒体和远程通信中。它们减小存储并降低解码复杂性。然而,这些技术的大多数使用赫夫曼代码字表中的特殊树结构进行编码,因而仅仅适用于特殊类型的赫夫曼代码并且通常不适用于解码一般类型的赫夫曼代码。
如以上例子中所指出的,使用可变代码字长的问题是在实现速度与合理的存储器利用率之间的平衡上的困难。
发明内容
根据本发明的第一方面,提供了一种赫夫曼解码的方法,所述方法包括以下步骤:
a)基于关联的可能值来排序赫夫曼代码本中的代码字,其中使用赫夫曼代码本中的代码字的基本参数计算可能值;
b)基于赫夫曼代码本从具有多个可变长度的代码字的编码位流提取具有预定长度的当前位序列;
c)基于赫夫曼代码本的代码字的基本参数计算被提取当前位序列的可能值;
d)执行搜索以在被排序赫夫曼代码本中找到计算出的可能值,该可能值基本接近于被提取当前位序列的计算出的可能值;和
e)根据二分搜索来解码被提取的当前位序列。
优选地,通过按照指数规律地压低(weighing down)每个代码字中的每一位并且求和产生的所有被压低的位值计算赫夫曼代码本中的每个代码字的可能值。优选地,从左到右按照指数规律地压低代码字中的位。
根据本发明的第二方面,提供了一种物品,所述物品包括具有指令的存储媒体,当由计算平台执行时所述指令导致音节点输入方法的执行,所述方法包括以下步骤:
a)基于关联可能值来排序赫夫曼代码本中的代码字,其中使用赫夫曼代码本中的代码字的基本参数计算可能值;
b)基于赫夫曼代码本从具有多个可变长度代码字的编码位流提取具有预定长度的当前位序列;
c)基于赫夫曼代码本的代码字的基本参数计算被提取当前位序列的可能值;
d)执行搜索以在被排序赫夫曼代码本中找到计算出的可能值,该可能值基本接近于被提取当前位序列的计算出的可能值;和
e)根据二分搜索解码被提取的当前位序列。
根据本发明的第三方面,提供了一种静态赫夫曼解码的***,所述***包括:
a)网络接口;
b)输入模块,其耦合到网络接口,用以经由网络接口基于赫夫曼代码本接收具有多个可变长度代码字的编码位流;
c)解码器,其耦合到所述输入模块;和
d)可操作地耦合到解码器的存储器,用以存储赫夫曼代码本,
其中该解码器基于赫夫曼代码本中的代码字的参数计算赫夫曼代码本中的每个代码字的可能值,
其中该解码器基于计算出的可能值排序赫夫曼代码本中的代码字,
其中该解码器从接收的编码位流提取具有预定长度的当前位序列,
其中该解码器基于赫夫曼代码本的代码字的参数计算被提取当前位序列的可能值,
其中该解码器执行二分搜索以在被排序赫夫曼代码本中找到计算出的可能值,该可能值基本接近于被提取当前位序列的计算出的可能值,并且
其中该解码器根据二分搜索解码被提取的当前位序列。
附图说明
图1是图解根据本发明的实施方式的赫夫曼解码的示例方法的流程图。
图2是可以用于运行本发明的一些或所有部分的典型计算机***的框图。
具体实施方式
在优选实施方式的以下详细描述中,参考了形成其一部分的附图,其中通过图解显示了可以实践本发明的特定实施方式。应当理解的是可以利用其他实施方式并且在不脱离本发明的范围的情况下可以进行结构变化。
出现在图中的附图标记的一个或多个前导数字总体上对应于该组件首先被引入的图号,使得相同的附图标记在全文中用于指示出现在多幅图中的相同组件。相同的附图标记或标号可以指示信号和连接,并且实际含义将从其在说明书的上下文中的使用显而易见。
术语
术语“二分搜索”表示用在被排序表例如“赫夫曼代码本”上的对数搜索算法,其中所述表在搜索的每个步骤期间被分成两半,搜索仅仅在一半中继续,由此导致((log2(n))+1)次搜索次数。通常,这样的对数搜索比线性搜索快得多。
图1示出了解码的示例方法100。在110,方法100计算赫夫曼代码本中每个代码字的可能值。使用赫夫曼代码本中的代码字的基本参数计算每个代码字的可能值。在一个实施方式中,通过按照指数规律地压低代码字中的每一位并且求和产生的所有被压低值来计算每个代码字的可能值以获得代码字的可能值。在这些实施方式中,从左到右压低每个代码字中的位。
在一些实施方式中,使用以下方程计算赫夫曼代码本中的每个代码字的可能值:
P(sl)=b1*2(N+M)+b2*2((N-1)+M)+...+bn*2((N-(N-1))+M)其中P是赫夫曼代码本中的代码字sl的计算出的可能值,b1,b2...bn是每个代码字中的二进位值,N是在赫夫曼代码本中的所有代码字之中的一个代码字中找到的位的最高数目,M是在赫夫曼代码本中的所有代码字之中的一个代码字中找到的前零的最高数目。
以下的例子示出了使用以上方程计算赫夫曼代码本中的代码字的可能值:
下面的表示出了简化的赫夫曼代码本。
  代码字   二进制表示
  a1   111
  a2   01
  a3   101
  a4   1100
  a5   1101
  a6   001
  a7   0001
在上面的表中,代码字参数的值分别是N=4和M=3,即4是在以上赫夫曼代码本中的所有代码字之中的一个代码字中找到的位的最高数目,3是在以上赫夫曼代码本中的所有代码字之中的一个代码字中找到的前零的最高数目。
下面的表示出了使用较早所示的方程计算上表中的每个代码字的可能值。
  代码字名称   可能的计算   二进格式的代码字   计算出的可能值
  a1   1*2^7+1*2^6+1*2^5   111   224
  a2   0*2^7+1*2^6   01   64
  a3   1*2^7+0*2^6+1*2^5   101   160
  a4   1*2^7+1*2^6+0*2^5+0*2^4   1100   192
  a5   1*2^7+1*2^6+0*2^5+1*2^4   1101   208
  a6   0*2^7+0*2^6+1*2^5   001   32
  a7   0*2^7+0*2^6+0*2^5+1*2^4   0001   16
在120,基于计算出的可能值来排序赫夫曼表中的代码字。在一些实施方式中,按照计算出的可能值的升序或降序排序代码字。通过我们使用中的例子,下面的表示出了按照计算出的可能值的降序排序的代码字。
  代码字   二进制格式的代码字   可能值
  a1   111   224
  a5   1101   208
  a4   1100   192
  a3   101   160
  a2   01   64
  a6   001   32
  a7   0001   16
在130,基于赫夫曼代码本接收具有多个可变代码字的编码位流。下面示出了接收的包括以上赫夫曼表中所示的代码字的编码位流的例子。
U=[1011100001011110001],其中U是编码位流。
接收的编码流的以上例子基本上包括以上赫夫曼表中所示的代码字[a3,a4,a6,a2,a1,和a7]。包括以上赫夫曼表中所示的代码字的这种编码流的问题在于在解码时不知道这些代码字的长度。在这样的编码流中,困难通常在于使用高效计算技术解码该编码流而不使用大量的存储器。
在140,从接收的编码位流提取具有预定长度的当前位序列。在这些实施例中,从编码位流的左侧开始提取当前位序列,原因是通常如以上例子中所示从左到右接收编码位流。在这些实施例中,预定长度也等于赫夫曼代码本中的所有代码字之中的一个代码字中的位的最高数目。
在以上我们使用中的例子中,预定长度将等于4,因为以上赫夫曼表中列出的代码字中的位的最高数目是4。所以,在以上接收的编码位流中提取的当前位序列将是“1011”,即如早先所述从左到右开始提取位序列。
在150,为被提取的当前位序列计算可能值。在一些实施例中,使用以上所示的方程计算可能值。在我们使用中的例子中,分别是N=4和M=3,原因分别是赫夫曼表中的所有代码字之中的代码字中的位的最高数目等于4并且赫夫曼表中的所有代码字之中的代码字中的前零的最高数目等于3。使用M和N的这些值,按如下计算被提取位序列1011的可能值:
P(esl)=1*2^7+0*2^6+1*2^5+1*2^4=176,其中P(esl)代表被提取位序列的可能值。
在160,通过使用被提取当前位序列的计算出的可能值搜索赫夫曼代码本中的被排序可能值以找到赫夫曼代码本中的可能值,该可能值基本接近于被提取当前位序列的计算出的可能值。在一些实施例中,对在赫夫曼代码本中的被排序可能值执行二分搜索以找到赫夫曼代码本中的计算出的可能值,该可能值基本接近于被提取位序列的计算出的可能值。
在我们使用中的例子中,按照如下执行二分搜索以找到被排序赫夫曼表中的可能值,该可能值基本接近于被提取位序列的计算出的可能值。
·找到以上赫夫曼代码本中的中间位置。使用方程N_1=(赫夫曼表中的代码字的数目/2)来计算中间位置,即在我们使用的例子中
Figure A20058003415300111
计算中间位置。
·提取在该中间位置的关联可能值。在我们使用的例子中,它将是192。
·检查赫夫曼表的在中间位置的被提取的可能值是否大于当前位序列的计算出的可能值。在我们使用的例子中,从赫夫曼表提取的可能值192大于当前位序列的计算出的可能值176。所以,通过重复以上步骤在下半个表中继续搜索直到搜索在赫夫曼表中结束。在我们使用的例子中,以上执行的二分搜索在计算出的可能值P(cl)等于160的代码字101结束。
·在被排序赫夫曼表中,刚好在与可能值P(cl)等于160对应的代码字之上的代码字的计算出的可能值在完成二分搜索之后作为P(ck)等于192被获取。
在170,使用以下准则来解码提取的当前位序列:
如果P(ck)<=P(esl),则被提取位序列的代码字被指派为等于与计算出的可能值P(ck)关联的代码字。如果P(ck)>P(esl)并且P(ck)>P(cl),则被提取位序列的代码字被指派为等于与可能值P(cl)关联的代码字。
在我们使用的例子中,由于P(ck)>P(esl)并且P(ck)>P(cl),即192>178并且192>160,因此被提取位序列的可能值将被指派为等于可能值P(cl),该可能值因此等于160。然后使用以上指派的可能值160作为代码字a3解码被提取位序列1011。
在175,检查接收的编码流以了解接收的位流的解码是否完成。如果解码完成,则方法100转到动作190并且停止解码过程。如果解码未完成,则方法100转到动作180并且从接收的编码位流提取下一个位序列和重复上述动作150-190。在我们使用的例子中,由于仅仅当前被提取位的三个位被解码(由于被解码代码字a3对应于赫夫曼表中的赫夫曼代码101),因此被提取位序列1011中的剩余1位被加回到接收的编码位流中并且下一个位序列1100从剩余编码位序列被提取并通过重复上述动作150-190被解码。
尽管流程图100包括连续布置在示例性实施例中的步骤110-190,但是可以使用多个处理器或组织成两个或以上的虚拟机或子处理器的单一处理器来实现该主题的其他实施例。而且,还有其他的实施例可以将这些步骤实现为带有在模块之间或通过模块通信的相关控制和数据信号的两个或以上的特定互连硬件模块,或专用集成电路的部分。因此,示例性处理流程图可应用于软件、固件和/或硬件实现。
本发明的各实施例可以在软件中实现,所述软件可以在图2中所示的环境(将在下面描述)中或在任何其他合适的计算环境中运行。本发明的实施例可在许多通用或专用计算环境中运行。一些计算环境包括个人计算机,通用计算机,服务器计算机,手持设备(包括但不限于所有类型的电话和个人数字助理(PDA)),膝上型设备,多处理器,微处理器,置顶盒,可编程消费电子产品,网络计算机,小型计算机,大型计算机,分布式计算环境等用于执行存储在计算机可读媒体上的代码。本发明的实施例可以部分或全部实现为机器可执行指令,例如由计算机执行的程序模块。通常,程序模块包括例程、程序、对象、组件、数据结构等,用以执行特定任务或实现特定抽象数据类型。在分布式计算环境中,程序模块可以位于本地或远程存储设备中。
图2显示了用于实现本发明的实施例的合适计算***环境的例子。图2和以下讨论的目的是提供合适计算环境的简单、一般描述,包含在这里的发明思想的某些实施例可以在其中实现。
采用计算机210的形式的普通计算设备可以包括处理器202,存储器204,可卸存储器212,不可卸存储器214。计算机210附加地包括总线205和网络接口(NI)201。处理器202可以包括解码器230。
计算机210可以包括或具有计算环境的入口,所述计算环境包括一个或多个用户输入设备216和一个或多个输出设备218。用户输入设备216可以包括键盘,鼠标,跟踪球,光标检测键,和/或类似物。输出设备218可以包括计算机显示设备和类似物。网络接口201可以是USB连接。计算机210可以在使用网络接口201的联网环境中操作以经由因特网连接到一个或多个远程计算机。远程计算机可以包括个人计算机,服务器,路由器,网络PC,对等设备或其他网络节点,和/或类似物。网络接口201也可以包括局域网(LAN),广域网(WAN),和/或其他网络。
存储器204可以包括易失性存储器206和非易失性存储器208。存储器204存储赫夫曼代码本。各种计算机可读媒体可以存储在计算机210的存储元件中或者从其访问,例如易失性存储器206和非易失性存储器208,可卸存储器212和不可卸存储器214。计算机存储元件可以包括用于存储数据和机器可读指令的任何合适的一个或多个存储设备,例如只读存储器(ROM),随机存取存储器(RAM),可擦可编程只读存储器(EPROM),电可擦可编程只读存储器(EEPROM),硬盘驱动器,操作压缩盘(CD)的可卸媒体驱动器,数字视频盘(DVD),磁盘,磁带盒,存储卡,记忆棒TM,和类似物;化学存储器;生物存储器;和其他类型的数据存储器。
在此所使用的“处理器”或“处理单元”表示任何类型的计算电路,例如但不限于微处理器,微控制器,复杂指令集计算(CISC)微处理器,精简指令集计算(RISC)微处理器,超长指令字(VLIW)微处理器,显式平行指令计算(EPIC)微处理器,图形处理器,数字信号处理器,或任何其他类型的处理器或处理电路。该术语也包括嵌入式控制器,例如普通或可编程逻辑设备或阵列,专用集成电路,单芯片计算机,智能卡,和类似物。在此所使用的“计算机”210表示使用Unix操作***的计算机***。
本发明的实施例可以结合程序模块实现,所述程序模块包括函数、过程、数据结构、应用程序等,用于执行任务,或限定抽象数据类型或低级硬件上下文。
存储在任一上述存储媒体上的机器可读指令可由计算机210的处理器202执行。例如,计算机程序225可以包括能够根据教导和这里描述的本发明的实施例进行赫夫曼解码的计算机可读指令。在一个实施例中,计算机程序225可以被包括在CD-ROM上并且从CD-ROM装载到非易失性存储器208中的硬盘驱动器。机器可读指令导致计算机210根据本发明的实施例解码赫夫曼代码字。
在操作中,输入模块216经由网络接口基于赫夫曼代码本接收具有多个可变长度代码字的编码位流。解码器230基于赫夫曼代码本中的代码字的参数来计算赫夫曼代码本中的每个代码字的可能值。解码器230然后基于计算出的可能值排序赫夫曼代码本中的代码字。解码器230从接收的编码位流提取具有预定长度的当前位序列。解码器230然后基于赫夫曼代码本中的代码字的参数来计算被提取当前位序列的可能值。解码器230然后执行二分搜索以找到被排序赫夫曼代码本中的计算出的可能值,该可能值基本接近于被提取当前位序列的计算出的可能值。解码器230然后基于二分搜索的结果解码当前被提取的编码位序列。
在一些实施例中,解码器230使用以下方程计算赫夫曼代码本中每个代码字的可能值:
P(sl)=b1*2(N+M)+b2*2((N-1)+M)+...+bn*2((N-(N-1))+M)
其中P是赫夫曼代码本中的代码字sl的计算出的可能值,b1,b2...bn是每个代码字中的二进位值,N是在赫夫曼代码本中的所有代码字之中的一个代码字中找到的位的最高数目,M是在赫夫曼代码本中的所有代码字之中的一个代码字中找到的前零的最高数目。
更详细地参考图1解释解码器解码被接收的编码位流的操作。
本发明的通信技术是模块化的并且在“分布式可配置体系结构”的形式的利用方面是灵活的。结果,部分Unix构架可以放置在网络的不同点,取决于所选的模型。例如,所述技术可以部署在服务器中,并且输入和输出模块可以分别在从客户端到服务器并从服务器到客户端地被流送。
所提出的技术使用赫夫曼代码本的基础性质来基于赫夫曼代码本解码具有多个可变长度代码字的编码数据位流。而且,提出的技术通过使用二分搜索技术将解码被提取位序列所需的搜索次数减小到((log2(n))+1)次搜索次数而减小解码被接收数据位流中的计算复杂性。进一步地,提出的技术并不使用赫夫曼代码字表中的任何特殊树结构来解码,因而适合于解码一般类型的赫夫曼代码。
上描述的目的是示例性的而非限定性的。许多其他实施例对本领域的技术人员来说将是显而易见的。因此本发明的范围应当由后附权利要求以及所述权利要求的等价物的完整范围确定。
应当理解的是希望以上描述的目的是示例性的而非限定性的。在回顾以上描述的基础上,许多其他实施例对本领域的技术人员来说将是显而易见的。所以,该主题的范围应当参考以下权利要求以及所述权利要求的等价物的完整范围确定。
如这里所示,本发明可以在许多不同的实施例中实现,包括各种方法,电路,I/O设备,***,和包括具有关联指令的机器可访问媒体的物品。
其他实施例对本领域的普通技术人员来说将是显而易见的。元件、算法和操作顺序可以改变以适合特殊要求。相对于图2中所示的方法的上述操作可以采用与这里所示和所述的那些不同的顺序执行。
图1和2仅仅是代表性的并且未按比例绘制。其中的某些部分可能被扩大,而其他部分可能被缩小。图1-2示出了可以被本领域的普通技术人员理解和适当实施的本发明的各种实施例。
需要强调的是提供摘要以符合37C.F.R.§1.72(b),其要求摘要将允许读者快速地确定技术公开的性质和要点。提交它时应当理解的是它将不用于解释或限制权利要求的范围或含义。
在本发明的实施例的前面具体描述中,各种特征在单一实施例中被分在一起,以用于使公开流线化。该公开方法不应当被理解成反映这样一个意图,即提出权利要求的本发明的实施例需要比每个权利要求中清楚叙述的更多的特征。而是,如下面权利要求所反映的,发明主题在于少于单一公开实施例的所有特征。因而,下面的权利要求由此被结合到本发明的实施例的具体描述中,每个权利要求作为单独权利要求而独立。
应当理解的是以上描述目的是示例性的而非限定性的。希望涵盖可以包括在后附权利要求所限定的本发明的精神和范围内的所有备选、修改和等效替换。本领域的技术人员在回顾以上描述的基础上许多其他实施例都将显而易见。所以,本发明的范围应当参考后附权利要求以及所述权利要求的等价物的完整范围确定。在后附权利要求中,术语“包括”和“在其中”分别被用作各自术语“包含”和“其中”的通俗英语等效替换。

Claims (13)

1.一种方法(100),包括:
基于关联的可能值来排序赫夫曼代码本中的代码字(120),其中使用赫夫曼代码本中的代码字的基本参数计算可能值;
基于赫夫曼代码本从具有多个可变长度代码字的编码位流提取具有预定长度的当前位序列(140);
基于赫夫曼代码本的代码字的基本参数来计算被提取当前位序列的可能值(150);
执行搜索(160)以在被排序赫夫曼代码本中找到计算出的可能值,该可能值基本接近于被提取当前位序列的计算出的可能值;和
根据二分搜索解码被提取的当前位序列(170)。
2.根据权利要求1所述的方法,进一步包括:
通过按照指数规律地压低每个代码字中的每一位并且求和产生的所有被压低位值计算赫夫曼代码本中的每个代码字的可能值,其中从左到右压低代码字中的位。
3.根据权利要求1所述的方法,其中使用以下方程计算赫夫曼代码本中的每个代码字的可能值:
P(sl)=b1*2(N+M)+b2*2((N-1)+M)+…+bn*2((N-(N-1))+M)
其中P是赫夫曼代码本中的代码字sl的计算出的可能值,b1,b2…bn是每个代码字中的二进位值,N是在赫夫曼代码本中的所有代码字之中的一个代码字中找到的位的最高数目,M是在赫夫曼代码本中的所有代码字之中的一个代码字中找到的前零的最高数目。
4.根据权利要求1所述的方法,其中基于关联的计算出的可能值排序赫夫曼代码本中的代码字(120)包括:
排序赫夫曼代码本中的代码字,以使得关联的计算出的可能值处于选自升序和降序组成的组的次序。
5.根据权利要求1所述的方法,其中从编码位流提取具有预定长度的当前位序列(140)包括:
基于赫夫曼代码本接收具有多个可变长度代码字的编码位流(130);和
从接收的编码位流提取当前位序列(140),其中被提取当前位序列具有的长度等于在赫夫曼代码本中的所有代码字之中的一个代码字中找到的位的最高数目。
6.根据权利要求1所述的方法,其中计算被提取当前位序列的可能值(150)包括:
      P=b1*2(N+M)+b2*2((N-1)+M)+…+bn*2((N-(N-1))+M)
其中P是赫夫曼代码本中的被提取当前位序列的计算出的可能值,b1,b2…bn是被提取当前位序列代码字中的二进位值,N是在赫夫曼代码本中的所有代码字之中的一个代码字中的位的最高数目,M是在赫夫曼代码本中的所有代码字之中的一个代码字中的前零的最高数目。
7.根据权利要求1所述的方法,其中执行搜索(160)以在被排序赫夫曼代码本中找到基本接近于被提取当前位序列的计算出的可能值的计算出的可能值包括:
执行二分搜索(160)以在被排序赫夫曼代码本中找到计算出的可能值,该可能值基本接近于被提取当前位序列的计算出的可能值。
8.根据权利要求1所述的方法,其中根据二分搜索解码被提取的当前位序列(170)包括:
确定与在被排序赫夫曼代码本中找到的计算出的可能值关联的代码字名。
9.根据权利要求1所述的方法,进一步包括:
确定解码是否完成(175);
如果未完成,则从编码位流提取具有预定长度的下一个位序列(180)并且重复以上步骤以解码被提取的下一个位序列;和
如果完成,则结束解码(190)。
10.一种***(200),包括:
网络接口(220);
输入模块(216),其耦合到网络接口(220),用以经由网络接口基于赫夫曼代码本接收具有多个可变长度代码字的编码位流;
解码器(230),其耦合到所述输入模块;和
可操作地耦合到解码器(230)的存储器(204),用于存储赫夫曼代码本,
其中解码器(230)基于赫夫曼代码本中的代码字的参数来计算赫夫曼代码本中的每个代码字的可能值,其中解码器(230)基于计算出的可能值来排序赫夫曼代码本中的代码字,
其中该解码器(230)从接收的编码位流提取具有预定长度的当前位序列,
其中该解码器(230)基于赫夫曼代码本的代码字的参数来计算被提取当前位序列的可能值,
其中该解码器(230)执行二分搜索以在被排序赫夫曼代码本中找到计算出的可能值,该可能值基本接近于被提取当前位序列的计算出的可能值,并且
其中该解码器(230)根据二分搜索解码被提取的当前位序列。
11.根据权利要求10所述的***,其中解码器(230)使用以下方程计算赫夫曼代码本中的每个代码字的可能值:
P(sl)=b1*2(N+M)+b2*2((N-1)+M)+…+bn*2((N-(N-1))+M)
其中P是赫夫曼代码本中的代码字sl的计算出的可能值,b1,b2…bn是每个代码字中的二进位值,N是在赫夫曼代码本中的所有代码字之中的一个代码字中找到的位的最高数目,M是在赫夫曼代码本中的所有代码字之中的一个代码字中找到的前零的最高数目。
12.根据权利要求10所述的***,其中解码器(230)排序赫夫曼代码本中的代码字,以使得关联的计算出的可能值处于选自升序和降序组成的组的次序。
13.根据权利要求10所述的***,其中解码器(230)通过按照指数规律地压低每个代码字中的每一位并且求和产生的所有被压低位值来计算赫夫曼代码本中的每个代码字的可能值,其中从左到右压低所述位。
CN200580034153A 2004-08-06 2005-07-13 静态赫夫曼解码的***和方法 Expired - Fee Related CN100576753C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/913,172 2004-08-06
US10/913,172 US6975253B1 (en) 2004-08-06 2004-08-06 System and method for static Huffman decoding

Publications (2)

Publication Number Publication Date
CN101036298A true CN101036298A (zh) 2007-09-12
CN100576753C CN100576753C (zh) 2009-12-30

Family

ID=35452566

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200580034153A Expired - Fee Related CN100576753C (zh) 2004-08-06 2005-07-13 静态赫夫曼解码的***和方法

Country Status (5)

Country Link
US (1) US6975253B1 (zh)
EP (1) EP1779522B1 (zh)
CN (1) CN100576753C (zh)
TW (1) TWI378653B (zh)
WO (1) WO2006019763A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103702133A (zh) * 2013-12-19 2014-04-02 Tcl集团股份有限公司 一种图像压缩展示方法及其装置
CN106027066A (zh) * 2015-03-28 2016-10-12 国际商业机器公司 用于解码的并行霍夫曼数据解码器、设计结构和方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006254225A (ja) * 2005-03-11 2006-09-21 Toshiba Corp 可変長符号の復号装置及び復号方法
EP1908287A4 (en) * 2005-07-20 2011-02-16 Humax Co Ltd CODIER AND DECODER
US7461106B2 (en) * 2006-09-12 2008-12-02 Motorola, Inc. Apparatus and method for low complexity combinatorial coding of signals
US8576096B2 (en) * 2007-10-11 2013-11-05 Motorola Mobility Llc Apparatus and method for low complexity combinatorial coding of signals
US8209190B2 (en) * 2007-10-25 2012-06-26 Motorola Mobility, Inc. Method and apparatus for generating an enhancement layer within an audio coding system
US20090234642A1 (en) * 2008-03-13 2009-09-17 Motorola, Inc. Method and Apparatus for Low Complexity Combinatorial Coding of Signals
US8639519B2 (en) * 2008-04-09 2014-01-28 Motorola Mobility Llc Method and apparatus for selective signal coding based on core encoder performance
US8140342B2 (en) * 2008-12-29 2012-03-20 Motorola Mobility, Inc. Selective scaling mask computation based on peak detection
US8200496B2 (en) * 2008-12-29 2012-06-12 Motorola Mobility, Inc. Audio signal decoder and method for producing a scaled reconstructed audio signal
US8175888B2 (en) 2008-12-29 2012-05-08 Motorola Mobility, Inc. Enhanced layered gain factor balancing within a multiple-channel audio coding system
US8219408B2 (en) * 2008-12-29 2012-07-10 Motorola Mobility, Inc. Audio signal decoder and method for producing a scaled reconstructed audio signal
US7880647B1 (en) * 2009-07-07 2011-02-01 Silicon Motion Inc. Huffman decoding method
US8149144B2 (en) * 2009-12-31 2012-04-03 Motorola Mobility, Inc. Hybrid arithmetic-combinatorial encoder
US8428936B2 (en) * 2010-03-05 2013-04-23 Motorola Mobility Llc Decoder for audio signal including generic audio and speech frames
US8423355B2 (en) * 2010-03-05 2013-04-16 Motorola Mobility Llc Encoder for audio signal including generic audio and speech frames
US9129600B2 (en) 2012-09-26 2015-09-08 Google Technology Holdings LLC Method and apparatus for encoding an audio signal
TWI483138B (zh) * 2012-10-12 2015-05-01 Acer Inc 遠端動態資料的處理與驗證方法、系統,以及電腦可讀記錄媒體
CN111223154B (zh) * 2019-11-20 2022-12-06 厦门市美亚柏科信息股份有限公司 一种jpg图片碎片重组方法、终端设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5329313A (en) * 1992-04-01 1994-07-12 Intel Corporation Method and apparatus for real time compression and decompression of a digital motion video signal using a fixed Huffman table
US5420639A (en) * 1993-04-01 1995-05-30 Scientific-Atlanta, Inc. Rate adaptive huffman coding
US5615020A (en) * 1993-05-13 1997-03-25 Keith; Michael System and method for fast huffman decoding
US5848195A (en) * 1995-12-06 1998-12-08 Intel Corporation Selection of huffman tables for signal encoding
US5748121A (en) * 1995-12-06 1998-05-05 Intel Corporation Generation of huffman tables for signal encoding
US5973626A (en) * 1998-03-17 1999-10-26 Cornell Research Foundation, Inc. Byte-based prefix encoding
JP3323175B2 (ja) * 1999-04-20 2002-09-09 松下電器産業株式会社 符号化装置
US6622145B2 (en) * 2001-03-30 2003-09-16 Sharp Laboratories Of America Huffman coding for infinite symbol sets
US6778107B2 (en) 2001-08-30 2004-08-17 Intel Corporation Method and apparatus for huffman decoding technique
US6662154B2 (en) * 2001-12-12 2003-12-09 Motorola, Inc. Method and system for information signal coding using combinatorial and huffman codes
KR100484137B1 (ko) * 2002-02-28 2005-04-18 삼성전자주식회사 개선된 허프만 디코딩 방법 및 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103702133A (zh) * 2013-12-19 2014-04-02 Tcl集团股份有限公司 一种图像压缩展示方法及其装置
CN103702133B (zh) * 2013-12-19 2017-10-24 Tcl集团股份有限公司 一种图像压缩展示方法及其装置
CN106027066A (zh) * 2015-03-28 2016-10-12 国际商业机器公司 用于解码的并行霍夫曼数据解码器、设计结构和方法
CN106027066B (zh) * 2015-03-28 2019-06-04 国际商业机器公司 用于解码的并行霍夫曼数据解码器、设计结构和方法

Also Published As

Publication number Publication date
CN100576753C (zh) 2009-12-30
EP1779522B1 (en) 2016-10-26
US6975253B1 (en) 2005-12-13
EP1779522A4 (en) 2008-03-26
WO2006019763A1 (en) 2006-02-23
TW200614688A (en) 2006-05-01
EP1779522A1 (en) 2007-05-02
TWI378653B (en) 2012-12-01

Similar Documents

Publication Publication Date Title
CN101036298A (zh) 静态赫夫曼解码的***和方法
Grabowski et al. Disk-based compression of data from genome sequencing
CN1183683C (zh) 使用前缀预测的位自适应编码方法
CN1145264C (zh) 与串搜索交错进行即时字典更新的数据压缩和解压缩***
Navarro Compact data structures: A practical approach
CN1166072C (zh) 用于数据压缩、传输、存储以及通信的方法、设备和***
CN104283567B (zh) 一种名称数据的压缩、解压缩方法及设备
CN1098504C (zh) 进行串匹配的方法
JP2019537172A (ja) バイオインフォマティクスデータのインデックスを付けるための方法及びシステム
KR101049699B1 (ko) 데이터의 압축방법
CN101036143A (zh) 用于记号空间资料库的多级查询处理***与方法
CN101040444A (zh) 自适应压缩方案
JP2003218703A (ja) データ符号化装置及びデータ復号装置
Klein et al. Parallel lempel ziv coding
CN1257621A (zh) 数字数据无损压缩的方法和设备
Kowalski et al. PgRC: pseudogenome-based read compressor
CN1267963A (zh) 数据压缩设备和数据恢复设备
CN114528944B (zh) 一种医疗文本编码方法、装置、设备及可读存储介质
Grabowski et al. MBGC: multiple bacteria genome compressor
CN101055593A (zh) 藏文网页及其编码的识别方法
Sirén Compressed Full-Text Indexes for Highly Repetitive Collections.
WO2007108395A1 (ja) 可変長符号の復号装置および復号方法
Gagie et al. Efficient and compact representations of prefix codes
Chen et al. CMIC: an efficient quality score compressor with random access functionality
CN1203389C (zh) 计算机整句汉字起始四笔划输入方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091230

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