KR101008508B1 - 패킷 손실 후의 디코더 상태의 리페이징 - Google Patents

패킷 손실 후의 디코더 상태의 리페이징 Download PDF

Info

Publication number
KR101008508B1
KR101008508B1 KR1020087015128A KR20087015128A KR101008508B1 KR 101008508 B1 KR101008508 B1 KR 101008508B1 KR 1020087015128 A KR1020087015128 A KR 1020087015128A KR 20087015128 A KR20087015128 A KR 20087015128A KR 101008508 B1 KR101008508 B1 KR 101008508B1
Authority
KR
South Korea
Prior art keywords
signal
frame
audio signal
decoder
delete delete
Prior art date
Application number
KR1020087015128A
Other languages
English (en)
Other versions
KR20090039662A (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 브로드콤 코포레이션
Publication of KR20090039662A publication Critical patent/KR20090039662A/ko
Application granted granted Critical
Publication of KR101008508B1 publication Critical patent/KR101008508B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/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/0204Speech 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 subband decomposition
    • 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/005Correction of errors induced by the transmission channel, if related to the coding algorithm
    • 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/022Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/04Time compression or expansion
    • G10L21/043Time compression or expansion by changing speed
    • G10L21/045Time compression or expansion by changing speed using thinning out or insertion of a waveform
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Quality & Reliability (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

디코더의 상태를 갱신하기 위한 기술이 기재된다. 이 기술에 따르면, 디코더 상태는 프레임 경계에서 합성된 출력 오디오 신호로 정렬된다. 외삽 신호는 상기 합성된 출력 오디오 신호로부터 생성된다. 시간 지연은 상기 외삽 신호와 일련의 프레임들 중 손실 프레임 후의 첫 번째 수신 프레임과 관련된 디코딩된 오디오 신호 사이에서 계산되고, 상기 시간 지연은 상기 외삽 신호와 상기 디코딩된 오디오 신호 사이의 위상 차이를 나타낸다. 이후에 상기 디코더 상태는 상기 시간 지연에 기초하여 재설정된다.

Description

패킷 손실 후의 디코더 상태의 리페이징{RE-PHASING OF DECODER STATES AFTER PACKET LOSS}
본원 발명은 스피치 또는 오디오 코더에서 패킷 손실의 품질 저하 효과를 은닉하는 시스템 및 방법에 관한 것이다.
패킷 네트워크를 통한 음성(voice) 또는 오디오 신호의 디지털 전송에 있어서, 인코딩된 음성/오디오 신호들은 일반적으로 프레임 단위로 분할되며, 이어서 패킷 단위로 패키징되는데, 여기서 각 패킷은 하나 또는 그 이상의 인코딩된 음성/오디오 데이터의 프레임들을 포함할 수 있다. 이어서 패킷들은 패킷 네트워크를 거쳐 전송된다. 때로는 몇몇 패킷들이 손실되기도 하고, 때로는 어떤 패킷들은 너무 늦게 도착하여 쓸모가 없게 되어 손실된 것으로 간주되기도 한다. 이러한 패킷 손실은 특수한 기술들을 이용하여 패킷 손실의 영향들을 은닉하지 않는 한 오디오 품질에 상당한 저하를 야기할 수 있다.
종래에 오디오 신호의 외삽법(extrapolation)에 기초한 블록 독립 코더들(block-independent coders)이나 전대역 예측 코더들을 위한 패킷 손실 은닉(packet loss concealment, PLC) 방법들이 있다. 이러한 PLC 기법들에는 Chen의 미국 특허 출원 번호 제11/234,291호 "Packet Loss Concealment for Block- Independent Speech Codecs"와 Chen의 미국 특허 출원 번호 제10/183,608호 "Method and System for Fram Erasure Concealment for Predictive Speech Coding Based on Extrapolation of Speech Waveform"에 설명된 기술들이 포함된다. 그러나, 그러한 기술들로는 대응할 수 없는 부분대역에 특정적인 구조상의 문제점들이 있기 때문에, 이들 출원에 설명된 기술들은 ITU-T 권고안 G.722 광대역 스피치 코더와 같은 부분대역 예측 코더에는 직접적으로 적용될 수 없다. 또한, 각 부분대역에 대해, G.722 코더는 그라디언트 방식(gradient method)에 기반하여 양자화기 계단 크기 및 예측기 계수들의 샘플별 역방향 적응(backward adaptation) 기법을 이용하는 ADPCM(Adaptive Differential Pulse Code Modulation) 예측 코더를 이용하며, 이러한 점은 종래의 PLC 기술들에 의해서는 대응되지 않는 특별한 해결 과제들을 낳는다. 따라서, G.722와 같은 부분대역 예측 코더들을 위해 특별히 설계된 적절한 PLC 방법에 대한 요구가 있어왔다.
본원 발명은 부분대역 예측 코더에서 패킷 손실의 품질 저하 효과를 은닉하기 위해 유용하다. 본원 발명은 특별히 오디오 파형 외삽 기술을 부분대역 예측 코더에 적용할 때 일부 부분대역의 특정한 구조적 문제들을 언급한다. 본원 발명은 또한 일반적으로 역방향 적응식 ADPCM 코더를 위한 PLC 시도를 언급하고, 특별히 G.722 부분대역 ADPCM 코더를 언급한다.
특히, 인코딩된 오디오 신호를 나타내는 일련의 프레임들을 디코딩하도록 구성된 디코더의 상태를 갱신하기 위한 방법이 기재된다. 이 방법에 따르면, 상기 일련의 프레임들 중 손실 프레임과 관련된 출력 오디오 신호가 합성된다. 상기 디코더 상태는 프레임 경계에서 상기 합성된 출력 오디오 신호로 정렬하기 위해 설정된다. 외삽 신호는 상기 합성된 출력 오디오 신호에 기초하여 생성된다. 시간 지연은 상기 외삽 신호와 상기 일련의 프레임들 중 손실 프레임 후의 첫 번째 수신 프레임과 관련된 디코딩된 오디오 신호 사이에서 계산되고, 상기 시간 지연은 상기 외삽 신호와 상기 디코딩된 오디오 신호 사이의 위상 차이를 나타낸다. 이후에 상기 디코더 상태는 상기 시간 지연에 기초하여 재설정된다.
시스템이 또한 본원에 기재된다. 상기 시스템은 디코더, 오디오 신호 합성기, 및 디코더 상태 갱신 재구축을 포함한다. 상기 디코더는 인코딩된 오디오 신호를 나타내는 일련의 프레임들 중 수신 프레임들을 디코딩하도록 구성된다. 상기 오디오 신호 합성기는 상기 일련의 프레임들 중 손실 프레임과 관련된 출력 오디오 신호를 합성하도록 구성된다. 상기 디코더 상태 갱신 로직(logic)부는 상기 합성된 출력 오디오 신호의 생성 후에 프레임 경계에서 상기 합성된 출력 오디오 신호로 정렬하기 위해 상기 디코더의 상태를 설정하고, 상기 합성된 출력 오디오 신호에 기초하여 외삽 신호(extrapolated signal)를 생성하고, 상기 외삽 신호와 상기 일련의 프레임들 중 손실 프레임 후의 첫 번째 수신 프레임과 관련된 디코딩된 오디오 신호 사이의 시간 지연을 계산하고, 상기 시간 지연에 기초하여 상기 디코더 상태를 재설정하도록 구성된다. 상기 시간 지연은 상기 외삽 신호와 상기 디코딩된 오디오 신호 사이의 위상 차이를 나타낸다.
컴퓨터 프로그램 제품이 또한 본원에 기재된다. 상기 컴퓨터 프로그램 제품은 인코딩된 오디오 신호를 나타내는 일련의 프레임들을 디코딩하기 위해 구성된 디코더의 상태를 갱신하도록 프로세서(processor)를 활성화하는 컴퓨터 프로그램 로직(logic)이 기록된 컴퓨터 판독가능 매체(computer-readable medium)를 포함한다. 상기 컴퓨터 프로그램 로직은 제 1 수단, 제 2 수단, 제 3 수단, 제 4 수단, 및 제 5 수단을 포함한다. 상기 제 1 수단은 상기 일련의 프레임들 중 손실 프레임과 관련된 출력 오디오 신호를 합성하도록 상기 프로세서를 활성화한다. 상기 제 2 수단은 프레임 경계에서 상기 합성된 출력 오디오 신호로 정렬하기 위해 상기 디코더 상태를 설정하도록 상기 프로세서를 활성화한다. 상기 제 3 수단은 상기 합성된 출력 오디오 신호에 기초하여 외삽 신호(extrapolated signal)를 생성하도록 상기 프로세서를 활성화한다. 상기 제 4 수단은 상기 외삽 신호와, 상기 일련의 프레임들 중 손실 프레임 후의 첫 번째 수신 프레임과 관련된 디코딩된 오디오 신호 사이의 시간 지연을 계산하도록 상기 프로세서를 활성화하고, 상기 시간 지연은 상기 외삽 신호와 상기 디코딩된 오디오 신호 사이의 위상 차이를 나타낸다. 상기 제 5 수단은 상기 시간 지연에 기초하여 상기 디코더 상태를 재설정하도록 상기 프로세서를 활성화한다.
본원 발명의 추가적인 특징들 및 장점들뿐만 아니라 본원 발명의 다양한 실시예의 구조 및 동작이 첨부된 도면과 관련하여 이하 상세히 기재된다. 본원 발명은 여기에 기재된 특정 실시예에 제한되지 않는다는 것을 주지해야 한다. 이 실시예들은 설명하기 위한 목적으로만 본원에 제시된다. 추가적인 실시예들은 본원에 포함된 내용에 기초하여 당해 기술의 숙련자에게 명백할 것이다.
첨부된 도면들은 본 명세서에 일체화되고 명세서의 일부를 이루는 것으로서, 본 발명의 하나 또는 여러 실시예들을 예시하며, 상세한 설명과 더불어 본 발명의 목적, 장점들 및 원리들을 설명하는 기능과 당해 기술 분야의 숙련된 자가 본 발명을 실시하고 이용할 수 있도록 하는 기능을 담당한다.
도 1은 기존의 ITU-T G.722 부분대역 예측 코더의 인코더 구조를 나타낸다.
도 2는 기존의 ITU-T G.722 부분대역 예측 코더의 디코더 구조를 나타낸다.
도 3은 본 발명의 일 실시예에 따른 디코더/PLC 시스템의 블록도이다.
도 4는 본 발명의 일 실시예에 따른 디코더/PLC 시스템 내에서 프레임들을 처리하여 출력 스피치 신호를 생성해내는 방법에 관한 순서도를 예시한다.
도 5는 본 발명의 일 실시예에 따른 디코더/PLC 시스템에 의해 처리될 수 있는 다양한 형태의 프레임들을 나타내는 타이밍 도이다.
도 6은 원래의 스피치 신호와 외삽에 의한 스피치 신호의 크기를 나타내는 시간축선 도면이다.
도 7은 본 발명의 일 실시예에 따른 디코딩된 스피치 신호 및 외삽에 의한 스피치 신호 사이의 시간 지연을 계산하기 위한 방법의 순서도를 예시한다.
도 8은 본 발명의 일 실시예에 따른 디코딩된 스피치 신호 및 외삽에 의한 스피치 신호 사이의 시간 지연을 계산하기 위한 2 단계(2-stage) 기법의 순서도를 예시한다.
도 9는 본 발명의 일 실시예에 따른 시간 지연 계산의 수행 동안 디코딩된 스피치 신호에 관하여 외삽에 의한 스피치 신호가 쉬프트되는 방법을 묘사한 것이다.
도 10a는 외삽에 의한 스피치 신호보다 앞서는 디코딩된 스피치 신호 및 본 발명의 일 실시예에 따른 재인코딩 동작들(re-encoding operations)에 대한 관련된 영향을 나타내는 시간축선 도면이다.
도 10b는 외삽에 의한 스피치 신호보다 뒤지는 디코딩된 스피치 신호 및 본 발명의 일 실시예에 따른 재인코딩 동작들에 대한 관련된 영향을 나타내는 시간축선 도면이다.
도 10c는 한 프레임 범위에서 동위상(in phase)인 외삽에 의한 스피치 신호 및 디코딩된 스피치 신호와, 본 발명의 일 실시예에 따른 재인코딩 동작들에 대한 관련된 영향을 나타내는 시간축선 도면이다.
도 11은 본 발명의 일 실시예에 따라, 패킷 손실 후에 부분대역 ADPCM 디코더들의 내부 상태 값들의 리페이징(rephasing)을 수행하는 방법에 관한 순서도를 설명한다.
도 12a는 본 발명의 일 실시예에 따라, 외삽에 의한 스피치 신호보다 앞서는 디코딩된 스피치 신호에 대해 시간 워핑(time-warping) 기법을 적용하는 것을 설명한다.
도 12b 및 도 12c는 각각, 본 발명의 일 실시예에 따라, 외삽에 의한 스피치 신호보다 뒤지는 디코딩된 스피치 신호에 대해 시간 워핑 기법을 적용하는 것을 설명한다.
도 13은 본 발명의 일 실시예에 따라, 시간 축을 따라 신호를 수축(shrink)시키도록 시간 워핑을 수행하는 한 방법에 관한 순서도를 설명한다.
도 14는 본 발명의 일 실시예에 따라, 시간 축을 따라 신호를 신장(stretch)시키도록 시간 워핑을 수행하는 한 방법에 관한 순서도를 설명한다.
도 15는 본 발명의 일 실시예에 따른 디코더/PLC 시스템에서 패킷 손실 후에, 미리 정해진 개수의 수신 프레임들을 초과하는 수신 프레임들을 처리하도록 구성된 로직의 블록도이다.
도 16은 본 발명의 일 실시예에 따른 디코더/PLC 시스템에서 손실된 패킷과 관련된 출력 스피치 신호를 생성할 수 있게 파형 외삽을 수행하도록 구성된 로직의 블록도이다.
도 17은 본 발명의 일 실시예에 따른 디코더/PLC 시스템 내에서 부분대역 ADPCM 디코더들의 상태값들을 갱신하도록 구성된 로직의 블록도이다.
도 18은 본 발명의 일 실시예에 따른 디코더/PLC 시스템 내에서 리페이징 및 시간 워핑을 수행하도록 구성된 로직의 블록도이다.
도 19는 본 발명의 일 실시예에 따른 디코더/PLC 시스템 내에서 패킷 손실 후에 수신된 양호한 프레임들에 대해 제한되고 제어된(constrained and controlled) 디코딩을 수행하도록 구성된 로직의 블록도이다.
도 20은 본 발명의 일 실시예에 따라, 패킷 손실이 있는 동안에 저대역(low band) ADPCM 디코더의 내부 상태 값을 갱신하는 데에 이용되는 간략화된(simplified) 저대역 ADPCM 인코더의 블록도이다.
도 21은 본 발명의 일 실시예에 따라, 패킷 손실이 있는 동안에 고대역(high band) ADPCM 디코더의 내부 상태 값을 갱신하는 데에 이용되는 간략화된 고대역 ADPCM 인코더의 블록도이다.
도 22a, 22b, 22c는 각각, 본 발명의 일 실시예에 따라, 디코딩된 스피치 신호의 시간 워핑의 적용을 보여주는 시간축선 도면들을 예시한다.
도 23은 본 발명의 일 실시예에 따른 다른 형태의 디코더/PLC 시스템의 블록도이다.
도 24는 본 발명의 일 실시예가 구현될 수 있는 컴퓨터 시스템의 블록도이다.
본 발명의 특징들 및 장점들은 도면들과 함께 다뤄질 경우에 아래에 설명된 상세한 설명으로부터 더욱 명백하게 될 것이다. 어떤 구성요소가 최초로 등장하는 도면은 그 상응하는 참조 번호의 가장 왼쪽 숫자에 의해 지시된다.
A. 소개
본 발명에 관한 다음의 상세한 설명은 본 발명과 일맥상통하는 예시적인 실시예들을 예시하는 첨부된 도면들을 참조하여 설명된다. 그 밖의 실시예들도 가능하며, 예시된 실시예들에 대해 본 발명의 사상과 범위 내에서 어느 정도의 변형이 가능할 수 있다. 따라서, 다음의 상세한 설명은 본 발명을 한정하고자 하는 것이 아니다. 다만 본 발명의 범위는 첨부된 청구범위에 의해 정의된다.
당해 기술 분야에서 숙련된 자들에게, 본 발명은, 아래에 설명된 바와 같이, 하드웨어, 소프트웨어, 펌웨어 내지 도면 상에 예시된 개체들(entities)로 구성된 여러 가지 서로 다른 실시예들의 형태로 구현될 수 있다. 특수한 제어 하드웨어를 가지고 본 발명을 구현하는 어떤 실제의 소프트웨어 코드도 본 발명을 한정하는 것이 아니다. 따라서, 본 발명의 동작 및 작동 방식은, 본 명세서에서 제공되는 상세 수준에 따라 상기 실시예들의 개조 및 변형이 가능하다는 점의 이해를 가지고 설명될 것이다.
본 명세서에서, 본 발명의 상세한 설명은 스피치(speech) 신호들의 처리에 관한 것이지만, 본 발명은 또한 다른 형태의 오디오(audio) 신호들에 관하여서도 마찬가지로 이용될 수 있다는 점이 이해되어야 한다. 따라서, "스피치(speech)" 및 "스피치 신호(speech signal)"이라는 용어들은 본 명세서에서는 순전히 설명의 편의를 위해 사용되는 것으로서, 한정하려는 것이 아니다. 관련된 기술 분야에서 숙련된 자들은 이러한 용어들이 좀더 일반적인 용어인 "오디오(audio)" 및 "오디오 신호(audio signal)"로 대체될 수 있다는 점을 이해할 것이다. 더 나아가, 비록 스피치 신호 및 오디오 신호들이 본 명세서에서 프레임들 단위로 분할되는 것으로 설명되었지만, 관련된 기술 분야에 숙련된 자들은 이러한 신호들이 또한 다른 형태의 불연속적인 세그먼트들로 분할될 수 있다는 점을, 그리고 그러한 세그먼트들은 서브 프레임과 같은 것을 포함하지만 또한 이에 한정되는 것은 아니라는 점을 이해할 것이다. 따라서, 본 명세서에서 프레임들에 관하여 수행되는 동작들에 대한 상세한 설명은 또한 다른 형태의 세그먼트들, 예를 들어 서브 프레임들 형태의 스피치 신호 또는 오디오 신호에 관하여 수행되는 유사한 동작들까지 포괄한다.
추가적으로, 이어지는 상세한 설명이 패킷 네트워크들을 거쳐 전송되는 오디오 신호의 프레임들의 손실("패킷 손실"이라고 함)에 대해 논의하기는 하지만, 본 발명은 이러한 패킷 손실 은닉에만 한정되는 것은 아니다. 예를 들어, 무선 네트워크에서 오디오 신호의 프레임들도 마찬가지로 채널의 결함으로 인해 손실될 수 있고 또는 삭제(erased)될 수도 있다. 이러한 상황들은 "프레임 삭제(frame erasure)"라고 불린다. 이러한 상황이 발생하게 되면, 출력 스피치 품질에 심각한 손상을 피하기 위해, 무선 시스템 내의 디코더는 손실된 프레임들의 품질 저하 영향을 가릴 수 있도록 "프레임 삭제 은닉(frame erasure concealment, FEC)"을 수행할 필요가 있다. PLC 또는 FEC 알고리즘에 대해, 패킷 손실 및 프레임 삭제는 같은 것, 즉 어떤 전송된 프레임들이 디코딩에는 이용가능하지 않으며, 따라서 PLC 또는 FEC 알고리즘이 손실될 프레임에 상응하는 파형의 빈 틈을 채워 프레임 손실에 따른 악영향을 가릴 수 있는 파형을 생성할 필요가 있다는 것을 의미한다. FEC 및 PLC라는 용어들이 기본적으로 동일한 종류의 기술을 가리키기 때문에 이들은 상호 교환 가능하게 이용될 수 있다. 따라서, 편의상, "패킷 손실 은닉" 즉 PLC라는 용어를 양자를 모두 가리키는 데에 이용한다.
B. 부분대역 예측 코딩에 관한 설명
본 명에서의 후반부에 설명될 본 발명의 여러 실시예들에 관한 좀더 나은 이해를 돕기 위하여, 부분대역 예측 코딩의 기본 원리들을 여기서 검토하고자 한다. 일반적으로, 부분대역 예측 코더는 입력 스피치 신호를 N≥2인 N 부분대역들로 분 할 수 있다. 일반성을 잃지 않는 상태에서, 본 명세서에서는 하나의 예로서 ITU-T G.722 코더의 2 밴드 예측 코딩 시스템이 설명된다. 관련 기술 분야의 숙련된 자들은 이러한 설명을 N 밴드 부분대역 예측 코더에 관해 용이하게 일반화시킬 수 있을 것이다.
도 1은 기존의 ITU-T G.722 부분대역 예측 코더의 인코더 구조(100)를 나타낸다. 인코더 구조(100)는 쿼드러쳐 미러 필터(quadrature mirror filter, QMF) 분석 필터 뱅크(analysis filter bank)(110), 저대역 적응 차동 펄스 코드 변조(ADPCM) 인코더(120), 고대역 ADPCM 인코더(130) 및 비트 스트림 멀티플렉서(140)를 포함한다. QMF 분석 필터 뱅크(110)는 입력 스피치 신호를 저대역 스피치 신호와 고대역 스피치 신호로 분리시킨다. 저대역 스피치 신호는 저대역 ADPCM 인코더(120)를 통해 저대역 비트 스트림으로 인코딩된다. 고대역 스피치 신호는 고대역 ADPCM 인코더(130)를 통해 고대역 비트 스트림으로 인코딩된다. 비트 스트림 멀티플렉서(140)는 저대역 비트스트림 및 고대역 비트스트림을 단일한 비트 스트림으로 다중화한다. 본 명세서에서 논의되는 패킷 전송 응용분야에서는, 이러한 출력 비트 스트림은 패킷의 형태로 묶이고 도 2에 나타낸 부분대역 예측 디코더(200)로 전송된다.
도 2에 나타낸 바와 같이, 디코더(200)는 비트 스트림 디멀티플렉서(210), 저대역 ADPCM 디코더(220), 고대역 ADPCM 디코더(230) 및 QMF 합성 필터 뱅크(240)를 포함한다. 비트 스트림 디멀티플렉서(210)는 입력 비트 스트림을 저대역 비트 스트림과 고대역 비트 스트림으로 분리시킨다. 저대역 ADPCM 디코더(220)는 저대역 비트 스트림을 디코딩하여 디코딩 저대역 스피치 신호로 만든다. 고대역 ADPCM 디코더(230)는 고대역 비트 스트림을 디코딩하여 디코딩 고대역 스피치 신호로 만든다. QMF 합성 필터 뱅크(240)는 이어서 디코딩된 저대역 스피치 신호와 디코딩된 고대역 스피치 신호를 결합하여 전대역 출력 스피치 신호로 만든다.
인코더(100) 및 디코더(200)의 구조 및 동작에 관한 좀더 상세한 사항들은 ITU-T 권고안 G.722에서 찾아볼 수 있으며, 그 전체는 본 명세서에 참고 자료로서 일체화된다.
C. 전대역 스피치 파형의 외삽에 기초한 부분대역 예측 코더를 위한 패킷 손실 은닉
본 발명의 일 실시예에 따른 고품질 PLC 시스템 및 방법이 이제 설명될 것이다. 상기 시스템 및 방법에 관한 개괄이 이 섹션에서 제공될 것이며, 상기 시스템 및 방법의 구체적인 구현에 관련된 좀더 상세한 사항들은 아래의 섹션 D에서 설명될 것이다. 예시적인 시스템 및 방법은 ITU-T 권고안 G.722 스피치 코더를 이용하여 구성된다. 그렇지만 관련 기술 분야의 숙련된 자들은 본 명세서에서 이 특정 실시예를 참조하여 설명된 많은 개념들이 다른 형태의 부분대역 예측 스피치 코더 내에서, 그리고 일반적으로 다른 기타 형태의 스피치 및 오디오 코더들에서 PLC를 수행하는 데에 유리하게 이용될 수 있다는 점을 용이하게 이해할 수 있을 것이다.
본 명세서에서 더욱 상세하게 설명될 것이지만, 본 실시예는 G.722 스피치 디코더의 16 kHz 출력 도메인에서 PLC를 수행한다. 주기적 파형 외삽을 이용하여 스피치 신호의 손실 프레임들에 관련한 파형들을 채울 수 있는데, 상기 외삽된 파형은 손실에 앞선 신호의 특성에 따라 필터링된 잡음과 믹싱된다. 부분대역 ADPCM 디코더들의 상태들을 갱신할 수 있도록, 외삽된 16 kHz 신호가 QMF 분석 필터 뱅크를 통해 통과하여 부분대역 신호들을 생성하며, 이러한 부분대역 신호들은 이어서 간략화된 부분대역 ADPCM 인코더들에 의해 처리된다. 매 패킷 손실 후에는 그러한 손실된 프레임들에 연관된 외삽된 파형으로부터 그러한 패킷 손실 이후에 수신된 양호한 프레임들에 연관된 정상적으로 디코딩된 파형으로 부드러운 전환이 제공될 수 있게, 추가적인 프로세싱이 일어날 수 있다. 무엇보다도, 부분대역 ADPCM 디코더들의 상태는 패킷 손실 후에 수신되는 첫 번째 양호 프레임에 맞춰 정렬된 위상이며, 상기 첫 번째 양호 프레임과 연관된 정상적으로 디코딩된 파형은, 정상 파형과 외삽 파형이 천이를 부드럽게 할 수 있게 중첩되어 합쳐지기 이전에, 외삽된 파형에 따라 정렬될 수 있게 시간 워핑이 이뤄진다. 계속되는 패킷 손실에 대해서는, 상기 시스템 및 방법은 점진적으로 출력 신호를 무음화시킨다(mute).
도 3은 그러한 PLC 기능을 구현하는 G.722 스피치 디코더(300)의 고 수준 블록도이다. 비록 디코더/PLC 시스템(300)이 여기서 G.722 디코더를 포함하는 것으로설명되고 있지만, 관련 기술 분야에 숙련된 자들은 여기에 설명된 많은 개념들이 여하한 N-밴드 부분대역 예측 코딩 시스템에 일반적으로 적용될 수 있는 것임을 알 수 있을 것이다. 이와 유사하게, 각 부분대역을 위한 예측 코더는 도 3에 나타난 것처럼 ADPCM 코더일 필요는 없고, 여하한 일반적인 예측 코더이면 되며, 순방향 적응식이거나 역방향 적응식 어느 것이나 가능하다.
도 3에 나타낸 바와 같이, 디코더/PLC 시스템(300)은 비트 스트림 디멀티플렉서(310), 저대역 ADPCM 디코더(320), 고대역 ADPCM 디코더(330), 스위치(336), QMF 합성 필터 뱅크(340), 전대역 스피치 신호 합성기(350), 부분대역 ADPCM 디코더 상태 갱신 모듈(360) 및 디코딩 제한 및 제어 모듈(decoding constraint and control module)(370)을 포함한다.
본 명세서에 사용된 바에 따르면, "손실 프레임" 또는 "불량 프레임"이라는 용어는 디코더/PLC 시스템(300) 측에서 수신되지 않았거나 또는 여타 형태로 정상적인 디코딩 동작에 부적합한 것으로 간주된 스피치 신호의 프레임을 말한다. "수신 프레임" 또는 "양호 프레임"은 디코더/PLC 시스템(300) 측에서 정상적으로 수신된 스피치 신호의 프레임이다. "현재 프레임"이란 현재 디코더/PLC 시스템(300)에 의해 처리되어 출력 스피치 신호를 생성 중인 프레임을 말하며, 반면에 "이전 프레임"은 종전에 디코더/PLC(300)에 의해 처리되어 출력 스피치 신호를 생성한 프레임을 말한다. "현재 프레임" 및 "이전 프레임"이라는 용어는 PLC 동작이 수행되고 있는 수신 프레임들뿐 아니라 손실 프레임들 양자 모두를 참조하는 데에 이용될 수 있다.
디코더/PLC 시스템(300)이 동작하는 방식은 이제 도 4의 순서도(400)를 참조하여 설명될 것이다. 도 4에 나타나 있듯이, 순서도(400)의 방법은 단계(402)에서 시작하며, 여기서는 디코더/PLC 시스템(300)은 현재 프레임의 프레임 형식을 결정한다. 디코더/PLC 시스템(300)은 타입 1에서 타입 6으로 각각 명명된 6 가지 다른 프레임 형식 중에서 분류한다. 도 5는 서로 다른 프레임 형식을 예시하는 시간축 선(500)을 제공한다. 타입 1 프레임은 패킷 손실 이후 8 번째의 수신 프레임 이후의 여타 수신 프레임을 말한다. 타입 2 프레임은 패킷 손실과 관련된 첫 번째 및 두 번째 손실 프레임 중의 어느 하나를 말한다. 타입 3 프레임은 패킷 손실과 관련된 세 번째 내지 여섯 번째 손실 프레임 중의 어느 하나이다. 타입 4 프레임은 패킷 손실에 관련된 여섯 번째 프레임 이후의 여타 손실 프레임 중 하나를 말한다. 타입 5 프레임은 패킷 손실에 곧바로 이어지는 여느 한 수신 프레임을 말한다. 마지막으로 타입 6 프레임은 패킷 손실에 이어지 수신된 두 번째 내지 8 번째까지의 수신 프레임 중 어느 하나를 말한다. 본 기술 분야에 숙련된 자들은 프레임의 타입들을 분류하는 기준에 관하여 기타 방식들도 본 발명의 대안적인 실시예들과 합치되는 방식으로 이용될 수 있음을 즉각 알 수 있을 것이다. 예를 들어, 다른 프레임 크기를 가진 시스템의 경우에, 각 프레임 타입 중에서 프레임의 개수가 위의 예와 다를 수 있다. 또한, 다른 코덱(다시 말해 비G.722 코덱)의 경우에, 각 프레임 타입에서의 프레임 개수가 다를 수 있다.
디코더/PLC 시스템(300)이 현재 프레임을 처리하여 출력 스피치 신호를 생성하기 위해 취하는 방식은 현재 프레임이 어떤 프레임 타입이냐에 따라 결정된다. 이는 도 4에서 일련의 결정 단계들(404, 406, 408, 410)에 의해 반영되어 있다. 구체적으로는, 만약 단계(402)에서 현재 프레임이 타입 1 프레임이라고 결정되는 경우에는, 결정 단계(404)에서 나타낸 바와 같이 첫 번째 시퀀스의 처리 단계들이 수행되어 출력 스피치 신호를 생성한다. 만약 단계(402)에서 현재 프레임이 타입 2, 타입 2, 타입 3, 또는 타입 4 프레임이라고 결정되는 경우에는, 결정 단계(406)에 서 나타낸 바와 같이 두 번째 시퀀스의 처리 단계들이 수행되어 출력 스피치 신호를 생성한다. 만약 단계(402)에서 현재 프레임이 타입 5 프레임이라고 결정되는 경우에는, 결정 단계(408)에서 나타낸 바와 같이 세 번째 시퀀스의 처리 단계들이 수행되어 출력 스피치 신호를 생성한다. 마지막으로, 만약 단계(402)에서 현재 프레임이 타입 6 프레임이라고 결정되는 경우에는, 결정 단계(410)에서 나타낸 바와 같이 네 번째 시퀀스의 처리 단계들이 수행되어 출력 스피치 신호를 생성한다. 각기 다른 프레임 타입들의 각각에 연계된 처리 단계들은 아래에서 설명될 것이다.
각각의 시퀀스에 해당하는 처리 단계들이 수행되고 나면, 결정 단계(430)에서 처리할 추가적인 프레임들이 있는지 여부에 관하여 판정이 이루어진다. 만약 추가적인 프레임들이 처리되어야 한다면, 절차는 단계(402)로 복귀한다. 그러나 만약 추가적으로 처리해야하는 프레임이 없다면, 절차는 단계(432)에 나타내었듯이 마감된다.
1. 타입 1 프레임들의 처리
순서도(400)의 단계(412)에 나타나 있듯이, 만약 현재 프레임이 타입 1 프레임이라면, 디코더/PLC 시스템(300)은 현재 프레임에 대해 정상적인 G.722 디코딩을 수행한다. 결과적으로, 디코더/PLC 시스템(300)의 블록들(310, 320, 330, 340)은 각각 기존의 G.722 디코더(200)의 해당 대응 블록들(210, 220, 230, 240)과 정확히 동일한 기능들을 수행한다. 구체적으로, 비트 스트림 디멀티플렉서(310)는 입력 비트 스트림을 저대역 비트 스트림과 고대역 비트 스트림으로 분리시킨다. 저대역 ADPCM 디코더(320)는 저대역 비트 스트림을 디코딩하여 디코딩 저대역 스피치 신호로 만든다. 고대역 ADPCM 디코더(330)는 고대역 비트 스트림을 디코딩하여 디코딩 고대역 스피치 신호로 만든다. QMF 합성 필터 뱅크(340)는 이어서 디코딩 저대역 스피치 신호와 디코딩 고대역 스피치 신호를 재결합시켜 전대역 스피치 신호(full-band speech signal)로 만든다. 타입 1 프레임들의 처리 과정 중에, 스위치(336)는 타입 1이라 적혀있는 상부 위치에 연결되며, 따라서 QMF 합성 필터 뱅크(340)의 출력 신호를 타입 1 프레임들에 대한 디코더/PLC 시스템(300)의 최종 출력 스피치 신호로서 취급한다.
단계(412)의 완료 이후에, 디코더/PLC 시스템(300)은 단계(414)에 나타낸 바와 같이, 여러 가지 상태 메모리들(state memories)을 갱신하고, 장래에 생길 수 있는 손실 프레임들에 대하여 수행될 PLC 동작들을 원활하게 하기 위한 몇 가지 처리를 수행한다. 상기 상태 메모리들은 PLC 관련 저대역 ADPCM 디코더 상태 메모리, PLC 관련 고대역 ADPCM 디코더 상태 메모리 및 전대역 PLC 관련 상태 메모리를 포함한다. 이 단계의 일부분으로서, 전대역 스피치 신호 합성기(350)는 장래의 손실 프레임의 처리 동안 수행될 가능성이 있는 스피치 파형의 외삽에 대비하여, QMF 합성 필터 뱅크(340)의 출력 신호를 내부 신호 버퍼 내에 저장한다. 부분대역 ADPCM 디코더 상태 갱신 모듈(360) 및 디코딩 제한 및 제어 모듈(370)은 타입 1 프레임들의 처리 동안에는 비활성화 상태이다. 타입 1 프레임들의 처리에 관한 좀더 상세한 사항들은 섹션 D에 설명된 디코더/PLC 시스템(300)의 구체적인 구현예를 참조하여 아래에 제공된다.
2. 타입 2, 타입 3 및 타입 4 프레임들의 처리
타입 2, 타입 3 또는 타입 4 프레임의 처리를 수행하는 동안에는, 손실 프레임에 관련된 입력 비트 스트림은 활용되지 않는다. 결과적으로, 블록들(310, 320, 330, 340)은 이들의 통상적인 기능들을 수행할 수 없으며, 따라서 비활성화된다. 대신에, 스위치(336)는 "타입 2 내지 6"이라고 명명된 아래 쪽 위치에 연결되고, 전대역 스피치 신호 합성기(350)가 활성화되어 디코더/PLC 시스템(300)의 출력 스피치 신호를 합성한다. 상기 전대역 스피치 신호 합성기(350)는 패킷 손실 바로 이전에 마지막으로 수신된 몇 개의 프레임들과 관련하여 앞서 저장된 출력 스피치 신호들을 외삽(extrapolating)함으로써 디코더/PLC 시스템(300)의 출력 스피치 신호를 합성해 낸다. 이는 순서도(400)의 단계(416)에 반영되어 있다.
전대역 스피치 신호 합성기(350)가 파형 합성 작업을 완료하고 나면, 부분대역 ADPCM 디코더 상태 갱신 모듈(360)은 단계(418)에 나타난 바와 같이, 다음 프레임에 있을 가능성이 있는 양호 프레임에 대비하여, 저대역 ADPCM 디코더(320) 및 고대역 ADPCM 디코더(330)의 내부 상태 값들을 적절하게 갱신한다. 단계(416 및 418)이 수행되는 방식은 좀더 상세하게 설명될 것이다.
a. 파형 외삽(Waveform extrapolation)
단계(416)의 파형 외삽 기능을 수행하는 데에는 많은 종래 기술들이 있다. 아래의 섹션 D에서 설명하는 디코더/PLC 시스템(300)의 구현예에서 이용되는 기술 은 2005년 9월 26일자로 출원된 Chen의 미국 특허 출원 번호 제11/234,291호 "Packe Loss Concealment for Block-Independent Speech Codecs"에 설명된 기술의 개선된 버전이다. 이제 이 기술의 높은 수준의 설명이 제공될 것이며, 좀더 상세한 사항들은 아래의 섹션 D에서 설명될 것이다.
파형 외삽 기능을 원활하게 하기 위해, 전대역 스피치 신호 합성기(350)는 수신 프레임들의 처리 과정 중에, QMF 합성 필터 뱅크(340)로부터 저장되어 있던 출력 스피치 신호를 분석하여, 피치 주기(pitch period), 단기 예측기(short-term predictor) 및 장기 예측기(long-term predictor)를 추출한다. 이들 파라미터들은 이어서 추후 이용을 위해 저장된다.
전대역 스피치 신호 합성기(350)는 2 단계 탐색(two-stage search)을 수행함으로써 피치 주기를 추출한다. 1 단계에서는, 입력 스피치 신호 또는 이의 필터링된 버전에 대해 데시메이션된(decimated) 버전에 기초한 탐색을 수행함으로써 저해상도 피치 주기(즉 "대략적 피치(coarse pitch)"를 찾아낸다. 2 단계에서는, 상기 대략적 피치는 데시메이션되지 않은 상태의(undecimated) 신호를 이용하여 이러한 대략적 피치 주변부를 탐색함으로써 정상 해상도로 세밀화(refined)된다. 이러한 2 단계 탐색 방법은 데시메이션되지 않은 도메인 내에서 단일 단계 전체 탐색 방식에 비해 대단히 낮은 계산 복잡도를 요구한다. 스피치 신호 또는 이의 필터링된 버전의 데시메이션에 앞서, 통상 데시메이션되기 전의 신호는 안티알리아싱 저대역 통과 필터(anti-aliasing low-pass filter)를 통과시킬 필요가 있다. 복잡도를 감소시킬 수 있도록 하는, 통상적인 종래 기술은 타원 필터(elliptic filter)와 같은 저차(low-order) IIR(Infinite Impulse Response) 필터를 이용하는 것이다. 그렇지만, 성능이 좋은 저차 IIR 필터는 종종 그 폴이 단위 원(unit circle)에 매우 근접하기 때문에, 16 비트 고정 소수점 연산의 경우에 올폴 섹션(all-pole section) 필터에 상응하는 필터링 동작을 수행할 때에 배정밀도(double precision) 산술 연산이 필요하게 된다.
이러한 종래 기술에 대조적으로, 상기 전대역 스피치 신호 합성기(350)는 FIR(Finite Impulse Response) 필터를 안티알리아싱 저대역 통과 필터로서 이용한다. FIR 필터를 이런 용도로 이용함으로써, 단지 단일 정밀도(single-precision) 16 비트 고정 소수점 산술 연산만이 필요할 뿐이며, FIR 필터는 데시메이션된 신호의 훨씬 낮아진 샘플링 레이트에 맞게 동작할 수 있다. 그 결과, 이러한 방식은 안티알리아싱 저대역 통과 필터의 계산상 복잡도를 대단히 감소시킬 수 있다. 예를 들어, 섹션 D에 설명된 디코더/PLC 시스템(300)의 구현에 있어서, 데시메이션되지 않은 신호는 16 kHz의 샘플링 레이트를 갖지만, 피치 추출을 위해 데시메이션된 신호는 단지 2 kHz의 샘플링 레이트만을 가질 뿐이다. 종래 기술을 이용한다면, 4차 타원 필터가 이용된다. 이러한 타원 필터의 올폴 섹션은 배정밀도 고정 소수점 산술 연산을 필요로 하며, 16 kHz 샘플링 레이트에서 동작되어야 할 필요가 있다. 이 때문에, 비록 올제로 섹션(all-zero section)은 2 kHz 샘플링 레이트로 동작할 수 있지만, 전체적인 4차 타원 필터 및 다운샘플링 동작은 0.66 WMOPS(Weighted Million Operations Per Second)의 계산 복잡도를 가진다. 반면에, 비록 상대적으로 고차인 60차 FIR 필터가 4차 타원 필터를 대체하기 위해 이용되더라도, 60차 FIR 필터는 매우 낮은 2 kHz 샘플링 레이트에서 동작하기 때문에, 전체적으로 60차 FIR 필터 및 다운샘플링 동작은 고작 0.18 WMOPS의 복잡도를 가진다(4차 타원 필터에 비해 73% 감소).
패킷 손실 중 첫 번째 손실 프레임의 시작 시점에서, 전대역 스피치 신호 합성기(350)는 캐스케이드 연결된 장기 합성 필터 및 단기 합성 필터를 이용하여, 이러한 캐스케이드 연결된 합성 필터에 대한 입력이 0으로 설정될 때에, "호출 신호(ringing signal)이라고 불리는 신호를 생성한다. 전대역 스피치 신호 합성기(350)는 이어서 피치 예측 이득(pitch prediction gain)이나 정규화 자기 상관(normalized autocorrelation)과 같은 몇몇 신호 파라미터들을 분석하여, 저장된 출력 스피치 신호 내에 "유성(voicing)"의 정도를 결정한다. 만약 이전의 출력 스피치 신호가 크게 유성의 성질인 상태라면, 그때는 상기 스피치 신호는 주기적 방식을 통해 외삽되어 현재의 불량 프레임에 대한 대체 파형을 생성할 수 있다. 이러한 주기적 파형 외삽은 마지막 수신 프레임에서 추출된 피치 주기의 세밀한 버전을 이용하여 수행된다. 만약 이전의 출력 스피치 신호가 고도로 비유성음이거나 잡음과 유사하다면, 그때는 크기가 조절된(scaled) 무작위 잡음을 단기 합성 필터(short-term synthesis filter)에 통과시킴으로써 현재의 불량 프레임에 대한 대체 신호를 생성한다. 만약 유성음의 정도가 두 극단 사이의 어중간한 위치에 있다면, 이러한 두 성분은 유성음 척도(voicing measure)에 비례하는 수준에서 함께 믹싱된다. 이러한 외삽된 신호는 이어서 패킷 손실의 첫 번째 불량 프레임의 시작 시에 파형의 불연속이 발생하지 않도록 상기 호출 신호와 중첩적으로 합산된 다(overlap-added). 더 나아가, 파형 외삽은 적어도 상기 중첩 합산 주기와 동일한 주기의 시간만큼 현재의 불량 프레임 끝 이후까지 연장되며, 그럼으로써 다음 프레임의 시작 시에 상기 외삽된 신호의 여분의 샘플들이 다음 프레임의 시작 시에 이뤄지는 중첩 합산을 위한 "호출 신호"로서 이용될 수 있게 한다.
패킷 손실의 바로 첫 번째 불량 프레임이 아닌 불량 프레임(즉, 타입 3 또는 타입 4 프레임)에 있어서, 전대역 스피치 신호 합성기(350)의 동작은 상기 마지막 문단에서 설명되었던 것과 실질적으로 동일하지만, 전대역 스피치 신호 합성기(350)가 호출 신호를 계산할 필요가 없고 대신에 마지막 프레임에서 계산된 외삽 신호의 여분의 샘플들을 상기 마지막 프레임의 끝 시점 이후에 중첩 합산 동작을 위한 호출 신호로서 이용함으로써, 그 프레임의 시작 시에 파형 불연속이 없도록 한다.
패킷 손실이 연장되는 경우에 대해, 전대역 스피치 신호 합성기(350)는 점진적으로 디코더/PLC 시스템(300)의 출력 스피치 신호를 묵음화시킨다. 예를 들어, 섹션 D에 설명된 디코더/PLC 시스템(300)의 구현예에 있어서, 패킷 손실이 있는 동안에 생성되는 출력 스피치 신호는 감쇄되는데, 다시 말해, 패킷 손실로 진입한 지 20 ms 시점에서 시작되어 패킷 손실로 들어 간지 60 ms 시점에서 끝나는 선형 방식으로 크기 0까지 "경사 감소(ramped down)" 된다. 이러한 기능은 "실제" 파형의 모양과 형태에 관하여 불확실성이 시간에 따라 증가하기 때문에 수행된다. 실제로, 많은 PLC 방식들은 외삽된 부분이 대략 60 ms를 훨씬 넘어가면 지글거리는(buzzy) 출력을 생성하기 시작한다.
본 발명의 다른 실시예에 있어서, 배경 잡음(background noise)이 있을 때(그리고 일반적으로) PLC에 대하여, 본 발명의 일 실시예는 배경 잡음(주변(ambient) 잡음)의 수준을 추적하며, 장시간의 삭제의 경우에 0으로 감쇄시키는 대신에 그 잡음의 수준으로 감쇄시킨다. 이는 배경 잡음에 있어서 PLC 시스템에 의한 출력의 묵음화로 인한 패킷 손실 시의 음이 간헐적으로 끊기는 듯한 효과를 없앨 수 있다.
본 발명의 또 다른 실시예는 통신 잡음 생성(CNG, comfort noise generation) 기능에 의해, 배경 잡음에 있어서 앞서 언급한 PLC의 문제에 대처할 수 있다. 본 발명의 이러한 실시예가 길어지는 패킷 손실들에 대응하여 디코더/PLC 시스템(300)의 출력 스피치 신호를 감쇄시키기 시작할 때에, 이 실시예는 또한 CNG에 의해 생성된 듣기 편한 통신 잡음(comfort noise)을 믹싱하기 시작한다. 다른 실시예의 경우에서는 감쇄되어 마침내 묵음화될 상황이라도, 이 실시예에서는 통신 잡음을 가지고 상기 디코더/PLC 시스템(300)의 출력 스피치 신호에 믹싱해 들어감으로써 그리고 이를 대체함으로써, 위에서 설명된 간헐적 효과는 제거될 수 있고, 신호 주변 환경의 충실한 재생을 제공할 수 있다. 이러한 방식은 효과가 증명되어 왔고, 많은 다른 응용 예에서 통상적으로 채택되고 있다. 예를 들어, 부분대역 음향학적 반향 제거기(SBAEC, sub-band acoustic echo canceller), 또는 일반적으로 AEC(acoustic echo canceller)에서는, 만약 잔향(residual echo)이 감지되는 경우에는 신호는 묵음화되면서 통신 잡음으로 대체된다. 이는 종종 비선형 프로세싱(NLP, non-linear processing)이라고 알려져 있다. 본 발명의 이 실시예는 PLC가 매우 유사한 시나리오를 제공하는 응용 분야들이라는 것을 전제로 한다. AEC와 유사하게, PLC에 대해 이러한 방식을 이용하는 것은 매우 향상된 경험을 제공하며, 이는 간헐적인 효과보다 훨씬 덜 불쾌하다.
b. 저대역 및 고대역 ADPCM 디코더들의 내부 상태 값들을 갱신하기
전대역 스피치 신호 합성기(350)가 단계(416)에서 수행된 파형 합성 작업을 완료한 후에는, 부분대역 ADPCM 디코더 상태 갱신 모듈(360)은 이어서 단계(418)에서 다음 프레임에 양호한 프레임이 있을 수 있는 것에 대비하여, 저대역 ADPCM 디코더(320) 및 고대역 ADPCM 디코더(330)의 내부 상태 값들을 적절히 갱신한다. 저대역 ADPCM 디코더(320) 및 고대역 ADPCM 디코더(330)의 내부 상태 값들의 갱신을 수행하는 방법은 여러 가지가 있다. 도 1의 G.722 인코더 및 도 2의 G.722 디코더가 동일한 종류의 내부 상태 변수들을 가지기 때문에, 디코더들(320, 330)의 내부 상태를 갱신하기 위한 한 가지 직관적인 방법은 마지막 프레임의 마지막 샘플이었을 때 남은 내부 상태 값들로 시작하도록 전대역 스피치 신호 합성기(350)의 출력 신호를 도 1에 나타낸 통상적인 G.722 인코더를 통해 입력(feed)시키는 것이다. 이어서, 외삽 스피치 신호를 포함하는 현재 불량 프레임을 인코딩한 후에, 상기 현재 불량 프레임의 마지막 샘플에서 남은 내부 상태 값들을 이용하여 저대역 ADPCM 디코더(320) 및 고대역 ADPCM 디코더(330)의 내부 상태 값들을 갱신한다.
그렇지만, 앞서 언급한 방식은 두 부분대역 인코더들의 복잡도를 수반한다. 복잡도를 해소하고자, 아래의 섹션 D에 설명된 디코더/PLC 시스템(300)의 구현예는 위에서 언급한 것에 근접한 방법을 수행한다. 고대역 ADPCM 인코더에 대해서는, 고대역 적응 양자화 스텝 크기인 △H(n)는 패킷 손실 이후 첫 수신 프레임을 처리할 때에는 필요하지 않다. 대신에, 상기 양자화 스텝 크기는 패킷 손실 전까지의 연속 평균(running mean)(이는 본 명세서 다른 곳에서 설명되는 바와 같음)에 맞춰 재설정된다. 결과적으로, 편차 신호(difference signal)(또는 예측 오차 신호), eH(n)가 고대역 ADPCM 인코더 내에서 적응 예측기(adaptive predictor) 갱신에 대해 양자화되지 않은 상태로서 이용되며, eH(n)에 대한 양자화 동작은 전적으로 회피된다.
저대역 ADPCM 인코더에 대해서는, 시나리오가 약간 달라진다. 저대역 적응 양자화 스텝 크기 △L(n)의 피치 변조(pitch modulation)를 유지하는 것의 중요성 때문에, 아래 섹션 D에 설명된 디코더/PLC 시스템(300)의 구현예는 바람직하게 손실 프레임들 동안에 이 파라미터를 갱신한다. 표준 G.722 저대역 ADPCM 인코더는 편차 신호(또는 예측 오차 신호) eL(n)에 6 비트 양자화를 적용한다. 그렇지만, G.722 표준에 따르면, 여러 크기 양자화 인덱스들 중 8 개 인덱스만으로 이뤄진 부분집합만이 상기 저대역 적응 양자화 스텝 크기 △L(n)의 갱신에 이용된다. 상기 저대역 ADPCM 인코더 내에서 적응 예측기 갱신을 위해 양자화된 편차 신호 대신에 양자화되지 않은 편차 신호 eL(n)를 이용함으로써, 섹션 D에 설명된 실시예는 저대역 적응 양자화 스텝 크기 △L(n)에 대해 이상적인 갱신을 유지하면서도, 덜 복잡한 편차 신호의 양자화를 이용할 수 있다.
본 기술 분야들에 숙련된 자들은, 본 명세서에서 고대역 적응 양자화 스텝 크기 △H(n)를 수반하는 설명에 있어서, 상기 고대역 적응 양자화 스텝 크기가 고대역 로그 스케일 인자(log scale factor) ▽H(n)로 대체될 수 있다는 점을 용이하게 이해할 수 있을 것이다. 이와 유사하게 본 명세서에서 저대역 적응 양자화 스텝 크기 △L(n)를 수반하는 설명에서, 상기 저대역 적응 양자화 스텝 크기는 저대역 로그 스케일 인자 ▽L(n)로 대체될 수 있다.
섹션 D의 실시예 내에서 이용되는 저대역 및 고대역 ADPCM 인코더들과 표준 G.722 부분대역 ADPCM 인코더들 사이의 또 다른 차이점은 신호의 특성들 및 패킷 손실의 지속 시간에 기초한 인코더들의 적응식 리셋(adaptive reset)이다. 이러한 기능을 이제 설명하고자 한다.
상술하였듯이, 긴 지속 시간을 가지는 패킷 손실의 경우에, 전대역 스피치 신호 합성기(350)는 미리 정해진 시간 후에는 출력 스피치 파형을 묵음화한다. d아래 섹션 D에서 설명되는 디코더/PLC 시스템(300)의 구현예에 있어서, 전대역 스피치 신호 합성기(350)로부터 오는 출력 신호는 G.722 QMF 합성 필터 뱅크를 통해 인가되며, 손실 프레임들 동안에 저대역 ADPCM 디코더(320) 및 고대역 ADPCM 디코더(330)의 내부 상태 값들을 갱신하는 데에 이용되는 부분대역 신호들을 얻어낸다. 결과적으로, 일단 전대역 스피치 신호 합성기(350)로부터 오는 출력이 0까지 감쇄되면, 부분대역 ADPCM 디코더들의 내부 상태 값들을 갱신하는 데에 이용되는 부분대역 신호들도 마찬가지로 0으로 될 것이다. 일정한 0의 입력은, 이것이 부자연스 럽게 상기 예측기 부분들이 계속하여 동일한 방향으로 적응(adapt)하게 만들 수 있기 때문에, 각 디코더 내의 적응 예측기들이 인코더의 적응 예측기들로부터 벗어나는 현상을 초래할 수 있다. 이는 기존의 고대역 ADPCM 디코더에서 매우 현저한 점으로서, 보통 긴 패킨 손실 뒤에 양호한 프레임들이 처리될 때 고주파수의 처핑음(chirping)을 방출하게 된다. 종래의 저대역 ADPCM 디코더에 대해서, 이러한 문제점은 예측기가 매우 큰 필터 이득을 유효적으로 갖기 때문에 부자연스러운 에너지의 증가를 종종 초래한다.
앞에서 살펴본 바에 기초하여, 아래의 섹션 D에 설명된 디코더/PLC 시스템(300)의 구현예는 일단 PCL 출력 파형이 0까지 감쇄되고 나면 ADPCM 부분대역 디코더들을 리셋한다. 이러한 방법은 장기간의 삭제 기간이 끝난 후에 발생하는 고주파수의 처핑음을 거의 완전히 제거할 수 있다. 패킷 손실의 지속시간이 증가할수록 전대역 스피치 신호 합성기(350)에 의해 생성되는 합성 파형의 불확실성도 증가한다는 점은 어떤 시점에서는 부분대역 ADPCM 디코더들(320, 330)을 갱신하는 데에 합성된 파형을 이용하는 것이 합리적이지 않을 수 있다는 점을 지지한다.
그런데, 부분대역 ADPCM 디코더들(320, 330)이 전대역 스피치 신호 합성기(350)가 완전히 묵음화되었을 시점에 리셋된다고 하여도, 종종 일어나는 처핑음(고대역 ADPCM 디코더(330)로부터 발생) 및 종종 일어나는 부자연스러운 에너지 증가(저대역 ADPCM 디코더(320)로부터 발생)의 형태를 갖는 몇몇 문제점들은 여전히 남는다. 이는 섹션 D에서 설명된 실시예에서는 각각의 부분대역 ADPCM 디코더들에 대해 리셋의 정도를 적응적으로 만듦으로써 대처되었다. 리셋은 파형 묵음화의 시 점에서 여전히 일어나기는 하지만, 부분대역 ADPCM 디코더들(320, 330) 중 하나 또는 다수는 또한 좀더 먼저 리셋될 수 있다.
섹션 D에서 설명되는 바와 같이, 좀더 일찍 리셋되는 것에 관한 결정은, 불량 프레임들이 처리되는 동안에, 다시 말해 전대역 스피치 신호 합성기(350)로부터 오는 출력 신호에 기초하여 부분대역 ADPCM 디코더들(320, 330)의 갱신이 이뤄지는 동안에, 부분대역 ADPCM 디코더들(320, 330)의 적응 예측기들의 폴 섹션들의 적응(adaptation)을 제어하는 신호들의 몇몇 특징들을 모니터링한 것에 기초한다. 저대역 ADPCM 디코더(320)에 대하여는 부분 재구축 신호(partial reconstructed signal) pLt(n)는 올폴 필터 섹션의 적응을 구동시키는데, 반면에 고대역 ADPCM 디코더(330)의 올폴 필터 섹션의 적응을 구동시키는 것은 부분 재구축 신호 pH(n)이다. 본질적으로, 각각의 파라미터는 10 ms의 손실 프레임 동안에 상당한 수준까지 일정하게 유지되는지 또는 현재의 손실 구간 동안에 확실하게 양의 값 또는 음의 값인지 감시된다. 섹션 D에 설명된 구현예에서, 적응식 리셋은 30 ms의 패킷 손실 이후로 한정된다는 점이 주지되어야 한다.
3. 타입 5 및 타입 6 프레임들의 처리
타입 5 및 타입 6 프레임들을 처리하는 동안에, 현재 프레임과 관련된 입력 비트 스트림은 한 번 더 이용될 것이며, 따라서, 블록들(310, 320, 330, 340)은 다시 활성화된다. 그렇지만, 저대역 ADPCM 디코더(320) 및 고대역 ADPCM 디코더(330) 에 의해 수행되는 디코딩 동작들은 손실 프레임들로부터 수신 프레임들로 전환이 일어날 때에 가공음(artifact) 및 왜곡(distortioin)을 감소시키도록 디코딩 제한 및 제어 모듈(370)에 의해 제약되고 제어되며, 그럼으로써 패킷 손실 이후에 디코더/PLC 시스템(300)의 동작 성능이 향상될 수 있다. 이는 타입 5 프레임들에 대해서는 순서도(400)의 단계(420)에, 타입 6 프레임들에 대해서는 단계(426)에 반영되어 있다.
타입 5 프레임들에 대해서는, 출력 스피치 신호에 대한 추가적인 변형이 수행되어, 전대역 스피치 신호 합성기(350)에 의해 생성된 합성 신호와 QMF 합성 필터 뱅크(340)에 의해 생성된 출력 신호 사이에서 부드러운 전환이 보장되도록 한다. 따라서, 상기 QMF 합성 필터 뱅크(340)의 출력 신호는 곧장 디코더/PLC 시스템(300)의 출력 스피치 신호로서 이용되지 않는다. 대신에, 전대역 스피치 신호 합성기(350)가 QMF 합성 필터 뱅크(340)의 출력을 변형하고, 이러한 변형된 버전을 디코더/PLC 시스템(300)의 출력 스피치 신호로서 이용한다. 따라서, 타입 5 또는 타입 6 프레임의 처리 동안에, 스위치(336)는 "타입 2 내지 6"이라고 붙은 하부 위치에 연결이 유지되며 전대역 스피치 신호 합성기(350)로부터 오는 출력 스피치 신호를 수신한다.
이 점에 있어서, 전대역 스피치 신호 합성기(350)에 의해 수행되는 동작은, 만약 전대역 스피치 신호 합성기(350)에 의해 생성된 합성 신호와 상기 QMF 합성 필터 뱅크(340)에 의해 산출된 출력 신호 사이에 정렬 불량이 있을 경우에, 시간 워핑 및 리페이징의 수행을 포함한다. 이러한 동작의 수행은 순서도(400)의 단 계(422)에 나타나 있고 아래에서 더욱 상세하게 설명될 것이다.
또한 타입 5 프레임들에 대하여, 전대역 스피치 신호 합성기(350)에 의해 생성된 출력 스피치 신호는 이전에 처리된 손실 프레임으로부터 얻은 호출 신호와 중첩 합산된다. 이 동작은 이전 프레임과 관련된 합성된 파형으로부터 현재의 타입 5 프레임과 관련된 출력 파형으로 부드러운 전환을 보장하도록 수행된다. 이 단계의 수행은 순서도(400)의 단계(424)에 나타난다.
출력 스피치 신호가 타입 5 내지 타입 6 프레임에 관하여 생성된 후에는, 단계(428)에 나타내었듯이, 단계(414)와 유사한 방식을 통해, 디코더/PLC 시스템(300)은 다양한 상태 메모리들을 갱신하고 장래의 손실 프레임들에 대해 수행될 수 있는 PLC 동작들을 원활히 하는 데에 필요한 몇 가지 처리를 수행할 수 있다.
a. 부분대역 ADPCM 디코딩의 제한 및 제어
위에서 언급하였듯이, 타입 5 및 타입 6 프레임들의 처리 동안에 저대역 ADPCM 디코더(320) 및 고대역 ADPCM 디코더(330)에 의해 수행되는 디코딩 동작들은 디코딩 제한 및 제어 모듈(370)에 의해 패킷 손실 이후의 디코더/PLC 시스템(300)의 성능을 향상시킬 수 있도록 제한되며 제어된다. 상기 디코딩 제한 및 제어 모듈(370)에 의해 적용되는 다양한 제한 및 제어 사항들이 이제 설명될 것이다. 이러한 제한 사항 및 제어 사항들에 관하여 더욱 상세한 내용은 아래 섹션 D에서 특정한 구현예의 디코더/PLC 시스템(300)을 참조하여 설명될 것이다.
i. 고대역 ADPCM 디코더의 적응 양자화 스텝 크기를 설정하기
타입 5 프레임들의 경우에, 디코딩 제한 및 제어 모듈(370)은 고대역 ADPCM 디코더(330)를 위한 적응 양자화 스텝 크기, △H(n)을 패킷 손실 이전에 수신된 양호 프레임들에 관련된 이 스텝 크기의 연속 평균에 따라 설정한다. 이는 다른 방식으로 대처할 경우에는 배경 잡음만 있는 세그먼트들에서 패킷 손실이 있을 경우에 나타날 수 있는 에너지 감소(energy drops) 현상을 줄여줌으로써 배경 잡음에 있어서 디코더/PLC 시스템(300)의 성능을 향상시킨다.
ii. 저대역 ADPCM 디코더의 적응 양자화 스텝 크기 설정하기
타입 5 프레임들의 경우에, 디코딩 제한 및 제어 모듈(370)은 저대역 ADPCM 디코더(320)의 적응 양자화 스텝 크기 △L(n)을 설정하는 데에 적응식 전략을 취한다. 다른 실시예에서, 이러한 방법은 또한 고대역 ADPCM 디코더(330)에서도 물론 적용될 수 있다. 앞의 서브섹션에서 지적하였듯이, 고대역 ADPCM 디코더(330)에 대해, 배경 잡음이 있을 때에는 첫 번째 양호 프레임에서, 적응 양자화 스텝 크기, 즉 △H(n)을 패킷 손실 이전 구간에서의 스텝 크기의 연속적인 평균으로 설정하는 것이 디코더/PLC 시스템(300)의 성능에 유리하다. 그러나, 저대역 ADPCM 디코더(320)에 똑같은 방식을 적용하면, 유성음 스피치의 경우에 비정상적인 에너지 증가가 종종 발생한다는 점이 발견되었다. 이는 △L(n)이 유성 스피치에서는 피치 주 기에 의해 변조되기 때문이며, 따라서 △L(n)을 프레임 손실 이전의 연속 평균에 설정하는 것은 패킷 손실 후의 첫 번째 양호 프레임에서 △L(n)에 매우 큰 비정상적 증가를 가져올 수 있다.
그 결과, △L(n)이 피치 주기에 의해 변조되는 경우에, 패킷 손실 이전에 얻은 △L(n)의 연속적 평균을 이용하기보다는 ADPCM 디코더 상태 갱신 모듈(360)로부터 받은 △L(n)을 이용하는 것이 바람직하다. 부분대역 ADPCM 디코더 상태 갱신 모듈(360)이 전대역 스피치 신호 합성기(350)의 출력 신호를 G.722 QMF 분석 필터 뱅크를 통과시켜 저대역 신호를 얻음으로써 저대역 ADPCM 디코더(320)를 갱신한다는 점을 상기한다. 만약 전대역 스피치 신호 합성기(350)가 잘 작동한다면, 특히 이는 유성음 스피치의 경우에 그럴 가능성이 큰데, 그러한 경우에는 저대역 ADPCM 디코더(320)를 갱신하는 데에 이용된 신호는 인코더에서 이용된 신호와 근접하게 정합될 확률이 크며, 따라서, △L(n) 파라미터는 또한 인코더의 해당 파라미터에 매우 근접할 확률도 또한 크다. 유성음 스피치에 대하여, 이러한 접근 방식은 △L(n)을 패킷 손실 이전의 △L(n)의 연속적 평균에 따라 설정하는 것에 비해 더 바람직하다.
앞서 한 설명의 견지에서, 디코딩 제한 및 제어 모듈(370)은 패킷 손실 이후의 첫 번째 양호 프레임에 대해 △L(n)을 설정하는 적응식 전략을 적용하도록 구성된다. 만약 패킷 손실 이전의 스피치 신호가 예를 들어 정지적(stationary)인 배경 잡음과 같이 충분히 정지적이라면, △L(n)은 패킷 손실 이전의 △L(n)의 연속적 평균에 맞춰 설정된다. 그러나 만약 패킷 손실 이전의 스피치 신호가 유성음 스피치라면, △L(n)은 전대역 스피치 신호 합성기(350)의 출력에 기초하여 저대역 ADPCM 디코더의 갱신에 의해 얻어지는 값에 따라 설정된다. 그 중간적인 사례들의 경우에는, △L(n)은 패킷 손실 이전에 △L(n)에 발생하였던 변동에 기초하여, 그러한 두 값들 사이의 선형 가중치에 따라 설정된다.
iii. 고대역 ADPCM 디코더에 대한 적응 양자화 스텝 크기의 적응 저역 통과 필터링
패킷 손실 이후의 처음 몇 개의 양호 프레임들(타입 5 및 타입 6 프레임들)을 처리하는 동안, 디코딩 제한 및 제어 모듈(370)은 매우 강한 고주파수 신호를 생성하는 국부적인 요동(fluctuations)(G.722 인코더 및 G.722 디코더 사이의 일시적인 동기 손실로 인함)의 위험을 감소시킬 수 있도록, 고대역 ADPCM 디코더의 적응 양자화 스텝 크기 △H(n)를 유리한 방향으로 제어한다. 이는 실제 처핑음에는 조금 모자라지만, 고주파 동요 현상(high frequency wavering effect)을 초래할 수 있다. 따라서, 적응 저역 통과 필터가 이러한 몇 개의 첫 양호 프레임들에서 고대역 양자화 스텝 크기 △H(n)에 대해 적용된다. 부드럽게 하는 정도(smoothing)는 적응이 수행되는 기간에 대해 2차식(quadratic form) 형태로 감소된다. 패킷 손실 이 전의 스피치 신호가 대단히 정지적이었던 경우의 세그먼트들에 대해서는, 그러한 적응 기간이 더 길다(아래 섹션 D 내에 설명된 디코더/PLC 시스템(300)의 구현예에서는 80 ms). 패킷 손실 이전에 좀더 덜 정지적인 스피치 신호를 가지는 경우에는, 그 기간은 더 짧으며(아래 섹션 D 내에 설명된 디코더/PLC 시스템(300)의 구현예에서는 40 ms), 전혀 정지적이지 않은 세그먼트에 대하여는 저역 통과 필터링은 적용되지 않는다.
iv. 첫 몇 개의 양호 프레임들에서 올폴 필터 섹션 상의 적응 안전 마진(Adaptive Safety Margin)
패킷 손실이 일어난 동안 그리고 그 직후에서 G.722 디코더 및 인코더 사이의 피할 수 없는 발산(divergence) 때문에, 디코딩 제한 및 제어 모듈(370)은 패킷 손실이 끝난 후 처음 몇 개의 양호 프레임들(타입 5 및 타입 6 프레임들)을 처리하는 동안에 저대역 ADPCM 디코더(720)의 적응식 예측기에 대해 몇 가지 제한 사항을 강제한다. G.722 표준에 따르면, 상기 인코더 및 디코더는 기본적으로 부분대역 예측기들의 폴 섹션에 대해 1/16 만큼의 안전 마진 "안전(safety)" 마진을 강제한다. 그렇지만, 저대역 ADPCM 디코더의 두 개의 폴, 6 개의 제로로 된 예측 필터의 올폴 섹션은 종종 패킷 손실 후에 비정상적인 에너지 증가를 초래한다. 이는 종종 펑하는 소리처럼 인식된다. 분명히, 패킷 손실은 더 낮은 안전 마진이라는 결과를 가져오는데, 이는 더 높은 이득을 가지고서, 너무 높은 에너지의 파형을 생성하는 올폴 필터 섹션과 상관이 있다.
저대역 ADPCM 디코더(320)의 적응 예측기의 올폴 필터 섹션에 대해 좀더 엄격한 제한을 적응식으로 강제함으로써, 디코딩 제한 및 제어 모듈(370)은 패킷 손실 후의 이러한 비정상적 에너지 증가를 대단히 감소시킬 수 있다. 패킷 손실 후의 처음 몇 개의 양호 프레임들에 있어서, 증가된 최소 안전 마진이 강제된다. 이 증가된 최소 안전 마진은 점차 G.722의 표준 최소 안전 마진까지 감소된다. 더 나아가, 패킷 손실 이전에 안전 마진의 연속적 평균이 모니터링되며, 패킷 손실 이후의 처음 몇 개의 양호 프레임들 동안의 증가된 최소 안전 마진은 상기 연속적 평균을 초과하지 않도록 제어된다.
v. 고대역 ADCPM 디코더의 내부 신호들 상에서 DC 성분 제거
패킷 손실 후의 처음 몇 개의 양호 프레임들(타입 5 및 타입 6 프레임들) 동안에, G.722 디코더가 종종 매우 듣기 싫은 현저한 고주파수 처핑 왜곡음을 발생시킨다는 점이 관찰되어 왔다. 이러한 왜곡은 고대역 ADPCM 디코더가 패킷 손실로 인해 고대역 ADPCM 인코더와 사이에 동기를 잃어버리고 따라서 어긋난 예측기를 생성한 경우에 초래된다. 처핑 현상으로 이어지는 동기의 손실은 폴 예측기의 적응의 제어에 대한 입력 신호, pH(n)와 재구축 고대역 신호, rH(n)가 지속적인 시간 동안에 일정한 부호들을 가지는 현상으로서 드러난다. 이는 적응이 부호에 기반을 둔 것이라는 점 때문에 예측기의 폴 섹션이 표류(drift)하게 만들고, 또한 그럼으로써 동일한 방향으로 갱신을 계속하게 만든다.
이를 피하기 위해, 디코딩 제한 및 제어 모듈(370)은 패킷 손실 이후 처음 몇 개의 양호 프레임들을 처리하는 동안에, 신호 pH(n) 및 rH(n)을 각각 고주파 통과 필터를 거친 버전인 pH , HP(n) 및 rH , HP(n)으로 교체함으로써, 이들 신호에 대해 DC 제거(DC removal) 기능을 부가한다. 이러한 방법은 처핑 현상을 완전히 제거하는 데에 기여한다. DC 제거는 각각 pH(n) 및 rH(n)의 연속 평균의 차감으로써 구현된다. 이들 연속 평균들은 양호 프레임들 및 불량 프레임들 모두에 대해서 계속하여 갱신된다. 아래 섹션 D 내에 설명된 디코더/PLC 시스템(300)의 구현예에서는, 이러한 대체는 패킷 손실 이후 첫 40 ms 동안에 일어난다.
b. 리페이징(Re-phasing) 및 시간 워핑(Time-Warping)
위에서 설명된 바와 같이, 순서도(400)의 단계(422) 동안에 전대역 스피치 신호 합성기(350)는 만약 패킷 손실 동안에 전대역 스피치 신호 합성기(350)에 의해 생성된 합성 스피치 신호와 패킷 손실 후의 첫 수신 프레임 동안에 QMF 합성 필터 뱅크(340)에 의해 생성된 스피치 신호 사이에 정렬 불량(misalignment)이 있을 경우에는, 본 명세서에서 "리페이징(re-phasing)" 및 "시간 워핑(time-warping)"이라고 호칭하는 기술들을 수행한다.
상술하였듯이, 손실 프레임을 처리하는 동안에, 만약 패킷 손실 전의 수신 프레임들과 관련된 디코딩 스피치 신호가 예를 들어 음성 중에서 모음(vowel)과 같이 거의 주기적인 경우에는, 전대역 스피치 신호 합성기(350)는 이러한 피치 주기 에 기초하여 스피치 파형을 외삽한다. 또한 앞서 설명되었듯이, 다음 프레임과 연관된 스피치 신호에 대해 중첩 합산되기 위한 여분의 샘플들을 포함할 수 있도록 이러한 파형 외삽은 손실 프레임의 종료 이후에도 계속되어, 부드러운 전환을 담보하고 여타 불연속성을 회피할 수 있다. 그렇지만, 일반적으로 디코딩된 스피치 신호에서 실제의 피치 주기는 손실 프레임에서 파형 외삽을 수행하는 동안 이용되는 피치 트랙을 따라가지 않는다. 그 결과, 일반적으로 이렇게 외삽된 스피치 신호는 처음의 양호 프레임들과 관련된 디코딩된 스피치 신호와 완벽하게 정렬되지 않을 것이다.
이는 도 6에 예시되어 있으며, 도 6은 시간축선(600)으로서, 손실 프레임의 이전, 그리고 패킷 손실 이후 첫 수신 프레임 동안의 디코딩된 스피치 신호(602)의 크기 그래프(편의를 위해, 디코딩된 스피치 신호는 손실 프레임 동안에도 표시되었지만, 디코더/PLC 시스템(300)은 원래 신호의 이 부분을 디코딩할 수 없을 것이라는 점을 이해하여야 할 것이다), 그리고 손실 프레임 동안에 그리고 패킷 손실 이후의 첫 수신 프레임 이후까지 생성된 외삽 스피치 신호(604)의 크기 그래프를 나타낸다. 도 6에 나타내었듯이, 이 두 신호들은 첫 수신 프레임에서 위상이 맞지 않는다.
이러한 이위상(out-of-phase) 현상은 디코더/PLC 시스템(300)에서 두 가지 문제점들을 초래한다. 첫째, 도 6에서, 패킷 손실 후 첫 수신 프레임 내에서, 디코딩된 스피치 신호(602)와 외삽된 스피치 신호(604)는 중첩 합산 구간 내에서 위상이 맞지 않고, 부분적으로 상쇄되기도 하여, 결과적으로 귀에 들릴 정도의 가공 음(artifact)을 발생시킨다. 둘째, 부분대역 ADPCM 디코더들(320, 330)과 연관된 상태 메모리들은 일정 수준의 피치 변조 징후를 나타내며, 따라서 스피치 신호의 위상에 민감하다. 이는 스피치 신호가 피치 에포크(epoch), 즉 신호 레벨이 급격히 올랐다가 떨어지는 피치 펄스 부근의 스피치 신호 부분에 가까울 때에 특히 그러하다. 부분대역 ADPCM 디코더들(320, 330)이 스피치 신호의 위상에 민감하기 때문에, 또한 외삽된 스피치 신호(604)가 패킷 손실 동안에 이들 디코더들의 상태 메모리들을 갱신하는 데에 이용되기 때문에, 외삽 스피치 신호(604)와 디코딩된 스피치 신호(602) 사이의 위상 차이는, 부분대역 ADPCM 인코더들 및 디코더들의 부정합된 내부 상태 값들로 인해, 패킷 손실에 이어 수신된 프레임에서 상당한 가공음들을 발생시킬 수 있다.
아래에서 더욱 상세하게 설명될 것이지만, 시간 워핑 기법은 중첩 합산 구간 내에서 유해한 간섭에 관한 첫 번째 문제점에 대처하는 데에 이용된다. 특히, 시간 워핑 기법은 패킷 손실 이후의 첫 수신 프레임에 관련된 디코딩 스피치 신호의 시간 축을 신장(stretch)시키거나 수축(shrink)시켜 이를 이전의 손실 프레임을 은닉시키는 데에 이용되는 외삽 스피치 신호와 정렬시키는 데에 이용된다. 비록 시간 워핑 기법이 본 명세서에서 메모리를 가진 부분대역 예측 코더를 참조하여 설명되고 있지만, 이는 다른 코더들, 즉 메모리를 가지거나 또는 가지지 않는 코더들, 예측 및 비예측 코더들, 그리고 부분대역 및 전대역 코더들을 포함하며 또한 이에 한정되지 않는 다양한 코더들에 적용될 수 있는 일반적인 기술이다.
아래에서 더욱 상세하게 설명될 것이지만, 리페이징은 손실 패킷과 패킷 손 실 후의 첫 양호 프레임의 정렬 불량(misalignment)으로 인한 부분대역 ADPCM 인코더들과 디코더들의 부정합 내부 상태들에 관한 두 번째 문제점에 대처하는 데에 이용된다. 리페이징은 상기 부분대역 ADPCM 디코더들(320, 330)의 내부 상태들을 상기 외삽 스피치 파형이 패킷 손실이 끝난 후 첫 수신 프레임 직전의 마지막 입력 신호 샘플과 동위상이 되는(in-phase) 시간 상의 지점에 맞게 설정하는 프로세스이다. 비록 리페이징이 여기서는 역방향 적응 시스템의 맥락에서 설명되고 있지만, 이는 또한 순방향 적응 예측 코더들이나 또는 메모리를 가지는 여타 코더들 내에서 PLC를 수행하는 데에 이용될 수 있다.
i. 시간 지연(Time Lag) 계산
리페이징 및 시간 워핑 기술들 각각은, 외삽 스피치 신호 및 패킷 손실 이후의 첫 수신 프레임과 관련된 디코딩된 스피치 신호가 정렬 불량에 있는 동안의 다수의 샘플들에 관해 계산을 필요로 한다. 이러한 정렬 불량은 "지연(lag)"이라고 부르며, 이는 도 6에서도 그렇게 명명되어 있다. 이러한 지연은 디코딩된 스피치 신호가 외삽 스피치 신호에 대해 뒤지는 정도를 나타내는 샘플들의 개수와 같이 생각될 수 있다. 도 6의 경우에는 지연이 음의 수이다.
시간 지연 계산을 수행하는 한가지 일반적인 방법이 도 7의 순서도(700)에 예시되어 있다. 하지만 다른 방법들도 사용될 수 있다. 이 방법을 수행하는 구체적인 방식은 아래의 섹션 D에서 설명된다.
도 7에서 나타난 바와 같이, 순서도(700)의 방법은 단계(702)에서 시작하며, 이전의 손실 프레임 동안에 전대역 스피치 신호 합성기(350)가 생성한 스피치 파형이 패킷 손실 이후 첫 수신 프레임 이내까지 외삽된다.
단계(704)에서는, 시간 지연이 계산된다. 개념상의 수준에서 설명하자면, 이러한 시간 지연은 외삽 스피치 신호 및 패킷 손실 이후 첫 수신 프레임과 관련된 디코딩된 스피치 신호 사이의 상관 값을 최대화함으로써 계산된다. 도 9에 나타낸 바와 같이, 외삽된 스피치 신호(참조 번호 904로 표시됨)는 첫 수신 프레임(902로 표시됨)과 관련하여 디코딩된 스피치 신호에 관하여, -MAXOS로부터 +MAXOS에 이르는 범위 내에서 쉬프트된다. 이때 MAXOS는 최대 오프셋(maximum offset)을 나타내며, 상관 값을 최대로 하는 쉬프트가 시간 지연 값으로서 사용된다. 이러한 관계는, 예를 들어 0 주변의 ±MAXOS 만큼의 시간 지연 범위에 대해, 신호들 사이의 정규화된 교차 상관 함수 R(k)의 피크를 탐색함으로써 실현될 수 있다.
Figure 112008044428947-pct00001
여기서 es는 외삽된 스피치 신호(extrapolated speech signal)이고, x는 패킷 손실 후 첫 수신 프레임에 관련된 디코딩된 스피치 신호이며, MAXOS는 허용되는 최대 오프셋이고, LSW는 지연 탐색 윈도우의 길이이며, i=0은 지연 탐색 윈도우 내의 첫 샘플을 나타낸다. 이 함수를 최대로 만드는 시간 지연 값은 두 파형들 사이의 상대적인 시간 쉬프트에 상응할 것이다.
일 실시예에서, 상기 상관 관계가 계산되는 샘플들(본 명세서에서는 지연 탐색 윈도우라고 일컬어짐)의 개수는 피치 주기에 기초하여 적응적인 방식으로 결정된다. 예를 들어, 아래 섹션 D에서 설명되는 실시예에서는, 대략적 지연 탐색을 위한 샘플들의 수(16 kHz 샘플링의 경우에)로 표현되는 윈도우의 크기는 다음과 같이 주어진다.
Figure 112008044428947-pct00002
여기서 ppfe는 피치 주기(pitch period)이다. 이 수식은 바닥 함수(floor function)을 이용한다. 실수 x의 바닥 함수는
Figure 112008044428947-pct00003
로 표시되는데, x보다 작거나 같은 가장 큰 정수를 돌려주는 함수이다.
만약 단계(704)에서 계산된 시간 지연이 0이라면, 이는 외삽 스피치 신호와 상기 첫 수신 프레임에 관련된 디코딩 스피치 신호가 동위상(in-phase) 상태라는 것을 의미하며, 반면에 양의 값이라면 이는 상기 첫 수신 프레임에 관련된 디코딩 스피치 신호가 상기 외삽 스피치 신호에 뒤지는(즉 상대적으로 지연되는) 것을 의미하고, 음의 값이라면 이는 상기 첫 수신 프레임에 관련된 디코딩 스피치 신호가 상기 외삽 스피치 신호에 앞서는 것을 의미한다. 만약 시간 지연이 0과 같다면, 리페이징 및 시간 워핑은 수행될 필요가 없게 된다. 아래 섹션 D에서 설명될 예시적인 구현예에서, 시간 지연은 또한 만약 패킷 손실 전 마지막으로 수신된 프레임이 비유성음(unvoiced)으로 간주되거나(위에서 타입 2, 타입 3 및 타입 4 프레임들의 처리와 관련하여 논의된 바와 같이, 해당 프레임에 대해 계산된 "유성음(voicing)" 수준(degree)에 의한 지시에 따름), 또는 패킷 손실 이후의 첫 수신 프레임이 비유성음으로 간주되면, 0의 값을 갖도록 강제된다.
상관 연산의 복잡도를 최소화할 수 있도록, 상기 지연 탐색은 다중 단계 프로세스를 이용하여 수행될 수 있다. 그러한 접근 방식이 도 8의 순서도(800)에 예시되어 있다. 여기서는 단계(802)에서 신호들의 다운샘플링된 표현을 이용하여 대략적 시간 지연 탐색이 먼저 수행된 후에, 단계(804)에서 신호들에 대한 좀더 높은 샘플링 레이트의 표현을 이용하여 세밀 시간 지연 탐색이 수행된다. 예를 들어, 상기 대략적 시간 지연 탐색은 두 신호들을 4 kHz로 다운샘플링한 후에 수행될 수 있으며, 상기 세밀 시간 지연 탐색은 8 kHz로 샘플링된 신호들을 가지고 수행될 수 있다. 복잡도를 추가적으로 감소시킬 수 있도록, 다운샘플링은 단순히 신호들을 서브샘플링하며 여타 알리아싱 효과들은 무시하는 식으로 수행될 수 있다.
한 가지 문제점은, 첫 수신 프레임 내에서 외삽 스피치 신호에 대해 상관 연산하는 데에 어떤 신호를 이용하느냐이다. "무조건적(brute force)" 방법은 상기 첫 수신 프레임을 완전히 디코딩하여 디코딩 스피치 신호를 얻고, 이어서 16 kHz에서 상관 값들을 연산하는 것이다. 첫 수신 프레임을 디코딩하는 데에, 외삽 스피치 신호(위에서 설명한 바와 같이)를 프레임 경계까지 재인코딩함으로써 얻을 수 있는 부분대역 ADPCM 디코더들(320, 330)의 내부 상태들이 이용될 수 있다. 그렇지만, 아래에서 설명될 리페이징 알고리즘은 부분대역 ADPCM 디코더들(320, 330)에 대해 좀더 최적화된 일군의 상태 값들을 제공하기 때문에, G.722 디코딩이 재수행(re-run)될 필요가 생길 것이다. 이 방법은 두 번의 완전한 디코딩 연산들을 수행해야 하기 때문에, 계산 복잡도의 측면에서 매우 낭비적이다. 이에 대처하기 위해, 본 발명의 일 실시예는 좀더 낮은 복잡도의 접근방식을 구현한다.
좀더 낮은 복잡도의 접근방식에 따르면, 첫 수신 프레임 내에서, 수신된 비트 스트림은 단지 부분적으로 디코딩되어 저대역의 양자화된 편차 신호 dLt(n)을 얻는다. 통상의 G.722 디코딩에서는 비트 스트림 디멀티플렉서(310)로부터 수신되는 비트들은 부분대역 ADPCM 디코더들(320, 330)에 의해 편차 신호 dLt(n) 및 dH(n)로 변환되는데, 이들 차이 신호들은 역방향 적응 스케일 인자(backward-adaptive scale factor)에 의해 크기가 조절되고(scaled), 역방향 적응 폴-제로 예측기들(backward-adaptive pole-zero predictors)을 통과하여, 부분대역 스피치 신호들을 획득하게 되며, 이어서 이 부분대역 스피치 신호들은 QMF 합성 필터 뱅크(340)에 의해 결합되어 출력 스피치 신호를 생성하게 된다. 이 프로세스 내에서, 부분대역 ADPCM 디코더들(320, 330) 내의 적응 예측기들의 계수들은 매 샘플들에서 갱신된다. 이러한 갱신은 디코더의 복잡도의 상당 부분을 차지한다. 여기서는 단지 시간 지연 계산을 위한 신호만 필요로 하므로, 상기 낮은 복잡도의 접근방식에서는, 2 폴, 6 제로 예측 필터 계수들은 고정된(frozen) 상태로 남게 된다(이들은 샘플마다 갱신되지 않는다). 추가적으로, 지연 값은 피치에 종속적이며, 인간의 음성에 대해 피치의 기본 주파수는 4 kHz 이하이므로, 오직 저대역 근사 신호 rL(n)만 유도 된다. 이러한 접근 방식에 관한 많은 상세한 사항들은 아래 섹션 D에서 제공된다.
아래 섹션 D에서 설명되는 실시예에서, 상기 2 폴 6 제로 예측 필터에 대해 고정되는 필터 계수들은 외삽된 파형을 패킷 손실 동안의 마지막 손실 프레임의 끝에 이를 때까지 재인코딩함으로써 얻어지는 계수들이다. 대안적인 실시예에서는, 상기 고정되는 필터 계수들은 패킷 손실 직전 마지막 수신 프레임의 끝에서 이용되었던 필터 계수들이 될 수도 있다. 또 다른 대안적인 실시예에서는, 앞서 언급한 계수들 중 하나 또는 다른 하나가 스피치 신호의 특성들 또는 그 밖의 몇 가지의 기준에 따라 적응적인 방식을 통해 선택될 수도 있다.
ii. 리페이징
리페이징에서, 부분대역 ADPCM 디코더들(320, 330)의 내부 상태들은 상기 외삽 스피치 파형과 패킷 손실 이후 첫 수신 프레임에 관련된 디코딩 스피치 파형 사이의 시간 지연 값을 고려하여 조절된다. 앞서 설명된 바와 같이, 첫 수신 프레임의 처리에 앞서, 부분대역 ADPCM 디코더들(320, 330)의 내부 상태들은 이전 손실 프레임 동안에 상기 전대역 스피치 신호 합성기(350)에 의해 합성되는 출력 스피치 신호를 재인코딩함으로써 추정된다. 이들 디코더들의 내부 상태들은 몇 가지의 피치 변조 특성을 보인다. 따라서, 만약 이전 손실 프레임에 관련된 파형 외삽 시에 이용된 피치 주기가 디코딩 스피치 신호의 피치 트랙을 정확하게 따라갔다면, 상기 재인코딩 프로세스는 상기 마지막 손실 프레임 및 상기 첫 수신 프레임의 프레임 경계에서 중단될 수 있을 것이며, 부분대역 ADPCM 디코더들(320, 330)의 상태들은 원래 신호와 "동위상(in-phase)" 상태가 될 것이다. 그러나, 앞서 설명하였듯이, 외삽 동안에 이용되는 피치는 일반적으로 디코딩된 스피치 신호의 피치 트랙에 매칭되지 않으며, 외삽된 스피치 신호 및 디코딩된 스피치 신호는 패킷 손실 이후 첫 수신 프레임의 시작 지점에서 정렬 상태에 있지 않게 될 것이다.
이러한 문제점을 극복하기 위해서, 리페이징 기법은 상기 시간 지연 값을 이용하여 재인코딩 프로세스를 중지시킬 위치를 제어한다. 도 6에 있는 예에서, 외삽 스피치 신호(604)와 디코딩 스피치 신호(602) 사이의 시간 지연은 음의 값(negative)이다. 이러한 시간 지연은 lag라고 표시하기로 하자. 그렇다면, 만약 외삽 스피치 신호가 상기 프레임 경계 이후로 -lag 샘플들만큼 재인코딩된다면, 프레임 경계에서, 디코딩 스피치 신호(602)의 위상과 상응하는 외삽 스피치 신호(604)의 위상인 상태로 상기 재인코딩이 종료될 것이다. 그 결과 얻어지는 부분대역 ADPCM 디코더들(320, 330)의 상태 메모리는 첫 수신 프레임 내의 수신 데이터와 동위상 상태가 될 것이며, 따라서 더 양호한 디코딩 신호를 제공할 것이다. 따라서, 부분대역 재구축 신호들을 재인코딩할 샘플들의 수는 다음과 같이 주어진다.
N = FS - lag
여기서, FS는 프레임 크기(Frame size)이고, 모든 파라미터들은 부분대역 샘플링 레이트(8 kHz)의 단위이다.
세 가지의 리페이징 시나리오가 각각 도 10a, 10b, 10c에 나타나 있다. 도 10a의 시간축선(1000)에서는, 디코딩된 스피치 신호(1002)는 외삽된 스피치 신 호(1004)를 "앞서는데(lead)", 따라서 재인코딩은 프레임 경계를 넘어 -lag 샘플들만큼 더 연장된다. 도 10b의 시간축선(1010)에서는, 디코딩된 스피치 신호(1012)는 외삽 스피치 신호(1014)에 대해 뒤지며, 재인코딩은 프레임 경계 이전 lag 샘플들에 해당하는 시점에서 중단된다. 도 10c의 시간축선(1020)에서는, 디코딩된 스피치 신호(1022)는 외삽 스피치 신호(1024)에 대해 프레임 경계에서 동위상(비록 손실 프레임 동안의 피치 트랙은 서로 다르다)이 되며, 재인코딩은 프레임 경계에 해당하는 시점에서 중단된다. 편의상, 도 10a, 10b, 10c 각각에서, 디코딩된 스피치 신호가 손실 프레임 동안에도 함께 표시되어 있다는 점을 주의할 것이지만, 디코더(300)는 원 신호의 이 부분은 디코딩할 수 없다는 점이 이해되어야 할 것이다.
만약 부분대역 ADPCM 디코더들(320, 330)의 내부 상태들에 대해 리페이징이 수행되지 않았다면, 이들 내부 상태들을 갱신하는 데에 이용되는 재인코딩이 손실 프레임 프로세싱 동안 전체에 걸쳐 수행될 것이다. 그런데, 지연 값은 패킷 손실 이후 첫 수신 프레임 때까지 알려지지 않기 때문에, 재인코딩은 손실 프레임 동안에 완료될 수 없다. 이 점에 대해 대처하는 간단한 방법은 이전 손실 프레임을 대체하는 데에 이용된 전체 외삽 파형을 저장하고, 이어서 첫 수신 프레임 동안에 재인코딩을 수행하는 방법이 될 수 있다. 그렇지만, 이는 FS+MAXOS 샘플들을 저장할 메모리가 필요하게 된다. 재인코딩의 복잡도는 마찬가지로 첫 수신 프레임 내로 이어진다.
도 11은 재인코딩을 그 계산의 상당 부분을 선행하는 손실 프레임으로 재분배시키는 방식으로 수행하는 방법에 대한 순서도(1100)를 예시한다. 이는 계산 부 하 균형 측면에서 바람직하며, MAXOS<<FS이기 때문에 가능성도 충분하다.
도 11에 나타나 있듯이, 순서도(1100)에 나타낸 방법은 단계(1102)에서 시작하는데, 여기서 재인코딩은 손실 프레임 동안에 프레임 경계에 이를 때까지 수행되며, 프레임 경계에서 부분대역 ADPCM 디코더들(320, 330)의 내부 상태들은 저장된다. 추가적으로, 단계(1104)에 나타낸 것과 같이, FS-MAXOS 샘플들의 재인코딩이 끝난 후의 중간 내부 상태들도 또한 저장된다. 단계(1106)에서는, 재인코딩을 위해 생성된 파형 외삽 샘플들이 FS-MAXOS+1부터 FS+MAXOS까지 메모리에 저장된다. 단계(1108)에서, 패킷 손실 후의 첫 번째 수신 프레임 내에서, 저대역 근사 디코딩(low-band approximation decoding)(위에서 논의된 바와 같이 지연 값을 결정하기 위해 이용됨)이 프레임 경계 시점에서 저장된 내부 상태들을 초기 상태 값으로 이용하여 수행된다. 이어서, 판정 단계(1110)에서, 지연(lag)이 양의 값인지 음의 값인지 판단된다. 만약 lag이 양의 값이면, 단계(1112)에 나타낸 바와 같이, FS-MAXOS 샘플들의 내부 값들이 복원되고, 재인코딩이 MAXOS-lag 샘플들에 대해 개시된다. 그러나, 만약 lag이 음의 값이면, 프레임 경계에서의 내부 상태들이 사용되고, 추가적인 |lag|샘플들이 재인코딩된다. 이 방법에 따르면, 최대로, MAXOS 샘플들이 첫 수신 프레임 동안에 재인코딩된다.
관련 기술 분야의 숙련된 자들에게, 첫 양호 프레임 내에서 이뤄지는 재인코딩의 양은 손실 프레임 내의 재인코딩 동안에 더 많은 G.722 상태들을 함께 저장함으로써 더욱 줄어들 수 있다는 점이 이해될 수 있을 것이다. 극단적인 예를 들면, FRAMESIZE-MAXOS 및 FRAMESIZE+MAXOS 사이의 각 샘플에 대한 G.722 상태들이 저장 될 수 있으며, 첫 수신 프레임 내에서 재인코딩은 전혀 필요하지 않다.
순서도(1100)의 방법에 비하였을 때에 첫 양호 프레임 동안에 더 많은 재인코딩을 필요로 하는 또 다른 방법에 있어서, 이 재인코딩은 손실 프레임 동안에 FS-MAXOS 샘플들에 대해 수행된다. 부분대역 ADPCM 디코더들(320, 330)의 내부 상태들 및 남은 2*MAXOS 샘플들은 이어서 첫 수신 프레임 내에서 이용될 수 있도록 메모리에 저장된다. 첫 수신 프레임 중에, 시간 지연 값이 계산되고, 이 지연 값에 기초하여 적절한 개수의 샘플들에 대해, 저장된 G.722 상태들로부터 재인코딩이 시작된다. 이러한 방법은 2*MAXOS 재구축 샘플들의 저장, G.722 상태들의 한 복사본, 및 첫 양호 프레임에서의 최대 2*MAXOS 샘플들의 재인코딩을 필요로 한다. 이러한 대안적인 방법의 한 가지 단점은 위에서 설명된 낮은 복잡도의 디코딩 및 시간 지연 계산에 사용되는 프레임 경계에서의 부분대역 ADPCM 디코더들(320, 330)의 내부 정보를 저장하지 않는다는 점이다.
이상적으로, 지연 값은 외삽 스피치 신호와 첫 수신 프레임에 관련된 디코딩 스피치 신호 사이의 프레임 경계에서 위상 편차(phase offset) 값과 일치하여야 한다. 본 발명의 일 실시예에 따르면, 대략적 지연 값 추정은, 그 중심이 상기 프레임 경계에 일치하지 않는 상대적으로 긴 지연 탐색 윈도우에 걸쳐 계산된다. 이러한 지연 탐색 윈도우는 예를 들어, 피치 주기의 1.5 배가 될 수 있다. 지연 탐색 범위(즉, 외삽 스피치 신호가 원 스피치 신호에 관하여 얼마나 쉬프트되어 있는가에 대한 샘플들의 개수)도 또한 상대적으로 넓을(예를 들어, ±28 샘플들) 수 있다. 정렬을 개선시킬 수 있도록 지연 세밀 탐색이 이어서 수행된다. 지연 세밀 탐 색의 일환으로서, 탐색 윈도우는 첫 수신 프레임의 첫 샘플들에서 시작하도록 이동된다. 이는 외삽 스피치 신호를 대략적 지연 추정 값만큼 이동(offset)시킴으로써 이뤄질 수 있다. 지연 세밀 탐색에서 지연 탐색 윈도우의 크기는 더 작아질 수 있으며, 또한 지연 탐색 범위도 더 작을(예를 들어 ±4 샘플들) 수 있다. 이러한 탐색 방법론은 섹션 C.3.b.i에서 앞서 설명되었던 방법에 비할 때 나머지 면에서는 동일할 수 있다.
리페이징의 개념이 G.722 역방향 적응식 예측 코덱의 맥락에서 지금까지 제공되었다. 이러한 개념은 다른 역방향 적응식 예측 코덱들, 예를 들어 G.726에도 쉽게 확장될 수 있다. 그렇지만, 리페이징의 이용은 역방향 적응식 예측 코덱들에만 한정되지 않는다. 오히려, 대부분의 메모리 기반 코더들은 상태 메모리에 약간씩의 위상 종속성을 나타내며, 따라서 리페이징로부터 이득을 얻을 수 있다.
iii. 시간 워핑(Time Warping)
본 명세서에 사용된 바에 따르면, 시간 워핑이라는 용어는 신호를 시간 축을 따라 신장시키거나 수축시키는 프로세스를 말한다. 다른 부분에서도 논의하였지만, 연속성 있는 신호를 유지하기 위해, 본 발명의 일 실시예는 손실 프레임을 대체하기 위해 이용된 외삽 스피치 신호와 패킷 손실 후 첫 수신 프레임에 관련된 디코딩 스피치 신호를 불연속을 회피하는 쪽으로 결합한다. 이는 두 신호들 사이에 중첩 합산을 수행함으로써 이뤄진다. 그렇지만, 만약 이러한 신호들이 서로 위상 부정합 상태라면, 파형 상쇄(waveform cancellation) 현상이 일어날 수 있으며 귀에 들릴 정도의 가공음을 생성할 수 있다. 예를 들어, 도 6에서 중첩 합산 구간을 고려해보자. 이 구역에서 중첩 합산을 수행하면, 디코딩 스피치 신호(602)의 음의 값을 가지는 부분과 외삽 스피치 신호(604) 사이에 상당한 파형 상쇄가 초래될 수 있다.
본 발명의 일 실시예에 따르면, 패킷 손실 후 첫 수신 프레임과 관련된 디코딩 스피치 신호는 이 디코딩 스피치 신호를 상기 첫 수신 프레임 내 어떤 시간 상의 위치에서 상기 외삽 스피치 신호와 위상 정렬이 이뤄지도록 시간 워핑(time-warp)된다. 시간 워핑의 양은 시간 지연의 값에 따라 제어된다. 따라서, 일 실시예에서, 만약 이 시간 지연이 양의 값이면, 첫 수신 프레임과 관련된 디코딩 스피치 신호는 신장될 것이며, 상기 중첩 합산 구간은 첫 수신 프레임의 시작에 위치할 수 있게 된다. 그러나, 만약 이 시간 지연이 음의 값이면, 디코딩 스피치 신호는 압축될 것이다. 그 결과, 중첩 합산 구간은 |lag| 샘플들만큼 첫 수신 프레임 안쪽으로 이동하여 위치할 것이다.
G.722의 경우에 있어서, 패킷 손실 후 첫 수신 프레임의 시작 시점에서의 몇몇 샘플들은 프레임의 시작 시 부분대역 ADPCM 디코더들(320, 330)의 부정확한 내부 상태들 때문에 믿을 만하지 않을 수 있다. 그래서, 본 발명의 일 실시예에서는, 그 프레임에 관련된 디코딩 스피치 신호에 시간 워핑 기법을 적용하는 경우에 따라, 상기 첫 수신 프레임의 처음 MIN_UNSTBL 샘플들까지는 중첩 합산 구간에 포함되지 않을 수 있다. 예를 들어, 섹션 D에서 아래에서 설명될 실시예에서는, MIN_UNSTBL은 16, 즉 160 샘플 10 ms 프레임의 첫 1 ms로 설정된다. 이 구간에서, 외삽 스피치 신호는 디코더/PLC 시스템(300)의 출력 스피치 신호로서 이용될 수 있 다. 그러한 실시예는 첫 수신 프레임 내에서 스피치 신호의 재수렴 시간에 효과적으로 대응할 수 있다.
도 12a, 12b, 12c는 이러한 개념의 몇 가지 예를 설명한다. 도 12의 예에서, 시간 축선(1200)은 디코딩 스피치 신호가 첫 수신 프레임 내에서 외삽 신호보다 앞서는 것을 보여준다. 그 결과, 디코딩 스피치 신호는 -lag 샘플들만큼 시간 워핑 수축(시간 지연 값 lag가 음의 값임)을 거친다. 시간 워핑의 적용 결과는 시간 축선(1210)에 나타나 있다. 시간 축선(1210)에 나타나 있듯이, 신호들은 중첩 합산 구간의 중심에서 그리고 그 근처에서 동위상 상태이다. 이 경우에, 상기 중첩 합산 구간의 중심은 MIN_UNSTBL - lag + OLA/2에 위치하며, 여기서 OLA는 중첩 합산 구간(overlap-add region) 내의 샘플 수이다. 도 12b의 예에서, 시간 축선(1220)은 디코딩 스피치 신호가 첫 수신 프레임 내에서 외삽 신호보다 뒤지는 것을 보여준다. 그 결과, 디코딩 스피치 신호는 lag 샘플들만큼 시간 워핑 신장되어 정렬을 이뤄낸다. 시간 워핑의 적용 결과는 시간 축선(1230)에 나타나 있다. 이 경우에 있어서, MIN_UNSTBL > lag이며, 첫 수신 프레임 내에 여전히 얼마간의 불안정한 구간이 있다. 도 12c의 예에서, 시간 축선(1240)은 디코딩 스피치 신호가 첫 수신 프레임 내에서 다시 한번 외삽 신호보다 뒤지는 것을 보여주며, 그리하여 디코딩 스피치 신호는 시간 축선(1250)에 나타난 결과를 제공할 수 있도록 시간 워핑 신장된다. 그러나, 시간 축선(1250)에 나타나 있듯이, MIN_UNSTBL ≤lag이므로, 상기 중첩 합산 구간은 첫 수신 프레임 내의 첫 샘플에서 시작될 수 있다.
상기 중첩 합산 구간이 첫 수신 프레임의 시작에 가능한 한 가까이 위치한다 면, 디코딩 스피치 신호 및 외삽 신호 사이의 "동위상 지점(in-phase point)"이 상기 중첩 합산 구간의 중간에 있는 것이 바람직하다. 이는 앞의 손실 프레임에 관하여 합성된 스피치 신호가 첫 수신 프레임 내까지 외삽되어야만 하는 시간의 양을 줄여준다. 본 발명의 일 실시예에서, 이는 시간 지연의 2 단계 추정을 수행함으로써 실현된다. 첫 단계에서는, 대략적 지연 추정이 상대적으로 긴 지연 탐색 윈도우 전반에 걸쳐 계산되며, 이 탐색 윈도우의 중심은 중첩 합산 구간의 중심과 일치하지 않을 수 있다. 이러한 지연 탐색 윈도우는 예를 들어, 피치 주기의 1.5 배에 이를 수 있다. 상기 지연 탐색 범위(즉, 외삽 스피치 신호가 디코딩 스피치 신호에 관하여 쉬프트되는 샘플의 개수)는 또한 상대적으로 넓을(예를 들어, ±28 샘플들) 수 있다. 정렬을 개선시킬 수 있도록 지연 세밀 탐색이 이어서 수행된다. 지연 세밀 탐색의 일환으로서, 탐색 윈도우는 대략적 지연 추정에 따라 예측된 중첩 합산 위치 주변에 중심을 두게 된다. 이는 외삽 스피치 신호를 대략적 지연 추정 값만큼 이동(offset)시킴으로써 이뤄질 수 있다. 지연 세밀 탐색에서 지연 탐색 윈도우의 크기는 더 작아질(예를 들어, 중첩 합산 구간의 크기만큼) 수 있으며, 또한 지연 탐색 범위도 더 작을(예를 들어 ±4 샘플들) 수 있다. 이러한 탐색 방법론은 섹션 C.3.b.i에서 앞서 설명되었던 방법에 비할 때 나머지 면에서는 동일할 수 있다.
시간 워핑을 수행하는 데에는 많은 방법이 있다. 그 중 한 가지 기술은 개별적(piece-wise) 단일 샘플 쉬프트 및 중첩 합산을 수반한다. 도 13의 순서도(1300)는 이 기술을 이용하여 시간 수축하는 방법을 묘사한다. 이 방법에 따르면, 단계(1302)에서 나타내었듯이, 주기적으로 샘플이 탈락(drop)된다. 이 샘플 탈락의 시점으로부터, 원 신호 및 (탈락으로 인해) 좌로 쉬프트된 신호가 단계(1304)에서 나타내었듯이 중첩 합산된다. 도 14의 순서도(1400)는 이러한 기술을 이용하여 시간 신장하는 방법을 묘사한다. 이 방법에 따르면, 단계(1402)에서 주기적으로 샘플이 반복된다. 샘플 반복이 일어나는 시점부터, 단계(1404)에 나타내었듯이, 원 신호 및 (샘플 반복으로 인해) 우로 쉬프트된 신호가 중복 합산된다. 이러한 연산이 이뤄지는 중첩 합산 윈도우의 길이는 샘플 추가/탈락의 주기성에 종속적이도록 만들어질 수 있다. 너무 심한 신호 스무딩(smoothing)을 회피할 수 있도록, 최대 중복 합산 주기가 정의(예를 들어 8 샘플들)될 수 있다. 샘플들의 추가/탈락이 일어나는 주기는 다양한 인자들, 예를 들어 프레임 크기, 추가/탈락되는 샘플들의 개수 및 추가 동작 또는 탈락 동작이 수행되고 있는지 여부 등에 의존적이도록 만들어질 수 있다.
시간 워핑의 양은 제한될 수 있다. 예를 들어, 아래 섹션 D에서 설명되는 G.722 시스템에서, 시간 워핑의 양은 10 ms 프레임들에 대해 ±1.75 ms(즉, 160 샘플짜리 10 ms 프레임 중에서 28 샘플들)로 제한된다. 이보다 더 큰 시간 워핑은 위에서 설명한 유해한 간섭을 제거할 수는 있지만, 종종 다른 가청 왜곡을 도입시킨다는 것이 발견되었다. 따라서, 그러한 실시예에서는, 시간 지연이 이 범위 밖인 경우에, 시간 워핑은 전혀 수행되지 않는다.
아래 섹션 D에서 설명되는 시스템은 패킷 손실 이후 첫 수신 프레임 후부터 0 샘플 지연을 보장하도록 설계된다. 이 이유때문에, 상기 시스템은 첫 수신 프레임을 넘어서까지 디코딩 스피치 신호의 시간 워핑을 수행하지 않는다. 이는, 차례 로, 앞 문단에서 논의된 바와 같은 가청 왜곡이 없더라도, 일어날 수 있는 시간 워핑의 양을 제한시킨다. 그렇지만, 해당 기술 분야에 숙련된 자들에게 이해될 수 있다시피, 패킷 손실 후 첫 수신 프레임 이후 어느 정도 샘플 지연을 용인할 수 있는 시스템 내에서, 시간 워핑은 첫 양호 프레임 이후까지도 디코딩 스피치 신호에 대해 적용될 수 있으며, 그럼으로써, 가청 왜곡을 만들지 않고 더 큰 시간 지연에 대해 조절을 허용할 수 있다. 물론, 그러한 시스템에서도, 만약 첫 수신 프레임 다음의 프레임이 손실되는 경우에는, 시간 워핑은 첫 양호 프레임에 관련된 디코딩 스피치 신호에 대하여만 적용될 수 있다. 그러한 대안적인 실시예도 또는 본 발명의 범위 및 사상 내에 들어 있다.
본 발명의 다른 실시예에 있어서, 시간 워핑은 디코딩 스피치 신호 및 외삽 스피치 신호 양자에 대해 수행된다. 이러한 방법은 다양한 이유로서 향상된 성능을 제공할 수 있다.
예를 들어, 만약 시간 지연이 -20이라면, 앞의 방법들에 따르면 디코딩 스피치 신호는 20 샘플들만큼 수축될 것이다. 이는 외삽 스피치 신호의 20 샘플들이 첫 수신 프레임 내에서 이용될 수 있게 생성될 필요가 있음을 의미한다. 이 숫자는 외삽 스피치 신호를 함께 수축시킴으로써 감소시킬 수 있다. 예를 들어, 외삽 스피치 신호는 4 샘플만큼 수축될 수 있으며, 디코딩 스피치 신호를 위해서 16 샘플들을 남겨 둘 수 있다. 이는 첫 수신 프레임 내에서 이용되어야만 하는 외삽 신호의 샘플들 양을 감소시키며, 또한 디코딩 스피치 신호에 대해 수행되어야 하는 시간 워핑의 양도 감소시킨다. 상술하였듯이, 섹션 D의 실시예에 있어서, 시간 워핑은 28 샘플들로 제한될 필요가 있음이 발견되었다. 신호들을 정렬하는 데에 요구되는 시간 워핑의 양이 감소된다는 점은 시간 워핑으로 도입되는 왜곡음이 더 적어진다는 점을 의미하며, 또한 향상이 이루어질 수 있는 경우의 수를 증가시킨다.
디코딩 스피치 신호 및 외삽 스피치 신호 양자를 시간 워핑시킴으로써, 중첩 합산 구간 내에서 더 나은 파형 정합을 또한 얻을 수 있을 것이다. 그 설명은 다음과 같다. 만약 지연이 앞의 예와 마찬가지로 -20 샘플들이라면, 이는 디코딩 스피치 신호가 외삽 신호를 20 샘플들만큼 앞선다는 것을 의미한다. 이의 가장 유력한 원인으로는 외삽에 이용된 피치 주기가 실제 피치보다 더 컸을 것이라는 점이다. 외삽 스피치 신호를 함께 시간 수축시킴으로써, 중첩 합산 구간에서의 이 신호의 실효적인 피치는 작아질 수 있으며, 이는 실제 피치 주기에 더 가까워질 것이다. 또한, 원 신호를 덜 시간 수축시킴으로써, 이 신호의 실효적인 피치 주기는 이 신호만을 배타적으로 수축에 사용할 경우에 비해 더 커진다. 따라서, 중첩 합산 구간에서 두 파형들은 좀더 근접하게 정합하는 피치 주기를 가질 것이며, 따라서 파형들은 좀더 좋은 정합을 가지게 될 것이다.
만약 지연이 양의 값이면, 디코딩 스피치 신호는 신장된다. 이 경우에, 외삽 신호를 시간 신장시키는 것은 첫 수신 프레임 내에서 이용을 위해 생성되어야만 하는 외삽 샘플들의 개수를 증가시킬 것이기 때문에, 어떤 개선점이 얻어질 것인지 여부는 명확하지 않다. 그렇지만, 만약 계속적인 패킷 손실이 있어 왔고, 두 파형들이 심각하게 위상 부정합 상태에 있다면, 이러한 방법은 개선된 성능을 제공할 수 있다. 예를 들어, 지연이 30 샘플들인 경우에, 앞서 설명된 방식에서는 이 지연 값이 28 샘플들의 제한 사항보다 더 크기 때문에 시간 워핑이 전혀 수행되지 않는다. 30 샘플들만큼 시간 워핑하는 것은 그 자체로 왜곡음을 도입시킬 가능성이 매우 크다. 그렇지만, 만약 두 신호들 사이가 30 샘플들이나 벌어져 있다면, 예를 들어 외삽 스피치 신호에 대해 10 샘플만큼의 시간 신장과 디코딩 스피치 신호에 대해 20 샘플만큼의 시간 신장을 하면, 두 신호들은 너무 큰 시간 워핑을 적용시킬 필요없이도 정렬 범위로 옮겨질 수 있을 것이다.
D. G.722 디코더 내의 예시적인 구현예에 관한 상세 설명
본 섹션은 ITU-T 권고안 G.722 스피치 디코더 내에 구현한 본 발명의 특정한 구현예에 관련된 구체적인 상세 사항들을 제공한다. 이 예시적 구현예는 본질적으로 10 ms 프레임 크기를 가지고 동작하며, 10 ms의 배수에 해당하는 패킷 또는 프레임 크기에 대해서도 동작할 수 있다. 더 긴 입력 프레임은 수퍼 프레임으로 취급되며, 이를 위해서는 PLC 로직은 자신의 고유한 프레임 크기인 10 ms 상태로 적절한 회수만큼 호출된다. 이는 동일한 프레임 크기를 이용하는 통상의 G.722 디코딩과 비교하였을 때에 추가적인 지연을 전혀 초래하지 않는다. 이러한 구현 세부 사항들 및 아래에 설명될 사항들은 단지 예시의 방법으로 제공되는 것이며, 본 발명을 한정하고자 의도되는 것이 아니다.
이 섹션에 설명된 실시예는 G.722 Appendix IV에 설명된 PLC 알고리즘과 동일한 복잡도 요구 조건들을 만족하면서도, 해당 Appendix에서 설명되는 PLC 알고리즘에 비해 대단히 훌륭한 스피치 품질을 제공한다. 이러한 높은 품질 덕분에, 이 섹션에 설명된 실시예는 프레임 삭제 또는 패킷 손실을 경험할 수 있는 G.722의 일반적인 응용 분야들에 적합하다. 그러한 응용 분야들에는, 예를 들어, VoIP(Voice over Internet Protocol), WiFi(Voice over Wireless Fidelity) 및 DECT(Digital Enhanced Cordless Telecommunications) Next Generation 등이 포함된다. 이 섹션에 설명되는 실시예는, PLC를 가지지 않는 기본 G.722 디코더를 구현한 후에 실질적으로 복잡도 여유가 전혀 남지 않은 경우와 같은 응용 분야들을 제외하면, 적용시키기 아주 쉽다.
1. 축약어 및 관용표현
본 섹션에서 사용되는 여러 축약어들을 아래 표 1에 나열하였다.
축약어 설명
ADPCM Adaptive Differential PCM
ANSI American National Standards Institute
dB Decibel
DECT Digital Enhanced Cordless Telecommunications
DC Direct Current
FIR Finite Impulse Response
Hz Hertz
LPC Linear Predictive Coding
OLA OverLap-Add
PCM Pulse Code Modulation
PLC Packet Loss Concealment
PWE Periodic Waveform Extrapolation
STL005 Software Tool Library 2005
QMF Quadratic Mirror Filter
VoIP Voice over Internet Protocol
WB WideBand
WiFi Wireless Fidelity
본 상세한 설명은 또한 여러 가지 관용 표현들을 이용할 수 있으며, 그 중 일부가 이제 설명될 것이다. PLC 알고리즘은 10 ms의 고유 프레임 크기에서 동작하며, 따라서, 상기 알고리즘은 10 ms 프레임에 대해서만 설명된다. 더 큰 크기(10 ms의 배수)의 패킷들에 대해서는, 수신된 패킷은 10 ms 조각 형태로 디코딩된다. 16 kHz 샘플링 레이트 수준에 있는 신호들의 개별적인 시간 색인은 일반적으로 "j" 또는 "i"를 이용하여 참조된다. 8 kHz 샘플링 레이트 수준의 신호들의 개별적인 시간은 통상적으로 "n"을 가지고 참조된다. 저대역(0-4 kHz) 신호들은 첨자 "L"로 식별되며, 고대역(4-8 kHz) 신호들은 첨자 "H"로 식별된다. 가능한 경우에는, 본 상세한 설명은 ITU-T G.722의 관용 표현들을 재사용하려고 노력하였다.
가장 자주 사용되는 몇몇 심볼들 및 그 설명 리스트가 아래 표 2a, 2b, 2c에 제공된다.
심볼 설명
xout(j) 16 kHz G.722 디코더 출력
xPLC(i) 16 kHz G.722 PLC 출력
w(j) LPC 윈도우
xw(j) 윈도우가 씌워진 스피치 신호
r(i) 자기 상관 값
Figure 112008044428947-pct00004
스펙트럼 스무딩 및 백색 잡음 상관 연산 후의
자기 상관 값
Figure 112008044428947-pct00005
중간 LPC 예측기 계수들
ai LPC 예측기 계수들
d(j) 16 kHz 단기 예측 오차 신호
avm 평균 크기
a'i 가중치 적용된 단기 합성 필터 계수들
심볼 설명
xw(j) 16 kHz 가중치 적용된 스피치 신호
xwd(n) 다운 샘플링된 가중치 적용된 스피치 신호(2 kHz)
bi 다운 샘플링을 위한 60차 저역 통과 필터
c(k) 대략적 피치 분석 시의 상관 연산 (2 kHz)
E(k) 대략적 피치 분석 시의 에너지 (2 kHz)
c2(k) 대략적 피치 분석 시의
부호가 붙은 제곱근 상관 연산 (2 kHz)
cpp 대략적 피치 주기
cpplast 마지막 프레임의 대략적 피치 주기
Ei(j) 보간된(interpolated) E(k)(16 kHz까지)
c2i(j) 보간된 c2(k)(16 kHz까지)
Figure 112008044428947-pct00006
피치 세밀화 시의 에너지(16 kHz)
Figure 112008044428947-pct00007
피치 세밀화 시의 상관 값(16 kHz)
ppfe 프레임 삭제 경우의 피치 주기
ptfe 프레임 삭제 경우의 피치 탭(pitch tap)
ppt 피치 예측기 탭(pitch predictor tap)
merit 주기성의 성능 계수(figure of merit)
Gr 랜덤 성분에 대한 스케일링 인자
Gp 주기적 성분에 대한 스케일링 인자
ltring(j) 장기 (피치) 링잉(ringing)
ring(j) 최종 링잉(단기 포함)
wi(j) 페이드인 윈도우(fade-in window)
wo(j) 페이드아웃 윈도우(fade-out window)
wn(j) 잡음 생성기의 출력
wgn(j) 잡음 생성기의 스케일링된 출력
fn(j) 필터링 및 스케일링된 잡음
cfecount 연속 10 ms 프레임 삭제의 카운터
wi(j) 중첩 합산을 위한 윈도우
wo(j) 중첩 확산을 위한 윈도우
hi QMF 필터 계수들
xL(n) 저대역 부분대역 신호(8 kHz)
xH(n) 고대역 부분대역 신호(8 kHz)
IL(n) 저대역 ADPCM 코더를 위한 색인(8 kHz)
IH(n) 고대역 ADPCM 코더를 위한 색인(8 kHz)
sLz(n) 저대역 예측 신호, 제로 섹션 기여분
sLp(n) 고대역 예측 신호, 폴 섹션 기여분
sL(n) 저대역 예측 신호
eL(n) 저대역 예측 오차 신호
rL(n) 저대역 재구축 신호(Low-band reconstructed signal)
pLt(n) 저대역 부분 재구축 신호
심볼 설명
L(n) 저대역 로그 스케일 인자
L(n) 저대역 스케일 인자
L,m1(n) 저대역 로그 스케일 인자, 제1 평균
L,m2(n) 저대역 로그 스케일 인자, 제2 평균
L, trck(n) 저대역 로그 스케일 인자, 트랙킹(tracking)
L, chng(n) 저대역 로그 스케일 인자, 변화율(degree of change)
βL(n) 저대역 폴 섹션의 안정도 마진
βL, MA(n) 저대역 폴 섹션의 안정도 마진의
이동 평균(moving average)
βL, min(n) 저대역 폴 섹션의 최소 안정도 마진
sHz(n) 고대역 예측 신호, 제로 섹션 기여분
sHp(n) 고대역 예측 신호, 폴 섹션 기여분
sH(n) 고대역 예측 신호
eH(n) 고대역 예측 오차 신호
rH(n) 고대역 재구축 신호
rH , HP(n) 고대역 고역 통과 필터링 및 재구축 신호
pH(n) 고대역 부분 재구축 신호
pH , HP(n) 고대역 고역 통과 필터링 및 부분 재구축 신호
H(n) 고대역 로그 스케일 인자
H,m(n) 고대역 로그 스케일 인자, 평균
H, trck(n) 고대역 로그 스케일 인자, 트랙킹
H, chng(n) 고대역 로그 스케일 인자, 변화율
αLP(n) 고대역 로그 스케일 인자의
저역 통과 필터링을 위한 계수
H, LP(n) 저역 통과 필터링된 고대역 로그 스케일 인자
rLe(n) 추정된 저대역 재구축 오차 신호
es(n) 리페이징의 시간 지연 계산을 위한 외삽 신호
RSUB(k) 서브샘플링된 정규화 교차 상관
R(k) 정규화 교차 상관
TLSUB 서브샘플링된 시간 지연
TL 리페이징을 위한 시간 지연
estw(n) 시간 워핑 시의 시간 지연 세밀화를 위한 외삽 신호
TLwarp 시간 워핑을 위한 시간 지연
xwarp(j) 시간 워핑된 신호(16 kHz)
esola(j) 중첩 합산을 위한 외삽 신호(16 kHz)
2. PLC 알고리즘에 대한 일반적인 설명
도 5를 참조하여 위에서 설명된 바와 같이, 디코더/PLC 시스템(300)에 의해 처리될 수 있는 프레임들에는 6 종류의 프레임들이 있다. 즉, 타입 1, 타입 2, 타입 3, 타입 4, 타입 5 및 타입 6이다. 타입 1 프레임은 패킷 손실 이후 여덟 번째의 수신 프레임 이후의 여타 수신 프레임을 말한다. 타입 2 프레임은 패킷 손실과 관련된 첫 번째 및 두 번째 손실 프레임 중의 어느 하나를 말한다. 타입 3 프레임은 패킷 손실과 관련된 세 번째 내지 여섯 번째 손실 프레임 중의 어느 하나이다. 타입 4 프레임은 패킷 손실에 관련된 여섯 번째 프레임 이후의 여타 손실 프레임 중 하나를 말한다. 타입 5 프레임은 패킷 손실에 곧바로 이어지는 한 수신 프레임을 말한다. 마지막으로 타입 6 프레임은 패킷 손실에 이어 수신된 두 번째 내지 여덟 번째까지의 수신 프레임 중 어느 하나를 말한다. 본 섹션에서 설명되는 PLC 알고리즘은 그 지속 시간 동안 본질적으로 10 ms 프레임 크기에 따라 동작한다.
타입 1 프레임들은 통상적인 G.722 동작에 따라 디코딩되며, 추가적으로 몇몇 상태 메모리를 유지하고 PLC 및 기타 프로세싱을 원활하게 하기 위한 프로세싱을 더 가진다. 도 15는 본 발명의 일 실시예에 따른 이러한 동작들을 수행하는 로직의 블록도(1500)이다. 특히, 도 15에 나타나 있듯이, 타입 1 프레임의 처리 동안에, 저대역 ADPCM 코더를 위한 인덱스 IL(n)는 비트 디멀티플렉서(도 15에는 도시되지 않음)로부터 수신되며, 저대역 ADPCM 디코더(1510)에 의해 디코딩되어 부분대역 스피치 신호를 산출한다. 이와 유사하게, 고대역 ADPCM 코더를 위한 인덱스 IH(n)는 상기 비트 디멀티플렉서로부터 수신되며, 고대역 ADPCM 디코더(1520)에 의해 디코딩되어 부분대역 스피치 신호를 산출한다. 이러한 저대역 스피치 신호 및 고대역 스피치 신호는 QMF 합성 필터 뱅크(1530)에 의해 결합되고, 디코더 출력 신호 xout(j)를 산출한다. 이러한 동작들은 통상의 G.722 디코딩에 부합한다.
이러한 통상적인 G.722 디코딩 연산들에 부가하여, 타입 1 프레임의 프로세싱이 수행되는 동안에, 로직 블록(1540)은 PLC 관련 저대역 ADPCM 상태 메모리를 갱신하도록 동작하며, 로직 블록(1550)은 PLC 관련 고대역 ADPCM 상태 메모리를 갱신하며, 로직 블록(1560)은 WB PCM PLC 관련 상태 메모리를 갱신하도록 동작한다. 이들 상태 메모리의 갱신 동작들은 다른 프레임 타입들과 관련하여 일어날 수 있는 PLC 프로세싱을 원활하게 할 수 있도록 수행되는 것들이다.
광대역(wideband, WB) PCM PLC는 타입 2, 타입 3 및 타입 4의 프레임들에 관하여 16 kHz 출력 스피치 도메인에서 수행된다. WB PCM PLC를 수행하는 데에 이용되는 로직의 블록도(1600)가 도 16에 제공된다. G.722 디코더의 과거 출력 스피치, xout(j)는 버퍼링되고 WB PCM PLC 로직에 전달된다. WB PCM PLC 알고리즘은 주기적 파형 외삽(Periodic Waveform Extrapolation, PWE)에 기초하며, 피치 추정은 WB PCM PLC 로직의 중요한 구성요소이다. 초기에, 가중치 적용된(weighted) 스피치 도메인 내에서 (2 kHz로) 다운샘플링된 신호에 기초하여 대략적 피치 값이 추정된다. 이어서, 이러한 추정은 원래의 16 kHz 샘플링을 이용하여 최대 해상도에서 세밀화(refined)된다. WB PCM PLc 로직의 출력 xPLC(i)은 주기적으로 외삽된 파형과 LPC에 의해 성형된(shaped) 잡음의 선형 조합(linear combination)이다. 지속되는 프레임 삭제의 경우에, 출력 파형 xPLC(i)는 점진적으로 묵음화된다. 묵음화는 프레임 손실 시작 20 ms 이후부터 시작하여 60 ms의 손실 후에 완료된다.
도 17의 블록도(1700)에 나타나 있듯이, 타입 2, 타입 3 및 타입 4의 프레임들의 경우에, WB PCM PLC 로직의 출력 xPLC(i)는 G.722 QMF 분석 필터 뱅크(1702)를 통과하여 상응하는 부분대역 신호들을 생성하며, 이들 부분대역 신호들은 이어서 디코더의 상태들 및 메모리를 갱신할 수 있도록, 변형된 저대역 ADPCM 인코더(1704) 및 변형된 고대역 ADPCM 인코더(1706)에 각각 전달된다. 부분 단순화(partial simplied) 부분대역 ADPCM 인코더들만이 이 갱신에 이용된다.
도 16 및 도 17에 나타난 로직에 의해 처리되는 프로세싱은 손실 프레임들 동안에 이루어진다. 상기 변형된 저대역 ADPCM 인코더(1704) 및 변형된 고대역 ADPCM 인코더(1706)는 각각 복잡도를 줄여 단순화된 것들이다. 이들 인코더들은 본 명세서 다른 부분에서 상세하게 설명되어 있다. 통상의 G.722 부분대역 ADPCM 인코더들에는 나타나지 않지만 상기 인코더들(1704 및 1706)에서는 제공되는 한가지 특징은 신호의 특성들 및 패킷 손실의 지속 시간에 기초하여 인코더들을 적응식으로 리셋하는 것이다.
PLC 알고리즘에 관련된 가장 복잡한 프로세싱은 타입 5의 경우에 이루어지는데, 타입 5는 패킷 손실에 곧바로 이어지는 첫 수신 프레임이다. 이 프레임은 외삽 파형에서 정상적으로 디코딩된 파형으로 천이가 이루어지는 프레임이다. 타입 5 프레임의 프로세싱 동안에 사용되는 기술들은 리페이징 및 시간 워핑 등을 포함하며, 이들은 여기서 더욱 상세하게 설명될 것이다. 도 18은 이들 기술들을 수행하는 데에 이용되는 로직의 블록도(1800)를 제공한다. 추가적으로, 타입 5 프레임의 프로세싱 동안에, 디코더 측의 QMF 합성 필터 뱅크는 여기에 더욱 상세하게 설명되는 방법을 통해 갱신된다. 타입 5 프레임의 프로세싱과 관련된 또 하나의 기능은 패킷 손실 후 첫 수신 프레임의 시작 시점에서 저대역 및 고대역 로그 스케일 인자들에 대한 적응식 설정 기능을 포함한다.
타입 5 및 타입 6 프레임들은 모두 변형되고 제한된 부분대역 ADPCM 디코더들을 가지고 디코딩된다. 도 19는 타입 5 및 타입 6의 프레임들을 프로세싱하는 데에 이용되는 로직의 블록도(1900)를 설명한다. 도 19에 나타나 있듯이, 로직(1970)은 타입 5 내지 타입 6 프레임들의 프로세싱 동안에, 부분대역 ADPCM 디코더들(1910, 1920)에 제한 사항들을 부여하고 제어를 수행한다. 부분대역 ADPCM 디코더들에 대한 제한 및 제어는 패킷 손실 후 첫 80 ms 동안에 가해진다. 어떤 사항들은 40 ms를 초과하여 연장되지 않지만, 다른 사항들은 그 주기나 정도에 있어서 적응식이다. 이러한 제한 및 제어 메카니즘은 여기에 더욱 상세하게 설명될 것이다. 도 19에 나타낸 바와 같이, 로직 블록들(1940, 1950, 1960)은 타입 5 또는 타입 6 프레임의 프로세싱 후에 상태 메모리를 갱신하는 데에 이용된다.
무오류 채널 조건에 있어서, 본 섹션에 설명된 PLC 알고리즘은 G.722와 비트 수준에서 완전히 동일하다. 더 나아가, 오류가 있는 조건에서도, 상기 알고리즘은 패킷 손실 후 8 프레임 다음부터는 G.722와 똑같으며, 비트 오류가 없다면, G.722 무오류 출력을 향한 수렴이 예상될 수 있을 것이다.
본 섹션에 설명된 상기 PLC 알고리즘은 10 ms의 배수인 여하한 패킷 크기도 지원한다. 상기 PLC 알고리즘은 10 ms보다 더 큰 패킷 크기에 대해서는, 단순히 10ms 간격으로 한 패킷마다 여러 차례 호출될 뿐이다. 따라서, 이 섹션의 나머지 부분에서는, PLC 알고리즘은 본질적으로 10 ms 프레임 크기의 관점에서 이러한 맥락으로 설명된다.
3. G.722 출력의 파형 외삽
패킷 손실에 상응하는 손실 프레임들(타입 2, 타입 3 및 타입 4)에 관하여, 도 16에 설명된 WB PCM PLC 로직은 이전 프레임들과 관련된 G.722 출력 파형 xout(j)를 외삽하여, 현재 프레임에 대한 대체 파형을 생성해 낸다. 이렇게 외삽된 광대역 신호 파형 xPLC(i)는 이어서 타입 2, 타입 3 및 타입 4 프레임들의 프로세싱 동안에 G.722 PLC 로직의 출력 파형으로서 이용된다. 도 16의 여러 블록들을 설명하는 데에 편의를 위해, 상기 신호 xPLC(i)가 손실 프레임들에 대해 WB PCM PLC 로직에 의해 계산된 후에, 신호 xPLC(i)는, 전체 G.722 디코더/PLC 시스템의 최종 출력인 xout(j)를 저장하는 버퍼에 기록된 것으로 간주된다. 도 16의 각 프로세싱 블록은 이제부터 상세하게 설명될 것이다.
a. 8차 LPC 분석
블록(1604)은, 현재 프레임에 관련된 xout(j) 신호가 계산되고 버퍼에 저장된 후에, 프레임 프로세싱 루프의 끝에 다다랐을 때에 8차(8th-order) LPC 분석을 수행하도록 구성된다. 이 8차 LPC 분석은 일종의 자기 상관 LPC 분석으로서, 현재 프레임과 관련된 신호인 xout(j) 신호에 대해 적용된 10 ms 비대칭 분석 윈도우를 가진다. 이 비대칭 윈도우는 다음과 같이 주어진다.
Figure 112008044428947-pct00008
xout(0), xout(1), ..., xout(159)가 G.722 디코더/PLC 시스템의 현재 프레임에 관련된 출력 광대역 신호 샘플들을 나타낸다고 하자. 윈도우를 씌우는 동작(windowing operation)은 다음과 같이 수행된다.
xw(j) = xout(j)w(j), j=0,1,2,...,159
다음으로, 자기 상관 계수들은 다음과 같이 계산된다.
Figure 112008044428947-pct00009
스펙트럼 스무딩 및 백색 잡음 교정 동작들이 이어서 이 자기 상관 계수들에 다음과 같이 적용된다.
Figure 112008044428947-pct00010
여기서, fs=16000은 입력 신호의 샘플링 레이트이고 σ=40이다.
다음으로, 레빈슨-더빈 연산(Levinson Durbin recursion)이 사용되어 i=0,1,2,...8에 대해, 상기 자기 상관 계수들
Figure 112008044428947-pct00011
을 LPC 예측기 계수들
Figure 112008044428947-pct00012
로 변환한다. 만약 상기 레빈슨-더빈 반복 연산이, 이 반복 연산이 완료되기도 전에 연산에서 빠져나오면(예를 들어 예측 나머지 에너지 E(i)가 0보다 작은 이유로), 그러한 경우에는 마지막 프레임에 연관된 단기 예측기 계수들이 또한 현재 프레임 내에서 이용된다. 이러한 방식으로 예외 사항들을 처리하려면, LPC 예측 계수들
Figure 112008044428947-pct00013
어레이의 초기 값이 있어야 할 필요가 있다. 상기
Figure 112008044428947-pct00014
어레이의 초기 값은
Figure 112008044428947-pct00015
=1이고 i=1,2,...,8에 대해서는
Figure 112008044428947-pct00016
=0으로 설정하는 것이다. 상기 레빈슨-더빈 반복 알고리즘은 아래와 같이 구체화된다.
1. 만약
Figure 112008044428947-pct00017
이면, 마지막 프레임의
Figure 112008044428947-pct00018
어레이를 사용하고, 레빈슨-더빈 반복 연산을 빠져나간다.
2.
Figure 112008044428947-pct00019
3.
Figure 112008044428947-pct00020
4.
Figure 112008044428947-pct00021
5.
Figure 112008044428947-pct00022
6. 만약 E(1)≤0이면, 마지막 프레임의
Figure 112008044428947-pct00023
어레이를 사용하고, 레빈슨-더빈 반복 연산을 빠져나간다.
7. i=2,3,4,...,8에 대해 다음을 수행한다.
a.
Figure 112008044428947-pct00024
b.
Figure 112008044428947-pct00025
c.
Figure 112008044428947-pct00026
d.
Figure 112008044428947-pct00027
e. 만약 E(i)≤(0)이면, 마지막 프레임의
Figure 112008044428947-pct00028
어레이를 사용하고, 레빈슨-더빈 반복 연산을 빠져나간다.
만약 상기 반복 연산이 너무 일찍 빠져나올 경우, 이전에 처리된 프레임의
Figure 112008044428947-pct00029
어레이가 사용된다. 만약 상기 반복 연산이 성공적으로 완료된 경우(통상적인 경우), 상기 LPC 예측기 계수들은 다음과 같이 취해진다.
Figure 112008044428947-pct00030
Figure 112008044428947-pct00031
대역폭 확장 동작을 위에서 유도한 계수들에 적용함으로써, PLC 예측기 계수들의 최종 세트가 다음과 같이 얻어진다.
Figure 112008044428947-pct00032
b. 단기 예측 잔여 신호(Short-Term Prediction Residual Signal)의 계산
도 16의 블록(1602)은 "A(z)"라고 명명되어 있는데, 위에서 계산된 ai의 필터 계수들을 가지는 단기 선형 예측 오차 필터를 나타낸다. 블록(1602)은 8차 LPC 분석이 수행된 다음에 동작하도록 구성된다. 블록(1602)은 다음과 같은 단기 예측 잔여 신호 d(j)를 계산한다.
Figure 112008044428947-pct00033
관례도 그러하듯이, 현재 프레임의 시간 인덱스 n은 이전에 처리된 프레임의 시간 인덱스에 이어 계속된다. 다른 말로 하면, 만약 0, 1, 2 , ..., 159의 범위를 가지는 시간 인덱스가 현재 프레임을 나타낸다면, -160, -159, ..., -1의 범위를 가지는 시간 인덱스는 이전에 처리된 프레임을 나타낸다. 따라서, 위의 수식에서, 만약 상기 인덱스 (j-i)가 음의 값이라면, 그 인덱스는 앞서 처리된 프레임의 끝에 가까운 신호 샘플을 가리키는 것이다.
c. 스케일링 인자(scaling factor)의 계산
도 16 내 블록(1606)은 현재 프레임과 관련된 단기 예측 잔여 신호의 평균 크기를 계산하도록 구성된다. 이 동작은 단기 예측 잔여 신호 d(j)가 앞서 설명된 방식을 통해 블록(1602)에서 계산된 후에 수행된다. 평균 크기 avm은 다음과 같이 계산된다.
Figure 112008044428947-pct00034
만약 처리될 다음 프레임이 손실 프레임(다시 말해, 패킷 손실에 상응하는 프레임)이라면, 이 평균 크기 avm은, 만약 현재 프레임이 충분히 비유성음(unvoiced) 상태라면, 백색 가우시안 잡음 시퀀스를 스케일링하는 데에 이용되는 스케일링 인자로서 사용될 수 있다.
d. 가중 스피치 신호(weighted speech signal)의 계산
도 16의 블록(1608)은 "1/A(z/y)"로 명명되어 있는데, 가중 단기 합성 필터(weighted short-term synthesis filter)를 나타낸다. 블록(1608)은 단기 예측 잔여 신호 d(j)가 블록(1602)을 참조하여 위에서 설명된 방법을 통해 현재 프레임에 관하여 계산된 후에, 동작하도록 구성된다. i=0,1,...8에 대해 이 가중 단기 합성 필터의 계수들 a'i는 γ1=0.75를 가지고 다음과 같이 계산된다.
Figure 112008044428947-pct00035
상기 단기 예측 잔여 신호 d(j)는 이 가중 단기 합성 필터에 통과된다. 상응하는 출력 가중 스피치 신호 xw(j)는 다음과 같이 계산된다.
Figure 112008044428947-pct00036
e. 8대1 데시메이션(eight-to-one decimation)
도 16의 블록(1616)은 블록(1608)에 의한 가중 스피치 신호 출력을 60차 최소 위상(minimum-phase) FIR(finite impulse response) 필터를 통과시키며 이어서, 8:1 데시메이션이 수행되어 앞서 얻은 16 kHz 저역 통과 필터링된 가중 스피치 신호를 2 kHz 다운샘플링된 가중 스피치 신호 xwd(n)으로 다운샘플링한다. 이 데시메 이션 동작은 가중 스피치 신호 xw(j)가 계산된 후에 수행된다. 복잡도를 감소시킬 수 있도록, FIR 저역 통과 필터 동작은 오직 xwd(n)의 새로운 샘플이 필요할 경우에만 수행된다. 따라서, 상기 다운샘플링된 가중 스피치 신호 xwd(n)은 다음과 같이 계산된다.
Figure 112008044428947-pct00037
여기서 bi, i=0, 1, 2, ..., 59는 표 3에 주어진 바와 같은 60차 FIR 저역 통과 필터의 필터 계수들이다.
Lag, i 수학식 15의 bi Lag, i 수학식 15의 bi Lag, i 수학식 15의 bi
0 1209 20 -618 40 313
1 728 21 -941 41 143
2 1120 22 -1168 42 -6
3 1460 23 -1289 43 -126
4 1845 24 -1298 44 -211
5 2202 25 -1199 45 -259
6 2533 26 -995 46 -273
7 2809 27 -701 47 -254
8 3030 28 -348 48 -210
9 3169 29 20 49 -152
10 3207 30 165 50 -89
11 3124 31 365 51 -30
12 2927 32 607 52 21
13 2631 33 782 53 58
14 2257 34 885 54 81
15 1814 35 916 55 89
16 1317 36 881 56 84
17 789 37 790 57 66
18 267 38 654 58 41
19 -211 39 490 59 17
f. 대략적 피치 주기 추출
계산상의 복잡도를 감소시킬 수 있도록, WB PCM PLC 로직은 두 단계로 피치 추출을 수행한다. 먼저, 대략적 피치 주기가 2 kHz로 데시메이션된 신호의 시간 해상도를 가지고 결정되며, 이어서 피치 주기 세밀화가 16 kHz의 데시메이션되지 않은 신호의 시간 해상도를 가지고 수행된다. 이러한 피치 추출은 오직 다운샘플링된 가중 스피치 신호 xwd(n)이 계산된 후에 수행된다. 이 서브섹션에서는, 도 16의 블록(1620)에 의해 수행되는 첫 단계의 대략적 피치 주기 추출 알고리즘이 설명된다. 이 알고리즘은 정규화된 교차 상관 연산 값을 최대화하는 것에 기초하여 몇몇 부가적인 판정 로직을 더 가진다.
15 ms의 피치 분석 윈도우가 이러한 대략적 피치 주기 추출에 사용된다. 피치 분석 윈도우의 끝은 현재 프레임의 끝에 정렬된다. 2 kHz의 샘플링 레이트에서 15 ms는 30 샘플들에 상응한다. 일반성을 잃지 않는 범위 내에서, n=0 내지 n=29의 인덱스 범위가 xwd(n)에 대한 피치 분석 윈도우에 상응한다고 하자. 상기 대략적 피치 주기 추출 알고리즘은 다음 값들을 계산하는 것으로서 시작된다. k = MINPPD-1부터 k=MAXPPD+1까지의 모든 정수에 대해,
Figure 112008044428947-pct00038
Figure 112008044428947-pct00039
그리고,
Figure 112008044428947-pct00040
여기서 MINPPD=5 및 MAXPPD=33은 데시메이션 도메인(decimated domain) 내에서 각각 최소 및 최대 피치 주기이다. 상기 대략적 피치 추출 알고리즘은 이어서 k=MINPPD, MINPPD+1, MINPPD+2, ..., MAXPPD의 범위에 걸쳐, c(k)>0인 어레이 {c2(k)/E(k)}의 모든 국부적인 피크들(peaks)을 찾아 탐색을 수행한다. (만약 어느 값의 이웃하는 값들 모두가 그 값보다 더 작은 경우에, 그 값은 국부 최대값이라고 정해진다.) Np가 이러한 양의 국부 피크들의 개수라고 하자. 그리고, kp(j), j=1, 2, ..., Np는 {c2(kp(j))/E(kp(j))}가 국부 최대이고 또한 c2(kp(j))>0인 경우의 인덱스를 나타내며, kp(1)<kp(2)<...<kp(Np)라고 하자. 편의를 위해, 상기 항 c2(k)/E(k)은 "정규화된 상관 제곱(normalized correlation square)"로도 불릴 것이다.
만약 Np=0이라면, 이는 만약 함수 c2(k)/E(k)에 대해 양의 국부 피크가 없는 경우로서, 이 경우 상기 알고리즘은 |c2(k)/E(k)|의 최대 크기를 가지는 가장 큰 음의 국부 피크를 찾아 탐색한다. 만약 그러한 가장 큰 음의 국부 피크가 발견되면, 그에 상응하는 인덱스 k가 출력 대략적 피치 주기 cpp로서 사용되며, 블록(1620)의 프로세싱은 종료된다. 만약 정규화된 상관 제곱 함수 c2(k)/E(k)가 양의 국부 피크도 음의 국부 피크도 갖지 않으면, 상기 출력 대략적 피치 주기는 cpp = MINPPD로 설정되며, 상기 블록(1620)의 프로세싱은 종료된다. 만약 Np=1이면, 출력 대략적 피치 주기는 cpp=kp(1)으로 설정되며, 상기 블록(1620)의 프로세싱은 종료된다.
만약 두 개 또는 그 이상의 국부 피크들이 있는 경우(Np≥2), 이 블록은 출력 대략적 피치 주기 cpp를 결정할 수 있도록, (아래에서 설명될) 알고리즘 A, B, C 및 D를 이 순서대로 사용한다. 네 알고리즘들 중 먼저 수행된 알고리즘들에서 계산된 변수들은 뒤로 넘겨지며, 나중 알고리즘들에서 이용된다.
아래의 알고리즘 A는 정규화 상관 제곱 c2(kp)/E(kp)의 국부 피크 주변에 2차 보간(quadratically interpolated)된 피크를 식별하는 데에 이용된다. 2차 보간(quadratic interpolation)은 c(kp)에 대해 수행되며, 반면에 선형 보간은 E(kp)에 대해 수행된다. 이러한 보간법은 16 kHz의 데시메이션되지 않은 스피치 신호의 시간 해상도를 가지고 수행된다. 아래 알고리즘에서, D는 xw(n)을 xwd(n)으로 데시메이팅할 때에 이용되는 데시메이션 인자를 나타낸다. 따라서, 여기서는 D=8이다.
알고리즘 A - c2(kp)/E(kp) 주변의 가장 큰 2차 보간 피크를 찾아라
A. c2max = -1, Emax = 1, jmax = 0으로 설정.
B. j=1, 2, ..., Np에 대해, 다음 12 단계들을 수행.
1. a = 0.5[c(kp(j)+1) + c(kp(j)-1)]-c(kp(j))로 설정
2. b = 0.5[c(kp(j)+1) - c(kp(j)-1)]로 설정
3. ji = 0으로 설정
4. ei = E(kp(j))로 설정
5. c2m = c2(kp(j))로 설정
6. Em = E(kp(j))로 설정
7. 만약 c2(kp(j)+1)E(kp(j)-1) > c2(kp(j)-1)E(kp(j)+1)이면,
단계 7의 나머지 부분들을 수행
a. △ = [E(kp(j)+1)-ei]/D
b. k = 1, 2, ..., D/2에 대해, 다음의 들여 쓴 부분을 수행
i. ci = a(k/D)2 + b(k/D) + c(kp(j))
ii. ei ← ei + △
iii. 만약 (ci)2Em > (c2m) ei라면,
다음 세 개의 들여 쓴 부분을 수행
ⓐ ji = k
ⓑ c2m = (ci)2
ⓒ Em = ei
8. 만약 c2(kp(j)+1)E(kp(j)-1) ≤ c2(kp(j)-1)E(kp(j)+1)이면,
단계 8의 나머지 부분들을 수행
a. △ = [E(kp(j)-1)-ei]/D
b. k = -1, -2, ..., -D/2에 대해, 다음의 들여 쓴 부분을 수행
i. ci = a(k/D)2 + b(k/D) + c(kp(j))
ii. ei ← ei + △
iii. 만약 (ci)2Em > (c2m) ei라면,
다음의 세 들여 쓴 부분을 수행
ⓐ ji = k
ⓑ c2m = (ci)2
ⓒ Em = ei
9. lag(j) = kp(j) + ji/D로 설정
10. c2i(j) = c2m
11. Ei(j) = Em
12. 만약 c2m × Emax > c2max × Em 이라면,
다음 세 개의 들여 쓴 부분을 수행
a. jmax = j
b. c2max = c2m
c. Emax = Em
화살표 표시 ←는 좌측에 있는 파라미터가 우측에 있는 값으로 갱신된다는 점을 나타낸다.
실제 대략적 피치 주기의 정수배에 가까운 대략적 피치 주기를 선택하는 것을 피하기 위해서, c2(kp)/E(kp)의 국부 피크들에 상응하는 시간 지연 값들 전반에 걸쳐 탐색이 수행되어, 이러한 시간 지연 값들 중 어느 것이라도 cpplast라고 명명된 이전 처리된 프레임의 출력 대략적 피치 주기 값에 충분히 근접한지 여부를 알아본다. 만약 시간 지연이 cpplast의 25% 이내라면, 충분히 근접한 것으로 간주된다. cpplast의 25% 내에 들어오는 모든 그러한 시간 지연들에 대해, 정규화 상관 제곱 c2(kp)/E(kp)의 상응하는 2차 보간 최대 값들이 비교되며, 최대 정규화 상관 제곱 값에 상응하는 보간된 시간 지연 값이 추후의 이용에 대비하여 선택된다. 아래의 알고리즘 B는 위에서 설명된 작업을 수행한다. 위의 알고리즘 A에서 계산된 보간된 어레이 c2i(j) 및 Ei(j)들이 이 알고리즘 내에서 이용된다.
알고리즘 B - 마지막 프레임의 출력 대략적 피치 주기에 근접한 모든 시간 지연 값들 중에서 보간된 c2(kp)/E(kp)를 최대로 만드는 시간 지연 값을 찾아라
A. 인덱스 im = -1로 설정
B. c2m = -1로 설정
C. Em = 1로 설정
D. j = 1, 2, ..., Np에 대해, 다음을 수행
1. 만약 |kp(j) - cpplast|≤ 0.25 × cpplast, 다음을 수행
a. 만약 c2i(j) × Em > c2m × Ei(j)이면,
다음 세 연산식을 수행
i. im = j
ii. c2m = c2i(j)
iii. Em = Ei(j)
만약 cpplast의 25% 내에 들어오는 시간 지연이 전혀 없는 경우에는, 상기 인덱스 im의 값은 알고리즘 B가 수행된 후에도 -1로 남아 있을 것이다. 만약 cpplast의 25% 내에 들어오는 하나 또는 다수의 시간 지연 값이 있는 경우에는, 상기 인덱스 im은 그러한 시간 지연들 중 가장 큰 정규화 상관 제곱에 상응한다.
다음으로, 알고리즘 C는 피치 범위의 전반부 내에 있는 다른 시간 지연이 출력 대략적 피치 주기 값으로서 선택되어야만 하는지 여부를 결정한다. 이 알고리즘은 모든 보간된 시간 지연들 lag(j)에 대해, 16보다 작은지를 탐색하고, 이들 중 어떤 값이라도, 최대 32까지 자신의 매 정수배 값(자기 자신을 포함)에 가까운, 정규화 상관 제곱의 충분히 큰 국부 피크를 가지는지 여부를 체크한다. 만약 그러한 조건을 만적하는 하나 또는 다수의 그러한 시간 지연 값들이 있다면, 그러한 자격을 갖춘 시간 지연들 중에서 가장 작은 값이 출력 대략적 피치 주기로서 선택된다.
다시 한번, 위의 알고리즘 A 및 B에서 계산된 변수들은 각자의 최종 값들을 아래의 알고리즘 C로 넘겨준다. 다음에서, 파라미터 MPDTH는 0.06이고, 문턱값 어레이 MPTH(k)는 k>5에 대하여, MPTH(2)=0.7, MPTH(3)=0.55, MPTH(4)=0.48, MPTH(5)=0.37 및 MPTH(5)=0.30와 같이 주어진다.
알고리즘 C - 피치 범위의 전반부 내에 있는 다른 시간 지연이 출력 대략적 피치 주기 값으로서 선택되어야만 하는지 체크
A. j= 1, 2, 3..., Np에 대해, 이 순서대로, lag(j)<16인 동안 다음을 수행
1. 만약 j≠im, threshold=0.73으로 설정하고,
그렇지 않으면 threshold=0.4
2. 만약 c2i(j)×Emax ≤ threshold×c2max×Ei(j)이면, 이러한 j를
버리고, 이러한 j에 대하여 단계(3)를 건너뛰며,
j를 1만큼 증가시키고 단계(1)로 되돌아감
3. 만약 c2i(j)×Emax > threshold×c2max×Ei(j)이면, 다음을 수행
a. k = 2, 3, 4, ...에 대해, k×lag(j)<32인 동안 다음을 수행
i. s = k×lag(j)
ii. a = (1-MPDTH)s
iii. b = (1+MPDTH)s
iv. m = j+1, j+2, j+3, ..., Np에 대해, 이 순서대로,
시간 지연 값들 lag(m) 중 어떤 값이라도 a와 b 사이에
있는지를 살핀다. 만약 이들 중 어떤 값도 a와 b 사이에 없다면
이러한 j를 버리고, 단계 3을 중단하며, j를 1만큼
증가시키고, 단계(1)로 돌아감. 만약 적어도 하나의 m이
a < lag(m) ≤ b 및 c2i(m)×Emax > MPTH(k)×c2max×Ei(m)을
만족한다면, 정규화 상관 제곱의 충분히 큰 피크가 lag(j)의
k번째 정수배의 주변에서 발견된 것으로 간주됨. 이 경우,
단계 3.a.iv을 중단하고, k를 1만큼 증가시키고 단계 3.a.i로
되돌아감.
b. 만약 단계 3.a가 미완된 채 중단되지 않고 완료된다면 - 즉,
lag(j)의 모든 정수배로서 32보다 작은 값의 정규화 상관
제곱의 충분한 보간 피크가 ±100×MPDTH% 내에 있다면,
이 알고리즘을 중단하고, 알고리즘 D를 건너뛰어서 최종 출력
대략적 피치 주기 값으로서 cpp=lag(j)로 설정한다.
만약 위의 알고리즘 C가 기준에 맞는 출력 대략적 피치 주기 cpp를 발견하지 못한 채로 완료된 경우에, 알고리즘 D는 위의 알고리즘 B에서 찾아낸 마지막 프레임의 대략적 피치 주기 주변에서 정규화 상관 제곱 중 가장 큰 국부 피크를 조사하고, 출력 대략적 피치 주기 cpp에 대해 최종적인 결정을 내린다. 다시 한번, 위의 알고리즘 A 및 B에서 계산된 변수들은 자신들의 최종 값들을 아래 알고리즘 D에 넘긴다. 다음 설명에서 파라미터들은 SMDTH=0.095이고 LPTH1=0.78이다.
알고리즘 D - 출력 대략적 피치 주기에 대한 최종 결정
A. 만약 im = -1이면, 다시 말해, 만약 종전 마지막 프레임의 대략적 피치 주기의 주변에서 정규화 상관 제곱에 관해 충분히 큰 국부 피크가 없는 경우에는, 알고리즘 A의 끝 부분에서 계산된 cpp를 최종 출력 대략적 피치 주기로 사용하고, 이 알고리즘을 빠져나간다.
B. 만약 im = jmax이면, 다시 말해, 만약 종전 마지막 프레임의 대략적 피치 주기의 주변에서 정규화 상관 제곱에 관해 충분히 큰 국부 피크가 또한 현 프레임 내의 정규화 상관 제곱에 관해 모든 보간 피크들 중 전체적인 최대인 경우에는, 알고리즘 A의 끝 부분에서 계산된 cpp를 최종 출력 대략적 피치 주기로 사용하고, 이 알고리즘을 빠져나간다.
C. 만약 im < jmaf이면, 다음 들여 쓴 부분을 수행한다.
1. 만약 c2m × Emax > 0.43 × c2max × Em이면, 단계 C의 다음
들여 쓴 부분을 수행한다.
a. 만약 lag(im) > MAXPPD/2이면, 출력 cpp = lag(im)으로
설정하고 이 알고리즘을 빠져나감
b. 그렇지 않을 경우, k = 2, 3, 4, 5에 대해, 다음 들여쓰기된
부분을 수행
i. s = lag(jmax)/k
ii. a = (1-SMDTH)s
iii. b = (1+SMDTH)s
iv. 만약 lag(im) > a 및 lag(im) < b이면,
출력 cpp = lag(im)으로 설정하고 알고리즘을 빠져나감
D. 만약 im > jmax 이면, 다음 들여 쓴 부분을 수행
1. 만약 c2m × Emax > LPTH1 × c2max × Em이면,
출력 cpp = lag(im)으로 설정하고 이 알고리즘을 빠져나감
E. 만약 알고리즘 수행이 여기까지 이르게 되면, 위의 단계들 중 어느 것도
최종 출력 대략적 피치 주기를 선택하지 못한 것이다. 이러한 경우에는,
그냥 알고리즘 A의 끝 부분에서 계산된 cpp 값을 최종 출력 대략적 피치
주기로 인정한다.
g. 피치 주기 세밀화
도 16의 블록(1622)은, G.722로 디코딩된 출력 스피치 신호를 이용하여 최대 16 kHz 시간 해상도로 상기 대략적 피치 주기의 주변 영역을 탐색함으로써, 피치 주기 추출의 두 번째 단계 프로세싱을 수행하도록 구성된다. 이 블록은 먼저 상기 대략적 피치 주기 cpp를 데시메이션 인자 D = 8로 곱함으로써 데시메이션되지 않은 신호 도메인으로 변환한다. 상기 피치 세밀 분석 윈도우 크기 WSZ는 cpp × D 샘플들 및 160 샘플들 중 작은 쪽으로 선택된다. 즉 WSZ = min(cpp × D, 160) 이다.
다음으로, 탐색 범위의 아래쪽 경계가 lb = max(MINPP, cpp×D - 4)로서 계산된다. 여기서 MINPP=40 샘플들은 최소 피치 주기의 값이다. 상기 탐색 범위의 위쪽 경계는 ub = min(MAXPP, cpp×D + 4)와 같이 계산된다. 여기서 MAXPP=256 샘플들이며 최대 피치 주기를 말한다.
상기 블록(1622)은 총 XQOFF=MAXPP+1+FRSZ 샘플들인 16 kHz G.722 디코딩 스피치 신호 xout(j)에 대해 버퍼를 유지한다. 여기서 FRSZ=160으로 프레임 크기이다. 이 버퍼의 마지막 FRSZ 개의 샘플들이 현재 프레임의 G.722 디코딩 스피치 신호를 포함한다. 처음 MAXPP+1 개의 샘플들은 현재 프레임 바로 앞의 이전에 처리된 프레임들의 G.722 디코더/PLC 시스템 출력 신호로 채워진다. 이 분석 윈도우의 마지막 샘플은 현재 프레임의 마지막 샘플에 맞춰 정렬된다. j=0부터 j=WSZ-1까지의 인덱스 범위가 이 분석 윈도우에 상응한다고 하자. 이는 xout(j) 버퍼 내에서 마지막 WSZ 샘플들에 해당하는 것이다. 또한 음의 인덱스 숫자들은 이러한 분석 윈도우에 앞서는 샘플들을 가리킨다고 하자. 데시메이션되지 않은 신호 도메인에서 다음의 상관 및 에너지 항들이 탐색 범위 [lb, ub] 내에서 시간 지연 k들에 대해 계산된다.
Figure 112008044428947-pct00041
Figure 112008044428947-pct00042
비율
Figure 112008044428947-pct00043
을 최대로 만드는 시간 지연 k∈[lb,ub]가 프레임 삭제에 대한 최종 세밀화 피치 주기 즉 ppfe로서 선택된다. 다시 말해,
Figure 112008044428947-pct00044
이다.
다음으로 블록(1622)은 또한 두 개의 추가적인 피치 관련 스케일링 인자들을 계산한다. 첫 번째 인자는 ptfe라고 불리는 것으로서, 프레임 삭제에 대한 피치 탭(pitch tap)이다. 이는 주기적 파형 외삽 시에 이용되는 스케일링 인자이다. 이는 분석 윈도우 내의 xout(j) 신호의 평균 크기와 xout(j) 신호 중 이보다 ppfe 샘플 들만큼 앞서는 부분의 평균 크기 사이의 비율로서, 이 두 신호 부분들 사이의 상관 값과 동일한 부호를 가진다. 다시 말해,
Figure 112008044428947-pct00045
이다.
Figure 112008044428947-pct00046
인 때와 같이 문제가 있는 경우에는, ptfe는 0으로 설정된다. 이러한 ptfe의 계산 이후에, ptfe의 값은 [-1, 1]로 범위가 한정된다.
두 번째 피치 관련 스케일링 인자는 ppt라고 불리는데, 곧 피치 예측기 탭(pitch predictor tap)이다. 이는 장기 필터 링잉 신호(long-term filter ringing signal)(추후에 설명될 것임)를 계산하는 데에 이용된다. ppt=0.75×ptfe와 같이 계산된다.
h. 믹싱 비율(Mixing ratio)의 계산
도 16의 블록(1618)은 손실 프레임 동안에 주기적으로 외삽된 파형과 필터링된 잡음 파형 간에 믹싱 비율을 결정하는 성능 지수를 계산한다. 이러한 계산은 각각의 패킷 손실이 일어날 때마다 맨 처음 손실 프레임 동안에만 수행되며, 그 결과 얻은 믹싱 비율이 그 특정 패킷 손실 전체에 걸쳐 사용된다. 상기 성능 지수는 다음 세 신호 특성들, 즉 로그 이득(logarithmic gain), 첫 번째 정규화 자기 상관 값(first normalized autocorrelation) 및 피치 예측 이득(pitch prediction gain)의 가중 합산 값이다. 이들의 각각은 다음과 같이 계산된다.
앞 서브섹션 내에 xout(j)의 경우와 동일한 색인 붙이기 관례를 이용하면, ㅍ피치 세밀화 분석 윈도우 내에 들어오는 xout(j) 신호의 에너지는
Figure 112008044428947-pct00047
이고, 밑이 2인 로그 이득 lg는 다음과 같이 계산된다.
Figure 112008044428947-pct00048
만약
Figure 112008044428947-pct00049
이면, 피치 예측 잔여 에너지는 다음과 같이 계산된다.
Figure 112008044428947-pct00050
그리고, 피치 예측 이득 pg은 다음과 같이 계산된다.
Figure 112008044428947-pct00051
만약
Figure 112008044428947-pct00052
이면 pg=0으로 설정한다. 만약 sige=0인 때에도 마찬가지로 pg=0으로 설정한다.
제1 정규화 자기 상관 값 ρ1은 다음과 같이 계산된다.
Figure 112008044428947-pct00053
이러한 세 가지 신호 특징들이 획득되고 나면, 성능 지수(figure of merit)는 다음과 같이 계산된다.
merit = lg+pg+12ρ1
위에서 계산된 merit 값은 상기 두 개의 스케일링 인자들 Gp 및 Gr을 결정하며, 이들이 사실상 상기 주기적 외삽 파형 및 상기 필터링된 잡음 파형 사이의 믹싱 비율을 결정한다. 이들 인자들은 merit 값에 대해 이용되는 두 개의 문턱값들, 즉 성능 지수 상층 문턱(MHI) 및 성능 지수 저층 문턱(MLO)이다. 이들 문턱값들은 MHI=28, MLO=20으로 설정된다. 상기 스케일링 팩터 Gr은 무작위(필터링된 잡음) 성분에 대한 것으로 다음과 같이 계산된다.
Figure 112008044428947-pct00054
그리고, 상기 스케일링 인자 Gp는 주기적 성분에 대한 것으로 다음과 같이 계산된다.
Gp = 1-Gr
i. 주기적 파형 외삽
도 16의 블록(1624)은 만약 merit > MLO 인 경우에, 손실 프레임들 동안에 이전의 출력 스피치 파형을 주기적 외삽하도록 구성된다. 블록(1624)이 이 기능을 수행하는 방식을 이제 설명하고자 한다.
각 패킷 손실의 맨 처음 손실 프레임에 대해, 프레임당 평균 피치 주기 증가량이 계산된다. 피치 주기 내역 버퍼(pitch period history buffer) pph(m)은 m=1, 2, ..., 5에 대해, 이전의 5 프레임들 동안의 피치 주기 ppfe를 저장한다. 평균 피치 주기 증가량은 다음과 같이 획득된다. 직전 마지막 프레임에서 시작하여, 그 프레임에 선행하는 프레임으로부터 피치 주기 증가량이 계산된다(음의 값은 피치 주기 감소량을 의미함). 만약 피치 주기 증가량이 0이라면, 이 알고리즘은 선행하는 프레임의 피치 주기 증가량을 점검한다. 이러한 프로세스는 0이 아닌 피치 주기 증가량을 가지는 첫 번째 프레임 또는 앞으로 네 번째 프레임까지 조사가 이뤄질 때까지 계속된다. 만약 이전의 다섯 프레임들 모두가 동일한 피치 주기를 가지고 있다면, 평균 피치 주기 증가량은 0으로 설정된다. 그렇지 않다면, 첫 번째 0이 아닌 피치 주기 증가량이 m 번째 앞의 프레임에서 발견되었다면, 그리고 그 피치 주기 증가량의 크기가 그 프레임의 피치 주기의 5% 미만인 경우라면, 평균 피치 주기 증갸량 ppinc은 그 프레임의 피치 주기 증가량을 m으로 나눈 값으로서 얻어지며, 결과적인 값은 [-1, 2]의 범위 내에 제한된다.
패킷 손실 중의 두 번째로 이어지는 손실 프레임에서, 평균 피치 주기 증가량 ppinc은 피치 주기 ppfe에 더해지며, 결과로 얻은 수치는 가장 가까운 정수 값으로 반올림되고, [MINPP, MAXPP]의 범위로 제한된다.
만약 현재 프레임이 패킷 손실의 가장 첫 손실 프레임이라면, 이른바 "호출 신호(ringing signal)"이 프레임의 시작 위치에서 부드러운 파형 전환을 보장하고자 중첩 합산할 때에 사용되도록 계산된다. 상기 호출 신호 및 주기적 오삽 파형을 위한 중첩 합산 길이는 첫 손실 프레임에 대해 20 샘플들이다. 인덱스의 범위를 j=0, 1, 2, ..., 19로 하면, 이는 현재의 첫 손실 프레임 중 처음 20 개 샘플들에 상응하며, 이것이 중첩 합산 구간이다. 음의 인덱스들은 이전 프레임들에 상응한다. 장기 호출 신호는 다음과 같이 상기 중첩 합산 구간보다 한 피치 주기만큼 이른 단기 예측 잔여 신호의 스케일링된(scaled) 버전으로서 얻어진다.
Figure 112008044428947-pct00055
Figure 112008044428947-pct00056
ltring(j)의 이러한 20 개 샘플들이 계산된 후에, 이들은 블록(1622)에 의해 계산된 스케일링 인자 ppt에 의해 추가적으로 스케일링된다.
ltring(j) ← ppt·ltring(j), j=0, 1, 2, ..., 19
마지막 프레임 내의 xout(j) 신호의 마지막 8 개 샘플들에 맞춰 초기화된 필터 메모리 ring(j), j= -8, -7, ..., -1을 가지고, 상기 최종 호출 신호는 다음과 같이 얻어진다.
Figure 112008044428947-pct00057
,
Figure 112008044428947-pct00058
인덱스 범위 j=0, 1, 2, ..., 159가 현재의 첫 손실 프레임에 상응한다고 하고, j=160, 161, 162, ..., 209가 다음 프레임의 첫 50 개 샘플들에 상응한다고 하자. 더 나아가, wi(j) 및 wo(j), j=0, 1, ..., 19가 각각 삼각 페이드인 및 페이드 아웃 윈도우들(fade-in and fade-out windows)이어서 wi(j)+wo(j)=1이라고 하자. 그렇다면, 주기적 파형 외삽은 다음 두 단계들로 수행된다.
Figure 112008044428947-pct00059
단계 1:
Figure 112008044428947-pct00060
Figure 112008044428947-pct00061
단계 2:
Figure 112008044428947-pct00062
j. 정규화 잡음 생성기
만약 merit<MHI이면, 도 16의 블록(1610)은 평균 크기가 1인 백색 가우시안 랜덤 잡음 시퀀스를 생성한다. 계산 상의 복잡함을 줄이고자, 백색 가우시안 랜덤 잡음은 미리 계산되어 테이블 형태로 저장된다. 너무 긴 테이블을 이용하는 것을 막고 또한 너무 짧은 테이블로 인해 동일한 잡음 패턴이 반복되는 것을 막을 수 있도록, 특수한 인덱스 붙이는 방식이 이용된다. 이 방식에서는 백색 가우시안 잡음 테이블 wn(j)은 127 개 항목들을 가지며, 이 잡음 생성기 블록의 출력의 스케일링된 버전은 다음과 같다.
wgn(j) = avm × wn(mod(cfecount × j, 127)), j=0, 1, 2, ..., 209
여기서 cfecount는 현재 패킷 손실에 대해 k 번째 순서에 있는 손실 프레임 에 대해 cfecount=k인 값을 갖게 되는 프레임 카운터이고,
Figure 112008044428947-pct00063
은 모듈로 연산이다.
k. 잡음 시퀀스의 필터링
도 16의 블록(1614)은 단기 합성 필터를 나타낸다. 만약 merit<MHI이면, 블록(1614)는 스케일링된 백색 가우시안 잡음을 필터링하여, 마지막 프레임 내에 xout(j) 신호의 스펙트럼 엔벨로프(spectral envelope)와 동일한 스펙트럼 엔벨로프를 갖도록 한다. 필터링된 잡음 fn(j)는 다음과 같이 얻어진다.
Figure 112008044428947-pct00064
l. 주기적 성분(Periodic component) 및 무작위 성분들(Random component)의 믹싱
만약 merit>MHI이면, 오직 블록(1624)에 의해 계산된 주기적 외삽 파형 xout(j)만이 WB PCM PLC 로직의 출력으로서 사용된다. 만약 merit<MLO이면, 블록(1614)에서 생성된 필터링 잡음 신호 fn(j)만이 WB PCM PLC 로직의 출력으로서 이용된다. 만약 MLO≤merit≤MHI이면, 이 경우에는 두 성분들이 다음과 같이 믹싱된다.
Figure 112008044428947-pct00065
Figure 112008044428947-pct00066
,
상기 외삽된 xout(j) 신호 중 j=160, 161, 162, ...,199에 대한 첫 40 개의 부가 샘플들은 j=0, 1, 2, ...., 39인 다음 프레임의 호출 신호 ring(j)가 된다. 만약 다음 프레임이 또 손실 프레임인 경우에는, 이 호출 신호 중의 첫 20 샘플들만이 중첩 합산에 이용될 것이다. 만약 다음 프레임이 정상 수신 프레임이면, 이 호출 신호의 40 샘플들이 모두 중첩 합산에 사용될 것이다.
m. 조건부 신호 감쇄(Conditional Ramp Down)
만약 패킷 손실이 20 ms 또는 그 이하만큼 지속할 경우에는, 상기 주기 성분 및 무작위 성분의 믹싱을 통해 생성된 xout(j) 신호가 WB PCM PLC 출력 신호로서 이용된다. 만약 패킷 손실이 60 ms보다 더 길게 지속할 경우에는, 상기 WB PCM PLC 출력 신호는 완전히 묵음화된다. 만약 패킷 손실이 20 ms보다는 길지만 60 ms 이상으로는 지속되지 않을 경우에는, 상기 주기 성분 및 무작위 성분의 믹싱을 통해 생성된 xout(j) 신호는 선형으로 줄어든다(즉 선형 방식을 통해 0까지 감쇄된다). 이러한 조건부 감쇄는 cfecount>2인 때에 손실 프레임들 동안에 다음의 알고리즘에서 규정된 것과 같이 수행된다. 어레이 gawd()는 Q15 포맷에서 {-52, -69, -104, -207}로 주어진다. 다시 한번, 인덱스 범위 j=0, 1, 2, ..., 159는 xout(j)의 현재 프레임에 상응한다.
조건부 신호 감쇄 알고리즘
A. 만약 cfecount≤6, 다음 9 개의 들여 쓰기된 부분을 수행한다.
1. delta = gawd(cfecount-3)
2. gaw = 1
3. j=0, 1, 2, ..., 159에 대해, 다음 두 라인을 수행한다.
a. xout(j) = gaw·xout(j)
b. gaw = gaw+delta
4. 만약 cfecount<6이면, 다음 세 라인을 수행한다.
a. j=160, 161, 162, ..., 209에 대해, 다음 두 라인을
수행한다.
i. xout(j) = gaw·xout(j)
ii. gaw = gaw+delta
B. 그렇지 않을 경우(즉 만약 cfecount>6), j=0, 1, 2, ..., 209에 대해,
xout(j)=0이라고 설정한다.
n. 첫 수신 프레임에서 중첩 합산하기
타입 5 프레임들의 경우에, G.722 디코더의 출력 xout(j)는 마지막 손실 프레임에서의 호출 신호, ring(j)(앞서 설명한 방법을 통해 블록(1624)에서 계산된 신 호)와 중첩 합산된다.
xout(j) = wi(j)·xout(j) + wo(j)·ring(j) j=0,...LOLA-1
여기서, LOLA는 다음과 같다.
Figure 112008044428947-pct00067
4. PLC 출력의 재인코딩
손실 프레임들(타입 2, 타입 3 및 타입 4)의 처리 구간 동안에, G.722 ADPCM 디코더들의 메모리 및 파라미터들을 갱신할 수 있도록, 상기 PLC의 출력은 실제로 일종의 G.722 인코더를 통과한다. 도 17은 이러한 재인코딩 프로세스를 수행하는 데에 사용되는 로직의 블록도(1700)이다. 도 17에 나타난 바와 같이, 상기 PLC 출력 xout(j)는 QMF 분석 필터 뱅크(1702)를 통과하여, 저대역 부분대역 신호 xL(n)와 고대역 부분대역 신호 xH(n)을 생성한다. 상기 저대역 부분대역 신호 xL(n)는 저대역 ADPCM 인코더(1704)에 의해 인코딩되며, 상기 고대역 부분대역 신호 xH(n)는 고대역 ADPCM 인코더(1706)에 의해 인코딩된다. 복잡도를 절감할 수 있도록, ADPCM 부분대역 인코더들(1704, 1706)은 통상적인 ADPCM 부분대역 인코더들에 비해 단순 화된다. 앞서 설명한 동작들 각각은 이제 더 상세하게 설명될 것이다.
a. PLC 출력을 QMF 분석 필터 뱅크에 통과시키기
QMF 분석 필터 뱅크(1702)의 메모리는 디코딩된 부분대역 신호들에 대해 연속적인 부분대역 신호들을 제공할 수 있도록 초기화된다. WB PCM PLC 출력의 첫 22 샘플들이 필터 메모리를 채우게 되며, 부분대역 신호들은 다음에 따라 계산된다.
Figure 112008044428947-pct00068
Figure 112008044428947-pct00069
여기서 xPLC(0)는 현재 프레임의 16 kHz WB PCM PLC 출력의 첫 샘플에 상응하며, xL(n=0) 및 xH(n=0)은 각각 현재 프레임의 8 kHz 저대역 및 고대역 부분대역 신호들의 각각의 첫 샘플에 상응한다. 이러한 필터링은 오프셋되는 부가적인 22 샘플들이 있다는 점과, WB PCM PLC 출력(입력과 반대임)이 이 필터 뱅크를 통과한다는 점을 제외하면 G.722 인코더의 송신 QMF와 동일하다. 더 나아가, 하나의 꽉 채운 프레임(full frame)의 부분대역 신호들(80 샘플들 또는 10 ms)을 생성하기 위해서, WB PCM PLC는 현재 프레임을 22 샘플들만큼 연장하며 더 생성할 필요가 있다(182 샘플들 즉 11.375 ms). 부분대역 신호들 즉 n=0, 1, ..., 79인 xL(n) 및 n=0, 1, ..., 79인 xH(n)은 각각 수학식 41 및 42에 따라 생성된다.
b. 저대역 신호의 재인코딩
상기 저대역 신호 xL(n)은 단순 저대역 ADPCM 인코더를 가지고 인코딩된다. 이러한 단순 저대역 ADPCM 인코더(2000)의 블록도는 도 20에 나타내었다. 도 20에 나타나 있듯이, 통상적인 저대역 ADPCM 인코더의 역양자화기는 제거되고, 양자화되지 않은 예측 오차(unquantized prediction error)는 양자화된 예측 오차(qunatized prediction error)로 대체된다. 더 나아가, 적응 양자화기의 갱신이 6비트 저대역 인코더 인덱스 IL(n)에 의해 제공되는 64 개 요소의 집합 중에서 8 개 요소로 된 부분집합에만 기초하기 때문에, 상기 예측 오차는 오직 8 개 요소로 된 집합에 맞춰 양자화된다. 이는 적응 양자화기의 동일한 갱신을 제공하지만 양자화를 단순화할 수 있다. 표 4는 eL(n)의 절대값에 기초한 8 레벨 단순 양자화기를 위한 판정 레벨들, 출력 코드 및 승수(multipliers)들을 나열한 것이다.
mL 낮은 쪽 문턱값 높은 쪽 문턱값 IL 승수, WL
1 0.00000 0.14103 3c -0.02930
2 0.14103 0.45482 38 -0.01465
3 0.45482 0.82335 34 0.02832
4 0.82335 1.26989 30 0.08398
5 1.26989 1.83683 2c 0.16309
6 1.83683 2.61482 28 0.26270
7 2.61482 3.86796 24 0.58496
8 3.86796 20 1.48535
도 20의 변수 항목들은 G.722 저대역 ADPCM 부분대역 인코더에 있는 각자의 등가 항목들에 따라 계산된다.
Figure 112008044428947-pct00070
Figure 112008044428947-pct00071
Figure 112008044428947-pct00072
Figure 112008044428947-pct00073
Figure 112008044428947-pct00074
적응 양자화기는 정확히 G.722 인코더에 대해 규정된 바대로 갱신된다. 제로 섹션과 폴 섹션의 적응은 G.722 명세서의 3.6.3절 및 3.6.4절 내에 설명된 바와 같이 G.722 인코더에서 일어나는 것과 동일하게 발생한다.
저대역 ADPCM 디코더(1910)는 프레임 손실이 일어난 지 60 ms 후에는 자동으로 리셋되나, 프레임 손실로 들어선지 30 ms 정도에서 적응적으로 일찍 리셋될 수도 있다. 저대역 신호의 재인코딩을 하는 동안에, 부분적 재구축 신호 pLt(n)의 특성들이 모니터링되며, 저대역 ADPCM 디코더(1910)의 적응식 리셋을 제어한다. pLt(n)의 부호는 전 손실 구간 동안에 걸쳐 다음과 같이 모니터링되며, 따라서 첫 손실 프레임에서 0으로 리셋된다.
Figure 112008044428947-pct00075
소정의 일정한 신호에 대비되는 pLt(n)의 특성은 손실 프레임들에 대해 프레임 단위로 모니터링되며, 특성 함수(cnst[])는 매 손실 프레임의 시작 시에 0으로 리셋된다. 특성 함수는 다음과 같이 갱신된다.
Figure 112008044428947-pct00076
손실 프레임 3 내지 5의 끝 부분에서, 저대역 디코더는 다음 조건이 만족될 경우에 리셋된다.
Figure 112008044428947-pct00077
여기서 Nlost는 손실 프레임들의 번호, 즉 3, 4, 5이다.
c. 고대역 신호의 재인코딩
고대역 신호 xH(n)은 간략화된 고대역 ADPCM 인코더를 가지고 인코딩된다. 이러한 간략화된 고대역 ADPCM 인코더(2100)의 블록도는 도 21에 나타내었다. 도 21에 나타나 있듯이, 이 알고리즘이 첫 수신 프레임에서 로그 스케일 인자(log scale factor)를 손실 전의 이동 평균(moving average)로 덮어쓰며, 따라서 고대역 재인코딩 로그 스케일 인자는 불필요하기 때문에, 통상적인 고대역 ADPCM 인코더의 적응 양자화기는 제거된다. 고대역 ADPCM 인코더(2100)의 양자화된 예측 오차는 양자화되지 않은 예측 오차(unquantized prediction error)로 대체된다.
도 21의 변수 항목들은 G.722 고대역 ADPCM 부분대역 인코더에 있는 각자의 등가 항목들에 따라 계산된다.
Figure 112008044428947-pct00078
Figure 112008044428947-pct00079
Figure 112008044428947-pct00080
Figure 112008044428947-pct00081
Figure 112008044428947-pct00082
제로 섹션과 폴 섹션의 적응은 G.722 명세서의 3.6.3절 및 3.6.4절 내에 설명된 바와 같이 G.722 인코더에서 일어나는 것과 동일하게 발생한다.
저대역 재인코딩과 유사하게, 고대역 ADPCM 디코더(1920)는 프레임 손실이 일어난 지 60 ms 후에는 자동으로 리셋되나, 프레임 손실로 들어선지 30 ms 정도에서 적응적으로 일찍 리셋될 수도 있다. 고대역 신호의 재인코딩을 하는 동안에, 부분적 재구축 신호 pH(n)의 특성들이 모니터링되며, 고대역 ADPCM 디코더(1920)의 적응식 리셋을 제어한다. pH(n)의 부호는 전 손실 구간 동안에 걸쳐 다음과 같이 모니터링되며, 따라서 첫 손실 프레임에서 0으로 리셋된다.
Figure 112008044428947-pct00083
소정의 일정한 신호에 대비되는 pH(n)의 특성은 손실 프레임들에 대해 프레임 단위로 모니터링되며, 특성 함수(cnst[])는 매 손실 프레임의 시작 시에 0으로 리셋된다. 특성 함수는 다음과 같이 갱신된다.
Figure 112008044428947-pct00084
손실 프레임 3 내지 5의 끝 부분에서, 고대역 디코더는 다음 조건이 만족될 경우에 리셋된다.
Figure 112008044428947-pct00085
5. 신호 특성들의 모니터링과 PLC에서의 이들의 용도
다음 내용들은 도 19의 제한 및 제어 로직(1970)에 의해 수행되는, 손실 프레임들에서 수신 프레임들로 전환되는 때에 가공음과 왜곡을 감소시키는, 그럼으로써 패킷 손실 후에 디코더/PLC 시스템(300)의 성능을 향상시키려는 기능들이 설명된다.
a. 저대역 로그 스케일 인자
저대역 로그 스케일 인자, ∇L(n)의 특성값들은 수신 프레임 구간 동안에 갱신되며, 프레임 손실 직후 첫 수신 프레임 구간에서 활용되어 적응 양자화기의 상태(state)를 스케일 인자를 고려하여 적응적으로 설정하는 데에 이용된다. 저대역 로그 스케일 인자의 정지성(stationary)에 관한 척도가 유도되고 상태 값의 적절한 리셋을 결정하는 데에 이용된다.
i. 저대역 로그 스케일 인자의 정지성
저대역 로그 스케일 인자 ∇L(n)의 정지성은 수신 프레임 구간 동안에 계산되고 갱신된다. 이 값은 일정한 누설(constant leakage)을 고려한 ∇L(n)의 1차(first order) 이동 평균 ∇L,m1(n)에 기초한다.
L,m1(n) = 7/8·∇L,m1(n-1) + 1/8·∇L(n)
상기 1차 이동 평균의 추적 척도 ∇L, trck(n)는 다음과 같이 계산된다.
L, trck(n) = 127/128·∇L, trck(n-1) + 1/128·|∇L,m1(n)-∇L,m1(n-1)|
적응적 누설(adaptive leakage)을 고려한 2차 이동 평균 ∇L,m2(n)은 다음 수학식 61과 같이 계산된다.
Figure 112008044428947-pct00086
저대역 로그 스케일 인자의 정지성은 다음 수학식에 따라 변화의 정도로서 측정된다.
L, chng(n) = 127/128·∇L, chng(n-1) + 1/128·256·|∇L,m2(n)-∇L,m2(n-1)|
손실 프레임 구간 동안에는 갱신이 일어나지 않으며, 달리 표현하면 다음과 같다.
L,m1(n) = ∇L,m1(n-1)
L, trck(n) = ∇L, trck(n-1)
L,m2(n) = ∇L,m2(n-1)
L, chng(n) = ∇L, chng(n-1)
ii. 저대역 적응 양자화기의 로그 스케일 인자를 리셋하기
프레임 손실 직후 첫 수신 프레임에서, 저대역 로그 스케일 인자는 그 프레임 손실 이전의 정지성에 따라 다음과 같이 적응식으로 리셋(덮어쓰기)된다.
Figure 112008044428947-pct00087
b. 고대역 로그 스케일 인자
고대역 로그 스케일 인자, ∇H(n)의 특성값들은 수신 프레임 구간 동안에 갱신되며, 프레임 손실 직후 첫 수신 프레임 구간에서 활용되어 적응 양자화기의 상태(state)를 스케일 인자를 고려하여 적응적으로 설정하는 데에 이용된다. 더 나아가, 이 특성값들은 프레임 손실 이후 고대역 로그 스케일 인자의 수렴(convergence)를 적응식으로 제어한다.
i. 고대역 로그 스케일 인자의 이동 평균 및 정지성
H(n)의 추적 척도는 다음과 같이 계산된다.
Figure 112008044428947-pct00088
이러한 추적 척도에 기초하여, 적응적 누설을 가지고 이동 평균이 다음과 같이 계산된다.
Figure 112008044428947-pct00089
이동 평균은 첫 수신 프레임에서 고대역 로그 스케일 인자를 리셋팅하는 데에 이용되며, 이는 이후 서브섹션에서 설명될 것이다.
고대역 로그 스케일 인자의 정지성 척도는 다음과 같이 평균값으로부터 계산 된다.
H, chng(n) = 127/128·∇H, chng(n-1) + 1/128·256·|∇H,m(n)-∇H,m(n-1)|
이러한 정지성 척도는 프레임 손실 후 ∇H(n)의 재수렴을 제어하는 데에 이용되며, 이는 추후에 설명될 것이다.
손실 프레임 구간 동안, 갱신은 이뤄지지 않으며, 달리 표현하면 다음과 같다.
H, trck(n) = ∇H, trck(n-1)
H,m(n) = ∇H,m(n-1)
H, chng(n) = ∇H, chng(n-1)
ii. 고대역 적응 양자화기의 로그 스케일 인자의 리셋팅
첫 수신 프레임에서 고대역 로그 스케일 인자는 손실 이전의 수신 프레임들에 대한 연속적인 평균에 맞춰 리셋된다.
H(n-1) ← ∇H,m(n-1)
iii. 고대역 적응 양자화기의 로그 스케일 인자의 수렴
프레임 손실 이후 고대역 적응 양자화기의 로그 스케일 인자의 수렴은 프레임 손실 이전의 정지성 척도 ∇H, chng(n)에 의해 제어된다. 정지성이 있는 경우에, 패킷 손실 후 적응 저역 통과 필터가 ∇H(n)에 적용된다. 이 저역 통과 필터는 0 ms, 40 ms, 또는 80 ms 중 어느 한 구간 동안에 걸쳐 적용되며, 이 구간 동안 저역 통과 필터링의 강도(degree)는 지속적으로 줄어든다. 구간 NLP ,∇H는, 샘플 수로 나타낸다면, 다음과 같이 결정된다.
Figure 112008044428947-pct00090
저역 통과 필터는 다음과 같이 주어진다.
Figure 112008044428947-pct00091
여기서 계수는 다음과 같이 주어진다.
Figure 112008044428947-pct00092
따라서, 저역 통과 필터링 정도는 시간 n을 가지고 샘플이 지날 때마다 줄어 든다. 통상의(regular) 로그 스케일 인자는 단순히 저역 통과 필터링된 로그 스케일 인자로 NLP ,∇H 샘플들 구간 동안 대체된다.
c. 저대역 폴 섹션(low-band pole section)
(폴 섹션의) 안정도 마진(stability margin)이라고 명명된 변수 항목은 수신 프레임들 동안에 저대역 ADPCM 디코더를 위해 갱신되며, 프레임 손실 다음에 폴 섹션을 제한시키는 데에 이용된다.
i. 저대역 폴 섹션의 안정도 마진
저대역 폴 섹션의 안정도 마진은 다음과 같이 정의된다.
βL(n) = 1-|aL ,1(n)|- aL ,2(n)
여기서 aL ,1(n) 및 aL , 2(n)은 두 개의 폴 계수들이다. 이 안정도 마진의 이동 평균은 수신 프레임 구간 동안에 다음과 같이 갱신된다.
βL, MA(n) = 15/16·βL, MA(n-1) + 1/16·βL(n)
손실 프레임 구간 동안에 상기 이동 평균은 갱신되지 않아 다음과 같다.
βL, MA(n) = βL, MA(n-1)
ii. 저대역 폴 세션에 대한 제한
통상적인 G.722 저대역(및 고대역) ADPCM 인코딩 및 디코딩을 수행하는 동안에는 βL, min =1/16인 최소 안정도 마진이 유지된다. 프레임 손실 직후 첫 40 ms 동안에, 저대역 ADPCM 디코더에 대해 강화 최소 안정도 마진이 유지된다. 이는 프레임 손실 이후부터의 시간과, 안정도 마진의 이동 평균 양자의 함수이다.
첫 세 개의 10 ms 프레임들에 대해, 다음과 같은 최소 안정도 마진이 프레임 경계에서 설정되며, 그 프레임 전체에 걸쳐 강제된다.
βL, min = min{3/16, βL,MA(n-1)}
네 번째 10 ms 짜리 프레임까지 진행되었을 때의 프레임 경계에서, 최소 안정도 마진은 다음과 같이 강제되는데, 반면 나머지 프레임들에 대해 통상적인 최소 안정도 마진은 βL, MA = 1/16이 강제된다.
Figure 112008044428947-pct00093
d. 고대역 부분 재구축 신호 및 전체 재구축 신호
손실 프레임 및 수신 프레임을 포괄하는 전체 프레임 구간에서, 고대역 부분 재구축 신호, pH(n)과 전체 재구축 신호 rH(n)의 고역 필터링된 버전들은 다음과 같이 유지된다.
Figure 112008044428947-pct00094
Figure 112008044428947-pct00095
이는 40 Hz 부근에서 3 dB 컷오프를 갖는 것에 상응하며, 기본적으로 DC 제거 기능이다.
프레임 손실 이후 첫 40 ms 구간 동안, 통상적인 부분 재구축 신호 및 통상적인 재구축 신호는 이들의 고역 통과 필터링 버전들로 대체되며, 이는 각각 고대역 폴 섹션 적응 및 고대역 재구축 출력을 위한 것이다.
6. 시간 지연 계산
본 명세서에 논의된 리페이징 및 시간 워핑 기술들은, 손실 프레임 은닉 파형 xPLC(j)와 첫 수신 프레임 구간 내의 신호들이 정렬 불량 상태인 샘플들의 개수를 필요로 한다.
a. 하부 부분대역 재구축 신호의 낮은 복잡도 추정치
시간 지연의 계산을 위해 첫 수신 프레임에서 이용되는 신호는 하부 부분대역(lower sub-band) 생략 편차 신호(truncated difference signal) dLt(n)(G.722 권고안 중 3-11)을 폴-제로 필터 계수들(aLpwe ,i(159), bLpwe ,i(159)) 및 STATE159로부터 획득한 그 밖의 필요 상태 정보를 가지고 필터링함으로써 다음과 같이 얻어진다.
Figure 112008044428947-pct00096
Figure 112008044428947-pct00097
이 함수는 도 18의 블록(1820)에 의해 수행된다.
b. 리페이징 및 시간 워핑 필요 조건들의 결정
마지막 수신 프레임이, 성능 지수 merit에 의해 지시되는 바와 같이, 무성음(unvoiced)일 경우, 시간 지연 TL은 0으로 설정된다.
IF merit ≤ MLO, TL = 0
추가적으로, 만약 첫 수신 프레임이 다음의 정규화된(normalized) 1차 자기 상관 계수에 의해 지시되는 바와 같이,
Figure 112008044428947-pct00098
무성음인 경우에는, 시간 지연은 0으로 설정된다.
IF r(1) < 0.125, TL = 0
그렇지 않은 경우에는, 상기 시간 지연은 다음 섹션에서 설명되는 대로 계산된다. 시간 지연의 계산은 도 18의 블록(1850)에서 수행된다.
c. 시간 지연의 계산
시간 지연의 계산은 다음 단계들 즉 (1) 외삽 신호의 생성, (2) 대략적 시간 지연 탐색 및 (3) 세밀 시간 지연 탐색 단계들을 수반한다. 이들 단계들은 다음에서 설명된다.
i. 외삽 신호의 생성
시간 지연은 xPLC(j)와 rLe(n)의 정렬 불량을 의미한다. 이러한 정렬 불량을 계산하기 위해, xPLC(j)는 첫 수신 프레임 구간 내로 연장되며, 정규화 교차 상관 함수는 최대화된다. 본 서브섹션에서는 어떻게 xPLC(j)가 외삽 계산되고, 필요한 신호의 길이를 특정하는지를 설명한다. xPLC(j)는 xout(j) 버퍼로 복사된다고 가정한다. 이것이 타입 5 프레임(첫 수신 프레임)이기 때문에, 위와 같이 가정된 상응 관계는 다음과 같다.
xout(j-160) = xPLC(j), j=0, 1, ..., 159
상관 값이 탐색되는 범위는 다음과 같이 주어진다.
Figure 112008044428947-pct00099
여기서 △TLMAX=28이고 ppfe는 xPLC(j)의 생성에 이용되는 주기적 파형 외삽을 위한 피치 주기이다. 지연 탐색을 위한 윈도우 크기는 (16 kHz 샘플링에서) 다음과 같이 주어진다.
Figure 112008044428947-pct00100
8 kHz 샘플링에서는 지연 탐색 윈도우(lag search window) LSW를 다음과 같이 지정하는 것이 유용하다.
Figure 112008044428947-pct00101
위에서 주어진 바와 같이, xPLC(j)로부터 유도되어야 하는 외삽 신호의 총 길이는 다음과 같이 주어진다.
L = 2·(LSW + △TL)
수신 프레임 내의 첫 샘플에 비교하였을 때에 외삽 신호의 시작 위치는 다음과 같다.
D = 12 - △TL
외삽 신호 es(j)는 다음과 같이 구축된다.
If D<0
es(j) = xout(D+j) j=0,1,...,-D-1
If(L+D≤ppfe)
es(j) = xout(-ppfe+D+j) j=-D, -D+1,...L-1
Else
es(j) = xout(-ppfe+D+j) j=-D, -D+1,...ppfe-D-1
es(j) = es(j-ppfe) j=ppfe-D, ppfe-D+1,...,L-1
Else
Figure 112008044428947-pct00102
If(ovs≥L)
es(j) = xout(-ovs+j) j=0,1,...,L-1
Else
If(ovs>0)
es(j) = xout(-ovs+j) j=0,1,...,ovs-1
If(L-ovs≤ppfe)
es(j) = xout(-ovs-ppfe+j) j=ovs,ovs+1,...,L-1
Else
es(j) = xout(-ovs-ppfe+j) j=ovs,ovs+1,...,ovs+ppfe-1
es(j) = xout(j-ppfe) j=ovs+ppfe,ovs+ppfe+1,...,L-1
ii. 대략적 시간 지연 탐색
먼저, 대략적으로 추정되는 시간 지연 값 TLSUB는 서브샘플링된 정규화 상관 연산 함수 RSUB(k)의 피크를 탐색함으로써 계산된다.
Figure 112008044428947-pct00103
Figure 112008044428947-pct00104
세밀화 동안에 경계를 벗어나 탐색하게 되는 것을 피하기 위해, TLSUB는 다음과 같이 조절될 수 있다.
If(TLSUB > △TLMAX - 4), TLSUB = △TLMAX - 4
If(TLSUB < -△TLMAX + 4), TLSUB = -△TLMAX + 4
iii. 세밀 시간 지연 탐색
시간 지연 탐색은 이어서 주어진 시간 지연 TL을, 다음과 같이 주어지는 피크 R(k)를 탐색하는 것으로써 세밀화된다.
Figure 112008044428947-pct00105
Figure 112008044428947-pct00106
마지막으로, 다음 조건들이 점검된다.
Figure 112008044428947-pct00107
만약 이거나
Figure 112008044428947-pct00108
또는 이거나
Figure 112008044428947-pct00109
또는 이면
이러한 경우에는 TL=0이다.
7. 리페이징
리페이징은 손실 프레임 은닉 파형 xPLC(j)이 첫 수신 프레임 바로 앞의 마지 막 입력 신호 샘플과 동위상이 되는 구간의 어느 시점에 맞춰 내부 상태값들을 설정하는 프로세스이다. 이러한 리페이징은 다음 단계들, 즉 (1) 손실 프레임들의 재인코딩 동안에 G.722 중간 상태들을 저장, (2) 시간 지연에 따라 재인코딩을 조절 및 (3) QMF 합성 필터 메모리를 갱신하는 단계들로 세분화될 수 있다. 다음의 서브섹션들이 이들 단계들을 좀더 상세하게 설명할 것이다. 리페이징은 도 18의 블록(1810)에서 수행된다.
a. 재인코딩 동안의 G.722 중간 상태들을 저장
앞서 설명하였듯이, 재구축 신호 xPLC(j)는 G.722 디코더 상태 메모리를 갱신할 수 있도록 손실 프레임 동안에 재인코딩된다. STATEj를 xPLC(j)의 j번째 샘플을 재인코딩한 뒤의 G.722 상태 및 PLC 상태라고 하자. 프레임 경계에서 통상적으로 저장이 될 G.722 상태(즉, STATE159)에 더불어, STATE159 -△ TLMAX도 또한 저장된다. 리페이징을 원활하게 할 수 있도록, 다음의 부분대역 신호들도 또한 저장된다.
xL(n), xH(n) n=69-△TLMAX/2,...,79+△TLMAX/2
b. 시간 지연에 따른 재인코딩의 조절
시간 지연의 부호에 따라, 재인코딩의 조절 절차는 다음과 같다.
만약 △TL > 0일 경우,
1. G.722 상태 및 PLC 상태를 STATE159 -△ TLMAX에 맞춰 복구.
2. xL(n), xH(n)를 앞서 설명한 방법에 따라 재인코딩.
이때 n=80-△TLMAX/2,...,79-△TL/2.
만약 △TL < 0일 경우
1. G.722 상태 및 PLC 상태를 STATE159에 맞춰 복구.
2. xL(n), xH(n)를 앞서 설명한 방법에 따라 재인코딩.
이때 n=80...,79+|△TL/2|.
xL(n)과 xH(n)를 79+|△TL/2|까지 재인코딩하는 것을 원활하게 할 수 있도록, △TLMAX+182 까지의 xPLC(j) 샘플들이 필요하다.
c. QMF 합성 필터 메모리의 갱신
PLC가 16 kHz 출력 스피치 도메인에서 일어나기 때문에, QMF 합성 필터 뱅크는 손실 프레임 구간 동안에는 비활성화되어 있으며 그 때문에, 첫 수신 프레임에서, QMF 합성 필터 메모리가 계산될 필요가 있다. 상기 메모리는 시간 기준으로 가변하므로(time-wise), 보통은 마지막 손실 프레임의 마지막 샘플들에 상응할 것이다. 그렇지만, 리페이징이 고려될 필요가 있다. G.722에 따르면, QMF 합성 필터 메모리는 다음과 같이 주어진다.
xd(i) = rL(n-i)-rH(n-i), i=1,2,...,11
xs(i) = rL(n-i)+rH(n-i), i=1,2,...,11
이는 첫 수신 프레임의 첫 두 출력 샘플들이 다음과 같이 계산된다.
Figure 112008044428947-pct00110
Figure 112008044428947-pct00111
필터 메모리 즉 xd(n) 및 xs(i), i= 1,2,...,11은 재인코딩 동안에 간략화된 부분대역 ADPCM 인코더들에 입력되는 리페이징된 입력 xL(n) 및 xH(n)의 마지막 11개 샘플들, n = 69-△TL/2, 69-△TL/2+1,...,79-△TL/2, 즉 리페이징 지점에 이를 때까지의 마지막 샘플들로부터 다음과 같이 계산된다.
xd(i) = xL(80-△TL/2-i) - xH(80-△TL/2-i), i=1,2,...,11
xs(i) = xL(80-△TL/2-i) + xH(80-△TL/2-i), i=1,2,...,11
여기서, xL(n) 및 xH(n)은 손실 프레임 구간 동안에 상태 메모리 내에 저장되어 있던 것들이다.
8. 시간 워핑
시간 워핑은 시간 축을 따라 신호를 신장시키거나 수축시키는 프로세스이다. 다음 내용은 어떻게 xout(j)가 시간 워핑되어 주기적 파형 외삽 신호 xPLC(j)와 사이의 정렬 상태를 개선할 수 있는지를 설명한다. 알고리즘은 TL≠0일 때에만 수행된다. 시간 워핑은 도 18의 블록(1860)에서 수행된다.
a. 시간 지연 세밀화
시간 워핑을 위해 시간 지연 TL을 중첩 합산 윈도우 구간 내의 교차 상관 값을 최대로 함으로써 세밀화시킨다. 첫 수신 프레임 내에서 중첩 합산 윈도우의 추정된 시작 위치는 TL 값에 기초하여 다음과 같이 주어진다.
SPOLA = max(0, MIN_UNSTBL-TL)
여기서 MIN_UNSTBL=16이다.
SPOLA와 관계에서 외삽 신호의 시작 위치는 다음과 같이 주어진다.
Dref = SPOLA - TL - RSR
여기서 RSR=4는 세밀 탐색 범위를 나타낸다.
필요한 외삽 신호의 길이는 다음과 같이 주어진다.
Lref = OLALG + RSR
외삽 신호 estw(j)는, LSW=OLALG, L=Lref 및 D=Dref라는 점만 제외하면, 앞서 섹션 D.6.c.i에서 설명되었던 것과 동일한 절차들을 이용하여 획득된다.
세밀화 시간 지연 Tref는 다음과 같은 피크를 탐색함으로써 계산된다.
Figure 112008044428947-pct00112
Figure 112008044428947-pct00113
시간 워핑에 이용되는 최종 시간 지연 값은 이어서 다음과 같이 획득된다.
TLwarp = TL + Tref
b. 시간 워핑된 xout(j) 신호의 계산
신호 xout(j)는 TLwarp 개 샘플들만큼 시간 워핑되고 신호 xwarp(j)를 형성하는데, 이는 나중에 파형 외삽 신호 esola(j)와 중첩 합산된다. TLwarp의 값에 따른 세 가지 경우들이 도 22a, 22b 및 22c의 시간축선 2200, 2220 및 2240에 각각 예시되어 있다. 도 22a에서는, TLwarp < 0이고 xout(j)는 수축 또는 시간 압축을 겪는다. xout(j)의 첫 MIN_UNSTBL 샘플들은 xwarp(j)를 생성하는 데에 이용되지 않으며, xstart=MIN_UNSTBL이 된다. 도 22b는 0 ≤ TLwarp < MIN_UNSTBL이며, xout(j)는 TLwarp 개의 샘플들만큼 신장된다. 마찬가지로, xout(j)의 첫 MIN_UNSTBL 샘플들은 xwarp(j)를 생성하는 데에 이용되지 않으며, xstart=MIN_UNSTBL이 된다. 도 22c에서는, TLwarp ≥ MIN_UNSTBL이고, xout(j)는 한 번 더 TLwarp 개 샘플들만큼 신장된다. 그러나, 이 경우에는 추가적인 TLwarp 개의 샘플들이 시간 워핑 중에 생성될 것이므로, xout(j)의 첫 TLwarp 개의 신호들은 필요하지 않으며, 따라서 xstart = TLwarp이다.
각각의 경우에, 추가/탈락 당 샘플들(samples per add/drop)의 수는 다음과 같이 주어진다.
Figure 112008044428947-pct00114
시간 워핑은 개별 샘플 기반(piece-wise)의 단일 샘플 쉬프트 동작(single sample shift) 및 삼각 중첩-합산(triangular overlap-add)하는 동작을 통해 구현되며, xout[xstart]부터 시작한다. 신호 수축을 수행하는 경우에, 샘플이 주기적으로 탈락된다. 샘플 탈락 지점에서부터, 원래의 신호와 좌측 쉬프트된(샘플 탈락으로 인해) 신호가 서로 중첩 합산된다. 신호 신장을 수행하려면, 샘플이 주기저으로 반복된다. 샘플 반복 지점에서부터, 원래 신호와 우측 쉬프트된(샘플 반복으로 인해) 신호가 서로 중첩 합산된다. 이 중첩 합산 윈도우의 길이 Lolawarp(주의: 이는 도 22a, 22b 및 22c에서 OLA 영역이라고 설명된 부분과는 다르다)는 샘플 추가/탈락의 주기성에 종속적이며 다음과 같이 주어진다.
Figure 112008044428947-pct00115
시간 워핑된 입력 신호 xwarp의 길이는 다음과 같이 주어진다.
Lxwarp = min(160, 160-MIN_UNSTBL + TLwarp)
c. 파형 외삽 신호의 계산
시간 워핑된 신호 xwarp(j)와 외삽 신호 esola(j)는 도 22a, 22b 및 22c에 나타낸 바와 같이, 첫 수신 프레임 중에 중첩 합산된다. 외삽 신호 esola(j)는 다음의 2 단계 프로세스에 의해 xout(j) 신호 버퍼 내에서 직접 생성된다.
단계 1: esola(j) = xout(j) = ptfe·xout(j-ppfe) j=0,1,...160-Lxwarp+39
단계 2: xout(j) = xout(j)·wi(j)+ring(j)·wo(j) j=0,1,...,39
여기서, wi(j) 및 wo(j)는 길이 40인 삼각 증가 및 감소 형태의 중첩 합산 윈도우들이고, ring(j)는 앞서 설명된 방식을 통해 계산된 호출 신호이다.
d. 시간 워핑 신호를 파형 외삽 신호와 중첩 합산하기
앞 문단에서 계산된 외삽 신호는 다음과 같이 시간 워핑 신호 xwarp(j)와 중첩 합산된다.
xout(160-Lxwarp+j) = xout(160-Lxwarp+j)·wo(j)+xwarp(j)·wi(j) j=0,1,...,39
xwarp(j)의 나머지 부분은 간단히 신호 버퍼에 복제되기만 하면 된다.
xout(160-Lxwarp+j) = xwarp(j) j=40,41,...,Lxwarp-1
E. 부분대역 스피치 파형들의 외삽에 기초한 부분대역 예측 코더의 패킷 손실 은닉
본 발명의 다른 실시예가 도 23에 디코더/PLC 시스템(2300)으로 예시되어 있다. 앞서 설명한 바와 같이 디코더/PLC 시스템(300)을 위해 전개하였던 대부분의 기술들은 이 두 번째 예시적인 실시예에서도 마찬가지로 활용될 수 있다. 디코더/PLC 시스템(2300)과 디코더/PLC 시스템(300) 사이의 중요한 차이점은 스피치 파형의 외삽이 전대역 스피치 신호 도메인에서 일어나기보다는 부분대역 스피치 신호 신호 도메인에서 수행된다는 점이다.
도 23에 나타나 있듯이, 디코더/PLC 시스템(2300)은 비트 스트림 디멀티플렉서(2310), 저대역 ADPCM 디코더(2320), 저대역 스피치 신호 합성기(2322), 스위치(2326), 고대역 ADPCM 디코더(2330), 고대역 스피치 신호 합성기(2332), 스위치(2336) 및 QMF 합성 필터 뱅크(2340)를 포함한다. 비트 스트림 디멀티플렉서(2310)는 실질적으로 도 2의 비트 스트림 디멀티플렉서(210)와 동일하며, QMF 합성 필터 뱅크(2340)는 도 2의 QMF 합성 필터 뱅크(240)와 실질적으로 동일하다.
도 3의 디코더/PLC 시스템(300)과 유사하게, 디코더/PLC 시스템(2300)은 프레임 종류에 의존적인 방법을 통해 프레임들을 처리하며, 도 5를 참조하여 설명되 었던 것과 동일한 프레임 타입들이 이용된다.
타입 1 프레임의 처리를 수행하는 동안에는, 디코더/PLC 시스템(2300)은 통상적인 G.722 디코딩을 수행한다. 이러한 동작 모드에서는, 디코더/PLC 시스템(2300)의 블록들(2310, 2320, 2330 및 2340)은 각각, 기존의 G.722 디코더(200)의 각각 해당되는 블록들(210, 220, 230 및 240)과 정확하게 동일한 기능들을 수행한다. 구체적으로는, 비트 스트림 디멀티플렉서(2310)는 입력 비트 스트림을 저대역 비트 스트림과 고대역 비트 스트림으로 분리시킨다. 저대역 ADPCM 디코더(2320)는 저대역 비트 스트림을 디코딩하여 디코딩된 저대역 스피치 신호로 만든다. 스위치(2326)는 "타입 1"이라고 명시된 상부 위치에 연결되어 있으므로, 이 디코딩된 저대역 스피치 신호를 QMF 합성 필터 뱅크(2340)에 연결시킨다. 고대역 ADPCM 디코더(2330)는 고대역 비트 스트림을 디코딩하여 디코딩된 고대역 스피치 신호로 만든다. 스위치(2336)도 마찬가지로 "타입 1"이라고 명시된 상부 위치에 연결되어 있으므로, 이 디코딩된 고대역 스피치 신호를 QMF 합성 필터 뱅크(2340)에 연결시킨다. QMF 합성 필터 뱅크(2340)는 이어서 디코딩된 저대역 스피치 신호와 디코딩된 고대역 스피치 신호를 재합성하여 전대역 출력 스피치 신호로 만든다.
따라서, 타입 1 프레임의 프로세싱 동안에, 상기 디코더/PLC 시스템은 도 2의 디코더(200)와 동등하지만, 한 가지 예외는 장래에 있을 손실 프레임 동안에 이용할 수 있도록 디코딩된 저대역 스피치 신호가 저대역 스피치 신호 합성기(2322)에 저장되고, 비슷하게 디코딩된 고대역 스피치 신호도 장래에 있을 손실 프레임 동안에 이용할 것을 대비하여 고대역 스피치 신호 합성기(2332)에 저장된다는 점이 다. PLC 동작들에 앞서 수행되는 상태 갱신들 및 그 밖의 처리들은 마찬가지로 수행될 것이다.
타입 2, 타입 3 및 타입 4 프레임들(손실 프레임들)의 프로세싱 동안에, 각 부분대역의 디코딩 스피치 신호가 이전의 프레임들에 관련한 상기 저장된 부분대역 스피치 신호들로부터 개별적으로 외삽되어, 현재의 손실 프레임에 관련된 파형의 무신호 구간(gap)을 채운다. 이러한 파형 외삽은 저대역 스피치 신호 합성기(2322) 및 고대역 스피치 신호 합성기(2332)에 의해 수행된다. 블록들(2322, 2332)의 파형 외삽 기능을 수행하는 데에 이용될 수 있는 종래 기술들이 다수 존재한다. 예를 들어, 2005년 9월 26일자 출원된 Chen의 미국 특허 출원 번호 제11/234,291호 "Packet Loss Concealment for Block-Independent Speech Codecs"에 설명된 기술들이 이용될 수 있으며, 또는 도 3의 디코더/PLC 시스템(300)을 참조하여 앞서 설명한 바와 같은, 위 기술들의 변형 버전이 이용될 수도 있다.
타입 2, 타입 3 또는 타입 4 프레임의 프로세싱 동안에, 스위치들(2326, 2336)은 모두 "타입 2-6"이라 적힌 아래쪽 위치에 있다. 따라서, 이들 스위치는 합성된 저대역 오디오 신호와 합성된 고대역 오디오 신호를 QMF 합성 필터 뱅크(2340)에 연결하며, 이 QMF 합성 필터 뱅크(2340)가 이들 오디오 신호들을 재결합시켜 현재 손실 프레임에 대한 하나의 합성된 출력 스피치 신호로 만든다.
상기 디코더/PLC 시스템(300)과 유사하게, 불량 프레임 바로 이후의 첫 몇 개의 수신 프레임들(타입 5 및 타입 6 프레임들)은 G.722 상태 값들의 정합 불량으로 인한 스피치 신호 품질 저하를 최소화하고 또한 마지막 손실 프레임의 외삽 스 피치 신호 파형으로부터 마지막 불량 프레임 이후 처음 몇 개의 양호 프레임들의 디코딩 스피치 신호 파형으로 부드러운 전환이 이뤄지는 것을 확실히 할 수 있도록, 특별한 취급을 필요로 한다. 따라서, 이들 프레임들의 처리를 하는 동안에, 스위치들(2326, 2336)은 "타입 2-6"이라고 적힌 아래쪽 위치를 유지하며, 따라서 저대역 ADPCM 디코더(2320)로부터 출력되는 디코딩 저대역 스피치 신호는 QMF 합성 필터 뱅크(2340)에 제공되기에 앞서 저대역 스피치 신호 합성기(2322)에 의해 변형될 수 있고, 고대역 ADPCM 디코더(2330)로부터 출력되는 디코딩 고대역 스피치 신호는 QMF 합성 필터 뱅크(2340)에 제공되기에 앞서 고대역 스피치 신호 합성기(2332)에 의해 변형될 수 있다.
본 기술 분야에 숙련된 자들은 앞서 섹션 C 및 D에서 패킷 손실 후 첫 몇 개의 프레임들에 관하여 설명한 기술들의 대부분이 패킷 손실 후 첫 몇 개의 프레임들에 관한 특별한 취급을 위해 이 예시적 실시예에도 마찬가지로 용이하게 적용될 수 있다는 점을 인식할 수 있을 것이다. 예를 들어, 디코딩 제한 및 제어 로직(도 23에는 나타내지 않음)이 디코더/PLC 시스템(2300)에 포함되어, 디코더/PLC 시스템(300)을 참조하여 위에서 설명되었던 방식과 유사한 방식을 통해, 타입 5 및 6 프레임들의 처리를 하는 동안 저대역 ADPCM 디코더(2320) 및 고대역 ADPCM 디코더(2330)에 의해 수행되는 디코딩 동작들을 제한하고 제어할 수 있다. 또한, 각 부분대역 스피치 신호 합성기(2322, 2332)도 디코더/PLC 시스템(300)을 참조하여 위에서 설명하였던 것들과 같은 리페이징 및 시간 워핑 기술들을 수행할 수 있게 구성될 수 있다. 이러한 기술들에 관한 전체적인 설명이 앞 섹션들에서 제공되었기 때문에, 디코더/PLC 시스템(2300)의 맥락에서 이용하기 위해 이들 기술들에 대해 재차 설명할 필요는 없을 것이다.
디코더/PLC 시스템(300)에 비교하였을 때에, 디코더/PLC 시스템(2300)의 가장 큰 장점은 낮은 복잡도를 가진다는 점이다. 부분대역 도메인에서 스피치 신호를 외삽하는 것은, 첫 예시적 실시예서 수행되었던 것과 같은 전대역 외삽 스피치 신호를 부분대역 스피치 신호들로 분리할 수 있도록 QMF 분석 필터 뱅크를 채택해야 할 필요를 없앨 수 있기 때문이다. 그러나, 전대역 도메인에서 스피치 신호를 외삽하는 것도 그만의 장점이 있다. 이 점은 아래에서 설명된다.
도 23의 시스템(2300)이 고대역 스피치 신호를 외삽할 때에, 몇 가지 잠재적인 문제점들이 있다. 먼저, 만약 고대역 스피치 신호에 대해 이 시스템이 주기적 파형 외삽을 수행하지 않는다면, 출력 스피치 신호는 어떤 대단히 주기적인 유성음 신호들의 경우에 나타날 수 있는 고대역 스피치 신호의 주기적인 성격을 보존하지 못할 수 있다. 반면에, 만약 이 시스템이 고대역 스피치 신호에 대해 주기적 파형 외삽을 수행하는 경우에, 설령 이 시스템이 계산량을 절감하고 두 부분대역 스피치 신호들이 외삽 시에 동일한 피치 주기를 이용하는 것을 확실하게 할 수 있도록 저대역 스피치 신호의 외삽에서 이용되는 것과 동일한 피치 주기를 이용하더라도, 여전히 다른 문제점이 있다. 고대역 스피치 신호가 주기적으로 외삽될 경우에, 외삽된 고대역 스피치 신호도 주기적이 될 것이며, 자체 스펙트럼에 고조파 구조(harmonic structure)를 가질 것이다. 다른 말로 설명하면, 고대역 스피치 신호의 스펙트럼에서 스펙트럼 피크들의 주파수들이 정수배의 관계가 있을 것이다. 그 러나, 일단 이러한 고대역 스피치 신호가 합성 필터 뱅크(2340)에 의해 저대역 스피치 신호와 재결합되면, 상기 고대역 스피치 신호의 스펙트럼은 "전치(translated)" 즉 좀더 높은 주파수로 이동할 것이며, 어떤 QMF 합성 필터 뱅크가 이용되느냐에 따라 심지어 미러 이미지(mirror image) 현상이 발생할 가능성도 있다. 따라서, 이러한 미러 이미지 현상 및 주파수 이동의 결과로, 전대역 출력 스피치의 고대역 부분에서 주파수 피크들이 여전히 저대역 스피치 신호의 내에서 발견되는 피치 주파수의 정수배인 주파수들을 가질 것인지에 대해 장담할 수 없다. 이는 잠재적으로 매우 주기적인 유성음 신호들의 출력 오디오 품질에 있어서 품질 저하를 유발할 수 있다. 반면에, 도 3의 시스템(300)은 이러한 문제점을 가지지 않을 것이다. 시스템(300)이 전대역 도메인에서 오디오 신호 외삽을 수행하기 때문에, 고대역에 있는 고조파 피크들의 주파수들은 피치 주기의 정수배임이 보장된다.
종합하면, 디코더/PLC 시스템(300)의 장점은, 유성음 신호들에 대해, 외삽된 전대역 스피치 신호가 전체 스피치 대역폭을 통틀어 스펙트럼 피크들의 고조파 구조를 유지시킬 것이라는 점이다. 반면에, 디코더/PLC 시스템(2300)은 낮은 복잡도라는 장점을 가지나, 높은 쪽 부분대역들에서 그러한 고조파 구조를 유지하지 못할 수 있다.
F. 하드웨어 및 소프트웨어 구현예들
설명의 완전함을 위해 다음의 범용 컴퓨터 시스템에 대한 설명을 제공한다. 본 발명은 하드웨어의 형태로 또는 소프트웨어와 하드웨어의 조합으로서 구현될 수 있다. 그 결과, 본 발명은 컴퓨터 시스템 또는 그 밖의 프로세싱 시스템이 환경으로 구현될 수 있다. 컴퓨터 시스템(2400)의 한 예가 도 24에 나타나 있다. 본 발명에서, 예를 들어 위의 섹션 C, D, E에 설명된 모든 디코딩 및 PLC 동작들은, 본 발명의 여러 방법을 구현하는 하나 또는 다수의 개별 컴퓨터 시스템들(2400) 상에서 실행될 수 있다.
컴퓨터 시스템(2400)은 프로세서(2404)와 같은 하나 또는 다수의 프로세서들을 포함한다. 프로세서(2404)는 특수 목적용 또는 범용 디지털 신호 프로세서일 수 있다. 상기 프로세서(2404)는 통신 기반 구조(2402)(예를 들어, 버스 또는 네트워크)에 연결된다. 다양한 소프트웨어 구현 프로그램들이 이 예시적 컴퓨터 시스템을 염두에 두고 설명된다. 이 설명을 숙독하고 나면 관련 기술 분야에 숙련된 자들에게 어떻게 하여 기타 컴퓨터 시스템들 내지 컴퓨터 아키텍처들을 이용하여 본 발명을 구현할 수 있는지가 명백하게 될 것이다.
컴퓨터 시스템(2400)은 또한 주 메모리(2406)를 포함하며, 이는 바람직하게는 RAM(random access memory)이고, 또한 보조 메모리(2420)를 더 포함할 수 있다. 이 보조 메모리(2420)는 예를 들어, 하드디스크 드라이브(2422) 내지, 플로피 드라이브, 마그네틱 테이프 드라이브, 광학 디스크 드라이브 기타 등등으로 대표되는 이동식 저장 장치(2424)를 포함할 수 있다. 상기 이동식 저장 장치(2424)는 주지된 방식으로 이동식 저장 유닛(2428)에 대해 읽거나 쓴다. 이동식 저장 유닛(2428)은 플로피 디스크, 마그네틱 테이프, 광학 디스크 기타 등등으로 대표되며, 이동식 저장 장치(242)를 통해 읽어들이거나 기록이 이뤄진다. 쉽게 이해될 수 있듯이, 상기 이동식 저장 유닛(2424)은 그 위에 컴퓨터 소프트웨어 내지 데이터가 저장되도록 할 수 있는 컴퓨터 이용가능 저장 매체를 포함한다.
다른 구현예에서는, 보조 메모리(2420)는 컴퓨터 프로그램 또는 그 밖의 명령어들이 컴퓨터 시스템(2400)에 로딩되도록 할 수 있는 기타 유사한 수단들을 포함할 수 있다. 그러한 수단에는 예를 들어, 이동식 저장 유닛(2430) 및 인터페이스(2426)가 있다. 이러한 수단의 예는 프로그램 카트리지 및 카트리지 인터페이스(비디오 게임 장치들에서 찾아볼 수 있는 것과 같은 방식), 착탈식 메모리 칩(예를 들어 EPROM 또는 PROM) 및 이와 연계된 소켓, 그리고 그 밖의 이동식 저장 유닛(2430) 및 인터페이스(2426)로서 이동식 저장 유닛(2430)으로부터 소프트웨어 및 데이터를 컴퓨터 시스템(2400)으로 전송시킬 수 있는 것들을 포함한다.
컴퓨터 시스템(2400)은 또한 통신 인터페이스(2440)를 포함할 수 있다. 통신 인터페이스(2440)는 소프트웨어 및 데이터가 컴퓨터 시스템(2400)과 외부 장치들 사이에 전송될 수 있게 한다. 통신 인터페이스(2440)의 예로는, 모뎀(modem), 네트워크 인터페이스(예를 들어 이더넷 카드), 통신 포트, PCMCIA 슬롯 및 카드 등이 있을 수 있다. 통신 인터페이스(2440)를 통해 전송되는 소프트웨어 및 데이터는 전자적, 전자기적, 광학적 신호의 형태이거나 또는 그 밖에 통신 인터페이스(2440)에 의해 수신될 수 있는 신호의 형태이다. 이들 신호들은 통신 경로(2442)를 통해 통신 인터페이스(2440)로 제공된다. 통신 경로(2442)는 신호들을 운반하며, 와이어나 케이블, 광섬유, 전화선, 셀룰러 전화 링크, RF 링크 및 그 밖의 통신 채널을 이용하여 구현될 수 있다.
본 명세서에서 사용된 바와 같이, "컴퓨터 프로그램 매체" 및 "컴퓨터 이용가능 매체"와 같은 용어들은 일반적으로 이동식 저장 유닛들(2428, 2430)과 같은 매체, 하드디스크 드라이브(2422) 내에 탑재된 하드디스크 및 통신 인터페이스(2440)에서 수신된 신호들을 가리키는 데에 이용된다. 이들 컴퓨터 프로그램 제품들은 소프트웨어를 컴퓨터 시스템(2400)에 제공하기 위한 수단들이다.
컴퓨터 프로그램들(또는 컴퓨터 제어 로직이라고도 함)은 주 메모리(2406) 내지 보조 메모리(2420)에 저장된다. 컴퓨터 프로그램들은 또한 통신 인터페이스(2440)를 통해 수신될 수도 있다. 이러한 컴퓨터 프로그램들은 실행이 될 경우에 컴퓨터 시스템(2400)으로 하여금 본 발명을 본 명세서에서 논의된 바대로 구현할 수 있게 한다. 특히, 상기 컴퓨터 프로그램들은, 실행이 될 경우에, 프로세서(2400)가 본 명세서에서 설명된 방법들 중 여하한 방법과 같은 본 발명의 여러 프로세스들을 구현할 수 있게 만든다. 따라서, 이러한 컴퓨터 프로그램들은 컴퓨터 시스템(2400)의 제어부들을 대표할 수 있다. 본 발명이 소프트웨어를 이용하여 구현되는 경우에, 그러한 소프트웨어는 컴퓨터 프로그램 제품 내에 저장되어 이동식 저장 드라이브(2424), 인터페이스(2436) 내지 통신 인터페이스(2440)를 이용하여 컴퓨터 시스템(2400)에 로딩될 수 있다.
다른 실시예에서는, 본 발명의 특징들은 주문형 반도체(ASIC) 및 게이트 어레이들과 같은 하드웨어 부품들을 이용하여 주로 하드웨어의 형태로 구현된다. 본 명세서에 설명된 기능들을 수행할 수 있도록 하드웨어 상태 머신의 구현하는 것 또한 관련 기술 분야들에 숙련된 자들에게 명백할 수 있다.
E. 결론
본 발명의 다양한 실시예들이 앞서 설명되었지만, 이들은 예시를 위한 수단으로서 제공된 것들이며 한정하려는 것이 아니다는 점이 이해되어야 한다. 관련 기술 분야에 숙련된 자들에게 본 발명의 사상 및 범위를 벗어나지 않고도 형태나 세부 사항에 있어서 다양한 변경이 여기에 가해질 수 있다는 점이 명백할 것이다. 따라서, 본 발명의 폭과 범위는 상술된 예시적 실시예들 중 어느 것에 의해서도 한정되어서는 안 되며, 다만 다음의 청구항들 및 이들의 균등 범위에 의하여만 정의되어야 할 것이다.

Claims (42)

  1. 인코딩된 오디오 신호를 나타내는 일련의 프레임들을 디코딩하도록 구성된 디코더의 상태를 갱신하기 위한 방법에 있어서,
    상기 일련의 프레임들 중 손실 프레임과 관련된 출력 오디오 신호를 합성하는 단계;
    프레임 경계에서 상기 합성된 출력 오디오 신호로 정렬하기 위해 상기 디코더 상태를 설정하는 단계;
    상기 합성된 출력 오디오 신호에 기초하여 외삽 신호(extrapolated signal)를 생성하는 단계;
    상기 외삽 신호와, 상기 일련의 프레임들 중 손실 프레임 후의 첫 번째 수신 프레임과 관련된 디코딩된 오디오 신호 사이의 시간 지연을 계산하는 단계로서, 상기 시간 지연은 상기 외삽 신호와 상기 디코딩된 오디오 신호 사이의 위상 차이를 나타내는, 상기 시간 지연을 계산하는 단계; 및
    상기 시간 지연에 기초하여 상기 디코더 상태를 재설정하는 단계를 포함하고,
    상기 프레임 경계에서 상기 합성된 출력 오디오 신호로 정렬하기 위해 상기 디코더 상태를 설정하는 단계는, 상기 프레임 경계까지 상기 합성된 출력 오디오 신호를 나타내는 일련의 샘플들을 재인코딩하는 단계를 포함하고,
    상기 시간 지연에 기초하여 상기 디코더 상태를 재설정하는 단계는, 상기 프레임 경계와 상기 시간 지연과 관련된 샘플들의 수를 가산 또는 감산한 곳까지 상기 합성된 출력 오디오 신호를 나타내는 일련의 샘플들을 재인코딩하는 단계를 포함하는 것을 특징으로 하는 디코더의 상태를 갱신하기 위한 방법.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 외삽 신호와 상기 디코딩된 오디오 신호 사이의 시간 지연을 계산하는 단계는, 상기 외삽 신호와 상기 디코딩된 오디오 신호 사이의 상관 값(correlation)을 최대화하는 단계를 포함하는 것을 특징으로 하는 디코더의 상태를 갱신하기 위한 방법.
  4. 청구항 1에 있어서,
    상기 외삽 신호와 상기 디코딩된 오디오 신호 사이의 시간 지연을 계산하는 단계는,
    제1 시간 지연을 확인하기 위해 1번째 지연 탐색 범위 및 1번째 지연 탐색 윈도우를 사용하여 상기 외삽 신호와 상기 디코딩된 오디오 신호 사이의 정규화 교차 상관 함수의 1번째 피크를 탐색하는 단계로서, 상기 1번째 지연 탐색 범위는 상기 탐색 동안 상기 외삽 신호의 시작 지점이 이동된 범위를 특정하고, 상기 1번째 지연 탐색 윈도우는 상기 정규화 교차 상관 함수가 계산되는 샘플들의 수를 특정하는, 상기 정규화 교차 상관 함수의 1번째 피크를 탐색하는 단계; 및
    상기 제1 시간 지연보다 세밀화된(refined) 제2 시간 지연을 확인하기 위해 2번째 지연 탐색 범위 및 2번째 지연 탐색 윈도우를 사용하여 상기 외삽 신호와 상기 디코딩된 오디오 신호 사이의 정규화 교차 상관 함수의 2번째 피크를 탐색하는 단계로서, 상기 2번째 지연 탐색 범위는 상기 1번째 지연 탐색 범위보다 작은, 상기 정규화 교차 상관 함수의 2번째 피크를 탐색하는 단계를 포함하는 것을 특징으로 하는 디코더의 상태를 갱신하기 위한 방법.
  5. 청구항 4에 있어서,
    상기 외삽 신호와 상기 디코딩된 오디오 신호 사이의 정규화 교차 상관 함수의 1번째 피크를 탐색하는 단계는, 상기 외삽 신호와 상기 디코딩된 오디오 신호의 다운 샘플링된(down-sampled) 표현들 사이의 정규화 교차 상관 함수의 피크를 탐색하는 단계를 포함하는 것을 특징으로 하는 디코더의 상태를 갱신하기 위한 방법.
  6. 청구항 4에 있어서,
    상기 2번째 지연 탐색 윈도우는 상기 1번째 지연 탐색 윈도우보다 작은 것을 특징으로 하는 디코더의 상태를 갱신하기 위한 방법.
  7. 스피치 또는 오디오 코더에서 패킷 손실의 품질 저하 효과를 은닉하는 시스템에 있어서,
    인코딩된 오디오 신호를 나타내는 일련의 프레임들 중 수신 프레임들을 디코딩하도록 구성된 디코더;
    상기 일련의 프레임들 중 손실 프레임과 관련된 출력 오디오 신호를 합성하도록 구성된 오디오 신호 합성기; 및
    상기 합성된 출력 오디오 신호의 생성 후에 프레임 경계에서 상기 합성된 출력 오디오 신호로 정렬하기 위해 상기 디코더의 상태를 설정하고, 상기 합성된 출력 오디오 신호에 기초하여 외삽 신호(extrapolated signal)를 생성하고, 상기 외삽 신호와 상기 일련의 프레임들 중 손실 프레임 후의 첫 번째 수신 프레임과 관련된 디코딩된 오디오 신호 사이의 시간 지연을 계산하고, 상기 시간 지연에 기초하여 상기 디코더 상태를 재설정하도록 구성된 디코더 상태 갱신 로직(logic)부를 포함하고,
    상기 시간 지연은 상기 외삽 신호와 상기 디코딩된 오디오 신호 사이의 위상 차이를 나타내고,
    상기 디코더 상태 갱신 로직부는,
    상기 프레임 경계까지 상기 합성된 출력 오디오 신호를 나타내는 일련의 샘플들을 재인코딩하는 것에 의해, 상기 프레임 경계에서 상기 합성된 출력 오디오 신호로 정렬하기 위해 상기 디코더 상태를 설정하도록 구성되고,
    상기 디코더 상태 갱신 로직부는,
    상기 프레임 경계와 상기 시간 지연과 관련된 샘플들의 수를 가산 또는 감산한 곳까지 상기 합성된 출력 오디오 신호를 나타내는 일련의 샘플들을 재인코딩하는 것에 의해, 상기 시간 지연에 기초하여 상기 디코더 상태를 재설정하도록 구성된 것을 특징으로 하는 스피치 또는 오디오 코더에서 패킷 손실의 품질 저하 효과를 은닉하는 시스템.
  8. 삭제
  9. 청구항 7에 있어서,
    상기 디코더 상태 갱신 로직부는,
    상기 외삽 신호와 상기 디코딩된 오디오 신호 사이의 상관 값(correlation)을 최대화하는 것에 의해, 상기 외삽 신호와 상기 디코딩된 오디오 신호 사이의 시간 지연을 계산하도록 구성된 것을 특징으로 하는 스피치 또는 오디오 코더에서 패킷 손실의 품질 저하 효과를 은닉하는 시스템.
  10. 인코딩된 오디오 신호를 나타내는 일련의 프레임들을 디코딩하도록 구성된 디코더의 상태를 갱신하도록 프로세서(processor)를 활성화하는 컴퓨터 프로그램 을 기록한 컴퓨터 판독가능한 기록매체(computer-readable medium)에 있어서,
    상기 컴퓨터 프로그램은,
    상기 일련의 프레임들 중 손실 프레임과 관련된 출력 오디오 신호를 합성하도록 상기 프로세서를 활성화하는 제 1 단계;
    프레임 경계에서 상기 합성된 출력 오디오 신호로 정렬하도록 상기 디코더 상태를 설정하도록 상기 프로세서를 활성화하는 제 2 단계;
    상기 합성된 출력 오디오 신호에 기초하여 외삽 신호(extrapolated signal)를 생성하도록 상기 프로세서를 활성화하는 제 3 단계;
    상기 외삽 신호와, 상기 일련의 프레임들 중 손실 프레임 후의 첫 번째 수신 프레임과 관련된 디코딩된 오디오 신호 사이의 시간 지연을 계산하도록 상기 프로세서를 활성화하는 제 4 단계로서, 상기 시간 지연은 상기 외삽 신호와 상기 디코딩된 오디오 신호 사이의 위상 차이를 나타내는, 상기 제 4 단계, 및
    상기 시간 지연에 기초하여 상기 디코더 상태를 재설정하도록 상기 프로세서를 활성화하는 제 5 단계를 수행하고,
    상기 제 2 단계은, 상기 프레임 경계까지 상기 합성된 출력 오디오 신호를 나타내는 일련의 샘플들을 재인코딩하도록 상기 프로세서를 활성화하는 단계를 포함하고,
    상기 제 5 단계은, 상기 프레임 경계와 상기 시간 지연과 관련된 샘플들의 수를 가산 또는 감산한 곳까지 상기 합성된 출력 오디오 신호를 나타내는 일련의 샘플들을 재인코딩하도록 상기 프로세서를 활성화하는 단계을 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 기록매체.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
KR1020087015128A 2006-08-15 2007-08-15 패킷 손실 후의 디코더 상태의 리페이징 KR101008508B1 (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US83762706P 2006-08-15 2006-08-15
US60/837,627 2006-08-15
US84804906P 2006-09-29 2006-09-29
US84805106P 2006-09-29 2006-09-29
US60/848,049 2006-09-29
US60/848,051 2006-09-29
US85346106P 2006-10-23 2006-10-23
US60/853,461 2006-10-23

Publications (2)

Publication Number Publication Date
KR20090039662A KR20090039662A (ko) 2009-04-22
KR101008508B1 true KR101008508B1 (ko) 2011-01-17

Family

ID=39062148

Family Applications (5)

Application Number Title Priority Date Filing Date
KR1020087015129A KR101041895B1 (ko) 2006-08-15 2007-08-15 패킷 손실 후 디코딩된 오디오 신호의 시간 워핑
KR1020087010975A KR101041892B1 (ko) 2006-08-15 2007-08-15 패킷 손실 은닉 후 디코더 상태의 갱신 기법
KR1020087015128A KR101008508B1 (ko) 2006-08-15 2007-08-15 패킷 손실 후의 디코더 상태의 리페이징
KR1020087015127A KR101040160B1 (ko) 2006-08-15 2007-08-15 패킷 손실 후의 제한되고 제어된 디코딩
KR1020087010974A KR101046982B1 (ko) 2006-08-15 2007-08-15 전대역 오디오 파형의 외삽법에 기초한 부분대역 예측코딩에 대한 패킷 손실 은닉 기법

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020087015129A KR101041895B1 (ko) 2006-08-15 2007-08-15 패킷 손실 후 디코딩된 오디오 신호의 시간 워핑
KR1020087010975A KR101041892B1 (ko) 2006-08-15 2007-08-15 패킷 손실 은닉 후 디코더 상태의 갱신 기법

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020087015127A KR101040160B1 (ko) 2006-08-15 2007-08-15 패킷 손실 후의 제한되고 제어된 디코딩
KR1020087010974A KR101046982B1 (ko) 2006-08-15 2007-08-15 전대역 오디오 파형의 외삽법에 기초한 부분대역 예측코딩에 대한 패킷 손실 은닉 기법

Country Status (6)

Country Link
US (10) US8005678B2 (ko)
EP (5) EP2054879B1 (ko)
KR (5) KR101041895B1 (ko)
DE (2) DE602007014059D1 (ko)
HK (5) HK1129153A1 (ko)
WO (5) WO2008022176A2 (ko)

Families Citing this family (128)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7720677B2 (en) 2005-11-03 2010-05-18 Coding Technologies Ab Time warped modified transform coding of audio signals
DE102006022346B4 (de) * 2006-05-12 2008-02-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Informationssignalcodierung
US7844453B2 (en) 2006-05-12 2010-11-30 Qnx Software Systems Co. Robust noise estimation
US8280728B2 (en) * 2006-08-11 2012-10-02 Broadcom Corporation Packet loss concealment for a sub-band predictive coder based on extrapolation of excitation waveform
US8005678B2 (en) 2006-08-15 2011-08-23 Broadcom Corporation Re-phasing of decoder states after packet loss
US7856087B2 (en) * 2006-08-29 2010-12-21 Audiocodes Ltd. Circuit method and system for transmitting information
US8571875B2 (en) 2006-10-18 2013-10-29 Samsung Electronics Co., Ltd. Method, medium, and apparatus encoding and/or decoding multichannel audio signals
FR2907586A1 (fr) * 2006-10-20 2008-04-25 France Telecom Synthese de blocs perdus d'un signal audionumerique,avec correction de periode de pitch.
US8326620B2 (en) 2008-04-30 2012-12-04 Qnx Software Systems Limited Robust downlink speech and noise detector
US8335685B2 (en) 2006-12-22 2012-12-18 Qnx Software Systems Limited Ambient noise compensation system robust to high excitation noise
PL2118889T3 (pl) * 2007-03-05 2013-03-29 Ericsson Telefon Ab L M Sposób i sterownik do wygładzania stacjonarnego szumu tła
GB0704622D0 (en) * 2007-03-09 2007-04-18 Skype Ltd Speech coding system and method
CN101325631B (zh) * 2007-06-14 2010-10-20 华为技术有限公司 一种估计基音周期的方法和装置
CN101325537B (zh) * 2007-06-15 2012-04-04 华为技术有限公司 一种丢帧隐藏的方法和设备
US8386246B2 (en) * 2007-06-27 2013-02-26 Broadcom Corporation Low-complexity frame erasure concealment
US8266251B2 (en) * 2007-07-30 2012-09-11 Nec Corporation Communication terminal, distribution system, method for conversion and program
US20090048828A1 (en) * 2007-08-15 2009-02-19 University Of Washington Gap interpolation in acoustic signals using coherent demodulation
JP2009063928A (ja) * 2007-09-07 2009-03-26 Fujitsu Ltd 補間方法、情報処理装置
CN100524462C (zh) 2007-09-15 2009-08-05 华为技术有限公司 对高带信号进行帧错误隐藏的方法及装置
US8069051B2 (en) * 2007-09-25 2011-11-29 Apple Inc. Zero-gap playback using predictive mixing
US8126578B2 (en) * 2007-09-26 2012-02-28 University Of Washington Clipped-waveform repair in acoustic signals using generalized linear prediction
US20100324911A1 (en) * 2008-04-07 2010-12-23 Broadcom Corporation Cvsd decoder state update after packet loss
US8340977B2 (en) * 2008-05-08 2012-12-25 Broadcom Corporation Compensation technique for audio decoder state divergence
KR20090122143A (ko) * 2008-05-23 2009-11-26 엘지전자 주식회사 오디오 신호 처리 방법 및 장치
CN101616059B (zh) * 2008-06-27 2011-09-14 华为技术有限公司 一种丢包隐藏的方法和装置
EP2144229A1 (en) * 2008-07-11 2010-01-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Efficient use of phase information in audio encoding and decoding
EP2182513B1 (en) * 2008-11-04 2013-03-20 Lg Electronics Inc. An apparatus for processing an audio signal and method thereof
US8214201B2 (en) * 2008-11-19 2012-07-03 Cambridge Silicon Radio Limited Pitch range refinement
JP2010164859A (ja) * 2009-01-16 2010-07-29 Sony Corp オーディオ再生装置、情報再生システム、オーディオ再生方法、およびプログラム
FI20095273A0 (fi) * 2009-03-17 2009-03-17 On2 Technologies Finland Oy Digitaalinen videokoodaus
US8676573B2 (en) * 2009-03-30 2014-03-18 Cambridge Silicon Radio Limited Error concealment
US20100260273A1 (en) * 2009-04-13 2010-10-14 Dsp Group Limited Method and apparatus for smooth convergence during audio discontinuous transmission
US8185384B2 (en) * 2009-04-21 2012-05-22 Cambridge Silicon Radio Limited Signal pitch period estimation
US8316267B2 (en) 2009-05-01 2012-11-20 Cambridge Silicon Radio Limited Error concealment
JP5785082B2 (ja) * 2009-08-20 2015-09-24 ジーブイビービー ホールディングス エス.エイ.アール.エル. オーディオ・ストリームを合成する装置、方法及びプログラム
EP2302845B1 (en) 2009-09-23 2012-06-20 Google, Inc. Method and device for determining a jitter buffer level
US20110096942A1 (en) * 2009-10-23 2011-04-28 Broadcom Corporation Noise suppression system and method
CN102598123B (zh) * 2009-10-23 2015-07-22 松下电器(美国)知识产权公司 编码装置、解码装置及其方法
GB0920729D0 (en) * 2009-11-26 2010-01-13 Icera Inc Signal fading
WO2011094710A2 (en) * 2010-01-29 2011-08-04 Carol Espy-Wilson Systems and methods for speech extraction
US20110196673A1 (en) * 2010-02-11 2011-08-11 Qualcomm Incorporated Concealing lost packets in a sub-band coding decoder
US8321216B2 (en) * 2010-02-23 2012-11-27 Broadcom Corporation Time-warping of audio signals for packet loss concealment avoiding audible artifacts
WO2011110594A1 (en) 2010-03-10 2011-09-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio signal decoder, audio signal encoder, method for decoding an audio signal, method for encoding an audio signal and computer program using a pitch-dependent adaptation of a coding context
US20110255698A1 (en) * 2010-04-19 2011-10-20 Hubert Young Programmable noise gate for audio amplifier employing a combination of low-noise and noise-rejecting analog and digital signal processing
KR101773631B1 (ko) * 2010-06-09 2017-08-31 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 대역 확장 방법, 대역 확장 장치, 프로그램, 집적 회로 및 오디오 복호 장치
FR2961938B1 (fr) * 2010-06-25 2013-03-01 Inst Nat Rech Inf Automat Synthetiseur numerique audio ameliore
FR2961937A1 (fr) * 2010-06-29 2011-12-30 France Telecom Codage/decodage predictif lineaire adaptatif
EP2405661B1 (en) 2010-07-06 2017-03-22 Google, Inc. Loss-robust video transmission using two decoders
US8762158B2 (en) * 2010-08-06 2014-06-24 Samsung Electronics Co., Ltd. Decoding method and decoding apparatus therefor
KR101423111B1 (ko) * 2010-08-10 2014-07-30 창원대학교 산학협력단 밴드 패스 샘플링 수신기
US8630412B2 (en) 2010-08-25 2014-01-14 Motorola Mobility Llc Transport of partially encrypted media
US8477050B1 (en) 2010-09-16 2013-07-02 Google Inc. Apparatus and method for encoding using signal fragments for redundant transmission of data
EP3975177B1 (en) 2010-09-16 2022-12-14 Dolby International AB Cross product enhanced subband block based harmonic transposition
US8868432B2 (en) * 2010-10-15 2014-10-21 Motorola Mobility Llc Audio signal bandwidth extension in CELP-based speech coder
US9263049B2 (en) * 2010-10-25 2016-02-16 Polycom, Inc. Artifact reduction in packet loss concealment
US8924204B2 (en) 2010-11-12 2014-12-30 Broadcom Corporation Method and apparatus for wind noise detection and suppression using multiple microphones
EP2458585B1 (en) * 2010-11-29 2013-07-17 Nxp B.V. Error concealment for sub-band coded audio signals
US9137051B2 (en) * 2010-12-17 2015-09-15 Alcatel Lucent Method and apparatus for reducing rendering latency for audio streaming applications using internet protocol communications networks
US20120195573A1 (en) * 2011-01-28 2012-08-02 Apple Inc. Video Defect Replacement
US9196305B2 (en) 2011-01-28 2015-11-24 Apple Inc. Smart transitions
CN102783034B (zh) * 2011-02-01 2014-12-17 华为技术有限公司 用于提供信号处理系数的方法和设备
US8838680B1 (en) 2011-02-08 2014-09-16 Google Inc. Buffer objects for web-based configurable pipeline media processing
JP5849106B2 (ja) * 2011-02-14 2016-01-27 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 低遅延の統合されたスピーチ及びオーディオ符号化におけるエラー隠しのための装置及び方法
PL3239978T3 (pl) 2011-02-14 2019-07-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Kodowanie i dekodowanie pozycji impulsów ścieżek sygnału audio
CA2827249C (en) 2011-02-14 2016-08-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for processing a decoded audio signal in a spectral domain
JP5625126B2 (ja) 2011-02-14 2014-11-12 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン スペクトル領域ノイズ整形を使用する線形予測ベースコーディングスキーム
KR101525185B1 (ko) 2011-02-14 2015-06-02 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 트랜지언트 검출 및 품질 결과를 사용하여 일부분의 오디오 신호를 코딩하기 위한 장치 및 방법
BR112012029132B1 (pt) 2011-02-14 2021-10-05 Fraunhofer - Gesellschaft Zur Förderung Der Angewandten Forschung E.V Representação de sinal de informações utilizando transformada sobreposta
KR20130108457A (ko) 2011-03-09 2013-10-02 닛본 덴끼 가부시끼가이샤 영상 부호화 장치, 영상 복호 장치, 영상 부호화 방법 및 영상 복호 방법
FR2973552A1 (fr) * 2011-03-29 2012-10-05 France Telecom Traitement dans le domaine code d'un signal audio code par codage micda
US9881625B2 (en) 2011-04-20 2018-01-30 Panasonic Intellectual Property Corporation Of America Device and method for execution of huffman coding
CN103688306B (zh) * 2011-05-16 2017-05-17 谷歌公司 对被编码为连续帧序列的音频信号进行解码的方法和装置
RU2464649C1 (ru) * 2011-06-01 2012-10-20 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ обработки звукового сигнала
CN102446509B (zh) * 2011-11-22 2014-04-09 中兴通讯股份有限公司 增强抗丢包的音频编解码方法及系统
US9014265B1 (en) 2011-12-29 2015-04-21 Google Inc. Video coding using edge detection and block partitioning for intra prediction
US20130191120A1 (en) * 2012-01-24 2013-07-25 Broadcom Corporation Constrained soft decision packet loss concealment
US9824695B2 (en) * 2012-06-18 2017-11-21 International Business Machines Corporation Enhancing comprehension in voice communications
CN102833037B (zh) * 2012-07-18 2015-04-29 华为技术有限公司 一种语音数据丢包的补偿方法及装置
US9123328B2 (en) * 2012-09-26 2015-09-01 Google Technology Holdings LLC Apparatus and method for audio frame loss recovery
US9325544B2 (en) * 2012-10-31 2016-04-26 Csr Technology Inc. Packet-loss concealment for a degraded frame using replacement data from a non-degraded frame
CN103886863A (zh) 2012-12-20 2014-06-25 杜比实验室特许公司 音频处理设备及音频处理方法
ES2688021T3 (es) * 2012-12-21 2018-10-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Adición de ruido de confort para modelar ruido de fondo a bajas tasas de bits
CN105551497B (zh) 2013-01-15 2019-03-19 华为技术有限公司 编码方法、解码方法、编码装置和解码装置
KR102238376B1 (ko) 2013-02-05 2021-04-08 텔레폰악티에볼라겟엘엠에릭슨(펍) 오디오 프레임 손실 은폐를 제어하기 위한 방법 및 장치
US9842598B2 (en) * 2013-02-21 2017-12-12 Qualcomm Incorporated Systems and methods for mitigating potential frame instability
US9210424B1 (en) 2013-02-28 2015-12-08 Google Inc. Adaptive prediction block size in video coding
US9437203B2 (en) * 2013-03-07 2016-09-06 QoSound, Inc. Error concealment for speech decoder
FR3004876A1 (fr) * 2013-04-18 2014-10-24 France Telecom Correction de perte de trame par injection de bruit pondere.
JP6305694B2 (ja) * 2013-05-31 2018-04-04 クラリオン株式会社 信号処理装置及び信号処理方法
SG11201510463WA (en) * 2013-06-21 2016-01-28 Fraunhofer Ges Forschung Apparatus and method for improved concealment of the adaptive codebook in acelp-like concealment employing improved pitch lag estimation
EP3011561B1 (en) * 2013-06-21 2017-05-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for improved signal fade out in different domains during error concealment
KR101757338B1 (ko) 2013-06-21 2017-07-26 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에.베. 오디오 신호의 대체 프레임에 대한 스펙트럼 계수들을 획득하기 위한 방법과 장치, 오디오 디코더, 오디오 수신기 및 오디오 신호들의 전송을 위한 시스템
PL3011555T3 (pl) * 2013-06-21 2018-09-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Rekonstrukcja ramki sygnału mowy
US9313493B1 (en) 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation
CN107818789B (zh) 2013-07-16 2020-11-17 华为技术有限公司 解码方法和解码装置
CN108364657B (zh) * 2013-07-16 2020-10-30 超清编解码有限公司 处理丢失帧的方法和解码器
JP6303340B2 (ja) * 2013-08-30 2018-04-04 富士通株式会社 音声処理装置、音声処理方法及び音声処理用コンピュータプログラム
PT3288026T (pt) 2013-10-31 2020-07-20 Fraunhofer Ges Forschung Descodificador áudio e método para fornecer uma informação de áudio descodificada utilizando uma ocultação de erro baseada num sinal de excitação no domínio de tempo
KR101854296B1 (ko) 2013-10-31 2018-05-03 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 시간 도메인 여기 신호를 변형하는 오류 은닉을 사용하여 디코딩된 오디오 정보를 제공하기 위한 오디오 디코더 및 방법
US9437211B1 (en) * 2013-11-18 2016-09-06 QoSound, Inc. Adaptive delay for enhanced speech processing
CN104751851B (zh) * 2013-12-30 2018-04-27 联芯科技有限公司 一种基于前后向联合估计的丢帧差错隐藏方法及系统
EP2922056A1 (en) 2014-03-19 2015-09-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus, method and corresponding computer program for generating an error concealment signal using power compensation
EP2922054A1 (en) 2014-03-19 2015-09-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus, method and corresponding computer program for generating an error concealment signal using an adaptive noise estimation
EP2922055A1 (en) * 2014-03-19 2015-09-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus, method and corresponding computer program for generating an error concealment signal using individual replacement LPC representations for individual codebook information
US9542955B2 (en) * 2014-03-31 2017-01-10 Qualcomm Incorporated High-band signal coding using multiple sub-bands
NO2780522T3 (ko) 2014-05-15 2018-06-09
PL3367380T3 (pl) * 2014-06-13 2020-06-29 Telefonaktiebolaget Lm Ericsson (Publ) Obsługa sekwencji błędów ramki
CN105225666B (zh) 2014-06-25 2016-12-28 华为技术有限公司 处理丢失帧的方法和装置
CN112216288A (zh) * 2014-07-28 2021-01-12 三星电子株式会社 用于音频信号的时域数据包丢失隐藏的方法
FR3024582A1 (fr) * 2014-07-29 2016-02-05 Orange Gestion de la perte de trame dans un contexte de transition fd/lpd
GB2532041B (en) * 2014-11-06 2019-05-29 Imagination Tech Ltd Comfort noise generation
EP3023983B1 (en) * 2014-11-21 2017-10-18 AKG Acoustics GmbH Method of packet loss concealment in ADPCM codec and ADPCM decoder with PLC circuit
US11080587B2 (en) 2015-02-06 2021-08-03 Deepmind Technologies Limited Recurrent neural networks for data item generation
US9807416B2 (en) 2015-09-21 2017-10-31 Google Inc. Low-latency two-pass video coding
AU2016376653B2 (en) * 2015-12-21 2020-07-30 Janssen Pharmaceutica Nv Crystallization procedure for obtaining canagliflozin hemihydrate crystals
WO2017129270A1 (en) * 2016-01-29 2017-08-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for improving a transition from a concealed audio signal portion to a succeeding audio signal portion of an audio signal
WO2017129665A1 (en) * 2016-01-29 2017-08-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for improving a transition from a concealed audio signal portion to a succeeding audio signal portion of an audio signal
MX2018012490A (es) 2016-04-12 2019-02-21 Fraunhofer Ges Forschung Codificador de audio para codificar una se?al de audio, metodo para codificar una se?al de audio y programa de computadora en consideracion de una region espectral del pico detectada en una banda de frecuencia superior.
CN108011686B (zh) * 2016-10-31 2020-07-14 腾讯科技(深圳)有限公司 信息编码帧丢失恢复方法和装置
CN116631415A (zh) * 2017-01-10 2023-08-22 弗劳恩霍夫应用研究促进协会 音频解码器、提供解码的音频信号的方法、和计算机程序
US11011160B1 (en) * 2017-01-17 2021-05-18 Open Water Development Llc Computerized system for transforming recorded speech into a derived expression of intent from the recorded speech
US10339947B2 (en) 2017-03-22 2019-07-02 Immersion Networks, Inc. System and method for processing audio data
US10825467B2 (en) * 2017-04-21 2020-11-03 Qualcomm Incorporated Non-harmonic speech detection and bandwidth extension in a multi-source environment
US10037761B1 (en) * 2017-06-05 2018-07-31 Intel IP Corporation Audio decoder state update for packet loss concealment
US11545164B2 (en) * 2017-06-19 2023-01-03 Rtx A/S Audio signal encoding and decoding
CN109308007B (zh) * 2017-07-28 2022-05-17 上海三菱电梯有限公司 自抗扰控制装置及基于自抗扰控制装置的控制方法
US10839814B2 (en) * 2017-10-05 2020-11-17 Qualcomm Incorporated Encoding or decoding of audio signals
CN111883170B (zh) * 2020-04-08 2023-09-08 珠海市杰理科技股份有限公司 语音信号的处理方法及系统、音频处理芯片、电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1288916A2 (en) * 2001-08-17 2003-03-05 Broadcom Corporation Method and system for frame erasure concealment for predictive speech coding based on extrapolation of speech waveform
US20060045138A1 (en) * 2004-08-30 2006-03-02 Black Peter J Method and apparatus for an adaptive de-jitter buffer

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4935963A (en) * 1986-01-24 1990-06-19 Racal Data Communications Inc. Method and apparatus for processing speech signals
SE512719C2 (sv) * 1997-06-10 2000-05-02 Lars Gustaf Liljeryd En metod och anordning för reduktion av dataflöde baserad på harmonisk bandbreddsexpansion
FR2774827B1 (fr) * 1998-02-06 2000-04-14 France Telecom Procede de decodage d'un flux binaire representatif d'un signal audio
US6351730B2 (en) * 1998-03-30 2002-02-26 Lucent Technologies Inc. Low-complexity, low-delay, scalable and embedded speech and audio coding with adaptive frame loss concealment
US6549587B1 (en) * 1999-09-20 2003-04-15 Broadcom Corporation Voice and data exchange over a packet based network with timing recovery
US7047190B1 (en) * 1999-04-19 2006-05-16 At&Tcorp. Method and apparatus for performing packet loss or frame erasure concealment
KR100633720B1 (ko) * 1999-04-19 2006-10-16 에이티 앤드 티 코포레이션 패킷 손실 또는 프레임 삭제 은폐를 수행하는 방법 및 장치
JP4505899B2 (ja) 1999-10-26 2010-07-21 ソニー株式会社 再生速度変換装置及び方法
US7177278B2 (en) 1999-12-09 2007-02-13 Broadcom Corporation Late frame recovery method
EP1199709A1 (en) * 2000-10-20 2002-04-24 Telefonaktiebolaget Lm Ericsson Error Concealment in relation to decoding of encoded acoustic signals
US7031926B2 (en) * 2000-10-23 2006-04-18 Nokia Corporation Spectral parameter substitution for the frame error concealment in a speech decoder
WO2002043312A2 (en) * 2000-11-21 2002-05-30 Koninklijke Philips Electronics N.V. A communication system having bad frame indicator means for resynchronization purposes
EP1235203B1 (en) 2001-02-27 2009-08-12 Texas Instruments Incorporated Method for concealing erased speech frames and decoder therefor
KR100494555B1 (ko) * 2001-12-19 2005-06-10 한국전자통신연구원 광대역 음성신호의 전송방법 및 그 장치
US7047187B2 (en) * 2002-02-27 2006-05-16 Matsushita Electric Industrial Co., Ltd. Method and apparatus for audio error concealment using data hiding
JP4215448B2 (ja) 2002-04-19 2009-01-28 日本電気株式会社 音声復号装置及び音声復号方法
CA2388439A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for efficient frame erasure concealment in linear predictive based speech codecs
US7266480B2 (en) 2002-10-01 2007-09-04 The Regents Of The University Of California Rapid scattering simulation of objects in imaging using edge domain decomposition
CA2415105A1 (en) * 2002-12-24 2004-06-24 Voiceage Corporation A method and device for robust predictive vector quantization of linear prediction parameters in variable bit rate speech coding
JP4380174B2 (ja) 2003-02-27 2009-12-09 沖電気工業株式会社 帯域補正装置
US6987591B2 (en) * 2003-07-17 2006-01-17 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communications Research Centre Canada Volume hologram
US7619995B1 (en) * 2003-07-18 2009-11-17 Nortel Networks Limited Transcoders and mixers for voice-over-IP conferencing
CA2457988A1 (en) * 2004-02-18 2005-08-18 Voiceage Corporation Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization
EP1746581B1 (en) * 2004-05-11 2010-02-24 Nippon Telegraph and Telephone Corporation Sound packet transmitting method, sound packet transmitting apparatus, sound packet transmitting program, and recording medium in which that program has been recorded
SG124307A1 (en) 2005-01-20 2006-08-30 St Microelectronics Asia Method and system for lost packet concealment in high quality audio streaming applications
US20070147518A1 (en) * 2005-02-18 2007-06-28 Bruno Bessette Methods and devices for low-frequency emphasis during audio compression based on ACELP/TCX
MX2007012187A (es) * 2005-04-01 2007-12-11 Qualcomm Inc Sistemas, metodos y aparatos para deformacion en tiempo de banda alta.
US7707034B2 (en) * 2005-05-31 2010-04-27 Microsoft Corporation Audio codec post-filter
US7177804B2 (en) * 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding
JP2007058581A (ja) * 2005-08-24 2007-03-08 Fujitsu Ltd 電子機器
US20070174047A1 (en) 2005-10-18 2007-07-26 Anderson Kyle D Method and apparatus for resynchronizing packetized audio streams
KR20080070831A (ko) * 2005-11-30 2008-07-31 마츠시타 덴끼 산교 가부시키가이샤 서브밴드 부호화 장치 및 서브밴드 부호화 방법
EP2005424A2 (fr) * 2006-03-20 2008-12-24 France Télécom Procede de post-traitement d'un signal dans un decodeur audio
US8255213B2 (en) * 2006-07-12 2012-08-28 Panasonic Corporation Speech decoding apparatus, speech encoding apparatus, and lost frame concealment method
US8532984B2 (en) * 2006-07-31 2013-09-10 Qualcomm Incorporated Systems, methods, and apparatus for wideband encoding and decoding of active frames
US8135047B2 (en) * 2006-07-31 2012-03-13 Qualcomm Incorporated Systems and methods for including an identifier with a packet associated with a speech signal
US8010350B2 (en) * 2006-08-03 2011-08-30 Broadcom Corporation Decimated bisectional pitch refinement
US8005678B2 (en) 2006-08-15 2011-08-23 Broadcom Corporation Re-phasing of decoder states after packet loss
US7796626B2 (en) * 2006-09-26 2010-09-14 Nokia Corporation Supporting a decoding of frames
FR2912249A1 (fr) * 2007-02-02 2008-08-08 France Telecom Codage/decodage perfectionnes de signaux audionumeriques.

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1288916A2 (en) * 2001-08-17 2003-03-05 Broadcom Corporation Method and system for frame erasure concealment for predictive speech coding based on extrapolation of speech waveform
US20060045138A1 (en) * 2004-08-30 2006-03-02 Black Peter J Method and apparatus for an adaptive de-jitter buffer

Also Published As

Publication number Publication date
KR20090039661A (ko) 2009-04-22
WO2008022176A2 (en) 2008-02-21
US8005678B2 (en) 2011-08-23
US8195465B2 (en) 2012-06-05
WO2008022200A2 (en) 2008-02-21
US20080046236A1 (en) 2008-02-21
US20080046248A1 (en) 2008-02-21
KR101046982B1 (ko) 2011-07-07
WO2008022181A2 (en) 2008-02-21
KR20090039662A (ko) 2009-04-22
US20080046237A1 (en) 2008-02-21
US8000960B2 (en) 2011-08-16
EP2054877B1 (en) 2011-10-26
WO2008022184A2 (en) 2008-02-21
US20090240492A1 (en) 2009-09-24
HK1129153A1 (en) 2009-11-20
KR101041892B1 (ko) 2011-06-16
HK1129488A1 (en) 2009-11-27
KR20090039660A (ko) 2009-04-22
DE602007004502D1 (de) 2010-03-11
HK1129487A1 (en) 2009-11-27
DE602007014059D1 (de) 2011-06-01
KR20090039663A (ko) 2009-04-22
EP2054879A2 (en) 2009-05-06
WO2008022207A2 (en) 2008-02-21
US20090232228A1 (en) 2009-09-17
EP2054880B1 (en) 2011-04-20
US20080046249A1 (en) 2008-02-21
EP2054878B1 (en) 2012-03-28
US20110320213A1 (en) 2011-12-29
WO2008022184A3 (en) 2008-06-05
US8078458B2 (en) 2011-12-13
US8024192B2 (en) 2011-09-20
KR20090039659A (ko) 2009-04-22
EP2054880A2 (en) 2009-05-06
HK1129764A1 (en) 2009-12-04
KR101040160B1 (ko) 2011-06-09
EP2054879B1 (en) 2010-01-20
WO2008022207A3 (en) 2008-04-24
WO2008022200A3 (en) 2008-06-19
US8214206B2 (en) 2012-07-03
HK1129154A1 (en) 2009-11-20
US20120010882A1 (en) 2012-01-12
WO2008022181A3 (en) 2008-05-08
EP2054877A2 (en) 2009-05-06
EP2054878A2 (en) 2009-05-06
US8041562B2 (en) 2011-10-18
KR101041895B1 (ko) 2011-06-16
US20080046233A1 (en) 2008-02-21
EP2054876A2 (en) 2009-05-06
WO2008022176A3 (en) 2008-05-08
US20080046252A1 (en) 2008-02-21
EP2054876B1 (en) 2011-10-26

Similar Documents

Publication Publication Date Title
KR101008508B1 (ko) 패킷 손실 후의 디코더 상태의 리페이징
US7536305B2 (en) Mixed lossless audio compression
US7424434B2 (en) Unified lossy and lossless audio compression
EP1887563B1 (en) Packet loss concealment for a sub-band predictive coder based on extrapolation of exitation waveform

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150108

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160106

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee