KR20070008413A - Method and apparatus for searching codebook - Google Patents

Method and apparatus for searching codebook Download PDF

Info

Publication number
KR20070008413A
KR20070008413A KR1020060064723A KR20060064723A KR20070008413A KR 20070008413 A KR20070008413 A KR 20070008413A KR 1020060064723 A KR1020060064723 A KR 1020060064723A KR 20060064723 A KR20060064723 A KR 20060064723A KR 20070008413 A KR20070008413 A KR 20070008413A
Authority
KR
South Korea
Prior art keywords
stage
state
predetermined
paths
pulse positions
Prior art date
Application number
KR1020060064723A
Other languages
Korean (ko)
Other versions
KR100813260B1 (en
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 CN200680025725XA priority Critical patent/CN101223580B/en
Priority to PCT/KR2006/002761 priority patent/WO2007027005A1/en
Priority to CN2012100315835A priority patent/CN102568490A/en
Priority to CN2012100316039A priority patent/CN102592603A/en
Priority to US11/457,251 priority patent/US8560306B2/en
Publication of KR20070008413A publication Critical patent/KR20070008413A/en
Application granted granted Critical
Publication of KR100813260B1 publication Critical patent/KR100813260B1/en
Priority to US14/020,139 priority patent/US8805681B2/en

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/02Speech 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 spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0212Speech 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 spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • 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
    • 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
    • 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
    • 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/0013Codebook search algorithms

Abstract

A method and an apparatus for searching a codebook are provided to select a path corresponding to pulse locations which are most consistent with a predetermined signal of an aural signal by using a Trellis structure in which a predetermined pulse location set is allocated to each branch, thereby reducing the amount of calculations necessary for the codebook search process. A codebook searching method comprises the following steps of: selecting a predetermined number of paths, each corresponding to a predetermined number of pulse locations which are most consistent with a predetermined signal, from paths corresponding to pulse locations of a predetermined pulse location set allocated to at least one branch which connects one state of a predetermined Trellis structure to the other state(82b); performing the above step on the other states other than the one state; and selecting a path, corresponding to pulse locations which are the most consistent with the predetermined signal, from paths including the paths selected in the above two steps.

Description

코드북 탐색 방법 및 장치{Method and apparatus for searching codebook}Method and apparatus for searching codebook

도 1은 AMR 광대역 음성 부호화기 8.85kbps 모드의 고정 코드북 탐색 방법을 나타내는 흐름도.1 is a flow diagram illustrating a fixed codebook search method in an AMR wideband speech coder 8.85kbps mode.

도 2는 전체 4-스테이트 트렐리스 구조에 BC-TCQ 알고리즘을 적용하는 경우 고려되는 트렐리스 경로의 예를 나타낸 도면.2 shows an example of a trellis path to be considered when applying the BC-TCQ algorithm to the entire four-state trellis structure.

도 3은 4-스테이트 트렐리스 구조에서 ATC 알고리즘을 이용한 인코딩 과정의 예를 나타낸 도면.3 illustrates an example of an encoding process using an ATC algorithm in a 4-state trellis structure.

도 4는 본 발명의 일 실시예에 따른 코드북 탐색 장치의 구성도.4 is a block diagram of an apparatus for searching a codebook according to an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따른 코드북 복호화 장치의 구성도. 5 is a block diagram of a codebook decoding apparatus according to an embodiment of the present invention.

도 6은 트렐리스 구조의 소정 스테이지에서 리스트 비터비 인코딩을 수행하는 모습을 나타내는 도면.FIG. 6 is a diagram illustrating performing List Viterbi encoding at a predetermined stage of a trellis structure. FIG.

도 7은 트렐리스 구조의 소정 스테이트에서 소정 수학식 값을 이용하여 경로 리스트를 결정하는 모습을 나타내는 도면. FIG. 7 is a diagram illustrating a path list being determined using a predetermined equation value in a predetermined state of a trellis structure. FIG.

도 8 및 도 9는 본 발명의 일 실시예에 따른 코드북 탐색 방법의 흐름도.8 and 9 are flowcharts of a codebook searching method according to an embodiment of the present invention.

도 10은 4-스테이트 트렐리스 구조에서 2개 스테이지를 그룹화한 ATC 알고리즘을 적용하는 경우 고려되는 트렐리스 경로의 예를 나타내는 도면이다.FIG. 10 is a diagram illustrating an example of a trellis path to be considered when applying an ATC algorithm in which two stages are grouped in a four-state trellis structure.

도 11은 도 10의 트렐리스 구조의 소정 스테이트에서 싱글 비터비 인코딩을 수행하는 모습을 나타내는 도면.FIG. 11 is a diagram illustrating single Viterbi encoding performed in a predetermined state of the trellis structure of FIG. 10. FIG.

도 12는 도 10의 트렐리스 구조의 소정 스테이트에서 소정 수학식 값을 이용하여 싱글 비터비 인코딩을 수행하는 모습을 나타내는 도면.FIG. 12 is a diagram illustrating single Viterbi encoding performed using a predetermined equation value in a predetermined state of the trellis structure of FIG. 10. FIG.

도 13 및 도 14는 본 발명의 다른 실시예에 따른 코드북 탐색 방법의 흐름도이다.13 and 14 are flowcharts of a codebook searching method according to another embodiment of the present invention.

본 발명은 코드북 검색 방법 및 장치에 관한 것으로, 특히 음성 신호 중 소정 신호를 모델링하는 펄스들을 포함하는 코드북을 탐색하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for searching a codebook, and more particularly, to a method and apparatus for searching a codebook including pulses for modeling a predetermined signal of a voice signal.

이동 및 위성 통신, 멀티미디어 통신, 개인 휴대통신, 인터넷폰 등 정보통신 응용분야에서 중요한 요소 기술 중 하나가 음성을 압축/복원하여 부호화하는 보코더(Vocoder)기술이다. 음성을 압축하는 보코더에는 여러 가지 종류가 있다. 분석 및 합성 (Analysis-by-Synthesis) 구조를 갖는 일반적인 방식인 CELP(Code Excited Linear Predictive coding) 방식은 멀티미디어 및 무선통신 시스템에서 가장 널리 쓰이는 부호화 기술이다. 상기 CELP 방식은 성도의 잔여 신호와 성문의 특성을 적응 코드북과 고정 코드북으로 모델링하고 있다. 상기 CELP 방식은 코드북들의 구조와 검색 과정에 따라 구현의 복잡성과 합성 음질이 결정되기 때문에 다양한 처리 방법과 그 변형들이 제안되어 있다. One of the key element technologies in information and communication applications such as mobile and satellite communication, multimedia communication, personal mobile communication, and Internet phone is Vocoder technology that compresses / restores and encodes voice. There are several types of vocoder that compress voice. Code Excited Linear Predictive coding (CELP), a common method with analysis-by-synthesis, is the most widely used coding technology in multimedia and wireless communication systems. The CELP method models the residual signal of the saints and the characteristics of the gates into an adaptive codebook and a fixed codebook. Since the implementation of the CELP method and the complexity of the implementation are determined according to the structure and retrieval process of the codebooks, various processing methods and variations thereof have been proposed.

상기 고정 코드북으로 모델링하는 방법으로서, 간단한 대수적인 방법으로 코드 벡터(code vector)를 구해주는 대수 코드 여기 선형 예측(Alegebraic Code Excited Linear Prediction, ACELP)방식이 있다. 상기 ACELP 방식은 프레임당 몇 개의 진폭(+1/-1) 펄스 조합으로 이루어진 대수적 부호 구조로 되어 있고 코드북 내에 제한된 진폭 펄스를 사용하므로, 코드북을 저장할 필요가 없고 채널 잡음에 강하다는 장점이 있다. 상기의 방법으로 코드 벡터를 찾는 방법을 고정 코드북 탐색이라고 표현한다. As a method of modeling the fixed codebook, there is an Algebraic Code Excited Linear Prediction (ACELP) method that obtains a code vector by a simple algebraic method. The ACELP method has an algebraic code structure composed of a combination of several amplitude (+ 1 / -1) pulses per frame and uses a limited amplitude pulse in the codebook, thus eliminating the need to store codebooks and being resistant to channel noise. The method of finding a code vector by the above method is referred to as fixed codebook search.

3GPP에 의해 광대역 음성 부호화기 표준으로 선택된 AMR 광대역 음성 부호화기는 23.85, 23.05, 19.85, 18.25, 15.85, 14.25, 12.65, 8.85, 6.60kbps의 9가지 고정 비트율 전송 모드를 가지며, 고정 코드북 탐색은 대수 코드북 구조를 기본으로 전송 모드별로 각기 다른 탐색 방법을 가지고 있다. The AMR wideband speech coder, selected as the wideband speech coder standard by 3GPP, has nine fixed bitrate transmission modes: 23.85, 23.05, 19.85, 18.25, 15.85, 14.25, 12.65, 8.85, and 6.60kbps, and fixed codebook search has an algebraic codebook structure. By default, each transmission mode has a different search method.

도 1은 AMR 광대역 음성 부호화기 8.85kbps 모드의 고정 코드북 탐색 방법을 나타내는 흐름도로서 대수 코드북 구조를 기본으로 한다. 대상 신호의 MSE를 최소화 하는 고정 코드북

Figure 112006049397901-PAT00001
를 찾는 방식으로서, 고정 코드북
Figure 112006049397901-PAT00002
는 [수학식 1]을 최대화하는 고정 코드북과 같다.1 is a flowchart illustrating a fixed codebook search method in an AMR wideband speech coder 8.85kbps mode, based on an algebraic codebook structure. Fixed codebook to minimize MSE of target signal
Figure 112006049397901-PAT00001
Fixed codebook as a way to find
Figure 112006049397901-PAT00002
Is like a fixed codebook maximizing [Equation 1].

Figure 112006049397901-PAT00003
Figure 112006049397901-PAT00003

여기서

Figure 112006049397901-PAT00004
는 대상 신호와 임펄스 응답 h(n)과의 상관도를 나타내며,
Figure 112006049397901-PAT00005
는 임펄스 응답 h(n)의 상관도를 나타낸다. 부프레임 크기가 M개 샘플일 경우, d(n)과
Figure 112006049397901-PAT00006
은 각각 [수학식 2] 및 [수학식 3]과 같이 나타낼 수 있다. here
Figure 112006049397901-PAT00004
Represents the correlation between the target signal and the impulse response h (n),
Figure 112006049397901-PAT00005
Represents the correlation of the impulse response h (n). If the subframe size is M samples, then d (n)
Figure 112006049397901-PAT00006
May be represented as in [Equation 2] and [Equation 3], respectively.

Figure 112006049397901-PAT00007
Figure 112006049397901-PAT00007

Figure 112006049397901-PAT00008
Figure 112006049397901-PAT00008

AMR 광대역 음성 부호화기 8.85kbps 모드의 대수 코드북의 구조는 [표 1]과 같고, 전체 4개의 트랙 구조에 한 트랙당 한 개의 펄스를 탐색함으로써, 펄스의 위치와 부호에 총 20비트를 할당하여 부호화한다. The structure of the algebraic codebook in 8.85kbps mode of AMR wideband speech coder is shown in [Table 1]. All four tracks are searched for one pulse per track, and a total of 20 bits are assigned and encoded to the pulse position and code. .

트랙track 펄스pulse 펄스 위치Pulse position T1T1 i0i0 0,4, 8,12,16,20,24,28,32,36,40,44,48,52,56,60 0,4, 8,12,16,20,24,28,32,36,40,44,48,52,56,60 T2T2 i1i1 1,5, 9,13,17,21,25,29,33,37,41,45,49,53,57,61 1,5, 9,13,17,21,25,29,33,37,41,45,49,53,57,61 T3T3 i2i2 2,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62 2,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62 T4T4 i3i3 3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63 3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63

[표 1]을 참고하여 고정 코드북 탐색 과정을 살펴보면, 코드북 벡터

Figure 112006049397901-PAT00009
는 오직 4개의 0이 아닌 벡터만을 포함하기 때문에 고속 탐색이 가능하며 [수학식 1]에서 분자의 상관도 식은 [수학식 4]와 같고, 분모의 에너지 식은 [수학식 5]와 같다.Looking at the fixed codebook search process with reference to [Table 1], the codebook vector
Figure 112006049397901-PAT00009
Since only includes four nonzero vectors, fast search is possible. In Equation 1, the correlation coefficient of the molecule is shown in Equation 4, and the energy of the denominator is shown in Equation 5.

Figure 112006049397901-PAT00010
Figure 112006049397901-PAT00010

[수학식 4]에서

Figure 112006049397901-PAT00011
는 i번째 펄스의 위치이고,
Figure 112006049397901-PAT00012
는 i번째 펄스의 부호이며,
Figure 112006049397901-PAT00013
는 펄스의 수를 나타낸다. In [Equation 4]
Figure 112006049397901-PAT00011
Is the location of the i th pulse,
Figure 112006049397901-PAT00012
Is the sign of the i th pulse,
Figure 112006049397901-PAT00013
Represents the number of pulses.

Figure 112006049397901-PAT00014
Figure 112006049397901-PAT00014

도 1의 단계 11에서는 [수학식 4] 및 [수학식 5]를 미리 계산하여 고속 탐색을 가능하게 한다. 그리고 계산량을 줄이기 위한 펄스 후보 벡터들을 선정할 때 이용되는 값 b(n)을 [수학식 6]과 같이 계산한다.In step 11 of FIG. 1, Equation 4 and Equation 5 are calculated in advance to enable fast searching. The value b (n) used when selecting pulse candidate vectors for reducing the amount of calculation is calculated as shown in [Equation 6].

단계 12에서는 단계 11에서 미리 계산한 [수학식 6]을 이용해서 첫 번째와 세 번째 트랙에 대한 펄스 위치의 후보 벡터들을 선택한다. In step 12, candidate vectors of pulse positions for the first and third tracks are selected using Equation 6 previously calculated in step 11.

Figure 112006049397901-PAT00015
Figure 112006049397901-PAT00015

[수학식 6]에서

Figure 112006049397901-PAT00016
는 상기 상관도 d(n)의 에너지이고,
Figure 112006049397901-PAT00017
은 신호
Figure 112006049397901-PAT00018
의 에너지이며,
Figure 112006049397901-PAT00019
는 피치 예측 후의 잔여 신호이다.In [Equation 6]
Figure 112006049397901-PAT00016
Is the energy of the correlation d (n),
Figure 112006049397901-PAT00017
Silver signal
Figure 112006049397901-PAT00018
Is the energy of
Figure 112006049397901-PAT00019
Is the residual signal after pitch prediction.

단계 13의 단계 13a 내지 단계 13c에서는 상기 후보 벡터들이 속한 t트랙과 다음 트랙인 t+1트랙을 이용한 2개의 겹쳐진 루프에서 [수학식 1]의 값을 최대로 하는 2개 펄스의 최적 위치를 찾는다. 구해진 2개의 펄스를 고정하고 단계 12에서 구한 상기 후보 벡터들이 속한 t+2트랙과 다음 트랙인 t+3트랙을 이용한 2개의 겹쳐진 루프를 통하여 [수학식 1]의 값을 최대로 하는 2개 펄스의 최적 위치를 추가로 찾아 총 4개의 최적 펄스 위치와 부호를 결정한다. 단계 13d 내지 13f에서는 상기 단계 13a 내지 13c의 과정을 4번 반복하여 네 가지 중 [수학식 1]의 값을 최대로 하는 총 4개의 최적 펄스 위치와 부호를 최종적으로 결정한다. 하나의 트랙에서 상관도 값에 의해 몇 개의 후보 펄스를 선택한 후 연속된 다음 트랙에 대해 탐색을 수행함으로서 전체 트랙에 대해 탐색하는 방법에 비해 계산량을 감소시킬 수 있으나, 상기와 같은 탐색 구조는 음질에 비해 계산량이 다소 많다. In steps 13a to 13c of step 13, the optimum position of two pulses maximizing the value of [Equation 1] is found in two overlapping loops using the t track to which the candidate vectors belong and the next track t + 1 track. . 2 pulses which fix the obtained 2 pulses and maximize the value of [Equation 1] through two overlapping loops using the t + 2 track to which the candidate vectors obtained in step 12 belong and the next track t + 3 track. We further find the optimal position of and determine a total of four optimal pulse positions and signs. In steps 13d to 13f, the process of steps 13a to 13c is repeated four times to finally determine a total of four optimal pulse positions and signs that maximize the value of Equation 1 of four. By selecting several candidate pulses according to the correlation values in one track and searching for the next consecutive track, the computational amount can be reduced compared to the searching method for the entire track. The amount of calculation is rather large.

본 발명이 이루고자 하는 기술적 과제는 기존의 코드북 탐색 방법에 비해 계산량 및 음질 면에서 향상된 코드북 탐색 방법 및 장치를 제공하는 데 있다. 또한, 상기된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 데 있다. 또한, 상기된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 있다.SUMMARY OF THE INVENTION The present invention has been made in an effort to provide a method and apparatus for searching a codebook improved in terms of calculation amount and sound quality compared to a conventional codebook search method. Further, the present invention provides a computer-readable recording medium having recorded thereon a program for executing the above-described method on a computer. Further, the present invention provides a computer-readable recording medium having recorded thereon a program for executing the above method on a computer.

상기 기술적 과제를 해결하기 위한 본 발명에 따른 코드북 탐색 방법은, 음성 신호 중 소정 신호를 모델링하는 펄스들을 포함하는 코드북을 탐색하는 방법에 있어서, (a) 소정 트렐리스 구조의 어느 하나의 스테이트에 대하여, 상기 스테이트 와 다른 스테이트를 연결하는 적어도 하나의 브랜치에 할당된 소정 펄스 위치 집합의 펄스 위치들에 대응하는 경로들 중에서 상기 소정 신호와 가장 일치하는 소정 개수의 펄스 위치들에 각각 대응하는 상기 소정 개수의 경로들을 선택하는 단계; (b) 상기 스테이트가 아닌 다른 스테이트에 대하여, 상기 (a) 단계를 수행하는 단계; (c) 상기 (a) 단계 및 상기 (b) 단계에서 선택된 경로들을 포함하는 경로들 중에서 상기 소정 신호와 가장 일치하는 펄스 위치들에 대응하는 경로를 선택하는 단계;를 포함하는 것을 특징으로 한다.Codebook search method according to the present invention for solving the above technical problem, a method for searching a codebook including pulses for modeling a predetermined signal of the voice signal, (a) in any state of a predetermined trellis structure For each of the paths corresponding to the pulse positions of a predetermined set of pulse positions assigned to at least one branch connecting the state to the other state, the predetermined number corresponding to the predetermined number of pulse positions that most closely matches the predetermined signal, respectively. Selecting a number of paths; (b) for a state other than the state, performing step (a); (c) selecting a path corresponding to the pulse positions that most match the predetermined signal among the paths including the paths selected in steps (a) and (b).

바람직하게는, 상기 (a) 단계 및 상기 (b) 단계는 상기 트렐리스 구조의 어느 하나의 스테이지에 속하는 스테이트에 대하여 수행하고, (d) 상기 스테이지가 아닌 다른 스테이지에서 상기 (a) 단계 및 상기 (b) 단계를 수행하는 단계를 더 포함하고, 상기 (c) 단계는 상기 (a) 단계, 상기 (b) 단계 및 상기 (d) 단계에서 선택된 경로들을 포함하는 경로들 중에서 상기 소정 신호와 가장 일치하는 펄스 위치들에 대응하는 경로를 선택하는 것을 특징으로 한다.Preferably, the steps (a) and (b) are performed on a state belonging to any one stage of the trellis structure, (d) the steps (a) and The method may further include performing step (b), wherein step (c) may include the predetermined signal among the paths including the paths selected in steps (a), (b), and (d). And selecting a path corresponding to the most matching pulse positions.

상기 소정 신호는 음성 신호를 선형 예측 부호화를 사용하여 필터링하고, 피치 성분을 제거한 신호일 수 있다.The predetermined signal may be a signal obtained by filtering a speech signal using linear prediction coding and removing a pitch component.

바람직하게는, 상기 (d) 단계는 상기 트렐리스 구조의 첫 번째 스테이지부터 마지막 스테이지까지 순차적으로 상기 (a) 단계 및 상기 (b) 단계를 수행하는 것을 특징으로 한다.Preferably, step (d) is characterized in that the steps (a) and (b) are sequentially performed from the first stage to the last stage of the trellis structure.

바람직하게는, 상기 트렐리스 구조는 제 1 스테이지에 제 1 펄스 위치 집합이 할당되어 있고, 제 2 스테이지에 제 2 펄스 위치 집합이 할당되어 있으며, 상기 제 1 스테이지의 각 브랜치에 상기 제 1 펄스 위치 집합을 분할한 펄스 위치 집합이 할당되어 있고, 상기 제 2 스테이지의 각 브랜치에 상기 제 2 펄스 위치 집합을 분할한 펄스 위치 집합이 할당되어 있는 것을 특징으로 한다.Preferably, the trellis structure has a first set of pulse positions assigned to a first stage, a second set of pulse positions assigned to a second stage, and the first pulses assigned to each branch of the first stage. A pulse position set obtained by dividing the position set is assigned, and a pulse position set obtained by dividing the second pulse position set is allocated to each branch of the second stage.

바람직하게는, 상기 제 1 펄스 위치 집합과 상기 제 2 펄스 위치 집합 중 적어도 하나는 펄스 위치가 배타적인 복수 개의 소정 집합들의 합집합인 것을 특징으로 한다.Preferably, at least one of the first set of pulse positions and the second set of pulse positions is a union of a plurality of predetermined sets of which pulse positions are exclusive.

바람직하게는, 상기 트렐리스 구조의 초기 스테이트를 제1 소정 개수로 제약하고, 상기 제약된 각 초기 스테이트에 대응하는 마지막 스테이트를 제2 소정 개수로 제약하는 단계를 더 포함하는 것을 특징으로 한다.Preferably, the method further includes constraining the initial state of the trellis structure to a first predetermined number and constraining the last state corresponding to each of the constrained initial states to a second predetermined number.

바람직하게는, 상기 (d) 단계는 상기 트렐리스 구조의 첫 번째 스테이지부터 소정 번째 스테이지까지 순차적으로 상기 (a) 단계 및 상기 (b) 단계를 수행하는 것을 특징으로 하고, (e) 상기 소정 번째 스테이지의 어느 하나의 스테이트에 대하여, 상기 (a) 단계, 상기 (b) 단계 및 상기 (d) 단계에서 선택된 경로들을 기초로 상기 스테이트에서 초기 스테이트까지 이르는 경로를 추적하여 상기 스테이트에 대응하는 초기 스테이트를 결정하고, 상기 스테이트에서 상기 제 2 소정 개수로 제약된 마지막 스테이트까지 연결되는 경로를 결정하는 단계; 및 (f) 상기 스테이지에서, 상기 스테이트가 아닌 다른 스테이트에 대하여 상기 (e) 단계를 수행하는 단계; (g) 상기 (e) 단계 및 상기 (f) 단계에서 결정된 경로 상의 스테이트에 대하여 상기 (a) 단계 및 상기 (b) 단계를 수행하는 단계를 더 포함하고, 상기 (c) 단계는, 상기 (a) 단계, 상기 (b) 단계, 상기 (d) 및 상기 (g) 단계에서 선택된 경로들 을 포함하는 경로들 중에서 상기 소정 신호와 가장 일치하는 펄스 위치들에 대응하는 경로를 선택하는 것을 특징으로 한다.Preferably, the step (d) is characterized in that performing the steps (a) and (b) sequentially from the first stage to the predetermined stage of the trellis structure, (e) the predetermined For any one state of the first stage, the initial path corresponding to the state is traced by tracking the path from the state to the initial state based on the paths selected in the steps (a), (b) and (d). Determining a state and determining a path from said state to the last state constrained to said second predetermined number; And (f) in the stage, performing step (e) for a state other than the state; (g) further comprising performing steps (a) and (b) for the state on the path determined in steps (e) and (f), wherein step (c) comprises: selecting a path corresponding to the pulse positions which most match the predetermined signal among the paths including the paths selected in steps a), (b), (d) and (g) do.

