KR20080009205A - 멀티스테이지 코드북 및 리던던트 코딩에 의한 부대역 음성코덱 - Google Patents

멀티스테이지 코드북 및 리던던트 코딩에 의한 부대역 음성코덱 Download PDF

Info

Publication number
KR20080009205A
KR20080009205A KR1020077026294A KR20077026294A KR20080009205A KR 20080009205 A KR20080009205 A KR 20080009205A KR 1020077026294 A KR1020077026294 A KR 1020077026294A KR 20077026294 A KR20077026294 A KR 20077026294A KR 20080009205 A KR20080009205 A KR 20080009205A
Authority
KR
South Korea
Prior art keywords
information
coded
codebook
frame
redundant
Prior art date
Application number
KR1020077026294A
Other languages
English (en)
Other versions
KR101238583B1 (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 KR20080009205A publication Critical patent/KR20080009205A/ko
Application granted granted Critical
Publication of KR101238583B1 publication Critical patent/KR101238583B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • 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/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/09Long term prediction, i.e. removing periodical redundancies, e.g. by using adaptive codebook or pitch predictor
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0004Design or structure of the codebook
    • G10L2019/0005Multi-stage vector quantisation

Abstract

오디오 정보의 코딩 및 디코딩에 관한 기법들 및 수단들이 기술되어 있다. 예를 들면, 현 프레임을 디코딩하기 위한 리던던트 코딩된 정보는 이전 프레임의 일부분과만 관련된 신호 이력 정보를 포함한다. 다른 예로서, 코딩된 유닛을 디코딩하기 위한 리던던트 코딩된 정보는 이전 코딩된 유닛이 이용 불가능한 경우에만 현 코딩된 유닛을 디코딩하는 데 이용될 코드북 스테이지에 대한 파라미터들을 포함한다. 또 다른 예로서, 코딩된 오디오 유닛들 각각은 그 코딩된 유닛이 오디오 신호의 세그먼트를 나타내는 메인 인코딩된 정보를 포함하는지, 및 그 코딩된 유닛이 메인 인코딩된 정보를 디코딩하는 데 사용하기 위한 리던던트 코딩된 정보를 포함한다.
오디오 코덱, 부대역 코딩, 코드북, 리던던트 코딩

Description

멀티스테이지 코드북 및 리던던트 코딩에 의한 부대역 음성 코덱{SUB-BAND VOICE CODEC WITH MULTI-STAGE CODEBOOKS AND REDUNDANT CODING}
설명된 수단들(tools) 및 기법들(techinques)은 오디오 코덱에 관한 것으로, 특히 부대역 코딩, 코드북, 및/또는 리던던트 코딩에 관한 것이다.
디지털 무선 전화 네트워크의 출현으로, 인터넷을 통한 스트리밍 오디오, 및 인터넷 전화, 음성(speech)의 디지털 처리 및 전달이 흔한 일이 되었다. 기술자들은 음성을 효율적으로 처리함과 동시에 품질도 유지하기 위해 각종의 기법들을 이용한다. 이들 기법들을 이해하기 위하여, 오디오 정보가 컴퓨터에서 어떻게 표현되고 처리되는지를 이해하는 것이 도움이 된다.
Ⅰ. 컴퓨터에서의 오디오 정보의 표현
컴퓨터는 오디오 정보를 오디오를 표현하는 일련의 수(a series of numbers)로서 처리한다. 단 하나의 수는 특정 시간에서의 진폭 값인 오디오 샘플을 표현할 수 있다. 샘플 심도(sample depth) 및 샘플링 레이트(sampling rate)를 포함하는 몇몇 인자(factor)들이 오디오의 품질에 영향을 미친다.
샘플 심도(또는 정도(precision))는 샘플을 표현하기 위해 사용되는 수들의 범위를 나타낸다. 각 샘플에 대한 보다 많은 가능한 값들은 전형적으로 보다 높은 품질을 산출하는데, 이는 진폭에서의 보다 많은 미묘한 변화들이 표현될 수 있기 때문이다. 8비트 샘플은 265개의 가능한 값들을 갖는 반면, 16비트는 65,536개의 가능한 값들을 갖는다.
샘플링 레이트(통상적으로 초당 샘플의 수로서 측정됨)도 품질에 영향을 미친다. 샘플링 레이트가 높을수록, 품질이 더 높은데, 이는 보다 많은 주파수의 음이 표현될 수 있기 때문이다. 몇몇 일반적인 샘플링 레이트는 8,000, 11,025, 22,050, 32,000, 44,100, 48,000, 및 96,000 샘플/초(Hz)이다. 표 1은 대응하는 원시 비트 레이트(raw bit rate) 비용과 함께, 상이한 품질 레벨을 갖는 몇몇 오디오의 포맷들을 보여준다.
상이한 품질 오디오에 대한 비트 레이트
샘플 심도 (비트/샘플) 샘플링 레이트 (샘플/초) 채널 모드 원시 비트 레이트 (비트/초)
8 8,000 모노 64,000
8 11,025 모노 88,200
16 44,100 스테레오 1,411,200
표 1이 보여주는 바와 같이, 고품질 오디오의 비용은 높은 비트 레이트이다. 고품질 오디오 정보는 대량의 컴퓨터 저장 및 전송 용량을 소비한다. 많은 컴퓨터 및 컴퓨터 네트워크는 원시 디지털 오디오를 처리하기 위한 자원들이 부족하다. 압축compression)(인코딩 또는 코딩으로도 불림)은 정보를 보다 낮은 비트 레이트 형태로 변환함으로써 오디오 정보를 저장 및 전송하는 비용을 감소시킨다. 압축(은 무손실(lossless)(품질이 손해를 겪지 않음) 또는 손실(lossy)(품질은 손해를 겪지만 후속하는 무손실 압축으로부터의 비트 레이트 감소는 보다 극적임)일 수 있다. 압축해제(decompression)(디코딩으로도 불림)는 압축된 정보로부터 원(original) 정보의 재구성된 버전을 추출한다. 코덱(codec)은 인코더/디코더 시스템이다.
Ⅱ. 음성 인코더 및 디코더
오디오 압축의 하나의 목적은 주어진 비트 양에 대하여 최대 신호 품질을 제공하도록 오디오 신호를 디지털로 표현하는 것이다. 달리 말하면, 이 목적은 주어진 품질 레벨에 대하여 최소 비트로 오디오 신호를 표현하는 것이다. 전송 오류에 대한 탄력성(resiliency) 및 인코딩/전송/디코딩으로 인한 전체 지연의 제한과 같은 다른 목적들이 일부 시나리오에서 적용된다.
상이한 종류의 오디오 신호들은 상이한 특성들을 갖고 있다. 음악(music)은 큰 범위의 주파수 및 진폭을 특징으로 하고, 종종 2 이상의 채널을 포함한다. 한편, 음성(speech)은 보다 작은 범위의 주파수 및 진폭을 특징으로 하고, 통상적으로 단일 채널로 표현된다. 어떤 코덱 및 처리 기법들은 음악 및 일반 오디오에 적합하고, 다른 코덱 및 처리 기법들은 음성에 적합하다.
종래의 음성 코덱의 한 유형은 선형 예측(linear prediction)을 이용하여 압축을 달성한다. 음성 인코딩은 몇 개의 스테이지들을 포함한다. 인코더는 선형 예측 필터에 대한 계수들을 찾아내어 양자화하고, 선형 예측 필터는 샘플 값들을 이전 샘플 값들의 선형 조합들로서 예측하는 데 이용된다. ("여기(excitation)" 신호로서 표현되는) 잔여 신호(residual signal)는 필터링에 의해 정확하게 예측되지 않은 원 신호의 부분들을 나타낸다. 일부 스테이지들에서, 음성 코덱은 유성음 세그먼트(voiced segments)(보컬 코드 바이브레이션(vocal chord vibration)을 특징으로 함), 무성음 세그먼트(unvoiced segments), 및 묵음 세그먼트(silent segments)에 대하여 상이한 압축 기법들을 이용하는데, 이는 상이한 종류의 음성은 상이한 특성들을 갖기 때문이다. 유성음 세그먼트는 전형적으로 고도로 반복하는 보이싱 패턴(voicing patterns)을 나타내고, 심지어 잔여 영역(residual domain)에서도 나타낸다. 유성음 세그먼트에 대하여, 인코더는 현재의 잔여 신호를 이전 잔여 사이클들과 비교하고 이전 사이클들에 대한 지연(delay) 또는 지체(lag) 정보에 의하여 현재의 잔여 신호를 인코딩함으로써 추가 압축을 달성한다. 인코더는 특별하게 설계된 코드북을 이용하여 원 신호와 예측된 인코딩된 표현 간의 다른 불일치들(discrepancies)을 처리한다.
많은 음성 코덱들이 어떤 방법으로든 신호 내의 시간적 중복성(temporal redundancy)을 이용한다. 상술한 바와 같이, 하나의 일반적인 방법은 피치 파라미터들의 장기적인 예측을 이용하여 이전 여기 사이클들에 대한 지연 또는 지체에 의하여 현재의 여기 신호를 예측한다. 시간적 중복성을 이용하는 것으로 품질 및 비트 레이트의 점에서 압축 효율을 크게 향상시킬 수 있지만, 코덱에 메모리 의존성을 도입하는 희생이 따른다 - 디코더는 신호의 한 부분을 정확히 인코딩하기 위해 그 신호의 이전에 디코딩된 다른 부분에 의지한다. 많은 효율적인 음성 코덱들이 상당한 메모리 의존성을 갖고 있다.
상술한 음성 코덱들은 다수의 응용에 대하여 양호한 전체 성능을 갖고 있지만, 몇 가지 결점이 있다. 특히, 몇몇 결점들은 음성 코덱이 동적인 네트워크 자원들과 관련하여 사용될 때 표면화한다. 그러한 시나리오에서는, 일시적인 대역폭 부족 또는 다른 문제점들 때문에 인코딩된 음성이 손실될 수도 있다.
A. 협대역 및 광대역 코덱
많은 표준 음성 코덱들은 8 kHz 샘플링 레이트를 갖는 협대역 신호용으로 설계되었다. 8 kHz 샘플링 레이트는 여러 상황에서 적절하지만, 보다 높은 주파수를 표현하는 경우와 같은 다른 상황들에서는 보다 높은 샘플링 레이트가 바람직할 수 있다.
적어도 16 kHz 샘플링 레이트를 갖는 음성 신호들은 전형적으로 광대역 음성이라 불린다. 이들 광대역 코덱들은 고주파수 음성 패턴들을 표현하기 위해 바람직하지만, 이들은 전형적으로 협대역 코덱들보다 보다 높은 비트 레이트를 필요로 한다. 그러한 보다 높은 비트 레이트들은 일부 네트워크 유형에서 또는 일부 네트워크 상황에서는 실행이 가능하지 않을 수 있다.
B. 동적인 네트워크 상황에서의 비효율적인 메모리 의존성
인코딩된 음성이, 이동중에 또는 어떤 다른 곳에서 손실되거나, 지연되거나, 훼손되거나 또는 다른 방법으로 사용할 수 없게 되어, 실종되었을 때, 음성 코덱의 성능은 손실된 정보에 대한 메모리 의존성으로 인해 손해를 겪을 수 있다. 여기 신호(excitation signal)에 대한 정보의 손실은 손실된 신호에 의존하는 나중의 재구성을 방해한다. 만일 이전의 사이클들이 손실되면, 지체 정보(lag information)가 유용하지 않을 수 있는데, 지체 정보는 디코더가 갖고 있지 않은 정보를 가리키기 때문이다. 메모리 의존성의 다른 예는 필터 계수 보간(특히 유성음 신호용의, 상이한 합성 필터들 간의 전이를 매끄럽게 하기 위해 이용됨)이다. 만일 한 프레임에 대한 필터 계수가 손실되면, 후속 프레임들에 대한 필터 계수들은 부정확한 값들을 가질 수 있다.
디코더들은 패킷 손실 및 기타 정보 손실로 인한 오류를 은폐하기 위해 각종 기법들을 이용하지만, 이들 은폐 기법들은 좀처럼 오류들을 충분히 은폐하지 못한다. 예를 들면, 디코더는 이전의 파라미터들을 반복하거나 정확하게 디코딩된 정보에 기초하여 파라미터들을 추정한다. 그러나, 지체 정보는 매우 민감할 수 있고, 종래의 기법들은 은폐에 특히 효과적이지 않다.
대부분의 경우에, 디코더들은 결국 손실 정보로 인한 오류들로부터 복구된다. 패킷들이 수신되어 디코딩될 때, 파라미터들은 점차 그들의 정확한 값들로 향하여 조정된다. 그러나, 디코더가 정확한 내부 상태를 복구할 수 있을 때까지 품질이 열화될 가능성이 많다. 대부분의 효율적인 음성 코덱들 중 다수에서, 연장된 시간 동안(예컨대, 1초까지) 재생 품질이 열화되어, 고도의 일그러짐(high distortion)을 초래하고 종종 음성을 이해하기 어렵게 만든다. 복구 시간은 묵음 프레임과 같은 상당한 변화가 일어날 경우 더 빠른데, 이것은 다수의 파라미터들에 대한 자연적인 리셋 포인트를 제공하기 때문이다. 일부 코덱들은 프레임간 의존성(inter-frame dependencies)을 제거하기 때문에 패킷 손실에 대해 더욱 강건(robust)하다. 그러나, 그러한 코덱들은 프레임간 의존성을 갖는 전통적인 CELP 코덱과 동일한 음성 품질을 달성하기 위해 상당히 높은 비트 레이트를 필요로 한다.
컴퓨터 시스템에서 음성 신호를 표현하는 것에 대한 압축 및 압축해제의 중요성이 주어진 상황에서, 음성의 압축 및 압축해제가 연구 및 효준화 활동을 유인하였다는 것은 놀라운 일이 아니다. 그러나, 종래의 기법들 및 수단들의 이점들이 무엇이든 간에, 그것들은 여기에서 설명되는 기법들 및 수단들의 이점들을 갖고 있지 않다.
개요
간단히 말해서, 상세한 설명은 오디오 코덱에 대한 다양한 기법들 및 수단들에 관한 것으로 특히 부대역 코딩, 오디오 코덱 코드북, 및/또는 리던던트 코딩에 관한 것이다. 설명된 실시예들은 설명된 기법들 및 수단들 중 하나 이상을 구현하고, 설명된 기법들 및 수단들은 다음의 것들을 포함하지만 이들에 제한되지는 않는다:
일 양태에서는, 오디오 신호용의 비트 스트림이 현 프레임을 디코딩하는 데 이용되는 이전 프레임의 세그먼트를 참조하는 현 프레임에 대한 메인 코딩된 정보(main coded information)와, 상기 현 프레임을 디코딩하기 위한 리던던트 코딩된 정보(redundant coded information)을 포함한다. 상기 리던던트 코딩된 정보는 상기 참조되는 이전 프레임의 세그먼트와 관련된 신호 이력 정보(signal history information)를 포함한다.
다른 양태에서는, 오디오 신호용의 비트 스트림이 현 프레임을 디코딩하는 데 이용되는 이전 코딩된 유닛의 세그먼트를 참조하는 현 코딩된 유닛에 대한 메인 코딩된 정보와, 상기 현 코딩된 유닛을 디코딩하기 위한 리던던트 코딩된 정보을 포함한다. 상기 리던던트 코딩된 정보는 상기 이전 코딩된 유닛이 이용 불가능한 경우에만 상기 현 코딩된 유닛을 디코딩하는 데 이용되는 하나 이상의 여분의 코드북 스테이지들(extra codebook stages)에 대한 하나 이상의 파라미터들을 포함한다.
또 다른 양태에서는, 비트 스트림이 복수의 코딩된 오디오 유닛들을 포함하고, 각 코딩된 유닛은 필드를 포함한다. 상기 필드는 상기 코딩된 유닛이 오디오 신호의 세그먼트를 나타내는 메인 인코딩된 정보를 포함하는지, 및 상기 코딩된 유닛이 메인 인코딩된 정보를 디코딩하는 데 이용하기 위한 리던던트 코딩된 정보를 포함하는지를 지시한다.
또 다른 양태에서는, 오디오 신호가 복수의 주파수 부대역(sub-bands)으로 분해된다. 각 부대역은 코드 여기 선형 예측 모델(code-excited linear prediction model)에 따라서 인코딩된다. 비트 스트림은 각각이 오디오 신호의 세그먼트를 나타내는 복수의 코딩된 유닛들을 포함할 수 있고, 상기 복수의 코딩된 유닛들은 제1 개수의 주파수 부대역을 나타내는 제1 코딩된 유닛 및 제2 개수의 주파수 부대역을 나타내는 제2 코딩된 유닛을 포함하고, 상기 제1 코딩된 유닛 또는 상기 제2 코딩된 유닛에 대한 부대역 정보의 누락(dropping)으로 인해 상기 제2 개수의 부대역은 상기 제1 개수의 부대역과 상이하다. 제1 부대역은 제1 인코딩 모드에 따라서 인코딩될 수 있고, 제2 부대역은 상이한 제2 인코딩 모드에 따라서 인코딩될 수 있다. 제1 및 제2 인코딩 모드들은 상이한 개수의 코드북 스테이지들을 이용할 수 있다. 각 부대역은 개별적으로 인코딩될 수 있다. 또한, 실시간 음성 인코더가, 오디오 신호를 복수의 주파수 부대역으로 분해하고 복수의 주파수 부대역을 인코딩하는 것을 포함하여, 비트 스트림을 처리할 수 있다. 비트 스트림을 처리하는 것은 복수의 주파수 부대역을 디코딩하고 복수의 주파수 부대역을 합성하는 것을 포함할 수 있다.
또 다른 양태에서는, 오디오 신호용의 비트 스트림이 상기 오디오 신호의 제1 세그먼트를 나타내기 위한 제1 코드북 스테이지 그룹에 대한 파라미터들을 포함하고, 상기 제1 코드북 스테이지 그룹은 제1 세트의 복수의 고정 코드북 스테이지들을 포함한다. 제1 세트의 복수의 고정 코드북 스테이지들은 복수의 임의 고정 코드북 스테이지들(random fixed codebook stages)을 포함할 수 있다. 고정 코드북 스테이지들은 펄스 코드북 스테이지 및 임의 코드북 스테이지를 포함할 수 있다. 제1 코드북 스테이지 그룹은 적응 코드북 스테이지(adaptive codebook stage)를 더 포함할 수 있다. 비트 스트림은 오디오 신호의 제2 세그먼트를 나타내는 제2 코드북 스테이지 그룹에 대한 파라미터들을 더 포함할 수 있고, 상기 제2 그룹은 상기 제1 그룹과는 상이한 수의 코드북 스테이지들을 갖는다. 제1 코드북 스테이지 그룹의 수는 오디오 신호의 제1 세그먼트의 하나 이상의 특성을 포함하는 하나 이상의 인자들에 기초하여 선택될 수 있다. 제1 코드북 스테이지 그룹 내의 코드북 스테이지들의 수는 인코더와 디코더 간의 네트워크 전송 상황들을 포함하는 하나 이상의 인자들에 기초하여 선택될 수 있다. 비트 스트림은 복수의 고정 코드북 스테이지들 각각에 대하여 개별 코드북 인덱스 및 개별 이득을 포함할 수 있다. 개별 이득들을 이용하는 것으로 신호 정합(signal matching)을 용이하게 할 수 있고 개별 코드북 인덱스들을 이용하는 것으로 코드북 검색을 단순화할 수 있다.
또 다른 양태에서는, 비트 스트림이, 적응 코드북을 사용하여 파라미터화 가능한 복수의 유닛들 각각에 대하여, 해당 유닛에 대하여 적응 코드북 파라미터들이 이용되는지 여부를 지시하는 필드를 포함한다. 유닛들은 오디오 신호의 복수의 프레임들의 서브-프레임들일 수 있다. 실시간 음성 인코더와 같은 오디오 처리 수단이, 각 유닛에서 적응 코드북 파라미터들을 사용할지를 판정하는 것을 포함하여, 상기 비트 스트림을 처리할 수 있다. 적응 코드북 파라미터들을 사용할지를 판정하는 것은 적응 코드북 이득이 임계값보다 높은 지를 판정하는 것을 포함할 수 있다. 또한, 적응 코드북 파라미터들을 사용할지를 판정하는 것은 프레임의 하나 이상의 특성들을 평가하는 것을 포함할 수 있다. 또한, 적응 코드북 파라미터들을 사용할지를 판정하는 것은 인코더와 디코더 간의 하나 이상의 네트워크 전송 특성들을 평가하는 것을 포함할 수 있다. 상기 필드는 유성음 유닛마다 1비트 플래그이다. 상기 필드는 오디오 신호의 음성 프레임의 서브-프레임마다 1비트 플래그일 수 있고, 상기 필드는 다른 유형의 프레임들에 대해서는 포함되지 않을 수 있다.
다양한 기법들 및 수단들이 공동으로 또는 독립적으로 이용될 수 있다.
추가의 특징들 및 이점들은 첨부 도면들을 참조하여 진행되는 상이한 실시예들에 대한 다음의 상세한 설명으로부터 명백해질 것이다.
도 1은 설명된 실시예들 중 하나 이상이 구현될 수 있는 적합한 컴퓨팅 환경 의 블록도이다.
도 2는 설명된 실시예들 중 하나 이상이 그와 관련하여 구현될 수 있는 네트워크 환경의 블록도이다.
도 3은 부대역 인코딩을 위해 이용될 수 있는 부대역 구조에 대한 주파수 응답들의 세트를 도시하는 그래프이다.
도 4는 설명된 실시예들 중 하나 이상이 그와 관련하여 구현될 수 있는 실시간 음성 대역 인코더의 블록도이다.
도 5는 일 구현에서의 코드북 파라미터들의 결정을 도시하는 흐름도이다.
도 6은 설명된 실시예들 중 하나 이상이 그와 관련하여 구현될 수 있는 실시간 음성 대역 디코더의 블록도이다.
도 7은 현 프레임 및 이전 프레임의 리인코딩된 부분을 포함하는, 여기 신호 이력(excitation signal history)을 도시한 도면이다.
도 8은 일 구현에서의 여분의 임의 코드북 스테이지(extra random codebook stage)에 대한 코드북 파라미터들의 결정을 도시하는 흐름도이다.
도 9A 및 도 9B는 여분의 임의 코드북 스테이지를 이용하는 실시간 음성 대역 디코더의 블록도이다.
도 10은 일부 구현들에서 이용될 수 있는 상이한 리던던트 코딩 기법들에 대한 정보를 포함하는 프레임들에 대한 비트 스트림 포맷들을 도시한 도면이다.
도 11은 일부 구현들에서 이용될 수 있는 리던던트 코딩 정보를 갖는 프레임들을 포함하는 패킷들에 대한 비트 스트림 포맷들을 도시한 도면이다.
상세한 실시예들은 인코딩 및 디코딩 시에 오디오 정보를 처리하는 기법 및 수단에 관한 것이다. 이들 기법에 의하면, 실시간 음성 코덱과 같은, 음성 코덱으로부터 도출된 음성의 품질이 개선된다. 그러한 개선은 다양한 기법들 및 수단들을 개별적으로 또는 조합하여 이용한 결과로 발생될 수 있다.
그러한 기법들 및 수단들은 CELP와 같은 선형 예측 기법을 이용한 부대역의 코딩 및/또는 디코딩을 포함할 수 있다.
이 기법들은 또한 펄스 및/또는 임의 고정 코드북들을 포함하는 고정 코드북들의 복수의 스테이지를 갖는 것을 포함할 수 있다. 코드북 스테이지의 수는 주어진 비트 레이트에 대하여 품질을 최대화하도록 변화될 수 있다. 또한, 원하는 비트 레이트 및 현 프레임 또는 서브-프레임의 특징과 같은 인자들에 따라서, 적응 코드북이 스위치 온 또는 오프될 수 있다.
또한, 프레임들은 현 프레임이 의존하는 이전 프레임의 일부 또는 전부에 대한 리던던트 인코딩된 정보를 포함할 수 있다. 이 정보는 이전 프레임이 손실된 경우, 전체 이전 프레임이 복수 회 송신될 필요 없이, 디코더에 의해 현 프레임을 디코딩하는 데 이용될 수 있다. 그러한 정보는 현 프레임 또는 이전 프레임과 동일한 비트 레이트로, 또는 보다 낮은 비트 레이트로 인코딩될 수 있다. 또한, 그러한 정보는 여기 신호의 원하는 부분의 전체 다시 인코딩한 것이 아니라, 여기 신호의 원하는 부분과 근사한 임의 코드북 정보(random codebook information)를 포함할 수 있다.
다양한 기법들의 동작들이 설명을 목적으로 특정의 순차적인 순서로 기술되어 있지만, 이러한 기술 방식은, 특정 순서화가 요구되지 않는 한, 동작 순서에서의 사소한 재배열을 포함한다는 것을 이해해야 할 것이다. 예를 들면, 순차적으로 기술된 동작들은 일부 경우에 재배열되거나 동시에 수행될 수 있다. 또한, 간결함을 위하여, 흐름도들은 특정 기법들이 다른 기법들과 관련하여 사용될 수 있는 다양한 방법들을 보여주지 않을 수도 있다.
Ⅰ. 컴퓨팅 환경
도 1은 설명된 실시예들 중 하나 이상이 구현될 수 있는 적합한 컴퓨팅 환경(100)의 일반화된 예를 도시한다. 본 발명은 다양한 범용 또는 특수 목적의 컴퓨팅 환경에서 구현될 수 있으므로, 컴퓨팅 환경(100)은 본 발명의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다.
도 1을 참조하면, 컴퓨팅 환경(100)은 적어도 하나의 처리 장치(110)와 메모리(120)를 포함한다. 도 1에서, 이 가장 기본적인 구성(130)은 점선 안에 포함되어 있다. 처리 장치(110)는 컴퓨터 실행가능 명령어들을 실행하고 실제 또는 가상 프로세서일 수 있다. 멀티프로세싱 시스템에서는, 복수의 처리 장치들이 컴퓨터 실행가능 명령어들을 실행하여 처리 능력을 증대시킨다. 메모리(120)는 휘발성 메모리(예컨대, 레지스터, 캐시, RAM), 비휘발성 메모리(예컨대, ROM, EEPROM, 플래시 메모리 등), 또는 이 둘의 어떤 조합일 수 있다. 메모리(120)는 부대역 코딩, 멀티스테이지 코드북, 및/또는 음성 인코더 또는 디코더용의 리던던트 코딩 기법을 구현하는 소프트웨어(180)를 저장한다.
컴퓨팅 환경(100)은 추가적인 특징들을 가질 수 있다. 도 1에서, 컴퓨팅 환경(100)은 저장 장치(140), 하나 이상의 입력 장치(150), 하나 이상의 출력 장치(160), 및 하나 이상의 통신 접속들(170)을 포함한다. 버스, 컨트롤러, 또는 네트워크와 같은 상호접속 메커니즘(도시되지 않음)은 컴퓨팅 환경(100)의 컴포넌트들을 상호접속시킨다. 통상적으로, 운영 체제 소프트웨어(도시되지 않음)는 컴퓨팅 환경(100)에서 실행하는 기타 소프트웨어에 대한 운영 환경을 제공하고, 컴퓨팅 환경(100)의 컴포넌트들의 활동들을 조정한다.
저장 장치(140)는 이동식 또는 비이동식일 수 있고, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, CD-RW, DVD, 또는 컴퓨팅 환경(100) 내에서 액세스될 수 있고 정보를 저장하는 데 이용될 수 있는 임의의 기타 매체를 포함할 수 있다. 저장 장치(140)는 소프트웨어(180)의 명령어들을 저장한다.
입력 장치(들)(150)는 키보드, 마우스, 펜, 또는 트랙볼 등의 터치 입력 장치, 음성 입력 장치, 스캐닝 장치, 네트워크 어댑터, 또는 컴퓨팅 환경(100)에 입력을 제공하는 다른 장치일 수 있다. 오디오를 위하여, 입력 장치(들)(150)는 사운드 카드, 마이크 또는 오디오 입력을 아날로그 또는 디지털 형식으로 수취하는 기타 장치, 또는 컴퓨팅 환경(100)에 오디오 샘플들을 제공하는 CD/DVD 리더일수 있다. 출력 장치(들)(160)는 디스플레이, 프린터, 스피커, CD/DVD 라이터, 네트워크 어댑터, 또는 컴퓨팅 환경(100)으로부터의 출력을 제공하는 다른 장치일 수 있다.
컴퓨팅 접속(들)(170)은 통신 매체를 통한 다른 컴퓨팅 엔티티로의 통신을 가능케 한다. 통신 매체는 컴퓨터 실행가능 명령어, 압축 음성 정보, 또는 기타 데이터와 같은 정보를 피변조 데이터 신호(modulated data signal)로 운반한다. 피변조 데이터 신호는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 전기, 광학, RF, 적외선, 음향, 또는 기타 반송파로 구현된 유선 또는 무선 기법들을 포함한다.
본 발명은 일반적으로 컴퓨터 판독가능 매체와 관련하여 기술될 수 있다. 컴퓨터 판독가능 매체는 컴퓨팅 환경 내에서 액세스될 수 있는 임의의 이용 가능한 매체이다. 예로서, 컴퓨팅 환경(100)에서, 컴퓨터 판독가능 매체는 메모리(120), 저장 장치(140), 통신 매체, 및 상기한 것들의 임의의 조합을 포함하지만, 이들에 제한되는 것은 아니다.
본 발명은 일반적으로 컴퓨팅 환경에서 대상 실제 또는 가상 프로세서 상에서 실행중인, 프로그램 모듈들에 포함된 것들과 같은, 컴퓨터 실행가능 명령어들과 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 라이브러리, 개체, 클래스, 컴포넌트, 데이터 구조 등을 포함한다. 프로그램 모듈들의 기능은 각종 실시예들에서 원하는 대로 프로그램 모둘들 간에 결합 또는 분할될 수 있다. 프로그램 모듈들의 컴퓨터 실행가능 명령어들은 로컬 또는 분산 컴퓨팅 환경 내에서 실행될 수 있다.
설명을 목적으로, 상세한 설명은 "판정(determine)", "생성(generate)", "조정(adjust)", 및 "적용(apply)"과 같은 용어들을 사용하여 컴퓨팅 환경에서의 컴퓨터 동작들을 설명한다. 이들 용어는 컴퓨터에 의해 수행되는 동작들에 대한 고레벨의 추상화들(high-level abstractions)이고, 인간에 의해 행해지는 행위들과 혼동되어서는 안 될 것이다. 이들 용어에 대응하는 실제 컴퓨터 동작들은 구현에 따라서 달라진다.
Ⅱ. 일반화된 네트워크 환경 및 실시간 음성 코덱
도 2는 설명된 실시예들 중 하나 이상이 그와 관련하여 구현될 수 있는 일반화된 네트워크 환경(200)의 블록도이다. 네트워크(250)는 각종 인코더 측 컴포넌트들과 각종 디코더 측 컴포넌트들을 분리시킨다.
인코더 측 및 디코더 측 컴포넌트들의 주요 기능들은, 각각, 음성 인코딩 및 디코딩이다. 인코더 측에서, 입력 버퍼(210)는 음성 입력(202)을 수취하여 저장한다. 음성 인코더(230)는 입력 버퍼(210)로부터 음성 입력(202)을 취하여 그것을 인코딩한다.
구체적으로, 프레임 분할기(frame splitter)(212)는 음성 입력(202)의 샘플들을 프레임들로 분할한다. 일 구현에서는, 프레임들은 한결같이 20 ms 길이이다. 즉, 8 kHz 입력에 대해서는 160개 샘플이고 16 kHz 입력에 대해서는 320개 샘플이다. 다른 구현에서는, 프레임들은 상이한 지속기간을 갖고, 불균일하거나 중첩하고, 및/또는 입력(202)의 샘플링 레이트가 상이하다. 프레임들은 인코딩 및 디코딩의 상이한 스테이지들에 대하여 수퍼-프레임/프레임, 프레임/서브-프레임, 또는 다른 구성으로 편성될 수 있다.
프레임 분류기(frame classifier)(214)는 신호의 에너지, 제로 크로싱 레이트(zero crossing rate), 장기 예측 이득(long-term prediction gain), 이득 차분(gain differntial), 및/또는 서브-프레임 또는 전체 프레임들에 대한 기타 기준과 같은 하나 이상의 기준에 따라서 프레임들을 분류한다. 그 기준들에 기초하여, 프레임 분류기(214)는 상이한 프레임들을 묵음(silient), 무성음(unvoiced), 유성음(voiced), 및 전이(transition)(예컨대, 무성음에서 유성음으로)와 같은 부류(class)들로 분류한다. 또한, 프레임들은 프레임에 대하여 이용되는 리던던트 코딩(만일 있다면)의 유형에 따라서 분류될 수 있다. 프레임 부류는 프레임을 인코딩하기 위해 계산될 파라미터들에 영향을 미친다. 또한, 프레임 부류는 파라미터들을 인코딩하는 데 이용되는 해상도 및 손실 탄력성(resolution and loss resiliency)에 영향을 미쳐, 보다 중요한 프레임 부류들 및 파라미터들에 보다 많은 해상도 및 손실 탄력성을 제공하도록 할 수 있다. 예를 들면, 묵음 프레임들은 통상적으로 매우 낮은 레이트로 코딩되고, 손실될 경우 은폐에 의해 복구하기가 매우 간단하고, 손실에 대한 보호를 필요로 하지 않을 수 있다. 무성음 프레임들은 통상적으로 약간 높은 레이트로 코딩되고, 손실될 경우 은폐에 의해 복구하기가 꽤 간단하고, 손실에 대해 두드러지게 보호되지 않는다. 유성음 및 전이 프레임들은, 프레임의 복잡성은 물론 전이의 존재에 따라서, 통상적으로 보다 많은 비트들을 이용하여 인코딩된다. 유성음 및 전이 프레임들은 또한 손실될 경우 복구하기가 어렵고, 따라서 손실에 대하여 보다 두드러지게 보호된다. 대안적으로, 프레임 분류기(214)는 다른 및/또는 추가 프레임 부류들을 이용한다.
입력 음성 신호는 CELP 인코딩 모델과 같은 인코딩 모델을 프레임에 대한 부대역 정보에 적용하기 전에 부대역 신호들로 분할될 수 있다. 이것은 일련의 하나 이상의 분석 필터 뱅크들(이를테면 QMF 분석 필터들)(216)을 이용하여 행해질 수 있다. 예를 들어, 3-대역 구조가 이용된다면, 저주파수 대역은 신호를 저대역 통과 필러(low-pass filter)를 통과시킴으로써 분할(split out)될 수 있다. 마찬가지로, 고대역(high band)은 신호를 고대역 통과 필터(high pass filter)를 통과시킴으로써 분할될 수 있다. 중간 대역은 신호를 대역 통과 필터(band pass filter)를 통과시킴으로써 분할될 수 있고, 대역 통과 필터는 저대역 통과 필터와 고대역 통과 필터를 직렬로 포함할 수 있다. 대안적으로, 부대역 분해 및/또는 필터링의 타이밍(예컨대, 프레임 분할 전)을 위한 다른 유형의 필터 배열이 이용될 수도 있다. 만일 신호의 한 부분에 대하여 단 하나의 대역만이 디코딩될 것이라면, 해당 부분은 분석 필터 뱅크들(216)을 우회(bypass)할 수 있다. CELP 인코딩은 통상적으로 음성 신호에 대하여 ADPCM 및 MLT보다 더 높은 코딩 효율을 갖는다.
대역의 수 n은 샘플링 레이트에 의해 결정될 수 있다. 예를 들면, 일 구현에서는, 8 kHz 샘플링 레이트에 대하여 단일 대역 구조가 이용된다. 16 kHz 및 22.05 kHz 샘플링 레이트에 대해서는, 도 3에 도시된 바와 같이 3-대역 구조가 이용될 수 있다. 도 3의 3-대역 구조에서, 저주파수 대역(310)은 전체 대역폭 F의 절반에 걸쳐서 연장한다(0에서 0.5F까지). 대역폭의 나머지 절반은 중간 대역(320)과 고대역(330) 간에 동등하게 나누어진다. 대역들의 교차점들 가까이에서, 대역에 대한 주파수 응답은 패스 레벨(pass level)로부터 스톱 레벨(stop level)까지 점차적으로 감소할 수 있고, 이것은 교차점에 접근할 때 양쪽에서 신호가 감쇠하는 것을 특징으로 한다. 주파수 대역폭의 다른 분할들이 이용될 수도 있다. 예를 들면, 32 kHz 샘플링 레이트에 대해서는, 동등한 간격의 4-대역 구조가 이용될 수 있다.
저주파수 대역은 통상적으로 음성 신호에 대한 가장 중요한 대역이다. 왜냐하면 신호 에너지는 통상적으로 고주파수 범위를 향하여 감쇠하기 때문이다. 따라서, 저주파수 대역은 종종 다른 대역들보다 더 많은 비트를 이용하여 인코딩된다. 신호 대역 코딩 구조에 비하여, 부대역 구조는 보다 유연성이 있고, 주파수 대역들에 걸친 비트 분포/양자화 잡음을 보다 잘 제어할 수 있게 한다. 따라서, 부대역 구조를 이용함으로써 지각 음성 품질(perceptual voice quality)이 현저히 개선된다고 생각된다.
도 2에서는, 인코딩 컴포넌트들(232, 234)에 의해 예시되어 있는 바와 같이, 각 부대역이 개별적으로 인코딩된다. 대역 인코딩 컴포넌트들(232, 234)은 개별적으로 도시되어 있지만, 모든 대역의 인코딩은 단일 인코더에 의해 행해질 수도 있고, 또는 개별 인코더들에 의해 인코딩될 수도 있다. 그러한 대역 인코딩에 대하여 아래에서 도 4를 참조하여 보다 상세히 설명한다. 대안적으로, 코덱은 단일 대역 코덱으로서 동작할 수 있다.
결과의 인코딩된 음성은 멀티플렉서("MUX")(236)를 통하여 하나 이상의 네트워킹 계층들(240)에 대한 소프트웨어에 제공된다. 네트워킹 계층들(240)은 네트워크(250)를 통한 전송을 위하여 인코딩된 음성을 처리한다. 예를 들면, 네트워크 계층 소프트웨어는 인코딩된 음성 정보의 프레임들을 RTP 프로토콜을 따르는 패킷들로 패키징하고, 이 패킷들은 UDP, IP, 및 각종 물리적 계층 프로토콜을 이용하여 인터넷을 통하여 중계된다. 대안적으로, 다른 및/또는 추가 계층의 소프트웨어 또는 네트워킹 프로토콜들이 이용된다. 네트워크(250)는, 인터넷과 같은 광역 패킷 교환 네트워크(wide area, packet-switched network)이다. 대안적으로, 네트워크(250)는 LAN(local area network) 또는 다른 종류의 네트워크이다.
디코더 측에서는, 하나 이상의 네트워킹 계층들(260)에 대한 소프트웨어가 송신된 신호를 수신하여 처리한다. 디코더 측 네트워킹 계층(들)(260) 중의 네트워크, 전송, 및 보다 상위 계층 프로토콜들 및 소프트웨어는 통상적으로 인코더 측 네트워킹 계층(들)(240) 중의 것들에 대응한다. 네트워킹 계층(들)은 인코딩된 음성 정보를 디멀티플렉서("DEMUX")(276)를 통하여 음성 디코더(270)에 제공한다. 디코딩 모듈들(272, 274)에서 도시된 바와 같이, 디코더(270)는 부대역들의 각각을 개별적으로 디코딩한다. 모든 부대역들은 단일 디코더에 의해 디코딩될 수도 있고, 또는 개별 대역 디코더들에 의해 디코딩될 수도 있다.
디코딩된 부대역들은 그 후 일련의 하나 이상의 합성 필터 뱅크들(이를테면 QMF 합성 필터들)(280)에서 합성되고, 이 합성 필터 뱅크들은 디코딩된 음성(292)을 출력한다. 대안적으로, 부대역 합성을 위한 다른 유형의 필터 구성이 이용될 수도 있다. 단 하나의 대역만이 존재한다면, 디코딩된 대역은 필터 뱅크들(280)을 우회할 수도 있다.
디코딩된 음성 출력(292)을 또한 하나 이상의 후처리 필터들(post filters)(284)을 통과시켜 결과의 필터링된 음성 출력(294)의 품질을 개선시킬 수도 있다. 또한, 필터 뱅크들(280)에 들어가기 전에 각 대역을 개별적으로 하나 이상의 후처리 필터들을 통과시킬 수도 있다.
하나의 일반화된 실시간 음성 대역 디코더에 대하여 아래에서 도 6을 참조하여 설명하지만, 다른 음성 디코더들이 대신 이용될 수도 있다. 또한, 설명된 수단들 및 기법들의 일부 또는 전부는 음악 인코더 및 디코더, 또는 범용 오디오 인코더 및 디코더와 같은 다른 유형의 오디오 인코더 및 디코더와 함께 이용될 수도 있다.
이들 주요 인코딩 및 디코딩 기능들은 차치하고, 컴포넌트들은 또한 인코딩된 음성의 레이트, 품질 및/또는 손실 탄력성을 제어하기 위해 정보를 공유할 수도 있다(도 2에서 점선으로 도시됨). 레이트 컨트롤러(220)는 입력 버퍼(210) 내의 현 입력의 복잡성, 인코더(230) 내 또는 어떤 다른 곳의 출력 버퍼들의 버퍼 충만(buffer fullness), 원하는 출력 레이트, 현 네트워크 대역폭, 네트워크 정체(congestion)/잡음 상황 및/또는 디코더 손실 레이트(decoder loss rate)와 같은 각종의 인자들을 고려한다. 디코더(270)는 디코더 손실 레이트 정보를 레이트 컨트롤러(220)에 피드백한다. 네트워킹 계층(들)(240, 260)은 현 네트워크 대역폭 및 정체/잡음 상황에 관한 정보를 수집 또는 추정하고, 이 정보는 레이트 컨트를러(220)에 피드백된다. 대안적으로, 레이트 컨트롤러(220)는 다른 및/또는 추가 인자들을 고려한다.
레이트 컨트롤러(220)는 음성 디코더(230)에게 음성을 인코딩하는 데 이용되는 레이트, 품질, 및/또는 손실 탄력성을 변경하도록 지시한다. 인코더(230)는 파라미터들에 대한 양자화 계수들(quantization factors)을 조정하거나 파라미터들을 나타내는 엔트로피 코드들(entropy codes)의 해상도를 변경함으로써 레이트 및 품질을 변경할 수 있다. 또한, 인코더는 리던던트 코딩의 레이트 또는 유형을 조정함으로써 손실 탄력성을 변경할 수 있다. 따라서, 인코더(230)는 네트워크 상황에 따라서 주요 인코딩 기능들과 손실 탄력성 기능들 간에 비트들의 할당을 변경할 수 있다.
레이트 컨트롤러(220)는 몇몇 인자에 기초하여 각 프레임의 각 부대역에 대한 인코딩 모드들을 판정할 수 있다. 이들 인자는 각 부대역의 신호 특성, 비트 스트림 버퍼 이력, 및 목표 비트 레이트를 포함할 수 있다. 예를 들면, 상술한 바와 같이, 무성음 및 묵음 프레임들과 같은 보다 단순한 프레임들에 대해서는 일반적으로 보다 적은 수의 비트가 필요하고, 전이 프레임과 같은 보다 복잡한 프레임들에 대해서는 보다 많은 비트들이 필요하다. 또한, 고대역과 같은 일부 대역에 대해서는 보다 적은 수의 비트가 필요하다. 또한, 비트 스트림 이력 버퍼 내의 평균 비트 레이트가 목표 평균 비트 레이트보다 작다면, 현 프레임에 대하여 보다 높은 비트 레이트가 이용될 수 있다. 만일 평균 비트 레이트가 목표 평균 비트 레이트보다 크다면, 평균 비트 레이트를 낮추기 위해 현 프레임에 대하여 보다 낮은 비트 레이트가 선택될 수 있다. 또한, 대역들 중 하나 이상을 하나 이상의 프레임으로부터 생략할 수도 있다. 예를 들면, 중간 및 고주파수 프레임들을 무성음 프레임들에 대하여 생략할 수 있고, 또는 그것들을 어느 일정 시간 동안 모든 프레임으로부터 생략하여 해당 시간 동안 비트 레이트를 낮출 수 있다.
도 4는 설명된 실시예들이 그와 관련하여 구현되는 일반화된 음성 대역 인코더(400)의 블록도이다. 대역 인코더(400)는 일반적으로 도 2의 대역 인코딩 컴포넌트들(232, 234) 중 어느 하나에 대응한다.
대역 인코더(400)는 신호(예컨대, 현 프레임)가 복수의 대역들로 분할되면 필터 뱅크들(또는 다른 필터들)로부터 대역 입력(402)을 수취한다. 만일 현 프레임이 복수의 대역들로 분할되지 않으면, 대역 입력(402)은 전체 대역폭을 나타내는 샘플들을 포함한다. 대역 인코더는 인코딩된 대역 출력(492)을 생성한다.
만일 신호가 복수의 대역들로 분할되면, 다운샘플링 컴포넌트(420)가 각 대역에 대하여 다운샘플링을 수행할 수 있다. 일례로, 샘플링 레이트가 16 kHz로 설정되고 각 프레임이 지속기간이 20 ms이면, 각 프레임은 320개 샘플들을 포함한다. 만일 어떤 다운샘플링도 수행되지 않았고 프레임이 도 3에 도시된 3-대역 구조로 분할되었다면, 해당 프레임에 대하여 3배 많은 샘플들(즉, 대역당 320개 샘플, 즉 총 960개 샘플)이 인코딩 및 디코딩될 것이다. 그러나, 각 대역은 다운샘플링될 수 있다. 예를 들면, 저주파수 대역(310)은 320개 샘플로부터 160개 샘플로 다운샘플링될 수 있고, 중간 대역(320) 및 고대역(330)의 각각은 320개 샘플로부터 80개 샘플로 다운샘플링될 수 있고, 여기서 대역들(310, 320, 330)은 각각 주파수 범위의 절반, 4분의 1, 및 4분의 1에 걸쳐서 연장한다. (이 구현에서 다운샘플링(420)의 정도는 대역들(310, 320, 330)의 주파수 범위와 관련하여 변화한다. 그러나, 다른 구현들도 가능하다. 나중의 스테이지들에서는, 신호 에너지가 통상적으로 고주파수 범위로 향하여 감쇠하기 때문에 보다 높은 대역들에 대하여 통상적으로 보다 적은 수의 비트가 이용된다.) 따라서, 이것은 프레임에 대하여 인코딩 및 디코딩될 총 320개의 샘플을 제공한다.
이러한 각 대역의 다운샘플링에 있어서도, 부대역 코덱은 단일 대역 코덱보다 더 높은 음성 품질을 생성할 수 있다고 생각되는데, 그 이유는 그것이 보다 더 유연성이 있기 때문이다. 예를 들면, 그것은 전체 주파수 스펙트럼에 대하여 동일 방법을 이용하는 것이 아니라, 대역마다 양자화 잡음을 제어하는 데 더 유연성이 있을 수 있다. 복수의 대역들 각각은 상이한 속성들(이를테면 아래에서 논의되는 상이한 수 및/또는 유형의 코드북 스테이지들)을 이용하여 코딩될 수 있다. 그러한 속성들은 각 부대역의 신호 특성, 비트 스트림 버퍼 이력 및 목표 비트 레이트를 포함하는 몇몇 인자들에 기초하여 위에서 논의된 레이트 제어에 의해 결정될 수 있다. 위에서 논의한 바와 같이, 무성음 및 묵음 프레임들과 같은 "단순한" 프레임에 대해서는 통싱적으로 보다 적은 수의 비트들이 필요하고, 전이 프레임들과 같은 "복잡한" 프레임들에 대해서는 보다 많은 비트가 필요하다. 만일 비트 스트림 이력 버퍼 내의 평균 비트 레이트가 목표 평균 비트 레이트보다 작다면, 현 프레임에 대하여 보다 높은 비트 레이트가 이용될 수 있다. 그렇지 않다면 평균 비트 레이트를 낮추기 위해 보다 낮은 비트 레이트가 선택될 수 있다. 부대역 코덱에서는, 전체 주파수 스펙트럼을 동일한 방식으로 특징화하는 것이 아니라, 각 대역이 이런 방식으로 특징화되고 그에 따라서 인코딩될 수 있다. 또한, 이 레이트 제어는 하나 이상의 프레임들에 대하여 보다 높은 주파수 대역들 중 하나 이상을 생략함으로써 비트 레이트를 감소시킬 수 있다.
LP 분석 컴포넌트(430)는 선형 예측 계수들(432)을 계산한다. 일 구현에서, LP 필터는 8 kHz 입력에 대하여 10개의 계수를 이용하고 16 kHz 입력에 대하여 16개의 계수를 이용하고, LP 분석 컴포넌트(430)는 각 대역에 대하여 프레임마다 한 세트의 선형 예측 계수들을 계산한다. 대안적으로, LP 분석 컴포넌트(430)는 각 대역에 대하여 프레임마다 2 세트의 계수들을, 서로 다른 위치에 중심을 둔 2개의 윈도우 각각에 대하여 하나씩, 계산하거나, 또는 대역마다 및/또는 프레임마다 상이한 수의 계수들을 계산한다.
LPC 처리 컴포넌트(435)는 선형 예측 계수들(432)을 수신하여 처리한다. 전형적으로, LPC 처리 컴포넌트(435)는 LPC 값들을 보다 효율적인 양자화 및 인코딩을 위한 상이한 표현으로 변환한다. 예를 들면, LPC 처리 컴포넌트(435)는 LPC 값들을 라인 스펙트럼 쌍(line spectral palr)("LSP") 표현으로 변환하고, 이 LSP 값들이 양자화되어(이를테면 벡터 양자화에 의해) 인코딩된다. LSP 값들은 인트라 코딩(intra coding)되거나 다른 LSP 값들로부터 예측될 수 있다. LPC 값들에 대하여 다양한 표현, 양자화 기법, 및 인코딩 기법들이 가능하다. LPC 값들은 (재구성을 위해 필요한 임의의 양자화 파라미터 및 기타 정보와 함께) 패킷화 및 전송을 위한 인코딩된 대역 출력(492)의 일부로서 소정의 형태로 제공된다. 다음에 인코더(400)에서의 사용을 위해, LPC 처리 컴포넌트(435)는 LPC 값들을 재구성한다. LPC 처리 컴포넌트(435)는 LPC 값들에 대하여 보간(interpolation)을 수행하여(이를테면 LSP 표현 또는 다른 표현에서와 동등하게) LPC 계수들의 상이한 세트들 간에, 또는 프레임들의 상이한 서브-프레임들에 대하여 이용되는 LPC 계수들 간에 전이를 매끄럽게 할 수 있다.
합성(또는 "단기 예측(short-time prediction)") 필터(440)는 재구성된 LPC 값들(438)을 수취하여 그것들을 필터에 통합시킨다. 합성 필터(440)는 여기 신호를 수신하고 원 신호의 근사 신호(approximation)를 생성한다. 주어진 프레임에 대하여, 합성 필터(440)는 예측의 시작을 위하여 이전 프레임으로부터 다수의 재구성된 샘플들(예컨대, 10-탭 필터(ten-tap filter)의 경우 10개)을 버퍼링할 수 있다.
지각 가중 컴포넌트들(perceptual weighting components)(450, 455)은 원 신호 및 합성 필터(440)의 모델링된 출력에 지각 가중을 적용하여 음성 신호의 포먼트(formant) 구조를 선택적으로 덜 강조(do-emphasize)하여 청각계(auditory system)가 양자화 오류에 덜 민감하도록 만든다. 지각 가중 컴포넌트들(450, 455)은 차폐 효과(masking)와 같은 음향심리학(psychoacoustic) 현상을 이용한다. 일 구현에서, 지각 가중 컴포넌트들(450, 455)은 LP 분석 컴포넌트(430)로부터 수신된 원 LPC 값들(432)에 기초하여 가중치를 적용한다. 대안적으로, 지각 가중 컴포넌트들(450, 455)은 다른 및/또는 추가 가중치들을 적용한다.
지각 가중 컴포넌트들(450, 455)에 이어서, 인코더(400)는 지각 가중된 원 신호와 지각 가중된 합성 필터(440)의 출력 간의 차이를 계산하여 차분 신호(difference signal)(434)를 생성한다. 대안적으로, 인코더(400)는 음성 파라미터들을 계산하기 위해 상이한 기법을 이용한다.
여기 파라미터화 컴포넌트(excitation parameterization component)(460)는 (가중 평균 제곱 오차 또는 다른 기준에 있어서) 지각 가중된 원 신호와 합성 신호 간의 차이를 최소화하는 점에서 적응 코드북 인덱스들, 고정 코드북 인덱스들 및 이득 코드북 인덱스들의 최선의 조합을 찾아내려고 한다. 다수의 파라미터들이 서브-프레임마다 계산되지만, 보다 일반적으로 파라미터들은 수퍼-프레임마다, 프레임, 또는 서브-프레임마다 계산될 수 있다. 상술한 바와 같이, 프레임 또는 서브-프레임의 상이한 대역들에 대한 파라미터들은 상이할 수 있다. 표 2는 일 구현에서 상이한 프레임 부류들에 대한 이용 가능한 파라미터들의 유형들을 보여준다.
상이한 프레임 부류들에 대한 파라미터들
프레임 부류 파라미터(들)
묵음 부류 정보; LSP; 이득(프레임마다, 생성된 잡음에 대한)
무성음 부류 정보; LSP; 펄스, 임의 및 이득 코드북 파라미터들
유성음 부류 정보; LSP; 적응, 펄스, 임의 및 이득 코드북 파라미터들(서브-프레임마다)
전이
도 4에서, 여기 파라미터화 컴포넌트(460)는 프레임을 서브-프레임들로 분할하고 각 서브-프레임에 대한 코드북 인덱스들 및 이득들을 적절한 대로 계산한다. 예를 들면, 사용될 코드북 스테이지들의 수 및 유형, 및 코드북 인덱스들의 해상도는 처음에 인코딩 모드에 의해 결정될 수 있고, 이 모드는 위에서 논의된 레이트 제어 컴포넌트에 의해 지시될 수 있다. 특정 모드는 또한 코드북 스테이지들의 수 및 유형 외의 인코딩 및 디코딩 파라미터들, 예를 들면, 코드북 인덱스들의 해상도를 지시할 수 있다. 각 코드북 스테이지의 파라미터들은 목표 신호와 해당 코드북 스테이지의 합성 신호에의 기여 간의 오차를 최소화하도록 파라미터들을 최적화함으로써 결정될 수 있다. (여기에서 사용될 때, "최적화(optimize)"라는 용어는 파라미터 공간에 대하여 전체 검색을 수행하는 것과 대조적으로, 일그러짐 감소, 파라미터 검색 시간, 파라미터 검색 복잡성, 파라미터들의 비트 레이트 등과 같은 적용 가능한 제약들 하에서 적당한 해법을 찾는 것을 의미한다. 유사하게, "최소화(minimize)"라는 용어는 적용 가능한 제약들 하에서 적당한 해법을 찾는 점에서 이해되어야 할 것이다.) 예를 들면, 최적화는 수정된 평균 제곱 오차 기법을 이용하여 행해질 수 있다. 각 스테이지에 대한 목표 신호는 잔여 신호와 이전 코드북 스테이지들(만일 있다면)의 합성 신호에의 기여의 합 간의 차이이다. 대안적으로, 다른 최적화 기법들이 이용될 수도 있다.
도 5는 일 구현에 따른 코드북 파라미터들을 결정하는 기법을 보여준다. 여기 파라미터화 컴포넌트(460)는 이 기법을, 잠재적으로 레이트 컨트롤러와 같은 다른 컴포넌트들과 함께, 수행한다. 대안적으로, 인코더 내의 다른 컴포넌트가 이 기법을 수행한다.
도 5를 참조하면, 유성음 또는 전이 프레임 내의 각 서브-프레임에 대하여, 여기 파라미터화 컴포넌트(460)는 현 서브-프레임에 대하여 적응 코드북이 사용될 수 있는지를 판정한다(510). (예를 들면, 레이트 제어는 특정 프레임에 대하여 어떤 적응 코드북도 사용될 없음을 지시할 수 있다.) 만일 적응 코드북이 사용될 수 없다면, 적응 코드북 스위치가 어떤 적응 코드북들도 사용될 수 없음을 지시할 것이다(535). 예를 들면, 이것은 어떤 적응 코드북도 프레임에서 사용되지 않음을 지시하는 프레임 레벨에서의 1비트 플래그를 세팅함으로써, 프레임 레벨에서 특정 코딩 모드를 특정함으로써, 또는 어떤 적응 코드북도 서브-프레임에서 사용되지 않음을 지시하는 각 서브-프레임에 대한 1비트 플래그를 세팅함으로써 행해질 수 있다.
예를 들면, 레이트 제어 컴포넌트는 프레임에 대하여 적응 코드북을 배제시킴으로써, 프레임들 간의 가장 중대한 메모리 의존성을 제거할 수 있다. 특히 유성음 프레임에 대하여, 전형적인 여기 신호는 주기적인 패턴을 특징으로 한다. 적응 코드북은 이력 버퍼에서의 여기(excitation)의 세그먼트의 위치를 지시하는 지체(lag)를 나타내는 인덱스를 포함한다. 이전 여기의 세그먼트는 여기 신호에 대한 적응 코드북 기여가 되도록 스케일링된다. 디코더에서, 적응 코드북 정보는 전형적으로 여기 신호를 재구성하는 데 있어 매우 중요하다. 만일 이전 프레임이 손실되고 적응 코드북 인덱스가 이전 프레임의 세그먼트를 다시 가리키면, 적응 코드북 인덱스는 통상적으로 존재하지 않는 이력 정보를 가리키므로 유용하지 않다. 이 손실된 정보를 복구하기 위해 은폐 기법이 수행된다 하더라도, 차후의 재구성도 이 불완전하게 복구된 신호에 기초할 것이다. 이로 인해 후속 프레임들에서 오류가 계속될 것이다. 왜냐하면 지체 정보는 전형적으로 민감하기 때문이다.
따라서, 후속 적응 코드북이 의지하는 패킷의 손실은 다수의 패킷들이 디코딩된 후에, 또는 적응 코드북이 없는 프레임과 만나는 경우에만 사라지는 연장된 열화로 이어질 수 있다. 이러한 문제는 프레임들 간에 메모리 의존성을 갖지 않는 "인트라-프레임들(intra-frames)"을 패킷 스트림에 규칙적으로 삽입함으로써 감소될 수 있다. 따라서, 오류는 다음 인트라-프레임까지만 전파할 것이다. 따라서, 보다 나은 음성 품질과 보다 나은 패킷 손실 성능 간에 절충(trade-off)이 있고, 이는 적응 코드북의 코딩 효율은 통상적으로 고정 코드북의 코딩 효율보다 더 높기 때문이다. 레이트 제어 컴포넌트는 특정 프레임에 대하여 적응 코드북을 금지하는 것이 언제 유리한지를 판정할 수 있다. 적응 코드북 스위치는 특정 프레임에 대하여 적응 코드북의 사용을 방지하는 데 이용될 수 있고, 그에 의해 전형적으로 이전 프레임들에 대한 가장 중대한 의존성인 것을 제거할 수 있다(LPC 보간 및 합성 필터 메모리도 어느 정도 이전 프레임들에 의지할 수 있다). 따라서, 적응 코드북 스위치는 패킷 손실 레이트와 같은 인자들에 기초하여 동적으로 준-인트라-프레임(quasi-intra-frame)을 생성하기 위해 레이트 제어 컴포넌트에 의해 이용된다(즉, 패킷 손실 레이트가 높을 경우, 보다 빠른 메모리 리셋이 가능하도록 보다 많은 인트라-프레임들이 삽입될 수 있다).
다시 도 5를 참조하면, 적응 코드북이 사용될 수 있다면, 컴포넌트(460)는 적응 코드북 파라미터들을 결정할 수 있다. 이들 파라미터는 여기 신호 이력의 원하는 세그먼트는 물론, 원하는 세그먼트에 적용할 이득을 지시하는, 인덱스, 또는 피치 값을 포함한다. 도 4 및 5에서, 컴포넌트(460)는 폐쇄 루프 피치 검색(520)을 수행한다. 이 검색은 도 4에서 옵션인 개방 루프 피치 검색 컴포넌트(425)에 의해 결정된 피치에서 시작한다. 개방 루프 피치 검색 컴포넌트(425)는 가중 컴포넌트(450)에 의해 생성된 가중 신호를 분석하여 그것의 피치를 추정한다. 이 추정된 피치에서 시작하여, 폐쇄 루프 피치 검색(520)은 목표 신호와 여기 신호 이력의 지시된 세그먼트로부터 생성된 가중 합성 신호 간의 오차를 감소시키도록 피치 값을 최적화한다. 적응 코드북 이득 값도 최적화된다(525). 적응 코드북 이득 값은 피치 예측 값들(pitch-predicted values)(여기 신호 이력의 지시된 세그먼트로부터의 값들)에 적용하여 그 값들의 스케일을 조정할 승수(multiplier)를 지시한다. 피치 예측 값과 곱해진 이득은 현 프레임 또는 서브-프레임에 대한 여기 신호에의 적응 코드북 기여이다. 이득 최적화(525)는 목표 값과 적응 코드북 기여로부터의 가중 합성 신호 간의 오차를 최소화하는 이득 값 및 인덱스 값을 생성한다.
피치 및 이득 값들이 결정된 후에는, 적응 코드북 기여가 적응 코드북 파라미터들에 의해 이용되는 비트 수의 가치가 있을 만큼 큰지가 판정된다(530). 만일 적응 코드북 이득이 임계값보다 작다면, 아래에서 논의되는 고정 코드북을 위하여 비트를 절약하기 위해 적응 코드북은 오프된다. 일 구현에서는, 0.3의 임계값이 이용되지만, 대안적으로 다른 값들이 임계값으로 이용될 수도 있다. 일례로, 만일 현 인코딩 모드가 적응 코드북에 더하여 5개 펄스를 갖는 펄스 코드북을 사용한다면, 적응 코드북이 오프될 때 7-펄스 코드북이 사용될 수 있고, 총 비트 수는 여전히 동일하거나 보다 적을 수 있다. 상술한 바와 같이, 각 서브-프레임에 대한 1비트 플래그를 이용하여 해당 서브-프레임에 대한 적응 코드북 스위치를 지시할 수 있다. 따라서, 적응 코드북이 사용되지 않는다면, 스위치는 어떤 적응 코드북도 서브-프레임에서 사용되지 않음을 지시하도록 설정될 수 있다(535). 마찬가지로, 적응 코드북이 사용된다면, 스위치는 적응 코드북이 서브-프레임에서 사용됨을 지시하도록 설정되고 적응 코드북 파라미터들이 비트 스트림에 신호화된다(540). 도 5는 판정 후 신호화(signaling after the determination)를 보여주지만, 대안적으로, 신호들은 기법이 프레임 또는 서브-프레임에 대하여 완료될 때까지 배치(batch)된다.
여기 파라미터화 컴포넌트(460)는 또한 펄스 코드북이 사용되는지를 판정한다(550). 일 구현에서, 펄스 코드북의 사용 또는 비사용은 현 프레임에 대한 전체 코딩 모드의 일부로서 지시되거나, 또는 그것은 다른 방법으로 지시 또는 판정될 수도 있다. 펄스 코드북은 여기 신호에 기여될 하나 이상의 펄스들을 특정하는 고정 코드북의 한 유형이다. 펄스 코드북 파라미터들은 인덱스와 부호(sign)의 쌍들을 포함한다(이득은 양 또는 음일 수 있다). 각 쌍은 여기 신호에 포함될 펄스를 지시하고, 인덱스는 펄스의 위치를 지시하고, 부호는 펄스의 극성을 지시한다. 펄스 코드북에 포함되어 여기 신호에 기여하기 위해 사용되는 펄스들의 수는 코딩 모드에 따라서 변화할 수 있다. 또한, 펄스들의 수는 적응 코드북이 사용되고 있는지 여부에 따라서 달라질 수 있다.
만일 펄스 코드북이 사용된다면, 펄스 코드북 파라미터들은 지시된 펄스들의 기여와 목표 신호 간의 오차를 최소화하도록 최적화된다(555). 만일 적응 코드북이 이용되지 않는다면, 목표 신호는 가중 원 신호이다. 만일 적응 코드북이 이용된다면, 목표 신호는 가중 원 신호와 적응 코드북의 가중 합성 신호에의 기여 간의 차이이다. 그 후 어느 시점에서(도시되지 않음), 펄스 코드북 파라미터들은 비트 스트림에 신호화된다.
여기 파라미터화 컴포넌트(460)는 또한 임의의 임의 고정 코드북(random fixed codebook) 스테이지들이 이용될 것인지를 판정한다(565). 임의 코드북 스테이지들의 수(만일 있다면)는 현 프레임에 대한 전체 코딩 모드의 일부로서 지시되지만, 그것은 다른 방법으로 지시 또는 판정될 수도 있다. 임의 코드북은 그것이 인코딩하는 값들에 대하여 사전 정의된 신호 모델을 이용하는 고정 코드북의 한 유형이다. 코드북 파라미터들은 신호 모델의 지시된 세그먼트에 대한 시작점과 양 또는 음일 수 있는 부호를 포함할 수 있다. 지시된 세그먼트의 길이 또는 범위는 통상적으로 고정되고 따라서 통상적으로 신호화되지 않지만, 대안적으로 지시된 세그먼트의 길이 또는 범위가 신호화된다. 이득은 지시된 값들과 곱해져서 임의 코드북의 여기 신호에의 기여를 생성한다.
만일 적어도 하나의 임의 코드북 스테이지가 사용된다면, 해당 코드북 스테이지에 대한 코드북 스테이지 파라미터들은 이의 코드북 스테이지의 기여와 목표 신호 간의 오차를 최소화하도록 최적화된다(570). 목표 신호는 가중 원 신호와 적응 코드북(만일 있다면), 펄스 코드북(만일 있다면), 및 이전에 결정된 임의 코드북 스테이지들(만일 있다면)의 가중 합성 신호에의 기여의 합 간의 차이이다. 그 후 어느 시점에서(도시되지 않음), 임의 코드북 파라미터들은 비트 스트림에 신호화된다.
그 후 컴포넌트(460)는 임의 코드북 스테이지들이 더 이용될 것인지를 판정한다(580). 만일 그렇다면, 다음 임의 코드북 스테이지의 파라미터들은 상술한 바와 같이 최적화(570)되어 신호화된다. 이것은 임의 코드북 스테이지들에 대한 모든 파라미터들이 결정될 때까지 계속된다. 모든 임의 코드북 스테이지들은 동일 신호 모델을 이용할 수 있지만, 그것들은 아마도 그 모델로부터 상이한 세그먼트들을 지시하고 싱이한 이득 값들을 가질 것이다. 대안적으로, 상이한 임의 코드북 스테이지들에 대하여 상이한 신호 모델들이 이용될 수 있다.
레이트 컨트롤러 및/또는 다른 컴포넌트들에 의해 결정되는 대로, 각 여기 신호는 독립적으로 양자화될 수도 있고 또는 2 이상의 이득들이 함께 양자화될 수도 있다.
여기서는 각종 코드북 파라미터들을 최적화하기 위하여 특정 순서가 제시되었지만, 다른 순서 및 최적화 기법들이 이용될 수도 있다. 따라서, 도 5는 상이한 코드북 파라미터들의 순차적인 계산을 보여주고 있지만, 대안적으로, 2 이상의 상이한 코드북 파라미터들이 합동으로 최적화된다(예컨대, 합동으로 파라미터들을 변화시키고 어떤 비선형 최적화 기법에 따라서 결과들을 평가함으로써). 또한, 다른 구성의 코드북들 또는 다른 여기 신호 파라미터들이 이용될 수 있다.
이 구현에서의 여기 신호는 적응 코드북, 펄스 코드북, 및 임의 코드북 스테이지(들)의 임의의 기여들의 합이다. 대안적으로, 컴포넌트(460)는 여기 신호에 대한 다른 및/또는 추가 파라미터들을 계산할 수 있다.
도 4를 참조하면, 여기 신호에 대한 코드북 파라미터들은 신호화되거나 또는 다른 방법으로 로컬 디코더(465)(도 4에서 점선으로 둘러싸임)에뿐만 아니라 대역 출력(492)에 제공된다. 따라서, 각 대역에 대하여, 인코더 출력(492)은 위에서 논의된 LPC 처리 컴포넌트(435)로부터의 출력뿐만 아니라, 여기 파라미터화 컴포넌트(460)로부터의 출력을 포함한다.
출력(492)의 비트 레이트는 부분적으로 코드북들에 의해 사용되는 파라미터들에 의존하고, 인코더(400)는 상이한 코드북 인덱스 세트들 간에 스위칭하거나, 내장된 코드들을 이용하거나, 또는 다른 기법들을 이용하여 비트 레이트 및/또는 품질을 제어할 수 있다. 코드북 유형들 및 스테이지들의 상이한 조합들은 상이한 프레임들, 대역들, 및/또는 서브-프레임들에 대하여 상이한 인코딩 모드들을 산출할 수 있다. 예를 들면, 무성음 프레임은 하나의 임의 코드북 스테이지만을 사용할 수 있다. 적응 코드북 및 펄스 코드북은 낮은 레이트 유성음 프레임에 대하여 사용될 수 있다. 높은 레이트 프레임은 적응 코드북, 펄스 코드북, 및 하나 이상의 임의 코드북 스테이지들을 사용하여 인코딩될 수 있다. 하나의 프레임에서, 모든 부대역들에 대한 모든 인코딩 모드들의 조합은 함께 모드 세트(mode set)라 불릴 수 있다. 각 샘플링 레이트에 대하여 수 개의 사전 정의된 모드 세트들이 있을 수 있고, 상이한 모드들은 상이한 코딩 비트 레이트들에 대응한다. 레이트 제어 모듈은 각 프레임에 대한 모드를 결정하거나 그것에 영향을 미칠 수 있다.
가능한 비트 레이트들의 범위는 설명된 구현들에 대하여 매우 클 수 있고, 결과의 품질에 상당한 개선을 일으킬 수 있다. 표준 디코더에서는, 펄스 코드북에 대하여 사용되는 비트들의 수도 변경될 수 있지만, 너무 많은 비트들은 다만 너무 밀집한 펄스들을 산출할 수 있다. 유사하게, 단일 코드북만 사용될 경우, 더 많은 비트를 추가하는 것으로 더 큰 신호 모델이 사용되도록 할 수 있다. 그러나, 이것은 모델의 최적의 세그먼트들을 검색하는 복잡성을 현저히 증가시킬 수 있다. 이와 대비하여, 추가적인 유형의 코드북들 및 추가 임의 코드북 스테이지들이 (단 하나의 결합된 코드북을 검색하는 것에 비하여) 개개의 코드북 검색의 복잡성을 현저히 증가시키지 않고 추가될 수 있다. 또한, 복수의 임의 코드북 스테이지들 및 복수의 유형의 고정 코드북들은 복수의 이득 계수들을 허용하고, 이는 파형 정합에 대한 보다 많은 유연성을 제공한다.
다시 도 4를 참조하면, 여기 파라미터화 컴포넌트(460)의 출력은 여기 파라미터화 컴포넌트(460)에 의해 사용되는 코드북들에 대응하는 코드북 재구성 컴포넌트들(470, 472, 474, 476) 및 이득 적용 컴포넌트들(480, 482, 484, 486)에 의해 수신된다. 코드북 스테이지들(470, 472, 474, 476) 및 대응하는 이득 적용 컴포넌트들(480, 482, 484, 486)은 코드북들의 기여들을 재구성한다. 이들 기여들은 합산되어 여기 신호(490)를 생성하고, 이것은 합성 필터(440)에 의해 수신되고, 거기서 그로부터 후속 선형 예측이 발생하는 "예측(predicted)" 샘플들과 함께 이용된다. 여기 신호의 지연(delayed) 부분들도 여기 이력 신호로서 이용되어 적응 코드북 재구성 컴포넌트(470)에 의해 후속 적응 코드북 파라미터들(예컨대, 피치 기여)을 재구성하는 데 이용되고, 파라미터화 컴포넌트(460)에 의해 후속 적응 코드북 파라미터들(예컨대, 피치 인덱스 및 피치 이득 값들)을 계산하는 데 이용된다.
다시 도 2를 참조하면, 각 대역에 대한 대역 출력은 다른 파라미터들과 함께 MUX(236)에 의해 수취된다. 그러한 다른 파라미터들은, 여러 정보 중에서도, 프레임 분류기(214)로부터의 프레임 부류 정보(222) 및 프레임 인코딩 모드들을 포함할 수 있다. MUX(236)는 다른 소프트웨어에 전달할 애플리케이션 계층 패킷들을 구성하거나, 또는 MUX(236)는 RTP와 같은 프로토콜을 따르는 패킷들의 페이로드들에 데이터를 배치한다. MUX(236)는 나중의 패킷들에서의 순방향 오류 정정(forward error correction)을 위하여 파라미터들의 선택적 반복이 가능하도록 파라미터들을 버퍼링할 수 있다. 일 구현에서, MUX(236)는 하나의 프레임에 대한 제1 인코딩된 음성 정보를, 하나 이상의 이전 프레임들의 전부 또는 일부에 대한 순방향 오류 정정 정보와 함께, 단일 패킷에 패킹한다.
MUX(236)는 레이트 제어를 위하여 현 버퍼 충만(current buffer fullness)과 같은 피드백을 제공한다. 보다 일반적으로, 인코더(230)의 각종 컴포넌트들(프레임 분류기(214) 및 MUX(236)를 포함)은 도 2에 도시된 것과 같은 레이트 컨트롤러(220)에 정보를 제공할 수 있다.
도 2의 비트 스트림 DEMUX(276)는 인코딩된 음성 입력을 입력으로서 수취하여 그것을 구문 분석(parse)하여 파라미터들을 식별 및 처리한다. 파라미터들은 프레임 부류, LPC 값들의 어떤 표현, 및 코드북 파라미터들을 포함할 수 있다. 프레임 부류는 주어진 프레임에 대하여 다른 파라미터들이 존재하는지를 지시할 수 있다. 보다 일반적으로, DEMIIX(276)는 인코더(230)에 의해 이용되는 프로토콜들을 이용하고 인코더(230)가 패킷들에 패킹(pack)하는 파라미터들을 추출한다. 다이내믹 패킷 교환 네트워크(dynamic packet-switched network)를 통하여 수신된 패킷들에 대하여, DEMUX(276)는 주어진 기간에 걸쳐서 패킷 레이트에서의 단기 변동(short term fluctuations)을 평활화(smooth out)하는 지터 버퍼(jitter buffer)를 포함한다. 일부 경우에, 디코더(270)는 지연, 품질 제어, 손실한 프레임들의 은폐 등을 디코딩에 통합시키기 위해 버퍼 지연을 조절하고 버퍼로부터 패킷들이 판독되는 때를 관리한다. 다른 경우에, 애플리케이션 계층 컴포넌트가 지터 버퍼를 관리하고, 지터 버퍼는 가변 레이트로 채워지고 디코더(270)에 의해 일정하거나 또는 비교적 일정한 레이트로 고갈(deplete)된다.
DEMUX(276)는 1차 인코딩된 버전 및 하나 이상의 2차 오류 정정 버전들을 포함하는, 주어진 세그먼트에 대한 파라미터들의 복수의 버전들을 수신할 수 있다. 오류 정정이 실패할 경우, 디코더(270)는 파라미터 반복 또는 정확하게 수신된 정보에 기초한 추정과 같은 은폐 기법들을 이용한다.
도 6은 하나 이상의 설명된 실시예들이 그와 관련하여 구현될 수 있는 일반화된 실시간 음성 대역 디코더(600)의 블록도이다. 대역 디코더(600)는 일반적으로 도 2의 대역 디코딩 컴포넌트들(272, 274) 중 어느 하나에 대응한다.
대역 디코더(600)는 대역(완전한 대역일 수도 있고, 또는 복수의 부대역들 중 하나일 수도 있음)에 대한 인코딩된 음성 정보(692)를 입력으로서 수취하고 디코딩 후에 재구성된 출력(602)을 생성한다. 디코더(600)의 컴포넌트들은 인코더(400) 내의 대응하는 컴포넌트들을 갖지만, 디코더(600) 전체는 보다 단순하다. 왜냐하면 디코더는 여기 가중, 여기 처리 루프 및 레이트 제어를 위한 컴포넌트들이 없기 때문이다.
LPC 처리 컴포넌트(635)는 대역 인코더(400)에 의해 제공된 형태로 LPC 값들을 나타내는 정보(뿐만 아니라 임의의 양자화 파라미터들 및 재구성에 필요한 기타 정보)를 수신한다. LPC 처리 컴포넌트(63고는 이전에 LPC 값들에 적용된 변환, 양자화, 인코딩 등의 역(inverse)을 이용하여 LPC 값들(638)을 재구성한다. LPC 처리 컴포넌트(635)는 또한 LPC 간들(LPC 표현 또는 LSP와 같은 다른 표현의 것)에 대한 보간을 수행하여 상이한 LPC 계수 세트들 간의 전이를 매끄럽게 할 수도 있다.
코드북 스테이지들(670, 672, 674, 676) 및 이득 적용 컴포넌트들(680, 682, 684, 686)은 여기 신호에 대하여 사용된 대응하는 코드북 스테이지들 중 임의의 것의 파라미터들을 디코딩하고 사용되는 각 코드북 스테이지의 기여를 계산한다. 보다 일반적으로, 코드북 스테이지들(670, 672, 674, 676) 및 이득 컴포넌트들(680, 682, 684, 686)의 구성 및 동작은 인코더(400) 내의 코드북 스테이지들(470, 472, 474, 476) 및 이득 컴포넌트들(480, 482, 484, 86)의 구성 및 동작에 대응한다. 사용된 코드북 스테이지들의 기여들은 합산되고, 그 결과의 여기 신호(690)는 합성 필터(640)에 공급된다. 여기 신호(690)의 지연 값들도 여기 이력으로서 적응 코드북(670)에 의해 여기 신호의 후속 부분들에 대한 적응 코드북의 기여를 계산하는 데 이용된다.
합성 필터(640)는 재구성된 LPC 값들(638)을 수취하고 그것들을 필터에 통합시킨다. 합성 필터(640)는 처리를 위하여 이전에 재구성된 샘플들을 저장한다. 여기 신호(690)는 합성 필터를 통과하여 원 음성 신호의 근사 신호를 형성한다. 다시 도 2를 참조하여, 상술한 바와 같이, 복수의 부대역들이 있다면, 각 부대역에 대한 부대역 출력은 필터 뱅크들(280)에서 합성되어 음성 출력(292)을 형성한다.
도 2-6에 도시된 관계들은 정보의 일반적인 흐름들을 나타내고; 간결함을 위하여 다른 관계들은 도시되어 있지 않다. 원하는 압축의 유형 및 구현에 따라서, 컴포넌트들이 추가되거나, 생략되거나, 복수의 컴포넌트들로 분할되거나, 다른 컴포넌트들과 조합되거나, 및/또는 유사한 컴포넌트들로 대체될 수 있다. 예를 들면, 도 2에 도시된 환경(200)에서, 레이트 컨트롤러(220)는 음성 인코더(230)와 조합될 수 있다. 잠재적인 추가 컴포넌트들은 음성 인코더(또는 디코더)는 물론 다른 인코더들(또는 디코더들)을 관리하고 네트워크 및 디코더 상황 정보를 수집하고, 또한 적응 오류 정정 기능들을 수행하는 멀티미디어 인코딩(또는 재생(playback)) 애플리케이션을 포함한다. 대안적인 실시예들에서는, 상이한 조합 및 구성의 컴포넌트들이 본 명세서에서 설명된 기법들을 이용하여 음성 정보를 처리한다.
Ⅲ. 리던던트 코딩 기법
음성 코덱(speech codecs)의 하나의 가능한 용도는 IP 네트워크 또는 다른 패킷 교환 네트워크를 통한 음성에 대한 것이다. 그러한 네트워크들은 기존의 회로 교환 인프라(circuit switching infrastructures)에 대하여 몇몇 이점들을 갖는다. 그러나, VoIP(voice over IP) 네트워크에서는, 패킷들이 네트워크 정체로 인해 종종 지연되거나 누락(drop)된다.
다수의 표준 음성 코덱들은 높은 프레임간 의존성(inter-frame dependency)을 갖고 있다. 따라서, 이들 코덱들에서는 하나의 소실된 프레임이 다수의 후속 프레임들을 통하여 심각한 음질 열화를 초래할 수도 있다.
다른 코덱들에서는 각 프레임이 독립적으로 디코딩될 수 있다. 그러한 코덱들은 패킷 손실에 대해 강건(robust)하다. 그러나 프레임간 의존성을 허용하지 않은 결과로 품질 및 비트 레이트 면에서의 코딩 효율이 현저히 저하된다. 따라서, 그러한 코덱들은 전형적으로 전통적인 CELP 코더들과 유사한 음성 품질을 달성하기 위해 보다 높은 비트 레이트를 필요로 한다.
일부 실시예들에서, 아래에서 논의되는 리던던트 코딩(redundant coding)은 비트 레이트를 현저히 증가시키지 않고 양호한 패킷 손실 복구 성능을 달성하는 데 도움이 될 수 있다. 이 기법들은 단일 코덱 내에서 함께 이용되거나, 또는 개별적으로 이용될 수 있다.
도 2 및 4를 참조하여 위에서 설명한 인코더 구현에서, 적응 코드북 정보는 전형적으로 다른 프레임들에 대한 의존의 주요 원인이다. 상술한 바와 같이, 적응 코드북 인덱스는 이력 버퍼 내의 여기 신호의 세그먼트의 위치를 지시한다. 이전 여기 신호의 세그먼트는 (이득 간에 따라서) 스케일링되어 현 프레임(또는 서브-프레임) 여기 신호의 적응 코드북 기여가 된다. 만일 인코딩된 이전 여기 신호를 재구성하는 데 이용되는 정보를 포함하는 이전 패킷이 손실되면, 이 현 프레임(또는 서브-프레임) 지체 정보는 존재하지 않는 이력 정보를 가리키기 때문에 유용하지 않다. 지체 정보는 민감하기 때문에, 이것은 통상적으로 다수의 패킷들의 디코딩된 후에만 사라지는 결과의 음성 출력의 연장된 열화로 이어진다.
다음의 기법들은 지연되었거나 손실되었기 때문에 이용 불가능한 이전의 프레임들로부터의 재구성된 정보에 대한 현 여기 신호의 의존성을 적어도 어느 정도까지 제거하도록 설계되어 있다.
도 2를 참조하여 위에서 설명된 인코더(230)와 같은 인코더는 다음의 인코딩 기법들 사이에서 프레임마다의 기준으로(on a frame-by-frame basis) 또는 어떤 다른 기준으로 스위칭할 수 있다. 도 2를 참조하여 위에서 설명된 디코더(270)와 같은 디코더는 대응하는 구문 분석/디코딩 기법들을 프레임마다의 기준으로 또는 어떤 다른 기준으로 스위칭한다. 대안적으로, 다른 인코더, 디코더, 또는 오디오 처리 수단이 다음의 기법들 중 하나 이상을 수행한다.
A. 제1 적응 코드북 이력 리인코딩 /디코딩
제1 적응 코드북 이력 리인코딩/디코딩(primary adaptive codebook history re-encoding/decoding)에서, 여기 이력 버퍼는, 디코더에서 이용가능하다 하더라도(예컨대, 수신된 이전 프레임의 패킷, 디코딩된 이전 프레임 등), 현 프레임의 여기 신호를 디코딩하는 데 이용되지 않는다. 대신, 인코더에서, 현 프레임에 대하여 피치 정보를 분석하여 얼마만큼의 여기 이력이 필요한지를 판정한다. 여기 이력의 필요한 부분은 리인코딩(re-encode)되고 현 프레임에 대하여 코딩된 정보(예컨대, 필터 파라미터, 코드북 인덱스 및 이득)와 함께 송신된다. 현 프레임의 적응 코드북 기여는 현 프레임과 함께 송신되는 리인코딩된 여기 신호를 참조한다. 따라서, 관련 여기 이력은 각 프레임에 대하여 디코더가 이용할 수 있도록 보장된다. 이 리던던트 코딩은, 현 프레임이 무성음 프레임과 같은 적응 코드북을 이용하지 않으면, 필요하지 않다.
여기 이력의 참조된 부분의 리인코딩은 현 프레임의 인코딩과 함께 행해질 수 있고, 위에 설명되어 있는, 현 프레임에 대한 여기 신호의 인코딩과 동일한 방식으로 행해질 수 있다.
일부 구현에서, 여기 신호의 인코딩은 서브-프레임 기준으로 행해지고, 리인코딩된 신호의 세그먼트는 현 서브-프레임을 포함하는 현 프레임의 시작으로부터 뒤로 현 프레임에 대한 가장 먼 적응 코드북 의존성을 넘어서 서브-프레임 경계까지 연장한다. 따라서 리인코딩된 여기 신호는 프레임 내의 복수의 서브-프레임들에 대한 피치 정보를 이용하여 참조 가능하다. 대안적으로, 여기 신호의 인코딩은 어떤 다른 기준으로, 예컨대, 프레임마다 행해진다.
여기 이력(710)을 도시하는 도 7에 일례가 예시되어 있다. 프레임 경계들(720) 및 서브-프레임 경계들(730)은 각각 보다 크고 보다 작은 점선들로 도시되어 있다. 현 프레임(740)의 서브-프레임들은 적응 코드북을 이용하여 인코딩된다. 현 프레임의 서브-프레임의 임의의 적응 코드북 지체 인덱스에 대한 가장 먼 의존성의 포인트는 라인(750)에 의해 도시되어 있다. 따라서, 리인코딩된 이력(760)은 현 프레임의 시작으로부터 뒤로 가장 먼 포인트(750)를 넘어서 다음 서브-프레임 경계까지 연장한다. 가장 먼 의존성의 포인트는 상술한 개방 루프 피치 검색(425)의 결과들을 이용하여 추정될 수 있다. 그러나, 그 검색은 정확하지 않기 때문에, 나중의 피치 검색이 억제(constrain)되지 않는 한 적응 코드북이 추정된 가장 먼 포인트 너머에 있는 여기 신호의 어떤 부분에 의존할 가능성이 있다. 따라서, 리인코딩된 이력은 정합하는 피치 정보를 찾기 위한 추가적인 여유를 제공하기 위해 추정된 가장 먼 의존성 포인트를 넘어서 추가 샘플들을 포함할 수 있다. 일 구현에서, 추정된 가장 먼 의존성 포인트를 넘어서 적어도 10개의 추가 샘플들이 리인코딩된 이력에 포함된다. 물론, 리인코딩된 이력이 현 서브-프레임 내의 것들과 정합하는 피치 사이클들을 포함할 만큼 충분히 멀리 연장할 가능성을 증가시키기 위하여, 10개 이상의 샘플들이 포함될 수도 있다.
대안적으로, 현 프레임의 서브-프레임(들)에서 실제로 참조되는 이전 여기 신호의 세그먼트(들)만이 리인코딩된다. 예를 들면, 적당한 지속 기간을 갖는 이전 여기 신호의 세그먼트를 그 지속 기간의 단 하나의 현 세그먼트를 디코딩하는 데 이용하기 위해 리인코딩한다.
제1 적응 코드북 이력 리인코딩/디코딩은 이전 프레임들의 여기 이력에 대한 의존성을 제거한다. 동시에, 그것은 적응 코드북들이 사용되도록 허용하고 전체 이전 프레임(들)(또는 심지어 이전 프레임(들)의 전체 여기 이력)의 리인코딩을 필요로 하지 않는다. 그러나, 적응 코드북 메모리를 리인코딩하는 데 필요한 비트 레이트는 아래에서 설명되는 기법들에 비하여 매우 높고, 특히, 리인코딩된 이력이 프레임간 의존성에 의한 인코딩/디코딩과 동일한 품질 레벨로 제1 인코딩/디코딩하는 데 이용되는 경우에 그러하다.
제1 적응 코드북 이력 리인코딩/디코딩의 부산물로서, 리인코딩된 여기 신호는 이전의 손실된 프레임에 대한 여기 신호의 적어도 일부를 복구하는 데 이용될 수 있다. 예를 들면, 리인코딩된 여기 신호는 현 프레임의 서브-프레임들의 디코딩 중에 재구성되고, 리인코딩된 여기 신호는 실제 또는 추정된 필터 계수들을 이용하여 구성된 LPC 합성 필터에 입력된다.
결과의 재구성된 출력 신호는 이전 프레임 출력의 일부로서 이용될 수 있다. 이 기법은 또한 현 프레임에 대한 합성 필터 메모리의 초기 상태를 추정하는 데 도움이 될 수 있다. 리인코딩된 여기 이력 및 추정된 합성 필터 메모리를 이용하여, 현 프레임의 출력은 통상의 인코딩과 동일한 방식으로 생성된다.
B. 제2 적응 코드북 이력 리인코딩 /디코딩
제2 적응 코드북 이력 리인코딩/디코딩에서는, 현 프레임의 제1 적응 코드북 인코딩이 변경되지 않는다. 유사하게, 현 프레임의 제1 디코딩이 변경되지 않고; 그것은 이전 프레임이 수신되면 이전 프레임 여기 이력을 이용한다.
이전 여기 이력이 재구성되지 않는 경우의 이용을 위하여, 여기 이력 버퍼는 상술한 제1 적응 코드북 리인코딩/디코딩과 실질적으로 동일한 방법으로 리인코딩된다. 그러나, 제1 리인코딩/디코딩에 비하여, 리인코딩을 위해 보다 적은 수의 비트가 이용되는데, 그 이유는 패킷이 손실된 패킷이 없는 경우 리인코딩된 신호에 의해 음성 품질이 영향을 받지 않기 때문이다. 여기 이력을 리인코딩하는 데 이용되는 비트의 수는, 보다 적은 수의 코드북 스테이지들을 사용하거나, 또는 펄스북 코드북에서 보다 적은 수의 펄스를 이용하는 것과 같이, 각종 파라미터들을 변경함으로써 감소될 수 있다.
이전 프레임이 손실되는 경우, 리인코딩된 여기 이력은 디코더에서 현 프레임에 대한 적응 코드북 여기 신호를 생성하는 데 이용된다. 리인코딩된 여기 이력은 또한, 제1 적응 코드북 이력 리인코딩/디코딩 기법에서와 같이, 이전 손실된 프레임에 대한 여기 신호의 적어도 일부를 복구하는 데 이용될 수 있다.
또한, 결과의 재구성된 출력 신호는 이전 프레임 출력의 일부로서 이용될 수 있다. 이 기법은 또한 현 프레임에 대한 합성 필터 메모리의 초기 상태를 추정하는 데 도움이 될 수 있다. 리인코딩된 여기 이력 및 추정된 합성 필터 메모리를 이용하여, 현 프레임의 출력은 통상의 인코딩과 동일한 방식으로 생성된다.
C. 여분의 코드북 스테이지
제2 적응 코드북 이력 리인코딩/디코딩 기법에서와 같이, 여분의 코드북 스테이지(extra codebook stage) 기법에서 메인 여기 신호 인코딩(main excitation signal encoding)은 도 2-5를 참조하여 위에서 설명된 통상의 인코딩과 동일하다. 그러나, 여분의 코드북 스테이지에 대한 파라미터들도 결정된다.
도 8에 예시되어 있는, 이 인코딩 기법에서는, 이전의 여기 이력 버퍼는 현 프레임의 시작에서 모두 제로(0)이고, 따라서 이전의 여기 이력 버퍼로부터의 기여는 없는 것으로 가정된다(810). 현 프레임에 대한 메인 인코딩된 정보에 더하여, 적응 코드북을 이용하는 각 서브-프레임 또는 다른 세그먼트에 대하여 하나 이상의 여분의 코드북 스테이지(들)가 이용된다. 예를 들면, 여분의 코드북 스테이지는 도 4를 참조하여 설명한 것들과 같은 임의 고정 코드북을 사용한다.
이 기법에서는, 현 프레임을 통상적으로 인코딩하여 이전 프레임이 이용 가능한 경우 디코더에 의해 이용될 메인 인코딩된 정보(메인 코드북 스테이지들에 대한 메인 코드북 파라미터들을 포함할 수 있음)를 생성한다. 인코더 측에서, 하나 이상의 여분의 코드북 스테이지들에 대한 리던던트 파라미터들은, 이전 프레임으로부터의 여기 정보가 없다고 가정하여, 폐쇄 루프에서 결정된다. 제1 구현에서, 그 결정은 메인 코드북 파라미터들 중 어떤 것도 이용하지 않고 행해진다. 대안적으로, 제2 구현에서 그 결정은 현 프레임에 대한 메인 코드북 파라미터들 중 적어도 일부를 이용한다. 이들 메인 코드북 파라미터들은 여분의 코드북 스테이지 파라미터(들)와 함께, 아래에서 설명되는 바와 같이, 이전 프레임이 손실된 경우 현 프레임을 디코딩하는 데 이용될 수 있다. 일반적으로, 이 제2 구현은 상기 제1 구현과 유사한 품질을 달성할 수 있고, 여분의 코드북 스테이지(들)에 대하여 보다 적은 수의 비트가 이용된다.
도 8에 따르면, 여분의 코드북 스테이지의 이득 및 최후로 현존하는 펄스 또는 임의 코드북의 이득이 코딩 오류를 최소화하도록 인코더 폐쇄 루프 검색에서 합동으로 최적화된다. 통상의 인코딩에서 생성되는 파라미터들의 대부분이 보존되어 이 최적화에서 이용된다. 최적화에서는, 임의의 임의 또는 펄스 코드북 스테이지들이 통상의 인코딩에 이용되는지가 판정된다(820). 만일 그렇다면, 최후로 현존하는 임의 또는 펄스 코드북 스테이지들(이를테면 도 4의 임의 코드북 스테이지 n)의 수정된 이득이 해당 코드북 스테이지의 기여와 목표 신호 간의 오차를 최소화하도록 최적화된다(830). 이 최적화를 위한 목표 신호는 잔여 신호와 임의의 이전 임의 코드북 스테이지들의 기여들(즉, 모든 이전 코드북 스테이지들, 다만 이전 프레임들의 세그먼트들로부터의 적응 코드북 기여는 제로(0)로 설정됨)의 합 간의 차이이다.
여분의 임의 코드북 스테이지의 인덱스 및 이득 파라미터들은 유사하게 해당 코드북의 기여와 목표 신호 간의 오차를 최소화하도록 최적화된다(840). 여분의 임의 코드북 스테이지에 대한 목표 신호는 잔여 신호와 적응 코드북, 펄스 코드북(만일 있다면) 및 임의의 통상의 임의 코드북들(최후로 현존하는 통상의 임의 또는 펄스 코드북은 수정된 이득을 가짐)의 기여들의 합 간의 차이이다. 최후로 현존하는 통상의 임의 또는 펄스 코드북의 수정된 이득 및 여분의 임의 코드북 스테이지의 이득은 개별적으로 또는 합동으로 최적화될 수 있다.
통상의 디코딩 모드에 있을 때, 디코더는 여분의 임의 코드북 스테이지를 이용하지 않고, 상기 설명에 따라서 신호를 디코딩한다(예를 들면, 도 6에서와 같이).
도 9A는 적응 코드북 인덱스가 손실된 이전 프레임의 세그먼트를 가리킬 때 여분의 코드북 스테이지를 이용할 수 있는 부대역 디코더를 예시한다. 골격 구조(framework)는 일반적으로 위에서 설명되고 도 6에 예시된 디코딩 골격구조와 동일하고, 도 9의 부대역 디코더(900)의 대응하는 컴포넌트들 및 신호들 중 다수의 기능들은 도 6의 대응하는 컴포넌트들 및 신호들과 동일하다. 예를 들면, 인코딩된 부대역 정보(992)가 수신되고, LPC 처리 컴포넌트(935)는 그 정보를 이용하여 선형 예측 계수들(938)을 재구성하고 그 계수들을 합성 필터(940)에 공급한다. 그러나, 이전의 프레임이 손실된 경우, 리셋 컴포넌트(996)가 제로 이력 컴포넌트(zero history component)(994)에게 손실된 프레임에 대하여 여기 이력을 제로로 설정하도록 신호하고 그 이력을 적응 코드북(970)에 공급한다. 이득(980)은 적응 코드북의 기여에 적용된다. 따라서 적응 코드북(970)은 그것의 인덱스가 손실된 프레임에 대한 이력 버퍼를 가리킬 때는 제로 기여를 갖지만, 그것의 인덱스가 현 프레임 내의 세그먼트를 가리킬 때는 제로가 아닌 어떤 기여(some non-zero contribution)를 가질 수 있다. 고정 코드북 스테이지들(972, 974, 976)은 부대역 정보(992)와 함께 수신된 그들의 통상의 인덱스들을 적용한다. 유사하게, 최후의 통상 코드북 이득 컴포넌트(986)를 제외하고, 고정 코드북 이득 컴포넌트들(982, 984)은, 그들의 통상의 이득을 적용하여 여기 신호(990)에의 그들 각각의 기여들을 생성한다.
만일 여분의 임의 코드북 스테이지(988)가 이용 가능하고 이전의 프레임이 손실되었다면, 리셋 컴포넌트(996)는 통상의 이득(986)을 갖는 최후의 통상 코드북 스테이지(976)의 기여를 합산되도록 통과시키는 것이 아니라, 수정된 이득(987)을 갖는 최후의 통상 코드북 스테이지(976)의 기여를 다른 코드북 기여들과 합산되도록 통과시키도록 스위치(998)에 신호한다. 수정된 이득은 여기 이력이 이전 프레임에 대하여 제로로 설정되어 있는 상황에 대하여 최적화된다. 또한, 여분의 코드북 스테이지(978)는 대응하는 코드북에서 임의 코드북 모델 신호의 세그먼트를 지시하도록 그것의 인덱스를 적용하고, 임의 코드북 이득 컴포넌트(988)는 해당 세그먼트에 여분의 임의 코드북 스테이지에 대한 이득을 적용한다. 스위치(998)는 결과의 여분의 코드북 스테이지 기여를 이전 코드북 스테이지들(970, 972, 974, 976)의 기여들과 합산되어 여기 신호(990)를 생성하도록 통과시킨다. 따라서, 여분의 임의 코드북 스테이지에 대한 리던던트 정보(이를테면 여분의 스테이지 인덱스 및 이득) 및 (최후의 메인 임의 코드북 스테이지에 대한 통상의 이득 대신에 이용되는) 최후의 메인 임의 코드북 스테이지의 수정된 이득은 현 프레임을 알려진 상태로 빠르게 리셋하는 데 이용된다. 대안적으로, 통상의 이득은 최후의 메인 임의 코드북 스테이지에 대하여 이용되고 및/또는 어떤 다른 파라미터들은 여분의 스테이지 임의 코드북을 신호화하는 데 이용된다.
여분의 코드북 스테이지는 매우 적은 수의 비트를 필요로 하므로 그것의 이용을 위한 비트 레이트 페널티는 통상적으로 사소하다. 한편, 프레임간 의존성이 존재할 때 프레임 손실로 인한 품질 열화를 현저히 줄일 수 있다.
도 9B는 도 9A에 예시된 것과 유사하지만, 통상의 임의 코드북 스테이지는 없는 부대역 디코더를 예시한다. 따라서, 이 구현에서는, 수정된 이득(987)은 이전의 손실된 프레임에 대한 잔여 이력이 제로로 설정되는 경우 펄스 코드북(972)에 대하여 최적화된다. 따라서, 프레임이 손실된 경우, (이전의 손실된 프레임에 대한 잔여 이력이 제로로 설정된) 적응 코드북(970), (수정된 이득을 갖는) 펄스 코드북(972), 및 여분의 임의 코드북 스테이지(978)의 기여들이 합산되어 여기 신호(990)를 생성한다.
손실된 프레임에 대한 잔여 이력이 제로로 설정된 상황에 대하여 최적화되는 여분의 스테이지 코드북은 코드북들의 다수의 상이한 구현들 및 조합들 및/또는 다른 표현의 잔여 신호들과 함께 사용될 수 있다.
D. 리던던트 코딩 기법들 간의 절충
위에서 논의된 3가지 리던던트 코딩 기법들 각각은 다른 것들에 비하여 이점들 및 불리점들을 가질 수 있다. 표 3은 이들 3가지 리던던트 코딩 기법들 간의 절충들 중 일부라고 생각되는 것에 대한 어떤 일반화된 결론들을 보여준다. 비트 레이트 페널티는 기법을 이용하는 데 필요한 비트들의 양을 나타낸다. 예를 들면, 통상의 인코딩/디코딩에서와 같이 동일한 비트 레이트가 이용된다고 가정하여, 보다 높은 비트 레이트 페널티는 통상의 디코딩 중에 보다 낮은 품질에 대응하는데, 그 이유는 리던던트 코딩을 위하여 보다 많은 비트들이 이용되고 따라서 통상의 인코딩된 정보에 대하여 보다 적은 수의 비트가 이용될 수 있기 때문이다. 메모리 의존성을 감소시키는 효율은 하나 이상의 이전 프레임들이 손실되었을 때 결과의 음성 출력의 품질을 개선하는 데 있어서의 기법의 효율을 나타낸다. 이전 프레임(들)을 복구하기 위한 유용성은 하나 이상의 이전의 프레임(들)이 손실되었을 때 그 이전 프레임(들)을 복구하기 위해 리던던트하게 코딩된 정보를 이용하는 능력을 나타낸다. 표 내의 결론들은 일반화되어 있어, 특정 구현들에서는 적용되지 않을 수 있다.
리던던트 코딩 기법들 간의 절충
제1 ACB 이력 인코딩 제2 ACB 이력 인코딩 여분의 코드북 스테이지
비트 레이트 페널티 높음 중간 낮음
메모리 의존성을 감소시키는 효율 가장 양호 양호 매우 양호
이전 프레임(들)을 복구하기 위한 유용성 양호 양호 없음
인코더는 인코딩의 진행 중에(on the fly during encoding) 임의의 프레임에 대하여 리던던트 코딩 방식들 중 임의의 것을 선택할 수 있다. 리던던트 코딩은 어떤 부류의 프레임들에 대해서는 전혀 이용되지 않을 수도 있고(예컨대, 유성음 프레임들에 대해서는 이용되고, 묵음 또는 무성음 프레임들에 대해서는 이용되지 않음), 만일 이용된다면 그것은 각 프레임에 대하여, 매 10개의 프레임마다와 같이 주기적으로, 또는 어떤 다른 기준으로 이용될 수 있다. 이것은 상기 절충, 이용 가능한 채널 대역폭, 및 패킷 손실 상태에 관한 디코더 피드백과 같은 인자들을 고려하여, 레이트 제어 컴포넌트와 같은 컴포넌트에 의해 제어될 수 있다.
E. 리던던트 코딩 비트 스트림 포맷
리던던트 코딩 정보는 비트 스트림에서 여러 가지 상이한 포맷으로 송신될 수 있다. 다음은 상술한 리던던트 코딩된 정보를 송신하고 그것의 존재를 디코더에 신호하기 위한 포맷의 구현이다. 이 구현에서는, 비트 스트림 내의 각 프레임은 프레임 유형(frame type)이라 불리는 2비트 필드로 시작된다. 프레임 유형은 다음에 오는 비트들에 대한 리던던트 코딩 모드를 식별하는 데 이용되고, 그것은 또한 인코딩 및 디코딩에서 다른 목적들을 위하여 이용될 수도 있다. 표 4는 프레임 유형 필드의 리던던트 코딩 모드 의미를 제공한다.
프레임 유형 비트들에 대한 설명
프레임 유형 비트 리던던트 코딩 모드
00 없음(통상의 프레임)
01 여분의 코드북 스테이지
10 제1 ACB 이력 인코딩
11 제2 ACB 이력 인코딩
도 10은 통상의 프레임의 존재 및/또는 각각의 리던던트 코딩 유형들을 신호하는 비트 스트림 프레임 포맷의 이들 코드들의 4가지 상이한 조합을 보여준다. 리던던트 코딩 비트들이 없이 프레임에 대한 메인 인코딩된 정보를 포함하는 통상의 프레임(1010)에서는, 프레임의 맨 처음의 바이트 경계(1015)에 이어서 프레임 유형 코드 00이 뒤따른다. 이 프레임 유형 코드에 이어서 통상의 프레임에 대한 메인 인코딩된 정보가 뒤따른다.
제1 적응 코드북 이력 리던던트 코딩된 정보를 갖는 프레임(1020)에서는, 프레임의 맨 처음의 바이트 경계(1025)에 이어서 프레임 유형 코드 10이 뒤따르고, 이것은 프레임에 대한 제1 적응 코드북 이력 정보의 존재를 신호화한다. 프레임 유형 코드에 이어서 메인 인코딩된 정보 및 적응 코드북 이력 정보를 갖는 프레임에 대한 코딩된 유닛이 뒤따른다.
프레임(1030)에 대하여 제2 이력 리던던트 코딩된 정보가 포함되는 경우, 프레임의 맨 처음의 바이트 경계(1035)에 이어서 프레임 유형 코드 00(통상 프레임에 대한 코드)을 포함하는 코딩된 유닛이 뒤따르고 그에 이어서 통상 프레임에 대한 메인 인코딩된 정보가 뒤따른다. 그러나, 메인 인코딩된 정보의 맨 끝의 바이트 경계(1045)에 이어서, 또 다른 코딩된 유닛은 (프레임에 대한 메인 코딩된 정보가 아니라) 옵션인 제2 이력 정보(1040)를 지시하는 프레임 유형 코드 11을 포함한다. 이 제2 이력 정보(1040)는 이전 프레임이 손실된 경우에만 이용되기 때문에, 패킷화기(packetizer) 또는 다른 컴포넌트들에 이 정보를 생략하는 옵션이 주어질 수 있다. 이것은 전체 비트 레이트가 감소될 필요가 있는 경우, 패킷 손실 레이트가 낮은 경우, 또는 이전의 프레임이 현 프레임을 갖는 패킷에 포함되는 경우와 같은, 여러 가지 이유로 행해질 수 있다. 또는, 디멀티플렉서 또는 다른 컴포넌트에 통상의 프레임(1030)이 성공적으로 수신될 때 제2 이력 정보를 건너뛰는 옵션이 주어질 수 있다.
유사하게, 프레임(1050)에 대하여 여분의 코드북 스테이지 리던던트 코딩된 정보가 포함되는 경우, 코딩된 유닛의 맨 처음의 바이트 경계(1055)에 이어서 프레임 유형 코드 00(통상의 프레임에 대한 코드)이 뒤따르고 그에 이어서 통상의 프레임에 대한 메인 인코딩된 정보가 뒤따른다. 그러나, 메인 인코딩된 정보의 맨 끝의 바이트 경계(1065)에 이어서, 또 다른 코딩된 유닛은 옵션인 여분의 코드북 스테이지 정보(1060)가 다음에 올 것임을 지시하는 프레임 유형 코드 01을 포함한다. 제2 이력 정보와 마찬가지로, 이 여분의 코드북 스테이지 정보(1060)는 이전의 프레임이 손실된 경우에만 이용된다. 따라서, 제2 이력 정보와 마찬가지로, 패킷화기 또는 다른 컴포넌트에 이 여분의 코드북 스테이지 정보를 생략하는 옵션이 주어질 수 있고, 또는 디멀티플렉서 또는 다른 컴포넌트에 이 여분의 코드북 스테이지 정보를 건너뛰는 옵션이 주어질 수 있다.
애플리케이션(예컨대, 전송 계층 패킷화를 취급하는 애플리케이션)이 패킷 헤더들에 필요한 여분의 비트들을 줄이기 위해 복수의 프레임들을 함께 결합하여 보다 큰 패킷을 형성하기로 결정할 수도 있다. 패킷 내에서, 애플리케이션은 비트 스트림을 스캔함으로써 프레임 경계들을 판정할 수 있다.
도 11은 4개의 프레임(1110, 1120, 1130, 1140)을 갖는 단일 패킷(1100)의 가능한 비트 스트림을 보여준다. 단일 패킷 내의 모든 프레임들은 그것들 중 무엇이든 수신되면 수신될 것이고(즉, 부분적인 데이터 훼손이 없음), 또한 적응 코드북 지체, 또는 피치가 통상적으로 프레임 길이보다 작다고 가정될 수 있다. 이 예에서, 프레임 2(1120), 프레임 3(1130), 및 프레임 4(1140)에 대한 임의의 옵션인 리던던트 코딩 정보는 통상적으로 이용되지 않을 것이다. 그 이유는 현재의 프레임이 존재하면 이전의 프레임은 항상 존재할 것이기 때문이다. 따라서, 패킷(1100) 내의 제1 프레임을 제외한 모든 프레임들에 대한 옵션인 리던던트 코딩 정보는 제거될 수 있다. 이 결과로 응축된 패킷(condensed packet)(1150)이 생기고, 여기서 프레임 1(1160)은 옵션인 여분의 코드북 스테이지 정보를 포함하지만, 나머지 프레임들(1170, 1180, 1190)로부터는 모든 옵션인 리던던트 코딩 정보가 제거되었다.
만일 인코더가 제1 이력 리던던트 코딩 기법을 이용하고 있다면, 애플리케이션은 프레임들을 함께 단일 패킷으로 패킹할 때 임의의 그러한 비트들을 누락(drop)시키지 않을 것이다. 그 이유는 제1 이력 리던던트 코딩 정보는 이전의 프레임이 손실되었든 그렇지 않든 이용되기 때문이다. 그러나, 애플리케이션은 그러한 프레임이 멀티프레임 패킷 내에 있을 것이고, 또한 그것이 그러한 패킷 내의 제1 프레임이 아닐 것임을 알면 그러한 프레임을 통상의 프레임으로서 인코딩하도록 인코더에게 강제할 수 있다.
도 10 및 11 및 그에 수반한 설명은 프레임들 간의 바이트 정렬된(byte-aligned) 경계들 및 정보의 유형들을 보여주지만, 대안적으로, 그 경계들은 바이트 정렬되지 않는다. 또한, 도 10 및 11 및 그에 수반한 설명은 예시적인 프레임 유형 코드들 프레임 유형들의 조합들을 보여준다. 대안적으로, 인코더 및 디코더는 다른 및/또는 추가적인 프레임 유형들 또는 프레임 유형들의 조합들을 이용한다.
설명된 실시예들을 참조하여 본 발명의 원리들을 설명하고 예시하였지만, 설명된 실시예들은 그러한 원리들에서 벗어나지 않고 배열 및 상세에서 변경될 수 있다는 것을 인지할 것이다. 여기에서 설명된 프로그램들, 프로세서들, 또는 방법들은, 다르게 지시되지 않는 한, 임의의 특정 유형의 컴퓨팅 환경에 관련되거나 그 환경에 제한되지 않는다. 각종 유형의 범용 또는 전문화된 컴퓨팅 환경들이 여기에서 설명된 교시 내용에 따른 동작들과 함께 이용되거나 또는 그러한 동작들을 수행할 수 있다. 소프트웨어로 나타낸 설명된 실시예들의 엘리먼트들은 하드웨어로 구현될 수 있고 그 반대도 가능하다.

Claims (20)

  1. 오디오 처리 수단에서 오디오 신호용의 비트 스트림을 처리하는 단계 - 상기 비트 스트림은, 현 프레임을 디코딩하는 데 이용되는 이전 프레임의 세그먼트를 참조하는 현 프레임에 대한 메인 코딩된 정보(main coded information)와; 상기 현 프레임을 디코딩하기 위한 리던던트 코딩된 정보(redundant coded information)를 포함하고, 상기 리던던트 코딩된 정보는 상기 참조되는 이전 프레임의 세그먼트와 관련된 신호 이력 정보(signal history information)를 포함함 - 와;
    결과를 출력하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 오디오 처리 수단은 실시간 음성 인코더이고, 상기 결과는 인코딩된 음성인 방법.
  3. 제1항에 있어서, 상기 신호 이력 정보는 상기 참조되는 세그먼트에 대한 여기 이력(excitation history)을 포함하고 상기 이전 프레임의 하나 이상의 참조되지 않는 세그먼트들에 대한 여기 이력 정보는 포함하지 않는 방법.
  4. 제1항에 있어서, 상기 오디오 처리 수단은 음성 디코더이고, 상기 처리하는 단계는 상기 이전 프레임이 상기 디코더에 이용 가능하든 불가능하든 상기 현 프레 임을 디코딩하는 데 상기 리던던트 코딩된 정보를 이용하는 단계를 포함하는 방법.
  5. 제1항에 있어서, 상기 오디오 처리 수단은 음성 디코더이고, 상기 처리하는 단계는 상기 이전 프레임이 상기 디코더에 이용 불가능한 경우에만 상기 현 프레임을 디코딩하는 데 상기 리던던트 코딩된 정보를 이용하는 단계를 포함하는 방법.
  6. 제1항에 있어서, 상기 신호 이력 정보는, 적어도 부분적으로, 상기 현 프레임을 디코딩하는 데 상기 리던던트 코딩된 정보의 이용 가능성에 따라서 설정된 품질 레벨로 코딩되는 방법.
  7. 제1항에 있어서, 상기 오디오 처리 수단은 음성 디코더이고, 상기 처리하는 단계는 상기 이전 프레임이 상기 디코더에 이용 불가능한 경우에 상기 이전 프레임을 디코딩하는 데 상기 리던던트 코딩된 정보를 이용하는 단계를 포함하는 방법.
  8. 오디오 처리 수단에서 오디오 신호용의 비트 스트림을 처리하는 단계 - 상기 비트 스트림은, 현 프레임을 디코딩하는 데 이용되는 이전 코딩된 유닛의 세그먼트를 참조하는 현 코딩된 유닛에 대한 메인 코딩된 정보와; 상기 현 코딩된 유닛을 디코딩하기 위한 리던던트 코딩된 정보을 포함하고, 상기 리던던트 코딩된 정보는 상기 이전 코딩된 유닛이 이용 불가능한 경우에만 상기 현 코딩된 유닛을 디코딩하는 데 이용되는 하나 이상의 여분의 코드북 스테이지들(extra codebook stages)에 대한 하나 이상의 파라미터들을 포함함 - 와;
    결과를 출력하는 단계
    를 포함하는 방법.
  9. 제8항에 있어서, 상기 현 코딩된 유닛에 대한 메인 코딩된 정보는 상기 현 코딩된 유닛에 대한 재구성과 상기 현 코딩된 유닛에 대한 예측 간의 하나 이상의 차이를 나타내는 잔여 신호 파라미터들을 포함하는 방법.
  10. 제8항에 있어서,
    상기 오디오 처리 수단은 오디오 인코더이고;
    상기 비트 스트림을 처리하는 단계는 옵션인 리던던트 코딩된 정보(optional redundant coded information)를 생성하는 단계를 포함하고, 상기 옵션인 리던던트 코딩된 정보를 생성하는 단계는 상기 이전 코딩된 유닛에 대한 여기 정보가 없다고 가정하는 폐쇄 루프 인코더 검색에서 상기 하나 이상의 여분의 코드북 스테이지들에 대한 상기 하나 이상의 파라미터들을 결정하는 단계를 포함하는 방법.
  11. 제8항에 있어서,
    상기 오디오 처리 수단은 음성 디코더이고;
    상기 이전 코딩된 유닛이 상기 디코더에 이용 불가능하면, 상기 코드북에 대한 상기 하나 이상의 파라미터들은 상기 디코더에 의해 상기 현 코딩된 유닛을 디 코딩하는 데 이용되고;
    상기 이전 코딩된 유닛이 상기 디코더에 이용 가능하면, 상기 코드북에 대한 상기 하나 이상의 파라미터들은 상기 디코더에 의해 상기 현 코딩된 유닛을 디코딩하는 데 이용되지 않는 방법.
  12. 제8항에 있어서, 상기 코드북은 적응 코드북 스테이지에 후속하는 고정 코드북 스테이지(fixed codebook stage)에서의 고정 코드북이고, 상기 하나 이상의 여분의 코드북 스테이지들에 대한 상기 하나 이상의 파라미터들은 코드북 인덱스 및 이득을 포함하는 방법.
  13. 제12항에 있어서, 상기 적응 코드북 스테이지에서의 적응 코드북에 대한 하나 이상의 파라미터들은 상기 이전 코딩된 유닛에 대한 여기 이력을 참조하여 상기 현 코딩된 유닛에 대한 여기 신호를 나타내지만, 상기 고정 코드북에 대한 상기 하나 이상의 파라미터들은 상기 여기 이력을 참조하지 않고 상기 여기 신호를 나타내는 방법.
  14. 제8항에 있어서,
    상기 오디오 처리 수단은 오디오 디코더이고;
    상기 비트 스트림을 처리하는 단계는,
    상기 이전 코딩된 유닛이 이용 불가능하면, 상기 현 코딩된 유닛을 디코딩하 는 데 상기 메인 코딩된 정보 및 상기 하나 이상의 여분의 코드북 스테이지들에 대한 상기 하나 이상의 파라미터들의 적어도 일부를 이용하는 단계와;
    상기 이전 코딩된 유닛이 이용 가능하면, 상기 현 코딩된 유닛을 디코딩하는 데, 상기 메인 코딩된 정보는 이용하지만, 상기 하나 이상의 여분의 코드북 스테이지들에 대한 상기 하나 이상의 파라미터들은 이용하지 않는 단계를 포함하는 방법.
  15. 오디오 처리 수단에서 복수의 코딩된 오디오 유닛들을 포함하는 비트 스트림을 처리하는 단계를 포함하고, 상기 복수의 코딩된 유닛들의 각 코딩된 유닛은, 상기 코딩된 유닛이 오디오 신호의 세그먼트를 나타내는 메인 인코딩된 정보를 포함하는지 여부; 및 상기 코딩된 유닛이 메인 인코딩된 정보를 디코딩하는 데 사용하기 위한 리던던트 코딩된 정보를 포함하는지 여부를 지시하는 필드를 포함하는 방법.
  16. 제15항에 있어서, 각 코딩된 유닛에 대한 상기 필드는 상기 코딩된 유닛이, 메인 인코딩된 정보 및 리던던트 코딩된 정보 둘 다를 포함하는지; 메인 인코딩된 정보는 포함하지만, 리던던트 코딩된 정보는 포함하지 않는지; 또는 리던던트 코딩된 정보는 포함하지만, 메인 인코딩된 정보는 포함하지 않는지를 지시하는 방법.
  17. 제15항에 있어서, 상기 처리하는 단계는 상기 복수의 코딩된 유닛들 중 적어도 일부를 패킷화(packetizing)하는 단계를 포함하고, 대응하는 메인 인코딩된 정 보에 대한 리던던트 코딩된 정보는 포함하지만 상기 대응하는 메인 인코딩된 정보는 포함하지 않는 각 패킷화된 코딩된 유닛이 상기 대응하는 메인 인코딩된 정보와 함께 패킷에 포함되는 방법.
  18. 제15항에 있어서, 상기 처리하는 단계는 상기 복수의 코딩된 유닛들 중 현 코딩된 유닛 내의 리던던트 코딩된 정보가 옵션인지를 판정하는 단계를 포함하는 방법.
  19. 제18항에 있어서, 상기 처리하는 단계는 상기 현 코딩된 유닛 내의 상기 리던던트 코딩된 정보가 옵션이면 상기 현 코딩된 유닛 내의 상기 리던던트 코딩된 정보를 패킷화할지를 판정하는 단계를 더 포함하는 방법.
  20. 제15항에 있어서, 상기 복수의 코딩된 유닛들 중 현 코딩된 유닛이 리던던트 코딩된 유닛을 포함하면, 상기 현 코딩된 유닛에 대한 상기 필드는 상기 현 코딩된 유닛에 대한 상기 리던던트 코딩된 정보의 분류를 지시하는 방법.
KR1020077026294A 2005-05-31 2006-04-05 비트 스트림 처리 방법 KR101238583B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/142,605 2005-05-31
US11/142,605 US7177804B2 (en) 2005-05-31 2005-05-31 Sub-band voice codec with multi-stage codebooks and redundant coding
PCT/US2006/012686 WO2006130229A1 (en) 2005-05-31 2006-04-05 Sub-band voice codec with multi-stage codebooks and redundant coding

Publications (2)

Publication Number Publication Date
KR20080009205A true KR20080009205A (ko) 2008-01-25
KR101238583B1 KR101238583B1 (ko) 2013-02-28

Family

ID=37464576

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077026294A KR101238583B1 (ko) 2005-05-31 2006-04-05 비트 스트림 처리 방법

Country Status (19)

Country Link
US (4) US7177804B2 (ko)
EP (2) EP1886306B1 (ko)
JP (2) JP5123173B2 (ko)
KR (1) KR101238583B1 (ko)
CN (2) CN101996636B (ko)
AT (1) ATE492014T1 (ko)
AU (1) AU2006252965B2 (ko)
BR (1) BRPI0610909A2 (ko)
CA (1) CA2611829C (ko)
DE (1) DE602006018908D1 (ko)
ES (1) ES2358213T3 (ko)
HK (1) HK1123621A1 (ko)
IL (1) IL187196A (ko)
NO (1) NO339287B1 (ko)
NZ (1) NZ563462A (ko)
PL (1) PL1886306T3 (ko)
RU (1) RU2418324C2 (ko)
TW (1) TWI413107B (ko)
WO (1) WO2006130229A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160072145A (ko) * 2013-10-11 2016-06-22 퀄컴 인코포레이티드 리던던트 프레임 정보를 통신하는 시스템들 및 방법들
KR20180077168A (ko) * 2015-10-29 2018-07-06 퀄컴 인코포레이티드 패킷의 프라이머리 코딩을 디코딩할지 또는 리던던트 코딩을 디코딩할지를 표시하는 시그널링 정보를 베어링하는 패킷

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7315815B1 (en) * 1999-09-22 2008-01-01 Microsoft Corporation LPC-harmonic vocoder with superframe structure
US7698132B2 (en) * 2002-12-17 2010-04-13 Qualcomm Incorporated Sub-sampled excitation waveform codebooks
US20050004793A1 (en) * 2003-07-03 2005-01-06 Pasi Ojala Signal adaptation for higher band coding in a codec utilizing band split coding
FR2867648A1 (fr) * 2003-12-10 2005-09-16 France Telecom Transcodage entre indices de dictionnaires multi-impulsionnels utilises en codage en compression de signaux numeriques
US7668712B2 (en) * 2004-03-31 2010-02-23 Microsoft Corporation Audio encoding and decoding with intra frames and adaptive forward error correction
CN1989548B (zh) * 2004-07-20 2010-12-08 松下电器产业株式会社 语音解码装置及补偿帧生成方法
EP1775718A4 (en) * 2004-07-22 2008-05-07 Fujitsu Ltd AUDIOCODING DEVICE AND AUDIOCODING METHOD
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
US7831421B2 (en) * 2005-05-31 2010-11-09 Microsoft Corporation Robust decoder
KR101171098B1 (ko) * 2005-07-22 2012-08-20 삼성전자주식회사 혼합 구조의 스케일러블 음성 부호화 방법 및 장치
US20070058530A1 (en) * 2005-09-14 2007-03-15 Sbc Knowledge Ventures, L.P. Apparatus, computer readable medium and method for redundant data stream control
US7664091B2 (en) * 2005-10-03 2010-02-16 Motorola, Inc. Method and apparatus for control channel transmission and reception
KR100647336B1 (ko) * 2005-11-08 2006-11-23 삼성전자주식회사 적응적 시간/주파수 기반 오디오 부호화/복호화 장치 및방법
US8611300B2 (en) * 2006-01-18 2013-12-17 Motorola Mobility Llc Method and apparatus for conveying control channel information in OFDMA system
KR101366124B1 (ko) * 2006-02-14 2014-02-21 오렌지 오디오 인코딩/디코딩에서의 인지 가중 장치
US8306827B2 (en) * 2006-03-10 2012-11-06 Panasonic Corporation Coding device and coding method with high layer coding based on lower layer coding results
KR100900438B1 (ko) * 2006-04-25 2009-06-01 삼성전자주식회사 음성 패킷 복구 장치 및 방법
DE102006022346B4 (de) * 2006-05-12 2008-02-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Informationssignalcodierung
US8712766B2 (en) * 2006-05-16 2014-04-29 Motorola Mobility Llc Method and system for coding an information signal using closed loop adaptive bit allocation
US9515843B2 (en) * 2006-06-22 2016-12-06 Broadcom Corporation Method and system for link adaptive Ethernet communications
WO2008002098A1 (en) * 2006-06-29 2008-01-03 Lg Electronics, Inc. Method and apparatus for an audio signal processing
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
US9454974B2 (en) * 2006-07-31 2016-09-27 Qualcomm Incorporated Systems, methods, and apparatus for gain factor limiting
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
US20080084853A1 (en) 2006-10-04 2008-04-10 Motorola, Inc. Radio resource assignment in control channel in wireless communication systems
US7778307B2 (en) * 2006-10-04 2010-08-17 Motorola, Inc. Allocation of control channel for radio resource assignment in wireless communication systems
WO2008064697A1 (en) * 2006-11-29 2008-06-05 Loquendo S.P.A. Multicodebook source -dependent coding and decoding
US8688437B2 (en) 2006-12-26 2014-04-01 Huawei Technologies Co., Ltd. Packet loss concealment for speech coding
US8000961B2 (en) * 2006-12-26 2011-08-16 Yang Gao Gain quantization system for speech coding to improve packet loss concealment
FR2911228A1 (fr) * 2007-01-05 2008-07-11 France Telecom Codage par transformee, utilisant des fenetres de ponderation et a faible retard.
CN101622663B (zh) * 2007-03-02 2012-06-20 松下电器产业株式会社 编码装置以及编码方法
US20080249783A1 (en) * 2007-04-05 2008-10-09 Texas Instruments Incorporated Layered Code-Excited Linear Prediction Speech Encoder and Decoder Having Plural Codebook Contributions in Enhancement Layers Thereof and Methods of Layered CELP Encoding and Decoding
EP2381580A1 (en) * 2007-04-13 2011-10-26 Global IP Solutions (GIPS) AB Adaptive, scalable packet loss recovery
US20090006081A1 (en) * 2007-06-27 2009-01-01 Samsung Electronics Co., Ltd. Method, medium and apparatus for encoding and/or decoding signal
KR101403340B1 (ko) * 2007-08-02 2014-06-09 삼성전자주식회사 변환 부호화 방법 및 장치
CN101170554B (zh) * 2007-09-04 2012-07-04 萨摩亚商·繁星科技有限公司 资讯安全传递系统
US8422480B2 (en) * 2007-10-01 2013-04-16 Qualcomm Incorporated Acknowledge mode polling with immediate status report timing
CN101874266B (zh) * 2007-10-15 2012-11-28 Lg电子株式会社 用于处理信号的方法和装置
EP2224432B1 (en) * 2007-12-21 2017-03-15 Panasonic Intellectual Property Corporation of America Encoder, decoder, and encoding method
US8190440B2 (en) * 2008-02-29 2012-05-29 Broadcom Corporation Sub-band codec with native voice activity detection
EP2269188B1 (en) * 2008-03-14 2014-06-11 Dolby Laboratories Licensing Corporation Multimode coding of speech-like and non-speech-like signals
JP4506870B2 (ja) * 2008-04-30 2010-07-21 ソニー株式会社 受信装置および受信方法、並びにプログラム
US20090319263A1 (en) * 2008-06-20 2009-12-24 Qualcomm Incorporated Coding of transitional speech frames for low-bit-rate applications
US20090319261A1 (en) * 2008-06-20 2009-12-24 Qualcomm Incorporated Coding of transitional speech frames for low-bit-rate applications
US8768690B2 (en) * 2008-06-20 2014-07-01 Qualcomm Incorporated Coding scheme selection for low-bit-rate applications
US20100027524A1 (en) * 2008-07-31 2010-02-04 Nokia Corporation Radio layer emulation of real time protocol sequence number and timestamp
US8706479B2 (en) * 2008-11-14 2014-04-22 Broadcom Corporation Packet loss concealment for sub-band codecs
US8156530B2 (en) 2008-12-17 2012-04-10 At&T Intellectual Property I, L.P. Method and apparatus for managing access plans
KR101622950B1 (ko) * 2009-01-28 2016-05-23 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법 및 그 장치
BR112012007138B1 (pt) 2009-09-29 2021-11-30 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Decodificador de sinal de áudio, codificador de sinal de áudio, método para prover uma representação de mescla ascendente de sinal, método para prover uma representação de mescla descendente de sinal e fluxo de bits usando um valor de parâmetro comum de correlação intra- objetos
KR20140032013A (ko) * 2009-10-07 2014-03-13 니폰덴신뎅와 가부시키가이샤 무선 통신 시스템, 무선 중계국 장치, 무선 단말국 장치 및 무선 통신 방법
CN102714034B (zh) * 2009-10-15 2014-06-04 华为技术有限公司 信号处理的方法、装置和系统
TWI484473B (zh) * 2009-10-30 2015-05-11 Dolby Int Ab 用於從編碼位元串流擷取音訊訊號之節奏資訊、及估算音訊訊號之知覺顯著節奏的方法及系統
PT2559028E (pt) * 2010-04-14 2015-11-18 Voiceage Corp Livro de códigos de inovação combinados flexível e evolutivo a utilizar num codificador e descodificador celp
US8660195B2 (en) * 2010-08-10 2014-02-25 Qualcomm Incorporated Using quantized prediction memory during fast recovery coding
MY156027A (en) 2010-08-12 2015-12-31 Fraunhofer Ges Forschung Resampling output signals of qmf based audio codecs
JP5749462B2 (ja) * 2010-08-13 2015-07-15 株式会社Nttドコモ オーディオ復号装置、オーディオ復号方法、オーディオ復号プログラム、オーディオ符号化装置、オーディオ符号化方法、及び、オーディオ符号化プログラム
ES2600313T3 (es) 2010-10-07 2017-02-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Aparato y método para la estimación de nivel de tramas de audio codificadas en un dominio de flujo de bits
US9767822B2 (en) * 2011-02-07 2017-09-19 Qualcomm Incorporated Devices for encoding and decoding a watermarked signal
US9767823B2 (en) 2011-02-07 2017-09-19 Qualcomm Incorporated Devices for encoding and detecting a watermarked signal
US8976675B2 (en) * 2011-02-28 2015-03-10 Avaya Inc. Automatic modification of VOIP packet retransmission level based on the psycho-acoustic value of the packet
US9171549B2 (en) 2011-04-08 2015-10-27 Dolby Laboratories Licensing Corporation Automatic configuration of metadata for use in mixing audio programs from two encoded bitstreams
NO2669468T3 (ko) * 2011-05-11 2018-06-02
WO2012161675A1 (en) * 2011-05-20 2012-11-29 Google Inc. Redundant coding unit for audio codec
US8909539B2 (en) * 2011-12-07 2014-12-09 Gwangju Institute Of Science And Technology Method and device for extending bandwidth of speech signal
US9275644B2 (en) * 2012-01-20 2016-03-01 Qualcomm Incorporated Devices for redundant frame coding and decoding
US9373335B2 (en) * 2012-08-31 2016-06-21 Dolby Laboratories Licensing Corporation Processing audio objects in principal and supplementary encoded audio signals
JP6173484B2 (ja) 2013-01-08 2017-08-02 ドルビー・インターナショナル・アーベー 臨界サンプリングされたフィルタバンクにおけるモデル・ベースの予測
RU2602332C1 (ru) * 2013-01-21 2016-11-20 Долби Лабораторис Лайсэнзин Корпорейшн Перекодировка метаданных
CN107257234B (zh) * 2013-01-21 2020-09-15 杜比实验室特许公司 解码具有保留数据空间中的元数据容器的编码音频比特流
TWM487509U (zh) 2013-06-19 2014-10-01 杜比實驗室特許公司 音訊處理設備及電子裝置
PL3011555T3 (pl) 2013-06-21 2018-09-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Rekonstrukcja ramki sygnału mowy
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
CN109785851B (zh) 2013-09-12 2023-12-01 杜比实验室特许公司 用于各种回放环境的动态范围控制
CN104751849B (zh) 2013-12-31 2017-04-19 华为技术有限公司 语音频码流的解码方法及装置
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
CN107369454B (zh) * 2014-03-21 2020-10-27 华为技术有限公司 语音频码流的解码方法及装置
LT3511935T (lt) * 2014-04-17 2021-01-11 Voiceage Evs Llc Būdas, įrenginys ir kompiuteriu nuskaitoma neperkeliama atmintis garso signalų tiesinės prognozės kodavimui ir dekodavimui po perėjimo tarp kadrų su skirtingais mėginių ėmimo greičiais
EP2963648A1 (en) 2014-07-01 2016-01-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio processor and method for processing an audio signal using vertical phase correction
US9893835B2 (en) * 2015-01-16 2018-02-13 Real-Time Innovations, Inc. Auto-tuning reliability protocol in pub-sub RTPS systems
WO2017050398A1 (en) * 2015-09-25 2017-03-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder, decoder and methods for signal-adaptive switching of the overlap ratio in audio transform coding
AR106308A1 (es) 2015-10-08 2018-01-03 Dolby Int Ab Codificación en capas para representaciones de sonido o campo de sonido comprimidas
ES2903247T3 (es) 2015-10-08 2022-03-31 Dolby Int Ab Codificación en capas y estructura de datos para representaciones comprimidas de campo sonoro o sonido ambisónico de orden superior
US10049681B2 (en) * 2015-10-29 2018-08-14 Qualcomm Incorporated Packet bearing signaling information indicative of whether to decode a primary coding or a redundant coding of the packet
CN107025125B (zh) * 2016-01-29 2019-10-22 上海大唐移动通信设备有限公司 一种原始码流解码方法和系统
CN107564535B (zh) * 2017-08-29 2020-09-01 中国人民解放军理工大学 一种分布式低速语音通话方法
US10586546B2 (en) 2018-04-26 2020-03-10 Qualcomm Incorporated Inversely enumerated pyramid vector quantizers for efficient rate adaptation in audio coding
US10734006B2 (en) 2018-06-01 2020-08-04 Qualcomm Incorporated Audio coding based on audio pattern recognition
US10580424B2 (en) * 2018-06-01 2020-03-03 Qualcomm Incorporated Perceptual audio coding as sequential decision-making problems
WO2020164753A1 (en) * 2019-02-13 2020-08-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Decoder and decoding method selecting an error concealment mode, and encoder and encoding method
US10984808B2 (en) * 2019-07-09 2021-04-20 Blackberry Limited Method for multi-stage compression in sub-band processing
CN110910906A (zh) * 2019-11-12 2020-03-24 国网山东省电力公司临沂供电公司 基于电力内网的音频端点检测及降噪方法
CN113724716B (zh) * 2021-09-30 2024-02-23 北京达佳互联信息技术有限公司 语音处理方法和语音处理装置
US20230154474A1 (en) * 2021-11-17 2023-05-18 Agora Lab, Inc. System and method for providing high quality audio communication over low bit rate connection
CN117558283B (zh) * 2024-01-12 2024-03-22 杭州国芯科技股份有限公司 一种多路多标准的音频解码系统

Family Cites Families (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4969192A (en) 1987-04-06 1990-11-06 Voicecraft, Inc. Vector adaptive predictive coder for speech and audio
US4802171A (en) * 1987-06-04 1989-01-31 Motorola, Inc. Method for error correction in digitally encoded speech
US4815134A (en) 1987-09-08 1989-03-21 Texas Instruments Incorporated Very low rate speech encoder and decoder
CN1062963C (zh) 1990-04-12 2001-03-07 多尔拜实验特许公司 用于产生高质量声音信号的解码器和编码器
US5664051A (en) 1990-09-24 1997-09-02 Digital Voice Systems, Inc. Method and apparatus for phase synthesis for speech processing
KR960013206B1 (ko) 1990-12-31 1996-10-02 박헌철 조립식 원적외선 사우나 욕실
US5255339A (en) 1991-07-19 1993-10-19 Motorola, Inc. Low bit rate vocoder means and method
US5657418A (en) * 1991-09-05 1997-08-12 Motorola, Inc. Provision of speech coder gain information using multiple coding modes
US5734789A (en) 1992-06-01 1998-03-31 Hughes Electronics Voiced, unvoiced or noise modes in a CELP vocoder
JP2746039B2 (ja) * 1993-01-22 1998-04-28 日本電気株式会社 音声符号化方式
US20030075869A1 (en) * 1993-02-25 2003-04-24 Shuffle Master, Inc. Bet withdrawal casino game with wild symbol
US5706352A (en) * 1993-04-07 1998-01-06 K/S Himpp Adaptive gain and filtering circuit for a sound reproduction system
US5673364A (en) * 1993-12-01 1997-09-30 The Dsp Group Ltd. System and method for compression and decompression of audio signals
US5615298A (en) 1994-03-14 1997-03-25 Lucent Technologies Inc. Excitation signal synthesis during frame erasure or packet loss
US5717823A (en) 1994-04-14 1998-02-10 Lucent Technologies Inc. Speech-rate modification for linear-prediction based analysis-by-synthesis speech coders
JP3277705B2 (ja) * 1994-07-27 2002-04-22 ソニー株式会社 情報符号化装置及び方法、並びに情報復号化装置及び方法
TW271524B (ko) 1994-08-05 1996-03-01 Qualcomm Inc
US5699477A (en) 1994-11-09 1997-12-16 Texas Instruments Incorporated Mixed excitation linear prediction with fractional pitch
US5751903A (en) 1994-12-19 1998-05-12 Hughes Electronics Low rate multi-mode CELP codec that encodes line SPECTRAL frequencies utilizing an offset
SE504010C2 (sv) * 1995-02-08 1996-10-14 Ericsson Telefon Ab L M Förfarande och anordning för prediktiv kodning av tal- och datasignaler
FR2734389B1 (fr) 1995-05-17 1997-07-18 Proust Stephane Procede d'adaptation du niveau de masquage du bruit dans un codeur de parole a analyse par synthese utilisant un filtre de ponderation perceptuelle a court terme
US5668925A (en) 1995-06-01 1997-09-16 Martin Marietta Corporation Low data rate speech encoder with mixed excitation
US5664055A (en) 1995-06-07 1997-09-02 Lucent Technologies Inc. CS-ACELP speech compression system with adaptive pitch prediction filter gain based on a measure of periodicity
US5699485A (en) 1995-06-07 1997-12-16 Lucent Technologies Inc. Pitch delay modification during frame erasures
US5774837A (en) 1995-09-13 1998-06-30 Voxware, Inc. Speech coding system and method using voicing probability determination
EP0763818B1 (en) 1995-09-14 2003-05-14 Kabushiki Kaisha Toshiba Formant emphasis method and formant emphasis filter device
US5835495A (en) 1995-10-11 1998-11-10 Microsoft Corporation System and method for scaleable streamed audio transmission over a network
TW321810B (ko) * 1995-10-26 1997-12-01 Sony Co Ltd
IT1281001B1 (it) 1995-10-27 1998-02-11 Cselt Centro Studi Lab Telecom Procedimento e apparecchiatura per codificare, manipolare e decodificare segnali audio.
US5819213A (en) * 1996-01-31 1998-10-06 Kabushiki Kaisha Toshiba Speech encoding and decoding with pitch filter range unrestricted by codebook range and preselecting, then increasing, search candidates from linear overlap codebooks
US5778335A (en) 1996-02-26 1998-07-07 The Regents Of The University Of California Method and apparatus for efficient multiband celp wideband speech and music coding and decoding
US6041345A (en) 1996-03-08 2000-03-21 Microsoft Corporation Active stream format for holding multiple media streams
SE506341C2 (sv) 1996-04-10 1997-12-08 Ericsson Telefon Ab L M Metod och anordning för rekonstruktion av en mottagen talsignal
JP3335841B2 (ja) 1996-05-27 2002-10-21 日本電気株式会社 信号符号化装置
US5819298A (en) * 1996-06-24 1998-10-06 Sun Microsystems, Inc. File allocation tables with holes
JPH1078799A (ja) * 1996-09-04 1998-03-24 Fujitsu Ltd コードブック
US6570991B1 (en) 1996-12-18 2003-05-27 Interval Research Corporation Multi-feature speech/music discrimination system
US6317714B1 (en) 1997-02-04 2001-11-13 Microsoft Corporation Controller and associated mechanical characters operable for continuously performing received control data while engaging in bidirectional communications over a single communications channel
US6134518A (en) 1997-03-04 2000-10-17 International Business Machines Corporation Digital audio signal coding using a CELP coder and a transform coder
US6131084A (en) 1997-03-14 2000-10-10 Digital Voice Systems, Inc. Dual subframe quantization of spectral magnitudes
US6292834B1 (en) 1997-03-14 2001-09-18 Microsoft Corporation Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
US6728775B1 (en) 1997-03-17 2004-04-27 Microsoft Corporation Multiple multicasting of multimedia streams
IL120788A (en) * 1997-05-06 2000-07-16 Audiocodes Ltd Systems and methods for encoding and decoding speech for lossy transmission networks
EP0934638B1 (en) 1997-05-12 2008-10-08 Texas Instruments Incorporated Method and apparatus for superframe bit allocation in a discrete multitone (dmt) system
US6009122A (en) 1997-05-12 1999-12-28 Amati Communciations Corporation Method and apparatus for superframe bit allocation
US6058359A (en) * 1998-03-04 2000-05-02 Telefonaktiebolaget L M Ericsson Speech coding including soft adaptability feature
FI973873A (fi) 1997-10-02 1999-04-03 Nokia Mobile Phones Ltd Puhekoodaus
US6263312B1 (en) 1997-10-03 2001-07-17 Alaris, Inc. Audio compression and decompression employing subband decomposition of residual signal and distortion reduction
EP1734512B1 (en) * 1997-10-22 2015-09-09 Godo Kaisha IP Bridge 1 CELP encoder and a method of CELP encoding
US6199037B1 (en) 1997-12-04 2001-03-06 Digital Voice Systems, Inc. Joint quantization of speech subframe voicing metrics and fundamental frequencies
US5870412A (en) * 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
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
US6029126A (en) 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
US6480822B2 (en) 1998-08-24 2002-11-12 Conexant Systems, Inc. Low complexity random codebook structure
US7072832B1 (en) * 1998-08-24 2006-07-04 Mindspeed Technologies, Inc. System for speech encoding having an adaptive encoding arrangement
US6330533B2 (en) 1998-08-24 2001-12-11 Conexant Systems, Inc. Speech encoder adaptively applying pitch preprocessing with warping of target signal
US6493665B1 (en) 1998-08-24 2002-12-10 Conexant Systems, Inc. Speech classification and parameter weighting used in codebook search
US6823303B1 (en) 1998-08-24 2004-11-23 Conexant Systems, Inc. Speech encoder using voice activity detection in coding noise
US6385573B1 (en) 1998-08-24 2002-05-07 Conexant Systems, Inc. Adaptive tilt compensation for synthesized speech residual
FR2784218B1 (fr) 1998-10-06 2000-12-08 Thomson Csf Procede de codage de la parole a bas debit
US6289297B1 (en) 1998-10-09 2001-09-11 Microsoft Corporation Method for reconstructing a video frame received from a video source over a communication channel
US6438136B1 (en) 1998-10-09 2002-08-20 Microsoft Corporation Method for scheduling time slots in a communications network channel to support on-going video transmissions
JP4359949B2 (ja) 1998-10-22 2009-11-11 ソニー株式会社 信号符号化装置及び方法、並びに信号復号装置及び方法
US6310915B1 (en) 1998-11-20 2001-10-30 Harmonic Inc. Video transcoder with bitstream look ahead for rate control and statistical multiplexing
US6226606B1 (en) 1998-11-24 2001-05-01 Microsoft Corporation Method and apparatus for pitch tracking
US6456964B2 (en) * 1998-12-21 2002-09-24 Qualcomm, Incorporated Encoding of periodic speech using prototype waveforms
US6311154B1 (en) 1998-12-30 2001-10-30 Nokia Mobile Phones Limited Adaptive windows for analysis-by-synthesis CELP-type speech coding
US6499060B1 (en) 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
US6377915B1 (en) * 1999-03-17 2002-04-23 Yrp Advanced Mobile Communication Systems Research Laboratories Co., Ltd. Speech decoding using mix ratio table
US6460153B1 (en) 1999-03-26 2002-10-01 Microsoft Corp. Apparatus and method for unequal error protection in multiple-description coding using overcomplete expansions
US7117156B1 (en) 1999-04-19 2006-10-03 At&T Corp. Method and apparatus for performing packet loss or frame erasure concealment
US6952668B1 (en) 1999-04-19 2005-10-04 At&T Corp. Method and apparatus for performing packet loss or frame erasure concealment
DE19921122C1 (de) 1999-05-07 2001-01-25 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Verschleiern eines Fehlers in einem codierten Audiosignal und Verfahren und Vorrichtung zum Decodieren eines codierten Audiosignals
DE59908889D1 (de) * 1999-06-18 2004-04-22 Alcatel Sa Gemeinsame Quellen- und Kanalcodierung
US6633841B1 (en) * 1999-07-29 2003-10-14 Mindspeed Technologies, Inc. Voice activity detection speech coding to accommodate music signals
US6434247B1 (en) 1999-07-30 2002-08-13 Gn Resound A/S Feedback cancellation apparatus and methods utilizing adaptive reference filter mechanisms
US6721337B1 (en) * 1999-08-24 2004-04-13 Ibiquity Digital Corporation Method and apparatus for transmission and reception of compressed audio frames with prioritized messages for digital audio broadcasting
US6775649B1 (en) 1999-09-01 2004-08-10 Texas Instruments Incorporated Concealment of frame erasures for speech transmission and storage system and method
US6505152B1 (en) 1999-09-03 2003-01-07 Microsoft Corporation Method and apparatus for using formant models in speech systems
US7315815B1 (en) 1999-09-22 2008-01-01 Microsoft Corporation LPC-harmonic vocoder with superframe structure
US6782360B1 (en) * 1999-09-22 2004-08-24 Mindspeed Technologies, Inc. Gain quantization for a CELP speech coder
AU7486200A (en) * 1999-09-22 2001-04-24 Conexant Systems, Inc. Multimode speech encoder
US6772126B1 (en) * 1999-09-30 2004-08-03 Motorola, Inc. Method and apparatus for transferring low bit rate digital voice messages using incremental messages
US6313714B1 (en) * 1999-10-15 2001-11-06 Trw Inc. Waveguide coupler
US6510407B1 (en) * 1999-10-19 2003-01-21 Atmel Corporation Method and apparatus for variable rate coding of speech
US6826527B1 (en) * 1999-11-23 2004-11-30 Texas Instruments Incorporated Concealment of frame erasures and method
US6621935B1 (en) 1999-12-03 2003-09-16 Microsoft Corporation System and method for robust image representation over error-prone channels
AU2547201A (en) * 2000-01-11 2001-07-24 Matsushita Electric Industrial Co., Ltd. Multi-mode voice encoding device and decoding device
GB2358558B (en) 2000-01-18 2003-10-15 Mitel Corp Packet loss compensation method using injection of spectrally shaped noise
US6732070B1 (en) 2000-02-16 2004-05-04 Nokia Mobile Phones, Ltd. Wideband speech codec using a higher sampling rate in analysis and synthesis filtering than in excitation searching
US6693964B1 (en) 2000-03-24 2004-02-17 Microsoft Corporation Methods and arrangements for compressing image based rendering data using multiple reference frame prediction techniques that support just-in-time rendering of an image
US6757654B1 (en) * 2000-05-11 2004-06-29 Telefonaktiebolaget Lm Ericsson Forward error correction in speech coding
JP2002118517A (ja) 2000-07-31 2002-04-19 Sony Corp 直交変換装置及び方法、逆直交変換装置及び方法、変換符号化装置及び方法、並びに復号装置及び方法
US6934678B1 (en) 2000-09-25 2005-08-23 Koninklijke Philips Electronics N.V. Device and method for coding speech to be recognized (STBR) at a near end
EP1199709A1 (en) 2000-10-20 2002-04-24 Telefonaktiebolaget Lm Ericsson Error Concealment in relation to decoding of encoded acoustic signals
US6968309B1 (en) * 2000-10-31 2005-11-22 Nokia Mobile Phones Ltd. Method and system for speech frame error concealment in speech decoding
US7065338B2 (en) * 2000-11-27 2006-06-20 Nippon Telegraph And Telephone Corporation Method, device and program for coding and decoding acoustic parameter, and method, device and program for coding and decoding sound
EP1356454B1 (en) * 2001-01-19 2006-03-01 Koninklijke Philips Electronics N.V. Wideband signal transmission system
US6614370B2 (en) 2001-01-26 2003-09-02 Oded Gottesman Redundant compression techniques for transmitting data over degraded communication links and/or storing data on media subject to degradation
US6754624B2 (en) * 2001-02-13 2004-06-22 Qualcomm, Inc. Codebook re-ordering to reduce undesired packet generation
EP1235203B1 (en) * 2001-02-27 2009-08-12 Texas Instruments Incorporated Method for concealing erased speech frames and decoder therefor
US7151749B2 (en) 2001-06-14 2006-12-19 Microsoft Corporation Method and System for providing adaptive bandwidth control for real-time communication
US6658383B2 (en) 2001-06-26 2003-12-02 Microsoft Corporation Method for coding speech and music signals
US6879955B2 (en) 2001-06-29 2005-04-12 Microsoft Corporation Signal modification based on continuous time warping for low bit rate CELP coding
US6941263B2 (en) 2001-06-29 2005-09-06 Microsoft Corporation Frequency domain postfiltering for quality enhancement of coded speech
US7277554B2 (en) * 2001-08-08 2007-10-02 Gn Resound North America Corporation Dynamic range compression using digital frequency warping
US7512535B2 (en) * 2001-10-03 2009-03-31 Broadcom Corporation Adaptive postfiltering methods and systems for decoding speech
US6801510B2 (en) * 2001-10-11 2004-10-05 Interdigital Technology Corporation System and method for using unused arbitrary bits in the data field of a special burst
US6785645B2 (en) 2001-11-29 2004-08-31 Microsoft Corporation Real-time speech and music classifier
US6934677B2 (en) 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
US7027982B2 (en) 2001-12-14 2006-04-11 Microsoft Corporation Quality and rate control strategy for digital audio
US6647366B2 (en) 2001-12-28 2003-11-11 Microsoft Corporation Rate control strategies for speech and music coding
US6789123B2 (en) 2001-12-28 2004-09-07 Microsoft Corporation System and method for delivery of dynamically scalable audio/video content over a network
CA2388352A1 (en) 2002-05-31 2003-11-30 Voiceage Corporation A method and device for frequency-selective pitch enhancement of synthesized speed
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
DE602004004950T2 (de) * 2003-07-09 2007-10-31 Samsung Electronics Co., Ltd., Suwon Vorrichtung und Verfahren zum bitraten-skalierbaren Sprachkodieren und -dekodieren
US7356748B2 (en) * 2003-12-19 2008-04-08 Telefonaktiebolaget Lm Ericsson (Publ) Partial spectral loss concealment in transform codecs
US7792670B2 (en) * 2003-12-19 2010-09-07 Motorola, Inc. Method and apparatus for speech coding
ATE396537T1 (de) * 2004-01-19 2008-06-15 Nxp Bv System für die audiosignalverarbeitung
US7668712B2 (en) 2004-03-31 2010-02-23 Microsoft Corporation Audio encoding and decoding with intra frames and adaptive forward error correction
US7362819B2 (en) 2004-06-16 2008-04-22 Lucent Technologies Inc. Device and method for reducing peaks of a composite signal
US7246037B2 (en) 2004-07-19 2007-07-17 Eberle Design, Inc. Methods and apparatus for an improved signal monitor
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
US7831421B2 (en) 2005-05-31 2010-11-09 Microsoft Corporation Robust decoder
US7177804B2 (en) * 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160072145A (ko) * 2013-10-11 2016-06-22 퀄컴 인코포레이티드 리던던트 프레임 정보를 통신하는 시스템들 및 방법들
KR20180077168A (ko) * 2015-10-29 2018-07-06 퀄컴 인코포레이티드 패킷의 프라이머리 코딩을 디코딩할지 또는 리던던트 코딩을 디코딩할지를 표시하는 시그널링 정보를 베어링하는 패킷

Also Published As

Publication number Publication date
US20060271355A1 (en) 2006-11-30
US7280960B2 (en) 2007-10-09
CA2611829C (en) 2014-08-19
JP2008546021A (ja) 2008-12-18
CN101996636B (zh) 2012-06-13
ATE492014T1 (de) 2011-01-15
HK1123621A1 (en) 2009-06-19
NZ563462A (en) 2011-07-29
TW200641796A (en) 2006-12-01
NO339287B1 (no) 2016-11-21
IL187196A0 (en) 2008-02-09
IL187196A (en) 2014-02-27
DE602006018908D1 (de) 2011-01-27
EP1886306B1 (en) 2010-12-15
CN101996636A (zh) 2011-03-30
US20080040121A1 (en) 2008-02-14
TWI413107B (zh) 2013-10-21
KR101238583B1 (ko) 2013-02-28
AU2006252965B2 (en) 2011-03-03
US7904293B2 (en) 2011-03-08
US7177804B2 (en) 2007-02-13
PL1886306T3 (pl) 2011-11-30
AU2006252965A1 (en) 2006-12-07
CN101189662B (zh) 2012-09-05
ES2358213T3 (es) 2011-05-06
US20080040105A1 (en) 2008-02-14
NO20075782L (no) 2007-12-19
WO2006130229A1 (en) 2006-12-07
EP2282309A2 (en) 2011-02-09
US7734465B2 (en) 2010-06-08
BRPI0610909A2 (pt) 2008-12-02
EP1886306A4 (en) 2008-09-10
JP5186054B2 (ja) 2013-04-17
RU2007144493A (ru) 2009-06-10
JP5123173B2 (ja) 2013-01-16
RU2418324C2 (ru) 2011-05-10
EP2282309A3 (en) 2012-10-24
JP2012141649A (ja) 2012-07-26
EP1886306A1 (en) 2008-02-13
CN101189662A (zh) 2008-05-28
CA2611829A1 (en) 2006-12-07
US20060271357A1 (en) 2006-11-30

Similar Documents

Publication Publication Date Title
KR101238583B1 (ko) 비트 스트림 처리 방법
KR101344174B1 (ko) 오디오 신호 처리 방법 및 오디오 디코더 장치
EP1886307B1 (en) Robust decoder

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 8