用以译码数据位流的译码方法与装置的制作方法

文档序号:7944074阅读:176来源:国知局
专利名称:用以译码数据位流的译码方法与装置的制作方法
技术领域
本发明有关于一种译码装置,且特别有关于一种以组合代
码同时译码多个基本符号(source symbol)的i奪码装置。
背景技术
随着数字多媒体数据的大量使用以及利用网络分享数字多 媒体数据已经蔚为风潮,因此多媒体数据的压缩与译码技术变
的相当重要。而有许多的影像标准是为了不同的目的而建立, 例如MPEG用于多媒体,H.263用于视频会议,在将影片等影像 数据储存于各种储存介质时,为了能够节省所占用的储存空间, 通常都会应用如动态影像专家协会(Motion Picture Expert Group,简称MPEG)等的影像压缩标准,来压缩原始影像数据, MPEG的压缩比 一般由8倍到40倍不等。
而这些标准的编译码技术都会应用到离散余弦转换 (discrete cosine transform , DCT)、 运动补偿 (motion compensation , MC)、 量化(quantization)以及可变长度译码 (variable length decode, VLD)等。其中可变长度译码是对数据 串流中取出的字码(codeword)做查表的动作,以解出此字码 所代表的系数(DC/AC coefficients)。
在进行编译码时,最常使用的编码方式是哈夫曼编码 (Huffman Coding),以哈夫曼树(即最优二元树(binary tree)),也 就是加权路径长度最小的二元树来进行数据压缩。"哈夫曼编 码"又称"熵编码法"(entropy coding),在进行数据编码时会使用 一张特殊的编码表(查找表)对基本符号(source symbol)(例如某 文件中的一个符号、字或数字)进行编码。这张编码表是根据每一个基本符号出现的估算机率而建立起来的,其中出现机率 高的字使用较短的编码,反之出现机率低的则使用较长的编码, 这便使编码之后的位串的平均期望长度降低,并达到无损压缩 数据的目的。
在可变长度译码器(variable length decoder)进行译码时,则 反向根据查找表译码所输入的数据位流(bitstream, BS),查找 表中会包括符号(symbol)与代码(code),如图1所示,图l为根据 现有技术的查找表。其中查找表100所包括的[符号]以a、 b、 c、 d为例,其对应的[代码]分别为0、 10、 110、 111。若数据位流
的字码(codeword)顺序依序比对查找表100的代码以译码出相 对的符号。经译码后,
所对应的符号 串流(symbol stream)则为[aaaaaabbaabcd],其i奪石马所需的时间总 共为13个周期,储存查找表100的代码所需的大小为12位(最长 位的符号d所对应的代码为3位,共计4个符号)。

