KR101798084B1 - 부호화 모드를 이용한 음성신호의 부호화/복호화 장치 및 방법 - Google Patents

부호화 모드를 이용한 음성신호의 부호화/복호화 장치 및 방법 Download PDF

Info

Publication number
KR101798084B1
KR101798084B1 KR1020170005228A KR20170005228A KR101798084B1 KR 101798084 B1 KR101798084 B1 KR 101798084B1 KR 1020170005228 A KR1020170005228 A KR 1020170005228A KR 20170005228 A KR20170005228 A KR 20170005228A KR 101798084 B1 KR101798084 B1 KR 101798084B1
Authority
KR
South Korea
Prior art keywords
mode
frame
encoding
silent
superframe
Prior art date
Application number
KR1020170005228A
Other languages
English (en)
Other versions
KR20170008319A (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 삼성전자주식회사
Priority to KR1020170005228A priority Critical patent/KR101798084B1/ko
Publication of KR20170008319A publication Critical patent/KR20170008319A/ko
Application granted granted Critical
Publication of KR101798084B1 publication Critical patent/KR101798084B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders

Abstract

부호화 모드를 이용한 음성신호의 부호화/복호화 장치 및 방법을 개시한다. 부호화 장치는 입력된 음성신호에 포함된 프레임의 부호화 모드를 선택하여 무성음(unvoiced-speech)에 대한 무성(unvoiced)모드로 부호화 모드가 선택된 프레임을 부호화한다.

Description

부호화 모드를 이용한 음성신호의 부호화/복호화 장치 및 방법{METHOD AND APPARATUS FOR ENCODING/DECODING SPEECH SIGNAL USING CODING MODE}
본 발명의 실시예들은 부호화 모드를 이용한 음성신호의 부호화/복호화 장치 및 방법에 관한 것이다.
인간 음성 발생 모델(model of human speech generation)에 관련된 파라미터들을 추출함으로써 음성을 압축하는 기술을 사용하는 기기들을 음성 코더라고 부른다. 음성 코더들은 입력되는 음성 신호를 시간 블럭 또는 분석 프레임으로 분할한다. 음성 코더들은 전형적으로 인코더와 디코더를 포함한다. 상기 인코더는 일정한 관련 파라미터들을 추출하여 입력되는 음성 프레임을 분석하고 상기 파라미터들을 예를 들어, 비트들의 세트 또는 이진 데이터 패킷과 같이 이진수로 표현되도록 양자화한다. 상기 데이타 패킷들은 상기 통신 채널을 통해 수신기 및 디코더로 송신된다. 상기 디코더는 상기 데이터 패킷을 처리하고, 그것들을 양자화(unquantize)하여 상기 파라미터들을 생성하며, 역양자화된 파라미터들을 이용하여 음성 프레임을 재합성한다. 본 명세서에서는 수퍼프레임 구조하에서 보다 효과적으로 신호를 부호화하고 부호화된 신호를 복호화할 수 있는 인코더로서의 부호화 장치, 디코더로서의 복호화 장치 그리고 부호화 방법이 제안된다.
해결하고자 하는 기술적 과제는 부호화 모드를 이용한 음성신호의 부호화/복호화 장치 및 방법을 제공하는데 있다.
본 발명의 일실시예는 수퍼프레임 구조하에서 무성모드를 통해 무성음을 포함하는 프레임을 부호화할 수 있는 부호화 장치 및 방법을 제공한다.
본 발명의 일실시예는 무성음, 유성음, 묵음, 배경잡음으로 분류된 프레임들의 부호화 모드를 무성모드, 서로 다른 비트율을 갖는 하나 이상의 유성모드, 묵음모드 및 서로 다른 비트율을 갖는 하나 이상의 TCX 모드로 각각 결정하고, 각 모드에 해당하는 부호화기를 이용하여 서로 다른 비트율로 부호화할 수 있는 부호화 장치 및 방법을 제공한다.
본 발명의 일실시예는 부호화 모드에 따라 서로 다른 비트율로 부호화된 프레임들을 복호화할 수 있는 복호화 장치를 제공한다.
본 발명의 일실시예에 따른 부호화 장치는 입력된 음성신호에 포함된 프레임의 부호화 모드를 선택하는 모드 선택부 및 무성음(unvoiced-speech)에 대한 무성(unvoiced)모드로 상기 부호화 모드가 선택된 프레임을 부호화하는 무성모드 부호화부를 포함한다.
본 발명의 일측면에 따르면, 상기 모드 선택부는, 복수의 프레임으로 구성된 수퍼프레임(super-frame)에서 무성음 및 묵음(silence)이 모두 탐지되지 않는 경우 상기 수퍼프레임 내의 모든 프레임의 모드를 동일하게 선택할 수 있고, 상기 수퍼프레임에서 상기 무성음 및 상기 무음 중 적어도 하나가 탐지되는 경우 상기 수퍼프레임 내의 각각의 프레임의 부호화 모드를 개별적으로 선택할 수 있다.
이 경우, 상기 부호화 장치는 기선정된 플래그를 상기 수퍼프레임에 삽입하여 상기 수퍼프레임에서 상기 무성음 및 상기 묵음 중 적어도 하나를 포함하는지 여부를 나타낼 수 있다.
또한, 상기 부호화 장치는 상기 기선정된 플래그 및 상기 수퍼프레임 내의 모든 프레임의 공통 부호화 모드를 의미하는 ACELP(Algebraic Code Excited Linear Prediction) 코어 모드(core mode)에 기초하여 상기 수퍼프레임에 포함된 프레임의 부호화 모드를 결정하거나 또는 상기 기선정된 플래그 및 상기 수퍼프레임에 포함된 프레임마다 출력이 가능한 부호화 모드에 대해 이뉴머레이션(enumeration)을 적용한 인덱스를 이용하여 상기 프레임의 부호화 모드를 결정할 수 있다.
본 발명의 일측면에 따르면, 상기 부호화 모드는 상기 무성모드, 상기 묵음 및 에너지가 적은 배경잡음에 대한 묵음모드, 그리고 유성음, 에너지가 큰 배경잡음, 그리고 배경잡음이 있는 유성음 등에 대한 유성(voiced)모드 및 TCX(Transform Coded eXcitation) 모드를 포함할 수 있고, 상기 부호화 장치는 상기 유성모드로 상기 부호화 모드가 선택된 프레임을 부호화하는 유성모드 부호화부, 상기 묵음모드로 상기 부호화 모드가 선택된 프레임을 부호화하는 묵음모드 부호화부 및 상기 TCX 모드로 상기 부호화 모드가 선택된 프레임을 부호화하는 TCX 부호화부를 더 포함할 수 있다.
이 경우, 상기 무성모드 및 상기 묵음모드의 프레임은 개루프(open-loop)로 부호화 모드가 선택될 수 있고, 상기 유성모드 및 상기 TCX 모드의 프레임은 폐루프(Closed-loop)로 부호화 모드가 선택될 수 있다.
본 발명의 일측면에 따르면, 상기 부호화 장치는 상기 음성신호의 특성을 분석하여 음성 활성도를 탐색하여 구해진 정보를 모드 선택부로 전송하는 음성 활성도 탐색부 및 개루프 피치를 탐색하여 상기 개루프 피치를 모드 선택부로 전송하는 개루프 피치 탐색부를 더 포함할 수 있다. 이때, 상기 모드 선택부는 상기 음성 활성도 탐색부 및 상기 개루프 피치 탐색부로부터 전송된 정보를 이용하여 현재 프레임의 성질을 결정하고, 상기 성질에 따라 상기 프레임의 부호화 모드를 TCX 모드, 유성모드, 무성모드 및 묵음모드 중 하나의 모드로 선택할 수 있다. 또한, 상기 TCX 모드는 프레임의 크기에 기초하여 미리 결정된 복수개의 모드를 포함할 수 있다.
본 발명의 일실시예에 따른 부호화 방법은 입력된 음성신호에 포함된 프레임의 부호화 모드를 선택하는 단계 및 무성음에 대한 무성모드로 상기 부호화 모드가 선택된 프레임을 부호화하는 단계를 포함한다.
본 발명의 일실시예에 따른 복호화 장치는 입력된 비트스트림에서 프레임의 부호화 모드를 확인하는 부호화 모드 확인부 및 무성음에 대한 무성모드로 상기 부호화 모드가 선택된 프레임을 복호화하는 무성모드 복호화부를 포함한다.
본 발명의 일실시예에 따르면, 수퍼프레임 구조하에서 무성모드를 통해 무성음을 포함하는 프레임을 부호화할 수 있다.
본 발명의 일실시예에 따르면, 무성음, 유성음, 묵음, 배경잡음으로 분류된 프레임들의 부호화 모드를 무성모드, 유성모드, 묵음모드 TCX 모드 각각 결정하고, 모드에 해당하는 부호화기를 이용하여 서로 다른 비트율로 부호화할 수 있다.
본 발명의 일실시예에 따르면, 부호화 모드에 따라 서로 다른 비트율로 부호화된 프레임들을 복호화할 수 있다.
도 1은 본 발명의 일실시예에 있어서, 부호화 장치의 내부 구성을 설명하기 위한 블록도이다.
도 2는 본 발명의 일실시예에 있어서, 비트율 제어부가 더 포함된 부호화 장치의 내부 구성을 설명하기 위한 블록도이다.
도 3은 신택스 구조를 설명하기 위한 제1 예이다.
도 4는 신택스 구조를 설명하기 위한 제2 예이다.
도 5는 도 4에 따른 신택스를 나타내는 일례이다.
도 6는 신택스 구조를 설명하기 위한 제3 예이다.
도 7는 신택스 구조를 설명하기 위한 제4 예이다.
도 8는 신택스 구조를 설명하기 위한 제5 예이다.
도 9는 신택스 구조를 설명하기 위한 제6 예이다.
도 10는 신택스 구조를 설명하기 위한 제7 예이다.
도 11은 'lpd_mode'와 연동하여 부호화 모드를 결정하는 방법에 대한 신택스의 일례이다.
도 12는 본 발명의 일실시예에 있어서, 부호화 방법을 도시한 흐름도이다.
도 13은 본 발명의 일실시예에 있어서, 복호화 장치의 내부 구성을 설명하기 위한 블록도이다.
이하 첨부된 도면을 참조하여 본 발명에 따른 다양한 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일실시예에 있어서, 부호화 장치의 내부 구성을 설명하기 위한 블록도이다. 본 실시예에 따른 부호화 장치는 도 1에 도시된 바와 같이, 전처리부(101), LP(Linear Prediction) 분석/양자화부(102), 인지 가중 필터부(103), 개루프 피치 탐색부(104), 음성 활성도 탐색부(Voice activity detection)(105), 모드 선택부(106), TCX(Transform Coded eXcitation) 부호화부(107), 유성모드 부호화부(108), 무성모드 부호화부(109), 묵음모드 부호화부(110), 메모리 갱신부(111) 및 인덱스 부호화부(112)를 포함한다.
각 수퍼프레임(super-frame)의 부호화는 4개의 프레임의 부호화로 이루어 진다. 예를 들어, 수퍼프레임의 크기가 1024개의 샘플로 이루어 진다면 4개의 프레임의 크기는 각각이 256개의 크기를 가진다. 이때, 상기 수퍼프레임의 크기는 OLA(OverLap and Add)의 과정을 거쳐 더 큰 크기로 서로 중첩이 될 수도 있다.
여기서, TCX 부호화부(107)는 세 개의 모드가 있으며 세 개의 모드는 프레임의 크기로 구분될 수 있다. 예를 들어, TCX 모드는 256, 512, 1024의 기본 크기를 갖는 세 개의 모드로 이루어 질 수 있다.
유성모드 부호화부(108), 무성모드 부호화부(109) 및 묵음모드 부호화부(110)는 켈프(Code-Excited linear Prediction, CELP) 부호화부에서 분류될 수 있다. 이때, 상기 켈프 부호화부에서 이용되는 프레임들은 모두 256 샘플(sample)의 기본 크기를 가질 수 있다.
전처리부(101)는 입력 신호(input signal)에서 원하지 않는 주파수 성분을 제거하고 사전에 필터링을 통해 부호화에 유리하게 주파수 특성을 조정할 수 있다. 이러한 전처리부(101)는 일례로, AMR-WB(Adaptive Multi Rate WideBand)의 사전 강조 필터링(Pre-emphasis filtering)이 이용될 수 있다. 여기서, 상기 입력 신호는 부호화에 알맞은 기설정된 샘플링 주파수를 갖는다. 예를 들어, 협대역 음성 부호화기에서는 8000Hz의 샘플링주파수를 가질 수 있고, 광대역 음성 부호화기에서는 16000Hz의 샘플링 주파수를 가질 수 있다. 이때, 이러한 샘플링 주파수가 부호화 장치 내부에서 지원 가능한 어떠한 샘플링 주파수도 사용이 가능함은 당연하다. 제안된 실시예에서는 전처리부 외부에서 다운샘플링이 일어나며 내부 샘플링주파수(ISF, internal sampling frequency)로 12800Hz를 사용할 수 있다. 이와 같이, 전처리부(101)를 통해 필터링된 입력 신호는 선형 예측 분석/양자화부(102)로 입력될 수 있다.
선형 예측 분석/양자화부(102)는 상기 필터링된 입력 신호를 통해 선형 예측 계수를 추출한다. 여기서, 선형 예측 분석/양자화부(102)는 상기 선형 예측 계수를 양자화에 유리한 형태(예를 들어, ISF(Immittance spectral Frequencies) 또는 LSF(Line Spectral Frequencies) 계수)로 변환한 후 다양한 양자화 방법(예를 들어, 벡터 양자화기)를 통해 양자화한다. 계수의 양자화를 통해 결정된 양자화 인덱스는 인덱스 부호화부(112)로 전송되고, 추출된 선형 예측 계수와 양자화된 선형 예측 계수는 인지 가중 필터부(103)로 전송된다.
인지 가중 필터부(103)에서는 인지 가중 필터를 통해 전처리를 거친 신호를 필터링한다. 인지 가중 필터부(103)는 인체 청각 구조의 마스킹(masking) 효과를 이용하기 위하여 양자화 잡음을 마스킹 범위 안으로 줄인다. 인지 가중 필터부(103)를 통해 필터링된 신호는 개루프 피치(open-loop pitch) 탐색부(104)로 전송될 수 있다.
개루프 피치 탐색부(104)는 인지 가중 필터부(103)에서 필터링되어 전송하는 신호를 이용하여 개루프 피치가 탐색한다.
음성 활성도 탐색부(105)는 전처리부(101)를 통해 필터링된 신호를 수신하여 상기 필터링된 신호의 특성을 분석하며, 음성 활성도(voice activity)를 탐색한다. 입력 신호에 대한 특성으로서 일례로, 주파수 도메인의 기울기(tilt)정보, 각 바크(Bark) 밴드의 에너지 등이 분석될 수 있다. 음성 활성도 탐색부(105)를 통해 구해진 정보들과 개루프 피치 탐색부(104)에서 탐색된 개루프 피치는 모드 선택부(106)로 전송될 수 있다.
모드 선택부(106)는 개루프 피치 탐색부(104) 및 음성 활성도 탐색부(105)를 통해 수신한 정보들을 이용하여 프레임의 부호화 모드를 선택한다. 우선, 모드 선택부(106)는 부호화 모드의 선택에 앞서 전송된 정보를 이용하여 현재 프레임의 성질을 결정할 수 있다. 즉, UV(unvoiced) 탐지 결과를 이용하여 현재 프레임을 유성음, 무성음, 묵음, 배경잡음 등으로 분류할 수 있다. 이때, 모드 선택부(106)는 분류된 결과를 바탕으로 현재 프레임에서 사용할 부호화 모드를 결정할 수 있다. 이 경우, 상기 부호화 모드는 TCX 모드, 유성음, 에너지가 큰 배경잡음, 그리고 배경잡음이 있는 유성음 등에 대한 유성(voiced)모드, 무성(unvoiced)모드 및 묵음(silence)모드 중 하나의 모드가 선택될 수 있다. 여기서, 상기 TCX 모드와 상기 유성모드 각각은 서로 다른 비트율을 갖는 하나 이상의 모드일 수 있다.
상기 부호화 모드는 TCX 모드인 경우 256,512,1024 크기를 갖는 부호화 모드가 이용될 수 있으며, 상기 유성모드, 상기 무성모드 및 상기 묵음모드를 포함하여 모두 6개의 모드가 이용될 수 있다. 이러한 부호화 모드의 선택에는 다양한 방식이 이용 가능하다.
첫째로, 개루프로 부호화 모드를 선택하는 방법이 있다. 이 경우에는 미리 신호의 특성을 파악하는 모듈을 거쳐 현재 구간의 신호특성을 정확히 결정하고 이 신호에 가장 적절한 부호화 모드를 선택하는 방식이다. 예를 들어, 현재의 입력 신호의 구간이 묵음으로 판정된 경우에는 묵음모드를 통해 묵음모드 부호화부(110)를 이용하여 상기 현재의 입력 신호를 부호화하고, 무성으로 결정이 된 경우에는 무성모드를 통해 무성모드 부호화부(109)를 이용하여 상기 현재의 입력 신호를 부호화할 수 있다. 또한, 배경잡음이 특정 스레스홀드(threshold) 값 이하인 유성 구간이거나, 배경잡음이 없는 유성 구간인 경우에는 유성모드를 통해 유성모드 부호화부(108)를 이용하여 상기 현재의 입력 신호를 부호화할 수 있다. 그 이외의 경우에는 상기 현재의 입력 신호를 상기 TCX 모드를 통해 TCX 부호화부(107)를 이용하여 부호화할 수 있다.
둘째로, 폐루프(Closed-loop)로 부호화 모드를 선택하는 방법이 있다. 이 방식은 실제로 현재의 입력 신호를 부호화하고, 부호화한 결과와 원 신호간의 신호대잡음비(Signal-to-Noise Ratio, SNR)나 또 다른 측정값을 이용하여 가장 효율적인 부호화 모드를 선택하는 방식이다. 즉, 이러한 경우에는 사용 가능한 모든 부호화 모드에 대해 부호화 과정을 거쳐서 결정해야 하므로 복잡도에 대한 단점이 있지만 성능은 뛰어날 수 있다. 특히 신호대잡음비를 이용하여 부호화기를 결정할 때 중요한 문제는 사용된 비트량이 동일한지가 중요한 자료가 된다. 현재 무성모드 부호화부(109) 및 묵음모드 부호화부(110)에서는 기본적으로 비트 사용량이 각기 모두 다르므로 사용 비트대비의 신호대잡음비를 구하여 가장 적절한 부호화 모드를 결정해야 한다. 이에 더해, 부호화 방식도 차이가 있으므로 각 방식에 적절한 가중치를 사용하여 최종 선택을 조절할 수도 있다.
셋째로, 상술한 두 가지 부호화 모드 선택 방법을 혼합하여 부호화 모드를 선택하는 방법이 있다. 이는 음성신호의 신호대잡음비가 낮지만 실제로 원음에 가깝게 들리는 경우가 종종 존재하기 때문에 이용 가능하다. 그러므로, 개루프와 폐루프를 이용한 부호화 방법을 혼합하여 복잡도도 낮추며 음질도 우수한 부호화가 가능해진다. 이 방법의 예로는 먼저 기본적으로 묵음인 경우를 탐색하여 최종적으로 현재의 구간이 묵음으로 결정이 되면 묵음모드 부호화부(110)를 이용하여 부호화할 수 있다. 그리고 현재 구간이 무성음으로 결정되면 무성모드 부호화부(109)를 이용하여 부호화할 수 있다. 그리고 배경잡음인 경우 신호의 특성에 따라 다양하게 분류가 가능하며 묵음 및 유성의 요건에 해당하지 않으면 일단 유성 및 그 외의 신호로 분류가 된다. 이러한 배경잡음 신호와 정상적인 유성신호, 그리고 배경잡음이 있는 유성신호 등은 TCX 부호화부(107) 및 유성모드 부호화부(108)를 통해 부호화될 수 있다. 즉, TCX 모드와 유성모드 둘에 대해서만 개루프 또는 폐루프 중 하나를 이용하여 부호화할 수 있다. TCX 부호화부(107) 및 유성모드 부호화부(108)만을 이용한 부호화 기술은 기존에 표준화가 완료된 AMR-WB+ 부호화기에 잘 나타나 있다.
모드 선택부(106)에서는 선택된 모드에 대한 후처리 작업이 병행될 수 있다. 예를 들어, 상기 후처리 작업의 한가지 방식으로 선택된 부호화 모드에 대해 제약(constraint)을 주는 방법이 있다. 이는 음질에 영향을 주는 부적절한 모드의 조합을 없앰으로써 최종 부호화된 신호의 음질을 극대화 하는 방식이다. 예를 들어, 수퍼프레임 내부의 각 프레임을 부호화할 때, 묵음모드 또는 무성모드의 프레임 이후에 하나의 유성모드 또는 TCX 모드의 프레임이 오고 그 이후에 다시 묵음모드 또는 무성모드의 프레임이 오는 경우, 상기 제약을 적용하여 마지막 묵음모드 또는 무성모드의 프레임을 강제로 유성모드 또는 TCX 모드의 프레임으로 변경하는 방식이다. 이러한 방식은 유성모드 또는 TCX 모드의 프레임이 하나만 나타나게 되는 경우, 제대로 부호화를 시작하기도 전에 모드가 바뀌는 현상으로 인해 음질에 영향을 줄 수 있으므로 짧은 유성모드 또는 TCX 모드 프레임을 지양하기 위해 이용될 수 있다.
다른 제약으로 모드 변환 시에 일시적으로 부호화 모드를 수정하는 방식이 있다. 즉, 묵음모드 또는 무성모드의 프레임 이후에 유성모드 또는 TCX 모드의 프레임이 오는 경우 이후 설명될 'acelp_core_mode'와 상관없이 일시적으로 뒤따르는 하나의 프레임에 대해 부호화 모드를 상향시킬 수 있다. 예를 들어, 유성모드 또는 TCX 모드의 프레임을 위해 전체적으로 부호화 가능한 프레임의 모드가 0부터 7까지 있다고 가정한다. 현재 프레임의 모드를 나타내는 'acelp_core_mode'가 모드 1인 경우 위의 조건에 해당하면 현재 프레임의 최종모드를 현재 모드 + 1~6 중에서 하나를 선택할 수 있다.
세 번째 제약으로 묵음모드 또는 무성모드의 프레임은 낮은 비트율에서만 활성화되도록 할 수 있다. 특히, 특정 비트율 이상에서는 비트율보다 음질이 더 중요한 경우가 있는데 이러한 방식이 아주 높은 비트율에서는 전체음질 관점에서 마이너스 방향이 될 수도 있으므로 이러한 경우에는 단지 유성모드 또는 TCX 모드의 프레임만을 이용하여 부호화할 수도 있다. 이 기준은 개발자가 적절하게 선택할 수 있다. 하나의 예로는 256샘플로 이루어진 프레임당 300비트 이하로 부호화되는 경우에는 묵음모드 또는 무성모드의 프레임을 사용하고, 그 이상에서 부호화되는 경우에는 유성모드 또는 TCX 모드의 프레임만을 이용하여 부호화할 수 있다.
네 번째 제약으로는 현재 프레임의 특성을 파악하여 순간적으로 코딩 모드를 수정할 수 있다. 즉, 현재 프레임의 부호화가 유성모드 또는 TCX 모드의 프레임으로 결정이 되었음에도 불구하고 이 프레임이 온셋(onset)이거나 트랜지션(transition)처럼 주기성이 낮은 경우에는 이러한 프레임의 부호화가 이후의 성능에 영향을 줄 수 있으므로 'acelp_core_mode'와 상관없이 일시적으로 높은 비트율로 부호화할 수 있다. 예를 들어, 유성모드 또는 TCX 모드의 프레임을 위해 전체적으로 부호화 가능한 프레임의 모드가 0부터 7까지 있다고 가정할 때, 현재 프레임의 'acelp_core_mode'가 모드 1인 경우 위의 조건(온셋 이거나 트랜지션)에 해당하면 현재 프레임의 최종모드를 현재 모드 + 1~6 중에서 하나를 선택할 수 있다.
메모리 갱신부(111)는 부호화에 사용된 각 필터의 상태를 갱신한다. 또한, 인덱스 부호화부(112)는 전송받은 인덱스들을 취합하여 비트스트림으로 변형하여 저장장치에 저장하거나 채널을 통하여 전송할 수 있다.
도 2는 본 발명의 일실시예에 있어서, 비트율 제어부가 더 포함된 부호화 장치의 내부 구성을 설명하기 위한 블록도이다. 도 2에 도시된 바와 같이 본 실시예에 따른 부호화 장치는 도 1을 통해 설명한 부호화 장치에 비트율 제어부(201)가 추가된 모습을 나타낸다.
현재의 사용된 비트의 저장소(reservoir)의 크기를 확인하여 부호화 이전에 미리 설정된 'acelp_core_mode'를 수정함으로써, 가변율로 부호화를 적용할 수 있다. 먼저 현재 프레임에서의 저장소의 크기를 확인한 후, 상기 크기에 해당하는 비트율로 'acelp_core_mode'를 결정할 수 있다. 현재의 저장소 크기가 기준보다 적은 경우에는 상기 'acelp_core_mode'를 낮은 비트율로 변경할 수 있고, 상기 저장소 크기가 기준보다 큰 경우에는 상기 'acelp_core_mode'를 높은 비트율로 변경할 수 있다. 모드 변경 시에는 다양한 조건을 통해 성능향상을 이룰 수도 있다. 이러한 과정은 매 수퍼프레임마다 한번씩 적용될 수도 있으며, 특별한 경우에는 매 프레임마다 적용될 수도 있다. 모드 변경 시 사용될 조건은 아래와 같다.
한가지 조건은 최종 선택된 상기 'acelp_core_mode'에 이력(hysteresis)을 적용하는 방식이다. 상기 이력을 적용하게 되면 모드 상승이 필요한 경우에는 천천히 상승하게 되고, 모드 하강이 필요한 경우에는 천천히 하강하게 된다. 상기 방식은 각각의 모드 변경을 위한 스레스홀드들을 이전 프레임에서 사용된 모드에 비해 상승하는 경우나 하강하는 경우에 대해 각기 다른 값을 사용하게 되면 적용 가능하다. 예를 들어, 모드 변경의 기준이 되는 저장소의 비트가 'x'라고 할 때, 모드 상승 시에는 'x + alpha'가 모드변경을 위한 스레스홀드가 되고, 모드 하강 시에는 'x - alpha'가 모드변경을 위한 스레스홀드가 된다. 도 2에 도시된 비트율 제어부(201)는 상기 방식에서 상기 비트율을 제어하는데 이용될 수 있다.
일반적으로 'acelp_core_mode'는 8개의 값을 가지므로 3비트로 부호화가 가능하며, 수퍼프레임 내에서는 동일한 모드가 사용될 수 있다. 또한, 무성모드와 묵음 모드는 낮은 비트율(예를 들어, 12k 모노(mono), 16k 모노, 16k 스테레오(stereo))에서만 사용이 되며, 이 이외의 높은 비트율에서는 기존의 신택스로도 표현이 가능하다. 이때, 무성모드와 묵음모드는 지속기간(duration)이 짧아서 수퍼프레임 내에서도 부호화 모드의 변경이 발생하는 경우가 많고, TCX 모드는 'acelp_core_mode'의 8개의 값을 이용하여 적절한 비트로 부호화가 가능하다.
도 3, 도 4 및 도 6 내지 도 10은 본 발명의 일실시예에 따른 부호화 장치에 의해 생성된 비트스트림과 관련된 신택스 구조를 설명하기 위한 예로서, 새롭게 정의된 1비트의 'VBR(Variable Bit Rate) flag'를 이용하여 수퍼프레임 내의 프레임들이 동일한 부호화 모드를 갖거나 또는 수퍼프레임 내의 프레임들 각각에 대한 모드가 결정되는 모습을 나타낸다. 이때, 'VBR flag'는 '0'과 '1'의 값을 갖고, 본 예에서 '1'의 값을 갖는 'VBR flag'는 수퍼프레임에 무성음 및 묵음이 존재함을 의미한다. 즉, 지속기간이 짧은 무성음 및 묵음이 수퍼프레임에 존재하는 경우 수퍼프레임 내에서도 모드 변경이 발생하는 경우가 많다. 따라서, 'VBR flag'를 이용하여 무성음과 묵음이 수퍼프레임에 존재하지 않는 경우에는 수퍼프레임 내의 모든 프레임들의 모드가 동일하게 설정하고, 상기 무성음 및 상기 묵음이 수퍼프레임에 존재하는 경우에는 각각의 프레임마다 부호화 모드가 변경 가능하도록 할 수 있다. 또한, 도 5는 도 4에 따른 신택스를 나타내는 일례이다.
'acelp_core_mode'는 lpd 부호화 모드를 사용하는 ACELP에서와 같이 정확한 비트의 위치를 지시하는 비트 필드로서 수퍼프레임 내의 모든 프레임의 공통 부호화 모드를 의미할 수 있다.
또한, 'lpd_mode'는 도 5를 통해 설명될 'lpd_channel_stream()'의, AAC 프레임에 대응되는, 수퍼프레임 내의 4개의 프레임 각각을 위한 부호화 모드들을 정의하는 비트 필드를 의미할 수 있다. 여기서, 상기 부호화 모드들은 배열 'mod[]'로 저장될 수 있고, '0'과 '3'사이의 값을 가질 수 있다. 이러한 상기 'lpd_mode'와 상기 'mod[]'간의 맵핑은 아래 표 1로부터 결정될 수 있다.
Figure 112017003944978-pat00001
상기 'mod[]'의 값은 각각의 프레임에서의 부호화 모드를 나타낼 수 있다. 상기 'mod[]의 값에 따른 부호화 모드는 아래 표 2와 같이 결정될 수 있다.
Figure 112017003944978-pat00002
도 3은 신택스 구조를 설명하기 위한 제1 예이다. 여기서, 제1 테이블(310)은 수퍼프레임에 묵음 또는 무성음이 존재할 때의 신택스 구조를, 테이블(320)은 수퍼프레임에 묵음 또는 무성음이 존재하지 않을 때의 신택스 구조를 각각 나타낸다. 도 3에서는 8개의 모드를 나타낼 수 있는 3비트의 'acelp_core_mode'에 의존적인 코덱 테이블을 이용하는 것으로, 상기 'acelp_core_mode'를 수퍼프레임마다 수정하는 것이 가능하다. 다시 말해, 상기 'acelp_core_mode'를 이용하여 상기 'acelp_core_mode'가 0,1,2,3인 경우 각각 0(silence), 1(UV), 2(core mode), 3(core mode +1)을 'acelp_core_mode'가 4,5,6,7인 경우 각각 0(core mode-1), 1(core mode), 2(core mode+1), 3(core mode +2)을 부호화 모드를 표현할 수 있어 가변 비트율을 적용할 때 효과적이다. 이때, 'VBR flag' 및 8비트의 가변 비트율에 다른 부호화 모드인 'VBR mode'의 도입을 통해 무성음 및 묵음의 비중이 20%라 가정하였을 때 "(9 * 0.2) + (1 * 0.8) = 2.6" 비트가 추가된다.
도 4는 신택스 구조를 설명하기 위한 제2 예이다. 여기서, 제1 테이블(410)은 수퍼프레임에 묵음 또는 무성음이 존재할 때의 신택스 구조를, 테이블(420)은 수퍼프레임에 묵음 또는 무성음이 존재하지 않을 때의 신택스 구조를 각각 나타낸다. 도 4는 하나의 수퍼프레임에서 각 프레임마다 출력이 가능한 3개 모드(0: 묵음, 1: 무성음, 2: 유성음 및 그 외의 다른 신호)에 대해 이뉴머레이션(enumeration)을 적용한다. 예를 들어, 4개의 프레임에 대해 인덱스로 사용하여 "인덱스 = 첫 번째 프레임의 모드 * 27 + 두 번째 프레임의 모드 * 9 + 세 번째 프레임의 모드 *3 + 네 번째 프레임의 모드"와 같이 이용할 수 있다. 이 경우, 'UV mode'는 7비트의 크기로, 'VBR flag'의 1비트와 함께, 무성음 및 묵음의 비중이 20%라 가정하였을 때 "(8 * 0.2) + (1 * 0.8) = 2.4" 비트가 추가된다. 또한, 여기에 상술한 제약에 따라, 다시 말해 묵음모드 또는 무성모드의 프레임 이후에 하나의 유성모드 또는 TCX 모드의 프레임이 오고 그 이후에 다시 묵음모드 또는 무성모드의 프레임이 오는 경우, 마지막 묵음모드 또는 무성모드의 프레임을 강제로 유성모드 또는 TCX 모드의 프레임으로 변경하는 제약을 적용하면 나머지 조건에 대해 6비트의 테이블로 표현이 가능해진다. 이 경우에는, 무성음 및 묵음의 비중이 20%라 가정하였을 때 "(7 * 0.2) + (1 * 0.8) = 2.2" 비트가 추가된다.
도 5는 도 4에 따른 신택스를 나타내는 일례이다. 실선박스(510)는 'lpd_channel_stream()'의 신택스를 나타내고 있다. 상기 'lpd_channel_stream()'는 수퍼프레임의 프레임 별로 유성모드 및 TCX 모드에 대한 부호화를 선택하기 위한 신택스로서, 제1 점선박스(511) 및 제2 점선박스(512)에 나타난 정보를 더 추가함으로써, 'VBR_flag'와 'VBR_mode_index'를 이용하여 유성모드 및 TCX 모드에 대한 부호화뿐만 아니라 무성모드 및 묵음모드에 대한 부호화를 수퍼프레임 내의 프레임별로 수행할 수 있음을 알 수 있다.
도 6는 신택스 구조를 설명하기 위한 제3 예이다. 여기서, 제1 테이블(610)은 수퍼프레임에 묵음 또는 무성음이 존재할 때의 신택스 구조를, 테이블(620)은 수퍼프레임에 묵음 또는 무성음이 존재하지 않을 때의 신택스 구조를 각각 나타낸다. 도 6은 테이블을 도입하여 사용 가능한 부호화 모드를 미리 2비트로 할당한 모습을 나타낸다. 또한, 'acelp_core_mode'가 기존 3비트에서 2비트로 새롭게 정의된 모습을 나타낸다. 이때, 부호화 모드의 선택은 ISF이나 입력 비트율을 이용할 수 있다. 예를 들어, ISF 12.8(기존 모드 1)에 대해 9(묵음모드), 8(무성모드), 1, 2나 ISF 14.4(기존 모드 1 또는 2)에 대해 8(무성모드), 1, 2, 3 또는 ISF 16(기존 모드 2 또는 3)에 대해 2, 3, 4, 5와 같이 적용할 수 있다. 또는 상기 입력 비트율을 이용한 예로, 12k 모노(기존 모드 1)에 대해 9(묵음모드), 8(무성모드), 1, 2나 16k 스테레오(기존 모드 1)에 대해 9(묵음모드), 8(무성모드), 1, 2 또는 16k 모노(기존 모드 2)에 대해 9(묵음모드), 8(무성모드), 2, 3와 같이 적용할 수 있다. 이때, 무성모드 및 묵음모드를 적용함으로써, 20%의 무성음 및 묵음을 가정하였을 때 "6 * 0.2 = 1.2" 비트가 추가된다.
도 7는 신택스 구조를 설명하기 위한 제4 예이다. 여기서, 제1 테이블(710)은 수퍼프레임에 묵음 또는 무성음이 존재하고, ISF가 16000Hz 이하인 경우의 신택스 구조를, 테이블(720)은 수퍼프레임에 묵음 또는 무성음이 존재하지 않고, 수퍼프레임에서 비트율이 변화하지 않는 경우의 신택스 구조를 각각 나타낸다. 도 7에서는 'VBR flag'를 사용하지 않고, ISF에 따라 모드를 공유하는 모습을 나타낸다. 이때, 무성모드 및 묵음모드를 적용함으로써, 20%의 무성음 및 묵음을 가정하였을 때 "11 * 0.2 = 2.2" 비트가 추가된다. 유성모드 및 TCX 모드의 프레임에 대해서는 추가되는 비트가 없다.
*도 8는 신택스 구조를 설명하기 위한 제5 예이다. 여기서, 제1 테이블(810)은 수퍼프레임에 묵음 또는 무성음이 존재하고, ISF가 16000Hz 이하인 경우의 신택스 구조를, 테이블(820)은 수퍼프레임에 묵음 또는 무성음이 존재하지 않고, 수퍼프레임에서 비트율이 변화하지 않는 경우의 신택스 구조를 각각 나타낸다. 이때, 도 8에서는 ISF에 따라 모드 6, 7을 공유함으로써, 각 프레임에서 모든 부호화 모드를 표현할 수 있는 장점이 있다.
도 9는 신택스 구조를 설명하기 위한 제6 예이다. 여기서, 제1 테이블(910)은 수퍼프레임에 묵음 또는 무성음이 존재할 때의 신택스 구조를, 테이블(920)은 수퍼프레임에 묵음 또는 무성음이 존재하지 않을 때의 신택스 구조를 각각 나타낸다. 이때, 도 9에서는 VAD(Voice activity detection) flag의 값이 '0'인 경우, 다시 말해 수퍼프레임이 무성음 또는 묵음을 포함하고, 세부 프레임의 결과가 무성모드 또는 묵음모드인 경우, 항상 'CELP mode'를 사용하며 그렇지 않은 경우 CELP/TCX를 사용한다. 여기서, 20%의 무성음 및 묵음을 가정하였을 때 "((17-3) * 0.2) + (1 * 0.8) = 3.6" 비트가 추가된다.
도 10는 신택스 구조를 설명하기 위한 제7 예이다. 여기서, 제1 테이블(910)은 수퍼프레임에 묵음 또는 무성음이 존재할 때의 신택스 구조를, 테이블(920)은 수퍼프레임에 묵음 또는 무성음이 존재하지 않을 때의 신택스 구조를 각각 나타낸다. 이때, 도 10에서는 VBR_flag를 이용하여 인덱싱을 간단하게 할 수 있다. 여기서, 20%의 무성음 및 묵음을 가정하였을 때 "(9*0.2)+(1*0.8) = 2.6" 비트가 추가된다.
도 11은 'lpd_mode'와 연동하여 부호화 모드를 결정하는 방법에 대한 신택스의 일례이다. 실선박스(1110)는 'lpd_channel_stream()'의 신택스를 나타내고 있고, 제1 점선박스(1111) 및 제2 점선박스(1112)는 'lpd_channel_stream()'의 신택스에 추가된 정보를 나타내고 있다. 즉, 도 11은 'lpd_mode' 5비트와 'ACELP mode' 3비트('acelp_core_mode') 그리고 묵음모드 및 무성모드를 위한 추가 비트('VBR_mode_index')를 종합적으로 활용하여 전체 모드를 재구성하는 방법에 대한 신택스의 일례이다. 구체적으로 'lpd_mode'를 체크하여 256 샘플단위로 환산했을 때의 TCX 모드로 선택된 프레임을 확인한 후 이 프레임의 모드 정보를 보내지 않음으로써, 도 3을 통해 언급한 신택스 구조를 제외하고는 모든 신택스 구조의 예에서 전송 비트를 절감할 수 있다. 'no_of_TCX'는 256 샘플단위로 환산했을 때의 TCX 모드로 선택된 프레임의 개수를 나타내고, TCX 모드로 선택된 프레임의 개수가 4인 경우는 'VBR_flag'가 0이 되어 신택스 상에 정보를 추가할 필요가 없다.
도 12는 본 발명의 일실시예에 있어서, 부호화 방법을 도시한 흐름도이다. 본 실시예에 따른 부호화 방법은 도 1을 통해 설명한 부호화 장치를 통해 수행될 수 있다. 도 12에서는 상기 부호화 장치를 통해 각각의 단계가 수행되는 과정을 설명함으로써, 상기 부호화 방법을 설명한다.
각 수퍼프레임의 부호화는 4개의 프레임의 부호화로 이루어 진다. 예를 들어, 수퍼프레임의 크기가 1024개의 샘플로 이루어 진다면 4개의 프레임의 크기는 각각이 256개의 크기를 가진다. 이때, 상기 수퍼프레임의 크기는 OLA(OverLap and Add)의 과정을 거쳐 더 큰 크기로 서로 중첩이 될 수도 있다.
단계(S1201)에서 상기 부호화 장치는 입력 신호(input signal)에서 원하지 않는 주파수 성분을 제거하고 사전에 필터링을 통해 부호화에 유리하게 주파수 특성을 조정할 수 있다. 이러한 전처리 과정에는 일례로, AMR-WB(Adaptive Multi Rate WideBand)의 사전 강조 필터링(Pre-emphasis filtering)이 이용될 수 있다. 여기서, 상기 입력 신호는 부호화에 알맞은 기설정된 샘플링 주파수를 갖는다. 예를 들어, 협대역 음성 부호화기에서는 8000Hz의 샘플링주파수를 가질 수 있고, 광대역 음성 부호화기에서는 16000Hz의 샘플링 주파수를 가질 수 있다. 이때, 이러한 샘플링 주파수가 부호화 장치 내부에서 지원 가능한 어떠한 샘플링 주파수도 사용이 가능함은 당연하다. 제안된 실시예에서는 전처리부 외부에서 다운샘플링이 일어나며 내부 샘플링주파수(ISF, internal sampling frequency)로 12800Hz를 사용할 수 있다.
단계(S1202)에서 상기 부호화 장치는 상기 필터링된 입력 신호를 통해 선형 예측 계수를 추출한다. 여기서, 상기 부호화 장치는 상기 선형 예측 계수를 양자화에 유리한 형태(예를 들어, ISF(Immittance spectral Frequencies) 또는 LSF(Line Spectral Frequencies) 계수)로 변환한 후 다양한 양자화 방법(예를 들어, 벡터 양자화기)를 통해 양자화한다.
단계(S1203)에서 상기 부호화 장치는 인지 가중 필터를 통해 전처리를 거친 신호를 필터링한다. 여기서, 상기 부호화 장치는 인지 가중 필터를 통해 인체 청각 구조의 마스킹 효과를 이용하기 위하여 양자화 잡음을 마스킹 범위 안으로 줄인다.
단계(S1204)에서 상기 부호화 장치는 상기 인지 가중 필터에서 필터링되어 전송하는 신호를 이용하여 개루프 피치가 탐색한다.
단계(S1205)에서 상기 부호화 장치는 단계(S1201)에서 필터링된 신호를 수신하여 상기 필터링된 신호의 특성을 분석하며, 음성 활성도를 탐색한다. 입력 신호에 대한 특성으로서 일례로, 주파수 도메인의 기울기정보, 각 바크 밴드의 에너지 등이 분석될 수 있다.
단계(S1206)에서 상기 부호화 장치는 개루프 피치 및 음성 활성도에 대한 정보들을 이용하여 프레임의 부호화 모드를 선택한다. 우선, 상기 부호화 장치는 부호화 모드의 선택에 앞서 전송된 정보를 이용하여 현재 프레임의 성질을 결정할 수 있다. 즉, UV(unvoiced) 탐지 결과를 이용하여 현재 프레임을 유성음, 무성음, 묵음, 배경잡음 등으로 분류할 수 있다. 이때, 상기 부호화 장치는 분류된 결과를 바탕으로 현재 프레임에서 사용할 부호화 모드를 결정할 수 있다. 이 경우, 상기 부호화 모드는 TCX 모드, 유성음, 에너지가 큰 배경잡음, 그리고 배경잡음이 있는 유성음 등에 대한 유성(voiced)모드, 무성(unvoiced)모드 및 묵음(silence)모드 중 하나의 모드가 선택될 수 있다. 여기서, 상기 TCX 모드와 상기 유성모드 각각은 서로 다른 비트율을 갖는 하나 이상의 모드일 수 있다.
단계(S1207)에서 상기 부호화 장치는 상기 TCX 모드로 상기 부호화 모드가 선택된 프레임을 부호화하고, 단계(S1208)에서 상기 유성모드로 상기 부호화 모드가 선택된 프레임을 부호화하고, 단계(S1209)에서 무성음에 대한 무성모드로 상기 부호화 모드가 선택된 프레임을 부호화하고, 단계(S1210)에서 상기 묵음모드로 상기 부호화 모드가 선택된 프레임을 부호화한다.
여기서, 상기 부호화 모드는 TCX 모드인 경우 256,512,1024 크기를 갖는 부호화 모드가 이용될 수 있으며, 상기 유성모드, 상기 무성모드 및 상기 묵음모드를 포함하여 모두 6개의 모드가 이용될 수 있다. 이러한 부호화 모드의 선택에는 다양한 방식이 이용 가능하다.
첫째로, 개루프로 부호화 모드를 선택하는 방법이 있다. 이 경우에는 미리 신호의 특성을 파악하는 모듈을 거쳐 현재 구간의 신호특성을 정확히 결정하고 이 신호에 가장 적절한 부호화 모드를 선택하는 방식이다. 예를 들어, 현재의 입력 신호의 구간이 묵음으로 판정된 경우에는 묵음모드를 통해 상기 현재의 입력 신호를 부호화하고, 무성으로 결정이 된 경우에는 무성모드를 통해 상기 현재의 입력 신호를 부호화할 수 있다. 또한, 배경잡음이 특정 스레스홀드(threshold) 값 이하인 유성 구간이거나, 배경잡음이 없는 유성 구간인 경우에는 유성모드를 통해 상기 현재의 입력 신호를 부호화할 수 있다. 그 이외의 경우에는 상기 현재의 입력 신호를 상기 TCX 모드를 통해 부호화할 수 있다.
둘째로, 폐루프(Closed-loop)로 부호화 모드를 선택하는 방법이 있다. 이 방식은 실제로 현재의 입력 신호를 부호화하고, 부호화한 결과와 원 신호간의 신호대잡음비(Signal-to-Noise Ratio, SNR)나 또 다른 측정값을 이용하여 가장 효율적인 부호화 모드를 선택하는 방식이다. 즉, 이러한 경우에는 사용 가능한 모든 부호화 모드에 대해 부호화 과정을 거쳐서 결정해야 하므로 복잡도에 대한 단점이 있지만 성능은 뛰어날 수 있다. 특히 신호대잡음비를 이용하여 부호화기를 결정할 때 중요한 문제는 사용된 비트량이 동일한지가 중요한 자료가 된다. 현재 무성모드 및 묵음모드에서는 기본적으로 비트 사용량이 각기 모두 다르므로 사용 비트대비의 신호대잡음비를 구하여 가장 적절한 부호화 모드를 결정해야 한다. 이에 더해, 부호화 방식도 차이가 있으므로 각 방식에 적절한 가중치를 사용하여 최종 선택을 조절할 수도 있다.
셋째로, 상술한 두 가지 부호화 모드 선택 방법을 혼합하여 부호화 모드를 선택하는 방법이 있다. 이는 음성신호의 신호대잡음비가 낮지만 실제로 원음에 가깝게 들리는 경우가 종종 존재하기 때문에 이용 가능하다. 그러므로, 개루프와 폐루프를 이용한 부호화 방법을 혼합하여 복잡도도 낮추며 음질도 우수한 부호화가 가능해진다. 이 방법의 예로는 먼저 기본적으로 묵음인 경우를 탐색하여 최종적으로 현재의 구간이 묵음으로 결정이 되면 묵음모드를 이용하여 부호화할 수 있다. 그리고 현재 구간이 무성음으로 결정되면 무성모드를 이용하여 부호화할 수 있다. 그리고 배경잡음인 경우 신호의 특성에 따라 다양하게 분류가 가능하며 묵음 및 유성의 요건에 해당하지 않으면 일단 유성 및 그 외의 신호로 분류가 된다. 이러한 배경잡음 신호와 정상적인 유성신호, 그리고 배경잡음이 있는 유성신호 등은 TCX 모드 및 유성모드를 통해 부호화될 수 있다. 즉, TCX 모드와 유성모드 둘에 대해서만 개루프 또는 폐루프 중 하나를 이용하여 부호화할 수 있다. TCX 모드 및 유성모드만을 이용한 부호화 기술은 기존에 표준화가 완료된 AMR-WB+ 부호화기에 잘 나타나 있다.
이후 상기 부호화 장치는 선택된 모드에 대한 후처리 작업을 병행할 수 있다. 예를 들어, 상기 후처리 작업의 한가지 방식으로 선택된 부호화 모드에 대해 제약(constraint)을 주는 방법이 있다. 이는 음질에 영향을 주는 부적절한 모드의 조합을 없앰으로써 최종 부호화된 신호의 음질을 극대화 하는 방식이다. 예를 들어, 수퍼프레임 내부의 각 프레임을 부호화할 때, 묵음모드 또는 무성모드의 프레임 이후에 하나의 유성모드 또는 TCX 모드의 프레임이 오고 그 이후에 다시 묵음모드 또는 무성모드의 프레임이 오는 경우, 상기 제약을 적용하여 마지막 묵음모드 또는 무성모드의 프레임을 강제로 유성모드 또는 TCX 모드의 프레임으로 변경하는 방식이다. 이러한 방식은 유성모드 또는 TCX 모드의 프레임이 하나만 나타나게 되는 경우, 제대로 부호화를 시작하기도 전에 모드가 바뀌는 현상으로 인해 음질에 영향을 줄 수 있으므로 짧은 유성모드 또는 TCX 모드 프레임을 지양하기 위해 이용될 수 있다.
다른 제약으로 모드 변환 시에 일시적으로 부호화 모드를 수정하는 방식이 있다. 즉, 묵음모드 또는 무성모드의 프레임 이후에 유성모드 또는 TCX 모드의 프레임이 오는 경우 'acelp_core_mode'와 상관없이 일시적으로 뒤따르는 하나의 프레임에 대해 부호화 모드를 상향시킬 수 있다. 예를 들어, 유성모드 또는 TCX 모드의 프레임을 위해 전체적으로 부호화 가능한 프레임의 모드가 0부터 7까지 있다고 가정한다. 현재 프레임의 모드를 나타내는 'acelp_core_mode'가 모드 1인 경우 위의 조건에 해당하면 현재 프레임의 최종모드를 현재 모드 + 1~6 중에서 하나를 선택할 수 있다.
세 번째 제약으로 묵음모드 또는 무성모드의 프레임은 낮은 비트율에서만 활성화되도록 할 수 있다. 특히, 특정 비트율 이상에서는 비트율보다 음질이 더 중요한 경우가 있는데 이러한 방식이 아주 높은 비트율에서는 전체음질 관점에서 마이너스 방향이 될 수도 있으므로 이러한 경우에는 단지 유성모드 또는 TCX 모드의 프레임만을 이용하여 부호화할 수도 있다. 이 기준은 개발자가 적절하게 선택할 수 있다. 하나의 예로는 256샘플로 이루어진 프레임당 300비트 이하로 부호화되는 경우에는 묵음모드 또는 무성모드의 프레임을 사용하고, 그 이상에서 부호화되는 경우에는 유성모드 또는 TCX 모드의 프레임만을 이용하여 부호화할 수 있다.
네 번째 제약으로는 현재 프레임의 특성을 파악하여 순간적으로 코딩 모드를 수정할 수 있다. 즉, 현재 프레임의 부호화가 유성모드 또는 TCX 모드의 프레임으로 결정이 되었음에도 불구하고 이 프레임이 온셋(onset)이거나 트랜지션(transition)처럼 주기성이 낮은 경우에는 이러한 프레임의 부호화가 이후의 성능에 영향을 줄 수 있으므로 'acelp_core_mode'와 상관없이 일시적으로 높은 비트율로 부호화할 수 있다. 예를 들어, 유성모드 또는 TCX 모드의 프레임을 위해 전체적으로 부호화 가능한 프레임의 모드가 0부터 7까지 있다고 가정할 때, 현재 프레임의 'acelp_core_mode'가 모드 1인 경우 위의 조건(온셋 이거나 트랜지션)에 해당하면 현재 프레임의 최종모드를 현재 모드 + 1~6 중에서 하나를 선택할 수 있다.
단계(S1211)에서 상기 부호화 장치는 부호화에 사용된 각 필터의 상태를 갱신하고, 단계(S1212)에서 전송받은 인덱스들을 취합하여 비트스트림으로 변형하여 저장장치에 저장하거나 채널을 통하여 전송할 수 있다.
도 13은 본 발명의 일실시예에 있어서, 복호화 장치의 내부 구성을 설명하기 위한 블록도이다. 본 실시예에 따른 복호화 장치는 도 13에 도시된 바와 같이 모드 확인부(1301), TCX 복호화부(1302), 유성모드 복호화부(1303), 무성모드 복호화부(1304) 및 묵음모드 복호화부(1305)를 포함한다.
모드 확인부(1301)는 입력된 비트스트림에서 프레임의 부호화 모드를 확인한다. 여기서, 상기 부호화 모드는 상기 무성모드, 묵음에 대한 묵음모드 유성음과 배경잡음에 대한 유성모드 및 TCX 모드를 포함할 수 있다.
TCX 복호화부(1302)는 상기 TCX 모드로 상기 부호화 모드가 선택된 프레임을 복호화하고, 유성모드 복호화부(1303)는 상기 유성모드로 상기 부호화 모드가 선택된 프레임을 복호화하고, 무성모드 복호화부(1304)는 무성음에 대한 무성모드로 상기 부호화 모드가 선택된 프레임을 복호화하고, 묵음모드 복호화부(1305)는 상기 묵음모드로 상기 부호화 모드가 선택된 프레임을 복호화한다.
여기서, 복수의 프레임으로 구성된 수퍼프레임에서 상기 무성음 및 묵음이 모두 탐지되지 않는 경우 상기 수퍼프레임 내의 모든 프레임의 부호화 모드가 동일하게 선택되었을 수 있고, 상기 수퍼프레임에서 상기 무성음 및 상기 무음 중 적어도 하나가 탐지되는 경우 상기 수퍼프레임 내의 각각의 프레임의 부호화 모드가 개별적으로 선택되었을 수 있다.
이상과 같이 본 발명을 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명하였으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
105: 음성 활성도 탐색부 106: 모드 선택부
109: 무성모드 부호화부 110: 묵음모드 부호화부

Claims (8)

  1. 적어도 하나의 프로세서를 포함하고, 상기 프로세서는
    프레임의 비트율이 미리 정해진 비트율보다 높은 경우, 음성신호의 특성과는 상관없이 TCX(transform coded excitation) 방식에 근거하여 상기 프레임을 부호화하고,
    상기 프레임의 비트율이 상기 미리 정해진 비트율보다 낮은 경우, 적어도 음성신호의 특성 및 상기 비트율에 근거하여, 제1 부호화모드와 제2 부호화모드를 포함하는 복수의 모드 중에서 상기 프레임의 부호화 모드를 선택하고,
    상기 선택된 부호화 모드가 상기 제1 부호화모드인 경우, CELP(code-excited linear prediction) 방식에 근거하여 상기 프레임을 부호화하고,
    상기 선택된 부호화 모드가 상기 제2 부호화모드인 경우, 상기 TCX 방식에 근거하여 상기 프레임을 부호화하는 것을 특징으로 하는 부호화 장치.
  2. 삭제
  3. 제1 항에 있어서, 상기 프로세서는
    복수의 프레임으로 구성된 수퍼프레임에서 무성음 및 묵음이 탐지되지 않는 경우 상기 수퍼프레임 내의 모든 프레임의 부호화 모드를 상기 TCX 방식으로 동일하게 선택하고, 상기 수퍼프레임에서 상기 무성음 및 상기 묵음 중 적어도 하나가 탐지되는 경우 상기 수퍼프레임 내의 각각의 프레임의 부호화 모드를 개별적으로 선택하는, 부호화 장치.
  4. 제3 항에 있어서, 상기 프로세서는
    기선정된 플래그를 상기 수퍼프레임에 삽입하여 상기 수퍼프레임에서 상기 무성음 및 상기 묵음 중 적어도 하나를 포함하는지 여부를 나타내는, 부호화 장치.
  5. 제4 항에 있어서, 상기 프로세서는
    상기 기선정된 플래그 및 상기 수퍼프레임 내의 모든 프레임의 공통 부호화 모드를 의미하는 ACELP 코어 모드에 기초하여 상기 수퍼프레임에 포함된 프레임의 부호화 모드를 결정하는, 부호화 장치.
  6. 제4 항에 있어서, 상기 프로세서는
    상기 기선정된 플래그 및 상기 수퍼프레임에 포함된 프레임마다 출력이 가능한 부호화 모드에 대해 이뉴머레이션을 적용한 인덱스를 이용하여 상기 프레임의 부호화 모드를 결정하는, 부호화 장치.
  7. 제1 항에 있어서,
    상기 부호화 모드는 무성모드, 묵음에 대한 묵음모드, 그리고 유성음과 배경잡음에 대한 유성모드를 더 포함하고,
    상기 프로세서는 상기 유성모드로 상기 부호화 모드가 선택된 프레임을 부호화하고, 상기 묵음모드로 상기 부호화 모드가 선택된 프레임을 부호화하는, 부호화 장치.
  8. 제1 항에 있어서, 상기 프로세서는
    상기 음성신호의 특성을 분석하여 음성 활성도를 탐색하고, 개루프 피치를 탐색하고,
    상기 음성 활성도 및 상기 개루프 피치에 따른 정보를 이용하여 프레임의 성질을 결정하고, 상기 성질에 따라 상기 프레임의 부호화 모드를 TCX 모드, 유성모드, 무성모드 및 묵음모드 중 하나의 모드로 선택하는, 부호화 장치.
KR1020170005228A 2017-01-12 2017-01-12 부호화 모드를 이용한 음성신호의 부호화/복호화 장치 및 방법 KR101798084B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170005228A KR101798084B1 (ko) 2017-01-12 2017-01-12 부호화 모드를 이용한 음성신호의 부호화/복호화 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170005228A KR101798084B1 (ko) 2017-01-12 2017-01-12 부호화 모드를 이용한 음성신호의 부호화/복호화 장치 및 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020160000465A Division KR101770301B1 (ko) 2016-01-04 2016-01-04 부호화 모드를 이용한 음성신호의 부호화/복호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170008319A KR20170008319A (ko) 2017-01-23
KR101798084B1 true KR101798084B1 (ko) 2017-11-15

Family

ID=57989802

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170005228A KR101798084B1 (ko) 2017-01-12 2017-01-12 부호화 모드를 이용한 음성신호의 부호화/복호화 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101798084B1 (ko)

Also Published As

Publication number Publication date
KR20170008319A (ko) 2017-01-23

Similar Documents

Publication Publication Date Title
KR101797033B1 (ko) 부호화 모드를 이용한 음성신호의 부호화/복호화 장치 및 방법
US10885926B2 (en) Classification between time-domain coding and frequency domain coding for high bit rates
KR100647336B1 (ko) 적응적 시간/주파수 기반 오디오 부호화/복호화 장치 및방법
KR100732659B1 (ko) 가변 비트 레이트 광대역 스피치 음성 코딩시의 이득양자화를 위한 방법 및 장치
KR100574031B1 (ko) 음성합성방법및장치그리고음성대역확장방법및장치
KR20100115215A (ko) 가변 비트율 오디오 부호화 및 복호화 장치 및 방법
KR101774541B1 (ko) 스피치 처리를 위한 무성음/유성음 결정
US20120173247A1 (en) Apparatus for encoding and decoding an audio signal using a weighted linear predictive transform, and a method for same
KR20030041169A (ko) 무성 음성의 코딩 방법 및 장치
KR101610765B1 (ko) 음성 신호의 부호화/복호화 방법 및 장치
EP2888734A1 (en) Audio classification based on perceptual quality for low or medium bit rates
US20090299755A1 (en) Method for Post-Processing a Signal in an Audio Decoder
KR20230129581A (ko) 음성 정보를 갖는 개선된 프레임 손실 보정
KR101798084B1 (ko) 부호화 모드를 이용한 음성신호의 부호화/복호화 장치 및 방법
KR101770301B1 (ko) 부호화 모드를 이용한 음성신호의 부호화/복호화 장치 및 방법
WO2003001172A1 (en) Method and device for coding speech in analysis-by-synthesis speech coders
KR101377667B1 (ko) 오디오/스피치 신호의 시간 도메인에서의 부호화 방법
Unver Advanced Low Bit-Rate Speech Coding Below 2.4 Kbps

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant