WO2021256082A1 - 符号化装置、復号装置、符号化方法、及び、復号方法 - Google Patents

符号化装置、復号装置、符号化方法、及び、復号方法 Download PDF

Info

Publication number
WO2021256082A1
WO2021256082A1 PCT/JP2021/016316 JP2021016316W WO2021256082A1 WO 2021256082 A1 WO2021256082 A1 WO 2021256082A1 JP 2021016316 W JP2021016316 W JP 2021016316W WO 2021256082 A1 WO2021256082 A1 WO 2021256082A1
Authority
WO
WIPO (PCT)
Prior art keywords
bits
coding
information
codebook
subvector
Prior art date
Application number
PCT/JP2021/016316
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 JP2022532346A priority Critical patent/JPWO2021256082A1/ja
Priority to EP21824908.4A priority patent/EP4170912A4/en
Priority to CN202180043347.2A priority patent/CN115699169A/zh
Priority to US18/009,174 priority patent/US20230238012A1/en
Publication of WO2021256082A1 publication Critical patent/WO2021256082A1/ja

Links

Images

Classifications

    • 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
    • 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
    • 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • 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/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error

Definitions

  • the present disclosure relates to a coding device, a decoding device, a coding method, and a decoding method.
  • Multi-rate lattice vector quantization is multi-rate lattice vector quantization (see, for example, Non-Patent Document 1). .. Multi-rate grid vector quantization may be applied, for example, to split vector quantization (eg, referred to as split multi-rate grid vector quantization, or split multi-rate grid vector quantization). Further, the split multi-rate lattice vector quantization may be applied to, for example, algebraic vector quantization (AVQ: Algebraic Vector Quantization).
  • AVQ Algebraic Vector Quantization
  • Non-limiting examples of the present disclosure contribute to the provision of a coding device, a decoding device, a coding method, and a decoding method for reducing the number of coding bits in vector quantization.
  • the coding apparatus includes a quantization circuit that generates a quantization parameter including a first information regarding a codebook for vector quantization and a second information regarding a code vector included in the codebook. , The second bit with respect to the subvector, using the number of second bits based on the difference between the number of first bits available for coding the subvector in the vector quantization and the number of bits of the quantization parameter of the subvector.
  • a control circuit for controlling the coding of information is provided.
  • the number of coding bits can be reduced in multi-rate lattice vector quantization.
  • a diagram showing an example of a codebook list in split multirate lattice vector quantization Block diagram showing a configuration example of a coding device Block diagram showing a configuration example of the codebook instruction value conversion unit A diagram showing an example of the correspondence between the number of unused bits and the number of unused bits coding code.
  • Block diagram showing a configuration example of a decoder Block diagram showing a configuration example of the codebook instruction value inverse conversion unit The figure which shows an example of the spectrum of an input signal Diagram showing an example of a codebook applied to a subvector Block diagram showing other configuration examples of the coding device Block diagram showing other configuration examples of the decoder Block diagram showing other configuration examples of the coding device Block diagram showing other configuration examples of the decoder
  • the figure which shows the other example of the correspondence relation between the number of unused bits and the number of unused bits coding code The figure which shows the other example of the correspondence relation between the number of unused bits and the number of unused bits coding code.
  • a signal in the frequency domain is divided into a plurality of subvectors (SV: sub-vector, also referred to as a subband), and the divided subs are divided.
  • Multi-rate lattice vector quantization may be performed for each vector.
  • FIG. 1 is a diagram showing an example of a list of codebooks (or referred to as codebooks) in multi-rate lattice vector quantization for subvectors (see, for example, Patent Document 1 or Non-Patent Document 1).
  • the quantization parameter in split multirate lattice vector quantization includes information (eg, "codebook indicator”) or code that identifies the codebook used for quantization, as shown in FIG.
  • Information that identifies a selected code vector among a plurality of code vectors contained in the codebook (referred to as a book index) (for example, referred to as a "code vector index”) is included. good.
  • one subvector (SV) can be coded (or quantized) by 1, 10, 15, 20. , 25, ..., 5n bits (n is an integer greater than or equal to 2) can be used.
  • 1, 2, 3, 4, 5, ..., N bits are codes. It may be used as a book reading.
  • the ratio of the number of bits allocated for coding the codebook instruction value to the total number of bits used for coding using each codebook may be 1/5.
  • the codebook Q0 may include one vector (for example, a zero vector).
  • a zero vector means, for example, that the quantization value of the vector is zero. Therefore, in the codebook Q0, the code vector index does not have to be specified, and the number of bits used for the code vector index may be 0.
  • the encoder may collectively encode a plurality of subvectors (for example, eight SVs in Non-Patent Document 1) using the codebook shown in FIG.
  • the number of bits that can be used for coding a plurality of subvectors (for example, referred to as "total number of bits") may be known between the coding device and the decoding device (decoder).
  • Patent Document 1 proposes, as an example, a method of reducing bits in split multi-rate lattice vector quantization for eight SVs. For example, based on the number of bits used for 7 SVs out of 8 SVs, the codebook indication value (codebook index) used for the remaining 1 SV is estimated according to the following equation (1). (See, for example, Patent Document 1).
  • the difference from the number of bits of the value is quantized (or encoded), and the difference information is transmitted to the decoding device.
  • the information amount (for example, the number of bits) of the above-mentioned difference information is smaller than the codebook indicated value, and the number of coding bits can be reduced. ..
  • Patent Document 1 there is a case where the difference information (in other words, the object to be encoded) becomes a negative number (for example, -1), and the quantization level or the code corresponding to the negative number is used. Alternatively, the complexity of quantization) may increase.
  • codebook Q0 eg. codebook indication "0”
  • codebook Q2 under special conditions (eg, codebook indication "1"). May not reduce the number of coded bits.
  • the special case may be, for example, a case in which there are no bits that are not used for coding among the total number of bits that can be used for coding, and all the bits are used for coding.
  • the trailing “0” also referred to as a stop bit
  • the codebook instruction value of the codebook Q2 may be "1" (1 bit) in which "0" is omitted from "10".
  • the coding bit is generated when the number of bits used for coding becomes 0.
  • the number may not be reduced.
  • the SV in which the number of bits used for encoding is 0 is likely to be, for example, a high-frequency SV among a plurality of SVs (for example, the 6th, 7th, or 8th SV among 8 SVs). ..
  • the coding in other words, in other words, the coding of the codebook indication value of the multi-rate lattice vector quantization (LVQ: Lattice VQ) applied to the split vector quantization (for example, SVQ: Split VQ) is performed.
  • LVQ Lattice VQ
  • SVQ Split VQ
  • FIG. 2 is a block diagram showing a configuration example of the coding device 100 according to the embodiment of the present disclosure.
  • the coding device 100 shown in FIG. 1 includes, for example, a time-frequency conversion unit 101, a psychoacoustic model analysis unit 102, and a split multi-rate lattice vector quantization (VQ) unit 103 (for example, corresponding to a quantization circuit).
  • VQ lattice vector quantization
  • a codebook instruction value conversion unit 104 for example, corresponding to a control circuit
  • a multiplexing unit 105 may be provided.
  • the time-frequency transform unit 101 uses a time-frequency transform method such as a discrete Fourier transform (DFT) or a modified discrete cosine transform (MDCT) to input a signal S (n) in the time domain. May be transformed into an input signal (or spectral coefficient) S (f) in the frequency domain.
  • the time-frequency conversion unit 101 may output, for example, the input signal S (f) in the frequency domain to the psychoacoustic model analysis unit 102 and the split multi-rate grid VQ unit 103.
  • the psychoacoustic model analysis unit 102 may, for example, perform psychoacoustic model analysis on the input signal S (f) in the frequency domain input from the time-frequency conversion unit 101 and acquire a masking curve.
  • the psychoacoustic model analysis unit 102 may output, for example, the acquired information on the masking curve to the split multi-rate grid VQ unit 103.
  • the split multi-rate grid VQ unit 103 may perform split multi-rate grid quantization on the input signal S (f) in the frequency domain input from the time-frequency conversion unit 101, for example.
  • the split multi-rate grid VQ unit 103 divides the input signal S (f) into a plurality of subvectors (SVs) and quantizes each of the plurality of subvectors to indicate a codebook instruction value indicating a codebook and a codebook instruction value.
  • Quantization parameters may be generated that include a code vector index indicating any of the plurality of code vectors contained in the codebook.
  • the split multi-rate grid VQ unit 103 may apply the split multi-rate grid VQ to the input signal S (f) in the frequency domain according to the information regarding the masking curve input from the psychoacoustic model analysis unit 102. ..
  • the quantization noise in the split multi-rate grid VQ can be inaudible.
  • the split multi-rate grid VQ unit 103 may output, for example, the global gain and the code vector index among the quantization parameters obtained by the quantization to the multiplexing unit 105. Further, the split multi-rate grid VQ unit 103 may output, for example, information regarding the codebook instruction value and the code vector index among the quantization parameters to the codebook instruction value conversion unit 104. Further, the split multi-rate grid VQ unit 103 may output, for example, information on the number of bits (for example, Bits available ) that can be used for encoding the input signal S (f) to the codebook instruction value conversion unit 104.
  • the codebook instruction value conversion unit 104 may convert the codebook instruction value coding information (or a coded code) based on the information input from the split multi-rate grid VQ unit 103, for example.
  • the codebook instruction value conversion unit 104 may perform the following steps 1 to 3 based on each codebook instruction value of a plurality of subvectors input from the split multi-rate grid VQ unit 103.
  • the codebook instruction value conversion unit 104 may, for example, among a plurality of (for example, N) codebook instruction values, other subvectors (for example, N-1 subvectors) different from the subvectors at predetermined positions. ) Codebook indication value is set to a code (or a coded code). Then, the codebook instruction value conversion unit 104 may calculate the sum of the number of bits used for the codebook instruction value and the number of bits used for the code vector index in, for example, N-1 subvectors.
  • the codebook instruction value conversion unit 104 may calculate, for example, the number of bits that can be used for the codebook instruction value of the subvector at a predetermined position. For example, the codebook instruction value conversion unit 104 encodes N-1 subvectors calculated in (step 1) from the total number of bits (Bits available ) that can be used for encoding the input signal S (f). By subtracting the sum of the number of bits used in, the number of bits that can be used to encode the codebook instruction value of the subvector at the predetermined position may be calculated.
  • the codebook instruction value conversion unit 104 is, for example, the number of bits that can be used for coding the subvector at the predetermined position calculated in (step 2) but is not used for coding (for example, the number of bits).
  • the number of unused bits may be encoded by calculating (referred to as the number of unused bits).
  • the codebook instruction value conversion unit 104 uses the number of usable bits calculated in (step 2) for the number of bits used for the codebook instruction value of the subvector at a predetermined position and the code vector index.
  • the number of unused bits may be calculated by subtracting the sum of the number of bits to be used.
  • the codebook instruction value conversion unit 104 outputs, for example, the codebook instruction value (encoding code) obtained by (step 1) to (step 3) and the unused bit number encoding code to the multiplexing unit 105. It's okay.
  • the multiplexing unit 105 includes a global gain and a code vector index input from the split multi-rate lattice VQ unit 103, a codebook indicated value (encoded code) input from the codebook instruction value conversion unit 104, and the number of unused bits.
  • the coded code may be multiplexed and the multiplexed bit stream information may be transmitted to the decoding device 200.
  • FIG. 3 is a block diagram showing a configuration example of the codebook instruction value conversion unit 104.
  • the codebook instruction value conversion unit 104 shown in FIG. 3 is, for example, a codebook instruction value separation unit 121, a usable bit number calculation unit 122, an unused bit number calculation unit 123, and an unused bit number coding unit 124. And may be prepared.
  • the codebook instruction value separation unit 121 outputs the codebook instruction value cbvi (i ⁇ Pfix) of N-1 subvectors different from the positions specified in advance to the usable bit number calculation unit 122, and also outputs the codebook instruction value cbvi (i ⁇ Pfix) to the usable bit number calculation unit 122. It may be output to the multiplexing unit 105 as a codebook instruction value (encoding code) (corresponding to step 1 above).
  • the usable bit number calculation unit 122 may calculate, for example, the number of bits that can be used for coding the subvector at the position specified in advance (corresponding to step 2 above). For example, the usable bit number calculation unit 122 calculates N-1 subvectors using N-1 codebook indication values (cbvi (i ⁇ Pfix)) from the input bit number Bits available. The number of bits that can be used to encode the subvector at a pre-specified position may be calculated by subtracting the number of bits used to encode the. The usable bit number calculation unit 122 may output the calculated usable bit number to the unused bit number calculation unit 123 and the unused bit number coding unit 124.
  • N-1 codebook indication values cbvi (i ⁇ Pfix)
  • the usable bit number calculation unit 122 may calculate the usable bit number cb'fix according to the following equation (2).
  • the usable bit number calculation unit 122 uses, for example, the number of bits used for encoding N-1 subvectors (for example, ⁇ Bits ) from the total number of bits Bits available, as shown in the equation (2). By subtracting cbvi (i ⁇ Pfix)), the number of bits cb'fix that can be used to encode the subvector at the pre-specified position is calculated.
  • the unused bit number calculation unit 123 may calculate the number of unused bits that are not used for coding the input signal S (f) (corresponding to step 3 above).
  • the unused bit number calculation unit 123 can be used in advance based on the number of used bits (actual value cbfix) of the codebook instruction value of the subvector at the position specified in advance, which is input from the codebook instruction value separation unit 121.
  • the number of bits used to encode the subvector at the specified position eg, the number of bits used to encode the codebook indication and the code vector index
  • the unused bit number calculation unit 123 subtracts the number of bits used for encoding the subvector at the position specified in advance from the usable bit number input from the usable bit number calculation unit 122, for example. Therefore, the number of unused bits may be calculated.
  • the unused bit number calculation unit 123 may output, for example, information regarding the calculated unused bit number to the unused bit number coding unit 124.
  • the unused bit number coding unit 124 encodes the unused bit number input from the unused bit number calculation unit 123, for example, to generate an unused bit number coding code (or is referred to as coding information). You can do it.
  • the unused bit number coding unit 124 is based on the association (for example, may be represented by a table) between the unused bit number and the unused bit number coding code (or the code) shown in FIG. ,
  • the unused bit number information coding code may be generated from the unused bit number.
  • the unused bit number coding unit 124 may output the unused bit number coding code to the multiplexing unit 105, for example.
  • the number of unused bits is an integer of 0 or more.
  • the number of candidates for the number of unused bits assigned to one code is five.
  • the same code is assigned to five integers out of the number of unused bits. For example, as shown in FIG. 1, when the number of bits used in the codebook instruction value is 2 or more, the number of bits used in the codebook instruction value and the number of bits used in the code vector index are 1: 4. This is because the total number of bits used for encoding the combined codebook instruction value and the code vector index changes in units of 5.
  • the unused bit number coding unit 124 may modify the codeword of the maximum unused bit number by using, for example, the number of usable bits input from the usable bit number calculation unit 122. For example, if the number of available bits is 23, the maximum number of unused bits that can be taken is 22 (for example, when Codebook Q0 is used), and in the example of FIG. 4, the codeword is 11110. (5 bits). The unused bit number coding unit 124 may, for example, change (or modify) this codeword 11110 to 1111 (4 bits).
  • FIG. 5 is a block diagram showing a configuration example of the decoding device 200 according to the embodiment of the present disclosure.
  • the decoding device 200 shown in FIG. 5 includes, for example, a separation unit 201, a codebook instruction value inverse conversion unit 202 (for example, corresponding to a control circuit), and a split multi-rate lattice inverse quantization (inverse VQ) unit 203 (for example,). It may be provided with (corresponding to an inverse quantization circuit) and a frequency-time conversion unit 204.
  • the bit stream transmitted from the coding device 100 is input to the separation unit 201.
  • the separation unit 201 may separate, for example, the global gain, the code vector index, the codebook instruction value (encoding code), and the unused bit number information encoding code from the input bit stream. For example, the separation unit 201 outputs the global gain and the code vector index to the split multi-rate grid inverse VQ unit 203, and outputs the codebook instruction value (encoded code) and the unused bit number information coding code to the codebook instruction value inverse. It may be output to the conversion unit 202.
  • the codebook instruction value inverse conversion unit 202 is based on the codebook instruction value (encoding code) and the unused bit number information encoding code input from the separation unit 201, and the following steps 4 to 7 are performed. Processing may be performed.
  • the codebook instruction value inverse conversion unit 202 may decode the unused bit number based on the unused bit number information coding code, for example.
  • Step 6 The codebook instruction value inverse conversion unit 202 is specified in advance based on, for example, the number of coded bits of the plurality of subvectors calculated in (step 4) and the number of unused bits decoded in (step 5). The number of coding bits of the subvector at the position may be calculated.
  • the codebook instruction value inverse conversion unit 202 indicates, for example, the codebook instruction of the subvector of the predetermined position based on the number of coding bits of the subvector of the predetermined position calculated in (step 6). The value may be calculated (or decoded).
  • the codebook instruction value inverse conversion unit 202 may output the codebook instruction value obtained by (step 4) to (step 7) to the split multi-rate grid inverse VQ unit 203, for example.
  • the split multi-rate grid inverse VQ unit 203 is based on, for example, the global gain and code vector index input from the separation unit 201 and the output codebook instruction value input from the codebook instruction value inverse conversion unit 202.
  • the split multi-rate lattice inverse VQ is performed to obtain the decoding signals S to (f) in the frequency domain.
  • the split multi-rate grid inverse VQ unit 203 may output the decoding signals S to (f) in the frequency domain to the frequency-time conversion unit 204.
  • the frequency-time transform unit 204 uses a frequency-time transform method such as an inverse discrete Fourier transform (IDFT) or an inverse modified discrete cosine transform (IMDCT) to reverse the split multirate grid.
  • the frequency domain signal S ⁇ (f) output from the VQ unit 203 may be converted into the time domain signal S ⁇ (n).
  • FIG. 6 is a block diagram showing a configuration example of the codebook instruction value inverse conversion unit 202.
  • the codebook instruction value inverse conversion unit 202 shown in FIG. 6 includes, for example, a usable bit number calculation unit 221, an unused bit number decoding unit 222, a restoration unit 223, and a codebook instruction value generation unit 224. It's okay.
  • the codebook instruction value (encoding code) output from the separation unit 201 may be input to the usable bit number calculation unit 221 and the codebook instruction value generation unit 224. Further, for example, the unused bit number coding code output from the separation unit 201 may be input to the unused bit number decoding unit 222.
  • the usable bit number calculation unit 221 may calculate, for example, the number of bits that can be used for coding the subvector at the position specified in advance. For example, the usable bit number calculation unit 221 calculates the number of bits used for encoding the N-1 subvector using the N-1 codebook indicated value (cbvi (i ⁇ Pfix)). (Corresponding to step 4 above), the number of bits to be input Bits available is subtracted from the number of bits used to encode N-1 subvectors, thereby encoding the subvectors at pre-specified positions. The number of bits that can be used for cb'fix may be calculated. The usable bit number calculation unit 221 may output the calculated usable bit number to the restoration unit 223.
  • the unused bit number decoding unit 222 may decode the unused bit number coding code input from the separation unit 201, for example. For example, the unused bit number decoding unit 222 uses the unused bit number coding code to the unused bit based on the association between the unused bit number and the unused bit number coding code (for example, the code) shown in FIG. The number may be determined (corresponding to step 5 above). The unused bit number decoding unit 222 may output, for example, information regarding the determined unused bit number to the restoration unit 223.
  • the restoration unit 223 is, for example, at a position specified in advance based on the number of usable bits input from the usable bit number calculation unit 221 and the unused bit number input from the unused bit number decoding unit 222.
  • the codebook reading of the subvector may be determined (or restored).
  • the restoration unit 223 subtracts the number of unused bits from the number of available bits to use the number of bits used for encoding the subvector at the position specified in advance (for example, the total used bits shown in FIG. 1). Number) may be calculated.
  • the restoration unit 223 calculates the number of bits of the codebook instruction value based on the calculated number of bits (for example, the total number of bits used), and generates a codebook instruction value encoding code indicating the codebook instruction value. It may be output to the unit 224 (corresponding to step 6 and step 7 above).
  • FIG. 7 is a diagram showing an example of the input signal S (f) in the frequency domain.
  • the input signal S (f) may be divided into eight subvectors v1 to v8.
  • FIG. 8 is a diagram showing an example of a codebook instruction value (or codebook) for each of the subvectors v1 to v8 obtained by split multi-rate grid quantization.
  • the codebook instruction value separation unit 121 does not, for example, set the codebook instruction value of the subvector v8 (for example, 5 bits of “11110”). Output to the used bit number calculation unit 123. Further, the codebook instruction value separation unit 121 is, for example, a codebook instruction value of subvectors v1 to v7 different from the subvector v8 (for example, “10”, “10”, “110”, “110”, “1110”. , "1110", "11110”) may be output to the multiplexing unit 105 as a code code.
  • the usable bit number calculation unit 122 may calculate, for example, the number of bits that can be used for coding the subvector v8.
  • the total number of bits that can be used in the transmission unit of the input signal (Bits available in the equation (2)) is 144 bits.
  • the unused bit number coding unit 124 has, for example, the unused bit number is 4 bits, the unused bit number coding code “0” (1 bit) is generated based on the association shown in FIG. good.
  • the codebook instruction values (coding codes) “10”, “10”, “110”, “110”, “1110”, and “respectively of the subvectors v1 to v7 generated in this way) are used.
  • 1110 ”,“ 11110 ”, and the unused bit number coding code“ 0 ” are multiplexed in the multiplexing unit 105 and transmitted to the decoding device 200.
  • the codebook number applied to the subvector v8 is 5 (Q5), and the number of bits used when encoding the codebook instruction value itself of the codebook Q5. Is 5 bits.
  • the number of unused bits transmitted in place of the codebook instruction value for the subvector v8 is 1 bit as described above. Therefore, in the example shown in FIG. 7, the number of unused bits is reduced by 4 bits as compared with the case where the codebook instruction value itself of the subvector v8 is encoded and notified by the notification of the coding code. can. Further, in the present embodiment, even if the coding bits are reduced, the information about the codebook is not lost, so that the codebook instruction value can be restored in the decoding device 200.
  • the coding device 100 and the decoding device 200 may use, for example, the number of bits that can be used for coding a subvector in vector quantization (for example, a split multirate lattice VQ) and the quantization parameter of the subvector (for example,). , Codebook instruction value and code vector)
  • the number of unused bits based on the difference from the number of bits is used to control the coding or decoding of the codebook instruction value for the subvector.
  • the coding device 100 converts the codebook instruction value used for coding a specific subvector in the spectrum of the input signal divided into a plurality of subvectors into information regarding the number of unused bits.
  • the decoding device 200 converts the information regarding the number of unused bits into the information regarding the codebook instruction value by using the code code of the number of unused bits transmitted from the coding device 100.
  • This transformation improves the efficiency of coding the codebook indication (or codebook index) of one identified SV, for example in lattice vector quantization (LVQ) used for split vector quantization (SVQ).
  • LVQ lattice vector quantization
  • SVQ split vector quantization
  • the number of bits used for the codebook instruction value used for coding a specific subvector can be reduced, and the bit rate can be reduced.
  • the difference information to be encoded can be -1.
  • the codebook instruction value estimated in Patent Document 1 is 0 (Q0), while the actual codebook instruction value is 1 ().
  • Q1 the codebook instruction value estimated in Patent Document 1
  • This can increase the complexity of the coding process, such as setting the quantization level corresponding to -1 (negative number) or the association including the code.
  • the number of unused bits in the number of bits including both the codebook instruction value and the code vector index is encoded, so that the minimum number of unused bits to be encoded is minimized. Since the value is 0 and it is not necessary to consider the coding of negative numbers, the coding process can be simplified.
  • transform coding is applied to a coding method
  • the coding method is not limited to transform coding.
  • one embodiment of the present disclosure may be applied to coding in which each of a plurality of subvectors obtained by dividing a signal (spectrum) in the frequency domain is quantized.
  • the total number of bits that can be used for coding is input to the usable bit number calculation units 122 and 221.
  • the total number of usable bits may not be information input from the outside of the encoder (for example, the encoding device 100) or the decoder (for example, the decoding device 200), but may be information held inside the encoder or the decoder.
  • the total number of usable bits may be, for example, a predetermined fixed value. Alternatively, a predetermined fixed value may be used as the initial value, and a value obtained by adding the number of unused bits to the initial value may be input as the total number of usable bits at the time of the subsequent split multi-rate grid VQ.
  • the split multirate grid VQ may be applied to CELP and hierarchical coding of transform coding.
  • FIG. 9 is a block diagram showing a configuration example of a coding device 100a when the split multi-rate grid VQ is applied to CELP and hierarchical coding of transform coding.
  • FIG. 10 is a block diagram showing a configuration example of the decoding device 200a when the split multi-rate grid VQ is applied to CELP and hierarchical coding of transform coding.
  • the CELP coding unit 51 performs CELP coding on the signal S (n) in the time domain, and outputs the CELP parameters to the CELP local decoding unit 52 and the multiplexing unit 105, for example. You may output it.
  • the CELP coding method is, for example, a coding method that utilizes the predictable property of a signal in the time domain.
  • the CELP local decoding unit 52 decodes the CELP parameter input from the CELP coding unit 51, for example, and generates a composite signal S syn (n).
  • the adder 53 generates a prediction error signal S e (n) by , for example, subtracting the combined signal S syn (n) from the input signal S (n).
  • the time-frequency conversion unit 54 converts the time-domain coding error signal S e (n) into the frequency-domain coding error signal S e (f) by a time-frequency conversion method such as DFT or MDCT.
  • the coding error signal S e (f) in the frequency domain may be quantized by the split multi-rate lattice VQ unit 103 and the codebook instruction value conversion unit 104.
  • the codebook instruction value (coding code) of a specific subvector may be transmitted to the decoding device 200a.
  • the separation unit 201 separates the bit stream transmitted from the coding device 100a into a CELP parameter and a quantization parameter, outputs the CELP parameter to the CELP decoding unit 64, and performs a quantum.
  • the global gain and the code vector index are output to the split multi-rate lattice inverse VQ unit 203, and the code-book instruction value (coding code) and the unused bit number coding code among the quantization parameters are code-book-instructed. It is output to the value inverse conversion unit 202.
  • the codebook instruction value inverse conversion unit 202 determines the coding error signal S e (f) based on the codebook instruction value (coding code) and the unused bit number coding code.
  • the codebook instruction value for the subvector at a specific position is determined, and the information about the codebook instruction value of N subvectors is output to the split multi-rate lattice inverse VQ unit 203.
  • the split multi-rate lattice inverse VQ section 203 decodes (or inversely quantizes) the coding error signal S e ⁇ (f) in the frequency domain based on, for example, the global gain, the codebook reading, and the code vector index. )do.
  • Frequency - time conversion unit 63 is, for example, coded error signal S e ⁇ decoded frequency domain (f), the frequency such IDFT or IMDCT - by time conversion scheme, coding the error signal S e ⁇ in the time domain ( Convert to n).
  • the CELP decoding unit 64 decodes the CELP parameter, for example, to obtain a synthetic signal S syn (n).
  • the adder 65 for example, adds the coding error signal S e ⁇ (n) and the combined signal S syn (n) to obtain the signal S ⁇ (n) in the time domain.
  • FIG. 11 is a block diagram showing a configuration example of the coding device 100b in this case
  • FIG. 12 is a block diagram showing a configuration example of the decoding device 200b.
  • the LPC (Linear Predictive Coding) analysis unit 71 performs LPC analysis on the signal S (n) in the time domain and outputs the LPC parameter to the quantization unit 72.
  • LPC analysis is, for example, a method that utilizes the predictable properties of time domain signals.
  • the quantization unit 72 quantizes the LPC parameter input from the LPC analysis unit 71, for example, and outputs the quantization parameter (for example, the quantization index) to the inverse quantization unit 73 and the multiplexing unit 105.
  • the dequantization unit 73 dequantizes the quantization index input from the quantization unit 72 and restores the LPC parameter.
  • the LPC inverse filter unit 74 applies, for example, LPC inverse filtering using the restored LPC parameters input from the inverse quantization unit 73 to the input signal S (n), thereby performing a residual in the time domain. Obtain the signal S r (n).
  • the time-frequency conversion unit 75 converts the residual signal S r (n) in the time domain into the residual signal S r (f) in the frequency domain by a time-frequency conversion method such as DFT or MDCT.
  • the residual signal S r (f) in the frequency domain may be quantized by the split multi-rate grid VQ unit 103 and the codebook indicated value conversion unit 104.
  • the coding apparatus 100b encodes an unused bit number instead of the codebook instruction value (coding code) of a specific subvector among a plurality of subvectors obtained by dividing the residual signal S r (f).
  • the code may be transmitted to the decoding device 200b.
  • the separation unit 201 separates the bit stream transmitted from the coding device 100b into a quantization index and a quantization parameter, and outputs the quantization index to the inverse quantization unit 84. Then, among the quantization parameters, the global gain and the code vector index are output to the split multi-rate lattice inverse VQ unit 203, and the codebook instruction value (coding code) and the unused bit number coding code among the quantization parameters are output. It is output to the codebook instruction value inverse conversion unit 202.
  • the codebook instruction value inverse conversion unit 202 specifies the residual signal S r (f) based on the codebook instruction value (encoding code) and the unused bit number encoding code, for example, as described above.
  • the codebook instruction value for the subvector at the position of is determined, and the information about the codebook instruction value of N subvectors is output to the split multi-rate lattice inverse VQ unit 203.
  • the split multi-rate lattice inverse VQ section 203 decodes (or inversely quantizes) the residual signal S r ⁇ (f) in the frequency domain based on, for example, the global gain, the codebook reading, and the code vector index. do.
  • the frequency-time conversion unit 83 uses, for example, the decoded frequency domain residual signal S r ⁇ (f) by a frequency-time conversion method such as IDFT or IMDCT to obtain the time domain residual signal S r ⁇ (n). Convert to.
  • the dequantization unit 84 dequantizes the quantization index and restores the LPC parameter.
  • the LPC synthesis filter unit 85 applies, for example, LPC synthesis filtering using the restored LPC parameters to the residual signal S r ⁇ (n) in the time domain, and the signal S ⁇ (n) in the time domain. To get.
  • the LPC synthesis filter processing is performed in the time domain in the present embodiment, it may be performed in the frequency domain.
  • An example of such TCX coding is the EVS codec MDCT based TCX.
  • the split multi-rate grid VQ may be applied to, for example, an acoustic sound coding process and a decoding process such as the EVS (Enhanced Voice Services) codec described in Non-Patent Document 1.
  • EVS Enhanced Voice Services
  • the split multi-rate lattice VQ may be applied to the algebraic vector quantizer (AVQ: Algebraic Vector Quantizer) of Non-Patent Document 1.
  • AVQ Algebraic Vector Quantizer
  • AVQ is applied to various coding modes.
  • the coded frame is classified as a harmonic signal in the 32 kbit / s GC (Generic Coding) mode
  • the codebook indicated code number in the split multirate grid VQ is the higher frequency subvector (eg, for example).
  • the subvector v8) is likely to increase.
  • the GC mode coding for the harmonic signal is likely to be performed at the rising edge of the vowel, and the higher the frequency band, the worse the expressiveness of harmonics in the adaptive codebook (or adaptive codebook).
  • the reason for this is that the higher the frequency, the more likely it is that the harmonics will shift, and the larger the coding error of the adaptive codebook will be. Therefore, in the coding of a signal in the frequency domain (for example, the spectrum of a prediction error or a residual signal), the higher the subvector, the higher the energy of the signal and the larger the number of bits used for quantization. Book is easy to select.
  • the subvector v8 may be set to the subvector at a specific position.
  • the subvector having the highest frequency among the plurality of subvectors constituting the input signal is the subvector.
  • the vector may be set to one subvector that encodes the number of unused bits.
  • the split multi-rate grid VQ may be applied to the signal in the time domain depending on the coded bit rate of EVS. Even in this case, it is effective to set the last subvector (in other words, the last subvector in time) at the predetermined subvector position. This is because it has been experimentally confirmed that in such a case, the number of bits used for encoding the unused bits tends to be less than the number of bits used for encoding the codebook instruction value. Is. That is, in a frame classified into the GC mode, the number of bits remaining unused at the time of quantization of the last subvector is often small, so that the coding efficiency is higher when the number of unused bits is encoded. Cheap.
  • ⁇ Method 1> For example, if the number of bits used to encode a subvector at a particular position (eg, subvector v8) is low (eg, Codebook Q0 or Q2) and the number of unused bits is high (eg, 15 bits). In the above case), the number of bits used to encode the number of unused bits may be larger than the number of bits used to encode the codebook instruction value itself.
  • the codebook that can be used for the subvector at a specific position is a codebook.
  • Q0 codebook indicated value is 1 bit of "0”
  • special case codebook Q2 codebook indicated value is 1 bit of "1"
  • the codebook instruction value is represented by 1 bit (in other words, the minimum value), and therefore, it is also encoded by the method according to the embodiment of the present disclosure. The number of bits cannot be reduced.
  • the coding apparatus 100 when the number of bits that can be used for the subvector at a specific position is equal to or less than a threshold value (for example, 9 bits or less), the coding apparatus 100 according to an embodiment of the present disclosure (for example, unused bits).
  • the codebook instruction value of the subvector at a specific position may be determined as it is as a code code (or coding information) without applying the method of encoding a number).
  • the coding apparatus 100 encodes a code code that encodes the number of unused bits. It may be determined as the coding information.
  • the method 1 it is possible to suppress an increase in the number of coding bits and improve the efficiency of coding regardless of the number of bits that can be used for the subvector at a specific position.
  • the number of bits that can be used for the subvector at a specific position can be calculated by the decoding device 200 from other parameters (for example, the total number of bits and the codebook indicated value of the other subvector). Therefore, it is not necessary to provide signaling for switching the coding method according to the method 1 (for example, additional information for notifying the switching).
  • the codebook that can be used in the subvector at a particular position is codebook Q0 (eg, total). Number of bits used: 1 bit) or Codebook Q2 (for example, total number of bits used: 10 bits).
  • the codebook Q0 for example, the total number of used bits: 1 bit
  • the number of unused bits is 10 to 12 bits. Therefore, in the example shown in FIG. 4, the number of unused bits is used.
  • the number of coding bits of is 3 bits. Therefore, the number of bits is increased by 2 bits as compared with the case where the codebook instruction value is encoded as it is (for example, 1 bit).
  • the function "a% b" is a function that returns the remainder of b with respect to a (for example, it is also called a modulo operation).
  • the coding apparatus 100 subtracts a remainder of 5 (in other words, the number of bits that are clearly unused) from the number of usable bits (cb'fix) with respect to the number of usable bits, and uses the subtraction result to obtain a result.
  • the number of unused bits may be calculated.
  • the coding device 100 may set, for example, 10 bits of the subtraction result to the usable bits.
  • the codebook Q0 (1 bit) is used for 10 usable bits
  • the number of unused bits is 9 bits. Therefore, in the example shown in FIG. 4, the number of unused bits is 9. It is encoded by a 2-bit unused bit number coding code.
  • the number of bits used for encoding the number of unused bits is the case where the remainder of 5 is not subtracted from the number of available bits. It is reduced compared to the number of bits used to encode the number of unused bits (eg, 3 bits). In other words, for example, when subtracting the remainder of 5 from the number of available bits, the increase in the number of bits should be suppressed to 1 bit as compared with the case where the codebook instruction value is encoded as it is (for example, 1 bit). Can be done.
  • ⁇ Method 3> For example, when the number of usable bits (cb'fix) is 10 bits, the number of unused bits does not exceed 10 bits (in other words, it is 9 bits or less), so the number of unused bits in the example shown in FIG. 4 The "0" of the code "10" corresponding to 5 to 9 may be omitted. In other words, in this case, it suffices to distinguish between 0 to 4 (reference numeral “0”) and 5 to 9 (reference numeral “1”) in the number of unused bits. By such coding, the number of bits used for coding the number of unused bits can be further reduced by one bit, and the increase in the number of bits can be suppressed.
  • the coding apparatus 100 does not switch to the method of setting the codebook instruction value as it is in the code code as described in ⁇ Method 1> even when the number of usable bits is 9 bits or less. May be good.
  • ⁇ Method 4> For example, when the number of usable bits (cb'fix) is 8 bits or less, in the example shown in FIG. 1, there is no possibility that the codebook indicated value becomes a value other than “0” (Q0). In this case, the decoding device 200 can specify the codebook instruction value Q0 even if the information regarding the codebook instruction value is not transmitted.
  • the codebook of the codebook Q0 Coding processing and decoding processing without transmission / reception of information regarding the indicated value may be performed. This makes it possible to reduce the coded information by 1 bit.
  • ⁇ Method 5> when the number of usable bits (cb'fix) is 14 bits, in the example shown in FIG. 1, the codebooks that can be used for the subvector at a specific position are the codebooks Q0, Q2, and the codebook of the special case. Q3.
  • the codebook indication value can be represented by "11" (2 bits) instead of "110", and the number of bits used in the code vector (12 bits). It can be encoded with 14 bits in total.
  • the number of usable bits when the number of usable bits is 13 bits or less, it is possible to suppress an increase in the number of coded bits of 2 bits or more based on at least one of ⁇ Method 1> to ⁇ Method 4> described above.
  • the number of usable bits when the number of usable bits is 14 bits or more, the number of encoded bits may be increased or decreased depending on the number of unused bits.
  • the unused bits occupy most of the usable bits (for example, the number of unused bits). Is above the threshold) is assumed to be rare. Therefore, for example, the number of unused bits less than the threshold value is likely to be encoded, and the reduction in the number of bits can be achieved on average. On the other hand, in rare cases, the number of unused bits may increase and the number of coded bits may increase by 2 bits or more. Therefore, for example, the coding method may be switched based on the following method.
  • whether or not the input signal is close to zero can be determined based on the gain information (or gain information) multiplied by the energy of the adaptive codebook vector or the excitation signal encoded by the AVQ. Is.
  • the coding apparatus 100 for example, when the energy of the adaptive codebook vector (or code vector) is less than the threshold value (for example, 10), or the gain multiplied by the excitation signal encoded by AVQ is the threshold value (for example). For example, if it is less than 1.0), the codebook reading of the subvector at a specific position is used without applying the method according to the embodiment of the present disclosure (for example, the method of encoding the number of unused bits).
  • the code code may be determined as it is.
  • the code code in which the number of unused bits is encoded may be determined as the coding information.
  • the coding apparatus 100 may switch the coding method based on, for example, a combination of the energy of the adaptive codebook vector and the gain multiplied by the excitation signal encoded by the AVQ. At this time, the coding apparatus 100 may, for example, weight the energy of the adaptive codebook vector and the gain multiplied by the excitation signal when determining the switching of the coding method.
  • the gain multiplied by the excitation signal encoded by the AVQ is not fixed until the AVQ coding is completed in the coded target frame, for example, the gain information in the past frame may be referred to in time. ..
  • Method 5 as an example, a method of switching the coding method based on the energy or gain information of the adaptive codebook vector has been described, but the method is not limited to this, and other parameters related to the increase / decrease in the number of unused bits are described.
  • the coding method may be switched based on.
  • the coding method may be switched based on the comparison between the number of unused bits and the threshold value.
  • the upper limit of the number of unused bits is the number of usable bits, there is no need for a code code (or code) that exceeds the number of usable bits.
  • the code of the upper limit of the number of unused bits the zero at the end of the code (for example, the stop bit) may not be present.
  • the decoding device 200 can specify the number of unused bits.
  • the example shown in FIG. 13 may be applied instead of the example shown in FIG. 4 for the association between the number of unused bits and the code.
  • the reference numeral shown in FIG. 13 corresponds to, for example, a Huffman code.
  • the number of bits of the code “111” is one bit less when the number of unused bits is 15 to 19 bits as compared with FIG.
  • the code code (or coding information) in which the number of unused bits is encoded may be represented by a Huffman code having the number of usable bits as the upper limit of the number of unused bits.
  • the coding apparatus 100 may encode the unused bits by using a Huffman code according to the upper limit of the unused bits. As a result, the number of bits used for coding the codebook instruction value can be reduced by one bit.
  • the code assigned to the number of unused bits may be represented by an Unary code.
  • the code assigned to the number of unused bits may be represented by an Unary code.
  • the code assigned to the number of unused bits may be represented by an Unary code.
  • the number of usable bits among the plurality of Unary codes assigned to the number of unused bits.
  • the upper limit of the number of unused bits corresponds to Unary.
  • the code is 4 bits of "1110".
  • the least significant bit “0” of the Unary code “1110” may be truncated to “111”, and the association between the number of unused bits and the code is the same as in the example shown in FIG. As a result, the number of bits used for coding the codebook instruction value can be reduced by one bit.
  • the subvector at a specific position has a longer word length (or number of bits) depending on the number of available bits. Codebook readings are easier to select. Also, when a codebook reading with a longer word length is selected, the number of unused bits becomes closer to 0, making it easier to select a code code with a shorter number of unused bits. In method 6, this tendency is used by the encoder 100 to calculate the maximum codebook indication that can be used to encode the subvector based on the number of bits available for the subvector at a particular position.
  • the code assigned to the number of unused bits may be represented by a Huffman code or an Unary code (for example, a code obtained by cutting off the LSB of the Unary code assigned to the upper limit of the number of unused bits).
  • an Unary code for example, a code obtained by cutting off the LSB of the Unary code assigned to the upper limit of the number of unused bits.
  • the number of usable bits is 10 bits or more, there is a high possibility that the surplus bits of 5 will be unused. Therefore, in the method 6, the number of usable bits is 5. It may be a value obtained by subtracting the remainder of.
  • the probability that the number of unused bits is 5-9 bits is the highest, and the probability that the number of unused bits is 0-4 bits is the second highest.
  • the distribution after 10-14 bits may be the third and subsequent distributions (for example, when the GC mode is selected).
  • a method of assigning a code to the number of unused bits in this case for example, a code “0” having an unused bit number of 0-4 bits and a code “10” having an unused bit number of 5-9 bits are used. It may be replaced (for example, FIG. 14).
  • the number of bits of the code corresponding to the candidate having a higher probability of occurrence may be smaller.
  • the average number of coded bits can be reduced.
  • FIG. 14 is an example, and a code having a different number of bits may be assigned according to the probability of occurrence of the number of unused bits. For such allocation, the optimum allocation method may be determined in advance for each coding mode, so that it is not necessary to encode or transmit information regarding the allocation method.
  • the code assigned to the number of unused bits shown in FIGS. 4, 13 and 14 is an Unary code having "0" as a stop bit, but is not limited thereto.
  • "1" and "0" in the code assigned to the number of unused bits shown in FIGS. 4, 13 and 14 may be interchanged.
  • Huffman coding can be applied to the method of coding the codebook instruction value as it is.
  • the codebook indicated value of Q4 is 4 bits of “1110”.
  • the codebook indicated value of Q4 may be "111" with "0" omitted from "1110". As a result, the number of coding bits of the codebook instruction value can be reduced.
  • the codebook list is not limited to the example shown in FIG. 1, and the codebook instruction value and the code value of the code vector index in the codebook and the number of bits used (or the total number of bits used). The number) may be another value.
  • the threshold values described in ⁇ Method 1> to ⁇ Method 6> described above may be set according to the codebook list applied to the coding and decoding.
  • Each functional block used in the description of the above embodiment is partially or wholly realized as an LSI which is an integrated circuit, and each process described in the above embodiment is partially or wholly. It may be controlled by one LSI or a combination of LSIs.
  • the LSI may be composed of individual chips, or may be composed of one chip so as to include a part or all of functional blocks.
  • the LSI may include data input and output.
  • LSIs may be referred to as ICs, system LSIs, super LSIs, and ultra LSIs depending on the degree of integration.
  • the method of making an integrated circuit is not limited to LSI, and may be realized by a dedicated circuit, a general-purpose processor, or a dedicated processor. Further, an FPGA (Field Programmable Gate Array) that can be programmed after the LSI is manufactured, or a reconfigurable processor that can reconfigure the connection and settings of the circuit cells inside the LSI may be used.
  • the present disclosure may be realized as digital processing or analog processing. Furthermore, if an integrated circuit technology that replaces an LSI appears due to advances in semiconductor technology or another technology derived from it, it is naturally possible to integrate functional blocks using that technology. The application of biotechnology may be possible.
  • the communication device may include a wireless transceiver and a processing / control circuit.
  • the wireless transceiver may include a receiver and a transmitter, or them as a function.
  • the radio transceiver (transmitter, receiver) may include an RF (Radio Frequency) module and one or more antennas.
  • the RF module may include an amplifier, an RF modulator / demodulator, or the like.
  • Non-limiting examples of communication devices include telephones (mobile phones, smartphones, etc.), tablets, personal computers (PCs) (laptops, desktops, notebooks, etc.), cameras (digital stills / video cameras, etc.).
  • Digital players digital audio / video players, etc.
  • wearable devices wearable cameras, smart watches, tracking devices, etc.
  • game consoles digital book readers
  • telehealth telemedicines remote health Care / medicine prescription
  • vehicles with communication functions or mobile transportation automobiles, planes, ships, etc.
  • combinations of the above-mentioned various devices can be mentioned.
  • Communication devices are not limited to those that are portable or mobile, but are all types of devices, devices, systems that are not portable or fixed, such as smart home devices (home appliances, lighting equipment, smart meters or Includes measuring instruments, control panels, etc.), vending machines, and any other "Things” that can exist on the IoT (Internet of Things) network.
  • smart home devices home appliances, lighting equipment, smart meters or Includes measuring instruments, control panels, etc.
  • vending machines and any other “Things” that can exist on the IoT (Internet of Things) network.
  • Communication includes data communication by a combination of these, in addition to data communication by a cellular system, a wireless LAN system, a communication satellite system, etc.
  • the communication device also includes devices such as controllers and sensors that are connected or connected to communication devices that perform the communication functions described in the present disclosure.
  • devices such as controllers and sensors that are connected or connected to communication devices that perform the communication functions described in the present disclosure.
  • controllers and sensors that generate control and data signals used by communication devices that perform the communication functions of the communication device.
  • Communication devices also include infrastructure equipment that communicates with or controls these non-limiting devices, such as base stations, access points, and any other device, device, or system. ..
  • the coding apparatus includes a quantization circuit that generates a quantization parameter including a first information regarding a codebook for vector quantization and a second information regarding a code vector included in the codebook. , The second bit with respect to the subvector, using the number of second bits based on the difference between the number of first bits available for coding the subvector in the vector quantization and the number of bits of the quantization parameter of the subvector.
  • a control circuit for controlling the coding of information is provided.
  • control circuit determines the information in which the second bit number is encoded as the encoded information.
  • the information encoded by the second bit number is represented by a Huffman code having the first bit number as the upper limit value of the second bit number.
  • the information encoded by the second bit number is represented by an Unary code, and the Unary code corresponding to the upper limit value of the second bit number set based on the first bit number.
  • the least significant bit of is deleted.
  • the number of bits of the information corresponding to the candidate having a higher probability of occurrence is smaller.
  • the control circuit determines the information obtained by encoding the number of the second bits as the coding information, and the number of the first bits is the threshold value.
  • the first information is determined to be encoded information.
  • the subvector in the Generic Coding (mode) of the Enhanced Voice Services (EVS) codec, the subvector has the highest frequency (or the last in time) of the plurality of subvectors that divide the signal. ) Subvector.
  • the control circuit determines the information obtained by encoding the second bit number as the coded information, and determines the coded information of the code vector.
  • the first information is determined as the coding information.
  • the control circuit determines the information obtained by encoding the second bit number as the encoded information, and when the gain is less than the threshold value. , The first information is determined to be coded information.
  • the second bit number is a number obtained by subtracting the number of bits of the quantization parameter of the subvector from the remainder of 5 with respect to the first bit number.
  • the decoding apparatus includes the number of first bits that can be used for coding a subvector in vector quantization, the first information regarding the codebook of the subvector, and the code vector included in the codebook.
  • a control circuit that controls the decoding of the first information with respect to the subvector using the number of second bits based on the difference from the number of bits of the quantization parameter including the second information regarding the above, and the reverse based on the first information. It is equipped with an inverse quantization circuit that performs vector quantization.
  • the coding apparatus In the coding method according to an embodiment of the present disclosure, the coding apparatus generates a quantization parameter including a first information regarding a codebook for vector quantization and a second information regarding a code vector included in the codebook. Then, using the number of second bits based on the difference between the number of first bits that can be used for coding the subvector in the vector quantization and the number of bits of the quantization parameter of the subvector, the said with respect to the subvector. It controls the coding of the first information.
  • the decoding apparatus includes the number of first bits that can be used for encoding the subvector in vector quantization, the first information regarding the codebook of the subvector, and the codebook.
  • the number of second bits based on the difference from the number of bits of the quantization parameter including the second information regarding the code vector included is used to control the decoding of the first information with respect to the subvector, based on the first information. Perform inverse vector quantization.
  • One embodiment of the present disclosure is useful for a coding system or the like.
  • CELP coding unit 52 CELP local decoding unit 53,65 adder 64
  • CELP decoding unit 71 LPC analysis unit 72 quantization unit 73,84 inverse quantization unit 74
  • LPC inverse filter unit 85 LPC synthesis filter unit 100, 100a, 100b code Computer 54,75,101 Time-frequency conversion unit 102
  • Psychoacoustic model analysis unit 103 Split multi-rate lattice quantization unit 104
  • Codebook instruction value conversion unit 105 Multiplication unit 121 Codebook instruction value separation unit 122,221 Usable bits Number calculation unit 123 Unused bit number calculation unit 124 Unused bit number coding unit 200, 200a, 200b Decoding device 201 Separation unit 202
  • Codebook instruction value inverse conversion unit 203 Split multi-rate lattice inverse quantization unit 63, 83, 204 Frequency-time conversion unit 222 Unused bit number Decoding unit 223
  • Restoration unit 224 Codebook instruction value generation unit

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情報、及び、コードブックに含まれるコードベクトルに関する第2情報を含む量子化パラメータを生成する量子化回路と、ベクトル量子化においてサブベクトルの符号化に使用可能な第1ビット数とサブベクトルの量子化パラメータのビット数との差に基づく第2ビット数を用いて、サブベクトルに対する第1情報の符号化を制御する制御回路と、を具備する。

