具有字节校准单元的可变长度码编码及分段装置的制作方法

文档序号:7531884阅读:161来源:国知局
专利名称:具有字节校准单元的可变长度码编码及分段装置的制作方法
技术领域
本发明涉及一种用于编码和分段可变长度码(VLC)的装置,更具体地讲,是涉及一种能够对开始码进行字节校准的VLC编码和分段装置。
可变长度编码是一种经常用于无损数据压缩的技术。具体地讲,这种技术被用于根据数据的统计上的出现将固定长度数据变换为可变长度码字。各可变长度码字的长度是以这样一种方式选择的,即较短的码字用于代表经常出现的数据及较长的码字被选择代表不经常出现的数据。通过适当地分配可变长度码字到所有可能的源数据的一个库中,可变长度码字的平均字长变为短于源数据,从而提供实现数据压缩的可能性。
一般来说,由可变长度码字和其长度代表的VLC的编码处理,和用于其传输的VLC的可变长度码字的分段处理可以利用查询表来实现,在该表中可变长度码字及其长度数据作为其内容被存储。基于查询表的VLC编码和分段装置被公开在,例如,Shaw-MinLei等人在IEEE Transactionson Circuits and Systemsfor Video Technology(1991年3月,No.1,第147-154页)的文章“用于数字HDTV应用的熵编码系统”(An Entropy Coding System for Digital HDTV Applications)中。该VLC编码和分段装置的一些主要电路部件包括一个PLA(可编程的逻辑阵列)和三个桶形移位器。PLA是一个查询表,该表将输入数据映为可变长度码字以产生VLC,即可变长度码字及其长度。第一桶形移位器根据它们的长度码字将这些可变长度码字链接在一起以提供一个可变长度码字链;及第二桶形移位器将该可变长度码字链分段为用于输出的n位字;及第三桶形移位器将各可变长度码字的长度进行累计以产生一个控制信号,该控制信号指示该VLC编码和分段装置的输出是否是有效的。特别是,从PLA产生的可变长度码字的长度信息以被解码的形式被提供给第一和第三桶形移位器,这意味着仅1的位置指示长度。这就是说,如果可变长度码字的最大长度是16,一组16位的行必须被用于表示每个可变长度码字的长度。可变长度码字长度的解码形式可使第三桶形移位器迅速产生一个第二桶形移位器的控制信号。但是,因为VLC编码和分段装置的硬件实现必须被提供有与可变长度码字能够具有的最大位数一样宽的n位的数据行,作为在要求增加的位中的码字长度,这样,硬件实现的尺寸增加了,并因此,其制造成本也增加了。当很长的可变长度码字需要以其解码形式被处理时,这个问题变得特别严重。
另一种基于查询表的VLC编码和分段装置披露在名称为“用于编码可变长度码并分段其可变长度码字的设备”(Apparatus for encoding variable-Length codesand Segmenting Variable-length codewards thereof),申请号为______的共同拥有的未决美国专利申请中,该文件援引于此以作参考。这个VLC编码和分段装置使用了一个加法器以一编码形式处理可变长度码字的长度,以便克服Shaw-Min Lei的VLC编码和分段装置的上述缺点。
按照MPEG(运动图象专家组),有许多已建立的对运动图象编码的标准。这些标准之一涉及如下文所述的一种开始码的字节校准。每个开始码表示某一码序列的开始并由一个跟着开始码值的开始码前缀组成。开始码前缀是一个跟着一个单一的具有1值的位的具有零值的23个位的串。开始码前缀因此是“00000000 0000 0000 0000 0001”的位串。该开始码值是一个识别各开始码的类型的8位的整数。特别是,所有的开始码将被字节校准。这是通过在开始码前缀之前插入具有零值的位实现的,以便开始码前缀的第一位是一个字节的最有效位。
至今为止,在VLC编码和分段技术领域中,尚不知道哪种装置具有开始码字节校准的能力。
因此,本发明的主要目的是提供一种能够进行开始码字节校准的改进的VLC编码及分段装置。
根据本发明,提供有一种用于编码由可变长度码字及其长度表示的可变长度码(VLC)并将该VLC的可变长度码字分段为N位段用于其传输,且如果该N位段的最后一段的长度短于N,则在该最后一段的最后一位和一个开始码之间插入具有零值的位,该开始码包括跟着一个开始码值的一个开始码前缀,该开始码值识别开始码的类型,以便表示一个码序列的开始以使该开始码的第一位是一个字节的最有效位的装置,该装置包括第一寄存器,用于存储一个源码序列并响应于与这些源码的输入时间有关的一个启动信号产生每个源码;查询表,用于将每个源码映为每个VLC以产生每个可变长度码字及其长度;第二寄存器,用于存储每个可变长度码字,并响应于启动信号,用于产生所述每个存储的可变长度码字;第三寄存器,用于存储各可变长度码字的长度,并响应于启动信号,产生所述每个存储的长度;字节校准单元,响应于字节校准信号,产生表示具有零值的宽度等于该可变长度码字的最大位长度的一组并行位的一个伪码字,及表示要插入到该最后一段的最后一个位和开始码之间的位数目的伪长度;第一桶形移位器,响应于表示当前输入可变长度码字的长度或伪长度的第一控制信号,用于将当前输入的可变长度码字和一已链接的可变长度码字进行链接,或将已链接的可变长度码字和伪码字进行链接,从而产生一个新的被链接的可变长度码字;第四寄存器,用于存储被链接的可变长度码字,并响应于启动信号,产生所述每个被链接的可变长度码字;第二桶形移位器,响应于第二控制信号,用于产生由当前输入可变长度码字的输入和被链接的可变长度码字组合出的固定长度段;加法器,用于将当前输入的可变长度码字的长度或伪长度加上一个被加的长度,产生一个新的相加的长度;第五寄存器,用于将新的相加的长度与N比较,如果新的相加的长度不超过N,存储该新的相加的长度,否则存储一表示相加成相加的长度后超过的位数的余数并产生表示该第二桶形移位器的固定长度段的有效性的输出有效信号;并响应于启动信号,产生所述每个存储的相加长度作为第二桶形移位器的第二控制信号;及第六寄存器,用于存储来自第二桶形移位器的固定长度段并响应于启动信号,产生每个存储的固定长度段。
本发明的上述和其他目的及特点从下面结合各个附图对优选实施例的描述中将变得显而易见,附图中