바람직하게는 상기 트렐리스 구조는 N개(=2v, 여기서 v는 정수)개의 스테이트 및 L개의 스테이지를 가지고, 상기 제1 소정 개수는 2w(여기서, 0≤w≤v)개이며 상기 제2 소정 개수는 2v-w개이고, 상기 소정 번째 스테이지는

Figure 112006049397901-PAT00020
스테이지인 것을 특징으로 한다.Preferably the trellis structure has N (= 2 v , where v is an integer) states and L stages, and the first predetermined number is 2 w (where 0 ≦ w ≦ v) and The second predetermined number is 2 vw , and the predetermined stage is
Figure 112006049397901-PAT00020
It is a stage.

상기 기술적 과제를 해결하기 위한 본 발명에 따른 코드북 탐색 방법은, 음성 신호 중 소정 신호를 모델링하는 펄스들을 포함하는 코드북을 탐색하는 방법에 있어서, (a) 스테이지가 소정 개수씩 그룹화된 소정 트렐리스 구조의 어느 하나의 스테이지 그룹에서, 상기 스테이지 그룹 내의 최후 스테이지의 어느 하나의 스테이트에 대하여 상기 스테이트와 상기 스테이지 그룹의 최선 스테이지의 스테이트들을 연결하는 복수 개의 브랜치들에 할당된 소정 펄스 위치 집합들에 속하는 펄스 위치들의 조합에 대응하는 경로들 중에서 상기 소정 신호와 가장 일치하는 펄스 위치들의 조합에 대응하는 경로를 선택하는 단계; (b) 상기 최후 스테이지의 다른 스테이트에 대하여 상기 (a) 단계를 수행하는 단계; (c) 상기 스테이지 그룹이 아닌 다른 스테이지 그룹에서 상기 (a) 단계 및 상기 (b) 단계를 수행하는 단계; 및 (d) 상기 (a) 단계 내지 상기 (c) 단계에서 선택된 경로들을 포함하는 경로들 중에서 상기 소정 신호와 가장 일치하는 펄스 위치들에 대응하는 경로를 선택하는 단계;를 포함하는 것을 특징으로 한다.Codebook search method according to the present invention for solving the technical problem, a method for searching a codebook including pulses for modeling a predetermined signal of the voice signal, (a) a predetermined trellis grouped by a predetermined number of stages In any one stage group of the structure, it belongs to predetermined pulse position sets assigned to a plurality of branches connecting the state and the state of the best stage of the stage group with respect to any state of the last stage in the stage group. Selecting a path corresponding to the combination of pulse positions that most matches the predetermined signal from among paths corresponding to the combination of pulse positions; (b) performing step (a) for the other states of the last stage; (c) performing steps (a) and (b) in a stage group other than the stage group; And (d) selecting a path corresponding to the pulse positions that most match the predetermined signal among the paths including the paths selected in steps (a) to (c). .

상기 소정 신호는 음성 신호를 선형 예측 부호화를 사용하여 필터링하고, 피치 성분을 제거한 신호일 수 있다.The predetermined signal may be a signal obtained by filtering a speech signal using linear prediction coding and removing a pitch component.

바람직하게는, 상기 (c) 단계는 상기 트렐리스 구조의 첫 번째 스테이지 그룹부터 마지막 스테이지 그룹까지 순차적으로 상기 (a) 단계 및 상기 (b) 단계를 수행하는 것을 특징으로 한다.Preferably, the step (c) is characterized in that the steps (a) and (b) are sequentially performed from the first stage group to the last stage group of the trellis structure.

바람직하게는, 상기 트렐리스 구조는 제 1 스테이지에 제 1 펄스 위치 집합이 할당되어 있고, 제 2 스테이지에 제 2 펄스 위치 집합이 할당되어 있으며, 상기 제 1 스테이지의 각 브랜치에 상기 제 1 펄스 위치 집합을 분할한 펄스 위치 집합이 할당되어 있고, 상기 제 2 스테이지의 각 브랜치에 상기 제 2 펄스 위치 집합을 분할한 펄스 위치 집합이 할당되어 있는 것을 특징으로 한다.Preferably, the trellis structure has a first set of pulse positions assigned to a first stage, a second set of pulse positions assigned to a second stage, and the first pulses assigned to each branch of the first stage. A pulse position set obtained by dividing the position set is assigned, and a pulse position set obtained by dividing the second pulse position set is allocated to each branch of the second stage.

바람직하게는, 상기 제 1 펄스 위치 집합과 상기 제 2 펄스 위치 집합 중 적어도 하나는 펄스 위치가 배타적인 복수 개의 소정 집합들의 합집합인 것을 특징으로 한다.Preferably, at least one of the first set of pulse positions and the second set of pulse positions is a union of a plurality of predetermined sets of which pulse positions are exclusive.

바람직하게는, 상기 트렐리스 구조의 초기 스테이트를 제1 소정 개수로 제약하고, 상기 제약된 각 초기 스테이트에 대응하는 마지막 스테이트를 제2 소정 개수로 제약하는 단계를 더 포함하는 것을 특징으로 한다.Preferably, the method further includes constraining the initial state of the trellis structure to a first predetermined number and constraining the last state corresponding to each of the constrained initial states to a second predetermined number.

