用于译码可变长度编码的装置和方法

文档序号:7504869阅读:277来源:国知局
专利名称:用于译码可变长度编码的装置和方法
技术领域
本发明涉及一种译码装置,更具体地涉及一种用于译码可变长度编码数据的装置和方法。
背景技术
1994年4月公布了运动图像专家组(MPEG)2标准,它是一种压缩和解压缩视频的国际标准。
压缩和解压缩视频的方法已经越来越多地被用在诸如数字图像数据的传输和数字存储装置的各种应用中。图像压缩算法典型地使用可变长度编码器来执行图像数据的无损压缩。
可变长度编码器将较短位分配给具有相对高发生概率的数据标记,并将较长位分配给具有相对低发生概率的数据标记。因此,当编码一给定的数据位流时,可变长度编码器产生一个比固定长度编码器短的数据位流。
可变长度译码器从输入的可变长度编码数据位流中分离对应于单个标记的可变长度编码,并使用一标记表从所分离的可变长度编码中获取一固定长度编码。如果在可变长度编码器中使用的可变长度编码表可以由用户设置,则可变长度译码器分离可变长度编码,同时基于在可变长度编码器中使用的可变长度编码表,从一输入数据位流中读取固定长度位。
从输入数据位流中逐个分离位并对每个位执行树搜索算法的方法,是一种基本的可变长度译码方法。就MPEG位流而言,典型的最大编码长度是16位。对于16位的编码长度,需要执行16次树搜索来获取一个编码值。在另一种方法中,从输入数据位流的两组中分离位,并对每两位组执行树搜索算法。在此方法中,需要执行8次树搜索来获取给定16位编码长度的编码值。
随着从数据位流中分离的位数的增加,译码速度也增加,但是译码器的结构变得越来越复杂。因此,需要适当地平衡译码速度和所需译码器的复杂度。
为此,需要存在一种可以同时处理多个编码的可变长度译码器。

