[go: up one dir, main page]

CN1741392A - The method and apparatus that data are encoded and deciphered - Google Patents

The method and apparatus that data are encoded and deciphered Download PDF

Info

Publication number
CN1741392A
CN1741392A CN 200510092099 CN200510092099A CN1741392A CN 1741392 A CN1741392 A CN 1741392A CN 200510092099 CN200510092099 CN 200510092099 CN 200510092099 A CN200510092099 A CN 200510092099A CN 1741392 A CN1741392 A CN 1741392A
Authority
CN
China
Prior art keywords
data
value
minimum value
minimum
quantization
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
Application number
CN 200510092099
Other languages
Chinese (zh)
Other versions
CN100530977C (en
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1741392A publication Critical patent/CN1741392A/en
Application granted granted Critical
Publication of CN100530977C publication Critical patent/CN100530977C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Processing Or Creating Images (AREA)

Abstract

提供了对数据进行编码和译码的方法和装置。用于对数据进行编码的装置包括:一个量化器,用于将输入给它的数据量化为预定的比特量化;一个DPCM操作器,用于通过对量化数据执行DPCM操作生成差分数据;一个熵编码器,用于对从DPCM操作器输入的差分数据进行熵编码,并将经过熵编码的差分数据输出到比特流中;一个量化误差最小化器,用于接收输入数据和量化数据,调节输入数据中的最大和最小值,从而使量化误差最小,并且输出最大和最小值;以及一个标题编码器,用于对将被包括在比特流中的最大和最小值进行编码。

Figure 200510092099

Methods and apparatus for encoding and decoding data are provided. The means for encoding data includes: a quantizer for quantizing data input to it into a predetermined bit quantization; a DPCM operator for generating differential data by performing a DPCM operation on the quantized data; an entropy encoding A device for entropy coding the differential data input from the DPCM operator and outputting the entropy coded differential data into a bit stream; a quantization error minimizer for receiving input data and quantized data, and adjusting the input data and a header encoder for encoding the maximum and minimum values to be included in the bitstream.

Figure 200510092099

Description

对数据进行编码和译码的方法和装置Method and apparatus for encoding and decoding data

本申请是申请日为2002年11月27日、申请号为02154294.5、发明名称为“对数据进行编码和译码的方法和装置”的发明专利申请的分案申请。This application is a divisional application of an invention patent application with a filing date of November 27, 2002, an application number of 02154294.5, and an invention title of "Method and Device for Encoding and Decoding Data".

技术领域technical field

本发明涉及一种用于对数据进行编码和译码的装置和方法,更具体讲,涉及一种差分脉冲码调制(DPCM)操作、一种规范数据的方法以及一种使用所述DPCM操作和所述规范数据的方法对数据进行编码和译码的方法和装置。The present invention relates to an apparatus and method for encoding and decoding data, and more particularly, to a differential pulse code modulation (DPCM) operation, a method of normalizing data, and a method using the DPCM operation and The method for standardizing data is a method and device for encoding and decoding data.

背景技术Background technique

图1的框图示出了常规的用于对数据进行编码的装置以及常规的用于对数据进行译码的装置的结构。参照图1,常规的用于对数据进行编码的装置包括量化器100、DPCM操作器110和熵编码器120。按照常规的用于对数据进行编码的方法,在量化器100中,利用预定数量的比特量化输入数据并将其输入给DPCM操作器110。DPCM操作器110通过从在先量化的数据中减掉从量化器100输入的当前量化数据,生成差分数据并将该差分数据输出给熵编码器120。熵编码器120使用预定的熵编码方法,将该差分数据编码成比特流。FIG. 1 is a block diagram showing the structure of a conventional device for encoding data and a conventional device for decoding data. Referring to FIG. 1 , a conventional apparatus for encoding data includes a quantizer 100 , a DPCM operator 110 and an entropy encoder 120 . According to a conventional method for encoding data, in the quantizer 100 , input data is quantized with a predetermined number of bits and input to the DPCM operator 110 . The DPCM operator 110 generates differential data and outputs the differential data to the entropy encoder 120 by subtracting the current quantized data input from the quantizer 100 from the previously quantized data. The entropy encoder 120 encodes the differential data into a bit stream using a predetermined entropy encoding method.

参照图1,传统的用于对数据进行译码的装置包括熵译码器130、逆DPCM操作器140和逆量化器150。将数据编码在其中的比特流被输入给熵译码器130。熵译码器130逆向执行由熵编码器执行的处理,输出差分数据,然后,逆DPCM操作器140将从熵译码器130输入的差分数据转换为量化数据并将该量化数据输出给逆量化器150。逆量化器150对从逆DPCM操作器140输入的量化数据进行逆量化,然后输出译码的数据。Referring to FIG. 1 , a conventional apparatus for decoding data includes an entropy decoder 130 , an inverse DPCM operator 140 and an inverse quantizer 150 . The bit stream in which data is encoded is input to the entropy decoder 130 . The entropy decoder 130 reversely performs the processing performed by the entropy encoder to output differential data, and then the inverse DPCM operator 140 converts the differential data input from the entropy decoder 130 into quantized data and outputs the quantized data to inverse quantization device 150. The inverse quantizer 150 inverse quantizes the quantized data input from the inverse DPCM operator 140, and then outputs decoded data.

但是,由于前述常规的用于对数据进行编码的方法仅仅执行简单的DPCM操作,以至于减少了将被编码的数据量,并且这种方法对具有多个分量的数据进行编码而没有考虑数据的x、y和z分量中每个分量的特性,特别是当数据被连续输入时,它的编码效率不够高。However, since the aforementioned conventional method for encoding data only performs simple DPCM operations, the amount of data to be encoded is reduced, and this method encodes data having a plurality of components without considering the The characteristics of each of the x, y, and z components, especially when the data is fed in continuously, it cannot be encoded efficiently enough.

发明内容Contents of the invention

为了解决上述和其他问题,本发明的一个目的就是要提供一种能够显著地减少将被编码的数据的尺寸的DPCM操作和DPCM操作器。SUMMARY OF THE INVENTION In order to solve the above and other problems, it is an object of the present invention to provide a DPCM operation and a DPCM operator capable of significantly reducing the size of data to be encoded.

本发明的另一个方面是提供一种用于编码和对数据进行译码的方法和装置,它们能够使得在量化处理期间生成的量化误差最小并能够对数据的正负号进行编码。Another aspect of the present invention is to provide a method and apparatus for encoding and decoding data that minimize quantization errors generated during the quantization process and that encode the sign of the data.

本发明的另一个方面是提供一种利用对数据进行规范的方法,对数据进行编码和译码的方法和装置,所述规范数据的方法通过根据一个分量来对x、y和z分量中的每一个分量的数据进行规范,可以减少具有多个分量的数据的尺寸。Another aspect of the present invention is to provide a method and apparatus for encoding and decoding data using a method of normalizing data by normalizing the x, y and z components according to one component Normalizing data per component can reduce the size of data with multiple components.

本发明的另一个方面是提供一种用于对数据进行编码的方法和装置,其中,按照本发明的DPCM操作、误差最小化方法和数据规范方法被应用于用于编码和译码位置内插器的密钥值数据的方法,所述密钥值数据用于表示出现在三维动画中的目标的位置,还提供一种用于对比特流进行译码的方法和装置,该比特流已经被按照用于对数据进行编码的方法和装置进行了编码。Another aspect of the present invention is to provide a method and apparatus for encoding data, wherein the DPCM operation, error minimization method and data normalization method according to the present invention are applied for encoding and decoding position interpolation A method for key value data of a device, the key value data is used to represent the position of an object appearing in a three-dimensional animation, and a method and device for decoding a bit stream, which has been decoded Encoding is performed according to methods and apparatus for encoding data.

因此,为了实现本发明的上述和其他方面,提供了一种用于生成差分数据的装置,该装置包括:一个循环DPCM操作器,用于对量化数据执行DPCM操作,以便生成差分数据,对差分数据执行循环量化操作以便减少它们的范围,然后,输出循环量化的差分数据;一个预测循环DPCM操作器,用于对量化数据执行预测DPCM操作,以便生成预测的差分数据,对所述预测的差分数据执行循环量化操作,以便减少它们的范围,然后输出循环量化预测的差分数据;以及一个选择器,用于根据输入给它的差分数据的值,选择循环量化的差分数据和预测差分数据中的一个。Therefore, in order to achieve the above and other aspects of the present invention, there is provided an apparatus for generating differential data, the apparatus comprising: a cyclic DPCM operator for performing a DPCM operation on quantized data to generate differential data, for differential performing a cyclic quantization operation on the data in order to reduce their range, and then outputting cyclically quantized differential data; a predictive cyclic DPCM operator for performing a predictive DPCM operation on the quantized data in order to generate predicted differential data, for which the predicted differential data undergoes a cyclic quantization operation in order to reduce their range, and then outputs cyclic quantized predicted differential data; and a selector for selecting the cyclic quantized differential data and the predicted differential data according to the value of the differential data input to it one.

为了实现本发明的上述和其他方面,提供了一种用于生成差分数据的方法。该方法包括:(a)通过对量化数据执行DPCM操作,生成差分数据,通过对量化数据执行预测DPCM操作,生成预测差分数据,(b)通过对差分数据和预测的差分数据执行循环量化操作,生成循环量化差分数据和循环量化预测差分数据,以便减少它们的范围,以及(c)根据它们的幅值选择循环量化差分数据和循环量化预测差分数据中的一个。In order to achieve the above and other aspects of the present invention, a method for generating differential data is provided. The method includes: (a) generating differential data by performing a DPCM operation on the quantized data, generating predicted differential data by performing a predictive DPCM operation on the quantized data, (b) performing a cyclic quantization operation on the differential data and the predicted differential data, The cyclic quantization difference data and the cyclic quantization prediction difference data are generated so as to reduce their ranges, and (c) one of the cyclic quantization difference data and the cyclic quantization prediction difference data is selected according to their magnitudes.

为了实现本发明的上述和其他方面,提供了一种使用差分数据生成量化数据的装置。该装置包括:一个逆循环DPCM操作器,用于对输入给它的差分数据执行逆循环量化操作,以便扩展它们的范围,对逆循环量化操作的结果执行逆DPCM操作,然后输出量化数据;一个逆预测循环DPCM操作器,用于对输入给它的差分数据执行逆循环量化操作便扩展它们的范围,对逆循环量化操作的结果执行逆预测DPCM操作,然后输出量化数据;以及一个确定单元,用于根据对差分数据已经执行的DPCM的种类,将差分数据输出给逆循环DPCM操作器或逆预测循环DPCM操作器。In order to achieve the above and other aspects of the present invention, there is provided an apparatus for generating quantized data using differential data. The apparatus comprises: an inverse cyclic DPCM operator for performing an inverse cyclic quantization operation on differential data input thereto in order to extend their range, performing an inverse DPCM operation on the result of the inverse cyclic quantization operation, and then outputting quantized data; an inverse predictive cyclic DPCM operator for performing inverse cyclic quantization operations on differential data input thereto to extend their range, performing inverse predictive DPCM operations on the results of the inverse cyclic quantization operations, and then outputting quantized data; and a determination unit, Used to output the differential data to the inverse loop DPCM operator or the inverse predictive loop DPCM operator according to the type of DPCM that has been performed on the differential data.

为了实现本发明的上述和其他方面,提供了一种利用差分数据生成量化数据的方法。该方法包括:(a)识别已经对输入的差分数据执行的DPCM的种类,(b)对输入差分数据执行逆循环量化操作,以便扩展它们的范围,以及(c)如果输入差分数据已经被执行了DPCM操作,则通过对逆循环量化的差分数据执行逆循环DPCM操作来生成量化数据,而如果输入差分数据已经被执行了预测DPCM操作,则通过对逆循环量化的差分数据执行逆预测循环DPCM操作来生成量化数据。In order to achieve the above and other aspects of the present invention, there is provided a method of generating quantized data using differential data. The method includes: (a) identifying the kind of DPCM that has been performed on the input differential data, (b) performing an inverse loop quantization operation on the input differential data in order to extend their range, and (c) if the input differential data has been performed If the DPCM operation is performed, the quantized data is generated by performing the reverse cycle DPCM operation on the reverse cycle quantized differential data, and if the input differential data has been subjected to the predictive DPCM operation, the reverse cycle DPCM is performed on the reverse cycle quantized differential data operations to generate quantitative data.

为了实现本发明的上述和其他方面,提供了一种用于对数据进行编码的装置。所述装置包括:一个量化器,用于将输入给它的数据量化为预定的量化比特;一个DPCM操作器,用于通过对量化数据执行DPCM操作生成差分数据;一个熵编码器,用于对从DPCM操作器输入给它的差分数据执行熵编码,并将经过熵编码的差分数据输出为比特流;一个量化误差极小化器,用于接收输入数据和量化数据,调节输入数据中的最大和最小值,从而使量化误差最小并且输出最大和最小值;以及一个标题编码器,用于对将被包括在比特流中的最大和最小值进行编码。In order to achieve the above and other aspects of the present invention, an apparatus for encoding data is provided. The apparatus includes: a quantizer for quantizing data input to it into predetermined quantization bits; a DPCM operator for generating differential data by performing a DPCM operation on the quantized data; an entropy encoder for Entropy encoding is performed on the differential data input to it from the DPCM operator, and the entropy-encoded differential data is output as a bit stream; a quantization error minimizer is used to receive input data and quantized data, and adjust the maximum of the input data and minimum values, thereby minimizing quantization errors and outputting the maximum and minimum values; and a header encoder for encoding the maximum and minimum values to be included in the bitstream.

为了实现本发明的上述和其他方面,提供了一种用于对数据进行编码的方法。该方法包括:(a)利用预定的量化比特,量化输入数据;(b)通过对量化数据执行DPCM操作,生成差分数据;(c)通过对在步骤(b)中生成的差分数据进行熵编码,生成比特流;(d)利用输入数据和量化数据调节在输入数据中的最大和最小值,从而使量化误差最小;以及(e)对将被包括在比特流中的最大和最小值进行编码。In order to achieve the above and other aspects of the present invention, a method for encoding data is provided. The method comprises: (a) quantizing input data by using predetermined quantization bits; (b) generating differential data by performing a DPCM operation on the quantized data; (c) entropy encoding the differential data generated in step (b) , generating a bitstream; (d) adjusting the maximum and minimum values in the input data using the input data and the quantization data, thereby minimizing the quantization error; and (e) encoding the maximum and minimum values to be included in the bitstream .

为了实现本发明的上述和其他方面,提供了一种用于对具有多个分量的数据进行编码的装置。该装置包括:一个规范器,用于计算分量的数据范围中的最大范围,并根据该最大范围,规范每个分量的数据;一个量化器,用于用预定的量化比特,对经过规范的数据进行量化;一个DPCM操作器,用于对量化数据执行DPCM操作,然后输出差分数据;和一个熵编码器,用于对差分数据执行熵编码,并输出差分数据已经被编码进其中的比特流。In order to achieve the above and other aspects of the present invention, there is provided an apparatus for encoding data having a plurality of components. The device includes: a normalizer for calculating the maximum range in the data range of the components, and normalizing the data of each component according to the maximum range; a quantizer for normalizing the normalized data with predetermined quantization bits performing quantization; a DPCM operator for performing a DPCM operation on the quantized data and then outputting differential data; and an entropy encoder for performing entropy encoding on the differential data and outputting a bitstream into which the differential data has been encoded.

为了实现本发明的上述和其他方面,提供了一种用于对数据进行编码的方法,该方法用于对具有多个分量的数据进行编码。该方法包括:(a)计算分量的数据范围当中的最大范围,并根据该最大范围规范每个分量的数据;(b)利用预定的量化比特,量化经过规范的数据;(c)通过对量化数据执行DPCM操作生成差分数据;以及(d)通过对差分数据执行熵编码,生成数据已经被编码进其中的比特流。To achieve the above and other aspects of the present invention, there is provided a method for encoding data for encoding data having a plurality of components. The method includes: (a) calculating the maximum range among the data ranges of the components, and normalizing the data of each component according to the maximum range; (b) quantizing the normalized data by using predetermined quantization bits; (c) quantizing performing a DPCM operation on the data to generate differential data; and (d) generating a bitstream into which the data has been encoded by performing entropy encoding on the differential data.

为了实现本发明的上述和其他方面,提供了一种用于对数据进行译码的装置,该装置对将具有多个分量的数据编码进其中的比特流进行译码。该装置包括:一个熵译码器,用于对输入给它的比特流进行熵译码并输出差分数据;一个逆DPCM操作器,用于对差分数据执行逆DPCM操作并输出量化数据;一个逆量化器,用于对量化数据执行逆量化并输出规范数据;以及一个逆规范器,用于从比特流中接收每个分量数据当中的最小值以及每个分量数据当中的最大值,得到规范数据的最大范围,并根据该最大范围和最小值,对规范数据进行逆规范。To achieve the above and other aspects of the present invention, there is provided an apparatus for decoding data that decodes a bit stream into which data having a plurality of components is encoded. The device includes: an entropy decoder for entropy decoding the bit stream input to it and outputting differential data; an inverse DPCM operator for performing inverse DPCM operations on differential data and outputting quantized data; an inverse a quantizer configured to perform inverse quantization on the quantized data and output normalized data; and a denormalizer configured to receive a minimum value among each component data and a maximum value among each component data from the bitstream to obtain normalized data The maximum range of , and denormalize the canonical data based on the maximum range and minimum value.

为了实现本发明的上述和其他方面,提供了一种用于对数据进行译码的方法,该方法对将具有多个分量的数据编码进其中的比特流进行译码。该方法包括:(a)通过对输入比特流执行熵译码,生成差分数据;(b)通过对差分数据执行逆DPCM操作,生成量化数据;(c)通过对量化数据执行逆量化,生成规范数据;以及(d)利用从比特流中译码的每个分量数据当中的最小值和每个分量数据当中的最大值,得到规范数据的最大范围,并根据最大范围和最小值,对规范数据执行逆规范。To achieve the above and other aspects of the present invention, there is provided a method for decoding data that decodes a bit stream into which data having a plurality of components is encoded. The method includes: (a) generating differential data by performing entropy decoding on an input bit stream; (b) generating quantized data by performing an inverse DPCM operation on the differential data; (c) generating a specification by performing inverse quantization on the quantized data data; and (d) using the minimum value among each component data and the maximum value among each component data decoded from the bitstream to obtain the maximum range of the normalized data, and based on the maximum range and the minimum value, the normalized data Execute the reverse norm.

为了实现本发明的上述和其他方面,提供了一种用于对数据进行编码的装置,该装置用于对表示具有x、y和z分量的目标的位置的位置内插器的密钥值数据进行编码。所述装置包括:一个规范器,用于计算分量的数据范围当中的最大范围,根据该最大范围,规范x、y和z分量中的每个分量的密钥值数据并输出规范的密钥值数据;一个量化器,用于利用预定的量化比特,量化规范的密钥值数据;一个浮点数编码器,用于接收在规范操作中使用的最小值和最大范围并将输入值转换成十进制数;一个DPCM处理器,用于获得量化密钥值数据的差分数据和预测差分数据,并对差分数据和预测差分数据执行循环量化操作,从而减少它们的范围;一个熵编码器,用于对差分数据执行熵编码,并输出将密钥值数据编码进其中的比特流;以及一个密钥值标题编码器,用于对对比特流进行译码所需的、将被包括在比特流中的信息进行编码。To achieve the above and other aspects of the invention, there is provided means for encoding data for key value data of a position interpolator representing the position of an object having x, y and z components to encode. The apparatus includes: a normalizer for calculating a maximum range among data ranges of the components, according to the maximum range, normalizing the key value data of each of the x, y and z components and outputting the normalized key value data; a quantizer to quantize the canonical key value data with predetermined quantization bits; a floating-point encoder to receive the minimum and maximum ranges used in the canonical operation and convert the input value to a decimal number ; a DPCM processor for obtaining differential data and predicted differential data of the quantized key value data, and performing cyclic quantization operations on the differential data and predicted differential data, thereby reducing their range; an entropy encoder for differential the data performs entropy encoding and outputs a bitstream into which the key value data is encoded; and a key value header encoder for encoding the information required to decode the bitstream to be included in the bitstream to encode.

为了实现本发明的上述和其他方面,提供了一种用于对数据进行编码的方法,该方法用于对表示具有x、y和z分量的目标的位置的位置内插器的密钥值数据进行编码。。所述方法包括:(a)计算分量的数据范围当中的一个最大范围,根据该最大范围,规范x、y和z分量中的每个分量的密钥值数据,然后生成规范的密钥值数据;(b)利用预定的量化比特,量化规范的密钥值数据;(c)将在规范操作中使用的最小值和最大范围转换成十进制数;(d)获得量化密钥值数据的差分数据和预测差分数据,并对差分数据和预测差分数据执行循环量化操作,从而减少它们的范围;(e)通过对差分数据执行熵编码,生成将密钥值数据编码进其中的比特流;以及(f)对对比特流进行译码所需的、将被包括在比特流中的信息进行编码。To achieve the above and other aspects of the invention, there is provided a method for encoding data for key value data of a position interpolator representing the position of an object having x, y and z components to encode. . The method comprises: (a) calculating a maximum range among the data ranges of the components, normalizing key value data for each of the x, y, and z components based on the maximum range, and then generating normalized key value data ; (b) quantize the canonical key value data using predetermined quantization bits; (c) convert the minimum and maximum ranges used in the canonical operation into decimal numbers; (d) obtain the difference data of the quantized key value data and predicted differential data, and perform a cyclic quantization operation on the differential data and the predicted differential data, thereby reducing their range; (e) generate a bitstream into which the key value data is encoded by performing entropy encoding on the differential data; and ( f) Encoding the information to be included in the bitstream required for decoding the bitstream.

为了实现本发明的上述和其他方面,提供了一种用于对数据进行译码的装置,该装置用于对将用x、y和z分量表示目标的位置的位置内插器的密钥值数据编码进其中的比特流进行译码。该装置包括:一个密钥值标题译码器,用于对来自比特流的、译码所需的信息进行译码;一个熵译码器,用于对比特流进行熵译码并输出差分数据;一个逆DPCM处理器,用于根据对差分数据执行的DPCM的类型,对差分数据执行逆循环DPCM操作或逆预测循环DPCM操作,并由此输出量化的密钥值数据;一个逆量化器,用于对量化的密钥值数据进行逆量化并输出规范的密钥值数据;一个浮点数译码器,用于从密钥值标题译码器中接收x、y和z分量中的每个分量的密钥值数据当中的最小值和x、y和z分量的数据范围当中的最大范围,将最小值和最大范围转换成二进制数,并将该二进制数输出给逆规范器;以及一个逆规范器,用于从浮点数译码器中接收x、y和z分量中的每个分量的密钥值数据当中的最小值和x、y和z分量的数据范围当中的最大范围,并对x、y和z分量的密钥值数据进行逆规范。In order to achieve the above and other aspects of the present invention, there is provided an apparatus for decoding data for a key value of a position interpolator that will represent the position of an object with x, y and z components The bit stream into which the data is encoded is decoded. The device includes: a key value header decoder for decoding information required for decoding from the bit stream; an entropy decoder for entropy decoding the bit stream and outputting differential data ; an inverse DPCM processor for performing an inverse cyclic DPCM operation or an inverse predictive cyclic DPCM operation on differential data according to the type of DPCM performed on the differential data, and thereby outputting quantized key value data; an inverse quantizer, Used to dequantize quantized key value data and output canonical key value data; a floating point decoder for receiving each of the x, y, and z components from the key value header decoder The minimum value among the key value data of the component and the maximum range among the data ranges of the x, y, and z components, convert the minimum value and maximum range into a binary number, and output the binary number to the denormalizer; and an inverse A normalizer for receiving a minimum value among key value data of each of the x, y, and z components and a maximum range among data ranges of the x, y, and z components from the floating-point number decoder, and The key value data for the x, y, and z components are denormalized.

为了实现本发明的上述和其他方面,提供了一种用于对数据进行译码的方法,该方法用于对将用x、y和z分量表示目标的位置的位置内插器的密钥值数据编码进其中的比特流进行译码。所述方法包括:(a)对来自比特流的、进行译码所需的标题信息进行译码;(b)通过对比特流进行熵译码生成差分数据;(c)通过根据对差分数据执行的DPCM的类型,对差分数据执行逆循环DPCM操作或逆预测循环DPCM操作,生成量化的密钥值数据;(d)将已经在步骤(a)中译码的、x、y和z分量中的每个分量的密钥值数据当中的最小值和x、y和z分量的数据范围当中的最大范围转换成二进制数,并将x、y和z分量中的每个分量的密钥值数据当中的最小值和x、y和z分量的所有密钥值数据当中的最大值转换成二进制数;(e)通过根据预定的量化比特,对量化的密钥值数据执行逆量化,生成规范的密钥值数据;以及(f)根据已经在步骤(d)中被转换的、x、y和z分量中的每个分量的密钥值数据当中的最小值和x、y和z分量的数据范围当中的最大范围,对密钥值数据进行逆规范。To achieve the above and other aspects of the present invention, there is provided a method for decoding data for a key value of a position interpolator that will represent the position of an object with x, y and z components The bit stream into which the data is encoded is decoded. The method comprises: (a) decoding header information required for decoding from the bit stream; (b) generating differential data by entropy decoding the bit stream; (c) generating differential data by performing The type of DPCM, perform the reverse cycle DPCM operation or the reverse prediction cycle DPCM operation on the differential data, generate quantized key value data; (d) convert the x, y and z components that have been decoded in step (a) Convert the minimum value among the key value data of each component of and the maximum range among the data ranges of the x, y, and z components into binary numbers, and convert the key value data of each of the x, y, and z components The minimum value among them and the maximum value among all key value data of the x, y and z components are converted into binary numbers; (e) by performing inverse quantization on the quantized key value data according to predetermined quantization bits, generating a canonical key value data; and (f) the data of the x, y and z components based on the minimum value among the key value data of each of the x, y and z components that have been converted in step (d) The largest range of ranges to denormalize the key value data.

                         附图说明 Description of drawings

通过结合附图对本发明的优选实施例进行详细描述,本发明的上述目的和优点将变得更加清楚,其中:By describing in detail preferred embodiments of the present invention in conjunction with the accompanying drawings, the above-mentioned purposes and advantages of the present invention will become clearer, wherein:

图1的框图示出了用于对数据进行编码的常规装置和用于对数据进行译码的常规装置的结构;The block diagram of Fig. 1 shows the structure that is used for encoding the conventional apparatus of data and is used for the structure of the conventional apparatus of decoding data;

图2A的框图示出了按照本发明的优选实施例的、用于执行DPCM操作的装置,并且图2B示出了按照本发明的优选实施例的DPCM操作的流程图;The block diagram of Fig. 2A shows the apparatus for performing DPCM operation according to the preferred embodiment of the present invention, and Fig. 2B shows the flowchart of the DPCM operation according to the preferred embodiment of the present invention;

图3A的框图示出了按照本发明的优选实施例的、用于利用DPCM操作器对数据进行编码的装置,并且图3B示出了图3A所示的、用于对数据进行编码装置的操作流程图;The block diagram of Fig. 3 A shows, according to the preferred embodiment of the present invention, is used to utilize DPCM operator to encode the device of data, and Fig. 3 B shows, is used for the device of encoding data shown in Fig. 3 A Operation flow chart;

图4A的框图示出了按照本发明的优选实施例的、用于对数据进行编码的装置,该装置能够使量化误差最小。图4B示出了使量化误差最小的方法的流程图;Figure 4A is a block diagram illustrating an apparatus for encoding data that minimizes quantization errors, according to a preferred embodiment of the present invention. Figure 4B shows a flowchart of a method of minimizing quantization error;

图5A的框图示出了按照本发明的优选实施例的、用于对数据进行编码的装置,该装置对具有多个分量的输入数据进行规范,然后对规范的数据进行编码,并且图5B示出了对数据进行规范的方法的流程图;Figure 5A is a block diagram illustrating an apparatus for encoding data according to a preferred embodiment of the present invention, which normalizes input data having multiple components and then encodes the normalized data, and Figure 5B A flowchart illustrating a method of normalizing data;

图6A的框图示出了按照本发明的优选实施例的、用于对数据进行编码的装置,该装置用于对位置内插器的密钥值数据进行编码,并且图6B示出了用于对密钥值数据进行编码的方法的流程图;Figure 6A is a block diagram showing an apparatus for encoding data according to a preferred embodiment of the present invention, which is used to encode key value data for a position interpolator, and Figure 6B shows an apparatus for encoding key value data using A flowchart of a method for encoding key value data;

图7A和7B示出了图6A所示的浮点数编码器的操作流程图;7A and 7B show a flowchart of the operation of the floating-point number encoder shown in FIG. 6A;

图7C和7D示出了按照本发明的优选实施例的熵译码器的操作流程图;7C and 7D show a flowchart of the operation of an entropy decoder according to a preferred embodiment of the present invention;

图8示出了图7C中所示的步骤S683;FIG. 8 shows step S683 shown in FIG. 7C;

图9A和9B示出了图7D中所示的步骤;Figures 9A and 9B illustrate the steps shown in Figure 7D;

图10A的框图示出了按照本发明的优选实施例的逆DPCM操作器;并且图10B示出了逆DPCM操作的流程图;Figure 10A is a block diagram showing an inverse DPCM operator according to a preferred embodiment of the present invention; and Figure 10B shows a flow chart of inverse DPCM operations;

图11的框图示出了按照本发明的优选实施例的、用于利用逆DPCM操作器对数据进行译码的装置;The block diagram of Fig. 11 shows the apparatus for decoding data using an inverse DPCM operator according to a preferred embodiment of the present invention;

图12A的框图示出了按照本发明的优选实施例的、用于利用逆规范器对数据进行译码的装置,并且图12B示出了逆规范器的操作流程图;The block diagram of Fig. 12A shows an apparatus for decoding data using a denormalizer according to a preferred embodiment of the present invention, and Fig. 12B shows an operation flowchart of the denormalizer;

图13A的框图示出了按照本发明的优选实施例的、用于对密钥值数据进行译码的装置,和图13B示出了用于对密钥值数据进行译码的方法的流程图;The block diagram of Fig. 13A shows the apparatus for decoding key value data according to a preferred embodiment of the present invention, and Fig. 13B shows the flow of the method for decoding key value data picture;

图14A示出了图13B中所示的步骤S1320的详细流程图;FIG. 14A shows a detailed flowchart of step S1320 shown in FIG. 13B;

图14B示出了图14A中所示的步骤S1330的详细流程图;FIG. 14B shows a detailed flowchart of step S1330 shown in FIG. 14A;

图14C示出了图13B中所示的步骤S1380的详细流程图;FIG. 14C shows a detailed flowchart of step S1380 shown in FIG. 13B;

图15示出了按照本发明的优选实施例的、被输入给熵译码器的比特流的分量顺序;Fig. 15 shows the component order of the bit stream that is input to the entropy decoder according to the preferred embodiment of the present invention;

图16A和16B示出了按照本发明的优选实施例的预测DPCM操作的结果;Figures 16A and 16B show the results of predictive DPCM operations according to a preferred embodiment of the present invention;

图17A到17C示出了按照本发明的优选实施例的循环DPCM操作的结果;Figures 17A to 17C show the results of cyclic DPCM operations according to a preferred embodiment of the present invention;

图18A和18B示出了位置内插器的密钥和密钥值数据;以及Figures 18A and 18B show the key and key value data for the position interpolator; and

图19到27示出了程序代码的例子,通过这些程序代码,可以实现在按照本发明的优选实施例的、用于对数据进行译码的方法中的读取比特流的过程。19 to 27 show examples of program codes by which the process of reading a bit stream in the method for decoding data according to a preferred embodiment of the present invention can be realized.

                    具体实施方式 Detailed ways

下面将结合附图更充分地描述本发明。The invention will be more fully described below with reference to the accompanying drawings.

图2A的框图示出了按照本发明的优选实施例的、用于执行DPCM操作的装置,并且图2B示出了按照本发明的优选实施例的DPCM操作的流程图。FIG. 2A is a block diagram showing an apparatus for performing DPCM operations according to a preferred embodiment of the present invention, and FIG. 2B shows a flowchart of DPCM operations according to a preferred embodiment of the present invention.

参照图2A,按照本发明的优选实施例的、用于执行DPCM操作的装置包括:一个循环DPCM操作器200,它包括用于执行一般DPCM操作、然后输出差分数据的DPCM操作器210和对输入给它的差分数据执行循环量化操作以便减少它们的范围的循环量化操作器220;一个预测循环DPCM操作器230,它包括用于对输入给它的量化数据执行预测DPCM操作、然后输出预测差分数据的预测DPCM操作器和用于对输入给它的差分数据执行循环量化操作以便减少它们的范围的循环量化器250;以及一个选择器260,用于根据输入给它差分数据的值,在从循环DPCM操作器200输入的差分数据和从预测循环DPCM操作器230输入的差分数据之间选择一个差分数据。With reference to Fig. 2 A, according to the preferred embodiment of the present invention, be used for carrying out the apparatus of DPCM operation and comprise: a cyclic DPCM manipulator 200, it comprises the DPCM manipulator 210 that is used to carry out general DPCM operation, output differential data then and input A cyclic quantization operator 220 that performs a cyclic quantization operation on its differential data in order to reduce their range; a predictive cyclic DPCM operator 230 that includes a predictive DPCM operation for performing a predictive DPCM operation on the quantized data input to it, and then outputs a predictive differential data A predictive DPCM operator and a cyclic quantizer 250 for performing a cyclic quantization operation on the differential data input to it in order to reduce their range; One differential data is selected between the differential data input from the DPCM operator 200 and the differential data input from the prediction cycle DPCM operator 230 .

下面将参照图2B,描述按照本发明的优选实施例的DPCM操作。The operation of DPCM according to the preferred embodiment of the present invention will be described below with reference to FIG. 2B.

在步骤S210中,被按照任何一种量化方法进行量化的数据被输入给循环DPCM操作器200和预测循环DPCM操作器230。In step S210 , the data quantized by any one of the quantization methods is input to the loop DPCM operator 200 and the predictive loop DPCM operator 230 .

在循环DPCM操作器200中,DPCM操作器210通过对输入给它的量化数据执行一般的DPCM操作,生成差分数据,并将所生成的差分数据输出给循环量化器220。然后,循环量化器220在步骤S220a中对从DPCM操作器210输入的差分数据执行循环量化。In the loop DPCM operator 200 , the DPCM operator 210 generates differential data by performing a general DPCM operation on the quantized data input thereto, and outputs the generated differential data to the loop quantizer 220 . Then, the loop quantizer 220 performs loop quantization on the differential data input from the DPCM operator 210 in step S220a.

具体来说,DPCM操作器210通过从在步骤S210中输入的当前量化数据中减去在前量化数据,计算的差分数据。此后,循环量化器220对所计算的差分数据执行循环量化。循环DPCM操作器200的操作由下述等式表示。Specifically, the DPCM operator 210 calculates difference data by subtracting the previous quantization data from the current quantization data input in step S210. Thereafter, the loop quantizer 220 performs loop quantization on the calculated differential data. The operation of the cyclic DPCM operator 200 is represented by the following equation.

pp ^^ ii == CircularQuantizationCircular Quantization (( pp ~~ ii -- pp ~~ ii )) (( ii == 1,21,2 ,, .. .. .. ,, nno )) -- -- -- (( 11 ))

在等式(1)中,n表示数据的数量。随后将描述循环量化。In Equation (1), n represents the number of data. Loop quantization will be described later.

在预测循环DPCM操作器230中的预测DPCM操作器240通过对输入给它的差分数据执行预测DPCM操作计算预测差分数据,然后,循环量化器250在步骤S220b中对预测差分数据执行循环量化。The predicted DPCM operator 240 in the predicted loop DPCM operator 230 calculates predicted differential data by performing a predicted DPCM operation on the differential data input thereto, and then the loop quantizer 250 performs loop quantization on the predicted differential data in step S220b.

具体来说,预测DPCM操作器240通过从当前的量化数据中减去预测数据,生成预测的差分数据并将其输出。为了获得用于当前量化数据的预测数据,通过从在前的量化数据中减去在在前的量化数据之前的量化数据获得差分值,然后将该差分值加到在前的差分数据上,从而计算用于当前数据的预测数据。Specifically, the predictive DPCM operator 240 generates and outputs predicted difference data by subtracting the predicted data from the current quantized data. In order to obtain prediction data for the current quantized data, a difference value is obtained by subtracting the quantized data before the previous quantized data from the previous quantized data, and then adding the difference value to the previous difference data, thereby Calculate forecast data for current data.

由预测DPCM操作器240计算的预测数据不可以超过输入给它的量化数据的最大范围。换言之,如果预测数据超过输入量化数据的量化范围中的最大值,那么,预测DPCM操作器240将把该预测数据设置成输入量化数据的量化范围中的最大值并通过从该预测数据中减去当前数据,生成用于当前数据的差分数据。如果预测数据小于在输入数据的量化范围中的最小值,那么,预测DPCM操作器240将当前数据确定为预测差分数据。此后,预测DPCM操作器240的操作将被称为“经过修改的预测DPCM操作”。The predicted data calculated by the predicted DPCM operator 240 may not exceed the maximum range of the quantized data input to it. In other words, if the predicted data exceeds the maximum value in the quantization range of the input quantized data, then the predicted DPCM operator 240 will set the predicted data to the maximum value in the quantized range of the input quantized data and subtract Current data, generate differential data for the current data. If the predicted data is smaller than the minimum value in the quantization range of the input data, the predicted DPCM operator 240 determines the current data as the predicted difference data. Hereinafter, the operation of the predictive DPCM operator 240 will be referred to as "modified predictive DPCM operation".

由预测DPCM操作器230计算的预测差分数据被输入给循环量化器250,并被执行循环量化操作。The predicted difference data calculated by the predicted DPCM operator 230 is input to the loop quantizer 250, and a loop quantization operation is performed.

预测循环DPCM操作器230的操作可以由下述等式表示。The operation of the predictive cyclic DPCM operator 230 can be represented by the following equation.

p ~ ^ = ( 2 nQuantBit - 1 ) - p ~ i (如果 2 × p ~ i - 1 - p ~ i - 2 > 2 nQuantBit - 1 )    …(2) p ~ ^ = ( 2 nQuantBit - 1 ) - p ~ i (if 2 × p ~ i - 1 - p ~ i - 2 > 2 nQuantBit - 1 ) …(2)

p ~ ^ i = p ~ i (如果 2 &times; p ~ i - 1 - p ~ i - 2 < 0 ) p ~ ^ i = p ~ i (if 2 &times; p ~ i - 1 - p ~ i - 2 < 0 )

p ~ ^ i = p ~ i - ( 2 &times; p ~ i - 1 - p ~ i - 2 ) (否则) p ~ ^ i = p ~ i - ( 2 &times; p ~ i - 1 - p ~ i - 2 ) (otherwise)

pp ^^ ii == CircularQuantizationCircular Quantization (( pp ~~ ^^ ii ))

在等式(2)中,i是一个位于2和n-1之间的整数,n表示数据的数量。In Equation (2), i is an integer between 2 and n-1, and n represents the number of data.

图16A示出了对50个具有最大值为1024和最小值为0的量化数据执行简单预测DPCM操作的结果,并且图16B示出了对与图16A的情况的数据相同的数据执行经过修改的预测DPCM操作的结果,从而,在用于数据的预测数据超过数据当中的最大值或低于数据当中的最小值的情况下,将用于数据的差分数据按照等式(2)进行调节。Figure 16A shows the results of performing a simple predictive DPCM operation on 50 quantized data with a maximum value of 1024 and a minimum value of 0, and Figure 16B shows the modified The result of the DPCM operation is predicted so that the differential data for the data is adjusted according to equation (2) in case the predicted data for the data exceeds the maximum value among the data or falls below the minimum value among the data.

作为简单预测DPCM操作的结果,预测差分数据具有大约3,000宽的范围,如图16A所示。作为经过修改的预测DPCM操作的结果,预测差分数据具有不大于2,000的窄范围,如图16B所示。这意味着在经过修改的预测DPCM操作中比在简单预测DPCM操作中更容易获得具有较窄范围的预测差分数据。As a result of the simple predictive DPCM operation, the predictive differential data has a range approximately 3,000 wide, as shown in FIG. 16A. As a result of the modified predictive DPCM operation, the predictive difference data has a narrow range of not more than 2,000, as shown in FIG. 16B. This means that it is easier to obtain predicted differential data with a narrower range in modified predictive DPCM operation than in simple predictive DPCM operation.

下面将描述循环量化。The loop quantization will be described below.

图17A示出了量化数据,并且图17B示出了对图17A中所示的量化数据执行DPCM操作的结果。如图17B所示,在DPCM操作之后的差分数据的范围可以增加到执行DPCM操作之前的两倍宽。因此,可以说,使用循环量化操作可以使得在将被执行DPCM操作的差分数据的范围保持在输入数据的范围以内的同时,执行DPCM操作。FIG. 17A shows quantized data, and FIG. 17B shows the result of performing a DPCM operation on the quantized data shown in FIG. 17A. As shown in FIG. 17B, the range of differential data after the DPCM operation can be increased to twice as wide as before the DPCM operation is performed. Therefore, it can be said that using the cyclic quantization operation makes it possible to perform the DPCM operation while keeping the range of differential data on which the DPCM operation is to be performed within the range of the input data.

在假设量化范围内的最大值和最小值彼此循环连接的基础上,执行循环量化操作。因此,如果作为对两个连续的量化数据执行线性DPCM的结果的差分数据大于量化范围中的最大值的一半,则可以通过从差分数据的每一个当中减去最大值来减小它们的值。The cyclic quantization operation is performed on the assumption that the maximum value and the minimum value within the quantization range are cyclically connected to each other. Therefore, if differential data as a result of performing linear DPCM on two consecutive quantized data is larger than half of the maximum value in the quantization range, their values can be reduced by subtracting the maximum value from each of the differential data.

如果差分数据小于量化范围中的最小值的一半,则通过将量化范围中的最大值加到差分数据的每一个上,可以进一步减小它们的值。If the differential data is less than half of the minimum value in the quantization range, their values can be further reduced by adding the maximum value in the quantization range to each of the differential data.

假定X和

Figure A20051009209900153
分别表示输入差分数据和循环量化的差分数据,则循环量化可以由下列等式表示。Suppose X and
Figure A20051009209900153
denote the input differential data and the differential data of cyclic quantization respectively, then the cyclic quantization can be expressed by the following equation.

CircularQuantizationCircular Quantization (( Xx ii )) == Xx ^^ ii == MinMin (( || Xx ii || ,, || Xx ii &prime;&prime; || )) -- -- -- (( 33 ))

X′i=Xi-(2nQBits-1)   (如果X≥0)X′ i =X i -(2 nQBits -1) (if X≥0)

      X′i=Xi+(2nOBits-1)    (否则)X′ i =X i +(2 nOBits -1) (otherwise)

在等式(3)中,nQBits表示用于量化的比特尺寸。图17C示出了对图17B所示的差分数据执行循环量化的结果。In Equation (3), nQBits represents a bit size for quantization. Fig. 17C shows the result of loop quantization performed on the differential data shown in Fig. 17B.

再次参照图2B,循环量化的差分数据和循环量化的预测差分数据被输出给选择器260,然后,选择器260在步骤S230中对输入的差分数据执行差分绝对值求和(SAD)操作。这里,执行SAD操作从而使输入数据的绝对值都被相加。在步骤S230中,选择器将所有循环量化的差分数据的绝对值相加并将所有循环量化的预测差分数据的绝对值相加。Referring again to FIG. 2B, the circularly quantized differential data and the circularly quantized predicted differential data are output to the selector 260, and then the selector 260 performs a sum of absolute difference (SAD) operation on the input differential data in step S230. Here, the SAD operation is performed so that the absolute values of the input data are all added. In step S230, the selector adds the absolute values of all cyclically quantized differential data and adds the absolute values of all cyclically quantized predicted differential data.

此后,选择器260将量化的差分数据的绝对值之和与预测的差分数据的绝对值之和进行比较,从量化的差分数据和预测的差分数据之间选择具有较小绝对值和的差分数据并在步骤S240中输出所选择的差分数据。选择器260选择具有较小绝对值和的差分数据的原因在于按照推测它们具有较窄范围的值。例如,在对预测差分数据进行熵编码的过程中,可以期望对具有较小绝对值和的差分数据进行编码所需的比特数少于对具有较大绝对值和的差分数据进行编码所需的比特数。Thereafter, the selector 260 compares the sum of the absolute values of the quantized differential data with the sum of the absolute values of the predicted differential data, and selects differential data having a smaller sum of absolute values from between the quantized differential data and the predicted differential data And output the selected differential data in step S240. The reason why the selector 260 selects differential data having a smaller absolute value sum is that they presumably have a narrower range of values. For example, in the process of entropy coding the predicted differential data, it can be expected that the number of bits required to encode the differential data with a smaller absolute value sum is less than the number of bits required to encode the differential data with a larger absolute value sum number of bits.

对于本领域内普通技术人员来讲很明显,SAD操作只不过是多种用于选择某组差分数据的方法中的一种,由此,选择器260可以采用不同的方法选择差分数据。It is obvious to those skilled in the art that the SAD operation is just one of many methods for selecting a certain set of differential data, thus, the selector 260 can select differential data using different methods.

图3A的框图示出了按照本发明的第一实施例的、用于对数据进行编码的装置,和图3B示出了按照本发明的第一实施例的、用于对数据进行编码的装置的操作的流程图。按照本发明的第一实施例的、用于对数据进行编码的装置包括前述的本发明的DPCM操作器。Fig. 3A is a block diagram showing a device for encoding data according to a first embodiment of the present invention, and Fig. 3B shows a device for encoding data according to a first embodiment of the present invention Flow chart of the operation of the device. An apparatus for encoding data according to a first embodiment of the present invention includes the aforementioned DPCM operator of the present invention.

图3A所示的用于对数据进行编码的装置包括:一个量化器310,用于利用预定的量化比特对输入数据进行量化;一个DPCM处理器340,用于对量化数据执行循环DPCM操作和预测DPCM操作、然后输出差分数据;以及一个熵编码器350,用于对从DPCM处理器340输入的差分数据执行预定的熵编码操作,然后输出比特流。DPCM处理器340包括前述的本发明的DPCM操作器。The apparatus for encoding data shown in FIG. 3A includes: a quantizer 310 for quantizing input data with predetermined quantization bits; a DPCM processor 340 for performing cyclic DPCM operations and prediction on the quantized data and an entropy encoder 350 for performing a predetermined entropy encoding operation on the differential data input from the DPCM processor 340, and then outputting a bit stream. The DPCM processor 340 includes the aforementioned DPCM operator of the present invention.

参照图3A和3B,在步骤S310中,要被编码的数据被输入给用于对数据进行编码的装置,并在步骤S320中,被在量化器310中利用预定数量的量化比特进行量化并且被输出给DPCM处理器340。3A and 3B, in step S310, the data to be encoded is input to a device for encoding data, and in step S320, is quantized in a quantizer 310 using a predetermined number of quantization bits and is Output to DPCM processor 340.

在DPCM处理器340中的循环DPCM操作器200对从量化器310输入的量化数据执行DPCM操作和循环量化操作,然后将结果输出到选择器260。另外,所述预测循环DPCM操作器在步骤S330中对从量化器310输入的量化数据执行预测DPCM操作和循环量化。The loop DPCM operator 200 in the DPCM processor 340 performs a DPCM operation and loop quantization operation on the quantized data input from the quantizer 310 and then outputs the result to the selector 260 . In addition, the predictive loop DPCM operator performs a predictive DPCM operation and loop quantization on the quantized data input from the quantizer 310 in step S330.

选择器260对从循环DPCM操作器200输入的差分数据和从预测循环DPCM操作器230输入的差分数据执行SAD操作,选择将被输出给熵译码器350的差分数据,并在步骤S340中将所选择的差分数据输出。The selector 260 performs a SAD operation on the differential data input from the cyclic DPCM operator 200 and the differential data input from the predictive cyclic DPCM operator 230, selects the differential data to be output to the entropy decoder 350, and converts Selected differential data output.

熵编码器350对从选择器260输入的差分数据执行预定的熵编码操作,从而对它们进行熵编码并在步骤S350中生成比特流。The entropy encoder 350 performs a predetermined entropy encoding operation on the differential data input from the selector 260, thereby entropy encoding them and generating a bit stream in step S350.

图4A的框图示出了按照本发明第二实施例用于对数据进行编码的装置,和图4B的流程图示出了图4A所示量化误差最小化器的操作。FIG. 4A is a block diagram showing an apparatus for encoding data according to a second embodiment of the present invention, and FIG. 4B is a flowchart showing the operation of the quantization error minimizer shown in FIG. 4A.

按照本发明第二实施例用于对数据进行编码的装置包括用于使一个比特流中的量化误差最小化的最大值和最小值,并对该比特流进行编码从而当对对数据进行编码进行译码时使所述量化误差可以被最小化。The apparatus for encoding data according to the second embodiment of the present invention includes maximum and minimum values for minimizing quantization errors in a bit stream, and encodes the bit stream so that when encoding data The quantization error can be minimized during decoding.

参照图4A,按照本发明优选实施例的、用于对数据进行编码的装置包括量化器310、DPCM操作器110/340、熵编码器350、量化误差最小化器320以及标题编码器370,其中,量化误差最小化器320用于接收数据和量化数据,调节数据中的最大值和最小值以便能够使量化误差最小,并且输出经过调节的最大和最小值,标题编码器370用于将从量化误差最小化器320输入的最大值和最小值编码成标题信息,并且使该信息包括在比特流中。Referring to FIG. 4A, the apparatus for encoding data according to a preferred embodiment of the present invention includes a quantizer 310, a DPCM operator 110/340, an entropy encoder 350, a quantization error minimizer 320, and a header encoder 370, wherein , the quantization error minimizer 320 is used to receive data and quantized data, adjust the maximum and minimum values in the data so as to minimize the quantization error, and output the adjusted maximum and minimum values, and the header encoder 370 is used to convert the quantized The maximum and minimum values input by the error minimizer 320 are encoded into header information, and this information is included in the bitstream.

量化误差最小化器32O包括:一个初始值设置单元321,用于设置最小误差值emin、经过调节的最小值min’以及量化误差最小值minmin;一个经过调节的最小值更新单元323,用于通过执行一个预定的操作更新经过调节的最小值min’;一个确定单元325,用于根据经过更新和调节的最小值的数字数和值,将量化误差最小值minmin确定为将被用于逆量化的最小值;一个误差值更新单元327,用于利用经过更新和调节的最小值,计算量化误差值,如果所计算的误差值小于最小误差值emin,将经过调节的最小值min’和所计算的误差值分别更新成量化误差最小值minmin和最小误差值emin,并将更新的结果输出给经过调节的最小值更新单元323。The quantization error minimizer 320 includes: an initial value setting unit 321 for setting a minimum error value e min , an adjusted minimum value min' and a quantization error minimum value min min ; an adjusted minimum value update unit 323 for for updating the adjusted minimum value min' by performing a predetermined operation; a determination unit 325 for determining the quantization error minimum value min min to be used for The minimum value of inverse quantization; an error value update unit 327, which is used to calculate the quantization error value by using the updated and adjusted minimum value, and if the calculated error value is less than the minimum error value e min , the adjusted minimum value min' and the calculated error values are respectively updated to a quantization error minimum value min min and a minimum error value e min , and the updated results are output to the adjusted minimum value update unit 323 .

量化误差最小化器320通过对输入数据执行量化和逆量化来控制量化范围,以便使量化误差最小。The quantization error minimizer 320 controls the quantization range by performing quantization and inverse quantization on the input data so as to minimize the quantization error.

具体地说,当Max表示将被用于量化的固定最大值、Min表示将被用于量化的经过调节的最小值、Xi表示输入值、和nQuanBit表示用于量化的比特数,则利用等式(4)对量化输入值

Figure A20051009209900181
逆量化值
Figure A20051009209900182
以及误差ei进行计算。Specifically, when Max represents the fixed maximum value to be used for quantization, Min represents the adjusted minimum value to be used for quantization, Xi represents the input value, and nQuanBit represents the number of bits used for quantization, then using etc. Equation (4) quantifies the input value
Figure A20051009209900181
inverse quantization value
Figure A20051009209900182
And the error e i is calculated.

xx ~~ ii == floorfloor (( Xx ii -- MinMin MaxMax -- MinMin )) ** (( 22 nQuantBitnQuantBit -- 11 )) ++ 0.50.5 -- -- -- (( 44 ))

xx ^^ ii == Xx ~~ ii ** (( MaxMax -- MinMin )) 22 nQuantBitnQuantBit -- 11 ++ MinMin

ee ii == Xx ii -- Xx ^^ ii

为了减少误差和∑ei,量化误差最小化器320控制Min,从而能够使误差和∑ei最小并使用能够使在对数据进行译码的过程中的量化误差最小的最小值,对量化数据进行译码。In order to reduce the error sum Σe i , the quantization error minimizer 320 controls Min so that the error sum Σe i can be minimized and the quantized data can be quantized using the minimum value that can minimize the quantization error in the process of decoding the data. to decode.

量化器310、DPCM操作器110/340及熵编码器350和用于对数据进行编码的前述装置的对应元件几乎相同,因此这里不再重复。下面结合图4B更充分地描述量化误差最小化器320的操作。The quantizer 310, DPCM operator 110/340, and entropy encoder 350 are almost the same as the corresponding elements of the aforementioned means for encoding data, so they will not be repeated here. The operation of quantization error minimizer 320 is described more fully below in connection with FIG. 4B.

初始值设置单元321在步骤S402中接收与输入给量化器310的数据相同的数据以及从量化器310输出的量化数据。The initial value setting unit 321 receives the same data as the data input to the quantizer 310 and the quantized data output from the quantizer 310 in step S402.

初始值设置单元321从输入数据当中获得最大值max和最小值min并计算最小值min的数字数。接着,初始值设置单元321在步骤S404中通过利用最大值max和最小值min对量化数据进行逆量化来计算量化误差e并将该量化误差e设置为初始最小误差值eminThe initial value setting unit 321 obtains the maximum value max and the minimum value min from among the input data and calculates the number of digits of the minimum value min. Next, the initial value setting unit 321 calculates and sets a quantization error e as an initial minimum error value e min by inversely quantizing the quantized data using the maximum value max and the minimum value min in step S404 .

初始值设置单元321从输入数据当中的最小值中减去将量化步长QuantSpace除以2所得到的结果并将该减法结果设置为初始调节的最小值min’。然后,初始值设置单元321将所述初始调节的最小值min’设置为量化误差最小值mmin并在步骤S406中将经过调节的最小值min’输出给经过调节的最小值更新单元323。The initial value setting unit 321 subtracts the result of dividing the quantization step size QuantSpace by 2 from the minimum value among the input data and sets the result of the subtraction as the initially adjusted minimum value min′. Then, the initial value setting unit 321 sets the initially adjusted minimum value min' as the quantization error minimum value m min and outputs the adjusted minimum value min' to the adjusted minimum value updating unit 323 in step S406.

经过调节的最小值更新单元323通过执行预定的操作,更新从初始值设置单元321输入的经过调节的最小值min’。按照本发明的优选实施例,经过调节的最小值更新单元323按照等式(5)更新从初始值设置单元321输入的经过调节的最小值min’并在步骤S408中将经过更新和调节的最小值min’输出给确定单元325。The adjusted minimum value updating unit 323 updates the adjusted minimum value min' input from the initial value setting unit 321 by performing a predetermined operation. According to a preferred embodiment of the present invention, the adjusted minimum value update unit 323 updates the adjusted minimum value min' input from the initial value setting unit 321 according to equation (5) and in step S408 the updated and adjusted minimum The value min′ is output to the determination unit 325 .

minmin &prime;&prime; == MantissaMantissa (( minmin &prime;&prime; )) ++ 11 1010 ExponentExponent (( minmin &prime;&prime; )) -- -- -- (( 55 ))

在步骤S410中,确定单元325计算经过更新和调节的最小值min’的数字数,将该计算的结果与由初始值设置单元321计算的输入数据当中的最小值min的数字数进行比较,并将经过更新和调节的最小值min’与将输入数据当中的最小值min加到将量化比特尺寸QuantSpace除以2所得结果上的结果进行比较。In step S410, the determination unit 325 calculates the number of digits of the updated and adjusted minimum value min', compares the calculated result with the number of digits of the minimum value min among the input data calculated by the initial value setting unit 321, and The updated and adjusted minimum value min' is compared with the result of adding the minimum value min among the input data to the result obtained by dividing the quantization bit size QuantSpace by 2.

如果经过更新和调节的最小值min’的数字数大于输入数据当中的最小值min的数字数,或者如果经过更新和调节的最小值min’大于

Figure A20051009209900192
则确定单元325将当前所存储的量化误差最小值minmin确定为将被用于逆量化的最小值,并将该量化误差最小值minmin输出给输出单元329。如果经过更新和调节的最小值min’的数字数不大于输入数据当中的最小值min的数字数并且经过更新和调节的的最小值min’不大于
Figure A20051009209900193
则确定单元325将经过更新和调节的最小值min’输出给误差值更新单元327。If the number of digits of the updated and adjusted minimum min' is greater than the number of digits of the minimum min' in the input data, or if the updated and adjusted minimum min' is greater than
Figure A20051009209900192
Then the determining unit 325 determines the currently stored minimum value of the quantization error min min as the minimum value to be used for inverse quantization, and outputs the minimum value of the quantization error min min to the output unit 329 . If the number of digits of the updated and adjusted minimum value min' is not greater than the number of digits of the minimum value min in the input data and the updated and adjusted minimum value min' is not greater than
Figure A20051009209900193
Then the determining unit 325 outputs the updated and adjusted minimum value min′ to the error value updating unit 327 .

在步骤S414中,误差值更新单元327利用经过更新和调节的最小值min’和由初始值设置单元321获得最大值max对量化数据进行逆量化,并计算量化误差e。In step S414, the error value updating unit 327 dequantizes the quantized data using the updated and adjusted minimum value min' and the maximum value max obtained by the initial value setting unit 321, and calculates a quantization error e.

在步骤S446中,误差值更新单元327将新计算的误差值e与最小误差值emin进行比较。作为比较结果,如果新计算的误差值e小于最小误差值emin,则在步骤S418中,误差值更新单元327利用新计算的误差值e更新最小误差值emin,并利用经过更新和调节的最小值min’更新量化误差最小值minmin。另一方面,如果新计算的误差值e大于最小误差值emin,则误差值更新单元327将再次执行步骤S408而不对最小误差值emin和量化误差最小值minmin进行更新。In step S446, the error value update unit 327 compares the newly calculated error value e with the minimum error value e min . As a comparison result, if the newly calculated error value e is smaller than the minimum error value e min , then in step S418, the error value update unit 327 updates the minimum error value e min with the newly calculated error value e, and uses the updated and adjusted The minimum value min' updates the quantization error minimum value min min . On the other hand, if the newly calculated error value e is greater than the minimum error value e min , the error value updating unit 327 will execute step S408 again without updating the minimum error value e min and the minimum quantization error value min min .

经过上述处理获得的用于使量化误差最小的最大和最小值被输出给标题编码器370并被编码为标题信息。然后,该标题信息被包括在由熵编码器350生成的比特流中。The maximum and minimum values for minimizing the quantization error obtained through the above processing are output to the header encoder 370 and encoded as header information. Then, the header information is included in the bitstream generated by the entropy encoder 350 .

图5A的框图示出了按照本发明第三实施例的、用于对数据进行编码的装置,图5B的示出了图5A所示规范器的操作流程图。按照本发明第三实施例的、用于对数据进行编码的装置通过对具有多个分量的输入数据进行规范,提高了对数据进行编码的效率。Fig. 5A is a block diagram showing an apparatus for encoding data according to a third embodiment of the present invention, and Fig. 5B is a flowchart showing the operation of the normalizer shown in Fig. 5A. The apparatus for encoding data according to the third embodiment of the present invention improves the efficiency of encoding data by normalizing input data having a plurality of components.

如图5A所示,按照本发明第三实施例的、用于对数据进行编码的装置包括:规范器300,用于计算输入给用于对数据进行编码的装置的分量的数据范围当中的最大范围,并根据该最大范围对x、y和z分量中每个分量的数据进行规范;量化器310,用于利用预定数量的量化比特对经过规范的数据进行量化;DPCM操作器110/340,用于对量化数据执行DPCM操作并输出差分数据;以及熵编码器350,用于对差分数据进行熵编码并输出经过编码的比特流。As shown in FIG. 5A, the apparatus for encoding data according to the third embodiment of the present invention includes: a normalizer 300 for calculating the maximum value among the data ranges of the components input to the apparatus for encoding data range, and normalize the data of each of the x, y and z components according to the maximum range; the quantizer 310 is used to quantize the normalized data with a predetermined number of quantization bits; the DPCM operator 110/340, for performing a DPCM operation on the quantized data and outputting differential data; and an entropy encoder 350 for performing entropy encoding on the differential data and outputting an encoded bit stream.

量化器310、DPCM操作器110/340及熵编码器350和按照本发明第一实施例的、用于对数据进行编码的装置的对应元件相同,因此关于它们的详细描述这里不再重复。下面仅仅结合图5B描述规范器300的操作。The quantizer 310, DPCM operator 110/340 and entropy encoder 350 are the same as the corresponding elements of the apparatus for encoding data according to the first embodiment of the present invention, so detailed descriptions about them will not be repeated here. The operation of the normalizer 300 is described below only in conjunction with FIG. 5B.

在将被编码的数据包括多个分量的情况下,例如,如果输入数据包括表示目标在三维空间中的位置的三个分量x、y和z,则将x、y和z分量中的每一个分量输入给用于对数据进行编码的装置的规范器300。然后,规范器300计算x、y和z分量的范围当中的最大范围,并根据该最大范围对x、y和z分量中每一个分量的数据进行规范。In the case where the data to be encoded includes multiple components, for example, if the input data includes three components x, y, and z representing the position of the object in three-dimensional space, each of the x, y, and z components The components are input to a normalizer 300 of the means for encoding data. Then, the normalizer 300 calculates the maximum range among the ranges of the x, y, and z components, and normalizes the data of each of the x, y, and z components according to the maximum range.

在步骤S512中,规范器300接收每个分量的数据并按照等式(6)计算x、y和z分量的数据范围。然后,在步骤S514中,规范器300通过比较,计算x、y和z分量的数据范围当中的最大范围。In step S512, the normalizer 300 receives the data of each component and calculates the data ranges of the x, y and z components according to equation (6). Then, in step S514, the normalizer 300 calculates the maximum range among the data ranges of the x, y, and z components by comparison.

MaxMax jj == MaxMax ii == 00 nno (( pp &OverBar;&OverBar; ijij )) -- -- -- (( 66 ))

MinMin jj == MinMin ii == 00 nno (( pp &OverBar;&OverBar; ijij ))

Rangemax=Max(Maxx-Minx,Maxy-Miny,Maxz-Minz)Range max =Max(Max x -Minx, Max y -Min y , Max z -Min z )

此后,在步骤S516中,规范器300利用下述等式x、y和z分量中的每一个分量的数据进行规范。Thereafter, in step S516, the normalizer 300 performs normalization using the data of each of the x, y, and z components of the following equations.

Figure A20051009209900213
Figure A20051009209900213

在等式(6)和(7)中,n表示数据的数量,i=0,1,...,n-1,并且j表示x、y和z分量中的每一个分量。如等式(7)所示,使用它们数据范围当中的最大范围Rangemax对x、y和z分量进行规范。作为这种规范的结果,有关不具有最大范围Rangemax的分量的数据的冗余度增加,所以,提高了对数据进行编码的效率。In Equations (6) and (7), n represents the number of data, i=0, 1, . . . , n−1, and j represents each of x, y, and z components. The x, y, and z components are normalized using the largest range, Range max , among their data ranges, as shown in equation (7). As a result of this specification, the redundancy of data concerning components not having the maximum range Range max increases, so that the efficiency of encoding the data is improved.

规范器300对输入分量中的每个分量进行规范,并将规范的结果输出给量化器310,然后,量化器320利用预定数量的量化比特,对从规范器300输入的规范数据进行量化,并将量化的结果输出给DPCM操作器110/340。此后,DPCM操作器110/340通过对从量化器310输入的量化数据执行DPCM操作生成差分数据,并将该差分数据输出给熵编码器350,从而能够对它们进行编码。The normalizer 300 normalizes each of the input components, and outputs the normalized result to the quantizer 310, and then the quantizer 320 quantizes the normalized data input from the normalizer 300 using a predetermined number of quantization bits, and The quantized results are output to the DPCM operator 110/340. Thereafter, the DPCM operator 110/340 generates differential data by performing a DPCM operation on the quantized data input from the quantizer 310, and outputs the differential data to the entropy encoder 350, thereby being able to encode them.

下面将描述按照本发明第四实施例的用于对数据进行编码的装置,在该装置中集成了本发明前述的DPCM操作器、用于按照本发明对数据进行编码的能够使量化误差最小的前述装置以及用于按照本发明对数据进行编码的能够对具有多个分量的数据进行编码的前述装置。The following will describe an apparatus for encoding data according to a fourth embodiment of the present invention, in which the aforementioned DPCM operator of the present invention, an apparatus capable of minimizing quantization errors for encoding data according to the present invention are integrated The aforementioned means and the aforementioned means for encoding data according to the invention are capable of encoding data having a plurality of components.

尽管按照本发明第四实施例的用于对数据进行编码的装置被专门描述为对在三维动画数据当中的位置内插器的密钥值数据进行编码,但是很明显,它也可以对其它一般类型的数据进行编码。Although the apparatus for encoding data according to the fourth embodiment of the present invention is specifically described as encoding key value data of position interpolators among three-dimensional animation data, it is obvious that it can also encode other general type of data to encode.

位置内插器是关于表示在基于关键帧的动画中的动画路径的信息,基于关键帧的动画是表示计算机合成3D动画的基本技术之一。基于关键帧的动画被用于根据密钥数据出现的时刻,规定动画的顺序。与密钥数据出现的瞬间相对应的帧被称之为关键帧。A position interpolator is information about representing an animation path in keyframe-based animation, which is one of the basic techniques for representing computer-synthesized 3D animation. Keyframe-based animations are used to specify the sequence of animations based on when the key data occurs. A frame corresponding to the instant at which key data appears is called a key frame.

在基于关键帧的动画中,多个关键帧和在关键帧之间的多个帧构成了一个动画,并且这些帧被内插到关键帧之间(或使用内插法生成关键帧之间的帧)。In keyframe-based animation, multiple keyframes and multiple frames between keyframes constitute an animation, and these frames are interpolated between keyframes (or use interpolation to generate frame).

诸如用于景物的MPEG-4二进制格式(BIFS)和虚拟现实造型语言(VRML)等国际多媒体标准,支持使用内插器节点的基于关键帧的动画。在MPEG-4BIFS和VRML中,有包括标量内插器、位置内插器、坐标内插器、定向内插器、标准内插器和颜色内插器在内的各种内插器。这些内插器和它们的功能以及特征示于表1中。International multimedia standards, such as MPEG-4 Binary Format for Scenes (BIFS) and Virtual Reality Modeling Language (VRML), support keyframe-based animation using interpolator nodes. In MPEG-4BIFS and VRML, there are various interpolators including scalar interpolator, positional interpolator, coordinate interpolator, directional interpolator, standard interpolator and color interpolator. These interposers and their functions and characteristics are shown in Table 1.

表1   内插器的类型   特征   功能   标量内插器   标量变量的线性内插   能够表示面积、直径和密度   位置内插器   在3D坐标上的线性内插   在3D空间中的平行运动   定向内插器   3D坐标轴和旋转量的线性内插   3D空间中的旋转   坐标内插器   3D坐标中的变量的线性内插   3D变体   标准内插器   标准3D坐标的线性内插   能够表示标准3D矢量中的变量   颜色内插器   颜色信息的线性内插   能够表示在颜色中的变量 Table 1 Type of interposer feature Function scalar interpolator Linear Interpolation of Scalar Variables Capable of representing area, diameter, and density position interpolator Linear interpolation on 3D coordinates Parallel motion in 3D space directional interposer Linear interpolation of 3D coordinate axes and rotation Rotation in 3D space coordinate interpolator Linear interpolation of variables in 3D coordinates 3D variant Standard Interposer Linear interpolation of standard 3D coordinates Ability to represent variables in standard 3D vectors color interpolator Linear interpolation of color information Variables that can be represented in colors

表1所示的位置内插器被用于表示基于关键帧的动画的位置信息并包括密钥和密钥值字段。密钥字段用范围在-∞和∞之间的不连续数表示每个关键帧在时间轴上的位置。密钥值字段中的每一个规定目标在由每个密钥表示的时刻的位置的信息,并且包括x、y和z三个分量。密钥值字段中的每一个都包括与密钥字段中的每一个所具有的密钥值的数量相同的密钥值。The position interpolator shown in Table 1 is used to represent the position information of the keyframe-based animation and includes key and key value fields. The key field represents the position of each keyframe on the time axis with a discrete number ranging from -∞ to ∞. Each of the key value fields specifies information on the position of the target at the time indicated by each key, and includes three components of x, y, and z. Each of the key value fields includes the same number of key values as each of the key fields has.

关于位置内插器的例子示于图18A和18B中。具体地说,图18A示出了密钥数据,图18B示出了密钥值数据。Examples of position interpolators are shown in Figures 18A and 18B. Specifically, FIG. 18A shows key data, and FIG. 18B shows key value data.

在MPEG-4BIFS和VRML中已经使用了线性内插。但是,为了利用线性内插平滑并且自然地表示动画,需要相当大数量的密钥数据和密钥值数据。另外,为了存储和传输这种动画,需要具有大容量的存储器和大量的时间。因此,最好压缩内插器以便存储和传输这些内插器。Linear interpolation has been used in MPEG-4 BIFS and VRML. However, in order to express animation smoothly and naturally using linear interpolation, a considerable amount of key data and key value data is required. In addition, in order to store and transmit such animations, a large-capacity memory and a large amount of time are required. Therefore, it is preferable to compress the interpolators for storage and transmission of these interpolators.

在MPEG4-BIFS中,使用了对被称之为预测MF编码(PMFC)的内插器节点进行编码和译码的方法。在PMFC方法中,与图1所示的、用于对数据进行编码的常规装置的操作类似,利用量化器、DPCM操作器和熵编码器对位置内插器的密钥值数据进行编码。量化器和DPCM操作器减少了冗余的密钥值数据,DPCM操作器的输出被输入给熵编码器。但是,在PMFC方法中,对由DPCM操作器获得的差分数据进行熵编码,所以,其编码效率不够高。另外,由于熵编码器所具有的限制,它几乎不可能提供高质量的动画。In MPEG4-BIFS, a method of encoding and decoding an interpolator node called predictive MF coding (PMFC) is used. In the PMFC method, similar to the operation of the conventional apparatus for encoding data shown in FIG. 1, the key value data of the position interpolator is encoded using a quantizer, a DPCM operator, and an entropy encoder. The quantizer and DPCM operator reduce redundant key value data, and the output of the DPCM operator is input to the entropy encoder. However, in the PMFC method, entropy coding is performed on differential data obtained by the DPCM operator, so its coding efficiency is not high enough. Also, due to the limitations entropy encoders have, it is nearly impossible to provide high-quality animations.

因此,本发明提供一种用于对密钥值进行编码的装置,在该装置中集成了按照本发明的前述DPCM操作器、用于按照本发明对数据进行编码的能够使量化误差最小的前述装置以及用于按照本发明对数据进行编码的能够对具有多个分量的数据进行编码的前述装置,由此增加了对密钥值数据进行编码的效率。Therefore, the present invention provides a device for encoding a key value, in which device is integrated the aforementioned DPCM operator according to the invention, the aforementioned DPCM operator for encoding data according to the invention enabling quantization error minimization The apparatus and the aforementioned apparatus for encoding data according to the invention are capable of encoding data having a plurality of components, thereby increasing the efficiency of encoding key value data.

图6A的框图示出了按照本发明第四实施例的、用于对密钥值数据进行编码的装置,图6B为用于对密钥值数据进行编码的装置的操作流程图。FIG. 6A is a block diagram showing an apparatus for encoding key value data according to a fourth embodiment of the present invention, and FIG. 6B is an operation flowchart of the apparatus for encoding key value data.

参照图6A,用于对密钥值数据进行编码的装置包括:规范器300,用于根据x、y和z分量的数据范围当中一个最大范围,对每个分量的输入密钥值数据进行规范;量化器310,用于利用预定的量化比特,对规范的密钥值数据进行量化;量化误差最小化器320,用于从规范器300接收最小值和最大范围,并调节和输出最大和最小值,以便能够使量化误差最小;浮点数编码器330,用于从量化误差最小化器320接收最小值和最大范围,并将用于使量化误差最小的最大范围和最小值转换成十进制数;DPCM处理器340,用于获得量化密钥值数据的差分数据和预测差分数据并执行循环量化操作以便减少差分数据的范围;熵编码器350,用于对差分数据进行熵编码,然后输出将密钥值数据编码进其中的比特流;以及密钥值标题编码器360,用于对译码比特流所需的信息进行编码并使该信息能被包括在比特流中。Referring to FIG. 6A, the apparatus for encoding key value data includes: a normalizer 300 for normalizing the input key value data for each component according to a maximum range among the data ranges of the x, y and z components Quantizer 310 is used to quantize the key value data of the norm using predetermined quantization bits; quantization error minimizer 320 is used to receive the minimum value and the maximum range from the normalizer 300, and adjust and output the maximum and minimum value, so that the quantization error can be minimized; the floating-point number encoder 330 is used to receive the minimum value and the maximum range from the quantization error minimizer 320, and convert the maximum range and the minimum value for minimizing the quantization error into a decimal number; DPCM processor 340, is used for obtaining the difference data of quantization key value data and prediction difference data and carries out circular quantization operation so that reduce the range of difference data; a bit stream into which the key value data is encoded; and a key value header encoder 360 for encoding information required to decode the bit stream and enabling the information to be included in the bit stream.

下面结合图6B描述按照本发明的用于对密钥值数据进行编码的装置的操作。The operation of the apparatus for encoding key value data according to the present invention will be described below with reference to FIG. 6B.

在步骤S600中,x、y和z分量中每一个分量的密钥值数据被输入给用于对密钥值数据进行编码的装置的规范器300。然后,在步骤S610中,规范器300计算x、y和z分量的数据范围当中的最大范围,并根据该最大范围对所输入的x、y和z分量的密钥值数据进行规范。上面已经描述了对输入给规范器300的密钥值数据进行规范的处理,这里将不再重复。In step S600, the key value data of each of the x, y, and z components is input to the normalizer 300 of the apparatus for encoding key value data. Then, in step S610, the normalizer 300 calculates the maximum range among the data ranges of the x, y, and z components, and normalizes the input key value data of the x, y, and z components according to the maximum range. The process of normalizing the key value data input to the normalizer 300 has been described above, and will not be repeated here.

被规范的x、y和z分量的密钥值数据被输入给量化器310,然后在步骤S620中,量化器310利用预定数量的量化比特nQuanBit,按照等式(8)对规范的密钥值数据进行。The key value data of the standardized x, y and z components are input to the quantizer 310, and then in step S620, the quantizer 310 utilizes a predetermined number of quantization bits nQuanBit, according to equation (8) to the normalized key value data carried out.

pp ~~ ijij == floorfloor (( pp &OverBar;&OverBar; ijij &times;&times; (( 22 nQuantBitnQuantBit -- 11 )) ++ 0.50.5 -- -- -- (( 88 ))

在等式(8)中,floor()是一个用于将输入的浮点数转换成不大于该输入的浮点数的最大整数的函数。量化器310向DPCM处理器340和量化误差最小化器320输出量化的密钥值数据。In Equation (8), floor() is a function for converting an input floating-point number into the largest integer not larger than the input floating-point number. The quantizer 310 outputs quantized key value data to the DPCM processor 340 and the quantization error minimizer 320 .

在步骤S630中,量化误差最小化器320从规范器300接收最小值和最大范围,利用从规范器300输入的最小值和最大范围计算最小值和最大值,确定一个最小值和一个最大值以便使量化误差最小化,利用所确定的最小和最大值计算最小值和最大范围,并且向浮点数转换器330输出该最小值和最大范围,由此将它们编码成密钥值标题。这里,由量化误差最小化器320确定的最小和最大值被用于使量化误差最小。In step S630, the quantization error minimizer 320 receives the minimum value and the maximum range from the normalizer 300, calculates the minimum value and the maximum value using the minimum value and the maximum range input from the normalizer 300, and determines a minimum value and a maximum value so that The quantization error is minimized, a minimum value and a maximum range are calculated using the determined minimum and maximum values, and output to the floating point converter 330, thereby encoding them into a key value header. Here, the minimum and maximum values determined by the quantization error minimizer 320 are used to minimize the quantization error.

下面结合图7A描述由浮点数编码器330执行的步骤S650。Step S650 performed by the floating-point number encoder 330 is described below in conjunction with FIG. 7A .

在步骤S651中,浮点数编码器330接收x、y和z分量的每个分量的密钥值数据当中的最小值x_min、y_min、z_min、具有最大范围的分量的最大值max、关于最大值max属于哪个分量的信息nWhichAxis以及原始密钥值数据的数字数nKeyValueDigit。In step S651, the floating-point number encoder 330 receives the minimum value x_min, y_min, z_min, the maximum value max of the component having the largest range, the maximum value max about the maximum value max, among the key value data of each of the x, y, and z components. The information nWhichAxis belonging to which component and the number of digits nKeyValueDigit of the original key value data.

为了通过减少编码所需比特数来提高对密钥值数据进行编码的效率,浮点数编码器330在步骤S652中将由二进制数表示的x_min、y_min、z_min和max转换成十进制数。In order to improve the efficiency of encoding key value data by reducing the number of bits required for encoding, the floating point encoder 330 converts x_min, y_min, z_min, and max represented by binary numbers into decimal numbers in step S652.

计算机以32位二进制数的形式存储浮点数。当输入二进制系统的浮点数时,浮点数编码器330按照等式(9)将该浮点数转换成十进制系统的尾数和它的指数。Computers store floating-point numbers as 32-bit binary numbers. When a floating point number of the binary system is input, the floating point number encoder 330 converts the floating point number into a mantissa of the decimal system and its exponent according to equation (9).

Figure A20051009209900251
Figure A20051009209900251

例如,十进制系统的浮点数12.34可以由计算机转换成如下所示的二进制数。For example, the floating point number 12.34 in the decimal system can be converted by the computer into binary as shown below.

00 11 1000101011100001010001110001010111000010100011 22 1000001010000010 33

1:正负号1: sign

2:二进制系统中的尾数2: mantissa in binary system

3:二进制系统中的指数3: Exponent in binary system

如下所示,该二进制数可以按照等式(9)被转换回原始的十进制数。This binary number can be converted back to the original decimal number according to equation (9) as shown below.

00 11 12341234 22 22 33

1:正负号1: sign

2:十进制系统中的尾数2: mantissa in decimal system

3:十进制系统中的指数3: The exponent in the decimal system

为了将十进制系统的尾数和指数包括在比特流中,必须计算表示尾数所需的比特数和表示指数所需的比特数。指数具有-38和38之间的值,由此可以利用7位和正负号一起来表示指数。表示尾数所需的比特数取决于该尾数的数字数。下表示出了各种范围的值和表示各种范围的值的尾数所需的比特数。In order to include the mantissa and exponent of the decimal system in the bitstream, the number of bits required to represent the mantissa and the number of bits required to represent the exponent must be calculated. The exponent has a value between -38 and 38, whereby the exponent can be represented using 7 bits together with a sign. The number of bits required to represent a mantissa depends on the number of digits in that mantissa. The following table shows various ranges of values and the number of bits required to represent the mantissas of the various ranges of values.

表2   值的范围   尾数的数字数   表示尾数所需的比特数   0   0   0   1-9   1   4 Table 2 range of values mantissa number of digits the number of bits required to represent the mantissa 0 0 0 1-9 1 4

  10-99 10-99   2 2   7 7   100-999 100-999   3 3   10 10   1000-9999 1000-9999   4 4   14 14   10000-99999 10000-99999   5 5   17 17   100000-999999 100000-999999   6 6   20 20   1000000-9999999 1000000-9999999   7 7   24 twenty four

浮点数编码器330在步骤S453中检查x_min、y_min和z_min的数字数是否相同。如果它们不相同,则在步骤S654中输出给密钥值标题编码器360并将它们编码为密钥值标题。The floating point number encoder 330 checks whether the number of digits of x_min, y_min and z_min are the same in step S453. If they are not the same, they are output to the key value header encoder 360 and encoded into key value headers in step S654.

如果x_min、y_min和z_min的数字数相同,则在步骤S655中,浮点数编码器330检查它们是否与原始密钥值数据的数字数相同。如果x_min、y_min和z_min的数字数与原始密钥值数据的数字数不同,那么,在步骤S656,x_min、y_min和z_min的数字数中的一个被输出给密钥值标题编码器360并被编码为密钥标题。If the number of digits of x_min, y_min and z_min are the same, then in step S655, the floating point number encoder 330 checks whether they are the same number of digits as the original key value data. If the number of digits of x_min, y_min and z_min is different from the number of digits of the original key value data, then, in step S656, one of the digits of x_min, y_min and z_min is output to the key value header encoder 360 and encoded is the key title.

此后,浮点数编码器330在步骤S657中检查x、y和z分量的所有密钥值数据当中的最大值max是从哪个分量的密钥值数据当中选择的,并确定max的数字数是否与得到最大值max的分量的密钥值数据当中的最小值的数字数相同。Thereafter, the floating-point number encoder 330 checks in step S657 from which component the maximum value max among all the key value data of the x, y, and z components is selected, and determines whether the number of digits of max is the same as The number of digits of the minimum value among the key value data of the components for which the maximum value max is obtained is the same.

如果max的数字数与得到最大值max的分量的密钥值数据当中的最小值的数字数不同,则max的数字数被输出给密钥值标题编码器360并被编码为一个密钥值标题。另一方面,如果max的数字数与最大值max所属的分量的密钥值数据当中最小值的数字数相同,则在步骤S658中,描述它们相同的状态信息被输出给密钥值标题编码器360。If the number of digits of max is different from the number of digits of the minimum value among the key value data of the components that obtain the maximum value max, the number of digits of max is output to the key value header encoder 360 and encoded as a key value header . On the other hand, if the number of digits of max is the same as the number of digits of the minimum value among the key value data of the component to which the maximum value max belongs, then in step S658, state information describing that they are identical is output to the key value header encoder 360.

浮点数编码器330的前述操作是用于对经过转换的浮点数的尾数进行编码。下面描述将与浮点数的指数相关的信息编码成密钥值标题的处理。The aforementioned operations of the floating-point number encoder 330 are used to encode the mantissa of the converted floating-point number. The following describes the process of encoding information related to the exponent of the floating-point number into the key value header.

在步骤S659中,浮点数编码器330识别在x_min、y_min、z_min以及max的指数的绝对值当中哪一个是最大值,将所识别的最大值存储为nMaxExp,并将nMaxExp编码到若干比特的密钥值标题中。In step S659, the floating-point number encoder 330 identifies which one is the maximum value among the absolute values of the exponents of x_min, y_min, z_min, and max, stores the identified maximum value as nMaxExp, and encodes nMaxExp into several bits of encryption in the key-value header.

此后,浮点数编码器330在步骤S660中检查x_min、y_min、z_min以及max的指数的正负号是否相同。如果它们相同,则在步骤S661中将bSameSignExp设置为1并将它们的正负号输出给密钥值标题编码器360。另一方面,如果它们不相同,则在步骤S662中将bSameSignExp设置为0,然后完成对与x_min、y_min、z_min以及max的指数相关信息的编码。Thereafter, the floating-point number encoder 330 checks whether the signs of the exponents of x_min, y_min, z_min, and max are the same in step S660. If they are the same, bSameSignExp is set to 1 and their signs are output to the key value header encoder 360 in step S661. On the other hand, if they are not the same, bSameSignExp is set to 0 in step S662, and then the encoding of the exponent-related information of x_min, y_min, z_min, and max is completed.

参照图7B,浮点数编码器330在将x_min,y_min,z_min以及max编码成密钥值标题之前,在步骤S663中对经过转换的浮点数的正负号进行编码。Referring to FIG. 7B , the floating-point number encoder 330 encodes the sign of the converted floating-point number in step S663 before encoding x_min, y_min, z_min, and max into the key value header.

接着,在步骤S664中,浮点数编码器330参照表2计算对浮点数进行编码所需的比特数,并将具有与计算结果同样多比特的浮点数的尾数输出给密钥值标题编码器360。Next, in step S664, the floating-point number encoder 330 refers to Table 2 to calculate the number of bits required to encode the floating-point number, and outputs the mantissa of the floating-point number with the same number of bits as the calculation result to the key value header encoder 360 .

在步骤S665中,浮点数编码器330参照表2计算对nMaxExp进行编码所需的比特数,并将具有与计算结果同样多比特的浮点数的指数输出给密钥值标题编码器360。In step S665 , the floating-point number encoder 330 calculates the number of bits required to encode nMaxExp with reference to Table 2, and outputs the exponent of the floating-point number having as many bits as the calculation result to the key value header encoder 360 .

浮点数编码器330根据bSameSignExp检查x_min、y_min、z_min以及max是否具有相同的正负号。如果它们不具有相同的正负号,则在步骤S667中它们的正负号输出给密钥值标题编码器360并进行编码,由此,完成对从规范器300输入的x、y和z分量中每一个分量的密钥数据当中的最大和最小值的编码处理。The floating point encoder 330 checks whether x_min, y_min, z_min and max have the same sign according to bSameSignExp. If they do not have the same sign, their signs are output to the key value header encoder 360 and encoded in step S667, whereby the x, y and z components input from the normalizer 300 are completed The encoding process of the maximum and minimum values among the key data of each component in .

浮点数编码器330从量化误差最小化器320接收使量化误差最小所需的最大和最小值,并经过上述步骤将它们编码成密钥标题。The floating point number encoder 330 receives the maximum and minimum values required to minimize the quantization error from the quantization error minimizer 320, and encodes them into a key header through the above-mentioned steps.

再次参照图6B,在步骤S670中,DPCM处理器340对量化的密钥值数据执行循环DPCM操作和预测循环DPCM操作并向熵编码器350输出差分数据。DPCM处理器340由前述的DPCM操作器组成,DPCM操作器的操作和结构已经在上面进行了描述。DPCM处理器340和前述的DPCM操作器之间的差别仅在于DPCM处理器340分别对x、y和z分量中每个分量的密钥值数据执行循环DPCM操作和预测循环DPCM操作。Referring again to FIG. 6B , the DPCM processor 340 performs a cyclic DPCM operation and a prediction cyclic DPCM operation on the quantized key value data and outputs differential data to the entropy encoder 350 in step S670 . The DPCM processor 340 is composed of the aforementioned DPCM operators whose operation and structure have been described above. The difference between the DPCM processor 340 and the aforementioned DPCM operators is only that the DPCM processor 340 performs round-robin DPCM operations and predictive round-robin DPCM operations on key value data for each of the x, y, and z components, respectively.

在步骤S680中,在熵编码器350中对从DPCM处理器340输出的差分数据进行编码。In step S680 , the differential data output from the DPCM processor 340 is encoded in the entropy encoder 350 .

参照图7C,熵编码器350对x、y和z分量的每个分量的密钥值数据的差分数据进行熵编码。Referring to FIG. 7C , the entropy encoder 350 entropy-encodes differential data of key value data for each of x, y, and z components.

熵编码器350参照x、y和z分量的每个分量的差分数据,检查x、y和z分量的量化值是否相同,如果它们相同,则在步骤S681中完成熵编码。例如,在三维动画的情况下,一列火车以与x分量方向相同的水平方向运动,x分量的密钥值数据是变化的。但是,y和z分量几乎不变。因此,如果y和z分量被量化,估计它们将会具有相同的值。因此,不需要对实际上相同的所有密钥值数据进行编码,由此可以通过仅仅将密钥值数据当中的一个编码成密钥值标题来提高编码的效率。The entropy encoder 350 checks whether quantization values of the x, y, and z components are identical with reference to differential data of each of the x, y, and z components, and if they are identical, entropy encoding is completed in step S681. For example, in the case of a three-dimensional animation, a train moves in the same horizontal direction as the direction of the x component, and the key value data of the x component is changed. However, the y and z components are almost unchanged. Therefore, it is estimated that the y and z components will have the same value if they are quantized. Therefore, it is not necessary to encode all the key value data that are actually the same, whereby the efficiency of encoding can be improved by encoding only one of the key value data into the key value header.

如果x、y和z分量中每一个分量的量化密钥值数据都不同,则在步骤S682中,熵编码器350读出已经被预先设置的预定值。此后,熵编码器350在步骤S683中用unary AAC函数对x、y和z分量中每个分量的量化密钥值数据的差分数据进行编码,或者在步骤S685中用连续量化AAC函数对它们进行编码。If the quantization key value data of each of the x, y, and z components is different, in step S682, the entropy encoder 350 reads out a predetermined value that has been set in advance. Thereafter, the entropy encoder 350 encodes the differential data of the quantized key value data of each of the x, y, and z components with the unary AAC function in step S683, or encodes them with the continuous quantized AAC function in step S685. coding.

下面结合图8描述unary AAC函数。unary AAC函数把将被编码的符号转换成由一系列0、一个用于指示这一系列0结束的标记位1和一个表示符号的正负号的位组成多个比特。这里,多个0对应于符号的幅值。例如,利用unary AAC函数将256编码成由256个0、用于指示这一系列0结束的标记位1和表示256的正负号,即正号,的0组成的一系列比特。由于unary AAC函数,增加了表示将被编码的符号的比特的冗余度,提高了对符号进行编码的效率。The unary AAC function is described below in conjunction with FIG. 8 . The unary AAC function converts the symbol to be encoded into multiple bits consisting of a series of 0s, a flag bit 1 indicating the end of the series of 0s, and a bit representing the sign of the symbol. Here, multiple 0s correspond to the magnitude of the sign. For example, use the unary AAC function to encode 256 into a series of bits consisting of 256 0s, a marker bit 1 indicating the end of the series of 0s, and a 0 indicating the sign of 256, that is, the positive sign. Due to the unary AAC function, the redundancy of the bits representing the symbols to be encoded is increased, improving the efficiency of encoding the symbols.

下面将参照图7D、9A和9B描述利用SQ AAC函数对符号进行编码的方法。SQ AAC函数连续更新量化范围地对符号进行编码。A method of encoding symbols using the SQ AAC function will be described below with reference to FIGS. 7D, 9A, and 9B. The SQ AAC function encodes symbols continuously updating the quantization range.

图9A示出了利用SQ AAC函数对符号进行编码的方法。如图9A所示,将被编码的输入符号是1,在编码范围中的最小值和最大值分别是0和9。FIG. 9A shows a method for encoding symbols using the SQ AAC function. As shown in FIG. 9A, the input symbol to be encoded is 1, and the minimum and maximum values in the encoding range are 0 and 9, respectively.

参照图9A,在对该符号进行编码的第一步骤中,将编码范围划分为两个子域,即上界和下界,然后,检查将被编码的符号,即1,是属于上界还是属于下界。由于1属于所述下界,所以,0被编码并且下界被更新为一个新的编码范围。因此,用于第二步骤的新的编码范围是从0到4。Referring to Fig. 9A, in the first step of encoding the symbol, the encoding range is divided into two subfields, i.e. upper bound and lower bound, and then, it is checked whether the symbol to be encoded, i.e. 1, belongs to the upper bound or the lower bound . Since 1 belongs to the lower bound, 0 is encoded and the lower bound is updated to a new encoding range. Therefore, the new encoding range for the second step is from 0 to 4.

在第二步骤中,新的编码范围0到4被划分为两个子域,即上界和下界,然后,检查1是属于上界还是属于下界。由于1属于下界,所以,0被编码,并且将编码范围当中的最大值更新为作为下界中的最大值的1。因此,用于第三步骤的新编码范围是原被用做下界的从0到1。In the second step, the new coded range 0 to 4 is divided into two subfields, an upper bound and a lower bound, and then, it is checked whether 1 belongs to the upper bound or the lower bound. Since 1 belongs to the lower bound, 0 is encoded, and the maximum value among the encoding ranges is updated to 1 which is the maximum value in the lower bound. Therefore, the new encoding range for the third step is from 0 to 1 that was originally used as a lower bound.

在第三步骤中,0到1的编码范围被划分为一个上限值和下限值,然后检查1是否属于一个上界。由于1等于上限值,所以,1被编码,然后在对应编码范围中的最小值被更新为1。因此,一个新的编码范围是[1,1],由此,它的最大和最小值彼此相同。当在编码范围中的最小和最大值相同时,利用SQ AAC函数的编码处理完成。In the third step, the coding range of 0 to 1 is divided into an upper bound and a lower bound, and then it is checked whether 1 belongs to an upper bound. Since 1 is equal to the upper limit value, 1 is encoded, and then the minimum value in the corresponding encoding range is updated to 1. Therefore, a new encoding range is [1, 1], whereby its maximum and minimum values are identical to each other. When the minimum and maximum values in the encoding range are the same, encoding processing using the SQ AAC function is completed.

图7D的流程图示出了利用SQ AAC函数对分量的密钥值数据的差分数据的编码处理,按照本发明,该处理是在的熵编码器350中执行的。The flowchart of FIG. 7D shows the encoding process of the differential data of the key value data of the components using the SQ AAC function, which is performed in the entropy encoder 350 according to the present invention.

参照图7D,在步骤S692中,熵编码器350接收密钥值数据的差分数据(下面称之为符号)、对符号进行熵编码所需的比特数nQP、表示将被编码为比特流的符号的第一下标nStartIndex以及将被编码的符号的数量(n)。7D, in step S692, the entropy encoder 350 receives differential data of the key value data (hereinafter referred to as symbols), the number of bits nQP required for entropy encoding of the symbols, and the symbols that will be encoded as bit streams. The first subscript of nStartIndex and the number (n) of symbols to be encoded.

熵编码器350在步骤S694中对符号的正负号进行编码并将符号转换成正数。将符号转换成正数的原因在于在后续的处理中不允许负数。The entropy encoder 350 encodes the sign of the sign and converts the sign into a positive number in step S694. The reason for converting the sign to a positive number is that negative numbers are not allowed in subsequent processing.

熵编码器350在步骤S696中识别正数当中的最大值,将该最大值存储为nMax,并将nMax编码为与nQP一样多的比特。The entropy encoder 350 identifies the maximum value among the positive numbers in step S696, stores the maximum value as nMax, and encodes nMax into as many bits as nQP.

熵编码器350对将在其中对符号进行编码的范围进行初始化,将在编码范围内的最小值

Figure A20051009209900291
和最大值 分别设置为0和nMax。另外,熵编码器350将一个比特的标记
Figure A20051009209900293
分派到符号中的每一个符号。标记 被用于在对符号编码进行期间改变概率模型。开始时将标记 设置为‘假’并且当下一个将被编码的值是1时将其转换成‘真’,然后,到目前为止已经被用于对符号编码进行的概率模型被其他的模型代替。The entropy encoder 350 initializes the range in which the symbols will be encoded, and the minimum value in the encoded range
Figure A20051009209900291
and the maximum Set to 0 and nMax respectively. In addition, the entropy encoder 350 marks a bit
Figure A20051009209900293
Dispatched to each of the symbols. mark is used to change the probability model during encoding of symbols. mark at the beginning Set to 'false' and convert it to 'true' when the next value to be encoded is 1, then the probability model that has been used to encode symbols so far is replaced by another model.

接着,熵编码器350在步骤S700中识别x、y和z分量中每一个分量的差分基准点(i=nStartIndex),假设它首先被编码,并将标记bDone设置为“真”,该标记说明对所有符号的编码是否完成。Next, the entropy encoder 350 identifies a differential reference point (i=nStartIndex) for each of the x, y, and z components in step S700, assuming it is encoded first, and sets the flag bDone to "true", which indicates that Whether the encoding of all symbols is complete.

熵编码器350重复执行将在下面进行说明的步骤S702到S718,直到用于符号中的每一个的编码范围中的最大和最小值变为相同为止,即直到没有剩余的符号需要被编码为止。这里,当在用于一个符号的编码范围中的最大和最小值相同时,可以认为完成对符号的编码。The entropy encoder 350 repeatedly performs steps S702 to S718, which will be described below, until the maximum and minimum values in the encoding range for each of the symbols become the same, that is, until there are no remaining symbols to be encoded. Here, when the maximum and minimum values in the encoding range for one symbol are the same, it can be considered that the encoding of the symbol is completed.

熵编码器350在步骤S702中检查 是否等于

Figure A20051009209900302
如果 等于
Figure A20051009209900304
方法移动到用于对下一个符号进行编码的步骤。如果不等,则在步骤S704中将bDone设置为‘假’,这意味着对当前符号(当前正在被编码的符号)的编码还没有完成。Entropy encoder 350 checks in step S702 Is it equal to
Figure A20051009209900302
if equal
Figure A20051009209900304
The method moves to the step for encoding the next symbol. If not, set bDone to 'false' in step S704, which means that the encoding of the current symbol (the symbol currently being encoded) has not been completed.

熵编码器350在步骤S706计算在用于当前符号的编码范围中的中间值nMid并在步骤S708中将中间值nMid与当前符号的值进行比较。在本发明的优选实施例中,根据下述等式计算中间值nMid:The entropy encoder 350 calculates an intermediate value nMid in the encoding range for the current symbol at step S706 and compares the intermediate value nMid with the value of the current symbol at step S708. In a preferred embodiment of the invention, the intermediate value nMid is calculated according to the following equation:

nMidMid == PP ^^ ii &CenterDot;&Center Dot; maxmax ++ PP ^^ ii &CenterDot;&CenterDot; minmin 22 ++ PP ^^ ii &CenterDot;&Center Dot; minmin ++ 11 -- -- -- (( 1010 ))

作为比较的结果,如果当前符号值不大于中间值nMid,这意味着当前符号属于下界,则在步骤S710中向比特流发出0,并且用中间值nMid代替在用于当前符号的编码范围中的最大范围 As a result of the comparison, if the current symbol value is not greater than the middle value nMid, which means that the current symbol belongs to the lower bound, then in step S710, 0 is sent to the bitstream, and the middle value nMid is used to replace the maximum range

另一方面,如果当前符号值大于中间值nMid,这意味着当前符号属于上界,则给比特流发出1,并且用中间值nMid代替用于当前符号的编码范围中的最小值

Figure A20051009209900307
当当前正被编码的符号的值第一次超过的中间值nmid时,换言之,当第一次将1发给比特流时,在步骤S712中将 设置为‘真’,从而改变用于对符号进行编码的概率模型。On the other hand, if the current symbol value is greater than the middle value nMid, which means that the current symbol belongs to the upper bound, a 1 is emitted to the bitstream and the middle value nMid is substituted for the smallest value in the coding range for the current symbol
Figure A20051009209900307
When the value of the symbol currently being encoded exceeds the median value nmid for the first time, in other words, when 1 is sent to the bitstream for the first time, in step S712 Set to 'true' to alter the probability model used to encode symbols.

有两种在SQ AAC函数中使用的概率模型。一种是用于对在第一次从每个符号发出1之前输出的比特进行熵编码的notFoundContext,另一种是用于对恰好在第一次从每个符号发出1之后输出的比特进行熵编码的FoundContext。使用两种不同概率模型的目的是为了增加在使用noFoundContext期间生成0的概率。由于生成0的概率增加,因此提高了对符号进行熵编码效率。There are two probabilistic models used in the SQ AAC function. One is notFoundContext for entropy encoding the bits output before the first time a 1 is emitted from each symbol, and the other is for entropy encoding the bits output just after the first time a 1 is emitted from each symbol Encoded FoundContext. The purpose of using two different probability models is to increase the probability of generating 0 during the use of noFoundContext. Since the probability of generating 0 increases, the entropy coding efficiency of symbols is improved.

此后,熵编码器350在步骤S714中检查

Figure A20051009209900309
是真还是假。如果 是真,则熵编码器350在步骤S716中使用FoundContext对符号进行编码,否则,熵编码器350在步骤S718中使用notFoundContext对符号进行编码。Thereafter, the entropy encoder 350 checks in step S714
Figure A20051009209900309
True or false. if If it is true, the entropy encoder 350 uses FoundContext to encode the symbol in step S716, otherwise, the entropy encoder 350 uses notFoundContext to encode the symbol in step S718.

当完成对当前符号进行从步骤S702到步骤S718的编码处理时,这意味着该熵编码器仅完成了对当前符号进行编码的第一阶段,在步骤S720中,熵编码器350将编码下标i增加1。接着,熵编码器350在步骤S722中检查在当前阶段中是否完成对所有符号的编码。如果在当前阶段中还有要被编码的符号,则熵编码器350再次执行步骤S702到步骤S722。When the encoding process from step S702 to step S718 is completed for the current symbol, it means that the entropy encoder has only completed the first stage of encoding the current symbol. In step S720, the entropy encoder 350 encodes the subscript i is incremented by 1. Next, the entropy encoder 350 checks in step S722 whether encoding of all symbols is completed in the current stage. If there are still symbols to be encoded in the current stage, the entropy encoder 350 performs steps S702 to S722 again.

当完成了对在一阶段中的所有符号的编码时,在步骤S724中,熵编码器350根据标记nDone检查是否所有阶段的编码都已经完成。如果bDone是真,则熵编码器350完成在当前阶段中的全部编码处理并且开始对下一个分量进行编码,如果不是,则熵编码器350再次执行步骤S700到S722,对剩余的符号进行编码。When the encoding of all symbols in one stage is completed, in step S724, the entropy encoder 350 checks whether the encoding of all stages has been completed according to the flag nDone. If bDone is true, the entropy encoder 350 completes all encoding processes in the current stage and starts encoding the next component, if not, the entropy encoder 350 performs steps S700 to S722 again to encode the remaining symbols.

图9B示出了用SQ AAC函数对多个符号进行编码的处理。具体地说,图9B示出了用SQ AAC函数对0、1、2、3、4和9进行编码的处理。Figure 9B shows the process of encoding multiple symbols with the SQ AAC function. Specifically, FIG. 9B shows the process of encoding 0, 1, 2, 3, 4, and 9 with the SQ AAC function.

再次参照图6B,如果按照本发明的用于对数据进行编码的装置通过对所有输入密钥值数据进行熵编码生成比特流,则密钥值标题编码器360在步骤S730中将对编码的密钥值数据进行译码所需的信息编码成密钥值标题信息,将该密钥值标题信息添加到比特流中,并且输出合成的比特流。Referring again to FIG. 6B, if the apparatus for encoding data according to the present invention generates a bit stream by entropy encoding all input key value data, then the key value header encoder 360 will encode the encoded key value in step S730. Information necessary for decoding the key value data is encoded into key value header information, the key value header information is added to the bit stream, and the synthesized bit stream is output.

密钥值标题编码器360对将被编码的输入密钥值数据的数量和数字数进行编码。接着,密钥值标题编码器360识别x、y和z分量中的每个分量是否具有相同的量化值(例如,即使x、y和z分量中的每个分量的密钥值数据变化,但由于x分量的密钥值数据变化的程度很小,所以x分量的量化密钥值数据具有相同值)并且将结果编码成一个标记。The key value header encoder 360 encodes the number of input key value data to be encoded and the number of digits. Next, the key value header encoder 360 identifies whether each of the x, y, and z components has the same quantization value (for example, even if the key value data of each of the x, y, and z components varies, but Since the key value data of the x component varies little, the quantized key value data of the x component have the same value) and the result is coded into a token.

例如,如果x分量的量化值不相同,那么,是已经利用循环DPCM操作还是已经利用预测循环DPCM操作对x分量的密钥值数据进行了编码,以及是将用unary AAC函数还是将用SQ AAC函数对x分量的密钥值数据进行编码都被编码成标记。如果不期望用unary AAC函数对x分量的密钥值数据进行编码,那么,将被熵编码的x分量的编码比特尺寸和x分量的开始下标都被编码成密钥值标题。For example, if the quantization value of the x component is not the same, then whether the key value data of the x component has been encoded using the cyclic DPCM operation or the predictive cyclic DPCM operation, and whether the unary AAC function will be used or the SQ AAC will be used The function encodes the key value data of the x component are encoded into tokens. If it is not desired to encode the key value data of the x component with the unary AAC function, then both the encoded bit size of the x component to be entropy encoded and the starting subscript of the x component are encoded into the key value header.

同样,如果y和z分量中每个分量的密钥值数据不同,那么,与前述的x分量的标题信息完全对应的y和z的标题信息被编码成标题。Also, if the key value data of each of the y and z components are different, then the header information of y and z exactly corresponding to the aforementioned header information of the x component is encoded as the header.

如果x分量的量化值不同,则不用unary AAC函数对x分量的密钥值数据进行编码,并且将被熵编码的x分量的开始下标是1,然后,将第一量化密钥值基准点编码为内部基准点。按照相同的方式,将y和z分量中的每个分量的第一量化密钥值基准点编码为内部基准点。If the quantized value of the x component is different, the key value data of the x component is not encoded with the unary AAC function, and the start subscript of the x component to be entropy encoded is 1, and then, the first quantized key value reference point Coded as an internal fiducial. In the same way, the first quantization key value reference points for each of the y and z components are encoded as internal reference points.

密钥值标题编码器360识别在x、y和z分量中哪一个分量具有最大范围。如果x分量具有最大范围,则密钥值标题编码器360将变量nWhichAxis设置为0。如果分量y具有最大范围,则密钥值标题编码器360将nWhichAxis设置为1。如果分量z具有最大范围,则密钥值标题编码器360将nWhichAxis设置为2。此后,密钥值标题编码器360利用浮点数编码器330将nWhichAxis、x_min、y_min、z_min和max编码成密钥标题。Key value header encoder 360 identifies which of the x, y, and z components has the largest range. The key value header encoder 360 sets the variable nWhichAxis to 0 if the x component has the largest range. The key value header encoder 360 sets nWhichAxis to 1 if component y has the largest range. Key value header encoder 360 sets nWhichAxis to 2 if component z has the largest range. Thereafter, the key value header encoder 360 encodes nWhichAxis, x_min, y_min, z_min, and max into a key header using the floating point number encoder 330 .

下面将描述用于实现按照本发明第四实施例的,对数据进行编码的方法的计算机程序。A computer program for implementing a method of encoding data according to a fourth embodiment of the present invention will be described below.

按照本发明的用于对数据进行编码的装置将位置内插器编码成比特流,这将在下面描述。为了更好地理解,下面将以SDL语言的形式描述传统的程序代码和变量。The device for encoding data according to the invention encodes the position interpolator into a bit stream, which will be described below. For a better understanding, the traditional program code and variables will be described in the form of SDL language below.

图19示出了实现压缩位置内插器的程序代码的例子。在图19中,示出了用于读取一个压缩位置内插器的第一个类。第一个类包括PoslKeyValueHeader和PoslKeyValue。PoslKeyValueHeader包括用于译码PoslKeyValue的标题信息,类PoslKeyValue从所述比特流中读出有关压缩位置内插器的密钥值数据。函数qf_start()被用于在读出被ACC编码的部分比特流之前启动一个算术译码器。Fig. 19 shows an example of program code for implementing a compressed position interpolator. In Figure 19, the first class for reading a compressed position interpolator is shown. The first class includes PoslKeyValueHeader and PoslKeyValue. PoslKeyValueHeader contains header information for decoding PoslKeyValue, class PoslKeyValue reads key value data about compressed position interpolators from said bitstream. The function qf_start() is used to start an arithmetic decoder before reading out the ACC-encoded part of the bitstream.

图20示出了PoslKeyValueHeader的程序代码。参照图20,在存储在PoslKeyValueHeader中的变量当中nNumKeyValueCodingBit表示nNumberOfKeyValue的比特尺寸,nNumberOfKeyValue表示密钥值数据的数量,和nKVQBit表示密钥值数据的量化比特尺寸。Fig. 20 shows the program code of PoslKeyValueHeader. Referring to FIG. 20, nNumKeyValueCodingBit represents the bit size of nNumberOfKeyValue among variables stored in PoslKeyValueHeader, nNumberOfKeyValue represents the number of key value data, and nKVQBit represents the quantization bit size of key value data.

x_keyvalue_flag,y_keyvalue-flag和z_keyvalueflag说明x、y和z分量是否具有相同的量化值,并且nKVDigit表示密钥值数据中的每个数据的最高有效位的最大数。NKVDPCMOrder_X,nKVDPCMOrder_Y,nKVDPCMOrder_Z分别对应于被用于x、y和z分量中的每个分量的密钥值数据的DPCM的阶数。如果已经执行了DPCM,则该标记被设置为0,如果已经执行了预测DPCM,则该标记被设置为1。x_keyvalue_flag, y_keyvalue-flag, and z_keyvalueflag state whether x, y, and z components have the same quantization value, and nKVDigit represents the maximum number of most significant bits of each data in key value data. NKVDPCMOrder_X, nKVDPCMOrder_Y, nKVDPCMOrder_Z respectively correspond to the orders of DPCM used for the key value data of each of the x, y, and z components. This flag is set to 0 if DPCM has been performed, and is set to 1 if predictive DPCM has been performed.

blsUnaryAAC_X,blsUnaryAAC_Y,blsUnaryAAC_Z中的每一个说明在熵编码期间已经使用了unary AAC函数。nKVCodingBit_X,nKVCodingBit_Y和nKVCodingBit_Z分别说明用于x、y和z分量的编码比特尺寸。nStartIndex_X nStartIndex_Y和nStartIndex_Z表示将被编码的每个分量轴的开始下标。firstKV_X,firstKV_Y和firstKV_Z分别表示x、y和z分量中的每个分量的第一量化密钥值数据,它们都被编码成内部数据。Each of blsUnaryAAC_X, blsUnaryAAC_Y, blsUnaryAAC_Z indicates that unary AAC functions have been used during entropy encoding. nKVCodingBit_X, nKVCodingBit_Y and nKVCodingBit_Z specify the coding bit sizes for the x, y and z components, respectively. nStartIndex_X nStartIndex_Y and nStartIndex_Z indicate the start index of each component axis to be encoded. firstKV_X, firstKV_Y, and firstKV_Z represent first quantization key value data of each of the x, y, and z components, respectively, which are encoded as internal data.

图21示出了类KeyValueMinMax的程序代码。参照图21,类KeyValueMin恢复已经被用于规范密钥值数据的最大和最小值。bUse32float说明32比特浮点数是否已经被用于存储最大和最小值。如果bUse32Float是0,那么用IEEE标准754的浮点数格式对用于规范密钥值数据的最大和最小值进行编码。否则,用浮点数编码器对用于规范密钥值数据的最大和最小值进行编码。Fig. 21 shows the program code of the class KeyValueMinMax. Referring to FIG. 21 , the class KeyValueMin restores the maximum and minimum values that have been used to normalize key value data. bUse32float indicates whether 32-bit floating-point numbers have been used to store the maximum and minimum values. If bUse32Float is 0, the maximum and minimum values used to normalize the key value data are encoded in the IEEE Standard 754 floating point format. Otherwise, encode the maximum and minimum values used to canonicalize the key value data with a floating point encoder.

nWhichAxis表示在x、y和z当中具有最大范围的分量。在本实施例中,如果nWhichAxis是0,则X轴具有最大范围,如果nWhichAxis是1,则Y轴具有最大范围,而如果nWhichAxis是2,则Z轴具有最大范围。nWhichAxis represents a component having the largest range among x, y, and z. In this embodiment, if nWhichAxis is 0, the X axis has the maximum range, if nWhichAxis is 1, the Y axis has the maximum range, and if nWhichAxis is 2, the Z axis has the maximum range.

BAllSameMantissaDigitFlag说明在x、y和z分量中的每个分量的密钥值数据当中的最小值的尾数是否具有相同的数字数,并且bSameKVDigitFlag表示最小值的尾数的数字数与nKVDigit相同。nMantissaDigit_X、nMantissaDigit_Y和nMantissaDigit_Z分别表示在x、y和z分量的每个分量的密钥值数据当中的最小值的尾数的数字数。BAllSameMantissaDigitFlag indicates whether the mantissa of the minimum value has the same number of digits among key value data of each of the x, y, and z components, and bSameKVDigitFlag indicates that the mantissa of the minimum value has the same number of digits as nKVDigit. nMantissaDigit_X, nMantissaDigit_Y, and nMantissaDigit_Z indicate the number of digits of the mantissa of the minimum value among the key value data of each of the x, y, and z components, respectively.

BMaxDigitFlag说明最大值的尾数是否具有与从中获得最大值max的分量的最小值相同的数字数。如果最大值的尾数的数字数不同于最小值的尾数的数字数,则从比特流中读出最大值的尾数的数字数。BMaxDigitFlag states whether the mantissa of the maximum value has the same number of digits as the minimum value of the component from which the maximum value max is obtained. If the number of digits of the mantissa of the maximum value is different from the number of digits of the mantissa of the minimum value, the number of digits of the mantissa of the maximum value is read from the bitstream.

nMantissaDigit_M表示最大值的尾数的数字数,nExponentBits表示对最大和最小值的指数当中的最大绝对指数进行编码所需的比特数。BAllSameExponentSign说明x、y和z分量的正负号是否相同,当bAllSameExponentSign为真时,nExponentSign表示指数的正负号。nMantissaDigit_M represents the number of digits of the mantissa of the maximum value, and nExponentBits represents the number of bits required to encode the maximum absolute exponent among the exponents of the maximum and minimum values. BAllSameExponentSign indicates whether the signs of the x, y and z components are the same. When bAllSameExponentSign is true, nExponentSign indicates the sign of the exponent.

fpnMin_X、fpnMin_Y、fpnMin_Z和fpnMax表示在十进制系统中被译码的浮点数。下面将用FloatingPointNumber来描述对fpnMin_X、fpnMin_Y、fpnMin_Z和fpnMax进行译码的方法。fMin_X、fMin_Y和fMin_Z表示在x、y和z分量中的每个分量的密钥值当中的最小值,fMax表示在具有最大范围的分量的密钥值数据当中的最大值。fpnMin_X, fpnMin_Y, fpnMin_Z, and fpnMax represent floating-point numbers decoded in the decimal system. The method of decoding fpnMin_X, fpnMin_Y, fpnMin_Z and fpnMax will be described below using FloatingPointNumber. fMin_X, fMin_Y, and fMin_Z represent the minimum value among the key values of each of the x, y, and z components, and fMax represents the maximum value among the key value data of the component having the largest range.

下面结合图22描述类FloatingPointNumber的程序代码。类FloatingPointNumber使用十进制系统表示浮点数。nMantissa表示十进制系统中的浮点数的尾数,nExponent表示该浮点数的指数。The program code of the class FloatingPointNumber is described below in conjunction with FIG. 22 . Class FloatingPointNumber represents floating point numbers using the decimal system. nMantissa represents the mantissa of the floating-point number in the decimal system, and nExponent represents the exponent of the floating-point number.

nSign表示浮点数的正负号,nExponentSign表示该浮点数的指数的正负号。nSign represents the sign of the floating-point number, and nExponentSign represents the sign of the exponent of the floating-point number.

下面结合图23描述类PoslKeyValue的程序代码。参见图23,在存储在类PoslKeyValue中的变量中,keyValue_X、keyValue_Y和keyValue_Z分别表示在位置内插器中的x、y和z分量中的每个分量的密钥值数据的数组。如果nStartIndex_X被设置为0,则使用算术译码器从比特流中译码keyValue_X[0]。如果nStartIndex_X被设置为1,则从密钥值标题译码器中译码keyValue_X[0]。以相同的方式,确定keyValue_Y[0]和keyValue_Z[0]。当从比特流中算术译码keyValue_X[0]、keyValue_Y[0]和keyValue_Z[0]时,使用decodeUnaryAAC或者decodeSQAAC函数。The program code of class PoslKeyValue is described below in conjunction with FIG. 23 . Referring to FIG. 23, among the variables stored in the class PoslKeyValue, keyValue_X, keyValue_Y, and keyValue_Z represent an array of key value data for each of the x, y, and z components in the position interpolator, respectively. If nStartIndex_X is set to 0, keyValue_X[0] is decoded from the bitstream using an arithmetic decoder. If nStartIndex_X is set to 1, keyValue_X[0] is decoded from the key value header decoder. In the same manner, keyValue_Y[0] and keyValue_Z[0] are determined. When arithmetically decoding keyValue_X[0], keyValue_Y[0], and keyValue_Z[0] from the bitstream, use the decodeUnaryAAC or decodeSQAAC function.

上下文模型kVXSignContext、kVYSignContext和kVZSignContext被分别用于对keyValue_X、keyValue_Y和keyValue_Z的正负号进行译码。上下文模型kVXSignContext、kVYSignContext和kVZSignContext被发送给decodeUnaryAAC或decodeSQAAC函数。The context models kVXSignContext, kVYSignContext and kVZSignContext are used to decode the sign of keyValue_X, keyValue_Y and keyValue_Z, respectively. The context models kVXSignContext, kVYSignContext and kVZSignContext are sent to the decodeUnaryAAC or decodeSQAAC functions.

MaxValueContext、FoundContext和NotFoundContext被用于对密钥值的绝对值进行熵译码。例如,kVXMaxValueContexr,kVXFoundContext和kVXNotFoundContext被用于对keyValue_X进行译码。MaxValueContext、FoundContext和NotFoundContext被发送给decodeUnaryACC或decodeSQAAC函数。MaxValueContext, FoundContext and NotFoundContext are used to entropy decode the absolute value of the key value. For example, kVXMaxValueContexr, kVXFoundContext and kVXNotFoundContext are used to decode keyValue_X. MaxValueContext, FoundContext and NotFoundContext are sent to decodeUnaryACC or decodeSQAAC functions.

上下文模型kVXUCotext、kVYUContext和kVZUContext被用于对keyValue_X、keyValue_Y和keyValue_Z进行译码,并被发送给decodeUnaryAAC函数。The context models kVXUCotext, kVYUContext and kVZUContext are used to decode keyValue_X, keyValue_Y and keyValue_Z and sent to the decodeUnaryAAC function.

下面结合图10A和10B描述通过恢复由前述DPCM操作器生成的差分数据,输出量化数据的逆DPCM操作器。An inverse DPCM operator that outputs quantized data by restoring differential data generated by the aforementioned DPCM operator will be described below with reference to FIGS. 10A and 10B.

图10A的框图示出了按照本发明的逆DPCM操作器,图10B为逆DPCM操作的流程图。FIG. 10A is a block diagram showing an inverse DPCM operator according to the present invention, and FIG. 10B is a flowchart of an inverse DPCM operation.

参见图10A,按照本发明的逆DPCM操作器包括:逆循环DPCM操作器1020,用于对输入给它的差分数据执行逆循环量化操作以便扩展它们的范围,对输入差分数据执行逆DPCM操作,然后输出量化数据;逆预测循环DPCM操作器1030,用于对输入给它的差分数据执行逆循环量化操作以便扩展它们的范围,对输入差分数据执行逆预测DPCM操作,然后输出量化的数据;以及确定单元1010,用于根据已经对差分数据执行的DPCM种类,将差分数据输出给逆循环DPCM操作器1020或逆预测循环DPCM操作器1030。Referring to FIG. 10A, the inverse DPCM operator according to the present invention includes: an inverse cyclic DPCM operator 1020 for performing an inverse cyclic quantization operation on the differential data input to it so as to expand their range, and performing an inverse DPCM operation on the input differential data, Quantized data is then output; an inverse prediction loop DPCM operator 1030 for performing an inverse loop quantization operation on the differential data input to it so as to extend their range, performing an inverse prediction DPCM operation on the input differential data, and then outputting quantized data; and The determining unit 1010 is configured to output the differential data to the inverse loop DPCM operator 1020 or the inverse prediction loop DPCM operator 1030 according to the type of DPCM that has been performed on the differential data.

下面结合图10B描述逆DPCM操作。参见图10A和10B,经历逆DPCM操作的差分数据被输入给确定单元1010。然后,在步骤S1010中,确定单元1010识别对输入差分数据执行了哪种DPCM,根据结果确定将要对输入差分数据执行哪种逆DPCM,并将差分数据输出给逆循环DPCM操作器1020或逆预测循环DPCM操作器1030。The inverse DPCM operation is described below with reference to FIG. 10B. Referring to FIGS. 10A and 10B , differential data subjected to an inverse DPCM operation is input to a determination unit 1010 . Then, in step S1010, the determination unit 1010 identifies which DPCM has been performed on the input differential data, determines which inverse DPCM will be performed on the input differential data according to the result, and outputs the differential data to the inverse loop DPCM operator 1020 or the inverse prediction Cyclic DPCM operator 1030 .

如果所述差分数据被输入给逆循环DPCM操作器1020并且nMax是输入差分数据的量化范围中的最大值,逆循环DPCM操作器1020通过在步骤S1020中对输入差分数据

Figure A20051009209900351
执行按照下述等式的逆循环量化获得量化的差分数据 If the differential data is input to the reverse loop DPCM operator 1020 and nMax is the maximum value in the quantization range of the input differential data, the reverse loop DPCM operator 1020 passes the input differential data in step S1020
Figure A20051009209900351
Perform inverse loop quantization according to the following equation to obtain quantized differential data

Figure A20051009209900354
Figure A20051009209900354

此后,逆循环DOCM操作器1020通过分别输入差分数据

Figure A20051009209900361
和将从等式(11)获得的逆循环量化的差分数据
Figure A20051009209900362
代入等式(12)获得逆DPCM的差分数据的值A和逆DPCM的差分数据的值B。Thereafter, the reverse cycle DOCM operator 1020 inputs the differential data by respectively
Figure A20051009209900361
and will be the difference data obtained from the inverse loop quantization of equation (11)
Figure A20051009209900362
Substituting into equation (12) obtains the value A of the differential data of the inverse DPCM and the value B of the differential data of the inverse DPCM.

在等式(12)中,n表示数据的数量,和i表示1和n-1之间的整数。In Equation (12), n represents the number of data, and i represents an integer between 1 and n-1.

如果A不小于0且不大于nMax,则逆循环DPCM操作器1020输出A作为逆循环DPCM的数据 如果A小于0或大于nMax,则逆循环DPCM操作器1020在步骤S1040中输出B。If A is not less than 0 and not greater than nMax, the reverse cycle DPCM operator 1020 outputs A as the data of the reverse cycle DPCM If A is less than 0 or greater than nMax, the inverse loop DPCM operator 1020 outputs B in step S1040.

逆预测循环DPCM操作器1030在步骤S1020通过使用等式(11)对预测的差分数据 执行逆循环量化获得逆循环量化的预测差分数据 The inverse prediction loop DPCM operator 1030 uses equation (11) to predict the differential data in step S1020 Perform reverse cycle quantization to obtain predicted difference data for reverse cycle quantization

如果 P = 2 &times; P ~ i - 1 + P ~ i - 2 , 其中P表示用于译码的预测数据,则逆循环DPCM操作器1030通过将 代入等式(13)计算A和将

Figure A200510092099003610
代入等式(14)计算B。if P = 2 &times; P ~ i - 1 + P ~ i - 2 , Where P represents the prediction data used for decoding, then the inverse loop DPCM operator 1030 passes Substituting into equation (13) to calculate A and will
Figure A200510092099003610
Substitute into equation (14) to calculate B.

Figure A200510092099003612
Figure A200510092099003612

Figure A200510092099003613
Figure A200510092099003613

Figure A200510092099003614
Figure A200510092099003614

Figure A200510092099003615
Figure A200510092099003615

在等式(13)和(14)中,n表示数据的数量,i表示1和n-1之间的整数。In equations (13) and (14), n represents the number of data, and i represents an integer between 1 and n-1.

如果A不小于0且不大于nMax,那么,逆循环DPCM操作器1020输出A作为逆预测循环DPCM的数据 如果A小于0或大于nMax,则逆预测循环DPCM操作器1020在步骤S1040中输出B作为

Figure A200510092099003618
If A is not less than 0 and not greater than nMax, then the reverse cycle DPCM operator 1020 outputs A as the data of the reverse prediction cycle DPCM If A is less than 0 or greater than nMax, the inverse predictive loop DPCM operator 1020 outputs B in step S1040 as
Figure A200510092099003618

下面结合图11描述按照本发明第一实施例的,用于对数据进行译码的装置。按照本发明第一实施例的用于对数据进行译码的装置使用按照本发明的DPCM操作器对比特流进行译码,在该比特流中,输入数据已经被利用按照本发明第一实施例的,用于对数据进行编码的装置编码。The apparatus for decoding data according to the first embodiment of the present invention will be described below with reference to FIG. 11 . The apparatus for decoding data according to the first embodiment of the invention uses a DPCM operator according to the invention to decode a bit stream in which input data has been used according to the first embodiment of the invention , the device encoding used to encode the data.

参见图11,按照本发明第一实施例的用于对数据进行译码的装置包括熵译码器1120、由前述逆DPCM操作器组成的逆DPCM处理器1130和逆量化器1140。11, the apparatus for decoding data according to the first embodiment of the present invention includes an entropy decoder 1120, an inverse DPCM processor 1130 and an inverse quantizer 1140 composed of the aforementioned inverse DPCM operators.

熵译码器1120通过对输入比特流进行熵译码,生成差分数据并将该差分数据输出给逆DPCM处理器1130。The entropy decoder 1120 generates differential data by entropy decoding the input bit stream and outputs the differential data to the inverse DPCM processor 1130 .

如上所述,逆DPCM处理器1130识别对输入差分数据执行了哪种DPCM,对差分数据执行逆循环DPCM操作或逆预测循环DPCM操作,并将量化数据输出给逆量化器1140。As described above, the inverse DPCM processor 1130 identifies which DPCM is performed on the input differential data, performs an inverse cyclic DPCM operation or an inverse predictive cyclic DPCM operation on the differential data, and outputs quantized data to the inverse quantizer 1140 .

逆量化器1140利用预定的量化比特,对从逆DPCM处理器1130输入的量化数据进行逆量化并输出重新得到的数据。The inverse quantizer 1140 inverse quantizes the quantized data input from the inverse DPCM processor 1130 using predetermined quantization bits and outputs the retrieved data.

下面结合图12A和12B描述按照本发明第二实施例的,用于对数据进行译码的装置。按照本发明第二实施例的用于对数据进行译码的装置对比特流进行译码,在该比特流中,具有多个分量的数据已经被利用按照本发明的规范器规范。The apparatus for decoding data according to the second embodiment of the present invention will be described below with reference to FIGS. 12A and 12B. An apparatus for decoding data according to a second embodiment of the present invention decodes a bit stream in which data having a plurality of components has been normalized using a normalizer according to the present invention.

参见图12A,按照本发明第二实施例的,用于对数据进行译码的装置包括:熵译码器1120,用于对输入比特流进行熵译码并输出差分数据;逆DPCM操作器140/1130,用于对从熵译码器1120输入的差分数据执行逆DPCM操作并输出量化数据;逆量化器1140,用于对从逆DPCM操作器140/1130输入的量化数据进行逆量化并输出规范数据;以及逆规范器1150,用于接收每个分量的密钥值数据当中的最小值和具有最大范围的分量的最大值,计算规范数据的最大范围,并根据该最大范围对从逆量化器1140输入的量化数据进行逆规范。Referring to FIG. 12A, according to the second embodiment of the present invention, the device for decoding data includes: an entropy decoder 1120 for entropy decoding an input bit stream and outputting differential data; an inverse DPCM operator 140 /1130 is used to perform inverse DPCM operation on the differential data input from the entropy decoder 1120 and output quantized data; the inverse quantizer 1140 is used to inverse quantize and output the quantized data input from the inverse DPCM operator 140/1130 normative data; and a denormalizer 1150 configured to receive the minimum value among the key value data of each component and the maximum value of the component with the largest range, calculate the maximum range of the normative data, and dequantize from the maximum range according to the maximum range The quantized data input by the unit 1140 is denormalized.

熵译码器1120、逆DPCM操作器140/1130和逆量化器1140的操作与结构和按照本发明第一实施例的,用于对数据进行译码的装置的相应元件的操作和结构相同,这里不再重复描述。下面将结合图12B对逆规范器1150的操作进行描述。The operation and structure of the entropy decoder 1120, the inverse DPCM operator 140/1130 and the inverse quantizer 1140 are the same as those of the corresponding elements of the apparatus for decoding data according to the first embodiment of the present invention, The description will not be repeated here. The operation of the denormalizer 1150 will be described below with reference to FIG. 12B.

逆规范器1150在步骤S1210中接收从输入比特流中译码的,用于规范的最大值fMax,并分别接收x、y和z分量的最小值fMin_X、fMin_Y和fMin_Z,以及关于哪个分量轴具有最大值的信息nWhichAxis和有关编码类型的信息bUse32Float。The denormalizer 1150 receives in step S1210, decoded from the input bit stream, the maximum value fMax for normalization, and receives the minimum values fMin_X, fMin_Y and fMin_Z of the x, y and z components, respectively, and which component axis has Information about the maximum value nWhichAxis and information about the encoding type bUse32Float.

逆规范器1150根据bUse32Float识别fMax、fMin_X、fMin_Y和fMin_Z是否被利用IEEE标准754的浮点数格式编码,如果不是,则逆规范器1150使用下述等式计算最大范围中的最大值Rangemax。如果fMax、fMin_X、fMin_Y和fMin_Z被以32位编码,则逆规范器1150在步骤S1220中将fMax确定为RangemaxThe denormalizer 1150 identifies from bUse32Float whether fMax, fMin_X, fMin_Y, and fMin_Z are encoded using the IEEE Standard 754 floating-point number format, and if not, the denormalizer 1150 calculates the maximum value Range max in the maximum range using the following equation. If fMax, fMin_X, fMin_Y, and fMin_Z are coded in 32 bits, the denormalizer 1150 determines fMax as Range max in step S1220 .

Rangemax=fMax-fMin_X    (如果nWhichAxis=0)....(15)Range max = fMax-fMin_X (if nWhichAxis = 0)....(15)

Rangemax=fMax-fMin_Y    (如果nWhichAxis=1)Range max = fMax-fMin_Y (if nWhichAxis = 1)

Rangemax=fMax-fMin_Z    (如果nWhichAxis=2)Range max = fMax-fMin_Z (if nWhichAxis = 2)

如果Rangemax被确定,逆规范器1150在步骤S1230中根据Rangemax,利用下述等式对x、y和z分量的每个分量的数据进行规范。If the Range max is determined, the denormalizer 1150 normalizes the data of each of the x, y, and z components according to the Range max in step S1230 using the following equation.

PP ^^ ii ,, xx == PP ~~ ^^ ii ,, xx &times;&times; RangeRange maxmax ++ fMinf Min __ Xx PP ^^ ii ,, ythe y == PP ~~ ^^ ii ,, ythe y &times;&times; RangeRange maxmax ++ fMinf Min __ YY PP ^^ ii ,, zz == PP ~~ ^^ ii ,, zz &times;&times; RangeRange maxmax ++ fMinf Min __ ZZ (( ii == 0,10,1 ,, .. .. .. ,, nno )) -- -- -- (( 1616 ))

在等式(16)中,n表示数据的数量。In Equation (16), n represents the number of data.

下面结合图13A和13B描述按照本发明第三实施例的,用于对数据进行译码的装置和方法。按照本发明第三实施例的,用于对数据进行译码的装置对比特流进行译码,已经利用按照本发明的对数据进行编码的方法,将表示三维动画中的目标的位置内插器的密钥值数据编码进该比特流中。The apparatus and method for decoding data according to the third embodiment of the present invention will be described below with reference to FIGS. 13A and 13B. According to the third embodiment of the present invention, the means for decoding the data decodes the bit stream, and has utilized the method for encoding the data according to the present invention to interpolate the positions representing the objects in the three-dimensional animation The key value data of is encoded into this bitstream.

参见图13A,按照本发明第三实施例的,用于对数据进行译码的装置包括:密钥值标题译码器1110,用于对来自比特流的译码所需的信息进行译码;熵译码器1120,用于对输入给它的比特流进行熵译码,然后输出差分数据;逆DPCM处理器1130,用于对从熵译码器1120输入给它的差分数据执行逆循环DPCM操作或逆预测循环DPCM操作,然后输出量化的密钥值数据;逆量化器1140,用于对从逆DPCM处理器1130输入的量化密钥值数据进行逆量化并输出规范的密钥值数据;浮点数译码器1160,用于从密钥值标题译码器1110接收最小和最大值并将x、y和z分量的每个分量的密钥值数据当中的最小值和具有最大范围的分量的最大值转换成二进制数;以及逆规范器1150,用于从浮点数译码器1160接收x、y和z分量中的每个分量的密钥值数据当中的最小值和具有最大范围的分量的最大值,根据来自浮点数译码器1160的最小值和最大值,计算最大范围,然后对从逆量化器1140输入的密钥值数据进行逆规范。Referring to FIG. 13A, according to the third embodiment of the present invention, the device for decoding data includes: a key value header decoder 1110, used for decoding information required for decoding from the bit stream; An entropy decoder 1120 is used to entropy decode the bit stream input to it, and then output differential data; an inverse DPCM processor 1130 is used to perform reverse cycle DPCM on the differential data input to it from the entropy decoder 1120 Operation or inverse prediction cycle DPCM operation, then output quantized key value data; inverse quantizer 1140, used to inversely quantize the quantized key value data input from inverse DPCM processor 1130 and output standardized key value data; Floating point number decoder 1160 for receiving the minimum and maximum values from key value header decoder 1110 and converting the minimum value and the component with the maximum range among the key value data of each of the x, y and z components and the denormalizer 1150 for receiving from the floating-point number decoder 1160 the minimum value among the key value data of each component in the x, y and z components and the component with the maximum range The maximum value of , according to the minimum value and maximum value from the floating-point number decoder 1160, calculate the maximum range, and then denormalize the key value data input from the inverse quantizer 1140.

下面结合图13B描述按照本发明第三实施例的,用于对数据进行译码的方法。参照图13B,将经过编码的密钥值数据的比特流输入给熵译码器1120和密钥值标题译码器1110。然后,在步骤S1300中,密钥值标题译码器1110从比特流中对译码所需的标题信息进行译码并将译码的标题信息输出给熵译码器1120、逆DPCM处理器1130和逆量化器1140。The method for decoding data according to the third embodiment of the present invention will be described below with reference to FIG. 13B . Referring to FIG. 13B , a bit stream of encoded key value data is input to an entropy decoder 1120 and a key value header decoder 1110 . Then, in step S1300, the key value header decoder 1110 decodes the header information required for decoding from the bit stream and outputs the decoded header information to the entropy decoder 1120 and the inverse DPCM processor 1130 and inverse quantizer 1140 .

在步骤S1320中,熵译码器1120对比特流进行熵译码并将差分数据输出给逆DPCM处理器1130。In step S1320 , the entropy decoder 1120 performs entropy decoding on the bit stream and outputs the differential data to the inverse DPCM processor 1130 .

图14A是步骤S1320的详细流程图。参照图14A,在步骤S1321中将比特流Pi输入给熵译码器1120。图15示出了输入给熵译码器1120的并要进行熵译码的经过编码的密钥值数据的顺序。FIG. 14A is a detailed flowchart of step S1320. Referring to FIG. 14A, the bit stream Pi is input to the entropy decoder 1120 in step S1321. FIG. 15 shows the sequence of encoded key value data input to the entropy decoder 1120 and to be entropy-decoded.

熵译码器1120在步骤S1322中检查分量,例如x,的密钥值数据是否具有相同的量化值。如果分量的密钥值数据具有相同的量化值,则在步骤S1323中将该分量的所有符号译码,并将它们设置为从密钥值标题译码器1110输入的最小值,例如fMin_X。The entropy decoder 1120 checks in step S1322 whether key value data of components, such as x, have the same quantization value. If the key value data of a component have the same quantization value, all symbols of the component are decoded in step S1323, and they are set to the minimum value input from the key value header decoder 1110, such as fMin_X.

如果分量的密钥值数据具有不同的量化值,则熵译码器1120在步骤S1324中检查该密钥值数据是否已经被利用unary AAC函数编码。如果该密钥值数据已经被利用unary AAC函数编码,则在步骤S1325利用unary AAC函数对它们进行译码。If the key value data of the components have different quantization values, the entropy decoder 1120 checks in step S1324 whether the key value data has been encoded using the unary AAC function. If the key value data have been encoded using the unary AAC function, they are decoded using the unary AAC function in step S1325.

unary AAC函数从比特流中读出0,直到比特“1”出现为止,将0的数量转换成绝对值,读出接着“1”的一位作为值的正负号,如果该位是“0”,则值的正负号为正,如果该位是“1”,则值的正负号为负,并且输出经过译码的值。The unary AAC function reads 0s from the bit stream until the bit "1" appears, converts the number of 0s into an absolute value, and reads the bit following "1" as the sign of the value, if the bit is "0 ", the sign of the value is positive, and if the bit is "1", the sign of the value is negative, and the decoded value is output.

如果分量的密钥值数据没有被利用unary AAC函数编码,则熵译码器1120利用SQ AAC函数对比特流进行译码,该比特流是指利用SQ AAC函数将分量的密钥值数据编码进其中的比特流,这将在下面描述。If the key value data of the component has not been encoded using the unary AAC function, the entropy decoder 1120 decodes the bit stream using the SQ AAC function to encode the key value data of the component into One of the bitstreams, which will be described below.

在步骤S1331中,熵译码器1120从比特流中对所有符号的正负号进行译码,对最大值nMax进行译码,并将所有符号的译码范围(从0到nMax的范围)和标记

Figure A20051009209900401
初始化为“假”。In step S1331, the entropy decoder 1120 decodes the signs of all symbols from the bit stream, decodes the maximum value nMax, and converts the decoding range of all symbols (range from 0 to nMax) and mark
Figure A20051009209900401
Initialized to "false".

此后,在步骤S1332中,熵译码器1120确定将被首先译码的密钥值基准点(i=nStartlndex)并将bDone设置为‘真’。Thereafter, in step S1332, the entropy decoder 1120 determines the key value reference point (i=nStartlndex) to be decoded first and sets bDone to 'true'.

熵译码器1120再次执行步骤S1333到S1343,对符号进行译码。The entropy decoder 1120 performs steps S1333 to S1343 again to decode the symbols.

具体地说,在步骤S1333中,熵译码器1120检查在译码范围中的最大值和最小值

Figure A20051009209900403
是否相同。Specifically, in step S1333, the entropy decoder 1120 checks the maximum value in the decoding range and minimum
Figure A20051009209900403
Is it the same.

如果最大值

Figure A20051009209900404
和最小值
Figure A20051009209900405
相同,则在步骤S1334中,将被编码的符号被确定为译码范围内的最大值(或最小值),如果不是,则在步骤S1335中,熵译码器1120将bDone设置为‘假’,并利用下述等式(17)更新译码范围内的中间值nMid。if max
Figure A20051009209900404
and minimum
Figure A20051009209900405
Same, then in step S1334, the symbol to be encoded is determined to be the maximum value (or minimum value) in the decoding range, if not, then in step S1335, the entropy decoder 1120 sets bDone to 'false' , and use the following equation (17) to update the intermediate value nMid in the decoding range.

Figure A20051009209900406
Figure A20051009209900406

熵译码器1120在步骤S1336中检查上下文标记

Figure A20051009209900407
是否为真,从而确定用于译码的概率模型。如果 是真,则熵译码器1120在步骤S1337中利用FoundContext对比特流进行译码,否则,熵译码器1120在步骤S1338中利用notFoundContext对比特流进行译码。The entropy decoder 1120 checks the context flag in step S1336
Figure A20051009209900407
True to determine the probability model used for decoding. if If it is true, then the entropy decoder 1120 uses FoundContext to decode the bit stream in step S1337, otherwise, the entropy decoder 1120 uses notFoundContext to decode the bit stream in step S1338.

已经对来自比特流的一个比特进行译码的熵译码器1120在步骤S1339中检查从比特流中读出的该比特是否是1,如果不是,则熵译码器1120在步骤S1340中用中间值nMid代替译码范围中的最大值

Figure A20051009209900409
如果从比特流译码的比特是1,则熵译码器1120在步骤S1341中利用中间值nMid代替译码范围中的最小值
Figure A200510092099004010
并将上下文标记 设置为‘真’。The entropy decoder 1120 that has decoded a bit from the bit stream checks in step S1339 whether this bit read from the bit stream is 1, if not, the entropy decoder 1120 uses intermediate The value nMid replaces the maximum value in the decoding range
Figure A20051009209900409
If the bit decoded from the bitstream is 1, the entropy decoder 1120 replaces the minimum value in the decoding range with the intermediate value nMid in step S1341
Figure A200510092099004010
and mark the context Set to 'true'.

熵译码器1120在步骤S1342中将译码下标i加1,在步骤S1343中检查当前阶段中分量的所有密钥值数据是否被完全译码,如果在当前阶段中还剩余要被译码的符号,则执行步骤S1333到S1342。The entropy decoder 1120 adds 1 to the decoding subscript i in step S1342, and checks in step S1343 whether all the key value data of the components in the current stage have been completely decoded, if there are still remaining keys to be decoded in the current stage , execute steps S1333 to S1342.

如果已经将当前阶段的所有密钥值数据译码,熵译码器1120在步骤S1344中检查是否需要附加阶段来对当前分量的密钥值数据进行译码,如果是,则再次执行步骤S1332到S1343。熵译码器检查如果已经将当前分量的所有密钥值译码,则熵译码器开始对下一个分量的密钥值数据进行译码。If all the key value data of the current stage have been decoded, the entropy decoder 1120 checks in step S1344 whether an additional stage is needed to decode the key value data of the current component, and if so, then execute steps S1332 to S1343. The entropy decoder checks that if all key values of the current component have been decoded, the entropy decoder starts decoding the key value data of the next component.

参见图13A和13B,由熵译码器1120译码的密钥值数据的差分数据被输入给逆DPCM处理器130,然后逆DPCM处理器130根据所执行的DPCM的类型执行逆循环DPCM操作或逆预测循环DPCM操作。除了对x、y和z分量的每个分量的密钥值数据单独执行以外,逆循环DPCM操作和预测循环DPCM操作与前述逆DPCM操作器的操作相同。13A and 13B, the differential data of the key value data decoded by the entropy decoder 1120 is input to the inverse DPCM processor 130, and then the inverse DPCM processor 130 performs a reverse cycle DPCM operation or Inverse prediction for cyclic DPCM operations. The inverse cyclic DPCM operation and the predictive cyclic DPCM operation are identical to those of the previously described inverse DPCM operator, except that they are performed separately on the key value data for each of the x, y, and z components.

逆DPCM处理器1130将由逆DPCM操作生成的量化密钥值数据 输出给逆量化器1140,然后,在步骤S1370中,逆量化器1140利用从密钥值标题译码器1110输入的量化比特nKeyValueQBits对 进行逆量化。当n表示Inverse DPCM processor 1130 converts the quantized key value data generated by the inverse DPCM operation output to the inverse quantizer 1140, and then, in step S1370, the inverse quantizer 1140 uses the quantized bit nKeyValueQBits input from the key value header decoder 1110 to Perform inverse quantization. when n means

PP ^^ ijij == PP ~~ ijij (( 22 nKeyValueQBitsnKeyValueQBits -- 11 )) (( ii == nStartIndexnStartIndex ,, .. .. .. ,, nno ,, jj == xx ,, ythe y ,, zz )) -- -- -- (( 1818 ))

从密钥值标题译码器1110输入的密钥值数据的数量时,在逆量化器1140中执行的逆量化可以利用下述等式表示。The inverse quantization performed in the inverse quantizer 1140 when the number of key value data input from the key value header decoder 1110 can be represented by the following equation.

逆量化器1140通过对x、y和z分量中的每个分量的密钥值数据执行逆量化生成规范的数据,并向逆规范器1150输出x、y和z分量中的每个分量的规范的密钥值数据。The inverse quantizer 1140 generates normalized data by performing inverse quantization on the key value data of each of the x, y, and z components, and outputs the normalized data of each of the x, y, and z components to the denormalizer 1150. The key value data.

逆规范器1150利用从浮点数译码器1160输入的信息,对从逆量化器1140输入的规范的密钥值数据进行逆规范。The denormalizer 1150 denormalizes the normalized key value data input from the dequantizer 1140 using the information input from the floating-point number decoder 1160 .

下面结合图14C描述对x、y和z分量中的每个分量的规范密钥值数据进行的逆规范。Inverse normalization of the normalized key value data for each of the x, y, and z components is described below with reference to FIG. 14C.

浮点数译码器1160接收信息bUse32Float并检查bUse32Float是否为真。如果bUse32Float为真,则浮点数译码器接收用于逆规范的最大值fMax以及具有IEEE标准754的浮点数格式的x、y和z分量中的每个分量的密钥值数据当中的最小值fMin_X、fMin_Y和fMin_Z。如果不是,则浮点数译码器在步骤S1382中接收用于逆规范的最大值fMax以及x、y和z分量中的每个分量的密钥值数据当中的最小值fMin_X、fMin_Y和fMin_Z,并接收关于最大值fMax属于哪一个分量的信息nWhichAxis。The floating point decoder 1160 receives the message bUse32Float and checks whether bUse32Float is true. If bUse32Float is true, the floating-point number decoder receives the maximum value fMax for denormalization and the minimum value among the key value data for each of the x, y, and z components in the floating-point number format of IEEE Standard 754 fMin_X, fMin_Y, and fMin_Z. If not, the floating-point number decoder receives the maximum value fMax for denormalization and the minimum values fMin_X, fMin_Y, and fMin_Z among the key value data for each of the x, y, and z components in step S1382, and The information nWhichAxis about which component the maximum value fMax belongs to is received.

浮点数译码器1160在步骤S1384中按照等式(9)将在十进制系统中表示的fMax、fMin_X、fMin_Y和fMin_Z转换成二进制数,并将转换后的值输出给逆规范器1150。The floating-point number decoder 1160 converts fMax, fMin_X, fMin_Y, and fMin_Z expressed in the decimal system into binary numbers according to Equation (9) in step S1384, and outputs the converted values to the denormalizer 1150.

逆规范器1150根据bUse32Float检查fMax、fMin_X、fMin_Y和fMin_Z是否已经被编码为32比特。如果fMax、fMin_X、fMin_Y和fMin_Z已经被编码为32比特,则逆规范器1150将fMax确定为Rangemax,如果不是,则逆规范器在步骤S1386中按照等式(15)计算最大范围中的最大值RangemaxThe denormalizer 1150 checks whether fMax, fMin_X, fMin_Y and fMin_Z have been encoded as 32 bits according to bUse32Float. If fMax, fMin_X, fMin_Y and fMin_Z have been coded as 32 bits, then the denormalizer 1150 determines fMax as Range max , if not, the denormalizer calculates the maximum in the maximum range according to equation (15) in step S1386 Value Range max .

如果Rangemax被确定,则逆规范器1150在步骤S1388中根据Rangemax,按照等式(16)对x、y和z分量中的每个分量的密钥值数据进行逆规范。If Range max is determined, the denormalizer 1150 denormalizes the key value data of each of the x, y, and z components according to Equation (16) according to Range max in step S1388.

图24到27示出了按照本发明第三实施例的,用于对数据进行译码的装置运行的程序代码的例子。24 to 27 show examples of program codes executed by the apparatus for decoding data according to the third embodiment of the present invention.

图24示出了用于实现逆循环DPCM操作的C++程序代码的例子,图25示出了用于实现逆预测循环DPCM操作的C++程序代码的例子。FIG. 24 shows an example of a C++ program code for realizing an inverse cyclic DPCM operation, and FIG. 25 shows an example of a C++ program code for realizing an inverse predictive cyclic DPCM operation.

逆循环DPCM操作和逆预测循环DPCM操作都包括用于在量化范围中选择某个值的逆循环量化程序。Both the inverse cyclic DPCM operation and the inverse predictive cyclic DPCM operation include an inverse cyclic quantization procedure for selecting a value in the quantization range.

用于实现熵译码(自适应算术译码器)操作的C++程序代码的例子示于图26到31中。这里,qf_decode()表示用于从比特流中读出一个比特的函数。Examples of C++ program code for implementing entropy decoding (Adaptive Arithmetic Decoder) operations are shown in FIGS. 26 to 31. Here, qf_decode() denotes a function for reading out one bit from a bit stream.

利用写入到计算机可读记录介质上的计算机可读代码可以实现本发明。这里,计算机可读记录介质包括任何一种可以被计算机系统读出的记录介质。例如,计算机可读记录介质可以是ROM、RAM、CD-ROM、磁带、软盘、光数据存储器和载波(通过互联网传输)。计算机可读记录介质可以被传输到通过网络连接的计算机系统,计算机可以以分散方式读取记录介质。The present invention can be realized by computer readable codes written on a computer readable recording medium. Here, the computer-readable recording medium includes any recording medium that can be read by a computer system. For example, the computer-readable recording medium may be ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and carrier wave (transmission via Internet). The computer-readable recording medium can be transferred to a computer system connected through a network, and the computer can read the recording medium in a decentralized manner.

如上所述,可以认为,按照本发明的DPCM操作器及其操作通过执行预测DPCMA操作和循环量化操作以及传统的DPCM操作,可以大大减少差分数据的规模。另外,通过利用按照本发明的DPCM操作对数据进行编码,可以明显地提高对数据进行编码的效率。As described above, it can be considered that the DPCM operator and its operations according to the present invention can greatly reduce the size of differential data by performing predictive DPCMA operations and cyclic quantization operations as well as conventional DPCM operations. In addition, by encoding data using the DPCM operation according to the present invention, the efficiency of encoding data can be significantly improved.

另外,通过利用按照本发明的规范器,根据x、y和z分量中的一个分量对具有多个分量的数据进行规范,可以提高对数据进行编码的效率,从而减小数据的规模。In addition, by normalizing data having a plurality of components according to one of x, y, and z components using the normalizer according to the present invention, it is possible to increase the efficiency of encoding data, thereby reducing the size of the data.

此外,通过在执行DPCM操作和预测DPCM操作之后执行循环量化操作,可以以较高的压缩比对位置内插器的密钥值数据进行编码和译码,从而减少将被编码的差分数据的范围。In addition, by performing the cyclic quantization operation after performing the DPCM operation and predicting the DPCM operation, the key value data of the position interpolator can be encoded and decoded at a higher compression ratio, thereby reducing the range of differential data to be encoded .

尽管本发明是参照其优选实施例来描述的,但本领域的技术人员应该理解,可以在不脱离由所附权利要求限定的本发明的精神和范围的情况下,对其进行形式和细节上的各种修改。Although the present invention has been described with reference to its preferred embodiments, it will be understood by those skilled in the art that changes may be made in form and detail without departing from the spirit and scope of the invention as defined by the appended claims. various modifications.

Claims (17)

1. one kind is used for data are carried out apparatus for encoding, and this device comprises:
A quantizer, the data-measuring that is used for inputing to it is predetermined bit quantization;
A DPCM operator is used for generating differential data by quantized data being carried out the DPCM operation;
An entropy coder is used for the differential data from the input of DPCM operator is carried out entropy coding, and will outputs to through the differential data of entropy coding in the bit stream;
A quantization error minimizes device, is used for receiving input data and quantized data, regulates the minimum and maximum value in the input data, thereby makes the quantization error minimum, and export minimum and maximum value; And
A heading code device is used for the minimum and maximum value that will be included in bit stream is encoded.
2. device as claimed in claim 1, wherein, described quantization error minimizes device and comprises:
An initial value is provided with the unit, is used for receiving input data and quantized data, by the counting the number of words of minimum value in the middle of calculating input data and the quantization error minimum error values e is set MinInitial value, and minimum value min ' and quantization error minimum value min through overregulating are set MinInitial value;
Minimum value updating block through overregulating is used for by the minimum value min ' through overregulating is carried out a predetermined operation minimum value min ' through overregulating being upgraded;
A determining unit is used for according to through the counting the number of words and be worth of the minimum value upgrading and regulate, with quantization error minimum value min MinBe defined as to be used to the minimum value of re-quantization; And
An error amount updating block is used for according to calculating quantization error value through the minimum value of upgrading and regulating, if the quantization error value of being calculated is less than minimum error values e Min, then the minimum value through overregulating is updated to quantization error minimum value min Min, the quantization error value of being calculated is updated to minimum error values e Min, and with minimum error values e MinExport to minimum value updating block through overregulating.
3. device as claimed in claim 2, wherein, described initial value is provided with the unit according to the minimum value in result who removes the predetermined quantitative step-length with predetermined constant and the input data, and the initial value of the minimum value through overregulating is set.
4. the device of counting as claim 2, wherein, counting the number of words and importing counting the number of words of data and compare in the minimum value by will inputing to described determining unit through overregulating, and after the value of minimum value compared in the middle of the value of the minimum value through overregulating that will import and the input data, described determining unit was output as current quantization error minimum value will be used to the minimum value of contrary standard.
5. one kind is used for the data with a plurality of components are carried out apparatus for encoding, and this device comprises:
A normalizer is used to calculate the maximum magnitude in the middle of the data area of component, and according to this maximum magnitude the data of each component in the component is carried out standard;
A quantizer is used to utilize predetermined quantization bit to quantizing through specification data;
A DPCM operator is used for quantized data is carried out DPCM operation and output differential data; And
An entropy coder is used for differential data is carried out entropy coding and output with encode into wherein bit stream of differential data.
6. device as claimed in claim 5, wherein, described normalizer calculates the central minimum and maximum value of data of each component in the component, utilize the central maximum magnitude of data area of the minimum and maximum value acquisition component of component, and the data of each component in the component are carried out standard according to this maximum magnitude.
7. one kind is used for device that data are deciphered, is used for the bit stream that the digital coding that will have a plurality of components is advanced is wherein deciphered, and described device comprises:
An entropy encoder is used for the bit stream that inputs to it is carried out entropy decoding and output differential data;
A contrary DPCM operator is used for differential data is carried out contrary DPCM operation and output quantized data;
An inverse quantizer is used for quantized data is carried out re-quantization and exports authority data; And
A contrary normalizer is used to receive the central minimum value of each component data and has the maximum of the component of maximum magnitude, obtain the maximum magnitude of authority data, and this maximum magnitude carries out contrary standard to authority data.
8. device as claimed in claim 7, wherein, described contrary normalizer utilizes the maximum magnitude and the minimum value of the affiliated component of authority data, and authority data is carried out contrary standard.
9. device as claimed in claim 7, wherein, described contrary normalizer carries out contrary standard by authority data being multiply by maximum magnitude and the minimum value of component under the authority data being added on the result of multiplication to authority data.
10. one kind is used for data are carried out Methods for Coding, and this method comprises the steps:
(a) utilize the predetermined quantitative bit that the input data are quantized;
(b) by quantized data being carried out the DPCM operation, generate differential data;
(c) by the differential data that generates in step (b) is carried out entropy coding, generate bit stream;
(d) utilization input data and quantized data are adjusted in the minimum and maximum value in the quantized data, thus making amount error minimum; And
(e) the minimum and maximum value that will be included in the bit stream is encoded.
11. method as claimed in claim 10, wherein, step (d) comprises the steps:
(d1) by utilize input data and quantized data calculate the minimum value of input data and quantization error count the number of words, minimum error values e is set MinInitial value, and minimum value min ' and quantization error minimum value min through overregulating are set MinInitial value;
(d2) by the minimum value min ' through overregulating is carried out scheduled operation, upgrade minimum value min ' through overregulating;
(d3) according to through the counting the number of words and size of the minimum value upgrading and regulate, with quantization error minimum value min MinBe defined as to be used to the minimum value of re-quantization; And
(d4) if in step (d3), also not with quantization error minimum value min MinBe defined as to be used to the minimum value of re-quantization, then according to minimum value, calculate quantization error value, and the minimum value through overregulating is updated to quantization error minimum value min through upgrading and regulating Min, the quantization error of calculating is updated to minimum error values, if the quantization error value of being calculated is less than minimum error values e Min, then move to step (d2).
12. method as claimed in claim 11 wherein, in step (d1), according to the minimum value in the middle of result who removes the predetermined quantitative step-length with predetermined constant and the input data, is provided with the initial value of the minimum value through overregulating.
13. method as claimed in claim 11, wherein, in step (d3), counting the number of words and importing counting the number of words of data of minimum value by will be through overregulating compares, and the value of the minimum value in the middle of the minimum value through overregulating that will import and the input data compares, and current quantization error minimum value is defined as and will be used to the minimum value of re-quantization.
14. one kind is used for data are carried out Methods for Coding, this method is encoded to the data with a plurality of components, and described method comprises:
(a) calculate the maximum magnitude in the data area of component and the data of each component are carried out standard according to this maximum magnitude;
(b) utilize the predetermined quantitative bit that authority data is quantized;
(c) by quantized data being carried out the DPCM operation, generate differential data; And
(d), generate wherein bit stream is advanced in digital coding by differential data being carried out entropy coding.
15. method as claimed in claim 14, wherein, step (a) comprises the steps:
(a1) calculate minimum and maximum value in the middle of the data of each component;
(a2) utilize minimum and maximum value to calculate maximum magnitude in the data area of the data area of component and component; And
(a3) according to maximum magnitude the data of each component are carried out standard.
16. the method that data are deciphered, this method are used for the bit stream that the digital coding that will have a plurality of components is advanced is wherein deciphered, described method comprises the steps:
(a) carry out entropy coding by bit stream, generate differential data input;
(b) by differential data being carried out contrary DPCM operation, generating quantification data;
(c) by quantized data is carried out re-quantization, generate authority data; And
(d) utilize and to decipher from bit stream, the minimum value in the middle of each component data and have the maximum of the component of maximum magnitude obtains the maximum magnitude of authority data, and according to this maximum magnitude authority data is carried out contrary standard.
17. method as claimed in claim 16 wherein, in step (d), is used the contrary standard specification data of minimum value of the affiliated component of described maximum magnitude and authority data.
CN 200510092099 2001-11-27 2002-11-27 Method and apparatus for encoding and decoding data Expired - Fee Related CN100530977C (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US33313001P 2001-11-27 2001-11-27
US60/333,130 2001-11-27
US60/334,541 2001-12-03
US60/342,101 2001-12-26
US60/369,597 2002-04-04
KR67679/02 2002-11-02

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNB021542945A Division CN100459460C (en) 2001-11-27 2002-11-27 Method and apparatus for encoding and decoding data

Publications (2)

Publication Number Publication Date
CN1741392A true CN1741392A (en) 2006-03-01
CN100530977C CN100530977C (en) 2009-08-19

Family

ID=36076905

Family Applications (8)

Application Number Title Priority Date Filing Date
CN 200610168615 Expired - Fee Related CN100546386C (en) 2001-11-27 2002-11-27 Method and apparatus for encoding and decoding key value data of a coordinate interpolator
CN 200610094358 Expired - Fee Related CN1878311B (en) 2001-11-27 2002-11-27 Method and apparatus for encoding and decoding bit stream and orientation interpolator
CN 200610094359 Expired - Fee Related CN100581253C (en) 2001-11-27 2002-11-27 Apparatus and method for decoding bitstream
CNB2005100916428A Expired - Fee Related CN100350433C (en) 2001-11-27 2002-11-27 Method for computing path error and extracting path break point
CN 200510092099 Expired - Fee Related CN100530977C (en) 2001-11-27 2002-11-27 Method and apparatus for encoding and decoding data
CN 200710084973 Expired - Fee Related CN101009837B (en) 2001-11-27 2002-11-27 Method for encoding bit stream of orientation interpolator
CN200610110089.2A Expired - Fee Related CN1941910B (en) 2001-11-27 2002-11-27 Method and apparatus for encoding coordinate built in symbol and decoding bit data flow
CN 200610075350 Expired - Fee Related CN1856105B (en) 2001-11-27 2002-11-27 Method and apparatus for encoding and decoding directional interpolator

Family Applications Before (4)

Application Number Title Priority Date Filing Date
CN 200610168615 Expired - Fee Related CN100546386C (en) 2001-11-27 2002-11-27 Method and apparatus for encoding and decoding key value data of a coordinate interpolator
CN 200610094358 Expired - Fee Related CN1878311B (en) 2001-11-27 2002-11-27 Method and apparatus for encoding and decoding bit stream and orientation interpolator
CN 200610094359 Expired - Fee Related CN100581253C (en) 2001-11-27 2002-11-27 Apparatus and method for decoding bitstream
CNB2005100916428A Expired - Fee Related CN100350433C (en) 2001-11-27 2002-11-27 Method for computing path error and extracting path break point

Family Applications After (3)

Application Number Title Priority Date Filing Date
CN 200710084973 Expired - Fee Related CN101009837B (en) 2001-11-27 2002-11-27 Method for encoding bit stream of orientation interpolator
CN200610110089.2A Expired - Fee Related CN1941910B (en) 2001-11-27 2002-11-27 Method and apparatus for encoding coordinate built in symbol and decoding bit data flow
CN 200610075350 Expired - Fee Related CN1856105B (en) 2001-11-27 2002-11-27 Method and apparatus for encoding and decoding directional interpolator

Country Status (2)

Country Link
CN (8) CN100546386C (en)
ES (1) ES2360786T3 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101383967B (en) * 2007-09-06 2010-12-22 索尼株式会社 encoding device, encoding method, decoding device, decoding method

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120052739A (en) 2010-11-16 2012-05-24 삼성전자주식회사 Display driving device and method for compressing and decompressing image data in the same
KR20130049523A (en) * 2011-11-04 2013-05-14 오수미 Apparatus for generating intra prediction block
FR2982447A1 (en) 2011-11-07 2013-05-10 France Telecom METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS
FR2982446A1 (en) 2011-11-07 2013-05-10 France Telecom METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS
CN103517022B (en) * 2012-06-29 2017-06-20 华为技术有限公司 A kind of Image Data Compression and decompression method, device
KR102711166B1 (en) * 2018-11-06 2024-09-30 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Position-dependent storage of motion information
KR20220021442A (en) * 2019-06-18 2022-02-22 엘지전자 주식회사 Video decoding method and apparatus
CN111272280B (en) * 2020-02-25 2020-12-15 电子科技大学 A Method of Improving the Resolution of Spectrometer System Using Deconvolution
CN112965462B (en) * 2021-02-07 2022-08-16 深圳市千与诺科技有限责任公司 Signal generation method, system, medium and apparatus for process system
US12174759B2 (en) * 2021-03-30 2024-12-24 Micron Technology, Inc. Interpolation acceleration in a processor memory interface
CN120263195B (en) * 2025-06-04 2025-08-12 西安高商智能科技有限责任公司 A data encoding method for a multi-mode hardware-in-the-loop simulation system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4230728A1 (en) * 1992-09-14 1994-03-17 Philips Patentverwaltung Adaptive DPCM encoder
CN1052608C (en) * 1993-07-24 2000-05-17 电子科技大学 Digital transmission method for high-definition television and transmitter-receiver
JP3649469B2 (en) * 1995-05-12 2005-05-18 株式会社ソニー・コンピュータエンタテインメント Animation data creation method and creation apparatus
KR100212552B1 (en) * 1996-12-23 1999-08-02 전주범 Method and apparatus for coding counter image
FR2765984B1 (en) * 1997-07-11 1999-10-22 France Telecom SIGNAL OF ANIMATION DATA OF A QUANTIFYING GRAPHIC SCENE, CORRESPONDING METHOD AND DEVICE
US6075901A (en) * 1998-12-04 2000-06-13 France Telecom Method and system for predictive encoding of arrays of data
CN1181690C (en) * 1999-07-20 2004-12-22 皇家菲利浦电子有限公司 Coding method for compressing video sequences
KR100608454B1 (en) * 1999-10-19 2006-08-02 삼성전자주식회사 Video recording and / or playback device using keyframe
AU1937701A (en) * 1999-12-01 2001-06-12 Mikael Bourges-Sevenier Optimized bifs encoder
JP4758013B2 (en) * 2000-03-14 2011-08-24 三星電子株式会社 Node processing method and apparatus for 3D scene

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101383967B (en) * 2007-09-06 2010-12-22 索尼株式会社 encoding device, encoding method, decoding device, decoding method

Also Published As

Publication number Publication date
CN1941910B (en) 2015-03-11
CN1878311A (en) 2006-12-13
CN100546386C (en) 2009-09-30
CN1878312A (en) 2006-12-13
CN1941910A (en) 2007-04-04
CN1856105B (en) 2011-08-24
CN101009837A (en) 2007-08-01
CN101009837B (en) 2011-04-27
CN100530977C (en) 2009-08-19
CN1734502A (en) 2006-02-15
CN1976473A (en) 2007-06-06
CN100350433C (en) 2007-11-21
CN1856105A (en) 2006-11-01
CN1878311B (en) 2013-04-03
CN100581253C (en) 2010-01-13
ES2360786T3 (en) 2011-06-09

Similar Documents

Publication Publication Date Title
CN1187716C (en) Apparatus and method for encoding and decoding keyword data
CN1324558C (en) Coding device and decoding device
CN1096752C (en) Self adaptable coding method
CN1515077A (en) Digital map shape vector coding method and position information transmitting method
CN1281064C (en) Image coding and decoding using mapping coefficients corresponding to class information of pixel blocks
CN1197252C (en) Image coding and decoding by using conversion coefficient of grade information of corresponding image element block
CN1918602A (en) Multi-mode alpha image processing
CN1177482C (en) Encoding method, decoding method, encoding device, and decoding device
CN1278981A (en) Image encoding device and image decoding device
CN1741392A (en) The method and apparatus that data are encoded and deciphered
CN1993976A (en) Lossless compression of color image data using entropy encoding
CN1397137A (en) data processing device
CN1307782A (en) Image encoding/decoding method and recording medium for recording the program
CN1226039A (en) Exponential calculation device and decoding device
CN1684492A (en) Image dictionary creation device, encoding device, image dictionary creation method
CN1433164A (en) Method and apparatus for encoding and decoding data
CN101036113A (en) Information encoding method, decoding method, common multiplier estimation method, apparatus, program, and recording medium using these methods
CN1835548A (en) Decoding apparatus, decoding method and program product therefor
CN1154234C (en) Image coding and decoding device and method, and image data sending method
CN1968417A (en) Decoding apparatus, inverse quantization method, and computer readable medium
CN1278561C (en) Coding apparatus
CN1893607A (en) Encoding apparatus and method, decoding apparatus and method, image processing system and method, and recording medium
CN100343879C (en) Method and apparatus for encoding and decoding key value data of orientation interpolator node
CN1838776A (en) Decoding apparatus, dequantizing method, and program thereof
CN1206613C (en) Coding and decoding method and device for key value data to directed interprolator node

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090819

Termination date: 20151127