专利名称:编码可变长度代码及分段其可变长度码字的装置的制作方法
技术领域:
本发明涉及编码由可变长度码字及它们的长度表示的可变长度代码(VLC)以及为了传输它们而将达些VLC的可变长度码字分成固定长度的段的装置;更具体地,涉及能够处理编码格式的VLC的长度部分的VLC编码与分段装置。
可变长度编码是无损失数据压缩中常用的技术。这一技术用于根据数据的统计出现率将固定长度数据转换成可变长度码字,各可变长度码字的长度是这样选定的,用较短的码字来表示较频繁出现的数据而较长的码字表示较不频繁出现的数据。通过将可变长度码字适当地分配给所有可能的源数据的字库,可变长度码字的平均字长成为短于源数据的平均字长。借此有可能达到数据压缩。
通常,VLC的编码进程由可变长度的码字与它们的长度表示,而VLC的可变长度码字的分段进程则可用一张查找表来实现,作为查找表的内容存储了可变长度码字与它们的长度数据,基于VLC编码与分段装置的一种查找表公开在诸如Shaw-Minlei等人的“数字HDTV应用的熵编码系统”,IEEE视频技术的电路与系统学报,1,NO.1,147-154页(1991年3月)。VLC编码与分段装置的某些主要电路部件中包括一个PLA(可编程逻辑阵列)及三个桶形移位器。该PLA为一张查找表,它将输入数据映射到可变长度码字上来生成VLC,即可变长度码字及它们的长度。第一桶形移位器根据各可变长度码字的长度将这些可变长度码字连接在一起而提供一条可变长度码字的链;而第二桶形移位器将该可变长度码字链分成n位字的段供输出;以及第三桶形移位器累计各可变长度码字的长度而生成一个指示VLC编码与分段装置的输出是否可认得到的控制信号。特别是,关于PLA生成的可变长度码字的长度的信息是以解码的格式提供给第一与第三桶形移位器的,这意味着只有1的位置指示长度。这便是如果一个可变长度码字的最大长度为16,必须采用一组16位线来表示各可变长度码字的长度。可变长度码字的长度的解码的格式使得第三桶形移位器能够快速地生成第二桶形移位器的控制信号。
然而,在上述基于查找表的VLC编码与分段装置中,由于VLC编码与分段装置的硬件实施例必须设置与一个可变长度码字所能具有的最大位数相同宽度的几位数据线,硬件实施例的尺寸随着所要求的码字长度位数的增加而增加,结果成本也增加。在需要以解码的格式处理很长的可变长度码字时,这一问题变得尤其严重。
因此,本发明的主要目的为提供一种能以编码格式处理可变长度码字的长度的改进的VLC编码与分段装置。
按照本发明,提供了一种编码由可变长度码字及它们的长度表示的VLC并将这些VLC的可变长度码字分段成供传输用的n位字的装置,其中可变长度码字的长度是以编码格式处理的,该装置包括一个第一寄存器用于存储一系列源码并响应一个与各源码的输入时间相关联的启动信号而呈出各源码;一张查找表,用于映射各源码到各VLC中以生成各可变长度码字及其长度;一个第二寄存器,用于存储各可变长度码字,并响应该启动信号呈出各存储的可变长度码字;一个第三寄存器,用于存储各可变长度码字的长度,并响应该启动信号呈出各存储的长度;一个第一桶形移位器,响应表示一个当前输入的可变长度码字的长度的一个第一控制信号,将该当前输入可变长度码字与一个连接的可变长度码字连接在一起,借此生成一个新连接的可变长度码字;一个第四寄存器,用于存储该连接的可变长度码字,并响应该启动信号,呈出各连接的可变长度码字;一个第二桶形移位器,响应一个第二控制信号,将当前输入的可变长度码字与连接的可变长度码字的组合输入分段成供输出用的n位字;一个加法器,用于将当前输入的可变长度码字的长度与一个合计的长度相加以生成一个新的合计长度;一个第五寄存器,用于将新的合计长度与一个预定的位数相比较,如果新的合计长度不超过预定的位数便存储该新的合计长度,否则存储加上作为合计的长度之后表示超过的位数的一个余数;及生成一个指示存储在一个第六寄存器中n位字是否可以得到的输出可得到信号;以及响应该启动信号生成各存储的合计长度作为第二桶形移位器的第二控制信号;以及用于存储来自第二桶形移位器的n位字的第六寄存器响应该启动信号,呈出所存储的固定长度段。
从下面结合附图给出的较佳实施例的描述中,本发明的上述与其它目的与特征将是显而易见的,附图中
图1表示按照本发明的VLC编码与分段装置的方框图;图2提供用于图示图1中所示的VLC编码与分段装置的操作的说明图;图3示意性地示出用于连接可变长度码字的第一桶形移位器;以及图4示意性地示出用于分段一条连接的可变长度码字的链的第二桶形移位器。
参见图1,其中示出了按照本发明的一个较佳实施例的VLC编码与分段装置的方框图。该VLC编码与分段装置生成由可变长度码字与它们的长度表示的可变长度码(VLC),将它们连接在一起并将连接的位串分段成供传输用的n位字。如图1中的所示,将一系列源码输入到一个第一寄存器10。按照诸如MPEG(动画专家组),各源码包含最大行程长度(run-length)63及从-2047至2047的范围内的级。名词“行程长度”表示具有零值的连续行程的数目,而跟在连续的零后面的非零值称作级。第一寄存器10顺序地存储RLC(行程长度编码)编码器导出的源码,并响应与源码的各输入时间相关联的一个启动信号将它们输出到一张查找表20。
查找表20将各源码映射到一个VLC中,将与各源码对应的各可变长度码字及其长度分别生成到导线27与29上。在本发明的较佳实施中,查找表20是由一个可编程逻辑阵列(PLA)实现的。图1中所示的查找表20包含一个未编码字表“与”平面22、一个码字表“或”平面24及一个码长表“或”平面26。查找表20描述在上文中所提到的Shaw-Minlei等人的论文中。
具体地,在本发明的较佳实施例中,由于可变长度码字的长度是在编码格式中处理的,如果一个可变长度码字具有最大长度16位,该长度可用5位表示,因为一个码字长度的值在从1至16的范围内。分别将来自码字表24的各可变长度码字及来自码长表26的其长度通过导线27与导线29提供给第二寄存器28与第三寄存器30。
第二与第三寄存器28与30顺序地存储分别来自码字表24的各可变长度码字及来自长度表26的各可变长度码字的对应长度;及响应上述启动信号,分别输出各存储的可变长度码字及各存储的长度。
将存储在寄存器28中的16位输入到并联导线25上的第一与第二桶形移位器32与40。如下面将要描述的,第四寄存器34中的另外16位也输入到并联导线35上的第一与第二桶形移位器32与40。第一桶形移位器32响应第三寄存器30在导线31生成的一个码字长度信号,在其32位输入上形成一个16位窗口。该16位窗口可在导线25与35上的32位输入上移位,并且其位置是直接由通过导线31输入的码字长度信号确定的。码字长度信号指示16位窗口在零与15之间的移位。如果各位从最左位开始编号为0,1,2,…,31,码字长度信号“M”指示该16位窗口包含导线25与35上的第M至第(M+15)位。形成窗口之后,第一桶形移位器32通过导线33生成一个16位串到第四寄存器34。第四寄存器34存储第一桶形移位器32生成的位串,并响应该启动信号,将存储的位串提供给第一与第二桶形移位器32与40的输入端。
同时,响应该启动信号,将存储在第三寄存器30中的各长度顺序地输入到一个加法器36中,加法器36的作用是将当前可变长度码字的长度加在存储在第五寄存器38中的一个合计的长度上。如果来自加法器36的新的合计长度不超过表示供传输用的一个段的位数的预定的正整数值(即16),第五寄存器38便将该新的合计长度存储在第五寄存器38中。否则,第五寄存器38存储表示作为合计的长度相加后的超过的位数的余数;并生成表示存储在第六寄存器42中的位串是否是一个可得到的n位字的一个输出可得到信号,及响应该启动信号,生成各存储的合计长度到第二桶形移位器40。
第二桶形移位器40响应存储在导线39上的第五寄存器38中的合计的长度的值,在由两条导线25与35所提供的32位输入端上形成一个16位窗口。该16位窗口可在导线25与35上的32位输入端上移位,并且其位置是直接由合计的长度信号确定的。合计的长度信号指示该16位窗口在零与15之间的移位。按照一个合计长度信号“N”,第二桶形移位器40的16位窗口包含导线25与35上的第(16-N)至(31-N)位。形成窗口之后,第二桶形移位器40通过导线41生成一个16位串到一个第六寄存器42。第六寄存器42存储来自第二桶形移位器40的16位窗口输出位串,并响应该启动信号呈出存储的位到一个视频缓冲器(未示出)。当在第五寄存器38上生成输出可得到信号时,将位串从第六寄存器42存储到缓冲器中,该缓冲器只存储可供传输利用的16位字。
参照图2中以表格格式示出的一个实例,图1中的VLC编码与分段装置的操作更容易理解。假定可变长度码字的最大长度为8位。
图2的第一列是为下述各寄存器的输入次序作出的来自码字表24的可变长度的第二寄存器28;存储在第二寄存器28中的可变长度码字的各对应长度的第三寄存器30;存储第一桶形移位器32的输出段的第四寄存器34;存储来自加法器36的合计的长度的第五寄存器38;及存储第二桶形移位器40的输出段的第六寄存器42。图2的最后一列是为表示第二桶形移位器40的输出段是否可得到的输出可得到信号建立的。
按照第一列中的输入次序,如第二列中所示那样顺序地生成可变长度码字的六个数字,并如第三列中所示那样存储对应于各可变长度码字的各长度。第二列中所包含的标记“×”表示从码字表24中提供的一段中的所有位中完全无意义的位。
在图2的第四列中,其中描绘了通过从第二寄存器28中来的段中清涂无意义的位而连接可变长度码字的第一桶形移位器32的输出段的五个数字。参见图3,其中示意性地示出用于连接诸如输入次序2的情况中的可变长度码字的第一桶形移位器32的操作。如图3中所示,如果在并联导线25与35上输入了来自第二寄存器28的第一8位段“111× ××××”及来自第四寄存器34的第二8位段“1000 0011”,第一桶形移位器32响应在第三寄存器30上生成的导线31上的码字长度信号“M”,即M=3,在其16位输入上形成一个8位窗口。该8位窗口的位置是通过将窗口从16位输入的左端移位M位而确定的。即从左侧选出第一段“111× ××××”的M位,并从右侧去掉第一段“111× ××××”中的5个无意义的位而从第二段“1000 0011”中选出其它(8-M)位,借此连接可变长度码字。形成窗口之后,第一桶形移位器32通过导线33生成一个8位窗口输出段“0001 1111”到第四寄存器34。
在图2的第5列中,第五寄存器38中存储一个合计的长度或合计的长度减去8后的余数。如上所述,加法器36的作用是将存储在第三寄存器30中的当前可变长度码字的长度加在存储在第五寄存器38中的前面合计的长度上,从而,例如图2的第五寄存器的输入次序5中的值“1”是第三与第五寄存器中的输入次序4中的两个值“4”与“5”的求和与减法运算后的余数;值“4”为存储在第三寄存器30中的当前可变长度码字的长度,而值“5”则为存储在第五寄存器38中的前面合计的码字长度。
在图2的第6列中,描绘了第二桶形移位器40的输出段的五个数,第二桶形移位器40的作用为分段由来自第一桶形移位器32的连接的可变长度码字及来自第二寄存器28的当前可变长度码字组成的一个位串。参见图4,其中示意性地示出用于诸如在输入次序4的情况中分段位串的第二桶形移位器40的操作。如图4中所示,如果在并联的导线25与35上输入了来自第二寄存器28的一个第一8位段“1010 ××××”及来自第四寄存器34的一个第二8位段“01111101”,第二桶形移位器40便响应存储在第五寄存器38中的导线39上的合计的长度或余数信号“N”,即N=5,在其16位输入端上形成一个8位窗口。该8位窗口的位置是通过8将窗口从16位输入端的左侧移位(8-N)位而确定的。从第二段“01111101”的右侧选出N位,从第一段“1010 ××××”的左侧选出另外的(8-N)位,生成一个输出段“1110 1101”,通过导线41将其存储在第六寄存器42中。
在图2的最后一列中,每当来自加法器36的合计的长度超过8,便生成输出可得到信号“1”,借此指示存储在第六寄存器42中的位串是否是一个可得到的n位字。
虽然只是结合较佳实施例示出与描述了本发明,对于熟悉本技术的普通技术人员而言,显而易见可以作出许多改变与修正而不脱离所附的权利要求书中所定义的发明精神与范围。
权利要求
1.一种用于编码由可变长度码及它们的长度表示的可变长度码(VLC)以及将VLC的可变长度码字分段或供传输用的固定长度段的装置,其中可变长度码字的长度是以编码的格式处理的,该装置包括一个第一寄存器,用于存储一系列源码,并响应与各源码的输入时间相关联的一个启动信号呈出各源码;一张查找表,用于将各源码映射到各VLC中,以生成各可变长度码字及其长度;一个第二寄存器,用于存储各可变长度码字,及响应该启动信号,呈出所述各存储的可变长度码字;一个第三寄存器,用于存储各可变长度码字的长度,及响应该启动信号,呈出所述各存储的长度;一个第一桶形移位器,响应表示一个当前输入的可变长度码字的长度的一个第一控制信号,将当前输入的可变长度码字与一个连接的可变长度码字连接在一起,借此生成一个新连接的可变长度码字;一个第四寄存器,用于存储该连接的可变长度码字,并响应该启动信号,呈出所述各连接的可变长度码字;一个第二桶形移位器,响应一个第二控制信号,从当前输入的可变长度码字与连接的可变长度码字的组合输入中产生出一个固定长度的段;一个加法器,用于相加当前输入的可变长度码字的长度与一个合计的长度,以生成一个新的合计长度;一个第五寄存器,用于比较该新的合计长度与一个预定的位数,如果新的合计长度不超过预定的位数,便存储该新的合计长度,否则存储一个表示相加以后作为合计的长度的超过的位数的余数,并生成一个表示第二桶形移位器的固定长度段的可得到性的输出可得到信号;以及响应该启动信号生成所述各存储的合计长度作为该第二桶形移位器的第二控制信号;以及一个第六寄存器,用于存储来自第二桶形移位器的固定长度段,并响应该启动信号,呈出所述各存储的固定长度段。
2.权利要求1的装置,其中该第一桶形移位器包括2N位输入装置,用于在第一桶形移位器的左侧接收一个表示连接的可变长度码字的第一N位数据段,及在第一桶形移位器的右侧接收一个表示当前输入的可变长度码字的第二N位数据段;用于接收表示当前输入的可变长度码字的长度的第一控制信号的装置;以及用于从右侧将两个接收的数据段上的一个第一N位窗口移位当前输入的可变长度码字的长度,借此生成一个表示新连接的可变长度码字的第一N位段的装置。
3.权利要求2的装置,其中该第二桶形移位器包括2N位输入装置,用于在第二桶形移位器的左侧上接收表示连接的可变长度码字的第一个N位数据段,及在第二桶形移位器的右侧上接收表示当前输入的可变长度码字的第二个N位数据段;用于接收表示合计的长度或余数的第二控制信号的装置;以及用于在两个接收的数据段上将一个第二N位窗口移位N位减去合计的长度或余数的量,借此生成一个表示该第二桶形移位器的固定长度段的第二N位段的装置。
全文摘要
用于编码可变长度码(VLC)及将VLC的可变长度码字分段的装置,包括查找表,用于生成各可变长度码字与其长度;第一桶形移位器,将当前输入的与连接的可变长度码字连接在一起;第二桶形移位器,从当前输入的与连接的可变长度码字的组合输入中产生出固定长度的段,加法器,用于生成新的合计长度;以及寄存器,用于比较该新的合计长度与一预定的位数,并生成输出可得到信号;及响应该启动信号,生成各存储的合计长度作为第二桶形移位器的第二控制信号。
文档编号G06F5/00GK1139861SQ9511752
公开日1997年1月8日 申请日期1995年11月21日 优先权日1995年6月30日
发明者姜东秀 申请人:大宇电子株式会社