Description

符号化装置、復号装置、符号化方法、及び、復号方法
 本開示は、符号化装置、復号装置、符号化方法、及び、復号方法に関する。
 オーディオ又は音声の符号化(例えば、励振信号の符号化)における量子化方法の一つに、マルチレート格子ベクトル量子化(multi-rate lattice vector quantization)がある(例えば、非特許文献1を参照)。マルチレート格子ベクトル量子化は、例えば、分割ベクトル量子化に適用されてよい(例えば、スプリットマルチレート格子ベクトル量子化、又は、分割マルチレート格子ベクトル量子化と呼ばれる)。また、スプリットマルチレート格子ベクトル量子化は、例えば、代数的ベクトル量子化(AVQ:Algebraic Vector Quantization)とも呼ばれる)に適用されてよい。
国際公開第2013/061531号
 しかしながら、マルチレート格子ベクトル量子化において符号化ビット数を低減する方法について検討の余地がある。
 本開示の非限定的な実施例は、ベクトル量子化において符号化ビット数を低減する符号化装置、復号装置、符号化方法、及び、復号方法の提供に資する。
 本開示の一実施例に係る符号化装置は、ベクトル量子化のコードブックに関する第1情報、及び、前記コードブックに含まれるコードベクトルに関する第2情報を含む量子化パラメータを生成する量子化回路と、前記ベクトル量子化においてサブベクトルの符号化に使用可能な第1ビット数と前記サブベクトルの前記量子化パラメータのビット数との差に基づく第2ビット数を用いて、前記サブベクトルに対する前記第1情報の符号化を制御する制御回路と、を具備する。
 なお、これらの包括的または具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム、または、記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
 本開示の一実施例によれば、マルチレート格子ベクトル量子化において符号化ビット数を低減できる。
 本開示の一実施例における更なる利点および効果は、明細書および図面から明らかにされる。かかる利点および/または効果は、いくつかの実施形態並びに明細書および図面に記載された特徴によってそれぞれ提供されるが、1つまたはそれ以上の同一の特徴を得るために必ずしも全てが提供される必要はない。
