KR101265874B1 - 로버스트 디코더 - Google Patents

로버스트 디코더 Download PDF

Info

Publication number
KR101265874B1
KR101265874B1 KR1020077026019A KR20077026019A KR101265874B1 KR 101265874 B1 KR101265874 B1 KR 101265874B1 KR 1020077026019 A KR1020077026019 A KR 1020077026019A KR 20077026019 A KR20077026019 A KR 20077026019A KR 101265874 B1 KR101265874 B1 KR 101265874B1
Authority
KR
South Korea
Prior art keywords
signal
available
delete delete
frame
concealment
Prior art date
Application number
KR1020077026019A
Other languages
English (en)
Other versions
KR20080011186A (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 KR20080011186A publication Critical patent/KR20080011186A/ko
Application granted granted Critical
Publication of KR101265874B1 publication Critical patent/KR101265874B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/005Correction of errors induced by the transmission channel, if related to the coding algorithm
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment

Landscapes

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

Abstract

지연 또는 분실된 코딩된 오디오 정보에 관한 기술 및 도구가 설명된다. 예를 들어, 하나 이상의 누락 프레임에 대한 은닉 기술이 하나 이상의 누락 프레임 근처의 하나 이상의 이용 가능 프레임 각각의 분류를 포함하는 하나 이상의 팩터에 기초하여 선택된다. 다른 예로서, 은닉 신호로부터의 정보가 후속 프레임의 디코딩에서 의존되는 대체 정보를 생성하는 데 사용된다. 또 다른 예로서, 수신 패킷 지연에 대응하는 노드들을 갖는 데이터 구조가 원하는 디코더 패킷 지연 값을 결정하는 데 사용된다.
로버스트 디코더, 오디오 코덱, 오디오 정보, 은닉 기술, 패킷 지연

Description

로버스트 디코더{ROBUST DECODER}
설명되는 도구 및 기술은 오디오 코덱에 관한 것으로서, 구체적으로는 지연 또는 분실된 인코딩된 오디오 정보를 처리하기 위한 기술에 관한 것이다.
디지털 무선 전화 네트워크, 인터넷을 통한 오디오 스트리밍 및 인터넷 전화의 출현과 함께, 음성의 디지털 처리 및 전송이 일반화되어 왔다. 엔지니어들은 다양한 기술을 이용하여 음성을 효율적으로 처리하면서 여전히 품질을 유지한다. 이러한 기술을 이해하기 위해서는, 오디오 정보가 컴퓨터에서 어떻게 표현되고 처리되는지를 이해하는 것이 도움이 된다.
I. 컴퓨터에서의 오디오 정보의 표현
컴퓨터는 오디오 정보를 오디오를 표현하는 일련의 수치로서 처리한다. 하나의 수치는 특정 시간에서의 진폭 값인 오디오 샘플을 표현할 수 있다. 샘플 심도 및 샘플링 레이트를 포함하는 여러 팩터가 오디오의 품질에 영향을 미친다.
샘플 심도(또는 정확도)는 샘플을 표현하는 데 사용되는 수치들의 범위를 나타낸다. 일반적으로 각 샘플에 대해 보다 많은 가능한 값들은 보다 높은 품질 출력을 제공하는데, 이는 보다 미세한 진폭 변화가 표현될 수 있기 때문이다. 8비트 샘플은 256개의 가능한 값을 갖는 반면, 16비트 샘플은 65,536개의 가능한 값을 갖 는다.
샘플링 레이트(일반적으로 초당 샘플 수로서 측정됨)도 품질에 영향을 미친다. 샘플링 레이트가 높을수록 품질도 높아지는데, 이는 보다 많은 음성 주파수가 표현될 수 있기 때문이다. 일반적인 몇몇 샘플링 레이트는 8,000, 11,025, 22,050, 32,000, 44,100, 48,000 및 96,000 샘플/초(Hz)이다. 표 1은 상이한 품질 레벨을 갖는 여러 오디오 포맷을, 대응하는 원시(raw) 비트 레이트 비용과 함께 나타내고 있다.
상이한 품질 오디오의 비트 레이트
샘플 심도(비트/샘플) 샘플링 레이트(샘플/초) 채널 모드 원시 비트 레이트(비트/초)
8 8,000 모노 64,000
8 11,025 모노 88,200
16 44,100 스테레오 1,411,200
표 1이 보이는 바와 같이, 고품질 오디오의 비용은 높은 비트 레이트이다. 고품질 오디오 정보는 많은 양의 컴퓨터 저장 장치 및 전송 용량을 소비한다. 많은 컴퓨터 및 컴퓨터 네트워크는 원시 디지털 오디오를 처리할 자원이 부족하다. 압축(인코딩 또는 코딩이라고도 함)은 정보를 보다 낮은 비트 레이트 형태로 변환함으로써 오디오 정보를 저장하고 전송하는 비용을 감소시킨다. 압축은 손실이 없거나(품질이 저하되지 않는다) 손실이 많을(품질이 저하되지만, 후속 무손실 압축으로부터의 비트 레이트 감소는 더욱 극적이다) 수 있다. 압축 풀기(디코딩이라고 함)는 압축된 형태로부터 최초 정보의 재구성 버전을 추출한다. 코덱은 인코더/디코더 시스템이다.
II. 음성 인코더 및 디코더
오디오 압축의 하나의 목표는 오디오 신호를 디지털 방식으로 표현하여 주어진 양의 비트들에 대해 최대 신호 품질을 제공하는 것이다. 달리 말하면, 이 목표는 주어진 레벨의 품질에 대해 최소 비트로 오디오 신호를 표현하는 것이다. 전송 에러에 대한 복원력 및 인코딩/전송/디코딩에 기인한 전체 지연의 제한과 같은 다른 목표는 몇몇 시나리오에서 적용된다.
상이한 종류의 오디오 신호들은 상이한 특성을 갖는다. 음악은 큰 범위의 주파수 및 진폭에 의해 특성화되며, 종종 둘 이상의 채널을 포함한다. 반면, 음성은 보다 작은 범위의 주파수 및 진폭에 의해 특성화되며, 일반적으로 단일 채널로 표현된다. 소정의 코덱 및 처리 기술이 음악 및 일반 오디오에 적합하며, 다른 코덱 및 처리 기술은 음성에 적합하다.
한 가지 유형의 종래의 음성 코덱은 선형 예측을 이용하여 압축을 달성한다. 음성 인코딩은 여러 스테이지를 포함한다. 인코더는 샘플 값들을 이전 샘플 값들의 선형 조합으로서 예측하는 데 사용되는 선형 예측 필터의 계수들을 발견하고 양자화한다. 잔여 신호("여기" 신호로서 표현됨)는 필터링에 의해 정확하게 예측되지 않는 최초 신호의 부분들을 지시한다. 몇몇 스테이지에서, 음성 코덱은 유성음 세그먼트(음성 화음 진동에 의해 특성화됨), 무성음 세그먼트, 및 묵음 세그먼트에 대해 상이한 압축 기술을 이용하는데, 이는 상이한 종류의 음성들이 상이한 특성을 갖기 때문이다. 유성음 세그먼트는 일반적으로 잔여 영역에서도 고도로 반복하는 음성 패턴을 나타낸다. 유성음 세그먼트에 대해, 인코더는 현재 잔여 신호를 이전 잔여 사이클과 비교하고 현재 잔여 신호를 이전 사이클에 대한 지연 또는 지체 정보에 관하여 인코딩함으로써 보다 큰 압축을 달성한다. 인코더는 최초 신호와 예측된 인코딩된 표현(선형 예측 및 지연 정보로부터) 사이의 다른 불일치들을 특수하게 설계된 코드북을 이용하여 처리한다.
전술한 몇몇 음성 코덱은 많은 애플리케이션에 대해 양호한 전체 성능을 갖지만, 이들은 여러 단점을 갖는다. 구체적으로, 여러 단점은 음성 코덱들이 동적 네트워크 자원들과 관련하여 이용될 때 표면화된다. 이러한 시나리오에서, 인코딩된 음성은 일시적인 대역폭 부족 또는 다른 문제로 인해 손실될 수 있다.
A. 비효과적인 은닉 기술
하나 이상의 인코딩된 음성의 패킷이 예를 들어 손실되고, 지연되고, 손상되거나, 또는 통과 중에 사용 불가능하게 되는 곳 또는 그 밖의 곳 가까이서 누락될 때, 디코더는 종종 소정의 방식으로 누락 패킷을 은닉하려고 시도한다. 예를 들어, 소정의 디코더들은 이미 수신된 패킷들을 단순히 반복한다. 그러나, 상당한 패킷 손실이 있는 경우, 이 기술은 디코딩된 음성 출력의 품질이 빠르게 저하되는 결과를 낳는다.
소정의 코덱들은 파형 유사 중첩-추가 방법("WSOLA")과 같은 보다 복잡한 은닉 기술을 이용한다. 이 기술은 기존 피치 사이클들의 가중 평균을 통해 새로운 피치 사이클을 생성함으로써 누락 패킷을 은닉하도록 디코딩된 오디오 신호를 확장한다. 이 방법은 누락 패킷을 은닉하는 데 있어서 보다 이른 패킷을 단순히 반복하는 것보다 효과적일 수 있다. 그러나, 이 기술은 모든 상황에 대해 이상적인 것은 아닐 수 있다. 더욱이, 이 기술은 너무 오랫동안 신호를 확장하는 데 사용되는 경우 바람직하지 못한 음성 효과(기계적 또는 울리는 음성 등)를 생성할 수 있다.
또한, 많은 프레임은 디코딩을 위해 이전 프레임들의 디코딩된 특성들(여기 신호 이력 등)의 메모리에 의존한다. 이러한 메모리가 존재하지 않을 때(메모리를 생성하는 데 사용되었을 패킷이 손실되는 경우 등), 신호 품질은 누락 프레임에 이어서 수신된 프레임에 대해서도 저하될 수 있다.
B. 비효율적인 또는 비효과적인 소망 패킷 지연 계산
인코딩된 오디오 정보의 패킷들이 디코더 애플리케이션에 전송되고 있을 때, 각 패킷은 예를 들어 네트워크 편차로 인해 상이한 지연을 경험할 수 있다. 이것은 또한 패킷들이 전송된 것과 다른 순서로 도달하는 결과를 낳을 수 있다. 애플리케이션 또는 디코더는 지연 통계를 계산하여, 충분한 수의 패킷이 제 시간에 디코더에 도달하여 디코딩되고 사용될 수 있기에 충분히 길 것으로 예상되는 바람직한 디코더 버퍼 지연을 결정할 수 있다. 물론, 이에 상응하는 문제는 특히 전화와 같은 실시간의 상호작용 애플리케이션들에 대한 시스템의 전체 지연일 수 있다.
최적 지연을 계산하기 위한 하나의 접근 방식은 이전 패킷들의 최대 지연을 관찰하고 이 지연값을 가이드로서 사용하는 것이다. 패킷의 지연은 일반적으로 패킷이 전송될 때 인코더 측에서 적용되는 전송 타임스탬프와 패킷이 수신될 때 디코더 측에서 적용되는 수신 타임스탬프 간의 차이를 계산함으로써 결정된다. 그러나, 때때로 아웃라이어(outlier)들이 존재하여, 시스템이 비전형적인 패킷들에 적응하게 할 수 있다. 또한, 때로는 이들 아웃라이어인 늦은 패킷들을 수신하기에 충분히 긴 지연을 부과하기보다는 소수의 패킷들이 너무 늦게(그리고 누락되게) 도달하게 하는 것이 더 낫다.
하나의 대안은 이동 평균(running average) 및 이동 분산 계산과 같은 공식에 기초하여 원하는 지연을 계산하는 것이다. 그러나, 이러한 계산에서는 많은 파라미터가 최적화되어야 하며, 한편으로는 계산과 응답 속도 사이의 올바른 타협점을 찾기가 어렵고, 다른 한편으로는 계산이 이력 값들의 전형적인 모집단에 기초하게 된다.
다른 하나의 접근 방식은 패킷 지연 분포를 직접 분석하는 것이다. 예를 들어, 패킷 지연들의 히스토그램이 유지될 수 있다. 지연 시간 히스토그램에서 계급(bin)의 폭은 최적 지연이 계산될 원하는 정확도를 나타낸다. 계급 크기의 감소는 정확도를 향상시킨다. 히스토그램의 형상은 기반 패킷 지연 분포를 대략적으로 반영한다.
새로운 패킷이 도달할 때, 패킷 지연은 대응 계급에 맵핑되며, 그 계급에 속하는 패킷들의 계수가 증분된다. 소정의 구 패킷들의 나이를 반영하기 위하여, 모든 다른 계급의 계수들이 "에이징"이라고 하는 프로세스에서 스케일 다운된다. 새로운 바람직한 지연을 찾기 위하여, 디코드는 원하는 손실 레이트를 설정한다. 대표적인 값은 1 퍼센트와 5 퍼센트 사이의 범위이다. 히스토그램은 원하는 손실을 달성하는 데 필요한 원하는 지연의 값을 결정하기 위해 분석된다. 이러한 접근 방식의 한 가지 문제는 계급 폭 및 에이징 팩터와 같은 소정의 파라미터들이 조정되어야 한다는 것이다. 또한, 모든 구 패킷은 에이징 프로세스에서 유사하게 처리되며, 에이징 접근 방식 자체는 그 기술의 전체 성능에서 지나치게 큰 역할을 하게 된다. 또한, 클럭 드리프트 상황이 발생할 수 있다. 클럭 드리프트는 상이한 장치들의 클럭 레이트가 동일하지 않을 때 발생한다. 전송 타임스탬프를 적용하는 인코더 측 장치와 수신 타임스탬프를 적용하는 디코더 측 장치 사이에 클럭 드리프트가 발생하는 경우, 전체 지연은 양 또는 음의 경향을 갖는다. 이것은 히스토그램이 정적이어야 할 때에도 지연 타임라인을 따라 이동하게 할 수 있다.
<발명의 요약>
요컨대, 상세한 설명은 오디오 코덱을 위한 다양한 기술 및 도구에 관한 것이며, 구체적으로는 임의의 이유로 누락되는 오디오 정보를 처리하기 위한 기술과 연관된 도구 및 기술에 관한 것이다. 설명되는 실시예들은 다음을 포함하지만 그에 한정되지 않는 설명되는 기술 및 도구 중 하나 이상을 구현한다.
일 양태에서, 오디오 신호의 비트 스트림을 처리하는 동안 하나 이상의 누락 프레임을 만나는 경우에, 하나 이상의 팩터에 적어도 부분적으로 기초하여 다수의 이용가능한 신호 종속 은닉 기술 중에서 하나의 은닉 기술이 선택된다. 선택된 은닉 기술이 수행되고 결과가 출력된다.
다른 양태에서, 오디오 신호의 비트 스트림으로부터 누락된 하나 이상의 프레임을 만날 때, 하나 이상의 이전 프레임에서의 피치 사이클에 적어도 부분적으로 기초하는, 피치 지터의 도입을 포함하는 은닉 신호가 생성된다.
또 다른 양태에서, 오디오 신호의 비트 스트림으로부터 누락된 하나 이상의 프레임을 만나고, 은닉 신호가 생성된다. 디코딩을 위해 하나 이상의 누락 프레임으로부터의 정보에 적어도 부분적으로 의존하는 후속 프레임을 만난다. 은닉 신호로부터의 대체 정보가 생성되고, 후속 프레임을 디코딩하기 위해 하나 이상의 누락 프레임으로부터의 정보 대신에 이 대체 정보에 의존한다.
또 다른 양태에서, 오디오 신호의 비트 스트림이 처리된다. 비트 스트림으로부터 누락된 하나 이상의 프레임을 만날 때, 처리는 이용 가능 프레임과 연관된 하나 이상의 값에 적어도 부분적으로 기초하여 확장 신호 기여를 포함하는 은닉 신호를 생성하고, 은닉 신호의 임계 지속 기간 후에 잡음 기여를 은닉 신호에 추가하는 것을 포함한다. 비트 스트림으로부터 하나 이상의 누락 프레임을 만날 때, 처리는 오디오 신호의 적어도 일부에 따라 확장 신호 기여의 에너지를 점차 감소시키고, 오디오 신호의 적어도 일부에 따라 잡음 기여의 에너지를 점차 증가시키는 것을 더 포함한다. 더욱이, 확장 신호 기여의 에너지를 점차 감소시키는 것은 확장 신호를 인지할 수 없을 때까지 그 에너지를 점차로 감소시키는 것을 포함할 수 있다. 또한, 은닉 신호가 본질적으로 소정 레벨의 배경 잡음으로 구성될 때까지, 확장 신호 기여의 에너지는 점차 감소하고, 잡음 기여의 에너지는 점차 증가할 수 있다.
또 다른 양태에서, 오디오 신호의 비트 스트림이 처리된다. 비트 스트림으로부터 하나 이상의 누락 프레임을 만날 때, 처리는 이용 가능 프레임으로부터 복수의 이용 가능 세그먼트를 식별하고, 복수의 이용 가능 세그먼트 각각에 대해 이용 가능 세그먼트의 하나 이상의 특성을 이용하여 도출된 세그먼트를 생성하는 것을 포함한다. 복수의 이용 가능 세그먼트 및 복수의 도출된 세그먼트를 이용하여 병합된 신호가 형성된다. 이용 가능 프레임은 무성음 프레임일 수 있으며, 하나 이상의 특징은 이용 가능 세그먼트의 에너지를 포함할 수 있다. 복수의 이용 가능 세그먼트는 제1 및 제2 이용 가능 세그먼트를 포함할 수 있고, 복수의 도출된 세그먼트는 제1 및 제2의 도출된 세그먼트를 포함할 수 있으며, 병합 신호의 형성은 제1 이용 가능 세그먼트와 제1 도출 세그먼트를 병합하고, 제1 도출 세그먼트와 제2 도출 세그먼트를 병합하고, 제2 도출 세그먼트와 제2 이용 가능 세그먼트를 병합하는 것을 포함할 수 있다. 복수의 이용 가능 세그먼트는 셋 이상의 이용 가능 세그먼트를 포함할 수 있으며, 복수의 도출 세그먼트는 셋 이상의 도출 세그먼트를 포함할 수 있다. 또한, 처리는 이용 가능 프레임 및 하나 이상의 누락 프레임 대신에 병합 세그먼트를 이용하는 것을 더 포함할 수 있다.
또 다른 양태에서, 데이터 구조가 유지된다. 데이터 구조는 한 세트의 수신 패킷들 내의 패킷들에 대응하는 한 세트의 복수의 노드를 포함한다. 한 세트의 복수 노드의 각 노드는 한 세트의 수신 패킷들 중 대응 패킷의 수신 지연 값, 다음 상위의 지연 값을 갖는 한 세트의 복수 노드 중 한 노드를 지시하는 상위 값 포인터, 및 다음 하위 지연 값을 갖는 한 세트의 복수 노드 중 한 노드를 지시하는 하위 값 포인터를 포함한다. 원하는 디코더 패킷 지연 값은 데이터 구조에 적어도 부분적으로 기초하여 결정된다. 새로운 패킷이 수신될 때, 데이터 구조를 유지하는 것은 한 세트의 수신 패킷 중에서 가장 오래된 패킷의 지연 값을 새로운 패킷의 지연 값으로 대체하고, 한 세트의 복수 노드 중 하나 이상의 노드의 상위 값 포인터를 갱신하고, 한 세트의 복수 노드 중 하나 이상의 노드의 하위 값 포인터를 갱신하는 것을 포함할 수 있다. 더욱이, 원하는 디코더 패킷 지연 값의 결정은 최대 지연 값을 포함하는 한 세트의 복수 노드 중 하나의 노드를 찾고, 원하는 수의 노드들이 검색될 때까지 연속적인 하위 지연 값들을 갖는 한 세트의 복수 노드 중의 노드들을 검색하고, 검색되는 최종 노드의 지연 값을 디코딩을 위한 원하는 패킷 지연으로서 이용하는 것을 포함할 수 있다. 또한, 원하는 수의 노드들은 소정의 원하는 패킷 손실 레이트에 대응할 수 있다.
다양한 기술 및 도구가 조합하여 또는 개별적으로 이용될 수 있다.
추가적인 특징 및 이점은 첨부 도면을 참조하여 진행하는 아래의 여러 실시예의 상세한 설명으로부터 명백해질 것이다.
도 1은 설명되는 실시예들 중 하나 이상이 구현될 수 있는 적절한 컴퓨팅 환경의 블록도.
도 2는 설명되는 실시예들 중 하나 이상이 관련하여 구현될 수 있는 네트워크 환경의 블록도.
도 3은 설명되는 실시예들 중 하나 이상이 관련하여 구현될 수 있는 실시간 음성 프레임 인코더의 블록도.
도 4는 일 구현에서 코드북 파라미터의 결정을 나타내는 흐름도.
도 5는 설명되는 실시예들 중 하나 이상이 관련하여 구현될 수 있는 실시간 음성 프레임 디코더의 블록도.
도 6은 예시적인 디코더 측 VoIP 시스템에서 오디오 정보의 일반 흐름을 나 타내는 블록도.
도 7은 예시적인 디코더 측 버퍼링 기술에서 샘플들의 버퍼링을 나타내는 블록도.
도 8은 예시적인 패킷 지연 분포의 그래프.
도 9는 예시적인 패킷 지연 데이터 구조의 도면.
도 10은 적절한 은닉 기술을 결정하는 일례를 나타내는 흐름도.
도 11은 누락된 무성음 오디오 정보를 은닉하기 위한 기술을 나타내는 개략도.
도 12는 디코더 메모리 복구 기술의 일례를 나타내는 흐름도.
설명되는 실시예들은 인코딩 및/또는 디코딩에 있어서 오디오 정보를 처리하기 위한 기술 및 도구에 관한 것이다. 이러한 기술을 이용하여, 실시간 음성 코덱과 같은 음성 코덱으로부터 도출되는 음성의 품질이 향상된다. 이러한 향상은 다양한 기술 및 도구를 개별적으로 또는 조합하여 이용함으로써 달성될 수 있다.
이러한 기술 및 도구는 오디오 신호의 특성들에 기초하여 은닉 기술을 선택하고, 그리고/또는 피치 확장 은닉 기술과 함께 피치 지터링을 이용하는 것을 포함할 수 있다. 기술들은 또한 은닉 기술로부터 결과되는 신호의 일부 또는 전부를 인코딩하고, 인코딩된 정보를 이용하여 미래 패킷들의 디코딩에 사용되는 메모리를 재생하는 것을 포함할 수 있다. 또한, 기술들은 패킷 지연들의 추적 및 배열에 적합한 데이터 구조를 이용하여 원하는 패킷 지연 값을 계산하는 것을 포함할 수 있다.
다양한 기술의 동작들이 프리젠테이션을 위해 구체적인 순서로 설명되지만, 이러한 설명 방식은 특정 순서가 요구되지 않는 한은 동작들의 순서의 사소한 재배열을 포함하는 것으로 이해되어야 한다. 예를 들어, 순차적으로 설명되는 동작들은 소정의 경우에 재배열되거나 동시에 수행될 수도 있다. 더욱이, 간명화를 위해, 흐름도들은 특정 기술들이 다른 기술들과 함께 이용될 수 있는 다양한 방법을 도시하지 않을 수도 있다.
특정 컴퓨팅 환경 특징 및 오디오 코덱 특징이 아래에 설명되지만, 도구들 및 기술들 중 하나 이상은 다양한 상이한 유형의 컴퓨팅 환경 및/또는 다양한 상이한 유형의 코덱과 함께 이용될 수 있다. 예를 들어, 로버스트 디코더 기술들 중 중 하나 이상은 적응성 차동 펄스 코드 변조 코덱, 변환 코덱 및/또는 다른 유형의 코덱들과 같이 CELP 코딩 모델을 이용하지 않는 코덱들과 함께 이용될 수 있다. 다른 예로서, 로버스트 디코더 기술들 중 하나 이상은 단일 대역 코덱들 또는 부대역 코덱들과 함께 이용될 수 있다. 또 다른 예로서, 로버스트 디코더 기술들 중 하나 이상은 다중 대역 코덱의 단일 대역 및/또는 다중 대역 코덱의 다수 대역의 기여를 포함하는 합성되거나 인코딩되지 않은 신호에 적용될 수 있다.
I. 컴퓨팅 환경
도 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)은 통신 매체를 통해 다른 컴퓨팅 엔티티와 통신하는 것을 가능하게 한다. 통신 매체는 컴퓨터 실행 가능 명령어들, 압축된 음성 정보, 또는 변조된 데이터 신호 내의 다른 데이터와 같은 정보를 전달한다. 변조된 데이터 신호는, 신호 내의 정보를 인코딩하는 방식으로 신호의 특성들 중 하나 이상이 설정 또는 변경된 신호이다. 제한적이 아닌 예로서, 통신 매체는 전기, 광학, RF, 적외선, 음향 또는 다른 캐리어로 구현되는 유선 또는 무선 기술들을 포함한다.
본 발명은 컴퓨터 판독 가능 매체와 일반적으로 관련하여 설명될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨팅 환경 내에서 액세스될 수 있는 임의의 이용 가능 매체이다. 제한적이 아닌 예로서, 컴퓨팅 환경(100)에서, 컴퓨터 판독 가능 매체는 메모리(120), 저장 장치(140), 통신 매체, 및 이들의 임의 조합을 포함한다.
본 발명은 일반적으로 프로그램 모듈에 포함되어 컴퓨팅 환경에서 타겟 실제 또는 가상 프로세서 상에서 실행되는 것들과 같은 컴퓨터 실행 가능 명령어와 관련하여 기술될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 라이브러리, 개체, 클래스, 컴포넌트, 데이터 구조 등을 포함한다. 프로그램 모듈들의 기능은 다양한 실시예에서 원하는 바와 따라 조합되거나, 프로그램 모듈들 사이에 분산될 수 있다. 프로그램 모듈에 대한 컴퓨터 실행 가능 명령어는 로컬 또는 분산 컴퓨팅 환경에서 실행될 수 있다.
프리젠테이션을 위해, 상세한 설명은 "결정한다", "생성한다", "조정한다" 및 "적용한다"라는 용어를 이용하여 컴퓨팅 환경에서의 컴퓨팅 동작을 설명한다. 이들 용어는 컴퓨터에 의해 수행되는 동작들에 대한 하이 레벨 추상화이며, 인간에 의해 수행되는 행위들과 혼란되지 않아야 한다. 이들 용어에 대응하는 실제 컴퓨터 동작들은 구현에 따라 변한다.
II. 일반화된 네트워크 환경 및 실시간 음성 코덱
도 2는 설명되는 실시예들 중 하나 이상이 관련하여 구현될 수 있는 일반화된 네트워크 환경(200)의 블록도이다. 네트워크(250)는 다양한 인코더측 컴포넌트를 다양한 디코더측 컴포넌트와 구별한다.
인코더측 및 디코더측 컴포넌트들의 주요 기능은 각각 음성 인코딩 및 디코딩이다. 인코더측에서, 입력 버퍼(210)는 음성 입력(202)을 수신하고 저장한다. 음성 인코더(230)는 입력 버퍼(210)로부터 음성 입력(202)을 취하여 이를 인코딩한다.
구체적으로, 프레임 분할기(212)는 음성 입력(202)의 샘플들을 프레임들로 분할한다. 일 구현에서, 프레임들은 균일하게 20 ms 길이인데, 8 kHz 입력에 대해서는 160개의 샘플, 16 kHz 입력에 대해서는 320개의 샘플이다. 다른 구현들에서, 프레임들은 상이한 지속 기간을 가지며, 균일하지 않거나 중첩되며, 그리고/또는 입력(202)의 샘플링 레이트가 상이하다. 프레임들은 수퍼 프레임/프레임, 프레임/수퍼 프레임, 또는 인코딩 및 디코딩의 상이한 스테이지들에 대한 다른 구성으로 구성될 수 있다.
프레임 분류기(214)는 신호의 에너지, 제로 교차 레이트, 장기 예측 이득, 이득차, 그리고/또는 서브 프레임 또는 전체 프레임에 대한 다른 기준과 같은 하나 이상의 기준에 따라 프레임들을 분류한다. 기준에 기초하여, 프레임 분류기(214)는 상이한 프레임들을 묵음, 무성음, 유성음 및 전이(예를 들어, 무성음에서 유성음으로)와 같은 클래스들로 분류한다. 또한, 프레임들은, 존재한다면, 프레임에 대해 이용되는 중복 코딩의 유형에 따라 분류될 수 있다. 프레임 클래스는 프레임을 인코딩하기 위해 계산되는 파라미터들에 영향을 미친다. 또한, 프레임 클래스는 파라미터들이 인코딩되는 해상도 및 손실 복원력에 영향을 미쳐, 보다 중요한 프레임 클래스 및 파라미터에 보다 높은 해상도 및 손실 복원력을 제공할 수 있다. 예를 들어, 묵음 프레임들은 일반적으로 매우 낮은 레이트로 코딩되고, 손실될 경우 은닉에 의해 매우 간단하게 복구되며, 손실에 대한 보호를 필요로 하지 않을 수 있다. 무성음 프레임들은 일반적으로 약간 더 높은 레이트로 코딩되고, 손실될 경우 은닉에 의해 상당히 간단하게 복구되며, 손실에 대해 중요하게 보호되지 않는다. 유성음 및 전이 프레임들은 일반적으로 프레임의 복잡성은 물론 전이의 존재에 따라 보다 많은 비트가 인코딩된다. 유성음 및 전이 프레임들은 또한 손실될 경우 복구하기가 어려우며, 따라서 손실에 대해 매우 중요하게 보호된다. 대안으로, 프레임 분류기(214)는 다른 및/또는 추가 프레임 클래스를 이용한다.
도 2에서, 각각의 프레임은 프레임 인코딩 컴포넌트(232) 등에 의해 인코딩된다. 이러한 프레임 인코딩은 도 3을 참조하여 후술된다. 결과적인 인코딩된 음성은 멀티플렉서("MUX")(236)를 통해 하나 이상의 네트워킹 계층(240)에 대한 소프트웨어에 제공된다. 네트워킹 계층(240)은 네트워크(250)를 통한 전이를 위해 인코딩된 음성을 처리한다. 예를 들어, 네트워크 계층 소프트웨어는 인코딩된 음성 정보의 프레임들을 RTP 프로토콜을 따르는 패킷들로 패키지하는데, 이들 패킷은 UDP, IP 및 다양한 물리 계층 프로토콜을 이용하여 인터넷을 통해 중계된다. 대안으로, 다른 및/또는 추가 소프트웨어 계층 또는 네트워킹 프로토콜이 사용된다.
네트워크(250)는 인터넷과 같은 광역 패킷 교환 네트워크이다. 대안으로, 네트워크(250)는 근거리 네트워크 또는 다른 종류의 네트워크이다.
디코더측에서, 하나 이상의 네트워킹 계층(260)에 대한 소프트웨어는 전송된 데이터를 수신하여 처리한다. 디코더측 네트워킹 계층(260)에서의 네트워크, 전송, 및 상위 계층 프로토콜 및 소프트웨어는 일반적으로 인코더측 네트워킹 계층(240)에서의 그것들과 대응한다. 네트워킹 계층은 인코딩된 음성 정보를 디멀티플렉서("DEMUX")(276)를 통해 음성 디코더(270)에 제공한다.
디코더(270)는 디코딩 모듈(272)에 도시된 바와 같이 각 프레임을 디코딩한다. 디코딩된 음성 출력(292)은 또한 하나 이상의 포스트 필터(284)를 통해 전송되어, 결과적인 필터링된 음성 출력(294)의 품질을 향상시킬 수 있다.
하나의 일반화된 실시간 음성 프레임 디코더가 도 5를 참조하여 후술되지만, 다른 음성 디코더들이 대신 사용될 수도 있다. 또한, 설명되는 도구들 및 기술들의 일부 또는 전부는 음악 인코더 및 디코더, 또는 범용 오디오 인코더 및 디코더와 같은 다른 유형의 오디오 인코더 및 디코더와 함께 이용될 수 있다.
이러한 주요 인코딩 및 디코딩 기능과는 별도로, 컴포넌트들은 또한 인코딩된 음성의 레이트, 품질, 및/또는 손실 복원력을 제어하기 위해 정보를 공유할 수 있다(도 2에서 점선으로 표시). 레이트 제어기(220)는 입력 버퍼(210)에서의 현재 입력의 복잡성, 인코더(230) 또는 다른 곳에서의 출력 버퍼들의 버퍼 충만도, 원하는 출력 레이트, 현재의 네트워크 대역폭, 네트워크 혼잡/잡음 조건 및/또는 디코더 손실 레이트와 같은 다양한 팩터를 고려한다. 디코더(270)는 디코더 손실 레이트 정보를 레이트 제어기(220)에 피드백한다. 네트워킹 계층(240, 260)은 현재 네트워크 대역폭 및 혼잡/잡음 조건에 대한 정보를 수집 또는 평가하여, 레이트 제어기(220)에 피드백한다. 대안으로, 레이트 제어기(220)는 다른 및/또는 추가 팩터를 고려한다.
레이트 제어기(220)는 음성 인코더(230)에게 음성이 인코딩되는 레이트, 품질 및/또는 손실 복원력을 변경하도록 지시한다. 인코더(230)는 파라미터들에 대한 양자화 팩터를 조정하거나 파라미터들을 표현하는 엔트로피 코드의 해상도를 변경함으로써 레이트 및 품질을 변경할 수 있다. 또한, 인코더는 중복 코딩의 레이트 또는 유형을 조정함으로써 손실 복원력을 변경할 수 있다. 따라서, 인코더(230)는 네트워크 조건에 따라 주요 인코딩 기능들과 손실 복원 기능들 간의 비트들의 할당을 변경할 수 있다. 대안으로, 레이트는 인코더가 고정 레이트로 동작하는 경우와 같이 소정의 다른 방식으로 제어된다.
도 3은 설명되는 실시예들이 관련하여 구현될 수 있는 일반화된 음성 프레임 인코더(300)의 블록도이다. 프레임 인코더(300)는 일반적으로 도 2의 프레임 인코딩 컴포넌트(232)에 대응한다. 프레임 인코더(300)는 프레임 분할기로부터 프레임 입력(302)을 수신하여 인코딩된 프레임 출력(392)을 생성한다.
LP 분석 컴포넌트(330)는 선형 예측 계수(332)를 계산한다. 일 구현에서, LP 필터는 8 kHz 입력에 대해서는 10개의 계수를, 16 kHz 입력에 대해서는 16개의 계수를 사용하며, LP 분석 컴포넌트(330)는 프레임당 한 세트의 선형 예측 계수들을 계산한다. 대안으로, LP 분석 컴포넌트(330)는 프레임당 2 세트의 계수들, 즉 상이한 위치에 중심을 가진 2개의 윈도우 각각에 대해 하나씩을 계산하거나, 프레임당 상이한 수의 계수들을 계산한다.
LPC 처리 컴포넌트(335)는 선형 예측 계수들(332)을 수신하여 처리한다. 일반적으로, LPC 처리 컴포넌트(335)는 보다 효율적인 양자화 및 인코딩을 위해 LPC 값들을 상이한 표현으로 변환한다. 예를 들어, LPC 처리 컴포넌트(335)는 LPC 값들을 선 스펙트럼 쌍(LSP) 표현으로 변환하며, LSP 값들은 (예를 들어 벡터 양자화에 의해) 양자화되고 인코딩된다. LSP 값들은 인트라 코딩되거나 다른 LSP 값들로부터 예측될 수 있다. 다양한 표현, 양자화 기술, 및 인코딩 기술이 LPC 값들에 대해 가능하다. LPC 값들은 (임의의 양자화 파라미터들 및 재구성에 필요한 다른 정보와 함께) 패킷화 및 전송을 위해 인코딩된 프레임의 일부로서 소정의 형태로 제공된다. 인코더(300)에서의 후속 이용을 위해, LPC 처리 컴포넌트(335)는 LPC 값들을 재구성한다. LPC 처리 컴포넌트(335)는 (LSP 표현 또는 다른 표현에서와 같이 등가적으로) LPC 값들에 대한 보간을 수행하여, 상이한 LPC 계수 세트들 사이, 또는 프레임들의 상이한 서브 프레임들에 사용되는 LPC 계수들 사이의 전이를 매끄럽게 할 수 있다.
합성(또는 "단기 예측") 필터(340)는 재구성된 LPC 값들(338)을 수신하여, 이들을 필터 내로 합체시킨다. 합성 필터(340)는 여기 신호를 수신하여, 최초 신호의 근사치를 생성한다. 주어진 프레임에 대해, 합성 필터(340)는 예측의 개시를 위해 이전 프레임으로부터 다수의 재구성된 샘플(예를 들어 10탭 필터에 대해 10개)을 버퍼링한다.
지각 가중 컴포넌트(350, 355)는 최초 신호 및 합성 필터(340)의 모델링된 출력에 지각 가중치를 적용하여 음성 신호들의 포먼트 구조를 선택적으로 덜 강조함으로써 청각 시스템을 양자화 에러에 덜 민감하게 만든다. 지각 가중 컴포넌트(350, 355)는 마스킹과 같은 음향 심리학적 현상을 이용한다. 일 구현에서, 지각 가중 컴포넌트(350, 355)는 LP 분석 컴포넌트(330)로부터 수신된 최초 LPC 값들(332)에 기초하여 가중치를 적용한다. 대안으로, 지각 가중 컴포넌트(350, 355)는 다른 및/또는 추가 가중치를 적용한다.
지각 가중 컴포넌트(350, 355)에 이어서, 인코더(300)는 지각 가중된 최초 신호와 지각 가중된 합성 필터(340)의 출력 간의 차이를 계산하여 차 신호(334)를 생성한다. 대안으로, 인코더(330)는 상이한 기술을 이용하여 음성 파라미터를 계산한다.
여기 파라미터화 컴포넌트(360)는 지각 가중된 최초 신호와 합성 신호 간의 차이를 최소화하는 것과 관련하여(가중 제곱 평균 에러 또는 다른 기준 면에서) 적응성 코드북 인덱스, 고정 코드북 인덱스 및 이득 코드북 인덱스의 최상 조합을 찾으려고 시도한다. 많은 파라미터가 서브 프레임마다 계산되지만, 보다 일반적으로는 파라미터들은 수퍼 프레임, 프레임 또는 서브 프레임마다 계산될 수 있다. 표 2는 일 구현에서 상이한 프레임 클래스들에 대해 이용가능한 파라미터 유형을 나타낸다.
상이한 프레임 클래스들에 대한 파라미터들
프레임 클래스 파라미터
묵음 클래스 정보; LSP; 이득(프레임당, 생성된 잡음에 대해)
무성음 클래스 정보; LSP; 펄스, 랜덤, 및 이득 코드북 파라미터(서브 프레임마다)
유성음 클래스 정보; LSP; 적응성, 펄스, 랜덤, 및 이득 코드북 파라미터(서브 프레임마다)
전이
도 3에서, 여기 파라미터화 컴포넌트(360)는 프레임을 서브 프레임들로 분할하고, 적절한 경우에 각각의 서브 프레임에 대한 코드북 인덱스 및 이득을 계산한다. 예를 들어, 사용될 코드북 스테이지들의 수 및 유형, 및 코드북 인덱스들의 해상도는 전술한 레이트 제어 컴포넌트에 의해 지시되는 인코딩 모드에 의해 초기에 결정될 수 있다. 특정 모드는 코드북 스테이지들의 수 및 유형과 다른 인코딩 및 디코딩 파라미터, 예를 들어 코드북 인덱스들의 해상도를 또한 지시할 수 있다. 각 코드북 스테이지의 파라미터들은 타겟 신호와 그 코드북 스테이지의 합성 신호에 대한 기여 사이의 에러를 최소화하도록 파라미터들을 최적화함으로써 결정된다. (본 명세서에서 사용되는 "최적화"라는 용어는, 파라미터 공간에 대한 완전한 검색을 수행하는 것과 달리, 왜곡 감소, 파라미터 검색 시간, 파라미터 검색 복잡성, 파라미터의 비트 레이트 등과 같은 적용 가능한 제한 하에 적절한 솔루션을 발견하는 것을 의미한다. 마찬가지로, "최소화"라는 용어는 적용 가능한 제한 하에 적절한 솔루션을 발견하는 것과 관련하여 이해되어야 한다.) 예를 들어, 최적화는 수정된 제곱 평균 에러 기술을 이용하여 행해질 수 있다. 각 스테이지에 대한 타겟 신호는 잔여 신호와 존재할 경우 합성 신호에 대한 이전 코드북 스테이지들의 기여들의 합 간의 차이이다. 대안으로, 다른 최적화 기술이 이용될 수 있다.
도 4는 일 구현에 따른 코드북 파라미터를 결정하기 위한 기술을 나타낸다. 여기 파라미터화 컴포넌트(360)는 잠재적으로 레이트 제어기와 같은 다른 컴포넌트들과 함께 이 기술을 수행한다. 대안으로, 인코더 내의 다른 컴포넌트가 이 기술을 수행한다.
도 4를 참조하면, 유성음 또는 전이 프레임 내의 각 서브 프레임에 대해, 여기 파라미터화 컴포넌트(360)는 적응성 코드북이 현재 서브 프레임에 대해 사용될 수 있는지를 결정한다(410). (예를 들어, 레이트 제어는 어떠한 적응성 코드북도 특정 프레임에 대해 사용되지 말 것을 지시할 수 있다.) 적응성 코드북이 사용되지 않는 경우, 적응성 코드북 스위치는 적응성 코드북이 사용되지 않음을 지시할 것이다(435). 예를 들어, 이것은 프레임에서 어떠한 적응성 코드북도 사용되지 않음을 지시하는 프레임 레벨의 1비트 플래그를 설정함으로써, 프레임 레벨에서 특정 코딩 모드를 지정함으로써, 또는 서브 프레임에서 어떠한 적응성 코드북도 사용되지 않음을 지시하는 각 서브 프레임에 대한 1비트 플래그를 설정함으로써 행해질 수 있다.
도 4를 계속 참조하면, 적응성 코드북이 사용될 수 있는 경우, 컴포넌트(360)는 적응성 코드북 파라미터들을 결정한다. 이들 파라미터는 여기 신호 이력의 원하는 세그먼트를 지시하는 인덱스 또는 피치 값은 물론 원하는 세그먼트에 적용할 이득을 포함한다. 도 3 및 4에서, 컴포넌트(360)는 폐루프 피치 검색을 수행한다(420). 이 검색은 도 3에서 옵션인 개루프 피치 검색 컴포넌트(325)에 의해 피치가 결정되는 것으로부터 시작된다. 개루프 피치 검색 컴포넌트(325)는 가중 컴포넌트(350)에 의해 생성된 가중 신호를 분석하여 그의 피치를 추정한다. 이 추정된 피치와 함께 시작하여, 폐루프 피치 검색(420)은 피치 값을 최적화하여, 타겟 신호와 여기 신호 이력의 지시된 세그먼트로부터 생성된 가중 합성 신호 간의 에러를 감소시킨다. 적응성 코드북 이득 값도 최적화된다(425). 적응성 코드북 이득 값은 값들의 스케일을 조정하기 위해 피치 예측 값들(지시된 여기 신호 이력의 세그먼트로부터의 값들)에 적용할 승수를 지시한다. 피치 예측 값들을 곱한 이득은 현재의 프레임 또는 서브 프레임의 여기 신호에 대한 적응성 코드북 기여이다. 이득 최적화(425) 및 폐루프 피치 검색(420)은 각각은 타겟 신호와 적응성 코드북 기여로부터의 가중 합성 신호 간의 에러를 최소화하는 이득 값 및 인덱스 값을 생성한다.
컴포넌트(360)가 적응성 코드북이 사용될 것으로 결정(430)하는 경우, 적응성 코드북 파라미터들이 비트 스트림 내에서 시그널링된다(440). 그렇지 않은 경우, 예를 들어 전술한 바와 같이 1비트 서브 프레임 레벨 플래그를 설정함으로써 적응성 코드북이 서브 프레임에 대해 사용되지 않음이 지시된다(435). 이러한 결정(430)은 특정 서브 프레임에 대한 적응성 코드북 기여가 적응성 코드북 파라미터들을 시그널링하는 데 필요한 비트 수의 가치만큼 충분히 큰지를 결정하는 것을 포함할 수 있다. 대안으로, 결정을 위해 소정의 다른 근거가 이용될 수 있다. 더욱이, 도 4는 결정 후의 시그널링을 도시하고 있지만, 대안으로 신호들은 프레임 또는 수퍼 프레임에 대해 기술이 종료할 때까지 배치화될 수 있다.
여기 파라미터화 컴포넌트(360)는 또한 펄스 코드북이 사용되는지를 결정한다(450). 펄스 코드북의 사용 또는 비사용은 현재 프레임에 대한 전체 코딩 모드의 일부로서 지시되거나, 다른 방식으로 지시 또는 결정될 수 있다. 펄스 코드북은 여기 신호에 기여할 하나 이상의 펄스를 지정하는 일 유형의 고정 코드북이다. 펄스 코드북 파라미터는 인덱스 및 사인(이득은 양 또는 음일 수 있다)의 쌍을 포함한다. 각 쌍은 여기 신호에 포함될 펄스를 지시하는데, 인덱스는 펄스의 위치를 지시하고 사인은 펄스의 극성을 지시한다. 펄스 코드북에 포함되고 여기 신호에 기여하는 데 사용되는 펄스들의 수는 코딩 모드에 따라 다를 수 있다. 또한, 펄스들의 수는 적응성 코드북이 사용되고 있는지의 여부에 의존할 수 있다.
펄스 코드북이 사용되는 경우, 펄스 코드북 파라미터들은 지시된 펄스들의 기여와 타겟 신호 간의 에러를 최소화하도록 최적화된다(455). 적응성 코드북이 사용되지 않는 경우, 타겟 신호는 가중 최초 신호이다. 적응성 코드북이 사용되는 경우, 타겟 신호는 가중 최초 신호와 가중 합성 신호에 대한 적응성 코드북의 기여 간의 차이이다. 이어서, 소정의 포인트(도시되지 않음)에서, 펄스 코드북 파라미터들이 비트 스트림 내에서 시그널링된다.
여기 파라미터화 컴포넌트(360)는 또한 임의의 랜덤 고정 코드북 스테이지들이 사용될 것인지를 결정한다(465). 랜덤 코드북 스테이지들의 수(존재할 경우)는 현재 프레임에 대한 전체 코딩 모두의 일부로서 지시되거나, 다른 방식으로 지시 또는 결정될 수 있다. 랜덤 코드북은 이것이 인코딩하는 값들에 대해 사전 정의된 신호 모델을 이용하는 일 유형의 고정 코드북이다. 코드북 파라미터들은 신호 모델의 지시된 세그먼트에 대한 시작 포인트 및 양 또는 음일 수 있는 사인을 포함할 수 있다. 지시된 세그먼트의 길이 또는 범위는 일반적으로 고정되며, 따라서 일반적으로 시그널링되지 않지만, 대안으로 지시된 세그먼트의 길이 또는 범위가 시그널링된다. 이득에는 지시된 세그먼트 내의 값들이 곱해져, 여기 신호에 대한 랜덤 코드북의 기여가 산출된다.
적어도 하나의 랜덤 코드북 스테이지가 사용되는 경우, 그 코드북 스테이지에 대한 코드북 스테이지 파라미터들은 랜덤 코드북 스테이지의 기여와 타겟 신호 사이의 에러를 최소화하도록 최적화된다(470). 타겟 신호는 가중 최초 신호와, (존재할 경우) 적응성 코드북, (존재할 경우) 펄스 코드북 및 (존재할 경우) 이전 결정된 랜덤 코드북 스테이지들의 가중 합성 신호에 대한 기여의 합 간의 차이이다. 이어서, 소정의 포인트에서(도시되지 않음), 랜덤 코드북 파라미터들이 비트 스트림 내에서 시그널링된다.
이어서, 컴포넌트(360)는 임의의 랜덤 코드북 스테이지들이 더 사용될 것인지를 결정한다(480). 그러한 경우, 다음 랜덤 코드북 스테이지의 파라미터들이 전술한 바와 같이 최적화되고(470) 시그널링된다. 이것은 랜덤 코드북 스테이지들에 대한 모든 파라미터가 결정될 때까지 계속된다. 모든 랜덤 코드북 스테이지들은 아마도 모델로부터 상이한 세그먼트를 지시하고 상이한 이득 값을 가질 것이지만, 동일한 신호 모델을 이용할 수 있다. 대안으로, 상이한 랜덤 코드북 스테이지들에 대해 상이한 신호 모델들이 이용될 수 있다.
레이트 제어기 및/또는 다른 컴포넌트에 의해 결정되는 바와 같이, 각각의 여기 이득이 개별적으로 양자화되거나, 둘 이상의 이득이 함께 양자화될 수 있다.
본 명세서에서는 다양한 코드북 파라미터를 최적화하기 위해 특정 순서가 설명되지만, 다른 순서 또는 최적화 기술이 사용될 수도 있다. 예를 들어, 모든 랜덤 코드북이 동시에 최적화될 수 있다. 따라서, 도 4는 상이한 코드북 파라미터들의 순차적 계산을 도시하고 있지만, 대안으로 둘 이상의 상이한 코드북 파라미터가 함께 최적화된다(예를 들어, 파라미터들을 함께 변화시키고, 소정의 비선형 최적화 기술에 따라 결과를 평가함으로써). 또한, 코드북 또는 다른 여기 신호 파라미터들의 다른 구성이 이용될 수 있다.
본 구현에서 여기 신호는 적응성 코드북, 펄스 코드북, 및 랜덤 코드북 스테이지(들)의 임의의 기여들의 합이다. 대안으로, 컴포넌트(360)는 여기 신호에 대한 다른 및/또는 추가 파라미터를 계산할 수 있다.
도 3을 참조하면, 여기 신호에 대한 코드북 파라미터는 로컬 디코더(365)(도 3의 점선에 의해 둘러싸임)뿐만 아니라 프레임 출력(392)으로 시그널링 또는 제공된다. 따라서, 인코딩된 프레임 출력(392)은 전술한 LPC 처리 컴포넌트(335)로부터의 출력은 물론, 여기 파라미터화 컴포넌트(360)로부터의 출력도 포함한다.
출력(392)의 비트 레이트는 코드북에 의해 사용되는 파라미터들에 부분적으로 의존하며, 인코더(300)는 내장 코덱을 이용하거나 다른 기술을 이용한 상이한 코드북 인덱스들의 세트들 간의 스위칭에 의해 비트 레이트 및/또는 품질을 제어할 수 있다. 코드북 유형들 및 스테이지들의 상이한 조합은 상이한 프레임 및/또는 서브 프레임에 대해 상이한 인코딩 모드를 산출할 수 있다. 예를 들어, 무성음 프레임은 하나의 랜덤 코드북 스테이지만을 이용할 수 있다. 적응성 코드북 및 펄스 코드북은 낮은 레이트의 유성음 프레임에 대해 이용될 수 있다. 높은 레이트의 프레임은 적응성 코드북, 펄스 코드북, 및 하나 이상의 랜덤 코드북 스테이지를 이용하여 인코딩될 수 있다. 레이트 제어 모듈은 각 프레임에 대한 모드를 결정하거나 영향을 미칠 수 있다.
도 3을 계속 참조하면, 여기 파라미터화 컴포넌트(360)의 출력은 파라미터화 컴포넌트(360)에 의해 사용되는 코드북들에 대응하는 코드북 재구성 컴포넌트들(370, 372, 374, 376) 및 이득 적용 컴포넌트들(380, 382, 384, 386)에 의해 수신된다. 코드북 스테이지들(370, 372, 374, 376) 및 대응하는 이득 적용 컴포넌트들(380, 382, 384, 386)은 코드북들의 기여들을 재구성한다. 이들 기여는 합산되어 여기 신호(390)를 생성하고, 이는 합성 필터(340)에 의해 수신되고, 후속 선형 예측이 발생하는 "예측" 샘플들과 함께 이용된다. 여기 신호의 지연된 부분들도 여기 이력 신호로서, 적응성 코드북 재구성 컴포넌트(370)에 의해 후속 적응성 코드북 파라미터들(예를 들어, 피치 기여)을 재구성하는 데 사용되고, 파라미터화 컴포넌트(360)에 의해 후속 적응성 코드북 파라미터들(예를 들어, 피치 인덱스 및 피치 이득 값)을 계산하는 데 사용된다.
도 2를 다시 참조하면, 인코딩된 프레임 출력이 다른 파라미터들과 함께 MUX(236)에 의해 수신된다. 이러한 다른 파라미터들은 다른 정보 중에서 프레임 분류기(214)로부터의 프레임 클래스 정보(222) 및 프레임 인코딩 모드를 포함할 수 있다. MUX(236)는 다른 소프트웨어로 전송할 애플리케이션 계층 패킷들을 구성하거나, MUX(236)는 RTP와 같은 프로토콜을 따르는 패킷들의 페이로드에 데이터를 넣는다. MUX는 나중 패킷들에서의 순방향 에러 정정을 위해 파라미터들의 선택적인 반복을 허가하도록 파라미터들을 버퍼링할 수 있다. 일 구현에서, MUX(236)는 하나의 프레임에 대한 주요 인코딩된 음성 정보를 하나 이상의 이전 프레임의 모두 또는 일부에 대한 순방향 에러 정정 정보와 함께 단일 패킷으로 팩킹한다.
MUX(236)는 레이트 제어 목적으로 현재의 버퍼 충만도와 같은 피드백을 제공한다. 보다 일반적으로, 인코더(230)의 다양한 컴포넌트(프레임 분류기(214) 및 MUX(236)를 포함함)는 도 2에 도시된 것과 같은 레이트 제어기(220)에 정보를 제공할 수 있다.
도 2의 비트 스트림 DEMUX(276)는 인코딩된 음성 정보를 입력으로서 수신하고 이를 분석하여 파라미터들을 식별하고 처리한다. 파라미터들은 프레임 클래스, LPC 값들의 소정 표현, 및 코드북 파라미터들을 포함할 수 있다. 프레임 클래스는 주어진 프레임에 대해 어느 다른 파라미터들이 존재하는지를 지시할 수 있다. 보다 일반적으로, DEMUX(276)는 인코더(230)에 의해 사용되는 프로토콜들을 이용하고, 인코더(230)가 패킷들로 팩킹하는 파라미터들을 추출한다. 동적 패킷 교환 네트워크를 통해 수신된 패킷들에 대해, DEMUX(276)는 주어진 기간 동안의 패킷 레이트의 단기 변동을 완화하기 위한 지터 버퍼를 포함한다. 몇몇 경우에, 디코더(270)는 버퍼 지연을 조절하며, 지연, 품질 제어, 누락 프레임들의 은닉 등을 디코딩에 통합하기 위해 버퍼로부터 패킷들이 언제 판독될지를 관리한다. 다른 경우에, 애플리케이션 계층 컴포넌트는 지터 버퍼를 관리하며, 지터 버퍼는 가변 레이트로 채워지고, 일정하거나 비교적 일정한 레이트로 디코더(270)에 의해 비워진다.
DEMUX(276)는 주요 인코딩된 버전 및 하나 이상의 보조 에러 정정 버전을 포함하는 주어진 세그먼트에 대한 다수의 파라미터 버전을 수신할 수 있다. 에러 정정이 실패한 때, 디코더(270)는 후술하는 은닉 기술과 같은 은닉 기술을 이용한다.
도 5는 하나 이상의 설명되는 실시예가 관련하여 구현될 수 있는 일반화된 실시간 음성 프레임 디코더(500)의 블록도이다. 프레임 디코더(500)는 일반적으로 도 2의 프레임 디코딩 컴포넌트(272)에 대응한다.
프레임 디코더(500)는 인코딩된 음성 정보(592)를 입력으로서 수신하고, 디코딩 후 재구성된 출력(502)을 생성한다. 디코더(500)의 컴포넌트들은 인코더(300) 내에 대응하는 컴포넌트들을 갖지만, 전체적으로 디코더(500)가 더 간단한데, 디코더에는 지각 가중, 여기 처리 루프 및 레이트 제어를 위한 컴포넌트들이 없기 때문이다.
LPC 처리 컴포넌트(535)는 프레임 인코더(300)에 의해 제공되는 형태로 LPC 값들을 표현하는 정보(뿐만 아니라 임의의 양자화 파라미터들 및 재구성에 필요한 다른 정보)를 수신한다. LPC 처리 컴포넌트(535)는 LPC 값들에 대해 이전에 적용된 변환, 양자화, 인코딩 등의 역을 이용하여 LPC 값들(538)을 재구성한다. LPC 처리 컴포넌트(535)는 또한 (LPC 표현 또는 LSP와 같은 다른 표현에서) LPC 값들에 대한 보간을 수행하여, 상이한 LPC 계수 세트들 간의 전이를 매끄럽게 할 수 있다.
코드북 스테이지들(570, 572, 574, 576) 및 이득 적용 컴포넌트들(580, 582, 584, 586)은 여기 신호에 대해 사용되는 임의의 대응 코드북 스테이지의 파라미터들을 디코딩하고, 사용되는 각 코드북 스테이지의 기여를 계산한다. 보다 일반적으로, 코드북 스테이지들(570, 572, 574, 576) 및 이득 적용 컴포넌트들(580, 582, 584, 586)의 구성 및 동작은 인코더(300) 내의 코드북 스테이지들(370, 372, 374, 376) 및 이득 적용 컴포넌트들(380, 382, 384, 386)의 구성 및 동작에 대응한다. 사용되는 코드북 스테이지들의 기여들은 합산되며, 결과적인 여기 신호(590)가 합성 필터(540)로 공급된다. 여기 신호(590)의 지연 값들은 또한 적응성 코드북(570)에 의해 여기 신호의 후속 부분들에 대한 적응성 코드북의 기여를 계산하는 데에 여기 이력으로서 사용된다.
합성 필터(540)는 재구성된 LPC 값들(538)을 수신하고, 이들을 필터 내에 통합한다. 합성 필터(540)는 처리를 위해 이전에 재구성된 샘플들을 저장한다. 여기 신호(590)는 합성 필터를 통과하여 최초 음성 신호의 근사치를 형성한다.
도 2 내지 도 5에 도시된 관계들은 정보의 일반적인 흐름을 나타내며, 간략화를 위해 다른 관계들은 도시되어 있지 않다. 구현 및 원하는 압축 유형에 따라, 컴포넌트들은 추가, 생략, 다수의 컴포넌트로 분할, 다른 컴포넌트들과 조합, 및/또는 유사 컴포넌트들로 대체될 수 있다. 예를 들어, 도 2에 도시된 환경(200)에서, 레이트 제어기(220)는 음성 인코더(230)와 조합될 수 있다. 잠재적인 추가 컴포넌트는 음성 인코더(또는 디코더)뿐만 아니라 다른 인코더(또는 디코더)를 관리하고 네트워크 및 디코더 조건 정보를 수집하고 적응성 에러 정정 기능을 수행하는 멀티미디어 인코딩(또는 재생) 애플리케이션을 포함한다. 대안적 실시예들에서, 컴포넌트들의 상이한 조합 및 구성이 본 명세서에서 설명되는 기술들을 이용하여 음성 정보를 처리한다.
III. 로버스트 디코딩 기술 및 도구
다양한 로버스트 디코딩 기술 및 도구를 이용하여, 실시간 음성 코덱과 같은 음성 코덱으로부터 도출되는 음성의 품질이 향상된다. 다양한 로버스트 디코딩 기술 및 도구는 개별적으로 또는 조합하여 이용될 수 있다.
특정 컴퓨팅 환경 특징들 및 오디오 코덱 특징들이 위에 설명되었지만, 도구들 및 기술들 중 하나 이상은 다양한 상이한 유형의 컴퓨팅 환경 및/또는 다양한 상이한 유형의 코덱과 함께 이용될 수 있다. 예를 들어, 로버스트 디코딩 기술들 중 하나 이상은 적응성 차동 펄스 코드 변조 코덱, 변환 코덱 및/또는 다른 유형의 코덱과 같은 CELP 코딩 모델을 이용하지 않는 코덱들과 함께 이용될 수 있다. 다른 예로서, 로버스트 디코더 기술들 중 하나 이상은 단일 대역 코덱 또는 부대역 코덱과 함께 이용될 수 있다. 또 다른 예로서, 로버스트 디코더 기술들 중 하나 이상은 다중 대역 코덱의 단일 대역에, 그리고/또는 다중 대역 코덱의 다수 대역의 기여를 포함하는 합성되거나 인코딩되지 않은 신호에 적용될 수 있다.
A. 디코더측 VoIP
VoIP( Voice over Internet protocol) 애플리케이션들은 설명되는 코덱에 대한 가능한 이용들 중 하나이다. VoIP 애플리케이션들은 일반적으로 소위 "푸시 모드"(push mode) 또는 소위 "풀 모드"(pull mode)로 동작한다. 설명되는 기술들은 어느 하나의 모드에서, 또는 소정의 다른 모드에서 이용될 수 있다. 그러나, 현재의 VoIP 애플리케이션들의 대다수는 풀 모드 디코딩을 이용한다. 따라서, 도 6은 소정의 디코더측 풀 모드 동작들의 하나의 가능한 배열을 일반적인 형태로 도시하고 있다. 일반적으로, VoIP 애플리케이션(610)은 네트워크 소스(600)로부터 수신한 모든 패킷을, 원하는 버퍼링 지연을 결정할 것인 디코더(620)로 즉시 전달한다. 도 6에서, 디코더(620)는 신호의 누락 부분들의 은닉 태스크를 수신기 애플리케이션(610)에 위임하지 않고 후술하는 은닉 기술을 수행한다. 대안으로, 애플리케이션(610) 또는 소정의 다른 컴포넌트가 후술하는 은닉 기술을 수행한다.
풀 모드에서, 오디오 재생 컴포넌트인 렌더러(630)가 추가적인 인코딩된 오디오 정보를 재생할 필요가 있을 때, 렌더러는 정보를 요청한다(650). VoIP 애플리케이션(610)은 네트워크 소스(600)로부터 이용가능한 정보를 검색하고(655)(요청된 재생 기간 동안만은 아님), 이 정보를 디코더(620)에 푸시한다(660). 디코더(620)는 정보의 소정 부분(예를 들어, 요청된 재생 기간 동안의 샘플들)을 디코딩하고, 디코딩된 정보를 VoIP 애플리케이션(610)에 반환하며(655), 이 애플리케이션은 정보를 렌더러(630)에 제공한다(670).
하나 이상의 프레임이 누락되는 경우, 디코더(620)는 하나 이상의 은닉 기술을 수행하고, 결과적인 은닉 정보(예를 들어, 오디오 샘플)를 누락 프레임(들)의 실제 샘플들 대신에 VoIP 애플리케이션(610)에 반환한다. 렌더러(630)는 샘플들을 필요로 할 때 샘플들을 요청하므로, 그 타이밍은 렌더러(630)에 의해 사용되는 로컬 클럭에만 의존한다. 따라서, 이러한 설계는 약간 다른 클럭 레이트를 갖는 다수의 클럭에 의존할 수 있는 푸시 모드 디코더와 같은 다른 설계에서 발생할 수 있는 클럭 드리프트 문제를 자동으로 고려한다.
도 7에 도시된 바와 같이, 네트워크 소스(710)로부터 VoIP 애플리케이션에 의해 수신된 패킷들은 즉시 디코더로 전달되며, 디코더는 이들을 (오디오 신호에서의) 그 순서에 따라 지터 버퍼(720)에 배치한다. 도 7에 도시된 바와 같이, 지터 버퍼(720) 내의 "1"은 대응 패킷이 존재함을 지시하고, "0"은 대응 패킷이 존재하지 않음을 지시한다.
또한, 재생에 이용가능한 디코딩된 출력 샘플들을 유지하는 샘플 버퍼(730)가 존재한다. 렌더러(760)가 소정의 오디오를 재생하기를 원할 때, 렌더러는 디코더 샘플 버퍼(730)로부터 원하는 샘플들(750)을 취득한다. 샘플 버퍼(730)가 요청을 만족시킬 만큼 충분한 샘플들을 갖지 못한 경우, 디코더는 지터 버퍼(720)로 주의를 돌려 다음 패킷이 이용가능한지를 알아본다.
다음 패킷이 이용가능한 경우, 이 패킷이 디코딩되며, 디코딩된 샘플들은 샘플 버퍼(730) 내에 배치되고, 요청된 샘플들은 VoIP 애플리케이션을 통해 렌더러(760)로 전달된다. 반면, 패킷이 이용가능하지 않은 경우, 은닉 모듈을 호출하여 대체 샘플들을 생성한다. 대체 샘플들은 샘플 버퍼(730) 내에 배치되며, 요청이 만족된다. 어느 경우에나, 지터 버퍼는 시프팅될 수 있고, 지터 버퍼 헤드 정보(725)는 적절히 조정된다.
B. 패킷 지연 계산
몇몇 로버스트 디코딩 기술 및 도구에서, 디코더는 패킷 손실 레이트를 추적하고, 패킷 수신 시간들을 모니터링함으로써 네트워크 지연을 추정한다. 도 8은 예시적인 패킷 지연 분포를 나타낸다. 수신 패킷들의 이력은 임의의 지연 경향을 결정하고, 원하는 지연(Ddesired, 820)을 계산하는 데 사용될 수 있다. 원하는 지연(820)이 변경되거나, 패킷 지연 분포가 변경되는 경우(예를 들어, 네트워크 변동에 기인하여), 디코더는 지터 버퍼 지연을 동적으로 변경하고, 시간 압축/확장(또는 가변 재생) 기술들을 이용하여 디코딩할 수 있는데, 이는 정확한 피치를 유지하면서 오디오의 재생 시간을 변경한다. 이러한 기술들을 사용하면, 패킷 지연이 증가하는 것으로 관측될 때, 샘플 버퍼 내의 샘플들이 시간 확장될 수 있으며, 따라서 늦은 패킷들이 재생 지연, 상호작용 등을 위해 허용 가능한 소정 포인트까지 수용될 수 있게 된다. 유성음 프레임에 대해, 이것은 후술하는 WSOLA 기술을 이용하여 행해질 수 있다. 마찬가지로, 지연이 감소하는 것으로 관측되는 경우, 샘플 버퍼 내의 샘플들은 시간 압축될 수 있으며(더 빠르게 재생됨), 따라서 지터 버퍼는 꽉 차게 되지 않는다.
원하는 지연을 계산하는 종래의 접근 방식은 이전 패킷들의 최대 지연을 가이드로서 단순히 이용하는 것을 포함한다. 그러나, 때로는 아웃라이어들이 존재하여, 시스템이 비전형적인 패킷 지연 값들에 적응하게 할 수 있다. 또한, 때로는 아웃라이어인 늦은 패킷들을 수신하고 이용하기에 충분히 긴 지연을 부과하기보다는 소수의 패킷들이 너무 늦게 도달하여 재생될 수 없게 하는 것이 더 낫다. 몇몇 코덱은 이동 평균 및 이동 분산 계산과 같은 공식에 기초하여 원하는 지연을 계산한다. 하나의 예가 문헌[R. Ramjee, J.Kurose, D.Towsley, and H.Schulzrinne, "Adaptive Playout Mechanisms for Packetized Audio Applications in Wide area Networks," Proceedings of IEEE INFOCOM'94,pp.680-688, April 1994]에 설명되어 있다. 그러나, 이러한 계산에서는 많은 파라미터가 최적화되어야 하며, 한편으로는 계산과 응답 속도 사이의 올바른 타협점을 찾기가 어렵고, 다른 한편으로는 계산이 이력 값들의 전형적인 모집단에 기초하게 된다.
또 하나의 접근 방식은 예를 들어 문헌[C.J.Sreenan, J-C.Chen, P.Agrawal, and B.Narendran, "Delay Reduction Techniques for Playout Buffering," Proc. IEEE Trans. Multimedia, vol.2, no.2, pp.88-100, June 2000]에 설명되어 있는 콩코드 알고리즘의 구현을 이용함으로써 패킷 지연 분포(810)를 직접 분석하는 것이다. 그 방법에서, 패킷 지연들의 히스토그램이 유지된다. 히스토그램에서 계급의 폭은 최적 지연이 계산되는 바람직한 정확도를 나타낸다. 계급 크기의 감소는 정확도를 향상시키지만, 추적 복잡성을 증가시킨다. 히스토그램의 형상은 기반 패킷 지연 분포를 대략 반영한다. 새로운 패킷이 도달할 때, 패킷 지연은 대응 계급으로 맵핑되며, 그 계급 내에 있는 패킷들의 계수가 증분된다. 소정의 구 패킷들의 나이를 반영하기 위하여, 모든 다른 계급들의 계수들이 "에이징"이라는 프로세스에서 스케일 다운된다. 새로운 바람직한 지연을 찾기 위하여, 디코더는 원하는 손실 레이트(Ldesired, 830)를 설정한다. 전형적인 바람직한 손실 레이트 값들은 1% 내지 5% 사이의 범위이다. 이어서, 히스토그램을 분석하여, 손실 레이트를 달성하기 위해 원하는 지연이 어디에 있어야 하는지를 결정한다. 이러한 접근 방식의 문제점은 대역 폭 및 에이징 팩터와 같은 소정의 파라미터들이 조정되어야 한다는 것이다. 또한, 모든 구 패킷은 유사하게 처리되며, 에이징 접근 방식은 전체 성능에서 과도하게 큰 역할을 한다. 또한, 클럭 드리프트 상황이 발생할 때, 전체 지연은 양 또는 음의 경향을 갖는데, 이는 특히 히스토그램이 시간 지연 타임라인 내에서 정적으로 유지되어야 할 때 알고리즘을 더욱 복잡하게 할 수 있다.
본 명세서에서 설명되는 하나의 로버스트 디코딩 기술에서는, 한 세트 수의 패킷들의 지연들의 이력이 유지된다. 예를 들어, 이력 내에 포함되는 패킷들의 수는 500, 1000 또는 소정의 다른 적절한 수일 수 있다. 각각의 착신 패킷과 관련하여, 가장 오래된 패킷의 지연은 가장 새로운 패킷의 지연으로 대체되거나, 가장 오래된 패킷은 이력 내의 가장 새로운 패킷으로 대체된다. 이러한 방식으로, 가장 오래된 패킷만이 계산으로부터 제거된다. 도 8을 참조하면, 기록 상의 모든 패킷 지연의 이력에 기초하는 바람직한 계급 폭에 따라 패킷 지연 분포 히스토그램(810)이 생성된다. 최적의 바람직한 지연(820)은 바람직한 손실(830)에 대응하는 계급 지연 값이 되도록 결정된다. 이 기술은 에이징 방법에 의존하지 않는다. 따라서, 클럭 드리프트 상황으로부터 결과되는 문제들이 감소된다. 그러나, 각각의 새로운 패킷을 이용하여 새로운 히스토그램을 재생하기 위한 계산 요건은 일반적으로 높다. 예를 들어, 일 구현에서, 히스토그램 계산은 전체 디코더 복잡성의 약 10%를 소비하였다. 히스토그램을 스크래치로부터 재구축하지 않고 이전 히스토그램을 재사용함으로써 이러한 복잡성을 감소시키는 것이 가능할 수 있지만, 클럭 드리프트 상황이 발생하는 경우, 이것은 지연 히스토그램이 정적으로 유지되어야 하는 경우에도 지연 시간 축을 따라 시프트되는 것을 허용할 수 있다.
또 하나의 로버스트 디코딩 기술에서, 가변 패킷 지연에 적합한 최적 버퍼링 지연을 결정하기 위하여 데이터 구조가 사용된다. 특정 구현에서, 메모리에(예를 들어, 어레이에) 선형으로 배치된 지연 노드들의 이중 링크 리스트가 갱신은 물론 원하는 지연의 결정에 사용된다. 수신된 n번째 패킷에서의 이력은 History[n]={Dn,Dn-1,Dn-2,...,Dn-N+1}로 정의되는데, 여기서 이력의 크기는 N개 패킷이다. 이력 내에 표현되는 패킷들에 대한 지연 값들은 이중 링크 리스트 유형의 데이터 구조에 배치된다.
어레이 내에 4개의 노드(920, 922, 924, 926)를 갖는 이러한 데이터 구조(910)의 일례가 도 9에 도시되어 있다. 물론, 데이터 구조는 500 내지 1000 노드와 같은 훨씬 더 많은 노드를 포함할 수 있다. 그러나, 데이터 구조의 설명의 간략화를 위해 4개의 노드가 도시된다. 각 노드는 수신 패킷의 지연에 대응하는 지연 값(940)을 포함한다. 노드들(920, 922, 924, 926)은 메모리 내에 선형으로 배치될 수 있으며, 전체 노드를 통해 인덱스 P(930)가 순환될 수 있다. 따라서, 인덱스 P(930)는 어레이 내에서 현재 가장 오래된 패킷을 추적할 수 있다. 각 노드(920, 922, 924, 926)는 다음 포인터(950)(여기서는 간단히 노드의 필드) 및 이전 포인터(960)(여기서는 간단히 노드의 필드)를 갖는다. 각각의 다음 포인터(950)는 다음 상위 지연 값을 갖는 노드를 참조한다. 각각의 이전 포인터(960)는 다음 하위 지연 값을 갖는 노드를 참조한다. 따라서, 도 9에 도시된 데이터 구조에서는, Dn-1(P3에서)>Dn(P4에서)>Dn-2(P2에서)>Dn-3(P1에서)이다. 가장 오래된 패킷(P1)은 처음에 리스트의 시작에 있다.
각각의 새로운 패킷이 수신될 때, 패킷은 이력이 채워지는 포인트까지 구조(910)에 추가된다(예를 들어, 500 패킷이 추적됨). 이 포인트에서, 새로운 패킷이 수신될 때, 가장 오래된 패킷에 대한 정보를 포함하는 노드가 교체된다(예를 들어, 패킷 1이 패킷 501로 대체되고, 이제 가장 오래된 패킷은 패킷 2이며, 이어서 패킷 2는 패킷 502로 대체되고, 이제 가장 오래된 패킷은 패킷 3이다). 구 노드 정보가 교체될 때, 이전 및 다음 포인터들이 갱신된다. 새로운 지연 값에 대해, 지연 값들의 배열 리스트에서의 올바른 장소는 다음 포인터들을 통해 루핑함으로써 발견되며, 이어서 다음 및 이전 포인터들을 갱신함으로써 그 새로운 지연 값이 지연 값들의 배열 내에 삽입된다.
링크 리스트는 또한 리스트 내의 최고 지연에 대한 참조를 유지한다. 대응하는 바람직한 손실 레이트에 대한 최적의 바람직한 지연을 찾는 것이 바람직할 때, 디코더는 최고 지연에서 시작하여, 원하는 손실 레이트에 대응하는 노드들의 계수가 발견될 때까지 하위 지연들을 향하는 이전 포인터들을 따른다. 이것은 새로운 패킷이 수신될 때마다 또는 소정의 다른 간격으로 행해질 수 있다. 따라서, 소수의 노드들(예를 들어, 1% 내지 5%의 원하는 손실 값에 대해 1% 내지 5%)만이 트래버스되므로, 원하는 지연의 발견은 간단한 프로세스이다. 또한, 이것은 실제 히스토그램을 형성하지 않으므로 클럭 드리프트 문제에 대한 현실적인 솔루션을 제공할 수 있다. 따라서, 히스토그램의 시프팅 현상이 자동으로 처리된다. 또한, 계산이 계급 폭에 의해 지정되는 정확도로 제한되지 않는다. 따라서, 계산은 일반적인 히스토그램 기술에서보다 더 세밀하고 더 정확할 수 있다.
대안으로, 이중 링크 리스트는 선형 메모리 내에 어레이로서 구현되는 대신에 소정의 다른 유형의 동적 데이터 구조로서 구현된다.
C. 신호 종속 은닉
하나 이상의 패킷이 누락될 때, 여러 상이한 접근 방식 중 하나는 손실을 은닉하는 신호를 생성하는 데 사용될 수 있다. 신호의 특성 및 누락 패킷 또는 프레임의 수에 따라 적절한 은닉 기술이 선택될 수 있다.
신호 기술 결정의 일례가 도 10에 도시되어 있다. 대안으로 다른 결정이 이용된다. 도 10을 참조하면, 하나 이상의 누락 프레임을 만난다(1010). 하나 이상의 인접 프레임의 특성 및 누락 프레임의 수와 같은 하나 이상의 팩터에 기초하여 은닉 기술이 선택된다(1020). 대안으로, 선택을 위해 다른 및/또는 추가 팩터가 이용된다. 선택된 기술을 이용하여 은닉 신호가 생성된다(1030). 신호 종속 은닉 기술의 여러 예가 이어진다. 제1 유형의 신호 종속 은닉 기술에 따르면, 누락 유성음 프레임 또는 프레임들에 대해 과거 정보가 이용 가능하고, 선행하는 이용 가능 프레임이 유성음 프레임으로 분류될 때 유성 음성의 단방향 은닉이 사용된다. 미래 정보가 이용 가능할 때, 이용가능한 오디오 정보들 간의 갭이 너무 길어 실질적으로 양방향 은닉을 사용할 수 없거나 낮은 복잡성을 유지할 수 없을 경우, 또는 다른 이유로도 단방향 은닉이 사용될 수 있다.
파형 유사 중첩-추가 은닉 기술("WSOLA")은 단방향 은닉에 이용될 수 있다. WSOLA는 문헌[Y.J.Liang, N.Farber, and B.Girod, "Adaptive Playout Scheduling and Loss Concealment for Voice Communication over IP Networks," IEEE Transactions on Multimedia, vol.5, no.4, pp.532-543, Dec. 2003]에 설명되어 있다. WSOLA 기술은 기존 피치 사이클들의 가중 평균을 통해 새로운 피치 사이클을 생성함으로써 이전 신호를 확장한다. 다음 패킷이 수신될 때까지 이 기술을 이용하여 임의의 원하는 길이를 생성할 수 있다. 그러나, 많은 패킷이 손실되는 경우와 같이, 피치 확장이 너무 과다한 경우, WSOLA 방법은 기계적인 음성을 생성할 수 있다.
따라서, 본 로버스트 디코딩 기술에서는, 피치 확장이 너무 과다해지는 경우, 잡음이 추가될 수 있다. 잡음은 예를 들어 가장 늦게 수신된 오디오 신호에 대해 최적화된 선형 예측 계수 필터를 통과한 랜덤 화이트 잡음을 이용하여 생성될 수 있다. 잡음의 에너지는 확장이 증가함에 따라 증가할 수 있다. 후술하는 바와 같이, 피치 확장의 에너지는 또한, 남은 모든 것이 생성된 배경 잡음일 때까지 점차 감소할 수 있다.
확장된 신호는 나중에 수신된 패킷으로부터 생성된 나중 신호에 병합된다. 이것은 두 신호 사이의 상관성을 최대화하는 신호 매칭 루틴을 포함할 수 있다. 이 신호 매칭 루틴은 중복 신호들에 대한 대응 샘플 진폭들을 곱하고 결과적인 곱들을 합산하여 상관 값을 산출하는 상관 루틴과 같은 단순 상관 루틴일 수 있다. 나중 신호의 지연은 상관 값을 최대화하도록 조정될 수 있다. 대안으로, 다른 신호 매칭 루틴이 이용될 수 있다. 신호들은 병합 영역 전반에서 신호 에너지에 대해 일정한 효과를 갖도록 설계된 가중 윈도우와 같은 가중 윈도우를 이용하여 병합될 수 있다.
제2 유형의 신호 종속 은닉 기술에 따르면, 확장되는 신호가 특성상 무성음인 경우(즉, 신호에서 명확한 유성음 또는 피치 정보가 발견될 수 없는 경우), 신호를 확장하기 위해 상이한 알고리즘이 사용된다. 이 경우, 확장되는 신호는 대응하는 선형 예측 계수를 위해 분석되며, 이 계수를 이용하는 선형 예측 계수 필터를 랜덤 잡음이 통과하여, 확장될 신호와 병합될 합성 무성음 신호가 생성된다. 합성 신호의 에너지는 확장에 사용되는 신호로부터 도출된다. 일반적으로, 이러한 도출은 무성음 음성의 한 프레임을 절반으로 분할하고 각각의 절반을 병합하는 것을 포함할 수 있다. 이러한 도출의 일례가 도 11에 도시되어 있다. 도시된 예에서, 하나의 프레임에 대해 무성음 음성 신호(1110)가 이용가능하며, 후속 프레임에 대해 신호(1120)가 누락되어 있다. 무성음 음성 신호는 2개의 중복된 이용 가능 샘플 신호 또는 세그먼트(1130, 1140)로 분할된다. 좌측의 이용 가능 샘플들(1130)은 이용 가능 신호(1110)의 좌측 절반 플러스 평활화를 위한 우측 절반으로부터의 소수의 후속 샘플들을 포함한다. 예를 들어, 40 또는 80개의 후속 샘플들이 사용될 수 있다. 마찬가지로, 우측의 이용 가능 샘플들은 이용 가능 신호(1110)의 우측 절반 플러스 평활화를 위한 소수의 이전 샘플들을 포함한다.
좌측의 도출 샘플들(1150)은 좌측의 이용 가능 샘플들(1130)의 에너지에 기초하여 생성된다. 구체적으로, 좌측의 이용 가능 샘플들(1130)은 대응하는 선형 예측 계수들을 생성하기 위해 분석된다. 랜덤 잡음이 생성되고, 이들 대응하는 계수를 이용하는 선형 예측 계수 필터를 통과한다. 결과적인 신호는 이용 가능 샘플들(1130)의 신호 에너지와 동일한 신호 에너지를 갖도록 스케일링되어, 합성 무성음 신호 또는 좌측 도출 샘플들(1150)이 생성된다.
마찬가지로, 우측 도출 샘플들(1160)은 우측의 이용 가능 샘플들(1140)의 에너지에 기초하여 생성된다. 구체적으로, 우측의 이용가능 샘플들(1140)이 대응하는 선형 예측 계수들을 생성하도록 분석된다. 랜덤 잡음이 생성되고, 이들 대응하는 계수를 이용하는 선형 예측 계수 필터를 통과한다. 결과적인 신호가 이용 가능 샘플들(1140)의 신호 에너지와 동일한 신호 에너지를 갖도록 스케일링되어, 합성 무성음 신호 또는 우측 도출 샘플들(1160)이 생성된다.
도 11에 도시된 바와 같이, 4개의 샘플 세트는 좌에서 우로, 좌측 이용 가능 샘플들(1130), 좌측 도출 샘플들(1150), 우측 도출 샘플들(1160) 및 우측 이용 가능 샘플들(1140)의 순서로 배열된다. 중복 신호들(1130, 1140, 1150, 1160)은 가중 윈도우(1170)를 이용하여 병합되어, 결과 신호(1180)가 생성된다. 결과 신호(1180)의 지속 기간은 이용 가능 신호(1110) 및 누락 신호(1120)의 재생 시간을 커버하기에 충분하다. 후속 프레임들이 또한 누락되는 경우에 신호를 더 확장하기 위해 결과 신호(1180)는 또한 반복될 수 있다. 이 기술은 이용 가능 무성음 프레임 내의 에너지가 프레임 내에서 크게 증감하는 많은 상황에서도 잘 수행될 수 있을 것으로 믿어진다.
대안으로, 디코더는 도출, 병합 등을 위해 이용 가능 정보를 보다 많은 세그먼트로 분할한다.
제3 유형의 신호 종속 은닉 기술에 따르면, 과거 및 미래의 유성음 오디오 정보가 이용가능한 경우, 양방향 은닉 기술이 이용된다. 구체적으로, 이용 가능 오디오 정보들 간의 갭이 너무 길지 않은 경우(예를 들어, 3개 이하의 누락 프레임), 양측으로부터의 정보를 이용하여 갭을 채운다. 과거 정보는 과거와 미래의 이용가능 프레임들 사이의 중간점을 지나 1비트 확장되며, 미래 정보는 중간점을 지나 1비트 뒤로 확장된다. 예를 들어, 과거 및 미래 정보는 유성음 오디오에 대해 중간점을 지나 약 1 피치 길이로 확장되거나, 각각이 중간점을 지나 40 또는 80 샘플과 같은 소정의 몇몇 고정 양만큼 확장될 수 있다. 신호들 중 하나 또는 양자는 WSOLA 방법, 전술한 무성음 은닉 기술, 및/또는 소정의 다른 방법을 이용하여 확장될 수 있다. 예를 들어, 과거 정보가 유성음이고, 미래 정보가 무성음인 경우, 전술한 제1 기술을 이용하여 과거 정보를 확장하고, 제2 기술을 이용하여 미래 정보를 확장할 수 있다. 유성음 신호에 대해, 전술한 것과 같은 신호 매칭 루틴을 이용하여 신호들이 과거 및 미래 단부들 및 중간점에서 최상 위치에서 병합되는 것을 보증할 수 있다. 신호들이 유성음이든, 무성음이든, 양자이든 간에, 신호들은 병합 영역에서 대략 일정하게 신호 에너지를 유지하도록 설계된 가중 윈도우와 같은 가중 윈도우를 이용하여 병합될 수 있다. 이러한 양방향 은닉이 이용될 때 일반적으로 잡음은 신호에 추가되지 않는다.
전술한 제1 또는 제2 유형의 신호 종속 은닉 기술에서, 수신 패킷 없이 확장 기간이 존재할 때, 전술한 기술들 중 하나를 이용하여 생성되는 확장된 유성음 또는 무성음 신호의 에너지는 점차로 감소하며, 생성되는 배경 잡음은 결과 신호가 이전에 결정된 배경 잡음의 에너지 레벨에 도달할 때까지 점차로 증가한다. 이것은 장기간 확장되는 신호로부터 결과될 수 있는 울리는 음성 및 기계적 음성과 같은 인공 음성을 줄이는 데 도움이 된다. 이 기술은 임의의 안락 잡음 생성 없이 음성 활동 검출을 이용하는 애플리케이션들에서 특히 유용하다. 이러한 애플리케이션들에서, 음성 활동이 중지될 때(예를 들어, 문장들 사이에서 중지할 때, 또는 다른 발성자가 얘기하는 동안), 송신자 애플리케이션은 침묵 기간 동안 패킷들의 전송을 간단히 중지한다. 이 경우, 디코더는 그 기간 동안 누락 프레임을 만날 수 있지만, 디코더는 침묵 기간 동안의 바람직한 응답인 배경 잡음으로 복귀할 수 있다. 일 구현에서, 신호가 약 2 프레임 동안 연장된 후에 잡음이 점차 도입되기 시작하며, 일반적으로 잡음은 약 4 프레임 후에 청취자에게 인지 가능하게 된다. 신호가 약 6 또는 7 프레임 동안 확장될 때까지, 배경 잡음만이 남는다. 이러한 시간들은 상이한 환경에서 청취자들에게 인지되는 오디오 품질에 기초하여 조정될 수 있다.
D. 피치 지터링
WSOLA 기술 또는 다른 유성음 음성 확장 기술을 이용할 때, 이전 프레임 또는 프레임들과 같은 이전 신호 세그먼트의 피치 특성들을 이용하여 신호가 생성될 수 있다. 결과적인 신호 세그먼트는 종종, 때로는 많은 패킷의 손실을 은닉하기 위해 신호를 확장하는 데 재사용된다. 이러한 피치 반복을 통한 신호의 반복 확장(예를 들어, WSOLA 기술을 이용함)은 울리는 음성 또는 기계적 음성을 생성할 수 있다. WSOLA 기술에서 사용되는 가중 자체는 이러한 효과를 줄이는 데 도움이 된다. 전술한 것들과 같은 잡음 추가 기술은 이러한 효과를 더 줄일 수 있다.
울리는 음성 또는 기계적 음성은 또한, 신호가 확장될 때 후속 샘플들에서 피치 크기/오프셋에 랜덤, 의사 랜덤 또는 다른 조정 팩터를 추가함으로써 감소될 수 있다. 따라서, 정확한 크기의 피치 사이클에서 신호를 확장하는 대신에, 피치 크기에 팩터를 추가함으로써, 신호가 정확하게 고정된 피치 레이트를 좀처럼 갖지 않는 자연 음성을 더 가깝게 닮게 한다. 확장의 길이가 증가함에 따라 팩터는 크기가 증가할 수 있다.
이 기술은 팩터들의 시퀀스를 포함하고 팩터들의 범위의 크기가 점차 증가하는 팩터 표 또는 리스트를 이용함으로써 구현될 수 있다. 일례로, 오프셋 조정 팩터는 제1 피치 사이클에 대해 0개 샘플일 수 있고, 제2 사이클에 대해서는 -1개, 제3 피치 사이클에 대해서는 +1개, 제4 사이클에 대해서는 +2개, 제5 사이클에 대해서는 -1개 등등일 수 있다. 또는, 조정 팩터는 디코딩 동안 적용 가능한 범위로부터 랜덤/의사 랜덤하게 선택될 수 있다. 일 구현에서, 랜덤 팩터들의 최대 범위는 -3 샘플에서 +3 샘플이다. 그러나, 범위의 크기는 청취 테스트에 기초하여 조정될 수 있다. 대안으로, 다른 기술을 이용하여 조정 팩터를 생성할 수 있으며, 그리고/또는 다른 범위의 조정 팩터가 사용될 수 있다.
피치 사이클들(WSOLA 가중, 잡음 추가 및 피치 지터링)의 반복으로부터 바람직하지 않은 음성 효과들을 줄이기 위한 전술한 세 가지 기술은 개별적으로 또는 조합하여 사용될 수 있다. 이들 기술의 파라미터들의 반복 조정은 특정 구현들에서 보다 바람직한 결과를 생성하기 위해 행해질 수 있다.
E. 디코더 메모리 복구
제한된 내부 메모리를 갖거나 내부 메모리가 없는 디코더들은 VoIP 애플리케이션들을 이용하기에 적절히 간단하다. 이 경우, 패킷 손실은 인코더 및 디코더를 비동기화시키지 않는데, 이는 현재 정보를 디코딩할 때 이전 정보에 대해 커다란 메모리(과거 이력) 종속성이 존재하지 않기 때문이다. 그러나, 이러한 음성 코덱은 일반적으로 비트 레이트와 관련해서는 그렇게 효율적이지 않다. 비트 레이트가 낮은 코덱에서는, 일반적으로 낮은 비트 레이트에서 품질을 개선하기 위해 도입되는 강한 메모리 종속성이 존재한다. 이것은 보관 목적의 압축과 같은 소정의 애플리케이션들에서는 문제가 아닐 수 있다. 그러나, 이러한 코덱이 VoIP 애플리케이션들과 같은 다른 애플리케이션들에서 사용될 때, 패킷들은 종종 손실된다. 여기 신호를 생성하기 위한 적응성 코드북의 메모리 종속성과 같은 메모리 종속성은 디코더에서 패킷 손실을 넘어 왜곡 확장을 유발할 수 있다.
후속 패킷들에 의해 이력 신호로서 사용하기 위한 대체 정보를 생성하는 데 이용될 수 있는 다음의 기술이 일반적으로 도 12에 도시되어 있다. 대안으로, 다른 및/또는 추가 기술들이 이용된다.
먼저, 디코더는 하나 이상의 누락 프레임에 대한 은닉 신호를 생성한다(1210). 이러한 방식으로, 누락 프레임은 다음 수신 패킷으로부터 이용가능한 신호의 일부까지 은닉된다. 전술한 신호 종속 기술들은 예를 들어 이러한 은닉에 이용될 수 있다. 대안으로, 다른 은닉 기술들이 은닉에 이용될 수 있다.
이어서, 디코더는 은닉 신호에 대해 적어도 부분적인 디코딩(및 재구성)을 수행한다(1220). 예를 들어, 디코더는 하나 이상의 은닉 기술에 의해 생성된 은닉 신호를 단순화된 페이크 인코더(디코더 내에 위치)에 통과시켜 디코더 내부 상태를 재생한다. 이것은 일반적으로 후속 디코딩에서 누락 프레임으로부터의 복구를 가속화한다.
특정 구현에서, 은닉 신호를 처리하여 누락 여기 신호 이력을 대체할 수 있는 대응하는 잔여 신호를 생성한다. 이것은 은닉 신호를 선형 예측 합성 필터(또는, 다른 말로 선형 예측 분석 필터)의 역에 통과시킴으로써 행해질 수 있다. 합성 필터 기술에서(예를 들어, 전술한 컴포넌트(540)에서), 필터는 재구성된 선형 예측 계수를 이용하여 재구성된 잔여 신호를 처리하여 조합 또는 합성된 신호를 생성한다. 대조적으로, 이 기술의 선형 예측 분석 필터는 공지된 선형 예측 계수를 이용하여 디코더 생성 신호(여기서는 은닉 신호)를 처리하여 대체 잔여 신호를 생성한다.
이전 프레임의 선형 예측 계수는 선형 예측 분석 필터에서 사용될 수 있다. 대안으로, 새로운 선형 예측 계수가 은닉 신호를 분석함으로써 계산될 수 있다. 이것은 선형 예측 분석 컴포넌트(330)와 관련하여 전술한 기술들을 이용하여 행해질 수 있다. 은닉 신호에 대한 새로운 선형 예측 계수를 계산함으로써 보다 양호한 결과들이 얻어질 수 있을 것으로 믿어진다. 그러나, 이전 프레임으로부터의 선형 예측 계수를 이용하는 것이 더 간단하다. 대안으로, 디코더는 이러한 선형 예측 계수들의 소정의 조합, 또는 대역폭 확장과 같은 소정의 다른 방법을 이용한다.
누락 프레임의 여기 이력을 사용하는 대신에, 이 기술로부터 결과되는 신호가 디코더에 의해 후속 적응성 코드북 계산을 위한 메모리로서 사용될 수 있다.
은닉 신호는 일반적으로 완전하지 않기 때문에, 디코더에 의해 생성되는 대체 잔여 신호는 여전히, 단지, 누락 프레임이 디코딩되었을 경우에 생성되었을 실제 메모리, 또는 이력의 근사치이다. 그러나, 그렇더라도, 디코더는 누락 프레임에 대한 여기 이력이 존재하지 않은 환경에서보다 훨씬 빠르게 올바른 상태로 다시 수렴될 수 있다. 따라서, 이 기술은 손실 패킷들에 이어지는 디코딩된 신호의 품질을 크게 개선할 수 있을 것으로 믿어진다.
이 기술은 또한, 누락 프레임에 이어지는 다음 프레임이 큰 메모리 종속성을 갖는 경우에 양방향 은닉의 목적으로 이용될 수 있다. 이 경우, 양방향 은닉은, 첫째로 누락 프레임에 대한 단방향 은닉을 수행하고, 둘째로 이 은닉을 이용하여 다음 프레임에 대한 근사 메모리를 재생하고, 셋째로 재생된 메모리를 이용하여 다음 프레임을 디코딩하고, 넷째로 다음 프레임 및 누락 프레임에 선행하는 프레임을 이용하여 누락 프레임의 양방향 은닉을 수행함으로써 달성될 수 있다. 이러한 양방향 은닉은 다음 프레임에 대한 메모리 없이 단순히 단방향 은닉 또는 양방향 은닉을 이용하는 것보다 양호한 결과를 산출할 것으로 믿어진다.
설명된 실시예와 관련하여 본 발명의 원리를 설명하고 도시하였지만, 설명된 실시예들은 그러한 원리를 벗어나지 않고 배열 및 상세에 있어서 변경될 수 있음을 이해할 것이다. 본 명세서에 설명되는 프로그램, 프로세스 또는 방법은 달리 지시되지 않는 한은 임의의 특정 유형의 컴퓨팅 환경과 관련되거나 그에 한정되지 않는다는 것을 이해해야 한다. 다양한 유형의 범용 또는 특수 컴퓨팅 환경이 함께 이용되거나, 본 명세서에 설명되는 가르침에 따라 동작들을 수행할 수 있다. 소프트웨어로 나타낸 설명된 실시예들의 요소들은 하드웨어로 구현될 수 있으며, 그 역도 마찬가지다.
본 발명의 원리가 적용될 수 있는 많은 가능한 실시예에 비추어, 아래의 청구의 범위 및 그의 균등물의 범위 및 사상 안에 있을 수 있는 모든 그러한 실시예들을 본 발명으로서 청구한다.

Claims (30)

  1. 컴퓨터에 의해 구현되는, 오디오 정보 처리 방법으로서,
    상기 방법은,
    오디오 신호에 대한 비트 스트림을 처리하는 단계; 및
    결과를 출력하는 단계
    를 포함하고,
    상기 처리하는 단계는, 상기 비트 스트림을 처리하는 동안 하나 이상의 누락 프레임(missing frame)을 만나는 경우,
    컴퓨터 프로세서에서, 복수의 이용가능한 신호 종속 은닉 기술(signal-dependent concealment techniques) 중에서 하나의 은닉 기술을 하나 이상의 인자에 기초하여 선택하는 단계; 및
    상기 선택된 은닉 기술을 수행하는 단계
    를 포함하고,
    상기 하나 이상의 인자는, 상기 오디오 신호에서 상기 하나 이상의 누락 프레임보다 이전의 지점으로부터의 이용가능 이전 프레임(available prior frame)의 분류, 상기 오디오 신호에서 상기 하나 이상의 누락 프레임보다 나중의 지점으로부터의 이용가능 다음 프레임(available following frame)의 분류, 및 상기 하나 이상의 누락 프레임들의 개수(count) 중 적어도 하나 이상을 포함하며,
    상기 개수는 누락되는 연속 프레임의 수를 가리키고,
    상기 이용가능 이전 프레임 및 상기 이용가능 다음 프레임의 분류는 유성음(voiced) 및 무성음(unvoiced)을 포함하는 한 세트의 가능한 분류들 중 하나이고,
    상기 이용가능 이전 프레임의 분류 및 상기 이용가능 다음 프레임의 분류가 모두 유성음이고 상기 하나 이상의 누락 프레임의 상기 개수가 임계값보다 작은 경우, 상기 선택된 은닉 기술은 양방향 은닉을 포함하고,
    상기 이용가능 이전 프레임의 분류가 유성음이고 상기 하나 이상의 누락 프레임의 상기 개수가 임계치보다 큰 경우, 상기 선택된 은닉 기술은 단방향 은닉을 포함하는, 오디오 정보 처리 방법.
  2. 제1항에 있어서,
    상기 이용가능 이전 프레임의 분류가 유성음인 경우, 피치 확장 기술을 이용하여 상기 선택된 은닉 기술은 은닉 신호를 생성하는 것을 포함하고,
    상기 이용가능 이전 프레임의 분류가 무성음인 경우, 상기 선택된 은닉 기술은, 상기 이용가능 이전 프레임의 에너지에 기초하여 상기 은닉 신호를 생성하는 것을 포함하는, 오디오 정보 처리 방법.
  3. 제1항에 있어서,
    상기 이용가능 이전 프레임의 분류가 유성음인 경우, 상기 선택된 은닉 기술은, 은닉 신호가 임계 지속 기간(threshold duration)보다 긴 경우 노이즈를 상기 은닉 신호에 부가하는 것을 포함하는, 오디오 정보 처리 방법.
  4. 제1항에 있어서,
    상기 이용가능 이전 프레임의 분류가 무성음인 경우, 상기 선택된 은닉 기술은,
    상기 이용가능 이전 프레임의 복수의 세그먼트를 식별하는 것;
    상기 복수의 이전 프레임 세그먼트를 이용하여 복수의 은닉 신호 세그먼트를 생성하는 것; 및
    상기 복수의 이전 프레임 세그먼트를 상기 복수의 은닉 신호 세그먼트와 함께 병합하여 은닉 신호를 생성하는 것
    을 포함하는, 오디오 정보 처리 방법.
  5. 제1항에 있어서,
    상기 선택된 은닉 기술은,
    확장 신호를 생성하는 것; 및
    상기 확장 신호에 노이즈를 부가하여 은닉 신호를 생성하는 것
    을 포함하는, 오디오 정보 처리 방법.
  6. 제5항에 있어서,
    상기 선택된 은닉 기술은,
    상기 오디오 신호의 적어도 일부를 따라 상기 확장 신호의 에너지를 점차로 감소시키는 것; 및
    상기 오디오 신호의 적어도 일부를 따라 상기 노이즈의 에너지를 점차로 증가시키는 것
    을 더 포함하는, 오디오 정보 처리 방법.
  7. 제1항에 있어서,
    상기 이용가능 이전 프레임의 분류가 무성음인 경우, 상기 선택된 은닉 기술은, 유성음 콘텐츠에 대한 상기 단방향 은닉 기술과는 상이한 단방향 은닉 기술을 포함하는, 오디오 정보 처리 방법.
  8. 제1항에 있어서,
    상기 선택된 은닉 기술은,
    하나 이상의 이전 프레임에서의 적어도 하나의 피치 싸이클에 기초하여 은닉 신호를 생성하고, 피치 지터(pitch jitter)를 도입하는 것을 포함하며, 상기 피치 지터를 도입하는 것은,
    상기 은닉 신호에 대한 피치에 랜덤 또는 의사 랜덤 피치 오프셋 조정 인자들을 부가하는 것을 포함하는, 오디오 정보 처리 방법.
  9. 제8항에 있어서, 상기 랜덤 또는 의사 랜덤 피치 오프셋 조정 인자(random or pseudorandom pitch offset adjustment factors)들은 양의 값 및 음의 값을 포함하는, 오디오 정보 처리 방법.
  10. 제8항에 있어서,
    상기 은닉 신호를 이루는 복수의 부분 각각에 개별적인 랜덤 또는 의사 랜덤 피치 오프셋 조정 인자가 적용되는, 오디오 정보 처리 방법.
  11. 제8항에 있어서,
    상기 도입하는 것은, 상기 하나 이상의 이전 프레임으로부터의 거리가 증가함에 따라 상기 피치 지터를 증가시키는 것을 포함하는, 오디오 정보 처리 방법.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020077026019A 2005-05-31 2006-04-05 로버스트 디코더 KR101265874B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/142,602 US7831421B2 (en) 2005-05-31 2005-05-31 Robust decoder
US11/142,602 2005-05-31

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020127033153A Division KR101344110B1 (ko) 2005-05-31 2006-04-05 로버스트 디코더

Publications (2)

Publication Number Publication Date
KR20080011186A KR20080011186A (ko) 2008-01-31
KR101265874B1 true KR101265874B1 (ko) 2013-05-20

Family

ID=37464579

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020077026019A KR101265874B1 (ko) 2005-05-31 2006-04-05 로버스트 디코더
KR1020127033153A KR101344110B1 (ko) 2005-05-31 2006-04-05 로버스트 디코더

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020127033153A KR101344110B1 (ko) 2005-05-31 2006-04-05 로버스트 디코더

Country Status (10)

Country Link
US (3) US7831421B2 (ko)
EP (1) EP1886307B1 (ko)
JP (1) JP5072835B2 (ko)
KR (2) KR101265874B1 (ko)
CN (1) CN101268351B (ko)
AU (1) AU2006252972B2 (ko)
CA (1) CA2607952C (ko)
HK (1) HK1124660A1 (ko)
NO (1) NO339756B1 (ko)
WO (1) WO2006130236A2 (ko)

Families Citing this family (75)

* 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
AU2001241475A1 (en) * 2000-02-11 2001-08-20 Comsat Corporation Background noise reduction in sinusoidal based speech coding systems
WO2002050782A2 (en) * 2000-12-19 2002-06-27 Azoteq (Pty) Ltd Method of and apparatus for transferring data
US7668712B2 (en) * 2004-03-31 2010-02-23 Microsoft Corporation Audio encoding and decoding with intra frames and adaptive forward error correction
US7359409B2 (en) * 2005-02-02 2008-04-15 Texas Instruments Incorporated Packet loss concealment for voice over packet networks
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
US8620644B2 (en) * 2005-10-26 2013-12-31 Qualcomm Incorporated Encoder-assisted frame loss concealment techniques for audio coding
US7805297B2 (en) * 2005-11-23 2010-09-28 Broadcom Corporation Classification-based frame loss concealment for audio signals
FR2897977A1 (fr) * 2006-02-28 2007-08-31 France Telecom Procede de limitation de gain d'excitation adaptative dans un decodeur audio
KR100900438B1 (ko) * 2006-04-25 2009-06-01 삼성전자주식회사 음성 패킷 복구 장치 및 방법
US7461106B2 (en) * 2006-09-12 2008-12-02 Motorola, Inc. Apparatus and method for low complexity combinatorial coding of signals
US7698166B2 (en) * 2006-10-25 2010-04-13 Microsoft Corporation Import/export tax to deal with ad trade deficits
US20080103897A1 (en) * 2006-10-25 2008-05-01 Microsoft Corporation Normalizing and tracking user attributes for transactions in an advertising exchange
US20080103837A1 (en) * 2006-10-25 2008-05-01 Microsoft Corporation Risk reduction for participants in an online advertising exchange
US20080103953A1 (en) * 2006-10-25 2008-05-01 Microsoft Corporation Tool for optimizing advertising across disparate advertising networks
US20080103795A1 (en) * 2006-10-25 2008-05-01 Microsoft Corporation Lightweight and heavyweight interfaces to federated advertising marketplace
US20080103902A1 (en) * 2006-10-25 2008-05-01 Microsoft Corporation Orchestration and/or exploration of different advertising channels in a federated advertising network
US20080103900A1 (en) * 2006-10-25 2008-05-01 Microsoft Corporation Sharing value back to distributed information providers in an advertising exchange
US20080103952A1 (en) * 2006-10-25 2008-05-01 Microsoft Corporation Specifying and normalizing utility functions of participants in an advertising exchange
US20080103792A1 (en) * 2006-10-25 2008-05-01 Microsoft Corporation Decision support for tax rate selection
US20080103898A1 (en) * 2006-10-25 2008-05-01 Microsoft Corporation Specifying and normalizing utility functions of participants in an advertising exchange
US20080103955A1 (en) * 2006-10-25 2008-05-01 Microsoft Corporation Accounting for trusted participants in an online advertising exchange
US20080103896A1 (en) * 2006-10-25 2008-05-01 Microsoft Corporation Specifying, normalizing and tracking display properties for transactions in an advertising exchange
US8788343B2 (en) * 2006-10-25 2014-07-22 Microsoft Corporation Price determination and inventory allocation based on spot and futures markets in future site channels for online advertising
US8589233B2 (en) * 2006-10-25 2013-11-19 Microsoft Corporation Arbitrage broker for online advertising exchange
US8533049B2 (en) * 2006-10-25 2013-09-10 Microsoft Corporation Value add broker for federated advertising exchange
KR101291193B1 (ko) * 2006-11-30 2013-07-31 삼성전자주식회사 프레임 오류은닉방법
US7949890B2 (en) * 2007-01-31 2011-05-24 Net Power And Light, Inc. Method and system for precise synchronization of audio and video streams during a distributed communication session with multiple participants
GB0704622D0 (en) * 2007-03-09 2007-04-18 Skype Ltd Speech coding system and method
EP2381580A1 (en) * 2007-04-13 2011-10-26 Global IP Solutions (GIPS) AB Adaptive, scalable packet loss recovery
EP2112653A4 (en) * 2007-05-24 2013-09-11 Panasonic Corp AUDIO DEODICATION DEVICE, AUDIO CODING METHOD, PROGRAM AND INTEGRATED CIRCUIT
US8185388B2 (en) * 2007-07-30 2012-05-22 Huawei Technologies Co., Ltd. Apparatus for improving packet loss, frame erasure, or jitter concealment
EP2186089B1 (en) * 2007-08-27 2018-10-03 Telefonaktiebolaget LM Ericsson (publ) Method and device for perceptual spectral decoding of an audio signal including filling of spectral holes
JP2009063928A (ja) * 2007-09-07 2009-03-26 Fujitsu Ltd 補間方法、情報処理装置
US8576096B2 (en) * 2007-10-11 2013-11-05 Motorola Mobility Llc Apparatus and method for low complexity combinatorial coding of signals
US20090234642A1 (en) * 2008-03-13 2009-09-17 Motorola, Inc. Method and Apparatus for Low Complexity Combinatorial Coding of Signals
US8639519B2 (en) * 2008-04-09 2014-01-28 Motorola Mobility Llc Method and apparatus for selective signal coding based on core encoder performance
DE102008042579B4 (de) * 2008-10-02 2020-07-23 Robert Bosch Gmbh Verfahren zur Fehlerverdeckung bei fehlerhafter Übertragung von Sprachdaten
US8706479B2 (en) * 2008-11-14 2014-04-22 Broadcom Corporation Packet loss concealment for sub-band codecs
US8117039B2 (en) * 2008-12-15 2012-02-14 Ericsson Television, Inc. Multi-staging recursive audio frame-based resampling and time mapping
US8175888B2 (en) 2008-12-29 2012-05-08 Motorola Mobility, Inc. Enhanced layered gain factor balancing within a multiple-channel audio coding system
US8428938B2 (en) * 2009-06-04 2013-04-23 Qualcomm Incorporated Systems and methods for reconstructing an erased speech frame
KR101761629B1 (ko) * 2009-11-24 2017-07-26 엘지전자 주식회사 오디오 신호 처리 방법 및 장치
US8423355B2 (en) * 2010-03-05 2013-04-16 Motorola Mobility Llc Encoder for audio signal including generic audio and speech frames
US8428936B2 (en) * 2010-03-05 2013-04-23 Motorola Mobility Llc Decoder for audio signal including generic audio and speech frames
US20110257964A1 (en) * 2010-04-16 2011-10-20 Rathonyi Bela Minimizing Speech Delay in Communication Devices
US8612242B2 (en) * 2010-04-16 2013-12-17 St-Ericsson Sa Minimizing speech delay in communication devices
IL205394A (en) * 2010-04-28 2016-09-29 Verint Systems Ltd A system and method for automatically identifying a speech encoding scheme
WO2012044067A1 (ko) * 2010-09-28 2012-04-05 한국전자통신연구원 적응 코드북 업데이트를 이용한 오디오 신호 디코딩 방법 및 장치
KR20120032444A (ko) 2010-09-28 2012-04-05 한국전자통신연구원 적응 코드북 업데이트를 이용한 오디오 신호 디코딩 방법 및 장치
US9177570B2 (en) 2011-04-15 2015-11-03 St-Ericsson Sa Time scaling of audio frames to adapt audio processing to communications network timing
US8773291B2 (en) * 2012-02-13 2014-07-08 Intel Corporation Audio receiver and sample rate converter without PLL or clock recovery
WO2014004708A1 (en) * 2012-06-28 2014-01-03 Dolby Laboratories Licensing Corporation Call quality estimation by lost packet classification
CN103888630A (zh) * 2012-12-20 2014-06-25 杜比实验室特许公司 用于控制声学回声消除的方法和音频处理装置
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.
PT3011561T (pt) 2013-06-21 2017-07-25 Fraunhofer Ges Forschung Aparelho e método para desvanecimento de sinal aperfeiçoado em diferentes domínios durante ocultação de erros
CN108364657B (zh) 2013-07-16 2020-10-30 超清编解码有限公司 处理丢失帧的方法和解码器
CN104299614B (zh) * 2013-07-16 2017-12-29 华为技术有限公司 解码方法和解码装置
FR3013496A1 (fr) * 2013-11-15 2015-05-22 Orange Transition d'un codage/decodage par transformee vers un codage/decodage predictif
US9437211B1 (en) * 2013-11-18 2016-09-06 QoSound, Inc. Adaptive delay for enhanced speech processing
CN105336339B (zh) * 2014-06-03 2019-05-03 华为技术有限公司 一种语音频信号的处理方法和装置
JP6490715B2 (ja) * 2014-06-13 2019-03-27 テレフオンアクチーボラゲット エルエム エリクソン(パブル) フレーム喪失隠蔽のための方法、受信エンティティ、及びコンピュータプログラム
CN106683681B (zh) * 2014-06-25 2020-09-25 华为技术有限公司 处理丢失帧的方法和装置
WO2016016724A2 (ko) * 2014-07-28 2016-02-04 삼성전자 주식회사 패킷 손실 은닉방법 및 장치와 이를 적용한 복호화방법 및 장치
US9972334B2 (en) * 2015-09-10 2018-05-15 Qualcomm Incorporated Decoder audio classification
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
CN107845385B (zh) * 2016-09-19 2021-07-13 南宁富桂精密工业有限公司 信息隐藏的编解码方法及系统
US10354660B2 (en) * 2017-04-28 2019-07-16 Cisco Technology, Inc. Audio frame labeling to achieve unequal error protection for audio frames of unequal importance
US10803876B2 (en) * 2018-12-21 2020-10-13 Microsoft Technology Licensing, Llc Combined forward and backward extrapolation of lost network data
US10784988B2 (en) 2018-12-21 2020-09-22 Microsoft Technology Licensing, Llc Conditional forward error correction for network data
EP3928312A1 (en) * 2019-02-21 2021-12-29 Telefonaktiebolaget LM Ericsson (publ) Methods for phase ecu f0 interpolation split and related controller
CN111063362B (zh) * 2019-12-11 2022-03-22 中国电子科技集团公司第三十研究所 一种数字语音通信噪音消除和语音恢复方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000063882A1 (en) 1999-04-19 2000-10-26 At & T Corp. Method and apparatus for performing packet loss or frame erasure concealment
WO2000068934A1 (de) 1999-05-07 2000-11-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren und vorrichtung zum verschleiern eines fehlers in einem codierten audiosignal und verfahren und vorrichtung zum decodieren eines codierten audiosignals
US6377915B1 (en) 1999-03-17 2002-04-23 Yrp Advanced Mobile Communication Systems Research Laboratories Co., Ltd. Speech decoding using mix ratio table
WO2002037475A1 (en) 2000-10-31 2002-05-10 Nokia Corporation Method and system for speech frame error concealment in speech decoding

Family Cites Families (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US572433A (en) * 1896-12-01 eaton
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
JPH05103012A (ja) * 1991-10-11 1993-04-23 Nec Corp 受信フレームを補償する音声パケツト受信装置とその受信フレーム補償方法
US5734789A (en) * 1992-06-01 1998-03-31 Hughes Electronics Voiced, unvoiced or noise modes in a CELP vocoder
JP2746033B2 (ja) * 1992-12-24 1998-04-28 日本電気株式会社 音声復号化装置
JP2746039B2 (ja) * 1993-01-22 1998-04-28 日本電気株式会社 音声符号化方式
US5706352A (en) * 1993-04-07 1998-01-06 K/S Himpp Adaptive gain and filtering circuit for a sound reproduction system
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
JP3277682B2 (ja) 1994-04-22 2002-04-22 ソニー株式会社 情報符号化方法及び装置、情報復号化方法及び装置、並びに情報記録媒体及び情報伝送方法
JP3277705B2 (ja) * 1994-07-27 2002-04-22 ソニー株式会社 情報符号化装置及び方法、並びに情報復号化装置及び方法
TW271524B (ko) * 1994-08-05 1996-03-01 Qualcomm Inc
JPH08123497A (ja) * 1994-10-18 1996-05-17 Matsushita Electric Ind Co Ltd 音声信号補間装置
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
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
JP3583550B2 (ja) * 1996-07-01 2004-11-04 松下電器産業株式会社 補間装置
CA2213909C (en) 1996-08-26 2002-01-22 Nec Corporation High quality speech coder at low bit rates
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
US6292834B1 (en) * 1997-03-14 2001-09-18 Microsoft Corporation Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
US6131084A (en) 1997-03-14 2000-10-10 Digital Voice Systems, Inc. Dual subframe quantization of spectral magnitudes
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
CN100349208C (zh) * 1997-10-22 2007-11-14 松下电器产业株式会社 扩散矢量生成方法及扩散矢量生成装置
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
AU3372199A (en) * 1998-03-30 1999-10-18 Voxware, 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
US6385573B1 (en) * 1998-08-24 2002-05-07 Conexant Systems, Inc. Adaptive tilt compensation for synthesized speech residual
US7072832B1 (en) 1998-08-24 2006-07-04 Mindspeed Technologies, Inc. System for speech encoding having an adaptive encoding arrangement
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
US6330533B2 (en) * 1998-08-24 2001-12-11 Conexant Systems, Inc. Speech encoder adaptively applying pitch preprocessing with warping of target signal
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
JP4249300B2 (ja) 1998-10-20 2009-04-02 株式会社エービーシー商会 装飾材の取付構造
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
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
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
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
US6772126B1 (en) * 1999-09-30 2004-08-03 Motorola, Inc. Method and apparatus for transferring low bit rate digital voice messages using incremental messages
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
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
US7246057B1 (en) * 2000-05-31 2007-07-17 Telefonaktiebolaget Lm Ericsson (Publ) System for handling variations in the reception of a speech signal consisting of packets
JP2002118517A (ja) 2000-07-31 2002-04-19 Sony Corp 直交変換装置及び方法、逆直交変換装置及び方法、変換符号化装置及び方法、並びに復号装置及び方法
FR2813722B1 (fr) * 2000-09-05 2003-01-24 France Telecom Procede et dispositif de dissimulation d'erreurs et systeme de transmission comportant un tel dispositif
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
JP4613412B2 (ja) * 2000-10-27 2011-01-19 ソニー株式会社 受信装置及びディジタルデータ復号方法
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
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
FR2828014B1 (fr) * 2001-07-27 2003-10-31 D Phy Espace Dev De Produits H Antenne
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
DE60226047D1 (de) * 2001-10-11 2008-05-21 Interdigital Tech Corp System und verfahren zur verwendung unbenutzter kapazität im datenfeld eines speziellen bursts
US6785645B2 (en) * 2001-11-29 2004-08-31 Microsoft Corporation Real-time speech and music classifier
US7027982B2 (en) * 2001-12-14 2006-04-11 Microsoft Corporation Quality and rate control strategy for digital audio
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
US6789123B2 (en) * 2001-12-28 2004-09-07 Microsoft Corporation System and method for delivery of dynamically scalable audio/video content over a network
US6647366B2 (en) * 2001-12-28 2003-11-11 Microsoft Corporation Rate control strategies for speech and music coding
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
CA2388352A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for frequency-selective pitch enhancement of synthesized speed
JP2004361731A (ja) * 2003-06-05 2004-12-24 Nec Corp オーディオ復号装置及びオーディオ復号方法
JP2005107283A (ja) * 2003-09-30 2005-04-21 Tadashi Aoki VoIP音声通信におけるパケット損失隠蔽方法、装置およびプログラム
US7356748B2 (en) * 2003-12-19 2008-04-08 Telefonaktiebolaget Lm Ericsson (Publ) Partial spectral loss concealment in transform codecs
EP1709734B1 (en) * 2004-01-19 2008-05-21 Nxp B.V. System for audio signal processing
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
JP5129115B2 (ja) * 2005-04-01 2013-01-23 クゥアルコム・インコーポレイテッド 高帯域バーストの抑制のためのシステム、方法、および装置
US7177804B2 (en) * 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding
US7707034B2 (en) * 2005-05-31 2010-04-27 Microsoft Corporation Audio codec post-filter

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377915B1 (en) 1999-03-17 2002-04-23 Yrp Advanced Mobile Communication Systems Research Laboratories Co., Ltd. Speech decoding using mix ratio table
WO2000063882A1 (en) 1999-04-19 2000-10-26 At & T Corp. Method and apparatus for performing packet loss or frame erasure concealment
WO2000068934A1 (de) 1999-05-07 2000-11-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren und vorrichtung zum verschleiern eines fehlers in einem codierten audiosignal und verfahren und vorrichtung zum decodieren eines codierten audiosignals
WO2002037475A1 (en) 2000-10-31 2002-05-10 Nokia Corporation Method and system for speech frame error concealment in speech decoding

Also Published As

Publication number Publication date
EP1886307B1 (en) 2016-03-30
JP5072835B2 (ja) 2012-11-14
US7831421B2 (en) 2010-11-09
AU2006252972B2 (en) 2011-02-03
NO20075776L (no) 2008-02-28
WO2006130236A2 (en) 2006-12-07
EP1886307A2 (en) 2008-02-13
US20060271359A1 (en) 2006-11-30
KR101344110B1 (ko) 2013-12-23
AU2006252972A1 (en) 2006-12-07
CA2607952A1 (en) 2006-12-07
WO2006130236A3 (en) 2008-02-28
KR20130007670A (ko) 2013-01-18
US7590531B2 (en) 2009-09-15
US7962335B2 (en) 2011-06-14
CA2607952C (en) 2016-03-22
JP2008542838A (ja) 2008-11-27
EP1886307A4 (en) 2009-07-08
NO339756B1 (no) 2017-01-30
HK1124660A1 (en) 2009-07-17
KR20080011186A (ko) 2008-01-31
CN101268351A (zh) 2008-09-17
US20060271373A1 (en) 2006-11-30
US20090276212A1 (en) 2009-11-05
CN101268351B (zh) 2011-07-06

Similar Documents

Publication Publication Date Title
KR101265874B1 (ko) 로버스트 디코더
KR101238583B1 (ko) 비트 스트림 처리 방법
US7668712B2 (en) Audio encoding and decoding with intra frames and adaptive forward error correction
US20040204935A1 (en) Adaptive voice playout in VOP
JP2014531055A (ja) ジッタバッファの管理方法及びこれを利用するジッタバッファ
JP3566931B2 (ja) 音声信号の符号列のパケット組立方法、装置及びパケット分解方法、装置並びにこれらの方法を実行するプログラム、プログラムを記録する記録媒体
KR100542435B1 (ko) 패킷 망에서의 프레임 손실 은닉 방법 및 장치
MX2007015190A (en) Robust decoder

Legal Events

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

Payment date: 20160419

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170420

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180417

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190417

Year of fee payment: 7