发明内容
本发明提供一种用于译码可变长度编码的装置,其中从输入数据位流中分离并译码L位。根据输入数据位流的编码值的特性选择性地使用预译码方法。
本发明提供一种译码可变长度编码的方法,其中从输入数据位流中分离并译码L位。根据输入数据位流的编码值的特性选择性地使用预译码方法。
根据本发明的一个实施例,提供了一种用于译码可变长度编码的装置,该装置包括预译码单元、移位器、第一到第M个查找表地址寄存器、选择器、存储器控制器、存储器和存储器搜索器。所述预译码单元接收数据位流并产生第一选择信号或第二选择信号,用于根据该数据位流的编码值从第一到第M个查找表地址寄存器组中选择一个查找表地址寄存器,其中M是一个自然数。所述移位器响应第一选择信号和第二选择信号以及预定的连续节点信号中的一个信号,将所述数据位流移动预定位数。第一到第M个查找表地址寄存器中的每一个寄存器,都包括指定存储在存储器中的K位LOC表值的LOC(局部编码)地址,其中K为一个自然数。所述选择器选择第一到第M个查找表地址寄存器的一个输出,并响应第一选择信号和第二选择信号中的一个而输出所选择的寄存器的输出。所述存储器控制器接收所述选择器的输出,响应所述预定的连续节点信号,产生用于选择LOC表值和对应于该LOC表值的终值的第三选择信号,或响应预定的标记地址信号,产生用于选择存储在存储器中的预定的固定长度编码的第四选择信号,其中所述LOC表值和终值存储在存储器中,并且所述终值被用于获取预定的标记地址。所述存储器存储有LOC表值、终值和固定长度编码,响应所述第三选择信号输出LOC表值和终值,并且响应所述第四选择编码输出固定长度编码。所述存储器搜索器接收从所述存储器输出的LOC表值和终值以及所述数据位流的L位,使用存储在其中的LOC信息表确定该数据位流的L位是指定终端节点还是连续节点,根据确定的结果产生连续的节点信号或标记地址信号,接收从所述存储器输出的固定长度编码,并输出该固定长度编码,其中L为一个自然数。
所述预译码单元包括第一预译码器和第二预译码器。第一预译码器接收数据位流,并且当在该数据位流的一组最高有效位(MSB)中存在连续的0或1时,产生第一选择信号,用于根据连续0或1的数目从第一到第M个查找表地址寄存器组中选择查找表地址寄存器。第二预译码器接收数据位流并产生第二选择信号,用于使用所述数据位流的MSB中的N位从第一到第M个查找表地址寄存器中选择查找表地址寄存器,其中N为一个自然数。
所述移位器响应连续节点信号对所述数据位流移动3位。
所述存储器控制器包括偏移寄存器、加法器、LOC地址寄存器和标记地址寄存器。偏移寄存器接收所述选择器的输出,并存储直到从该选择器接收下一个输出。加法器通过相加偏移寄存器的输出与预定的下一个LOC地址,来产生用于从存储在存储器中的LOC表中选择值的第三选择信号。LOC地址寄存器响应连续节点信号产生预定的下一个LOC地址。标记地址寄存器响应标记地址寄存器产生用于选择固定长度编码的第四选择信号。
下一个LOC地址是当前LOC地址与当前LOC到当前节点中的非终端节点的数目之和。
标记地址是对应于当前LOC表值的终值与当前节点之前的当前LOC中的终端节点的数目之和。
存储在存储器搜索器中的LOC信息表,包括指示一个由可变长度编码指定的节点是终端节点、连续节点还是无效节点的节点类型,每个节点类型包括N*2L个LOC信息位,并且使用四种格式A、B、C和D表示每一个节点类型的LOC信息位。每种格式包括N位。
在存储在存储器搜索器中的LOC信息表中,当可变长度编码是0,1,00,01,10或11时,由可变长度编码指定的节点类型是终端节点,并且当可变长度编码是000到111中的一个时,由可变长度编码指定的节点类型是终端节点、连续节点和无效节点之一。这里,在N为2且L为3的情况下,当可变长度编码为0时,LOC信息位的高8位表示为ABBB。当可变长度编码为1时,LOC信息位的低8位表示为ABBB。当可变长度编码是00时,LOC信息位的高4位表示为AB。当可变长度编码是01时,LOC信息位从高第5位到高第8位表示为AB。当可变长度编码是10时,LOC信息位从高第9位到高第12位表示为AB。当可变长度编码是11时,LOC信息位从高第13位到高第16位表示为AB。当可变长度编码是000到111中的一个时,对于由可变长度编码指定的终端节点的LOC信息位表示为A,由可变长度编码指定的连续节点的LOC信息位表示为C,并且由可变长度编码指定的无效节点的LOC信息位表示为D。
在存储在存储器搜索器中的LOC信息表中,当可变长度编码是0或1时,由可变长度编码指定的节点类型是终端节点,并且当可变长度编码是00到11中的一个时,由可变长度编码指定的节点类型是终端节点、连续接点和无效节点之一。这里,在N为2且L为2的情况下,当可变长度编码为0时,LOC信息位中的高4位表示为AB。当可变长度编码为1时,LOC信息位中的低4位表示为AB。当可变长度编码是00到11中的一个时,对于由可变长度编码指定的终端节点的LOC信息位表示为A,由可变长度编码指定的连续节点的LOC信息位表示为C,并且由可变长度编码指定的无效节点的LOC信息位表示为D。
每一个存储在存储器中的LOC表值包括对应于由LOC信息表中当前LOC的每一可变长度编码指定的节点类型的LOC信息位。
根据本发明的另一方面,提供了一种使用可变长度编码译码装置译码可变长度编码的方法,所述译码装置包括第一到第M个查找表地址寄存器,每个寄存器包括一个预定的LOC地址;存储有LOC表的存储器,其包括对应于每个LOC地址的K位LOC表值和对应于每个LOC地址的预定终值,以及固定长度编码;和一个存储LOC信息表的存储器搜索器,所述LOC信息表包括译码可变长度编码所参考的信息,其中M是一个自然数,K也是一个自然数。所述方法包括(a)接收数据位流,并根据所述数据位流的编码值,产生第一选择信号和第二选择信号中的一个信号,用于从第一到第M个查找表地址寄存器组中选择一个查找表地址寄存器;(b)响应第一选择信号和第二选择信号中的一个信号,选择第一到第M个查找表地址寄存器的一个输出;(c)通过相加在(b)中选择的输出和预定的下一个LOC地址,产生第三选择信号,用于从存储在存储器中的LOC表中,选择LOC表值和对应于该LOC表值的终值,所述终值用于获取预定的标记地址;(d)响应第三选择信号从所述LOC表中选择LOC表值和终值;(e)根据从存储器输出的所选择的LOC表值和所选择的终值,使用LOC信息表确定该数据位流的L位是指定终端节点还是一连续节点,以产生连续节点信号或标记地址信号,其中L为一个自然数;(f)响应连续节点信号,产生用于选择LOC表值的预定的下一个LOC地址;(g)响应标记地址信号,产生用于选择固定长度编码的第四选择信号;和(h)响应第四选择信号,从存储器中选择固定长度编码并输出该固定长度编码。
接收数据位流,并产生用于根据该数据位流的编码值从第一到第M个查找表地址寄存器组中选择查找表地址寄存器的第一选择信号和第二选择信号中的一个信号包括步骤(a1)当在所述数据位流的一组最高有效位(MSB)中存在连续的0或1时,根据该连续0或1的数目产生用于从第一到第M个查找表地址寄存器组中选择查找表地址寄存器的第一选择信号;(a2)使用所述数据位流的MSB中的N位,产生用于从第一到第M个查找表地址寄存器组中,选择查找表地址寄存器的第二选择信号,其中N为一自然数;和(a3)响应第一选择信号和第二选择信号和连续节点信号中的一个信号,对所述数据位流移动一预定的位数。
下一个LOC地址是当前LOC地址与当前LOC到当前节点中的非终端节点的数目之和。
标记地址是对应于当前LOC表值的终值与当前节点之前的当前LOC的终端节点的数目之和。
存储在存储器搜索器中的LOC信息表,包括指示一个由可变长度编码指定的节点是终端节点、连续节点还是无效节点的节点类型,每个节点类型包括N*2L个LOC信息位,并且使用四种格式A、B、C和D表示每一个节点类型的LOC信息位。每种格式包括N位。
每个存储在存储器中的LOC表值,包括对应于由LOC信息表中当前LOC的每一可变长度编码指定的节点类型的LOC信息位。


