CN1825355A - 计算机图形数据编码装置、解码装置、编码和解码方法 - Google Patents
计算机图形数据编码装置、解码装置、编码和解码方法 Download PDFInfo
- Publication number
- CN1825355A CN1825355A CN200510131527.9A CN200510131527A CN1825355A CN 1825355 A CN1825355 A CN 1825355A CN 200510131527 A CN200510131527 A CN 200510131527A CN 1825355 A CN1825355 A CN 1825355A
- Authority
- CN
- China
- Prior art keywords
- information
- entropy
- computer graphics
- unit
- graphics data
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Abstract
计算机图形数据编码装置包括:配置用于获取计算机图形数据项的单元;配置用于预处理所获取的计算机图形数据项的单元;控制/编码单元,配置用于对预处理的计算机图形数据项进行控制最终输出的码数量的处理,以产生码;累积单元,配置用于累积包含在所产生码中的将要经受熵编码的多个部分;计算单元,配置用于基于累积的部分计算熵信息,并基于该熵信息产生码字,所述熵信息指示熵量;熵编码单元,配置用于基于所产生的码字对所产生的码进行熵编码,以产生熵码;提取单元,配置用于从熵信息中提取用于解码的最小信息;提取信息编码单元,配置用于编码最小信息以便减少最小信息的量;和输出单元,配置用于输出熵码和已编码的最小信息。
Description
技术领域
本发明涉及一种用于计算机图形的数据编码装置,编码方法,解码装置和解码方法。
背景技术
随着近来计算机图形技术的增强,图形处理硬件(GPU)的处理速率已经大大提高。通常,用于图形处理的数据存储在存储介质诸如存储器或者硬盘中,并从那里输入到GPU中。自存储介质读取数据和向存储介质写入数据需要时间。
因此,即使增加GPU的处理速度,用于数据读取和写入所需的时间仍然是计算机图形处理的一个瓶颈。
为了克服这种问题,已进行了各种尝试以通过压缩数据存取诸如数据读取或者写入所需的数据量,来提高数据存取的吞吐量。举例来说,通过霍夫曼编码(参见,例如,Michiael Deering,“几何压缩(Geometry Compression)”,国际计算机图形与交互技术会议,计算机图形与交互技术第22次年会的会议论文集(SIGGRAPH’95),第13-20页,1995年)来压缩数据量。
但是,以霍夫曼编码所代表的熵编码中,数据的熵量被用作产生编码数据的信息,所以,必须同时使用编码数据和有关用作获得编码数据的熵的信息。例如,在霍夫曼编码中,数据的产生频率被用于编码,其中数据产生的频率越高,所创建的编码越短。因此,能够获得高压缩效率的编码,但是在解码过程中必须使用表(通常称为霍夫曼表),例如,该表指示用于编码的出现频率信息与所产生码之间的对应关系。
即,在传统的编码方法中,在解码期间必须以一种或另一种方式同时参照码数据和上述的附加信息(例如,霍夫曼表)。此时,上文中提到的参考附加信息的成本问题将变得明显。
通常,附加信息与数据一起传送到解码器并用于解码由编码器产生的码字。如上所述,因为码字是使用数据中的熵量而产生的,所以附加信息的内容在数据项之间是变化的。所以,解码器基于与这些码字相对应的附加信息动态地解码码字。此时,如果花费太多时间来解码,就不可避免地恶化解码器的性能。即,这种解码抵消了为了增加吞吐量所执行的压缩编码的效果。
希望最小化用于解码所必需的时间。但是,在传统的方法中,必须动态地解码码字,这需要相当的计算代价。
为了克服该问题,还发明了一种用于静态解码码字的方法。在此方法中,试图将用于解码码字所必需的全部信息存储在一个解码器中。这种尝试在例如在传真中标准化的编码方案中进行。具体而言,使用改进的霍夫曼编码。但是,该方法导致产生了另外一个问题。即,因为解码器预先存储了码字,编码器必须仅在所存储的码字范围内执行编码。例如,当解码器存储了N个码字(N为自然数)时,编码器必须从中选择实现最高压缩效率的那个码字。
改进的霍夫曼编码将不会在具有特定趋势的传真数据中产生严重的问题。但是,它很有可能在未表现出任何特定趋势的计算机图形数据中导致严重的压缩效率降低。此外,当解码器存储了全部码字时,它就需要大的存储空间。但是,考虑到准备大的存储空间作为能够以极高速度存取的存储器的成本,这是不实际的。因此,降低存取速度将不可避免地发生,这样导致了吞吐量的大幅降低。
如上所述,传统的方法包含作为减少吞吐量或者提高成本的因素的各种问题。一般情况下解码器通常由硬件实现,诸如专用于图形处理的GPU。上述问题将增加1)0准备解码所需的时间和电路结构的成本,和2)用于解码的时间和电路结构的成本。因此,这些问题直接导致吞吐量的降低和硬件价格的增加。
这些年来,GPU已经不仅被安装到高功能机器上,也被安装到低价机器,例如弹球盘桌,汽车导航系统,移动电话,便携游戏机以及移动终端上。在实现将GPU安装到这类廉价机器中时,上述的成本增加成了严重的问题。
发明内容
根据本发明的第一方面,提供一种计算机图形数据编码装置,其包括:获取单元,配置用于获取多个计算机图形数据项;预处理单元,配置用于预处理所获取的计算机图形数据项;编码数量控制/编码单元,配置用于使预处理过的计算机图形数据项经受用于控制最终输出的码数量的处理,以产生多个码;累积单元,配置用于累积将要经受熵编码的包括在所产生码中的多个部分;计算单元,配置用于基于累积的部分计算熵信息,并基于熵信息产生多个码字,熵信息指示熵量;熵编码单元,配置用于基于所产生的码字将所产生的码进行熵编码,以产生多个熵编码;提取单元,配置用于从熵信息中提取用于解码的最小信息;提取信息编码单元,配置用于编码该最小信息以减少最小信息的量;和输出单元,配置用于输出熵编码和编码的最小信息。
根据本发明的第二方面,提供一种计算机图形数据编码装置,其包括:获取单元,配置用于获取多个计算机图形数据项;预处理单元,配置用于预处理所获取的计算机图形数据项;累积单元,配置用于累积预处理过的计算机图形数据项;计算单元,配置用于基于累积的计算机图形数据项的多个码部分计算熵信息,并基于所述熵信息产生多个码字,熵信息指示熵量;熵编码单元,配置用于基于产生的码字将累积的计算机图形数据项进行熵编码,以产生多个熵码;码数量控制/编码单元,配置用于使所产生的熵编码经受用于控制最终输出的码数量的处理,以产生多个码;提取单元,配置用于从熵信息中提取用于解码的最小信息;提取信息编码单元,配置用于编码最小信息以减少最小信息的量;和输出单元,配置用于输出码数量控制/编码单元所产生的码,和编码的最小信息。
根据本发明的第三方面,提供一种计算机图形数据编码装置,其包括:获取单元,配置用于获取多个计算机图形数据项;预处理单元,配置用于预处理所获取的计算机图形数据项;编码数量控制/编码单元,配置用于使预处理过的计算机图形数据项经受用于控制最终输出的码数量的处理,以产生多个码;码累积单元,配置用于累积第一信息,第一信息指示经受熵编码的包含在所产生码中的多个部分和每一部分的产生频率之间的关系;码字信息累积单元,配置用于预累积第二信息,该第二信息指示熵信息和基于熵信息产生的多个第一码字之间的关系,熵信息指示典型数据的熵量;码产生单元,配置用于基于所述累积的第一信息和预累积的第二信息,产生与已产生的码相对应的多个第二码字;熵编码单元,配置用于基于所产生的第二码字,将该产生的码进行熵编码,以产生多个熵码;提取单元,配置用于基于所产生的第二码字,从累积的第一信息和预累积的第二信息中提取用于解码的最小信息;提取信息编码单元,配置用于编码最小信息以便减少最小信息的量;和输出单元,配置用于输出熵码和编码的最小信息。
根据本发明的第四方面,提供一种计算机图形数据编码装置,其包括:获取单元,配置用于获取多个计算机图形数据项;预处理单元,配置用于预处理所获取的计算机图形数据项;码累积单元,配置用于累积第一信息,第一信息指示经受熵编码的包含在预处理中执行的计算机图形数据项中的多个部分和每一部分的产生频率之间的关系;码字信息累积单元,配置用于预累积第二信息,第二信息指示熵信息和基于熵信息产生的多个第一码字之间的关系,熵信息指示典型数据的熵量;编码产生单元,配置用于基于已累积的第一信息和预累积的第二信息,产生与预处理的计算机图形数据项相对应的多个第二码字;熵编码单元,配置用于基于已产生的第二码字,将已预处理的计算机图形数据项进行熵编码,以产生多个熵码;码数量控制/编码单元,配置用于使已产生的熵码经受用于控制最终输出的码数量的处理,以产生多个码;提取单元,配置用于基于第二码字,从所累积的第一信息和预累积的第二信息提取用于解码的最小信息;提取信息编码单元,配置用于编码最小信息以减少最小信息的量;和输出单元,配置用于输出码数量控制/编码单元所产生的码,和编码的最小信息。
根据本发明的第五方面,提供一种计算机图形数据解码装置,用来解码由如第一或者第二方面所述的计算机图形数据编码装置所编码的多个计算机图形数据项,该装置包括:获取单元,配置用于获取已编码的数据项;提取信息解码单元,配置用于解码已编码的最小信息;解码信息产生单元,配置用于基于已解码的最小信息,产生解码信息,该信息用于获取解码码字的多个解码字;累积单元,配置用于累积所述解码信息;熵解码单元,配置用于利用解码信息解码熵码;数据解码单元,配置用于将已解码的熵数据解码为在码数量被控制之前存在的数据;后处理解码单元,配置用于通过使用用于预处理已获取的计算机图形数据项的预处理的逆处理,将数据解码单元所解码的数据解码为在预处理计算机图形数据项之前的计算机图形数据项;和输出单元,配置用于输出后处理解码单元所获取的数据。
根据本发明的第六方面,提供一种计算机图形数据解码装置,用来解码由如第三或者第四方面所述的计算机图形数据编码装置所编码的多个计算机图形数据项,该装置包括:获取单元,配置用于获取已编码的数据项;提取信息解码单元,配置用于解码已编码的最小信息;解码信息产生单元,配置用于基于已解码的最小信息和第二信息,产生指示码字与对应于所述码字的多个解码字之间关系的解码信息;解码信息累积单元,配置用于累积所述解码信息;熵解码单元,配置用于利用解码信息来解码熵码;数据解码单元,配置用于将已解码的熵数据解码为在码数量被控制之前存在的数据;后处理解码单元,配置用于使用用于预处理所获取的计算机图形数据项的预处理的逆处理,将数据解码单元所解码的数据解码为在预处理计算机图形数据项之前的计算机图形数据项;和输出单元,配置用于输出后处理解码单元所解码的数据。
根据本发明的第七方面,提供一种计算机图形数据编码方法,其包括:获取多个计算机图形数据项;预处理所获取的计算机图形数据项;使预处理过的计算机图形数据项经受用于控制最终输出的码数量的处理,以产生多个码;累积要经受熵编码的包含在所产生码中的多个部分;基于累积的部分计算熵信息,并基于熵信息产生多个码字,其中熵信息指示熵量;基于所产生的码字对所产生的码进行熵编码,以产生多个熵码;从熵信息中提取用于解码的最小信息;编码最小信息以减少最小信息的量;和输出熵码和已编码的最小信息。
根据本发明的第八方面,提供一种计算机图形数据编码方法,其包括:获取多个计算机图形数据项;预处理所获取的计算机图形数据项;累积预处理过的计算机图形数据项;基于累积的计算机图形数据项的多个码部分计算熵信息,并基于熵信息产生多个码字,其中熵信息指示熵量;基于所产生的码字对累积的计算机图形数据项进行熵编码,以产生多个熵码;使所产生的熵码经受用于控制最终输出的码数量的处理,以产生多个码;从熵信息中提取用于解码的最小信息;编码最小信息以减少最小信息的量;和输出通过所述处理所产生的码,和已编码的最小信息。
根据本发明的第九方面,提供一种计算机图形数据编码方法,其包括:获取多个计算机图形数据项;预处理所获取的计算机图形数据项;将预处理过的计算机图形数据项经受用于控制最终输出的码数量的处理,以产生多个码;累积第一信息,第一信息指示经受熵编码的包括在所产生的码中的多个部分和每一部分的产生频率之间的关系;预累积第二信息,第二信息指示熵信息和基于熵信息产生的多个第一码字之间的关系,熵信息指示典型数据的熵量;基于已累积的第一信息和预累积的第二信息,产生与已产生的码相对应的多个第二码字;基于已产生的第二码字,将已产生的码进行熵编码,以产生多个熵码;基于所产生的码字,从累积的第一信息和预累积的第二信息提取用于解码的最小信息;编码最小信息以减少最小信息的量;和输出熵码及已编码的最小信息。
根据本发明的第十方面,提供一种计算机图形数据编码方法,其包括:获取多个计算机图形数据项;预处理所获取的计算机图形数据项;累积第一信息,第一信息指示经受熵编码的包含在预处理中被执行的计算机图形数据项中的多个部分和每一部分的产生频率之间的关系;预累积第二信息,第二信息指示熵信息和基于熵信息产生的多个第一码字之间的关系,熵信息指示典型数据的熵量;基于已累积的第一信息和预累积的第二信息,产生与预处理的计算机图形数据项相对应的多个第二码字;基于已产生的第二码字,使已预处理的计算机图形数据项经受熵编码,以产生多个熵码;使已产生的熵码经受用于控制最终输出的码数量的处理,以产生多个码;基于所产生的第二码字,从累积的第一信息和预累积的第二信息提取用于解码的最小信息;编码最小信息以减少最小信息的量;和输出所述处理产生的码,以及已编码的最小信息。
根据本发明的第十一方面,提供一种解码由如第七或者第八方面中所述的计算机图形数据编码方法所编码的多个计算机图形数据项的方法,该方法包括:获取已编码的数据项;解码已编码的最小信息;基于已解码的最小信息,产生用于获取用于解码码字的多个解码字的解码信息;累积解码信息;利用解码信息解码熵码;将已解码的熵数据解码为在码数量被控制之前存在的数据;利用用于预处理获取的计算机图形数据项的预处理的逆处理,将数据解码为预处理计算机图形数据项之前的计算机图形数据项;和输出所获取的计算机图形数据项。
根据本发明的第十二方面,提供一种解码由如第九或者第十方面中所述的计算机图形数据编码方法所编码的多个计算机图形数据项的方法,该方法包括:获取已编码的数据项;解码已编码的最小信息;基于已解码的最小信息和第二信息,产生指示码字与对应于所述码字的多个解码字之间关系的解码信息;累积解码信息;利用解码信息解码熵码;将已解码的熵数据解码为在码数量被控制之前存在的数据;通过使用用于预处理已获取的计算机图形数据项的预处理的逆处理,将所述数据解码为在预处理计算机图形数据项之前的计算机图形数据项;输出所获取的计算机图形数据项。
附图说明
图1的方框图示出了根据本发明的第一实施例的计算机图形数据编码装置;
图2是用于解释计算机图形数据的视图;
图3是用于解释图1中的预处理编码单元所执行的归一化的视图;
图4是示出了由图1中的预处理编码单元量化所使用的数据格式的视图;
图5是用于解释由图1中的预处理编码单元所执行的一阶微分的视图;
图6是示出了图1中所示的预处理编码单元所使用的用于转换微分值的函数的实例图;
图7是示出了由图1中所示的编码数量控制/编码单元通过编码获取的SzBIN码的格式的视图;
图8是用于解释从Sz值获取BIN码的方法的视图,这种方法应用于图1中的码数量控制/编码单元;
图9是示出了归一化值包括在码数据中的格式的实例的视图,该格式通过使用Sz中的未使用区域产生SzBIN格式而获取;
图10是图1中所示的熵信息累积单元所产生的频率表的实例;
图11的方框图示例了根据第一实施例的修改2的计算机图形数据编码装置;
图12是用于通过第一实施例的修改3中应用的预处理编码单元压缩三个单元的表;
图13是用于如图12所示的情况压缩两个或四个单元的表;
图14的方框图示例了根据本发明第二实施例的计算机图形数据编码装置;
图15的表示例了通过图14中所示的熵信息累积单元所产生的Sz产生频率;
图16的表示例了在图14中所示的码字信息累积单元中所累积的码;
图17是对应于计算机图形数据的码表的实例,所述数据指示均匀布置例如球形体的顶端的状态;
图18是对应于计算机图形数据的码表的实例,所述数据指示除了均匀布置例如球形体的顶端的状态之外的状态;
图19是用于解释图14中所示码产生单元的操作,以参考频率表和码表来获取霍夫曼码的视图;
图20的方框图示例了根据第二实施例的修改2的计算机图形数据编码装置;
图21的方框图示例了根据本发明第三实施例的计算机图形数据解码装置;
图22是用于解释图21中所示的熵解码单元所执行处理的系列实例的视图;
图23是图21中所示的后处理解码单元所参考的用于转换(n1,n2,n3)成(nx,ny,nz)的表;
图24的方框图示例了根据本发明第四实施例的计算机图形数据解码装置;以及
图25是用于解释图24中所示的解码数据产生单元如何参考霍夫曼码表和频率表获取解码字(Sz值)的视图。
具体实施方式
将参考附图详细地描述根据本发明实施例的计算机图形数据编码装置、解码装置及编码方法和解码方法。
已经开发了本发明的实施例以克服上述问题,这些实施例目的在于提供一种计算机图形数据编码装置、解码装置及编码方法和解码方法,以在编码和解码计算机图形数据时增强吞吐量,并且降低用于处理上述数据的硬件的成本。
这些实施例中的计算机图形数据编码装置、解码装置及其编码方法和解码方法可以在编码和解码计算机图形数据时增强吞吐量,并且降低用于处理上述数据的硬件的成本。
(第一实施例)
图1的方框图示出了根据本发明的第一实施例的计算机图形数据编码装置的完整结构。
如图所示,第一实施例的计算机图形数据编码装置包括输入单元101,预处理编码单元102,码数量控制/编码单元103,熵信息累积单元104,编码产生单元105,熵编码单元106,提取单元107,提取信息编码单元108和输出单元109。
输入单元101获取计算机图形数据。
预处理编码单元102执行预处理,诸如对输入单元101所获取的数据进行量化,归一化等等。
码数量控制/编码单元103在熵编码单元106对预处理编码单元102产生的码进行编码之前,使它们经受用于控制熵编码单元106所产生的码的数量的处理。
熵信息累积单元104累积与码数量控制/编码单元103所产生的码相关的熵信息。
码产生单元105使用由熵信息累积单元104累积的熵信息产生码字。
熵编码单元106使用编码产生单元105产生的码字,对码数量控制/编码单元103所产生的码进行熵编码。
提取单元107从码产生单元105使用的熵信息中提取用于解码所必需的最小解码信息,以产生所述码字。
提取信息编码单元108对提取单元107产生的解码信息进行编码。
输出单元109输出由熵编码单元106产生的码,以及由提取信息编码单元108产生的码。
现在将详细描述上述的每一个单元。
《输入单元101》
输入单元101用于获取计算机图形数据。在计算机图形领域中,每个配置通常用被称作多边形的三角形的组合来表示。在这种情况下,有关每一个配置的数据用一组指示三角形各个顶点的坐标来表示。所述坐标能够用指示3维空间中位置(x,y,z)的3维向量、或者用指示(x,y,z,w)的4维向量来表示,并使用均匀坐标系来获取。
进一步,在计算机图形领域中,使用多种类型的数据来表示顶点数据,诸如,法线信息,色彩信息或者表面属性信息。所有这些信息项可以表示为向量数据。因此,在本实施例中,假定计算机图形数据指示任意维数的包括了如元素,表示位置的数值,法线,色彩信息等等的向量数据。
输入单元101获取一组这样的向量数据项。在以下描述中,位置数据将作为一实例来描述。但是,位置数据能够是任何其他类型的数据。
如上所述,所述位置数据能够用3维向量数据(x,y,z)或者4维向量数据(x,y,z,w)表示。在以下描述中,所述位置数据用3维向量数据(x,y,z)表示。
包括在位置数据(x,y,z)中的元素x,y和z分别指示3维空间中的x-坐标,y-坐标和z-坐标。所述位置数据的元素通常用十进制数据表示。该位置数据被管理为向量数据并作为指示多边形各顶点的数据被顺序地输入到输入单元101。
《预处理编码单元102》
预处理编码单元102对由输入单元101获取的指示法线信息,色彩信息,表面属性信息等的顶点数据执行量化,归一化等等。(在本实施例中,所述顶点数据指示如上所述的位置数据)。
如上所述,顶点数据是包括了十进制数据项作为元素的向量数据。很有必要量化每一元素值,以便在计算机中表示它。存在一些量化方法。这些方法可大致分为以浮点方式来表示十进制的方法,和以定点方式来表示十进制的方法。这些量化方法并非本实施例的必要部分,因此对其未作详细说明。简言之,在定点方式表示数据的方法中,量化的数据用固定的十进制点表示。在其它方法中,量化的数据用非固定的十进制点表示。注意到在IEEE754中规定的浮点方式中将用于量化的位长(量化位长度)设置成32位。
浮点方式其特征在于能够将非常大范围(从2-126到2-127)的数据表示为32位的数据。但是,在这种方式中,十进制数据被管理为符号部分信息,指数部分信息和尾数部分信息。因此,处理数值可能是很复杂的。
这就是许多廉价硬件系统使用了定点方式的原因。但是,在定点方式中,能够表示的数据范围不大,这是因为被量化数据的十进制点的位的位置是固定的。此外,由于十进制点是固定的,能够表示的十进制的精度也是有限的。
为了克服上述问题,有必要归一化数据。定点方式中的精度问题可以通过以一种或者另一种方法归一化数据来克服,并且使得存在归一化数据的范围落入定点方式的数值表示的范围之内。
<归一化>
以下将详述由预处理编码单元102所执行的数据归一化。
数据归一化意味着转换全部要编码的数据项,以使其落入一特定范围内。具体而言,在数据归一化中,例如,每一个值被除以数据中存在的最大值。以下将给出数据被归一化成-1到1之间的实例的描述。
假定存在以下的位置数据序列(xm,ym,zm),m是0,1,...,n;
x1,y1,z1
x2,y2,z2
...
xn,yn,zn
在这种情况下,首先,获取该数据序列的最大值Vmax。Vmax由下述公式(1)给出:
Vmax=max(|x1|,|y1|,|z1|,...,|xn|,|yn|,|zn|)...(1)
其中max()表示用于返回括号中元素的最大值的函数。
接下来,使用下述公式(2)获取归一化的值(比例)
比例=Vmax ...(2)
使用下述公式式(3)实现顶点数据的归一化:
V’=V/比例 ...(3)
其中V指示原始数据,而V’指示归一化的数据。
因此,数据被归一化在-1到1之间。
实现归一化后,如果将数据分割成任意的区域,并且对每一区域执行上述处理,能够增强归一化的精度。选择分割的范围,以便将尽可能相近顺序的数据包含在每一个区域中。
在很多情况下,准备对应于图像的若干分割的计算机图形数据。将参考例如图2对此进行解释。图2示出了一列火车穿越森林的情景。在这种情况下,准备对应于单元,例如“火车”,“地面”,“铁轨”和“树”的数据。
希望在每一单元中执行归一化。
预处理编码单元102按照“归一化值(=比例值)”,“数据”,“数据”,...,“归一化值”,“数据”,“数据”,...的顺序管理数据。“归一化值”的应用范围是存在于特定归一化值和下一归一化值之间的数据序列。参见图3,将描述通过归一化位置数据获取的归一化位置数据序列的实例。具有比例i(i=1,2,...)的归一化值的位置数据(xj,yj,zj)(j=1,2,...,n,...,m,...)被分别地归一化为(xj/比例i,yj/比例i,zj/比例i)。
应该注意到没有必要归一化落入特定范围内的数据。例如,如果是正常数据,数据通常被生成为归一化的正常数据(其中正常向量长度为1的数据)。在这种情况下,保证所述原始数据落入-1到1之间的范围内,所以对于预处理编码单元102没有必要来归一化数据。
<量化>
现在将描述由预处理编码单元102所执行的量化。
首先参见图4,将描述量化所使用的数据格式实例。应注意到以下是有关方案实例的描述,并且本发明并不限制于此。
图4示出了利用具有16位量化位长度的格式来实现量化的情况。这种格式由指示符号和整数的一个比特,和指示十进制小数部分的15比特构成。利用这种格式,归一化预先量化的数据。例如,0.25被量化为0010000000000000,而-0.111被量化为1111000111001011。
上述的归一化值落入[-1,1]的范围内。通常,为了表示落入该范围内的值,需要2位用于符号和整数。但是,如果使用2位,将会不可避免地产生从未使用过的区域(即,区域[-2,-1),(1,2]),这将增加无用的存储量。进一步,十进制小数部分被减少成14位,从而降低了十进制小数表示精度。在本实施例中,给符号和整数1位,给十进制小数部分15位。
在这种情况下,能够表示的区域可以存储从-1到1-1/215(=0.999969482421875)范围内的量化值。由于不能表示落入[1-1/215,1]范围内的量化值,它们全部被设置为1-1/215。即,如果(值>1-1/215)则值=1-1/215(如果值大于1-1/215,则该值被设置为1-1/215。)。这种设置将导致最大为1/215(=约0.00003)的误差。
通常,如果十进制小数部分设置到N位,量化位长度是(N+1)位。如果允许用户指定量化位的长度,则其能够控制量化的精度。
因此,如果用户改变了量化位长度,码数量控制/编码单元103和位于单元103以后的其他单元必须处理具有多位长度的数据。为了避免这种复杂的操作,用由以下公式(4)给出的归一化值替代由公式(2)给出的归一化值,从而能够使用特定位长度来表示数据而不管用户是否指定了任何量化位长度:
比例=Vmax×2Q-N ...(4)
其中Q为所使用的最大量化位长度,以及N为不小于2且不大于Q并且表示用户所指定的量化位长度的整数。如果N被设置成高值,可以抑制顶点数据精度的降低,但降低了编码效率。相反,如果N被设置成低值,可以获得高的编码效率,但降低了顶点数据精度。这两个因素处于折衷关系。
通过以上操作,数据可被归一化在-1/216-N到1/216-N内。相应地,数据精度基本上对应于N-位数据的精度。图4中将Q值设置为16的量化格式的内部应用,使得最大量化位长度能够被设置为16位作为内部表示,并同时使用户能够通过指定位数的多少来指定数据的精度。实现这种的因素包含在公式(4)所示的归一化值(比例)中。
考虑到解码以后获得的精度,归一化值(比例)被使用例如,32位浮点方式来进行量化。此外,基于公式(4)的处理是非必需的步骤。但是,假定应用该处理,将描述下文。
而且,尽管在上文中,量化方案已经被解释为利用特定格式的定点方式,但是本发明并不限于此。编码也可使用浮点方式或者在本说明书中未描述的其它方式来实现。
此外,预处理编码单元102可计算一阶微分数据。执行一阶微分是为了增强下文所述的熵编码的效果。现在将对此进行描述。
<一阶微分>
对以上述方式获取的量化数据进行一阶微分。一阶微分向量数据ΔVn通过以下给出
ΔVn=Vn-Vn-1(n=0,1,2,...) ...(5)
其中Vn是第n个位置向量数据,V-1是0向量数据。例如,如果该量化数据是位置数据,则获取如图5中所示的一阶导数数据。在本实施例中,由于所述量化数据能够假定一个落入-1到1范围内的值,所以它的微分值能够假定一个落入-2到2范围内的值。因此,在图4所示的16位定点方式中,将会发生上溢和下溢。
为了避免这种情况,实际的微分值通过图6中所示的函数来转换,结果是甚至能够以16位定点方式唯一地确定微分值。即,由于实际的一阶微分值最大为2,使用图6中所示的函数能够唯一确定所有的微分值,这时它们假定为不大于2的值。
例如,如果Vn是16’b1010011001100110(=-0.7),而Vn-1是16’b0100110011001101(=0.6),基于公式(5)和图6中所示的函数,确定ΔVn为16’b0101100110011010。
这就是预处理编码单元102的编码处理的结束。由预处理编码单元102进行的编码处理是用于下级单元的预处理。通过这种预处理,下级单元能够同样处理已量化的16位序列。
在上述实施例中,仅仅描述了数据归一化,量化和一阶微分的实例。当然本发明不限于这些实例。
《码数量控制/编码单元103》
码数量控制/编码单元103用于对预处理编码单元102产生的码进行编码,以便控制熵编码单元106所产生的码的数量。
例如,如果熵编码单元106对预处理编码单元102产生的所有码执行熵编码,当量化位长度为16位时,输出码的数量可达到216。进一步,可能的最大码长度为(216+1)位。
换言之,如果熵编码单元106对预处理编码单元102产生的所有码执行熵编码,必须设计用于对在熵编码之后获取的数据进行解码的解码器,以便使所述解码器能适于包括上述状况在内的所有状况。这对于计算的成本并因此对产品的价格非常不利,如在“背景技术”部分中所述的那样。
准备码数量控制/编码单元103来克服这种问题。它还进一步对预处理编码单元102产生的码进行编码,以限制可以由熵编码单元106产生和处理的码的数量和长度。
<SzBIN编码和格式>
码数量控制/编码单元103其特征在于它将预处理编码单元102产生的码编码为“最小长度形式的码的表示和指示码位长度的信息的组合”(在下文中称作“SzBIN码”)。
SzBIN码是将数据转换为如下所述的BIN码(具有可表示最小位长的数据),以及将所产生的码与其位长信息(Sz)组合为一个码的方案。在这种SzBIN码中,如下所述,BIN编码所获取的码存储在BIN部分,有关BIN码的位长信息存储在Sz部分。图7示出了SzBIN码的格式。
在本实施例中,如图4中所示编码前的数据以16位定点方式表示。在这种情况下,通过使数据经受BIN编码而获取的BIN码可以假定为落入0到16位的范围内的位长。因此,Sz能够假定为落入0到16范围内的值。由于此,Sz部分用5位的固定长度来表示。所述BIN部分是通过BIN编码获取的可变长度数据。所以,当给Sz部分分配5位时,对应于值17到31的区域就是未使用的区域。当必需时可以使用该未使用的区域来存储各种参数。例如,预先设置当Sz假定为不小于17的值时,接下来的BIN数据区域存储了一个参数。在这种情况下,Sz用作不指示与BIN部分有关的位长信息,而是指示参数类型的标识符。由在Sz部分之后的BIN部分所指示的位长表示预先设置参数的数据长度(以下将参考图9描述具体的实例)。
<BIN编码方法>
通过对以16位定点方式表示的数据执行下述两个转换步骤,来获取每个由码数量控制/编码单元103产生的BIN码:
1.假定所述16位数据为以二的补数方式表示的整数数据,且在二的补数方式中将它转换成以最小表示方式表示的数据;以及
2.从剩余的位数据中减去在上述步骤1中获得的最小表示的数据的最高有效位(MSB)。
首先,对步骤1中将16位定点表示转换成二的补数表示进行描述。
如果该16位数据是正数,包括在二的补数表示中的最小表示通过消除所有的连续“0”位而获得,该连续的“0”位以紧跟在MSB之后的“0”位开始。例如,如果从16’b0000010110011110中消除以紧跟在MSB之后的“0”位开始的所有的连续“0”位,所得到的数据是12’b010110011110。
相反,如果16位数据是负数,包括在二的补数表示中的最小表示通过消除所有的连续“1”位而获得,该连续的“1”位以紧跟在MSB之后的“1”位开始。例如,如果从16’b1110010110011110中消除以紧跟在MSB之后的“1”位开始的所有连续“1”位,所得到的数据是14’b10010110011110。
将描述步骤2。在步骤2中,从剩余的位数据中减去在上述步骤1中获取的最小表示中的MSB。
(正16位数据)
特别地,如果在步骤1中获取的最小表示是12’b010110011110,则最小表示的MSB是1’b0,且剩余的位数据是11’b10110011110。所以,如果从剩余的位数据中减去MSB,所得到的数据是11’b10110011110-1’b0=11’b10110011110,其结果是获取16’b0000010110011110的BIN码。
(负16位数据)
如果步骤1中获取的最小表示是14’b10010110011110,最小表示的MSB是1’b1,且剩余的位数据是13’b0010110011110。所以,如果从剩余的位数据中减去MSB,所得到的数据是13’b0010110011110-1’b1=13’b0010110011101,其结果是获取16’b1110010110011110的BIN码。
<BIN编码的例外>
BIN编码存在例外。例如,16’b1000000000000000是个例外,上述的计算无法执行。即使经受BIN编码,该数据也保持不变。这是唯一的Sz是16的BIN码。
<获取Sz>
Sz表示如上获取的BIN码的位长,并且用5位的固定长度表示。
Sz能够不经受上述的BIN编码获取。即,其能够通过下述方式获取:
1.如果数据是正数,其保持不变。相反,如果数据是负数,利用与负数相关的二的补数将其转换成正数。
2.如果最高阶“1”位的位置是N,则Sz=N+1。如果没有“位”,则Sz=0。例如,在16’b1000000000000000的情况下,由于第15位(MSB)是最高阶的“1”位,所以N=15和Sz=16。此外,在16’b0100010111100000的情况下,由于第14位是最高阶的“1”位,所以N=14和Sz=15。换言之,假设数据是16位的整数,如果使用满足条件数据≥2N的N的最大值,则获取Sz=N+1。
如果以如上的方式计算Sz,甚至利用下述简单的方法也能获取BIN码:
1.如果Sz=16或者数据是正数,对应于Sz的低阶位的数据被看作BIN码数据。
2.如果数据是负数,从中减去1’b1并对应于Sz的低阶位数据,被看作BIN码数据。
参考图8,将利用SzBIN编码的具体情况描述如何计算Sz以获取BIN码。
图8中上面16位数据(16’b1110010110011110)是负数,所以获取与该负数相关的二的补数。即,在该实例中,二的补数是:
16’b0001101001100001+1’b1=16’b0001101001100010
在这种情况下,由于最高阶“1”位的位置是12,则Sz=13。此外,由于16位数据是负数,对应于16’b1110010110011101的十三(=Sz)低阶位的数据(=16’b1110010110011110-1’b1)被看作BIN码数据。也就是,BIN码数据是13’b0010110011101。
相反,图8中的较低16位数据(16’b0000000000000001)是正数,所以不必获取与该正数相关的二的补数。由于最高阶“1”位的位置是0,则Sz=1。此外,由于16位数据是正数,对应于16’b0000000000000001的一个(=Sz)低阶位的数据被看作BIN码数据。也就是,所述BIN码数据是1’b1。
<Sz的特定用途(SzBIN数据中非顶点数据的混合)>
各种参数能够包含在利用Sz的未使用区域的SzBIN码中。例如,在归一化过程中计算的归一化值(定标值),通常其必须通过不同于码数据通道的通道发送到解码器,如果利用Sz的未使用区域将该归一化值转换为SzBIN格式,则该归一化值可以包含在码数据中,所以能够通过单通道与码一起发送。
特别地,如图9中所示,Sz=31被用作识别归一化值(定标值)的标识符,和该归一化值(定标值)以32位浮点方式表示并存储为在标识符之后的BIN数据。当Sz指示未使用区域中的值时,其被用作标识符,而不用于指示在标识符之后的BIN数据的位长。
当扩展数据时,如果Sz落入0到16的范围内,获取对应于Sz的BIN数据以解码该数据,但是如果Sz超过该范围,则执行用于获取对应于由标识符所指示的参数长度的数据的处理。因此,Sz能够使参数和顶点数据单独地扩展。
<Sz BIN编码的优点>
上述的SzBIN编码提供以下优点:
1.如果熵编码单元106仅仅对Sz部分执行例如霍夫曼编码,即一种类型的熵编码,可能的霍夫曼码字数量最大仅为17,由于Sz是由5位表示的码,最大码长度能够被压缩到18位。
2.如上所述,码数据能够包含非编码目标的数据(例如,归一化值(定标值))。
《熵信息累积单元104》
熵信息累积单元104从由码数量控制/编码单元103产生的码中提取经受通过熵编码单元106进行熵编码的一部分码,并累积它。例如,熵信息累积单元104依次累积由码数量控制/编码单元103产生的SzBIN码的各自的Sz部分。
此外,熵信息累积单元104同时调节用于通过熵编码单元106进行熵编码所必需的熵量。可替换地,编码产生单元105可以调节所述熵量。
下文将描述霍夫曼编码作为由熵编码单元106执行的熵编码的一个实例。当执行霍夫曼编码时,用于霍夫曼编码的熵量是指示码数量控制/编码单元103产生的码与每个码的产生频率之间关系的信息。
在累积Sz码的同时,熵信息累积单元104计数每个Sz值的产生频率。在完成涉及全部数据的计数之后,熵信息累积单元104产生频率表。如图10中所示,该频率表示例了每个Sz值的产生频率。熵信息累积单元104计算包含在数据中的每个Sz值(0到16)的产生概率。产生概率Psz由下式获得
Psz=Sz产生数量/全部数据项的数量 ...(6)
在图10的表实例中,Sz值0、1、2...的产生概率分别为A、B、C、...。
有关包含在SzBIN码中的上述的这种参数,每个参数的产生概率可以基于包含在数据中的参数(其包括,例如,归一化值)的数量来计算。可替换地,每个参数的产生概率可以设置为低于0到16的Sz产生概率的值。
《码产生单元105》
码产生单元105用于产生码字,该码字用于通过熵编码单元106进行熵编码。码产生单元105利用有关在熵信息累积单元104中累积的熵量的信息。
假定执行霍夫曼编码,下面将描述码产生单元105的操作。以下述方式单元105产生霍夫曼码字。
1.以产生概率pi(i=1,2,...,N)的降序排列信息源的报告:
p1≥p2≥...≥pN
2.将0和1分配给一对最低产生概率和次低产生概率的报告(产生霍夫曼节点)。
3.在步骤2中确定的该对报告的概率总和设置为qk(2≤k≤N-2),和以产生概率的降序来重新排列报告:
PN-1+PN=qk
p1≥p2≥...≥qk≥...≥pN-2
4.重复步骤1到3的过程(产生霍夫曼树)。
5.反向地跟随分配0和1的报告对的顺序,获取顺序排列的0和1并将其看作码字(搜索霍夫曼树)。
特别是,参见关于霍夫曼编码的文献(例如,Foundation of InformationCompression Techniques by Kiyoshi Arai,TORIKEPS Corporation,2003,ISBN4-88657-228-6,第48-60页)。
如上所述,码产生单元105产生对应于由码数量控制/编码单元103产生的码的霍夫曼码字。
《熵编码单元106》
利用由码产生单元105产生的码字,熵编码单元106对码数量控制/编码单元103产生的码执行熵编码。
具体而言,熵编码单元106参照码产生单元105,由此获得对应于特定SzBIN码的Sz的码字,该SzBIN码由码数量控制/编码单元103产生。如果该码字由Huff(Sz)表示,熵编码单元106执行Huff(Sz)BIN编码,其中码字Huff(Sz)耦合到一定Sz BIN码的BIN部分,该Sz BIN码由码数量控制/编码单元103产生。
这里假定由码数量控制/编码单元103产生的SzBIN码是00011101。该码的Sz部分是00011,这意味着Sz=3,即随后的3位数据101是BIN部分。假定码产生单元105获取码“11”作为Huff(Sz),它表示对应于Sz部分“00011”的码字,熵编码单元106产生码“11101”。
《提取单元107》
提取单元107从码产生单元105使用的熵信息中提取解码所必需的最小信息,以产生所述码字。
为了解码霍夫曼码,霍夫曼码和与其对应的解码字是必需的。如果每个霍夫曼码包含相应的解码字,它就是足够的。但是,在这种情况下,需要大量的数据。由于解码字能够从上述的霍夫曼树重构,许多解码都被设计为参照霍夫曼树来重构解码字。
提取单元107从例如熵信息累积单元104或者码产生单元105提取霍夫曼树。应该注意到上述的霍夫曼树只是解码所必需的和从所述熵信息中提取的最小信息的实例。最小信息并不限于该树。
《提取信息编码单元108》
提取信息编码单元108用于进一步编码由提取单元107提取的信息,以减少数据量。单元108可以采用任何类型的编码。如果编码后的数据量少于原始数据量它就足够了。
《输出单元109》
参考输入到输入单元101的全部数据,输出单元109用于输出:1)由熵编码单元106产生的计算机图形数据码,和2)由提取信息编码单元108产生的用于解码的码。
上述码1)和2)可作为不同的文件输出,或者以一种或另一种方式来一起组合并作为单个文件输出。此外,输出形式并不限于所述文件形式,但可以输出到存储器或者传送通道。
《第一实施例的优点》
上述第一实施例的计算机图形数据编码装置专门设计用来限制码字的数量和最大码长度。因此,它可以抑制以下详细描述的当解码器执行解码时产生的计算成本(也就是,能够提高计算速度),和可以产生以成本经济的形式编码的计算机图形数据码。
(第一实施例的修改1)
在第一实施例中,码数量控制/编码单元103使用最小长度形式的码的表示和指示码(SzBIN码)位长度的信息的组合,限制当熵编码单元106执行编码时可能产生的码的数量和长度。但是,码数量控制/编码单元103能够采用另一种编码方法。下文将描述根据修改1的编码方法。
根据第一实施例的修改1的计算机图形数据编码装置在整体配置上与图1的装置相似,其不同之处在于某些组件的操作。将描述不同的操作。
《码数量控制/编码单元103》
<概述>
如在第一实施例中,码数量控制/编码单元103使通过预处理编码单元102产生的码经受用于控制熵编码单元106所产生码数量的处理。但是,修改1采用另外的方法进行控制。
<编码格式>
修改1的码数量控制/编码单元103其特征在于它将预处理编码单元102产生的每个码分割为“两个或者多个的码”。这种分割可通过某些方法实现。将对其中的一种方法进行描述,即,一种用于将码分割为上位码和下位码的方法。
这里假定由预处理编码单元102产生的码是通过16位量化而获取的码。在此情况下,码数量控制/编码单元103将该码分割为上8位部分和下8位部分。
每一部分都是8位码。如果对这些码进行霍夫曼编码,码字的数量减少到28=256。最大码长度也减少到257位。相应地,使用该方法,码数量控制/编码单元103能够执行用于减少码数量和缩短最大码长度的控制。
尽管在此实例中,每一码被分割为两部分,如果将每个码分割为3或者更多的部分,能够获取相同的优点。此外,在码之间分割的数量可以变化。
《熵信息累积单元104和码产生单元105》
当码数量控制/编码单元103采用不同于第一实施例采用方法的上述方法时,相应地改变由熵信息累积单元104和码产生单元105处理的信息。在第一实施例中,SzBIN码的Sz部分用于执行数据累积,频率信息产生和码产生。但是,在修改1中,数据产生、频率信息产生等利用通过分割获取的所有编码执行,而不是“Sz部分”。
《熵编码单元106》
熵编码单元106编码由码数量控制/编码单元103产生的两个或者多个码的每一个,利用由码产生单元105产生的码,借此执行数据耦合,这种耦合是与通过编码数量控制/编码单元103的数据分割相反的处理。
更具体而言,当码数量控制/编码单元103已经将码分为上8位码和下8位码时,熵编码单元106首先产生对应于上8位码的霍夫曼码字A,然后产生对应于下8位码的霍夫曼码字B。此后,单元106将这些码字耦合成一个码,以便码字A对应于码的上位数据,和码字B对应于码的下位数据。
(第一实施例的修改2)
图11示出了根据第一实施例的修改2的计算机图形数据编码装置的整体配置。在示出了第一实施例的图1,以及示出了修改2的图22中,相同的附图标记表示相同的元件,并将不再详细描述它们。
如图所示,根据修改2的计算机图形数据编码装置包括输入单元101,预处理编码单元102,码累积单元1101,码产生单元1102,熵编码单元1103,码数量控制/编码单元1104,提取单元107,提取信息编码单元108和输出单元1105。
码累积单元1101累积对应于由预处理编码单元102所产生的码的熵信息。
码产生单元1102利用在码累积单元1101中累积的熵信息产生码字。
熵编码单元1103基于由码产生单元1102产生的码字,对通过预处理编码单元102产生的码进行熵编码。
码数量控制/编码单元1104执行控制用以限制由熵编码单元1103所产生码的数量。
输出单元1105输出由码数量控制/编码单元1104产生的码以及由提取信息编码单元108产生的码。
《码累积单元1101》
码累积单元1101累积由预处理编码单元102产生的码,并同时调节熵编码单元1103进行熵编码所必需的熵量。更具体而言,码累积单元1101计算由预处理编码单元102产生的每一码的产生概率,和产生频率报告,该报告指示每个码之间的关系及其产生概率。熵量的调节可通过码产生单元1102执行。在此情况下,码产生单元1102产生所述频率报告。
《码产生单元1102》
码产生单元1102与第一实施例中的码产生单元104的操作方式相同,但在向其提供数据方面有所不同。在第一实施例的修改2中,码产生单元1102直接接收由预处理编码单元102产生的码。
结果,码产生单元1102产生对应于通过预处理编码单元102所产生码的霍夫曼码字。此时,由于没有执行用于限制码字数量的处理,霍夫曼码字的数量仍为216,其中量化位长度是16位。
《熵编码单元1103》
熵编码单元1103基于由码产生单元1102所产生的码字,对由预处理编码单元102产生的码进行熵编码。而且此时,还是没有执行用于限制码字数量的处理,所以码字的数量仍为216,其中量化位长度是16位。
《码数量控制/编码单元1104》
码数量控制/编码单元1104编码由熵编码单元1103产生的码中,对应于由码产生单元1102产生并被限制为实际使用的码字的码字的那些码。
特别地,码数量控制/编码单元1104对用于编码的码长(下称“受限码长”)设置限制,和利用不同于它们的码替换码长超出受限码长的码字。
这里假定码数量控制/编码单元1104设置的受限码长为N位,和对应于由预处理编码单元102产生的特定编码A的霍夫曼码字A’由熵编码单元1103产生。如果码字A’的码长M不大于N,码数量控制/编码单元1104输出码字A’。反之,如果M大于N,单元1104采用码字A’上N位作为“非编码的标识符”(例如,由“C”表示),以及将对应于字并由预处理编码单元102产生的符号A耦合到非编码的标识符,借此输出码“CA”。结果,通过单元1104将码字的数量减少到2N。
应该注意到在解码过程中,如果在特定码的所述位从第一位开始顺序地校验时不存在对应的解码字,以及码长达到了受限长度,则该码的上N位能够被认为是非编码的标识符。相应地,特定码之后的16位码被认为是码A。因此,在码数量控制/编码单元1104中采用的上述编码方法可以当作是能够限制码字数量和便于解码的方法。
《输出单元1105》
输出单元1105基本上以第一实施例中的输出单元109的方式操作。参考输入到输入单元101的所有数据,输出单元1105输出1)由码数量控制/编码单元1104产生的计算机图形数据码,和2)由提取信息编码单元108产生的用于解码的码。
更有效的编码可通过适当组合第一实施例和修改1和2而实现。
(第一实施例的修改3)
在这种修改中,除上述处理之外,预处理编码单元102还执行以下述处理(下称“单元压缩”)。
<单元压缩>
单元压缩是一种压缩方法,它利用数据向量(即,一组数据项)的长度是1的信息,减少对应于一个单元的数据量。单元压缩,例如在归一化之后和在量化之前执行。
<单元压缩的条件>
如果满足下述条件,就能够执行单元压缩。那就是,能够进行单元压缩的条件是数据向量(一组数据项)是长度为1的归一化向量。如果数据由N个单元(e1,e2...,en)组成,满足以下公式(7)的数据是作为长度为1的归一化向量的数据:
‖(e1,e2...,en)‖=1
该公式等于
(∑ek 2)1/2=1 (7)
例如,在顶点数据的情况下,归一化的正常数据(nx,ny,nz)满足上述条件。归一化的正常数据是最有可能用于单元压缩的数据。单元压缩将利用归一化的正常数据作为实例来进行描述。
<单元压缩方法>
归一化正常数据满足公式(7)。即,(nx2+ny2+nz2)=1成立。
根据上述,以下公式(8)成立:
nz=sign(nz)×(1-nx2-ny2)1/2 ...(8)
其中,sign(nz)是nz的符号,如果nz<0,获取值-1,但是如果nz≥0,获取值+1。由此,能够理解nz可以唯一地由nz,ny和sign(nz)确定。同样的情况对nx和ny也成立。
nx=sign(nx)×(1-ny2-nz2)1/2 ...(9)
ny=sign(ny)×(1-nx2-nz2)1/2 ...(10)
这意味着如果确定了两个单元和确定了其它单元的符号,则能够获取原始的三个单元。利用这种方式,单元压缩可以下述方式执行:
nx,ny,nz→n1,n2,sign(n3)
其中n1和n2是上述三个单元nx,ny和nz中两个的值,sign(n3)是其它单元的符号。
<单元选择>
作为上述两个单元,最低和次低值从‖nx‖,‖ny‖和‖nz‖中选择。这可最小化可能出现在解码过程中的计算错误。在解码过程中,必须获取关于将要选择的两个单元的信息,所以必须附加该信息。总之,nx,ny和nz能够经受由下式所给出的单元压缩:
nx,ny,nz→n1,n2,p
其中p是用于解码的参数,它通过如图12中示出的三位进行表示。
例如,在数据(nx,ny,nz)=(0.13,0.99,-0.02)的情况下,
n1=nx
n2=nz
p=100
<单元压缩的优点>
通过在上述单元压缩以后执行量化所获取的数据量从48位(3×16位单元(nx,ny,nz))减少到35位(2×16位单元(n1,n2)+3位(p))。
<单元压缩之后的处理>
关于通过单元压缩获取的3位参数p,确定在码数量控制/编码单元103进行编码处理之前应该对该值进行编码,还是应该将该值按照它本身输出。指示所述选择的信息被累积在熵信息累积单元104中,并通过提取单元107提取,并经由提取信息编码单元108从输出单元109输出。
<在单元数量不是三的情况下>
虽然在上文中,举例说明了具有三个单元的归一化正常数据,但是对其它数据也可进行单元压缩。
例如在两个单元(e1,e2)的情况下,如果p是如图13中示出的2位数据,且两个单元中经压缩的一个单元,即e2,能够通过以下公式(11)扩展,就是足够的:
e2=sign(e2)×1-e12)1/2 ...(11)
为了以与单元数量不是2的情况下同样的方式处理所述两个单元,p可以设置为3位数据并且它由在MSB上添加0获取的值形成。
此外,在四单元(e1,e2,e3,e4)的情况下,如和三单元相同的方式必须有3位用于p。图13示出了这种情况下的参数。压缩的单元e4通过以下公式(12)扩展:
e4=sign(e4)×(1-e12-e22-e32)1/2 ...(12)
这对于五单元的情况也同样适用。
上述的处理提高了从预处理编码单元102输出数据的压缩效率,且由于它们直接捉进了提高修改3的输出码的压缩效率,因此这些处理是重要的。
(第二实施例)
图14的方框图示例了根据第二实施例的计算机图形数据编码装置的完整配置。在图1和图14中,相同的附图标记表示相同的元件,并且将不再对其详细地描述。
如图所示,第二实施例的计算机图形数据编码装置包括输入单元101,预处理编码单元102,码数量控制/编码单元103,码累积单元1401,码字信息累积单元1402,码产生单元1403,熵编码单元106,提取单元107,提取信息编码单元108和输出单元109。
码累积单元1401累积由码数量控制/编码单元103产生的将要经受熵编码的码的部分。
码字信息累积单元1402预累积指示在典型数据中熵信息和码字之间关系的信息。
编码产生单元1403基于编码累积单元1401和码字信息累积单元1402中累积的信息,产生对应于由码数量控制/编码单元103所产生码的码字。
在第一实施例中,熵信息累积单元104从码数量控制/编码单元103产生的码中动态地获取熵信息,并基于获取的信息产生码频率表。
反之,在第二实施例中,码字信息累积单元1402预累积指示在典型数据中熵信息和码字之间关系的码字信息,和码产生单元1403利用从码数量控制/编码单元103获取并在码累积单元1401中累积的熵信息产生码频率表。
《码累积单元1401》
码累积单元1401从码数量控制/编码单元103所产生的码中提取将要经受熵编码单元106的熵编码的部分,并累积它们。单元1401与第一实施例中的熵信息累积单元104的操作方式相似。以下将只描述单元1401与单元104不同的操作。
码累积单元1401顺序地累积由码数量控制/编码单元103产生的SzBIN码的Sz部分,并同时调节由熵编码单元106进行熵编码所必需的熵量。
如在第一实施例中,将利用霍夫曼编码作为一种类型的熵编码来描述单元1401的操作。
在霍夫曼编码中,用于编码的熵量是指示由码数量控制/编码单元103产生的码和产生每一个码的频率之间关系的信息。在累积Sz码的同时,码累积单元1401计数每一Sz值的产生频率。在完成有关全部数据的计数之后,码累积单元1401产生频率表。该频率表示例了每一Sz值的产生频率。如在图15中所示,码累积单元1401计算包含在数据中的每一Sz值(0到16)的产生概率,并以频率的降序分配索引例如,0,1,2,...给各个产生频率。
在图15的实例中,Sz值0是利用第5最高频率产生的,Sz值1是利用最高频率产生的,Sz值2是利用第2最高频率产生的,...,和Sz值16是利用第2最低频率产生的。
有关上述将包含在SzBIN码中的参数,与Sz值相同的值用作索引值。在图15中,归一化值(定标值)用作这种参数,且它的索引值总是31。
《码字信息累积单元1402》
码字信息累积单元1402预累积指示在典型数据中熵信息和码字之间关系的信息。
霍夫曼码用于分配长度较短的码字给较高产生频率的数据。为此,分配的码字依据每一数据项的码的产生频率的分布而变化。因为这种特征,码字强烈依赖于数据,并且它们的产生需要许多时间和努力。此外,在解码过程中,必须以一种或另一种方式根据数据来重构码字,这增加了解码成本。如下所述,第二实施例能够克服这些问题。
利用关于从大量计算机图形数据获取的Sz码的产生频率和利用该数据产生的码字之间的关系的知识,码字信息累积单元1402预累积指示在典型数据中熵信息和码字之间关系的信息。
特别地,码字信息累积单元1402预累积几种类型的表(下称“码表”),所述表示例了数据产生频率与对应的码字之间的关系。图16示出了一种码表的实例。
在图16中,码字“00”、“010”、...被分别地分配给最高频率(索引=0),第2最高频率(索引=1),...的索引。
实际上知道在指示其中顶点顶部(例如,如球体的数据)均匀地排列的状态的计算机图形数据中,如在图17的表中所示的产生频率的顺序与码字之间的关系能够提供高的压缩效果。在其它计算机图形数据中,已知如在图18的表中所示的产生频率顺序与码字之间的关系能够提供高的压缩效果。此外,在图17和18中,相似的码字作为非码字被分配给归一化值(定标值)。
《码产生单元1403》
码产生单元1403产生用于熵编码单元106所使用的熵编码的码。当产生它们时,单元1403利用累积在码累积单元1401和码字信息累积单元1402中的信息。
码累积单元1401存储如图15示出的频率表,该表示例了由码数量控制/编码单元103产生的码和该码产生频率的顺序之间的关系。此外,码字信息累积单元1402存储如图16中示出的码表,该表示例了码产生频率与对应于其的典型码字之间的关系。
码产生单元1403使用上述频率表和码表在如下所述的过程中产生码。
1.一个码表选自存储在码字信息累积单元1402中的码表,和指示所选的码表的信息由提取单元107使用。
2.参照频率表和码表,确定要编码的对应于Sz值的霍夫曼码。特别地,如图19所示,首先,参照所述频率表,由此获取对应于Sz值的频率顺序(即索引),和然后参照码表,由此获取对应于所获取的频率顺序的码。所述由此获取的码字用作对应于Sz值的码字。
例如,参考图19,将描述获取对应于Sz值1的霍夫曼码的情形。码产生单元1403参照频率表,并暂时地存储指示表示Sz值1的产生频率的所述索引值是2的信息。随后,码产生单元1403参照码表,借此检测对应于索引值2的霍夫曼码是“011”,并输出该霍夫曼码。因而,码产生单元1403产生对应于Sz值1的“011”霍夫曼码。在上述方式中,码产生单元1403产生对应于码数量控制/编码单元103所产生的每一码的码字。
《提取单元107》
提取单元107从熵信息中提取解码所必需的最小信息,该熵信息在码产生单元1403产生码字时使用。
所述最小的必需信息包括以下信息项1和2:
1.码与它们产生频率之间的关系,即,由码累积单元1401产生的频率表;和
2.由码字信息累积单元1402产生和指示所选择的码表的信息。
提取单元107从码产生单元1403、码累积单元1401和码字信息累积单元1402中提取上述信息。
《第二实施例的优点》
在第一实施例中,霍夫曼树信息或者指示编码前的数据和霍夫曼码之间关系的信息作为解码信息(从提取单元107输出)是必需的。在第一实施例中采用的编码处理中,该信息必须输出作为用于由提取单元107产生的全部解码信息的码数据。
在第二实施例中,由于关于典型的霍夫曼码字的信息以码表的形式预先存储在码字信息累积单元1402中,如果仅频率表信息作为解码信息(从提取单元107输出)输出,这是足够的。
相应地,在第二实施例中能够比在第一实施例中,减少更大量的编码数据。这导致了当数据输入到解码器时吞吐量的提高。
(第二实施例的修改1)
在第一实施例的修改1中的码数量控制/编码单元103使用的编码方法还可应用于第二实施例。
(第二实施例的修改2)
第二实施例还可以与第一实施例的修改2相同的方式修改。
图20示出了根据第二实施例的修改2的计算机图形数据编码装置的完整配置。在图1、14和20中,相同的附图标记表示相同的元件,将不再对此进行详细的描述。
如图所示,根据第二实施例的修改2的计算机图形数据编码装置包括输入单元101,预处理编码单元102,码累积单元2001,码字信息累积单元1402,码产生单元2002,熵编码单元2003,码数量控制/编码单元2004,提取单元107,提取信息编码单元108和输出单元2005。
码累积单元2001累积由预处理编码单元102产生的码。
基于存储在码字信息累积单元1402中的信息,码产生单元2002产生对应于由预处理编码单元102产生的码的码字。
使用由码产生单元2002产生的码字,熵编码单元2003进一步编码由预处理编码单元102所产生的码。
码数量控制/编码单元2004编码由熵编码单元2003产生的码,借此减少码的数量。
输出单元2005输出由码数量控制/编码单元2004产生的码和提取信息编码单元108产生的码。
《码累积单元2001》
码累积单元2001用于累积由预处理编码单元102产生的码,并产生上述的频率表。除了输入到它的码是由预处理编码单元102产生的码之外,码累积单元2001在功能上与码累积单元1401相似。
《码产生单元2002》
码产生单元2002在操作上与第二实施例的码产生单元1403相似,但在输入数据上不同。即,在第二实施例的修改2中,编码产生单元2002直接接收由预处理编码单元102所产生的码。
《熵编码单元2003》
熵编码单元2003基于由码产生单元2002所产生的码字,对预处理编码单元102所产生的码进行熵编码。
《码数量控制/编码单元2004》
码数量控制/编码单元2004编码由熵编码单元2003所产生的码中的对应于由码产生单元2002产生的、并被限制为实际上使用的码字的码字的那些码。单元2004以与在第一实施例的修改2中采用的码数量控制/编码单元1104相同的方式操作。
《输出单元2005》
输出单元2005以基本上与第二实施例的输出单元109相同的方式操作。输出单元2005参考输入到输入单元101中的全部数据输出:1)由码数量控制/编码单元2004产生的计算机图形数据码,和2)由提取信息编码单元108产生的用于解码的码。
如果将第二实施例和第二实施例的修改1和2的方法适当地组合,能够实现更有效的编码。
此外,在第一实施例的修改3中执行的单元压缩处理可以包含在第二实施例中。
(第三实施例)
本发明的第三实施例旨在于用于解码在第一实施例中所产生的码的解码器。
图21示出了根据本发明的第三实施例的计算机图形数据解码装置的完整配置。
如在图21中所示,第三实施例的计算机图形数据解码装置包括输入单元2101,提取信息解码单元2102,解码信息产生单元2103,解码信息累积单元2104,熵解码单元2105,数据解码单元2106,后处理解码单元2107和输出单元2108。
输入单元2101获取由第一实施例中应用的方法所编码的数据。
提取信息解码单元2102从输入单元21201中获取通过第一实施例的提取信息编码单元108所产生的码部分,并解码它们。
解码信息产生单元2103向通过提取信息解码单元2102产生的数据添加用于熵解码的附加信息,借此产生用于解码码字的信息。
解码信息累积单元2104累积用于解码的信息,该信息由解码信息产生单元2103生成。
熵解码单元2105从输入单元2101获取由第一实施例的熵编码单元106产生的码部分,并利用累积在解码信息累积单元2104的解码信息解码它们。
数据解码单元2106将熵解码单元2105产生的数据解码成对应于在通过第一实施例的码数据控制/编码单元103编码处理之前存在的数据的数据。
后处理解码单元2107对数据解码单元2106产生的数据执行逆归一化,逆量化等。
输出单元2108输出该解码的数据。
《输入单元2101》
输入单元2101获取由第一实施例的计算机图形数据编码装置产生的码数据。
《提取信息解码单元2102》
提取信息解码单元2102从输入单元2101获取由第一实施例的提取信息编码单元108产生的码部分,并解码它们。
所述获取的码是通过第一实施例的提取信息编码单元108产生的码,以及通过与应用于第一实施例的提取信息编码单元108的编码的处理相反的处理来执行解码。所述解码的数据被返回到在通过第一实施例的提取信息编码单元108进行编码处理之前存在的数据。由提取信息解码单元2102解码的数据是例如第一实施例的码产生单元105使用的用于产生码字的霍夫曼树信息。
《解码信息产生单元2103》
解码信息产生单元2103用于向提取信息解码单元2102产生的数据添加用于熵解码的附加信息,借此产生用于解码码字的解码字。特别地,单元2103使用提取信息解码单元2102产生的霍夫曼树信息重构所述霍夫曼树,并通过跟随从其根部起的树节点产生解码字。
解码信息产生单元2103可以以表的形式或者重构的霍夫曼树的形式来保存所述码字和解码字。在后者的情况下,熵解码单元2105在动态地搜索该霍夫曼树的同时执行解码。
《解码信息累积单元2104》
解码信息累积单元2104用于累积通过解码信息产生单元2103所产生的用于解码的信息。具体地,单元2104可以保存重构的霍夫曼树或基于该霍夫曼树的解码字表。
《熵解码单元2105》
熵解码单元2105从输入单元2101获取由第一实施例的熵编码单元106产生的码部分,并使用累积在解码信息累积单元2104中的解码信息解码它们。单元2105的输入是Huff(Sz)BIN格式的码。即,单元2105的输入是通过将SzBIN码的Sz部分进行霍夫曼编码而获取的码。单元2105解码该码以将其返回到SzBIN格式。
特别地,熵解码单元2105自第一位开始搜索每一码,以查找适合于累积在解码信息累积单元2104中的解码信息(指示霍夫曼码和对应解码字的信息)的解码字。检测到的适当的解码字是解码的Sz部分。此后,熵解码单元2105参照Sz部分的值,并获取对应于Sz值的随后位。所获取的位序列是BIN码。如果获取的Sz值没有落入适当的范围(该适当的范围是,例如,当量化位长是16位时,从0到16)之内,则认为随后的BIN部分包含非编码字。非编码字是,例如,归一化值(定标值)。在此情况下,随后的BIN部分含有以32位浮点表示所表示的归一化值。除了码外的任何值,诸如归一化值(定标值)都被累积在解码信息累积单元2104中。
参考图22,将描述由熵解码单元2105执行的一系列处理。
假定熵解码单元2105已经检测到“101”作为霍夫曼码,且它的解码字是“01101”。在此情况下,解码的Sz值是“01101”,即Sz=13,所以随后的13位序列是BIN码部分。也就是,在图22的实例中,BIN码是“0010110011101”。
《数据解码单元2106》
数据解码单元2106用于将熵解码单元2105所产生的数据解码成对应于在第一实施例的码数量控制/编码单元103编码处理之前存在的数据的数据。特别地,数据解码单元2106解码熵解码单元2105产生的BIN码,借此重构在BIN编码之前的数据。
为了解码BIN码,如果采用与用于第一实施例中BIN编码的过程相反的过程,就是足够的。也就是,通过以下两个步骤执行解码。
(步骤1)
在步骤1,执行以下操作:
1.1如果MSB是1,作为1的反数的0被附加作为MSB;和
1.2如果MSB是0,作为0的反数的1被附加到所述码,然后作为0的反数的1附加作为MSB。
使用11’b10110011110作为码实例,将详细描述这种处理。在该实例中,根据步骤1.1,由于MSB是1,作为1的反数的0被附加到MSB,由此获取12’b010110011110。
反之,当作为另一码实例的13’b0010110011101进行解码时,根据步骤1.2,由于MSB是0,首先作为0的反数的1被添加到码。结果,获取了以下码:
13’b0010110011101+1’b1=13’b0010110011110
此后,根据步骤1.2,作为0的反数的1被附加到MSB,由此获取14’b10010110011110。
(步骤2)
在步骤2,执行以下操作:
2.1如果MSB是1,随后的“1”位作为上位附加到在步骤1中获取的数据,由此形成16位数据;和
2.2如果MSB是0,随后的“0”位作为上位附加到在步骤1中获取的数据,由此形成16位数据。
特别地,在步骤1.1中获取12’b010110011110的情况下,由于MSB是0,根据步骤2.2附加四个“0”位以形成16位数据。结果,将原始的码解码为以16位定点格式表示的数据16’b0000010110011110。
此外,在步骤1.2中获取14’b10010110011110的情况下,由于MSB是1,根据步骤2.1附加两个“1”位以形成16位数据。结果,将原始的码解码为以16位定点格式表示的数据16’b1110010110011110。
BIN-码解码通过由上述两个步骤完成,并获取以16位定点表示的解码数据。
<解码概述>
总之,数据解码单元2106通过以下处理将具有Sz位长的BIN码解码为16位定点数据:
1.如果MSB是1,(即,如果BIN[Sz-1]=1),对应于Sz的较低位用于BIN码,且在上面剩余的(16-Sz)位中设置“0”;和
2.如果MSB是0(即,如果BIN[Sz-1]=0),对应于Sz的较低位用于BIN码,然后添加16’b0000000000000001,且在上面剩余的(16-Sz)位中设置“1”。
上面的描述有关使用16位定点数据作为内部表示的情形。当任意大小的位在内部表示中混合时,不需要步骤2的操作。
《后处理解码单元2107》
后处理解码单元2107用于对数据解码单元2106解码的数据执行逆归一化,逆量化以重构该数据。将详细描述这种处理。
1.如果由第一实施例产生的码数据是通过利用第一实施例的预处理编码单元102执行一阶微分获取的数据,则执行一阶积分。也就是,执行一阶积分Vn=Vn-1+ΔVn(n=0,1,2,...)。
2.对定点数据执行相对于第一实施例中的预处理编码单元102所执行的量化的逆量化。
3.从解码信息累积单元2104获取归一化的值,并乘以在上述步骤2中获取的逆量化值。
4.所产生的数据是在编码之前存在的数据。
5.对每一数据向量的全部单元执行上述步骤。
6.对全部顶点(全部向量)执行上述步骤。
《输出单元2108》
输出单元2108用于使用与第一实施例的输入数据相同的格式,输出由后处理解码单元2107解码的数据。
第三实施例的上述计算机图形数据解码装置能够解码在第一实施例中编码的数据。
《第三实施例的优点》
在第三实施例中,解码在第一实施例中产生、通过限制码字的数量和它们的最大长度获得的码。当产生解码字时,由于码字数量受到限制,因此不需要为解码字保证大的存储器区域。这不同于现有技术。此外,码字的最大长度也受到限制,能够抑制当解码时的吞吐量的减少,这降低了解码器的计算成本,以及实现解码器的成本。
(第三实施例的修改1)
提供一种根据第三实施例的修改1的解码器,用于解码由第一实施例的修改1所产生的码。
第三实施例的修改1具有与第三实施例相同的配置,它们仅仅在熵解码单元2105的操作上有所不同。第一实施例的修改1其特征在于将每一码分割成两个或者更多的部分,并进一步编码所产生的部分。第三实施例的修改1解码由此获得的码。特别地,熵解码单元2105顺序地解码输入到其的数据,并以与用于第一实施例的修改1中的分割相同的方法耦合它们。
例如,假定在第一实施例的修改1中,16位码被分割成上8位码A和下8位码B,这些码A和B通过霍夫曼编码转换为码A’和B’,码A’和B’被耦合成码C(C={A’,B’})。在这种情况下,熵解码单元2105从它的第一部分开始顺序地检验和解码所述数据。也就是,单元2105首先解码A’为A,然后解码B’为B,由此产生成解码的数据{A,B}。
(第三实施例的修改2)
提供一种根据第三实施例的修改2的解码器,用于解码由第一实施例的修改2产生的码。
第三实施例的修改2具有与第三实施例相同的配置,它们仅仅在熵解码单元2105的操作上有所不同。第一实施例的修改2其特征在于有关具有特定码长N或更短码长的数据,利用霍夫曼码字执行编码,但是有关码长大于N的数据,使用非编码的标识符和非编码的数据执行编码。第三实施例的修改2解码由此获得的码。
特别地,熵解码单元2105顺序地解码向其输入的数据。如果使用累积在解码信息累积单元2104中和码长不大于特定长度N的解码信息,能够解码所述解码的数据,则它用作解码字。相反,如果解码数据不能被解码,则将其认为是非编码的标识符,所以随后的数据用作解码的数据。当量化位长是16位时,随后的16位数据能够用作为解码的数据。
应该注意到,在为了编码适当地组合第一实施例和第一实施例的修改1和2的方法的情况下,必须适当地组合第三实施例和第三实施例的修改1和2的方法用于进行解码。
(第三实施例的修改3)
提供根据第三实施例的修改3的解码器用来解码经受第一实施例的修改3中单元压缩的码。
第三实施例的修改3与第三实施例的不同在于熵解码单元2105、数据解码单元2106和后处理解码单元2107的操作。
《熵解码单元2105和数据解码单元2106》
首先,从提取信息解码单元2102获取指示是否当执行单元压缩时执行参数编码的信息。如果执行了参数编码,熵解码单元2105和数据解码单元2106按照正常值执行解码。相反,如果没有执行参数编码,则获取对应于每一参数的位长(例如,3位)的数据并用作解码字。
现在将利用由三个单元nx、ny和nz形成的归一化的正常数据进行描述。如在第一实施例的修改3所描述的,使用图12的表将所述归一化的正常数据(nx、ny和nz)通过单元压缩转换为数据(n1、n2和p)。该归一化的正常数据编码为{SzBIN(n1),SzBIN(n2),SzBIN(p)}或者{SzBIN(n1),SzBIN(n2),p}的形式。SzBIN(x)指示通过使数据x经受BIN编码获取的BIN码。当该码通过上述的解码方法解码时,获取(n1,n2,p)。
《后处理解码单元2107》
基于以上获取的数据组和单元压缩参数,后处理解码单元2107重构经受单元压缩的数据。例如将描述根据数据(n1,n2,p)重构数据(nx,ny,nz)。
首先,对应于n1和n2的码如正常一样经受逆量化和逆归一化。
接下来,n3利用下述公式(13)和图12中用于编码的表计算。
n3=sign(n3)×(1-n12-n22)1/2 ...(13)
其中,sign(n3)是函数,如果剩余的一个单元的符号是正的(即,p的最低有效位(LSB)是0)则其假定为值1,如果剩余的一个单元的符号是负的(即,p的LSB是1)则其假定为值-1,如从图12中所能够理解的。
如果(1-n12-n22)的值是负值,其中在公式(13)中使用该值的平方根,则将它设置为0。也就是,
如果1-n12-n22<0,则1-n12-n22=0 ...(14)
此外,参考图23,数据(n1,n2,n3)转换为数据(nx,ny,nz)。图23的表通过修改用于逆转换的图12的表而获取。
特别地,当n1=0.02,n2=0.13和p=011时,
nx=n3=-1×(1-0.022-0.0132)1/2=-0.99,
ny=n1=0.02,
nz=n2=0.13
这是单元扩展的结果。
虽然在第三实施例和其修改中,使用了归一化的正常数据,也可以使用其它类型的数据。此外,单元的数量并不限于三个。
(第四实施例)
将描述根据本发明的第四实施例的计算机图形数据解码装置。第四实施例的解码装置用于解码在第二实施例中产生的码。
图24示出了该解码装置的完整配置。在分别示出了第三和第四实施例的图24和21中,相同的附图标记表示相同的元件,并且将不再对其详细描述。
如图所示,第四实施例的计算机图形数据解码装置包括输入单元2101,提取信息解码单元2102,码字信息累积单元2401,解码信息产生单元2402,解码信息累积单元2403,熵解码单元2404,数据解码单元2106,后处理解码单元2107和输出单元2108。
码字信息累积单元2401预累积指示典型数据中熵信息和码字之间关系的信息。
利用由提取信息解码单元2102产生的数据和累积在码字信息累积单元2401中的信息,解码信息产生单元2402产生用于解码码字的信息。
解码信息累积单元2403累积解码信息产生单元2402所产生的用于解码的信息。
熵解码单元2404从输入单元2101获取由第一实施例的熵编码单元106产生的码部分,并利用累积在解码信息累积单元2403中的解码信息解码它们。
《码字信息累积单元2401》
码字信息累积单元2401预累积指示典型数据中熵信息和码字之间关系的信息。特别地,单元2401存储第二实施例中应用的码表(图16到18),作为与第二实施例相同的数据。
《解码信息产生单元2402》
解码信息产生单元2402利用由码字信息累积单元2401产生的信息向提取信息解码单元2102所产生的数据添加用于熵解码的附加信息,由此产生用于解码码字的解码字。
特别地,提取信息解码单元2102解码在第二实施例中产生的频率表(图15),并给解码信息产生单元2402所产生的表。利用该从码字信息累积单元2401获取的频率表和码表,解码信息产生单元2402产生解码字。参考如图25中示出的两个表,单元2402产生对应于霍夫曼码字的解码字(Sz值)。
《解码信息累积单元2403》
解码信息累积单元2403用于保存由解码信息产生单元2402产生的用于解码的信息。更具体而言,单元2403保存对应于上述霍夫曼码的解码字。
《熵解码单元2404》
熵解码单元2404用于从输入单元2101获取通过第一实施例的熵编码单元106产生的码部分,并利用在解码信息累积单元2403中累积的解码字解码它们。
熵解码单元2404接收具有Huff(Sz)BIN格式的码。具有Huff(Sz)BIN格式的码通过对SzBIN码的Sz部分进行霍夫曼编码而获取。熵解码单元2404解码具有Huff(Sz)BIN格式的码,借此将它们返回到SzBIN码。
特别地,熵解码单元2404顺序搜索码以查找与累积在解码信息累积单元2403中的霍夫曼码相匹配的解码字。所搜索到的解码字是解码的Sz数据。之后,参考所述Sz值,以与第三实施例中相同的处理解码BIN码。
有关上述问题之外的其它问题,执行如第三实施例中相同的操作。第四实施例能够解码在第二实施例中产生的码数据。
〈第四实施例的优点》
第三实施例需要霍夫曼树信息或者指示编码之前的数据和霍夫曼码之间关系的信息,作为解码所必需的信息(该信息由提取单元在编码过程中产生)。当接收到霍夫曼树信息时,为产生解码字,必须重构所述霍夫曼树。另一方面,在指示编码之前的数据和霍夫曼码之间关系的信息的情况下,必须接收相对大的数据量。
反之,在第四实施例中,由于码字信息累积单元2401以表的形式预先存储了关于典型的霍夫曼码字的信息,如果指示频率表的信息被接收作为解码所必需的信息(由提取单元107在编码过程中产生的信息),则这是足够的。因此,降低所需码数据数量的效果较在第三实施例中更好,这导致了当数据输入到解码器时吞吐量的提高。
此外,由于能够通过接收频率表和参照该表和预存的码表简单地产生解码字,第四实施例的解码器能够比第三实施例中更简单地构造,第三实施例需要重构霍夫曼树。这导致了成本的降低。
在以扩展的霍夫曼方法表示的用于传真使用的传统方法中,解码器必须具有指示数据和解码字之间关系的固定表,以降低解码器的计算和制造成本。通过编码相关数据而不是典型数据,这显著地降低了压缩效率。
相反,在第四实施例的方法中,只有典型的解码字数据预先累积在码字信息累积单元2401中,并且从每一数据项获取频率信息。相应地,即使数据的倾向改变,也能够总是通过编码实现高的压缩效率。第四实施例是现有技术和第三实施例的优点部分的组合。
(第四实施例的修改1)
第四实施例的修改1仅仅在熵解码单元2404的操作上与第四实施例不同。在此情况下,熵解码单元2404与第三实施例的修改1中采用相同的操作方式。相应地,第四实施例的修改1的解码器能够解码第二实施例的修改1所产生的码。
(第四实施例的修改2)
第四实施例的修改2仅仅在熵解码单元2404的操作上与第四实施例不同。在此情况下,熵解码单元2404与第三实施例的修改2中采用相同的操作方式。相应地,第四实施例的修改2的解码器能够解码第二实施例的修改2所产生的码。
应该注意到,在适当地组合第一实施例和第一实施例的修改1和2的方法的情况下,必须相应地组合第四实施例和第四实施例的修改1和2的方法用于进行解码。
此外,为了扩展单元压缩的数据,可以在第四实施例的修改2中执行与第三实施例的修改3中相同的处理。
实施例的流程图示例了根据本发明实施例的方法和系统。应当理解,流程图中每一方框以及流程图示例中方框的组合,能够通过计算机程序指令实现。这些计算机程序指令可以加载到计算机或者其它可编程装置上以产生机器,从而在计算机或者其它可编程装置上执行的指令建立用于实现在流程图方框或多个方框中规定的功能的装置。这些计算机程序指令还可以存储在计算机可读存储器中,这些指令能够控制计算机或者其它可编程装置以特定的方式运行,以便存储计算机可读存储器中的该指令产生一种制品,该制品包括实现在方框的所述流程图方框中规定的功能的指令装置。计算机程序指令还可以载入计算机或者其它可编程装置上,以使得一系列操作步骤在该计算机或者其它可编程装置上被执行,以产生用于实现在流程图方框或多个方框中规定的功能的计算机可编程装置提供步骤。
其他的优点和修改对于本领域的普通技术人员而言将是容易产生的。所以,本发明在更宽广方面不限于在此示出和描述的具体细节和代表性的实施例。相应地,可以对本发明作出各种修改而不背离如所附权利要求及其等同物所限定的本发明总体构思的精神或范围。
Claims (40)
1.一种计算机图形数据编码装置,包括:
获取单元,配置用于获取多个计算机图形数据项;
预处理单元,配置用于预处理所获取的计算机图形数据项;
码数量控制/编码单元,配置用于使预处理的计算机图形数据项经受用于控制最终输出的码数量的处理,以产生多个码;
累积单元,配置用于累积包含在所产生码中的要经受熵编码的多个部分;
计算单元,配置用于基于累积的部分计算熵信息,并基于该熵信息产生多个码字,所述熵信息指示熵量;
熵编码单元,配置用于基于所产生的码字对所产生的码进行熵编码,以产生多个熵码;
提取单元,配置用于从熵信息中提取用于解码的最小信息;
提取信息编码单元,配置用于编码所述最小信息以便减少最小信息的量;和
输出单元,配置用于输出熵码和已编码的最小信息。
2.如权利要求1所述的装置,其中所述最终输出的产生的码的数量与熵码的数量相对应。
3.如权利要求1所述的装置,其中所述预处理单元配置用于对所获取的计算机图形数据项进行量化、归一化和一阶微分中的至少一种。
4.如权利要求1所述的装置,其中所述熵编码单元利用霍夫曼编码。
5.如权利要求1所述的装置,其中所述码数量控制/编码单元配置用于在对预处理的计算机图形数据项进行处理之前,将每一计算机图形数据项分割成不少于两部分。
6.如权利要求1所述的装置,其中所述码数量控制/编码单元配置用于编码每个预处理的计算机图形数据项为:最小长度形式的每个预处理的计算机图形数据项的表示和指示每一预处理计算机图形数据项位长的信息的组合。
7.如权利要求1所述的装置,其中所述码数量控制/编码单元配置用于直接输出预处理的计算机图形数据项,该数据项的位长不超过特定的长度,并用新码替代位长超过所述特定长度的预处理计算机图形数据项。
8.一种计算机图形数据编码装置,包括:
获取单元,配置用于获取多个计算机图形数据项;
预处理单元,配置用于预处理所获取的计算机图形数据项;
累积单元,配置用于累积预处理过的计算机图形数据项;
计算单元,配置用于基于累积的计算机图形数据项的多个码部分计算熵信息,并基于熵信息产生多个码字,所述熵信息指示熵量;
熵编码单元,配置用于基于所产生的码字对累积的计算机图形数据项进行熵编码,以产生多个熵码;
码数量控制/编码单元,配置用于对产生的熵码进行用于控制最终输出的码数量的处理,以产生多个码;
提取单元,配置用于从熵信息中提取用于解码的最小信息;
提取信息编码单元,配置用于编码最小信息以便减少最小信息的量;和
输出单元,配置用于输出码数量控制/编码单元所产生的码,和已编码的最小信息。
9.如权利要求8所述的装置,其中所述产生的最终输出的码数量对应于熵码的数量。
10.如权利要求8所述的装置,其中所述预处理单元配置用于对获取的计算机图形数据项进行量化、归一化和一阶微分中的至少一种。
11.如权利要求8所述的装置,其中所述熵编码单元利用霍夫曼编码。
12.如权利要求8所述的装置,其中所述码数量控制/编码单元配置用于在对产生的熵码进行处理之前,将每一计算机图形数据项分割成不少于两部分。
13.如权利要求8所述的装置,其中所述码数量控制/编码单元配置用于编码每一产生的熵码为:最小长度形式的每一产生的熵码的表示,和指示每一产生的熵码位长的信息的组合。
14.如权利要求8所述的装置,其中所述码数量控制/编码单元配置用于直接输出产生的熵码,该产生的熵码的位长不超过特定的长度,并用新码替代位长超过特定长度的产生的熵码。
15.一种计算机图形数据编码装置,包括:
获取单元,配置用于获取多个计算机图形数据项;
预处理单元,配置用于预处理所获取的计算机图形数据项;
码数量控制/编码单元,配置用于对预处理的计算机图形数据项进行控制最终输出的码数量的处理,以产生多个码;
码累积单元,配置用于累积第一信息,该第一信息指示包含在所产生码中的要经受熵编码的多个部分和每一部分的产生频率之间的关系;
码字信息累积单元,配置用于预累积第二信息,该第二信息指示熵信息和基于该熵信息产生的多个第一码字之间的关系,所述熵信息指示典型数据的熵量;
码产生单元,配置用于基于累积的第一信息和预累积的第二信息,产生与已产生的码相对应的多个第二码字;
熵编码单元,配置用于基于已产生的第二码字,对已产生的码进行熵编码,以产生多个熵码;
提取单元,配置用于基于所产生的第二码字,从累积的第一信息和预累积的第二信息中提取用于解码的最小信息;
提取信息编码单元,配置用于编码最小信息以便减少最小信息的量;和
输出单元,配置用于输出熵码和已编码的最小信息。
16.如权利要求15所述的装置,其中所述最终输出的码数量对应于由码数量控制/编码单元产生的码数量。
17.如权利要求15所述的装置,其中所述预处理单元配置用于对所获取的计算机图形数据项进行量化、归一化和一阶微分中的至少一种。
18.如权利要求15所述的装置,其中所述熵编码单元利用霍夫曼编码。
19.如权利要求15所述的装置,其中所述码数量控制/编码单元配置用于在对预处理的计算机图形数据项进行处理之前,将每一计算机图形数据项分割成不少于两部分。
20.如权利要求15所述的装置,其中所述码数量控制/编码单元配置用于编码每一预处理的计算机图形数据项为:最小长度形式的每一计算机图形数据项的表示和指示每一预处理计算机图形数据项位长的信息的组合。
21.如权利要求15所述的装置,其中所述码数量控制/编码单元配置用于直接输出预处理的计算机图形数据项,该数据项的位长不超过特定的长度,并用新码替代位长超过特定长度的预处理计算机图形数据项。
22.一种计算机图形数据编码装置,包括:
获取单元,配置用于获取多个计算机图形数据项;
预处理单元,配置用于预处理所获取的计算机图形数据项;
码累积单元,配置用于累积第一信息,该第一信息指示包含在预处理中执行的计算机图形数据项中的要经受熵编码的多个部分和每一部分的产生频率之间的关系;
码字信息累积单元,配置用于预累积第二信息,该第二信息指示熵信息和基于熵信息产生的多个第一码字之间的关系,所述熵信息指示典型数据的熵量;
编码产生单元,配置用于基于所述累积的第一信息和预累积的第二信息,产生与预处理的计算机图形数据项相对应的多个第二码字;
熵编码单元,配置用于基于已产生的第二码字,对预处理的计算机图形数据项进行熵编码,以产生多个熵码;
码数量控制/编码单元,配置用于对已产生的熵码进行控制最终输出的码数量的处理,以产生多个码;
提取单元,配置用于基于产生的第二码字,从累积的第一信息和预累积的第二信息中提取用于解码的最小信息;
提取信息编码单元,配置用于编码最小信息以便减少最小信息的量;和
输出单元,配置用于输出所述码数量控制/编码单元所产生的码,和已编码的最小信息。
23.如权利要求22所述的装置,其中所述最终输出的码数量对应于由码数量控制/编码单元产生的码数量。
24.如权利要求22所述的装置,其中所述预处理单元配置用于对获取的计算机图形数据项进行量化、归一化和一阶微分中的至少一种。
25.如权利要求22所述的装置,其中所述的熵编码单元利用霍夫曼编码。
26.如权利要求22所述的装置,其中所述码数量控制/编码单元配置用于在对产生的熵码进行处理之前,将每一产生的熵码分割成不少于两部分。
27.如权利要求22所述的装置,其中所述码数量控制/编码单元配置用于编码每一产生的熵码为:最小长度形式的每一产生的熵码的表示和指示每一产生的熵码位长的信息的组合。
28.如权利要求22所述的装置,其中所述码数量控制/编码单元配置用于直接输出产生的熵码,该产生的熵码的位长不超过特定的长度,并用新码替代位长超过特定长度的产生的熵码。
29.一种计算机图形数据解码装置,用于解码由如权利要求1中所述的计算机图形数据编码装置编码的多个计算机图形数据项,所述计算机图形数据解码装置包括:
获取单元,配置用于获取已编码的数据项;
提取信息解码单元,配置用于解码已编码的最小信息;
解码信息产生单元,配置用于基于已解码的最小信息,产生用于获取用于解码码字的多个解码字的解码信息;
累积单元,配置用于累积解码信息;
熵解码单元,配置用于使用解码信息解码所述熵码;
数据解码单元,配置用于将已解码的熵数据解码为在码数量受到控制之前存在的数据;
后处理解码单元,配置用于使用预处理所获取的计算机图形数据项的预处理的逆处理,将数据解码单元所解码的数据解码为预处理计算机图形数据项之前的计算机图形数据项;和
输出单元,配置用于输出后处理解码单元所获取的数据。
30.一种计算机图形数据解码装置,用于解码由如权利要求8中所述的计算机图形数据编码装置编码的多个计算机图形数据项,所述计算机图形数据解码装置包括:
获取单元,配置用于获取已编码的数据项;
提取信息解码单元,配置用于解码已编码的最小信息;解码信息产生单元,配置用于基于已解码的最小信息,产生用于获取用于解码码字的多个解码字的解码信息;
累积单元,配置用于累积所述解码信息;
熵解码单元,配置用于使用解码信息解码熵码;
数据解码单元,配置用于将已解码的熵数据解码为在码数量受到控制之前出现的数据;
后处理解码单元,配置用于使用用于预处理所获取的计算机图形数据项的预处理的逆处理,将数据解码单元所解码的数据解码为在预处理计算机图形数据项之前的计算机图形数据项;和
输出单元,配置用于输出后处理解码单元所获取的数据。
31.一种计算机图形数据解码装置,用于解码由如权利要求15中所述的计算机图形数据编码装置编码的多个计算机图形数据项,所述计算机图形数据解码装置包括:
获取单元,配置用于获取已编码的数据项;
提取信息解码单元,配置用于解码已编码的最小信息;
解码信息生成单元,配置用于基于已解码的最小信息和第二信息,产生指示码字与对应于所述码字的多个解码字之间的关系的解码信息;
解码信息累积单元,配置用于累积解码信息;
熵解码单元,配置用于利用解码信息解码熵码;
数据解码单元,配置用于将已解码的熵数据解码为在码数量受到控制之前存在的数据;
后处理解码单元,配置用于使用用于预处理所获取的计算机图形数据项的预处理的逆处理,将数据解码单元所解码的数据解码为预处理计算机图形数据项之前的计算机图形数据项;和
输出单元,配置用于输出后处理解码单元解码的数据。
32.一种计算机图形数据解码装置,用于解码由如权利要求22中所述的计算机图形数据编码装置编码的多个计算机图形数据项,所述计算机图形数据解码装置包括:
获取单元,配置用于获取已编码的数据项;
提取信息解码单元,配置用于解码已编码的最小信息;
解码信息产生单元,配置用于基于已解码的最小信息和第二信息,产生指示码字与对应于所述码字的多个解码字之间的关系的解码信息;
解码信息累积单元,配置用于累积解码信息;
熵解码单元,配置用于利用解码信息解码熵码;
数据解码单元,配置用于将已解码的熵数据解码为在码数量受到控制之前存在的数据;
后处理解码单元,配置用于使用用于预处理所获取的计算机图形数据项的预处理的逆处理,将数据解码单元所解码的数据解码为预处理计算机图形数据项之前的计算机图形数据项;和
输出单元,配置用于输出后处理解码弹元解码的数据。
33.一种计算机图形数据编码方法,包括:
获取多个计算机图形数据项;
对所获取的计算机图形数据项进行预处理;
对预处理的计算机图形数据项进行用于控制最终输出的码数量的处理,以产生多个码;
累积包含在所述产生的码中的将要经受熵编码的多个部分;
基于累积的部分计算熵信息,并基于熵信息产生多个码字,所述熵信息指示熵量;
基于所产生的码字对所产生的码进行熵编码,以产生多个熵码;
从熵信息中提取用于解码的最小信息;
编码最小信息以便减少最小信息的量;和
输出熵码和已编码的最小信息。
34.一种计算机图形数据编码方法,包括:
获取多个计算机图形数据项;
预处理所获取的计算机图形数据项;
累积预处理的计算机图形数据项;
基于累积的计算机图形数据项的多个码部分计算熵信息,并基于熵信息产生多个码字,所述熵信息指示熵量;
基于所产生的码字对累积的计算机图形数据项进行熵编码,以产生多个熵码;
对产生的熵码进行用于控制最终输出的码数量的处理,以产生多个码;
从熵信息中提取用于解码的最小信息;
编码最小信息以便减少最小信息的量;和
输出所述处理产生的码,和已编码的最小信息。
35.一种计算机图形数据编码方法,包括:
获取多个计算机图形数据项;
预处理所获取的计算机图形数据项;
对预处理的计算机图形数据项进行用于控制最终输出的码数量的处理,以产生多个码;
累积第一信息,该第一信息指示要经受熵编码的包含在所产生码中的多个部分和每一部分的产生频率之间的关系;
预累积第二信息,该第二信息指示熵信息和基于熵信息产生的多个第一码字之间的关系,所述熵信息指示典型数据的熵量;
基于所述累积的第一信息和预累积的第二信息,产生与已产生的码相对应的多个第二码字;
基于已产生的第二码字,对已产生的码进行熵编码,以产生多个熵码;
基于已产生的码字,从累积的第一信息和预累积的第二信息中提取用于解码的最小信息;
编码最小信息以便减少最小信息的数量;和
输出熵码及已编码的最小信息。
36.一种计算机图形数据编码方法,包括:
获取多个计算机图形数据项;
预处理所获取的计算机图形数据项;
累积第一信息,该第一信息指示包含在预处理中执行的计算机图形数据项中的要经受熵编码的多个部分和每一部分的产生频率之间的关系;
预累积第二信息,该第二信息指示熵信息和基于熵信息产生的多个第一码字之间的关系,所述熵信息指示典型数据的熵量;
基于所述累积的第一信息和预累积的第二信息,产生与预处理的计算机图形数据项相对应的多个第二码字;
基于已产生的第二码字,对已预处理的计算机图形数据项进行熵编码,以产生多个熵码;
对已产生的熵码进行用于控制最终输出的码数量的处理,以产生多个码;
基于已产生的第二码字,从累积的第一信息和预累积的第二信息中提取用于解码的最小信息;
编码最小信息以便减少最小信息的量;和
输出所述处理产生的码,以及已编码的最小信息。
37.一种解码由如权利要求33中所述的计算机图形数据编码方法所编码的多个计算机图形数据项的方法,该方法包括:
获取已编码的数据项;
解码已编码的最小信息;
基于已解码的最小信息,产生用于获取用于解码码字的多个解码字的解码信息;
累积所述解码信息;
利用解码信息解码熵码;
将已解码的熵数据解码为在码数量受到控制之前存在的数据;
利用用于预处理获取的计算机图形数据项的预处理的逆处理,将数据解码为预处理计算机图形数据项之前的计算机图形数据项;和
输出所获取的计算机图形数据项。
38.一种解码由如权利要求34中所述的计算机图形数据编码方法所编码的多个计算机图形数据项的方法,该方法包括:
获取已编码的数据项;
解码已编码的最小信息;
基于已解码的最小信息,产生用于获取用于解码码字的多个解码字的解码信息;
累积所述解码信息;
利用解码信息解码熵码;
将已解码的熵数据解码为在码数量受到控制之前存在的数据;
利用用于预处理获取的计算机图形数据项的预处理的逆处理,将数据解码为预处理计算机图形数据项之前的计算机图形数据项;和
输出所获取的计算机图形数据项。
39.一种解码由如权利要求35中所述的计算机图形数据编码方法所编码的多个计算机图形数据项的方法,该方法包括:
获取已编码的数据项;
解码已编码的最小信息;
基于已解码的最小信息和第二信息,产生指示码字与对应于所述码字的多个解码字之间的关系的解码信息;
累积所述解码信息;
利用解码信息解码熵码;
将已解码的熵数据解码为在码数量受到控制之前存在的数据;
利用用于预处理获取的计算机图形数据项的预处理的逆处理,将数据解码为预处理计算机图形数据项之前的计算机图形数据项;和
输出所获取的计算机图形数据项。
40.一种解码由如权利要求36中所述的计算机图形数据编码方法所编码的多个计算机图形数据项的方法,该方法包括:
获取已编码的数据项;
解码已编码的最小信息;
基于已解码的最小信息和第二信息,产生指示码字与对应于所述码字的多个解码字之间的关系的解码信息;
累积所述解码信息;
利用解码信息解码熵码;
将已解码的熵数据解码为在码数量受到控制之前存在的数据;
利用用于预处理获取的计算机图形数据项的预处理的逆处理,将数据解码为预处理计算机图形数据项之前的计算机图形数据项;和
输出所获取的计算机图形数据项。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005049409A JP4037875B2 (ja) | 2005-02-24 | 2005-02-24 | コンピュータグラフィックスデータ符号化装置、復号化装置、符号化方法、および、復号化方法 |
JP2005049409 | 2005-02-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1825355A true CN1825355A (zh) | 2006-08-30 |
CN100568284C CN100568284C (zh) | 2009-12-09 |
Family
ID=36912781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200510131527.9A Expired - Fee Related CN100568284C (zh) | 2005-02-24 | 2005-09-29 | 计算机图形数据编码装置、解码装置、编码和解码方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US7339583B2 (zh) |
JP (1) | JP4037875B2 (zh) |
CN (1) | CN100568284C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104579356A (zh) * | 2013-10-21 | 2015-04-29 | 国际商业机器公司 | 在存在重现的霍夫曼树的情况下加速解压缩的方法和系统 |
CN107431491A (zh) * | 2014-11-26 | 2017-12-01 | 科立康公司 | 改进的文件压缩和加密 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5172523B2 (ja) * | 2008-07-31 | 2013-03-27 | 株式会社東芝 | 画像データ処理方法、画像データ処理装置及び圧縮回路 |
JP5367552B2 (ja) * | 2009-12-15 | 2013-12-11 | 株式会社東芝 | 画像処理装置および画像処理プログラム |
WO2011110003A1 (zh) * | 2010-08-24 | 2011-09-15 | 华为技术有限公司 | 二叉树建立、压缩和查找的方法和装置 |
US20150091805A1 (en) * | 2013-09-27 | 2015-04-02 | Ayeshwarya Mahajan | Run-time image display on a device |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06315143A (ja) | 1993-04-28 | 1994-11-08 | Olympus Optical Co Ltd | 画像処理装置 |
KR100186915B1 (ko) * | 1994-07-13 | 1999-05-01 | 모리시다 요이치 | 디지털 부호화 장치 및 디지털 부호 복호화 장치 |
JPH0918350A (ja) | 1995-06-28 | 1997-01-17 | Hitachi Ltd | 符号化復号化装置及び符号化復号化方法 |
US6023301A (en) * | 1995-07-14 | 2000-02-08 | Sharp Kabushiki Kaisha | Video coding device and video decoding device |
JPH1169164A (ja) * | 1997-08-21 | 1999-03-09 | Toshiba Corp | 画像符号化方法および画像符号化装置および画像復号化装置および画像形成装置 |
WO2000021199A1 (fr) * | 1998-10-06 | 2000-04-13 | Matsushita Electric Industrial Co., Ltd. | Procede et dispositif de codage a compression sans perte, et procede et dispositif de decodage a compression sans perte |
JP2000138933A (ja) | 1998-11-02 | 2000-05-16 | Fujitsu Ltd | 画像符号化装置 |
US6643402B1 (en) * | 1999-03-23 | 2003-11-04 | Sanyo Electric Co., Ltd | Image compression device allowing rapid and highly precise encoding while suppressing code amount of image data after compression |
US6658159B1 (en) * | 2000-03-17 | 2003-12-02 | Hewlett-Packard Development Company, L.P. | Block entropy coding in embedded block coding with optimized truncation image compression |
CA2359260C (en) * | 2000-10-20 | 2004-07-20 | Samsung Electronics Co., Ltd. | Coding apparatus and method for orientation interpolator node |
US6947874B2 (en) * | 2000-11-16 | 2005-09-20 | Canon Kabushiki Kaisha | Entropy coding |
US7436329B2 (en) * | 2003-04-17 | 2008-10-14 | Droplet Technology, Inc. | Multiple technique entropy coding system and method |
US7199735B1 (en) * | 2005-08-25 | 2007-04-03 | Mobilygen Corporation | Method and apparatus for entropy coding |
-
2005
- 2005-02-24 JP JP2005049409A patent/JP4037875B2/ja not_active Expired - Fee Related
- 2005-09-26 US US11/234,289 patent/US7339583B2/en not_active Expired - Fee Related
- 2005-09-29 CN CN200510131527.9A patent/CN100568284C/zh not_active Expired - Fee Related
-
2008
- 2008-01-09 US US11/971,499 patent/US7561162B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104579356A (zh) * | 2013-10-21 | 2015-04-29 | 国际商业机器公司 | 在存在重现的霍夫曼树的情况下加速解压缩的方法和系统 |
CN104579356B (zh) * | 2013-10-21 | 2017-09-15 | 国际商业机器公司 | 在存在重现的霍夫曼树的情况下加速解压缩的方法和系统 |
CN107431491A (zh) * | 2014-11-26 | 2017-12-01 | 科立康公司 | 改进的文件压缩和加密 |
Also Published As
Publication number | Publication date |
---|---|
JP4037875B2 (ja) | 2008-01-23 |
US7339583B2 (en) | 2008-03-04 |
JP2006238036A (ja) | 2006-09-07 |
US7561162B2 (en) | 2009-07-14 |
US20080118166A1 (en) | 2008-05-22 |
CN100568284C (zh) | 2009-12-09 |
US20060188166A1 (en) | 2006-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1294540C (zh) | 编解码坐标内插符关键字数据和关键值数据的装置 | |
CN1320809C (zh) | 图像处理装置与方法 | |
CN1145142C (zh) | 矢量量化方法和语音编码方法及其装置 | |
CN1075321C (zh) | 图像编码装置及方法 | |
CN1647139A (zh) | 数据变换装置和数据变换方法 | |
CN1545813A (zh) | 图象编码装置、图象译码装置、图象编码方法、图象译码方法、图象编码程序和图象译码程序 | |
CN1856036A (zh) | 字幕产生设备和方法 | |
CN1268135C (zh) | 编码方法、编码装置和记录媒体、以及解码方法、解码装置和记录媒体 | |
CN1960190A (zh) | Ldpc码校验矩阵构造方法及利用该方法的编码解码装置 | |
CN1586042A (zh) | 可变长编码方法以及可变长译码方法 | |
CN101069356A (zh) | 解码装置以及通信装置 | |
CN1200571C (zh) | 正交变换、逆正交变换方法及装置、编码、解码方法及装置 | |
CN1922890A (zh) | 分段可逆视频编码方法、分段可逆视频译码方法、分段可逆视频编码装置、分段可逆视频译码装置和它们的程序及程序记录媒体 | |
CN1178461C (zh) | 图像编码装置、图像译码装置、传真装置 | |
CN1606351A (zh) | 用于数字视频加水印的色彩选择方案 | |
CN1825355A (zh) | 计算机图形数据编码装置、解码装置、编码和解码方法 | |
CN1271862C (zh) | 动画图象编码方法和动画图象译码方法 | |
CN1653447A (zh) | 报告NxM离散余弦变换的方法 | |
CN1182518A (zh) | 编码装置、译码装置和编码、译码方法以及图象处理装置 | |
CN1148744C (zh) | 调制设备和方法 | |
CN1229758C (zh) | 正交变换图像的分辨率变换装置和方法 | |
CN1287354C (zh) | 代码转换方法与设备 | |
CN100350433C (zh) | 计算路径误差的方法和提取路径断点的方法 | |
CN1017489B (zh) | 数字调制方法 | |
CN101064843A (zh) | 可变长度编码方法以及可变长度解码方法 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091209 Termination date: 20130929 |