发明内容
本发明提供一种译码装置,适用于可变长度译码,其中用 以译码的查找表具有基本代码与组合代码,且利用位长度限制
来选取所需的组合代码,不仅可节省查找表所需的存储器空间, 更可有效降低译码所需的时间。
本发明提供 一 种译码方法,利用位长度限制来选取所需的 组合代码,除可节省查找表所需的存储器空间外,更可加快译 码速度。
承上述,本发明提出一种用以译码数据位流的译码装置, 该译码装置包括一输入端口 , 一译码单元以及一输出端口 。其
中,输入端口用以接收一数据位流,上述数据位流包括多个代
可变长度译码器会根据数据位流
6码;译码单元具有一查找表,并根据上述查找表译码所接收的 上述数据位流以产生对应的符号串流,上述查找表包括多个基 本代码以及多个组合代码,基本代码对应于基本符号,组合代 码对应于组合符号,其中上述组合代码包括两个以上的基本代 码组成的长度小于等于N位的所有组合。输出端口则用以输出 所译码出的符号串流。其中,N为预定的正整数且大于或等于 上述基本代码中最长的基本代码的位数。
在本发明一实施例中,上述译码单元还根据上述代码的顺 序输出对应的上述基本符号或上述组合符号以组成符号串流。
在本发明一实施例中,其中若基本符号为二进制数字,则
基本符号的个数为2;若基本符号为十进位数字,则基本符号的 个数为10;若基本符号为英文字母,则基本符号的个数为26。 基本符号为数字、字母、符号或位串,而基本代码与组合代码 的形式为二进制。
在本发明一实施例中,上述译码单元包括一可变长度译码 器,根据上述查找表译码所接收的上述数据位流以产生对应的 符号串流,其中上述数据位流是可变长度编码格式。
本发明另提出一种用以译码数据位流的译码方法,该译码 方法包括下列步骤接收一包括多个代码的数据位流;根据一 查找表译码上述数据位流以产生 一符号位流,上述符号位流包
括对应于上述代码的多个符号;以及输出上述符号位流;其中 该查找表包括多个基本代码以及多个组合代码,所述基本代码 对应于多个基本符号,所述组合代码对应于多个组合符号,上 述组合代码包括至少两个基本代码组成的长度小于等于N的所 有组合,N为预定的正整数且大于或等于上述基本代码中最长
的基本代码的位数。关于此译码方法的其余操作细节请参照上 述译码装置的说明,在此不再赘述。从另 一个角度来看,本发明另提出 一种用以译码数据位流
的译码方法,该译码方法包括下列步骤首先,根据多个基本 代码组成产生长度小于或等于N的多个组合代码,N为预定的正 整数;根据上述基本代码和上述组合代码产生对应的多个基本 符号和多个组合符号;接收一包括多个位的数据位流;根据上 述基本代码和上述组合代码分割上述数据位流的上述位为最大 长度的组合;依序查找上述位的分割组合对应于上述基本符号 和上述组合符号的一者;以及组合上述分割组合对应的上述基 本符号和上述组合符号以产生上述数据位流对应的一符号串 流。其中N大于或等于上述基本代码中最长的基本代码的位数。 关于此译码方法的其余操作细节请参照上述译码装置的说明, 在此不再赘述。
本发明因采用位长度限制来限制符号的组合并且保留基本 符号所对照的代码,因此本发明仅需小量增加查找表的大小, 便可同时if码多个基本符号以达到降低译码时间的功效。在译
码流程方面,由于本发明可同时译码出多个符号,因此可减少 译码所需的运算次数以及时间。


