CN102780493A - 霍夫曼解码器及其解码方法 - Google Patents
霍夫曼解码器及其解码方法 Download PDFInfo
- Publication number
- CN102780493A CN102780493A CN2011101271079A CN201110127107A CN102780493A CN 102780493 A CN102780493 A CN 102780493A CN 2011101271079 A CN2011101271079 A CN 2011101271079A CN 201110127107 A CN201110127107 A CN 201110127107A CN 102780493 A CN102780493 A CN 102780493A
- Authority
- CN
- China
- Prior art keywords
- path
- coding character
- look
- rare
- sign indicating
- 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
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种霍夫曼解码器,包含一储存模块、一接收模块与一判断模块。该储存模块储存有对应于一稀有码的一目标路径。该接收模块用以接收一编码字元的一路径数据。该判断模块用以比较该路径数据与该目标路径。当该路径数据与该目标路径相同,该判断模块即判定该编码字元为该稀有码。
Description
技术领域
本发明与解码技术相关,并且尤其与增进霍夫曼解码程序的效率的技术相关。
背景技术
霍夫曼编码(Huffman coding)是一种广泛应用在多媒体系统中的数据压缩技术,其概念是根据每一个原始码在整串待压缩符号中出现的机率决定其相对应的编码,出现频率愈高的原始码被赋予较短的编码,出现频率较低的原始码被赋予较长的编码。由霍夫曼树(Huffman tree)可看出各符号(symbol)及其编码的对应关系。各个经编码后的编码字元(codeword)都会带有一路径数据,用以指出这个编码字元所对应的符号在霍夫曼树中的位置。接收端系统即根据已知的霍夫曼树将接收到的数据解码。
就图1所示的霍夫曼树范例来说,最下端以方块表示的叶节点(leaf node)各自代表一个符号,各符号所对应的编码则是以根节点(root node)和该叶节点间的路径表示。于此范例中,符号1的编码为000,符号0的编码为001,符号2的编码为01,依此类推。
在某些情况下,为了简化霍夫曼树的架构层级,编码系统会将多个出现频率较低的原始码定义为稀有码(rare code),并令这些稀有码皆对应于同一个符号(以下以符号0为例)。在先前技术中,每接收到一个编码字元,解码系统会根据其路径数据,由霍夫曼树的根节点开始,一个位元一个位元往下找,直到找出该路径数据对应的叶节点为止。若发现该叶节点表示的符号为0,解码器便须另外对此编码字元进行稀有码解码程序,才能解出其原始码。相对地,若发现该编码字元非稀有码,解码系统可直接以根据该路径数据找到的符号做为解码结果。
先前技术的缺点在于,直到追踪至叶节点而发现一编码字元是对应于符号0之前,解码系统无法判断此编码字元是否为稀有码。在霍夫曼树的层级较多的情况下,判断编码字元是否为稀有码的过程尤其耗时。
发明内容
为解决上述问题,本发明提出一种新的霍夫曼解码器及解码方法。藉由预先找出稀有码对应的路径,根据本发明的解码器及解码方法可直接比对编码字元的路径数据是否与稀有码对应的路径相同,省去根据霍夫曼树逐位元判断的过程,进而提升解码程序的效率。
根据本发明的一具体实施例为一种霍夫曼解码器,其中包含一储存模块、一接收模块与一判断模块。该储存模块储存有对应于一稀有码的一目标路径。该接收模块用以接收一编码字元的一路径数据。该判断模块用以比较该路径数据与该目标路径。当该路径数据与该目标路径相同,该判断模块即判定该编码字元对应于该稀有码。
根据本发明的另一具体实施例为一种霍夫曼解码方法。对应于一稀有码的一目标路径系预先提供。该方法首先执行一接收步骤,接收一编码字元的一路径数据。接着,该方法执行一比较步骤,比较该路径数据与该目标路径。当该路径数据与该目标路径相同,该编码字元被判定对应于该稀有码。
根据本发明的另一具体实施例为一种电脑可读取储存媒体,其中储存有能由一控制器读取并执行的一霍夫曼解码程序码。对应于一稀有码之一目标路径系预先提供。该霍夫曼解码程序码包含:一第一程序码,用以接收一编码字元的一路径数据;一第二程序码,用以比较该路径数据与该目标路径;以及一第三程序码,当该路径数据与该目标路径相同,第三程序码即判定该编码字元对应于该稀有码。
相较于先前技术,根据本发明的解码方法及解码器在判断编码字元是否为稀有码时更为快速、具有较高的运算效率。关于本发明的优点与精神可以藉由以下发明详述及附图得到进一步的了解。
附图说明
图1为一霍夫曼树范例。
图2(A)和图2(B)为根据本发明的具体实施例中的霍夫曼解码器方块图。
图3(A)~图3(D)为根据本发明的查找表范例。
图4为根据本发明的具体实施例中的霍夫曼解码方法局部流程图。
图5为根据本发明的具体实施例中的霍夫曼解码方法流程图。
主要元件符号说明
21:储存模块 21A:查找表
22:接收模块 23:判断模块
24:解码模块 25:查找模块
S41-S44:流程步骤 S51-S54:流程步骤
具体实施方式
图2(A)为一根据本发明的一具体实施例的一种霍夫曼解码器的方块图。该解码器包含一储存模块21、一接收模块22、一判断模块23及一解码模块24。于实际应用中,该解码器可被设置于各种采用霍夫曼编码的电脑或是多媒体系统中,例如做为一包含在数字剧院系统(digital theater system,DTS)中的低位元率(lowbit rate,LBR)解码器。
储存模块21中储存有对应于一稀有码的一目标路径。以图1所示的霍夫曼树为例,假设本实施例中编码字元仅具有一个稀有码,而代表稀有码的符号为0,其所对应的路径001即为上述目标路径。由于解码器能够在开始接收编码字元前即掌握霍夫曼树的内容,且其中的哪一个符号代表稀有码亦为事先已知,该目标路径可根据该霍夫曼树预先被找出。
接收模块22负责接收一原始数据串流中的一编码字元,并撷取出对应于该编码字元的一路径数据;此路径数据用以指出这个编码字元在霍夫曼树中对应于哪一个符号。在图1的例子中,若此编码字元的路径数据为11,则此编码字元对应于符号4。接着,接收模块22将该路径数据提供给判断模块23。
储存模块21则是会将该目标路径提供给判断模块23参考。判断模块23负责比较该编码字元的路径数据与对应于稀有码的目标路径。若该路径数据与该目标路径相同,判断模块23即判定该编码字元对应于该稀有码。相对地,若该路径数据不同于目标路径,判断模块23即判定该编码字元并非对应于该稀有码。若判断模块23判定该编码字元对应于该稀有码,解码模块24会继续对该编码字元进行一稀有码解码程序,以解出其原始码。以图1所示的霍夫曼树为例,路径数据为001的编码字元会被判断模块23判定为对应于该稀有码。
由以上说明可看出,根据本发明的解码器藉由直接比对两个路径是否相同来判断编码字元是否对应于该稀有码。这样的做法能省去先前技术中根据霍夫曼树由上至下逐位元判断的过程,增快辨识稀有码的速度。
实务上,若判断模块23判定该编码字元非对应于该稀有码,根据本发明的解码器有几种不同的方式可继续找出对应于该编码字元的符号。于一实施例中,于判定该编码字元非对应于该稀有码后,该解码器系根据霍夫曼树由上至下逐位元比对,以找出该路径数据所指向的符号,该符号即为该编码字元的解码结果。于另一实施例中,该解码器利用一预先建立的查找表来找出对应于该编码字元的符号,以下根据图2(B)所示的方块图加以说明。
如图2(B)所示,根据本发明的解码器可进一步包含一查找模块25。在此范例中,储存模块21储存有预先建立的一个查找表21A,用以储存多个路径以及每一路径各自对应的一符号,每一路径与霍夫曼树中的一叶节点相关。以图1所示的霍夫曼树为例,其查找表21A可被设计为如图3(A)所示,包含一符号栏位及一路径栏位。若判断模块23判定该编码字元非对应于该稀有码,查找模块25即根据该路径数据自查找表21A中找出对应于该编码字元的该符号。举例而言,若该路径数据为11,查找模块25可根据查找表21A找出该编码字元对应于符号4。
霍夫曼编码的基本原理中,稀有码具有最长的编码长度,意即稀有码的路径位元数最长。上述实施例中的稀有码的路径位元数为3。于另一实施例中,查找表21A被设计为如图3(B)所示,包含一符号栏位、一路径栏位及一路径位元数栏位。需说明的是,在这个实施例中,稀有码的路径位元数亦为3。为了提高比较运算的便利性,所有霍夫曼编码字元对应的路径皆被统一填补位元而成为新路径,以一最大路径位元数3位元(亦即原本各路径长度中最大者)表示:于符号2、3、4的路径的最小位元(Least Significant Bit,LSB)后补上多个0,至其补足后的新路径的位元数与最大路径位元数3位元相同。
图3(B)中最右方的路径位元数栏位用以记录各路径原本的路径长度。由这个栏位,亦可看出其中的最大路径位元数为3。这个最大路径位元数可被预先记录在储存模块21中,供接收模块22参考。举例而言,接收模块22可根据该最大路径位元数决定要自一原始数据串流中撷取多少位元的数据作为该路径数据。需特别注意的是,根据霍夫曼解码方法的特性,该稀有码的位元数必定等于该最大路径位元数。此外,在本实施例中,该查找表21A依补足后的新路径由小到大排序。此排序方式有助于查找模块25找出对应于该编码字元的该符号,详述如下。
在本实施例中,查找模块25透过比较该路径数据及新路径大小找出对应于该编码字元的该符号。在查找相对应之符号时,查找模块25可由小到大逐一比较该路径数据及新路径的大小,直到该路径数据小于一新路径,查找模块25即认定该新路径之前一笔新路径为一目标新路径,且该目标新路径所对应的符号为该编码字元所对应的该符号。举例而言,如图3(B)所示,假设接收模块22以最大路径位元数3来撷取该路径数据,且收到的路径数据为100。查找模块25逐一比对路径栏位中的新路径000、001、010、100、110,直至发现新路径110大于该路径数据100,查找模块25即认定前一新路径100为该目标新路径,且该目标新路径所对应的该符号3为该编码字元所对应的该符号。
再举例而言,如图3(B)所示,假设接收模块22以最大路径位元数3来撷取该路径数据,且收到的路径数据为011。查找模块25逐一比对新路径000、001、010、100,直至发现新路径100大于该路径数据011,查找模块25即认定前一新路径010为该目标新路径,且该目标新路径所对应的该符号2为该编码字元所对应的该符号。需特别注意的是,在此例中,收到的路径数据011可能不等于任一新路径。因该编码字元所对应的路径位元数为2,意指事实上于该原始数据串流中,仅前2位元的数据被用于表示该编码字元的路径,即01。换言之,除此前2位元的数据外,于该目标新路径中,其余较小位元的数值于此并不具有意义,接收模块22所撷取的路径数据011中亦仅前两个位元01是对应于该编码字元,第三个位元1实际上是下一个编码字元的路径数据。因此,查找模块25依上述方法,即可有效忽略该目标新路径于为使该目标新路径的位元数与最大路径位元数相同而补上的位元部份(其总位元数量为该最大路径位元数减去该目标新路径的该路径位元数)与该路径数据的差异,而有效地查找出该编码字元所对应的该符号。
需特别注意的是,于本实施例中,该目标新路径所对应的该路径位元数亦应提供至接收模块22,使得接收模块22可据以撷取下一笔编码字元所对应的路径数据。以上述路径数据为011的情况为例,接收模块22必须考量其中的第三个位元1是下一个编码字元的路径数据,才不致于撷取下一个编码字元的路径数据时发生误判。
于另一实施例中,查找表21A被设计为如图3(C)所示,将各个路径数据由二进位数据转换为十进位数据,并同样地依照由小到大顺序排列。这样的排列方式有助于查找模块25提升比对的效率。如图3(D)所示,图3(C)中各个栏位的内容也可以被整合于单一栏位中,亦即在单一栏位中记录符号、路径及路径位元数,其最大路径位元数可被视为12。
根据本发明的另一具体实施例为一种霍夫曼解码方法,图4为该解码过程的局部流程图。对应于一稀有码的一目标路径系预先提供。该方法首先执行步骤S41,接收一编码字元的一路径数据。接着,该方法执行步骤S42,比较该路径数据与该目标路径是否相同。若步骤S42的判断结果为否,该方法即于步骤S43中判定该编码字元非对应于该稀有码。相对地,若步骤S42的判断结果为是,该方法即于步骤S44中判定该编码字元对应于该稀有码。
图5为进一步包含解码程序的流程图。步骤S51~S52与图4的前两个步骤相同。若步骤S52的判断结果为否,该方法即执行步骤S53,根据该路径数据自一预先提供的查找表中找出对应于该编码字元的符号。相对地,若步骤S52的判断结果为是,该方法于步骤S54中对该编码字元进行稀有码解码程序。
实务上,图2(B)中的解码模块24和查找模块25可以被整合为单一模块。此外,图4及图5所绘示的流程都可以在图2(B)所示的硬件上实现。同样地,步骤S53中所参考的查找表可为图3(A)~图3(D)等各种形式,但不以此为限。
根据本发明的另一实施例为一种电脑可读取储存媒体,其中储存有能由一控制器读取并执行的一霍夫曼解码程序码。举例而言,该电脑可读取储存媒体可一光学储存媒体、一软碟片或一硬盘,但不以此为限。对应于一稀有码的一目标路径预先提供。该霍夫曼解码程序码包含:一第一程序码,用以接收一编码字元的一路径数据;一第二程序码,用以比较该路径数据与该目标路径;以及一第三程序码,当该路径数据与该目标路径相同,第三程序码即判定该编码字元对应于该稀有码。
如先前所述,根据本发明的解码器及解码方法藉由预先找出稀有码对应的路径,并直接比对编码字元的路径数据是否与稀有码对应的路径相同,省去根据霍夫曼树逐位元判断的过程,进而提升解码程序的效率。相较于先前技术,根据本发明的解码方法及解码器在判断编码字元是否为稀有码时更为快速、具有较高的运算效率。
藉由以上较佳具体实施例的详述,希望能更加清楚描述本发明的特征与精神,而并非以上述所揭示的较佳具体实施例来对本发明的范畴加以限制。相反地,其目的是希望能涵盖各种改变及具相等性的安排于本发明的权利要求书限定的范围内。
Claims (17)
1.一种霍夫曼解码器,包含:
一储存模块,储存有多目标路径,其中一目标路径相关于一稀有码;
一接收模块,用以接收一编码字元的一路径数据;以及
一判断模块,用以比较该路径数据与相关于该稀有码的该目标路径,当该路径数据与该目标路径相同,该判断模块判定该编码字元对应于该稀有码。
2.如权利要求1所述的霍夫曼解码器,其特征在于,进一步包含:
一解码模块,当该判断模块判定该编码字元对应于该稀有码,该解码模块对该编码字元进行一稀有码解码程序。
3.如权利要求1所述的霍夫曼解码器,其特征在于,该储存模块亦储存有一最大路径位元数,该接收模块接收的该路径数据的一路径位元数根据该最大路径位元数而决定。
4.如权利要求1所述的霍夫曼解码器,其特征在于,该储存模块亦储存有预先建立的一查找表,用以储存该多个路径以及每一路径各自对应的一符号,该查找表中的每一路径与一霍夫曼树中的一叶节点相关,该霍夫曼解码器进一步包含:
一查找模块,当该判断模块判定该编码字元非对应于该稀有码,根据该路径数据自该查找表中找出对应于该编码字元的该符号。
5.如权利要求4所述的霍夫曼解码器,其特征在于,于该查找表中,这些路径中每一路径及其对应的该符号储存于同一栏位。
6.如权利要求4所述的霍夫曼解码器,其特征在于,于该查找表中,这些路径各自被化为一数值并依照一由小到大顺序排列。
7.如权利要求4所述的霍夫曼解码器,其特征在于,该查找表亦储存有这些路径中每一路径所对应的一路径位元数,并且该接收模块于接收下一编码字元对应的一路径数据时,以对应于该编码字元的该路径位元数为一参考依据。
8.一种霍夫曼解码方法,包含:
(a)提供相关于一稀有码的一目标路径;
(b)接收一编码字元的一路径数据;
(c)比较该路径数据与该目标路径;以及
(d)当该路径数据与该目标路径相同,判定该编码字元对应于该稀有码。
9.如权利要求8所述的霍夫曼解码方法,其特征在于,进一步包含:
(e)当该编码字元对应于该稀有码,对该编码字元进行一稀有码解码程序。
10.如权利要求8所述的霍夫曼解码方法,其特征在于,一最大路径位元数亦预先提供,并且步骤(b)包含:
根据该最大路径位元数决定接收该路径数据的一路径位元数。
11.如权利要求8所述的霍夫曼解码方法,其特征在于,一查找表亦预先提供,用以储存多个路径以及每一路径各自对应的一符号,该查找表中的每一路径与一霍夫曼树中的一叶节点相关,该霍夫曼解码方法进一步包含:
(f)当该编码字元非对应于该稀有码,根据该路径数据自该查找表中找出对应于该编码字元的该符号。
12.如权利要求11所述的霍夫曼解码方法,其特征在于,于该查找表中,这些路径中每一路径及其对应的该符号系储存于同一栏位。
13.如权利要求11所述的霍夫曼解码方法,其特征在于,于该查找表中,这些路径各自被化为一数值并依照一由小到大顺序排列。
14.如权利要求11所述的霍夫曼解码方法,其特征在于,该查找表亦储存有这些路径中每一路径所对应的一路径位元数,并且步骤(f)包含:
于接收下一编码字元对应的一路径数据时,以对应于该编码字元的该路径位元数为一参考依据。
15.一种电脑可读取储存媒体,其中储存能由一控制器读取并执行的一霍夫曼解码程序码,对应于一稀有码的一目标路径预先提供,包含:
一第一程序码,用以接收一编码字元的一路径数据;
一第二程序码,用以比较该路径数据与该目标路径;以及
一第三程序码,当该路径数据与该目标路径相同,第三程序码即判定该编码字元对应于该稀有码。
16.如权利要求15所述的电脑可读取储存媒体,其特征在于,进一步包含:
一第四程序码,当该编码字元对应于该稀有码,该第四程序码对该编码字元进行一稀有码解码程序。
17.如权利要求15所述的电脑可读取储存媒体,其特征在于,一查找表亦预先提供,用以储存多个路径以及每一路径各自对应的一符号,该查找表中的每一路径与一霍夫曼树中的一叶节点相关,进一步包含:
一第五程序码,当该编码字元非对应于该稀有码,该第五程序码根据该路径数据自该查找表中找出对应于该编码字元的该符号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110127107.9A CN102780493B (zh) | 2011-05-09 | 2011-05-09 | 霍夫曼解码器及其解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110127107.9A CN102780493B (zh) | 2011-05-09 | 2011-05-09 | 霍夫曼解码器及其解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102780493A true CN102780493A (zh) | 2012-11-14 |
CN102780493B CN102780493B (zh) | 2016-06-29 |
Family
ID=47125270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110127107.9A Expired - Fee Related CN102780493B (zh) | 2011-05-09 | 2011-05-09 | 霍夫曼解码器及其解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102780493B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106027066A (zh) * | 2015-03-28 | 2016-10-12 | 国际商业机器公司 | 用于解码的并行霍夫曼数据解码器、设计结构和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1053335A (zh) * | 1990-11-02 | 1991-07-24 | 李翔 | 变长码有序译码法及其可编程电路 |
US6839005B1 (en) * | 2003-11-07 | 2005-01-04 | Broadcom Corporation | Low memory and MIPS efficient technique for decoding Huffman codes using multi-stage, multi-bits lookup at different levels |
CN1889366A (zh) * | 2006-07-13 | 2007-01-03 | 浙江大学 | 哈夫曼解码方法 |
-
2011
- 2011-05-09 CN CN201110127107.9A patent/CN102780493B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1053335A (zh) * | 1990-11-02 | 1991-07-24 | 李翔 | 变长码有序译码法及其可编程电路 |
US6839005B1 (en) * | 2003-11-07 | 2005-01-04 | Broadcom Corporation | Low memory and MIPS efficient technique for decoding Huffman codes using multi-stage, multi-bits lookup at different levels |
CN1889366A (zh) * | 2006-07-13 | 2007-01-03 | 浙江大学 | 哈夫曼解码方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106027066A (zh) * | 2015-03-28 | 2016-10-12 | 国际商业机器公司 | 用于解码的并行霍夫曼数据解码器、设计结构和方法 |
CN106027066B (zh) * | 2015-03-28 | 2019-06-04 | 国际商业机器公司 | 用于解码的并行霍夫曼数据解码器、设计结构和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102780493B (zh) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109120272B (zh) | 一种面向离散制造车间的rfid标签数据压缩方法 | |
JP6499275B2 (ja) | 信号の符号化/復号化方法、装置およびシステム | |
CN102668560B (zh) | 嵌入式图形编码:用于并行解码的重排序比特流 | |
US20090016453A1 (en) | Combinatorial coding/decoding for electrical computers and digital data processing systems | |
US7511639B2 (en) | Data compression for communication between two or more components in a system | |
CN103339959A (zh) | 动态视频切换 | |
JP2012533921A (ja) | データの圧縮方法 | |
US9286155B1 (en) | Systems and methods for generating soft information in a flash device | |
CN101729198B (zh) | 一种编解码方法、装置及系统 | |
JP5913748B2 (ja) | セキュアで損失のないデータ圧縮 | |
US20100315269A1 (en) | Decoding Method | |
CN102780493B (zh) | 霍夫曼解码器及其解码方法 | |
CN101882228A (zh) | 一种识别手写轨迹的方法、系统及移动终端 | |
CN105095268A (zh) | 结构化数据的存取方法以及装置 | |
US8593306B2 (en) | Huffman decoder and decoding method thereof | |
CN104079941A (zh) | 一种深度信息编解码方法、装置及视频处理播放设备 | |
CN103873317A (zh) | 一种ccsds空间链路协议检测方法及系统 | |
US8600766B2 (en) | Method and apparatus for encoding and decoding data with altered bit sequence | |
CN111510153B (zh) | 数列的压缩、解压缩方法和装置以及电子设备 | |
CN102682772A (zh) | 数据发送、接收方法及设备 | |
EP2293449A1 (en) | Line coding method and apparatus | |
CN108123721B (zh) | 编码方法及装置 | |
CN116684003B (zh) | 一种基于量子通信的铁路沿线空地综合监测方法及系统 | |
US7843365B2 (en) | Data encoding and decoding methods and computer readable medium thereof | |
CN1297145C (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: 20160629 Termination date: 20190509 |
|
CF01 | Termination of patent right due to non-payment of annual fee |