通过参考附图对本发明的优选实施例的详细描述,本发明的上述及其他特征和优点将变得更为明显,其中图1是根据本发明的一个实施例用于译码可变长度编码的装置的框图;图2示出了存储在图1所示的存储器搜索器中的LOC信息表;图3是表示标记和可变长度编码的表;图4是表示根据本发明的一个实施例从一可变长度编码中获取一个标记的过程的示意图;图5是表示存储在图1所示的存储器中的LOC表值和终值的表;图6是表示标记和固定长度编码的表;图7是根据本发明的一个实施例的译码可变长度编码的方法的流程图;以及图8是图7所示的步骤710的流程图。
具体实施例方式
以下,将参考附图对本发明的优选实施例进行详细的说明。在附图中,相同的参考标记指示相同的部件。
图1是根据本发明的一个实施例用于译码可变长度编码的装置的框图。参考图1,用于译码可变长度编码的装置100包括预译码单元107,移位器130,第一到第M个查找表地址寄存器140,其中M是一个自然数,选择器150,存储器控制装置153,存储器165和存储器搜索器170。
预译码单元107接收数据位流DSTREAM,并根据该数据位流DSTREAM的编码值而产生第一选择信号SEL1或第二选择信号SEL2,用于从第一到第M个查找表地址寄存器140组中选择一个查找表地址寄存器。该预译码单元107包括第一预译码器110和第二预译码器120。
第一预译码器110接收数据位流DSTREAM,并且当在该数据位流DSTREAM的一组最高有效位(MSB)中存在连续的0或1时,产生第一选择信号SEL1,用于根据连续0或1的数目从第一到第M个查找表地址寄存器140组中选择查找表地址寄存器。第二预译码器120接收数据位流DSTREAM,并产生第二选择信号SEL2,用于使用所述数据位流DSTREAM的最高有效位MSB中的N位(其中N为一个自然数),从第一到第M个查找表地址寄存器140中选择查找表地址寄存器。
移位器130响应第一选择信号SEL1或第二选择信号SEL2及连续节点信号NCONS,将数据位流DSTREAM移动一预定位数。具体地,移位器130响应连续节点信号NCONS,将数据位流DSTREAM移动L位,其中L为一个自然数。这里,L可以是3。
第一到第M个查找表地址寄存器140分别具有K位的LOC地址,该LOC地址指定存储在存储器165中的LOC表值LOCTV,其中K为一个自然数。
选择器150选择第一到第M个查找表地址寄存器140的一个输出,并响应第一选择信号SEL1或第二选择信号SEL2,并输出所选择的输出。选择器150可以是一个多路转换器。
存储器控制装置153接收选择器150的输出,并响应连续节点信号NCONS,产生用于选择LOC表值LOCTV和终值TERMV的第三选择信号SEL3,或者响应预定标记地址信号SYMADDS,产生用于选择预定的固定长度编码SFLC的第四选择信号。所述LOC表值LOCTV、终值TERMV和预定的固定长度编码SFLC都存储在存储器165中。
更具体地,存储器控制装置153包括偏移寄存器155、加法器160、LOC地址寄存器175和标记地址寄存器180。
偏移寄存器155接收选择器150的输出。选择器150的输出存储在偏移寄存器155中,直到从选择器150接收下一个输出。
加法器160将偏移寄存器155的输出与预定的下一个LOC地址NLOCADD相加,以产生用于选择LOC表值LOCTV和终值TERMV的第三选择信号SEL3,所述LOC表值和终值TERMV都存储在存储器165中。
LOC地址寄存器175响应连续节点信号NCONS,而产生用于选择LOC表值LOCTV的下一个LOC地址NLOCADD。下一个LOC地址NLOCADD是当前LOC地址与当前LOC到当前节点中的非终端节点的数目之和。
标记地址寄存器180响应标记地址信号SYMADDS,而产生用于获取固定长度编码SFLC的第四选择信号SEL4。标记地址是对应于当前LOC表值LOCTV的终值TERMV与当前节点之前的当前LOC中的终端节点的数目之和。
存储器165存储LOC表值LOCTV、预定终值TERMV和固定长度编码SFLC。存储器165响应第三选择信号SEL3,而输出特定的LOC表值LOCTV和特定的终值TERMV,或者响应第四选择信号SEL4,而输出特定的固定长度编码SFLC。每个存储在存储器165中的LOC表值LOCTV都包括LOC信息位,所述LOC信息位对应于由LOC信息表中当前LOC的每个可变长度编码指定的节点类型,如图2中所示的表200。
存储器搜索器170从存储器165接收特定的LOC表值LOCTV和特定终值TERMV以及数据位流DSTREAM的L位。其后,存储器搜索器170使用存储在其中的LOC信息表200而确定数据位流DSTREAM的L位是用于终端节点还是连续节点,并产生连续节点信号NCONS或标记地址信号SYMADDS。这里,L是一个自然数并且可以是3。此外,存储器搜索器170从存储器165接收固定长度编码SFLC并将其输出。
LOC信息表200存储在存储器搜索器170中,其包括指示一个由可变长度编码指定的节点是终端节点、连续节点还是无效节点的节点类型。每个节点类型包括N*2L个LOC信息位,并且使用四种格式A、B、C和D表示每一节点类型的LOC信息位。每种格式包括N位。
在存储在存储器搜索器170中的LOC信息表200中,当可变长度编码是0,1,00,01,10或11时,由可变长度编码指定的节点类型是终端节点。当可变长度编码是000到111中的一个时,由可变长度编码指定的节点类型可能是终端节点、连续接点或无效节点。例如,其中N为2且L为3,当可变长度编码为0时,LOC信息位的高8位表示为ABBB。当可变长度编码为1时,LOC信息位的低8位表示为ABBB。当可变长度编码是00时,LOC信息位的高4位表示为AB。当可变长度编码是01时,LOC信息位从高第5位到高第8位表示为AB。当可变长度编码是10时,LOC信息位从高第9位到高第12位表示为AB。当可变长度编码是11时,LOC信息位从高第13位到高第16位表示为AB。在可变长度编码是000到111之一的情况,当可变长度编码指定终端节点时,LOC信息位表示为A。当可变长度编码指定连续节点时,LOC信息位表示为C。当可变长度编码指定无效节点时,LOC信息位表示为D。
在存储在存储器搜索器170中的LOC信息表的另一个实例中,当可变长度编码是0或1时,由可变长度编码指定的节点类型是终端节点。当可变长度编码是00到11中的一个时,由可变长度编码指定的节点类型可能是终端节点、连续节点或无效节点。
根据LOC信息表,其中例如N为2且L为2的情况下,当可变长度编码为0时,LOC信息位中的高4位表示为AB。当可变长度编码为1时,LOC信息位中的低4位表示为AB。在可变长度编码是00到11中的一个并且可变长度编码指定终端节点时,LOC信息位表示为A。当可变长度编码指定连续节点时,LOC信息位表示为C,并且当可变长度编码指定无效节点时,LOC信息位表示为D。
图2示出了存储在图1所示的存储器搜索器170中的LOC信息表200。图3是表示标记和可变长度编码的表。图4是表示从可变长度编码中获取一个标记的过程的概念图。图5是表示存储在图1所示的存储器165中的LOC表值和终值的表。图6是表示标记和固定长度编码的表。
以下,将参考图1到图6来说明根据本发明的一个实施例的用于译码可变长度编码的装置100的操作。
数据位流DSTREAM存储在数据位流存储装置105中。预译码单元107从数据位流存储装置105中接收数据位流DSTREAM。该数据位流DSTREAM是通过使用可变长度编码对数据编码而获得的数据信息。
将参考图3来详细描述数据位流DSTREAM。可以使用固定长度编码或可变长度编码对标记进行编码。当使用固定长度编码对标记编码时,所有的标记都分配有相同的位数。当使用可变长度编码对标记编码时,对不同的标记分配不同的位数。例如,在可变长度编码中,对具有相对高发生率的标记分配较少的位数,对具有相对低发生率的标记分配较多的位数,编码数据的位数与固定长度编码比起来可以减少。因此,可变长度编码比固定长度编码更广范地被用于编码。根据本发明的一个实施例,已使用可变长度编码对数据位流进行编码。
预译码单元107包括第一预译码器110和第二预译码器120。当在该数据位流DSTREAM的MSB中存在连续的0或1时,如与由MPEG标准和联合图象专家组(JPEG)标准定义的直流(DC)系数表中的一样,第一预译码器110产生第一选择信号SEL1,用于根据连续0或1的数目从第一到第M个查找表地址寄存器140组中选择一查找表地址寄存器。例如,当有两个连续的0或1存在于数据位流DSTREAM的MSB中时,第一选择信号SEL1选择第一个查找表地址寄存器LUTADD0。当有三个或四个连续的0或1存在于数据位流DSTREAM的MSB中时,第一选择信号SEL1选择第二个查找表地址寄存器LUTADD1。这样,根据数据位流DSTREAM的特性选择第一到第M个查找表地址寄存器140中的一个。
当由MPEG标准定义的交流(AC)系数表中不存在任何连续的0或1时,第二预译码器120使用所述数据位流DSTREAM的MSB中的几位产生第二选择信号SEL2,用于从第一到第M个查找表地址寄存器140组中选择查找表地址寄存器。例如,当使用MSB中的四位时,如果所述四位为0000,则第二选择信号SEL2选择第一个查找表地址寄存器LUTADD0,如果所述四位为0001,则第二选择信号SEL2选择第二个查找表地址寄存器LUTADD1,如果所述四位为0010,则第二选择信号SEL2选择第三个查找表地址寄存器LUTADD2。这样,根据数据位流DSTREAM的特性选择第一到第M个查找表地址寄存器140中的一个。
如上所述,通过分别提供第一预译码器110和第二预译码器120,待译码数据的大小根据数据位流DSTREAM的编码值特性而减少。因此,能量消耗减少,并且译码速度增加了。基于数据位流DSTREAM信息,所述数据位流DSTREAM被输入至第一预译码器110和第二预译码器120中的一个,所述数据位流DSTREAM信息已被检测并由用户输入至一控制寄存器(未示出)。
移位器130响应第一选择信号SEL1或第二选择信号SEL2,移动数据位流DSTREAM。如果第二预译码器120以四位编码值为单元确定数据位流DSTREAM的编码值特性,则移位器130响应第二选择信号SEL2,对所述数据位流DSTREAM移动四位。
移位器130响应连续节点信号NCONS,对所述数据位流DSTREAM移动L位。根据本发明的一个实施例,L可以为3。
第一到第M个查找表地址寄存器140中的每一个寄存器,都包括一指定存储在存储器165中的K位LOC表值LOCTV的LOC地址。
参考图5,LOC地址是地址段中示出的0和1。LOC表值LOCTV是内容段中示出的值。例如,LOC地址0对应于存储作为K位LOC表值LOCTV的16位11 10 11 01 11 10 11 11。LOC表值LOCTV存储在存储器165中,并且指定LOC表值LOCTV的LOC地址存储在第一到第M个查找表地址寄存器140的每一个寄存器中。
响应第一选择信号SEL1或第二选择信号SEL2,选择器150选择第一到第M个查找表地址寄存器140的一个输出。所述选择器150可以是一个多路转换器。
当数据位流DSTREAM被输入第二预译码器120时,产生第二选择信号SEL2,并且响应第二选择信号SEL2,选择存储在第一到第M个查找表地址寄存器140中的一个LOC地址。响应第二选择信号SEL2选择的LOC地址被输入至存储器控制器153。存储器控制器153选择对应于输入的LOC地址的LOC表值LOCTV。
在根据其编码特性对数据位流DSTREAM预译码并选择LOC地址后,使用树搜索方法对所述数据位流DSTREAM进行译码。基于LOC执行树搜索方法。译码所述数据位流DSTREAM的操作将参考图4详细说明。
LOC是一组连接到单个节点的子节点。节点是作为译码操作结果输出的一个数据标记。节点包括终端节点和连续接点。终端节点是最后的数据标记,而连续节点是通向终端节点的中间节点。在图4中,阴影圆圈表示终端节点,空白圆圈表示连续接点。
根据输入数据位流DSTREAM的编码值特性,执行预译码并选择一LOC地址。这里,数据位流DSTREAM的编码值特性可以基于该数据位流DSTREAM的4位或5位来确定。然而,数据位流DSTREAM的译码是以L位为单元进行的。为了举例及清楚地说明,L为3,也就是数据位流DSTREAM是以3位为单元译码的。
在译码过程中,如图1所示用于译码一可变长度编码的装置100以3位为单元接收数据位流DSTREAM,并使用图2所示的LOC信息表200确定每3位数据位流DSTREAM是一终端节点还是一连续接点。
图2所示的LOC信息表200包括指示由可变长度编码指定的一节点是终端节点、连续节点还是无效节点的节点类型和识别每一节点类型的LOC信息位。根据实例,可变长度编码是每3位数据位流DSTREAM的编码值。在图2中,在每一节点类型段中的数字对应于3位数据位流DSTREAM。
每一节点类型包括N*2L个LOC信息位。对于每一节点类型的LOC信息位可以使用四种格式A、B、C和D表示,其中每种格式包括N位。
在图2所示的LOC信息表200中,LOC信息位使用四种格式A、B、C和D表示,每种格式包括2位。例如,格式A表示为11,格式B表示为10,格式C表示为01,并且格式D表示为00。这里,N为2。然而,N并不限制为2。在以下的描述中,使用11,10,01和00来代替A、B、C和D,因此,根据实例,N=2且L=3。所以,每一节点类型具有2*23=16个LOC信息位。
当3位数据位流DSTREAM的MSB为0,并且存储在存储器165中的LOC表值与LOC信息表200中的LOC信息位相同时,3位数据位流DSTREAM的MSB0是终端节点。
参考图2所示的LOC信息表200,当3位数据位流DSTREAM包括0、1、00、01、10或11时,由3位数据位流DSTREAM指定的节点类型是一终端节点。当3位数据位流DSTREAM是000到111中的一个时,根据LOC信息位由3位数据位流DSTREAM指定的节点类型可以是终端节点、连续节点或无效节点。每一终端节点、连续节点和无效节点都具有16个LOC信息位。
当3位数据位流DSTREAM的MSB是0并指定一终端节点时,<0>终端节点具有高8位LOC信息位11 10 10 10。当3位数据位流DSTREAM的MSB是1并且指定一终端节点时,<1>终端节点具有低8位LOC信息位11 10 1010。当3位数据位流DSTREAM的高2位是00并指定一终端节点时,<00>终端节点具有高4位LOC信息位11 10。当3位数据位流DSTREAM的高2位是01并且指定一终端节点时,<01>终端节点在LOC信息位的第5到第8位分别具有11 10。当3位数据位流DSTREAM的高2位是10并且指定一终端节点时,<10>终端节点在LOC信息位的第9到第12位分别具有11 10。当3位数据位流DSTREAM的高2位是11并指定一终端节点时,<11>终端节点在LOC信息位的第13到第16位分别具有11 10。
当3位数据位流DSTREAM是000到111中的一个并指定一终端节点时,该终端节点在LOC信息位中具有11。当3位数据位流DSTREAM是000到111中的一个并指定一连续节点时,连续节点在LOC信息位中具有01。当3位数据位流DSTREAM是000到111中的一个并指定一无效节点时,终端节点在LOC信息位中具有00。
使用图4所示的概念图和图2所示的LOC信息表200,来获取存储在存储器165中的LOC表值LOCTV。
参考图4,包括00的一输入数据位流DSTREAM指定一终端节点“c”。可以从图2所示的LOC信息表200中推出,终端节点“c”的LOC信息位是11 10。此值11 10记录在指示图5所示的LOC表中的一LOC表值LOCTV的内容段中。输入数据位流DSTREAM010指定一终端节点“f”。可以从图2所示的LOC信息表200中推出,终端节点“f”的LOC信息位是11。此值11记录在LOC表的内容段中的11 10之后。输入数据位流DSTREAM011指定一连续节点。可以从图2所示的LOC信息表200中推出,连续节点的LOC信息位是01。此值01记录在LOC表的内容段中的11 10 11之后。包括10的输入数据位流DSTREAM指定一终端节点“a”。可以从图2所示的LOC信息表200中推出,终端节点“a”的LOC信息位是11 10。此值11 10记录在LOC表的内容段中的11 10 11 01之后。输入数据位流DSTREAM110指定一终端节点“g”。可以从图2所示的LOC信息表200中推出,终端节点“g”的LOC信息位是11。此值11记录在LOC表的内容段中的11 10 11 01 11 10之后。输入数据位流DSTREAM111指定一终端节点“b”。可以从图2所示的LOC信息表200中推出,终端节点“b”的LOC信息位是11。此值11记录在LOC表的内容段中的11 10 11 01 11 10 11之后。然后,完成对应于LOC0的LOC表值。LOC地址0对应于LOC0,并且LOC地址1对应于LOC1。
可以获取对于从LOC0的连续节点到LOC1的分支中示出的各个可变长度编码0和1的LOC表值LOCTV。
在图4中,参考符号R表示一根节点。分支从根节点R连接到LOC0,每一个分支具有以可变长度编码表示的输入数据位流DSTREAM。图3示出了可变长度编码。
当可变长度编码是4位长度时,第一个三位指示一连续节点,最后一位指示连接到该连续节点的终端节点。
图3所示的可变长度编码是示例,并不是作为限制。例如,指定标记“a”的可变长度编码可以是一个不同的编码节点,图3中未示出。如果图3所示的可变长度编码改变,则图4所示的初步设计图也会改变。
图5示出了包括存储在存储器165中的LOC表值LOCTV的LOC表。地址段中写入的每一数字表示存储在第一到第M个查找表地址寄存器140中的一个寄存器中的LOC地址。
输入数据位流DSTREAM可以具有各种编码值。如果输入数据位流DSTREAM的3位不是图4所示的00,010,011,10,110和111中的一个时,输入数据位流DSTREAM包含错误并使用中断来处理。
在下面的例子中,数据位流DSTREAM给定为011000...。
如果选择器150响应第一选择信号SEL1或第二选择信号SEL2,输出一LOC地址0,则该LOC地址值0被存储在偏移寄存器155中。
从存储在存储器165中的LOC表中,选择对应于LOC地址0的LOC表值LOCTV。所选择的LOC表值LOCTV是11 10 11 01 11 10 11 11,并且前3位数据位流DSTREAM是011。参考LOC表值LOCTV,当其是00、010、011、10、110和111中的任一个时,输入数据位流DSTREAM是无效的。这里,由于前3位数据位流DSTREAM是011,所以其是有效的。如图4所示,数据位流DSTREAM011指定一连续节点,因此存储器搜索器170产生连续节点信号NCONS。
存储器控制器153的LOC地址寄存器175,接收连续节点信号NCONS并产生下一LOC地址NLOCADD。下一LOC地址NLOCADD是当前LOC地址与当前LOC到当前节点中的非终端节点的数目之和。这里,当前LOC地址是0,并且当前LOC到当前节点中的非终端节点的数目是1。当前节点<011>是一连续节点。因此,下一LOC地址NLOCADD是1。
移位器130响应连续节点信号NCONS,对输入数据位流DSTREAM移动3位。因此,数据位流DSTREAM是000。加法器160将存储在偏移寄存器155中的值0和LOC地址1相加,以便输出1作为第三选择信号SEL3。
最初存储在偏移寄存器155中的LOC地址0,被保存直到被译码为标记值的数据位流DSTREAM指定一终端节点。如果输入数据位流DSTREAM被译码为一标记值,则由第一预译码器110和第二预译码器120选择一新的LOC地址,并存储在偏移寄存器155中。
响应第三选择信号SEL3,从存储在存储器165中的LOC表中,选择一对应于LOC地址1的LOC表值LOCTV。LOC表值LOCTV被应用到存储器搜索器170中。此外,响应第三选择信号SEL3,从存储在存储器165中的LOC表中选择一终值TERMV。
存储器搜索器170接收从存储器165输出的LOC表值LOCTV和终值TERMV,以及3位输入数据位流DSTREAM。LOC表值LOCTV是11 10 1010 11 10 10 10,并且3位输入数据位流DSTREAM是000。参考LOC表值LOCTV,当其为0或1时,输入数据位流DSTREAM有效。这里,3位输入数据位流DSTREAM 000的第一位0是有效输入值。正如图4所见,有效数据位流0指定一终端节点。可以从图5中推断出终值TERMV是5。终值TERMV存储在存储器165中。终值TERMV是对应于LOC地址1的当前LOC1之前的终端节点数。因此,终值TERMV是5。当LOC地址是0时,终值TERMV是0。
存储器搜索器170接收从存储器165输出的终值TERMV,选择存储在其中的标记地址,并产生对应于所选择的标记地址的标记地址信号SYMADDS。
标记地址是对应于当前LOC表值LOCTV的终值TERMV与当前节点之前在当前LOC中的终端节点数之和。这里,对应于当前LOC表值LOCTV的终值TERMV是5,并且在<0>当前节点之前的当前LOC1中的终端节点数是零。因此,标记地址是5。
图6表示标记地址、标记和固定长度编码。由于标记地址是5,则存储器搜索器170产生一标记地址信号SYMADDS以选择标记“e”。
标记地址寄存器180存储标记地址信号SYMADDS,并产生第四选择信号SEL4,用于选择一固定长度编码SFLC。
将第四选择信号SEL4应用到存储器165中,以便从存储器165中输出对应于标记“e”的固定长度编码SFLC。
存储器搜索器170接收并输出从存储器165输出的固定长度编码SFLC。
如上所述,根据本发明的一个实施例用于译码可变长度编码的装置100,可以对已使用3位为单元的可变长度编码进行编码的数据位流DSTREAM译码,从而增加译码速度。此外,通过使用第一预译码器110和第二预译码器120,用于译码的表的大小,可根据输入数据位流的编码值特性减小,从而减少能量损耗。
为了以3位为单元译码数据位流DSTREAM,需要预备具有图2的LOC信息表中所示结构的表。格式A、B、C和D用于表示图2中的LOC信息表中的LOC信息位,每一种格式以2位数字值表示。然而,用于格式A、B、C和D的数字值并不限制在2位的长度。
数据位流DSTREAM可以以2位为单元被译码。这里,如果格式A、B、C和D具有2位长度,即N为2,则有2*22=8个LOC信息位被用于每个节点类型。在这种情况下,图2中的LOC信息表可以如下改变。当可变长度编码为0或1时,由可变长度编码指定的节点类型为一终端节点。当可变长度编码为00到11中的一个时,由可变长度编码指定的节点类型为终端节点、连续接点或无效节点。当可变长度编码为0时,LOC信息位中的高4位表示为AB。当可变长度编码为1时,LOC信息位中的低4位表示为AB。在这种情况下,即可变长度编码为00到11中的一个的情况,当由可变长度编码指定的节点类型为终端节点时,LOC信息位表示为A;当由可变长度编码指定的节点类型为连续节点时,LOC信息位表示为C;并且当由可变长度编码指定的节点类型是无效节点时,LOC信息位表示为D。
图7是根据本发明的一个实施例用于译码可变长度编码的方法的流程图。图8是图7所示的步骤710的流程图。
参考图7,根据本发明的一个实施例用于译码可变长度编码的方法700,由一可变长度编码译码装置来执行,该译码装置包括第一到第M个查找表地址寄存器,其中M为一个自然数,每一个地址寄存器都包括预定的LOC地址。所述可变长度编码译码装置进一步包括存储LOC表的存储器,所述LOC表包含对应于每个LOC地址的K位LOC表值和对应于每个LOC地址的预定终值,其中K为一个自然数。所述可变长度编码译码装置包括存储LOC信息表的存储器搜索器,所述LOC信息表包含译码可变长度编码所参照的信息。在步骤710接收数据位流,产生用于根据该数据位流的编码值从第一到第M个查找表地址寄存器中选择一个查找表地址寄存器的第一选择信号或第二选择信号。
更具体地,在步骤810,当在该数据位流的MSB中存在连续的0或1时,产生第一选择信号,用于根据连续0或1的数目从第一到第M个查找表地址寄存器中选择查找表地址寄存器。在步骤820,使用所述数据位流的MSB中的N位,产生用于从第一到第M个查找表地址寄存器组中选择查找表地址寄存器的第二选择信号,其中N为一个自然数。在步骤830,响应第一选择信号或第二选择信号和一个连续节点信号,对所述数据位流移动预定位数。
在步骤720,响应所述第一选择信号或第二选择信号,选择第一到第M个查找表地址寄存器的一个输出。
在步骤730,通过将在步骤710选择的输出与下一个预定LOC地址相加,而产生第三选择信号,用于从存储在存储器中的LOC表中选择LOC表值和对应于该LOC表值的终值。所述终值用于获取预定的标记地址。所述下一个预定LOC地址是当前LOC地址与在当前LOC到当前节点中存在的非终端节点的数目之和。
在步骤740,响应第三选择信号,从LOC表中选择LOC表值和终值。
在步骤750,根据从存储器中输出的所选择的LOC表值和所选择的终值,使用LOC信息表确定所述数据位流的L位是指定终端节点还是连续接点,以便产生连续节点信号或标记地址信号。响应连续节点信号,将所述数据位流移动3位。
在步骤760,响应连续节点信号,产生用于在步骤730选择LOC表值的下一预定LOC地址。
在步骤770,响应标记地址信号,产生用于选择固定长度编码的第四选择信号。
在步骤780,响应所述第四选择信号,从存储器中选择固定长度编码,然后将其输出。
标记地址是对应于当前LOC表的终值与当前节点之前在当前LOC中的终端节点数之和。存储在存储器搜索器中的LOC信息表与由用于译码可变长度编码的装置100使用的LOC信息表相同,因此将省略对其的详细描述。存储在存储器中的LOC表值包括对应于节点类型的LOC信息位,其分别由LOC信息表中的当前LOC的可变长度编码指定。根据本发明的一个实施例,L可以为3。
图7和8所示的可变长度编码译码方法700对应于图1所示的可变长度编码译码装置100的操作。因此,将省略对可变长度编码译码方法700的详细描述。
如上所述,在根据本发明的用于译码可变长度编码的装置和方法中,以3位为单元译码输入的数据位流,从而增加译码速度。此外,通过根据输入数据位流的编码值的特性,预译码输入的数据位流,可以减小译码所使用的表的大小,从而降低能量损耗。
虽然已参照附图和说明书中的实施例对本发明进行了特别地表示和说明,但是所述优选实施例仅仅是说明性的,而不是限制。本领域的技术人员应当理解在不背离本发明的精神和范围的情况下可以对其形式及细节上作出各种修改。因此,本发明的范围将由所附的权利要求来限定。
权利要求
1.一种用于译码可变长度编码的装置,包括预译码单元,用于接收数据位流,并产生第一选择信号或第二选择信号,所述信号用于根据该数据位流的编码值选择查找表地址寄存器,其中M是一个自然数;移位器,用于响应第一选择信号和第二选择信号以及预定的连续节点信号中的一个信号,将所述数据位流移动预定的位数;第一到第M个查找表地址寄存器组,每一个查找表地址寄存器都包括指定存储在一存储器中的K位LOC表值的LOC地址,其中K为一个自然数;选择器,用于选择第一到第M个查找表地址寄存器的一个输出,并响应第一选择信号和第二选择信号中的一个信号而输出所选择的寄存器的输出;存储器控制器,用于接收所述选择器的输出,响应所述预定的连续节点信号,产生用于选择LOC表值和对应于该LOC表值的终值的第三选择信号,或响应预定的标记地址信号,产生用于选择存储在存储器中的预定固定长度编码的第四选择信号,其中所述LOC表值和终值都存储在存储器中,并且所述终值被用于获取预定的标记地址;存储器,用于存储LOC表值、终值和固定长度编码,响应所述第三选择信号,输出LOC表值和终值,并且响应所述第四选择信号,输出固定长度编码;以及存储器搜索器,用于接收从所述存储器输出的LOC表值和终值以及所述数据位流的L位,使用存储在其中的LOC信息表,确定该数据位流的L位是否指定终端节点还是连续节点,根据确定的结果,产生连续节点信号或标记地址信号,接收从所述存储器输出的固定长度编码,并输出该固定长度编码,其中L为一个自然数。
2.根据权利要求1所述的装置,其中所述预译码单元包括第一预译码器,用于接收数据位流,并且当在该数据位流的一组最高有效位中存在连续的0或1时,产生第一选择信号,用于根据连续0或1的数目从第一到第M个查找表地址寄存器中选择查找表地址寄存器;以及第二预译码器,用于接收数据位流,并产生第二选择信号,用于使用所述数据位流的MSB中的N位,从第一到第M个查找表地址寄存器组中选择查找表地址寄存器,其中N为一个自然数。
3.根据权利要求1所述的装置,其中所述移位器响应预定的连续节点信号,将所述数据位流移动3位。
4.根据权利要求1所述的装置,其中存储器控制器包括偏移寄存器,用于接收所选择的输出,并存储该选择的输出,直到从选择器中接收下一个选择的输出;加法器,通过相加偏移寄存器的输出与预定的下一个LOC地址,产生用于从存储在存储器中的LOC表中选择值的第三选择信号;LOC地址寄存器,响应连续节点信号,产生预定的下一个LOC地址;以及标记地址寄存器,用于响应标记地址信号,产生用于选择固定长度编码的第四选择信号。
5.根据权利要求4所述的装置,其中下一个LOC地址是当前LOC地址与当前LOC到当前节点中的非终端节点的数目之和。
6.根据权利要求1所述的装置,其中预定标记地址是对应于当前LOC表值的终值与当前节点之前的在当前LOC中的终端节点的数目之和。
7.根据权利要求1所述的装置,其中存储在存储器搜索器中的LOC信息表包括指示一个由可变长度编码指定的节点是终端节点、连续节点还是无效节点的节点类型,每个节点类型包括N*2L个LOC信息位,并且使用四种格式A、B、C和D表示每一节点类型的LOC信息位,每种格式包括N位。
8.根据权利要求7所述的装置,其中在存储于存储器搜索器中的LOC信息表中,当可变长度编码是0,1,00,01,10或11时,由可变长度编码指定的节点类型是终端类型;并且当可变长度编码是000到111中的一个时,由可变长度编码指定的节点类型是终端节点、连续接点和无效节点之一,以及其中在N为2且L为3的情况下,当可变长度编码为0时,LOC信息位的高8位表示为ABBB;当可变长度编码为1时,LOC信息位的低8位表示为ABBB;当可变长度编码是00时,LOC信息位的高4位表示为AB;当可变长度编码是01时,LOC信息位从高第5位到高第8位表示为AB;当可变长度编码是10时,LOC信息位从高第9位到高第12位表示为AB;当可变长度编码是11时,LOC信息位从高第13位到高第16位表示为AB;当可变长度编码是000到111中的一个时,由可变长度编码指定的终端节点的LOC信息位表示为A,由可变长度编码指定的连续节点的LOC信息位表示为C,并且由可变长度编码指定的无效节点的LOC信息位表示为D。
9.根据权利要求7所述的装置,其中在存储于存储器搜索器中的LOC信息表中,当可变长度编码是0或1时,由可变长度编码指定的节点类型是终端节点,并且当可变长度编码是00到11中的一个时,由可变长度编码指定的节点类型是终端节点、连续接点和无效节点之一,以及其中在N为2且L为2的情况下,当可变长度编码为0时,LOC信息位中的高4位表示为AB;当可变长度编码为1时,LOC信息位中的低4位表示为AB;当可变长度编码是00到11中的一个时,由可变长度编码指定的终端节点的LOC信息位表示为A,由可变长度编码指定的连续节点的LOC信息位表示为C,并且由可变长度编码指定的无效节点的LOC信息位表示为D。
10.根据权利要求1所述的装置,其中每一个存储在存储器中的LOC表值包括对应于由LOC信息表中当前LOC的每一可变长度编码指定的节点类型的LOC信息位。
11.根据权利要求1所述的装置,其中所述选择器是一个多路转换器。
12.一种使用可变长度编码译码装置译码可变长度编码的方法,所述译码装置包括一组第一到第M个查找表地址寄存器,每个查找表地址寄存器包括一预定的LOC地址,所述可变长度编码译码装置包括一存储有LOC表的存储器,其包括对应于每个LOC地址的K位LOC表值和对应于每个LOC地址的预定终值,以及固定长度编码,并且所述可变长度编码译码装置包括一个存储LOC信息表的存储器搜索器,所述LOC信息表包括用于译码可变长度编码所参考的信息,其中M是一个自然数,K也是一个自然数,所述方法包括步骤(a)接收数据位流,并产生第一选择信号和第二选择信号中的一个信号,用于根据所述数据位流的编码值,从第一到第M个查找表地址寄存器组中选择一个查找表地址寄存器;(b)响应第一选择信号和第二选择信号中的一个信号,选择第一到第M个查找表地址寄存器的一个输出;(c)通过将在步骤(b)中选择的输出与预定的下一个LOC地址相加,产生用于从存储在存储器中的LOC表中,选择一LOC表值和对应于该LOC表值的终值的第三选择信号,所述终值被用于获取一预定的标记地址;(d)响应第三选择信号,从LOC表中选择LOC表值和终值;(e)根据从存储器输出的所选择的LOC表值和所选择的终值,使用LOC信息表来确定该数据位流的L位是指定终端节点还是连续节点,以产生连续节点信号或标记地址信号,其中L为一个自然数;(f)响应连续节点信号,产生用于选择LOC表值的预定的下一个LOC地址;(g)响应标记地址信号,产生用于选择固定长度编码的第四选择信号;以及(h)响应该第四选择信号,从存储器中选择固定长度编码,并输出该固定长度编码。
13.根据权利要求12所述的方法,其中步骤(a)包括(a1)当在所述数据位流的一组最高有效位中存在连续的0或1时,产生第一选择信号,用于根据该连续0或1的数目,从第一到第M个查找表地址寄存器组中选择查找表地址寄存器;(a2)使用所述数据位流的MSB组中的N位来产生第二选择信号,用于从第一到第M个查找表地址寄存器组中选择查找表地址寄存器,其中N为一个自然数;以及(a3)响应第一选择信号和第二选择信号以及连续节点信号中的一个信号,将所述数据位流移动预定的位数。
14.根据权利要求12所述的方法,其中下一个LOC地址是当前LOC地址与当前LOC到当前节点中的非终端节点的数目之和。
15.根据权利要求12所述的方法,其中标记地址是对应于当前LOC表值的终值与当前节点之前的当前LOC中的终端节点的数目之和。
16.根据权利要求12所述的方法,其中在存储于存储器搜索器中的LOC信息表包括指示一个由可变长度编码指定的节点是终端节点、连续节点还是无效节点的节点类型,每个节点类型包括N*2L个LOC信息位,并且使用四种格式A、B、C和D表示每一节点类型的LOC信息位,每种格式包括N位。
17.根据权利要求16所述的方法,其中在存储于存储器搜索器中的LOC信息表中,当可变长度编码是0,1,00,01,10或11时,由可变长度编码指定的节点类型是终端类型;并且当可变长代码是000到111中的一个时,由可变长度编码指定的节点类型是终端节点、连续接点和无效节点之一,以及其中在N为2且L为3的情况下,当可变长度编码为0时,LOC信息位的高8位表示为ABBB;当可变长度编码为1时,LOC信息位的低8位表示为ABBB;当可变长度编码是00时,LOC信息位的高4位表示为AB;当可变长度编码是01时,LOC信息位从高第5位到高第8位表示为AB,当可变长度编码是10时,LOC信息位从高第9位到高第12位表示为AB,当可变长度编码是11时,LOC信息位从高第13位到高第16位表示为AB;并且当可变长度编码是000到111中的一个时,对于由可变长度编码指定的终端节点的LOC信息位表示为A,由可变长度编码指定的连续节点的LOC信息位表示为C,并且由可变长度编码指定的无效节点的LOC信息位表示为D。
18.根据权利要求16所述的方法,其中在存储于存储器搜索器中的LOC信息表中,当可变长度编码是0或1时,由可变长度编码指定的节点类型是终端节点,并且当可变长度编码是00到11中的一个时,由可变长度编码指定的节点类型是终端节点、连续接点和无效节点之一,以及其中在N为2且L为2的情况下,当可变长度编码为0时,LOC信息位中的高4位表示为AB;当可变长度编码为1时,LOC信息位中的低4位表示为AB;并且当可变长度编码是00到11中的一个时,对于由可变长度编码指定的终端节点的LOC信息位表示为A,由可变长度编码指定的连续节点的LOC信息位表示为C,并且由可变长度编码指定的无效节点的LOC信息位表示为D。
19.根据权利要求12所述的方法,其中每一个存储在存储器中的LOC表值包括对应于由LOC信息表中当前LOC的每一可变长度编码指定的节点类型的LOC信息位。
全文摘要
提供了一种用于译码可变长度编码的装置和方法,其中用户可以设置一可变长度译码表。所述装置包括预译码单元、移位器、第一到第M个查找表地址寄存器、选择器、存储器控制器、存储器和存储器搜索器。为了以3位为单元译码可变长度编码数据位流,可以根据所述可变长度编码表预备一个LOC信息表。该LOC信息表包括LOC信息位和节点类型。用于每一节点类型的LOC信息位使用四种格式A、B、C和D来表示,以表示在3位译码期间产生的分支的特性,格式A、B、C和D中的每一个都具有2位数字值。所述预译码单元包括第一预译码器和第二预译码器。根据输入数据位流的编码特性选择第一预译码器和第二预译码器中的一个。
文档编号H03M7/42GK1496127SQ0316026
公开日2004年5月12日 申请日期2003年8月3日 优先权日2002年8月3日
发明者朴泰焕, 金泰善 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1