スプリットマルチレート格子ベクトル量子化におけるコードブックリストの一例を示す図 符号化装置の構成例を示すブロック図 コードブック指示値変換部の構成例を示すブロック図 未使用ビット数と未使用ビット数符号化コードとの対応関係の一例を示す図 復号装置の構成例を示すブロック図 コードブック指示値逆変換部の構成例を示すブロック図 入力信号のスペクトルの一例を示す図 サブベクトルに適用されるコードブックの一例を示す図 符号化装置の他の構成例を示すブロック図 復号装置の他の構成例を示すブロック図 符号化装置の他の構成例を示すブロック図 復号装置の他の構成例を示すブロック図 未使用ビット数と未使用ビット数符号化コードとの対応関係の他の例を示す図 未使用ビット数と未使用ビット数符号化コードとの対応関係の他の例を示す図 コードブックとコードブック指示値との関連付けの一例を示す図
 以下、本開示の実施の形態について図面を参照して詳細に説明する。
 例えば、スプリットマルチレート格子ベクトル量子化では、周波数領域(又は、スペクトル領域)の信号が複数のサブベクトル(SV:sub-vector。又は、サブバンドとも呼ぶ)に分割され、分割された複数のサブベクトルそれぞれに対してマルチレート格子ベクトル量子化が行われてよい。
 図1は、サブベクトルに対するマルチレート格子ベクトル量子化におけるコードブック(又は、符号帳と呼ぶ)のリストの一例を示す図である(例えば、特許文献1又は非特許文献1を参照)。
 例えば、スプリットマルチレート格子ベクトル量子化における量子化パラメータには、図1に示すように、量子化に使用されるコードブックを識別する情報(例えば、「コードブック指示値(codebook indicator)」又はコードブックインデックスと呼ぶ)、及び、当該コードブックに含まれる複数のコードベクトルのうちの選択されたコードベクトルを識別する情報(例えば、「コードベクトルインデックス(code vector index)」と呼ぶ)が含まれてよい。
 例えば、図1に示すコードブックQ0、Q2、Q3、Q4、Q5、…、Qnそれぞれにおいて、1つのサブベクトル(SV)の符号化(又は、量子化)には、1,10,15,20,25,…,5nビット(nは2以上の整数)が使用され得る。各コードブックを用いた符号化に使用されるビット数(例えば、合計使用ビット数)のうち、1,2,3,4,5,…,nビット(nは2以上の整数)は、コードブック指示値に用いられてよい。換言すると、図1では、各コードブックを用いた符号化に使用されるビット数全体(例えば、5n)に占めるコードブック指示値の符号化に割り当てられるビット数の割合は1/5でよい。
 なお、コードブックQ0には、1つのベクトル(例えば、零ベクトル)が含まれてよい。零ベクトルは、例えば、ベクトルの量子化値が0であることを意味する。よって、コードブックQ0では、コードベクトルインデックスが規定されなくてよく、コードベクトルインデックスに使用されるビット数は0でよい。
 例えば、符号化装置(encoder)は、図1に示すコードブックを用いて、複数のサブベクトル(例えば、非特許文献1では8個のSV)をまとめて符号化してよい。なお、複数のサブベクトルの符号化に利用可能なビット数(例えば、「ビット総数」と呼ぶ)は、符号化装置と復号装置(decoder)との間において既知でよい。
 例えば、特許文献1には、一例として、8個のSVに対するスプリットマルチレート格子ベクトル量子化におけるビットの削減方法が提案されている。例えば、8個のSVのうち、7個のSVに使用されるビット数に基づいて、残りの1つのSVに使用されるコードブック指示値(コードブックインデックス)が次式(1)に従って推定されてよい(例えば、特許文献1を参照)。
Figure JPOXMLDOC01-appb-M000001
 式(1)において、cb’fixは、1つのSV(例えば、サブベクトル番号i=Pfix)に対するコードブック指示値の使用ビット数の推定値を示し、Bitsavailableは、8個のSVの符号化に利用可能なビット総数を示し、ΣBitscbviは、サブベクトル番号i=Pfixと異なる他の7個のサブベクトルvi(i≠Pfix)に対する符号化に使用されるビット数(例えば、図1の合計使用ビット数)の合計を示す。
 特許文献1では、符号化装置は、例えば、1つのSV(例えば、i=Pfix)に対して、式(1)に示すコードブック指示値の使用ビット数の推定値と、実際のコードブック指示値のビット数との差分を量子化(又は、符号化)し、差分情報を復号装置へ伝送する。例えば、1つのSVに使用されるコードブック番号nが大きいほど、上述した差分情報の情報量(例えば、ビット数)の方が、コードブック指示値よりも少なくなり、符号化ビット数を削減できる。
 しかしながら、特許文献1では、例えば、差分情報(換言すると、符号化対象)が負数(例えば、-1)になるケースがあり、負数に対応する量子化レベル又は符号を使用するため、符号化(又は、量子化)の煩雑さが増加し得る。
 また、特定される1つのSVがコードブックQ0(例えば、コードブック指示値“0”)又は特殊条件下のコードブックQ2(例えば、コードブック指示値“1”)に基づいて符号化される場合には、符号化ビット数が削減されない可能性がある。
 ここで、特殊ケースとは、例えば、符号化に利用可能なビット総数のうち、符号化に使用されないビットが無く、全てのビットが符号化に使用されるケースでよい。このケースでは、例えば、図1において、各コードブックのコードブック指示値を示す複数のビットのうち、末尾の“0”(例えば、ストップビットとも呼ばれる)を省略してよい。例えば、特殊ケースでは、コードブックQ2のコードブック指示値は、“10”から“0”を省略した“1”(1ビット)でよい。
 また、例えば、複数のSVのうち、符号化に使用されるビット数がより多いSVのビット削減に着目すると、符号化に使用されるビット数が0となるSVが発生する場合に符号化ビット数を削減されない可能性がある。なお、符号化に使用されるビット数が0となるSVは、例えば、複数のSVのうち高域のSV(例えば、8個のSVのうち、6、7又は8番目のSV)になりやすい。
 そこで、本開示の一実施例では、スプリットベクトル量子化(例えば、SVQ:Split VQ)に適用されるマルチレート格子ベクトル量子化(LVQ:Lattice VQ)のコードブック指示値の符号化(換言すると、可変長符号)に使用される符号化ビット数を削減する方法について説明する。
 なお、以下では、一例として、符号化方式に変換符号化を適用する場合について説明する。
 [符号化装置の構成例]
 図2は、本開示の一実施例に係る符号化装置100の構成例を示すブロック図である。図1に示す符号化装置100は、例えば、時間-周波数変換部101と、心理音響モデル分析部102と、スプリットマルチレート格子ベクトル量子化(VQ)部103(例えば、量子化回路に相当)と、コードブック指示値変換部104(例えば、制御回路に相当)と、多重化部105と、を備えてよい。
 時間-周波数変換部101は、例えば、離散フーリエ変換(DFT:Discrete Fourier Transform)又は修正離散コサイン変換(MDCT:Modified Discrete Cosine Transform)といった時間-周波数変換方式によって、時間領域の入力信号S(n)を周波数領域の入力信号(または、スペクトル係数とも呼ぶ)S(f)に変換してよい。時間-周波数変換部101は、例えば、周波数領域の入力信号S(f)を、心理音響モデル分析部102及びスプリットマルチレート格子VQ部103へ出力してよい。
 心理音響モデル分析部102は、例えば、時間-周波数変換部101から入力される周波数領域の入力信号S(f)に対して心理音響モデル分析を行い、マスキング曲線を取得してよい。心理音響モデル分析部102は、例えば、取得したマスキング曲線に関する情報を、スプリットマルチレート格子VQ部103へ出力してよい。
 スプリットマルチレート格子VQ部103は、例えば、時間-周波数変換部101から入力される周波数領域の入力信号S(f)に対して、スプリットマルチレート格子量子化を行ってよい。例えば、スプリットマルチレート格子VQ部103は、入力信号S(f)を複数のサブベクトル(SV)に分割し、複数のサブベクトルそれぞれを量子化して、コードブックを示すコードブック指示値、及び、当該コードブックに含まれる複数のコードベクトルのうち何れかを示すコードベクトルインデックスを含む量子化パラメータを生成してよい。
 また、例えば、スプリットマルチレート格子VQ部103は、心理音響モデル分析部102から入力されるマスキング曲線に関する情報に従って、周波数領域の入力信号S(f)にスプリットマルチレート格子VQを適用してもよい。これにより、例えば、スプリットマルチレート格子VQにおける量子化ノイズが不可聴となり得る。
 スプリットマルチレート格子VQ部103は、例えば、量子化によって得られる量子化パラメータのうち、グローバルゲイン及びコードベクトルインデックスを、多重化部105に出力してよい。また、スプリットマルチレート格子VQ部103は、例えば、量子化パラメータのうち、コードブック指示値及びコードベクトルインデックスに関する情報をコードブック指示値変換部104へ出力してよい。また、スプリットマルチレート格子VQ部103は、例えば、入力信号S(f)の符号化に使用可能なビット数(例えば、Bitsavailable)に関する情報をコードブック指示値変換部104に出力してよい。
 コードブック指示値変換部104は、例えば、スプリットマルチレート格子VQ部103から入力される情報に基づいて、コードブック指示値の符号化情報(又は、符号化コードと呼ぶ)を変換してよい。
 例えば、コードブック指示値変換部104は、スプリットマルチレート格子VQ部103から入力される複数のサブベクトルの各コードブック指示値に基づいて、以下のステップ1~ステップ3の処理を行ってよい。
 (ステップ1)
 コードブック指示値変換部104は、例えば、複数(例えば、N個)のコードブック指示値のうち、予め定められた位置のサブベクトルと異なる他のサブベクトル(例えば、N-1個のサブベクトル)のコードブック指示値を符号(又は、符号化コード)に設定する。そして、コードブック指示値変換部104は、例えば、N-1個のサブベクトルにおいて、コードブック指示値の使用ビット数及びコードベクトルインデックスの使用ビット数の総和を算出してよい。
 (ステップ2)
 コードブック指示値変換部104は、例えば、予め定められた位置のサブベクトルのコードブック指示値に使用可能なビット数を算出してよい。例えば、コードブック指示値変換部104は、入力信号S(f)の符号化に使用可能なビット総数(Bitsavailable)から、(ステップ1)で算出されたN-1個のサブベクトルの符号化に使われるビット数の総和を減じることにより、予め定められた位置のサブベクトルのコードブック指示値の符号化に使用可能なビット数を算出してもよい。
 (ステップ3)
 コードブック指示値変換部104は、例えば、(ステップ2)で算出された、予め定められた位置のサブベクトルの符号化に使用可能なビット数のうち、符号化に使用されないビット数(例えば、未使用ビット数と呼ぶ)を算出して、未使用ビット数を符号化してよい。例えば、コードブック指示値変換部104は、(ステップ2)で算出された使用可能ビット数から、予め定められた位置のサブベクトルのコードブック指示値に使用されるビット数及びコードベクトルインデックスに使用されるビット数の和を減算して、未使用ビット数を算出してよい。
 コードブック指示値変換部104は、例えば、(ステップ1)~(ステップ3)によって得られるコードブック指示値(符号化コード)、及び、未使用ビット数符号化コードを多重化部105に出力してよい。
 なお、コードブック指示値変換部104の動作例については後述する。
 多重化部105は、スプリットマルチレート格子VQ部103から入力されるグローバルゲイン及びコードベクトルインデックスと、コードブック指示値変換部104から入力されるコードブック指示値(符号化コード)及び未使用ビット数符号化コードとを多重化し、多重化したビットストリーム情報を復号装置200へ送信してよい。
 次に、コードブック指示値変換部104の動作例について説明する。
 図3は、コードブック指示値変換部104の構成例を示すブロック図である。図3に示すコードブック指示値変換部104は、例えば、コードブック指示値分離部121と、使用可能ビット数算出部122と、未使用ビット数算出部123と、未使用ビット数符号化部124と、を備えてよい。
 例えば、スプリットマルチレート格子VQ部103から出力されるN個のサブベクトルのコードブック指示値cbvi(i=1~Nの何れか)は、コードブック指示値分離部121に入力されてよい。
 コードブック指示値分離部121は、例えば、入力されるN個のコードブック指示値cbviに基づいて、予め特定された位置(例えば、i=Pfix)のサブベクトルのコードブック指示値cbfixx(又は、cbvi(i=Pfix))を未使用ビット数算出部123に出力する。また、コードブック指示値分離部121は、予め特定された位置と異なるN-1個のサブベクトルのコードブック指示値cbvi(i≠Pfix)を、使用可能ビット数算出部122に出力するとともに、コードブック指示値(符号化コード)として多重化部105に出力してよい(上記ステップ1に相当)。
 使用可能ビット数算出部122は、例えば、予め特定された位置のサブベクトルの符号化に使用可能なビット数を算出してよい(上記ステップ2に相当)。例えば、使用可能ビット数算出部122は、入力されるビット数Bitsavailableから、N-1個のコードブック指示値(cbvi(i≠Pfix))を用いて算出されるN-1個のサブベクトルの符号化に使用されるビット数を減算することにより、予め特定された位置のサブベクトルの符号化に使用可能なビット数を算出してよい。使用可能ビット数算出部122は、算出した使用可能ビット数を未使用ビット数算出部123及び未使用ビット数符号化部124に出力してよい。
 例えば、使用可能ビット数算出部122は、次式(2)に従って、使用可能ビット数cb’fixを算出してもよい。
Figure JPOXMLDOC01-appb-M000002
 式(2)において、cb’fixは、1つのSV(例えば、サブベクトル番号i=Pfix)に対するコードブック指示値の符号化に使用可能なビット数を示し、Bitsavailableは、入力信号S(f)の送信単位において符号化に利用可能なビット総数を示し、Bitscbviは、サブベクトル番号iのサブベクトルviの符号化に使用されるビット数(例えば、コードブック指示値の使用ビット数及びコードベクトルの使用ビット数の和)を示す。
 このように、使用可能ビット数算出部122は、例えば、式(2)に示すように、ビット総数Bitsavailableから、N-1個のサブベクトルの符号化に使用されるビット数(例えば、ΣBitscbvi(i≠Pfix))を減算することにより、予め特定された位置のサブベクトルの符号化に使用可能なビット数cb’fixを算出する。
 未使用ビット数算出部123は、入力信号S(f)の符号化に使用されない未使用ビット数を算出してよい(上記ステップ3に相当)。
 例えば、未使用ビット数算出部123は、コードブック指示値分離部121から入力される、予め特定された位置のサブベクトルのコードブック指示値の使用ビット数(実際値cbfix)に基づいて、予め特定された位置のサブベクトルの符号化に使用されるビット数(例えば、コードブック指示値及びコードベクトルインデックスの符号化に使用されるビット数)を算出してよい。そして、未使用ビット数算出部123は、例えば、使用可能ビット数算出部122から入力される使用可能ビット数から、予め特定された位置のサブベクトルの符号化に使用されるビット数を減算することにより、未使用ビット数を算出してよい。未使用ビット数算出部123は、例えば、算出した未使用ビット数に関する情報を、未使用ビット数符号化部124に出力してよい。
 未使用ビット数符号化部124は、例えば、未使用ビット数算出部123から入力される未使用ビット数を符号化して、未使用ビット数符号化コード(または、符号化情報と呼ぶ)を生成してよい。例えば、未使用ビット数符号化部124は、図4に示す未使用ビット数と未使用ビット数符号化コード(又は、符号)との関連付け(例えば、テーブルで表されてもよい)に基づいて、未使用ビット数から未使用ビット数情報符号化コードを生成してよい。未使用ビット数符号化部124は、例えば、未使用ビット数符号化コードを多重化部105へ出力してよい。
 ここで、図4に示すように、未使用ビット数は0以上の整数である。また、図4において、1つの符号に対して割り当てられる未使用ビット数の候補数(換言すると、量子化の解像度)は5個である。換言すると、図4では、未使用ビット数のうち、5つの整数に対して同じ符号が割り当てられる。これは、例えば、図1に示すように、コードブック指示値の使用ビット数が2以上の場合において、コードブック指示値の使用ビット数と、コードベクトルインデックスの使用ビット数とは1:4の関係にあり、コードブック指示値とコードベクトルインデックスの両方を合わせた符号化に使用される合計使用ビット数が5を単位として変化するためである。
 また、未使用ビット数符号化部124は、例えば、使用可能ビット数算出部122から入力される使用可能ビット数を用いて、最大未使用ビット数の符号語を修正してよい。例えば、使用可能ビット数が23ビットである場合、取り得る最大の未使用ビット数は22ビット(例えば、コードブックQ0が使用される場合)であり、図4の例では、その符号語は11110(5ビット)である。未使用ビット数符号化部124は、例えば、この符号語11110を、1111(4ビット)に変更(又は、修正)してよい。これは、使用可能ビット数が23ビットの場合、未使用ビット数が25ビット以上に対応する符号語はあり得ないため、符号語の上位4ビットが“1111”である時点で(換言すると、符号語の最下位ビットに依らず)、未使用ビット数が20~24ビットであることが確定するためである。これにより、未使用ビット数が最大になる場合の符号化ビット数を1ビット抑えることが可能になる。
 [復号装置の構成例]
 図5は、本開示の一実施例に係る復号装置200の構成例を示すブロック図である。図5に示す復号装置200は、例えば、分離部201と、コードブック指示値逆変換部202(例えば、制御回路に相当)と、スプリットマルチレート格子逆量子化(逆VQ)部203(例えば、逆量子化回路に相当)と、周波数-時間変換部204と、を備えてよい。
 復号装置200において、符号化装置100から送信されるビットストリームは分離部201に入力される。
 分離部201は、例えば、入力されたビットストリームから、グローバルゲインと、コードベクトルインデックスと、コードブック指示値(符号化コード)と、未使用ビット数情報符号化コードとを分離してよい。分離部201は、例えば、グローバルゲイン及びコードベクトルインデックスをスプリットマルチレート格子逆VQ部203に出力し、コードブック指示値(符号化コード)及び未使用ビット数情報符号化コードをコードブック指示値逆変換部202に出力してよい。
 コードブック指示値逆変換部202は、例えば、分離部201から入力される情報に基づいて、予め特定された位置(例えば、i=Pfix)のサブベクトルのコードブック指示値を算出してよい。
 例えば、コードブック指示値逆変換部202は、分離部201から入力される、コードブック指示値(符号化コード)及び未使用ビット数情報符号化コードに基づいて、以下のステップ4~ステップ7の処理を行ってよい。
 (ステップ4)
 コードブック指示値逆変換部202は、例えば、コードブック指示値(符号化コード)に基づいて、予め特定された位置(例えば、i=Pfix)と異なる他のサブベクトルのコードブック指示値を復号する。また、コードブック指示値逆変換部202は、例えば、復号したコードブック指示値に基づいて、複数のサブベクトル(例えば、i≠Pfix)の符号化に使用されるビット数(例えば、コードブック指示値の使用ビット数とコードベクトルの使用ビット数との和)を算出してよい。
 (ステップ5)
 コードブック指示値逆変換部202は、例えば、未使用ビット数情報符号化コードに基づいて、未使用ビット数を復号してよい。
 (ステップ6)
 コードブック指示値逆変換部202は、例えば、(ステップ4)で算出された複数のサブベクトルの符号化ビット数と、(ステップ5)で復号された未使用ビット数に基づいて、予め特定された位置のサブベクトルの符号化ビット数を算出してよい。
 (ステップ7)
 コードブック指示値逆変換部202は、例えば、(ステップ6)で算出された、予め特定された位置のサブベクトルの符号化ビット数に基づいて、予め特定された位置のサブベクトルのコードブック指示値を算出(又は、復号)してよい。
 コードブック指示値逆変換部202は、例えば、(ステップ4)~(ステップ7)によって得られるコードブック指示値を、スプリットマルチレート格子逆VQ部203に出力してよい。
 なお、コードブック指示値逆変換部202の動作例については後述する。
 スプリットマルチレート格子逆VQ部203は、例えば、分離部201から入力されるグローバルゲイン及びコードベクトルインデックスと、コードブック指示値逆変換部202から入力される出力されたコードブック指示値に基づいて、スプリットマルチレート格子逆VQを行い、周波数領域の復号信号S~(f)を得る。スプリットマルチレート格子逆VQ部203は、周波数領域の復号信号S~(f)を周波数-時間変換部204に出力してよい。
 周波数-時間変換部204は、例えば、逆離散フーリエ変換(IDFT:Inverse Discrete Fourier Transform)又は逆修正離散コサイン変換(IMDCT:Inverse Modified Discrete Cosine Transform)といった周波数-時間変換方式によって、スプリットマルチレート格子逆VQ部203から出力される周波数領域の信号S~(f)を時間領域の信号S~(n)に変換してよい。
 次に、コードブック指示値逆変換部202の動作例について説明する。
 図6は、コードブック指示値逆変換部202の構成例を示すブロック図である。図6に示すコードブック指示値逆変換部202は、例えば、使用可能ビット数算出部221と、未使用ビット数復号部222と、復元部223と、コードブック指示値生成部224と、を備えてよい。
 例えば、分離部201から出力されるコードブック指示値(符号化コード)は、使用可能ビット数算出部221及びコードブック指示値生成部224に入力されてよい。また、例えば、分離部201から出力される未使用ビット数符号化コードは、未使用ビット数復号部222に入力されてよい。
 なお、入力されるコードブック指示値(符号化コード)は、例えば、特定の位置(例えば、i=Pfix)のサブベクトルと異なるN-1個のサブベクトルのコードブック指示値cbvi(i≠Pfix)を表してよい。
 使用可能ビット数算出部221は、例えば、予め特定された位置のサブベクトルの符号化に使用可能なビット数を算出してよい。例えば、使用可能ビット数算出部221は、N-1個のコードブック指示値(cbvi(i≠Pfix))を用いてN-1個のサブベクトルの符号化に使用されるビット数を算出し(上記ステップ4に相当)、入力されるビット数Bitsavailableから、N-1個のサブベクトルの符号化に使用されるビット数を減算することにより、予め特定された位置のサブベクトルの符号化に使用可能なビット数cb’fixを算出してよい。使用可能ビット数算出部221は、算出した使用可能ビット数を復元部223に出力してよい。
 未使用ビット数復号部222は、例えば、分離部201から入力される未使用ビット数符号化コードを復号してよい。例えば、未使用ビット数復号部222は、図4に示す未使用ビット数と未使用ビット数符号化コード(例えば、符号)との関連付けに基づいて、未使用ビット数符号化コードから未使用ビット数を決定してよい(上記ステップ5に相当)。未使用ビット数復号部222は、例えば、決定した未使用ビット数に関する情報を復元部223へ出力してよい。
 復元部223は、例えば、使用可能ビット数算出部221から入力される使用可能ビット数、及び、未使用ビット数復号部222から入力される未使用ビット数に基づいて、予め特定された位置のサブベクトルのコードブック指示値を決定(又は、復元)してよい。例えば、復元部223は、使用可能ビット数から、未使用ビット数を減算することにより、予め特定された位置のサブベクトルの符号化に使用されるビット数(例えば、図1に示す合計使用ビット数)を算出してよい。そして、復元部223は、算出したビット数(例えば、合計使用ビット数)に基づいて、コードブック指示値のビット数を算出し、コードブック指示値を示す符号化コードを、コードブック指示値生成部224に出力してよい(上記ステップ6およびステップ7に相当)。
 コードブック指示値生成部224は、例えば、分離部201から入力されるN-1個のサブベクトルのコードブック指示値cbvi(i≠Pfix)、及び、復元部223から入力される、予め特定された位置のサブベクトルのコードブック指示値cbvi(i=Pfix)に基づいて、i=Pfixのコードブック指示値cbviが予め特定された位置に配置されるように、N個のコードブック指示値cbvi(i=1~N)を生成してよい。コードブック指示値生成部224は、生成したコードブック指示値を、スプリットマルチレート格子逆VQ部203に出力してよい。
 [コードブック指示値の変換例]
 次に、符号化装置100のコードブック指示値変換部104の動作例について説明する。
 図7は、周波数領域の入力信号S(f)の一例を示す図である。図7では、例えば、入力信号S(f)は、8個のサブベクトルv1~v8に分割されてよい。
 また、図7では、一例として、入力信号S(f)において予め特定されたサブベクトルの位置(i=Pfix)をv8とする。
 図8は、スプリットマルチレート格子量子化によって得られるサブベクトルv1~v8それぞれに対するコードブック指示値(又は、コードブック)の一例を示す図である。
 図7及び図8に示す例では、コードブック指示値変換部104において、コードブック指示値分離部121は、例えば、サブベクトルv8のコードブック指示値(例えば、“11110”の5ビット)を未使用ビット数算出部123へ出力する。また、コードブック指示値分離部121は、例えば、サブベクトルv8と異なるサブベクトルv1~v7のコードブック指示値(例えば、“10”、“10”、“110”、“110”、“1110”、“1110”、“11110”)を、符号コードとして多重化部105へ出力してよい。
 使用可能ビット数算出部122は、例えば、サブベクトルv8の符号化に使用可能なビット数を算出してよい。例えば、入力信号の送信単位において使用可能なビット総数(式(2)のBitsavailable)を144ビットとする。この場合、使用可能ビット数算出部122は、例えば、サブベクトルv8と異なるサブベクトルv1~v7それぞれのサブベクトルあたりの使用ビット数(合計使用ビット数。例えば、式(2)のBitscbvi)の総和を求める。そして、使用可能ビット数算出部122は、例えば、式(2)に従って、使用可能ビット数cb’fix=(144-10-10-15-15-20-20-25)=29を算出してよい。
 未使用ビット数算出部123は、例えば、使用可能ビット数cb’fix=29ビットから、サブベクトルv8の符号化に使用されるビット数25ビットを減算して、未使用ビット数(ここでは、29-25=4ビット)を算出してよい。
 未使用ビット数符号化部124は、例えば、未使用ビット数が4ビットであるので、図4に示す関連付けに基づいて、未使用ビット数符号化コード“0”(1ビット)を生成してよい。
 符号化装置100では、このようにして生成されたサブベクトルv1~v7それぞれのコードブック指示値(符号化コード)“10”、“10”、“110”、“110”、“1110”、“1110”、“11110”、及び、未使用ビット数符号化コード“0”が多重化部105において多重され、復号装置200に送信される。
 上述したように、図7に示す例では、サブベクトルv8に適用されるコードブック番号は5(Q5)であり、コードブックQ5のコードブック指示値そのものを符号化する場合に使用されるビット数は5ビットである。その一方で、本開示の一実施例では、サブベクトルv8に対するコードブック指示値の代わりに送信される未使用ビット数符号化コードのビット数は、上述したとおり1ビットである。よって、図7に示す例では、未使用ビット数符号化コードの通知により、サブベクトルv8のコードブック指示値そのものが符号化されて通知される場合と比較して、符号化ビットを4ビット削減できる。また、本実施の形態では、符号化ビットが削減されても、コードブックに関する情報が失われないため、復号装置200においてコードブック指示値を復元できる。
 このように、符号化装置100及び復号装置200は、例えば、ベクトル量子化(例えば、スプリットマルチレート格子VQ)においてサブベクトルの符号化に使用可能なビット数と当該サブベクトルの量子化パラメータ(例えば、コードブック指示値及びコードベクトル)のビット数との差に基づく未使用ビット数を用いて、サブベクトルに対するコードブック指示値の符号化又は復号を制御する。
 例えば、符号化装置100は、複数のサブベクトルに分割した入力信号のスペクトルのうち、特定のサブベクトルの符号化に使用するコードブック指示値を、未使用ビット数に関する情報に変換する。同様に、復号装置200は、符号化装置100から送信される未使用ビット数の符号コードを用いて、未使用ビット数に関する情報を、コードブック指示値に関する情報に変換する。
 この変換により、例えば、スプリットベクトル量子化(SVQ)に用いられる格子ベクトル量子化(LVQ)において、特定された1つのSVのコードブック指示値(又は、コードブックインデックス)の符号化の効率を向上できる。本実施の形態によれば、特定のサブベクトルの符号化に使用するコードブック指示値に使用するビット数を削減でき、ビットレートを低減できる。
 また、例えば、上述したように、特許文献1のようにコードブック指示値の推定値と実際の値との差分情報を符号化する方法では、符号化対象の差分情報が-1になり得るケースがある。例えば、特定のサブベクトルの符号化に使用可能なビット数が9ビットの場合、特許文献1において推定されるコードブック指示値は0(Q0)である一方、実際のコードブック指示値が1(Q1)となるケースがあり得る。このため、-1(負数)に対応する量子化レベル又は符号を含む関連付けの設定といった符号化処理の複雑さが増加し得る。その一方で、本開示の一実施例では、例えば、コードブック指示値及びコードベクトルインデックスの双方を含むビット数における未使用ビット数が符号化されるので、符号化対象の未使用ビット数の最小値は0であり、負数の符号化を考慮しなくてよいので、符号化処理を簡易化できる。
 なお、上述した実施の形態では、一例として、符号化方式に変換符号化を適用する場合について説明したが、符号化方式は、変換符号化に限定されない。例えば、本開示の一実施例は、周波数領域の信号(スペクトル)を分割した複数のサブベクトルそれぞれを量子化する符号化に適用してもよい。
 なお、本実施の形態において、符号化に使用可能なビット総数は、使用可能ビット数算出部122および221に入力される。この使用可能ビット総数は、エンコーダ(例えば、符号化装置100)又はデコーダ(例えば、復号装置200)の外部から入力される情報ではなく、エンコーダあるいはデコーダの内部に保持される情報でもよい。使用可能ビット総数は、例えば、予め定められた固定値でもよい。または、予め定められた固定値を初期値として、未使用ビット数を初期値に加算した値が使用可能ビット総数として後続のスプリットマルチレート格子VQの時に入力されてもよい。
 [CELP(Code Excited Linear Prediction)及び変換符号化の階層的符号化への適用]
 例えば、本実施の形態に係るスプリットマルチレート格子VQをCELP及び変換符号化の階層的符号化に適用してもよい。図9は、スプリットマルチレート格子VQをCELP及び変換符号化の階層的符号化に適用する場合の符号化装置100aの構成例を示すブロック図である。また、図10は、スプリットマルチレート格子VQをCELP及び変換符号化の階層的符号化に適用する場合の復号装置200aの構成例を示すブロック図である。
 なお、図9及び図10において、符号化装置100及び復号装置200と同様の処理を行う構成部には同一の符号を付す。
 図9に示す符号化装置100aにおいて、CELP符号化部51は、例えば、時間領域の信号S(n)に対してCELP符号化を行い、CELPパラメータをCELPローカル復号部52及び多重化部105に出力してよい。なお、CELP符号化方式は、例えば、時間領域の信号の予測可能な性質を利用する符号化方式である。
 CELPローカル復号部52は、例えば、CELP符号化部51から入力されるCELPパラメータを復号し、合成信号Ssyn(n)を生成する。
 加算器53は、例えば、入力信号S(n)から、合成信号Ssyn(n)を減算することにより、予測誤差信号Se(n)を生成する。
 時間-周波数変換部54は、時間領域の符号化誤差信号Se(n)を、DFT又はMDCTといった時間-周波数変換方式によって、周波数領域の符号化誤差信号Se(f)に変換する。
 周波数領域の符号化誤差信号Se(f)は、上述したように、スプリットマルチレート格子VQ部103及びコードブック指示値変換部104によって量子化されてよい。例えば、符号化装置100aは、符号化誤差信号Se(f)を分割した複数のサブベクトルのうち、特定のサブベクトルのコードブック指示値(符号化コード)の代わりに、未使用ビット数符号化コードを復号装置200aへ送信してもよい。
 図10に示す復号装置200aにおいて、分離部201は、符号化装置100aから送信されるビットストリームを、CELPパラメータと、量子化パラメータとに分離し、CELPパラメータをCELP復号部64に出力し、量子化パラメータのうち、グローバルゲイン及びコードベクトルインデックスをスプリットマルチレート格子逆VQ部203に出力し、量子化パラメータのうちコードブック指示値(符号化コード)及び未使用ビット数符号化コードをコードブック指示値逆変換部202に出力する。
 コードブック指示値逆変換部202は、例えば、上述したように、コードブック指示値(符号化コード)、及び、未使用ビット数符号化コードに基づいて、符号化誤差信号Se(f)の特定の位置のサブベクトルに対するコードブック指示値を決定し、N個のサブベクトルのコードブック指示値に関する情報をスプリットマルチレート格子逆VQ部203へ出力する。
 スプリットマルチレート格子逆VQ部203は、例えば、グローバルゲイン、コードブック指示値、及び、コードベクトルインデックスに基づいて、周波数領域の符号化誤差信号Se~(f)を復号(又は、逆量子化)する。
 周波数-時間変換部63は、例えば、復号された周波数領域の符号化誤差信号Se~(f)を、IDFT又はIMDCTといった周波数-時間変換方式によって、時間領域の符号化誤差信号Se~(n)に変換する。
 CELP復号部64は、例えば、CELPパラメータを復号して、合成信号Ssyn(n)を得る。
 加算器65は、例えば、符号化誤差信号Se~(n)と合成信号Ssyn(n)とを加算して、時間領域の信号S~(n)を得る。
 [TCX(Transform Coded eXcitation)符号化への適用]
 例えば、本実施の形態に係るスプリットマルチレート格子VQをTCX符号化(又は、TCXコーデックと呼ぶ)に適用してもよい。図11は、この場合の符号化装置100bの構成例を示すブロック図であり、図12は、復号装置200bの構成例を示すブロック図である。
 なお、図11及び図12において、符号化装置100及び復号装置200と同様の処理を行う構成部には同一の符号を付す。
 図11に示す符号化装置100bにおいて、LPC(Linear Predictive Coding)分析部71は、時間領域の信号S(n)に対してLPC分析を行い、LPCパラメータを量子化部72に出力する。なお、LPC分析は、例えば、時間領域の信号の予測可能な性質を利用する方法である。
 量子化部72は、例えば、LPC分析部71から入力されるLPCパラメータを量子化し、量子化パラメータ(例えば、量子化インデックス)を逆量子化部73及び多重化部105に出力する。
 逆量子化部73は、例えば、量子化部72から入力される量子化インデックスを逆量子化して、LPCパラメータを復元する。
 LPC逆フィルタ部74は、例えば、入力信号S(n)に対して、逆量子化部73から入力される復元されたLPCパラメータを用いたLPC逆フィルタリングを適用することにより、時間領域の残差信号Sr(n)を得る。
 時間-周波数変換部75は、例えば、時間領域の残差信号Sr(n)を、DFT又はMDCTといった時間-周波数変換方式によって、周波数領域の残差信号Sr(f)に変換する。
 周波数領域の残差信号Sr(f)は、上述したように、スプリットマルチレート格子VQ部103及びコードブック指示値変換部104によって量子化されてよい。例えば、符号化装置100bは、残差信号Sr(f)を分割した複数のサブベクトルのうち、特定のサブベクトルのコードブック指示値(符号化コード)の代わりに、未使用ビット数符号化コードを復号装置200bへ送信してもよい。
 図12に示す復号装置200bにおいて、分離部201は、符号化装置100bから送信されるビットストリームを、量子化インデックスと、量子化パラメータとに分離し、量子化インデックスを逆量子化部84に出力し、量子化パラメータのうち、グローバルゲイン及びコードベクトルインデックスをスプリットマルチレート格子逆VQ部203に出力し、量子化パラメータのうちコードブック指示値(符号化コード)及び未使用ビット数符号化コードをコードブック指示値逆変換部202に出力する。
 コードブック指示値逆変換部202は、例えば、上述したように、コードブック指示値(符号化コード)、及び、未使用ビット数符号化コードに基づいて、残差信号Sr(f)の特定の位置のサブベクトルに対するコードブック指示値を決定し、N個のサブベクトルのコードブック指示値に関する情報をスプリットマルチレート格子逆VQ部203へ出力する。
 スプリットマルチレート格子逆VQ部203は、例えば、グローバルゲイン、コードブック指示値、及び、コードベクトルインデックスに基づいて、周波数領域の残差信号Sr~(f)を復号(又は、逆量子化)する。
 周波数-時間変換部83は、例えば、復号された周波数領域の残差信号Sr~(f)を、IDFT又はIMDCTといった周波数-時間変換方式によって、時間領域の残差信号Sr~(n)に変換する。
 逆量子化部84は、例えば、量子化インデックスを逆量子化して、LPCパラメータを復元する。
 LPC合成フィルタ部85は、例えば、時間領域の残差信号Sr~(n)に対して、復元されたLPCパラメータを用いたLPC合成フィルタリングを適用して、時間領域の信号S~(n)を得る。
 以上、スプリットマルチレート格子VQをTCX符号化に適用する場合について説明した。
 なお、本実施の形態では、LPC合成フィルタ処理を、時間領域で実施しているが、周波数領域で実施してもよい。そのようなTCX符号化の一例として、EVSコーデックのMDCT based TCXが挙げられる。
 [特定位置のサブベクトルの一例]
 上述した特定の位置のサブベクトルの一例について説明する。
 スプリットマルチレート格子VQは、例えば、非特許文献1に記載のEVS(Enhanced Voice Services)コーデックのような音声音響の符号化処理及び復号処理に適用されてもよい。
 例えば、スプリットマルチレート格子VQは、非特許文献1の代数的ベクトル量子化器(AVQ:Algebraic Vector Quantizer)に適用されてもよい。
 例えば、EVSコーデックにおいて、AVQは様々な符号化モードに適用される。例えば、32kbit/sのGC(Generic Coding)モードにおいて符号化フレームがharmonic信号に分類される場合、スプリットマルチレート格子VQにおけるコードブック指示値の符号化ビット数は、周波数のより高いサブベクトル(例えば、図7では、サブベクトルv8)ほど多くなる可能性が高い。
 これは、harmonic信号に対するGCモードの符号化は、母音の立ち上がり部において行われる可能性が高いこと、高い周波数帯域ほど、適応コードブック(又は、適応符号帳)によるハーモニクスの表現性が劣化する可能性が高いこと、又は、高い周波数帯域ほど、ハーモニクスのずれが生じやすく、適応コードブックの符号化誤差が大きくなる傾向があること、が原因に挙げられる。このため、周波数領域の信号(例えば、予測誤差又は残差信号のスペクトル)の符号化において、高域のサブベクトルほど、信号のエネルギが大きくなり、量子化に使用されるビット数がより多いコードブックが選択されやすい。
 よって、例えば、上述したように、周波数領域の信号が8個のサブベクトルv1~v8に分割される場合、複数のサブベクトルv1~v8のうち、周波数領域において最も高い周波数帯域のサブベクトルv8に対する符号化に使用するビット数がより多く配分されやすい。そのため、上述したように、符号化装置100及び復号装置200において、特定の位置のサブベクトルに、サブベクトルv8が設定されてよい。
 このように、EVSコーデックのGCモードにおいて、ベクトル量子化の対象の入力信号(又は、符号化フレーム)がharmonic信号である場合、入力信号を構成する複数のサブベクトルのうち、最も周波数の高いサブベクトルが、未使用ビット数の符号化を行う一つのサブベクトルに設定されてよい。これにより、GC符号化のAVQにスプリットマルチレート格子VQを適用する場合の符号化ビット数の削減効果を向上できる。
 なお、GCモードにおいて、入力信号がharmonicでない場合、EVSの符号化ビットレートによっては時間領域の信号に対してスプリットマルチレート格子VQが適用される場合もある。この場合においても、最後のサブベクトル(換言すると、時間的に最も後ろのサブベクトル)を予め特定されたサブベクトル位置に設定することは有効である。これは、そのようなケースにおいて、未使用ビット数の符号化に使用されるビット数の方がコードブック指示値の符号化に使用されるビット数よりも少なくなる傾向が実験的に確認されたためである。つまり、GCモードに分類されたフレームでは、最後のサブベクトルの量子化時に未使用のまま残るビット数は少なくなることが多いので、未使用ビット数を符号化した方が符号化効率が高くなりやすい。
 [符号化ビット数の削減方法]
 次に、特定の位置のサブベクトルに対する符号化ビット数を削減する方法の例について説明する。
 <方法1>
 例えば、特定の位置のサブベクトル(例えば、サブベクトルv8)の符号化に使用されるビット数が少なく(例えば、コードブックQ0又はQ2)、未使用ビット数が多い場合(例えば、15ビットといった閾値以上の場合)には、未使用ビット数の符号化に使用されるビット数の方が、コードブック指示値そのものを符号化する場合よりも多くなる可能性がある。
 例えば、特定位置のサブベクトルの符号化に使用可能ビット数(cb’fix)が9ビット以下の場合、特定の位置のサブベクトル(例えば、サブベクトルv8)に使用可能なコードブックは、コードブックQ0(コードブック指示値は“0”の1ビット)、又は、特殊ケースのコードブックQ2(コードブック指示値は“1”の1ビット)である。
 例えば、コードブックQ0又は特殊ケースのコードブックQ2の何れの場合でも、コードブック指示値は1ビット(換言すると、最小値)で表現されるため、本開示の一実施例に係る方法でも符号化ビット数を削減し得ない。
 そこで、符号化装置100は、例えば、特定の位置のサブベクトルに使用可能なビット数が閾値以下(例えば、9ビット以下)の場合、本開示の一実施例に係る方法(例えば、未使用ビット数を符号化する方法)を適用せずに、特定の位置のサブベクトルのコードブック指示値をそのまま符号コード(又は、符号化情報)に決定してよい。
 その一方で、符号化装置100は、例えば、特定の位置のサブベクトルに使用可能なビット数が閾値より多い場合(例えば、9ビットより多い場合)、未使用ビット数を符号化した符号コードを符号化情報に決定してよい。
 方法1により、特定の位置のサブベクトルに使用可能なビット数が何れの場合でも、符号化ビット数の増加を抑制し、符号化の効率を向上できる。
 また、特定の位置のサブベクトルに使用可能なビット数は、上述したように、復号装置200でも、他のパラメータ(例えば、ビット総数、及び、他のサブベクトルのコードブック指示値)から算出可能な情報であるので、方法1に係る符号化方法の切り替えのためのシグナリング(例えば、切り替えを通知するための追加情報)を設けなくてよい。
 <方法2>
 例えば、使用可能ビット数(cb’fix)が11~13ビットの何れかの場合、特定の位置のサブベクトル(例えば、サブベクトルv8)において使用可能なコードブックは、コードブックQ0(例えば、合計使用ビット数:1ビット)又はコードブックQ2(例えば、合計使用ビット数:10ビット)の何れかである。ここで、例えば、コードブックQ0が使用される場合(例えば、合計使用ビット数:1ビット)、未使用ビット数は、10~12ビットとなるので、図4に示す例では、未使用ビット数の符号化ビット数は3ビットになる。このため、コードブック指示値をそのまま符号化する場合(例えば、1ビット)と比較して、ビット数が2ビット増加する。
 ところで、図1に示すように、コードブックQ2の場合の合計使用ビット数は10ビットであるので、使用可能ビット数が11~13ビットの何れかの場合に、少なくとも1~3ビットが未使用になることが明らかである。
 このような使用可能ビット数のうちの明らかに未使用となるビット数は、例えば、使用可能ビット数に対する5の剰余として算出可能である。例えば、使用可能ビット数が11、12又は13の場合、5の剰余は1(=11%5)、2(=12%5)、又は、3(=13%5)である。なお、関数「a % b」は、aに対するbの剰余を返す関数(例えば、モジュロ演算とも呼ぶ)である。なお、除数b(ここでは、b=5)は、サブベクトルの符号化における合計使用ビット数に対するコードブック指示値に使用されるビット数の割合(又は、合計使用ビット数の変化の単位)に基づいて決定される値でよい。
 このような明らかに未使用となるビット数に関する情報は、符号化情報として符号化装置100から復号装置200へ送信されなくてもよい。そこで、符号化装置100は、使用可能ビット数(cb’fix)から、使用可能ビット数に対する5の剰余(換言すると、明らかに未使用となるビット数)を減算し、減算結果を用いて、未使用ビット数を算出してもよい。
 例えば、使用可能ビット数が11~13ビットの何れかの場合、使用可能ビット数に対する5の剰余は1~3ビットであるので、減算結果は10ビットである。符号化装置100は、例えば、減算結果の10ビットを使用可能ビットに設定してよい。例えば、符号化装置100において、10ビットの使用可能ビットに対して、コードブックQ0(1ビット)が使用される場合には、未使用ビット数は9ビットになるので、図4に示す例では、2ビットの未使用ビット数符号化コードに符号化される。
 これにより、使用可能ビット数から5の剰余を減算する場合の未使用ビット数の符号化に使用されるビット数(例えば、2ビット)は、使用可能ビット数から5の剰余を減算しない場合の未使用ビット数の符号化に使用されるビット数(例えば、3ビット)と比較して削減される。換言すると、例えば、使用可能ビット数から5の剰余を減算する場合は、コードブック指示値をそのまま符号化する場合(例えば、1ビット)と比較して、ビット数の増加を1ビットに抑えることができる。
 <方法3>
 例えば、使用可能ビット数(cb’fix)が10ビットの場合、未使用ビット数は10ビット以上にならないので(換言すると、9ビット以下であるので)、図4に示す例において未使用ビット数5~9に対応する符号“10”の“0”は無くてもよい。換言すると、この場合、未使用ビット数が0~4(符号“0”)と、5~9(符号“1”)とが区別されればよい。このような符号化により、未使用ビット数の符号に使用されるビット数をさらに1ビット削減でき、ビット数の増加を抑制できる。
 なお、このような符号化を用いる場合、使用可能ビット数が9ビット以下の場合でもビット数の増加を抑制できる。このため、例えば、符号化装置100は、使用可能ビット数が9ビット以下の場合でも、<方法1>において説明したようなコードブック指示値をそのまま符号コードに設定する方法へ切り替えを行わなくてもよい。
 <方法4>
 例えば、使用可能ビット数(cb’fix)が8ビット以下の場合、図1に示す例では、コードブック指示値が“0”(Q0)以外の値になる可能性は無い。この場合、復号装置200は、コードブック指示値に関する情報が送信されなくても、コードブック指示値Q0を特定可能である。
 そこで、例えば、コードブック指示値をそのまま符号化する方法、及び、未使用ビット数を符号化する方法の何れにおいても、使用可能ビット数が8ビット以下の場合には、コードブックQ0のコードブック指示値に関する情報の送受信無しの符号化処理及び復号処理が行われてもよい。これにより、符号化情報を1ビット削減可能になる。
 <方法5>
 例えば、使用可能ビット数(cb’fix)が14ビットの場合、図1に示す例では特定の位置のサブベクトルに使用可能なコードブックは、コードブックQ0、Q2、及び、特殊ケースのコードブックQ3である。特殊ケースのコードブックQ3では、例えば、未使用ビットが無く、コードブック指示値を“110”の代わりに“11”(2ビット)で表すことができ、コードベクトルの使用ビット数(12ビット)と合わせて14ビットで符号化可能である。
 このように、使用可能ビット数が14ビットの場合でもコードブックQ3が使用可能であるため、使用可能ビット数が14ビットの場合、<方法2>において5の剰余である4ビットは、明らかに余るビット数とならない場合がある。
 よって、例えば、使用可能ビット数が13ビット以下の場合には、上述した<方法1>~<方法4>の少なくとも一つに基づいて、2ビット以上の符号化ビット数の増加を抑制可能である一方で、使用可能ビット数が14ビット以上の場合には、未使用ビット数に応じて、符号化ビット数が増加したり、減少したりし得る。
 また、例えば、EVSコーデックといったマルチモード符号化において、特定の符号化モードでスプリットマルチレート格子VQが用いられる場合に使用可能ビットのうち、未使用ビットが大半を占める場合(例えば、未使用ビット数が閾値以上になる場合)は稀であることが想定される。このため、例えば、閾値未満の未使用ビット数が符号化される可能性が高く、平均的にはビット数の削減を達成可能である。その一方で、稀に未使用ビット数が多くなり、符号化ビット数が2ビット以上増加するケースも発生し得る。そこで、例えば、以下の方法に基づいて、符号化方法を切り替えてよい。
 例えば、EVSコーデックのGCモードのAVQにスプリットマルチレート格子VQが適用される場合、入力信号がゼロに近いほど、未使用ビット数が多くなる傾向がある。また、例えば、入力信号がゼロに近いか否かの判定は、適応コードブックベクトルのエネルギ又はAVQによって符号化される励振信号に乗じられる利得情報(又は、ゲイン情報)に基づいて行うことが可能である。
 そこで、符号化装置100は、例えば、適応コードブックベクトル(又は、コードベクトル)のエネルギが閾値(例えば、10)未満の場合、あるいは、AVQによって符号化される励振信号に乗じられる利得が閾値(例えば、1.0)未満の場合、本開示の一実施例に係る方法(例えば、未使用ビット数を符号化する方法)を適用せずに、特定の位置のサブベクトルのコードブック指示値をそのまま符号コードに決定してよい。
 その一方で、符号化装置100は、例えば、適応コードブックベクトルのエネルギが閾値(例えば、10)以上の場合、あるいは、AVQによって符号化される励振信号に乗じられる利得が閾値(例えば、1.0)以上の場合、未使用ビット数を符号化した符号コードを符号化情報に決定してよい。
 なお、符号化装置100は、例えば、適応コードブックベクトルのエネルギ、及び、AVQによって符号化される励振信号に乗じられる利得の組み合わせに基づいて、符号化方法を切り替えてもよい。この際、符号化装置100は、例えば、符号化方法の切り替えの判定の際に、適応コードブックベクトルのエネルギ、及び、励振信号に乗じられる利得それぞれに対する重みづけを行ってもよい。
 また、AVQによって符号化される励振信号に乗じられる利得は、例えば、符号化対象フレームにおいてはAVQ符号化が終了するまで確定しないため、時間的に過去のフレームにおける利得情報が参照されてもよい。
 また、方法5では、一例として、適応コードブックベクトルのエネルギ又はゲイン情報に基づいて符号化方法を切り替える方法について説明したが、これに限定されず、未使用ビット数の増減に関連する他のパラメータに基づいて符号化方法が切り替えられてもよい。又は、未使用ビット数と閾値との比較に基づいて符号化方法が切り替えられてもよい。
 <方法6>
 未使用ビット数と符号との関連付けは、図4に示す例に限定されない。
 例えば、未使用ビット数の上限値は、使用可能ビット数となるため、使用可能ビット数以上の符号コード(又は、符号)は無くてもよい。この場合、未使用ビット数の上限値の符号において、符号末尾の0(例えば、ストップビット)は無くてもよい。
 例えば、使用可能ビット数が20ビットであり、19ビットが未使用ビットとなる場合(例えば、コードブック指示値が“0”(コードブックQ0)の場合)、図4に示す例では、未使用ビット数に割り当てられる符号は“1110”である。その一方で、使用可能ビット数が20ビットの場合には、未使用ビット数が20ビット以上(例えば、符号“11110”のように1が4つ以上続く符号)になることは無い。このため、未使用ビット数=19ビットに割り当てられる符号“1110”の末尾の0が無くても(例えば、“111”でも)、復号装置200は、未使用ビット数を特定可能である。
 よって、例えば、未使用ビット数と符号との関連付けには、図4に示す例の代わりに、図13に示す例が適用されてもよい。図13に示す符号は、例えば、ハフマン(Huffman)符号に相当する。図13では、図4と比較して、未使用ビット数が15~19ビット数の場合の符号“111”のビット数が1ビット少ない。
 このように、例えば、未使用ビット数を符号化した符号コード(又は、符号化情報)は、使用可能ビット数を未使用ビット数の上限値とするハフマン符号によって表されてもよい。例えば、符号化装置100は、未使用ビットの上限に応じたハフマン符号を用いて未使用ビットの符号化を行ってもよい。これにより、コードブック指示値の符号化に使用するビット数を1ビット削減可能である。
 なお、例えば、図4に示すように、未使用ビット数に割り当てられる符号は、Unary符号によって表されてよい。例えば、方法6において、上述したように、未使用ビット数の上限値は、使用可能ビット数に基づいて設定される場合、未使用ビット数に割り当てられる複数のUnary符号のうち、使用可能ビット数に基づいて設定される未使用ビット数の上限値に対応するUnary符号の最下位ビット(LSB:Least Significant Bit)が打ち切られてもよい(又は、削除されてもよい)。例えば、上述した例と同様、使用可能ビット数が20ビットの場合、未使用ビット数の上限値は19ビットであるので、図4に示す例では、未使用ビット数の上限値に対応するUnary符号は“1110”の4ビットである。方法6では、このUnary符号“1110”の最下位ビット“0”を打ち切って“111”としてよく、未使用ビット数と符号との関連付けは、図13に示す例と同様となる。これにより、コードブック指示値の符号化に使用するビット数を1ビット削減可能である。
 ここで、サブベクトルに適切なビット割り当てがなされていれば、特定の位置のサブベクトル(例えば、サブベクトルv8)には、使用可能ビット数に応じた、より長い語長(又は、ビット数)のコードブック指示値が選択されやすくなる。また、より長い語長のコードブック指示値が選択されると、未使用ビット数は0により近くなり、より短い語長の未使用ビット数の符号コードが選択されやすくなる。方法6では、この傾向を利用して、符号化装置100は、特定の位置のサブベクトルに対する使用可能ビット数に基づいて、当該サブベクトルの符号化に使用され得る最大のコードブック指示値を算出し、未使用ビット数に割り当てられる符号を、ハフマン符号、あるいは、Unary符号(例えば、上限の未使用ビット数に割り当てられるUnary符号のLSBを打ち切った符号)によって表してよい。これにより、未使用ビット数の符号化ビットを削減できる。
 また、<方法2>で説明したように、使用可能ビット数が10ビット以上の場合、5の剰余のビットは未使用になる可能性が高いので、方法6において、使用可能ビット数は、5の剰余を減じた値でもよい。
 また、例えば、EVSコーデックにおいて、未使用ビット数の符号化結果に関する生起確率分布では、未使用ビット数が5-9ビットになる確率が最も高く、0-4ビットになる確率が2番目に高く、10-14ビット以降が3番目以降に続く分布となる場合がある(例えば、GCモードが選択された場合)。この場合の未使用ビット数に対する符号の割り当て方法として、例えば、図4に示す未使用ビット数0-4ビットの符号“0”と、未使用ビット数5-9ビットの符号“10”とを入れ替えてもよい(例えば、図14)。換言すると、未使用ビット数の候補それぞれを符号化して得られる符号のうち、発生確率がより高い候補に対応する符号のビット数がより少なくてよい。図14に示す例では、発生確率の高い未使用ビット数に対して、少ないビット数の符号が割り当てられるので、平均的な符号化ビット数を削減可能になる。なお、図14は一例であり、未使用ビット数の発生確率に応じて、異なるビット数の符号がそれぞれ割り当てられてよい。このような割り当ては、符号化モード毎に最適な割り当て方をあらかじめ決めておけば良いので、割り当て方法に関する情報を符号化したり伝送したりしなくてもよい。
 また、例えば、図4、図13及び図14に示す未使用ビット数に割り当てられる符号は、“0”をストップビットとするUnary符号であるが、これに限定されない。例えば、図4、図13及び図14に示す未使用ビット数に割り当てられる符号における“1”と“0”とを入れ替えた符号としてもよい。
 また、例えば、<方法1>又は<方法5>といった符号化方法を切り替える場合において、ハフマン符号化は、コードブック指示値をそのまま符号化する方法に適用可能である。例えば、図1に示す例において、使用可能ビット数が23ビットの場合、特定の位置のサブベクトルに対するコードブックのうち、最大のコードブックはQ4(合計使用ビット数:20ビット)である。このとき、図1に示す例では、Q4のコードブック指示値は“1110”の4ビットである。ここで、使用可能ビット数が23ビットの場合、Q5以上(合計使用ビット数が25ビット以上)のコードブックは使用され得ない。よって、例えば、図15に示すように、Q4のコードブック指示値は、“1110”から“0”を省略した“111”でもよい。これにより、コードブック指示値の符号化ビット数を削減できる。
 以上、方法1~方法6についてそれぞれ説明した。
 なお、本開示の一実施例において、コードブックリストは、図1に示す例に限定されず、コードブックにおけるコードブック指示値及びコードベクトルインデックスの符号の値及び使用ビット数(又は、合計使用ビット数)は他の値でもよい。また、上述した<方法1>~<方法6>において説明した閾値は、符号化及び復号に適用されるコードブックリストに応じて設定されてもよい。
 また、例えば、図1では、各コードブックにおける合計使用ビット数に対するコードブック指示値の使用ビット数の割合が1/5である場合(換言すると、剰余を用いる場合の除数が5である場合)について説明したが、これに限定されない。
 また、上述した実施の形態では、入力信号S(f)が分割されるサブベクトル数が8個の場合について説明したが、入力信号S(f)が分割されるサブベクトル数は8個に限定されない。
 以上、本開示の実施の形態について説明した。
 なお、本開示はソフトウェア、ハードウェア、又は、ハードウェアと連携したソフトウェアで実現することが可能である。上記実施の形態の説明に用いた各機能ブロックは、部分的に又は全体的に、集積回路であるLSIとして実現され、上記実施の形態で説明した各プロセスは、部分的に又は全体的に、一つのLSI又はLSIの組み合わせによって制御されてもよい。LSIは個々のチップから構成されてもよいし、機能ブロックの一部または全てを含むように一つのチップから構成されてもよい。LSIはデータの入力と出力を備えてもよい。LSIは、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。集積回路化の手法はLSIに限るものではなく、専用回路、汎用プロセッサ又は専用プロセッサで実現してもよい。また、LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。本開示は、デジタル処理又はアナログ処理として実現されてもよい。さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
 本開示は、通信機能を持つあらゆる種類の装置、デバイス、システム(通信装置と総称)において実施可能である。通信装置は無線送受信機(トランシーバー)と処理/制御回路を含んでもよい。無線送受信機は受信部と送信部、またはそれらを機能として、含んでもよい。無線送受信機(送信部、受信部)は、RF(Radio Frequency)モジュールと1または複数のアンテナを含んでもよい。RFモジュールは、増幅器、RF変調器/復調器、またはそれらに類するものを含んでもよい。通信装置の、非限定的な例としては、電話機(携帯電話、スマートフォン等)、タブレット、パーソナル・コンピューター(PC)(ラップトップ、デスクトップ、ノートブック等)、カメラ(デジタル・スチル/ビデオ・カメラ等)、デジタル・プレーヤー(デジタル・オーディオ/ビデオ・プレーヤー等)、着用可能なデバイス(ウェアラブル・カメラ、スマートウオッチ、トラッキングデバイス等)、ゲーム・コンソール、デジタル・ブック・リーダー、テレヘルス・テレメディシン(遠隔ヘルスケア・メディシン処方)デバイス、通信機能付きの乗り物又は移動輸送機関(自動車、飛行機、船等)、及び上述の各種装置の組み合わせがあげられる。
 通信装置は、持ち運び可能又は移動可能なものに限定されず、持ち運びできない又は固定されている、あらゆる種類の装置、デバイス、システム、例えば、スマート・ホーム・デバイス(家電機器、照明機器、スマートメーター又は計測機器、コントロール・パネル等)、自動販売機、その他IoT(Internet of Things)ネットワーク上に存在し得るあらゆる「モノ(Things)」をも含む。
 通信には、セルラーシステム、無線LANシステム、通信衛星システム等によるデータ通信に加え、これらの組み合わせによるデータ通信も含まれる。
 また、通信装置には、本開示に記載される通信機能を実行する通信デバイスに接続又は連結される、コントローラやセンサー等のデバイスも含まれる。例えば、通信装置の通信機能を実行する通信デバイスが使用する制御信号やデータ信号を生成するような、コントローラやセンサーが含まれる。
 また、通信装置には、上記の非限定的な各種装置と通信を行う、あるいはこれら各種装置を制御する、インフラストラクチャ設備、例えば、基地局、アクセスポイント、その他あらゆる装置、デバイス、システムが含まれる。
 本開示の一実施例に係る符号化装置は、ベクトル量子化のコードブックに関する第1情報、及び、前記コードブックに含まれるコードベクトルに関する第2情報を含む量子化パラメータを生成する量子化回路と、前記ベクトル量子化においてサブベクトルの符号化に使用可能な第1ビット数と前記サブベクトルの前記量子化パラメータのビット数との差に基づく第2ビット数を用いて、前記サブベクトルに対する前記第1情報の符号化を制御する制御回路と、を具備する。
 本開示の一実施例において、前記制御回路は、前記第2ビット数を符号化した情報を符号化情報に決定する。
 本開示の一実施例において、前記第2ビット数を符号化した情報は、前記第1ビット数を前記第2ビット数の上限値とするハフマン符号によって表される。
 本開示の一実施例において、前記第2ビット数を符号化した情報は、Unary符号によって表され、前記第1ビット数に基づいて設定される前記第2ビット数の上限値に対応するUnary符号の最下位ビットは削除される。
 本開示の一実施例において、前記第2ビット数の候補それぞれを符号化した情報のうち、発生確率がより高い前記候補に対応する情報のビット数はより少ない。
 本開示の一実施例において、前記制御回路は、前記第1ビット数が閾値より多い場合、前記第2ビット数を符号化した情報を符号化情報に決定し、前記第1ビット数が前記閾値以下の場合、前記第1情報を符号化情報に決定する。
 本開示の一実施例において、Enhanced Voice Services(EVS)コーデックのGeneric Coding(モード)において、前記サブベクトルは、前記信号を分割した複数のサブベクトルのうち、最も周波数の高い(または時間的に最後の)サブベクトルである。
 本開示の一実施例において、前記制御回路は、前記サブベクトルに対する前記コードベクトルのエネルギが閾値以上の場合、前記第2ビット数を符号化した情報を符号化情報に決定し、前記コードベクトルのエネルギが前記閾値未満の場合、前記第1情報を符号化情報に決定する。
 本開示の一実施例において、前記制御回路は、前記サブベクトルに対するゲインが閾値以上の場合、前記第2ビット数を符号化した情報を符号化情報に決定し、前記ゲインが前記閾値未満の場合、前記第1情報を符号化情報に決定する。
 本開示の一実施例において、前記第2ビット数は、前記第1ビット数に対する5の剰余から、前記サブベクトルの前記量子化パラメータのビット数を減じた数である。
 本開示の一実施例に係る復号装置は、ベクトル量子化においてサブベクトルの符号化に使用可能な第1ビット数と、前記サブベクトルのコードブックに関する第1情報及び前記コードブックに含まれるコードベクトルに関する第2情報を含む量子化パラメータのビット数との差に基づく第2ビット数を用いて、前記サブベクトルに対する前記第1情報の復号を制御する制御回路と、前記第1情報に基づいて逆ベクトル量子化を行う逆量子化回路と、を具備する。
 本開示の一実施例に係る符号化方法において、符号化装置は、ベクトル量子化のコードブックに関する第1情報、及び、前記コードブックに含まれるコードベクトルに関する第2情報を含む量子化パラメータを生成し、前記ベクトル量子化においてサブベクトルの符号化に使用可能な第1ビット数と前記サブベクトルの前記量子化パラメータのビット数との差に基づく第2ビット数を用いて、前記サブベクトルに対する前記第1情報の符号化を制御する。
 本開示の一実施例に係る復号方法において、復号装置は、ベクトル量子化においてサブベクトルの符号化に使用可能な第1ビット数と、前記サブベクトルのコードブックに関する第1情報及び前記コードブックに含まれるコードベクトルに関する第2情報を含む量子化パラメータのビット数との差に基づく第2ビット数を用いて、前記サブベクトルに対する前記第1情報の復号を制御し、前記第1情報に基づいて逆ベクトル量子化を行う。
 2020年6月18日出願の特願2020-105470の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。
 本開示の一実施例は、符号化システム等に有用である。
 51 CELP符号化部
 52 CELPローカル復号部
 53,65 加算器
 64 CELP復号部
 71 LPC分析部
 72 量子化部
 73,84 逆量子化部
 74 LPC逆フィルタ部
 85 LPC合成フィルタ部
 100,100a,100b 符号化装置
 54,75,101 時間-周波数変換部
 102 心理音響モデル分析部
 103 スプリットマルチレート格子量子化部
 104 コードブック指示値変換部
 105 多重化部
 121 コードブック指示値分離部
 122,221 使用可能ビット数算出部
 123 未使用ビット数算出部
 124 未使用ビット数符号化部
 200,200a,200b 復号装置
 201 分離部
 202 コードブック指示値逆変換部
 203 スプリットマルチレート格子逆量子化部
 63,83,204 周波数-時間変換部
 222 未使用ビット数復号部
 223 復元部
 224 コードブック指示値生成部

