KR100576024B1 - 에이켈프 음성 압축기의 코드북 검색 장치 및 방법 - Google Patents

에이켈프 음성 압축기의 코드북 검색 장치 및 방법 Download PDF

Info

Publication number
KR100576024B1
KR100576024B1 KR1020000019381A KR20000019381A KR100576024B1 KR 100576024 B1 KR100576024 B1 KR 100576024B1 KR 1020000019381 A KR1020000019381 A KR 1020000019381A KR 20000019381 A KR20000019381 A KR 20000019381A KR 100576024 B1 KR100576024 B1 KR 100576024B1
Authority
KR
South Korea
Prior art keywords
pulse
code vector
importance
new
track
Prior art date
Application number
KR1020000019381A
Other languages
English (en)
Other versions
KR20010095909A (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 KR1020000019381A priority Critical patent/KR100576024B1/ko
Publication of KR20010095909A publication Critical patent/KR20010095909A/ko
Application granted granted Critical
Publication of KR100576024B1 publication Critical patent/KR100576024B1/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/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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
    • G10L2019/0001Codebooks
    • G10L2019/0002Codebook adaptations

Landscapes

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

Abstract

에이켈프(ACELP) 방식의 음성 압축기에서 음성 신호를 압축하는 과정에서 필요한 코드벡터를 선택하기 위하여 코드북을 검색하는 장치 및 방법이 개시되어 있다. 본 발명에 따른 ACELP 음성 압축기의 코드북 검색 장치는, 1차 검색 단계 및 2차 검색 단계로 구분되어 동작한다. 상기 1차 검색 단계에서는 ACELP 음성 압축기 표준안이 정의하는 펄스 위치에 대한 규정에 따라 각 트랙별로 펄스를 순차적으로 찾는 방법 등을 통하여 필요한 수의 펄스로 구성된 초기 코드벡터를 선택한다. 상기 2차 검색 단계에서는 상기 1차 검색 단계에서 선택된 코드벡터에서 각 펄스의 중요도를 계산하고, 최소 중요도를 가지는 펄스를 제거하고, 최적의 펄스를 새로 찾아 성능이 향상된 새로운 코드벡터를 발생한다. 상기 2차 단계에서의 펄스 교환 동작은 반복적으로 수행될 수 있으며, 즉 1차 단계의 출력 코드벡터에 대하여 펄스 교환이 계속적으로 수행될 수 있으며, 상기 2차 단계가 반복되면 코드벡터의 성능은 점차 향상되어 최적의 코드벡터를 찾을 수 있다. 상기 2차 단계에서 코드벡터의 각 펄스의 중요도는 해당 펄스를 제거한 코드벡터의 성능의 역으로 정의된다.
코드북 검색, 코드벡터 선택, 펄스 중요도, 펄스 교환

Description

에이켈프 음성 압축기의 코드북 검색 장치 및 방법 {CODEBOOK SEARCHING APPARATUS AND METHOD IN A SPEECH COMPRESSOR HAVING AN ACELP STRUCTURE}
도 1은 일반적인 CELP 음성 압축기의 구조를 도시하는 도면.
도 2는 G.729 CS-ACELP 음성 압축기에서 정의된 코드북의 각 트랙별 펄스 위치를 나타내는 도면.
도 3은 IS-127 EVRC 음성 압축기에서 정의된 코드북의 각 트랙별 펄스 위치를 나타내는 도면.
도 4는 ACELP 음성 압축기에서 최적의 코드벡터를 선택하기 위한 코드북 검색 동작을 도시하는 도면.
도 5는 G.729 CS-ACELP 음성 압축기의 표준안이 제안하는 코드북 검색 동작을 도시하는 도면.
도 6은 도 5에 도시된 임계값을 계산하는 과정을 도시하는 도면.
도 7은 IS-127 EVRC 음성 압축기의 표준안이 제안하는 코드북 검색 동작에 따른 최적의 코드벡터 선택 동작을 도시하는 도면으로, N-2 개의 펄스로 구성된 입력 코드벡터에 대하여 트랙 Ti와 Tj에서 각각 하나씩의 펄스를 추가하여 N 개의 펄스로 구성된 새로운 최적의 코드벡터를 출력하는 과정을 도시하는 도면.
도 8은 IS-127 EVRC 음성 압축기의 표준안이 제안하는 코드북 검색 동작을 도시하는 도면.
도 9는 본 발명에 따른 코드북 검색 동작의 1차 단계인 펄스 검색 동작을 수행하는 펄스 검색부의 구성을 도시하는 도면으로, 상기 펄스 검색부가 (j+1) 개의 트랙을 순차적으로 검색하여 (j+1)개의 펄스로 구성된 코드벡터를 발생하는 과정을 도시하는 도면.
도 10은 도 9에 도시된 각 펄스 검색기에 의한 트랙별 펄스 검색 동작을 도시하는 도면으로, N-1 개의 펄스로 구성된 입력 코드벡터에 대하여 트랙 Ti에서 하나의 펄스를 추가하여 N 개의 펄스로 구성된 새로운 최적의 코드벡터를 발생하는 과정을 도시하는 도면.
도 11은 본 발명에 따른 코드북 검색 동작의 2차 단계인 펄스 교환 동작을 수행하는 펄스 교환부의 구성을 도시하는 도면으로, 입력 코드벡터에 대하여 각 펄스의 중요도를 계산하여 최소 중요도를 가지는 펄스를 제거하고 새로운 펄스를 선택하여 성능이 향상된 새로운 코드벡터를 발생하는 과정을 도시하는 도면.
도 12는 도 11에 도시된 새로운 트랙 결정부에 의해 결정된 새로운 펄스가 검색될 트랙이 여러 개인 경우의 각 트랙별로 펄스 검색 동작이 수행됨을 도시하는 도면.
도 13은 본 발명을 G.729 CS-ACELP 음성 압축기에 적용한 경우에 최적의 코드벡터를 선택하는 코드북 검색 장치의 구성을 도시하는 도면.
도 14는 본 발명을 IS-127 EVRC 음성 압축기에 적용한 경우에 최적의 코드벡 터를 선택하는 코드북 검색 장치의 구성을 도시하는 도면.
도 15는 본 발명을 IS-127 EVRC 음성 압축기에 적용한 경우에 도 11의 새로운 트랙 결정부에 의해 새로운 펄스를 검색할 트랙을 결정하는 과정의 규칙을 설명하기 위한 도면.
본 발명은 디지털 음성 신호를 압축하는 음성 압축기에 관한 것으로, 특히 ACELP 방식의 음성 압축기에서 음성 신호를 압축하는 과정에서 필요한 코드벡터를 선택하기 위하여 코드북을 검색하는 장치 및 방법에 관한 것이다.
일반적으로 음성 압축기는 디지털 음성 신호를 적은 양의 디지털 데이터로 표시(압축 변환)함으로써 정보의 효율적인 저장 및 통신을 가능하도록 하는 장치이다. 이러한 음성 압축기는 압축율과 사용 용도에 따라 다양한 음성 압축 방식을 사용할 수 있는데, 대표적으로 CELP 방식을 사용할 수 있다. 켈프(CELP: Code Excited Linear Prediction) 방식의 음성 압축기(이하 "CELP 음성 압축기"라 칭함)는 8KHz로 샘플링된 디지털 음성 신호를 8Kbps ~ 16Kbps 대역으로 압축시키는 음성 압축기에 가장 널리 사용되고 있는 구조이다. 상기 CELP 음성 압축기의 기본 개념은 음성 신호를 합성하기 위한 최초의 여기(excitation)신호를 코드북(codebook)을 이용하여 변환하는 것이다. 상기 코드북은 다양한 신호들의 집합으로 구성되어 있 고, 이때 각각의 신호는 소위 "코드벡터(codevector)"라 불리운다. 즉 CELP 음성 압축기는 원하는 음성 신호를 합성하기 위한 최적의 코드벡터를 주어진 코드북에서 검색하고, 상기 검색된 코드벡터를 여기신호로 사용한다.
도 1은 일반적인 CELP 음성 압축기의 구조를 도시하는 도면이다.
상기 도 1을 참조하면, 전처리기 102는 입력 음성 신호에 대하여 전처리 과정을 수행하고, LPC(Linear Predictive Coding) 분석 및 양자화기 104는 상기 전처리기 102에 의해 전처리된 음성 신호에 대하여 LPC 분석 및 양자화 처리를 수행하고 LPC 계수를 출력한다. 포먼트(Formant) 필터 112는 상기 출력된 LPC 계수를 이용하여 합성에 의한 분석(Analysis-by-Synthesis) 과정에서 검색된 결과(피치, 코드벡터)를 이용하여 최종 음성 신호를 합성하기 위한 필터로 사용된다. 상기 포먼트 필터 112가 구성된 다음에는, 118 및 120에 의해 피치 분석 및 코드북 검색 과정이 수행된다. 이때 주어진 모든 경우의 피치 주기와 이득, 그리고 코드북 내의 모든 코드벡터에 대하여 합성된 신호의 출력(포먼트 필터 112의 출력)을 구한다. 가산기 114는 상기 전처리기 102의 출력과 상기 포먼트 필터 112의 출력간의 오차를 구하고, 가중치 필터 116은 상기 가산기 114에 의해 구해진 오차를 입력하여 가중치 오차(weighted error)를 출력한다. 이 가중치 오차의 에너지가 최소가 되도록 상기 118 및 120에 의해 피치 분석 및 코드북 검색 과정이 수행된다. 이와 같이 LPC 분석, 피치 분석 및 코드북 검색의 과정이 수행된 이후, 파라미터 부호화기 122는 LPC 계수와 선택된 피치 파라미터 및 코드북 파라미터를 부호화함으로써, 결과적으로 상기 입력 음성 신호를 압축 음성 데이터로 변환 출력한다.
상기 도 1에 도시된 바와 같은 CELP 음성 압축기에서 모든 가능한 피치 및 코드북에 대하여 음성 신호를 실제로 합성하면서 입력 신호와 가장 근접한 경우의 피치 및 코드벡터를 선택하기 때문에, 매우 많은 경우에 대하여 반복적 계산 과정이 필요하다. 따라서 일반적으로는 먼저 코드북을 무시하고 피치에 대하여서만 검색을 하고, 다음 선택된 피치 결과를 고정시키고 코드북에 대해 검색을 한다.
한편, 통상의 CELP 음성 압축기에서 코드북의 크기는 상당하기 때문에 많은 경우의 코드벡터에 대한 검색을 하여야 하고 또한 코드북은 피치에 비하여 보다 자주 검색을 하기 때문에, 전체 CELP 음성 압축기의 계산량에서 코드북 검색을 위한 계산량이 제일 큰 비중을 차지한다. 이와 같이 CELP 음성 압축기에서 코드북의 구조는 계산량과 음성 압축기의 성능을 결정하는 매우 중요한 부분이다. 코드북의 구조가 아주 간단하고 크기가 작으면 검색을 위한 계산량은 줄어들지만 다양한 형태의 여기 신호를 표시할 수 없기 때문에 압축기의 성능은 떨어진다. 반면에, 코드북의 크기가 크면 압축기의 성능은 향상시킬 수 있지만, 검색을 위한 계산량은 현저하게 증가한다.
CELP 음성 압축기의 코드북 구조 중에서 1990년대 후반부터 대부분의 표준 음성 압축기에 사용되고 있는 것이 ACELP 구조이다. 일반적인 CELP 음성 압축기의 코드북은 다양한 형태를 가지는 미리 정해진 코드벡터들의 집합으로 구성되어 고정되지만, 이와 달리 ACELP 구조의 코드북은 정해진 수의 펄스(pulse)로 구성된 코드벡터를 만들어 사용하게 된다. 즉 상기 ACELP 코드북으로부터 일정한 수의 펄스들의 위치와 크기를 달리하는 매우 많은 종류의 코드벡터들이 만들어지고 그 중에서 최적의 코드벡터가 검색되어 음성 신호를 합성하기 위한 여기신호로서 발생된다. ACELP 구조를 가지는 표준 음성 압축기에는 IS-127 EVRC(Enhanced Variable Rate Codec), ITU G.729 CS-ACELP(Conjugate Structure Algebraic Code Excited Linear Prediction), ITU G.723.1 ACELP, GSM EFR(Enhanced Full Rate ), IS-641 EFR, AMR(Adaptive Multi-Rate) 코덱 등이 있다.
상기 ACELP 코드북은 매우 우수한 성능을 가지지만 매우 많은 종류의 코드벡터가 존재하므로, 최적의 코드벡터를 찾기 위한 계산량이 많다는 문제점이 있기 때문에, 이러한 문제점을 해결하기 위하여 일반적으로 펄스의 위치와 크기에 대하여 제한을 둔다. 각 펄스는 아무 위치에 자유롭게 존재할 수 있는 것이 아니라 미리 정해진 허용된 위치에만 존재할 수 있는데, 각각의 펄스에 대한 위치 규정은 음성 압축기마다 서로 다르게 정의된다. 또한 펄스의 크기는 모든 펄스가 동일한 절대크기를 가져야 하며 각각의 부호만 독립적으로 가질 수 있다.
도 2는 G.729 CS-ACELP 음성 압축기에서 정의된 코드북의 각 트랙별 펄스 위치를 나타내는 도면이다.
상기 도 2를 참조하면, 코드벡터는 40개의 샘플(0∼39)로 구성되고, 4개의 트랙 T0, T1, T2, T3이 존재한다. 반드시 각 트랙에 한 개씩의 펄스가 존재하여 총 4개의 펄스로 구성되는 코드벡터가 정의된다. 각 트랙마다 8개(트랙 T0,T1,T2의 경우) 또는 16개(트랙 T3의 경우)의 가능한 위치가 있으므로, 가능한 모든 코드벡터의 펄스 위치 조합 수는 8 ×8 ×8 ×16 = 8,192 가지이다.
도 3은 IS-127 EVRC 음성 압축기에서 정의된 코드북의 각 트랙별 펄스 위치 를 나타내는 도면이다.
상기 도 3을 참조하면, 코드벡터는 53 샘플(0∼52) 또는 54 샘플(0∼53)로 구성될 수 있고, 5개의 트랙 T0∼T4 이 정의되어 있다. 반드시 3개의 트랙에는 각각 2개의 펄스가 존재하고 나머지 2개의 트랙에는 각각 1개의 펄스가 존재하여 총 8개의 펄스로 구성되는 코드벡터가 정의된다. 이때 2개의 펄스와 1개의 펄스를 가지는 트랙의 조합이 4가지 경우로 제한되어 있다. 후술될 본 발명과 관련하여 설명될 도 15에 도시된 바와 같이, 첫 번째 경우는 TO,T1,T2의 트랙들 각각에 2개의 펄스가 존재하고, T3,T4 트랙들 각각에 1개의 펄스가 존재하는 경우이다. 두 번째 경우는 T1,T2,T3의 트랙들 각각에 2개의 펄스가 존재하고, T4,T0 트랙들 각각에 1개의 펄스가 존재하는 경우이다. 세 번째 경우는 T2,T3,T4의 트랙들 각각에 2개의 펄스가 존재하고, T0,T1 트랙들 각각에 1개의 펄스가 존재하는 경우이다. 네 번째 경우는 T3,T4,T0의 트랙들 각각에 2개의 펄스가 존재하고, T1,T2 트랙들 각각에 1개의 펄스가 존재하는 경우이다. 한 트랙에 2개의 펄스를 가질 경우의 수는 11 × 10 / 2 = 55 가지이다. 따라서 가능한 모든 코드벡터의 펄스 조합의 수는 55 ×55 ×55 ×11 ×11 ×4 ≒ 8 ×107 가지이다.
상기 도 2 및 도 3에서 설명한 바와 같이, ACELP 음성 압축기에서는 펄스의 위치를 제한하여 가능한 코드벡터의 수를 매우 많이 감소시키고 있지만, 아직도 ACELP 코드북의 전체 코드벡터를 검색하는데는 많은 계산량이 요구되고 있고 또한 현실적으로 계산이 불가능한 경우도 있다. ACELP 음성 압축기에서 코드북 검색의 계산량을 줄이기 위한 많은 방법들이 제안되었지만, 대부분은 전체 코드벡터 검색을 하지 않고 일부 코드벡터에 대한 제한적인 검색을 하여 계산량을 줄이는 방법이다. 예를 들어, 순차적 검색 방법, 집중적(Focused) 검색 방법 등이 있다. 그러나 이러한 방법을 사용하면 전체 코드벡터 검색을 하지 못하므로 성능의 저하를 가져온다.
도 4는 ACELP 음성 압축기에서 최적의 코드벡터를 발생하기 위한 코드북 검색 동작을 도시하는 도면이다.
상기 도 4에서, 목표신호 x(n)은 코드북 검색에서 각 코드벡터 성능 측정의 기준이 되는 신호로서, LPC 검색과 피치 검색을 통하여 구하여 진다. 충격응답 h(n)은 LPC 계수로 구성된 가중치 포먼트 필터의 충격응답이다. 402는 충격응답 h(n)에 대한 상관관계값
Figure 112000007330074-pat00001
를 하기의 <수학식 1>을 이용하여 구한다.
Figure 112000007330074-pat00002
여기서, h(n)은 충격응답이고, L 은 코드 벡터의 길이이다.
404는 충격응답 h(n)과 목표신호 x(n) 사이의 상관관계값 d(n)을 하기의 <수학식 2>을 이용하여 구한다.
Figure 112000007330074-pat00003
여기서 x(n)은 목표신호이고, h(n)은 충격응답이다.
상기 <수학식 1>과 <수학식 2>에 의해 각각 구해지는 충격응답의 상관관계값
Figure 112000007330074-pat00004
과 충격응답과 목표신호 사이의 상관관계값 d(n)은 코드북 검색 전에 한번만 계산되고, 코드북 검색 과정의 수행중에는 변하지 않는다.
410은 코드북 검색 과정을 나타내는 것으로, 406단계와 408단계로 이루어진다. 먼저 406단계에서는 모든 가능한 M개의 코드벡터들 C1∼CM 각각에 대하여 Tk 값을 계산한다. 다음에 408단계에서는 M개의 Tk 값들에서 가장 큰 Tk 값에 해당하는 코드벡터를 선택하고, 이 선택된 코드벡터를 최적의 코드벡터
Figure 112000007330074-pat00005
으로서 출력한다. 상기 Tk 값은 코드벡터
Figure 112000007330074-pat00006
의 성능값으로 정의되며, 하기의 <수학식 3>에 의해 구하여진다.
Figure 112000007330074-pat00007
여기서, k는 코드벡터 인덱스이며,
Figure 112000007330074-pat00008
Figure 112000007330074-pat00009
로 구성된 L × L 행렬이고, t는 벡터의 트랜스포즈(Transpose)이다. 모든 코드벡터 중에서 가장 큰 Tk 값을 가지는 코드벡터가 최적의 코드벡터이므로, 하기에서는 Tk 값을 코드벡터
Figure 112000007330074-pat00010
의 성능값으로 정의한다.
도 5는 G.729 CS-ACELP 음성 압축기의 표준안이 제안하는 코드북 검색 동작을 도시하는 도면으로, 집중적(Focused) 검색 방법을 사용하는 것으로 모든 코드벡터
Figure 112000007330074-pat00011
에 대한 검색을 하지 않고 가능성이 있는 일부 코드벡터
Figure 112000007330074-pat00012
만을 검색하 는 것을 기본 개념으로 하고 있다.
상기 도 5를 참조하면, 1차 검색과정 510에서는 상기 도 2에서 정의된 트랙들 T0,T1,T2에만 펄스가 존재하는, 즉 3 개의 펄스들로만 구성된 임시 코드벡터
Figure 112000007330074-pat00013
을 입력한다. 511단계에서는 상기 코드벡터
Figure 112000007330074-pat00014
에 대하여 Tj 값을 계산하고, 512단계에서는 미리 정해진 임계값과 상기 511단계에서 계산된 Tj 값을 비교한다. Tj 값이 상기 임계값보다 크면 2차 검색과정 520으로 진행하고, 임계값보다 작으면 다음 임시 코드벡터
Figure 112000007330074-pat00015
를 구하여 위의 동작을 반복한다. 각 트랙들 T0,T1,T2내의 펄스 위치는 각각 8가지씩 가능하므로, 3개의 펄스로 구성된 임시 코드벡터
Figure 112000007330074-pat00016
은 총 8 × 8 × 8 = 512 가지 존재하고, 상기 검색과정 510은 512번 반복된다. 모든 검색이 종료되면, 최적 코드벡터
Figure 112000007330074-pat00017
이 결정되어 출력된다.
2차 검색과정 520은 1차 검색과정 510에서 조건 512를 만족하는 코드벡터
Figure 112000007330074-pat00018
에 대하여, 마지막 트랙 T3의 펄스를 추가하여 4개의 펄스로 구성된 코드벡터
Figure 112000007330074-pat00019
에 대한 검색을 수행하는 과정이다. 521단계에서는 트랙 T3의 가능한 위치에 펄스를 추가하여 코드벡터
Figure 112000007330074-pat00020
을 생성한다. 522단계에서는 상기 생성된 코드벡터
Figure 112000007330074-pat00021
에 대하여 Tk 값을 계산한다. 523단계에서는 상기 Tk 값이 최대값인지 여부를 비교하고, 524단계에서는 상기 523단계에서 새로운 최대값인 것으로 판단되면 최대값을 저장한다. 최대값이 아니면 526단계에서 트랙 T3의 다음 위치의 펄스를 선택하고, 521단계에서 이 선택된 펄스를 추가하여 새로운 코드벡터
Figure 112000007330074-pat00022
을 정의한다. 상기 새로운 코드벡터 에 대해서도 522단계 내지 524단계의 동작이 반복된다. 트랙 T3내의 가능한 펄스 위치는 모두 16가지이므로, 상기 2차 검색과정은 16번 반복된다. 트랙 T3의 모든 위치의 펄스에 대한 검색이 끝난 경우에는 1차 검색과정 510으로 되돌아간다.
도 6은 상기 도 5에 도시된 512단계에서 사용되는 임계값을 계산하는 과정을 도시하는 도면이다.
상기 도 6을 참조하면, 601단계에서 상기 도 5의 1차 검색과정 510에서 사용하는 것과 동일한 모든 임시 코드벡터
Figure 112000007330074-pat00024
에 대하여, 충격응답과 목표신호의 사이의 상관관계값인 d(n)과의 상관관계를 계산한다. 모든 가능한 임시 코드벡터
Figure 112000007330074-pat00025
에 대한 상관관계값이 구해지면, 602단계에서는 상기 구해진 상관관계에 대한 평균값 및 최대값을 계산한다. 603단계에서는 상기 602단계에서 계산된 평균값과 최대값을 이용하여 임계값을 구하는데, 이때 임계값은 [평균값 + K1 × (최대값 - 평균값)]으로 정의되며, 여기서 K1은 0과 1사이의 값이다.
한편, IS-127 EVRC 음성 압축기의 표준안이 제안하고 있는 코드북 검색 방식은, 두 개의 트랙에서 두 개의 펄스를 동시에 검색하는 과정을 순차적으로 4번 반복하여 최종 8개의 펄스를 찾아 코드벡터를 구하는 방식을 사용한다. 이 방식을 설명하기 위하여 먼저 두 개의 트랙에서 두 개의 펄스를 검색하는 동작을 설명한다.
도 7은 IS-127 EVRC 음성 압축기의 표준안이 제안하는 코드북 검색 방식에 따라, 두 개의 트랙에서 두 개의 펄스를 찾는 과정 700을 도시하는 도면이다.
상기 도 7을 참조하면, N-2 개의 펄스로 구성된 입력 코드벡터와, 새로운 두 개의 펄스를 찾을 트랙 Ti 와 Tj가 주어지면, 701단계에서 상기 입력 코드벡터에 트랙 Ti에서 하나의 펄스와 트랙 Tj에서 하나의 펄스를 추가하여 N 개의 펄스로 구성된 새로운 코드벡터를 정의한다. 702단계에서는 상기 새로운 코드벡터에 대한 Tk 값을 계산하고, 703단계에서는 상기 계산된 Tk 값과 최대값을 비교한다. 상기 계산된 Tk 값이 최대값보다 큰 경우에는 상기 계산된 Tk 값을 최대값으로 저장한 후 705단계 및 706단계로 진행하고, 작은 경우에는 바로 705단계 및 706단계로 진행한다. 가능한 모든 두 개의 펄스 조합에 대해 상기 701단계 내지 706단계의 동작이 반복되고, 이러한 반복 동작의 수행 결과에 따라 최대 Tk 값을 가지는 N개의 펄스로 구성된 코드벡터가 출력 코드벡터로서 발생된다. 상기 과정 700이 "두 개의 펄스 검색" 과정이며, 이러한 과정은 (Ti 의 펄스 위치 수) × (Tj 의 펄스 위치 수) 번 반복된다.
도 8은 IS-127 EVRC 음성 압축기의 표준안이 제안하는 코드북 검색 동작을 도시하는 도면으로, 이 검색 동작에 의해 8개의 펄스로 구성된 최적 코드벡터가 발생된다.
상기 도 8을 참조하면, 기본적인 펄스 검색 동작은 도 7에 도시된 700 과정이 순차적으로 반복되는 것이다. 801단계에서는 입력 코드벡터가 널(Null)(즉, 모든 값이 Zero인 코드벡터)이고, 트랙 T0과 트랙 T1에서 펄스를 검색하여 두 개의 펄스를 가지는 출력 코드벡터를 발생한다. 다음 802단계에서는 상기 801단계에서 구해진 출력 코드벡터를 입력으로 하여 트랙 T2와 트랙 T3에서 펄스를 검색하여 4 개의 펄스를 가지는 출력 코드벡터를 발생한다. 그 다음 803단계에서는 상기 802단계에서 구해진 출력 코드벡터를 입력으로 하여 트랙 T4와 트랙 T0에서 펄스를 검색하여 6개의 펄스를 가지는 출력 코드벡터를 발생한다. 마지막으로 804단계에서는 상기 803단계에서 구해진 출력 코드벡터를 입력으로 하여 트랙 T1과 트랙 T2에서 펄스를 검색하여 8개의 펄스를 가지는 출력 코드벡터를 발생한다. 결과적으로 펄스 검색 과정 800에서는 트랙들 T0,T1,T2 각각에서 2개의 펄스, 트랙들 T3,T4 각각에서 한 개의 펄스를 가지는 코드벡터가 발생된다.
8개의 펄스로 구성되는 코드벡터를 발생하는 상기와 같은 800 과정이 810, 820, 830 과정에서도 동일하게 수행된다. 다만, 각 과정에서 펄스 검색을 위해 입력시키는 트랙의 순서(펄스를 검색하고자 하는 트랙의 순서)에는 차이가 있다. 810 과정에서는 먼저 트랙들 T1,T2에서 펄스를 검색하고, 다음에 트랙들 T3,T4에서 펄스를 검색하고, 그 다음에 트랙들 T0,T1에서 펄스를 검색하고, 마지막으로 트랙들 T2,T3에서 펄스를 검색하고, 8개의 펄스를 가지는 코드벡터를 발생한다. 상기 810 과정에서는 트랙들 T1,T2,T3 각각에서 2개의 펄스, 트랙들 T4,T0 각각에서 한 개의 펄스를 가지는 코드벡터가 발생된다. 820 과정에서는 T2,T3 →T4,T0 →T1,T2 → T3,T4의 트랙 순서로 펄스가 검색된 후 트랙들 T2,T3,T4 각각에서 2개의 펄스, 트랙들 T0,T1 각각에서 한 개의 펄스를 가지는 코드벡터가 발생된다. 830 과정에서는 T3,T4 →T0,T1 →T2,T3 → T4,T0의 트랙 순서로 펄스가 검색된 후 트랙들 T3,T4,T0 각각에서 2개의 펄스, 트랙들 T1,T2 각각에서 한 개의 펄스를 가지는 코드벡터가 발생된다. 840 과정에서는 상기 800, 810, 820, 830 각 과정들에서 발생된 코드벡 터중에서 가장 큰 Tk값을 가지는 코드벡터를 선택하고, 이 선택된 코드벡터를 최적의 코드벡터로서 발생한다.
두 개의 트랙에서 각각 한 개의 펄스를 구하는 상기 801,802,803,804 각 과정에서의 총 경우의 수는 11 ×11 = 121 이 되고, 800 과정은 상기 801 과정을 4번 수행하는 것이므로 총 경우의 수는 121 ×4 = 484 이다. 또한 상기 800 과정이 트랙 순서를 바꾸며 4번 반복되므로, 총 484 ×4 = 1,936 가지에 대하여 검색을 하게 된다. 즉 약 8 ×107 가지의 모든 경우 중에서 1,936 가지의 코드벡터에 대하여서만 검색을 하는 것이다.
상기 도 5 및 도 8과 관련하여 설명한 바와 같은 ACELP 구조의 음성 압축기에서 코드북을 검색하여 최적의 코드벡터를 발생하는 방식은 다음과 같은 문제점이 있다. 첫 번째로, 계산량을 줄이기 위하여 전체 코드벡터에 대한 부분 검색을 하고 있지만 여전히 많은 계산량이 필요하고, 따라서 전체 음성 압축기 구현을 위한 계산량이 많고, 이로 인하여 음성 압축기를 사용하는 시스템의 가격이 증가하고, 동작을 위한 전력 소모가 많은 등의 문제점을 가진다.
두 번째로, 가능한 모든 코드벡터에 대하여 전체 검색을 하지 않고 순차적 방법에 기반을 둔 부분 검색을 하므로, 최적의 코드벡터를 찾지 못하는 경우가 발생할 수 있고, 이로 인하여 음성 압축기의 성능이 저하된다.
세 번째로, 매우 적은 계산량만 허용되는 환경에 사용하기 위하여 계산량을 더욱 줄여야 할 필요가 있으며, 이 때 순차적 방법을 사용하여 더 제한된 범위에서 검색을 하게 되면 계산량은 많이 줄지만 음성 압축기의 성능이 매우 저하된다.
따라서 본 발명의 목적은 ACELP 음성 압축기의 코드북 검색 방법을 개선하여 매우 적은 계산량으로 코드벡터를 찾는 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 ACELP 음성 압축기의 코드북 검색 방법을 개선하여 보다 성능이 우수한 코드벡터를 찾아 ACELP 음성 압축기의 성능을 향상시키는 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 ACELP 음성 압축기의 동작을 위한 계산량을 감소시키는 방법을 제공하여, 기존의 ACELP 음성 압축기를 매우 적은 계산량을 요구하는 응용 분야에 적용 할 수 있도록 하는데 있다.
본 발명의 또 다른 목적은 전 세계적으로 널리 사용되고 있는 다양한 종류의 ACELP 음성 압축기에 대하여, 공통적으로 적용할 수 있는 새로운 ACELP 코드북 검색 장치 및 방법을 제공함에 있다.
이러한 목적들을 달성하기 위한 본 발명에 따른 ACELP 음성 압축기의 코드북 검색 장치는, 1차 검색 단계 및 2차 검색 단계로 구분되어 동작한다. 상기 1차 검색 단계에서는 ACELP 음성 압축기 표준안이 정의하는 펄스 위치에 대한 규정에 따라 각 트랙별로 펄스를 순차적으로 찾는 방법 등을 통하여 필요한 수의 펄스로 구성된 초기 코드벡터를 선택한다. 상기 2차 검색 단계에서는 상기 1차 검색 단계에서 선택된 코드벡터에서 각 펄스의 중요도를 계산하고, 최소 중요도를 가지는 펄스 를 제거하고, 최적의 펄스를 새로 찾아 성능이 향상된 새로운 코드벡터를 발생한다. 상기 2차 단계에서의 펄스 교환 동작은 반복적으로 수행될 수 있으며, 즉 1차 단계의 출력 코드벡터에 대하여 펄스 교환이 계속적으로 수행될 수 있으며, 상기 2차 단계가 반복되면 코드벡터의 성능은 점차 향상되어 최적의 코드벡터를 찾을 수 있다. 상기 2차 단계에서 코드벡터의 각 펄스의 중요도는 해당 펄스를 제거한 코드벡터의 성능의 역으로 정의된다.
이하 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 참조번호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
우선 본 발명에 따른 ACELP 음성 압축기의 코드북 검색 장치는, 1차 검색 단계 및 2차 검색 단계로 구분되어 동작함을 밝혀두는 바이다. 상기 1차 검색 단계에서는 ACELP 음성 압축기 표준안이 정의하는 펄스 위치에 대한 규정에 따라 각 트랙별로 펄스를 순차적으로 찾는 방법 등을 통하여 필요한 수의 펄스로 구성된 초기 코드벡터를 선택한다. 상기 2차 검색 단계에서는 상기 1차 검색 단계에서 선택된 코드벡터에서 각 펄스의 중요도를 계산하고, 최소 중요도를 가지는 펄스를 제거하 고, 최적의 펄스를 새로 찾아 성능이 향상된 새로운 코드벡터를 발생한다. 상기 2차 단계에서의 펄스 교환 동작은 반복적으로 수행될 수 있으며, 즉 1차 단계의 출력 코드벡터에 대하여 펄스 교환이 계속적으로 수행될 수 있으며, 상기 2차 단계가 반복되면 코드벡터의 성능은 점차 향상되어 최적의 코드벡터를 찾을 수 있다. 상기 2차 단계에서 코드벡터의 각 펄스의 중요도는 해당 펄스를 제거한 코드벡터의 성능의 역으로 정의된다.
도 9는 본 발명에 따른 코드북 검색 동작의 1차 단계인 펄스 검색 과정의 일 예를 도시하는 도면으로, (j+1) 개의 트랙을 순차적으로 검색하여 (j+1)개의 펄스로 구성된 코드벡터를 발생하는 펄스 검색기 900을 도시하고 있다.
상기 도 9를 참조하면, 제1 펄스 검색기 910은 널(Null)의 코드벡터(모든 값이 제로인 코드벡터)를 입력하고, 첫번째 트랙 T0에서 한 개의 펄스를 검색하여, 상기 입력 코드벡터와 상기 검색된 펄스로 구성되는 새로운 코드벡터를 발생한다. 제2 펄스 검색기 920은 상기 제1 펄스 검색기 910으로부터 발생된 코드벡터를 입력하고, 두 번째 트랙 T1에서 한 개의 펄스를 검색하여, 상기 입력 코드벡터와 상기 검색된 펄스로 구성되는 새로운 코드벡터를 발생한다. 제3 펄스 검색기 930은 상기 제2 펄스 검색기 920으로부터 발생된 코드벡터를 입력하고, 세 번째 트랙 T2에서 한 개의 펄스를 검색하여, 상기 입력 코드벡터와 상기 검색된 펄스로 구성되는 새로운 코드벡터를 발생한다. 제(j+1) 펄스 검색기 940은 제j 펄스 검색기(도시하지 않음)로부터 발생된 코드벡터를 입력하고, (j+1) 번째 트랙 Tj에서 한 개의 펄스를 검색하여, 상기 입력 코드벡터와 상기 검색된 펄스로 구성되는 새로운 코드벡터를 발생한다. 상기 제1 펄스 검색기 910으로부터 발생되는 코드벡터는 1개의 펄스로 구성되고, 상기 제2 펄스 검색기 920으로부터 발생되는 코드벡터는 2개의 펄스로 구성되고, 상기 제3 펄스 검색기 930으로부터 발생되는 코드벡터는 3개의 펄스로 구성되고, 상기 제(j+1) 펄스 검색기 940으로부터 발생되는 코드벡터는 (j+1)개의 펄스로 구성된다. 즉 상기 펄스 검색기 900은 (j+1) 개의 트랙을 순차적으로 검색하여 (j+1)개의 펄스로 구성된 초기 코드벡터를 발생한다. 상기 펄스 검색기들 910,920,930,940 각각은 이전 단계의 펄스 검색기로부터 입력되는 코드벡터를 고려하여 하나의 펄스를 검색한다. 여기서, 이전 단계의 펄스 검색기로부터 입력되는 코드벡터를 고려한다 함은 각 펄스 검색기들이 지정된 트랙내에서 펄스를 검색할 시 지정된 트랙내의 펄스에 대해서만 최대의 중요도값(Tk)을 계산하는 것이 아니라, 이전 단계의 펄스 검색기로부터 입력되는 코드벡터와 지정된 트랙내의 펄스를 추가하여 새로이 구성된 코드벡터에 대한 중요도값(Tk)을 계산하는 것을 의미하는 것이다.
도 10은 상기 도 9에 도시된 펄스 검색기들 910,920,930,940에 의한 각 트랙별 펄스 검색 과정을 도시하는 도면으로, 일 예로 N-1 개의 펄스로 구성된 입력 코드벡터에 대하여 트랙 Ti에서 하나의 펄스를 추가하여 N개의 펄스로 구성된 새로운 최적의 코드벡터를 발생하는 동작이 도시되어 있다.
상기 도 10을 참조하면, N-1 개의 펄스로 구성된 입력 코드벡터와 새로운 펄스를 찾을 트랙 Ti가 주어지면, 901단계에서는 상기 입력 코드벡터에 트랙 Ti에서 하나의 펄스를 추가하여 N 개의 펄스로 구성된 새로운 코드벡터
Figure 112000007330074-pat00026
을 정의한다. 902단계에서는 상기 코드벡터
Figure 112000007330074-pat00027
에 대한 성능값(
Figure 112000007330074-pat00028
)을 계산한다. 이러한 코드벡터에 대한 성능값의 계산은 전술한 <수학식 3>에 따른다. 903단계에서는 상기 902단계에서 계산된 성능값과 이전에 계산된 성능값중에 최대값을 비교한다. 904단계에서는 상기 902단계에서 계산된 성능값이 최대값보다 큰 것으로 비교되는 경우 이때의 성능값을 최대값을 저장한다. 상기 904단계를 수행한 이후 또는 상기 902단계에서 계산된 성능값이 최대값보다 크지 않은 것으로 비교되는 경우에는 905단계 및 906단계로 진행한다. 상기 906단계를 수행한 이후에는 상기 트랙 Ti의 다음 펄스에 대해 상기 901단계 및 904단계의 동작을 반복한다. 이러한 반복 동작은 상기 트랙 Ti내의 모든 펄스들에 대해 수행된다. 상기 트랙 Ti내의 모든 펄스들에 대해 성능값이 계산되고, 이중에 가장 큰 성능값을 가지는 코드벡터가 출력 코드벡터
Figure 112000007330074-pat00029
로서 발생된다. 상기 출력 코드벡터
Figure 112000007330074-pat00030
은 입력 코드벡터가 N-1 개의 펄스로 구성된 경우 N개의 펄스로 구성된다. 상기 901단계 내지 906단계는 한 개의 펄스를 검색하는 "한 개의 펄스 검색" 과정이며, 트랙 Ti내의 펄스 위치 수만큼 반복된다.
도 11은 본 발명에 따른 코드북 검색 동작의 2차 단계인 펄스 교환 과정을 수행하는 펄스 교환기의 구성을 도시하는 도면으로, 입력 코드벡터에 대하여 각 펄스의 중요도를 계산하여 최소 중요도를 가지는 펄스를 제거하고 새로운 펄스를 선택하여 성능이 향상된 새로운 코드벡터를 발생하는 펄스 교환기 1100에 의한 펄스 교환 과정이 도시되어 있다.
상기 도 11을 참조하면, 펄스 교환기 1100은 중요도 계산기 1110, 최소 중요 도 펄스 결정부 1130, 새로운 트랙 결정부 1140, 최소 중요도 펄스 제거기 1150 및 펄스 검색기 1160으로 구성된다. 상기 중요도 계산기 1110은 1차 단계에서 구한 N개의 펄스를 가지는 초기 코드 벡터에 대하여, N개의 펄스 각각의 중요도를 계산하는 것으로, 다수의 펄스 제거기들 1111,1112,1113과, 계산기 1120으로 구성된다. 상기 다수의 펄스 제거기들 1111,1112,1113 각각은 초기 입력 코드벡터를 구성하는 펄스들 중 해당하는 펄스를 제거하고, 상기 제거된 펄스를 제외한 나머지 펄스들로 구성되는 코드벡터를 출력한다. 초기 입력 코드벡터가 N개의 펄스로 구성되었다고 가정하면, 상기 다수의 펄스 제거기들 1111,1112,1113은 N개이고, 각 펄스 제거기는 N-1펄스로 구성되는 코드벡터를 출력한다. 상기 계산기 1120은 상기 다수의 펄스 제거기들 1111,1112,1113으로부터 출력되는 코드벡터들에 대한 성능값(Tk)을 계산하고, 상기 계산된 성능값의 역수를 제거된 펄스의 중요도로 판단한다. 예를 들어, 상기 계산기 1120은 첫 번째 펄스 제거기 1111로부터 출력되는 코드벡터에 대한 성능값(Tk)을 계산하고, 상기 계산된 성능값의 역수(1/Tk)를 제거된 첫 번째 펄스의 중요도로 판단한다. 이때 코드벡터에 대한 성능값(Tk)은 전술한 <수학식 3>에 의해 계산된다.
최소 중요도 펄스 결정부 1130은 상기 중요도 계산기 1110의 계산기 1120에 의해 계산된 N개 펄스 각각의 중요도를 입력하고, N개의 중요도중에서 최소 중요도를 가지는 펄스를 제거될 펄스로 결정한다. 새로운 트랙 결정부 1140은 상기 제거될 펄스를 대신하여 교환할 새로운 펄스를 검색하기 위한 새로운 트랙을 결정한다. 상기 새로운 트랙 결정부 1140에 의한 새로운 트랙 결정 동작은 각 음성 압축기마 다 약간씩 다르다. G.729 CS-ACELP 음성 압축기의 경우에는 하나의 트랙을 새로운 트랙으로 결정하고, IS-127 EVRC 음성 압축기의 경우에는 2개의 트랙을 새로운 트랙으로 결정할 수 있다. 그러나 어떠한 음성 압축기의 경우에도 반드시 새로이 교환될 펄스가 포함되는 트랙은 제거될 펄스가 포함되는 트랙과 동일한 트랙을 포함한다. 최소 중요도 펄스 제거기 1150은 초기 코드벡터로부터 최소 중요도 펄스를 제거함으로써 N-1개의 펄스로 구성되는 코드벡터를 출력한다.
상기 새로운 트랙 결정부 1140에 의해 하나의 트랙이 결정된 경우, 펄스 검색기 1160은 상기 새로운 트랙 결정부 1140에 의해 결정된 트랙내에 포함되는 펄스들 중에서 하나의 펄스를 검색하고, 상기 최소 중요도 펄스 제거기 1150으로부터 출력된 코드벡터에 상기 검색된 펄스를 추가하여 N개의 펄스로 구성되는 새로운 코드벡터를 발생한다. 이때 상기 펄스 검색기 1160은 상기 최소 중요도 펄스 제거기 1150으로부터 출력되는 코드벡터를 구성하는 N-1개의 펄스들을 고려하여 하나의 펄스를 검색한다.
반면에, 상기 새로운 트랙 결정부 1140에 의해 여러 개의 트랙이 결정되는 경우에는 각 트랙내에서 하나의 펄스를 검색하고, 이렇게 검색된 펄스가 N-1개의 펄스에 추가되어 구성되는 코드벡터들 중에서 최대의 중요도값(Tk)을 가지는 코드벡터를 펄스 교환기 1100의 코드벡터로 출력한다.
도 12는 도 11에 도시된 새로운 트랙 결정부 1140에 의해 결정된 새로운 펄스가 검색될 트랙이 여러 개인 경우에 각 트랙별로 펄스 검색 동작을 수행하고, 최종적으로 펄스 교환기 1100에서 출력될 코드벡터를 결정하는 동작을 도시하고 있 다.
상기 도 12를 참조하면, 상기 새로운 트랙 결정부 1140에 의해 여러 개의 트랙이 결정되는 경우에 펄스 검색기들 1161,1162는 각 트랙내에서 하나의 펄스를 검색하고, 이렇게 검색된 펄스를 N-1개의 펄스에 추가하여 새로운 코드벡터 구성한다. 코드벡터 선택부 1170은 상기 펄스 검색기들 1161,1162에 의해 구성된 코드벡터들 중에서 최대의 중요도값(Tk)을 가지는 코드벡터를 펄스 교환기 1100에서 출력될 코드벡터로서 결정한다.
상기 펄스 교환기 1100으로부터 출력되는 코드벡터는 입력 코드벡터에서 한 개의 펄스를 교환한 결과에 따른 코드벡터이며, 이와 같은 과정이 "펄스 교환" 과정이다. 펄스 교환기 1200은 상기 펄스 교환기 1100으로부터 출력되는 코드벡터에서 한 개의 펄스를 교환하여 새로운 코드벡터를 출력한다. 펄스 교환기 1210은 상기 펄스 교환기 1200으로부터 출력되는 코드벡터에서 한 개의 펄스를 교환하여 새로운 코드벡터를 출력한다. 이와 같이 펄스 교환 과정은 다단계로 수행될 수 있으며, 펄스 교환 과정의 반복 수가 많을수록 코드벡터의 성능을 향상시킬 수 있을 것이다.
전술한 바와 같은 본 발명에 따른 ACELP 음성 압축기의 코드북 검색 및 그에 따른 코드벡터 발생 장치는 다음과 같은 특징을 갖는다.
첫번째, 매우 작은 수의 코드벡터에 대한 검색만 실시하므로 코드북 검색을 위한 계산량이 매우 작고, 이로 인하여 ACELP 음성 압축기의 구현을 위한 시스템의 구조가 간단해 지고, 저전력화, 저가격화가 가능하다.
두 번째로, 2차 펄스 교환 단계를 통하여 코드벡터의 성능을 향상시키므로, 기존의 표준안이 제안하는 코드북 검색 방법에 비하여 우수한 성능의 코드벡터를 찾아 음성 압축기의 성능을 향상시킨다.
세 번째로, 본 발명은 ACELP 코드북의 펄스 위치 규정에 영향을 받지 않고, 어떠한 형태의 규정에 대하여서도 그대로 적용이 가능하며, 따라서 기존의 모든 ACELP 음성 압축기와 앞으로 개발될 ACELP 음성 압축기에 모두 적용 가능하다.
상기와 같은 특징을 갖는 본 발명을 G.729 CS-ACELP 음성 압축기와 IS-127 EVRC 음성 압축기에 적용한 예가 도 13 및 도 14에 도시되어 있다.
도 13은 본 발명을 G.729 CS-ACELP 음성 압축기에 적용한 경우의 코드북 검색 장치의 구성을 도시하는 도면이다.
상기 도 13을 참조하면, 펄스 검색부 1300은 4개의 펄스 검색기들 1310,1320,1330,1340으로 구성되고, 펄스 교환부 1350은 2개의 펄스 교환기 1360,1370으로 구성된다. 상기 펄스 검색부 1300을 4개의 펄스 검색기들로 구성한 이유는 G.729 CS-ACELP 음성 압축기의 코드북은 4개의 트랙(TO,T1,T2,T3)으로 구성되어 있기 때문이다. 제1 펄스 검색기 1310은 널(Null)의 코드벡터를 입력하고, 상기 입력 코드벡터를 고려하여 트랙 T0내의 하나의 펄스를 검색하고, 검색된 하나의 펄스를 상기 입력 코드벡터에 추가하여 하나의 펄스로 구성되는 코드벡터를 출력한다. 제2 펄스 검색기 1320은 상기 제1 펄스 검색기 1310으로부터 출력된 코드벡터를 입력하고, 상기 입력 코드벡터를 고려하여 트랙 T1내의 하나의 펄스를 검색하고, 검색된 하나의 펄스를 상기 입력 코드벡터에 추가하여 2개의 펄스로 구성되는 코드벡터를 출력한다. 제3 펄스 검색기 1330은 상기 제2 펄스 검색기 1320으로부터 출력된 코드벡터를 입력하고, 상기 입력 코드벡터를 고려하여 트랙 T2내의 하나의 펄스를 검색하고, 검색된 하나의 펄스를 상기 입력 코드벡터에 추가하여 3개의 펄스로 구성되는 코드벡터를 출력한다. 제4 펄스 검색기 1340은 상기 제3 펄스 검색기 1330으로부터 출력된 코드벡터를 입력하고, 상기 입력 코드벡터를 고려하여 트랙 T3내의 하나의 펄스를 검색하고, 검색된 하나의 펄스를 상기 입력 코드벡터에 추가하여 4개의 펄스로 구성되는 코드벡터를 출력한다.
펄스 교환부 1350의 펄스 교환기 1360은 1차 검색 단계의 최종 출력 코드벡터인 제4 펄스 검색기 1340으로부터의 출력 코드벡터를 입력한다. 상기 펄스 교환기 1360은 입력된 코드벡터를 구성하는 4개의 펄스들 중 최소 중요도의 펄스를 제거하고, 이 제거된 펄스를 대신하는 새로운 펄스를 검색하여 추가한 후 새로운 코드벡터를 발생한다. 펄스 교환기 1370은 상기 펄스 교환기 1360으로부터 발생된 코드벡터를 입력하고, 입력된 코드벡터를 구성하는 4개의 펄스들 중 최소 중요도의 펄스를 제거하고, 이 제거된 펄스를 대신하는 새로운 펄스를 검색하여 추가한 후 새로운 코드벡터를 발생한다. G.729 CS-ACELP는 각 트랙에서 반드시 하나의 펄스를 가져야 하므로 제거된 펄스가 존재하는 트랙에서 반드시 새로운 펄스를 선택하여야 한다. 따라서 펄스 교환부 1350의 각 펄스 교환기 1360,1370의 내부에서는 제거된 펄스가 포함되는 트랙을 그대로 펄스가 추가될 트랙으로 결정하는 동작을 수행한다. 도 13에서는 두 번의 펄스 교환 동작을 수행하는 실시 예를 보여준다.
본 발명을 상기 도 13에 도시된 바와 같이 CS-ACELP 음성 압축기에 적용한 결과 1차 단계에 8+8+8+16 = 40 경우의 코드벡터에 대한 검색을 하고, 2차 단계에서 한 번의 펄스 교환을 위하여 각 펄스의 중요도를 계산하기 위한 4번의 코드벡터 검색과 새로운 펄스를 찾기 위한 최대 16번의 코드벡터 검색을 한다. 따라서 총 검색량은 40 + 20 × (펄스 교환 수)가 된다.
도 14는 본 발명을 IS-127 EVRC 음성 압축기에 적용한 경우의 최적의 코드벡터 발생 장치의 구성을 도시하는 도면이다.
상기 도 14를 참조하면, EVRC 음성 압축기의 코드북은 8개의 펄스로 구성되므로, 각 펄스 검색부들 1410,1420,1430,1440을 8개의 펄스 검색기로 구성한다. 펄스 검색부들 1420,1430,1440의 펄스 검색 동작은 펄스 검색부 1410과 동일하므로, 하기에서는 펄스 검색부 1410의 동작에 국한하여 설명하기로 한다.
상기 펄스 검색부 1410의 제1 펄스 검색기 1411은 널(Null)의 코드벡터를 입력하고, 상기 입력 코드벡터를 고려하여 트랙 T0내의 하나의 펄스를 검색하고, 검색된 하나의 펄스를 상기 입력 코드벡터에 추가하여 하나의 펄스로 구성되는 코드벡터를 출력한다. 제2 펄스 검색기 1412는 상기 제1 펄스 검색기 1411로부터 출력된 코드벡터를 입력하고, 상기 입력 코드벡터를 고려하여 트랙 T1내의 하나의 펄스를 검색하고, 검색된 하나의 펄스를 상기 입력 코드벡터에 추가하여 2개의 펄스로 구성되는 코드벡터를 출력한다. 제3 펄스 검색기 1413은 상기 제2 펄스 검색기 1412로부터 출력된 코드벡터를 입력하고, 상기 입력 코드벡터를 고려하여 트랙 T2내의 하나의 펄스를 검색하고, 검색된 하나의 펄스를 상기 입력 코드벡터에 추가하여 3개의 펄스로 구성되는 코드벡터를 출력한다. 제4 펄스 검색기 1414는 상기 제3 펄스 검색기 1413으로부터 출력된 코드벡터를 입력하고, 상기 입력 코드벡터를 고려하여 트랙 T3내의 하나의 펄스를 검색하고, 검색된 하나의 펄스를 상기 입력 코드벡터에 추가하여 4개의 펄스로 구성되는 코드벡터를 출력한다. 제5 펄스 검색기 1415는 상기 제4 펄스 검색기 1414로부터 출력된 코드벡터를 입력하고, 상기 입력 코드벡터를 고려하여 트랙 T4내의 하나의 펄스를 검색하고, 검색된 하나의 펄스를 상기 입력 코드벡터에 추가하여 5개의 펄스로 구성되는 코드벡터를 출력한다. 제6 펄스 검색기 1416은 상기 제5 펄스 검색기 1415로부터 출력된 코드벡터를 입력하고, 상기 입력 코드벡터를 고려하여 트랙 T0내의 하나의 펄스를 검색하고, 검색된 하나의 펄스를 상기 입력 코드벡터에 추가하여 6개의 펄스로 구성되는 코드벡터를 출력한다. 제7 펄스 검색기 1417은 상기 제6 펄스 검색기 1416으로부터 출력된 코드벡터를 입력하고, 상기 입력 코드벡터를 고려하여 트랙 T1내의 하나의 펄스를 검색하고, 검색된 하나의 펄스를 상기 입력 코드벡터에 추가하여 7개의 펄스로 구성되는 코드벡터를 출력한다. 제8 펄스 검색기 1418은 상기 제7 펄스 검색기 1417로부터 출력된 코드벡터를 입력하고, 상기 입력 코드벡터를 고려하여 트랙 T2내의 하나의 펄스를 검색하고, 검색된 하나의 펄스를 상기 입력 코드벡터에 추가하여 8개의 펄스로 구성되는 코드벡터를 출력한다. 이와 같이 펄스 검색부 1410은 트랙 TO →T1 →T2 →T3 →T4 →T0 →T1 →T2의 순서로 각 트랙내에서 하나의 펄스를 검색하고, 최종적으로 8개의 펄스로 구성된 코드벡터를 발생한다.
펄스 검색부 1420은 트랙 T1 →T2 →T3 →T4 →T0 →T1 →T2 →T3의 순서로 각 트랙내에서 하나의 펄스를 검색하고, 최종적으로 8개의 펄스로 구성된 코드벡터 를 발생한다. 펄스 검색부 1430은 트랙 T2 →T3 →T4 →T0 →T1 →T2 →T3 →T4의 순서로 각 트랙내에서 하나의 펄스를 검색하고, 최종적으로 8개의 펄스로 구성된 코드벡터를 발생한다. 펄스 검색부 1440은 트랙 T3 →T4 →T0 →T1 →T2 →T3 →T4 →T0의 순서로 각 트랙내에서 하나의 펄스를 검색하고, 최종적으로 8개의 펄스로 구성된 코드벡터를 발생한다.
코드벡터 선택부 1450은 상기 각 펄스 검색부들 1410,1420,1430,1440으로부터 발생된 코드벡터들을 입력하고, 각 코드벡터들에 대한 중요도값(Tk)을 구하고, 최대 중요도값을 가지는 코드벡터를 선택하여 1차 단계에서 선택된 코드벡터로서 출력한다.
펄스 교환부 1460은 상기 코드벡터 선택부 1450으로부터 선택 출력된 코드벡터를 입력하여 펄스 교환 동작을 수행한다. 상기 펄스 교환부 1460은 2번의 펄스 교환 동작 수행을 위한 펄스 교환기 1470 및 펄스 교환기 1480으로 구성된다. IS-127 EVRC 음성 압축기에서는 한 트랙에서 최대 2개의 펄스가 가능하므로 펄스가 제거된 트랙에서 반드시 새로운 펄스가 선택될 필요가 없으며, 펄스가 제거된 트랙과 하나의 다른 트랙에서 펄스가 선택될 수 있다. 이와 같은 펄스 교환기내에서 새로운 트랙을 정하는 동작 규칙을 도 15를 참조하여 설명한다.
일 예로, 1차 단계에서 선택된 코드벡터가 도 15의 첫 번째 경우와 같이 트랙들 T0, T1, T2에 두 개의 펄스를 가지고, 트랙 T3, T4에 한 개의 펄스를 가지는 코드벡터라 가정한다. 만일 중요도 검사를 통하여 트랙 T0의 펄스가 제거되면, 새로운 펄스는 트랙 T0 또는 트랙 T3에서 선택되어야 한다. 여기서 트랙 T3가 허용되 는 이유는 트랙 T3에서 새로운 펄스가 선택되어도 트랙들 T1, T2, T3가 두 개의 펄스를 가지고 트랙들 T4, T0가 한 개의 펄스를 가지게 되어 표준안 규정에 어긋나지 않기 때문이다. 이때 만일 트랙 T1의 펄스가 제거되면 새로운 펄스는 반드시 트랙 T1에서만 선택되어야 규정을 위배하지 않게 된다. 즉 새로운 펄스의 검색은 최대 두 개의 트랙에서 이루어진다. 이와 같은 펄스 교환 동작을 반복적으로 수행하여 최종 코드벡터를 발생한다. 도 14에서는 두 번의 펄스 교환 동작이 수행된 후 최종 코드벡터가 발생되는 예를 보여주고 있다.
본 발명을 IS-127 EVRC에 적용한 예의 필요한 계산량은 다음과 같다. 1차 단계에서 8개의 펄스를 4번 찾기 위하여 11 × 8 × 4 번의 검색을 하고, 2차 단계에서 한 번의 펄스 교환을 위하여 8번의 중요도 계산을 위한 코드벡터 검색과 최대 두 개의 트랙에서 11개의 펄스를 검색하기 위한 22번의 검색이 필요하다. 따라서 총 검색량은 352 + (8 + 22) × (펄스 교환 수)이다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 일예로, 본 발명의 구체적인 실시 예에서는 본 발명이 G.729 CS-ACELP 음성 압축기 및 IS-127 EVRC 음성 압축기에 적용된 예로 설명하였으나, 본 발명에 따른 코드북 검색 동작은 ITU G.723.1 ACELP 음성 압축기에도 적용될 수 있다. 본 발명이 G.723.1 ACELP 음성 압축기에 적용되는 경우에는 짝수 위치 코드벡터(Even Pulse Position Codevector)와 홀수 위치 코드벡터(Odd Pulse Position Codevector)에 대하여 각각 독립적으로 두 단계로 코드벡터를 검색하고, 최종적으로 짝수 위치 코드 벡터와 홀수 위치 코드벡터중에서 하나의 코드벡터를 선택하여 발생하면 된다. 또한 본 발명의 구체적인 실시 예에서는 펄스 교환의 동작이 2회 반복되는 예로 설명하였으나, 펄스 교환 동작의 반복 횟수는 코드벡터의 성능을 고려하여 적절하게 설정될 수 있을 것이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 ACELP 음성 압축기의 코드북 검색 방법 및 장치를 사용하면 다음과 같은 효과를 얻을 수 있다.
먼저, 현재 사용되고 있는 많은 종류의 ACELP 음성 압축기에서, 기존의 방법에 비하여 코드북 검색을 위한 계산량이 매우 많이 줄어들어, 음성 압축기의 동작을 위한 계산량이 줄어들고, 따라서 음성 압축기 구현이 간단해지고, 동작을 위한 전력이 줄어들고, 시스템의 가격이 떨어지는 장점이 있다.
두 번째로, ACELP 음성 압축기의 코드북 검색 계산량을 줄이기 위한 기존의 다른 방법에 비하여 우수한 성능의 코드벡터를 선택할 수 있고, 이를 통하여 음성 압축기의 성능을 향상시킬 수 있다.
세 번째로, 다양한 종류의 ACELP 음성 압축기에 대하여 제약 없이 새로운 ACELP 코드북 검색 방법 및 장치를 적용할 수 있어, 그 적용 범위가 상당히 넓다.

Claims (57)

  1. 각각이 미리 정해진 수의 펄스들의 위치를 나타내는 다수의 트랙들로 구성되는 코드북으로부터 입력 음성신호를 합성하기 위한 여기신호로서 검색되고, 상기 각 트랙별로 적어도 하나의 펄스가 선택되어 구성되는 코드벡터에 대하여, 코드벡터의 성능을 향상시키기 위해 입력 코드벡터내의 적어도 한 펄스를 새로운 펄스로 교환하기 위한 펄스 교환장치에 있어서:
    상기 입력 코드벡터를 구성하는 각 펄스의 중요도를 계산하는 중요도 계산기와;
    상기 중요도 계산기에 의한 계산 결과에 따라 최소 중요도의 펄스 및 새로운 펄스 검색을 위한 트랙을 결정하고, 상기 결정된 트랙내에서 상기 최소 중요도의 펄스를 대신하여 교환될 새로운 펄스를 검색하고, 상기 최소 중요도의 펄스가 제거된 상기 입력 코드벡터와 상기 새로운 펄스가 추가되어 구성되는 최적의 코드벡터를 출력하는 교환 펄스 검색기를 포함함을 특징으로 하는 펄스 교환장치.
  2. 제1항에 있어서, 상기 중요도 계산기는,
    각각이 상기 입력 코드벡터를 구성하는 펄스들 중 해당하는 펄스를 제거하 고, 상기 제거된 펄스를 제외한 나머지 펄스들로 구성되는 코드벡터를 출력하는 다수의 펄스 제거기들과;
    상기 각 펄스 제거기들로부터 출력되는 코드벡터에 대한 성능값을 계산하고, 상기 계산된 성능값의 역수를 상기 제거된 펄스의 중요도로 판단하는 계산기를 포함함을 특징으로 하는 펄스 교환장치.
  3. 제2항에 있어서, 상기 계산기는, 상기 각 펄스 제거기들로부터 출력되는 코드벡터에 대하여 하기의 <수학식 4>과 같이 정의되는 성능값(Tk)을 계산하는 것을 특징으로 하는 펄스 교환장치.
    Figure 112000007330074-pat00031
    여기서,
    Figure 112000007330074-pat00032
    는 상기 각 펄스 제거기들로부터 출력되는 코드벡터이고, k 는 코드벡터 인덱스이고,
    Figure 112000007330074-pat00033
    는 하기의 <수학식 5>과 같이 정의되는
    Figure 112000007330074-pat00034
    로 구성된 L × L 행렬이고,
    Figure 112000007330074-pat00035
    는 하기의 <수학식 6>와 같이 정의되는 벡터이고, t는 벡터의 트랜스포즈이다.
    Figure 112000007330074-pat00036
    Figure 112000007330074-pat00037
    여기서
    Figure 112000007330074-pat00038
    은 LPC 계수로 구성된 가중치 포먼트 필터의 충격응답이고,
    Figure 112000007330074-pat00039
    는 목표신호이고, L은 코드 벡터의 길이이다.
  4. 제1항에 있어서, 상기 새로운 펄스 검색을 위해 결정되는 트랙은 상기 최소 중요도의 펄스가 속하는 트랙과 동일함을 특징으로 하는 펄스 교환장치.
  5. 제4항에 있어서, 상기 교환 펄스 검색기는,
    상기 중요도 계산기에 의한 계산 결과에 따라 상기 최소 중요도의 펄스를 결정하는 펄스 결정부와,
    상기 최소 중요도의 펄스가 속하는 트랙을 상기 새로운 펄스 검색을 위한 트랙으로 결정하는 트랙 결정부와,
    상기 입력 코드벡터에서 상기 최소 중요도의 펄스를 제거하는 최소 중요도 펄스 제거기와,
    상기 최소 중요도 펄스 제거기의 출력을 고려하여 상기 결정된 트랙내에서 상기 최소 중요도의 펄스를 대신하여 교환될 상기 새로운 펄스를 검색하는 펄스 검 색기를 포함함을 특징으로 하는 펄스 교환장치.
  6. 제1항에 있어서, 상기 새로운 펄스 검색을 위해 결정되는 트랙은 상기 최소 중요도의 펄스가 속하는 트랙을 포함하는 적어도 2개 이상의 트랙임을 특징으로 하는 펄스 교환장치.
  7. 제6항에 있어서, 상기 교환 펄스 검색기는,
    상기 중요도 계산기에 의한 계산 결과에 따라 최소 중요도의 펄스를 결정하는 펄스 결정부와,
    상기 최소 중요도의 펄스가 속하는 트랙을 포함하는 적어도 2개 이상의 트랙들을 상기 새로운 펄스 검색을 위한 트랙들로 결정하는 트랙 결정부와,
    상기 입력 코드벡터에서 상기 최소 중요도의 펄스를 제거하는 최소 중요도 펄스 제거기와,
    상기 최소 중요도 펄스 제거기의 출력을 고려하여 상기 결정된 각 트랙내에서 상기 최소 중요도의 펄스를 대신하여 교환될 상기 새로운 펄스를 검색하고, 상기 최소 중요도의 펄스가 제거된 상기 입력 코드벡터와 상기 새로운 펄스가 추가되어 구성되는 새로운 코드벡터를 각각이 출력하는 펄스 검색기들과,
    상기 각 펄스 검색기들로부터 출력되는 새로운 코드벡터의 성능값을 계산하 고 최대의 성능값을 가지는 새로운 코드벡터를 최적의 코드벡터로서 선택하는 코드벡터 선택부를 포함함을 특징으로 하는 펄스 교환장치.
  8. 제7항에 있어서, 상기 코드벡터 선택부는, 상기 각 펄스 검색기들로부터 출력되는 새로운 코드벡터의 성능값(Tk)을 하기의 <수학식 7>에 따라 계산하는 것을 특징으로 하는 펄스 교환장치.
    Figure 112000007330074-pat00040
    여기서,
    Figure 112000007330074-pat00041
    는 상기 각 펄스 검색기들로부터 출력되는 코드벡터이고, k 는 코드벡터 인덱스이고,
    Figure 112000007330074-pat00042
    는 하기의 <수학식 8>과 같이 정의되는
    Figure 112000007330074-pat00043
    로 구성된 L × L 행렬이고,
    Figure 112000007330074-pat00044
    는 하기의 <수학식 9>와 같이 정의되는 벡터이고, t는 벡터의 트랜스포즈이다.
    Figure 112000007330074-pat00045
    Figure 112000007330074-pat00046
    여기서
    Figure 112000007330074-pat00047
    은 LPC 계수로 구성된 가중치 포먼트 필터의 충격응답이고,
    Figure 112000007330074-pat00048
    는 목표신호이고, L은 코드 벡터의 길이이다.
  9. 각각이 미리 정해진 수의 펄스들의 위치를 나타내는 다수의 트랙들로 구성되는 코드북으로부터 입력 음성신호를 합성하기 위한 여기신호로서 검색되고, 상기 각 트랙별로 적어도 하나의 펄스가 선택되어 구성되는 코드벡터에 대하여, 코드벡터의 성능을 향상시키기 위해 입력 코드벡터내의 적어도 한 펄스를 새로운 펄스로 교환하기 위한 펄스 교환방법에 있어서:
    상기 입력 코드벡터를 구성하는 각 펄스의 중요도를 계산하는 (a)과정과;
    상기 중요도 계산 결과에 따라 최소 중요도의 펄스 및 새로운 펄스 검색을 위한 트랙을 결정하고, 상기 결정된 트랙내에서 상기 최소 중요도의 펄스를 대신하여 교환될 새로운 펄스를 검색하고, 상기 최소 중요도의 펄스가 제거된 상기 입력 코드벡터와 상기 새로운 펄스가 추가되어 구성되는 최적의 코드벡터를 출력하는 (b)과정을 포함함을 특징으로 하는 펄스 교환방법.
  10. 제9항에 있어서, 상기 (a)과정은,
    상기 입력 코드벡터를 구성하는 펄스들 각각에 대해 해당하는 펄스를 제거하고, 상기 제거된 펄스를 제외한 나머지 펄스들로 구성되는 코드벡터를 출력하는 (a-1)단계와;
    상기 (a-1)단계에서 출력되는 코드벡터들에 대한 성능값을 계산하고, 상기 계산된 성능값의 역수를 상기 제거된 펄스의 중요도로 판단하는 (a-2)단계를 포함함을 특징으로 하는 펄스 교환방법.
  11. 제10항에 있어서, 상기 (a-1)단계에서 출력되는 코드벡터들에 대한 성능값(Tk)은 하기의 <수학식 10>과 같이 계산되는 것을 특징으로 하는 펄스 교환방법.
    Figure 112000007330074-pat00049
    여기서,
    Figure 112000007330074-pat00050
    는 상기 (a-1) 단계에서 출력되는 코드벡터이고, k 는 코드벡터 인덱스이고,
    Figure 112000007330074-pat00051
    는 하기의 <수학식 11>과 같이 정의되는
    Figure 112000007330074-pat00052
    로 구성된 L × L 행렬이고,
    Figure 112000007330074-pat00053
    는 하기의 <수학식 12>와 같이 정의되는 벡터이고, t는 벡터의 트랜스포즈이다.
    Figure 112000007330074-pat00054
    Figure 112000007330074-pat00055
    여기서
    Figure 112000007330074-pat00056
    은 LPC 계수로 구성된 가중치 포먼트 필터의 충격응답이고,
    Figure 112000007330074-pat00057
    는 목표신호이고, L은 코드 벡터의 길이이다.
  12. 제9항에 있어서, 상기 새로운 펄스 검색을 위해 결정되는 트랙은 상기 최소 중요도의 펄스가 속하는 트랙과 동일함을 특징으로 하는 펄스 교환방법.
  13. 제12항에 있어서, 상기 (b)과정은,
    상기 중요도 계산 결과에 따라 상기 최소 중요도의 펄스를 결정하는 (b-1)단계와,
    상기 최소 중요도의 펄스가 속하는 트랙을 상기 새로운 펄스 검색을 위한 트랙으로 결정하는 (b-2)단계와,
    상기 입력 코드벡터에서 상기 최소 중요도의 펄스를 제거하는 (b-3)단계와,
    상기 (b-3)단계의 처리 결과를 고려하여 상기 결정된 트랙내에서 상기 최소 중요도의 펄스를 대신하여 교환될 상기 새로운 펄스를 검색하는 (b-4)단계를 포함함을 특징으로 하는 펄스 교환방법.
  14. 제9항에 있어서, 상기 새로운 펄스 검색을 위해 결정되는 트랙은 상기 최소 중요도의 펄스가 속하는 트랙을 포함하는 적어도 2개 이상의 트랙임을 특징으로 하는 펄스 교환방법.
  15. 제14항에 있어서, 상기 (b)과정은,
    상기 중요도 계산 결과에 따라 최소 중요도의 펄스를 결정하는 (b-1)단계와,
    상기 최소 중요도의 펄스가 속하는 트랙을 포함하는 적어도 2개 이상의 트랙들을 상기 새로운 펄스 검색을 위한 트랙들로 결정하는 (b-2)단계와,
    상기 입력 코드벡터에서 상기 최소 중요도의 펄스를 제거하는 (b-3)단계와,
    상기 (b-3)단계의 처리 결과를 고려하여 상기 결정된 각 트랙내에서 상기 최소 중요도의 펄스를 대신하여 교환될 상기 새로운 펄스를 검색하고, 상기 최소 중요도의 펄스가 제거된 상기 입력 코드벡터와 상기 새로운 펄스가 추가되어 구성되는 새로운 코드벡터를 각각 출력하는 (b-4)단계와,
    상기 (b-4)단계에서 각각 출력되는 새로운 코드벡터의 성능값을 계산하고 최대의 성능값을 가지는 새로운 코드벡터를 최적의 코드벡터로서 선택하는 (b-5)단계를 포함함을 특징으로 하는 펄스 교환방법.
  16. 제15항에 있어서, 상기 새로운 코드벡터의 성능값(Tk)은 하기의 <수학식 13>에 따라 계산하는 것을 특징으로 하는 펄스 교환방법.
    Figure 112000007330074-pat00058
    여기서,
    Figure 112000007330074-pat00059
    는 상기 새로운 코드벡터이고, k 는 코드벡터 인덱스이고,
    Figure 112000007330074-pat00060
    는 하기의 <수학식 14>과 같이 정의되는
    Figure 112000007330074-pat00061
    로 구성된 L × L 행렬이고,
    Figure 112000007330074-pat00062
    는 하기의 <수학식 15>와 같이 정의되는 벡터이고, t는 벡터의 트랜스포즈이다.
    Figure 112000007330074-pat00063
    Figure 112000007330074-pat00064
    여기서
    Figure 112000007330074-pat00065
    은 LPC 계수로 구성된 가중치 포먼트 필터의 충격응답이고,
    Figure 112000007330074-pat00066
    는 목표신호이고, L은 코드 벡터의 길이이다.
  17. 각각이 미리 정해진 수의 펄스들의 위치를 나타내는 다수의 트랙들로 구성되는 코드북으로부터 입력 음성신호를 합성하기 위한 여기신호로서 검색되고, 상기 각 트랙별로 적어도 하나의 펄스가 선택되어 구성되는 코드벡터에 대하여, 코드벡터의 성능을 향상시켜 최적의 코드벡터를 발생하기 위해 상기 입력 코드벡터내의 적어도 한 펄스를 새로운 펄스로 교환하는 다수의 펄스 교환기들을 포함하는 코드북 검색장치에 있어서:
    상기 각 펄스 교환기는 중요도 계산기와 교환 펄스 검색기로 구성되고;
    상기 중요도 계산기는, 상기 입력 코드벡터를 구성하는 각 펄스의 중요도를 계산하고;
    상기 교환 펄스 검색기는, 상기 중요도 계산기에 의한 계산 결과에 따라 최소 중요도의 펄스 및 새로운 펄스 검색을 위한 트랙을 결정하고, 상기 결정된 트랙내에서 상기 최소 중요도의 펄스를 대신하여 교환될 새로운 펄스를 검색하고, 상기 최소 중요도의 펄스가 제거된 상기 입력 코드벡터와 상기 새로운 펄스가 추가되어 구성되는 최적의 코드벡터를 출력하는 것을 특징으로 하는 코드북 검색장치.
  18. 제17항에 있어서, 상기 중요도 계산기는,
    각각이 상기 입력 코드벡터를 구성하는 펄스들 중 해당하는 펄스를 제거하고, 상기 제거된 펄스를 제외한 나머지 펄스들로 구성되는 코드벡터를 출력하는 다수의 펄스 제거기들과;
    상기 각 펄스 제거기들로부터 출력되는 코드벡터에 대한 성능값(Tk)을 계산하고, 상기 계산된 성능값의 역수를 상기 제거된 펄스의 중요도로 판단하는 계산기 를 포함함을 특징으로 하는 코드북 검색장치.
  19. 제18항에 있어서, 상기 계산기는, 상기 각 펄스 제거기들로부터 출력되는 코드벡터에 대하여 하기의 <수학식 16>과 같이 정의되는 성능값(Tk)을 계산하는 것을 특징으로 하는 코드북 검색장치.
    Figure 112000007330074-pat00067
    여기서,
    Figure 112000007330074-pat00068
    는 상기 각 펄스 제거기들로부터 출력되는 코드벡터이고, k 는 코드벡터 인덱스이고,
    Figure 112000007330074-pat00069
    는 하기의 <수학식 17>과 같이 정의되는
    Figure 112000007330074-pat00070
    로 구성된 L × L 행렬이고,
    Figure 112000007330074-pat00071
    는 하기의 <수학식 18>와 같이 정의되는 벡터이고, t는 벡터의 트랜스포즈이다.
    Figure 112000007330074-pat00072
    Figure 112000007330074-pat00073
    여기서
    Figure 112000007330074-pat00074
    은 LPC 계수로 구성된 가중치 포먼트 필터의 충격응답이고,
    Figure 112000007330074-pat00075
    는 목표신호이고, L은 코드 벡터의 길이이다.
  20. 제17항에 있어서, 상기 새로운 펄스 검색을 위해 결정되는 트랙은 상기 최소 중요도의 펄스가 속하는 트랙과 동일함을 특징으로 하는 코드북 검색장치.
  21. 제20항에 있어서, 상기 교환 펄스 검색기는,
    상기 중요도 계산기에 의한 계산 결과에 따라 상기 최소 중요도의 펄스를 결정하는 펄스 결정부와,
    상기 최소 중요도의 펄스가 속하는 트랙을 상기 새로운 펄스 검색을 위한 트랙으로 결정하는 트랙 결정부와,
    상기 입력 코드벡터에서 상기 최소 중요도의 펄스를 제거하는 최소 중요도 펄스 제거기와,
    상기 최소 중요도 펄스 제거기의 출력을 고려하여 상기 결정된 트랙내에서 상기 최소 중요도의 펄스를 대신하여 교환될 상기 새로운 펄스를 검색하는 펄스 검색기를 포함함을 특징으로 하는 코드북 검색장치.
  22. 제17항에 있어서, 상기 새로운 펄스 검색을 위해 결정되는 트랙은 상기 최소 중요도의 펄스가 속하는 트랙을 포함하는 적어도 2개 이상의 트랙임을 특징으로 하는 코드북 검색장치.
  23. 제22항에 있어서, 상기 교환 펄스 검색기는,
    상기 중요도 계산기에 의한 계산 결과에 따라 최소 중요도의 펄스를 결정하는 펄스 결정부와,
    상기 최소 중요도의 펄스가 속하는 트랙을 포함하는 적어도 2개 이상의 트랙들을 상기 새로운 펄스 검색을 위한 트랙들로 결정하는 트랙 결정부와,
    상기 입력 코드벡터에서 상기 최소 중요도의 펄스를 제거하는 최소 중요도 펄스 제거기와,
    상기 최소 중요도 펄스 제거기의 출력을 고려하여 상기 결정된 각 트랙내에서 상기 최소 중요도의 펄스를 대신하여 교환될 상기 새로운 펄스를 검색하고, 상기 최소 중요도의 펄스가 제거된 상기 입력 코드벡터와 상기 새로운 펄스가 추가되어 구성되는 새로운 코드벡터를 각각이 출력하는 펄스 검색기들과,
    상기 각 펄스 검색기들로부터 출력되는 새로운 코드벡터의 성능값을 계산하고 최대의 성능값을 가지는 새로운 코드벡터를 최적의 코드벡터로서 선택하는 코드벡터 선택부를 포함함을 특징으로 하는 코드북 검색장치.
  24. 제23항에 있어서, 상기 코드벡터 선택부는, 상기 각 펄스 검색기들로부터 출력되는 새로운 코드벡터의 성능값(Tk)을 하기의 <수학식 19>에 따라 계산하는 것을 특징으로 하는 코드벡터 발생장치.
    Figure 112000007330074-pat00076
    여기서,
    Figure 112000007330074-pat00077
    는 상기 각 펄스 검색기들로부터 출력되는 코드벡터이고, k 는 코드벡터 인덱스이고,
    Figure 112000007330074-pat00078
    는 하기의 <수학식 20>과 같이 정의되는
    Figure 112000007330074-pat00079
    로 구성된 L × L 행렬이고,
    Figure 112000007330074-pat00080
    는 하기의 <수학식 21>와 같이 정의되는 벡터이고, t는 벡터의 트랜스포즈이다.
    Figure 112000007330074-pat00081
    Figure 112000007330074-pat00082
    여기서
    Figure 112000007330074-pat00083
    은 LPC 계수로 구성된 가중치 포먼트 필터의 충격응답이고,
    Figure 112000007330074-pat00084
    는 목표신호이고, L은 코드 벡터의 길이이다.
  25. 입력 음성신호를 압축 음성데이터로 변환하고, 상기 입력 음성신호를 합성하기 위한 여기신호로서의 코드벡터를 발생하기 위해 각각이 미리 정해진 수의 펄스들의 위치를 나타내는 다수의 트랙들로 구성되는 코드북을 구비하는 음성 압축기에서 최적의 코드벡터를 선택하기 위하여 상기 코드북을 검색하는 장치에 있어서:
    요구되는 수의 펄스들로 구성되는 초기 코드벡터를 발생하기 위한 일련의 펄스 검색기들로 구성되고, 각 펄스 검색기는 상기 다수의 트랙들 중 해당하는 하나의 트랙을 검색하여 하나의 펄스를 선택하고 상기 선택된 펄스와 이전 단계의 펄스 검색기에 의해 발생된 코드벡터로 구성되는 출력 코드벡터를 발생하는 펄스 검색부와;
    상기 초기 코드벡터내의 적어도 한 펄스를 새로운 펄스로 교환하고, 상기 교환된 펄스와 상기 초기 코드벡터의 나머지 펄스들로 구성되는 상기 최적의 코드벡터를 출력하는 펄스 교환부를 포함함을 특징으로 하는 코드북 검색장치.
  26. 제25항에 있어서, 상기 펄스 검색부는 상기 다수의 트랙들의 수만큼의 상기 일련의 펄스 검색기들로 구성되고, 상기 초기 코드벡터는 상기 다수의 트랙들의 수만큼의 펄스들로 구성되는 것을 특징으로 하는 코드북 검색장치.
  27. 제26항에 있어서, 상기 각 펄스 검색기는, 이전 단계의 펄스 검색기에 의해 발생된 코드벡터에 해당하는 트랙내의 펄스들 중 한 펄스를 추가하여 새로운 코드벡터들을 생성하고, 상기 각 새로운 코드벡터들에 대한 성능값을 계산하고, 최대의 성능값을 가지는 코드벡터를 상기 출력 코드벡터로 발생하는 것을 특징으로 하는 코드북 검색장치.
  28. 제27항에 있어서, 상기 각 펄스 검색기는, 상기 각 새로운 코드벡터들에 대하여 하기의 <수학식 22>과 같이 정의되는 성능값(Tk)을 계산하는 것을 특징으로 하는 코드북 검색장치.
    Figure 112000007330074-pat00085
    여기서,
    Figure 112000007330074-pat00086
    는 상기 각 새로운 코드벡터이고, k 는 코드벡터 인덱스이고,
    Figure 112000007330074-pat00087
    는 하기의 <수학식 23>과 같이 정의되는
    Figure 112000007330074-pat00088
    로 구성된 L × L 행렬이고,
    Figure 112000007330074-pat00089
    는 하기의 <수학식 24>와 같이 정의되는 벡터이고, t는 벡터의 트랜스포즈이다.
    Figure 112000007330074-pat00090
    Figure 112000007330074-pat00091
    여기서
    Figure 112000007330074-pat00092
    은 LPC 계수로 구성된 가중치 포먼트 필터의 충격응답이고,
    Figure 112000007330074-pat00093
    는 목표신호이고, L은 코드 벡터의 길이이다.
  29. 제25항에 있어서, 상기 펄스 교환부는,
    상기 초기 코드벡터를 구성하는 각 펄스의 중요도를 계산하는 중요도 계산기와;
    상기 중요도 계산기에 의한 계산 결과에 따라 최소 중요도의 펄스 및 새로운 펄스 검색을 위한 트랙을 결정하고, 상기 결정된 트랙내에서 상기 최소 중요도의 펄스를 대신하여 교환될 새로운 펄스를 검색하고, 상기 최소 중요도의 펄스가 제거된 상기 입력 코드벡터와 상기 새로운 펄스가 추가되어 구성되는 상기 최적의 코드벡터를 출력하는 교환 펄스 검색기로 구성되는 적어도 하나 이상의 펄스 교환기를 포함함을 특징으로 하는 코드북 검색장치.
  30. 제29항에 있어서, 상기 펄스 교환부는 적어도 2개 이상의 펄스 교환기로 구성됨을 특징으로 하는 코드북 검색장치.
  31. 제29항에 있어서, 상기 중요도 계산기는,
    각각이 상기 초기 코드벡터를 구성하는 펄스들 중 해당하는 펄스를 제거하고, 상기 제거된 펄스를 제외한 나머지 펄스들로 구성되는 코드벡터를 출력하는 다수의 펄스 제거기들과;
    상기 각 펄스 제거기들로부터 출력되는 코드벡터에 대한 성능값을 계산하고, 상기 계산된 성능값의 역수를 상기 제거된 펄스의 중요도로 판단하는 계산기를 포함함을 특징으로 하는 코드북 검색장치.
  32. 제31항에 있어서, 상기 계산기는, 상기 각 펄스 제거기들로부터 출력되는 코드벡터에 대하여 하기의 <수학식 25>과 같이 정의되는 성능값(Tk)을 계산하는 것을 특징으로 하는 코드북 검색장치.
    Figure 112000007330074-pat00094
    여기서,
    Figure 112000007330074-pat00095
    는 상기 각 펄스 제거기들로부터 출력되는 코드벡터이고, k 는 코드벡터 인덱스이고,
    Figure 112000007330074-pat00096
    는 하기의 <수학식 26>과 같이 정의되는
    Figure 112000007330074-pat00097
    로 구성된 L × L 행렬이고,
    Figure 112000007330074-pat00098
    는 하기의 <수학식 27>와 같이 정의되는 벡터이고, t는 벡터의 트랜스포즈이다.
    Figure 112000007330074-pat00099
    Figure 112000007330074-pat00100
    여기서
    Figure 112000007330074-pat00101
    은 LPC 계수로 구성된 가중치 포먼트 필터의 충격응답이고,
    Figure 112000007330074-pat00102
    는 목표신호이고, L은 코드 벡터의 길이이다.
  33. 제29항에 있어서, 상기 새로운 펄스 검색을 위해 결정되는 트랙은 상기 최소 중요도의 펄스가 속하는 트랙과 동일함을 특징으로 하는 코드북 검색장치.
  34. 제33항에 있어서, 상기 교환 펄스 검색기는,
    상기 중요도 계산기에 의한 계산 결과에 따라 상기 최소 중요도의 펄스를 결정하는 펄스 결정부와,
    상기 최소 중요도의 펄스가 속하는 트랙을 상기 새로운 펄스 검색을 위한 트랙으로 결정하는 트랙 결정부와,
    상기 초기 코드벡터에서 상기 최소 중요도의 펄스를 제거하는 최소 중요도 펄스 제거기와,
    상기 최소 중요도 펄스 제거기의 출력을 고려하여 상기 결정된 트랙내에서 상기 최소 중요도의 펄스를 대신하여 교환될 상기 새로운 펄스를 검색하는 펄스 검색기를 포함함을 특징으로 하는 코드북 검색장치.
  35. 입력 음성신호를 압축 음성데이터로 변환하고, 상기 입력 음성신호를 합성하기 위한 여기신호로서의 코드벡터를 발생하기 위해 각각이 미리 정해진 수의 펄스들의 위치를 나타내는 다수의 트랙들로 구성되는 코드북을 구비하는 음성 압축기에서 최적의 코드벡터를 선택하기 위하여 상기 코드북을 검색하는 방법에 있어서:
    상기 다수의 트랙들 중 해당하는 하나의 트랙을 검색하여 하나의 펄스를 선택하고 상기 선택된 펄스와 이전 단계에서 발생된 코드벡터로 구성되는 출력 코드벡터를 반복적으로 발생하고, 요구되는 수의 펄스들로 구성되는 초기 코드벡터를 발생하는 (a)과정과;
    상기 초기 코드벡터내의 적어도 한 펄스를 새로운 펄스로 교환하고, 상기 교환된 펄스와 상기 초기 코드벡터의 나머지 펄스들로 구성되는 상기 최적의 코드벡터를 출력하는 (b)과정을 포함함을 특징으로 하는 코드북 검색방법.
  36. 제35항에 있어서, 상기 초기 코드벡터는 상기 다수의 트랙들의 수만큼의 펄스들로 구성되는 것을 특징으로 하는 코드북 검색방법.
  37. 제36항에 있어서, 상기 (a)과정은, 이전 단계에서 발생된 코드벡터에 해당하는 트랙내의 펄스들 중 한 펄스를 추가하여 새로운 코드벡터들을 생성하고, 상기 각 새로운 코드벡터들에 대한 성능값을 계산하고, 최대의 성능값을 가지는 코드벡터를 상기 출력 코드벡터로 발생하는 것을 특징으로 하는 코드북 검색방법.
  38. 제37항에 있어서, 상기 각 새로운 코드벡터들에 대한 성능값(Tk)은 하기의 <수학식 28>과 같이 계산되는 것을 특징으로 하는 코드북 검색방법.
    Figure 112000007330074-pat00103
    여기서,
    Figure 112000007330074-pat00104
    는 상기 각 새로운 코드벡터이고, k 는 코드벡터 인덱스이고,
    Figure 112000007330074-pat00105
    는 하기의 <수학식 29>과 같이 정의되는
    Figure 112000007330074-pat00106
    로 구성된 L × L 행렬이고,
    Figure 112000007330074-pat00107
    는 하기의 <수학식 30>와 같이 정의되는 벡터이고, t는 벡터의 트랜스포즈이다.
    Figure 112000007330074-pat00108
    Figure 112000007330074-pat00109
    여기서
    Figure 112000007330074-pat00110
    은 LPC 계수로 구성된 가중치 포먼트 필터의 충격응답이고,
    Figure 112000007330074-pat00111
    는 목표신호이고, L은 코드 벡터의 길이이다.
  39. 제35항에 있어서, 상기 (b)과정은,
    상기 초기 코드벡터를 구성하는 각 펄스의 중요도를 계산하는 (b-1)단계와,
    상기 중요도 계산 결과에 따라 최소 중요도의 펄스 및 새로운 펄스 검색을 위한 트랙을 결정하는 (b-2)단계와,
    상기 결정된 트랙내에서 상기 최소 중요도의 펄스를 대신하여 교환될 새로운 펄스를 검색하는 (b-3)단계와,
    상기 최소 중요도의 펄스가 제거된 상기 입력 코드벡터와 상기 새로운 펄스가 추가되어 구성되는 상기 최적의 코드벡터를 출력하는 (b-4)단계로 구성됨을 특징으로 하는 코드북 검색방법.
  40. 제39항에 있어서, 상기 (b)과정은 적어도 2회 이상 반복되는 것을 특징으로 하는 코드북 검색방법.
  41. 제39항에 있어서, 상기 (b-1)단계는,
    상기 초기 코드벡터를 구성하는 펄스들 각각에 대해 해당하는 펄스를 제거하고, 상기 제거된 펄스를 제외한 나머지 펄스들로 구성되는 코드벡터를 출력하는 (b-11)단계와;
    상기 (b-11)단계에서 출력되는 각 코드벡터에 대한 성능값을 계산하고, 상기 계산된 성능값의 역수를 상기 제거된 펄스의 중요도로 판단하는 (b-12)단계를 포함함을 특징으로 하는 코드북 검색방법.
  42. 제41항에 있어서, 상기 (b-11)단계에서 출력되는 각 코드벡터에 대한 성능값(Tk)은 하기의 <수학식 31>에 의해 계산되는 것을 특징으로 하는 코드북 검색방법.
    Figure 112000007330074-pat00112
    여기서,
    Figure 112000007330074-pat00113
    는 상기 (b-11) 단계에서 출력되는 각 코드벡터이고, k 는 코드벡터 인덱스이고,
    Figure 112000007330074-pat00114
    는 하기의 <수학식 32>과 같이 정의되는
    Figure 112000007330074-pat00115
    로 구성된 L × L 행렬이고,
    Figure 112000007330074-pat00116
    는 하기의 <수학식 33>와 같이 정의되는 벡터이고, t는 벡터의 트랜스포즈이다.
    Figure 112000007330074-pat00117
    Figure 112000007330074-pat00118
    여기서
    Figure 112000007330074-pat00119
    은 LPC 계수로 구성된 가중치 포먼트 필터의 충격응답이고,
    Figure 112000007330074-pat00120
    는 목표신호이고, L은 코드 벡터의 길이이다.
  43. 제39항에 있어서, 상기 새로운 펄스 검색을 위해 결정되는 트랙은 상기 최소 중요도의 펄스가 속하는 트랙과 동일함을 특징으로 하는 코드북 검색방법.
  44. 제43항에 있어서, 상기 (b-2)단계는,
    상기 중요도 계산 결과에 따라 상기 최소 중요도의 펄스를 결정하는 (b-21)단계와,
    상기 최소 중요도의 펄스가 속하는 트랙을 상기 새로운 펄스 검색을 위한 트랙으로 결정하는 (b-22)단계와,
    상기 초기 코드벡터에서 상기 최소 중요도의 펄스를 제거하는 (b-23)단계와,
    상기 최소 중요도 펄스가 제거된 상기 초기 코드벡터를 고려하여 상기 결정된 트랙내에서 상기 최소 중요도의 펄스를 대신하여 교환될 상기 새로운 펄스를 검 색하는 (b-24)단계를 포함함을 특징으로 하는 코드북 검색방법.
  45. 입력 음성신호를 압축 음성데이터로 변환하고, 상기 입력 음성신호를 합성하기 위한 여기신호로서의 코드벡터를 발생하기 위해 각각이 미리 정해진 수의 펄스들의 위치를 나타내는 다수의 트랙들로 구성되는 코드북을 구비하는 음성 압축기에서 최적의 코드벡터를 선택하기 위하여 상기 코드북을 검색하는 장치에 대하여:
    각 펄스 검색부는 요구되는 수의 펄스들로 구성되는 초기 코드벡터를 발생하기 위한 일련의 펄스 검색기들로 구성되고, 각 펄스 검색기는 상기 다수의 트랙들 중 해당하는 하나의 트랙을 검색하여 하나의 펄스를 선택하고 상기 선택된 펄스와 이전 단계의 펄스 검색기에 의해 발생된 코드벡터로 구성되는 출력 코드벡터를 발생하는 다수의 펄스 검색부들과;
    상기 각 펄스 검색부로부터 발생되는 초기 코드벡터들 각각에 대한 성능값을 계산하고, 최대의 성능값을 가지는 초기 코드벡터를 선택하여 출력하는 코드벡터 선택부와;
    상기 선택된 초기 코드벡터내의 적어도 한 펄스를 새로운 펄스로 교환하고, 상기 교환된 펄스와 상기 선택된 초기 코드벡터내의 나머지 펄스들로 구성되는 상기 최적의 코드벡터를 출력하는 펄스 교환부를 포함함을 특징으로 하는 코드북 검색장치.
  46. 제45항에 있어서, 상기 각 펄스 검색부는 상기 다수의 트랙들의 수보다 많은 수의 상기 일련의 펄스 검색기들로 구성되고, 상기 초기 코드벡터는 상기 다수의 트랙들의 수보다 많은 수의 펄스들로 구성되는 것을 특징으로 하는 코드북 검색장치.
  47. 제46항에 있어서, 상기 각 펄스 검색기는, 이전 단계의 펄스 검색기에 의해 발생된 코드벡터에 해당하는 트랙내의 펄스들 중에서 한 펄스를 추가하여 새로운 코드벡터들을 생성하고, 상기 각 새로운 코드벡터들에 대한 성능값을 계산하고, 최대의 성능값을 가지는 코드벡터를 상기 출력 코드벡터로 발생하는 것을 특징으로 하는 코드북 검색장치.
  48. 제47항에 있어서, 상기 각 펄스 검색기는, 상기 각 새로운 코드벡터들에 대하여 하기의 <수학식 34>과 같이 정의되는 성능값(Tk)을 계산하는 것을 특징으로 하는 코드북 검색장치.
    Figure 112000007330074-pat00121
    여기서,
    Figure 112000007330074-pat00122
    는 상기 각 새로운 코드벡터이고, k 는 코드벡터 인덱스이고,
    Figure 112000007330074-pat00123
    는 하기의 <수학식 35>과 같이 정의되는
    Figure 112000007330074-pat00124
    로 구성된 L × L 행렬이고,
    Figure 112000007330074-pat00125
    는 하기의 <수학식 36>와 같이 정의되는 벡터이고, t는 벡터의 트랜스포즈이다.
    Figure 112000007330074-pat00126
    Figure 112000007330074-pat00127
    여기서
    Figure 112000007330074-pat00128
    은 LPC 계수로 구성된 가중치 포먼트 필터의 충격응답이고,
    Figure 112000007330074-pat00129
    는 목표신호이고, L은 코드 벡터의 길이이다.
  49. 제45항에 있어서, 상기 코드 선택부는, 상기 각 펄스 검색부로부터 발생되는 초기 코드벡터들 각각에 대한 성능값을 계산하고, 최대의 성능값을 가지는 코드벡터를 선택하여 출력하는 것을 특징으로 하는 코드북 검색장치.
  50. 제49항에 있어서, 상기 코드 선택부는 상기 각 펄스 검색부로부터 발생되는 초기 코드벡터들 각각에 대해 하기의 <수학식 37>과 같이 정의되는 성능값(Tk)을 계산하는 것을 특징으로 하는 코드북 검색장치.
    Figure 112000007330074-pat00130
    여기서,
    Figure 112000007330074-pat00131
    는 상기 각 펄스 검색부로부터 발생되는 초기 코드벡터이고, k 는 코드벡터 인덱스이고,
    Figure 112000007330074-pat00132
    는 하기의 <수학식 38>과 같이 정의되는
    Figure 112000007330074-pat00133
    로 구성된 L × L 행렬이고,
    Figure 112000007330074-pat00134
    는 하기의 <수학식 39>와 같이 정의되는 벡터이고, t는 벡터의 트랜스포즈이다.
    Figure 112000007330074-pat00135
    Figure 112000007330074-pat00136
    여기서
    Figure 112000007330074-pat00137
    은 LPC 계수로 구성된 가중치 포먼트 필터의 충격응답이고,
    Figure 112000007330074-pat00138
    는 목표신호이고, L은 코드 벡터의 길이이다.
  51. 제45항에 있어서, 상기 펄스 교환부는,
    상기 선택된 초기 코드벡터를 구성하는 각 펄스의 중요도를 계산하는 중요도 계산기와;
    상기 중요도 계산기에 의한 계산 결과에 따라 최소 중요도의 펄스 및 새로운 펄스 검색을 위한 트랙을 결정하고, 상기 결정된 트랙내에서 상기 최소 중요도의 펄스를 대신하여 교환될 새로운 펄스를 검색하고, 상기 최소 중요도의 펄스가 제거된 상기 입력 코드벡터와 상기 새로운 펄스가 추가되어 구성되는 상기 최적의 코드벡터를 출력하는 교환 펄스 검색기로 구성되는 적어도 하나 이상의 펄스 교환기를 포함함을 특징으로 하는 코드북 검색장치.
  52. 제51항에 있어서, 상기 펄스 교환부는 적어도 2개 이상의 펄스 교환기로 구성됨을 특징으로 하는 코드북 검색장치.
  53. 제51항에 있어서, 상기 중요도 계산기는,
    각각이 상기 선택된 초기 코드벡터를 구성하는 펄스들 중 해당하는 펄스를 제거하고, 상기 제거된 펄스를 제외한 나머지 펄스들로 구성되는 코드벡터를 출력하는 다수의 펄스 제거기들과;
    상기 각 펄스 제거기들로부터 출력되는 코드벡터에 대한 성능값을 계산하고, 상기 계산된 성능값의 역수를 상기 제거된 펄스의 중요도로 판단하는 계산기를 포함함을 특징으로 하는 코드북 검색장치.
  54. 제53항에 있어서, 상기 계산기는, 상기 각 펄스 제거기들로부터 출력되는 코드벡터에 대하여 하기의 <수학식 40>과 같이 정의되는 성능값(Tk)을 계산하는 것을 특징으로 하는 코드북 검색장치.
    Figure 112000007330074-pat00139
    여기서,
    Figure 112000007330074-pat00140
    는 상기 각 펄스 제거기들로부터 발생되는 초기 코드벡터이고, k 는 코드벡터 인덱스이고,
    Figure 112000007330074-pat00141
    는 하기의 <수학식 41>과 같이 정의되는
    Figure 112000007330074-pat00142
    로 구성된 L × L 행렬이고,
    Figure 112000007330074-pat00143
    는 하기의 <수학식 42>와 같이 정의되는 벡터이고, t는 벡터의 트랜스포즈이다.
    Figure 112000007330074-pat00144
    Figure 112000007330074-pat00145
    여기서
    Figure 112000007330074-pat00146
    은 LPC 계수로 구성된 가중치 포먼트 필터의 충격응답이고,
    Figure 112000007330074-pat00147
    는 목표신호이고, L은 코드 벡터의 길이이다.
  55. 제51항에 있어서, 상기 새로운 펄스 검색을 위해 결정되는 트랙에는 상기 최소 중요도의 펄스가 속하는 트랙이 포함됨을 특징으로 하는 코드북 검색장치.
  56. 제55항에 있어서, 상기 교환 펄스 검색기는,
    상기 중요도 계산기에 의한 계산 결과에 따라 상기 최소 중요도의 펄스를 결정하는 펄스 결정부와,
    적어도 상기 최소 중요도의 펄스가 속하는 트랙을 상기 새로운 펄스 검색을 위한 트랙으로 결정하는 트랙 결정부와,
    상기 선택된 초기 코드벡터에서 상기 최소 중요도의 펄스를 제거하는 최소 중요도 펄스 제거기와,
    상기 최소 중요도 펄스 제거기의 출력을 고려하여 상기 결정된 각각의 트랙내에서 상기 최소 중요도의 펄스를 대신하여 교환될 상기 새로운 펄스를 검색하고, 상기 최소 중요도 펄스가 제거된 상기 선택된 초기 코드벡터에 상기 검색된 새로운 펄스를 추가하여 새로운 코드벡터를 각각이 발생하는 새로운 코드벡터 발생기들과,
    상기 새로운 코드벡터들 각각에 대한 성능값을 계산하고, 최대의 성능값을 가지는 새로운 코드벡터를 상기 최적의 코드벡터로 출력하는 선택부를 포함함을 특징으로 하는 코드북 검색장치.
  57. 제56항에 있어서, 상기 선택부는, 상기 새로운 코드벡터들 각각에 대해 하기의 <수학식 43>과 같이 정의되는 성능값(Tk)을 계산하고, 최대의 성능값을 가지는 새로운 코드벡터를 선택하여 상기 최적의 코드벡터로 출력하는 것을 특징으로 하는 코드북 검색장치.
    Figure 112000007330074-pat00148
    여기서,
    Figure 112000007330074-pat00149
    는 상기 새로운 코드벡터이고, k 는 코드벡터 인덱스이고,
    Figure 112000007330074-pat00150
    는 하기의 <수학식 44>과 같이 정의되는
    Figure 112000007330074-pat00151
    로 구성된 L × L 행렬이고,
    Figure 112000007330074-pat00152
    는 하기의 <수학식 45>와 같이 정의되는 벡터이고, t는 벡터의 트랜스포즈이다.
    Figure 112000007330074-pat00153
    Figure 112000007330074-pat00154
    여기서
    Figure 112000007330074-pat00155
    은 LPC 계수로 구성된 가중치 포먼트 필터의 충격응답이고,
    Figure 112000007330074-pat00156
    는 목표신호이고, L은 코드 벡터의 길이이다.
KR1020000019381A 2000-04-12 2000-04-12 에이켈프 음성 압축기의 코드북 검색 장치 및 방법 KR100576024B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000019381A KR100576024B1 (ko) 2000-04-12 2000-04-12 에이켈프 음성 압축기의 코드북 검색 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000019381A KR100576024B1 (ko) 2000-04-12 2000-04-12 에이켈프 음성 압축기의 코드북 검색 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20010095909A KR20010095909A (ko) 2001-11-07
KR100576024B1 true KR100576024B1 (ko) 2006-05-02

Family

ID=19663987

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000019381A KR100576024B1 (ko) 2000-04-12 2000-04-12 에이켈프 음성 압축기의 코드북 검색 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100576024B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100463419B1 (ko) * 2002-11-11 2004-12-23 한국전자통신연구원 적은 복잡도를 가진 고정 코드북 검색방법 및 장치
KR100503414B1 (ko) * 2002-11-14 2005-07-22 한국전자통신연구원 고정 코드북의 집중 검색 방법 및 장치

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701392A (en) * 1990-02-23 1997-12-23 Universite De Sherbrooke Depth-first algebraic-codebook search for fast coding of speech
JPH102003A (ja) * 1996-06-14 1998-01-06 Aron Kasei Co Ltd インバート部材およびその製造方法
US5754976A (en) * 1990-02-23 1998-05-19 Universite De Sherbrooke Algebraic codebook with signal-selected pulse amplitude/position combinations for fast coding of speech
US5822724A (en) * 1995-06-14 1998-10-13 Nahumi; Dror Optimized pulse location in codebook searching techniques for speech processing
KR20000029745A (ko) * 1996-07-31 2000-05-25 러셀 비. 밀러 Celp코더내의여기코드북을검색하기위한방법및장치
KR20000074365A (ko) * 1999-05-20 2000-12-15 윤종용 음성 부호화시에 대수코드북에서의 대수코드 탐색방법
KR20010095585A (ko) * 2000-04-11 2001-11-07 대표이사 서승모 음성 부호화기의 고정코드북 고속탐색 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701392A (en) * 1990-02-23 1997-12-23 Universite De Sherbrooke Depth-first algebraic-codebook search for fast coding of speech
US5754976A (en) * 1990-02-23 1998-05-19 Universite De Sherbrooke Algebraic codebook with signal-selected pulse amplitude/position combinations for fast coding of speech
US5822724A (en) * 1995-06-14 1998-10-13 Nahumi; Dror Optimized pulse location in codebook searching techniques for speech processing
JPH102003A (ja) * 1996-06-14 1998-01-06 Aron Kasei Co Ltd インバート部材およびその製造方法
KR20000029745A (ko) * 1996-07-31 2000-05-25 러셀 비. 밀러 Celp코더내의여기코드북을검색하기위한방법및장치
KR20000074365A (ko) * 1999-05-20 2000-12-15 윤종용 음성 부호화시에 대수코드북에서의 대수코드 탐색방법
KR20010095585A (ko) * 2000-04-11 2001-11-07 대표이사 서승모 음성 부호화기의 고정코드북 고속탐색 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
10-2003-18600
CELP음성부호화기의,음향학회학술,p289-292,1998 *

Also Published As

Publication number Publication date
KR20010095909A (ko) 2001-11-07

Similar Documents

Publication Publication Date Title
JP3481251B2 (ja) 代数的符号励振線形予測音声符号化方法
KR100938017B1 (ko) 벡터 양자화 장치 및 방법
US6148283A (en) Method and apparatus using multi-path multi-stage vector quantizer
JP3112681B2 (ja) 音声符号化方式
CA2159571C (en) Vector quantization apparatus
KR20080110757A (ko) Celp 기술에서의 디지털 오디오 신호의 개선된 코딩/디코딩
US5751901A (en) Method for searching an excitation codebook in a code excited linear prediction (CELP) coder
US20050114123A1 (en) Speech processing system and method
US6094630A (en) Sequential searching speech coding device
US7206740B2 (en) Efficient excitation quantization in noise feedback coding with general noise shaping
KR100465316B1 (ko) 음성 부호화기 및 이를 이용한 음성 부호화 방법
US20100153100A1 (en) Address generator for searching algebraic codebook
KR100463559B1 (ko) 대수 코드북을 이용하는 켈프 보코더의 코드북 검색방법
KR100576024B1 (ko) 에이켈프 음성 압축기의 코드북 검색 장치 및 방법
US7337110B2 (en) Structured VSELP codebook for low complexity search
Salami Binary pulse excitation: A novel approach to low complexity CELP coding
JP3095133B2 (ja) 音響信号符号化方法
JP3148778B2 (ja) 音声の符号化方法
KR100319924B1 (ko) 음성 부호화시에 대수코드북에서의 대수코드 탐색방법
EP0483882B1 (en) Speech parameter encoding method capable of transmitting a spectrum parameter with a reduced number of bits
Ramirez et al. A multistage search of algebraic CELP codebooks
WO2007027005A1 (en) Method and apparatus for searching fixed codebook
Ahmed et al. Fast methods for code search in CELP
JP3428595B2 (ja) 音声符号化方式
EP0755047B1 (en) Speech parameter encoding method capable of transmitting a spectrum parameter at a reduced number of bits

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment
FPAY Annual fee payment
FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 14