ACELP
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
ACELP는 코드 여기 선형 예측(CELP)을 기반으로 하는 음성 부호화 알고리즘이다. ACELP는 대수적 구조를 가진 코드북을 사용하여 저장 공간이나 계산 복잡성을 줄이는 장점이 있다. ACELP는 음성 샘플 블록을 두 개의 시간 가변 필터를 통해 필터링하여 합성하며, ITU G.722.2 코덱과 같은 다양한 응용 분야에서 활용된다. ACELP의 주요 응용 기술 중 하나는 CS-ACELP로, ITU-T G.729에서 사용되며, 코드북을 두 개의 코드북의 선형 결합으로 표현하여 비트 오류에 대한 강인성을 높이고 계산 복잡성을 줄인다.
더 읽어볼만한 페이지
- 음성 코덱 - G.711
G.711은 8 kHz 표본 추출 주파수와 64 kbit/s의 비트 전송률을 갖는 파형 음성 코더로, μ-law와 A-law라는 두 가지 컴팬딩 알고리즘을 사용하며, 부록 I, II 및 확장 표준을 통해 네트워크 환경에서의 효율성과 음질을 높인다. - 음성 코덱 - G.729
G.729는 ITU-T에서 표준화한 8kbps의 음성 코덱으로, ACELP 코딩 방식을 사용하여 VoIP, 화상 회의 등 다양한 통신 시스템에서 활용되며, G.729a(낮은 복잡도), G.729b(음성 활동 감지 및 불연속 전송 기능) 등의 부록을 가진다.
ACELP | |
---|---|
개요 | |
종류 | 음성 코덱 |
개발 | VoiceAge Corporation |
기술 정보 | |
방식 | 코드 여기 선형 예측 (CELP) 기반 |
특징 | 대수적 코드북 사용 |
응용 분야 | GSM, UMTS, VoIP 등 다양한 통신 표준 |
비트 전송률 | 다양한 비트 전송률 지원 (예: 4.8 kbps ~ 40 kbps 이상) |
샘플링 속도 | 8 kHz, 16 kHz 등 다양한 샘플링 속도 지원 |
관련 표준 | |
표준 | GSM UMTS ITU-T ETSI |
특허 | US 5717825 |
추가 정보 | |
설명 | 대수적 코드 여기 선형 예측 (ACELP)은 특히 디지털 통신에서 음성을 압축하는 데 사용되는 음성 코딩 표준임. |
2. 기능
ACELP의 주요 장점은 사용되는 대수 코드북이 저장 공간 (RAM/ROM) 또는 복잡성 (CPU 시간) 문제 없이 매우 커질 수 있다는 점이다(> 50 비트).[1] ACELP 알고리즘은 코드 여기 선형 예측(CELP)에 사용된 알고리즘을 기반으로 하지만, ACELP 코드북은 특정 대수적 구조를 갖도록 설계되었다.[1]
ACELP의 핵심은 대수 코드북을 사용하여 효율성을 높인 것이다. ACELP는 코드 여기 선형 예측(CELP) 알고리즘을 기반으로 하지만, 코드북이 특정 대수적 구조를 갖도록 설계되어 있다.
최적의 혁신 및 이득 매개변수를 찾는 것을 목표로 하는 혁신적인 코드북 탐색에는 16비트 대수적 코드북이 사용된다.[1] 혁신 벡터는 최대 4개의 0이 아닌 펄스를 포함한다.[1]
ACELP에서, ''N''개의 음성 샘플 블록은 이득 인자 ''g'' ''c''로 크기가 조정된 코드북의 적절한 혁신 시퀀스를 두 개의 시간 가변 필터를 통해 필터링하여 합성된다.[1]
장기(피치) 합성 필터는 다음과 같다.
:
단기 합성 필터는 다음과 같다.
:[1]
3. 기술
ACELP에서 ''N''개의 음성 샘플 블록은 이득 인자 ''g'' ''c''로 크기가 조정된 코드북의 적절한 혁신 시퀀스를 두 개의 시간 가변 필터를 통해 필터링하여 합성된다. 사용되는 필터는 다음과 같다.
:
:
ACELP의 주된 이점은 대수적 부호록이 저장(ROM/RAM)이나 복잡도(CPU 시간) 문제를 발생시키지 않고도 50비트 이상 커질 수 있다는 것이다.[8] 1990년대 이후, 효율성 때문에 ACELP의 코드북 표현 방식은 가장 많이 사용되고 있다.[10]
3. 1. CELP 기반 기술
ACELP 알고리즘은 코드 여기 선형 예측(CELP)에 사용된 알고리즘을 기반으로 하지만, ACELP 코드북은 특정 대수적 구조를 갖도록 설계되었다. ACELP는 대수적으로 결정된 위치에 배치된 진폭이 +1/-1인 펄스의 조합으로 구성된 고정형 코드북과 CELP 알고리즘을 결합한 방식이다.
ACELP는 다음과 같은 특징을 갖는다.
ACELP의 기반인 CELP는 "합성에 의한 분석" 기법을 사용하여 음성 파형을 재합성하고 청각 보정을 수행한 후의 신호와 원래 신호를 비교하여 코드북에서 오차가 최소가 되는 것을 탐색한다. 이를 단순하게 실행하면 탐색에 많은 계산량이 필요하며, 계산량을 줄이기 위한 방안이 필요하다. 또한 코드북의 크기가 커지면 많은 메모리도 필요하다. ACELP는 이러한 점을 개선하기 위해 고안되었다.
ACELP에 사용되는 코드북의 기본적인 아이디어는 해밍 부호 등 오류 정정 부호의 개념과 비슷하다. 해밍 부호 등에서는 부호 공간 내에 특정 규칙을 사용하여 거리(예: 해밍 거리)가 동일하게 되도록 부호를 할당하고, 잘못된 비트 패턴에 대해 가장 거리가 가까운 부호를 올바른 부호(수정된 부호)로 간주한다. 마찬가지로, ACELP에 사용되는 코드북은 진폭이 +1/-1인 펄스를 일정한 규칙으로 할당한 것을 사용하며, 그 중에서 오차가 최소가 되는 것을 부호화 결과로 한다. 규칙적으로 생성된 코드북은 메모리를 소비하지 않으며, 오차가 최소가 되는 것을 탐색하는 데에도 합리적이다.
ACELP에서는 진폭이 고정된 펄스를 사용하기 때문에, 1개의 펄스에서 선형 예측필터의 출력을 구하면 모든 펄스의 합에 의한 출력은 그것들의 합성에 의해 구할 수 있어, 계산량을 줄일 수 있다. 또한, 일반적으로 오차를 최소로 하기 위해 필요한 +1/-1 펄스는 소수여도 충분하다는 것이 알려져 있으며, 이것을 이용하여 더욱 알고리즘을 효율화하고 있다.
ITU G.722.2 코덱 (12.65kbps 모드 시)의 고정 코드북의 예시는 다음과 같다[11]。 64 샘플로 구성된 처리 단위(서브 프레임)를 다음 4개의 트랙으로 나누어, 각각에 대해 2비트(전체 8비트)의 +1/-1 펄스를 할당한다.
트랙 | 값 | 펄스 | 펄스 위치 |
---|---|---|---|
1 | ±1 | i0, i4 | 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60 |
2 | ±1 | i1, i5 | 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61 |
3 | ±1 | i2, i6 | 2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62 |
4 | ±1 | i3, i7 | 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59, 63 |
ITU G.722.2는 여러 비트율을 지원하지만, 높은 비트율에서는 1트랙에 할당하는 펄스의 수를 늘리고, 낮은 비트율의 경우에는 1트랙에 할당하는 펄스의 수를 줄이거나 트랙의 수를 줄인다. 고정 코드북을 이처럼 유연하게 재구성할 수 있다는 점이 ACELP의 특징 중 하나이다.
3. 2. 대수적 코드북
ACELP의 주요 장점은 사용되는 대수 코드북이 저장 공간 (RAM/ROM) 또는 복잡성 (CPU 시간) 문제 없이 매우 커질 수 있다는 점이다(> 50 비트).[8] ACELP 알고리즘은 코드 여기 선형 예측(CELP)에 사용된 알고리즘을 기반으로 하지만, ACELP 코드북은 특정 대수적 구조를 갖도록 설계되었다.ACELP는 대수적으로 결정된 위치에 배치된 진폭이 +1/-1인 펄스의 조합으로 구성된 고정형 코드북과 CELP 알고리즘을 결합한 방식이며, 다음과 같은 특징이 있다.
- 대수적인 특성으로 인해 코드 탐색 효율이 좋다.
- 코드북 전체를 테이블로 준비할 필요가 없기 때문에 메모리를 절약할 수 있다.
- 유연성이 뛰어나 큰 크기의 코드북을 쉽게 구현할 수 있다.
ACELP에 사용되는 코드북의 기본적인 아이디어는 해밍 부호 등 오류 정정 부호의 개념과 유사하다. 해밍 부호 등에서는 부호 공간 내에 특정 규칙을 사용하여 거리(예: 해밍 거리)가 동일하게 되도록 부호를 할당하고, 잘못된 비트 패턴에 대해 가장 거리가 가까운 부호를 올바른 부호(수정된 부호)로 간주한다. 마찬가지로, ACELP에 사용되는 코드북은 진폭이 +1/-1인 펄스를 일정한 규칙으로 할당한 것을 사용하며, 그 중에서 오차가 최소가 되는 것을 부호화 결과로 한다. 규칙적으로 생성된 코드북은 메모리를 소비하지 않으며, 오차가 최소가 되는 것을 탐색하는 데에도 합리적이다.
ACELP에서는 진폭이 고정된 펄스를 사용하기 때문에, 1개의 펄스에서 선형 예측필터의 출력을 구하면 모든 펄스의 합에 의한 출력은 그것들의 합성에 의해 구할 수 있어 계산량을 줄일 수 있다. 또한, 일반적으로 오차를 최소로 하기 위해 필요한 +1/-1 펄스는 소수여도 충분하다는 것이 알려져 있으며, 이것을 이용하여 더욱 알고리즘을 효율화하고 있다.
다음은 ITU G.722.2 코덱 (12.65kbps 모드 시)의 고정 코드북의 예이다.[11] 64 샘플로 구성된 처리 단위(서브 프레임)를 다음 4개의 트랙으로 나누어, 각각에 대해 2비트(전체 8비트)의 +1/-1 펄스를 할당한다.
트랙 | 값 | 펄스 | 펄스 위치 |
---|---|---|---|
1 | ±1 | i0, i4 | 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60 |
2 | ±1 | i1, i5 | 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61 |
3 | ±1 | i2, i6 | 2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62 |
4 | ±1 | i3, i7 | 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59, 63 |
ITU G.722.2는 여러 비트율을 지원하지만, 높은 비트율에서는 1트랙에 할당하는 펄스의 수를 늘리고, 낮은 비트율의 경우에는 1트랙에 할당하는 펄스의 수를 줄이거나 트랙의 수를 줄인다. 고정 코드북을 이처럼 유연하게 재구성할 수 있다는 점이 ACELP의 특징 중 하나이다.
3. 3. 펄스 조합 및 알고리즘 효율화
ACELP는 대수 코드북을 사용하여 저장 공간 (RAM/ROM)이나 복잡성 (CPU 시간) 문제 없이 50비트 이상으로 쉽게 확장할 수 있다는 주요 장점을 가진다.[8] 이는 CELP 알고리즘을 기반으로 하지만, ACELP 코드북은 특정 대수적 구조를 갖도록 설계되어 효율성을 높였다.[9][10]ACELP는 대수적으로 결정된 위치에 배치된 진폭이 +1/-1인 펄스의 조합으로 구성된 고정형 코드북과 CELP 알고리즘을 결합한 방식이다. 이러한 특징 덕분에 다음과 같은 장점을 가진다.
- 효율적인 코드 탐색: 대수적인 특성으로 인해 코드 탐색 효율이 높다.
- 메모리 절약: 코드북 전체를 테이블로 준비할 필요가 없어 메모리를 절약할 수 있다.
- 뛰어난 유연성: 큰 크기의 코드북을 쉽게 구현할 수 있다.
ACELP의 기본 아이디어는 오류 정정 부호의 생각과 유사하다. 해밍 부호처럼 부호 공간 내에 특정 규칙을 사용하여 펄스를 할당하고, 오차가 최소가 되는 것을 부호화 결과로 사용한다. 규칙적으로 생성된 코드북은 메모리를 절약하고, 오차 최소화 탐색도 효율적으로 수행할 수 있게 한다.
ACELP는 진폭이 고정된 펄스를 사용하므로, 선형 예측 필터의 출력을 펄스별로 계산하고 합성하여 계산량을 줄인다. 또한, 일반적으로 소수의 +1/-1 펄스만으로도 충분하다는 점을 활용하여 알고리즘을 더욱 효율화한다.
ITU G.722.2 코덱 (12.65kbps 모드)의 고정 코드북은 다음과 같은 예시를 통해 ACELP의 특징을 보여준다.
트랙 | 값 | 펄스 | 펄스 위치 |
---|---|---|---|
1 | ±1 | i0, i4 | 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60 |
2 | ±1 | i1, i5 | 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61 |
3 | ±1 | i2, i6 | 2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62 |
4 | ±1 | i3, i7 | 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59, 63 |
64 샘플로 구성된 처리 단위(서브 프레임)를 4개의 트랙으로 나누고, 각 트랙에 2비트(전체 8비트)의 +1/-1 펄스를 할당한다. G.722.2는 다양한 비트율을 지원하며, 비트율에 따라 펄스 수나 트랙 수를 조절하여 고정 코드북을 유연하게 재구성하는 ACELP의 특징을 잘 보여준다.
3. 4. 필터
ACELP에서, ''N''개의 음성 샘플 블록은 이득 인자 ''g'' ''c''로 크기가 조정된 코드북의 적절한 혁신 시퀀스를 두 개의 시간 가변 필터를 통해 필터링하여 합성된다.장기(피치) 합성 필터는 다음과 같다.
:
단기 합성 필터는 다음과 같다.
:
ACELP 알고리즘의 기반인 CELP는 "합성에 의한 분석" 기법을 사용하여 음성 파형을 재합성하고 청각 보정을 수행한 후의 신호와 원래 신호를 비교하여 코드북에서 오차가 최소가 되는 것을 탐색한다. 이를 단순하게 실행하면 탐색에 많은 계산량이 필요하며, 계산량을 줄이기 위한 궁리가 필요하다. 또한 코드북의 크기가 커지면 많은 메모리도 필요하다. ACELP는 이러한 점을 개선하기 위해 고안되었다.
ACELP에 사용되는 코드북의 기본적인 아이디어는 해밍 부호 등 오류 정정 부호의 생각과 비슷하다. 해밍 부호 등에서는 부호 공간 내에 특정 규칙을 사용하여 거리(예: 해밍 거리)가 동일하게 되도록 부호를 할당하고, 잘못된 비트 패턴에 대해 가장 거리가 가까운 부호를 올바른 부호(수정된 부호)로 간주한다. 마찬가지로, ACELP에 사용되는 코드북은 진폭이 +1/-1인 펄스를 일정한 규칙으로 할당한 것을 사용하며, 그 중에서 오차가 최소가 되는 것을 부호화 결과로 한다. 규칙적으로 생성된 코드북은 메모리를 소비하지 않으며, 오차가 최소가 되는 것을 탐색하는 데에도 합리적이다.
ACELP에서는 진폭이 고정된 펄스를 사용하기 때문에, 1개의 펄스에서 선형 예측필터의 출력을 구하면 모든 펄스의 합에 의한 출력은 그것들의 합성에 의해 구할 수 있어, 계산량을 줄일 수 있다. 또한, 일반적으로 오차를 최소로 하기 위해 필요한 +1/-1 펄스는 소수여도 충분하다는 것이 알려져 있으며, 이것을 이용하여 더욱 알고리즘을 효율화하고 있다.
ITU G.722.2 코덱 (12.65kbps 모드 시)의 고정 코드북의 예는 다음과 같다[11]。 64 샘플로 구성된 처리 단위(서브 프레임)를 다음 4개의 트랙으로 나누어, 각각에 대해 2비트(전체 8비트)의 +1/-1 펄스를 할당한다.
트랙 | 값 | 펄스 | 펄스 위치 |
---|---|---|---|
1 | ±1 | i0, i4 | 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60 |
2 | ±1 | i1, i5 | 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61 |
3 | ±1 | i2, i6 | 2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62 |
4 | ±1 | i3, i7 | 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59, 63 |
ITU G.722.2는 여러 비트율을 지원하지만, 높은 비트율에서는 1트랙에 할당하는 펄스의 수를 늘리고, 낮은 비트율의 경우에는 1트랙에 할당하는 펄스의 수를 줄이거나 트랙의 수를 줄인다. 고정 코드북을 이처럼 유연하게 재구성할 수 있다는 점이 ACELP의 특징 중 하나이다.
3. 5. 코드북 탐색 (G.722.2 예시)
ACELP 알고리즘은 코드 여기 선형 예측(CELP)에 사용된 알고리즘을 기반으로 하지만, ACELP 코드북은 특정 대수적 구조를 갖도록 설계되었다.최적의 혁신 및 이득 매개변수를 찾는 것을 목표로 하는 혁신적인 코드북 탐색에는 16비트 대수적 코드북이 사용된다. 혁신 벡터는 최대 4개의 0이 아닌 펄스를 포함한다.
ACELP에 사용되는 코드북의 기본적인 아이디어는 해밍 부호 등 오류 정정 부호의 생각과 비슷하다. 해밍 부호 등에서는 부호 공간 내에 특정 규칙을 사용하여 거리(예: 해밍 거리)가 동일하게 되도록 부호를 할당하고, 잘못된 비트 패턴에 대해 가장 거리가 가까운 부호를 올바른 부호(수정된 부호)로 간주한다.
ITU G.722.2 코덱 (12.65kbps 모드 시)의 고정 코드북의 예는 다음과 같다[11]。 64 샘플로 구성된 처리 단위(서브 프레임)를 다음 4개의 트랙으로 나누어, 각각에 대해 2비트(전체 8비트)의 +1/-1 펄스를 할당한다.
트랙 | 값 | 펄스 | 펄스 위치 |
---|---|---|---|
1 | ±1 | i0, i4 | 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60 |
2 | ±1 | i1, i5 | 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61 |
3 | ±1 | i2, i6 | 2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62 |
4 | ±1 | i3, i7 | 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59, 63 |
ITU G.722.2는 여러 비트율을 지원하는데, 높은 비트율에서는 1트랙에 할당하는 펄스의 수를 늘리고, 낮은 비트율의 경우에는 1트랙에 할당하는 펄스의 수를 줄이거나 트랙의 수를 줄인다. 고정 코드북을 이처럼 유연하게 재구성할 수 있다는 점이 ACELP의 특징 중 하나이다.
4. 응용
ACELP를 응용한 알고리즘으로 ITU-T G.729 (8kbps)에서 사용되는 CS-ACELP(conjugate structure - ACELP|공액 구조 ACELP영어)가 있다.[12]
4. 1. CS-ACELP
ACELP를 응용한 알고리즘의 대표적인 예로, ITU-T G.729 (8kbps)에서 사용되는 '''CS-ACELP'''(conjugate structure - ACELP|공액 구조 ACELP영어)가 있다.[12]일반적으로, 공액 구조는 코드북을 두 개의 코드북의 선형 결합으로 나타내는 것으로, 벡터 양자화를 위해 사용되며, 처음에는 CELP의 응용인 CS-CELP에서 사용되었다. 여기서 ''ci , cj''는 각각 코드북을, α는 계수를 나타낸다.
:
이 방법은 2단계의 벡터 양자화와 매우 유사한 방법으로, 단순한 벡터 양자화에 비해 비트 오류에 강해지고, 코드북에 필요한 메모리가 줄어들며, 계산 복잡성을 줄이는 효과가 있다.[12]
CS-ACELP는 ACELP에 공액 구조의 코드북을 결합한 것이다. ITU-T G.729에서는 두 개의 코드북의 단순한 합의 형태로 표현된다.[12]
:
참조
[1]
웹사이트
Transfer of technology
https://www.usherbro[...]
[2]
웹사이트
ACELP map
https://web.archive.[...]
[3]
웹사이트
Related Standards Specifications
http://www.voiceage.[...]
2007-10-14
[4]
웹사이트
Codec Technologies
http://www.voiceage.[...]
2009-09-20
[5]
웹사이트
Codec Technologies
http://www.voiceage.[...]
VoiceAge Corporation
2009-09-20
[6]
웹사이트
ACELP.net — Beyond the Standards
http://www.voiceage.[...]
2010-01-03
[7]
특허
Algebraic code-excited linear prediction speech coding method
[8]
논문
Fast CELP coding based on algebraic codes
[9]
논문
On reducing computational complexity of codebook search in CELP coder through the use of algebraic codes
[10]
서적
Springer Handbook of Speech Processing
Springer
[11]
웹사이트
G.722.2 : Wideband coding of speech at around 16 kbit/s using Adaptive Multi-Rate Wideband (AMR-WB)
https://www.itu.int/[...]
ITU-T
2010-07-05
[12]
서적
Springer Handbook of Speech Processing
Springer
[13]
특허
Algebraic code-excited linear prediction speech coding method
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com