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

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

Info

Publication number
WO2012005211A1
WO2012005211A1 PCT/JP2011/065275 JP2011065275W WO2012005211A1 WO 2012005211 A1 WO2012005211 A1 WO 2012005211A1 JP 2011065275 W JP2011065275 W JP 2011065275W WO 2012005211 A1 WO2012005211 A1 WO 2012005211A1
Authority
WO
WIPO (PCT)
Prior art keywords
coefficient
value
sample
vector
coefficients
Prior art date
Application number
PCT/JP2011/065275
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 US13/807,156 priority Critical patent/US9319645B2/en
Priority to CN201180031929.5A priority patent/CN102959871B/zh
Priority to CA2803273A priority patent/CA2803273A1/en
Priority to EP11803545.0A priority patent/EP2571170B1/en
Priority to ES11803545.0T priority patent/ES2588745T3/es
Priority to JP2012523858A priority patent/JP5325340B2/ja
Publication of WO2012005211A1 publication Critical patent/WO2012005211A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • 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
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3082Vector coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers

Definitions

  • the present invention relates to a technique for encoding or decoding a signal sequence such as sound or video such as audio or music by vector quantization.
  • an input signal is first divided by a normalized value and normalized.
  • the normalized value is quantized and a quantization index is generated.
  • the normalized input signal is subjected to vector quantization, and an index of the quantized representative vector is generated.
  • the generated quantization index and quantization representative vector are output to the decoding device.
  • the quantization index is decoded and a normalized value is generated.
  • the index of the quantized representative vector is decoded to generate a sample sequence. A sequence of values obtained by multiplying each sample of the generated sample sequence by a normalized value is a decoded signal sample sequence.
  • 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.
  • each sample of an input signal such as an MDCT (Modified Discrete Cosine Transform) coefficient is normalized using a quantized normalized value, and each normalized sample is quantized together for each subband.
  • the number of bits (quantization bit number) of the code corresponding to each subband is dynamically assigned according to the auditory importance for each subband.
  • the sparsity of the input signal is assumed, and the main component of the input signal is preferentially quantized. For this reason, an input signal (sparse signal), such as harmonics and vowels, in which energy in the frequency domain exists only sparsely can be quantized with high accuracy.
  • 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.
  • the present invention provides a technique for reducing musical noise or the like generated based on quantization accuracy.
  • encoding a value obtained by multiplying a sample value, a sample quantized value, and a coefficient corresponding to each position of the sample from a plurality of sets of predetermined coefficients corresponding to the position of each sample. Index information representing a set of coefficients that minimizes the sum of all the error positions between and for each sample position is output.
  • decoding a plurality of values corresponding to the input vector quantization index are obtained to obtain decoded values corresponding to a plurality of sample positions, and the predetermined index corresponding to the plurality of sample positions represented by the input index information is used. Using the set, a value obtained by multiplying the decoded value and the coefficient corresponding to each sample position is output.
  • index information representing a set of a plurality of coefficients multiplied by the quantized values of each of a plurality of samples is output, quantization error during decoding can be reduced, and musical noise and the like can be reduced.
  • decoding a plurality of decoded values are multiplied by a plurality of coefficients represented by index information, so that a quantization error can be reduced and musical noise and the like can be reduced.
  • FIG. 1 is a functional block diagram of an example of an encoding device and a decoding device.
  • FIG. 2 is a flowchart of an example encoding method.
  • FIG. 3 is a flowchart of an example of step E4.
  • FIG. 4 is a flowchart of an example of a decoding method.
  • FIG. 5 is a flowchart of an example of step D3.
  • FIG. 6 is a diagram illustrating the relationship among the input signal, the quantized value, and the gradient coefficient (tilt correction gain).
  • the encoding apparatus 11 includes a normalized value calculation unit 112, a normalized value quantization unit 113, a vector quantization unit 115, and a gradient calculation unit 116 (in the “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.
  • the encoding device 11 executes each step of the encoding method illustrated in FIG.
  • the input signal X (k) is input to the normalized value calculation unit 112, the vector quantization unit 115, and the gradient calculation unit 116.
  • the input signal X (k) in this example is a frequency domain signal obtained by converting the time domain signal x (n), which is a time series signal such as an acoustic signal, into the frequency domain.
  • the frequency domain input signal X (k) may be directly input to the encoding device 11, or the time domain input signal x (n) input by the frequency domain conversion unit 111 is converted to the frequency domain to generate the frequency domain.
  • Input signal X (k) may be generated.
  • the frequency domain transform unit 111 converts the input time domain input signal x (n) by, for example, MDCT (Modified Discrete Cosine Transform). It is converted into an input signal X (k) in the frequency domain and output.
  • n is a signal number (discrete time number) in the time domain
  • k is a signal (sample) number (discrete frequency number) in the frequency domain.
  • a larger value of n corresponds to a slower time. Higher values correspond to higher frequencies.
  • 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.
  • the normalized value calculation unit 112 calculates a normalized value ⁇ X 0 ⁇ that is a value representative of a predetermined number C 0 out of L samples of the input signal X (k) input for each frame. Calculate (step E1). ⁇ X 0 ⁇ means the superscript bar of ⁇ X 0 .
  • tau to the L-number of predetermined subbands formed by the sample number C 0 of the samples in one frame, and uniquely assigned integer of 0 or more.
  • 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. That is, when C 0 is L, one normalized value ⁇ X 0 ⁇ is calculated for each frame.
  • 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.
  • the normalized value ⁇ X 0 ⁇ is a value representative of C 0 samples.
  • the normalized value ⁇ X 0 ⁇ is a value corresponding to C 0 samples.
  • An example of the normalized value ⁇ X 0 ⁇ is the square root of the power average value of C 0 samples as follows:
  • Another example of the normalized value ⁇ X 0 ⁇ is a value obtained by dividing the square root of the total power of C 0 samples by C 0 as follows.
  • 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 assigned 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 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 matrix ⁇ shown in Equation (1) is held.
  • the number m ′ is obtained, and the index information idx representing the row number m ′ is written into an unused bit area (referred to as “unused bit area”) among the bits allocated for vector quantization.
  • the gradient calculation unit 116 corresponds to a plurality of samples X (k) from a gradient matrix ⁇ having a gradient coefficient vector ⁇ m having a plurality of gradient coefficients ⁇ m (k) as elements. And a second vector whose elements are values corresponding to a plurality of corrected values obtained by correcting the plurality of quantized values X ⁇ (k) with each element of the gradient coefficient vector ⁇ m .
  • the index information idx representing the row number m ′ of the gradient coefficient vector that minimizes the error is output and arranged in the unused bit area of the code (bit stream) corresponding to the vector quantization index. That is, the gradient calculation unit 116, for example, selects the value of the sample X (k) and the sample from a set of a plurality of sets of predetermined coefficients ⁇ m (k) corresponding to the positions of the samples X (k). the coefficient gamma m for the sum to a minimum for all sample position error between the quantized values X ⁇ (k) and each value obtained by multiplying the coefficient gamma m and (k) corresponding to the position of the sample Outputs index information idx representing a set. Note that “the position of each sample X (k)” in this embodiment is a position on the frequency axis corresponding to each discrete frequency number k (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 (0),..., X (C 0 ⁇ 1) is a straight line or curve on the (k, X (k)) plane where k is the first axis and X (k) is the second axis. Often distributed unevenly.
  • the quantization error can be corrected with high accuracy.
  • the slope factor ⁇ m (0) corresponding to the same row number m, ⁇ , ⁇ m (C 0 -1) is, k (quantized value slope factor ⁇ m (k) is multiplied by X ⁇
  • the value corresponding to the frequency corresponding to (k) in other words, the value corresponding to the frequency corresponding to the gradient coefficient ⁇ m (k)) is taken as the first axis, and ⁇ m (k) (value of the gradient coefficient) is set to the second value. It is assumed that the distribution is biased to a straight line on a (k, ⁇ m (k)) plane or a specific curve.
  • a value k corresponding to a column number is taken as the first axis
  • a gradient coefficient ⁇ m (k) at that column number is taken as the second axis (k, ⁇ m (k)) on a straight line or a specific
  • a vector having a plurality of gradient coefficients ⁇ m (0),..., ⁇ m (C 0 ⁇ 1) distributed in a curved line as elements is defined as a gradient coefficient vector ⁇ m . More specifically, for example, each gradient coefficient ⁇ m (0),..., ⁇ m (C 0 ⁇ 1) corresponding to the same row number m is on the (k, ⁇ m (k)) plane.
  • a vector whose elements are each gradient coefficient ⁇ m (0),..., ⁇ m (C 0 ⁇ 1) on a straight line on a (k, ⁇ m (k)) plane or a specific curve is a gradient.
  • the coefficient vector ⁇ m was used. (K, ⁇ m (k))
  • 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 first vector is a vector having C 0 X (k) elements, a vector having C 0 X (k) magnitude
  • Examples of the second vector are a vector having C 0 correction values as elements, a vector having C 0 correction values as elements, and C 0 correction values or magnitudes multiplied by constants and variables.
  • a vector whose elements are values.
  • modified values X ⁇ (k) the product of the ⁇ m (k), X ⁇ (k) of the magnitude
  • 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 selects a row number m ′ using a range of row numbers that can be identified by index information idx that can be written in an unused bit area as a search range.
  • ⁇ ⁇ ⁇ is the norm of argmin m ⁇ ⁇ ⁇ means that m that minimizes ⁇ ⁇ ⁇ is m ′
  • the number of bits of the index information idx as described above is obtained by subtracting the number of bits actually 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. Is less than a few. As described above, the index information idx can be transmitted using only the unused bit area.
  • step E4 The gradient calculation unit 116 of this example performs each process described in FIG. 3 and writes the index information idx representing the row number of the selected gradient coefficient vector in the unused bit area.
  • C 0 is L
  • the process of step E4 in FIG. 3 is performed for each frame.
  • C 0 is a common divisor of L other than 1 and L, for each subband in one frame
  • the process of step E4 in FIG. 3 is repeatedly executed.
  • the gradient calculation unit 116 compares the input number of unused bits U with 0 (step E40). If U> 0 is not satisfied, the gradient calculation unit 116 receives a plurality of input quantum values as shown below.
  • step E42 the gradient calculation unit 116 determines 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, using the number of unused bits U, and this search range (row The search range specifying value m MAX for specifying the number range) is specified. In other words, the gradient calculation unit 116 obtains m MAX that identifies the type of row number that can be identified by the index information idx that can be written to the unused bit area (step E42).
  • m MAX is an integer not less than 1 and not more than 2 U -1 and not more than M MAX
  • the search range is row number 0, ..., m MAX -1.
  • the gradient calculation unit 116 performs calculation represented by the following equation (step E43).
  • 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 normalized value decoding unit 121 refers to the codebook storage unit using the input normalized quantization index as a key, obtains a normalized value corresponding to the normalized quantization index, and decodes the normalized normalized value Let ⁇ X ⁇ .
  • the vector decoding unit 122 obtains a plurality of values corresponding to the vector quantization index included in the corrected vector quantization index input to the decoding device 12 and sets it as a plurality of decoded values X ⁇ (k). Further, the vector decoding unit 122 calculates the number of unused bits U using the vector quantization index (step D2).
  • the vector decoding unit 122 refers to the vector codebook storage unit using the quantization representative vector corresponding to the input vector quantization index as a key, and acquires the quantization representative vector corresponding to the vector quantization index.
  • the vector decoding unit 122 outputs a decoded value X ⁇ (k) obtained by denormalizing the quantized representative vector component X (k) ′ with the quantized normalized value ⁇ X ⁇ .
  • the vector decoding unit 122 outputs a multiplication value of X (k) ′ and ⁇ X ⁇ as a decoded value X ⁇ (k).
  • 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.
  • the number of unused bits U is calculated every frame (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.
  • the decoded value E ⁇ (k) and the unused bit number U are sent to the gradient correcting unit 124.
  • the gradient correction unit 124 holds the same gradient matrix ⁇ (see Equation (1)) used in the encoding device 11 in a storage unit (not shown), for example.
  • the gradient correcting unit 124 reads the index information idx from the unused bit area included in the corrected vector quantization index input to the decoding device 12, and each element ⁇ of the gradient coefficient vector ⁇ m ′ of the row number m ′ represented by idx.
  • the gradient correcting unit 124 has the gradient coefficient vector 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 gamma m 'elements gamma m of' (k), to correct a plurality of decoding values X ⁇ a (k) (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 modified value X ⁇ UD (k) of k).
  • the gradient correction unit 124 outputs a correction value X ⁇ UD (k).
  • the gradient correcting unit 124 uses a set of predetermined coefficients ⁇ m ′ (k) corresponding to a plurality of sample positions, represented by the input index information idx, and uses a decoded value X ⁇ ( A value obtained by multiplying k) by the coefficient ⁇ m ′ (k) is output.
  • step D3 The gradient correcting unit 124 in this example performs each process described in FIG. 5 to correct the decoded value X ⁇ (k).
  • the gradient correcting unit 124 compares the number of input unused bits U with 0 (step D30). If U> 0 is not satisfied, the gradient calculating unit 116 receives a plurality of input quantum values as shown below.
  • the digitized values X ⁇ (0), ..., X ⁇ (C 0 -1) are not updated (step D36), and the process of step D3 ends.
  • the gradient correcting unit 124 reads the index information idx from the unused bit area of the corrected vector quantization index based on m MAX (step D33). For example, the gradient correcting unit 124 specifies the storage position of the index information idx based on m MAX and reads the index information idx.
  • step D36 the gradient correcting unit 124 uses a plurality of decoded values X ⁇ (b ⁇ C 0 ),..., X ⁇ ((b + 1) ⁇ C as shown below. 0-1 ) is not updated (step D36), and the process of step D3 is completed. This is the end of the description of [Specific example of step D3].
  • 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.
  • the decoding device 12 corrects the plurality of decoded values X ⁇ (k) using the gradient coefficient vector selected by the encoding device 11, it is possible to reduce musical noise and the like based on the quantization error. .
  • 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 at k 0,. Therefore, a gradient coefficient vector ⁇ whose elements are gradient coefficients ⁇ m (0),..., ⁇ m (63) distributed biased to 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.
  • 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 smoothing unit 126 receives the correction value X ⁇ UD (k) obtained in step D3 (FIG. 4) 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).
  • the smoothing unit 126 When X ⁇ UD (k) 'is 0, the smoothing unit 126 outputs X ⁇ UD (k as X ⁇ POST (k) without performing weighted addition of the correction values, that is, smoothing of the correction values.
  • FIG. 4 / Step D4 An example of the past correction value X ⁇ UD (k) 'is the correction value obtained in Step D3 in the past of the frame corresponding to the correction value X ⁇ UD (k), For example, the smoothed value obtained in step D4 in the past of the frame corresponding to the correction value X ⁇ UD (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.
  • the input signal X (k) does not need to be a frequency domain signal, and may be an arbitrary signal such as a time domain signal. That is, the present invention can be used for encoding and decoding of an arbitrary signal other than the frequency domain signal.
  • each gradient coefficient ⁇ m (0),..., ⁇ m (C 0 ⁇ 1) corresponding to the same row number m is quantized by, for example, k (gradient coefficient ⁇ m (k)).
  • k is a discrete time number corresponding to the discrete time
  • “the position of each sample X (k)” is a position on the time axis corresponding to the discrete time number k.
  • a normalization value F GAIN for the input signal X (k) is determined for each frame, and the vector quantization unit 115 converts X (k) into a normalization value F instead of the value X (k) of each sample of the input signal.
  • quantized normalized values tau X - tau X instead of - using the normalized values with the normalized values F GAIN to the process of step E3 may be performed.
  • X (k) may be replaced with X (k) / F GAIN
  • ⁇ X ⁇ may be replaced with ⁇ X ⁇ / F GAIN
  • the process of step E3 may be executed.
  • the normalized value calculation unit 112 does not exist, and the normalized value quantization unit 113 normalizes X (k) with the normalized value F GAIN instead of the quantized normalized value ⁇ X ⁇ . May be input.
  • the vector quantization unit 115 performs the process of step E3 using a quantized value obtained by normalizing X (k) with the normalized value F GAIN instead of the quantized normalized value ⁇ X ⁇ . Also good.
  • the normalized value quantization index may correspond to the quantized value of the value normalized by the normalized value F GAIN .
  • the gradient calculation unit 116 of the encoding device 11 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 is not updated (FIG. 3 / steps E410 to E412). 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. 5 / steps D34 to D36).
  • ⁇ ⁇ 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.
  • the index information idx is stored in the unused bit area of the unused bit number U.
  • the index information idx may not be stored in the unused bit area.
  • the encoding device 11 and the decoding device 12 described above include, for example, a known or dedicated computer including a CPU (central processing unit), a RAM (random-access memory), and the like and a special program in which the above-described processing contents are described. Composed.
  • a special program is read into the CPU, and each function is realized by the CPU executing the special program.
  • the special program may be configured by a single program sequence, or may read out another program or library to achieve a target function.
  • Such a program can be recorded on a computer-readable recording medium.
  • the computer-readable recording medium may be any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory.
  • An example of a computer-readable recording medium is a non-transitory recording medium.
  • the program is distributed, for example, by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded.
  • the program may be distributed by storing the program in a storage device of a server computer and transferring the program from the server computer to another computer via a network.
  • a computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device.
  • the computer reads a program stored in its own recording medium and executes a 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.
  • the processing according to the received program may be executed sequentially.
  • at least a part of the processing units of the encoding device 11 and the decoding device 12 may be a special integrated circuit.

Abstract

 符号化では、複数組の、サンプルそれぞれの位置に対応する予め定めた係数による組の中から、サンプルの値と、サンプルの量子化値とサンプルのそれぞれの位置に対応する係数とを乗算した値との間の誤差の全てのサンプル位置についての和を最小にする係数の組を表すインデックス情報を出力する。復号では、入力されたベクトル量子化インデックスに対応する複数の値を求めて複数のサンプル位置に対応する復号値とし、入力されたインデックス情報が表す、複数のサンプル位置に対応する予め定めた係数による組を用い、各サンプル位置に対応する、復号値と当該係数とを乗算した値を出力する。

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は符号化装置及び復号装置の例の機能ブロック図である。 図2は符号化方法の例の流れ図である。 図3はステップE4の例の流れ図である。 図4は復号方法の例の流れ図である。 図5はステップD3の例の流れ図である。 図6は入力信号と量子化値と勾配係数(傾き補正ゲイン)との関係を例示した図である。
 以下、この発明の一実施形態を詳細に説明する。
 (構成)
 図1に例示するように、実施形態の符号化装置11は、正規化値計算部112、正規化値量子化部113、ベクトル量子化部115及び勾配計算部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は、フレームごとに、入力された入力信号X(k)のL個のサンプルのうちのC個のサンプルX(k)(k=0,・・・,C-1)に対応する値を要素とする第1ベクトルと、これらC個のサンプルX(k)の量子化値X(k)(k=0,・・・,C-1)のそれぞれを勾配係数ベクトルγの各要素γ(k)で修正したC個の修正値に対応する値を要素とする第2ベクトルとの誤差を最小化する(例えば最小にする)勾配係数ベクトルの行番号m’を求め、行番号m’を表すインデックス情報idxをベクトル量子化用に割り当てられたビットのうちで使用されなかったビットの領域(「未使用ビット領域」と呼ぶ)に書き込む。
 言い換えると、勾配計算部116は、複数の勾配係数γ(k)を要素とする勾配係数ベクトルγを行ベクトルとする勾配行列γの中から、複数のサンプルX(k)に対応する値を要素とする第1ベクトルと、複数の量子化値X(k)を勾配係数ベクトルγの各要素で修正した複数の修正値に対応する値を要素とする第2ベクトルとの間の誤差を最小化する勾配係数ベクトルの行番号m’を表すインデックス情報idxを出力し、ベクトル量子化インデックスに対応する符号(ビットストリーム)の未使用ビット領域に配置する。
 すなわち、勾配計算部116は、例えば、複数組の、サンプルX(k)それぞれの位置に対応する予め定めた係数γ(k)による組の中から、サンプルX(k)の値と、サンプルの量子化値X(k)とサンプルのそれぞれの位置に対応する係数γ(k)とを乗算した値との間の誤差の全てのサンプル位置についての和を最小にする係数γの組を表すインデックス情報idxを出力する。なお、本形態の「サンプルX(k)それぞれの位置」は、各離散周波数番号kに対応する周波数軸上の位置である(ステップE4)。
 これにより、符号化装置11は、未使用ビット領域を有効利用して振幅の量子化誤差を修正するための情報を復号装置12に送ることができ、量子化精度に基づいて発生するミュージカルノイズ等を低減させることができる。
 勾配係数ベクトルγの要素であるC個の勾配係数γ(0),・・・, γ(C-1)は互いに相関を持つ。言い換えると、各勾配係数ベクトルγは互いに相関を持つ複数の勾配係数γ(0),・・・, γ(C-1)を要素とするベクトルである。X(0),・・・, X(C-1)は、kを第1軸にとり、X(k)を第2軸にとる(k, X(k))平面上の直線や曲線に偏って分布する場合が多い。このようなX(0),・・・, X(C-1)の特性を考慮した勾配係数γ(0),・・・, γ(C-1)を要素とする勾配係数ベクトルγを用いることで、量子化誤差を高い精度で修正できる。例えば、同一の行番号mに対応する各勾配係数γ(0),・・・, γ(C-1)が、k(勾配係数γ(k)が乗じられる量子化値X(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で識別可能な行番号の範囲を探索範囲とし、行番号m’を選択する。言い換えると、勾配計算部116は、未使用ビット領域に書き込むことが可能なインデックス情報idxが表す行番号m’のみを選択する。すなわち、勾配計算部116は、ベクトル量子化インデックスに対応する符号用に割り当てられたビット数うち実際にベクトル量子化インデックスに対応する符号に用いられなかったビット数で表現可能なインデックス情報idxで識別可能な行番号m’のみを選択する。例えば、勾配計算部116は、未使用ビット領域に書き込むことが可能なインデックス情報idxで識別可能なmMAX種類の行番号m=0,・・・,mMAX-1から、以下のような行番号m’を特定し、行番号m’に対応するインデックス情報idxを未使用ビット領域に書き込む。
Figure JPOXMLDOC01-appb-M000006

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

 上述のようなインデックス情報idxのビット数は、ベクトル量子化インデックスに対応する符号用に割り当てられたビット数からベクトル量子化インデックスに対応する符号に実際に用いられたビット数を減算して得られる数以下である。以上より、未使用ビット領域のみを用いてインデックス情報idxを伝送できる。
 [ステップE4の具体例]
 この例の勾配計算部116は、図3に記載された各処理を行い、選択した勾配係数ベクトルの行番号を表すインデックス情報idxを、未使用ビット領域に書き込む。CがLである場合には、フレームごとに図3のステップE4の処理が実行され、Cが1及びL以外のLの公約数である場合には、1フレーム中の各サブバンドについて図3のステップE4の処理が繰り返し実行される。
 勾配計算部116は、入力された未使用ビット数Uと0とを比較し(ステップE40)、U>0でなければ、以下に示すように、勾配計算部116は、入力された複数の量子化値X(0),・・・,X(C-1)を更新することなく、ステップE4の処理を終える(ステップE412)。
Figure JPOXMLDOC01-appb-M000008

 U>0であれば、勾配計算部116は、m=0,idx=0とすることでm及びidxの値を初期化し(ステップE41)、ステップE42に進む。
 ステップE42では、勾配計算部116は、未使用ビット数Uを用い、未使用ビット領域に書き込むことが可能なインデックス情報idxで識別可能な行番号の範囲を探索範囲として定め、この探索範囲(行番号の範囲)を特定するための探索範囲特定値mMAXを特定する。言い換えると、勾配計算部116は、未使用ビット領域に書き込むことが可能なインデックス情報idxで識別可能な行番号の種類を特定するmMAXを求める(ステップE42)。
 通常、未使用ビット数Uのビットでは2種類の行番号を識別可能である。そのため、2種類の行番号の範囲を探索範囲としてもよい。しかしながら、この具体例では「勾配係数ベクトルγm’を用いた補正を行わない」ことを示す値をインデックス情報idxが取り得る値の1つに割り当て、残りの2-1個の値で識別可能な2-1種類の行番号を探索範囲とする。探索範囲(行番号の範囲)とmMAXとの関係は予め定められる必要がある。この具体例のmMAXは1以上2-1以下なおかつMMAX以下の整数であり、探索範囲が行番号0,・・・,mMAX-1である。勾配計算部116は、例えば以下の式によってmMAXを求める。
 mMAX=max[min{2-1,MMAX},1]
 勾配計算部116は、以下の式に表される計算を行う(ステップE43)。
Figure JPOXMLDOC01-appb-M000009
 勾配計算部116は、mとmMAXとを比較(ステップE44)し、m<mMAXであれば、勾配計算部116は、以下のようにeを計算し(ステップE45)、eMINとeとを比較し(ステップE46)、eMIN>eでなければ勾配計算部116は、mを1だけインクリメントし(ステップE48)、ステップE44に進む。
Figure JPOXMLDOC01-appb-M000010

MIN>eであれば勾配計算部116は、idx=m+1及びeMIN=eとすることでidx及びeMINを更新し(ステップE47)、mを1だけインクリメントして(ステップE48)、ステップE44に進む。
 一方、ステップE44でm<mMAXでないと判定された場合、勾配計算部116は、未使用ビット領域にidxを書き込み(ステップE49)。この例の勾配計算部116は、復号装置12が、mMAXに基づいて、必要なidxが未使用ビット領域のどこに配置されているのかを特定できるようにしておく。例えば、未使用ビット領域でのidxの格納位置がmMAXによって定まる。
 次に勾配計算部116は、idx>0であるか否か(idx=0であるか否か)を判定する(ステップE410)。idx>0であれば(idx=0でなければ)、勾配計算部116は、ローカルデコード値である複数の量子化値X(b・C),…,X((b+1)・C-1)を、以下のように更新し(ステップE411)、ステップE4の処理を終える。
Figure JPOXMLDOC01-appb-M000011

 idx>0でなければ(idx=0であれば)、以下に示すように、勾配計算部116は、ローカルデコード値である複数の量子化値X(b・C),…,X((b+1)・C-1)を更新することなく(ステップE412)、ステップE4の処理を終える。
Figure JPOXMLDOC01-appb-M000012

ただし、CがLである場合b=0である。Cが1及びL以外のLの公約数である場合、bは1フレーム中の各サブバンドに対応する整数0,…,(L/C)-1の何れかであり、例えば最も低い周波数のサブバンドに対応する整数0である([ステップE4の具体例]の説明終わり)。
 ベクトル量子化インデックスと未使用ビット領域に書き込まれたインデックス情報idxとを含む修正後ベクトル量子化インデックスに対応する符号(ビットストリーム)は復号装置12に送られる。
 (復号処理)
 復号装置12は図4に例示する復号方法の各ステップを実行する。
 正規化値復号部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として計算する。本形態の例では、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=0,・・・,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が表す、複数のサンプル位置に対応する予め定めた係数γm’(k)による組を用い、各サンプル位置に対応する復号値X(k)と係数γm’(k)とを乗算した値を出力する。
 [ステップD3の具体例]
 この例の勾配修正部124は、図5に記載された各処理を行い、復号値X(k)を修正する。
 勾配修正部124は、入力された未使用ビット数Uと0とを比較し(ステップD30)、U>0でなければ、以下に示すように、勾配計算部116は、入力された複数の量子化値X(0),・・・,X(C-1)を更新することなく(ステップD36)、ステップD3の処理を終える。
Figure JPOXMLDOC01-appb-M000013
 U>0であれば、勾配修正部124は、前述のステップE42と同じ方法によってmMAXを設定する(ステップE32)。勾配修正部124は、例えば以下の式によってmMAXを求める。
 mMAX=max[min{2-1,MMAX},1]
 勾配修正部124は、mMAXに基づき、修正後ベクトル量子化インデックスの未使用ビット領域からインデックス情報idxを読み込む(ステップD33)。例えば、勾配修正部124は、mMAXに基づいてインデックス情報idxの格納位置を特定し、インデックス情報idxを読み込む。
 勾配修正部124は、idx>0であるか否か(idx=0であるか否か)を判定する(ステップD34)。idx>0であれば(idx=0でなければ)、勾配修正部124は、複数の復号値X(b・C),…,X((b+1)・C-1)を、以下のように更新し(ステップD35)、ステップD3の処理を終える。
Figure JPOXMLDOC01-appb-M000014

 idx>0でなければ(idx=0であれば)、以下に示すように、勾配修正部124は、複数の復号値X(b・C),…,X((b+1)・C-1)を更新することなく(ステップD36)、ステップD3の処理を終える。
Figure JPOXMLDOC01-appb-M000015

以上で[ステップ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の情報量を抑制しつつ量子化誤差を高精度に修正できる。図6の例の場合、k=0,…,63での入力信号の大きさ|X(k)|はkが大きいほど小さい。そのため、(k, γ(k))平面上の傾きが負となる直線に偏って分布する勾配係数γ(0),・・・, γ(63)を要素とする勾配係数ベクトルγを用いて|X(0)|,・・・, |X(63)|を修正することで、量子化値の大きさ|X^(0)|,・・・, |X^(63)|との誤差を小さくできる。このようにサブバンドごとに入力信号の特性に適した勾配係数ベクトルγを用いることで量子化誤差を効率的に削減することができる。
 また、符号化装置11で選択された勾配係数ベクトルγm’を特定するためのインデックス情報idxは未使用ビット領域を有効利用して伝送されるため、インデックス情報idxを伝送するための付加領域が不要である。
 変形例:
 なお、本発明は上述の実施の形態に限定されるものではない。例えば、復号装置12が平滑化部126を含む場合、平滑化部126は、ステップD3(図4)で得られた修正値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)として出力する(図4/ステップD4)。過去の修正値X UD(k)’の例は、修正値X UD(k)に対応するフレームの1フレーム過去のステップD3で得られた修正値や、修正値X UD(k)に対応するフレームの1フレーム過去のステップD4で得られた平滑化値などである。
 X POST(k)は次式のように表わされる。αとβは調整係数であり、求める性能及び仕様に応じて適宜決定される。例えば、α=0.85、β=0.15である。α、βは、求められる性能及び仕様に応じて適宜変更されてもよい。φ(・)は・の正負符号を表す。
Figure JPOXMLDOC01-appb-M000016
 これにより、X UD(k)の振幅特性の時間軸方向の不連続性によって生じるミュージカルノイズ等を軽減することができる。時間領域での復号信号が必要な場合、平滑化部126から出力されたX POST(k)は時間領域変換部125に入力され、時間領域変換部125はX POST(k)を例えば逆フーリエ変換により時間領域信号z(n)に変換して出力する。
 また、入力信号X(k)は、周波数領域信号である必要はなく、時間領域信号等の任意の信号であってもよい。すなわち、この発明は、周波数領域信号以外の任意の信号に対する符号化、復号に用いることができる。この場合、同一の行番号mに対応する各勾配係数γ(0),・・・, γ(C-1)が、例えばk(勾配係数γ(k)が乗じられる量子化値X(k)に対応する時間に対応する値、言い換えると、勾配係数γ(k)に対応する時間に対応する値)を第1軸にとりγ(k)(勾配係数の値)を第2軸にとる(k, γ(k))平面上の直線又は特定の曲線に偏って分布するものとする。より具体的には、例えば同一の行番号mに対応する各勾配係数γ(0),・・・, γ(C-1)が、(k, γ(k))平面上の直線上又は特定の曲線上に位置するものとする。なお、この変形例ではkが離散時間に対応する離散時間番号であり、「サンプルX(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で正規化した値の量子化値に対応するものであってもよい。
 また、上記実施形態では、符号化装置11の勾配計算部116が、idx>0であるか否かを判定し、idx>0であれば複数の量子化値X(b・C),…,X((b+1)・C-1)を更新し、idx>0でなければ更新しないこととした(図3/ステップE410~E412)。また、復号装置12の勾配修正部124が、idx>0であるか否かを判定し、idx>0であれば複数の量子化値X(b・C),…,X((b+1)・C-1)を更新し、idx>0でなければ更新しないこととした(図5/ステップD34~D36)。これらの変形として、式(1)に示した勾配行列γに1の要素のみからなる行番号m=-1の行ベクトル(勾配係数ベクトル)γ-1=[γ-1(0),・・・,γ-1(C-1)]=[1,・・・,1]を付加し、idx>0であるか否かにかかわらず勾配計算部116や勾配修正部124が、以下のような演算を行ってもよい。
Figure JPOXMLDOC01-appb-M000017
 また、例示した行番号mやインデックス情報idxの具体的な数値は本発明を限定するものではなく、例示したmやidxの番号が繰り上がっても良いし、繰り下がってもよいし、一部の番号が使用されなくてもよい。
 また、上記の実施形態ではインデックス情報idxを未使用ビット数Uの未使用ビット領域に格納する例を示したが、インデックス情報idxが未使用ビット領域に格納されない形態であってもよい。
 また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
 ハードウェア、プログラム及び記録媒体:
 上述した符号化装置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 (18)

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

Priority Applications (6)

Application Number Priority Date Filing Date Title
US13/807,156 US9319645B2 (en) 2010-07-05 2011-07-04 Encoding method, decoding method, encoding device, decoding device, and recording medium for a plurality of samples
CN201180031929.5A CN102959871B (zh) 2010-07-05 2011-07-04 编码方法、解码方法、编码装置、解码装置、程序及记录介质
CA2803273A CA2803273A1 (en) 2010-07-05 2011-07-04 Encoding method, decoding method, encoding device, decoding device, program, and recording medium
EP11803545.0A EP2571170B1 (en) 2010-07-05 2011-07-04 Encoding method, decoding method, encoding device, decoding device, program, and recording medium
ES11803545.0T ES2588745T3 (es) 2010-07-05 2011-07-04 Método de codificación, método de decodificación, dispositivo codificador, dispositivo decodificador, programa y medio de grabación
JP2012523858A JP5325340B2 (ja) 2010-07-05 2011-07-04 符号化方法、復号方法、符号化装置、復号装置、プログラム、及び記録媒体

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010152970 2010-07-05
JP2010-152970 2010-07-05

Publications (1)

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

Family

ID=45441190

Family Applications (1)

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

Country Status (7)

Country Link
US (1) US9319645B2 (ja)
EP (1) EP2571170B1 (ja)
JP (1) JP5325340B2 (ja)
CN (1) CN102959871B (ja)
CA (1) CA2803273A1 (ja)
ES (1) ES2588745T3 (ja)
WO (1) WO2012005211A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL3385948T3 (pl) * 2014-03-24 2020-01-31 Nippon Telegraph And Telephone Corporation Sposób kodowania, koder, program i nośnik zapisu
EP3786949B1 (en) * 2014-05-01 2022-02-16 Nippon Telegraph And Telephone Corporation Coding of a sound signal
US9699461B2 (en) * 2015-08-14 2017-07-04 Blackberry Limited Scaling in perceptual image and video coding
WO2019081089A1 (en) * 2017-10-27 2019-05-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. MITIGATION OF NOISE AT THE LEVEL OF A DECODER

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0646403A (ja) * 1992-02-07 1994-02-18 American Teleph & Telegr Co <Att> マルチレベル信号符号化方法および画像シーケンス統合方法
JPH07261800A (ja) 1994-03-17 1995-10-13 Nippon Telegr & Teleph Corp <Ntt> 変換符号化方法、復号化方法
JPH0844399A (ja) * 1994-03-17 1996-02-16 Nippon Telegr & Teleph Corp <Ntt> 音響信号変換符号化方法および復号化方法
WO2009093714A1 (ja) * 2008-01-24 2009-07-30 Nippon Telegraph And Telephone Corporation 符号化方法、復号化方法、それらの装置、及びそれらのプログラムと記録媒体

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5684920A (en) 1994-03-17 1997-11-04 Nippon Telegraph And Telephone Acoustic signal transform coding method and decoding method having a high efficiency envelope flattening method therein
US5864798A (en) * 1995-09-18 1999-01-26 Kabushiki Kaisha Toshiba Method and apparatus for adjusting a spectrum shape of a speech signal
US6904404B1 (en) * 1996-07-01 2005-06-07 Matsushita Electric Industrial Co., Ltd. Multistage inverse quantization having the plurality of frequency bands
JP4308345B2 (ja) 1998-08-21 2009-08-05 パナソニック株式会社 マルチモード音声符号化装置及び復号化装置
JP3582589B2 (ja) * 2001-03-07 2004-10-27 日本電気株式会社 音声符号化装置及び音声復号化装置
JP4506039B2 (ja) * 2001-06-15 2010-07-21 ソニー株式会社 符号化装置及び方法、復号装置及び方法、並びに符号化プログラム及び復号プログラム
US6968092B1 (en) * 2001-08-21 2005-11-22 Cisco Systems Canada Co. System and method for reduced codebook vector quantization
WO2004090870A1 (ja) * 2003-04-04 2004-10-21 Kabushiki Kaisha Toshiba 広帯域音声を符号化または復号化するための方法及び装置
US20060089836A1 (en) * 2004-10-21 2006-04-27 Motorola, Inc. System and method of signal pre-conditioning with adaptive spectral tilt compensation for audio equalization
RU2443028C2 (ru) * 2008-07-11 2012-02-20 Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен Устройство и способ расчета параметров расширения полосы пропускания посредством управления фреймами наклона спектра
WO2011156905A2 (en) * 2010-06-17 2011-12-22 Voiceage Corporation Multi-rate algebraic vector quantization with supplemental coding of missing spectrum sub-bands

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0646403A (ja) * 1992-02-07 1994-02-18 American Teleph & Telegr Co <Att> マルチレベル信号符号化方法および画像シーケンス統合方法
JPH07261800A (ja) 1994-03-17 1995-10-13 Nippon Telegr & Teleph Corp <Ntt> 変換符号化方法、復号化方法
JPH0844399A (ja) * 1994-03-17 1996-02-16 Nippon Telegr & Teleph Corp <Ntt> 音響信号変換符号化方法および復号化方法
WO2009093714A1 (ja) * 2008-01-24 2009-07-30 Nippon Telegraph And Telephone Corporation 符号化方法、復号化方法、それらの装置、及びそれらのプログラムと記録媒体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2571170A4

Also Published As

Publication number Publication date
EP2571170A4 (en) 2014-09-03
EP2571170A1 (en) 2013-03-20
JP5325340B2 (ja) 2013-10-23
CA2803273A1 (en) 2012-01-12
CN102959871A (zh) 2013-03-06
US9319645B2 (en) 2016-04-19
EP2571170B1 (en) 2016-06-01
JPWO2012005211A1 (ja) 2013-09-02
CN102959871B (zh) 2016-09-21
US20130101049A1 (en) 2013-04-25
ES2588745T3 (es) 2016-11-04

Similar Documents

Publication Publication Date Title
JP5331249B2 (ja) 符号化方法、復号方法、装置、プログラムおよび記録媒体
EP2159790B1 (en) Audio encoding method, audio decoding method, audio encoding device, audio decoding device, program, and audio encoding/decoding system
WO2007132750A1 (ja) Lspベクトル量子化装置、lspベクトル逆量子化装置、およびこれらの方法
JP5325340B2 (ja) 符号化方法、復号方法、符号化装置、復号装置、プログラム、及び記録媒体
KR20190040063A (ko) 인덱스 코딩 및 비트 스케줄링을 갖는 양자화기
JP5256375B2 (ja) 符号化方法、復号方法、装置、プログラム及び記録媒体
JP5337305B2 (ja) 符号化方法、復号方法、符号化装置、復号装置、プログラム、及び記録媒体
US9838700B2 (en) Encoding apparatus, decoding apparatus, and method and program for the same
JP5331248B2 (ja) 符号化方法、復号方法、装置、プログラム及び記録媒体
JP5544370B2 (ja) 符号化装置、復号装置およびこれらの方法
CN110491398B (zh) 编码方法、编码装置以及记录介质
JP5361565B2 (ja) 符号化方法、復号方法、符号化器、復号器およびプログラム
JP5336943B2 (ja) 符号化方法、復号方法、符号化器、復号器、プログラム
JP5544371B2 (ja) 符号化装置、復号装置およびこれらの方法
JP2002503834A (ja) スプリット・ベクトル量子化データ符号化のためのシステムおよび方法
JPWO2018052004A1 (ja) サンプル列変形装置、信号符号化装置、信号復号装置、サンプル列変形方法、信号符号化方法、信号復号方法、およびプログラム
JP2008015357A (ja) 符号化装置

Legal Events

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

Ref document number: 201180031929.5

Country of ref document: CN

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

Ref document number: 11803545

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011803545

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2803273

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 2012523858

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13807156

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE