KR20070091512A - Method and apparatus for error concealment of decoded audio signal - Google Patents
Method and apparatus for error concealment of decoded audio signal Download PDFInfo
- Publication number
- KR20070091512A KR20070091512A KR1020060049040A KR20060049040A KR20070091512A KR 20070091512 A KR20070091512 A KR 20070091512A KR 1020060049040 A KR1020060049040 A KR 1020060049040A KR 20060049040 A KR20060049040 A KR 20060049040A KR 20070091512 A KR20070091512 A KR 20070091512A
- Authority
- KR
- South Korea
- Prior art keywords
- error
- concealing
- frame
- frequency domain
- concealment
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
Abstract
Description
도 1은 본 발명에 의한 복호화된 오디오 신호의 오류 은폐 방법을 포함하는 오디오 신호를 복호화하는 방법에 대한 일 실시예를 흐름도로 도시한 것이다.1 is a flowchart illustrating an embodiment of a method of decoding an audio signal including a method of error concealment of a decoded audio signal according to the present invention.
도 2은 본 발명에 의한 복호화된 오디오 신호의 오류 은폐 장치를 포함하는 오디오 신호를 복호화하는 장치에 대한 일 실시예를 블록도로 도시한 것이다.2 is a block diagram illustrating an embodiment of an apparatus for decoding an audio signal including an error concealment apparatus of a decoded audio signal according to the present invention.
도 3은 BSAC에서 복수의 계층(layer)으로 구성된 비트스트림(bitstream)의 구조를 개념도로 도시한 것이다.3 is a conceptual diagram illustrating a structure of a bitstream composed of a plurality of layers in a BSAC.
도 4a는 오류가 존재하지 않는 이전 프레임(frame)의 스펙트럼 에너지(spectrum energy)를 도시한 그래프이다.4A is a graph showing the spectrum energy of the previous frame in which no error exists.
도 4b는 오류가 존재하는 현재 프레임의 스펙트럼 에너지를 도시한 그래프이다.4B is a graph showing the spectral energy of the current frame in which an error exists.
도 5는 시간 영역(time domain)에서 오류를 은폐(concealment)하는 방식을 사용하는 변환(transition)을 설명하기 위한 개념도를 도시한 것이다.FIG. 5 is a conceptual diagram illustrating a transition using a method of concealing an error in a time domain.
도 6은 시간 영역에서 WSOLA 방식과 프레임 보간법(frame interpolation)을 이용하여 오류를 복원하는 방식을 개념도로 도시한 것이다.6 is a conceptual diagram illustrating a method of recovering an error using a WSOLA method and frame interpolation in the time domain.
도 7은 n 프레임에 WSOLA 방식을 적용하는 일 실시예를 개념도로 도시한 것 이다.7 is a conceptual diagram illustrating an embodiment of applying the WSOLA scheme to n frames.
도 8은 프레임 보간법을 적용하는 일 실시예를 개념도로 도시한 것이다.8 is a conceptual diagram illustrating an embodiment of applying frame interpolation.
〈도면의 주요 부호에 대한 간단한 설명〉<Brief description of the major symbols in the drawings>
200: 비트스트림 입력부 205: 헤더 분석부200: bitstream input unit 205: header analyzer
210: 복호화부 225: 판단부210: decryption unit 225: determination unit
230: 제1 선택부 235: 오류위치 검출부230: first selection unit 235: error position detection unit
240: 제2 선택부 253: 주파수영역 은폐부240: second selector 253: frequency domain concealment
256: 시간영역 은폐부 260: 역변환부256: time domain concealment unit 260: inverse transform unit
본 발명은 BSAC과 같이 복수의 계층(layer)으로 구성된 오디오 데이터(audio data)를 복호화하는 장치에 관한 것으로, 보다 상세하게는 복호화된 비트스트림(bitstream)에서 오류(error)를 복원하여 은폐(concealment)하는 방법 및 장치에 관한 것이다.The present invention relates to an apparatus for decoding audio data composed of a plurality of layers, such as BSAC. More particularly, the present invention relates to a concealment by recovering an error from a decoded bitstream. And a method and apparatus.
T-DMB 또는 IP 망과 같은 유무선 망을 통하여 부호화된 오디오 신호를 전송하는 과정에서 오류가 발생한다. 이러한 경우 오류를 적절하게 처리하지 않으면, 어노잉 디스토션(annoying distortion)이 발생하여 음질이 상당히 저하된다.An error occurs in the process of transmitting the encoded audio signal through a wired or wireless network such as T-DMB or IP network. In this case, if the error is not handled properly, annoying distortion can occur, resulting in a significant degradation in sound quality.
종래에는 이러한 오디오 신호의 오류를 은폐하기 위하여 오류가 발생한 프레임에서 소리의 음량을 작게 함으로써 오류가 출력에 미치는 영향을 줄이는 뮤 팅(muting) 방식, 이전 프레임(frame)의 데이터를 오류가 발생한 프레임에 복사하여 복원하는 반복(repetition) 방식, 오류가 발생한 프레임의 시간 영역 샘플(time domain sample)을 이전 프레임으로부터 보간법(interpolation) 또는 보외법(extrainterpolation)을 수행하여 복원하는 방식 등이 있다.Conventionally, in order to conceal the error of the audio signal, a muting method that reduces the effect of the error on the output by reducing the volume of sound in the error frame, the data of the previous frame (frame) in the error frame There may be a repetition method of copying and restoring, and a method of restoring a time domain sample of an error-prone frame by performing interpolation or extrainterpolation from a previous frame.
그러나 종래에는 오디오 신호에 존재하는 오류를 은폐하기 위해서 오류가 발생한 부분만을 복원하는 것이 아니라 오류를 포함하는 단위 프레임에 해당하는 데이터를 모두 다른 프레임을 이용하여 복원하므로 데이터의 손실이 많게 되는 문제점을 갖는다. 이에 의하여 출력되는 음질이 저하되는 문제점을 갖는다. However, conventionally, in order to conceal an error existing in an audio signal, not only a portion in which an error occurs is restored, but all data corresponding to a unit frame including an error are restored by using another frame, thereby causing a large data loss. . As a result, the output sound quality is deteriorated.
본 발명이 이루고자 하는 기술적 과제는, 복호화된 비트 스트림의 오류를 은폐하는 방식에 있어서 주파수 영역 또는 시간 영역 가운데 선택하여 오류를 은폐하고, 주파수 영역에서 오류를 은폐하는 방식이 선택된 경우 프레임에서 오류가 존재하는 위치를 검출하여 그 이후의 위치에 해당하는 부분만 오류를 은폐하는 복원된 오디오 신호의 오류 은폐 방법 및 장치를 제공하는 것이다.An object of the present invention is to conceal an error by selecting from a frequency domain or a time domain in a method of concealing an error of a decoded bit stream, and an error exists in a frame when a method of concealing an error in a frequency domain is selected. The present invention provides a method and apparatus for error concealment of a restored audio signal that detects a position to conceal an error only in a portion corresponding to a later position.
상기의 과제를 이루기 위한 본 발명에 의한 복호화된 오디오 신호의 오류 은폐 방법은, 복호화된 비트스트림(bitstream)의 프레임(frame)에 오류(error)가 있는지 여부를 판단하는 단계, 상기 프레임에 오류가 있다고 판단되면, 기 설정된 기준에 의해 주파수 영역(frequency domain)에서 오류를 은폐(concealment)하는 방식 또는 시간 영역(time domain)에서 오류를 은폐하는 방식 가운데 선택하는 단계 및 상기 선택된 방식에 따라 오류를 은폐하는 단계를 포함하는 것을 특징으로 한다.According to an embodiment of the present invention, an error concealment method of a decoded audio signal includes determining whether an error exists in a frame of a decoded bitstream. If it is determined, the method of concealing the error in the frequency domain (concealment) or a method of concealing the error in the time domain according to a predetermined criterion and concealing the error according to the selected method Characterized in that it comprises a step.
상기의 과제를 이루기 위한 본 발명에 의한 복호화된 오디오 신호의 오류 은폐 방법은, 오류가 있는 복호화된 비트스트림의 프레임에 대하여 기 설정된 기준에 의해 주파수 영역에서 오류를 은폐하는 방식 또는 시간 영역에서 오류를 은폐하는 방식 가운데 선택하는 단계 및 상기 선택된 방식에 따라 오류를 은폐하는 단계를 포함하는 것을 특징으로 한다.The error concealment method of the decoded audio signal according to the present invention for achieving the above object is a method of concealing an error in the frequency domain or a time concealment of the error in a time domain by a predetermined criterion for the frame of the decoded bitstream having an error. Selecting a concealment scheme and concealing an error according to the selected scheme.
전술된 발명을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체인 것을 특징으로 한다.And a computer readable recording medium having recorded thereon a program for executing the above-described invention on a computer.
상기의 과제를 이루기 위한 본 발명에 의한 복호화된 오디오 신호의 오류 은폐 장치는, 오류가 있는 복호화된 비트스트림의 프레임을 검출하는 오류 프레임 검출부, 상기 검출된 프레임에 대하여 기 설정된 기준에 의해 주파수 영역에서 오류를 은폐하는 방식 또는 시간 영역에서 오류를 은폐하는 방식 가운데 선택하는 은폐방식 선택부 및 상기 선택된 방식에 따라 오류를 은폐하는 오류 은폐부를 포함하는 것을 특징으로 한다.An error concealment apparatus of a decoded audio signal according to the present invention for achieving the above object is an error frame detection unit for detecting a frame of an error-decoded bitstream, in the frequency domain based on a predetermined reference to the detected frame And a concealment method selection unit for selecting among a method of concealing an error or a method of concealing an error in a time domain, and an error concealment unit for concealing an error according to the selected method.
상기의 과제를 이루기 위한 본 발명에 의한 복호화된 오디오 신호의 오류 은폐 장치는, 오류가 있는 복호화된 비트스트림의 프레임에 대하여 기 설정된 기준에 의해 주파수 영역에서 오류를 은폐하는 방식 또는 시간 영역에서 오류를 은폐하는 방식 가운데 선택하는 은폐방식 선택부 및 상기 선택된 방식에 따라 오류를 은폐하는 오류 은폐부를 포함하는 것을 특징으로 한다.The error concealment apparatus of the decoded audio signal according to the present invention for achieving the above object, the error concealment in the frequency domain or the manner of concealing the error in the frequency domain by a predetermined reference to the frame of the decoded bitstream with the error And a concealment method selection unit for selecting among concealment methods and an error concealment unit for concealing errors according to the selected method.
이하, 첨부된 도면들을 참조하여 본 발명에 따른 복호화된 오디오 신호의 오 류 은폐 방법 및 장치에 대해 상세히 설명한다.Hereinafter, a method and apparatus for error concealment of a decoded audio signal according to the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명에 의한 복호화된 오디오 신호의 오류 은폐 방법을 포함하는 오디오 신호를 복호화하는 방법에 대한 일 실시예를 흐름도로 도시한 것이다.1 is a flowchart illustrating an embodiment of a method of decoding an audio signal including a method of error concealment of a decoded audio signal according to the present invention.
먼저, MPEG-4 시스템(system) 또는 MPEG TS 등과 같은 상위 레벨(level)의 시스템으로부터 비트스트림(bitstream)을 입력받는다(제100단계).First, a bitstream is received from a system of a higher level such as MPEG-4 system or MPEG TS (step 100).
제100단계에서 입력받은 비트스트림으로부터 헤더(header)를 추출하여 헤더에 포함된 정보를 분석한다(제105단계).In
제105단계 후에, 제100단계에서 입력받은 비트스트림을 복호화한다(제110단계).After
제115단계는 본 발명에 의한 복호화된 오디오 신호의 오류 은폐 방법으로 제110단계에서 복호화된 비트스트림에 존재하는 오류를 은폐(concealment)한다(제115단계).In
제110단계에서 복호화된 비트스트림의 현재 프레임(frame)에 오류(error)가 있는지 여부를 판단한다(제120단계).In
제120단계에서 현재 프레임에 오류가 있는지 여부는 다음과 같은 세 가지 방식을 이용하여 판단할 수 있다. In
첫째, 시스템으로부터 전달되고 프레임의 오류 여부를 나타내는 정보를 포함하는 CRC 등을 이용하여 현재 프레임에 오류가 있는지 여부를 판단한다.First, it is determined whether there is an error in the current frame by using a CRC or the like transmitted from the system and including information indicating whether the frame is in error.
둘째, 부호화기로부터 전송받은 비트스트림의 길이와 제110단계에서 복호화된 비트스트림의 길이를 비교하여 현재 프레임에 오류가 있는지 여부를 판단한다. 프레임에 오류가 있는 경우 복호화된 비트스트림의 길이는 부호화기로부터 전송받은 비트스트림의 길이과 비교하면 소정의 오차가 발생한다. 또한, 프레임에 오류가 없는 경우 부호화기로부터 전송받은 비트스트림의 길이만큼 복호화에 이용된다. 그러므로 부호화기로부터 전송받은 비트스트림의 길이가 복호화된 비트스트림의 길이와 동일한 경우, 현재 프레임의 비트스트림에 오류가 없는 것으로 판단한다. 그리고 부호화기로부터 전송받은 비트스트림의 길이가 복호화된 비트스트림의 길이와 다를 경우, 현재 프레임의 비트스트림에 오류가 있는 것으로 판단한다.Second, by comparing the length of the bit stream received from the encoder with the length of the bit stream decoded in
셋째, 비트스트림의 헤더에 포함된 단위 프레임의 비트수와 제100단계에서 입력받은 비트스트림의 비트수를 비교하여 현재 프레임에 오류가 있는지 여부를 판단한다. 예를 들어, BSAC의 경우 헤더에 마련된 단위 프레임의 길이를 나타내는 frame_length 정보와 제100단계에서 입력받은 비트스트림의 비트수를 비교하여 소정의 임계값 이상 차이가 난다면, 현재 프레임에 오차가 있는 것으로 판단한다.Third, the number of bits of the unit frame included in the header of the bitstream is compared with the number of bits of the bitstream input in
만일 제120단계에서 현재 프레임에 오류가 있다고 판단되면, 현재 프레임의 상태(state)를 분석하여 주파수 영역(frequency domain)에서 오류를 은폐하기 어려운지 여부를 판단한다(제125단계). 도 3에 도시된 BSAC 또는 AAC 등과 같은 복수의 계층(layer)으로 마련된 비트스트림을 이용하는 코덱에서 주파수 영역에서 오류를 은폐하기 어려운지 여부는 윈도우 타입(window type)을 기준으로 판단할 수 있다. MDCT의 특성상 이전 프레임과 현재 프레임의 윈도우 타입이 다를 경우 오류가 없더라도 오버랩 앤드 애드 오퍼레이션(overlap and add operation)이 수행되지 않으므로 원하는 오디오 신호를 생성할 수 없다. 이에 의하여 제125단계에서는 현재 프레임의 상태를 분석하여 이전 프레임의 상태를 고려함으로써 주파수 영역에서 오류를 은폐하기 어려운지 여부를 판단한다.If it is determined in
만일 제125단계에서 현재 프레임에 대하여 주파수 영역에서 오류를 은폐하기 어렵지 않다고 판단되면, 현재 프레임에서 오류가 존재하는 위치를 검출한다(제130단계).If it is determined in
제130단계에서 현재 프레임에 대하여 오류가 존재하는 위치를 검출하는 방식은 다음에 기재된 2가지 방식이 있다.There are two methods for detecting a location where an error exists with respect to the current frame in
첫째, 현재 프레임의 스펙트럼 에너지와 이전 프레임의 스펙트럼 에너지를 비교하여 현재 프레임에 대하여 오류가 존재하는 위치를 검출한다. 왜냐하면 프레임에 오류가 존재하는 경우, 이전 프레임의 스페트럼 에너지에 비하여 현재 프레임의 스펙트럼 에너지가 급격하게 변하기 때문이다. 예를 들어, 도 4a는 오류가 존재하지 않는 이전 프레임의 스펙트럼 에너지를 도시한 그래프이고, 도 4b는 오류가 존재하는 현재 프레임의 스펙트럼 에너지를 도시한 그래프이다. 도 4b를 도 4a와 비교해 보면, 오류가 존재하는 주파수 영역에서 스펙트럼 에너지가 급격하게 변경되는 것을 알 수 있다. 여기서, 다음과 같은 수학식을 이용하여 현재 프레임의 스펙트럼 에너지와 이전 프레임의 스펙트럼 에너지를 비교할 수 있다.First, the spectral energy of the current frame is compared with the spectral energy of the previous frame to detect a location where an error exists for the current frame. This is because when there is an error in a frame, the spectral energy of the current frame changes rapidly compared to the spectrum energy of the previous frame. For example, FIG. 4A is a graph showing the spectral energy of a previous frame in which there is no error, and FIG. 4B is a graph showing the spectral energy of the current frame in which there is an error. Comparing FIG. 4B with FIG. 4A, it can be seen that the spectral energy is drastically changed in the frequency domain where an error exists. Here, the spectral energy of the current frame and the spectral energy of the previous frame may be compared using the following equation.
[수학식 1][Equation 1]
Dt(f) = energy(f,t) - energy(f, t-1)Dt (f) = energy (f, t)-energy (f, t-1)
여기서, Dt(f)는 프레임 간의 스펙트럼 에너지의 변화이며, energy(f,t)는 현재 프레임의 스펙트럼 에너지이고, energy(f, t-1)는 이전 프레임의 스펙트럼 에 너지이다.Where Dt (f) is the change in spectral energy between frames, energy (f, t) is the spectral energy of the current frame, and energy (f, t-1) is the spectral energy of the previous frame.
Dt(f)가 소정의 범위를 벗어나면, 해당하는 위치에 오차가 존재하는 것으로 판단한다.If Dt (f) is out of a predetermined range, it is determined that an error exists at the corresponding position.
또한, 현재 주파수 영역의 스펙트럼 에너지와 이전 주파수 영역의 스펙트럼 에너지를 비교하여 현재 프레임에 대하여 오류가 존재하는 위치를 검출한다. 왜냐하면 프레임에 오류가 존재하는 경우, 이전 주파수 영역의 스페트럼 에너지에 비하여 현재 주파수 영역의 스펙트럼 에너지가 급격하게 변하기 때문이다. 이는 다음과 같은 수학식을 이용하여 현재 주파수 영역의 스펙트럼 에너지와 이전 주파수 영역의 스펙트럼 에너지를 비교할 수 있다.In addition, the spectral energy of the current frequency domain and the spectral energy of the previous frequency domain are compared to detect a position where an error exists for the current frame. This is because if there is an error in the frame, the spectral energy of the current frequency domain is drastically changed compared to the spectrum energy of the previous frequency domain. This can be compared with the spectral energy of the current frequency domain and the spectral energy of the previous frequency domain by using the following equation.
[수학식 2][Equation 2]
Df(f) = energy(f,t) - energy(f-1, t)Df (f) = energy (f, t)-energy (f-1, t)
여기서, Df(f)는 주파수 영역 간의 스펙트럼 에너지의 변화이며, energy(f,t)는 현재 주파수 영역의 스펙트럼 에너지이고, energy(f, t-1)는 이전 주파수 영역의 스펙트럼 에너지이다.Here, Df (f) is the change in spectral energy between frequency domains, energy (f, t) is the spectral energy of the current frequency domain, and energy (f, t-1) is the spectral energy of the previous frequency domain.
Df(f)가 소정의 범위를 벗어나면, 해당하는 위치에 오차가 존재하는 것으로 판단한다.If Df (f) is out of a predetermined range, it is determined that an error exists at the corresponding position.
전술된 방식을 이용하여 오류가 발생한 주파수 대역에 해당하는 계층을 도출한다.Using the above-described method, a layer corresponding to an error frequency band is derived.
둘째, 복호화된 비트스트림의 각 계층마다 할당된 비트를 검사하여 현재 프레임에서 오류가 존재하는 위치를 검출하는 방식이 있다. 복수의 계층으로 마련된 비트스트림의 경우 헤더에 각 계층 별로 할당될 비트수의 정보가 마련되어 있다. 예를 들어, BSAC의 경우 헤더에 각 계층 별로 할당될 비트수를 나타내는 layer_buf_offset이라는 헬프 베리어블(help variable)이 있다. 만일 소정의 계층에 오류가 있는 경우 산술 복호화(arithmetic decoding)시 과도하게 많거나 적게 비트가 사용된다. 그러므로 비트가 과도하게 많거나 적게 사용되는 계층은 현재 계층 또는 이전 계층에 오류가 있을 가능성이 높다.Second, there is a method of detecting a location in which an error exists in a current frame by checking bits allocated to each layer of the decoded bitstream. In the case of a bitstream provided with a plurality of layers, information on the number of bits to be allocated to each layer is provided in a header. For example, in the case of BSAC, there is a help variable called layer_buf_offset indicating the number of bits to be allocated for each layer in the header. If there is an error in a given layer, excessively more or less bits are used in arithmetic decoding. Therefore, layers with too many or fewer bits are more likely to have errors in the current or previous layers.
제130단계에서 검출된 위치가 제1 임계 위치 이전에 마련되었는지 여부를 판단한다(제135단계). 제130단계에서 검출된 위치가 도 3의 기본 계층과 같이 복호화함에 있어서 중요한 역할을 하는 데이터에 해당하는 경우 전체 프레임에 대하여 시간 영역에서 오류를 은폐하는 것이 바람직하기 때문이다. 그러나 도 1에 도시된 바와 달리, 프레임의 전체 주파수 영역에 대하여 주파수 영역에서 오류를 은폐하는 방식을 이용하여 오류를 복원할 수도 있다.In
제135단계에서 제1 임계 위치 이후에 마련되었다고 판단되면, 제130단계에서 검출된 위치가 제2 임계 위치 이후에 마련되었는지 여부를 판단한다(제140단계). 제130단계에서 검출된 위치가 도 3의 N 계층에 해당하는 마지막 계층과 같이 오류가 오디오의 음질에 영향을 거의 미치지 않는 경우 오류를 은폐하지 않아도 되기 때문이다.If it is determined in
제140단계에서 제2 임계 위치 이전에 마련되었다고 판단되면, 현재 프레임을 주파수 영역에서 오류를 은폐한다(제145단계). 제145단계에서는 오류를 은폐함에 있어서 이전 프레임의 데이터를 에러가 발생한 프레임에 복사(copy)하여 복원하는 반복(repetition) 방식을 이용한다. 제130단계에서 검출된 위치 이전의 데이터는 그대로 두고, 제130단계에서 검출된 위치 이후의 데이터는 이전 프레임의 데이터를 복사하여 복원한다. 이에 의하여 BSAC과 같이 복수의 계층으로 비트스트림이 구성되고, 각 계층 별로 주파수 대역이 할당된 경우, 비트스트림의 중간에 오류가 발생하여도 오류가 발생한 이전 계층까지는 그대로 복원이 가능하다. 예를 들어, 제130단계에서 검출된 위치가 8kHz인 경우 8kHz에 해당하는 계층 및 그 이후의 계층은 대응되는 이전 프레임의 계층들로 복사하여 복원한다. 이에 의하여 오류가 발생한 프레임이더라도 오류가 발생하기 이전까지 복호화된 정보를 최대한 반영함으로써 오디오의 음질을 개선할 수 있다.If it is determined in
만일 제125단계에서 현재 프레임에 대하여 주파수 영역에서 오류를 은폐하기 어렵다고 판단되거나 제135단계에서 제1 임계 위치 이전에 마련되었다고 판단되면, 현재 프레임을 시간 영역에서 오류를 은폐한다(제150단계).If it is determined in
제150단계에서 오류를 은폐함에 있어서, 현재 프레임에 대한 정보를 무시하고 이전 프레임에서 유사도가 가장 높은 부분(segment)을 검색하여 보간법(interpolation) 또는 보외법(extrapolation)에 의해 현재 프레임을 복원한다. MDCT가 적용되는 경우 오버랩 앤드 애드 오퍼레이션을 수행하여야 하므로 2개의 PCM 프레임이 손실된다. 이에 의하여 한 프레임에 오류가 발생하면 항상 두 개의 프레임을 복원하여야 한다. 그러므로 제150단계에서는 현재 프레임 뿐만 아니라 이후 프레임도 보간법 또는 보외법을 이용하여 복원하여야 한다. 이를 위해 과거 프레임의 정보를 저장하여 과거 프레임의 정보를 이용함으로써 현재 프레임의 오류 를 은폐한다. 도 5는 시간 영역에서 오류를 은폐하는 방식을 사용하는 변환(transition)을 설명하기 위하여 개념도를 도시한 것이다. 또한, 연속적인 두 개의 PCM 프레임을 적용하여 복원하는 동기식 오버랩 앤드 애드(Synchronous overlap and add)를 이용할 수도 있다.In
도 6을 살펴보면, 현재 프레임에 해당하는 n 프레임에서 오류가 발생하면 50% 오버랩 윈도우에 의해 이후 프레임에 해당하는 (n+1) 프레임에 영향을 미치게 된다. 단순히 과거 신호를 반복적으로 사용하게 되면, 과거의 마지막 프레임, 이후 첫 번째 오류 프레임 및 두 번째 오류 프레임이 연속하여 오류가 발생함으로써 현저하게 음질이 저하될 수 있는 문제점이 발생할 수 있다. 이와 같이 연속하여 오류가 발생하는 문제점을 해결하기 위해 WSOLA 방식과 보간법을 동시에 이용하는 것이 바람직하다. 첫 번째 프레임에 해당하는 n 프레임에는 WSOLA 방식을 적용하고, 두 번째 프레임에 해당하는 (n+1) 프레임에는 프레임 보간법(frame interpolation)을 이용할 수 있다.Referring to FIG. 6, when an error occurs in an n frame corresponding to the current frame, the 50% overlap window affects a (n + 1) frame corresponding to a subsequent frame. If the past signal is simply used repeatedly, a problem may occur in that the sound quality may be significantly degraded because the error occurs in succession of the last frame of the past, the first error frame and the second error frame. In order to solve this problem of continuous error, it is desirable to use the WSOLA method and the interpolation method simultaneously. The WSOLA method may be applied to n frames corresponding to the first frame, and frame interpolation may be used for (n + 1) frames corresponding to the second frame.
첫 번째 프레임에 해당하는 n 프레임에 적용된 WSOLA 방식을 구현하는 일 실시예는 도 7에 도시되어 있다. 먼저, BSAC의 과거 시간 영역의 출력을 버퍼링(buffering)한다. 오류가 발생한 현재 프레임의 바로 이전의 블록(block) 신호를 이용하여 과거 검색 범위(search range)에서 다음과 같은 수학식을 이용하여 상관도(correlation)를 구한다. An embodiment of implementing the WSOLA method applied to n frames corresponding to the first frame is illustrated in FIG. 7. First, the output of the past time domain of the BSAC is buffered. The correlation is obtained by using the following equation in the past search range by using a block signal immediately before the current frame in which an error occurs.
[수학식 3][Equation 3]
여기서, R(d)는 상관도이며, s(n)은 old_buff 신호이고, d는 검색 범위의 샘플 위치를 말한다. Here, R (d) is a correlation, s (n) is an old_buff signal, and d is a sample position of a search range.
수학식 3을 이용하여 구해진 상관도 가운데 가장 높은 상관도를 갖는 파운드 블록(found block)의 위치를 구한 후 파운드 블록과 다음 신호를 복사하여 오류가 발생한 부분에 복사하여 복원한다. 여기서, 복사하여 복원할 때 윈도윙(windowing)을 하게 되는데, 오버랩이 이루어지는 파운드 블록의 부분에는 1차 함수, 다차 함수 및 사인(sine) 함수 등을 사용할 수 있고, 오버랩이 이루어지지 않는 파운드 블록의 부분에는 장방 윈도우(rectangular window)를 사용할 수 있다. 그리고 블록 부분에도 파운드 블록에서 사용한 윈도우와 반대의 위상을 갖는 윈도우를 구하여 파운드 블록의 부분과 오버랩하여 더한다. 여기서, 주의할 점은 오버랩되는 부분에서 두 윈도우 값의 합이 1 이 되도록 윈도우를 설계해야 한다. 이와 동일한 방식을 프레임이 끝날 때까지 반복하여 수행한다. 여기서, 프레임의 크기에 따라 최소 1 이상의 크기로 분할하여 적용할 수 있다. 그리고 수학식 3에 의하면 상관도는 매 샘플 단위로 구하고 있는데 복잡도를 고려하여 2 이상의 정수에 해당하는 샘플 단위로 구할 수도 있다.After finding the position of the found block having the highest correlation among the correlations obtained using Equation 3, the pound block and the next signal is copied and restored to the part where an error occurs. Here, when copying and restoring, windowing is performed, and a first-order function, a multiple-order function, and a sine function can be used for the portion of the pound block in which the overlap is made. The part can use a rectangular window. In addition, a window having a phase opposite to the window used in the pound block is also obtained in the block portion and overlapped with the portion of the pound block. Note that the window should be designed so that the sum of the two window values is 1 in the overlapping part. This same method is repeated until the end of the frame. Here, it may be divided and applied to at least one size according to the size of the frame. In addition, according to Equation 3, the correlation is obtained in every sample unit, but may be obtained in sample units corresponding to two or more integers in consideration of complexity.
또한, 정밀도를 높이기 위해 가장 높은 상관도를 갖는 샘플 주위에 2 이상의 정수에 해당하는 샘플 범위 내에서 1 샘플 단위로 상관도를 추가로 구해서 가장 상관도가 높은 샘플의 위치를 구할 수도 있다. In addition, in order to increase the precision, the correlation may be further obtained in units of one sample within a sample range corresponding to two or more integers around the sample having the highest correlation, and the position of the sample having the highest correlation may be obtained.
두 번째 프레임에 해당하는 (n+1) 프레임에 적용된 프레임 보간법을 구현하는 일 실시예가 도 8에 도시되어 있다. 이전 프레임(old frame, 800)과 이후 오류가 없는 프레임(next good frame, 820)간에 선형 보간법(linear interpolation)을 적용한다. 지연 문제로 인해 미래 신호가 프레임 단위로 마련되어 있으므로 오버랩를 위해 윈도우를 수정하여 릴렉스드 보간법(relaxed interpolation)을 적용한다. 릴렉스드 보간법에서 사용되는 윈도우는 도 8에 도시되어 있다. 여기서 사용되는 윈도우 구조는 장방 윈도우와 1차 함수, 다차 함수, 또는 사인 함수가 사용될 수 있다. 도 8은 1차 함수를 사용하는 윈도우의 일 실시예를 도시한 것이다. 여기서, 주의할 점은 이전 윈도우(800)와 이후 윈도우(820)가 오버랩된 경우 두 위도우 값의 합은 1 이 되어야 한다. 도 8에 의하면 프레임과 동일한 크기의 두 윈도우를 오버랩 앤 애드를 하는 릴렉스드 보간법에 의해서 출력되는 신호는 프레임 크기의 신호에 오버랩 크기(overlap size, OV_SIZE)만큼의 블록이 더해져서 출력된다. 이렇게 더해진 블록의 신호를 이용하여 이후 프레임(820)과 오버랩 앤 애드를 하게 된다. 그리고 보간법에 의하여 복원된 신호의 앞부분은 이전 프레임(800)과 도 7에서 설명한 방식과 동일하게 오버랩 앤 애드가 수행된다.An embodiment of implementing the frame interpolation method applied to the (n + 1) frame corresponding to the second frame is shown in FIG. 8. Linear interpolation is applied between the
제120단계에서 현재 프레임에 오류가 없다고 판단되거나 제140단계에서 제2 임계 위치 이후에 마련된 것으로 판단되거나 제145단계 후에, 역 변환(inverse transform)을 수행하여 최종 오디오 출력을 복원한다(제155단계).In
도 2는 본 발명에 의한 복호화된 오디오 신호의 오류 은폐 장치를 포함하는 오디오 신호를 복호화하는 장치에 대한 일 실시예를 블록도로 도시한 것으로서, 상기 오디오 신호를 복호화하는 장치는 비트스트림 입력부(200), 헤더 분석부(205), 복호화부(210), 복호화된 오디오 신호의 오류 은폐 장치(220) 및 역변환부(260)를 포함하여 이루어진다.2 is a block diagram illustrating an apparatus for decoding an audio signal including an error concealment apparatus of a decoded audio signal according to the present invention, wherein the apparatus for decoding the audio signal includes a
비트스트림 입력부(200)는 MPEG-4 시스템 또는 MPEG TS 등과 같은 상위 레벨의 시스템으로부터 입력 단자 IN을 통하여 비트스트림을 입력받는다.The
헤더 분석부(205)는 비트스트림 입력부(200)에서 입력받은 비트스트림으로부터 헤더를 추출하여 헤더에 포함된 정보를 분석한다.The
복호화부(210)는 비트스트림 입력부(200)에서 입력받은 비트스트림을 복호화한다.The
복호화된 오디오 신호의 오류 은폐 장치(220)는 복호화부(210)에서 복호화된 비트스트림에 존재하는 오류를 은폐한다. 여기서, 복호화된 오디오 신호의 오류 은폐 장치(220)는 판단부(225), 제1 선택부(230), 오류위치 검출부(235), 제2 선택부(240) 및 오류 은폐부(250)를 포함하여 이루어진다.The
판단부(225)는 복호화부(210)에서 복호화된 비트스트림의 현재 프레임에 오류가 있는지 여부를 판단한다. 판단부(225)에서 현재 프레임에 오류가 있는지 여부는 다음과 같은 세 가지 방식을 이용하여 판단할 수 있다. The
첫째, 시스템으로부터 전달되고 프레임의 오류 여부를 나타내는 정포를 포함하는 CRC 등을 이용하여 현재 프레임에 오류가 있는지 여부를 판단한다.First, it is determined whether there is an error in the current frame by using a CRC or the like transmitted from the system and including a cannon indicating whether the frame is in error.
둘째, 부호화기로부터 전송받은 비트스트림의 길이와 복호화부(210)에서 복호화된 비트스트림의 길이를 비교하여 현재 프레임에 오류가 있는지 여부를 판단한다. 프레임에 오류가 있는 경우 복호화된 비트스트림의 길이는 부호화기로부터 전송받은 비트스트림의 길이와 비교하면 소정의 오차가 발생한다. 또한, 프레임에 오류가 없는 경우 부호화기로부터 전송받은 비트스트림의 길이만큼 복호화에 이용된다. 그러므로 부호화기로부터 전송받은 비트스트림의 길이가 복호화된 비트스트림의 길이와 동일한 경우, 현재 프레임의 비트스트림에 오류가 없는 것으로 판단한다. 그리고 부호화기로부터 전송받은 비트스트림의 길이가 복호화된 비트스트림의 길이와 다를 경우, 현재 프레임의 비트스트림에 오류가 있는 것으로 판단한다.Second, by comparing the length of the bit stream received from the encoder with the length of the bit stream decoded by the
셋째, 비트스트림의 헤더에 포함된 단위 프레임의 비트수와 비트스트림 입력부(200)에서 입력받은 비트스트림의 비트수를 비교하여 현재 프레임에 오류가 있는지 여부를 판단한다. 예를 들어, BSAC의 경우 헤더에 마련된 단위 프레임의 길이를 나타내는 frame_length 정보와 비트스트림 입력부(200)에서 입력받은 비트스트림의 비트수를 비교하여 소정의 임계값 이상 차이가 난다면, 현재 프레임에 오차가 있는 것으로 판단한다.Third, by comparing the number of bits of the unit frame included in the header of the bitstream with the number of bits of the bitstream received from the
제1 선택부(230)는 판단부(225)에서 현재 프레임에 오류가 있다고 판단하면, 현재 프레임의 상태를 분석하여 주파수 영역에서 오류를 은폐하기 어려운지 여부를 판단함으로써 주파수 영역에서 오류를 은폐하는 방식 또는 시간 영역에서 오류를 은폐하는 방식 가운데 선택한다. 도 3에 도시된 BSAC 또는 AAC 등과 같은 복수의 계층으로 마련된 비트스트림을 이용하는 코덱에서 주파수 영역에서 오류를 은폐하 기 어려운지 여부는 윈도우 타입을 기준으로 판단할 수 있다. MDCT의 특성상 이전 프레임과 현재 프레임의 윈도우 타입이 다를 경우 오류가 없더라도 오버랩 앤드 애드 오퍼레이션이 수행되지 않으므로 원하는 오디오 신호를 생성할 수 없다. 이에 의하여 제1 선택부(230)에서는 현재 프레임의 상태를 분석하여 이전 프레임의 상태를 고려함으로써 주파수 영역에서 오류를 은폐하기 어려운지 여부를 판단한다. 따라서 제1 선택부(230)는 현재 프레임에 대하여 주파수 영역에서 오류를 은폐하기 어렵다고 판단되면 시간 영역에서 오류를 은폐하는 방식을 선택하고, 현재 프레임에 대하여 주파수 영역에서 오류를 은폐하기 어렵지 않다고 판단되면 주파수 영역에서 오류를 은폐하는 방식을 선택한다.When the
오류위치 검출부(235)는 제1 선택부(230)에서 주파수 영역에서 오류를 은폐하는 방식이 선택되었다면, 현재 프레임에서 오류가 존재하는 위치를 검출한다. 오류위치 검출부(235)에서 현재 프레임에 대하여 오류가 존재하는 위치를 검출하는 방식은 다음에 기재된 두 가지 방식이 있다.If a method of concealing an error in the frequency domain is selected by the
첫째, 현재 프레임의 스펙트럼 에너지와 이전 프레임의 스펙트럼 에너지를 비교하여 현재 프레임에 대하여 오류가 존재하는 위치를 검출한다. 왜냐하면 프레임에 오류가 존재하는 경우, 이전 프레임의 스페트럼 에너지에 비하여 현재 프레임의 스펙트럼 에너지가 급격하게 변하기 때문이다. 예를 들어, 도 4a는 오류가 존재하지 않는 이전 프레임의 스펙트럼 에너지를 도시한 그래프이고, 도 4b는 오류가 존재하는 현재 프레임의 스펙트럼 에너지를 도시한 그래프이다. 도 4b를 도 4a와 비교해 보면, 오류가 존재하는 주파수 영역에서 스펙트럼 에너지가 급격하게 변경 되는 것을 알 수 있다. 여기서, 다음과 같은 수학식을 이용하여 현재 프레임의 스펙트럼 에너지와 이전 프레임의 스펙트럼 에너지를 비교할 수 있다.First, the spectral energy of the current frame is compared with the spectral energy of the previous frame to detect a location where an error exists for the current frame. This is because when there is an error in a frame, the spectral energy of the current frame changes rapidly compared to the spectrum energy of the previous frame. For example, FIG. 4A is a graph showing the spectral energy of a previous frame in which there is no error, and FIG. 4B is a graph showing the spectral energy of the current frame in which there is an error. Comparing FIG. 4B with FIG. 4A, it can be seen that the spectral energy is drastically changed in the frequency domain where an error exists. Here, the spectral energy of the current frame and the spectral energy of the previous frame may be compared using the following equation.
[수학식 4][Equation 4]
Dt(f) = energy(f,t) - energy(f, t-1)Dt (f) = energy (f, t)-energy (f, t-1)
여기서, Dt(f)는 프레임 간의 스펙트럼 에너지의 변화이며, energy(f,t)는 현재 프레임의 스펙트럼 에너지이고, energy(f, t-1)는 이전 프레임의 스펙트럼 에너지이다.Here, Dt (f) is the change in spectral energy between frames, energy (f, t) is the spectral energy of the current frame, and energy (f, t-1) is the spectral energy of the previous frame.
Dt(f)가 소정의 범위를 벗어나면, 해당하는 위치에 오차가 존재하는 것으로 판단한다.If Dt (f) is out of a predetermined range, it is determined that an error exists at the corresponding position.
또한, 현재 주파수 영역의 스펙트럼 에너지와 이전 주파수 영역의 스펙트럼 에너지를 비교하여 현재 프레임에 대하여 오류가 존재하는 위치를 검출한다. 왜냐하면 프레임에 오류가 존재하는 경우, 이전 주파수 영역의 스페트럼 에너지에 비하여 현재 주파수 영역의 스펙트럼 에너지가 급격하게 변하기 때문이다. 이는 다음과 같은 수학식을 이용하여 현재 주파수 영역의 스펙트럼 에너지와 이전 주파수 영역의 스펙트럼 에너지를 비교할 수 있다.In addition, the spectral energy of the current frequency domain and the spectral energy of the previous frequency domain are compared to detect a position where an error exists for the current frame. This is because if there is an error in the frame, the spectral energy of the current frequency domain is drastically changed compared to the spectrum energy of the previous frequency domain. This can be compared with the spectral energy of the current frequency domain and the spectral energy of the previous frequency domain by using the following equation.
[수학식 5][Equation 5]
Df(f) = energy(f,t) - energy(f-1, t)Df (f) = energy (f, t)-energy (f-1, t)
여기서, Df(f)는 주파수 영역 간의 스펙트럼 에너지의 변화이며, energy(f,t)는 현재 주파수 영역의 스펙트럼 에너지이고, energy(f, t-1)는 이전 주파수 영역의 스펙트럼 에너지이다.Here, Df (f) is the change in spectral energy between frequency domains, energy (f, t) is the spectral energy of the current frequency domain, and energy (f, t-1) is the spectral energy of the previous frequency domain.
Df(f)가 소정의 범위를 벗어나면, 해당하는 위치에 오차가 존재하는 것으로 판단한다.If Df (f) is out of a predetermined range, it is determined that an error exists at the corresponding position.
전술된 방식을 이용하여 오류가 발생한 주파수 대역에 해당하는 계층을 도출한다.Using the above-described method, a layer corresponding to an error frequency band is derived.
둘째, 복호화된 비트스트림의 각 계층마다 할당된 비트를 검사하여 현재 프레임에서 오류가 존재하는 위치를 검출하는 방식이 있다. 복수의 계층으로 마련된 비트스트림의 경우 헤더에 각 계층 별로 할당될 비트수의 정보가 마련되어 있다. 예를 들어, BSAC의 경우 헤더에 각 계층 별로 할당될 비트수를 나타내는 layer_buf_offset이라는 헬프 베리어블(help variable)이 있다. 만일 소정의 계층에 오류가 있는 경우 산술 복호화(arithmetic decoding)시 과도하게 많거나 적게 비트가 사용된다. 그러므로 비트가 과도하게 많거나 적게 사용되는 계층은 현재 계층 또는 이전 계층에 오류가 있을 가능성이 높다.Second, there is a method of detecting a location in which an error exists in a current frame by checking bits allocated to each layer of the decoded bitstream. In the case of a bitstream provided with a plurality of layers, information on the number of bits to be allocated to each layer is provided in a header. For example, in the case of BSAC, there is a help variable called layer_buf_offset indicating the number of bits to be allocated for each layer in the header. If there is an error in a given layer, excessively more or less bits are used in arithmetic decoding. Therefore, layers with too many or fewer bits are more likely to have errors in the current or previous layers.
제2 선택부(240)는 오류위치 검출부(235)에서 검출된 오류의 위치를 기준으로 주파수 영역에서 오류를 은폐하는 방식 또는 시간 영역에서 오류를 은폐하는 방식 가운데 선택한다.The
제2 선택부(240)는 오류위치 검출부(235)에서 검출된 위치가 제1 임계 위치 이전에 마련된 경우 시간 영역에서 오류를 은폐하는 방식을 선택하는 것이 바람직하다. 오류위치 검출부(235)에서 검출된 위치가 도 3의 기본 계층과 같이 복호화함에 있어서 중요한 역할을 하는 데이터에 해당하는 경우 전체 프레임에 대하여 시간 영역에서 오류를 은폐하는 것이 바람직하기 때문이다. 그러나 도 1에 도시된 바와 달리, 제2 선택부(240)는 프레임의 전체 주파수 영역에 대하여 주파수 영역에서 오류를 은폐하는 방식을 이용하여 오류를 복원하는 주파수 영역에서 오류를 은폐하는 방식을 선택할 수 있다.The
제2 선택부(240)는 오류위치 검출부(235)에서 검출된 위치가 제2 임계 위치 이후에 마련된 경우 오류를 은폐하지 않고 역변환부(260)로 출력한다. 오류위치 검출부(235)에서 검출된 위치가 도 3의 N 계층에 해당하는 마지막 계층과 같이 오류가 오디오의 음질에 영향을 거의 미치지 않는 경우 오류를 은폐하지 않아도 되기 때문이다.When the position detected by the
제2 선택부(240)는 오류위치 검출부(235)에서 검출된 위치가 제1 임계 위치와 제2 임계 위치 사이에 마련된 경우 주파수 영역에서 오류를 은폐하는 방식을 선택한다.The
오류 은폐부(250)는 현재 프레임의 오류를 복원하여 은폐한다. 여기서, 오류 은폐부(250)는 주파수영역 은폐부(253) 및 시간영역 은폐부(256)를 포함하여 이루어진다.The
주파수영역 은폐부(253)는 주파수 영역에서 현재 프레임의 오류를 은폐한다. 여기서, 주파수영역 은폐부(235)는 현재 프레임의 오류를 은폐함에 있어서 이전 프레임의 데이터를 에러가 발생한 프레임에 복사하여 복원하는 반복 방식을 이용하는 것이 바람직하다. 오류위치 검출부(235)에서 검출된 위치 이전의 데이터는 그대로 두고, 오류위치 검출부(235)에서 검출된 위치 이후의 데이터는 이전 프레임의 데이터를 복사하여 복원한다. 이에 의하여 BSAC과 같이 복수의 계층으로 비트스트림이 구성되고, 각 계층 별로 주파수 대역이 할당된 경우, 비트스트림의 중간에 오류가 발생하여도 오류가 발생한 이전 계층까지는 그대로 복원이 가능하다. 예를 들어, 제130단계에서 검출된 위치가 8kHz인 경우 8kHz에 해당하는 계층 및 그 이후의 계층은 대응되는 이전 프레임의 계층들로 복사하여 복원한다. 이에 의하여 오류가 발생한 프레임이더라도 오류가 발생하기 이전까지 복호화된 정보를 최대한 반영함으로써 오디오의 음질을 개선할 수 있다.The frequency
시간영역 은폐부(256)는 시간 영역에서 현재 프레임의 오류를 은폐한다.The time
시간영역 은폐부(256)에서 오류를 은폐함에 있어서, 현재 프레임에 대한 정보를 무시하고 이전 프레임에서 유사도가 가장 높은 부분을 검색하여 보간법 또는 보외법에 의해 현재 프레임을 복원한다. MDCT가 적용되는 경우 오버랩 앤드 애드 오퍼레이션을 수행하여야 하므로 2개의 PCM 프레임이 손실된다. 이에 의하여 한 프레임에 오류가 발생하면 항상 두 개의 프레임을 복원하여야 한다. 그러므로 시간영역 은폐부(256)에서는 현재 프레임 뿐만 아니라 이후 프레임도 보간법 또는 보외법을 이용하여 복원하여야 한다. 이를 위해 과거 프레임의 정보를 저장하여 과거 프레임의 정보를 이용함으로써 현재 프레임의 오류를 은폐한다. 도 5는 시간 영역에서 오류를 은폐하는 방식을 사용하는 변환을 설명하기 위하여 개념도를 도시한 것이다. 또한, 연속적인 두 개의 PCM 프레임을 적용하여 복원하는 동기식 오버랩 앤드 애드를 이용할 수도 있다.In concealing the error in the time
도 6을 살펴보면, 현재 프레임에 해당하는 n 프레임에서 오류가 발생하면 50% 오버랩 윈도우에 의해 이후 프레임에 해당하는 (n+1) 프레임에 영향을 미치게 된다. 단순히 과거 신호를 반복적으로 사용하게 되면, 과거의 마지막 프레임, 이후 첫 번째 오류 프레임 및 두 번째 오류 프레임이 연속하여 오류가 발생함으로써 현저하게 음질이 저하될 수 있는 문제점이 발생할 수 있다. 이와 같이 연속하여 오류가 발생하는 문제점을 해결하기 위해 WSOLA 방식과 보간법을 동시에 이용하는 것이 바람직하다. 첫 번째 프레임에 해당하는 n 프레임에는 WSOLA 방식을 적용하고, 두 번째 프레임에 해당하는 (n+1) 프레임에는 프레임 보간법을 이용할 수 있다.Referring to FIG. 6, when an error occurs in an n frame corresponding to the current frame, the 50% overlap window affects a (n + 1) frame corresponding to a subsequent frame. If the past signal is simply used repeatedly, a problem may occur in that the sound quality may be significantly degraded because the error occurs in succession of the last frame of the past, the first error frame and the second error frame. In order to solve this problem of continuous error, it is desirable to use the WSOLA method and the interpolation method simultaneously. WSOLA can be applied to n frames corresponding to the first frame, and frame interpolation can be used for (n + 1) frames corresponding to the second frame.
첫 번째 프레임에 해당하는 n 프레임에 적용된 WSOLA 방식을 구현하는 일 실시예는 도 7에 도시되어 있다. 먼저, BSAC의 과거 시간 영역의 출력을 버퍼링(buffering)한다. 오류가 발생한 현재 프레임의 바로 이전의 블록 신호를 이용하여 과거 검색 범위에서 다음과 같은 수학식을 이용하여 상관도를 구한다. An embodiment of implementing the WSOLA method applied to n frames corresponding to the first frame is illustrated in FIG. 7. First, the output of the past time domain of the BSAC is buffered. The correlation is obtained by using the following equation in the past search range by using a block signal immediately before the current frame in which an error occurs.
[수학식 6][Equation 6]
여기서, R(d)는 상관도이며, s(n)은 old_buff 신호이고, d는 검색 범위의 샘플 위치를 말한다. Here, R (d) is a correlation, s (n) is an old_buff signal, and d is a sample position of a search range.
수학식 6을 이용하여 구해진 상관도 가운데 가장 높은 상관도를 갖는 파운드 블록의 위치를 구한 후 파운드 블록과 다음 신호를 복사하여 오류가 발생한 부분에 복사하여 복원한다. 여기서, 복사하여 복원할 때 윈도윙을 하게 되는데, 오버랩이 이루어지는 파운드 블록의 부분에는 1차 함수, 다차 함수 및 사인 함수 등을 사용할 수 있고, 오버랩이 이루어지지 않는 파운드 블록의 부분에는 장방 윈도우를 사용할 수 있다. 그리고 블록 부분에도 파운드 블록에서 사용한 윈도우와 반대의 위상을 갖는 윈도우를 구하여 파운드 블록의 부분과 오버랩하여 더한다. 여기서, 주의할 점은 오버랩되는 부분에서 두 윈도우 값의 합이 1 이 되도록 윈도우를 설계해야 한다. 이와 동일한 방식을 프레임이 끝날 때까지 반복하여 수행한다. 여기서, 프레임의 크기에 따라 최소 1 이상의 크기로 분할하여 적용할 수 있다. 그리고 수학식 3에 의하면 상관도는 매 샘플 단위로 구하고 있는데 복잡도를 고려하여 2 이상의 정수에 해당하는 샘플 단위로 구할 수도 있다.Using Equation 6, after finding the position of the pound block having the highest correlation among the correlations obtained, the pound block and the next signal are copied and restored to the part where an error occurs. Here, when copying and restoring, windowing is performed. A first-order function, a multiple-order function, and a sine function can be used for the part of the pound block that is overlapped, and a rectangular window is used for the part of the pound block that does not overlap. Can be. In addition, a window having a phase opposite to the window used in the pound block is also obtained in the block portion and overlapped with the portion of the pound block. Note that the window should be designed so that the sum of the two window values is 1 in the overlapping part. This same method is repeated until the end of the frame. Here, it may be divided and applied to at least one size according to the size of the frame. In addition, according to Equation 3, the correlation is obtained in every sample unit, but may be obtained in sample units corresponding to two or more integers in consideration of complexity.
또한, 정밀도를 높이기 위해 가장 높은 상관도를 갖는 샘플 주위에 2 이상의 정수에 해당하는 샘플 범위 내에서 1 샘플 단위로 상관도를 추가로 구해서 가장 상관도가 높은 샘플의 위치를 구할 수도 있다. In addition, in order to increase the precision, the correlation may be further obtained in units of one sample within a sample range corresponding to two or more integers around the sample having the highest correlation, and the position of the sample having the highest correlation may be obtained.
두 번째 프레임에 해당하는 (n+1) 프레임에 적용된 프레임 보간법을 구현하는 일 실시예가 도 8에 도시되어 있다. 이전 프레임(800)과 이후 오류가 없는 프레임(820)간에 선형 보간법을 적용한다. 지연 문제로 인해 미래 신호가 프레임 단위로 마련되어 있으므로 오버랩를 위해 윈도우를 수정하여 릴렉스드 보간법을 적용한다. 릴렉스드 보간법에서 사용되는 윈도우는 도 8에 도시되어 있다. 여기서 사용되는 윈도우 구조는 장방 윈도우와 1차 함수, 다차 함수, 또는 사인 함수가 사용될 수 있다. 도 8은 1차 함수를 사용하는 윈도우의 일 실시예를 도시한 것이다. 여기서, 주의할 점은 이전 윈도우(800)와 이후 윈도우(820)가 오버랩된 경우 두 위 도우 값의 합은 1 이 되어야 한다. 도 8에 의하면 프레임과 동일한 크기의 두 윈도우를 오버랩 앤 애드를 하는 릴렉스드 보간법에 의해서 출력되는 신호는 프레임 크기의 신호에 오버랩 크기(OV_SIZE)만큼의 블록이 더해져서 출력된다. 이렇게 더해진 블록의 신호를 이용하여 이후 프레임(820)과 오버랩 앤 애드를 하게 된다. 그리고 보간법에 의하여 복원된 신호의 앞부분은 이전 프레임(800)과 도 7에서 설명한 방식과 동일하게 오버랩 앤 애드가 수행된다.An embodiment of implementing the frame interpolation method applied to the (n + 1) frame corresponding to the second frame is shown in FIG. 8. Linear interpolation is applied between the
역변환부(260)는 역변환을 수행함으로써 최종 오디오 출력을 복원하여 출력 단자 OUT을 통해 출력한다.The
본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장 장치 등이 있다.The present invention can be embodied as code that can be read by a computer (including all devices having an information processing function) in a computer-readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording devices include ROM, RAM, CD-ROM, magnetic tape, floppy disks, optical data storage devices, and the like.
이러한 본 발명에 대한 이해를 돕기 위하여 도면에 도시된 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.Although described with reference to the embodiment shown in the drawings to aid in understanding of the present invention, this is merely exemplary, those skilled in the art that various modifications and equivalent other embodiments are possible from this. Will understand. Therefore, the true technical protection scope of the present invention will be defined by the appended claims.
본 발명에 의한 복호화된 오디오 신호의 오류 은폐 방법 및 장치에 의하면, 복호화된 비트 스트림의 오류를 은폐하는 방식에 있어서 주파수 영역 또는 시간 영역 가운데 선택하여 오류를 은폐하고, 주파수 영역에서 오류를 은폐하는 방식이 선택된 경우 프레임에서 오류가 존재하는 위치를 검출하여 그 이후의 위치에 해당하는 부분만 오류를 은폐한다.According to a method and apparatus for concealing an error of a decoded audio signal according to the present invention, a method of concealing an error of a decoded bit stream conceals an error by selecting from a frequency domain or a time domain and conceals an error in a frequency domain. If this is selected, the position where the error exists in the frame is detected and only the portion corresponding to the subsequent position conceals the error.
이렇게 함으로써 복호화된 비트스트림에 따라 적응적으로 오류를 은폐하므로 노이즈(noise)를 효과적으로 제거할 수 있다. 또한, 오류가 발생한 프레임이더라도 오류가 발생하기 이전까지 복호화된 정보를 최대한 반영하므로 오디오의 음질을 개선할 수 있는 효과를 거둘 수 있다.By doing this, noise can be effectively concealed according to the decoded bitstream, thereby effectively eliminating noise. In addition, even in the case of an error frame, since the information decoded up to the maximum until the error occurs, the sound quality of the audio can be improved.
Claims (37)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/749,249 US8798172B2 (en) | 2006-05-16 | 2007-05-16 | Method and apparatus to conceal error in decoded audio signal |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US74732406P | 2006-05-16 | 2006-05-16 | |
US60/747,324 | 2006-05-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070091512A true KR20070091512A (en) | 2007-09-11 |
KR101261528B1 KR101261528B1 (en) | 2013-05-07 |
Family
ID=38689291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060049040A KR101261528B1 (en) | 2006-05-16 | 2006-05-30 | Method and apparatus for error concealment of decoded audio signal |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101261528B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011065741A3 (en) * | 2009-11-24 | 2011-10-20 | 엘지전자 주식회사 | Audio signal processing method and device |
WO2013183977A1 (en) * | 2012-06-08 | 2013-12-12 | 삼성전자 주식회사 | Method and apparatus for concealing frame error and method and apparatus for audio decoding |
US9280975B2 (en) | 2012-09-24 | 2016-03-08 | Samsung Electronics Co., Ltd. | Frame error concealment method and apparatus, and audio decoding method and apparatus |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI105962B (en) | 1998-06-30 | 2000-10-31 | Nokia Mobile Phones Ltd | Error detection when receiving multiplexed signals |
AU2003281127B2 (en) * | 2002-07-15 | 2009-04-02 | Nokia Technologies Oy | Method for error concealment in video sequences |
JP2004361731A (en) | 2003-06-05 | 2004-12-24 | Nec Corp | Audio decoding system and audio decoding method |
-
2006
- 2006-05-30 KR KR1020060049040A patent/KR101261528B1/en not_active IP Right Cessation
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9020812B2 (en) | 2009-11-24 | 2015-04-28 | Lg Electronics Inc. | Audio signal processing method and device |
WO2011065741A3 (en) * | 2009-11-24 | 2011-10-20 | 엘지전자 주식회사 | Audio signal processing method and device |
US9153237B2 (en) | 2009-11-24 | 2015-10-06 | Lg Electronics Inc. | Audio signal processing method and device |
US10096324B2 (en) | 2012-06-08 | 2018-10-09 | Samsung Electronics Co., Ltd. | Method and apparatus for concealing frame error and method and apparatus for audio decoding |
KR20150021034A (en) * | 2012-06-08 | 2015-02-27 | 삼성전자주식회사 | Method and apparatus for concealing frame error and method and apparatus for audio decoding |
US9558750B2 (en) | 2012-06-08 | 2017-01-31 | Samsung Electronics Co., Ltd. | Method and apparatus for concealing frame error and method and apparatus for audio decoding |
WO2013183977A1 (en) * | 2012-06-08 | 2013-12-12 | 삼성전자 주식회사 | Method and apparatus for concealing frame error and method and apparatus for audio decoding |
KR20200004917A (en) * | 2012-06-08 | 2020-01-14 | 삼성전자주식회사 | Method and apparatus for concealing frame error and method and apparatus for audio decoding |
US10714097B2 (en) | 2012-06-08 | 2020-07-14 | Samsung Electronics Co., Ltd. | Method and apparatus for concealing frame error and method and apparatus for audio decoding |
US9280975B2 (en) | 2012-09-24 | 2016-03-08 | Samsung Electronics Co., Ltd. | Frame error concealment method and apparatus, and audio decoding method and apparatus |
US9520136B2 (en) | 2012-09-24 | 2016-12-13 | Samsung Electronics Co., Ltd. | Frame error concealment method and apparatus, and audio decoding method and apparatus |
US9842595B2 (en) | 2012-09-24 | 2017-12-12 | Samsung Electronics Co., Ltd. | Frame error concealment method and apparatus, and audio decoding method and apparatus |
US10140994B2 (en) | 2012-09-24 | 2018-11-27 | Samsung Electronics Co., Ltd. | Frame error concealment method and apparatus, and audio decoding method and apparatus |
Also Published As
Publication number | Publication date |
---|---|
KR101261528B1 (en) | 2013-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8798172B2 (en) | Method and apparatus to conceal error in decoded audio signal | |
KR101292771B1 (en) | Method and Apparatus for error concealment of Audio signal | |
US7805297B2 (en) | Classification-based frame loss concealment for audio signals | |
JP4603091B2 (en) | Method and apparatus for concealing frame loss on high band signals | |
KR101290425B1 (en) | Systems and methods for reconstructing an erased speech frame | |
KR101422379B1 (en) | Concealing lost packets in a sub-band coding decoder | |
JP5072835B2 (en) | Robust decoder | |
US8321216B2 (en) | Time-warping of audio signals for packet loss concealment avoiding audible artifacts | |
US7328161B2 (en) | Audio decoding method and apparatus which recover high frequency component with small computation | |
KR101291193B1 (en) | The Method For Frame Error Concealment | |
JP2004508597A (en) | Simulation of suppression of transmission error in audio signal | |
JP2004361731A (en) | Audio decoding system and audio decoding method | |
KR101261528B1 (en) | Method and apparatus for error concealment of decoded audio signal | |
KR100792209B1 (en) | Method and apparatus for restoring digital audio packet loss | |
JP2004184975A (en) | Audio decoding method and apparatus for reconstructing high-frequency component with less computation | |
US20040098257A1 (en) | Method and apparatus for removing noise from audio frame data | |
JP2007529020A (en) | Channel signal concealment in multi-channel audio systems | |
KR101452635B1 (en) | Method for packet loss concealment using LMS predictor, and thereof recording medium | |
US20080189120A1 (en) | Method and apparatus for parametric encoding and parametric decoding | |
JP2005532585A (en) | Audio coding | |
US8160869B2 (en) | Method and apparatus for encoding continuation sinusoid signal information of audio signal and method and apparatus for decoding same | |
JP4539180B2 (en) | Acoustic decoding device and acoustic decoding method | |
KR101291198B1 (en) | The Apparatus For Frame Error Concealment | |
JP2022532094A (en) | Methods and Devices for Detecting Attacks in Coding Audio Signals and Coding Detected Attacks | |
KR20050017088A (en) | Sinusoidal audio coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
AMND | Amendment | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160330 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170330 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |