WO2012172750A1 - パルス位置探索装置、符号帳探索装置、及びこれらの方法 - Google Patents

パルス位置探索装置、符号帳探索装置、及びこれらの方法 Download PDF

Info

Publication number
WO2012172750A1
WO2012172750A1 PCT/JP2012/003674 JP2012003674W WO2012172750A1 WO 2012172750 A1 WO2012172750 A1 WO 2012172750A1 JP 2012003674 W JP2012003674 W JP 2012003674W WO 2012172750 A1 WO2012172750 A1 WO 2012172750A1
Authority
WO
WIPO (PCT)
Prior art keywords
search
pulse
loop
preliminary selection
track
Prior art date
Application number
PCT/JP2012/003674
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 CN201280002524.3A priority Critical patent/CN103098128B/zh
Priority to JP2013500692A priority patent/JP5981909B2/ja
Priority to US13/819,421 priority patent/US9230553B2/en
Publication of WO2012172750A1 publication Critical patent/WO2012172750A1/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/04Speech 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 predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • 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

Definitions

  • the present invention relates to a pulse position search apparatus and method for searching for the positions of a plurality of pulses, and a code book search apparatus and method for searching for the positions of a plurality of pulses constituting a code book.
  • CELP Code Excited Linear Prediction
  • ITU-T International Telecommunication Union-Telecommunication Standardization Sector
  • ITU-T standard G.729. 722.2 ETSI (European Telecommunications Standards Institute) Standard AMR (Adaptive Multiple Rate Coding), ETSI Standard AMR-WB (Adaptive Multiple Rate Coding-Wide Band) or 3GPP (3rd Generation Partnership Project) 2 Standard VMR-Multi (Variable In international standards such as (rate-Wide Band)
  • CELP is adopted as many standard systems.
  • FIG. 1 is a block diagram showing a configuration of a CELP encoding device.
  • spectrum parameters such as LSP or ISP
  • CELP is quantized.
  • the LPC analysis unit 101 performs linear prediction analysis (LPC analysis) on a speech signal to obtain an LPC parameter that is spectral envelope information, and the obtained LPC parameter is converted into an LPC quantization unit 102 and an auditory weighting unit 111. Output to.
  • LPC analysis linear prediction analysis
  • the LPC quantization unit 102 quantizes the LPC parameter output from the LPC analysis unit 101. Then, the LPC quantization unit 102 outputs the obtained quantized LPC parameter to the LPC synthesis filter 109, and outputs an index (code) of the quantized LPC parameter to the outside of the CELP encoding apparatus 100.
  • the adaptive codebook 103 stores past driving sound sources used in the LPC synthesis filter 109, and stores them according to an adaptive codebook lag corresponding to an index instructed from the distortion minimizing unit 112 described later.
  • a sound source vector for one subframe is generated from the driving sound source. This excitation vector is output to multiplier 106 as an adaptive codebook vector.
  • the fixed codebook 104 is a codebook for excitation coding (also called “excitation quantization” or “excitation vector coding”).
  • Fixed codebook 104 stores a plurality of excitation vectors having a predetermined shape in advance, and outputs the excitation vector corresponding to the index instructed from distortion minimizing section 112 to multiplier 107 as a fixed codebook vector.
  • fixed codebook 104 is an algebraic sound source, and a case where an algebraic codebook is used will be described.
  • An algebraic sound source is a sound source used in many standard codecs.
  • the above adaptive codebook 103 is used to express a component having strong periodicity such as voiced sound.
  • the fixed codebook 104 is used to express a component with weak periodicity such as white noise.
  • the gain codebook 105 is a gain for an adaptive codebook vector (adaptive codebook gain) output from the adaptive codebook 103 and a fixed codebook output from the fixed codebook 104 in accordance with an instruction from the distortion minimizing unit 112.
  • Vector gain (fixed codebook gain) is generated and output to multipliers 106 and 107, respectively.
  • Multiplier 106 multiplies the adaptive codebook gain output from gain codebook 105 by the adaptive codebook vector output from adaptive codebook 103, and outputs the multiplied adaptive codebook vector to adder 108.
  • Multiplier 107 multiplies the fixed codebook gain output from gain codebook 105 by the fixed codebook vector output from fixed codebook 104, and outputs the fixed codebook vector after multiplication to adder 108.
  • Adder 108 adds the adaptive codebook vector output from multiplier 106 and the fixed codebook vector output from multiplier 107, and outputs the added excitation vector to LPC synthesis filter 109 as a driving excitation. .
  • the LPC synthesis filter 109 uses the quantized LPC parameter output from the LPC quantization unit 102 as a filter coefficient, and a filter function using the excitation vector generated by the adaptive codebook 103 and the fixed codebook 104 as a driving excitation, that is, LPC A synthesized signal is generated using a synthesis filter. This combined signal is output to adder 110.
  • the adder 110 calculates an error signal by subtracting the synthesized signal generated by the LPC synthesis filter 109 from the audio signal, and outputs the error signal to the perceptual weighting unit 111. This error signal corresponds to coding distortion.
  • the perceptual weighting unit 111 performs perceptual weighting on the encoded distortion output from the adder 110 using the LPC parameters input from the LPC analysis unit 101 and outputs the result to the distortion minimizing unit 112.
  • the distortion minimizing unit 112 sets the indexes (codes) of the adaptive codebook 103, the fixed codebook 104, and the gain codebook 105 such that the coding distortion output from the perceptual weighting unit 111 is minimized for each subframe. These indices are output to the outside of the CELP encoding apparatus 100 as encoded information. More specifically, a series of processes for generating a composite signal based on the above-described adaptive codebook 103 and fixed codebook 104 and obtaining the coding distortion of this signal is closed loop control (feedback control), and distortion minimum
  • the encoding unit 112 searches each codebook by changing the index indicated to each codebook in one subframe, and finally obtains the index of each codebook that minimizes the encoding distortion. Output.
  • the algebraic codebook used as a fixed codebook (also called “stochastic codebook”), even better coding performance can be obtained with a limited amount of calculation.
  • the algebraic codebook is the ITU-T standard G. 729, ITU-T standard G.729. 722.2, widely used in ETSI standard AMR or ETSI standard AMR-WB.
  • the search for the excitation vector also referred to as “codebook vector” or “code vector”
  • the derivation of the code are performed by searching for the excitation vector that minimizes the encoding distortion of the following equation (1).
  • the derivation of the code of the fixed codebook 104 has the following encoding distortion of equation (2). This is done by searching for a fixed codebook vector to be minimized.
  • the search is performed here with an ideal gain (also referred to as “optimum gain”).
  • the ideal gain means a gain that minimizes coding distortion.
  • the above cost function C can be obtained with a small amount of calculation. Can be calculated. That is, the coding of the algebraic codebook is performed by an algorithm for searching for the position and the polarity where the cost function C is maximized by a multiple loop of channels (also called “tracks”) of the number of pulses.
  • the polarity is preliminarily selected based on whether the value of v t H is positive or negative, and at the same time, by multiplying the value of v t H and the value of H t H by the polarity, the pulse position search is performed. In this case, the polarity search can be omitted. This pre-selection of polarity can save exponentially computational complexity.
  • FIG. 2 is a conceptual diagram showing the flow of conventional fixed codebook search processing.
  • the flow of the fixed codebook search process can be simply expressed as shown in FIG.
  • a two-pulse search is performed as many times as necessary until the number of pulses to be obtained is searched.
  • the results (pulses) obtained by each two-pulse search are collected into a pulse train (not shown).
  • There are various methods for collecting the results of the two-pulse search For example, ITU-T standard G.I. In 718, an algorithm is used in which the number of pulses is increased while searching for two pulses for a 4-track configuration (see Non-Patent Document 1). The description is omitted here.
  • FIG. 3 is a diagram schematically showing a conventional algorithm for searching for pulse positions by grouping.
  • FIG. 3 corresponds to one of the two-pulse searches in FIG.
  • parameters necessary for the search are obtained using an input target or the like.
  • the target can be represented by a vector and corresponds to the target vector v of the fixed codebook search described above.
  • Parameters include target time-reversed composite vector (polarity preselected) v t H, pulse matrix vector correlation matrix (polarity preselected) H t H, track number, and pulse candidate position for each track Intervals, etc. are prepared.
  • the search loop of track 1 is executed in the search loop of track 0 using these parameters. That is, the search loop for track 0 and the search loop for track 1 are multiple loops. By performing a search using this multiple loop, the searched position of each track, the correlation value that is the basis of the comprehensive numerator term up to this search, and the overall denominator term up to this search are obtained.
  • FIG. 4 is a flowchart showing a conventional algorithm for searching for pulse positions by grouping.
  • FIG. 4 specifically shows FIG.
  • d [n] is a time-reversed composite vector of the target (preliminary selection of polarity).
  • c [n] [m] is a correlation matrix between pulse composite vectors (polarity preselected), n ⁇ m, and the values of n and m are doubled.
  • x and y are pulse candidate positions.
  • xx and yy are the positions of the finally searched pulses.
  • Track 0 and track 1 are track numbers (0, 1, 2, 3 in FIG. 2).
  • ps_t is an element of the numerator of the cost function C before the search.
  • alp_t is the total value of the denominator term of the cost function C before the search.
  • L is the subframe length.
  • “step” is an interval (“4” in FIG. 4) between pulse candidate positions of each track.
  • the flow starts when the necessary parameters described above are input.
  • the numerator term sqk of the cost function C is set to “ ⁇ 1.0”, and the denominator term apk is set to “1.0” (step ST11).
  • step ST12 it is determined whether or not the pulse candidate position x is smaller than the subframe length L (step ST12).
  • step ST14 the search for the pulse candidate position y is started (step ST14), and it is determined whether the pulse candidate position y is smaller than the subframe length L (step ST15).
  • step ST15 no
  • step ST18 when the value of (alpk * sq) is larger than the value of (sqk * alp1) (step ST18: yes), the denominator term and numerator term of the cost function C are determined, and the finally searched pulse Positions xx and yy are determined (step ST20), and the process returns to step ST19.
  • the denominator term of the function C is set as the final denominator term of the cost function C (step ST21).
  • step ST22 the final pulse positions xx and yy and the total value alp_t of the denominator term of the cost function C and the value of the numerator term ps_t of the cost function C are output (step ST22).
  • the numerator term of the cost function C in the equation (4) is sq, and the denominator term is alpl.
  • the cost function C can be obtained by dividing the numerator term by the denominator term. Since division requires a large amount of calculation, multiplication of multiplication is adopted in determining whether the cost function C is large or small.
  • pre-selection of the position of the pulse is taken in the search for the pulse (see Non-Patent Document 1).
  • the pre-selection of pulse position is to select a position where a pulse is likely to rise in advance and is expected to rise from the pulse candidate positions, and to reduce the number of pulse candidate positions entering the next loop. is there.
  • FIG. 5 is a conceptual diagram showing the flow of conventional fixed codebook search processing. As described above, there are various methods for combining the results of the two-pulse search. In 718, an algorithm is used in which the number of tracks is increased while searching for two tracks in a 4-track configuration. The description is omitted here.
  • FIG. 7B is a diagram schematically illustrating an algorithm for searching for a pulse position when the pulse position is preliminarily selected in 718.
  • FIG. 6 corresponds to one of the two-pulse searches shown in FIG.
  • the target can be represented by a vector and corresponds to the target vector v of the fixed codebook search described above.
  • Parameters include target time-reversed composite vector (polarity preselected) v t H, pulse matrix vector correlation matrix (polarity preselected) H t H, track number, and pulse candidate position for each track Intervals, etc. are prepared.
  • the number of entering the search loop of track 1 in the search loop of track 0 is limited by performing preliminary selection of track 0 in the search loop of track 0.
  • the search loop for track 0 and the search loop for track 1 are multiple loops, as in the case of FIG. By performing a search using this multiple loop, the searched position of each track, the correlation value that is the basis of the comprehensive numerator term up to this search, and the overall denominator term up to this search are obtained.
  • FIG. 7B is a flowchart showing an algorithm for searching for a pulse position when performing preliminary selection of a pulse position employed in 718.
  • FIG. 7 specifically shows FIG. In FIG. 7, parts that are the same as in FIG. 4 are given the same reference numerals, and descriptions thereof are omitted.
  • pick [n] is an array in which the order of adoption is described at each pulse position.
  • thres is a value obtained from the number of candidates at the designated candidate position x. Further, the search is performed for the number of candidates specified by the search only when pick [n] is smaller than the value of thres.
  • the meanings of the other symbols are the same as those in FIG.
  • step ST50 when the pulse candidate position x is smaller than the subframe length L (step ST12: yes), it is determined whether pick [x] is smaller than the value of thres (step ST50).
  • step ST50 no
  • the next candidate position is selected (step ST16), and the process returns to step ST12.
  • FIG. 8 is a block diagram showing the configuration of a fixed codebook search apparatus 300 that can perform a fixed codebook pulse search by the conventional pulse search method.
  • the preprocessing unit 301 receives the target signal and obtains parameters necessary for pulse search.
  • the parameters generated by calculation reflect the result of the polarity preselection of each pulse position and reflect the result, and the result of the polarity preselection (corresponding to v t H in Equation 4).
  • there is a “correlation matrix between composite vectors of pulses” (corresponding to H t H in Equation 4) obtained by doubling values other than the diagonal term.
  • the parameters to be set include the track number to be searched, the pulse position candidate interval of the track with the number, the subframe length, and the number of preliminary selections.
  • the preprocessing unit 301 sends these parameters to the control unit 302.
  • the control unit 302 receives the total number of bits, sends parameters necessary for pulse search to the multiplex loop search unit 303 in accordance with a timing signal from the pulse train encoding unit 304 described later, and the multiplex loop search unit 303 Control to search.
  • the parameters sent to the multiple loop search unit 303 include, in addition to the parameters sent from the preprocessing unit 301, sequences in which the order of adoption is described at each pulse position, and the molecular terms before the search is performed. There are total value and total value of denominator term.
  • the control unit 302 initializes the total value of the numerator term and the total value of the denominator term before the search is performed when the multi-loop search unit 303 is driven for the first time, and performs a two-pulse search at the next and subsequent stages. At the time of execution, what is sent from the pulse train encoding unit 304 is sent to the multiple loop search unit 303.
  • the multiple loop search unit 303 searches for the position of the pulse using the multiple loop. At this time, the multiple loop search unit 303 performs a preliminary selection using the number of the preliminary selections and an array in which the order of adoption is described for each pulse position in the outermost loop, and the search is performed. The pulse position and the total value of the numerator term and the total value of the denominator term calculated at the pulse position are output to the pulse train encoding unit 304.
  • the pulse train encoding unit 304 encodes a pulse by using the pulse position searched by the multiple loop search unit 303 and the total value of the numerator term and the total value of the denominator term.
  • the encoding of the pulse as the fixed codebook is performed using the result of the multiple loop search unit 303 that operates a plurality of times.
  • the pulse train encoding unit 304 sends the total value of the numerator term and the total value of the denominator term to the control unit 302 and also sends a timing signal to the control unit 302 in order to prompt the operation of the next multiple loop search unit 303.
  • pulse train encoding section 304 outputs a code as a fixed codebook at the end.
  • the multiple loop search unit 303 does not include a configuration for performing preliminary selection.
  • the multiple loop search unit 303 is configured to perform preliminary selection.
  • channel (track) grouping is performed in an algebraic codebook, whereby the search is performed in units of a small number of pulses, and individual small numbers are searched.
  • An object of the present invention is to provide a pulse position search apparatus and method that can reduce the amount of calculation associated with pulse position search. Furthermore, a codebook search apparatus and method that can reduce the amount of calculation associated with pulse position search without degrading the encoding performance even when the number of pulses to be obtained by search in the codebook increases. Is to provide.
  • the pulse position search apparatus of the present invention is a pulse position search apparatus that searches for the position of a plurality of pulses by inputting a parameter obtained by performing predetermined processing on a target signal, and using the parameter, By performing a first preliminary selection on a first candidate group at a position where one pulse is arranged and performing a first search on the result of the first preliminary selection, the first pulse is A first search means for obtaining a first position to be arranged, and a second search for all position candidates of the second candidate group at the position at which the second pulse is arranged by using the first position. And performing a second preliminary selection for the first candidate group using the second search means for obtaining the second position where the second pulse is arranged and the second position. Performing a third search on the result of the second preliminary selection More, obtains a third position in which the first pulse is arranged, a configuration comprising a third search means for outputting said third position and said second position as the search result.
  • the pulse position search method of the present invention is a pulse position search method for searching for positions of a plurality of pulses by inputting a parameter obtained by performing predetermined processing on a target signal, and using the parameter,
  • the first pulse is A first search step for obtaining a first position to be arranged, and a second search for all position candidates of the second candidate group at the position at which the second pulse is arranged by using the first position.
  • a third search for the result of the second preliminary selection Ukoto by obtains a third position in which the first pulse is arranged, having a third search step of outputting said third position and said second position as the search result.
  • the amount of calculation associated with the pulse position search can be reduced more than before.
  • this pulse position search device and this method to the codebook search device and this method, even if the number of pulses to be obtained by the search increases, the pulse position search can be performed without degrading the coding performance. The amount of calculation involved can be reduced.
  • the block diagram which shows the structure of a CELP encoding apparatus Conceptual diagram showing the flow of conventional fixed codebook search processing
  • a diagram schematically showing a conventional algorithm for searching for pulse positions by grouping Flow diagram showing a conventional algorithm for pulse position search by grouping
  • Conceptual diagram showing the flow of conventional fixed codebook search processing The figure which shows typically the algorithm of the search of the position of the pulse in the case of performing the preliminary selection of the position of the conventional pulse Flow diagram showing the algorithm for searching for the position of the pulse in the case of performing the preliminary selection of the position of the conventional pulse
  • the block diagram which shows the structure of the conventional fixed codebook search apparatus Conceptual diagram showing the flow of fixed codebook search processing in the embodiment of the present invention
  • the block diagram which shows the structure of the pulse position search apparatus in embodiment of this invention The flowchart which shows the search method of the position of the pulse in embodiment of this invention
  • the present invention relates to quantization in which a search for a large number of pulses is combined with a search for a plurality of small pulses.
  • the search for a small number of pulses uses a loop of a channel (also referred to as a track or a pulse) that performs preliminary selection (that is, the search target is initially limited) and does not perform preliminary selection (that is, sets all candidates as search targets).
  • the present invention is characterized in that a sequential optimization search is performed in which each loop is sequentially performed without making these loops into multiple loops.
  • this sequential optimization search used for searching for a small number of pulses it is preferable to use a loop in which preliminary selection is performed a plurality of times. In particular, it is more preferable to use a loop in which a preliminary selection is performed as at least the first loop and the last loop.
  • the present invention relates to a pulse position search apparatus that searches for a small number of pulses by such a pulse position search method.
  • the sequential optimization search of the pulse position search apparatus is used in the case where the number of preliminary selections is sufficiently small, the performance of the conventional simultaneous optimization search with preliminary selection will not be greatly reduced. Furthermore, since it is not a multiple loop, the amount of calculation can be greatly reduced.
  • the pulse position search device of the present invention for the encoding device when the number of preliminary selections is sufficiently small, the amount of calculation is further reduced without degrading the encoding performance. be able to.
  • CELP which is a speech coding technique
  • a search for a large number of pulses is performed while reducing the amount of calculation by using a two-pulse search by a closed multiple loop a plurality of times.
  • the amount of calculation is further reduced by limiting the number of times of entering the inner loop by preliminary selection in the outer track 0 loop.
  • the performance is not reduced so much by narrowing down initially and gradually increasing the number of candidates. This uses the tendency that if the second half is searched with high accuracy, the first half of the search will not drop so much performance even if the search candidates are largely narrowed down by preliminary selection.
  • the inventor of the present invention can obtain the same performance as using the simultaneous optimization search by using the sequential optimization search that uses the loop in which the preliminary selection is performed a plurality of times.
  • the amount of calculation can be greatly reduced.
  • a pulse position different from the search result in the simultaneous optimization search may be searched (referred to as “position error”).
  • position error a pulse position different from the search result in the simultaneous optimization search
  • the search by the loop in which the preliminary selection is performed is first performed to reduce the probability that the position is erroneously erroneous in the first loop, and then another track is searched.
  • the search is performed again by a loop in which the preliminary selection is performed.
  • the power of the combined vector of the pulse to be newly added as the denominator term of the above-mentioned cost function (the same value as “correlation value between the same pulse positions”) and the combination of the pulses searched so far It is necessary to add two of the correlation values between vectors to the total value of the denominator term before the search is performed, but it is necessary for preprocessing by omitting this correlation value calculation and using only power The calculation amount is omitted.
  • a pulse position search apparatus that searches for a pulse position in a fixed codebook composed of an algebraic codebook by grouping two pulses in the CELP coding apparatus.
  • This pulse position search device is applied to a fixed codebook search device included in a CELP encoding device, and pulses searched by this pulse position search device are combined into a pulse train and encoded by the fixed codebook search device.
  • the CELP encoding device targets, for example, voice, music, or a signal in which these are mixed.
  • the pulse position search apparatus is not limited to a CELP encoding apparatus, and can be used for an encoding apparatus that needs to perform a pulse position search.
  • FIG. 9 is a conceptual diagram showing the flow of fixed codebook search processing in the embodiment of the present invention.
  • a search is performed step by step in increments of two pulses from a search for a pulse with a small number of preliminary selections toward a larger number of preliminary selections. This is executed as many times as necessary until the number of pulses to be obtained is searched (the number of preliminary selections may be the same).
  • the results (pulses) obtained in the search at each stage are collected into a pulse train (not shown). A description of a method for collecting the searched pulses into a pulse train is omitted. In this embodiment, it is assumed that pulse search is performed in track 0 and track 1 of the algebraic codebook at each stage.
  • the difference between the search process in FIG. 5 and the search process in FIG. 9 is the same in that a two-pulse search is performed in the first stage, but in the subsequent stages, a sequential optimization search by the pulse position search method according to the present invention is performed. It is a point to do.
  • the “two-pulse search” is a simultaneous optimization search (closed loop search) for performing preliminary selection in FIG. 7 described in the background art. In this example, the two-pulse search is performed again at the last stage.
  • the two-pulse search (closed loop search) is adopted at the initial search stage where N0 is the smallest number of preliminary selections.
  • N0 is the smallest number of preliminary selections.
  • the sequential search of the present invention is performed. This is because there is a possibility that the amount of calculation at this stage is smaller in the closed loop search than in the optimization search.
  • the two-pulse search is adopted even in the final search stage where the number of preliminary selections is Nm, which is that the performance of the present invention is sufficiently exerted as described above. Therefore, in the last stage where the number of preliminary selections is the largest, the possibility that the performance of the present invention is lowered is considered.
  • the first stage and the last stage are thus searched for two pulses, but this configuration is not necessarily required.
  • the search for pulses in the second stage or the like is performed by a sequential optimization search by the pulse position search method according to the present invention. That is, at this stage, it is assumed that the number of preliminary selections is sufficiently small, the search for track 0 for preliminary selection is performed first, and then the position of the pulse searched for track 0 is fixed and the search for track 1 is performed. This is performed without preliminary selection. Finally, the position searched for track 1 is fixed, and the search for track 0 for preliminary selection is performed again.
  • FIG. 10 is a diagram schematically showing a pulse position search algorithm in the present embodiment.
  • FIG. 10 corresponds to the second-stage pulse search shown in FIG.
  • parameters necessary for the search are obtained using the input target and the like.
  • the target can be represented by a vector and corresponds to the target vector v of the fixed codebook search described above.
  • Parameters include target time-reversed composite vector (polarity preselected) v t H, pulse matrix vector correlation matrix (polarity preselected) H t H, track number, and pulse candidate position for each track Intervals, etc. are prepared.
  • the search loop R1 for track 0 for preliminary selection is first executed, and then the position of the pulse searched for track 0 is fixed and the search loop R2 for track 1 is not preselected. Finally, the position searched in the track 1 is fixed, and the search loop R3 of the track 0 for performing preliminary selection is executed again.
  • the searched position of each track, the correlation value that is the basis of the comprehensive numerator term up to this search, and the overall denominator term up to this search are obtained.
  • the search loop of track 0 and the search loop of track 1 are changed to the above-described search loop without using a multiple loop. Since an algorithm performed in order is used, the amount of calculation associated with the pulse position search can be reduced.
  • FIG. 11 is a block diagram showing a configuration of pulse position search apparatus 400 according to the embodiment of the present invention.
  • FIG. 11 corresponds to the sequential optimization search shown in FIG.
  • the pulse position search apparatus 400 includes a first search unit 401 that executes a search loop R1 of track 0 that performs preliminary selection, a second search unit 402 that executes without selecting the search loop R2 of track 1 and performs preliminary selection.
  • the third search unit 403 executes a search loop R3 of track 0 to be performed.
  • the number of pulses to be obtained by the search is two.
  • the first search unit 401 receives, as input signals, parameters such as a temporal reverse-order combined vector of targets that have been pre-selected for polarity, a correlation matrix between pulse combined vectors, track numbers, and pulse position candidate intervals for each track. These are used to search for the position of one pulse while performing preliminary selection of the position of the pulse.
  • the first search unit 401 outputs the search result to the second search unit 402.
  • the second search unit 402 fixes the position of the pulse input as the search result from the first search unit 401, and searches for the pulse position in the next track 1 without performing a preliminary selection of the pulse position.
  • the second search unit 402 outputs the search result to the third search unit 403.
  • the third search unit 403 fixes the pulse position input as the search result from the second search unit 402, and searches for the pulse again for the pulse position in the track 0 while performing preliminary selection of the pulse position.
  • the third search unit 403 obtains the searched position of each track, the correlation value that is the basis of the comprehensive molecular term of the cost function C up to this search, and the cost function C up to this search obtained by the search again. Output the total denominator term as an output signal.
  • FIG. 12 is a flowchart showing a pulse position search method in the present embodiment.
  • FIG. 12 specifically shows the operation of the pulse position search apparatus 400 of FIG.
  • d [n] is a target time-reversed composite vector (polarity preselected).
  • c [n] [m] is a correlation matrix between pulse composite vectors (polarity preselected), n ⁇ m, and the values of n and m are doubled.
  • x and y are pulse candidate positions.
  • xx and yy are finally searched positions.
  • Track 0 and track 1 are track numbers (0, 1, 2, 3 in this embodiment).
  • ps_t is an element of the numerator of the cost function C before the search.
  • alp_t is the total value of the denominator term of the cost function C before the search.
  • L is the subframe length.
  • “step” is the interval (“4” in the present embodiment) between the candidate positions of the pulses of each track.
  • pick [n] is an array in which the order of adoption is described at each pulse candidate position.
  • thres is a value obtained from the number of candidates at the designated candidate position x. Further, the search is performed for the number of candidates specified by the search only when pick [n] is smaller than the value of thres.
  • the first search unit 401 first sets the numerator term sqk of the cost function C to “ ⁇ 1.0” and the denominator term apk to “1.0” in order to search for the pulse candidate position x. (Step ST201).
  • the first search unit 401 determines whether the pulse candidate position x is smaller than the subframe length L (step ST202).
  • the first search unit 401 determines whether pick [x] is smaller than the value of thres (step ST203). .
  • the power c [x] [x] (the correlation value between the same pulse positions) of the pulse synthesis vector newly added as the denominator term of the cost function C and the pulse synthesis searched so far
  • the correlation value c [x] [*] between vectors to the total value of the denominator term of the cost function C before the search
  • the calculation of the correlation value c [x] [*] is performed. Is omitted, and only the power c [x] [x] is used, thereby omitting the calculation amount necessary for the preprocessing.
  • the first search unit 401 determines whether the value of (alpk * sq) is larger than the value of (sqk * alp0) (step ST206).
  • step ST206 no
  • step ST206 when the value of (alpk * sq) is larger than the value of (sqk * alp0) (step ST206: yes), the first search unit 401 determines the denominator and numerator terms of the cost function C, The final pulse position xx is determined (step ST207).
  • step ST202 if the pulse candidate position x is greater than or equal to the subframe length L (step ST202: no), the second search unit 402 sets the numerator term sqk of the cost function C to “ ⁇ 1.0”.
  • second search section 402 determines whether or not pulse candidate position y is smaller than subframe length L (step ST209).
  • step ST209 yes
  • alp1 alp0 + c [y] [y] + c [xx].
  • the second search unit 402 determines whether or not the value of (alpk * sq) is larger than the value of (sqk * alp1) (step ST211).
  • step ST211: yes when the value of (alpk * sq) is larger than the value of (sqk * alp1) (step ST211: yes), the second search unit 402 determines the denominator and numerator terms of the cost function C, The final pulse position yy is determined (step ST213).
  • the third search unit 403 determines whether or not the pulse candidate position x is smaller than the subframe length L (step ST215).
  • step ST215 If pulse candidate position x is smaller than subframe length L (step ST215: yes), third search section 403 determines whether pick [x] is smaller than the value of thres (step ST216). .
  • the third search unit 403 determines whether or not the value of (alpk * sq) is larger than the value of (sqk * alp0) (step ST219).
  • step ST219 no
  • step ST219: yes when the value of (alpk * sq) is larger than the value of (sqk * alp0) (step ST219: yes), the third search unit 403 determines the denominator and numerator terms of the cost function C, The final pulse position xx is determined (step ST220).
  • the third search unit 403 outputs the final pulse positions xx and yy and the total value alp_t of the denominator term of the cost function C and the value of the numerator term ps_t of the cost function C (step ST222). .
  • the search loop R1 for track 0 corresponds to the processing in steps ST201 to ST208 in FIG. 12
  • the search loop R2 for track 1 corresponds to steps ST208 to ST214 in FIG.
  • the loop R3 corresponds to step ST214 to step ST221 in FIG.
  • FIG. 13 is a block diagram showing a configuration of fixed codebook search apparatus 500 that can perform a fixed codebook pulse search by the pulse search method according to the present embodiment.
  • the preprocessing unit 501 receives a target signal and obtains parameters necessary for pulse search.
  • the parameters generated by calculation reflect the result of the polarity preselection of each pulse position and reflect the result, and the result of the polarity preselection (corresponding to v t H in Equation 4).
  • there is a “correlation matrix between composite vectors of pulses” (corresponding to H t H in Equation 4) obtained by doubling values other than the diagonal term.
  • the parameters to be set include the track number to be searched, the pulse position candidate interval of the track with the number, the subframe length, and the number of preliminary selections.
  • the preprocessing unit 501 sends these parameters to the control unit 502.
  • the control unit 502 receives the total number of bits, and sends parameters necessary for pulse search to the multiplex loop search unit 503 or the pulse position search device 600 in accordance with a timing signal from a pulse train encoding unit 504 described later.
  • the loop search unit 503 or the pulse position search device 600 is controlled to search for pulses. In the present embodiment, control is performed so as to drive the multi-loop search unit 503 in the first stage and the last stage, and control is performed so as to drive the pulse position search apparatus 600 in other stages.
  • the control unit 502 initializes the total value of the numerator term and the total value of the denominator term before the search is performed when the multi-loop search unit 503 is first driven in the first stage, and in the subsequent stages.
  • two-pulse search closed loop search
  • what is sent from the pulse train encoding unit 504 is sent to the multiple loop search unit 503.
  • the multiple loop search unit 503 searches for the position of the pulse using a two-pulse search, that is, a closed loop search using a multiple loop. At this time, the multi-loop search unit 503 performs a preliminary selection using the number of preliminary selections and an array in which the order of adoption is described for each pulse position in the outermost loop, and the search is performed. The pulse position and the total value of the numerator term and the total value of the denominator term calculated at the pulse position are output to the pulse train encoding unit 504.
  • the pulse position search device 600 corresponds to the pulse position search device 400 shown in FIG. Accordingly, the first search unit 401 corresponds to the first search unit 601, the second search unit 402 corresponds to the second search unit 602, and the third search unit 403 corresponds to the third search unit 603, and has the same configuration. . For this reason, detailed description of the pulse position search device 600 is omitted.
  • the pulse train encoding unit 504 encodes a pulse using the pulse position searched by the multiple loop search unit 503 or the pulse position search device 600, and the total value of the numerator term and the total value of the denominator term.
  • the encoding of the pulse as the fixed codebook is performed using the result of the multiple loop search unit 503 and the result of the pulse position search device 600.
  • the pulse train encoding unit 504 sends the total value of the numerator term and the total value of the denominator term to the control unit 502, and controls the next pulse position search device 600 or the multiple loop search unit 503 in order to prompt the operation.
  • a timing signal is sent to the unit 502. Then, pulse train encoding section 504 outputs a code as a fixed codebook at the end.
  • the pulse position search device in the search for a small number of pulses, the search loop for track 0 for which preliminary selection is performed without searching for multiple loops, and the search for track 1 for which preliminary selection is not performed.
  • the calculation amount associated with the pulse position search can be further reduced.
  • this pulse position search device is applied to a fixed codebook search device, even if the number of pulses to be searched in the fixed codebook increases, the amount of calculation associated with the pulse position search is not reduced without reducing the encoding performance. Can be reduced. If such a fixed codebook search apparatus is applied to an encoding apparatus, a high-quality decoded signal can be generated when decoding a code in the decoding apparatus.
  • the search for track 0 with the preliminary selection of the position of the pulse is performed again after the search for track 1 in the pulse position search device, so that the result of the search in the conventional multiple loop The possibility of obtaining different results can be reduced.
  • the denominator term of the cost function used in the search of the track 0 with the preliminary selection of the pulse position to be used first in the pulse position search device is changed to the total value of the denominator term.
  • the search is performed every two pulses. This is for comparison with 718, and a search can be performed for every arbitrary number of pulses such as three pulses or four pulses.
  • the first stage and the last stage are the conventional simultaneous optimization search (closed loop search), but this configuration is not necessarily required.
  • the fixed codebook search apparatus performs a pulse position search using a simultaneous optimization search (closed loop search) regardless of the total number of bits in the last-stage pulse group search.
  • the determination may be made by the control unit.
  • the sequential optimization search of the present invention includes a three-loop configuration of track 0 search (with preliminary selection), track 1 search (without preliminary selection), and track 0 search (with preliminary selection).
  • the present invention is not limited to this, and the amount of calculation can be greatly reduced, so the number of loops may be further increased.
  • an algebraic codebook is used as a fixed codebook.
  • the present invention is not limited to this, and can be used for other codebooks other than an algebraic codebook.
  • the search using the preliminary selection is performed by taking 718 as an example, the present invention is not limited to this, and the present invention can be used for arbitrary encoding using a plurality of searches for a small number of pulses.
  • the present invention relates to a pulse position search. This is because it does not depend on other configurations of the 718 standard.
  • CELP is used as an encoding method.
  • the present invention is not limited to this, and can be applied to vector quantization. Therefore, the present invention can be applied to encoding methods other than CELP.
  • it can also be used for spectrum quantization using MDCT (Modified Discrete Cosine Transform) or QMF (Quadrature Mirror Filter), and also for algorithms that search for similar spectrum shapes from the spectrum in the low-frequency region in band expansion technology. Can be applied.
  • MDCT Modified Discrete Cosine Transform
  • QMF Quadrature Mirror Filter
  • the pulse position search apparatus is applied to an encoding apparatus for speech, music, or a signal in which these are mixed.
  • the present invention is not limited to this, and speech recognition is performed.
  • the present invention can also be applied to quantization used for image recognition or image encoding. This is because the present invention relates to pulse position search and does not depend on the purpose of the entire algorithm.
  • each functional block used in the description of the above embodiment is typically realized as an LSI which is an integrated circuit. These may be individually made into one chip, or may be made into one chip so as to include a part or all of them. Although referred to as LSI here, it may be referred to as IC, system LSI, super LSI, or ultra LSI depending on the degree of integration.
  • the method of circuit integration is not limited to LSI, and implementation with a dedicated circuit or a general-purpose processor is also possible.
  • An FPGA Field Programmable Gate Array
  • a reconfigurable / processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
  • the present invention is suitable for a pulse position search device that searches for the positions of a plurality of pulses or a code book search device that searches for the positions of a plurality of pulses that constitute a code book, and can also be applied to a speech encoding device. It is.

Landscapes

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

Abstract

 パルス位置探索装置(400)は、第1のパルスが配置される位置の第1候補群に対して第1の予備選択を行い、前記第1の予備選択の結果に対して第1の探索を行うことにより、前記第1のパルスが配置される第1の位置を求める第1探索部(401)と、前記第1の位置を用いて、第2のパルスが配置される位置の第2候補群の全ての位置候補に対して第2の探索を行うことにより、前記第2のパルスが配置される第2の位置を求める第2探索部(402)と、前記第2の位置を用いて、前記第1候補群に対して第2の予備選択を行い、前記第2の予備選択の結果に対して第3の探索を行うことにより、前記第1のパルスが配置される第3の位置を求める第3探索部(403)と、を具備する。

Description

パルス位置探索装置、符号帳探索装置、及びこれらの方法
 本発明は、複数のパルスの位置を探索するパルス位置探索装置及びその方法、及び、符号帳を構成する複数のパルスの位置を探索する符号帳探索装置及びその方法に関する。
 移動体通信においては伝送帯域の有効利用のために音声または画像のディジタル情報の圧縮符号化が必須である。その中でも、携帯電話で広く利用されている音声コーデック技術に対する期待は大きく、圧縮率の高い従来の高効率符号化に対して、更によりよい音質の要求が強まっている。また、公衆で使用されるために標準化が必須であり、それに伴う知財権の強さゆえに世界の各社で研究開発が盛んに行われている。
 近年では、音声と音楽の双方を符号化できるコーデックの標準化がITU-T及びMPEGで検討されており、より効率的で高品質の音声コーデックが求められている。
 20年前に確立された音声の発声機構をモデル化してベクトル量子化を巧みに応用した基本方式であるCELP(Code Excited Linear Prediction)によって音声符号化技術は大きく性能を向上させた。ITU-T(International Telecommunication Union - Telecommunication Standardization Sector)標準G.729、ITU-T標準G.722.2、ETSI(European Telecommunications Standards Institute)標準AMR(Adaptive Multiple Rate Coding)、ETSI標準AMR-WB(Adaptive Multiple Rate Coding - Wide Band)または3GPP(3rd Generation Partnership Project)2標準VMR-WB(Variable Multiple rate - Wide Band)等の国際規格において、CELPは多くの標準方式として採用されている。
 図1は、CELP符号化装置の構成を示すブロック図である。図1では、CELPにおけるスペクトルパラメータ(LSPまたはISP等)の量子化を行うものである。
 図1より、LPC分析部101は、音声信号に対して線形予測分析(LPC分析)を施し、スペクトル包絡情報であるLPCパラメータを求め、求めたLPCパラメータをLPC量子化部102及び聴感重み付け部111に出力する。
 LPC量子化部102は、LPC分析部101から出力されたLPCパラメータを量子化する。そして、LPC量子化部102は、得られた量子化LPCパラメータをLPC合成フィルタ109に出力し、量子化LPCパラメータのインデックス(符号)をCELP符号化装置100の外部へ出力する。
 一方、適応符号帳103は、LPC合成フィルタ109で使用された過去の駆動音源を記憶しており、後述する歪み最小化部112から指示されたインデックスに対応する適応符号帳ラグに従って、記憶している駆動音源から1サブフレーム分の音源ベクトルを生成する。この音源ベクトルは、適応符号帳ベクトルとして乗算器106に出力される。
 固定符号帳104は、音源符号化(「音源量子化」または「音源ベクトル符号化」とも呼ばれる)の符号帳である。固定符号帳104は、所定形状の音源ベクトルを複数個予め記憶しており、歪み最小化部112から指示されたインデックスに対応する音源ベクトルを、固定符号帳ベクトルとして乗算器107に出力する。ここで、固定符号帳104は代数的音源であり、代数的符号帳を用いた場合について説明する。代数的音源とは、多くの標準コーデックに採用されている音源である。
 なお、上記の適応符号帳103は、有声音のように周期性の強い成分を表現するために使われる。一方、固定符号帳104は、白色雑音のように周期性の弱い成分を表現するために使われる。
 ゲイン符号帳105は、歪み最小化部112からの指示に従って、適応符号帳103から出力される適応符号帳ベクトル用のゲイン(適応符号帳ゲイン)、及び固定符号帳104から出力される固定符号帳ベクトル用のゲイン(固定符号帳ゲイン)を生成し、それぞれ乗算器106、107に出力する。
 乗算器106は、ゲイン符号帳105から出力された適応符号帳ゲインを、適応符号帳103から出力された適応符号帳ベクトルに乗じ、乗算後の適応符号帳ベクトルを加算器108に出力する。
 乗算器107は、ゲイン符号帳105から出力された固定符号帳ゲインを、固定符号帳104から出力された固定符号帳ベクトルに乗じ、乗算後の固定符号帳ベクトルを加算器108に出力する。
 加算器108は、乗算器106から出力された適応符号帳ベクトルと、乗算器107から出力された固定符号帳ベクトルとを加算し、加算後の音源ベクトルを駆動音源としてLPC合成フィルタ109に出力する。
 LPC合成フィルタ109は、LPC量子化部102から出力された量子化LPCパラメータをフィルタ係数とし、適応符号帳103及び固定符号帳104で生成される音源ベクトルを駆動音源としたフィルタ関数、すなわち、LPC合成フィルタを用いて合成信号を生成する。この合成信号は、加算器110に出力される。
 加算器110は、LPC合成フィルタ109で生成された合成信号を音声信号から減算することによって誤差信号を算出し、この誤差信号を聴感重み付け部111に出力する。なお、この誤差信号が符号化歪みに相当する。
 聴感重み付け部111は、LPC分析部101から入力されるLPCパラメータを用いて、加算器110から出力された符号化歪みに対して聴感的な重み付けを施し、歪み最小化部112に出力する。
 歪み最小化部112は、聴感重み付け部111から出力された符号化歪みが最小となるような、適応符号帳103、固定符号帳104及びゲイン符号帳105の各インデックス(符号)をサブフレームごとに求め、これらのインデックスを符号化情報としてCELP符号化装置100の外部に出力する。より詳細には、上記の適応符号帳103及び固定符号帳104に基づいて合成信号を生成し、この信号の符号化歪みを求める一連の処理は閉ループ制御(帰還制御)となっており、歪み最小化部112は、各符号帳に指示するインデックスを1サブフレーム内において様々に変化させることによって各符号帳を探索し、最終的に得られる、符号化歪みを最小とする各符号帳のインデックスを出力する。
 固定符号帳(「確率的符号帳」とも呼ぶ)として使用される代数的符号帳(Algebraic Codebook)では、限られた計算量で更に良好な符号化性能が得られるようになった。代数的符号帳は、上記のITU-T標準G.729、ITU-T標準G.722.2、ETSI標準AMRまたはETSI標準AMR-WB等で広く使用されている。
 ここで、固定符号帳探索の基本的アルゴリズムの原理について説明する。
 まず、音源ベクトル(「符号帳ベクトル」または「コードベクトル」とも呼ぶ)の探索と符号の導出とは以下の(1)式の符号化歪を最小化する音源ベクトルを探索することにより行う。
Figure JPOXMLDOC01-appb-M000001
 一般的に、適応符号帳ベクトルと固定符号帳ベクトルとは逐次最適化で(別々のループで)探索されるので、固定符号帳104の符号の導出は以下の(2)式の符号化歪を最小化する固定符号帳ベクトルを探索することにより行う。
Figure JPOXMLDOC01-appb-M000002
 ここで、ゲインp、qは音源の符号を探索した後で決定するので、ここでは理想ゲイン(「最適ゲイン」とも呼ばれる)で探索を進めることとする。理想ゲインは、符号化歪を最も小さくするゲインを意味する。これより、上記の(2)式は以下の(3)式のように表すことができる。
Figure JPOXMLDOC01-appb-M000003
 符号化歪を示す(3)式を最小化することは、以下の(4)式のコスト関数Cを最大化することと同じである。
Figure JPOXMLDOC01-appb-M000004
 よって、代数的符号帳のような少数パルスからなる固定符号帳ベクトルsの探索の場合は、vHとHHとを予め計算しておけば、少ない計算量で上記のコスト関数Cを算出することができる。すなわち、代数的符号帳の符号化は、パルスの本数のチャネル(「トラック」とも呼ぶ)の多重ループにより、上記のコスト関数Cを最も大きくする位置と極性とを探索するアルゴリズムにより行われる。
 また、そのパルス音源の場合は、vHの値の正負で極性を予め予備選択してしまうと同時に、vHの値とHHの値とに極性を乗ずることによって、パルス位置探索の際に極性探索を省略することができる。この極性の予備選択により計算量は指数的に節約できる。
 そして、近年では、より高品質のニーズに対応するために、広帯域信号(16kHzサンプリング)及び超広帯域信号(32kHzサンプリング)を符号化するコーデックが求められており、ITU-T、MPEG(Moving Picture Experts Group)または3GPP等で標準化が進んでいる。広帯域及び超広帯域のディジタル信号を符号化するためにビットレートが高くなるのに伴って、音源を符号化する固定符号帳の情報ビット数も多くなる。代数的符号帳は、同時最適化(多重ループ)での探索により高性能を得ることができるので、ビット数が多くなる(パルス数が増える)と指数的に計算量が増えてしまう。
 そこで高品質コーデックにおいては、探索するパルス(チャネルまたはトラック)をいくつかのグループに分け、グループ内を同時最適化探索で探索し、グループ間は逐次最適化で探索するという方法が広く採用されている。例えば、4本のパルスで1つのパルスの立つ位置の候補が32であった場合、32の4乗で1048576回のマッチングを行わなくてはならない。しかしながら、4本のパルスを2本ずつ2つのグループに分けて探索すると、32の2乗の計算を2回行うことにより、2048回のマッチングで済む。この際、逐次最適化探索であるため、完全な同時最適化探索よりも性能は多少落ちるが、グループ内がクローズドなので、大きな劣化はない。そのために、近年はこのグループ化による探索が行われるようになった。
 このパルス探索の例として、グループのサイズを2パルスとし、探索を行った例を図2を用いて説明する。図2は、従来の固定符号帳探索処理の流れを示す概念図である。固定符号帳の探索処理の流れは、簡易的には図2のように表すことができる。図2に示すように、求めるべきパルスの本数が探索されるまで、2パルス探索を必要な回数だけ行う。それぞれの2パルス探索により求められた結果(パルス)は、パルス列にまとめられる(図示省略)。この2パルス探索の結果をまとめる方法については様々なものがある。例えば、ITU-T標準G.718では、4トラック構成についてパルスを2本ずつ探索しながら本数を増やすというアルゴリズムを用いている(非特許文献1参照)。ここではその説明は省略する。
 図3は、従来のグループ化によるパルスの位置の探索のアルゴリズムを模式的に示す図である。図3は、図2における2パルス探索の一つに対応する。
 探索を始める前に、前処理として、入力されるターゲット等を用いて、探索に必要なパラメータを求めておく。ここで、ターゲットはベクトルにより表すことができ、前述の、固定符号帳探索のターゲットベクトルvに対応する。パラメータとしては、ターゲットの時間逆順合成ベクトル(極性の予備選択済み)vH、パルスの合成ベクトル同士の相関行列(極性の予備選択済み)HH、トラック番号、及び各トラックのパルス候補位置の間隔、等が用意される。
 これらのパラメータを用いて、トラック0の探索ループの中でトラック1の探索ループが実行される。すなわち、トラック0の探索ループとトラック1の探索ループとで多重ループになっている。この多重ループによる探索を行うことにより、各トラックの探索された位置、この探索までの総合的分子項の基になる相関値、及びこの探索までの総合的分母項、が得られる。
 図4は、従来のグループ化によるパルスの位置の探索のアルゴリズムを示すフロー図である。図4は図3を具体的に示したものである。
 図4において、d[n]は、ターゲットの時間逆順合成ベクトル(極性の予備選択済み)である。c[n][m]は、パルスの合成ベクトル同士の相関行列(極性の予備選択済み)であり、n≠mであるとともに、n、mの値は2倍されている。x、yは、パルスの候補位置である。xx、yyは、最終的に探索されたパルスの位置である。track0、track1は、トラック番号(図2では0、1、2、3のいずれか)である。ps_tは、探索を行う前までのコスト関数Cの分子項の元である。alp_tは、探索を行う前までのコスト関数Cの分母項の総合値である。Lは、サブフレーム長である。stepは、各トラックのパルスの候補位置の間隔(図4では「4」)である。
 図4において、まず、前述の必要なパラメータが入力されることでフローがスタートする。そして、パルスの候補位置xを探索するために、コスト関数Cの分子項sqkを「-1.0」とし、分母項alpkを「1.0」とする(ステップST11)。
 次に、パルスの候補位置xがサブフレーム長Lよりも小さいか否かを判定する(ステップST12)。
 パルスの候補位置xがサブフレーム長Lよりも小さい場合(ステップST12:yes)には、ps0=ps_t+d[x]及びalp0=alp_t+c[x][x]の計算を行う(ステップST13)。
 次に、パルスの候補位置yの探索を開始し(ステップST14)、パルスの候補位置yがサブフレーム長Lよりも小さいか否かを判定する(ステップST15)。
 パルスの候補位置yがサブフレーム長L以上の場合(ステップST15:no)には、次の候補位置を選択し(x=x+step)(ステップST16)、ステップST12に処理を戻す。
 一方、パルスの候補位置yがサブフレーム長Lよりも小さい場合(ステップST15:yes)には、ps1=ps0+d[y]、alp1=alp0+c[y][y]+c[x][y]及びsq=ps1*ps1の計算を行う(ステップST17)。
 次に、(alpk*sq)の値が(sqk*alp1)の値よりも大きいか否かを判定する(ステップST18)。
 (alpk*sq)の値が(sqk*alp1)の値以下の場合(ステップST18:no)には、次の候補位置を選択し(y=y+step)(ステップST19)、ステップST15に処理を戻す。
 一方、(alpk*sq)の値が(sqk*alp1)の値よりも大きい場合(ステップST18:yes)には、コスト関数Cの分母項及び分子項を確定して、最終的な探索したパルスの位置xx、yyを確定し(ステップST20)、ステップST19に処理を戻す。
 また、ステップST12において、パルスの候補位置xがサブフレーム長L以上の場合(ステップST12:no)には、ps_t=ps_t+d[xx]+d[yy]の計算を行うとともに、探索を行う前のコスト関数Cの分母項をコスト関数Cの最終的な分母項とする(ステップST21)。
 次に、最終的なパルスの位置xx、yy及びその際のコスト関数Cの分母項の総合値alp_t及びコスト関数Cの分子項ps_tの値を出力する(ステップST22)。
 図4において、(4)式のコスト関数Cの分子項がsqであり、分母項がalplである。コスト関数Cは、分子項を分母項で除算することによって得られるが、除算は計算量が多くなるので、コスト関数Cの大小の判定においてはたすき掛けの掛け算を採用する。
 しかしながら、上記のグループ化を用いても、ビット数が更に増えると膨大な計算量になってくる。そこで、ITU-T標準G.718では、パルスの探索において、パルスの位置の予備選択を取り入れている(非特許文献1参照)。パルスの位置の予備選択とは、パルスの候補位置のうち、予めパルスが立ち易く、パルスが立つと予想される位置を選択し、次のループに入るパルスの候補位置の数を削減するものである。
 G.718で採用されているパルス位置の予備選択を用いた固定符号帳の探索処理の流れの概要を、図5を用いて説明する。図5は、従来の固定符号帳探索処理の流れを示す概念図である。なお、上記に示したように、2パルス探索の結果をまとめる方法については様々なものがあり、G.718では4トラック構成について2本ずつ探索しながら本数を増やすというアルゴリズムを用いている。ここではその説明は省略する。
 この固定符号帳の探索処理は、図5に示すように、図2と同様、2パルス探索を必要な回数だけ行うが、それぞれの2パルス探索において予備選択を行う。このとき、それぞれの2パルス探索の予備選択数には、昇順の大きさの関係が設定される。
 図6は、G.718で採用されているパルスの位置の予備選択を行う場合のパルスの位置の探索のアルゴリズムを模式的に示す図である。図6は、図5に示す2パルス探索の一つに対応する。
 図3と同様、探索を始める前に、前処理として、入力されるターゲット等を用いて、探索に必要なパラメータを求めておく。ここで、ターゲットはベクトルにより表すことができ、前述の、固定符号帳探索のターゲットベクトルvに対応する。パラメータとしては、ターゲットの時間逆順合成ベクトル(極性の予備選択済み)vH、パルスの合成ベクトル同士の相関行列(極性の予備選択済み)HH、トラック番号、及び各トラックのパルス候補位置の間隔、等が用意される。
 これらのパラメータを用いて、トラック0の探索ループの中でトラック0の予備選択を行うことにより、トラック0の探索ループの中でトラック1の探索ループに入る数を制限する。図6の場合も、図3の場合と同様に、トラック0の探索ループとトラック1の探索ループとで多重ループになっている。この多重ループによる探索を行うことにより、各トラックの探索された位置、この探索までの総合的分子項の基になる相関値、及びこの探索までの総合的分母項、が得られる。
 図7は、G.718で採用されているパルスの位置の予備選択を行う場合のパルスの位置の探索のアルゴリズムを示すフロー図である。図7は、図6を具体的に示したものである。なお、図7において、図4と同一処理である部分には同一符号を付して、その説明を省略する。
 図7において、pick[n]は、各パルス位置にその採用される順位が記載されている配列である。thresは、指定された候補位置xの候補数から得られる値である。また、pick[n]がthresの値より小さい値の場合のみの探索により指定された候補数だけ探索する。なお、その他の記号の意味は、図4と同様であるので、その説明を省略する。
 図7において、パルスの候補位置xがサブフレーム長Lよりも小さい場合(ステップST12:yes)には、pick[x]がthresの値より小さいか否かを判定する(ステップST50)。
 pick[x]がthresの値より小さい場合(ステップST50:yes)には、ps0=ps_t+d[x]及びalp0=alp_t+c[x][x]の計算を行う(ステップST13)。
 一方、pick[x]がthresの値以上の場合(ステップST50:no)には、次の候補位置を選択し(ステップST16)、ステップST12に処理を戻す。
 図8は、上記従来のパルス探索方法により固定符号帳のパルス探索を行うことができる固定符号帳探索装置300の構成を示すブロック図である。
 前処理部301は、ターゲット信号を入力とし、パルス探索に必要なパラメータを求める。計算により生成されるパラメータとしては、各パルス位置の極性予備選択を行って結果を反映した「ターゲットの時間逆順合成ベクトル」(数4のvHに相当)、及び極性予備選択の結果を反映し対角項以外の値を2倍した「パルスの合成ベクトル同士の相関行列」(数4のHHに相当)、などがある。また、設定するパラメータとしては、探索するトラック番号、前記番号のトラックのパルス位置候補の間隔、サブフレーム長、及び予備選択数、などがある。前処理部301は、これらのパラメータを制御部302に送る。
 制御部302は、総ビット数を入力とし、後述するパルス列符号化部304からのタイミング信号に応じて、パルス探索に必要なパラメータを多重ループ探索部303に送り、多重ループ探索部303でパルスの探索を行うように制御する。多重ループ探索部303に送るパラメータとしては、前処理部301から送られてきたパラメータに加えて、各パルス位置にその採用される順位が記載されている配列、探索を行う前までの分子項の総合値及び分母項の総合値、などがある。なお、制御部302は、前記探索を行う前までの分子項の総合値及び分母項の総合値を、最初に多重ループ探索部303を駆動するときには初期化し、次回以降の段階の2パルス探索を行う際には、パルス列符号化部304から送られてきたものを多重ループ探索部303に送る。
 多重ループ探索部303は、パルスの位置を多重ループを用いて探索する。この際、多重ループ探索部303は、一番外側のループにおいて、前記予備選択数と前記各パルス位置にその採用される順位が記載されている配列とを用いて予備選択を行い、探索されたパルス位置と、そのパルス位置において計算された分子項の総合値及び分母項の総合値とをパルス列符号化部304に出力する。
 パルス列符号化部304は、多重ループ探索部303で探索されたパルス位置と、分子項の総合値及び分母項の総合値とを用いてパルスの符号化を行う。この固定符号帳としてのパルスの符号化は、複数回動作する多重ループ探索部303の結果を用いて行われるものである。そしてパルス列符号化部304は、分子項の総合値及び分母項の総合値を制御部302に送るとともに、次の多重ループ探索部303の動作を促すためにタイミング信号を制御部302に送る。そして、パルス列符号化部304は、最後に固定符号帳としての符号を出力する。
 ここで、パルス探索方法として図2の探索処理を用いる場合には、多重ループ探索部303には、予備選択を行う構成は含まれない。パルス探索方法として図5の探索処理を用いる場合には、多重ループ探索部303は、予備選択を行うように構成される。
 このように、従来、高ビットレートの固定符号帳探索に対応するために、代数的符号帳においてチャネル(トラック)のグループ化を行うことにより、探索を少数パルス単位で行うこととし、個別の少数パルスの探索をクローズドで行う方法、更にその時の外側のループで位置の予備選択を行って更に計算量を下げる方法が発明され、計算量を抑えながら高品質の音声または音楽を符号化できるようになった。
ITU-T標準G.718規格書、2008年6月
 しかしながら、従来の装置においては、多重ループを採用しているため、パルスの位置探索に伴う計算量の更なる削減が難しいという課題がある。このため、固定符号帳において探索するパルス数が多くなった場合には、符号化性能を落とさずに、パルスの位置探索に伴う計算量を削減することが困難であるという問題がある。
 本発明の目的は、パルスの位置探索に伴う計算量を削減することができるパルス位置探索装置、及びその方法を提供することである。更に、符号帳において、探索により求めるべきパルス数が多くなった場合でも、符号化性能を落とさずに、パルスの位置探索に伴う計算量を削減することができる符号帳探索装置、及びその方法を提供することである。
 本発明のパルス位置探索装置は、ターゲット信号に所定の処理を行って得られたパラメータを入力して複数のパルスの位置の探索を行うパルス位置探索装置であって、前記パラメータを用いて、第1のパルスが配置される位置の第1候補群に対して第1の予備選択を行い、前記第1の予備選択の結果に対して第1の探索を行うことにより、前記第1のパルスが配置される第1の位置を求める第1探索手段と、前記第1の位置を用いて、第2のパルスが配置される位置の第2候補群の全ての位置候補に対して第2の探索を行うことにより、前記第2のパルスが配置される第2の位置を求める第2探索手段と、前記第2の位置を用いて、前記第1候補群に対して第2の予備選択を行い、前記第2の予備選択の結果に対して第3の探索を行うことにより、前記第1のパルスが配置される第3の位置を求め、前記第2の位置と前記第3の位置とを探索結果として出力する第3探索手段と、を具備する構成を採る。
 本発明のパルス位置探索方法は、ターゲット信号に所定の処理を行って得られたパラメータを入力して複数のパルスの位置の探索を行うパルス位置探索方法であって、前記パラメータを用いて、第1のパルスが配置される位置の第1候補群に対して第1の予備選択を行い、前記第1の予備選択の結果に対して第1の探索を行うことにより、前記第1のパルスが配置される第1の位置を求める第1探索ステップと、前記第1の位置を用いて、第2のパルスが配置される位置の第2候補群の全ての位置候補に対して第2の探索を行うことにより、前記第2のパルスが配置される第2の位置を求める第2探索ステップと、前記第2の位置を用いて、前記第1候補群に対して第2の予備選択を行い、前記第2の予備選択の結果に対して第3の探索を行うことにより、前記第1のパルスが配置される第3の位置を求め、前記第2の位置と前記第3の位置とを探索結果として出力する第3探索ステップと、を有する。
 本発明のパルス位置探索装置及びこの方法によれば、パルスの位置探索に伴う計算量を従来以上に削減することができる。また、このパルス位置探索装置及びこの方法を符号帳探索装置及びこの方法に適用することにより、探索により求めるべきパルス数が多くなった場合でも、符号化性能を落とさずに、パルスの位置探索に伴う計算量を削減することができる。
CELP符号化装置の構成を示すブロック図 従来の固定符号帳探索処理の流れを示す概念図 従来のグループ化によるパルスの位置の探索のアルゴリズムを模式的に示す図 従来のグループ化によるパルスの位置の探索のアルゴリズムを示すフロー図 従来の固定符号帳探索処理の流れを示す概念図 従来のパルスの位置の予備選択を行う場合のパルスの位置の探索のアルゴリズムを模式的に示す図 従来のパルスの位置の予備選択を行う場合のパルスの位置の探索のアルゴリズムを示すフロー図 従来の固定符号帳探索装置の構成を示すブロック図 本発明の実施の形態における固定符号帳探索処理の流れを示す概念図 本発明の実施の形態におけるパルスの位置の探索のアルゴリズムを模式的に示す図 本発明の実施の形態におけるパルス位置探索装置の構成を示すブロック図 本発明の実施の形態におけるパルスの位置の探索方法を示すフロー図 本発明の実施の形態における固定符号帳探索装置の構成を示すブロック図
 本発明は、多数のパルスの探索を、複数の少数パルスの探索を組み合わせて符号化を行う量子化に関するものである。少数パルスの探索は、予備選択を行う(すなわち探索対象を最初に限定する)チャネル(トラックまたはパルスとも呼ぶ)のループを用いるものと、予備選択を行わない(すなわち全候補を探索対象とする)チャネルのループを用いるものとがある。本発明は、これらのループを多重ループ化せず、それぞれのループを順次行う逐次最適化探索を行うことを特徴とする。この、少数パルスの探索に用いる逐次最適化探索には、予備選択が行われるループを複数回用いるのが好適である。特に、ループを実行する順序は、少なくとも最初のループ及び最後のループとして、予備選択が行われるループを用いるのが、より好適である。本発明は、少数パルスの探索を、このようなパルス位置探索方法で行うパルス位置探索装置に関するものである。
 上記パルス位置探索装置の逐次最適化探索を、予備選択数が十分少ない場合について用いれば、従来の予備選択ありの同時最適化探索の性能から大きく落ちることがない。さらに、多重ループではないので計算量を大きく削減できる。
 したがって、符号化装置に対して、本発明のパルス位置探索装置によるパルスの逐次最適化探索を、予備選択数が十分少ない場合に用いることにより、符号化性能を落とさずに計算量を更に削減することができる。
 本実施の形態では、音声符号化技術であるCELPにおける固定符号帳の量子化に本発明を用いた場合について説明を行う。CELPについては上記で説明を行ったのでこれを省略する。
 背景技術で述べたように、G.718においてはクローズド多重ループによる2パルス探索を複数回用いることによって、計算量を抑えながら多数のパルスの探索を行っている。その中で、外側のトラック0のループにおいて予備選択により内側のループに入る回数を制限することにより、更に計算量を削減している。更に、最初は大きく絞り込み、次第に候補数を増やすことで性能がそれほど落ちないようにしている。これは、後半を精度よく探索すれば、前半の探索は探索候補を予備選択により大きく絞っても性能がそれほど落ちないという傾向を利用している。
 そこで、本発明の発明者は、十分に予備選択数が少ない場合には、予備選択が行われるループを複数回用いる逐次最適化探索を用いれば同時最適化探索を用いるのと同様の性能が得られ、かつ大きく計算量が削減できると考えた。
 また、逐次最適化探索においては、同時最適化探索における探索結果と異なるパルス位置が探索される場合(「位置の誤り」と呼ぶ)がある。このことは、そのまま性能の劣化に繋がる可能性がある。このため、本実施の形態においては、予備選択が行われるループによる探索を最初に行うことで確率的に最初のループで位置を誤る確率を減らし、次に別のトラックの探索を行なった後で再度、予備選択が行われるループによる探索を行う。これにより、最初のループによる探索の結果が必ずしも最適でなかったとしても、最終的に正しい位置が探索される確率を向上させている。
 また、最初のループにおいては、前述のコスト関数の分母項として新たに追加するパルスの合成ベクトルのパワ(「同じパルス位置同士の相関値」と同値)と、それまで探索されているパルスの合成ベクトル同士の相関値との2つを、探索を行う前までの分母項の総合値に加算する必要があるが、この相関値の計算を省略してパワだけにすることにより、前処理に必要な計算量を省略している。
 以下、本発明の実施の形態について、図面を参照して詳細に説明する。ここでは、一例として、CELP符号化装置における、代数的符号帳で構成された固定符号帳でのパルスの位置の探索を、パルスを2本ずつグループ化して行うパルス位置探索装置について説明する。このパルス位置探索装置はCELP符号化装置に含まれる固定符号帳探索装置に適用され、このパルス位置探索装置により探索されたパルスは固定符号帳探索装置においてパルス列にまとめられて符号化される。なお、CELP符号化装置は、例えば、音声、音楽、あるいはこれらが混在する信号等を対象とする。また、パルス位置探索装置は、CELP符号化装置に限らず、パルス位置探索を行う必要がある符号化装置には用いることができる。
 (実施の形態)
 本実施の形態の固定符号帳の探索処理の流れについて、図9を用いて説明する。図9は、本発明の実施の形態における固定符号帳探索処理の流れを示す概念図である。
 図9に示すように、本実施の形態の固定符号帳の探索処理は、予備選択数が小さいパルスの探索から、予備選択数が大きい方に向かって、2パルスずつ段階的に探索が行われ、求めるべきパルスの本数が探索されるまで必要な回数だけ実行される(予備選択数は同じであってもよい)。それぞれの段階の探索において求められた結果(パルス)は、パルス列にまとめられる(図示省略)。探索されたパルスをパルス列にまとめる方法については説明を省略する。また、本実施の形態においては、各段階において、代数的符号帳のトラック0とトラック1とにおいてパルス探索を行うものとする。
 図5における探索処理と図9における探索処理との違いは、最初の段階で2パルス探索を行う点は同様であるが、次の段階以降は、本発明によるパルス位置探索方法による逐次最適化探索を行う点である。ここで「2パルス探索」とは、背景技術において説明した、図7における、予備選択を行う同時最適化探索(クローズドループ探索)のことである。また、この例では、最後の段階で、再度2パルス探索を行うこととしている。
 本実施の形態において、予備選択数が最も少ないN0である最初の探索の段階で2パルス探索(クローズドループ探索)を採用したのは、現実的には、N0があまりに小さいと、本発明の逐次最適化探索よりも、クローズドループ探索の方が、この段階における計算量が小さくなる可能性があり得るためである。また、予備選択数が最も多いNmである最後の探索の段階でも2パルス探索を採用したのは、本発明の性能が十分に発揮されるのが、前述したように十分に予備選択数が少ない場合であるので、予備選択数がもっとも多い最後の段階では、本発明の性能が低下する可能性を考慮したものである。なお、本実施の形態では、このように最初の段階と最後の段階とを2パルス探索としたが、必ずしもこの構成としなくてもよい。
 図9の例においては、2段目等のパルスの探索は、本発明によるパルス位置探索方法による逐次最適化探索を行う。すなわち、この段階においては十分に予備選択数が少ないものとし、予備選択を行うトラック0の探索を最初に行い、次に、トラック0で探索されたパルスの位置を固定してトラック1の探索を予備選択せずに行い、最後に、トラック1で探索された位置を固定して、予備選択を行うトラック0の探索を再度行う。
 図10は、本実施の形態におけるパルスの位置の探索のアルゴリズムを模式的に示す図である。図10は、図9に示す2段目等のパルス探索に対応する。
 図3及び図6と同様、探索を始める前に、前処理として、入力されるターゲット等を用いて、探索に必要なパラメータを求めておく。ここで、ターゲットはベクトルにより表すことができ、前述の、固定符号帳探索のターゲットベクトルvに対応する。パラメータとしては、ターゲットの時間逆順合成ベクトル(極性の予備選択済み)vH、パルスの合成ベクトル同士の相関行列(極性の予備選択済み)HH、トラック番号、及び各トラックのパルス候補位置の間隔、等が用意される。
 これらのパラメータを用いて、予備選択を行うトラック0の探索ループR1を最初に実行し、次に、トラック0で探索されたパルスの位置を固定してトラック1の探索ループR2を予備選択せずに実行し、最後に、トラック1で探索された位置を固定して、予備選択を行うトラック0の探索ループR3を再度実行する。この処理により、各トラックの探索された位置、この探索までの総合的分子項の基になる相関値、及びこの探索までの総合的分母項、が得られる。
 すなわち本実施の形態では、図10に示すように、図3及び図6に示す従来のアルゴリムズと異なり、多重ループを採用せずに、トラック0の探索ループとトラック1の探索ループとを上記の順序で行うアルゴリズムを用いるので、パルスの位置探索に伴う計算量を削減することができる。
 図11は、本発明の実施の形態に係るパルス位置探索装置400の構成を示すブロック図である。図11は、図10に示す逐次最適化探索に対応する。
 パルス位置探索装置400は、予備選択を行うトラック0の探索ループR1を実行する第1探索部401、トラック1の探索ループR2を予備選択せずに実行する第2探索部402、及び予備選択を行うトラック0の探索ループR3を実行する第3探索部403を有する。探索により求めるべきパルスの本数は2本である。
 第1探索部401は、入力信号として、極性の予備選択済みであるターゲットの時間逆順合成ベクトル、パルスの合成ベクトル同士の相関行列、トラック番号、及び各トラックのパルス位置候補間隔等のパラメータを入力し、これらを用いてパルスの位置の予備選択をしながら1つのパルスの位置を探索する。第1探索部401は、探索結果を第2探索部402に出力する。
 第2探索部402は、第1探索部401から探索結果として入力したパルスの位置を固定し、パルスの位置の予備選択をせずに、次のトラック1におけるパルスの位置を探索する。第2探索部402は、探索結果を第3探索部403に出力する。
 第3探索部403は、第2探索部402から探索結果として入力したパルスの位置を固定し、トラック0におけるパルスの位置について、パルスの位置の予備選択をしながら再度パルスを探索する。第3探索部403は、再度の探索により求めた、各トラックの探索された位置、この探索までのコスト関数Cの総合的分子項の元になる相関値、及びこの探索までのコスト関数Cの総合的分母項を出力信号として出力する。
 図12は、本実施の形態におけるパルスの位置の探索方法を示すフロー図である。図12は図11のパルス位置探索装置400の動作を具体的に示したものである。
 図12において、d[n]は、ターゲットの時間逆順合成ベクトル(極性の予備選択済み)である。c[n][m]は、パルスの合成ベクトル同士の相関行列(極性の予備選択済み)であり、n≠mであるとともに、n、mの値は2倍されている。x、yは、パルスの候補位置である。xx、yyは、最終的に探索された位置である。track0、track1は、トラック番号(本実施の形態では0、1、2、3のいずれか)である。ps_tは、探索を行う前までのコスト関数Cの分子項の元である。alp_tは、探索を行う前までのコスト関数Cの分母項の総合値である。Lは、サブフレーム長である。stepは、各トラックのパルスの候補位置の間隔(本実施の形態では「4」)である。pick[n]は、各パルスの候補位置にその採用される順位が記載されている配列である。thresは、指定された候補位置xの候補数から得られる値である。また、pick[n]がthresの値より小さい値の場合のみの探索により指定された候補数だけ探索する。
 図12より、まず、第1探索部401は、パルスの候補位置xを探索するために、コスト関数Cの分子項sqkを「-1.0」とし、分母項alpkを「1.0」とする(ステップST201)。
 次に、第1探索部401は、パルスの候補位置xがサブフレーム長Lよりも小さいか否かを判定する(ステップST202)。
 パルスの候補位置xがサブフレーム長Lよりも小さい場合(ステップST202:yes)には、第1探索部401は、pick[x]がthresの値より小さいか否かを判定する(ステップST203)。
 pick[x]がthresの値以上の場合(ステップST203:no)には、第1探索部401は、次の候補位置xの探索に移行し(x=x+step)(ステップST204)、ステップST202に処理を戻す。
 一方、pick[x]がthresの値より小さい場合(ステップST203:yes)には、第1探索部401は、ps0=ps_t+d[x]、alp0=alp_t+c[x][x]及びsq=ps0*ps0の計算を行う(ステップST205)。ここで、コスト関数Cの分母項として新たに追加するパルスの合成ベクトルのパワc〔x〕〔x〕(同じパルス位置同士の相関値と同値)と、それまでに探索されているパルスの合成ベクトル同士の相関値c〔x〕〔*〕とを、探索を行う前までのコスト関数Cの分母項の総合値に加算する必要があるが、この相関値c〔x〕〔*〕の計算を省略して、パワc〔x〕〔x〕だけにすることにより前処理に必要な計算量を省略している。
 また、第1探索部401は、(alpk*sq)の値が(sqk*alp0)の値より大きいか否かを判定する(ステップST206)。
 (alpk*sq)の値が(sqk*alp0)の値以下の場合(ステップST206:no)には、第1探索部401は、次の候補位置xの探索に移行し(x=x+step)(ステップST204)、ステップST202に処理を戻す。
 一方、(alpk*sq)の値が(sqk*alp0)の値より大きい場合(ステップST206:yes)には、第1探索部401は、コスト関数Cの分母項及び分子項を確定して、最終的なパルスの位置xxを確定する(ステップST207)。
 また、ステップST202において、パルスの候補位置xがサブフレーム長L以上の場合(ステップST202:no)には、第2探索部402は、コスト関数Cの分子項sqkを「-1.0」とし、分母項alpkを「1.0」とするとともに、ps0=ps_t+d[xx]及びalp0=alp_t+c[xx][xx]の計算を行う(ステップST208)。
 次に、第2探索部402は、パルスの候補位置yがサブフレーム長Lよりも小さいか否かを判定する(ステップST209)。
 パルスの候補位置yがサブフレーム長Lよりも小さい場合(ステップST209:yes)には、第2探索部402は、ps1=ps0+d[y]、alp1=alp0+c[y][y]+c[xx][y]及びsq=ps1*ps1の計算を行う(ステップST210)。
 次に、第2探索部402は、(alpk*sq)の値が(sqk*alp1)の値より大きいか否かを判定する(ステップST211)。
 (alpk*sq)の値が(sqk*alp1)の値以下の場合(ステップST211:no)には、第2探索部402は、次の候補位置yの探索に移行し(y=y+step)(ステップST212)、ステップST209に処理を戻す。
 一方、(alpk*sq)の値が(sqk*alp1)の値より大きい場合(ステップST211:yes)には、第2探索部402は、コスト関数Cの分母項及び分子項を確定して、最終的なパルスの位置yyを確定する(ステップST213)。
 また、ステップST209において、パルスの候補位置yがサブフレーム長L以上の場合(ステップST209:no)には、第3探索部403は、ps1=ps_t+d[yy]及びalp1=alp_t+c[yy][yy]の計算を行う(ステップST214)。
 次に、第3探索部403は、パルスの候補位置xがサブフレーム長Lよりも小さいか否かを判定する(ステップST215)。
 パルスの候補位置xがサブフレーム長Lよりも小さい場合(ステップST215:yes)には、第3探索部403は、pick[x]がthresの値より小さいか否かを判定する(ステップST216)。
 pick[x]がthresの値以上の場合(ステップST216:no)には、第3探索部403は、次の候補位置xの探索に移行し(x=x+step)(ステップST217)、ステップST215に処理を戻す。
 一方、pick[x]がthresの値より小さい場合(ステップST216:yes)には、第3探索部403は、ps0=ps1+d[x]、alp0=alp1+c[x][x]+c[x][yy]及びsq=ps0*ps0の計算を行う(ステップST218)。
 次に、第3探索部403は、(alpk*sq)の値が(sqk*alp0)の値より大きいか否かを判定する(ステップST219)。
 (alpk*sq)の値が(sqk*alp0)の値以下の場合(ステップST219:no)には、第3探索部403は、次の候補位置xの探索に移行し(x=x+step)(ステップST217)、ステップST215に処理を戻す。
 一方、(alpk*sq)の値が(sqk*alp0)の値より大きい場合(ステップST219:yes)には、第3探索部403は、コスト関数Cの分母項及び分子項を確定して、最終的なパルスの位置xxを確定する(ステップST220)。
 また、ステップST215において、パルスの候補位置xがサブフレーム長L以上の場合(ステップST215:no)には、第3探索部403は、ps_t=ps_t+d[xx]+d[yy]及びalp_t=alpkの計算を行う(ステップST221)。
 次に、第3探索部403は、最終的なパルスの位置xx、yy及びその際のコスト関数Cの分母項の総合値alp_t及びコスト関数Cの分子項ps_tの値を出力する(ステップST222)。
 図10において、トラック0の探索ループR1は、図12のステップST201~ステップST208における処理に相当し、トラック1の探索ループR2は、図12のステップST208~ステップST214に相当し、トラック0の探索ループR3は、図12のステップST214~ステップST221に相当する。
 図13は、本実施の形態におけるパルス探索方法により固定符号帳のパルス探索を行うことができる固定符号帳探索装置500の構成を示すブロック図である。
 前処理部501は、ターゲット信号を入力とし、パルス探索に必要なパラメータを求める。計算により生成されるパラメータとしては、各パルス位置の極性予備選択を行って結果を反映した「ターゲットの時間逆順合成ベクトル」(数4のvHに相当)、及び極性予備選択の結果を反映し対角項以外の値を2倍した「パルスの合成ベクトル同士の相関行列」(数4のHHに相当)、などがある。また、設定するパラメータとしては、探索するトラック番号、前記番号のトラックのパルス位置候補の間隔、サブフレーム長、及び予備選択数、などがある。前処理部501は、これらのパラメータを制御部502に送る。
 制御部502は、総ビット数を入力とし、後述するパルス列符号化部504からのタイミング信号に応じて、パルス探索に必要なパラメータを、多重ループ探索部503あるいはパルス位置探索装置600に送り、多重ループ探索部503あるいはパルス位置探索装置600でパルスの探索を行うように制御する。本実施の形態では、最初の段階と最後の段階とでは多重ループ探索部503を駆動するように制御し、それ以外の段階ではパルス位置探索装置600を駆動するように制御する。
 多重ループ探索部503あるいはパルス位置探索装置600に送るパラメータとしては、前処理部501から送られてきたパラメータに加えて、各パルス位置にその採用される順位が記載されている配列、探索を行う前までの分子項の総合値、及び分母項の総合値、などがある。なお、制御部502は、前記探索を行う前までの分子項の総合値及び分母項の総合値を、最初の段階で多重ループ探索部503を最初に駆動するときには初期化し、次回以降の段階において2パルス探索(クローズドループ探索)を行う場合(図9の例では最後の段階)には、パルス列符号化部504から送られてきたものを多重ループ探索部503に送る。
 多重ループ探索部503は、パルスの位置を、2パルス探索すなわち多重ループによるクローズドループ探索を用いて探索する。この際、多重ループ探索部503は、一番外側のループにおいて、前記予備選択数と前記各パルス位置にその採用される順位が記載されている配列とを用いて予備選択を行い、探索されたパルス位置と、そのパルス位置において計算された分子項の総合値及び分母項の総合値とをパルス列符号化部504に出力する。
 パルス位置探索装置600は、図11に示すパルス位置探索装置400に対応する。したがって、第1探索部401は第1探索部601に、第2探索部402は第2探索部602に、第3探索部403は第3探索部603に、それぞれ対応し、同一の構成を有する。このため、パルス位置探索装置600の詳細な説明は省略する。
 パルス列符号化部504は、多重ループ探索部503あるいはパルス位置探索装置600で探索されたパルス位置と、分子項の総合値及び分母項の総合値とを用いてパルスの符号化を行う。この固定符号帳としてのパルスの符号化は、多重ループ探索部503の結果とパルス位置探索装置600の結果とを用いて行われる。そしてパルス列符号化部504は、分子項の総合値及び分母項の総合値を制御部502に送るとともに、次のパルス位置探索装置600の動作あるいは多重ループ探索部503の動作を促すために、制御部502にタイミング信号を送る。そして、パルス列符号化部504は、最後に固定符号帳としての符号を出力する。
 このように、本実施の形態によるパルス位置探索装置によれば、少数パルスの探索において、多重ループを採用せずに、予備選択を行うトラック0の探索ループ、予備選択を行わないトラック1の探索ループ、予備選択を行うトラック0の探索ループ、の順でループを順次実行する逐次最適化探索を行うことにより、パルスの位置探索に伴う計算量を従来以上に削減することができる。また、このパルス位置探索装置を固定符号帳探索装置に適用すれば、固定符号帳において探索するべきパルス数が多くなった場合でも、符号化性能を落とさずに、パルスの位置探索に伴う計算量を削減することができる。そして、このような固定符号帳探索装置を符号化装置に適用すれば、復号装置において符号を復号する際に、高品質な復号信号を生成することができる。
 また、本実施の形態によれば、パルス位置探索装置において最初にパルスの位置の予備選択ありのトラック0の探索を行うことにより、従来の多重ループで探索した場合の結果と異なる結果が得られる可能性を小さくすることができる。
 また、本実施の形態によれば、パルス位置探索装置においてパルスの位置の予備選択ありのトラック0の探索をトラック1の探索の後に再度行うことにより、従来の多重ループで探索した場合の結果と異なる結果が得られる可能性を小さくすることができる。
 また、本実施の形態によれば、パルス位置探索装置において最初に用いるパルスの位置の予備選択ありのトラック0の探索において用いるコスト関数の分母項を、分母項の総合値にパルスの合成ベクトルのパワのみを加算して算出することにより、相関値の算出に必要な計算量を節約することができ、計算量をさらに削減することができる。
 なお、本実施の形態において、2本のパルス毎に探索を行ったが、これは従来例であるG.718と比較するためであり、3本のパルスまたは4本のパルス等の任意の本数のパルス毎に探索を行うことができる。
 また、本実施の形態の固定符号帳探索装置は、最初の段階と最後の段階とを従来の同時最適化探索(クローズドループ探索)としたが、必ずしもこの構成としなくてもよい。
 また、本実施の形態の固定符号帳探索装置は、最後の段階のパルス群の探索においては、前記総ビット数にかかわらず、同時最適化探索(クローズドループ探索)を用いてパルス位置探索を行うように、制御部で判断するようにしてもよい。
 また、本実施の形態において、本発明の逐次最適化探索をトラック0の探索(予備選択あり)、トラック1の探索(予備選択なし)及びトラック0の探索(予備選択あり)の3ループ構成としたが、本発明はこれに限らず、計算量は大きく削減することができるので、更にループ数を増やしてもよい。
 また、本実施の形態において、固定符号帳として代数的符号帳を用いたが、本発明はこれに限らず、代数的符号帳以外の他の符号帳に用いることができる。
 また、本実施の形態において、G.718を例に挙げて予備選択を用いた探索を行ったが、本発明はこれに限らず、少数パルスの探索を複数用いる任意の符号化に用いることができる。本発明は、パルスの位置探索に関する発明であり、G.718規格の他の構成に拠らないからである。
 また、本実施の形態において、符号化方式としてCELPを用いたが、本発明はこれに限らず、ベクトル量子化に利用出来るので、CELP以外の符号化方式にも適用することができる。例えば、MDCT(Modified Discrete Cosine Transform)またはQMF(Quadrature Mirror Filter)を利用したスペクトルの量子化にも利用でき、帯域拡張技術における低周波数領域のスペクトルの中から似たスペクトル形状を探索するアルゴリズムにも応用できる。
 また、本実施の形態において、パルス位置探索装置は、音声、音楽、あるいはこれらが混在する信号を対象とした符号化装置に応用した例を示したが、本発明はこれに限らず、音声認識、画像認識または画像符号化等に用いられる量子化にも応用することができる。本発明は、パルスの位置探索に関する発明であり、アルゴリズム全体の目的に依存しないからである。
 また、上記実施の形態では、本発明をハードウェアで構成する場合を例にとって説明したが、本発明はハードウェアとの連携においてソフトウェアでも実現することも可能である。
 また、上記実施の形態の説明に用いた各機能ブロックは、典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
 また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル/プロセッサを利用してもよい。
 さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
 2011年6月15日出願の特願2011-133750の日本出願に含まれる明細書、図面及び要約書の開示内容は、すべて本願に援用される。
 本発明は、複数のパルスの位置を探索するパルス位置探索装置、あるいは、符号帳を構成する複数のパルスの位置を探索する符号帳探索装置に好適であり、更には音声符号化装置に適用可能である。
 400、600 パルス位置探索装置
 401、601 第1探索部
 402、602 第2探索部
 403、603 第3探索部
 500 固定符号帳探索装置
 501 前処理部
 502 制御部
 503 多重ループ探索部
 504 パルス列符号化部
 

Claims (3)

  1.  ターゲット信号に所定の処理を行って得られたパラメータを入力して複数のパルスの位置の探索を行うパルス位置探索装置であって、
     前記パラメータを用いて、第1のパルスが配置される位置の第1候補群に対して第1の予備選択を行い、前記第1の予備選択の結果に対して第1の探索を行うことにより、前記第1のパルスが配置される第1の位置を求める第1探索手段と、
     前記第1の位置を用いて、第2のパルスが配置される位置の第2候補群の全ての位置候補に対して第2の探索を行うことにより、前記第2のパルスが配置される第2の位置を求める第2探索手段と、
     前記第2の位置を用いて、前記第1候補群に対して第2の予備選択を行い、前記第2の予備選択の結果に対して第3の探索を行うことにより、前記第1のパルスが配置される第3の位置を求め、前記第2の位置と前記第3の位置とを探索結果として出力する第3探索手段と、
     を具備するパルス位置探索装置。
  2.  前記第1探索部は、
     パルスの位置の最初の探索の際に、コスト関数の分母の総合値にパルスの合成ベクトルのパワのみを加算することにより前記コスト関数の分母項を作成する、
     請求項1記載のパルス位置探索装置。
  3.  ターゲット信号に所定の処理を行って得られたパラメータを入力して複数のパルスの位置の探索を行うパルス位置探索方法であって、
     前記パラメータを用いて、第1のパルスが配置される位置の第1候補群に対して第1の予備選択を行い、前記第1の予備選択の結果に対して第1の探索を行うことにより、前記第1のパルスが配置される第1の位置を求める第1探索ステップと、
     前記第1の位置を用いて、第2のパルスが配置される位置の第2候補群の全ての位置候補に対して第2の探索を行うことにより、前記第2のパルスが配置される第2の位置を求める第2探索ステップと、
     前記第2の位置を用いて、前記第1候補群に対して第2の予備選択を行い、前記第2の予備選択の結果に対して第3の探索を行うことにより、前記第1のパルスが配置される第3の位置を求め、前記第2の位置と前記第3の位置とを探索結果として出力する第3探索ステップと、を有するパルス位置探索方法。
PCT/JP2012/003674 2011-06-15 2012-06-05 パルス位置探索装置、符号帳探索装置、及びこれらの方法 WO2012172750A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201280002524.3A CN103098128B (zh) 2011-06-15 2012-06-05 脉冲位置搜索装置、码本搜索装置及其方法
JP2013500692A JP5981909B2 (ja) 2011-06-15 2012-06-05 パルス位置探索装置、符号帳探索装置、及びこれらの方法
US13/819,421 US9230553B2 (en) 2011-06-15 2012-06-05 Fixed codebook searching by closed-loop search using multiplexed loop

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011133750 2011-06-15
JP2011-133750 2011-06-15

Publications (1)

Publication Number Publication Date
WO2012172750A1 true WO2012172750A1 (ja) 2012-12-20

Family

ID=47356760

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/003674 WO2012172750A1 (ja) 2011-06-15 2012-06-05 パルス位置探索装置、符号帳探索装置、及びこれらの方法

Country Status (4)

Country Link
US (1) US9230553B2 (ja)
JP (1) JP5981909B2 (ja)
CN (1) CN103098128B (ja)
WO (1) WO2012172750A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101931414B (zh) * 2009-06-19 2013-04-24 华为技术有限公司 脉冲编码方法及装置、脉冲解码方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11119799A (ja) * 1997-10-14 1999-04-30 Matsushita Electric Ind Co Ltd 音声符号化方法および音声符号化装置
JP2001022400A (ja) * 1998-03-31 2001-01-26 Matsushita Electric Ind Co Ltd Celp型音声符号化装置及びcelp型音声符号化方法
JP2004252490A (ja) * 2004-06-10 2004-09-09 Nec Corp 音声符号化装置及び音声復号装置
WO2009016816A1 (ja) * 2007-07-27 2009-02-05 Panasonic Corporation 音声符号化装置および音声符号化方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001318698A (ja) * 2000-05-10 2001-11-16 Nec Corp 音声符号化装置及び音声復号化装置
US6728669B1 (en) * 2000-08-07 2004-04-27 Lucent Technologies Inc. Relative pulse position in celp vocoding
US6980948B2 (en) * 2000-09-15 2005-12-27 Mindspeed Technologies, Inc. System of dynamic pulse position tracks for pulse-like excitation in speech coding
US7860710B2 (en) * 2004-09-22 2010-12-28 Texas Instruments Incorporated Methods, devices and systems for improved codebook search for voice codecs
SG123639A1 (en) * 2004-12-31 2006-07-26 St Microelectronics Asia A system and method for supporting dual speech codecs
CN100412948C (zh) 2005-01-27 2008-08-20 广达电脑股份有限公司 语音编码器中搜寻语音讯号的编码向量的搜寻系统及方法
CN100530357C (zh) * 2007-07-11 2009-08-19 华为技术有限公司 固定码书搜索方法及搜索器
US8566106B2 (en) * 2007-09-11 2013-10-22 Voiceage Corporation Method and device for fast algebraic codebook search in speech and audio coding
CN100578620C (zh) * 2007-11-12 2010-01-06 华为技术有限公司 固定码书搜索方法及搜索器
CN101866650A (zh) 2009-04-20 2010-10-20 陆铁根 一种用于语音编码的固定码本搜索方法
CN102299760B (zh) * 2010-06-24 2014-03-12 华为技术有限公司 脉冲编解码方法及脉冲编解码器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11119799A (ja) * 1997-10-14 1999-04-30 Matsushita Electric Ind Co Ltd 音声符号化方法および音声符号化装置
JP2001022400A (ja) * 1998-03-31 2001-01-26 Matsushita Electric Ind Co Ltd Celp型音声符号化装置及びcelp型音声符号化方法
JP2004252490A (ja) * 2004-06-10 2004-09-09 Nec Corp 音声符号化装置及び音声復号装置
WO2009016816A1 (ja) * 2007-07-27 2009-02-05 Panasonic Corporation 音声符号化装置および音声符号化方法

Also Published As

Publication number Publication date
CN103098128B (zh) 2014-06-18
US9230553B2 (en) 2016-01-05
CN103098128A (zh) 2013-05-08
JP5981909B2 (ja) 2016-08-31
US20130166306A1 (en) 2013-06-27
JPWO2012172750A1 (ja) 2015-02-23

Similar Documents

Publication Publication Date Title
KR101414341B1 (ko) 부호화 장치 및 부호화 방법
CN101057275B (zh) 矢量变换装置以及矢量变换方法
JP4879748B2 (ja) 最適化された複合的符号化方法
JP5340261B2 (ja) ステレオ信号符号化装置、ステレオ信号復号装置およびこれらの方法
JPWO2008047795A1 (ja) ベクトル量子化装置、ベクトル逆量子化装置、およびこれらの方法
KR101414359B1 (ko) 부호화 장치 및 부호화 방법
WO2009125588A1 (ja) 符号化装置および符号化方法
JP5687706B2 (ja) 量子化装置及び量子化方法
JP6644848B2 (ja) ベクトル量子化装置、音声符号化装置、ベクトル量子化方法、及び音声符号化方法
JP5981909B2 (ja) パルス位置探索装置、符号帳探索装置、及びこれらの方法
JP5388849B2 (ja) 音声符号化装置および音声符号化方法
WO2008001866A1 (fr) dispositif de codage vocal et procédé de codage vocal
JP2013068847A (ja) 符号化方法及び符号化装置
JPH09204198A (ja) 適応コードブック探索方法
JP2013055417A (ja) 量子化装置及び量子化方法

Legal Events

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

Ref document number: 201280002524.3

Country of ref document: CN

ENP Entry into the national phase

Ref document number: 2013500692

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 12801193

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13819421

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12801193

Country of ref document: EP

Kind code of ref document: A1