WO2014030928A1 - Audio signal encoding method, audio signal decoding method, and apparatus using same - Google Patents

Audio signal encoding method, audio signal decoding method, and apparatus using same Download PDF

Info

Publication number
WO2014030928A1
WO2014030928A1 PCT/KR2013/007505 KR2013007505W WO2014030928A1 WO 2014030928 A1 WO2014030928 A1 WO 2014030928A1 KR 2013007505 W KR2013007505 W KR 2013007505W WO 2014030928 A1 WO2014030928 A1 WO 2014030928A1
Authority
WO
WIPO (PCT)
Prior art keywords
track
pulses
pulse
tracks
encoding target
Prior art date
Application number
PCT/KR2013/007505
Other languages
French (fr)
Korean (ko)
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 엘지전자 주식회사
Publication of WO2014030928A1 publication Critical patent/WO2014030928A1/en

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
    • 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
    • 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/0212Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation

Definitions

  • the present invention relates to encoding and decoding of an audio signal, and more particularly, to a method and apparatus for searching an encoding / decoding target of an audio signal.
  • audio signals include signals of various frequencies, and the human audible frequency is in the range of about 200 Hz to 3 kHz, whereas the average human voice is in the range of about 200 Hz to 3 kHz.
  • the input audio signal may include not only a band in which a human voice exists but also a component of a high frequency region of 7 kHz or more, where a human voice is hard to exist.
  • SWB wide band
  • a coding scheme suitable for NB (sampling rate ⁇ ⁇ 8 kHz) or a coding scheme suitable for WB (sampling rate ⁇ ⁇ 16 kHz) is applied to a signal of SWB (sampling rate ⁇ 32 kHz).
  • SWB sampling rate
  • An object of the present invention is to provide a method and apparatus for band extension of a voice and audio encoder in a digital communication environment.
  • An object of the present invention is to provide a method and apparatus for encoding / decoding audio and audio signals having backward compatibility in decoding a bitstream encoded in a sine mode.
  • An object of the present invention is to provide a pulse search method and apparatus applicable to both CELP mode and sine mode.
  • the present invention relates to encoding and decoding of an audio signal.
  • the encoding according to the present invention determines the importance of tracks constituting a track pair according to track-specific energy of an audio signal, and searches for and encodes pulses from the track of high importance. Determining a target pulse and quantizing information of the determined encoding target pulse.
  • the encoder determines the importance of the tracks constituting the track pair according to the track-specific energy of the audio signal, determines the encoding target pulse by searching the pulses from the high importance track, and determines the information of the determined encoding target pulse. By quantizing the audio signal can be encoded.
  • Decoding according to the present invention also includes generating pulses for the audio signal from the tracks constituting the track pair based on inverse quantization and reconstructing the audio signal based on the pulses. At this time, the generation of the pulse may be performed for each track in a predetermined order.
  • the decoder may generate pulses for the audio signal from the tracks constituting the track pair and restore the audio signal based on the pulses based on inverse quantization.
  • the decoder may generate a pulse for each track.
  • the dense pulses can be efficiently retrieved and transmitted / stored without using additional bits.
  • bitstream encoded according to the existing sine wave mode can be decoded, backward compatibility is guaranteed.
  • the dense pulses can be effectively searched without using additional bits.
  • FIG. 1 schematically illustrates an example of an encoder configuration that may be used when an ultra-wideband signal is processed by a band extension method.
  • FIG. 2 is a diagram for explaining an example of a configuration of an encoder based on the configuration of a core encoder.
  • FIG. 3 schematically illustrates an example of a decoder configuration that may be used when an ultra-wideband signal is processed by a band extension method.
  • FIG. 4 is a diagram illustrating an example of a decoder configuration based on the configuration of a core decoder.
  • FIG. 5 is a diagram schematically illustrating a method of encoding a sine wave in a sine mode.
  • FIG. 6 is a diagram schematically illustrating track information encoded / decoded in a layer 6 to which a sine mode is applied.
  • FIG. 7 schematically illustrates an example of track information regarding a sine wave mode in layer 6, which is a first SWB layer.
  • FIG. 8 is a diagram schematically illustrating an example in which two tracks are paired in the case of two steps.
  • FIG. 9 is a diagram schematically illustrating an example in which three tracks are paired in the case of three steps.
  • FIG. 10 is a flowchart schematically illustrating a sine wave search method applied to each layer according to an embodiment of the present invention.
  • FIG. 11 is a diagram schematically illustrating a case where an independent search is performed for each track without considering the characteristics of track pairs.
  • FIG. 12 is a diagram schematically illustrating an example of a method of performing a search in consideration of a search result of another track among tracks of a track pair according to the present invention.
  • FIG. 13 is a view schematically illustrating another example of a method of performing a search in consideration of a search result of another track among tracks of a track pair according to the present invention.
  • FIG. 14 is a view schematically illustrating another example of a method of performing a search in consideration of a search result of another track among tracks of a track pair according to the present invention.
  • FIG. 16 is a block diagram schematically illustrating an example of an encoder to which the methods of FIGS. 14 and 16 are applied.
  • 17 is a flowchart schematically illustrating an example of a method of searching for a pulse of a track according to frame energy or tonality according to the present invention.
  • FIG. 18 is a flowchart schematically illustrating a method for searching / selecting a pulse based on a CELP mode in the present invention.
  • FIG. 19 is a flowchart schematically illustrating an example of an audio signal encoding method according to the present invention.
  • FIG. 20 is a flowchart schematically illustrating an example of an audio signal decoding method according to the present invention.
  • first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
  • Components shown in the embodiments of the present invention are shown independently to represent different characteristic functions, and do not mean that each component is made of separate hardware or one software component unit.
  • Each component is included in a list of components for convenience of description, and at least two of the components may be combined to form one component, or one component may be divided into a plurality of components to perform a function.
  • NB narrow bands
  • WB wide bands
  • SWBs super wide bands
  • a speech and audio encoding / decoding technique a Code Excited Linear Prediction (CELP) mode, a sinusoidal mode, or the like may be used.
  • CELP Code Excited Linear Prediction
  • the coder may be divided into a baseline coder and an enhancement layer.
  • the enhancement layer may be further divided into a lower band enhancement layer (LBE) layer, a bandwidth extension (BWE) layer, and a higher band enhancement layer (HBE) layer.
  • LBE lower band enhancement layer
  • BWE bandwidth extension
  • HBE higher band enhancement layer
  • the LBE layer improves low-band sound quality by encoding / decoding a difference signal, that is, an excitation signal, between a sound source processed by a core encoder / core decoder and an original sound. Since the high band signal has similarity with the low band signal, it is possible to recover the high band signal at a low bit rate through the high band extension method using the low band.
  • a method of scaling and processing a SWB signal may be considered.
  • the method of band extending the SWB signal may operate in the Modified Discrete Cosine Transform (MDCT) domain.
  • MDCT Modified Discrete Cosine Transform
  • the enhancement layers may be handled by being divided into a generic mode and a sinusoidal mode. For example, when three enhancement layers are used, the first enhancement layer may be processed in generic mode and sign mode, and the second and third enhancement layers may be processed in sign mode.
  • a sinusoid includes both a sine wave and a cosine wave in which the sinusoid is shifted in phase by half. Therefore, in the present invention, a sinusoid may mean a sine wave or a cosine wave. If the input sine wave is a cosine wave, it may be converted into a sine wave or cosine wave in the encoding / decoding process, and the conversion depends on the conversion method of the input signal. Even when the input sine wave is a sine wave, it may be converted to a cosine wave or a sine wave in the encoding / decoding process, and the conversion depends on the conversion method of the input signal.
  • coding is based on adaptive replication of the coded wideband signal subbands.
  • sine mode coding a sine wave is added to high frequency contents.
  • the sine mode is an efficient encoding technique for a signal having a strong periodicity or a signal having a tone component, and may encode sign, amplitude, and position information for each sine wave component.
  • a predetermined number for example, 10 MDCT coefficients may be encoded for each layer.
  • FIG. 1 schematically illustrates an example of an encoder configuration that may be used when an ultra-wideband signal is processed by a band extension method.
  • an encoder structure of a G.718 Annex B scalable extension to which a sine mode is applied will be described as an example.
  • the encoder of FIG. 1 is composed of a generic mode and a sign mode for SWB extension, and when an additional bit is allocated, the encoder mode can be used by extending the sign mode.
  • the encoder 100 includes a down sampling unit 105, a core encoder 110, an MDCT unit 115, a tonality estimation unit, a tonality determination unit 125, and a SWB ( Super Wide Band) encoding unit 130.
  • the SWB encoder 130 includes a generic mode unit 135, a sine wave mode unit 140, and additional sine wave units 145 and 150.
  • the down sampling unit 105 down-samples the input signal to generate a WB signal that can be processed by a core encoder.
  • SWB encoding is performed in the MDCT domain.
  • the core encoder 110 encodes the WB signal to MDCT the synthesized WB signal and outputs MDCT coefficients.
  • MDCT Modified Discrete Cosine Transform
  • Input signal in the windowed time domain Is a symmetric window function.
  • the MDCT unit 115 MDCTs the SWB signal, and the tonality estimator 120 estimates the tonality of the MDCT signal.
  • the choice between generic mode and sine mode is based on tonality. For example, when using three layers in the scalable SWB band extension method, the first layer, that is, layer 6mo (layer 7mo) may be selected based on the tonality estimate.
  • the generic mode and / or the sine mode may be used in the layer 6mo of the three layers, and the sine mode may be used in the upper layer (layer 7mo, layer 8mo).
  • the tonality estimation may be performed based on correlation analysis between spectral peaks in a current frame and a past frame.
  • the tonality estimator 120 outputs the tonality estimate to the tonality determiner 125.
  • the tonality determiner 125 determines whether the MDCT-converted signal is tonal based on the degree of tonality, and transmits it to the SWB encoder 130. For example, the tonality determination unit 125 compares the tonality estimation value input from the tonality estimator 120 with a predetermined reference value to determine whether the MDCT-converted signal is a tonal signal or a non-tonal signal.
  • the SWB encoder 130 processes the MDCT coefficients of the MDCT SWB signal.
  • the SWB encoder 130 may process the MDCT coefficients of the SWB signal by using the MDCT coefficients of the synthesized WB signal input through the core encoder 110.
  • the signal is transmitted to the generic mode unit 135, and when it is determined to be tonal, the signal is transmitted to the sine wave mode unit 140. do.
  • the generic mode may be used when it is determined that the input frame is not tonal.
  • the low frequency spectrum is directly transposed to high frequencies and parameterized to follow the envelope of the original high frequency. At this time, the parameterization can be made more coarsely than the case of the original high frequency.
  • high frequency content can be coded at a low bit rate.
  • the high frequency band is divided into sub-bands, and according to a predetermined similarity criterion, the one that is most similarly matched among coded and block normalized broadband contents is selected.
  • the selected contents are scaled and output as synthesized high frequency content.
  • the sinusoidal mode unit 140 may be used when the input frame is tonal. In sine mode, a finite set of sinusoidal components is added to the high frequency (HF) spectrum to generate a SWB signal. At this time, the HF spectrum is generated using the MDCT coefficients of the SW synthesis signal.
  • HF high frequency
  • the additional sine wave units 145 and 150 add additional sine waves to the signal output in the generic mode and the signal output in the sine mode to improve the generated signal. For example, when additional bits are allocated, the additional sine wave units 145 and 150 determine an additional sine wave (pulse) to transmit and extend the sine mode to quantize to improve the signal.
  • additional sine wave pulse
  • outputs of the core encoder 110, the tonality determination unit 125, the generic mode unit 135, the sine wave mode unit 140, and the additional sine wave units 145 and 150 are converted into bit streams. May be sent to the decoder.
  • FIG. 2 is a diagram for explaining an example of a configuration of an encoder based on the configuration of a core encoder.
  • the encoder 200 includes a bandwidth checker 205, a sampling converter 210, an MDCT converter 215, a core encoder 220, an important MDCT coefficient extractor and a quantizer 265. It includes.
  • the bandwidth checking unit 205 may determine whether the input signal (audio signal) is a narrow band (NB) signal, a wide band (WB) signal, or a super wide band (SWB) signal.
  • the NB signal may have a sampling rate of 8 kHz
  • the WB signal may have a sampling rate of 16 kHz
  • the SWB signal may have a sampling rate of 32 kHz.
  • the bandwidth checking unit 205 may convert an input signal into a frequency domain to determine a component and a zone of upper band bins of the spectrum.
  • the encoder 200 may not include the bandwidth checking unit 205 when the input signal is fixed, for example, when the input signal is fixed to NB.
  • the bandwidth checking unit 205 determines the input signal and outputs the NB or WB signal to the sampling converter 210, and outputs the SWB signal to the sampling converter 210 or the MDCT converter 215.
  • the sampling converter 210 performs sampling for converting an input signal into a WB signal input to the core encoder 220.
  • the sampling converter 210 up-samples the input signal to be a signal having a sampling rate of 12.8 kHz when the input signal is an NB signal, and the sampling rate is 12.8 kHz when the input signal is a WB signal.
  • the down-sampling to the signal can produce a 12.8kHz low-band signal.
  • the sampling converter 210 downsamples the sampling rate to be 12.8 kHz to generate an input signal of the core encoder 220.
  • the core encoder 220 includes a preprocessor 225, a linear prediction analyzer 230, a quantizer 235, a CELP mode performer 240, a quantizer 245, an inverse quantizer 250, synthesis and post-processing.
  • the preprocessor 225 may filter low frequency components among the lower band signals input to the core encoder 220 and transmit only a signal of a desired band to the linear prediction analyzer.
  • the linear prediction analyzer 230 may extract a linear prediction coefficient (LPC) from the signal processed by the preprocessor 225.
  • LPC linear prediction coefficient
  • the linear prediction analyzer 230 may extract the 16th linear prediction coefficient from the input signal and transfer the extracted 16th linear prediction coefficient to the quantization unit 235.
  • the quantization unit 235 quantizes the linear prediction coefficients transmitted from the linear prediction analyzer 230.
  • the linear prediction residual signal is generated by filtering the original lower band signal using the quantized linear prediction coefficients in the lower band.
  • the linear prediction residual signal generated by the quantization unit 235 is input to the CELP mode performing unit 240.
  • the CELP mode performing unit 240 detects a pitch of the input linear prediction residual signal by using a self-correlation function.
  • a first open loop pitch search method a first closed loop pitch search method, and Abs (Analysis by Synthesis) may be used.
  • the CELP mode performing unit 240 may extract the adaptive codebook index and the gain information based on the detected pitch information.
  • the CELP mode performing unit 240 may extract the index and the gain of the fixed codebook based on the remaining components limiting the contribution of the adaptive codebook in the linear prediction residual signal.
  • the CELP mode performing unit 240 quantizes the parameters (pitch, adaptive codebook index and gain, fixed codebook index and gain) related to the linear prediction residual signal extracted through the pitch search, the adaptive codebook search, and the fixed codebook search. To pass on.
  • the quantizer 245 quantizes the parameters transmitted from the CELP mode performer 240.
  • Parameters related to the quantized linear prediction residual signal in the quantization unit 245 may be output as a bit stream and transmitted to the decoder.
  • the parameters related to the quantized linear prediction residual signal may be transferred to the inverse quantizer 250.
  • the inverse quantization unit 250 generates an excitation signal reconstructed using the extracted and quantized parameters through the CELP mode.
  • the generated excitation signal is transmitted to the synthesis and post processor 255.
  • the synthesis and post-processing unit 255 synthesizes the reconstructed excitation signal and the quantized linear prediction coefficient, generates a synthesized signal of 12.8 kHz, and restores the 16 kHz WB signal through upsampling.
  • the MDCT converter 260 converts the restored WB signal by a modified disc cosine transform (MDCT) method.
  • MDCT modified disc cosine transform
  • the MDCT transformed WB signal is output to the important MDCT coefficient extraction and quantization unit 265.
  • the important MDCT coefficient extraction and quantization unit 265 corresponds to the SWB coding unit shown in FIG.
  • the important MDCT coefficient extraction and quantization unit 265 receives the MDCT transform coefficients for the SWB from the MDCT transform unit 215 and the MDCT transform coefficients for the synthesized WB from the MDCT transform unit 260.
  • the important MDCT coefficient extraction and quantization unit 265 extracts a transform coefficient to be quantized by using the input MDCT transform coefficients.
  • the details of the important MDCT coefficient extraction and quantization unit 265 extracting MDCT coefficients are the same as those of the SWB encoder of FIG. 1.
  • the important MDCT coefficient extraction and quantization unit 265 quantizes the extracted MDCT coefficients, outputs them as a bitstream, and transmits them to the decoder.
  • FIG. 3 schematically illustrates an example of a decoder configuration that may be used when an ultra-wideband signal is processed by a band extension method.
  • the decoder 300 includes a core decoder 305, a first post processor 310, an up sampling unit 315, a SWB decoder 320, an IMDCT unit 350, and a second post processor. 355, and an adder 360.
  • the SWB decoder 320 includes a generic mode unit 325, a sinusoidal wave unit 330, and additional sinusoidal wave units 335 and 340.
  • the core encoder 305, the generic mode unit 325, the sine wave unit 330, and the additional sine wave unit 335 may receive target information to be processed from the bit stream and / or auxiliary information for processing. Can be.
  • the core decoder 305 decodes the wideband signal to synthesize the WB signal.
  • the synthesized WB signal is input to the first post processor 310, and the MDCT transform coefficients of the synthesized WB signal are input to the SWB decoder 320.
  • the first post processor 310 improves the synthesized WB signal in the time domain.
  • the upsample 315 upsamples the WB signal to form a SWB signal.
  • the SWB decoder 320 decodes the MDCT of the SWB signal input from the bitstream.
  • the MDCT coefficients of the synthesized WB signal (Synthesized Super Wide Band Signal) input from the core decoder 305 may be used.
  • the decoding of the SWB signal is mainly performed in the MDCT domain.
  • the generic mode unit 325 and the sine wave mode unit 330 decode the first layer of the enhancement layer, and the upper layer may be decoded by the additional sine wave units 335 and 340.
  • the SWB decoder 320 performs a decoding process in the reverse order of the encoding process, corresponding to the encoding process described by the SWB encoder. In this case, the SWB decoder 320 determines whether the input information is tonal from the bitstream, and in the case of the tonal, the SWB decoder 320 or the sine wave mode unit 330 and the additional sine wave unit 340. If the decoding process is not performed, and not tonal, the decoding process may be performed by the generic mode unit 325 or the generic mode unit 325 and the additional sine wave unit 335.
  • the generic mode unit 325 configures the HF signal by adaptive sub-band replica. Two sinusoidal components are then added to the spectrum of the first SWB enhancement layer. Generic mode and sine mode utilize similar enhancement layers that underlie sine mode coding.
  • the sine wave mode unit 330 generates a high frequency (HF) signal based on a finite set of sine wave components.
  • the additional sine wave units 335 and 340 add sine waves to the upper SWB layer and improve the quality of the high band content.
  • the IMDCT unit 350 performs an inverse MDCT to output a signal in the time domain, and the second post-processing unit 355 improves the inverse MDCT processed signal in the time domain.
  • the adder 360 adds the SWB signal decoded and upsampled by the core decoder and the SWB signal output from the SWB decoder 320 and outputs a reconstructed signal.
  • the decoder 400 includes a core decoder 410, a post-processing / sampling transformer 450, an inverse quantizer 460, an upper MDCT coefficient generator 470, and an MDCT inverse transformer 480. And a post-processing filtering unit 490.
  • the bitstream including the NB signal or WB signal transmitted from the encoder is input to the core decoder 410.
  • the core decoder 410 includes an inverse transformer 420, a linear prediction synthesizer 430, and an MDCT transformer 440.
  • the inverse transform unit 420 may inverse transform the audio information encoded in the CELP mode and restore the excitation signal based on a parameter received from the encoder.
  • the inverse transform unit 420 may transmit the reconstructed excitation signal to the linear prediction synthesis unit 430.
  • the linear prediction synthesizer 430 may reconstruct a lower band signal (NB signal, WB signal, etc.) using the excitation signal transmitted from the inverse transformer 420 and the linear prediction coefficient transmitted from the encoder.
  • the lower band signal (12.8 kHz) reconstructed by the linear prediction synthesis unit 430 may be downsampled to NB or upsampled to WB.
  • the WB signal is output to the post-processing / sampling converter 450 or to the MDCT converter 440.
  • the post-processing / sampling converter 450 may up-sample the NB signal or the WB signal to generate a synthesized signal for use in restoring the SWB signal.
  • the MDCT converter 440 MDCT transforms the restored lower band signal and transmits the MDCT coefficient generator 470.
  • the inverse quantizer 460 and the upper MDCT coefficient generator 470 correspond to the SWB decoder of the decoder illustrated in FIG. 3.
  • the dequantizer 460 receives the SWB signal and the parameter quantized through the bitstream from the encoder and dequantizes the received information.
  • the dequantized SWB signal and the parameter are transmitted to the upper MDCT coefficient generator 470.
  • the upper MDCT coefficient generator 470 receives the MDCT coefficients for the synthesized NB signal or the WB signal from the core decoder 410, and receives necessary parameters from the bitstream for the SWB signal to dequantize the SWB. Generate MDCT coefficients for the signal. As shown in FIG. 3, the upper MDCT coefficient generator 470 may apply the generic mode or the sine mode according to whether the signal is tonal, and may apply an additional sine wave to the signal of the enhancement layer.
  • the MDCT inverse transform unit 480 restores a signal through an inverse transform on the generated MDCT coefficients.
  • the post processing filter 490 may apply filtering on the restored signal. Filtering allows for post-processing such as reducing quantization errors, highlighting peaks and killing valleys.
  • the SWB signal may be restored by synthesizing the signal restored by the post-processing filter 490 and the signal restored by the post-processing / sampling converter 450.
  • the band extension method passes through a core encoder and an enhancement layer processor (SWB encoder) to encode a SWB input signal.
  • SWB encoder an enhancement layer processor
  • SWB decoder an enhancement layer processor
  • the SWB signal is downsampled at a sampling rate corresponding to the WB and encoded by a WB encoder (core encoder).
  • the encoded WB signal is synthesized and then MDCT transformed, and the MDCT coefficients for the WB may be input to the SWB encoder.
  • the SWB input signal is encoded by being divided into a generic mode and a sine mode according to the degree of tonality in the MDCT coefficient domain after MDCT conversion.
  • encoding for an enhancement layer may be further performed using an additional sine wave.
  • Signal information corresponding to WB among SWB signals is decoded by a WB decoder (core decoder).
  • the decoded WB signal is synthesized and then MDCT-converted so that the MDCT coefficients for the WB can be input to the SWB decoder.
  • the encoded SWB signal is decoded by being divided into a generic mode and a sine mode corresponding to the encoded mode, and further, decoding of an enhancement layer may be performed using an additional sine wave.
  • the inverted SWB signal and the WB signal may be synthesized through additional post-processing such as upsampling and then restored to the SWB signal.
  • the sine mode does not encode all sine waves constituting the audio signal (also called sine wave components constituting the audio signal), but encodes only sine waves having a high energy among sine waves constituting the audio signal. Therefore, unlike when encoding all sine waves, in the sine mode, the encoder encodes the selected sine wave as well as the amplitude information and the sign information and transmits the position information of the selected sine wave to the decoder.
  • the sine waves constituting the audio signal mean MDCT coefficients X (k) obtained by MDCT transforming the respective sine waves constituting the audio signal. Therefore, when describing the characteristics of the sine wave in the sine mode in the present specification, the magnitude of the sine wave is the magnitude (C) of the MDCT coefficient obtained by MDCT conversion of the sine wave component, the sign of the sine wave component, Note the position (pos).
  • the position of the sine wave is a position in the frequency domain, and may be a wave number k specifying each sine wave constituting the audio signal, or an index corresponding to the wave number k.
  • 'sine wave' or 'pulse' may mean an MDCT coefficient of each sine wave component constituting the input audio signal.
  • the position of the sine wave is described by specifying the wave number of the sine wave.
  • this is for convenience of description and the present invention is not limited thereto, and the contents of the present invention may be equally applied even when using separate information for specifying the positions of the sine waves in the frequency domain as the position of the sine wave.
  • the sine mode is not suitable for encoding all sine waves because it needs to transmit position information of the sine wave, but is effective when a small number of sine waves should be used to guarantee sound quality or a low bit rate should be transmitted. Therefore, it can be used for a band extension technique or a low bit rate audio codec.
  • FIG. 5 is a diagram schematically illustrating a method of encoding a sine wave in a sine mode.
  • sine waves constituting the input audio signal are located corresponding to the wave number k of each sine wave.
  • An upward sine wave represents a positive MDCT coefficient
  • a downward sine wave represents a negative MDCT coefficient.
  • the magnitude of the sine wave (MDCT coefficient) corresponds to the length of the sine wave.
  • FIG. 5 illustrates a case where a positive sine wave having a size 126 is positioned at position 4 and a negative sine wave having a size 18 is positioned at position 74 as an example.
  • magnitude information, sign information, and position information of a sine wave are transmitted.
  • a predetermined number of sine waves may be searched and quantized for each track.
  • FIG. 6 is a diagram schematically illustrating track information encoded / decoded in a layer 6 to which a sine mode is applied.
  • two sine waves are searched and quantized for tracks 1 to 3 of six tracks (tracks 0 to 5), and one sine wave for track 4 and track 5 is quantized. Is searched and quantized. The search can be performed for each track.
  • S_i_j (i, j is an integer of 0 or more) means a j-th sine wave of the i-th track segment.
  • the search may proceed in the order of track 0 ⁇ track 1 ⁇ track 2 ⁇ track 3 ⁇ track 4 ⁇ track 5.
  • a total of 10 sine waves in layer 6 may be searched in the order of S_0_1 ⁇ S_0_2 ⁇ S_1_1 ⁇ S_1_2 ⁇ S_2_1 ⁇ S_2_2 ⁇ S_3_1 ⁇ S_3_2 ⁇ S_4_1 ⁇ S_5_1.
  • a baseline coder and an enhancement layer may be included in order to encode a 32 KHz SWB input signal.
  • downsampling may be performed at 16 kHz, and the downsampled signal may be encoded by a WB encoder. Since the encoded WB signal is used for encoding in the enhancement layer, it is converted to MDCT after synthesis, and the WB MDCT coefficient is input to the enhancement layer.
  • the SWB input signal may be converted into MDCT and then divided into two modes (general mode and sine mode) according to the degree of tonality in the MDCT coefficient domain.
  • the sinusoidal mode may be processed in parallel with the generic mode in the case of layer 6.
  • a frame determined to be tonal it may be encoded in a sine mode.
  • 10 pulses may be extracted from an HF (High Frequency) signal and encoded. For example, the first four pulses are extracted in the band corresponding to 7000-8600 Hz, the next four pulses are extracted in the 8600-10200 Hz band, and the last two pulses are respectively the 10200-11800 Hz band and 11800-12600 Hz. Extracted from the band.
  • HF High Frequency
  • the position of the pulse is quantized / coded and transmitted.
  • the position of the extracted pulse is the original signal M 32 (k) and the HF composite signal. It can be determined using the difference value of.
  • M is the magnitude of the MDCT coefficient
  • k is the position of the pulse (sine wave) represents a wave number (wave number).
  • M 32 (k) represents the pulse magnitude at position k for the SWB up to 32 KHz.
  • Ten pulses (positions of pulses) to be encoded may be determined through Equation 1. Specifically, through Equation 2, the original signal M 32 (k) and the HF composite signal The ten pulses with the largest difference value can be determined.
  • a signal having a large position between the original signal and the HF synthesized signal may be determined as a signal to be encoded in the current layer.
  • the pulse search process using Equation 2 is a process of finding the maximum value of the original signal M 32 (k) .
  • D (k) the entire band may be divided into five subbands to make D j (k) for each subband.
  • the pulse number N j of each subband may be predetermined.
  • Dj (k) is the difference between the original signal and the HF synthesized signal at k of subband j
  • N j is the number of pulses searched in subband j .
  • Table 1 schematically illustrates the process of finding the N j largest D values (the largest original signal in the case of layer 6) for each subband.
  • the maximum value N can be retrieved and the retrieved N value can be stored in an array called input_data.
  • FIG. 7 schematically illustrates an example of track information regarding a sine wave mode in layer 6, which is a first SWB layer.
  • each sine wave (MDCT coefficient) constituting the audio signal in the frequency domain is displayed at a position corresponding to the wave number of each sine wave.
  • Track 0 is located in the frequency range of 280 to 342, and consists of sine waves with a spacing of two (2 steps, 2 steps) in the position unit (for example, wave number or frequency).
  • Track 1 is located in the frequency range of 281 to 343, and consists of sine waves with an interval of two.
  • Track 2 is located in the frequency range of 344 ⁇ 406, and consists of sine waves spaced by two.
  • Track 3 is located in the frequency range of 345 ⁇ 407, and consists of sine waves with intervals of two.
  • Track 4 is located in the frequency range of 408 ⁇ 471, and consists of sine waves having an interval of one step (1 step, 1 step).
  • Track 5 is located in the frequency range of 472 ⁇ 503, and consists of sine waves with intervals of one.
  • a sine wave (pulse) satisfying a predetermined condition is searched by a predetermined number for each track according to the track order, and quantized.
  • quantizing a sine wave (pulse) when sine wave mode is applied may include quantizing a MDCT coefficient of a sine wave (pulse).
  • the MDCT coefficient may mean the magnitude of a sine wave at a specific frequency.
  • quantizing a sinusoid includes (1) quantizing the magnitude of the sine wave (absolute value of the MDCT coefficients), (2) quantizing the frequency of the sine wave (position of the MDCT coefficients), and (3) Quantizing the phase (Sign) of the MDCT coefficients.
  • a pulse may mean an MDCT coefficient that is a magnitude of a sine wave. It may also be referred to as a maximum sinusoid or sinusoidal maximum in that a pulse may mean a sinusoidal peak at a particular frequency.
  • staging such as 'maximum sine wave (pulse)' or 'pulse (maximum sine wave)' indicates that the maximum sine wave and the pulse may have the same meaning. It does not mean that pulses can mean different things.
  • quantizing a pulse herein includes (1) quantizing the magnitude of the pulse (MDCT coefficient) and (2) quantizing the position of the pulse. In this case, quantizing the magnitude of the pulse may include quantizing the absolute value of the pulse and quantizing the sign of the pulse.
  • quantizing a sine wave means that the sine wave is quantized in that the sine wave is encoded so that the sine wave can be recovered after selecting and quantizing a specific pulse among the pulses (MDCT coefficients) constituting the sine wave. It may be used as.
  • the sine wave may mean a signal of each frequency in the sine wave mode
  • the pulse may mean a signal at a specific position in the CELP mode.
  • 'sine wave' excludes 'pulse', or 'pulse' does not exclude 'sine wave'.
  • layer 6 two pulses are searched and quantized in each of four tracks from track 0 to track 3 according to bit allocation, and one pulse is searched and quantized in track 4 and track 5, respectively.
  • the search in each track can be said to find the largest pulse in a track by the number allocated for each track.
  • Table 2 shows the number of sine waves (pulses) extracted by the search for each track in the sine mode, the starting position of the track (starting position of the search), the interval size of each pulse position, and the number of pulses for each track. Indicates.
  • the magnitude c j (l) of the extracted pulse may be encoded as shown in Equation 3.
  • Equation 3 the magnitude value is encoded, but the sign information is lost. Therefore, the sign value of the pulse may be separately encoded by the following Equation 4.
  • pos j (0), Sign_sin j (0), and c j (0) indicate the position, sign, and magnitude of a large pulse
  • pos j (1), Sign_sin j (1), and c j (1 ) Denotes the position, symbol, and magnitude of the small pulse.
  • the encoding is performed by using the original signal as a target signal in Equation 2, but in the case of an upper layer of layer 6, for example, in the case of Layer 7 or Layer 8, as shown in Equation 2, the original signal of the previous layer
  • the encoding is performed by using the difference between the synthesized signal and the higher layer synthesized signal as a target signal.
  • an uncoded signal may be encoded and transmitted in a lower layer.
  • the encoding method performed on the upper layer of layer 6 is also similar to the encoding method described above with respect to layer 6.
  • an additional 10 pulses may be extracted from the HF (7 to 14 kHz) signal.
  • a frequency band to be encoded may be set differently according to a generic mode and a sine mode.
  • HF signal from generic mode Is divided into eight subbands and energy is calculated for each subband.
  • Each subband is composed of 32 MDCT coefficients as shown in Table 2, and the energy calculation method in each subband is shown in Equation 5.
  • Equation 5 Is the HF signal resynthesized via generic mode.
  • eight subbands may be arranged in order of energy magnitude from the subband having the highest energy by comparing the energy of each subband with each other. Five subbands with the highest energy among the aligned subbands are selected and five pulses are extracted for each subband according to the sine wave coding method described in Layer 6. At this time, the position of the track defined in the sine wave coding method depends on the energy characteristic of the HF signal for each frame.
  • HF signal output in sine mode A total of 10 pulses extracted from are extracted through two processes, four extraction and six extraction. Four pulses may be extracted at positions corresponding to the 9400 to 11000 Hz band, and six pulses may be extracted at positions corresponding to the 11000 to 13400 Hz band.
  • Table 4 shows information for each track in the sine mode (sign mode frame) of layer 7.
  • Table 4 shows the number of sine waves extracted by the search for each track of the layer 7 as the encoding target, the start position of the track (start position of the search), the interval size of the pulse position of each track, and the number of pulses.
  • the remaining four of the first 10 pulses can be extracted two by two tracks, and the band from which the pulses are extracted is 12150 to 13750 Hz.
  • the extraction of the remaining 10 pulses out of 20 pulses is similar.
  • the first six of the ten pulses can be extracted from three tracks, two per track, and the band from which the pulses are extracted is 8600 to 11000 Hz.
  • the remaining four pulses can be extracted two by two from two tracks, and the band from which the pulses are extracted is 11000-12600 Hz.
  • Table 5 describes an example of a sine wave track structure in the generic mode frame of Layer 8.
  • sine mode sine mode frame
  • two different processes of extracting 10 pulses are performed.
  • the remaining four pulses of the first ten pulses can be extracted two by two tracks, and the band from which the pulses are extracted is 11000 to 12600 Hz.
  • the extraction of the remaining 10 pulses out of 20 pulses is similar.
  • the first six of the ten pulses can be extracted per track from two tracks on three tracks, with the band being extracted from 94000 to 11000 Hz.
  • the remaining four pulses can be extracted two by two from two tracks, and the band from which the pulses are extracted is from 11000 to 13400 Hz.
  • Table 6 shows an example of a sinusoidal track structure for a first set of extracting the first 10 pulses of 20 pulses in a sine mode frame of Layer 8.
  • Table 7 shows an example of a sinusoidal track structure for a second set of extracting the second 10 of 20 pulses in a sine mode frame of Layer 8.
  • each track consists of 2 steps and 3 steps.
  • FIG. 8 is a diagram schematically illustrating an example in which two tracks are paired in the case of two steps. Referring to FIG. 8, when track 0 and track 1 in two steps are paired, it can be seen that pulse positions of both tracks are adjacent to each other.
  • FIG. 9 is a diagram schematically illustrating an example in which three tracks are paired in the case of three steps. Referring to FIG. 9, when tracks 2, 3, and 4 of 3 steps are paired, it can be seen that pulse positions of each track are adjacent to each other.
  • the search is performed independently from each track while sequentially searching from the first track to the last track.
  • the search for each track is done independently, but using conventional methods, even for adjacent tracks (for paired tracks), The tracks are searched independently without considering the characteristics of each track.
  • the sine waves searched in the first track do not affect the search of the second track paired with the first track.
  • the sine waves found in the first track do not affect the sine wave search in the second track, and the sine waves found in the second track do not affect the sine wave search in the third track.
  • the present invention can be applied not only to layer 6 which is a base layer of SWB, but also to layer 7 and layer 8 which are enhancement layers of layer 6.
  • layer 6 which is a base layer of SWB
  • layer 7 and layer 8 which are enhancement layers of layer 6.
  • MDCT coefficients sine waves or pulses
  • Equation 2 So far, an example based on an absolute value of Equation 2 has been described as a method of searching for a signal.
  • the present invention is not limited thereto, and is based on a convolution value of an impulse response of, for example, a linear prediction coefficient (LPC) synthesis filter. Or search based on Mean Square Error (MSE). A method based on convolution and a method based on MSE will be described later.
  • LPC linear prediction coefficient
  • MSE Mean Square Error
  • FIG. 10 is a flowchart schematically illustrating a sinusoid search method applied to each layer according to an example of the present invention.
  • the example of FIG. 10 may be performed by the SWB encoder of FIG. 1.
  • some or all of the steps in the example of FIG. 10 may be performed by the SWB decoder of FIG. 3.
  • the operation may be performed in at least one of a sine wave mode unit and an additional sine wave unit of the SWB encoder and / or the SWB decoder.
  • the steps of FIG. 10 are performed by the SWB encoder and / or the SWB decoder.
  • a target signal is generated (S1010).
  • the target signal may be MDCT coefficients to be quantized.
  • the SWB encoder and / or the SWB decoder may generate MDCT coefficients (target signals) to be quantized.
  • the absolute value of the generated target signal (MDCT coefficient to be quantized) is calculated (S1020).
  • the SWB encoder and / or the SWB decoder calculates an absolute value for the MDCT coefficients to be quantized.
  • the absolute value of the MDCT coefficient can be calculated using Equation 2.
  • the absolute value of the MDCT coefficient M 32 (k) of the original signal can be obtained.
  • MDCT coefficients M 32 (k) of the original signal and MDCT coefficients of the HF composite signal You can find the absolute value of the difference between them.
  • a sine wave (maximum sine wave, maxima sinusoid) having a maximum value may be searched for (S1030).
  • a sine wave maximizing D (k) of Equation 2 may be referred to as a maximum sinusoid.
  • the SWB encoder and / or the SWB decoder may search for at least one maximum sine wave in each track. At this time, the number of searched maximum sine waves (maxima) may be determined for each track.
  • the SWB encoder and / or the SWB decoder may search for a sine wave having an absolute value of Equation 2 by a predetermined number for each track. For example, in the case of layer 6, at least two maximum sine waves may be searched in tracks 0 to 3, and at least one maximum sine wave may be searched in tracks 4 and 5.
  • a position change for quantizing a sign of the sine wave may be performed (S1040).
  • the position change may be performed in a track in which two or more sine waves are searched. Therefore, this step may not be performed when one sine wave is found.
  • the location change may be performed based on the method described in Table 3. For example, considering the case of transmitting two sine waves or two pulses, the sign (+ or-) of the first sine wave / pulse is encoded. At this time, if the first sine wave / pulse is greater than the second sine wave / pulse, the signs of the two sine waves / pulse are the same, and if the magnitude of the first sine wave / pulse is smaller than the second sine wave / pulse, the signs of the two sine waves / pulse are different. Can be determined.
  • the SWB encoder may set a position of a sine wave / pulse so that a code can be derived.
  • the SWB decoder decodes the sign of the first sine wave / pulse, determines that the sign of the two sine waves / pulses is the same when the magnitude of the first sine wave / pulse is larger than the second sine wave / pulse bota, and the magnitude of the first sine wave / pulse If is smaller than the second sine wave / pulse, it can be determined that the coding of the two sine wave / pulse is different.
  • the signal amplitudes of the searched sine waves / pulses are grouped (S1070).
  • the SWB encoder and / or the SWB decoder may group signal amplitudes according to a sine wave / pulse group to be quantized. Grouping may be performed regardless of the track.
  • the amplitudes of 10 detected signals are grouped.
  • Sine waves or pulses may be grouped in sequence of three, three, and four.
  • three signal magnitudes are grouped in Group 1, where the signal magnitudes of the two signals found in track 0 and one of the two signals found in track 1 may be grouped.
  • three signal sizes may be grouped.
  • the signal size of one of the two signals found in the track 1 and the signal size of the two signals found in the track 2 may be grouped.
  • four signal magnitudes may be grouped.
  • the signal magnitudes of two signals retrieved in track 3, the signal magnitude of signals retrieved in track 4, and the signal magnitudes of signals retrieved in track 5 may be grouped.
  • the grouped signal magnitudes may be quantized in group units (S1080).
  • the SWB encoder and / or the SWB decoder may perform quantization based on multi-dimension vector quantization (VQ).
  • pulses of adjacent positions between two paired tracks may be searched or pulses of mutually separated positions between two paired tracks may be searched.
  • the SWB encoder may search for and encode adjacent pulses among pulses of paired tracks.
  • the SWB decoder may restore the SWB signal by decoding adjacent pulses among the pulses of the paired tracks.
  • the pulse may be a sinusoidal MDCT coefficient as described above.
  • track 0 and track 1 are two pairs of track pairs
  • track 2 and track 3 are two pairs of tracks.
  • track 0 and track 1 of two steps form a track pair
  • track 2, track 3, and track 4 of three steps form another track pair.
  • track 0, track 1, and track 2 in 3 steps form one track pair, and track 3 and track 4 in 2 steps You can see different track pairs.
  • track 0 and track 1 in 2 steps form one track pair, track 2, track 3, and track 4 in 3 steps. Can be seen to form another track pair.
  • sine wave mode frame of layer 8 refers to frames processed in sine wave mode in layer 7 among frames processed in layer 8.
  • the tracks of the track pairs are searched in consideration of characteristics of the tracks.
  • the search is performed in consideration of pulses searched in other tracks.
  • FIG. 11 is a diagram schematically illustrating a case where an independent search is performed for each track without considering the characteristics of track pairs.
  • the same search may be performed for track 1 to quantize information about the searched pulses.
  • the search / quantization for track 1 is performed separately and independently from the search result of track 0.
  • a sine wave value may be retrieved from a second track based on a sine wave value first detected from the track.
  • tracks having adjacent positions form a track pair means that the tracks in the track pair have the same step (pulse interval), and each pulse in the track paired tracks is adjacent to each other in the track paired adjacent tracks. It means the case.
  • the present embodiment is applicable to adjacent tracks, for example, when three tracks having three steps form a track pair, or two tracks having two steps form a track pair.
  • FIG. 12 is a diagram schematically illustrating an example of a method of performing a search in consideration of a search result of another track among tracks of a track pair according to the present invention.
  • a search is performed on any one track among tracks constituting a track pair, a method of selecting a pulse searched in another track and an adjacent pulse as a pulse to be encoded.
  • each track constituting the track pair is adjacent to each other.
  • the example of FIG. 12 may be performed by the SWB encoder of FIG. 1.
  • some or all steps of the example of FIG. 12 may be performed by the SWB decoder of FIG. 3.
  • the operation may be performed in at least one of a sine wave mode unit and an additional sine wave unit of the SWB encoder and / or the SWB decoder.
  • the steps of FIG. 12 are performed by the SWB encoder and / or the SWB decoder.
  • a target signal is first generated (S1200).
  • the target signal may be pulses to be quantized, that is, MDCT coefficients.
  • the SWB encoder and / or the SWB decoder may generate MDCT coefficients (target signals) to be quantized.
  • the absolute value of the generated target signal (MDCT coefficient to be quantized) is calculated (S1205).
  • the SWB encoder and / or the SWB decoder calculates an absolute value for the MDCT coefficients to be quantized.
  • the absolute value of the MDCT coefficient can be calculated using Equation 2.
  • the absolute value of the MDCT coefficient M 32 (k) of the original signal can be obtained.
  • MDCT coefficients M 32 (k) of the original signal and MDCT coefficients of the HF composite signal You can find the absolute value of the difference between them.
  • the absolute value is calculated immediately after generating the target signal.
  • the absolute value of Equation 2 may be generated in the process of searching for the maximum value pulse for each track while searching for each track of the track pair.
  • the SWB encoder and / or the SWB decoder determines whether a track pair exists in the MDCT coefficients (target signal) to be encoded.
  • a track pair may consist of tracks having the same steps (pulse intervals) and whose position in the track is adjacent to each other with the position of the pulse in the adjacent track.
  • the energy of tracks constituting the track pair is calculated (S1215). For example, when track 0 and track 1 constitute a track pair, the SWB encoder and / or SWB decoder may calculate the energy of track 0 and the energy of track 1.
  • the energy between the tracks constituting the track pair is compared with each other (S1220).
  • the SWB encoder and / or the SWB decoder may search for the tracks in the order of the highest energy among the tracks constituting the track pair. For example, if track 0 and track 1 constitute a track pair and the energy of track 1 is greater than the energy of track 0, the SWB encoder and / or SWB decoder may first search for track 1 and then search for track 0.
  • the processing in the energy order is a case of searching, and each process may be performed in the subsequent tracks according to the original track order.
  • track 0 may be processed first and track 1 may be processed subsequently.
  • candidate pulses are searched for each track according to the search order (S1225).
  • the SWB encoder and / or the SWB decoder may search for candidate pulses in a high energy track and then search for candidate pulses in a low energy track.
  • the SWB encoder and / or SWB decoder may search for candidates of the pulse to be encoded by searching a predetermined number more than the number of pulses to be searched and encoded.
  • N1 the number of pulses to be searched and encoded in a track with high energy
  • N2 the number of pulses to be searched and encoded in a track with low energy
  • N1 and N2 may be the same.
  • the SWB encoder and / or the SWB decoder may search for N1 + n1 pulses (n1 is an integer greater than or equal to 0) pulses on a high energy track, and N2 + n2 (n2 is an integer greater than 0) pulses on a low energy track. Can be.
  • n2 may be greater than or equal to n1.
  • N1 + n1 pulses and N2 + n2 pulses may be selected in the order of the largest absolute value according to Equation 2 in each track.
  • the number of pulses to be searched in the track pairing tracks is 2, as many as 2 + n1 pulses are selected in the high energy track and as many as 2 + n2 pulses are selected in the low energy track. Can be.
  • the SWB encoder and / or the SWB decoder may select the maximum sine wave (pulse) as many as the number to search and encode in a track having a large energy among tracks constituting the track pair.
  • the searched pulses are compared with the pulse searched in the track with the largest energy in the order of the greatest absolute value (S1235).
  • the SWB encoder and / or the SWB decoder may compare the N2 + n2 pulses found in the low energy track with the pulses found in the high energy track. In this case, the N2 + n2 pulses may be compared with the pulses selected in the tracks with the highest energy in the order of the greatest absolute value.
  • the two adjacent pulses are each to be encoded in the high energy track. And one of the pulses to be signed in the track having a small energy (S1240).
  • the pulse with the largest absolute value (maximum sine wave) in the low energy track may be selected.
  • N1 x (N2 + n2) pulse combinations P t1 and P t2 may be configured, which may consist of N1 pulses selected on the high energy track and N2 + n2 pulses retrieved on the low energy track. If P t1 and P t2 are contiguous combinations (P t1, adj , P t2, adj ), then P t1, adj is determined as the pulse to be encoded in the high energy track and P t2, adj is encoded in the low energy track. It can be determined by the pulse to be.
  • the absolute values may be selected in order from the adjacent pulse pairs.
  • N2 pulses can be selected in the order of the greatest absolute value, as in the case of the high energy track, even in the low energy track.
  • step S1230 only the number of pulses (maximum sine wave) to be encoded in the track having a large energy is selected.
  • the present invention is not limited thereto.
  • P t1, adj is determined as the pulse to be encoded in the high energy track and P t2, adj is encoded in the low energy track. It may be determined by the pulse to be.
  • the position may be changed to quantize the sign of the selected pulse (S1245).
  • steps S1235 and S1240 of selecting an encoding target pulse the steps are performed in consideration of the pulses found in other tracks, but only the pulses in the same track are considered in the position change step.
  • the position change is for transmitting only one sign bit per track. If the two selected pulses in the track have the same sign, the pulse with the larger absolute value is placed in the front position. If the two pulses are different, the pulse with the small absolute value is different. This is done by placing in the front position.
  • the position of the pulse may or may not change depending on whether the signs of the two selected pulses within the same track are the same or different.
  • the position of the pulse is quantized (S1250).
  • the quantization target position is a position determined in consideration of the sign of the pulse in step S1245.
  • the sign and amplitude of the selected pulse may be encoded (S1265).
  • Quantizing the information indicating the sign and magnitude of the pulse includes: quantizing the sign of the pulse (S1270), size grouping step (S1275) for quantizing the pulse amplitude (S1275), and quantizing the magnitude of the pulse ( S1280) may be included. Quantization of the size indicating information may be performed based on multi-dimensional vector quantization (VQ), and grouping of sizes may be referred to as a prerequisite for multi-dimensional VQ.
  • VQ multi-dimensional vector quantization
  • the maximum sine wave can be selected by the number of maximum sine waves (pulses) searched in each track (S1360).
  • the SWB encoder and / or the SWB decoder may search for the maximum sine wave (pulse) by the number of pulses to be encoded for each track and select it as an encoding / quantization target pulse without considering the pulse waves searched for in other tracks.
  • the quantization step S1365 of position / magnitude / sign may be performed in the same manner as if a track pair exists.
  • a search for a predetermined number more pulses as candidate pulses than the number of encoding target pulses in each track is described, but the present invention is not limited thereto.
  • a pulse serving as an encoding target may be searched without searching for a larger number of pulses as candidate pulses than the number of encoding target pulses.
  • N1 pulses may be searched for in a track of high energy.
  • step S1230 may not be performed.
  • the candidate pulses are searched for in the tracks (tracks with high energy and tracks with low energy) constituting the track pair, and then pulses to be encoded for each track are selected.
  • the candidate pulse may be searched and the encoding target pulse may be selected for each track constituting the track pair.
  • the candidate pulses of the low energy track may be searched, and the encoding target pulse of the low energy track may be selected in consideration of the position of the selected pulse in the high energy track. have.
  • the track in order to determine the importance of a track, the track is divided into an upper importance track and a lower importance track based on the energy of the track.
  • the present invention is not limited thereto.
  • other criteria may be applied in addition to energy.
  • the tracks of the track pairs can be detected in the same manner as described with reference to FIG. 12 to determine the encoding target pulse and quantize the information of the pulse.
  • the criteria for searching for candidate pulses in each track is the absolute value of the MDCT coefficient (pulse). In this case, other characteristic values may be added as another criterion.
  • the pulses to be finally encoded / quantized may be selected based on whether they are pulses in a position adjacent to the pulses of the higher importance track (the track having higher energy in the example of FIG. 12).
  • FIG. 12 a case in which a track having a high energy and a track having a low energy forms one track pair is described as an example.
  • the present invention described with reference to FIG. 12 may be equally applied to a case in which two tracks constitute a track pair, as well as a case in which two or more tracks constitute a track.
  • steps of FIG. 12 may be applied in order to all tracks so that an encoding target pulse may be determined in all tracks of a target signal.
  • FIG. 13 is a view schematically illustrating another example of a method of performing a search in consideration of a search result of another track among tracks of a track pair according to the present invention.
  • a search is performed for any one track among tracks constituting a track pair, a method of selecting a pulse adjacent to a pulse searched in other tracks as a pulse to be encoded.
  • each track constituting the track pair is adjacent.
  • the example of FIG. 13 may be performed by the SWB encoder of FIG. 1.
  • some or all of the steps in the example of FIG. 13 may be performed by the SWB decoder of FIG. 3.
  • the operation may be performed in at least one of a sine wave mode unit and an additional sine wave unit of the SWB encoder and / or the SWB decoder.
  • the steps of FIG. 13 are performed by the SWB encoder and / or the SWB decoder.
  • a target signal is first generated (S1300).
  • the target signal may be pulses to be quantized, that is, MDCT coefficients.
  • the SWB encoder and / or the SWB decoder may generate MDCT coefficients (target signals) to be quantized.
  • the SWB encoder and / or the SWB decoder determines whether a track pair exists in the MDCT coefficients (target signal) to be encoded.
  • a track pair may consist of tracks having the same steps (pulse intervals) and whose position in the track is adjacent to each other with the position of the pulse in the adjacent track.
  • the features of the tracks constituting the track pair are extracted (S1215).
  • the extracted feature is the same feature for the track pair, and may have different values, for example, different values for each track constituting the track pair.
  • the order of importance of the tracks may be determined (S1315). For example, considering a case where track-specific energy is used as a feature extracted for each track, a track having a high energy may be determined as a track of high importance, that is, a track in which a search for pulse is performed first.
  • processing in the order according to the extracted feature value is a case of searching, and each process may proceed according to the original track order in other steps later.
  • track 0 may be processed first and track 1 may be processed subsequently.
  • an order of searching for pulses may be determined according to the feature value of the tracks constituting the track pair. For example, depending on what the feature is, when a track having a large feature value is a more important track, the pulse search may proceed from the track having a large feature value. Alternatively, in the case where a track having a small feature value is a more important track, a pulse search may be performed from a track having a small feature value.
  • candidate pulses may be searched for each track according to the importance order.
  • candidate pulses are searched for in the first priority importance track (S1320). If the number of pulses to be encoded in the priority track is M1 (M1 is an integer greater than 0), a predetermined number (m1) more pulses than the number of pulses to be encoded may be searched as candidate pulses in the priority track. .
  • pulses corresponding to the number M1 of pulses to be coded in the priority ranking track may be selected (S1325).
  • the number of pulses to be encoded may be equal to the number of pulses searched in the priority tracks when the pulses searched in the other tracks of the track pair (maximum sine wave) are not considered.
  • candidate pulses are searched for in the second rank importance track (S1330). If the number of pulses to be encoded in the second priority track is M2 (M2 is an integer greater than 0), a predetermined number (m2) more pulses than the number of pulses to be encoded may be searched as candidate pulses of the second priority track. . At this time, the number m2 of additionally searched pulses in the second priority track can be equal to or greater than the number m1 of additionally searched pulses in the first priority track.
  • the SWB encoder and / or the SWB decoder may compare the positions of the M2 + m2 pulses found in the second priority track with the positions of the pulses selected in the first priority track.
  • the pulses retrieved from the 2nd priority track there is a pulse at a position adjacent to the selected pulse in the 1st priority track, two adjacent pulses are each encoded in the 2nd priority track and one of the pulses to be coded in the 1st priority track.
  • One of the pulses may be selected (S1340).
  • the pulse with the largest absolute value (maximum sine wave) in the second rank importance track may be selected.
  • M1x (M2 + m2) pulse combinations P tp1 and P tp2 may be configured, which may consist of M1 pulses selected in the priority track and M2 + m2 pulses found in the priority track.
  • P tp1 and P tp2 is the adjacent combination (adj P tp1,, P tp2 , adj) is called when, P tp1, determines the adj by one pulse to be encoded in the Priority track P tp2, adj encoding the at secondary importance track It can be determined by the pulse to be.
  • adjacent pulse combinations between tracks forming track pairs can be further selected.
  • the absolute values may be selected in order from the adjacent pulse pairs. For example, if two pulses are selected and encoded for each track, pulse pairs having the largest pulse absolute value of the second priority track among pulse pairs adjacent to the pulses of the two tracks, and then pulse absolute of the second priority track. A pulse pair with a large value can be selected and encoded / quantized.
  • M2 pulses are selected in order of absolute magnitude, similar to the method of selecting pulses in the 1st priority track in the 2nd priority track. Can be.
  • step S1325 only the number of pulses to be coded in the first priority track is selected.
  • the present invention is not limited thereto.
  • P tp1 and P tp2 is the adjacent combination (adj P tp1,, P tp2 , adj) is called when, P tp1, determines the adj by one pulse to be encoded in the Priority track P tp2, adj encoding the at secondary importance track It may be determined by the pulse to be. If a plurality of pulses are to be selected for each track, the absolute values of the pulses of the second priority track among the pairs of pulses of two adjacent pulses may be selected in ascending order.
  • the priority tracks from the 3rd priority track to the following priority tracks may search for candidate pulses and select a pulse to be encoded from the candidate pulses.
  • the candidate pulses for each track are sequentially searched according to the importance, the process of selecting the encoding target pulse is performed, and the candidate pulses are searched for in the lowest priority track (S1345).
  • Mk is an integer greater than 0
  • mk is greater than the number of pulses to be encoded. More pulses can be retrieved as candidate pulses of the lowest priority track.
  • the number mk of additionally searched pulses in the lowest priority track may be equal to or greater than the number mk-1 of additionally searched pulses in the previous priority track (k-1 priority track).
  • the SWB encoder and / or the SWB decoder may compare the positions of the Mk + mk pulses found in the lowest priority track with the positions of the pulses selected in the previous rank priority track.
  • Mk + mk There are Mk-1 x (Mk + mk) pulse combinations (P tpk-1 , P tpk ) that can consist of the Mk-1 pulses selected in the previous priority importance track and the Mk + mk pulses found in the lowest priority importance track. Can be configured.
  • P tpk-1 and P tpk are contiguous combinations (P tpk-1, adj , P tpk, adj ), then determine P tpk-1, adj as the pulse to be coded in the previous rank importance track and P tpk, adj It can be determined as the pulse to be encoded in the lowest priority track.
  • adjacent pulse combinations between tracks forming track pairs can be further selected.
  • the absolute values may be selected in order from the adjacent pulse pairs.
  • Mk pulses maximum sine waves
  • the position may be changed to quantize the sign of the selected pulse (S1345).
  • the steps are performed in consideration of the pulses found in other tracks, but in the position change step, only the pulses in the same track are considered.
  • the position change is for transmitting only one sign bit per track. If the two selected pulses in the track have the same sign, the pulse with the larger absolute value is placed in the front position. If the two pulses are different, the pulse with the small absolute value is different. This is done by placing in the front position.
  • the position of the pulse may or may not change depending on whether the signs of the two selected pulses within the same track are the same or different.
  • the position, magnitude and / or sign of the pulse is quantized (S1365).
  • the quantization target position is a position determined in consideration of the sign of the pulse in step S1245.
  • the maximum sine wave can be selected by the number of maximum sine waves (pulses) searched in each track (S1360).
  • the SWB encoder and / or the SWB decoder may search for the maximum sine wave by the number of pulses to be encoded for each track and select it as an encoding / quantization target pulse without considering the pulse waves searched for in other tracks.
  • the quantization step S1365 of position / magnitude / sign may be performed in the same manner as if a track pair exists.
  • step S1320 a search for a predetermined number more pulses as candidate pulses than the number of encoding target pulses in each track has been described, but the present invention is not limited thereto.
  • the number of pulses larger than the number of encoding target pulses may not be searched as candidate pulses, but only the pulses that are encoding targets (quantization targets) may be searched. That is, unlike the lower priority track, only the M1 pulses may be searched for in the priority track. In this case, step S1325 may not be performed.
  • the searching and selection of the candidate pulses are performed for each track constituting the track pair, but the present invention is not limited thereto. For example, after searching a predetermined number of candidate pulses or more than the number of encoding target pulses for all tracks constituting the track pair, encoding the pulses adjacent to the pulses selected from the higher priority tracks among the candidate pulses for each track. It can be selected by the target pulse. In this case, when searching for candidate pulses for the mode tracks constituting the track pair, the most significant track selects candidate pulses equal to the number of encoding target pulses (for example, searching for encoding target pulses rather than searching for candidate pulses). It may be.
  • the track in order to determine the importance of a track, the track is divided into an upper importance track and a lower importance track based on the energy of the track.
  • the present invention is not limited thereto.
  • other criteria may be applied in addition to energy.
  • the tracks of the track pairs may be searched for pulses in the same manner as described with reference to FIG. 13 to determine an encoding target pulse and quantize the information of the pulses.
  • steps of FIG. 13 may be applied in order to all tracks so that an encoding target pulse may be determined in all tracks of a target signal.
  • the method described with reference to FIGS. 12 and 13 can be applied to a case where the target signal includes all original signal components, such as the case of processing the higher band of the G.718 SWB.
  • the method of FIG. 12 and FIG. 13 serves to cause the MDCT coefficient to be concentrated in a band having a strong tonal component.
  • Selecting a pulse adjacent to the pulse position of the higher importance track is effective for signals with tonality and different modes depending on the tonal information, such as G.718 SWB (generic if no tonal component is present). Efficient if you have other modes).
  • the MDCT based enhancement layer may correspond to the SWB encoder of FIG. 1.
  • the MDCT-based enhancement layer may correspond to the SWB decoder of FIG. 3.
  • pulses separated from pulses selected from other tracks may be selected as encoding target pulses.
  • the method of selecting a pulse at a position away from the pulse selected in another track as the encoding target pulse can be effectively used when energy is uniformly distributed in one frame of the target signal.
  • the pulse at a position relatively separated from the pulse position of the higher priority track is obtained. You can choose.
  • the present method can be effectively used even when there are no modes depending on the tonality.
  • FIG. 14 is a view schematically illustrating another example of a method of performing a search in consideration of a search result of another track among tracks of a track pair according to the present invention.
  • a search is performed for any one track among tracks constituting a track pair, a method of selecting a pulse away from a pulse searched in other tracks as a pulse to be encoded.
  • each track constituting the track pair is adjacent to each other.
  • the example of FIG. 14 may be performed by the SWB encoder of FIG. 1.
  • some or all of the steps in the example of FIG. 14 may be performed by the SWB decoder of FIG. 3.
  • the operation may be performed in at least one of a sine wave mode unit and an additional sine wave unit of the SWB encoder and / or the SWB decoder.
  • the steps of FIG. 14 are performed by the SWB encoder and / or the SWB decoder.
  • a target signal is generated (S1400).
  • the target signal may be pulses to be quantized, that is, MDCT coefficients.
  • the SWB encoder and / or the SWB decoder may generate MDCT coefficients (target signals) to be quantized.
  • the SWB encoder and / or the SWB decoder determines whether a track pair exists in the MDCT coefficients (target signal) to be encoded.
  • a track pair may consist of tracks having the same steps (pulse intervals) and whose position in the track is adjacent to each other with the position of the pulse in the adjacent track.
  • the features of the tracks constituting the track pair are extracted (S1410).
  • the extracted feature is the same feature for the track pair, and may have different values, for example, different values for each track constituting the track pair.
  • the feature to be extracted can be the energy of the track.
  • the order of importance of the tracks may be determined (S1415). For example, considering a case where track-specific energy is used as a feature extracted for each track, a track having a high energy may be determined as a track of high importance, that is, a track in which a search for pulse is performed first.
  • an order of searching for pulses may be determined according to the feature value of the tracks constituting the track pair. For example, depending on what the feature is, when a track having a large feature value is a more important track, the pulse search may proceed from the track having a large feature value. Alternatively, in the case where a track having a small feature value is a more important track, a pulse search may be performed from a track having a small feature value.
  • candidate pulses may be searched for each track according to the importance order.
  • processing in the order according to the feature values is a case of searching, and each process may proceed according to the original track order in other steps later. For example, when the bitstream is formed by quantization, track 0 may be processed first and track 1 may be processed subsequently.
  • candidate pulses are searched for in the first priority importance track (S1420).
  • the SWB encoder and / or the SWB decoder may search for the first priority track to find pulses having a maximum maximum value.
  • more pulses may be selected by a predetermined number l1 than the number L1 of pulses to be encoded in the priority ranking track (S1425).
  • the number of pulses to be encoded may be the same as the number of pulses searched in the priority tracks when the pulses (maximum sine waves) selected in other tracks of the track pair are not considered.
  • the number of pulses to be coded in the priority track is L1 (L1 is an integer greater than 0), then a greater number of pulses (1, l1 are greater than or equal to 0) greater than the number of pulses to be encoded. It can be selected as a candidate pulse of the track. For example, if the number of pulses to be encoded in the priority track is two (if the number of pulses to be searched is not considered when the pulses selected in other tracks are not taken into consideration), 2 + 1 pulses can be selected.
  • candidate pulses are searched for in the second most important track, which is the next important track (S1430).
  • the number of pulses to be encoded in the 2nd priority importance track is L2 (L2 is an integer greater than 0)
  • a certain number of pulses (l2 and l2 are greater than or equal to 0) are greater than the number of pulses to be encoded. It can be retrieved as a candidate pulse of the track. For example, if the number of pulses to be coded in the second priority track is two (the number of pulses to be searched when searching by the conventional method is two), 2 + l 2 pulses can be searched.
  • the number l2 of additionally searched pulses in the second priority importance track may be equal to or greater than the number l1 of additionally searched pulses in the first priority importance track.
  • the SWB encoder and / or the SWB decoder may compare the positions of the L2 + l2 pulses found in the second priority track with the positions of the pulses selected in the first priority track.
  • the two apart pulses will be encoded in one of the pulses to be coded in the 1st priority track and 2nd priority track respectively.
  • One of the pulses may be selected (S1440).
  • the pulse having the largest absolute value may be selected in the second priority track.
  • P tp1 , P tp2 The combination of (L1 + l1) x (L2 + l2) pulses (P tp1 , P tp2 ), which can consist of L1 + l1 pulses selected in the 1st priority track and L2 + l2 pulses found in the 2nd priority track, Can be configured.
  • the positions of the two pulses among the pulse pairs that are separated may be selected in the order of the furthest distance. For example, in the case of selecting and encoding two pulses for each track, select a pulse pair with the longest distance between two pulses among the pulse pairs, and then select a pulse pair with a longest distance between the two pulses to track the selected pulses. Can be encoded (quantized) separately.
  • L2 pulses maximum sine waves in the order of magnitude are similar to the method of selecting pulses in the 1st priority track, even in the 2nd priority track. You can choose.
  • P tp1 1... L1
  • P tp2 1... L2 + l2
  • P tp1, away is determined as the pulse to be encoded in the priority track and P tp2, away May be determined as the pulse to be encoded in the second priority importance track.
  • P tp1, away is determined as the pulse to be encoded in the priority track
  • P tp2, away May be determined as the pulse to be encoded in the second priority importance track.
  • a plurality of (e.g., two) pulses are to be selected for each track, it is also possible to select the pulse pair at which the two pulses are farthest apart and the second pair of pulses farthest apart.
  • the maximum sine wave can be selected by the maximum number of sine waves (pulses) searched in each track (S1445).
  • the SWB encoder and / or the SWB decoder may search for the maximum sine wave (pulse) by the number of pulses to be encoded for each track and select it as an encoding / quantization target pulse without considering the pulse waves searched for in other tracks.
  • the position / size / sign is quantized with respect to the selected pulses (maximum sine wave) (S1455).
  • the position of the pulse can be changed to quantize information indicating the sign of the selected pulse.
  • the position change is for transmitting only one sign bit per track. If the two selected pulses in the track have the same sign, the pulse with the larger absolute value is placed in the front position. If the two pulses are different, the pulse with the small absolute value is different. This is done by placing in the front position.
  • the position of the pulse may or may not change depending on whether the signs of the two selected pulses within the same track are the same or different.
  • Quantizing the information indicating the sign and magnitude of the pulse may include quantizing the sign of the pulse, magnitude grouping to quantize the pulse amplitude, and quantizing the magnitude of the pulse.
  • Quantization of the size indicating information may be performed based on multi-dimensional vector quantization (VQ), and grouping of sizes may be referred to as a prerequisite for multi-dimensional VQ.
  • a search for a predetermined number more pulses as the candidate pulses than the number of encoding target pulses in the first priority track is described, but the present invention is not limited thereto.
  • the number of pulses larger than the number of encoding target pulses may not be searched as candidate pulses, but only the pulses that are encoding targets (quantization targets) may be searched. That is, unlike the lower priority track, only the M1 pulses may be searched for in the priority track. In this case, step S1425 may not be performed.
  • the searching and selection of candidate pulses are performed for each track constituting the track pair, but the present invention is not limited thereto. For example, after searching a predetermined number of candidate pulses or more than the number of encoding target pulses for all tracks constituting the track pair, encoding the pulses adjacent to the pulses selected from the higher priority tracks among the candidate pulses for each track. It can be selected by the target pulse. In this case, when searching for candidate pulses for the mode tracks constituting the track pair, the most significant track selects candidate pulses equal to the number of encoding target pulses (for example, searching for encoding target pulses rather than searching for candidate pulses). It may be.
  • the track in order to determine the importance of a track, the track is classified into a higher importance track and a lower importance track based on the energy of the track.
  • the present invention is not limited thereto.
  • other criteria may be applied in addition to energy.
  • the tracks of the track pairs may be searched for pulses in the same manner as described with reference to FIG. 14 to determine an encoding target pulse, and quantize the information of the pulses.
  • steps of FIG. 14 may be applied in order to all tracks so that an encoding target pulse may be determined in all tracks of a target signal.
  • the example of FIG. 15 may be performed by the SWB encoder of FIG. 1.
  • some or all of the steps in the example of FIG. 15 may be performed by the SWB decoder of FIG. 3.
  • the operation may be performed in at least one of a sine wave mode unit and an additional sine wave unit of the SWB encoder and / or the SWB decoder.
  • the steps of FIG. 15 will be described in the SWB encoder and / or the SWB decoder.
  • a target signal is first generated (S1500).
  • the target signal may be pulses to be quantized, that is, MDCT coefficients.
  • the SWB encoder and / or the SWB decoder may generate MDCT coefficients (target signals) to be quantized.
  • the SWB encoder and / or the SWB decoder determines whether a track pair exists in the MDCT coefficients (target signal) to be encoded.
  • a track pair may consist of tracks having the same steps (pulse intervals) and whose position in the track is adjacent to each other with the position of the pulse in the adjacent track.
  • the features of the tracks constituting the track pair are extracted (S1510).
  • the extracted feature is the same feature for the track pair, and may have different values, for example, different values for each track constituting the track pair.
  • the feature to be extracted may be the energy of the track.
  • the order of importance of the tracks may be determined (S1515). For example, considering a case where track-specific energy is used as a feature extracted for each track, a track having a high energy may be determined as a track of high importance, that is, a track in which a search for pulse is performed first.
  • an order of searching for pulses may be determined according to the feature value of the tracks constituting the track pair. For example, depending on what the feature is, when a track having a large feature value is a more important track, the pulse search may proceed from the track having a large feature value. Alternatively, in the case where a track having a small feature value is a more important track, a pulse search may be performed from a track having a small feature value.
  • candidate pulses may be searched for each track according to the importance order.
  • processing in the order according to the feature values is a case of searching, and each process may proceed according to the original track order in other steps later. For example, when the bitstream is formed by quantization, track 0 may be processed first and track 1 may be processed subsequently.
  • candidate pulses are searched for in the first priority importance track (S1520). If the number of pulses to be coded in the priority track is P1 (P1 is an integer greater than zero), then more pulses are given the number of pulses (p1, p1 is an integer greater than or equal to 0) than the number of pulses to encode. It can be retrieved as a candidate pulse of the track. For example, if the number of pulses to be coded in the priority track is two (if the number of pulses to be searched is not considered when a pulse selected from another track is not taken into consideration), 2 + p1 pulses may be searched. .
  • the number of pulses corresponding to the number P1 of the pulses to be coded in the priority track may be selected (S1525).
  • the number of pulses to be encoded may be the same as the number of pulses searched in the priority tracks when the pulses (maximum sine waves) selected in other tracks of the track pair are not considered.
  • candidate pulses are searched for in the second most important track, which is the next most important track (S1530). If the number of pulses to be coded in the second-order importance track is P2 (P2 is an integer greater than zero), the number of pulses (p2, p2 is an integer greater than or equal to zero) is greater than the number of pulses to encode. It can be retrieved as a candidate pulse of the track. For example, if the number of pulses to be encoded in the second priority importance track is two (the number of pulses to be searched is two when searching by the conventional method), 2 + p 2 pulses can be searched.
  • the number p2 of additionally searched pulses in the second priority track may be equal to or greater than the number p1 of additionally searched pulses in the first priority track.
  • the SWB encoder and / or the SWB decoder may compare the positions of the P2 + p2 pulses found in the second priority track with the positions of the pulses selected in the first priority track.
  • the two apart pulses will be encoded in one of the pulses to be coded in the 1st priority track and 2nd priority track respectively.
  • One of the pulses may be selected (S1540).
  • the pulse having the largest absolute value (sine wave having the maximum value) may be selected.
  • P1x (P2 + p2) pulse combinations P tp1 and P tp2 may be configured, which may consist of P1 pulses selected in the priority track and P2 + p2 pulses found in the priority track.
  • P tp1, away P tp2 , away
  • P tp1 and P tp2 the P tp1, away It may be determined as a pulse to be encoded in the priority track and P tp2, away may be determined as a pulse to be encoded in the priority track.
  • the positions of the two pulses among the pulse pairs that are separated may be selected in the order of the distance. For example, in the case of selecting and encoding two pulses for each track, select a pulse pair with the longest distance between two pulses among the pulse pairs, and then select a pulse pair with a longest distance between the two pulses to track the selected pulses. Can be encoded (quantized) separately.
  • P2 pulses in the order of absolute value are similar to the method of selecting pulses in the 1st priority track in the 2nd priority track. You can choose.
  • step S1525 only the number of pulses to be coded in the first priority track is selected.
  • the present invention is not limited thereto.
  • P tp1 1... P1 + p1
  • P tp2 1... P2 + p2
  • P tp1 , P tp2 1... P2 + p2
  • P tp1, away is determined as the pulse to be encoded in the priority track and P tp2, away May be determined as the pulse to be encoded in the second priority importance track.
  • P tp1, away is determined as the pulse to be encoded in the priority track
  • P tp2, away May be determined as the pulse to be encoded in the second priority importance track.
  • a plurality of (e.g., two) pulses are to be selected for each track, it is also possible to select the pulse pair at which the two pulses are farthest apart and the second pair of pulses farthest apart.
  • the priority tracks from the 3rd priority track to the following priority tracks may search for candidate pulses and select a pulse to be encoded from the candidate pulses.
  • the candidate pulses are sequentially searched for tracks according to the importance, and the candidate pulses are searched for in the lowest priority track at the end of the process of selecting an encoding target pulse (S1545).
  • Pk is an integer greater than 0
  • pk is greater than the number of pulses to be encoded.
  • More pulses can be retrieved as candidate pulses of the lowest priority track.
  • the number pk of pulses additionally searched in the lowest priority track may be equal to or greater than the number of pulses pk-1 additionally searched in the previous priority track (k-1 priority track).
  • the SWB encoder and / or the SWB decoder may compare the positions of the Pk + pk pulses found in the lowest priority track with the positions of the pulses selected in the previous priority track.
  • the two apart pulses are each one of the pulses to be encoded in the lowest priority track (k rank importance track) and One of the pulses to be encoded in the previous rank importance track (k-1 rank importance track) may be selected (S1355).
  • Pk-1 x (Pk + pk) pulse combinations (P tpk-1 , P tpk ) that can be composed of Pk-1 pulses selected in the previous priority importance track and Pk + pk pulses found in the lowest priority track. Can be configured.
  • P tpk-1, away is determined as the pulse to be encoded in the previous rank importance track.
  • P tpk, away can be determined as the pulse to be coded in the lowest priority track.
  • a combination of pulses separated between tracks constituting a track pair may be further selected. For example, when there are a plurality of combinations of pulses located apart between tracks that make up a pair of tracks, a combination of pulses having the longest distance between the pulses of the two tracks and then a combination having the greatest distance between the pulses may be sequentially selected. .
  • Pk pulses maximum sine waves
  • the maximum sine wave can be selected by the maximum number of sine waves (pulses) searched in each track (S1560).
  • the SWB encoder and / or the SWB decoder may search for the maximum sine wave (pulse) by the number of pulses to be encoded for each track and select it as an encoding / quantization target pulse without considering the pulse waves searched for in other tracks.
  • the position / size / sign is quantized with respect to the selected pulses (maximum sine wave) (S1565).
  • the position of the pulse can be changed to quantize information indicating the sign of the selected pulse.
  • the position change is for transmitting only one sign bit per track. If the two selected pulses in the track have the same sign, the pulse with the larger absolute value is placed in the front position. If the two pulses are different, the pulse with the small absolute value is different. This is done by placing in the front position.
  • the position of the pulse may or may not change depending on whether the signs of the two selected pulses within the same track are the same or different.
  • the position, magnitude and / or sign of the pulse is quantized
  • a search for a predetermined number more pulses as the candidate pulses than the number of encoding target pulses in the priority track is described, but the present invention is not limited thereto.
  • the number of pulses larger than the number of encoding target pulses may not be searched as candidate pulses, but only the pulses that are encoding targets (quantization targets) may be searched.
  • the P1 pulses may be searched for in the priority track. In this case, step S1525 may not be performed.
  • the searching and selection of candidate pulses are performed for each track constituting the track pair, but the present invention is not limited thereto. For example, after retrieving a predetermined number of candidate pulses more than the number of pulses to be coded for all tracks constituting the track pair, encoding the pulses far from the pulse selected in the higher priority track among the candidate pulses for each track. It can be selected by the target pulse. In this case, when searching for candidate pulses for the mode tracks constituting the track pair, the most significant track selects candidate pulses equal to the number of encoding target pulses (for example, searching for encoding target pulses rather than searching for candidate pulses). It may be.
  • the track in order to determine the importance of a track, the track is classified into an upper importance track and a lower importance track based on the energy of the track.
  • the present invention is not limited thereto.
  • other criteria may be applied in addition to energy.
  • the tracks of the track pairs may be searched for pulses in the same manner as described with reference to FIG. 15 to determine an encoding target pulse, and quantize the information of the pulses.
  • steps of FIG. 15 may be applied to all tracks in order so that the encoding target pulse may be determined in all tracks of the target signal.
  • the method of FIGS. 14 and 15 may be effective when the difference signal (difference, residual) is a target after encoding, without targeting the original signal during encoding for the G.718 SWB upper band.
  • a basic core such as G.718 WB may be applied to encode an uncoded signal.
  • FIG. 16 is a block diagram schematically illustrating an example of an encoder to which the methods of FIGS. 14 and 16 are applied.
  • the WB signal is input to a basic core 1620.
  • the signal output from the basic core 1620 may be encoded and transmitted in a bitstream.
  • the difference between the signal decoded in the basic core 1620 and the original HP filtered signal may be processed in the MDCT-based enhancement layer 1630 and then output as a bitstream.
  • the enhancement layer 1630 may correspond to the super wide band (SWB) encoder of FIG. 1.
  • the target signal When the target signal is generated, it is possible to determine whether to select a pulse adjacent to a pulse of another track in a pair of tracks as an encoding target pulse or to select pulses apart from pulses of another track in the track pair as encoding target pulses.
  • an energy distribution may be used as a feature of the target signal as a reference for determining how to select an encoding target pulse.
  • the tonality determination unit of FIG. 1 may determine how to select an encoding target pulse.
  • a method of selecting a pulse adjacent to a pulse selected from another track of a track pair as an encoding target pulse may be used. If the target signal has no tonal component or the energy distribution of the target signal is uniform, a method of selecting a pulse that is separated from a pulse selected from other tracks of the track pair as the encoding target pulse may be used.
  • information indicating whether to select a pulse adjacent to the selected pulse or a pulse apart from the selected track in another track of the pair of tracks extracts a feature of the target signal (eg, FIG. 1). It may be input to a module (for example, the SWB encoder of FIG. 1) for selecting a pulse for each track from the tonerity determination unit of FIG.
  • 17 is a flowchart schematically illustrating an example of a method of searching for a pulse of a track according to frame energy or tonality according to the present invention.
  • FIG. 17 may be performed by the SWB encoder of FIG. 1 and / or the SWB decoder of FIG. 3.
  • the operation may be performed in at least one of a sine wave mode unit and an additional sine wave unit of the SWB encoder and / or the SWB decoder.
  • the determination and the indication of whether to select the adjacent pulse in FIG. 17 may be performed by the tonality determination unit of FIG. 1 and the SWB decoding unit of FIG. 3.
  • the steps of FIG. 17 are described by the SWB encoder and / or the SWB decoder.
  • a target signal is generated (S1700).
  • the target signal may be pulses to be quantized, that is, MDCT coefficients.
  • the feature of the target signal is extracted (S1705).
  • the feature of the extracted target signal may be tonality or may be a distribution of energy.
  • the target signal When determining the tonality as a characteristic of the target signal, if the target signal is tonal, it may be instructed to select a pulse adjacent to the selected pulse in another track of the track pair. In addition, if the target signal is not tonal, it may be instructed to select a pulse away from the selected pulse in another track of the track pair.
  • the energy of the target signal when the energy of the target signal is concentrated in a specific band, it may be instructed to select a pulse adjacent to a selected pulse in another track of the track pair. In addition, when the energy of the target signal is evenly concentrated, it may be instructed to select a pulse away from the selected pulse in another track of the track pair.
  • step S1705 for a pair of tracks, it is determined whether to select a pulse adjacent to a pulse selected in another track or a pulse away from a pulse selected in another track, and the determined information selects a pulse in the most significant track, or When delivered to the previous stage, the pulses can be selected in the same way on each track of the track pair.
  • the pulses may be retrieved / selected by the method according to the example of FIG. If it is determined to select the distant pulses, the pulses can be retrieved by the method according to the example of FIG.
  • step S1705 when it is determined in step S1705 for a pair of tracks to select a pulse adjacent to a pulse selected in another track or a pulse away from a pulse selected in another track, how to select a pulse for each track may be determined.
  • the pulse when information on how to select a pulse is transmitted to the step of selecting a pulse for each track, the pulse may be selected according to the method indicated by the transferred information.
  • the pulse when the current track is instructed to select a pulse adjacent to a selected pulse in another track, the pulse may be searched / selected by the method according to the example of FIG. 13. In addition, in the current track, when it is instructed to select a pulse at a position away from the selected pulse in another track, the pulse may be searched / selected by the method according to the example of FIG. 15.
  • each track is instructed as to whether adjacent pulses or separated pulses should be selected will be described as an example.
  • a track pair may consist of tracks having the same steps (pulse intervals) and whose position in the track is adjacent to each other with the position of the pulse in the adjacent track.
  • the features of the tracks constituting the track pair are extracted (S1715).
  • the feature to be extracted may be the energy of the track.
  • the order of importance of the tracks may be determined (S1720). For example, when the feature extracted for each track is energy for each track, a track having a high energy may be determined as a track having a high importance, that is, a track in which a search for pulse is performed first.
  • candidate pulses are searched for in the first priority importance track (S1725). If the number of pulses to be encoded in the priority track is Q1 (Q1 is an integer greater than zero), the number of pulses (q1, q1 is an integer greater than or equal to 0) is greater than the number of pulses to be encoded. It can be retrieved as a candidate pulse of the track.
  • the selection of the pulse to be encoded may be performed according to the method determined in S1705 based on the feature of the target signal.
  • the encoding target pulse may be selected without considering the relationship with the pulse selected in the other track.
  • an encoding target pulse may be selected based on an absolute value of the pulse.
  • candidate pulses are searched for in the second rank importance track (S1735). If the number of pulses to be coded in the second-order importance track is Q2 (Q2 is an integer greater than zero), the number of pulses is greater than the number of pulses to be encoded (q2, q2 is an integer greater than or equal to zero). It can be retrieved as a candidate pulse of the track.
  • the number q2 of pulses additionally searched in the second priority track may be equal to or greater than the number q1 of pulses additionally searched in the first priority track.
  • Pulses to be encoded are selected among the pulses searched in the second priority importance track based on the positional relationship with the pulse selected in the first priority importance track (S1745).
  • the selection of the pulse to be encoded in the second priority track may be performed according to the method determined in S1705 based on the feature of the target signal. For example, if it is instructed to select a pulse adjacent to the selected pulse in the priority priority track, the pulse may be selected by the method according to the example of FIG. 13. Further, when instructed to select a pulse at a position away from the selected pulse in the priority track, the pulse may be selected by the method according to the example of FIG. 15.
  • the pulse having the largest absolute value may be selected in the second priority track.
  • the priority tracks from the 3rd priority track to the following priority tracks may search for candidate pulses and select a pulse to be encoded from the candidate pulses.
  • the candidate pulses for each track are sequentially searched according to the importance, and candidate pulses are searched for in the lowest priority track at the end of the process of selecting an encoding target pulse (S1750).
  • a pair of tracks consists of k tracks
  • Qk is an integer greater than 0
  • the predetermined number qk is greater than the number of pulses to be encoded.
  • More pulses can be retrieved as candidate pulses of the lowest priority track.
  • the number qk of pulses additionally searched in the lowest priority track may be equal to or greater than the number qk-1 of pulses additionally searched in the previous rank importance track (k-1 rank priority track).
  • Pulses to be encoded in the lowest priority track may be selected based on the positional relationship with the pulse selected in the previous rank priority track (k-1 rank priority track) (S1760).
  • the selection of the pulse to be encoded in the k rank importance track may be performed according to the method determined in S1705 based on the feature of the target signal. For example, if the k-1 rank importance track is instructed to select a pulse adjacent to the selected pulse, the pulse may be selected by the method according to the example of FIG. In addition, when instructed to select a pulse at a position away from the selected pulse in the k-1 rank importance track, the pulse may be selected by the method according to the example of FIG. 15.
  • the maximum sine wave can be selected by the number of maximum sine waves (pulses) searched in each track (S1765).
  • the SWB encoder and / or the SWB decoder may search for the maximum sine wave (pulse) by the number of pulses to be encoded for each track and select it as an encoding / quantization target pulse without considering the pulse waves searched for in other tracks.
  • the position / size / sign is quantized with respect to the selected pulses (maximum sine wave) (S1770).
  • the position of the pulse can be changed to quantize information indicating the sign of the selected pulse.
  • the position change is for transmitting only one sign bit per track. If the two selected pulses in the track have the same sign, the pulse with the larger absolute value is placed in the front position. If the two pulses are different, the pulse with the small absolute value is different. This is done by placing in the front position.
  • the position of the pulse may or may not change depending on whether the signs of the two selected pulses within the same track are the same or different.
  • the position, magnitude and / or sign of the pulse is quantized
  • a search for a predetermined number more pulses as the candidate pulses than the number of encoding target pulses in the first priority track is described, but the present invention is not limited thereto.
  • the number of pulses larger than the number of encoding target pulses may not be searched as candidate pulses, but only the pulses that are encoding targets (quantization targets) may be searched.
  • the P1 pulses may be searched for in the priority track. In this case, step S1725 may not be performed.
  • the searching and selection of candidate pulses is performed for each track constituting the track pair, but the present invention is not limited thereto.
  • the encoding target pulse is based on the positional relationship with the pulse selected in the higher priority track for each track. You can also select.
  • the selection of the pulse in each track may be performed according to the method determined in S1705 based on the characteristics of the target signal. In this case, the same method may be applied to each track, or different methods may be applied.
  • a candidate pulse equal to the number of encoding target pulses may be selected (for example, the encoding target pulse is searched instead of the candidate pulse search).
  • the track in order to determine the importance of a track, the track is divided into an upper importance track and a lower importance track based on the energy of the track.
  • the present invention is not limited thereto.
  • other criteria may be applied in addition to energy.
  • the tracks of the track pairs may be searched for pulses in the same manner as described with reference to FIG. 17 to determine an encoding target pulse and quantize the information of the pulses.
  • steps of FIG. 17 may be applied to all tracks in order so that an encoding target pulse may be determined in all tracks of a target signal.
  • the encoding target pulse can be searched according to the present invention.
  • Encoding and decoding methods performed by the CELP mode are the same as described with reference to FIGS. 2 and 4.
  • candidate pulses were searched using the absolute values of pulses based on Equation 2.
  • candidate pulses may be selected based on a convolution value with an impulse response of the LPC synthesis filter. For example, a candidate pulse may be searched for a pulse having a minimum mean square error (MSE) between an impulse response, a convolved pulse value, and a target signal in a current track.
  • MSE minimum mean square error
  • FIG. 18 is a flowchart schematically illustrating a method for searching / selecting a pulse based on a CELP mode in the present invention.
  • FIG. 18 may be performed by the core encoder in the encoder of FIG. 2 and / or the core decoder in the decoder of FIG. 4.
  • the encoder and / or the decoder will be described as performing each step of FIG. 18.
  • a target signal is first generated (S1800).
  • the generated target signal may be a signal passed through a weighting filter or a signal after an adaptive codebook search in the CELP mode, that is, a new signal from which the influence of the adaptive codebook is removed from the audio signal.
  • the target signal when the CELP mode is applied, may be a signal excluding a signal synthesized from (1) an audio signal and (2) a coded adaptive codebook.
  • track-specific energy of tracks constituting the track pair with respect to the target signal is calculated (S1805).
  • a track pair may consist of tracks having the same steps (pulse intervals) and whose position in the track is adjacent to each other with the position of the pulse in the adjacent track.
  • the track-specific energy can be used as a criterion for determining in what order the tracks are to be searched.
  • the energy for each track is used as a reference, but other characteristics other than energy may be calculated and used as a reference for determining the search order.
  • the calculated track-specific energies are compared (S1810). By comparing the energy of the tracks, a track with higher energy may be determined as a track of high importance. Therefore, the track with the highest energy among the tracks constituting the track pair can be searched first as the first track. The track with the second highest energy is then determined as the second rank track to be searched for the second time, and can be determined up to the lowest rank track according to the energy magnitude.
  • the determined rank is a rank for pulse retrieval, and may proceed in the original track order when the retrieved pulse is quantized and the bitstream is constructed.
  • the MSE is calculated for each pulse with respect to the first priority track having the highest importance level (S1815). For each pulse position of the first track, a pulse whose MSE is minimum for the target signal is selected as a candidate pulse of the first track using a convolution value with the impulse response.
  • the MSE for the target signal may be an MSE (Mean Square Error) between a value of the target signal and a value obtained by convolving a candidate pulse with an impulse response.
  • the codebook can be used in the process of obtaining the MSE.
  • the codebook specifies where in the track there may be pulses.
  • the target pulses In the first track, set only the target pulses to be calculated for MSE (Put the amplitude signal (eg, the signal of magnitude 1) only at the position of the target pulse, and set the pulse size to 0 at the position of other pulses.
  • MSE the amplitude signal (eg, the signal of magnitude 1)
  • a predetermined number of pulses for minimizing MSE for the target signal are selected (S1820). Unlike the MDCT-based case, for all pulses in a track, the impulse response and the confluence of each pulse and the MSE between the target signals are obtained, and the predetermined number of searches for the first track in order of decreasing MSE magnitudes. Pulses can be selected. That is, the predetermined number of pulses may be selected in the order of the smallest difference from the target signal.
  • C1 is an integer greater than 0
  • C1 pulses are generated from the pulse with the smallest MSE for the target signal to the pulse with the smallest MSE for the target signal. Can be selected.
  • the position of the selected pulses in the first rank track is fixed, and the MSE for the target signal is calculated at the positions of the pulses in the second rank track (S1825).
  • the MSE between the convolution value and the target signal in the second rank track can be calculated for each pulse.
  • a predetermined number more pulses than the number of pulses to be encoded may be selected as candidate pulses of the second rank track.
  • the pulses selected in the 1st rank track exist in each position, and among the pulses in the 2nd rank track, only the pulse which is the current MSE calculation target is present.
  • Convolution with the impulse response is performed by setting the pulse of the unit size only at the position of the MSE calculation target pulse and setting the pulse size of the other position to 0). In this way, the MSE between the convolution value and the target signal in the second rank track may be calculated for each pulse in consideration of the pulses selected in the first rank track.
  • pulses are selected in the second rank track by the number of pulses to be encoded in the second rank track.
  • the number of pulses to be encoded in the second rank track is C2 (C2 is an integer greater than 0) and additionally c2 (c2 is an integer of 0 or more) pulses are searched.
  • the C2 + c2 second rank track pulses are convolved with the impulse response, respectively, along with the C1 first rank track pulses.
  • C2 pulses may be selected as encoding target pulses of the second rank track in the order in which the MSE between each pulse of the second rank track convolved with the pulses of the first rank track and the target signal is small.
  • the priority tracks from the 3rd priority track to the following priority tracks may search for candidate pulses and select a pulse to be encoded from the candidate pulses. For example, the MSE between the target signal and the value of the convolution with the pulses selected in the first rank track and the pulses selected in the second rank track after searching a predetermined number of candidate pulses in the third rank track more than the number of pulses to be encoded. Can be calculated.
  • the encoding target pulse may be selected based on the MSE value calculated in consideration of the pulses selected in the first rank track and the second rank track.
  • the candidate pulses for each track are sequentially searched according to the importance, the pulses to be encoded are selected, and the candidate pulses are searched up to the lowest priority track.
  • the pulses of the upper major tracks are fixed and the MSE is calculated at the pulse position of the lowermost track (S1835). Assuming that a pair of tracks consists of k tracks, for the number of pulses Ck (Ck is an integer greater than 0) in the lowest priority track (k rank importance track), the predetermined number (ck, ck is an integer greater than or equal to 0). More pulses can be retrieved as candidate pulses of the lowest priority track. For example, the MSE between the convolution value and the target signal in the lowest track can be calculated for each pulse by setting that only the target pulse to calculate the MSE exists in the lowest track and performing convolution with the impulse response. have. For the lowest rank track, Ck + ck candidate pulses can be retrieved in order of decreasing MSE.
  • the pulses selected in the rank 1 to k-1 rank tracks exist at each position, and among the pulses in the k rank (lowest rank) track, only the pulses currently being calculated for MSE are set (1 rank to k).
  • the convolution with the impulse response is performed by setting the unit pulses at the position of the selected pulses in the -1 rank tracks and the position of the current MSE calculation target pulse in the k rank tracks and setting the pulse size at other positions to 0). do. In this way, the MSE between the convolution value and the target signal in the lowest rank track may be calculated for each pulse in consideration of the pulses selected in the previous rank tracks.
  • MSEs may be selected from candidate pulses having small energy by comparing MSEs considering pulses of tracks with large energy and already searched (S1840). That is, pulses are selected in the least significant track by the number of pulses to be encoded in the least significant track, in order of decreasing MSE value in the least significant track calculated in consideration of the previous rank track.
  • Information of the pulses selected in the entire track is quantized (S1845).
  • the information of the quantized pulses may include at least one of a position of the pulse, a magnitude of the pulse, and a sign of the pulse.
  • the position of the pulse can be changed to quantize information indicating the sign of the selected pulse.
  • the position change is for transmitting only one sign bit per track. If the two selected pulses in the track have the same sign, the pulse with the larger absolute value is placed in the front position. If the two pulses are different, the pulse with the small absolute value is different. This is done by placing in the front position.
  • the position of the pulse may or may not change depending on whether the signs of the two selected pulses within the same track are the same or different.
  • the position, magnitude and / or sign of the pulse is quantized
  • the searching and selection of candidate pulses is performed for each track constituting the track pair, but the present invention is not limited thereto.
  • a convolution with an impulse response may be obtained by including the pulses selected from the higher importance tracks for each track. It may be.
  • the base layer (layer 6) to which the CELP mode is applied at least two or more tracks have a structure in which track pairs can be configured. Therefore, in the example of FIG. Need not be performed.
  • the track pair may not exist, and thus, the existence of the track pair may be determined before comparing the energy of each track. If no track pair exists, the encoding target pulses may be selected in order of decreasing MSE between the convolution of each pulse and the original signal for each track.
  • the method of FIG. 18 may also be applied to the encoders of FIGS. 1 and 16.
  • the SWB encoder 130 of FIG. 1 may be converted to a CELP-based enhancement layer unit, and the MDCT-based enhancement layer unit 1630 of FIG. 16 is also CELP-based. It can be switched to the enhancement layer unit.
  • the enhancement layer unit may process higher layers of layer 6 or more that process the SWB signal.
  • layers 6 or more layers may be processed based on MDCT
  • layers 6 or more layers may be processed based on CELP.
  • steps of FIG. 18 may be applied to all tracks in order so that the encoding target pulse may be determined in all tracks of the target signal.
  • the determination of the candidate pulse is referred to as 'search', and the determination of the encoding target pulse is referred to as 'selection'.
  • 'search' the determination of the candidate pulse
  • 'selection' the determination of the encoding target pulse
  • the present invention is not limited thereto, and 'search' and 'selection' may be used interchangeably. have.
  • candidate pulses may be retrieved or selected.
  • FIG. 19 is a flowchart schematically illustrating an example of an audio signal encoding method according to the present invention.
  • the encoder determines an encoding target pulse (S1910).
  • the encoder may determine the importance of the tracks constituting the track pair according to the track-specific energy of the audio signal, and determine the encoding target pulse by searching for the pulses from the track of high importance.
  • the encoder may select (1) a pulse at a position adjacent to a pulse selected as an encoding target pulse in a track of higher importance among tracks constituting the track pair as an encoding target pulse of the current track. Also, the encoder may select (2) the pulse of the position furthest from the pulse selected as the encoding target pulse in the track of the higher importance among the tracks constituting the track pair as the encoding target pulse of the current track.
  • the encoder may search for the pulses to be encoded in the tracks of the most significant importance (search for the same number of pulses as the pulses to be encoded), and may search for a predetermined number more pulses than the number of the pulses to be encoded in the tracks below the most significant importance.
  • the pulses may be searched in the order of increasing absolute value.
  • the magnitude of the absolute value may be determined based on Equation 2.
  • the encoder may select, as the encoding target pulses of the current track, pulses adjacent to the pulse selected as the encoding target pulse in the track of the higher importance among the retrieved pulses as described above.
  • the encoder may select, as the encoding target pulse of the current track, a pulse that is farthest from the pulse selected as the encoding target pulse in the track of the higher importance among the retrieved pulses.
  • the encoding target pulses when there are a plurality of combinations of selectable pulses, can be selected in the order of the largest absolute value among the pulses found in the current track.
  • the encoding target pulses may be selected in the order of the largest absolute value among the pulses searched in the current track.
  • the method of (1) is as described in detail in the examples of FIGS. 12 and 13.
  • the method of (2) is as described in detail in the examples of FIGS. 14 and 15.
  • the encoder may select the encoding target pulse based on the positional relationship with the pulse selected as the encoding target pulse in the track of the higher importance among the tracks constituting the track pair.
  • the selection criteria of the encoding target pulse may be adaptively determined.
  • the encoder selects, as the encoding target pulse of the current track, pulses adjacent to the pulse selected as the encoding target pulse in the track of higher importance among the tracks constituting the track pair.
  • pulses that are separated from the pulse selected as the encoding target pulse in the track of higher importance among the tracks constituting the track pair are used as the encoding target pulse of the current track. You can choose.
  • the coder uses pulses that are separated from the pulse selected as the encoding target pulse in the track of higher importance among the tracks constituting the track pair as the encoding target pulse of the current track. If the tracks constituting the track pair are not tonal, the pulses adjacent to the pulse selected as the encoding target pulse in the track of higher importance among the tracks constituting the track pair may be selected as the encoding target pulse of the current track.
  • the related method is as described in detail in the example of FIG. 17.
  • the encoder may select the encoding target pulse of the current track in order of decreasing mean square error (MSE) between the 'convolution' and the 'audio signal' based on the pulse response selected based on the pulses selected as the encoding target pulse in the track of higher importance. You can also choose.
  • MSE mean square error
  • the convolution may be a convolution of a pulse selected as a pulse to be encoded in a track of higher importance and one of the pulses searched in the current track with an impulse response.
  • Convolution may also be used in the process of searching for pulses in each track.
  • the convolution may be a convolution of an impulse response and a specific pulse in the current track.
  • the MSE between this convolution and the audio signal can be retrieved as candidate pulses of the current track in small order.
  • the related method is as described in detail in the example of FIG. 18.
  • the position of the pulse in the track can be changed in consideration of the sign of the pulse.
  • the content is as described above.
  • the encoder quantizes the selected encoding target pulse (S1920). Quantized pulses may be encoded and transmitted or stored in a bitstream.
  • FIG. 20 is a flowchart schematically illustrating an example of an audio signal decoding method according to the present invention.
  • the decoder generates a pulse for an audio signal (S2010).
  • the pulse for the audio signal may be derived from the received audio data based on dequantization.
  • the pulses were searched or selected from the tracks having the highest importance among the tracks constituting the track pair in the audio signal.
  • the pulses at positions adjacent to the pulse selected as the encoding target pulse in the track of higher importance may be pulses for the current track.
  • the related contents are the same as those described in detail with reference to FIGS. 12 and 13.
  • the pulses farthest from the pulse selected as the encoding target pulse in the track of the higher importance may be pulses for the current track.
  • the related contents are the same as those described with reference to FIGS. 14 and 15.
  • Whether the pulse corresponds to (1) or the pulse corresponding to (2) may be adaptively determined according to the characteristics of the audio signal.
  • the contents are the same as those described in the example of FIG. 17.
  • the pulses corresponding to (2) are pulses selected in order of decreasing mean square error (MSE) between 'convolution' and 'audio signal' with the impulse response based on the pulses selected as encoding target pulses in the track of higher importance.
  • MSE mean square error
  • the convolution may be a convolution of one pulse among pulses selected as encoding target pulses in a track of higher importance and pulses searched in the current track.
  • the pulses retrieved in the current track may be pulses selected in order of MSE between the convolution with the impulse response and the audio signal.
  • the position of the pulse in the track may be a position changed in consideration of the sign of the pulse.
  • the content is as described above.
  • the decoder may reconstruct the audio signal based on the generated pulses (S2020).

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (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)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The present invention relates to a method and apparatus for processing audio signals. The method for encoding audio signals according to the present invention may comprise the steps of: determining the importance of tracks constituting track pairs on the basis of the energy for each track of the audio signals, and searching for pulses starting from the track with the highest importance to determine a pulse to be encoded; and quantizing information of the determined pulse to be encoded.

Description

오디오 신호 부호화 방법 및 오디오 신호 복호화 방법 그리고 이를 이용하는 장치Audio signal encoding method and audio signal decoding method and apparatus using same
본 발명은 오디오(audio) 신호의 부호화 및 복호화에 관한 것으로서, 더 구체적으로 오디오 신호의 부호화/복호화 대상을 검색하는 방법 및 장치에 관한 것이다.The present invention relates to encoding and decoding of an audio signal, and more particularly, to a method and apparatus for searching an encoding / decoding target of an audio signal.
일반적으로, 오디오 신호는 다양한 주파수의 신호가 포함되어 있고, 사람의 가청 주파수는, 20Hz-20kHz인데 비해, 보통 사람의 음성은 약 200Hz-3kHz 영역에 존재한다. 입력 오디오 신호는 사람의 음성이 존재하는 대역뿐만 아니라, 사람의 음성이 존재하기 어려운 7kHz 이상의 고주파 영역의 성분까지 포함하는 경우가 있다. In general, audio signals include signals of various frequencies, and the human audible frequency is in the range of about 200 Hz to 3 kHz, whereas the average human voice is in the range of about 200 Hz to 3 kHz. The input audio signal may include not only a band in which a human voice exists but also a component of a high frequency region of 7 kHz or more, where a human voice is hard to exist.
최근 네트워크의 발달과 고품질 서비스에 대한 사용자 요구가 증가하고 있으며, 협대역(Narrow Band: NB, 이하 ‘NB’라 함), 광대역(Wide Band: WB, 이하 ‘WB’라 함), 초광대역(Super Wide Band: SWB, 이하 ‘SWB’라 함)과 같이 폭넓은 대역을 통해 오디오 신호를 전송하고 있다. Recently, network development and user demand for high-quality service are increasing, narrow band (NB, hereinafter 'NB'), wide band (WB, `` WB ''), ultra wide band ( Super Wide Band: The audio signal is transmitted through a wide band such as SWB (hereinafter referred to as SWB).
이와 관련하여 WB(샘플링 레이트(sampling rate)가 ~ 약 16 kHz) 의 신호에 대해서, NB(샘플링 레이트가 ~ 약 8 kHz)에 적합한 부호화 방식을 적용하게 되면, 음질의 열화가 발생되는 문제점이 있다.In this regard, when a coding method suitable for NB (sampling rate is about 8 kHz) is applied to a signal having a sampling rate of about 16 kHz, sound quality deterioration occurs. .
또한 SWB(샘플링 레이트가 ~ 약 32 kHz)의 신호에 대해서 NB(샘플링 레이트가 ~ 약 8 kHz)에 적합한 부호화 방식이나 WB(샘플링 레이트(sampling rate)가 ~ 약 16 kHz) 에 적합한 부호화 방식을 적용하게 되면 음질의 열화가 발생되는 문제점이 있다.In addition, a coding scheme suitable for NB (sampling rate ~ ~ 8 kHz) or a coding scheme suitable for WB (sampling rate ~ ~ 16 kHz) is applied to a signal of SWB (sampling rate ~ 32 kHz). There is a problem that deterioration of sound quality occurs.
따라서, NB부터 WB 또는 SWB에 이르는 다양한 대역에 대하여, 혹은 다양한 대역 사이에서 통신 환경을 포함하는 다양한 환경에서 사용 가능한 음성 및 오디오 부호화 장치/복호화 장치에 관한 개발이 진행되고 있다.Accordingly, developments are being made on speech and audio encoding devices / decoding devices that can be used in various bands from NB to WB or SWB, or in various environments including communication environments between various bands.
본 발명은 디지털 통신 환경에서 음성 및 오디오 부호화기의 대역 확장 방법 및 그 장치를 제공하는 것을 목적으로 한다.An object of the present invention is to provide a method and apparatus for band extension of a voice and audio encoder in a digital communication environment.
본 발명은 사인 모드(sinusoidal mode)에서 밀집된 펄스들을 추가 비트의 사용 없이 효율적으로 검색하는 방법 및 장치를 제공하는 것을 목적으로 한다.It is an object of the present invention to provide a method and apparatus for efficiently searching for dense pulses in sinusoidal mode without the use of additional bits.
본 발명은 사인 모드로 부호화된 비트스트림의 복호화에 있어서, 하위 호환성을 갖는, 음성 및 오디오 신호의 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다. An object of the present invention is to provide a method and apparatus for encoding / decoding audio and audio signals having backward compatibility in decoding a bitstream encoded in a sine mode.
본 발명은 CELP 모드와 사인 모드에 모두 적용 가능한 펄스 검색 방법 및 장치를 제공하는 것을 목적으로 한다. An object of the present invention is to provide a pulse search method and apparatus applicable to both CELP mode and sine mode.
본 발명은 오디오 신호에 대하여 트랙(track)별로 독립적인 검색을 수행하는 것이 아니라, 트랙들 간의 상관성을 이용해서 효율적인 검색을 수행하는 방법 및 장치를 제공하는 것을 목적으로 한다.It is an object of the present invention to provide a method and apparatus for performing an efficient search by using correlation between tracks, rather than performing independent search for each audio track.
본 발명은 오디오 신호의 부호화 및 복호화에 관한 것으로서, 본 발명에 따른 부호화는 오디오 신호의 트랙별 에너지에 따라서 트랙 쌍을 구성하는 트랙들의 중요도를 결정하고, 상기 중요도가 높은 트랙부터 펄스들을 검색하여 부호화 대상 펄스를 결정하는 단계 및 상기 결정된 부호화 대상 펄스의 정보를 양자화 하는 단계를 포함한다. The present invention relates to encoding and decoding of an audio signal. The encoding according to the present invention determines the importance of tracks constituting a track pair according to track-specific energy of an audio signal, and searches for and encodes pulses from the track of high importance. Determining a target pulse and quantizing information of the determined encoding target pulse.
본 발명에 관한 부호화기는 오디오 신호의 트랙별 에너지에 따라서 트랙 쌍을 구성하는 트랙들의 중요도를 결정하고, 상기 중요도가 높은 트랙부터 펄스들을 검색하여 부호화 대상 펄스를 결정하며, 상기 결정된 부호화 대상 펄스의 정보를 양자화함으로써 오디오 신호를 부호화할 수 있다.The encoder according to the present invention determines the importance of the tracks constituting the track pair according to the track-specific energy of the audio signal, determines the encoding target pulse by searching the pulses from the high importance track, and determines the information of the determined encoding target pulse. By quantizing the audio signal can be encoded.
본 발명에 관한 복호화는 또한, 역양자화를 기반으로, 트랙 쌍을 구성하는 트랙들로부터 오디오 신호에 대한 펄스들을 생성하는 단계 및 상기 펄스들을 기반으로 오디오 신호를 복원하는 단계를 포함한다. 이때, 펄스의 생성은 소정의 순서에 따라서 트랙별로 수행될 수 있다. Decoding according to the present invention also includes generating pulses for the audio signal from the tracks constituting the track pair based on inverse quantization and reconstructing the audio signal based on the pulses. At this time, the generation of the pulse may be performed for each track in a predetermined order.
본 발명에 따른 복호화기는 역양자화를 기반으로, 트랙 쌍을 구성하는 트랙들로부터 오디오 신호에 대한 펄스들을 생성하고 상기 펄스들을 기반으로 오디오 신호를 복원할 수 있다. 복호화기는 트랙 별로 펄스를 생성할 수 있다.The decoder according to the present invention may generate pulses for the audio signal from the tracks constituting the track pair and restore the audio signal based on the pulses based on inverse quantization. The decoder may generate a pulse for each track.
본 발명에 의하면, 밀집된 펄스들을 추가 비트의 사용 없이 효율적으로 검색하고, 전송/저장할 수 있다.According to the present invention, the dense pulses can be efficiently retrieved and transmitted / stored without using additional bits.
본 발명에 의하면, 추가 비트의 사용없이 밀집된 펄스들을 검색할 수 있으므로, 부호화 효율을 크게 향상 시킬 수 있다. According to the present invention, since dense pulses can be searched without using additional bits, coding efficiency can be greatly improved.
본 발명에 의하면, 기존의 사인파 모드에 따라 부호화된 비트스트림을 복호화할 수 있으므로, 하위 호환성이 보장된다.According to the present invention, since the bitstream encoded according to the existing sine wave mode can be decoded, backward compatibility is guaranteed.
본 발명에 의하면, 서로 인접한 포지션의 펄스들로 구성된 인접 트랙들이 존재하는 CELP 모드에서도 밀집된 펄스들을 추가 비트의 사용 없이 효과적으로 검색할 수 있다.According to the present invention, even in the CELP mode in which adjacent tracks composed of pulses of positions adjacent to each other exist, the dense pulses can be effectively searched without using additional bits.
본 발명에 의하면, 트랙별로 독립적인 검색을 수행하는 것이 아니라, 트랙들 사이의 상관성을 이용하여 효율적인 검색을 수행할 수 있다.According to the present invention, it is possible to perform an efficient search by using correlation between tracks instead of performing independent search for each track.
도 1은 초광대역 신호를 대역 확장 방법으로 처리하는 경우에 이용할 수 있는 부호화기 구성의 일 예를 개략적으로 나타낸 것이다. 1 schematically illustrates an example of an encoder configuration that may be used when an ultra-wideband signal is processed by a band extension method.
도 2는 부호화기 구성의 일 예를 핵심 부호화기의 구성을 중심으로 설명하는 도면이다.FIG. 2 is a diagram for explaining an example of a configuration of an encoder based on the configuration of a core encoder.
도 3은 초광대역 신호를 대역 확장 방법으로 처리하는 경우에 이용할 수 있는 복호화기 구성의 일 예를 개략적으로 나타낸 것이다.FIG. 3 schematically illustrates an example of a decoder configuration that may be used when an ultra-wideband signal is processed by a band extension method.
도 4는 복호화기 구성의 일 예를 핵심 복호화기의 구성을 중심으로 설명하는 도면이다.4 is a diagram illustrating an example of a decoder configuration based on the configuration of a core decoder.
도 5는 사인 모드에서 사인파를 부호화하는 방법을 개략적으로 설명하는 도면이다.5 is a diagram schematically illustrating a method of encoding a sine wave in a sine mode.
도 6은 사인 모드가 적용된 레이어 6에서 부호화/복호화되는 트랙 정보를 개략적으로 설명하는 도면이다. FIG. 6 is a diagram schematically illustrating track information encoded / decoded in a layer 6 to which a sine mode is applied.
도 7은 첫 번째 SWB 계층(layer)인 레이어 6(layer 6)에서의 사인파 모드에 관한 트랙(track) 정보의 일 예를 개략적으로 도시한 것이다. FIG. 7 schematically illustrates an example of track information regarding a sine wave mode in layer 6, which is a first SWB layer.
도 8은 2 스텝의 경우로서 두 개의 트랙이 쌍을 이루는 예를 개략적으로 설명하는 도면이다.8 is a diagram schematically illustrating an example in which two tracks are paired in the case of two steps.
도 9는 3 스텝의 경우로서 세 개의 트랙이 쌍을 이루는 예를 개략적으로 설명하는 도면이다.9 is a diagram schematically illustrating an example in which three tracks are paired in the case of three steps.
도 10은 본 발명의 일 예에 따라서 각 레이어 별로 적용되는 사인파 검색 방법을 개략적으로 설명하는 순서도이다.10 is a flowchart schematically illustrating a sine wave search method applied to each layer according to an embodiment of the present invention.
도 11은 트랙 쌍의 특성을 고려하지 않고 트랙별로 독립적인 검색을 수행하는 경우를 개략적으로 설명하는 도면이다.FIG. 11 is a diagram schematically illustrating a case where an independent search is performed for each track without considering the characteristics of track pairs.
도 12는 본 발명에 따라서 트랙 쌍을 이루는 트랙들 사이에서 다른 트랙의 검색 결과를 고려하여 검색을 수행하는 방법의 일 예를 개략적으로 설명하는 도면이다.12 is a diagram schematically illustrating an example of a method of performing a search in consideration of a search result of another track among tracks of a track pair according to the present invention.
도 13은 본 발명에 따라서 트랙 쌍을 이루는 트랙들 사이에서 다른 트랙의 검색 결과를 고려하여 검색을 수행하는 방법의 다른 예를 개략적으로 설명하는 도면이다.FIG. 13 is a view schematically illustrating another example of a method of performing a search in consideration of a search result of another track among tracks of a track pair according to the present invention.
도 14는 본 발명에 따라서 트랙 쌍을 이루는 트랙들 사이에서 다른 트랙의 검색 결과를 고려하여 검색을 수행하는 방법의 또 다른 예를 개략적으로 설명하는 도면이다.14 is a view schematically illustrating another example of a method of performing a search in consideration of a search result of another track among tracks of a track pair according to the present invention.
도 15의 예에서는, 두 개 이상의 트랙이 트랙 쌍을 구성하며, 트랙 쌍을 이루는 각 트랙들이 인접하여 있다고 가정한다.In the example of FIG. 15, it is assumed that two or more tracks constitute a track pair, and that each track constituting the track pair is adjacent.
도 16은 도 14 및 도 16의 방법이 적용되는 부호화기의 일 예를 개략적으로 설명한 블록도이다. FIG. 16 is a block diagram schematically illustrating an example of an encoder to which the methods of FIGS. 14 and 16 are applied.
도 17은 본 발명에 따라서 프레임 에너지 혹은 토널리티에 따라서 트랙의 펄스를 검색하는 방법의 일 예를 개략적으로 설명하는 순서도이다.17 is a flowchart schematically illustrating an example of a method of searching for a pulse of a track according to frame energy or tonality according to the present invention.
도 18은 본 발명에서 CELP 모드를 기반으로 펄스를 검색/선택하는 방법을 개략적으로 설명하는 순서도이다.18 is a flowchart schematically illustrating a method for searching / selecting a pulse based on a CELP mode in the present invention.
도 19는 본 발명에 따른 오디오 신호 부호화 방법의 일 예를 개략적으로 설명하는 순서도이다. 19 is a flowchart schematically illustrating an example of an audio signal encoding method according to the present invention.
도 20은 본 발명에 따른 오디오 신호 복호화 방법의 일 예를 개략적으로 설명하는 순서도이다.20 is a flowchart schematically illustrating an example of an audio signal decoding method according to the present invention.
이하, 도면을 참조하여, 본 발명의 실시형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어서, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 설명을 생략할 수도 있다. EMBODIMENT OF THE INVENTION Hereinafter, embodiment of this invention is described concretely with reference to drawings. In describing the embodiments of the present specification, when it is determined that a detailed description of a related well-known configuration or function may obscure the subject matter of the present disclosure, the description may be omitted.
어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. When a component is said to be “connected” or “connected” to another component, it may be directly connected to or connected to that other component, but it may be understood that another component may exist in between. Should be.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성 단위로 이루어짐을 의미하지 않는다. 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. Components shown in the embodiments of the present invention are shown independently to represent different characteristic functions, and do not mean that each component is made of separate hardware or one software component unit. Each component is included in a list of components for convenience of description, and at least two of the components may be combined to form one component, or one component may be divided into a plurality of components to perform a function.
네트워크의 발달과 고품질 서비스에 대한 요구에 대응하여, NB(Narrow Band)부터 WB(Wide Band) 또는 SWB(Super Wide Band)에 이르는 다양한 대역에 대하여 오디오 신호 처리 방법이 연구되고 있다. 예컨대, 음성 및 오디오 부호화/복호화 기술로서, CELP(Code Excited Linear Prediction) 모드, 사인(sinusoidal) 모드 등이 사용될 수 있다.In response to the development of networks and the demand for high-quality services, audio signal processing methods have been studied for various bands from narrow bands (NB) to wide bands (WB) or super wide bands (SWBs). For example, as a speech and audio encoding / decoding technique, a Code Excited Linear Prediction (CELP) mode, a sinusoidal mode, or the like may be used.
부호화기는 베이스라인 코더(baseline coder)와 향상 계층(enhancement layer)으로 구분될 수 있다. 향상 계층은 다시 저대역 향상(Lower Band Enhancement: LBE) 계층과 대역 확장(Bandwidth Extension: BWE) 계층 그리고 고대역 향상(Higher Band Enhancement: HBE) 계층으로 나뉠 수 있다.The coder may be divided into a baseline coder and an enhancement layer. The enhancement layer may be further divided into a lower band enhancement layer (LBE) layer, a bandwidth extension (BWE) layer, and a higher band enhancement layer (HBE) layer.
LBE 계층은 핵심 부호화기(core encoder)/핵심 복호화기(core decoder)로 처리한 음원과 원음과의 차이 신호, 즉 여기 신호(excited signal)를 부호화/복호화함으로써, 저대역의 음질을 향상시킨다. 고대역 신호는 저대역 신호와의 사이에서 유사성을 가지므로, 저대역을 이용한 고대역 확장 방법을 통해 낮은 비트율로 고대역 신호를 복원할 수 있다.The LBE layer improves low-band sound quality by encoding / decoding a difference signal, that is, an excitation signal, between a sound source processed by a core encoder / core decoder and an original sound. Since the high band signal has similarity with the low band signal, it is possible to recover the high band signal at a low bit rate through the high band extension method using the low band.
고대역의 신호를 확장하여 부호화하고, 복호화 과정을 거처 복원하는 방법으로서, SWB 신호를 스케일러블하게 확장(scalable extension)하여 처리하는 방법을 고려할 수 있다. SWB 신호를 대역 확장하는 방법은 MDCT(Modified Discrete Cosine Transform) 도메인에서 동작할 수 있다. As a method of extending and encoding a high band signal and restoring the decoding process, a method of scaling and processing a SWB signal may be considered. The method of band extending the SWB signal may operate in the Modified Discrete Cosine Transform (MDCT) domain.
확장 계층들은 제네릭 모드(generic mode)와 사인 모드(sinusoidal mode)로 나뉘어 처리될 수 있다. 예컨대, 3 개의 확장 계층이 이용되는 경우에, 첫 번째 확장 계층은 제네릭 모드와 사인 모드로 처리되며, 두 번째 및 세 번째 확장 계층은 사인 모드로 처리되도록 할 수 있다.The enhancement layers may be handled by being divided into a generic mode and a sinusoidal mode. For example, when three enhancement layers are used, the first enhancement layer may be processed in generic mode and sign mode, and the second and third enhancement layers may be processed in sign mode.
본 명세서에서 사인파(sinusoid)는 정현파(sine wave)와 정현파를 반파장만큼 위상 쉬프트(shift)한 여현파(cosine wave)를 모두 포함한다. 따라서, 본 발명에서 사인파(sinusoid)는 정현파(sine wave)를 의미할 수도 있고, 여현파(cosine wave)를 의미할 수도 있다. 입력된 사인파가 여현파인 경우에는 부호화/복호화 과정에서 정현파 또는 여현파로 변환될 수 있으며, 이 변환은 입력 신호가 거치는 변환의 변환 방법에 따른다. 입력되는 사인파가 정현파인 경우에도 부호화/복호화 과정에서 여현파 또는 정현파로 변환될 수 있으며, 이 변환은 입력 신호가 거치는 변환의 변환 방법에 따른다. In the present specification, a sinusoid includes both a sine wave and a cosine wave in which the sinusoid is shifted in phase by half. Therefore, in the present invention, a sinusoid may mean a sine wave or a cosine wave. If the input sine wave is a cosine wave, it may be converted into a sine wave or cosine wave in the encoding / decoding process, and the conversion depends on the conversion method of the input signal. Even when the input sine wave is a sine wave, it may be converted to a cosine wave or a sine wave in the encoding / decoding process, and the conversion depends on the conversion method of the input signal.
제네릭 모드에서, 코딩은 코딩된 광대역(wideband) 시그널 서브 밴드의 적응적 복제(replication)에 기반해서 이루어진다. 사인 모드의 코딩에서는 고주파 콘텐츠(high frequency contents)에 사인파가 추가된다. In generic mode, coding is based on adaptive replication of the coded wideband signal subbands. In sine mode coding, a sine wave is added to high frequency contents.
사인 모드는 주기성이 강한 신호 또는 톤 성분이 있는 신호에 대한 효율적 부호화 기법으로서, 각 사인파 성분에 대해 부호(sign), 크기(amplitude), 위치(position) 정보를 부호화할 수 있다. 각 계층(layer)마다 소정 개수, 예를 들면 10개의 MDCT 계수들을 부호화 할 수 있다.The sine mode is an efficient encoding technique for a signal having a strong periodicity or a signal having a tone component, and may encode sign, amplitude, and position information for each sine wave component. A predetermined number, for example, 10 MDCT coefficients may be encoded for each layer.
도 1은 초광대역 신호를 대역 확장 방법으로 처리하는 경우에 이용할 수 있는 부호화기 구성의 일 예를 개략적으로 나타낸 것이다. 도 1에서는 사인 모드가 적용된 G.718 애넥스(annex) B 스케일러블 확장(scalable extension)의 부호화기 구조를 예로서 설명한다. 1 schematically illustrates an example of an encoder configuration that may be used when an ultra-wideband signal is processed by a band extension method. In FIG. 1, an encoder structure of a G.718 Annex B scalable extension to which a sine mode is applied will be described as an example.
도 1의 부호화기는 SWB 확장을 위해 제네릭 모드와 사인 모드로 구성되며, 추가적인 비트가 할당될 경우, 사인 모드를 확장하여 사용할 수 있다.The encoder of FIG. 1 is composed of a generic mode and a sign mode for SWB extension, and when an additional bit is allocated, the encoder mode can be used by extending the sign mode.
도 1을 참조하면, 부호화기(100)는 다운 샘플링부(105), 핵심 부호화기(110), MDCT 부(115), 토널리티(tonality) 추정부, 토널리티 판단부(125), SWB(Super Wide Band) 부호화부(130)를 포함한다. SWB 부호화부(130)는 제네릭 모드부(135), 사인파 모드부(140), 추가 사인파부(145, 150)를 포함한다.Referring to FIG. 1, the encoder 100 includes a down sampling unit 105, a core encoder 110, an MDCT unit 115, a tonality estimation unit, a tonality determination unit 125, and a SWB ( Super Wide Band) encoding unit 130. The SWB encoder 130 includes a generic mode unit 135, a sine wave mode unit 140, and additional sine wave units 145 and 150.
SWB 신호가 입력되면, 다운 샘플링부(105)는 입력 신호를 다운 샘플링하여 핵심 부호화기(core encoder)가 처리할 수 있는 WB 신호를 생성한다. When the SWB signal is input, the down sampling unit 105 down-samples the input signal to generate a WB signal that can be processed by a core encoder.
SWB 부호화는 MDCT 도메인에서 수행된다. 핵심 부호화기(110)는 WB 신호를 부호화하여 합성된 WB 신호를 MDCT 하고, MDCT 계수들을 출력한다.SWB encoding is performed in the MDCT domain. The core encoder 110 encodes the WB signal to MDCT the synthesized WB signal and outputs MDCT coefficients.
MDCT(Modified Discrete Cosine Transform)는 시간 영역의 신호를 주파수 영역의 신호로 변환시키는 변환으로서, 중첩 합산(overlap-addition) 방식을 사용하여 원본 신호를 변환 전 신호를 완전 복원(perfect reconstruction) 할 수 있다. 수식 1은 MDCT의 일 예를 나타낸 것이다.Modified Discrete Cosine Transform (MDCT) is a transformation that transforms a signal in the time domain into a signal in the frequency domain, and uses an overlap-addition method to completely reconstruct a signal before converting the original signal. . Equation 1 shows an example of MDCT.
<수식 1><Equation 1>
Figure PCTKR2013007505-appb-I000001
Figure PCTKR2013007505-appb-I000001
Figure PCTKR2013007505-appb-I000002
는 윈도윙된 시간 영역의 입력 신호
Figure PCTKR2013007505-appb-I000003
는 대칭 윈도우 함수이다.
Figure PCTKR2013007505-appb-I000004
는 N개의 MDCT 계수이다.
Figure PCTKR2013007505-appb-I000005
는 2N 개의 샘플을 가지는 복원된 시간 영역의 입력 신호이다.
Figure PCTKR2013007505-appb-I000002
Input signal in the windowed time domain
Figure PCTKR2013007505-appb-I000003
Is a symmetric window function.
Figure PCTKR2013007505-appb-I000004
Is N MDCT coefficients.
Figure PCTKR2013007505-appb-I000005
Is an input signal of the reconstructed time domain with 2N samples.
MDCT 부(115)는 SWB 신호를 MDCT하며, 토널리티 추정부(120)가 MDCT된 신호의 토널리티를 추정한다. 제네릭 모드와 사인 모드 중 어떤 모드를 선택할 것인지는 토널리티(tonality)에 기반해서 판단한다. 예컨대, 스캐일러블 SWB 대역 확장 방법에서 3 개의 계층을 이용하는 경우에, 첫 번째 계층, 즉 레이어 6mo(layer 7mo)는 토널리티 추정에 기반해서 선택될 수 있다. 3 개의 계층 중 레이어 6mo에서는 제네릭 모드 및/또는 사인 모드가 사용될 수 있으며, 상위 계층(레이어 7mo, 레이어 8mo)에서는 사인 모드가 사용될 수 있다.The MDCT unit 115 MDCTs the SWB signal, and the tonality estimator 120 estimates the tonality of the MDCT signal. The choice between generic mode and sine mode is based on tonality. For example, when using three layers in the scalable SWB band extension method, the first layer, that is, layer 6mo (layer 7mo) may be selected based on the tonality estimate. The generic mode and / or the sine mode may be used in the layer 6mo of the three layers, and the sine mode may be used in the upper layer (layer 7mo, layer 8mo).
토널리티 추정은 현재 프레임(current frame)과 과거 프레임(past frame)에서 스펙트럴 피크(spectral peak)들 사이의 상관 분석(correlation analysis)에 기반하여 수행될 수 있다. The tonality estimation may be performed based on correlation analysis between spectral peaks in a current frame and a past frame.
토널리티 추정부(120)은 토널리티 추정값을 토널리티 판단부(125)로 출력한다.The tonality estimator 120 outputs the tonality estimate to the tonality determiner 125.
토널리티 판단부(125)는 MDCT 변환된 신호가 토널(tonal)인지를 토널리티 정도를 기반으로 판단해서, SWB 부호화부(130)에 전달한다. 예컨대, 토널리티 판단부(125)는 토널리티 추정부(120)로부터 입력된 토널리티 추정값을 소정의 기준값과 비교하여 MDCT 변환된 신호가 토널 신호인지 비토널 신호인지를 판단한다. The tonality determiner 125 determines whether the MDCT-converted signal is tonal based on the degree of tonality, and transmits it to the SWB encoder 130. For example, the tonality determination unit 125 compares the tonality estimation value input from the tonality estimator 120 with a predetermined reference value to determine whether the MDCT-converted signal is a tonal signal or a non-tonal signal.
도시된 바와 같이, SWB 부호화부(130)는 MDCT된 SWB 신호의 MDCT 계수를 처리한다. 이때, SWB 부호화부(130)는 핵심 부호화기(110)를 거쳐 입력되는 합성 WB 신호의 MDCT 계수를 이용하여 SWB 신호의 MDCT 계수를 처리할 수 있다. As shown, the SWB encoder 130 processes the MDCT coefficients of the MDCT SWB signal. In this case, the SWB encoder 130 may process the MDCT coefficients of the SWB signal by using the MDCT coefficients of the synthesized WB signal input through the core encoder 110.
토널리티 판단부(125)에 의해 MDCT 변환된 신호가 토널이 아니라고 판단된 경우에는 제네릭 모드부(135)로 신호가 전달되고, 토널이라고 판단된 경우에는 사인파 모드부(140)로 신호가 전달된다.When it is determined that the MDCT-converted signal is not tonal by the tonality determination unit 125, the signal is transmitted to the generic mode unit 135, and when it is determined to be tonal, the signal is transmitted to the sine wave mode unit 140. do.
제네릭 모드는 입력 프레임이 토널(tonal)이 아니라고 판단된 경우에 이용될 수 있다. 저대역 스펙트럼(low frequency spectrum)을 직접 고주파수(high frequency)들로 트랜스포즈(transpose)하고, 원래(original) 고주파수의 포락선(envelope)을 따르도록 파라미터화 한다. 이때, 파라미터화는 원래 고주파수의 경우보다 더 개략적으로(coarsely) 이루어질 수 있다. 제네릭 모드를 적용함으로써, 고주파 콘텐츠를 낮은 비트율로 코딩할 수 있다.The generic mode may be used when it is determined that the input frame is not tonal. The low frequency spectrum is directly transposed to high frequencies and parameterized to follow the envelope of the original high frequency. At this time, the parameterization can be made more coarsely than the case of the original high frequency. By applying the generic mode, high frequency content can be coded at a low bit rate.
예컨대, 제네릭 모드에서는 고주파 대역을 부대역(sub-band)로 나누고 소정의 유사성 판단 기준에 따라서, 부호화되고 파락선 정규화된 광대역 콘텐츠들 중에서 가장 유사하게 매치(match)되는 것을 선택한다. 선택된 콘텐츠들은 스케일링된 뒤에 합성된 고주파 컨텐츠로 출력된다. For example, in the generic mode, the high frequency band is divided into sub-bands, and according to a predetermined similarity criterion, the one that is most similarly matched among coded and block normalized broadband contents is selected. The selected contents are scaled and output as synthesized high frequency content.
사인 모드(sinusoidal mode)부(140)는 입력된 프레임이 토널인 경우에 이용될 수 있다. 사인 모드에서는 사인파 성분들의 유한 집합(finite set)을 HF(High Frequency) 스펙트럼에 더해서 SWB 신호를 생성한다. 이때, HF 스펙트럼은 SW 합성 신호의 MDCT 계수를 이용하여 생성된다. The sinusoidal mode unit 140 may be used when the input frame is tonal. In sine mode, a finite set of sinusoidal components is added to the high frequency (HF) spectrum to generate a SWB signal. At this time, the HF spectrum is generated using the MDCT coefficients of the SW synthesis signal.
추가 사인파부(145, 150)에서는 제네릭 모드로 출력된 신호와 사인 모드로 출력된 신호에 추가 사인파를 부가하여 생성 신호를 향상시킨다. 예컨대, 추가 사인파부(145, 150)은 추가 비트가 할당되는 경우에, 전송할 추가 사인파(펄스)를 결정하고, 양자화하는 사인 모드를 확장하여 신호를 개선한다. The additional sine wave units 145 and 150 add additional sine waves to the signal output in the generic mode and the signal output in the sine mode to improve the generated signal. For example, when additional bits are allocated, the additional sine wave units 145 and 150 determine an additional sine wave (pulse) to transmit and extend the sine mode to quantize to improve the signal.
한편, 도시된 바와 같이, 핵심 부호화기(110), 토널리티 판정부(125), 제네릭 모드부(135), 사인파 모드부(140), 추가 사인파부(145, 150)의 출력들은 비트 스트림으로 복호화기에 전송될 수 있다.Meanwhile, as illustrated, outputs of the core encoder 110, the tonality determination unit 125, the generic mode unit 135, the sine wave mode unit 140, and the additional sine wave units 145 and 150 are converted into bit streams. May be sent to the decoder.
도 2는 부호화기 구성의 일 예를 핵심 부호화기의 구성을 중심으로 설명하는 도면이다. 도 2를 참조하면, 부호화기(200)는 대역폭 확인부(205), 샘플링 변환부(210), MDCT 변환부(215), 핵심 부호화부(220), 중요 MDCT 계수 추출부 및 양자화부(265)를 포함한다.FIG. 2 is a diagram for explaining an example of a configuration of an encoder based on the configuration of a core encoder. Referring to FIG. 2, the encoder 200 includes a bandwidth checker 205, a sampling converter 210, an MDCT converter 215, a core encoder 220, an important MDCT coefficient extractor and a quantizer 265. It includes.
대역폭 확인부(205)는 입력 신호(오디오 신호)가 NB(Narrow Band) 신호인지, WB(Wide Band) 신호인지, SWB(Super Wide Band) 신호인지를 판별할 수 있다. NB 신호는 샘플링 레이트(sampling rate)가 8 kHz, WB 신호는 샘플링 레이트가 16 kHz, SWB 신호는 샘플링 레이트가 32 kHz일 수 있다.The bandwidth checking unit 205 may determine whether the input signal (audio signal) is a narrow band (NB) signal, a wide band (WB) signal, or a super wide band (SWB) signal. The NB signal may have a sampling rate of 8 kHz, the WB signal may have a sampling rate of 16 kHz, and the SWB signal may have a sampling rate of 32 kHz.
대역폭 확인부(205)는 입력 신호를 주파수 영역(domain)으로 변환하여 스펙트럼의 상위 대역 빈(bin)들의 성분과 존부를 판별할 수 있다.The bandwidth checking unit 205 may convert an input signal into a frequency domain to determine a component and a zone of upper band bins of the spectrum.
부호화기(200)는 입력 신호가 고정되는 경우, 예컨대, 입력 신호가 NB로 고정되는 경우에는 대역폭 확인부(205)를 포함하지 않을 수도 있다.The encoder 200 may not include the bandwidth checking unit 205 when the input signal is fixed, for example, when the input signal is fixed to NB.
대역폭 확인부(205)는 입력 신호를 판별하여 NB 또는 WB 신호는 샘플링 변환부(210)로 출력하고, SWB 신호는 샘플링 변환부(210) 또는 MDCT 변환부(215)로 출력한다.The bandwidth checking unit 205 determines the input signal and outputs the NB or WB signal to the sampling converter 210, and outputs the SWB signal to the sampling converter 210 or the MDCT converter 215.
샘플링 변환부(210)는 입력 신호를 핵심 부호화기(220)에 입력되는 WB 신호로 변환하는 샘플링을 수행한다. 예컨대, 샘플링 변환부(210)는 입력된 신호가 NB 신호의 경우에는 샘플링 레이트가 12.8kHz인 신호가 되게 업 샘플링(up-sampling) 하고, 입력된 신호가 WB 신호인 경우에는 샘플링 레이트가 12.8khz인 신호가 되게 다운 샘플링(down-sampling) 하여 12.8kHz의 하위 대역 신호를 만들 수 있다. 입력된 신호가 SWB 신호인 경우에, 샘플링 변환부(210)는 샘플링 레이트가 12.8 kHz가 되도록 다운 샘플링하여 핵심 부호화기(220)의 입력 신호를 생성한다. The sampling converter 210 performs sampling for converting an input signal into a WB signal input to the core encoder 220. For example, the sampling converter 210 up-samples the input signal to be a signal having a sampling rate of 12.8 kHz when the input signal is an NB signal, and the sampling rate is 12.8 kHz when the input signal is a WB signal. The down-sampling to the signal can produce a 12.8kHz low-band signal. When the input signal is a SWB signal, the sampling converter 210 downsamples the sampling rate to be 12.8 kHz to generate an input signal of the core encoder 220.
핵심 부호화기(220)는 전처리부(225), 선형 예측 분석부(230), 양자화부(235), CELP 모드 수행부(240), 양자화부(245), 역양자화부(250), 합성 및 후처리부(255) 및 MDCT 변환부(260)를 포함한다.The core encoder 220 includes a preprocessor 225, a linear prediction analyzer 230, a quantizer 235, a CELP mode performer 240, a quantizer 245, an inverse quantizer 250, synthesis and post-processing. A processing unit 255 and an MDCT conversion unit 260.
전처리부(225)는 핵심 부호화기(220)에 입력되는 하위 대역 신호들 중에서 낮은 주파수 성분을 필터링하여 원하는 대역의 신호만을 선형 예측 분석부에 전달할 수 있다. The preprocessor 225 may filter low frequency components among the lower band signals input to the core encoder 220 and transmit only a signal of a desired band to the linear prediction analyzer.
선형 예측 분석부(230)는 전처리부(225)에서 처리된 신호로부터 선형 예측 계수(Linear Prediction Coefficient: LPC)를 추출할 수 있다. 예컨대, 선형 예측 분석부(230)는 입력된 신호로부터 16차 선형 예측 계수를 추출하여 양자화부(235)에 전달할 수 있다.The linear prediction analyzer 230 may extract a linear prediction coefficient (LPC) from the signal processed by the preprocessor 225. For example, the linear prediction analyzer 230 may extract the 16th linear prediction coefficient from the input signal and transfer the extracted 16th linear prediction coefficient to the quantization unit 235.
양자화부(235)는 선형 예측 분석부(230)로부터 전달된 선형 예측 계수를 양자화한다. 하위 대역에서 양자화된 선형 예측 계수를 이용하여 원본 하위 대역 신호와의 필터링을 통해 선형 예측 잔여 신호(residual)를 생성한다. The quantization unit 235 quantizes the linear prediction coefficients transmitted from the linear prediction analyzer 230. The linear prediction residual signal is generated by filtering the original lower band signal using the quantized linear prediction coefficients in the lower band.
양자화부(235)에서 생성된 선형 예측 잔여 신호는 CELP 모드 수행부(240)로 입력된다. The linear prediction residual signal generated by the quantization unit 235 is input to the CELP mode performing unit 240.
CELP 모드 수행부(240)는 입력된 선형 예측 잔여 신호의 피치(pitch)를 자기 상관(self-correlation) 함수를 이용하여 검출한다. 이때, 1차 개루프(open loop) 피치 검색 방법과 1차 폐루프(closed loop) 피치 검색 방법, AbS(Analysis by Synthesis) 등의 방법이 이용될 수 있다. The CELP mode performing unit 240 detects a pitch of the input linear prediction residual signal by using a self-correlation function. In this case, a first open loop pitch search method, a first closed loop pitch search method, and Abs (Analysis by Synthesis) may be used.
CELP 모드 수행부(240)는 검출된 피치들의 정보를 기반으로 적응 코드북 인덱스와 게인 정보를 추출할 수 있다. CELP 모드 수행부(240)는 선형 예측 잔여 신호에서 적응 코드북의 기여분을 제한 나머지 성분들을 기반으로 고정 코드북의 인덱스와 게인을 추출할 수 있다. The CELP mode performing unit 240 may extract the adaptive codebook index and the gain information based on the detected pitch information. The CELP mode performing unit 240 may extract the index and the gain of the fixed codebook based on the remaining components limiting the contribution of the adaptive codebook in the linear prediction residual signal.
CELP 모드 수행부(240)는 피치 검색, 적응 코드북 검색, 고정 코드북 검색을 통해 추출한 선형 예측 잔여 신호에 관한 파라미터들(피치, 적응 코드북 인덱스 및 게인, 고정 코드북 인덱스 및 게인)을 양자화부(245)에 전달한다.The CELP mode performing unit 240 quantizes the parameters (pitch, adaptive codebook index and gain, fixed codebook index and gain) related to the linear prediction residual signal extracted through the pitch search, the adaptive codebook search, and the fixed codebook search. To pass on.
양자화부(245)는 CELP 모드 수행부(240)로부터 전달된 파라미터들을 양자화 한다.The quantizer 245 quantizes the parameters transmitted from the CELP mode performer 240.
양자화부(245)에서 양자화된 선형 예측 잔여 신호에 관한 파라미터들은 비트 스트림으로 출력될 수 있어 복호화기로 전송될 수 있다. 또한, 양자화부(245)에서 양자화된 선형 예측 잔여 신호에 관한 파라미터들은 역양자화부(250)로 전달될 수 있다.Parameters related to the quantized linear prediction residual signal in the quantization unit 245 may be output as a bit stream and transmitted to the decoder. In addition, the parameters related to the quantized linear prediction residual signal may be transferred to the inverse quantizer 250.
역양자화부(250)는 CELP 모드를 통해 추출되고 양자화된 파라미터들을 이용하여 복원된 여기 신호를 생성한다. 생성된 여기 신호는 합성 및 후처리부(255)에 전달된다.The inverse quantization unit 250 generates an excitation signal reconstructed using the extracted and quantized parameters through the CELP mode. The generated excitation signal is transmitted to the synthesis and post processor 255.
합성 및 후처리부(255)는 복원된 여기 신호와 양자화된 선형 예측 계수를 합성한 후 12.8 kHz의 합성 신호를 생성하고 업 샘플링을 통해 16 kHz의 WB 신호를 복원한다.The synthesis and post-processing unit 255 synthesizes the reconstructed excitation signal and the quantized linear prediction coefficient, generates a synthesized signal of 12.8 kHz, and restores the 16 kHz WB signal through upsampling.
MDCT 변환부(260)는 복원된 WB 신호를 MDCT(Modified Discrete Cosine Transform) 방법으로 변환한다. MDCT 변환된 WB 신호는 중요 MDCT 계수 추출 및 양자화부(265)로 출력된다.The MDCT converter 260 converts the restored WB signal by a modified disc cosine transform (MDCT) method. The MDCT transformed WB signal is output to the important MDCT coefficient extraction and quantization unit 265.
중요 MDCT 계수 추출 및 양자화부(265)는 도 1에 도시된 SWB 부호화부에 대응한다. 중요 MDCT 계수 추출 및 양자화부(265)는 MDCT 변환부(215)로부터 SWB에 대한 MDCT 변환 계수를 입력받고, MDCT 변환부(260)로부터 합성된 WB에 대한 MDCT 변환 계수를 입력 받는다. The important MDCT coefficient extraction and quantization unit 265 corresponds to the SWB coding unit shown in FIG. The important MDCT coefficient extraction and quantization unit 265 receives the MDCT transform coefficients for the SWB from the MDCT transform unit 215 and the MDCT transform coefficients for the synthesized WB from the MDCT transform unit 260.
중요 MDCT 계수 추출 및 양자화부(265)는 입력된 MDCT 변환 계수들을 이용하여 양자화할 변환 계수를 추출한다. 중요 MDCT 계수 추출 및 양자화부(265)가 MDCT 계수를 추출하는 구체적인 내용은 도 1의 SWB 부호화부에 관한 설명과 동일하다. The important MDCT coefficient extraction and quantization unit 265 extracts a transform coefficient to be quantized by using the input MDCT transform coefficients. The details of the important MDCT coefficient extraction and quantization unit 265 extracting MDCT coefficients are the same as those of the SWB encoder of FIG. 1.
중요 MDCT 계수 추출 및 양자화부(265)는 추출한 MDCT 계수를 양자화하여 비트스트림으로 출력하고, 복호화기로 전송한다. The important MDCT coefficient extraction and quantization unit 265 quantizes the extracted MDCT coefficients, outputs them as a bitstream, and transmits them to the decoder.
도 3은 초광대역 신호를 대역 확장 방법으로 처리하는 경우에 이용할 수 있는 복호화기 구성의 일 예를 개략적으로 나타낸 것이다.FIG. 3 schematically illustrates an example of a decoder configuration that may be used when an ultra-wideband signal is processed by a band extension method.
도 3을 참조하면, 복호화기(300)은 핵심 복호화기(305), 제1 후처리부(310) 업 샘플링부(315), SWB 복호화부(320), IMDCT부(350), 제2 후처리부(355), 가산부(360)를 포함한다. SWB 복호화부(320)는 제네릭 모드부(325), 사인파부(330), 추가 사인파부(335, 340)를 포함한다.Referring to FIG. 3, the decoder 300 includes a core decoder 305, a first post processor 310, an up sampling unit 315, a SWB decoder 320, an IMDCT unit 350, and a second post processor. 355, and an adder 360. The SWB decoder 320 includes a generic mode unit 325, a sinusoidal wave unit 330, and additional sinusoidal wave units 335 and 340.
도시된 바와 같이, 핵심 부호화기(305), 제네릭 모드부(325), 사인파부(330), 추가 사인파부(335)에는 비트 스트림으로터 처리할 대상 정보 및/또는 처리를 위한 보조 정보가 입력될 수 있다.As shown, the core encoder 305, the generic mode unit 325, the sine wave unit 330, and the additional sine wave unit 335 may receive target information to be processed from the bit stream and / or auxiliary information for processing. Can be.
핵심 복호화기(305)는 광대역 신호를 복호화하여 WB 신호를 합성한다. 합성된 WB 신호는 제1 후처리부(310)으로 입력되고, 합성된 WB 신호의 MDCT 변환 계수는 SWB 복호화부(320)으로 입력된다. The core decoder 305 decodes the wideband signal to synthesize the WB signal. The synthesized WB signal is input to the first post processor 310, and the MDCT transform coefficients of the synthesized WB signal are input to the SWB decoder 320.
제1 후처리부(310)는 합성된 WB 신호를 시간 도메인에서 개선한다. The first post processor 310 improves the synthesized WB signal in the time domain.
업 샘플링브(315)는 WB 신호를 업샘플링하여 SWB 신호를 구성한다. The upsample 315 upsamples the WB signal to form a SWB signal.
SWB 복호화부(320)는 비트스트림으로부터 입력된 SWB 신호의 MDCT를 복호화한다. 이때, 핵심 복호화기(305)로부터 입력되는 합성된 WB 신호(Synthesized Super Wide Band Signal)의 MDCT 계수를 이용할 수 있다. SWB 신호의 복호화는 주로 MDCT 도메인에서 수행된다.The SWB decoder 320 decodes the MDCT of the SWB signal input from the bitstream. In this case, the MDCT coefficients of the synthesized WB signal (Synthesized Super Wide Band Signal) input from the core decoder 305 may be used. The decoding of the SWB signal is mainly performed in the MDCT domain.
제네릭 모드부(325)와 사인파 모드부(330)는 확장 계층의 첫 번째 계층을 디코딩하며, 상위 계층은 추가 사인파부(335, 340)에서 복호화될 수 있다.The generic mode unit 325 and the sine wave mode unit 330 decode the first layer of the enhancement layer, and the upper layer may be decoded by the additional sine wave units 335 and 340.
SWB 복호화부(320)는 SWB 부호화부에서 설명한 부호화 과정에 대응하여, 부호화 과정의 역순으로 복호화 과정을 수행한다. 이때, SWB 복호화부(320)는 비트스트림으로부터 입력 정보가 토널(tonal)인지 여부를 판단하고, 토널인 경우에는 사인파 모드부(330) 또는 사인파 모드부(330)와 추가 사인파부(340)에서 복호화 과정을 진행하며, 토널이 아닌 경우에는 제네릭 모드부(325) 또는 제네릭 모드부(325)와 추가 사인파부(335)에서 복호화 과정을 진행하도록 할 수 있다.The SWB decoder 320 performs a decoding process in the reverse order of the encoding process, corresponding to the encoding process described by the SWB encoder. In this case, the SWB decoder 320 determines whether the input information is tonal from the bitstream, and in the case of the tonal, the SWB decoder 320 or the sine wave mode unit 330 and the additional sine wave unit 340. If the decoding process is not performed, and not tonal, the decoding process may be performed by the generic mode unit 325 or the generic mode unit 325 and the additional sine wave unit 335.
예컨대, 제네릭 모드부(325)는 적응적인 부대역(sub-band) 복제(replica)에 의해 HF 신호를 구성한다. 이어서, 두 개의 사인파 성분들이 첫 번재 SWB 확장 계층의 스펙트럼에 더해진다. 제네릭 모드와 사인 모드는 사인 모드 코딩의 기반이 되는 유사한 향상 계층들을 활용한다. For example, the generic mode unit 325 configures the HF signal by adaptive sub-band replica. Two sinusoidal components are then added to the spectrum of the first SWB enhancement layer. Generic mode and sine mode utilize similar enhancement layers that underlie sine mode coding.
사인파 모드부(330)는 사인파 성분들의 유한 집합에 기반해 HF(High Frequency) 신호를 생성한다. 추가 사인파부(335, 340)는 상위 SWB 계층에 사인파를 추가하고, 고대역 콘텐츠의 퀄리티를 개선한다.The sine wave mode unit 330 generates a high frequency (HF) signal based on a finite set of sine wave components. The additional sine wave units 335 and 340 add sine waves to the upper SWB layer and improve the quality of the high band content.
IMDCT부(350)는 역 MDCT(Inverse MDCT)를 수행해서 시간 영역의 신호를 출력하며, 제2 후처리부(355)는 역MDCT 처리된 신호를 시간 영역에서 개선한다. The IMDCT unit 350 performs an inverse MDCT to output a signal in the time domain, and the second post-processing unit 355 improves the inverse MDCT processed signal in the time domain.
가산부(360)는 핵심 복호화기에서 복호화되고 업 샘플링된 SWB 신호와 SWB 복호화부(320)에서 출력된 SWB 신호를 합해, 복원된 신호를 출력한다.The adder 360 adds the SWB signal decoded and upsampled by the core decoder and the SWB signal output from the SWB decoder 320 and outputs a reconstructed signal.
도 4는 복호화기 구성의 일 예를 핵심 복호화기의 구성을 중심으로 설명하는 도면이다. 도 4를 참조하면, 복호화기(400)는 핵심 복호화기(410), 후처리/샘플링 변환부(450), 역양자화부(460), 상위 MDCT 계수 생성부(470), MDCT 역변환부(480), 후처리 필터링부(490)를 포함한다.4 is a diagram illustrating an example of a decoder configuration based on the configuration of a core decoder. Referring to FIG. 4, the decoder 400 includes a core decoder 410, a post-processing / sampling transformer 450, an inverse quantizer 460, an upper MDCT coefficient generator 470, and an MDCT inverse transformer 480. And a post-processing filtering unit 490.
부호화기로부터 전송된 NB 신호 또는 WB 신호를 포함하는 비트스트림은 핵심 복호화기(410)로 입력된다. The bitstream including the NB signal or WB signal transmitted from the encoder is input to the core decoder 410.
핵심 복호화기(410)는 역변환부(420), 선형 예측 합성부(430), MDCT 변환부(440)를 포함한다. The core decoder 410 includes an inverse transformer 420, a linear prediction synthesizer 430, and an MDCT transformer 440.
역변환부(420)는 CELP 모드로 부호화된 오디오 정보를 역변환하고, 부호화기로부터 수신한 파라미터를 기반으로 여기 신호를 복원할 수 있다. 역변환부(420)는 복원된 여기 신호를 선형 예측 합성부(430)에 전송할 수 있다The inverse transform unit 420 may inverse transform the audio information encoded in the CELP mode and restore the excitation signal based on a parameter received from the encoder. The inverse transform unit 420 may transmit the reconstructed excitation signal to the linear prediction synthesis unit 430.
선형 예측 합성부(430)는 역변환부(420)로부터 전송된 여기 신호와 부호화기로부터 전송된 선형 예측 계수를 이용하여 하위 대역 신호(NB 신호, WB 신호 등)를 복원할 수 있다. The linear prediction synthesizer 430 may reconstruct a lower band signal (NB signal, WB signal, etc.) using the excitation signal transmitted from the inverse transformer 420 and the linear prediction coefficient transmitted from the encoder.
선형 예측 합성부(430)에서 복원된 하위 대역 신호(12.8 kHz)는 NB로 다운 샘플링 되거나 WB로 업 샘플링 될 수 있다. WB 신호는 후처리/샘플링 변환부(450)로 출력되거나, MDCT 변환부(440)로 출력된다.The lower band signal (12.8 kHz) reconstructed by the linear prediction synthesis unit 430 may be downsampled to NB or upsampled to WB. The WB signal is output to the post-processing / sampling converter 450 or to the MDCT converter 440.
후처리/샘플링 변환부(450)는 NB 신호 또는 WB 신호를 업 샘플링하여, SWB 신호 복원에 사용할 합성 신호를 생성할 수 있다.The post-processing / sampling converter 450 may up-sample the NB signal or the WB signal to generate a synthesized signal for use in restoring the SWB signal.
MDCT 변환부(440)는 복원된 하위 대역 신호를 MDCT 변환하고, 상위 MDCT 계수 생성부(470)로 전송한다.The MDCT converter 440 MDCT transforms the restored lower band signal and transmits the MDCT coefficient generator 470.
역양자화부(460)와 상위 MDCT 계수 생성부(470)는 도 3에 도시된 복호화기의 SWB 복호화부에 대응한다. The inverse quantizer 460 and the upper MDCT coefficient generator 470 correspond to the SWB decoder of the decoder illustrated in FIG. 3.
역양자화부(460)는 비트스트림을 통해 양자화된 SWB 신호와 파라미터를 부호화기로부터 수신하고, 수신한 정보를 역양자화한다.The dequantizer 460 receives the SWB signal and the parameter quantized through the bitstream from the encoder and dequantizes the received information.
역양자화된 SWB 신호 및 파라미터는 상위 MDCT 계수 생성부(470)에 전달된다.The dequantized SWB signal and the parameter are transmitted to the upper MDCT coefficient generator 470.
상위 MDCT 계수 생성부(470)는 핵심 복호화기(410)로부터 합성된 NB 신호 또는 WB 신호에 대한 MDCT 계수를 수신하고, SWB 신호에 대한 비트스트림(bitstream)으로부터 필요한 파라미터를 수신하여 역양자화된 SWB 신호에 대한 MDCT 계수를 생성한다. 도 3에 도시된 바와 같이, 상위 MDCT 계수 생성부(470)는 신호의 토널 여부에 따라서 제네릭 모드 또는 사인 모드를 적용할 수 있고, 확장 계층의 신호에 대해서는 추가 사인파를 적용할 수 있다.The upper MDCT coefficient generator 470 receives the MDCT coefficients for the synthesized NB signal or the WB signal from the core decoder 410, and receives necessary parameters from the bitstream for the SWB signal to dequantize the SWB. Generate MDCT coefficients for the signal. As shown in FIG. 3, the upper MDCT coefficient generator 470 may apply the generic mode or the sine mode according to whether the signal is tonal, and may apply an additional sine wave to the signal of the enhancement layer.
MDCT 역변환부(480)는 생성된 MDCT 계수에 대한 역변환을 통해 신호를 복원한다. The MDCT inverse transform unit 480 restores a signal through an inverse transform on the generated MDCT coefficients.
후처리 필터링부(490)는 복원된 신호에 대한 필터링을 적용할 수 있다. 필터링을 통해 양자화 에러들 줄이고, 피크를 강조하고 밸리(valley)를 죽이는 등의 후처리를 진행할 수 있다.The post processing filter 490 may apply filtering on the restored signal. Filtering allows for post-processing such as reducing quantization errors, highlighting peaks and killing valleys.
후처리 필터링부(490)를 통해 복원된 신호와 후처리/샘플링 변환부(450)를 통해 복원된 신호를 합성하여 SWB 신호를 복원할 수 있다.The SWB signal may be restored by synthesizing the signal restored by the post-processing filter 490 and the signal restored by the post-processing / sampling converter 450.
대역 확장 방법에 관해 도 1 내지 4에서 설명한 바와 같이, SWB 입력 신호를 부호화하기 위해 핵심 부호화기와 향상 계층 처리부(SWB 부호화부)를 거친다. SWB 신호를 복호화하기 위해서는 핵심 복호화기와 향상 계층 처리부(SWB 복호화부)를 거친다. As described with reference to FIGS. 1 to 4, the band extension method passes through a core encoder and an enhancement layer processor (SWB encoder) to encode a SWB input signal. To decode the SWB signal, a core decoder and an enhancement layer processor (SWB decoder) are used.
SWB 입력 신호 중 WB에 해당하는 신호 정보를 부호화하기 위해 SWB 신호는 WB에 대응하는 샘플링 레이트(sampling rate)로 다운 샘플링하고, WB 부호화기(핵심 부호화기)로 부호화된다. In order to encode the signal information corresponding to the WB among the SWB input signals, the SWB signal is downsampled at a sampling rate corresponding to the WB and encoded by a WB encoder (core encoder).
SWB 신호의 부호화에 이용되기 위해, 부호화된 WB 신호는 합성된 후 MDCT 변환되며, WB에 대한 MDCT 계수가 SWB 부호화부로 입력될 수 있다. SWB 입력 신호는 MDCT 변환 후 MDCT 계수 도메인에서 토널리티(tonality) 정도에 따라서 제네릭 모드와 사인 모드로 나뉘어 부호화된다. 부호화 효율을 높이기 위해 추가로 향상 계층에 대한 부호화가 추가 사인파를 이용하여 수행될 수 있다. In order to be used for encoding the SWB signal, the encoded WB signal is synthesized and then MDCT transformed, and the MDCT coefficients for the WB may be input to the SWB encoder. The SWB input signal is encoded by being divided into a generic mode and a sine mode according to the degree of tonality in the MDCT coefficient domain after MDCT conversion. In order to increase encoding efficiency, encoding for an enhancement layer may be further performed using an additional sine wave.
SWB 신호 중 WB에 해당하는 신호 정보는 WB 복호화기(핵심 복호화기)로 복호화된다. 복호화된 WB 신호는 합성된 후 MDCT 변환되어, WB에 대한 MDCT 계수가 SWB 복호화부에 입력될 수 있다. 부호화된 SWB 신호는 부호화된 모드에 대응하여 제네릭 모드와 사인 모드로 나뉘어 복호화되며, 추가로 향상 계층에 대한 복호화가 추가 사인파를 이용하여 수행될 수 있다. 역변환된 SWB 신호와 WB 신호는 업샘플링 등 추가 후처리를 거처 합성된 뒤 SWB 신호로 복원될 수 있다.Signal information corresponding to WB among SWB signals is decoded by a WB decoder (core decoder). The decoded WB signal is synthesized and then MDCT-converted so that the MDCT coefficients for the WB can be input to the SWB decoder. The encoded SWB signal is decoded by being divided into a generic mode and a sine mode corresponding to the encoded mode, and further, decoding of an enhancement layer may be performed using an additional sine wave. The inverted SWB signal and the WB signal may be synthesized through additional post-processing such as upsampling and then restored to the SWB signal.
이하, 본 발명과 관련하여 사인 모드에 대하여 설명한다.Hereinafter, the sine mode will be described in relation to the present invention.
사인 모드는 오디오 신호를 구성하는 모든 사인파(오디오 신호를 구성하는 사인파 성분이라고도 함)들을 부호화하는 것이 아니라, 오디오 신호를 구성하는 사인파들 중 에너지가 큰 사인파만 부호화하는 방식이다. 따라서, 모든 사인파를 부호화할 때와 달리, 사인 모드에서 부호화기는 선택된 사인파의 크기(amplitude) 정보, 부호(sign) 정보뿐만 아니라, 선택된 사인파의 위치(position) 정보를 부호화하여 복호화기에 전송한다.The sine mode does not encode all sine waves constituting the audio signal (also called sine wave components constituting the audio signal), but encodes only sine waves having a high energy among sine waves constituting the audio signal. Therefore, unlike when encoding all sine waves, in the sine mode, the encoder encodes the selected sine wave as well as the amplitude information and the sign information and transmits the position information of the selected sine wave to the decoder.
이때, 오디오 신호를 구성하는 ‘사인파’들은, 오디오 신호를 구성하는 각 사인파들을 MDCT 변환하여 얻은 MDCT 계수(X(k))들을 의미한다. 따라서, 본 명세서에서 사인 모드에서 사인파에 대한 특성을 설명할 때, 사인파의 크기는 해당 사인파 성분을 MDCT 변환하여 얻은 MDCT 계수의 크기(C), 해당 사인파 성분의 부호(sign), 해당 사인파 성분의 위치(pos)를 의미함에 유의한다. 사인파의 위치는 주파수 도메인에서의 위치로서, 오디오 신호를 구성하는 각 사인파를 특정하는 파수(wave number) k일 수도 있고, 파수(k)에 대응하는 인덱스일 수도 있다. In this case, the sine waves constituting the audio signal mean MDCT coefficients X (k) obtained by MDCT transforming the respective sine waves constituting the audio signal. Therefore, when describing the characteristics of the sine wave in the sine mode in the present specification, the magnitude of the sine wave is the magnitude (C) of the MDCT coefficient obtained by MDCT conversion of the sine wave component, the sign of the sine wave component, Note the position (pos). The position of the sine wave is a position in the frequency domain, and may be a wave number k specifying each sine wave constituting the audio signal, or an index corresponding to the wave number k.
본 명세서에서는 설명의 편의를 위해, 오디오 신호를 구성하는 각 사인파 성분의 MDCT 계수를 ‘사인파’ 또는 ‘펄스’로 간단하게 표시함에 유의한다. 따라서, 본 명세서에서는 특별한 설명이 없는 경우에, ‘사인파’또는 ‘펄스’는 입력 오디오 신호를 구성하는 각 사인파 성분의 MDCT 계수를 의미할 수 있다.In the present specification, for convenience of description, it is noted that the MDCT coefficient of each sine wave component constituting the audio signal is simply displayed as 'sine wave' or 'pulse'. Therefore, in the present specification, unless otherwise specified, 'sine wave' or 'pulse' may mean an MDCT coefficient of each sine wave component constituting the input audio signal.
또한, 본 명세서에서는 설명의 편의를 위해, 사인파의 위치를 해당 사인파의 파수(wave number)로 특정하여 설명한다. 다만, 이는 설명의 편의를 위한 것으로서 본 발명은 이에 한정되지 않으며, 사인파의 위치로서 주파수 도메인에서 사인파들의 위치를 특정할 수 있는 별도의 정보를 이용하는 경우에도 본 발명의 내용은 동일하게 적용될 수 있다.In addition, in the present specification, for convenience of description, the position of the sine wave is described by specifying the wave number of the sine wave. However, this is for convenience of description and the present invention is not limited thereto, and the contents of the present invention may be equally applied even when using separate information for specifying the positions of the sine waves in the frequency domain as the position of the sine wave.
사인 모드는 사인파의 위치 정보를 전송해야 하기 때문에 모든 사인파들을 부호화 하기에는 적합하지 않지만, 적은 개수의 사인파들을 이용하여 음질을 보장해야 하거나, 낮은 비트율을 이용하여 전송해야 하는 경우에 효과적이다. 따라서, 대역 확장 기법이나 낮은 비트율의 오디오 코덱에 활용될 수 있다.The sine mode is not suitable for encoding all sine waves because it needs to transmit position information of the sine wave, but is effective when a small number of sine waves should be used to guarantee sound quality or a low bit rate should be transmitted. Therefore, it can be used for a band extension technique or a low bit rate audio codec.
도 5는 사인 모드에서 사인파를 부호화하는 방법을 개략적으로 설명하는 도면이다. 5 is a diagram schematically illustrating a method of encoding a sine wave in a sine mode.
도 5를 참조하면, 입력된 오디오 신호를 구성하는 사인파들이 각 사인파의 파수(k)에 에 대응하여 위치한다. Referring to FIG. 5, sine waves constituting the input audio signal are located corresponding to the wave number k of each sine wave.
위쪽을 향하는 사인파는 양의 값을 가지는 MDCT 계수를 나타내며, 아래를 향하는 사인파는 음의 값을 가지는 MDCT 계수를 의미한다. 사인파(MDCT 계수)의 크기는 사인파의 길이에 대응한다. An upward sine wave represents a positive MDCT coefficient, and a downward sine wave represents a negative MDCT coefficient. The magnitude of the sine wave (MDCT coefficient) corresponds to the length of the sine wave.
도 5는 위치 4에 크기 126을 가지는 양의 사인파가 위치하고, 위치 74에 크기 18을 가지는 음의 사인파가 위치하는 경우를 예로서 설명한다. 사인 모드에서는, 상술한 바와 같이, 사인파의 크기 정보, 부호 정보, 위치 정보를 전송한다.5 illustrates a case where a positive sine wave having a size 126 is positioned at position 4 and a negative sine wave having a size 18 is positioned at position 74 as an example. In the sine mode, as described above, magnitude information, sign information, and position information of a sine wave are transmitted.
두 개의 가장 큰 사인파를 검색하여 해당 정보를 부호화하는 경우를 가정하면, 도 5의 예에서는 위치 4에 위치하는 첫 번째 사인파의 정보 [크기:126 부호:+ 위치:4]를 부호화하고, 두 번째 사인파의 정보 [크기:74 부호:- 위치:18]을 부호화할 수 있다. Assuming a case where two largest sine waves are retrieved and corresponding information is encoded, in the example of FIG. 5, information [size: 126 code: + position: 4] of the first sine wave located at position 4 is encoded and the second is encoded. The sine wave information [Size: 74 code:-Position: 18] can be encoded.
앞서 설명한 바와 같이, 사인 모드(sinusoidal mode)에서는 모든 성분을 부호화하는 것이 아니라, 에너지가 큰 사인파(sinusoid)만 부호화 하는 방식을 의미한다. 따라서, 모든 성분을 부호화하는 경우와 달리, 사인 모드에서는 부호화하는 사인파들의 크기 정보, 부호 정보뿐만 아니라, 부호화하는 사인파들의 위치 정보를 전송해야 한다. As described above, in the sinusoidal mode, not all components are encoded, but only a sinusoid having a large energy. Therefore, unlike the case of encoding all components, in the sine mode, not only the size information and the sign information of the sine waves to be encoded, but also the position information of the sine waves to be encoded should be transmitted.
예컨대, 레이어 구조를 고려할 때, SWB 신호의 첫 번째 레이어인 레이어 6에서는 각 트랙(track)별로 정해진 개수의 사인파를 검색해서 양자화할 수 있다. For example, in consideration of the layer structure, in the layer 6 which is the first layer of the SWB signal, a predetermined number of sine waves may be searched and quantized for each track.
도 6은 사인 모드가 적용된 레이어 6에서 부호화/복호화되는 트랙 정보를 개략적으로 설명하는 도면이다. FIG. 6 is a diagram schematically illustrating track information encoded / decoded in a layer 6 to which a sine mode is applied.
도 6의 예에서는, 도시된 바와 같이, 6 개의 트랙(트랙 0 ~ 트랙 5) 중 트랙 1 내지 3에 대해서는 각각 2개의 사인파가 검색되어 양자화되며, 트랙 4와 트랙 5에 대해서는 각각 하나의 사인파가 검색되어 양자화된다. 검색은 각 트랙별로 수행될 수 있다.In the example of FIG. 6, as shown in FIG. 6, two sine waves are searched and quantized for tracks 1 to 3 of six tracks (tracks 0 to 5), and one sine wave for track 4 and track 5 is quantized. Is searched and quantized. The search can be performed for each track.
도 6의 예에서, S_i_j(i,j는 0 이상의 정수)는 i번째 트랙세어의 j 번째 사인파를 의미한다. 도 6의 예에서, 검색은 트랙 0 → 트랙 1 → 트랙 2 → 트랙 3 → 트랙 4 → 트랙 5의 순서로 진행될 수 있다. In the example of FIG. 6, S_i_j (i, j is an integer of 0 or more) means a j-th sine wave of the i-th track segment. In the example of FIG. 6, the search may proceed in the order of track 0 → track 1 → track 2 → track 3 → track 4 → track 5.
앞서 설명한 바와 같이, 트랙 0 내지 트랙 3들에 대하여 트랙별로 2개의 사인파를 검색하고, 트랙 4와 트랙 5에 대해서 트랙별로 하나의 사인파를 검색한다고 가정하자. 이 경우, 도 6을 참조하면, 레이어 6에서 총 10개의 사인파가 S_0_1 → S_0_2 → S_1_1 → S_1_2 → S_2_1 → S_2_2 → S_3_1 → S_3_2 → S_4_1 → S_5_1의 순서로 검색될 수 있다. As described above, suppose that two sine waves are searched for each track for tracks 0 to 3 and one sine wave is searched for each track for tracks 4 and 5. In this case, referring to FIG. 6, a total of 10 sine waves in layer 6 may be searched in the order of S_0_1 → S_0_2 → S_1_1 → S_1_2 → S_2_1 → S_2_2 → S_3_1 → S_3_2 → S_4_1 → S_5_1.
한편, 도 1과 같은 G.718 기반의 SWB 스케일러블 확장 부호화기의 경우, 32 KHz의 SWB 입력 신호를 부호화하기 위해, 베이스라인 부호화기(baseline coder)와 인핸스먼트 레이어(enhancement layer)를 포함할 수 있다.Meanwhile, in the case of the G.718-based SWB scalable extension encoder as shown in FIG. 1, a baseline coder and an enhancement layer may be included in order to encode a 32 KHz SWB input signal. .
예컨대, SWB 입력 신호 중 WB 대역폭의 신호를 부호화하기 위해, 16 kHz로 다운샘플링이 수행될 수 있으며, 다운샘플링된 신호는 WB 부호화기에서 부호화될 수 있다. 부호화된 WB 신호는 인핸스먼트 레이어에서의 부호화에 사용되기 때문에, 합성 후 MDCT로 변환되어, WB MDCT 계수가 인핸스먼트 레이어로 입력된다. 인핸스먼트 레이어의 부호화를 위해, SWB 입력 신호는 MDCT로 변환된 후 MDCT 계수 도메인에서 토널리티(tionality) 정도에 따라 두 모드(제너릭 모드와 사인 모드)로 나뉘어 부호화 될 수 있다. For example, in order to encode a signal having a WB bandwidth among SWB input signals, downsampling may be performed at 16 kHz, and the downsampled signal may be encoded by a WB encoder. Since the encoded WB signal is used for encoding in the enhancement layer, it is converted to MDCT after synthesis, and the WB MDCT coefficient is input to the enhancement layer. For the encoding of the enhancement layer, the SWB input signal may be converted into MDCT and then divided into two modes (general mode and sine mode) according to the degree of tonality in the MDCT coefficient domain.
사인 모드(sinusoidal mode)는, 레이어 6의 경우 제너릭 모드와 병렬적으로 처리될 수도 있다.The sinusoidal mode may be processed in parallel with the generic mode in the case of layer 6.
토널(tonal)로 판단된 프레임의 경우, 사인 모드로 부호화될 수 있다. 레이어 6의 경우, 사인 모드에서는 HF(High Frequency) 신호에서 10개의 펄스를 추출해서 부호화할 수 있다. 예컨대, 최초의 4 펄스들은 7000~8600 Hz에 해당하는 대역에서 추출되며, 그 다음 4 개의 펄스들은 8600~10200 Hz 대역에서 추출되고, 마지막 2 개의 펄스들은 각각 10200~11800 Hz 대역과 11800~12600 Hz 대역에서 추출된다.In the case of a frame determined to be tonal, it may be encoded in a sine mode. In the case of layer 6, in the sine mode, 10 pulses may be extracted from an HF (High Frequency) signal and encoded. For example, the first four pulses are extracted in the band corresponding to 7000-8600 Hz, the next four pulses are extracted in the 8600-10200 Hz band, and the last two pulses are respectively the 10200-11800 Hz band and 11800-12600 Hz. Extracted from the band.
상술한 바와 같이, 사인 모드에서는 펄스의 위치를 양자화/부호화하여 전송한다. 추출하는 펄스의 위치는 원신호 M 32 (k) 와 HF 합성 신호
Figure PCTKR2013007505-appb-I000006
의 차이값을 이용하여 결정할 수 있다. 이때, M 은 MDCT 계수의 크기, k 는 펄스(사인파)의 위치로서 파수(wave number)를 나타낸다. 따라서, M 32 (k) 는 32KHz까지의 SWB에 대한 위치 k 에서의 펄스 크기를 나타낸다.
As described above, in the sine mode, the position of the pulse is quantized / coded and transmitted. The position of the extracted pulse is the original signal M 32 (k) and the HF composite signal.
Figure PCTKR2013007505-appb-I000006
It can be determined using the difference value of. At this time, M is the magnitude of the MDCT coefficient, k is the position of the pulse (sine wave) represents a wave number (wave number). Thus, M 32 (k) represents the pulse magnitude at position k for the SWB up to 32 KHz.
부호화할 10개의 펄스 (펄스의 위치)는 수식 1을 통해 결정될 수 있다. 구체적으로, 수식 2를 통해, 원신호 M 32 (k) 와 HF 합성 신호
Figure PCTKR2013007505-appb-I000007
의 차이값이 가장 큰 10개의 펄스를 결정할 수 있다.
Ten pulses (positions of pulses) to be encoded may be determined through Equation 1. Specifically, through Equation 2, the original signal M 32 (k) and the HF composite signal
Figure PCTKR2013007505-appb-I000007
The ten pulses with the largest difference value can be determined.
<수식 2><Formula 2>
Figure PCTKR2013007505-appb-I000008
Figure PCTKR2013007505-appb-I000008
HF 합성 신호는 이전 레이어에서 합성된 신호이므로, 원신호와 HF 합성 신호가 큰 위치의 신호가 현재 레이어에서 부호화될 신호로서 결정될 수 있다.Since the HF synthesized signal is a synthesized signal in the previous layer, a signal having a large position between the original signal and the HF synthesized signal may be determined as a signal to be encoded in the current layer.
SWB 신호에 대한 베이스 레이어인 레이어 6의 사인 모드에서는 HF 합성 신호가 존재하지 않기 때문에, 수식 2에서 HF 합성 신호
Figure PCTKR2013007505-appb-I000009
의 값을 0으로 설정할 수 있다. 따라서, 레이어 6의 경우에, 수식 2를 이용한 펄스의 검색 과정은 원신호 M 32 (k) 의 최대값을 찾는 과정이 된다.
Since the HF composite signal does not exist in the sine mode of the layer 6 which is the base layer for the SWB signal, the HF composite signal in Equation 2
Figure PCTKR2013007505-appb-I000009
You can set the value of to 0. Therefore, in the case of layer 6, the pulse search process using Equation 2 is a process of finding the maximum value of the original signal M 32 (k) .
D(k)에서 전체 밴드를 5개의 서브밴드(subband)로 분할해서 각 서브밴드별 Dj(k)를 만들 수 있다. 이때 각 서브밴드의 펄스 개수 Nj는 미리 정해질 수 있다. Dj(k)는 서브밴드 jk에서 원본 신호와 HF 합성 신호 사이의 차이이며, Nj 는 서브밴드 j에서 검색되는 펄스의 개수이다. In D (k) , the entire band may be divided into five subbands to make D j (k) for each subband. In this case, the pulse number N j of each subband may be predetermined. Dj (k) is the difference between the original signal and the HF synthesized signal at k of subband j , and N j is the number of pulses searched in subband j .
표 1은 각 서브밴드별로 Nj개의 가장 큰 D 값(레이어 6의 경우, 가장 큰 원본 신호)을 찾는 과정을 개략적으로 설명한 것이다.Table 1 schematically illustrates the process of finding the N j largest D values (the largest original signal in the case of layer 6) for each subband.
<표 1>TABLE 1
Figure PCTKR2013007505-appb-I000010
Figure PCTKR2013007505-appb-I000010
표 1의 예와 같은 정렬 방법을 통해 최대값 N을 검색하고, 검색한 N 값을 input_data라는 배열에 저장할 수 있다.Using the sorting method shown in the example in Table 1, the maximum value N can be retrieved and the retrieved N value can be stored in an array called input_data.
도 7은 첫 번째 SWB 계층(layer)인 레이어 6(layer 6)에서의 사인파 모드에 관한 트랙(track) 정보의 일 예를 개략적으로 도시한 것이다.FIG. 7 schematically illustrates an example of track information regarding a sine wave mode in layer 6, which is a first SWB layer.
도 7의 예에서는 주파수 도메인에서 오디오 신호를 구성하는 각 사인파들(MDCT 계수)가 각 사인파들의 파수에 대응하는 위치에 표시되어 있다. In the example of FIG. 7, each sine wave (MDCT coefficient) constituting the audio signal in the frequency domain is displayed at a position corresponding to the wave number of each sine wave.
트랙 0은 280 ~ 342의 주파수 구간에 위치하며, 위치 단위(예컨대, 파수 또는 주파수)에 있어서 2 만큼씩의 간격을 가지는(2 스텝, 2 step) 사인파들로 구성된다. 트랙 1은 281 ~ 343의 주파수 구간에 위치하며, 2만큼의 간격을 가지는 사인파들로 구성된다. 트랙 2는 344~406의 주파수 구간에 위치하며, 2 만큼씩의 간격을 가지는 사인파들로 구성된다. 트랙 3은 345~407의 주파수 구간에 위치하며, 2 만큼씩의 간격을 가지는 사인파들로 구성된다. 트랙 4는 408~471의 주파수 구간에 위치하며, 1 만큼씩의 간격(1 스텝, 1 step)을 가지는 사인파들로 구성된다. 트랙 5는 472~503의 주파수 구간에 위치하며, 1 만큼씩의 간격을 가지는 사인파들로 구성된다. Track 0 is located in the frequency range of 280 to 342, and consists of sine waves with a spacing of two (2 steps, 2 steps) in the position unit (for example, wave number or frequency). Track 1 is located in the frequency range of 281 to 343, and consists of sine waves with an interval of two. Track 2 is located in the frequency range of 344 ~ 406, and consists of sine waves spaced by two. Track 3 is located in the frequency range of 345 ~ 407, and consists of sine waves with intervals of two. Track 4 is located in the frequency range of 408 ~ 471, and consists of sine waves having an interval of one step (1 step, 1 step). Track 5 is located in the frequency range of 472 ~ 503, and consists of sine waves with intervals of one.
사인파 모드에서는 트랙 순서에 따라서 각 트랙마다 정해진 개수만큼 소정의 조건을 만족하는 사인파(펄스)를 검색하고 검색된 사인파를 양자화한다. 본 명세서에서, 사인파 모드가 적용되는 경우에 사인파(펄스)를 양자화한다는 것은 사인파(펄스)의 MDCT 계수를 양자화하는 것을 포함할 수 있다. MDCT 계수는 특정 주파수에서 사인파의 크기를 의미할 수 있다. In the sine wave mode, a sine wave (pulse) satisfying a predetermined condition is searched by a predetermined number for each track according to the track order, and quantized. In the present specification, quantizing a sine wave (pulse) when sine wave mode is applied may include quantizing a MDCT coefficient of a sine wave (pulse). The MDCT coefficient may mean the magnitude of a sine wave at a specific frequency.
본 명세서에서 사인파(sinusoid)를 양자화한다는 것은, (1) 사인파의 크기(MDCT 계수의 절대값)를 양자화하는 것과 (2) 사인파의 주파수(MDCT 계수의 위치)를 양자화 하는 것과 (3) 사인파의 위상(MDCT 계수의 부호(Sign))를 양자화 하는 것을 포함한다. In this specification, quantizing a sinusoid includes (1) quantizing the magnitude of the sine wave (absolute value of the MDCT coefficients), (2) quantizing the frequency of the sine wave (position of the MDCT coefficients), and (3) Quantizing the phase (Sign) of the MDCT coefficients.
또한, 본 명세서에서 펄스는 사인파의 크기인 MDCT 계수를 의미할 수 있다. 펄스가 특정 주파수에서의 사인파 피크를 의미할 수 있다는 점에서 최대값 사인파(maxima sinusoid) 또는 사인파 최대값이라고 칭할 수도 있다. 본 명세서에서 ‘최대값 사인파(펄스)’ 혹은 ‘펄스(최대값 사인파)’와 같이 병기하는 것은 최대값 사인파와 펄스가 동일한 의미일 수 있다는 것을 지시하는 것이지, 병기가 없는 경우에는 최대값 사인파와 펄스가 서로 다른 의미일 수 있다는 것을 뜻하는 것이 아니다. 따라서, 본 명세서에서 펄스를 양자화 한다는 것은 (1) 펄스(MDCT 계수)의 크기를 양자화 한다는 것과 (2) 펄스의 위치를 양자화 한다는 것을 포함하다. 이때, 펄스의 크기를 양자화 한다는 것은 펄스의 절대값을 양자화하는 것과 펄스의 부호(sign)를 양자화한다는 것을 포함할 수 있다. In addition, in the present specification, a pulse may mean an MDCT coefficient that is a magnitude of a sine wave. It may also be referred to as a maximum sinusoid or sinusoidal maximum in that a pulse may mean a sinusoidal peak at a particular frequency. In the present specification, staging such as 'maximum sine wave (pulse)' or 'pulse (maximum sine wave)' indicates that the maximum sine wave and the pulse may have the same meaning. It does not mean that pulses can mean different things. Thus, quantizing a pulse herein includes (1) quantizing the magnitude of the pulse (MDCT coefficient) and (2) quantizing the position of the pulse. In this case, quantizing the magnitude of the pulse may include quantizing the absolute value of the pulse and quantizing the sign of the pulse.
아울러, 본 명세서에서는 사인파를 구성하는 펄스(MDCT 계수)들 중 특정 펄스를 선택하여 양자화 한 후 사인파가 복원될 수 있도록 양자화된 펄스를 부호화 한다는 점에서, 사인파를 양자화한다는 의미는 펄스를 양자화 한다는 의미로 사용될 수도 있다.In addition, in the present specification, quantizing a sine wave means that the sine wave is quantized in that the sine wave is encoded so that the sine wave can be recovered after selecting and quantizing a specific pulse among the pulses (MDCT coefficients) constituting the sine wave. It may be used as.
한편, 사인파는 사인파 모드에서 각 주파수의 신호를 의미할 수도 있고, 펄스는 CELP 모드에서 특정 위치의 신호를 의미할 수도 있다. Meanwhile, the sine wave may mean a signal of each frequency in the sine wave mode, and the pulse may mean a signal at a specific position in the CELP mode.
다만, 본 명세서에서 ‘사인파’가 ‘펄스’를 배제하거나, ‘펄스’가 ‘사인파’를 배제하지 않음에 유의한다. However, in the present specification, 'sine wave' excludes 'pulse', or 'pulse' does not exclude 'sine wave'.

레이어 6에서는 비트 할당에 따라서, 트랙 0부터 트랙 3까지의 4 개 트랙에서는 각각 2개의 펄스가 검색되어 양자화되며, 트랙 4와 트랙 5에서는 각각 하나의 펄스가 검색되어 양자화된다.In layer 6, two pulses are searched and quantized in each of four tracks from track 0 to track 3 according to bit allocation, and one pulse is searched and quantized in track 4 and track 5, respectively.
각 트랙에서의 검색은, 트랙 내에서 가장 큰 펄스를 트랙별로 할당된 개수만큼 찾아내는 것이라고 할 수 있다. The search in each track can be said to find the largest pulse in a track by the number allocated for each track.
<표 2>TABLE 2
Figure PCTKR2013007505-appb-I000011
Figure PCTKR2013007505-appb-I000011
표 2는 사인 모드에서 각 트랙별로 검색에 의해 부호화 대상으로 추출되는 사인파(펄스)의 개수, 트랙의 시작 위치(검색의 시작 위치), 각 트랙별 펄스 위치의 간격 사이즈, 각 트랙별 펄스의 개수를 나타낸다.Table 2 shows the number of sine waves (pulses) extracted by the search for each track in the sine mode, the starting position of the track (starting position of the search), the interval size of each pulse position, and the number of pulses for each track. Indicates.
각 트랙별로 추출된 Nj 개의 펄스들은 위치 정보 pos j (l) (l=0, …, Nj)를 가지고 있으며, 위치 정보는 각 트랙의 시작 위치에 관련되어 있다.N j pulses extracted for each track have position information pos j (l) (l = 0, ..., N j ), and the position information is related to the start position of each track.
추출된 펄스의 크기 c j (l) 는 수식 3과 같이 부호화될 수 있다.The magnitude c j (l) of the extracted pulse may be encoded as shown in Equation 3.
<수식 3><Equation 3>
cc jj (l) = log( | D (l) = log (| D jj (( pospos jj (l) ) | ) (l) ) | )
수식 3에 의하면, 크기값은 부호화되지만, 부호 정보를 잃게 된다. 따라서, 펄스의 부호값은 다음의 수식 4에 의해 별도로 부호화될 수 있다.According to Equation 3, the magnitude value is encoded, but the sign information is lost. Therefore, the sign value of the pulse may be separately encoded by the following Equation 4.
<수식 4><Equation 4>
Figure PCTKR2013007505-appb-I000012
Figure PCTKR2013007505-appb-I000012
이때, Nj=2 개인 경우에는 검색된 두 펄스의 부호값을 모두 전송하는 것이 아니라, 트랙별로 첫 번째 펄스의 부호값을 전송하게 된다. 다른 펄스의 부호값 정보는 첫 펄스의 부호값을 인코딩할 때 표 3을 이용하여 유도할 수 있다.In this case, when N j = 2, the code value of the first pulse is transmitted for each track, rather than the code values of both searched pulses. Sign value information of other pulses can be derived using Table 3 when encoding the sign value of the first pulse.
<표 3>TABLE 3
Figure PCTKR2013007505-appb-I000013
Figure PCTKR2013007505-appb-I000013
표 3에서 posj(0), Sign_sinj(0), cj(0)은 크기가 큰 펄스의 위치, 부호, 크기를 나타내고, posj(1), Sign_sinj(1), cj(1)은 크기가 작은 펄스의 위치, 부호, 크기를 나타낸다.In Table 3, pos j (0), Sign_sin j (0), and c j (0) indicate the position, sign, and magnitude of a large pulse, and pos j (1), Sign_sin j (1), and c j (1 ) Denotes the position, symbol, and magnitude of the small pulse.
표 3의 방법에 의하면, 크기가 큰 펄스가 크기가 작은 펄스보다 주파수 축 상에서 앞에 위치하면 크기가 두 펄스의 부호가 동일한 것으로 유도되고, 크기가 큰 펄스가 크기가 작은 펄스보다 주파수 축 상에서 뒤에 위치하면 두 펄스의 부호가 다른 것으로 유도될 수 있다. 따라서, 복호화기 측에서는 부호화기가 표 3의 방식에 의해 정렬한 정보를 수신하면, 두 펄스의 부호를 유도할 수 있다.According to the method of Table 3, if a large pulse is positioned ahead of the smaller pulse on the frequency axis, the magnitude of the two pulses is derived from the same sign, and the larger pulse is positioned behind the smaller pulse on the frequency axis. The sign of the two pulses can then be derived to be different. Therefore, on the decoder side, when the encoder receives the aligned information according to the scheme of Table 3, it is possible to derive the sign of the two pulses.
레이어 6의 경우는 수식 2에서 원신호를 타겟 신호로 하여 부호화를 수행했으나, 레이어 6의 상위 레이어, 예컨대 레이어 7이나 레이어 8의 경우에는 수식 2에 나타난 바와 같이, 이전 레이어(layer)의 원신호와 상위 계층의 합성 신호 사이의 차를 타겟 신호로 하여 부호화가 수행된다. 상위 레이어에서는 하위 레이어에서 부호화되지 않은 신호를 부호화하여 전송할 수 있다. In case of Layer 6, the encoding is performed by using the original signal as a target signal in Equation 2, but in the case of an upper layer of layer 6, for example, in the case of Layer 7 or Layer 8, as shown in Equation 2, the original signal of the previous layer The encoding is performed by using the difference between the synthesized signal and the higher layer synthesized signal as a target signal. In an upper layer, an uncoded signal may be encoded and transmitted in a lower layer.
레이어 6의 상위 레이어에서 수행되는 부호화의 방식도 레이어 6에 대하여 앞서 설명한 부호화 방식과 유사하다.The encoding method performed on the upper layer of layer 6 is also similar to the encoding method described above with respect to layer 6.
SWB 인핸스먼트 레이어(enhancement layer)의 첫 번째 레이어인 레이어 7에 대한 부호화에서는 HF (7 ~ 14 kHz) 신호에서 추가적으로 10 개의 펄스가 추출될 수 있다. 레이어 7에서는 제네릭 모드와 사인 모드에 따라서 부호화할 주파수 대역이 다르게 설정될 수 있다. In encoding for the first layer of the SWB enhancement layer, an additional 10 pulses may be extracted from the HF (7 to 14 kHz) signal. In layer 7, a frequency band to be encoded may be set differently according to a generic mode and a sine mode.
제네릭 모드에서 올라온 HF 신호
Figure PCTKR2013007505-appb-I000014
는 총 8개의 서브밴드로 나뉘어 각 서브밴드별로 에너지가 계산된다. 각 서브밴드는 표 2와 같이 32개의 MDCT 계수로 구성되어 있으며, 각 서브밴드에서의 에너지 계산 방법은 수식 5와 같다.
HF signal from generic mode
Figure PCTKR2013007505-appb-I000014
Is divided into eight subbands and energy is calculated for each subband. Each subband is composed of 32 MDCT coefficients as shown in Table 2, and the energy calculation method in each subband is shown in Equation 5.
<수식 5><Equation 5>
Figure PCTKR2013007505-appb-I000015
Figure PCTKR2013007505-appb-I000015
수식 5에서,
Figure PCTKR2013007505-appb-I000016
는 제네릭 모드를 거쳐 다시 합성된 HF 신호이다.
In Equation 5,
Figure PCTKR2013007505-appb-I000016
Is the HF signal resynthesized via generic mode.
레이어 7에서 8개의 서브밴드는 각 서브밴드별 에너지를 서로 비교하여 에너지가 가장 많은 서브밴드부터 에너지 크기 순서에 따라 차례대로 정렬될 수 있다. 정렬된 서브밴드 중 에너지가 가장 많은 5개의 서브밴드를 선택하여 서브밴드별로 5개의 펄스를 레이어 6에서 설명한 사인파 코딩 방법에 따라 추출한다. 이때, 사인파 코딩 방법에서 정의되는 트랙의 위치는 프레임(frame)별 HF 신호의 에너지 특징에 따라 다르다. In the seventh layer, eight subbands may be arranged in order of energy magnitude from the subband having the highest energy by comparing the energy of each subband with each other. Five subbands with the highest energy among the aligned subbands are selected and five pulses are extracted for each subband according to the sine wave coding method described in Layer 6. At this time, the position of the track defined in the sine wave coding method depends on the energy characteristic of the HF signal for each frame.
사인 모드에서 출력되는 HF 신호
Figure PCTKR2013007505-appb-I000017
에서 추출되는 총 10 개의 펄스는 4 개를 추출하는 과정과 6 개를 추출하는 두 과정을 통해 추출된다. 4 개의 펄스는 9400 ~ 11000 Hz 대역에 해당하는 위치에서 추출될 수 있으며, 6 개의 펄스는 11000~13400 Hz 대역에 해당하는 위치에서 추출될 수 있다.
HF signal output in sine mode
Figure PCTKR2013007505-appb-I000017
A total of 10 pulses extracted from are extracted through two processes, four extraction and six extraction. Four pulses may be extracted at positions corresponding to the 9400 to 11000 Hz band, and six pulses may be extracted at positions corresponding to the 11000 to 13400 Hz band.
표 4는 레이어 7의 사인 모드(사인 모드 프레임)에서 각 트랙별 정보를 나타낸 것이다. Table 4 shows information for each track in the sine mode (sign mode frame) of layer 7.
<표 4> TABLE 4
Figure PCTKR2013007505-appb-I000018
Figure PCTKR2013007505-appb-I000018
표 4에서는 레이어 7의 각 트랙별로 검색에 의해 부호화 대상으로 추출되는 사인파의 개수, 트랙의 시작 위치(검색의 시작 위치), 각 트랙별 펄스 위치의 간격 사이즈, 각 펄스의 개수를 나타낸다.Table 4 shows the number of sine waves extracted by the search for each track of the layer 7 as the encoding target, the start position of the track (start position of the search), the interval size of the pulse position of each track, and the number of pulses.
한편, 레이어 8에서는 추가적으로 20 개의 펄스를 추출하며, 레이어 7과 동일하게 레이어 6의 모드에 약간의 차이를 부가한다.Meanwhile, in layer 8, additional 20 pulses are extracted, and a slight difference is added to the mode of layer 6 in the same manner as in layer 7.
제네릭 모드(제네릭 모드 프레임)에서는 10 개씩의 펄스를 추출하는 두 개의 서로 다른 과정이 수행된다. In generic mode (generic mode frame), two different processes of extracting 10 pulses are performed.
처음 10 개의 펄스 중 6 개의 펄스는 3개의 트랙에서 트랙당 2 개씩 추출될 수 있으며, 펄스가 추출되는 대역은 9750 ~ 12150 Hz이다. 처음 10 개의 펄스 중 남은 4 개의 펄스는 2 개의 트랙에서 2 개씩 추출될 수 있으며, 펄스가 추출되는 대역은 12150 ~ 13750 Hz 이다. Six of the first 10 pulses can be extracted from two tracks on three tracks, with the bands extracted from 9750 to 12150 Hz. The remaining four of the first 10 pulses can be extracted two by two tracks, and the band from which the pulses are extracted is 12150 to 13750 Hz.
20 개의 펄스 중 남은 10 개의 펄스의 추출 방법도 유사하다. 10 개의 펄스 중 처음 6 개의 펄스는 3 개의 트랙에서 트랙당 2개씩 추출될 수 있으며 펄스가 추출되는 대역은 8600 ~ 11000 Hz 가 된다. 남은 4 개의 펄스는 2 개의 트랙에서 2 개씩 추출될 수 있으며, 펄스가 추출되는 대역은 11000 ~ 12600 Hz이다.The extraction of the remaining 10 pulses out of 20 pulses is similar. The first six of the ten pulses can be extracted from three tracks, two per track, and the band from which the pulses are extracted is 8600 to 11000 Hz. The remaining four pulses can be extracted two by two from two tracks, and the band from which the pulses are extracted is 11000-12600 Hz.
표 5는 레이어 8의 제네릭 모드 프레임에서 사인파 트랙 구조의 예를 설명하는 것이다.Table 5 describes an example of a sine wave track structure in the generic mode frame of Layer 8.
<표 5>TABLE 5
Figure PCTKR2013007505-appb-I000019
Figure PCTKR2013007505-appb-I000019
사인 모드(사인 모드 프레임)에서도 10 개씩의 펄스를 추출하는 두 개의 서로 다른 과정이 수행된다. In the sine mode (sine mode frame), two different processes of extracting 10 pulses are performed.
처음 10 개의 펄스 중 6 개의 펄스는 3개의 트랙에서 트랙당 2 개씩 추출될 수 있으며, 펄스가 추출되는 대역은 7000 ~ 9400 Hz이다. 처음 10 개의 펄스 중 남은 4 개의 펄스는 2 개의 트랙에서 2 개씩 추출될 수 있으며, 펄스가 추출되는 대역은 11000 ~ 12600 Hz 이다. Six of the first ten pulses can be extracted two tracks per track from three tracks, with the band being extracted from 7000 to 9400 Hz. The remaining four pulses of the first ten pulses can be extracted two by two tracks, and the band from which the pulses are extracted is 11000 to 12600 Hz.
20 개의 펄스 중 남은 10 개의 펄스의 추출 방법도 유사하다. 10 개의 펄스 중 처음 6 개의 펄스는 3 개의 트랙에서 트랙당 2개씩 추출될 수 있으며 펄스가 추출되는 대역은 94000 ~ 11000 Hz 가 된다. 남은 4 개의 펄스는 2 개의 트랙에서 2 개씩 추출될 수 있으며, 펄스가 추출되는 대역은 11000 ~ 13400 Hz이다.The extraction of the remaining 10 pulses out of 20 pulses is similar. The first six of the ten pulses can be extracted per track from two tracks on three tracks, with the band being extracted from 94000 to 11000 Hz. The remaining four pulses can be extracted two by two from two tracks, and the band from which the pulses are extracted is from 11000 to 13400 Hz.
표 6은 레이어 8의 사인 모드 프레임에서 20 개의 펄스 중 첫 번째 10 개의 펄스를 추출하는 제1 집합에 관한 사인파 트랙 구조의 예를 나타낸 것이다.Table 6 shows an example of a sinusoidal track structure for a first set of extracting the first 10 pulses of 20 pulses in a sine mode frame of Layer 8.
<표 6>TABLE 6
Figure PCTKR2013007505-appb-I000020
Figure PCTKR2013007505-appb-I000020
표 7은 레이어 8의 사인 모드 프레임에서 20 개의 펄스 중 두 번째 10 개의 펄스를 추출하는 제2 집합에 관한 사인파 트랙 구조의 예를 나타낸 것이다.Table 7 shows an example of a sinusoidal track structure for a second set of extracting the second 10 of 20 pulses in a sine mode frame of Layer 8.
<표 7>TABLE 7
Figure PCTKR2013007505-appb-I000021
Figure PCTKR2013007505-appb-I000021

한편, 표 2, 4, 5, 6 및 7의 사인파 트랙들을 살펴보면, 각 트랙은 2 스텝과 3 스텝으로 이루어져 있는 것을 알 수 있다. On the other hand, looking at the sine wave tracks of Tables 2, 4, 5, 6, and 7, it can be seen that each track consists of 2 steps and 3 steps.
도 8은 2 스텝의 경우로서 두 개의 트랙이 쌍을 이루는 예를 개략적으로 설명하는 도면이다. 도 8을 참조하면, 2 스텝의 트랙 0과 트랙 1이 쌍을 이루는 경우, 양 트랙의 펄스 위치들이 인접하는 것을 알 수 있다. 8 is a diagram schematically illustrating an example in which two tracks are paired in the case of two steps. Referring to FIG. 8, when track 0 and track 1 in two steps are paired, it can be seen that pulse positions of both tracks are adjacent to each other.
도 9는 3 스텝의 경우로서 세 개의 트랙이 쌍을 이루는 예를 개략적으로 설명하는 도면이다. 도 9를 참조하면, 3 스텝의 트랙 2, 3, 4가 쌍을 이루는 경우, 각 트랙의 펄스 위치들이 인접하는 것을 알 수 있다. 9 is a diagram schematically illustrating an example in which three tracks are paired in the case of three steps. Referring to FIG. 9, when tracks 2, 3, and 4 of 3 steps are paired, it can be seen that pulse positions of each track are adjacent to each other.
종래 G.718에 기반하여 SWB에서의 사인파를 검색하는 과정에서는 첫 번째 트랙부터 마지막 트랙까지 차례대로 검색하는 과정을 수행하면서, 각각의 트랙에서 독립적으로 검색이 이루어졌다. In the process of searching for a sine wave in the SWB based on the conventional G.718, the search is performed independently from each track while sequentially searching from the first track to the last track.
인접하지 않은 트랙의 경우(쌍을 이루지 않는 트랙의 경우)에는 각 트랙에 대한 검색이 독립적으로 이루어지는 것이 이상적이지만, 종래의 방식을 이용하면, 인접하는 트랙들의 경우(쌍을 이루는 트랙들의 경우)에도 각 트랙의 특성을 고려하지 않고 트랙들이 독립적으로 검색되게 된다. Ideally, for non-contiguous tracks (for non-paired tracks), the search for each track is done independently, but using conventional methods, even for adjacent tracks (for paired tracks), The tracks are searched independently without considering the characteristics of each track.
예를 들어, 2 스텝으로 이루어진 트랙 쌍을 고려하면, 첫 번째 트랙에서 검색된 사인파들은, 첫 번째 트랙과 쌍을 이루는 두 번째 트랙의 검색에 영향을 미치지 않는다. 3 스텝으로 이루어진 트랙 쌍에서도, 첫 번째 트랙에서 검색된 사인파들은 두 번째 트랙의 사인파 검색에 영향을 주지 않고, 두 번째 트랙에서 검색된 사인파들도 세 번째 트랙의 사인파 검색에 영향을 주지 않게 된다. For example, considering a track pair consisting of two steps, the sine waves searched in the first track do not affect the search of the second track paired with the first track. Even in a three-step track pair, the sine waves found in the first track do not affect the sine wave search in the second track, and the sine waves found in the second track do not affect the sine wave search in the third track.
좀 더 구체적인 예로서, 인접한 두 트랙이 쌍을 이루는 경우(2 스텝 트랙들이 쌍을 이루는 경우), 첫 번째 트랙에 절대값이 큰 MDCT 계수들이 대부분 존재하며, 두 번째 트랙에는 절대값이 상대적으로 작은 MDCT 계수들이 존재한다고 가정하자. 이때, 각 트랙에서 검색되는 사인파들이 2 개씩이라고 하면, 첫 번째 트랙에서 세 번째로 큰 MDCT 계수가 두 번째 트랙에서 가장 큰 MDCT 계수보다 더 중요할 수 (더 클 수) 있다. 이런 예는 두 트랙에 속하는 각 펄스들이 서로 인접하는 경우(두 트랙이 쌍을 이루는 경우)에 빈번히 일어날 수 있는 경우이며, 부호화 성능에도 큰 영향을 미칠 수 있다. As a more specific example, when two adjacent tracks are paired (two step tracks are paired), most MDCT coefficients have a large absolute value in the first track, and a relatively small absolute value in the second track. Assume that MDCT coefficients exist. In this case, if there are two sine waves searched in each track, the third largest MDCT coefficient in the first track may be more important (greater) than the largest MDCT coefficient in the second track. This example is a case where frequent pulses belonging to two tracks are adjacent to each other (two tracks are paired), and this may have a big influence on the coding performance.
따라서, SWB 신호를 부호화하는 경우에는, 인접하는 트랙의 특성을 고려하여 부호화할 할 펄스를 검색할 필요가 있다. 또한, SWB 신호를 복호화하는 경우에도, 인접하는 트랙의 특성을 고려하여, 부호화된 신호를 복호화할 필요가 있다. Therefore, when encoding a SWB signal, it is necessary to search for a pulse to be encoded in consideration of the characteristics of adjacent tracks. In addition, even when decoding the SWB signal, it is necessary to decode the encoded signal in consideration of the characteristics of adjacent tracks.

이하, 본 발명에 따라서 인접 위치를 가지는 트랙들(트랙 쌍)에서 트랙 쌍의 특징을 고려하여 사인파 또는 펄스를 검색하는 방법에 관하여 설명하도록 한다. Hereinafter, a method of searching for a sine wave or pulse in consideration of characteristics of a track pair in tracks (track pair) having adjacent positions according to the present invention will be described.
본 발명은 SWB의 베이스 레이어인 레이어 6뿐만 아니라, 레이어 6의 인핸스먼트 레이어인 레이어 7과 레이어 8에도 적용할 수 있다. 트랙 간의 특성을 고려하는 경우, 즉 인접 트랙의 MDCT 계수 크기를 고려하여 현재 트랙에서 부호화할 MDCT 계수(사인파 혹은 펄스)를 검색함으로써, 각 트랙을 독립적으로 검색하는 경우보다 효율적인 검색이 가능하게 된다.The present invention can be applied not only to layer 6 which is a base layer of SWB, but also to layer 7 and layer 8 which are enhancement layers of layer 6. In consideration of characteristics between tracks, that is, by searching for MDCT coefficients (sine waves or pulses) to be encoded in the current track in consideration of MDCT coefficient magnitudes of adjacent tracks, more efficient searching is possible than when searching each track independently.

지금까지 신호 검색의 방법으로서, 수식 2의 절대값을 기반으로 하는 예를 앞서 설명하였으나, 본 발명은 이에 한정되지 않으며, 예컨대 LPC(Linear Prediction Coefficient) 합성 필터의 임펄스 응답에 대한 컨볼루션 값을 기반으로 하거나 MSE(Mean Square Error)를 기반으로 검색을 수행할 수도 있다. 컨볼루션을 기반으로 하는 방법과 MSE를 기반으로 하는 방법은 후술하도록 한다. So far, an example based on an absolute value of Equation 2 has been described as a method of searching for a signal. However, the present invention is not limited thereto, and is based on a convolution value of an impulse response of, for example, a linear prediction coefficient (LPC) synthesis filter. Or search based on Mean Square Error (MSE). A method based on convolution and a method based on MSE will be described later.

도 10은 본 발명의 일 예에 따라서 각 레이어 별로 적용되는 사인파(sinusoid) 검색 방법을 개략적으로 설명하는 순서도이다. 도 10의 예는 도 1의 SWB 부호화부에서 수행될 수 있다. 또한 도 10의 예에서 일부 또는 모든 단계는 도 3의 SWB 복호화부에서 수행될 수도 있다. 예컨대, SWB 부호화부 및/또는 SWB 복호화부의 사인파 모드부, 추가 사인파부 중 적어도 하나에서 수행될 수 있다. 여기서는 설명의 편의를 위해, SWB 부호화부 및/또는 SWB 복호화부에서 도 10의 각 단계를 수행하는 것으로 설명한다.10 is a flowchart schematically illustrating a sinusoid search method applied to each layer according to an example of the present invention. The example of FIG. 10 may be performed by the SWB encoder of FIG. 1. Also, some or all of the steps in the example of FIG. 10 may be performed by the SWB decoder of FIG. 3. For example, the operation may be performed in at least one of a sine wave mode unit and an additional sine wave unit of the SWB encoder and / or the SWB decoder. For convenience of explanation, the steps of FIG. 10 are performed by the SWB encoder and / or the SWB decoder.
도 10을 참조하면, 우선 타겟(target) 신호가 생성된다(S1010). 이때, 타겟 신호는 양자화할 MDCT 계수들일 수 있다. SWB 부호화부 및/또는 SWB 복호화부는 양자화할 MDCT 계수(타겟 신호)를 생성할 수 있다.Referring to FIG. 10, first, a target signal is generated (S1010). In this case, the target signal may be MDCT coefficients to be quantized. The SWB encoder and / or the SWB decoder may generate MDCT coefficients (target signals) to be quantized.
생성된 타겟 신호(양자화할 MDCT 계수)에 대한 절대값이 계산된다(S1020). SWB 부호화부 및/또는 SWB 복호화부는 양자화할 MDCT 계수에 대한 절대값을 계산한다. MDCT 계수에 대한 절대값은 수식 2를 이용하여 산출할 수 있다. The absolute value of the generated target signal (MDCT coefficient to be quantized) is calculated (S1020). The SWB encoder and / or the SWB decoder calculates an absolute value for the MDCT coefficients to be quantized. The absolute value of the MDCT coefficient can be calculated using Equation 2.
레이어 6의 사인 모드의 경우라면, HF 합성 신호가 없으므로 원신호의 MDCT 계수 M 32 (k)에 대한 절대값을 구할 수 있다. 레이어 6 이외의 레이어(예컨대, 레이어 7 또는 레이어 8)의 경우라면, 원신호의 MDCT 계수 M 32 (k)와 HF 합성 신호의 MDCT 계수
Figure PCTKR2013007505-appb-I000022
사이의 차이에 대한 절대값을 구할 수 있다.
In the case of the sine mode of the layer 6, since there is no HF composite signal, the absolute value of the MDCT coefficient M 32 (k) of the original signal can be obtained. For layers other than layer 6 (eg, layer 7 or layer 8), MDCT coefficients M 32 (k) of the original signal and MDCT coefficients of the HF composite signal
Figure PCTKR2013007505-appb-I000022
You can find the absolute value of the difference between them.
산출된 절대값을 기반으로, 최대값을 가지는 사인파(최대값 사인파, maxima sinusoid)가 검색될 수 있다(S1030). Based on the calculated absolute value, a sine wave (maximum sine wave, maxima sinusoid) having a maximum value may be searched for (S1030).
본 명세서에서는 설명의 편의를 위해, 수식 2의 D(k)를 최대로 하는 사인파를 최대값 사인파(maxima sinusoid)이라고 할 수 있다. In the present specification, for convenience of description, a sine wave maximizing D (k) of Equation 2 may be referred to as a maximum sinusoid.
SWB 부호화부 및/또는 SWB 복호화부는 각각의 트랙에서 적어도 하나의 최대값 사인파를 검색할 수 있다. 이때, 검색되는 최대값 사인파들(maxima)의 개수는 트랙별로 정해져 있을 수 있다. The SWB encoder and / or the SWB decoder may search for at least one maximum sine wave in each track. At this time, the number of searched maximum sine waves (maxima) may be determined for each track.
SWB 부호화부 및/또는 SWB 복호화부는 각 트랙별로 정해진 개수만큼 수식 2의 절대값이 큰 사인파를 검색할 수 있다. 예컨대, 레이어 6의 경우, 트랙 0 내지 트랙 3에서는 적어도 두 개의 최대값 사인파를 검색할 수 있으며, 트랙 4 및 트랙 5에서는 적어도 하나의 최대값 사인파를 검색할 수 있다.The SWB encoder and / or the SWB decoder may search for a sine wave having an absolute value of Equation 2 by a predetermined number for each track. For example, in the case of layer 6, at least two maximum sine waves may be searched in tracks 0 to 3, and at least one maximum sine wave may be searched in tracks 4 and 5.
최대값 사인파들이 검색되면, 사인파의 부호(sign)를 양자화하기 위한 위치 변경이 수행될 수 있다(S1040). 위치 변경은 둘 이상의 사인파가 검색되는 트랙에서 수행될 수 있다. 따라서, 하나의 사인파가 검색되는 경우에 본 단계는 수행되지 않을 수 있다. 위치 변경은 표 3에서 설명한 방법을 기반으로 수행될 수 있다. 예컨대, 두 개의 사인파 혹은 두 개의 펄스를 전송하는 경우를 고려하면, 첫 번째 사인파/펄스의 부호(+ 혹은 -)를 부호화한다. 이때, 첫 번째 사인파/펄스가 두 번째 사인파/펄스보다 크면 두 사인파/펄스의 부호가 동일하고, 첫 번째 사인파/펄스의 크기가 두 번째 사인파/펄스보다 작으면 두 사인파/펄스의 부호가 상이한 것으로 결정될 수 있다. When the maximum sine waves are found, a position change for quantizing a sign of the sine wave may be performed (S1040). The position change may be performed in a track in which two or more sine waves are searched. Therefore, this step may not be performed when one sine wave is found. The location change may be performed based on the method described in Table 3. For example, considering the case of transmitting two sine waves or two pulses, the sign (+ or-) of the first sine wave / pulse is encoded. At this time, if the first sine wave / pulse is greater than the second sine wave / pulse, the signs of the two sine waves / pulse are the same, and if the magnitude of the first sine wave / pulse is smaller than the second sine wave / pulse, the signs of the two sine waves / pulse are different. Can be determined.
SWB 부호화부는 상술한 바와 같이 부호가 유도될 수 있도록 사인파/펄스의 위치를 설정할 수 있다. SWB 복호화부는 첫 번째 사인파/펄스의 부호를 복호화하고, 첫 번째 사인파/펄스의 크기가 두 번째 사인파/펄스보타 큰 경우에는 두 사인파/펄스의 부호가 동일한 것으로 결정하고, 첫 번째 사인파/펄스의 크기가 두 번째 사인파/펄스보다 작은 경우에는 두 사인파/펄스의 부호화 상이한 것으로 결정할 수 있다.As described above, the SWB encoder may set a position of a sine wave / pulse so that a code can be derived. The SWB decoder decodes the sign of the first sine wave / pulse, determines that the sign of the two sine waves / pulses is the same when the magnitude of the first sine wave / pulse is larger than the second sine wave / pulse bota, and the magnitude of the first sine wave / pulse If is smaller than the second sine wave / pulse, it can be determined that the coding of the two sine wave / pulse is different.
신호 크기(amplitude) 양자화를 위해, 검색된 사인파/펄스들의 신호 크기(amplitude)들이 그룹핑(grouping)된다(S1070). SWB 부호화부 및/또는 SWB 복호화부는 양자화할 사인파/펄스 그룹에 따라서 신호 크기(amplitude)들을 그룹핑할 수 있다. 그룹핑은 트랙에 상관없이 수행될 수도 있다.For amplitude quantization, the signal amplitudes of the searched sine waves / pulses are grouped (S1070). The SWB encoder and / or the SWB decoder may group signal amplitudes according to a sine wave / pulse group to be quantized. Grouping may be performed regardless of the track.
예를 들어, 레이어 6의 경우 10개의 검출된 신호(사인파 혹은 펄스)의 크기(amplitude)를 그룹핑하게 되는데, 사인파 혹은 펄스를 순서대로, 3 개 3개 4개씩 그룹핑할 수 있다. 구체적으로, 그룹 1에 3개의 신호 크기가 그룹핑되는데, 트랙 0에서 검색된 두 개 신호의 신호 크기와, 트랙 1에서 검색된 두 개 신호 중 하나의 신호 크기가 그룹핑될 수 있다. 그룹 2에도 3개의 신호 크기가 그룹핑될 수 있는데, 트랙 1에서 검색된 두 신호 중 남은 한 신호의 신호 크기와 트랙 2에서 검색된 두 신호의 신호 크기가 그룹핑될 수 있다. 그룹 3의 경우에는 4개의 신호 크기가 그룹핑될 수 있는데, 트랙 3에서 검색된 두 신호의 신호 크기와 트랙 4에서 검색된 신호의 신호 크기 그리고 트랙 5에서 검색된 신호의 신호 크기가 그룹핑될 수 있다.For example, in the case of layer 6, the amplitudes of 10 detected signals (sine waves or pulses) are grouped. Sine waves or pulses may be grouped in sequence of three, three, and four. Specifically, three signal magnitudes are grouped in Group 1, where the signal magnitudes of the two signals found in track 0 and one of the two signals found in track 1 may be grouped. In the group 2, three signal sizes may be grouped. The signal size of one of the two signals found in the track 1 and the signal size of the two signals found in the track 2 may be grouped. In the case of group 3, four signal magnitudes may be grouped. The signal magnitudes of two signals retrieved in track 3, the signal magnitude of signals retrieved in track 4, and the signal magnitudes of signals retrieved in track 5 may be grouped.
그룹핑된 신호 크기가 그룹 단위로 양자화될 수 있다(S1080). SWB 부호화부 및/또는 SWB 복호화부는 멀티 디멘젼 VQ(multi-dimension Vector Quantization)를 기반으로 양자화를 수행할 수 있다.The grouped signal magnitudes may be quantized in group units (S1080). The SWB encoder and / or the SWB decoder may perform quantization based on multi-dimension vector quantization (VQ).

도 10의 사인파 검색 단계에서는, 쌍을 이루는 두 트랙 간에 인접한 위치의 펄스들이 검색되도록 할 수도 있고, 쌍을 이루는 두 트랙 간에 서로 떨어진 위치의 펄스들이 검색되도록 할 수도 있다. In the sine wave search step of FIG. 10, pulses of adjacent positions between two paired tracks may be searched or pulses of mutually separated positions between two paired tracks may be searched.
이하, 각각의 경우를 도면을 참조하여 구체적으로 설명한다. Hereinafter, each case will be described in detail with reference to the drawings.

인접 위치의 펄스를 검색하는 방법How to Search for Pulses in Adjacent Locations
도 10의 사인파 검색 단계에서, SWB 부호화부는 쌍을 이루는 트랙들의 펄스들 중에서 서로 인접하는 펄스를 검색하여 부호화할 수 있다. 또한, SWB 복호화부는 쌍을 이루는 트랙들의 펄스들 중에서 서로 인접하는 펄스를 복호화하여 SWB 신호를 복원할 수 있다. 이때, 펄스는 상술한 바와 같이, 사인파(sinusoid)의 MDCT 계수일 수 있다.In the sine wave search step of FIG. 10, the SWB encoder may search for and encode adjacent pulses among pulses of paired tracks. In addition, the SWB decoder may restore the SWB signal by decoding adjacent pulses among the pulses of the paired tracks. In this case, the pulse may be a sinusoidal MDCT coefficient as described above.
사인파 모드에서 레이어 6의 트랙들이 도 7의 예에 도시된 바와 같은 경우에, 두 개의 트랙 쌍이 존재하는 것을 볼 수 있다. 도 7의 예에서, 트랙 0과 트랙 1은 2 스텝의 트랙 쌍이며, 트랙 2와 트랙 3도 2 스텝의 트랙 쌍이다. In the case where the tracks of layer 6 in sine wave mode are as shown in the example of FIG. 7, it can be seen that there are two track pairs. In the example of FIG. 7, track 0 and track 1 are two pairs of track pairs, and track 2 and track 3 are two pairs of tracks.
이런 트랙 쌍들은 레이어 6이 아닌 다른 레이어에서도 존재한다. These track pairs exist on layers other than layer 6.
표 4를 참조하면, 레이어 7의 경우에도 2 스텝의 트랙 0과 트랙 1이 트랙 쌍을 이루고, 3 스텝의 트랙 2, 트랙 3, 트랙 4가 또 다른 트랙 쌍을 이루는 것을 볼 수 있다. Referring to Table 4, in the case of layer 7, track 0 and track 1 of two steps form a track pair, and track 2, track 3, and track 4 of three steps form another track pair.
표 5를 참조하면, 레이어 8의 제너릭 모드 프레임에서 3 스텝의 트랙 0, 트랙 1, 트랙 2가 하나의 트랙 쌍을 이루고, 2 스텝의 트랙 3과 트랙 4가 또 다른 트랙 쌍을 이루는 것을 볼 수 있다. 레이어 8에서는 제너릭 모드와 사인파 모드의 구분이 없으며, 레이어 8의 제너릭 모드 프레임은 레이어 8에서 처리되는 프레임들 중 레이어 7에서 제너릭 모드로 처리된 프레임들을 의미한다. Referring to Table 5, in the generic mode frame of Layer 8, we can see that track 0, track 1, and track 2 of 3 steps form one track pair, and track 3 and track 4 of 2 steps form another track pair. have. There is no distinction between generic mode and sine wave mode in layer 8, and generic mode frames of layer 8 refer to frames processed in generic mode in layer 7 of frames processed in layer 8.
표 6을 참조하면, 레이어 8의 사인파 모드 프레임들에 대한 첫 번째 세트의 경우, 3 스텝의 트랙 0, 트랙 1, 트랙 2가 하나의 트랙 쌍을 이루며, 2 스텝의 트랙 3과 트랙 4가 또 다른 트랙 쌍을 이루는 것을 볼 수 있다.Referring to Table 6, for the first set of sine wave mode frames in Layer 8, track 0, track 1, and track 2 in 3 steps form one track pair, and track 3 and track 4 in 2 steps You can see different track pairs.
또한, 표 7을 참조하면, 레이어 8의 사인파 모드 프레임들에 대한 두 번째 세트의 경우, 2 스텝의 트랙 0과 트랙 1이 하나의 트랙 쌍을 이루고, 3 스텝의 트랙 2, 트랙 3, 트랙 4가 또 다른 트랙 쌍을 이루는 것을 볼 수 있다. Also, referring to Table 7, for the second set of sine wave mode frames in Layer 8, track 0 and track 1 in 2 steps form one track pair, track 2, track 3, and track 4 in 3 steps. Can be seen to form another track pair.
레이어 8에서는 제너릭 모드와 사인파 모드의 구분이 없으며, 레이어 8의 사인파 모드 프레임은 레이어 8에서 처리되는 프레임들 중 레이어 7에서 사인파 모드로 처리된 프레임들을 의미한다. There is no distinction between generic mode and sine wave mode in layer 8, and the sine wave mode frame of layer 8 refers to frames processed in sine wave mode in layer 7 among frames processed in layer 8.
본 발명에서는 트랙 쌍을 이루는 트랙들에 대해서는 트랙들 간의 특성을 고려하여 검색을 수행한다. 즉, 트랙 쌍을 이루는 트랙들에 대하여 펄스를 검색하는 경우에는 다른 트랙에서 검색된 펄스들을 고려하여 검색을 수행한다. In the present invention, the tracks of the track pairs are searched in consideration of characteristics of the tracks. In other words, when a pulse is searched for tracks that make up a track pair, the search is performed in consideration of pulses searched in other tracks.
이와 달리, 트랙 쌍의 특성을 고려하지 않고 트랙별로 사인파(sinusoid)를 독립적으로 검색하면, 부호화 효율이 떨어져 복호화 과정에서 원본 신호를 효과적으로 복원하지 못할 수 있다. On the contrary, if sinusoids are independently searched for each track without considering the characteristics of the track pairs, the encoding efficiency may be degraded, and thus, the original signal may not be effectively restored during the decoding process.
도 11은 트랙 쌍의 특성을 고려하지 않고 트랙별로 독립적인 검색을 수행하는 경우를 개략적으로 설명하는 도면이다.FIG. 11 is a diagram schematically illustrating a case where an independent search is performed for each track without considering the characteristics of track pairs.
도 11을 참조하면, 트랙별로 독립적인 사인파 검색을 수행하는 경우에, 트랙 0에서 펄스 (1)과 펄스 (2)가 검색된 뒤에, 트랙 1에서는 펄스 (3)과 펄스 (4)가 검색되게 된다. Referring to FIG. 11, in the case of performing an independent sine wave search for each track, after the pulse 1 and the pulse 2 are searched in the track 0, the pulse 3 and the pulse 4 are searched in the track 1. .
구체적으로, 트랙 0에서 절대값이 큰 두 개의 펄스가 검색되면, 펄스의 위치(position), 부호(sign) 그리고 크기(amplitude)가 양자화 된다. 크기(amplitude) 즉 게인은 다른 트랙과의 그룹핑(grouping)을 통해 양자화될 수도 있다. 이에 관해서는 도 10의 S1070 단계에서 설명한 바와 같다.In detail, when two pulses having a large absolute value are found in the track 0, the position, the sign, and the amplitude of the pulse are quantized. Amplitude, or gain, may be quantized through grouping with other tracks. This is the same as described in step S1070 of FIG. 10.
트랙 0에서 검색한 펄스들에 대한 양자화가 끝나면, 트랙 1에 대해서도 동일한 검색을 수행하여 검색된 펄스들에 대한 정보를 양자화 할 수 있다. 이때, 트랙 1에 대한 검색/양자화는 트랙 0의 검색 결과와는 별도로, 그리고 독립적으로 수행된다.After quantization of the pulses searched for in track 0 is completed, the same search may be performed for track 1 to quantize information about the searched pulses. At this time, the search / quantization for track 1 is performed separately and independently from the search result of track 0.
도 11에서와 같이, 트랙 쌍을 이루는 트랙 사이에서 다른 트랙의 검색 결과를 고려하지 않고 독립적으로 검색을 수행하는 경우에는 트랙 쌍의 펄스들 중에서 더 중요한 펄스를 부호화하지 못하는 경우가 발생할 수 있다.As illustrated in FIG. 11, when a search is independently performed without considering search results of other tracks between tracks of track pairs, a case in which more important pulses may not be encoded among pulses of a track pair may occur.
따라서, 트랙 쌍을 이루는 트랙 간의 특성을 고려하여 부호화할 펄스(사인파)를 검색할 필요가 있다.Therefore, it is necessary to search for a pulse (sine wave) to be coded in consideration of the characteristics between the tracks constituting the track pair.
본 발명의 일 실시예에서는 인접 위치를 가지는 트랙들이 트랙 쌍을 이루는 경우에 첫 번째로 트랙에서 검색된 사인파 값을 바탕으로 두 번째 트랙에서 사인파 값을 검색할 수 있다. According to an embodiment of the present invention, when tracks having adjacent positions form a track pair, a sine wave value may be retrieved from a second track based on a sine wave value first detected from the track.
본 명세서에서 인접 위치를 가지는 트랙들이 트랙 쌍을 이룬다는 것은 트랙 쌍 내의 트랙들이 동일한 스텝(펄스 간격)을 가지며, 트랙 쌍을 이루는 트랙 내 각 펄스는 트랙 쌍을 이루는 인접 트랙 내 각 펄스와 서로 이웃하는 경우를 의미한다. In this specification, that tracks having adjacent positions form a track pair means that the tracks in the track pair have the same step (pulse interval), and each pulse in the track paired tracks is adjacent to each other in the track paired adjacent tracks. It means the case.
다시 말해, 본 실시예는 인접한 트랙들에 대하여 적용가능하며, 예컨대 3 스텝을 가지는 세 트랙들이 트랙 쌍을 이루거나, 2 스텝을 가지는 두 트랙들이 트랙 쌍을 이루는 경우에 적용할 수 있다. In other words, the present embodiment is applicable to adjacent tracks, for example, when three tracks having three steps form a track pair, or two tracks having two steps form a track pair.

도 12는 본 발명에 따라서 트랙 쌍을 이루는 트랙들 사이에서 다른 트랙의 검색 결과를 고려하여 검색을 수행하는 방법의 일 예를 개략적으로 설명하는 도면이다. 도 12의 예에서는 트랙 쌍을 이루는 트랙들 중 어느 한 트랙에 대한 검색을 수행하는 경우에, 다른 트랙에서 검색된 펄스와 인접한 펄스를 부호화할 펄스로서 선택하는 방법을 설명하고 있다.12 is a diagram schematically illustrating an example of a method of performing a search in consideration of a search result of another track among tracks of a track pair according to the present invention. In the example of FIG. 12, when a search is performed on any one track among tracks constituting a track pair, a method of selecting a pulse searched in another track and an adjacent pulse as a pulse to be encoded.
도 12의 예에서는, 앞서 설명한 바와 같이, 트랙 쌍을 이루는 각 트랙들이 인접하여 있다고 가정한다. In the example of FIG. 12, as described above, it is assumed that each track constituting the track pair is adjacent to each other.
또한, 도 12의 예는 도 1의 SWB 부호화부에서 수행될 수 있다. 또한, 도 12의 예의 일부 또는 모든 단계는 도 3의 SWB 복호화부에서 수행될 수도 있다. 예컨대, SWB 부호화부 및/또는 SWB 복호화부의 사인파 모드부, 추가 사인파부 중 적어도 하나에서 수행될 수 있다. 여기서는 설명의 편의를 위해, SWB 부호화부 및/또는 SWB 복호화부에서 도 12의 각 단계를 수행하는 것으로 설명한다.In addition, the example of FIG. 12 may be performed by the SWB encoder of FIG. 1. In addition, some or all steps of the example of FIG. 12 may be performed by the SWB decoder of FIG. 3. For example, the operation may be performed in at least one of a sine wave mode unit and an additional sine wave unit of the SWB encoder and / or the SWB decoder. For convenience of description, the steps of FIG. 12 are performed by the SWB encoder and / or the SWB decoder.
도 12를 참조하면, 우선 타겟(target) 신호가 생성된다(S1200). 이때, 타겟 신호는 양자화할 펄스들, 즉 MDCT 계수들일 수 있다. SWB 부호화부 및/또는 SWB 복호화부는 양자화할 MDCT 계수(타겟 신호)를 생성할 수 있다.Referring to FIG. 12, a target signal is first generated (S1200). In this case, the target signal may be pulses to be quantized, that is, MDCT coefficients. The SWB encoder and / or the SWB decoder may generate MDCT coefficients (target signals) to be quantized.
생성된 타겟 신호(양자화할 MDCT 계수)에 대한 절대값이 계산된다(S1205). SWB 부호화부 및/또는 SWB 복호화부는 양자화할 MDCT 계수에 대한 절대값을 계산한다. MDCT 계수에 대한 절대값은 수식 2를 이용하여 산출할 수 있다. The absolute value of the generated target signal (MDCT coefficient to be quantized) is calculated (S1205). The SWB encoder and / or the SWB decoder calculates an absolute value for the MDCT coefficients to be quantized. The absolute value of the MDCT coefficient can be calculated using Equation 2.
레이어 6의 사인 모드의 경우라면, HF 합성 신호가 없으므로 원신호의 MDCT 계수 M 32 (k)에 대한 절대값을 구할 수 있다. 레이어 6 이외의 레이어(예컨대, 레이어 7 또는 레이어 8)의 경우라면, 원신호의 MDCT 계수 M 32 (k)와 HF 합성 신호의 MDCT 계수
Figure PCTKR2013007505-appb-I000023
사이의 차이에 대한 절대값을 구할 수 있다.
In the case of the sine mode of the layer 6, since there is no HF composite signal, the absolute value of the MDCT coefficient M 32 (k) of the original signal can be obtained. For layers other than layer 6 (eg, layer 7 or layer 8), MDCT coefficients M 32 (k) of the original signal and MDCT coefficients of the HF composite signal
Figure PCTKR2013007505-appb-I000023
You can find the absolute value of the difference between them.
여기서는 타겟 신호를 생성한 후 바로 절대값을 구하는 것으로 설명하였으나, 트랙 쌍의 각 트랙에 대한 검색을 수행하면서 트랙 별로 최대값 펄스를 검색하는 과정에서 수식 2의 절대값을 생성할 수도 있다. Here, the absolute value is calculated immediately after generating the target signal. However, the absolute value of Equation 2 may be generated in the process of searching for the maximum value pulse for each track while searching for each track of the track pair.
생성된 타겟 신호에 트랙 쌍이 있는지가 판단된다(S1210). SWB 부호화부 및/또는 SWB 복호화부는 부호화 대상인 MDCT 계수들(타겟 신호)에 트랙 쌍이 존재하는지를 판단한다. It is determined whether there is a track pair in the generated target signal (S1210). The SWB encoder and / or the SWB decoder determines whether a track pair exists in the MDCT coefficients (target signal) to be encoded.
트랙 쌍은, 동일한 스텝(펄스 간격)을 가지며 트랙 내 펄스의 위치가 인접 트랙 내 펄스의 위치와 서로 이웃하는 트랙들로 구성될 수 있다.A track pair may consist of tracks having the same steps (pulse intervals) and whose position in the track is adjacent to each other with the position of the pulse in the adjacent track.
타겟 신호에 트랙 쌍이 있는 경우에는, 트랙 쌍을 구성하는 트랙들의 에너지를 산출한다(S1215). 예컨대, 트랙 0과 트랙 1이 트랙 쌍을 구성하는 경우에, SWB 부호화부 및/또는 SWB 복호화부는 트랙 0의 에너지와 트랙 1의 에너지를 산출할 수 있다.If there are track pairs in the target signal, the energy of tracks constituting the track pair is calculated (S1215). For example, when track 0 and track 1 constitute a track pair, the SWB encoder and / or SWB decoder may calculate the energy of track 0 and the energy of track 1.
트랙 쌍을 이루는 트랙들 간의 에너지를 서로 비교한다(S1220). SWB 부호화부 및/또는 SWB 복호화부는 트랙 쌍을 이루는 트랙들 중에서 에너지가 큰 순서대로 트랙들을 검색할 수 있다. 예컨대, 트랙 0과 트랙 1이 트랙 쌍을 구성하고 트랙 1의 에너지가 트랙 0의 에너지보다 큰 경우에, SWB 부호화부 및/또는 SWB 복호화부는 트랙 1을 먼저 검색하고 트랙 0을 검색할 수도 있다.The energy between the tracks constituting the track pair is compared with each other (S1220). The SWB encoder and / or the SWB decoder may search for the tracks in the order of the highest energy among the tracks constituting the track pair. For example, if track 0 and track 1 constitute a track pair and the energy of track 1 is greater than the energy of track 0, the SWB encoder and / or SWB decoder may first search for track 1 and then search for track 0.
다만, 에너지 순서대로 처리하는 것은 검색의 경우로서, 이후의 다른 단계에서는 원래의 트랙 순서에 따라서 각각의 처리가 진행될 수도 있다. 예컨대, 양자화하여 비트스트림을 구성하는 경우에는 트랙 0을 먼저 처리하고 트랙 1을 이어서 처리할 수도 있다.However, the processing in the energy order is a case of searching, and each process may be performed in the subsequent tracks according to the original track order. For example, when the bitstream is formed by quantization, track 0 may be processed first and track 1 may be processed subsequently.
트랙을 검색할 순서가 결정되면, 검색 순서에 따라서 각 트랙별로 후보 펄스들이 검색된다(S1225). 예컨대, 트랙 쌍이 두 개의 트랙으로 구성된 경우에, SWB 부호화부 및/또는 SWB 복호화부는 에너지가 큰 트랙에서 후보 펄스들을 검색한 후, 에너지가 작은 트랙에서 후보 펄스들을 검색할 수 있다. 각 트랙에서 검색해서 부호화할 펄스의 개수가 정해져 있는 경우에, SWB 부호화부 및/또는 SWB 복호화부는 검색해서 부호화할 펄스의 개수보다 소정 개수만큼 더 검색하여 부호화할 펄스의 후보들을 검색할 수 있다.If the order to search for the track is determined, candidate pulses are searched for each track according to the search order (S1225). For example, when a track pair is composed of two tracks, the SWB encoder and / or the SWB decoder may search for candidate pulses in a high energy track and then search for candidate pulses in a low energy track. When the number of pulses to be searched and encoded in each track is determined, the SWB encoder and / or SWB decoder may search for candidates of the pulse to be encoded by searching a predetermined number more than the number of pulses to be searched and encoded.
에너지가 큰 트랙에서 검색하여 부호화할 펄스의 개수를 N1(N1은 0보다 큰 정수)이라고 하고, 에너지가 작은 트랙에서 검색하여 부호화할 펄스의 개수를 N2(N2는 0보다 큰 정수)라고 하자. 이때, N1과 N2는 동일할 수 있다. SWB 부호화부 및/또는 SWB 복호화부는 에너지가 큰 트랙에서 N1+n1(n1은 0 이상의 정수) 개의 펄스를 검색하고, 에너지가 작은 트랙에서 N2+n2(n2는 0 이상의 정수) 개의 펄스를 검색할 수 있다. n2는 n1보다 크거나 같을 수 있다. Assume that the number of pulses to be searched and encoded in a track with high energy is N1 (N1 is an integer greater than 0), and the number of pulses to be searched and encoded in a track with low energy is N2 (N2 is an integer greater than 0). At this time, N1 and N2 may be the same. The SWB encoder and / or the SWB decoder may search for N1 + n1 pulses (n1 is an integer greater than or equal to 0) pulses on a high energy track, and N2 + n2 (n2 is an integer greater than 0) pulses on a low energy track. Can be. n2 may be greater than or equal to n1.
N1+n1개의 펄스와 N2+n2개의 펄스는 각 트랙 내에서 수식 2에 따라 절대값이 큰 순서대로 선택될 수 있다. N1 + n1 pulses and N2 + n2 pulses may be selected in the order of the largest absolute value according to Equation 2 in each track.
예컨대, 트랙 쌍을 이루는 트랙들에서 검색될 펄스의 개수가 2인 경우에, 에너지가 큰 트랙에서는 2+n1 개만큼의 펄스가 선택되고, 에너지가 작은 트랙에서는 2+n2 개만큼의 펄스이 선택될 수 있다.For example, if the number of pulses to be searched in the track pairing tracks is 2, as many as 2 + n1 pulses are selected in the high energy track and as many as 2 + n2 pulses are selected in the low energy track. Can be.
에너지가 큰 트랙에서, 검색하여 부호화할 개수만큼의 펄스가 선택된다(S1230). SWB 부호화부 및/또는 SWB 복호화부는 트랙 쌍을 이루는 트랙들 중 에너지가 큰 트랙에서, 검색 및 부호화할 개수만큼의 최대값 사인파(펄스)를 선택할 수 있다. In the track with a large energy, as many pulses as the number to search and encode are selected (S1230). The SWB encoder and / or the SWB decoder may select the maximum sine wave (pulse) as many as the number to search and encode in a track having a large energy among tracks constituting the track pair.
에너지가 작은 트랙에서, 검색한 펄스들(최대값 사인파들)을 절대값이 큰 순서대로 에너지가 큰 트랙에서 검색된 펄스와 비교된다(S1235). SWB 부호화부 및/또는 SWB 복호화부는 에너지가 작은 트랙에서 검색된 N2+n2개의 펄스들을 에너지가 큰 트랙에서 검색된 펄스들과 비교할 수 있다. 이때, N2+n2 개의 펄스들은 절대값이 큰 순서대로 에너지가 큰 트랙에서 선택된 펄스들과 비교될 수 있다. In the track with small energy, the searched pulses (maximum sine waves) are compared with the pulse searched in the track with the largest energy in the order of the greatest absolute value (S1235). The SWB encoder and / or the SWB decoder may compare the N2 + n2 pulses found in the low energy track with the pulses found in the high energy track. In this case, the N2 + n2 pulses may be compared with the pulses selected in the tracks with the highest energy in the order of the greatest absolute value.
에너지가 작은 트랙(하위 중요도 트랙)에서 검색된 펄스들 중에 에너지가 큰 트랙(상위 중요도 트랙)에서 선택된 펄스와 인접한 위치의 펄스가 존재하면, 인접해 있는 두 펄스가 각각 에너지가 큰 트랙에서 부호화될 펄스 중 하나 및 에너지가 작은 트랙에서 부호호될 펄스 중 하나로 선택될 수 있다(S1240). If among the pulses searched on the low energy track (low importance track), there is a pulse in the position adjacent to the selected pulse on the high energy track (high importance track), the two adjacent pulses are each to be encoded in the high energy track. And one of the pulses to be signed in the track having a small energy (S1240).
에너지가 작은 트랙에서 검색된 펄스들 중에서 에너지가 큰 트랙에서 검색된 펄스와 인접한 위치의 펄스가 존재하지 않으면, 에너지가 작은 트랙에서 절대값이 가장 큰 펄스(최대값 사인파)가 선택될 수 있다. If there are no pulses in the position adjacent to the pulse found in the high energy track among the pulses searched in the low energy track, the pulse with the largest absolute value (maximum sine wave) in the low energy track may be selected.
예컨대, 트랙 쌍을 이루는 트랙들 중 에너지가 큰 트랙에서 선택된 펄스를 Pt1(t1 = 1…N1)이라고 하고, 에너지가 작은 트랙에서 검색된 펄스를 Pt2(t2 = 1…N2+n2)이라고 하자. 에너지가 큰 트랙에서 선택된 N1 개의 펄스와 에너지가 작은 트랙에서 검색된 N2+n2 개의 펄스로 구성할 수 있는 N1 x (N2 + n2)개의 펄스 조합 (Pt1, Pt2)이 구성될 수 있다. Pt1과 Pt2가 인접한 조합을 (Pt1,adj, Pt2,adj)라고 하면, Pt1,adj 을 에너지가 큰 트랙에서 부호화될 펄스로 결정하고 Pt2,adj를 에너지가 작은 트랙에서 부호화될 펄스로 결정할 수 있다. For example, suppose that the pulse selected from the tracks with the highest energy among the track pairing tracks is P t1 (t1 = 1… N1), and the pulse retrieved from the track with the smallest energy is P t2 (t2 = 1… N2 + n2). . N1 x (N2 + n2) pulse combinations P t1 and P t2 may be configured, which may consist of N1 pulses selected on the high energy track and N2 + n2 pulses retrieved on the low energy track. If P t1 and P t2 are contiguous combinations (P t1, adj , P t2, adj ), then P t1, adj is determined as the pulse to be encoded in the high energy track and P t2, adj is encoded in the low energy track. It can be determined by the pulse to be.
각 트랙에서 복수의 펄스를 선택해서 부호화하는 경우에는, 트랙 쌍을 이루는 트랙들 간의 인접한 펄스 조합을 추가로 선택할 수 있다. When a plurality of pulses are selected and encoded in each track, adjacent pulse combinations between tracks constituting the track pair can be further selected.
트랙 쌍을 이루는 트랙들 간에 인접한 펄스 조합이 복수 존재하는 경우에는, 인접하는 펄스 쌍들 중에서 절대값이 큰 순서대로 선택될 수 있다.When there are a plurality of adjacent pulse combinations among the tracks constituting the track pair, the absolute values may be selected in order from the adjacent pulse pairs.
트랙 쌍을 이루는 트랙들 간에 인접한 펄스 조합이 존재하지 않는 경우에는, 에너지가 작은 트랙에서도 에너지가 큰 트랙에서와 같이 절대값이 큰 순서대로 N2개의 펄스(최대값 사인파)를 선택할 수 있다.If there are no adjacent pulse combinations between tracks that make up a pair of tracks, N2 pulses (maximum sine waves) can be selected in the order of the greatest absolute value, as in the case of the high energy track, even in the low energy track.
한편, S1230에서는 에너지가 큰 트랙에서 부호화할 개수만큼의 펄스(최대값 사인파)만을 선택하는 것으로 설명하였으나, 본 발명은 이에 한정되지 않는다. 예컨대, S1230 단계를 수행하지 않고, 트랙 쌍을 이루는 트랙들 중 에너지가 큰 트랙에서 검색된 N1+n1개의 펄스와 에너지가 작은 트랙에서 검색된 N2+n2개의 트랙을 모두 고려할 수도 있다.Meanwhile, in S1230, only the number of pulses (maximum sine wave) to be encoded in the track having a large energy is selected. However, the present invention is not limited thereto. For example, without performing step S1230, it is also possible to consider both N1 + n1 pulses found in the high energy tracks and N2 + n2 tracks found in the low energy tracks among the track pairing tracks.
구체적으로, 트랙 쌍을 이루는 트랙들 중 에너지가 큰 트랙에서 검색된 펄스를 Pt1(t1 = 1…N1+n1)이라고 하고, 에너지가 작은 트랙에서 검색된 펄스를 Pt2(t2 = 1…N2+n2)이라고 하자. 에너지가 큰 트랙에서 검색된 N1+n1 개의 펄스와 에너지가 작은 트랙에서 검색한 N2+n2 개의 펄스로 구성할 수 있는 (N1 + n1) x (N2 + n2)개의 펄스 조합 (Pt1, Pt2)이 구성될 수 있다. Pt1과 Pt2가 인접한 조합을 (Pt1,adj, Pt2,adj)라고 하면, Pt1,adj 을 에너지가 큰 트랙에서 부호화될 펄스로 결정하고 Pt2,adj를 에너지가 작은 트랙에서 부호화될 펄스로 결정할 수도 있다.In detail, a pulse searched for a track having a high energy among tracks constituting a track pair is called P t1 (t1 = 1 ... N1 + n1), and a pulse searched for a track having a small energy is referred to as P t2 (t2 = 1 ... N2 + n2). Let's say (N1 + n1) x (N2 + n2) pulse combinations (P t1 , P t2 ) that can be composed of N1 + n1 pulses found on high energy tracks and N2 + n2 pulses found on low energy tracks This can be configured. If P t1 and P t2 are contiguous combinations (P t1, adj , P t2, adj ), then P t1, adj is determined as the pulse to be encoded in the high energy track and P t2, adj is encoded in the low energy track. It may be determined by the pulse to be.
선택된 펄스의 부호(sign)를 양자화 하기 위해 위치(position)가 변경될 수 있다(S1245). 부호화 대상 펄스를 선택하는 단계들(S1235, S1240)에서는 다른 트랙에서 검색된 펄스를 고려하여 단계들이 수행되었으나, 위치 변경 단계에서는 동일 트랙 내의 펄스들만을 고려한다. The position may be changed to quantize the sign of the selected pulse (S1245). In steps S1235 and S1240 of selecting an encoding target pulse, the steps are performed in consideration of the pulses found in other tracks, but only the pulses in the same track are considered in the position change step.
위치 변경은 트랙 당 한 개의 부호(sign) 비트만을 전송하기 위한 것으로서, 트랙 내에서 선택된 두 펄스의 부호가 같으면 절대값이 큰 펄스를 앞쪽 위치에 두고, 두 펄스의 부호가 다르면 절대값이 작은 펄스를 앞쪽 위치에 두는 방식으로 수행된다.The position change is for transmitting only one sign bit per track. If the two selected pulses in the track have the same sign, the pulse with the larger absolute value is placed in the front position. If the two pulses are different, the pulse with the small absolute value is different. This is done by placing in the front position.
따라서, 펄스의 위치는 동일한 트랙 내에서 선택된 두 펄스의 부호가 동일한지 상이한지에 따라서 변경될 수도 있고 변경되지 않을 수도 있다. Thus, the position of the pulse may or may not change depending on whether the signs of the two selected pulses within the same track are the same or different.
위치 변경의 구체적인 방법은 표 3에서 설명한 바와 같다.The specific method of changing the position is as described in Table 3.
선택된 펄스의 위치가 결정되면, 펄스의 위치가 양자화 된다(S1250). 이때, 펄스의 위치를 지시하는 정보를 양자화함에 있어서, 양자화 대상 위치는 S1245 단계에서 펄스의 부호를 고려하여 결정된 위치이다.If the position of the selected pulse is determined, the position of the pulse is quantized (S1250). At this time, in quantizing the information indicating the position of the pulse, the quantization target position is a position determined in consideration of the sign of the pulse in step S1245.
이어서, 선택된 펄스의 부호(sign)와 크기(amplitude)가 부호화될 수 있다(S1265).Subsequently, the sign and amplitude of the selected pulse may be encoded (S1265).
펄스의 부호와 크기를 지시하는 정보를 양자화하는 단계는, 펄스의 부호를 양자화 하는 단계(S1270), 펄스 크기(amplitude)를 양자화 하기 위한 크기 그룹핑 단계(S1275), 펄스의 크기를 양자화하는 단계(S1280)를 포함할 수 있다. 크기를 지시하는 정보의 양자화는 멀티 디멘젼 VQ(multi-dimensional Vector quantization)에 기반하여 수행될 수 있으며, 크기의 그룹핑은 멀티 디멘젼 VQ를 위한 전제 작업이라고도 할 수 있다.Quantizing the information indicating the sign and magnitude of the pulse includes: quantizing the sign of the pulse (S1270), size grouping step (S1275) for quantizing the pulse amplitude (S1275), and quantizing the magnitude of the pulse ( S1280) may be included. Quantization of the size indicating information may be performed based on multi-dimensional vector quantization (VQ), and grouping of sizes may be referred to as a prerequisite for multi-dimensional VQ.
한편, 타겟 신호에 트랙 쌍이 존재하지 않는 경우에는, 각 트랙에서 검색하는 최대값 사인파(펄스) 개수만큼 최대값 사인파를 선택할 수 있다(S1360). SWB 부호화부 및/또는 SWB 복호화부는 다른 트랙에서 검색된 펄스파를 고려하지 않고, 각 트랙별로 부호화 대상이 되는 펄스의 개수만큼 최대값 사인파(펄스)를 검색해서 부호화/양자화 대상 펄스로서 선택할 수 있다.On the other hand, when no track pair exists in the target signal, the maximum sine wave can be selected by the number of maximum sine waves (pulses) searched in each track (S1360). The SWB encoder and / or the SWB decoder may search for the maximum sine wave (pulse) by the number of pulses to be encoded for each track and select it as an encoding / quantization target pulse without considering the pulse waves searched for in other tracks.
선택된 펄스(최대값 사인파)들에 대하여, 트랙 쌍이 존재하는 경우와 동일하게 위치/크기/부호의 양자화 단계(S1365)가 수행될 수 있다.For the selected pulses (maximum sine waves), the quantization step S1365 of position / magnitude / sign may be performed in the same manner as if a track pair exists.
한편, S1225 단계에서는 각 트랙에서 부호화 대상 펄스의 개수보다 소정 개수 더 많은 펄스를 후보 펄스로서 검색하는 것을 설명하였으나, 본 발명은 이에 한정되지 않는다. 예컨대, 에너지가 큰 트랙에서는 부호화 대상 펄스의 개수보다 더 많은 개수의 펄스를 후보 펄스로서 검색하지 않고, 부호화의 대상(양자화의 대상)이 되는 펄스만을 검색할 수도 있다. 즉, 에너지가 큰 트랙에서는 N1 개의 펄스를 검색할 수도 있다. 이 경우, S1230 단계는 수행하지 않을 수도 있다. Meanwhile, in operation S1225, a search for a predetermined number more pulses as candidate pulses than the number of encoding target pulses in each track is described, but the present invention is not limited thereto. For example, in a track with a large energy, only a pulse serving as an encoding target (quantization target) may be searched without searching for a larger number of pulses as candidate pulses than the number of encoding target pulses. In other words, N1 pulses may be searched for in a track of high energy. In this case, step S1230 may not be performed.
또한, 도 12에서는 트랙 쌍을 구성하는 트랙들(에너지가 큰 트랙과 에너지가 작은 트랙)에서 후보 펄스를 검색하고 나서, 트랙별로 부호화할 펄스를 선택했으나, 본 발명은 이에 한정되지 않는다. 예컨대, 트랙 쌍을 구성하는 트랙별로 후보 펄스의 검색 및 부호화 대상 펄스의 선택을 수행할 수 있다. 이 경우, 에너지가 큰 트랙에 대하여 부호화 대상 펄스를 선택한 후, 에너지가 작은 트랙의 후보 펄스를 검색하고, 에너지가 큰 트랙에서 선택된 펄스의 위치를 고려하여 에너지가 작은 트랙의 부호화 대상 펄스를 선택할 수도 있다. In FIG. 12, the candidate pulses are searched for in the tracks (tracks with high energy and tracks with low energy) constituting the track pair, and then pulses to be encoded for each track are selected. However, the present invention is not limited thereto. For example, the candidate pulse may be searched and the encoding target pulse may be selected for each track constituting the track pair. In this case, after selecting the encoding target pulse for the high energy track, the candidate pulses of the low energy track may be searched, and the encoding target pulse of the low energy track may be selected in consideration of the position of the selected pulse in the high energy track. have.
도 12에서는 트랙의 중요도를 판단하기 위해, 트랙의 에너지를 기반으로 상위 중요도 트랙과 하위 중요도 트랙으로 구분하였으나, 본 발명은 이에 한정되지 않는다. 먼저 검색할 트랙을 결정하기 위한 기준은 에너지 이외에도 다른 기준을 적용할 수 있다. 이 경우에도, 트랙 쌍을 이루는 트랙들 간에는 도 12에서 설명한 바와 동일한 방법으로 펄스들을 검새하여 부호화 대상 펄스를 결정하고, 펄스의 정보를 양자화 할 수 있다.In FIG. 12, in order to determine the importance of a track, the track is divided into an upper importance track and a lower importance track based on the energy of the track. However, the present invention is not limited thereto. As a criterion for determining a track to be searched first, other criteria may be applied in addition to energy. Even in this case, the tracks of the track pairs can be detected in the same manner as described with reference to FIG. 12 to determine the encoding target pulse and quantize the information of the pulse.
설명한 바와 같이, 각 트랙에서 후보 펄스들을 검색하는 기준은 MDCT 계수(펄스)의 절대값이 된다. 이 경우, 다른 특징적인 값을 또 다른 기준으로서 부가할 수도 있다. 또한, 검색된 후보 펄스들 중에서 최종적으로 부호화/양자화할 펄스는 상위 중요도 트랙(도 12의 예에서는 에너지가 큰 트랙)의 펄스와 인접한 위치(position)의 펄스인지를 기준으로 선택될 수 있다.As described, the criteria for searching for candidate pulses in each track is the absolute value of the MDCT coefficient (pulse). In this case, other characteristic values may be added as another criterion. In addition, among the searched candidate pulses, the pulses to be finally encoded / quantized may be selected based on whether they are pulses in a position adjacent to the pulses of the higher importance track (the track having higher energy in the example of FIG. 12).
도 12에서는 에너지가 큰 트랙과 에너지가 작은 트랙이 하나의 트랙 쌍을 이루는 경우를 예로서 설명하였다. 도 12에서 설명한 본 발명은 두 개의 트랙이 트랙 쌍을 구성하는 경우뿐만 아니라, 둘 이상의 트랙들이 트랙을 구성하는 경우에도 동일하게 적용될 수 있다. In FIG. 12, a case in which a track having a high energy and a track having a low energy forms one track pair is described as an example. The present invention described with reference to FIG. 12 may be equally applied to a case in which two tracks constitute a track pair, as well as a case in which two or more tracks constitute a track.
한편, 도 12의 단계들은 타겟 신호의 모든 트랙에서 부호화 대상 펄스가 결정될 수 있도록 모든 트랙들에 대하여 순서대로 적용될 수 있다. Meanwhile, the steps of FIG. 12 may be applied in order to all tracks so that an encoding target pulse may be determined in all tracks of a target signal.

도 13은 본 발명에 따라서 트랙 쌍을 이루는 트랙들 사이에서 다른 트랙의 검색 결과를 고려하여 검색을 수행하는 방법의 다른 예를 개략적으로 설명하는 도면이다. 도 13의 예에서는 트랙 쌍을 이루는 트랙들 중 어느 한 트랙에 대한 검색을 수행하는 경우에, 다른 트랙들에서 검색된 펄스와 인접한 펄스를 부호화할 펄스로서 선택하는 방법을 설명하고 있다.FIG. 13 is a view schematically illustrating another example of a method of performing a search in consideration of a search result of another track among tracks of a track pair according to the present invention. In the example of FIG. 13, when a search is performed for any one track among tracks constituting a track pair, a method of selecting a pulse adjacent to a pulse searched in other tracks as a pulse to be encoded.
도 13의 예에서는, 트랙 쌍을 이루는 각 트랙들이 인접하여 있다고 가정한다. In the example of FIG. 13, it is assumed that each track constituting the track pair is adjacent.
또한, 도 13의 예는 도 1의 SWB 부호화부에서 수행될 수 있다. 또한, 도 13의 예에서 일부 또는 모든 단계는 도 3의 SWB 복호화부에서 수행될 수도 있다. 예컨대, SWB 부호화부 및/또는 SWB 복호화부의 사인파 모드부, 추가 사인파부 중 적어도 하나에서 수행될 수 있다. 여기서는 설명의 편의를 위해, SWB 부호화부 및/또는 SWB 복호화부에서 도 13의 각 단계를 수행하는 것으로 설명한다.In addition, the example of FIG. 13 may be performed by the SWB encoder of FIG. 1. In addition, some or all of the steps in the example of FIG. 13 may be performed by the SWB decoder of FIG. 3. For example, the operation may be performed in at least one of a sine wave mode unit and an additional sine wave unit of the SWB encoder and / or the SWB decoder. For convenience of explanation, the steps of FIG. 13 are performed by the SWB encoder and / or the SWB decoder.
도 13을 참조하면, 우선 타겟(target) 신호가 생성된다(S1300). 이때, 타겟 신호는 양자화할 펄스들 즉, MDCT 계수들일 수 있다. SWB 부호화부 및/또는 SWB 복호화부는 양자화할 MDCT 계수(타겟 신호)를 생성할 수 있다.Referring to FIG. 13, a target signal is first generated (S1300). In this case, the target signal may be pulses to be quantized, that is, MDCT coefficients. The SWB encoder and / or the SWB decoder may generate MDCT coefficients (target signals) to be quantized.
생성된 타겟 신호에 트랙 쌍이 있는지가 판단된다(S1305). SWB 부호화부 및/또는 SWB 복호화부는 부호화 대상인 MDCT 계수들(타겟 신호)에 트랙 쌍이 존재하는지를 판단한다. It is determined whether there is a track pair in the generated target signal (S1305). The SWB encoder and / or the SWB decoder determines whether a track pair exists in the MDCT coefficients (target signal) to be encoded.
트랙 쌍은, 동일한 스텝(펄스 간격)을 가지며 트랙 내 펄스의 위치가 인접 트랙 내 펄스의 위치와 서로 이웃하는 트랙들로 구성될 수 있다.A track pair may consist of tracks having the same steps (pulse intervals) and whose position in the track is adjacent to each other with the position of the pulse in the adjacent track.
타겟 신호에 트랙 쌍이 있는 경우에는, 트랙 쌍을 구성하는 트랙들의 특징을 추출한다(S1215). 이때, 추출되는 특징은 트랙 쌍에 대하여 동일한 특징으로서, 트랙 쌍을 구성하는 트랙 별로 서로 다른 값, 예컨대 서로 다른 크기의 값을 가질 수 있는 특징이다. If there are track pairs in the target signal, the features of the tracks constituting the track pair are extracted (S1215). In this case, the extracted feature is the same feature for the track pair, and may have different values, for example, different values for each track constituting the track pair.
트랙별로 추출된 특징의 값에 따라서, 트랙들의 중요도 순서가 결정될 수 있다(S1315). 예컨대, 트랙별로 추출되는 특징으로서 트랙별 에너지가 이용되는 경우를 고려하면, 에너지가 높은 트랙이 중요도가 높은 트랙, 즉 펄스의 검색이 먼저 수행되는 트랙으로 결정될 수 있다.According to the value of the feature extracted for each track, the order of importance of the tracks may be determined (S1315). For example, considering a case where track-specific energy is used as a feature extracted for each track, a track having a high energy may be determined as a track of high importance, that is, a track in which a search for pulse is performed first.
다만, 추출된 특징 값에 따른 순서대로 처리하는 것은 검색의 경우로서, 이후의 다른 단계에서는 원래의 트랙 순서에 따라서 각각의 처리가 진행될 수도 있다. 예컨대, 양자화하여 비트스트림을 구성하는 경우에는 트랙 0을 먼저 처리하고 트랙 1을 이어서 처리할 수도 있다.However, processing in the order according to the extracted feature value is a case of searching, and each process may proceed according to the original track order in other steps later. For example, when the bitstream is formed by quantization, track 0 may be processed first and track 1 may be processed subsequently.
트랙별로 특징값이 추출되면, 트랙 쌍을 구성하는 트랙들에 대하여 특징 값에 따라서 펄스를 검색하는 순서가 결정될 수 있다. 예컨대, 특징이 무엇인지에 따라서, 특징 값의 크기가 큰 트랙이 더 중요한 트랙인 경우에는, 특징 값이 큰 트랙부터 펄스 검색이 진행될 수 있다. 혹은 특징 값의 크기가 작은 트랙이 더 중요한 트랙인 경우에는, 특징 값이 작은 작은 트랙부터 펄스 검색이 진행될 수도 있다.When the feature value is extracted for each track, an order of searching for pulses may be determined according to the feature value of the tracks constituting the track pair. For example, depending on what the feature is, when a track having a large feature value is a more important track, the pulse search may proceed from the track having a large feature value. Alternatively, in the case where a track having a small feature value is a more important track, a pulse search may be performed from a track having a small feature value.
트랙 쌍을 구성하는 트랙들에 대한 중요도 순서가 결정되면, 중요도 순서에 따라서 각 트랙별로 후보 펄스들이 검색될 수 있다. When the importance order for the tracks constituting the track pair is determined, candidate pulses may be searched for each track according to the importance order.
트랙들에 대한 중요도 순서에 따라서, 1 순위 중요도 트랙에서 후보 펄스들이 검색된다(S1320). 1 순위 중요도 트랙에서 부호화할 펄스의 개수가 M1이라고 하면(M1은 0보다 큰 정수), 부호화할 펄스의 개수보다 소정 개수(m1) 더 많은 펄스가 1 순위 중요도 트랙의 후보 펄스로서 검색될 수 있다. According to the importance order for the tracks, candidate pulses are searched for in the first priority importance track (S1320). If the number of pulses to be encoded in the priority track is M1 (M1 is an integer greater than 0), a predetermined number (m1) more pulses than the number of pulses to be encoded may be searched as candidate pulses in the priority track. .
1 순위 중요도 트랙에서 검색된 후보 펄스들 중에서, 1 순위 중요도 트랙에서 부호화될 펄스의 개수(M1)만큼의 펄스가 선택될 수 있다(S1325). 이때, 부호화될 펄스의 개수는, 트랙 쌍을 이루는 다른 트랙에서 검색되는 펄스(최대값 사인파)를 고려하지 않는 경우에, 1 순위 중요도 트랙에서 검색되는 펄스의 개수와 동일할 수 있다.Among the candidate pulses searched for in the priority ranking track, pulses corresponding to the number M1 of pulses to be coded in the priority ranking track may be selected (S1325). In this case, the number of pulses to be encoded may be equal to the number of pulses searched in the priority tracks when the pulses searched in the other tracks of the track pair (maximum sine wave) are not considered.
이어서, 2 순위 중요도 트랙에서 후보 펄스들이 검색된다(S1330). 2 순위 중요도 트랙에서 부호화할 펄스의 개수가 M2라고 하면(M2는 0보다 큰 정수), 부호화할 펄스의 개수보다 소정 개수(m2) 더 많은 펄스가 2 순위 중요도 트랙의 후보 펄스로서 검색될 수 있다. 이때, 2 순위 중요도 트랙에서 추가로 검색되는 펄스의 개수 m2는 1 순위 중요도 트랙에서 추가로 검색되는 펄스의 개수 m1과 같거나 더 클 수 있다.Subsequently, candidate pulses are searched for in the second rank importance track (S1330). If the number of pulses to be encoded in the second priority track is M2 (M2 is an integer greater than 0), a predetermined number (m2) more pulses than the number of pulses to be encoded may be searched as candidate pulses of the second priority track. . At this time, the number m2 of additionally searched pulses in the second priority track can be equal to or greater than the number m1 of additionally searched pulses in the first priority track.
2 순위 중요도 트랙에서 검색된 후보 펄스들의 위치와 1 순위 중요도 트랙에서 선택된 펄스들의 위치(position)가 비교된다(S1335). The positions of the candidate pulses searched in the 2nd priority importance track and the position of the selected pulses in the 1st priority importance track are compared (S1335).
SWB 부호화부 및/또는 SWB 복호화부는 2 순위 중요도 트랙에서 검색된 M2+m2개의 펄스들의 위치를 1 순위 중요도 트랙에서 선택된 펄스들의 위치와 비교할 수 있다. The SWB encoder and / or the SWB decoder may compare the positions of the M2 + m2 pulses found in the second priority track with the positions of the pulses selected in the first priority track.
2 순위 중요도 트랙에서 검색된 펄스들 중에 1 순위 중요도 트랙에서 선택된 펄스와 인접한 위치의 펄스가 존재하면, 인접해 있는 두 펄스가 각각 1 순위 중요도 트랙에서 부호화될 펄스 중 하나 및 2 순위 중요도 트랙에서 부호화될 펄스 중 하나로 선택될 수 있다(S1340). If among the pulses retrieved from the 2nd priority track, there is a pulse at a position adjacent to the selected pulse in the 1st priority track, two adjacent pulses are each encoded in the 2nd priority track and one of the pulses to be coded in the 1st priority track. One of the pulses may be selected (S1340).
2 순위 중요도 트랙에서 검색된 펄스들 중에서 1 순위 중요도 트랙에서 선택된 펄스와 인접한 위치의 펄스가 존재하지 않으면, 2 순위 중요도 트랙에서 절대값이 가장 큰 펄스(최대값 사인파)가 선택될 수 있다. If there is no pulse in the position adjacent to the pulse selected in the first priority track among the pulses searched in the second rank importance track, the pulse with the largest absolute value (maximum sine wave) in the second rank importance track may be selected.
예컨대, 트랙 쌍을 이루는 트랙들 중 1 순위 중요도 트랙에서 선택된 펄스를 Ptp1(tp1 = 1…M1)이라고 하고, 2 순위 중요도 트랙에서 검색된 펄스를 Ptp2(tp2 = 1…M2+m2)이라고 하자. 1 순위 중요도 트랙에서 선택된 M1 개의 펄스와 2 순위 중요도 트랙에서 검색된 M2+m2 개의 펄스로 구성할 수 있는 M1x(M2+m2)개의 펄스 조합 (Ptp1, Ptp2)이 구성될 수 있다. For example, suppose that the pulse selected in the first priority track among the track pairing tracks is P tp1 (tp1 = 1… M1), and the pulse retrieved in the second priority track is P tp2 (tp2 = 1… M2 + m2). . M1x (M2 + m2) pulse combinations P tp1 and P tp2 may be configured, which may consist of M1 pulses selected in the priority track and M2 + m2 pulses found in the priority track.
Ptp1과 Ptp2가 인접한 조합을 (Ptp1,adj, Ptp2,adj)라고 하면, Ptp1,adj 을 1 순위 중요도 트랙에서 부호화될 펄스로 결정하고 Ptp2,adj를 2 순위 중요도 트랙에서 부호화될 펄스로 결정할 수 있다. P tp1 and P tp2 is the adjacent combination (adj P tp1,, P tp2 , adj) is called when, P tp1, determines the adj by one pulse to be encoded in the Priority track P tp2, adj encoding the at secondary importance track It can be determined by the pulse to be.
각 트랙에서 복수의 펄스를 선택해서 부호화하는 경우에는, 트랙 쌍을 이루는 트랙들 간에 인접한 펄스 조합을 추가로 선택할 수 있다. 트랙 쌍을 이루는 트랙들 간에 인접한 펄스 조합이 복수 존재하는 경우에는, 인접하는 펄스 쌍들 중에서 절대값이 큰 순서대로 선택될 수 있다. 예컨대, 트랙 별로 2 개의 펄스를 선택하여 부호화하는 경우라면, 두 트랙의 펄스들이 인접해 있는 펄스 쌍들 중에서 2순위 중요도 트랙의 펄스 절대값이 가장 큰 펄스 쌍과 그 다음으로 2 순위 중요도 트랙의 펄스 절대값이 큰 펄스 쌍을 선택하여 부호화/양자화 할 수 있다. In the case where a plurality of pulses are selected and encoded in each track, adjacent pulse combinations between tracks forming track pairs can be further selected. When there are a plurality of adjacent pulse combinations among the tracks constituting the track pair, the absolute values may be selected in order from the adjacent pulse pairs. For example, if two pulses are selected and encoded for each track, pulse pairs having the largest pulse absolute value of the second priority track among pulse pairs adjacent to the pulses of the two tracks, and then pulse absolute of the second priority track. A pulse pair with a large value can be selected and encoded / quantized.
트랙 쌍을 이루는 트랙들 간에 인접한 펄스 조합이 존재하지 않는 경우에는, 2 순위 중요도 트랙에서도 1 순위 중요도 트랙에서 펄스를 선택한 방법과 유사하게 절대값이 큰 순서대로 M2개의 펄스(최대값 사인파)를 선택할 수 있다.If there are no adjacent pulse combinations between the track pairing tracks, M2 pulses (maximum sine waves) are selected in order of absolute magnitude, similar to the method of selecting pulses in the 1st priority track in the 2nd priority track. Can be.
한편, S1325에서는 1 순위 중요도 트랙에서 부호화할 개수만큼의 펄스만을 선택하는 것으로 설명하였으나, 본 발명은 이에 한정되지 않는다. 예컨대, S1325 단계를 수행하지 않고, 트랙 쌍을 이루는 트랙들 중 1 순위 중요도 트랙에서 검색된 M1+m1개의 펄스와 2 순위 중요도 트랙에서 검색된 M2+m2 개의 트랙을 모두 고려할 수도 있다.In S1325, only the number of pulses to be coded in the first priority track is selected. However, the present invention is not limited thereto. For example, without performing step S1325, it is also possible to consider both M1 + m1 pulses found in the first priority track and M2 + m2 tracks found in the second priority track among the track pairing tracks.
구체적으로, 트랙 쌍을 이루는 트랙들 중 1 순위 중요도 트랙에서 검색된 펄스를 Ptp1(tp1 = 1…M1+m1)이라고 하고, 2 순위 중요도 트랙에서 검색된 펄스를 Ptp2(tp2 = 1…M2+m2)이라고 하자. 1 순위 중요도 트랙에서 검색된 M1+m1 개의 펄스와 2 순위 중요도 트랙에서 검색한 M2+m2 개의 펄스로 구성할 수 있는 (M1+m1)x(M2+m2) 개의 펄스 조합 (Ptp1, Ptp2)이 구성될 수 있다. Ptp1과 Ptp2가 인접한 조합을 (Ptp1,adj, Ptp2,adj)라고 하면, Ptp1,adj 을 1 순위 중요도 트랙에서 부호화될 펄스로 결정하고 Ptp2,adj를 2 순위 중요도 트랙에서 부호화될 펄스로 결정할 수도 있다. 트랙별로 복수의 펄스가 선택되어야 하는 경우라면, 인접하는 두 펄스의 펄스 쌍들 중에서 2 순위 중요도 트랙의 펄스의 절대값이 큰 순서대로 선택될 수 있다.Specifically, the pulse searched in the first priority track among the track pairing tracks is P tp1 (tp1 = 1… M1 + m1), and the pulse searched in the second rank importance track is P tp2 (tp2 = 1… M2 + m2). Let's say A combination of (M1 + m1) x (M2 + m2) pulses (P tp1 , P tp2 ) that can consist of M1 + m1 pulses retrieved from the priority track and M2 + m2 pulses retrieved from the priority track. This can be configured. P tp1 and P tp2 is the adjacent combination (adj P tp1,, P tp2 , adj) is called when, P tp1, determines the adj by one pulse to be encoded in the Priority track P tp2, adj encoding the at secondary importance track It may be determined by the pulse to be. If a plurality of pulses are to be selected for each track, the absolute values of the pulses of the second priority track among the pairs of pulses of two adjacent pulses may be selected in ascending order.
3 순위 중요도 트랙부터 그 이하의 중요도 트랙들도 동일한 방법으로 후보 펄스를 검색하고 후보 펄스들 중에서 부호화할 펄스를 선택할 수 있다. The priority tracks from the 3rd priority track to the following priority tracks may search for candidate pulses and select a pulse to be encoded from the candidate pulses.
중요도에 따라서 순차적으로 트랙별 후보 펄스를 검색하고, 부호화 대상 펄스를 선택해 나가는 과정을 진행하여, 최하순위 중요도 트랙에서 후보 펄스들이 검색된다(S1345). 트랙 쌍이 k 개의 트랙으로 구성되었다고 가정하면, 최하순위 중요도 트랙(k 순위 중요도 트랙)에서 부호화할 펄스의 개수 Mk(Mk는 0보다 큰 정수)에 대하여, 부호화할 펄스의 개수보다 소정 개수(mk) 더 많은 펄스가 최하순위 중요도 트랙의 후보 펄스로서 검색될 수 있다. 이때, 최하순위 중요도 트랙에서 추가로 검색되는 펄스의 개수 mk는 이전 순위 중요도 트랙(k-1 순위 중요도 트랙)에서 추가로 검색되는 펄스의 개수 mk-1과 같거나 더 클 수 있다.The candidate pulses for each track are sequentially searched according to the importance, the process of selecting the encoding target pulse is performed, and the candidate pulses are searched for in the lowest priority track (S1345). Assuming that a pair of tracks consists of k tracks, for a number Mk (Mk is an integer greater than 0) to be encoded in the lowest priority track (k rank priority track), the predetermined number (mk) is greater than the number of pulses to be encoded. More pulses can be retrieved as candidate pulses of the lowest priority track. In this case, the number mk of additionally searched pulses in the lowest priority track may be equal to or greater than the number mk-1 of additionally searched pulses in the previous priority track (k-1 priority track).
최하순위 중요도 트랙에서 검색된 후보 펄스들의 위치와 상위 순위 중요도 트랙에서 선택된 펄스들의 위치(position)가 비교된다(S1350). The positions of the candidate pulses searched in the lowest priority track and the positions of the selected pulses in the high rank priority track are compared (S1350).
SWB 부호화부 및/또는 SWB 복호화부는 최하순위 중요도 트랙에서 검색된 Mk+mk개의 펄스들의 위치를 이전 순위 중요도 트랙에서 선택된 펄스들의 위치와 비교할 수 있다. The SWB encoder and / or the SWB decoder may compare the positions of the Mk + mk pulses found in the lowest priority track with the positions of the pulses selected in the previous rank priority track.
최하순위 중요도 트랙에서 검색된 펄스들 중에 그 이전 순위 중요도 트랙에서 선택된 펄스와 인접한 위치의 펄스가 존재하면, 인접해 있는 두 펄스가 각각 최하순위 중요도 트랙(k 순위 중요도 트랙)에서 부호화될 펄스 중 하나 및 이전 순위 중요도 트랙(k-1 순위 중요도 트랙)에서 부호화될 펄스 중 하나로 선택될 수 있다(S1355). If among the pulses retrieved in the lowest priority track, there is a pulse at a position adjacent to the selected pulse in the previous priority importance track, two adjacent pulses are each one of the pulses to be encoded in the lowest priority track (k rank importance track) and One of the pulses to be encoded in the previous rank importance track (k-1 rank importance track) may be selected (S1355).
예컨대, 트랙 쌍을 이루는 트랙들 중 이전 순위 중요도 트랙에서 선택된 펄스를 Ptpk-1(tpk-1 = 1…Mk-1)이라고 하고, 최하순위 중요도 트랙에서 검색된 펄스를 Ptpk(tpk = 1…Mk+mk)이라고 하자. 이전 순위 중요도 트랙에서 선택된 Mk-1 개의 펄스와 최하 순위 중요도 트랙에서 검색된 Mk+mk 개의 펄스로 구성할 수 있는 Mk-1 x (Mk+mk)개의 펄스 조합 (Ptpk-1, Ptpk)이 구성될 수 있다. For example, among the track paired tracks, the pulse selected in the previous rank importance track is referred to as P tpk-1 (tpk-1 = 1 ... Mk-1), and the pulse found in the least significant importance track is referred to as P tpk (tpk = 1 ... Mk-1). Mk + mk). There are Mk-1 x (Mk + mk) pulse combinations (P tpk-1 , P tpk ) that can consist of the Mk-1 pulses selected in the previous priority importance track and the Mk + mk pulses found in the lowest priority importance track. Can be configured.
Ptpk-1과 Ptpk가 인접한 조합을 (Ptpk-1,adj, Ptpk,adj)라고 하면, Ptpk-1,adj 을 이전 순위 중요도 트랙에서 부호화될 펄스로 결정하고 Ptpk,adj를 최하순위 중요도 트랙에서 부호화될 펄스로 결정할 수 있다. If P tpk-1 and P tpk are contiguous combinations (P tpk-1, adj , P tpk, adj ), then determine P tpk-1, adj as the pulse to be coded in the previous rank importance track and P tpk, adj It can be determined as the pulse to be encoded in the lowest priority track.
각 트랙에서 복수의 펄스를 선택해서 부호화하는 경우에는, 트랙 쌍을 이루는 트랙들 간에 인접한 펄스 조합을 추가로 선택할 수 있다. 트랙 쌍을 이루는 트랙들 간에 인접한 펄스 조합이 복수 존재하는 경우에는, 인접하는 펄스 쌍들 중에서 절대값이 큰 순서대로 선택될 수 있다.In the case where a plurality of pulses are selected and encoded in each track, adjacent pulse combinations between tracks forming track pairs can be further selected. When there are a plurality of adjacent pulse combinations among the tracks constituting the track pair, the absolute values may be selected in order from the adjacent pulse pairs.
트랙 쌍을 이루는 트랙들 간에 인접한 펄스 조합이 존재하지 않는 경우에는, 최하순위 중요도 트랙에서 절대값이 큰 순서대로 Mk개의 펄스(최대값 사인파)를 선택할 수 있다.If there are no adjacent pulse combinations between the track pairing tracks, then Mk pulses (maximum sine waves) can be selected in the order of largest absolute value in the lowest priority track.
선택된 펄스의 부호(sign)를 양자화 하기 위해 위치(position)가 변경될 수 있다(S1345). 부호화 대상 펄스를 선택하는 단계들(S1340 등)에서는 다른 트랙에서 검색된 펄스를 고려하여 단계들이 수행되었으나, 위치 변경 단계에서는 동일 트랙 내의 펄스들만을 고려한다. The position may be changed to quantize the sign of the selected pulse (S1345). In the step of selecting the encoding target pulse (S1340, etc.), the steps are performed in consideration of the pulses found in other tracks, but in the position change step, only the pulses in the same track are considered.
위치 변경은 트랙 당 한 개의 부호(sign) 비트만을 전송하기 위한 것으로서, 트랙 내에서 선택된 두 펄스의 부호가 같으면 절대값이 큰 펄스를 앞쪽 위치에 두고, 두 펄스의 부호가 다르면 절대값이 작은 펄스를 앞쪽 위치에 두는 방식으로 수행된다. The position change is for transmitting only one sign bit per track. If the two selected pulses in the track have the same sign, the pulse with the larger absolute value is placed in the front position. If the two pulses are different, the pulse with the small absolute value is different. This is done by placing in the front position.
따라서, 펄스의 위치는 동일한 트랙 내에서 선택된 두 펄스의 부호가 동일한지 상이한지에 따라서 변경될 수도 있고 변경되지 않을 수도 있다. Thus, the position of the pulse may or may not change depending on whether the signs of the two selected pulses within the same track are the same or different.
위치 변경의 구체적인 방법은 표 3에서 설명한 바와 같다.The specific method of changing the position is as described in Table 3.
선택된 펄스의 위치가 결정되면, 펄스의 위치, 크기 및/또는 부호가 양자화 된다(S1365). 이때, 펄스의 위치를 지시하는 정보를 양자화함에 있어서, 양자화 대상 위치는 S1245 단계에서 펄스의 부호를 고려하여 결정된 위치이다.When the position of the selected pulse is determined, the position, magnitude and / or sign of the pulse is quantized (S1365). At this time, in quantizing the information indicating the position of the pulse, the quantization target position is a position determined in consideration of the sign of the pulse in step S1245.
한편, 타겟 신호에 트랙 쌍이 존재하지 않는 경우에는, 각 트랙에서 검색하는 최대값 사인파(펄스) 개수만큼 최대값 사인파를 선택할 수있다(S1360). SWB 부호화부 및/또는 SWB 복호화부는 다른 트랙에서 검색된 펄스파를 고려하지 않고, 각 트랙별로 부호화 대상이 되는 펄스의 개수만큼 최대값 사인파를 검색해서 부호화/양자화 대상 펄스로서 선택할 수 있다.On the other hand, when no track pair exists in the target signal, the maximum sine wave can be selected by the number of maximum sine waves (pulses) searched in each track (S1360). The SWB encoder and / or the SWB decoder may search for the maximum sine wave by the number of pulses to be encoded for each track and select it as an encoding / quantization target pulse without considering the pulse waves searched for in other tracks.
선택된 펄스(최대값 사인파)들에 대하여, 트랙 쌍이 존재하는 경우와 동일하게 위치/크기/부호의 양자화 단계(S1365)가 수행될 수 있다. For the selected pulses (maximum sine waves), the quantization step S1365 of position / magnitude / sign may be performed in the same manner as if a track pair exists.
한편, S1320 단계에서는 각 트랙에서 부호화 대상 펄스의 개수보다 소정 개수 더 많은 펄스를 후보 펄스로서 검색하는 것을 설명하였으나, 본 발명은 이에 한정되지 않는다. 예컨대, 1 순위 중요도 트랙에서는 부호화 대상 펄스의 개수보다 더 많은 개수의 펄스를 후보 펄스로서 검색하지 않고, 부호화의 대상(양자화의 대상)이 되는 펄스만을 검색할 수도 있다. 즉, 1 순위 중요도 트랙에서는 하순위 중요도 트랙과 달리, M1 개의 펄스만을 검색할 수도 있다. 이 경우, S1325 단계는 수행하지 않을 수도 있다.Meanwhile, in operation S1320, a search for a predetermined number more pulses as candidate pulses than the number of encoding target pulses in each track has been described, but the present invention is not limited thereto. For example, in the priority track, the number of pulses larger than the number of encoding target pulses may not be searched as candidate pulses, but only the pulses that are encoding targets (quantization targets) may be searched. That is, unlike the lower priority track, only the M1 pulses may be searched for in the priority track. In this case, step S1325 may not be performed.
또한, 도 13의 예에서는 트랙 쌍을 구성하는 트랙별로 후보 펄스의 검색 및 선택을 수행하는 것을 설명하였으나, 본 발명은 이에 한정되지 않는다. 예를 들어, 트랙 쌍을 구성하는 모든 트랙들에 대하여 부호화 대상 펄스의 개수보다 소정 개수 이상의 후보 펄스를 검색한 후, 각각의 트랙별로 후보 펄스들 중에서 상위 중요도 트랙에서 선택된 펄스들에 인접한 펄스를 부호화 대상 펄스로 선택해 나갈 수 있다. 이때, 트랙 쌍을 구성하는 모드 트랙들에 대하여 후보 펄스를 검색할 때, 최상위 중요도 트랙에서는 부호화 대상 펄스의 개수와 동일한 후보 펄스를 선택(예컨대, 후보 펄스의 검색이 아닌 부호화 대상 펄스의 검색)할 수도 있다. In the example of FIG. 13, the searching and selection of the candidate pulses are performed for each track constituting the track pair, but the present invention is not limited thereto. For example, after searching a predetermined number of candidate pulses or more than the number of encoding target pulses for all tracks constituting the track pair, encoding the pulses adjacent to the pulses selected from the higher priority tracks among the candidate pulses for each track. It can be selected by the target pulse. In this case, when searching for candidate pulses for the mode tracks constituting the track pair, the most significant track selects candidate pulses equal to the number of encoding target pulses (for example, searching for encoding target pulses rather than searching for candidate pulses). It may be.
도 13에서는 트랙의 중요도를 판단하기 위해, 트랙의 에너지를 기반으로 상위 중요도 트랙과 하위 중요도 트랙으로 구분하였으나, 본 발명은 이에 한정되지 않는다. 먼저 검색할 트랙을 결정하기 위한 기준은 에너지 이외에도 다른 기준을 적용할 수 있다. 이 경우에도, 트랙 쌍을 이루는 트랙들 간에는 도 13에서 설명한 바와 동일한 방법으로 펄스들을 검색하여 부호화 대상 펄스를 결정하고, 펄스의 정보를 양자화 할 수 있다.In FIG. 13, in order to determine the importance of a track, the track is divided into an upper importance track and a lower importance track based on the energy of the track. However, the present invention is not limited thereto. As a criterion for determining a track to be searched first, other criteria may be applied in addition to energy. Even in this case, the tracks of the track pairs may be searched for pulses in the same manner as described with reference to FIG. 13 to determine an encoding target pulse and quantize the information of the pulses.
한편, 도 13의 단계들은 타겟 신호의 모든 트랙에서 부호화 대상 펄스가 결정될 수 있도록 모든 트랙들에 대하여 순서대로 적용될 수 있다. Meanwhile, the steps of FIG. 13 may be applied in order to all tracks so that an encoding target pulse may be determined in all tracks of a target signal.
도 12 및 도 13에서 설명한 방법은 G.718 SWB의 상위 대역과 같이 처리하는 경우와 같이, 타겟 신호가 원본 신호 성분을 모두 포함하는 경우에도 적용할 수 있다. 또한 도 12 및 도 13의 방법은 토널(tonal) 성분이 강한 대역에 MDCT 계수가 몰리도록 하는 역할을 한다. The method described with reference to FIGS. 12 and 13 can be applied to a case where the target signal includes all original signal components, such as the case of processing the higher band of the G.718 SWB. In addition, the method of FIG. 12 and FIG. 13 serves to cause the MDCT coefficient to be concentrated in a band having a strong tonal component.
상위 중요도 트랙의 펄스 포지션과 인접한 펄스를 선택하는 방법은 토널리티(tonality)가 존재하는 신호에서 효과적이며, G.718 SWB와 같이 토널 정보에 따라 다른 모드(토널 성분이 없는 경우, 제네릭과 같이 다른 모드)가 있는 경우 효율적이다. Selecting a pulse adjacent to the pulse position of the higher importance track is effective for signals with tonality and different modes depending on the tonal information, such as G.718 SWB (generic if no tonal component is present). Efficient if you have other modes).
부호화기에서 도 12 및/또는 도 13의 방법은 MDCT 기반 인핸스먼스 레이어에서 수행될 수 있다. MDCT 기반 인핸스먼트 레이어(MDCT based enhancement layer)는 도 1의 SWB 부호화부에 대응할 수도 있다. 또한, MDCT 기반 인핸스먼트 레이어는 도 3의 SWB 복호화부에 대응할 수도 있다. 12 and / or 13 in the encoder may be performed in the MDCT-based enhancement layer. The MDCT based enhancement layer may correspond to the SWB encoder of FIG. 1. In addition, the MDCT-based enhancement layer may correspond to the SWB decoder of FIG. 3.

떨어진fallen 위치의 펄스를 검색하는 방법 How to retrieve the pulse of position
도 12 및 도 13의 예와 달리, 트랙 쌍을 이루는 트랙들 간에 인접한 펄스들을 부호화 대상 펄스로 선택하는 대신, 다른 트랙에서 선택된 펄스와 떨어져 있는 펄스를 부호화 대상 펄스로 선택할 수도 있다.Unlike the examples of FIGS. 12 and 13, instead of selecting adjacent pulses between tracks of the track pairs as encoding target pulses, pulses separated from pulses selected from other tracks may be selected as encoding target pulses.
다른 트랙에서 선택된 펄스와 떨어진 위치의 펄스를 부호화 대상 펄스로 선택하는 방법은, 타겟 신호의 한 프레임 내에 에너지가 균등하게 분포되어 있는 경우에 효과적으로 사용할 수 있다. 이 경우에, 현재 트랙 내에서 부호화 대상 펄스를 선택하기 위해서, 트랙 쌍을 구성하는 다른 트랙의 펄스와 위치(position)를 비교하는 단계에서 상위 중요도 트랙의 펄스 위치와 상대적으로 떨어져 있는 위치의 펄스를 선택할 수 있다.The method of selecting a pulse at a position away from the pulse selected in another track as the encoding target pulse can be effectively used when energy is uniformly distributed in one frame of the target signal. In this case, in order to select the pulse to be encoded within the current track, in the step of comparing the position with the pulses of the other tracks constituting the track pair, the pulse at a position relatively separated from the pulse position of the higher priority track is obtained. You can choose.
또한, 본 방법은 토널리티에 따른 여러 모드가 존재하지 않는 경우에도 효과적으로 사용될 수 있다.In addition, the present method can be effectively used even when there are no modes depending on the tonality.
설명의 편의를 위해, 트랙들이 인접해 있는 것으로 가정하지만, 트랙들이 떨어져 있는 경우에도 본 발명은 동일하게 적용될 수 있다.For convenience of explanation, it is assumed that the tracks are adjacent, but the present invention can be equally applied even when the tracks are separated.
도 14는 본 발명에 따라서 트랙 쌍을 이루는 트랙들 사이에서 다른 트랙의 검색 결과를 고려하여 검색을 수행하는 방법의 또 다른 예를 개략적으로 설명하는 도면이다. 도 14의 예에서는 트랙 쌍을 이루는 트랙들 중 어느 한 트랙에 대한 검색을 수행하는 경우에, 다른 트랙들에서 검색된 펄스로부터 떨어져 있는 펄스를 부호화할 펄스로서 선택하는 방법을 설명하고 있다.14 is a view schematically illustrating another example of a method of performing a search in consideration of a search result of another track among tracks of a track pair according to the present invention. In the example of FIG. 14, when a search is performed for any one track among tracks constituting a track pair, a method of selecting a pulse away from a pulse searched in other tracks as a pulse to be encoded.
도 14의 예에서는, 두 개의 트랙이 트랙 쌍을 구성하며, 트랙 쌍을 이루는 각 트랙들이 인접하여 있다고 가정한다. In the example of FIG. 14, it is assumed that two tracks constitute a track pair, and each track constituting the track pair is adjacent to each other.
또한, 도 14의 예는 도 1의 SWB 부호화부에서 수행될 수 있다. 또한, 도 14의 예에서 일부 또는 모든 단계는 도 3의 SWB 복호화부에서 수행될 수 있다. 예컨대, SWB 부호화부 및/또는 SWB 복호화부의 사인파 모드부, 추가 사인파부 중 적어도 하나에서 수행될 수 있다. 여기서는 설명의 편의를 위해, SWB 부호화부 및/또는 SWB 복호화부에서 도 14의 각 단계를 수행하는 것으로 설명한다.In addition, the example of FIG. 14 may be performed by the SWB encoder of FIG. 1. In addition, some or all of the steps in the example of FIG. 14 may be performed by the SWB decoder of FIG. 3. For example, the operation may be performed in at least one of a sine wave mode unit and an additional sine wave unit of the SWB encoder and / or the SWB decoder. For convenience of explanation, the steps of FIG. 14 are performed by the SWB encoder and / or the SWB decoder.
도 14를 참조하면, 우선 타겟(target) 신호가 생성된다(S1400). 이때, 타겟 신호는 양자화할 펄스들, 즉 MDCT 계수들일 수 있다. SWB 부호화부 및/또는 SWB 복호화부는 양자화할 MDCT 계수(타겟 신호)를 생성할 수 있다.Referring to FIG. 14, first, a target signal is generated (S1400). In this case, the target signal may be pulses to be quantized, that is, MDCT coefficients. The SWB encoder and / or the SWB decoder may generate MDCT coefficients (target signals) to be quantized.
생성된 타겟 신호에 트랙 쌍이 있는지가 판단된다(S1405). SWB 부호화부 및/또는 SWB 복호화부는 부호화 대상인 MDCT 계수들(타겟 신호)에 트랙 쌍이 존재하는지를 판단한다. It is determined whether there is a track pair in the generated target signal (S1405). The SWB encoder and / or the SWB decoder determines whether a track pair exists in the MDCT coefficients (target signal) to be encoded.
트랙 쌍은, 동일한 스텝(펄스 간격)을 가지며 트랙 내 펄스의 위치가 인접 트랙 내 펄스의 위치와 서로 이웃하는 트랙들로 구성될 수 있다.A track pair may consist of tracks having the same steps (pulse intervals) and whose position in the track is adjacent to each other with the position of the pulse in the adjacent track.
타겟 신호에 트랙 쌍이 있는 경우에는, 트랙 쌍을 구성하는 트랙들의 특징을 추출한다(S1410). 이때, 추출되는 특징은 트랙 쌍에 대하여 동일한 특징으로서, 트랙 쌍을 구성하는 트랙 별로 서로 다른 값, 예컨대 서로 다른 크기의 값을 가질 수 있는 특징이다. 예컨대, 추출되는 특징은 트랙의 에너지일 수 있다. If there are track pairs in the target signal, the features of the tracks constituting the track pair are extracted (S1410). In this case, the extracted feature is the same feature for the track pair, and may have different values, for example, different values for each track constituting the track pair. For example, the feature to be extracted can be the energy of the track.
트랙별로 추출된 특징의 값에 따라서, 트랙들의 중요도 순서가 결정될 수 있다(S1415). 예컨대, 트랙별로 추출되는 특징으로서 트랙별 에너지가 이용되는 경우를 고려하면, 에너지가 높은 트랙이 중요도가 높은 트랙, 즉 펄스의 검색이 먼저 수행되는 트랙으로 결정될 수 있다.According to the value of the feature extracted for each track, the order of importance of the tracks may be determined (S1415). For example, considering a case where track-specific energy is used as a feature extracted for each track, a track having a high energy may be determined as a track of high importance, that is, a track in which a search for pulse is performed first.
트랙별로 특징값이 추출되면, 트랙 쌍을 구성하는 트랙들에 대하여 특징 값에 따라서 펄스를 검색하는 순서가 결정될 수 있다. 예컨대, 특징이 무엇인지에 따라서, 특징 값의 크기가 큰 트랙이 더 중요한 트랙인 경우에는, 특징 값이 큰 트랙부터 펄스 검색이 진행될 수 있다. 혹은 특징 값의 크기가 작은 트랙이 더 중요한 트랙인 경우에는, 특징 값이 작은 작은 트랙부터 펄스 검색이 진행될 수도 있다.When the feature value is extracted for each track, an order of searching for pulses may be determined according to the feature value of the tracks constituting the track pair. For example, depending on what the feature is, when a track having a large feature value is a more important track, the pulse search may proceed from the track having a large feature value. Alternatively, in the case where a track having a small feature value is a more important track, a pulse search may be performed from a track having a small feature value.
트랙 쌍을 구성하는 트랙들에 대한 중요도 순서가 결정되면, 중요도 순서에 따라서 각 트랙별로 후보 펄스들이 검색될 수 있다. 다만, 특징 값에 따른 순서대로 처리하는 것은 검색의 경우로서, 이후의 다른 단계에서는 원래의 트랙 순서에 따라서 각각의 처리가 진행될 수도 있다. 예컨대, 양자화하여 비트스트림을 구성하는 경우에는 트랙 0을 먼저 처리하고 트랙 1을 이어서 처리할 수도 있다.When the importance order for the tracks constituting the track pair is determined, candidate pulses may be searched for each track according to the importance order. However, processing in the order according to the feature values is a case of searching, and each process may proceed according to the original track order in other steps later. For example, when the bitstream is formed by quantization, track 0 may be processed first and track 1 may be processed subsequently.
트랙들에 대한 중요도 순서에 따라서, 1 순위 중요도 트랙에서 후보 펄스들이 검색된다(S1420). SWB 부호화부 및/또는 SWB 복호화부는 1 순위 중요도 트랙을 검색하여 최대값이 큰 펄스들을 찾아낼 수 있다.According to the importance order for the tracks, candidate pulses are searched for in the first priority importance track (S1420). The SWB encoder and / or the SWB decoder may search for the first priority track to find pulses having a maximum maximum value.
1 순위 중요도 트랙에서 검색된 후보 펄스들 중에서, 1 순위 중요도 트랙에서 부호화될 펄스의 개수(L1)보다 소정 개수(l1)만큼 더 많은 펄스가 선택될 수 있다(S1425). 이때, 부호화될 펄스의 개수는, 트랙 쌍을 이루는 다른 트랙에서 선택되는 펄스(최대값 사인파)를 고려하지 않는 경우에, 1 순위 중요도 트랙에서 검색되는 펄스의 개수와 동일할 수 있다.Among candidate pulses searched in the priority ranking track, more pulses may be selected by a predetermined number l1 than the number L1 of pulses to be encoded in the priority ranking track (S1425). In this case, the number of pulses to be encoded may be the same as the number of pulses searched in the priority tracks when the pulses (maximum sine waves) selected in other tracks of the track pair are not considered.
1 순위 중요도 트랙에서 부호화할 펄스의 개수가 L1이라고 하면(L1은 0보다 큰 정수), 부호화할 펄스의 개수보다 소정 개수(l1, l1은 0보다 크거나 같은 정수) 더 많은 펄스가 1 순위 중요도 트랙의 후보 펄스로서 선택될 수 있다. 예컨대, 1 순위 중요도 트랙에서 부호화할 펄스의 개수가 2 개(다른 트랙에서 선택되는 펄스를 고려하지 않는 경우에 검색할 펄스의 개수가 2개라면)라면, 2+l1 개의 펄스를 선택할 수 있다If the number of pulses to be coded in the priority track is L1 (L1 is an integer greater than 0), then a greater number of pulses (1, l1 are greater than or equal to 0) greater than the number of pulses to be encoded. It can be selected as a candidate pulse of the track. For example, if the number of pulses to be encoded in the priority track is two (if the number of pulses to be searched is not considered when the pulses selected in other tracks are not taken into consideration), 2 + 1 pulses can be selected.
이어서, 다음으로 중요한 트랙인 2 순위 중요도 트랙에서 후보 펄스들이 검색된다(S1430). 2 순위 중요도 트랙에서 부호화할 펄스의 개수가 L2라고 하면(L2는 0보다 큰 정수), 부호화할 펄스의 개수보다 소정 개수(l2, l2는 0보다 크거나 같은 정수) 더 많은 펄스가 2 순위 중요도 트랙의 후보 펄스로서 검색될 수 있다. 예컨대, 2 순위 중요도 트랙에서 부호화할 펄스의 개수가 2 개(종래 방법에 의해 검색하는 경우, 검색할 펄스의 개수가 2개)라면, 2+l2개의 펄스를 검색할 수 있다.Subsequently, candidate pulses are searched for in the second most important track, which is the next important track (S1430). If the number of pulses to be encoded in the 2nd priority importance track is L2 (L2 is an integer greater than 0), a certain number of pulses (l2 and l2 are greater than or equal to 0) are greater than the number of pulses to be encoded. It can be retrieved as a candidate pulse of the track. For example, if the number of pulses to be coded in the second priority track is two (the number of pulses to be searched when searching by the conventional method is two), 2 + l 2 pulses can be searched.
이때, 2 순위 중요도 트랙에서 추가로 검색되는 펄스의 개수 l2는 1 순위 중요도 트랙에서 추가로 검색되는 펄스의 개수 l1과 같거나 더 클 수 있다. In this case, the number l2 of additionally searched pulses in the second priority importance track may be equal to or greater than the number l1 of additionally searched pulses in the first priority importance track.
2 순위 중요도 트랙에서 검색된 후보 펄스들의 위치와 1 순위 중요도 트랙에서 선택된 펄스들의 위치(position)가 비교된다(S1435). The positions of candidate pulses searched in the 2nd priority importance track and the position of the selected pulses in the 1st priority importance track are compared (S1435).
SWB 부호화부 및/또는 SWB 복호화부는 2 순위 중요도 트랙에서 검색된 L2+l2개의 펄스들의 위치를 1 순위 중요도 트랙에서 선택된 펄스들의 위치와 비교할 수 있다. The SWB encoder and / or the SWB decoder may compare the positions of the L2 + l2 pulses found in the second priority track with the positions of the pulses selected in the first priority track.
2 순위 중요도 트랙에서 검색된 펄스들 중에 1 순위 중요도 트랙에서 선택된 펄스와 떨어져 있는 위치의 펄스가 존재하면, 떨어져 있는 두 펄스가 각각 1 순위 중요도 트랙에서 부호화될 펄스 중 하나 및 2 순위 중요도 트랙에서 부호화될 펄스 중 하나로 선택될 수 있다(S1440). If any of the pulses retrieved in the 2nd priority track have pulses at positions away from the selected pulses in the 1st priority track, the two apart pulses will be encoded in one of the pulses to be coded in the 1st priority track and 2nd priority track respectively. One of the pulses may be selected (S1440).
2 순위 중요도 트랙에서 검색된 펄스들 중에서 1 순위 중요도 트랙에서 선택된 펄스와 떨어져 있는 위치의 펄스가 존재하지 않으면, 2 순위 중요도 트랙에서 절대값이 가장 큰 펄스(최대값 사인파)가 선택될 수 있다. If there is no pulse in the position that is separated from the pulse selected in the first priority track among the pulses searched in the second priority track, the pulse having the largest absolute value (maximum sine wave) may be selected in the second priority track.
예컨대, 트랙 쌍을 이루는 트랙들 중 1 순위 중요도 트랙에서 선택된 펄스를 Ptp1(tp1 = 1…L1+l1)이라고 하고, 2 순위 중요도 트랙에서 검색된 펄스를 Ptp2(tp2 = 1…L2+l2)이라고 하자. 1 순위 중요도 트랙에서 선택된 L1+l1 개의 펄스와 2 순위 중요도 트랙에서 검색된 L2+l2 개의 펄스로 구성할 수 있는 (L1+l1)x(L2+l2)개의 펄스 조합 (Ptp1, Ptp2)이 구성될 수 있다. For example, a pulse selected in a first priority track among track paired tracks is called P tp1 (tp1 = 1… L1 + l1), and a pulse searched in a second priority track is referred to as P tp2 (tp2 = 1… L2 + l2). Let's say. The combination of (L1 + l1) x (L2 + l2) pulses (P tp1 , P tp2 ), which can consist of L1 + l1 pulses selected in the 1st priority track and L2 + l2 pulses found in the 2nd priority track, Can be configured.
(L1+l1)x(L2+l2)개의 펄스 조합 (Ptp1, Ptp2)들 중에서, Ptp1과 Ptp2가 가장 많이 떨어져 있는 조합을 (Ptp1,away, Ptp2,away)라고 하면, Ptp1,away 을 1 순위 중요도 트랙에서 부호화될 펄스로 결정하고 Ptp2,away 를 2 순위 중요도 트랙에서 부호화될 펄스로 결정할 수 있다. Among the (L1 + l1) x (L2 + l2) pulse combinations (P tp1 , P tp2 ), the combination where P tp1 and P tp2 are separated most is (P tp1, away , P tp2, away ). P tp1, away may be determined as the pulse to be encoded in the first priority importance track and P tp2, away may be determined as the pulse to be encoded in the second priority importance track.
각 트랙에서 복수의 펄스를 선택해서 부호화하는 경우에는, 트랙 쌍을 이루는 트랙들 간에 떨어져 있는 펄스 조합을 추가로 선택할 수 있다. 트랙 쌍을 이루는 트랙들 간에 떨어져 있는 펄스 조합이 복수 존재하는 경우에는, 떨어져 있는 펄스 쌍들 중에서 두 펄스의 위치가 가장 멀리 떨어져 있는 순서대로 선택될 수 있다. 예컨대, 각 트랙별로 두 개의 펄스를 선택하여 부호화하는 경우라면, 펄스 쌍들 중에서 두 펄스 간의 거리가 가장 먼 펄스 쌍을 선택한 후, 그 다음으로 두 펄스 간의 거리가 먼 펄스 쌍을 선택해서 선택된 펄스들을 트랙별로 부호화(양자화)할 수 있다.In the case of selecting and encoding a plurality of pulses in each track, it is possible to further select a combination of pulses that are separated between the tracks forming the track pair. When there are a plurality of pulse combinations that are separated between the tracks constituting the track pair, the positions of the two pulses among the pulse pairs that are separated may be selected in the order of the furthest distance. For example, in the case of selecting and encoding two pulses for each track, select a pulse pair with the longest distance between two pulses among the pulse pairs, and then select a pulse pair with a longest distance between the two pulses to track the selected pulses. Can be encoded (quantized) separately.
트랙 쌍을 이루는 트랙들 간에 떨어져 있는 펄스 조합이 존재하지 않는 경우에는, 2 순위 중요도 트랙에서도 1 순위 중요도 트랙에서 펄스를 선택한 방법과 유사하게 절대값이 큰 순서대로 L2개의 펄스(최대값 사인파)를 선택할 수 있다.If no pulse combinations exist between track paired tracks, L2 pulses (maximum sine waves) in the order of magnitude are similar to the method of selecting pulses in the 1st priority track, even in the 2nd priority track. You can choose.
한편, S1425에서는 1 순위 중요도 트랙에서 부호화할 개수보다 소정 개수 더 많은 펄스들을 선택하는 것으로 설명하였으나, 본 발명은 이에 한정되지 않는다. 예컨대, 트랙 쌍을 이루는 트랙들 중 1 순위 중요도 트랙에서는 부호화 대상 펄스와 동일한 개수의 펄스(부호화 대상 펄스와 동일한 펄스)만을 검색/선택할 수도 있다. 따라서, 본 실시예의 경우에는 트랙 쌍을 이루는 트랙들 중에서 1 순위 중요도 트랙의 경우에는 L1 개의 펄스를 검색해서 선택할 수 있다.Meanwhile, in S1425, it is described that a predetermined number more pulses are selected than the number to be coded in the priority track. However, the present invention is not limited thereto. For example, in the priority rank track of the track pairs, only the same number of pulses as the encoding target pulses (same pulses as the encoding target pulses) may be searched / selected. Therefore, in the case of the present embodiment, L1 pulses can be searched and selected in the case of the first priority track among the track pairing tracks.
이 경우, 트랙 쌍을 이루는 트랙들 중 1 순위 중요도 트랙에서 검색된 펄스를 Ptp1(tp1 = 1…L1)이라고 하고, 2 순위 중요도 트랙에서 검색된 펄스를 Ptp2(tp2 = 1…L2+l2)이라고 하면, 1 순위 중요도 트랙에서 선택된 L1 개의 펄스와 2 순위 중요도 트랙에서 검색한 L2+l2 개의 펄스로 구성할 수 있는 (L1)x(L2+l2) 개의 펄스 조합 (Ptp1, Ptp2)이 구성될 수 있다. Ptp1의 위치와 Ptp2의 위치가 가장 멀리 떨어져 있는 조합을 (Ptp1,away, Ptp2,away)라고 하면, Ptp1,away 을 1 순위 중요도 트랙에서 부호화될 펄스로 결정하고 Ptp2,away 를 2 순위 중요도 트랙에서 부호화될 펄스로 결정할 수도 있다. 또한, 트랙별로 복수(예컨대 2 개)의 펄스가 선택되어야 한다면, 두 펄스의 위치가 가장 멀리 떨어져 있는 펄스 쌍과 두 번째로 멀리 떨어져 있는 펄스 쌍을 선택할 수도 있다.In this case, the pulse retrieved from the first priority track among the track pairing tracks is called P tp1 (tp1 = 1… L1), and the pulse retrieved from the second priority track is called P tp2 (tp2 = 1… L2 + l2). Is composed of (L1) x (L2 + l2) pulse combinations (P tp1 , P tp2 ) that can be composed of L1 pulses selected from the 1st priority track and L2 + l2 pulses retrieved from the 2nd priority track. Can be. If the position where P tp1 and P tp2 are farthest is the combination (P tp1, away , P tp2, away ), then P tp1, away is determined as the pulse to be encoded in the priority track and P tp2, away May be determined as the pulse to be encoded in the second priority importance track. Also, if a plurality of (e.g., two) pulses are to be selected for each track, it is also possible to select the pulse pair at which the two pulses are farthest apart and the second pair of pulses farthest apart.
한편, 타겟 신호에 트랙 쌍이 존재하지 않는 경우에는, 각 트랙에서 검색하는 최대값 사인파(펄스) 개수만큼 최대값 사인파를 선택할 수있다(S1445). SWB 부호화부 및/또는 SWB 복호화부는 다른 트랙에서 검색된 펄스파를 고려하지 않고, 각 트랙별로 부호화 대상이 되는 펄스의 개수만큼 최대값 사인파(펄스)를 검색해서 부호화/양자화 대상 펄스로서 선택할 수 있다.On the other hand, when no track pair exists in the target signal, the maximum sine wave can be selected by the maximum number of sine waves (pulses) searched in each track (S1445). The SWB encoder and / or the SWB decoder may search for the maximum sine wave (pulse) by the number of pulses to be encoded for each track and select it as an encoding / quantization target pulse without considering the pulse waves searched for in other tracks.
선택된 펄스(최대값 사인파)들에 대하여, 위치/크기/부호를 양자화 한다(S1455).The position / size / sign is quantized with respect to the selected pulses (maximum sine wave) (S1455).
트랙 내에서, 선택된 펄스의 부호(sign)를 지시하는 정보를 양자화 하기 위해 펄스의 위치(position)가 변경될 수 있다. 위치 변경은 트랙 당 한 개의 부호(sign) 비트만을 전송하기 위한 것으로서, 트랙 내에서 선택된 두 펄스의 부호가 같으면 절대값이 큰 펄스를 앞쪽 위치에 두고, 두 펄스의 부호가 다르면 절대값이 작은 펄스를 앞쪽 위치에 두는 방식으로 수행된다. Within the track, the position of the pulse can be changed to quantize information indicating the sign of the selected pulse. The position change is for transmitting only one sign bit per track. If the two selected pulses in the track have the same sign, the pulse with the larger absolute value is placed in the front position. If the two pulses are different, the pulse with the small absolute value is different. This is done by placing in the front position.
따라서, 펄스의 위치는 동일한 트랙 내에서 선택된 두 펄스의 부호가 동일한지 상이한지에 따라서 변경될 수도 있고 변경되지 않을 수도 있다. Thus, the position of the pulse may or may not change depending on whether the signs of the two selected pulses within the same track are the same or different.
선택된 펄스의 위치가 결정되면, 펄스의 위치, 크기 및/또는 부호가 양자화 된다. 펄스의 부호와 크기를 지시하는 정보를 양자화하는 단계는, 펄스의 부호를 양자화 하는 단계, 펄스 크기(amplitude)를 양자화 하기 위한 크기 그룹핑 단계, 펄스의 크기를 양자화하는 단계를 포함할 수 있다. 크기를 지시하는 정보의 양자화는 멀티 디멘젼 VQ(multi-dimensional Vector quantization)에 기반하여 수행될 수 있으며, 크기의 그룹핑은 멀티 디멘젼 VQ를 위한 전제 작업이라고도 할 수 있다.Once the position of the selected pulse is determined, the position, magnitude and / or sign of the pulse is quantized. Quantizing the information indicating the sign and magnitude of the pulse may include quantizing the sign of the pulse, magnitude grouping to quantize the pulse amplitude, and quantizing the magnitude of the pulse. Quantization of the size indicating information may be performed based on multi-dimensional vector quantization (VQ), and grouping of sizes may be referred to as a prerequisite for multi-dimensional VQ.
한편, S1425 단계에서는 1 순위 중요도 트랙에서 부호화 대상 펄스의 개수보다 소정 개수 더 많은 펄스를 후보 펄스로서 검색하는 것을 설명하였으나, 본 발명은 이에 한정되지 않는다. 예컨대, 1 순위 중요도 트랙에서는 부호화 대상 펄스의 개수보다 더 많은 개수의 펄스를 후보 펄스로서 검색하지 않고, 부호화의 대상(양자화의 대상)이 되는 펄스만을 검색할 수도 있다. 즉, 1 순위 중요도 트랙에서는 하순위 중요도 트랙과 달리, M1 개의 펄스만을 검색할 수도 있다. 이 경우, S1425 단계는 수행하지 않을 수도 있다.Meanwhile, in operation S1425, a search for a predetermined number more pulses as the candidate pulses than the number of encoding target pulses in the first priority track is described, but the present invention is not limited thereto. For example, in the priority track, the number of pulses larger than the number of encoding target pulses may not be searched as candidate pulses, but only the pulses that are encoding targets (quantization targets) may be searched. That is, unlike the lower priority track, only the M1 pulses may be searched for in the priority track. In this case, step S1425 may not be performed.
또한, 도 14의 예에서는 트랙 쌍을 구성하는 트랙별로 후보 펄스의 검색 및 선택을 수행하는 것을 설명하였으나, 본 발명은 이에 한정되지 않는다. 예를 들어, 트랙 쌍을 구성하는 모든 트랙들에 대하여 부호화 대상 펄스의 개수보다 소정 개수 이상의 후보 펄스를 검색한 후, 각각의 트랙별로 후보 펄스들 중에서 상위 중요도 트랙에서 선택된 펄스들에 인접한 펄스를 부호화 대상 펄스로 선택해 나갈 수 있다. 이때, 트랙 쌍을 구성하는 모드 트랙들에 대하여 후보 펄스를 검색할 때, 최상위 중요도 트랙에서는 부호화 대상 펄스의 개수와 동일한 후보 펄스를 선택(예컨대, 후보 펄스의 검색이 아닌 부호화 대상 펄스의 검색)할 수도 있다. In the example of FIG. 14, the searching and selection of candidate pulses are performed for each track constituting the track pair, but the present invention is not limited thereto. For example, after searching a predetermined number of candidate pulses or more than the number of encoding target pulses for all tracks constituting the track pair, encoding the pulses adjacent to the pulses selected from the higher priority tracks among the candidate pulses for each track. It can be selected by the target pulse. In this case, when searching for candidate pulses for the mode tracks constituting the track pair, the most significant track selects candidate pulses equal to the number of encoding target pulses (for example, searching for encoding target pulses rather than searching for candidate pulses). It may be.
도 14의 예에서는 트랙의 중요도를 판단하기 위해, 트랙의 에너지를 기반으로 상위 중요도 트랙과 하위 중요도 트랙으로 구분하였으나, 본 발명은 이에 한정되지 않는다. 먼저 검색할 트랙을 결정하기 위한 기준은 에너지 이외에도 다른 기준을 적용할 수 있다. 이 경우에도, 트랙 쌍을 이루는 트랙들 간에는 도 14에서 설명한 바와 동일한 방법으로 펄스들을 검색하여 부호화 대상 펄스를 결정하고, 펄스의 정보를 양자화 할 수 있다.In the example of FIG. 14, in order to determine the importance of a track, the track is classified into a higher importance track and a lower importance track based on the energy of the track. However, the present invention is not limited thereto. As a criterion for determining a track to be searched first, other criteria may be applied in addition to energy. Even in this case, the tracks of the track pairs may be searched for pulses in the same manner as described with reference to FIG. 14 to determine an encoding target pulse, and quantize the information of the pulses.
한편, 도 14의 단계들은 타겟 신호의 모든 트랙에서 부호화 대상 펄스가 결정될 수 있도록 모든 트랙들에 대하여 순서대로 적용될 수 있다. Meanwhile, the steps of FIG. 14 may be applied in order to all tracks so that an encoding target pulse may be determined in all tracks of a target signal.

도 15의 예에서는, 두 개 이상의 트랙이 트랙 쌍을 구성하며, 트랙 쌍을 이루는 각 트랙들이 인접하여 있다고 가정한다. In the example of FIG. 15, it is assumed that two or more tracks constitute a track pair, and that each track constituting the track pair is adjacent.
또한, 도 15의 예는 도 1의 SWB 부호화부에서 수행될 수 있다. 또한, 도 15의 예에서 일부 또는 모든 단계는 도 3의 SWB 복호화부에서 수행될 수 있다. 예컨대, SWB 부호화부 및/또는 SWB 복호화부의 사인파 모드부, 추가 사인파부 중 적어도 하나에서 수행될 수 있다. 여기서는 설명의 편의를 위해, SWB 부호화부 및/또는 SWB 복호화부에서 도 15의 각 단계를 수행하는 것으로 설명한다.In addition, the example of FIG. 15 may be performed by the SWB encoder of FIG. 1. In addition, some or all of the steps in the example of FIG. 15 may be performed by the SWB decoder of FIG. 3. For example, the operation may be performed in at least one of a sine wave mode unit and an additional sine wave unit of the SWB encoder and / or the SWB decoder. For convenience of explanation, the steps of FIG. 15 will be described in the SWB encoder and / or the SWB decoder.
도 15를 참조하면, 우선 타겟(target) 신호가 생성된다(S1500). 이때, 타겟 신호는 양자화할 펄스들, 즉 MDCT 계수들일 수 있다. SWB 부호화부 및/또는 SWB 복호화부는 양자화할 MDCT 계수(타겟 신호)를 생성할 수 있다.Referring to FIG. 15, a target signal is first generated (S1500). In this case, the target signal may be pulses to be quantized, that is, MDCT coefficients. The SWB encoder and / or the SWB decoder may generate MDCT coefficients (target signals) to be quantized.
생성된 타겟 신호에 트랙 쌍이 있는지가 판단된다(S1505). SWB 부호화부 및/또는 SWB 복호화부는 부호화 대상인 MDCT 계수들(타겟 신호)에 트랙 쌍이 존재하는지를 판단한다. It is determined whether there is a track pair in the generated target signal (S1505). The SWB encoder and / or the SWB decoder determines whether a track pair exists in the MDCT coefficients (target signal) to be encoded.
트랙 쌍은, 동일한 스텝(펄스 간격)을 가지며 트랙 내 펄스의 위치가 인접 트랙 내 펄스의 위치와 서로 이웃하는 트랙들로 구성될 수 있다.A track pair may consist of tracks having the same steps (pulse intervals) and whose position in the track is adjacent to each other with the position of the pulse in the adjacent track.
타겟 신호에 트랙 쌍이 있는 경우에는, 트랙 쌍을 구성하는 트랙들의 특징을 추출한다(S1510). 이때, 추출되는 특징은 트랙 쌍에 대하여 동일한 특징으로서, 트랙 쌍을 구성하는 트랙 별로 서로 다른 값, 예컨대 서로 다른 크기의 값을 가질 수 있는 특징이다. 예컨대, 추출되는 특징은 트랙의 에너지 일 수 있다. If there are track pairs in the target signal, the features of the tracks constituting the track pair are extracted (S1510). In this case, the extracted feature is the same feature for the track pair, and may have different values, for example, different values for each track constituting the track pair. For example, the feature to be extracted may be the energy of the track.
트랙별로 추출된 특징의 값에 따라서, 트랙들의 중요도 순서가 결정될 수 있다(S1515). 예컨대, 트랙별로 추출되는 특징으로서 트랙별 에너지가 이용되는 경우를 고려하면, 에너지가 높은 트랙이 중요도가 높은 트랙, 즉 펄스의 검색이 먼저 수행되는 트랙으로 결정될 수 있다.According to the value of the feature extracted for each track, the order of importance of the tracks may be determined (S1515). For example, considering a case where track-specific energy is used as a feature extracted for each track, a track having a high energy may be determined as a track of high importance, that is, a track in which a search for pulse is performed first.
트랙별로 특징값이 추출되면, 트랙 쌍을 구성하는 트랙들에 대하여 특징 값에 따라서 펄스를 검색하는 순서가 결정될 수 있다. 예컨대, 특징이 무엇인지에 따라서, 특징 값의 크기가 큰 트랙이 더 중요한 트랙인 경우에는, 특징 값이 큰 트랙부터 펄스 검색이 진행될 수 있다. 혹은 특징 값의 크기가 작은 트랙이 더 중요한 트랙인 경우에는, 특징 값이 작은 작은 트랙부터 펄스 검색이 진행될 수도 있다.When the feature value is extracted for each track, an order of searching for pulses may be determined according to the feature value of the tracks constituting the track pair. For example, depending on what the feature is, when a track having a large feature value is a more important track, the pulse search may proceed from the track having a large feature value. Alternatively, in the case where a track having a small feature value is a more important track, a pulse search may be performed from a track having a small feature value.
트랙 쌍을 구성하는 트랙들에 대한 중요도 순서가 결정되면, 중요도 순서에 따라서 각 트랙별로 후보 펄스들이 검색될 수 있다. 다만, 특징 값에 따른 순서대로 처리하는 것은 검색의 경우로서, 이후의 다른 단계에서는 원래의 트랙 순서에 따라서 각각의 처리가 진행될 수도 있다. 예컨대, 양자화하여 비트스트림을 구성하는 경우에는 트랙 0을 먼저 처리하고 트랙 1을 이어서 처리할 수도 있다.When the importance order for the tracks constituting the track pair is determined, candidate pulses may be searched for each track according to the importance order. However, processing in the order according to the feature values is a case of searching, and each process may proceed according to the original track order in other steps later. For example, when the bitstream is formed by quantization, track 0 may be processed first and track 1 may be processed subsequently.
트랙들에 대한 중요도 순서에 따라서, 1 순위 중요도 트랙에서 후보 펄스들이 검색된다(S1520). 1 순위 중요도 트랙에서 부호화할 펄스의 개수가 P1이라고 하면(P1은 0보다 큰 정수), 부호화할 펄스의 개수보다 소정 개수(p1, p1은 0보다 크거나 같은 정수) 더 많은 펄스가 1 순위 중요도 트랙의 후보 펄스로서 검색될 수 있다. 예컨대, 1 순위 중요도 트랙에서 부호화할 펄스의 개수가 2 개(다른 트랙에서 선택되는 펄스를 고려하지 않는 경우에 검색할 펄스의 개수가 2개라면)라면, 2+p1 개의 펄스를 검색할 수 있다.According to the importance order for the tracks, candidate pulses are searched for in the first priority importance track (S1520). If the number of pulses to be coded in the priority track is P1 (P1 is an integer greater than zero), then more pulses are given the number of pulses (p1, p1 is an integer greater than or equal to 0) than the number of pulses to encode. It can be retrieved as a candidate pulse of the track. For example, if the number of pulses to be coded in the priority track is two (if the number of pulses to be searched is not considered when a pulse selected from another track is not taken into consideration), 2 + p1 pulses may be searched. .
1 순위 중요도 트랙에서 검색된 후보 펄스들 중에서, 1 순위 중요도 트랙에서 부호화될 펄스의 개수(P1)만큼의 펄스가 선택될 수 있다(S1525). 이때, 부호화될 펄스의 개수는, 트랙 쌍을 이루는 다른 트랙에서 선택되는 펄스(최대값 사인파)를 고려하지 않는 경우에, 1 순위 중요도 트랙에서 검색되는 펄스의 개수와 동일할 수 있다.Among the candidate pulses searched in the priority track, the number of pulses corresponding to the number P1 of the pulses to be coded in the priority track may be selected (S1525). In this case, the number of pulses to be encoded may be the same as the number of pulses searched in the priority tracks when the pulses (maximum sine waves) selected in other tracks of the track pair are not considered.
이어서, 다음으로 중요한 트랙인 2 순위 중요도 트랙에서 후보 펄스들이 검색된다(S1530). 2 순위 중요도 트랙에서 부호화할 펄스의 개수가 P2라고 하면(P2는 0보다 큰 정수), 부호화할 펄스의 개수보다 소정 개수(p2, p2는 0보다 크거나 같은 정수) 더 많은 펄스가 2 순위 중요도 트랙의 후보 펄스로서 검색될 수 있다. 예컨대, 2 순위 중요도 트랙에서 부호화할 펄스의 개수가 2 개(종래 방법에 의해 검색하는 경우, 검색할 펄스의 개수가 2개)라면, 2+p2개의 펄스를 검색할 수 있다.Subsequently, candidate pulses are searched for in the second most important track, which is the next most important track (S1530). If the number of pulses to be coded in the second-order importance track is P2 (P2 is an integer greater than zero), the number of pulses (p2, p2 is an integer greater than or equal to zero) is greater than the number of pulses to encode. It can be retrieved as a candidate pulse of the track. For example, if the number of pulses to be encoded in the second priority importance track is two (the number of pulses to be searched is two when searching by the conventional method), 2 + p 2 pulses can be searched.
이때, 2 순위 중요도 트랙에서 추가로 검색되는 펄스의 개수 p2는 1 순위 중요도 트랙에서 추가로 검색되는 펄스의 개수 p1과 같거나 더 클 수 있다. In this case, the number p2 of additionally searched pulses in the second priority track may be equal to or greater than the number p1 of additionally searched pulses in the first priority track.
2 순위 중요도 트랙에서 검색된 후보 펄스들의 위치와 1 순위 중요도 트랙에서 선택된 펄스들의 위치(position)가 비교된다(S1535). The positions of the candidate pulses searched in the 2nd priority importance track and the position of the selected pulses in the 1st priority importance track are compared (S1535).
SWB 부호화부 및/또는 SWB 복호화부는 2 순위 중요도 트랙에서 검색된 P2+p2개의 펄스들의 위치를 1 순위 중요도 트랙에서 선택된 펄스들의 위치와 비교할 수 있다. The SWB encoder and / or the SWB decoder may compare the positions of the P2 + p2 pulses found in the second priority track with the positions of the pulses selected in the first priority track.
2 순위 중요도 트랙에서 검색된 펄스들 중에 1 순위 중요도 트랙에서 선택된 펄스와 떨어져 있는 위치의 펄스가 존재하면, 떨어져 있는 두 펄스가 각각 1 순위 중요도 트랙에서 부호화될 펄스 중 하나 및 2 순위 중요도 트랙에서 부호화될 펄스 중 하나로 선택될 수 있다(S1540). If any of the pulses retrieved in the 2nd priority track have pulses at positions away from the selected pulses in the 1st priority track, the two apart pulses will be encoded in one of the pulses to be coded in the 1st priority track and 2nd priority track respectively. One of the pulses may be selected (S1540).
2 순위 중요도 트랙에서 검색된 펄스들 중에서 1 순위 중요도 트랙에서 선택된 펄스와 떨어져 있는 위치의 펄스가 존재하지 않으면, 2 순위 중요도 트랙에서 절대값이 가장 큰 펄스(최대값을 가지는 사인파)가 선택될 수 있다. If there are no pulses in the position that are separated from the pulse selected in the first priority importance track among the pulses searched in the second priority importance track, the pulse having the largest absolute value (sine wave having the maximum value) may be selected. .
예컨대, 트랙 쌍을 이루는 트랙들 중 1 순위 중요도 트랙에서 선택된 펄스를 Ptp1(tp1 = 1…P1)이라고 하고, 2 순위 중요도 트랙에서 검색된 펄스를 Ptp2(tp2 = 1…P2+p2)이라고 하자. 1 순위 중요도 트랙에서 선택된 P1 개의 펄스와 2 순위 중요도 트랙에서 검색된 P2+p2 개의 펄스로 구성할 수 있는 P1x(P2+p2)개의 펄스 조합 (Ptp1, Ptp2)이 구성될 수 있다. For example, suppose that the pulse selected in the first priority track among the track pairing tracks is P tp1 (tp1 = 1… P1), and the pulse searched in the second priority track is P tp2 (tp2 = 1… P2 + p2). . P1x (P2 + p2) pulse combinations P tp1 and P tp2 may be configured, which may consist of P1 pulses selected in the priority track and P2 + p2 pulses found in the priority track.
P1x(P2+p2)개의 펄스 조합 (Ptp1, Ptp2)들 중에서, Ptp1과 Ptp2가 가장 많이 떨어져 있는 조합을 (Ptp1,away, Ptp2,away)라고 하면, Ptp1,away 을 1 순위 중요도 트랙에서 부호화될 펄스로 결정하고 Ptp2,away 를 2 순위 중요도 트랙에서 부호화될 펄스로 결정할 수 있다. Speaking of P1x (P2 + p2) of the pulse combinations (P tp1, P tp2) of from, P tp1 and P tp2 is the most combination detached (P tp1, away, P tp2 , away), the P tp1, away It may be determined as a pulse to be encoded in the priority track and P tp2, away may be determined as a pulse to be encoded in the priority track.
각 트랙에서 복수의 펄스를 선택해서 부호화하는 경우에는, 트랙 쌍을 이루는 트랙들 간에 떨어져 있는 펄스 조합을 추가로 선택할 수 있다. 트랙 쌍을 이루는 트랙들 간에 떨어져 있는 펄스 조합이 복수 존재하는 경우에는, 떨어져 있는 펄스 쌍들 중에서 두 펄스의 위치가 멀리 떨어져 있는 순서대로 선택될 수 있다. 예컨대, 각 트랙별로 두 개의 펄스를 선택하여 부호화하는 경우라면, 펄스 쌍들 중에서 두 펄스 간의 거리가 가장 먼 펄스 쌍을 선택한 후, 그 다음으로 두 펄스 간의 거리가 먼 펄스 쌍을 선택해서 선택된 펄스들을 트랙별로 부호화(양자화)할 수 있다.In the case of selecting and encoding a plurality of pulses in each track, it is possible to further select a combination of pulses that are separated between the tracks forming the track pair. When there are a plurality of pulse combinations that are separated between tracks constituting the track pair, the positions of the two pulses among the pulse pairs that are separated may be selected in the order of the distance. For example, in the case of selecting and encoding two pulses for each track, select a pulse pair with the longest distance between two pulses among the pulse pairs, and then select a pulse pair with a longest distance between the two pulses to track the selected pulses. Can be encoded (quantized) separately.
트랙 쌍을 이루는 트랙들 간에 떨어져 있는 펄스 조합이 존재하지 않는 경우에는, 2 순위 중요도 트랙에서도 1 순위 중요도 트랙에서 펄스를 선택한 방법과 유사하게 절대값이 큰 순서대로 P2개의 펄스(최대값 사인파)를 선택할 수 있다.If no pulse combinations exist between the track pairing tracks, P2 pulses (maximum sine waves) in the order of absolute value are similar to the method of selecting pulses in the 1st priority track in the 2nd priority track. You can choose.
한편, S1525에서는 1 순위 중요도 트랙에서 부호화할 개수만큼의 펄스만을 선택하는 것으로 설명하였으나, 본 발명은 이에 한정되지 않는다. 예컨대, S1525 단계를 수행하지 않고, 트랙 쌍을 이루는 트랙들 중 1 순위 중요도 트랙에서 검색된 P1+p1개의 펄스와 2 순위 중요도 트랙에서 검색된 P2+p2 개의 트랙을 모두 고려할 수도 있다.In S1525, only the number of pulses to be coded in the first priority track is selected. However, the present invention is not limited thereto. For example, without performing step S1525, it is also possible to consider both P1 + p1 pulses found in the first priority track and P2 + p2 tracks found in the second priority track among the track pairing tracks.
구체적으로, 트랙 쌍을 이루는 트랙들 중 1 순위 중요도 트랙에서 검색된 펄스를 Ptp1(tp1 = 1…P1+p1)이라고 하고, 2 순위 중요도 트랙에서 검색된 펄스를 Ptp2(tp2 = 1…P2+p2)이라고 하자. 1 순위 중요도 트랙에서 검색된 P1+p1 개의 펄스와 2 순위 중요도 트랙에서 검색한 P2+p2 개의 펄스로 구성할 수 있는 (P1+p1)x(P2+p2) 개의 펄스 조합 (Ptp1, Ptp2)이 구성될 수 있다. Ptp1의 위치와 Ptp2의 위치가 가장 멀리 떨어져 있는 조합을 (Ptp1,away, Ptp2,away)라고 하면, Ptp1,away 을 1 순위 중요도 트랙에서 부호화될 펄스로 결정하고 Ptp2,away 를 2 순위 중요도 트랙에서 부호화될 펄스로 결정할 수도 있다. 또한, 트랙별로 복수(예컨대 2 개)의 펄스가 선택되어야 한다면, 두 펄스의 위치가 가장 멀리 떨어져 있는 펄스 쌍과 두 번째로 멀리 떨어져 있는 펄스 쌍을 선택할 수도 있다.Specifically, the pulses retrieved from the rank 1 priority track among the track pairing tracks are called P tp1 (tp1 = 1… P1 + p1), and the pulses retrieved from the rank 2 priority track are referred to as P tp2 (tp2 = 1… P2 + p2). Let's say A combination of (P1 + p1) x (P2 + p2) pulses (P tp1 , P tp2 ) that can consist of P1 + p1 pulses retrieved from the priority track and P2 + p2 pulses retrieved from the priority track. This can be configured. If the position where P tp1 and P tp2 are farthest is the combination (P tp1, away , P tp2, away ), then P tp1, away is determined as the pulse to be encoded in the priority track and P tp2, away May be determined as the pulse to be encoded in the second priority importance track. Also, if a plurality of (e.g., two) pulses are to be selected for each track, it is also possible to select the pulse pair at which the two pulses are farthest apart and the second pair of pulses farthest apart.
3 순위 중요도 트랙부터 그 이하의 중요도 트랙들도 동일한 방법으로 후보 펄스를 검색하고 후보 펄스들 중에서 부호화할 펄스를 선택할 수 있다. The priority tracks from the 3rd priority track to the following priority tracks may search for candidate pulses and select a pulse to be encoded from the candidate pulses.
중요도에 따라서 순차적으로 트랙별 후보 펄스를 검색하고, 부호화 대상 펄스를 선택해 나가는 과정의 마지막에 최하순위 중요도 트랙에서 후보 펄스들이 검색된다(S1545). 트랙 쌍이 k 개의 트랙으로 구성되었다고 가정하면, 최하순위 중요도 트랙(k 순위 중요도 트랙)에서 부호화할 펄스의 개수 Pk(Pk는 0보다 큰 정수)에 대하여, 부호화할 펄스의 개수보다 소정 개수(pk) 더 많은 펄스가 최하순위 중요도 트랙의 후보 펄스로서 검색될 수 있다. 이때, 최하순위 중요도 트랙에서 추가로 검색되는 펄스의 개수 pk는 이전 순위 중요도 트랙(k-1 순위 중요도 트랙)에서 추가로 검색되는 펄스의 개수 pk-1과 같거나 더 클 수 있다.The candidate pulses are sequentially searched for tracks according to the importance, and the candidate pulses are searched for in the lowest priority track at the end of the process of selecting an encoding target pulse (S1545). Assuming that a pair of tracks consists of k tracks, for a number of pulses Pk (Pk is an integer greater than 0) to be encoded in the lowest priority track (k rank importance track), the predetermined number (pk) is greater than the number of pulses to be encoded. More pulses can be retrieved as candidate pulses of the lowest priority track. In this case, the number pk of pulses additionally searched in the lowest priority track may be equal to or greater than the number of pulses pk-1 additionally searched in the previous priority track (k-1 priority track).
최하순위 중요도 트랙에서 검색된 후보 펄스들의 위치와 상위 순위 중요도 트랙에서 선택된 펄스들의 위치(position)가 비교된다(S1550). The positions of candidate pulses searched in the lowest priority track and the positions of the selected pulses in the high rank priority track are compared (S1550).
SWB 부호화부 및/또는 SWB 복호화부는 최하순위 중요도 트랙에서 검색된 Pk+pk개의 펄스들의 위치를 이전 순위 중요도 트랙에서 선택된 펄스들의 위치와 비교할 수 있다. The SWB encoder and / or the SWB decoder may compare the positions of the Pk + pk pulses found in the lowest priority track with the positions of the pulses selected in the previous priority track.
최하순위 중요도 트랙에서 검색된 펄스들 중에 그 이전 순위 중요도 트랙에서 선택된 펄스와 떨어져 있는 위치의 펄스가 존재하면, 떨어져 있는 두 펄스가 각각 최하순위 중요도 트랙(k 순위 중요도 트랙)에서 부호화될 펄스 중 하나 및 이전 순위 중요도 트랙(k-1 순위 중요도 트랙)에서 부호화될 펄스 중 하나로 선택될 수 있다(S1355). If among the pulses retrieved in the lowest priority track, there is a pulse at a position apart from the pulse selected in the previous priority importance track, the two apart pulses are each one of the pulses to be encoded in the lowest priority track (k rank importance track) and One of the pulses to be encoded in the previous rank importance track (k-1 rank importance track) may be selected (S1355).
예컨대, 트랙 쌍을 이루는 트랙들 중 이전 순위 중요도 트랙에서 선택된 펄스를 Ptpk-1(tpk-1 = 1…Pk-1)이라고 하고, 최하순위 중요도 트랙에서 검색된 펄스를 Ptpk(tpk = 1…Pk+pk)이라고 하자. 이전 순위 중요도 트랙에서 선택된 Pk-1 개의 펄스와 최하 순위 중요도 트랙에서 검색된 Pk+pk 개의 펄스로 구성할 수 있는 Pk-1 x (Pk+pk)개의 펄스 조합 (Ptpk-1, Ptpk)이 구성될 수 있다. For example, among the track paired tracks, the pulse selected in the previous rank importance track is referred to as P tpk-1 (tpk-1 = 1… Pk-1), and the pulse searched in the least significant priority track is referred to as P tpk (tpk = 1…. Pk + pk). Pk-1 x (Pk + pk) pulse combinations (P tpk-1 , P tpk ) that can be composed of Pk-1 pulses selected in the previous priority importance track and Pk + pk pulses found in the lowest priority track. Can be configured.
Ptpk-1과 Ptpk가 가장 멀리 떨어져 있는 위치의 펄스 조합을 (Ptpk-1,away, Ptpk,away)라고 하면, Ptpk-1,away 을 이전 순위 중요도 트랙에서 부호화될 펄스로 결정하고 Ptpk,away를 최하순위 중요도 트랙에서 부호화될 펄스로 결정할 수 있다. If the combination of pulses where P tpk-1 and P tpk are furthest from each other is (P tpk-1, away , P tpk, away ), then P tpk-1, away is determined as the pulse to be encoded in the previous rank importance track. And P tpk, away can be determined as the pulse to be coded in the lowest priority track.
각 트랙에서 복수의 펄스를 선택해서 부호화하는 경우에는, 트랙 쌍을 이루는 트랙들 간에 떨어져 있는 펄스들의 조합을 추가로 선택할 수 있다. 예컨대, 트랙 쌍을 이루는 트랙들 간에 떨어져서 위치하는 펄스들의 조합이 복수 존재하는 경우에는, 두 트랙의 펄스 간 거리가 가장 먼 펄스 조합과 그 다음으로 펄스 간 거리가 먼 조합을 순서대로 선택될 수 있다.In the case where a plurality of pulses are selected and encoded in each track, a combination of pulses separated between tracks constituting a track pair may be further selected. For example, when there are a plurality of combinations of pulses located apart between tracks that make up a pair of tracks, a combination of pulses having the longest distance between the pulses of the two tracks and then a combination having the greatest distance between the pulses may be sequentially selected. .
트랙 쌍을 이루는 트랙들 간에 인접한 펄스 조합이 존재하지 않는 경우에는, 최하순위 중요도 트랙에서 절대값이 큰 순서대로 Pk개의 펄스(최대값 사인파)를 선택할 수 있다.If there are no adjacent pulse combinations between the track pairing tracks, then Pk pulses (maximum sine waves) can be selected in the order of largest absolute value in the least significant importance track.
한편, 타겟 신호에 트랙 쌍이 존재하지 않는 경우에는, 각 트랙에서 검색하는 최대값 사인파(펄스) 개수만큼 최대값 사인파를 선택할 수있다(S1560). SWB 부호화부 및/또는 SWB 복호화부는 다른 트랙에서 검색된 펄스파를 고려하지 않고, 각 트랙별로 부호화 대상이 되는 펄스의 개수만큼 최대값 사인파(펄스)를 검색해서 부호화/양자화 대상 펄스로서 선택할 수 있다.On the other hand, when no track pair exists in the target signal, the maximum sine wave can be selected by the maximum number of sine waves (pulses) searched in each track (S1560). The SWB encoder and / or the SWB decoder may search for the maximum sine wave (pulse) by the number of pulses to be encoded for each track and select it as an encoding / quantization target pulse without considering the pulse waves searched for in other tracks.
선택된 펄스(최대값 사인파)들에 대하여, 위치/크기/부호를 양자화 한다(S1565).The position / size / sign is quantized with respect to the selected pulses (maximum sine wave) (S1565).
트랙 내에서, 선택된 펄스의 부호(sign)를 지시하는 정보를 양자화 하기 위해 펄스의 위치(position)가 변경될 수 있다. 위치 변경은 트랙 당 한 개의 부호(sign) 비트만을 전송하기 위한 것으로서, 트랙 내에서 선택된 두 펄스의 부호가 같으면 절대값이 큰 펄스를 앞쪽 위치에 두고, 두 펄스의 부호가 다르면 절대값이 작은 펄스를 앞쪽 위치에 두는 방식으로 수행된다. Within the track, the position of the pulse can be changed to quantize information indicating the sign of the selected pulse. The position change is for transmitting only one sign bit per track. If the two selected pulses in the track have the same sign, the pulse with the larger absolute value is placed in the front position. If the two pulses are different, the pulse with the small absolute value is different. This is done by placing in the front position.
따라서, 펄스의 위치는 동일한 트랙 내에서 선택된 두 펄스의 부호가 동일한지 상이한지에 따라서 변경될 수도 있고 변경되지 않을 수도 있다. Thus, the position of the pulse may or may not change depending on whether the signs of the two selected pulses within the same track are the same or different.
선택된 펄스의 위치가 결정되면, 펄스의 위치, 크기 및/또는 부호가 양자화 된다 Once the position of the selected pulse is determined, the position, magnitude and / or sign of the pulse is quantized
한편, S1520 단계에서는 1 순위 중요도 트랙에서 부호화 대상 펄스의 개수보다 소정 개수 더 많은 펄스를 후보 펄스로서 검색하는 것을 설명하였으나, 본 발명은 이에 한정되지 않는다. 예컨대, 1 순위 중요도 트랙에서는 부호화 대상 펄스의 개수보다 더 많은 개수의 펄스를 후보 펄스로서 검색하지 않고, 부호화의 대상(양자화의 대상)이 되는 펄스만을 검색할 수도 있다. 즉, 1 순위 중요도 트랙에서는 하순위 중요도 트랙과 달리, P1 개의 펄스만을 검색할 수도 있다. 이 경우, S1525 단계는 수행하지 않을 수도 있다.Meanwhile, in operation S1520, a search for a predetermined number more pulses as the candidate pulses than the number of encoding target pulses in the priority track is described, but the present invention is not limited thereto. For example, in the priority track, the number of pulses larger than the number of encoding target pulses may not be searched as candidate pulses, but only the pulses that are encoding targets (quantization targets) may be searched. In other words, unlike the lower priority track, only the P1 pulses may be searched for in the priority track. In this case, step S1525 may not be performed.
또한, 도 15의 예에서는 트랙 쌍을 구성하는 트랙별로 후보 펄스의 검색 및 선택을 수행하는 것을 설명하였으나, 본 발명은 이에 한정되지 않는다. 예를 들어, 트랙 쌍을 구성하는 모든 트랙들에 대하여 부호화 대상 펄스의 개수보다 소정 개수 이상의 후보 펄스를 검색한 후, 각각의 트랙별로 후보 펄스들 중에서 상위 중요도 트랙에서 선택된 펄스로부터 멀리 떨어진 펄스를 부호화 대상 펄스로 선택해 나갈 수 있다. 이때, 트랙 쌍을 구성하는 모드 트랙들에 대하여 후보 펄스를 검색할 때, 최상위 중요도 트랙에서는 부호화 대상 펄스의 개수와 동일한 후보 펄스를 선택(예컨대, 후보 펄스의 검색이 아닌 부호화 대상 펄스의 검색)할 수도 있다. In the example of FIG. 15, the searching and selection of candidate pulses are performed for each track constituting the track pair, but the present invention is not limited thereto. For example, after retrieving a predetermined number of candidate pulses more than the number of pulses to be coded for all tracks constituting the track pair, encoding the pulses far from the pulse selected in the higher priority track among the candidate pulses for each track. It can be selected by the target pulse. In this case, when searching for candidate pulses for the mode tracks constituting the track pair, the most significant track selects candidate pulses equal to the number of encoding target pulses (for example, searching for encoding target pulses rather than searching for candidate pulses). It may be.
도 15에서는 트랙의 중요도를 판단하기 위해, 트랙의 에너지를 기반으로 상위 중요도 트랙과 하위 중요도 트랙으로 구분하였으나, 본 발명은 이에 한정되지 않는다. 먼저 검색할 트랙을 결정하기 위한 기준은 에너지 이외에도 다른 기준을 적용할 수 있다. 이 경우에도, 트랙 쌍을 이루는 트랙들 간에는 도 15에서 설명한 바와 동일한 방법으로 펄스들을 검색하여 부호화 대상 펄스를 결정하고, 펄스의 정보를 양자화 할 수 있다.In FIG. 15, in order to determine the importance of a track, the track is classified into an upper importance track and a lower importance track based on the energy of the track. However, the present invention is not limited thereto. As a criterion for determining a track to be searched first, other criteria may be applied in addition to energy. Even in this case, the tracks of the track pairs may be searched for pulses in the same manner as described with reference to FIG. 15 to determine an encoding target pulse, and quantize the information of the pulses.
한편, 도 15의 단계들은 타겟 신호의 모든 트랙에서 부호화 대상 펄스가 결정될 수 있도록 모든 트랙들에 대하여 순서대로 적용될 수 있다. Meanwhile, the steps of FIG. 15 may be applied to all tracks in order so that the encoding target pulse may be determined in all tracks of the target signal.
도 14 및 도 15의 방법은 G.718 SWB 상위 대역에 대한 부호화 중 원본 신호를 타겟으로 하지 않고, 부호화 후 차신호(difference, residual)가 타겟이 되는 경우에 효과적일 수 있다. 또한, G.718 WB와 같이 핵심 코어(basic core)가 부호화되지 않은 신호를 부호화하는데 적용될 수도 있다.The method of FIGS. 14 and 15 may be effective when the difference signal (difference, residual) is a target after encoding, without targeting the original signal during encoding for the G.718 SWB upper band. In addition, a basic core such as G.718 WB may be applied to encode an uncoded signal.
도 16은 도 14 및 도 16의 방법이 적용되는 부호화기의 일 예를 개략적으로 설명한 블록도이다. FIG. 16 is a block diagram schematically illustrating an example of an encoder to which the methods of FIGS. 14 and 16 are applied.
입력 신호는 HP 필처(1610)에서 필터링 된 뒤, WB 신호는 베이직 코어(basic core, 1620)로 입력된다. 베이직 코어(1620)에서 출력된 신호는 부호화되어 비트스트림으로 전송될 수 있다. After the input signal is filtered by the HP filter 1610, the WB signal is input to a basic core 1620. The signal output from the basic core 1620 may be encoded and transmitted in a bitstream.
베이직 코어(1620)에서 복호화된 신호와 HP 필터링된 원본 신호의 차는 MDCT 기반 인핸스먼트 레이어(1630)에서 처리된 후, 비트스트림으로 출력될 수 있다. 이때, 인핸스먼트 레이어(1630)는 도 1의 SWB(Super Wide Band) 부호화부에 대응할 수 있다. The difference between the signal decoded in the basic core 1620 and the original HP filtered signal may be processed in the MDCT-based enhancement layer 1630 and then output as a bitstream. In this case, the enhancement layer 1630 may correspond to the super wide band (SWB) encoder of FIG. 1.
프레임의 에너지를 기반으로 펄스를 검색하는 방법How to retrieve pulses based on the energy of the frame
타겟 신호가 생성되면 타겟 신호의 특징에 따라서, 트랙 쌍에서 다른 트랙의 펄스와 인접하는 펄스를 부호화 대상 펄스로서 선택할 것인지 다른 트랙의 펄스와 떨어져 있는 펄스들을 부호화 대상 펄스로서 선택할 것인지를 결정할 수 있다.When the target signal is generated, it is possible to determine whether to select a pulse adjacent to a pulse of another track in a pair of tracks as an encoding target pulse or to select pulses apart from pulses of another track in the track pair as encoding target pulses.
이때, 부호화 대상 펄스를 어떻게 선택할 것인지를 결정하는 기준이 되는 타겟 신호의 특징으로서, 에너지 분포를 이용할 수 있다. 이 경우, 도 1의 토널리티 판단부를 이용하여 어떤 방식으로 부호화 대상 펄스를 선택할 것인지를 결정할 수 있다.In this case, an energy distribution may be used as a feature of the target signal as a reference for determining how to select an encoding target pulse. In this case, the tonality determination unit of FIG. 1 may determine how to select an encoding target pulse.
예컨대, 타겟 신호에 토널 성분이 있거나 타겟 신호의 에너지 분포가 한 대역에 몰려 있는 경우에는 트랙 쌍의 다른 트랙에서 선택된 펄스와 인접한 펄스를 부호화 대상 펄스로 선택하는 방법을 이용할 수 있다. 타겟 신호에 토널 성분이 없거나 타겟 신호의 에너지 분포가 균일한 경우에는 트랙 쌍의 다른 트랙에서 선택된 펄스로부터 떨어져 있는 펄스를 부호화 대상 펄스로 선택하는 방법을 이용할 수 있다.For example, when a tonal component is present in the target signal or when the energy distribution of the target signal is concentrated in one band, a method of selecting a pulse adjacent to a pulse selected from another track of a track pair as an encoding target pulse may be used. If the target signal has no tonal component or the energy distribution of the target signal is uniform, a method of selecting a pulse that is separated from a pulse selected from other tracks of the track pair as the encoding target pulse may be used.
따라서, 본 실시예에서는 타겟 신호가 생성되면, 트랙 쌍의 다른 트랙에서 선택된 펄스와 인접한 펄스를 선택할 것인지 떨어져 있는 펄스를 선택할 것인지를 지시하는 정보가 타겟 신호의 특징을 추출하는 모듈(예컨대, 도 1의 토너리티 판단부)로부터 트랙 별로 펄스를 선택하는 모듈(예컨대, 도 1의 SWB 부호화부)로 입력될 수 있다. Therefore, in the present embodiment, when the target signal is generated, information indicating whether to select a pulse adjacent to the selected pulse or a pulse apart from the selected track in another track of the pair of tracks extracts a feature of the target signal (eg, FIG. 1). It may be input to a module (for example, the SWB encoder of FIG. 1) for selecting a pulse for each track from the tonerity determination unit of FIG.
도 17은 본 발명에 따라서 프레임 에너지 혹은 토널리티에 따라서 트랙의 펄스를 검색하는 방법의 일 예를 개략적으로 설명하는 순서도이다.17 is a flowchart schematically illustrating an example of a method of searching for a pulse of a track according to frame energy or tonality according to the present invention.
도 17의 예에서는, 두 개 이상의 트랙이 트랙 쌍을 구성하며, 트랙 쌍을 이루는 각 트랙들이 인접하여 있다고 가정한다. In the example of FIG. 17, it is assumed that two or more tracks constitute a track pair, and that each track of the track pair is adjacent to each other.
또한, 도 17의 예는 도 1의 SWB 부호화부 및/또는 도 3의 SWB 복호화부에서 수행될 수 있다. 예컨대, SWB 부호화부 및/또는 SWB 복호화부의 사인파 모드부, 추가 사인파부 중 적어도 하나에서 수행될 수 있다. 또한, 도 17에서 인접 펄스를 선택할 것인지에 대한 판단과 지시는 도 1의 토널리티 판단부와 도 3의 SWB 복호화부에서 수행할 수도 있다. 여기서는 설명의 편의를 위해, SWB 부호화부 및/또는 SWB 복호화부에서 도 17의 각 단계를 수행하는 것으로 설명한다.In addition, the example of FIG. 17 may be performed by the SWB encoder of FIG. 1 and / or the SWB decoder of FIG. 3. For example, the operation may be performed in at least one of a sine wave mode unit and an additional sine wave unit of the SWB encoder and / or the SWB decoder. In addition, the determination and the indication of whether to select the adjacent pulse in FIG. 17 may be performed by the tonality determination unit of FIG. 1 and the SWB decoding unit of FIG. 3. For convenience of explanation, the steps of FIG. 17 are described by the SWB encoder and / or the SWB decoder.
도 17을 참조하면, 우선 타겟(target) 신호가 생성된다(S1700). 이때, 타겟 신호는 양자화할 펄스들, 즉 MDCT 계수들일 수 있다. Referring to FIG. 17, first, a target signal is generated (S1700). In this case, the target signal may be pulses to be quantized, that is, MDCT coefficients.
이어서, 타겟 신호의 특징이 추출된다(S1705). 추출된 타겟 신호의 특징에 따라서, 트랙 쌍에 대하여 펄스를 검색/선택할 때, 다른 트랙의 펄스와 인접한 펄스를 선택할 것인지 떨어져 있는 펄스를 선택할 것인지가 결정될 수 있다. 이때, 추출되는 타겟 신호의 특징은 토널리티일 수도 있고, 에너지의 분포일 수도 있다. Next, the feature of the target signal is extracted (S1705). Depending on the features of the extracted target signal, when searching / selecting a pulse for a pair of tracks, it may be determined whether to select a pulse adjacent to a pulse of another track or a pulse apart. In this case, the feature of the extracted target signal may be tonality or may be a distribution of energy.
타겟 신호의 특징으로서 토널리티를 판단하는 경우, 타겟 신호가 토널이면 트랙 쌍의 다른 트랙에서 선택된 펄스와 인접한 펄스를 선택하도록 지시할 수 있다. 또한, 타겟 신호가 토널이 아니면, 트랙 쌍의 다른 트랙에서 선택된 펄스와 떨어져 있는 펄스를 선택하도록 지시할 수 있다.When determining the tonality as a characteristic of the target signal, if the target signal is tonal, it may be instructed to select a pulse adjacent to the selected pulse in another track of the track pair. In addition, if the target signal is not tonal, it may be instructed to select a pulse away from the selected pulse in another track of the track pair.
타겟 신호의 특징으로서 에너지 분포를 판단하는 경우, 타겟 신호의 에너지가 특정 대역에 몰려있는 경우에는 트랙 쌍의 다른 트랙에서 선택된 펄스와 인접한 펄스를 선택하도록 지시할 수 있다. 또한, 타겟 신호의 에너지가 고르게 몰려 있는 경우에는 트랙 쌍의 다른 트랙에서 선택된 펄스로부터 떨어져 있는 펄스를 선택하도록 지시할 수 있다.When determining the energy distribution as a characteristic of the target signal, when the energy of the target signal is concentrated in a specific band, it may be instructed to select a pulse adjacent to a selected pulse in another track of the track pair. In addition, when the energy of the target signal is evenly concentrated, it may be instructed to select a pulse away from the selected pulse in another track of the track pair.
도 17에서 이하의 단계는 도 13 및 도 15에서 설명한 바와 같다. 다만, 트랙 쌍을 구성하는 트랙들에서 어떤 트랙을 선택할 것인지는 각 트랙의 선택 단계에서 적응적으로 결정될 수 있다. In FIG. 17, the following steps are the same as described with reference to FIGS. 13 and 15. However, which track to select from the tracks constituting the track pair may be adaptively determined at the step of selecting each track.
예컨대, S1705 단계에서 트랙 쌍에 대하여, 다른 트랙에서 선택된 펄스와 인접한 펄스를 선택할 것인지 다른 트랙에서 선택된 펄스로부터 떨어져 있는 펄스를 선택할 것인지가 결정되고, 결정된 정보가 최상위 중요도 트랙에서 펄스를 선택하는 단계 혹은 그 이전 단계에 전달되면, 트랙 쌍의 각 트랙에서 동일한 방법으로 펄스를 선택하도록 할 수 있다. For example, in step S1705, for a pair of tracks, it is determined whether to select a pulse adjacent to a pulse selected in another track or a pulse away from a pulse selected in another track, and the determined information selects a pulse in the most significant track, or When delivered to the previous stage, the pulses can be selected in the same way on each track of the track pair.
인접한 펄스를 선택하는 것으로 결정되면, 도 13의 예에 따른 방법으로 펄스가 검색/선택될 수 있다. 떨어져 있는 펄스를 선택하는 것으로 결정되면, 도 15의 예에 따른 방법으로 펄스가 검색될 수 있다.If it is determined to select adjacent pulses, the pulses may be retrieved / selected by the method according to the example of FIG. If it is determined to select the distant pulses, the pulses can be retrieved by the method according to the example of FIG.
또한, S1705 단계에서 트랙 쌍에 대하여, 다른 트랙에서 선택된 펄스와 인접한 펄스를 선택할 것인지 다른 트랙에서 선택된 펄스로부터 떨어져 있는 펄스를 선택할 것인지가 결정될 때, 각 트랙별로 어떻게 펄스를 선택할 것인지가 결정될 수 있다. 이 경우, 각 트랙별로 펄스를 선택하는 단계에 펄스를 어떻게 선택할 것인지에 관한 정보가 전달되면, 전달된 정보가 지시하는 방법에 따라서 펄스가 선택될 수 있다. Further, when it is determined in step S1705 for a pair of tracks to select a pulse adjacent to a pulse selected in another track or a pulse away from a pulse selected in another track, how to select a pulse for each track may be determined. In this case, when information on how to select a pulse is transmitted to the step of selecting a pulse for each track, the pulse may be selected according to the method indicated by the transferred information.
예컨대, 현재 트랙에서는 다른 트랙에서 선택된 펄스에 인접한 펄스를 선택하도록 지시되는 경우에는 도 13의 예에 따른 방법으로 펄스가 검색/선택될 수 있다. 또한, 현재 트랙에서는 다른 트랙에서 선택된 펄스로부터 떨어져 있는 위치의 펄스를 선택하도록 지시되는 경우에는 도 15의 예에 따른 방법으로 펄스가 검색/선택될 수 있다.For example, when the current track is instructed to select a pulse adjacent to a selected pulse in another track, the pulse may be searched / selected by the method according to the example of FIG. 13. In addition, in the current track, when it is instructed to select a pulse at a position away from the selected pulse in another track, the pulse may be searched / selected by the method according to the example of FIG. 15.
이하, 도 17의 예에서는 인접한 펄스를 선택해야 할 것인지 떨어져 있는 펄스를 선택해야 할 것인지가 각 트랙별로 지시되는 경우를 예로서 설명한다.In the example of FIG. 17, a case where each track is instructed as to whether adjacent pulses or separated pulses should be selected will be described as an example.
다시 17의 예로 돌아와서, 트랙 쌍이 존재하는지가 판단된다(S1710). 트랙 쌍은, 동일한 스텝(펄스 간격)을 가지며 트랙 내 펄스의 위치가 인접 트랙 내 펄스의 위치와 서로 이웃하는 트랙들로 구성될 수 있다.Returning to the example of 17 again, it is determined whether a track pair exists (S1710). A track pair may consist of tracks having the same steps (pulse intervals) and whose position in the track is adjacent to each other with the position of the pulse in the adjacent track.
타겟 신호에 트랙 쌍이 있는 경우에는, 트랙 쌍을 구성하는 트랙들의 특징을 추출한다(S1715). 예컨대, 추출되는 특징은 트랙의 에너지 일 수 있다. If there are track pairs in the target signal, the features of the tracks constituting the track pair are extracted (S1715). For example, the feature to be extracted may be the energy of the track.
트랙별로 추출된 특징의 값에 따라서, 트랙들의 중요도 순서가 결정될 수 있다(S1720). 예컨대, 트랙별로 추출되는 특징이 트랙별 에너지인 경우에, 에너지가 높은 트랙이 중요도가 높은 트랙, 즉 펄스의 검색이 먼저 수행되는 트랙으로 결정될 수 있다.According to the value of the feature extracted for each track, the order of importance of the tracks may be determined (S1720). For example, when the feature extracted for each track is energy for each track, a track having a high energy may be determined as a track having a high importance, that is, a track in which a search for pulse is performed first.
트랙들에 대한 중요도 순서에 따라서, 1 순위 중요도 트랙에서 후보 펄스들이 검색된다(S1725). 1 순위 중요도 트랙에서 부호화할 펄스의 개수가 Q1이라고 하면(Q1은 0보다 큰 정수), 부호화할 펄스의 개수보다 소정 개수(q1, q1은 0보다 크거나 같은 정수) 더 많은 펄스가 1 순위 중요도 트랙의 후보 펄스로서 검색될 수 있다. According to the importance order for the tracks, candidate pulses are searched for in the first priority importance track (S1725). If the number of pulses to be encoded in the priority track is Q1 (Q1 is an integer greater than zero), the number of pulses (q1, q1 is an integer greater than or equal to 0) is greater than the number of pulses to be encoded. It can be retrieved as a candidate pulse of the track.
1 순위 중요도 트랙에서 검색된 후보 펄스들 중에서, 1 순위 중요도 트랙에서 부호화될 펄스의 개수(Q1)만큼의 펄스가 선택될 수 있다(S1730). 이때, 부호화될 펄스의 선택은 타겟 신호의 특징에 기반하여 S1705에서 결정된 방법에 따라서 수행될 수 있다. 또한, 최상위 중요도 트랙에 대해서는 다른 트랙에서 선택된 펄스와의 관계를 고려하지 않고 부호화 대상 펄스가 선택될 수도 있다.Among the candidate pulses searched in the priority ranking track, as many pulses as the number Q1 of pulses to be coded in the priority ranking track may be selected (S1730). In this case, the selection of the pulse to be encoded may be performed according to the method determined in S1705 based on the feature of the target signal. In addition, for the most significant track, the encoding target pulse may be selected without considering the relationship with the pulse selected in the other track.
1 순위 중요도 트랙에서는 펄스의 절대값을 기준으로 부호화 대상 펄스가 선택될 수 있다. In the priority ranking track, an encoding target pulse may be selected based on an absolute value of the pulse.
이어서, 2 순위 중요도 트랙에서 후보 펄스들이 검색된다(S1735). 2 순위 중요도 트랙에서 부호화할 펄스의 개수가 Q2라고 하면(Q2는 0보다 큰 정수), 부호화할 펄스의 개수보다 소정 개수(q2, q2는 0보다 크거나 같은 정수) 더 많은 펄스가 2 순위 중요도 트랙의 후보 펄스로서 검색될 수 있다. Subsequently, candidate pulses are searched for in the second rank importance track (S1735). If the number of pulses to be coded in the second-order importance track is Q2 (Q2 is an integer greater than zero), the number of pulses is greater than the number of pulses to be encoded (q2, q2 is an integer greater than or equal to zero). It can be retrieved as a candidate pulse of the track.
이때, 2 순위 중요도 트랙에서 추가로 검색되는 펄스의 개수 q2는 1 순위 중요도 트랙에서 추가로 검색되는 펄스의 개수 q1과 같거나 더 클 수 있다. In this case, the number q2 of pulses additionally searched in the second priority track may be equal to or greater than the number q1 of pulses additionally searched in the first priority track.
2 순위 중요도 트랙에서 검색된 후보 펄스들의 위치와 1 순위 중요도 트랙에서 선택된 펄스들의 위치(position)가 비교된다(S1840). The positions of the candidate pulses searched in the 2nd priority importance track and the position of the selected pulses in the 1st priority importance track are compared (S1840).
1 순위 중요도 트랙에서 선택된 펄스와의 위치 관계를 기반으로 2 순위 중요도 트랙에서 검색된 펄스들 중에 부호화될 펄스들이 선택된다 (S1745). 이때, 2 순위 중요도 트랙에서 부호화될 펄스의 선택은 타겟 신호의 특징에 기반하여 S1705에서 결정된 방법에 따라서 수행될 수 있다. 예컨대, 1 순위 중요도 트랙에서 선택된 펄스에 인접한 펄스를 선택하도록 지시되는 경우에는 도 13의 예에 따른 방법으로 펄스가 선택될 수 있다. 또한, 1 순위 중요도 트랙에서 선택된 펄스로부터 떨어져 있는 위치의 펄스를 선택하도록 지시되는 경우에는 도 15의 예에 따른 방법으로 펄스가 선택될 수 있다.Pulses to be encoded are selected among the pulses searched in the second priority importance track based on the positional relationship with the pulse selected in the first priority importance track (S1745). In this case, the selection of the pulse to be encoded in the second priority track may be performed according to the method determined in S1705 based on the feature of the target signal. For example, if it is instructed to select a pulse adjacent to the selected pulse in the priority priority track, the pulse may be selected by the method according to the example of FIG. 13. Further, when instructed to select a pulse at a position away from the selected pulse in the priority track, the pulse may be selected by the method according to the example of FIG. 15.
2 순위 중요도 트랙에서 검색된 펄스들 중에서 1 순위 중요도 트랙에서 선택된 펄스와 떨어져 있는 위치의 펄스가 존재하지 않으면, 2 순위 중요도 트랙에서 절대값이 가장 큰 펄스(최대값 사인파)가 선택될 수 있다. If there is no pulse in the position that is separated from the pulse selected in the first priority track among the pulses searched in the second priority track, the pulse having the largest absolute value (maximum sine wave) may be selected in the second priority track.
3 순위 중요도 트랙부터 그 이하의 중요도 트랙들도 동일한 방법으로 후보 펄스를 검색하고 후보 펄스들 중에서 부호화할 펄스를 선택할 수 있다. The priority tracks from the 3rd priority track to the following priority tracks may search for candidate pulses and select a pulse to be encoded from the candidate pulses.
중요도에 따라서 순차적으로 트랙별 후보 펄스를 검색하고, 부호화 대상 펄스를 선택해 나가는 과정의 마지막에 최하순위 중요도 트랙에서 후보 펄스들이 검색된다(S1750). 트랙 쌍이 k 개의 트랙으로 구성되었다고 가정하면, 최하순위 중요도 트랙(k 순위 중요도 트랙)에서 부호화할 펄스의 개수 Qk(Qk는 0보다 큰 정수)에 대하여, 부호화할 펄스의 개수보다 소정 개수(qk) 더 많은 펄스가 최하순위 중요도 트랙의 후보 펄스로서 검색될 수 있다. 이때, 최하순위 중요도 트랙에서 추가로 검색되는 펄스의 개수 qk는 이전 순위 중요도 트랙(k-1 순위 중요도 트랙)에서 추가로 검색되는 펄스의 개수 qk-1과 같거나 더 클 수 있다.The candidate pulses for each track are sequentially searched according to the importance, and candidate pulses are searched for in the lowest priority track at the end of the process of selecting an encoding target pulse (S1750). Assuming that a pair of tracks consists of k tracks, for a number Qk (Qk is an integer greater than 0) to be encoded in the lowest priority track (k rank importance track), the predetermined number qk is greater than the number of pulses to be encoded. More pulses can be retrieved as candidate pulses of the lowest priority track. In this case, the number qk of pulses additionally searched in the lowest priority track may be equal to or greater than the number qk-1 of pulses additionally searched in the previous rank importance track (k-1 rank priority track).
최하순위 중요도 트랙에서 검색된 후보 펄스들의 위치와 상위 순위 중요도 트랙에서 선택된 펄스들의 위치(position)가 비교된다(S1755). The positions of the candidate pulses searched in the lowest priority track and the positions of the selected pulses in the high priority track are compared (S1755).
이전 순위 중요도 트랙(k-1 순위 중요도 트랙)에서 선택된 펄스와의 위치 관계를 기반으로 최하순위 중요도 트랙(k 순위 중요도 트랙)에서 부호화될 펄스들이 선택될 수 있다(S1760). Pulses to be encoded in the lowest priority track (k rank priority track) may be selected based on the positional relationship with the pulse selected in the previous rank priority track (k-1 rank priority track) (S1760).
이때, k 순위 중요도 트랙에서 부호화될 펄스의 선택은 타겟 신호의 특징에 기반하여 S1705에서 결정된 방법에 따라서 수행될 수 있다. 예컨대, k-1 순위 중요도 트랙에서 선택된 펄스에 인접한 펄스를 선택하도록 지시되는 경우에는 도 13의 예에 따른 방법으로 펄스가 선택될 수 있다. 또한, k-1 순위 중요도 트랙에서 선택된 펄스로부터 떨어져 있는 위치의 펄스를 선택하도록 지시되는 경우에는 도 15의 예에 따른 방법으로 펄스가 선택될 수 있다.In this case, the selection of the pulse to be encoded in the k rank importance track may be performed according to the method determined in S1705 based on the feature of the target signal. For example, if the k-1 rank importance track is instructed to select a pulse adjacent to the selected pulse, the pulse may be selected by the method according to the example of FIG. In addition, when instructed to select a pulse at a position away from the selected pulse in the k-1 rank importance track, the pulse may be selected by the method according to the example of FIG. 15.
한편, 타겟 신호에 트랙 쌍이 존재하지 않는 경우에는, 각 트랙에서 검색한 최대값 사인파(펄스) 개수만큼 최대값 사인파를 선택할 수 있다(S1765). SWB 부호화부 및/또는 SWB 복호화부는 다른 트랙에서 검색된 펄스파를 고려하지 않고, 각 트랙별로 부호화 대상이 되는 펄스의 개수만큼 최대값 사인파(펄스)를 검색해서 부호화/양자화 대상 펄스로서 선택할 수 있다.On the other hand, when no track pair exists in the target signal, the maximum sine wave can be selected by the number of maximum sine waves (pulses) searched in each track (S1765). The SWB encoder and / or the SWB decoder may search for the maximum sine wave (pulse) by the number of pulses to be encoded for each track and select it as an encoding / quantization target pulse without considering the pulse waves searched for in other tracks.
선택된 펄스(최대값 사인파)들에 대하여, 위치/크기/부호를 양자화 한다(S1770).The position / size / sign is quantized with respect to the selected pulses (maximum sine wave) (S1770).
트랙 내에서, 선택된 펄스의 부호(sign)를 지시하는 정보를 양자화 하기 위해 펄스의 위치(position)가 변경될 수 있다. 위치 변경은 트랙 당 한 개의 부호(sign) 비트만을 전송하기 위한 것으로서, 트랙 내에서 선택된 두 펄스의 부호가 같으면 절대값이 큰 펄스를 앞쪽 위치에 두고, 두 펄스의 부호가 다르면 절대값이 작은 펄스를 앞쪽 위치에 두는 방식으로 수행된다. Within the track, the position of the pulse can be changed to quantize information indicating the sign of the selected pulse. The position change is for transmitting only one sign bit per track. If the two selected pulses in the track have the same sign, the pulse with the larger absolute value is placed in the front position. If the two pulses are different, the pulse with the small absolute value is different. This is done by placing in the front position.
따라서, 펄스의 위치는 동일한 트랙 내에서 선택된 두 펄스의 부호가 동일한지 상이한지에 따라서 변경될 수도 있고 변경되지 않을 수도 있다. Thus, the position of the pulse may or may not change depending on whether the signs of the two selected pulses within the same track are the same or different.
선택된 펄스의 위치가 결정되면, 펄스의 위치, 크기 및/또는 부호가 양자화 된다 Once the position of the selected pulse is determined, the position, magnitude and / or sign of the pulse is quantized
한편, S1725 단계에서는 1 순위 중요도 트랙에서 부호화 대상 펄스의 개수보다 소정 개수 더 많은 펄스를 후보 펄스로서 검색하는 것을 설명하였으나, 본 발명은 이에 한정되지 않는다. 예컨대, 1 순위 중요도 트랙에서는 부호화 대상 펄스의 개수보다 더 많은 개수의 펄스를 후보 펄스로서 검색하지 않고, 부호화의 대상(양자화의 대상)이 되는 펄스만을 검색할 수도 있다. 즉, 1 순위 중요도 트랙에서는 하순위 중요도 트랙과 달리, P1 개의 펄스만을 검색할 수도 있다. 이 경우, S1725 단계는 수행하지 않을 수도 있다.Meanwhile, in operation S1725, a search for a predetermined number more pulses as the candidate pulses than the number of encoding target pulses in the first priority track is described, but the present invention is not limited thereto. For example, in the priority track, the number of pulses larger than the number of encoding target pulses may not be searched as candidate pulses, but only the pulses that are encoding targets (quantization targets) may be searched. In other words, unlike the lower priority track, only the P1 pulses may be searched for in the priority track. In this case, step S1725 may not be performed.
또한, 도 17의 예에서는 트랙 쌍을 구성하는 트랙별로 후보 펄스의 검색 및 선택을 수행하는 것을 설명하였으나, 본 발명은 이에 한정되지 않는다. 예를 들어, 트랙 쌍을 구성하는 모든 트랙들에 대하여 부호화 대상 펄스의 개수보다 소정 개수 이상의 후보 펄스를 검색한 후, 각각의 트랙별로 상위 중요도 트랙에서 선택된 펄스와의 위치 관계를 기반으로 부호화 대상 펄스를 선택할 수도 있다. 이때, 각 트랙에서 펄스의 선택은 타겟 신호의 특징에 기반하여 S1705에서 결정된 방법에 따라서 수행될 수도 있다. 이 경우, 각 트랙별로 동일한 방법이 적용될 수도 있고, 상이한 방법이 적용될 수도 있다. In the example of FIG. 17, the searching and selection of candidate pulses is performed for each track constituting the track pair, but the present invention is not limited thereto. For example, after searching for a predetermined number of candidate pulses or more than the number of encoding target pulses for all tracks constituting the track pair, the encoding target pulse is based on the positional relationship with the pulse selected in the higher priority track for each track. You can also select. At this time, the selection of the pulse in each track may be performed according to the method determined in S1705 based on the characteristics of the target signal. In this case, the same method may be applied to each track, or different methods may be applied.
또한, 최상위 중요도 트랙에서는 부호화 대상 펄스의 개수와 동일한 후보 펄스를 선택(예컨대, 후보 펄스의 검색이 아닌 부호화 대상 펄스의 검색)할 수도 있다. Further, in the most significant importance track, a candidate pulse equal to the number of encoding target pulses may be selected (for example, the encoding target pulse is searched instead of the candidate pulse search).
도 17에서는 트랙의 중요도를 판단하기 위해, 트랙의 에너지를 기반으로 상위 중요도 트랙과 하위 중요도 트랙으로 구분하였으나, 본 발명은 이에 한정되지 않는다. 먼저 검색할 트랙을 결정하기 위한 기준은 에너지 이외에도 다른 기준을 적용할 수 있다. 이 경우에도, 트랙 쌍을 이루는 트랙들 간에는 도 17에서 설명한 바와 동일한 방법으로 펄스들을 검색하여 부호화 대상 펄스를 결정하고, 펄스의 정보를 양자화 할 수 있다.In FIG. 17, in order to determine the importance of a track, the track is divided into an upper importance track and a lower importance track based on the energy of the track. However, the present invention is not limited thereto. As a criterion for determining a track to be searched first, other criteria may be applied in addition to energy. Even in this case, the tracks of the track pairs may be searched for pulses in the same manner as described with reference to FIG. 17 to determine an encoding target pulse and quantize the information of the pulses.
한편, 도 17의 단계들은 타겟 신호의 모든 트랙에서 부호화 대상 펄스가 결정될 수 있도록 모든 트랙들에 대하여 순서대로 적용될 수 있다.Meanwhile, the steps of FIG. 17 may be applied to all tracks in order so that an encoding target pulse may be determined in all tracks of a target signal.

CELP 모드에서 펄스를 검색하는 방법How to Search for Pulses in CELP Mode
MDCT에 기반한 사인파 모드 외, CELP(Code Excited Linear Prediction) 모드를 적용하는 경우에도 본 발명에 따라서 부호화 대상 펄스를 검색할 수 있다.In addition to the MDCT-based sine wave mode, even when the CELP (Code Excited Linear Prediction) mode is applied, the encoding target pulse can be searched according to the present invention.
CELP 모드에 의해 수행되는 부호화 및 복호화 방법은 도 2 및 도 4에서 설명한 바와 같다.Encoding and decoding methods performed by the CELP mode are the same as described with reference to FIGS. 2 and 4.
사인파 모드에서는 수식 2에 기반한 펄스들의 절대값을 이용하여 후보 펄스들을 검색하였다. 이와 달리, CELP 모드에서는 LPC 합성 필터의 임펄스 응답과의 컨볼루션 값을 기반으로 후보 펄스를 선택할 수 있다. 예컨대, 현재 트랙에서 임펄스(impulse) 응답과 컨벌루션 한 펄스 값과 타겟 신호 사이의 MSE(Mean Square Error)가 최소가 되는 펄스를 후보 펄스로 검색할 수 있다.In sine wave mode, candidate pulses were searched using the absolute values of pulses based on Equation 2. In contrast, in the CELP mode, candidate pulses may be selected based on a convolution value with an impulse response of the LPC synthesis filter. For example, a candidate pulse may be searched for a pulse having a minimum mean square error (MSE) between an impulse response, a convolved pulse value, and a target signal in a current track.
도 18은 본 발명에서 CELP 모드를 기반으로 펄스를 검색/선택하는 방법을 개략적으로 설명하는 순서도이다. 18 is a flowchart schematically illustrating a method for searching / selecting a pulse based on a CELP mode in the present invention.
도 18의 예에서는, 두 개 이상의 트랙이 트랙 쌍을 구성하며, 트랙 쌍을 이루는 각 트랙들이 인접하여 있다고 가정한다. In the example of FIG. 18, it is assumed that two or more tracks constitute a track pair, and that each track constituting the track pair is adjacent.
또한, 도 18의 예는 도 2의 부호화기 내 핵심 부호화부 및/또는 도 4의 복호화기 내 핵심 복호화부에서 수행될 수 있다. 여기서는 설명의 편의를 위해, 부호화기 및/또는 복호화기가 도 18의 각 단계를 수행하는 것으로 설명한다.In addition, the example of FIG. 18 may be performed by the core encoder in the encoder of FIG. 2 and / or the core decoder in the decoder of FIG. 4. For convenience of description, the encoder and / or the decoder will be described as performing each step of FIG. 18.
도 18을 참조하면, 우선 타겟(target) 신호가 생성된다(S1800). 이때, 생성되는 타겟 신호는 웨이팅 필터를 거친 신호나 CELP 모드에서 적응적 코드북 검색을 거친 후의 신호 즉, 오디오 신호에서 적응적 코드북의 영향이 제거된 신오일 수도 있다. 다시 말하면, CELP 모드가 적용되는 경우에, 타겟 신호는 (1) 오디오 신호에서 (2) 부호화된 적응적 코드북으로 합성된 신호를 제외한 신호일 수 있다.Referring to FIG. 18, a target signal is first generated (S1800). In this case, the generated target signal may be a signal passed through a weighting filter or a signal after an adaptive codebook search in the CELP mode, that is, a new signal from which the influence of the adaptive codebook is removed from the audio signal. In other words, when the CELP mode is applied, the target signal may be a signal excluding a signal synthesized from (1) an audio signal and (2) a coded adaptive codebook.
이어서, 타겟 신호에 대하여 트랙 쌍을 이루는 트랙들의 트랙별 에너지가 산출된다(S1805). 트랙 쌍은, 동일한 스텝(펄스 간격)을 가지며 트랙 내 펄스의 위치가 인접 트랙 내 펄스의 위치와 서로 이웃하는 트랙들로 구성될 수 있다. 트랙별 에너지는 트랙들을 어떤 순서로 검색할 것인지를 결정하기 위한 기준으로 사용될 수 있다. 여기서는 트랙별 에너지를 기준으로 사용하지만, 에너지 이외의 다른 특징을 산출하여 검색 순서를 결정하는 기준으로 사용할 수도 있다.Subsequently, track-specific energy of tracks constituting the track pair with respect to the target signal is calculated (S1805). A track pair may consist of tracks having the same steps (pulse intervals) and whose position in the track is adjacent to each other with the position of the pulse in the adjacent track. The track-specific energy can be used as a criterion for determining in what order the tracks are to be searched. Here, the energy for each track is used as a reference, but other characteristics other than energy may be calculated and used as a reference for determining the search order.
산출된 트랙별 에너지들이 비교된다(S1810). 트랙들의 에너지를 비교하여, 에너지가 높은 트랙이 중요도가 높은 트랙으로 결정될 수 있다. 따라서, 트랙 쌍을 구성하는 트랙들 중에서 에너지가 가장 높은 트랙이 1 순위 트랙으로서 먼저 검색될 수 있다. 이어서 에너지가 두 번째로 높은 트랙이 2 번째로 검색될 2 순위 트랙으로서 결정되며, 에너지 크기에 따라서 최하순위 트랙까지 결정될 수 있다.The calculated track-specific energies are compared (S1810). By comparing the energy of the tracks, a track with higher energy may be determined as a track of high importance. Therefore, the track with the highest energy among the tracks constituting the track pair can be searched first as the first track. The track with the second highest energy is then determined as the second rank track to be searched for the second time, and can be determined up to the lowest rank track according to the energy magnitude.
결정된 순위는 펄스 검색을 위한 순위로서, 검색된 펄스를 양자화하고 비트스트림을 구성하는 경우에는 원래의 트랙 순서대로 진행될 수 있다.The determined rank is a rank for pulse retrieval, and may proceed in the original track order when the retrieved pulse is quantized and the bitstream is constructed.
중요도가 가장 높은 1 순위 트랙에 대하여, 각 펄스에 대하여 MSE가 산출된다(S1815). 1 순위 트랙의 각 펄스 포지션별로, 임펄스 응답과의 컨볼루션 값을 이용하여 타겟 신호에 대한 MSE가 최소가 되는 펄스를 1 순위 트랙의 후보 펄스로 선택한다. 이때, 타겟 신호에 대한 MSE는 타겟 신호의 값과, 후보 펄스를 임펄스 응답과 컨벌루션 한 값 사이의 MSE (Mean Square Error)일 수 있다.The MSE is calculated for each pulse with respect to the first priority track having the highest importance level (S1815). For each pulse position of the first track, a pulse whose MSE is minimum for the target signal is selected as a candidate pulse of the first track using a convolution value with the impulse response. In this case, the MSE for the target signal may be an MSE (Mean Square Error) between a value of the target signal and a value obtained by convolving a candidate pulse with an impulse response.
MSE를 구하는 과정에서는 코드북이 이용될 수 있다. 코드북은 트랙 내에서 펄스가 존재할 수 있는 위치를 특정한다. The codebook can be used in the process of obtaining the MSE. The codebook specifies where in the track there may be pulses.
1 순위 트랙에서 MSE를 산출할 대상 펄스만 존재하는 것으로 설정하고(대상 펄스의 위치에만 단위 크기(amplitude)의 신호(예컨대, 크기 1의 신호)를 두고 다른 펄스의 위치에서는 펄스의 크기를 0으로 설정) 임펄스 응답(impulse response)과의 컨벌루션을 수행함으로써, 1순위 트랙에서 컨벌루션 값과 타겟 신호 사이의 MSE가 펄스별로 산출될 수 있다. In the first track, set only the target pulses to be calculated for MSE (Put the amplitude signal (eg, the signal of magnitude 1) only at the position of the target pulse, and set the pulse size to 0 at the position of other pulses. By performing convolution with the impulse response, the MSE between the convolution value and the target signal in the first track can be calculated for each pulse.
중요도가 높은 1 순위 트랙에서, 타겟 신호에 대한 MSE를 최소화하는 펄스들이 미리 정해진 개수만큼 선택된다(S1820). MDCT 기반의 경우와 달리, 트랙 내의 모든 펄스에 대하여, 임펄스 응답과 각 펄스를 컨펄루션한 값과, 타겟 신호 간의 MSE를 구하고, MSE의 크기가 작은 순서대로 1 순위 트랙에 대하여 미리 정해진 검색 개수만큼 펄스들이 선택될 수 있다. 즉, 타겟 신호와의 차이가 가장 작은 순서대로 소정 개수의 펄스가 선택될 수 있다.In the high priority track, a predetermined number of pulses for minimizing MSE for the target signal are selected (S1820). Unlike the MDCT-based case, for all pulses in a track, the impulse response and the confluence of each pulse and the MSE between the target signals are obtained, and the predetermined number of searches for the first track in order of decreasing MSE magnitudes. Pulses can be selected. That is, the predetermined number of pulses may be selected in the order of the smallest difference from the target signal.
1 순위 트랙에서 선택되는 후보 펄스의 개수가 C1(C1은 0보다 큰 정수)인 경우에는, 타겟 신호에 대한 MSE가 가장 작은 펄스부터 타겟 신호에 대한 MSE가 C1 번째로 작은 펄스까지 C1 개의 펄스가 선택될 수 있다.If the number of candidate pulses selected in the 1st track is C1 (C1 is an integer greater than 0), C1 pulses are generated from the pulse with the smallest MSE for the target signal to the pulse with the smallest MSE for the target signal. Can be selected.
1 순위 트랙에서 선택된 펄스들의 위치를 고정하고, 2 순위 트랙 내 펄스들의 위치에서 타겟 신호에 대한 MSE가 산출된다(S1825). The position of the selected pulses in the first rank track is fixed, and the MSE for the target signal is calculated at the positions of the pulses in the second rank track (S1825).
2 순위 트랙에서 MSE를 산출할 대상 펄스만 존재하는 것으로 설정하고 임펄스 응답(impulse response)과의 컨벌루션을 수행함으로써, 2순위 트랙에서 컨벌루션 값과 타겟 신호 사이의 MSE가 펄스별로 산출될 수 있다. 산출된 MSE가 작은 순서대로, 부호화 대상 펄스의 개수보다 소정 개수 더 많은 펄스들이 2 순위 트랙의 후보 펄스로서 선택될 수 있다. By setting only the target pulse to calculate the MSE in the second rank track and performing convolution with the impulse response, the MSE between the convolution value and the target signal in the second rank track can be calculated for each pulse. In order that the calculated MSE is small, a predetermined number more pulses than the number of pulses to be encoded may be selected as candidate pulses of the second rank track.
이어서, 1 순위 트랙에서 선택된 펄스들이 각각의 위치에 존재하고, 그 외에 2 순위 트랙의 펄스들 중에는 현재 MSE 산출 대상인 펄스만 존재하는 것으로 설정(1 순위 트랙에서 선택된 펄스들의 위치와 2 순위 트랙에서 현재 MSE 산출 대상 펄스의 위치에만 단위 크기의 펄스가 있는 것으로 설정하고 다른 위치의 펄스 크기는 0으로 설정)해서 임펄스 응답과의 컨벌루션이 수행된다. 이를 통해, 1 순위 트랙에서 선택된 펄스들을 고려하여 2 순위 트랙에서 컨벌루션 값과 타겟 신호 사이의 MSE가 펄스별로 산출될 수 있다.Subsequently, the pulses selected in the 1st rank track exist in each position, and among the pulses in the 2nd rank track, only the pulse which is the current MSE calculation target is present. Convolution with the impulse response is performed by setting the pulse of the unit size only at the position of the MSE calculation target pulse and setting the pulse size of the other position to 0). In this way, the MSE between the convolution value and the target signal in the second rank track may be calculated for each pulse in consideration of the pulses selected in the first rank track.
1순위 트랙을 고려하여 산출된 2 순위 트랙에서의 MSE 값이 작은 순서대로, 2 순위 트랙의 부호화 대상 펄스의 개수만큼 2 순위 트랙에서 펄스들이 선택된다. In order of decreasing MSE values in the second rank track calculated in consideration of the first rank track, pulses are selected in the second rank track by the number of pulses to be encoded in the second rank track.
예컨대, 2 순위 트랙의 부호화 대상 펄스의 개수가 C2(C2는 0보다 큰 정수) 개이고 추가로 c2(c2는 0 이상의 정수) 개의 펄스가 검색된다고 가정하자. 이 경우, C2+c2 개의 2 순위 트랙 펄스들은 각각, C1개의 1 순위 트랙 펄스들과 함께, 임펄스 응답과 컨벌루션 된다. 1 순위 트랙의 펄스들과 함께 컨벌루션된 2 순위 트랙의 각 펄스들과 타겟 신호 사이의 MSE가 작은 순서대로 C2개의 펄스가 2 순위 트랙의 부호화 대상 펄스로서 선택될 수 있다. For example, assume that the number of pulses to be encoded in the second rank track is C2 (C2 is an integer greater than 0) and additionally c2 (c2 is an integer of 0 or more) pulses are searched. In this case, the C2 + c2 second rank track pulses are convolved with the impulse response, respectively, along with the C1 first rank track pulses. C2 pulses may be selected as encoding target pulses of the second rank track in the order in which the MSE between each pulse of the second rank track convolved with the pulses of the first rank track and the target signal is small.
3 순위 중요도 트랙부터 그 이하의 중요도 트랙들도 동일한 방법으로 후보 펄스를 검색하고 후보 펄스들 중에서 부호화할 펄스를 선택할 수 있다. 예컨대, 3 순위 트랙에서도 후보 펄스들을 부호화 대상 펄스 개수보다 소정 개수 더 많이 검색한 후, 1 순위 트랙에서 선택된 펄스들 및 2 순위 트랙에서 선택된 펄스들과 함께 컨벌루션을 수행한 값과 타겟 신호 사이의 MSE를 산출할 수 있다. 3 순위 트랙에서도 1 순위 트랙 및 2 순위 트랙에서 선택된 펄스들을 고려하여 산출된 MSE 값을 기준으로 부호화 대상 펄스를 선택할 수 있다. The priority tracks from the 3rd priority track to the following priority tracks may search for candidate pulses and select a pulse to be encoded from the candidate pulses. For example, the MSE between the target signal and the value of the convolution with the pulses selected in the first rank track and the pulses selected in the second rank track after searching a predetermined number of candidate pulses in the third rank track more than the number of pulses to be encoded. Can be calculated. In the third rank track, the encoding target pulse may be selected based on the MSE value calculated in consideration of the pulses selected in the first rank track and the second rank track.
중요도에 따라서 순차적으로 트랙별 후보 펄스를 검색하고, 부호화 대상 펄스를 선택하여, 최하순위 중요도 트랙까지 후보 펄스들이 검색된다. The candidate pulses for each track are sequentially searched according to the importance, the pulses to be encoded are selected, and the candidate pulses are searched up to the lowest priority track.
상위 주요 트랙들의 펄스들을 고정하고 최하순위 트랙의 펄스 위치에서 MSE가 산출된다(S1835). 트랙 쌍이 k 개의 트랙으로 구성되었다고 가정하면, 최하순위 중요도 트랙(k 순위 중요도 트랙)에서 부호화할 펄스의 개수 Ck(Ck는 0보다 큰 정수)에 대하여, 부호화할 펄스의 개수보다 소정 개수(ck, ck는 0보다 크거나 같은 정수) 더 많은 펄스가 최하순위 중요도 트랙의 후보 펄스로서 검색될 수 있다. 예커대, 최하순위 트랙에서 MSE를 산출할 대상 펄스만 존재하는 것으로 설정하고 임펄스 응답(impulse response)과의 컨벌루션을 수행함으로써, 최하순위 트랙에서 컨벌루션 값과 타겟 신호 사이의 MSE가 펄스별로 산출될 수 있다. 최하순위 트랙에 대하여, 이 MSE가 작은 순서대로 Ck+ck개의 후보 펄스가 검색될 수 있다.The pulses of the upper major tracks are fixed and the MSE is calculated at the pulse position of the lowermost track (S1835). Assuming that a pair of tracks consists of k tracks, for the number of pulses Ck (Ck is an integer greater than 0) in the lowest priority track (k rank importance track), the predetermined number (ck, ck is an integer greater than or equal to 0). More pulses can be retrieved as candidate pulses of the lowest priority track. For example, the MSE between the convolution value and the target signal in the lowest track can be calculated for each pulse by setting that only the target pulse to calculate the MSE exists in the lowest track and performing convolution with the impulse response. have. For the lowest rank track, Ck + ck candidate pulses can be retrieved in order of decreasing MSE.
이어서, 1 순위 ~ k-1 순위 트랙들에서 선택된 펄스들이 각각의 위치에 존재하고, 그 외에 k 순위(최하순위) 트랙의 펄스들 중에는 현재 MSE 산출 대상인 펄스만 존재하는 것으로 설정(1 순위 ~ k-1 순위 트랙들에서 선택된 펄스들의 위치와 k 순위 트랙에서 현재 MSE 산출 대상 펄스의 위치에만 단위 크기의 펄스가 있는 것으로 설정하고 다른 위치의 펄스 크기는 0으로 설정)해서 임펄스 응답과의 컨벌루션이 수행된다. 이를 통해, 이전 순위 트랙들에서 선택된 펄스들을 고려하여 최하순위 트랙에서 컨벌루션 값과 타겟 신호 사이의 MSE가 펄스별로 산출될 수 있다.Subsequently, the pulses selected in the rank 1 to k-1 rank tracks exist at each position, and among the pulses in the k rank (lowest rank) track, only the pulses currently being calculated for MSE are set (1 rank to k). The convolution with the impulse response is performed by setting the unit pulses at the position of the selected pulses in the -1 rank tracks and the position of the current MSE calculation target pulse in the k rank tracks and setting the pulse size at other positions to 0). do. In this way, the MSE between the convolution value and the target signal in the lowest rank track may be calculated for each pulse in consideration of the pulses selected in the previous rank tracks.
에너지가 작은 최하순위 트랙에서는 에너지가 크고 이미 검색된 트랙의 펄스를 고려한 MSE들을 비교하여 MSE가 작은 후보 펄스부터 선택될 수 있다(S1840). 즉, 이전 순위 트랙을 고려하여 산출된 최하순위 트랙에서의 MSE 값이 작은 순서대로, 최하순위 트랙의 부호화 대상 펄스의 개수만큼 최하순위 트랙에서 펄스들이 선택된다. In the lowest energy track having small energy, MSEs may be selected from candidate pulses having small energy by comparing MSEs considering pulses of tracks with large energy and already searched (S1840). That is, pulses are selected in the least significant track by the number of pulses to be encoded in the least significant track, in order of decreasing MSE value in the least significant track calculated in consideration of the previous rank track.
전체 트랙에서 선택된 펄스들의 정보가 양자화된다(S1845). 양자화되는 펄스들의 정보는 펄스의 위치, 펄스의 크기, 펄스의 부호 중 적어도 하나를 포함할 수 있다. Information of the pulses selected in the entire track is quantized (S1845). The information of the quantized pulses may include at least one of a position of the pulse, a magnitude of the pulse, and a sign of the pulse.
트랙 내에서, 선택된 펄스의 부호(sign)를 지시하는 정보를 양자화 하기 위해 펄스의 위치(position)가 변경될 수 있다. 위치 변경은 트랙 당 한 개의 부호(sign) 비트만을 전송하기 위한 것으로서, 트랙 내에서 선택된 두 펄스의 부호가 같으면 절대값이 큰 펄스를 앞쪽 위치에 두고, 두 펄스의 부호가 다르면 절대값이 작은 펄스를 앞쪽 위치에 두는 방식으로 수행된다. Within the track, the position of the pulse can be changed to quantize information indicating the sign of the selected pulse. The position change is for transmitting only one sign bit per track. If the two selected pulses in the track have the same sign, the pulse with the larger absolute value is placed in the front position. If the two pulses are different, the pulse with the small absolute value is different. This is done by placing in the front position.
따라서, 펄스의 위치는 동일한 트랙 내에서 선택된 두 펄스의 부호가 동일한지 상이한지에 따라서 변경될 수도 있고 변경되지 않을 수도 있다. Thus, the position of the pulse may or may not change depending on whether the signs of the two selected pulses within the same track are the same or different.
선택된 펄스의 위치가 결정되면, 펄스의 위치, 크기 및/또는 부호가 양자화 된다 Once the position of the selected pulse is determined, the position, magnitude and / or sign of the pulse is quantized
도 18의 예에서는 트랙 쌍을 구성하는 트랙별로 후보 펄스의 검색 및 선택을 수행하는 것을 설명하였으나, 본 발명은 이에 한정되지 않는다. 예를 들어, 트랙 쌍을 구성하는 모든 트랙들에 대하여 부호화 대상 펄스의 개수보다 소정 개수 이상의 후보 펄스를 검색한 후, 각각의 트랙별로 상위 중요도 트랙에서 선택된 펄스를 포함하여 임펄스 응답과의 컨벌루션을 구할 수도 있다. In the example of FIG. 18, the searching and selection of candidate pulses is performed for each track constituting the track pair, but the present invention is not limited thereto. For example, after searching for a predetermined number of candidate pulses or more than the number of pulses to be encoded for all tracks constituting the track pair, a convolution with an impulse response may be obtained by including the pulses selected from the higher importance tracks for each track. It may be.
CELP 모드가 적용되는 베이스 레이어(레이어 6)의 경우, 최소 2 개 이상의 트랙이 트랙 쌍을 구성할 수 밖에 없는 구조이므로, 이전의 실시예와 달리 도 18의 예에서 트랙 쌍의 존부를 판단하는 단계가 수행될 필요는 없다. In the case of the base layer (layer 6) to which the CELP mode is applied, at least two or more tracks have a structure in which track pairs can be configured. Therefore, in the example of FIG. Need not be performed.
이와 달리, CELP 모드가 인핸스먼트 레이어(레이어 7 또는 레이어 8)에 적용되는 경우에는 트랙 쌍이 존재하지 않을 수 있으므로, 트랙 별 에너지를 비교하기 전에 트랙 쌍의 존재를 판단할 수도 있다. 트랙 쌍이 존재하지 않는 경우에는 트랙 별로 각 펄스의 컨벌루션과 원본 신호 사이의 MSE가 작은 순서대로 부호화 대상 펄스를 선택할 수 있다.In contrast, when the CELP mode is applied to the enhancement layer (layer 7 or layer 8), the track pair may not exist, and thus, the existence of the track pair may be determined before comparing the energy of each track. If no track pair exists, the encoding target pulses may be selected in order of decreasing MSE between the convolution of each pulse and the original signal for each track.
도 18의 방법은 도 1 및 16의 부호화기에도 적용될 수 있다. 다만, 도 18의 CELP 기반 실시예가 적용되는 경우에, 도 1의 SWB 부호화부(130)는 CELP 기반 인핸스먼트 레이어부로 전환될 수 있고, 도 16의 MDCT 기반 인핸스먼트 레이어부(1630)도 CELP 기반 인핸스먼트 레이어부로 전환될 수 있다. The method of FIG. 18 may also be applied to the encoders of FIGS. 1 and 16. However, when the CELP-based embodiment of FIG. 18 is applied, the SWB encoder 130 of FIG. 1 may be converted to a CELP-based enhancement layer unit, and the MDCT-based enhancement layer unit 1630 of FIG. 16 is also CELP-based. It can be switched to the enhancement layer unit.
인핸스먼트 레이어부에서는 SWB 신호를 처리하는 레이어 6 이상의 상위 레이어들이 처리될 수 있다. MDCT 기반 인핸스먼트 레이어부에서는 레이어 6 이상의 레이어들이 MDCT를 기반으로 처리되며, CELP 기반 인핸스먼트 레이어부에서는 레이어 6 이상의 레이어들이 CELP를 기반으로 처리될 수 있다.The enhancement layer unit may process higher layers of layer 6 or more that process the SWB signal. In the MDCT-based enhancement layer unit, layers 6 or more layers may be processed based on MDCT, and in the CELP-based enhancement layer unit, layers 6 or more layers may be processed based on CELP.
한편, 도 18의 단계들은 타겟 신호의 모든 트랙에서 부호화 대상 펄스가 결정될 수 있도록 모든 트랙들에 대하여 순서대로 적용될 수 있다.Meanwhile, the steps of FIG. 18 may be applied to all tracks in order so that the encoding target pulse may be determined in all tracks of the target signal.
지금까지 설명한 실시예에서 후보 펄스를 결정하는 것을 ‘검색’이라고 하고, 부호화 대상 펄스를 결정하는 것을 ‘선택’이라고 하였으나, 본 발명은 이에 한정되지 않으며, ‘검색’과 ‘선택’이 혼용될 수도 있다. 예컨대, 후보 펄스가 검색 혹은 선택될 수 있다. In the above-described embodiments, the determination of the candidate pulse is referred to as 'search', and the determination of the encoding target pulse is referred to as 'selection'. However, the present invention is not limited thereto, and 'search' and 'selection' may be used interchangeably. have. For example, candidate pulses may be retrieved or selected.

도 19는 본 발명에 따른 오디오 신호 부호화 방법의 일 예를 개략적으로 설명하는 순서도이다. 19 is a flowchart schematically illustrating an example of an audio signal encoding method according to the present invention.
도 19를 참조하면, 부호화기는 부호화 대상 펄스를 결정한다(S1910). 부호화기는 오디오 신호의 트랙별 에너지에 따라서 트랙 쌍을 구성하는 트랙들의 중요도를 결정하고, 상기 중요도가 높은 트랙부터 펄스들을 검색하여 부호화 대상 펄스를 결정할 수 있다. Referring to FIG. 19, the encoder determines an encoding target pulse (S1910). The encoder may determine the importance of the tracks constituting the track pair according to the track-specific energy of the audio signal, and determine the encoding target pulse by searching for the pulses from the track of high importance.
이때, 부호화기는 (1) 트랙 쌍을 구성하는 트랙들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와 인접한 위치의 펄스를 현재 트랙의 부호화 대상 펄스로 선택할 수 있다. 또한, 부호화기는 (2) 트랙 쌍을 구성하는 트랙들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와 가장 먼 위치의 펄스를 현재 트랙의 부호화 대상 펄스로 선택할 수도 있다. In this case, the encoder may select (1) a pulse at a position adjacent to a pulse selected as an encoding target pulse in a track of higher importance among tracks constituting the track pair as an encoding target pulse of the current track. Also, the encoder may select (2) the pulse of the position furthest from the pulse selected as the encoding target pulse in the track of the higher importance among the tracks constituting the track pair as the encoding target pulse of the current track.
부호화기는 최상위 중요도의 트랙에서는 부호화 대상 펄스들을 검색(부호화 대상 펄스와 동일한 개수의 펄스를 검색)하고, 최상위 중요도 미만의 트랙들에서는 부호화 대상 펄스의 개수보다 소정 개수 더 많은 펄스들을 검색할 수도 있다. 이때, 펄스들은 절대값이 큰 순서대로 검색될 수 있다. 절대값의 크기는 수식 2를 기반으로 결정될 수 있다. The encoder may search for the pulses to be encoded in the tracks of the most significant importance (search for the same number of pulses as the pulses to be encoded), and may search for a predetermined number more pulses than the number of the pulses to be encoded in the tracks below the most significant importance. In this case, the pulses may be searched in the order of increasing absolute value. The magnitude of the absolute value may be determined based on Equation 2.
(1) 의 방법을 사용하는 경우, 부호화기는 상술한 바와 같이 검색된 펄스들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와 인접한 펄스들을 현재 트랙의 부호화 대상 펄스로서 선택할 수 있다. (2)의 방법을 사용하는 경우에, 부호화기는 상술한 바와 같이 검색된 펄스들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와 가장 먼 위치의 펄스를 현재 트랙의 부호화 대상 펄스로 선택할 수 있다. In the case of using the method of (1), the encoder may select, as the encoding target pulses of the current track, pulses adjacent to the pulse selected as the encoding target pulse in the track of the higher importance among the retrieved pulses as described above. In the case of using the method (2), as described above, the encoder may select, as the encoding target pulse of the current track, a pulse that is farthest from the pulse selected as the encoding target pulse in the track of the higher importance among the retrieved pulses.
(1)과 (2)의 방법에서, 선택 가능한 펄스의 조합이 복수 존재하는 경우에는, 현재 트랙에서 검색된 펄스들 중 절대값이 큰 순서대로 부호화 대상 펄스들을 선택할 수 있다. In the methods of (1) and (2), when there are a plurality of combinations of selectable pulses, the encoding target pulses can be selected in the order of the largest absolute value among the pulses found in the current track.
(1)의 방법을 사용할 때, 인접한 펄스가 없는 경우에도, 현재 트랙에서 검색된 펄스들 중 절대값이 큰 순서대로 부호화 대상 펄스가 선택될 수 있다. When using the method of (1), even when there are no adjacent pulses, the encoding target pulses may be selected in the order of the largest absolute value among the pulses searched in the current track.
(1)의 방법은 도 12 및 도 13의 예에서 구체적으로 설명한 바와 같다. (2)의 방법은 도 14 및 도 15의 예에서 구체적으로 설명한 바와 같다. The method of (1) is as described in detail in the examples of FIGS. 12 and 13. The method of (2) is as described in detail in the examples of FIGS. 14 and 15.
한편, 상술한 바와 같이, 부호화기는 트랙 쌍을 구성하는 트랙들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와의 위치 관계를 기반으로 부호화 대상 펄스를 선택할 수 있다. 이 경우, 부호화 대상 펄스의 선택 기준은 적응적으로 결정될 수 있다.Meanwhile, as described above, the encoder may select the encoding target pulse based on the positional relationship with the pulse selected as the encoding target pulse in the track of the higher importance among the tracks constituting the track pair. In this case, the selection criteria of the encoding target pulse may be adaptively determined.
예컨대, 부호화기는 트랙 쌍을 구성하는 트랙들의 에너지가 고르게 분포된 경우에는, 트랙 쌍을 구성하는 트랙들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와 인접한 펄스들을 현재 트랙의 부호화 대상 펄스로서 선택하고, 트랙 쌍을 구성하는 트랙들의 에너지가 특정 대역에 밀집된 경우에는, 트랙 쌍을 구성하는 트랙들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스로부터 떨어져 있는 펄스들을 상기 현재 트랙의 부호화 대상 펄스로서 선택할 수 있다. For example, when the energy of tracks constituting the track pair is evenly distributed, the encoder selects, as the encoding target pulse of the current track, pulses adjacent to the pulse selected as the encoding target pulse in the track of higher importance among the tracks constituting the track pair. When the energy of the tracks constituting the track pair is concentrated in a specific band, pulses that are separated from the pulse selected as the encoding target pulse in the track of higher importance among the tracks constituting the track pair are used as the encoding target pulse of the current track. You can choose.
또한, 부호화기는 트랙 쌍을 구성하는 트랙들이 토널(tonal)인 경우에는, 트랙 쌍을 구성하는 트랙들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스로부터 떨어져 있는 펄스들을 현재 트랙의 부호화 대상 펄스로서 선택하고, 트랙 쌍을 구성하는 트랙들이 토널이 아닌 경우에는, 트랙 쌍을 구성하는 트랙들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와 인접한 펄스들을 현재 트랙의 부호화 대상 펄스로서 선택할 수도 있다. In addition, when the tracks constituting the track pair are tonal, the coder uses pulses that are separated from the pulse selected as the encoding target pulse in the track of higher importance among the tracks constituting the track pair as the encoding target pulse of the current track. If the tracks constituting the track pair are not tonal, the pulses adjacent to the pulse selected as the encoding target pulse in the track of higher importance among the tracks constituting the track pair may be selected as the encoding target pulse of the current track.
이와 관련한 방법은 도 17의 예에서 구체적으로 설명한 바와 같다.The related method is as described in detail in the example of FIG. 17.
또한, 부호화기는 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스들을 기반으로 한 임펄스 응답과의 ‘컨벌루션’과 ‘오디오 신호’ 사이의 MSE(Mean Square Error)가 작은 순서대로 현재 트랙의 부호화 대상 펄스를 선택할 수도 있다. In addition, the encoder may select the encoding target pulse of the current track in order of decreasing mean square error (MSE) between the 'convolution' and the 'audio signal' based on the pulse response selected based on the pulses selected as the encoding target pulse in the track of higher importance. You can also choose.
이때, 컨벌루션은 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스들 및 상기 현재 트랙에서 검색된 펄스들 중 하나의 펄스를 임펄스 응답과 컨벌루션한 것일 수 있다. In this case, the convolution may be a convolution of a pulse selected as a pulse to be encoded in a track of higher importance and one of the pulses searched in the current track with an impulse response.
또한, 컨벌루션은 각 트랙에서 펄스를 검색하는 과정에서도 이용될 수 있는데, 이 경우의 컨벌루션은 임펄스 응답과 현재 트랙 내 특정 펄스와의 컨벌루션일 수 있다. 이 컨벌루션과 오디오 신호 간의 MSE가 작은 순서대로 현재 트랙의 후보 펄스로서 검색될 수 있다. Convolution may also be used in the process of searching for pulses in each track. In this case, the convolution may be a convolution of an impulse response and a specific pulse in the current track. The MSE between this convolution and the audio signal can be retrieved as candidate pulses of the current track in small order.
이와 관련한 방법은 도 18의 예에서 구체적으로 설명한 바와 같다. The related method is as described in detail in the example of FIG. 18.
한편, 트랙 내에서 펄스의 위치는 펄스의 부호를 고려하여 변경될 수 있다. 이와 관련한 내용은 앞서 설명한 바와 같다.On the other hand, the position of the pulse in the track can be changed in consideration of the sign of the pulse. The content is as described above.
부호화기는 선택된 부호화 대상 펄스를 양자화한다(S1920). 양자화 된 펄스들은 부호화되여 비트스트림으로 전송 혹은 저장될 수 있다.The encoder quantizes the selected encoding target pulse (S1920). Quantized pulses may be encoded and transmitted or stored in a bitstream.
도 20은 본 발명에 따른 오디오 신호 복호화 방법의 일 예를 개략적으로 설명하는 순서도이다.20 is a flowchart schematically illustrating an example of an audio signal decoding method according to the present invention.
도 20을 참조하면, 복호화기는 오디오 신호에 대한 펄스를 생성한다(S2010). 오디오 신호에 대한 펄스는 역양자화를 기반으로 수신한 오디오 데이터로부터 유도될 수 있다. Referring to FIG. 20, the decoder generates a pulse for an audio signal (S2010). The pulse for the audio signal may be derived from the received audio data based on dequantization.
펄스들은 오디오 신호에서 트랙 쌍을 구성하는 트랙들 중 중요도가 높은 트랙에서부터 검색 혹은 선택되었던 것으로서, (1) 트랙 쌍을 구성하는 트랙들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와의 위치 관계를 기반으로 선택된 펄스들일 수도 있고, (2) 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스들을 기반으로 한 임펄스 응답과의 컨벌루션과 상기 오디오 신호 사이의 MSE(Mean Square Error)가 작은 순서대로 선택된 펄스들일 수도 있다.The pulses were searched or selected from the tracks having the highest importance among the tracks constituting the track pair in the audio signal. (1) The positional relationship with the pulse selected as the encoding target pulse in the track of the higher importance among the tracks constituting the track pair. (2) pulses in which the convolution with the impulse response based on the pulses selected as encoding target pulses in the track of higher importance and the MSE (Mean Square Error) between the audio signals are selected in order of decreasing order. It may be.
(1)에 해당하는 펄스들의 경우에 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와 인접한 위치의 펄스들이 현재 트랙에 대한 펄스들일 수 있다. 이와 관련한 내용은 도 12 및 도 13의 예에서 구체적으로 설명한 바와 같다. In the case of pulses corresponding to (1), the pulses at positions adjacent to the pulse selected as the encoding target pulse in the track of higher importance may be pulses for the current track. The related contents are the same as those described in detail with reference to FIGS. 12 and 13.
또한, (1)에 해당하는 펄스들의 경우에 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와 가장 먼 위치의 펄스들이 현재 트랙에 대한 펄스들일 수 있다. 이와 관련한 내용은 도 14 및 도 15의 예에서 설명한 바와 같다. In addition, in the case of the pulses corresponding to (1), the pulses farthest from the pulse selected as the encoding target pulse in the track of the higher importance may be pulses for the current track. The related contents are the same as those described with reference to FIGS. 14 and 15.
(1)에 해당하는 펄스인지 (2)에 해당하는 펄스인지가 오디오 신호의 특성에 따라서 적응적으로 결정된 것일 수도 있다. 이와 관련한 내용은 도 17의 예에서 설명한 바와 같다. Whether the pulse corresponds to (1) or the pulse corresponding to (2) may be adaptively determined according to the characteristics of the audio signal. In this regard, the contents are the same as those described in the example of FIG. 17.
(2)에 해당하는 펄스들은 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스들을 기반으로 한 임펄스 응답과의 ‘컨벌루션’과 ‘오디오 신호’ 사이의 MSE(Mean Square Error)가 작은 순서대로에 선택된 펄스들일 수 있다. 이때, 컨벌루션은 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스들 및 현재 트랙에서 검색된 펄스들 중 하나의 펄스를 임펄스 응답과 컨벌루션한 것일 수 있다. 또한, 현재 트랙에서 검색된 펄스들은, 임펄스 응답과의 컨벌루션과 오디오 신호 간의 MSE가 작은 순서대로 선택된 펄스들일 수 있다. (2)에 관해서는 도 18의 예에서 설명한 바와 같다. The pulses corresponding to (2) are pulses selected in order of decreasing mean square error (MSE) between 'convolution' and 'audio signal' with the impulse response based on the pulses selected as encoding target pulses in the track of higher importance. Can be entered. In this case, the convolution may be a convolution of one pulse among pulses selected as encoding target pulses in a track of higher importance and pulses searched in the current track. In addition, the pulses retrieved in the current track may be pulses selected in order of MSE between the convolution with the impulse response and the audio signal. (2) has been described with reference to the example of FIG.
한편, 트랙 내에서 펄스의 위치는 펄스의 부호를 고려하여 변경된 위치일 수 있다. 이와 관련한 내용은 앞서 설명한 바와 같다. On the other hand, the position of the pulse in the track may be a position changed in consideration of the sign of the pulse. The content is as described above.
복호화기는 생성된 펄스들을 기반으로 오디오 신호를 복원할 수 있다(S2020). The decoder may reconstruct the audio signal based on the generated pulses (S2020).

상술한 예시들에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 상술한 실시예들은 다양한 양태의 예시들을 포함한다. 예컨대, 상술한 실시형태들을 서로 조합하여 실시할 수도 있으며, 이 역시 본 발명에 따른 실시형태에 속한다. 본 발명은 이하의 특허청구범위 내에 속하는 본 발명의 기술적 사상에 따른 다양한 수정 및 변경을 포함한다.In the above examples, the methods are described based on a flowchart as a series of steps or blocks, but the present invention is not limited to the order of steps, and any steps may occur in a different order or simultaneously from other steps as described above. have. In addition, the above-described embodiments include examples of various aspects. For example, the above-described embodiments may be implemented in combination with each other, which also belongs to the embodiments according to the present invention. The invention includes various modifications and changes in accordance with the spirit of the invention within the scope of the claims below.


Claims (19)

  1. 오디오 신호의 트랙별 에너지에 따라서 트랙 쌍을 구성하는 트랙들의 중요도를 결정하고, 상기 중요도가 높은 트랙부터 펄스들을 검색하여 부호화 대상 펄스를 결정하는 단계; 및
    상기 결정된 부호화 대상 펄스의 정보를 양자화 하는 단계를 포함하는 것을 특징으로 하는 오디오 신호 부호화 방법.
    Determining importance of tracks constituting a track pair according to track-specific energy of an audio signal, and searching for pulses from the track of high importance to determine an encoding target pulse; And
    And quantizing the information of the determined encoding target pulse.
  2. 제1항에 있어서, 상기 부호화 대상 펄스를 결정하는 단계에서는,
    상기 트랙 쌍을 구성하는 트랙들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와 인접한 위치의 펄스를 현재 트랙의 부호화 대상 펄스로 선택하는 것을 특징으로 하는 오디오 신호 부호화 방법.
    The method of claim 1, wherein the determining of the encoding target pulse comprises:
    And a pulse at a position adjacent to a pulse selected as an encoding target pulse in a track of higher importance among tracks constituting the track pair as an encoding target pulse of the current track.
  3. 제2항에 있어서, 최상위 중요도의 트랙에서는 부호화 대상 펄스들이 검색되고, 최상위 중요도 미만의 트랙들에서는 부호화 대상 펄스의 개수보다 소정 개수 더 많은 펄스들이 검색되며,
    상기 검색된 펄스들 중 상기 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와 인접한 펄스들이 상기 현재 트랙의 부호화 대상 펄스로서 선택되는 것을 특징으로 하는 오디오 신호 부호화 방법.
    The method of claim 2, wherein the pulses to be encoded are searched for the tracks of the highest importance, and the predetermined number more pulses are searched for the tracks less than the highest importance.
    And pulses adjacent to the pulse selected as the encoding target pulse in the track of the higher importance among the retrieved pulses are selected as the encoding target pulse of the current track.
  4. 제3항에 있어서, 펄스들은 절대값이 큰 순서대로 검색되는 것을 특징으로 하는 오디오 부호화 방법.4. The audio encoding method according to claim 3, wherein the pulses are searched in the order of increasing absolute value.
  5. 제3항에 있어서, 상기 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와 인접한 펄스들이 복수 존재하는 경우에는, 펄스의 절대값이 큰 순서대로 상기 현재 트랙의 부호화 대상 펄스로 선택되는 것을 특징으로 하는 오디오 신호 부호화 방법.The method according to claim 3, wherein when there are a plurality of adjacent pulses adjacent to the pulse selected as the encoding target pulse in the track of higher importance, the absolute values of the pulses are selected as the encoding target pulse of the current track. Audio signal coding method.
  6. 제3항에 있어서, 상기 현재 트랙에서 검색된 펄스들 중 상기 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와 인접한 펄스가 없는 경우에는,
    상기 현재 트랙에서 검색된 펄스들 중 절대값이 큰 펄스들이 순서대로 부호화 대상 펄스로서 선택되는 것을 특징으로 하는 오디오 신호 부호화 방법.
    The method of claim 3, wherein when there are no pulses adjacent to a pulse selected as an encoding target pulse in the track of the higher importance among the pulses searched in the current track,
    The audio signal encoding method of claim 1, wherein pulses having a large absolute value among the pulses found in the current track are sequentially selected as pulses to be encoded.
  7. 제1항에 있어서, 상기 부호화 대상 펄스를 결정하는 단계에서는,
    상기 트랙 쌍을 구성하는 트랙들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와 가장 먼 위치의 펄스를 현재 트랙의 부호화 대상 펄스로 선택하는 것을 특징으로 하는 오디오 신호 부호화 방법.
    The method of claim 1, wherein the determining of the encoding target pulse comprises:
    And selecting a pulse at a position farthest from a pulse selected as an encoding target pulse in a track of higher importance among tracks constituting the track pair as an encoding target pulse of the current track.
  8. 제7항에 있어서, 최상위 중요도의 트랙에서는 부호화 대상 펄스들이 검색되고, 최상위 중요도 미만의 트랙들에서는 부호화 대상 펄스의 개수보다 소정 개수 더 많은 펄스들이 검색되며,
    상기 검색된 펄스들 중 상기 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와 가장 먼 위치의 펄스를 상기 현재 트랙의 부호화 대상 펄스로 선택하는 것을 특징으로 하는 오디오 신호 부호화 방법.
    The method of claim 7, wherein the encoding target pulses are searched for tracks of the highest importance level, and a predetermined number more pulses are searched for the tracks of the highest importance level than the number of encoding target pulses.
    And selecting a pulse at a position farthest from the pulse selected as the encoding target pulse in the track of the higher importance among the retrieved pulses as the encoding target pulse of the current track.
  9. 제8항에 있어서, 펄스들은 절대값이 큰 순서대로 검색되는 것을 특징으로 하는 오디오 신호 부호화 방법.10. The audio signal encoding method of claim 8, wherein the pulses are searched in the order of increasing absolute value.
  10. 제8항에 있어서, 상기 현재 트랙에서 복수의 펄스가 부호화 대상 펄스로서 선택되는 경우에, 상기 현재 트랙의 부호화 대상 펄스들은 상기 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스들과의 거리가 먼 순서대로 선택되는 것을 특징으로 하는 오디오 신호 부호화 방법.9. The method of claim 8, wherein, when a plurality of pulses are selected as encoding target pulses in the current track, the encoding target pulses of the current track are farther from the pulses selected as encoding target pulses in the track of higher importance. The audio signal encoding method characterized by the above-mentioned.
  11. 제1항에 있어서, 상기 부호화 대상 펄스를 결정하는 단계에서는,
    상기 트랙 쌍을 구성하는 트랙들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와의 위치 관계를 기반으로 부호화 대상 펄스가 선택되는 것을 특징으로 하는 오디오 신호 부호화 방법.
    The method of claim 1, wherein the determining of the encoding target pulse comprises:
    And an encoding target pulse is selected based on a positional relationship with a pulse selected as an encoding target pulse in a track of higher importance among tracks constituting the track pair.
  12. 제11항에 있어서, 상기 트랙 쌍을 구성하는 트랙들의 에너지가 고르게 분포된 경우에는, 상기 트랙 쌍을 구성하는 트랙들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와 인접한 펄스들이 상기 현재 트랙의 부호화 대상 펄스로서 선택되고,
    상기 트랙 쌍을 구성하는 트랙들의 에너지가 특정 대역에 밀집된 경우에는, 상기 트랙 쌍을 구성하는 트랙들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스로부터 떨어져 있는 펄스들이 상기 현재 트랙의 부호화 대상 펄스로서 선택되는 것을 특징으로 하는 오디오 신호 부호화 방법.
    12. The method of claim 11, wherein when energy of tracks constituting the track pair is evenly distributed, pulses adjacent to a pulse selected as an encoding target pulse in a track of higher importance among tracks constituting the track pair are adjacent to the current track. Is selected as the pulse to be encoded,
    When the energy of the tracks constituting the track pair is concentrated in a specific band, pulses that are separated from the pulse selected as the encoding target pulse in the track of higher importance among the tracks constituting the track pair are used as the encoding target pulse of the current track. Audio signal encoding method characterized in that the selected.
  13. 제11항에 있어서, 상기 트랙 쌍을 구성하는 트랙들이 토널(tonal)인 경우에는, 상기 트랙 쌍을 구성하는 트랙들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스로부터 떨어져 있는 펄스들이 상기 현재 트랙의 부호화 대상 펄스로서 선택되고,
    상기 트랙 쌍을 구성하는 트랙들이 토널이 아닌 경우에는, 상기 트랙 쌍을 구성하는 트랙들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와 인접한 펄스들이 상기 현재 트랙의 부호화 대상 펄스로서 선택되는 것을 특징으로 하는 오디오 신호 부호화 방법.
    12. The method of claim 11, wherein when the tracks constituting the track pair are tonal, pulses apart from a pulse selected as an encoding target pulse in a track of higher importance among the tracks constituting the track pair are the current track. Is selected as the encoding target pulse of,
    If the tracks constituting the track pair are not tonal, pulses adjacent to a pulse selected as an encoding target pulse in a track of higher importance among tracks constituting the track pair are selected as encoding target pulses of the current track. An audio signal encoding method.
  14. 제1항에 있어서, 상기 부호화 대상 펄스를 결정하는 단계에서는,
    상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스들을 기반으로 한 임펄스 응답과의 컨벌루션과 상기 오디오 신호 사이의 MSE(Mean Square Error)가 작은 순서대로 현재 트랙의 부호화 대상 펄스로서 선택되는 것을 특징으로 하는 오디오 신호 부호화 방법.
    The method of claim 1, wherein the determining of the encoding target pulse comprises:
    Convolution with an impulse response based on pulses selected as encoding target pulses in a track of higher importance and an MSE (Mean Square Error) between the audio signals are selected as encoding target pulses of the current track in small order. Signal coding method.
  15. 제14항에 있어서, 상기 컨벌루션은 상기 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스들 및 상기 현재 트랙에서 검색된 펄스들 중 하나의 펄스를 임펄스 응답과 컨벌루션한 것을 특징으로 하는 오디오 신호 부호화 방법.15. The audio signal encoding method of claim 14, wherein the convolution convolves one of the pulses selected as encoding target pulses in the higher importance track and one of the pulses retrieved in the current track with an impulse response.
  16. 제15항에 있어서, 상기 현재 트랙에서 검색된 펄스들은,
    임펄스 응답과의 컨벌루션과 상기 오디오 신호 간의 MSE가 작은 순서대로 선택된 펄스인 것을 특징으로 하는 오디오 신호 부호화 방법.
    16. The method of claim 15, wherein the pulses retrieved in the current track are:
    And an MSE between the convolution with an impulse response and the audio signal is a pulse selected in small order.
  17. 역양자화를 기반으로, 오디오 신호의 트랙 쌍을 구성하는 트랙들 중 중요도가 높은 트랙에서부터 선택되었던 펄스들을 생성하는 단계; 및
    상기 펄스들을 기반으로 음성 신호를 복원하는 단계를 포함하며,
    트랙의 에너지가 높을수록 상기 트랙의 중요도가 높은 것을 특징으로 하는 오디오 신호 복호화 방법.
    Generating pulses that have been selected from tracks of high importance among tracks constituting a track pair of the audio signal based on inverse quantization; And
    Restoring a speech signal based on the pulses;
    And the higher the energy of the track, the higher the importance of the track.
  18. 제17항에 있어서, 상기 펄스들은,
    상기 트랙 쌍을 구성하는 트랙들 중 상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스와의 위치 관계를 기반으로 선택된 펄스들인 것을 특징으로 하는 오디오 신호 복호화 방법.
    The method of claim 17, wherein the pulses,
    And pulses selected based on a positional relationship with a pulse selected as an encoding target pulse in a track of higher importance among tracks constituting the track pair.
  19. 제17항에 있어서, 상기 펄스들은,
    상위 중요도의 트랙에서 부호화 대상 펄스로서 선택된 펄스들을 기반으로 한 임펄스 응답과의 컨벌루션과 상기 오디오 신호 사이의 MSE(Mean Square Error)가 작은 순서대로 선택된 펄스들인 것을 특징으로 하는 오디오 신호 복호화 방법.
    The method of claim 17, wherein the pulses,
    A convolution with an impulse response based on pulses selected as encoding target pulses in a track of a higher importance level and an MSE (Mean Square Error) between the audio signals are pulses selected in a small order.
PCT/KR2013/007505 2012-08-21 2013-08-21 Audio signal encoding method, audio signal decoding method, and apparatus using same WO2014030928A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261691275P 2012-08-21 2012-08-21
US61/691,275 2012-08-21
US201361842396P 2013-07-03 2013-07-03
US61/842,396 2013-07-03

Publications (1)

Publication Number Publication Date
WO2014030928A1 true WO2014030928A1 (en) 2014-02-27

Family

ID=50150168

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2013/007505 WO2014030928A1 (en) 2012-08-21 2013-08-21 Audio signal encoding method, audio signal decoding method, and apparatus using same

Country Status (1)

Country Link
WO (1) WO2014030928A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018525606A (en) * 2015-07-30 2018-09-06 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. Laser sensor for particle density detection

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030009325A1 (en) * 1998-01-22 2003-01-09 Raif Kirchherr Method for signal controlled switching between different audio coding schemes
US20040064310A1 (en) * 2001-05-07 2004-04-01 Yutaka Banba Sub-band adaptive differential pulse code modulation/encoding apparatus, sub-band adaptive differential pulse code modulation/encoding method, wireless transmission system, sub-band adaptive differential pulse code modulation/decoding apparatus, sub-band adaptive differential pulse code modulation/decoding method, and wirel
KR20100086032A (en) * 2007-11-06 2010-07-29 노키아 코포레이션 Audio coding apparatus and method thereof
KR20100093504A (en) * 2009-02-16 2010-08-25 한국전자통신연구원 Method and apparatus for encoding and decoding audio signal using adaptive sinusoidal pulse coding
WO2011087332A2 (en) * 2010-01-15 2011-07-21 엘지전자 주식회사 Method and apparatus for processing an audio signal

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030009325A1 (en) * 1998-01-22 2003-01-09 Raif Kirchherr Method for signal controlled switching between different audio coding schemes
US20040064310A1 (en) * 2001-05-07 2004-04-01 Yutaka Banba Sub-band adaptive differential pulse code modulation/encoding apparatus, sub-band adaptive differential pulse code modulation/encoding method, wireless transmission system, sub-band adaptive differential pulse code modulation/decoding apparatus, sub-band adaptive differential pulse code modulation/decoding method, and wirel
KR20100086032A (en) * 2007-11-06 2010-07-29 노키아 코포레이션 Audio coding apparatus and method thereof
KR20100093504A (en) * 2009-02-16 2010-08-25 한국전자통신연구원 Method and apparatus for encoding and decoding audio signal using adaptive sinusoidal pulse coding
WO2011087332A2 (en) * 2010-01-15 2011-07-21 엘지전자 주식회사 Method and apparatus for processing an audio signal

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018525606A (en) * 2015-07-30 2018-09-06 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. Laser sensor for particle density detection

Similar Documents

Publication Publication Date Title
JP4950210B2 (en) Audio compression
CA2853987C (en) Scalable compressed audio bit stream and codec using a hierarchical filterbank and multichannel joint coding
KR100304092B1 (en) Audio signal coding apparatus, audio signal decoding apparatus, and audio signal coding and decoding apparatus
CA2704812C (en) An encoder for encoding an audio signal
Ravelli et al. Union of MDCT bases for audio coding
US20090234644A1 (en) Low-complexity encoding/decoding of quantized MDCT spectrum in scalable speech and audio codecs
KR20100086031A (en) Technique for encoding/decoding of codebook indices for quantized mdct spectrum in scalable speech and audio codecs
EP1905005A1 (en) Method and apparatus to encode/decode low bit-rate audio signal
CN102272831A (en) Selective scaling mask computation based on peak detection
KR102048076B1 (en) Voice signal encoding method, voice signal decoding method, and apparatus using same
EP1441330B1 (en) Method of encoding and/or decoding digital audio using time-frequency correlation and apparatus performing the method
US9240192B2 (en) Device and method for efficiently encoding quantization parameters of spectral coefficient coding
WO2014030928A1 (en) Audio signal encoding method, audio signal decoding method, and apparatus using same
US20100292986A1 (en) encoder
JPH05265499A (en) High-efficiency encoding method
WO2009022193A2 (en) Devices, methods and computer program products for audio signal coding and decoding
RU2409874C2 (en) Audio signal compression
US8924202B2 (en) Audio signal coding system and method using speech signal rotation prior to lattice vector quantization
US20100280830A1 (en) Decoder
Vasilache Entropic encoding of lattice codevectors based on product code indexing
WO2008114078A1 (en) En encoder

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: 13830902

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13830902

Country of ref document: EP

Kind code of ref document: A1