图1表示根据本发明的VLC编码及分段装置的框图;图2是图1的字节校准单元的详细框图;图3A和3B提供一个用于说明图1所示的VLC编码及分段装置的操作的说明图;图4示意地表示用于链接各可变长度码字的第一桶形移位器;及图5示意地表示用于分段一个链接的可变长度码字链的第二桶形移位器。
参见图1,示有一个根据本发明的优选实施例的VLC编码及分段装置的框图。该VLC编码及分段装置编码由可变长度码字及其长度表示的可变长度码(VLC),并将VLC的可变长度码字分段为固定长度段用于其传输。如图1所示,一个源码序列被输入到第一寄存器10。按照MPEG,例如,每个源码包括63的最大行程和以-2047到2047的级范围。术语“行程”意指以零值连续运行的数,且接着连续零的非零值称为级(level)。第一寄存器10顺序地存储源码和响应于与源码的每个输入时间有关的启动信号将它们输出到查询表20。
查询表20将各源码映为VLC以分别产生对应于各源码的各可变长度码字及其长度到导线27和29上。在本发明的优选实施例中,查询表20是通过一个可编程逻辑阵列(PLA)实现的。表示在图1中的查询表20包括一个未编码的字表与平面(AND-plane)22、一个码字表或平面(OR-plane)24和一个码长度表或平面26。查询表20在Shaw-Min Lei等人的文章中被描述。
具体地讲,在本发明的优选实施例中,由于可变长度码字的长度是按编码形式被处理的,如果一个可变长度码字具有最大16位长度,该长度可以使用5位来表示,因为码字长度值的范围从1到16。来自码字表24的各可变长度码字及来自码长度表26的其长度分别经由导线27和导线29被提供到第二寄存器28和第三寄存器30。
第二和第三寄存器28和30顺序地分别存储来自码字表24的各可变长度码字和来自长度表26的各对应的可变长度码字的长度;并响应于上述的启动信号,分别输出各存储的可变长度码字和各存储的长度到字节校准单元200。
字节校准单元200响应于经由线199从编码控制器(未示出)提供的以便预兆一个开始码的出现的字节校准信号,有选择地产生可变长度码字及其长度或伪码字及伪长度。伪码字是具有零值的宽度等于可变长度码字的最大位长度的一组并行位。伪长度表示要插入在最后的可变长度码字的最后一位和开始码之间的零位的数目。字节校准单元200的细节参照图2予以描述。
参照图2,在线199上的字节校准信号作为开关控制信号被提供给第一开关和第二开关202和206。通过第一开关202的操作,如果字节校准信号未被提供,来自第二寄存器28的每个存储的16位可变长度码字通过开关202经并行导线25A被输入到第一和第二桶形移位器32和40,然而,如果提供了字节校准信号,具有零值的16位伪码字被输入到其中。通过第二开关206的操作,如果字节校准信号未被提供,来自第三寄存器30的每个存储的5位长度经过并行导线31A被提供给加法器36,然而,如果提供了字节校准信号,在线205上的5位伪长度被输入其中。上述的5位伪长度是通过从加法器36经线37提供的新的相加长度的求二进制补码操作产生的。
再参照图1,正如下面将要描述的那样,来自第四寄存器34的另一个16位也通过并行导线35被输入到第一和第二桶形移位器32和40中。第一桶形移位器32响应于在导线31A上的代表存储在第三寄存器30中的长度或者伪长度的码字长度信号以在其32位输入上形成16位窗口。该16位窗口可移动横穿过在导线25A和35上的32位输入且它的位置直接由通过导线31A输入的码字长度信号确定。码字长度信号表示在0和15之间的16位窗口的移动。如每个位从最左位起编号为0、1、……31,“M”的码字长度信号表示该16位窗口包括有在导线25A和35上的第M到第(M+15)位。在形成窗口以后,第一桶形移位器32产生一个16位的数据串经导线33到第四寄存器34。第四寄存器34存储由第一桶形移位器32产生的位串,并响应于启动信号,提供存储的位串到第一和第二桶形移位器32和40的输入端。
与此同时,存储在第三寄存器30的每个长度或伪长度响应于启动信号被顺序地输入到加法器36。加法器36用于将当前的可变长度码字的长度或伪长度和存储在第五寄存器38中的一个被加的长度进行相加。新的相加后的长度被提供到第五寄存器38及字节校准单元200。如果来自加法器36的新的相加后的长度未超过表示用于传输的一段的位数,即16的一个预定的正整数值,则在第五寄存器38存储该新的相加后的长度。否则第五寄存器38存储表示在相加为一被相加的长度以后超过位数的余数;并产生表示第二桶形移位器40的固定长度段是有效的一个输出有效信号,并响应于启动信号,产生每个存储的相加的长度到第二桶形移位器40。
第二桶形移位器40响应于在导线39上的在第五寄存器38中存储的相加的长度值,在由导线25A和35提供的32位的输入上形成16位的窗口。该16位窗口可移动横穿过在导线25A和35上的32位的输入且它的位置直接由相加的长度信号确定。该相加的长度信号表示该16位窗口在0和15之间的移动。按照“N”的一相加的长度信号,第二桶形移位器40的16位窗口包括在导线25A和35上的从第16-N到第31-N位。在形成窗口以后,第二桶形移位器40产生一个16位串经由导线41给第六寄存器42。第六寄存器42存储来自第二桶形移位器40的16位窗口输出位串并响应于启动信号产生存储的位串给一视频缓冲器(未视出)。当在第五寄存器38产生输出有效信号时,来自第六寄存器42的输出位串或输出段将被存储在该仅存储有效16位段用于将其发送的缓冲器中。
图1中的VLC编码及分段装置的操作参照表示在图3A和3B的表格形式的一个例子可被更容易理解。假设可变长度码字的最大长度是8位。
图3A的第1列表示下列各寄存器的输入顺序第二寄存器28用于来自码字表24的可变长度码字;第三寄存器30用于在第二寄存器28中存储的可变长度码字的各相应长度;第四寄存器34用于存储第一桶形移位器32的输出段;第五寄存器38用于存储来自加法器36的相加后的长度;及第六寄存器42用于存储第二桶形移位器40的输出段。图3A的第二列和最后的列分别构成用于字节校准信号和输出有效信号。
如图3A所示,对VLC编码和分段装置操作的解释着重于校准信号被接收的情况。
按照在第1列中的“a”和“b”的输入次序,两个可变长度码字如第3列中所示的顺序地产生,且对应于该两个可变长度码字的每个长度如在第四行所示被存储。在第三列中所包含的记号“X”表示出自从码字表24被提供的一个段的所有位中完全无意义的位。为描述的简单,当校准信号在输入次序“b”被接收时,伪码字“0000,0000”和伪长度5分别在输入次序“C”的第三和第四列中被描述。实际上,伪码字和伪长度未被存储在第二和第三寄存器28和30中,但是自字节校准单元200被提供。
按照输入次序“b”、“c”和“d”,在图3A的第五列中描述了第一桶形移位器32的三个输出段的数目,该移位器32通过移动其无意义的位链接了各可变长度码字。参照图4,其中示意性地表示用于链接各可变长度码字,例如,在输入次序“b”的情况中的第一桶形移位器32的操作。如图4所示,如果来自字节校准单元200的第一个8位段“111X XXXX”和来自第四寄存器34的第二个8位段“00001111”分别通过并行导线25A和35被输入,第一桶形移位器32响应于在导线31A上的码字长度信号“M”,即M=3,形成在其16位输入上的8位窗口。该8位窗口的位置是通过从16位输入的左手侧移动窗口M个位被确定的。也就是说,从第一段“111XXXXX”左手侧选择出的M个位和从第二段“0000 1111”右手侧选择出的(8-M)位,去除第一段“111X XXXX”的5个无意义位,从而链接各可变长度码字。在形成窗口以后,桶形移位器32产生8位窗口输出段“0111 1111”,经由导线34送到第四寄存器34。
在图3A的第六列中,第五寄存器38存储一个相加后的长度或相加后的长度减8的余数。如上所述,加法器36用于将伪长度或当前可变长度码字的长度与以前的存储在第五寄存器38中的相加后的长度进行相加。因此,例如,在图3A的第五寄存器38的输入次序“C“中的数据3是在第三和第五寄存器30和38的输入次序“b”中对两个数据“3”和“0”的相加及相减操作的后的一个余数数据“3”是在第三寄存器30中存储的当前可变长度码字的长度及数据“0”是在第五寄存器38中存储的余数。
在图3A的第七列中,有对第二桶形移位器40的输出段的三个数字的描述,这个移位器40用于将链接的来自第一桶形移位器32的可变长度码字和来自第二寄存器28的当前可变长度码字组成的位串进行分段。参照图5,其中示意性地表示用于例如在输入次序“d”的情况下分段位串的第二桶形移位器40的操作。如图5所示,如果来自字节校准单元200的第一个8位段“0000 0000”和来自第四寄存器3 4的第二个8位段“0111 1111”通过并行导线25A和35被输入,第二桶形移位器40响应于存储在第5寄存器38中在导线39上的相加后的长度或者余数信号“N”,即N=3,在共16位输入上形成8位窗口。该8位窗口的位置是通过从该16位输入的左手移动该窗口8-N个位而被确定的。也就是说,从第二段“0111 1111”的右手侧选出N位及从第一段“0000 0000”左手侧选出的8-N位,产生一输出段“1110 0000”经由导线41被存储到第六寄存器42中。
在图3A的最后一列中,每当来自加法器36的相加后的长度超过8时,就产生启动信号“1”,从而表示是否存储在第六寄存器42中的位串是一个有效的n位的字。参照图3B,其中表示根据图3A的操作的示例性位流300。该位流300具有接着一个开始码一开始码前缀304和一开始码值306的两段301和302。该两段301和302是图3A的第七列的有效字或段。特别是,在段302中具有零值的5位被插入在可变长度码字“111”和开始码前缀304之间。
本发明仅结合优选实施例进行了示出和描述,但在不脱离由所附的权利要求书所限定的本发明的精神与范围情况下,本专业的技术人员做出许多改变和改进是显而易见的。
权利要求
1.一种用于编码由可变长度码字及其长度表示的可变长度码(VLC),且将VLC的可变长度码字分段成N位段用于其传输,并如果该N位段的最后一段的长度短于所述的N,在最后一段的最后的位和一开始码之间插入具有零值的位,该开始码具有接着一个识别该开始码的类型的开始码值的开始码前缀,以便表示一个码序列的开始以使该开始码的第一位是一个字节的最有效位,该装置包括第一寄存器,用于存储一序列源码并响应于一个与这些源码的各输入时间有关的启动信号产生各源码;查询表,用于将各源码映为各VLC以产生各可变长度码字及其长度;第二寄存器,用于存储每个可变长度码字,并响应于启动信号,用于产生所述各存储的可变长度码字;第三寄存器,用于存储各可变长度码字的长度,并响应于启动信号,产生所述各存储的长度;字节校准单元,响应于字节校准信号,产生一个表示具有等于可变长度码字的最大位长度的宽度的具有零值的一组并行位的伪码字,和一个表示包含在最后一段的最后一位与开始码之间的位数的伪长度;第一桶形移位器,响应于代表当前输入的可变长度码字的长度或伪长度的一个第一控制信号,用于将当前输入的可变长度码字和已链接的可变长度码字链接在一起,或者将已链接的可变长度码字和伪码字进行链接,从而产生一个新的链接的可变长度码字;第四寄存器,用于存储链接的可变长度码字,并响应于启动信号,产生所述各链接的可变长度码字;第二桶形移位器,响应于第二控制信号,用于产生从当前输入的可变长度码字的输入和链接的可变长度码字组合出的固定长度段;加法器,用于将当前输入的可变长度码字的长度或伪长度与相加的长度进行相加,产生一个新的相加的长度;第五寄存器,如果用于将新的相加的长度与所述N进行比较,新的相加的长度未超过所述N,存储该新的相加的长度,否则存储代表在相加为相加的长度以后超过的位数的余数,并产生表示该第二桶形移位器的固定长度段的有效性一输出有效信号;并响应于启动信号,产生所述各存储的相加的长度作为第二桶形移位器的第二控制信号;及第六寄存器,用于存储来自第二桶形移位器的固定长度段,并响应于启动信号,产生所述各存储的固定长度段。
2.根据权利要求1的装置,其中第一桶形移位器包括2N位输入装置,用于在第一桶形移位器的左手侧接收代表链接的可变长度码字的第一N位数据段,并在第一桶形移位器的右手侧接收代表当前输入的可变长度码字的第二N位数据段;用于接收表示当前输入的可变长度码字的长度的第一控制信号的装置;用于在两个接收的数据段上从左手侧将第一N位窗口移过当前输入的可变长度码字的长度,从而产生一个表示所链接的可变长度码字的第一N位段的装置。
3.根据权利要求2的装置,其中第二桶形移位器包括2N位输入装置,用于在第二桶形移位器的左手侧接收代表链接的可变长度码字的第一N位数据段,并在第二桶形移位器的右手侧接收代表当前输入的可变长度码字的第二N位数据段;用于接收代表相加的长度或余数的第二控制信号的装置;及用于在两接收的数据段上将第二N位窗口移过N位减去相加的长度或余数,从而产生代表第二桶形移位器的固定长度段的第二N位段。
全文摘要
一种用于编码可变长度码(VLC),并将其可变长度码字分段成N位段用于其传输,且如果其最后一段的长度短于N,在最后一段的最后位和一开始码之间插入具有零值的位,以表示一个码序列的开始以使该开始码的第一位是一字节的最有效位的装置,包括一字节校准单元,产生一代表具有零值的宽度等于可变码字最大长度的一组并行位的伪码字替代可变长度码字,和一个代表包含在最后一段的最后一位与开始码之间的位数的伪长度替代可变长度码字的长度。
文档编号H03M7/42GK1141538SQ95117558
公开日1997年1月29日 申请日期1995年11月29日 优先权日1995年7月27日
发明者姜东秀 申请人:大宇电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1