바람직하게는, 상기 (c) 단계는 상기 트렐리스 구조의 첫 번째 스테이지 그룹부터 소정 번째 스테이지 그룹까지 순차적으로 상기 (a) 단계 및 상기 (b) 단계를 수행하는 것을 특징으로 하고, (e) 상기 소정 번째 스테이지 그룹 내의 최후 스테이지의 어느 하나의 스테이트에 대하여, 상기 (a) 단계 내지 상기 (c) 단계에서 선택된 경로들을 기초로 상기 스테이트에서 초기 스테이트까지 이르는 경로를 추적하여 상기 스테이트에 대응하는 초기 스테이트를 결정하고, 상기 스테이트에서 상기 제 2 소정 개수로 제약된 마지막 스테이트까지 연결되는 경로를 결정하는 단계; (f) 상기 최후 스테이지에서, 상기 스테이트가 아닌 다른 스테이트에 대하여 상기 (e) 단계를 수행하는 단계; 및 (g) 상기 (e) 단계 및 상기 (f) 단계에서 결정된 경로 상의 스테이트에 대하여 상기 (a) 단계 및 상기 (b) 단계를 수행하는 단계;를 더 포함하는 것을 특징으로 하고, 상기 (d) 단계는, 상기 (a) 단계, 상기 (b) 단계, 상기 (c) 단계 및 상기 (g) 단계에서 선택된 경로들을 포함하는 경로들 중에서 상기 소정 신호와 가장 일치하는 펄스 위치들에 대응하는 경로를 선택하는 단계;를 포함하는 것을 특징으로 한다.Preferably, the step (c) is characterized in that performing the steps (a) and (b) sequentially from the first stage group to the predetermined stage group of the trellis structure, (e) For any one state of the last stage in the predetermined stage group, the initial path corresponding to the state is tracked by tracking the path from the state to the initial state based on the paths selected in the steps (a) to (c). Determining a state and determining a path from said state to the last state constrained to said second predetermined number; (f) in the last stage, performing step (e) for a state other than the state; And (g) performing the steps (a) and (b) on the state on the path determined in steps (e) and (f). The step) is a path corresponding to the pulse positions that most match the predetermined signal among the paths including the paths selected in steps (a), (b), (c), and (g). Selecting; characterized in that it comprises a.

바람직하게는, 상기 트렐리스 구조는 N개(=2v, 여기서 v는 정수)개의 스테이트 및 L개의 스테이지를 가지는 것을 특징으로 하고, 상기 제1 소정 개수는 2w(여기서, 0≤w≤v)개이며 상기 제2 소정 개수는 2v-w개인 것을 특징으로 하고, 상기 소정 번째 스테이지 그룹의 최후 스테이지는

Figure 112006049397901-PAT00021
스테이지인 것을 특징으로 한다.Preferably, the trellis structure is characterized by having N states (= 2 v , where v is an integer) and L stages, wherein the first predetermined number is 2 w (where 0 ≦ w ≦ v) and the second predetermined number is 2 vw , and the last stage of the predetermined first stage group is
Figure 112006049397901-PAT00021
It is a stage.

상기 다른 기술적 과제를 해결하기 위한 본 발명에 따른 코드북 탐색 장치는, 음성 신호 중 소정 신호를 모델링하는 펄스들을 포함하는 코드북을 탐색하는 장치에 있어서, 소정 트렐리스 구조가 저장되어 있는 트렐리스 구조 데이터베이스; 상기 트렐리스 구조의 각 스테이트에 대하여, 상기 스테이트와 다른 스테이트를 연 결하는 적어도 하나의 브랜치에 할당된 소정 펄스 위치 집합의 펄스 위치들에 대응하는 경로들 중에서 상기 소정 신호와 가장 일치하는 소정 개수의 펄스 위치들에 각각 대응하는 소정 개수의 경로들을 선택하는 선택부; 상기 소정 개수의 펄스 위치들 및 상기 소정 개수의 경로들을 저장하는 메모리부; 및 상기 저장부에 저장된 상기 펄스 위치들 및 상기 경로들을 기초로 상기 소정 신호와 가장 일치하는 펄스 위치 정보 및 경로 정보를 출력하는 출력부;를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a codebook search apparatus. Database; For each state of the trellis structure, a predetermined number of paths corresponding most to the predetermined signal among paths corresponding to the pulse positions of a predetermined set of pulse positions assigned to at least one branch connecting the state to another state; A selector for selecting a predetermined number of paths respectively corresponding to the pulse positions; A memory unit for storing the predetermined number of pulse positions and the predetermined number of paths; And an output unit configured to output pulse position information and path information that most match the predetermined signal based on the pulse positions and the paths stored in the storage unit.

바람직하게는, 상기 트렐리스 구조는, 제 1 스테이지에 제 1 펄스 위치 집합이 할당되어 있고, 제 2 스테이지에 제 2 펄스 위치 집합이 할당되어 있으며, 상기 제 1 스테이지의 각 브랜치에 상기 제 1 펄스 위치 집합을 분할한 펄스 위치 집합이 할당되어 있고, 상기 제 2 스테이지의 각 브랜치에 상기 제 2 펄스 위치 집합을 분할한 펄스 위치 집합이 할당되어 있는 것을 특징으로 한다.Preferably, in the trellis structure, a first set of pulse positions is assigned to a first stage, a second set of pulse positions is assigned to a second stage, and the first branch is assigned to each branch of the first stage. A pulse position set obtained by dividing the pulse position set is assigned, and a pulse position set obtained by dividing the second pulse position set is allocated to each branch of the second stage.

상기 또 다른 기술적 과제를 해결하기 위하여, 본 발명은 상기된 코드북 탐색 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다. In order to solve the above further technical problem, the present invention provides a computer-readable recording medium having recorded thereon a program for executing the codebook searching method on a computer.

이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail preferred embodiments of the present invention.

본 발명에 대한 세부적인 설명에 앞서, 본 발명에 적용되는 블록 제한된 트렐리스 부호화 양자화(Block Constrained Trellis Coded Quantization : BC-TCQ) 방식에 대하여 설명하면 다음과 같다. Prior to the detailed description of the present invention, a block constrained trellis coded quantization (BC-TCQ) scheme applied to the present invention will be described.

본 발명에서 적용한 BC-TCQ 알고리즘은 1/2 레이트 길쌈부호기 및 피드백이 없는 인코더 구조를 기반으로 하는 N(=2v, 여기서 v는 샘플당 할당 비트수) 트렐리스 구조를 이용한 것이다. BC-TCQ 알고리즘을 위한 전제 조건으로서, 선택 가능한 트렐리스 경로의 초기 스테이트를 전체 N개의 스테이트 중 2w(여기서, 0≤w≤v)개로 제약하고, 마지막 스테이지의 스테이트도 트렐리스 경로의 초기 스테이트에 따라 전체

Figure 112006049397901-PAT00022
개의 스테이트 중 2w(여기서, 0≤w≤v)개로 제약한다.The BC-TCQ algorithm applied in the present invention uses a N (= 2 v , where v is the number of allocated bits per sample) trellis structure based on a half rate convolutional encoder and an encoder structure without feedback. As a prerequisite for the BC-TCQ algorithm, the initial state of the selectable trellis path is constrained to 2 w (where 0 ≦ w ≦ v) of the total N states, and the state of the last stage is also Full according to initial state
Figure 112006049397901-PAT00022
Is limited to 2 w (where 0 ≦ w ≦ v) of the states.

이와 같은 BC-TCQ 알고리즘을 적용하여 싱글 비터비 부호화를 수행하는 과정은 다음과 같다. 첫 번째 스테이지부터

Figure 112006049397901-PAT00023
(여기서 L은 전체 스테이지수, N 은 전체 트렐리스 스테이트 수) 스테이지까지 초기 스테이트 제약 조건 하에서 결정된
Figure 112006049397901-PAT00024
개의 생존 경로들의 초기 스테이트를 참고한 후, 나머지 v 스테이지에서는 각 초기 스테이트에 따라 결정된 2v-w(여기서, 0≤w≤v)개의 스테이트들 중 하나를 마지막 스테이지의 스테이트가 선택되도록 하는 트렐리스 경로들만을 고려한다. 고려된 트렐리스 경로 중 최적의 트렐리스 경로를 구하여 전송하게 된다.The process of performing single Viterbi encoding by applying the BC-TCQ algorithm is as follows. From the first stage
Figure 112006049397901-PAT00023
Where L is the total number of stages and N is the total number of trellis states.
Figure 112006049397901-PAT00024
After referring to the initial states of the surviving paths, the remaining v stages are trellis paths in which one of the 2 vw (where 0 ≦ w ≦ v ) states determined by each initial state is selected so that the state of the last stage is selected. Only consider them. The optimal trellis path among the considered trellis paths is obtained and transmitted.

도 2는 전체 4-스테이트 트렐리스 구조에 w가 1인 BC-TCQ 알고리즘을 적용하는 경우 고려되는 트렐리스 경로의 예를 나타낸 것이다. 선택가능 한 트렐리스 경로의 초기 스테이트는 4개 스테이트들 중 '00' 혹은 '10'이며, 마지막 스테이지의 스테이트는 초기 스테이트가 '00'인 경우 '00' 혹은 '01', 초기 스테이트가 '10'인 경우 '10' 혹은 '11'로 제약을 둔다. 도 2을 참조하면

Figure 112006049397901-PAT00025
스테이지에서 스테이트 '00'까지 결정된 생존 경로(굵은 점선)의 초기 스테이트가 '00'이므로, 나머 지 스테이지에서 선택 가능한 트렐리스 경로들은 마지막 스테이지의 스테이트가 '00'과 '01'이 되는 굵은 실-점선으로 표시된다.FIG. 2 shows an example of a trellis path to be considered when applying the BC-TCQ algorithm having w equal to 1 to the entire 4-state trellis structure. The initial state of the selectable trellis path is' 00 'or' 10 'of the four states, the state of the last stage is'00' or '01' if the initial state is' 00 ', and the initial state is' 10 'is constrained to' 10 'or' 11 '. Referring to Figure 2
Figure 112006049397901-PAT00025
Since the initial state of the survival path (bold dotted line) determined from the stage to state '00' is '00', the selectable trellis paths in the remaining stages are thick yarns in which the state of the last stage is '00' and '01'. It is indicated by a dashed line.

본 발명의 ATC (Algebraic Trellis Code) 알고리즘은 BC-TCQ 알고리즘과 같이 1/2 레이트 길쌈부호기 및 피드백이 없는 인코더 구조를 기반으로 하는 N(=2v, 여기서 v는 샘플당 할당 비트수) 스테이트의 트렐리스 구조를 이용한다. 따라서, BC-TCQ 알고리즘의 전제 조건과 같이 전체 N개의 스테이트 중 2w(여기서, 0≤w≤v)개의 초기 스테이트로 제약하고, 제약한 초기 스테이트에 따라 마지막 스테이지의 스테이트도 2v-w(여기서, 0≤w≤v)개로 제약한다. The Algebraic Trellis Code (ATC) algorithm of the present invention is based on a half rate convolutional encoder and a feedbackless encoder structure, like the BC-TCQ algorithm, of N (= 2 v , where v is the number of allocated bits per sample) state. Use trellis structure. Therefore, as in the prerequisites of the BC-TCQ algorithm, 2 w (where 0 ≦ w ≦ v) initial states of the total N states are constrained, and the state of the last stage is also 2 vw (where, 0 ≤ w ≤ v).

이와 같이 ATC 알고리즘을 적용하여 리스트 비터비 부호화를 수행하는 과정은 다음과 같고, w가 1인 쉬운 예를 들어 설명하겠다.As described above, a process of performing List Viterbi encoding by applying the ATC algorithm is described below, and an easy example in which w is 1 will be described.

첫 번째 스테이지의 제약된 초기 스테이트부터

Figure 112006049397901-PAT00026
(여기서, L은 전체 스테이지수) 스테이지까지 각 스테이트마다 리스트 비터비 알고리즘이 수행된다. 이는
Figure 112006049397901-PAT00027
스테이지까지 각 스테이트마다 최적의 경로 순으로 k개가 저장되고, 이를 바탕으로
Figure 112006049397901-PAT00028
스테이지에서는 각 스테이트마다 최적의 생존 경로가 k개로 순서화(ranking)되어 결정된다. 여기서 k를 리스트 비터비 경로 수라고 표현하기로 하고, 상기 k개의 최적 생존 경로를 생존 리스트 경로라 표현하기로 한다.From the constrained initial state of the first stage
Figure 112006049397901-PAT00026
(Where L is the total number of stages) A list Viterbi algorithm is performed for each state until the stage. this is
Figure 112006049397901-PAT00027
K are stored in the optimal path order for each state up to the stage.
Figure 112006049397901-PAT00028
In the stage, k optimal survival paths are ranked and determined for each state. Here, k is expressed as the number of list Viterbi paths, and k optimal survival paths are expressed as survival list paths.

그리고

Figure 112006049397901-PAT00029
스테이지에서 N×k개 생존 리스트 경로들의 초기 스테이트를 경로 백트랙킹(Path Backtracking)에 의해 파악한다. 상기 초기 스테이트를 참 조하여 마지막 스테이지의 제약된 스테이트로 끝나는 트렐리스 리스트 경로들을 고려한다. 마지막으로 나머지
Figure 112006049397901-PAT00030
스테이지부터 스테이지까지의 상기 고려된 리스트 경로들 중 최적의 트렐리스 경로 하나를 선택하고, 최종적으로 전체 N개의 생존 블록 경로들 중 최적의 트렐리스 경로 하나를 선택해 그 정보를 전송한다.And
Figure 112006049397901-PAT00029
The initial state of the N × k survivor list paths in the stage is identified by path backtracking. See the initial state to consider trellis list paths ending with the constrained state of the last stage. Finally the rest
Figure 112006049397901-PAT00030
One optimal trellis path is selected from the considered list paths from stage to stage, and finally, the optimal trellis path among all N surviving block paths is selected to transmit the information.

도 3은 4-스테이트 트렐리스 구조에서 ATC 알고리즘을 이용한 인코딩 과정을 나타낸 도면으로서, 초기 스테이트는 '00' 혹은 '01'이며, 마지막 스테이지의 스테이트는 초기 스테이트가 '00'인 경우 '00'혹은 '10', 초기 스테이트가 '01'인 경우 '01' 혹은 '11'로 제약을 둔 예이다. 이때, 각 스테이트마다 리스트 비터비 알고리즘에 의하여 순서화(ranking)된 리스트 경로가 존재한다. 이를 도 3에서 참조하면,

Figure 112006049397901-PAT00031
스테이지에서 스테이트 '00'까지 결정된 생존 리스트 경로(굵은 점선)의 초기 스테이트가 '00'이므로 나머지 스테이지에서 선택 가능한 트렐리스 리스트 경로들은 마지막 스테이지의 스테이트가 '00'과 '10'이 되는 굵은 실-점선으로 표시된다. 3 is a diagram illustrating an encoding process using an ATC algorithm in a 4-state trellis structure, in which an initial state is '00' or '01', and a state of the last stage is '00' when the initial state is '00' Or '10', if the initial state is '01' is an example of restricting to '01' or '11'. At this time, there is a list path ordered by the list Viterbi algorithm for each state. Referring to this in FIG. 3,
Figure 112006049397901-PAT00031
Since the initial state of the survival list path (bold dashed line) determined from the stage to state '00' is '00', the trellis list paths selectable in the remaining stages are bold threads in which the state of the last stage is '00' and '10'. It is indicated by a dashed line.

아래의 [표 2]는 AMR 광대역 음성 부호화기의 8.85kbps 모드에 대한 고정 코드북 구조를 확장한 본 발명의 바람직한 일 실시예에 따른 확장 코드북의 구성을 나타낸다. Table 2 below shows a configuration of an extended codebook according to an embodiment of the present invention which extends the fixed codebook structure for the 8.85kbps mode of the AMR wideband speech coder.

