KR100392258B1 - Celp 보코더의 처리 지연시간을 감소하기 위한 인코딩및 디코딩 블럭 구조 및 그 구조를 이용한 인코딩 및디코딩 방법 - Google Patents

Celp 보코더의 처리 지연시간을 감소하기 위한 인코딩및 디코딩 블럭 구조 및 그 구조를 이용한 인코딩 및디코딩 방법 Download PDF

Info

Publication number
KR100392258B1
KR100392258B1 KR10-2001-0011086A KR20010011086A KR100392258B1 KR 100392258 B1 KR100392258 B1 KR 100392258B1 KR 20010011086 A KR20010011086 A KR 20010011086A KR 100392258 B1 KR100392258 B1 KR 100392258B1
Authority
KR
South Korea
Prior art keywords
encoding
decoding
delay time
processing
time
Prior art date
Application number
KR10-2001-0011086A
Other languages
English (en)
Other versions
KR20020071138A (ko
Inventor
변경진
최민석
김경수
조한진
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR10-2001-0011086A priority Critical patent/KR100392258B1/ko
Publication of KR20020071138A publication Critical patent/KR20020071138A/ko
Application granted granted Critical
Publication of KR100392258B1 publication Critical patent/KR100392258B1/ko

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture

Landscapes

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

Abstract

본 발명은 CELP 알고리즘을 사용하는 CELP 보코더에서의 인코딩 및 디코딩 처리 지연시간 감소 방법에 관한 것으로, CELP 보코더의 알고리즘에 따른 일정한 길이의 음성샘플 갯수를 한 프레임 단위로 처리하는 인코더 및 디코더 처리 지연시간을 감소시키는 방법에 있어서, 상기 한 프레임 단위에서 결정된 인코딩 처리지연시간에 대응하는 인코딩 블록을 일정한 계산량을 갖는 복수개의 서브모듈로 나누어 이 서브 모듈별로 인코딩 절차를 수행하고, 상기 서브모듈 사이에서 상기 한 프레임에 기초하여 결정된 개수의 서브프레임 단위로 디코딩을 수행하는 것을 특징으로 하여, 시스템의 전체 지연시간을 감소하여 지연시간에 의해 실시간 통화음질이 저하되는 것을 방지할 수 있고, 인코딩 블록을 위와 같이 서브 모듈로 나누어 처리하게 되면 DSP에서 실시간 구현 시 RAM의 사용량을 줄일 수 있고, 재귀적인 반복문의 사용에 제한이 없게 되는 등의 추가적인 장점도 있으며, 디코딩을 서브프레임 단위로 처리하게 되면 출력버퍼 및 디코딩의 중간 단계에서 필요한 버퍼 들의 크기를 줄일 수 있으므로 역시 RAM의 사용량을 많이 감소 시킬 수 있다는 효과도 있는 것을 특징으로 한다.

Description

CELP 보코더의 처리 지연시간을 감소하기 위한 인코딩 및 디코딩 블럭 구조 및 그 구조를 이용한 인코딩 및 디코딩 방법{Implementation method for reducing the processing time of CELP vocoder}
본 발명은 CELP 알고리즘을 사용하는 CELP 보코더에 관한 것으로, 특히 CELP 보코더에서의 지연시간 중 인코딩 및 디코딩 처리 지연시간을 줄여 실시간 통화음질 저하를 방지할 수 있는 인코딩 및 디코딩 블럭 구조를 제공하고, 이러한 인코딩 및 디코딩 블럭 구조를 통한 인코딩 및 디코딩 방법, 상기 인코딩 및 디코딩 절차를 수행하는 CELP 보코더 및 상기 CELP 보코더를 포함하는 이동 통신 시스템에 관한 것이다.
디지털 이동통신 시스템에서는 전송채널의 대역폭을 효율적으로 사용하고 고음질의 통화를 위하여 다양한 보코더 알고리즘들을 사용하고 있는데, 음성신호를 메모리에 저장하거나 전송하기 위한 음성 부호화법에는 크게 파형부호화법, 소스 부호화법, 혼성부호화법 등이 있다.
이들 중에서 혼성부호화법은 소스 부호화법의 메모리 효율성과 고음질의 파형 부호화법을 결합시킨 것이다. 혼성 부호화법들 중에서도 최근 이동 통신용 단말기의 보코더에서 널리 사용되고 있는 보코더 알고리즘 중에서 CELP(Code Excited Linear Prediction) 알고리즘은 4 - 16 Kbps의 비교적 낮은 전송율에서도 고음질을 얻을 수 있는 우수한 알고리즘으로 알려져 있다.
상기 CELP 부호화법에서는 포만트(formant) 정보는 보통 선형 예측부호화법으로 부호화하고, 음성의 주기성분인 피치 성분을 장기 예측필터를 사용하여 구한 후 나머지 잔여신호는 고정 코드북을 이용하여 부호화 한다.
일반적으로 이동통신 시스템에서 보코더를 사용하여 통신을 하는 경우의 전체 지연시간은 인코딩/디코딩 버퍼링 지연시간, 전송 지연시간, 인코딩/디코딩 처리 지연시간을 합한 것이 된다. 이러한 전체 지연시간이 약 150ms 이상이 되면 실시간 통신에서의 음질이 급격히 저하되는 것으로 알려져 있다. 이들 중에서 버퍼링 지연시간 및 전송 지연시간은 시스템 설계자가 조절할 수 없는 부분이지만, 처리 지연시간은 시스템을 구성하기에 따라서 많은 차이가 날 수 있다.
통상적인 CELP 알고리즘의 인코딩 블록에서는 선형분석(Linear Prediction analysis)을 위하여 8 KHz로 샘플링된 음성신호 160 - 240개(20 - 30msec)를 하나의 프레임 단위로 처리 하기 때문에 이러한 샘플들을 버퍼링 하는데 필요한 지연시간이 소요된다. 그리고, 디코딩 블록에서는 한 프레임에 대한 파라미터들을 버퍼링하는데 지연시간이 소요된다. 또한, 실제로 버퍼링된 데이터들을 인코딩 또는 디코딩하는데 필요한 처리 지연시간이 소요된다.
버퍼링하는데 필요한 시간은 CELP 알고리즘을 사용하는한 피할 수 없는 것이지만, 인코딩 처리 지연시간과 디코딩 처리 지연시간은 시스템을 구성하기에 따라서 줄일 수 있는 항목이다.
일반적인 방법에 따라서 시스템을 구성하면 프레임 단위로 인코딩과 디코딩을 순차적으로 처리하게 되어 디코딩에 대한 최대 처리 지연시간은 인코딩 처리 지연시간에 디코딩 처리 지연시간을 합한 것이 된다.
따라서, CELP형 보코더를 사용하는 이동통신 시스템을 구성하는데 있어서 인코딩/디코딩을 수행하는데 있어서의 처리 지연시간의 단축에 대한 연구가 진행되고 있다.
지연시간을 줄이고자 하는 선행기술의 하나로서, Juin-Hwey Chen 의 미국특허 제5651091호 "Method And Apparatus For Low-Delay CELP Speech Coding And Decoding"가 있는데, 상기 선행특허는 CELP를 기반으로 하는 8Kbps 미만의 비트율을 갖는 낮은-지연의 음성 및 음성과 유사한 신호를 부호화 하는 방법에 관한 특허발명으로서, 'backward adaption'을 사용하여 'gain parameter'와 'short-term parameter'를 추출하고, 'forward adaption'을 사용하여 'long-term synthesis parameter' 값을 조정하고 있으며, 특히 낮은 값의 피치 지연을 사용하여 음질의손상없이 낮은 전송율에서도 전체 지연시간을 적게할 수 있는 방법이 기재되어 있다.
그러나, 상기 선행특허는 알고리즘 차원에서 지연시간을 개선한 것이긴 하지만, 결국 입력 음성을 인코딩 하기 위해 버퍼링 시간을 줄이는 것을 통해 지연시간을 감소시키는 것으로서, 인코딩 또는 디코딩의 처리 지연시간을 줄임으로서 전체 지연시간을 줄이고자 하는 발명은 아니다.
본 발명은 이러한 상황에 따라 도출된 발명으로서, 전체 시스템의 처리 지연시간을 줄이기 위하여 인코딩 블록의 처리를 일정한 계산량을 갖는 서브 모듈로 세분화 하여 처리하고 각 서브 모듈을 시작하기 전에 소정의 디코딩 조건이 만족되는지 검사한 후, 만족하면 디코딩을 서브프레임 단위로 처리 함으로써 단순히 순차적으로 처리하는 경우에 비하여 전체 처리 지연시간을 줄일 수 있는 CELP 보코더의 인코딩 및 디코딩 처리 지연시간을 감소시키는 방법을 제공하는 것을 목적으로 한다.
도 1은 일반적인 CELP형 보코더의 블록도;
도 2는 기존의 순차적인 인코딩, 디코딩 블록의 처리 구성도;
도 3는 본 발명의 일실시예에 따른 인코딩 및 디코딩 블록의 구성도; 및
도 4는 본 발명에 따른 인코딩 및 디코딩 블록의 처리 순서도이다.
본 발명의 제1 측면에 따르면, CELP 보코더의 알고리즘에 따른 일정한 길이의 음성샘플 개수를 한 프레임 단위로 처리하는 인코더 및 디코더 처리 지연시간을 감소시키기 위한 인코딩 및 디코딩 블럭 구조에 있어서, 상기 인코딩 블럭은 상기 한 프레임 단위에서 결정된 인코딩 처리 지연시간에 대응하는 시간에 맞도록 일정한 계산량을 갖는 복수개의 서브모듈로 나뉘어 이 서브 모듈별로 인코딩 절차가 수행되도록 하며, 상기 디코딩 블럭은 상기 서브모듈 사이에서 상기 한 프레임에 기초하여 결정된 개수의 서브프레임 단위에 대응되게 나뉘어져 각 서브프레임별로 디코딩이 수행되도록 구성되어 있는 것을 특징으로 하는 CELP 보코더의 인코딩 및 디코딩 블록 구조가 제공된다.
또한, 본 발명의 제2 측면에 따르면, 상기 제1 측면에 따른 인코딩 및 디코딩 블럭 구조를 통해 음성신호의 인코딩 및 디코딩 절차를 수행하는 것을 특징으로 하는 CELP 보코더가 제공된다.
또한, 본 발명의 제3 측면에 따르면, CELP 알고리즘을 사용하여 음성 신호를 압축/복원하는 CELP 보코더를 사용하는 디지털 이동 통신 시스템에 있어서, 상기 CELP 보코더는, 상기 제1 측면에 따른 인코딩 및 디코딩 블럭 구조를 통해 인코딩 및 디코딩을 수행하는 것을 특징으로 하는 이동통신 시스템이 제공된다.
또한, 본 발명의 더 다른 측면에 따르면, CELP 보코더의 알고리즘에 따른 일정한 길이의 음성샘플 개수를 한 프레임 단위로 처리하는 인코더 및 디코더 처리 지연시간을 감소시키는 방법에 있어서, 상기 한 프레임 단위에서 결정된 인코딩 처리지연시간에 대응하는 인코딩 블록을 일정한 계산량을 갖는 복수개의 서브모듈로 나누어 이 서브 모듈별로 인코딩 절차를 수행하고, 상기 서브모듈 사이에서 상기 한 프레임에 기초하여 결정된 개수의 서브프레임 단위로 디코딩을 수행하는 것을 특징으로 하는 CELP 보코더의 처리 지연시간 감소 방법이 제공된다.
이하, 도면을 참고하여 기술된 본 발명의 상세한 설명을 통해, 본 발명의 더다른 장점 내지 특징을 보다 명확히 이해할 수 있을 것이다.
도 1을 참고하면, 일반적인 CELP형 음성부호화기의 블록도가 도시되어 있다. 도 1에서, 포만트 합성필터(12)는 10차의 LPC(Linear Prediction Code)전극형 구조가 일반적으로 적용된다. LPC계수는 양자화시에 왜곡이 크기 때문에 LSP(Line Spectral Pair)계수로 변환되어 부호화되고, 복호화시에 다시 LPC계수로 변환시킨다. LPC계수들은 보통 8kHz로 샘플링된 음성 신호 160개(20ms)를 하나의 프레임으로 하여 프레임 단위로 부호화하고, 5ms의 서브프레임 단위의 처리에서는 보간된 LSP를 사용한다. 또한, 여기원 파라미터는 매 5ms 서브프레임 마다 새롭게 바꾸어 준다.
전형적인 CELP 보코더는 2개의 여기원을 사용하는데, 첫 번째는 장기(피치)예측상태 또는 적응 코드북에서(11) 취하고, 나머지 잔여 여기신호는 고정 코드북에서(10) 취한다. CELP 보코더는 입력음성과 합성음성을 비교해서 에러가 최소가 될 때를 찾는 합성에 의한 분석법을 적용하기 때문에 비교적 낮은 전송율에서도 우수한 음질을 가질 수 있다(13).
일반적으로 이러한 CELP 보코더를 사용하여 음성통신을 하는 이동통신 시스템에서의 전체 지연시간은 다음과 같이 나누어볼 수 있다.
첫째, 인코더에서의 버퍼링 지연시간(DBE)은 앞에서 설명한 CELP보코더에서는 선형분석을 위해서 대개 20ms 정도를 한 프레임으로 하여 프레임 단위로 분석이 이루어지기 때문에 버퍼링을 위한 지연시간이 필요하다. 둘째, 인코더의 처리 지연시간(DPE)은 버퍼링된 음성샘플 들을 사용하여 인코딩하여 파라미터 들을 추출해내는데 필요한 시간이다. 이러한 처리 지연시간은 실시간으로 동작하기 위해서는 버퍼링 지연시간 보다 항상 적어야 한다. 셋째, 전송 지연시간(DTX) 은 무선 채널을 사용하여 인코딩된 데이터를 전송하는데 필요한 시간이다. 넷째, 디코더에서의 버퍼링 지연시간(DBD)은 디코더에서 음성을 다시 복원하려면 전송된 파라미터의 전체 정보가 필요하므로 인코더에서의 버퍼링 지연시간과 마찬가지로 디코딩 할 전체 데이터를 버퍼링하는데 필요한 지연시간 이다. 다섯째, 디코더의 처리 지연시간(DPE)는 수신된 파라미터 정보를 이용하여 원래의 음성신호를 복원하는데 필요한 시간이다.
앞에서 언급한 지연시간 들 중에서 전송 지연시간은 전송경로에 따라 결정되어지고, 버퍼링 지연시간은 시스템에서 사용될 알고리즘에 따라 결정되어 진다. 그러므로, 시스템을 구성하는 설계자가 조정 가능한 항목은 인코더, 디코더의 처리 지연시간 뿐이다.
본 발명에서는 CELP 보코더를 사용하는 시스템에서의 인코더/디코더 처리 지연시간을 줄이기 위하여 인코더 블록을 적은 단위의 일정한 계산량 또는 처리시간을 갖는 서브 모듈로 나누어 인코딩을 수행하도록 하고, 각 서브모듈을 처리하기 전에 디코딩 할 조건을 조사하여 디코딩을 수행할 지의 여부를 결정하여 조건이 만족되면 디코딩을 서브프레임 단위로 수행하도록 구성하였다.
CELP 보코더는 음성신호를 압축하는 인코딩 처리 과정과 압축된 음성신호를 원래의 음성신호로 복원하는 디코딩 과정으로 구성 되어있으며 처리 시간의 대부분은 인코딩 과정에서 소요된다.
여기서, 일반적인 CELP 보코더의 인코딩 처리 과정을 살펴본다.
통상적으로, 나이퀴스트(Nyquist) 표본화 이론에 따라, 신호 최대 주파수(여기서는 일반적인 음성신호의 최대 주파수 범위를 4kHz이하로 가정함)의 두 배인 8kHz로 처리하고 있으며, 따라서, 본원이 적용되는 CELP 보코더의 인코딩 블록에서는 인코딩 과정은, 음성이 8000samples/sec 로 샘플링되어 보코더의 입력으로 들어가면 20ms에 해당되는 샘플(160개샘플)을 하나의 프레임으로 하여 음성신호를 처리하게 되는데, 8kHz로 샘플링된 음성신호를 입력으로 받아 20msec의 프레임 단위로 압축 과정이 수행된다.
한 프레임의 음성신호에서 음성의 포만트 성분을 나타내는 10개의 LPC 계수를 구한 후 양자화 오차에 강한 LSP 주파수로 변환한다.
다음으로 최적의 피치 파라미터와 코드북 파라미터를 얻기 위하여 피치검색과 코드북 검색 과정을 거치게 된다. 피치검색과 코드북 검색은 음질의 저하를 막기 위하여 5ms의 음성신호(40개샘플)에 대하여 한번씩 수행 한다. 그러므로, 한 프레임에 4번의 피치 검색 과정 및 코드북 검색 과정을 거치게 된다. 피치검색 과정에서는 합성음성을 만들어 입력음성과 비교하여 오차가 최소가 되는 피치지연과 피치이득을 찾게 된다. 합성음성을 만드는 과정에서 앞에서 구한 LSP 파라미터를 5ms의 각 서브프레임에 대하여 선형보간 한 후 다시 LPC 계수로 변환하는 과정이필요하게 된다. 마지막으로, 음성의 포만트 성분과 피치 성분을 걸러내고 남은 나머지 잔여신호에 대한 정보를 코드북에서 찾게 되는데, 이때도 코드북으로부터 합성된 합성음성과 입력음성을 비교하는 방법으로 비교오차가 최소가 되는 코드북 인덱스를 찾게 된다. 결과적으로, 20ms의 음성 신호에서 LSP 주파수, 피치지연(L), 피치이득(b), 코드북 인덱스(I), 코드북 이득(G) 등의 음성의 특성을 나타내는 파라미터들을 추출하여 전송함으로써 원래의 음성신호를 압축할 수 있게 된다.
지금부터, 도 2 내지 도 4를 참고하여 본 발명의 적절한 실시예를 설명하도록 하겠다.
도 2를 참고하면, 본 발명의 일실시예의 구성을 설명하기 위한 예로써, 20ms를 한 프레임으로 하는 CELP 보코더를 가정한다. 그리고, 앞에서 설명된 인코딩 과정을 처리하기 위해 소요되는 처리 지연시간(21)을 16ms, 디코딩 과정을 처리하는데 소요되는 처리 지연시간(22)을 4ms로 가정하였다. 실시간으로 동작하기 위해서는 다음 프레임의 음성신호가 버퍼링 되기 전까지 현재 프레임에 대한 인코딩 과정을 끝내야만 한다.
도 2에 도시된 바와 같이, 수신한 음성 데이터 패킷을 디코딩 하여 160개의 복원된 음성샘플을 출력하는데 소요되는 최대 지연시간은 20ms까지 될 수 있다.
도 3을 참고하면, 본 발명의 일실시예에 따른 인코딩/디코딩 블록의 처리 블록이 도시되어 있는데, 인코딩 처리 블록을 일정한 계산량을 갖는 8개의 서브 모듈로 나누고(enc_1,..., enc_8)(31), 각 모듈을 수행하기 전에 디코딩 할 조건을 검사하여 조건이 만족되면 디코딩을 4개의 서브프레임 단위(32)로 수행하는 것으로, 시스템의 처리 지연시간을 줄일 수 있게 된다.
도 3에 도시된 본 발명에 따른 일실시예의 인코딩/디코딩 블록도 앞서 도 2에서와 마찬가지로 인코딩 전체 처리시간을 16ms, 디코딩 전체 처리시간을 4ms로 가정하고, 인코딩을 일정한 계산량을 갖는 8개의 서브 모듈로 나누었으므로 서브 모듈을 처리하는데 필요한 시간은 2ms가 된다. 그리고, 디코딩도 4개의 서브프레임 단위로 처리하므로 복원된 음성 샘플이 처음으로 나오기 시작하는데 걸리는 시간은 3ms 밖에 되지 않는다. 이것은 도 2와 같은 종래 처리 방법에 비해 처리 지연시간이 약 85%정도 감소한 것이다.
그러나, 디코딩을 서브프레임 단위로 수행하게 되면 출력음성이 40 샘플씩 만들어 지기 때문에, 160샘플을 한번에 만들 때와 달리 출력음성이 출력 음성이 끊어질 수 있다. 이러한 문제를 해결하기 위해서는 연속되는 서브프레임 단위의 디코딩을 일정한 시간 간격 내에 수행해 주어야 한다.
도 3은 본 발명의 적절한 일실시예를 도시한 것으로, 유의할 점은 실제 구현시에는 도 3에 도시된 바와 같이, 인코더 서브 모듈 2개를 수행한 후 디코딩을 수행해야 한다는 것은 아니다. 출력음성이 끊기지 않기 위해서는 도 4와 같이 인코딩 서브 모듈을 수행하기 전에 현재의 디코딩 출력 샘플카운터(os_count)(41)의 값이 다음 인코딩 서브 모듈을 수행하는데 걸리는 시간 보다 적은 경우에는 새로운 서브프레임에 대한 디코딩을 수행(42)하여야 한다.
도 4를 참고하면, 디코딩을 시작 할 때 os_count의 값을 0으로 리셋하고, 한 샘플이 출력될 때 마다 os_count의 값이 1씩 증가되는 것을 도시하고 있다.
출력 샘플 간의 간격은 125㎲(8 KHz)이므로 도 4에서의 os-count 값이 24가 되면 40-24=16 샘플= 16*125㎲ = 2ms 가 되므로 인코딩 서브 모듈의 처리시간(2ms)과 같아지므로 다음 서브프레임에 대한 디코딩을 수행하도록 한다. 이 때, 디코딩의 출력 버퍼의 크기는 56개(=40+16)가 되어야 한다. 기존의 순차적인 방법대로 디코딩을 수행하게 되면 출력버퍼의 크기는 160개가 되어야 한다.
다음은 CELP 보코더의 하나인 GSM-EFR 보코더의 실제 계산량을 조사하여 인코딩 블록을 일정한 계산량을 갖는 서브 모듈로 나누고, 앞에서 설명한 방법에 의해 인코딩, 디코딩 블록을 구현하였을 때의 실시 예를 보인 것이다.
표 1에서는 인코더를 8개의 일정한 계산량을 갖는 서브 모듈로 나누는데 있어 기능블록을 고려 하는 것이 프로그램의 구성에 효율적이므로 각 서브 모듈 들의 인코더에서 차지하는 계산량을 보면 최대 15.8 % 부터 최소 1.86 % 까지로 구성되어 있다. 표 1에서 마지막 열은 전체 계산량이 24MIPS인 이러한 보코더를 30MIPS의 속도를 갖는 DSP에서 수행하였을 때 소요되는 시간을 표시한 것이다.
이러한 실시예에서 기존의 순차적인 방법을 적용하면 최대 처리 지연시간은 16ms가 되지만, 본 발명의 방법을 적용하면 최대 처리 지연시간은 계산량이 제일 큰 enc_7일 때의 처리시간 2.21ms와 한 서브프레임에 대한 디코딩 처리 시간 0.5ms를 합하여 약 2.71ms가 된다. 그러므로, 본 발명의 실시 예에서는 기존의 방법에 비하여 약 17% 정도의 처리 지연시간을 갖는 시스템을 구현 하였다.
도 3에서 설명한 15%보다 2% 정도 더 증가된 이유는 인코딩 블록을 서브 모듈로 나눌 때 정확히 같은 계산량을 갖도록 나누지 못했기 때문이다.
본 발명에 따른 CELP 보코더의 처리 지연시간을 감소시키는 방법에서는, 인코딩 블록을 계산량이 일정한 복수개, 구체적으로 8개의 서브 모듈로 나누고, 인코딩의 각 서브모듈의 처리 사이에서 서브프레임 단위로 디코딩을 수행함으로써 기존의 순차적으로 처리되는 인코딩/디코딩 과정에 비해 약 15%의 처리 지연시간으로 시스템을 구현할 수 있다.
이와 같이 처리 지연시간을 줄임으로써 시스템의 전체 지연시간을 감소하여 지연시간에 의해 실시간 통화음질이 저하되는 것을 방지할 수 있다.
또한, 인코딩 블록을 위와 같이 서브 모듈로 나누어 처리하게 되면 DSP에서 실시간 구현 시 RAM의 사용량을 줄일 수 있고, 재귀적인 반복문의 사용에 제한이 없게 되는 등의 추가적인 장점도 있다.
그리고, 디코딩을 서브프레임 단위로 처리하게 되면 출력버퍼 및 디코딩의 중간 단계에서 필요한 버퍼 들의 크기를 줄일 수 있으므로 역시 RAM의 사용량을 많이 감소 시킬 수 있다는 효과도 있다.
지금까지 설명은 본 발명을 설명하기 위한 적절한 실시예에 관한 것으로 본 발명이 이것으로 제한되는 것은 아니며, 당업자에게는 첨부한 특허청구범위에 기재되어 있는 본 발명의 정신 내지 범위를 벗어나지 않고 다양한 수정, 치환 내지 변경이 가능함을 명백한 것이다.

Claims (7)

  1. 소정의 인코딩 및 디코딩 블록구조를 이용하여 CELP 보코더의 알고리즘에 따른 일정한 길이의 음성샘플 개수를 한 프레임 단위로 처리하는 인코더 및 디코더 처리 지연시간을 감소시키는 방법에 있어서,
    상기 인코딩 블럭은 상기 한 프레임 단위에서 결정된 인코딩 처리 지연시간에 대응하는 시간에 맞도록 일정한 계산량을 갖는 복수개의 서브모듈로 나뉘어 이 서브 모듈별로 인코딩 절차가 수행되도록 하며,
    상기 디코딩 블럭은 상기 서브모듈 사이에서 상기 한 프레임에 기초하여 결정된 개수의 서브프레임 단위에 대응되게 나뉘어져 각 서브프레임별로 디코딩이 수행되도록 구성되어 있는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 한 프레임의 처리 지연시간이 20ms 인 경우,
    상기 인코딩 블럭은 각각 2ms 의 처리시간을 갖는 8개의 서브모듈로 구성되고, 상기 디코딩 블럭은 각각 1ms 의 처리시간을 갖는 4개의 서브프레임으로 구성되는 것을 특징으로 하는 방법.
  3. CELP 알고리즘을 사용하여 소정의 인코딩 및 디코딩 블록 구조를 통해 일정한 길이의 음성샘플 개수를 한 프레임 단위로 처리하는 인코딩 및 디코딩 절차를 수행하는 CELP 보코더에 있어서,
    상기 인코딩 블록 구조는 상기 한 프레임 단위에서 결정된 인코딩 처리 지연시간에 대응하는 시간에 맞도록 일정한 계산량을 갖는 복수개의 서브모듈로 나뉘어 이 서브 모듈별로 인코딩 절차가 수행되도록 구성되고, 및
    상기 디코딩 블록 구조는 상기 서브모듈 사이에서 상기 한 프레임에 기초하여 결정된 개수의 서브프레임 단위에 대응되게 나뉘어져 각 서브프레임별로 디코딩이 수행되도록 구성되며,
    상기 한 프레임의 처리 지연시간이 20ms 인 경우,
    상기 인코딩 블럭은 각각 2ms 의 처리시간을 갖는 8개의 서브모듈로 구성되고, 상기 디코딩 블럭은 각각 1ms 의 처리시간을 갖는 4개의 서브프레임으로 구성되는 것을 특징으로 하는 CELP 보코더.
  4. CELP 알고리즘을 사용하여 소정의 인코딩 및 디코딩 블록 구조를 통해 일정한 길이의 음성샘플 개수를 한 프레임 단위로 처리하는 인코딩 및 디코딩 절차를 수행하는 CELP 보코더를 사용하는 디지털 이동 통신 시스템에 있어서,
    상기 인코딩 블록 구조는 상기 한 프레임 단위에서 결정된 인코딩 처리 지연시간에 대응하는 시간에 맞도록 일정한 계산량을 갖는 복수개의 서브모듈로 나뉘어 이 서브 모듈별로 인코딩 절차가 수행되도록 구성되고, 및
    상기 디코딩 블록 구조는 상기 서브모듈 사이에서 상기 한 프레임에 기초하여 결정된 개수의 서브프레임 단위에 대응되게 나뉘어져 각 서브프레임별로 디코딩이 수행되도록 구성되며,
    상기 한 프레임의 처리 지연시간이 20ms 인 경우,
    상기 인코딩 블럭은 각각 2ms 의 처리시간을 갖는 8개의 서브모듈로 구성되고, 상기 디코딩 블럭은 각각 1ms 의 처리시간을 갖는 4개의 서브프레임으로 구성되는 것을 특징으로 하는 이동통신 시스템.
  5. CELP 보코더의 알고리즘에 따른 일정한 길이의 음성샘플 개수를 한 프레임 단위로 처리하는 인코더 및 디코더 처리 지연시간을 감소시키는 방법에 있어서,
    상기 한 프레임 단위에서 결정된 인코딩 처리지연시간에 대응하는 인코딩 블록을 일정한 계산량을 갖는 복수개의 서브모듈로 나누어 이 서브 모듈별로 인코딩 절차를 수행하고, 상기 서브모듈 사이에서 상기 한 프레임에 기초하여 결정된 개수의 서브프레임 단위로 디코딩을 수행하는 것을 특징으로 하는 CELP 보코더의 처리 지연시간 감소 방법.
  6. 제 5 항에 있어서,
    상기 서브 프레임 단위로 수행되는 디코딩 절차는:
    상기 각 서브 모듈의 인코딩 절차를 수행하기 전에 소정의 디코딩 조건을 검사하여 조건을 만족하는 경우 디코딩을 수행하는 것을 특징으로 하는 CELP 보코더의 처리 지연시간 감소 방법.
  7. 제 6 항에 있어서,
    상기 디코딩 수행은,
    상기 서브 프레임 단위로 수행되는 디코딩에 따라 결정되는 출력음성의 샘플개수에서 현재의 디코딩 출력 샘플 카운터(os_count)값의 차이값으로 계산된 시간이 다음 인코딩 서브모듈이 수행되는데 걸리는 시간에 비해 큰지를 판단하는 제1 단계;
    상기 제1 단계 결과, 큰 경우 디코딩 서브프레임을 수행하는 제2 단계; 및
    상기 제1 단계 결과, 크지 않은 경우 다음 인코딩 서브모듈을 수행하는 제3 단계로 이루어지며,
    상기 디코딩 출력 샘플 카운터(os_count)의 초기값은 "0"으로 설정하고, 한 샘플이 출력될 때마다 "1"씩 증가시키는 것을 특징으로 하는 CELP 보코더의 처리 지연시간 감소 방법.
KR10-2001-0011086A 2001-03-05 2001-03-05 Celp 보코더의 처리 지연시간을 감소하기 위한 인코딩및 디코딩 블럭 구조 및 그 구조를 이용한 인코딩 및디코딩 방법 KR100392258B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0011086A KR100392258B1 (ko) 2001-03-05 2001-03-05 Celp 보코더의 처리 지연시간을 감소하기 위한 인코딩및 디코딩 블럭 구조 및 그 구조를 이용한 인코딩 및디코딩 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0011086A KR100392258B1 (ko) 2001-03-05 2001-03-05 Celp 보코더의 처리 지연시간을 감소하기 위한 인코딩및 디코딩 블럭 구조 및 그 구조를 이용한 인코딩 및디코딩 방법

Publications (2)

Publication Number Publication Date
KR20020071138A KR20020071138A (ko) 2002-09-12
KR100392258B1 true KR100392258B1 (ko) 2003-07-22

Family

ID=27696311

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0011086A KR100392258B1 (ko) 2001-03-05 2001-03-05 Celp 보코더의 처리 지연시간을 감소하기 위한 인코딩및 디코딩 블럭 구조 및 그 구조를 이용한 인코딩 및디코딩 방법

Country Status (1)

Country Link
KR (1) KR100392258B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI408935B (zh) * 2007-12-21 2013-09-11 Inst Information Industry 封包傳送排程系統、方法與記錄媒體

Also Published As

Publication number Publication date
KR20020071138A (ko) 2002-09-12

Similar Documents

Publication Publication Date Title
EP0409239B1 (en) Speech coding/decoding method
US6202046B1 (en) Background noise/speech classification method
US7016831B2 (en) Voice code conversion apparatus
US6694292B2 (en) Apparatus for encoding and apparatus for decoding speech and musical signals
EP0573216B1 (en) CELP vocoder
KR101455915B1 (ko) 일반 오디오 및 음성 프레임을 포함하는 오디오 신호용 디코더
KR100487943B1 (ko) 음성 코딩
US5913187A (en) Nonlinear filter for noise suppression in linear prediction speech processing devices
US20100010810A1 (en) Post filter and filtering method
JPH02155313A (ja) 符号化方法
US5659659A (en) Speech compressor using trellis encoding and linear prediction
EP1019907A2 (en) Speech coding
EP1096476A2 (en) Speech decoding gain control for noisy signals
US20030065507A1 (en) Network unit and a method for modifying a digital signal in the coded domain
US20080162124A1 (en) Transmitter and receiver for speech coding and decoding by using additional bit allocation method
JPH1063297A (ja) 音声符号化方法および装置
US7684978B2 (en) Apparatus and method for transcoding between CELP type codecs having different bandwidths
JP2002221994A (ja) 音声信号の符号列のパケット組立方法、装置及びパケット分解方法、装置並びにこれらの方法を実行するプログラム、プログラムを記録する記録媒体
CA2293165A1 (en) Method for transmitting data in wireless speech channels
KR100392258B1 (ko) Celp 보코더의 처리 지연시간을 감소하기 위한 인코딩및 디코딩 블럭 구조 및 그 구조를 이용한 인코딩 및디코딩 방법
KR100341398B1 (ko) 씨이엘피형 보코더의 코드북 검색 방법
JP3088163B2 (ja) Lsp係数の量子化方法
JP3496618B2 (ja) 複数レートで動作する無音声符号化を含む音声符号化・復号装置及び方法
JP4597360B2 (ja) 音声復号装置及び音声復号方法
RU2792658C1 (ru) Устройство кодирования аудио, способ кодирования аудио, программа кодирования аудио, устройство декодирования аудио, способ декодирования аудио и программа декодирования аудио

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: 20120629

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20130624

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee