CN1734502A - The method of the method for calculating path error and extraction path breakpoint - Google Patents

The method of the method for calculating path error and extraction path breakpoint Download PDF

Info

Publication number
CN1734502A
CN1734502A CN 200510091642 CN200510091642A CN1734502A CN 1734502 A CN1734502 A CN 1734502A CN 200510091642 CN200510091642 CN 200510091642 CN 200510091642 A CN200510091642 A CN 200510091642A CN 1734502 A CN1734502 A CN 1734502A
Authority
CN
China
Prior art keywords
data
key
path
value
error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200510091642
Other languages
Chinese (zh)
Other versions
CN100350433C (en
Inventor
金道均
郑锡润
张义善
禹相玉
李信俊
韩万镇
张敬子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1734502A publication Critical patent/CN1734502A/en
Application granted granted Critical
Publication of CN100350433C publication Critical patent/CN100350433C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

The method of calculating the error between first path and second path is provided, has utilized linear proximity from the method for the extracting data breakpoint formed by the path point that comprises a plurality of component datas with utilize linear proximity from the animation path that constitutes by the path point, to extract the method for breakpoint.The method of calculating the error between first path and second path comprises step: (a) a plurality of paths point is inserted in first and second animation paths, thereby makes first and second animation paths have the same paths point with regard to the reference data component in being included in each path point; (b), in first and second paths each is divided into the part of predetermined quantity, thereby makes the part of predetermined quantity correspond respectively to the path point according to the reference data component; (c) error between first and second animation paths of calculating in each part; (d) check whether the part of all predetermined quantities has been carried out step (c), and the error that obtains in step (c) is carried out standard.

Description

The method of the method for calculating path error and extraction path breakpoint
The application be that November 27, application number in 2002 are 02154293.7 the applying date, denomination of invention divides an application for the application for a patent for invention of " method and apparatus that the position interpolater is encoded and deciphered ".
Technical field
The present invention relates to a kind of method that the three-dimensional animation data are encoded and deciphered of being used for, more specifically say, relate to and be used for method and apparatus that the expression target is encoded and deciphered at the position of the position in three-dimensional animation path interpolater.
Background technology
In 3D computer game or virtual reality computer utility, extensively adopted three-dimensional (3D) cartoon technique.Virtual reality modeling language (VRML) is the exemplary of this 3D cartoon technique.
International multimedia standard such as MPEG-4 binary format (BIFS) that is used for scenery and virtual reality modeling language (VRML) uses the 3D animation of interpolater node support based on key frame.In MPEG-4BIFS and VRML, have to comprise scalar interpolater, position interpolater, coordinate built device, directed interpolater, the standard various interpolaters of interpolater and color interpolator in the ranks, these interpolaters and their function and feature are shown in Table 1.
Table 1
Interpolater Feature Function
The scalar interpolater The linear interpolation of scalar variable Can represent area, diameter and density
The position interpolater Linear interpolation on the 3D coordinate Parallel motion in 3d space
Directed interpolater The linear interpolation of 3D coordinate axis and rotation amount In 3d space, rotate
The coordinate built device The linear interpolation of the variable in the 3D coordinate The 3D variant
The standard interpolater The linear interpolation of standard 3D coordinate Can be illustrated in standard 3D vector
In variable
Color interpolator The linear interpolation of colouring information Can represent the variable in the color
In the interpolater shown in the table 1, the position interpolater is used to indicate the information of the position of relevant animation path, and is made up of key and key value field.Cipher key field uses between-∞ and the ∞ discontinuous numerical table in the scope to be shown in the position of each key frame on the time shaft.Each key value fields specify is formed with the information relevant in the position of the target of being represented by each key sometime and by three component x, y and z.In the key value field each comprise with cipher key field in the key value of the key value equal number that each had.
The example of position interpolater has been shown in Figure 1A and 1B.Specifically, Figure 1A shows key data, and Figure 1B shows the key value data.MPEG-4BIFS provides a kind of method that is used to encode and deciphers the interpolater node, is referred to as to predict MF coding (PMFC).
Fig. 2 is the block diagram of conventional PMFC scrambler and conventional PMFC code translator.As shown in Figure 2, in PMFC, use quantizer, differential pulse-code modulation (DPCM) manipulater and entropy coder that the key data and the key value data of position interpolater are encoded.Referring to Fig. 2, quantizer and DPCM manipulater have been eliminated the redundancy in key data and the key value data, and the DPCM manipulater is exported to entropy coder with the result of its operation.But, because PMFC only carries out entropy coding to the differential data that obtains from general DPCM operation, so it is effective inadequately aspect coded key data and key value data.In addition, because there is limitation in entropy coder, may provide high quality animation hardly.
Summary of the invention
In order to solve above-mentioned and other problems, one aspect of the present invention provides a kind of method and apparatus that is used to encode and deciphers the position interpolater, and they can provide the animation of the high-quality with high compression rate.
Another aspect of the present invention provides a kind of method of measuring the original position interpolater and passing through the error between the position interpolater of deciphering, and a kind of method of utilizing the error between the position interpolater of measuring original position interpolater and process decoding, the method for the breakpoint of extraction input position interpolater.
Therefore, in order to realize above-mentioned and other aspects of the present invention, a kind of device that is used for the coding site interpolater is provided, and this position interpolater comprises the key value data that are used to indicate the key data of the position of key frame on time shaft and are used for the position of indicating target.Described device comprises: a breakpoint extraction apparatus, be used for extracting the breakpoint of minimum number, but this may cause the error that is not more than the predetermined permissible error limit between first animation path and second animation that is produced by the breakpoint that is extracted from first animation path of forming by the position interpolater that inputs to it; A key data scrambler is used to the key data of encoding and importing from the breakpoint extraction apparatus; With a key value data encoder, be used to the key value data of encoding and importing from the breakpoint extraction apparatus.
In order to realize above-mentioned and other aspects of the present invention, a kind of device that is used for the coding site interpolater is provided, this position interpolater comprises and is used to indicate the key data of the position of key frame on time shaft and the key value data of indicating target position.This device comprises: a resampler, be used for to be sampled as the part with predetermined time interval of predetermined quantity by the animation path that key data and key value data are formed, and output comprises the position interpolater of the key value data of the key data of resampling and resampling; A key data scrambler is used to the key data of encoding and importing from resampler; And a key value scrambler, be used to the key value data of encoding and importing from resampler.
In order to realize above-mentioned and other the aspect of the present invention, a kind of device that is used for bit stream is decoded as the position interpolater is provided, comprise the key data that is used for indicating the position of key frame on time shaft and be used to indicate the position interpolater of the key value data of target location into this bit stream that is encoded, described device comprises: a key data code translator is used to decipher the key data from incoming bit stream; A key value data decoder is used to decipher the key value data from incoming bit stream; With a position interpolater compositor, be used for generating the position interpolater by synthesizing through key value data of deciphering and the key value data that the key value data of utilizing process decoding are carried out linear interpolation.
In order to realize above-mentioned and other aspect of the present invention, a kind of method that is used for the coding site interpolater is provided, this position interpolater comprises the key value data that are used to indicate the key data of the position of key frame on time shaft and are used for the position of indicating target, described method comprises: (b) by extract the breakpoint of minimum number from first animation path of being made up of the position interpolater, generation is with the key data and the key value data that are encoded, but this can cause the error that is not more than the predetermined permissible error limit between first animation path and second animation that will be produced by the breakpoint that is extracted; (d) be coded in the key data that produces in the step (b); And the key value data that (e) are coded in generation in the step (b).
In order to realize above-mentioned and other aspect of the present invention, a kind of method that is used for the coding site interpolater is provided, this position interpolater comprises the key value data that are used to indicate the key data of the position of key frame on time shaft and are used to indicate the target location.Described method comprises: (b) will be sampled as the part with predetermined time interval of predetermined quantity by the animation path that the position interpolater is formed, and produce the position interpolater of the key value data of the key data comprise resampling and resampling thus; (d) be coded in the key data that produces in the step (b); (e) be coded in the key value data that produce in the step (b).
In order to realize above-mentioned and other the aspect of the present invention, a kind of method that is used for bit stream is decoded as the position interpolater is provided, has comprised the key data that is used for indicating the position of key frame on time shaft and be used to indicate the position interpolater of the key value data of target location into this bit stream that is encoded.Described method comprises: (a) decoding is from the key data of incoming bit stream; (b) decoding is from the key value data of incoming bit stream; (c), generate the position interpolater by having that to carry out the key value data of linear interpolation through the key value data through decoding of the key data of decoding synthetic with utilizing through the key value data of decoding.
In order to realize above-mentioned and other aspect of the present invention, a kind of method that is used to calculate the error between first path of being made up of a plurality of first path points and second path be made up of a plurality of second path points is provided, wherein each first path point is made up of a plurality of data components, and each second path point is made up of a plurality of data components.Described method comprises: (a) will be inserted in first and second animation paths in a plurality of path points, thereby make first and second animation paths have identical path point with regard to the reference data component in being included in each path point; (b) according to the reference data component first and second animation paths are divided into the part of predetermined quantity, thereby make the part of predetermined quantity correspond respectively to the path point; (c) calculate error between first and second animation paths in each part; And (d) check whether the part of all predetermined quantities have been carried out step (c), then the error of acquisition in step (c) is carried out standard.
In order to realize above-mentioned and other aspect of the present invention, provide a kind of method of utilizing linear proximity from the path of forming by the path point that comprises a plurality of component datas, to extract breakpoint.Described method comprises: starting point and the end point of (a) extracting original path; (b) from undrawn path point, select a path point and utilize selected path point that other unselected path points are carried out linear interpolation; (c) error of calculating between the interpolation animation path of original path and the generation of use interpolation path point; (d) and (c) and extract the path point cause least error between original animation path and interpolation path to all non-selected path point execution in step (b); And (e) original path and use are included in step (d) but in all of the path point that extracts be extracted the error between the path that path point produces and the permissible error limit of being scheduled to compares, check that whether the error of calculating is less than the admissible limit of error, if, then finish the processing of extracting breakpoint, if no, then repeated execution of steps (b) arrives (d).
Description of drawings
By the detailed description of the preferred embodiments of the present invention being carried out below in conjunction with accompanying drawing, above-mentioned and other aspects of the present invention and advantage all will become clearer, wherein:
Figure 1A shows the key data of position interpolater, and Figure 1B shows the key value data of x, y and the z component of position interpolater;
Fig. 2 is the block diagram of MPEG-4BIFS PMFC scrambler and MPEG-4BIFS PMFC code translator;
Fig. 3 A is according to block diagram the preferred embodiments of the present invention, that be used for the position interpolater is carried out apparatus for encoding, and Fig. 3 B is according to process flow diagram the preferred embodiments of the present invention, that be used for the position interpolater is carried out Methods for Coding;
Fig. 4 A is a block diagram according to the example of the analyzer of the preferred embodiment of the present invention to 4C;
Fig. 5 A is the detail flowchart that shows step S320 shown in Fig. 3 B;
Fig. 5 B is the process flow diagram according to the resampling method of the preferred embodiment of the present invention;
Fig. 5 C is the process flow diagram according to the extraction breakpoint method of the preferred embodiment of the present invention;
Fig. 6 A shows the key data of primary key data and resampling and the animation path that Fig. 6 B shows original animation path and resampling;
Fig. 7 A shows method according to the extraction breakpoint of the preferred embodiment of the present invention to 7F;
Fig. 8 shows with key data and the key value data of occurring mode from the output of breakpoint extraction apparatus;
Fig. 9 A is the block diagram according to the key data scrambler of the preferred embodiment of the present invention;
Fig. 9 B is the block diagram at the DND processor shown in Fig. 9 A;
Figure 10 A is a process flow diagram according to the methods preferred embodiment of the present invention, the coded key data to Figure 10 G;
Figure 11 shows the example of Function e ncodeSignedAAC;
Figure 12 A shows according to the key data preferred embodiment of the present invention, that pass through to carry out the encoding operation acquisition to 12J;
Figure 13 A is the block diagram according to the key value data encoder of the preferred embodiment of the present invention;
Figure 13 B is the block diagram of the DPCM processor shown in Figure 13 A for block diagram and Figure 13 C that the quantization error shown in Figure 13 A minimizes device;
Figure 14 A is a process flow diagram according to the method preferred embodiment of the present invention, the coded key Value Data to 14H;
Result and Figure 15 B that Figure 15 A shows quantification key value data execution general forecast DPCM operation illustrate the result that the next prediction DPCM that quantification key value data execution process is revised operates;
Figure 16 A shows quantized data, and Figure 16 B and 16C show respectively the quantized data shown in Figure 16 A is carried out the result of DPCM operation and the quantized data shown in Figure 16 A is carried out the result that circulation quantizes the DPCM operation;
Figure 17 shows the example of function U nary AAC;
Figure 18 A and 18B show the example of function S Q AAC;
Figure 19 A is for being the process flow diagram according to the method preferred embodiment of the present invention, that be used to decipher the position interpolater according to the block diagram of the device preferred embodiment of the present invention, that be used to decipher the position interpolater and Figure 19 B;
Figure 20 is the block diagram according to the key data code translator of the preferred embodiment of the present invention;
Figure 21 A and 21B are the process flow diagram according to the method preferred embodiment of the present invention, the decoding key data;
Figure 22 A is the block diagram at the contrary DPCM processor shown in Figure 22 A according to the block diagram of the key value data decoder of the preferred embodiment of the present invention and Figure 22 B;
Figure 23 A is according to the process flow diagram preferred embodiment of the present invention, that decipher the methods of key value data to 23E;
Figure 24 is the process flow diagram according to the method for the key data preferred embodiment of the present invention, that be used for the synthesising position interpolater and key value data;
Figure 25 A and 25B show the method for carrying out, measure the error between animation path in analyzer shown in Fig. 3 A;
Figure 26 A shows the method that is used to measure the error between the position interpolater of position interpolater that will be encoded and decoding to 26C; And
Figure 27 is the process flow diagram that is used to measure the method for the error between the position interpolater of position interpolater that will be encoded and decoding.
Figure 28 A-28J is a part of program used in the present invention.
Embodiment
After this, in conjunction with the accompanying drawing that shows the preferred embodiment of the present invention, present invention is described more all sidedly.
Fig. 3 A is according to the block diagram preferred embodiment of the present invention, that be used for the device of coding site interpolater.Referring to Fig. 3 A, the described device that is used for the coding site interpolater comprises analyzer 40, key data scrambler 200, key value data encoder 300 and heading code device 400.
Fig. 3 B is according to the process flow diagram preferred embodiment of the present invention, that be used for the method for coding site interpolater.Referring to Fig. 3 B, the position interpolater that is encoded is transfused to described analyzer 40 at step S300.At step S320, analyzer 40 extracts from first animation path of the key value data of the x, the y that comprise described position interpolater and z component the key data and the key value data that are encoded, the key data that is extracted is exported to key data scrambler 200, and the key value data of being extracted are exported to key value data encoder 300.
At step S340, key data scrambler 200 uses the quantization bit of predetermined quantities to quantize from the key data of analyzer 40 inputs, by the key data that quantizes being carried out predetermined DPCM operation, produces differential data and to described differential data entropy coding.
At step S360, key value data encoder 300 uses the quantization bit of predetermined quantity to quantize from the key value data of analyzer 40 inputs, produces the differential data and the described differential data of encoding by described quantized data being carried out predetermined DPCM operation.
At step S380, heading code device 400 receives described key data of decoding and the required information and the described information of encoding of key value data from key data scrambler 200 and key value data encoder 300.
Structure and operation below in conjunction with the more detailed descriptive analysis device 40 of accompanying drawing, key data scrambler 200 and key value data encoder 300.
Fig. 4 A is the block diagram according to the example of the analyzer 40 of first embodiment of the invention.Though can 40 pairs of key value data of operational analysis device important (x, y and z) carry out and extract the key data that will be encoded and the processing of key value data, but, for convenience of explanation, following paragraph is only described the processing to the one-component of key value data.
Referring to Fig. 4 A, analyzer according to first embodiment of the invention comprises: resampler 43, be used for basis at the input position interpolater, first animation path is taken a sample the part of the predetermined quantity that has predetermined time interval each other, and will export to key coding device 200, key value scrambler 300 and heading code device 400 through first animation path of sampling; Breakpoint extraction apparatus 42, be used to extract the breakpoint of minimum number, but can avoid like this surpassing the predetermined permissible error limit, and described breakpoint extraction apparatus 42 is exported to key data scrambler 200, key value scrambler 300 and heading code device 400 with the breakpoint that is extracted at described first animation path with according to the error between second animation path of the breakpoint generation of extracting from first animation path; And selector switch 41, be used to respond an external input signal position interpolater of input is exported to resampler 43 or breakpoint extraction apparatus 42.Breakpoint extraction apparatus 42 comprises linear interpolation 42a, Error Calculator 42b and determining unit 42c.
The process flow diagram of Fig. 5 A shows the operation according to the analyzer 40 of first embodiment of the invention.Referring to Fig. 5 A, in step 325, selector switch 41 is from outside receiving position interpolater and signalization.This signalization comprises the production method signalization of the method that is used for determine producing the key data that will be encoded and key value data and is used for determining to produce the key data that will be encoded and the generation pattern signalization of the pattern of key value data.
In the paragraph below, will the pattern that be used to produce key data and key value data be described at first.
Analyzer 40 by minimizing input to it, the quantity of key frames of position interpolater reduces the quantity of key data and key value data.What-if device 40 has animation path preservation mode or animation key preservation mode according to the pattern signalization that inputs to it from the outside.
In the animation path preservation mode, the position interpolater only is used to describe the insertion to animation path, and is unwanted to the random access of key frame.For the position interpolater under the animation path preservation mode of in the predictive error scope, encoding effectively, key data in can the delete position interpolater and the key value data corresponding with key data.
On the other hand, in animation key preservation mode, must use such as the MPEG-4BIFS order of ' replacement ', ' deletion ' or ' insertion ' key frame is carried out random access.In animation key preservation mode, the quantity of the key data in the interpolater of position can not change.The back will be described animation path preservation mode and animation key preservation mode in more detail.
Once more referring to Fig. 5 A, selector switch 41 is according to the generation pattern from the outside input, selects to be used to produce the key data that will be encoded and the pattern of key value data.At step S330, selector switch 41 is to the position interpolater of breakpoint extraction apparatus 42 output inputs.If the generation pattern of input is the animation path preservation mode, then at step S330, selector switch 41 responses are exported the position interpolater of input and are produced key data and the required information of key value data to resampler 43 or breakpoint extraction apparatus 42 from the production method signalization of outside input.
Specifically, under producing the key data and key value data conditions that are encoded by resampling, selector switch 41 is exported to resampler 43 with the quantity (being the time interval) and the generation pattern of key data with the position interpolater.By extracting under breakpoint produces the key data and key value data conditions that are encoded, but selector switch 41 with original animation path and the permissible error limit and generation pattern between the path that produces of the breakpoint that will pass through to be extracted export to breakpoint extraction apparatus 42.
Resampler 43 is passed through with predetermined time interval, the animation path that position interpolater from selector switch 41 inputs produces is taken a sample, produce the key data of sampling and the key value data of sampling, and breakpoint extraction apparatus 42 extracts the breakpoint of minimum number at step S335, but can avoid the error between the animation path that is produced by the input position interpolater and the animation path that will be produced by the breakpoint that is extracted to surpass the predetermined permissible error limit like this.
The process flow diagram of Fig. 5 B shows the operation according to the resampler 43 of the preferred embodiments of the present invention.Referring to Fig. 5 B, at step S502, resampler 43 is from selector switch 41 receiving position interpolaters and will be by the quantity of the key data of resampling (m).To can be provided with or be set in advance predetermined value arbitrarily by the user by the quantity of the key data of resampling (m).
At step S504, resampler 43 is selected the first path point and the final path point by the original animation path of the position interpolater generation of input, and will be set to 1 by the initial value of the key data of resampling (i).
Then, in step S506, resampler 43 produces i key data with predetermined time interval.
Fig. 6 A shows the key data of primary key data and resampling.Because the key data of position interpolater of input is represented the position of key frame on time shaft, so key data is dull to be increased, but be irregular at interval between the key data, as shown in Figure 6A.
Therefore, as shown in Figure 6A, resampler 43 by the difference between the key data of the first path point that will be illustrated respectively in step 504 and select and final path point divided by will be by the quantity of the key data of resampling acquisition predetermined time interval, then with this predetermined time interval to being carried out resampling by the key data of resampling.
In step S508, resampler 43 is carried out linear interpolation by using original animation path, produces and the corresponding key value data of key data that produced by resampling.In other words, use with key value data that just key data after the key data of resampling is corresponding and with the key value data that just key data before the key data of resampling is corresponding, the key value data corresponding with the key data of resampling are carried out linear interpolation.
Then, in step S510, resampler 43 confirms that whether will have been carried out resampling by the key data of resampling to all handles and repeated execution of steps S506 and S508, till all key datas and their counterpart keys Value Data are all by resampling.
The process flow diagram of Fig. 5 C shows the method according to the extraction breakpoint of first embodiment of the invention, and Fig. 7 A shows according to each step the preferred embodiments of the present invention, extract breakpoint from the position interpolater to 7F.
To 7F, in step S520, the linear interpolation 42a of breakpoint extraction apparatus 42 is from selector switch 41 receiving position interpolaters and an admissible limit of error e referring to Fig. 4 A, 5C and Fig. 7 A ThFig. 7 A shows the animation path that is made of the position interpolater of importing.
Shown in Fig. 7 A, in step S522, linear interpolation 42a extracts the first path point Q of the animation path that is made of the position interpolater of importing 0With final path point Q n, and counter (i) is set to 1.
In step S524, linear interpolation 42a at random or sequentially is chosen in the first path point Q one by one 0With final path point Q nBetween the path point.Then, in step S526, linear interpolation 42a uses selected path to put linear interpolation does not also have selecteed path point, and exports the path point of selected path point and process interpolation to Error Calculator 42b.
In step S528, Error Calculator 42b calculates at original animation path with by selected path point with pass through error (e) between candidate's animation path that the path point of interpolation constitutes, and error (e) is exported to determining unit 42c.The method of the error of calculation (e) will be described hereinafter.
Whether still Error Calculator 42b checks at the path point that is not taken into account when the error of calculation (e) of existence in the middle of the path point of also not selected by linear interpolation 42a.If there is the path point that also is not taken into account when the error of calculation (e), then in step S530, Error Calculator 42b by repeated execution of steps S524 to S528, the error of calculating between described path point and original animation path.
Fig. 7 C shows step S524 to S530.Referring to Fig. 7 C, linear interpolation 42a passes through at the first path point Q 0With breakpoint Q 1Between a plurality of paths of linear interpolation point, at predetermined moment k 1Extract the breakpoint Q corresponding with key data 1With generation first candidate's animation path.Error Calculator 42b calculates the error e between original animation path and the first candidate's animation path 1After this, profit in a like fashion, linear interpolation 42a is by at the described first path point Q 0With breakpoint Q kBetween and at breakpoint Q kWith final path point Q nBetween a plurality of path points of linear interpolation extract another breakpoint Q kAnd produce k candidate's animation path.Error Calculator 42b calculates the error (e between original animation path and k candidate's animation path k).
If all path points of also not selected by linear interpolation 42a have been carried out step S524 to S530, so, all be that error between the candidate's animation path that produces to S530 according to step S524 is exported to determining unit 42c in original animation path and wherein each.Then, in step S532, determining unit 42c selects a breakpoint, and this breakpoint forms candidate's animation path that least error is arranged with original animation path, and the value of described counter (i) is added 1.
In step S534, determining unit 42c checks that whether error (e) between original animation path and candidate's animation path of being made of the breakpoint that is extracted is greater than admissible limit of error e ThAnd whether the value of counter (i) is greater than the quantity (n) of key data, promptly at the first path point Q 0With final path point Q nBetween the quantity of path point.
If error (e) is less than admissible limit of error e Th, then mean and extracted all breakpoints of encoding required.If last the selection equals ' n ' as the quantity of the breakpoint that will be encoded, mean that then the processing that all path points are extracted breakpoint all is done.
But, if the quantity of selected breakpoint less than n and error (e) greater than admissible limit of error e Th, this means the breakpoint that still existence will be extracted, the breakpoint that is extracted is exported to linear interpolation 42a, and then execution in step S524 is to S532.
To describe hypothesis below when the generation pattern is the animation path preservation mode, export to the data of key data scrambler 200 and key value data encoder 300 from resampler 43 and breakpoint extraction apparatus 42.
Resampler 43 is exported key data and key value data to key data scrambler 200 and key value data encoder 300 respectively, and respectively as key data that will be encoded and key value data.
Below in conjunction with Fig. 8, be described on the basis of generation pattern key data and key value data from 42 outputs of breakpoint extraction apparatus.
As shown in Figure 8, suppose that the breakpoint that is extracted at last is called as 0,3,6 and 8, utilize the key data and the key value data of key selected marker output and breakpoint 0,3,6 and 8 correspondences, be expressed as follows shown in the table.
Table 2
The key data of original path P0 P1 P2 P3 P4 P5 P6 P7 P8
The key selected marker 1 0 0 1 0 0 1 0 1
Structure according to the analyzer 40 of first embodiment of the invention has been described above.But to those skilled in the art, clearly, analyzer 40 can only be made up of breakpoint extraction apparatus 42 and not have selector switch 41 and resampler 43 or only be made up of resampler 43 and do not have selector switch 41 and breakpoint extraction apparatus 42.
Example according to the analyzer 40 of second embodiment of the invention will be described below.
Referring to Fig. 4 B, comprise breakpoint and the key data that output will be encoded and the breakpoint extraction apparatus 46 of key value data that is used to receive with the resampler 45 of resampling position interpolater and is used to extract the position interpolater of resampling according to the analyzer 40 of second embodiment of the invention.Breakpoint extraction apparatus 46 in the second embodiment of the invention is similar with the breakpoint extraction apparatus of first embodiment of the invention, also comprises linear interpolation 46a, Error Calculator 46b and determining unit 46c.
When the position interpolater was transfused to analyzer 40, the first animation path resampling that resampler 45 will be made of the position interpolater was the part that has the predetermined quantity of predetermined time interval each other.
Resampler 45 will be exported to the linear interpolation 46a of breakpoint extraction apparatus 46 by the position interpolater that the key value data of key data of taking a sample and sampling are formed.
Linear interpolation 46a by the step S522 shown in the execution graph 5C to S526, interpolation position interpolater, and the position interpolater of interpolation exported to Error Calculator 46b.Error Calculator 46b is by execution in step S528 and S530, calculate first animation path and second animation path formed by the position interpolater of described interpolation between error.Determining unit 46C selects to cause a path point of least error between described first and second animation paths, confirms that whether corresponding error is greater than admissible limit of error e Th, and confirm whether all path points of first animation path are all selected, and produce the key data and the key value data that are encoded.
As mentioned above, in analyzer 40 according to second embodiment of the invention, except breakpoint extraction apparatus 46 received the extraction breakpoint processing of carrying out by the position interpolater of forming from the key data and the key value data of resampler 45 outputs with to the animation path that is made of the position interpolater from resampler 45 inputs, the operation of the corresponding component in the operation of resampler 45 and breakpoint extraction apparatus 46 and the first embodiment of the invention was identical.
Below in conjunction with the example of Fig. 4 C description according to the analyzer 40 of third embodiment of the invention.
Referring to Fig. 4 C, analyzer 40 comprises: breakpoint extraction apparatus 48, be used for the receiving position interpolater, and from first animation path that constitutes by the position interpolater, extract breakpoint, and output key data and key value data; Also comprise resampler 49, be used for that to the second animation path resampling that is made of the position interpolater, this position interpolater is by forming from the key data and the key value data of 48 inputs of breakpoint extraction apparatus with predetermined time interval.Similar with the breakpoint extraction apparatus of the present invention first and second embodiment, breakpoint extraction apparatus 48 also comprises linear interpolation 48a, Error Calculator 48b and determining unit 48c.
Similar to the breakpoint extraction apparatus of first embodiment of the invention, key data from first animation path to resampler 49 outputs and key value data that breakpoint extraction apparatus 48 extracts from.
Resampler 49 is with predetermined time interval, to from animation path resampling 48 inputs of breakpoint extraction apparatus, that is made up of the position interpolater that comprises key data and key value data, and exports the key data and the key value data that are encoded.The function of resampler 49 is identical with the resampler of the present invention first and second embodiment, no longer repeats here.
Be exported to key data scrambler 200 and key value data encoder 300 respectively from the key data and the key value data of 40 outputs of the analyzer among the present invention first to the 3rd embodiment.
To 12J, the example according to the key data scrambler 200 of the preferred embodiment of the present invention is described below in conjunction with Fig. 9 A.
The block diagram of Fig. 9 A shows the example according to the key data scrambler 200 of the preferred embodiment of the present invention.Referring to Fig. 9 A, key data scrambler 200 comprises linear key coding device 900, quantizer 910, DPCM processor 920, shift unit 930, folding processor 940, DND processor 950 and entropy coder 960.
Linear key coding device 900 identifications are linear zone and this zone of encoding that increases of key data in whole key data scope wherein.Quantizer 910 uses the quantization method that can make the quantization error minimum, quantizes to input to its key data.DPCM processor 920 receives the key data that quantizes and produces the differential data of this key data.Shift unit 930 deducts the difference reference point that has highest frequency in all differential datas from differential data.Folding processor 940 is given positive number or negative zone with differential data transmission.DND processor 950 reduces the scope of the differential data of key data by described differential data being selected to carry out divide operation, going up divide operation and following divide operation.Entropy coder 960 uses and is used to function S ignedAAC or UnsignedAAC that the differential data on each bit-planes is encoded, the code differential data.
Below in conjunction with Figure 10 A and 10B, the operation of key data scrambler 200 is described.The process flow diagram of Figure 10 A and 10B shows the method according to the coded key data of the preferred embodiment of the present invention.
When key data was transfused to key data scrambler 200, the quantity of key data and the numerical digit of each key data were transfused to heading code device 400 and are encoded.Linear key coding device 900 is the linear key of search zone from the key data of input, be that key frame is by the zone with predetermined time interval set, key data has identical difference each other, thus, key data is linear to be increased, then, in step S9000, the linear key zone of at first encoding.
In a specific zone, use the key that has predetermined time interval therebetween such as famous 3D application software such as 3Dmax or Maya, produce animation based on key frame.In this case, can use the beginning in linear key data zone at an easy rate and finish key data and be present in quantity of key frames between them, the coded key data.Therefore, linear prediction is very useful for use the interpolater coded key in certain zone.
Following equation is used to linear prediction.
t ( i ) = t E - t S E - S + t S ( 0 &le; i &le; E - S , S < E ) . . . ( 1 )
Here, t SThe data of the key of expression partial linear zone beginning, t EThe data of the key that finish in expression partial linear zone, S represents t SSubscript and E represent t ESubscript.Use following equation can calculate from S key data to the specific region scope of E key data the actual key data and according to the error the key data of equation (1) linear prediction.
e i = t ( i ) - t i + s = t E - t S E - S i + t S - t i + S . . . ( 2 )
If use the maximal value in the middle of the error that equation (2) calculates to be not more than a predetermined critical value, then can think t iAt zone [t S, t E] in or be conllinear in certain error range.Use following equation (3) to determine maximum error value t iWhether with a specific region conllinear.
E p = MAX i = 0 , . . ( E - S ) | e i | = MAX i = 0 , . . . ( E - S ) | t E - t S E - S i + t S - t i + S | . . . ( 3 )
If then t iWith zone [t S, t E] conllinear.Here, nBits represents the bit number that is used to encode.
If E p &le; 1 2 nBits + 1 , Linear key coding device 900 is sought the partial linear zone, and then the beginning in partial linear key data zone and end key data are exported to floating number converter 905.The quantity that is included in the key in the linear key data zone is exported to heading code device 400 and is encoded.Use uniform enconding can reduce the quantity of the data that will be encoded significantly.
Use the floating number conversion that beginning key data and end key data are encoded, this will be described later.
Floating number converter 905 will be converted to decimal system by the key data that binary system is represented, so that coding beginning key data and end key data.
Computing machine is stored as described floating number 32 binary number.If provide the floating number of representing with binary system, then floating number converter 905 is converted to the mantissa and the index of decimal system with this floating number, and this processing is represented by following equation.
Figure A20051009164200182
For example, as follows, can utilize computing machine that floating number 12.34 is converted to binary number.
0 1 10001010111000010100011 2 10000010 3
1: symbol;
2: the mantissa of binary system;
3: the index of binary system.
As follows, can convert binary number to decimal number according to equation (4).
0 1 1234 2 2 3
1: symbol;
2: the mantissa of decimal system;
3: the index of decimal system.
For mantissa and index with decimal system are included in the bit stream, must calculate expression mantissa and the required bit number of index.Mantissa has the value between-38 and 38, can reinstate 7 bit representations with its symbol one thus.The required bit number of expression mantissa determines according to numerical digit.The bit number that the value of mantissa and this mantissa of expression need is shown in the following table.
Table 3
The value of mantissa The numerical digit of mantissa Required bit number
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
Use that said process is searched and conversion, the beginning in the described linear key data zone and finish key data and encoded according to the encoding process shown in Figure 10 C and the 10D, and export to heading code device 400 and be stored in the bit stream.
Figure 10 C and 10D show inputing to two processing that floating number is encoded of floating number converter 905.Below in conjunction with Figure 10 C and 10D, the method for floating number converter 905 coding floating numbers is described.
In step S9040, floating number converter 905 receives numerical digit Kd, the beginning key data S of primary key data and finishes key data E and according to equation (4) they are changed.
Floating number converter 905 S that at first encodes.Specifically, floating number converter 905 checks whether the numerical digit of S is different with Kd, if the numerical digit of S is different with Kd, obtains the numerical digit of S and export to heading code device 400 in step S9042.Floating number converter 905 usefulness function Digit () obtain the numerical digit of S.
If the numerical digit of S is greater than 7, then in step S9043, the bit that uses predetermined quantity is (in the present invention, according to the floating number mode of ieee standard 754, use 32 bits) S is exported to heading code device 400, thus the numerical digit of S can be included in the bit stream.
If the numerical digit of S is not 0 and less than 7, then in step S9044, floating number converter 905 is exported to heading code device 400 with the symbol of S.Use table 3 to obtain the required bit number of absolute value of the mantissa of coding S.Then, in step S9045, use from the bit number of table 3 acquisition the absolute value of the mantissa of S is exported to heading code device 400.In step S9046, floating number converter 905 calculates the index of S, and the symbol of S is exported to heading code device 400 and index is exported to heading code device 400 as for example bit of the predetermined quantity of 6 bits.This key data conversion makes and can reduce the bit number that is included in the described bit stream significantly.
If the numerical digit of S is 0, then to the end-of-encode of beginning key data because when the numerical digit of S is 0, corresponding floating number also be do not need to encode 0, so this method forwards to the end key data is changed.
After conversion and coding beginning key data S, 905 pairs of floating number converters finish key data E to be changed.The conversion of E is almost identical with the conversion of S.Specifically, in step S9047, check whether the index of E is identical with the index of S.If the index of E is identical with the index of S, only the index of expression E with the identical market bit of the index of S export to heading code device 400.If the index of E is different with the index of S, then in step S9048,, index and the market bit of E are exported to heading code device 400 in the mode identical with the index of S being exported to heading code device 400.
The key data that does not belong in the input key data in linear key zone is imported in the quantizer 910, and by according to predetermined quantization bit size, be nKeyQBit, quantize.
But, under the situation of the key data that uses decoder for decoding to quantize, because the error between the key data of primary key data and quantification can not be recovered raw data in good condition.Therefore, quantizer 910 of the present invention obtains maximal value and the minimum value in the middle of the input key data, and uses this maximal value and minimum value to quantize the input key data.In addition, the present invention includes a quantization error and minimize device 915, thereby can use maximal value and the minimum value of input in the middle of the key data to make error minimum between primary key data and their the quantification key data.
Among the step S9100, quantization error minimizes device 915 and quantizes in advance or re-quantization input key data in the method that use is used to control quantizing range, thereby can make the quantization error minimum.
Specifically, if the mixing maximal value that is used to quantize represent with Max, the controlled minimum value that is used to quantize is represented input value X with Min iExpression, the bit number that is used to quantize is represented with nQuantBit, so, utilizes following equation can obtain to quantize input value
Figure A20051009164200201
The re-quantization value And error e i
X ~ i = floor ( X i - Min Max - Min * ( 2 nQuantBit - 1 ) + 0.5 ) . . . ( 5 )
X ^ i = X ~ i * ( Max - Min ) 2 nQuantBit - 1 + Min
There are two kinds to be used to reduce sum of errors ∑ e iMethod.A kind of method that is used to reduce sum of errors is by controlling Min continuously, till the sum of errors minimum.Another kind of as described below.
e i = X i - X ^ i
At first, let us hypothesis X i=(i+n) Δ X+ ε i, wherein, X iThe order of indication input key data, the basic step-length of Δ X indication input data, n is an arbitrary integer and ε iIndication mean value is 0 random noise.
Below, work as d i≡ X i-X I-1=Δ X+ (ε iI-1) time,
Δ ' X=E[d i] and Min=Max-Δ ' X* (2 NQuantBit-1).
Can make the Min of quantization error minimum and Max be transfused to and be used to quantize key data to quantizer 910.
In step S9200, quantizer 910 receives and can make the maximal value Max and the minimum M in of quantization error minimum, and utilizes equation (6) to quantize key data fKey i
nQKey = floor ( fKey i - fKeyMin fKeyMax - fKeyMin ( 2 nKeyQBit - 1 ) + 0.5 ) . . . ( 6 )
Here, i represents to quantize the subscript of key data, nQKey iExpression quantizes the integer array of key data, fKey iExpression quantizes the array of the floating number of key data, and fKeyMax represents to minimize from quantization error the maximal value of device 915 inputs, and fKeyMin represents that the minimum value and the nKeyQBit that minimize device 915 inputs from quantization error represent the quantization bit size.In equation (6), function f loor (v) is the function that an output is not more than the maximum integer of certain floating point values v.
Quantizer 910 of the present invention can not use the algorithm of this minimizing quantization error, in this case, only uses minimum and maximum value fKeyMax and fKeyMin in the input key data to quantize.
Below in conjunction with Figure 10 E quantification treatment of the present invention is described more completely.
In step S9210, quantizer 910 receives key data, and checks that in step S9220 whether minimizing device 915 from quantization error has imported minimum and maximum value MAX and MIN.
If imported MAX and MIN, minimum and maximum value fKeyMax and fKeyMin that quantizer 910 is used to respectively quantize in step S9230 are set to MAX and MIN, and newly-installed minimum and maximum value fKeyMax and fKeyMin are exported to floating number converter 905.Through above-mentioned floating number conversion process, minimum and maximum value fKeyMax and fKeyMin are converted and encode and export to heading code device 400, thereby they can be included in the key title that uses in decoding.
If there is no minimize the value of device 915 inputs from quantization error, then in step S9240, quantizer 910 is respectively with the first key data fKey 0With last key data fKey N-1Be set to minimum value fKeyMin and maximal value fKeyMax.
Then, in step S9250, quantizer 910 check maximal value fKeyMax whether less than 1 but greater than 0 and minimum value fKeyMin whether greater than 0.If maximal value fKeyMax is not less than 1 or be not more than 0, so, minimum and maximum value fKeyMax and fKeyMin are exported to floating number converter 905 and are converted and encode by above-mentioned floating number conversion.Then, in step S9260, be converted and the minimum and maximum value fKeyMax and the fKeyMin that encode are included in the key title, thereby can when decoding, have used them.
On the other hand, if maximal value fKeyMax less than 1 and minimum value fKeyMin greater than 0, then in step S9270, check to be used in reference to be shown in the mark whether the key title that is used for deciphering will comprise minimum and maximum value fKeyMax and fKeyMin.If this mark is set up, thereby minimum and maximum value fKeyMax and fKeyMin can be included in the key title, execution in step S9260 then is so that export to heading code device 400 with minimum and maximum value fKeyMax and fKeyMin.If this mark also is not set, then quantizer 910 does not allow minimum and maximum value fKeyMax and fKeyMin are included in the title.
Under minimum and maximum value fKeyMax and fKeyMin are not included in situation in the title, suppose that key data scrambler and key data code translator are respectively applied for execution coding and decoding, thereby minimum and maximum value fKeyMax and fKeyMin are set to 1 and 0 respectively.In this case, quantizer 910 minimum and maximum respectively value fKeyMax and fKeyMin in step S9280 is set to 1 and 0.For the key data code translator, minimum and maximum value fKeyMax and fKeyMin are known, and therefore, they do not need to be included in the key title.
In step S9290, minimum and maximum value fKeyMax and the fKeyMin substitution equation (6) of quantizer 910 by will being provided with through above-mentioned processing quantizes the input key data and the key data that quantizes exported to DPCM processor 920.
DPCM processor 920 receives the key data that quantizes, and the key data that quantizes is carried out the DPCM of pre-determined number.Then, DPCM processor 920 is to the exponent number of heading code device 400 output DPCM and the internal key data of acquisition in each DPCM circulation, utilizes the exponent number of DPCM can obtain minimum value aspect dispersion.In step S9300, DPCM processor 920 will be exported to shift unit 930 by the differential data that DPCM produces.
Referring to Figure 10 F, in step S9310,920 pairs of inputs of DPCM processor key data is carried out the DPCM of pre-determined number and the period of DPCM is stored as the exponent number of DPCM.In a preferred embodiment of the invention, DPCM can be performed 3 times.
After this, in step S9320, DPCM processor 920 calculates each DPCM circulation result's dispersion.Here, described dispersion can be represented by deviation, standard deviation or interquartile range, in a preferred embodiment of the invention, can use interquartile range.
Then, DPCM processor 920 is selected the circulation of DPCM, by this circulation, can obtain the minimum value of dispersion, and exports the result of the exponent number of selected DPCM to shift unit 930.In step S9330, the circulation of selected DPCM, each DPCM round-robin internal key data and other required message segments of DPCM are exported to heading code device 400.But, in a preferred embodiment of the invention, if the quantity of key less than 5, is then only carried out DPCM one time.For example, carry out first circulation of DPCM according to equation (7).
Δ i=nQKey i+1-nQKey i …(7)
Here, i represents to quantize the subscript of key data, nQKey iExpression integer array, and Δ iThe expression differential data.
In step S9340, the bit number that the selected DPCM round-robin of DPCM processor 920 calculation codes result needs and by the differential data of the key data in predetermined memory (nQStep_DPCM) of DPCM generation.For those of ordinary skills clearly, can after the subsequent step of the key data of selecting to be encoded, carry out encode required, to the calculating of bit number.
Shift unit 930 is from being had the difference reference point (after this being referred to as pattern) of highest frequency by selection all differential datas of DPCM processor 920 inputs.Then, in step S9400, shift unit 930 deducts this pattern from all differential datas, so that great majority are also reduced the required bit number of coding with the data placement that is encoded around 0.
Carry out this shifting function that deducts pattern nKeyshift from the key data of all quantifications, this shifting function can be represented by following equation.
shift(nQKey i)=nQkey i-nKeyShift …(8)
Here, i represents to quantize the subscript of key data, nQKey iExpression integer array and nKeyShift represent mode value.As the result of shifting function, the differential data with highest frequency becomes 0, thereby can obviously reduce the required bit number of coding.
Be exported to folding processor 940 and DND processor 950, be included in the key title thereby mode value nKeyShift is exported to heading code device 400 by key data through shifting function.
In step S9500, the output of folding 940 pairs of shift units 930 of processor is carried out folding operation and the result of folding operation is exported to DND processor 950.
Folding operation is used to count in the zone by differential data being concentrated on plus or minus, reduces the scope at the extensive differential data that disperses in positive number zone and negative zone.In the present embodiment, carry out folding operation according to equation (9), so that differential data is concentrated in the described positive number zone.
Fold (nQKey i)=2nQKey iIf (nQKey i>0) ... (9)
=2|nQKey i|-1 (if nQKey i<0)
Here, i represents to quantize the subscript of key data, nQKey iExpression 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 calculation codes have passed through the required bit number of differential data of folding operation, and it is stored among the predetermined storer nQStep_fold.In this step, for those of ordinary skills clearly, the calculating of the required bit number of encoding can select will be by the subsequent step of the differential data of entropy coding after execution.The data that produce by folding operation in folding processor 940 are exported to DND processor 950.
In order to improve the efficient of entropy coding, in step S9600, the differential data of the key data of 950 pairs of inputs of DND processor is carried out the DND operation of pre-determined number, reduces the scope of differential data thus.
Referring to Fig. 9 B, DND processor 950 comprises: DND manipulater 952 is used for differential data is carried out the DND operation; The first differential data selector switch 954, being used for selecting according to the required bit number of coding will be by the differential data of entropy coding; Shift-up operation device 956 is used for the differential data that has been performed the DND operation is carried out shift-up operation; With the second differential data selector switch 958, be used for from only through the differential data of DND operation be performed the differential data of selecting to have low dispersion between the differential data of shift-up operation, and selected differential data is exported to entropy coder 960.
In the paragraph below, the DND operation of carrying out in the DND manipulater 952 will be described in.
When the differential data that has been performed folding operation in folding processor 940 is transfused to DND manipulater 952, they are divided into two groups, and the one group of differential data that has higher range than another group differential data is moved to the positive number zone by a frequency division function.This frequency division function defines by following equation.
divide(nQKey j,nKeyMax) ...(1O)
=nQKey j-(nKeyMax+1)
Figure A20051009164200241
Here, j represents the subscript of input difference data, nQKey jExpression integer array and nKeyMax represent to be carried out the central maximal value of differential data of folding operation.Particularly, under the situation of the border dense arrangement in the whole zone that occupies by all differential datas, use branch=nQKey at most of differential datas j-(nKeyMax+1)
Figure A20051009164200251
Frequently the whole zone that operation can reduce all differential datas significantly.
After divide operation, calculate dispersion, in this case, the required bit number of encoding is used as the measurement dispersion, so that can select minimum value in the bit size that is used for encoding.
After the DND operation, further carry out dissimilar DND operations, promptly go up divide operation or following divide operation.Determine that according to the positive scope size of differential data and the negative scope size of differential data it still is to carry out divide operation down that divide operation is gone up in execution.
If have on the occasion of the scope of differential data greater than the scope of differential data with negative value, then carry out following divide operation by following equation definition.
divide-down(nQKey j,nKeyMax) …(11)
=-2(nKeyMax-nQKey j+1)+1
Figure A20051009164200252
=nQKey j
Figure A20051009164200253
=2nQKey jIf (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, then carry out last divide operation by following equation definition.
divide-up(nQKey j,nKeyMin) …(12)
=nQKey j (nQKey j≥0)
=2·nQKey j ( nKeyMin 2 &le; nQKey j &le; 0 )
=2(nKeyMin-nQKey j-1)+1 ( nQKey j < nKeyMin 2 )
In equation (11) and (12), j represents to quantize the subscript of key data, nQKey jExpression integer array, nKeyMax represents nQKey jMaximal value, nKeyMin represents nQKey jMinimum value.
The operation of DND manipulater 952 is described below in conjunction with Figure 10 G.
When the differential data of described input key is during from folding processor 940 inputs, in step S9610, DND manipulater 952 obtains maximal value nKeyMax and the minimum value nKeyMin in the middle of the input difference data.Then, in step S9620, DND manipulater 952 compares the absolute value of nKeyMax and the absolute value of nKeyMin.If nKeyMax is not less than the absolute value of nKeyMin, then DND manipulater 952 is set to maximal value in the current DND operation cycle at step S9622 nKeyMax.
In step S9624, DND manipulater 952 checks whether the exponent number of DND operation is 1, in other words, whether the exponent number of checking the DND operation is 1, if, then in step S9630, DND manipulater 952 is carried out divide operation by with described maximal value substitution equation (10) to the input difference data.
After this, in step S9640, DND manipulater 952 uses function getQBit () to measure to be used to encode and has been used the required bit size of differential data scope that divide operation has reduced.In step S9650, if the exponent number of DND operation proves 1, the required bit size of then encoding is stored the value nQBitDND of the minimum dimension that is used to encode as indication, and the exponent number of in step S9655 DND being operated increases by 1.
Then, DND processor 952 once more execution in step S9610 to S9622.If the exponent number of DND operation is not 1 in step S9624, divide operation under then the DND manipulater is carried out in step S9634 is with described maximal value nKeyMax substitution equation (11).In step S9640, DND manipulater 952 calculation codes are performed down the required bit number of differential data of divide operation.If this number is less than the minimum value nQBitDND that stores in the last circulation of DND operation, then in step S9658, after the DND operation, it replaces the required minimum bit size of coding.
In step S9620, if the absolute value of minimum value nKeyMin is greater than the absolute value of described maximal value nKeyMax, then in step S9623, maximal value in the current circulation of DND operation is updated to minimum value, divide operation on carrying out in step S9628 then is with the nKeyMin in the described minimum value replacement equation (12).After this, in step S9640, DND manipulater 952 calculates the bit number of the differential data that has been performed divide operation of being used to encode.If this result calculated of proof is less than the nQBitDND that has stored in the last circulation of DND operation in step S9652, then in step S9658, it replaces and be used for the required minimum number bits nQBitDND that encodes after the DND operation.
DND processor 952 is carried out the DND operation of pre-determined number, and the execution number of times of DND operation can change.For example, in the present embodiment, the DND operation is performed 7 times.DND manipulater 952 is to the first differential data selector switch, 954 output nQBitDND and the differential datas corresponding with nQBitDND.DND manipulater 952 is to the exponent number of heading code device 400 output DND and make it possible to they are included in the bit stream, utilizes this exponent number to produce corresponding differential data.
The first differential data selector switch 954 receives and has been performed the differential data of shifting function, is performed the differential data of folding operation and be performed the differential data of DND operation, and determines and will carry out entropy coding to which differential data in the middle of these three differential datas.
Referring to Figure 10 A and 10B, if in step S9700, the required minimum number bits nQBitDND that is used for encoding after DND operation is not less than the size nQStep-DPCM of the required bit that is used for encoding after the DPCM operation, then the result of the first differential data selector switch, 954 selection DPCM and to they execution shifting functions.Then, in step S9710, the first differential data selector switch 954 is exported the result of shifting functions and is allowed them by entropy coding to entropy coder 960.In this case, the exponent number of DND operation is set to-1, and is exported to heading code device 400, and is included in the key title.
But, if the result that carries out in step S9720 of proof is less than nQStep-DPCM and be not less than the bit size that is used for encoding after folding operation, then the first differential data selector switch 954 will be exported to entropy coder 960 and allow them by entropy coding in step S9730 through the differential data of folding operation, in this case, the exponent number of DND operation is set to 0, and be exported to heading code device 400, and be included in the key title.
If be used for the required bit number minimum of code differential data after the DND operation, then 956 outputs of the first differential data selector switch, 954 upward displacement manipulaters are through the differential data of DND operation, then, shift-up operation device 956 calculates in step S9740 from first dispersion of the differential data of the first differential data selector switch, 954 inputs.Then, in step S9800,956 pairs of shift-up operation devices are carried out shift-up operations by following equation regulation through the differential datas of DND operation, and fall into a trap at step S9810 and to count shifting function result's second dispersion in.
shift-up(nQKey j,nKeyMax) …(13)
=nQKey jIf (nQKey j〉=0)
=nKeyMax-nQKey jIf (nQKey j<0)
Here, j represents the subscript of the differential data of the key data that quantizes, nQKey iExpression integer array and nKeyMax represent the maximal value in the middle of the differential data.
When input had been performed the differential data of DND operation and has been performed the differential data of shift-up operation, in step S9900, the second differential data selector switch 958 compared first dispersion and second dispersion.If second dispersion is less than first dispersion, then in step S9910, the second differential data selector switch 958 is exported the differential data of process shift-up operations and is allowed them by entropy coding to entropy coder 960.Minimum and maximum value nKeyMax that the second differential data selector switch 958 uses in the DND operation to heading code device 400 output and nKeyMin and the maximal value nKeyMax that in shift-up operation, uses, and permission is included in them in the key title.
But, if first dispersion less than described second dispersion, then in step S9920, the second differential data selector switch 958 to entropy coder 960 outputs through the differential data of DND operation and allow they are carried out entropy coding.Then, the second differential data selector switch 958 is only exported minimum and maximum value nKeyMax and the nKeyMin that uses in the DND operation to heading code device 400.In a preferred embodiment of the invention, can use the measurement of standard deviation as first and second dispersions.
Entropy coder 960 is carried out two kinds of different functions according to the feature of differential data to differential data.For example, the differential data that has been performed the differential data of DPCM operation and shifting function and only has been performed divide operation has positive and negative values, thus, and needs execution be used to the to encode processing of symbol and differential data itself of each differential data.On the other hand and since the differential data that has been performed folding operation only have on the occasion of, so, only carry out the processing that is used for the code differential data.
In a preferred embodiment of the invention, Function e ncodeSignedAAC is used to code differential data and their symbol, and Function e ncodeUnsignedAAC is used to only code differential data.
Figure 11 shows Function e ncodeSignedAAC example.Referring to Figure 11, when input value is 74 and the bit number of this input value that is used to encode when being 8, its symbol is 0, and is identical with binary number 1001010.In the following manner to symbol and its all bit-plane codings:
First step: according to from its highest significant position (MSB) to the order of least significant bit (LSB) (LSB), the binary number on each bit-plane is encoded;
Second step: check whether the current bit that is being encoded is 0;
Third step: if the current bit that is being encoded is not 0, the symbol of this binary number of then then encoding; And
The 4th step: the remaining bits of this binary number of encoding.
Function e ncodeUnsignedAAC uses the context about value will not have the value of symbol to be encoded to suitable arithmetic coding bit stream.Except having the symbol context, almost and function encodeSignedAAC is identical for this function.
Figure 12 A shows chart through the key data of according to a preferred embodiment of the invention operation to 12J.In 12J, transverse axis is represented the subscript of each key data at Figure 12 A, and Z-axis is represented the value of key data.
Figure 12 A shows the chart of the primary key data that input to scrambler of the present invention.Key data shown in Figure 12 A is exported to quantizer 910, is utilized 9 quantization bits then and quantizes, thereby obtain the quantification key data shown in Figure 12 B.If the quantification key data shown in Figure 12 B is carried out DPCM, then obtains the differential data shown in Figure 12 C.
Then, thus the differential data that uses the displacement of about 7 mode value to quantize key data obtains the differential data shown in Figure 12 D.After this, if the differential data after the displacement is carried out folding operation, only can obtain on the occasion of data, shown in Figure 12 E.
To the results are shown in Figure 12 F in 12H through what folding data execution DND operated shown in Figure 12 E.Specifically, Figure 12 F shows the result who folded data is carried out divide operation.Shown in Figure 12 F, the scope of positive key data value is from 0 to 28, and the scope of negative key data value is from-29 to 0, this means the scope of the scope of negative key data value greater than positive key data value.Therefore, need carry out go up divide operation, the results are shown among Figure 12 G of last divide operation to the data shown in Figure 12 F.
As the result of last divide operation, the scope of negative key data value is significantly reduced, thereby makes its scope than positive key data value much smaller.In the follow-up circulation of DND operation, the result of last divide operation is carried out down divide operation.Figure 12 H shows the differential data shown in Figure 12 G is carried out the result of divide operation down.The result who key data shown in Figure 12 H is carried out shift-up operation has been shown in Figure 12 I.
To shown in the 12G, the scope of key data and differential data is reduced gradually as Figure 12 A.But shown in Figure 12 H and 121, after shift-up operation, the scope of differential data is more a lot of than increasing in the past, and the differential data that has been performed time divide operation shown in this presentation graphs 12H is the differential data of will be encoded at last, shown in Figure 12 J.
Below in conjunction with accompanying drawing, be described in the heading code device 400 coding and be stored in information in the key title.
When input during with the key data that is encoded, the numerical digit of 400 pairs of key datas of heading code device and the quantity of the key that is encoded encoded.Then, heading code device 400 receives from linear key coding device 900 about the information in the linear key data zone that whether has the linear key coding of process in importing key and the quantity of the key data in this linearity key data zone, and receives the beginning and the end key data in the linear key data zone of process floating number conversion from floating number converter 905.
Receive at floating number converter 905 and can cause the minimum and maximum value of minimum quantization error and convert thereof under the situation of floating number, minimum and maximum value through conversion is inputed to heading code device 400 from floating number converter 905, thereby they can be used for re-quantization once more.In addition, the size of quantization bit also is transfused to heading code device 400 and is included in the title.
Heading code device 400 is received in exponent number and the internal key data of DPCM each circulation of DPCM from DPCM processor 920, and receives the mode value that has been used to shifting function from shift unit 930.In addition, heading code device 400 receives about the information of whether having carried out shift-up operation, the exponent number and the minimum and maximum value each DND operation cycle of DND of dispersion minimum that can make differential data from DND processor 950.At last, heading code device 400 receives the bit number that is used to encode and it is encoded to the key title from entropy coder 960.
The operation and the structure of key value data encoder 300 are described to 18B below in conjunction with Figure 13 A.
The block diagram of Figure 13 A shows the example according to the key value data encoder 300 of the preferred embodiments of the present invention, and Figure 14 A shows according to a preferred embodiment of the invention, the process flow diagram of the method for coded key Value Data.
Referring to Figure 13 A, described key value data encoder 300 comprises: normalizer 1300, be used for according to the maximum data scope in the middle of all component data scopes, and standard inputs to the key value data of its each component; Quantizer 1310 is used to use the quantization bit of predetermined quantity, quantizes the key value data of standard; Quantization error minimizes device 1320, is used for receiving minimum value and maximum magnitude from normalizer, regulates minimum and maximal value so that make the quantization error minimum, and the minimum and maximum value of output through overregulating; Floating number converter 1330 is used for minimizing device 1320 from quantization error and receives minimum value and maximum magnitudes, the floating number that maximum magnitude that will be through overregulating and minimum value convert decimal system to; DPCM processor 1340 is used to obtain to quantize the differential data and the predicted difference divided data of key data, and differential data and predicted difference divided data are carried out the circulation quantization operation to reduce their scope; And entropy coder 1350, be used for the entropy coding differential data and export the bit stream that key value data wherein have been encoded.
The operation of key value data encoder 300 is described below in conjunction with Figure 14 A.
In step S14000, normalizer 1300 receives the data of each component (x, y and z) and calculate the data area of x, y and z component according to equation (14) in step S14120.Then, normalizer 1300 calculates the maximum data scope in the middle of x, y and z component data scope by comparing in step S14140.
Max j = Max i = 0 n ( P &OverBar; ij ) . . . ( 14 )
Min j = Min i = 0 n ( P &OverBar; ij )
Range max=Max(Max x-Min x,Max y-Min y,Max z-Min z)
Then, the equation of normalizer 1300 below step S14160 uses, the data of each component in standard x, y and the z component.
In equation (14) and (15), n represents the quantity of data, i=0, and 1 ..., n-1 and j represent each among component x, y and the z.
Figure A20051009164200311
Shown in equation (15), use the maximum data scope Range in the middle of the data area of x, y and z component MaxStandard x, y and z component.As the result of this standard, about not having maximum data scope Range MaxThe redundancy of data of component increased, therefore, code efficiency has also increased.
The minimum value x_min of normalizer 1300 in the middle of the key value data of floating-point encoding device 1330 each component of output, y_min and z_min, in the middle of the important key value data maximal value max, relevantly with one-component also can therefrom obtain the information nWhichAxis of maximal value max and the numerical digit nKeyValueDigit of primary key Value Data, be included in the bit stream thereby make these information be used as the key value title.Normalizer 1300 is exported to quantizer 1310 with the key value data of standard.
Key value data each component, the process standard are transfused to quantizer 1310 in x, y and the z component, and then, quantizer 1310 uses the quantization bit nQuantBit of predetermined quantity that the key value data through standard are quantized in step S14200.
P ~ i , j = floor ( P &OverBar; i , j &times; 2 nQuantBit - 1 ) + 0.5 ) . . . ( 16 )
In equation (16), function f loor () is used to convert the floating number of input to be not more than this input floating number maximum integer.Quantizer 1310 minimizes the key value data that device 1320 outputs quantize to DPCM processor 1340 and quantization error.
The block diagram of Figure 13 B shows the example that minimizes device 1320 according to the quantization error of the preferred embodiments of the present invention.Referring to Figure 13 B, quantization error minimizes device 1320 and comprises: initial value is provided with unit 1321, is used to be provided with minimum error values e Min, the minimum value min ' through overregulating, quantization error minimum value min MinMinimum value updating block 1323 through overregulating is used for by carrying out the minimum value min ' of scheduled operation renewal through overregulating; Determining unit 1325 is used on the numerical digit of the minimum value of upgrading through overregulating and the basis of value, with quantization error minimum value min MinBe defined as to be used to the minimum value of re-quantization; With error amount updating block 1327, be used to use the minimum value through overregulating of renewal to calculate quantization error value, and if the error amount that is calculated less than minimum error values e Min, minimum value min ' that will be through overregulating and the error amount that is calculated are updated to quantization error minimum value min respectively MinWith minimum error values e Min, and the result that will upgrade exports to the minimum value updating block 1323 through overregulating.
Thereby with regard to quantization error minimize device 1320 by the input data carry out are quantized and re-quantization control quantizing range make quantization error minimum this true with regard to, quantization error minimizes device 1320 and quantization error, and to minimize device 915 similar.
Below in conjunction with Figure 14 C the operation that quantization error according to the present invention minimizes device 1320 is described.
In step S14320, initial value is provided with the quantized data that unit 1321 receives the data identical with the data that input to quantizer 1310 and exports from quantizer 1310.
Initial value is provided with unit 1321 obtains maximal value max and minimum value min and calculated minimum min from the data of being imported numerical digit.Then, in step S14340, initial value is provided with unit 1321 and calculates the quantification error e by using maximal value max and minimum value min that quantized data is carried out re-quantization, and this quantization error e is set to initial minimum error values e Min
Initial value is provided with unit 1321 and deducts from the minimum value min of input data quantization step QuantSpace is set to initial minimum value min ' through overregulating divided by 2 result and subtraction result.Then, in step S14360, initial value is provided with unit 1321 initial minimum value min ' through overregulating is set to quantization error minimum value min MinAnd will minimum value min ' export to minimum value updating block 1323 through overregulating through overregulating.
Minimum value updating block 1323 through overregulating upgrades the minimum value min ' through overregulating that unit 1321 inputs are set from initial value by carrying out predetermined operation.According to a preferred embodiment of the invention, the minimum value updating block 1323 through overregulating is provided with the minimum value min ' through overregulating of unit 1321 inputs and the minimum value min ' through overregulating that upgrades to determining unit 1325 outputs according to equation (17) renewal from initial value in step S14380.
min &prime; = Mantissa ( min &prime; + 1 ) 10 Exponent ( min &prime; ) . . . ( 17 )
In step S14400, determining unit 1325 is calculated the numerical digit of the minimum value min ' through overregulating that upgrades, result calculated and the numerical digit that the minimum value min in the middle of the input data of calculating is set in the unit 1321 at initial value are compared, and the minimum value min ' through overregulating that will upgrade with will import the minimum value min in the data and quantization bit size QuantSpace compared divided by the result that 2 result carries out.
If through the numerical digit of the minimum value min ' that upgrades and regulate numerical digit greater than the minimum value min in the middle of the input data, if perhaps through the minimum value min ' that renewal and regulate greater than min + QuantSpace 2 , Then determining unit 1325 is with the quantization error minimum value min of current storage MinBe defined as being used to the minimum value of re-quantization, and with quantization error minimum value min MinExport to output unit 1329.If process is upgraded and the numerical digit of the minimum value min ' of adjusting is not more than the numerical digit of the central minimum value min of input data and process is upgraded and the numerical digit of the minimum value min ' of adjusting is not more than min + QuantSpace 2 , Then the determining unit 1325 minimum value min ' through overregulating that will upgrade exports to error amount updating block 1327.
In step S14440, error amount updating block 1327 uses minimum value min ' through overregulating that upgrades and the maximal value max that unit 1321 acquisitions are set by initial value quantized data to be carried out re-quantization and calculates quantize error e.
Error amount e that error amount updating block 1327 will newly calculate in step S14460 and minimum error values e MinCompare.Result as a comparison is if the new error amount e that calculates is less than minimum error values e Min, then error amount updating block 1327 utilizes the new error amount e that calculates to upgrade minimum error values e in step S14480 MinAnd utilize the minimum value min ' that upgrades to upgrade quantization error minimum value min through overregulating MinOn the other hand, if newly the error amount e that calculates is greater than minimum error values e Min, error amount updating block 1327 execution in step S14380 and do not upgrade minimum error values e once more then MinWith quantization error minimum value min Min
Obtain by above-mentioned processing, be used to make the minimum and maximum value of quantization error minimum to be exported to floating-point encoding device 1330 and to be encoded as heading message.Then, this heading message is included in the bit stream that is produced by entropy coder 1350.
Be described in the step S14500 that carries out in the floating number converter 1330 below in conjunction with Figure 14 D.Floating number converter 905 shown in the function of floating number converter 1330 and Fig. 9 A is similar.
In step S14510, floating-point encoding device 1330 receives the minimum value x_min in the middle of the key value data of each component in x, y and the z component, y_min and z_min, the maximal value max with component of maximum magnitude, the information nWhichAxis relevant with the affiliated component of maximal value max and the numerical digit nKeyValueDigit of primary key Value Data.
In order to improve the efficient of coded key Value Data by the required bit number of minimizing coding, floating-point encoding device 1330 will be by the x_min of binary number representation according to equation (4) in step S14520, y_min, and z_min and max convert decimal number to.
Floating-point encoding device 1330 is checked x_min in step S14530, y_min, and whether the numerical digit of z_min is identical.If they are inequality, then in step S14540, they are exported to heading code device 400 and be encoded to heading message.
If x_min, y_min, the numerical digit of z_min is identical, and floating-point encoding device 1330 checks in step S14550 whether they are identical with the numerical digit of primary key Value Data.If x_min, y_min, the numerical digit of z_min is different with the numerical digit of primary key Value Data, and so, in step S14560, at x_min, y_min has only one to be exported to heading code device 400 and to be encoded as heading message in the numerical digit of z_min.
After this, in step S14570, floating-point encoding device 1330 is checked the maximal value max in the middle of all key value data that are chosen in x, y and z component in the middle of the key value data of which component, and whether the numerical digit of definite max is identical with the numerical digit of minimum value in the key value data of the component that therefrom obtains maximal value max.
If the numerical digit of the minimum value in the middle of the numerical digit of max and the key value data of component that can obtain maximal value max is inequality, then it is exported to heading code device 400 and is encoded as heading message.On the other hand, if the numerical digit of the minimum value in the middle of the key value data of the component under the numerical digit of max and the maximal value max is identical, then in step S14580, describes their identical status informations and be exported to heading code device 400.
The aforementioned operation of floating-point encoding device 1330 is used for the mantissa of the floating number after the code conversion, will describe the processing that the index information of floating number is encoded to the key value title below.
Floating-point encoding device 1330 is discerned x_min in step S14590, which is a maximal value in the middle of the y_min, the absolute value of the index of z_min and max, the maximal value of being discerned is stored as nMaxExp, and nMaxExp is encoded to the key value title of a plurality of bits.
After this, floating-point encoding device 1330 is checked x_min in step S14600, y_min, and whether the symbol of the index of z_min and max is identical.If identical, then bSameSignExp is set to 1 and at step S14610 their symbol is exported to heading code device 400.On the other hand, if their differences, then in step S14620, bSameSignExp is set to 0, then, with x_min, y_min, the end-of-encode of the information of the correlation of indices of z_min and max.
Referring to Figure 14 E, floating-point encoding device 1330 is with x_min, y_min, and z_min and max are encoded into before the heading message, and coding is through the symbol of the floating number of conversion in step S14630.
Then, in step S14640, floating-point encoding device 1330 is with reference to the required bit number of table 3 calculation code floating number, and the mantissa that will have a floating number of the bit identical with result of calculation exports to heading code device 400.
In step S14650, floating-point encoding device 1330 is with reference to the required bit number of table 3 calculation code nMaxExp and will export to heading code device 400 with the index that result of calculation has a floating number of same bits.
In step S14660, floating-point encoding device 1330 is checked x_min on the basis of bSameSignExp, y_min, and whether the index of z_min and max has identical symbol.If they do not have identical symbol, then in step S14670, their symbol is exported to heading code device 400 and coding, finish encoding process thus maximal value and minimum value in the middle of the key data of each component from x, the y of normalizer 1300 inputs and z component.
Floating-point encoding device 1330 is according to abovementioned steps, will minimize device 1320 inputs from quantization error and can make the minimum and maximum value of the quantization error minimum of each component be encoded to heading message.
The block diagram of Figure 13 C shows the example according to the DPCM processor 1340 of the preferred embodiments of the present invention, and Figure 14 F shows the process flow diagram according to the DPCM method of operating of the preferred embodiments of the present invention.
Referring to Figure 13 C, DPCM processor 1340 comprises: circulation DPCM manipulater 1341, thus it comprises the circulation quantification manipulater 1343 that is used to carry out the DPCM manipulater 1342 of general DPCM operation and output differential data and is used for the differential data execution circulation quantization operation that inputs to it is reduced their scope; Prediction loop DPCM manipulater 1345, thus it comprise be used for to the quantized data that inputs to it carry out the prediction DPCM operation and the prediction of output differential data prediction DPCM manipulater 1346 and be used for the differential data that inputs to it is carried out the circulation quantizer 1347 that the circulation quantization operation reduces their scope; And selector switch 1349, be used on the basis of the value of the differential data that inputs to it from selecting one by the differential data of circulation DPCM manipulater 1341 inputs with between by the differential data of prediction loop DPCM manipulater 1345 inputs.
The DPCM that describes according to the preferred embodiments of the present invention below with reference to Figure 14 F operates.
At step S14720, the key value data of quantification are transfused to circulation DPCM manipulater 1341 and prediction loop DPCM manipulater 1345.
In DPCM manipulater 1341, produce differential data by the quantized data that inputs to it being carried out general DPCM operation, and the differential data that is produced is exported to circulation quantizer 1343.Then, quantize carrying out circulation among the circulation quantizer 1343 step S14740a from the differential data of DPCM manipulater 1342 inputs.
Specifically, DPCM manipulater 1342 calculates differential data by the quantized data before deducting from current quantized data.Then, 1343 pairs of differential datas that calculated of circulation quantizer are carried out the circulation quantification.The operation of circulation DPCM manipulater 1341 is represented by following equation.
P ^ i = CircularQuantization ( P ~ i - P ~ i - 1 ) . . . ( i = 1,2 , . . . , n ) . . . ( 18 )
In equation (18), n represents the quantity of data.To describe circulation below quantizes.
In step S14740b, prediction DPCM manipulater 1346 in prediction loop DPCM manipulater 1345 is by carrying out prediction DPCM operational computations predicted difference divided data to the differential data that inputs to it, the differential data of the 1347 pairs of predictions of quantizer that circulate is then carried out circulation and quantized.
Specifically, prediction DPCM manipulater 1346 is by deducting predicted data and produce the predicted difference divided data and with its output from current quantized data.In order to obtain the predicted data relevant with current quantized data, obtain difference value by from quantized data the preceding, deducting at described quantized data before preceding quantized data, then it is added to the preceding on the differential data, thereby calculates the predicted data relevant with current data.
Can not be by the predicted data that prediction DPCM manipulater 1346 calculates above the maximum magnitude of the quantized data that inputs to it.In other words, if predicted data has surpassed the maximal value in the quantizing range of input quantized data, predict that then DPCM manipulater 1346 predicted data are set to import the maximal value in the quantizing range of quantized data, and produce the differential data relevant with current data by from predicted data, deducting current data.If predicted data predicts then that less than the minimum value in the quantizing range of input data DPCM manipulater 1346 is defined as the predicted difference divided data with current data.After this, this operation of prediction DPCM manipulater 1346 is referred to as " the prediction DPCM operation of modification ".
The predicted difference divided data of being calculated by prediction DPCM manipulater 1346 is transfused to circulation quantizer 1347 and is performed the circulation quantization operation.
The operation of prediction loop DPCM manipulater 1346 can be represented by following equation.
P ~ ^ i = ( 2 nQuaneBit - 1 ) - P ~ i
P ~ ^ i = P ~ i
P ~ ^ i = P ~ i - ( 2 &times; P ~ i - 1 - P ~ i - 2 ) (otherwise)
P ^ i = CircularQuantization ( P ~ ^ i )
In equation (19), i be 2 and n-1 between integer, n represents the quantity of data.
Figure 15 A show to have maximal value be 1024 and minimum value be the results that 50 quantized datas of 0 are carried out simple forecast DPCM operation, Figure 15 B shows the data identical with situation shown in Figure 15 A is carried out the result who operates through the prediction DPCM that revises, maximal value in the middle of predicted data value associated with the data surpasses data or be lower than under the situation of minimum value is regulated differential data associated with the data according to equation (19) thus.
As the result of simple forecast DPCM operation, shown in Figure 15 A and 15B, the predicted difference divided data has about 3,000 wide region.As the result through the prediction DPCM operation revised, shown in Figure 16 B, the predicted difference divided data has and is not more than 2,000 close limit.Easier acquisition has the predicted difference divided data than close limit in this means in through the prediction DPCM operation of revising than simple forecast DPCM operation.
To describe circulation below quantizes.
Figure 16 A shows quantized data and Figure 16 B shows the result who data shown in Figure 16 A is carried out the DPCM operation.Shown in Figure 16 B, after DPCM operation, the scope of differential data can be increased to the twice of the scope of using before the DPCM operation wide.Therefore we can say, use the circulation quantization operation, thereby make it possible to when the differential data scope that will be performed the DPCM operation remains within the input data area, carry out the DPCM operation.
Hypothesis in the quantizing range maximal value and minimum value by the connection basis that circulates each other on, carry out the circulation quantization operation.Therefore, if as the result's who two continuous quantized datas is carried out linear DPCM differential data greater than in the quantizing range peaked half, then can reduce their value by in the middle of each of differential data, deducting maximal value.
If differential data then can further reduce their value by the maximal value in the quantizing range is added on each of differential data less than half of the minimum value in the quantizing range.
Suppose X and
Figure A20051009164200371
Represent the differential data that input difference data and circulation quantize respectively, circulation quantizes and can be represented by following equation.
CircularQuantization ( X i ) = X ^ i = Min ( | X i | , | X i &prime; | ) . . . ( 20 )
X ' i=X i-(2 NQBits-1) (if X 〉=0)
X ' i=X i+ (2 NQBits-1) (otherwise)
In equation (20), nQBits represents the bit size that is used to quantize.Figure 16 C shows the differential data shown in Figure 16 B is carried out the result that circulation quantizes.
Referring to Figure 14 F, the predicted difference divided data that differential data that circulation quantizes and circulation quantize is exported to selector switch 1349 once more, and then, selector switch 1349 is carried out difference absolute value summation (SAD) operation to the differential data of input in step S14760.Here, carry out the SAD operation so that the absolute value of input data all is added.In step S14760, selector switch 1349 will circulate all the absolute value additions of quantification predicted difference divided data of all absolute value phase adductions of quantizing differential data that will circulate.
Then, selector switch 1349 in step S14780, will quantize differential data absolute value and with the absolute value of predicted difference divided data and compare, quantizing between differential data and the predicted difference divided data, select to have less absolute value and differential data and export selected differential data.Selector switch 1349 select to have less absolute value and the reason of differential data be that according to reasoning they have value than close limit.For example, in entropy coding predicted difference divided data, can expect that encode absolute values and the less required bit number of differential data are less than encode absolute values and the bigger required bit number of differential data.
For those skilled in the art clearly, SAD operation only is to select a kind of in the method for a certain group of differential data, and therefore, selector switch 1349 can adopt distinct methods to select differential data.
Referring to Figure 14 A, in step S14800, the differential data of exporting from DPCM processor 1340 is carried out entropy coding entropy coder 1350 once more.
Referring to Figure 14 G, the differential data of the key value data of each component in entropy coder 1350 entropy coding x, y and the z component.
Entropy coder 1350 checks with reference to the differential data of each component in x, y and the z component whether the quantized value of x, y and z component is identical, that is, whether the differential data of x, y and z component is 0, if they are identical, then finishes entropy coding in step S14810.For example, under the situation of three young animations, a row train is in the horizontal motion identical with the x component direction, and the key value data of x component change.But, in y and z component, have a small amount of the variation.So,, estimate that they will have identical value if described y and z component are quantized.Therefore, do not need all identical key value data of reality are encoded, thus, by only being encoded into heading message with one in the key value data can improve code efficiency.
If x, y are different with the quantification key value data of each component in the z component, then entropy coder 1350 is read the predetermined value that has been set in advance in step S14820.After this, entropy coder 1350 uses unaryAAC functions differential data to the quantification key value data of each component in x, y and the z component in step S14830 to encode, or uses in step S14850 and quantize the AAC function continuously they are encoded.
Below in conjunction with Figure 17 the unaryAAC function is described.The unaryAAC function is the bit of the symbol transition that will be encoded for being used to indicate described a plurality of 0 marker bit 1 that finishes and representing the predetermined quantity that a bit of the symbol of described symbol is formed by a plurality of 0, one.Here, described a plurality of 0 amplitude corresponding to described symbol.For example, use unary AAC function with 256 be encoded to by 256 0, be used to indicate described 0 marker bit 1 that finishes and represent that 256 symbol is a series of bits that 0 of plus sige is formed.Because the unaryAAC function makes expression that the redundance of the bit of the symbol that is encoded is increased, and has improved the efficient of coded identification thus.
With reference to figure 14H, 18A and 18B, will method that use SQAAC function coded identification be described.SQAAC function coding upgrades the symbol of quantizing range continuously.
Figure 18 A shows the method for using SQ AAC function coded identification.Shown in Figure 18 A, with the incoming symbol that is encoded be 1 and coding range in minimum value and maximal value be respectively 0 and 9.
Referring to Figure 18 A, in the first step of the described symbol of coding, coding range is divided into two subdomains, and promptly the upper bound and lower bound are checked the symbol that will be encoded then, and promptly 1, belong to the upper bound or belong to lower bound.Because 1 belong to lower bound, so 0 be encoded and lower bound is updated to a new coding range.Therefore, the new coding range that is used for second step is from 0 to 4.
In second step, from 0 to 4 new coding range is divided into two subdomains, and promptly the upper bound and lower bound check that then 1 belongs to the upper bound or belongs to lower bound.Because 1 belong to lower bound, so 0 is encoded, it is in the lower bound peaked 1 that the maximal value in the coding range is updated to.Therefore, being used for new coding range third step, that be generally lower bound is from 0 to 1.
In third step, the coding range of 0-1 is divided into higher limit and lower limit, checks that then 1 is and higher limit or identical with lower limit.Because 1 equals higher limit, so 1 is encoded, the minimum value in the corresponding encoded scope is updated to 1 then.Therefore, new coding range is [1,1], and thus, its maximal value and minimum value are mutually the same.When the minimum and maximum value in a coding range is identical, use the encoding process of SQAAC function to finish.
Figure 14 H shows in according to entropy coder 1350 of the present invention and to carry out, and uses the process flow diagram of processing of differential data of the key value data of SQ AAC function coding one-component.
Referring to Figure 14 H, entropy coder 1350 in step S14920, receive the required bit number nQP of differential data (after this being referred to as symbol), the entropy coding symbol of key value data, expression at first will be encoded into bit stream symbol following target nStartIndex and with the quantity (n) of the symbol that is encoded.
The sign of entropy coder 1350 coded identification in step S14940 also converts symbol to positive number.The reason that symbol is converted into positive number is not allow negative in subsequent treatment.
Entropy coder 1350 is discerned the maximal value in the middle of the positive number in step S14960, maximal value is stored as nMax, and nMax is encoded into the as many bit with nQP.
Entropy coder 1350 scope that symbol of initialization will be encoded therein in step S14980, and with the minimum value in this coding range And maximal value Be set to 0 and nMax respectively.In addition, entropy coder 1350 is with the mark of a bit
Figure A20051009164200393
Divide and task each symbol.Mark
Figure A20051009164200394
Be used in the process of coded identification, change probability model.When beginning, mark Be set to value of false and when the next value that will be encoded is 1, be converted into value of true, after this, replaced by other model by the end of the probability model that is used for coded identification so far.
Then, the difference reference point (i=nStartIndex) of each component is also represented the mark the bDone whether coding of all symbols has been finished is set to value of true in entropy coder 1350 x that recognition hypotheses is at first encoded in step S15000, y and the z component.
Entropy coder 1350 repeats the step S15020 that will be described below to S15180, up to maximal value that is used for each character-coded coding range and minimum value become identical till, that is, and till not having symbol also to need to be encoded.Here, when the minimum and maximum value in the coding range relevant with a symbol is identical, can thinks the coding of symbol is finished.
Entropy coder 1350 is checked in step S15020
Figure A20051009164200401
Whether equal
Figure A20051009164200402
If Equal
Figure A20051009164200404
Then method moves to the step of the next symbol of coding, if do not wait, in step S15040, bDone is set to value of false, this means that the coding of current sign (the current symbol that is being encoded) is not also finished.
Entropy coder 1350 calculates the intermediate value nMid of the coding range that is being used for current sign and in step S15080 the value of this intermediate value nMid and current sign is compared in step S15060.
nMid = P ^ i &CenterDot; max + P ^ i &CenterDot; min 2 + P ^ i &CenterDot; min + 1 . . . ( 21 )
In a preferred embodiment of the invention, use following equation to calculate intermediate value nMid.
In step S15100, result as a comparison if the current sign value is not more than described intermediate value nMid, this means that current sign belongs to lower bound, then sends one 0 to bit stream, and is used for the maximum magnitude of the coding range of current sign NMid replaces by intermediate value.
On the other hand, if the current sign value greater than intermediate value nMid, then send and give bit stream for one 1 and in the minimum value of the coding range that is used for current sign
Figure A20051009164200407
NMid replaces by intermediate value.When the value of the current symbol that is being encoded surpasses intermediate value nMid for the first time, in other words, when 1 is sent to bit stream for the first time,
Figure A20051009164200408
In step S15120, be set to value of true, thereby changed the probability model that is used for coded identification.
Two kinds of probability models that use in SQ AAC function are arranged.A kind of is notFoundContext, is used for entropy coding at the bit that sends output before 1 from each symbol for the first time, and another kind is FoundContext, is used for entropy coding at the bit that sends output after 1 from each symbol for the first time.The purpose of using two kinds of different probability models is to be increased in to produce 0 probability during using notFoundContext.Because the probability of generation 0 increases, the efficient of described entropy coding symbol has increased.
Then, entropy coder 1350 is checked in step S15140 Be very or vacation.If Be true, then entropy coder 1350 uses the FoundContext coded identification in step S15160, if false, entropy coder 1350 uses the notFoundContext coded identification in step S15180.
Encode the processing of current sign scope when being done when being used to from step S15020 to step S15180, this means that entropy coder only finished the coding of current sign in a stage, in step S15200, entropy coder 1350 subscript of will encoding increases by 1.Then, entropy coder 1350 checks in step S15220 whether all symbols in the current generation all are encoded.If the symbol that in the current generation, still need be encoded in addition, then entropy coder 1350 once more execution in step S15020 to step S15220.
When all symbols in a stage were all encoded fully, in step S15240, entropy coder 1350 checked that according to mark bDone whether the coding in all stages is all finished.If bDone is true, then entropy coder 1350 has been finished the whole encoding process of current component and has been begun follow-up component coding, if not very, then entropy coder 1350 once more execution in step S15000 to S15220, so that encode remaining symbol.
Figure 18 B shows and uses the encode processing of a plurality of symbols of SQAAC function.Particularly, Figure 18 B shows the processing of using SQ AAC function coding 0,1,2,3,4 and 9.
Once more referring to Figure 14 B, if according to device of the present invention, as to be used for coded data bit stream of key value data generation by all inputs of entropy coding, so, heading code device 400 will be deciphered coding in step S15300 the required information of key value data is encoded to heading message, and the key value heading message is added in the bit stream, and the bit stream that generated of output.
The quantity of the input key value data that heading code device 400 codings will be encoded and the quantization bit size of numerical digit and described key value data.Then, whether each in heading code device 400 identification x, y and the z component (for example has identical quantized value, even the key value data of each component in x, y and the z component change, because the intensity of variation of the key value data of described x component is very little, so the quantification key value of x component also has identical value) and the result is encoded to a mark.
For example, if the quantized value of x component is inequality, so, no matter be circulation DPCM operation or prediction loop DPCM operation all be used to the to encode key value data of x component, and will use unary AAC function also to be to use the key value data of the x component of SQ AAC function coding all will be encoded into mark no matter be.If do not expect to use the key value data of unaryAAC function coding x component, so, the coded-bit size of x component and will be encoded into the key value title by the beginning subscript of the x component of entropy coding.
Similarly, if y is different with the key value data of each component in the z component, so, be encoded into a title with the just in time corresponding y of the heading message of aforementioned x component and the heading message of z component.
If the quantized value difference of x component, then unary AAC function is not used to the key value digital coding to the x component, and is 1 with the beginning subscript of the x component that is encoded, and then, first reference point that quantizes key value is encoded as the internal reference point.According to identical mode, first of each component quantification key value reference point is encoded as an internal reference point in y and the z component.
Which component in heading code device 400 identification x, y and the z component has the maximum data scope.If the x component has the maximum data scope, then heading code device 400 variable nWhichAxis are set to 0.If the y component has the maximum data scope, then heading code device 400 nWhichAxis are set to 1.If component z has the maximum data scope, then heading code device 400 nWhichAxis are set to 2.Then, heading code device 400 uses floating-point encoding device 1330 that nWhichAxis, x_min, y_min, z_min and max are encoded into the key title.
Refer again to Fig. 3 A and 3B, according to device code key data and key value data of the present invention, as to be used for the coding site interpolater, and use heading code device 400 coding heading messages (at step S380), and export the bit stream that wherein said position interpolater has been encoded with the heading message of the key value data of the key data of coding, coding and coding.
Describe in detail according to the preferred embodiments of the present invention below in conjunction with Figure 19 A to 24, be used to decipher the method and apparatus of the bit stream that position interpolater wherein has been encoded.
The block diagram of Figure 19 A shows according to the preferred embodiments of the present invention, is used to decipher the device of the position interpolater of coding, and Figure 19 B shows according to the preferred embodiments of the present invention, is used to decipher the process flow diagram of method of the position interpolater of coding.
Referring to Figure 19 A, the device that is used to decipher the position interpolater of coding comprises: key data code translator 1920 is used to decipher the key data from incoming bit stream; Key value data decoder 1950 is used to decipher the key value data from incoming bit stream; Title code translator 1910 is used to decipher from the heading message of incoming bit stream and with the heading message of decoding and exports to key data code translator 1920 and key value data decoder 1950; And position interpolater compositor 1980, be used to utilize heading message, the position interpolater of the key data of synthetic decoding and the key value data of decoding and output decoding from the decoding of title code translator 1910 inputs.
Referring to Figure 19 B, in step S19000, the bit stream that is used to the device code of the position interpolater shown in the code pattern 3A is transfused to key data code translator 1920, key value data decoder 1950 and title code translator 1910.
In step S19100,1910 decodings of title code translator are exported to key data code translator 1920, key value data decoder 1950 and position interpolater compositor 1980 from the heading message of incoming bit stream and with the heading message of decoding.
The decoding of key data code translator 1920 entropys produces the key data of decoding and the key data of decoding is exported to position interpolater compositor 1980 by key data being carried out predetermined contrary DND operation, contrary folding operation and contrary shifting function from the key data of incoming bit stream.In addition, in step S19200, the decoding of key value code translator 1950 entropys is from the key value data of incoming bit stream, operate the key value data that produce decoding by the key value data being carried out predetermined re-quantization operation and contrary DPCM, and the key value data of decoding are exported to position interpolater compositor 1980.
In step S19400, position interpolater compositor 1980 comprises the key value data of the synthetic decoding from 1920 inputs of key data code translator of the heading message of decoding of pattern signalization and key selected marker and from the key value data of the decoding of key value data decoder 1950 inputs, recovers the position interpolater by use.
Describe the structure and the operation of key data code translator 1920 in detail to 21B below in conjunction with Figure 20.Form the key data of decoding according to the bit stream of key data code translator 1920 received codes of the present invention and with it.
Key data code translator 1920 comprises entropy encoder 2060, contrary DND processor 2050, contrary folding processor 2040, contrary shift unit 2030, contrary DPCM processor 2020, inverse quantizer 2010, linear key code translator 200 and floating number inverse converter 2005.
Figure 21 A shows the process flow diagram of method that is used to decipher key data according to the preferred embodiments of the present invention.
Bit stream is inputed to title code translator 1910 and entropy encoder 2060.
Title code translator 1910 is deciphered the required information of each step of being used to decipher and they is offered their corresponding decoding steps in step S21000.To the information by 1910 decodings of title code translator be described along with each deciphers step below.
In step S21100, entropy encoder 2060 is from the bit number that title code translator 1910 receives with the quantity of decoded differential data and has been used to encode, and is about to the bit number that is used to decipher, and the bit stream imported of decoding.The quantity of differential data equals to deduct the result by the quantity of carrying out the internal key data that DPCM obtained from the quantity of key data.
Entropy encoder 2060 is according to the predetermined information that is included in the bit stream, the bSignedAACFlag among the present invention for example, identification decoded differential data is had negative value or have on the occasion of.If the differential data of coding has negative value, then entropy encoder 2060 uses function d ecodeSignedAAC () that they are deciphered.On the other hand, if the differential data of coding only have on the occasion of, then entropy encoder 2060 uses function d ecodeUnsignedAAC () that they are deciphered.After this, the differential data of decoding is sent to contrary DND processor 2050.
Contrary DND processor 2050 receives exponent number and the maximal value nKeyMax in each DND circulation of DND from title code translator 1910.
If the exponent number of DND is-1, just this means in decoded code differential data to be carried out entropy decoding, and this method directly enters into the step of carrying out contrary shifting function through DPCM operation and shifting function rather than through DND.If the exponent number of DND is 0, just this means to be carried out entropy decoding that this method directly enters into the step of carrying out contrary folding operation thus through folding operation rather than DND in decoded code differential data.If contrary DND operation greater than 0, is then carried out in several rank of described DND in step S21200.
Contrary DND processor 2050 determines just whether be encoded through shift-up operation in decoded code differential data in step S21300.In a preferred embodiment of the invention, whether the nKeyInvertDown that is included in the bit stream by inspection determines just whether be encoded through shift-up operation in decoded code differential data greater than 0.
If just also do not pass through shift-up operation in decoded code differential data, then this method enters into the step of carrying out contrary DND.On the other hand, if just passed through shift-up operation in decoded code differential data, then in step S21400 by carry out shift-up operation the differential data from the positive number domain transformation to the negative zone be moved back to the negative zone.In a preferred embodiment of the invention, recover to have passed through the differential data of shift-up operation by carrying out the shift-down oepration of representing by following equation (oppositely downward operation).
invert-down(v) ...(22)
=v (if v≤nKeyInvertDown)
=nKeyInvertDown-v (if v>nKeyInvertDown)
Here, nKeyInvertDown has identical value with the maximal value nKeyMax that uses in shift-up operation.As the result of shift-up operation, the differential data with the value that is higher than nKeyInvertDown is converted into and is lower than-1 negative value.
According to the maximal value nKeyMax in each DND circulation, to carrying out contrary divide operation down or contrary last divide operation selectively through the differential data of shift-down oepration.
Referring to Figure 21 B, contrary DND processor 2050 is carried out the contrary DND operation of the DND number of operations same number that is performed with differential data in cataloged procedure.In other words, contrary DND processor 2050 is set to equal the exponent number of DND against the initial value of the exponent number of DND.Then, the once contrary DND operation of contrary DND processor 2050 every execution promptly subtracts 1 from the initial value of the exponent number of contrary DND, and keeps carrying out the DND operation and become till 1 up to the exponent number of contrary DND.In step S21510, the nKeyMax in contrary each DND circulation of DND processor 2050 search also checks whether each nKeyMax is not less than 0.
In encoding process, carried out divide operation if nKeyMax less than 0, then means, thus, contrary DND processor 2050 in step S21530 by carry out contrary on divide operation will be just in the range expansion of decoded differential data to the negative zone.In a preferred embodiment of the invention, can use the contrary last divide operation that defines by following equation (23).
inverse-divide-up(v) ...(23)
=v (if v 〉=0)
= ( nKeyMax i - 1 ) - v - 1 2 (if v<0, v mod 2 ≠ 0)
= v 2 (if v<0, v mod 2=0)
But if nKeyMax is not less than 0, then contrary DND processor 2050 checks whether the exponent number of contrary DND is 1.If the exponent number of contrary DND is not 1, then mean in the encoding process process, just having carried out time divide operation at decoded differential data, therefore contrary DND processor 2050 by in step S21570, carry out contrary divide operation down with the range expansion of differential data to the positive number zone.
In a preferred embodiment of the invention, use the contrary divide operation down that defines by following equation.
inverse-divide-down(v) …(24)
=v (if v 〉=0)
= ( nKeyMax i + 1 ) + v - 1 2 (if v<0, v mod 2 ≠ 0)
= v 2 (if v<0, v mod 2=0)
If nKeyMax be not less than 0 and the exponent number of contrary DND be 1, so, contrary DND processor 2050 is carried out in step S21590 after the divide operation, finishes all and operates against DND.In a preferred embodiment of the invention, use the contrary divide operation that defines by following equation (25).
inverse-divide(v) …(25)
=v (if v 〉=0)
=v+ (nKeyMax 0+ 1) (if v<0)
In step S21600, the differential data of the key data of the contrary DND operation of process is transfused to contrary folding processor 2040,2040 pairs of differential datas of contrary folding processor are carried out contrary folding operations, therefore, always the differential data in the positive number zone be divided on the occasion of and negative value.In a preferred embodiment of the invention, use the contrary folding operation of equation (26) definition.
inverse - fold ( v ) = - ( v + 1 ) 2 (if v mod 2 ≠ 0) ... (26)
= v 2 (if v mod 2=0)
=0 (if v=0)
Be exported to contrary shift unit 2030 through the differential data against folding operation, the pattern nKeyShift that contrary shift unit 2030 will use in cataloged procedure and import from title code translator 1910 in step S21700 is added on the differential data.Following equation is represented this operation.
inverse-shift(v)=v+nKeyShift …(27)
In step S21800, contrary DPCM processor 2020 uses from the exponent number of the DPCM of title code translator 1910 inputs will be recovered to the key data of quantification from the differential data of contrary shift unit 2030 inputs.Contrary shift unit 2030 is carried out the number of times contrary DPCM operation identical with the exponent number of the DPCM of following equation (28) regulation.
v(i+1)=v(i)+delta(i) …(28)
Here, i represents the subscript of differential data and key data, and v represents the integer array, and delta (i) represents differential data.
The quantification key data through contrary DPCN operation is transfused to inverse quantizer 2010.Then, in step S21900, inverse quantizer 2010 receives whether the quantization bit size nKeyQBit and the minimum and maximum value that are used for re-quantization are carried out information encoded about floating number converter 905 from title code translator 1910, and uses following equation described quantification key data to be converted to the key data of re-quantization.
inverse - quantize ( v ) = fKeyMin + v 2 nKeyQBit - 1 &times; ( fKeyMax - fKeyMin ) . . . ( 29 )
If also not by 905 conversions of floating number converter, fKeyMin shown in the equation (29) and fKeyMax are set to 0 and 1 respectively to the minimum and maximum value that is used to quantize in the processing of coded key data.But,, so, be used as the minimum and maximum value that is used for re-quantization respectively by the minimum and maximum value of floating number inverse converter 2005 inverse conversion if floating number converter 905 is changed the minimum and maximum value that is used to quantize.
Be added on the key data of decoding linear key code translator 2000 from the key data of the decoding of inverse quantizer 2010 output, thus, constitute key data through decoding.
To describe linear key decoding below handles.
1910 decodings of title code translator are from the key heading message of bit stream.If the information relevant with linear key data zone is present in the bit stream, then title code translator 1910 will be deciphered the beginning in linear key data zone and finish the required information of key and export to floating number inverse converter 2005, and the quantity that will be encoded as the key of linear key is exported to linear key code translator 2000.
The beginning in the described linear key data zone that floating number inverse converter 2005 will be represented by decimal number and finish key and reverse and be changed to binary number, and this binary number is exported to linear key code translator 2000.
Suppose two decoded floating numbers are referred to as fKeyMin and fKeyMax respectively, the processing of decoding fKeyMin is described below.
Title code translator 1910 is read the numerical digit of fKeyMin from bit stream.If the numerical digit of fKeyMin is 0, then fKeyMin is set to 0, and reads the numerical digit of fKeyMax from bit stream, so that decoding fKeyMax.If the numerical digit of fKeyMax is not less than 8, mean that then fKeyMax has been followed ieee standard 754 and deciphered.Therefore, the fKeyMax of decoding floating number after its 32 bits are read out.
But, if the numerical digit of fKeyMax between 1 and 7, then title code translator 1910 is read a sign bit from bit stream.In a preferred embodiment of the invention, the if symbol position is 1, and then MinKeyMantissaSign is set to-1.On the contrary, the if symbol position is 0, and then MinKeyMantissaSign is set to 1.After this, with reference to the table 3 that shows the numerical digit of mantissa and encode and concern between the required bit number, obtain the required bit number of decoding.Then, the bit of the bit stream identical with deciphering required bit number is read out and is stored among the nMinKeyMantissa.Then, read the next bit of bit stream and it is stored among the MinKeyExponentSign to be stored in mode identical among the MinKeyMantissaSign with the symbol of mantissa.Following 6 of the bit stream corresponding with exponential quantity are read out and are stored among the nMinKeyExponent.
Floating number inverse converter 2005 will be by restoring fKeyMin from the value substitution equation (30) of title code translator 1910 inputs.
fKeyMin = MinKeyMant issaSign * nMinKeyMan tissa 10 MinKeyExponentSign * nMinKeyExp onent . . . ( 30 )
The processing of restoring fKeyMax is identical with the processing of restoring fKeyMin.Specifically, it determines before the index of reading fKeyMax from bit stream, whether the value identical with the index of fKeyMin is used as the index of fKeyMax.If the value identical with the index of fKeyMin is not used as the index of fKeyMin, then from bit stream, read the index of fKeyMax in the mode identical with the index of from bit stream, reading fKeyMin.
Linear key code translator 2000 is read the beginning in linear key data zone and is finished key from floating number inverse converter 2005, and according to the linear key data of following equation (31) decoding zone.
Key i = fKeyMin + ( fKeyMax - fKeyMin ) * i ( nNumberOfLinearKey - 1 ) . . . ( 31 )
( i = 0 , . . . , nNumberOfLinearKey - 1 )
Here, fKeyMin and fKeyMax represent the beginning in linear key data zone respectively and finish key data.
Use the key data in linear key data zone of preceding method decoding to be added to from the key data of inverse quantizer 2010 outputs, the result of addition is outputted as last key data then.
Below in conjunction with Figure 22 A and 23E structure and operation according to the key value data decoder 1950 of the preferred embodiments of the present invention are described.
Referring to Figure 22 A, key value data decoder 1950 comprises: entropy encoder 2220 is used for decoding of bit stream entropy and output differential data to inputing to it; Contrary DPCM processor 2230 is used for carry out the key value data that contrary circulation DPCM operation or inverse prediction circulation DPCM operation and output quantize from the differential data of entropy encoder 2220 inputs; Inverse quantizer 2240 is used for re-quantization from quantification key value data of importing against DPCM processor 2230 and the key value data of exporting standard; Floating number code translator 2260, be used for receiving minimum and maximal value from title code translator 1910, convert minimum value in the middle of the key value data of each component in x, y and the z component and maximal value with component of maximum magnitude to binary number, and this binary number is exported to inverse quantizer 2240; With contrary normalizer 2250, be used for receiving the minimum value in the middle of the key value data of x, y and each component of z component and having the maximal value of the component of maximum magnitude from floating number code translator 2260, according to minimum value and the maximum value calculation maximum magnitude from floating number code translator 1160, contrary then standard is from the key value data of inverse quantizer 2250 inputs.
Describe according to the preferred embodiments of the present invention below in conjunction with Figure 23 A, be used to decipher the method for key value data.Referring to Figure 23 A, the bit stream of the key value data of process coding is transfused to entropy encoder 1120 and title code translator 1910.Then, in step S23000,1910 decodings of title code translator are given entropy encoder 2220, contrary DPCM processor 2230 and inverse quantizer 2240 from the heading message of heading message bit stream, that decoding is required and output decoding.
In step S23200, entropy encoder 2220 entropys decoding bit stream is also exported differential data and is given contrary DPCM processor 2230.
Figure 23 A at length shows the process flow diagram that entropy decoding is handled.Referring to Figure 23 A, in step S23200, with bit stream p iInput to entropy encoder 2220.
In step S23220, entropy encoder 2220 is checked components, x for example, the key value data whether have identical quantized value.If the key value data of component have identical quantized value, then in step S23230, all symbols of this component all decoded and they be set to from the minimum value of title code translator 1910 inputs, for example, fMin_X.
If the key value data of component do not have identical quantized value, then in step S23240, entropy encoder 2220 checks whether used unary AAC function this key value data of having encoded.If used unary AAC function this key value data of having encoded, then in step S23250, use the unaryAAC function that they are deciphered.
Unary AAC function reads 0 till bit 1 occurs from bit stream, convert 0 quantity to absolute value, read the sign of the next bit of bit ' 1 ' as value, if this position is ' 0 ', sign that then should value is for just, if this position is ' 1 ', then the sign that should be worth is exported decoded value then for negative.
If the key value data of component are also by with unaryAAC function coding, then entropy encoder 2220 uses the SQ AAC function that will be described below to decipher the bit stream that the key value data of component wherein have been encoded in step S23300.
In step S23310, entropy encoder 2220 decoding is from the sign of all symbols of bit stream, decoding maximal value nMax, and the decoding range of all symbols of initialization (scope from 0 to nMax) and with mark
Figure A20051009164200491
Be set to value of false.
Then, entropy encoder 2220 is determined at first decoded key value reference point (i=nStartIndex) and bDone to be set to value of true in step S23320.
Entropy encoder 2220 once more execution in step S23330 to S23430 in case decoding symbol.
Specifically, entropy encoder 2220 is checked the maximal value in decoding range in step S23330
Figure A20051009164200492
And minimum value Whether identical.
If With
Figure A20051009164200495
Identical, then in step S23340, the symbol that is encoded is confirmed as maximal value (or minimum value) in the decoding range, if different, then in step S23350, entropy encoder 2220 bDone are set to value of false and utilize following equation (32) to upgrade intermediate value nMid in the decoding range.
Figure A20051009164200496
Entropy encoder 2220 is checked contextual tagging in step S23360
Figure A20051009164200497
Whether be true so that the probability model that is identified for deciphering.If described contextual tagging
Figure A20051009164200501
Be true, entropy encoder 2220 uses FoundContext decoding bit stream in step S23370, if false, then entropy encoder 2220 uses notFoundContext decoding bit stream in step S23380.
The entropy encoder 2220 from a bit decoding of bit stream is checked in step S23390 whether the bit of deciphering is 1 from bit stream, if not, entropy encoder 2220 utilizes the maximal value in the intermediate value nMid replacement decoding range in step S23400
Figure A20051009164200502
If stating the bit of deciphering in the bit stream is 1, entropy encoder 2220 utilizes the minimum value of intermediate value nMid replacement in decoding range in step S23410
Figure A20051009164200503
And with contextual tagging Be set to value of true.
Entropy encoder 2220 will be deciphered subscript i and add 1 in step S23420, whether all key value data of the component of inspection current generation are all decoded in step S23430, if it is decoded to also have remaining symbol to need, then execution in step S23330 is to S23420.
If key value data all in the current generation are all decoded, then entropy encoder 2220 is checked the key value data that whether need additional phase to remove to decipher current component in step S22440, if, then once more execution in step S23320 to S23430.Entropy encoder checks whether all key value data of current component are all decoded, and entropy encoder begins to decipher the key value data of next component.
Referring to Figure 22 A and 23B, differential data by the key value data of entropy encoder 2220 decoding is transfused to contrary DPCM processor 2230, then, contrary DPCM processor 2230 is carried out contrary circulation DPCM operation or inverse prediction circulation DPCM operation according to the type of the DPCM that the differential data of input is carried out to the differential data of input.
The contrary DPCM that is described among the step S23500 below in conjunction with Figure 23 D operates.Referring to Figure 23 D, the differential data that has been performed contrary DPCM operation is transfused to determining unit 1132.Then, in step S23520, determining unit 1132 identifications are to the kind of the DPCM of the differential data execution of input, on the basis of recognition result, determine to carry out which kind of contrary DPCM to the differential data of input, and differential data is exported to contrary circulation DPCM manipulater 2234 or inverse prediction circulation DPCM manipulater 2238.
If differential data is transfused to contrary circulation DPCM manipulater 2234, and nMax is the maximal value in the differential data quantizing range, then contrary circulation DPCM manipulater 2234 in step S23540 by differential data to input Carry out contrary circulation and quantize, obtain the differential data that contrary circulation quantizes
Figure A20051009164200506
This is represented by following equation.
After this, contrary circulation DPCM manipulater 2234 passes through respectively with the differential data of importing
Figure A20051009164200511
Differential data with contrary circulation quantification
Figure A20051009164200512
Substitution equation (34), the value B of the value A of the difference reference point of the contrary DPCM of acquisition and the difference reference point of contrary DPCM.
Figure A20051009164200513
In equation (34), n represents the quantity of data, and i represent 1 and n-1 between integer.
If A is not less than 0 and be not more than nMax, then contrary circulation DPCM manipulater 2234 output A are as contrary circulation DPCM data
Figure A20051009164200514
If A is less than 0 or greater than nMax, then in step S23580, contrary circulation DPCM manipulater 2234 is exported B.
Inverse prediction circulation DPCM manipulater 2238 passes through to use equation (33) in step S23540, to the differential data of prediction
Figure A20051009164200515
Carry out the inverse prediction circulation and quantize, obtain the predicted difference divided data that contrary circulation quantizes
In step S23560, if Wherein, P represents the predicted data that is used to decipher, and inverse prediction circulation DPCM manipulater 2338 calculates A and will by opening substitution equation (35) Substitution equation (36) calculates B.
If (P>nMax) ... (35)
Figure A200510091642005110
(if P<0)
Figure A200510091642005111
(otherwise)
Figure A200510091642005112
If (P>nMax) ... (36)
Figure A200510091642005113
(if p<0)
Figure A200510091642005114
(otherwise)
In equation (35) and (36), n represents the quantity of data, i be 1 and n-1 between an integer.
If A is not less than 0 and be not more than nMax, then inverse prediction circulation DPCM manipulater 2238 output A are as the data of inverse prediction circulation DPCM If A is less than 0 or greater than nMax, then inverse prediction circulation DPCM manipulater 2238 is exported the B conduct in step S23580
Figure A200510091642005116
The quantification key value data that contrary DPCM processor 2230 outputs are produced by contrary DPCM operation Give inverse quantizer 2240, then, inverse quantizer 2240 uses in step S23700 from the quantization bit nKeyValueQBit re-quantization of title code translator 191O input
Figure A200510091642005118
When n represented quantity from the key value data of title code translator 1910 input, the re-quantization of carrying out in inverse quantizer 2240 can be represented by following equation.
P ^ ij = P ~ ij ( 2 nKeyValueQBits - 1 ) , ( i = nStartIndex , . . . , n ; j = x , y , z ) . . . ( 37 )
Inverse quantizer 2240 is carried out re-quantization by the key value data to each component in x, y and the z component, produces specification data and the key value data of the standard of each component in x, y and the z component are exported to contrary normalizer 2250.
Contrary normalizer 2250 uses in step S23800 from the information of floating number code translator 2260 inputs, the key value data of contrary standard standard.Be described in the contrary standard of carrying out in the contrary normalizer 2250 in further detail below in conjunction with Figure 23 E.
Floating number code translator 2260 receives the maximal value fMax that will be used to contrary standard from title code translator 1910 in step S23820, and receive minimum value fMin_X, fMin_Y and the fMin_Z of x, y and z component respectively, and which component axle to have relevant information nWhichAxis of maximal value and the information bUse32Float relevant with type of coding.
Floating number code translator 2260 will be converted to binary number with fMax, fMin_X, fMin_Y and the fMin_z that decimal number is represented and this binary number will be exported to contrary normalizer 2250 in step S23840.
In step S23860, whether contrary normalizer 2250 is encoded with the floating number form of ieee standard 754 according to bUse32Float identification fMax, fMin_X, fMin_Y and fMin_Z, if they are not encoded with the floating number form of ieee standard 754, then contrary normalizer 2250 uses the maximal value Range of following equation calculating in the maximum data scope MaxIf fMax, fMin_X, fMin_Y and fMin_Z are encoded with the floating number form of ieee standard 754, and then contrary normalizer 2250 determines that fMax are Range Max
Range Max=fMax-fMin_X (if nWhichAxis=0) ... (38)
Range Max=fMax-fMin_Y (if nWhichAxis=1)
Range Max=fMax-fMin_Z (if nWhichAxis=2)
If Range MaxBe determined, then contrary normalizer 2250 in step S23880 according to Range MaxUse the data of each component in following equation contrary standard x, y and the z component.
P ^ i , x = P ~ ^ i , x &times; Rang e max + fMin _ X . . . ( 39 )
P ^ i , y = P ~ ^ i , y &times; Rang e max + fMin _ Y
P ^ i , z = P ~ ^ i , z &times; Rang e max + fMin _ Z , ( i = 0,1 , . . . n )
In equation (39), n represents the quantity of data.
Contrary normalizer 2250 will be exported to position interpolater compositor 1980 against the key value data of standard in step S23900.
Use description to the position interpolater compositor 1980 of the key value data of synthetic key data of deciphering and decoding below.
Figure 24 shows the operational flowchart of position interpolater compositor 1980.
Position interpolater compositor 1980 receives the key data of decoding and the key value data of decoding in step S24000, and receives quantity, breakpoint generation pattern and the key selected marker of key data from title code translator 1910.
When described breakpoint generation pattern is the animation path preservation mode, in step S24100, the key data of position interpolater compositor 1980 output decodings and the key value data of decoding.Extracting under the situation of breakpoint with the animation path preservation mode, therefore key data does not need to use interpolation to produce new key value data corresponding to the key value data.But,, then mean when all key datas all have been encoded and have deciphered to have only the key value data corresponding to be encoded if extracted breakpoint with breakpoint with animation key preservation mode.Therefore, in this case, key data does not correspond to the key value data, needs interpolation key value data thus, and this will describe in the paragraph below.
When breakpoint generation pattern is animation key preservation mode, whether there are the key value data corresponding in order to mark with key data, a following target counter that is used to indicate key selected marker array is set, so that corresponding with key data in step S24200.
Among the step S24300, position interpolater compositor 1980 checks whether exist by counter key value data indication, corresponding with key data.If exist by counter key value data indication, corresponding with key data, then position interpolater compositor 1980 enters into step S24500.
If there is no by counter key value data indication, corresponding with key data, then position interpolater compositor 1980 is in step S24400, by using and the corresponding key value data of key data of indicating by two continuous breakpoints, the current key value data of linear interpolation produce the key value data, and described two continuous breakpoints are included in by a breakpoint before the key data of counter indication and a key data breakpoint afterwards of being indicated by counter.
After this, position interpolater compositor 1980 checks in step S24500 whether all key datas all have their counterpart keys Value Data and whether all key datas of the key value data that do not have their correspondences have been carried out linear interpolation.Do not have checked key data if still exist, then position interpolater compositor 1980 in step S24600 refresh counter and once more execution in step S24300 to S24500.If all key datas all are examined, position interpolater compositor 1980 output key datas and synthetic key value data are as the position interpolater.
The method of measuring the error between the animation path is described below in conjunction with Figure 25 A to 27.
Figure 25 A and 25B show the method for measuring the error between the animation path, and this method is carried out in any one analyzer 40 in the present invention's first to the 3rd most preferred embodiment.
Use is in the error of the calculating of the area between the animation path between animation path, shown in Figure 25 A and 25B.
In Figure 25, the path point of the position interpolater that the path point of original position interpolater and the path point that extracts from the Error Calculator 154 of analyzer 40 by interpolation produce is referred to as P respectively I, jWith In addition, in Figure 25, the animation path that the position interpolater of original animation path and use interpolation produces uses solid line and dashed lines labeled respectively.Here, i and j represent the component of the key value data of position interpolater.
Shown in Figure 25 A and 25B, the error between the animation path that the position interpolater of original animation path and use interpolation produces can be by two the trapezoidal difform trapezoidal expressions that comprise that rule is trapezoidal and reverse.The Error Calculator 154 of analyzer 40 is by the key data according to each animation path of formation, the part that two animation paths of each component is divided into predetermined quantity, calculate in each part the error between two animation paths, and, produce the last error between two animation paths with all error additions.
Particularly, Error Calculator 154 produces two animation paths by the position interpolater of arranging original position interpolater and the interpolation that inputs to it on time shaft.After this, Error Calculator 154 is divided into the part of predetermined quantity with in two animation paths each.
Error Calculator 154 check the error between two animation paths in each part be form trapezoidal or reverse trapezoidal.If one of the formation of the error between two animation paths in a part is trapezoidal, then Error Calculator 154 uses equatioies (40) to calculate trapezoidal area.If the error between two animation paths in this part forms reverse trapezoidal, then Error Calculator 154 uses equation (41) to calculate the trapezoidal area that reverses.
e i , j = 1 2 ( | P ^ i - 1 , j - P i - 1 , j | + | P ^ i , j - P i , j | ) &times; ( | t i , j - t i - 1 , j | ) . . . ( 40 )
e i , j = ( P ^ i - 1 , j - P i - 1 , j ) 2 + ( P ^ i , j - P i , j ) 2 2 ( | P ^ i - 1 , j - P i - 1 , j | + | P ^ i , j - P i , j | ) &times; ( | t i , j - t i - 1 , j | ) . . . ( 41 )
Utilize the sum of errors between two animation paths of following equation (42) calculating in all parts of one-component.
e j = &Sigma; i = 0 n - 1 e i , j , ( j = x , y , z ) . . . ( 42 )
The error that Error Calculator 154 will obtain from equation (42) and export to determining unit 156, determining unit 156 will determined breakpoint after the sum of errors of Error Calculator 154 inputs and an admissible limit of error comparison.
In addition, can carry out standard to error by the error addition between two animation paths that will be relevant and according to the space with each component in x, the y of key value data and the z component, error between two animation paths of calculating in all parts is shown in equation (43).
Max j = Max i = 0 n - 1 ( P &OverBar; i , j ) . . . ( 43 )
Min j = Min i = 0 n - 1 ( P &OverBar; i , j )
Range max=Max(Max x-Min x,Max y-Min y,Max z-Min z)
e i , j = e x + e y + e z 3 &times; Range max , ( i = 0 , . . . , n - 1 ) , j = x , y , z )
According to the method that is used to measure two errors between the animation path of the present invention, can be used to calculate in use and input to error between second animation path that first animation path that the position interpolater of a device that is used for the coding site interpolater produces and the position interpolater that uses decoding produce.
Figure 26 A shows the processing of calculating the error between first and second animation paths to 26C, and Figure 27 shows the process flow diagram of the processing of calculating the error between first and second animation paths.
To 26C and Figure 27 the method for calculating the error between first and second animation paths is described below in conjunction with Figure 26 A.
Because the key data and the key value data of the position interpolater of decoding have been passed through addition, subtraction, interpolation and quantification in the encoding process process, so the position interpolater of decoding is different with the original position interpolater.Specifically, because different with the processing of error between two animation paths of calculating of carrying out in analyzer 40, key data changes, so, must the position of described key data be compensated.
Figure 26 A shows form regular trapezoidal between first and second animation paths, Figure 26 B shows the trapezoidal of reversing of forming between first and second animation paths.As mentioned above, must make the key data that constitutes first animation path corresponding to the key data that constitutes second animation path, so that by first and second animation paths are divided into a plurality of parts, measure the error between first and second animation paths, arrive shown in (42) as equation (40).
Referring to Figure 26 C and 27, in step S27000, do not exist on first animation path but path that exist on second animation path, corresponding with key data point is inserted in first animation path, and, be inserted in second animation path at the path point corresponding that does not exist on second animation path but on first animation path, exist with key data.
Then, in step S27100,, first and second animation paths are divided into a plurality of parts according to the path point that exists and the path point of interpolation.
At first verify error between first and second animation paths in each part be form trapezoidal or reverse trapezoidal, then, in step S27200, use the error of equation (40) and (41) calculating between first and second animation paths.
After this, in step S27300, by addition and in time and on the space error between first and second animation paths in all parts is carried out standard, calculate the error of using between second animation path that first animation path that the original position interpolater produces and the position interpolater that uses decoding produce.The standard of error can be by following equation regulation between first and second animation paths.
e i , j = e x + e y + e z 2 ( t max - t min ) Range max , ( i = 0 , . . . , n - 1 , j = x , y , z ) . . . ( 44 )
In equation (44), t MaxAnd t MinRepresent the beginning key data of animation path respectively and finish key data, Range MaxIt is the value that obtains from equation (43).
After this, Figure 28 A utilizes this program code to realize according to device the preferred embodiments of the present invention, that be used to decipher the position interpolater to the example that 28J shows the SDL program code.
Figure 28 A shows a class CompressedPositionInterpolator.CompressedPositionInterpolator is the superlative degree that is used to read the coded bit stream of directed interpolater.CompressedPositionInterpolator comprises subclass KeyHeader, PoslKeyValueHeader, KeySelectionFlag, Key and PoslKeyValue.KeyHeader and PoslKeyValueHeader comprise the heading message that is used to decipher Key and PoslKeyValue.When the key value data corresponding with key data were included among the PoslKeyValue, KeySelectionFlag had a series of marks that are used to indicate each key data.Key and PoslKeyValue are the classes that is used for reading respectively from a bit stream key data and key value data.
Figure 28 B shows the class that is used to decipher the key title, and the key title is that required information is handled in decoding.
Key title class comprises the quantity of key data, quantization bit, internal key data, DND title and the bit number that is actually used in decoding.NKeyQBit is illustrated in the quantization bit that is used to restore the floating number key value in the re-quantization.NNumberCodingBit represents to represent the bit size of the nNumberOfKey of key data quantity.NKeyDigit represents the quantity of primary key data highest significant position and is used to finish decoding value.
When the information relevant with linear key subregion was included in the key title, mark blsLinearKeySubRegion was set to 1.In this case, can use decoding heading message behind mark blsLinearKeySubRegion to calculate key in the specific linear key subregion be included in the whole key zone.BRangeFlag represents whether the scope of key data is from 0 to 1.If the scope of key data is not from 0 to 1, then from class KeyMinMax, decipher minimum and maximal value in the key data scope.KeyMinMax restores and carries out required minimum of re-quantization and maximal value.In the aforementioned value each can both be divided into its mantissa and index separately.
NBitSize is the bit size of nQIntraKey and the bits of original size that nKeyShift is nKeyMax.NQIntraKey represents the amplitude of the first quantification internal data and combines with the positive and negative nQIntraKeySign of expression nQIntraKey.NQIntraKey is used as restores the basis that other quantize key data.In all sign bits of in the interpolater compression, using, value ' 0 ' expression positive sign, value ' 1 ' expression negative sign.NKDPCMOrder represents that the exponent number of DPCM subtracts 1 value.The exponent number of DPCM can be 1,2 or 3.The quantity of the internal data that quantizes is identical with the exponent number of DPCM.
NKeyShift is the integer that is illustrated in shift amount in the key data code translator with sign bits nKeyShiftSign.If bShiftFlag is set to value of true, then nKeyShift and nKeyShiftSign are decoded.NDNDOrder be frequency division-and-exponent number of frequency division (DND) operation.Utilized the key data code translator to describe the DND operation above.If the value of nDNDOrder is 7, then bNoDND is decoded.BNoDND represents whether will carry out contrary DND operation.NKeyMax is maximal value or the minimum value of using in the continuous circulation of contrary DND operation.NkeyCodingBit represents to be used for the bit of coded key data.BSignedAACFlag is illustrated in the decoding that will be performed in the AAC decoding and handles.If bSignedAACFlag is set to 0, then will carry out one does not have the AAC decoding of sign to handle.Otherwise, have the AAC decoding of sign to handle execution.BKeyInvertDownFlag is a Boolean that is used to represent whether will use nKeyInvertDown.NKeylnvertDown is one and is used for all quantification key datas greater than itself are converted to the integer that is not more than-1 negative value.If nKeyInvertDown is set to-1, then will not carry out shift-down oepration.
Figure 28 C shows class LinearKey.In Figure 28 C, nNumLinearKeyCodingBit is the value of the required bit number of the linear predictable key of presentation code predetermined quantity.NNumberOfLinearKey is the value of the quantity of expression linear predictable key.
Figure 28 D shows class KeyMinMax.In Figure 28 D, whether identical bMinKeyDigitSame be quantity the mark of the highest significant position of the minimum value in quantity (nKeyDigit) and the key of highest significant position of all keys of expression.NMinKeyDigit is the value of quantity of the highest significant position of the minimum value of expression in the key.NMinKeyMantissaSign is the value of the sign of expression nMinKeyMantissaSign.
NMinKeyMantissa is the value that is illustrated in the mantissa of the minimum value in the key.NMinKeyExponentSign is the value of the sign of expression nMinKeyExponent.
NMinKeyExponent is the value of the index of the minimum value in the expression key.FKeyMin is the value of the minimum value in the expression key.Whether identical bMaxKeyDigitSame be quantity the mark of the peaked highest significant position in quantity nKeyDigit and the key of highest significant position of all keys of expression.
NMaxKeyDigit is the value of the quantity of the peaked highest significant position in the expression key.
NMaxKeyMantissaSign is the value of the sign of expression nMaxKeyMantissa.
NMaxKeyMantissa is the value of the peaked mantissa in the expression key.
Whether identical with nMinKeyExponent bSameExponent be the peaked index of expression in the key mark.NMaxKeyExponentSign is the value of the sign of expression nMaxKeyExponent.NMaxKeyExponent is the value of the peaked index in the expression key.FkeyMax is the peaked value in the expression key.
Figure 28 E shows class PoslKeyValueHeader.In Figure 28 E, bPreserveKey represents whether current decoding mode is animation key preservation mode, and nKVQBit represents the quantization bit size of key value data.
X_keyvalue_flag, y_keyvalue_flag and z_keyvalue_flag represent that respectively x, y and z component and nKVDigit represent the maximum quantity of the highest significant position of each in the key value data.NKVDPCMOrder_X, nKVDPCMOrder_Y and nKVDPCMOrder_Z correspond respectively to the exponent number of the DPCM of the key value data that are used for x, y and each component of z component.If carried out DPCM, then mark is set to 0, if carried out prediction DPCM, then this mark is set to 1.
BlsUnaryAAC_X, each among blsUnaryAAC_Y and the blsUnaryAAC_Z has been used the unaryAAC function during all being illustrated in entropy coding.NKVCodingBit_X, nKVCodingBit_Y and nKVCodingBit_Z represent to be respectively applied for the quantization bit of x, y and z component.NStartIndex_X, nStartIndex_Y and nStartIndex_Z represent the beginning subscript of each component axle.FirstKV_X, firstKV_Y and firstKV_Z represent the key value reference point of each component in the x, the y that have at first been quantized and the z component respectively.
Figure 28 F shows class KeyValueMinMax.Referring to Figure 28 F, class KeyValueMin restores the minimum and maximum value that has been used to standard key value data.BUse32float represents whether 32 floating numbers have been used to store minimum and maximum value.If bUse32Float is 0, then metric floating number has been used to store described minimum and maximum value.
NWhichAxis is illustrated in the component that has the maximum data scope in x, y and the z component.In the present embodiment, if nWhichAxis is 0, then X-axis has the maximum data scope.If nWhichAxis is 1, if then Y-axis has the maximum data scope and nWhichAxis is 2, then the Z axle has the maximum data scope.
BAllSameMantissaDigitFlag represents whether the mantissa of the minimum value in the middle of the key value data of each component in x, y and the z component has identical numerical digit, and bSameKVDigitFlag represents that the numerical digit of mantissa of minimum value is identical with nKeyDigit.NMantissaDigit_x, nMantissaDigit_Y and nMantissaDigit_Z represent the numerical digit of the mantissa of the minimum value in the key value data of each component in x, y and the z component.
BMaxDigitFlag represents whether peaked mantissa has identical numerical digit with the mantissa of minimum value.If the numerical digit of peaked mantissa is different from the numerical digit of the mantissa of minimum value, then from bit stream, read the numerical digit of peaked mantissa.
NMantissaDigit_M represents the numerical digit of peaked mantissa, and nExponentBits represents to be used to encode the required bit number of peaked index.BAllSameExponentSign represents whether the sign of x, y and z component is identical, and nExponentSign represents that working as bAllSameExponentSign is the sign of the index of true time.
FpnMin_X, fpnMin_Y, fpnMin_Z and fpnMax are illustrated in floating number decoded in the decimal system.To utilize F1oatingPointNumber to describe decoding fpnMin_X, the method for fpnMin_Y and fpnMin_Z and fpnMax below.FMin_X, fMin_Y and fMin_Z represent the minimum value in the middle of the key value of each component in x, y and the z component, and fMax represents to have the maximal value in the middle of the key value data of component of maximum magnitude.
Figure 28 G shows class FloatingPointNumber.Class FloatingPointNumber represents to use the floating number of decimal system.NMantissa represents the mantissa of the floating number in the decimal system, and nExponent represents the index of floating number.
NSign represents the sign of the floating number in the decimal system, and nExponentSign represents the sign of the index of the floating number in the decimal system.
Figure 28 H shows class KeySelectionFlag.In Figure 28 H, KeyFlag represents whether the key value data of i key data have been encoded, and nNumOfKeyValue is the integer of expression with the quantity of decoded key value data.
Figure 28 I shows class Key.In Figure 28 I, nQKey is from bit stream, with the array of decoded quantification key data.KeyContext is the context that is used to read the amplitude of nQKey, and KeySignContext is the context that is used to read the sign of nQKey.
DecodeUnsignedAAC is used for the data of adaptive arithmetic code are carried out the function that no symbol substitution is handled, and decodeSignedAAC carries out the function that has symbol substitution to handle to the data of adaptive arithmetic code.
Figure 28 J shows class PoslKeyValue.Referring to Figure 28 J, in the variable in being stored in PoslKeyValue, KeyValue_X, KeyValue_Y and KeyValue_Z are illustrated respectively in the array of the key value data of each component of x, y and z component in the interpolater of position.If nStartIndex_X is set to 0, then use arithmetic decoder from bit stream, to decipher KeyValue_X[0].Determine KeyValue_Y[0 in an identical manner] and KeyValue_Z[0].As arithmetically decoding KeyValue_X[0 from bit stream], KeyValue_Y[0] and KeyValue_Z[0] time, use decodeUnaryAAC or decodeSQAAC function.
Context model kVXSignContext, kVYSignContext and kVZSignContext are respectively applied for the sign of decoding KeyValue_X, KeyValue_Y and KeyValue_Z.Context model kVXSignContext, kVYSignContext and kVZSignContext are transferred to decodeUnaryAAC or decodeSQAAC function.
MaxValueContext, FoundContext and NotFoundContext are used to the absolute value of entropy decoding key value.For example, kVXMaxValueContext, kVXFoundContext and kVXNotFoundContext are used to decipher KeyValue_X.MaxValueContext, FoundContext and NotFoundContext are transferred to decodeUnaryAAC or decodeSQAAC function.
Context model kVXUContext, kVYUContext and kVZUContext are used to decipher KeyValue_X, KeyValue_Y and KeyValue_Z, and be transferred to the decodeUnaryAAC function.
The present invention can utilize the computer-readable code that writes on the computer readable recording medium storing program for performing to realize.Here, computer readable recording medium storing program for performing comprises any recording medium that can be read by computer system.For example, computer readable recording medium storing program for performing comprises ROM, RAM, CD-ROM, tape, floppy disk, optical data storage and carrier wave (through internet transmission).Computer readable recording medium storing program for performing can be dispersed to through in the computer system of Internet connection, and a computing machine can be with the mode browing record medium that disperses.
According to the method and apparatus of the position of the present invention interpolater that is used to encode, can when keeping the high-quality animation, encode expeditiously and decipher key data and key value data.In addition, by using the method for measuring the error between animation path can keep the high quality animation data.In addition, resampling method of the application of the invention and breakpoint extracting method can obviously reduce the key data that will be encoded and the quantity of key value data.
Although the present invention is next specifically described with reference to its preferred embodiment, it should be appreciated by those skilled in the art, under the situation that does not break away from the spirit and scope of the present invention that are defined by the following claims, can carry out the various modifications of form and details to it.

