WO2018235418A1 - 符号化装置、復号装置、符号化方法、復号方法、およびプログラム - Google Patents
符号化装置、復号装置、符号化方法、復号方法、およびプログラム Download PDFInfo
- Publication number
- WO2018235418A1 WO2018235418A1 PCT/JP2018/016025 JP2018016025W WO2018235418A1 WO 2018235418 A1 WO2018235418 A1 WO 2018235418A1 JP 2018016025 W JP2018016025 W JP 2018016025W WO 2018235418 A1 WO2018235418 A1 WO 2018235418A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- integer
- value
- conversion
- sequence
- values
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 145
- 238000006243 chemical reaction Methods 0.000 claims abstract description 331
- 238000012545 processing Methods 0.000 claims abstract description 76
- 238000009826 distribution Methods 0.000 claims description 91
- 230000009466 transformation Effects 0.000 claims description 70
- 238000001228 spectrum Methods 0.000 claims description 57
- 230000008569 process Effects 0.000 claims description 46
- 230000003595 spectral effect Effects 0.000 claims description 10
- 230000014509 gene expression Effects 0.000 claims description 5
- 241000209094 Oryza Species 0.000 description 29
- 235000007164 Oryza sativa Nutrition 0.000 description 29
- 235000009566 rice Nutrition 0.000 description 29
- 230000006870 function Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 17
- 230000002087 whitening effect Effects 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 13
- 238000013507 mapping Methods 0.000 description 13
- 230000002441 reversible effect Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 9
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 108010076504 Protein Sorting Signals Proteins 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000013139 quantization Methods 0.000 description 5
- 230000005236 sound signal Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000005314 correlation function Methods 0.000 description 3
- VZSRBBMJRBPUNF-UHFFFAOYSA-N 2-(2,3-dihydro-1H-inden-2-ylamino)-N-[3-oxo-3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propyl]pyrimidine-5-carboxamide Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)C(=O)NCCC(N1CC2=C(CC1)NN=N2)=O VZSRBBMJRBPUNF-UHFFFAOYSA-N 0.000 description 2
- YLZOPXRUQYQQID-UHFFFAOYSA-N 3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)-1-[4-[2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidin-5-yl]piperazin-1-yl]propan-1-one Chemical compound N1N=NC=2CN(CCC=21)CCC(=O)N1CCN(CC1)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F YLZOPXRUQYQQID-UHFFFAOYSA-N 0.000 description 2
- NIPNSKYNPDTRPC-UHFFFAOYSA-N N-[2-oxo-2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethyl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(CNC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 NIPNSKYNPDTRPC-UHFFFAOYSA-N 0.000 description 2
- AFCARXCZXQIEQB-UHFFFAOYSA-N N-[3-oxo-3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propyl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(CCNC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 AFCARXCZXQIEQB-UHFFFAOYSA-N 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000012447 hatching Effects 0.000 description 2
- DEXFNLNNUZKHNO-UHFFFAOYSA-N 6-[3-[4-[2-(2,3-dihydro-1H-inden-2-ylamino)pyrimidin-5-yl]piperidin-1-yl]-3-oxopropyl]-3H-1,3-benzoxazol-2-one Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)C1CCN(CC1)C(CCC1=CC2=C(NC(O2)=O)C=C1)=O DEXFNLNNUZKHNO-UHFFFAOYSA-N 0.000 description 1
- MKYBYDHXWVHEJW-UHFFFAOYSA-N N-[1-oxo-1-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propan-2-yl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(C(C)NC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 MKYBYDHXWVHEJW-UHFFFAOYSA-N 0.000 description 1
- 241000442458 Stereospermum kunthianum Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6011—Encoder aspects
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
- H03M7/4037—Prefix coding
- H03M7/4043—Adaptive prefix coding
- H03M7/4068—Parameterized codes
- H03M7/4075—Golomb codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3068—Precoding preceding compression, e.g. Burrows-Wheeler transformation
- H03M7/3079—Context modeling
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6035—Handling of unkown probabilities
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/0017—Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/0212—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation
Definitions
- the present invention relates to a technique for encoding and decoding a sample sequence consisting of integer values such as sample sequences of time-series digital signals of speech and sound.
- variable-length lossless coding there is a restriction on the configuration of a code assigned to an integer value due to the restriction of decodability.
- a constraint is that in order to make a decodable code, a long code must be assigned to another integer value. Therefore, in order to improve compression performance, the code configuration (assignment of the code to each integer value) needs to be suitable for the distribution of values in the series of integer values. Specifically, by assigning a short code to an integer value having a high occurrence probability and assigning a long code to an integer value having a low occurrence probability, the expected value of the bit length after compression of the sequence of integer values Can be made smaller.
- the Golomb-Rice code (Golombi code) has been used as one of the simplest variable-length codes in lossless coding as described above.
- the Golomb-Rice code has the smallest expected bit length (the smallest bit) when the sequence of integer values belongs to the Laplace distribution, that is, when the appearance probability of the integer values is exponentially lower than the magnitude of the value. Long) is known to achieve.
- This Golomb-Rice code is widely used because of its very simple configuration.
- sequence of integer values to be compressed does not always follow the Laplace distribution.
- a series of integer values to be compressed has a distribution with less variation than the Laplace distribution, such as a Gaussian distribution, and a series of integers to be compressed has a distribution with more variation than the Laplace distribution. , Etc.
- Golomb-Rice code When such a sequence of integer values is encoded by Golomb-Rice code, the performance of compression is degraded because the distribution of the sequence of integer values deviates from the Laplace distribution.
- Non-Patent Document 1 There is also a technique described in Non-Patent Document 1 as a technique for encoding a sequence of integer values following a Laplace distribution, that is, a sequence of integer values having less variation than the Laplace distribution.
- the technique described in Non-Patent Document 1 sets integer values in a series of input integer values into sets of two, obtains an integer value for each set, and obtains the obtained integer values as Golomb. -Rice coding technology.
- assignment of one integer value to a set of two integer values is a predetermined rule such as the mapping example shown in FIG. 1, that is, two integer values constituting the set. The smaller the sum of squares of, the smaller the integer value is assigned.
- Non-Patent Document 2 obtains a sequence according to the number of bits allocated to each sample included in a sample sequence which is a frequency spectrum sequence of a voice sound signal, and codes of each bit number included in the sequence according to the number of bits It is a technique which encodes each sample of a sample sequence so that it may be obtained.
- the technique described in Non-Patent Document 2 does not encode assuming statistical distribution of sample sequences, but obtains sequences by bit number with reference to an envelope or the like in a frequency spectrum sequence of a voice acoustic signal. is there.
- Non-Patent Document 1 can compress a sequence of integer values that follow a denser distribution than the Laplace distribution into a code length smaller than that of the Golomb-Rice code, one integer for a set of two integers
- the encoding device and the decoding device usually store in advance a mapping table for realizing the mapping as shown in FIG. 1 in the storage unit, and a set of two integer values It will be implemented to search the mapping table when it is input.
- the mapping table increases in proportion to the square of the domain of integer values in the series of input integer values. Therefore, when the domain of integer values is large, the mapping table is used. There is a problem that the amount of memory of the storage unit for storing is large, and a problem that the amount of calculation processing for searching one mapping value for a set of two integer values from the mapping table is large.
- FIG. 1 Although it is possible to store not the mapping table but a predetermined rule as shown in FIG. 1 in the encoding device and the decoding device, it is also possible to use FIG. 1 as shown in FIG. There is a problem that it is necessary to search sequentially from the center of the rule, and when the domain of integer values is large, the amount of operation processing is large.
- Non-Patent Document 2 Although distortion can be suppressed with a small amount of compression under high bit rate conditions, only an integer number of bits can be allocated per sample of the frequency spectrum, so the bit rate There is a problem in that the efficiency of compression is reduced under the condition of low, and the distortion of the decoded sample sequence to the average number of bits allocated to the sample sequence becomes large.
- An object of the present invention is to realize encoding and decoding more suitable for a sequence of integer values. More specifically, the present invention realizes encoding and decoding that substantially allocates the number of bits of a fractional value per sample, in particular, a sequence of integer values according to a distribution having a variation different from the Laplace distribution An object of the present invention is to realize encoding and decoding with a smaller amount of memory and arithmetic processing amount than in the prior art by a simple correspondence to whole integer values similar to the Golomb-Rice code.
- the coding apparatus is all algebraically representable for each of a plurality of sets of integer values included in a sequence of input integer values. It includes an integer conversion unit for obtaining one integer value (hereinafter referred to as “converted integer”) by injection conversion, and an integer coding unit for coding each converted integer to obtain a code.
- the integer encoding unit performs Golomb-Rice encoding on each of the transformed integers to obtain a code.
- the encoding device performs bijective transformation of a plurality of integer values (integer values) for each of the integer values included in the input integer value series.
- integer conversion unit that obtains “a converted integer”
- integer coding unit that performs Golomb-Rice coding of the converted integer to obtain a code.
- the encoding apparatus is a system for converting partial sequences (hereinafter referred to as "integer sequences") by a predetermined number of integer values among sequences by input integer values.
- conversion processing A conversion processing to obtain one integer value as an integer after conversion
- conversion processing B conversion processing to obtain integer values of the number (MB, MB is an integer of 2 or more) as integers after conversion
- conversion processing B conversion processing to obtain integer values of the number (MB, MB is an integer of 2 or more) as integers after conversion
- conversion processing B for obtaining integer values of the number (MB, MB is an integer of 2 or more) as integers after conversion
- an integer encoding unit for coding each integer value included in the converted integer series by Golomb Rice coding to obtain a code And.
- a decoding device is an integer decoding unit that decodes an input code to obtain one integer value (hereinafter referred to as “converted integer”); And an integer inverse transform unit for obtaining a plurality of integer values by algebraically expressible bijective transformation from one transformed integer.
- the integer decoding unit performs Golomb-rice decoding of the code to obtain one integer value.
- a decoding apparatus performs an integer decoding unit to obtain input integer values (hereinafter referred to as “converted integers”) by Golomb-Rich decoding of an input code. And an integer inverse transform unit that obtains one integer value from a plurality of transformed integers by bijective transformation.
- the decoding device is a decoding device for decoding an input parameter code and an integer code to obtain a decoded integer sequence every predetermined interval, A parameter decoding unit that obtains an index value by decoding an input parameter code for each section, and Golomb-Rich decoding for an input integer code input for each predetermined section, and a series of integer values (hereinafter referred to as “converted integer series”) For each of the integer decoding unit for obtaining n and the converted integer that is one integer value included in the converted integer sequence, a plurality of (MA pieces, MA is an integer of 2 or more) integer values are calculated by bijective conversion.
- inverse conversion process A For each converted integer that is a plurality of (MB, MB is an integer greater than or equal to 2) integer values included in the converted integer sequence and a conversion process (hereinafter referred to as “inverse conversion process A”) to be obtained
- inverse conversion processing B One conversion From among a plurality of options including at least one of conversion processing for obtaining numerical values (hereinafter referred to as “inverse conversion processing B”), conversion processing for each predetermined section is selected based on the index value for each predetermined section
- an integer inverse transform unit configured to obtain a sequence of integer values as a decoded integer sequence by performing the selected conversion process on the converted integer sequence of each predetermined section.
- encoding and decoding more suitable for a sequence of integer values can be realized. More specifically, to realize encoding and decoding that substantially allocates the number of bits of a small value per sample, in particular, a sequence of integer values according to a distribution having a difference from the Laplace distribution is Golomb-Rice code. It is possible to realize encoding and decoding with a smaller amount of memory and operation processing amount than in the prior art, by the simple correspondence to the whole integer value similar to the above.
- FIG. 1 is a diagram showing an example of mapping that defines assignment of one integer value to a set of two integer values.
- FIG. 2 is a diagram illustrating a functional configuration of the encoding device of the first embodiment.
- FIG. 3 is a diagram illustrating the processing procedure of the encoding method of the first embodiment.
- FIG. 4 is a diagram illustrating a functional configuration of the decoding device of the first embodiment.
- FIG. 5 is a diagram illustrating the processing procedure of the decoding method of the first embodiment.
- FIG. 6 is a diagram illustrating the bit length of the code for a set of two integer values.
- FIG. 7 is a figure which illustrates the bit length of the code with respect to the set by two integer values.
- FIG. 1 is a diagram showing an example of mapping that defines assignment of one integer value to a set of two integer values.
- FIG. 2 is a diagram illustrating a functional configuration of the encoding device of the first embodiment.
- FIG. 3 is a diagram illustrating the processing procedure of the
- FIG. 8 is a diagram illustrating a functional configuration of the coding device according to the fifth embodiment.
- FIG. 9 is a diagram illustrating the processing procedure of the encoding method of the fifth embodiment.
- FIG. 10 is a diagram illustrating a functional configuration of the parameter determination unit.
- FIG. 11 is a diagram illustrating the processing procedure of the parameter determination method.
- FIG. 12 is a diagram for explaining a generalized Gaussian distribution.
- FIG. 13 is a diagram illustrating the functional configuration of the coding device according to the fifth embodiment.
- FIG. 14 is a diagram illustrating a functional configuration of the coding device according to the fifth embodiment.
- FIG. 15 is a diagram illustrating the functional configuration of the coding device according to the fifth embodiment.
- FIG. 16 is a diagram illustrating the functional configuration of the coding device according to the fifth embodiment.
- FIG. 17 is a diagram illustrating the functional configuration of the decoding device of the fifth embodiment.
- FIG. 18 is a diagram illustrating the processing procedure of the decoding method of the fifth embodiment.
- the encoding device of the first embodiment includes, for example, an integer conversion unit 11 and an integer encoding unit 12 as shown in FIG.
- the encoding method of the first embodiment is realized by the encoding device performing the processing of each step shown in FIG.
- a sequence of integer values is input to the encoding device of the first embodiment.
- a sequence based on this integer value for example, a signal obtained by converting voice or music collected by a microphone into a digital signal in the time domain or frequency domain, or an image or video taken by a camera in the time domain or frequency domain
- a part or all of a signal obtained by converting into a digital signal or the like may be quantized by the existing technology, and a value obtained by obtaining a value of finite precision may be input. More specifically, for example, sound signals in the time domain are converted into 2N MDCT coefficient sequences in the frequency domain in frame units of a predetermined time length, and each coefficient of the MDCT coefficient sequence is obtained as a nonnegative integer value. It is a series of integer values, or a series of integer values obtained by converting each sample value into a non-negative integer value in frame units of a predetermined time length for a sound signal of time domain.
- the encoding apparatus of the first embodiment is a bijective bijective transformation that can be expressed algebraically for each of two integer value pairs (hereinafter also referred to as integer pairs) in a sequence of input integer values.
- An integer value is obtained, and the variable length coding of the obtained integer value sequence is performed to obtain a bit length shorter than Golomb-Rice coding for a sequence with integer value of denser distribution than the Laplace distribution. It realizes the processing.
- [Integer conversion unit 11] A sequence of integer values of 2N samples (N is a natural number) of the sequence of integer values input to the encoding device is input to the integer conversion unit 11.
- a series of input integer values is set to an integer series x_1, x_2, ..., x_2N.
- the integer conversion unit 11 obtains N sets of integer sets of two integer values according to a predetermined rule from the input integer series x_1, x_2,.
- One integer value is obtained by the above conversion, and the obtained sequence y_1, y_2,..., Y_N of N integer values is output to the integer coding unit 12 (step S11).
- the predetermined rule for obtaining N sets of integers is a rule in which two adjacent integer values in the input integer series x_1, x_2, ..., x_2N are integers, ie, x_1 and x_2, x_3.
- x_4, ... any rule that can be determined in advance and stored in advance in the encoding device and the decoding device, such as a rule in which x_2N-1 and x_2N are each an integer set .
- the integer conversion unit 11 converts the integer y_1 after conversion from the integer set of x_1 and x_2 of the input integer series x_1, x_2, ..., x_2N.
- the integer conversion unit 11 obtains one integer value by bijective conversion that can be expressed algebraically with respect to a set of two input integer values, and obtains one integer value.
- the integer value will be output as an integer after conversion.
- the integer coding unit 12 receives the converted integer series y_1, y_2, ..., y_N output from the integer conversion unit 11.
- the integer encoding unit 12 Golomb-Rice encodes each integer value included in the post-conversion integer sequence y_1, y_2,..., Y_N, that is, Golomb- for each integer value in a predetermined Rice parameter (rice parameter) r.
- the Rice code C_1, C_2,..., C_N are obtained respectively, and a code group based on the obtained code is output as an integer code (step S12).
- the predetermined Rice parameter r may be determined in advance and stored in advance in the encoding device and the decoding device, or, for example, the integer encoding unit 12 may convert the integer sequence y_1, y_2,.
- Golomb-Rice coding is performed using Rice parameter r, and the code corresponding to Rice parameter r used for Golomb-Rice coding is added to Golomb-Rice codes C_1, C_2, ..., C_N as an integer code You may
- the decoding device of the first embodiment includes, for example, an integer decoding unit 21 and an integer inverse conversion unit 22 as shown in FIG.
- the decoding method of the first embodiment is realized by the decoding device executing the processing of each step shown in FIG.
- the integer code output from the encoder of the first embodiment is input to the decoder of the first embodiment.
- the decoding device of the first embodiment decodes the input integer code by decoding processing corresponding to the encoding device of the first embodiment to obtain a sequence of integer values, and an integer value in the sequence of the obtained integer values
- the two integer values are obtained by performing inverse transformation on each of them by the encoding device of the first embodiment, thereby recovering the sequence of integer values input to the encoding device of the first embodiment.
- the integer decoding unit 21 receives N (N is a natural number) integer codes input to the decoding device.
- N is a natural number
- the integer decoding unit 21 performs Golomb-Rice decoding of each input integer code C_1, C_2,..., C_N, that is, each integer code C_1, C_2,..., Which is a Golomb-Rice code at a predetermined Rice parameter r. .., Y_N are obtained from C_N, and the obtained sequence of integer values is converted to an integer sequence y_1, y_2,..., Y_N and output to the integer inverse transform unit 22 (step S21).
- the predetermined Rice parameter r is the same as that of the corresponding encoding device. That is, the Rice parameter r predetermined in advance and stored in advance in the decoding device is used, or the Rice parameter r obtained by decoding the code corresponding to the Rice parameter r included in the integer code is used.
- the integer inverse transform unit 22 receives the post-conversion integer series y_1, y_2,.
- the integer inverse transformation unit 22 performs inverse transformation to the transformation performed by the integer transformation unit 11 of the encoding device of the first embodiment for each of the integer values included in the input transformed integer series y_1, y_2, ..., y_N.
- the integer series x_1, x_2 are obtained according to the rule corresponding to the rule performed by the integer conversion unit 11 of the encoding device of the first embodiment from the obtained integer set of N sets. , ..., x_2N are obtained and output (step S22).
- the integer inverse conversion unit 22 performs the conversion of Equation (2) as the reverse conversion of the conversion of Equation (1).
- Two integer values x 1 and x 2 are obtained from one integer value y by.
- the integer inverse transformation unit 22 performs the procedure of, for example, Step A-1 to A-3-1 or Step A-1 to A-2, A-3-2 below, instead of the calculation of Equation (2). May be
- Step A-1 Obtain the largest integer b not exceeding the square root of y.
- Step A-2 Calculate the square of b (b 2 ).
- Step A-3-1 If the difference between y and the square of b is even, that is, if yb 2 is even, let b be an integer value x 1 and subtract the square of b from y. The obtained value is divided by 2 to obtain the obtained value (yb 2 ) / 2 as an integer value x 2 .
- Step A-3-2 If the difference between y and the square of b is odd, that is, if yb 2 is odd, let b be an integer value x 2 and subtract the square of b from y by 1 The obtained value is divided by 2 to obtain a value (yb 2 -1) / 2 as an integer value x 1 .
- the integer inverse conversion unit 22 converts the input integer sequence y_1 after conversion , Y_2, ..., y_N from the converted integer y_1 to the integer pair by the integer value x_1 and the integer value x_2, the converted integer y_2 to the integer pair by the integer value x_3 and the integer value x_4, ... After the conversion, an integer pair of integer value x_2N-1 and integer value x_2N is obtained from integer y_N after conversion, and an integer series x_1, x_2,.
- the Golomb-Rice code associates all nonnegative integer values x with codes as shown in Table 1 by specifying the Rice parameter r.
- Equation (3) the bit length B (x) of the Golomb-Rice code for the integer value x is expressed by Equation (3), and is linearly related to the magnitude of the integer value x .
- the Golomb-Rice code Since the assignment of the optimum bit length of the code to the distribution p (x) of integer values x in the input integer sequence is given by the logarithm value of the distribution, the Golomb-Rice code has the distribution of Equation (4), That is, it turns out that it is optimal with respect to the Laplace distribution of a discrete system.
- a set of a plurality of integers is converted to one integer or a plurality of one integers. Convert to a set of integers and apply the Golomb-Rice code to the converted integers.
- the dense distribution here refers to a distribution in which the probability of appearance of small integer values is high and the probability of appearance of large integer values is low.
- the present invention In order to assign one code to a set of integer values with a smaller amount of memory and a smaller amount of operation processing than the prior art, the present invention first sets the set of integer values (x 1 , x 2 ) to the above equation (1) Convert to one integer value y.
- the above equation (1) is a conversion in which the square of the maximum value and the double of the minimum value in the set of integer values are added, and 0 or 1 is added according to the magnitude relationship of the integer values.
- x 1 and x 2 in the above equation (1) may be reversed.
- This conversion is a complete singleton mapping from two integer values to one integer value, and one integer value y is uniquely determined from a set of integer values (x 1 , x 2 ), and vice versa, Since a single integer value y to a set of integer values (x 1 , x 2 ) is also uniquely determined, inverse transformation on the decoding side is possible.
- Golomb-Rice code By assigning the Golomb-Rice code to the integer value y after conversion, a code suitable for integer values belonging to a dense distribution is assigned.
- FIG. 6A shows the number of bits of codes assigned to the set of integer values (x 1 , x 2 ) according to the present invention.
- the horizontal axis is the value of x 1 and the vertical axis is the value of x 2
- the hatching type indicates the number of bits of the code. The relationship between the type of hatching and the number of bits is as shown in the bar on the right.
- the code according to the invention approximates the squares of the integer values x 1 and x 2 respectively It becomes a bit length in a linear relationship.
- FIG. 6B shows the number of bits of the code along the broken line ⁇ in FIG. 6A.
- the ideal assignment of a bit length that minimizes the average code length to an integer sequence according to is the value obtained by taking the negative value of the logarithm of 2 for the probability of each integer value x included in the integer sequence x 2 + log 2 Z 2 bits, which is linearly related to the square of the integer value x. Therefore, the code according to the present invention corresponds to approximating the assignment of the optimum bit length to the integer sequence according to the discrete Gaussian distribution.
- the code according to the present invention changes only 3.5% at most from the bit length of the theoretical limit, and the code according to the present invention is a bit of the theoretical limit It showed near-long performance.
- the sparse distribution refers to a distribution in which the appearance probability of small integer values is low and the appearance probability of large integer values is high.
- the integer value x is converted as in equation (8) to obtain a set of integer values (y 1 , y 2 ),
- One code is assigned to each of the obtained integer values y 1 and y 2 .
- the conversion of equation (8) is to convert one integer value into a set of two integer values in an all single mapping, and one integer value x to a set of integer values (y 1 , y 2 ) Is uniquely determined, and vice versa, that is, since one integer value x is also uniquely determined from the set of integer values (y 1 , y 2 ), reverse conversion on the decoding side is possible.
- the integer values y 1 and y 2 obtained by the equation (8) approximately indicate the square root value of the original integer value x. Therefore, as shown in FIG. 7, the bit length of the code assigned to the integer value x can be made to have a length approximately in linear relation to the square root of the integer value x.
- the ideal assignment of the bit length that minimizes the average code length to an integer sequence according to is the value obtained by taking the negative value of the logarithm of 2 with respect to the probability of each integer value x included in the integer sequence + log 2 Z 0.5 bits, which is linearly related to the square root of the integer value x.
- the code according to the invention corresponds to approximating the optimal bit length assignment for integer sequences according to the distribution p 0.5 (x).
- the code according to the present invention changes only 5% at most from the bit length of the theoretical limit It shows performance close to the theoretical limit bit length.
- the encoding apparatus according to the second embodiment includes, for example, an integer conversion unit 13 and an integer encoding unit 14 as in the encoding apparatus according to the first embodiment.
- the encoding apparatus according to the second embodiment obtains integer values obtained by obtaining two integer values by bijective transformation that can be expressed algebraically for each of the single integer values in the input integer value series.
- the integer conversion unit 13 receives a sequence of integer values of N samples (N is a natural number) in the sequence of integer values input to the encoding device.
- a series of input integer values is set as an integer series x_1, x_2, ..., x_N.
- the integer conversion unit 13 obtains 2N pieces of integer numbers obtained in the integer sequence x_1, x_2,.
- the series y_1, y_2,..., Y_2N of integer values are output to the integer coding unit 14 as a converted integer series (step S13).
- a bijective transformation that can be expressed algebraically with respect to each integer value, for example, each integer value in the integer sequence x_1, x_2,.
- the method of obtaining two integer values y 1 and y 2 by equation (8) is used. Then, a total of 2N integer values obtained by equation (8) arranged in a predetermined order is output as a converted integer series y_1, y_2,..., Y_2N.
- the integer conversion unit 13 may perform, for example, the following Steps B-1 to B-3-1 or Steps B-1 to B-2 and B-3-2 instead of the calculation of Formula (8). .
- Step B-1 Obtain the largest integer c not exceeding the square root of x.
- Step B-2 Calculate the square of c (c 2 ).
- Step B-3-1 If the difference between x and the square of c is even, that is, if xc 2 is even, c is an integer value y 1 and the square of c is subtracted from x The obtained value is divided by 2 to obtain a value (xc 2 ) / 2 obtained as an integer value y 2 .
- Step B-3-2 If the difference between x and the square of c is odd, that is, if xc 2 is odd, let c be an integer value y 2 and subtract the square of c from x and 1 from x The value obtained by the above is divided by 2 to obtain the value (xc 2 -1) / 2 obtained as the integer value y 1 .
- the predetermined order is, for example, two converted integers obtained from the integer value x_1 as y_1 and y_2, two converted integers obtained from the integer value x_2 as y_3 and y_4,. It is an order that can be stored in advance in the encoding device and the decoding device, such as the order of converting two converted integers obtained from the numerical value x_N into y_2N-1 and y_2N.
- the integer coding unit 14 receives the post-conversion integer series y_1, y_2,..., Y_2N output from the integer conversion unit 13.
- the integer encoding unit 14 Golomb-Rice encodes each integer value included in the post-conversion integer sequence y_1, y_2,..., Y_2 N, that is, Golomb-Rice code C_1 for each integer value in a predetermined Rice parameter r.
- C_2,..., C_2N are obtained, and a code group based on the obtained code is output as an integer code (step S14).
- the predetermined Rice parameter r may be determined in advance and stored in advance in the encoding device and the decoding device, or, for example, the integer encoding unit 14 may convert the integer sequence y_1, y_2,. Performs Golomb-Rice coding using Rice parameter r, and outputs the code corresponding to Rice parameter r used in Golomb-Rice coding added to Golomb-Rice codes C_1, C_2, ..., C_2N as an integer code You may
- the decoding device of the second embodiment includes, for example, an integer decoding unit 23 and an integer inverse conversion unit 24 as in the decoding device of the first embodiment.
- the integer code output from the encoding device of the second embodiment is input to the decoding device of the second embodiment.
- the decoding device of the second embodiment decodes the input integer code by decoding processing corresponding to the encoding device of the second embodiment to obtain a sequence of integer values, and two of the sequences of the obtained integer values are obtained.
- the sequence itself of integer values input to the coding device of the second embodiment is restored. is there.
- the integer decoding unit 23 receives 2N (N is a natural number) of integer codes input to the decoding apparatus.
- C_1, C_2, ..., C_2N be the input integer codes.
- the integer decoding unit 23 performs Golomb-Rice decoding on each of the input integer codes C_1, C_2,..., C_2N, that is, each integer code C_1, C_2,..., Which is a Golomb-Rice code at a predetermined Rice parameter r.
- the integer values y_1, y_2,..., Y_2N are obtained from C_2N, and the obtained sequence of integer values is converted to an integer sequence y_1, y_2, ..., y_2N and output to the integer inverse transform unit 24 (step S23).
- the predetermined Rice parameter r is the same as that of the corresponding encoding device. That is, the Rice parameter r predetermined in advance and stored in advance in the decoding device is used, or the Rice parameter r obtained by decoding the code corresponding to the Rice parameter r included in the integer code is used.
- the integer inverse transform unit 24 receives the post-conversion integer series y_1, y_2, ..., y_2N output from the integer decoding unit 23.
- the integer inverse transformation unit 24 calculates integers based on two integer values according to a rule corresponding to the rule performed by the integer conversion unit 13 of the encoding device according to the second embodiment from the input converted integer series y_1, y_2, ..., y_2N.
- N sets of sets are obtained, and the obtained integer set is subjected to conversion inverse to the conversion performed by the integer conversion unit 13 of the encoding device of the second embodiment to obtain one integer value, and the obtained integer values are obtained
- the integer series x_1, x_2,..., X_N which are series are output (step S24).
- the integer inverse conversion unit 24 performs the conversion of Equation (10) as the reverse conversion of the conversion of Equation (8).
- One integer value x is obtained from a pair (y 1 , y 2 ) of two integer values by.
- the integer inverse conversion unit 24 receives the input converted integer sequence
- the integer value x_1 is obtained from the converted integers y_1 and y_2 among y_1, y_2, ..., y_2N
- the integer value x_2 is obtained from the converted integers y_3 and y_4, ..., the converted integers y_2N-1 and y_2N
- To obtain an integer value x_N and output an integer sequence x_1, x_2, ..., x_N which is a sequence of the obtained integer values.
- the conversion of Formula (1) performed by the integer conversion unit 11 of the encoding device of the first embodiment can be approximated by an operation in binary notation. For example, when the values of x 1 and x 2 are respectively 1111 (15 in decimal notation) and 0000 (0 in decimal notation) in binary notation, 10101010 (in decimal notation) in which these digits are nested 170) shows a value close to the square of x 1 and x 2 approximately. Therefore, the integer conversion unit 11 of the encoding device of the first embodiment may set a value obtained by an operation of nesting the digits of the binary notation of the values of x 1 and x 2 as y.
- nesting digits means that the value of the most significant digit of binary notation of x 1 is the value of the most significant digit of binary notation of y, and the value of the most significant digit of binary notation of x 2
- the number be the second highest digit of the binary notation of y, ..., and the lowest digit of the binary notation of x 1 be the second lowest digit of the binary notation of y
- the operation of setting the value of the least significant digit of binary notation of x 2 to the value of the least significant digit of binary notation of y hereinafter also referred to as “nesting”.
- the integer inverse conversion unit 22 of the decoding device of the first embodiment performs the nesting process.
- the reverse operation of, that is, the highest digit of the binary notation of y is the highest digit of the binary notation of x 1 and the second highest digit of the binary notation of y is x 2
- the highest digit number in binary notation, ..., the second lowest digit value in binary notation of y is the lowest digit number in binary notation of x 1
- the binary notation of y An operation may be performed in which the value of the least significant digit is used as the value of the least significant digit of the binary notation of x 2 .
- the integer conversion unit 13 of the encoding device may set two integer values obtained by performing the reverse operation of the nesting process on the binary notation of the value of x as y 1 and y 2.
- the integer inverse transformation unit 24 of the decoding device may obtain the integer value x by performing an operation of nesting the digits of the binary notation of the values of y 1 and y 2. .
- the encoding apparatus of the first embodiment obtains one integer value by a bijective transformation that can be expressed algebraically for each of two pairs of integer values in a sequence of input integer values.
- a bijective transformation that can be expressed algebraically for each set of more integer values in the series of input integer values, it is possible to obtain a series of integer values according to a denser distribution.
- An appropriate code can be assigned to it.
- one integer value is generated by a bijective transformation that can be expressed algebraically for each of predetermined M (M is an integer of 2 or more) pairs of integer values in a sequence of input integer values. To obtain a variable-length sequence of the obtained integer value.
- M is an integer of 2 or more
- the encoding apparatus of the third embodiment includes, for example, an integer conversion unit 15 and an integer encoding unit 16 as in the encoding apparatus of the first embodiment.
- the operation of the integer encoding unit 16 of the encoding apparatus of the third embodiment and the process of step S16 executed by the integer encoding unit 16 are the operation of the integer encoding unit 12 of the encoding apparatus of the first embodiment and integer encoding Since the process is the same as the process of step S12 performed by the unit 12, only the integer conversion unit 15 whose operation is different from that of the first embodiment will be described here.
- a sequence of integer values for each of MN samples (M ⁇ N samples, M is an integer of 2 or more, N is a natural number) is included in the sequence of integer values input to the encoding device. It is input. Let the sequence by the input integer value be an integer sequence x_1, x_2, ..., x_MN.
- the integer conversion unit 15 obtains N sets of integer sets of M integer values according to a predetermined rule from the input integer series x_1, x_2,. One integer value is obtained by simple conversion, and the obtained sequence y_1, y_2,..., Y_N of N integer values is output to the integer encoding unit 16 (step S15).
- M integer values constituting the integer set can be x 1 , x 2 , ..., x M (11) is used to obtain one integer value y.
- the series y_1, y_2,..., Y_N will be referred to as post-conversion integer series.
- f M ' (x 1 , x 2 , ..., x M' ) takes a series (variable series) x 1 , x 2 , ..., x M ' of M' variables as input, and one variable as output Is a recursive function
- the maximum value of M ' variables x 1 , x 2 , ..., x M' is x max
- the number of variables with the maximum value is K
- the variables with the maximum value are K variables
- the numbers in the variable series of M are M 1 , m 2 , ..., m K
- a predetermined rule for obtaining N sets of integers is, for example, a rule in which adjacent M integer values in the input integer series x_1, x_2, ..., x_MN are an integer set, that is, x_1 to x_M, If it is a rule which can be determined in advance and stored in advance in the encoding device and the decoding device, such as a rule in which x_M + 1 to x_2M,..., x_M (N-1) +1 to x_MN is an integer set, respectively. Any rule may be used.
- the integer conversion unit 15 converts an integer set from x_1 to x_M of the input integer series x_1, x_2,. Obtain y_1 and convert integer y_2 from x_M + 1 to x_2M to obtain converted integer y_2,..., convert integer y_N from integer set from x_M (N-1) +1 to x_MN, The converted integer series y_1, y_2,.
- the integer conversion unit 15 may perform, for example, the following Steps C-1 to C-2 instead of the calculation of Equation (11). .
- Step C-2 Convert the integer of maximum digit number MK digit (M ⁇ K digit) in which M values of each digit are arranged in order from the most significant digit to the least significant digit, and convert it to binary notation of integer y. That is, the binary notation is a_ (K, M), a_ (K, M-1), ..., a_ (K, 1), a_ (K-1, M), ..., a_ (K-1, 1) , ..., a_ (1, 1) is converted to an integer y after conversion.
- the decoding device of the third embodiment includes, for example, an integer decoding unit 25 and an integer inverse conversion unit 26 as in the decoding device of the first embodiment.
- the operation of the integer decoding unit 25 of the decoding apparatus of the third embodiment and the process of step S25 executed by the integer decoding unit 25 are the operation of the integer decoding unit 21 of the decoding apparatus of the first embodiment and the steps executed by the integer decoding unit 21 Since the process is the same as the process of S21, only the integer inverse transform unit 26 whose operation is different from that of the first embodiment will be described here.
- the integer inverse transform unit 26 receives the post-conversion integer series y_1, y_2,..., Y_N output from the integer decoding unit 25.
- the integer inverse transformation unit 26 performs inverse transformation to the transformation performed by the integer transformation unit 15 of the encoding device of the third embodiment for each of the integer values included in the input transformed integer series y_1, y_2, ..., y_N. Then, N integer pairs are obtained by M integer values, and the integer sequence x_1, x_1, x 1, 2 according to the rule corresponding to the rule performed by the integer conversion unit 15 of the encoding device of the third embodiment x_2, ..., x_MN are obtained and output (step S26).
- the integer inverse conversion unit 26 performs the conversion of Equation (13) as the reverse conversion of the conversion of Equation (11).
- the M integer values x 1 , x 2 ,..., X M are obtained from one integer value y by.
- f M ' -1 (y) is a recursive function that takes one variable as input and M' variables as output, and the largest M'th-order square root not exceeding y
- variable sequence ⁇ x 1 , ⁇ x 2 , ..., ⁇ x M'-K consisting of M'-K variables obtained by
- f 0 -1 (y) means a function that outputs nothing.
- the integer inverse transformation unit 26 may perform, for example, the following Steps D-1 to D-2 instead of the calculation of Equation (12). .
- Step D-1 The value of each digit of the input MK digit of binary notation of integer y after conversion is a_ (MK), a_ (MK-1), ..., a_ (1).
- Step D-2 K values are extracted every M pieces from the series a_ (MK), a_ (MK-1), ..., a_ (1) according to the MK values obtained in the above Step D-1 and arranged Let the integers be M integer values x 1 , x 2 , ..., x M.
- the integer whose binary notation is a_ (M (K-1) +1), a_ (M (K-2) +1), ..., a_ (1) is x 1
- the binary notation is a_ (M (K-1) +2), a_ (M (K-2) +2), ..., a_ (2)
- the integer is x 2
- the binary notation is a_ (MK), a_ (M Let the integer which is (K-1)), ..., a_ (M) be x M.
- the integer inverse conversion unit 26 receives the input converted integer sequence From the converted integer y_1 of y_1, y_2, ..., y_N, obtain an integer set of integer values x_1 to x_M, and obtain an integer set of integer values x_M + 1 to x_2M from the converted integer y_2, ⁇ Obtains an integer set of integer values x_M (N ⁇ 1) +1 to x_MN from the converted integer y_N, and outputs an integer series x_1, x_2,. .
- the larger the value of M the shorter the bit length for Golomb-Rice coding to the sequence of integer values of the distribution having a higher degree of density than the Laplace distribution. And a decoding process corresponding to the encoding process can be realized.
- the encoding apparatus of the second embodiment obtains two integer values by bijective transformation that can be expressed algebraically for each one integer value in the input integer value series, For a series of integers according to a sparser distribution by obtaining more integers by algebraically-representable bijective transformation for each one integer in the series of input integers Appropriate codes can be assigned.
- predetermined M M is an integer of 2 or more
- integer values are obtained by bijective transformation capable of algebraically representing one integer value in the input integer value series.
- Variable length coding of the obtained integer value sequence is the same as the operation of the second embodiment.
- the processing procedure of the coding method performed by the coding apparatus of the fourth embodiment will be described with reference to FIGS. 2 and 3.
- the encoding apparatus according to the fourth embodiment includes, for example, an integer conversion unit 17 and an integer encoding unit 18, as in the encoding apparatus according to the first embodiment.
- the integer conversion unit 17 receives a sequence of integer values of N samples (N is a natural number) of the sequence of integer values input to the encoding device.
- a series of input integer values is set as an integer series x_1, x_2, ..., x_N.
- the integer conversion unit 17 obtains MN integer values obtained by obtaining M integer values by bijective transformation that can be expressed algebraically for each integer value in the input integer sequence x_1, x_2, ..., x_N.
- the series y_1, y_2,..., Y_MN in which the integer values of X are arranged in a predetermined order are output to the integer coding unit 18 as a converted integer series (step S17).
- g M ' (x) is a recursive function that takes one variable as input and M' variables as output, and the largest M'th-order square root not exceeding x
- g 0 (x) means a function that outputs nothing.
- the integer conversion unit 17 may perform, for example, the following Steps E-1 to E-2 instead of the calculation of Equation (15). .
- Step E-1 The value of each digit of the MK digit of the binary notation of the input integer x is a_ (MK), a_ (MK-1),..., A_ (1).
- Step E-2 K values are extracted every M pieces from the series a_ (MK), a_ (MK-1), ..., a_ (1) based on the MK values obtained in the above Step E-1 and arranged Let the integers be M integer values y 1 , y 2 , ..., y M.
- an integer whose binary notation is a_ (M (K-1) +1), a_ (M (K-2) +1), ..., a_ (1) is y 1
- binary notation is a_ (M (K-1) +2), a_ (M (K-2) +2), ..., a_ (2) integers y 2 , ..., binary notation a_ (MK), a_ (M
- a_ (M) Let the integer which is (K-1)), ..., a_ (M) be y M.
- the predetermined order is, for example, M converted integers obtained from the integer value x_1 from y_1 to y_M, and M converted integers obtained from the integer value x_2 from y_M + 1 to y_2M , ..., in the order in which they are stored in advance in the encoding device and the decoding device, such as the order in which M converted integers obtained from the integer value x_N are changed from y_M (N-1) +1 to y_MN. is there.
- the integer coding unit 18 receives the converted integer sequence y_1, y_2,..., Y_MN output from the integer conversion unit 17.
- the integer coding unit 18 performs Golomb-Rice coding on each integer value included in the converted integer sequence y_1, y_2,..., Y_MN to obtain Golomb-Rice codes C_1, C_2,.
- the code group is output as an integer code (step S18).
- each integer value to be encoded by Golomb-Rice is 2N, for the integer encoding unit 14 of the encoding device of the second embodiment, 2N of integer sequences y_1, y_2,.
- the integer coding unit 14 is the same as the integer coding unit 14 of the coding device according to the second embodiment, except that it is an integer value, but MN integer values of the converted integer sequence y_1, y_2,.
- the decoding device includes, for example, an integer decoding unit 27 and an integer inverse conversion unit 28 as in the decoding device according to the first embodiment.
- the integer decoding unit 27 receives MN number (M is an integer of 2 or more, N is a natural number) of integer codes input to the decoding apparatus.
- MN number M is an integer of 2 or more, N is a natural number
- C_1, C_2, ..., C_MN be the input integer codes.
- the integer decoding unit 27 performs Golomb-Rice decoding of each of the input integer codes C_1, C_2,..., C_MN to obtain integer values y_1, y_2,. It is output to the integer inverse transform unit 28 as y_1, y_2,..., y_MN (step S27).
- the sequence of each integer value obtained by Golomb-Rice decoding is converted into an integer sequence y_1, y_2, after conversion by 2N integer values in the integer decoding unit 23 of the decoding apparatus of the second embodiment. It is the same as that of the integer decoding unit 23 of the decoding device according to the second embodiment except that the integer series y_1, y_2,.
- the integer inverse transform unit 28 receives the post-conversion integer series y_1, y_2, ..., y_MN output from the integer decoding unit 27.
- the integer inverse transformation unit 28 uses M integer values according to the rule corresponding to the rule performed by the integer transformation unit 17 of the encoding device according to the fourth embodiment from the input transformed integer series y_1, y_2, ..., y_MN.
- N sets of integer sets are obtained, and a conversion that is the reverse of the conversion performed by the integer conversion unit 17 of the encoding apparatus of the fourth embodiment is performed on each of the obtained integer sets to obtain one integer value, and the obtained integer value
- the integer series x_1, x_2,..., X_N which are the series according to are output (step S28).
- the integer inverse conversion unit 28 performs the conversion of Equation (17) as the inverse conversion of the conversion of Equation (15). , To obtain one integer value x from a set of M integer values (y 1 , y 2 ,..., Y M ).
- g M ' -1 (y 1 , y 2 , ..., y M' ) is a recursive function that takes a series (variable series) of M 'variables as input and outputs one variable, M
- the maximum value of ' variables y 1 , y 2 , ..., y M' is y max , the number of variables with the maximum value is K, and the number of each of the K variables with the maximum value is the number in the variable series
- the series of M'-K variables excluding the variable with the maximum value from m 1 , m 2 , ..., m K and the variable series y 1 , y 2 , ..., y M ' is ⁇ y 1 , ⁇ y 2 , ..., ⁇ y M'-K, when the g 0 -1 and the number of combinations of selecting the K 'the C K M' 0, M from pieces, expressed as in equation (18).
- the integer inverse transformation unit 28 may perform, for example, the following Steps F-1 to F-2 instead of the calculation of Expression (17). .
- Step F-2 An integer having the maximum number of digits MK, in which M values of each digit are arranged in order from the most significant digit to the least significant digit, is a binary notation of integer x. That is, the binary notation is a_ (K, M), a_ (K, M-1), ... a_ (K, 1), a_ (K-1, M), ..., a_ (K-1, 1), Let an integer that is ..., a_ (1, 1) be an integer x.
- the integer inverse conversion unit 28 receives the input converted integer Obtain the integer value x_1 from the converted integers y_1 to y_M in the series y_1, y_2, ..., y_MN, obtain the integer value x_2 from the converted integers y_M + 1 to y_2M, ..., the converted integer Integer values x_N are obtained from y_M (N-1) +1 to y_MN, and integer sequences x_1, x_2,..., x_N, which are sequences of the obtained integer values, are output.
- the encoding process has a shorter bit length than Golomb-Rice encoding for a sequence of integer values of a distribution having a larger degree of sparseness than the Laplace distribution. And a decoding process corresponding to the encoding process can be realized.
- the encoding device estimates, for each partial sequence in the sequence of input integer values, the nature of the distribution of the sequence, and selects any one of the first to fourth embodiments according to the nature of the estimated distribution.
- the value of M in the third embodiment or the fourth embodiment may be selected to operate according to the nature of the estimated distribution.
- the decoding apparatus operates by selecting any of the first to fourth embodiments according to the index value representing the nature of the distribution estimated by the encoding apparatus, or the nature of the distribution estimated by the encoding apparatus
- the value of M in the third embodiment or the fourth embodiment may be selected and operated according to the index value representing. This form will be described as a fifth embodiment.
- the processing procedure of the encoding method performed by the encoding apparatus of the fifth embodiment will be described with reference to FIGS. 8 and 9.
- the encoding apparatus of the fifth embodiment includes, for example, a parameter determination unit 30, an integer conversion unit 31, and an integer encoding unit 32, as shown in FIG.
- the encoding method of the fifth embodiment is realized by the encoding device performing the processing of each step shown in FIG.
- a sequence of integer values is input to the encoding device of the fifth embodiment.
- the sequence based on this integer value is, for example, a signal obtained by converting voice or music collected by a microphone into a digital signal in the time domain or frequency domain, or captured by a camera It is obtained by quantizing a part or all of a signal such as a signal obtained by converting the resulting image or video into a digital signal in the time domain or frequency domain according to the existing technology to obtain a value of finite precision.
- the sequence of integer values input to the encoding device of the fifth embodiment is input to the parameter determination unit 30 for each sequence of a predetermined number of integer values.
- the sequence of a predetermined number of integer values is, for example, a sequence of integer values corresponding to a digital signal of a predetermined time interval called a frame, in the case of a digital signal such as voice or music.
- a sequence of integer values of L samples (L is a natural number) is input to the parameter determination unit 30.
- the parameter determination unit 30 receives a sequence of integer values of L samples (L is a natural number) in the sequence of integer values input to the encoding device.
- a series of input integer values is set as an integer series x_1, x_2, ..., x_L.
- the parameter determination unit 30 obtains an index value representing the nature of the distribution of the integer series, and a parameter code which is a code representing the determined index value and the index value. And are output (step S30).
- the parameter code may be obtained by encoding an index value so that the decoding apparatus decodes the parameter code to obtain the index value determined by the parameter determination unit 30.
- the parameter determination unit 30 obtains the parameter ⁇ , which is an index value representing the nature of the distribution of the integer series, from the input integer series x_1, x_2, ..., x_L, and outputs the parameter ⁇ ⁇ ⁇ ⁇ ⁇ . Specifically, the parameter determination unit 30 uses the positive parameter 0 0 determined by a predetermined method to set the power ⁇ 0 to the power ⁇ ⁇ 0 of the absolute value of each integer value included in the integer series x_1, x_2, ..., x_L.
- the envelope is estimated on the basis of each value of, and a whitened series which is a series obtained by dividing each integer value included in the integer series x_1, x_2, ..., x_L by each value of the envelope is obtained, and the parameter ⁇ is shaped
- a generalized Gaussian distribution as a parameter obtains a positive parameter ⁇ that approximates the histogram of the whitening series, and outputs the obtained parameter ⁇ and a parameter code that is a code representing the parameter ⁇ .
- the parameter determination unit 30 determines Using the positive parameter ⁇ 0 determined by the method, the time envelope is estimated considering the ⁇ 0 power of the absolute value of each integer value included in the integer series x_1, x_2, ..., x_L as each value of the power series Obtain a whitened series which is a series obtained by dividing each integer value included in the integer series x_1, x_2, ..., x_L by each value of its temporal envelope, and a generalized Gaussian distribution is whitened series using parameter ⁇ as a shape parameter A positive parameter ⁇ approximating the histogram of is obtained, and the obtained parameter ⁇ and a parameter code that is a code representing the parameter ⁇ are output.
- the parameter determination unit 30 uses the positive parameter 0 0 determined by a predetermined method to determine the ⁇ 0 power of the absolute value of each integer value included in the integer series x_1, x_2, ..., x_L as each value of the power spectrum.
- a spectral envelope is estimated, and a whitened spectrum series, which is a series obtained by dividing each integer value included in the integer series x_1, x_2, ..., x_L by each value of the spectrum envelope, is obtained, and the parameter ⁇ is a shape parameter
- a generalized Gaussian distribution is obtained to obtain a positive parameter ⁇ that approximates the histogram of the whitening spectrum sequence, and the obtained parameter ⁇ and a parameter code that is a code representing the parameter ⁇ are output.
- the parameter determination unit 30 includes, for example, a spectrum envelope estimation unit 301, a whitening spectrum sequence generation unit 302, and a parameter acquisition unit 303.
- the spectrum envelope estimation unit 301 includes, for example, a linear prediction analysis unit 3011 and a non-smoothed amplitude spectrum envelope sequence generation unit 3012.
- FIG. 10 An example of each process of the parameter determination method realized by the parameter determination unit 30 is shown in FIG.
- the spectrum envelope estimation unit 301 receives the integer series x_1, x_2,..., X_L input to the parameter determination unit 30.
- the sound signal of the time domain in which the integer series x_1, x_2,..., X_L is a time series signal is converted, for example, into MDCT coefficient sequences of L points in the frequency domain in frame units of a predetermined time length.
- it is set as the frequency domain sample sequence obtained by making each coefficient of a coefficient sequence into a nonnegative integer value, it is not limited to this. Unless otherwise noted, the following processing is performed on a frame basis.
- the spectrum envelope estimation unit 301 determines, based on the parameter ⁇ 0 determined by a predetermined method, the ⁇ 0 power of the absolute value of each integer value included in the input integer series x_1, x_2, ..., x_L.
- the spectrum envelope used as the value is estimated (step S301).
- the estimated spectral envelope is output to the whitening spectrum sequence generation unit 302.
- the spectrum envelope estimation unit 301 estimates the spectrum envelope by generating a non-smoothed amplitude spectrum envelope sequence by, for example, the processing of the linear prediction analysis unit 3011 and the non-smoothed amplitude spectrum envelope sequence generation unit 3012 described below. .
- the frame before the frame for which the current parameter ⁇ is to be obtained (hereinafter referred to as the current frame) is, for example, a frame before the current frame and a frame near the current frame.
- a frame near the current frame is, for example, a frame immediately before the current frame.
- Linear prediction analysis unit 3011 receives the integer sequence x_1, x_2,..., X_L input to the spectrum envelope estimation unit 301.
- the linear prediction analysis unit 3011 uses the input integer series x_1, x_2, ..., x_L to define ⁇ R (0), ⁇ R (1), ..., ⁇ R (defined by the following equation (19)).
- L-1) is subjected to linear prediction analysis to generate linear prediction coefficients ⁇ 1 , ⁇ 2 ,..., ⁇ p .
- the generated linear prediction coefficients ⁇ 1 , ⁇ 2 ,..., ⁇ p are output to the non-smoothed amplitude spectrum envelope sequence generation unit 3012.
- the linear prediction analysis unit 3011 corresponds to an inverse Fourier transform in which the ⁇ 0 power of the absolute value of each integer value included in the integer sequence x_1, x_2, ..., x_L is regarded first as each value of the power spectrum.
- the pseudo-correlation is a signal sequence in the time domain corresponding to a series by .eta. Power of the absolute value of each integer value included in the integer series x_1, x_2,..., X_L.
- a function signal sequence ⁇ R (0), ⁇ R (1), ... ⁇ R (L-1) is obtained.
- the linear prediction analysis unit 3011 performs linear prediction analysis using the obtained pseudo correlation function signal sequence ⁇ R (0), ⁇ R (1), ..., ⁇ R (L-1) to obtain linear prediction coefficients. Generate ⁇ 1 , ⁇ 2 , ..., ⁇ p .
- the linear prediction coefficients ⁇ 1 , ⁇ 2 ,..., ⁇ p are the times when the absolute value ⁇ 0 power of each integer value included in the integer series x_1, x_2, ..., x_L is regarded as each value of the power spectrum It is a linear prediction coefficient corresponding to the signal of the domain.
- the linear prediction analysis unit 3011 performs inverse Fourier transform by regarding the power of eta power of the integer value of each integer value included in the integer sequence x_1, x_2, ..., x_L as each value of the power spectrum.
- Linear prediction analysis is performed using the obtained pseudo correlation function signal sequence to generate a linear prediction coefficient (step S3011).
- Non-smoothed amplitude spectrum envelope sequence generation unit 3012 receives the linear prediction coefficients ⁇ 1 , ⁇ 2 ,..., ⁇ p generated by the linear prediction analysis unit 3011.
- Textured amplitude spectral envelope sequence generating unit 3012 the linear prediction coefficients ⁇ 1, ⁇ 2, ..., ⁇ is the sequence of the amplitude spectrum envelope corresponding to p textured amplitude spectral envelope sequence H (0), H (1 ), ..., H (L-1) are generated.
- the generated non-smoothed amplitude spectrum envelope sequence H (0), H (1),..., H (L ⁇ 1) is output to the whitening spectrum sequence generation unit 302.
- Textured amplitude spectral envelope sequence generating unit 3012 the linear prediction coefficients beta 1, beta 2, ..., with beta p, unsmoothed amplitude spectral envelope sequence H (0), H (1 ), ..., H ( As L ⁇ 1), non-smoothed amplitude spectrum envelope series H (0), H (1),..., H (L ⁇ 1) defined by equation (20) are generated.
- the non-smoothed amplitude spectrum envelope sequence generation unit 3012 performs linear prediction analysis on the non-smoothed spectrum envelope sequence which is a sequence obtained by raising the sequence of the amplitude spectrum envelope corresponding to the pseudo correlation function signal sequence to the 1 / ⁇ 0 power.
- the spectrum envelope is estimated by obtaining based on the linear prediction coefficients generated by the unit 3011 (step 3012).
- the whitening spectrum sequence generation unit 302 sets each integer value included in the integer sequence x_1, x_2, ..., x_L to the corresponding non-smoothed amplitude spectrum envelope sequence H (0), H (1), ..., H (L) By dividing by each value of -1), a whitened spectrum series X W (0), X W (1), ..., X W (L-1) is generated.
- the generated whitened spectrum series X W (0), X W (1),..., X W (L ⁇ 1) are output to the parameter acquisition unit 303.
- the whitening spectrum sequence generation unit 302 obtains a whitening spectrum sequence which is a series obtained by dividing each integer value included in the integer series by each value of the spectrum envelope which is, for example, a non-smoothed amplitude spectrum envelope series. (Step S302).
- the parameter acquiring unit 303 receives the whitened spectrum sequence X W (0), X W (1),..., X W (L ⁇ 1) generated by the whitening spectrum sequence generation unit 302.
- the parameter acquisition unit 303 is a parameter ⁇ for which a generalized Gaussian distribution with the parameter ⁇ as a shape parameter approximates the histogram of the whitened spectrum series X W (0), X W (1), ..., X W (L-1). Are determined (step S303).
- the parameter acquisition unit 303 is a distribution of histograms of the whitened spectral series X W (0), X W (1), ..., X W (L-1), in which the generalized Gaussian distribution having the parameter ⁇ as a shape parameter Determine the parameter ⁇ that is close to
- a generalized Gaussian distribution with the parameter ⁇ ⁇ ⁇ ⁇ ⁇ as a shape parameter is defined, for example, as follows.
- ⁇ is a gamma function.
- ⁇ is a parameter corresponding to the variance.
- ⁇ determined by the parameter acquisition unit 303 is defined by, for example, the following equation (21).
- F ⁇ 1 is an inverse function of the function F. This equation is derived by the so-called moment method.
- the parameter acquisition unit 303 may obtain the parameter ⁇ , for example, by the first method or the second method described below, in order to calculate the value of ⁇ defined by Expression (21).
- the parameter acquiring unit 303 calculates m 1 / ((m 2 ) 1/2 ) based on the whitening spectrum sequence, and sets a plurality of different parameters ⁇ and the parameters ⁇ prepared in advance.
- the parameter code corresponding to the parameter ⁇ are output.
- a plurality of different combinations of parameter ⁇ , F ( ⁇ ) corresponding to the parameter ⁇ , and parameter code corresponding to the parameter ⁇ prepared in advance are stored in the storage unit 3031 of the parameter acquisition unit 303 in advance.
- the parameter acquiring unit 303 refers to the storage unit 3031 to find the F ( ⁇ ) closest to the calculated m 1 / ((m 2 ) 1/2 ), and the parameter ⁇ corresponding to the found F ()) And the parameter code corresponding to the parameter ⁇ are read from the storage unit 3031 and output.
- the parameter acquisition unit 303 sets m 1 / (m 1 / m 2) based on the whitening spectrum sequence, assuming that the approximate curve function of the inverse function F ⁇ 1 is, for example, F 1 represented by the following equation (21 ′). (m 2) 1/2) was calculated to obtain the ⁇ by calculating the output value when you enter the approximate curve function ⁇ F -1 was calculated to m 1 / ((m 2) 1/2) And a parameter code which is a code representing the parameter ⁇ and the parameter ⁇ .
- the approximate curve function ⁇ F ⁇ 1 may be a monotonically increasing function whose output has a positive value in the domain to be used.
- ⁇ determined by the parameter acquisition unit 303 is not equation (21) but an equation (21 ′ ′) using predetermined positive integers q 1 and q 2 (where q 1 ⁇ q 2 ) (21) may be defined by a generalized expression.
- ⁇ can be obtained by the same method as the case where ⁇ is defined by the equation (21). That is, based on the whitening spectrum sequence, the parameter acquiring unit 303 obtains a value m q1 / ((m q2 ) q1 / q2 ) based on the q first moment m q1 and the q second moment m q2.
- the output value when m q1 / ((m q2 ) q1 / q2 ) calculated to 1 is input can be calculated to obtain ⁇ .
- ⁇ is a value based on two different moments m q1 and m q2 of different orders.
- the value of the moment with the lower order or the value based thereon (hereinafter referred to as the former) and the value of the moment with the higher order or this ⁇ may be determined based on the value of the ratio to the value based on (hereinafter referred to as the latter), the value based on the value of this ratio, or the value obtained by dividing the former by the latter.
- the value based on the moment for example, is that the m Q a Q to the moment and m as a given real number.
- these values may be input to the approximate curve function ⁇ F -1 to obtain ⁇ . Similar to the above, this approximate curve function ⁇ F ' -1 may be a monotonically increasing function whose output has a positive value in the domain of use.
- the integer series x_1, x_2,..., X_L input to the parameter determination unit 30 is a frequency domain sample series such as MDCT coefficient series.
- the signal input to the signal processing apparatus is not limited to the frequency domain sample sequence by nonnegative numerical values, and the parameter determination unit 30 of FIGS. 10 and 11 can be used for other signals. That is, even if the signal input to the encoding apparatus is in the time domain or in the frequency domain, or the signal is not integerized or not negated, the parameter determination unit 30 in FIGS.
- An encoding device that includes
- the encoding apparatus when a digital signal in a time domain including a decimal value or a negative value is input to the encoding apparatus, the encoding apparatus is configured to convert the frequency domain conversion unit 33, the integer conversion unit 34, and the non-inversion unit as shown in FIG. 35, the frequency domain conversion unit 33 converts, for example, an MDCT coefficient sequence for each frame of a predetermined time interval, and the integer conversion unit 34 and the non-negative conversion unit 35
- the MDCT coefficient sequence may be integerized and non-negated, and then input to the parameter determination unit 30 and the integer conversion unit 31 as the integer sequence x_1, x_2,..., X_L.
- the integer conversion unit 34 performs integer conversion by rounding off the decimal part of each value of the input MDCT coefficient sequence or dividing by some quantization value and then rounding off the decimal part.
- the non-negative conversion unit 35 converts the integer value including the negative value included in the MDCT coefficient sequence after integerization into a non-negative integer value one-to-one all single copy, or converts the code representing positive / negative separately Do non-denialization. Integralization and non-inversion may be reversed in order, that is, the MDCT coefficient sequence may be de-inverted and then integerized, or may be simultaneously performed.
- the non-negative process performed by the non-negative unit 35 is not a process that greatly changes the value of the value (for example, when the sign representing positive or negative is treated separately), as shown in FIG.
- the parameter determination unit 30 determines the sample sequence before the non-negative conversion as the integer sequence x_1, x_2, ..., x_L You may enter to 30.
- the integer conversion processing performed by the integer conversion unit 34 divides all sample values of the digital signal for each frame of a predetermined time interval by the same quantization value and rounds off the decimal part, the integer conversion may be performed. Even if not, in theory the same ⁇ ⁇ can often be found.
- the sample string output from the non-negative unit 35 is input to the integer conversion unit 31 as the integer sequence x_1, x_2, ..., x_L, but the integer is used for the parameter determination unit 30
- the sample sequence before being input to the quantization unit 34 may be input to the parameter determination unit 30 instead of the integer sequence x_1, x_2,..., X_L and used.
- the quantization value is too large, it is obtained from the integer sequence after integerization to the parameter ⁇ obtained using the parameter ⁇ obtained from the integer sequence after integerization and the sample sequence before the integerization It should be noted that there can be non-negligible calculation errors from the parameter ⁇ .
- the integer determining unit 30 outputs the integer sequences x_1, x_2,..., X_L, which are sequences of integer values of L samples among the sequences of integer values input to the encoding apparatus, to the integer conversion unit 31.
- the index value is input.
- the integer series x_1, x_2,..., X_L input to the integer conversion unit 31 are the same integer series used to obtain the index value input from the parameter determination unit 30.
- the integer conversion unit 31 is a bijective that can algebraically express each of an integer set of a plurality of integer values in the input integer sequence x_1, x_2, ..., x_L based on the input index value.
- step S31 To obtain one integer value by conversion, and to obtain a plurality of integer values by a bijective transformation that can be expressed algebraically for each of the integer values in the input integer series x_1, x_2, ..., x_L And a sequence of integer values obtained by an operation including at least one of the above and the following is output as a converted integer sequence (step S31).
- the operation of the integer conversion unit 31 is not limited to the following example, and a plurality of operations among the integer conversion units of the encoding device of the first to fourth embodiments may be switched based on the input index value Switching the value of M of the integer conversion unit of the encoding device of the third embodiment or the fourth embodiment based on the input index value, or at least one of these operations and the input integer sequence The operation of outputting the integer series after conversion as it is may be switched based on the input index value.
- the index value is not limited to the parameter ⁇ , but is an index value representing the nature of the distribution of integer series and corresponds to the parameter code If it is
- Example 1-1 Example of switching the operation of the integer conversion unit 11 of the encoding device of the first embodiment and the operation of the integer conversion unit 13 of the encoding device of the second embodiment based on the parameter ⁇ ]
- the input integer series x_1, x_2, , X_L are integer sequences x_1, x_2, ..., x_2N
- the integer sequences x_1, x_2, ..., x_2N are based on two integer values according to a predetermined rule similar to the integer conversion unit 11 of the encoding device of the first embodiment.
- N integer sets are obtained, and for each of the obtained N integer sets, one integer value is obtained by an algebraically expressible bijective conversion similar to the integer conversion unit 11 of the encoding device of the first embodiment.
- the obtained sequence of n integer values y_1, y_2,..., Y_N is output to the integer coding unit 32 as an integer sequence after conversion.
- N L
- two integer values can be expressed by an algebraically expressible bijective conversion similar to the integer conversion unit 13 of the encoding device of the second embodiment.
- the obtained sequence of n_1, y_2,..., Y_2N of 2N integer values is output to the integer coding unit 32 as a converted integer sequence.
- L is an even number.
- Example 1-2 Example of switching the value of M of the integer conversion unit 15 of the encoding device of the third embodiment based on the parameter ⁇ ]
- the integer conversion unit 31 first obtains a natural number M closest to the input parameter ⁇ and dividing L by a natural number N, which is a quotient obtained by dividing L by M.
- the integer conversion unit 31 takes the input integer sequence x_1, x_2, ..., x_L as the integer sequence x_1, x_2, ..., x_MN, and encodes the third embodiment from the integer sequence x_1, x_2, ..., x_MN.
- N sets of integer sets of M integer values are obtained according to a predetermined rule similar to that of the integer conversion unit 15 of the device, and each of the N integer sets is similar to the integer conversion unit 15 of the encoding device of the third embodiment
- One integer value is obtained by an algebraically expressible bijective transformation, and the obtained sequence of N integer values y_1, y_2, ..., y_N is output to the integer coding unit 32 as a converted integer sequence. .
- a combination of natural numbers M and natural numbers N such that M ⁇ N L is stored in the integer conversion unit 31 in advance, and the natural number M closest to the parameter ⁇ input from the stored combinations and its natural number M And a combined natural number N may be obtained.
- the integer conversion unit 31 first obtains the natural number M closest to the reciprocal of the input parameter ⁇ . Next, the integer conversion unit 31 algebraically expresses the L integer values in the input integer sequence x_1, x_2, ..., x_L in the same manner as the integer conversion unit 17 of the encoding device of the fourth embodiment. M integer values are obtained by possible bijective transformation, and the sequence y_1, y_2, ..., y_ML by the obtained ML (M ⁇ L) integer values is converted to an integer sequence and the integer encoding unit 32 Output to
- Example 1-4 Switching of the operation of the integer conversion unit 15 of the coding device of the third embodiment and the operation of the integer conversion unit 17 of the coding device of the fourth embodiment based on the parameter ⁇
- the integer conversion unit 31 takes the input integer sequence x_1, x_2, ..., x_L as the integer sequence x_1, x_2, ..., x_MN, and encodes the third embodiment from the integer sequence x_1, x_2, ..., x_MN.
- N integer sets of M integer values are obtained according to a predetermined rule similar to that of the integer conversion unit 15 of the apparatus, and the integer conversion unit 15 of the encoding apparatus of the third embodiment
- a single integer value is obtained by the same algebraically expressible bijective transformation, and the obtained sequence of N integer values y_1, y_2, ..., y_N is converted to an integer sequence to the integer coding unit 32 as an integer sequence.
- the integer conversion unit 31 first obtains the natural number M closest to the reciprocal of the input parameter ⁇ , as in Example 1-3. Next, the integer conversion unit 31 algebraically expresses the L integer values in the input integer sequence x_1, x_2, ..., x_L in the same manner as the integer conversion unit 17 of the encoding device of the fourth embodiment. M integer values are obtained by possible bijective transformation, and the obtained sequences y_1, y_2,..., Y_ML of ML integer values are output to the integer coding unit 32 as converted integer sequences.
- Example 1-5 Example of switching the operation of the integer conversion unit 11 of the encoding device of the first embodiment and the operation of outputting the input integer sequence as it is after conversion as an integer sequence based on the parameter ⁇ ]
- N integer sets are obtained, and for each of the obtained N integer sets, one integer value is obtained by an algebraically expressible bijective conversion similar to the integer conversion unit 11 of the encoding device of the first embodiment.
- the obtained sequence of n integer values y_1, y_2,..., Y_N is output to the integer coding unit 32 as an integer sequence after conversion.
- the integer conversion unit 31 converts the input integer sequence x_1, x_2, ..., x_L as it is, and converts the integer sequence y_1, y_2, ..., y_L into the integer encoding unit Output to 32.
- the integer coding unit 32 receives the post-conversion integer sequence output from the integer conversion unit 31.
- the integer coding unit 32 performs Golomb-Rice coding of each integer value included in the input converted integer sequence, as in the integer coding unit of the coding apparatus according to the first to fourth embodiments, That is, Golomb-Rice codes at predetermined Rice parameter r for each integer value are obtained, and a code group based on the obtained codes is output as an integer code (step S32).
- the decoding device includes, as shown in FIG. 17, a parameter decoding unit 40, an integer decoding unit 41, and an integer inverse conversion unit.
- the decoding method of the fifth embodiment is realized by the decoding device executing the processing of each step shown in FIG.
- the parameter code and the integer code output from the encoder of the fifth embodiment are input to the decoder of the fifth embodiment.
- the parameter decoding unit 40 receives the parameter code input to the decoding device.
- the parameter decoding unit 40 decodes the parameter code by the decoding process corresponding to the parameter determination unit 30 obtaining the parameter code, obtains an index value, and outputs the index value. For example, when the parameter determination unit 30 of the encoding device obtains a parameter code from the parameter ⁇ , the parameter decoding unit 40 decodes the parameter code to obtain and output the parameter ⁇ (step S40).
- the integer code input to the decoding device is input to the integer decoding unit 41.
- the integer decoding unit 41 performs Golomb-Rice decoding of each input integer code as in the integer decoding unit of the first to fourth embodiments, ie, Golomb- at a predetermined Rice parameter r.
- Each integer value is obtained from each integer code which is a Rice code, and the obtained sequence of integer values is output as a converted integer sequence to the integer inverse transform unit 42 (step S41).
- the integer inverse transform unit 42 receives the post-conversion integer sequence output from the integer decoding unit 41 and the index value output from the parameter decoding unit 40.
- the integer inverse transform unit 42 performs an operation corresponding to the operation performed by the integer conversion unit 31 of the encoding device according to the fifth embodiment based on the input index value, and the input integer value in the converted integer sequence.
- Obtaining a plurality of integer values by bijective transformation which can be expressed algebraically for each, and algebraically expressing each of an integer set of a plurality of integer values in the input converted integer sequence
- a sequence of integer values obtained by an operation including at least one of obtaining one integer value by bijective conversion is output as an integer sequence (step S42).
- the operation of the integer inverse transform unit 42 is not limited to the following example, and the operation of the first embodiment to the fourth embodiment is an operation corresponding to the operation of the integer conversion unit 31 of the encoding device of the fifth embodiment.
- a plurality of operations of the integer inverse transform unit of the decoding apparatus are switched based on the input index value, or the M value of the integer inverse transform unit of the decoding apparatus of the third embodiment or the fourth embodiment is input Switching based on the index value, switching between at least one of these operations and the operation of outputting the converted integer sequence as it is as the integer sequence may be switched based on the input index value .
- Example 2-1 Example of switching the operation of the integer inverse transform unit 22 of the decoding device of the first embodiment and the operation of the integer inverse transform unit 24 of the decoding device of the second embodiment based on the parameter ⁇ ]
- the integer inverse transform unit 42 converts the input post-conversion integer series into N series of converted integer series y_1, y_2 , ..., y_N, the conversion and reverse performed by the integer conversion unit 11 of the encoding device of the first embodiment for each of N integer values in the input converted integer sequence y_1, y_2, ..., y_N Is performed to obtain N sets of integer sets of two integer values, and 2N according to the rule corresponding to the rule performed by the integer conversion unit 11 of the encoding device of the first embodiment from the obtained integer sets of N sets Obtain and output an integer sequence x_1, x_2, ..., x_2N which is a sequence of integer values of.
- the integer inverse transform unit 42 receives the input converted integer sequence as the sequence y_1, y_2,..., Y_2N of 2N converted integers.
- the converted integer series y_1, y_2,..., Y_2N obtains N sets of integer sets of two integer values, and the integer conversion unit 13 of the encoding apparatus of the second embodiment performs each of the obtained N sets of integer sets.
- the inverse conversion is performed to obtain one integer value, and an integer sequence x_1, x_2,..., X_N which is a sequence of the obtained N integer values is output.
- the integer inverse transformation unit 42 obtains a natural number M closest to the input parameter ⁇ and dividing L by a natural number N, which is a quotient of L divided by M.
- the integer inverse transformation unit 42 determines that the input converted integer sequence is a sequence y_1, y_2, ..., y_N of N converted integers, the input converted integer sequence y_1, y_2, ..., For each of the N integer values in y_N, the inverse conversion to the conversion performed by the integer conversion unit 15 of the encoding apparatus of the third embodiment is performed to obtain N sets of integer sets of M integer values. Obtain an integer sequence x_1, x_2, ..., x_MN which is a sequence of MN integer values according to a rule corresponding to a rule performed by the integer conversion unit 15 of the encoding device of the third embodiment from N integer sets Do.
- a combination of natural numbers M and natural numbers N such that M ⁇ N L is stored in advance in the integer inverse transform unit 42, and the natural number M closest to the parameter ⁇ input from among the stored combinations and its natural number M and a combined natural number N may be obtained.
- the integer inverse transformation unit 42 first obtains the natural number M closest to the reciprocal of the input parameter ⁇ . Next, the integer inverse transform unit 42 determines that the input converted integer sequence is a sequence y_1, y_2, ..., y_ML of ML converted integers, the input converted integer sequence y_1, y_2, ..., According to the rule corresponding to the rule performed by the integer conversion unit 17 of the encoding device of the fourth embodiment from y_ML to L sets of integer sets of M integer values, and the fourth set of L sets of integer sets obtained The integer sequence x_1, x_2, ..., x_L, which is a sequence of L integer values obtained, is obtained by performing inverse transformation to the transformation performed by the integer transformation unit 17 of the encoding device of the embodiment and obtaining one integer value. Output.
- Example 2-4 switching the operation of the integer inverse transformation unit 26 of the decoding device of the third embodiment and the operation of the integer inverse transformation unit 28 of the decoding device of the fourth embodiment based on the parameter ⁇
- the integer inverse transform unit 42 first of all, as in Example 2-2, a natural number M closest to the input parameter ⁇ and dividing L and L Obtain a natural number N which is a quotient divided by.
- the integer inverse transformation unit 42 determines that the input converted integer sequence is a sequence y_1, y_2, ..., y_N of N converted integers, the input converted integer sequence y_1, y_2, ..., For each of the N integer values in y_N, the inverse conversion to the conversion performed by the integer conversion unit 15 of the encoding apparatus of the third embodiment is performed to obtain N sets of integer sets of M integer values. Obtain an integer sequence x_1, x_2, ..., x_MN which is a sequence of MN integer values according to a rule corresponding to a rule performed by the integer conversion unit 15 of the encoding device of the third embodiment from N integer sets Do.
- the integer inverse transform unit 42 first obtains the natural number M closest to the reciprocal of the input parameter ⁇ , as in Example 2-3. Next, the integer inverse transform unit 42 determines that the input converted integer sequence is a sequence y_1, y_2, ..., y_ML of ML converted integers, the input converted integer sequence y_1, y_2, ..., According to the rule corresponding to the rule performed by the integer conversion unit 17 of the encoding device of the fourth embodiment from y_ML to L sets of integer sets of M integer values, and the fourth set of L sets of integer sets obtained.
- the integer sequence x_1, x_2, ..., x_L which is a sequence of L integer values obtained, is obtained by performing inverse transformation to the transformation performed by the integer transformation unit 17 of the encoding device of the embodiment and obtaining one integer value. Output.
- Example 2-5 Example of switching the operation of the integer inverse transformation unit 22 according to the first embodiment and the operation of outputting the converted integer sequence as it is as the integer sequence based on the parameter ⁇ ]
- the integer inverse transform unit 42 converts the input post-conversion integer series into N series of converted integer series y_1, y_2 , ..., y_N, the conversion and reverse performed by the integer conversion unit 11 of the encoding device of the first embodiment for each of N integer values in the input converted integer sequence y_1, y_2, ..., y_N Is performed to obtain N sets of integer sets of two integer values, and 2N according to the rule corresponding to the rule performed by the integer conversion unit 11 of the encoding device of the first embodiment from the obtained integer sets of N sets Obtain and output an integer sequence x_1, x_2, ..., x_2N which is a sequence of integer values of.
- the integer inverse conversion unit 42 When the input parameter ⁇ is other than the above, the integer inverse conversion unit 42 outputs the input converted integer sequence as it is as an integer sequence.
- a sequence having different degrees of density and sparseness of distribution for each partial sequence in the sequence according to integer values input to the encoding device that is, distribution of integer values for each partial sequence is more than Laplace distribution Even if it is a sequence that is dense or sparse, or the distribution of integer values for each subsequence is more or less densely or sparsely than the Laplace distribution, a bit length shorter than Golomb-Rice coding It is possible to realize an encoding process and a decoding process corresponding to the encoding process.
- the converted integer sequence may be encoded by a coding scheme other than Golomb-Rice coding, and the code obtained by the coding may be changed to a configuration for outputting as an integer code.
- the integer decoding unit of the corresponding decoding device decodes the integer code to obtain an integer sequence after conversion by the decoding method corresponding to the coding method performed by the integer coding unit of the coding device.
- the coding apparatus codes the integer coding units 12 and 16 of the coding apparatus according to the first embodiment and the third embodiment according to a coding method that does not use Golomb-Rice coding for a converted integer sequence.
- the encoding apparatus according to the sixth embodiment includes, for example, the integer conversion unit 11 or 15 and the integer encoding unit 20 as shown in FIG. 2 as in the encoding apparatus according to the first embodiment and the third embodiment,
- the encoding method of the sixth embodiment is realized by executing the processing of each step shown in FIG.
- the integer coding unit 20 receives the converted integer series y_1, y_2,..., Y_N output from the integer conversion unit 11 or 15.
- the integer coding unit 20 codes each integer value included in the converted integer sequence y_1, y_2, ..., y_N to obtain codes C_1, C_2, ..., C_N, respectively, and obtains a code group based on the obtained code as an integer code Output as (step S20).
- the method of encoding each integer value may be any method as long as it is a method of obtaining a code for each of the integer values included in the converted integer sequence y_1, y_2, ..., y_N.
- the integer encoding unit 20 determines the number of bits to be assigned to each integer value included in the converted integer sequence y_1, y_2, ..., y_N, and codes the integer value obtained by encoding each integer value using the determined number of bits C_1 , C_2, ..., C_N, and output the code group as an integer code. More specifically, the integer encoding unit 20 obtains a code representing each integer value included in the converted integer sequence y_1, y_2, ..., y_N in binary notation, and determines the obtained code. , C_N, and outputs a code group with the codes C_1, C_2,..., C_N as an integer code.
- the integer decoding units 21 and 25 of the decoding apparatuses of the first embodiment and the third embodiment perform the integer code
- the integer encoding unit 20 of the encoding apparatus of the sixth embodiment performs the integer code. It is changed to be decoded by the decoding method corresponding to the encoding method.
- the decoding apparatus according to the sixth embodiment includes, for example, an integer decoding unit 29 and an integer inverse conversion unit 22 or 26 as shown in FIG. 4 as in the decoding apparatus according to the first embodiment and the third embodiment
- the decoding method of the sixth embodiment is realized by executing the processing of each step shown in FIG.
- the integer decoding unit 29 receives N pieces of integer codes input to the decoding apparatus.
- C_1, C_2, ..., C_N be the input integer codes.
- the integer decoding unit 29 decodes the input integer codes C_1, C_2, ..., C_N to obtain integer values y_1, y_2, ..., y_N, respectively, and converts the obtained sequence of integer values into an integer sequence y_1, y_1, It is output to the integer inverse transform unit 22 or 26 as y_2,..., y_N (step S29).
- the method of decoding each integer code is a decoding method corresponding to the coding method performed by the integer coding unit 20 of the corresponding coding device. That is, the method of decoding each integer code is a method of obtaining an integer value for each of the codes C_1, C_2, ..., C_N included in the integer code, and a method of obtaining one integer value for one code. .
- the integer decoding unit 29 obtains a binary number represented by each code C_1, C_2, ..., C_N included in the integer code as each integer value y_1, y_2, ..., y_N, and converts the obtained sequence of integer values It is output to the integer inverse transform unit 22 or 26 as the integer series y_1, y_2,..., Y_N.
- each integer value included in the converted integer series y_1, y_2,..., Y_N is obtained from one code which is the number of bits of the integer value. That is, each of the integer values included in the converted integer series y_1, y_2,..., Y_N is encoded by adjusting the number of allocated bits in 1-bit units.
- each integer value included in the integer sequence x_1, x_2, ..., x_2N input to the coding apparatus is The code of the sixth embodiment is the same as the one in which the adjustment of the number of allocated bits in 1/2 bit unit (half bit unit) is performed and encoded, and the encoding device of the third embodiment is modified.
- each integer value included in the integer series x_1, x_2,..., X_MN input to the encoding apparatus can adjust the number of allocated bits in 1 / M bit unit (1 bit unit of M) This corresponds to what has been done and encoded. Therefore, according to the sixth embodiment, it is possible to realize encoding and decoding that substantially allocate the number of bits of a fractional value per sample.
- the program describing the processing content can be recorded in a computer readable recording medium.
- a computer readable recording medium any medium such as a magnetic recording device, an optical disc, a magneto-optical recording medium, a semiconductor memory, etc. may be used.
- this program is carried out, for example, by selling, transferring, lending, etc. a portable recording medium such as a DVD, a CD-ROM, etc. in which the program is recorded.
- this program may be stored in a storage device of a server computer, and the program may be distributed by transferring the program from the server computer to another computer via a network.
- a computer that executes such a program first temporarily stores a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. Then, at the time of execution of the process, this computer reads the program stored in its own storage device and executes the process according to the read program. Further, as another execution form of this program, the computer may read the program directly from the portable recording medium and execute processing according to the program, and further, the program is transferred from the server computer to this computer Each time, processing according to the received program may be executed sequentially.
- ASP Application Service Provider
- the program in the present embodiment includes information provided for processing by a computer that conforms to the program (such as data that is not a direct command to the computer but has a property that defines the processing of the computer).
- the present apparatus is configured by executing a predetermined program on a computer, at least a part of the processing contents may be realized as hardware.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
整数値の系列を、1サンプルあたりに小数値のビット数を実質的に割り当て、または/および、従来よりも少ないメモリ量や演算処理量で、符号化及び復号する。符号化装置は、整数値による系列を入力とし、整数値による系列に対応する整数符号を出力する。整数変換部(11)は、入力された整数値による系列に含まれる複数個の整数値による組のそれぞれについて、代数的に表現可能な全単射な変換により、1つの整数値(変換後整数)を得る。整数符号化部(12)は、変換後整数を符号化して整数符号を得る。
Description
この発明は音声や音響の時系列ディジタル信号のサンプル系列などの整数値から成るサンプル系列を符号化、復号する技術に関する。
圧縮を目的としてサンプル系列を符号化する技術として、サンプル値を量子化することにより得た有限精度の値(以下、これを整数値と呼ぶ)を可逆符号化することにより、サンプル系列の記述に用いるビット長を削減する技術がある。この技術においては、どの整数値に対してどの長さの符号を割り当てるかが圧縮の性能に直結する。この事実は、画像信号のサンプル列を符号化復号する画像符号化や、音響信号のサンプル列を符号化復号する音響符号化などの、サンプル系列の符号化復号の工学的応用先においても例外ではない。
一般的に可変長の可逆符号化においては、復号可能性の制約により、整数値に割り当てる符号の構成に制約がある。具体的には、ある整数値に対して短い符号を割り当てるとすると、復号可能な符号にするには、他の整数値に対して長い符号を割り当てなければならない、という制約である。従って、圧縮性能を高くするためには、符号の構成(各整数値への符号の割り当て)は整数値の系列中の値の分布に適したものとする必要がある。具体的には、出現確率が高い整数値に対しては短い符号を割り当て、出現確率が低い整数値に対しては長い符号を割り当てることで、整数値の系列の圧縮後のビット長の期待値を小さくすることができる。
上記のような可逆符号化において最も単純な可変長符号の一つとして用いられてきたのがGolomb-Rice符号(ゴロムライス符号)である。Golomb-Rice符号は、整数値の系列がラプラス分布に属する場合、つまり整数値の出現確率が値の大きさに対して指数的に低くなっている場合において、最小の期待ビット長(最小のビット長)を達成することが知られている。このGolomb-Rice符号は非常に単純な構成であることから広く用いられている。
しかし、圧縮対象の整数値の系列が常にラプラス分布に従っているとは限らない。例えば、圧縮対象の整数値の系列がガウス分布のように値のばらつきがラプラス分布よりも少ない分布であること、圧縮対象の整数値の系列がラプラス分布よりも値のばらつきが多い分布であること、などがありえる。そのような整数値の系列をGolomb-Rice符号で符号化した場合、その整数値の系列の分布がラプラス分布からずれていることにより、圧縮の性能が低下してしまう。
そのため、ラプラス分布以外の分布に従う整数値の系列を圧縮する際には、任意の分布に対してその分布に最適な符号を構成できるハフマン符号や算術符号が用いられる。しかし、ハフマン符号や算術符号は予め符号の辞書を作成しておく必要があったり、Golomb-Rice符号と違い、現実的には入力される整数値の上限を決めておかなければならなかったりと、細かな設計が要求される。
ラプラス分布より密な分布に従う整数値の系列、すなわち、ラプラス分布よりもばらつきが少ない整数値の系列を符号化する技術としては、非特許文献1に記載された技術もある。非特許文献1に記載された技術は、入力された整数値の系列中の整数値を2つずつ組にして各組に対して1つずつの整数値を得て、得た整数値をGolomb-Rice符号化する技術である。非特許文献1に記載された技術では、2つの整数値による組に対する1つの整数値の割り当ては、図1に示すマッピング例のような予め定めた規則、すなわち、組を構成する2つの整数値の二乗和が小さいものほど小さい整数値が割り当てられる規則により行われる。
また、サンプル系列を符号化する技術としては、非特許文献2に記載された技術もある。非特許文献2に記載された技術は、音声音響信号の周波数スペクトル系列であるサンプル系列に含まれる各サンプルに割り当てるビット数による系列を得て、ビット数による系列に含まれる各ビット数の符号が得られるようにサンプル系列の各サンプルを符号化する技術である。非特許文献2に記載された技術は、サンプル系列の統計的な分布を想定して符号化するものではなく、音声音響信号の周波数スペクトル系列における包絡などを参考にビット数による系列を得るものである。
高村誠之、八島由幸、「分布写像に基づくガウス性情報源の効率的符号化」、映像情報メディア学会誌、Vol. 61、No. 9、pp. 1357-1362、2007年
R. Zelinski and P. Noll, "Adaptive transform coding of speech signals," in IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. 25, no. 4, pp. 299-309, Aug 1977.
非特許文献1に記載された技術では、ラプラス分布より密な分布に従う整数値の系列をGolomb-Rice符号よりも少ない符号長に圧縮することができるが、2つの整数値による組に対する1つの整数値の割り当てを予め定めた規則に従って行うため、符号化装置と復号装置は、通常、記憶部内に図1のようなマッピングを実現するマッピングテーブルを予め記憶しておき、2つの整数値による組が入力された際にマッピングテーブルを探索するように実装することになる。このような実装をした場合には、マッピングテーブルは入力される整数値の系列における整数値の定義域の二乗に比例して大きくなることから、整数値の定義域が大きい場合には、マッピングテーブルを記憶しておく記憶部のメモリ量が大きいという課題や、2つの整数値による組に対する1つの整数値をマッピングテーブルから探索する演算処理量が大きいという課題がある。
符号化装置と復号装置に、マッピングテーブルではなく予め定めた図1のような規則を記憶しておく実装も可能ではあるが、2つの整数値による組が入力される度に図1のような規則を中心から順次探索する必要があり、整数値の定義域が大きい場合には演算処理量が大きいという課題がある。
非特許文献2に記載された技術では、ビットレートの高い条件下においては歪みを小さく抑えて圧縮することができるが、周波数スペクトル1サンプルあたりに整数値のビット数しか割り当てられないため、ビットレートの低い条件下では圧縮の効率が低下し、サンプル系列に割り当てられる平均ビット数に対する復号サンプル系列の歪みが大きくなってしまうという課題がある。
本発明は、整数値の系列により適した符号化及び復号を、実現することを目的とする。より具体的には、本発明は、1サンプルあたりに小数値のビット数を実質的に割り当てる符号化及び復号を実現すること、特に、ラプラス分布とはばらつきが異なる分布に従う整数値の系列は、Golomb-Rice符号と同様の全整数値に対する単純な対応付けにより、従来よりも少ないメモリ量や演算処理量で符号化及び復号を実現すること、を目的とする。
上記の課題を解決するために、この発明の第一の態様の符号化装置は、入力された整数値による系列に含まれる複数個の整数値による組のそれぞれについて、代数的に表現可能な全単射な変換により、1つの整数値(以下、「変換後整数」という)を得る整数変換部と、変換後整数それぞれを符号化して符号を得る整数符号化部と、を含む。好ましくは、整数符号化部は、変換後整数それぞれをゴロムライス符号化して符号を得る。
上記の課題を解決するために、この発明の第二の態様の符号化装置は、入力された整数値による系列に含まれる整数値それぞれについて、全単射な変換により、複数個の整数値(以下、「変換後整数」という)を得る整数変換部と、変換後整数をゴロムライス符号化して符号を得る整数符号化部と、を含む。
上記の課題を解決するために、この発明の第三の態様の符号化装置は、入力された整数値による系列のうちの、所定個数の整数値による部分系列(以下「整数系列」という)ごとに、該整数系列における整数値の分布の性質に対応する指標値を得るパラメータ決定部と、整数系列に含まれる複数個(MA個、MAは2以上の整数)の整数値による組のそれぞれについて、全単射な変換により、1つの整数値を変換後整数として得る変換処理(以下、「変換処理A」という)と、整数系列に含まれる整数値それぞれについて、全単射な変換により、複数個(MB個、MBは2以上の整数)の整数値を変換後整数として得る変換処理(以下、「変換処理B」という)と、の少なくとも何れかを含む複数個の選択肢の中から、指標値に基づいて変換処理を選択し、選択した変換処理を整数系列に対して行うことにより変換後整数による系列を得る整数変換部と、変換後整数による系列に含まれる各整数値をゴロムライス符号化して符号を得る整数符号化部と、を含む。
上記の課題を解決するために、この発明の第四の態様の復号装置は、入力された符号を復号して1つの整数値(以下、「変換後整数」という)を得る整数復号部と、1つの変換後整数から、代数的に表現可能な全単射な変換により、複数個の整数値を得る整数逆変換部と、を含む。好ましくは、整数復号部は、符号をゴロムライス復号して1つの整数値を得る。
上記の課題を解決するために、この発明の第五の態様の復号装置は、入力された符号をゴロムライス復号して複数個の整数値(以下、「変換後整数」という)を得る整数復号部と、複数個の変換後整数から、全単射な変換により、1つの整数値を得る整数逆変換部と、を含む。
上記の課題を解決するために、この発明の第六の態様の復号装置は、所定区間ごとに、入力されたパラメータ符号と整数符号を復号して復号整数系列を得る復号装置であって、所定区間ごとの入力されたパラメータ符号を復号して指標値を得るパラメータ復号部と、所定区間ごとの入力された整数符号をゴロムライス復号して整数値による系列(以下、「変換後整数系列」という)を得る整数復号部と、変換後整数系列に含まれる1つの整数値である変換後整数それぞれについて、全単射な変換により、複数個(MA個、MAは2以上の整数)の整数値を得る変換処理(以下、「逆変換処理A」という)と、変換後整数系列に含まれる複数個(MB個、MBは2以上の整数)の整数値である変換後整数それぞれについて、全単射な変換により、1つの整数値を得る変換処理(以下、「逆変換処理B」という)と、の少なくとも何れかを含む複数個の選択肢の中から、所定区間ごとの指標値に基づいて所定区間ごとの変換処理を選択し、選択した変換処理を所定区間ごとの変換後整数系列に対して行うことにより整数値による系列を復号整数系列として得る整数逆変換部と、を含む。
この発明によれば、整数値の系列により適した符号化及び復号を、実現することができる。より具体的には、1サンプルあたりに小数値のビット数を実質的に割り当てる符号化及び復号を実現すること、特に、ラプラス分布とはばらつきが異なる分布に従う整数値の系列は、Golomb-Rice符号と同様の全整数値に対する単純な対応付けにより、従来よりも少ないメモリ量や演算処理量で符号化及び復号を実現すること、ができる。
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
文中で使用する記号「~」は、本来直後の文字の真上に記載されるべきものであるが、テキスト記法の制限により、当該文字の直前に記載する。数式中においてはこれらの記号は本来の位置、すなわち文字の真上に記述している。
<第一実施形態>
≪符号化装置≫
図2および図3を参照して、第一実施形態の符号化装置が実行する符号化方法の処理手続きを説明する。第一実施形態の符号化装置は、図2に示すように、整数変換部11および整数符号化部12を例えば備える。この符号化装置が図3に示す各ステップの処理を実行することにより、第一実施形態の符号化方法が実現される。
≪符号化装置≫
図2および図3を参照して、第一実施形態の符号化装置が実行する符号化方法の処理手続きを説明する。第一実施形態の符号化装置は、図2に示すように、整数変換部11および整数符号化部12を例えば備える。この符号化装置が図3に示す各ステップの処理を実行することにより、第一実施形態の符号化方法が実現される。
第一実施形態の符号化装置には、整数値による系列が入力される。この整数値による系列としては、例えば、マイクロホンで収音した音声や音楽などを時間領域もしくは周波数領域のディジタル信号に変換して得た信号やカメラで撮像した画像や映像を時間領域もしくは周波数領域のディジタル信号に変換して得た信号などの一部あるいは全部を既存の技術により量子化し、有限精度の値にして得たものを入力してもよい。より具体的には、例えば、時間領域の音信号を所定の時間長のフレーム単位で周波数領域の2N点のMDCT係数列に変換し、MDCT係数列の各係数を非負の整数値にして得た整数値による系列や、時間領域の音信号を所定の時間長のフレーム単位で各サンプル値を非負の整数値にして得た整数値による系列である。
第一実施形態の符号化装置は、入力された整数値による系列中の2つの整数値による組(以下、整数組とも呼ぶ)それぞれについて、代数的に表現可能な全単射な変換により1つの整数値を得て、得た整数値による系列を可変長符号化することで、ラプラス分布よりも密な分布の整数値による系列に対してGolomb-Rice符号化よりも短いビット長となる符号化処理を実現するものである。
[整数変換部11]
整数変換部11には、符号化装置に入力された整数値による系列のうちの、2Nサンプル(Nは自然数)ずつの整数値による系列が入力される。入力された整数値による系列を整数系列x_1, x_2, …, x_2Nとする。整数変換部11は、入力された整数系列x_1, x_2, …, x_2Nから所定の規則に従って2つの整数値による整数組をN組得て、それぞれの整数組について代数的に表現可能な全単射な変換により1つの整数値を得て、得たN個の整数値による系列y_1, y_2, …, y_Nを整数符号化部12に出力する(ステップS11)。それぞれの整数組について代数的に表現可能な全単射な変換により1つの整数値を得る方法としては、例えば、整数組を構成する2つの整数値をx1, x2として、式(1)によって1つの整数値yを得る方法を用いる。以下では、系列y_1, y_2, …, y_Nを変換後整数系列と呼ぶ。
整数変換部11には、符号化装置に入力された整数値による系列のうちの、2Nサンプル(Nは自然数)ずつの整数値による系列が入力される。入力された整数値による系列を整数系列x_1, x_2, …, x_2Nとする。整数変換部11は、入力された整数系列x_1, x_2, …, x_2Nから所定の規則に従って2つの整数値による整数組をN組得て、それぞれの整数組について代数的に表現可能な全単射な変換により1つの整数値を得て、得たN個の整数値による系列y_1, y_2, …, y_Nを整数符号化部12に出力する(ステップS11)。それぞれの整数組について代数的に表現可能な全単射な変換により1つの整数値を得る方法としては、例えば、整数組を構成する2つの整数値をx1, x2として、式(1)によって1つの整数値yを得る方法を用いる。以下では、系列y_1, y_2, …, y_Nを変換後整数系列と呼ぶ。
ここで、N組の整数組を得る所定の規則は、入力された整数系列x_1, x_2, …, x_2N内の隣接する2つの整数値同士を整数組とする規則、すなわち、x_1とx_2、x_3とx_4、・・・、x_2N-1とx_2Nをそれぞれ整数組とする規則などの、予め定めて符号化装置と復号装置に予め記憶しておける規則であればどのような規則であってもよい。
隣接する2つの整数値同士を整数組とする規則であれば、整数変換部11は、入力された整数系列x_1, x_2, …, x_2Nのうちのx_1とx_2の整数組から変換後整数y_1を得て、x_3とx_4の整数組から変換後整数y_2を得て、・・・、x_2N-1とx_2Nの整数組から変換後整数y_Nを得て、得た変換後整数による系列である変換後整数系列y_1, y_2, …, y_Nを出力する。
なお、N=1の場合には、整数変換部11は、入力された2つの整数値による組について代数的に表現可能な全単射な変換により1つの整数値を得て、得た1つの整数値を変換後整数として出力することになる。
[整数符号化部12]
整数符号化部12には、整数変換部11が出力した変換後整数系列y_1, y_2, …, y_Nが入力される。整数符号化部12は、変換後整数系列y_1, y_2, …, y_Nに含まれる各整数値をGolomb-Rice符号化して、すなわち、所定のRiceパラメータ(ライスパラメータ)rにおける各整数値に対するGolomb-Rice符号C_1, C_2, …, C_Nをそれぞれ得て、得た符号による符号群を整数符号として出力する(ステップS12)。
整数符号化部12には、整数変換部11が出力した変換後整数系列y_1, y_2, …, y_Nが入力される。整数符号化部12は、変換後整数系列y_1, y_2, …, y_Nに含まれる各整数値をGolomb-Rice符号化して、すなわち、所定のRiceパラメータ(ライスパラメータ)rにおける各整数値に対するGolomb-Rice符号C_1, C_2, …, C_Nをそれぞれ得て、得た符号による符号群を整数符号として出力する(ステップS12)。
なお、所定のRiceパラメータrは、予め定めて符号化装置と復号装置に予め記憶しておくか、あるいは、例えば、整数符号化部12が変換後整数系列y_1, y_2, …, y_Nごとに同じRiceパラメータrを用いてGolomb-Rice符号化を行い、Golomb-Rice符号化に用いたRiceパラメータrに対応する符号をGolomb-Rice符号C_1, C_2, …, C_Nに加えたものを整数符号として出力してもよい。
≪復号装置≫
図4および図5を参照して、第一実施形態の復号装置が実行する復号方法の処理手続きを説明する。第一実施形態の復号装置は、図4に示すように、整数復号部21および整数逆変換部22を例えば備える。この復号装置が図5に示す各ステップの処理を実行することにより、第一実施形態の復号方法が実現される。
図4および図5を参照して、第一実施形態の復号装置が実行する復号方法の処理手続きを説明する。第一実施形態の復号装置は、図4に示すように、整数復号部21および整数逆変換部22を例えば備える。この復号装置が図5に示す各ステップの処理を実行することにより、第一実施形態の復号方法が実現される。
第一実施形態の復号装置には、第一実施形態の符号化装置が出力した整数符号が入力される。第一実施形態の復号装置は、入力された整数符号を第一実施形態の符号化装置に対応する復号処理で復号して整数値による系列を得て、得た整数値による系列中の整数値それぞれについて第一実施形態の符号化装置と逆の変換により2つの整数値を得ることで、第一実施形態の符号化装置に入力された整数値による系列そのものを復元するものである。
[整数復号部21]
整数復号部21には、復号装置に入力された整数符号がN個(Nは自然数)ずつ入力される。ここで、入力された整数符号をC_1, C_2, …, C_Nとする。整数復号部21は、入力された各整数符号C_1, C_2, …, C_NをGolomb-Rice復号して、すなわち、所定のRiceパラメータrにおけるGolomb-Rice符号である各整数符号C_1, C_2, …, C_Nから整数値y_1, y_2, …, y_Nそれぞれを得て、得た整数値による系列を変換後整数系列y_1, y_2, …, y_Nとして整数逆変換部22に出力する(ステップS21)。所定のRiceパラメータrは、対応する符号化装置と同様のものを用いる。すなわち、予め定めて復号装置に予め記憶されているRiceパラメータrを用いるか、あるいは、整数符号に含まれているRiceパラメータrに対応する符号を復号して得たRiceパラメータrを用いる。
整数復号部21には、復号装置に入力された整数符号がN個(Nは自然数)ずつ入力される。ここで、入力された整数符号をC_1, C_2, …, C_Nとする。整数復号部21は、入力された各整数符号C_1, C_2, …, C_NをGolomb-Rice復号して、すなわち、所定のRiceパラメータrにおけるGolomb-Rice符号である各整数符号C_1, C_2, …, C_Nから整数値y_1, y_2, …, y_Nそれぞれを得て、得た整数値による系列を変換後整数系列y_1, y_2, …, y_Nとして整数逆変換部22に出力する(ステップS21)。所定のRiceパラメータrは、対応する符号化装置と同様のものを用いる。すなわち、予め定めて復号装置に予め記憶されているRiceパラメータrを用いるか、あるいは、整数符号に含まれているRiceパラメータrに対応する符号を復号して得たRiceパラメータrを用いる。
[整数逆変換部22]
整数逆変換部22には、整数復号部21が出力した変換後整数系列y_1, y_2, …, y_Nが入力される。整数逆変換部22は、入力された変換後整数系列y_1, y_2, …, y_Nに含まれる整数値それぞれについて第一実施形態の符号化装置の整数変換部11が行った変換と逆の変換を行って2つの整数値による整数組をN組得て、得たN組の整数組から第一実施形態の符号化装置の整数変換部11が行った規則に対応する規則に従って整数系列x_1, x_2, …, x_2Nを得て出力する(ステップS22)。
整数逆変換部22には、整数復号部21が出力した変換後整数系列y_1, y_2, …, y_Nが入力される。整数逆変換部22は、入力された変換後整数系列y_1, y_2, …, y_Nに含まれる整数値それぞれについて第一実施形態の符号化装置の整数変換部11が行った変換と逆の変換を行って2つの整数値による整数組をN組得て、得たN組の整数組から第一実施形態の符号化装置の整数変換部11が行った規則に対応する規則に従って整数系列x_1, x_2, …, x_2Nを得て出力する(ステップS22)。
第一実施形態の符号化装置の整数変換部11が式(1)の変換を行った場合には、整数逆変換部22は、式(1)の変換の逆の変換として、式(2)によって1つの整数値yから2つの整数値x1, x2を得る。
ここで、式(2)の
は、yの平方根の床関数、すなわち、yの平方根を超えない最も大きい整数である。
整数逆変換部22は、式(2)の演算に代えて、例えば、下記のStep A-1~A-3-1またはStep A-1~A-2, A-3-2の手順を行ってもよい。
Step A-1:yの平方根を超えない最も大きい整数bを得る。
Step A-2:bの二乗(b2)を求める。
Step A-3-1:yとbの二乗との差が偶数である場合、すなわち、y-b2が偶数である場合には、bを整数値x1とし、yからbの二乗を減算して得た値を2で割って得た値(y-b2)/2を整数値x2として得る。
Step A-3-2:yとbの二乗との差が奇数である場合、すなわち、y-b2が奇数である場合には、bを整数値x2とし、yからbの二乗と1を減算して得た値を2で割って得た値(y-b2-1)/2を整数値x1として得る。
第一実施形態の符号化装置の整数変換部11が行った規則が隣接する2つの整数値同士を整数組とする規則であれば、整数逆変換部22は、入力された変換後整数系列y_1, y_2, …, y_Nのうちの変換後整数y_1から整数値x_1と整数値x_2による整数組を得て、変換後整数y_2から整数値x_3と整数値x_4による整数組を得て、・・・、変換後整数y_Nから整数値x_2N-1と整数値x_2Nによる整数組を得て、得た整数組による系列である整数系列x_1, x_2, …, x_2Nを出力する。
<発明の原理の説明>
ここで本発明の原理を説明する。
ここで本発明の原理を説明する。
Golomb-Rice符号はRiceパラメータrを指定することにより表1に示すように全ての非負整数値xと符号を対応付けるものである。
入力された整数系列における整数値xの分布p(x)に対する符号の最適なビット長の割当は、その分布の対数値で与えられることから、Golomb-Rice符号は、式(4)の分布、つまり離散系のラプラス分布に対して最適であることがわかる。
入力される整数値xの取り得る範囲が正負を含む整数値全体であった場合には、式(3)の整数値xを式(5)により求まるx'に置き換えた式(6)によりGolomb-Rice符号を割り当てればよいことが知られている。
以下では整数値が非負であることに限定して説明するが、上記事実から整数値の取り得る範囲が整数値全体にも適応可能である。また、符号の0と1は反転させても同じであることは言うまでもない。
本発明は、ラプラス分布よりも密な分布や疎な分布に従う整数系列に適した符号を構成するため、複数個の整数値による組から1つの整数値に、あるいは、1つの整数値から複数個の整数値による組に変換し、変換後の整数値にGolomb-Rice符号を適用する。
まず、ラプラス分布よりも密な分布に従う整数系列に適した符号の構成について説明する。密な分布とは、ここでは、値の小さな整数値の出現確率が高く、値の大きい整数値の出現確率が低いような分布を指す。このような分布に対して最適な符号を構成しようとすると、整数値1サンプルあたりに1ビット以下の符号があることを許さないと実現不可能である。そこで、本発明では2サンプルの整数値による組に対して1つの符号を割り当てることで、1サンプルあたりの平均ビット数が1ビット以下となる符号があることを許す構成を実現する。
本発明は、従来よりも少ないメモリ量と演算処理量で整数値の組に対して1つの符号を割り当てるために、まず、整数値の組(x1, x2)を上記の式(1)のように変換して1つの整数値yとする。上記の式(1)は、整数値の組の中での最大値の二乗と最小値の二倍を足し、整数値の大小関係に従って0または1を足すという変換である。ただし、上記の式(1)のx1とx2は逆でもよい。この変換は2つの整数値から1つの整数値への全単写な写像となっており、整数値の組(x1, x2)から1つの整数値yが一意に決まり、その逆、すなわち、1つの整数値yから整数値の組(x1, x2)も一意に決まることから、復号側での逆変換が可能である。この変換後の整数値yに対してGolomb-Rice符号を割り当てることで、密な分布に属する整数値に適した符号が割り当てられる。
Riceパラメータr=0のときの、整数値の組(x1, x2)に対する本発明による符号の例を表2に挙げる。
図6Aは、本発明により整数値の組(x1, x2)に割り当てられる符号のビット数を表したものである。左側のグラフは、横軸がx1の値、縦軸がx2の値であり、ハッチングの種類が符号のビット数を表している。ハッチングの種類とビット数の関係は右側のバーに示す通りである。図6Aからもわかるように、式(1)の変換に含まれるmax(x1, x2)2の性質から、本発明による符号は整数値x1とx2のそれぞれの二乗に対しておおよそ線形な関係にあるビット長となる。なお、図6Bは、図6Aの破線αに沿った符号のビット数を表している。
一方、離散系のガウス分布
に従う整数系列に対する平均符号長が最小になるビット長の理想的な割り当て方は、その整数系列に含まれる各整数値xの確率に対して2の対数の負値を取った値であるx2+log2Z2ビットであり、これは整数値xの二乗に対して線形な関係にある。従って、本発明による符号は離散系のガウス分布に従う整数系列に対する最適なビット長の割り当てを近似していることに相当する。実際にガウス分布に従う乱数を符号化する実験を行った結果、表4に示すように、本発明による符号は理論限界のビット長から高々3.5%しか変わらず、本発明による符号は理論限界のビット長に近い性能を示した。
ここで、式(8)の
は、xの平方根の床関数、すなわち、xの平方根を超えない最も大きい整数である。式(8)の変換は1つの整数値を全単写な写像で2つの整数値による組に変換するものとなっており、1つの整数値xから整数値の組(y1, y2)が一意に決まり、その逆、すなわち、整数値の組(y1, y2)から1つの整数値xも一意に決まることから、復号側での逆変換が可能である。この変換後の整数値y1, y2のそれぞれに対してGolomb-Rice符号を割り当てることで、大きい整数値に対する符号のビット長を短くすることができ、疎な分布に属する整数値に適した符号を割り当てることができる。Riceパラメータr=0のときの本発明による符号の例を表5に挙げる。
式(8)により得られる整数値y1, y2はおおよそ元の整数値xの二乗根の値を示す。従って、図7に示すように、整数値xに対して割り当てられる符号のビット長を、整数値xの二乗根に対しておおよそ線形な関係にある長さにすることができる。
一方、ラプラス分布よりも疎な分布である
に従う整数系列に対する平均符号長が最小になるビット長の理想的な割り当て方は、その整数系列に含まれる各整数値xの確率に対して2の対数の負値を取った値である√x+log2Z0.5ビットであり、これは整数値xの二乗根に対して線形な関係にある。従って、本発明による符号は分布p0.5(x)に従う整数系列に対する最適なビット長の割り当てを近似していることに相当する。実際に分布p0.5(x)に従う乱数を符号化する実験を行った結果、表6に示すように、本発明による符号は理論限界のビット長から高々5%しか変わらず、本発明による符号は理論限界のビット長に近い性能を示した。
<第二実施形態>
≪符号化装置≫
図2および図3を参照して、第二実施形態の符号化装置が実行する符号化方法の処理手続きを説明する。第二実施形態の符号化装置は、第一実施形態の符号化装置と同様に、整数変換部13および整数符号化部14を例えば備える。第二実施形態の符号化装置は、入力された整数値による系列中の1つの整数値それぞれについて、代数的に表現可能な全単射な変換により2つの整数値を得て、得た整数値による系列を可変長符号化することで、ラプラス分布よりも疎な分布の整数系列に対してGolomb-Rice符号化よりも短いビット長となる符号化処理を実現するものである。
≪符号化装置≫
図2および図3を参照して、第二実施形態の符号化装置が実行する符号化方法の処理手続きを説明する。第二実施形態の符号化装置は、第一実施形態の符号化装置と同様に、整数変換部13および整数符号化部14を例えば備える。第二実施形態の符号化装置は、入力された整数値による系列中の1つの整数値それぞれについて、代数的に表現可能な全単射な変換により2つの整数値を得て、得た整数値による系列を可変長符号化することで、ラプラス分布よりも疎な分布の整数系列に対してGolomb-Rice符号化よりも短いビット長となる符号化処理を実現するものである。
[整数変換部13]
整数変換部13には、符号化装置に入力された整数値による系列のうちの、Nサンプル(Nは自然数)ずつの整数値による系列が入力される。入力された整数値による系列を整数系列x_1, x_2, …, x_Nとする。整数変換部13は、入力された整数系列x_1, x_2, …,x_N中のそれぞれの整数値について代数的に表現可能な全単射な変換により2つの整数値を得て、得た2N個の整数値による系列y_1, y_2, …, y_2Nを変換後整数系列として整数符号化部14に出力する(ステップS13)。それぞれの整数値について代数的に表現可能な全単射な変換により2つの整数値を得る方法としては、例えば、整数系列x_1, x_2, …, x_N中のそれぞれの整数値をxとして、上記の式(8)によって2個の整数値y1, y2を得る方法を用いる。そして、式(8)によって得た合計2N個の整数値を所定の順番で並べたものを変換後整数系列y_1, y_2, …, y_2Nとして出力する。整数変換部13は式(8)の演算に代えて、例えば下記のStep B-1~B-3-1またはStep B-1~B-2, B-3-2の手順を行ってもよい。
整数変換部13には、符号化装置に入力された整数値による系列のうちの、Nサンプル(Nは自然数)ずつの整数値による系列が入力される。入力された整数値による系列を整数系列x_1, x_2, …, x_Nとする。整数変換部13は、入力された整数系列x_1, x_2, …,x_N中のそれぞれの整数値について代数的に表現可能な全単射な変換により2つの整数値を得て、得た2N個の整数値による系列y_1, y_2, …, y_2Nを変換後整数系列として整数符号化部14に出力する(ステップS13)。それぞれの整数値について代数的に表現可能な全単射な変換により2つの整数値を得る方法としては、例えば、整数系列x_1, x_2, …, x_N中のそれぞれの整数値をxとして、上記の式(8)によって2個の整数値y1, y2を得る方法を用いる。そして、式(8)によって得た合計2N個の整数値を所定の順番で並べたものを変換後整数系列y_1, y_2, …, y_2Nとして出力する。整数変換部13は式(8)の演算に代えて、例えば下記のStep B-1~B-3-1またはStep B-1~B-2, B-3-2の手順を行ってもよい。
Step B-1:xの平方根を超えない最も大きい整数cを得る。
Step B-2:cの二乗(c2)を求める。
Step B-3-1:xとcの二乗との差が偶数である場合、すなわち、x-c2が偶数である場合には、cを整数値y1とし、xからcの二乗を減算して得た値を2で割って得た値(x-c2)/2を整数値y2として得る。
Step B-3-2:xとcの二乗との差が奇数である場合、すなわち、x-c2が奇数である場合には、cを整数値y2とし、xからcの二乗と1を減算して得た値を2で割って得た値(x-c2-1)/2を整数値y1として得る。
ここで、所定の順番とは、例えば、整数値x_1から得た2つの変換後整数をy_1とy_2とし、整数値x_2から得た2つの変換後整数をy_3とy_4とし、・・・、整数値x_Nから得た2つの変換後整数をy_2N-1とy_2Nとする順番のように、符号化装置と復号装置に予め記憶しておける順番である。
[整数符号化部14]
整数符号化部14には、整数変換部13が出力した変換後整数系列y_1, y_2, …, y_2Nが入力される。整数符号化部14は、変換後整数系列y_1, y_2, …, y_2Nに含まれる各整数値をGolomb-Rice符号化して、すなわち、所定のRiceパラメータrにおける各整数値に対するGolomb-Rice符号C_1, C_2, …, C_2Nをそれぞれ得て、得た符号による符号群を整数符号として出力する(ステップS14)。
整数符号化部14には、整数変換部13が出力した変換後整数系列y_1, y_2, …, y_2Nが入力される。整数符号化部14は、変換後整数系列y_1, y_2, …, y_2Nに含まれる各整数値をGolomb-Rice符号化して、すなわち、所定のRiceパラメータrにおける各整数値に対するGolomb-Rice符号C_1, C_2, …, C_2Nをそれぞれ得て、得た符号による符号群を整数符号として出力する(ステップS14)。
なお、所定のRiceパラメータrは、予め定めて符号化装置と復号装置に予め記憶しておくか、あるいは、例えば、整数符号化部14が変換後整数系列y_1, y_2, …, y_2Nごとに同じRiceパラメータrを用いてGolomb-Rice符号化を行い、Golomb-Rice符号化に用いたRiceパラメータrに対応する符号をGolomb-Rice符号C_1, C_2, …, C_2Nに加えたものを整数符号として出力してもよい。
≪復号装置≫
図4および図5を参照して、第二実施形態の復号装置が実行する復号方法の処理手続きを説明する。第二実施形態の復号装置は、第一実施形態の復号装置と同様に、整数復号部23および整数逆変換部24を例えば備える。第二実施形態の復号装置には、第二実施形態の符号化装置が出力した整数符号が入力される。第二実施形態の復号装置は、入力された整数符号を第二実施形態の符号化装置に対応する復号処理で復号して整数値による系列を得て、得た整数値による系列中の2つの整数値による組それぞれについて第二実施形態の符号化装置と逆の変換により1つの整数値を得ることで、第二実施形態の符号化装置に入力された整数値による系列そのものを復元するものである。
図4および図5を参照して、第二実施形態の復号装置が実行する復号方法の処理手続きを説明する。第二実施形態の復号装置は、第一実施形態の復号装置と同様に、整数復号部23および整数逆変換部24を例えば備える。第二実施形態の復号装置には、第二実施形態の符号化装置が出力した整数符号が入力される。第二実施形態の復号装置は、入力された整数符号を第二実施形態の符号化装置に対応する復号処理で復号して整数値による系列を得て、得た整数値による系列中の2つの整数値による組それぞれについて第二実施形態の符号化装置と逆の変換により1つの整数値を得ることで、第二実施形態の符号化装置に入力された整数値による系列そのものを復元するものである。
[整数復号部23]
整数復号部23には、復号装置に入力された整数符号が2N個(Nは自然数)ずつ入力される。ここで、入力された整数符号をC_1, C_2, …, C_2Nとする。整数復号部23は、入力された各整数符号C_1, C_2, …, C_2NをGolomb-Rice復号して、すなわち、所定のRiceパラメータrにおけるGolomb-Rice符号である各整数符号C_1, C_2, …, C_2Nから整数値y_1, y_2, …, y_2Nそれぞれを得て、得た整数値による系列を変換後整数系列y_1, y_2, …, y_2Nとして整数逆変換部24に出力する(ステップS23)。所定のRiceパラメータrは、対応する符号化装置と同様のものを用いる。すなわち、予め定めて復号装置に予め記憶されているRiceパラメータrを用いるか、あるいは、整数符号に含まれているRiceパラメータrに対応する符号を復号して得たRiceパラメータrを用いる。
整数復号部23には、復号装置に入力された整数符号が2N個(Nは自然数)ずつ入力される。ここで、入力された整数符号をC_1, C_2, …, C_2Nとする。整数復号部23は、入力された各整数符号C_1, C_2, …, C_2NをGolomb-Rice復号して、すなわち、所定のRiceパラメータrにおけるGolomb-Rice符号である各整数符号C_1, C_2, …, C_2Nから整数値y_1, y_2, …, y_2Nそれぞれを得て、得た整数値による系列を変換後整数系列y_1, y_2, …, y_2Nとして整数逆変換部24に出力する(ステップS23)。所定のRiceパラメータrは、対応する符号化装置と同様のものを用いる。すなわち、予め定めて復号装置に予め記憶されているRiceパラメータrを用いるか、あるいは、整数符号に含まれているRiceパラメータrに対応する符号を復号して得たRiceパラメータrを用いる。
[整数逆変換部24]
整数逆変換部24には、整数復号部23が出力した変換後整数系列y_1, y_2, …, y_2Nが入力される。整数逆変換部24は、入力された変換後整数系列y_1, y_2, …, y_2Nから第二実施形態の符号化装置の整数変換部13が行った規則に対応する規則に従って2つの整数値による整数組をN組得て、得た整数組それぞれについて第二実施形態の符号化装置の整数変換部13が行った変換と逆の変換を行って1つの整数値を得て、得た整数値による系列である整数系列x_1, x_2, …, x_Nを出力する(ステップS24)。
整数逆変換部24には、整数復号部23が出力した変換後整数系列y_1, y_2, …, y_2Nが入力される。整数逆変換部24は、入力された変換後整数系列y_1, y_2, …, y_2Nから第二実施形態の符号化装置の整数変換部13が行った規則に対応する規則に従って2つの整数値による整数組をN組得て、得た整数組それぞれについて第二実施形態の符号化装置の整数変換部13が行った変換と逆の変換を行って1つの整数値を得て、得た整数値による系列である整数系列x_1, x_2, …, x_Nを出力する(ステップS24)。
第二実施形態の符号化装置の整数変換部13が式(8)の変換を行った場合には、整数逆変換部24は、式(8)の変換の逆の変換として、式(10)によって2つの整数値による組(y1, y2)から1つの整数値xを得る。
第二実施形態の符号化装置の整数変換部13が行った規則が隣接する2つの変換後整数同士を整数組とする規則であれば、整数逆変換部24は、入力された変換後整数系列y_1,y_2, …, y_2Nのうちの変換後整数y_1とy_2から整数値x_1を得て、変換後整数y_3とy_4から整数値x_2を得て、・・・、変換後整数y_2N-1とy_2Nから整数値x_Nを得て、得た整数値による系列である整数系列x_1, x_2, …, x_Nを出力する。
<第一実施形態と第二実施形態の変形例>
第一実施形態の符号化装置の整数変換部11が行う式(1)の変換は2進数表記での操作でも近似できる。例えば、x1, x2の値がそれぞれ2進数表記で1111(10進数表記で15)、0000(10進数表記で0)としたとき、これらの桁同士を入れ子にした10101010(10進数表記で170)はおおよそx1やx2の二乗に近い値を示す。従って、第一実施形態の符号化装置の整数変換部11は、x1, x2の値の2進数表記の桁同士を入れ子にする操作により得た値をyとしてもよい。ここで、桁同士を入れ子にする操作とは、x1の2進数表記の最上位桁の数値をyの2進数表記の最上位桁の数値とし、x2の2進数表記の最上位桁の数値をyの2進数表記の最上位から2桁目の数値とし、・・・、x1の2進数表記の最下位桁の数値をyの2進数表記の最下位から2桁目の数値とし、x2の2進数表記の最下位桁の数値をyの2進数表記の最下位桁の数値とする操作のことをいい、以下では「入れ子処理」とも呼ぶ。第一実施形態の符号化装置の整数変換部11が2進数表記の桁同士を入れ子にする操作を行った場合には、第一実施形態の復号装置の整数逆変換部22は、この入れ子処理の逆操作、すなわち、yの2進数表記の最上位桁の数値をx1の2進数表記の最上位桁の数値とし、yの2進数表記の最上位から2桁目の数値をx2の2進数表記の最上位桁の数値とし、・・・、yの2進数表記の最下位から2桁目の数値をx1の2進数表記の最下位桁の数値とし、yの2進数表記の最下位桁の数値をx2の2進数表記の最下位桁の数値とする操作を行えばよい。
第一実施形態の符号化装置の整数変換部11が行う式(1)の変換は2進数表記での操作でも近似できる。例えば、x1, x2の値がそれぞれ2進数表記で1111(10進数表記で15)、0000(10進数表記で0)としたとき、これらの桁同士を入れ子にした10101010(10進数表記で170)はおおよそx1やx2の二乗に近い値を示す。従って、第一実施形態の符号化装置の整数変換部11は、x1, x2の値の2進数表記の桁同士を入れ子にする操作により得た値をyとしてもよい。ここで、桁同士を入れ子にする操作とは、x1の2進数表記の最上位桁の数値をyの2進数表記の最上位桁の数値とし、x2の2進数表記の最上位桁の数値をyの2進数表記の最上位から2桁目の数値とし、・・・、x1の2進数表記の最下位桁の数値をyの2進数表記の最下位から2桁目の数値とし、x2の2進数表記の最下位桁の数値をyの2進数表記の最下位桁の数値とする操作のことをいい、以下では「入れ子処理」とも呼ぶ。第一実施形態の符号化装置の整数変換部11が2進数表記の桁同士を入れ子にする操作を行った場合には、第一実施形態の復号装置の整数逆変換部22は、この入れ子処理の逆操作、すなわち、yの2進数表記の最上位桁の数値をx1の2進数表記の最上位桁の数値とし、yの2進数表記の最上位から2桁目の数値をx2の2進数表記の最上位桁の数値とし、・・・、yの2進数表記の最下位から2桁目の数値をx1の2進数表記の最下位桁の数値とし、yの2進数表記の最下位桁の数値をx2の2進数表記の最下位桁の数値とする操作を行えばよい。
また同様に、第二実施形態の符号化装置の整数変換部13は、xの値の2進数表記について入れ子処理の逆操作をして得た2つの整数値をy1, y2としてもよく、この場合には第二実施形態の復号装置の整数逆変換部24は、y1, y2の値の2進数表記の桁同士を入れ子にする操作をして整数値xを得ればよい。
<第三実施形態>
第一実施形態の符号化装置は、入力された整数値による系列中の2つの整数値による組それぞれについて代数的に表現可能な全単射な変換により1つの整数値を得るものであったが、入力された整数値による系列中のより多くの整数値による組それぞれについて代数的に表現可能な全単射な変換により1つの整数値を得ることにより、より密な分布に従う整数値による系列に対して適切な符号を割り当てることができる。第三実施形態では、入力された整数値による系列中の所定のM個(Mは2以上の整数)の整数値による組それぞれについて代数的に表現可能な全単射な変換により1つの整数値を得て、得た整数値による系列を可変長符号化する。なお、Mが2の場合の第三実施形態の動作は、第一実施形態の動作と同様である。
第一実施形態の符号化装置は、入力された整数値による系列中の2つの整数値による組それぞれについて代数的に表現可能な全単射な変換により1つの整数値を得るものであったが、入力された整数値による系列中のより多くの整数値による組それぞれについて代数的に表現可能な全単射な変換により1つの整数値を得ることにより、より密な分布に従う整数値による系列に対して適切な符号を割り当てることができる。第三実施形態では、入力された整数値による系列中の所定のM個(Mは2以上の整数)の整数値による組それぞれについて代数的に表現可能な全単射な変換により1つの整数値を得て、得た整数値による系列を可変長符号化する。なお、Mが2の場合の第三実施形態の動作は、第一実施形態の動作と同様である。
≪符号化装置≫
図2および図3を参照して、第三実施形態の符号化装置が実行する符号化方法の処理手続きを説明する。第三実施形態の符号化装置は、第一実施形態の符号化装置と同様に、整数変換部15および整数符号化部16を例えば備える。第三実施形態の符号化装置の整数符号化部16の動作および整数符号化部16が実行するステップS16の処理は第一実施形態の符号化装置の整数符号化部12の動作および整数符号化部12が実行するステップS12の処理と同じであるため、ここでは、第一実施形態とは動作が異なる整数変換部15についてのみ説明する。
図2および図3を参照して、第三実施形態の符号化装置が実行する符号化方法の処理手続きを説明する。第三実施形態の符号化装置は、第一実施形態の符号化装置と同様に、整数変換部15および整数符号化部16を例えば備える。第三実施形態の符号化装置の整数符号化部16の動作および整数符号化部16が実行するステップS16の処理は第一実施形態の符号化装置の整数符号化部12の動作および整数符号化部12が実行するステップS12の処理と同じであるため、ここでは、第一実施形態とは動作が異なる整数変換部15についてのみ説明する。
[整数変換部15]
整数変換部15には、符号化装置に入力された整数値による系列のうちの、MNサンプル(M×N個のサンプル、Mは2以上の整数、Nは自然数)ずつの整数値による系列が入力される。入力された整数値による系列を整数系列x_1, x_2, …, x_MNとする。整数変換部15は、入力された整数系列x_1, x_2, …, x_MNから所定の規則に従ってM個の整数値による整数組をN組得て、それぞれの整数組について代数的に表現可能な全単射な変換により1つの整数値を得て、得たN個の整数値による系列y_1, y_2, …, y_Nを整数符号化部16に出力する(ステップS15)。それぞれの整数組について代数的に表現可能な全単射な変換により1つの整数値を得る方法としては、例えば、整数組を構成するM個の整数値をx1, x2, …, xMとして、式(11)によって1つの整数値yを得る方法を用いる。以下では、系列y_1, y_2, …, y_Nを変換後整数系列と呼ぶ。
整数変換部15には、符号化装置に入力された整数値による系列のうちの、MNサンプル(M×N個のサンプル、Mは2以上の整数、Nは自然数)ずつの整数値による系列が入力される。入力された整数値による系列を整数系列x_1, x_2, …, x_MNとする。整数変換部15は、入力された整数系列x_1, x_2, …, x_MNから所定の規則に従ってM個の整数値による整数組をN組得て、それぞれの整数組について代数的に表現可能な全単射な変換により1つの整数値を得て、得たN個の整数値による系列y_1, y_2, …, y_Nを整数符号化部16に出力する(ステップS15)。それぞれの整数組について代数的に表現可能な全単射な変換により1つの整数値を得る方法としては、例えば、整数組を構成するM個の整数値をx1, x2, …, xMとして、式(11)によって1つの整数値yを得る方法を用いる。以下では、系列y_1, y_2, …, y_Nを変換後整数系列と呼ぶ。
ただし、fM’(x1, x2, …, xM’)はM’個の変数による系列(変数系列)x1, x2, …, xM’を入力とし、1変数を出力とする再帰的な関数であり、M’個の変数x1, x2, …, xM’の最大値をxmax、最大値をとる変数の個数をK、最大値をとるK個の変数それぞれの変数系列内での番号をそれぞれm1, m2, …, mK、変数系列x1, x2, …, xM’から最大値をとる変数を除いたM’-K個の変数による系列を~x1, ~x2, …, ~xM’-K、f0を0、M’CKをM’個からK個を選択する組み合わせの数とすると、式(12)のように表せる。
N組の整数組を得る所定の規則は、例えば、入力された整数系列x_1, x_2, …, x_MN内の隣接するM個の整数値同士を整数組とする規則、すなわち、x_1からx_Mまで、x_M+1からx_2Mまで、・・・、x_M(N-1)+1からx_MNまでをそれぞれ整数組とする規則などの、予め定めて符号化装置と復号装置に予め記憶しておける規則であればどのような規則であってもよい。
隣接するM個の整数値同士を整数組とする規則であれば、整数変換部15は、入力された整数系列x_1, x_2, …, x_MNのうちのx_1からx_Mまでによる整数組から変換後整数y_1を得て、x_M+1からx_2Mまでによる整数組から変換後整数y_2を得て、・・・、x_M(N-1)+1からx_MNまでによる整数組から変換後整数y_Nを得て、得た変換後整数による系列である変換後整数系列y_1, y_2, …, y_Nを出力する。
なお、第一実施形態の符号化装置の変形例と同様に、整数変換部15は式(11)の演算に代えて、例えば下記のStep C-1~C-2の手順を行ってもよい。
Step C-1:M個の整数値をx1, x2, …, xMとし、それらの二進数表記での最大桁数をKとし、xiの二進数表記の各桁の数値をそれぞれa_(K, i), a_(K-1, i), …, a_(1, i)とする。すなわち、a_(k, i)はxi(i=1, 2, …, M)のk(k=1, 2, …, K)桁目の値を示し、a_(k, i)は0または1である。
Step C-2:最上位桁から最下位桁まで順に、各桁のM個の値を並べた最大桁数MK桁(M×K桁)の整数を変換後整数yの二進数表記とする。つまり、二進数表記がa_(K, M), a_(K, M-1), …, a_(K, 1), a_(K-1, M), …, a_(K-1, 1), …, a_(1, 1)である整数を変換後整数yとする。
≪復号装置≫
図4および図5を参照して、第三実施形態の復号装置が実行する復号方法の処理手続きを説明する。第三実施形態の復号装置は、第一実施形態の復号装置と同様に、整数復号部25および整数逆変換部26を例えば備える。第三実施形態の復号装置の整数復号部25の動作および整数復号部25が実行するステップS25の処理は第一実施形態の復号装置の整数復号部21の動作および整数復号部21が実行するステップS21の処理と同じであるため、ここでは、第一実施形態とは動作が異なる整数逆変換部26についてのみ説明する。
図4および図5を参照して、第三実施形態の復号装置が実行する復号方法の処理手続きを説明する。第三実施形態の復号装置は、第一実施形態の復号装置と同様に、整数復号部25および整数逆変換部26を例えば備える。第三実施形態の復号装置の整数復号部25の動作および整数復号部25が実行するステップS25の処理は第一実施形態の復号装置の整数復号部21の動作および整数復号部21が実行するステップS21の処理と同じであるため、ここでは、第一実施形態とは動作が異なる整数逆変換部26についてのみ説明する。
[整数逆変換部26]
整数逆変換部26には、整数復号部25が出力した変換後整数系列y_1, y_2, …, y_Nが入力される。整数逆変換部26は、入力された変換後整数系列y_1, y_2, …, y_Nに含まれる整数値それぞれについて第三実施形態の符号化装置の整数変換部15が行った変換と逆の変換を行ってM個の整数値による整数組をN組得て、得たN組の整数組から第三実施形態の符号化装置の整数変換部15が行った規則に対応する規則に従って整数系列x_1, x_2, …, x_MNを得て出力する(ステップS26)。
整数逆変換部26には、整数復号部25が出力した変換後整数系列y_1, y_2, …, y_Nが入力される。整数逆変換部26は、入力された変換後整数系列y_1, y_2, …, y_Nに含まれる整数値それぞれについて第三実施形態の符号化装置の整数変換部15が行った変換と逆の変換を行ってM個の整数値による整数組をN組得て、得たN組の整数組から第三実施形態の符号化装置の整数変換部15が行った規則に対応する規則に従って整数系列x_1, x_2, …, x_MNを得て出力する(ステップS26)。
第三実施形態の符号化装置の整数変換部15が式(11)の変換を行った場合には、整数逆変換部26は、式(11)の変換の逆の変換として、式(13)によって1つの整数値yからM個の整数値x1, x2, …, xMを得る。
ただし、fM’
-1(y)は1変数を入力とし、M’個の変数を出力とする再帰的な関数であり、yを超えない最大のM’次平方根
と、
が0を下回らない最大のKと、
により得られるM’-K個の変数からなる変数系列~x1, ~x2, …, ~xM’-Kと、
をM’CKで割った余りであるλM’を用いて、m=0からm=M’-1までに関してそれぞれ、i1=0, i2=0を初期値として式(14)を計算することでM’個の整数値x1, x2, …, xM’を得て、出力する。
また、f0
-1(y)は何も出力しない関数を意味する。
なお、第一実施形態の復号装置の変形例と同様に、整数逆変換部26は式(12)の演算に代えて、例えば下記のStep D-1~D-2の手順を行ってもよい。
Step D-1:入力された変換後整数yの二進数表記のMK桁の各桁の値をそれぞれa_(MK), a_(MK-1), …, a_(1)とする。
Step D-2:上記Step D-1で得たMK個の値による系列a_(MK), a_(MK-1), …, a_(1)からM個おきにK個の値を取り出して並べた整数をM個の整数値x1, x2, …, xMとする。つまり、二進数表記がa_(M(K-1)+1), a_(M(K-2)+1), …, a_(1)である整数をx1、二進数表記がa_(M(K-1)+2), a_(M(K-2)+2), …, a_(2)である整数をx2、・・・、二進数表記がa_(MK), a_(M(K-1)), …, a_(M)である整数をxM、とする。
第三実施形態の符号化装置の整数変換部15が行った規則が隣接するM個の整数値同士を整数組とする規則であれば、整数逆変換部26は、入力された変換後整数系列y_1, y_2, …, y_Nのうちの変換後整数y_1から、整数値x_1からx_Mまでによる整数組を得て、変換後整数y_2から、整数値x_M+1からx_2Mまでによる整数組を得て、・・・、変換後整数y_Nから、整数値x_M(N-1)+1からx_MNまでによる整数組を得て、得た整数組による系列である整数系列x_1, x_2, …, x_MNを出力する。
≪作用効果≫
第三実施形態によれば、Mの値が大きければ大きいほど、ラプラス分布よりも密な度合いが大きい分布の整数値による系列に対してGolomb-Rice符号化よりも短いビット長となる符号化処理とその符号化処理に対応する復号処理を実現することができる。
第三実施形態によれば、Mの値が大きければ大きいほど、ラプラス分布よりも密な度合いが大きい分布の整数値による系列に対してGolomb-Rice符号化よりも短いビット長となる符号化処理とその符号化処理に対応する復号処理を実現することができる。
<第四実施形態>
第二実施形態の符号化装置は、入力された整数値による系列中の1つの整数値それぞれについて、代数的に表現可能な全単射な変換により2つの整数値を得るものであったが、入力された整数値による系列中の1つの整数値それぞれについて、代数的に表現可能な全単射な変換により、より多くの整数値を得ることにより、より疎な分布に従う整数値による系列に対して適切な符号を割り当てることができる。第四実施形態では、入力された整数値による系列中の1つの整数値を代数的に表現可能な全単射な変換により所定のM個(Mは2以上の整数)の整数値を得て、得た整数値による系列を可変長符号化する。なお、Mが2の場合の第四実施形態の動作は、第二実施形態の動作と同様である。
第二実施形態の符号化装置は、入力された整数値による系列中の1つの整数値それぞれについて、代数的に表現可能な全単射な変換により2つの整数値を得るものであったが、入力された整数値による系列中の1つの整数値それぞれについて、代数的に表現可能な全単射な変換により、より多くの整数値を得ることにより、より疎な分布に従う整数値による系列に対して適切な符号を割り当てることができる。第四実施形態では、入力された整数値による系列中の1つの整数値を代数的に表現可能な全単射な変換により所定のM個(Mは2以上の整数)の整数値を得て、得た整数値による系列を可変長符号化する。なお、Mが2の場合の第四実施形態の動作は、第二実施形態の動作と同様である。
≪符号化装置≫
図2および図3を参照して、第四実施形態の符号化装置が実行する符号化方法の処理手続きを説明する。第四実施形態の符号化装置は、第一実施形態の符号化装置と同様に、整数変換部17および整数符号化部18を例えば備える。
図2および図3を参照して、第四実施形態の符号化装置が実行する符号化方法の処理手続きを説明する。第四実施形態の符号化装置は、第一実施形態の符号化装置と同様に、整数変換部17および整数符号化部18を例えば備える。
[整数変換部17]
整数変換部17には、符号化装置に入力された整数値による系列のうちの、Nサンプル(Nは自然数)ずつの整数値による系列が入力される。入力された整数値による系列を整数系列x_1, x_2, …, x_Nとする。整数変換部17は、入力された整数系列x_1, x_2, …,x_N中のそれぞれの整数値について代数的に表現可能な全単射な変換によりM個の整数値を得て、得たMN個の整数値を所定の順番で並べた系列y_1, y_2, …, y_MNを変換後整数系列として整数符号化部18に出力する(ステップS17)。それぞれの整数値について代数的に表現可能な全単射な変換によりM個の整数値を得る方法としては、例えば、整数系列x_1, x_2, …, x_N中のそれぞれの整数値をxとして、式(15)によってM個の整数値y1,y2, …, yMを得る方法を用いる。
整数変換部17には、符号化装置に入力された整数値による系列のうちの、Nサンプル(Nは自然数)ずつの整数値による系列が入力される。入力された整数値による系列を整数系列x_1, x_2, …, x_Nとする。整数変換部17は、入力された整数系列x_1, x_2, …,x_N中のそれぞれの整数値について代数的に表現可能な全単射な変換によりM個の整数値を得て、得たMN個の整数値を所定の順番で並べた系列y_1, y_2, …, y_MNを変換後整数系列として整数符号化部18に出力する(ステップS17)。それぞれの整数値について代数的に表現可能な全単射な変換によりM個の整数値を得る方法としては、例えば、整数系列x_1, x_2, …, x_N中のそれぞれの整数値をxとして、式(15)によってM個の整数値y1,y2, …, yMを得る方法を用いる。
ただし、gM’(x)は1変数を入力とし、M’個の変数を出力とする再帰的な関数であり、xを超えない最大のM’次平方根
と、
が0を下回らない最大のKと、
により得られるM’-K個の変数からなる変数系列~y1, ~y2, …, ~yM’-Kと、
をM’CKで割った余りであるλM’を用いて、m=0からm=M’-1までに関してそれぞれ、i1=0, i2=0を初期値として式(16)を計算することでM’個の整数値y1, y2, …, yM’を得て、出力する。
また、g0(x)は何も出力しない関数を意味する。
なお、第二実施形態の符号化装置の変形例と同様に、整数変換部17は式(15)の演算に代えて、例えば下記のStep E-1~E-2の手順を行ってもよい。
Step E-1:入力された整数xの二進数表記のMK桁の各桁の値をそれぞれa_(MK), a_(MK-1), …, a_(1)とする。
Step E-2:上記Step E-1で得たMK個の値による系列a_(MK), a_(MK-1), …, a_(1)からM個おきにK個の値を取り出して並べた整数をM個の整数値y1, y2, …, yMとする。つまり、二進数表記がa_(M(K-1)+1), a_(M(K-2)+1), …, a_(1)である整数をy1、二進数表記がa_(M(K-1)+2), a_(M(K-2)+2), …, a_(2)である整数をy2、・・・、二進数表記がa_(MK), a_(M(K-1)), …, a_(M)である整数をyM、とする。
ここで、所定の順番とは、例えば、整数値x_1から得たM個の変換後整数をy_1からy_Mまでとし、整数値x_2から得たM個の変換後整数をy_M+1からy_2Mまでとし、・・・、整数値x_Nから得たM個の変換後整数をy_M(N-1)+1からy_MNまでとする順番のように、符号化装置と復号装置に予め記憶しておける順番である。
[整数符号化部18]
整数符号化部18には、整数変換部17が出力した変換後整数系列y_1, y_2, …, y_MNが入力される。整数符号化部18は、変換後整数系列y_1, y_2, …, y_MNに含まれる各整数値をGolomb-Rice符号化してGolomb-Rice符号C_1, C_2, …, C_MNを得て、得た符号による符号群を整数符号として出力する(ステップS18)。整数符号化部18の動作は、Golomb-Rice符号化する各整数値が、第二実施形態の符号化装置の整数符号化部14では変換後整数系列y_1, y_2, …, y_2Nの2N個の整数値であるのに対し、変換後整数系列y_1, y_2, …, y_MNのMN個の整数値であること以外は、第二実施形態の符号化装置の整数符号化部14と同様である。
整数符号化部18には、整数変換部17が出力した変換後整数系列y_1, y_2, …, y_MNが入力される。整数符号化部18は、変換後整数系列y_1, y_2, …, y_MNに含まれる各整数値をGolomb-Rice符号化してGolomb-Rice符号C_1, C_2, …, C_MNを得て、得た符号による符号群を整数符号として出力する(ステップS18)。整数符号化部18の動作は、Golomb-Rice符号化する各整数値が、第二実施形態の符号化装置の整数符号化部14では変換後整数系列y_1, y_2, …, y_2Nの2N個の整数値であるのに対し、変換後整数系列y_1, y_2, …, y_MNのMN個の整数値であること以外は、第二実施形態の符号化装置の整数符号化部14と同様である。
≪復号装置≫
図4および図5を参照して、第四実施形態の復号装置が実行する復号方法の処理手続きを説明する。第四実施形態の復号装置は、第一実施形態の復号装置と同様に、整数復号部27および整数逆変換部28を例えば備える。
図4および図5を参照して、第四実施形態の復号装置が実行する復号方法の処理手続きを説明する。第四実施形態の復号装置は、第一実施形態の復号装置と同様に、整数復号部27および整数逆変換部28を例えば備える。
[整数復号部27]
整数復号部27には、復号装置に入力された整数符号がMN個(Mは2以上の整数、Nは自然数)ずつ入力される。ここで、入力された整数符号をC_1, C_2, …, C_MNとする。整数復号部27は、入力された各整数符号C_1, C_2, …, C_MNをGolomb-Rice復号して整数値y_1, y_2, …, y_MNを得て、得た整数値による系列を変換後整数系列y_1, y_2, …, y_MNとして整数逆変換部28に出力する(ステップS27)。整数復号部27の動作は、Golomb-Rice復号して得られる各整数値による系列が、第二実施形態の復号装置の整数復号部23では2N個の整数値による変換後整数系列y_1, y_2, …, y_2Nであるのに対し、MN個の整数値による変換後整数系列y_1, y_2, …, y_MNとなること以外は、第二実施形態の復号装置の整数復号部23と同様である。
整数復号部27には、復号装置に入力された整数符号がMN個(Mは2以上の整数、Nは自然数)ずつ入力される。ここで、入力された整数符号をC_1, C_2, …, C_MNとする。整数復号部27は、入力された各整数符号C_1, C_2, …, C_MNをGolomb-Rice復号して整数値y_1, y_2, …, y_MNを得て、得た整数値による系列を変換後整数系列y_1, y_2, …, y_MNとして整数逆変換部28に出力する(ステップS27)。整数復号部27の動作は、Golomb-Rice復号して得られる各整数値による系列が、第二実施形態の復号装置の整数復号部23では2N個の整数値による変換後整数系列y_1, y_2, …, y_2Nであるのに対し、MN個の整数値による変換後整数系列y_1, y_2, …, y_MNとなること以外は、第二実施形態の復号装置の整数復号部23と同様である。
[整数逆変換部28]
整数逆変換部28には、整数復号部27が出力した変換後整数系列y_1, y_2, …, y_MNが入力される。整数逆変換部28は、入力された変換後整数系列y_1, y_2, …, y_MNから第四実施形態の符号化装置の整数変換部17が行った規則に対応する規則に従ってM個の整数値による整数組をN組得て、得た整数組それぞれについて第四実施形態の符号化装置の整数変換部17が行った変換と逆の変換を行って1つの整数値を得て、得た整数値による系列である整数系列x_1, x_2, …, x_Nを出力する(ステップS28)。
整数逆変換部28には、整数復号部27が出力した変換後整数系列y_1, y_2, …, y_MNが入力される。整数逆変換部28は、入力された変換後整数系列y_1, y_2, …, y_MNから第四実施形態の符号化装置の整数変換部17が行った規則に対応する規則に従ってM個の整数値による整数組をN組得て、得た整数組それぞれについて第四実施形態の符号化装置の整数変換部17が行った変換と逆の変換を行って1つの整数値を得て、得た整数値による系列である整数系列x_1, x_2, …, x_Nを出力する(ステップS28)。
第四実施形態の符号化装置の整数変換部17が式(15)の変換を行った場合には、整数逆変換部28は、式(15)の変換の逆の変換として、式(17)によってM個の整数値による組(y1, y2, …, yM)から1つの整数値xを得る。
ただし、gM’
-1(y1, y2, …, yM’)はM’個の変数による系列(変数系列)を入力とし、1変数を出力とする再帰的な関数であり、M’個の変数y1, y2, …, yM’の最大値をymax、最大値をとる変数の個数をK、最大値をとるK個の変数それぞれの変数系列内での番号をそれぞれm1, m2, …, mK、変数系列y1, y2, …, yM’から最大値をとる変数を除いたM’-K個の変数による系列を~y1, ~y2, …, ~yM’-K、g0
-1を0、M’CKをM’個からK個を選択する組み合わせの数とすると、式(18)のように表せる。
なお、第二実施形態の復号装置の変形例と同様に、整数逆変換部28は式(17)の演算に代えて、例えば下記のStep F-1~F-2の手順を行ってもよい。
Step F-1:M個の変換後整数をy1, y2, …, yMとし、それらの二進数表記での最大桁数をKとし、yiの二進数表記の各桁の数値をそれぞれa_(K, i), a_(K-1, i), …, a_(1, i)とする。すなわち、a_(k, i)はyi(i=1, 2, …, M)のk(k=1, 2, …, K)桁目の値を示し、a_(k, i)は0または1である。
Step F-2:最上位桁から最下位桁まで順に、各桁のM個の値を並べた最大桁数MK桁の整数を整数xの二進数表記とする。つまり、二進数表記がa_(K, M), a_(K, M-1), …a_(K, 1), a_(K-1, M), …, a_(K-1, 1), …, a_(1, 1)である整数を整数xとする。
第四実施形態の符号化装置の整数変換部17が行った規則が隣接するM個の変換後整数同士を整数組とする規則であれば、整数逆変換部28は、入力された変換後整数系列y_1,y_2, …, y_MNのうちの変換後整数y_1からy_Mまでから整数値x_1を得て、変換後整数y_M+1からy_2Mまでから整数値x_2を得て、・・・、変換後整数y_M(N-1)+1からy_MNまでから整数値x_Nを得て、得た整数値による系列である整数系列x_1, x_2, …, x_Nを出力する。
≪作用効果≫
第四実施形態によれば、Mの値が大きければ大きいほど、ラプラス分布よりも疎な度合いが大きい分布の整数値による系列に対してGolomb-Rice符号化よりも短いビット長となる符号化処理とその符号化処理に対応する復号処理を実現することができる。
第四実施形態によれば、Mの値が大きければ大きいほど、ラプラス分布よりも疎な度合いが大きい分布の整数値による系列に対してGolomb-Rice符号化よりも短いビット長となる符号化処理とその符号化処理に対応する復号処理を実現することができる。
<第五実施形態>
符号化装置は、入力された整数値による系列中の部分系列ごとに、その系列の分布の性質を推定し、推定した分布の性質に従って第一実施形態から第四実施形態の何れかを選択して動作したり、推定した分布の性質に従って第三実施形態や第四実施形態のMの値を選択して動作したり、してもよい。同様に、復号装置は、符号化装置が推定した分布の性質を表す指標値に従って第一実施形態から第四実施形態の何れかを選択して動作したり、符号化装置が推定した分布の性質を表す指標値に従って第三実施形態や第四実施形態のMの値を選択して動作したり、してもよい。この形態を第五実施形態として説明する。
符号化装置は、入力された整数値による系列中の部分系列ごとに、その系列の分布の性質を推定し、推定した分布の性質に従って第一実施形態から第四実施形態の何れかを選択して動作したり、推定した分布の性質に従って第三実施形態や第四実施形態のMの値を選択して動作したり、してもよい。同様に、復号装置は、符号化装置が推定した分布の性質を表す指標値に従って第一実施形態から第四実施形態の何れかを選択して動作したり、符号化装置が推定した分布の性質を表す指標値に従って第三実施形態や第四実施形態のMの値を選択して動作したり、してもよい。この形態を第五実施形態として説明する。
≪符号化装置≫
図8および図9を参照して、第五実施形態の符号化装置が実行する符号化方法の処理手続きを説明する。第五実施形態の符号化装置は、図8に示すように、パラメータ決定部30と整数変換部31と整数符号化部32とを例えば備える。この符号化装置が図9に示す各ステップの処理を実行することにより、第五実施形態の符号化方法が実現される。
図8および図9を参照して、第五実施形態の符号化装置が実行する符号化方法の処理手続きを説明する。第五実施形態の符号化装置は、図8に示すように、パラメータ決定部30と整数変換部31と整数符号化部32とを例えば備える。この符号化装置が図9に示す各ステップの処理を実行することにより、第五実施形態の符号化方法が実現される。
第五実施形態の符号化装置には、整数値による系列が入力される。第一実施形態でも説明した通りであるが、この整数値による系列は、例えば、マイクロホンで収音した音声や音楽などを時間領域もしくは周波数領域のディジタル信号に変換して得た信号やカメラで撮像した画像や映像を時間領域もしくは周波数領域のディジタル信号に変換して得た信号などの信号の一部あるいは全部を既存の技術により量子化し、有限精度の値にして得たものである。第五実施形態の符号化装置に入力された整数値による系列は、所定の個数の整数値による系列ごとにパラメータ決定部30に入力される。所定の個数の整数値による系列とは、例えば、音声や音楽などのディジタル信号であれば、フレームと呼ばれる所定時間区間のディジタル信号に対応する整数値による系列である。例えば、Lサンプル(Lは自然数)ずつの整数値による系列がパラメータ決定部30に入力される。
[パラメータ決定部30]
パラメータ決定部30には、符号化装置に入力された整数値による系列のうちの、Lサンプル(Lは自然数)ずつの整数値による系列が入力される。入力された整数値による系列を整数系列x_1, x_2, …, x_Lとする。パラメータ決定部30は、入力された整数系列x_1, x_2, …, x_Lに基づき、その整数系列の分布の性質を表す指標値を求め、求めた指標値とその指標値を表す符号であるパラメータ符号と、を出力する(ステップS30)。パラメータ符号は、復号装置が当該パラメータ符号を復号することによりパラメータ決定部30が決定した指標値を得られるように、指標値を符号化して得ればよい。
パラメータ決定部30には、符号化装置に入力された整数値による系列のうちの、Lサンプル(Lは自然数)ずつの整数値による系列が入力される。入力された整数値による系列を整数系列x_1, x_2, …, x_Lとする。パラメータ決定部30は、入力された整数系列x_1, x_2, …, x_Lに基づき、その整数系列の分布の性質を表す指標値を求め、求めた指標値とその指標値を表す符号であるパラメータ符号と、を出力する(ステップS30)。パラメータ符号は、復号装置が当該パラメータ符号を復号することによりパラメータ決定部30が決定した指標値を得られるように、指標値を符号化して得ればよい。
パラメータ決定部30は、例えば、入力された整数系列x_1, x_2, …, x_Lから、その整数系列の分布の性質を表す指標値であるパラメータηを得て出力する。具体的には、パラメータ決定部30は、所定の方法で定められる正のパラメータη0を用いて整数系列x_1, x_2, …, x_Lに含まれる各整数値の絶対値のη0乗をパワー系列の各値と見做して包絡を推定し、その包絡の各値で整数系列x_1, x_2, …, x_Lに含まれる各整数値を除算した系列である白色化系列を得、パラメータηを形状パラメータとする一般化ガウス分布が白色化系列のヒストグラムを近似する正のパラメータηを得て、得たパラメータηとそのパラメータηを表す符号であるパラメータ符号とを出力する。
すなわち、整数系列x_1, x_2, …, x_Lが、所定時間区間の時間領域のディジタル信号の各サンプル値を非負の整数値にして得たものである場合には、パラメータ決定部30は、所定の方法で定められる正のパラメータη0を用いて整数系列x_1, x_2, …, x_Lに含まれる各整数値の絶対値のη0乗をパワー系列の各値と見做して時間包絡を推定し、その時間包絡の各値で整数系列x_1, x_2, …, x_Lに含まれる各整数値を除算した系列である白色化系列を得、パラメータηを形状パラメータとする一般化ガウス分布が白色化系列のヒストグラムを近似する正のパラメータηを得て、得たパラメータηとそのパラメータηを表す符号であるパラメータ符号とを出力する。
また、整数系列x_1, x_2, …, x_Lが、所定時間区間の時間領域のディジタル信号を周波数領域に変換して得た各係数値を非負の整数値にして得たものである場合には、パラメータ決定部30は、所定の方法で定められる正のパラメータη0を用いて整数系列x_1, x_2, …, x_Lに含まれる各整数値の絶対値のη0乗をパワースペクトルの各値と見做してスペクトル包絡を推定し、そのスペクトル包絡の各値で整数系列x_1, x_2, …, x_Lに含まれる各整数値を除算した系列である白色化スペクトル系列を得、パラメータηを形状パラメータとする一般化ガウス分布が白色化スペクトル系列のヒストグラムを近似する正のパラメータηを得て、得たパラメータηとそのパラメータηを表す符号であるパラメータ符号とを出力する。
以下、パラメータ決定部30の処理をより詳細に説明する。パラメータ決定部30の構成例を図10に示す。パラメータ決定部30は、図10に示すように、スペクトル包絡推定部301と、白色化スペクトル系列生成部302と、パラメータ取得部303とを例えば備えている。スペクトル包絡推定部301は、線形予測分析部3011及び非平滑化振幅スペクトル包絡系列生成部3012を例えば備えている。例えばこのパラメータ決定部30により実現されるパラメータ決定方法の各処理の例を図11に示す。
以下、図10に示す各部について説明する。
[スペクトル包絡推定部301]
スペクトル包絡推定部301には、パラメータ決定部30に入力された整数系列x_1, x_2, …, x_Lが入力される。ここでは、整数系列x_1, x_2, …, x_Lが、時系列信号である時間領域の音信号を、例えば、所定の時間長のフレーム単位で周波数領域のL点のMDCT係数列に変換し、MDCT係数列の各係数を非負の整数値にして得た周波数領域サンプル列とするが、これに限定されるものではない。特に断りがない限り、以降の処理はフレーム単位で行われるものとする。
スペクトル包絡推定部301には、パラメータ決定部30に入力された整数系列x_1, x_2, …, x_Lが入力される。ここでは、整数系列x_1, x_2, …, x_Lが、時系列信号である時間領域の音信号を、例えば、所定の時間長のフレーム単位で周波数領域のL点のMDCT係数列に変換し、MDCT係数列の各係数を非負の整数値にして得た周波数領域サンプル列とするが、これに限定されるものではない。特に断りがない限り、以降の処理はフレーム単位で行われるものとする。
スペクトル包絡推定部301は、所定の方法で定められるパラメータη0に基づいて、入力された整数系列x_1, x_2, …, x_Lに含まれる各整数値の絶対値のη0乗をパワースペクトルの各値として用いたスペクトル包絡の推定を行う(ステップS301)。
推定されたスペクトル包絡は、白色化スペクトル系列生成部302に出力される。
スペクトル包絡推定部301は、例えば以下に説明する線形予測分析部3011及び非平滑化振幅スペクトル包絡系列生成部3012の処理により、非平滑化振幅スペクトル包絡系列を生成することによりスペクトル包絡の推定を行う。
パラメータη0は所定の方法で定められるとする。例えば、η0を0より大きい所定の数とする。例えば、η0=1とする。また、現在パラメータηを求めようとしているフレームよりも前のフレームで求まったηを用いてもよい。現在パラメータηを求めようとしているフレーム(以下、現フレームとする。)よりも前のフレームとは、例えば現フレームよりも前のフレームであって現フレームの近傍のフレームである。現フレームの近傍のフレームは、例えば現フレームの直前のフレームである。
[線形予測分析部3011]
線形予測分析部3011には、スペクトル包絡推定部301に入力された整数系列x_1,x_2, …, x_Lが入力される。
線形予測分析部3011には、スペクトル包絡推定部301に入力された整数系列x_1,x_2, …, x_Lが入力される。
線形予測分析部3011は、入力された整数系列x_1, x_2, …, x_Lを用いて、以下の式(19)により定義される~R(0), ~R(1), …, ~R(L-1)を線形予測分析して線形予測係数β1, β2, …, βpを生成する。
生成された線形予測係数β1, β2, …, βpは、非平滑化振幅スペクトル包絡系列生成部3012に出力される。
具体的には、線形予測分析部3011は、まず整数系列x_1, x_2, …, x_Lに含まれる各整数値の絶対値のη0乗をパワースペクトルの各値と見做した逆フーリエ変換に相当する演算、すなわち式(19)の演算を行うことにより、整数系列x_1, x_2, …, x_Lに含まれる各整数値の絶対値のη乗による系列に対応する時間領域の信号列である擬似相関関数信号列~R(0), ~R(1), …, ~R(L-1)を求める。そして、線形予測分析部3011は、求まった擬似相関関数信号列~R(0), ~R(1), …, ~R(L-1)を用いて線形予測分析を行って、線形予測係数β1, β2, …, βpを生成する。
線形予測係数β1, β2, …, βpは、整数系列x_1, x_2, …, x_Lに含まれる各整数値の絶対値のη0乗をパワースペクトルの各値と見做したときの時間領域の信号に対応する線形予測係数である。
このようにして、線形予測分析部3011は、整数系列x_1, x_2, …, x_Lに含まれる各整数値の絶対値のη乗をパワースペクトルの各値と見做した逆フーリエ変換を行うことにより得られる疑似相関関数信号列を用いて線形予測分析を行い、線形予測係数を生成する(ステップS3011)。
[非平滑化振幅スペクトル包絡系列生成部3012]
非平滑化振幅スペクトル包絡系列生成部3012には、線形予測分析部3011が生成した線形予測係数β1, β2, …, βpが入力される。
非平滑化振幅スペクトル包絡系列生成部3012には、線形予測分析部3011が生成した線形予測係数β1, β2, …, βpが入力される。
非平滑化振幅スペクトル包絡系列生成部3012は、線形予測係数β1, β2, …, βpに対応する振幅スペクトル包絡の系列である非平滑化振幅スペクトル包絡系列H(0), H(1), …, H(L-1)を生成する。
生成された非平滑化振幅スペクトル包絡系列H(0), H(1), …, H(L-1)は、白色化スペクトル系列生成部302に出力される。
非平滑化振幅スペクトル包絡系列生成部3012は、線形予測係数β1, β2, …, βpを用いて、非平滑化振幅スペクトル包絡系列H(0), H(1), …, H(L-1)として、式(20)により定義される非平滑化振幅スペクトル包絡系列H(0), H(1), …, H(L-1)を生成する。
このようにして、非平滑化振幅スペクトル包絡系列生成部3012は、疑似相関関数信号列に対応する振幅スペクトル包絡の系列を1/η0乗した系列である非平滑化スペクトル包絡系列を線形予測分析部3011により生成された線形予測係数に基づいて得ることによりスペクトル包絡の推定を行う(ステップ3012)。
[白色化スペクトル系列生成部302]
白色化スペクトル系列生成部302には、パラメータ決定部30に入力された整数系列x_1, x_2, …, x_L及び非平滑化振幅スペクトル包絡生成部3012が生成した非平滑化振幅スペクトル包絡系列H(0), H(1), …, H(L-1)が入力される。
白色化スペクトル系列生成部302には、パラメータ決定部30に入力された整数系列x_1, x_2, …, x_L及び非平滑化振幅スペクトル包絡生成部3012が生成した非平滑化振幅スペクトル包絡系列H(0), H(1), …, H(L-1)が入力される。
白色化スペクトル系列生成部302は、整数系列x_1, x_2, …, x_Lに含まれる各整数値を、対応する非平滑化振幅スペクトル包絡系列H(0), H(1), …, H(L-1)の各値で除算することにより、白色化スペクトル系列XW(0), XW(1), …, XW(L-1)を生成する。
生成された白色化スペクトル系列XW(0), XW(1), …, XW(L-1)は、パラメータ取得部303に出力される。
白色化スペクトル系列生成部302は、例えば、k=0, 1, …, L-1として、整数系列x_1, x_2, …, x_Lの各整数値x_kを非平滑化振幅スペクトル包絡系列H(0), H(1), …, H(L-1)の各値H(k)で除算することにより、白色化スペクトル系列XW(0), XW(1), …, XW(L-1)の各値XW(k)を生成する。すなわち、k=0, 1, …, L-1として、XW(k)=x_k/H(k)である。
このようにして、白色化スペクトル系列生成部302は、例えば非平滑化振幅スペクトル包絡系列であるスペクトル包絡の各値で整数系列に含まれる各整数値を除算した系列である白色化スペクトル系列を得る(ステップS302)。
[パラメータ取得部303]
パラメータ取得部303には、白色化スペクトル系列生成部302が生成した白色化スペクトル系列XW(0), XW(1), …, XW(L-1)が入力される。
パラメータ取得部303には、白色化スペクトル系列生成部302が生成した白色化スペクトル系列XW(0), XW(1), …, XW(L-1)が入力される。
パラメータ取得部303は、パラメータηを形状パラメータとする一般化ガウス分布が白色化スペクトル系列XW(0), XW(1), …, XW(L-1)のヒストグラムを近似するパラメータηを求める(ステップS303)。言い換えれば、パラメータ取得部303は、パラメータηを形状パラメータとする一般化ガウス分布が白色化スペクトル系列XW(0), XW(1), …, XW(L-1)のヒストグラムの分布に近くなるようなパラメータηを決定する。
パラメータηを形状パラメータとする一般化ガウス分布は、例えば以下のように定義される。Γは、ガンマ関数である。
一般化ガウス分布は、形状パラメータであるηを変えることにより、図12のようにη=1の時はラプラス分布、η=2の時はガウス分布、といったように様々な分布を表現することができるものである。φは分散に対応するパラメータである。
ここで、パラメータ取得部303が求めるηは、例えば以下の式(21)により定義される。F-1は、関数Fの逆関数である。この式は、いわゆるモーメント法により導出されるものである。
パラメータ取得部303は、式(21)で定義されるηの値を計算するために、例えば以下に説明する第一方法又は第二方法によりパラメータηを求めてもよい。
パラメータηを求めるための第一方法について説明する。第一方法では、パラメータ取得部303は、白色化スペクトル系列に基づいてm1/((m2)1/2)を計算し、予め用意しておいた異なる複数の、パラメータηと当該パラメータηに対応するF(η)と当該パラメータηに対応するパラメータ符号の組を参照して、計算されたm1/((m2)1/2)に最も近いF(η)に対応するパラメータηと当該パラメータηに対応するパラメータ符号とを取得して出力する。
予め用意しておいた異なる複数の、パラメータηと当該パラメータηに対応するF(η)と当該パラメータηに対応するパラメータ符号の組は、パラメータ取得部303の記憶部3031に予め記憶しておく。パラメータ取得部303は、記憶部3031を参照して、計算されたm1/((m2)1/2)に最も近いF(η)を見つけ、見つかったF(η)に対応するパラメータηと当該パラメータηに対応するパラメータ符号とを記憶部3031から読み込み出力する。
計算されたm1/((m2)1/2)に最も近いF(η)とは、計算されたm1/((m2)1/2)との差の絶対値が最も小さくなるF(η)のことである。
パラメータηを求めるための第二方法について説明する。第二方法では、逆関数F-1の近似曲線関数を例えば以下の式(21')で表される~F-1として、パラメータ取得部303は、白色化スペクトル系列に基づいてm1/((m2)1/2)を計算し、近似曲線関数~F-1に計算されたm1/((m2)1/2)を入力したときの出力値を計算することによりηを求め、求めたパラメータηとそのパラメータηを表す符号であるパラメータ符号とを出力する。この近似曲線関数~F-1は使用する定義域において出力が正値となる単調増加関数であればよい。
なお、パラメータ取得部303が求めるηは、式(21)ではなく、式(21'')のように予め定めた正の整数q1及びq2を用いて(ただしq1<q2)式(21)を一般化した式により定義されてもよい。
なお、ηが式(21'')により定義される場合も、ηが式(21)により定義されている場合と同様の方法により、ηを求めることができる。すなわち、パラメータ取得部303が、白色化スペクトル系列に基づいてそのq1次モーメントであるmq1とそのq2次モーメントであるmq2とに基づく値mq1/((mq2)q1/q2)を計算した後、例えば上記の第一方法及び第二方法と同様、予め用意しておいた異なる複数の、ηと対応するF'(η)のペアを参照して、計算されたmq1/((mq2)q1/q2)に最も近いF'(η)に対応するηを取得するか、逆関数F'-1の近似曲線関数を~F'-1として、近似曲線関数~F-1に計算されたmq1/((mq2)q1/q2)を入力したときの出力値を計算してηを求めることができる。
このようにηは次数が異なる2つの異なるモーメントmq1, mq2に基づく値であるとも言える。例えば、次数が異なる2つの異なるモーメントmq1, mq2のうち、次数が低い方のモーメントの値又はこれに基づく値(以下、前者とする。)と次数が高い方のモーメントの値又はこれに基づく値(以下、後者とする)との比の値、この比の値に基づく値、又は、前者を後者で割って得られる値に基づき、ηを求めてもよい。モーメントに基づく値とは、例えば、そのモーメントをmとしQを所定の実数としてmQのことである。また、これらの値を近似曲線関数~F-1に入力してηを求めてもよい。この近似曲線関数~F'-1は上記同様、使用する定義域において出力が正値となる単調増加関数であればよい。
上述の図10および図11を参照した説明では、パラメータ決定部30に入力された整数系列x_1, x_2, …, x_Lが、例えばMDCT係数列である周波数領域サンプル列であるものとしたが、符号化装置に入力される信号が非負整の数値による周波数領域サンプル列に限定されるわけではなく、その他の信号であっても図10および図11のパラメータ決定部30を用いることができる。すなわち、符号化装置に入力される信号が、時間領域であっても周波数領域であっても、整数化や非負化がされていないものであっても、図10および図11のパラメータ決定部30を含む符号化装置は正しく機能させられるものである。
例えば、小数値や負値を含む時間領域のディジタル信号が符号化装置に入力される場合、符号化装置は、図13に示すように、周波数領域変換部33と整数化部34と非負化部35とをさらに備え、入力された時間領域のディジタル信号を、周波数領域変換部33が、所定時間区間のフレームごとに例えばMDCT係数列に変換し、整数化部34および非負化部35が、そのMDCT係数列を整数化および非負化した上で、パラメータ決定部30と整数変換部31へ整数系列x_1, x_2, …, x_Lとして入力すればよい。整数化部34は、入力されたMDCT係数列の各値の小数部分を四捨五入したり、何らかの量子化値で除算してから小数部分を四捨五入したりして整数化を行う。非負化部35は、整数化後のMDCT係数列に含まれる負値を含む整数値を非負の整数値に一対一に全単写する変換や、正負を表す符号を別扱いとする変換などにより非負化を行う。整数化と非負化は順番を逆にする、すなわち、MDCT係数列を非負化した後に整数化してもよいし、整数化と非負化を同時に行ってもよい。
なお、小数値や負値を含む時間領域のディジタル信号が符号化装置に入力される場合においても、周波数領域の信号への変換を行わずに時間領域のままパラメータ決定部30へ入力してもよい。すなわち、入力される小数値や負値を含むディジタル信号が時間領域のものであっても周波数領域のものであっても、符号化装置は、図14に示すように、図13の構成において周波数領域変換部33を備えずに、所定時間区間のフレームごとのディジタル信号に対して整数化および非負化のみを行って得たサンプル列を整数系列x_1, x_2, …, x_Lとしてパラメータ決定部30と整数変換部31へ入力してもよい。
非負化部35の行う非負化処理が、値の大きさを大きく変える処理ではない場合(例えば、正負を表す符号を別扱いする場合など)、図15に示すように、整数変換部31には非負化部35が出力したサンプル列を整数系列x_1, x_2, …, x_Lとして入力するものの、パラメータ決定部30には非負化前のサンプル列を整数系列x_1, x_2, …, x_Lとしてパラメータ決定部30へ入力してもよい。
整数化部34の行う整数化処理が、所定時間区間のフレームごとのディジタル信号の全サンプル値を同じ量子化値で除算してから小数部分の四捨五入をする場合には、整数化をしてもしなくても理論上は同じηが求まることが多い。そのため、所定時間区間のフレームごとのディジタル信号の各サンプル値の小数部分を四捨五入することにより整数化を行う場合や、所定時間区間のフレームごとのディジタル信号の全サンプル値を同じ量子化値で除算してから小数部分の四捨五入をする場合には、整数変換部31には非負化部35が出力したサンプル列を整数系列x_1, x_2, …, x_Lとして入力するものの、パラメータ決定部30には整数化部34に入力する前のサンプル列を整数系列x_1, x_2, …, x_Lに代えてパラメータ決定部30に入力して用いてもよい。ただし、量子化値があまりにも大きい場合には、整数化した後の整数系列から求めたパラメータηと整数化前のサンプル系列を用いて求めたパラメータηに、整数化した後の整数系列から求めたパラメータηからの無視できない計算誤差が出てくることには注意すべきである。
[整数変換部31]
整数変換部31には、符号化装置に入力された整数値による系列のうちの、Lサンプルずつの整数値による系列である整数系列x_1, x_2, …, x_Lと、パラメータ決定部30が出力した指標値が入力される。ここで、整数変換部31に入力される整数系列x_1, x_2, …, x_Lは、パラメータ決定部30から入力された指標値を求める際に用いたのと同じ整数系列である。整数変換部31は、入力された指標値に基づいて、入力された整数系列x_1, x_2, …, x_L中の複数個の整数値による整数組のそれぞれについて代数的に表現可能な全単射な変換により1つの整数値を得ることと、入力された整数系列x_1, x_2, …, x_L中の整数値のそれぞれについて代数的に表現可能な全単射な変換により複数個の整数値を得ることと、の少なくとも何れかを含む動作により得た整数値による系列を変換後整数系列として出力する(ステップS31)。
整数変換部31には、符号化装置に入力された整数値による系列のうちの、Lサンプルずつの整数値による系列である整数系列x_1, x_2, …, x_Lと、パラメータ決定部30が出力した指標値が入力される。ここで、整数変換部31に入力される整数系列x_1, x_2, …, x_Lは、パラメータ決定部30から入力された指標値を求める際に用いたのと同じ整数系列である。整数変換部31は、入力された指標値に基づいて、入力された整数系列x_1, x_2, …, x_L中の複数個の整数値による整数組のそれぞれについて代数的に表現可能な全単射な変換により1つの整数値を得ることと、入力された整数系列x_1, x_2, …, x_L中の整数値のそれぞれについて代数的に表現可能な全単射な変換により複数個の整数値を得ることと、の少なくとも何れかを含む動作により得た整数値による系列を変換後整数系列として出力する(ステップS31)。
以下、整数変換部31が行う動作の例を説明する。なお、整数変換部31の動作は下記の例に限らず、第一実施形態から第四実施形態の符号化装置の整数変換部のうちの複数の動作を入力された指標値に基づいて切り替えたり、第三実施形態や第四実施形態の符号化装置の整数変換部のMの値を入力された指標値に基づいて切り替えたり、これらのうちの少なくとも何れかの動作と入力された整数系列をそのまま変換後整数系列として出力する動作とを入力された指標値に基づいて切り替えたり、してもよい。また、下記の例では、入力された指標値がパラメータηである場合について説明するが、指標値はパラメータηに限らず、整数系列の分布の性質を表す指標値でありパラメータ符号に対応するものであればよい。
[[例1-1:第一実施形態の符号化装置の整数変換部11の動作と第二実施形態の符号化装置の整数変換部13の動作をパラメータηに基づいて切り替える例]]
整数変換部31は、入力されたパラメータηが予め設定した閾値を超える場合、例えばη>1である場合には、2N=Lである自然数Nを得て、入力された整数系列x_1, x_2, …, x_Lを整数系列x_1, x_2, …, x_2Nとして、整数系列x_1, x_2, …, x_2Nから第一実施形態の符号化装置の整数変換部11と同様の所定の規則に従って2つの整数値による整数組をN組得て、得たN組の整数組それぞれについて第一実施形態の符号化装置の整数変換部11と同様の代数的に表現可能な全単射な変換により1つの整数値を得て、得たN個の整数値による系列y_1, y_2, …, y_Nを変換後整数系列として整数符号化部32に出力する。
整数変換部31は、入力されたパラメータηが予め設定した閾値を超える場合、例えばη>1である場合には、2N=Lである自然数Nを得て、入力された整数系列x_1, x_2, …, x_Lを整数系列x_1, x_2, …, x_2Nとして、整数系列x_1, x_2, …, x_2Nから第一実施形態の符号化装置の整数変換部11と同様の所定の規則に従って2つの整数値による整数組をN組得て、得たN組の整数組それぞれについて第一実施形態の符号化装置の整数変換部11と同様の代数的に表現可能な全単射な変換により1つの整数値を得て、得たN個の整数値による系列y_1, y_2, …, y_Nを変換後整数系列として整数符号化部32に出力する。
整数変換部31は、入力されたパラメータηが上記以外である場合には、N=Lとし、入力された整数系列x_1, x_2, …, x_Lを整数系列x_1, x_2, …, x_Nとして、整数系列x_1,x_2, …, x_N中のN個の整数値それぞれについて第二実施形態の符号化装置の整数変換部13と同様の代数的に表現可能な全単射な変換により2つの整数値を得て、得た2N個の整数値による系列y_1, y_2, …, y_2Nを変換後整数系列として整数符号化部32に出力する。
なお、例1-1の場合は、Lを偶数としておく。
[[例1-2:第三実施形態の符号化装置の整数変換部15のMの値をパラメータηに基づいて切り替える例]]
整数変換部31は、まず、入力されたパラメータηに最も近くかつLを割り切れる自然数Mと、LをMで割った商である自然数Nと、を得る。整数変換部31は、次に、入力された整数系列x_1, x_2, …, x_Lを整数系列x_1, x_2, …, x_MNとして、整数系列x_1, x_2, …, x_MNから第三実施形態の符号化装置の整数変換部15と同様の所定の規則に従ってM個の整数値による整数組をN組得て、N組の整数組それぞれについて第三実施形態の符号化装置の整数変換部15と同様の代数的に表現可能な全単射な変換により1つの整数値を得て、得たN個の整数値による系列y_1, y_2, …, y_Nを変換後整数系列として整数符号化部32に出力する。
整数変換部31は、まず、入力されたパラメータηに最も近くかつLを割り切れる自然数Mと、LをMで割った商である自然数Nと、を得る。整数変換部31は、次に、入力された整数系列x_1, x_2, …, x_Lを整数系列x_1, x_2, …, x_MNとして、整数系列x_1, x_2, …, x_MNから第三実施形態の符号化装置の整数変換部15と同様の所定の規則に従ってM個の整数値による整数組をN組得て、N組の整数組それぞれについて第三実施形態の符号化装置の整数変換部15と同様の代数的に表現可能な全単射な変換により1つの整数値を得て、得たN個の整数値による系列y_1, y_2, …, y_Nを変換後整数系列として整数符号化部32に出力する。
なお、M×N=Lとなる自然数Mと自然数Nの組合せを整数変換部31内に予め記憶しておき、記憶された組合せの中から入力されたパラメータηに最も近い自然数Mとその自然数Mと組合せられた自然数Nとを得てもよい。
[[例1-3:第四実施形態の符号化装置の整数変換部17のMの値をパラメータηに基づいて切り替える例]]
整数変換部31は、まず、入力されたパラメータηの逆数に最も近い自然数Mを得る。整数変換部31は、次に、入力された整数系列x_1, x_2, …, x_L中のL個の整数値それぞれについて第四実施形態の符号化装置の整数変換部17と同様の代数的に表現可能な全単射な変換によりM個の整数値を得て、得たML個(M×L個)の整数値による系列y_1, y_2, …, y_MLを変換後整数系列として整数符号化部32に出力する。
整数変換部31は、まず、入力されたパラメータηの逆数に最も近い自然数Mを得る。整数変換部31は、次に、入力された整数系列x_1, x_2, …, x_L中のL個の整数値それぞれについて第四実施形態の符号化装置の整数変換部17と同様の代数的に表現可能な全単射な変換によりM個の整数値を得て、得たML個(M×L個)の整数値による系列y_1, y_2, …, y_MLを変換後整数系列として整数符号化部32に出力する。
[[例1-4:第三実施形態の符号化装置の整数変換部15の動作と第四実施形態の符号化装置の整数変換部17の動作をパラメータηに基づいて切り替え、かつ、第三実施形態の符号化装置の整数変換部15のMの値と第四実施形態の符号化装置の整数変換部17のMの値をパラメータηに基づいて切り替える例]]
整数変換部31は、入力されたパラメータηが1以上である場合には、例1-2と同様に、まず、入力されたパラメータηに最も近くかつLを割り切れる自然数Mと、LをMで割った商である自然数Nと、を得る。整数変換部31は、次に、入力された整数系列x_1, x_2,…, x_Lを整数系列x_1, x_2, …, x_MNとして、整数系列x_1, x_2, …, x_MNから第三実施形態の符号化装置の整数変換部15と同様の所定の規則に従ってM個の整数値による整数組をN組得て、得たN組の整数組それぞれについて第三実施形態の符号化装置の整数変換部15と同様の代数的に表現可能な全単射な変換により1つの整数値を得て、得たN個の整数値による系列y_1, y_2, …, y_Nを変換後整数系列として整数符号化部32に出力する。
整数変換部31は、入力されたパラメータηが1以上である場合には、例1-2と同様に、まず、入力されたパラメータηに最も近くかつLを割り切れる自然数Mと、LをMで割った商である自然数Nと、を得る。整数変換部31は、次に、入力された整数系列x_1, x_2,…, x_Lを整数系列x_1, x_2, …, x_MNとして、整数系列x_1, x_2, …, x_MNから第三実施形態の符号化装置の整数変換部15と同様の所定の規則に従ってM個の整数値による整数組をN組得て、得たN組の整数組それぞれについて第三実施形態の符号化装置の整数変換部15と同様の代数的に表現可能な全単射な変換により1つの整数値を得て、得たN個の整数値による系列y_1, y_2, …, y_Nを変換後整数系列として整数符号化部32に出力する。
整数変換部31は、入力されたパラメータηが上記以外である場合には、例1-3と同様に、まず、入力されたパラメータηの逆数に最も近い自然数Mを得る。整数変換部31は、次に、入力された整数系列x_1, x_2, …, x_L中のL個の整数値それぞれについて第四実施形態の符号化装置の整数変換部17と同様の代数的に表現可能な全単射な変換によりM個の整数値を得て、得たML個の整数値による系列y_1, y_2, …, y_MLを変換後整数系列として整数符号化部32に出力する。
[[例1-5:第一実施形態の符号化装置の整数変換部11の動作と入力された整数系列をそのまま変換後整数系列として出力する動作とをパラメータηに基づいて切り替える例]]
整数変換部31は、入力されたパラメータηが予め設定した閾値を超える場合、例えばη>1.5である場合には、2N=Lである自然数Nを得て、入力された整数系列x_1, x_2, …, x_Lを整数系列x_1, x_2, …, x_2Nとして、整数系列x_1, x_2, …, x_2Nから第一実施形態の符号化装置の整数変換部11と同様の所定の規則に従って2つの整数値による整数組をN組得て、得たN組の整数組それぞれについて第一実施形態の符号化装置の整数変換部11と同様の代数的に表現可能な全単射な変換により1つの整数値を得て、得たN個の整数値による系列y_1, y_2, …, y_Nを変換後整数系列として整数符号化部32に出力する。
整数変換部31は、入力されたパラメータηが予め設定した閾値を超える場合、例えばη>1.5である場合には、2N=Lである自然数Nを得て、入力された整数系列x_1, x_2, …, x_Lを整数系列x_1, x_2, …, x_2Nとして、整数系列x_1, x_2, …, x_2Nから第一実施形態の符号化装置の整数変換部11と同様の所定の規則に従って2つの整数値による整数組をN組得て、得たN組の整数組それぞれについて第一実施形態の符号化装置の整数変換部11と同様の代数的に表現可能な全単射な変換により1つの整数値を得て、得たN個の整数値による系列y_1, y_2, …, y_Nを変換後整数系列として整数符号化部32に出力する。
整数変換部31は、入力されたパラメータηが上記以外である場合には、入力された整数系列x_1, x_2, …, x_Lをそのまま変換後整数系列y_1, y_2, …, y_Lとして整数符号化部32に出力する。
[整数符号化部32]
整数符号化部32には、整数変換部31が出力した変換後整数系列が入力される。整数符号化部32は、第一実施形態から第四実施形態の符号化装置の整数符号化部と同様に、入力された変換後整数系列に含まれる各整数値をGolomb-Rice符号化して、すなわち、各整数値に対する所定のRiceパラメータrにおけるGolomb-Rice符号をそれぞれ得て、得た符号による符号群を整数符号として出力する(ステップS32)。
整数符号化部32には、整数変換部31が出力した変換後整数系列が入力される。整数符号化部32は、第一実施形態から第四実施形態の符号化装置の整数符号化部と同様に、入力された変換後整数系列に含まれる各整数値をGolomb-Rice符号化して、すなわち、各整数値に対する所定のRiceパラメータrにおけるGolomb-Rice符号をそれぞれ得て、得た符号による符号群を整数符号として出力する(ステップS32)。
≪復号装置≫
図17および図18を参照して、第五実施形態の復号装置が実行する復号方法の処理手続きを説明する。第五実施形態の復号装置は、図17に示すように、パラメータ復号部40と整数復号部41と整数逆変換部42とからなる。この復号装置が図18に示す各ステップの処理を実行することにより、第五実施形態の復号方法が実現される。
図17および図18を参照して、第五実施形態の復号装置が実行する復号方法の処理手続きを説明する。第五実施形態の復号装置は、図17に示すように、パラメータ復号部40と整数復号部41と整数逆変換部42とからなる。この復号装置が図18に示す各ステップの処理を実行することにより、第五実施形態の復号方法が実現される。
第五実施形態の復号装置には、第五実施形態の符号化装置が出力したパラメータ符号と整数符号が入力される。
[パラメータ復号部40]
パラメータ復号部40には、復号装置に入力されたパラメータ符号が入力される。パラメータ復号部40は、パラメータ決定部30がパラメータ符号を得たのと対応する復号処理により、パラメータ符号を復号して指標値を得て出力する。例えば、符号化装置のパラメータ決定部30がパラメータηからパラメータ符号を得た場合には、パラメータ復号部40はパラメータ符号を復号してパラメータηを得て出力する(ステップS40)。
パラメータ復号部40には、復号装置に入力されたパラメータ符号が入力される。パラメータ復号部40は、パラメータ決定部30がパラメータ符号を得たのと対応する復号処理により、パラメータ符号を復号して指標値を得て出力する。例えば、符号化装置のパラメータ決定部30がパラメータηからパラメータ符号を得た場合には、パラメータ復号部40はパラメータ符号を復号してパラメータηを得て出力する(ステップS40)。
[整数復号部41]
整数復号部41には、復号装置に入力された整数符号が入力される。整数復号部41は、第一実施形態から第四実施形態の復号装置の整数復号部と同様に、入力された各整数符号をGolomb-Rice復号して、すなわち、所定のRiceパラメータrにおけるGolomb-Rice符号である各整数符号から整数値それぞれを得て、得た整数値による系列を変換後整数系列として整数逆変換部42に出力する(ステップS41)。
整数復号部41には、復号装置に入力された整数符号が入力される。整数復号部41は、第一実施形態から第四実施形態の復号装置の整数復号部と同様に、入力された各整数符号をGolomb-Rice復号して、すなわち、所定のRiceパラメータrにおけるGolomb-Rice符号である各整数符号から整数値それぞれを得て、得た整数値による系列を変換後整数系列として整数逆変換部42に出力する(ステップS41)。
[整数逆変換部42]
整数逆変換部42には、整数復号部41が出力した変換後整数系列と、パラメータ復号部40が出力した指標値と、が入力される。整数逆変換部42は、入力された指標値に基づき、第五実施形態の符号化装置の整数変換部31が行った動作と対応する動作により、入力された変換後整数系列中の整数値のそれぞれについて代数的に表現可能な全単射な変換により複数個の整数値を得ることと、入力された変換後整数系列中の複数個の整数値による整数組のそれぞれついて代数的に表現可能な全単射な変換により1つの整数値を得ることと、の少なくとも何れかを含む動作により得た整数値による系列を整数系列として出力する(ステップS42)。
整数逆変換部42には、整数復号部41が出力した変換後整数系列と、パラメータ復号部40が出力した指標値と、が入力される。整数逆変換部42は、入力された指標値に基づき、第五実施形態の符号化装置の整数変換部31が行った動作と対応する動作により、入力された変換後整数系列中の整数値のそれぞれについて代数的に表現可能な全単射な変換により複数個の整数値を得ることと、入力された変換後整数系列中の複数個の整数値による整数組のそれぞれついて代数的に表現可能な全単射な変換により1つの整数値を得ることと、の少なくとも何れかを含む動作により得た整数値による系列を整数系列として出力する(ステップS42)。
以下、整数逆変換部42が行う動作の例を説明する。なお、整数逆変換部42の動作は下記の例に限らず、第五実施形態の符号化装置の整数変換部31の動作と対応する動作であれば、第一実施形態から第四実施形態の復号装置の整数逆変換部のうちの複数の動作を入力された指標値に基づいて切り替えたり、第三実施形態や第四実施形態の復号装置の整数逆変換部のMの値を入力された指標値に基づいて切り替えたり、これらのうちの少なくとも何れかの動作と入力された変換後整数系列をそのまま整数系列として出力する動作とを入力された指標値に基づいて切り替えたり、してもよい。
[[例2-1:第一実施形態の復号装置の整数逆変換部22の動作と第二実施形態の復号装置の整数逆変換部24の動作をパラメータηに基づいて切り替える例]]
整数逆変換部42は、入力されたパラメータηが予め設定した閾値を超える場合、例えばη>1である場合には、入力された変換後整数系列がN個の変換後整数による系列y_1, y_2, …, y_Nであるとして、入力された変換後整数系列y_1, y_2, …, y_N中のN個の整数値それぞれについて第一実施形態の符号化装置の整数変換部11が行った変換と逆の変換を行って2つの整数値による整数組をN組得て、得たN組の整数組から第一実施形態の符号化装置の整数変換部11が行った規則と対応する規則に従って2N個の整数値による系列である整数系列x_1, x_2, …, x_2Nを得て出力する。
整数逆変換部42は、入力されたパラメータηが予め設定した閾値を超える場合、例えばη>1である場合には、入力された変換後整数系列がN個の変換後整数による系列y_1, y_2, …, y_Nであるとして、入力された変換後整数系列y_1, y_2, …, y_N中のN個の整数値それぞれについて第一実施形態の符号化装置の整数変換部11が行った変換と逆の変換を行って2つの整数値による整数組をN組得て、得たN組の整数組から第一実施形態の符号化装置の整数変換部11が行った規則と対応する規則に従って2N個の整数値による系列である整数系列x_1, x_2, …, x_2Nを得て出力する。
整数逆変換部42は、入力されたパラメータηが上記以外である場合には、入力された変換後整数系列が2N個の変換後整数による系列y_1, y_2, …, y_2Nであるとして、入力された変換後整数系列y_1, y_2, …, y_2Nから2つの整数値による整数組をN組得て、得たN組の整数組それぞれについて第二実施形態の符号化装置の整数変換部13が行った変換と逆の変換を行って1つの整数値を得て、得たN個の整数値による系列である整数系列x_1, x_2, …, x_Nを出力する。
[[例2-2:第三実施形態の復号装置の整数逆変換部26のMの値をパラメータηに基づいて切り替える例]]
整数逆変換部42は、まず、入力されたパラメータηに最も近くかつLを割り切れる自然数Mと、LをMで割った商である自然数Nと、を得る。整数逆変換部42は、次に、入力された変換後整数系列がN個の変換後整数による系列y_1, y_2, …, y_Nであるとして、入力された変換後整数系列y_1, y_2, …, y_N中のN個の整数値それぞれについて第三実施形態の符号化装置の整数変換部15が行った変換と逆の変換を行ってM個の整数値による整数組をN組得て、得たN組の整数組から第三実施形態の符号化装置の整数変換部15が行った規則と対応する規則に従ってMN個の整数値による系列である整数系列x_1, x_2, …, x_MNを得て出力する。
整数逆変換部42は、まず、入力されたパラメータηに最も近くかつLを割り切れる自然数Mと、LをMで割った商である自然数Nと、を得る。整数逆変換部42は、次に、入力された変換後整数系列がN個の変換後整数による系列y_1, y_2, …, y_Nであるとして、入力された変換後整数系列y_1, y_2, …, y_N中のN個の整数値それぞれについて第三実施形態の符号化装置の整数変換部15が行った変換と逆の変換を行ってM個の整数値による整数組をN組得て、得たN組の整数組から第三実施形態の符号化装置の整数変換部15が行った規則と対応する規則に従ってMN個の整数値による系列である整数系列x_1, x_2, …, x_MNを得て出力する。
なお、M×N=Lとなる自然数Mと自然数Nの組合せを整数逆変換部42内に予め記憶しておき、記憶された組合せの中から入力されたパラメータηに最も近い自然数Mとその自然数Mと組合せられた自然数Nとを得てもよい。
[[例2-3:第四実施形態の復号装置の整数逆変換部28のMの値をパラメータηに基づいて切り替える例]]
整数逆変換部42は、まず、入力されたパラメータηの逆数に最も近い自然数Mを得る。整数逆変換部42は、次に、入力された変換後整数系列がML個の変換後整数による系列y_1, y_2, …, y_MLであるとして、入力された変換後整数系列y_1, y_2, …, y_MLから第四実施形態の符号化装置の整数変換部17が行った規則と対応する規則に従ってM個の整数値による整数組をL組得て、得たL組の整数組それぞれについて第四実施形態の符号化装置の整数変換部17が行った変換と逆の変換を行って1つの整数値を得て、得たL個の整数値による系列である整数系列x_1, x_2, …, x_Lを出力する。
整数逆変換部42は、まず、入力されたパラメータηの逆数に最も近い自然数Mを得る。整数逆変換部42は、次に、入力された変換後整数系列がML個の変換後整数による系列y_1, y_2, …, y_MLであるとして、入力された変換後整数系列y_1, y_2, …, y_MLから第四実施形態の符号化装置の整数変換部17が行った規則と対応する規則に従ってM個の整数値による整数組をL組得て、得たL組の整数組それぞれについて第四実施形態の符号化装置の整数変換部17が行った変換と逆の変換を行って1つの整数値を得て、得たL個の整数値による系列である整数系列x_1, x_2, …, x_Lを出力する。
[[例2-4:第三実施形態の復号装置の整数逆変換部26の動作と第四実施形態の復号装置の整数逆変換部28の動作をパラメータηに基づいて切り替え、かつ、第三実施形態の復号装置の整数逆変換部26のMの値と第四実施形態の復号装置の整数逆変換部28のMの値をパラメータηに基づいて切り替える例]]
整数逆変換部42は、入力されたパラメータηが1以上である場合には、例2-2と同様に、まず、入力されたパラメータηに最も近くかつLを割り切れる自然数Mと、LをMで割った商である自然数Nと、を得る。整数逆変換部42は、次に、入力された変換後整数系列がN個の変換後整数による系列y_1, y_2, …, y_Nであるとして、入力された変換後整数系列y_1, y_2, …, y_N中のN個の整数値それぞれについて第三実施形態の符号化装置の整数変換部15が行った変換と逆の変換を行ってM個の整数値による整数組をN組得て、得たN組の整数組から第三実施形態の符号化装置の整数変換部15が行った規則と対応する規則に従ってMN個の整数値による系列である整数系列x_1, x_2, …, x_MNを得て出力する。
整数逆変換部42は、入力されたパラメータηが1以上である場合には、例2-2と同様に、まず、入力されたパラメータηに最も近くかつLを割り切れる自然数Mと、LをMで割った商である自然数Nと、を得る。整数逆変換部42は、次に、入力された変換後整数系列がN個の変換後整数による系列y_1, y_2, …, y_Nであるとして、入力された変換後整数系列y_1, y_2, …, y_N中のN個の整数値それぞれについて第三実施形態の符号化装置の整数変換部15が行った変換と逆の変換を行ってM個の整数値による整数組をN組得て、得たN組の整数組から第三実施形態の符号化装置の整数変換部15が行った規則と対応する規則に従ってMN個の整数値による系列である整数系列x_1, x_2, …, x_MNを得て出力する。
整数逆変換部42は、入力されたパラメータηが上記以外である場合には、例2-3と同様に、まず、入力されたパラメータηの逆数に最も近い自然数Mを得る。整数逆変換部42は、次に、入力された変換後整数系列がML個の変換後整数による系列y_1, y_2, …, y_MLであるとして、入力された変換後整数系列y_1, y_2, …, y_MLから第四実施形態の符号化装置の整数変換部17が行った規則と対応する規則に従ってM個の整数値による整数組をL組得て、得たL組の整数組それぞれについて第四実施形態の符号化装置の整数変換部17が行った変換と逆の変換を行って1つの整数値を得て、得たL個の整数値による系列である整数系列x_1, x_2, …, x_Lを出力する。
[[例2-5:第一実施形態の整数逆変換部22の動作と入力された変換後整数系列をそのまま整数系列として出力する動作とをパラメータηに基づいて切り替える例]]
整数逆変換部42は、入力されたパラメータηが予め設定した閾値を超える場合、例えばη>1.5である場合には、入力された変換後整数系列がN個の変換後整数による系列y_1, y_2, …, y_Nであるとして、入力された変換後整数系列y_1, y_2, …, y_N中のN個の整数値それぞれについて第一実施形態の符号化装置の整数変換部11が行った変換と逆の変換を行って2つの整数値による整数組をN組得て、得たN組の整数組から第一実施形態の符号化装置の整数変換部11が行った規則と対応する規則に従って2N個の整数値による系列である整数系列x_1, x_2, …, x_2Nを得て出力する。
整数逆変換部42は、入力されたパラメータηが予め設定した閾値を超える場合、例えばη>1.5である場合には、入力された変換後整数系列がN個の変換後整数による系列y_1, y_2, …, y_Nであるとして、入力された変換後整数系列y_1, y_2, …, y_N中のN個の整数値それぞれについて第一実施形態の符号化装置の整数変換部11が行った変換と逆の変換を行って2つの整数値による整数組をN組得て、得たN組の整数組から第一実施形態の符号化装置の整数変換部11が行った規則と対応する規則に従って2N個の整数値による系列である整数系列x_1, x_2, …, x_2Nを得て出力する。
整数逆変換部42は、入力されたパラメータηが上記以外である場合には、入力された変換後整数系列をそのまま整数系列として出力する。
≪作用効果≫
第五実施形態によれば、符号化装置に入力された整数値による系列中の部分系列ごとに分布の密や疎の度合いが異なる系列、すなわち、部分系列ごとに整数値の分布がラプラス分布より密であったり疎であったり、部分系列ごとに整数値の分布がラプラス分布よりも密や疎な度合いが大きかったり小さかったりする系列であっても、Golomb-Rice符号化よりも短いビット長となる符号化処理とその符号化処理に対応する復号処理を実現することができる。
第五実施形態によれば、符号化装置に入力された整数値による系列中の部分系列ごとに分布の密や疎の度合いが異なる系列、すなわち、部分系列ごとに整数値の分布がラプラス分布より密であったり疎であったり、部分系列ごとに整数値の分布がラプラス分布よりも密や疎な度合いが大きかったり小さかったりする系列であっても、Golomb-Rice符号化よりも短いビット長となる符号化処理とその符号化処理に対応する復号処理を実現することができる。
<第六実施形態>
第一実施形態および第三実施形態では符号化装置の整数符号化部で変換後整数系列をGolomb-Rice符号化して、符号化により得たGolomb-Rice符号を整数符号として出力する形態を説明したが、変換後整数系列をGolomb-Rice符号化ではない符号化方式で符号化して、符号化により得た符号を整数符号として出力する構成に変更してもよい。この場合、対応する復号装置の整数復号部は、符号化装置の整数符号化部が行った符号化方式に対応する復号方式で、整数符号を復号して変換後整数系列を得るようにする。
第一実施形態および第三実施形態では符号化装置の整数符号化部で変換後整数系列をGolomb-Rice符号化して、符号化により得たGolomb-Rice符号を整数符号として出力する形態を説明したが、変換後整数系列をGolomb-Rice符号化ではない符号化方式で符号化して、符号化により得た符号を整数符号として出力する構成に変更してもよい。この場合、対応する復号装置の整数復号部は、符号化装置の整数符号化部が行った符号化方式に対応する復号方式で、整数符号を復号して変換後整数系列を得るようにする。
≪符号化装置≫
第六実施形態の符号化装置は、第一実施形態および第三実施形態の符号化装置の整数符号化部12および16を、変換後整数系列をGolomb-Rice符号化ではない符号化方式で符号化するように変更したものである。第六実施形態の符号化装置は、第一実施形態および第三実施形態の符号化装置と同様に、図2に示すように整数変換部11または15、および整数符号化部20を例えば備え、図3に示す各ステップの処理を実行することにより、第六実施形態の符号化方法が実現される。
第六実施形態の符号化装置は、第一実施形態および第三実施形態の符号化装置の整数符号化部12および16を、変換後整数系列をGolomb-Rice符号化ではない符号化方式で符号化するように変更したものである。第六実施形態の符号化装置は、第一実施形態および第三実施形態の符号化装置と同様に、図2に示すように整数変換部11または15、および整数符号化部20を例えば備え、図3に示す各ステップの処理を実行することにより、第六実施形態の符号化方法が実現される。
第六実施形態の符号化装置の第一実施形態および第三実施形態の符号化装置からの変更箇所は整数符号化部のみであるので、以下では整数符号化部20についてのみ説明する。
[整数符号化部20]
整数符号化部20には、整数変換部11または15が出力した変換後整数系列y_1, y_2, …, y_Nが入力される。整数符号化部20は、変換後整数系列y_1, y_2, …, y_Nに含まれる各整数値を符号化して符号C_1, C_2, …, C_Nをそれぞれ得て、得た符号による符号群を整数符号として出力する(ステップS20)。各整数値を符号化する方法は、変換後整数系列y_1, y_2, …, y_Nに含まれる整数値それぞれについて符号を得る方法であればどのような方法でもよい。
整数符号化部20には、整数変換部11または15が出力した変換後整数系列y_1, y_2, …, y_Nが入力される。整数符号化部20は、変換後整数系列y_1, y_2, …, y_Nに含まれる各整数値を符号化して符号C_1, C_2, …, C_Nをそれぞれ得て、得た符号による符号群を整数符号として出力する(ステップS20)。各整数値を符号化する方法は、変換後整数系列y_1, y_2, …, y_Nに含まれる整数値それぞれについて符号を得る方法であればどのような方法でもよい。
例えば、整数符号化部20は、変換後整数系列y_1, y_2, …, y_Nに含まれる各整数値に割り当てるビット数を決定し、決定したビット数で各整数値を符号化して得た符号C_1,C_2, …, C_Nによる符号群を整数符号として出力する。より具体的には、整数符号化部20は、変換後整数系列y_1, y_2, …, y_Nに含まれる各整数値を二進数で表した符号を得て、得た各符号を決定したビット数に収めて符号C_1, C_2, …, C_Nとし、符号C_1, C_2, …, C_Nによる符号群を整数符号として出力する。
≪復号装置≫
第六実施形態の復号装置は、第一実施形態および第三実施形態の復号装置の整数復号部21および25を、整数符号を第六実施形態の符号化装置の整数符号化部20が行う符号化方式に対応する復号方式で復号するように変更したものである。第六実施形態の復号装置は、第一実施形態および第三実施形態の復号装置と同様に、図4に示すように整数復号部29、および整数逆変換部22または26を例えば備え、図5に示す各ステップの処理を実行することにより、第六実施形態の復号方法が実現される。
第六実施形態の復号装置は、第一実施形態および第三実施形態の復号装置の整数復号部21および25を、整数符号を第六実施形態の符号化装置の整数符号化部20が行う符号化方式に対応する復号方式で復号するように変更したものである。第六実施形態の復号装置は、第一実施形態および第三実施形態の復号装置と同様に、図4に示すように整数復号部29、および整数逆変換部22または26を例えば備え、図5に示す各ステップの処理を実行することにより、第六実施形態の復号方法が実現される。
第六実施形態の復号装置の第一実施形態および第三実施形態の復号装置からの変更箇所は整数復号部のみであるので、以下では整数復号部29についてのみ説明する。
[整数復号部29]
整数復号部29には、復号装置に入力された整数符号がN個ずつ入力される。ここで、入力された整数符号をC_1, C_2, …, C_Nとする。整数復号部29は、入力された整数符号C_1, C_2, …, C_Nを復号して、整数値y_1, y_2, …, y_Nそれぞれを得て、得た整数値による系列を変換後整数系列y_1, y_2, …, y_Nとして整数逆変換部22または26に出力する(ステップS29)。各整数符号を復号する方法は、対応する符号化装置の整数符号化部20が行った符号化方法に対応する復号方法である。すなわち、各整数符号を復号する方法は、整数符号に含まれる各符号C_1, C_2, …, C_Nそれぞれについて整数値を得る方法であり、1つの符号に対して1つの整数値を得る方法である。
整数復号部29には、復号装置に入力された整数符号がN個ずつ入力される。ここで、入力された整数符号をC_1, C_2, …, C_Nとする。整数復号部29は、入力された整数符号C_1, C_2, …, C_Nを復号して、整数値y_1, y_2, …, y_Nそれぞれを得て、得た整数値による系列を変換後整数系列y_1, y_2, …, y_Nとして整数逆変換部22または26に出力する(ステップS29)。各整数符号を復号する方法は、対応する符号化装置の整数符号化部20が行った符号化方法に対応する復号方法である。すなわち、各整数符号を復号する方法は、整数符号に含まれる各符号C_1, C_2, …, C_Nそれぞれについて整数値を得る方法であり、1つの符号に対して1つの整数値を得る方法である。
例えば、整数復号部29は、整数符号に含まれる各符号C_1, C_2, …, C_Nが表す二進数を各整数値y_1, y_2, …, y_Nとして得て、得た整数値による系列を変換後整数系列y_1, y_2, …, y_Nとして整数逆変換部22または26に出力する。
≪作用効果≫
第六実施形態の符号化装置によれば、変換後整数系列y_1, y_2, …, y_Nに含まれる整数値それぞれについて整数値のビット数である1つの符号が得られ、第六実施形態の復号装置によれば、整数値のビット数である1つの符号から変換後整数系列y_1, y_2, …, y_Nに含まれる整数値それぞれを得る。すなわち、変換後整数系列y_1, y_2, …, y_Nに含まれる整数値それぞれは1ビット単位での割り当てビット数の調整が行われて符号化されたことになる。このことは、第一実施形態の符号化装置から変更した第六実施形態の符号化装置であれば、符号化装置に入力された整数系列x_1, x_2, …, x_2Nに含まれる整数値それぞれは1/2ビット単位(2分の1ビット単位)での割り当てビット数の調整が行われて符号化されたことに相当し、第三実施形態の符号化装置から変更した第六実施形態の符号化装置であれば、符号化装置に入力された整数系列x_1, x_2, …, x_MNに含まれる整数値それぞれは1/Mビット単位(M分の1ビット単位)での割り当てビット数の調整が行われて符号化されたことに相当する。従って、第六実施形態によれば、1サンプルあたりに小数値のビット数を実質的に割り当てる符号化及び復号を実現することが可能となる。
第六実施形態の符号化装置によれば、変換後整数系列y_1, y_2, …, y_Nに含まれる整数値それぞれについて整数値のビット数である1つの符号が得られ、第六実施形態の復号装置によれば、整数値のビット数である1つの符号から変換後整数系列y_1, y_2, …, y_Nに含まれる整数値それぞれを得る。すなわち、変換後整数系列y_1, y_2, …, y_Nに含まれる整数値それぞれは1ビット単位での割り当てビット数の調整が行われて符号化されたことになる。このことは、第一実施形態の符号化装置から変更した第六実施形態の符号化装置であれば、符号化装置に入力された整数系列x_1, x_2, …, x_2Nに含まれる整数値それぞれは1/2ビット単位(2分の1ビット単位)での割り当てビット数の調整が行われて符号化されたことに相当し、第三実施形態の符号化装置から変更した第六実施形態の符号化装置であれば、符号化装置に入力された整数系列x_1, x_2, …, x_MNに含まれる整数値それぞれは1/Mビット単位(M分の1ビット単位)での割り当てビット数の調整が行われて符号化されたことに相当する。従って、第六実施形態によれば、1サンプルあたりに小数値のビット数を実質的に割り当てる符号化及び復号を実現することが可能となる。
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
<プログラム、記録媒体>
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
Claims (30)
- 入力された整数値による系列に含まれる複数個の整数値による組のそれぞれについて、代数的に表現可能な全単射な変換により、1つの整数値(以下、「変換後整数」という)を得る整数変換部と、
上記変換後整数それぞれを符号化して符号を得る整数符号化部と、
を含む符号化装置。 - 請求項1に記載の符号化装置であって、
上記整数符号化部は、上記変換後整数をゴロムライス符号化して符号を得るものである
符号化装置。 - 入力された整数値による系列に含まれる整数値それぞれについて、全単射な変換により、複数個の整数値(以下、「変換後整数」という)を得る整数変換部と、
上記変換後整数をゴロムライス符号化して符号を得る整数符号化部と、
を含む符号化装置。 - 入力された整数値による系列のうちの、所定個数の整数値による部分系列(以下「整数系列」という)ごとに、該整数系列における整数値の分布の性質に対応する指標値を得るパラメータ決定部と、
上記整数系列に含まれる複数個(MA個、MAは2以上の整数)の整数値による組のそれぞれについて、全単射な変換により、1つの整数値を変換後整数として得る変換処理(以下、「変換処理A」という)と、
上記整数系列に含まれる整数値それぞれについて、全単射な変換により、複数個(MB個、MBは2以上の整数)の整数値を変換後整数として得る変換処理(以下、「変換処理B」という)と、
の少なくとも何れかを含む複数個の選択肢の中から、上記指標値に基づいて変換処理を選択し、
選択した変換処理を上記整数系列に対して行うことにより変換後整数による系列を得る整数変換部と、
上記変換後整数による系列に含まれる各整数値をゴロムライス符号化して符号を得る整数符号化部と、
を含む符号化装置。 - 請求項4に記載の符号化装置であって、
上記複数個の選択肢には、
少なくとも異なる2つのMAの値それぞれに対応する変換処理Aと、
少なくとも異なる2つのMBの値それぞれに対応する変換処理Bと、
の少なくとも何れかが含まれている
符号化装置。 - 請求項4または5に記載の符号化装置であって、
上記パラメータ決定部は、
所定の方法で定められる正のパラメータη0を用いて上記整数系列に含まれる各整数値の絶対値のη0乗、または、上記整数系列に対応するサンプル系列に含まれる各サンプル値の絶対値のη0乗、をパワー系列の各値と見做して包絡を推定し、
その包絡の各値で上記整数系列に含まれる各整数値または上記サンプル系列に含まれる各サンプル値を除算した系列である白色化スペクトル系列を得、
パラメータηを形状パラメータとする一般化ガウス分布が上記白色化スペクトル系列のヒストグラムを近似する正のパラメータηを上記指標値として求めるものであり、
上記複数個の選択肢には、少なくとも異なる2つのMAそれぞれに対応する変換処理Aが含まれており、
上記指標値に基づく変換処理の選択においては、ηの値が大きいほどMAの値が大きい変換処理が選択される
符号化装置。 - 請求項4または5に記載の符号化装置であって、
上記パラメータ決定部は、
所定の方法で定められる正のパラメータη0を用いて上記整数系列に含まれる各整数値の絶対値のη0乗、または、上記整数系列に対応するサンプル系列に含まれる各サンプル値の絶対値のη0乗、をパワー系列の各値と見做して包絡を推定し、
その包絡の各値で上記整数系列に含まれる各整数値または上記サンプル系列に含まれる各サンプル値を除算した系列である白色化スペクトル系列を得、
パラメータηを形状パラメータとする一般化ガウス分布が上記白色化スペクトル系列のヒストグラムを近似する正のパラメータηを上記指標値として求めるものであり、
上記複数個の選択肢には、少なくとも異なる2つのMBそれぞれに対応する変換処理Bが含まれており、
上記指標値に基づく変換処理の選択においては、ηの値が小さいほどMBの値が大きい変換処理が選択される
符号化装置。 - 請求項4または5に記載の符号化装置であって、
上記パラメータ決定部は、
所定の方法で定められる正のパラメータη0を用いて上記整数系列に含まれる各整数値の絶対値のη0乗、または、上記整数系列に対応するサンプル系列に含まれる各サンプル値の絶対値のη0乗、をパワー系列の各値と見做して包絡を推定し、
その包絡の各値で上記整数系列に含まれる各整数値または上記サンプル系列に含まれる各サンプル値を除算した系列である白色化スペクトル系列を得、
パラメータηを形状パラメータとする一般化ガウス分布が上記白色化スペクトル系列のヒストグラムを近似する正のパラメータηを上記指標値として求めるものであり、
上記複数個の選択肢には、少なくとも1つの変換処理Aと少なくとも1つの変換処理Bとが含まれており、
上記指標値に基づく変換処理の選択においては、変換処理Aを選択する場合のηの値のほうが、変換処理Bを選択する場合のηの値よりも大きい
符号化装置。 - 請求項1から2、または、請求項4から8、の何れかに記載の符号化装置であって、
上記整数変換部は、MAを上記整数値による組に含まれる整数値の個数とし、x1, x2, …, xMAを上記整数値による組に含まれる整数値とし、次式を計算することで上記1つの整数値である変換後整数yを得るものであり、
上記式に用いる関数fM’は、xmaxをx1, x2, …, xM’の最大値とし、Kをx1, x2, …, xM’のうち最大値をとる整数値の個数とし、m1, m2, …, mKをx1, x2, …, xM’のうち最大値をとる整数値の番号とし、~x1, ~x2, …, ~xM’-Kをx1, x2, …, xM’のうち最大値をとるK個の整数値を除いた整数値とし、aCbをa個からb個を選択する組み合わせの数とし、f0を0とし、次式を計算する再帰的な関数である、
符号化装置。 - 請求項3から8の何れかに記載の符号化装置であって、
上記整数変換部は、MBを入力された1つの整数値からの上記変換により得る上記変換後整数の個数とし、xを上記整数値による系列に含まれる整数値とし、次式を計算することで上記変換後整数y1, y2, …, yMBを得るものであり、
上記式に用いられる関数gM’は、g0を何も出力しない関数とし、
をxを超えない最大のM’次平方根とし、aCbをa個からb個を選択する組み合わせの数とし、Kを
が0を下回らない最大の値とし、~y1, ~y2, …, ~yM’-Kを
により得られるM’-K個の変数からなる整数系列とし、λM’を
をM’CKで割った余りとし、m=0, 1, …, M’-1に関して、i1=0, i2=0を初期値として、次式を計算する再帰的な関数である、
符号化装置。 - 請求項1から2、または、請求項4から8、の何れかに記載の符号化装置であって、
上記整数変換部は、MAを上記整数値による組に含まれる整数値の個数とし、x1, x2, …, xMAを上記整数値による組に含まれる整数値とし、Kをx1, x2, …, xMAの二進数表記での最大桁数とし、iを1以上MA以下の各整数とし、a_(K, i), a_(K-1, i), …, a_(1, i)をxiの二進数表記の各桁の値とし、
最上位桁から最下位桁まで順に各桁のMA個の値を並べたa_(K, MA), a_(K, MA-1), …a_(K, 1), a_(K-1, MA), …, a_(K-1, 1), …, a_(1, 1)を上記1つの整数値である変換後整数の二進数表記として得る、
符号化装置。 - 請求項3から8の何れかに記載の符号化装置であって、
上記整数変換部は、MBを入力された1つの整数値からの上記変換により得る上記変換後整数の個数とし、xを上記整数値による系列に含まれる整数値とし、Kをxの二進数表記の桁数をMBで割った数とし、a_(MB×K), a_(MB×K-1), …, a_(1)をxの二進数表記の各桁の値とし、
a_(MB×K), a_(MB×K-1), …, a_(1)からMB個おきにK個の値を取り出して並べたMB個の系列を上記変換後整数に含まれる整数値それぞれの二進数表記として得る、
符号化装置。 - 入力された符号を復号して1つの整数値(以下、「変換後整数」という)を得る整数復号部と、
上記変換後整数から、代数的に表現可能な全単射な変換により、複数個の整数値を得る整数逆変換部と、
を含む復号装置。 - 請求項13に記載の復号装置であって、
上記整数復号部は、上記符号をゴロムライス復号して変換後整数を得るものである
復号装置。 - 入力された符号をゴロムライス復号して複数個の整数値(以下、「変換後整数」という)を得る整数復号部と、
上記変換後整数から、全単射な変換により、1つの整数値を得る整数逆変換部と、
を含む復号装置。 - 所定区間ごとに、入力されたパラメータ符号と整数符号を復号して復号整数系列を得る復号装置であって、
上記所定区間ごとの入力されたパラメータ符号を復号して指標値を得るパラメータ復号部と、
上記所定区間ごとの入力された整数符号をゴロムライス復号して整数値による系列(以下、「変換後整数系列」という)を得る整数復号部と、
上記変換後整数系列に含まれる1つの整数値である変換後整数それぞれについて、全単射な変換により、複数個(MA個、MAは2以上の整数)の整数値を得る変換処理(以下、「逆変換処理A」という)と、
上記変換後整数系列に含まれる複数個(MB個、MBは2以上の整数)の整数値である変換後整数それぞれについて、全単射な変換により、1つの整数値を得る変換処理(以下、「逆変換処理B」という)と、
の少なくとも何れかを含む複数個の選択肢の中から、上記所定区間ごとの上記指標値に基づいて上記所定区間ごとの変換処理を選択し、
選択した変換処理を上記所定区間ごとの上記変換後整数系列に対して行うことにより整数値による系列を上記復号整数系列として得る整数逆変換部と、
を含む復号装置。 - 請求項13または14または16に記載の復号装置であって、
上記整数逆変換部は、MAを変換後整数からの上記変換により得る上記整数値の個数とし、yを上記変換後整数とし、次式を計算することで上記複数個の整数値x1, x2, …, xMAを得るものであり、
上記式に用いる関数fM’ -1は、f0 -1を何も出力しない関数とし、
をyを超えない最大のM’次平方根とし、aCbをa個からb個を選択する組み合わせの数とし、Kを
が0を下回らない最大の値とし、~x1, ~x2, …, ~xM’-Kを
により得られるM’-K個の変数からなる整数系列とし、λM’を
をM’CKで割った余りとし、m=0, 1, …, M’-1に関して、i1=0, i2=0を初期値として、次式を計算する再帰的な関数である、
復号装置。 - 請求項15または16に記載の復号装置であって、
上記整数逆変換部は、MBを1つの整数値を得る上記変換の対象となる上記変換後整数の個数とし、y1, y2, …, yMBを上記変換後整数に含まれる整数値とし、次式を計算することで上記1つの整数値xを得るものであり、
上記式に用いる関数gM’ -1は、ymaxをy1, y2, …, yM’の最大値とし、Kをy1, y2, …,yM’のうち最大値をとる整数値の個数とし、m1, m2, …, mKをy1, y2, …, yM’のうち最大値をとる整数値の番号とし、~y1, ~y2, …, ~yM’-Kをy1, y2, …, yM’のうち最大値をとるK個の整数値を除いた整数値とし、aCbをa個からb個を選択する組み合わせの数とし、g0 -1を0とし、次式を計算する再帰的な関数である、
復号装置。 - 請求項13または14または16に記載の復号装置であって、
上記整数逆変換部は、MAを変換後整数からの上記変換により得る上記整数値の個数とし、yを上記変換後整数とし、Kをyの二進数表記の桁数をMAで割った数とし、a_(MA×K), a_(MA×K-1), …, a_(1)をyの二進数表記の各桁の値とし、
a_(MA×K), a_(MA×K-1), …, a_(1)からMA個おきにK個の値を取り出して並べたMA個の系列を上記複数個の整数値それぞれの二進数表記として得る、
復号装置。 - 請求項15または16に記載の復号装置であって、
上記整数逆変換部は、MBを1つの整数値を得る上記変換の対象となる上記変換後整数の個数とし、y1, y2, …, yMBを上記変換後整数に含まれる整数値とし、Kをy1, y2, …, yMBの二進数表記での最大桁数とし、iを1以上MB以下の各整数とし、a_(K, i), a_(K-1, i), …, a_(1, i)をyiの二進数表記の各桁の値とし、
最上位桁から最下位桁まで順に各桁のMB個の値を並べたa_(K, MB), a_(K, MB-1), …a_(K, 1), a_(K-1, MB), …, a_(K-1, 1), …, a_(1, 1)を上記1つの整数値の二進数表記として得る、
復号装置。 - 整数変換部が、入力された整数値による系列に含まれる複数個の整数値による組のそれぞれについて、代数的に表現可能な全単射な変換により、1つの整数値(以下、「変換後整数」という)を得る整数変換ステップと、
整数符号化部が、上記変換後整数それぞれを符号化して符号を得る整数符号化ステップと、
を含む符号化方法。 - 請求項21に記載の符号化方法であって、
上記整数符号化ステップは、上記変換後整数をゴロムライス符号化して符号を得る
符号化方法。 - 整数変換部が、入力された整数値による系列に含まれる整数値それぞれについて、全単射な変換により、複数個の整数値(以下、「変換後整数」という)を得る整数変換ステップと、
整数符号化部が、上記変換後整数をゴロムライス符号化して符号を得る整数符号化ステップと、
を含む符号化方法。 - パラメータ決定部が、入力された整数値による系列のうちの、所定個数の整数値による部分系列(以下「整数系列」という)ごとに、該整数系列における整数値の分布の性質に対応する指標値を得るパラメータ決定ステップと、
整数変換部が、
上記整数系列に含まれる複数個(MA個、MAは2以上の整数)の整数値による組のそれぞれについて、全単射な変換により、1つの整数値を変換後整数として得る変換処理(以下、「変換処理A」という)と、
上記整数系列に含まれる整数値それぞれについて、全単射な変換により、複数個(MB個、MBは2以上の整数)の整数値を変換後整数として得る変換処理(以下、「変換処理B」という)と、
の少なくとも何れかを含む複数個の選択肢の中から、上記指標値に基づいて変換処理を選択し、
選択した変換処理を上記整数系列に対して行うことにより変換後整数による系列を得る整数変換ステップと、
整数符号化部が、上記変換後整数による系列に含まれる各整数値をゴロムライス符号化して符号を得る整数符号化ステップと、
を含む符号化方法。 - 整数復号部が、入力された符号を復号して1つの整数値(以下、「変換後整数」という)を得る整数復号ステップと、
整数逆変換部が、上記変換後整数から、代数的に表現可能な全単射な変換により、複数個の整数値を得る整数逆変換ステップと、
を含む復号方法。 - 請求項25に記載の復号方法であって、
上記整数復号ステップは、上記符号をゴロムライス復号して変換後整数を得る
復号方法。 - 整数復号部が、入力された符号をゴロムライス復号して複数個の整数値(以下、「変換後整数」という)を得る整数復号ステップと、
整数逆変換部が、上記変換後整数から、全単射な変換により、1つの整数値を得る整数逆変換ステップと、
を含む復号方法。 - パラメータ復号部が、所定区間ごとに、入力されたパラメータ符号と整数符号を復号して復号整数系列を得る復号装置であって、
上記所定区間ごとの入力されたパラメータ符号を復号して指標値を得るパラメータ復号ステップと、
整数復号部が、上記所定区間ごとの入力された整数符号をゴロムライス復号して整数値による系列(以下、「変換後整数系列」という)を得る整数復号ステップと、
整数逆変換部が、
上記変換後整数系列に含まれる1つの整数値である変換後整数それぞれについて、全単射な変換により、複数個(MA個、MAは2以上の整数)の整数値を得る変換処理(以下、「逆変換処理A」という)と、
上記変換後整数系列に含まれる複数個(MB個、MBは2以上の整数)の整数値である変換後整数それぞれについて、全単射な変換により、1つの整数値を得る変換処理(以下、「逆変換処理B」という)と、
の少なくとも何れかを含む複数個の選択肢の中から、上記所定区間ごとの上記指標値に基づいて上記所定区間ごとの変換処理を選択し、
選択した変換処理を上記所定区間ごとの上記変換後整数系列に対して行うことにより整数値による系列を上記復号整数系列として得る整数逆変換ステップと、
を含む復号方法。 - 請求項1から12の何れかに記載の符号化装置としてコンピュータを機能させるためのプログラム。
- 請求項13から20の何れかに記載の復号装置としてコンピュータを機能させるためのプログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/618,538 US12028093B2 (en) | 2017-06-22 | 2018-04-18 | Encoder, decoder, encoding method, decoding method and program |
EP18820888.8A EP3644515B1 (en) | 2017-06-22 | 2018-04-18 | Encoding device, decoding device, encoding method, decoding method and program |
JP2019525161A JP6766264B2 (ja) | 2017-06-22 | 2018-04-18 | 符号化装置、復号装置、符号化方法、復号方法、およびプログラム |
EP22180972.6A EP4099573B1 (en) | 2017-06-22 | 2018-04-18 | Encoder, decoder, encoding method, decoding method and program |
CN201880040942.9A CN110771045B (zh) | 2017-06-22 | 2018-04-18 | 编码装置、解码装置、编码方法、解码方法、以及记录介质 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017121947 | 2017-06-22 | ||
JP2017-121947 | 2017-06-22 | ||
JP2018025040 | 2018-02-15 | ||
JP2018-025040 | 2018-02-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018235418A1 true WO2018235418A1 (ja) | 2018-12-27 |
Family
ID=64735681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/016025 WO2018235418A1 (ja) | 2017-06-22 | 2018-04-18 | 符号化装置、復号装置、符号化方法、復号方法、およびプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US12028093B2 (ja) |
EP (2) | EP4099573B1 (ja) |
JP (1) | JP6766264B2 (ja) |
CN (1) | CN110771045B (ja) |
WO (1) | WO2018235418A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114978189A (zh) * | 2021-02-27 | 2022-08-30 | 华为技术有限公司 | 一种数据编码方法以及相关设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008059752A1 (fr) * | 2006-11-14 | 2008-05-22 | Nippon Telegraph And Telephone Corporation | Procédé d'encodage et procédé de décodage de signal d'image, procédé d'encodage et procédé de décodage de source d'information, dispositifs pour ceux-ci, leurs programmes, et support de mémoire avec programme enregistré |
WO2016121824A1 (ja) * | 2015-01-30 | 2016-08-04 | 日本電信電話株式会社 | パラメータ決定装置、方法、プログラム及び記録媒体 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7193541B2 (en) * | 2001-12-04 | 2007-03-20 | Sun Microsystems, Inc. | Representation of sign in encoding scheme |
CN1742270A (zh) * | 2003-01-27 | 2006-03-01 | 数学技术株式会社 | 运算处理装置、运算处理装置设计方法以及逻辑电路设计方法 |
SE527621C2 (sv) * | 2003-06-10 | 2006-04-25 | Jan-Olov Stroemberg | Metod och system för komprimering av bilddata |
KR100561869B1 (ko) | 2004-03-10 | 2006-03-17 | 삼성전자주식회사 | 무손실 오디오 부호화/복호화 방법 및 장치 |
US20060048038A1 (en) * | 2004-08-27 | 2006-03-02 | Yedidia Jonathan S | Compressing signals using serially-concatenated accumulate codes |
JP2008512917A (ja) * | 2004-09-13 | 2008-04-24 | エクスプウェイ | 浮動小数点数列を圧縮及び伸張する方法 |
US7362245B2 (en) * | 2006-05-15 | 2008-04-22 | Taiwan Imagingtek Corporation | Variable length coding method for data compression |
DE102007017254B4 (de) * | 2006-11-16 | 2009-06-25 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung zum Kodieren und Dekodieren |
US7626522B2 (en) * | 2007-03-12 | 2009-12-01 | Qualcomm Incorporated | Data compression using variable-to-fixed length codes |
EP2112764A1 (en) * | 2008-04-25 | 2009-10-28 | Thomson Licensing | Method for encoding a sequence of integers, storage device and signal carrying an encoded integer sequence and method for decoding a sequence of integers |
EP2141815A1 (en) * | 2008-07-01 | 2010-01-06 | Deutsche Thomson OHG | Method for a hybrid Golomb-Elias gamma coding |
CN102422540B (zh) * | 2009-05-20 | 2015-08-26 | 日本电信电话株式会社 | 编码方法、编码装置、解码方法、解码装置、程序以及记录介质 |
US10515643B2 (en) * | 2011-04-05 | 2019-12-24 | Nippon Telegraph And Telephone Corporation | Encoding method, decoding method, encoder, decoder, program, and recording medium |
ES2884626T3 (es) * | 2014-05-01 | 2021-12-10 | Nippon Telegraph & Telephone | Codificador, descodificador, método de codificación, método de descodificación, programa de codificación, programa de descodificación y soporte de registro |
US9838700B2 (en) * | 2014-11-27 | 2017-12-05 | Nippon Telegraph And Telephone Corporation | Encoding apparatus, decoding apparatus, and method and program for the same |
WO2019167706A1 (ja) * | 2018-03-02 | 2019-09-06 | 日本電信電話株式会社 | 符号化装置、符号化方法、プログラム、および記録媒体 |
JP7139897B2 (ja) * | 2018-11-07 | 2022-09-21 | 日本電信電話株式会社 | 符号化装置、復号装置、符号化方法、復号方法、符号化プログラム、復号プログラム |
-
2018
- 2018-04-18 JP JP2019525161A patent/JP6766264B2/ja active Active
- 2018-04-18 CN CN201880040942.9A patent/CN110771045B/zh active Active
- 2018-04-18 EP EP22180972.6A patent/EP4099573B1/en active Active
- 2018-04-18 EP EP18820888.8A patent/EP3644515B1/en active Active
- 2018-04-18 WO PCT/JP2018/016025 patent/WO2018235418A1/ja unknown
- 2018-04-18 US US16/618,538 patent/US12028093B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008059752A1 (fr) * | 2006-11-14 | 2008-05-22 | Nippon Telegraph And Telephone Corporation | Procédé d'encodage et procédé de décodage de signal d'image, procédé d'encodage et procédé de décodage de source d'information, dispositifs pour ceux-ci, leurs programmes, et support de mémoire avec programme enregistré |
WO2016121824A1 (ja) * | 2015-01-30 | 2016-08-04 | 日本電信電話株式会社 | パラメータ決定装置、方法、プログラム及び記録媒体 |
Non-Patent Citations (3)
Title |
---|
C.D. GIURCANEANU ; I. TABUS: "Low-complexity transform coding with integer-to-integer transforms", 2001 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING. PROCEEDINGS (CAT. NO.01CH37221), vol. 4, 7 May 2001 (2001-05-07), XP010803265 * |
MASAYUKI TAKAMURAYOSHIYUKI YAJIMA: "Efficient Gaussian Source Coding Based on Distribution Mapping", THE JOURNAL OF THE INSTITUTE OF IMAGE INFORMATION AND TELEVISION ENGINEERS, vol. 61, no. 9, 2007, pages 1357 - 1362 |
R. ZELINSKIP. NOLL: "Adaptive transform encoding of voice signals", IEEE TRANSACTIONS ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING, vol. 25, no. 4, August 1977 (1977-08-01), pages 299 - 309 |
Also Published As
Publication number | Publication date |
---|---|
EP4099573A1 (en) | 2022-12-07 |
JP6766264B2 (ja) | 2020-10-07 |
EP3644515B1 (en) | 2022-08-24 |
CN110771045B (zh) | 2024-03-29 |
EP3644515A4 (en) | 2021-12-01 |
JPWO2018235418A1 (ja) | 2020-05-21 |
EP3644515A1 (en) | 2020-04-29 |
CN110771045A (zh) | 2020-02-07 |
US20230318622A1 (en) | 2023-10-05 |
EP4099573B1 (en) | 2023-10-11 |
US12028093B2 (en) | 2024-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4224021B2 (ja) | 信号のマルチレートによる格子ベクトル量子化の方法とシステム | |
CN102687403B (zh) | 使用算术阶段压缩未充分利用的代码空间的编码器和解码器 | |
CN1905010B (zh) | 编码音频数据的设备和方法及解码音频数据的设备和方法 | |
JP2009509456A (ja) | 逐次改善可能な格子ベクトル量子化 | |
JPWO2017183448A1 (ja) | データ処理装置、データ処理方法、プログラム | |
WO2011097963A1 (zh) | 编码方法、解码方法、编码器和解码器 | |
CN104380733A (zh) | 视频量化参数编码方法、视频量化参数解码方法、设备、以及程序 | |
JP2006527961A (ja) | 符号化装置、符号化方法およびコードブック | |
JP6766264B2 (ja) | 符号化装置、復号装置、符号化方法、復号方法、およびプログラム | |
WO2020095706A1 (ja) | 符号化装置、復号装置、符号列のデータ構造、符号化方法、復号方法、符号化プログラム、復号プログラム | |
JP4918103B2 (ja) | 符号化方法、復号方法、それらの装置、プログラム及び記録媒体 | |
WO2010067799A1 (ja) | 符号化方法、復号方法、それらの装置、プログラム及び記録媒体 | |
JP6885466B2 (ja) | 符号化装置、復号装置、符号化方法、復号方法、符号化プログラム、復号プログラム | |
JP6962445B2 (ja) | 符号化装置、符号化方法、プログラム、および記録媒体 | |
JP7173134B2 (ja) | 符号化装置、復号装置、符号化方法、復号方法、プログラム、および記録媒体 | |
JP7183776B2 (ja) | 符号化装置、復号装置、これらの方法及びプログラム | |
Mihalík et al. | Solutions of image coding problems | |
Durad et al. | Parallel lossless image compression using MPI | |
Mehrotra et al. | Predictive hierarchical table-lookup vector quantization with quadtree encoding | |
Khandelwal et al. | Lattice vector quantization with direct indexing as data differencing technique | |
WO2013129528A1 (ja) | 符号化装置、この方法、プログラムおよび記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18820888 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2019525161 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2018820888 Country of ref document: EP Effective date: 20200122 |