Claims (13)

  1.  ベクトル量子化のコードブックに関する第1情報、及び、前記コードブックに含まれるコードベクトルに関する第2情報を含む量子化パラメータを生成する量子化回路と、
     前記ベクトル量子化においてサブベクトルの符号化に使用可能な第1ビット数と前記サブベクトルの前記量子化パラメータのビット数との差に基づく第2ビット数を用いて、前記サブベクトルに対する前記第1情報の符号化を制御する制御回路と、
     を具備する符号化装置。
  2.  前記制御回路は、前記第2ビット数を符号化した情報を符号化情報に決定する、
     請求項1に記載の符号化装置。
  3.  前記第2ビット数を符号化した情報は、前記第1ビット数を前記第2ビット数の上限値とするハフマン符号によって表される、
     請求項2に記載の符号化装置。
  4.  前記第2ビット数を符号化した情報は、Unary符号によって表され、
     前記第1ビット数に基づいて設定される前記第2ビット数の上限値に対応するUnary符号の最下位ビットは削除される、
     請求項2に記載の符号化装置。
  5.  前記第2ビット数の候補それぞれを符号化した情報のうち、発生確率がより高い前記候補に対応する情報のビット数はより少ない、
     請求項2に記載の符号化装置。
  6.  前記制御回路は、
     前記第1ビット数が閾値より多い場合、前記第2ビット数を符号化した情報を符号化情報に決定し、
     前記第1ビット数が前記閾値以下の場合、前記第1情報を符号化情報に決定する、
     請求項1に記載の符号化装置。
  7.  Enhanced Voice Services(EVS)コーデックのGeneric Coding(モード)において、前記ベクトル量子化の対象の信号がharmonic信号である場合、
     前記サブベクトルは、前記信号を分割した複数のサブベクトルのうち、最も周波数の高いサブベクトル、又は、時間的に最後のサブベクトルである、
     請求項1に記載の符号化装置。
  8.  前記制御回路は、
     前記サブベクトルに対する前記コードベクトルのエネルギが閾値以上の場合、前記第2ビット数を符号化した情報を符号化情報に決定し、
     前記コードベクトルのエネルギが前記閾値未満の場合、前記第1情報を符号化情報に決定する、
     請求項1に記載の符号化装置。
  9.  前記制御回路は、
     前記サブベクトルに対するゲインが閾値以上の場合、前記第2ビット数を符号化した情報を符号化情報に決定し、
     前記ゲインが前記閾値未満の場合、前記第1情報を符号化情報に決定する、
     請求項1に記載の符号化装置。
  10.  前記第2ビット数は、前記第1ビット数に対する5の剰余から、前記サブベクトルの前記量子化パラメータのビット数を減じた数である、
     請求項1に記載の符号化装置。
  11.  ベクトル量子化においてサブベクトルの符号化に使用可能な第1ビット数と、前記サブベクトルのコードブックに関する第1情報及び前記コードブックに含まれるコードベクトルに関する第2情報を含む量子化パラメータのビット数との差に基づく第2ビット数を用いて、前記サブベクトルに対する前記第1情報の復号を制御する制御回路と、
     前記第1情報に基づいて逆ベクトル量子化を行う逆量子化回路と、
     を具備する復号装置。
  12.  符号化装置は、
     ベクトル量子化のコードブックに関する第1情報、及び、前記コードブックに含まれるコードベクトルに関する第2情報を含む量子化パラメータを生成し、
     前記ベクトル量子化においてサブベクトルの符号化に使用可能な第1ビット数と前記サブベクトルの前記量子化パラメータのビット数との差に基づく第2ビット数を用いて、前記サブベクトルに対する前記第1情報の符号化を制御する、
     符号化方法。
  13.  復号装置は、
     ベクトル量子化においてサブベクトルの符号化に使用可能な第1ビット数と、前記サブベクトルのコードブックに関する第1情報及び前記コードブックに含まれるコードベクトルに関する第2情報を含む量子化パラメータのビット数との差に基づく第2ビット数を用いて、前記サブベクトルに対する前記第1情報の復号を制御し、
     前記第1情報に基づいて逆ベクトル量子化を行う、
     復号方法。