Claims (11)

1. method that is used to calculate the error between first path and second path, wherein, all comprise first path that a plurality of first paths point of a plurality of data components constitutes by wherein each, all comprise second path that a plurality of second paths point of a plurality of data components constitutes by wherein each, this method comprises the steps:
(a) a plurality of paths point is inserted in first and second animation paths, thereby makes first and second animation paths with regard to the reference data component in being included in each path point, have the same paths point;
(b), in first and second paths each is divided into the part of predetermined quantity, thereby makes the part of predetermined quantity correspond respectively to the path point according to the reference data component;
(c) error between first and second animation paths of calculating in each part; And
(d) check whether the part of all predetermined quantities has been carried out step (c), and the error that obtains in step (c) is carried out standard.
2. the method for claim 1, wherein in step (c), utilize distance between the reference data and the distance between the component data except that the reference component data, calculate the error between first and second paths in each part.
3. method as claimed in claim 2, wherein, the reference component data are the key datas that are included in the interpolater node of position, and in step (c), be set to distance between trapezoidal height and other component datas by the distance between the key data and be set to trapezoidal bottom and upper segment and calculate the error between first and second animation paths in each part.
4. the method for claim 1, wherein in step (d), obtain the extreme value of the reference component data of path point, then, utilize this extreme value that the error of acquisition in step (c) is carried out standard.
5. method that is used to utilize linear proximity from the extracting data breakpoint be made up of the path point that comprises a plurality of component datas, this method comprises the steps:
(a) starting point and the end point of extraction original path;
(b) select a path point that is not extracted, and utilize selected path point and the path point that is extracted that other non-selected path points are carried out linear interpolation;
(c) calculate original path and utilize error between the interpolation animation path of path dot generation of interpolation;
(d) and (c), and extract the path point that causes least error between original animation path and the interpolation path to all non-selected path point execution in step (b); And
(e) original path and utilization are included in step (d) but in the error of path point between the path of the interior path dot generation of being extracted extracted compare with the predetermined permissible error limit, repeated execution of steps (b) arrives (d) then.
6. method as claimed in claim 5, wherein, step (c) comprises the steps:
(c1) original path and interpolation path are divided into the part of predetermined quantity, thereby make the part of predetermined quantity corresponding with path point respectively; And
(c2) utilize distance and the distance between other component datas of each path point between the reference component data of each path point, calculate the error between original path and the interpolation path.
7. method as claimed in claim 6, wherein, path point is corresponding to the position interpolater of expression three-dimensional animation, the reference component data are corresponding to the key data that is included in the interpolater node of position, and in step (c2), the distance that is set between trapezoidal high and other component datas by the distance between the key data is set to this trapezoidal bottom and upper segment, calculates original animation path in each part and the error between the interpolation animation path.
8. method as claimed in claim 6, wherein, path point is corresponding to the position interpolater of expression three-dimensional animation, and the reference component data are corresponding to the key data of the position of indication key frame on time shaft, and other component datas are corresponding to the key value data of the position of indicating target in animation.
9. one kind is used for utilizing linear proximity to extract the method for breakpoint from the animation path that is made of the path point, wherein, the path point comprise a plurality of key frames in position on the time shaft and target the position in each key frame, this method comprises the steps:
(a) extract starting point and the corresponding key frame of end point with original animation path;
(b) select the key frame be not extracted, and utilize selected key frame and the key frame that extracted carries out linear interpolation to other key frames;
(c) calculate original animation path and utilize error between the interpolation animation path that the key frame of interpolation generates;
(d) and (c), and extract the key frame that causes least error between original animation path and the interpolation animation path to all non-selected key frame execution in step (b); And
(e) with original animation path and utilize with in step (d) but in error between the animation path of the corresponding path dot generation of the key frame selected compare with the permissible error limit of being scheduled to, repeated execution of steps (b) arrives (d) then.
10. method as claimed in claim 9, wherein, step (c) comprises the steps:
(c1) original animation path and interpolation animation path are divided into the part of predetermined quantity, thereby make the part of predetermined quantity corresponding with key frame respectively; And
(c2) be used for cutting apart between the key frame of each animation path the interval and about target poor between the message segment of the position of key frame, calculate the error between original animation path and interpolation animation path.
11. method as claimed in claim 10, wherein, in step (c2), by being used for cutting apart trapezoidal high of being set to of each animation path between the key frame and will not being set to trapezoidal bottom and upper segment, calculate each part Central Plains initiating and draw error between path and the interpolation animation path about the difference of target between the message segment of the position of key frame.
CNB2005100916428A 2001-11-27 2002-11-27 Method for computing path error and extracting path break point Expired - Fee Related CN100350433C (en)

