CN101584120B - 表装置、可变长度编码装置、可变长度解码装置 - Google Patents

表装置、可变长度编码装置、可变长度解码装置 Download PDF

Info

Publication number
CN101584120B
CN101584120B CN2007800498034A CN200780049803A CN101584120B CN 101584120 B CN101584120 B CN 101584120B CN 2007800498034 A CN2007800498034 A CN 2007800498034A CN 200780049803 A CN200780049803 A CN 200780049803A CN 101584120 B CN101584120 B CN 101584120B
Authority
CN
China
Prior art keywords
mentioned
unit
value
comparison
bit stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2007800498034A
Other languages
English (en)
Other versions
CN101584120A (zh
Inventor
江井友美
峰岸孝行
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of CN101584120A publication Critical patent/CN101584120A/zh
Application granted granted Critical
Publication of CN101584120B publication Critical patent/CN101584120B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明提供一种表装置、可变长度编码装置、可变长度解码装置以及可变长度编码解码装置,设置有:一致单元序号输出部(25),输出表示输出一致信号的单元(PE)的一致单元序号;以及地址解码器(26),从构成变换表的查找树的节点中,确定与该一致单元序号对应的节点,其中,从配置存储器(21)中取得对上述节点分配的数据变换值,如果该数据变换值为表示编码结果等的数据,则将该数据变换值输出给外部,如果该数据变换值为查找树的分支代码,则更新提供比较命令信号的单元(PE)。

Description

表装置、可变长度编码装置、可变长度解码装置
技术领域
本发明涉及可以对应于包括国际标准方式的各种可变长度编码和可变长度解码的表装置、和安装有这样的表装置的可变长度编码装置、可变长度解码装置以及可变长度编码解码装置。 
背景技术
在运动图像的可变长度编码方法、可变长度解码方法中,考虑用途等而施加了各种改良,作为国际标准编码方式,例如存在H.261、H.263、MPEG1、MPEG2、MPEG4等。 
以往的可变长度编码解码装置通过将与各种编码方式对应的表数据存储在表存储器中(表数据是与归零(zero run)数和电平(level)值的组合数据对应的可变长度编码代码、和该可变长度编码代码的编码长度,存储在与该组合数据对应的地址中),无需坚持独自的可变长度编码/解码,而对应于包括国际标准方式的各种可变长度编码/解码。 
另外,在可变长度编码装置与可变长度解码装置中电路结构不同,在具有可变长度编码的功能与可变长度解码的功能的可变长度编码解码装置中,在从表存储器取出期望的表数据时,将输入数据变换成表存储器上的地址(例如参照专利文献1)。 
在以往的可变长度编码解码装置中,虽然可以对应于包括国际标准方式的各种可变长度编码/解码,但由于在可变长度编码与可变长度解码中电路结构不同,所以需要独立设置编码电路与解码电路。 
另外,由于在存储器中安装了存储可变长度编码代码与该可变长度编码代码的码长的表,所以需要使该存储器的位宽度与最长的可变长度编码代码一致,而在短的码长的可变长度编码代码中产生无用的存储器区域。 
除了上述可变长度编码解码装置以外,无需独立设置编码电路与解码电路,并且消除了无用的存储器区域的发生的可变长度编码解码装置得到了开发(例如参照专利文献2)。 
即,在专利文献2公开的可变长度编码解码装置中,通过由下述要素构成,使在编码时与解码时不相同的结构要素仅为拆包部与打包部,而消除了独立设置编码电路与解码电路的需要。 
·可以进行动态重构的可变长度编码/解码表部 
·在解码时将位流提供给表部的拆包部 
·在编码时将从表部输出的位流打包成存储器宽度的打包部 
·保存编码结果或进行解码的位流的位流存储器 
·保存解码结果或进行编码的系数的系数存储器 
·保存从CPU输出的控制信息的控制寄存器 
·进行与CPU的I/F的总线I/F 
另外,在该可变长度编码解码装置中,为了消除无用的存储器区域的存在,使用可以进行动态重构的单元(cell)要素来构成可变长度编码/解码表部,把将该可变长度编码/解码表部解释成查找树而详细地分割的表数据分配给可以进行动态重构的单元要素。 
另外,可以进行动态重构的单元要素由实现查找树的分支结构的连接用要素、与实现查找树的节点的功能要素构成。 
在各单元中,存在写入用于实现查找树的配置(configuration)数据的寄存器群(连接信息寄存器群、位选择寄存器群、比较对象寄存器群、输出值寄存器群)。 
专利文献1:日本特开2001-308715号公报(段落序号[0023]至[0028]、图1) 
专利文献2:日本特开2006-101171号公报(段落序号[0010]至[0013]、图1) 
以往的可变长度编码解码装置由于如上所述构成,所以在实施可 变长度编码、可变长度解码时,需要将用于实现查找树的配置数据写入各单元的寄存器群(连接信息寄存器群、位选择寄存器群、比较对象寄存器群、输出值寄存器群)中的处理,而存在难以实现可变长度编码、可变长度解码的处理的高速化等课题。 
发明内容
本发明是为了解决上述那样的课题而完成的,其目的在于提供一种表装置,无需进行针对单元的寄存器群写入配置数据的处理,而可以实现可变长度编码、可变长度解码的处理的高速化。 
另外,本发明的另一目的在于,提供一种安装有可以实现可变长度编码、可变长度解码的处理的高速化的表装置的可变长度编码装置、可变长度解码装置以及可变长度编码解码装置。 
本发明的表装置设置有:多个单元,在接收到比较命令信号时对固有的比较对象值与输入数据进行比较,如果该比较对象值与输入数据一致则输出一致信号;单元序号输出部件,输出表示在多个单元中输出一致信号的单元的单元序号;以及节点确定部件,从构成变换表的查找树的节点中,确定与从单元序号输出部件输出的单元序号对应的节点,单元控制部件从配置存储器中取得对由节点确定部件确定的节点分配的数据变换值,如果该数据变换值为表示编码结果或解码结果的数据,则将该数据变换值输出给外部,如果该数据变换值为查找树的分支代码,则更新提供比较命令信号的单元。 
由此,无需进行针对单元的寄存器群写入配置数据的处理,而可以实施可变长度编码处理、可变长度解码处理,其结果,具有可以实现可变长度编码处理、可变长度解码处理的高速化的效果。 
附图说明
图1是示出本发明的实施方式1的可变长度编码解码装置的结构图。 
图2是示出本发明的实施方式1的表装置的结构图。 
图3是示出单元组GR0~GR4的结构例子的框图。 
图4是示出可变长度解码表的说明图。 
图5是示出构成可变长度解码表的查找树的说明图。 
图6是示出图5的节点n0~n13与图2的表装置17的单元PE映射的状态的说明图。 
图7是示出可变长度解码的动作例子的说明图。 
图8是示出表装置17的可变长度解码处理的说明图。 
图9是示出可变长度编码表的说明图。 
图10是示出构成可变长度编码表的查找树的说明图。 
图11是示出图10的节点n1~n9与图2的表装置17的单元PE映射的状态的说明图。 
图12是示出图10的节点n10~n18与图2的表装置17的单元PE映射的状态的说明图。 
图13是示出可变长度编码的动作例子的说明图。 
图14是示出表装置17的可变长度编码处理的说明图。 
图15是示出表装置17的可变长度编码处理的说明图。 
图16是示出本发明的实施方式2的可变长度编码装置的结构图。 
图17是示出本发明的实施方式3的可变长度解码装置的结构图。 
图18是示出本发明的实施方式4的可变长度编码解码装置的结构图。 
图19是示出图18中的表装置的结构例子的框图。 
图20是示出图19中的单元组的结构例子的框图。 
图21是示出可变长度解码表的结构例子的图。 
图22是示出可变长度解码表的比较分配例子的图。 
图23是用于说明使图22中的各节点与图19中的各单元映射的情况的图。 
图24是用于说明图18中的可变长度编码解码装置的可变长度解码的动作例子的图。 
图25是示出本发明的实施方式4的可变长度编码解码装置的可 变长度解码的动作例子的图。 
图26是示出本发明的实施方式4的可变长度编码解码装置的可变长度编码的动作例子的图。 
具体实施方式
以下,为了更详细地说明本发明,参照附图对用于实施本发明的最佳实施方式进行说明。 
实施方式1 
图1是示出本发明的实施方式1的可变长度编码解码装置的结构图,在图中,输入输出端口1是如下的端口:在实施可变长度编码的情况下,在CPU(Central Processing Unit)2的指示之下,输入作为可变长度编码对象的图像数据的系数数据,将该系数数据输出给可变长度编码解码装置5,另一方面输出由可变长度编码解码装置5编码的位流,在实施可变长度解码的情况下,输入可变长度解码对象的位流,将该位流输出给可变长度编码解码装置5,另一方面输出由可变长度编码解码装置5解码的系数数据。 
CPU2实施各结构部的控制,并且进行运动图像的编码处理、解码处理中的、可变长度编码、可变长度解码以外的处理。 
存储器3是保存CPU2处理的命令、表示被查找树化的可变长度编码或可变长度解码的变换表(可变长度编码表、可变长度解码表)的配置数据等的区域。 
总线4是输入输出端口1、CPU2、存储器3以及可变长度编码解码装置5之间的数据传送中使用的路径。 
总线I/F11是针对总线4的接口,在CPU2的指示之下,例如实施从存储器3中取入表示可变长度编码或可变长度解码的变换表(可变长度编码表、可变长度解码表)的配置数据,将该配置数据输出给表装置17的处理。另外,总线I/F11构成变换表输出部件。 
系数数据存储器12是如下的存储器:在可变长度编码解码装置5实施可变长度编码的情况下,保存提供给表装置17的可变长度编码 对象的系数数据,在可变长度编码解码装置5实施可变长度解码的情况下,保存从表装置17输出的作为解码数据的系数数据(数据变换值)。另外,系数数据存储器12构成系数数据保存部件。 
位流存储器13是如下的存储器:在可变长度编码解码装置5实施可变长度编码的情况下,保存由打包部15打包成位数单位的数据的位流,在可变长度编码解码装置5实施可变长度解码的情况下,保存提供给表装置17的可变长度解码对象的位流。另外,位流存储器13构成位流保存部件。 
拆包部14实施从位流存储器13中以位数单位读入位流,将固定长度的位流输出给表装置17的处理。另外,拆包部14构成位流输出部件。 
打包部15实施将作为从表装置17输出的编码数据的可变长度代码的位流(数据变换值)打包成位数单位的数据并保存在位流存储器13中的处理。另外,打包部15构成打包部件。 
控制寄存器16在接收到外部复位信号时被复位,在CPU2的指示之下,将配置、可变长度编码或可变长度解码的实施时提供给表装置17的输入数据(系数数据、位流)的选择中使用的输入数据选择信号输出给表装置17,并且将指定表装置17使用的变换表(可变长度编码表、可变长度解码表)的表序号、比较动作的开始时使用的页序号、指定实施比较处理的单元组的初始代码输出给表装置17。 
表装置17是实施可变长度编码处理或可变长度解码处理的装置。 
图2是示出本发明的实施方式1的表装置17的结构图,在图中,配置存储器21是保持从总线I/F11输出的配置数据的存储器。 
多路选择器(在图2中记述为“MUX”)22实施如下处理:按照从控制寄存器16输出的输入数据选择信号,选择从系数数据存储器12输出的系数数据或从拆包部14输出的位流而输出给单元23(以下称为“单元PE0~PE29”)。 
单元PE0~PE29具备分配了固有的比较对象值的比较器24,实 施如下处理:在从表控制部27接收到比较命令信号时,对固有的比较对象值与从多路选择器22输出的系数数据或位流进行比较,如果该比较对象值与系数数据或位流一致,则输出一致信号O00~O29。 
另外,在单元PE0~PE29中,所分配的比较对象值的位数相等的单元彼此被分成同一单元组。即,比较对象值的位数为1位的单元PE0与单元PE1被分成单元组GR0,比较对象值的位数为2位的单元PE2~单元PE5被分成单元组GR1,比较对象值的位数为3位的单元PE6~单元PE13被分成单元组GR2。 
另外,比较对象值的位数为4位的单元PE14~单元PE21被分成单元组GR3,单元PE22~单元PE29被分成单元组GR4。 
一致单元序号输出部25实施在单元PE0~PE29中,将表示输出一致信号O00~O29的单元PE的一致单元序号输出给地址解码器26的处理。另外,一致单元序号输出部25构成单元序号输出部件。 
地址解码器26实施如下处理:在配置存储器21保持的配置数据所表示的变换表(可变长度编码表、可变长度解码表)中,从构成从表控制部27输出的表序号所表示的变换表的查找树的节点中,确定与从一致单元序号输出部25输出的一致单元序号对应的节点,生成存储有对该节点分配的数据变换值(位流或系数数据、查找树的分支代码)的配置存储器21上的地址。另外,地址解码器26构成节点确定部件。 
表控制部27在配置存储器21保存的数据变换值中,取得由地址解码器26生成的地址中保存的数据变换值,如果该数据变换值为可变长度代码的位流,则将该位流输出给打包部15,如果该数据变换值为系数数据,则将该数据变换值输出给系数数据存储器12,如果该数据变换值为查找树的分支代码,则从该分支代码中取得表示接下来提供比较命令信号R的单元组GR的指定代码,更新提供比较命令信号R的单元组GR。另外,表控制部27构成单元控制部件。 
图3是示出单元组GR0~GR4的结构例子的框图。 
单元PE0~PE29具备比较器24,比较器24被分配了固有的比 较对象值(固定值)。 
比较器24对固有的比较对象值与由多路选择器22选择的输入数据进行比较,在两者一致时,输出一致信号O。 
各单元PE中的固有的比较对象值的位数是针对每个单元组GR0~GR4决定的。例如,单元组GR0的单元PE0、PE1的比较对象值为1位,单元PE0的比较对象值为“0”,单元PE1的比较对象值为“1”。 
单元组GR1的单元PE2~PE5的比较对象值为2位,单元PE2的比较对象值为“00”,单元PE3的比较对象值为“01”,单元PE4的比较对象值为“10”,单元PE5的比较对象值为“11”。 
单元组GR2的单元PE6~PE13的比较对象值为3位,单元PE6的比较对象值为“000”,单元PE7的比较对象值为“001”,单元PE8的比较对象值为“010”,单元PE9的比较对象值为“011”,单元PE10的比较对象值为“100”,单元PE11的比较对象值为“101”,单元PE12的比较对象值为“110”,单元PE13的比较对象值为“111”。 
单元组GR3的单元PE14~PE21的比较对象值为4位,单元PE14的比较对象值为“0000”,单元PE15的比较对象值为“0001”,单元PE16的比较对象值为“0010”,单元PE17的比较对象值为“0011”,单元PE18的比较对象值为“0100”,单元PE19的比较对象值为“0101”,单元PE20的比较对象值为“0110”,单元PE21的比较对象值为“0111”。 
单元组GR4的单元PE22~PE29的比较对象值为4位,单元PE22的比较对象值为“1000”,单元PE23的比较对象值为“1001”,单元PE24的比较对象值为“1010”,单元PE25的比较对象值为“1011”,单元PE26的比较对象值为“1100”,单元PE27的比较对象值为“1101”,单元PE28的比较对象值为“1110”,单元PE29的比较对象值为“1111”。 
在由多路选择器22选择的输入数据中,从开头位数起,与属于单元组GR0~GR4的单元PE的比较对象值的位数相等的位数被输入 给单元组GR0~GR4。 
此处,比较对象值是指,在可变长度解码时,表示被分离成在可变长度解码表中参照的任意位长的位流,在可变长度编码时,表示在可变长度编码表中参照的量化后的正交变换系数。该正交变换系数例如在MPEG方式的情况下,相当于DCT系数。 
接下来,对动作进行说明。 
最初,对配置进行说明。 
配置是指,将与每个可变长度编码/解码方式对应的数据变换内容设定在表装置17的配置存储器21中而形成可变长度编码表或可变长度解码表。 
配置数据为包括该数据变换内容的数据,具体而言,包括:作为表示可变长度编码结果的数据变换值的位流、作为表示可变长度解码结果的数据变换值的系数数据、查找树的分支代码(分支代码为对单元PE进行重构的数据,在分支代码中包括表示接下来提供比较命令信号R的单元组的指定代码、接下来使用的页序号(图5所示那样的将表分割成某位数以下,在将该表解释成查找树时,可以同时比较的部分树的集合单位为“页”,“页序号”为指定比较对象的部分树所属的页的信息)等)等。 
可变长度编码解码装置5例如在电源刚刚接通之后从外部接收外部复位信号、或者接收基于控制寄存器16的设定的软件复位信号时,被复位。 
在复位之后,可变长度编码解码装置5的拆包部14、打包部15以及表装置17成为初始状态,直到从CPU2接收到起动指示为止保持初始状态。 
CPU2在起动之后作为初始化动作,通过控制总线I/F11,将保存在存储器3中的与可变长度编码或可变长度解码对应的配置数据发送给表装置17的配置存储器21。 
通过将配置数据保存在配置存储器21中,被设定成表装置17可以进行作为可变长度编码表或可变长度解码表的动作的状态。 
此处,对表示图4的可变长度解码表的配置数据的映射方法进行说明。 
图2的表装置17为可以一次进行4位比较的表装置,在构成需要比4位大的位数的可变长度编码表或可变长度解码表的情况下,如后所述,通过动态地变更页序号来实现表整体。但是,为了抑制对地址解码器26输入的页序号的位数增加,而尽可能减小页序号的最大值。即,以将查找树的根不同的部分树尽可能填入同一页内的方式进行映射。 
构成表装置17的单元PE0~PE29由于所分配的固有的比较对象值的位数为1位、2位、3位或4位,所以将图4的可变长度解码表的各可变长度码分割成1~4位,而制作图5所示那样的查找树。 
对作为比较点的查找树的节点n0~n13中的比较对象位图案(例如在节点n3的情况下为“011”)与输入位串(由多路选择器22选择的输入数据的位串)进行比较,在该比较对象位图案与输入位串一致的情况下,在与该节点连接的子节点(例如节点n3的子节点为节点n5~n10)中,对接着的输入位串进行比较。 
图6是示出图5的节点n0~n13与图2的表装置17的单元PE映射的状态的说明图。 
在图6的例子中,如下所述,节点n0~n13与表装置17的单元PE映射。 
节点n0→单元PE1 
节点n5→单元PE2 
节点n6→单元PE3 
节点n7→单元PE4 
节点n4→单元PE6 
节点n1→单元PE7 
节点n2→单元PE8 
节点n3→单元PE9 
节点n8→单元PE26 
节点n9→单元PE27 
节点n10→单元PE28 
另外,n11~n13由于比较对象位图案与节点n5~n7相同,所以与其他页的单元PE2~PE4映射。 
由节点n0~n4构成的部分树与由节点n5~n10构成的部分树虽然是根不同的部分树彼此,但由于所分配的比较对象值都不重叠,所以可以与同一页映射。 
在第一次的比较处理中,表控制部27将比较命令信号R0、R2输出给单元组GR0、GR2(比较命令信号R0、R2的输出依照从控制寄存器16输出的初始代码),进行单元组GR0、GR2的单元PE0、PE1、PE6~PE13所固有的比较对象值与输入位串的比较。 
例如,在单元PE6的比较处理一致的情况下,由于在与单元PE6映射的节点n4上连接有节点n11~n13,所以未完成一致。 
由节点n11~n13构成的部分树由于如上所述与其他页的单元PE2~PE4映射,所以将表示该其他页的页序号输出给地址解码器26,并且将比较命令信号R1输出给单元PE2~PE4所属的单元组GR1,从而进行表的重构。 
另外,在单元PE9的比较处理一致的情况下也是未完成一致,但连接到与单元PE9映射的节点n3上的节点n5~n10由于映射到和节点n3相同的页,所以不进行页序号的切换。 
在该情况下,通过将比较命令信号R1、R4输出给节点n5~n10被映射的单元PE2~PE4、PE26~PE28所属的单元组GR1、GR4,而进行表的重构。 
在上述那样的表的重构完成后,开始第二次的比较处理。通过如此将不同的部分树填入同一页内,与使不同的部分树与其他页映射相比,可以减小页序号的最大值,可以减小输出给地址解码器26的页序号的位数。 
接下来,对可变长度解码的动作例子进行具体说明。图7是示出可变长度解码的动作例子的说明图。 
CPU2如上所述通过控制总线I/F11,将保存在存储器3中的与可变长度解码对应的配置数据发送给表装置17的配置存储器21。 
通过将配置数据保存在配置存储器21中,被设定成表装置17可以进行作为可变长度解码表的动作的状态。 
CPU2从输入输出端口1输入可变长度解码对象的位流,经由总线4以及总线I/F11,将与一个宏块(macro block)大小的块数据相当的位流保存在位流存储器13中(箭头D1)。 
CPU2在将位流保存于位流存储器13中后,将指示位流的解码开始的解码开始信号写入控制寄存器16内的解码开始指示寄存器,将指示位流的选择的输入数据选择信号输出给表装置17的多路选择器22。 
拆包部14在CPU2将位流保存于位流存储器13中后,从位流存储器13以特定的位数单位读入位流(箭头D2),按照从CPU2或表装置17表示的移位值,对该位流进行移位,从而将总是有效的特定位数的位流输出给表装置17的多路选择器22(箭头D3)。 
表装置17在控制寄存器16内的解码开始指示寄存器中写入了解码开始信号后,从拆包部14读入特定位数的位流,按照该位流实施可变长度解码,将作为可变长度解码结果的固定长度代码的系数数据输出给系数数据存储器12(箭头D4),同时如果将表的使用次数清零,则通过中断信号通知CPU2。 
CPU2在从表装置17接收到中断信号时,从系数数据存储器12经由总线I/F11,读出作为可变长度解码结果的系数数据(箭头D5)。 
以下,对表装置17中的可变长度解码处理进行具体说明。 
此处,为便于说明,设为图4以及图5的表示可变长度解码表的配置数据保存在配置存储器21中,对多路选择器22输入的特定位数的位流为“0011”。图8是示出表装置17的可变长度解码处理的说明图。 
表装置17的多路选择器22在CPU2的指示之下,按照从控制寄存器16输出的输入数据选择信号,选择从拆包部14输出的位流 “0011”,将该位流“0011”输出给单元PE0~PE29。 
单元PE0~PE29在从多路选择器22输出的位流“0011”中,从该位流“0011”的开头位数起,输入与本单元的比较对象值的位数相等的位数。 
即,比较对象值为1位的单元PE0、PE1输入“0”,比较对象值为2位的单元PE2~PE5输入“00”,比较对象值为3位的单元PE6~PE13输入“001”,比较对象值为4位的单元PE14~PE29输入“0011”。 
表控制部27在控制寄存器16内的解码开始指示寄存器中被写入解码开始信号后,从控制寄存器16取得指定图4以及图5的可变长度解码表的表序号、比较动作的开始时使用的页序号(通常,包括查找树的根节点的部分树被映射的页的序号)、指定实施比较处理的单元组GR0、GR2的初始代码。 
表控制部27将指定图4以及图5的可变长度解码表的表序号与比较动作的开始时使用的页序号输出给地址解码器26,将比较命令信号R0、R2输出给单元组GR0、GR2。 
属于单元组GR0、GR2的单元PE0、PE1、PE6~PE13在从表控制部27接收到比较命令信号R0、R2时,对从多路选择器22输入的位串与固有的比较对象值进行比较。 
即,单元PE0、PE1、PE6~PE13实施下述的比较处理。 
           比较对象值   输入位串     比较结果 
单元PE0    0            0            一致 
单元PE1    1            0            不一致 
单元PE6    000          001          不一致 
单元PE7    001          001          一致 
单元PE8    010          001          不一致 
单元PE9    011          001          不一致 
单元PE10   100          001          不一致 
单元PE11   101          001          不一致 
单元PE12   110          001          不一致 
单元PE13   111   001   不一致 
在该情况下,由于单元PE0与单元PE7的比较处理一致,所以从单元PE0输出一致信号O00,从单元PE7输出一致信号O07。 
一致单元序号输出部25在从单元PE0~PE29中的某一个接收到一致信号O00~O29时,将表示存在比较处理一致的单元PE的意思的一致信号输出给地址解码器26,另外将在单元PE0~PE29中表示输出一致信号O00~O29的单元PE的一致单元序号输出给地址解码器26。 
其中,在从多个单元PE同时接收到一致信号O时,例如,在从单元PE0~PE29中的固有的比较对象值的位数少的单元依次分配了小的单元序号的情况下,优先输出更大的单元序号。 
因此,在如上所述从单元PE0、PE7同时接收到一致信号O00、O07时,将表示分配了更大的单元序号的单元PE7的一致单元序号输出给地址解码器26。 
地址解码器26在从一致单元序号输出部25接收到一致信号与一致单元序号时,从作为构成从表控制部27输出的表序号指定的变换表(图4以及图5的可变长度解码表)的查找树的部分树的、与从表控制部27输出的页序号表示的页映射的部分树的节点中,确定与一致单元序号对应的节点(与单元PE7映射的节点n1)。 
地址解码器26在确定了与一致单元序号对应的节点n1后,生成存储有对该节点n1分配的数据变换值(系数数据或查找树的分支代码)的配置存储器21上的地址。 
表控制部27从在配置存储器21中保存的数据变换值中,取得保存在由地址解码器26生成的地址中的数据变换值。 
表控制部27如果该数据变换值为系数数据,则将该数据变换值输出给系数数据存储器12,如果该数据变换值为查找树的分支代码,则从该分支代码中取得表示接下来提供比较命令信号R的单元组GR的指定代码、与接下来使用的页序号,更新提供比较命令信号R的单元组GR。 
节点n1由于如图5所示为终端节点,所以对节点n1分配作为固定长度代码的系数数据“3”的数据变换值(正交变换系数),表控制部27将系数数据“3”输出给系数数据存储器12。 
到此为止,示出了对多路选择器22输入的特定位数的位流为“0011”的情况,但例如在特定位数的位流为“0001”的情况下,比较处理一致的单元PE为单元PE0与PE6。 
在该情况下,一致单元序号输出部25从单元PE0、PE6同时接收到一致信号O00、O06,将表示分配了更大的单元序号的单元PE6的一致单元序号输出给地址解码器26。 
地址解码器26在从一致单元序号输出部25接收到表示单元PE6的一致单元序号时,从作为构成从表控制部27输出的表序号指定的变换表(图4以及图5的可变长度解码表)的查找树的部分树的、与从表控制部27输出的页序号表示的页映射的部分树的节点中,确定与该一致单元序号对应的节点(与单元PE6映射的节点n4)。 
地址解码器26在确定了与一致单元序号对应的节点n4后,生成存储有对该节点n4分配的数据变换值(系数数据或查找树的分支代码)的配置存储器21上的地址。 
表控制部27从在配置存储器21中保存的数据变换值中,取得保存在由地址解码器26生成的地址中的数据变换值。 
表控制部27如果该数据变换值为系数数据,则将该数据变换值输出给系数数据存储器12,如果该数据变换值为查找树的分支代码,则从该分支代码中取得表示接下来提供比较命令信号R的单元组的指定代码、与接下来使用的页序号,更新提供比较命令信号R的单元组GR。 
节点n4由于如图5所示为分支节点,所以对节点n4分配查找树的分支代码,表控制部27从该分支代码取得表示接下来提供比较命令信号R的单元组GR的指定代码,更新提供比较命令信号R的单元组GR。 
即,由于由与节点n4连接的节点n11~n13构成的部分树如上 所述与其他页的单元PE2~PE4映射,所以表控制部27将表示该其他页的页序号输出给地址解码器26。 
另外,表控制部27通过将比较命令信号R1输出给单元PE2~PE4所属的单元组GR1,而进行可变长度解码表的重构。 
由此,在属于单元组GR1的单元PE2~PE5接收到比较命令信号R1时,对分支点以下(比“000”下位的位)的输入位串与固有的比较对象值进行比较。 
即,属于单元组GR1的单元PE2~PE5从多路选择器22输入分支点以下(比“000”下位的位)的输入位串,实施第二次的比较处理。比较处理本身由于与第一次的比较处理相同,所以省略详细的说明。 
到此为止,示出了对多路选择器22输入的特定位数的位流为“0011”与“0001”的情况,但例如在特定位数的位流为“0110”的情况下,比较处理一致的单元PE为单元PE0与单元PE9。 
在该情况下,一致单元序号输出部25从单元PE0、PE9同时接收到一致信号O00、O09,将表示分配了更大的单元序号的单元PE9的一致单元序号输出给地址解码器26。 
地址解码器26在从一致单元序号输出部25接收到表示单元PE9的一致单元序号时,从作为构成从表控制部27输出的表序号指定的变换表(图4以及图5的可变长度解码表)的查找树的部分树的、与从表控制部27输出的页序号表示的页映射的部分树的节点中,确定与该一致单元序号对应的节点(与单元PE9映射的节点n3)。 
地址解码器26在确定了与一致单元序号对应的节点n3后,生成存储有对该节点n3分配的数据变换值(系数数据或查找树的分支代码)的配置存储器21上的地址。 
表控制部27从在配置存储器21中保存的数据变换值中,取得保存在由地址解码器26生成的地址中的数据变换值。 
表控制部27如果该数据变换值为系数数据,则将该数据变换值输出给系数数据存储器12,如果该数据变换值为查找树的分支代码,则从该分支代码中取得表示接下来提供比较命令信号R的单元组的 指定代码、与接下来使用的页序号,更新提供比较命令信号R的单元组GR。 
节点n3由于如图5所示为分支节点,所以对节点n3分配查找树的分支代码,表控制部27从该分支代码取得表示接下来提供比较命令信号R的单元组GR的指定代码,更新提供比较命令信号R的单元组GR。 
即,由于由与节点n3连接的节点n5~n10构成的部分树映射到和节点n3相同的页,所以表控制部27不进行页序号的切换,但将比较命令信号R1、R4输出给映射了节点n5~n10的单元PE2~PE4、PE26~PE28所属的单元组GR1、GR4,从而进行表的重构。 
由此,在属于单元组GR1、GR4的单元PE2~PE4、PE26~PE28接收到比较命令信号R1、R4时,对分支点以下(比“011”下位的位)的输入位串与固有的比较对象值进行比较。 
即,属于单元组GR1、GR4的单元PE2~PE4、PE26~PE28从多路选择器22输入分支点以下(比“000”下位的位)的输入位串,实施第二次的比较处理。 
到此为止,说明了可变长度解码,但还可以使用相同的电路来实施可变长度编码。 
在可变长度编码中,表装置17的输入数据为从系数数据存储器12读入的系数数据,成为固定长度的数据。 
另外,从表装置17向打包部15输出的数据为位流,成为可变长度的数据。 
图9是示出可变长度编码表的说明图,图9的可变长度编码表是抽出H.264中使用的Total Coeff/Trailing Ones表的一部分而得到的。 
在可变长度编码中,对多个值的组合进行可变长度编码处理的情况较多,H.264的Total Coeff/Trailing Ones、MPEG-2、MPEG-4的Run/Level对应于此。 
“Total Coeff”由于取0~16的值所以为5位的数据,“TrailingOnes”由于取0~3的值所以为2位的数据,设为在上位5位中配置有 “Total Coeff”、在下位2位中配置有“Trailing Ones”的7位的固定长度数据而进行可变长度编码处理。 
与上述实施可变长度解码的情况同样地,通过将固定长度数据分割成4位以下的数据而生成查找树(参照图10),与进行1~4位的比较的单元PE0~PE29映射(参照图11以及图12)。 
在图10的查找树中,即使在最初进行比较的节点n1~n4中的某一个中比较是一致的情况下,也全部由4位的节点来构成进行接下来的比较的部分树。 
在该情况下,由于无法对相同页映射多个部分树,所以如图11以及图12所示对不同的页映射。 
以下,对可变长度编码的动作例子进行具体说明。图13是示出可变长度编码的动作例子的说明图。 
CPU2如上所述通过控制总线I/F11,将保存在存储器3中的与可变长度编码对应的配置数据发送给表装置17的配置存储器21。 
通过配置数据保存在配置存储器21中,被设定成表装置17可以进行作为可变长度编码表的动作的状态。 
CPU2从输入输出端口1输入可变长度编码对象的系数数据,经由总线4以及总线I/F11,将与一个宏块大小的块数据相当的系数数据保存在系数数据存储器12中(箭头E1)。 
CPU2在将系数数据保存于系数数据存储器12中后,将指示系数数据的编码开始的编码开始信号写入控制寄存器16内的编码开始指示寄存器,将指示系数数据的选择的输入数据选择信号输出给表装置17的多路选择器22。 
表装置17在控制寄存器16内的编码开始指示寄存器中写入了编码开始信号后,从系数数据存储器12以特定位数单位读入系数数据(箭头E2),按照该系数数据实施可变长度编码,将作为可变长度编码结果的可变长度代码的位流输出给打包部15(箭头E3)。 
打包部15在从表装置17接收到位流时,以CPU总线2的数据宽度等位数单位,对该位流进行打包并保存在位流存储器13中(箭 头E4),同时将表示一个宏块的编码完成的意思通过中断信号通知给CPU2。 
CPU2在从打包部15接收到中断信号时,从位流存储器13经由总线I/F11,读出作为可变长度编码结果的位流(箭头E5)。 
以下,对表装置17中的可变长度编码处理进行具体说明。 
此处,为便于说明,设为图9以及图10的表示可变长度编码表的配置数据保存在配置存储器21中,对多路选择器22输入的特定位数的位流为“0010”。图14是示出表装置17的可变长度编码处理的说明图。 
表装置17的多路选择器22在CPU2的指示之下,按照从控制寄存器16输出的输入数据选择信号,选择保存在系数数据存储器12中的系数数据“0010”,将该系数数据“0010”输出给单元PE0~PE29。 
单元PE0~PE29在从多路选择器22输出的系数数据“0010”中,从该系数数据“0010”的开头位数起,输入与本单元的比较对象值的位数相等的位数。 
即,比较对象值为1位的单元PE0、PE1输入“0”,比较对象值为2位的单元PE2~PE5输入“00”,比较对象值为3位的单元PE6~PE13输入“001”,比较对象值为4位的单元PE14~PE29输入“0010”。 
表控制部27在控制寄存器16内的编码开始指示寄存器中被写入了编码开始信号后,从控制寄存器16取得指定图9以及图10的可变长度编码表的表序号、比较动作的开始时使用的页序号(通常,包括查找树的根节点的部分树被映射的页的序号)、指定实施比较处理的单元组GR2的初始代码。 
表控制部27将指定图9以及图10的可变长度编码表的表序号与比较动作的开始时使用的页序号输出给地址解码器26,将比较命令信号R2输出给单元组GR2。 
属于单元组GR2的单元PE6~PE13在从表控制部27接收到比较命令信号R2时,对从多路选择器22输入的位串与固有的比较对象值进行比较。 
即,单元PE6~PE13实施下述的比较处理。 
            比较对象值   输入位串     比较结果 
单元PE6     000          001          不一致 
单元PE7     001          001          一致 
单元PE8     010          001          不一致 
单元PE9     011          001          不一致 
单元PE10    100          001          不一致 
单元PE11    101          001          不一致 
单元PE12    110          001          不一致 
单元PE13    111          001          不一致 
在该情况下,由于单元PE7的比较处理一致,所以一致信号O07从单元PE7输出给一致单元序号输出部25。 
一致单元序号输出部25在从单元PE7接收到一致信号O07时,将表示存在比较处理一致的单元PE的意思的一致信号输出给地址解码器26,另外将表示比较处理一致的单元PE为单元PE7的意思的一致单元序号输出给地址解码器26。 
此处,比较处理一致的单元PE仅为单元PE7,但在多个单元PE中比较处理一致,而从多个单元PE同时接收到一致信号O时,例如,在从单元PE0~PE29中的固有的比较对象值的位数少的单元依次分配了小的单元序号的情况下,优先输出更大的单元序号。 
例如,在从单元PE0、PE7同时接收到一致信号O00、O07时,将表示分配了更大的单元序号的单元PE7的一致单元序号输出给地址解码器26。 
地址解码器26在从一致单元序号输出部25接收到一致信号与一致单元序号时,从作为构成从表控制部27输出的表序号指定的变换表(图9以及图10的可变长度编码表)的查找树的部分树的、与从表控制部27输出的页序号表示的页映射的部分树的节点中,确定与一致单元序号对应的节点(与单元PE7映射的节点n2)。 
地址解码器26在确定了与一致单元序号对应的节点n2后,生成 存储有对该节点n2分配的数据变换值(可变长度代码的位流或查找树的分支代码)的配置存储器21上的地址。 
表控制部27从在配置存储器21中保存的数据变换值中,取得保存在由地址解码器26生成的地址中的数据变换值。 
表控制部27如果该数据变换值为可变长度代码的位流,则将该数据变换值输出给打包部5,如果该数据变换值为查找树的分支代码,则从该分支代码中取得表示接下来提供比较命令信号R的单元组GR的指定代码,更新提供比较命令信号R的单元组GR。 
节点n2由于如图10所示为分支节点,所以对节点n2分配查找树的分支代码,表控制部27从该分支代码中取得表示接下来提供比较命令信号R的单元组GR的指定代码、与接下来使用的页序号,更新提供比较命令信号R的单元组GR。 
即,由于由与节点n2连接的节点n10~n18构成的部分树如图12所示与其他页的单元PE14~PE16、PE18~PE20、PE22、PE23、PE26映射,所以表控制部27将表示该其他页的页序号输出给地址解码器26。 
另外,表控制部27通过将比较命令信号R3、R4输出给单元PE14~PE16、PE18~PE20、PE22、PE23、PE26所属的单元组GR3、GR4,而进行可变长度解码表的重构(参照图15)。 
由此,在属于单元组GR3、GR4的单元PE14~PE29接收到比较命令信号R3、R4时,对分支点以下(比“001”下位的位)的输入位串与固有的比较对象值进行比较。 
即,属于单元组GR3、GR4的单元PE14~PE29从表控制部27接收比较命令信号R3、R4,从多路选择器22,作为分支点以下(比“001”下位的位)的输入位串,例如输入了“0000”时,实施第二次的比较处理。 
在该情况下,单元PE14的比较处理一致,一致信号O14从单元PE14输出给一致单元序号输出部25。 
一致单元序号输出部25在从单元PE14接收到一致信号O14时, 将表示存在比较处理一致的单元PE的意思的一致信号输出给地址解码器26,另外将表示比较处理一致的单元PE为单元PE14的意思的一致单元序号输出给地址解码器26。 
地址解码器26在从一致单元序号输出部25接收到表示单元PE14的一致单元序号时,从作为构成从表控制部27输出的表序号指定的变换表(图9以及图10的可变长度编码表)的查找树的部分树的、与从表控制部27输出的页序号表示的页映射的部分树的节点中,确定与该一致单元序号对应的节点(与单元PE14映射的节点n10)。 
地址解码器26在确定了与一致单元序号对应的节点n10后,生成存储有对该节点n10分配的数据变换值(可变长度代码的位流或查找树的分支代码)的配置存储器21上的地址。 
表控制部27从在配置存储器21中保存的数据变换值中,取得保存在由地址解码器26生成的地址中的数据变换值。 
表控制部27如果该数据变换值为可变长度代码的位流,则将该数据变换值输出给打包部15,如果该数据变换值为查找树的分支代码,则从该分支代码中取得表示接下来提供比较命令信号R的单元组GR的指定代码、与接下来使用的页序号,更新提供比较命令信号R的单元组GR。 
节点n10由于如图10所示为终端节点,所以对节点n10分配作为可变长度代码的位流“0000000111”的数据变换值,表控制部27将位流“0000000111”输出给打包部15。 
如上所述,根据本实施方式1,设置有:单元PE0~PE29,在接收到比较命令信号时对固有的比较对象值与输入数据进行比较,如果该比较对象值与输入数据一致则输出一致信号;一致单元序号输出部25,输出表示在单元PE0~PE29中输出一致信号的单元PE的一致单元序号;以及地址解码器26,从构成变换表的查找树的节点中,确定与从一致单元序号输出部25输出的一致单元序号对应的节点,表控制部27从配置存储器21中取得对由地址解码器26确定的节点分配的数据变换值,如果该数据变换值为表示编码结果或解码结果的数 据,则将该数据变换值输出给外部,如果该数据变换值为查找树的分支代码,则更新提供比较命令信号的单元PE,所以无需实施针对单元PE的寄存器群写入配置数据的写入处理,而可以实施可变长度编码处理、可变长度解码处理,其结果,起到可以实现可变长度编码处理、可变长度解码处理的高速化的效果。 
即,根据本实施方式1,可以设定与依照国际标准的可变长度编码方式、可变长度解码方式对应的配置数据,所以可以构成可以进行各种方式的动态重构的表。 
另外,安装有该表装置17的可变长度编码解码装置由于可以通过一个电路实施可变长度编码处理与可变长度解码处理,所以可以实现装置的小型化、低功耗化。 
另外,即使当前使用的一个单元集合体中可以比较的位数不满足应比较的最大位数,通过对单元进行重构,也可以进行最大位数的比较。通过将表的配置数据保持于配置存储器21中,对于规模大的表也无需在比较动作过程中从CPU2再次重新写入配置数据,而可以大幅缩短与配置相关的循环数。 
实施方式2 
在上述实施方式1中,示出了安装有表装置17的可变长度编码解码装置,但也可以如图16所示,使用表装置17来构成实施可变长度编码处理的可变长度编码装置。 
在该情况下,无需图1的拆包部14。 
实施方式3 
在上述实施方式1中,示出了安装有表装置17的可变长度编码解码装置,但也可以如图17所示,使用表装置17来构成实施可变长度解码处理的可变长度解码装置。 
在该情况下,无需图1的打包部15。 
实施方式4 
图18是示出本发明的实施方式4的可变长度编码解码装置结构的结构图。 
输入输出端口1是如下的端口:在可变长度编码时取入图像数据并且输出由可变长度编码解码装置5编码的位流,另一方面在可变长度解码时取入位流,并且输出由可变长度编码解码装置5解码的图像数据。 
CPU2实施各部的控制以及运动图像的编码处理或解码处理中的可变长度编码或可变长度解码以外的处理。存储器3具有CPU2处理的命令区域以及保存配置数据等的区域。总线4是输入输出端口1、CPU2、存储器3以及可变长度编码解码装置5的数据传送中使用的路径。 
可变长度编码解码装置5构成为包括总线I/F11、系数数据存储器12、位流存储器13、拆包部14、打包部15、控制寄存器16以及表装置17。此处,系数数据存储器12是保存所编码的系数数据或所解码的系数数据的部件。总线I/F11是CPU2、与可变长度编码解码装置5的各部的数据传送中使用的路径。位流存储器13是保存解码对象的位流或编码结果的位流的部件。 
拆包部14是如下部件:对于在解码时从位流存储器13中以CPU总线的数据宽度等位数单位读入的固定长度的位流,使其移位表装置17的解码中消耗的位数后输出,而作为表装置17的输入数据。打包部15是如下部件:将作为在编码时表装置17编码的输出数据而得到的可变长度代码的位流打包成CPU总线的数据宽度等位数单位(固定长度数据)并保存在位流存储器13中。 
控制寄存器16通过外部复位信号被复位,是如下部件:通过来自CPU2的指示,设定:配置、编码或解码时用于选择向表装置17的输入数据的输入数据选择信号112、初始代码,该初始代码指定在表装置17中在比较动作的开始时使用的后述的输出值寄存器群32(参照图20)的寄存器的选择、多个单元组结构的情况下的开始比较动作的单元组。 
信号线101是如下信号线:用于在可变长度编码以及解码刚要开始之前,传送经由总线I/F11从CPU2对表装置17设定的配置数据、 与指定写入配置数据的表装置17内的寄存器的寄存器指定地址信号。信号线102是如下信号线:用于经由总线4以及总线I/F11从CPU2向控制寄存器16进行信息的写入以及读出。信号线103是如下信号线:用于与构成可变长度编码解码装置5的各部连接,设定各部的动作模式、或者从各部对控制寄存器16进行写入以及读出。 
信号线104是如下信号线:用于经由总线4以及总线I/F11从CPU2对位流存储器13进行位流数据的写入以及读出。信号线105是如下信号线:用于在解码时从位流存储器13向拆包部14传送位流数据。信号线106是如下信号线:用于在解码时从拆包部14向表装置17传送位流数据以及从表装置17向拆包部14发送移位值。信号线107是如下信号线:用于在编码时从表装置17向打包部15传送编码数据。 
信号线108是如下信号线:用于在编码时从打包部15向位流存储器13传送位流数据。信号线109是如下信号线:用于在编码时从系数数据存储器12向表装置17传送编码的数据、或者在解码时从表装置17向系数数据存储器12传送系数数据或解码数据。信号线110是如下信号线:用于在编码时从CPU2向系数数据存储器12写入系数数据或编码的数据、或者在解码时从系数数据存储器12中读出系数数据或解码数据。信号线111是如下供给线:用于使可变长度编码解码装置5复位的从外部向控制寄存器16提供外部复位信号。 
图19是示出图18中的表装置的结构例子的框图。在图19中,表装置17具备多个可以进行动态重构的单元(以下称为单元)PE0~PE29、多路选择器(以下称为MUX)30、逻辑和电路36、表控制部37。在单元PE0~PE29中,针对每个单元,按照每个固有的比较对象值119的位长进行分组。 
例如,比较对象值119的位长为1位的单元PE0、PE1属于单元组GR0,比较对象值119的位长为2位的单元PE2~PE5属于单元组GR1,比较对象值119的位长为3位的单元PE6~PE13属于单元组GR2,比较对象值119的位长为4位的单元PE14~PE21、PE22~PE29 属于单元组GR3、GR4。 
MUX 30是选择向单元PE0~PE29的输入数据115的部件。详细而言,可变长度编码解码装置5在被设定成编码模式或解码模式中的某一个的情况下根据从图18所示的控制寄存器16提供的输入数据选择信号112,作为向表装置17内的单元PE0~PE29的输入数据115,在编码模式的情况下选择系数数据114,在解码模式的情况下选择位流数据113。 
在配置模式时,从总线I/F11经由图18所示的信号线101与寄存器指定地址信号117一起提供配置数据(变换表)116。寄存器指定地址信号117是用于指定配置数据116的写入目的单元与该单元内的寄存器的信号,是针对所有单元PE0~PE29输入的。 
输出信号O0~O29是在编码模式以及解码模式时从各单元PE0~PE29输出的信号,包括:在后述的比较动作中表示一致的一致信号(在后述的图20中附加了标号122)、与在一致时从寄存器输出的寄存器的输出值(数据变换值)或分支代码(在后述的图20中附加了标号123)。逻辑和电路36是求出输出信号O0~O29的逻辑和,而取得为表装置17的数据输出124的部件。 
表控制部37是在逻辑和电路36的数据输出124为分支代码的情况下,根据构成该分支代码的寄存器选择值,生成从单元内的输出值寄存器群(在后述的图20中附加了标号32)中指定接下来使用的寄存器的寄存器选择信号118,并且根据构成分支代码的单元组的指定代码,生成发送给接下来进行比较动作的单元组的比较命令信号R0~R4的单元控制部件,并且,如果逻辑和电路36的数据输出124为表示编码结果或解码结果的数据,则输出数据输出124。 
图20是示出图19中的单元组的结构例子的框图。在图20中,单元具有比较器31、输出值寄存器群32、地址解码器33、MUX 34以及MUX 35。地址解码器33是如下部件:对在配置模式时输入的寄存器指定地址信号117进行解码,并利用该解码信号120,指定写入配置数据116的输出值寄存器群32的寄存器。 
比较器31是对输入数据115与作为每个单元中固有的固定值的比较对象值119进行比较,在两者一致时输出一致信号122的部件。每个单元中固有的比较对象值119的位长是针对单元组GR0~GR4的每一个决定的。 
例如,在图19中,单元组GR0的各单元的比较对象值119的位长为1位,单元PE0的比较对象值119的位图案为“0”,单元PE1的比较对象值119的位图案为“1”。单元组GR1的各单元的比较对象值119的位长为2位,单元PE2的比较对象值119的位图案为“00”,单元PE3的比较对象值119的位图案为“01”,单元PE4的比较对象值119的位图案为“10”,单元PE5的比较对象值119的位图案为“11”。 
单元组GR2的各单元的比较对象值119的位长为3位,且单元PE6的比较对象值119的位图案为“000”,单元PE7的比较对象值119的位图案为“001”,单元PE8的比较对象值119的位图案为“010”,单元PE9的比较对象值119的位图案为“011”,单元PE10的比较对象值119的位图案为“100”,单元PE11的比较对象值119的位图案为“101”,单元PE12的比较对象值119的位图案为“110”,单元PE13的比较对象值119的位图案为“111”。 
单元组GR3的各单元的比较对象值119的位长为4位,且单元PE14的比较对象值119的位图案为“0000”,单元PE15的比较对象值119的位图案为“0001”,单元PE16的比较对象值119的位图案为“0010”,单元PE17的比较对象值119的位图案为“0011”,单元PE18的比较对象值119的位图案为“0100”,单元PE19的比较对象值119的位图案为“0101”,单元PE20的比较对象值119的位图案为“0110”,单元PE21的比较对象值119的位图案为“0111”。 
单元组GR4的各单元的比较对象值119的位长为4位,且单元PE22的比较对象值119的位图案为“1000”,单元PE23的比较对象值119的位图案为“1001”,单元PE24的比较对象值119的位图案为“1010”,单元PE25的比较对象值119的位图案为“1011”,单 元PE26的比较对象值119的位图案为“1100”,单元PE27的比较对象值119的位图案为“1101”,单元PE28的比较对象值119的位图案为“1110”,单元PE29的比较对象值119的位图案为“1111”。 
关于输入数据115,对各单元组GR0~GR4,从其开头位数起,输入与属于各单元组GR0~GR4的单元的比较对象值119的位长相同的位数的位值。 
在图20中,输出值寄存器群32是如下部件:在配置时被写入配置数据116,具有保持作为数据变换值的输出值(在解码时是正交变换系数、在编码时是不确定长度的位流)、以及代替其的分支代码的多个寄存器。即,对于输出值寄存器群32,在其单元的比较动作中一致时,如果该单元被指定成求出最终值的叶子(leaf),则对所对应的寄存器写入输出值,另一方面,如果该单元被指定成分支,则对所对应的寄存器写入分支代码。 
另外,分支代码包括将输出值寄存器群32的寄存器变更成接下来使用的寄存器的寄存器选择值、与指定接下来进行比较动作的单元组的指定代码。 
MUX 34是如下寄存器选择部件:根据寄存器选择信号118,选择输出值寄存器群32的寄存器,输出其保持的输出值或分支代码而作为输出值121。MUX 35是如下部件:根据一致信号122从MUX 34中选择从输出值寄存器群32中选择的输出值或分支代码,除此以外、即未从比较器31输出一致信号122的情况、以及该单元并不是比较对象的单元的情况下选择“0”,而作为输出数据123。 
接下来,使用图18~图20对配置模式进行说明。 
首先,可变长度编码解码装置5通过在电源刚刚接通之后等从外部提供的外部复位信号、或者基于控制寄存器16的设定的软件复位信号被复位。在复位之后,拆包部14、打包部15、表装置17成为初始状态,直到从CPU2接收到起动指示为止保持状态。CPU2在起动之后作为初始化动作,将与可变长度编码或可变长度解码对应的配置数据与寄存器指定地址信号一起,经由信号线101发送给表装置17。 
如图19以及图20所示,配置数据116被输入给构成表装置17的各单元PE0~PE29。在各单元PE0~PE29内,寄存器指定地址信号117通过地址解码器33被解码,利用该解码信号120,从各单元的输出值寄存器群32中指定成为写入对象的寄存器。因此,对该指定的各寄存器写入配置数据116的对应的数据。 
此时,在配置动作之前,通过将表装置17的所有寄存器的值复位成“0”,而仅对映射了配置数据116的寄存器写入配置数据116即可,而可以省略向未映射配置数据116的寄存器写入配置数据的写入动作。通过该动作,表装置17被设定成可以作为可变长度编码表或可变长度解码表动作的状态。 
接下来,对配置数据的映射方法进行说明。 
图21是示出可变长度解码表的结构例子的图。在图21的例子中,设定了二进制的可变长度码、与其对应的十进制的解码值、以及预先计算出的可变长度码的比较一致概率。此处,表装置17可以一次进行4位比较。另外,在构成需要比4位大的位长的可变长度编码/解码表的情况下,如后所述,通过动态地变更表装置17的单元内使用的寄存器而实现表整体。 
另外,在该情况下所要求的是减少寄存器的变更次数,因此,根据上述预先计算出的比较一致概率来向各单元的各寄存器映射配置数据。具体而言,在可变长度编码中,对比较一致概率高的系数分配了短的代码,而先比较该比较一致概率高的代码地进行映射。 
在图21中,例如与直到表的上三个行为止所设定的可变长度码一致的概率为66%。构成表装置17的各单元PE0~PE29被分成进行1位、2位、3位、或4位中的某一个比较的单元,所以将图21所示的可变长度解码表的各可变长度码分割成1~4位,而进行图22所示那样的比较分配。 
对作为比较点的节点n0~n13所具有的比较对象位图案(例如在节点n3的情况下“011”)、与从输入位串的开头位起的比较对象位图案的位数量的位串(在节点n3的情况下从输入位串的开头位起 的三位量的位串)进行比较,在一致时在与该节点连接的“子”节点(对节点进一步分支而连接的节点、例如节点n3的“子”节点为节点n5~n10)中,对输入位串的接着的位串进行比较。如果输入位串为“01100”,则在节点n5中对接着的“00”进行比较。 
图23是用于说明将图22中的各节点n0~n13与图19中的各单元PE0~PE29映射的情况的图。在图23中,对单元PE1映射节点n0,对单元PE2映射节点n5,对单元PE3映射节点n6,对单元PE4映射节点n7,对单元PE6映射节点n4,对单元PE7映射节点n1,对单元PE8映射节点n2,对单元PE9映射节点n3,对单元PE26映射节点n8,对单元PE27映射节点n9,对单元PE28映射节点n10。另外,如图22所示,节点n11~n13的比较对象位图案与节点n5~n7相同,所以与单元PE2~PE4内的其他寄存器分别映射。 
在第一次的比较中,如图19所示,输入比较命令信号R0、R2,在单元PE0、PE1、以及PE6~PE13中,对各单元的比较对象值119与输入位串进行比较。此处,如在图22以及图23中用同一斜线所示,在映射了节点n0的单元PE1、在映射了节点n4的单元PE6、在映射了节点n1的单元PE7、在映射了节点n2的单元PE8、在映射了节点n3的单元PE9中,进行第一次的比较。此时,输入位串为“1”、“001”、“010”,且在单元PE0、单元PE7、单元PE8中,比较的一致完成的概率为66%。 
在未完成一致的情况下、即在单元PE6中一致的情况下,通过寄存器的切换、与变更输入比较命令信号的单元组,而进行表的重构。另外,在单元PE9中一致的情况下,不进行寄存器的切换,而通过变更输入比较命令信号的单元组而转移到第二次的比较,如在图22以及图23中用同一斜线所示,在映射了节点n5的单元PE2、在映射了节点n6的单元PE3、在映射了节点n7的单元PE4、在映射了节点n8的单元PE26、在映射了节点n9的单元PE27、在映射了节点n10的单元PE28中,进行比较。 
因此,针对比较一致概率处于66%的代码,无需进行表的重构 以及比较命令信号的变更而可以得到输出数据,可以将寄存器与比较命令信号的变更次数抑制为最小限。另外,在后面叙述对表进行重构的动作。 
接下来,对可变长度解码的动作例子进行说明。 
图24是用于说明图18中的可变长度编码解码装置的可变长度解码的动作例子的图,按照该图进行说明。另外,在图24中对与图18相同的结构要素附加同一标号,省略各信号、数据传输的信号线等的说明。解码动作是在将上述配置数据写入表装置17的单元之后进行的。首先,CPU2经由总线I/F11,向位流存储器13写入与一个宏块大小的块数据相当的位流数据(图24中的箭头D1)。 
在写入之后,在控制寄存器16内的解码开始指示寄存器中写入解码开始信号,将输入数据选择信号112提供给图19所示的MUX 30,选择位流数据而作为图19所示的输入数据115,从而起动解码动作。拆包部14从位流存储器13中以某特定位数单位读入与一个宏块大小的块数据相当的位流(图24中的箭头D2),按照从CPU2或表装置17表示的移位值使该位流数据移位,对表装置17输出总是有效的某特定位数的位流数据(图24中的箭头D3)。 
在表装置17中,按照所输入的上述特定位数的位流进行可变长度解码,将系数数据输出给系数数据存储器12(图24中的箭头D4),同时如果将表的使用次数清零则通过中断信号通知CPU2。接收到解码完成的中断信号的CPU2经由总线I/F11从系数数据存储器12中读出解码结果(图24中的箭头D5)。 
以图21以及图22所示的表为例子,对在可变长度解码时在表装置17内进行的比较动作进行说明。图25是示出使用了图19中的可变长度解码表的可变长度解码的动作例子的图。在图25中,首先,将作为输入数据115而输入的特定位数的位流设为“0011”。 
在处于解码模式时,位流数据113在MUX 30中通过输入数据选择信号112,被选择成输入数据115、即位流数据“0011”,对各单元PE0~PE29,从“0011”的开头位起分别输入与各单元的比较对 象值119相同位长的位流数据。 
即,对比较对象值119的位长为1位的单元PE0、PE1输入“0”,对比较对象值119的位长为2位的单元PE2~PE5输入“00”,对比较对象值119的位长为3位的单元PE6~PE13输入“001”,对比较对象值119的位长为4位的单元PE14~PE29输入“0011”。 
另一方面,表控制部37参照图24所示的控制寄存器16的设定状态,读出比较动作开始时使用的指定图20所示的输出值寄存器群32的寄存器的选择与开始比较动作的单元组的初始代码,根据该初始代码生成比较命令信号R0、R2与寄存器选择信号118。 
寄存器选择信号118被输入给所有单元PE0~PE29,通过图20所示的MUX 34,分别选择输出值寄存器群32的最初使用的寄存器。输入给单元组GR0的比较命令信号R0被提供给单元PE0、PE1内的图20所示的比较器31,输入给单元组GR2的比较命令信号R2被提供给单元PE6~PE13内的比较器31。 
对比较器31提供了比较命令信号的各单元通过比较器31对输入的位流与各单元中固定的固有的比较对象值119进行比较。即,在单元PE0中对比较对象值“0”与位流“0”进行比较,在单元PE1中对比较对象值“1”与位流“0”进行比较,在单元PE6中对比较对象值“000”与位流“001”进行比较。 
另外,在单元PE7中对比较对象值“001”与位流“001”进行比较,在单元PE8中对比较对象值“010”与位流“001”进行比较,在单元PE9中对比较对象值“011”与位流“001”进行比较。进而,在单元PE10中对比较对象值“100”与位流“001”进行比较,在单元PE11中对比较对象值“101”与位流“001”进行比较,在单元PE12中对比较对象值“110”与位流“001”进行比较,在单元PE13中对比较对象值“111”与位流“001”进行比较。 
在该情况下,在单元PE0与单元PE7中比较是一致的,从各自的比较器31输出一致信号122。但是,单元PE0由于是未映射配置数据的单元,所以单元PE0的输出值寄存器群32的对应的寄存器中 未写入有配置数据,而被设定复位成“0”的值。 
另一方面,如图23所示,单元PE7是映射了与图22所示的节点n1对应的配置数据的单元,并且是叶子。因此,由图20所示的MUX 34抽出输出值寄存器群32中保持的对应的输出值(正交变换系数)。如图20所示,MUX 35根据从比较器31输出的一致信号122,取出从输出值寄存器群32中抽出的输出值121,单元PE7输出作为该输出值121的输出数据123与一致信号122而作为向逻辑和电路36的输出O7。 
在输出了一致信号时,如图25所示,通过逻辑和电路36对从所有单元PE0~PE29输出的信号O0~O29进行逻辑和运算并输出而作为解码结果(数据输出124)。在该例子的情况下,映射了配置数据并且比较是一致的单元仅为PE7,除此以外的单元的输出值为“0”,所以逻辑和电路36的数据输出124等于单元PE7的输出值O7。 
另外,在输入数据115的位流数据例如为“0001”的情况下,在该阶段中一致的比较对象值的单元为PE0与PE6。但是,单元PE0由于是未映射配置数据的单元,所以输出值O0成为“0”。 
另一方面,如图23所示,单元PE6为映射了与图22所示的节点n4对应的配置数据的单元,并且被设定成分支,所以作为输出值O6,成为对图20所示的输出值寄存器群32设定的分支代码。其结果,逻辑和电路36的数据输出124成为由单元PE6的输出值寄存器群32设定的分支代码。 
表控制部37根据该分支代码,变更输入给图20所示的MUX 34的寄存器选择信号118,并且变更接下来输入比较命令信号的单元组。由此,进行已经保持数据的寄存器的变更选择而重构可变长度解码表。 
这样,利用寄存器选择信号118选择输出值寄存器群32的新的寄存器,并且输入比较命令信号R0~R4中的某一个信号,从而可以进行分支点以下(比“000”下位的位)的比较。可以在从分支代码的输出到输出新的寄存器选择信号118、以及比较命令信号R为止的 一个时钟中进行该表重构。 
另外,在输入数据115的位流数据例如为“0110”的情况下,在该阶段中一致的比较对象值的单元为PE0与PE9。但是,单元PE0由于是未映射配置数据的单元,所以输出值O0成为“0”。 
另一方面,如图23所示,单元PE9为映射了与图22所示的节点n3对应的配置数据的单元,并且被设定成分支,所以作为输出值O9,成为设定在图20所示的输出值寄存器群32中的分支代码,作为逻辑和电路36的数据输出124而输入给表控制部37。 
在该情况下,由于分支点以下(比“011”下位的位)存在于已经选择的寄存器上,所以在表控制部37中,不变更寄存器选择信号118,而仅变更接下来输入比较命令信号的单元组。在直到变更输入比较命令信号的单元组为止的一个时钟中开始下一次的比较。 
以上,说明了可变长度解码,但还可以使用相同电路来执行可变长度编码。即,在可变长度编码中,在图19中,向表装置17的输入数据115是从图18所示的系数数据存储器12中读入的系数数据114,成为固定长度。另外,表装置17的输出是输出给打包部15的位流,成为可变长度。 
接下来,对可变长度编码的动作进行说明。 
图26是示出实施方式4的可变长度编码解码装置的可变长度编码的动作例子的图。另外,在图26中对与图18相同的结构要素附加同一标号,省略各信号、数据传输的信号线等的说明。编码动作是在通过配置模式将用于编码的配置数据116写入表装置17的单元而形成可变长度编码表之后进行的。 
首先,CPU2经由总线I/F11,将以与一个宏块大小的块数据相当的编码为对象的系数数据写入系数数据存储器12(图26中的箭头E1)。在写入之后,在控制寄存器16内的编码开始指示寄存器中写入编码开始信号,将输入数据选择信号112提供给图19所示的MUX30,选择系数数据而作为图19所示的输入数据115,从而起动编码动作。 
表装置17从系数数据存储器12中,以某特定位数单位读入系数数据(图26中的箭头E2),按照所输入的该特定位数的系数数据进行可变长度编码,将编码数据输出给打包部15(图26中的箭头E3)。打包部15将变换后的位流以CPU总线的数据宽度等位数单位保存在位流存储器13中(图26中的箭头E4),同时,通过中断信号将一个宏块的编码完成的情况通知给CPU2。接收到编码完成的中断信号的CPU2经由总线I/F11从位流存储器13中读出编码结果(图26中的箭头E5)。 
在可变长度编码模式中,在图19以及图20中,将对单元进行选择输入的系数数据设为固定位,但在其他处理行程中由于与上述解码模式的说明相同,所以此处省略说明。 
如上所述,根据本实施方式4,表装置17具备:多个单元PE0~PE29,该多个单元PE0~PE29分别具有比较器31,该比较器31以与比较对象值的位长对应的位数单位读入编码或解码的输入数据,与比较对象值进行比较,并且该多个单元PE0~PE29分别具有输出值寄存器群32,该输出值寄存器群32具有保持包括与比较对象值对应的编码或解码的输出值的配置数据116的多个寄存器,根据比较器31的比较结果输出寄存器的保持内容;逻辑和电路36,运算来自单元的输出值的逻辑和;以及表控制部37,根据在编码或解码开始时设定的初始代码或配置数据116中包含的分支代码,针对每个根据比较对象值的位长而分类了单元的单元组,指定使比较器31进行比较动作的单元,并且,根据该比较结果指定输出保持内容的寄存器,从而得到与输入数据对应的编码或解码的输出值而作为逻辑和电路36的输出,所以可以设定与依照国际标准的可变长度编码/解码方式对应的配置数据,可以构成可以进行各种方式的动态重构的表。特别地,各单元可以从输出值寄存器群32具有的多个寄存器中以一个时钟选择并变更所使用的寄存器的一个。另外,即使在当前使用的一个单元集合体中可以比较的位长不满足应比较的最大位数,通过重构单元,也可以进行最大位数的比较。 
进而,针对利用寄存器指定地址信号117的解码信号120指定的寄存器仅写入配置数据116即可,所以可以缩短写入处理中所需的时间。另外,通过将设定配置数据的寄存器,从专利文献1那样的连接信息寄存器群、位选择寄存器群、比较对象寄存器群以及输出值寄存器群这四种寄存器群削减成输出值寄存器群32这一种,也可以缩短写入处理中所需的时间。 
另外,通过构成如下可变长度编码解码装置,可以通过一个电路实施可变长度编码/解码处理,所以得到可以实现小型化、以及低功耗化的效果,该可变长度编码解码装置具备:系数数据存储器12,输入并保存可变长度编码的系数数据或可变长度解码的系数数据;位流存储器13,保存解码对象的位流或编码结果的位流;打包部15,在编码动作中,将基于作为表装置17的输出数据而得到的可变长度编码的输出值的位流打包成规定位数单位的数据并保存在位流存储器13中;拆包部14,在解码动作中,使从解码对象的位流以规定位数单位读入的固定长度的位流偏移在利用表装置17的解码中消耗的位数后输出而作为表装置17的输入数据;控制寄存器16,在通过来自外部的CPU2的指示而开始编码或解码时,设定表装置17中的单元组的指定以及根据比较器31的比较结果来指定输出保持内容的输出值寄存器群32内的寄存器的初始代码;总线4、总线I/F11等传送部,在开始编码或解码时,将应从外部的CPU2向表装置17设定的变换表以及指定将其写入的输出值寄存器群32内的寄存器的寄存器指定地址信号传送给表装置17。 
另外,在本实施方式4中,作为可变长度编码解码装置进行了说明,但也可以使用表装置17分别构成为可变长度编码装置或可变长度解码装置。通过如此构成,也可以分别起到本实施方式4中的可变长度编码的效果以及可变长度解码的效果。 
产业上的可利用性 
如上所述,本发明的表装置适用于在可变长度编码装置、可变长度解码装置或可变长度编码解码装置实施可变长度编码或可变长度 解码时,需要对应于包括国际标准方式的各种可变长度编码、可变长度解码的情况。 

Claims (12)

1.一种表装置,其特征在于,具备:
配置存储器,保持被查找树化的可变长度编码或可变长度解码的变换表;
多个比较单元,被分配有固有的比较对象值,在接收到比较命令信号时对上述比较对象值与输入数据进行比较,如果上述比较对象值与上述输入数据一致则输出一致信号;
单元序号输出部件,输出表示在上述多个比较单元中输出一致信号的比较单元的单元序号;
节点确定部件,从构成上述变换表的查找树的节点中,确定与从上述单元序号输出部件输出的单元序号对应的节点;以及
单元控制部件,从上述配置存储器中取得对由上述节点确定部件确定的节点分配的数据变换值,如果上述数据变换值为表示编码结果或解码结果的数据,则将上述数据变换值输出给外部,如果上述数据变换值为上述查找树的分支代码,则更新被提供比较命令信号的比较单元。
2.根据权利要求1所述的表装置,其特征在于,
单元控制部件在所分配的比较对象值的位数相等的比较单元彼此被分成同一比较单元组的情况下,对与构成变换表的查找树的部分树对应的比较单元组输出比较命令信号。
3.根据权利要求1所述的表装置,其特征在于,
在配置存储器中保持着多个变换表的情况下,单元控制部件输出表示使用对象的变换表的表序号,节点确定部件从构成从上述单元控制部件输出的表序号表示的变换表的查找树的节点中,确定与从单元序号输出部件输出的单元序号对应的节点。
4.一种可变长度编码装置,其特征在于,具备:
系数数据保存部件,保存可变长度编码对象的系数数据;
变换表输出部件,输出被查找树化的可变长度编码的变换表;
配置存储器,保持从上述变换表输出部件输出的变换表;
多个比较单元,被分配有固有的比较对象值,在接收到比较命令信号时对上述比较对象值与上述系数数据保存部件中保存的系数数据进行比较,如果上述比较对象值与上述系数数据一致则输出一致信号;
单元序号输出部件,输出表示在上述多个比较单元中输出一致信号的比较单元的单元序号;
节点确定部件,从构成上述变换表的查找树的节点中,确定与从上述单元序号输出部件输出的单元序号对应的节点;
单元控制部件,从上述配置存储器中取得对由上述节点确定部件确定的节点分配的数据变换值,如果上述数据变换值为位流,则输出上述位流,如果上述数据变换值为上述查找树的分支代码,则更新被提供比较命令信号的比较单元;以及
打包部件,将从上述单元控制部件输出的位流打包成位数单位的数据。
5.一种可变长度解码装置,其特征在于,具备:
位流保存部件,保存可变长度解码对象的位流;
位流输出部件,从上述位流保存部件以位数单位读入位流,输出固定长度的位流;
变换表输出部件,输出被查找树化的可变长度解码的变换表;
配置存储器,保持从上述变换表输出部件输出的变换表;
多个比较单元,被分配有固有的比较对象值,在接收到比较命令信号时对上述比较对象值与从上述位流输出部件输出的位流进行比较,如果上述比较对象值与上述位流一致则输出一致信号;
单元序号输出部件,输出表示在上述多个比较单元中输出一致信号的比较单元的单元序号;
节点确定部件,从构成上述变换表的查找树的节点中,确定与从上述单元序号输出部件输出的单元序号对应的节点;以及
单元控制部件,从上述配置存储器中取得对由上述节点确定部件确定的节点分配的数据变换值,如果上述数据变换值为系数数据,则输出上述系数数据,如果上述数据变换值为上述查找树的分支代码,则更新被提供比较命令信号的比较单元。
6.一种可变长度编码解码装置,其特征在于,具备:
系数数据保存部件,保存可变长度编码对象的系数数据;
位流保存部件,保存可变长度解码对象的位流;
位流输出部件,从上述位流保存部件以位数单位读入位流,输出固定长度的位流;
变换表输出部件,输出被查找树化的可变长度编码或可变长度解码的变换表;
配置存储器,保持从上述变换表输出部件输出的变换表;
多个比较单元,被分配有固有的比较对象值,在接收到比较命令信号时对上述比较对象值与上述系数数据或上述位流进行比较,如果上述比较对象值与上述系数数据或上述位流一致则输出一致信号;
单元序号输出部件,输出表示在上述多个比较单元中输出一致信号的比较单元的单元序号;
节点确定部件,从构成上述变换表的查找树的节点中,确定与从上述单元序号输出部件输出的单元序号对应的节点;
单元控制部件,从上述配置存储器中取得对由上述节点确定部件确定的节点分配的数据变换值,如果上述数据变换值为位流或系数数据,则输出上述数据变换值,如果上述数据变换值为上述查找树的分支代码,则更新被提供比较命令信号的比较单元;以及
打包部件,将作为从上述单元控制部件输出的数据变换值的位流打包成位数单位的数据。
7.一种表装置,其特征在于,具备:
多个比较单元,具有比较器和多个寄存器,该比较器被分配有固有的比较对象值,并在接收到比较命令信号时对上述比较对象值与输入数据进行比较,该多个寄存器保持包括与上述比较对象值对应的数据变换值的变换表,其中,如果上述比较器的比较结果表示比较对象值与输入数据的一致,则输出与寄存器选择信号对应的寄存器中保持的数据变换值,如果上述比较器的比较结果未表示比较对象值与输入数据的一致,则输出零值而作为上述数据变换值;
逻辑和电路,进行从上述多个比较单元输出的数据变换值的逻辑和运算;以及
单元控制部件,如果由上述逻辑和电路进行了逻辑和运算的数据变换值为表示编码结果或解码结果的数据,则将上述数据变换值输出给外部,如果上述数据变换值为分支代码,则根据该分支代码更新被提供上述比较命令信号的比较单元,并且根据该分支代码更新寄存器选择信号。
8.根据权利要求7所述的表装置,其特征在于,
单元控制部件根据在可变长度编码或可变长度解码的开始时设定的初始代码或分支代码中包含的寄存器选择值生成寄存器选择信号,将该寄存器选择信号输出给多个比较单元,并且在上述多个比较单元中,对与该初始代码或分支代码中包含的比较单元组的指定代码对应的比较单元输出比较命令信号。
9.根据权利要求7所述的表装置,其特征在于,
多个比较单元具备将变换表写入多个寄存器的地址解码器。
10.一种可变长度编码装置,其特征在于,具备:
系数数据保存部件,保存可变长度编码对象的系数数据;
变换表输出部件,输出被查找树化的可变长度编码的变换表;
多个比较单元,具有比较器和多个寄存器,该比较器被分配有固有的比较对象值,并在接收到比较命令信号时对上述比较对象值与上述系数数据保存部件中保存的系数数据进行比较,该多个寄存器保持包括与上述比较对象值对应的数据变换值的上述变换表,其中,如果上述比较器的比较结果表示比较对象值与系数数据的一致,则输出与寄存器选择信号对应的寄存器中保持的数据变换值,如果上述比较器的比较结果未表示比较对象值与系数数据的一致,则输出零值而作为上述数据变换值;
逻辑和电路,进行从上述多个比较单元输出的数据变换值的逻辑和运算;
单元控制部件,如果由上述逻辑和电路进行了逻辑和运算的数据变换值为位流,则输出上述位流,如果上述数据变换值为分支代码,则根据该分支代码更新被提供上述比较命令信号的比较单元,并且根据该分支代码更新寄存器选择信号;以及
打包部件,将从上述单元控制部件输出的位流打包成位数单位的数据。
11.一种可变长度解码装置,其特征在于,具备:
位流保存部件,保存可变长度解码对象的位流;
位流输出部件,从上述位流保存部件以位数单位读入位流,输出固定长度的位流;
变换表输出部件,输出被查找树化的可变长度解码的变换表;
多个比较单元,具有比较器和多个寄存器,该比较器被分配有固有的比较对象值,并在接收到比较命令信号时对上述比较对象值与从上述位流输出部件输出的位流进行比较,该多个寄存器保持包括与上述比较对象值对应的数据变换值的上述变换表,其中,如果上述比较器的比较结果表示比较对象值与位流的一致,则输出与寄存器选择信号对应的寄存器中保持的数据变换值,如果上述比较器的比较结果未表示比较对象值与位流的一致,则输出零值而作为上述数据变换值;
逻辑和电路,进行从上述多个比较单元输出的数据变换值的逻辑和运算;以及
单元控制部件,如果由上述逻辑和电路进行了逻辑和运算的数据变换值为系数数据,则输出上述系数数据,如果上述数据变换值为分支代码,则根据该分支代码更新被提供上述比较命令信号的比较单元,并且根据该分支代码更新寄存器选择信号。
12.一种可变长度编码解码装置,其特征在于,具备:
系数数据保存部件,保存可变长度编码对象的系数数据;
位流保存部件,保存可变长度解码对象的位流;
位流输出部件,从上述位流保存部件以位数单位读入位流,输出固定长度的位流;
变换表输出部件,输出被查找树化的可变长度编码或可变长度解码的变换表;
多个比较单元,具有比较器和多个寄存器,该比较器被分配有固有的比较对象值,并在接收到比较命令信号时对上述比较对象值与上述系数数据或上述位流进行比较,该多个寄存器保持包括与上述比较对象值对应的数据变换值的上述变换表,其中,如果上述比较器的比较结果表示比较对象值与系数数据或位流的一致,则输出与寄存器选择信号对应的寄存器中保持的数据变换值,如果上述比较器的比较结果未表示比较对象值与系数数据或位流的一致,则输出零值而作为上述数据变换值;
逻辑和电路,进行从上述多个比较单元输出的数据变换值的逻辑和运算;
单元控制部件,如果由上述逻辑和电路进行了逻辑和运算的数据变换值为系数数据或位流,则输出上述数据变换值,如果上述数据变换值为分支代码,则根据该分支代码更新被提供上述比较命令信号的比较单元,并且根据该分支代码更新寄存器选择信号;以及
打包部件,将作为从上述单元控制部件输出的数据变换值的位流打包成位数单位的数据。
CN2007800498034A 2007-01-19 2007-05-09 表装置、可变长度编码装置、可变长度解码装置 Expired - Fee Related CN101584120B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP010615/2007 2007-01-19
JP2007010615 2007-01-19
PCT/JP2007/059603 WO2008087750A1 (ja) 2007-01-19 2007-05-09 テーブル装置、可変長符号化装置、可変長復号装置及び可変長符号化復号装置

Publications (2)

Publication Number Publication Date
CN101584120A CN101584120A (zh) 2009-11-18
CN101584120B true CN101584120B (zh) 2013-01-09

Family

ID=39635759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800498034A Expired - Fee Related CN101584120B (zh) 2007-01-19 2007-05-09 表装置、可变长度编码装置、可变长度解码装置

Country Status (5)

Country Link
US (1) US8291150B2 (zh)
EP (1) EP2104236B1 (zh)
JP (1) JP4703730B2 (zh)
CN (1) CN101584120B (zh)
WO (1) WO2008087750A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620632B2 (en) * 2004-06-30 2009-11-17 Skyler Technology, Inc. Method and/or system for performing tree matching
US7852671B2 (en) * 2008-10-30 2010-12-14 Micron Technology, Inc. Data path for multi-level cell memory, methods for storing and methods for utilizing a memory array
US8004431B2 (en) * 2008-12-09 2011-08-23 Qualcomm Incorporated Fast parsing of variable-to-fixed-length codes
JP5075135B2 (ja) * 2009-01-16 2012-11-14 キヤノン株式会社 復号装置及びその制御方法
JP5075136B2 (ja) * 2009-01-16 2012-11-14 キヤノン株式会社 復号装置及びその制御方法
US9819358B2 (en) * 2010-02-19 2017-11-14 Skype Entropy encoding based on observed frequency
US9313526B2 (en) 2010-02-19 2016-04-12 Skype Data compression for video
US9078009B2 (en) 2010-02-19 2015-07-07 Skype Data compression for video utilizing non-translational motion information
US9609342B2 (en) 2010-02-19 2017-03-28 Skype Compression for frames of a video signal using selected candidate blocks
JP5566254B2 (ja) * 2010-10-19 2014-08-06 三菱電機株式会社 データ処理装置
US9195675B2 (en) 2011-02-24 2015-11-24 A9.Com, Inc. Decoding of variable-length data with group formats
US9727460B2 (en) * 2013-11-01 2017-08-08 Samsung Electronics Co., Ltd. Selecting a memory mapping scheme by determining a number of functional units activated in each cycle of a loop based on analyzing parallelism of a loop
US9998974B2 (en) * 2013-11-28 2018-06-12 Nec Corporation Wireless communication terminal, storage medium, and cell selection method
DE102016108081A1 (de) * 2016-05-02 2017-11-02 Denso Corporation Mikroprozessor mit Zusatz-Befehlen für Binärsuche und zugehöriges Suchverfahren
US20180095760A1 (en) * 2016-09-30 2018-04-05 James D. Guilford Instruction set for variable length integer coding
CN114930298A (zh) * 2020-03-03 2022-08-19 英特尔公司 图形处理单元和中央处理单元合作可变长度数据比特打包

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996041423A1 (en) * 1995-06-07 1996-12-19 Tv Guide On Screen Compression of an electronic programming guide
CN1281296A (zh) * 1999-07-15 2001-01-24 富士通株式会社 维特比解码器和传输设备
CN1528091A (zh) * 2001-07-13 2004-09-08 �ź㴫 压缩层次树的方法、相应的信号以及解码信号的方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3675211A (en) 1970-09-08 1972-07-04 Ibm Data compaction using modified variable-length coding
US3925780A (en) * 1973-12-26 1975-12-09 Ibm Apparatus for data compression encoding and decoding
US5351047A (en) * 1992-09-21 1994-09-27 Laboratory Automation, Inc. Data decoding method and apparatus
WO1994024672A1 (en) 1993-04-19 1994-10-27 Oki Electric Industry Co., Ltd. Circuit for decoding variable-length code, and system for decoding variable-length code which uses the circuit
KR970002483B1 (ko) * 1993-11-29 1997-03-05 대우전자 주식회사 고속의 가변길이 복호화장치
US5604499A (en) * 1993-12-28 1997-02-18 Matsushita Electric Industrial Co., Ltd. Variable-length decoding apparatus
US5541595A (en) * 1994-05-19 1996-07-30 Matsushita Electric Corporation Of America Variable length code decoder for simultaneous decoding the most significant bits and the least significant bits of a variable length code
JP3278297B2 (ja) 1994-07-20 2002-04-30 富士通株式会社 データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
US5796356A (en) * 1995-03-14 1998-08-18 Fujitsu Limited Data compressing apparatus, data restoring apparatus and data compressing/restoring system
JP3266787B2 (ja) 1995-03-14 2002-03-18 富士通株式会社 データ圧縮装置,データ復元装置,及びデータ圧縮・復元システム
US5696507A (en) * 1996-05-31 1997-12-09 Daewoo Electronics Co., Inc. Method and apparatus for decoding variable length code
US5821886A (en) * 1996-10-18 1998-10-13 Samsung Electronics Company, Ltd. Variable length code detection in a signal processing system
US5821887A (en) * 1996-11-12 1998-10-13 Intel Corporation Method and apparatus for decoding variable length codes
JP2000059234A (ja) 1998-08-10 2000-02-25 Mitsubishi Electric Corp 可変長符号処理装置
JP2000151419A (ja) 1998-11-05 2000-05-30 Asahi Chem Ind Co Ltd データ圧縮方法およびデータ圧縮装置
JP2001184870A (ja) 1999-12-27 2001-07-06 Mitsubishi Electric Corp 連想メモリ装置およびそれを用いた可変長符号復号装置
JP2001308715A (ja) 2000-04-20 2001-11-02 Mitsubishi Electric Corp 可変長符号化装置および可変長復号装置
JP2002261623A (ja) 2001-02-28 2002-09-13 Canon Inc 復号装置、復号方法、記憶媒体及びプログラムソフトウェア
JP4556087B2 (ja) * 2001-03-22 2010-10-06 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラムおよびプログラム記録媒体
KR100486251B1 (ko) * 2002-08-03 2005-05-03 삼성전자주식회사 가변 길이 코드 복호화 장치 및 방법
KR100959532B1 (ko) * 2003-12-18 2010-05-27 엘지전자 주식회사 Cavlc 복호 방법
JP4391374B2 (ja) 2004-09-29 2009-12-24 三菱電機株式会社 テーブル装置、可変長符号化/復号装置、可変長符号化装置および可変長復号装置
JP4588560B2 (ja) 2005-07-04 2010-12-01 三菱電機株式会社 テーブル装置及びこれを用いたアドレス検索装置
JP4563300B2 (ja) * 2005-11-18 2010-10-13 三菱電機株式会社 テーブル装置、可変長符号化/復号装置、可変長符号化装置及び可変長復号装置
KR100667595B1 (ko) * 2005-12-29 2007-01-11 삼성전자주식회사 가변 길이 디코더

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996041423A1 (en) * 1995-06-07 1996-12-19 Tv Guide On Screen Compression of an electronic programming guide
CN1281296A (zh) * 1999-07-15 2001-01-24 富士通株式会社 维特比解码器和传输设备
CN1528091A (zh) * 2001-07-13 2004-09-08 �ź㴫 压缩层次树的方法、相应的信号以及解码信号的方法

Also Published As

Publication number Publication date
EP2104236B1 (en) 2018-08-15
US20100057810A1 (en) 2010-03-04
JP4703730B2 (ja) 2011-06-15
EP2104236A1 (en) 2009-09-23
EP2104236A4 (en) 2012-08-01
US8291150B2 (en) 2012-10-16
CN101584120A (zh) 2009-11-18
JPWO2008087750A1 (ja) 2010-05-06
WO2008087750A1 (ja) 2008-07-24

Similar Documents

Publication Publication Date Title
CN101584120B (zh) 表装置、可变长度编码装置、可变长度解码装置
CN107590533B (zh) 一种用于深度神经网络的压缩装置
US20190196907A1 (en) Compression techniques for distributed data
KR101651911B1 (ko) 수축 압축을 위한 고속의 고도로 압축된 lz77 토큰화 및 허프만 인코딩을 위한 병렬 장치
TWI713637B (zh) 用於資料解壓縮的硬體處理器、方法及系統
JP5068849B2 (ja) レイトレーシング方法、システム、およびプログラム
CN103326730B (zh) 数据并行压缩方法
US8217813B2 (en) System and method for low-latency data compression/decompression
JP6126127B2 (ja) ステートマシンにおけるルーティング用の方法およびシステム
CN101771879B (zh) 基于cabac的并行归一化编码实现电路及编码方法
WO2016062252A1 (en) Parallel dictionary-based compression encoder
CN101951516B (zh) 基于h.264/avc中cabac的并行编码实现电路及编码方法
CN108028665B (zh) 用于使用硬件和软件进行压缩的系统、方法和装置
CN102244518A (zh) 并行解压缩的硬件实现的系统及方法
CN102902713B (zh) 一种基于图形处理单元的非确定有限自动机的匹配方法及装置
CN101776988B (zh) 一种块大小可变的可重构矩阵寄存器文件
CN107801044B (zh) 后向适应装置与相关方法
Xie et al. A code decompression architecture for VLIW processors
US20140089276A1 (en) Search unit to accelerate variable length compression/decompression
Peltenburg et al. Battling the CPU bottleneck in apache parquet to arrow conversion using FPGA
US7068192B1 (en) System and method for encoding and decoding variable-length data
JP4563300B2 (ja) テーブル装置、可変長符号化/復号装置、可変長符号化装置及び可変長復号装置
CN107943727A (zh) 一种高效dma控制器
CN105022609A (zh) 一种数据混洗方法和数据混洗单元
US7502920B2 (en) Hierarchical storage architecture for reconfigurable logic configurations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130109

CF01 Termination of patent right due to non-payment of annual fee