WO2012005212A1 - 符号化方法、復号方法、符号化装置、復号装置、プログラム、及び記録媒体 - Google Patents

符号化方法、復号方法、符号化装置、復号装置、プログラム、及び記録媒体 Download PDF

Info

Publication number
WO2012005212A1
WO2012005212A1 PCT/JP2011/065276 JP2011065276W WO2012005212A1 WO 2012005212 A1 WO2012005212 A1 WO 2012005212A1 JP 2011065276 W JP2011065276 W JP 2011065276W WO 2012005212 A1 WO2012005212 A1 WO 2012005212A1
Authority
WO
WIPO (PCT)
Prior art keywords
sample position
coefficient
sample
bits
value
Prior art date
Application number
PCT/JP2011/065276
Other languages
English (en)
French (fr)
Inventor
勝宏 福井
茂明 佐々木
祐介 日和▲崎▼
翔一 小山
公孝 堤
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to CN201180031632.9A priority Critical patent/CN102959623B/zh
Priority to JP2012523859A priority patent/JP5337305B2/ja
Priority to US13/807,139 priority patent/US8711012B2/en
Priority to EP11803546.8A priority patent/EP2573766B1/en
Priority to CA2803276A priority patent/CA2803276A1/en
Priority to ES11803546.8T priority patent/ES2536902T3/es
Publication of WO2012005212A1 publication Critical patent/WO2012005212A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/02Speech 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/032Quantisation or dequantisation of spectral components