본 발명에 따른 확장 코드북은 펄스 위치가 배타적인 복수 개의 소정 집합들의 합집합으로 확장 트랙을 구성한다. 보다 구체적으로 설명하면 다음과 같다.The extension codebook according to the present invention constitutes an extension track by the union of a plurality of predetermined sets whose pulse positions are exclusive. More specifically described as follows.

[표 2]를 참조하면, 대수 코드북의 두 개의 트랙의 펄스 위치 집합들을 합쳐 서 확장 트랙 V1 내지 V4를 구성한다. [표 3]은 [표 2]의 확장 코드북을 기반으로 트렐리스 구조의 각 브랜치에 할당되는 부코드북을 나타낸 도표이다. Referring to [Table 2], extended tracks V1 to V4 are formed by combining the pulse position sets of two tracks of the algebraic codebook. [Table 3] shows a subcodebook allocated to each branch of the trellis structure based on the extended codebook of [Table 2].

[표 1]을 참조하면, 기존의 대수 코드북에서는 펄스 위치가 각 트랙마다 배타적으로 할당되어 있음을 알 수 있다. 본 발명의 바람직한 일 실시예에 따르면 각 트랙마다 16개의 펄스 위치를 갖는 두 개 트랙을 합쳐서 한 확장 트랙당 32개의 펄스 위치를 갖는 확장 코드북을 구성하였다. 따라서 상기 확장 코드북에서 존재 가능한 펄스 위치 조합의 경우의 수가 기존 대수 코드북에서 존재 가능한 경우의 수보다 많아지므로, 이론적으로 보더라도 상기 확장 코드북을 적용할 경우에 음질이 더 좋아지리라는 점을 알 수 있다. Referring to [Table 1], it can be seen that in the existing algebra codebook, pulse positions are exclusively assigned to each track. According to a preferred embodiment of the present invention, two tracks having 16 pulse positions for each track are combined to form an extension codebook having 32 pulse positions per extension track. Therefore, since the number of pulse position combinations that can exist in the extended codebook is greater than that in existing algebraic codebooks, it can be seen that the sound quality will be better when the extended codebook is applied in theory.

[표 3]에서 보는 바와 같이 상기 확장 코드북을 트렐리스 구조에 적용하여, 각 스테이지마다 하나의 확장 트랙을 할당하였고, 각 확장 트랙마다 하나의 펄스를 찾는다. 따라서, 하나의 펄스를 탐색할 때 고려하는 위치는 기존 대수 코드북 구조의 두 배인 32개이고, 각 확장 트랙을 4개의 부코드북으로 나누어 상기 부코드북을 트렐리스 구조의 브랜치에 도 3에 도시된 바와 같이 인터리빙(interleaving) 방식으로 분할하여 할당한다.As shown in Table 3, the extension codebook is applied to a trellis structure, one extension track is allocated to each stage, and one pulse is found for each extension track. Therefore, the position to consider when searching for one pulse is 32, which is twice the structure of the existing algebraic codebook, and each extension track is divided into four subcodebooks, and the subcodebook is shown in FIG. 3 in the branch of the trellis structure. Likewise, the partitions are allocated in an interleaving manner.

확장 코드북Extension codebook 대수 코드북Algebra Codebook V1V1 T1 U T2T1 U T2 V2V2 T2 U T3T2 U T3 V3V3 T3 U T4T3 U T4 V4V4 T4 U T1T4 U T1

부 코드북Minor codebook 첫 번째 스테이지 (V1)First stage (V1) 두 번째 스테이지 (V2)Second stage (V2) D0D0 0, 8, 16, 24, 32, 40, 48, 560, 8, 16, 24, 32, 40, 48, 56 1, 9, 17, 25, 33 ,41, 49, 571, 9, 17, 25, 33, 41, 49, 57 D1D1 1, 9, 17, 25, 33 ,41, 49, 571, 9, 17, 25, 33, 41, 49, 57 2, 10, 18, 26, 34, 42, 50, 582, 10, 18, 26, 34, 42, 50, 58 D2D2 4, 12, 20, 28, 36, 44, 52, 604, 12, 20, 28, 36, 44, 52, 60 5, 13, 21, 29, 37, 45, 53, 615, 13, 21, 29, 37, 45, 53, 61 D3D3 5, 13, 21, 29, 37, 45, 53, 615, 13, 21, 29, 37, 45, 53, 61 6, 14, 22, 30, 38, 46, 54, 626, 14, 22, 30, 38, 46, 54, 62 부 코드북Minor codebook 세 번째 스테이지 (V3)Third stage (V3) 네 번째 스테이지 (V4) Fourth stage (V4) D0D0 2, 10, 18, 26, 34, 42, 50, 582, 10, 18, 26, 34, 42, 50, 58 3, 11, 19, 27, 35, 43, 51, 593, 11, 19, 27, 35, 43, 51, 59 D1D1 3, 11, 19, 27, 35, 43, 51, 593, 11, 19, 27, 35, 43, 51, 59 4, 12, 20, 28, 36, 44, 52, 604, 12, 20, 28, 36, 44, 52, 60 D2D2 6, 14, 22, 30, 38, 46, 54, 626, 14, 22, 30, 38, 46, 54, 62 7, 15, 23, 31, 39, 47, 55, 637, 15, 23, 31, 39, 47, 55, 63 D3D3 7, 15, 23, 31, 39, 47, 55, 637, 15, 23, 31, 39, 47, 55, 63 0, 8, 16, 24, 32, 40, 48, 560, 8, 16, 24, 32, 40, 48, 56

도 4는 본 발명의 일 실시예에 따른 코드북 탐색 장치(400)의 구성도이다. 도 4를 참조하면, 본 실시예에 따른 코드북 탐색 장치(400)는 트렐리스 구조 데이터베이스(410), 계산부(420), 선택부(430), 메모리부(440), 출력부(450)으로 구성된다.4 is a block diagram of a codebook searching apparatus 400 according to an embodiment of the present invention. Referring to FIG. 4, the codebook search apparatus 400 according to the present embodiment includes a trellis structure database 410, a calculation unit 420, a selection unit 430, a memory unit 440, and an output unit 450. It consists of.

트렐리스 구조 데이터베이스(410)는 소정 트렐리스 구조 및 예를 들면 표 3과 같이 트렐리스 구조의 각 스테이지 및 각 브랜치에 할당되는 펄스 위치들의 정보가 저장되어 있다. The trellis structure database 410 stores information of a predetermined trellis structure and pulse positions allocated to each stage and each branch of the trellis structure, for example, as shown in Table 3.

트렐리스 구조 데이터베이스(410)에는 트렐리스 구조가 저장되어 있는데, 상기 트렐리스 구조의 스테이지에 소정 펄스 집합이 할당되어 있고, 브랜치에는 상기 소정 펄스 집합의 부분집합이 할당되어 있다. 예를 들면 상기 트렐리스 구조의 각 스테이지에 [표 3]과 같이 확장 트랙이 할당되어 있고, 각 브랜치에 부코드북이 할당되어 있는 방식으로 저장되어 있다.A trellis structure is stored in the trellis structure database 410. A predetermined pulse set is assigned to a stage of the trellis structure, and a subset of the predetermined pulse set is assigned to a branch. For example, an extended track is allocated to each stage of the trellis structure as shown in [Table 3], and stored in such a manner that a subcode book is assigned to each branch.

계산부(420)는 음성 신호 중 소정 신호, 즉 코드북 탐색을 위한 대상 신호를 입력받아 트렐리스 구조 데이터베이스(410)에 저장되어 있는 트렐리스 구조 및 상기 트렐리스 구조에 할당된 펄스 위치 집합들을 이용하여 소정의 수학식 값들을 계산하여 출력한다. The calculator 420 receives a predetermined signal among voice signals, that is, a target signal for codebook search, and includes a trellis structure stored in the trellis structure database 410 and a pulse position set assigned to the trellis structure. By using them, the predetermined mathematical values are calculated and output.

상기 소정 신호는 음성 신호를 선형 예측 부호화를 사용하여 필터링하고, 피치 성분을 제거한 신호일 수 있다.The predetermined signal may be a signal obtained by filtering a speech signal using linear prediction coding and removing a pitch component.

선택부(430)는 상기 계산부에서 출력된 소정의 수학식 값들을 기초로 트렐리스 구조의 각 스테이트에 대하여, 상기 스테이트와 다른 스테이트를 연결하는 적어도 하나의 브랜치에 할당된 소정 펄스 위치 집합의 펄스 위치들에 대응하는 경로들 중에서 상기 대상 신호와 가장 일치하는 소정 개수의 펄스 위치들에 각각 대응하는 소정 개수의 경로들을 선택한다.The selector 430 is configured to generate a predetermined pulse position set assigned to at least one branch connecting the state to the other state for each state of the trellis structure based on the predetermined equation values output from the calculator. Among the paths corresponding to the pulse positions, a predetermined number of paths respectively corresponding to the predetermined number of pulse positions that most match the target signal are selected.

메모리부(440)는 상기 소정 개수의 펄스 위치들 및 상기 경로들을 저장한다. 한편,트렐리스 구조 데이터베이스(410)는 메모리부(440) 내에 구비될 수도 있다.The memory unit 440 stores the predetermined number of pulse positions and the paths. The trellis structure database 410 may be provided in the memory unit 440.

출력부(450)는 상기 저장부에 저장된 상기 펄스 위치들 및 상기 경로들을 기초로 상기 대상 신호와 가장 일치하는 펄스 위치 정보 및 경로 정보를 출력한다.The output unit 450 outputs pulse position information and path information that most match the target signal based on the pulse positions and the paths stored in the storage unit.

도 5는 본 발명의 일 실시예에 따른 코드북 복호화 장치(500)의 구성도이다. 5 is a block diagram of a codebook decoding apparatus 500 according to an embodiment of the present invention.

도 5를 참조하면, 본 실시예에 따른 코드북 복호화 장치(500)는 트렐리스 구조 데이터베이스(510), 코드북 복호화부(520), 출력부(530)로 구성된다.Referring to FIG. 5, the codebook decoding apparatus 500 according to the present embodiment includes a trellis structure database 510, a codebook decoder 520, and an output unit 530.

트렐리스 구조 데이터베이스(510)에는 코드북 탐색 장치(400)의 트렐리스 구조 데이터베이스(410)에 저장되어 있는 트렐리스 구조 및 상기 트렐리스 구조에 할당되는 펄스들의 정보와 동일한 정보가 저장되어 있다.The trellis structure database 510 stores the same information as that of the trellis structure stored in the trellis structure database 410 of the codebook search device 400 and the pulses allocated to the trellis structure. have.

코드북 복호화부(520)는 트렐리스 구조 데이터베이스(510)에 저장되어 있는 정보 및 코드북 탐색 장치(400)가 출력한 펄스 위치 정보 및 경로 정보를 이용하여 음성 신호 중 소정 신호를 복원한다. The codebook decoder 520 restores a predetermined signal among voice signals using information stored in the trellis structure database 510 and pulse position information and path information output by the codebook search apparatus 400.

출력부(530)는 상기 복원된 소정 신호를 출력한다.The output unit 530 outputs the restored predetermined signal.

도 6 내지 도 9는 본 발명의 일 실시예에 따른 코드북 탐색 방법을 설명하기 위한 도면들이다. 6 to 9 are diagrams for describing a codebook search method according to an embodiment of the present invention.

도 6은 트렐리스 구조의 소정 스테이지에서의 리스트 비터비 인코딩을 수행하는 모습을 나타내고, 도 7은 트렐리스 구조의 소정 스테이트에서 소정 수학식 값을 이용하여 경로 리스트를 결정하는 모습을 나타내는 도면이다.FIG. 6 is a diagram illustrating a list Viterbi encoding performed at a predetermined stage of a trellis structure, and FIG. 7 is a diagram illustrating a path list determined using a predetermined equation value at a predetermined state of the trellis structure. to be.

도 8 및 도 9는 본 발명의 일 실시예에 따른 코드북 탐색 방법의 흐름도이다.8 and 9 are flowcharts illustrating a codebook search method according to an embodiment of the present invention.

먼저, 도 6의 j번째 스테이지에서의 리스트 비터비 인코딩 과정에서, j번째 스테이지의 s 스테이트와 관련된 펄스 위치 정보는 이전 스테이지의 스테이트에 따라 달라진다. 또한 이전 스테이트에서 순서화(ranking)하여 저장한 최적의 경로에 따라서도 펄스 위치 정보가 달라진다. First, in the list Viterbi encoding process in the j-th stage of FIG. 6, pulse position information related to the s state of the j-th stage depends on the state of the previous stage. In addition, the pulse position information also varies according to the optimal path that is ranked and stored in the previous state.

도 8을 참조하면, 81단계에서, 코드북 탐색 장치(400)는 0 스테이지의 전체 N개의 스테이트 중 제약된 초기 스테이트에서 최적의 펄스 탐색을 위해 이용하는 수학식의 최대값(

Figure 112006049397901-PAT00032
)에 대한 초기화를 수행한다. Referring to FIG. 8, in step 81, the codebook search apparatus 400 may use a maximum value of an equation used for an optimal pulse search in a constrained initial state among all N states of a zero stage.
Figure 112006049397901-PAT00032
) Is initialized.

82단계에서는 첫 번째 스테이지부터

Figure 112006049397901-PAT00033
(여기서, L은 전체 스테이지수) 스테이지까지 각 스테이트마다 도 6 및 도 7에서 보는 것과 같이 리스트 비터비 인코딩이 수행된다. 이를 자세히 살펴보면, 82a단계에서 코드북 탐색 장치(400)는 이전 스테이지의 i번째 스테이트와 현재 스테이지의 s번째 스테이트를 연결한 브랜치에 할당된 부코드북을 이용하여, [수학식 1]을 변형한 소정의 [수학식 7] 값
Figure 112006049397901-PAT00034
을 계산하고, 상기 계산한 값을 해당하는 브랜치에 따라 [수학식 8] 및 [수학식 9]와 같이 구하여 저장한다. In step 82, the first stage
Figure 112006049397901-PAT00033
(Where L is the total number of stages) List Viterbi encoding is performed as shown in FIGS. 6 and 7 for each state up to the stage. In detail, in operation 82a, the codebook search apparatus 400 transforms Equation 1 by using a subcodebook assigned to a branch connecting the i-th state of the previous stage and the s-th state of the current stage. Equation 7 Values
Figure 112006049397901-PAT00034
Calculate and store the calculated values as shown in [Equation 8] and [Equation 9] according to the corresponding branch.

Figure 112006049397901-PAT00035
Figure 112006049397901-PAT00035

여기서,

Figure 112006049397901-PAT00036
는 q번째 고정 코드북 벡터이고, T 는 전치 행렬을 나타낸다. here,
Figure 112006049397901-PAT00036
Is the q th fixed codebook vector, and T represents the transpose matrix.

Figure 112006049397901-PAT00037
Figure 112006049397901-PAT00037

Figure 112006049397901-PAT00038
Figure 112006049397901-PAT00038

상기 [수학식 8] 및 [수학식 9]에 있어서,

Figure 112006049397901-PAT00039
는 j 번째 스테이지의 s 스테이트와 (j-1) 번째 스테이지의
Figure 112006049397901-PAT00040
스테이트 사이의 브랜치에 할당된 부 코드북을,
Figure 112006049397901-PAT00041
는 j 번째 스테이지의 s 스테이트와 (j-1) 번째 스테이지의
Figure 112006049397901-PAT00042
스테이트 사이의 브랜치에 할당된 부코드북을 각각 나타낸다.
Figure 112006049397901-PAT00043
는 s 스테이트와
Figure 112006049397901-PAT00044
스테이트 사이의 브랜치에 할당된 부 코드북에 있어서, 대상 신호와 임펄스 응답 h(n)과의 상관도를 나타낸다.In [Equation 8] and [Equation 9],
Figure 112006049397901-PAT00039
Is the s state of the j th stage and the (j-1) th stage
Figure 112006049397901-PAT00040
The sub-codebook assigned to the branch between states,
Figure 112006049397901-PAT00041
Is the s state of the j th stage and the (j-1) th stage
Figure 112006049397901-PAT00042
Represents each subcodebook assigned to a branch between states.
Figure 112006049397901-PAT00043
S state and
Figure 112006049397901-PAT00044
In the sub codebook assigned to the branch between states, the correlation between the target signal and the impulse response h (n) is shown.

82b 단계는 소정 트렐리스 구조의 어느 하나의 스테이트에 대하여, 상기 스테이트와 다른 스테이트를 연결하는 적어도 하나의 브랜치에 할당된 소정 펄스 위치 집합의 펄스 위치들에 대응하는 경로들 중에서 상기 소정 신호와 가장 일치하는 소정 개수의 펄스 위치들에 각각 대응하는 소정 개수의 경로들을 선택한다. 보다 구체적으로 설명하면 다음과 같다.In step 82b, for any one state of a predetermined trellis structure, the predetermined signal and the most out of the paths corresponding to the pulse positions of the predetermined pulse position set assigned to the at least one branch connecting the state to the other state are the most. A predetermined number of paths are respectively selected corresponding to the predetermined number of pulse positions to match. More specifically described as follows.

82b-1단계에서 코드북 탐색 장치(400)는 (j-1) 번째 스테이지까지 저장된 누적 [수학식 7]의 값인

Figure 112006049397901-PAT00045
Figure 112006049397901-PAT00046
에 각각 상기 [수학식 8] 및 [수학식 9]의 값을 가산하여, 가장 큰 값을 갖는 순으로 k개의 [수학식 11]을 업데이트하여 저장한다. 여기서, 상기 가산된 값은 결국 [수학식 1]을 변형한 [수학식 7] 이 누적된 값이므로 상기 가산된 값이 클수록 코드북 탐색 장치(400)로 입력되는 대상 신호와 가장 일치하는 펄스 위치가 된다.In operation 82b-1, the codebook searching apparatus 400 may store the accumulated value of Equation 7 stored up to the (j-1) th stage.
Figure 112006049397901-PAT00045
And
Figure 112006049397901-PAT00046
Equation 8 and Equation 9 are added to each other, and k [Equation 11] is updated and stored in the order of having the largest value. Here, since the added value is a cumulative value of [Equation 7], which is modified from Equation 1, the added pulse value is the pulse position that most closely matches the target signal input to the codebook search apparatus 400. do.

82b-2단계에서 코드북 탐색 장치(400)는 j 번째 스테이지의 s 스테이트와 연결된 2k개의 트렐리스 리스트 경로들 중 상기 [수학식 11]값에 해당하는 k개의 경로 리스트(k paths)를 [수학식 10]과 같이 저장하고, 이 때 최적의 펄스 위치와 랭킹 순번을 저장한다. In operation 82b-2, the codebook search apparatus 400 may determine k path lists k paths corresponding to the above Equation 11 among 2k trellis list paths connected to the s state of the j th stage. Save as in [Equation 10] and save the optimal pulse position and ranking order.

Figure 112006049397901-PAT00047
Figure 112006049397901-PAT00047

Figure 112006049397901-PAT00048
Figure 112006049397901-PAT00048

코드북 탐색 장치(400)는 상기 82단계의 과정을 첫 번째 스테이지부터

Figure 112006049397901-PAT00049
(여기서, L은 전체 스테이지수)스테이지까지 반복한다. The codebook search apparatus 400 starts the process of step 82 from the first stage.
Figure 112006049397901-PAT00049
Where L is the total number of stages.

83단계에서 코드북 탐색 장치(400)는 첫 번째 스테이지부터

Figure 112006049397901-PAT00050
스테이지까지 상기 82단계에서 구한 최적의 리스트 경로들을 경로 백트랙킹(Path Backtracking)하여 N×k 개의 생존 리스트 경로들을 결정한다. N개의 각 스테이트 당 k개의 경로가 결정되므로 생존 리스트 경로가 N×k 개가 된다.In step 83, the codebook navigation device 400 starts from the first stage.
Figure 112006049397901-PAT00050
Path backtracking of the optimal list paths obtained in step 82 until the stage is performed to determine N × k survival list paths. Since k paths are determined for each of the N states, there are N × k paths of survival list.

다음, 도 9의 94 단계는 나머지

Figure 112006049397901-PAT00051
스테이지에서 L 스테이지까지 리스트 비터비 인코딩 과정을 수행하고, 최종적으로 최적의 트렐리스 생존 경로 하나를 선택하는 것을 나타낸다.Next, step 94 of FIG.
Figure 112006049397901-PAT00051
The list Viterbi encoding process is performed from the stage to the L stage, and finally, one optimal trellis survival path is selected.

94a단계에서 코드북 탐색 장치(400)는 상기 83 단계에서 결정된 N×k개의 생존 리스트 경로들의 초기 스테이트를 결정하고, 상기 초기 스테이트에 따라 결정된 마지막 L 스테이지의 스테이트로 끝나는 2개의 트렐리스 리스트 경로를 결정한다.In step 94a, the codebook search apparatus 400 determines the initial state of the N × k survival list paths determined in step 83, and determines two trellis list paths ending with the state of the last L stage determined according to the initial state. Decide

94b단계에서는 상기 2개의 트렐리스 리스트 경로에서 리스트 비터비 인코딩 과정을 수행한다. 94b단계에서 n은 상기 결정된 2개의 트렐리스 경로에 각각 해당하는 마지막 스테이트 2개를 의미한다. In step 94b, a list Viterbi encoding process is performed on the two trellis list paths. In step 94b, n means the last two states corresponding to the two trellis paths determined above.

94b-11 단계에서 코드북 탐색 장치(400)는

Figure 112006049397901-PAT00052
스테이지부터 마지막 L 스테이지까지 상기 2개의 트렐리스 리스트 경로에 해당하는 각 스테이트에서 [수학식 11] 값을 업데이트한다. 다시 말하면, 코드북 탐색 장치(400)는 이전 (j-1)번째 스테이지까지 누적된 [수학식 7]의 값
Figure 112006049397901-PAT00053
Figure 112006049397901-PAT00054
부터 L 스테이지의 상기 2개의 트렐리스 리스트 경로에서의 [수학식 7]의 값
Figure 112006049397901-PAT00055
를 가산하여, 가장 큰 값부터 k개를 선택하고 순서화하여(ranking)
Figure 112006049397901-PAT00056
에 저장한다. 이 때,
Figure 112006049397901-PAT00057
스테이지에서 이전 (j-1)번째 스테이지까지 누적 [수학식 7]의 값
Figure 112006049397901-PAT00058
는 초기 스테이지부터
Figure 112006049397901-PAT00059
스테이지까지 i 스테이트에서 구해진 [수학식 11] 값인
Figure 112006049397901-PAT00060
와 같다. In step 94b-11, the codebook searching apparatus 400 is
Figure 112006049397901-PAT00052
The Equation 11 value is updated in each state corresponding to the two trellis list paths from the stage to the last L stage. In other words, the codebook search apparatus 400 stores values of Equation 7 accumulated up to the previous (j-1) th stage.
Figure 112006049397901-PAT00053
Wow
Figure 112006049397901-PAT00054
Equation 7 in the two trellis list paths of the L stages
Figure 112006049397901-PAT00055
, Then select and rank k from the largest value
Figure 112006049397901-PAT00056
Store in At this time,
Figure 112006049397901-PAT00057
Cumulative value from equation (7) from the stage to the previous (j-1) th stage
Figure 112006049397901-PAT00058
From the initial stage
Figure 112006049397901-PAT00059
Equation
11 obtained from the i state until the stage
Figure 112006049397901-PAT00060
Same as

94b-12 단계에서는 코드북 탐색 장치(400)는 상기 값

Figure 112006049397901-PAT00061
에 해당하는 k개의 경로 리스트를 저장하고, 그때 최적의 펄스 위치 정보와 랭킹 순번을 저장한다. 94b-2 단계 및 94b-3 단계에서 코드북 탐색 장치(400)는 94b-11단계에서 구해진 전체 [수학식 11] 값을 가장 크게 하는 스테이트 n을 구한다.In operation 94b-12, the codebook search apparatus 400 may determine the value.
Figure 112006049397901-PAT00061
The k path lists corresponding to are stored, and then the optimal pulse position information and ranking sequence number are stored. In steps 94b-2 and 94b-3, the codebook search apparatus 400 obtains a state n that maximizes the total value of Equation 11 obtained in steps 94b-11.

94b-4 단계에서 코드북 탐색 장치(400)는 구해진 전체 [수학식 11]값과 트렐리스 경로 정보, 펄스 정보를 저장한다.In operation 94b-4, the codebook search apparatus 400 stores the obtained total Equation 11, trellis path information, and pulse information.

94d 단계에서 코드북 탐색 장치(400)는 94b 단계에서 구해진 정보를 이용하여 전체 N개의 생존 경로에서 [수학식 11] 값을 가장 크게 하는 스테이트 i를 선택한다.In operation 94d, the codebook search apparatus 400 selects state i having the largest value of Equation 11 in all N survival paths using the information obtained in operation 94b.

94e 단계에서 코드북 탐색 장치(400)는 트렐리스 경로 정보와 펄스 위치 정보, 전체 [수학식 11] 값을 저장하고, 상기 트렐리스 경로 정보와 펄스 위치 정보를 출력한다.In operation 94e, the codebook search apparatus 400 stores trellis path information, pulse position information, and the total value of Equation 11, and outputs the trellis path information and pulse position information.

도 10 내지 도 14는 본 발명의 다른 실시예에 따른 코드북 탐색 방법을 설명 하기 위한 도면들이다. 10 to 14 are diagrams for describing a codebook search method according to another embodiment of the present invention.

본 실시예에 따른 코드북 탐색 방법도 BC-TCQ 알고리즘을 이용한 것으로, 트렐리스 구조는 첫 번째 방법과 유사하나, 인코딩 방법은 스테이지를 그룹화하여 싱글 비터비 부호화하는 점에서 차이가 있다.The codebook search method according to the present embodiment also uses the BC-TCQ algorithm. The trellis structure is similar to the first method, but the encoding method differs in that the single Viterbi coding is performed by grouping the stages.

도 10은 4-스테이트 트렐리스 구조에서 2개 스테이지를 그룹화한 ATC 알고리즘을 적용하는 경우 고려되는 트렐리스 경로의 예를 나타내는 도면이다.FIG. 10 is a diagram illustrating an example of a trellis path to be considered when applying an ATC algorithm in which two stages are grouped in a four-state trellis structure.

도 11은 도 10의 트렐리스 구조의 소정 스테이트에서 싱글 비터비 인코딩을 수행하는 모습을 나타내는 도면이다.FIG. 11 is a diagram illustrating single Viterbi encoding performed in a predetermined state of the trellis structure of FIG. 10.

도 12는 도 10의 트렐리스 구조의 소정 스테이트에서 소정 수학식 값을 이용하여 싱글 비터비 인코딩을 수행하는 모습을 나타내는 도면이다.FIG. 12 is a diagram illustrating a single Viterbi encoding using a predetermined equation value in a predetermined state of the trellis structure of FIG. 10.

도 13 및 도 14는 본 실시예에 따른 코드북 탐색 방법의 흐름도이다.13 and 14 are flowcharts of a codebook search method according to the present embodiment.

본 실시예를 개략적으로 설명하면 다음과 같다. 첫 번째 스테이지의 제약된 초기 스테이트에서 시작하여,

Figure 112006049397901-PAT00062
(여기서, L은 전체 스테이지수) 스테이지까지, 트렐리스 구조의 소정 개수의 스테이지를 그룹화하고 상기 그룹화된 스테이지의 각 스테이트에서 싱글 비터비 알고리즘을 수행한다. 상기 알고리즘에 의해서 각 스테이트마다 최적의 경로들을 결정하게 되는데, 스테이지 그룹마다 경로를 결정하므로 이를 최적의 그룹 경로라 표현하기로 한다. 이후
Figure 112006049397901-PAT00063
스테이지에서 N개의 생존 그룹 경로들의 초기 스테이트를 경로 백트랙킹(Path backtracking)하여 결정한다. 상기 결정된 초기 스테이트를 참조하여, 마지막 스테이지의 제약된 스테이트 로 끝나는 트렐리스 그룹 경로들을 선택한다. 마지막
Figure 112006049397901-PAT00064
스테이지 그룹에서 상기 그룹 경로들 중 최적의 트렐리스 그룹 경로 하나를 선택하고, 최종적으로 전체 N개의 생존 그룹 경로들 중 최적의 트렐리스 경로 하나를 선택한다.The present embodiment is briefly described as follows. Starting with the constrained initial state of the first stage,
Figure 112006049397901-PAT00062
Up to stages, where L is the total number of stages, a predetermined number of stages of the trellis structure are grouped and a single Viterbi algorithm is performed in each state of the grouped stages. The algorithm determines the optimal paths for each state. Since the paths are determined for each stage group, this will be referred to as an optimal group path. after
Figure 112006049397901-PAT00063
The initial state of the N survival group paths in the stage is determined by path backtracking. With reference to the determined initial state, the trellis group paths ending with the constrained state of the last stage are selected. Last
Figure 112006049397901-PAT00064
In the stage group, one optimal trellis group path among the group paths is selected, and one optimal trellis path among all N survival group paths is selected.

도 10을 참조하면, 도 3과 마찬가지로 초기 스테이트는 '00' 혹은 '01'이며, 마지막 스테이지 그룹의 스테이트는 초기 스테이트가 '00'인 경우 '00' 또는 '10', 초기 스테이트가 '01'인 경우 '01' 혹은 '11'로 제약을 둔 예이다. 도 10을 참조하면, 그룹화된

Figure 112006049397901-PAT00065
스테이지에서 스테이트 '00'까지 결정된 생존 그룹 경로(굵은 점선)의 초기 스테이트가 '00'이므로 나머지 스테이지에서 선택 가능한 트렐리스 그룹 경로들은 마지막 스테이지의 스테이트가 '00'과 '10'이 되는 굵은 실-점선으로 표시된다.Referring to FIG. 10, as in FIG. 3, the initial state is '00' or '01', and the state of the last stage group is '00' or '10' when the initial state is '00', and the initial state is '01'. Is an example of restricting it to '01' or '11'. Referring to FIG. 10, grouped
Figure 112006049397901-PAT00065
Since the initial state of the survival group path (bold dotted line) determined from the stage to state '00' is '00', the trellis group paths selectable in the remaining stages are bold yarns in which the state of the last stage is '00' and '10'. It is indicated by a dashed line.

본 실시예에 있어서, 도 10에서와 같이 선택된 트렐리스 경로들 하에서 동작하는 ATC 인코딩 과정을 도 11 내지 도 14를 참조하여 설명한다. 본 실시예에서 그룹화하는 스테이지의 수는 몇 개의 펄스 간에 서로의 영향이 고려되도록 할 것인지에 따라 결정할 수 있다. 이는 대수 코드북 구조의 depth-first tree 탐색 방법을 트렐리스 구조에 적용한 것이다. 보다 쉬운 예를 위해 2개 스테이지를 그룹화한 경우로 설명하기로 한다.In the present embodiment, an ATC encoding process operating under selected trellis paths as shown in FIG. 10 will be described with reference to FIGS. 11 to 14. In this embodiment, the number of stages to be grouped can be determined depending on how many pulses the influence of each other is to be considered. This is the depth-first tree search method of algebraic codebook structure applied to trellis structure. For easier example, the two stages are grouped together.

도 11의 (j-1)j 스테이지 그룹에서의 싱글 비터비 인코딩 과정을 살펴보면, (j-1)j 스테이지 그룹의 s 스테이트와 관련된 펄스 위치 정보는 이전 스테이지 그룹의 스테이트에 따라 달라진다. 여기서 (j-1)j 스테이지 그룹은 j-1번째 스테이지 와 j번째 스테이지를 포함하는 스테이지 그룹을 의미한다. 또한, 스테이지를 a개씩 그룹화하면, 스테이지 그룹마다 s 스테이트에 연결된 브랜치 수는 2a개이다. 도 11를 참고하여 보면, 2개 스테이지를 그룹화 하였으므로, s 스테이트에 연결된 브랜치 수는 4개이다. 도 11에서 굵은 실선으로 표시된 부분이 상기 4개의 브랜치를 나타낸다. Referring to the single Viterbi encoding process in the (j-1) j stage group of FIG. 11, pulse position information related to the s state of the (j-1) j stage group varies depending on the state of the previous stage group. Here, the (j-1) j stage group refers to a stage group including a j-1 th stage and a j th stage. In addition, when a stage is grouped, the number of branches connected to the s state is 2 a for each stage group. Referring to FIG. 11, since two stages are grouped, the number of branches connected to the s state is four. In FIG. 11, the portions indicated by the bold solid lines represent the four branches.

이하 도 13 및 도 14에 도시된 흐름도를 기초로 본 실시예에 따른 코드북 탐색 방법을 설명한다. Hereinafter, the codebook searching method according to the present embodiment will be described based on the flowcharts shown in FIGS. 13 and 14.

131단계에서 코드북 탐색 장치(400)는 0 스테이지의 전체 N개의 스테이트 중 제약된 초기 스테이트에서 최적의 펄스 탐색을 위해 이용하는 수학식의 최대값(

Figure 112006049397901-PAT00066
)에 대한 초기화를 수행한다.In operation 131, the codebook search apparatus 400 may use a maximum value of an equation used for an optimal pulse search in the constrained initial state among the N states of the zero stage.
Figure 112006049397901-PAT00066
) Is initialized.

132단계에서 첫 번째 스테이지부터

Figure 112006049397901-PAT00067
(여기서, L은 전체 스테이지수)스테이지까지 2개 스테이지마다 각 스테이트에서 도 11 및 도 12에서와 같이 싱글 비터비 과정이 수행된다. 이를 자세히 살펴보면, 132 단계의 132a 단계에서 코드북 탐색 장치(400)는 이전 스테이지 그룹의 i번째 스테이트와 현재 스테이지 그룹의 s번째 스테이트를 연결한 브랜치에 할당된 부코드북을 이용하여 [수학식 7] 값을 계산하고, 계산된 값을 최대값 메트릭
Figure 112006049397901-PAT00068
에 저장한다. From the first stage in step 132
Figure 112006049397901-PAT00067
(Where L is the total number of stages) A single Viterbi process is performed as shown in FIGS. 11 and 12 in each state every two stages up to the stage. In detail, in step 132a of step 132, the codebook search apparatus 400 uses the subcodebook assigned to the branch connecting the i-th state of the previous stage group to the s-th state of the current stage group. , Calculate the calculated value as the maximum metric
Figure 112006049397901-PAT00068
Store in

132b 단계에서 코드북 탐색 장치(400)는 스테이지 그룹 내의 최후 스테이지의 어느 하나의 스테이트에 대하여 상기 스테이트와 상기 스테이지 그룹의 최선 스테이지의 스테이트들을 연결하는 복수 개의 브랜치들에 할당된 소정 펄스 위치 집 합들에 속하는 펄스 위치들의 조합에 대응하는 경로들 중에서 상기 소정 신호와 가장 일치하는 펄스 위치들의 조합에 대응하는 경로를 선택한다. 보다 구체적으로 설명하면 다음과 같다.In step 132b, the codebook search apparatus 400 belongs to predetermined pulse position sets assigned to a plurality of branches connecting the state and the state of the best stage of the stage group with respect to any state of the last stage in the stage group. A path corresponding to the combination of pulse positions that most closely matches the predetermined signal is selected from among paths corresponding to the combination of pulse positions. More specifically described as follows.

132b 단계의 132b-1 단계 및 132b-2 단계에서 코드북 탐색 장치(400)는 도 12의 (j-1) 스테이지에 할당된 트랙 및 j 스테이지에 할당된 트랙을 이용한 2개의 겹쳐진 루프에서, 상기 132a 단계에서 계산하여 저장한 최대값 메트릭을 (j-3)(j-2) 스테이지 그룹까지 저장된 누적 [수학식 7] 값인

Figure 112006049397901-PAT00069
와 가산하여, 가장 큰 값을 갖는 [수학식 7]의 값을 [수학식 13]과 같이 현재 스테이지 그룹의 누적 값
Figure 112006049397901-PAT00070
에 저장한다.In steps 132b-1 and 132b-2 of step 132b, the codebook search apparatus 400 performs two overlapping loops using tracks assigned to stage (j-1) and tracks assigned to stage j of FIG. 12. The maximum metric calculated and stored in the step is the cumulative Equation 7 stored up to the (j-3) (j-2) stage group.
Figure 112006049397901-PAT00069
The sum of Equation 7, which has the largest value, is added to and the cumulative value of the current stage group as shown in Equation 13.
Figure 112006049397901-PAT00070
Store in

132b-3 단계에서, 코드북 탐색 장치(400)는 상기

Figure 112006049397901-PAT00071
값에 해당하는 2개의 펄스
Figure 112006049397901-PAT00072
,
Figure 112006049397901-PAT00073
의 최적 위치를 찾는다. 132b-4단계에서 코드북 탐색 장치(400)는 상기 최적 펄스와 그 때의 그룹 경로 [수학식 12]를 저장한다.In operation 132b-3, the codebook search apparatus 400 may
Figure 112006049397901-PAT00071
2 pulses corresponding to the value
Figure 112006049397901-PAT00072
,
Figure 112006049397901-PAT00073
Find the optimal location of In operation 132b-4, the codebook search apparatus 400 stores the optimal pulse and the group path [Equation 12] at that time.

Figure 112006049397901-PAT00074
Figure 112006049397901-PAT00074

Figure 112006049397901-PAT00075
Figure 112006049397901-PAT00075

코드북 탐색 장치(400)는 상기 132 단계의 과정을 첫 번째 스테이지 그룹부터

Figure 112006049397901-PAT00076
스테이지가 포함된 스테이지 그룹까지 반복한다. The codebook search apparatus 400 performs the process of step 132 from the first stage group.
Figure 112006049397901-PAT00076
Repeat up to the stage group containing the stage.

133단계에서 코드북 탐색 장치(400)는 첫 번째 스테이지부터 (여기서, L은 전체 스테이지수) 스테이지까지 132단계에서 저장한 그룹 경로를 바탕으로 경로 백트랙킹(Path Backtracking)에 의해 N개의 생존 그룹 경로를 결정한다.In step 133, the codebook search apparatus 400 searches N survival group paths by path backtracking based on the group path stored in step 132 from the first stage to the stage, where L is the total number of stages. Decide

도 14의 144 단계에서는 나머지

Figure 112006049397901-PAT00077
스테이지에서 스테이지까지 상기 생존 그룹 경로의 초기 스테이트에 따라 결정된 마지막 스테이지의 스테이트로 연결된 2개의 트렐리스 그룹 경로에 대해서 싱글 비터비 인코딩이 수행된다.In step 144 of FIG.
Figure 112006049397901-PAT00077
Single Viterbi encoding is performed on two trellis group paths connected to the state of the last stage determined according to the initial state of the survival group path from stage to stage.

144a 단계에서 코드북 탐색 장치(400)는 상기 133 단계에서 결정된 N개의 생존 그룹 경로들의 초기 스테이트를 경로 백트랙킹(Path Backtracking)에 의해 결정하고, 이에 따른 마지막

Figure 112006049397901-PAT00078
스테이지에 대한 2개의 트렐리스 그룹 경로를 결정한다.In step 144a, the codebook search apparatus 400 determines the initial state of the N survival group paths determined in step 133 by path backtracking.
Figure 112006049397901-PAT00078
Determine two trellis group paths for the stage.

144b 단계에서 코드북 탐색 장치(400)는 상기 2개의 트렐리스 그룹 경로에서 싱글 비터비 인코딩을 수행한다. In operation 144b, the codebook search apparatus 400 performs single Viterbi encoding on the two trellis group paths.

144b-11 단계 및 144b-12 단계에서 코드북 탐색 장치(400)는

Figure 112006049397901-PAT00079
스테이지부터 마지막 스테이지까지, (j-1) 스테이지에 할당된 트랙 및 j 스테이지에 할당된 트랙을 이용한 2개의 겹쳐진 루프에서, 이전 (j-3)(j-2) 스테이지 그룹까지의 누적 [수학식 7] 값인
Figure 112006049397901-PAT00080
Figure 112006049397901-PAT00081
부터 스테이지의 상기 2개의 트렐리스 그룹 경로에서의 [수학식 7]의 값
Figure 112006049397901-PAT00082
를 가산하여 (j-1)j 스테이지 그룹의 누적 값인
Figure 112006049397901-PAT00083
에 저장한다. 이 때,
Figure 112006049397901-PAT00084
스테이지에서 이전 (j-3)(j-2) 스테이지 그룹까지 저장된 누적
Figure 112006049397901-PAT00085
의 값는 초기 스테이지부터
Figure 112006049397901-PAT00086
스테이지까지 i 스테이트에서 구해진 [수학식 13] 값
Figure 112006049397901-PAT00087
과 같다. In steps 144b-11 and 144b-12, the codebook search device 400
Figure 112006049397901-PAT00079
From the stage to the last stage, cumulative up to the previous (j-3) (j-2) stage group in two overlapping loops using the track assigned to stage (j-1) and the track assigned to stage j 7] value
Figure 112006049397901-PAT00080
on
Figure 112006049397901-PAT00081
Equation 7 in the two trellis group paths of the stage
Figure 112006049397901-PAT00082
By adding the cumulative value of the (j-1) j stage group
Figure 112006049397901-PAT00083
Store in At this time,
Figure 112006049397901-PAT00084
Cumulative stored from stage to previous (j-3) (j-2) stage group
Figure 112006049397901-PAT00085
The value of from the initial stage
Figure 112006049397901-PAT00086
[Equation 13] value obtained in state i until stage
Figure 112006049397901-PAT00087
Same as

144b-13 단계 및 144b-14 단계에서 코드북 탐색 장치(400)는 상기

Figure 112006049397901-PAT00088
값에 해당하는 2개 펄스의 최적 위치를 선택하고, 그 최적의 펄스 위치 정보와 그룹 경로를 저장한다. In steps 144b-13 and 144b-14, the codebook search apparatus 400 may
Figure 112006049397901-PAT00088
The optimal position of the two pulses corresponding to the value is selected, and the optimal pulse position information and the group path are stored.

144b-2 단계 및 144b-3 단계에서 코드북 탐색 장치(400)는 144b-13단계에서 구해진 전체 [수학식 13] 값을 가장 크게 하는 스테이트 n을 선택한다.In steps 144b-2 and 144b-3, the codebook search apparatus 400 selects a state n that maximizes the total [Equation 13] value obtained in steps 144b-13.

144b-4 단계에서 코드북 탐색 장치(400)는 구해진 전체 [수학식 13]값과 트렐리스 그룹 경로 정보, 펄스 정보를 저장한다.In operation 144b-4, the codebook search apparatus 400 stores the obtained total Equation 13, trellis group path information, and pulse information.

144d 단계에서 코드북 탐색 장치(400)는 144b 단계에서 구해진 정보를 이용하여 전체 N개의 생존 그룹 경로에서 전체 [수학식 13] 값을 최대로 하는 스테이트 i를 선택한다.In operation 144d, the codebook search apparatus 400 selects state i that maximizes the total value of Equation 13 in all N survival group paths using the information obtained in operation 144b.

144e 단계에서 코드북 탐색 장치(400)는 최종적으로 트렐리스 그룹 경로 정보와 펄스 위치 정보, 전체 [수학식 13] 값을 저장하고, 상기 트렐리스 그룹 경로 정보와 펄스 위치 정보를 출력한다.In operation 144e, the codebook search apparatus 400 finally stores trellis group path information, pulse position information, and the total equation value, and outputs the trellis group path information and pulse position information.

<실험 예>Experimental Example

3GPP에 의해 광대역 음성 부호화기 표준으로 선택된 AMR 광대역 부호화기 8.85k 모드의 고정 코드북 탐색에 ATC와 리스트 비터비 알고리즘을 사용한 본 발명을 적용한 경우 성능 및 계산량을 AMR 광대역 부호화기의 기존 대수 코드북 사용시 와 비교하여 [표 4] 및 [표 5]에 각각 나타내었다. [표 4] 및 [표 5]를 참조하면, 리스트 비터비 경로 수 k에 따른 성능 및 계산량이 나타나 있다.AMR wideband encoder selected by 3GPP as the wideband speech coder standard When the present invention using the ATC and list Viterbi algorithm is applied to the fixed codebook search in 8.85k mode, the performance and the computations are compared with those of the conventional algebraic codebook of the AMR wideband coder. 4] and [Table 5], respectively. Referring to [Table 4] and [Table 5], the performance and the amount of calculation according to the number of list Viterbi paths k are shown.

