专利名称::自动生成压缩码表的制作方法
背景技术:
:电子数据(包括文本、图形、语音、多媒体和其它符号串)可以用压縮了这對言息的二进制5^示。这种压縮>了存储和/或传输所需的比特数。不同长度(即,变长)的二进制码可用来表示比特流中的不同符号。根据一些二进制码压縮技术,在比特流中,出现频報高的符号用较短的代码来表示,出现频^^低的符号用较长的代码^^。这样的方案被称为变长编码(VLC)。有一类VLC技术涉及哈夫曼编码。例如,哈夫曼编码可用于柳频编码标准的数字视频压縮和信息检索,例如,MicrosoftWindowsMedia、MPEG-2、MPEG"4、H.263、H.264和其它使用VLC技术的标准。哈夫曼编码i顿变长码字。因此,在一些哈夫曼解码实现方案中,按照"半字节接半字节(nibble-by-nibble)"的方法,将所输入比特流的比特流片段与查询表(LUT)的内容it《亍匹配。例如,解码器可观察第一个固定大小的半字节,并试图将它与哈夫曼解码表中的第一表项进行匹配。如果没找到匹配,那么,解码器观察第二个固定大小的半字节,并试图与第二賴项进行匹配,依次类推。这种方法叫做f^函数。但是,对于较长的哈夫曼码字(例如,23比特的醉)来说,这样的特节方》孺要6个步骤和/或时钟才能与最长的哈夫曼码字匹配。在这样的特节方法中,较长的码转限制解码吞吐量。为了>这种吞吐量限制,可将哈夫曼码字表重新鹏鹏縮表。通^t测特定^a制值(例如,0或1)的游程,这种压縮表可实5嬲码。游程检测比半字节接半字节的方法执行要快。这种检测可M专用硬件逻辑、软件(例如,前置零检测器(LZD))赫软硬件结合的方微实现。财卜,細专用硬件逻辑或软件检测器(例如,前置零检测器(LZD))或者软硬件结合的方式,较长游程的二进制值易于实现鹏检测。压縮表可以手工M。然而,这种技术慰艮费力的,并且,容易产生^tii。图1举例示出了可用来生^!表的^5的一个例;图2举例示出了一4^件的一个实施例;图3举例示出了一,辑图的一个实施例;图4A和4B^i列示出了多鹏辑图的实施例;图5是一张鄉脱明性的压縮表排歹啲示意图6A—6C举例示出了多种实施例;图7是一个举例说明性的逻辑流程的实施例;图8是一个系统实施例的示意图。具体实施例方式概撤也说,有多个实施例涉及码的生成和4柳。例如,在一个实施例中,一种装置包括压縮表生成器模块和存储介质。压縮表生成器生成一张压縮码表,该压縮码表有多个码字组分布于一层或多层上。这些码字组中的每一个码字组都包括与一张变长码表中的一个或多个码字对应的组掩码。存储介质存储关于这些码字组的信息,例如,旨码字组的组掩码和变长码表中的每个码字的码索引。压縮码表的这种M^]存储可自动执行。这样,就可以实现决速高效的解码。此外,还可以实现码表的更高效存储。可以描述其它例,并就其主张权利。多个实施例可以包括一个或多铺件。一个部件可包括能执愤寺定操作的任意结构。根据给定的一组设计参数或性能约束剝牛,^hM牛可用硬件、软件或者软硬件结合的方式来实现。尽管在特定的电路拓扑结构中,出于举例说明的目的,可能会用有p艮数量的部件来描述一个实施例,但在其它电路拓扑结构中,针对给定的实现方案,该实施例包括的部件可以增加或减少。值得注意的是,倒可州l^^"一个实施例"或'一种实施例"都意赠,围绕该鄉例描述的特定特征、结构或属性包括,少一个实施例中。说明书各处出现的用语"在一个实施例中"都不一定是针对相同的实施例。图1是體100的框图,體100可用于根据哈夫曼表4^iBi表。如图1所示,驢100可包括很多部件。例如,體100可包括臓表^^i块102和存储介质亂这些部件可用硬件、软件或软硬件结合的方式来实现。錢100可将哈夫曼码t个接一个Jiia行鹏,从而,使得*哈夫曼码表在一*分支中的许多变化的1和0平滑成全0或全1。这种平滑处理能实现决速解码,例如,3M游禾辦码器硬件。如图1所示,压縮表生皿模决102接收哈夫曼码表120,并生淑目应的压縮表122,压縮表122可发]^^合存储介质104。M表122可用于各种操作,例如,对信息序列进满码和解码。参照接下来的附图和相应的实例,可进一步描述多个实施例的操作。有些附图包Sf辑流程。尽管本申请给出的这些附图包括具体的逻辑流程,但可以明白,逻辑流程只是举例说柳哬实现本文描述的一般功能。此外,给定的逻辑流程不是必须按照所呈现的娇来执行,除非另有特别指明。另外,给定的逻辑流程可通过硬件部件、由处理器执4亍的软件部4牛或者软硬^牛结合的方式来实现。这些实施例不限于这种情况。图2是实施例(例如,體100)根据变长码表顿压縮表的逻辑流程200的示意图。如图2戶标,模±央202接收变长码表,例如哈夫曼表。根据收至啲这张码表,模块204生成一个或多个码字组。这些组都分布在一层或多层中。例如,层级可安排成树形结构,包括一个顶级组和一个或多行组。在这种布局中,顶级组和子组者阿以有一个或多W组。在M^H马组时,模块204可进一步,目应的信息。例如,模块204可为^^码字组顿组掩码。乡Jjf码可用于判断是否需要^^它码字子组。除了用于^JM^t外,ISJt码还可用于解码操作。模±央206存储码字组的相刘言息。该信息可包JS^h组的组掩码,以及,与^纟1^应的码索引。但是,这些鄉例不限于这种情况。图3是码^^娥102的一个辦做明性的实现方案300的框图。如图3戶标,实现方案300可包括各种部件。例如,图3显示,实现方案300可包括存储介质302、顶级组确定模块304、组分析模块306和表写入模块308。这些部件可用硬件、软件、固件或者其任意组合来实现。存储介质302存储各种用于^JBfl表的信息。例如,存储介质302可存储一贼多张哈夫曼码表320。另外,存储介质302还可存t臓多张相应的臓表330。存储介质302也可存储JBi表,期间的各种信息。例如,图3显示的存储介^^储了組^t码322、命中掩码列表324、索引列表326和子会M接328。顶级组确定模块304确定哈夫曼码字表320中的初始顶级码字组。组分析模±央306分析一个或多个码字组。该分析可确定与特定组相应的其它子组。另外,该分析可涉及信息的生成。该信息可包括掩码、命中掩码列表和/或索引列表。根据组分析模块执行的处理,压縮表写入模i央308将众多表项格式化和输出。图4A是实施例(例如,部件100和/或实现方案300)根据变长码表生成压缩标的逻辑流程的示意图。如图4A所示,模块402接收哈夫曼码表,哈夫曼码表包括多个厂度不等的码字。模块403对哈夫曼码表中的码字进行排序。因为这些码字是变长的,所以可用一种权重方法来执行该排序。一种举例说明性的权重方法是为空格分配最小权重,为比特值“1”分配中间权重,为比特值"O"分配最大权重。下面的表l一l和l一2举例说明这种排序。具体而言,表1-1显示的是没有经过排序的哈夫曼码字,表1—2显示的是这些码字经过了排序。<table>tableseeoriginaldocumentpage8</column></row><table>表1-1末排序值※码字<table>tableseeoriginaldocumentpage8</column></row><table>表1—2:排序值※码字图4显示,在模块404中,选择初始码字组进行处理。所选组(在本文称为当前组)可包括,例如,整表的码字。或者,该初始组可包括齡表的一部分。这部分可包括,例如,具有相同前缀或一比特或多比特初始集合的(例如,相同的4比特前缀)的多个码字。为该初始组分配初始序列索引(例如,零索弓l)。因此,该初始组可被称为"组0"。在模块406中,以一个比樹妾一个比特的方式处理该组,从而提取出一个或多^T组(如果有的话)。为提取出来的这些子组按照它们被提取的Wm酉游列索弓l。关于如何处理一个组的进一步细节,下面还将结合图4B进行鄉敝明。该流,SS—步包括模决408,用于判断是否还有其它组(子组)需要处理。如果有,则模块410选择下一付纟腿行处理。否贝lj,流禾mA丰莫土央412。在模±央410中,下一付组可根据下一^I增序列索引謝T^择。因此,如果组0是在模块406中最近处敏的,则模i央410将选择子组l。完成这镇择之后,操作返回模±央406,以处理戶腿子组。因此,该处理可提取其它子组,也按照它们的提刺IP序为其分,列索引。因此,如模±央408所示,该流程迭代继续,直到没有其它子组需要处理为止。一旦没有子组需要处理,图4A就显示,模块412根据模土央406禾口410执行的处理,^ffi缩表。因此,如模i央406戶标,各^#定的码字组都拗,处理。现在结合图4B中的逻辑流程400举例描^S样的处理。该流程可由部件100和/或实现方案300等实施例来执行。图4B显示,在模i央452中,为当前组4j^t码。参见图4A,当前组是模块404^t莫块410^ffi^择的组。繊码的顿可包括:在当前组中确定最长的码字;用"r鴻充其右侧(即,其最低有效侧)。有时,当前组的最长码字可以不止一个。当这种情况发生时,可选择一4it定的码字(例如,乡超排序的子组中的最后一个码字)。如图4B戶标,在模块454中存储所^的掩码。在模块458中,多个掩码项。这^t码项的^^可涉及对当前组中的每,项和在模块452中,的掩码,执行异或(XOR)运算。为进fi^些XOR运算,使表项的最驗比特与掩码的最驗比特对齐。如下所述,处理这些掩码项,以便为当前组生成命中掩码列表(即,"Hit—MaskJLisDo命中掩码列表^A右至lJ左一次写一位的^ft制数。銜U表i朋lJ不唯一"l"的健。因此,命中掩码列表可祖縮表^/^|赚作期间用来判i^合定符号(例如,一个零或多个'O")的游程是否确定当前组中的一4HI,或判码是否必须在一^^组中继续。在模±央460中,选皿靠左的比#{作为当前比#^置。完成iM择后,模块462在当前比#^§处检査^^掩码项。如果所检查的比特在掩码结果的一^#定比#^5处出现滩一1",那么该位置视为"命中"。否则,该健视为"未命中"。当一个掩码项在该特定比^^g有"l"并且没有其它相同大小或更大的掩码项在这个liS有"r时,出现唯一l。因此,如模块464戶标,当命中发生时,操作转入模土央466。否则,当未命中发生时,操作转入模块468。在模i央466中,将'0,(表示命中)放&QM表的Hit—MaskJJst中。财卜,还将具有唯一1的掩码项的索引(例如,表项编号)放在临时的Index—List中。相比之下,在t莫块468中,将'T,(g未命中)放在压縮表的Hit—Mask—List中。图4B显示,模块472位于模块468后。在该模块中,判断在当前比1t^g上掩码项是否具有不唯一的'T'。如果是,则将这些项方认一个新的子组中,如模±央474所示。由此,模±央474可生成这样一个新的子组。如图4B戶^,在模块478中,判断当前比#^置是否超腕码的终点'1'(它表示戶;^且的全部项都已用尽)。如果是,则在模块479中将当前比t^S右移一个隨。粒后,操作返回模块462。但是,如果当前比fmS己纟战到掩码的终点T,则操作继续至蝶块480。在模决480中,樹言息在下一个可用位置写入压縮表。该信息可包磁子组的临时索弓网表和命中掩码列表。赫见图4A,在该淑Mig(在模块408中)可判断是否还有新的子组(如果有的话)没有被考虑。如上戶脱,在图4B的模t央474中可生^S样的新子组。如果当前存在这种子组,则图4A中的模±央410可选^S些子组中的一个作为当前组。在完成这错择后,图4A的模块406可处S^腿的子组。因此,图4B的流程可再执行1。如上戶腿,图4B的淑呈涉及组的处理,也涉及子组的i湖ij。I赃辨脱明这样的处理和识别。该例涉及一个示意性的组0,表2—1中以未排序的^j^将其列出。索引码字<table>tableseeoriginaldocumentpage11</column></row><table>表2_1:未排序的组0该组进行排序后,如下表2—2所示。此外,为组0生成组掩码00100。如上戶腿,该掩码是根据排序纟1^尾的码字(0010)生成的。如上戶腿,对^^码字组0执行一^t码运算。表2—2的第三列进一步,了这些掩码运算的结果。<table>tableseeoriginaldocumentpage11</column></row><table>表2—2:排序组0在该掩码运算完成后,可分析掩码码字的^比,置,以确定放在子组中的码字,以及,识别当前组中保留的码字。接下来的描舰齡比#^5进行举例分析。关于最^的比1tOT,表2—2的第三列^^引1、3和5的掩码码字未命中,因为它们在该健上都有一个1。这些多个1标,在该健上不唯一1的情况发生。因此,针对索引1、3和5顿一个新的子组(称为组l)。ltW卜,因为在该錢发錄命中,所以,为命中掩码列親右侧的比特分配l。因此,处理完最靠左比,置之后,当前分组和命中掩码列表如下所示。<table>tableseeoriginaldocumentpage12</column></row><table>在脏鄉二比1t^g上,一个唯一l出现。具体而言,只有索引为o的掩码码字在这个健有l。由此,不顿新的子组,为相应的命中掩码列表健分配一个0。处理完该比^^M之后的结果总结如下。<table>tableseeoriginaldocumentpage12</column></row><table>一个唯一的1还出现在>佐数的第三比#^。具体而言,只有索引为2的掩码码字在这个健上有l。因此,该健的处驴生下列结果。<table>tableseeoriginaldocumentpage12</column></row><table>在;!^i[的第四比1flffl上,有一个唯一1出现,因为只有索引为5的掩码码邦l。因此,在处理该比ft^S之后产生下列分组和命中掩码列表。<table>tableseeoriginaldocumentpage12</column></row><table>当达到最终(最靠右)掩码比特时,没有掩码码字在该位置有比特。对于这个健,为命中掩码列表分配一个o,并且,当前分组不改变。因此,组o完毕之后,存在下列结果。<table>tableseeoriginaldocumentpage13</column></row><table>然后,组l的处理可以进行。该组未经排序,在表2-3中列出。<table>tableseeoriginaldocumentpage13</column></row><table>表2—3:未排序组l组l按表2—4所示的i^进行排序。根据该排序,为组l顿纟lJi码1001。如上戶;M,该掩M于排序纟i^端的码字(ioo)。与组o—样,对^^码字组i执行一mfe码运算。表2—4的第三列MI这餓码运算的结果。<table>tableseeoriginaldocumentpage13</column></row><table>表2—4:已排序组l掩码运算完鹏,可分析掩鹏字的針比^^S。例如,表2-2的第三列表明,掩码码字在駐比^^S均未命中,因为索引l、3和5的掩码醉在这个,都有一个0比特。财卜,由于该^g没有不唯一的l,因此在该^S没有新子乡,生。因此,组1的命中掩码列表的当前设定如下戶际。HitMask—List:1M左数的第二比f她置,表2—4显示,一个命中发生。这是因为,对于与索引3相应的掩石邻马字来说,一个唯一的1存在于该驢。因此,组1的命中掩码列表以下列方式更新。Hit—Mask—List:01在脏数的第三比#也发生一次命中,因为对与索引1相应的码字来说,一个唯一的1存在于该健。Hit—Mask—List:001当超lj最终(最tt)掩码位时,没审那个掩码码字在该健有比特。因此,如上戶舰,在该健为命中掩码列表分配一个O,并且,当前分组保持不变。因此,组1完毕之后,没有生成新的子组,并且,组1具有下列的命中掩码列表。Hit—Mask一List:0001因此,J^例子根据表2-l列出的码字,生成下面的命中掩码歹拨。组0:00001组l:0001因此,一旦识别和处理^^f有组(组0和1),也就顿了一舰縮表。在多个实施例中,一张哈夫曼码表M^f有哈夫曼码字的预定数量的初始比特用作初始组的顶级枝。例如,初始比特的M是4他就是说,哈夫曼醉的第一个特节)。因此,当i柳初始四位的半字节时,存在16个(也就是,24)顶级组。分别处理这些组,例如,如上图2和图4戶細口样。如Jl^标,这种处理可以显示出其它子组。多个实施例可进一步免受一^f戈码的侵害。标准比特流的编码和解码所用的哈夫曼码表有时不錢("一N^")。例如,有醜字可以,腿^^格中丢弃,因为它们不是编码必需的。码表中未用的这對马字或者留下的漏洞会在解码时导致比特流觀。为了检测和修,用码字的漏洞,可以iOT集舒盼方纟妹^E縮表。对于传统的哈夫曼解码器,通过向哈夫曼码表填充无用的码字,也可以执1说种修复。图5是哈夫曼码表的压縮表500的布局示意图。如图5所示,第一表项502可包^^h顶级'树'枝的掩码。如上戶舰,这些顶级枝或者组可f顿哈夫曼码表中所有哈夫曼码字的特定数量初始比特来确定。在多个实施例中,该预定数量的初始比特可以是哈夫曼码表中所有哈夫曼码字的前4比特的半字节。因此,在这些实施例中,第一,项502包括对应于十六个顶级组的十六个(也就是24)掩码。下一愤页504包^^h顶级码字/掩码的长度。此外,表项504还可包跪些码字/掩码各自的掩码类型。图5显示出了有多个i^卖表项506的压縮表500。这些项可以包括掩码、命中掩码列表、蹈瞎地址和原始码表索引的不同组合。在解码操作期间,对存储在项506中的掩码和输入(编码)值,执《T3f離算(例如,XOR运算)。这些运算的结果可,与其它项506的偏移量。而这些其它项可以包括码索弓l、跳转i魁止和/或其t^码。根据这些其它项的内容,压縮表的遍历可以继续(例如,通过与掩码謝斑離算、访问所得的偏移量和/娜啭至lJ其它地址)。到达项506中的码索引时,遍历结束。此时,一7欠新的遍历可以根据进一步的输入(编码)而开始。因此,压縮表500的多个项共同形成多层和多重1娥的结构,它们之间有非常精确的娘。例如,这M^结构可以纖哈夫曼码表的树一枝一叶类型的结构^分形(foctal)类型的结构。在多个实施例中,可生成与多个码就应的織压縮表。但是,这些实施例不局限于这种情况。图6A和6B^f码实现方案的示意图。具体而言,图6A显示常规的哈夫曼解码实现方案600。而图6B则显示娜了臓表的哈夫M^码实现方案650。如图6A戶标,实现方案600包括哈夫曼码表602和哈夫^if码器604。收到编码输入比特流620之后,哈夫,码器604对比餘^i4^lf码,并输出解码句法622。图6B显示,实J肪案650也根据输入比特流620生^l码句法622。但是,实现方案650舰'^UE縮熵解码器608对比特流620进行高效解码,而不是使用常规的哈夫,码器。具体而言,解码器608使用由MI表to^606^的压縮表624,执《豫高';^S码。臓表624可以根据本鄉述的技术而。因此,压縮表^^606可包括,例如,图1种或图3的结构。如图6B戶标,解码器608包括控制逻辑610和表存储单元612。控制逻辑610可执行控制逻辑610,可用硬件、软件、固件或其任意结合来实现。表存储单元612可以用存储介质(例如,存储器)来实现。图6B显示,表存储单元612存储压縮表624。控制逻辑610可从表存储单元612中访问该表,糊行各种运算。这些运算可包f腿艇算,例如对接收至啲比特序列和压縮表624中的掩码进行XOR运算。而且,这^算可包括识别组标识的前导码(例如,码字的前四位),并计算压縮表内的地址。例如,这些计算可以基于臓表624包含的跳转地址。而且,控制逻辑可分丰腿些运算结果,以及,根据这^i辭卩分析来生自码句法622。图7对这^#行了1脱明。在多个实施例中,压縮表可用于掛共加密和水印处理功能,这是大有益处的。例如,可生成多张可替换哈夫曼码表,来取代给定的标准哈夫曼码表。生成这些可替换表的过程可仿效给定加密或水印处理中涉及的任何给定过程。例如,这些可替换表可以是类似于给定标准表的新表,或者重新^f列具有相同码长度的码字的某些b十子,赫在码表中的戶;n胃任意健插A^用(或鹏去)码(水印处理),等等。在编码过程中,根据预先设定的加密或水印处理规则,用可替换表取代给定标准表,由此生成乡531加密或水印处理的比特流。这样的加密/水印处理规则可以发送给快速压縮解码器,例如,在这种加密/7jC印比特流解码之前。这些规则可以经由通信介质或其它传输层来传递(例如,作为私有用户)。因此,一旦赔U,'I^IMI解码器可以《顿这對见则重新排列压縮表,以謝,码。这种重新排列可以包括,鹏索引在压縮表中的它们当前體之间混洗(或雜动)。因此,图6C显示一种解码实现方案660,它鄉i脱明这种特性。图6C的实现方案与图6B类似。但是,图6B中的解码器608被替换^码器608'。如图6B戶际,解码器608,包括控制逻辑610,。控制逻辑61O,可执行控制逻辑610的操作。但是,鹏本鄉述的加密冰印处理技术,控制逻辑610,可进一步重新排列臓表624。图6C显示,控制逻辑610,接iBCffl概则614,。如上所述,这^^见则可以在不用于接收输入比特流620的通信介质或鄉层上糊。鹏规则614,后,控制逻辑610,可将表存储单元612中的ra&表624魏扫咧。如J^M,这种重新排列可涉及混洗码索引。图7魏变織码的例如哈夫曼编蹄言息(例如比特流)进〗,码时所用的逻辑流程700的示意图。例如,lt傻辑流程可ilil图6B和图6C的实现方案来执行。图7显示,模块702接收哈夫曼码表。根据这个表,模决704生淑目应的压縮表。参见,,该模块可用压縮表生麟606来实现。在模块706中,接收哈夫曼编码比特流。模块708识别比特流中的前缀(也就是,预定数量的初始位)。如上戶脱,很多实施例可4顿四位前缀。但是,也可^ffi其它长度的前缀。如图7所示,根据i照咄来的前缀,模块710选择一賴项。该表项与顶级组(组0)对应。模块712对Mf缀之后一定iS的比特和戶,表项中的掩码,执行掩码运算(例如,异^算)。该掩码是的顶级掩码(组O掩码)模块714分析该掩码运算的结果。该分析可以包括检测一^t寺定值的游程,例如0的游程。根据检测至啲游程,模i央716访问臓表中的ii:舰(也称为瑕啭地址)。如图7所示,模块718从新地址中获ff^码,并对比特流中的一个或多个比特与新地址中存储的掩码执行掩码运算。该数量的比特可以是上面结合模±央712所说的之后一定数量的比特。或者,所述一个或多个比特也可以来自模块716所确定的游程之后的那一定M的比特。模±央720分丰jfi^掩码运算结果。这可以包括检测特定值的游程,例如遊卖O的游程。根据检测出的游程,模块722访问压縮表中的新(瑕瞎)i舰。如模±央724所示,判断该新Jtt处的项是有码索引还是有其^at码。如果该项有码索引,则对应于访问码字的纖码句法已经被识别出来了。因此,操作可返回模块708,以舰编码比特流的后续比特。否则,需要进一步处理,于题作返回丰莫块718,因jth!S码处理可继续进fi10图8给出了一种系统的一个实施例。具体而言,图8显示的系统800可以表^Sffi于本鄉述的一个或多个实施例的系统或结构。如图8所示,系统800可包M^S802、通信网络804和一个或多4^程装置806。图8显示,装置802可包括图1的部件。图8显示,體802还可包码器803。码器可执行1^£縮解码技术,如上面结合图7所描述的那样。另夕卜,解码器803可实I,码器608和/或608,的功能。另外,體802可包括存储器808、用户接口810、通信接口812和电源814。这些部件可根据各种技术耦合起来。一种这样的技术需要j,一个或多个总线接□。存储器808可以,形式存储,。例如,存储器808可存储包含在存储介质104中的信息。因此,当分别图示时,存储器808可包括存储介质104。可替换的是或另外,存储器808可存储控制逻辑、指令和/或软件部件。这些软件部件包括处理器可执行指令。这些指令可实m^统800中一个或多^P件的功能。存储器808可使用能存储数据的任何机器可读介质或计算机可读介质来实现,包括易失性存储器和非易失性存储器。例如,存储器808可包括只读存储器(ROM)、随机访问存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、聚合物存储器(例如,铁电聚合物存储器)、双向存储器、相位变《域做质存储器、硅一氧一氮一氧一硅(SONOS)存储器、磁卡^卡或者适用于存储信息的倒可其它类型的介质。用户接口810有助于与装置802it行用户交互。i^互可能涉及从用户输入信息。iMS也可能涉及将内容之类的信息输出到用户。因此,用户接口810可包括一个或多个设备,如鄉、触離、麦克卩/或音频扬声器。另外,用户接口810可包括显示器,它用于输出信息和/或呈1§802处舰的图像频。例如,显示器包拾液晶显示器(LCD)、等离子显示器和视鹏示器。通信接口812倉,经由通信介质(如网络)与其它设备进行信息交换。该信息可包括例如以编码或纖码格式4输的图像、视频和/或織等内容。通信接口812可鹏職或有线通信。对于琉通信,通信接口812可包括,例如根l个或多1^1信协ij^执行操作的,^器、,卩控制逻辑等部件。因此,通信接口812可根据各种协议在職网络中通信。例如,驢802和驢806可以依照各种无线局域网(WLAN)协议执行操作,例如正EE802.11系列协议,包括正££802.11&、802.11b、802.11e、802.11g、802.11n磐。在另一种!j子中,这些设备可以依照各种,城或网(WMAN)移动宽^^接入(MBWA)协议执行操作,例如正££802..16或802.20系列协议中的协议。在另一个实例中,这些设备可以依照无线个域网(WPAN)执行操作。这些网络包括,例如正EE802.16e、蓝牙等。同样,这些设备可根据微波接入,互通(WiMax)协i姊执行操作,例如,IEEE802.16指明的一些协议。此外,这些设备也可依照一个或多个标准{,无线蜂窝协议。这些蜂窝标准可包括,例如,码分多址(CDMA)、CDMA2000、宽带码分多址(WCDMA)、增强型通用分纟I^业务(GPRS)以及其它标准。但是,这些实施例不限于这种情况。对于有线通信,通信接口812可包括例如根据一个或多个通信协i^执行操作的传输和控制逻辑等部件。例如,这种通信协议包括以太网(例如,正EE802.3)助议、综合业織字网(ISDN)助议、公共交换电话网络(PSTN)协议和各种有线协议。另外,通信接口812可包括输满出(I/O)适配器、将I/0适配器连接至湘应有线通信介质的物理连接器、网会斜妾口卡(MC)、^制器、视频控制器、音频控制器等等。例如,有线通信介质可包括电线、线缆、金属引线、印刷电路板(PCB)、板、开关结构、半导^t才料、双绞线、同轴电缆、光纤等等。电源814为體802的各部ff^f共工作用电。因此,电源814可包^K勤卜部电源(如交流电源AC)的接口。另外或可替换的是,电源814可包括电池。这种电池是可拆卸的和/或可再充电的。但是,这些实施例不限于本例。为透彻理解这些实施例,在说明书中罗列了很多具体细节。但是,对于本领域普通技术人员显而易见的是,本发明也可以不用这些具体细节来实施。在其它情况下,为使这些实施例主次分明、清楚易懂,没有详细交代公知的操作、部件和电路。可以明白,本文公开的具体结构和功能细节只是举例说明而己,对实施例的保护范围并不构成限制。各个实施例可舰硬件部件、软件部件或两者结合来实现。例如,硬件部件可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电繊徵、誠鹏、专用誠鹏(ASIC)、可编禾驟辑电路(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导件、芯片、微芯片、芯片组等等。例如,软件可包括软件部件、禾聘、应用、计飾禾骄、应用禾骄、系统禾將、机器禾將、操作系统软件、中间件、固件、软件模型、伊照將、例行子辦、函数、方法、步骤、软條口、細^i^口(API)、指令集、计算码、计^m码、码段、计靴码段、字、值、符号、或Jl^任意结合。判断一个实施例是〗顿硬件部件来实J赃是用软件部件来实现,需要柳艮多因素而定,例如所需的计算鹏、功率等级、热量容忍、禾聘循环预算、输入数据速率、输出娜速率、存储器资源、繊总线聽和其它设计或性離勺束。一些实施例用术语"耦合,、"连接,及其派生词来描述。这些术语并不是同义词。例如,一些实施例是4顿术语"耦合,和/或"连接"来描述的,这表示两个或更多锦件相互之间超接的物理接触或电接触。但是,术语"耦合,也可以表示两个,多^件相互之间并没有直^触,但仍然互相协作或彼此^i:。例如,一些实施例可以使用例如机器可读介质或者产品来实现,所述机器可读介质藏产品可以存储指令或者指令集,当戶腿指令赫指令鎌机器执行时,可以使得该机器执行根据,实施例戶腿的方法和/或操作。这种机器可以包括,例如,任意魏的处理平台、计算平台、计算装置、处理體、计算系统、处理系统、计嶽几、处理器等等,并且可以i顿硬件和/或者软件的任意魏组合来实现。该机器可读介质或者产品可以包括,例如,任何适合类型的存储器单元、存储器體、存储器产品、存储器介质、存M^s,存储产品、存储介质和减者存储单元,例如,存储器、可移动或者不可移动介质、可擦除或者不可擦除介质、可写或者可重写介质、数字赫模拟介质、石、鄉、压縮盘ROM(CD"ROM)、可记录臓盘(CD4G、可重写压縮盘(Q>RW)、光盘、磁盘、磁她可移动存储卡或者盘、各种类型的数字多功育溢(DVD)、磁带、盒式磁带、等等。戶;M指令可以包含ftf可^S类型的码,例如源代码、编iW的代码、乡S1解释的代码、可执行代码、静刻邻马、动态代码、等等。戶,指令可以^ffi任何^S的高级、低级、面向m的、可视的、乡劍编译的和/^#^释的编程语言来实现。除非特别声明,否则应该M诸如"处理"、"计算"、"运算"、"判断"等等术语指的是计Ml^"计Ml^统、或者类似的电Ti十算驢的动作和/棘处理,类似的电子计算,用于将在该计算系统的寄存器和/^存储器中^为物理量(电子)的数据,处理和/^#变换为在该计算系统的存储器、寄存器M其^S种信息存储、传输或者显^置中表示为物理量(电子)的数据。实施例不局限于这种情况。虽然上面已会别对结构特性和/^t嫌作戶飛寺定的语言描述了本发明,<鹏该離的是,权利要求书中定义的本发明并不限于战的具做寺征或动作。战的具##征和动作只是以鄉仿式说明如何实现权利要求。权利要求1.一种装置,包括压缩表生成器模块,用于生成一张压缩码表,所述压缩码表包括分布在一层或多层上的多个码字组,每个码字组都具有与一张变长码表中的一个或多个码字对应的组掩码;存储介质,用于存储关于所述多个码字组的信息,所述信息包括每个码字组的组掩码和所述变长码表中的每个码字的码索引。2、如权利要求i戶腿的錢,其中,戶脱压缩表^^模土央包括:顶级组确定*莫±央,用于^^;M多个码字组的一个或多个顶级组;组分析模块,用于确定旨顶级组的组掩码。3、如权利要求2所述的装置,其中,所^^且分析模块根据戶;^一个或多个顶级组确定一个或多付组,以及,生成^^组的掩码。4、如权利要求i所述的装置,其中,所述变长码表是哈夫曼码表。5、如权利要求i戶腿的體,进一步包括解码器,用戶;f^E縮码^f输入的比特涼战fi^码。6、如权利要求5戶腿的體,其中,戶;M^码離收一个或多个動顿则,并根据臓一个或多个翻概则将戶;MM码表重新排列。7、一种方法,包括接收具有多个码字的变长码表;生成一张臓码表,戶;aE縮码表包括分布在一层或多层上的多个码字组,針码字组都有组掩码;存储关于戶,多个码字组的信息,其中所述信息包^h码字组的组掩码和戶,变长码表中的^N马字的码索弓I。8、如权利要求7戶脱的方法,其中,戶;f^变长码表是哈夫曼码表。9、如权利要求7戶;M的方法,其中,所述多个码字组包括一个或多个顶级组和一个或多付组,其中,戶M生^^M多个码字组包括根据戶腿一个或多个顶级组,迭代地生戯腿一个或多行组。10、如权利要求9所述的方法,其中,所^i^代地生i^服一个或多个子组包括A^M多个码字组中选择一个码字组;为臓马字组顿组掩码;用所选码字组的组掩码和戶,码字组内的一个或多个码字,产生一个或多个掩離;当有两个或更多个掩码麟享一个游程特性时,生成一个新的子组,并将与戶,两个或更多个掩^11^应的码字^^,码字组转移到所述新的子组。11、如权利要求10戶腿的方法,其中,戶腿产生一个或多个掩離包括^^f^码字组的掩码和戶;M码字组内的^^码字之间执行异或(XOR)运算。12、如权利要求7戶皿的方法,进一步包括用戶;MJBfl码^t输入的比特^^,码。13、如权利要求12戶脱的方法,进一步包括接收一个或多个翻激则,根据臓一个或多个翻娜则,将戶;MJBi码表重新排列。14、一种包括机器可读存储介质的物件,戶;M机器可读存储介质包括的指令在执行时,^系统执行以下操作接收具有多个码字的变长码表;生成一张压縮码表,戶;f^压縮码表包括分布于一层或多层上的多个码字组,,马字组都有组掩码;存储关于所述多个码字组的信息,其中所述信息包S^h码字组的组掩码和戶皿变长码表中的^t码字的码索弓I。15、如权利要求12戶腿的物件,其中,戶腐变长码表是哈夫曼码表。16、如权利要求12戶,的物件,其中,所述多个码字组包括一个或多个顶级组和一个或多^f组,其中,戶;M机器可读存储介质包括的指令在执行时,使系统执行如下操作根据戶腐一个或多个顶级组,迭代地生^i^M—个或多付组。17、一种系统,包括压縮表生淑莫块,用于—张压縮石马表,戶皿压縮码表包括分布于一层或多层上的多个码字组,每个码字组具有与一张变长码表中的一个或多个码字对应的组掩码;存储介质,用于存储关于所述多个码字组的信息,所述信息包J^^码字组的组掩码和戶;f^变长码表中的^^码字的码索引;解码器,用戶;^rai码,输入的比特,fi^码;接口,用于iAffl信介质接iB^M输入的比特流。全文摘要一种装置包括压缩表生成器模块和存储介质。压缩表生成器生成一张压缩码表,该压缩码表有多个码字组分布于一层或多层上。这些码字组中的每一个码字组都包括与一张变长码表中的一个或多个码字对应的组掩码。存储介质存储关于这些码字组的信息,例如,每个码字组的组掩码和变长码表中的每个码字的码索引。文档编号H03M7/42GK101286744SQ20081010036公开日2008年10月15日申请日期2008年3月31日优先权日2007年3月30日发明者M·A·哈克,M·贾汉吉尔申请人:英特尔公司