Definitions

  • an efficient vector quantization method with little quantization noise for example, an SVQ method (Spherical Vector Quantization, for example, see Non-Patent Document 1) or the like, a plurality of input signals within a preset number of quantization bits.
  • SVQ method Spherical Vector Quantization, for example, see Non-Patent Document 1
  • a vector quantization method for collectively quantizing the above is widely used.
  • AVQ method Algebraic Vector Quantization, see Non-Patent Document 2, for example
  • the AVQ method is a method that assumes signal sparsity like the SVQ method, but can obtain a quantized value capable of restoring more frequency components than the SVQ method.
  • the amplitude quantization accuracy of the AVQ method is rough compared to the SVQ method. Even if the frequency of missing frequency components from the decoded signal is low, musical noise or the like occurs if the amplitude quantization accuracy is low. Such a problem is not limited to the AVQ method, and is common when musical noise or the like is generated based on quantization accuracy. Such a problem may occur not only when the input signal is a frequency domain signal but also when the input signal is a time domain signal.
  • a plurality of samples are collectively vector-quantized to obtain a vector quantization index and a quantization value of each of the plurality of samples, and a vector quantization index is calculated from the number of bits allocated for the code corresponding to the vector quantization index.
  • the number of bits equal to or less than the number obtained by subtracting the number of bits used for the code corresponding to is one of a plurality of sample position sets each having a plurality of sample positions and given a priority based on auditory characteristics.
  • a plurality of values corresponding to the input vector quantization index are obtained as decoded values corresponding to a plurality of sample positions, and a predetermined priority based on auditory characteristics among a plurality of sample position sets constituting the sample positions
  • a set of sample positions to which the number of bits is assigned according to the rank is set as a processing target, and a set of predetermined coefficients corresponding to a plurality of sample positions represented by the input index information is used, and is included in the sample position set to be processed.
  • a value obtained by multiplying the decoded value and the coefficient corresponding to each sample position is output.
  • the encoding device 11 includes, for example, a normalized value calculation unit 112, a normalized value quantization unit 113, a vector quantization unit 115, and a gradient calculation unit 116.
  • the gradient calculation unit 116 corresponds to a “bit allocation unit” and a “coefficient group selection unit”.
  • the decoding device 12 includes, for example, a normalized value decoding unit 121, a vector decoding unit 122, and a gradient correction unit 124.
  • the encoding device 11 may include a frequency domain transform unit 111, for example.
  • the decoding device 12 may include a time domain conversion unit 125 and a smoothing unit 126.
  • L is a predetermined positive number, for example, an integer larger than 1, such as 64 or 80.
  • every frame composed of L samples, which are input time-series signals, is converted into the frequency domain, and the frame to be converted is 1 ⁇ 2 frame, that is, L / 2. Shifted by samples.
  • C 0 is L or a common divisor of L other than 1 and L.
  • setting C 0 to L means obtaining a normalized value for every L samples.
  • 0, and the normalized value ⁇ X 0 ⁇ is a value representative of L samples.
  • k ⁇ ⁇ C 0 regardless of the value of C 0, ⁇ , a ( ⁇ + 1) ⁇ C 0 -1. ⁇ X 0 ⁇ calculated by the normalization value calculation unit 112 is sent to the normalization value quantization unit 113.
  • normalized value ⁇ X 0 ⁇ is the average amplitude value of C 0 samples as follows:
  • the normalized value ⁇ X 0 ⁇ is not limited to the above example (end of description of [specific example of normalized value ⁇ X 0 ⁇ ]).
  • Normalization value quantizer 113 normalization value tau X 0 - quantizing quantized normalization value tau X - and the quantized normalization value tau X - to determine the normalization value quantization index corresponding ( Step E2).
  • ⁇ X - means a superscript bar of X.
  • the quantization normalized value ⁇ X ⁇ is sent to the vector quantization unit 115, and a code (bit stream) corresponding to the normalized value quantization index is sent to the decoding device 12.
  • the vector quantization unit 115 generates a vector quantization index by vector-quantizing a plurality of samples X (k) out of L samples of the input signal X (k) input for each frame.
  • the vector quantization index is an index representing a quantization representative vector.
  • the vector quantization unit 115 normalizes a plurality of X (k) using the quantized normalized value ⁇ X ⁇ to obtain a plurality of normalized samples X (k) ′.
  • the vector quantization unit 115 obtains X (k) ′ by dividing X (k) by ⁇ X ⁇ or by multiplying X (k) by the inverse of ⁇ X ⁇ .
  • the vector quantization unit 115 is, for example, a quantization representative closest to a vector having a plurality of X (k) ′ components among a plurality of quantization representative vectors stored in a vector codebook storage unit (not shown). Vector quantization is performed by selecting a vector and outputting a vector quantization index representing the selected quantization representative vector. The vector quantization unit 115 performs vector quantization by collecting, for example, C 0 X (k) ′. The vector quantization unit 115 performs vector quantization using a vector quantization method such as the AVQ method (see, for example, Non-Patent Document 2), but other vector quantization methods may be employed.
  • AVQ method see, for example, Non-Patent Document 2
  • C 0 is the number of samples of the sub-bands
  • the lower priority sub-bands in consideration of human auditory characteristics it may not made vector quantization. For example, the priority is higher for subbands corresponding to frequencies that are easily perceived by humans. For example, a higher priority is given to a subband having a larger quantization normalization value ⁇ X ⁇ .
  • the number of bits of the code obtained by vector quantization varies depending on the input signal. Depending on the input signal, the number of bits of the code (vector quantization index, etc.) obtained by vector quantization is less than the number of bits allocated for vector quantization, and some of the bits allocated for vector quantization There may be a surplus.
  • the “bits allocated for vector quantization” refers to codes (codes corresponding to vector quantization indexes) obtained by vector quantization among codes sent from the encoding device 11 to the decoding device 12. Means bits allocated for. “Number of bits allocated for vector quantization” represents the number of bits allocated for vector quantization. The “number of bits allocated for vector quantization” may be determined for each frame, or may be determined for each subband.
  • the vector quantization unit 115 calculates, as the unused bit number U, the number of bits that are not used in actual vector quantization among the bits allocated for vector quantization. In the example of the present embodiment, the number of unused bits U is calculated every frame (every L samples). For example, the vector quantization unit 115 calculates the vector quantization index obtained by vector quantization of L samples actually belonging to the frame from the number of bits allocated for vector quantization in the processing target frame. A value obtained by subtracting the total number of bits is defined as an unused bit number U. U is an integer of 0 or more.
  • the vector quantization unit 115 obtains and outputs a plurality of quantized values X ⁇ (k) that are values obtained by local decoding of the vector quantization index. For example, the vector quantization unit 115 de-normalizes each component X (k) ′ of the quantized representative vector represented by the vector quantization index using the quantization normalized value ⁇ X ⁇ . The quantized value X ⁇ (k) of k) is output. For example, the vector quantization unit 115 outputs a multiplication value of X (k) ′ and ⁇ X ⁇ as a quantization value X ⁇ (k).
  • the quantized value X ⁇ (k) in this example is equal to the decoded value X ⁇ (k) obtained by the decoding device 12.
  • the quantized value X ⁇ (k) of the subband not subjected to vector quantization is 0.
  • X ⁇ means a superscript hat of X.
  • the vector quantization unit 115 sends the vector quantization index, the number of unused bits U, and the quantized value X ⁇ (k) to the gradient calculation unit 116 (step E3).
  • the gradient calculation unit 116 holds, for example, a storage unit (not shown) that includes M MAX sets configured by C 0 gradient coefficients (gradient correction gains). M MAX is an integer of 2 or more.
  • the gradient calculation unit 116 corresponds to a plurality of samples X (k) from the gradient matrix ⁇ having the gradient coefficient vector ⁇ m having the plurality of gradient coefficients ⁇ m (k ′) as elements as row vectors.
  • the index information idx representing the row number m ′ of the gradient coefficient vector that minimizes the error between is output and placed in the unused bit area of the code (bitstream) corresponding to the vector quantization index (step E4).
  • the encoding device 11 can send information for correcting the quantization error of the amplitude by effectively using the unused bit area to the decoding device 12, and the musical noise generated based on the quantization accuracy, etc. Can be reduced.
  • each gradient coefficient vector ⁇ m is a vector having a plurality of gradient coefficients ⁇ m (0),..., ⁇ m (C 0 ⁇ 1) as elements.
  • X ( ⁇ ⁇ C 0 ),..., X (( ⁇ + 1) ⁇ C 0 ⁇ 1) takes k as the first axis and X (k) as the second axis (k, X (k)) In many cases, the distribution is biased to straight lines or curves on a plane.
  • Gradient coefficients ⁇ m (0),..., ⁇ m (C 0 ⁇ 1) in consideration of such characteristics of X ( ⁇ ⁇ C 0 ),..., X (( ⁇ + 1) ⁇ C 0 ⁇ 1) ) by using a gradient coefficient vector gamma m to the element can be corrected with high accuracy quantization error.
  • each gradient coefficient ⁇ m (0),..., ⁇ m (C 0 ⁇ 1) corresponding to the same row number m corresponds to a frequency corresponding to k ′ (gradient coefficient ⁇ m (k ′)).
  • a vector whose elements are the gradient coefficients ⁇ m (0),..., ⁇ m (C 0 ⁇ 1) on a straight line on a (k ′, ⁇ m (k ′)) plane or a specific curve.
  • a straight line on a plane or a specific curve is different for each row number m, for example.
  • the following is an example of the gradient matrix ⁇ .
  • An example of the error between the first vector and the second vector is the distance between the first vector and the second vector.
  • the definition of the distance is not limited, and any one such as a Manhattan distance, an Euclidean distance, or a modification thereof may be used.
  • Examples of the gradient coefficient vector that minimizes the error between the first vector and the second vector include the gradient coefficient vector that minimizes the error between the first vector and the second vector, and the first within a certain search condition and search range. For example, a gradient coefficient vector that minimizes an error between the first vector and the second vector.
  • the unused bit area can be specified by, for example, the determined reference position (for example, the head address) of the unused bit area and the number U of the input unused bits.
  • the upper limit of the number of bits of the index information idx that can be written in the unused bit area is the number of unused bits U. Therefore, the index information idx corresponding to every row number cannot always be written in the unused bit area. Therefore, for example, the gradient calculation unit 116 sets only the row numbers in the range of row numbers that can be identified by the index information idx that can be written in the unused bit area as the search range. In other words, the gradient calculation unit 116 selects only the row number represented by the index information idx that can be written to the unused bit area.
  • the number m ′ is specified, and the index information idx corresponding to the row number m ′ is written in the unused bit area.
  • ⁇ ⁇ ⁇ is the norm of argmin m ⁇ ⁇ ⁇ means that m that minimizes ⁇ ⁇ ⁇ is m ′
  • argmin m means the subscript m of argmin
  • [X ( ⁇ ⁇ C 0 ),..., X (( ⁇ + 1) ⁇ C 0 ⁇ 1)]
  • ⁇ ⁇ [X ⁇ ( ⁇ ⁇ C 0 ),..., X ⁇ (( ⁇ + 1) ⁇ C 0 ⁇ 1)]
  • the gradient calculation unit 116 arranges index information idx representing the row number m ′ of the gradient coefficient vector for each subband in the unused bit area. To do. In this case, in order to store the index information idx corresponding to each subband, the unused bit area must be distributed to each subband. The gradient calculation unit 116 determines a bit area in the unused bit area in which the index information idx of each subband is arranged, for example, according to a predetermined priority order in consideration of human auditory characteristics.
  • the gradient calculation unit 116 determines the size of the bit area in which the index information idx corresponding to each subband is arranged according to the priority given to each subband (corresponding to “sample position set”). For example, the priority is higher for subbands corresponding to frequencies that are easily perceived by humans. For example, the gradient calculation unit 116 preferentially arranges the index information idx of the subband having a high priority in the unused bit area. Specifically, for example, the gradient calculation unit 116 sets the bit area in which the index information idx corresponding to the subband with the higher priority is arranged than the bit area in which the index information idx corresponding to the subband with the low priority is arranged. Enlarge.
  • the gradient calculation unit 116 does not allocate a bit area for arranging the index information idx corresponding to the subband that has not been subjected to vector quantization by the vector quantization unit 115. For example, since X ⁇ (k) of subbands that have not been subjected to vector quantization are all 0, the gradient calculation unit 116 uses the index information for subbands in which the sum of the amplitude and energy of X ⁇ (k) to which the subband belongs is 0. A bit area for allocating idx is not allocated. In this case, it is not necessary to perform, for example, processing for specifying the index information idx for the subband that has not been subjected to vector quantization.
  • the gradient calculation unit 116 hears at least a part of the number of bits allocated to the code corresponding to the vector quantization index that is not actually used for the code corresponding to the vector quantization index. Assign to a plurality of samples according to a predetermined priority order based on characteristics, and output index information idx of the number of bits assigned to the plurality of samples. In other words, the gradient calculation unit 116 subtracts the number of bits obtained by subtracting the number of bits used for the code corresponding to the vector quantization index from the number of bits allocated for the code corresponding to the vector quantization index.
  • sample position sets of a plurality of sample position sets each consisting of a plurality of sample positions and given a priority order based on auditory characteristics according to a predetermined priority order based on auditory characteristics, and the number of bits
  • the value of the sample belonging to the sample position set and the quantum of the sample belonging to the sample position set Of the error between the normalized value and the value multiplied by the coefficient corresponding to the position of each sample
  • the “position of each sample” in the present embodiment is a position on the frequency axis corresponding to each discrete frequency number k. Thereby, the index information idx can be transmitted using only the unused bit area.
  • the gradient calculation unit 116 of this example performs each process described in FIGS. 3 and 4 and writes the index information idx representing the row number of the selected gradient coefficient vector in the unused bit area.
  • C 0 represents the number of subband samples
  • G represents the total number of subbands in one frame.
  • the comparison method in the case of “compare ⁇ and ⁇ ” is not limited, and any comparison method may be used as long as the magnitude relationship between ⁇ and ⁇ can be determined.
  • the process of comparing ⁇ and ⁇ to know whether or not ⁇ ⁇ is satisfied is a process of determining whether or not ⁇ ⁇ is satisfied, and whether or not 0 ⁇ is satisfied is determined. Or a process for determining whether or not ⁇ ⁇ ⁇ is satisfied, or a process for determining whether or not 0 ⁇ ⁇ is satisfied.
  • C 0 represents the number of subband samples
  • the leading element is expressed as the 0th element.
  • the priority of the subband identified by 0 is the highest, and the priority of the subband identified by 7 is the lowest.
  • the priority order of each subband in one frame may be dynamically determined according to the input signal X (k), or may be fixedly determined.
  • An example of a method for dynamically determining priority is a method of increasing the priority for a subband having a larger quantized normalized value ⁇ X ⁇ .
  • flg (b) is a quantization presence / absence flag indicating whether or not vector quantization of the subband (sample set to be processed) identified by b has been performed by the vector quantization unit 115.
  • the maximum value M MAX (equation (1)) of the row number of the gradient matrix ⁇ is 2 or more.
  • a is the upper limit of the number of bits of the index information idx representing the row number m of the gradient coefficient vector ⁇ m in this search range.
  • the gradient calculation unit 116 decrements h (updates the value of h by setting h-1 as a new value of h) (step E49), and performs the calculation represented by the following equation (step E410).
  • the gradient calculation unit 116 compares the m and m MAX (step E412), if m ⁇ m MAX, perform calculations represented by the following formula (step E413), e MIN and e (Step E414). If e MIN > e, m is incremented by 1 (step E416), and the process proceeds to step E412.
  • step E412 the gradient calculation unit 116 writes idx in the unused bit area and updates u by setting u ⁇ a as a new u (step E417). ), Go to Step E418.
  • the gradient calculation unit 116 writes idx in an unused a-bit area of the unused bit area.
  • the decoding device 12 is configured to be able to specify where the necessary idx is arranged in the unused bit area based on a. For example, the order in which unused areas of unused bit areas are allocated is determined in advance, and the gradient calculation unit 116 determines an area for storing idx according to this order.
  • the gradient calculation unit 116 has a plurality of quantized values X ⁇ (b ⁇ C 0 ) ,. Without updating ((b + 1) ⁇ C 0 ⁇ 1) (step E420), i is incremented by 1 (step E421), and the process proceeds to step E42.
  • the gradient calculation unit 116 outputs the index information idx that can be expressed by the number of bits assigned to the processing target subband (processing target sample set).
  • the code (bit stream) corresponding to the corrected vector quantization index including the vector quantization index and the index information idx written in the unused bit area is sent to the decoding device 12.
  • the decoding device 12 executes each step of the decoding method illustrated in FIG.
  • the normalized value decoding unit 121 obtains a decoded normalized value ⁇ X ⁇ corresponding to the normalized value quantization index input to the decoding device 12 (step D1).
  • the decoded normalized value ⁇ X ⁇ is sent to the vector decoding unit 122.
  • the vector decoding unit 122 calculates the number of bits that are not used in actual vector quantization among the bits allocated for vector quantization as the number of unused bits U. In the example of this embodiment, the vector decoding unit 122 calculates the number of unused bits U for each frame (for every L samples). For example, the vector decoding unit 122 subtracts a value obtained by subtracting the total number of bits of the vector quantization index corresponding to the frame from the number of bits allocated for vector quantization in the processing target frame. And
  • the gradient correcting unit 124 has the gradient coefficient of the row number m ′ represented by the index information idx in the gradient matrix ⁇ having the gradient coefficient vector ⁇ m having the plurality of gradient coefficients ⁇ m (k ′) as elements. Using each element ⁇ m ′ (k ′) of the vector ⁇ m ′ , a plurality of decoded values X ⁇ (k) are corrected (step D3).
  • the gradient correcting unit 124 calculates a multiplication value of the element ⁇ m ′ (k ′) of the gradient coefficient vector ⁇ m ′ of the row number m ′ represented by the index information idx and the decoded value X ⁇ (k) as the decoded value X ⁇ .
  • the gradient correction unit 124 outputs a correction value X ⁇ UD (k). That is, the gradient correcting unit 124 receives a set of sample positions, to which a number of bits are assigned according to a predetermined priority order based on auditory characteristics, from among a plurality of sample position sets constituting a plurality of sample positions.
  • a value obtained by multiplying a decoded value and a coefficient corresponding to each sample position included in the sample position set to be processed is output. To do.
  • flg (b) is a quantization presence / absence flag indicating whether or not the vector quantization of the subband identified by b is performed by the vector quantization unit 115.
  • the gradient correcting unit 124 decrements h (step D39), and reads the index information idx from the unused bit area included in the corrected vector quantization index based on a (step D310).
  • the gradient correcting unit 124 updates the value of u by setting u ⁇ a as a new u (step D311).
  • the correction value X ⁇ UD (k) output from the gradient correction unit 124 is input to the time domain conversion unit 125, and the time domain conversion unit 125 calculates X ⁇ UD (k). For example, it is converted into a time domain signal z (n) by inverse Fourier transform and output.
  • a vector having elements of gradient coefficients ⁇ m (0),..., ⁇ m (C 0 ⁇ 1) having correlation with each other is defined as a gradient coefficient vector ⁇ m .
  • a plurality of gradient coefficients ⁇ m (0),..., ⁇ m (C 0 ⁇ 1) distributed on a straight line on a (k, ⁇ m (k)) plane or a specific curve are used as elements.
  • the vector was the gradient coefficient vector ⁇ m .
  • the envelope of an input signal such as an audio signal or an acoustic signal often forms a straight line or a curve.
  • the quantization error can be corrected with high accuracy.
  • of the input signal in the subbands k 0,. Therefore, a gradient coefficient vector ⁇ whose elements are gradient coefficients ⁇ m (0),..., ⁇ m (7) distributed in a straight line with a negative slope on the (k, ⁇ m (k)) plane.
  • Error can be reduced.
  • the quantization error can be efficiently reduced by using the gradient coefficient vector ⁇ m suitable for the characteristics of the input signal for each subband. Further, since the index information idx for specifying the gradient coefficient vector ⁇ m ′ selected by the encoding device 11 is transmitted using the unused bit area effectively, an additional area for transmitting the index information idx is provided. It is unnecessary.
  • the upper limit of the number of bits that can be written in the unused bit area is the number of unused bits U, and the index information idx for all subbands is not necessarily written in the unused bit area. Therefore, in this embodiment, the index information idx corresponding to the subband having a high priority is preferentially written in the unused bit area. Thereby, for example, quantization errors in subbands important for human auditory characteristics can be reduced, and musical noise and the like can be reduced.
  • Condition 1 Conventional technique (as in Patent Document 1, a code obtained by vector quantization of an input signal is decoded to obtain a decoded signal)
  • Condition 2 Embodiment technology (as in the above-described embodiment, a code obtained by performing vector quantization and gradient calculation of an input signal is decoded to obtain a decoded signal)
  • the SNR was calculated only from a frame in which the number of unused bits U of vector quantization is 1 bit or more.
  • Three types of input signals were used: voice, Japanese music, and Western music. The results are shown below.
  • the SNR can be improved by about 0.35 dB on average for three types of input signals of voice, Japanese music, and Western music compared to the conventional technique.
  • the smoothing unit 126 receives the correction value X ⁇ UD (k) obtained in step D3 (FIG. 5) as an input, and the correction value X ⁇ UD (k). 'If it is not 0, the past of the correction value X ⁇ UD (k)' the past of the correction value X ⁇ UD (k) than the correction value X ⁇ UD (k) the added value weighted and smoothed value X ⁇ POST Output as (k).
  • X ⁇ POST (k) is expressed as follows.
  • ⁇ ( ⁇ ) represents the sign of •.
  • X ⁇ POST (k) output from the smoothing unit 126 is input to the time domain conversion unit 125, and the time domain conversion unit 125 reverses X ⁇ POST (k), for example.
  • a time domain signal z (n) is converted and output by Fourier transform.
  • each gradient coefficient ⁇ m (0),..., ⁇ m (C 0 ⁇ 1) corresponding to the same row number m is represented by the (k ′, ⁇ m (k ′)) plane. It shall be located on the upper straight line or on a specific curve.
  • k and k ′ are discrete time numbers corresponding to the discrete time
  • “the position of each sample” is a position on the time axis corresponding to the discrete time number k.
  • the gradient calculation unit 116 of the encoding device 10 determines whether or not idx> 0. If idx> 0, a plurality of quantized values X ⁇ (b ⁇ C 0 ), .., X ⁇ ((b + 1) ⁇ C 0 ⁇ 1) is updated, and if idx> 0, it is not updated (FIG. 4 / steps E418 to E421). Further, the gradient correction unit 124 of the decoding device 12 determines whether or not idx> 0.
  • a plurality of quantized values X ⁇ (b ⁇ C0 ), ..., X ⁇ (( b + 1) ⁇ C 0 -1) is updated, and unless idx> 0, it is not updated (FIG. 7 / steps D312 to D314).
  • ⁇ ⁇ 1 (C 0 ⁇ 1)] [1,..., 1]
  • the gradient calculation unit 116 and the gradient correction unit 124 regardless of whether idx> 0, Such a calculation may be performed.
  • index information idx is stored in the unused bit area having the number of unused bits U.
  • the index information idx may not be stored in the unused bit area.
  • the index information idx may be stored in another finite bit area having the number of bits U included in the code.
  • the above-described processing may be executed in which the “unused bit area” is replaced with the “finite bit area”, and the “unused bit number U” is replaced with the “bit number U of the finite bit area”.
  • the various processes described above are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary. Needless to say, other modifications are possible without departing from the spirit of the present invention.
  • a computer that executes such a program first stores a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device.
  • the computer reads the program stored in its own recording medium and executes the process according to the read program.
  • the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially.
  • processing units of the encoding device 11 and the decoding device 12 may be configured by a special integrated circuit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

 複数のサンプルをベクトル量子化してベクトル量子化インデックスと量子化値を求め、ベクトル量子化インデックスに対応する符号用に割り当てられたビット数からベクトル量子化インデックスに対応する符号に用いられたビット数を減算して得られる数以下のビット数を、それぞれが複数のサンプル位置からなり聴覚特性に基づく優先順位が与えられた複数のサンプル位置集合のうちの1個以上のサンプル位置集合に、聴覚特性に基づく所定の優先順位に従って割り当て、ビット数が割り当てられたサンプル位置集合それぞれについて、該サンプル位置集合に属するサンプルの値と、該サンプル位置集合に属するサンプルの量子化値とサンプルそれぞれの位置に対応する係数とを乗算した値との間の誤差の該サンプル位置集合に属する全サンプル位置についての和を最小にする係数の組を表すインデックス情報を出力する。