상기 성능은 ITU-T 표준 음질 측정 software P.826인 PESQ(perceptual evaluation of speech quality)를 사용하여 측정하였고, 상기 계산량은 인코딩시 측정되는 펄스 탐색 횟수를 측정하여 나타내었다.The performance was measured using the perceptual evaluation of speech quality (PESQ), which is the ITU-T standard sound quality measurement software P.826, and the calculation amount was expressed by measuring the number of pulse searches measured during encoding.

리스트 비터비 경로 수 kNumber of list Viterbi paths k PESQ(MOS)PESQ (MOS) 본발명 (ATC-LVA)  Invention (ATC-LVA) k = 1k = 1 3.16533.1653 k = 2k = 2 3.17613.1761 k = 3k = 3 3.17883.1788 k = 4k = 4 3.18163.1816 k = 5k = 5 3.18433.1843 대수 코드북Algebra Codebook 3.17923.1792

리스트 비터비 경로 수 kNumber of list Viterbi paths k 이론적 계산량Theoretical calculation 본발명 (ATC-LVA)  Invention (ATC-LVA) k = 1k = 1 192192 k = 2k = 2 352352 k = 3k = 3 512512 k = 4k = 4 672672 k = 5k = 5 832832 대수 코드북Algebra Codebook 768768

상기 [표 4] 및 [표 5]를 살펴보면, 리스트 비터비 경로 수가 4 이상일 때 얻어지는 본 발명의 성능이 AMR 광대역 부호화기의 기존 대수 코드북 사용시의 성능보다 우수한 성능을 갖는다. 특히 리스트 비터비 경로 수가 4인 경우 음질은 향상되고 계산량은 줄어들었음을 알 수 있다.Referring to Tables 4 and 5, the performance of the present invention obtained when the number of list Viterbi paths is 4 or more is superior to that of the existing algebra codebook of the AMR wideband encoder. In particular, when the number of list Viterbi paths is 4, the sound quality is improved and the calculation amount is reduced.

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium. In addition, the structure of the data used in the above-described embodiment of the present invention can be recorded on the computer-readable recording medium through various means.

상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다. The computer-readable recording medium may be a magnetic storage medium (for example, a ROM, a floppy disk, a hard disk, etc.), an optical reading medium (for example, a CD-ROM, DVD, etc.) and a carrier wave (for example, the Internet). Storage medium).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다.본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다. So far, the present invention has been described with reference to the preferred embodiments. Those skilled in the art to which the present invention pertains can realize that the present invention can be embodied in a modified form without departing from the essential characteristics of the present invention. I can understand. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

본 발명에 따르면, 소정 펄스 위치 집합이 각 브랜치에 할당된 트렐리스 구조를 이용하여, 음성 신호의 소정 신호와 가장 일치하는 펄스 위치들에 대응하는 경로를 선택함으로써, 코드북 탐색 과정에서의 계산량을 감소시킬 수 있다. 나아가, 트렐리스 구조의 초기 스테이트와 마지막 스테이트를 소정 개수로 제한함으로써 더욱 계산량을 감소시킬 수 있다.According to the present invention, by using a trellis structure in which a predetermined set of pulse positions is assigned to each branch, a path corresponding to pulse positions that most closely matches a predetermined signal of a voice signal is selected, thereby calculating the amount of computation in the codebook search process. Can be reduced. Furthermore, the computational amount can be further reduced by limiting the initial state and the last state of the trellis structure to a predetermined number.

또한 본 발명에 따르면, 트렐리스 구조를 이용함으로써, 기존의 대수 코드북 보다 확장된 구조의 코드북 구조를 사용할 수 있게 되어 계산량의 증가 없이도 음질 면에서 향상된 코드북 탐색을 수행할 수 있다. 특히 기존 대수북 코드와 같이 펄스 위치들이 배타적으로 분배된 트랙마다 펄스를 찾는 것이 아니라, 펄스 위치가 배타적인 복수 개의 소정 집합들의 합집합의 형태로 된 트랙마다 펄스를 찾음으로써 음질 면에서 향상된 코드북 탐색을 수행할 수 있다.In addition, according to the present invention, by using the trellis structure, it is possible to use a codebook structure of an extended structure than the existing algebraic codebook, and thus it is possible to perform an improved codebook search in terms of sound quality without increasing the amount of computation. In particular, the codebook search is improved in terms of sound quality by finding pulses for each track in the form of the union of a plurality of predetermined sets in which the pulse positions are exclusively distributed, as in the conventional algebra code. Can be done.

또한, 본 발명에 따르면, 소정 펄스 위치 집합이 각 브랜치에 할당된 트렐리스 구조를 이용하고, 상기 트레리스 구조의 스테이지들을 그룹화한 스테이지 그룹 단위로 펄스 위치의 조합에 대응하는 경로를 선택함으로써, 코드북 탐색 과정에서의 계산량이 감소되고, 펄스 간의 영향이 고려되므로 음질 면에서 향상된 고정 코드북 탐색을 수행할 수 있다.Further, according to the present invention, by using a trellis structure in which a predetermined set of pulse positions is assigned to each branch, and selecting a path corresponding to a combination of pulse positions in units of stage groups in which the stages of the trellis structure are grouped, Since the amount of calculation in the codebook search process is reduced and the influence between pulses is considered, an improved fixed codebook search can be performed in terms of sound quality.

Claims (20)

음성 신호 중 소정 신호를 모델링하는 펄스들을 포함하는 코드북을 탐색하는 방법에 있어서,A method for searching a codebook including pulses for modeling a predetermined signal of a voice signal, (a) 소정 트렐리스 구조의 어느 하나의 스테이트에 대하여, 상기 스테이트와 다른 스테이트를 연결하는 적어도 하나의 브랜치에 할당된 소정 펄스 위치 집합의 펄스 위치들에 대응하는 경로들 중에서 상기 소정 신호와 가장 일치하는 소정 개수의 펄스 위치들에 각각 대응하는 상기 소정 개수의 경로들을 선택하는 단계;(a) for any one state of a predetermined trellis structure, among the paths corresponding to the pulse positions of a predetermined set of pulse positions assigned to at least one branch connecting the state to another state, the predetermined signal and the Selecting the predetermined number of paths, each corresponding to a predetermined number of pulse positions to match; (b) 상기 스테이트가 아닌 다른 스테이트에 대하여, 상기 (a) 단계를 수행하는 단계;(b) for a state other than the state, performing step (a); (c) 상기 (a) 단계 및 상기 (b) 단계에서 선택된 경로들을 포함하는 경로들 중에서 상기 소정 신호와 가장 일치하는 펄스 위치들에 대응하는 경로를 선택하는 단계;를 포함하는 것을 특징으로 하는 코드북 탐색 방법.(c) selecting a path corresponding to the pulse positions that most matches the predetermined signal among the paths including the paths selected in steps (a) and (b); Navigation method. 제 1 항에 있어서,The method of claim 1, 상기 (a) 단계 및 상기 (b) 단계는 상기 트렐리스 구조의 어느 하나의 스테이지에 속하는 스테이트에 대하여 수행하고,Step (a) and step (b) are performed for a state belonging to any one stage of the trellis structure, (d) 상기 스테이지가 아닌 다른 스테이지에서 상기 (a) 단계 및 상기 (b) 단계를 수행하는 단계를 더 포함하고,(d) further performing the steps (a) and (b) in a stage other than the stage, 상기 (c) 단계는, 상기 (a) 단계, 상기 (b) 단계 및 상기 (d) 단계에서 선택 된 경로들을 포함하는 경로들 중에서 상기 소정 신호와 가장 일치하는 펄스 위치들에 대응하는 경로를 선택하는 것을 특징으로 하는 코드북 탐색 방법.Step (c) selects a path corresponding to the pulse positions that most match the predetermined signal among the paths including the paths selected in steps (a), (b), and (d). Codebook search method, characterized in that. 제 1 항에 있어서,The method of claim 1, 상기 소정 신호는 음성 신호를 선형 예측 부호화를 사용하여 필터링하고, 피치 성분을 제거한 신호인 것을 특징으로 하는 코드북 탐색 방법.And the predetermined signal is a signal obtained by filtering a speech signal using linear prediction coding and removing a pitch component. 제 2 항에 있어서,The method of claim 2, 상기 (d) 단계는 상기 트렐리스 구조의 첫 번째 스테이지부터 마지막 스테이지까지 순차적으로 상기 (a) 단계 및 상기 (b) 단계를 수행하는 것을 특징으로 하는 코드북 탐색 방법.In the step (d), the steps of (a) and (b) are sequentially performed from the first stage to the last stage of the trellis structure. 제 2 항에 있어서,The method of claim 2, 상기 트렐리스 구조는 제 1 스테이지에 제 1 펄스 위치 집합이 할당되어 있고, 제 2 스테이지에 제 2 펄스 위치 집합이 할당되어 있으며, 상기 제 1 스테이지의 각 브랜치에 상기 제 1 펄스 위치 집합을 분할한 펄스 위치 집합이 할당되어 있고, 상기 제 2 스테이지의 각 브랜치에 상기 제 2 펄스 위치 집합을 분할한 펄스 위치 집합이 할당되어 있는 것을 특징으로 하는 코드북 탐색 방법.In the trellis structure, a first set of pulse positions is allocated to a first stage, a second set of pulse positions is allocated to a second stage, and the first set of pulse positions is divided into branches of the first stage. One pulse position set is allocated, and a pulse position set obtained by dividing the second pulse position set is allocated to each branch of the second stage. 제 5 항에 있어서,The method of claim 5, 상기 제 1 펄스 위치 집합과 상기 제 2 펄스 위치 집합 중 적어도 하나는 펄스 위치가 배타적인 복수 개의 소정 집합들의 합집합인 것을 특징으로 하는 코드북 탐색 방법.And at least one of the first set of pulse positions and the second set of pulse positions is a union of a plurality of predetermined sets of which pulse positions are exclusive. 제 2 항에 있어서,The method of claim 2, 상기 트렐리스 구조의 초기 스테이트를 제1 소정 개수로 제약하고, 상기 제약된 각 초기 스테이트에 대응하는 마지막 스테이트를 제2 소정 개수로 제약하는 단계를 더 포함하는 것을 특징으로 하는 코드북 탐색 방법.And constraining the initial states of the trellis structure to a first predetermined number and constraining the last state corresponding to each of the constrained initial states to a second predetermined number. 제 7 항에 있어서,The method of claim 7, wherein 상기 (d) 단계는 상기 트렐리스 구조의 첫 번째 스테이지부터 소정 번째 스테이지까지 순차적으로 상기 (a) 단계 및 상기 (b) 단계를 수행하고,Step (d) performs the steps (a) and (b) sequentially from the first stage to the predetermined stage of the trellis structure, (e) 상기 소정 번째 스테이지의 어느 하나의 스테이트에 대하여, 상기 (a) 단계, 상기 (b) 단계 및 상기 (d) 단계에서 선택된 경로들을 기초로 상기 스테이트에서 초기 스테이트까지 이르는 경로를 추적하여 상기 스테이트에 대응하는 초기 스테이트를 결정하고, 상기 스테이트에서 상기 제 2 소정 개수로 제약된 마지막 스테이트까지 연결되는 경로를 결정하는 단계;(e) for any one state of the predetermined stage, tracking the path from the state to the initial state based on the paths selected in steps (a), (b) and (d) Determining an initial state corresponding to a state and determining a path from the state to the last state constrained to the second predetermined number; (f) 상기 스테이지에서, 상기 스테이트가 아닌 다른 스테이트에 대하여 상기 (e) 단계를 수행하는 단계;(f) in the stage, performing step (e) for a state other than the state; (g) 상기 (e) 단계 및 상기 (f) 단계에서 결정된 경로 상의 스테이트에 대하 여 상기 (a) 단계 및 상기 (b) 단계를 수행하는 단계를 더 포함하고,(g) further performing steps (a) and (b) with respect to the state on the path determined in steps (e) and (f), 상기 (c) 단계는, 상기 (a) 단계, 상기 (b) 단계, 상기 (d) 및 상기 (g) 단계에서 선택된 경로들을 포함하는 경로들 중에서 상기 소정 신호와 가장 일치하는 펄스 위치들에 대응하는 경로를 선택하는 것을 특징으로 하는 코드북 탐색 방법.Step (c) corresponds to the pulse positions that most match the predetermined signal among the paths including the paths selected in steps (a), (b), (d) and (g). The codebook search method, characterized in that for selecting the path. 제 8 항에 있어서,The method of claim 8, 상기 트렐리스 구조는 N개(=2v, 여기서 v는 정수)개의 스테이트 및 L개의 스테이지를 가지고,The trellis structure has N states (= 2 v , where v is an integer) and L stages, 상기 제1 소정 개수는 2w(여기서, 0≤w≤v)개이며 상기 제2 소정 개수는 2v-w개이고,The first predetermined number is 2 w (where 0 ≦ w ≦ v) and the second predetermined number is 2 vw 상기 소정 번째 스테이지는
Figure 112006049397901-PAT00089
스테이지인 것을 특징으로 하는 고정 코드북 탐색 방법.
The predetermined stage
Figure 112006049397901-PAT00089
Fixed codebook searching method, characterized in that the stage.
음성 신호 중 소정 신호를 모델링하는 펄스들을 포함하는 코드북을 탐색하는 방법에 있어서,A method for searching a codebook including pulses for modeling a predetermined signal of a voice signal, (a) 스테이지가 소정 개수씩 그룹화된 소정 트렐리스 구조의 어느 하나의 스테이지 그룹에서, 상기 스테이지 그룹 내의 최후 스테이지의 어느 하나의 스테이트에 대하여 상기 스테이트와 상기 스테이지 그룹의 최선 스테이지의 스테이트들을 연결하는 복수 개의 브랜치들에 할당된 소정 펄스 위치 집합들에 속하는 펄스 위치 들의 조합에 대응하는 경로들 중에서 상기 소정 신호와 가장 일치하는 펄스 위치들의 조합에 대응하는 경로를 선택하는 단계;(a) in any stage group of a predetermined trellis structure in which stages are grouped by a predetermined number, connecting the states of the state and the best stage of the stage group to any state of the last stage in the stage group; Selecting a path corresponding to the combination of pulse positions that most closely matches the predetermined signal from among paths corresponding to a combination of pulse positions belonging to predetermined pulse position sets assigned to a plurality of branches; (b) 상기 최후 스테이지의 다른 스테이트에 대하여 상기 (a) 단계를 수행하는 단계;(b) performing step (a) for the other states of the last stage; (c) 상기 스테이지 그룹이 아닌 다른 스테이지 그룹에서 상기 (a) 단계 및 상기 (b) 단계를 수행하는 단계; 및(c) performing steps (a) and (b) in a stage group other than the stage group; And (d) 상기 (a) 단계 내지 상기 (c) 단계에서 선택된 경로들을 포함하는 경로들 중에서 상기 소정 신호와 가장 일치하는 펄스 위치들에 대응하는 경로를 선택하는 단계;를 포함하는 것을 특징으로 하는 코드북 탐색 방법.and (d) selecting a path corresponding to the pulse positions that most match the predetermined signal among the paths including the paths selected in steps (a) to (c). Navigation method. 제 10 항에 있어서,The method of claim 10, 상기 소정 신호는 음성 신호를 선형 예측 부호화를 사용하여 필터링하고, 피치 성분을 제거한 신호인 것을 특징으로 하는 코드북 탐색 방법.And the predetermined signal is a signal obtained by filtering a speech signal using linear prediction coding and removing a pitch component. 제 10 항에 있어서,The method of claim 10, 상기 (c) 단계는 상기 트렐리스 구조의 첫 번째 스테이지 그룹부터 마지막 스테이지 그룹까지 순차적으로 상기 (a) 단계 및 상기 (b) 단계를 수행하는 것을 특징으로 하는 코드북 탐색 방법.In the step (c), the steps of (a) and (b) are sequentially performed from the first stage group to the last stage group of the trellis structure. 제 10 항에 있어서,The method of claim 10, 상기 트렐리스 구조는 제 1 스테이지에 제 1 펄스 위치 집합이 할당되어 있고, 제 2 스테이지에 제 2 펄스 위치 집합이 할당되어 있으며, 상기 제 1 스테이지의 각 브랜치에 상기 제 1 펄스 위치 집합을 분할한 펄스 위치 집합이 할당되어 있고, 상기 제 2 스테이지의 각 브랜치에 상기 제 2 펄스 위치 집합을 분할한 펄스 위치 집합이 할당되어 있는 것을 특징으로 하는 코드북 탐색 방법.In the trellis structure, a first set of pulse positions is allocated to a first stage, a second set of pulse positions is allocated to a second stage, and the first set of pulse positions is divided into branches of the first stage. One pulse position set is allocated, and a pulse position set obtained by dividing the second pulse position set is allocated to each branch of the second stage. 제 13 항에 있어서,The method of claim 13, 상기 제 1 펄스 위치 집합과 상기 제 2 펄스 위치 집합 중 적어도 하나는 펄스 위치가 배타적인 복수 개의 소정 집합들의 합집합인 것을 특징으로 하는 코드북 탐색 방법.And at least one of the first set of pulse positions and the second set of pulse positions is a union of a plurality of predetermined sets of which pulse positions are exclusive. 제 10 항에 있어서,The method of claim 10, 상기 트렐리스 구조의 초기 스테이트를 제1 소정 개수로 제약하고, 상기 제약된 각 초기 스테이트에 대응하는 마지막 스테이트를 제2 소정 개수로 제약하는 단계를 더 포함하는 것을 특징으로 하는 코드북 탐색 방법.And constraining the initial states of the trellis structure to a first predetermined number and constraining the last state corresponding to each of the constrained initial states to a second predetermined number. 제 15 항에 있어서,The method of claim 15, 상기 (c) 단계는, 상기 트렐리스 구조의 첫 번째 스테이지 그룹부터 소정 번째 스테이지 그룹까지 순차적으로 상기 (a) 단계 및 상기 (b) 단계를 수행하고,In the step (c), the steps (a) and (b) are sequentially performed from the first stage group to the predetermined stage group of the trellis structure, (e) 상기 소정 번째 스테이지 그룹 내의 최후 스테이지의 어느 하나의 스테 이트에 대하여, 상기 (a) 단계 내지 상기 (c) 단계에서 선택된 경로들을 기초로 상기 스테이트에서 초기 스테이트까지 이르는 경로를 추적하여 상기 스테이트에 대응하는 초기 스테이트를 결정하고, 상기 스테이트에서 상기 제 2 소정 개수로 제약된 마지막 스테이트까지 연결되는 경로를 결정하는 단계;(e) for any one state of the last stage in the predetermined stage group, by tracking the path from the state to the initial state based on the paths selected in steps (a) to (c) Determining an initial state corresponding to, and determining a path from the state to the last state constrained to the second predetermined number; (f) 상기 최후 스테이지에서, 상기 스테이트가 아닌 다른 스테이트에 대하여 상기 (e) 단계를 수행하는 단계; 및(f) in the last stage, performing step (e) for a state other than the state; And (g) 상기 (e) 단계 및 상기 (f) 단계에서 결정된 경로 상의 스테이트에 대하여 상기 (a) 단계 및 상기 (b) 단계를 수행하는 단계를 더 포함하고,(g) further performing steps (a) and (b) for the state on the path determined in steps (e) and (f), 상기 (d) 단계는, 상기 (a) 단계, 상기 (b) 단계, 상기 (c) 단계 및 상기 (g) 단계에서 선택된 경로들을 포함하는 경로들 중에서 상기 소정 신호와 가장 일치하는 펄스 위치들에 대응하는 경로를 선택하는 것을 특징으로 하는 코드북 탐색 방법.Step (d) may be performed at pulse positions that most closely match the predetermined signal among paths including the paths selected in steps (a), (b), (c), and (g). And selecting a corresponding route. 제 16 항에 있어서,The method of claim 16, 상기 트렐리스 구조는 N개(=2v, 여기서 v는 정수)개의 스테이트 및 L개의 스테이지를 가지는 것을 특징으로 하고,The trellis structure is characterized by having N states (= 2 v , where v is an integer) and L stages, 상기 제1 소정 개수는 2w(여기서, 0≤w≤v)개이며 상기 제2 소정 개수는 2v-w개인 것을 특징으로 하고,The first predetermined number is 2 w (where 0 ≦ w ≦ v) and the second predetermined number is 2 vw , 상기 소정 번째 스테이지 그룹의 최후 스테이지는
Figure 112006049397901-PAT00090
스테이지인 것을 특징으로 하는 고정 코드북 탐색 방법.
The last stage of the predetermined stage group is
Figure 112006049397901-PAT00090
Fixed codebook searching method, characterized in that the stage.
음성 신호 중 소정 신호를 모델링하는 펄스들을 포함하는 코드북을 탐색하는 장치에 있어서,An apparatus for searching a codebook including pulses for modeling a predetermined signal of a speech signal, 소정 트렐리스 구조가 저장되어 있는 트렐리스 구조 데이터베이스;A trellis structure database in which a predetermined trellis structure is stored; 상기 트렐리스 구조의 각 스테이트에 대하여, 상기 스테이트와 다른 스테이트를 연결하는 적어도 하나의 브랜치에 할당된 소정 펄스 위치 집합의 펄스 위치들에 대응하는 경로들 중에서 상기 소정 신호와 가장 일치하는 소정 개수의 펄스 위치들에 각각 대응하는 소정 개수의 경로들을 선택하는 선택부;For each state of the trellis structure, a predetermined number of paths corresponding most to the predetermined signal among paths corresponding to pulse positions of a predetermined set of pulse positions assigned to at least one branch connecting the state to another state A selector for selecting a predetermined number of paths respectively corresponding to the pulse positions; 상기 소정 개수의 펄스 위치들 및 상기 소정 개수의 경로들을 저장하는 메모리부; 및A memory unit for storing the predetermined number of pulse positions and the predetermined number of paths; And 상기 메모리부에 저장된 상기 펄스 위치들 및 상기 경로들을 기초로 상기 소정 신호와 가장 일치하는 펄스 위치 정보 및 경로 정보를 출력하는 출력부;를 포함하는 것을 특징으로 하는 코드북 탐색 장치.And an output unit configured to output pulse position information and path information that most match the predetermined signal based on the pulse positions and the paths stored in the memory unit. 제 18 항에 있어서,The method of claim 18, 상기 트렐리스 구조는, 제 1 스테이지에 제 1 펄스 위치 집합이 할당되어 있고, 제 2 스테이지에 제 2 펄스 위치 집합이 할당되어 있으며, 상기 제 1 스테이지의 각 브랜치에 상기 제 1 펄스 위치 집합을 분할한 펄스 위치 집합이 할당되어 있고, 상기 제 2 스테이지의 각 브랜치에 상기 제 2 펄스 위치 집합을 분할한 펄스 위치 집합이 할당되어 있는 것을 특징으로 하는 코드북 탐색 장치.In the trellis structure, a first set of pulse positions is assigned to a first stage, a second set of pulse positions is assigned to a second stage, and the first set of pulse positions is assigned to each branch of the first stage. The divided pulse position set is assigned, and the pulse position set obtained by dividing the second pulse position set is allocated to each branch of the second stage. 제 1 항 내지 제 17 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable recording medium having recorded thereon a program for executing the method of any one of claims 1 to 17 on a computer.
KR1020060064723A 2005-07-13 2006-07-11 Method and apparatus for searching codebook KR100813260B1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN200680025725XA CN101223580B (en) 2005-07-13 2006-07-13 Method and apparatus for searching fixed codebook
PCT/KR2006/002761 WO2007027005A1 (en) 2005-07-13 2006-07-13 Method and apparatus for searching fixed codebook
CN2012100315835A CN102568490A (en) 2005-07-13 2006-07-13 Method and apparatus for searching codebook
CN2012100316039A CN102592603A (en) 2005-07-13 2006-07-13 Method and apparatus for searching fixed codebook
US11/457,251 US8560306B2 (en) 2005-07-13 2006-07-13 Method and apparatus to search fixed codebook using tracks of a trellis structure with each track being a union of tracks of an algebraic codebook
US14/020,139 US8805681B2 (en) 2005-07-13 2013-09-06 Method and apparatus to search fixed codebook using tracks of a trellis structure with each track being a union of tracks of an algebraic codebook

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050063267 2005-07-13
KR20050063267 2005-07-13