Applications Claiming Priority (6)

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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNB021542937A Division CN1310192C (en) 2001-11-27 2002-11-27 Position interpolator encoding and decoding method and device

Publications (2)

Publication Number Publication Date
CN1734502A true CN1734502A (en) 2006-02-15
CN100350433C CN100350433C (en) 2007-11-21

Family

ID=36076905

Family Applications (8)

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

Family Applications Before (7)

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
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 200610094358 Expired - Fee Related CN1878311B (en) 2001-11-27 2002-11-27 Method and apparatus for encoding and decoding bit stream and orientation interpolator
CN 200610075350 Expired - Fee Related CN1856105B (en) 2001-11-27 2002-11-27 Method and apparatus for encoding and decoding directional interpolator
CN 200510092099 Expired - Fee Related CN100530977C (en) 2001-11-27 2002-11-27 Method and apparatus for encoding and decoding data
CN 200710084973 Expired - Fee Related CN101009837B (en) 2001-11-27 2002-11-27 Method for encoding bit stream of orientation interpolator
CN 200610094359 Expired - Fee Related CN100581253C (en) 2001-11-27 2002-11-27 Method and apparatus for decoding bit stream

Country Status (2)

Country Link
CN (8) CN100546386C (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
FR2982447A1 (en) 2011-11-07 2013-05-10 France Telecom METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS
FR2982446A1 (en) 2011-11-07 2013-05-10 France Telecom METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS
CN103517022B (en) * 2012-06-29 2017-06-20 华为技术有限公司 A kind of Image Data Compression and decompression method, device
WO2020094074A1 (en) * 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Position-depending ordering of motion candidate list for geometric partitioning mode
EP3989569A4 (en) * 2019-06-18 2023-05-24 LG Electronics Inc. Image decoding method and apparatus
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

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4230728A1 (en) * 1992-09-14 1994-03-17 Philips Patentverwaltung Adaptive DPCM encoder
CN1052608C (en) * 1993-07-24 2000-05-17 电子科技大学 Digital transmission method for high-definition television and transmitter-receiver
JP3649469B2 (en) * 1995-05-12 2005-05-18 株式会社ソニー・コンピュータエンタテインメント Animation data creation method and creation apparatus
KR100212552B1 (en) * 1996-12-23 1999-08-02 전주범 Method and apparatus for coding counter image
FR2765984B1 (en) * 1997-07-11 1999-10-22 France Telecom SIGNAL OF ANIMATION DATA OF A QUANTIFYING GRAPHIC SCENE, CORRESPONDING METHOD AND DEVICE
US6075901A (en) * 1998-12-04 2000-06-13 France Telecom Method and system for predictive encoding of arrays of data
WO2001006794A1 (en) * 1999-07-20 2001-01-25 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
AU1937701A (en) * 1999-12-01 2001-06-12 Mikael Bourges-Sevenier 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

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1277239C (en) Method and device for coding and decoding oriented internal inserter
CN1217546C (en) Image coding device and image decoding device
CN1272967C (en) Video coding method and apparatus and decoding method and apparatus
CN1178460C (en) Picture encoder, picture decoder, picture encoding and decoding method, and medium
CN1545813A (en) Image encoding device, image decoding device, image encoding method, image decoding method, image encoding program, and image decoding program
CN1268135C (en) Method, device and recording medium for encoding, and method, device and recording medium for decoding
CN1647139A (en) Data conversion device and data conversion method
CN1922890A (en) Stepwise reversible video encoding method, stepwise reversible video decoding method, stepwise reversible video encoding device, stepwise reversible video decoding device, program therefore, and recor
CN1271862C (en) Moving image coding method and moving image decoding method
CN1178461C (en) Image encoder, image decoder, character checker, and data storage medium
CN100350433C (en) Method for computing path error and extracting path break point
CN1182518A (en) Encoder, decoder, their method and image processor
CN1229758C (en) Resolution ratio transforming device and method of orthogonal transformation image
CN1825355A (en) Computer graphics data coding apparatus, decoding apparatus, coding method and decoding method
CN1310192C (en) Position interpolator encoding and decoding method and device
CN1836264A (en) Traffic information providing system, a traffic information expressing method and device
CN101064853A (en) Moving picture coding method and moving picture coding apparatus

Legal Events

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

Granted publication date: 20071121

Termination date: 20151127

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