图l为根据现有技术的查找表。
图2为根据本发明第一实施例的多媒体数据译码装置图。
图3为根据本发明第 一 实施例的查找表215的列表。
图4为根据本发明第 一 实施例的数据位流译码示意图。
图5为根据本发明第二实施例的查找表。
图6为根据本发明第二实施例的数据位流译码示意图。
图7为根据本发明第三实施例的译码方法流程图。
图8为根据本发明第四实施例的译码方法流程图。
具体实施例方式
为让本发明的上述特征和优点能更明显易懂,下文特举较
佳实施例,并配合所附图式,作详细说明如下。
本发明虽然由以下实施例配合图示来阐述说明,但并不用 以限制本发明的适用范围。
第一实施例
请参照图2,图2为根据本发明第一实施例的多媒体数据译 码装置图。译码装置200包括译码单元201(由可变长度译码器 210与查找表215所组成)、反量化模块(inverse quantization)220 以及反离散余弦转换模块(inverse DCT)230。其中反量化模块 220耦接于可变长度译码器210与反离散余弦转换模块230之间, 查找表215耦接于可变长度译码器210。在本实施例中,查找表 215可储存于存储元件中,例如快闪存储器(flash memory)、快 取存储器(Cache Memory)、只读存储器(Read Only Memory, ROM)或随才几存耳又存4诸器(Random Assess Memory, RAM)或石更盘 (Hard Disk, HD)等泛指可储存数据的介质。
可变长度译码器210经由输入端口 (未绘示)接收数据位流 BS,其中,数据位流可以是可变长度编码格式,并根据查找表 215将其译码为数值列(符号串流),经由输出端口 (未绘示)输出 以进行反量化以及反离散余弦转换等运算。其中,可变长度译 码器210与查找表215可视为一个可变长度译码装置,根据查找
表215内的符号与代码的对应关系,将可变长度数据(数据位流) 译码为符号串流。
接下来,进一步说明查找表215的符号与代码的对应关系。
请同时参照图l与图3,图3为根据本实施例的查找表215的列表,
其中基本符号(source symbol)与图l相同,以a、 b、 c、 d为例说
明,所谓基本符号即表示原始数据中的基本字或符号。举例来说,若原始数据为二进制的数据,则基本符号有两种,分别为l
与0;若原始数据是由英文字母所组成,则基本符号有26个字母。 其余基本符号,例如括号,逗点或位串等也可算是基本符号的
余基本符号,在此不加累述。
在图3中,本实施例中的[符号]包括原始数据中的所有基本 符号(本实施例中i又以a、 b、 c、 d为例)以及由基本符号组成的 组合符号,如aaa、 aa、 ab、 ba。对应于基本符号的代码称为基 本代码(即O、 10、 110、 111),而对应于组合符号的代码称为组 合代码(即OOO、 00、 010、 100),所有符号与代码之间的对应关 系则请参照图3。
组合代码由基本代码组合的位串所形成,以基本符号[a ]为 例,其对应的基本代码为[O],因此对应于组合符号[aaa]的组合 代码即为[OOO],即是由3个基本代码
组合而成的位串,其余 组合代码则依此类推。此外,在本实施例中,组合代码的选取 是依照其位长度来决定。首先,组合代码的长度限制必须大于 等于最长基本代码(即lll)的位数,也就是3位。图3即是以3位 为长度限制来选取对应的组合代码,图3列出所有基本代码以及 所有长度小于等于3位的组合代码。经比对后,组合符号aaa、 aa、 ab、 ba所对应的组合代码的长度小于等于3位,因此一并列 入查找表215中。
换句话说,对应于基本符号的代码可组成多个位串,而组 合代码则包括所有长度小于或等于n位的所述位串,n为预定的 正整数,也就是说组合代码包括两个以上的基本代码合并后长 度小于等于n位的所有组合,其中n的数值可依照设计需求而 定,n值越大,查找表内的组合代码越多,其译码的速度越快, 但查找表所需的存储空间越大。在本实施例中,仅以n等于3为
10例说明,j旦N并不限定于3。
译码的流程请参照图4,图4为根据本实施例的数据位流译 码示意图。其中,数据位流为
,在周 期T1中,数据位
与图3中的代码比较可译码出符号[aaa]: 在周期T2中,数据位
与图3中的代码比较可译码出符号 [aaa];在周期T3中,数据位[IO]与图3中的代码比较可译码出符 号[b];在周期T4中,数据位[100]与图3中的代码比專支可"^码出 符号[ba];在周期T5中,数据位[OIO]与图3中的代码比较可译码 出符号[ab];在周期T6中,数据位[110]与图3中的代码比较可译 码出符号[c];在周期T7中,数据位[lll]与图3中的代码比较可 译码出符号[d]。
值得注意的是,周期T3中的数据位[101],仅有[10]被译码 为符号[b],其最后一个数据位[l]尚未译码到,因此纳入周期T4 中,继续进行比对与译码。在进行数据位流的分割时,会依据 组成数据位流的代码数目为最小的原则来进行分割。例如,图4 中的数据位流之前6个位为"0",因此会将其分割为两个"OOO" 以对应于两个组合符号"aaa",而不会将其分割为6个"0"的组 合。换言之,分割数据位流时会使得组成数据位流的代码数目 为最小。译码完成后,译码单元201根据所述代码的顺序输出对 应的所述基本符号或所述组合符号以组成符号串流。
因此,利用本实施例的查找表215,可变长度译码器210可 于7个周期内完成i奪码以输出对应的符号串[aaaaaabbaabcd]。相 较于现有技术的查找表(请参照图1),本实施例所需的译码时间 由13个周期减少为7个周期,而查找表215中代码所需的存储器 空间仅由12位提高为24位(4个基本代码加4个组合代码,每个代 码所需的储存空间为3位)。因此,本实施例仅需小幅提升查找 表的大小,即可大幅降低译码所需的时间。第二实施例
在本发明另一实施例中,查找表的代码长度限制可以调整
为4位(N等于4),其查找表的组成请参照图5,图5为根据本发明 第二实施例的查找表。查找表500中包括所有基本代码以及所有 长度小于等于4位的组合代码。其中,基本代码对应于所有基本 符号,而所有组合代码则是由两个或两个以上的基本代码所组 合而成,对应于多个组合符号,如图5所示。关于组合代码的选 取,可根据基本代码的长度来选择组合的方式,例如组合l位与 3位长度的基本代码或者2位与2位长度的基本代码,或者1位与2 位长度的基本代码,其余类推。只要基本代码组合后的位串的 长度小于等于4位皆属于本实施例的组合代码的范畴。组合代码 可由相同的基本代码或不同的基本代码组合而成,本实施例并 不受限,只要组合代码的长度小于等于所设定的N位即可。
利用图5的查找表500来进行译码的流程请参照图6,图6为 根据本发明第二实施例的数据位流译码示意图。其中,数据位
图5中的代码比较可译码出符号[aaaa]:在周期T62中,数据位 [OOIO]与图5中的代码比较可译码出符号[aab]:在周期T63中, 数据位[1000]与图5中的代码比较可译码出符号[baa]:在周期 T64中,数据位[1011]与图5中的代码比较可译码出符号[b]:在 周期T65中,数据位[1101]与图5中的代码比较可译码出符号[c]: 在周 期T66中 , 数据位[lll]与图5中的代码比较可译码出符号 [c]。
查找表500中代码所需的存储器空间为68位,但其译码的时
间可缩短为6个周期,因此相较于现有技术,本发明仅需小幅提
升查找表的大小便可有效提升译码的速度。关于本实施例的其 余细节请参照上述第一实施例的i兑明,在此不加累述。
12此外,值得注意的是,在本实施例中,数据位流BS的字码 (codeword)可代表多个变动值/级值码(run-length code),其表示 形式分别为run、 level,其中变动值"run"便是指在非零的离 散余弦转换系数之前,连续零的个数;而级值"level"则是非 零的系数值,据此可算出此字码所代表的DC或AC系数的绝对 值。查找表215则储存代码与符号的对应关系,代码可对应于数 据位流BS的字码顺序,而符号则对应于变动值/级值的数值。此 外,值得注意的是,本实施例所述的数据位流BS并不限定于多 媒体数据,只要是经可变长度编码后的数据皆可。
在设定查找表的代码长度限制方面,只要大于基本代码(对 应于基本符号)的最大长度即可,例如当基本代码中的最长基本 代码的长度为3位时,使用者可选择3位以上的长度(如3位、4 位或5位)来挑选符合长度的组合代码以形成查找表。所设定的 代码长度愈长,符合的组合代码就愈多,其查找表所需的存储 器空间愈大,^f旦i奪码所需的时间愈短。i殳计人员可依照不同的 译码需求,设定适合最长代码长度。此外,当设计人员找出所 有符合位长度限制的组合代码时,仍然可以从中删除部分组合 代码(例如原始文件中使用机率较低的组合代码)以进一 步降低 查找表的大小。本发明的查找表并不限制于上述实施例,使用 者可依照自身需求进行调整。
第三实施例
综合上述第一实施例与第二实施例的说明,本发明可归纳 出 一种译码方法用以译码一数据位流,请参照图7,图7为根据
本发明第三实施例的译码方法流程图。首先,接收一包括多个 代码的数据位流(步骤S 710),然后根据 一 查找表译码数据位流 以产生一符号位流,符号位流包括对应于上述代码的多个符号 (步骤S720)。在译码完成后,输出符号位流(步骤S730)。其中值得注意的是,上述查找表中包括多个基本代码和多 个组合代码所对应的多个基本符号和多个组合符号,上述组合
代码包括至少两个基本代码组成的长度小于等于N的所有组 合,其中,N为正整数且大于或等于基本代码中最长的基本代
码的位数。关于查找表的组成以及译码方法的#:作细节请参照 上述第一实施例与第二实施例的说明,在此不再赘述。 第四实施例
从另 一个角度来看,本发明提出 一种译码方法,请参照图8, 图8为根据本发明第四实施例的译码方法流程图。首先,根据多 个基本代码组成产生长度小于或等于N的多个组合代码,N为正 整数(步骤S810);然后,根据上述基本代码和组合代码产生对 应的多个基本符号和多个组合符号(步骤S820)。接下来,接收 一包含多个位的数据位流(步骤S830),然后根据上述基本代码 和上述组合代码分割所接收的数据位流的位为最大长度的组合 (步骤S840)。在步骤S840中,所谓最大长度的组合是指在译码 过程中,根据组合代码中的最大位长度来进行分割与译码。如 图3与图4所示,因查找表215中的代码的最大位长度为3位,因 此图4中是以每3个位为单位来分割数据位流以及进行译码。
然后,依序查找上述位的分割组合对应于查找表中基本符 号和组合符号的一者(步骤S850),以及组合上述分割组合所对 应的基本符号和组合符号以产生数据位流对应的 一符号串流 (步骤S860),其译码方式则如图4所示。其中,值得注意的是, N为正整数且大于或等于基本代码中最长的基本代码的位数。
关于查找表的组成以及译码方法的操作细节请参照上述第 一 实 施例与第二实施例的i兌明,在此不再赘述。
综上所述,本发明因利用位长度限制来挑选组合代码以形 成查找表,且在查找表中保留基本代码,因此在进行可变长度译码时可同时译码多个符号或单一个符号,相较于现有技术,
本发明可大幅降低所需的译码时间。此外,本发明的查找表的形成方式相当便利,不需经由复杂的运算即可形成,所需的存储器空间也较小。因此,使用者可以更快的设定出符合存储器空间以及译码速度需求的查找表。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
附图中符号的简单说明如下
200:译码装置
201: 译码单元
210:可变长度译码器
215、500查找表
220:反量化模块
230:反离散余弦转换模块
Tl T7、 T61 T66:周期
BS:数据位流
S710 S730、 S810 S860:译码步骤。
权利要求
1. 一种用以译码数据位流的译码装置,其特征在于,该译码装置包括一输入端口,用以接收一数据位流,该数据位流包括多个代码;一译码单元,具有一查找表,并根据该查找表译码所接收的该数据位流以产生对应的符号串流,该查找表包括多个基本代码以及多个组合代码,所述基本代码对应于多个基本符号,所述组合代码对应于多个组合符号,其中所述组合代码包括两个以上的所述基本代码组成的长度小于等于N位的所有组合,N为预定的正整数;以及一输出端口,用以输出该符号串流。
2. 根据权利要求l所述的用以译码数据位流的译码装置, 其特征在于,该译码单元还根据所述代码的顺序输出对应的所 述基本符号或所述组合符号以组成该符号串流。
3. 根据权利要求l所述的用以i奪码数据位流的译码装置, 其特征在于,N大于或等于所述基本代码中最长的基本代码的 位数。
4. 根据权利要求l所述的用以译码数据位流的译码装置, 其特征在于,若该基本符号为二进制数字,则所述基本符号的 个数为2;若该基本符号为十进位数字,则所述基本符号的个数 为10;若该基本符号为英文字母,则所述基本符号的个数为26。
5. 根据权利要求l所述的用以译码数据位流的译码装置, 其特征在于,所述基本符号为数字、字母、符号或位串。
6. 根据权利要求l所述的用以译码数据位流的译码装置, 其特征在于,所述基本代码与所述组合代码的形式为二进制。
7. 根据权利要求l所述的用以译码数据位流的译码装置, 其特征在于,该i奪码单元包括一可变长度译码器,根据该查找表译码所接收的该数据位 流以产生对应的符号串流,其中该数据位流是可变长度编码格 式。
8. —种用以译码数据位流的译码方法,其特征在于,该译 码方法包括接收一包括多个代码的数据位流;根据 一 查找表译码该数据位流以产生 一 符号位流,该符号 位流包括对应于所述代码的多个符号;以及 專餘出该才寻号4立流;其中该查找表包括多个基本代码以及多个组合代码,所述 基本代码对应于多个基本符号,所述组合代码对应于多个组合符号,所述组合代码包括至少两个基本代码组成的长度小于等 于N的所有组合,N为预定的正整数。
9. 根据权利要求8所述的用以译码数据位流的译码方法, 其特征在于,所述符号位流依照对应的所述代码的顺序输出。
10. 根据权利要求8所述的用以译码数据位流的译码方法, 其特征在于,还包括分割该数据位流使得组成该数据位流的所 述代码数目为最小。
11. 根据权利要求8所述的用以译码数据位流的译码方法, 其特征在于,N大于或等于所述基本代码中最长的基本代码的 位数。
12. 根据权利要求8所述的用以译码数据位流的译码方法, 其特征在于,若该基本符号为二进制数字,则所述基本代码的 个数为2;若该基本符号为十进位数字,则所述基本代码的个数 为10;若该基本符号为英文字母,则所述基本代码的个数为26。
13. 根据权利要求8所述的用以译码数据位流的译码方法, 其特征在于,该数据位流是可变长度编码格式。
14. 一种用以译码数据位流的译码方法,其特征在于,该 译码方法包括根据多个基本代码组成产生长度小于或等于N的多个组合 代码,N为预定的正整数;根据所述基本代码和所述组合代码产生对应的多个基本符 号和多个组合符号;接收一包括多个位的数据位流;根据所述基本代码和所述组合代码分割该数据位流的所述 位为最大长度的组合;依序查找所述位的分割组合对应于所述基本符号和所述组 合符号的一者;以及组合所述分割组合对应的所述基本符号和所述组合符号以 产生该数据位流对应的一符号串流。
15. 根据权利要求14所述的用以-泽码数据位流的译码方法, 其特征在于,N大于或等于所述基本代码中最长的基本代码的 位数。
16. 根据权利要求14所述的用以译码数据位流的译码方法, 其特征在于,若该基本符号为二进制数字,则所述基本代码的 个数为2;若该基本符号为十进位数字,则所述基本代码的个数 为10;若该基本符号为英文字母,则所述基本代码的个数为26。
17. 根据权利要求14所述的用以译码数据位流的译码方法, 其特征在于,该数据位流是可变长度编码格式。
全文摘要
一种用以译码数据位流的译码方法与装置,其中译码装置具有一查找表,并根据该查找表译码所接收的数据位流以产生对应的符号串流,查找表包括多个对应于基本符号的基本代码以及多个对应于组合符号的组合代码,其中上述组合代码包括两个以上的所述基本代码合并后长度小于等于N位的所有组合,N为预定的正整数。本发明不仅可节省查找表所需的存储空间,更可有效降低译码所需的时间。
文档编号H04N7/26GK101483778SQ20091000309
公开日2009年7月15日 申请日期2009年1月19日 优先权日2009年1月19日
发明者宋廉祥 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1