Description

符号化方法、復号方法、符号化装置、復号装置、プログラム、及び記録媒体
 この発明は、例えば音声や音楽などの音響、映像等の信号系列をベクトル量子化により符号化又は復号する技術に関する。
 特許文献1に記載された符号化装置では、入力信号はまず正規化値で割算され正規化される。正規化値は量子化され、量子化インデックスが生成される。正規化された入力信号はベクトル量子化され、量子化代表ベクトルのインデックスが生成される。生成された量子化インデックス及び量子化代表ベクトルは、復号装置に出力される。復号装置では、量子化インデックスが復号され正規化値が生成される。また、量子化代表ベクトルのインデックスが復号されてサンプル列が生成される。生成されたサンプル列のそれぞれのサンプルに正規化値を乗算して得られた値の列が復号信号サンプル列となる。
 一方、量子化ノイズの少ない高能率なベクトル量子化手法として、例えばSVQ法(Spherical Vector Quantization、例えば非特許文献1参照)など、予め設定された量子化ビット数の範囲内で、複数の入力信号をまとめて量子化するベクトル量子化手法が広く利用されている。
 SVQ法では、量子化正規化値を用いてMDCT(Modified Discrete Cosine Transform)係数などの入力信号の各サンプルが正規化され、正規化された各サンプルがサブバンドごとにまとめて量子化される。この際、サブバンド毎の聴覚的重要度に応じ、各サブバンドに対応する符号のビット数(量子化ビット数)が動的に割り当てられる。またSVQ法では、入力信号のスパース性が仮定され、入力信号の主要成分が優先的に量子化される。そのため、高調波や母音のように周波数領域でのエネルギーがまばらにしか存在しない入力信号(スパース信号)を高精度に量子化できる。
 しかしながら、多くの周波数にエネルギーが分布する入力信号の各サンプルをSVQ法で量子化した場合、入力信号に存在するはずの周波数成分が量子化値から復元された復号信号には存在しない(復号信号から周波数成分が欠損する)頻度が高くなる。このように復号信号から周波数成分が欠損した場合、復号信号の或る周波数成分の有無が時間的に不連続に変化する頻度が高くなる。人間は、このような周波数成分の有無の時間的に不連続な変化に敏感である。入力信号が例えば音響信号である場合、このような変化はミュージカルノイズと呼ばれるノイズとして知覚される場合がある。また、入力信号が映像信号である場合には、音響信号でいうところのミュージカルノイズに相当するような、ブロックノイズが発生する場合がある。以下、ミュージカルノイズ及びブロックノイズを総称して「ミュージカルノイズ等」と呼ぶ。
 これに対し、SVQ法と比べ、復号信号から周波数成分が欠損する頻度が比較的低いAVQ法(Algebraic Vector Quantization、例えば非特許文献2参照)というベクトル量子化手法がある。AVQ法はSVQ法と同様に信号のスパース性を仮定した手法であるが、SVQ法よりも多くの周波数成分を復元可能な量子化値を得ることができる。
特開平7-261800
Recommendation ITU-T G.729.1, SERIES G: TRANSMISSION SYSTEMS AND MEDIA, DIGITAL SYSTEMS AND NETWORKS, Digital terminal equipments - Coding of analogue signals by methods other than PCM, G.729-based embedded variable bit-rate coder: An 8-32 kbit/s scalable wideband coder bitstream interoperable with G.729. Recommendation ITU-T G.718, SERIES G: TRANSMISSION SYSTEMS AND MEDIA, DIGITAL SYSTEMS AND NETWORKS, Digital terminal equipments - Coding of voice and audio signals, Frame error robust narrow-band and wideband embedded variable bit-rate coding of speech and audio from 8-32 kbit/s.
 しかしながら、AVQ法の振幅の量子化精度はSVQ法と比べて荒い。たとえ復号信号から周波数成分が欠損する頻度が低くても振幅の量子化精度が荒ければ、ミュージカルノイズ等が発生する。このような問題はAVQ法に限られるものではなく、量子化精度に基づいてミュージカルノイズ等が発生する場合に共通する。また、このような問題は入力信号が周波数領域の信号である場合だけではなく、入力信号が時間領域の信号である場合にも生じ得る。
 本発明では、量子化精度に基づいて発生するミュージカルノイズ等を低減する技術が提供される。
 符号化時に、複数のサンプルをまとめてベクトル量子化してベクトル量子化インデックスと複数のサンプルそれぞれの量子化値を求め、ベクトル量子化インデックスに対応する符号用に割り当てられたビット数からベクトル量子化インデックスに対応する符号に用いられたビット数を減算して得られる数以下のビット数を、それぞれが複数のサンプル位置からなり聴覚特性に基づく優先順位が与えられた複数のサンプル位置集合のうちの1個以上のサンプル位置集合に、聴覚特性に基づく所定の優先順位に従って割り当て、ビット数が割り当てられたサンプル位置集合それぞれについて、複数組の、サンプルそれぞれの位置に対応する予め定めた係数による組のうち、該サンプル位置集合に属するサンプルの値と、該サンプル位置集合に属するサンプルの量子化値とサンプルそれぞれの位置に対応する係数とを乗算した値との間の誤差の該サンプル位置集合に属する全サンプル位置についての和を最小にする係数の組を表すインデックス情報を出力する。
 復号時に、入力されたベクトル量子化インデックスに対応する複数の値を複数のサンプル位置それぞれに対応する復号値として求め、サンプル位置を構成する複数のサンプル位置集合のうち、聴覚特性に基づく所定の優先順位に従ってビット数が割り当てられたサンプル位置の集合を処理対象として、入力されたインデックス情報が表す、複数のサンプル位置に対応する予め定めた係数による組を用い、処理対象のサンプル位置集合に含まれる各サンプル位置に対応する、復号値と係数とを乗算した値を出力する。
 符号化においては、複数のサンプルそれぞれの量子化値を修正するために複数個の勾配係数による組を表すインデックス情報を出力するため、復号時の量子化誤差を低減させ、ミュージカルノイズ等を低減させることができる。
 復号においては、インデックス情報が表す複数個の勾配係数による組を用いて複数の復号値を修正するため、量子化誤差を低減でき、ミュージカルノイズ等を低減することができる。
図1は符号化装置及び復号装置の例の機能ブロック図である。 図2は符号化方法の例の流れ図である。 図3はステップE4の例の流れ図である。 図4はステップE4の例の流れ図である。 図5は復号方法の例の流れ図である。 図6はステップD3の例の流れ図である。 図7はステップD3の例の流れ図である。 図8は入力信号と量子化値と勾配係数(傾き補正ゲイン)との関係を例示した図である。
 以下、この発明の一実施形態を詳細に説明する。
 (構成)
 図1に例示するように、実施形態の符号化装置11は、正規化値計算部112、正規化値量子化部113、ベクトル量子化部115及び勾配計算部116を例えば含む。勾配計算部116は、「ビット割当部」及び「係数組選択部」に相当する。
図1に例示するように、実施形態の復号装置12は、正規化値復号部121、ベクトル復号部122及び勾配修正部124を例えば含む。必要に応じて、符号化装置11は、周波数領域変換部111を例えば含んでいてもよい。復号装置12は、時間領域変換部125、平滑化部126を例えば含んでいてもよい。
 (符号化処理)
 符号化装置11は図2に例示する符号化方法の各ステップを実行する。
 入力信号X(k)は正規化値計算部112、ベクトル量子化部115及び勾配計算部116に入力される。この例の入力信号X(k)は、音響信号などの時系列信号である時間領域信号x(n)を周波数領域に変換して得られる周波数領域信号である。周波数領域の入力信号X(k)が符号化装置11に直接入力されてもよいし、周波数領域変換部111が入力された時間領域の入力信号x(n)を周波数領域に変換して周波数領域の入力信号X(k)が生成されてもよい。周波数領域変換部111が周波数領域の入力信号X(k)を生成する場合、周波数領域変換部111は、入力された時間領域の入力信号x(n)を、例えばMDCT(Modified Discrete Cosine Transform)により周波数領域の入力信号X(k)に変換して出力する。nは時間領域での信号の番号(離散時間番号)であり、kは周波数領域での信号(サンプル)の番号(離散周波数番号)である。nの値が大きいほど遅い時間に対応する。kの値が大きいほど高い周波数に対応する。1フレームがL個のサンプルで構成されているとして、時間領域信号x(n)はフレームごとに周波数領域に変換され、L個の周波数成分を構成する周波数領域の入力信号X(k)(k=0,1,…,L-1)が生成される。Lは所定の正の数、例えば64や80などの1よりも大きな整数である。なお、MDCTを用いる場合には、入力された時系列信号であるL個のサンプルからなるフレームごとに周波数領域へ変換され、この変換対象となるフレームが1/2フレームずつ、すなわち、L/2個のサンプルずつシフトされる。
 正規化値計算部112は、フレームごとに、入力された入力信号X(k)のL個のサンプルのうちの所定の個数Cのサンプルを代表する値である正規化値τ を計算する(ステップE1)。τ は、τの上付きバーを意味する。ここで、τは、1フレーム中のL個のサンプルのうちの所定の個数Cのサンプルにより構成される各サブバンドに対して、一意に割り当てられた0以上の整数とする。
 Cは、L、又は、1及びL以外のLの公約数である。なお、CをLとすることは、L個のサンプルごとに正規化値を求めることを意味する。Cを1およびL以外のLの公約数にすることは、L個のサンプルをサブバンド(「サンプル位置集合」に相当)に分割して、各サブバンドを構成するC個のサンプルごとに正規化値を求めることを意味する。例えば、L=64であり、8個の周波数成分でサブバンドを構成するとした場合には、8個のサブバンドが構成され、各サブバンドの正規化値が計算されることになる。また、CがLである場合τ=0であり、正規化値τ はL個のサンプルを代表する値である。すなわち、CがLである場合、フレームごとに1つの正規化値τ が計算される。一方、Cが1及びL以外のLの公約数である場合、τは1フレーム中の各サブバンドに対応する整数τ=0,…,(L/C)-1であり、正規化値τ はτに対応するサブフレームに属するC個のサンプルを代表する値である。すなわち、Cが1及びL以外のLの公約数である場合、フレームごとに(L/C)個の正規化値τ (τ=0,…,(L/C)-1)が計算される。また、Cの値にかかわらずk=τ・C,・・・,(τ+1)・C-1である。正規化値計算部112で計算されたτ は、正規化値量子化部113に送られる。
 [正規化値τ の具体例]
 正規化値τ は、C個のサンプルを代表する値である。言い換えると、正規化値τ は、C個のサンプルに対応する値である。正規化値τ の例は、以下のようなC個のサンプルのパワー平均値に対する平方根である。
