This application claims the benefit of International Application No. PCT/KR2009/003854, filed Jul. 14, 2009, and claims the benefit of Korean Application No. 10-2008-0068370, filed Jul. 14, 2008, and Korean Application No. 10-2009-0061607, filed Jul. 7, 2009, the disclosures of all of which are incorporated herein by reference.
The present invention relates to an apparatus and method for integrally encoding and decoding a speech signal and an audio signal. More particularly, the present invention relates to an apparatus and method that may solve a signal distortion problem, resulting from a change of a selected module according to a frame progress, to thereby change a module without distortion, when a codec includes at least two encoding/decoding modules, operating with different structures, and selects and operates one of the at least two encoding/decoding modules according to an input characteristic for each frame.
Speech signals and audios signal have different characteristics. Therefore, speech codecs for the speech signals and audio codecs for the audio signals have been independently researched using unique characteristics of speech signals and audio signals, and standard codecs have been developed for each of the speech codecs and the audio codecs.
Currently, as a communication service and a broadcasting service are integrated or converged, there is a need to integrally process a speech signal and an audio signal having various types of characteristics, using a single codec. However, existing speech codecs or audio codecs may not provide a performance demanded of a unified codec. Specifically, an audio codec having the best performance may not provide a satisfactory performance with respect to a speech signal, and a speech codec having the best performance may not provide a satisfactory performance with respect to an audio signal. Therefore, the existing codecs are not used for the unified speech/audio codec.
Accordingly, there is a need for a technology that may select a corresponding module according to a characteristic of an input signal to optimally encode and decode a corresponding signal.
An aspect of the present invention provides an apparatus and method for integrally encoding and decoding a speech signal and an audio signal that may combine a speech codec module and an audio codec module and selectively apply a codec module according to a characteristic of an input signal to thereby enhance a performance.
Another aspect of the present invention also provides an apparatus and method for integrally encoding and decoding a speech signal and an audio signal that may use information of a previous module until a selected codec module is changed over time to thereby solve distortion occurring due to a discontinuous module operations.
Another aspect of the present invention also provides an apparatus and method for integrally encoding and decoding a speech signal and an audio signal that may use an additional scheme when previous module information for overlapping is not provided from a Modified Discrete Cosine Transform (MDCT) module demanding a time-domain aliasing cancellation (TDAC) operation to thereby enable the TDAC operation and perform a normal MDCT-based codec operation.
According to an aspect of the present invention, there is provided an encoding apparatus for integrally encoding a speech signal and an audio signal, the encoding apparatus including: a module selection unit to analyze a characteristic of an input signal and to select a first encoding module for encoding a first frame of the input signal; a speech encoding unit to encode the input signal according to a selection of the module selection unit and to generate a speech bitstream; an audio encoding unit to encode the input signal according to the selection of the module selection unit and to generate an audio bitstream; and a bitstream generation unit to generate an output bitstream from the speech encoding unit or the audio encoding unit according to the selection of the module selection unit.
In this instance, the encoding apparatus may further include: a module buffer to store a module identifier (ID) of the selected first encoding module, and to transmit information of a second encoding module corresponding to a previous frame of the first frame to the speech encoding unit and the audio encoding unit; and an input buffer to store the input signal and to output a previous input signal that is an input signal of the previous frame. The bitstream generation unit may combine the module ID of the selected first encoding module and a bitstream thereof to generate the output bitstream.
Also, the module selection unit may extract the module ID of the selected first encoding module to transfer the extracted module ID to the module buffer and the bitstream generation unit.
Also, the speech encoding unit may include: a first speech encoder to encode the input signal to a Code Excitation Linear Prediction (CELP) structure when the first encoding module is identical to the second encoding module; and an encoding initialization unit to determine an initial value for encoding of the first speech encoder when the first encoding module is different from the second encoding module.
Also, when the first encoding module is identical to the second encoding module, the first speech encoder may encode the input signal using an internal initial value of the first speech encoder. When the first encoding module is different from the second encoding module, the first speech encoder may encode the input signal using an initial value that is determined by the encoding initialization unit.
Also, the encoding initialization unit may include: a Linear Predictive Coder (LPC) analyzer to calculate an LPC coefficient with respect to the previous input signal; a Linear Spectrum Pair (LSP) converter to convert the calculated LPC coefficient to an LSP value; an LPC residual signal calculator to calculate an LPC residual signal using the previous input signal and the LPC coefficient; and an encoding initial value decision unit to determine the initial value for encoding of the first speech encoder using the LPC coefficient, the LSP value, and the LPC residual signal.
Also, the audio encoding unit may include: a first audio encoder to encode the input signal through a Modified Discrete Cosine Transform (MDCT) operation when the first encoding module is identical to the second encoding module; a second speech encoder to encode the input signal to a CELP structure when the first encoding module is different from the second encoding module; a second audio encoder to encode the input signal through the MDCT operation when the first encoding module is different from the second encoding module; and a multiplexer to select one of an output of the first audio encoder, an output of the second speech encoder, and an output of the second audio encoder to generate the output bitstream.
Also, when the first encoding module is different from the second encoding module, the second speech encoder may encode an input signal corresponding to a front ½ sample of the first frame.
Also, the second audio encoder may include: a zero input response calculator to calculate a zero input response with respect to an LPC filter after terminating an encoding operation of the second speech encoder; a first converter to convert, to zero, an input signal corresponding to a front ½ sample of the first frame; and a second converter to subtract the zero input response from an input signal corresponding to a rear ½ sample of the first frame. The second audio encoder may encode a converted signal of the first converter and a converted signal of the second converter.
According to another aspect of the present invention, there is provided a decoding apparatus for integrally decoding a speech signal and an audio signal, the decoding apparatus including: a module selection unit to analyze a characteristic of an input bitstream and to select a first decoding module for decoding a first frame of the input bitstream; a speech decoding unit to decode the input bitstream according to a selection of the module selection unit and to generate the speech signal; an audio decoding unit to decode the input bitstream according to the selection of the module selection unit and to generate the audio signal; and an output generation unit to select one of the speech signal of the speech decoding unit and the audio signal of the audio signal according to the selection of the module selection unit and to output an output signal.
In this instance, the decoding apparatus may further include: a module buffer to store a module ID of the selected first decoding module, and to transmit information of a second decoding module corresponding to a previous frame of the first frame to the speech decoding unit and the audio decoding unit; and an output buffer to store the output signal and to output a previous output signal that is an output signal of the previous frame.
Also, the audio decoding unit may include: a first audio decoder to decode the input bitstream through an Inverse MDCT (IMDCT) operation when the first decoding module is identical to the second decoding module; a second speech decoder to decode the input bitstream to a CELP structure when the first decoding module is different from the second decoding module; a second audio decoder to decode the input bitstream through the IMDCT operation when the first decoding module is different from the second decoding module; and a signal restoration unit to calculate a final output from an output of the second speech decoder and an output of the second audio decoder; and an output selector to select and output one of an output of the signal restoration unit and an output of the first audio decoder.
According to example embodiments, there are an apparatus and method for integrally encoding and decoding a speech signal and an audio signal that may combine a speech codec module and an audio codec module and selectively apply a codec module according to a characteristic of an input signal to thereby enhance a performance.
According to example embodiments, there are an apparatus and method for integrally encoding and decoding a speech signal and an audio signal that may use information of a previous module until a selected codec module is changed over time to thereby solve distortion occurring due to a discontinuous module operations.
According to example embodiments, there are an apparatus and method for integrally encoding and decoding a speech signal and an audio signal that may use an additional scheme when previous module information for overlapping is not provided from a Modified Discrete Cosine Transform (MDCT) module demanding a time-domain aliasing cancellation (TDAC) operation to thereby enable the TDAC operation and perform a normal MDCT-based codec operation.
Reference will now be made in detail to embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. The embodiments are described below in order to explain the present invention by referring to the figures.
Here, it is assumed that a unified codec includes two encoding modules and two decoding modules, where a speech encoding module and a speech decoding module are in a Code Excitation Linear Prediction (CELP) structure, and an audio encoding module and an audio decoding module perform a Modified Discrete Cosine Transform (MDCT) operation.
Referring to
Also, the encoding apparatus 100 may further include a module buffer 120 and an input buffer 160.
The module selection unit 110 may analyze a characteristic of an input signal to select a first encoding module for encoding a first frame of the input signal. Here, the first frame may be a current frame of the input signal. Also, the module selection unit 110 may analyze the input signal to determine a module identifier (ID) for encoding the current frame, and may transfer the input signal to the selected first encoding module and input the module ID into the bitstream generation unit 150.
The module buffer 120 may store a module ID of the selected first encoding module, and transmit information of a second encoding module corresponding to a previous frame of the first frame to the speech encoding unit 130 and the audio encoding unit 140.
The input buffer 160 may store the input signal and output a previous input signal that is an input signal of the previous frame. Specifically, the input buffer 160 may store the input signal and output the previous input signal one frame prior to the current frame.
The speech encoding unit 130 may encode the input signal according to a selection of the module selection unit 110 to generate a speech bitstream. Hereinafter, the speech encoding unit 130 will be described in detail with reference to
Referring to
When the first encoding module is different from the second encoding module, the encoding initialization unit 210 may determine an initial value for encoding of the first speech encoder 220. Specifically, the encoding initialization unit 210 may receive a previous module and determine the initial value for the first speech encoder 220 only when a previous frame has performed an MDCT operation. Here, the encoding initialization unit 210 may include a Linear Predictive Coder (LPC) analyzer 211, a Linear Spectrum Pair (LSP) converter 212, an LPC residual signal calculator 213, and an encoding initial value decision unit 214.
The LPC analyzer 211 may calculate an LPC coefficient with respect to the previous input signal. Specifically, the LPC analyzer 212 may receive the previous input signal to perform an LPC analysis using the same scheme as the first speech encoder 220 and thereby calculate and output the LPC coefficient corresponding to the previous input signal.
The LSP converter 212 may convert the calculated LPC coefficient to an LSP value.
The LPC residual signal calculator 213 may calculate an LPC residual signal using the previous input signal and the LPC coefficient.
The encoding initial value decision unit 214 may determine the initial value for encoding of the first speech encoder 220 using the LPC coefficient, the LSP value, and the LPC residual signal. Specifically, the encoding initial value decision unit 214 may determine and output the initial value in a form, required by the first speech encoder 220, using the LPC coefficient, the LSP value, the LPC residual signal, and the like.
When the first encoding module is identical to the second encoding module, the first speech encoder 220 may encode the input signal to a CELP structure. Here, when the first encoding module is identical to the second encoding module, the first speech encoder 220 may encode the input signal using an internal initial value of the first speech encoder 220. When the first encoding module is different from the second encoding module, the first speech encoder 220 may encode the input signal using an initial value that is determined by the encoding initialization unit 210. For example, the first speech encoder 220 may receive a previous module having performed encoding for a previous frame one frame prior to a current frame. When the previous frame has performed a CELP operation, the first speech encoder 220 may encode an input signal corresponding to the current frame using a CELP scheme. In this case, the first speech encoder 220 may perform a consecutive CELP operation and thus continue with an encoding operation using internally provided previous information to generate a bitstream. When the previous frame has performed an MDCT operation, the first speech encoder 220 may erase all the previous information for CELP encoding, and perform the encoding operation using the initial value, provided from the encoding initialization unit 210, to generate the bitstream.
Referring again to
Referring to
When the first encoding module is identical to the second encoding module, the first audio encoder 330 may encode the input signal through an MDCT operation. Specifically, the first audio encoder 330 may receive a previous module. When the previous frame has performed the MDCT operation, the first audio encoder 330 may encode an input signal corresponding to a current frame using the MDCT operation to thereby generate a bitstream. The generated bitstream may be input into the multiplexer 340.
Referring to
When the first encoding module is different from the second encoding module, the second speech encoder 310 may encode the input signal to a CELP structure. Here, the second speech encoder 310 may receive the previous module. When the previous frame 411 has performed a CELP operation, the second speech encoder 310 may encode signal x1 to output the bitstream, and may input the bitstream into the multiplexer 340. When the previous frame 411 has performed the CELP operation, the second speech encoder 310 may be consecutively connected to the previous frame 411 and thus perform the encoding operation without initialization. When the previous frame 411 has performed the MDCT operation, the second speech encoder 310 may not perform any operation.
When the first encoding module is different from the second encoding module, the second audio encoder 320 may encode the input signal through the MDCT operation. Here, the second audio encoder 320 may receive the previous module. When the previous frame 411 has performed the CELP operation, the second audio encoder 320 may encode the input signal using any one of the following first through third schemes. The first scheme may encode the input signal according to the existing MDCT operation. The second scheme may modify the input signal to be x1=0, and encode the result using a scheme according to the existing MDCT operation. The third scheme may calculate a zero input response x3430 with respect to an LPC filter obtained after the second speech encoder 310 terminates the encoding operation of signal x1, and may modify signal x2 according to x2=x2−x3 and modify the input signal based on x1=0, and encode the result according to the existing MDCT operation. A signal restoration operation of an audio decoding module (not shown) may be determined depending on a scheme adopted by the second audio encoder 320. When the previous frame has performed the MDCT operation, the second audio encoder 320 may not perform any operation.
For the above encoding operation, the second audio encoder 320 may include a zero input response calculator (not shown) to calculate a zero input response with respect to an LPC filter after terminating an encoding operation of the second speech encoder 310, a first converter (not shown) to convert, to zero, an input signal corresponding to a front ½ sample of the first frame, and a second converter (not shown) to subtract the zero input response from an input signal corresponding to a rear ½ sample of the first frame. The second audio encoder 320 may encode a converted signal of the first converter and a converted signal of the second converter.
The multiplexer 340 may select one of an output of the first audio encoder 330, an output of the second speech encoder 310, and an output of the second audio encoder 330 to generate an output bitstream. Here, the multiplexer 340 may combine bitstreams to generate a final bitstream. When the previous frame performed the MDCT operation, the final bitstream may be the same as the output bitstream of the first audio encoder 330.
Referring again to
Referring to
The module selection unit 510 may analyze a characteristic of an input bitstream to select a first decoding module for decoding a first frame of the input bitstream. Specifically, the module selection unit 510 may analyze a module, transmitted from the input bitstream, to output a module ID and to transfer the input bitstream to a corresponding decoding module.
The speech decoding unit 530 may decode the input bitstream according to a selection of the module selection unit 510 to generate a speech signal. Specifically, the speech decoding unit 530 may perform a CELP-based speech decoding operation. Hereinafter, the speech decoding unit 530 will be further described in detail with reference to
Referring to
When the first decoding module is different from the second decoding module, the decoding initialization unit 610 may determine an initial value for decoding of the first speech decoder 620. Specifically, the decoding initialization unit 610 may receive a previous module. Only when a previous frame has performed an MDCT operation may the decoding initialization unit 610 determine the initial value to be provided for the first speech decoder 620. Here, the decoding initialization unit 610 may include an LPC analyzer 611, an LSP converter 612, an LPC residual signal calculator 613, and a decoding initial value decision unit 614.
The LPC analyzer 611 may calculate an LPC coefficient with respect to the previous output signal. Specifically, the LPC analyzer 611 may receive the previous output signal to perform an LPC analysis using the same scheme as the first speech decoder 620 and thereby calculate and output an LPC coefficient corresponding to the previous output signal.
The LSP converter 612 may convert the calculated LPC coefficient to an LSP value.
The LPC residual signal calculator 613 may calculate an LPC residual signal using the previous output signal and the LPC coefficient.
The decoding initial value decision unit 614 may determine the initial value for decoding of the first speech decoder 620 using the LPC coefficient, the LSP value, and the LPC residual signal. Specifically, the decoding initial value decision unit 614 may determine and output the initial value in a form, required by the first speech decoder 620, using the LPC coefficient, the LPC value, the LPC residual signal, and the like.
When the first decoding module is identical to the second decoding module, the first speech decoder 620 may decode the input bitstream to a CELP structure. Here, when the first decoding module is identical to the second decoding module, the first speech decoder 620 may decode the input bitstream using an internal initial value of the first speech decoder 620. When the first decoding module is different from the second decoding module, the first speech decoder 620 may decode the input bitstream using an initial value that is determined by the decoding initialization unit 610. Specifically, the first speech decoder 620 may receive a previous module having performed decoding for a previous frame one frame prior to a current frame. When the previous frame has performed a CELP operation, the first speech decoder 620 may decode input bitstream corresponding to the current frame using a CELP scheme. In this case, the first speech decoder 620 may perform a consecutive CELP operation and thus continue with a decoding operation using internally provided previous information to generate an output signal. When the previous frame has performed an MDCT operation, the first speech decoder 620 may erase all the previous information for CELP decoding, and perform the decoding operation using the initial value, provided from the decoding initialization unit 610, to generate the output signal.
Referring again to
Referring to
When the first decoding module is identical to the second decoding module, the first audio decoder 730 may decode the input bitstream through an Inverse MDCT (IMDCT) operation. Specifically, the first audio decoder 730 may receive a previous module. When a previous frame has performed the IMDCT operation, the first audio decoder 730 may decode an input bitstream corresponding to the current frame using the IMDCT operation to thereby generate an output signal. Specifically, the first audio decoder 730 may receive an input bitstream of the current frame, perform the IMDCT operation according to an existing technology, apply a window to thereby perform a time-domain aliasing cancellation (TDAC) operation, and output a final output signal. When the previous frame performs a CELP operation, the first audio decoder 730 may not perform any operation.
Referring to
When the first decoding module is different from the second decoding module, the second audio decoder 720 may decode the input bitstream through the IMDCT operation. Here, after the IMDCT operation, the second audio decoder 720 may apply only a window and obtain an output signal without performing the TDAC operation. Also, in
The signal restoration unit 740 may calculate a final output from an output of the second speech decoder 710 and an output of the second audio decoder 720. Also, the signal restoration unit 710 may obtain a final output signal of the current frame and define the output signals as gh 850 as shown in
wherein h denotes the output signal corresponding to a rear ½ sample of the first frame, b denotes an output signal of the second audio decoder 720, x4 denotes an output signal of the second speech decoder 710, w1 and w2 denote windows, w1R denotes a signal that is generated by performing a time-axis rotation for w1 based on a ½ frame length, and x4R denotes a signal that is generated by performing the time-axis rotation for x4 based on a ½ frame length.
A second scheme may obtain h according to the following Equation 2:
where h denotes the output signal corresponding to the rear ½ sample of the first frame, b denotes the output signal of the second audio decoder 720, and w2 denotes a window.
A third scheme may obtain h according to the following Equation 3:
where h denotes the output signal corresponding to the rear ½ sample of the first frame, b denotes the output signal of the second audio decoder 720, w2 denotes a window, and x5840 denotes a zero input response with respect to an LPC filter after decoding the output signal of the second speech decoder 710.
When the previous frame has performed the MDCT operation, the second speech decoder 710, the second audio decoder 720, and the signal restoration unit 740 may not perform any operation.
The output selector 750 may select and output one of an output of the signal restoration unit 740 and an output of the first audio decoder 730.
Referring again to
The module buffer 520 may store a module ID of the selected first decoding module, and transmit information of a second decoding module corresponding to a previous frame of the first frame to the speech decoding unit 530 and the audio decoding unit 540. Specifically, the module buffer 520 may store the module ID to output a previous module corresponding to a previous module ID that is one frame prior to a current frame.
The output buffer 560 may store the output signal and output a previous output signal that is an output signal of the previous frame.
Referring to
In operation 920, the encoding method may determine whether the determined module type is a speech module or an audio module.
When the determined module type is the speech module in operation 920, the encoding method may determine whether the module type is changed in operation 930.
When the module type is not changed in operation 930, the encoding method may perform a CELP encoding operation according to an existing technology in operation 950. Conversely, when the module type is changed in operation 930, the encoding method may perform an initialization according to an operation of the encoding initialization module to determine an initial value, and perform the CELP encoding operation using the initial value in operation 960.
When the determined module type is the audio module in operation 920, the encoding method may determine whether the module type is changed in operation 940.
When the module type is changed in operation 940, the encoding method may perform an additional encoding process in operation 970. During the additional encoding process, the encoding method may perform a CELP-based encoding for an input signal corresponding to a ½ frame length and perform a second audio encoding operation for the entire frame length. Conversely, when the module type is not changed in operation 940, the encoding method may perform an MDCT-based encoding operation according to an existing technology in operation 980.
In operation 990, the encoding method may select and output a final bitstream according to the module type and depending on whether the module type is changed.
Referring to
In operation 1002, the decoding method may determine whether the determined module type is a speech module or an audio module.
When the determined module type is the speech module in operation 1002, the decoding method may determine whether the module type is changed in operation 1003.
When the module type is not changed in operation 1003, the decoding method may perform a CELP decoding operation according to an existing technology in operation 1005. Conversely, when the module type is changed in operation 1003, the decoding method may perform an initialization according to an operation of the decoding initialization module to obtain an initial value, and perform the CELP decoding operation using the initial value in operation 1006.
When the determined module type is the audio module in operation 1002, the decoding method may determine whether the module type is changed in operation 1004.
When the module type is changed in operation 1004, the decoding method may perform an additional decoding process in operation 1007. During the additional decoding process, the decoding method may perform a CELP-based decoding for the input bitstream to obtain an output signal corresponding to a ½ frame length, and perform a second audio decoding operation for the input bitstream.
Conversely, when the module type is not changed in operation 1004, the decoding method may perform an MDCT-based decoding operation according to an existing technology in operation 1008.
In operation 1009, the decoding method may perform a signal restoration operation to obtain an output signal. In operation 1010, the decoding method may select and output a final signal according to the module type and depending on whether the module type is changed.
As described above, according to embodiments of the present invention, there may be provided an apparatus and method for integrally encoding and decoding a speech signal and an audio signal that may unify a speech codec module and an audio codec module, selectively apply a codec module according to a characteristic of an input signal, and thereby may enhance a performance.
Also, according to embodiments of the present invention, when a selected codec module is changed over time, information associated with a previous module may be used. Through this, it is possible to solve distortion occurring due to a discontinuous module operation. In addition, when previous module information for overlapping is not provided from an MDCT module demanding a TDAC operation, an additional scheme may be adopted. Accordingly, the TDAC operation may be enabled to thereby perform a normal MDCT-based codec operation.
Although a few embodiments of the present invention have been shown and described, the present invention is not limited to the described embodiments. Instead, it would be appreciated by those skilled in the art that changes may be made to these embodiments without departing from the principles and spirit of the invention, the scope of which is defined by the claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
10-2008-0068370 | Jul 2008 | KR | national |
10-2009-0061607 | Jul 2009 | KR | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/KR2009/003854 | 7/14/2009 | WO | 00 | 1/14/2011 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2010/008175 | 1/21/2010 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
6658383 | Koishida et al. | Dec 2003 | B2 |
7596486 | Ojala et al. | Sep 2009 | B2 |
7860709 | Makinen | Dec 2010 | B2 |
7876966 | Ojanpera | Jan 2011 | B2 |
8069034 | Makinen et al. | Nov 2011 | B2 |
8244525 | Makinen | Aug 2012 | B2 |
20050187759 | Malah et al. | Aug 2005 | A1 |
20070106502 | Kim et al. | May 2007 | A1 |
20080010062 | Son et al. | Jan 2008 | A1 |
20080027719 | Kirshnan et al. | Jan 2008 | A1 |
Number | Date | Country |
---|---|---|
101202042 | Jun 2008 | CN |
11-175098 | Jul 1999 | JP |
2007-538283 | Dec 2007 | JP |
10-0614496 | Aug 2006 | KR |
2007083931 | Jul 2007 | WO |
WO 2008016945 | Feb 2008 | WO |
2008045846 | Apr 2008 | WO |
Entry |
---|
Jari Mäkinen et al., “AMR-WB+: A New Audio Coding Standard for 3rd Generation Mobile Audio Services”, Proceedings. ICASSP 2005, IEEE, Mar. 18-23, 2005, pp. II 1109-II 1112. |
Number | Date | Country | |
---|---|---|---|
20110119054 A1 | May 2011 | US |