Publications (2)

Publication Number Publication Date
KR20070008413A true KR20070008413A (en) 2007-01-17
KR100813260B1 KR100813260B1 (en) 2008-03-13

Family

ID=38010610

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060064723A KR100813260B1 (en) 2005-07-13 2006-07-11 Method and apparatus for searching codebook

Country Status (4)

Country Link
US (2) US8560306B2 (en)
KR (1) KR100813260B1 (en)
CN (3) CN102592603A (en)
WO (1) WO2007027005A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100530357C (en) 2007-07-11 2009-08-19 华为技术有限公司 Method for searching fixed code book and searcher
CN100578620C (en) * 2007-11-12 2010-01-06 华为技术有限公司 Method for searching fixed code book and searcher
US7974297B2 (en) 2009-03-11 2011-07-05 Sony Corporation Quality of service queue management in home mesh network

Family Cites Families (15)

* 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
US5659659A (en) * 1993-07-26 1997-08-19 Alaris, Inc. Speech compressor using trellis encoding and linear prediction
US5602961A (en) 1994-05-31 1997-02-11 Alaris, Inc. Method and apparatus for speech compression using multi-mode code excited linear predictive coding
US6263312B1 (en) * 1997-10-03 2001-07-17 Alaris, Inc. Audio compression and decompression employing subband decomposition of residual signal and distortion reduction
US6185173B1 (en) 1998-07-31 2001-02-06 Cirrus Logic, Inc. Sampled amplitude read channel employing a trellis sequence detector matched to a channel code constraint and a post processor for correcting errors in the detected binary sequence using the signal samples and an error syndrome
SE9802990L (en) * 1998-09-04 2000-03-05 Ericsson Telefon Ab L M Speech recognition method and systems
KR100341398B1 (en) * 2000-01-27 2002-06-22 오길록 Codebook searching method for CELP type vocoder
US6701021B1 (en) 2000-11-22 2004-03-02 Canadian Space Agency System and method for encoding/decoding multidimensional data using successive approximation multi-stage vector quantization
EP1213884B1 (en) * 2000-12-04 2007-03-14 STMicroelectronics N.V. Process and device of sucessive value estimations of numerical symbols, in particular for the equalization of a data communication channel of information in mobile telephony
US6789059B2 (en) 2001-06-06 2004-09-07 Qualcomm Incorporated Reducing memory requirements of a codebook vector search
KR20030092921A (en) * 2002-05-31 2003-12-06 주식회사 현대시스콤 Method for searching of codebook index in voice system
KR100463559B1 (en) 2002-11-11 2004-12-29 한국전자통신연구원 Method for searching codebook in CELP Vocoder using algebraic codebook
KR100486732B1 (en) * 2003-02-19 2005-05-03 삼성전자주식회사 Block-constrained TCQ method and method and apparatus for quantizing LSF parameter employing the same in speech coding system
KR100556831B1 (en) * 2003-03-25 2006-03-10 한국전자통신연구원 Fixed Codebook Searching Method by Global Pulse Replacement
CN1240050C (en) * 2003-12-03 2006-02-01 北京首信股份有限公司 Invariant codebook fast search algorithm for speech coding

Also Published As

Publication number Publication date
US8805681B2 (en) 2014-08-12
US8560306B2 (en) 2013-10-15
KR100813260B1 (en) 2008-03-13
CN101223580A (en) 2008-07-16
US20070016410A1 (en) 2007-01-18
CN101223580B (en) 2012-04-18
CN102592603A (en) 2012-07-18
US20140006023A1 (en) 2014-01-02
WO2007027005A1 (en) 2007-03-08
CN102568490A (en) 2012-07-11

Similar Documents

Publication Publication Date Title
US8566106B2 (en) Method and device for fast algebraic codebook search in speech and audio coding
US5819213A (en) Speech encoding and decoding with pitch filter range unrestricted by codebook range and preselecting, then increasing, search candidates from linear overlap codebooks
JP3114197B2 (en) Voice parameter coding method
KR101370017B1 (en) Improved coding/decoding of a digital audio signal, in celp technique
KR100464369B1 (en) Excitation codebook search method in a speech coding system
US7249014B2 (en) Apparatus, methods and articles incorporating a fast algebraic codebook search technique
US20070150271A1 (en) Optimized multiple coding method
JPH08263099A (en) Encoder
KR100556831B1 (en) Fixed Codebook Searching Method by Global Pulse Replacement
US7302387B2 (en) Modification of fixed codebook search in G.729 Annex E audio coding
CA2192143C (en) Speech coding device
KR100813260B1 (en) Method and apparatus for searching codebook
EP1267328A2 (en) Method of converting codes between speech coding and decoding systems, and device and program therefor
KR100465316B1 (en) Speech encoder and speech encoding method thereof
Lee et al. Global pulse replacement method for fixedcodebook search of ACELP speech codec
Byun et al. A fast ACELP codebook search method
EP0483882B1 (en) Speech parameter encoding method capable of transmitting a spectrum parameter with a reduced number of bits
US6856955B1 (en) Voice encoding/decoding device
KR100576024B1 (en) Codebook searching apparatus and method in a speech compressor having an acelp structure
Byun et al. An Embedded ACELP Speech Coding Based on the AMR‐WB Codec
EP0753841B1 (en) Speech parameter encoding method capable of transmitting a spectrum parameter at a reduced number of bits
KR20010084468A (en) High speed search method for LSP quantizer of vocoder
Chen et al. Switching search method for pulse assignment in ITU-T G. 729D
Kim et al. Designing Algebraic Trellis Vector Code as an Efficient Excitation Codebook for ACELP Coder
Falahati et al. A proposed fast ACELP codebook search

Legal Events

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

Payment date: 20130227

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160226

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170224

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee