CN1856105B - Method and apparatus for encoding and decoding directional interpolator - Google Patents

Method and apparatus for encoding and decoding directional interpolator Download PDF

Info

Publication number
CN1856105B
CN1856105B CN 200610075350 CN200610075350A CN1856105B CN 1856105 B CN1856105 B CN 1856105B CN 200610075350 CN200610075350 CN 200610075350 CN 200610075350 A CN200610075350 A CN 200610075350A CN 1856105 B CN1856105 B CN 1856105B
Authority
CN
China
Prior art keywords
data
key
value
rotation
differential data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 200610075350
Other languages
Chinese (zh)
Other versions
CN1856105A (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
Priority claimed from KR10-2002-0073044A external-priority patent/KR100499135B1/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1856105A publication Critical patent/CN1856105A/en
Application granted granted Critical
Publication of CN1856105B publication Critical patent/CN1856105B/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

An apparatus and a method for encoding and decoding key data are provided. An apparatus for encoding DPCMed differential data of key data includes a DND operator which performs on input differential data a predetermined number of times a DND operation, in which a divide operation is performed on the input differential data so as to divide differential data belonging to a positive number region into halves and so as to convert one half of the differential data belonging to an upper range than the other half into negative values, and either a divide-up operation or a divide-down operation is selectively performed on the results of the divide operation depending on the range of the results of the divide operation so as to reduce the range of differential data belonging to a negative number region or the positive number region, respectively, a shift-up operator which performs a shift-up operation on the results of the DND operation so as to transfer the differential data having been through the DND operation to either the positive or negative number region, a differential data selector which selectively outputs either the differential data having been through the DND operation or the differential data having been through the shift-up operation, and an entropy encoder which entropy-encodes the differential data selected by the differential data selector.

Description

Be used for method and apparatus that directed interpolater is encoded and deciphered
The present invention is the dividing an application of patent application of the same denomination of invention that application number is 02161115.7, the applying date is on November 27th, 2002.
Technical field
The present invention relates to a kind of method and apparatus that is used to encode and deciphers the three-dimensional animation data, more precisely, relate to a kind of method and apparatus that directed interpolater is encoded and deciphered of being used for, this orientation interpolater is represented the information of the rotation of the object in the relevant animation.
Background technology
MPEG-4 BIFS is one of international multimedia standard, and utilization has the keyword of animation and the interpolater node of key value is supported a kind of animation based on key frame.
Represent animation with use is a kind of so smoothly based on the key-frame animation technology for natural as far as possible, require considerable keyword and considerable key value data, and the field data between key frame is filled by interpolater.Interpolater in virtual reality modeling language (VRML) comprises linearity or ball interpolation.
The approximate original animation curve of keyword and key value on time shaft.Fig. 1 is according at the lip-deep passage of time of the three-dimensional ball figure by the two-dimentional track of the represented animation data of directed interpolater node.As shown in Figure 1, conventional MPEG-4 BIFS supports the ball linear interpolation between key frame, and animation path seems similar with one group of fragment of the variation of representing this animation data.
In the directed interpolater node that is provided by BIFS, key data uses-8 and 8 the scheduled time moment of interruption numeral on the residing time shaft of animation.The key value data are illustrated in the information by the represented preset time moment rotation of relevant this object in composograph of key data.The rotation information that is not the object on another scheduled time moment represented by key data be by the linear interpolation of ball utilize corresponding with two time instants, with the moment scheduled time the most contiguous key data obtain.
In the ball linear interpolation, represent rotation information by the rotating shaft and the anglec of rotation.As virtual reality modeling language (VRML), MPEG4-BIFS utilizes directed interpolater node to support by rotating shaft and the represented rotation information of the anglec of rotation.When the key value data of utilization in the ball linear interpolation generated smoothly moving picture, the differential value of the key value data between key frame was very relevant each other, and this has caused the redundancy between data.Therefore, it is effectively using encode a kind of method of key value data of the differential value of data.
MPEG-4 BIFS is provided for encoding by two kinds of diverse ways of the represented field data of the keyword of directed interpolater node and key value data.A kind of is to utilize the encode method of field data of pulse-code modulation (PCM), and another kind is to utilize the encode method of field data of differential pulse code modulation (DPCM) and entropy coding.
Utilizing PCM to encode in the method for field data, only on key data that will be encoded and key value data, carry out quantification treatment.Because the feature of data that will be encoded is not considered in the method, this method is considered to invalid.Utilizing PCM to encode in the method for field data, import the field data of directed interpolater node, and the key value data of field data are transformed into the value in space of quaternions.Then, quantized key word and key value data.The field data that quantizes is output with the form of binary data.For measuring the degree of comparing the visible distortion as a result of hypercomplex number conversion with the original scene data, binary data is recovered to the key value data of being made up of the rotating shaft and the anglec of rotation.Storage and the field data after the recovery of output directional interpolater node on the screen.DATA REASONING after utilization is restored is possible by the degree of the visible distortion of the caused image of hypercomplex number error.The distortion of image can be calculated with following equation (1).
D = ( &Sigma; i - 0 i < N &epsiv; i N ) 2 = ( &Sigma; i - 0 i < N Q i - Q ^ i N ) 2 . . . ( 1 )
In equation (1), N represents the quantity of field data, and ε iBe illustrated in a hypercomplex number and restore coding key value data Q in the time iAnd key value data Between a difference value.
On the other hand, be used for using DPCM and the entropy coding method of field data of encoding, the association between continuous data is considered, and therefore aspect code efficiency, it is more effective with the encode method of field data of PCM that this method is considered to Billy.In this method, the difference value between previous recovery key value that will be encoded and key value data is calculated before a quantification treatment, quantizes this difference value then, thereby by utilizing the characteristic in the data shown in this difference value to improve code efficiency.
Fig. 2 A and 2B are respectively the block diagrams that utilizes a MPEG-4 PMFC of linear DPCM and entropy coding and utilize a MPEG-4 PMFC decoder of linear attenuation DPCM and entropy coding.Calculate current key value data in order to following equation (2) and before restored differential data between the key value data in the linear DPCM operator shown in Fig. 2 A
Q &CenterDot; i = Q i - Q i - 1 ^ = ( q i , 0 - q i - 1,0 ^ , q i , 1 - q i - 1,1 ^ , q i , 2 - q i - 2,2 ^ , q i , 3 - q i - 1,3 ^ ) . . . ( 2 )
In equation (2), Q iBe illustrated in the original key value data of the moment scheduled time (t), it is to be represented by a hypercomplex number, and
Figure S06175350X20060420D000031
Be illustrated in the key value data of the moment scheduled time (t-1), it is to restore from an error compensation circuit.
Yet the coding method of carrying out at the device in the key value data that are used for encoding shown in Fig. 2 A does not have a high code efficiency.Be easy to point out that by analysis of key word Value Data the shortcoming of this coding method is that assorted youngest is possible, it determines the rotation at hypercomplex number object in the time.The key value data are represented by the hypercomplex number in the following equation.
Q = ( cos &theta; 2 , n x | | n | | sin &theta; 2 , n y | | n | | sin &theta; 2 , n z | | n | | sin &theta; 2 ) . . . ( 3 )
For example, when the component of a hypercomplex number has identical absolute value with as at a hypercomplex number their corresponding component of another hypercomplex number of isolabeling not in the time, in the time of as in equation (3), two hypercomplex numbers are considered to identical.In other words, these two hypercomplex numbers are providing identical effect aspect the rotation transformation of the object of one 3D time, and the factor that this expression influences the rotation transformation of an object is a direction and an anglec of rotation of a rotating shaft, rather than the vector of this rotating shaft.Yet, resemble in MPEG4 BIFS, if the key value data are represented by a hypercomplex number of using equation (3) and a difference value is calculated by linearity by the difference of calculating in the vector between continuous key value data, this difference value is not 0, and this expression linear differential value is not reflected in the redundancy in the rotation transformation well.Therefore, the method for using the distortion level be used for measurement image as in equation (1) accurately the measurement image quality be impossible.
Summary of the invention
For solving above-mentioned and other problem, one aspect of the present invention provides and a kind ofly is used to encode and deciphers necessarily method and apparatus to interpolater, the directed interpolater of extraction that coding and decoding are made up of the breakpoint that extracts from an original alignment interpolater is so that prevent to extract a error between directed interpolater and original alignment interpolater greater than a permissible error limit, thereby the animation of the high-quality with a high compression ratio is provided.
Another aspect of the present invention provides and a kind ofly is used to encode and deciphers necessarily method and apparatus to interpolater, by calculating a rotation differential ratio, high-quality with high compression ratio animation can be provided, can be reflected in the redundancy in the rotation transformation fully, and can use this rotation difference value to encode necessarily to the key value data of interpolater.
Another aspect of the present invention proposed a kind of by according to of the present invention to necessarily to the bit stream that interpolater is encoded and the method and apparatus deciphered is encoded and deciphered, this can provide the high quality animation with a high compression ratio.
Therefore, for realizing above and other objects of the present invention, provide a kind of to necessarily carrying out apparatus for encoding to interpolater, this orientation interpolater comprises and is used to the key value data that are illustrated in the key value of a time shaft shangguan key frame position and are used to represent the rotation of an object.This device comprises a breakpoint withdrawal device, a key data encoder, a key value data encoder.This breakpoint withdrawal device is from by the certain minimum breakpoint that extracts to first animation path that interpolater is formed that is input to wherein, and this can produce and be not more than described first animation path and by an error that extracts the predictive error limit between one second animation path that breakpoint generated.One key data encoder, coding is from the key data of breakpoint withdrawal device input.One key value data encoder, coding is from the key value data of described breakpoint withdrawal device input.
Best, the present invention further comprises a resampling device and a selector.This resampling device samples first animation path to have in scheduled time amount a plurality of predetermined portions at interval, and output comprise resampling key data and resampling key value data necessarily to interpolater.This selector responds an external input signal, will be input to necessarily outputing in this resampling device and this breakpoint withdrawal device to interpolater wherein.
For realizing above and other objects of the present invention, provide a kind of to necessarily carrying out apparatus for encoding to interpolater, this orientation interpolater comprises and is used to the key value data that are illustrated in the key value of a time shaft shangguan key frame position and are used to represent the rotation of an object.This device comprises a resampling device, a key data encoder, a key value data encoder.This resampling device will be sampled by the animation path that the directed interpolater of an input is formed to have in scheduled time amount a plurality of predetermined portions at interval and export and comprise sampling key data and sampling key value data.This key data encoder, coding is from the key data of this resampling device input.This key value data encoder, generate a rotation difference value, this difference value is used for being applied to the difference that the rotation transformation of this object and the key value data by key frame before are applied between the rotation transformation of this object by key value data by a current key frame no better than and rotates this object, and therefore coding from the key value data of this resampling device input.
Best, the breakpoint withdrawal device comprises a linear interpolation, an Error Calculator and a determining unit.The path point at the beginning and one that this linear interpolation extracts an input animation path finishes the path point, the selection path point between beginning and end path point, and utilize selected path point interpolation also not have selecteed other path point.This Error Calculator is calculated the input animation path and is utilized a error between the interpolation animation path that interpolation generates by linear interpolation.This determining unit extracts breakpoint, and by this operation, the error between energy minimization input animation path and interpolation animation path, and the breakpoint of output selection are if corresponding error is less than a predictive error limit.
Best, the key value encoder comprises a rotation differential data maker and an entropy coder.This rotation differential data maker utilizes a rotation transformation value of a current key frame and a recovery rotation transformation value of a preceding key frame to generate a rotation difference value, this difference value be used to by be applied to the rotation transformation of this object in this current key frame by the key value data no better than and be applied to by the key value data before a difference between the rotation transformation of this object in the key frame rotate this object, and export the rotation differential data by quantizing this rotation difference value.This entropy coder, entropy coding should the rotation differential data.
Best, rotation differential data maker comprises one first quaternion multiplier, a quantizer, an inverse quantizer, and one second quaternion multiplier.This first quaternion multiplier utilizes the rotation transformation value of this current key frame and the recovery rotation transformation value of preceding key frame to generate the rotation difference value.This quantizer generates the rotation differential data by quantizing this rotation difference value.This inverse quantizer generates one by this rotation differential data of re-quantization and restores the rotation difference value.The rotation transformation value of this one second quaternion multiplier by key frame before will restoring rotation difference value hypercomplex number and multiply by generates one of current key frame and restores the rotation transformation value.
Best, the key data encoder comprises one first quantizer, one the one DPCM processor, a DND processor, and one first entropy coder.This first quantizer utilizes the predetermined quantitative position to quantize certain key data to interpolater.The one DPCM processor, the differential data of generating quantification key data.This DND processor, according to differential data and a peaked relation and between them a minimum value on this differential data, carry out DND operation.This first entropy coder, entropy coding is from the term of validity divided data of DND processor input.
For realizing above and other objects of the present invention, provide a kind of device that a bit stream is deciphered of being used for, necessarily the encoding of key value data that will comprise the key data of the position that is used to be illustrated in a time shaft shangguan key frame and be used to represent the rotation of an object to interpolater.This device comprises a key data decoder, and a key value data decoder is necessarily to the interpolater synthesizer.This key data decoder for decoding is from the key data of an incoming bit stream.This key value data decoder, decoding is from the key value data of this incoming bit stream.This orientation interpolater synthesizer is deciphered the key value data and is utilized the key value data of this decoding key value data ball linear interpolation to generate necessarily to interpolater by synthetic.
Best, the key value data decoder comprises an entropy encoder, a contrary circulation DPCM operator, an inverse quantizer, and a quaternion multiplier.This entropy encoder generates circulation DPCM rotation differential data or quantizes the rotation differential data by the key value data of entropy decoding from this bit stream.Should contrary circulation DPCM operator, by generating and quantizing the rotation differential data from the number of times operation back of the DPCM of this bitstream interpretation carrying out a contrary circulation DPCM operation from the rotation differential data of entropy encoder input.This inverse quantizer, a difference that is applied to by the hypercomplex number key value data that quantize each key frame of rotation differential data by re-quantization no better than between the rotation transformation of this object is rotated this object.This quaternion multiplier multiply by one of a preceding key frame by the rotation difference value hypercomplex number with current key frame and restores the rotation transformation value that the rotation transformation value generates a current key frame.
Be to realize above and other objects of the present invention, provide a kind of rotation to the key data that comprises the position that is used to be illustrated in a time shaft shangguan key frame and expression one object the key value data necessarily carry out Methods for Coding to interpolater.This method comprises that (b) generates key data and the key value data that will be encoded by extract a minimum breakpoint from first animation path of being made up of this orientation interpolater, can produce less than first animation path with by extracting an error of the predictive error limit between one second animation that breakpoint generates, (d) be coded in the key data that generates in the step (b), and (e) be coded in the key value data that generate in the step (b).
Best, step (b) comprises that (b1) selects the path point at the beginning and of first animation path to finish the path point, (b2) select successively to begin and finish the path point between the point of path and utilize still non-selected other path point of selected path point interpolation, (b3) calculate first animation path with by the error between interior one second animation path that is inserted in generation in the step (b2), and (b4) select breakpoint, can be minimized by this error of operating between first animation path and second animation path, whether check corresponding error less than a predictive error limit, and determine the key data and the key value data that are encoded.
Best, certain method to interpolater that is used to encode can further be included in step (b) (a) before, by being sampled, first animation path has in scheduled time amount a plurality of predetermined portions at interval, generation comprise resampling key data and resampling key value data necessarily to interpolater, or may further comprise step (b) (c) afterwards, extract second animation path that breakpoint constituted and sample to have in scheduled time amount a plurality of predetermined portions at interval and generate key data and the key value data that will be encoded by utilizing.
Be to realize above and other objects of the present invention, provide a kind of rotation to the key data that comprises the position that is used to be illustrated in a time shaft shangguan key frame and expression one object the key value data necessarily carry out Methods for Coding to interpolater.This method comprises that (a) will be sampled by the animation path that directed interpolater constituted in a plurality of predetermined portions with scheduled time amount interval, and therefore generate comprise resampling key data and resampling key value data necessarily to interpolater, (d) reduce in step (a) scope and the encoding keyword data of the key data of sampling, and (e) by generating and the rotation difference value of encoding is coded in the key value data of sampling in the step (a), this rotation difference value is used to be applied to the difference that the rotation transformation of this object and the key value data by a preceding key frame are applied between the rotation transformation of this object by key value data by a current key frame no better than and rotates this object.
Best, step (d) comprises with the quantization of a tentation data comes the quantized key digital data, generates differential data by carry out a predetermined DPCM operation on quantized data, and this differential data of entropy coding.
Best, step (e) comprises that (e1) generates a rotation difference value, this difference value is used for restoring the difference that the rotation transformation value is applied to by key value data by current and preceding key frame no better than between the rotation transformation of this object by one of a rotation transformation value of utilizing current key frame and preceding key frame and rotates this object and generate the rotation differential data by quantizing this rotation difference value, (e2) on this rotation differential data, carry out a linear DPCM or circulation DPCM operation selectively, and entropy coding should rotation term of validity divided data.
Best, step (e1) comprises that (e11) utilizes a rotation transformation value of current key frame and a recovery rotation transformation value of preceding key frame to generate the rotation difference value, (e12) generate the rotation differential data by quantizing this rotation difference value, (e13) generate one by re-quantization rotation differential data and restore the rotation difference value, and (e14) by will restore rotation difference value hypercomplex number multiply by before key frame one restore the recovery rotation transformation value that the rotation transformation value generates current key frame.
For realizing above and other objects of the present invention, the method that one bit stream is deciphered is provided, with include the key data of the position that is used to be illustrated in a time shaft shangguan key frame and be used to represent an object rotation the key value data necessarily be encoded into this bit stream to interpolater.The present invention includes the key data of (a) decoding from an incoming bit stream, (b) decoding is from the key value data of this incoming bit stream, and (c) by synthetic decoding key value data and utilize the key value data of this decoding key value data ball linear interpolation to generate necessarily to interpolater.
Best, in step (c), if not to deciphering with the corresponding key value of key data, this key data is current, and to be attached to directed interpolater synthetic, with key data corresponding key value data utilization and current composite key data corresponding decoding key value data with the next one the corresponding decoding key value of the key data that is synthesized data is synthesized.
Best, step (a) comprises that deciphering this incoming bit stream by entropy generates differential data and generate the quantized key digital data and generate the recovery key data by re-quantization quantized key word Value Data by carry out a predetermined DPCM operation or a contrary DND operation on differential data.
Best, step (b) comprises that (b1) generates circulation DPCM rotation differential data or quantize the rotation differential data by the key value data of entropy decoding from this bit stream, (b2) by generating the rotation differential data in entropy coding rotation differential data execution one contrary circulation DPCM operation in DPCM number operation back from this bitstream interpretation, (b3) generate a rotation difference value, this difference value is used to rotate this object by the difference that the hypercomplex number key value data of each key frame by re-quantization rotation differential data no better than are applied between the rotation transformation of this object, and (b4) multiply by the rotation transformation value that a decoding rotation transformation value of key frame before generates a current key frame by the rotation difference value hypercomplex number with current key frame.
For realizing above and other objects of the present invention, a bit stream is provided, with include the key data of the position that is used to be illustrated in a time shaft shangguan key frame and be used to represent an object rotation the key value data necessarily be encoded into this bit stream to interpolater.This bit stream comprises key data coding/decoding information and key value digital coding/decoding information.This key data coding/decoding information is encoded into key data and the necessary information of this key data of decoding.Key value digital coding/decoding information is encoded into the key value data and deciphers the necessary information of these key value data be encoded.Here, key data coding/decoding information comprises contrary DND operation information, the first contrary DPCM operation information, the first re-quantization information.Should contrary DND operation information comprise expression will be at the number of times of the contrary DND of a plurality of predetermined periods of deciphering the contrary DND that carries out on the differential data that this bit stream generates by entropy so that expand the scope of this differential data and in each minimum and maximum value against DND employed differential data in the operation cycle.The first contrary DPCM operation information comprises that the number of times of the contrary DPCM operating operation that will carry out will be so that will convert the digital data of quantized key and the inner key data in each contrary DPCM operation cycle against the DND differential data on contrary DND differential data.The first re-quantization information is used in the re-quantization to generate the recovery key data by re-quantization quantized key digital data.Key value data decoding/coded message comprises by quantizing to be used for to be applied to the rotation differential data that a difference between the rotation transformation of this object is rotated a rotation differential data entropy coding of this object by hypercomplex number key value data by each key frame no better than, entropy decoding information comprises an entropy decoding mode of the entropy interpretation method that expression will be carried out on the rotation differential data, contrary circulation DPCM operation information comprises the number of times of contrary circulation DPCM operation, whether its expression will carry out a contrary circulation DPCM operation with the entropy decoding mode on entropy decoding rotation differential data, and second re-quantization information comprise a plurality of predetermined re-quantizations position, be used for restoring original key value data by re-quantization quantized key word Value Data.
Best, key data coding/decoding information further comprises linear keyword decoding information, be used for a linear keyword fragment that is included in this bit stream is deciphered, and should linearity keyword decoding information comprise a Q-character, this Q-character represents whether to exist linear keyword zone, is included in the quantity of the key data in this linearity keyword fragment and the beginning and the end key data of linear keyword fragment.Being increased in the key data of key data linearity in the above-mentioned zone.
The present invention also provides a kind of method that is used to decipher bit stream, directed interpolater is encoded into this bit stream, this orientation interpolater comprises the key value data of the rotation of the key data that is illustrated in the position of key frame on the time shaft and indicated object, and described method comprises: decipher described bit stream by entropy and generate differential data; If the division of this differential data process during encoding is divided number of times (nDNDOrder) again greater than 0, then divide the pulse code modulation operations to generate the quantized key digital data by described differential data being carried out contrary division again, contrary folding, contrary displacement and the unfavourable balance of dividing, if it is 0 that number of times is divided in the division of this differential data again, then described differential data is carried out against folding, contrary displacement and unfavourable balance and divided the pulse code modulation operations, if it is-1 that number of times is divided in the division of this differential data again, then described differential data is carried out against displacement and unfavourable balance and divided the pulse code modulation operations; Wherein,, then carry out moving down after the operation, carry out contrary the division and division operation if the division of process is divided number of times (nDNDOrder) again greater than 0 and determine that moving operation on decoded differential data is through one is encoded during described differential data is being encoded; Generate the recovery key data by the described quantized key digital data of re-quantization; Entropy decoding is from the key value data of described bit stream, with box lunch be included in differential pulse code modulation number of times (nKVDPCMOrder) in the key value head be 1 o'clock by the key value data being carried out contrary circulation differential pulse code modulation operations generating quantification rotation differential data, and generating quantification is rotated differential data when this differential pulse code modulation number of times is 0; Generate the rotation difference value of current key frame by the described quantification of re-quantization rotation differential data, the difference that described rotation difference value is used to be applied to by the hypercomplex number key value data that equal each key frame between the rotation transformation of object is rotated described object; Multiply by the rotation transformation value that the decoding rotation transformation value of key frame before generates described current key frame by rotation difference value hypercomplex number with current key frame; By the synthetic key data of having deciphered with utilize and describedly deciphered key data and deciphered the key value data by the key value data of ball linear interpolation, generate directed interpolater, if wherein the keyword of current key frame selects sign to be set to 0, then recover the key value data of present frame by described preceding key frame of interpolation and key frame subsequently.
Description of drawings
Above-mentioned purpose of the present invention and advantage will become clear by describing its preferred embodiment with reference to the accompanying drawings in detail, wherein:
Fig. 1 is according to the passage of time on the three-dimensional sphere, describes the two-dimentional trajectory diagram by the animation data of necessarily representing to the interpolater node;
Fig. 2 A and 2B are to use a MPEG-4 PMFC encoder of linear DPCM and entropy coding respectively and use linear attenuation DPCM and the block diagram of a MPEG-4 PMFC of entropy decoding;
Fig. 3 A is according to a preferred embodiment of the invention, a kind of being used to encode necessarily to the block diagram of the device of interpolater, and Fig. 3 B is according to a preferred embodiment of the invention, a kind of being used to encode necessarily to the flow chart of the method for interpolater;
Fig. 4 A to 4C is according to a preferred embodiment of the invention, the block diagram of the example of an analyzer;
Fig. 5 A is the flow chart of the step S320 shown in Fig. 3 B;
Fig. 5 B is according to a preferred embodiment of the invention, the flow chart of a resampling method;
Fig. 5 C is according to a preferred embodiment of the invention, extracts a flow chart of a method of breakpoint;
Fig. 6 A is that figure and Fig. 6 B of original key data of description and resampling key data is the figure that describes an original animation path and a resampling animation path.
Fig. 7 A to 7F is according to a preferred embodiment of the invention, describes the figure of an example of a method that extracts breakpoint;
Fig. 8 is described in the breakpoint generate pattern from the key data of breakpoint withdrawal device output and the figure of key value data;
Fig. 9 A is according to a preferred embodiment of the invention, the block diagram of a key data encoder;
Fig. 9 B is the block diagram of the DND processor shown in Fig. 9 A;
Figure 10 A to 10G is according to a preferred embodiment of the invention, the flow chart of a method of encoding keyword data;
Figure 11 is the figure that describes the example of a Function e ncodeSignedAAC;
Figure 12 A to 12J is according to a preferred embodiment of the invention, is described in the figure of the key data that obtains after the different step of carrying out encoding keyword data;
Figure 13 A is according to one first embodiment of the present invention, the block diagram of a key value data encoder, and Figure 13 B is according to one first embodiment of the present invention, the flow chart of a method of coding key value data;
Figure 14 A is the figure of exemplary that is described in the probability distribution function (PDF) in each component of a rotation difference value;
Figure 14 B is the arc tangent curve that is used for nonlinear quantization;
Figure 15 A is according to a preferred embodiment of the invention, the example of the rotation differential data of the quantizer output from be included in a key value data decoder; Figure 15 B is the figure that carries out the result of a linear DPCM operation on the differential data that is described in shown in Figure 15 A; And Figure 15 C is the figure that carries out the result of circulation DPCM operation on the linear DPCM differential data that is described in shown in Figure 15 B;
Figure 16 is the figure that describes the example of a function U naryAAC () who is used for entropy coding;
Figure 17 is the figure that is described in a direction of rotation error of using a rotation difference value to encode to produce during the hypercomplex number rotation transformation value;
Figure 18 A is according to a second embodiment of the present invention, the block diagram of a rotation DPCM operator of a key value data encoder, and Figure 18 B is the block diagram of the direction of rotation Error Calculator shown in Figure 18 A;
Figure 19 A is according to a second embodiment of the present invention, the flow chart of a rotation DPCM operation; Figure 19 B is the flow chart of describing as the operation of a direction of rotation Error Calculator, a direction of rotation error detector and the direction of rotation adjuster shown in Fig. 9 A is;
Figure 20 A is the block diagram of a quantizer of a key value data encoder of a third embodiment in accordance with the invention, and Figure 20 B is the flow chart of operation of a quantizer of a third embodiment in accordance with the invention;
Figure 21 A is the block diagram to the device of interpolater of being used to decipher necessarily according to a preferred embodiment of the invention, and Figure 21 B is according to a preferred embodiment of the invention, a kind of flow chart that is used to decipher necessarily to the method for interpolater;
Figure 22 is the block diagram of a key data decoder according to a preferred embodiment of the invention;
Figure 23 A and 23B are the flow charts of a kind of method of decoding key data according to a preferred embodiment of the invention;
Figure 24 A is the block diagram of a key value data decoder according to a preferred embodiment of the invention, and Figure 24 B is the flow chart of the method for decoding key value data according to a preferred embodiment of the invention;
Figure 25 is according to a preferred embodiment of the invention, describes the figure of structure of a bit stream of the entropy encoder be input to a key value data decoder;
Figure 26 is according to a preferred embodiment of the invention, and is synthetic necessarily to the flow chart of the method for the key data of interpolater and key value data;
Figure 27 describes to calculate the necessarily figure of the example of the method for the error between interpolater and the directed interpolater of a decoding that will be encoded;
Figure 28 is used for and will be used to according to the present invention to encode necessarily to the performance of the method for interpolater and the figure that is used to encode necessarily and compares to the performance of the conventional method of interpolater;
Figure 29 A to 29J is a SDL LISP program LISP code, by this code, according to a preferred embodiment of the invention, is used to decipher certain device to interpolater, realizes decoding key data and key value data.
Embodiment
According to a preferred embodiment of the invention, with coming with reference to the accompanying drawings a kind of certain method and apparatus to interpolater that is used to encode is described in more detail.
Fig. 3 A has provided a kind of being used to encode necessarily to the block diagram of the device of interpolater according to a preferred embodiment of the invention.With reference to figure 3A, certain device to interpolater that is used to encode comprises an analyzer 40, a key value encoder 200, a key value data encoder 300 and a heading code device 400.
Fig. 3 B has provided the flow chart that is used to encode necessarily to the method for interpolater according to a preferred embodiment of the invention.With reference to figure 3B, what just be encoded in step S300 necessarily outputs in the analyzer 40 to interpolater.In step S320, analyzer 40 is from the x by directed interpolater, y, one first animation path that the key value data of z and θ (anglec of rotation) component are formed extracts the key data and the key value data that are encoded, to extract key data output key data encoder 200, and will extract the key value data and output to key value data encoder 300.
Key data encoder 200 utilizes a plurality of predetermined quantization to quantize the key data of being imported from analyzer 40, generates differential data and this differential data of entropy coding in step S340 by carry out a predetermined DPCM operation on quantized key digital data.
Key value data encoder 300 uses a plurality of predetermined quantization to quantize the key value data of being imported from analyzer 40, by generating differential data and this differential data of coding in step S360 in the one predetermined DPCM operation of execution on the quantized data.
Heading code device 400 receives decoding key data and the necessary information of key value data and this information of coding among step S380 from key data encoder 200 and key value data encoder 300.
Hereinafter, the structure and the operation of analyzer 40, key data encoder 200 and key value data encoder 300 will be described in greater detail with reference to the attached drawings.
Fig. 4 A has provided the block diagram of an example of analyzer 40 according to the first embodiment of the present invention.Even operational analysis device 40 is at the important (x of key value data, y, z and θ) on can carry out extraction with the key data that is encoded and the processing of key value data, this is handled among the figure below, for convenience of description in the component of taking into account critical word Value Data (directed interpolater) only.
With reference to figure 4A, according to the first embodiment of the present invention, this analyzer comprises a resampling device 43, a breakpoint withdrawal device 42 and a selector 41.Again adopt device based on the directed interpolater of an input, one first animation path is sampled into a plurality of parts at the interval with scheduled time amount and the animation path of being sampled is outputed in a key encoder 200, a key value encoder 300 and the heading code device 400.This breakpoint withdrawal device 42 extracts the breakpoint of a minimum, by this operation, error between first animation path and one second animation path that generates based on the breakpoint that extracts from first animation path can prevent to surpass a predictive error limit, and will extract breakpoint and output in key data encoder 200, key value data encoder 300 and the heading code device 400.This selector 41 responses one external input signal will be imported directed interpolater and output in resampling device 43 or the breakpoint withdrawal device 42.Breakpoint withdrawal device 42 comprises a linear interpolation 42a, an Error Calculator 42b and a determining unit 42c.
Fig. 5 A has provided the operational flowchart of analyzer 40 according to first embodiment of the invention.With reference to figure 5A, selector 41 receives necessarily to an interpolater and a setting signal from the outside at step S325.This setting signal comprises a generation method configuration information of the method that is used for determining the key data that will be encoded and key value data and is used for being identified for generating a generate pattern configuration information with the pattern of decoded key data and key value data.
Duan Luzhong at first below describes the pattern that is used to generate key data and key value data.
Analyzer 40 reduces key data and the key value data volume that will be encoded by the certain quantity of key frames to interpolater that reduces to be input to wherein.According to a mode initialization signal of importing from the outside wherein, suppose that analyzer 40 has an animation path preservation mode or an animation keyword preservation mode.
In an animation path preservation mode, necessarily only be used to describe the interpolation of an animation path to interpolater, and needn't the arbitrary access key frame.For efficient coding in the animation path preservation mode necessarily to interpolater, removable in a predictive error scope with animation path coexistence necessarily to the key data of interpolater and with the corresponding key value data of this key data.
On the other hand, in an animation keyword preservation mode, using MPEG-4 BIFS order, is necessary as ' replace ', ' delete ' or ' insert ' arbitrary access key frame.In animation keyword preservation mode, can not change necessarily quantity to the key data of interpolater.Animation path preservation mode and animation keyword preservation mode will be described below in more detail.
Again with reference to figure 5A, selector 41 selects to be used to generate the key data that will be encoded and the pattern of key value data after importing a generate pattern from the outside.In step S330, selector 41 will be imported directed interpolater and output in the breakpoint withdrawal device 42, if the input generate pattern is an animation keyword preservation mode.If input pattern is an animation path preservation mode, response is a generation method setting signal of input from the outside, and selector 41 will be imported directed interpolater and output in resampling device 43 or the breakpoint withdrawal device 42 together with generating key data and key value data information necessary in step S330.
Especially, under generating the key data and key value data conditions that are encoded by resampling, selector 41 outputs to the quantity (being the time interval) and a generate pattern of key data in this resampling device 43 together with directed interpolater.Under generating the key data and key value data conditions that are encoded by the extraction breakpoint, selector 41 will output to breakpoint withdrawal device 42 at an original animation path with by a critical error and this generate pattern between a path of extracting the breakpoint generation.
In step S335, sampling key data that the animation path that resampling device 43 is generated by the directed interpolater from selector 41 inputs by sampling at a plurality of predetermined time intervals generates and sampling key value data, and breakpoint withdrawal device 42 extracts a minimum breakpoint, by this operation, can prevent to surpass a predictive error limit by an animation path of the directed interpolater generation of input with by the error between an animation path that extracts the breakpoint generation.
Fig. 5 B has provided the operational flowchart of resampling device 43 according to a preferred embodiment of the invention.With reference to figure 5B, resampling device 43 receives from selector 41 in step S502 will be by certain quantity (m) to interpolater and key data of resampling.To can or be set in advance on the predetermined value by any setting of a user by the quantity of the key data of resampling (m).
In step S504, resampling device 43 is selected by the one first path point and a final path point of an original animation path of the directed interpolater generation of input and just is set to 1 by the initial value of this key data of resampling (i).
After this, at step S506, resampling device 43 generates I key data on the interval of a plurality of scheduled times.
Fig. 6 A is the figure that describes original key data and resampling key data.Because this key data of importing directed interpolater is illustrated in the position of a time shaft shangguan key frame, as shown in Figure 6A, key data increases monotonously, and the interval in this key data does not have rule.
Therefore, as shown in Figure 6A, resampling device 43 by by will by the quantity of the key data of resampling divide a difference between the key data that is illustrated respectively in the first path point selected among the step S504 and final path point obtain a plurality of scheduled times one at interval and so resampling will be by the key data of resampling on the interval of a plurality of scheduled times.
In step S508, resampling device 43 by use that original animation path press the generation of linear interpolation resampling with the corresponding key value data of this key data.In other words, with the corresponding key value data of resampling key data use just in time behind the resampling key data with the corresponding key value data of key data and just in time before the resampling key data with the corresponding key value data of key data by linear interpolation.
After this, in step S510, resampling device 43 checking whether carried out on all will be by the key data of resampling that resampling is handled and repeated execution of steps S506 and S508 up to all key datas of resampling and their correspondent keyword Value Data.
Fig. 5 C has provided a kind of method flow diagram that extracts breakpoint according to the first embodiment of the present invention, and Fig. 7 A to 7F has provided according to a preferred embodiment of the invention from necessarily extract the block diagram of each step of breakpoint to interpolater.
With reference to figure 4A, 5C and 7A to 7F, the linear interpolation 42a of breakpoint withdrawal device 42 receives necessarily to an interpolater and a critical error e from selector 41 at step S520 ThBy input a animation path that directed interpolater constituted shown in Fig. 7 A.
In step S522, linear interpolation 42a extracts the first path point Q of the animation path of being made up of the directed interpolater of input 0And final path point Q n, shown in Fig. 7 A, and a counter (i) is set to 1.
In step S524, linear interpolation 42a is at a Q 0With final path point Q nBetween in turn arbitrarily or selective sequential path point.Then, in step S526, linear interpolation 42a utilizes selected path to put linearly the also non-selected path point of interpolation and selected path point and interpolation path point are outputed among the Error Calculator 42b.
In step S528, Error Calculator 42b calculates original animation path and also this error (e) is outputed among the determining unit 42c by the error (e) between candidate's animation path of selecting path point and interpolation path point to be constituted.The method of the error of calculation (e) will be described below.
Error Calculator 42b checks in not by the selected path point of linear interpolation 42a, whether still has the path point that is not considered when the error of calculation (e).If the path point that is not considered when the error of calculation (e) is arranged, Error Calculator 42b is by repeated execution of steps S524 to S528 error between calculating path point and original animation path in step S530.
Fig. 7 C is the figure that describes step S524 to S530.With reference to figure 7C, linear interpolation 42a extracts and moment k at the fixed time 1The corresponding breakpoint Q of key data 1And by the linear interpolation first path point Q 0With breakpoint Q 1Between the path point generate one first candidate's animation path.Error Calculator 42b calculates the error e between original animation path and first candidate's animation path 1After this, in a like fashion, linear interpolation select another breakpoint Qk and by linear interpolation at the first path point Q 0With breakpoint Q kBetween and breakpoint Q kWith final path point Q nBetween the path point generate k candidate's animation path.Error Calculator 42b calculates the error (e between original animation path and k candidate's animation path k).
If step S524 to S530 carried out on all path points of not selected by linear interpolation 42a, original animation path and the error between each candidate's animation path that step S524 to S530 generates are output to determining unit 42c.Then, in step S532, determining unit 42c selects to form a breakpoint of the candidate's animation path with minimal error and original animation path, and counter (i) value is added 1.
In step S534, determining unit 42c checks original animation path and by whether extracting a error (e) between candidate's animation path that breakpoint constitutes greater than critical error e ThAnd whether the value of counter (i) is greater than the i.e. first path point Q of the quantity (n) of key data 0With final path point Q nThe quantity of path point.
If error (e) is less than critical error e Th, all breakpoints that require coding have been extracted in its expression.If final the selection equals " n " as the quantity of the breakpoint that will be encoded, the processing of the breakpoint that extracts all path points is finished in expression.
Yet, if the quantity that extracts breakpoint less than n and error (e) greater than critical error e Th, also there is the breakpoint that will be extracted in this expression, and selected breakpoint is outputed to linear interpolation 42a, and then execution in step S524 to S532.
Hereinafter, Duan Luzhong below will describe when generate pattern is an animation path preservation mode, suppose the data that output to the key value data decoder from resampling device 43 and breakpoint withdrawal device 42.
Resampling device 43 outputs in key data encoder 200 and the key value data encoder 300 key data of sampling and the key value data of sampling respectively as key data that will be encoded and key value data respectively.
Hereinafter, will be described with reference to Figure 8 according to the key data and the key value data of a generate pattern from 42 outputs of breakpoint withdrawal device.
As shown in Figure 8, suppose that final extraction breakpoint is called as 0,3,6 and 8, with breakpoint 0,3,6 and 8 corresponding key datas and key value data select Q-character to be output together with a keyword, as following table as showing.
Table 2
The key data of original path P0 P1 P2 P3 P4 P5 P6 P7 P8
Q-character selected in keyword 1 0 0 1 0 0 1 0 1
The structure of analyzer 40 was described according to the first embodiment of the present invention above.Yet to one skilled in the art, analyzer 40 can only not had selector 41 and resampling device 43 or only do not have selector 41 and breakpoint withdrawal device 42 to form by resampling device 43 by breakpoint withdrawal device 42.
Hereinafter, another example of descriptive analysis device 40 will be come according to a second embodiment of the present invention.
With reference to figure 4B, comprise a resampling device 45 and a breakpoint withdrawal device 46 according to the analyzer 40 of second embodiment of the invention.These resampling device 45 receptions and resampling are necessarily to interpolater.The breakpoint that this breakpoint withdrawal device 46 extracts the directed interpolater of resampling is also exported the key data and the key value data that are encoded.In the second embodiment of the present invention, breakpoint withdrawal device 46 also comprises a linear interpolation 46a, an Error Calculator 46b and a determining unit 46c as in the first embodiment of the present invention.
When necessarily when interpolater is imported in the analyzer 40, resampling device 45 will be become have each other at interval a plurality of predetermined portions of a plurality of scheduled times by the one first animation path resampling that this orientation interpolater is formed.
Resampling device 45 will be outputed to the linear interpolation 46a of breakpoint withdrawal device 46 by the directed interpolater that sampling key data and sampling key value data are formed.
Linear interpolation 46a comes interpolation necessarily also the directed interpolater of this interpolation to be outputed among the Error Calculator 46b to interpolater by the step S522 to S526 that carries out shown in Fig. 5 C.Error Calculator 46b calculates first animation path by execution in step S528 to S530 and by the error between one second animation path that directed interpolater constituted of interpolation.Determining unit 46c selects to cause the path point of the minimal error between first and second animation paths, verifies that whether corresponding error is greater than a critical error e ThAnd whether selected all path points of first animation path and generated the key data and the key value data that are encoded.
As mentioned above, in analyzer 40 according to a second embodiment of the present invention, except that breakpoint withdrawal device 46 receives by necessarily carrying out the processing of extracting breakpoint to interpolater and at an animation path that is being made of the directed interpolater from 45 inputs of resampling device of constituting from the key data of resampling device 45 outputs and key value data, resampling device 45 and the operation of breakpoint withdrawal device 46 are identical with the operation of corresponding assembly in the first embodiment of the present invention.
Hereinafter, a third embodiment in accordance with the invention is come an example of descriptive analysis device 40 with reference to figure 4C.
With reference to figure 4C, analyzer 40 comprises a breakpoint withdrawal device 48, it receives necessarily to interpolater, extract breakpoint and import key data and the key value data from one first animation path that constitutes by this orientation interpolater, and a resampling device 49, its in predetermined time interval sampling by comprising from the key data of breakpoint withdrawal device 48 inputs and one second animation path that necessarily constitutes of key value data to interpolater.Breakpoint withdrawal device 48 with the same in first and second embodiment of the present invention, also comprises a linear interpolation 48a, an Error Calculator 48b and a determining unit 48c.
Breakpoint withdrawal device 48, the same with in the first embodiment of the invention, the key data and the key value data that will be extracted from first animation path output in the resampling device 49.
Resampling device 49 at the fixed time at interval resampling by comprise the key data imported from breakpoint withdrawal device 48 and key value data necessarily to a animation path that interpolater constituted and output with the key data and the key value data that are encoded.Therefore the function of resampling device 49 no longer is repeated in this description here with identical in first and second embodiment of the present invention.
Key data and key value data from analyzer 40 outputs in first to the 3rd embodiment of the present invention are outputed to key data encoder 200 and key value data encoder 300 respectively.
Hereinafter, the structure and the operation of key data encoder 200 will be described with reference to figure 9A to 12J.
Fig. 9 A has provided the block diagram of a key data encoder according to a preferred embodiment of the invention.With reference to figure 9A, a key data encoder 200 comprises a linear keyword encoder 900, a quantizer 910, a DPCM processor 920, a shift unit 930, one folding processor 940, a DND processor 950 and an entropy coder 960.
Linear keyword encoder 900 is identified in a linear part and this part of encoding that increases of the inner key data of whole key data scope.Quantizer 910 utilizes a quantization method of energy minimization one quantization error to quantize to be input to wherein key data.DPCM processor 920 receives the differential data that quantizes key data and generate key data.Shift unit 930 deducts a differential data that has peak frequency in all differential datas from differential data.Folding processor 940 is sent to a positive number district or a minus zone with all differential datas.DND processor 950 by carry out one divide operation carry out selectively then a cutting operation or downwards cutting operation reduce the scope of the differential data of key data.Entropy coder 960 uses a function S ignedAAC or UnsignedAAC to come the code differential data on each bit plane.
Hereinafter, the operation of key data encoder 200 will be described in more detail with reference to figure 10A.Figure 10 A is the flow chart of the method for encoding keyword data according to a preferred embodiment of the invention.When key data being input to a device that is used for encoding necessarily to interpolater, the quantity of the quantity of information such as key data and the numeral of each key data is imported in the heading code device 400 and is encoded.In step S9000, linear keyword encoder 900 in this input key data, search sometime at interval in a zone of storage key frame, key data has identical difference, and the linear change of key data, and the linear segment of being searched is at first encoded.
Famous 3D application software as 3DMax or Maya, utilizes the keyword have predetermined time interval between the specific region to generate key frame based on animation.In this case, might be easy to use the beginning of a linear keyword data region and end key data and the quantity of key frames that is present between them is come encoding keyword data.Therefore, linear prediction is very useful to the keyword that uses a finder to be coded in a certain zone.
Following equation is used for linear prediction.
t ( i ) = t E - t S E - S + t s ( 0 &le; i &le; E - S , S < E ) &CenterDot; &CenterDot; &CenterDot; ( 4 )
Here, t SThe data of representing the keyword that a part of range of linearity begins, t ERepresent the data of the keyword that finish in this partial linear zone, S represents t SAn index, and E represents t EAn index.Actual key data from S key data to the specific region of E key data and can calculate with following equation with the error the key data of equation (4) linear prediction.
e i = t ( i ) - t i + s = t E - t S E - S i + t S - t i + s &CenterDot; &CenterDot; &CenterDot; ( 5 )
If the maximum in the error of using equation (5) to calculate is not more than a predictive error limit, t iCan be considered at zone [t S, t E] or in a certain error range conllinear.Use following equation (6) can determine worst error value t iWhether with the specific region conllinear.
E p = MAX i = 0 , &CenterDot; &CenterDot; &CenterDot; ( E - S ) | e i | = MAX i = 0 , &CenterDot; &CenterDot; &CenterDot; ( E - S ) | t E - t S E - S i + t s - t i + s | &CenterDot; &CenterDot; &CenterDot; ( 6 )
If E p &le; 1 2 nBits + 1 , t iBe and zone [t S, t E] conllinear.At this moment, the quantity of the nBits position representing to be used to encode.
If linear keyword encoder 900 is searched the partial linear zone, the beginning and the end key data of partial linear keyword data region are outputed in the floating number transducer 905.The quantity that is included in the keyword in the linear keyword data region is output in the heading code device 400 and is encoded.Use uniform enconding might reduce the data volume that to be encoded considerably.
Use the floating number conversion to encode and begin key data and end key data, this will be described below.
Floating number transducer 905 will convert the decimal system to the key data of binary representation so that coding beginning key data and end key data.
One computer is stored as 32 bits with floating number.If provide the floating number with binary representation, floating number transducer 905 converts floating number to a metric mantissa and an index, and this processing is represented with following equation.
Figure S06175350X20060420D000203
For example, a floating number 12.34 can convert binary to a computer, and is as follows.
0? 10001010111000010100011? 10000010
1 2 3
1: Q-character
2: binary mantissa
3: binary index
Binary can be converted to a decimal number with equation (7), as follows.
0? 1234? 2
1 2 3
1: Q-character
2: metric mantissa
3: metric index
For in a bit stream, comprising a metric mantissa and an index, must be calculated as expression this mantissa and index and the quantity of required position.Therefore index has the value at-38 to 38, can represent it and Q-character thereof with 7.For the quantity of the required position of expression mantissa is decided by figure place.Mantissa value and for the expression mantissa required the position quantity as shown in the table.
Table 4
Mantissa value The numeral of mantissa The quantity of the position that requires
0 0 0
1-9 1 4
10-99 2 7
100-999 3 10
1000-9999 4 14
10000-99999 5 17
100000-999999 6 20
1000000-9999999 7 24
Encode in the following encoding process shown in Figure 10 B and to utilize above-mentioned processing to search beginning and end key data with the linear keyword data region of changing, and output to message coding device 400, and in this bit stream, store.
Figure 10 B is illustrated in a processing of two inputs of coding floating number of carrying out in the floating number transducer 905.The method of floating number transducer 905 codings one floating number is described with reference to figure 10B.
Floating number transducer 905 receives the K that counts the number of words of original key data, beginning key data S and end key data E dAnd in step S9040, will change them with equation (7).
Floating number transducer 905 S that at first encodes.Specifically, the floating number transducer 905 digital number whether difference and the K that check S dIf digital number and the K of S dDifference obtains the digital number of S and outputs to heading code device 400 in step S9042.Utilize function Digit (), floating number transducer 905 obtains the digital number of S.
Digital number if the digital number of S greater than 7, uses a plurality of pre-determined bit (in the present invention, using 32 with a floating number mode of IEEE754 standard) that S is outputed to the heading code device in step S9043 with energy S is included in this bit stream.
In step S9100, quantization error minimize that method that device 915 is used to control a quantizing range quantizes in advance or this input key data of re-quantization so that this quantization error of energy minimization.
Specifically, if a mixing maximum that is used to quantize represents that with Max a minimum value that is used to quantize to be controlled is represented with Min, an input value X iExpression, and the quantity of the position that is used to quantize represents that with nQuantBit the equation below that youngest can use obtains one and quantizes input value One re-quantization value
Figure S06175350X20060420D000222
An and error e i
X ~ i = floor ( X i - Min Max - Min * ( 2 nQuantBit - 1 ) + 0.5 ) &CenterDot; &CenterDot; &CenterDot; ( 8 )
X ^ i = X ~ i * ( Max - Min ) ( 2 nQuantBit - 1 ) + Min
e i = X i - X ^ i
There are two kinds to be used for minimum error and ∑ e iMethod.A kind of method is to reduce the method for sum of errors till sum of errors minimizes by continuous control Min.Another is as follows down.
At first, suppose X i=(i+n) Δ X+ ε i, X wherein iExpression one input key data sequence, Δ x represents to import the basic step-length of data, and n is an arbitrary integer, and ε iExpression zero mean random noise.
Then, work as di=X i-X I-1=Δ X+ (ε iI-1) time, Δ ' x=E[d i] and Min=Max-Δ ' x* (2 NQuantBit-1).
Min can make and minimize a quantization error and become possibility, and Max can be imported in the quantizer 910 and is used to the quantification of key value data.
Quantizer 910 receives the Min of minimum and maximum value Max and energy minimization one quantization error also with following equation (9) quantized key digital data fKey in step S9200 i
nQKey i = floor ( fKey i - fKeyMin fKeyMax - fKeyMin ( 2 nKeyQBit - 1 ) + 0.5 ) &CenterDot; &CenterDot; &CenterDot; ( 9 )
Here, i represents an index of quantized key digital data, nQkeyi represents an integer array of quantized key digital data, fKeyi represents a floating number array of quantized key digital data, fKeyMax represents to minimize from quantization error a maximum of device 915 inputs, fKeyMin represents to minimize from quantization error a minimum value of device input, and nKeyQBit represents a quantization step.In equation (9), function f loor (v) is the function that output is not more than the maximum integer of a certain floating point values v.
Quantizer 910 of the present invention may not use this arithmetic that is used to reduce a quantization error, and in this case, the simple minimum and maximum value fKeyMax and the fKeyMin that import in the key data of using carries out quantification.
With reference to figure 10C quantification treatment of the present invention is described more fully.
Quantizer 910 receives key data and checks minimum and maximum value MAX and whether MIN minimizes input the device 915 from quantization error in step S9220 in step S9210.
If input MAX and MIN, quantizer 910 is provided with MAX and the MIN that minimum and maximum value fKeyMax and fKeyMin be used separately as quantification and also newly-installed minimum and maximum value fKeyMax and fKeyMin is outputed in the floating number transducer 905 in step S3230.By above-mentioned floating number conversion method change and encode minimum and maximum value fKeyMax and fKeyMin and output in the heading code device 400 so that they can be included in the keyword title that is used in the coding.
If void value minimizes input the device 915 from quantization error, in step S9240, quantizer 910 is provided with the first key data fKey 0With final key data fKey N-1Respectively as minimum fKeyMin and maximum fKeyMax.If maximum fKeyMax is not less than 1 or be not more than 0, with minimum and maximum value fKeyMax with fKeyMin outputs in the floating number transducer 905 and by above-mentioned floating number conversion method conversion with encode.Then, in step S9260, be converted and the minimum and maximum value fKeyMax and the fKeyMin that encode are included in the keyword title so that they can be used in the decoding.
On the other hand, if maximum fKeyMax less than 1 and minimum value fKeyMin greater than 0, checklist shows whether minimum and maximum value fKeyMax and fKeyMin will be included in the flag bit in the keyword title that just is being used in the decoding in step S9270.If this flag bit is set up so that minimum and maximum value fKeyMax and fKeyMin can be included in the keyword title, execution in step S9260 is so that minimum and maximum value fKeyMax and fKeyMin can be output in the heading code device 400.If flag bit is not set up, quantizer 910 does not allow minimum and maximum value fKeyMax and fKeyMin are included in the keyword title.
Under minimum and maximum value fKeyMax and fKeyMin are not included in situation in the keyword title, key data encoder and key data decoder be assumed to be carry out coding and decoding respectively, minimum and maximum value fKeyMax and fKeyMin are set to 1 and 0 respectively.In this case, in step S9280, minimum and maximum respectively value fKeyMax of quantizer 910 and fKeyMin are set to 1 and 0.Concerning the key data decoder minimum and maximum value fKeyMax and fKeyMin known so that they do not need to be included in the keyword title.
In step S9290, quantizer 910 is by quantizing to import key data in the minimum and maximum value fKeyMax that will be provided with by above-mentioned processing and the fKeyMin substitution equation (9) and the quantized key digital data being outputed in the DPCM processor 920.
DPCM processor 920 receives and quantizes key data and carry out DPCM in a plurality of scheduled times on the quantized key digital data.Then, the number of times of DPCM processor 920 output DPCM, by this operation, in discrete program, obtain a minimum value and the inside key data that obtains in the cycle at each DPCM in heading code device 400.In step S9300, DPCM processor 920 will be outputed in the shift unit 930 by the differential data that DPCM generates.
With reference to figure 10D, in step S9310, DPCM processor 920 is imported the number of times of the quantity in the cycle of carrying out DPCM on the key data and storing DPCM as DPCM in a plurality of scheduled times.In a preferred embodiment of the present invention, DPCM can be performed three times.
After this, in step S9250, quantizer 910 check maximum fKeyMax whether less than 1 greater than 0 and minimum value be that fKeyMin is not greater than 0.Here, dispersion can be used interquartile range by discrete, standard deviation or interquartile range and in a preferred embodiment of the present invention.
Then, DPCM processor 920 is selected the DPCM cycles, can obtain a minimum bit in the dispersion by this DPCM cycle, and the result of DPCM number selecting is outputed in the shift unit 930.The DPCM cycle of selecting, the inside key data and the desired out of Memory of DPCM in each DPCM cycle all are output in the title decoder 400 in step S9330.Yet, in a preferred embodiment of the present invention, if the quantity of keyword less than 5, is only carried out DPCM once.For example, the period 1 of DCPM carries out with equation (10).
Δ i=nQkey i+1-nQkey i…(10)
Here, i represents an index of quantized key digital data, nQKey iRepresent an integer array, and Δ iThe expression differential data.
DPCM processor 920 be calculated as encoding D PCM selection cycle the result and in step S9340 a predetermined memory (among the nQStep_DPCM0 by the differential data of the key data that DPCM generated the quantity of required position.Also can carry out in afterwards the selection step with the key data that is encoded for the quantity Calculation of the required position of encoding, this is apparent to one skilled in the art.
Shift unit 930 selects to have a differential data (hereinafter, being called a pattern) of highest frequency from the differential data of DPCM processor input.Then, shift unit 930 in step S9400, from all differential datas, deduct this pattern in case most of data arrangement that will be encoded in 0 cycle and can be reduced to and encode and the quantity of required position.
By deducting a pattern nKeyShift the quantized key digital data from all, carry out this shifting function, represent with following equation.
shift(nQKey i)=nQkey i-nKeyShfft …(11)
Here, i represents an index of quantized key digital data, and nQKeyi represents an integer array, and nKeyShift represents a mode value.As the result of this shifting function, the differential data with highest frequency becomes 0 and encodes and the quantity of required position so that can be reduced to considerably.
Key data by shifting function is output in folding processor 940 and the DND processor 950, and mode value nKeyShift is output to heading code device 400 so that be included in the keyword title.
In step S9500, folding processor 940 is carried out a folding operation and the result of folding operation is outputed in the DND processor 950 in the output of shift unit 930.
Folding operation is used to count the scope that reduces the extensive differential data that disperses on a positive number zone and a negative zone in the zone by they being focused on plus or minus.In embodiments of the present invention, folding operation is carried out to concentrate this differential data in the positive number zone with equation (12).
fold(nQKey i)=2·nQKey i (nQKey i≥0) …(12)
=2|nQKey i|-1 (nQKey i<0)
Here, i represents an index of quantized key digital data, nQKey iRepresent an integer array.As the result of folding operation, the positive differential data are converted into even number, and the minus tolerance divided data is converted into odd number.
Folding processor 940 is calculated as the quantity of the position required to encoding through the differential data of folding operation and it is stored in a predetermined memory nQStep_fold.In this step, the quantity Calculation of the required position of encoding can be carried out after the selection of back will be by the step of the differential data of entropy coding, and this will be readily apparent to persons skilled in the art.The data that generate by the folding operation in folding processor 940 are exported to DND processor 950.
For improving the efficient of entropy coding, DND processor 950 is carried out a DND and is operated a pre-determined number on the input difference data of key data, thereby reduces the scope of differential data in step S9600.
With reference to figure 9B, DND processor 950 comprises movement operator 956 on a DND operator 952, the one first differential data selectors 954,, and one second differential data selector 958.This DND operator 952 is carried out DND operation on differential data.This first differential data selector 954 is selected based on the quantity of the position that is used to encode will be by the differential data of entropy coding.Should go up movement operator 956 and move operation in the execution one on the differential data of operating by a DND.This second differential data selector 958 is from only having the differential data by the DND operation and selecting to have one of low dispersion and selected differential data outputed to entropy coder 960 by the differential data that moves operation.
The DND operation that to carry out in DND operator 952 is described below.
When the differential data by folding operation is imported in the DND operator 952 in folding processor 940, they are divided into two groups, and the one group of differential data that has a higher range than another differential data group is moved in the positive number zone by a division function.Partition function is defined by following equation.
div ide ( nQKe y i , nKeyMax ) &CenterDot; &CenterDot; &CenterDot; ( 13 )
= nQ Key j - ( nKeyMax + 1 ) ( nQ Key j > nKeyMax 2 )
= nQ Key j ( nQ Key j &le; nKeyMax 2 )
Here, j represents an index of input difference data, and nQKeyj represents an integer array, and nKeyMax represents by the maximum between the differential data of folding operation.Especially, under the situation that most of differential datas are filled thick and fast along the border in the whole zone that all differential datas take, use this division operation might reduce the whole zone of all differential datas considerably.
After division operation, calculate dispersion, in this case, the size of the required position of encoding is used as a tolerance of dispersion so that a minimum value of the size of the position that selection is used for encoding.
After DND operation, dissimilar DND operations is promptly drawn operation on one or is drawn operation once and further carried out.According to the size of a negative scope of the size of a positive scope of differential data and differential data, determine further to carry out and draw operation on one and still draw operation once.
If have on the occasion of the scope of differential data greater than the scope of differential data with negative value, carry out and draw operation once by following equation definition.
div ide - dwon ( nQKey j , nKeyMax ) &CenterDot; &CenterDot; &CenterDot; ( 14 )
= - 2 ( nKeyMax - nQKey j + 1 ) + 1 ( n QKey j > nKeyMax 2 )
= n QKey j ( 0 &le; nQKey j &le; nKeyMax 2 )
= 2 &CenterDot; n QKey j ( nQKey j < 0 )
On the other hand, if having on the occasion of the scope of differential data greater than the scope of differential data with negative value, carry out by following equation definition one on draw operation.
div ide - up ( nQKey j , nKeyMin ) &CenterDot; &CenterDot; &CenterDot; ( 15 )
= nQ Key j ( nQKey j &GreaterEqual; 0 )
= 2 &CenterDot; nQKey j ( nKeyMin 2 &le; nQKey j &le; 0 )
= 2 ( nKeyMin - nQKey j - 1 ) + 1 ( nQKey j < nKeyMin 2 )
In equation (14) and (15), j represents an index of quantized key digital data, nQKey jRepresent an integer array, nKeyMax represents nQKey jA maximum, and nKeyMin represents nQKey jA minimum value.
The operation of DND operator 952 is described below with reference to Figure 10 E.
When from the differential data of folding processor 940 input key datas, DND operator 952 obtains maximum nKeyMax and the minimum value nKeyMin between the input difference data in step S9610.Then, in step S9620, the DND operator compares the absolute value of nKeyMax and the absolute value of nKeyMin.If nKeyMax is not less than the absolute value of nKeyMin, DND operator 952 nKeyMax in step S9622 is set to the maximum in the current period of DND operation.
Whether the number of times that DND operator 952 is checked the DND operation is 1, in other words, if the number of times of DND is 1, in step S9624, if it is that then DND operator 952 is passed through will come in the maximum nKeyMax substitution equation (13) to carry out one on the input difference data in step S9630 to divide operation.
After this, in step S9640, use function getQBit (), the size of the position of the differential data scope that DND operator 952 is used the division operation measurements to be used to encode to be reduced.In step S9650, if the number of times of DND operation becomes 1, the size of the required position of encode is stored as a value nQBitDND of the size of the minimum bit that expression is used to encode, and the number of times of in step S9655 DND being operated adds 1.
Then, DND processor 952 execution in step S9610 to S9622 once more.If the number of times of DND operation is not 1 in step S9624, then in step S9634, DND operator 952 is drawn operation by maximum nKeyMax substitution equation (14) is carried out.In step S9640, DND operator 952 calculate be used to encode by following the stroke differential data of operating quantity.If the minimum value nQBitDND that this quantity is stored in the operation cycle less than DND formerly, in step S9658, after the DND operation, its replaces the size of the position that requires the minimum that is used to encode.
If in step S9620, the absolute value of minimum value nKeyMin seems greater than the absolute value of maximum nKeyMax, in step S9623, maximum in the cycle of current DND operation is updated to a minimum value, then, in step S9628, by drawing operation on one with carrying out in the minimum value nKeyMin substitution equation (15).After this, DND operator 952 is calculated the quantity of the position of the differential data of drawing operation on passing through of being used to encode in step S9640.In step S9652, if result of calculation becomes the nQBitDND that stores in the operation cycle less than DND formerly, in step S9658, after the DND operation, its replaces the minimum number nQBitDND that requires the position that is used to encode.
DND processor 952 is carried out the DND operation of pre-determined number, and the quantity of the performance of DND operation can change.For example, in embodiments of the present invention, carry out 7 DND operations.DND operator 952 outputs in the first differential data selector 954 with nQBitDND with the corresponding differential data of nQBitDND.DND operator 952 will output in the heading code device 400 and allows them to be included in the bit stream by its DND number that generates the respective differences divided data.
The first differential data selector 954 receives differential data through shifting functions, through the differential data of folding operation and through the differential data of DND operation and determine in three at them will be by the differential data of entropy coding.
With reference to figure 10A, in step S9710, if the minimum number nQBitDND in DND operation back for the required position of encoding is not less than the big or small nQBitDND that is used to encode after step S9700DPCM operation, then the first differential data selector 954 is selected the result of DPCM and carry out a shifting function on them.Then, the first differential data selector 954 is exported to the result of displacement operation entropy coder 960 and is allowed and encode them in step S9710.In this case, the number of times of DND operation is set to-1, is output to heading code device 400 and is included in the keyword title.
Yet, if in step S9720, occur nQBitDND less than nQStep-DPCM and be not less than behind folding operation, be used to encode the position size, the first differential data selector 954 will output in the entropy coder 960 through the differential data of folding operation and in step S9730, allow entropy coding they, in this case, the number of times of DND operation is set to 0, output to heading code device 400, thereby be included in the keyword title.
If it is minimum being used for the quantity of the position of code differential data after the DND operation, the first differential data selector 954 will output in the movement operator 956 through the differential data of DND operation, then in step S9740 on movement operator 956 calculate first dispersion of the differential data of importing from the first differential data selector 954.Then, last movement operator 956 is moved to operate and fall into a trap at step S9810 on step S9800 carries out with following equation definition on through the differential data of DND operation and is counted the result's who moves operation second dispersion in.
shift-up(nQKey j,nkeyMax)…(16)
=nQKey j (nQKey j≥0)
=nKeyMax-nQKey j (nQKey j<0)
Here, j represents an index of the differential data of quantized key Value Data, and nQKeyj represents an integer array, and nKeyMax represents the maximum between differential data.
When moving the differential data of operation on the differential data of importing process DND operation and the process, in step S9900, the second differential data selector 958 compares first dispersion and second dispersion.If second dispersion is less than first dispersion, the second discrete data selector 958 will through on move operation differential data output to entropy coder 960 and in step S9910, allow entropy coding they.958 outputs of the second differential data selector are used in minimum and maximum value nKeyMax and the nKeyMin in the DND operation.In a preferred embodiment of the present invention, standard deviation can be used as a tolerance of first and second dispersions.
Entropy coder 960 is carried out two different functions according to the characteristics of differential data on differential data.For example, through the differential data of a DPCM operation and a shifting function and only have positive and negative values through a differential data of dividing operation, so its requires to carry out a processing of the Q-character and the differential data itself of each differential data of coding.On the other hand and since through the differential data of a folding operation only have on the occasion of, carry out an only processing of code differential data.
In a preferred embodiment of the present invention, Function e ncodeSignedAAC is used to code differential data and their Q-character, and Function e ncodeUnsignedAAC is used to only code differential data.
Figure 11 is the figure of the example of Function e ncodeSignedAAC ().With reference to Figure 11, when an input value is 74 and the quantity of the position of this input value that is used to encode when being 8, its Q-character is 0, and it is identical with binary number 1001010.Q-character and all bit planes are encoded with following method.
The first step: on each bit plane, press sequential encoding binary from its highest significant position (MSB) to its least significant bit;
Second step: check whether the current position that just is being encoded is 0;
The 3rd step: if the current position that just is being encoded is not 0, the Q-character of this binary number of then encoding; And
The 4th step: all the other positions of this binary data of encoding;
Use the environment relevant with these values, these values that Function e ncodeUnsignedAAC will not have a Q-character are encoded into an adaptive arithmetic code bit stream.This function is except that existing a Q-character context (sign context), and almost and function encodeSignedAAC () is identical.
Figure 12 A to 12J is according to a preferred embodiment of the invention, and expression is through the figure of the key data of operation.At Figure 12 A to 12J, X-axis is represented the index of each key data, and Y-axis is represented the value of key data.
Figure 12 A is the figure that expression is input to the original key data in the encoder of the present invention.Key data shown in Figure 12 A is output in the quantizer 910, is quantized with 9 quantization then so that obtain quantized key digital data shown in Figure 12 B.If on the quantized key digital data shown in Figure 12 B, carry out DPCM, obtain the differential data shown in Figure 12 C.
Then, use and to be about a mode value of 7 and to be shifted the differential data of this quantized key digital data so that obtain differential data shown in Figure 12 D.After this, if on the shift differential data, carry out a folding operation, obtain shown in Figure 12 E only be on the occasion of data.
The result who carries out DND operation on the folded data shown in Figure 12 E is shown in Figure 12 F to 12H.Specifically, on folded data, carry out one and divide the result of operation shown in Figure 12 F.Shown in Figure 12 F, positive key data value scope from 0 to 28, negative key data value scope from-28 to 0, the scope of the negative key data value of this expression is greater than the scope of positive key value data.Therefore, stroke operation on is being carried out in requirement on the data shown in Figure 12 F, and goes up stroke result of operation shown in Figure 12 G.
As the result of last division operation, reduced the scope of negative key data value considerably so that it is much smaller than the scope of positive key data value.In the following one-period of DND operation, on the result of last stroke of operation, carry out and draw operation.Figure 12 H carries out the result who draws operation on the differential data that is illustrated in shown in Figure 12 G.Moving the result of operation shown in Figure 12 I in the execution one on the key data shown in Figure 12 H.
Shown in Figure 12 A to 12G, reduce the scope of key data and differential data gradually.Yet, shown in Figure 12 H and 12I, last scope of moving the differential data that operation back increases greater than last move operation before, this expression shown in Figure 12 H, is the differential data of will finally be encoded, through the differential data of division operation shown in Figure 12 J.
In heading code device 400 coding and in the keyword title canned data as described below.
When input during with the key data that is encoded, the counting the number of words and number of keyword of the key data that heading code device 400 codings will coding.Then, heading code device 400 receives the information of the relevant quantity that whether has the linear keyword data region of the input key data being encoded through linear keyword and a key data this linearity keyword data region and receives the beginning and the end key data of the linear key data of changing through floating numbers from floating number transducer 905 from linear keyword encoder 900.
Receive at the floating number transducer and can bring the minimum and the maximum of a minimum quantization error and they are converted under the situation of floating number, the minimum and maximum value of conversion is input to heading code device 400 from floating number transducer 905 so that they can be used for re-quantization once more.In addition, the size of quantization also can be imported in the heading code device 400 and be included in the keyword title.
Keyword heading code device 400 receives the number of times of DPCM and the inside key data each DPCM circulation and receives a mode value that has been used for a shifting function from shift unit 930 from DPCM processor 920.In addition, heading code device 400 receives the relevant information of moving operation and DND number of whether having carried out from DND processor 950, by this operation, can reduce the dispersion of differential data, and in the minimum and maximum value of each DND in the operation cycle.
At last, the heading code device receives the quantity of the position that is used to encode and it is encoded to a keyword title from entropy coder 960.
Hereinafter, with reference to figure 13A to 20B, the structure and the operation of a key value data encoder 300 are described more fully according to the first embodiment of the present invention.
Figure 13 A is the block diagram according to a key value data encoder 300 of first embodiment of the invention.With reference to figure 13A, key value data encoder 300 comprises a rotation DPCM operator 1300, one circulation DPCM operators, an entropy coder 1450, and a heading code device.Rotation DPCM operator 1300 is calculated the rotation difference value between the rotation transformation value of an object in key frame continuously, and the hypercomplex number key value data of key frame are applied on their objects separately, quantize this rotation difference value, and difference value is rotated in output.This circulation DPCM operator is quantizing to carry out a linear DPCM or circulation DPCM operation on the rotation differential data selectively.This entropy coder 1450 pairs of rotations DPCM or circulation DPCM rotation differential data carry out the entropy rotation.This heading code device is encoded to the required information of key value data of the animation interpolater node that decoding encoded.
Rotation DPCM encoder 1300 comprises one first quaternion multiplier, 1310, one quantizers, 1340, one inverse quantizers, 1350, one second quaternion multiplier 1370, and a delayer 1390.This first quaternion multiplier 1310 calculate a rotation transformation value of an object of key frame before and in a current key frame one between a rotation transformation value of this object rotate difference value, the rotation transformation value hypercomplex number of this object by will be in current key frame multiply by the rotation conversion value of this object in preceding key frame.The rotation differential data that this quantizer 1340 is imported from first quaternion multiplier 1310 by nonlinear quantization generates the quantification differential data.This inverse quantizer 1350 has quantized to rotate the recovery rotation differential data that differential data generates this object in current key frame by re-quantization.The rotation difference value hypercomplex number of this object of this second quaternion multiplier 1370 by will be in current key frame multiply by the rotation transformation value of restoring this object in current key frame by the rotation rotation transformation value of this object in preceding key frame that differential data calculated that adds up.This delayer 1390 is when the rotation transformation value of this object of input in next key frame, and the recovery rotation transformation value of this object that will be in current key frame outputs to first quaternion multiplier.
Hereinafter, will a rotation DPCM operation of carrying out according to of the present invention be described in more detail in a rotation DPCM operator.
In a linear DPCM method that in conventional MPEG-4 PMFC, has adopted, come computational chart to be shown in a hypercomplex number rotation transformation value Q of the rotation transformation (or being illustrated in the degree that an object in the current key frame is rotated conversion) of an object in the current key frame with following equation (17) 1(Q 1=(q 1,0, q 1,1, q 1,2, q 1,3)) be illustrated in a hypercomplex number rotation transformation value Q of the rotation transformation of this object in next key frame 2(Q 2=(q 2,0, q 2,1, q 2,2, q 2,3)) between a difference value.
Q linearDPCM=(q 1,0-q 2,0,q 1,1-q 2,1,q 1,2-g 2,2,g 1,3-q 2,3)...(17)
Yet linear DPCM method is only calculated the difference value between quaternion components, and this can not reflect any significant rotation difference value, i.e. the rotation difference value of a reality.Therefore, linear DPCM method can not reduce the redundancy between the continuous key value data that will be encoded effectively.In addition, in linear DPCM method, except that having peaked one-component, three components of the hypercomplex number of encoding.Therefore, be necessary to be coded in addition the long letter breath of 2 bits on this one-component that is not encoded, and the long letter breath of this 2 bit is sent to a decoder from an encoder.
For utilizing conventional linear DPCM method to solve the problems referred to above by reducing the redundancy between continuous key value data, according to the first embodiment of the present invention, the key value data encoder provides the DPCM operation of a rotation, wherein considers actual rotation difference value.
When
Figure S06175350X20060420D000321
Represent a base vector, this base vector is illustrated in a reference position of the object in the current key frame, Expression is worked as key value and is equaled k I-1The time the key value data, and Obtain by the object of rotation transformation in current key frame
Figure S06175350X20060420D000324
A displacement vector, the rotation transformation in a space of quaternions can be represented with following equation.
Y i - 1 = Q i - 1 &times; X 0 &times; Q i - 1 * . . . ( 18 )
In equation (18), X 0, Y I-1, Q I-iAnd Q I-1 *Expression respectively
Figure S06175350X20060420D000326
Figure S06175350X20060420D000327
Figure S06175350X20060420D000328
And
Figure S06175350X20060420D000329
Unit quaternion (unit quarternion).In addition, Q I-1 *Expression Q I-1A hypercomplex number complex conjugate, and * expression hypercomplex number multiplication.
In this way, equal k when key data iThe time, the rotation transformation in a space of quaternions can be represented with following equation.
Y i = Q i &times; X 0 &times; Q i * . . . ( 19 )
Available following equation (20) calculates the rotation difference value between the continuous rotation transformation value of continuous key value data.
Y i = Q i &times; X 0 &times; Q i * = Q i &times; Q i - 1 * &times; Y i - 1 &times; Q i - 1 &times; Q i * = Q i &times; Y i - 1 &times; Q i * . . . ( 20 )
Therefore, can define a rotation difference value by the following equation of deriving by equation (5) and (6).
Q &CenterDot; i = Q i &times; Q i - 1 * . . . ( 21 )
For preventing that the quantization error from expanding to next rotation difference value, according to one embodiment of the invention, key value data encoder 300 utilizes one in rotation transformation value in next key frame and the preceding key frame to restore the rotation transformation value Redefine this rotation difference value, as shown in equation (22) by equation (21) definition.
Q &CenterDot; i = Q i &times; Q ^ i - 1 * . . . ( 22 )
Hereinafter, will a kind of method that is used for according to first embodiment of the present invention coding key value data be described with reference to figure 13B.Figure 13 B is used to encode the method for key value data according to the first embodiment of the present invention.
According to the first embodiment of the present invention, the key value data encoder receives number, an entropy coding pattern and key value data DPCM time in step S1300.
Then, in step S13050, first quaternion multiplier 1310 receives the key value data Q that represents with a hypercomplex number iAnd check the key value data Q of input iWhether be the first key value data Q 0If the key value data Q of input iBe the first key value data Q 0, expression is not used in the hypercomplex number transformed value that adds up of hypercomplex number multiplication.Therefore, first quaternion multiplier 1310 will be imported key value data Q iOutput in the quantizer 1340.If input key value data Q iNot the first key value data Qo, in step S13100, by with the recovery hypercomplex number transformed value in the preceding key frame (
Figure S06175350X20060420D000336
Complex conjugate) hypercomplex number multiply by the input key value data Qi that represents by a hypercomplex number transformed value ( ), first quaternion multiplier 1310 is calculated a hypercomplex number difference value It is the difference value between the recovery key value data of the key value data of current key frame and preceding key frame.
In step 13300, quantizer 1340 receives the first key value data Q from first quaternion multiplier 1310 0Or hypercomplex number rotation difference value
Figure S06175350X20060420D000339
And the quantization of using a predetermined quantity quantizes this input.
Because all rotation hypercomplex number difference values represent that by unit quaternion a norm of a hypercomplex number of expression one rotation difference value is always 1.Therefore, the component in four components of a hypercomplex number that is not encoded can use other three components to decipher.According to the first embodiment of the present invention, key value data encoder 300 is only encoded in four components of a hypercomplex number three so that with the data volume that is encoded.Therefore, quantizer 1340 only quantizes three components that will be encoded.
According to the present invention, nonlinear quantization carried out by quantizer 1340 rather than general linear quantizes, and describes this reason below with reference to Figure 14 A.
Figure 14 A is the figure of a typical example that is described in the probability distribution function (PDF) in each component of a rotation difference value.Shown in Figure 14 A, the component value of rotation difference value generally concentrates on about 0, and this is called as energy compression and expression might reduce redundancy in the rotation information sheet effectively.Therefore, be quantification rotation difference value, reflect the lower component value of each rotation difference value more fully, need to carry out quantification on than the harmonic component value more perfectly, Here it is is the reason that assorted youngest quantizer 1340 according to the present invention is carried out nonlinear quantizations.At this moment, quantizer 1340 uses an arc tangent curve so that non-linear ratio's factor is distributed to each rotation difference value.
Figure 14 B provides an arc tangent curve that is used to quantize according to the present invention.As shown in Figure 14B, this arc tangent curve provides an appropriate resolution and provides a higher resolution to low input value to higher input value.One non-linear ratio's function of the equation that quantizer 1340 uses are as follows quantizes the rotation difference value in step S13300.
q i ~ = floor ( q i &prime; &CenterDot; ( 2 nQBits - 1 - 1 ) + 0.5 ) ( q i &prime; &GreaterEqual; 0 ) . . . ( 23 )
= - floor ( - q i &prime; &CenterDot; ( 2 nQBits - 1 - 1 ) + 0.5 ) ( q i &prime; < 0 )
( q i &prime; = 4 &pi; &CenterDot; tan - 1 ( q &CenterDot; i ) , i = 1,2,3 , - 1 &le; q &CenterDot; i &le; 1 )
At this moment, Expression is input to each component of the rotation difference value in this quantizer 1340, q i' expression
Figure S06175350X20060420D000345
A ratio value, nQBits represents the quantization of the predetermined quantity that is used to quantize, and floor (x) expression is used for an input value x is transformed into a function of a maximum integer that is not more than x.
Quantizer 1340 is carried out on input rotation difference value and is quantized, and whether the rotation differential data of checking quantification then is corresponding with last key value data that will be encoded.If the rotation differential data after quantizing is corresponding with last key value data, the rotation differential data after this quantizer 1340 will quantize outputs in the circulation DPCM operator 1400.If the rotation differential data after quantizing is not corresponding with last key value data, the rotation differential data after quantizer 1340 will quantize outputs in the inverse quantizer 1350.
In step S13400, inverse DCT 1350 quantizes the rotation differential data after the quantification of quantizer 1340 inputs on the contrary and exports one and restore the rotation differential data among step S1350.
As mentioned above, according to the first embodiment of the present invention, key value data encoder throughput is eliminated three outer components of first component, only three components of a hypercomplex number of coded representation one rotation difference value.One inverse quantizer 2430 of one key data decoder, shown in Figure 21 A, and the inverse quantizer of describing in the above 1350 is assumed to be other one who uses three components of encode to restore not to be encoded in four components that rotate difference value.Because each represents all rotation difference values by a unit quaternion, the norm of a hypercomplex number of expression one rotation difference value is always 1.Therefore, first component that uses following equation to restore in four components that rotate difference value is possible.
q 0 ^ = 1 - ( q ^ 1 2 + q ^ 2 2 + q ^ 3 2 ) ( q 0 ^ &GreaterEqual; 0 ) . . . ( 24 )
In equation (24),
Figure S06175350X20060420D000352
And Three of expression one rotation difference value are restored component, and
Figure S06175350X20060420D000354
Expression uses three to restore component
Figure S06175350X20060420D000355
And
Figure S06175350X20060420D000356
And first component that restores.
For utilizing equation (11) to restore first component , first component
Figure S06175350X20060420D000358
Must have one on the occasion of, and this condition can satisfy by the feature of utilizing a hypercomplex number that is occurred when time in the rotation transformation that a hypercomplex number is applied to the object in a 13D space, and shown in equation (25).
Y=Q×X×Q *=(-Q)×X×(-Q) *...(25)
Equation (25) expression rotation transformation value Q when the object that rotation transformation is applied at a 3d space has identical physical meaning with-Q.Therefore, if according to the first embodiment of the present invention, in key value data encoder 300 one the rotation difference value first component can multiply by by each component that will rotate difference value-1 be converted into easily one on the occasion of.Yet in this case, one restores the quadratic sum of each component that rotates difference value because a quantization error may surpass 1 except that first component.In this case, can not determine by equation (24) And be considered near 0 and less than a value that can be quantized the minimum value that device 1340 quantizes.
Figure S06175350X20060420D0003510
The fact with such value represents that this object is rotated conversion by about 180 degree no better than.Therefore, a device that is used to decipher necessarily to interpolater need be used to determine A kind of method reduce to restore first component value simultaneously Restore component value at three
Figure S06175350X20060420D0003513
And
Figure S06175350X20060420D0003514
On influence, and this method will be applied to the inverse quantizer 1350 that is used for according to the key value data encoder 300 of the first embodiment of the present invention.For example, can multiply by a predetermined integers by the minimum value that quantizer 1340 quantizes can be confirmed as
Figure S06175350X20060420D0003515
Following equation can be used to determine
Figure S06175350X20060420D000361
q 0 ^ = a . 2 - m . . . ( 26 )
In equation (26), ' a ' represents an arbitrary constant, and m represents the quantization of a predetermined quantity.
When the information that requires 2 bit long of relevant each key value data in conventional MPEG-4 BIFS PMFC method is used to decipher, this 2 bit long information in the present invention not necessarily, therefore when N key value data of coding, be encoded quantity can be reduced similar 2N.
Be imported into second quaternion multiplier 1370 from the recovery rotation difference value of these inverse quantizer 350 outputs, and this second quaternion multiplier 1370 checks whether an input key frame is one first key frame that will be encoded in step S13600.If this input key frame is during with first key frame that is encoded, second quaternion multiplier 1370 add up from the recovery rotation transformation value of first key frame of this inverse quantizer input ( Q ^ 0 = Q ~ ^ ) and in step S13800, accumulated value is outputed in this delayer 1390.
If this input key frame is not during with first key frame that is encoded, in step S13700, by a rotation difference value with current key frame Restore the rotation transformation value with one of a preceding key frame
Figure S06175350X20060420D000365
Hypercomplex number multiply each other ( Q ^ i = Q ~ ^ i &times; Q i - 1 ^ ), second quaternion multiplier 1370 is restored a rotation transformation value of a current key frame
Second quaternion multiplier 1370 is with the recovery rotation transformation value of current key frame Export to delayer 1370, delayer 1390 keeps being somebody's turn to do then Up to a rotation transformation value of next key frame be output so that Equal
Figure S06175350X20060420D0003611
, then will
Figure S06175350X20060420D0003612
Output in first quaternion multiplier 1310.
Rotation transformation value Q when a current key frame iWhen being imported in first quaternion multiplier 1310, first quaternion multiplier 1310 also receives the recovery rotation transformation value of key frame before from delayer 1390
Figure S06175350X20060420D0003613
And in step S13100, pass through the recovery hypercomplex number transformed value in the preceding key frame Hypercomplex number multiply by Qi (
Figure S06175350X20060420D0003615
) generate the rotation difference value Q between the recovery rotation transformation value of the rotation transformation value of current key frame and preceding key frame i
The rotation difference value that generates is output in the quantizer 1340, in step S13300, as described below, is quantized by quantizer 1340 then.In step S13400, if the rotation difference value of being imported is corresponding with last key value data, quantizer 1340 will output in the circulation DPCM operator 400 by quantizing a rotation rotation differential data that difference value generated.
Whether circulation DPCM operator 1400 is checked from the number of times of the DPCM of the rotation differential data of the quantification of quantizer 1340 inputs is 0.In step S14000, if the number of times of DPCM is 0, the rotation differential data that circulation DPCM operator 1400 will quantize outputs in the entropy coder 1450 and does not carry out a linear DPCM operation and a circulation DPCM operates.If the number of times of DPCM is not 0, in step S14100, circulation DPCM operator 1400 quantizes to carry out on the rotation differential data a linear DPCM operation and a circulation DPCM operation at this.
Figure 15 A is the figure of description from the example of the differential data of these quantizer 1340 outputs, and Figure 15 B is described in the figure that carries out the result of a linear DPCM operation from the differential data of quantizer 1340 outputs.
Shown in Figure 15 B, as the result of linear DPCM operation, with the scope of the differential data that is encoded comparable it increase by two times in the past.The purpose of the performance of circulation DPCM operation is in the scope of the differential data that remains on quantification of the scope with differential data.
Circulation DPCM operation is to carry out under being connected to each other in a maximum and the minimum value of supposition in a quantizing range with being recycled.Therefore, if the result's of the linear DPCM of execution differential data is greater than the peaked half in quantizing range on two continuous quantized datas, by deducting maximum from differential data, available smaller value is represented them.
If differential data is less than a half of the minimum value in quantizing range, by the maximum in quantizing range is added on this differential data, available smaller value even bigger represent them.
When With
Figure S06175350X20060420D000372
Be illustrated respectively in two moment continuous time t iAnd t I-1Quantification rotation differential data, it is not divided data that two of equation below (27) quantize rotation continuously With
Figure S06175350X20060420D000374
Last execution one linear DPCM operation.
X i = Q ~ i - Q i - 1 ~ = ( q i , 1 ~ - q i - 1,1 ~ , q i , 2 ~ - q i - 1,2 ~ , q i , 3 ~ - q i - 1,3 ~ ) T . . . ( 27 )
In addition, carry out circulation DPCM operation on the differential data that equation below (27), (28) obtain.
Q &cup; i = min ( | X i | , | X i &prime; | ) . . . ( 28 )
X i'=X i-(2 NQbits-1) (if X i〉=0)
X i'=X i+ (2 NQbits-1) (on the contrary)
In equation (28), nQBits represents the quantization of a predetermined quantity.Figure 15 C is the figure that carries out the result of circulation DPCM operation on the DPCM differential data that is described in shown in Figure 15 B.Shown in Figure 15 C, the scope of circulation DPCM differential data is got over the scope less than linear DPCM differential data.
Entropy coder 1450 receives rotation differential datas or circulation DPCM rotation differential data according to the number of times of the DPCM of rotation differential data from circulation DPCM operator 1400, then by removing the redundancy input difference data of encoding.
With reference to figure 13B, entropy coder 1450 is checked an entropy coding pattern in step S14500 again.
If the entropy coding pattern is a binary system entropy coding pattern, then entropy coder 1450 uses a function S ignedAAC () this input difference data of encoding in step S14600.If the entropy coding pattern is a monobasic entropy coding pattern, then in step S14700, use a function U naryAAC () this input difference data of encoding.
Function S ignedAAC () is used to utilize an adaptive binary arithmetic coder to come the code differential data, function S ignedAAC () on each bit plane, the encode mark and the size of this differential data, and coding method was described in the above with reference to Figure 11.
On the other hand, function U naryAAC () be used to by a value that will be encoded convert to a series of 0, represent Q-character position 1 that this 0 series finishes and represent that the another one of the mark of this value comes coded identification that the quantity of 0 series is big or small corresponding with this value.
Hereinafter, function U naryAAC () will more fully describe below with reference to figure 16B.For example, 2156 are encoded into a series of position, and these positions are by 256 0s, the Q-character position 1 that expression Os series finishes, and represent 0 of 256 mark, and promptly one of function U naryAAC () adds labelled notation and forms.Owing to UnaryAAC (), the redundancy of the interdigit of the symbol that expression will be encoded increases, and this has improved the validity of this symbol of encoding.
Hereinafter, with a key value data encoder 300 of describing according to a second embodiment of the present invention.Key value data encoder 300 according to a second embodiment of the present invention comprises a device, is used to proofread and correct during quantizing a direction of rotation error that produces and is used for all component according to the key value data encoder 300 of first embodiment of the present invention coding.
Figure 17 is described in the figure that uses a direction of rotation error that generates during the rotation difference value coding hypercomplex number rotation transformation value.Because the hypercomplex number coding method of carrying out in key value data encoder 300 according to the present invention is lossy coding method (loss encoding method), thereby causes the direction of rotation error.
In Figure 17, work as Q i, Q I-1,
Figure S06175350X20060420D000381
With Represent a current rotation transformation value that just is being applied to the object in an I key frame respectively, be applied to a rotation transformation value of the object of this in the key frame before, from Q IRestore a value and from Q I-1When restoring a value, by no better than respectively by Q i, Q I-1,
Figure S06175350X20060420D000391
With The position of this object of the rotation transformation rotation of expression can be represented by four zoness of different, as shown in figure 17.
In other words, if this object along a shortest arc line from Q I-1Rotate to Q iTherefore by Q iAnd Q I-1After the rotation, this object is arranged in district 1 and district 3, and this object is considered to by counterclockwise from Q I-1Rotate to Q iAt this moment, if this object along a minimal path from Q I-1Rotate to Q iTherefore pressing Q I-1And Q iAfter the rotation, this object is arranged in district 2 and district 4, and this object is considered in the direction of the clock from Q I-1Rotate to Q i
On the other hand, if be encoded, decoded then rotation information rotates this object, be used to decipher necessarily to a kind of device utilization of interpolater respectively with Q i, Q I-1Corresponding With
Figure S06175350X20060420D000394
Rotate this object.Therefore, if with respect to by
Figure S06175350X20060420D000395
The position of this object that is rotated, by The relative position of the object that is rotated is district 2 or 3, and this object is rotated counterclockwise.If with respect to by The position of this object that is rotated, by
Figure S06175350X20060420D000398
The relative position of the object that is rotated is district 1 or 4, and this object turns clockwise.In district 1 and 2, when utilizing an original rotation transformation value, the direction of rotation of this object may be opposite with the direction of rotation when this object of the rotation transformation value that utilize a decoding, because Q iWith
Figure S06175350X20060420D000399
With the loss coding that is performed with coding hypercomplex number rotation transformation value is different.For addressing this problem, need reduce the degree that this object rotated and maybe when this object rotates, proofread and correct the direction of rotation of this object in a opposite way round in the opposite way round opposite with needed direction in a direction that needs so that this object rotates.In the present invention, be used for proofreading and correct the method for direction of rotation of this object so that this object is rotated in the direction of needs.
With reference to Figure 17, will describe simply hereinafter again according to correction one direction of rotation error by principle of the present invention.If detect a direction of rotation error, as the phenomenon that in district 1 and 2, produces, the hypercomplex number rotation difference value that is encoded is controlled to rotate in a correct direction, in district 2, still can occur in the inconsistency in the direction of rotation in this case.Yet, in district 2, not resembling in district 1, original quaternary numerical value and the difference of restoring between quaternary numerical value are compared less.Therefore, proofread and correct only execution in district 1 according to the direction of rotation of second embodiment of the invention.
Hereinafter, will the key value data encoder of proofreading and correct according to the execution direction of rotation of second embodiment of the invention 300 be described with reference to figure 18A to 19B.According to the key value data encoder 300 of second embodiment of the invention with according to the structure of the key value data encoder 300 of first embodiment of the invention much at one.Unique difference between them is the structure of a rotation DPCM operator, therefore will only describe the structure according to the rotation of one in the key value data encoder 300 of second embodiment of the invention DPCM operator below.
Figure 18 A has provided the block diagram that rotates DPCM operator 1800 according to second embodiment of the invention, and Figure 18 B is a block diagram of the direction of rotation Error Calculator 1820 shown in Figure 18 A.
With reference to figure 18A, this rotation DPCM operator 1800 comprises a direction of rotation Error Calculator 1820, one direction of rotation error detectors 1830, one direction of rotation adjusters 1815, and a direction of rotation selector 1835.Direction of rotation Error Calculator 1820 is received in a rotation transformation value of the object in the current key frame and one of this object restores the rotation transformation value and calculate the direction of rotation error in the key frame before one.This direction of rotation error detector 1830 takes place based on whether the direction of rotation error-detecting from direction of rotation Error Calculator 1820 input is enough to change the direction of rotation of this object decode procedure a error.This object that this direction of rotation adjuster 1815 is proofreaied and correct and a conversion of the decoding rotation transformation value of output from a rotation difference value of first quaternion multiplier, 1810 inputs so that by key frame before adopting is located is about 180 degree of rotation an original direction of rotation further.This direction of rotation selector 1835 outputs to this quantizer 1840 from the rotation difference value of direction of rotation adjuster 1815 inputs or from the rotation difference value of first quaternion multiplier, 1810 inputs and with selected value according to selecting from a value of direction of rotation error detector 1830 inputs.
With reference to figure 18B, the direction of rotation Error Calculator 1820 shown in Figure 18 A comprises a delayer 1822, the 3rd quaternion multiplier 1824, the 4th quaternion multiplier 1826, and one the 5th quaternion multiplier 1828.This delayer 1822 storages one input rotation transformation value is till a rotation transformation value of next key frame is transfused to.The 3rd quaternion multiplier 1824 receive these input rotation transformation values and from these delayer 1822 outputs one before key frame a rotation transformation value and calculate one between the rotation transformation value of this input rotation transformation value and preceding key frame by the hypercomplex number multiplication and rotate difference value.The 4th quaternion multiplier 1826 calculate from the rotation transformation value of the preceding key frame of delayer 1822 outputs and should before a rotation difference value between the recovery rotation transformation value of key frame.The 5th quaternion multiplier 1828 is calculated between the recovery rotation transformation value of input rotation transformation value and preceding key frame.
Hereinafter, a rotation DPCM who describes in more detail according to a second embodiment of the present invention with reference to figure 19A operates.
In step S19000, the certain key value data Q that plans to be encoded to the interpolater node iBe imported in the direction of rotation Error Calculator 1820 of first quaternion multiplier 1810 and this rotation DPCM operator 1800.
First quaternion multiplier 1810, as according to first quaternion multiplier in the key value data encoder 300 of first embodiment of the invention, by the input rotation transformation value hypercomplex number with a current key frame multiply by from 1870 inputs of second quaternion multiplier one before key frame one restore the rotation transformation value ( ) generate one the rotation difference value , and in step S19100 with the rotation difference value that is generated
Figure S06175350X20060420D000413
Output in this direction of rotation adjuster 1815 and the direction of rotation selector 1835.
Direction of rotation adjuster 1815 proofreaies and correct a rotation difference value that is input to wherein by equation (29) and the rotation difference value Qs that will proofread and correct outputs in the orientation selector 1835.Direction of rotation Error Calculator 1820 receives the rotation transformation value Q of current key frame iAnd the recovery rotation transformation value of the preceding key frame of from second quaternion multiplier 1870, importing And calculating rotation transformation value Q A, Q BAnd Q C, this will describe afterwards.Direction of rotation error detector 1830 utilizes the rotation difference value of being imported from direction of rotation Error Calculator 1820 to detect whether a direction of rotation error takes place and among step S19200 testing result is outputed in the direction of rotation selector 1835.
Qs = | &delta; r | - 1 ( q &CenterDot; R , 1 ) 2 + ( q &CenterDot; R , 2 ) 2 ( q &CenterDot; R , 3 ) 2 q &CenterDot; R , 1 - 1 ( q &CenterDot; R , 1 ) 2 + ( q &CenterDot; R , 2 ) 2 + ( q &CenterDot; R , 3 ) 2 q &CenterDot; R , 2 - 1 ( q &CenterDot; R , 1 ) 2 + ( q &CenterDot; R , 2 ) 2 + ( q &CenterDot; R , 3 ) 2 q &CenterDot; R , 3 . . . ( 29 )
In equation (29), δ r represents very the constant near 0, and (q R, 0, q R, 1, q R, 2, q R, 3) TExpression is from the rotation difference value of first quaternion multiplier, 1810 outputs
Figure S06175350X20060420D000416
Direction of rotation Error Calculator 1820, direction of rotation error detector 1830 and direction of rotation adjuster 1815 will be described below with reference to figure 19B.
Direction of rotation selector 1835 is checked and whether a direction of rotation error takes place is used with box lunch that this object rotates to a direction that needs in the opposite direction when a logical value of direction of rotation error detector 1830 inputs is deciphered coding key value data.If a direction of rotation error does not take place, in step S19300, direction of rotation selector 1835 will output to the quantizer 1840 from the rotation difference value of first quaternion multiplier, 1810 inputs.If a direction of rotation error takes place, direction of rotation selector 1835 will be from the correction rotation and the score value output of direction of rotation adjuster 1815 inputs in step S19300.
Quantizer 1840 in step S19400 and S19500, use with the first embodiment of the present invention in identical quantization method quantize original rotation differential data Or the rotation differential data Q that proofreaies and correct s
Quantizer 1840 is checked the rotation differential data of quantification in step S19600
Figure S06175350X20060420D000422
Whether belong to last key value data.If the rotation differential data that quantizes
Figure S06175350X20060420D000423
The rotation differential data corresponding with last key value data, that quantizer 1840 will quantize in step S19700
Figure S06175350X20060420D000424
Output in the circulation DPCM operator 1400.If the rotation differential data that quantizes
Figure S06175350X20060420D000425
Not corresponding with last key value data, the rotation differential data that quantizer 1840 will quantize
Figure S06175350X20060420D000426
Output in the inverse quantizer 1850.
Inverse quantizer 1850 is used the rotation differential data of inverse quantization method re-quantization this quantification identical with the first embodiment of the present invention in step S19800 And will restore the rotation differential data
Figure S06175350X20060420D000428
Output to second quaternion multiplier 1870.
Second quaternion multiplier 1870 will be by restoring the rotation differential data Hypercomplex number multiply by a rotation transformation value of key frame before Generate one of a current key frame and restore the rotation transformation value
Figure S06175350X20060420D0004211
Second quaternion multiplier 1870 delayed device 1890 in step S19900 outputs to a rotation transformation value of a current key frame in first quaternion multiplier 1810 and the direction of rotation Error Calculator 1820.
Hereinafter, the operation of direction of rotation Error Calculator 1820, direction of rotation error detector 1830 and direction of rotation adjuster 1815 will be described with reference to figure 19B.
Direction of rotation Error Calculator 1820 is calculated 2 to the 4 corresponding rotation error values with the district, and this described with reference to Figure 17.
Direction of rotation Error Calculator 1820 receives the corresponding rotation transformation value of key value data with a key frame that will be encoded, and is received in one of the preceding preceding key frame of current key frame and restores the rotation transformation value and calculate a direction of rotation error in step S19220.
With current key frame necessarily to the corresponding rotation transformation value of the key value data of interpolater be directly inputted in the 3rd quaternion multiplier 1824 and the 5th quaternion multiplier 1828 and when a rotation transformation value of next key frame is transfused to delayed device 1822 be imported in the 4th quaternion multiplier 1826.In addition, the recovery rotation transformation value from 1870 outputs of second quaternion multiplier is imported into the 4th quaternion multiplier 1826 and the 5th quaternion multiplier 1828.
The rotation transformation value of key frame before the 3rd quaternion multiplier 1824 multiply by by the rotation transformation value hypercomplex number with current key frame ( Q A = Q i &times; Q i - 1 * ) generate and rotate difference value Q AAnd with Q AOutput in the direction of rotation error detector 1830.Rotation difference value Q ABe illustrated in a time interval [t I-1, t i] between an original direction of rotation of an object.
The recovery rotation transformation value of key frame before the 4th quaternion multiplier 1826 multiply by by the rotation transformation value hypercomplex number with preceding key frame ( Q B = Q i &times; Q i - 1 * ) generate and rotate difference value Q BAnd with Q BOutput in the direction of rotation error detector 1830.The rotation difference value QB that calculates by the 4th quaternion multiplier 1826 represents by a quantization error at a moment scheduled time t I-1The direction of rotation sum of errors direction of rotation of an object that causes is also corresponding with district 2 as shown in figure 17.
The recovery rotation transformation value of key frame before the 5th quaternion multiplier 1828 multiply by by the rotation transformation value hypercomplex number with current key frame ( Q C = Q i &times; Q i - 1 * ) generate and rotate difference value Q CAnd with Q COutput to direction of rotation error detector 1830.Rotation difference value Q by 1828 calculating of the 5th quaternion multiplier CBe illustrated in moment scheduled time t iA rotation difference value and corresponding that is encoded with district 4 as shown in figure 17.
Direction of rotation error detector 1830 uses in step S19240 from the rotation difference value Q of direction of rotation Error Calculator 1820 inputs A, Q BAnd Q CWhether check in the process of the key value data of decoding coding this object is rotating in the opposite direction with an original-party.For finishing this function, direction of rotation error detector 1830 is checked rotation difference value Q A, Q BAnd Q CWhether satisfy inequality (30) to (34).At first, direction of rotation error detector 1830 is checked rotation difference value Q AAnd Q CWhether satisfy inequality (30).
q A , 1 q A , 2 q A , 3 &CenterDot; q C , 1 q C , 2 q C , 3 < 0 . . . ( 30 )
In inequality (30), as rotation difference value Q from 1820 inputs of direction of rotation Error Calculator ABy Q A=(q A, 0, q A, 1, q A, 2, q A, 3) TThe time,
Figure S06175350X20060420D000435
Expression Q AFour component q A, 0, q A, 1, q A, 2, q A, 3Remove the first component q A, 0A three-dimensional reason (q that vows who is formed A, 1, q A, 2, q A, 3) T Expression is by Q CFour component q C, 0, q C, 1, q C, 2, q C, 3Remove the first component q C, 0An outer trivector (q who forms C, 1, q C, 2, q C, 3) TTwo 3D vector (q of inequality (30) expression A, 1, q A, 2, q A, 3) T(q C, 1, q C, 2, q C, 3) TAn inner product less than a condition of 0.
If working as less than the direction of rotation of 0, one object, the inner product in the inequality (30) uses Q AThe time with when using Q CThe time direction of rotation opposite.When inner product less than 0 the time, be set to " true " in a value of the logical expression shown in the inequality (30).When inner product greater than 0 the time, the value of this logical expression is set to " false ".
q B , 1 q B , 2 q B , 3 &CenterDot; q C , 1 q C , 2 q C , 3 < 0 . . . ( 31 )
In inequality (31), as rotation difference value Q from 1820 inputs of direction of rotation Error Calculator BBy Q B=(q B, 0, q B, 1, q B, 2, q B, 3) TThe time,
Figure S06175350X20060420D000442
Expression Q BFour component q B, 0, q B, 1, q B, 2, q B, 3Remove the first component q B, 0A three-dimensional reason (q that vows who forms B, 1, q B, 2, q B, 3) T Expression is by Q CFour component q C, 0, q C, 1, q C, 2, q C, 3Remove the first component q C, 0An outer trivector (q who forms C, 1, q C, 2, q C, 3) TTwo 3D vector (q of inequality (31) expression B, 1, q B, 2, q B, 3) T(q C, 1, q C, 2, q C, 3) TAn inner product less than a condition of 0.
If working as less than the direction of rotation of 0, one object, the inner product in the inequality (31) uses Q BThe time with when using Q CThe time direction of rotation opposite.When inner product less than 0 the time, a value that reaches at the logical expressions shown in the inequality (31) is set to " true ".When inner product greater than 0 the time, the value of this logical expression is set to " false ".
A TH<2cos -1|q A,0| ...(32)
In inequality (32), q A, 0Expression rotation difference value Q AFirst component, and A THBe set to a predetermined constant near 0.When in inequality (32), 2cos -1| q A, 0| greater than A THThe time, be set to " true " in a value of the logical expression shown in the inequality (32).Work as 2cos -1| q A, 0| be not more than A THThe time, the value of logical expression is set to " false ".When inequality (32) was set to " false ", this represented when realizing key value data encoder 300 according to the present invention less than predetermined constant A THAn anglec of rotation θ (=2cos -1| q A, 0|) can be left in the basket.Even there is direction of rotation error anglec of rotation θ no better than, the direction of rotation error can not cause the image of serious distortion concerning human eye, particularly when an error measurement method that uses by the present invention's suggestion.
A TH<2cos -1|q B,0|...(33)
In inequality (33), q B, 0Expression rotation difference value Q BFirst component, and A THBe with inequality (32) in corresponding one identical.When in inequality (33), 2cos -1| q B, 0| greater than A THThe time, be set to " true " in a value of the logical expression shown in the inequality (33).Work as 2cos -1| q B, 0| be not more than A THThe time, the value of this logical expression is set to " false ".
A TH<2cos -1|q C,0|...(34)
In inequality (34), q C, 0Expression rotation difference value Q CFirst component, and A THBe with inequality (32) in corresponding one identical.When in inequality (34), 2cos -1| q C, 0| greater than A THThe time, be set to " true " in a value of the logical expression shown in the inequality (34).Work as 2cos -1| q C, 0| be not more than A THThe time, the value of this logical expression is set to " false ".
Direction of rotation error detector 1830 is carried out AND operation to the logical value of (34) and the result of this AND operation is outputed in the direction of rotation selector 1835 at inequality (30).
At a moment scheduled time t, this first quaternion multiplier 1810 has two input value Q iWith First quaternion multiplier 1810 is used two input value Q iWith
Figure S06175350X20060420D000452
With a rotation difference value output.As mentioned above, in district 1, what receive the rotation differential data is used to decipher the device of the key value data object that turns clockwise of having encoded.Yet this object must be from pressing by Q I-1Present located one position, predetermined number of degrees with respect rotation back of expression rotates to supposition by by Q iA residing position, predetermined number of degrees with respect rotation back of expression, thus the original direction of rotation of this object must be a counter clockwise direction.
Therefore, direction of rotation adjuster 1815 proofread and correct these objects direction of rotation in case this object can based on The rotation of the equidirectional that rotated equal by
Figure S06175350X20060420D000454
A represented anglec of rotation, as shown in figure 17, that is, thus this object can from based on Postrotational present located inverse position hour hands rotate to supposition by equal by
Figure S06175350X20060420D000456
The residing position, one anglec of rotation rotation back of expression.
For this reason, this direction of rotation adjuster 1815 is set up new rotation information so that this object is spent counterclockwise from pressing by similar 1180
Figure S06175350X20060420D000461
The rotation of present located position, predetermined angular rotation back.Therefore, the direction of rotation of this object is corrected into identical with initial direction, and energy minimization one direction of rotation error.This direction of rotation adjuster 1815 receives the rotation differential data from the current key frame of this first quaternion multiplier 1810 in step S19260
Figure S06175350X20060420D000462
, generate rotation differential data, and the rotation differential data that will proofread and correct outputs in the direction of rotation selector 1835 with a direction of rotation of proofreading and correct.
With reference to figure 19A, in step S19300, whether direction of rotation selector 1835 is checked from the logical value of direction of rotation error detector 1830 inputs is true.If the logical value of input be true, in step S19400, this direction of rotation selector 1835 determines that identical phenomenon that districts 1 as shown in figure 17 take place has taken place and the rotation difference value Q of the correction that will be defined by equation (29) sOutput in the quantizer 1840.
On the other hand, if the logical value of importing is false, in step S19500, direction of rotation selector 1835 determines not occur in the identical phenomenon that takes place in the district 1 also will be from the rotation difference value of first quaternion multiplier, 1810 inputs Output in the quantizer 1840.
Hereinafter, will a kind of key value data encoder 300 according to third embodiment of the invention be described.
Three components because key value data encoder 300 is according to the first and second aspects of the present invention only encoded in four components of a rotation difference value, because a quantization error they can not use equation (24) to restore one first component value of this hypercomplex number, for example, one first component that restores the rotation difference value may be an imaginary number.
For preventing three problems that component brought owing to the hypercomplex number of only encoding, key value data encoder 300 according to third embodiment of the invention comprises a quantizer, its component value that can suitably regulate three quantifications is during with the key value data of box lunch decoding coding, and another component can be recovered to an arithmetic number and reduce the arrow of image true.
According to the key value data encoder 300 of third embodiment of the invention, except that the structure of a quantizer 2000,, therefore below the structure of this quantizer 2000 will only be described with identical according to the key value data encoder of of the present invention first or second embodiment.
Figure 20 A is included in the block diagram according to the quantizer 2000 in the key value data encoder 300 of third embodiment of the invention.With reference to figure 20A, a quantizer 2000 comprises a quantifying unit 2010, one quantized data adjusters 2020, one inverse quantizers 2030, and an error measure unit 2050.This quantifying unit 2010 quantizes to be input to a rotation difference value wherein.These quantized data adjuster 2020 contrary quantification rotation differential datas of regulating.The rotation differential data that these inverse quantizer 2030 re-quantizations have quantized.This rotation difference value restoring device 2040 restores the component value of the rotation differential data of all quantifications by one first component of the rotation differential data of the former quantification of use re-quantization component reflex.Error between the rotation difference value of this error measure unit 2050 measurements, one a recovery difference value and an original input is also upgraded the rotation difference value that quantizes.
Figure 20 B is the operational flowchart of quantizer 2010.With reference to figure 20B, when rotating difference value from first quaternion multiplier input one The time, in step S20050, this quantizer 2010 uses equation (23) to quantize the rotation difference value of input And the rotation differential data that will quantize
Figure S06175350X20060420D000473
Output in the quantized data adjuster 2020.
Quantized data adjuster 2020 is regulated quantification rotation differential data with following equation (35) in step S20100 Three components.
I ijk = Q ~ + D ijk , D ijk = ( i , j , k ) T - d &le; i , j , k &le; d I, j, k and d are integers) ... (35)
In equation (35), i, j, k all are variablees, and it can be added on the rotation differential data so that regulate the rotation differential data, and be used to define i, j, the scope of k.Quantize the rotation differential data
Figure S06175350X20060420D000476
Three regulate components and be output in the inverse quantizer 2030.
In step S00200, inverse quantizer 2030 re-quantizations are regulated and are quantized rotation differential data I IjkAnd with the rotation difference value of re-quantization
Figure S06175350X20060420D000477
(or result of re-quantization) outputs in the rotation difference value restoring device 2040.
In step S20300, receive the rotation difference value of re-quantization
Figure S06175350X20060420D000478
The rotation difference value restoring device 2040 usefulness equatioies (24) of three components restore one first component of rotation differential data and restore the rotation difference value and output in the error measure unit 2050 one.
One first component value that is input to a rotation difference value is wherein checked in error measure unit 2050.In step S20400, if this first component value is a real number, then error measure is carried out in error measure unit 2050.On the other hand, if this first component value is an imaginary number, then this method changes step S20600 over to.
When first component of this input rotation difference value was a real number, error measure unit 2050 was measured in step S20450 at an original rotation difference value and and is restored an error e of rotating between difference value IjkAnd in step S20500, check e IjkWhether less than a regulating error e I*j*k*The e that measures between original rotation difference value and recovery rotation difference value is described below with reference to Figure 27 IikMethod.
If measure error e IjkLess than regulating error e I*j*k*, e in step S20550 IjkReplace e I*j*k*, in step S0060, check variable i then, whether j and k belong to an adjustable range [d ,+d].If variable i, j and k belong to adjustable range [d, + d], then error measure unit 2040 repeated execution of steps S20100 to S20550 are in step S20100, between each circulation of step S20100 to S20550, in a nested endless form, two to 4 components of the rotation differential data that quantizes are added 1.
For example, one data conditioner that quantizes, 2020 maintenance second and three-components, attempt by increasing on k value to the four component values, surpass simultaneously+progressively increase the k value and make recovery first component become a real number by continuously the k value being added 1 before the d in k value, find out the 4th then and regulate component value, this energy minimization one input rotation difference value and an error of restoring between the rotation difference value.
If k value arrival+d, this quantized data adjuster 2020 attempt by come with-d initialization k value and with a j value be added on the three-component value simultaneously by with j (d≤j≤+ d) value add 1 increase the j value and with a k value be added on the 4th component value simultaneously k value above before+the d by continuously with k (d≤k≤+ d) value adds 1 increases the k value step by step and makes this restore first component to become a real number value, find the 4th to regulate component value then, this rotation difference value and one that can reduce by an input restores the error between the rotation difference value.
If j value arrival+d, this quantized data adjuster 2020 attempt by come with-d initialization j and k value and with an i value be added on the second component value simultaneously by with i (d≤i≤+ d) value add 1 increase the i value and with a j value be added to the three-component value and with a k value be added on the 4th component simultaneously k value above before+the d by continuously with k (d≤k≤+ d) value adds 1 increases the k value step by step and makes this restore first component to become a real number value, find the 4th to regulate component value then, this rotation difference value and one that can reduce by an input restores the error between the rotation difference value.
Repeating above-mentioned processing up to i, j, k reach+find out four adjusting component values that the rotation difference value and that can reduce by an input restores the error between the rotation difference value then till the d.
Error measure unit 2050 at step S20700 center to regulating error e I*j*k*, whether less than a final error
Figure S06175350X20060420D000481
Change second to the 4th component value simultaneously.If e I*j*k*Less than e I*j*k*Replace In step S20750, proofread and correct simultaneously the rotation differential data of quantification with following equation (36).
Q ~ * = ( q 1 ~ , q 2 ~ , q 3 ~ ) T + ( i * , j * , k * ) T . . . ( 36 )
After this, the rotation differential data that will proofread and correct of error measure unit 2050 outputs in the data conditioner 2020 of quantification.
The data conditioner 2020 that quantizes is variable i, j, and the k value is set to-d and execution in step S20100 to S20600 once more on the rotation differential data that is input to wherein.Then, whether quantized data adjuster 2020 usefulness input rotation differential data is checked and is existed one to have than the rotation differential data in the littler error of the final error of preceding storage.
If regulating error e I*j*k*Greater than final error Error measure unit 2050 in step S20800 will with the terminal error of current storage
Figure S06175350X20060420D000492
The rotation differential data of corresponding quantification Q ~ g * = Q ~ * = ( q ~ 1 * , q ~ 2 * , q ~ 3 * ) T Output in the circulation DPCM operator.
Hereinafter, will more fully describe a kind of apparatus and method of according to one preferred embodiment of the present invention a bit stream being deciphered, will necessarily be decoded into above-mentioned bit stream to interpolater with reference to figure 21A to 25.
Figure 21 A is the block diagram to the device of interpolater of being used to decipher necessarily according to one preferred embodiment of the present invention, and Figure 21 B has provided a kind of being used to encode necessarily to the method flow diagram of interpolater according to one preferred embodiment of the present invention.
With reference to figure 21A, be used to decipher certain device and comprise a key data decoder 2120, one key value data decoders 2150, one title decoders 2110 to interpolater, and necessarily to interpolater synthesizer 2180.These key data decoder 2120 decodings are from the key data of an incoming bit stream.These key value data decoder 2150 decodings are from the key value data of this incoming bit stream.This title decoder 2110 is deciphered from the heading message of this incoming bit stream and should be deciphered heading message and outputs to key data decoder 2120 and key value data decoder 2150.This necessarily synthesizes decoding key datas and decoding key value data and exports the directed interpolater of a decoding to interpolater synthesizer 2180.
With reference to figure 21B, be imported in key data decoder 2120, key value data decoder 2150 and the title decoder 2110 at step S21000 by a coded bit stream of device of locating interpolater that is used for encoding as shown in Figure 3.
In step S21100,2110 decodings of title decoder also will be deciphered heading message from the heading message of this incoming bit stream and offer in key data decoder, key value data decoder 2150 and the directed interpolater synthesizer 2180.
Key data decoder 2120 entropys are deciphered the key data from incoming bit stream, and a predetermined contrary DND operates by carrying out, a contrary folding operation and generates the decoding key data and will decipher key data against shifting function and outputs in the directed interpolater synthesizer 2180.The decoding of key value data decoder 2150 entropys is from the key value data of incoming bit stream, generate a rotation difference value, this rotation difference value is used for rotating an object by the difference between rotation transformation no better than, the hypercomplex number key value data of each key frame by re-quantization decoding rotation differential data are applied to this object with this rotation transformation, and a rotation transformation value of key frame and rotation transformation value that will this current key frame in step S21200 outputed to this orientation interpolater synthesizer 2180 before a rotation transformation value that multiply by key frame before by the rotation difference value hypercomplex number with a current key frame was restored and deserved.
Directed interpolater synthesizer 2180 selects Q-character to restore necessarily to interpolater by the key data and the key value data that will be input to wherein with a floating-point generate pattern with from a keyword of title decoder 2110 inputs, and the directed interpolater that will restore in step S21400 is exported.
Hereinafter, will with reference to Figure 22 to 23B describe according to one preferred embodiment of the present invention a key data decoder 2120 and a kind of method of deciphering key data according to one preferred embodiment of the present invention.
Figure 22 is a block diagram of key data decoder 2120.Key data decoder 2120 receives a coding stream and is reconstructed into key data by decoding.
Key data decoder 2120 comprises an entropy encoder 2260, one contrary DND processor 2250, one contrary folding processor 2240, one contrary shift unit 2230, one contrary DPCM processor 2220, an inverse quantizer 2210, one linear keyword decoder 2200 and a floating number inverse converter 2205.
Figure 23 A is a kind of method flow diagram that is used to decipher key data according to one preferred embodiment of the present invention.With reference to Figure 22 and 23A, a bit stream that key data is compressed into it is imported in title decoder 2110 and the entropy encoder 2260.
In step S23000,2110 decodings of title decoder are used to decipher the message slot of each required step and they are offered their corresponding steps of decoding.With each decoding step the information of being deciphered by title decoder 2110 is described.
The quantity that entropy encoder 2260 receives the position of will the quantity of decoded differential data and being used to encode from title decoder 2110 be about to be used to decipher quantity, and in step S23100, decipher incoming bit stream.The quantity of differential data equals to deduct from the quantity of key data the result of the quantity of the inside key data that obtains by execution DPCM.
Entropy encoder 2260 identification is based on the predetermined information that is included in this bit stream, as in the present embodiment bSignedAACFlag discern with decoded differential data whether have negative value or on the occasion of.If the differential data of coding has negative value, entropy encoder 2260 uses function d ecodeSignedAAC () to decipher them.On the other hand, if only having on the occasion of, entropy encoder 2260, the code differential data use function d ecodeUnsignedAAC () to decipher them.Then, will decipher differential data and be sent to contrary DND processor 2250.
Be received in a number of times and the maximum nKeyMax of each DND of DND the cycle against DND processor 2250 from title decoder 2110.
If the number of times of DND is-1, the just decoded code differential data of this expression are deciphered by entropy through DPCM operation and a shifting function rather than through DND, and this method directly enters into and carries out on the contrary step of shifting function.If the number of times of DND is 0, the just decoded code differential data of this expression are deciphered by entropy through a folding operation rather than through DND, so this method directly enters on the execution one contrary step of folding operation.If DND number, carried out a contrary DND operation greater than 0 in step S23200.
Contrary DND processor 2250 determines that in step S23300 moving operation on just decoded code differential data are whether through one is encoded.In a preferred embodiment of the present invention, whether determine that greater than 0 just decoded code differential data are encoded through moving operation on one by checking the nKeyInvertDown that is included in the bit stream.
If just decoded code differential data are not moved operation on one, this method enters into to be carried out on the contrary step of DND.On the other hand, if just decoded code differential data are moved operation on one, by carry out move on one operation the differential data from a positive number zone-transfer to a negative zone among step S23400, be moved back to the negative zone.In one embodiment of the present invention, one move down operation (reverse turn operation) and restored by carrying out with what following equation was represented through the differential data that moves operation on one.
invert-down(v) …(37)
=v (v≤nKeyInvertDown)
=nKeyInvertDown-v (v>nKeyInvertDown)
Here, nKeyInvertDown be used in the maximum nKeyMax that moves in the operation and have identical value.As the result who moves down operation, have differential data above the value of nKeyInvertDown and be converted into and be lower than-1 negative value.
According to carrying out contrary following a stroke operation or on the differential data of operation selectively and stroke operate on contrary through moving down at each DND maximum nKeyMax in the cycle.
With reference to figure 23B, contrary DND processor 2250 is carried out the repeatedly contrary DND operation the same with the DND operation of this differential data process during encoding.In other words, contrary DND processor 2250 is provided with an initial value of the number of times of the inferior inverse of a number DND that equals DND.Then, when contrary DND processor 2250 is each when carrying out a contrary DND operation, subtract 1 and continue to carry out contrary DND and operate up to number of times and become till 1 against DND from the initial value value of contrary DND number.Contrary DND processor 2250 is searched nKeyMax and whether is checked each nKeyMax less than O in step S235lO at each DND in the cycle.
If nKeyMax is less than O, it is illustrated in to have carried out in the cataloged procedure draws operation on one, and therefore, in step S23530, by carrying out contrary last stroke operation, the range expansion of the differential data that contrary DND processor 2250 will just be encoded is to a negative zone.In a preferred embodiment of the present invention, can use contrary last stroke operation by following equation (38) definition.
inverse - div ide - up ( v ) . . . ( 38 )
= v ( v &GreaterEqual; 0 )
= ( nKey Max i - 1 ) - v - 1 2 ( v < 0 , v mod 2 &NotEqual; 0 )
= v 2 ( v < 0 , v mod 2 = 0 )
Yet if nKeyMax is not less than O, whether the number of times that contrary DND processor 2250 is checked contrary DND is 1.If the number of times of contrary DND is not 1, its expression is carried out the differential data of being deciphered in the cataloged procedure and is drawn operation, therefore contrary DND processor 2250 by carry out one contrary following stroke operate range expansion with differential data to a positive number zone.
In a preferred embodiment of the present invention, can use contrary following stroke of operation by following equation definition.
inverse - div ide - down ( v ) . . . ( 39 )
= v ( ifv &GreaterEqual; 0 )
= ( nKey Max i + 1 ) + v - 1 2 ( ifv < 0 , v mod 2 &NotEqual; 0 )
= v 2 ( ifv < 0 , v mod 2 = 0
If it is 1 that nKeyMax is not less than the number of times of O and contrary DND, in step S23590, contrary DND processor 2250 finishes whole contrary DND operation after carrying out a contrary cutting operation.In a preferred embodiment of the present invention, can use a contrary cutting operation by following equation (40) definition.
inverse-divide(v) …(40)
=v (v≥0)
=v+(nKeyMax 0+1) (v<0)
The differential data through the key data of contrary DND operation is imported in the contrary folding processor 2240, and contrary folding processor 2240 carry out a contrary folding operation on this differential data in case in the past only the differential data in a positive number zone in step S23600, be divided on the occasion of and negative value.In a preferred embodiment of the present invention, can use a contrary folding operation by equation (41) definition.
inverse - fold ( v ) = - ( v + 1 ) 2 ( v mod 2 &NotEqual; 0 ) &CenterDot; &CenterDot; &CenterDot; ( 41 )
= v 2 ( v mod 2 = 0 )
= 0 ( v = 0 )
The differential data through contrary folding operation is output to contrary shift unit 2230, and in step S23700, contrary shift unit 2230 adds to from the differential data of contrary folding processor 2240 inputs being used in the cataloged procedure and from the pattern nKeyShift that title decoder 2110 is imported.This operation is represented by following equation.
inverse-shift(v)=v+nKeyshift …(42)
Contrary DPCM processor uses in step S23800 from the number of times of the DPCM of heading code device 2110 inputs will be recovered to the quantized key digital data from the differential data of contrary shift unit 2230 inputs.One contrary DPCM operation of the number of times as much number of times of the contrary following equatioies of shift unit 2230 usefulness (43) execution and DPCM.
v(i+1)=v(i)+delta(i) …(43)
Here, i represents an index of differential data and key data, and v represents an integer array, and delta (i) expression differential data.
The quantized key digital data through contrary DPCM operation is imported in the inverse quantizer 2210.Then, whether inverse quantizer 2210 uses following equation to convert the quantized key digital data to the re-quantization key data by floating number transducer 905 information encoded and at step S23900k from the minimum and maximum value that title decoder 2110 receives the big or small nKeyQbit of relevant quantization and is used for re-quantization.
inverse - quantize ( v ) = fKeyMin + v 2 nKeyQBit - 1 &times; ( fKeyMax - fKeyMin ) &CenterDot; &CenterDot; &CenterDot; ( 44 )
If in the process of encoding keyword data, the minimum and maximum value that is used to quantize by 905 conversions of floating number transducer, will not be set to 0 and 1 respectively at fKeyMin and the fKeyMax shown in the equation (44).Yet,, be used separately as the minimum and maximum value that is used for re-quantization by the minimum and maximum value of floating number inverse converter 2205 inverse conversion if floating number transducer 905 has been changed the minimum and maximum value that is used to quantize.
The example of the program code of realizing the contrary DND operation of re-quantization will be described below.
Be added in the key data of decoding linear keyword decoder 2200 from the decoding key data of inverse quantizer 2210 outputs, thereby constitute the decoding key data.
Hereinafter, a linear keyword decode procedure will be described below.
2110 decodings of title decoder are from the keyword heading message of a bit stream.If the information of a relevant linear key data is present in this bit stream, title decoder 2110 outputs in the linear keyword decoder 2200 requiring to be used for to decipher the quantity that the beginning of this linearity keyword data region and end key output to floating number inverse converter 2205 and will be encoded as the keyword of linear keyword.
Floating number inverse converter 2205 beginning of the linear keyword data region shown of numerical table decimally and end key reverse and change binary number into and this binary number is outputed in the linear keyword decoder 2200.
Suppose two decoded floating numbers are called as fKeyMin and fKeyMax that the process of decoding fKeyMin is as follows.
Title decoder 2110 reads the figure place of fKeyMin from a bit stream.If the figure place of fKeyMin is 0, then fKeyMin is set to 0, and reads the figure place of fKeyMax so that decoding fKeyMax from this bit stream.If the figure place of fKeyMax is not less than 8, this expression fKeyMax encoded with ieee standard 754.Therefore, floating number fKeyMax is encoded after reading its 32.
Yet, if the figure place of fKeyMax between 1 and 7, title decoder 2110 reads a Q-character from this bit stream.In a preferred embodiment of the present invention, if Q-character is 1, MinKeyMantissaSign is set to-1.On the other hand, if Q-character is 0, MinKeyMantissaSign is set to 1.After this, reference table 1 obtains to require the quantity of the position that is used to encode, this figure place of having expressed a mantissa and coding required quantity between relation.Then, read and the quantity of as many this bit stream of quantity of the required position of encoding and be stored in MinKeyMantissa.The next bit that reads this bit stream then by use be stored in MinKeyMantissa in the identical mode of Q-character of mantissa be stored among the MinKeyExponentSign.With corresponding this bit stream of an exponential quantity next six be read and be stored among the MinKeyExponent.
By will from the value substitution equation (45) of title decoder 2110 inputs, restoring fKeyMin.
fKeyMin = MinKeyMantissaSign * nMinKeyMantissa 10 MinKeyExponentSign * nMinKeyExponent &CenterDot; &CenterDot; &CenterDot; ( 45 )
The process of restoring fKeyMax is identical with the process of restoring fKeyMin.Specifically, before reading the index of fKeyMax, determine whether the value identical with the index of fKeyMin is used as the index of fKeyMax from this bit stream.If the value identical with the index of fKeyMin is not used as the index of fKeyMax, the mode identical with the index that reads fKeyMin from this bit stream reads the index of fKeyMax from this bit stream.
Linear keyword decoder 2200 receives the beginning and the end key of linear keyword data region and deciphers linear keyword data region with following equation (46) from floating number inverse converter 2205.
Keyi = fKeyMin + ( fKeyMax - fKeyMin ) * i ( nNumberOfLinearKey - 1 ) &CenterDot; &CenterDot; &CenterDot; ( 46 )
(i=0,…nNumberOfLinearKey-1)
Here, fKeyMin and fKeyMax represent the beginning and the end key data of this linearity keyword data region respectively.
The key data that utilizes said method to decipher in linear keyword data region is added to from the key data of inverse quantizer 2210 outputs, then the interpolation result is exported as final key data.
Hereinafter, will being used to decipher necessarily to the encode method of key value data of the device of interpolater and being used to according to one preferred embodiment of the present invention according to one preferred embodiment of the present invention be described with reference to figure 24A to 25.
Figure 24 A is that according to one preferred embodiment of the present invention a kind of is used to decipher necessarily the block diagram to the device of interpolater.With reference to figure 24A, be used to decipher certain device and comprise a title decoder 2110, one entropy encoders 2410, one contrary circulation DPCM operator 2420, one inverse quantizers 2430 to interpolater, and a quaternion multiplier 2440.2110 pairs in this title decoder is that decoding offers a key value data decoder 2150 by the heading message of deciphering and will deciphering from the represented required heading message of key value data of a hypercomplex number of an incoming bit stream.The entropy coding key value data that this entropy encoder 2410 is deciphered from this incoming bit stream by entropy generate the DPCM rotation differential data of a circulation or the rotation differential data of quantification.Should be against circulation DPCM operator 2420 by on the circulation DPCM rotation differential data that is input to wherein, carrying out the rotation differential data that a contrary circulation DPCM operation generates quantification.This inverse quantizer 2430 generates a rotation difference value by rotation and the differential data that re-quantization has quantized.The rotation transformation value that this quaternion multiplier 2440 multiply by key frame before by the rotation difference value hypercomplex number with current key frame generates a rotation transformation value of a current key frame.
Figure 24 B is the method flow diagram that is used to decipher the key value data according to one preferred embodiment of the present invention.With reference to figure 24B, a bit stream is imported in the entropy encoder 2140 of title decoder 2110 and key value data decoder 2150, utilizes certain device to interpolater that is used to encode according to the present invention that the key value digital coding is become above-mentioned bit stream.
In step S24100,2110 decodings of title decoder are used for deciphering the heading message that also will decipher from the desired heading message of key value data of this incoming bit stream and offer key value data decoder 2150.
In heading message, the first and second inner key value data and a plurality of Q-character that is used for deciphering other key value data that are quantized in the hypercomplex number based on DPCM number are encoded.
If the number of times of DPCM is 1 (for example, if the nKVDPCMOrder of one of a plurality of Q-characters is set to 0), the first key value data that quantize are included in the heading message as inner key value data.If a quaternary numerical value of the key value data of first re-quantization satisfies Q ^ 0 = ( q ^ 0,0 , q ^ 0,1 , q ^ 0,2 , q ^ 0,3 ) T , The first re-quantization key value data are calculated with following equation (48).
q ^ 0,0 = tan ( &pi; 4 * ( | firstQKV _ S | 2 nKVQBit - 1 - 1 ) ) &CenterDot; &CenterDot; &CenterDot; ( 48 )
q ^ 0,1 = tan ( &pi; 4 * ( xSign * | firstQKV _ X | 2 nKVQBit - 1 - 1 ) )
q ^ 0,2 = tan ( &pi; 4 * ( ySign * | firstQKV _ Y | 2 nKVQBit - 1 - 1 ) )
q ^ 0,3 = tan ( &pi; 4 * ( zsign * | firstQKV _ Z | 2 nKVQBit - 1 - 1 ) )
In equation (48), only when the nFirstXSign among the class OrilDPCMKeyValueHeader be 1 or under other condition for-1 the time, xSign is 1.Ysign has the relation identical as the relation between xSign and nFirstXSign with nFirstYSign and nFirstZSign respectively with zSign.
Recovery quaternion components value by equation (48) definition is converted into and will be used as certain angular displacement to interpolater.Can use a four-vector from each angular displacement of key value data recovery Expression, wherein i represents current key data,
Figure S06175350X20060420D000572
The vector of representing a rotating shaft, and Expression one is rotated counterclockwise the angle.Therefore, restore the quaternion components value and be converted into angular displacement with following equation (49).
x ^ 0 = q ^ 0,1 * 1 sin ( &theta; 0 ^ 2 ) &CenterDot; &CenterDot; &CenterDot; ( 49 )
y ^ 0 = q ^ 0,2 * 1 sin ( &theta; 0 ^ 2 )
z ^ 0 = q ^ 0,3 * 1 sin ( &theta; 0 ^ 2 )
&theta; ^ 0 = arccos ( q ^ 0,0 ) * 2
If the number of times of DPCM is 2, for example,, nKVDPCMOrder is included in the heading message if being set to 1, the first and second key value data that quantize.With restoring the first key value data that quantize with above-described identical mode. then, restore the second key value data with a kind of diverse ways.In other words, only the three-component of the second quantized key word Value Data is transmitted together with the bit stream of a coding and their value is not inner key value data but has the different data of the first key value data ( Q ~ 1 = ( q ~ 1,1 , q ~ 1,2 , q ~ 1,3 ) ) 。A hypercomplex number of supposing the second key value data of the key value data of representing re-quantization satisfies Q ~ ^ 1 = ( q ~ ^ 1,0 , q ~ ^ 1,1 , q ~ ^ 1,2 , q ~ ^ 1,3 ) T ,
Figure S06175350X20060420D0005710
Calculate with following equation (50).
q ~ ^ 1,0 = 1 - ( q ~ ^ 1,1 2 + q ~ ^ 1,2 2 + q ~ ^ 1,3 2 ) &CenterDot; &CenterDot; &CenterDot; ( 50 )
q ~ ^ 1,1 = tan ( &pi; 4 * ( sec ondXSign * | sec ondQKV _ X | 2 nKVQBit - 1 - 1 ) )
q ~ ^ 1,2 = tan ( &pi; 4 * ( sec ondYSign * | sec ondQKV _ Y | 2 nKVQBit - 1 - 1 ) )
q ~ ^ 1,3 = tan ( &pi; 4 * ( sec ondZSign * | sec ondQKV _ Z | 2 nKVQBit - 1 - 1 ) )
In equation (50), only when the nSecondXSign among the class OrilDPCMKeyValueHeader be 1 or under other condition for-1 the time, secondXSign is 1.SecondYsign has the relation identical as the relation between xSign and nSecondXSign with nSecondYSign and nSecondZSign respectively with secondZSign.If represent a hypercomplex number of the key value data of second re-quantization Satisfy Q ^ 1 = ( q ^ 1,0 , q ^ 1,1 , q ^ 1,2 , q ^ 1,3 ) T , Be by Multiply by Calculate.In other words, Q ^ 1 = Q ~ 1 &times; Q ^ 0 .
Title decoder 2110 is exported to key value decoder 2150 with the key value data of decoding and the heading message of decoding.
Entropy encoder 2410 receives a bit stream and utilizes in step S24120 to S24128 and by title decoder 2110 coded decoding informations the bit stream of importing is carried out entropy coding, and wherein the differential data of key value data is encoded into above-mentioned bit stream.
Figure 25 describes the structure chart that is input to the bit stream in the entropy encoder 2140.In Figure 25, suppose the quantity of the key value data of N (nNumberOfKeyValue) presentation code, when the number of times of DPCM is 0, the quantity that is included in the rotation differential data of each component in the bit stream is N-1 (0,1 ..., nNumberOfKeyValue-2).When the number of times of DPCM is 1, the quantity that is included in the rotation differential data of each component in the bit stream be N-2 (0,1 ..., nNumberOfKeyValue-3).
Entropy encoder 2410 receive from x_keyvalue_flag, y_keyvalue_flag and the z_keyvalue_flag of title decoder 2110 and in step S24120, check x_keyvalue_flag, y_keyvalue_flag and z_keyvalue_flag each whether be set to 1.
In step S24122, when each all was set to 0 as x_keyvalue_flag, y_keyvalue_flag and z_keyvalue_flag, the nAllKeyValues that all differential datas that are considered to the key value data of all quantifications or each component coexist among the class OrilKeyValueCodingBit was identical.Therefore, entropy encoder 2410 outputs in the contrary circulation DPCM operator 2420 with the identical value of the nAllKeyValues of key value data decoding Cheng Yucong title decoder 2110 inputs of each component and with the key value data of deciphering.
If x_keyvalue_flag, y_keyvalue_flag and z_keyvalue_flag are set at 0, for example, if x_keyvalue_flag, y_keyvalue_flag and z_keyvalue_flag are set to 1, entropy encoder 2410 is checked from an entropy decoding mode of key value title decoder 2110 inputs so that each component of the key value data that decoding is imported among step S24124 ( Q &OverBar; i = ( q &OverBar; i , 1 , q &OverBar; i , 2 , q &OverBar; i , 3 ) ) .
When the entropy decoding mode is a binary decoding pattern, in step S24126, entropy encoder 2420 uses the bit stream of a function d ecodeSignedAAC () decoding one adaptive arithmetical coding as shown in table 3 and the rotation differential data that will quantize to output in the contrary circulation DPCM operator 2420.
Table 3
void?decodeSignedAAC(int*nDecodedValue,int?qstep,Qstate*signContext,Qstate*valueContext{ int?b; b=qstep-2; int?msb=0; do { qf_decode(&msb,&valueContext[b]); msb=msb<<b; b--; }while(msb==0&&b>=0); int?sgn=0; int?rest=0;if(msb!=0){ qf_decode(&sgn,signContext);while(b>=0){int?temp=0
qf_decode(&temp,&valueContext[b]); rest|=(temp<<b); b--; } } if(sgn) *nDecodedValue=-(msb+rest); else *nDecodedValue=(msb+rest); }
On the other hand, when the entropy decoding mode was not a binary decoding pattern, in step S24128, entropy encoder 2410 used a function d ecodeUnaryAAC () decoding incoming bit stream.Function d ecodeUnaryAAC () is by reading 0 continuously up to read the absolute value that converts it till 1, with the quantity of continuous Os to from this bit stream, read one with position " 1 " vicinity, and convert this position to a Q-character and decipher this incoming bit stream, the rotation difference value that will quantize then outputs in the contrary circulation DPCM operator 2420.The example of function d ecodeUnaryAAC () is as shown in table 4.
Table 4
Void?decodeUnaryAAC(int?nDecodedValue,Qstate*signContextQstate*valueContext) { int?nBits=-1; bit?bBit; do{ qf_decode(&bBit,valueContext); nBits++; }while(bBit==0); if(nBits!=0){ qf_decode(&bBit,signContext); if(bBit==0) *nDecodedValue=nB?its; else
*nDecodeValue=-nBits;?}?else *nDecodedValue=0;?}
The qf_decode () that is adopted in above-mentioned function d ecodeSignedAAC () and decodeUnaryAAC () is used to read position 1 and is defined by the document ISO/IEC 14496-2:1999 Coding ofAudio-VisualObject:Visual that International Standards Organization is authorized from the bit stream of an adaptive arithmetical coding.
The key value data that 2410 reception entropys are deciphered against circulation DPCM operator 2420 from entropy encoder are also checked from the number of times of the DPCM of key value title decoder 2110 inputs.If the number of times of DPCM is 0, in step S24130, the rotation differential data that contrary circulation DPCM operator 2420 will be deciphered
Figure S06175350X20060420D000611
Output in the inverse quantizer 2430, because the key value data of deciphering from the entropy of entropy encoder 2410 inputs are the rotation differential datas that quantize.
On the other hand, if the number of times of DPCM is 1, contrary circulation DPCM operator 2420 is carried out a contrary circulation DPCM operation at step S24135, because the entropy decoding key value data of importing from entropy encoder 2410 are DPCM rotation differential datas of circulation.
Suppose that nKVQBit represents the re-quantization position, contrary circulation DPCM operator 2420 is at the rotation differential data
Figure S06175350X20060420D000612
Upward carry out a contrary circulation DPCM operation and the Cycle Difference divided data of generating quantification in step S24135 with equation (51)
Q &cup; i - 2 / = Q &cup; i - 2 - ( 2 nKVQBits - 1 ) ( Q &cup; i &GreaterEqual; 0 ) &CenterDot; &CenterDot; &CenterDot; ( 51 )
Q &cup; i - 2 / = Q &cup; i - 2 - ( 2 nKVQBits - 1 ) ( Q &cup; i &GreaterEqual; 0 )
(i=2,…nNumberOfKeyValue-1)
After this, contrary circulation DPCM operator 2420 is used respectively With Obtain a contrary DPCM value A and a contrary DPCM value B, shown in equation (52).
A = Q &cup; i - 2 + Q ~ i - 1 . . . ( 52 )
B = Q &cup; i - 2 &prime; + Q ~ i - 1
(i=2 ..., nNumberOfKey Value-1) if B+ (2 NKVQBit-1-1) 0 and a maximum in a quantizing range between, contrary circulation DPCM operator 2420 with B output as against circulation DPCM data
Figure S06175350X20060420D000621
On the other hand, if B+ (2 NKVQBit-1-1) less than 0 or during greater than the maximum in quantizing range, contrary circulation DPCM operator 2420 output A conducts
An example of C++ program code has wherein write out the aforesaid operations of contrary circulation DPCM operator 2420, as shown in Figure 3.
Table 5
ICDPCM(int*curIDPCMKeyValue,int deltaKeyValue,intprevICDPCMKeyValue) { int circularDelta; int tempIDPCMKeyValue; prevICDPCMKeyValue+=((1<<(nKVQBit))-1); if((deltaKeyValue>=0.0) circularDelta=deltaKeyValue-((1<<(nKVQBit)-1); else circularDelta=deltaKeyValue+((1<<(nKVQBit)-1); tempIDPCMKeyValue=circularDelta+prevICDPCMKeyValue; if((tempIDPCMKeyValue>=0.0&&(tempIDPCMKeyValue<((1<<(nKVQB it)-1))) *curIDPCMKeyValue=tempIDPCMKeyValue; else *curIDPCMKeyValue=deltaKeyValue+preyICDPCMKeyValue; *curIDPCMKeyValue=((1<<(nKVQBit)-1); }
Inverse quantizer 2430 receives the rotation differential data of the quantification that is generated by the contrary circulation DPCM operator 2420 of carrying out a contrary circulation DPCM operation ( Q ~ i = ( q ~ i , 1 , q ~ i , 2 , q ~ i , 3 ) ) , by
Figure S06175350X20060420D000632
The last operation with equation (53) execution one re-quantization restored a rotation difference value ( Q ~ ^ i = ( q ~ ^ i , 0 , q ~ ^ i , 1 , q ~ ^ i , 2 , q ~ ^ i , 3 ) T ) , will in step S24140, rotate difference value Output in the quaternion multiplier 2440.
q ~ ^ i , 0 = 1 - ( q ~ ^ i , 1 2 , q ~ ^ i , 2 2 , q ~ ^ i , 3 2 ) . . . ( 53 )
q ~ ^ i , j = tan ( &pi; 4 * ( sgn ( q ~ i , j ) * | q ~ i , j | 2 nKVQBit - 1 - 1 ) )
(i=2,…,nNumberOfKeyValue-1,j=1,2,3)
After this, quaternion multiplier 2440 receives the rotation difference value
Figure S06175350X20060420D000637
Quaternion multiplier
2440 is rotated difference value by importing in step S24154 Multiply by a rotation transformation value of key frame before by following equation (54) hypercomplex number Restore the rotation transformation value of a current key frame
Figure S06175350X20060420D0006310
(wherein Q ^ i = ( q ^ i , 0 , q ^ i , 1 , q ^ i , 2 , q ^ i , 3 ) T )。
Q ^ i = Q ~ ^ i &times; Q ^ i - 1 . . . ( 54 )
(i=2,…nNumberOfKeyValue-1)
After restoring a rotation transformation value, whether key value data decoder 2400 is checked recovery rotation transformation value in step S24156 corresponding with last key value data.If it is not corresponding with last key value data to restore the rotation transformation value, key value data decoder 2400 repeated execution of steps S24140 to S24154.On the other hand, be last key value data if restore the rotation transformation value, then in step S24158, key value data decoder 2400 will restore the output of rotation transformation value.
If the number of times of DPCM is 0, the rotation differential data of the quantification that contrary circulation DPCM operator 2420 will be deciphered (wherein Q &cup; i = q &cup; i , 1 , q &cup; i , 2 , q &cup; i , 3 )) output in the inverse quantizer 2430.Then, by the rotation differential data of re-quantization from contrary circulation DPCM operator 2420 inputs
Figure S06175350X20060420D000641
Generate a rotation difference value (wherein ( Q ~ ^ i = ( q ~ ^ i , 0 , q ~ ^ i , 1 , q ~ ^ i , 2 , q ~ ^ i , 3 ) T ) And will in step S24140 Output in the quaternion multiplier 2440.
q ~ ^ i , 0 = 1 - ( q ~ ^ i , 1 2 + q ~ ^ i , 2 2 + q ~ ^ i , 3 2 ) . . . ( 55 )
q ~ ^ i , j = tan ( &pi; 4 * ( sgn ( q ~ i , j ) * | q ~ i , j | 2 nKVQBit - 1 - 1 ) )
(i=1,…,nNumberOfKey?Value-1,j=1,2,3)
Even working as the number of times of DPCM is 0, the mode much at one (step S24150 to S24158) when quaternion multiplier 2440 will be not 0 with the number of times as DPCM is restored the rotation transformation value.When the number of times of DPCM was not 0, quaternion multiplier 2440 usefulness equatioies (56) were carried out the hypercomplex number multiplication.
Q i ^ = Q ~ ^ i &times; Q ^ i - 1 . . . ( 56 )
(i=1,…nNumberOtKeyValue-1)
Hereinafter, will the operation of directed interpolater synthesizer 2180 be described.
Figure 26 is the operational flowchart of directed interpolater synthesizer 2180.With reference to Figure 26, in step S26000, directed interpolater synthesizer 2180 receptions are deciphered key datas and decoding key value data and are received quantity and a breakpoint generate pattern and the keyword selection Q-character of key datas from title decoder 2110.
In step S26100, when the breakpoint generate pattern is an animation path preservation mode, directed interpolater synthesizer 2180 output decoding key datas and decoding key value data.Extracted under the situation of breakpoint in an animation path preservation mode, key data is corresponding with the key value data, therefore, there is no need to use interpolation to generate new key value data.Yet if extracted breakpoint in an animation keyword preservation mode, this represents only to be encoded simultaneously with the corresponding key value data of breakpoint, and all key datas are encoded and decipher.Therefore, in this case, key data is not corresponding with the key value data, therefore is necessary the key value data that interpolation will be described in following section way.
When the breakpoint generate pattern is an animation keyword preservation mode, in step S26200, whether thereby it is corresponding with key data that a counter of an index of the data of expression keyword selection Q-character is set up, exist so that calculate with the corresponding key value data of this key data.
Exist if directed interpolater synthesizer 2180 is checked in step S26300 with the corresponding key value data of the key data of being represented by this counter, then change step S26500 over to.
If not with the corresponding key value data of the key data of representing by counter, in step S26400, by using and the corresponding key value data of representing by two continuous breakpoints of key data, the current key value data of linear interpolation, directed interpolater synthesizer 2180 generates the key value data, and these two continuous breakpoints are included in by breakpoint before the represented key data of this counter and another breakpoint behind the key data of being represented by this counter.
After this, directed interpolater synthesizer 2180 checks whether all key value data have their correspondent keyword Value Datas and in step S26500 all key datas that do not have its corresponding key value data are carried out linear operation.If still there is the key data also do not checked, directed interpolater synthesizer 2180 refresh counters and execution in step S26300 to S26500 once more.If being checked all key datas, directed interpolater synthesizer 2180 are exported composite key data and composite key Value Data as necessarily to interpolater in step S26600.
Hereinafter, with describing the example of SDL LISP program LISP code,, can realize being used for according to decoding of the present invention necessarily to the device of interpolater these orientation interpolater decoding key data and key value data by this SDL LISP program LISP code.
Figure 29 is the figure that describes a class CompressedOrientationInterpolator.CompressedOrientationInterpolator is the highest class that is used to read necessarily to the bit stream of a coding of interpolater.KeyHeader, KeySelectionFlag and Key are used for reading and class in the corresponding key data information of keyword field data of a conventional interpolater from a bit stream.OrilKeyValueHeader and OrilDPCMKeyValue are used for reading class relevant and in the information of the corresponding key value data of directed interpolater key value field data of a routine.Function qf_start () is to use adaptive arithmetic code (AAC), is used for initialization arithmetic decoder before reading a bit stream, the key value data of wherein encoding.
Figure 29 B has provided deciphering the figure of the keyword title class that a required keyword title deciphers.
The quantity that keyword title class comprises quantity, quantization, inner key data, a DND title of key data and is actually used in the position of decoding decoding.NKeyQBit represents to be used in the quantization of restoring the floating-point key value in the re-quantization.NNumKeyCodingBit represents that of nNumberOfKey is long, and nNumberOfKey represents the quantity of key data.NkeyDigit represents a plurality of highest significant positions of original key data and is used for the decoding value that rounds off.
When the information of relevant linear keyword subregion was included in the keyword title, a Q-character blsLinearKeySubRegion was set to 1.In this case, the decoding heading message of a use Q-character blsLinearKeySubRegion thereafter can be calculated the keyword in the specific linear keyword subregion that is included in a whole keyword zone.BRangeFlag represents key data scope whether from 0 to 1.If the key data scope is not from 0 to 1, minimum in the key data scope and maximum are by decoded from a class KeyMinMax class.KeyMinMax regains minimum and the maximum that requires to be used for re-quantization.Above-mentioned each value can be divided into their mantissa and indexes separately.
NBitSize is the size of the position of nQIntraKey, and nKeyShift is the size of the initial bit of nKeyMax.NQIntraKey represents the size of the first quantification internal data and combines with the nQintraKeySign of a Q-character of representing nQIntraKey.NQintraKey is used as and restores the required radix of other quantized key digital data.In all Q-characters in being used in the interpolater compression, value " a 0 " expression one positive sign, and value " a 1 " expression one negative sign.NKDPCMOrder represents a value, and this value is that the number of times of DPCM subtracts 1.The number of times of DPCM 1,2 or 3.The quantity that quantizes internal data is identical with the number of times of DPCM.
A nKeyShift and a sign bit nKeyShiftSign are integers that is illustrated in the displacement in the key data decoder.If bShiftFlag is set to " true ", decoding nKeyShift and nKeyShiftSign.NDNDOrder is the number of times that secondary is divided (DND) operation.Above operating in, described DND in conjunction with a key data decoder.If the value of nDNDOrder is 7, then decipher bNoDND.BNoDND represents whether will carry out a contrary DND operation.NKeyMax is an employed maximum or a minimum value during the consecutive periods of a contrary DND operation.NKeyCodingBit represents to be used for the position of encoding keyword data.
BSignedAACFlag is illustrated in the decode procedure that will carry out during the AAC decoding.If bSignedAACFlag is set to 0, will carry out a signless AAC decode procedure.Otherwise, will carry out a signed AAC decode procedure.BKeyInvertDownFlag is a Boolean of representing whether will use nKeyInvertDown.NKeyInvertDown is used for converting all the quantized key digital data greater than himself to be not more than-1 negative value a integer.If nKeyInvertDown is set to-1, will carry out one so and move down operation.
Figure 29 C is the figure of expression one class LinearKey.In Figure 29 C, nNumLinearKeyCodingBit is expression to the encode quantity of necessary position of a plurality of predetermined linear prediction keywords.NNumberOfLinearKey is a value of expression linear prediction keyword.
Figure 29 D is the figure that describes a class KeyMinMax.In Figure 29 D, whether identical bMinKeyDigitSame be quantity a Q-character of the highest significant position of the quantity (nKeyDigit) of highest significant position of all keywords of expression and a minimum value in keyword.NMinKeyDigit is a value that is illustrated in the quantity of the highest significant position of minimum value in the keyword.NMinKeyMantissaSign is a value of the Q-character of expression nMinKeyMantissa.NMinKeyMantissa is a value that is illustrated in the mantissa of minimum value in the keyword.NMinKeyExponentSign is a value of the Q-character of expression nMinKeyExponent.
NMinKeyExponent is a value that is illustrated in the mantissa of minimum value in the keyword.
FKeyMin is a value that is illustrated in minimum value in the keyword.Whether identical bMaxKeyDigitSame be quantity a Q-character of the quantity nKeyDigit of highest significant position of all keywords of expression and a peaked highest significant position in keyword.NMaxKeyDigit is a value that is illustrated in the quantity of peaked highest significant position in the keyword.NMaxnKeyMantissaSign is a value of the Q-character of expression nMaxnKeyMantissa.NMaxnKeyMantissa is a value that is illustrated in peaked mantissa in the keyword.
Whether identical with nMinKeyExponent bSameExponent be illustrated in the Q-character of peaked mantissa in the keyword.NMaxKeyExponentSign is a value of the Q-character of expression nMaxKeyExponent.NMaxKeyExponent is a value that is illustrated in peaked mantissa in the keyword.FkeyMax is illustrated in a peaked value in the keyword.
Figure 29 E is the figure that describes a class OrilKeyValueHeader.The implication that is used in each variable in such is as follows.BPreserverKey represents whether a current decoding mode is an animation keyword preservation mode or an animation path preservation mode.When bPreserverKey was set to " true ", current decoding mode was an animation keyword preservation mode.
NKVQBit represents the size of a re-quantization position of key value data.NKVDPCMOrder represents to be used to decipher the number of times of the contrary DPCM operation of key value data.When nKVDPCMOrder=0, do not need to carry out a contrary circulation DPCM operation.On the other hand, when nKVDPCMOrder=1, should carry out a contrary circulation DPCM with 2 powers and operate.
Figure 29 F is the figure that describes a class OriDPCMKeyValueHeader.The implication that is used in each variable in such is as follows.FirstQKV_S, firstQKV_X, firstQKV_Y and firstQKV_Z represent four component s respectively, x, and first value of y and z constitutes a hypercomplex number (s, x, y, z) the key value data of expression quantification.NfirstXSign, nfirstYSign and nfirstZSign represent the Q-character of firstQKV_X, firstQKV_Y and firstQKV_Z respectively.SecondQKV_X, secondQKV_Y and secondQKV_Z represent three component x respectively, second value of y and z, and nsecondXSign, nsecondYSign and nsecondZSign represent the Q-character of secondQKV_X, secondQKV_Y and secondQKV_Z respectively.BblsMoreTwoKVs represents whether have decoded plural key value data in the time must carrying out a contrary circulation DPCM.X_keyvalue_flag, y_keyvalue_flag and z_keyvalue_flag represent each component x, and whether all quantized values of y and z are identical.
Figure 29 G is the figure that describes a class OrilKeyValueCodingBit.The implication of each variable is as follows in such.NnKVCodingBit represents to be used for storage quantification back except that the inner key value data (quantity of the position of all the quantized key word Value Datas the firstQKV_S in class OrilDPCMKeyValueHeader, firstQKV_X, firstQKV_Y, firstQKV_Z, secondQKV_X, secondQKV_Y and the secondQKV_Z.
NAllKeyValue represents a value that quantizes of each component of all key value data when the keyvalue_flag that is used for each component is set to 0.NSign represents the Q-character of nAllKeyValue.BlsUnaryAAC represents to be used to decipher each component x, a kind of self adaptation arithmetic quantization method of the quantized value of y and z.If BlsUnaryAAC is set to " true ", will use unaryAAC decoding function.On the other hand, if BlsUnaryAAC is set to " false ", then will use binaryAAC decoding function.
Figure 29 H is the figure that describes a class KeySelectionFlag.In such KeySelectionFlag, whether keyFlag represents encoded i key data.NNumOfKeyValue is the integer of expression with the quantity of decoded key value data.
Figure 29 I is the figure that describes a class Key.In such Key, nQKey is the array from the quantized key data of a bitstream interpretation.KeyContext is an environment (context) that is used to read the size of nQKey.KeySignContext is an environment that is used to read the symbol of nQKey.
DecodeUnsignedAAc is a function of signed decode procedure not that is used for carrying out adaptive arithmetic code with a given environment, and this will be described below.DecodeSignedAAC is a function that is used to carry out a signed decode procedure of the adaptive arithmetic code with a given environment, and this will be described below.
Figure 29 J is the figure that describes a class OrilDPCMKeyValue.The implication of each variable is as follows in such.DeltaKeyValue is used to comprise three component x, the key value data of the quantification of y and z with the form storage of hypercomplex number.The key value data that are stored in the quantification among the DeltaKeyValue use a function d ecodeUnaryAAC or decodeSignedAAC decoded from a bit stream.
KVXSignContext, kVYSignContext, kVZSignContext are used to use function d ecodeUnaryAAC or decodeSignedAAC to decipher three component x of DeltaKeyValue, the environment of y and z.
KVXUnaryContext, kVYUnaryContext, kVZUnaryContext are used to use function d ecodeUnaryAAC to decipher three component x of DeltaKeyValue, the environment of y and z.
KVXContext, kVYContext, kVZContext are used to use function d ecodeedAAC to decipher three component x of DeltaKeyValue, the environment of y and z.
Hereinafter, to be described in the method for measuring the error between an original rotation differential data value and a rotation differential data value according to performed being used in the error measure unit 2050 in the quantizer 2000 of third embodiment of the invention that is included in reference to third embodiment of the invention, and the method that is used to measure the error between an original rotation difference value and a rotation difference value, above-mentioned rotation differential data value is by to being included in the breakpoint withdrawal device 42 shown in Fig. 4 A to 4C respectively, 46, Error Calculator 42b in 48, quantizing among 46b and the 48b rotated difference value and carries out re-quantization and restore, and above-mentioned rotation difference value is by carrying out re-quantization and restore quantizing to rotate difference value.
According to the present invention, the method for measuring the error between an original rotation difference value and a recovery rotation difference value also can be used to measure the preceding original alignment interpolater of coding and pass through to decipher the necessarily error between interpolater that the directed interpolater of a coding generates.Therefore, necessarily, will extract breakpoint from it by breakpoint withdrawal device 42,46 or 48 to an animation path of interpolater, and be used in original rotation difference value in the error measure unit 250 will be described as with encode before necessarily corresponding to interpolater.Equally, will be described as corresponding by extracting certain that breakpoint constituted to an animation path of interpolater and the recovery rotation difference value that is used in the error measure unit 2050 with the key value data of deciphering directed interpolater.
Certain in the process of interpolater at coding, during quantizing, restore generation one error between directed interpolater at original alignment interpolater and.Here, original alignment interpolater and to restore error between directed interpolater be by using in original rotation transformation and restoring difference definition in the angle between rotation transformation.
In other words, suppose that being included in certain key value data in the interpolater node restores key value data with in a decoder its and be called as respectively With , wherein Represent a rotating shaft, and θ represents an anglec of rotation and satisfies θ ∈ [π, π], by rotation transformation, the object in a three dimensions based on With
Figure S06175350X20060420D000695
By respectively from an optional position Move to an optional position
Figure S06175350X20060420D000697
And from
Figure S06175350X20060420D000701
Move to an optional position , a quantization error is With Between difference and satisfy e &RightArrow; ( x &RightArrow; ) = y &RightArrow; - y &RightArrow; ^ , Represent with the hypercomplex number form
Figure S06175350X20060420D000706
With As shown in equation (57).
X = ( 0 , x &RightArrow; ) , Y = ( 0 , y &RightArrow; ) , Y ^ = ( 0 , y &RightArrow; ^ ) . . . ( 57 )
Work as expression
Figure S06175350X20060420D0007010
With Hypercomplex number be called as Q and
Figure S06175350X20060420D0007012
The time, can derive following equation.
Y=Q×X×Q *…(58)
X=Q *×Y×Q
At this moment, A * B represents the hypercomplex number multiplication, and A *The complex conjugate of expression A.Based on equation (57) and (58), can derive following equation.
Y ^ = Q ^ &times; X &times; Q * ^ = Q ^ &times; Q * &times; Y &times; Q &times; Q * ^ = Q error &times; Y &times; Q error * . . . ( 59 )
At this moment, Q ErrorBe to be illustrated in the rotation transformation aspect With
Figure S06175350X20060420D0007015
Between relation and define by following equation.
Q error = Q ^ &times; Q * . . . ( 60 )
When With
Figure S06175350X20060420D0007018
Between a difference anglec of rotation be called as θ ErrorThe time, use a hypercomplex number transformation for mula and equation (61) can obtain θ Error
&theta; error = 2 cos - 1 q o , error = 2 cos - 1 ( Q ^ &CenterDot; Q ) θ error∈[0,π]…(61)
At this moment, represent inner product operation.Equation (61) is defined in the instantaneous quantization error that the moment scheduled time takes place in all animation key frames, therefore, a third embodiment in accordance with the invention, the error measure unit 2050 usefulness equatioies (61) that are included in the quantizer 2000 calculate an original alignment interpolater and an error of restoring between directed interpolater.
In addition, available following equation is defined in the instantaneous quantization error of the moment scheduled time (t) so that derive the formula be used for obtaining in a whole animation quantization error at interval from equation (62).
e ( t ) = 2 arccos { Q ( t ) &CenterDot; Q ^ ( t ) } . . . ( 62 )
Derive a mean error E by in large quantities formula (62) being applied to whole key frame interval mAn and worst error E p, in the meantime, can use necessarily and carry out an animation to interpolater.
At this moment, for obtaining mean error E m, must at first obtain at interval [t I-1, t i] in the part and the E of error m i, as shown in figure 27.Hereinafter, as t at the fixed time I-1And t iWhen existing with the corresponding decoding key data of original key data, the scheduled time will be called as respectively
Figure S06175350X20060420D0007021
With
Figure S06175350X20060420D0007022
With original key value data Q I-1And Q iThe key value data of corresponding decoding will be hereinafter referred to as
Figure S06175350X20060420D0007023
With
Because the noise that during encoding keyword data, generates, the directly original animation path Q of calculating one original alignment interpolater i' with one decoding directed interpolater an animation path
Figure S06175350X20060420D000712
Between an error, as shown in figure 27.Therefore, [t at interval I-1, t i] must be divided into three sons at interval
Figure S06175350X20060420D000713
Figure S06175350X20060420D000714
With
Figure S06175350X20060420D000715
Then, use equation (63) to obtain With Quaternary numerical value.
Q &prime; i - 1 = SLERP ( Q i - 1 , Q i , t ^ i - 1 - t i - 1 t i - t i - 1 ) . . . ( 63 )
Q &prime; i = SLERP ( Q i - 1 , Q i , t ^ i - t i - 1 t i - t i - 1 )
In equation (63), function S LERP () is used to carry out the ball linear interpolation.
Because an animation path must be vowed the genuine fact in a three dimensions, as shown in figure 27, at interval
Figure S06175350X20060420D0007110
Must be divided into two sons at interval With
Figure S06175350X20060420D0007112
, these two sub calculating that must be separated from each other at interval then.At this moment, suppose between two animation paths, i.e. one group of Q iBe worth and one group Between value one distance is at the interval In t i" be reduced.Use following equation to calculate
Figure S06175350X20060420D0007115
With Between instantaneous error.
e i - 1 = 2 arccos ( Q &prime; i - 1 &CenterDot; Q ^ i - 1 ) . . . ( 64 )
e i = 2 arccos ( Q &prime; i &CenterDot; Q ^ i )
In addition, at the interval
Figure S06175350X20060420D0007119
In t i" with
Figure S06175350X20060420D0007120
Proportional, shown in equation (65).
t i &prime; &prime; = t ^ i - 1 + e i - 1 e i - 1 + e i ( t ^ i - t ^ i - 1 ) . . . ( 65 )
Quaternary numerical value and at t in the middle of calculating with following equation (66) i" instantaneous error located.
Q i &prime; &prime; = SLERP ( Q i - 1 &prime; , Q i &prime; , t i &prime; &prime; - t ^ i - 1 t ^ i - t ^ i - 1 ) . . . ( 66 )
Q ^ i &prime; &prime; = SLERP ( Q ^ i - 1 , Q ^ i , t i &prime; &prime; - t ^ i - 1 t ^ i - t ^ i - 1 )
e i &prime; &prime; = 2 &CenterDot; arccos ( Q i &prime; &prime; &CenterDot; Q ^ i &prime; &prime; )
Yet, obtain the instantaneous error of moment (t) at any time with following equation (67).
e ( t ) = 2 &CenterDot; arccos ( Q ( t ) &CenterDot; Q ^ ( t ) ) . . . ( 67 )
At this moment, Q ( t ) = SLERP ( Q &prime; i - 1 , Q &prime; i , t - t ^ i - 1 t ^ i - t ^ i - 1 ) And Q ^ ( t ) = SLERP ( Q ^ i - 1 , Q ^ i , t - t ^ i - 1 t ^ i - t ^ i - 1 ) .
Yet, calculate the instantaneous error e (t) of moment (t) at any time and be not easy.Therefore, use the linear approximation shown in approximation method (68) to determine e (t).
e ( t ) &cong; e i - 1 + t - t ^ i - 1 t i &prime; &prime; - t ^ i - 1 ( e i &prime; &prime; - e i - 1 ) ( t ^ i - 1 &le; t &le; t i &prime; &prime; ) e i &prime; &prime; + t - t i &prime; &prime; t ^ i - t i &prime; &prime; ( e i - e i &prime; &prime; ) ( t i &prime; &prime; &le; t &le; t ^ i ) . . . ( 68 )
At interval [t I-1, t i] in the part and the E of error m iAnd at the interval In a part and the E of worst error p iAlso can use approximation method (69) and (70) to obtain.
E p i &equiv; max t ^ i - 1 &le; t &le; t ^ i | e ( t ) | E m i &equiv; &Integral; t - 1 t i &prime; &prime; e 2 ( t ) dt + &Integral; t &prime; &prime; t ^ i e 2 ( t ) dt . . . ( 69 )
Approximation method (69) can be rearranged as follows.
E p i &cong; max { | e i - 1 | , | e i &prime; &prime; | , | e i | } E m i &cong; 1 3 ( t i &prime; &prime; - t ^ i - 1 ) { ( e i &prime; &prime; ) 2 + e i - 1 2 + e i &prime; &prime; e i - 1 } + 1 3 ( t ^ i - t i &prime; &prime; ) { e i 2 + ( e i &prime; &prime; ) 2 + e i e i &prime; &prime; }
At last, at a time interval [t Min, t Max] in an average E mAn and worst error E pCalculate with following approximation method (71).
E m &cong; 1 t max - t min &Sigma; i E i m . . . ( 71 )
E p &cong; max i E i p
Therefore, being included in Error Calculator 42b, 46b in the breakpoint withdrawal device 42,46 and 48 shown in Fig. 4 A to 4C and 48b uses equation (71) to calculate an original alignment interpolater and respectively to restore the error in the directed interpolater and can measure more accurately because because the image in a space of quaternions that a quantization error is brought is vowed genuine program.
Figure 28 is the figure of comparing with a conventional method of the key value data that are used to encode according to the performance of the method for the key value data that are used to encode of the present invention.As shown in figure 28, of the present invention according to being used to encode necessarily to the interpolater method, when the predetermined number of bits that is used to encode to provisioning request, and to compare in the MPEG-4 of routine BIFS PMFC method, image vows that genuine program can be reduced considerably.
The present invention can realize by the computer-readable code that writes on the computer readable recording medium storing program for performing.Here, comprise can be by the recording medium of any kind of of a computer system reads for computer readable recording medium storing program for performing.For example, this computer readable recording medium storing program for performing may comprise-ROM ,-RAM ,-CD-ROM, a tape, a floppy disk, an optical data storage, carrier wave (by the Internet transmission) or the like.Computer readable recording medium storing program for performing can be dispersed to the computer system that is connected on the network, and a calculating function reads this recording medium with a mode of disperseing.
According to the present invention, being used to encode necessarily can keep the high-quality animation with encode animation key data and key value data of high efficiency simultaneously to the method and apparatus of interpolater.In addition, according to the present invention, by utilizing the method for measuring the error between the animation data path to keep the high-quality animation is possible, and, also may reduce key data and the key value data volume that to be encoded considerably by utilizing resampling method and breakpoint of the present invention to extract.
In addition, by calculating a rotation difference value, high-quality with high compression ratio animation might be provided, and this rotation difference value can fully be reflected in and certain redundancy in the corresponding rotation transformation of the key data of interpolater, and the key value data of this orientation interpolater of therefore encoding.
The present invention simultaneously clearly represents and described with reference to its preferred embodiment, can make a change form and details under the situation that does not break away from the spirit and scope of the present invention that limited by accessory claim to those skilled in the art.

Claims (2)

1. method that is used to decipher bit stream, directed interpolater is encoded into this bit stream, and this orientation interpolater comprises the key value data of the rotation of the key data that is illustrated in the position of key frame on the time shaft and indicated object, and described method comprises:
Decipher described bit stream by entropy and generate differential data;
If the division of this differential data process during encoding is divided number of times (nDNDOrder) again greater than 0, then divide the pulse code modulation operations to generate the quantized key digital data by described differential data being carried out contrary division again, contrary folding, contrary displacement and the unfavourable balance of dividing, if it is 0 that number of times is divided in the division of this differential data again, then described differential data is carried out against folding, contrary displacement and unfavourable balance and divided the pulse code modulation operations, if it is-1 that number of times is divided in the division of this differential data again, then described differential data is carried out against displacement and unfavourable balance and divided the pulse code modulation operations; Wherein,, then carry out moving down after the operation, carry out contrary the division and division operation if the division of process is divided number of times (nDNDOrder) again greater than 0 and determine that moving operation on decoded differential data is through one is encoded during described differential data is being encoded,
Generate the recovery key data by the described quantized key digital data of re-quantization;
Entropy decoding is from the key value data of described bit stream, with box lunch be included in differential pulse code modulation number of times (nKVDPCMOrder) in the key value head be 1 o'clock by the key value data being carried out contrary circulation differential pulse code modulation operations generating quantification rotation differential data, and generating quantification is rotated differential data when this differential pulse code modulation number of times is 0;
Generate the rotation difference value of current key frame by the described quantification of re-quantization rotation differential data, the difference that described rotation difference value is used to be applied to by the hypercomplex number key value data that equal each key frame between the rotation transformation of object is rotated described object;
Multiply by the rotation transformation value that the decoding rotation transformation value of key frame before generates described current key frame by rotation difference value hypercomplex number with current key frame;
By the synthetic key data of having deciphered with utilize and describedly deciphered key data and deciphered the key value data by the key value data of ball linear interpolation, generate directed interpolater, if wherein the keyword of current key frame selects sign to be set to 0, then recover the key value data of present frame by described preceding key frame of interpolation and key frame subsequently.
2. method according to claim 1, wherein said contrary divide and the execution of division operation comprises:
Execution moves down operation; Wherein by checking that whether the predetermined integers nKeyInvertDown that comprises in the described bit stream makes the nKeyInvertDown that comprises in the described bit stream be used to determine that whether decoded differential data is encoded through moving operation on one greater than 0, and Integer n KeyInvertDown is used for converting all the quantized key digital data greater than himself to be not more than-1 negative value a integer; And
Carry out and contraryly to divide not only that division operation reaches the division of described differential data process during encoding but also divides number of times (nDNDOrder) so repeatedly, the execution that wherein should contrary divide not only division operation comprises: if passed through maximum (nKeyMax) in the differential data of folding operation more than or equal to 0 and contrary division but also to divide number of times be not 1, then carry out contrary following stroke of operation, if predetermined maximum (nKeyMax) is less than 0 then the contrary last stroke operation of execution, if the contrary the last time predetermined maximum (nKeyMax) of dividing not only in the division operation is then carried out contrary cutting operation more than or equal to 0 and contrary division but also to divide number of times be 1.
CN 200610075350 2001-11-27 2002-11-27 Method and apparatus for encoding and decoding directional interpolator Expired - Fee Related CN1856105B (en)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US33313001P 2001-11-27 2001-11-27
US60/333,130 2001-11-27
US33454101P 2001-12-03 2001-12-03
US60/334,541 2001-12-03
US34210101P 2001-12-26 2001-12-26
US60/342,101 2001-12-26
US36959702P 2002-04-04 2002-04-04
US60/369,597 2002-04-04
KR73044/02 2002-11-22
KR10-2002-0073044A KR100499135B1 (en) 2001-11-27 2002-11-22 Encoding/decoding method and apparatus for orientation interpolator

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNB021611157A Division CN1277239C (en) 2001-11-27 2002-11-27 Method and device for coding and decoding oriented internal inserter

Publications (2)

Publication Number Publication Date
CN1856105A CN1856105A (en) 2006-11-01
CN1856105B true CN1856105B (en) 2011-08-24

Family

ID=36076905

Family Applications (8)

Application Number Title Priority Date Filing Date
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 200710084973 Expired - Fee Related CN101009837B (en) 2001-11-27 2002-11-27 Method for encoding bit stream of orientation interpolator
CN 200610075350 Expired - Fee Related CN1856105B (en) 2001-11-27 2002-11-27 Method and apparatus for encoding and decoding directional interpolator
CN 200610168615 Expired - Fee Related CN100546386C (en) 2001-11-27 2002-11-27 The method and apparatus of the key value data of Code And Decode coordinate built in symbol
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 200610094359 Expired - Fee Related CN100581253C (en) 2001-11-27 2002-11-27 Method and apparatus for decoding bit stream
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

Family Applications Before (2)

Application Number Title Priority Date Filing Date
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 200710084973 Expired - Fee Related CN101009837B (en) 2001-11-27 2002-11-27 Method for encoding bit stream of orientation interpolator

Family Applications After (5)

Application Number Title Priority Date Filing Date
CN 200610168615 Expired - Fee Related CN100546386C (en) 2001-11-27 2002-11-27 The method and apparatus of the key value data of Code And Decode coordinate built in symbol
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 200610094359 Expired - Fee Related CN100581253C (en) 2001-11-27 2002-11-27 Method and apparatus for decoding bit stream
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

Country Status (2)

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

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4835554B2 (en) * 2007-09-06 2011-12-14 ソニー株式会社 Encoding apparatus and method, decoding apparatus and method, and program
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
FR2982446A1 (en) 2011-11-07 2013-05-10 France Telecom METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS
FR2982447A1 (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
CN117768658A (en) * 2018-11-06 2024-03-26 北京字节跳动网络技术有限公司 Position dependent storage of motion information
CN117714685A (en) * 2019-06-18 2024-03-15 Lg 电子株式会社 Image decoding method and device
CN111272280B (en) * 2020-02-25 2020-12-15 电子科技大学 Method for improving resolution of spectrometer system by using inverse convolution
CN112965462B (en) * 2021-02-07 2022-08-16 深圳市千与诺科技有限责任公司 Signal generation method, system, medium and apparatus for process system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1098238A (en) * 1993-07-24 1995-02-01 电子科技大学 A kind of digital transmission method for high-definition television and sending and receiving apparatus
US6075901A (en) * 1998-12-04 2000-06-13 France Telecom Method and system for predictive encoding of arrays of data

Family Cites Families (8)

* 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
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
EP1114555A1 (en) * 1999-07-20 2001-07-11 Koninklijke Philips Electronics N.V. Encoding method for the compression of a video sequence
KR100608454B1 (en) * 1999-10-19 2006-08-02 삼성전자주식회사 A moving picture recording and/or reproduction apparatus using key frame
US6693645B2 (en) * 1999-12-01 2004-02-17 Ivast, Inc. Optimized BIFS encoder
EP1134702A3 (en) * 2000-03-14 2003-10-29 Samsung Electronics Co., Ltd. Method for processing nodes in 3D scene and apparatus thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1098238A (en) * 1993-07-24 1995-02-01 电子科技大学 A kind of digital transmission method for high-definition television and sending and receiving apparatus
US6075901A (en) * 1998-12-04 2000-06-13 France Telecom Method and system for predictive encoding of arrays of data

Also Published As

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

Similar Documents

Publication Publication Date Title
US7446771B2 (en) Method and apparatus for encoding and decoding an orientation interpolator
EP2278807B1 (en) Apparatus for decoding a bitstrom with an orientation interpolator
CN101237579B (en) Apparatus and method of up-converting frame rate of decoded frame
CN1856105B (en) Method and apparatus for encoding and decoding directional interpolator
US20060171533A1 (en) Method and apparatus for encoding and decoding key data
JP3521412B2 (en) Apparatus and method for encoding orientation interpolation node
JP3521411B2 (en) Apparatus and method for encoding orientation interpolation node information
CN100459460C (en) Data encoding and decoding method and device
CN101156318A (en) Predictor
KR100612828B1 (en) Coding apparatus and method for orientation interpolator node
CN100414996C (en) Method and apparatus for encoding and decoding key value data
EP1322120A2 (en) Method and apparatus for encoding and decoding key value data of orientation interpolator node
Da Cunha et al. On the information rates of the plenoptic function
EP1320265B1 (en) Method and apparatus for encoding and decoding position interpolator
Babkin et al. Data compression
Weber Adaptive search residual vector quantization with no side information
Sanikomm Hardware Implementation of a Novel Image Compression Algorithm

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: 20110824

Termination date: 20151127