PCT/JP2021/016316 2020-06-18 2021-04-22 符号化装置、復号装置、符号化方法、及び、復号方法 WO2021256082A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2022532346A JPWO2021256082A1 (ja) 2020-06-18 2021-04-22
EP21824908.4A EP4170912A4 (en) 2020-06-18 2021-04-22 ENCODING DEVICE, DECODING DEVICE, ENCODING METHOD AND DECODING METHOD
CN202180043347.2A CN115699169A (zh) 2020-06-18 2021-04-22 编码装置、解码装置、编码方法及解码方法
US18/009,174 US20230238012A1 (en) 2020-06-18 2021-04-22 Encoding device, decoding device, encoding method, and decoding method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-105470 2020-06-18
JP2020105470 2020-06-18

Publications (1)

Publication Number Publication Date
WO2021256082A1 true WO2021256082A1 (ja) 2021-12-23

Family

ID=79267831

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/016316 WO2021256082A1 (ja) 2020-06-18 2021-04-22 符号化装置、復号装置、符号化方法、及び、復号方法

Country Status (5)

Country Link
US (1) US20230238012A1 (ja)
EP (1) EP4170912A4 (ja)
JP (1) JPWO2021256082A1 (ja)
CN (1) CN115699169A (ja)
WO (1) WO2021256082A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013061531A1 (ja) * 2011-10-28 2013-05-02 パナソニック株式会社 音声符号化装置、音声復号装置、音声符号化方法及び音声復号方法
WO2013118476A1 (ja) * 2012-02-10 2013-08-15 パナソニック株式会社 音響/音声符号化装置、音響/音声復号装置、音響/音声符号化方法および音響/音声復号方法
JP2020105470A (ja) 2018-12-28 2020-07-09 王子ホールディングス株式会社 繊維状セルロース含有物、繊維状セルロース含有液状組成物及び成形体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013061531A1 (ja) * 2011-10-28 2013-05-02 パナソニック株式会社 音声符号化装置、音声復号装置、音声符号化方法及び音声復号方法
WO2013118476A1 (ja) * 2012-02-10 2013-08-15 パナソニック株式会社 音響/音声符号化装置、音響/音声復号装置、音響/音声符号化方法および音響/音声復号方法
JP2020105470A (ja) 2018-12-28 2020-07-09 王子ホールディングス株式会社 繊維状セルロース含有物、繊維状セルロース含有液状組成物及び成形体

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
JPWO2021256082A1 (ja) 2021-12-23
EP4170912A4 (en) 2023-11-22
US20230238012A1 (en) 2023-07-27
CN115699169A (zh) 2023-02-03
EP4170912A1 (en) 2023-04-26

