KR100463559B1 - 대수 코드북을 이용하는 켈프 보코더의 코드북 검색방법 - Google Patents

대수 코드북을 이용하는 켈프 보코더의 코드북 검색방법 Download PDF

Info

Publication number
KR100463559B1
KR100463559B1 KR10-2002-0069567A KR20020069567A KR100463559B1 KR 100463559 B1 KR100463559 B1 KR 100463559B1 KR 20020069567 A KR20020069567 A KR 20020069567A KR 100463559 B1 KR100463559 B1 KR 100463559B1
Authority
KR
South Korea
Prior art keywords
pulse
search
branches
codebook
searching
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR10-2002-0069567A
Other languages
English (en)
Other versions
KR20040041716A (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 KR10-2002-0069567A priority Critical patent/KR100463559B1/ko
Priority to US10/693,732 priority patent/US20040093204A1/en
Publication of KR20040041716A publication Critical patent/KR20040041716A/ko
Application granted granted Critical
Publication of KR100463559B1 publication Critical patent/KR100463559B1/ko
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • G10L19/107Sparse pulse excitation, e.g. by using algebraic codebook
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0013Codebook search algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Mathematical Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

깊이우선 가지 검색방법을 사용하는 에이켈프 코드북 검색에 있어서 검색 가지를 제한하는 방법을 사용하여 보다 적은 계산량으로 대수 코드북을 검색하는 방법을 제공하기 위한 것으로, 이를 위해 본 발명은 소정수의 펄스에 대응하는 일련의 트랙들, 각 트랙에 속하는 펄스의 위치들로 구성된 대수코드북을 구비하여, 상기 각 트랙별 펄스의 조합에 따라 코드인덱스를 생성하기 위해 대수코드북을 검색하는 방법에 있어서, 최적의 펄스 위치가 존재할 가지를 예측하기 위해 가지의 일정한 레벨(L)까지 검색하는 제1 단계; 상기 제1 단계의 검색결과에 따라 소정 개수(T)의 가지를 선택하고 나머지는 제거하는 제2 단계; 및 상기 제2 단계에서 선택된 소정개수의 가지만을 검색하여 최적의 대수코드를 선택하는 제3 단계를 포함하는 대수코드북 검색 방법을 제공한다.

Description

대수 코드북을 이용하는 켈프 보코더의 코드북 검색방법{Method for searching codebook in CELP Vocoder using algebraic codebook}
본 발명은 음성 압축 기술에 관한 것으로, 특히 켈프(CELP:code excited linear prediction)형 보코딩(Vocoding)에 관한 것으로, 보다 자세하게는 대수코드북(algebraic codebook)을 이용하는 에이켈프(ACELP:Algebraic Code ExcitedLinear Prediction)형 보코딩에서 깊이-우선 가지 검색(depth-first tree search) 방법을 사용할 때 코드북 검색시간을 단축할 수 있는 방법에 관한 것이다.
디지털 기술의 음성 전송은 특히 장거리 및 디지털 무선 전화에 보급되고 있다. 음성 전송기술은 전송 채널을 통해 전송되는 정보의 양을 최소로 하는 반면에, 재현된 음성의 높은 음질을 유지하는 방법으로 발전되어 왔다. 음성이 간단하게 샘플링 및 디지털화되어 전송된다면 초당 64킬로비트(64kbps) 정도의 데이터 비율이 일반적인 아날로그 전화의 음질을 달성하기 위하여 요구되는데, 송,수신측에서 음성 분석에 따른 적절한 코딩, 전송 및 재합성을 이용하게 되면, 전송되는 데이터 비율에 있어서 상당한 감소가 달성될 수 있다. 인간의 음성 발생의 모델과 관련된 파라미터를 추출하므로써 발성된 음성을 압축하기 위한 방법을 사용하는 장치를 일반적으로 보코더(vocoder)라고 불린다.
보코더(음성 인코더/디코더)는, 통신 채널에서 요구되는 전송 대역을 줄이기 위해서 음성 신호를 압축하게 되는데, 호당 요구되는 전송 대역을 감소시킴으로써, 동일 통신 채널당 처리할 수 있는 호의 수를 증가시킬 수 있다.
선형예측코딩(LPC:linear predictive coding) 알고리즘과 같은 초기 음성 코딩 기법은 필터를 사용해서 잉여 신호를 제거하여 음성 신호를 압축한다. LPC 필터는 사람의 음성을 표본화하기 위한 스펙트럼 포락(spectral envelope)을 재생한다. 또한, LPC 필터는 무성음에 대해서 잡음성(noise-like) 신호를 수신하여 여기되는 반면, 비음 및 모음에 대해서는 준주기 입력(quasi periodic input)을 수신하여 여기하는 방법을 사용한다.
이후에 보다 효과적으로 코딩하기 위한 방법으로 켈프형 알고리즘이 제안되었다. 켈프형 보코딩은 4-8kbps에서 다른 32kbps 음성 코딩 기법에 필적하는 음성 품질을 얻을 수 있는 음성 데이터 압축 기법이다. 켈프형 보코더는 초기 LPC 알고리즘에 비해 2가지가 개선되었다. 첫째, 켈프형 보코더는 피치 예측기를 이용하여 피치 정보를 추출함으로써 보다 상세한 음성의 포착을 도모한다. 둘째, 켈프형 보코더는 실제 음성 파형으로부터 생성된 잔차 신호(residual signal)로부터 파생된 잡음성 신호도 LPC 필터를 여기시키는 장점을 가지고 있다.
켈프형 알고리즘은 좋은 음질을 유지하면서 저비트율 음성압축을 위하여 널리 사용되고 있다. 이러한 방식을 적용한 음성 부호화기는 셀룰라 통신, 위성통신 및 음성저장 장치등에서 널리 사용되고 있다.
켈프형 알고리즘에 사용되는 코드북으로서 초기에 제안된 코드북의 구조로는 통계적 코드북(Stochastic codebook)이 있다. 이것은 N개의 임의의 샘플로 구성된 코드들의 집합으로 구성된다. 그러나, 켈프(CELP)에 의한 합성 방식은 분석에 의한 합성 방식을 이용하므로 코드북의 탐색에 많은 시간을 필요로 한다. 최근에는 적은 양의 기본 벡터들의 선형조합에 기초한 통계적 코드북을 이용하여 코드북의 탐색시간을 많이 줄였다. 그러나, 이들 1세대 켈프(CELP)는 통계적 코드북을 저장하기 위하여 많은 저장 공간을 필요로 하고, 또한 대체적으로 탐색을 위하여 많은 시간을 필요로 한다.
이런 문제를 해결하기 위하여 대수코드북(Algebraic codebook)을 이용하는 켈프(CELP), 즉 에이켈프(ACELP) 알고리즘이 고안되었다.
에이켈프 알고리즘은 최근까지 G.729, GSM-EFR(Global System for Mobile communications-Enhanced Full Rate), EVRC (Enhanced Variable Rate Coder), AMR (Adaptive Multi-Rate) 등의 많은 음성코딩 표준들에 채택 되고 있다. 에이켈프 알고리즘은 여기신호를 모델링하기 위한 코드북을 사용하지 않기 때문에 코드북을 위한 저장공간이 필요 없고, 코드북 검색 방법도 효율적인 방법들을 사용하기 때문에 적은 계산량으로 검색을 할 수 있다.
에이켈프 알고리즘에서는 목표신호와 가장 오차를 적게하는 여기신호 펄스의 위치와 크기를 검색하여야 하는데, 전체 검색방법을 사용하는 경우에는 여전히 많은 계산량이 요구된다. 계산량을 줄이기 위해 사용하는 대표적인 방법으로는 밀착 검색(focused search) 방법과 깊이 우선 가지 검색(depth first tree search) 방법이 있다.
G.729 코덱에서 사용하는 밀착(focused) 검색 방법은 전체검색 방법에서 문턱값을 사용하여 검색 범위를 제한하는 것이고, G.729A에서 사용하는 깊이우선 가지 검색 방법은 밀착 검색 방법 보다 더 효과적으로 계산량을 줄이기 위하여 국부최대값(local maximum)을 만족하는 가지에 대해서만 검색을 수행하는 방법이다.
도1은 통상적인 대수 코드북을 이용하는 에이켈프 보코더의 인코딩 블럭도이다.
도1을 참조하여 살펴보면, 일반적인 에이켈프 보코더에서는 8kHz로 샘플링된 음성신호 160 샘플(20 msec)을 한 프레임으로 하여 음성신호의 특징을 나타내는 LPC, 피치, 코드북 파라미터 들을 추출한다. 입력음성을 고역통과 필터를 사용하여DC 성분을 제거한 후 포만트 성분을 추출하기 위하여 30 msec의 비대칭 윈도우와 Levinson-Durbin 알고리즘을 사용하여 10차의 LPC(Linear Predictive Coding) 계수를 구한다.(10) LPC 계수는 양자화 왜곡 및 전송오류를 줄이고, 선형 보간 특성이 좋은 LSP(Line Spectral Pair) 계수로 변환한 후(11), 전송을 위하여 벡터 양자화를 수행한다(12).
이어서, 양자화 과정이 끝나면 다음 단계인 피치 검색 및 코드북 검색에서 사용하기 위한 부 프레임 단위에 적합한 LPC 계수들을 구하기 위하여 LSP 계수의 선형 보간을 수행한 후 다시 LPC 계수로의 역변환 과정을 수행한다.
피치 검색은 계산량을 줄이기 위하여 개루프(open-loop) 검색(13) 과정과 폐루프(closed-loop) 검색(14) 과정의 2단계로 나누어 수행한다. 우선적으로 대략적인 피치 지연값을 구하기 위하여 계산량이 적은 개루프 검색을 통해 정수의 피치 지연 값 To를 결정한 후(13), 이 값을 기준으로 주변의 적은 범위의 값들에 대해서만 폐루프(closed-loop) 검색을 수행하여 정확한 피치 지연 값을 구하게 된다(14).
개루프 검색이 끝나면 폐루프 검색을 위하여 임펄스 응답(h(n))(15) 및 목표신호(x(n))(16)를 계산한다. 목표신호의 계산은 가중화된 입력 음성 신호에서 가중화 합성필터의 영입력 응답 신호를 제거하여 얻을 수 있다. 폐루프 검색에서는 앞에서 구해진 개루프 지연 값의 주변 값에 대하여 목표신호와 합성된 음성 신호와의 평균 자승 오차를 최소화하는 피치 지연값을 결정하게 된다(14).
이어서 대수 코드북 검색을 하기 위하여 목표 신호(x2(n))을 계산한다(17).여기서의 목표신호(x2(n))는 앞에서 사용한 목표신호(x(n))에서 피치 성분을 제거하여 구해진다. 이어서 대수 코드북검색(18)에서 목표신호(x2(n))와 합성된 음성 신호와의 평균 자승 오차를 최소화 하는 펄스의 위치 및 부호를 결정하게 된다. 대수 코드북의 구성은 부 프레임의 여기 신호를 효율적으로 모델링하기 위하여 부 프레임을 미리 정해진 트랙으로 나누고 각 트랙별로 일정한 개수의 펄스를 할당하게 된다. 여기서 각 펄스의 크기는 계산량을 줄이기 위하여 미리 ±1로 고정하고 있다. 결과적으로 전송되는 대수 코드북의 정보는 각 트랙 내의 펄스의 위치와 부호이다.
다음의 수학식1은 입력음성과 합성음성 사이의 평균제곱오차를 나타내는 식이다. 에이켈프 코딩에서 대수 코드북의 검색은 여기신호의 펄스열을 찾는 과정으로서, 이는 아래의 수학식1을 최소화 하는 과정이다.
여기서 X는 적응코드북의 예측이득이 제거된 목표신호이고, g는 코드북 이득이고, H=hth 는 가중 합성필터의 임펄스 응답으로부터 형성되는 " lower triangular Toepliz convolution matrix"이고(수학식2 참조), ck는 인덱스를 k로 하는 대수 코드 벡터이다.
여기서 h(n)은 임펄스 응답이고, n=40(부 프레임 크기)이다.
계속해서 설명하면, 수학식1의 최소화는 아래의 수학식3와 같이 주어진다.
수학식3로부터 최적의 코드벡터는 아래 수학식4를 최대화함으로써 결정되어진다.
여기서 d는 목표신호 x(n)과 임펄스 응답 h(n)의 상관관계, 즉 d=Htx를 나타내는 신호로써 일반적으로 역필터링된 목표신호로 불리어 진다 (참고:dt=[d1,d2,d3,...dn-1]). 또한, x는 적응코드북의 예측이득이 제거된 목표신호이고, Φ=HtH는 h(n)의 상관관계 매트릭스이다.
대수 코드 벡터는 적은 수의 영이 아닌 펄스로 구성 되기 때문에 수학식4에서의 분자항은 다음의 수학식5와 같이 표현된다.
여기서 mi는 i번째 펄스의 위치이고, si는 펄스의 부호, 그리고, Np는 펄스의 개수를 나타낸다. 그리고 수학식4의 분모항은 다음의 수학식6과 같이 표현될 수 있다.
수학식6에서 d(n)신호와 상관식 φ(i,j)는 검색과정에서의 계산량을 줄이기 위하여 검색 전에 미리 계산된다. 에이켈프 코드북 검색 방법 중에서 전체 검색 방법은 펄스의 조합의 수가 많기 때문에 보다 효율적인 검색을 위하여 밀착 검색이나, 깊이우선 가지 검색 방법등이 제안되었다.
밀착 검색 방법은 검색과정을 좀더 간단히 하기 위하여 마지막 루프에 대한 검색을 하기 전에 미리 계산된 문턱값을 사용하여 문턱값을 초과하는 경우에만 루프에 들어가 검색을 계속하도록 하는 방법이다. 그러나 이러한 밀착검색 방법을 사용하더라도 구하고자 하는 펄스의 개수가 많아지면 검색에 대한 계산량이 많아져 구현에 어려움이 있다.
깊이우선 가지 검색 방법은 밀착검색을 더욱 개선 한 것으로 각 트랙의 국부 최대값을 초기펄스로 선택하여 국부 최적화한(local optimization) 값을 선택하여 가능성이 제일 큰 가지에 대해서만 검색을 수행하는 방법이다.
깊이우선 가지 검색 방법을 사용하는 대표적인 코덱으로 GSM EFR 코덱이 있다. GSM EFR 코덱의 경우 40개의 펄스중에서 10개의 펄스의 위치 및 크기를 결정하는 것으로 이 때에는 가능한 조합의 수가 총40C10=847*106로 많은 계산량이 요구되지만, 깊이우선가지 검색 방법을 사용하면 4*(4*(8*8))=1024 번의 검색으로 펄스의 위치를 결정하게 되어 검색의 복잡도가 대폭 줄어들게 된다.
한편, 대수 코드북에서는 부 프레임의 여기 신호를 효율적으로 모델링하기 위하여 부 프레임을 미리 정해진 트랙으로 나누고 각 트랙별로 일정한 개수의 펄스를 할당하게 된다. 그리고 각 펄스의 크기도 검색과정에서의 계산량을 줄이기 위하여 미리 ±1로 고정하고 있다. GSM-EFR 코덱의 경우는 하기의 표 1과 같이 40개의 부프레임의 여기신호를 5개의 트랙으로 나누고 각 트랙마다 2개의 펄스를 사용하여 모델링하므로 총 10개의 펄스에 대하여 그 위치와 부호 정보를 전송하게 된다.
트랙 펄스 위치
1 i0,i5 0,5,10,15,20,25,30,35
2 i1,i6 1,6,11,16,21,26,31,36
3 i2,i7 2,7,12,17,22,27,32,37
4 i3,i8 3,8,13,18,23,28,33,38
5 i4,i9 4,9,14,19,24,29,34,39
하지만 이러한 깊이우선 가지(depth first tree) 검색 방법을 사용하여 1024번으로 줄였다 하더라고, 상기 1024번의 검색횟수는 GSM EFR 코덱의 경우 여전히 전체 인코더 계산량의 약 40% 정도를 차지할 정도로 많은 계산량을 차지하고 있다.
본 발명에서는 위와 같은 문제점을 해결하고자 제안된 것으로, 깊이우선 가지 검색방법을 사용하는 에이켈프 코드북 검색에 있어서 검색 가지를 제한하는 방법을 사용하여 보다 적은 계산량으로 대수 코드북을 검색하는 방법을 제공하는 것을 목적으로 한다.
도1은 통상적인 대수 코드복을 이용하는 켈프 보코더의 인코딩 블럭도.
도2는 본 발명의 바람직한 실시예에 따른 대수코드북에서의 대수코드 검색방법을 나타내는 플로우 차트이다.
도3는 본 발명의 바람직한 실시예에 따른 고속 코드북 검색에 따른 검색 가지와 레벨을 도시한 도면.
도4 내지 도6은 본 발명에 의한 고속 코드북 검색 방법을 실시하는 과정을 나타내는 도면.
상기의 문제를 해결하기 위하여 본 발명은 소정수의 펄스에 대응하는 일련의 트랙들, 각 트랙에 속하는 펄스의 위치들로 구성된 대수코드북을 구비하여, 상기 각 트랙별 펄스의 조합에 따라 코드인덱스를 생성하기 위해 대수코드북을 검색하는 방법에 있어서, 최적의 펄스 위치가 존재할 가지를 예측하기 위해 가지의 일정한 레벨(L)까지 검색하는 제1 단계; 상기 제1 단계의 검색결과에 따라 소정 개수(T)의 가지를 선택하고 나머지는 제거하는 제2 단계; 및 상기 제2 단계에서 선택된 소정개수의 가지만을 검색하여 최적의 대수코드를 선택하는 제3 단계를 포함하는 대수코드북 검색 방법을 제공한다.
본 발명은 에이켈프 알고리즘에서 계산되어지는 정규화된 상관관계 값을 이용하여 검색하는 방법중에서, 깊이우선 가지(depth first tree search) 방법을 사용하여 검색하였을 때 최종적으로 선택되어 질 가지를 미리 예측하여 가능성이 적은 가지는 검색과정에서 제외하고, 최종적으로 선택될 가능성이 높은 가지만을 선택하여 검색하는 대수코드북 검색방법에 관한 것이다. 이렇게 함으로서, 검색 과정을 위한 추가의 계산이 필요 없고, 선택 가능성을 예측하기 위한 비교 과정만이 추가적으로 필요하게 된다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
도2는 본 발명의 바람직한 실시예에 따른 대수코드북에서의 대수코드 검색방법을 나타내는 플로우 차트이다.
도2에 도시된 바와 같이, 본 실시예에 따른 깊이우선 가지 검색 방법을 사용하는 에이켈프형 보코더의 대수 코드북 검색방법은 최적의 펄스 위치가 존재할 가지를 예측하기 위해 가지의 일정한 레벨(L)까지 검색하고(100), 다음으로 상기 검색결과에 따라 소정의 가지(T)를 선택하고 나머지는 제거한다(200). 이어서 선택된 소정의 가지만을 검색하여 최적의 대수코드를 선택한다(300).
도3는 본 발명에 따른 고속 코드북 검색에 따른 검색 가지와 레벨을 예시한 도면이고, 도4 내지 도6은 본 발명에 의한 고속 코드북 검색 방법을 실시하는 과정을 예시한 도면이다. 특히, 도4는 본 발명의 고속 코드북 검색에 따라 각 트랙에서의 최대값 및 전체의 최대값을 나타낸 도면이고, 도5는 펄스(i0,i1)의 고정 및 펄스(i2,i3)의 검색을 나타내는 도면이고, 도6는 전체 펄스 10개에서의 검색예를 보여주는 도면이다.
이하에서는 도3 내지 도6을 참조하여 본 실시예에 따른 고속 대수코드북 검색방법에 대해 설명한다. 특히, 본 실시예에서는 레벨1까지 계산을 먼저하고, 2개의 가지(tree)를 선택하는 것으로 가정한다.
먼저 첫번째로 정규화된 역방향 필터링된(backward filtered) 타겟신호와 정규화된 장기 예측 잔차(long-term prediction residual) 신호의 합을 b(n)이라 하면, 이 b(n) 신호에 대하여 각 트랙에서 최대값을 하나씩 찾아서 pos_max[]에 저장한다.(도4에 도시된 30, 31, 32, 33, 34)
이어서 두번째로, 각 트랙에서 찾은 최대값들 중에서 가장 큰 값, 즉 글로벌 최대값(global maximum, 예컨대 도4의 31)을 가지고 있는 트랙의 번호(를 ipos[0]에 저장한다. 그러면 글로벌 최대값(31)을 갖는 위치(트랙T1의 5번째)는 pos_max[ipos[0]]에 저장되어 있게 된다.
이어서 세번째로, 첫번째 펄스(i0)를 고정시키고 나서(40), 두번째 펄스(i1)은 그 다음 트랙에서의 최대값을 갖는 위치에 고정한다.(예컨대 도5의 41)
이어서 네번째로, 펄스(i2,i3)의 위치를 정하기 위하여 그 다음 두개의 트랙(T3,T4)에서 총 8x8 번의 검색을 하여 최대값을 갖는 위치를 찾는다.(예컨대 도5의 42, 43)
이어서 다섯번째로, 펄스(i1)의 시작위치를 순회적으로 이동시키면서 펄스쌍(i2,i3)을 선택한다(도3의 21 참조). 예를 들어 펄스(i1)이 트랙(T3)의 국부 최대값에 위치하게 된다면, 펄스(i2,i3)은 트랙(T2,T4)에서 검색하여 선택될 것이다. 즉 펄스(i1)의 위치가 처음에는 도4의 32에 위치 하지만 순차적으로 33, 34, 30의 위치로 바꾸어 가며 그에 따른 펄스(i2,i3)를 검색하게 된다. 이 과정은 총 4번 반복되므로 필요한 검색의 횟수는 총 4x(8x8)=256 번이 된다.
이어서 여섯번째로, 앞에서 펄스(i2,i3)까지 계산된 결과 값(수학식4의 Tk)를 비교하여 큰 값 2개만(도3의 22,23)을 계속 검색할 2개의 가지로 선택하고, 나머지 가지들은 제외한다. 여기서 제외되는 가지들은 최종적으로 선택될 가능성이 적은 가지이다. 여기서 계산된 결과값으로는 상기의 수학식4를 이용한다.
이어서 일곱번째로, 선택된 2개의 가지에 대하여 각각 펄스(i4,i5), 펄스(i6,i7), 펄스(i8,i9)을 결정하기 위한 검색을 순차적으로 수행한다(도6). 이 때 선택한 가지가 2개(도3의 22,23)이므로 필요한 검색의 횟수는 총 2 ×(3 ×(8 ×8))=384 번이 된다.
따라서 전술한 바와 같이, 레벨1단계까지 검색하여 2개의 가지만을 선택하고, 나머지는 제거하는 검색 방법을 택하게 되면, 총 8개의 펄스 위치를 각각 가지는 5개의 트랙(T0~T4)중에서 10개의 펄스 위치를 선택하기 위한 검색 횟수로 상기의 다섯번째 단계의 256번과 일곱번째 단계의 384번의 합인 640번의 검색이 필요하다.
종래에는 5개의 트랙(T0~T4)중에서 10개의 펄스를 선택하기 위한 검색 횟수로 1024번의 검색횟수가 필요하였다. 따라서 본 발명의 대수코드북 검색방법에 따라 레벨1단계까지 검색하여 2개의 가지만을 선택하게되면, 종래대비 약 40%의 계산량을 줄일 수 있게 되는 것이다.
본 발명에 따른 검색 방법에서의 회수를 일반화시키면, 검색에 포함되는 가지의 개수를 T라 하고, 제거할 가지를 결정하기 위해 계산하는 레벨의 수를 L 이라 할 때, 검색에서 제거할 가지를 결정하기 위한 검색의 횟수는 4 ×L ×(8 ×8)이 되고, 선택된 가지에 대해서 검색하는데 필요한 검색횟수는 T ×(4-L) ×(8 ×8)이되어 총 검색 횟수는 4 ×L ×(8 ×8)+T ×(4-L) ×(8 ×8)이 된다. 선택되는 가지(T) 및 검색할 레벨(L)에 따른 계산결과를 다음의 표 2에 나타내었다.
가지 레벨0 레벨1 레벨2 레벨3 레벨4
1 256(25.0%) 448(43.8%) 640(62.5%) 83281.3%) 1024(100%)
2 512(50.%) 640(62.5%) 768(75.0%) 896(87.5%) 1024(100%)
3 768(75.0%) 832(81.3%) 896(87.5%) 960(93.8%) 1024(100%)
예를 들어 펄스가 존재할 확률이 높은 가지를 선택하기 위해 레벨2까지 검색하고, 2개의 가지를 선택하게되는 경우에는 768번의 검색을 하게 되고, 이 때에는 종래(1024번)대비 약 75%의 계산량만 필요하게 되어 약 25%의 계산량을 줄일 수 있다.
또한, 레벨1과 2개의 가지에 대해서 검색을 실시하는 경우 전체 검색 방법에 비하여 약 60%의 계산량만 필요하게 되어 약 40%의 계산량을 줄일 수 있게 된다. 따라서 선택되는 레벨(L)과 가지(T)에 따라 상기 표2에 도시된 바와 같이 이전의 방법보다 계산량을 줄일수 있다.
전술한 실시예에서와 같이 레벨을 1까지 2개의 가지를 선택할 경우에는 종래의 깊이우선 가지 방법에 비해 약 40%정도의 검색 복잡도를 줄일 수 있고, 이로 인해 저가의 DSP 칩으로도 에이켈프알리고리즘 구현이 용이하고, 또한 줄어든 계산량 만큼의 전력소모를 줄일 수 있으므로 보다 효율적으로 시스템을 설계할 수 있다.
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
본 발명에서는 에이켈프 알고리즘을 사용하는 보코더의 고정 코드북 검색과정을 개선하여 종래의 깊이 우선 가지 검색(depth first tree search) 방법에 비해 약 40%정도의 검색 복잡도를 줄였다. 이와 같이 계산량을 줄임으로써 처리속도 낮은 저가의 DSP칩으로도 보코더를 실시간 구현을 할 수 있게 된다. 또한 코드북 검색 시에 줄인 계산량 만큼의 처리과정을 다른 서비스기능을 위해 사용할 수 있으므로 보다 경제적인 보코더 시스템을 설계할 수 있게 된다. 그리고 보코더의 처리하는 계산량은 소비전력에 직접적인 영향을 주기 때문에 계산량을 줄이는 것은 휴대용 보코더의 사용시간을 연장시킬 수 있게 되어 상품의 대외 경쟁력을 높일 수 있는 등의 장점을 갖는다.

Claims (6)

  1. 깊이우선 가지 검색 방법을 사용하는 에이켈프형 보코딩에서, 소정수의 펄스에 대응하는 일련의 트랙들, 각 트랙에 속하는 펄스의 위치들로 구성된 대수코드북을 구비하여, 상기 각 트랙별 펄스의 조합에 따라 코드인덱스를 생성하기 위해 대수코드북을 검색하는 방법에 있어서,
    최적의 펄스 위치가 존재할 가지를 예측하기 위해 가지의 일정한 레벨(L)까지 검색하는 제1 단계;
    상기 제1 단계의 검색결과에 따라 소정 개수(T)의 가지를 선택하고 나머지는 제거하는 제2 단계; 및
    상기 제2 단계에서 선택된 소정개수의 가지만을 검색하여 최적의 대수코드를 선택하는 제3 단계
    를 포함하는 대수코드북 검색 방법.
  2. 제 1 항에 있어서,
    상기 제1 단계는
    검색할 레벨 'L' 을 결정하는 제4 단계;
    상기 각 트랙에서 최대값을 하나씩 찾는 제5 단계:
    상기 최대값들 중에서 가장 큰 값을 가지는 펄스를 첫번째 펄스로 고정시키는 제6 단계:
    상기 고정된 첫번째 펄스의 다음 트랙에서 찾은 최대값을 두번째 펄스로 고정시키는 제7 단계;
    상기 고정된 두번째 펄스의 다음 두 트랙에서 세번째 펄스, 네번째 펄스를 검색하는 제8 단계; 및
    상기 제5 단계에서 찾은 각 트랙의 최대값-상기 첫번째 펄스를 제외한-을 순회적으로 이동하여 상기 두번째 펄스로 고정한 다음 상기 제8 단계를 수행하는 제9 단계를 포함하는 것을 특징으로 하는 대수코드북 검색방법.
  3. 제 1 항에 있어서,
    상기 제2 단계에서 T개의 가지를 선택하기 위하여 하기의 수학식을 사용하는 것을 특징으로 하는 대수코드북 검색방법.
    (수학식)
  4. 제 1 항에 있어서,
    상기 대수코드북은 각각 8개의 펄스 위치를 가지는 트랙을 5개 구비하고, 상기 5개의 트랙에서 각각 2개의 펄스 위치를 검색하는 데 있어서,
    상기 제1 단계에서 상기 일정한 레벨(L)까지 검색하는 횟수는 4 ×L ×(8 ×8)임을 특징으로 하는 대수 코드북 검색 방법.
  5. 제 4 항에 있어서,
    상기 제2 단계에서 선택된 소정의 갯수(T)의 가지를 검색하는 데 필요한 검색횟수는 T ×(4-L) ×(8 ×8)인 것을 특징으로 하는 대수 코드북 검색 방법.
  6. 제 1 항에 있어서,
    상기 대수코드북은 각각 8개의 펄스 위치를 가지는 트랙을 5개 구비하고, 상기 5개의 트랙에서 각각 2개의 펄스 위치를 검색하는 데 있어서,
    상기 제1 단계 내지 제3 단계에서 대수코드북을 검색하는 총 횟수는 4 ×L ×(8 ×8)+T ×(4-L) ×(8 ×8)인 것을 특징으로 하는 대수 코드북 검색 방법.
KR10-2002-0069567A 2002-11-11 2002-11-11 대수 코드북을 이용하는 켈프 보코더의 코드북 검색방법 Expired - Fee Related KR100463559B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2002-0069567A KR100463559B1 (ko) 2002-11-11 2002-11-11 대수 코드북을 이용하는 켈프 보코더의 코드북 검색방법
US10/693,732 US20040093204A1 (en) 2002-11-11 2003-10-23 Codebood search method in celp vocoder using algebraic codebook

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0069567A KR100463559B1 (ko) 2002-11-11 2002-11-11 대수 코드북을 이용하는 켈프 보코더의 코드북 검색방법

Publications (2)

Publication Number Publication Date
KR20040041716A KR20040041716A (ko) 2004-05-20
KR100463559B1 true KR100463559B1 (ko) 2004-12-29

Family

ID=32226274

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0069567A Expired - Fee Related KR100463559B1 (ko) 2002-11-11 2002-11-11 대수 코드북을 이용하는 켈프 보코더의 코드북 검색방법

Country Status (2)

Country Link
US (1) US20040093204A1 (ko)
KR (1) KR100463559B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100656788B1 (ko) 2004-11-26 2006-12-12 한국전자통신연구원 비트율 신축성을 갖는 코드벡터 생성 방법 및 그를 이용한 광대역 보코더
KR100813260B1 (ko) * 2005-07-13 2008-03-13 삼성전자주식회사 코드북 탐색 방법 및 장치
KR100795727B1 (ko) 2005-12-08 2008-01-21 한국전자통신연구원 Celp기반의 음성 코더에서 고정 코드북 검색 장치 및방법
JP3981399B1 (ja) 2006-03-10 2007-09-26 松下電器産業株式会社 固定符号帳探索装置および固定符号帳探索方法
CN100530357C (zh) * 2007-07-11 2009-08-19 华为技术有限公司 固定码书搜索方法及搜索器
CN100578619C (zh) * 2007-11-05 2010-01-06 华为技术有限公司 编码方法和编码器
AU2012217216B2 (en) 2011-02-14 2015-09-17 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding a portion of an audio signal using a transient detection and a quality result
EP2676266B1 (en) 2011-02-14 2015-03-11 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Linear prediction based coding scheme using spectral domain noise shaping
AR085362A1 (es) 2011-02-14 2013-09-25 Fraunhofer Ges Forschung Aparato y metodo para procesar una señal de audio decodificada en un dominio espectral
PL2676267T3 (pl) * 2011-02-14 2017-12-29 Fraunhofergesellschaft Zur Förderung Der Angewandten Forschung E V Kodowanie i dekodowanie pozycji impulsów ścieżek sygnału audio

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0446817A2 (en) * 1990-03-15 1991-09-18 Gte Laboratories Incorporated Method for reducing the search complexity in analysis-by-synthesis coding
KR19980702890A (ko) * 1995-03-10 1998-08-05 실베인 데스자르뎅 음성의 고속 코딩을 위한 심도 우선 대수 코드북 검색
KR20000074365A (ko) * 1999-05-20 2000-12-15 윤종용 음성 부호화시에 대수코드북에서의 대수코드 탐색방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5526464A (en) * 1993-04-29 1996-06-11 Northern Telecom Limited Reducing search complexity for code-excited linear prediction (CELP) coding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0446817A2 (en) * 1990-03-15 1991-09-18 Gte Laboratories Incorporated Method for reducing the search complexity in analysis-by-synthesis coding
KR19980702890A (ko) * 1995-03-10 1998-08-05 실베인 데스자르뎅 음성의 고속 코딩을 위한 심도 우선 대수 코드북 검색
KR20000074365A (ko) * 1999-05-20 2000-12-15 윤종용 음성 부호화시에 대수코드북에서의 대수코드 탐색방법

Also Published As

Publication number Publication date
US20040093204A1 (en) 2004-05-13
KR20040041716A (ko) 2004-05-20

Similar Documents

Publication Publication Date Title
KR100615113B1 (ko) 주기적 음성 코딩
JP5373217B2 (ja) 可変レートスピーチ符号化
JP2971266B2 (ja) 低遅延celp符号化方法
US6055496A (en) Vector quantization in celp speech coder
KR20020052191A (ko) 음성 분류를 이용한 음성의 가변 비트 속도 켈프 코딩 방법
US6678651B2 (en) Short-term enhancement in CELP speech coding
KR100497788B1 (ko) Celp 코더내의 여기 코드북을 검색하기 위한 방법 및 장치
KR100463559B1 (ko) 대수 코드북을 이용하는 켈프 보코더의 코드북 검색방법
KR100480341B1 (ko) 광대역 저전송률 음성 신호의 부호화기
KR100465316B1 (ko) 음성 부호화기 및 이를 이용한 음성 부호화 방법
Mano et al. Design of a pitch synchronous innovation CELP coder for mobile communications
JPH09508479A (ja) バースト励起線形予測
KR100550003B1 (ko) 상호부호화기에서 개회로 피치 추정 방법 및 그 장치
WO2002023536A2 (en) Formant emphasis in celp speech coding
Spanias Speech coding standards
Bae et al. On a reduction of pitch searching time by preliminary pitch in the CELP vocoder
KR960011132B1 (ko) 씨이엘피(celp) 보코더에서의 피치검색방법
Kim et al. On a Reduction of Pitch Searching Time by Preliminary Pitch in the CELP Vocoder
Miki et al. Pitch synchronous innovation code excited linear prediction (PSI‐CELP)
JP3284874B2 (ja) 音声符号化装置
KR100624545B1 (ko) 티티에스 시스템의 음성압축 및 합성방법
Han et al. On A Reduction of Pitch Searching Time by Preprocessing in the CELP Vocoder
HK1117937A (en) Variable rate speech coding

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

FPAY Annual fee payment

Payment date: 20091228

Year of fee payment: 8

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R14-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R11-asn-PN2301

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20121217

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20121217

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301