Figure JPOXMLDOC01-appb-M000001

 正規化値τ の他の例は、以下のようなC個のサンプルのパワー合計値に対する平方根をCで除した値である。
Figure JPOXMLDOC01-appb-M000002

 正規化値τ の他の例は、以下のようなC個のサンプルの平均振幅値である。
Figure JPOXMLDOC01-appb-M000003

 正規化値τ は上記の例に限定されない([正規化値τ の具体例]の説明終わり)。
 正規化値量子化部113は、正規化値τ を量子化した量子化正規化値τ及びその量子化正規化値τに対応する正規化値量子化インデックスを求める(ステップE2)。τは、Xの上付きバーを意味する。量子化正規化値τはベクトル量子化部115に送られ、正規化値量子化インデックスに対応する符号(ビットストリーム)が復号装置12に送られる。
 ベクトル量子化部115は、フレームごとに、入力された入力信号X(k)のL個のサンプルのうちの複数のサンプルX(k)をまとめてベクトル量子化してベクトル量子化インデックスを生成する。ベクトル量子化インデックスは、量子化代表ベクトルを表わすインデックスである。この例のベクトル量子化部115は、量子化正規化値τを用いて複数のX(k)を正規化し、正規化された複数のサンプルX(k)’を求める。例えば、ベクトル量子化部115は、X(k)をτで除算する、もしくはX(k)にτの逆数を乗ずることでX(k)’を求める。ベクトル量子化部115は、例えば、図示していないベクトルコードブック記憶部に記憶された複数の量子化代表ベクトルの中から、複数のX(k)’を成分とするベクトルに最も近い量子化代表ベクトルを選択し、選択された量子化代表ベクトルを表わすベクトル量子化インデックスを出力することにより、ベクトル量子化を行う。ベクトル量子化部115は、例えばC個のX(k)’をまとめてベクトル量子化を行う。ベクトル量子化部115は、例えばAVQ法(例えば非特許文献2等参照)等のベクトル量子化方法を用いてベクトル量子化を行うが、これ以外のベクトル量子化方法が採用されてもよい。また、Cがサブバンドのサンプル数である場合、人間の聴覚特性を考慮した優先順位が低いサブバンドについてベクトル量子化がなされなくてもよい。優先順位は、例えば、人間が知覚しやすい周波数に対応するサブバンドほど高い。例えば、量子化正規化値τが大きいサブバンドほど高い優先順位が与えられる。
 また、ベクトル量子化によって得られる符号のビット数は、入力信号に応じて様々である。入力信号によっては、ベクトル量子化によって得られる符号(ベクトル量子化インデックスなど)のビット数が、ベクトル量子化用に割り当てられたビット数未満となり、ベクトル量子化用に割り当てられたビットの一部が余る場合がある。なお、「ベクトル量子化用に割り当てられたビット」とは、符号化装置11から復号装置12に送られる符号のうちで、ベクトル量子化によって得られる符号(ベクトル量子化インデックスに対応する符号)のために割り当てられたビットを意味する。「ベクトル量子化用に割り当てられたビット数」は、ベクトル量子化用に割り当てられたビットのビット数を表す。「ベクトル量子化用に割り当てられたビット数」は、フレームごとに定められたものであってもよいし、サブバンドごとに定められたものであってもよい。また、「ベクトル量子化用に割り当てられたビット数」は、入力信号に応じて変動するものであってもよいし、入力信号にかかわらず固定されたものであってもよい。ベクトル量子化部115は、ベクトル量子化用に割り当てられたビットのうち、実際のベクトル量子化で使用されなかったビットのビット数を未使用ビット数Uとして計算する。本形態の例では、1フレームごと(L個のサンプルごと)に未使用ビット数Uを計算する。例えば、ベクトル量子化部115は、処理対象のフレームでのベクトル量子化用に割り当てられたビット数から、実際にそのフレームに属するL個のサンプルのベクトル量子化によって得られたベクトル量子化インデックスのビット数の総数を減じた値を未使用ビット数Uとする。Uは0以上の整数である。
 さらに、ベクトル量子化部115は、ベクトル量子化インデックスをローカルデコードした値である複数の量子化値X(k)を求めて出力する。例えば、ベクトル量子化部115は、ベクトル量子化インデックスによって表される量子化代表ベクトルの各成分X(k)’を、量子化正規化値τを用いて逆正規化した値をX(k)の量子化値X(k)として出力する。例えば、ベクトル量子化部115は、X(k)’とτとの乗算値を量子化値X(k)として出力する。この例の量子化値X(k)は復号装置12で得られる復号値X(k)と等しい。ベクトル量子化がなされていないサブバンドの量子化値X(k)は0となる。なお、Xは、Xの上付きハットを意味する。
 ベクトル量子化部115は、ベクトル量子化インデックス、未使用ビット数U及び量子化値X(k)を勾配計算部116に送る(ステップE3)。
 勾配計算部116は、MMAX組の、C個の勾配係数(傾き補正ゲイン)により構成される組を、例えば図示していない記憶部に保持する。MMAXは2以上の整数である。例えば、勾配計算部116は、C個の勾配係数(傾き補正ゲイン)γ(k’)(k’=0,・・・,C-1)を要素とする勾配係数ベクトルγ=[γ(0),・・・,γ(C-1)](複数個の勾配係数による組)をm(m=0,・・・,MMAX-1)行目の行ベクトルとする式(1)に示す勾配行列γを保持する。
Figure JPOXMLDOC01-appb-M000004
 勾配計算部116は、入力されたC個のサンプルX(k)(k=τ・C,・・・,(τ+1)・C-1)に対応する値を要素とする第1ベクトルと、入力されたC個の量子化値X(k)(k=τ・C,・・・,(τ+1)・C-1)のそれぞれに勾配係数ベクトルγの各要素γ(k’)(k’=0,・・・,C-1)を乗じて得られるC個の修正値に対応する値を要素とする第2ベクトルとの誤差を最小化する(例えば最小にする)勾配係数ベクトルの行番号m’を求め、行番号m’を表すインデックス情報idxをベクトル量子化用に割り当てられたビットのうちで使用されなかったビットの領域(「未使用ビット領域」と呼ぶ)に書き込む。
 言い換えると、勾配計算部116は、複数の勾配係数γ(k’)を要素とする勾配係数ベクトルγを行ベクトルとする勾配行列γの中から、複数のサンプルX(k)に対応する値を要素とする第1ベクトルと、複数の量子化値X(k)のそれぞれに勾配係数ベクトルγの各要素を乗じて得られる修正値に対応する値を要素とする第2ベクトルとの間の誤差を最小化する勾配係数ベクトルの行番号m’を表すインデックス情報idxを出力し、ベクトル量子化インデックスに対応する符号(ビットストリーム)の未使用ビット領域に配置する(ステップE4)。
 これにより、符号化装置11は、未使用ビット領域を有効利用して振幅の量子化誤差を修正するための情報を復号装置12に送ることができ、量子化精度に基づいて発生するミュージカルノイズ等を低減させることができる。
 勾配係数ベクトルγの要素であるC個の勾配係数γ(0),・・・, γ(C-1)は互いに相関を持つ。言い換えると、各勾配係数ベクトルγは互いに相関を持つ複数の勾配係数γ(0),・・・, γ(C-1)を要素とするベクトルである。X(τ・C),・・・, X((τ+1)・C-1)は、kを第1軸にとり、X(k)を第2軸にとる(k, X(k))平面上の直線や曲線に偏って分布する場合が多い。このようなX(τ・C),・・・, X((τ+1)・C-1)の特性を考慮した勾配係数γ(0),・・・, γ(C-1)を要素とする勾配係数ベクトルγを用いることで、量子化誤差を高い精度で修正できる。例えば、同一の行番号mに対応する各勾配係数γ(0),・・・, γ(C-1)が、k’(勾配係数γ(k’)に対応する周波数に対応する値)を第1軸にとりγ(k’)(勾配係数の値)を第2軸にとる(k’, γ(k’))平面上の直線又は特定の曲線に偏って分布するものとする。言い換えると、例えばベクトルの要素の順序に対応する値k’を第1軸にとりベクトルの要素の値γ(k’)を第2軸にとる(k’, γ(k’))平面上の直線又は特定の曲線に偏って分布する複数の勾配係数γ(0),・・・, γ(C-1)を要素とするベクトルを勾配係数ベクトルγとする。より具体的には、例えば同一の行番号mに対応する各勾配係数γ(0),・・・, γ(C-1)が、(k’, γ(k’))平面上の直線上又は特定の曲線上に位置するものとする。言い換えると、(k’, γ(k’))平面上の直線又は特定の曲線上の各勾配係数γ(0),・・・, γ(C-1)を要素とするベクトルを勾配係数ベクトルγとした。(k’, γ(k’))平面上の直線上又は特定の曲線は、例えば行番号mごとに異なる。以下に勾配行列γを例示する。この例は、C=8、MMAX=3の場合のものである。この例では、各勾配係数γ(0),・・・, γ(7)が行番号m(m=0,1,2)ごとに定められた直線上に配置される。
Figure JPOXMLDOC01-appb-M000005
 第1ベクトルの例は、C個のX(k)を要素とするベクトル、C個のX(k)の大きさ|X(k)|を要素とするベクトル、C個のX(k)又は|X(k)|に定数や変数を乗じた値を要素とするベクトルなどである。第2ベクトルの例は、C個の修正値を要素とするベクトル、C個の修正値の大きさを要素とするベクトル、C個の修正値又は大きさに定数や変数を乗じた値を要素とするベクトルなどである。修正値の例は、X(k)とγ(k’)との積、X(k)の大きさ|X(k)|とγ(k’)との積、X(k)とγ(k’)との積の大きさ、X(k)とγ(k’)との積の大きさを表す値、その他X(k)とγ(k’)との積に対応する値などである。
 第1ベクトルと第2ベクトルとの間の誤差の例は、第1ベクトルと第2ベクトルとの間の距離である。距離の定義に限定はなく、マンハッタン距離、ユークリッド距離、それらの変形等どのようなものでもよい。第1ベクトルと第2ベクトルとの誤差を最小化する勾配係数ベクトルの例は、第1ベクトルと第2ベクトルとの誤差を最小にする勾配係数ベクトルや、或る探索条件や探索範囲内で第1ベクトルと第2ベクトルとの誤差を最小にする勾配係数ベクトルなどである。
 未使用ビット領域は、例えば、定められた未使用ビット領域の基準位置(例えば先頭アドレス)と入力された未使用ビット数Uとによって特定できる。ただし、未使用ビット領域に書き込むことが可能なインデックス情報idxのビット数の上限は未使用ビット数Uである。よって、必ずしもあらゆる行番号に対応するインデックス情報idxを未使用ビット領域に書き込めるとは限らない。そこで勾配計算部116は、例えば、未使用ビット領域に書き込むことが可能なインデックス情報idxで識別可能な行番号の範囲の行番号のみを探索範囲とする。言い換えると、勾配計算部116は、未使用ビット領域に書き込むことが可能なインデックス情報idxが表す行番号のみを選択する。例えば、勾配計算部116は、未使用ビット領域に書き込むことが可能なインデックス情報idxで識別可能なmMAX種類の行番号m=0,・・・,mMAX-1から、以下のような行番号m’を特定し、行番号m’に対応するインデックス情報idxを未使用ビット領域に書き込む。