Similar Documents

Publication Publication Date Title
JP5140730B2 (ja) 切り換え可能な時間分解能を用いた低演算量のスペクトル分析/合成
RU2509379C2 (ru) Устройство и способ квантования и обратного квантования lpc-фильтров в суперкадре
TWI619116B (zh) 產生帶寬延伸訊號的裝置及方法、及非暫時性電腦可讀記錄媒體
JP5719941B2 (ja) オーディオ信号の効率的なエンコーディング/デコーディング
JP6970789B2 (ja) 高位周波数帯域における検出されたピークスペクトル領域を考慮してオーディオ信号を符号化するオーディオ符号器、オーディオ信号を符号化する方法、及びコンピュータプログラム
JP2005338850A (ja) デジタル信号の符号化方法及び装置ならびに復号化方法及び装置
RU2505921C2 (ru) Способ и устройство кодирования и декодирования аудиосигналов (варианты)
US9230551B2 (en) Audio encoder or decoder apparatus
WO2013118476A1 (ja) 音響/音声符号化装置、音響/音声復号装置、音響/音声符号化方法および音響/音声復号方法
WO2009059632A1 (en) An encoder
US20130103394A1 (en) Device and method for efficiently encoding quantization parameters of spectral coefficient coding
JP5544370B2 (ja) 符号化装置、復号装置およびこれらの方法
US20110135007A1 (en) Entropy-Coded Lattice Vector Quantization
JP2003110429A (ja) 符号化方法及び装置、復号方法及び装置、伝送方法及び装置、並びに記録媒体
WO2021256082A1 (ja) 符号化装置、復号装置、符号化方法、及び、復号方法
JP2000132194A (ja) 信号符号化装置及び方法、並びに信号復号装置及び方法
US20100292986A1 (en) encoder
WO2009022193A2 (en) Devices, methods and computer program products for audio signal coding and decoding
US20100280830A1 (en) Decoder
US8924202B2 (en) Audio signal coding system and method using speech signal rotation prior to lattice vector quantization
WO2022201632A1 (ja) 符号化装置、復号装置、符号化方法、及び、復号方法
US20170206905A1 (en) Method, medium and apparatus for encoding and/or decoding signal based on a psychoacoustic model
WO2023100494A1 (ja) 符号化装置、復号装置、符号化方法、及び、復号方法
KR20240066586A (ko) 복소수 양자화를 이용하는 오디오 신호의 부호화 및 복호화 방법 및 장치
JPH0918348A (ja) 音響信号符号化装置及び音響信号復号装置

Legal Events

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

Ref document number: 21824908

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022532346

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021824908

Country of ref document: EP

Effective date: 20230118