Figure JPOXMLDOC01-appb-M000006

なお、∥・∥は・のノルムであり、argmin∥・∥は∥・∥を最小にするmをm’とすることを意味し、argminはargminの下付きのmを意味し、χ=[X(τ・C),…,X((τ+1)・C-1)]、χ=[X(τ・C),…,X((τ+1)・C-1)]であり、Aは以下のような行番号mに対応する勾配係数ベクトルγ=[γ(0),・・・,γ(C-1)](m=0,…,mMAX-1)を対角成分に持つ対角行列を意味する。
Figure JPOXMLDOC01-appb-M000007

に対する
 Cがサブバンドのサンプル数である場合(τ>0の場合)、勾配計算部116は、例えばサブバンドごとに勾配係数ベクトルの行番号m’を表すインデックス情報idxを未使用ビット領域に配置する。この場合、各サブバンドに対応するインデックス情報idxをそれぞれ格納するために未使用ビット領域を各サブバンドに分配しなければならない。勾配計算部116は、例えば人間の聴覚特性を考慮した所定の優先順位に従って、各サブバンドのインデックス情報idxを配置する未使用ビット領域中のビット領域を決める。
 例えば勾配計算部116は、サブバンド(「サンプル位置集合」に相当)のそれぞれに与えられた優先順位に応じてそのサブバンドに対応するインデックス情報idxを配置するビット領域の大きさを決める。優先順位は、例えば、人間が知覚しやすい周波数に対応するサブバンドほど高い。例えば勾配計算部116は、優先順位が高いサブバンドのインデックス情報idxを優先的に未使用ビット領域に配置する。具体的には、例えば勾配計算部116は、優先順位が高いサブバンドに対応するインデックス情報idxを配置するビット領域を、優先順位が低いサブバンドに対応するインデックス情報idxを配置するビット領域よりも大きくする。言い換えると、サブバンドの何れかである第1サブバンドに割り当てられるビット数が、当該第1サブバンドよりも優先順位が低い第2サブバンドに割り当てられるビット数以上とされる。また、例えば勾配計算部116は、ベクトル量子化部115でベクトル量子化がなされなかったサブバンドに対応するインデックス情報idxを配置するためのビット領域を割り当てない。例えばベクトル量子化がなされなかったサブバンドのX(k)はすべて0であるため、勾配計算部116は、属するX(k)の振幅やエネルギーの和が0となるサブバンドについてインデックス情報idxを配置するためのビット領域を割り当てない。この場合、ベクトル量子化がなされなかったサブバンドについては、例えばインデックス情報idxを特定するための処理を行う必要もない。
 以上のように勾配計算部116は、ベクトル量子化インデックスに対応する符号用に割り当てられたビット数のうち実際にベクトル量子化インデックスに対応する符号に用いられなかったビット数の少なくとも一部を聴覚特性に基づく所定の優先順位に従って複数のサンプルに割り当て、当該複数のサンプルに割り当てたビット数のインデックス情報idxを出力する。
 言い換えると、勾配計算部116は、ベクトル量子化インデックスに対応する符号用に割り当てられたビット数からベクトル量子化インデックスに対応する符号に用いられたビット数を減算して得られる数以下のビット数を、それぞれが複数のサンプル位置からなり聴覚特性に基づく優先順位が与えられた複数のサンプル位置集合のうちの1個以上のサンプル位置集合に、聴覚特性に基づく所定の優先順位に従って割り当て、ビット数が割り当てられたサンプル位置集合それぞれについて、複数組の、サンプルそれぞれの位置に対応する予め定めた係数による組のうち、該サンプル位置集合に属するサンプルの値と、該サンプル位置集合に属するサンプルの量子化値とサンプルそれぞれの位置に対応する係数とを乗算した値との間の誤差の該サンプル位置集合に属する全サンプル位置についての和を最小にする係数の組を表すインデックス情報idxを出力する。なお、本形態の「サンプルそれぞれの位置」は、各離散周波数番号kに対応する周波数軸上の位置である。
 これにより、未使用ビット領域のみを用いてインデックス情報idxを伝送できる。
 [ステップE4の具体例1]
 この例の勾配計算部116は、図3及び図4に記載された各処理を行い、選択した勾配係数ベクトルの行番号を表すインデックス情報idxを、未使用ビット領域に書き込む。
 勾配計算部116は、i=0,h=H,u=Uとすることでi,h及びuの値を初期化し、ステップE42に進む(ステップE41)。Cがサブバンドのサンプル数を表わす場合、Hはベクトル量子化部でベクトル量子化がなされた1フレーム中のサブバンド数を表す。Cが1フレーム中のサンプル数Lを表わす場合、Hは1となる。
 勾配計算部116は、iとG(G=L/C)とを比較し(ステップE42)、i<GであればステップE43に進み、i<GでなければステップE4の処理を終える。なお、Cがサブバンドのサンプル数を表わす場合、Gは1フレーム中のサブバンドの総数を表す。Cが1フレーム中のサンプル数Lを表わす場合、G=1となる。また、「δとηとを比較する」場合の比較方法に限定はなく、δとηとの大小関係を判定できるのであればどのような比較方法を用いてもよい。例えば、δ<ηを満たすか否かを知るためにδとηとを比較する処理は、δ<ηを満たすか否かを判定する処理でも、0<η-δを満たすか否かを判定する処理でも、δ≧ηを満たすか否かを判定する処理でも、0≧η-δを満たすか否かを判定する処理でもよい。
 ステップE43では、勾配計算部116は、uと0とを比較し(ステップE43)、u>0でなければステップE4の処理を終え、u>0であれば、b=o(i)とする(ステップE44)。Cがサブバンドのサンプル数を表わす場合、o(i)は、1フレーム中の各サブバンドをそれぞれ識別する0以上の整数のインデックスが優先順位の高い順に配列された集合Sのi番目(i=0,...,(L/C)-1)の要素(インデックス)を表す。例えば、1フレーム中のサブバンドの総数L/Cが8であり、各サブバンドが0,…,7で識別され、集合S={1,0,3,2,5,4,6,7}である場合、o(i)は集合S={1,0,3,2,5,4,6,7}の先頭からi番目の要素を表す。なお、先頭の要素を0番目の要素と表現する。この例では、0で識別されるサブバンドの優先順位が一番高く、7で識別されるサブバンドの優先順位が一番低い。1フレーム中の各サブバンドの優先順位は、入力信号X(k)に応じて動的に定められてもよいし、固定的に定められてもよい。動的に優先順位を定める方法の一例は、量子化正規化値τが大きいサブバンドほど優先順位を高くする方法である。固定的に優先順位を定める方法の一例は、人間の聴覚特性を考慮して各サブバンドの優先順位を定めておく方法(例えば低い周波数に対応するサブバンドほど優先順位を高くするなど)である。Cが1フレーム中のサンプル数Lを表わす場合、o(i)=0である。
 勾配計算部116は、flg(b)と0とを比較し(ステップE45)flg(b)>0でなければ(flg(b)=0であれば)iを1だけインクリメント(i+1を新たなiの値とすることでiの値を更新)し(ステップE421)、ステップE42に進む。なお、flg(b)は、bで識別されるサブバンド(処理対象のサンプル集合)のベクトル量子化がベクトル量子化部115で行われたか否かを表す量子化有無フラグである。ベクトル量子化の行われたサブバンドを識別するbに対してflg(b)=η(η>0、例えばη=1)となり、ベクトル量子化のなされていないサブバンドを識別するbに対してflg(b)=0となる。例えば、bで識別されるサブバンドの量子化値X(k)のエネルギーの総和が0の場合にflg(b)=0とされ、それ以外の場合にflg(b)=1とされる。
 ステップE45でflg(b)>0であれば(flg(b)=ηであれば)勾配計算部116は、u-hと0とを比較し(uとhとを比較することと等価)(ステップE46)、u-h>0であればmMAX=3、a=2とし(ステップE47)、u-h>0でなければmMAX=1、a=1とする(ステップE48)。すなわち、勾配計算部116は、ベクトル量子化インデックスに対応する符号に用いられなかったビット数のうちサブバンドの何れにも割り当てられていない残りのビット数uが、ビット数の割り当てが行われていないサブバンドの個数hよりも大きくない場合に、ビット数の割り当てが行われていないサブバンドのうち最も優先順位が高いものに第1ビット数(a=1)を割り当て、残りのビット数uが、ビット数の割り当てが行われていないサブバンドの個数hよりも大きい場合に、ビット数の割り当てが行われていない前サブバンドのうち最も前記優先順位が高いものに前記第1ビット数(a=1)よりも大きな第2ビット数(a=2)を割り当てる。またmMAXは勾配行列γの探索範囲を定める。すなわち、勾配行列γの行番号m=0からmMAX-1までの勾配係数ベクトルγが探索範囲となる。この例では勾配行列γの行番号の最大値MMAX(式(1))は2以上である。aはこの探索範囲の勾配係数ベクトルγの行番号mを表すインデックス情報idxのビット数の上限である。なお、aビットで2個の値を伝送できるが、2個の値のうち1個は補正を行わないことを表すidx=0に割り当てられる。
 勾配計算部116は、hをデクリメント(h-1を新たなhの値とすることでhの値を更新)し(ステップE49)、以下の式に表される計算を行う(ステップE410)。
Figure JPOXMLDOC01-appb-M000008
 勾配計算部116は、m=0,idx=0とすることでm及びidxの値を初期化し、ステップE412に進む(ステップE411)。
 ステップE412では、勾配計算部116は、mとmMAXとを比較し(ステップE412)、m<mMAXであれば、以下の式に表される計算を行い(ステップE413)、eMINとeとを比較し(ステップE414)、eMIN>eでなければ、mを1だけインクリメントし(ステップE416)、ステップE412に進む。eMIN>eであれば勾配計算部116は、idx=m+1及びeMIN=eとしてidx及びeMINを更新し(ステップE415)、mを1だけインクリメントして(ステップE416)、ステップE412に進む。
Figure JPOXMLDOC01-appb-M000009
 
 一方、ステップE412でm<mMAXでないとされた場合、勾配計算部116は、未使用ビット領域にidxを書き込み、u-aを新たなuとすることでuの値を更新し(ステップE417)、ステップE418に進む。この例の勾配計算部116は、未使用ビット領域の未使用のaビットの領域にidxを書き込む。この際、復号装置12が、aに基づいて、必要なidxが未使用ビット領域のどこに配置されているのかを特定できるようにしておく。例えば、未使用ビット領域の未使用の領域をどのような順序で割り当てていくかが予め定められており、勾配計算部116は、この順序に従ってidxを格納する領域を決定していく。
 ステップE418では、勾配計算部116は、idx>0であるか否か(idx=0であるか否か)を判定し(ステップE418)、idx>0であれば(idx=0でなければ)、複数の量子化値X(b・C),…,X((b+1)・C-1)を以下のように更新し(ステップE419)、iを1だけインクリメントして(ステップE421)、ステップE42に進む。
Figure JPOXMLDOC01-appb-M000010

 idx>0でなければ(idx=0であれば)、以下に示すように、勾配計算部116は、ローカルデコード値である複数の量子化値X(b・C),…,X((b+1)・C-1)を更新することなく(ステップE420)、iを1だけインクリメントして(ステップE421)、ステップE42に進む。
Figure JPOXMLDOC01-appb-M000011

 以上のように、勾配計算部116は、処理対象のサブバンド(処理対象のサンプル集合)に割り当てられたビット数で表現可能なインデックス情報idxを出力する。
 [ステップE4の具体例2]
 ステップE4は、図3及び図4に示すように、例えば以下のように実行されてもよい。
 ステップE41~E45が実行され、ステップE45でflg(b)>0でない(flg(b)=0である)と判定されれば勾配計算部116は、iを1だけインクリメントし(ステップE421)、ステップE42に進む。ステップE45でflg(b)>0である(flg(b)=ηである)と判定されれば、勾配計算部116は、mMAX=1、a=1とし(ステップE48’)、ステップE46に進む。
 ステップE46では、勾配計算部116は、u-hと0とを比較し(uとhとを比較することと等価)(ステップE46)、u-h>0であればmMAX=3、a=2として(ステップE47)ステップE49に進み、u-h>0でなければmMAX及びaを変更せずにステップE49に進む。その他は[ステップE4の具体例1]と同じである。この場合も勾配計算部116は、処理対象のサブバンド(処理対象のサンプル集合)に割り当てられたビット数で表現可能なインデックス情報idxを出力する。
 [ステップE4の具体例3]
 ステップE4の具体例1,2において、式(2)の代わりに、以下のような計算が行われてもよい。
Figure JPOXMLDOC01-appb-M000012

また、ステップE4の具体例1,2において、式(3)の代わりに、以下のような計算が行われてもよい。
Figure JPOXMLDOC01-appb-M000013

 これで[ステップE4の具体例]の説明を終える。
 ベクトル量子化インデックスと未使用ビット領域に書き込まれたインデックス情報idxとを含む修正後ベクトル量子化インデックスに対応する符号(ビットストリーム)は復号装置12に送られる。
 (復号処理)
 復号装置12は図5に例示する復号方法の各ステップを実行する。
 正規化値復号部121は、復号装置12に入力された正規化値量子化インデックスに対応する復号正規化値τを求める(ステップD1)。復号正規化値τは、ベクトル復号部122に送られる。
 図示していないコードブック記憶部に複数の正規化値量子化インデックスのそれぞれに対応する正規化値が記憶されているとする。正規化値復号部121は、入力された正規化量子化インデックスをキーとしてそのコードブック記憶部を参照して、その正規化量子化インデックスに対応する正規化値を取得して、復号正規化値τとする。
 ベクトル復号部122は、復号装置12に入力された修正後ベクトル量子化インデックスが含むベクトル量子化インデックスに対応する複数の値を求めて複数の復号値X(k)とする。また、ベクトル復号部122は、ベクトル量子化インデックスを用いて未使用ビット数Uを計算する(ステップD2)。
 本形態では、図示していないベクトルコードブック記憶部に複数のベクトル量子化インデックスのそれぞれに対応する量子化代表ベクトルが記憶されているとする。ベクトル復号部122は、入力されたベクトル量子化インデックスに対応する量子化代表ベクトルをキーとしてそのベクトルコードブック記憶部を参照して、そのベクトル量子化インデックスに対応する量子化代表ベクトルを取得する。ベクトル復号部122は、量子化代表ベクトルの成分X(k)’を量子化正規化値τで逆正規化した復号値X(k)を出力する。例えば、ベクトル復号部122は、X(k)’とτとの乗算値を復号値X(k)として出力する。
 また、ベクトル復号部122は、ベクトル量子化用に割り当てられたビットのうち、実際のベクトル量子化で使用されなかったビットのビット数を未使用ビット数Uとして計算する。本形態の例では、ベクトル復号部122は、1フレームごと(L個のサンプルごと)に未使用ビット数Uを計算する。例えば、ベクトル復号部122は、処理対象のフレームでのベクトル量子化用に割り当てられたビット数から、そのフレームに対応するベクトル量子化インデックスのビット数の総数を減じた値を未使用ビット数Uとする。
 復号値E(k)及び未使用ビット数Uは、勾配修正部124に送られる。
 勾配修正部124は、符号化装置11で使用したのと同じ勾配行列γ(式(1)参照)を、例えば図示していない記憶部に保持する。勾配修正部124は、復号装置12に入力された修正後ベクトル量子化インデックスが含む未使用ビット領域からインデックス情報idxを読み出し、idxが表す行番号m’の勾配係数ベクトルγm’の各要素γm’(k’)(k’=0,・・・,C-1)を用い、C個の復号値X(k)(k=τ・C,・・・,(τ+1)・C-1)を修正する。言い換えると、勾配修正部124は、複数の勾配係数γ(k’)を要素とする勾配係数ベクトルγを行ベクトルとする勾配行列γ中のインデックス情報idxが表す行番号m’の勾配係数ベクトルγm’の各要素γm’(k’)を用い、複数の復号値X(k)を修正する(ステップD3)。例えば、勾配修正部124は、インデックス情報idxが表す行番号m’の勾配係数ベクトルγm’の要素γm’(k’)と復号値X(k)との乗算値を復号値X(k)の修正値X UD(k)とする。勾配修正部124は修正値X UD(k)を出力する。すなわち、勾配修正部124は、複数個のサンプル位置を構成する複数のサンプル位置集合のうち、聴覚特性に基づく所定の優先順位に従ってビット数が割り当てられたサンプル位置の集合を処理対象として、入力されたインデックス情報idxが表す、複数のサンプル位置に対応する予め定めた係数による組を用い、処理対象のサンプル位置集合に含まれる各サンプル位置に対応する、復号値と係数とを乗算した値を出力する。
 [ステップD3の具体例1]
 この例の勾配修正部124は、図6及び図7に記載された各処理を行い、復号値X(k)を修正する。
 勾配修正部124は、i=0,h=H,u=Uとすることでi,h及びuの値を初期化し、ステップD32に進む(ステップD31)。
 勾配修正部124は、iとG(G=L/C)とを比較し(ステップD32)、i<GであればステップD33に進み、i<GでなければステップD3の処理を終える。
 ステップD33では、勾配修正部124は、uと0とを比較し(ステップD33)、u>0でなければステップD3の処理を終え、u>0であればb=o(i)とする(ステップD34)。符号化装置11のo(i)と復号装置12のo(i)は同一である。
 勾配修正部124は、flg(b)と0とを比較し(ステップD35)、flg(b)>0でなければ(flg(b)=0であれば)、勾配修正部124は、iを1だけインクリメントし(ステップD315)、ステップD32に進む。なお、flg(b)は、bで識別されるサブバンドのベクトル量子化がベクトル量子化部115で行われたか否かを表す量子化有無フラグである。ベクトル量子化の行われたサブバンドを識別bに対してflg(b)=η(η>0、例えばη=1)となり、ベクトル量子化のなされていないサブバンドを識別するbに対してflg(b)=0となる。例えば、bで識別されるサブバンドの復号値X(k)のエネルギーの総和が0の場合にflg(b)=0とされ、それ以外の場合にflg(b)=1とされる。
 ステップD35でflg(b)>0であれば(flg(b)=ηであれば)勾配修正部124は、u-hと0とを比較(uとhとを比較することと等価)(ステップD36)し、u-h>0であればmMAX=3、a=2とし(ステップD37)、u-h>0でなければmMAX=1、a=1とする(ステップD38)。
 勾配修正部124は、hをデクリメントし(ステップD39)、aに基づき修正後ベクトル量子化インデックスが含む未使用ビット領域からインデックス情報idxを読み込む(ステップD310)。勾配修正部124は、u-aを新たなuとすることでuの値を更新する(ステップD311)。勾配修正部124は、idx>0であるか否か(idx=0であるか否か)を判定し(ステップD312)、idx>0であれば(idx=0でなければ)、複数の復号値X(b・C),…,X((b+1)・C-1)を以下のように更新し(ステップD313)、iを1だけインクリメントして(ステップD315)、ステップD32に進む。
Figure JPOXMLDOC01-appb-M000014

 idx>0でなければ(idx=0であれば)、以下に示すように、勾配修正部124は、複数の復号値X(b・C),…,X((b+1)・C-1)を更新することなく(ステップD314)、iを1だけインクリメントして(ステップD315)、ステップD32に進む。
Figure JPOXMLDOC01-appb-M000015
 [ステップD3の具体例2]
 ステップD3は、図6及び図7に示すように、例えば以下のように実行されてもよい。
 ステップD31~D35が実行され、ステップD35でflg(b)>0でない(flg(b)=0である)と判定されれば勾配修正部124は、iを1だけインクリメントし(ステップD315)、ステップD32に進む。ステップD35でflg(b)>0である(flg(b)=ηである)と判定されれば、勾配修正部124は、mMAX=1、a=1とし(ステップD38’)、ステップD36に進む。
 ステップD36では、勾配修正部124は、u-hと0とを比較し(uとhとを比較することと等価)(ステップD36)、u-h>0であればmMAX=3、a=2として(ステップD37)ステップD39に進み、u-h>0でなければmMAX及びaを変更せずにステップD39に進む。その他は[ステップD3の具体例1]と同じである([ステップD3の具体例]の説明終わり)。
 時間領域での復号信号が必要な場合、勾配修正部124から出力された修正値X UD(k)は時間領域変換部125に入力され、時間領域変換部125はX UD(k)を例えば逆フーリエ変換により時間領域信号z(n)に変換して出力する。
 (本形態の特徴)
 このように本形態では、復号装置12が符号化装置11で選択された勾配係数ベクトルを用いて複数の復号値X(k)を修正するため、量子化誤差に基づくミュージカルノイズ等を軽減できる。
 また本形態では、互いに相関を持つ勾配係数γ(0),・・・, γ(C-1)を要素とするベクトルを勾配係数ベクトルγとした。例えば、(k, γ(k))平面上の直線又は特定の曲線に偏って分布する複数の勾配係数γ(0),・・・, γ(C-1)を要素とするベクトルを勾配係数ベクトルγとした。音声信号や音響信号などの入力信号のエンベロープは直線や曲線をなす場合が多く、このような入力信号の特性を反映させた勾配係数ベクトルγ用いることにより、インデックス情報idxの情報量を抑制しつつ量子化誤差を高精度に修正できる。図8の例の場合、k=0,…,7のサブバンドでの入力信号の大きさ|X(k)|はkが大きいほど小さい。そのため、(k, γ(k))平面上の傾きが負となる直線に偏って分布する勾配係数γ(0),・・・, γ(7)を要素とする勾配係数ベクトルγを用いて|X(0)|,・・・, |X(7)|を修正することで、量子化値の大きさ|X^(0)|,・・・, |X^(7)|との誤差を小さくできる。このようにサブバンドごとに入力信号の特性に適した勾配係数ベクトルγを用いることで量子化誤差を効率的に削減することができる。
 また、符号化装置11で選択された勾配係数ベクトルγm’を特定するためのインデックス情報idxは未使用ビット領域を有効利用して伝送されるため、インデックス情報idxを伝送するための付加領域が不要である。
 ただし、未使用ビット領域に書き込み可能なビット数の上限は未使用ビット数Uであり、必ずしもすべてのサブバンドに対するインデックス情報idxが未使用ビット領域に書き込まれるとは限らない。そこで、本形態では、優先順位の高いサブバンドに対応するインデックス情報idxを優先的に未使用ビット領域に書き込む。これにより、例えば、人間の聴覚特性上重要なサブバンドでの量子化誤差を減らし、ミュージカルノイズ等を軽減することができる。
 (実験結果)
 本形態の効果を表す実験結果を示す。
 本実験では、以下の2条件について、入力信号と復号信号との間のSNR(Signal to Noise Ratio)を求めた。
 条件1:従来技術(特許文献1のように入力信号のベクトル量子化を行って得られた符号が復号されて復号信号が得られる)
 条件2:実施形態技術(上述の実施形態のように入力信号のベクトル量子化と勾配計算とを行って得られた符号が復号されて復号信号が得られる)
 SNRは、ベクトル量子化の未使用ビット数Uが1ビット以上となるフレームのみから算出した。入力信号は、音声、邦楽、洋楽の三種類を用いた。以下に結果を示す。
Figure JPOXMLDOC01-appb-T000016
 このように、実施形態技術では、従来技術に比べ音声、邦楽、洋楽の三種類の入力信号について平均でSNRを約0.35dB改善できた。
 変形例:
 なお、本発明は上述の実施の形態に限定されるものではない。例えば、復号装置12が平滑化部126を含む場合、平滑化部126は、ステップD3(図5)で得られた修正値X UD(k)を入力とし、修正値X UD(k)よりも過去の修正値X UD(k)’が0でない場合、過去の修正値X UD(k)’と修正値X UD(k)とを重み付き加算した値を平滑化値X POST(k)として出力する。X UD(k)’が0の場合、平滑化部126は、修正値の重み付き加算、すなわち修正値の平滑化を行わず、X UD(kをX POST(k)として出力する(図5/ステップD4’)。過去の修正値X UD(k)’の例は、修正値X UD(k)に対応するフレームの1フレーム過去のステップD3で得られた修正値や、修正値X UD(k)に対応するフレームの1フレーム過去のステップD4’で得られた平滑化値などである。
 X POST(k)は次式のように表わされる。αとβは調整係数であり、求める性能及び仕様に応じて適宜決定される。例えば、α=0.85、β=0.15である。φ(・)は・の正負符号を表す。
Figure JPOXMLDOC01-appb-M000017
 これにより、X UD(k)の振幅特性の時間軸方向の不連続性によって生じるミュージカルノイズ等を軽減することができる。時間領域での復号信号が必要な場合、平滑化部126から出力されたX POST(k)は時間領域変換部125に入力され、時間領域変換部125はX POST(k)を例えば逆フーリエ変換により時間領域信号z(n)に変換して出力する。
 その他、α、βは、求められる性能及び仕様に応じて適宜変更されてもよい。
 また、入力信号X(k)は、周波数領域信号である必要はなく、時間領域信号等の任意の信号であってもよい。すなわち、この発明は、周波数領域信号以外の任意の信号に対する符号化、復号に用いることができる。この場合、同一の行番号mに対応する各勾配係数γ(0),・・・, γ(C-1)は、例えばk’(勾配係数γ(k’)に対応する時間に対応する値)を第1軸にとりγ(k’)(勾配係数の値)を第2軸にとる(k’, γ(k’))平面上の直線又は特定の曲線に偏って分布するものとする。より具体的には、例えば同一の行番号mに対応する各勾配係数γ(0),・・・, γ(C-1)が、(k’, γ(k’))平面上の直線上又は特定の曲線上に位置するものとする。なお、この変形例ではk,k’が離散時間に対応する離散時間番号であり、「サンプルそれぞれの位置」は、離散時間番号kに対応する時間軸上の位置である。k,k’が離散時間番号である場合、k,k’の値が大きいほど遅い時間に対応する。
 また、フレームごとに入力信号X(k)に対する正規化値FGAINが定められ、ベクトル量子化部115が入力信号の各サンプルの値X(k)の代わりにX(k)を正規化値FGAINで正規化した値を用い、量子化正規化値τの代わりにτを正規化値FGAINで正規化した値を用い、ステップE3の処理が実行されてもよい。例えば、X(k)がX(k)/FGAINに置換され、ττ/FGAINに置換されて、ステップE3の処理が実行されてもよい。また、この場合、正規化値計算部112が存在せず、正規化値量子化部113に量子化正規化値τの代わりにX(k)を正規化値FGAINで正規化した値が入力されてもよい。この場合、ベクトル量子化部115が、量子化正規化値τの代わりにX(k)を正規化値FGAINで正規化した値の量子化値を用いてステップE3の処理を行ってもよい。正規化値量子化インデックスが正規化値FGAINで正規化した値の量子化値に対応するものであってもよい。
 また、上記実施形態では、符号化装置10の勾配計算部116が、idx>0であるか否かを判定し、idx>0であれば複数の量子化値X(b・C),…,X((b+1)・C-1)を更新し、idx>0でなければ更新しないこととした(図4/ステップE418~E421)。また、復号装置12の勾配修正部124が、idx>0であるか否かを判定し、idx>0であれば複数の量子化値X(b・C),…,X((b+1)・C-1)を更新し、idx>0でなければ更新しないこととした(図7/ステップD312~D314)。これらの変形として、式(1)に示した勾配行列γに1の要素のみからなる行番号m=-1の行ベクトル(勾配係数ベクトル)γ-1=[γ-1(0),・・・,γ-1(C-1)]=[1,・・・,1]を付加し、idx>0であるか否かにかかわらず勾配計算部116や勾配修正部124が、以下のような演算を行ってもよい。
Figure JPOXMLDOC01-appb-M000018
 また、例示した行番号mやインデックス情報idxの具体的な数値は本発明を限定するものではなく、例示したmやidxの番号が繰り上がっても良いし、繰り下がってもよいし、一部の番号が使用されなくてもよい。
 また、上記の実施形態ではインデックス情報idxを未使用ビット数Uの未使用ビット領域に格納する例を示したが、インデックス情報idxが未使用ビット領域に格納されない形態であってもよい。
 また、インデックス情報idxが符号に含まれるビット数Uのその他の有限ビット領域に格納される形態であってもよい。この場合、上述の「未使用ビット領域」が「有限ビット領域」に置換され、「未使用ビット数U」が「有限ビット領域のビット数U」に置換された処理が実行されてもよい。
 また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
 ハードウェア、プログラム及び記録媒体:
 上述した符号化装置11や復号装置12は、例えば、CPU(central processing unit)やRAM(random-access memory)などからなる公知又は専用のコンピュータと上述の処理内容が記述された特別なプログラムとから構成される。この場合、特別なプログラムはCPUに読み込まれ、CPUが特別なプログラムを実行することによって各機能が実現される。また、特別なプログラムは、単一のプログラム列によって構成されてもよいし、他のプログラムやライブラリを読み出して目的の機能を達成するものであってもよい。
 このようなプログラムは、コンピュータで読み取り可能記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。コンピュータで読み取り可能な記録媒体の例は非一時的な(non-transitory)記録媒体である。プログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、プログラムを流通させてもよい。
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。
 また、符号化装置11や復号装置12の処理部の少なくとも一部が特別な集積回路によって構成されてもよい。
11 符号化装置
111 周波数領域変換部
112 正規化値計算部
113 正規化値量子化部
115 ベクトル量子化部
116 勾配計算部
12 復号装置
121 正規化値復号部
122 ベクトル復号部
124 勾配修正部
125 時間領域変換部
126 平滑化部

Claims (20)

  1.  複数のサンプルをまとめてベクトル量子化してベクトル量子化インデックスと前記複数のサンプルそれぞれの量子化値を求めるベクトル量子化ステップと、
     ベクトル量子化インデックスに対応する符号用に割り当てられたビット数から前記ベクトル量子化インデックスに対応する符号に用いられたビット数を減算して得られる数以下のビット数を、それぞれが複数のサンプル位置からなり聴覚特性に基づく優先順位が与えられた複数のサンプル位置集合のうちの1個以上のサンプル位置集合に、前記聴覚特性に基づく所定の優先順位に従って割り当てるビット割当ステップと、
     前記ビット割当ステップでビット数が割り当てられたサンプル位置集合それぞれについて、複数組の、前記サンプルそれぞれの位置に対応する予め定めた係数による組のうち、該サンプル位置集合に属するサンプルの値と、該サンプル位置集合に属するサンプルの量子化値と前記サンプルそれぞれの位置に対応する係数とを乗算した値との間の誤差の該サンプル位置集合に属する全サンプル位置についての和を最小にする係数の組を表すインデックス情報を出力する係数組選択ステップと、
     を有する符号化方法。
  2.  請求項1の符号化方法であって、
     前記サンプル位置集合の何れかである第1サンプル位置集合に割り当てられるビット数は、当該第1サンプル位置集合よりも前記優先順位が低い前記サンプル位置集合の何れかである第2サンプル位置集合に割り当てられるビット数以上である。
  3.  請求項1の符号化方法であって、
     前記ビット割当ステップは、
     前記ベクトル量子化インデックスに対応する符号に用いられなかったビット数のうち前記サンプル位置集合の何れにも割り当てられていない残りのビット数が、前記複数のサンプル位置集合のうちビット数の割り当てが行われていないサンプル位置集合の個数よりも大きくない場合に、ビット数の割り当てが行われていない前記サンプル位置集合のうち最も前記優先順位が高いものに第1ビット数を割り当て、
     前記残りのビット数が、前記複数のサンプル位置集合のうちビット数の割り当てが行われていないサンプル位置集合の個数よりも大きい場合に、ビット数の割り当てが行われていない前記サンプル位置集合のうち最も前記優先順位が高いものに前記第1ビット数よりも大きな第2ビット数を割り当てるステップを含む。
  4.  請求項1から3の何れかの符号化方法であって、
     前記係数による組は、
     前記係数が対応するサンプル位置に対応する時間又は周波数の値を第1軸にとり前記係数の値を第2軸にとる平面上の直線上にある係数により構成される。
  5.  請求項1から3の何れかの符号化方法であって、
     前記係数による組は、
     前記係数が対応するサンプル位置に対応する時間又は周波数の値を第1軸にとり前記係数の値を第2軸にとる平面上の直線又は特定の曲線に偏って分布する係数により構成される。
  6.  入力されたベクトル量子化インデックスに対応する複数の値を複数のサンプル位置それぞれに対応する復号値として求めるベクトル復号ステップと、
     前記サンプル位置を構成する複数のサンプル位置集合のうち、聴覚特性に基づく所定の優先順位に従ってビット数が割り当てられたサンプル位置の集合を処理対象として、入力されたインデックス情報が表す、複数のサンプル位置に対応する予め定めた係数による組を用い、前記処理対象のサンプル位置集合に含まれる各サンプル位置に対応する、前記復号値と前記係数とを乗算した値を出力する係数乗算ステップと、
     を有する復号方法。
  7.  請求項6の復号方法であって、
     前記係数による組は、
     前記係数が対応するサンプル位置に対応する時間又は周波数の値を第1軸にとり前記係数の値を第2軸にとる平面上の直線上にある係数により構成される。
  8.  請求項6の復号方法であって、
     前記係数による組は、
     前記係数が対応するサンプル位置に対応する時間又は周波数の値を第1軸にとり前記係数の値を第2軸にとる平面上の直線又は特定の曲線に偏って分布する係数により構成される。
  9.  複数のサンプルをまとめてベクトル量子化してベクトル量子化インデックスと前記複数のサンプルそれぞれの量子化値を求めるベクトル量子化部と、
     ベクトル量子化インデックスに対応する符号用に割り当てられたビット数から前記ベクトル量子化インデックスに対応する符号に用いられたビット数を減算して得られる数以下のビット数を、それぞれが複数のサンプル位置からなり聴覚特性に基づく優先順位が与えられた複数のサンプル位置集合のうちの1個以上のサンプル位置集合に、前記聴覚特性に基づく所定の優先順位に従って割り当てるビット割当部と、
     前記ビット割当部でビット数が割り当てられたサンプル位置集合それぞれについて、複数組の、前記サンプルそれぞれの位置に対応する予め定めた係数による組のうち、該サンプル位置集合に属するサンプルの値と、該サンプル位置集合に属するサンプルの量子化値と前記サンプルそれぞれの位置に対応する係数とを乗算した値との間の誤差の該サンプル位置集合に属する全サンプル位置についての和を最小にする係数の組を表すインデックス情報を出力する係数組選択部と、
     を有する符号化装置。
  10.  請求項9の符号化装置であって、
     前記サンプル位置集合の何れかである第1サンプル位置集合に割り当てられるビット数は、当該第1サンプル位置集合よりも前記優先順位が低い前記サンプル位置集合の何れかである第2サンプル位置集合に割り当てられるビット数以上である。
  11.  請求項9の符号化装置であって、
     前記ビット割当部は、
     前記ベクトル量子化インデックスに対応する符号に用いられなかったビット数のうち前記サンプル位置集合の何れにも割り当てられていない残りのビット数が、前記複数のサンプル位置集合のうちビット数の割り当てが行われていないサンプル位置集合の個数よりも大きくない場合に、ビット数の割り当てが行われていない前記サンプル位置集合のうち最も前記優先順位が高いものに第1ビット数を割り当て、
     前記残りのビット数が、前記複数のサンプル位置集合のうちビット数の割り当てが行われていないサンプル位置集合の個数よりも大きい場合に、ビット数の割り当てが行われていない前記サンプル位置集合のうち最も前記優先順位が高いものに前記第1ビット数よりも大きな第2ビット数を割り当てるように構成される。
  12.  請求項9から11の何れかの符号化装置であって、
     前記係数による組は、
     前記係数が対応するサンプル位置に対応する時間又は周波数の値を第1軸にとり前記係数の値を第2軸にとる平面上の直線上にある係数により構成される。
  13.  請求項9から11の何れかの符号化装置であって、
     前記係数による組は、
     前記係数が対応するサンプル位置に対応する時間又は周波数の値を第1軸にとり前記係数の値を第2軸にとる平面上の直線又は特定の曲線に偏って分布する係数により構成される。
  14.  入力されたベクトル量子化インデックスに対応する複数の値を複数のサンプル位置それぞれに対応する復号値として求めるベクトル復号部と、
     前記サンプル位置を構成する複数のサンプル位置集合のうち、聴覚特性に基づく所定の優先順位に従ってビット数が割り当てられたサンプル位置の集合を処理対象として、入力されたインデックス情報が表す、複数のサンプル位置に対応する予め定めた係数による組を用い、前記処理対象のサンプル位置集合に含まれる各サンプル位置に対応する、前記復号値と前記係数とを乗算した値を出力する係数乗算部と、
     を有する復号装置。
  15.  請求項14の復号装置であって、
     前記係数による組は、
     前記係数が対応するサンプル位置に対応する時間又は周波数の値を第1軸にとり前記係数の値を第2軸にとる平面上の直線上にある係数により構成される。
  16.  請求項14の復号装置であって、
     前記係数による組は、
     前記係数が対応するサンプル位置に対応する時間又は周波数の値を第1軸にとり前記係数の値を第2軸にとる平面上の直線又は特定の曲線に偏って分布する係数により構成される。
  17.  請求項1の符号化方法の各ステップをコンピュータに実行させるためのプログラム。
  18.  請求項6の復号方法の各ステップをコンピュータに実行させるためのプログラム。
  19.  請求項1の符号化方法の各ステップをコンピュータに実行させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
  20.  請求項6の復号方法の各ステップをコンピュータに実行させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
PCT/JP2011/065276 2010-07-05 2011-07-04 符号化方法、復号方法、符号化装置、復号装置、プログラム、及び記録媒体 WO2012005212A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201180031632.9A CN102959623B (zh) 2010-07-05 2011-07-04 编码方法、解码方法、编码装置、解码装置、程序及记录介质
JP2012523859A JP5337305B2 (ja) 2010-07-05 2011-07-04 符号化方法、復号方法、符号化装置、復号装置、プログラム、及び記録媒体
US13/807,139 US8711012B2 (en) 2010-07-05 2011-07-04 Encoding method, decoding method, encoding device, decoding device, program, and recording medium
EP11803546.8A EP2573766B1 (en) 2010-07-05 2011-07-04 Encoding method, decoding method, encoding device, decoding device, program, and recording medium
CA2803276A CA2803276A1 (en) 2010-07-05 2011-07-04 Encoding method, decoding method, encoding device, decoding device, program, and recording medium
ES11803546.8T ES2536902T3 (es) 2010-07-05 2011-07-04 Método codificador, método decodificador, dispositivo codificador, dispositivo decodificador, programa y medio de grabación

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-152971 2010-07-05
JP2010152971 2010-07-05

Publications (1)

Publication Number Publication Date
WO2012005212A1 true WO2012005212A1 (ja) 2012-01-12

Family

ID=45441191

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/065276 WO2012005212A1 (ja) 2010-07-05 2011-07-04 符号化方法、復号方法、符号化装置、復号装置、プログラム、及び記録媒体

Country Status (7)

Country Link
US (1) US8711012B2 (ja)
EP (1) EP2573766B1 (ja)
JP (1) JP5337305B2 (ja)
CN (1) CN102959623B (ja)
CA (1) CA2803276A1 (ja)
ES (1) ES2536902T3 (ja)
WO (1) WO2012005212A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013057895A1 (ja) * 2011-10-19 2013-04-25 パナソニック株式会社 符号化装置及び符号化方法
WO2013151004A1 (ja) * 2012-04-02 2013-10-10 日本電信電話株式会社 符号化方法、符号化装置、復号方法、復号装置、プログラム及び記録媒体
WO2013187498A1 (ja) * 2012-06-15 2013-12-19 日本電信電話株式会社 符号化方法、符号化装置、復号方法、復号装置、プログラム及び記録媒体

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9911427B2 (en) * 2014-03-24 2018-03-06 Nippon Telegraph And Telephone Corporation Gain adjustment coding for audio encoder by periodicity-based and non-periodicity-based encoding methods

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002084194A (ja) * 2001-07-16 2002-03-22 Toshiba Corp 利得形状ベクトル量子化方法とこれを用いた音声符号化方法及び装置
WO2006041055A1 (ja) * 2004-10-13 2006-04-20 Matsushita Electric Industrial Co., Ltd. スケーラブル符号化装置、スケーラブル復号装置及びスケーラブル符号化方法
WO2007043648A1 (ja) * 2005-10-14 2007-04-19 Matsushita Electric Industrial Co., Ltd. 変換符号化装置および変換符号化方法
WO2009093714A1 (ja) * 2008-01-24 2009-07-30 Nippon Telegraph And Telephone Corporation 符号化方法、復号化方法、それらの装置、及びそれらのプログラムと記録媒体

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3186007B2 (ja) 1994-03-17 2001-07-11 日本電信電話株式会社 変換符号化方法、復号化方法
US7200561B2 (en) * 2001-08-23 2007-04-03 Nippon Telegraph And Telephone Corporation Digital signal coding and decoding methods and apparatuses and programs therefor
DE60208426T2 (de) * 2001-11-02 2006-08-24 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung zur signalkodierung, signaldekodierung und system zum verteilen von audiodaten
EP1388813A2 (en) * 2002-08-09 2004-02-11 Matsushita Electric Industrial Co., Ltd. Apparatus and method for image watermarking
JP4800645B2 (ja) * 2005-03-18 2011-10-26 カシオ計算機株式会社 音声符号化装置、及び音声符号化方法
US7966190B2 (en) * 2005-07-11 2011-06-21 Lg Electronics Inc. Apparatus and method for processing an audio signal using linear prediction
US8374857B2 (en) * 2006-08-08 2013-02-12 Stmicroelectronics Asia Pacific Pte, Ltd. Estimating rate controlling parameters in perceptual audio encoders

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002084194A (ja) * 2001-07-16 2002-03-22 Toshiba Corp 利得形状ベクトル量子化方法とこれを用いた音声符号化方法及び装置
WO2006041055A1 (ja) * 2004-10-13 2006-04-20 Matsushita Electric Industrial Co., Ltd. スケーラブル符号化装置、スケーラブル復号装置及びスケーラブル符号化方法
WO2007043648A1 (ja) * 2005-10-14 2007-04-19 Matsushita Electric Industrial Co., Ltd. 変換符号化装置および変換符号化方法
WO2009093714A1 (ja) * 2008-01-24 2009-07-30 Nippon Telegraph And Telephone Corporation 符号化方法、復号化方法、それらの装置、及びそれらのプログラムと記録媒体

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SATOSHI KUMADA ET AL.: "Vector Quantization of Transform Coefficients in Audio Transform Coding", HEISEI 5 NENDO REPORT OF THE AUTUMN MEETING, 5 October 1993 (1993-10-05), pages 307 - 308, XP008167270 *
See also references of EP2573766A4 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013057895A1 (ja) * 2011-10-19 2013-04-25 パナソニック株式会社 符号化装置及び符号化方法
WO2013151004A1 (ja) * 2012-04-02 2013-10-10 日本電信電話株式会社 符号化方法、符号化装置、復号方法、復号装置、プログラム及び記録媒体
JP5738480B2 (ja) * 2012-04-02 2015-06-24 日本電信電話株式会社 符号化方法、符号化装置、復号方法、復号装置及びプログラム
WO2013187498A1 (ja) * 2012-06-15 2013-12-19 日本電信電話株式会社 符号化方法、符号化装置、復号方法、復号装置、プログラム及び記録媒体
JP5734519B2 (ja) * 2012-06-15 2015-06-17 日本電信電話株式会社 符号化方法、符号化装置、復号方法、復号装置、プログラム及び記録媒体

Also Published As

Publication number Publication date
US8711012B2 (en) 2014-04-29
JP5337305B2 (ja) 2013-11-06
EP2573766B1 (en) 2015-03-18
ES2536902T3 (es) 2015-05-29
EP2573766A4 (en) 2013-11-13
JPWO2012005212A1 (ja) 2013-09-02
CN102959623B (zh) 2014-08-13
EP2573766A1 (en) 2013-03-27
CN102959623A (zh) 2013-03-06
CA2803276A1 (en) 2012-01-12
US20130106626A1 (en) 2013-05-02

Similar Documents

Publication Publication Date Title
JP5331249B2 (ja) 符号化方法、復号方法、装置、プログラムおよび記録媒体
JP5625076B2 (ja) コーディングコンテキストのピッチ依存適合を用いた、オーディオ信号復号器、オーディオ信号符号化器、オーディオ信号を復号するための方法、オーディオ信号を符号化するための方法、およびコンピュータプログラム
WO2011063594A1 (zh) 格型矢量量化音频编解码方法和系统
WO2011127757A1 (zh) 可分层音频编解码方法和系统及瞬态信号可分层编解码方法
US8606567B2 (en) Signal encoding apparatus, signal decoding apparatus, signal processing system, signal encoding process method, signal decoding process method, and program
JP5337305B2 (ja) 符号化方法、復号方法、符号化装置、復号装置、プログラム、及び記録媒体
JP2019529979A (ja) インデックスコーディング及びビットスケジューリングを備えた量子化器
JP5256375B2 (ja) 符号化方法、復号方法、装置、プログラム及び記録媒体
JP5325340B2 (ja) 符号化方法、復号方法、符号化装置、復号装置、プログラム、及び記録媒体
CN110491398B (zh) 编码方法、编码装置以及记录介质
WO2011097963A1 (zh) 编码方法、解码方法、编码器和解码器
JP5331248B2 (ja) 符号化方法、復号方法、装置、プログラム及び記録媒体
WO2011045926A1 (ja) 符号化装置、復号装置およびこれらの方法
JP5734519B2 (ja) 符号化方法、符号化装置、復号方法、復号装置、プログラム及び記録媒体
US8949117B2 (en) Encoding device, decoding device and methods therefor
JP5635213B2 (ja) 符号化方法、符号化装置、復号方法、復号装置、プログラム及び記録媒体
JP2002503834A (ja) スプリット・ベクトル量子化データ符号化のためのシステムおよび方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180031632.9

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11803546

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011803546

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2803276

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 2012523859

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13807139

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE