KR101952192B1 - 품질 제어를 이용하는 오디오 디코더, 방법 및 컴퓨터 프로그램 - Google Patents

품질 제어를 이용하는 오디오 디코더, 방법 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR101952192B1
KR101952192B1 KR1020167001813A KR20167001813A KR101952192B1 KR 101952192 B1 KR101952192 B1 KR 101952192B1 KR 1020167001813 A KR1020167001813 A KR 1020167001813A KR 20167001813 A KR20167001813 A KR 20167001813A KR 101952192 B1 KR101952192 B1 KR 101952192B1
Authority
KR
South Korea
Prior art keywords
time
samples
block
audio signal
input audio
Prior art date
Application number
KR1020167001813A
Other languages
English (en)
Other versions
KR20160023830A (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 KR20160023830A publication Critical patent/KR20160023830A/ko
Application granted granted Critical
Publication of KR101952192B1 publication Critical patent/KR101952192B1/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
    • 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
    • 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/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/022Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS 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/06Transformation of speech into a non-audible representation, e.g. speech visualisation or speech processing for tactile aids
    • G10L21/10Transforming into visible information
    • G10L21/12Transforming into visible information by displaying time domain information
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/06Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being correlation coefficients
    • G10L2021/04

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Data Mining & Analysis (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Escalators And Moving Walkways (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Electric Clocks (AREA)
  • Studio Circuits (AREA)

Abstract

입력 오디오 신호의 시간 스케일링된 버전을 제공하기 위한 시간 스케일러는 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질을 계산 또는 추정하도록 구성된다. 시간 스케일러는 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질의 계산 또는 추정에 따라 입력 오디오 신호의 시간 스케일링을 수행하도록 구성된다. 오디오 디코더는 그러한 시간 스케일러를 포함한다.

Description

품질 제어를 이용하는 오디오 디코더, 방법 및 컴퓨터 프로그램{TIME SCALER, AUDIO DECODER, METHOD AND A COMPUTER PROGRAM USING A QUALITY CONTROL}
본 발명에 따른 실시예들은 입력 오디오 신호를 제공하기 위한 시간 스케일러에 관한 것이다.
추가로, 본 발명에 따른 실시예들은 입력 오디오 컨텐트에 기초하여 디코딩된 오디오 컨텐트를 제공하기 위한 오디오 디코더에 관한 것이다.
추가로, 본 발명에 따른 실시예들은 입력 오디오 신호의 시간 스케일링된 버전을 제공하기 위한 방법에 관한 것이다.
추가로, 본 발명에 따른 실시예들은 상기 방법을 수행하기 위한 컴퓨터 프로그램에 관한 것이다.
오디오 컨텐트(음악 컨텐트, 음성 컨텐트, 및 혼합된 일반적인 오디오/음성 컨텐트와 같은 일반적인 오디오 컨텐트를 포함)의 저장 및 송신은 중요한 기술 분야이다. 청취자가 어떠한 중단 없이, 또한 오디오 컨텐트의 저장 및/또는 송신에 의해 야기된 어떠한 청취성 결함들 없이, 오디오 컨텐츠의 연속적인 재생을 예상한다는 점에 의해 특정한 도전이 야기된다. 동시에, 저장 수단 및 데이터 송신 수단에 대한 요건들을 가능한 한 낮게 유지하고, 수용가능한 한계 내에 비용들을 유지하는 것이 바람직하다.
예를 들어, 저장 매체로부터의 판독 출력(readout)이 일시적으로 중단되거나 지연되는 경우, 또는 데이터 소스와 데이터 싱크(sink) 사이의 송신이 일시적으로 중단되거나 지연되는 경우, 문제들이 발생한다. 예를 들어, 인터넷을 통한 송신은 크게 신뢰성이 없는데, 이는 TCP/IP 패킷들이 손실될 수 있고, 인터넷을 통한 송신 지연이 예를 들어, 인터넷 노드들의 변하는 부하 상황에 따라 변할 수 있기 때문이다. 하지만, 만족스러운 사용자 경험을 갖기 위해, 청취성 "갭들(gaps)" 또는 청취성 결함들 없이 오디오 컨텐트의 연속적인 재생이 있는 것이 필요하다. 더욱이, 많은 양의 오디오 정보의 버퍼링에 의해 야기된 상당한 지연들을 피하는 것이 바람직하다.
상기 논의를 고려하여, 심지어 오디오 정보의 불연속적인 제공의 경우에도, 양호한 오디오 품질을 제공하는 개념이 필요하다는 것이 인식될 수 있다.
본 발명에 따른 실시예는 입력 오디오 신호의 시간 스케일링된 버전을 제공하기 위한 시간 스케일러를 생성한다. 시간 스케일러는 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질을 계산하거나 추정하도록 구성된다. 더욱이, 시간 스케일러는 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질의 계산 또는 추정에 따라 입력 오디오 신호의 시간 스케일링을 수행하도록 구성된다. 본 발명에 따른 이 실시예는, 입력 오디오 신호의 시간 스케일링이 상당한 청취성 왜곡들을 초래하는 상황들이 존재한다는 아이디어에 기초한다. 더욱이, 본 발명에 따른 실시예는, 품질 제어 메커니즘이 바람직한 시간 스케일링이 입력 오디오 신호의 시간 스케일링된 버전의 충분한 품질을 실제로 제공할 지의 여부를 평가함으로써 그러한 청취성 왜곡들을 피하는데 도움을 준다는 발견에 기초한다. 따라서, 시간 스케일링은 바람직한 시간 신장(stretching) 또는 시간 수축에 의해 제어될 뿐 아니라, 획득가능한 품질의 평가에 의해 제어된다. 따라서, 예를 들어, 시간 스케일링이 입력 오디오 신호의 시간 스케일링된 버전의 수용가능하지 않게 낮은 품질을 초래하는 경우 시간 스케일링을 연기(postpone)하는 것이 가능하다. 하지만, 입력 오디오 신호의 시간 스케일링된 버전의 (예상된) 품질의 계산적 추정은 또한 시간 스케일링의 임의의 다른 파라미터들을 조정하는데 사용될 수 있다. 결론적으로, 상기 언급된 실시예에 사용된 품질 제어 메커니즘은 시간 스케일링이 적용되는 시스템에서 청취성 결함들을 감소시키거나 회피하는데 도움을 준다.
바람직한 실시예에서, 시간 스케일러는 입력 오디오 신호의 샘플들의 제 1 블록 및 입력 오디오 신호의 샘플들의 제 2 블록을 이용하여 중첩-및-가산 동작을 수행하도록 구성된다(입력 오디오 신호의 샘플들의 제 1 블록 및 입력 오디오 신호의 샘플들의 제 2 블록은 샘플들의 중첩 또는 비-중첩 블록들일 수 있고, 이것은 단일 프레임에 속하거나, 상이한 프레임들에 속한다). 시간 스케일러는 샘플들의 제 1 블록에 대해 샘플들의 제 2 블록을 시간-시프트하고(예를 들어, 샘플들의 제 1 블록 및 샘플들의 제 2 블록과 연관된 원래 시간 라인에 비교될 때), 샘플들의 제 1 블록 및 샘플들의 시간-시프트된 제 2 블록을 중첩-및-가산하여, 입력 오디오 신호의 시간-스케일링된 버전을 얻도록 구성된다. 본 발명에 따른 이 실시예는, 샘플들의 제 1 블록 및 샘플들의 제 2 블록을 이용하는 중첩-및-가산 동작이 일반적으로 양호한 시간 스케일링을 초래하고, 샘플들의 제 1 블록에 대해 샘플들의 제 2 블록의 시간 시프트의 조정이 많은 경우들에서 왜곡들을 상당히 작게 유지하도록 한다는 발견에 기초한다. 하지만, 또한 샘플들의 제 1 블록 및 샘플들의 시간 시프트된 제 2 블록의 구상된 중첩-및-가산이 실제로 입력 오디오 신호의 시간 스케일링된 버전의 충분한 품질을 초래하는 지의 여부를 체크하는 추가 품질 제어 메커니즘의 도입이 더욱 더 양호한 신뢰도를 갖는 청취성 결함들을 피하는데 도움을 준다는 것이 발견되었다. 즉, 샘플들의 제 1 블록에 대해 샘플들의 제 2 블록의 바람직한(또는 유리한) 시간 시프트가 식별된 후에 품질 체크(시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질의 추정에 기초하여)를 수행하는 것이 유리한데, 이는 이 절차가 청취성 결함들을 감소하거나 회피하는데 도움을 주기 때문이라는 것이 발견되었다.
바람직한 실시예에서, 시간 스케일러는 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 (예상된) 품질을 계산하거나 추정하기 위해, 샘플들의 제 1 블록과 샘플들의 시간-시프트된 제 2 블록 사이의 중첩-및-가산 동작의 품질(예를 들어, 예상된 품질)을 계산하거나 추정하도록 구성된다. 중첩-및-가산 동작이 실제로 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질에 대한 강한 영향을 갖는다는 것이 발견되었다.
바람직한 실시예에서, 시간 스케일러는 샘플들의 제 1 블록, 또는 샘플들의 제 1 블록의 부분(예를 들어, 우측 부분, 즉 샘플들의 제 1 블록의 단부에서의 샘플들)과, 샘플들의 제 2 블록, 또는 샘플들의 제 2 블록의 부분(예를 들어, 좌측 부분, 즉 샘플들의 제 2 블록의 시작에서의 샘플들) 사이의 유사도의 레벨의 결정에 따라 샘플들의 제 1 블록에 대해 샘플들의 제 2 블록의 시간 시프트를 결정하도록 구성된다. 이러한 개념은, 샘플들의 제 1 블록과 샘플들의 시간-시프트된 제 2 블록 사이의 유사도의 결정이 중첩-및-가산 동작의 품질읠 추정을 제공하고, 이에 따라 또한 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질의 의미있는 추정을 제공한다는 발견에 기초한다. 더욱이, 샘플들의 제 1 블록(또는, 샘플들의 제 1 블록의 우측 부분)과 샘플들의 시간-시프트된 제 2 블록(또는 샘플들의 시간-시프트된 제 2 블록의 좌측 부분) 사이의 유사도의 레벨이 통상적인 계산 복잡도를 이용하여 양호한 정밀도를 가지고 결정될 수 있다는 것이 발견되었다.
바람직한 실시예에서, 시간 스케일러는 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 복수의 상이한 시간 시프트들에 대해, 샘플들의 제 1 블록, 또는 샘플들의 제 1 블록의 부분(예를 들어, 우측 부분)과, 샘플들의 제 2 블록, 또는 샘플들의 제 2 블록의 부분(예를 들어, 우측 부분) 사이의 윳하도의 레벨에 관한 정보를 결정하고, 복수의 상이한 시간 시프트들에 대한 유사도의 레벨에 관한 정보에 기초하여, 중첩-및-가산 동작에 사용될 (후보) 시간 시프트를 결정하도록 구성된다. 따라서, 샘플들의 제 2 블록의 시간 시프트는 또는 샘플들의 제 1 블록에 대해 오디오 컨텐트에 적응되도록 선택될 수 있다. 하지만, 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 (예상된) 품질의 계산 또는 추정을 포함하는 품질 제어는 중첩-및-가산 동작에 사용될 (후보) 시간 시프트의 결정에 후속하여 수행될 수 있다. 즉, 품질 제어 메커니즘을 이용함으로써, 복수의 상이한 시간 시프트들에 대해 샘플들의 제 1 블록(또는 샘플들의 제 1 블록의 부분)과 샘플들의 제 2 블록(또는 샘플들의 제 2 블록의 부분) 사이의 유사도의 레벨에 관한 정보에 기초하여 결정된 시간 시프트가 충분히 양호한 오디오 품질을 초래한다는 것이 보장될 수 있다. 따라서, 결함들은 효율적으로 감소되거나 회피될 수 있다.
바람직한 실시예에서, 시간 스케일러는 목표 시간 시프트 정보에 따라, 샘플들의 제 1 블록에 대한 샘플들의 제 2 블록의 시간 시프트를 결정하도록 구성되고, 시간 시프트는 중첩-및-가산 동작에 사용될 것이다(시간 시프팅 동작이 불충분한 품질 추정에 응답하여 연기되지 않으면). 즉, 목표 시간 시프트 정보가 고려되고, 샘플들의 제 1 블록에 대한 샘플들의 제 2 블록의 상기 시간 시프트가 목표 시간 시프트 정보에 의해 기재된 목표 시간 시프트에 가깝도록 샘플들의 제 1 블록에 대한 샘플들의 제 2 블록의 시간 시프트를 결정하려는 시도가 이루어진다. 따라서, 샘플들의 제 1 블록 및 샘플들의 시간 시프트된 제 2 블록의 중첩-및-가산에 의해 얻어지는 (후보) 시간 시프트가 요건(목표 시간 시프트 정보에 의해 정의됨)과 동의하는 것이 달성될 수 있고, 중첩-및-가산 동작의 실제 실행이, 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 (예상된) 품질의 계산 또는 추정이 불충분한 품질을 나타내는 경우 방지될 수 있다는 것이 달성될 수 있다.
바람직한 실시예에서, 시간 스케일러는 샘플들의 제 1 블록, 또는 샘플들의 제 1 블록의 부분(예를 들어, 우측 부분)과, 결정된 시간 시프트에 의해 시간 시프트된 샘플들의 제 2 블록, 또는 결정된 시간 시프트에 의해 시간-시프트된 샘플들의 제 2 블록의 부분(예를 들어, 좌측 부분) 사이의 유사도의 레벨에 관한 정보에 기초하여 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질(예를 들어, 예상된 품질)을 계산하거나 추정하도록 구성된다. 샘플들의 제 1 블록, 또는 샘플들의 제 1 블록의 부분과, 결정된 시간 시프트에 의해 시간 시프트된 샘플들의 제 2 블록, 또는 결정된 시간 시프트에 의해 시간 시프트된 샘플들의 제 2 블록의 부분 사이의 유사도의 레벨이, 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전이 충분한 품질을 갖는 지의 여부를 결정하기 위한 양호한 기준을 구성한다는 것이 발견되었다.
바람직한 실시예에서, 시간 스케일러는, 샘플들의 제 1 블록, 또는 샘플들의 제 1 블록의 부분(예를 들어, 우측 부분)과, 결정된 시간 시프트에 의해 시간-시프트된 샘플들의 제 2 블록, 또는 결정된 시간 시프트에 의해 시간-시프트된 샘플들의 제 2 블록의 부분(예를 들어, 좌측 부분) 사이의 유사도의 레벨에 관한 정보에 기초하여, 시간 스케일링이 실제로 수행되는 지의 여부를 결정하도록 구성된다. 따라서, 제 1(일반적으로 계산적으로 더 간단하고 크게 신뢰성이 없는) 알고리즘을 이용하여 후보 시간 시프트로서 식별되는 시간 시프트의 결정에 뒤이어, 품질 체크가 후속하고, 이것은 샘플들의 제 1 블록(또는 샘플들의 제 1 블록의 부분)과 결정된 시간 시프트에 의해 시간 시프트된 샘플들의 제 2 블록(또는 결정된 시간 시프트에 의해 시간 시프트된 샘플들의 제 2 블록의 부분) 사이의 유사도의 레벨에 관한 정보에 기초한다. 상기 정보에 기초한 "품질 체크"는 일반적으로 후보 시간 시프트의 단순한 결정보다 더 신뢰성있으므로, 마지막으로 시간 스케일링이 실제로 수행되는 지의 여부를 결정하는데 사용된다. 따라서, 시간 스케일링은, 시간 스케일이 과도한 청취성 결함들(또는 왜곡들)을 초래하는 경우 방지될 수 있다.
바람직한 실시예에서, 시간 스케일러는 샘플들의 제 1 블록에 대한 샘플들의 제 2 블록을 시간-시프트하고, 샘플들의 제 1 블록 및 샘플들의 시간-시프트된 제 2 블록을 중첩-및-가산하여, 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질의 계산 또는 추정이 품질 임계값보다 크거나 동일한 품질을 나타내는 경우 입력 오디오 신호의 시간-스케일링된 버전을 얻도록 구성된다. 시간 스케일러는 샘플들의 제 1 블록, 또는 샘플들의 제 1 블록의 부분(예를 들어, 우측 부분)과, 샘플들의 제 2 블록, 또는 샘플들의 제 2 블록의 부분(예를 들어, 좌측 부분) 사이에서 제 1 유사도 척도를 이용하여 평가된 유사도의 레벨의 결정에 따라 샘플들의 제 1 블록에 대한 샘플들의 제 2 블록의 시간 시프트를 결정하도록 구성된다. 시간 스케일러는 샘플들의 제 1 블록, 또는 샘플들의 제 1 블록의 부분(예를 들어, 우측 부분)과, 결정된 시간 시프트에 의해 시간-시프트된 샘플들의 제 2 블록, 또는 결정된 시간 시프트에 의해 시간-시프트된 샘플들의 제 2 블록의 부분(예를 들어, 좌측 부분) 사이에서 제 2 유사도 척도를 이용하여 평가된 유사도의 레벨에 관한 정보에 기초하여 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질(예를 들어, 예상된 품질)을 계산하거나 추정하도록 추가로 구성된다. 제 1 유사도 척도 및 제 2 유사도 척도의 이용은 통상적인 계산상 복잡도를 갖는 샘플들의 제 1 블록에 대한 샘플들의 제 2 블록의 시간 시프트를 빠르게 결정하도록 하고, 또한 높은 정밀도를 갖는 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질을 계산하거나 추정하도록 한다. 따라서, 2가지 상이한 유사도 척도들을 이용하는 2가지 단계 절차는 제 1 단계에서의 비교적 작은 계산상 복잡도를 제 2 (품질 제어) 단계에서의 높은 정밀도와 조합하도록 하고, 일반적으로 계산적으로 간단한 제 1 유사도 척도가 샘플들의 제 1 샘플에 대한 샘플들의 제 2 블록의 (후보) 시간 시프트의 결정에 사용되더라도 청취성 결함들을 감소하거나 회피하도록 한다(일반적으로, 너무 요구가 많아서, 샘플들의 제 1 블록에 대한 샘플들의 제 2 블록의 후보 시간 시프트를 결정할 때 제 2 유사도 척도와 같이 높은 계산적 복잡도 유사도 척도를 이용할 수 없다).
바람직한 실시예에서, 제 2 유사도 척도는 제 1 유사도 척도보다 계산적으로 더 복잡하다. 따라서, "최종" 품질 체크는 높은 정밀도로 수행될 수 있는 한편, 샘플들의 제 1 블록에 대한 샘플들의 제 2 블록의 시간 시프트의 쉬운 결정은 효율적인 방식으로 수행될 수 있다.
바람직한 실시예에서, 제 1 유사도 척도는 교차 상관 또는 정규화된 교차 상관 또는 평균 크기 차이 함수 또는 제곱근 에러들의 합이다. 바람직하게, 제 2 유사도 척도는 복수의 상이한 시간 시프트들에 대해 교차 상관 또는 정규화된 교차 상관의 조합이다. 교차 상관, 정규화된 교차 상관, 평균 크기 차이 함수, 또는 제곱근 에러들의 합이 샘플들의 제 1 블록에 대한 샘플들의 제 2 블록의 (후보) 시간 시프트의 양호하고 유효한 결정을 허용한다는 것이 발견되었다. 더욱이, 복수의 상이한 시간 시프트들에 대해 교차 상관 또는 정규화된 교차 상관의 조합인 유사도 척도가 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질을 평가(계산 또는 추정)하기 위한 높은 신뢰성의 품질이라는 것이 발견되었다.
바람직한 실시예에서, 제 2 유사도 척도는 적어도 4개의 상이한 시간 시프트들에 대한 교차 상관들의 조합이다. 적어도 4개의 상이한 시간 시프트들에 대한 교차 상관들의 조합이 품질의 정밀한 평가를 허용하는데, 이는 시간이 지남에 따라 신호의 변경들이 적어도 4개의 상이한 시간 시프트들에 대한 상관들을 결정함으로써 또한 고려될 수 있다는 것이 발견되었다. 또한, 고조파들은 적어도 4개의 상이한 시간 시프트들에 대한 교차 상관들을 이용함으로써 어느 정도로 고려될 수 있다. 따라서, 획득가능한 품질의 특히 양호한 평가가 달성될 수 있다.
바람직한 실시예에서, 제 2 유사도 척도는 제 1 교차 상관 값과, 샘플들의 제 1 블록 또는 샘플들의 제 2 블록의 오디오 컨텐트의 기본 주파수의 주기 지속기간의 정수배만큼 이격되는 시간 시프트들에 대해 얻어진 제 2 교차 상관 값과, 오디오 컨텐트의 기본 주파수의 주기 지속기간의 정수배만큼 이격된 시간 시프트들에 대해 얻어지는 제 4 교차 상관 값의 조합이고, 제 1 교차 상관 값이 얻어지는 시간 시프트는 제 3 교차 상관 값이 오디오 컨텐트의 기본 주파수의 주기 지속기간의 절반의 홀수배만큼 얻어지는 시간 시프트로부터 이격된다. 따라서, 제1 교차 상관 값 및 제 2 교차 상관 값은, 오디오 컨텐트가 시간이 지남에 따라 적어도 대략 고정적인지의 여부에 대한 정보를 제공할 수 있다. 유사하게, 제 3 교차 상관 값 및 제 4 교차 상관 값은 또한, 오디오 컨텐트가 시간이 지남에 따라 적어도 대략 고정적인지의 여부에 대한 정보를 제공한다. 더욱이, 제 3 교차 상관 값 및 제 4 교차 상관 값이 제 1 교차 상관 값에 대해 "시간적으로 오프셋"되고, 제 2 교차 상관 값은 고조파들의 고려를 허용한다. 결론적으로, 제 1 교차 상관 값, 제 2 교차 상관 값, 제 3 교차 상관 값, 및 제 4 교차 상관 값의 조합에 기초한 제 2 유사도 척도의 계산은 높은 정확도를 야기하고, 이에 따라, 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 (예상된) 품질의 계산(또는 추정)에 대한 신뢰성있는 결과를 야기한다.
바람직한 실시예에서, 제 2 유사도 척도(q)는 q=c(p)*c(2*p)+c(3/2*p)*c(1/2*p)에 따라 또는 q=c(p)*c(-p)+c(-1/2*p)*c(*1/2*p)에 따라 얻어진다. 상기 수학식들에서, c(p)은 샘플들의 제 1 블록 또는 샘플들의 제 2 블록의 오디오 컨텐트의 기본 주파수의 주기 지속기간(p)만큼 시간적으로 시프트되는(서로에 대해, 그리고 원래 시간 라인에 대해) 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 교차 상관 값이고, c(2*p)는 2*p만큼 시간적으로 시프트되는 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 교차 상관 값이다. c(3/2*p)는 3/2*p만큼 시간적으로 시프트되는 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 교차 상관 값이다. c(1/2*p)는 1/2*p만큼 시간적으로 시프트되는 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 교차 상관 값이고, c(-p)는 -p만큼 시간적으로 시프트되는 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 교차 상관 값이고, c(-1/2*p)는 -1/2*p만큼 시간적으로 시프트되는 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 교차 상관 값이다. 상기 수학식들의 이용이 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 (예상된) 품질의 특히 양호하고 신뢰성있는 계산(또는 추정)을 초래한다는 것이 발견되었다.
바람직한 실시예에서, 시간 스케일러는 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질의 계산 또는 추정에 기초한 품질 값을 가변 임계값과 비교하여, 시간 스케일링이 수행되어야 하는 지의 여부를 결정하도록 구성된다. 가변 임계값의 이용은, 시간 스케일링이 수행되어야 하는 지의 여부를 결정하기 위한 임계치를 상황에 적응시키도록 한다. 따라서, 시간 스케일링을 수행하기 위한 품질 요건들은 일부 상황들에서 증가될 수 있고, 다른 상황들, 예를 들어 이전 시간 스케일링 동작들, 또는 신호의 임의의 다른 특징들에 따라 감소될 수 있다. 따라서, 시간 스케일링을 수행할 지의 결정의 중요도는 더 증가될 수 있다.
바람직한 실시예에서, 시간 스케일러는 가변 임계값을 감소시켜, 시간 스케일링의 품질이 샘플들의 하나 이상의 이전 블록들에 대해 불충분하였다는 발견에 응답하여, 품질 요건을 감소시키도록 구성된다. 가변 임계값을 감소함으로써, 시간 스케일링이 연장된 시간 기간에 걸쳐 생략되는데, 이는 이것이 버퍼 언더런(buffer underrun) 또는 버퍼 오버런(buffer overrun)을 초래하므로, 시간 스케일링에 의해 야기된 몇몇 결함들의 생성보다 더 중요하기 때문이라는 것이 회피될 수 있다. 따라서, 시간 스케일링의 과도한 지연에 의해 야기된 문제들이 회피될 수 있다.
바람직한 실시예에서, 시간 스케일러는, 시간 스케일링이 샘플들의 하나 이상의 이전 블록들에 적용된다는 점에 응답하여, 가변 임계값을 증가시켜, 품질 요건을 증가시키도록 구성된다. 따라서, 샘플들의 후속 블록들이, 비교적 높은 품질 레벨("정상" 품질 레벨보다 높음)에 도달될 수 있는 경우 시간 스케일링된다는 것이 보장될 수 있다. 이와 대조적으로, 샘플들의 후속 블록들의 시퀀스의 시간 스케일링은, 시간 스케일링이 비교적 높은 품질 요건들을 충족하지 않은 경우 방지된다. 이것은 적절한데, 이는 샘플들의 복수의 후속 블록들에 대한 시간 스케일링의 적용이 일반적으로 시간 스케일링이 비교적 높은 품질 요건들(일반적으로, 샘플들의 블록들의 연속 시퀀스보다 샘플들의 단일 블록이 시간 스케일링되는 경우 적용가능한 "정상" 품질 요건들보다 더 높은)을 충족하지 않으면 일반적으로 결함들을 초래하기 때문이다.
바람직한 실시예에서, 시간 스케일러는, 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 각 품질 요건에 도달하기 때문에 시간 스케일링된 프레임들의 수 또는 샘플들의 블록들의 수를 계수하기 위한 범위-제한된 제 1 카운터를 포함한다. 더욱이, 시간 스케일러는, 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 각 품질 요건에 도달하지 않았기 때문에 시간-스케일링되지 않은 프레임들의 수 또는 샘플들의 블록들의 수를 계수하기 위한 범위-제한된 제 2 카운터를 포함한다. 시간 스케일러는 제 1 카운터의 값에 따라 그리고 제 2 카운터의 값에 따라 가변 임계값을 계산하도록 구성된다. 범위 제한된 제 1 카운터 및 범위 제한된 제 2 카운터를 이용함으로써, 가변 임계값의 조정을 위한 간단한 메커니즘이 얻어지고, 이것은 임?밧의 과도하게 작거나 과도하게 큰 값들을 회피하면서, 가변 임계값을 각 상황에 적응시키도록 한다.
바람직한 실시예에서, 시간 스케일러는 가변 임계값을 얻기 위해 제 1 카운터의 값에 비례하는 값을 초기 임?밧에 가산하고, 그로부터 제 2 카운터의 값에 비례하는 값을 감산하도록 구성된다. 그러한 개념을 이용함으로써, 가변 임계값은 매우 간단한 방식으로 얻어질 수 있다.
바람직한 실시예에서, 시간 스케일러는 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질의 계산 또는 추정에 따라 입력 오디오 신호의 시간 스케일링을 수행하도록 구성되고, 입력 오디오 신호의 시간 스케일링된 버전의 품질의 계산 또는 추정은 시간 스케일링에 의해 야기되는 입력 오디오 신호의 시간 스케일링된 버전에서의 결함들의 계산 또는 추정을 포함한다. 시간 스케일링에 의해 야기된 입력 오디오 신호의 시간 스케일링된 버전에서의 결함들을 계산하거나 추정함으로써, 품질의 계산 또는 추정에 대한 의미 있는 기준이 사용될 수 있는데, 이는 결함들이 일반적으로 인간 청취자의 청취 인상(hearing impression)을 저하시키기 때문이다.
바람직한 실시예에서, 입력 오디오 신호의 시간 스케일링된 버전의 (예상된) ?밀의 곗한적 추정은 입력 오디오 신호의 샘플들의 후속 블록들의 중첩-및-가산 동작에 의해 야기되는 입력 오디오 신호의 시간 스케일링된 버전에서의 결함의 계산 또는 추정을 포함한다. 중첩-및-가산 동작이 시간 스케일링을 수행할 때 결함들의 주요 원인일 수 있다는 것이 인식되었다. 따라서, 입력 오디오 신호의 샘플들의 후속 블록들의 중첩-및-가산 동작에 의해 야기된 입력 오디오 신호의 시간 스케일링된 버전의 결함들을 계산하거나 추정하기 위한 효율적인 접근법인 것으로 발견되었다.
바람직한 실시예에서, 시간 스케일러는 입력 오디오 신호의 샘플들의 후속 블록들의 유사도의 레벨에 따라 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 (예상된) 품질을 계산하거나 추정하도록 구성된다. 입력 오디오 신호의 후속 블록들 또는 샘플들이 비교적 높은 유사도를 포함하는 경우 시간 스케일링이 일반적으로 양호한 품질로 수행될 수 있다는 것과, 입력 오디오 신호의 샘플들의 후속 블록들이 상당한 차이들을 포함하는 경우 왜곡들이 시간 스케일링에 의해 일반적으로 생성된다는 것이 발견되었다.
바람직한 실시예에서, 시간 스케일러는 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전에서 청취성 결함들이 존재하는 지의 여부를 계산하거나 추정하도록 구성된다. 청취성 결함들의 계산 또는 추정이 인간 청취 인상에 잘 적응되는 품질 정보를 제공한다는 것이 발견되었다.
바람직한 실시예에서, 시간 스케일러는, 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 (예상된) 품질의 계산 또는 추정이 불충분한 품질을 나타내는 경우 시간 스케일링을 후속 프레임 또는 샘플들의 후속 블록으로 연기하도록 구성된다. 따라서, 적은 결함들이 생성되는 시간 스케일링에 잘 적합하게 되는 시간에 시간 스케일링을 수행하는 것이 가능하다. 즉, 시간 스케일링이 시간 스케일링에 의해 달성가능한 품질에 따라 수행되는 시간을 융통성있게 선택함으로써, 입력 오디오 신호의 시간 스케일링된 버전의 청취 인상이 개선될 수 있다. 더욱이, 이러한 아이디어는, 시간 스케일링 동작의 약간의 지연이 일반적으로 임의의 상당한 문제들을 제공하지 않는다는 발견에 기초한다.
바람직한 실시예에서, 시간 스케일러는, 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 (예상된) 품질의 계산 또는 추정이 불충분한 품질을 나타내는 경우 시간 스케일링이 덜 청취되는 시간으로 시간 스케일링을 연기하도록 구성된다. 따라서, 인상을 청취하는 것은 청취성 왜곡들을 회피함으로써 개선된다.
본 발명에 따른 실시예는 입력 오디오 컨텐트에 기초하여 디코딩된 오디오 컨텐트를 제공하기 위한 오디오 디코더를 생성한다. 오디오 디코더는 오디오 샘플들의 블록들을 나타내는 복수의 오디오 프레임들을 버퍼링하도록 구성된 지터 버퍼를 포함한다. 오디오 디코더는 또한 지터 버퍼로부터 수신된 오디오 프레임들에 기초하여 오디오 샘플들의 블록들을 제공하도록 구성된 디코더 코어를 포함한다. 더욱이, 오디오 디코더는 위에서 개술된 바와 같이, 샘플-기반의 시간 스케일러(time scaler)를 포함하고, 샘플-기반의 시간 스케일러는 디코더 코어에 의해 제공된 오디오 샘플들의 블록들에 기초하여 오디오 샘플들의 시간-스케일링된 블록들을 제공하도록 구성된다. 이러한 오디오 디코더는, 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질의 계산 또는 추정에 따라 입력 오디오 신호의 시간 스케일링을 수행하도록 구성되는 시간 스케일러가 지터 버퍼 및 디코더 코어를 포함하는 오디오 디코더에 사용하는데 잘 적응된다는 아이디어에 기초한다. 지터 버퍼의 존재는 예를 들어, 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 (예상된) 품질의 계산 또는 추정이 불량한 품질이 얻어진다는 것을 나타내는 경우 시간 스케일링 동작의 연기를 허용한다. 따라서, 품질 제어 메커니즘을 포함하는 샘플-기반의 시간 스케일러는 지터 버퍼 및 디코더 코어를 포함하는 오디오 디코더에서의 청취성 결함들을 회피하거나 적어도 감소시키도록 한다.
바람직한 실시예에서, 오디오 디코더는 지터 버퍼 제어부를 더 포함한다. 지터 버퍼 제어부는 제어 정보를 샘플-기반의 시간 스케일러에 제공하도록 구성되고, 제어 정보는, 샘플-기반의 시간 스케일링이 수행되는 지의 여부를 나타낸다. 대안적으로, 또는 이에 더하여, 제어 정보는 시간 스케일링의 원하는 양을 나타낼 수 있다. 따라서, 샘플-기반의 시간 스케일러는 오디오 디코더의 요구에 따라 제어될 수 있다. 예를 들어, 지터 버퍼 제어는 신호-적응적 제어를 수행할 수 있고, 프레임-기반의 시간 스케일링 또는 샘플-기반의 시간 스케일링이 신호-적응적 방식으로 수행되어야 하는 지의 여부를 선택할 수 있다. 따라서, 추가적인 유연성 정도가 있다. 하지만, 샘플-기반의 시간 스케일러의 품질 제어 메커니즘은 예를 들어, 지터 버퍼 제어부에 의해 제공된 제어 정보를 파기(overrule)할 수 있어서, 샘플-기반의 시간 스케일리은 심지어 지터 버퍼 제어부에 의해 제공된 제어 정보가 샘플 기반의 시간 스케일링이 수행되어야 하는 것을 나타내는 경우에도 회피(또는 폐기)된다. 따라서, "지능형" 샘플-기반의 시간 스케일러는 지터 버퍼 제어부를 파기할 수 있는데, 이는 샘플-기반의 시간 스케일러가 시간 스케일링에 의해 획득가능한 품질에 관한 더 세부적인 정보를 얻을 수 있기 때문이다. 결론적으로, 샘플-기반의 시간 스케일러는 지터 버퍼 제어부에 의해 제공된 제어 정보에 의해 안내될 수 있지만, 그럼에도 불구하고, 품질이 지터 버퍼 제어부에 의해 제공된 제어 정보에 후속함으로써 실질적으로 절충되는 경우 시간 스케일링을 "거부"할 수 있고, 이것은 상당한 오디오 품질을 보장하는데 도움을 준다.
본 발명에 따른 다른 실시예는 입력 오디오 신호의 시간 스케일링된 버전을 제공하기 위한 방법을 생성한다. 방법은 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질(예를 들어, 예상된 품질)을 계산하거나 추정하는 것을 포함한다. 방법은 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 (예상된) 품질의 계산 또는 추정에 따라 입력 오디오 신호의 시간 스케일링을 수행하는 것을 더 포함한다.
이 방법은 위에 언급된 시간 스케일러와 동일한 고려사항들에 기초한다.
본 발명에 따른 또 다른 실시예는, 컴퓨터 프로그램이 컴퓨터 상에서 실행될 때 상기 방법을 수행하기 위한 컴퓨터 프로그램을 생성한다. 상기 컴퓨터 프로그램은 방법 및 또한 전술한 지터 버퍼와 동일한 고려사항들에 기초한다.
본 발명에 따른 실시예들은 첨부된 도면들을 고러하여 후속하여 기재될 것이다.
도 1은 본 발명의 실시예에 따라 지터 버퍼 제어부의 개략적인 블록도.
도 2는 본 발명의 실시예에 따라 시간 스케일러의 개략적인 블록도.
도 3은 본 발명의 실시예에 따라 오디오 디코더의 개략적인 블록도.
도 4는 본 발명의 다른 실시예에 따른 오디오 디코더의 개략적인 블록도로서, 지터 버퍼 관리(JBM)에 대한 개요가 도시되는, 블록도.
도 5는 PCM 버퍼 레벨을 제어하기 위한 알고리즘의 의사 프로그램 코드를 도시한 도면.
도 6은 RTP 패킷의 RTP 시간 스탬프 및 수신 시간으로부터의 오프셋 값 및 지연 값을 계산하기 위한 알고리즘의 의사 프로그램 코드를 도시한 도면.
도 7은 목표 지연 값들을 계산하기 위한 알고리즘의 의사 프로그램 코드를 도시한 도면.
도 8은 지터 버퍼 관리 제어 로직의 흐름도.
도 9는 품질 제어를 갖는 변형된 WSOLA의 개략적인 블록도.
도 10a 및 도 10b는 시간 스케일러를 제어하기 위한 방법의 흐름도.
도 11은 시간 스케일링에 대한 품질 제어를 위한 알고리즘의 의사 프로그램 코드를 도시한 도면.
도 12는 본 발명에 따른 실시예에 의해 얻어지는, 목표 지연 및 재생(playout) 지연을 도시한 그래프.
도 13은 본 발명에 따른 실시예에서 수행되는, 시간 스케일링을 도시한 그래프.
도 14는 입력 오디오 컨텐트에 기초하여 디코딩된 오디오 컨텐트의 제공을 제어하기 위한 방법의 흐름도.
도 15는 본 발명의 실시예에 따라 입력 오디오 신호의 시간 스케일링된 버전을 제공하기 위한 방법의 흐름도.
5. 실시예들의 상세한 설명
5.1 도 1에 따른 지터 버퍼 제어부
도 1은 본 발명의 실시예에 따라 지터 버퍼 제어부의 개략적인 블록도를 도시한다. 입력 오디오 컨텐트에 기초하여 디코딩된 오디오 컨텐트의 제공을 제어하기 위한 지터 버퍼 제어부(100)는 오디오 신호(110), 또는 오디오 신호에 관한 정보(정보는 오디오 신호, 또는 오디오 신호의 프레임들 또는 다른 신호 부분들의 하나 이상의 특징들을 기재할 수 있음)를 수신한다.
더욱이, 지터 버퍼 제어부(100)는 프레임-기반의 스케일링에 대한 제어 정보(예를 들어, 제어 신호)(112)를 제공한다. 예를 들어, 제어 정보(112)는 작동(activation) 신호(프레임-기반의 시간 스케일링에 대한) 및/또는 정량적 제어 정보(프레임-기반의 시간 스케일링에 대한)를 포함할 수 있다.
더욱이, 지터 버퍼 제어부(100)는 샘플-기반의 시간 스케일링에 대한 제어 정보(예를 들어, 제어 신호)(114)를 제공한다. 제어 정보(114)는 예를 들어, 샘플-기반의 시간 스케일링에 대한 정량적 제어 정보 및/또는 작동 신호(activation signal)를 포함할 수 있다.
지터 버퍼 제어부(110)는 신호-적응적 방식으로 프레임-기반의 시간 스케일링 또는 샘플-기반의 시간 스케일링을 선택하도록 구성된다. 따라서, 지터 버퍼 제어부는 오디오 신호, 또는 오디오 신호(100)에 관한 정보를 평가하고, 이에 기초하여, 제어 정보(112) 및/또는 제어 정보(114)를 제공하도록 구성될 수 있다. 따라서, 프레임-기반의 시간 스케일링 또는 샘플-기반의 시간 스케일링이 사용되는 지의 결정은 예를 들어, 계산적으로 간단한 프레임-기반의 시간 스케일링이 오디오 신호에 기초하여 및/또는 프레임 기반의 시간 스케일링이 오디오 컨텐트의 상당한 저하를 초래하지 않는 오디오 신호의 하나 이상의 특징들에 관한 정보에 기초하여 예측(또는 추정)되는 경우 사용되는 방식으로 오디오 신호의 특징들에 적응될 수 있다. 이와 대조적으로, 지터 버퍼 제어부는 일반적으로, 샘플 기반의 시간 스케일링이 시간 스케일링을 수행할 때 청취성 겨함들을 회피하도록 요구되는, 오디오 신호(110)의 특징들의 평가에 기초하여 예측되거나 추정(지터 버퍼 제어부에 의해)되는 경우 샘플-기반의 시간 스케일링을 이용하도록 결정한다.
더욱이, 지터 버퍼 제어부(100)가 물론 또한 추가 제어 정보, 예를 들어 시간 스케일링이 수행되어야 하는 지의 여부를 나타내는 제어 정보를 수신할 수 있다는 것이 주지되어야 한다.
다음에서, 지터 버퍼 제어부(100)의 몇몇 선택적인 세부사항들이 기재될 것이다. 예를 들어, 지터 버퍼 제어부(100)는 제어 정보(112,114)를 제공할 수 있어서, 오디오 프레임들은 프레임-기반의 시간 스케일링이 사용될 때 지터 버퍼의 깊이를 제어하도록 드롭되거나 삽입되고, 오디오 신호 부분들의 시간 시프트된 중첩-및-가산은 샘플-기반의 시간 스케일링이 사용될 때 수행된다. 즉, 지터 버퍼 제어부(100)는 예를 들어, 지터 버퍼(또한 몇몇 경우들에서 디-지터 버퍼로서 표시됨)와 협력할 수 있고, 프레임-기반의 시간 스케일링을 수행하기 위해 지터 버퍼를 제어할 수 있다. 이 경우에, 지터 버퍼의 깊이는 지터 버퍼로부터 프레임들을 드롭함으로써, 또는 프레임들(예를 들어, 프레임이 "비활성"이고 안락 잡음 생성이 사용되어야 한다는 신호 발신을 포함하는 간단한 프레임들)을 지터 버퍼에 삽입함으로써 제어될 수 있다. 더욱이, 지터 버퍼 제어부(100)는 오디오 신호 부분들의 시간-시프트된 중첩-및-가산을 수행하기 위해 시간 스케일러(예를 들어, 샘플-기반의 시간 스케일러)를 제어할 수 있다.
지터 버퍼 제어기(100)는 신호 적응성 방식으로 프레임-기반의 시간 스케일링, 샘플-기반의 시간 스케일링 및 시간 스케일링의 비작동 사이를 스위칭하도록 구성될 수 있다. 즉, 지터 버퍼 제어부는 일바적으로 프레임-기반의 시간 스케일링과 샘플-기반의 시간 스케일링 사이를 구별할 뿐 아니라, 시간 스케일링이 전혀 존재하지 않는 상태를 선택한다. 예를 들어, 시간 스케일링이 전혀 존재하지 않는 상태는, 지터 버퍼의 깊이가 수용가능한 범위 내에 있기 때문에 시간 스케일링이 필요하지 않은 경우 선택될 수 있다. 달리 말하면, 프레임-기반의 시간 스케일링 및 샘플-기반의 시간 스케일링은 일반적으로 지터 버퍼 제어부에 의해 선택될 수 있는 2가지 동작 모드들이 아니다.
지터 버퍼 제어부(100)는 또한 어떤 동작 모드(예를 들어, 프레임-기반의 시간 스케일링, 샘플-기반의 시간 스케일링, 또는 시간 스케일링이 없음)가 사용되어야 하는 지를 결정하기 위해 지터 버퍼의 깊이에 관한 정보를 고려할 수 있다. 예를 들어, 지터 버퍼 제어부는 지터 버퍼(또한 디-지터 버퍼로서 표시됨)의 원하는 깊이를 기재하는 목표 값과 지터 버퍼의 실제 깊이를 기재하는 실제 값을 비교할 수 있고, 상기 비교에 따라 동작 모드(프레임-기반의 시간 스케일링, 샘플-기반의 시간 스케일링, 또는 시간 스케일링이 없음)를 선택하여, 프레임-기반의 시간 스케일링 또는 샘플-기반의 시간 스케일링은 지터 버퍼의 깊이를 제어하기 위해 선택된다.
지터 버퍼 제어부(100)는 예를 들어, 이전 프레임이 비활성{예를 들어, 오디오 신호(110) 자체에 기초하여, 또는 예를 들어, 불연속적인 송신 모드의 경우에 묵음 식별자 플래그 SID와 같이 오디오 신호에 관한 정보에 기초하여 인식될 수 있는}인 경우 안락 잡음 삽입 또는 안락 잡음 삭제를 선택하도록 구성될 수 있다. 따라서, 지터 버퍼 제어부(100)는, 시간 신장이 바람직하고 이전 프레임(또는 현재 프레임)이 비활성화인 경우 안작 잡음 프레임이 삽입되어야 하는 지터 버퍼(또한 디-지터 버퍼로서 표시됨)에 신호 발신할 수 있다. 더욱이, 지터 버퍼 제어부(100)는, 시간 수축을 수행하는 것이 바람직하고 이전 프레임이 비활성화(또는 현재 프레임이 비활성화)인 경우 안락 잡음 프레임(예를 들어, 안락 잡음 생성이 수행되어야 한다는 것을 나타내는 신호 발신 정보를 포함하는 프레임)을 제거하도록 지터 버퍼(또는 디-지터 버퍼)에게 지시할 수 있다. 각 프레임이 안락 잡음의 생성을 나타내는 신호 발신 정보를 운반( 및 일반적으로 추가 인코딩된 오디오 컨텐트를 포함하지 않은)할 때 비활성화인 것으로 고려될 수 있다는 것이 주지되어야 한다. 그러한 신호 발신 정보는 예를 들어, 불연속적인 송신 모드의 경우에 묵음 표시 플래그(SID 플래그)의 형태를 취할 수 있다.
이와 대조적으로, 지터 버퍼 제어부(100)는 바람직하게, 이전 프레임이 활성화인 경우(예를 들어, 이전 프레임이 안락 잡음이 생성되어야 한다는 것을 나타내는 신호 발신 정보를 포함하지 않는 경우) 오디오 시호 부분들의 시간-시프트된 중첩-및-가산을 선택하도록 구성된다. 오디오 신호 부분들의 그러한 시간 시프트된 중첩-및-가산은 일반적으로 비교적 높은 분해능(예를 들어, 오디오 샘플들의 블록들의 길이보다 작거나, 오디오 샘플들의 블록들의 길이의 1/4보다 작거나, 2개의 오디오 샘플들보다 작거나 같거나, 단일 오디오 샘플만큼 작은 분해능)을 갖는 입력 오디오 정보의 후속 프레임들에 기초하여 얻어진 오디오 샘플들의 블록들 사이의 시간 시프트의 조정을 허용한다. 따라서, 샘플-기반의 시간 스케일링의 선택은 매우 미세-튜닝된 시간 스케일링을 허용하고, 이것은 활성 프레임들에 대한 청취성 결함들을 회피하는데 도움을 준다.
지터 버퍼 제어부가 샘플-기반의 시간 스케일링을 선택하는 경우에, 지터 버퍼 제어부는 또한 샘플-기반의 시간 스케일링을 조정, 또는 미세 튜닝하기 위해 추가 제어 정보를 제공할 수 있다. 예를 들어, 지터 버퍼 제어부(100)는, 오디오 샘플들의 블록이 활성을 나타내지만, "묵음"의 오디오 시호 부분, 예를 들어 비교적 작은 에너지를 포함하는 오디오 신호 부분을 나타내는 지의 여부를 결정하도록 구성될 수 있다. 이 경우에, 오디오 시호 부분이 "활성"(예를 들어, 오디오 컨텐트의 더 세부적인 디코딩보다, 안락 잡음 생성이 오디오 디코더에 사용되는 오디오 신호 부분이 아니라)이지만, "묵음"(예를 들어, 신호 에너지가 특정 에너지 임계값 아래이거나, 심지어 0인)인 경우, 지터 버퍼 제어부는, "묵음"(하지만 활성)의 오디오 신호 부분을 나타내는 오디오 샘플들의 블록과 오디오 샘플들의 후속 블록 사이의 시간 시프트가 미리 결정된 최대 값으로 설정되는 중첩-및-가산 모드를 선택하기 위해 제어 정보(114)를 제공할 수 있다. 따라서, 샘플-기반의 시간 스케일러들은 오디오 샘플들의 후속 블록들의 상세한 비교에 기초하여 적절한 양의 시간 스케일링을 식별할 필요가 없고, 시간 시프트에 대한 미리 결정된 최대 값을 간단히 사용할 수 있다. "묵음"의 오디오 신호 부분이 일반적으로 시간 시프트의 실제 선택에 무관하게 중첩-및-가산 동작에서 상당한 결함들을 야기하지 않을 것임이 이해되어야 한다. 따라서, 지터 버퍼 제어부에 의해 제공된 제어 정보(114)는 샘플 기반의 시간 스케일러에 의해 수행될 처리를 간략화할 수 있다.
이와 대조적으로, 지터 버퍼 제어부(110)가 오디오 샘플들의 블록이 "활성" 및 비-묵음의 오디오 신호 부분(예를 들어, 안락 잡음의 생성이 없고 또한 특정 임계값보다 높은 신호 에너지를 포함하는 오디오 신호 부분)을 나타낸다는 것을 발견하면, 지터 버퍼 제어부는 제어 정보(114)를 제공하여, 오디오 샘플들의 블록들 사이의 시간 시프트가 신호-적응적 방식(예를 들어, 샘플-기반의 시간 스케일러에 의해, 그리고 오디오 샘플들의 후속 블록들 사이의 유사도들의 결정을 이용하여)으로 결정되는 중첩-및-가산 모드를 선택한다.
더욱이, 지터 버퍼 제어부(100)는 또한 실제 버퍼 충실도에 관한 정보를 수신할 수 있다. 지터 버퍼 제어부(100)는, 시간 신장이 요구되고 지터 버퍼가 비어 있다는 결정에 응답하여 은닉된 프레임(즉, 패킷 손실 복구 메커니즘을 이용하여, 예를 들어 이전에 디코딩된 프레임들에 기초한 예측을 이용하여, 생성되는 프레임)의 삽입을 선택할 수 있다. 즉, 지터 버퍼 제어부는, 기본적으로, 샘플-기반의 시간 스케일링이 바람직한(이전 프레임, 또는 현재 프레임이 "활성"이기 때문에) 경우에 대해 예외적인 취급을 개시할 수 있지만, 샘플 기반의 시간 스케일링(예를 들어, 중첩-및-가산을 이용하여)은 지터 버퍼(또는 디-지터 버퍼)가 비어있기 때문에 적절히 수행될 수 없다. 따라서, 지터 버퍼 제어부(100)는 심지어 예외적인 경우들에 대해서도 적절한 제어 정보(112, 114)를 제공하도록 구성될 수 있다.
지터 버퍼 제어부(100)의 동작을 간략화하기 위해, 지터 버퍼 제어부(100)는, 안락 잡음 생성(또한 간략하게 "CNG"로 표시됨)과 연계하여 불연속적인 송신(또한 간략하게 "DTX"로 표시됨)이 현재 사용되는 지의 여부에 따라 프레임-기반의 시간 스케일링 또는 샘플-기반의 시간 스케일링을 선택하도록 구성될 수 있다. 즉, 지터 버퍼 제어부(100)는 예를 들어, 이것이 오디오 신호에 기초하여 또는 오디오 신호에 관한 정보에 기초하여, 이전 프레임(또는 현재 프레임)이 "비활성" 프레임이고, 이에 대해 안락 잡음 생성이 사용되어야 한다는 것에 인식되면 프레임-기반의 시간 스케일링을 선택할 수 있다. 이것은 예를 들어, 오디오 신호의 인코딩된 표현에 포함되는 신호 발신 정보(예를 들어, 소위 "SID" 플래그와 같은 플래그)를 평가함으로써 결정될 수 있다. 따라서, 지터 버퍼 제어부는, 안락 잡음 생성과 연계하여 불연속적인 송신이 현재 사용되는 경우 프레림-기반의 시간 스케일링이 사용되어야 한다는 것을 결정할 수 있는데, 이는 이 경우에 그러한 시간 스케일링에 의해 매우 작은 청취성 왜곡들이 야기되거나, 청취성 왜곡들이 야기되지 않는다는 것이 예상될 수 있기 때문이다. 이와 대조적으로, 어떠한 예외적인 환경들(예를 들어, 빈 지터 버퍼와 같은)이 존재하지 않으면, 샘플-기반의 시간 스케일링은 다른 경우(예를 들어, 안락 잡음 생성과 연계하여 불연속적인 송신이 현재 사용되지 않으면) 사용될 수 있다.
바람직하게, 지터 버퍼 제어부는, 시간 스케일링이 요구되는 경우에 (적어도) 4가지 모드들 중 하나의 모드 사이를 선택할 수 있다. 예를 들어, 지터 버퍼 제어부는, 안락 잡음 생성과 연계하여 불연속적인 송신이 현재 사용되는 경우 시간 스케일링에 대한 안락 잡음 삽입 또는 안락 잡음 제거를 선택하도록 구성될 수 있다. 더욱이, 지터 버퍼 제어부는, 현재 오디오 신호 부분이 활성이지만, 에너지 임계값보다 작거나 같은 신호 에너지를 포함하는 경우, 그리고 지터 버퍼가 비어있지 않은 경우 시간 스케일링에 대한 미리 결정된 시간 시프트를 이용하여 중첩-가산-동작을 선택하도록 구성될 수 있다. 더욱이, 지터 버퍼 제어부는, 현재 오디오 신호 부분이 활성이고, 에너지 임계값보다 크거나 같은 신호 에너지를 포함하는 경우, 그리고 지터 버퍼가 비어있지 않은 경우 시간 스케일링에 대한 신호-적응적 시간 시프트를 이용하여 중첩-가산 동작을 선택하도록 구성될 수 있다. 마지막으로, 지터 버퍼 제어부는, 현재 오디오 신호 부분이 활성인 경우, 그리고 지터 버퍼가 빈 경우 시간 스케일링에 대한 은닉된 프레임의 삽입을 선택하도록 구성될 수 있다. 따라서, 지터 버퍼 제어부가 신호-적응적 방식으로 프레임-기반의 시간 스케일링 또는 샘플-기반의 시간 스케일링을 선택하도록 구성될 수 있다.
더욱이, 지터 버퍼 제어부가, 현재 오디오 신호 부분이 활성이고 에너지 임계값보다 크거나 같은 신호 에너지를 포함하는 경우, 그리고 지터 버퍼가 비어있지 않은 경우 시간 스케일링에 대한 신호-적응적 시간 시프트 및 품질 제어 메커니즘을 이용하여 중첩-및-가산 동작을 선택하도록 구성될 수 있다는 것이 주지되어야 한다. 즉, 샘플-기반의 시간 스케일링에 대한 추가 품질 제어 메커니즘이 있을 수 있고, 이것은 프레임-기반의 시간 스케일링과 샘플-기반의 시간 스케일링 사이의 신호 적응성 선택을 보완하고, 이것은 지터 버퍼 제어부에 의해 수행된다. 따라서, 계층적 개념이 사용될 수 있고, 지터 버퍼는 프레임-기반의 시간 스케일링과 샘플-기반의 시간 스케일링 사이의 초기 선택을 수행하고, 추가 품질 제어 메커니즘은, 샘플-기반의 시간 스케일링이 오디오 품질의 수용불가능한 저하를 초래하지 않는 것을 보장하기 위해 구현된다.
결론적으로, 지터 버퍼 제어부(100)의 기본적인 기능이 설명되었고, 그 선택적인 개선들이 또한 설명되었다. 더욱이, 지터 버퍼 제어부(100)가 본 명세서에 기재된 임의의 특징들 및 기능들에 의해 보완될 수 있다는 것이 주지되어야 한다.
5.2. 도 2에 따른 시간 스케일러
도 2는 본 발명의 실시예에 따른 시간 스케일러(200)의 개략적인 블록도를 도시한다. 시간 스케일러(200)는 입력 오디오 신호(210)(예를 들어, 디코더 코어에 의해 제공된 샘플들의 시퀀스의 형태로)를 수신하고, 이에 기초하여, 입력 오디오 신호의 시간 스케일링된 버전(212)을 제공하도록 구성된다. 시간 스케일러(200)는 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질을 계산하거나 추정하도록 구성된다. 이러한 기능은 예를 들어, 계산 유닛에 의해 수행될 수 있다. 더욱이, 시간 스케일러(200)는 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질의 계산 또는 추정에 따라 입력 오디오 신호(210)의 시간 스케일링을 수행하여, 입력 오디오 신호(212)의 시간 스케일링된 버전을 얻도록 구성된다. 이 기능은 예를 들어, 시간 스케일링 유닛에 의해 수행될 수 있다.
따라서, 시간 스케일러는, 오디오 품질의 과도한 저하들이 시간 스케일링을 수행할 때 회피되는 것을 보장하기 위해 품질 제어를 수행할 수 있다. 예를 들어, 시간 스케일러는, 구상된 시간 스케일링 동작{예를 들어, (오디오) 샘플들의 시간 시프트된 블록들에 기초하여 수행된 중첩-및-가산 동작과 같은}이 충분히 양호한 오디오 품질을 초래하도록 예상되는 지의 여부에 따라, 입력 오디오 신호에 기초하여 예측(또는 추정)하도록 구성될 수 있다. 즉, 시간 스케일러는, 입력 오디오 신호의 시간 스케일링이 실제로 실행되기 전에 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 (예상된) 품질을 계산하거나 추정하도록 구성될 수 있다. 이러한 목적을 위해, 시간 스케일러는 예를 들어, 시간 스케일링 동작(예를 들어, 입력 오디오 신호의 상기 부분들이 중첩되고 가산되어, 시간 스케일링을 수행하는)에 수반되는 입력 오디오 신호의 부분들을 비교할 수 있다. 결론적으로, 시간 스케일러(200)는, 구상된 시간 스케일링이 입력 오디오 신호의 시간 스케일링된 버전의 충분한 오디오 품질을 초래한다는 것이 예상될 수 있는 지의 여부를 체크하고, 이에 기초하여 시간 스케일링을 수행할 지의 여부를 결정하도록 구성된다. 대안적으로, 시간 스케일러는 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질의 계산상 추정의 결과에 따라 임의의 시간 스케일링 파라미터들(예를 들어, 중첩되고 가산될 샘플들의 블록들 사이의 시간 시프트)을 적응시킬 수 있다.
다음에서, 시간 스케일러(200)의 선택적인 개선들이 기재될 것이다.
바람직한 실시예에서, 시간 스케일러는 입력 오디오 신호의 샘플들의 제 1 블록 및 입력 오디오 신호의 샘플들의 제 2 블록을 이용하여 중첩-및-가산 동작을 수행하도록 구성된다. 이 경우에, 시간 스케일러는 샘플들의 제 1 블록에 대해 샘플들의 제 2 블록을 시간-시프트하고, 샘플들의 제 1 블록 및 샘플들의 시간-시프트된 제 2 블록을 중첩-및-가산하여, 입력 오디오 신호의 시간 스케일링된 버전을 얻도록 구성된다. 예를 들어, 시간 수축이 바람직하면, 시간 스케일러는 입력 오디오 신호의 샘플들의 제 1 수를 입력할 수 있고, 이에 기초하여, 입력 오디오 신호의 시간 스케일링된 버전의 샘플들의 제 2 수를 제공할 수 있고, 샘플들의 제 2 수는 샘플들의 제 1 수보다 작다. 샘플들의 수의 감소를 달성하기 위해, 샘플들의 제 1 수는 샘플들의 적어도 제 1 블록 및 샘플들의 제 2 블록(샘플들의 제 1 블록 및 샘플들의 제 2 블록은 중첩되거나 비-중첩될 수 있다)으로 분리될 수 있고, 샘플들의 제 1 블록 및 샘플들의 제 2 블록은 일시적으로 함께 시프트될 수 있어서, 샘플들의 제 1 블록 및 샘플들의 제 2 블록의 일시적으로 시프트된 버전들은 중첩된다. 샘플들의 제 1 블록의 시프트된 버전(들)과 샘플들의 제 2 블록 사이의 중첩 영역에서, 중첩-및-가산 동작이 적용된다. 그러한 중첩-및-가산 동작은, 샘플들의 제 1 블록과 샘플들의 제 2 블록이 중첩 영역(중첩-및-가산 동작이 수행되는), 및 바람직하게 또한 중첩 영역의 환경에서 "충분히" 유사하면 상당한 청취성 왜곡들을 야기하지 않고도 적용될 수 있다. 따라서, 원래 일시적으로 중첩하지 않는 신호 부분들을 중첩하고 가산함으로써, 시간 수축이 달성되는데, 이는 샘플들의 총 수가 샘플들의 수만큼 감소되고, 이러한 샘플들의 수는 원래 {입력 오디오 신호(210)에서} 중첩하지 않고, 입력 오디오 신호의 시간 스케일링된 버전(212)에서 중첩된다.
이와 대조적으로, 시간 신장은 또한 그러한 중첩-및-가산 동작을 이용하여 달성될 수 있다. 예를 들어, 샘플들의 제 1 블록 및 샘플들의 제 2 블록은 중첩되도록 선택될 수 있고, 제 1 전체 시간 연장을 포함할 수 있다. 후속하여, 샘플들의 제 2 블록은 샘플들의 제 1 블록에 대해 시간 시프트될 수 있어서, 샘플들의 제 1 블록과 샘플들의 제 2 블록이 감소된다. 샘플들의 시간 시프트된 제 2 블록이 샘플들의 제 1 블록에 잘 맞으면, 중첩-및-가산이 수행될 수 있고, 샘플들의 제 1 블록과 샘플들의 제 2 블록의 시간 시프트된 버전 사이의 중첩은 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 원래 중첩 영역보다 샘플들의 수에 관해 그리고 시간에 관해 더 짧을 수 있다. 따라서, 샘플들의 제 1 블록 및 샘플들의 제 2 블록의 시간 시프트된 버전을 이용하여 중첩-및-가산 3동작의 결과는 원래 형태에서 샘플들의 제 1 블록 및 샘플들의 제 2 블록의 총 연장보다 더 큰 시간 연장(시간에 관해 그리고 샘플들의 수에 관해)을 포함할 수 있다.
따라서, 시간 수축 및 시간 신장이 입력 오디오 신호의 샘플들의 제 1 블록과 입력 오디오 신호들의 샘플들의 제 2 블록을 이용하는 중첩-및-가산 동작을 이용하여 얻어질 수 있고, 샘플들의 제 2 블록은 샘플들의 제 1 블록에 관해 시간 시프트된다(또는 샘플들의 제 1 블록 및 샘플들의 제 2 블록은 서로에 대해 시간-시프트된다).
바람직하게, 시간 스케일러(200)는 시간 스케일링에 의해 얻어질 수 있는 입력 오디오 신호의 시간 스케일링된 버전의 (예상된) 품질을 계산하거나 추정하기 위해 샘플들의 제 1 블록과 샘플들의 제 2 블록의 시간-시프트된 버전 사이에서 중첩-및-가산 동작의 품질을 계산하거나 추정하도록 구성된다. 중첩-및-가산 동작이 충분히 유사한 샘플들의 블록들의 부분들에 대해 수행되면 일반적으로 어떠한 청취성 결함들도 존재하지 않는다는 것이 주지되어야 한다. 달리 말하면, 중첩-및-가산 동작의 품질은 입력 오디오 신호들의 시간 스케일링된 버전의 (예상된) 품질에 실질적으로 영향을 미친다. 따라서, 중첩-및-가산 동작의 품질의 추정(또는 계산)은 입력 오디오 신호의 시간 스케일링된 버전의 품질의 신뢰성있는 추정(또는 계산)을 제공한다.
바람직하게, 시간 스케일러(200)는 샘플들의 제 1 블록, 또는 샘플들의 제 1 블록의 부분(예를 들어, 우측 부분)과, 샘플들의 시간 시프트된 제 2 블록, 또는 샘플들의 시간 시프트된 제 2 블록의 부분(예를 들어, 좌측 부분) 사이에서 유사도의 레벨의 결정에 따라 샘플들의 제 1 블록에 대해 샘플들의 제 2 블록의 시간 시프트를 결정하도록 구성된다. 즉, 시간 스케일러는, 충분히 양호한 중첩-및-가산 결과(또는 적어도 최상의 가능한 중첩-및-가산 결과)를 얻기 위해 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 어떤 시간 시프트가 가장 적절한 지를 결정하도록 구성될 수 있다. 하지만, 추가("품질 제어") 단계에서, 샘플들의 제 1 블록에 대해 샘플들의 제 2 블록의 그러한 결정된 시간 시프트가 실제로 충분히 양호한 중첩-및-가산 결과를 가져올 지의 여부(또는 충분히 양호한 중첩-및-가산 결과를 가져오도록 예상될 지의 여부)에 관계없이 증명될 수 있다.
바람직하게, 시간 스케일러는 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 복수의 상이한 시간 시프트들에 대해, 샘플들의 제 1 블록, 샘플들의 제 1 블록의 부분(예를 들어, 우측 부분)과, 샘플들의 제 2 블록, 또는 샘플들의 제 2 블록의 부분(예를 들어, 좌측 부분) 사이의 유사도의 레벨에 관한 정보를 결정하고, 복수의 상이한 시간 시프트들에 대한 유사도의 레벨에 관한 정보에 기초하여 중첩-및-가산 동작에 사용될 (후보) 시간 시프트를 결정한다. 달리 말하면, 최상의 매치를 위한 검색이 수행될 수 있고, 상이한 시간 시프트들에 대한 유사도의 레벨에 관한 정보는 비교될 수 있어서, 최상의 유사도의 레벨에 도달할 수 있는 시간 시프트를 발견한다.
바람직하게, 시간 스케일러는 샘플들의 제 1 블록에 대해 샘플들의 제 2 블록의 시간 시프트를 결정하도록 구성되고, 시간 시프트는 목표 시간 시프트 정보에 따라 중첩-및-가산 동작에 사용될 것이다. 즉, 예를 들어, 버퍼 충실도의 평가, 지터 및 아마도 다른 추가 기준에 기초하여 획득가능한 목표 시간 시프트 정보는, 어떤 시간 시프트가 중첩-및-가산 동작에 사용(예를 들어, 후보 시간 시프트)될 것인지를 결정할 때 고려(참작)될 수 있다. 따라서, 중첩-및-가산은 시스템의 요건들에 적응된다.
몇몇 실시예들에서, 시간 스케일러는 샘플들의 제 1 블록, 또는 샘플들의 제 1 블록의 부분(예를 들어, 우측 부분)과, 결정된 (후보) 시간-시프트에 의해 시간-시프트된 샘플들의 제 2 블록, 또는 결정된 (후보) 시간 시프트에 의해 시간-시프트된 샘플들의 제 2 블록의 부분(예를 들어, 좌측 부분) 사이의 유사도의 레벨에 관한 정보에 기초하여 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질을 계산하거나 추정하도록 구성될 수 있다. 유사도의 레벨에 관한 상기 정보는 중첩-및-가산 동작의 (예상된) 품질에 관한 정보를 제공하고, 이에 따라 또한 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질에 관한 정보(적어도 추정)를 제공한다. 몇몇 경우들에서, 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질에 관한 계산되거나 추정된 정보는, 시간 스케일링이 실제러 수행될 지의 여부를 결정하는데 사용될 수 있다(시간 스케일링은 후자의 경우에 연기될 수 있다). 즉, 시간 스케일러는, 샘플들의 제 1 블록, 또는 샘플들의 제 1 블록의 부분(예를 들어, 우측 부분)과, 결정된 (후보) 시간 시프트에 의해 시간 시프트된 샘플들의 제 2 블록, 또는 결정된 (후보) 시간 시프트에 의해 시간 시프트된 샘플들의 제 2 블록의 부분(예를 들어, 좌측 부분) 사이의 유사도의 레벨에 관한 정보에 기초하여, 시간 스케일링이 실제로 수행될지(또는 수행되지 않을지)의 여부를 결정하도록 구성될 수 있다. 따라서, 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질에 관한 계산되거나 추정된 정보를 평가하는 품질 제어 메커니즘은, 오디오 컨텐트의 과도한 저하가 시간 스케일링에 의해 야기된다는 점이 예상되면 시간 스케일링(적어도 현재 블록 또는 오디오 샘플들의 프레임에 대해)의 생략을 실제로 초래할 수 있다.
몇몇 실시예들에서, 상이한 유사도 척도(measure)들은 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 (후보) 시간 시프트의 초기 결정에, 그리고 최종 품질 제어 메커니즘에 사용될 수 있다. 즉, 시간 스케일러는 샘플들의 제 1 블록에 대해 샘플들의 제 2 블록을 시간 시프트하고, 샘플들의 제 1 블록 및 샘플들의 시간 시프트된 제 2 블록을 시간 시프트하여, 이를 통해 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질의 계산 또는 추정이 품질 임계값보다 크거나 같은 품질을 나타내면, 입력 오디오 신호의 시간 스케일링된 버전을 얻도록 구성될 수 있다. 시간 스케일러는 샘플들의 제 1 블록, 또는 샘플들의 제 1 블록의 부분(예를 들어, 우측 부분)과, 샘플들의 제 2 블록, 또는 샘플들의 제 2 블록의 부분(예를 들어, 좌측 부분) 사이에서 제 1 유사도 척도를 이용하여 평가된 유사도의 레벨의 결정에 따라 샘플들의 제 1 블록에 대해 샘플들의 제 2 블록의 (후보) 시간 시프트를 결정하도록 구성될 수 있다. 또한, 시간 스케일러는, 샘플들의 제 1 블록, 또는 샘플들의 제 1 블록의 부분(예를 들어, 우측 부분)과, 결정된 (후보) 시간 시프트에 의해 시간 시프트된 샘플들의 제 2 블록, 또는 결정된 (후보) 시간 시프트에 의해 시간 시프트된 샘플들의 제 2 블록의 부분(예를 드렁, 좌측 부분) 사이에서 제 2 유사도 척도를 이용하여 평가된, 유사도의 레벨에 관한 정보에 기초하여 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질을 계산하거나 추정하도록 구성될 수 있다. 예를 들어, 제 2 유사도 척도는 제 1 유사도 척도보다 계산적으로 더 복잡할 수 있다. 그러한 개념은 유용한데, 이는 일반적으로 시간 스케일링 동작마다 제 1 유사도 척도를 다수 회 계산하는데 필요하기 때문이다(샘플들의 제 1 블록과 샘플들의 제 2 블록 사이에서 복수의 가능한 시간 시프트 값들로부터 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 "후보" 시간 시프트를 결정하기 위해). 이와 대조적으로, 제 2 유사도 척도는 일반적으로 예를 들어, 제 1(계산적으로 더 복잡한) 품질 척도를 이용하여 결정된 "후보" 시간 시프트가 충분히 양호한 오디오 품질을 초래하도록 예상될 수 있는지의 여부에 대한 "최종" 품질 체크로서 시간 시프트 동작마다 한번 계산될 필요가 있다. 이에 따라, 제 1 유사도 척도가 샘플들의 제 1 블록(또는 제 1 블록의 부분)과 "후보" 시간 시프트에 대한 샘플들의 시간 시프트된 제 2 블록(또는 제 2 블록의 부분) 사이의 상당히 양호한(또는 적어도 충분한) 유사도를 나타내지만, 제 2( 및 일반적으로 더 의미있거나 정밀한) 유사도 척도가 시간 스케일링이 충분히 양호한 오디오 품질을 초래하지 않으면 중첩-및-가산의 실행을 여전히 회피하는 것이 가능하다. 따라서, 품질 제어의 적용(제 2 유사도 척도를 이용하여)은 시간 스케일링에서의 청취성 왜곡들을 회피하는데 도움을 준다.
예를 들어, 제 1 유사도 척도는 교차 상관 또는 정규화된 교차 상관, 또는 평균 크기 차이 함수, 또는 제곱 오차들의 합일 수 있다. 그러한 유사도 척도들은 계산적으로 유효한 방식으로 얻어질 수 있고, 샘플들의 제 1 블록(또는 제 1 블록의 부분)과 샘플들의 (시간-시프트된) 제 2 블록(또는 제 2 블록의 부분) 사이의 "최상의 매치"를 발견할 정도로, 즉 "후보" 시간 시프트를 결정할 정도로 충분하다. 이와 대조적으로, 제 2 유사도 척도는 예를 들어, 복수의 상이한 시간 시프트들에 대해 교차 상관 값들 또는 정규화된 교차 상관 값들의 조합일 수 있다. 그러한 유사도 척도는 더 정확도를 제공하고, 시간 스케일링의 (예상된) 품질을 평가할 때 오디오 신호의 정상성(stationarity) 또는 추가 신호 성분들(예를 들어, 고조파와 같은)을 고려하는데 도움을 준다. 하지만, 제 2 유사도 척도는 제 1 유사도 척도보다 계산적으로 더 많이 요구하여, "후보" 시간 시프트를 검색할 때 제 2 유사도 척도를 적용하기에 계산적으로 충분하지 않다.
다음에서, 제 2 유사도 척도의 결정에 대한 몇몇 옵션들이 기재될 것이다. 몇몇 실시예들에서, 제 2 유사도 척도는 적어도 4개의 상이한 시간 시프트들에 대한 교차 상관들의 조합일 수 있다. 예를 들어, 제 2 유사도 척도는, 샘플들의 제 1 블록 또는 샘플들의 제 2 블록의 오디오 컨텐트의 기본 주파수의 주기 지속기간과, 제 3 교차 상관 값 및 제 4 교차 상관 값의 정수배만큼 이격되는(spaced) 시간 시프트들에 대해 얻어진 제 1 교차 상관 값과 제 2 교차 상관 값과, 오디오 컨텐트의 기본 주파수의 주기 지속기간의 정수배만큼 이격되는 시간 시프트들에 대해 얻어진 제 3 교차 상관 값 및 제 4 교차 상관 값의 조합일 수 있다. 제 1 교차 상관 값이 얻어지는 시간 시프트는 오디오 컨텐트의 기본 주파수의 주기 지속기간의 절반의 홀수배만큼, 제 3 교차 상관 값이 얻어지는 시간 시프트로부터 이격될 수 있다. 오디오 컨텐트(입력 오디오 신호에 의해 표현됨)가 실질적으로 정적이고, 기본 주파수에 의해 좌우되면, 제1 교차 상관 값 및, 예를 들어 정규화될 수 있는 제 2 교차 상관 값이 모두 1에 가깝다는 것이 예상될 수 있다. 하지만, 제 3 교차 상관 값 및 제 4 교차 상관 값 모두가, 제 1 교차 상관 값 및 제 2 교차 상관 값이 얻어지는 시간 시프트들로부터 기본 주파수의 주기 지속기간의 절반의 홀수배만큼 이격되는 시간 시프트들에 대해 얻어지기 때문에, 제 3 교차 상관 값 및 제 4 교차 상관 값이, 오디오 컨텐트가 실질적으로 정적이고 기본 주파수에 의해 좌우되는 경우에 제 1 교차 상관 값과 제 2 교차 상관 값에 대해 정반대이라는 것이 예상될 수 있다. 따라서, 의미있는 조합은 제1 교차 상관 값, 제 2 교차 상관 값, 제 3 교차 상관 값 및 제 4 교차 상관 값에 기초하여 형성될 수 있고, 이들은, 오디오 시호가 충분히 정적이고, (후보) 중첩-및-가산 영역에서 기본 주파수에 의해 좌우되는 지의 여부를 나타낸다.
특히 의미있는 유사도 척도들이 q = c(p)* c(2*p) + c(3/2*p)*c(1/2*p)에 따라, 또는 q = c(p)* c(-p) + c(-1/2*p)*c(1/2*p)에 따라 유사도 척도(q)를 계산함으로써 얻어질 수 있다는 것이 주지되어야 한다.
위에서, c(p)는 샘플들의 제 1 블록(또는 제 1 블록의 부분)과 샘플들의 제 2 블록(또는 제 2 블록의 부분) 사이의 교차 상관 값이고, 이들은 (예를 들어, 입력 오디오 컨텐트 내에서 원래 시간 위치에 대해) 샘플들의 제 1 블록 및/또는 샘플들의 제 2 블록의 오디오 컨텐트의 기본 주파수의 주기 지속기간(p)만큼 시간적으로 시프트된다(오디오 컨텐트의 기본 주파수는 일반적으로 샘플들의 제 1 블록 및 샘플들의 제 2 블록에서 실질적으로 동일하다). 즉, 교차 상관 값은 샘플들의 블록들에 기초하여 계산되고, 이들 샘플들의 블록들은 입력 오디오 컨텐트로부터 취해지고, 추가로 입력 오디오 컨텐트의 기본 주파수의 주기 지속기간(p)만큼 서로에 대해 시간 시프트된다{기본 주파수의 주기 지속기간(p)은 예를 들어, 기본 주파수 추정, 자동 상관 등에 기초하여 얻어질 수 있다}. 유사하게, c(2*p)는 2*p만큼 시간적으로 시프트되는 샘플들의 제 1 블록(또는 제 1 블록의 부분)과 샘플들의 제 2 블록(또는 제 2 블록의 부분) 사이의 교차 상관 값이다. 또한 유사한 정의들은 c(3/2*p), c(1/2*p), c(-p) 및 c(-1/2*p)에 적용되고, c(.)의 독립 변수(argument)는 시간 시프트를 표시한다.
다음에서, 시간 스케일링이 수행되어야 하는 지에 대한 여부를 결정하기 위한 몇몇 메커니즘들은 설명될 것이고, 이것은 선택적으로 시간 스케일러(200)에 적용될 수 있다.구현에서, 시간 스케일러(200)는 시간 스케일링이 수행되어야 하는 지의 여부를 결정하기 위해 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 (예상된) 버전의 계산 또는 추정에 기초한 품질 값과 가변 임계값을 비교하도록 구성될 수 있다. 따라서, 시간 스케일링을 수행할 지의 여부에 대한 결정은 또한 예를 들어, 이전 시간 스케일링들을 나타내는 이력과 같은 환경들에 따라 이루어질 수 있다.
예를 들어, 시간 스케일러는, 시간 스케일링의 품질이 샘플들의 하나 이상의 이전 블록들에 대해 충분하지 않았다는 발견에 응답하여, 가변 임계값을 감소하여, 이를 통해 품질 요건(시간 스케일링을 가능하게 하기 위해 도달되어야 함)을 감소하도록 구성될 수 있다. 따라서, 시간 스케일링이 버퍼 오버런(overrun) 또는 버퍼 언더런(underrun)을 야기할 수 있는 프레임들(또는 샘플들의 블록들)의 긴 시퀀스에 대해 보호되지 않는다는 것이 보장된다. 더욱이, 시간 스케일러는, 시간 스케일링이 하나 이상의 블록들 또는 샘플들에 적용되었다는 점에 응답하여, 가변 임계값을 증가시켜, 이를 통해 품질 요건(시간 스케일링을 가능하게 하기 위해 도달되어야 함)을 증가하도록 구성될 수 있다. 따라서, 시간 스케일링의 매우 양호한 품질(정상 품질 요건에 대해 증가됨)이 얻어질 수 없으면, 너무 많은 후속 블록들 또는 샘플들이 시간 스케일링되는 것이 방지될 수 있다. 따라서, 시간 스케일링의 품질에 대한 조건들이 너무 낮은 경우 야기되는 결함들이 회피될 수 있다.
몇몇 실시예들에서, 시간 스케일러는, 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간-스케일링된 버전의 각 품질 요건에 도달되었기 때문에, 시간 스케일링된 프레임들의 수 또는 샘플들의 블록들의 수를 계수하기 위한 범위-제한된 제 1 카운터를 포함할 수 있다. 더욱이, 시간 스케일러는 또한 시간 스케일링에 의해 얻어질 수 없는 입력 오디오 신호의 시간-스케일링된 버전의 각 품질 요건에 도달하지 않았기 때문에 시간 스케일링되지 않았던 프레임들의 수 또는 샘플들의 블록들의 수를 계수하기 위한 범위-제한된 제 2 카운터를 포함할 수 있다. 이 경우에, 시간 스케일러는 제 1 카운터의 값에 따라, 그리고 제 2 카운터의 값에 따라 가변 임계값을 계산하도록 구성될 수 있다. 따라서, 시간 스케일링의 "이력"( 및 또한 "품질" 이력)은 통상적인 계산 노력으로 고려될 수 있다.
예를 들어, 시간 스케일러는 제 1 카운터의 값에 비례하는 값을 초기 임계값에 가산하고, 가변 임계값을 얻기 위해 제 2 카운터의 값에 비례하는 값을 그로부터(예를 들어, 가산 결과로부터) 감산하도록 구성될 수 있다.
다음에서, 시간 스케일러(200)의 몇몇 실시예들에 제공될 수 있는 몇몇 중요한 기능들이 요약될 것이다. 하지만, 다음에 기재된 기능들이 시간 스케일러(200)의 필수 기능들이 아니라는 것이 주지되어야 한다.
구현에서, 시간 스케일러는 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질의 계산 또는 추정에 따라 입력 오디오 신호의 시간 스케일링을 수행하도록 구성될 수 있다. 이 경우에, 입력 오디오 신호의 시간 스케일링된 버전의 품질의 계산 또는 추정은 시간 스케일링에 의해 야기되는 입력 오디오 신호의 시간 스케일링된 버전에서의 결함들의 계산 또는 추정을 포함한다. 하지만, 결함들의 계산 또는 추정이 예를 들어, 중첩-및-가산 동작의 품질을 계산함으로써 간접적인 방식으로 수행될 수 있다는 것이 주지되어야 한다. 즉, 입력 오디오 신호의 시간 스케일링된 버전의 품질의 계산 또는 추정은 입력 오디오 신호의 샘플들의 후속 블록들의 중첩-및-가산 동작에 의해 야기되는 입력 오디오 신호의 시간 스케일링된 버전에서의 결함들의 계산 또는 추정을 포함할 수 있다(물론, 몇몇 시간 시프트는 샘플들의 후속 블록들에 적용될 수 있다).
예를 들어, 시간 스케일러는 입력 오디오 신호의 샘플들의 후속( 및 아마도 중첩) 블록들의 유사도의 레벨에 따라 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질을 계산 또는 추정하도록 구성될 수 있다.
바람직한 실시예에서, 시간 스케일러는, 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전에서의 청취성 결함들이 존재하는 지의 여부를 계산하거나 추정하도록 구성될 수 있다. 청취성 결함들의 추정은 전술한 바와 같이, 간접적인 방식으로 수행될 수 있다.
품질 제어의 결과로서, 시간 스케일링은, 시간 스케일링에 매우 적합한 시간에 수행될 수 있고, 시간 스케일링에 그리 적합하지 않은 시간에 회피될수 있다. 예를 들어, 시간 스케일러는, 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질의 계산 또는 추정이 불충분한 품질(예를 들어, 특정 품질 임계값 아래의 품질)을 나타내는 경우 시간 스케일링을 후속 프레임 또는 샘플들의 후속 블록으로 연기하도록 구성될 수 있다. 따라서, 시간 스케일링은 시간 스케일링에 더 많이 적합한 시간에 수행될 수 있어서, 적은 결함들(특히, 청취성 결함들)이 생성된다. 즉, 시간 스케일러는, 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의 품질의 계산 또는 추정이 불충분한 품질을 나타내는 경우 시간 스케일링을 시간 스케일링이 덜 청취가능한 시간으로 연기하도록 구성될 수 있다.
결론적으로, 시간 스케일러(200)는 위에서 논의된 바와 같이, 다수의 상이한 방식들로 개선될 수 있다.
더욱이, 시간 스케일러(200)가 지터 버퍼 제어부(100)와 선택적으로 조합될 수 있고, 지터 버퍼 제어부(100)는, 일반적으로 시간 스케일러(200)에 의해 수행되는 샘플-기반의 시간 스케일링이 사용되어야 하는 지의 여부 또는 프레임-기반의 시간 스케일링이 사용되어야 하는 지의 여부를 결정할 수 있다는 것이 주지되어야 한다.
5.3. 도 3에 따른 오디오 디코더
도 3은 본 발명의 실시예에 따른 오디오 디코더(300)의 개략적인 블록도를 도시한다.
오디오 디코더(300)는 입력 오디오 컨텐트(310)를 수신하도록 구성되고, 이러한 입력 오디오 컨텐트(310)는 입력 오디오 표현으로서 고려될 수 있고, 예를 들어, 오디오 프레임들의 형태로 표현될 수 있다. 더욱이, 오디오 디코더(300)는 이에 기초하여, 예를 들어 디코딩된 오디오 샘플들의 형태로 표현될 수 있는 디코딩된 오디오 컨텐트(312)를 제공한다. 오디오 디코더(300)는 예를 들어, 지터 버퍼(320)를 포함할 수 있고, 이러한 지터 버퍼(320)는 예를 들어, 오디오 프레임들의 형태로 입력 오디오 컨텐트(310)를 수신하도록 구성된다. 지터 버퍼(320)는 오디오 샘플들의 블록들을 표현하는 복수의 오디오 프레임들을 버퍼링하도록 구성된다(단일 프레임은 오디오 샘플들의 하나 이상의 블록들을 표현할 수 있고, 단일 프레임에 의해 표현된 오디오 샘플들은 오디오 샘플들의 복수의 중첩 또는 비-중첩 블록들로 논리적으로 세분화될 수 있다). 더욱이, 지터 버퍼(320)는 "버퍼링된" 오디오 프레임들(322)을 제공하고, 오디오 프레임들(322)은 입력 오디오 컨텐트(310)에 포함된 오디오 프레임들과, 지터 버퍼에 의해 삽입되거나 생성된 오디오 프레임들(예를 들어, 안락 잡음의 생성을 신호 발신하는 신호 발신 정보를 포함하는 "비활성" 오디오 프레임들)을 포함할 수 있다. 오디오 디코더(300)는 디코더 코어(330)를 더 포함하고, 이러한 디코더 코어(330)는 지터 버퍼(320)로부터 버퍼링된 오디오 프레임들(322)을 수신하고, 지터 버퍼로부터 수신된 오디오 프레임들(322)에 기초하여 오디오 샘플들(332)(예를 들어, 오디오 프레임들과 연관된 오디오 샘플들을 갖는 블록들)을 제공한다. 더욱이, 오디오 디코더(300)는 샘플-기반의 시간 스케일러(340)를 포함하고, 이러한 샘플-기반의 시간 스케일러(340)는 디코더 코어(330)에 의해 제공된 오디오 샘플들(332)을 수신하도록 구성되고, 이에 기초하여, 디코딩된 오디오 컨텐트(312)를 구성하는 시간-스케일링된 오디오 샘플들(342)을 제공하도록 구성된다. 샘플-기반의 시간 스케일러(340)는 오디오 샘플들(332)에 기초하여(즉, 디코더 코어에 의해 제공된 오디오 샘플들의 블록들에 기초하여) 시간-스케일링된 오디오 샘플들(예를 들어, 오디오 샘플들의 블록들의 형태로)을 제공하도록 구성된다. 더욱이, 오디오 디코더는 선택 제어부(350)를 포함할 수 있다. 오디오 디코더(300)에 사용되는 지터 버퍼 제어부(350)는 예를 들어, 도 1에 따라 지터 버퍼 제어부(100)와 동일할 수 있다. 즉, 지터 버퍼 제어부(350)는 신호-적응적 방식으로 지터 버퍼(320)에 의해 수행되는 프레임-기반의 시간 스케일링, 또는 샘플-기반의 시간 스케일러(340)에 의해 수행되는 샘플-기반의 시간 스케일링을 선택하도록 구성될 수 있다. 따라서, 지터 버퍼 제어부(350)는 오디오 신호(110)로서, 또는 오디오 신호(110)에 관한 정보로서 입력 오디오 컨텐트(310) 또는 입력 오디오 컨텐트(310)에 관한 정보를 수신할 수 있다. 더욱이, 지터 버퍼 제어부(350)는 제어 정보(112){지터 버퍼 제어부(100)에 대해 기재된 바와 같이}를 지터 버퍼(320)에 제공할 수 있고, 지터 버퍼 제어부(350)는 지터 버퍼 제어부(100)에 대해 기재된 바와 같이, 제어 정보(114)를 샘플-기반의 시간 스케일러(140)에 제공할 수 있다. 따라서, 지터 버퍼(320)는 프레임-기반의 시간 스케일링을 수행하기 위해 오디오 프레임들을 드롭 또는 삽입하도록 구성될 수 있다. 더욱이, 디코더 코어(330)는 안락 잡음의 생성을 나타내는 신호 발신 정보를 운반하는 프레임에 응답하여 안락 잡음 생성을 수행하도록 구성될 수 있다. 따라서, 안락 잡음은 지터 버퍼(320)로의 "비활성" 프레임(안락 잡음이 생성되어야 하는 것을 나타내는 신호 발신 정보를 포함)의 삽입에 응답하여 디코더 코어(330)에 의해 생성될 수 있다. 즉, 프레임-기반의 시간 스케일링의 간단한 형태는 안락 잡음을 포함하는 프레임의 생성을 효율적으로 초래할 수 있고, 이것은 지터 버퍼로의 "비활성" 프레임의 삽입에 의해 개시된다{지터 버퍼 제어부에 의해 제공된 제어 정보(112)에 응답하여 수행될 수 있다}. 더욱이, 디코더 코어는 빈 지터 버퍼에 응답하여 "은닉"을 수행하도록 구성될 수 있다. 그러한 은닉은 잃어버린 오디오 프레임을 선행하는 하나 이상의 프레임들의 오디오 정보에 기초하여 "잃어버린" 프레임(빈 지터 버퍼)에 대한 오디오 정보의 생성을 포함할 수 있다. 예를 들어, 잃어버린 오디오 프레임의 오디오 컨텐트가 잃어버린 오디오 프레임을 선행하는 하나 이상의 오디오 프레임들의 오디오 컨텐트의 "연속"이라는 점을 가정하여, 예상이 사용될 수 있다. 하지만, 종래 기술에 알려진 임의의 프레임 손실 은닉 개념들은 디코더 코어에 의해 사용될 수 있다. 이에 따라, 지터 버퍼 제어부(350)는, 지터 버퍼(320)가 비어 있는 상태로 실행되는 경우에 은닉을 시작하도록 지터 버퍼(320){또는 디코더 코어(330)}에게 지시할 수 있다. 하지만, 디코더 코어는 자체 지능에 기초하여 명시적인(explicit) 제어 신호 없이도 은닉을 수행할 수 있다.
더욱이, 샘플-기반의 시간 스케일러(340)가 도 2에 대해 기재된 시간 스케일러(200)와 동일할 수 있다는 것이 주지되어야 한다. 따라서, 입력 오디오 신호(210)는 오디오 샘플들(332)에 대응할 수 있고, 입력 오디오 신호의 시간 스케일링된 버전(212)은 시간 스케일링된 오디오 샘플들(342)에 대응할 수 있다. 따라서, 시간 스케일러(340)는 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간-스케일링된 버전의 품질의 계산 또는 추정에 따라 입력 오디오 신호의 시간 스케일링을 수행하도록 구성될 수 있다. 샘플-기반의 시간 스케일러(340)는 지터 버퍼 제어부(350)에 의해 제어될 수 있고, 지터 버퍼 제어부에 의해 샘플 기반의 시간 스케일러(340)에 제공된 제어 정보(114)는, 샘플-기반의 시간 스케일링이 수행되어야 하는 지의 여부를 나타낼 수 있다. 더욱이, 제어 정보(114)는 예를 들어, 샘플-기반의 시간 스케일러(340)에 의해 수행될 원하는 양의 시간 스케일링을 나타낼 수 있다.
시간 스케일러(300)가 지터 버퍼 제어부(100)에 대해 및/또는 시간 스케일러(200)에 대해 기재된 임의의 특징들 및 기능들에 의해 보완될 수 있다는 것이 주지되어야 한다. 더욱이, 오디오 디코더(300)는 또한 예를 들어, 도 4 내지 도 15에 대해, 본 명세서에 기재된 임의의 다른 특징들 및 기능들에 의해 보완될 수 있다.
5.4. 도 4에 따른 오디오 디코더
도 4는 본 발명의 실시예에 따른 오디오 디코더(400)의 개략적인 블록도를 도시한다. 오디오 디코더(400)는 하나 이상의 오디오 프레임들의 패킷화된 표현을 포함할 수 있는 패킷들(410)을 수신하도록 구성된다. 더욱이, 오디오 디코더(400)는 예를 들어, 오디오 샘플들의 형태로, 디코딩된 오디오 컨텐트(412)를 제공한다. 오디오 샘플들은 예를 들어, "PCM" 포맷(즉, 펄스-코드-변조된 형태로, 예를 들어, 오디오 파형의 샘플들을 표현하는 디지털 값들의 시퀀스의 형태로)으로 표현될 수 있다.
오디오 디코더(400)는 디패커(depacker)(420)를 포함하고, 이러한 디패커(420)는 패킷들(410)을 수신하고, 이에 기초하여, 디패킷화된 프레임들(422)을 제공하도록 구성된다. 더욱이, 디패커는 패킷들(410)로부터 소위 "SID 플래그"를 추출하도록 구성되고, 이러한 "SID 플래그"는 "비활성" 오디오 프레임(즉, 오디오 컨텐트의 "정상"의 세부적인 디코딩보다는, 안락 잡음 생성이 사용되어야 하는 오디오 프레임)을 신호 발신한다. SID 플래그 정보는 424로 표시된다. 더욱이, 디패커는 실시간-전송-프로토콜 시간 스탬프(또한 "RTP TS"로 표시됨) 및 도달 시간 스탬프(또한 "도달 TS"로 표시됨)를 제공한다. 시간 스탬프 정보는 426으로 표시된다. 더욱이, 오디오 디코더(400)는 디-지터 버퍼(430){또한 간략하게 지터 버퍼(430)로 표시됨}를 포함하고, 이러한 디-지터 버퍼(430)는 디패커(420)로부터 디패킷화된 프레임들(422)을 수신하고, 버퍼링된 프레임들(432)( 및 차마도 또한 삽입된 프레임들)을 디코더 코어(440)에 제공한다. 더욱이, 디-지터 버퍼(430)는 제어 로직으로부터 프레임-기반의 (시간) 스케일링을 위한 제어 정보(434)를 수신한다. 또한, 디-지터 버퍼(430)는 스케일링 피드백 정보(436)를 재생 지연 추정에 제공한다. 오디오 디코더(400)는 또한 시간 스케일러(450)(또한 "TSM"으로 표시됨)를 포함하고, 이러한 시간 스케일러(450)는 디코더 코어(440)로부터 디코딩된 오디오 샘플들(442)(예를 들어, 펄스-코드-변조된 데이터의 형태로)을 수신하고, 디코더 코어(440)는 디-지터 버퍼(430)로부터 수신된 버퍼링되거나 삽입된 프레임들(432)에 기초하여 디코딩된 오디오 샘플들(442)을 제공한다. 시간 스케일러(450)는 또한 제어 로직으로부터 샘플-기반의 (시간) 스케일링을 위한 제어 정보(444)를 수신하고, 스케일링 피드백 정보(446)를 재생 지연 추정에 제공한다. 시간 스케일러(450)는 또한 시간 스케일링된 샘플들(448)을 제공하고, 이러한 시간 스케일링된 샘플들(448)은 펄스-코드-변조된 형태로 시간 스케일링된 오디오 컨텐트를 표현할 수 있다. 오디오 디코더(400)는 또한 PCM 버퍼(460)를 포함하고, 이러한 PCM 버퍼(460)는 시간 스케일링된 샘플들(448)을 수신하고, 시간 스케일링된 샘플들(448)을 버퍼링한다. 더욱이, PCM 버퍼(460)는 디코딩된 오디오 컨텐트(412)의 대표로서 시간 스케일링된 샘플들(448)의 버퍼링된 버전을 제공한다. 더욱이, PCM 버퍼(460)는 지연 정보(462)를 제어 로직에 제공할 수 있다.
오디오 디코더(400)는 또한 목표 지연 추정부(470)를 포함하고, 이러한 목표 지연 추정부(470)는 정보(424)(예를 들어, SID 플래그)뿐 아니라, RTP 시간 스탬프 및 도달 시간 스탬프를 포함하는 시간 스탬프 정보(426)를 수신한다. 이러한 정보에 기초하여, 목표 지연 추정부(470)는 목표 지연 정보(472)를 제공하고, 이러한 목표 지연 정보(472)는 바람직한 지연, 예를 들어 디-지터 버퍼(430), 디코더(440), 시간 스케일러(450) 및 PCM 버퍼(460)에 의해 야기되어야 하는 바람직한 지연을 기재한다. 예를 들어, 목표 지연 추정부(470)는, 지연이 불필요하게 크게 선택되지 않고, 패킷들(410)의 일부 지터를 보상할 정도로 충분하도록 목표 지연 정보(472)를 계산하거나 추정할 수 있다. 더욱이, 오디오 디코더(400)는 재생 지연 추정부(480)를 포함하고, 이러한 재생 지연 추정부(480)는 디-지터 버퍼(430)로부터 스케일링 피드백 정보(436)를 수신하고, 시간 스케일러(460)로부터 스케일링 피드백 정보(446)를 수신하도록 구성된다. 예를 들어, 스케일링 피드백 정보(436)는 디-지터 버퍼에 의해 수행되는 시간 스케일링을 기재할 수 있다. 더욱이, 스케일링 피드백 정보(446)는 시간 스케일러(450)에 의해 수행되는 시간 스케일링을 기재한다. 스케일링 피드백 정보(446)에 관해, 시간 스케일러(450)에 의해 수행된 시간 스케일링이 일반적으로 신호 적응성이어서, 스케일링 피드백 정보(446)에 의해 기재되는 실제 시간 스케일링이 샘플-기반의 스케일링 정보(444)에 의해 기재될 수 있는 원하는 시간 스케일링과 상이할 수 있다. 결론적으로, 스케일링 피드백 정보(436) 및 스케일링 피드백 정보(446)는 실제 시간 스케일링을 기재할 수 있고, 이러한 실제 시간 스케일링은 본 발명의 몇몇 양상들에 따라 제공된 시간-적응성으로 인해 원하는 시간 스케일링과 상이할 수 있다.
더욱이, 오디오 디코더(400)는 또한 오디오 디코더의 (1차) 제어를 수행하는 제어 로직(490)을 포함한다. 제어 로직(490)은 디패커(420)로부터 정보(424)(예를 들어, SID 플래그)를 수신한다. 더욱이, 제어 로직(490)은 목표 지연 추정부(470)로부터 목표 지연 정보(472)를 수신하고, 재생 지연 추정부(480)로부터 재생 지연 정보(482)를 수신한다{재생 지연 정보(482)는 스케일링 피드백 정보(436) 및 스케일링 피드백 정보(446)에 기초하여 재생 지연 추정부(480)에 의해 도출되는 실제 지연을 기재한다}. 더욱이, 제어 로직(490)(선택적으로)은 PCM 버퍼(460)로부터 지연 정보(462)를 수신한다(대안적으로, PCM 버퍼의 지연 정보는 미리 결정된 양일 수 있다). 수신된 정보에 기초하여, 제어 로직(490)은 프레임-기반의 스케일링 정보(434) 및 샘플-기반의 스케일링 정보(442)를 디-지터 버퍼(430) 및 시간 스케일러(450)에 제공한다. 따라서, 제어 로직은 오디오 컨텐트의 하나 이상의 특징들(예를 들어, 안락 잡음 생성이 SID 플래그에 의해 운반된 신호 발신에 따라 수행되어야 하는 "비활성" 프레임이 있는 지의 질문과 같이)을 고려하여, 신호 적응성 방식으로 목표 지연 정보(472) 및 재생 지연 정보(482)에 따라 프레임-기반의 스케일링 정보(434) 및 샘플-기반의 스케일링 정보(442)를 설정한다.
제어 로직(490)이 지터 버퍼 제어부(100)의 기능들의 몇몇 또는 전부를 수행할 수 있고, 정보(424)가 오디오 신호에 관한 정보(110)에 대응할 수 있고, 제어 정보(112)가 프레임-기반의 스케일링 정보(434)에 대응할 수 있고, 제어 정보(114)가 샘플-기반의 스케일링 정보(444)에 대응할 수 있다는 것이 본 명세서에서 주지되어야 한다. 또한, 시간 스케일러(450)가 시간 스케일러(200)의 기능들의 몇몇 또는 전부를 수행할 수 있고(또는 그 반대로도 이루어짐), 입력 오디오 신호(210)가 디코딩된 오디오 샘플들(442)에 대응하고, 입력 오디오 신호의 시간-스케일링된 버전(212)이 시간-스케일링된 오디오 샘플들(448)에 대응한다는 것이 주지되어야 한다.
더욱이, 오디오 디코더(400)가 오디오 디코더(300)에 대응하여, 오디오 디코더(300)가 오디오 디코더(400)에 대해 기재된 기능들의 몇몇 또는 전부를 수행할 수 있고, 그 반대로도 이루어진다는 것이 주지되어야 한다. 지터 버퍼(320)는 디-지터 버퍼(430)에 대응하고, 디코더 코어(330)는 디코더(440)에 대응하고, 시간 스케일러(340)는 시간 스케일러(450)에 대응한다. 제어부(350)는 제어 로직(490)에 대응한다.
다음에서, 오디오 디코더(400)의 기능에 관한 몇몇 추가 세부사항들이 제공될 것이다. 특히, 제안된 지터 버퍼 관리(JBM)가 기재될 것이다.
지터 버퍼 관리(JBM) 해법이 기재되며, 이것은 연속적인 재생을 유지하면서, 코딩된 음성 또는 오디오 데이터를 포함하는 프레임들을 갖는 수신된 패킷들(410)을 디코더(440)에 공급하는데 사용될 수 있다. 패킷-기반의 통신들, 예를 들어, VoIP(voice-over-internet-protocol)에서, 패킷들{예를 들어, 패킷들(410)}은 일반적으로 가변 송신 시간을 겪고, 송신 동안 손실되는데, 이것은 수신기{예를 들어, 오디오 디코더(400)를 포함하는 수신기}에 대한 도달간(inter-arrival) 지터 및 잃어버린 패킷들을 초래한다. 그러므로, 지터 버퍼 관리 및 패킷 손실 은닉 해법들은 스터터(stutter) 없이 연속적인 출력 신호를 가능하게 하는데 바람직하다.
다음에서, 해법 개요가 제공될 것이다. 기재된 지터 버퍼 관리의 경우에, 수신된 RTP 패킷들{예를 들어, 패킷들(410)} 내의 코딩된 데이터는 제 1 디패킷화되고{예를 들어, 디패커(420)를 이용하여}, 코딩된 데이터(예를 들어, AMR-WB 코딩된 프레임 내의 보이스 데이터)를 갖는 결과적인 프레임들{예를 들어, 프레임들(422)}은 디-지터 버퍼{예를 들어, 디-지터 버퍼(430)}에 공급된다. 새로운 펄스-코드-변조된 데이터(PCM 데이터)가 재생을 위해 요구될 때, 디코더{예를 들어, 디코더(440)}에 의해 이용가능하게 이루어질 필요가 있다. 이러한 목적을 위해, 프레임들{예를 들어, 프레임들(432)}은 디-지터 버퍼{예를 들어, 디-지터 버퍼(430)}로부터 풀링된다(pulled). 디-지터 버퍼의 이용에 의해, 도달 시간에서의 요동들(fluctuations)이 보상될 수 있다. 버퍼의 깊이를 제어하기 위해 시간 스케일 변형(TSM)이 적용된다(시간 스케일 변형은 또한 간략하게 시간 스케일링으로서 표시된다). 시간 스케일 변형은 코딩된 프레임에 기초하여{예를 들어, 디-지터 버퍼(430) 내에서}, 또는 개별적인 모듈에서{예를 들어, 시간 스케일러(450) 내에서} 발생할 수 있어서, PCM 출력 신호{예를 들어, PCM 출력 신호(448) 또는 PCM 출력 신호(412)}의 더-미세한 과립형 적응들을 허용한다.
전술한 개념은 예를 들어 지터 버퍼 관리 개요를 도시한 도 4에 도시된다. 디-지터 버퍼{예를 들어, 디-지터 버퍼(430)}의 깊이, 및 이에 따라 또한 디-지터 버퍼{예를 들어, 디-지터 버퍼(430)} 및/또는 TSM 모듈{예를 들어, 시간 스케일러(450) 내에서} 내에서의 시간 스케일링의 레벨들을 제어하기 위해, 제어 로직{예를 들어, 목표 지연 추정부(470) 및 재생 지연 추정부(480)에 의해 지원되는 제어 로직(490)}이 사용된다. 이것은 목표 지연{예를 들어, 정보(472)} 및 재생 지연{예를 들어, 정보(482)}에 대한 정보, 및 안락 잡음 생성(CNG)과 연계하여 불연속적인 송신(DTX)이 현재 사용되는 지의 여부{예를 들어 정보(424)}를 이용한다. 지연 값들은 예를 들어, 목표 및 재생 지연 추정을 위한 개별적인 모듈들{예를 들어, 모듈들(470 및 480)}로부터 생성되고, 활성/비활성 비트(SID 플래그)는 예를 들어 디패커 모듈{예를 들어, 디패커(420)}에 의해 제공된다.
5.4.1. 디패커
다음에서, 디패커(420)가 기재될 것이다. 디패커 모듈은 RTP 패킷들(410)을 단일 프레임들(액세스 유닛들)(422)로 분할한다. 디패커는 또한 패킷에서 유일하거나 제 1 프레임이 아닌 모든 프레임들에 대한 RTP 시간 스탬프를 계산한다. 예를 들어, RTP 패킷에 포함된 시간 스탬프는 제 1 프레임에 할당된다. 집합(aggregation)(즉, 하나를 초과하는 단일 프레임을 포함하는 RTP 패킷들에 대해)의 경우에, 다음에 오는 프레임들에 대한 시간 스탬프는 RTP 시간 스탬프들의 스케일에 의해 분리된 프레임 지속기간만큼 증가된다. 더욱이, RTP 시간 스탬프에, 각 프레임은 또한 RTP 패킷이 수신된 시스템 시간("도달 시간 스탬프")으로 태깅(tagged)된다. 알 수 있듯이, RTP 시간 스탬프 정보 및 도달 시간 스탬프 정보(426)는 예를 들어, 목표 지연 추정부(470)에 제공될 수 있다. 디패커 모듈은 또한, 프레임이 활성이거나 묵음(silence) 삽입 설명자(SID)인 지를 결정한다. 비-활성 주기 내에서, SID 프레임들만이 몇몇 경우들에서 수신된다는 것이 주지되어야 한다. 따라서, 예를 들어, SID 플래그를 포함할 수 있는 정보(424)는 제어 로직(490)에 제공된다.
5.4.2. 디-지터 버퍼
디-지터 버퍼 모듈(430)은 디코딩{예를 들어, 디코더(440)에 의해}까지 네트워크(예를 들어, TCP/IP 유형의 네트워크를 통해) 상에서 수신된 프레임들(422)을 저장한다. 프레임들(422)은 네트워크 상에서 발생될 수 있었던 리오더링(reordering)을 되돌리기 위해(undo) 오름차순의 RTP 시간 스탬프 순서로 분류된 큐(queue)에 삽입된다. 큐의 전방에서의 프레임은 디코더(440)에 공급될 수 있고, 그런 후에 제거된다{예를 들어, 디-지터 버퍼(430)로부터}. 큐가 비어있거나, 전방(큐의)에서의 프레임과 이전에 판독된 프레임의 시간 스탬프 차이에 따라 프레임을 잃어버리는 경우, 빈 프레임은 복귀되어{예를 들어, 디-지터 버퍼(430)로부터 디코더(440)로}, 디코더 모듈(440)에서 패킷 손실 은닉(마지막 프레임이 활성인 경우) 또는 안락 잡음 생성(마지막 프레임이 "SID" 또는 비활성인 경우)을 개시한다.
달리 말하면, 디코더(440)는, 예를 들어 활성 "SID" 플래그를 이용하여 안락 잡음이 사용되어야 하는 지를 프레임에서 신호 발신하는 경우에 안락 잡음을 생성하도록 구성될 수 있다. 다른 한 편으로, 디코더는 또한 예를 들어, 이전(마지막) 프레임이 활성(즉, 안락 잡음 생성이 비작동됨)이었고 지터 버퍼가 비어있게 실행되는{빈 프레임은 지터 버퍼(430)에 의해 디코더(440)에 제공됨} 경우에 예측된(또는 외삽된) 오디오 샘플들을 제공함으로써, 패킷 손실 은닉을 수행하도록 구성될 수 있다.
디-지터 버퍼 모듈(430)은 또한 시간 신장을 위해 전방(예를 들어, 지터 버퍼의 큐의)에 빈 프레임을 가산하거나, 시간 수축을 위해 전방(예를 들어, 지터 버퍼의 큐의)에서 프레임을 드롭함으로써 프레임-기반의 시간 스케일링을 지원한다. 비-활성 주기의 경우에, 디-지터 버퍼는, "NO_DATA" 프레임들이 가산되거나 드롭된 경우처럼 행동할 수 있다.
5.4.3. 시간 스케일 변형(TSM)
다음에서, 또한 간략하게 본 명세서에서 시간 스케일러 또는 샘플-기반의 시간 스케일러로서 표시되는 시간-스케일 변형(TSM)이 기재될 것이다. 구축된 품질 제어를 갖는 변형된 패킷-기반의 WSOLA(waveform-similarity-based-overlap-add)(예를 들어, [Lia01]을 참조) 알고리즘은 신호의 시간 스케일 변형(간략하게 시간 스케일링으로서 표시됨)을 수행하는데 사용된다. 몇몇 세부사항들은 예를 들어, 아래에 설명될 도 9에서 알 수 있게 된다. 시간 스케일의 레벨은 신호-종속적이다. 스케일링될 때 심각한 결함들을 생성하는 신호들은 품질 제어에 의해 검출되고, 묵음에 가까운 저-레벨 신호들은 가장 가능한 정도까지 스케일링된다. 주기적 신호들과 같이 매우 시간-스케일링가능한 신호들은 내부적으로 도출된 시프트에 의해 스케일링된다. 시프트는 정규화된 교차 상관과 같이 유사도 척도로부터 도출된다. 중첩-가산(OLA)을 통해, 현재 프레임의 단부(또한 본 명세서에서 "샘플들의 제 2 블록"으로서 표시됨)는 프레임을 단축시키거나 연장시키기 위해 시프트된다(예를 들어, 본 명세서에서 또한 "샘플들의 제 1 블록"으로서 표시되는 현재 프레임의 시작에 대해).
이미 언급된 바와 같이, 시간 스케일 변형(TSM)에 관한 추가 세부사항들은 품질 제어를 갖는 변형된 WSOLA를 도시하는 도 9와, 또한 도 10a 및 도 10b와 도 11을 참조하여, 아래에 기재될 것이다.
5.4.4. PCM 버퍼
다음에서, PCM 버퍼가 기재될 것이다. 시간-스케일 변형 모듈(450)은 시간 가변 스케일을 갖는 디코더 모듈에 의해 출력된 PCM 프레임들의 지속기간을 변화시킨다. 예를 들어, 1024개의 샘플들(또는 2048개의 샘플들)은 오디오 프레임(432)마다 디코더(440)에 의해 출력될 수 있다. 이와 대조적으로, 가변 수의 오디오 샘플들은 샘플-기반의 시간 스케일링으로 인해 오디오 프레임(432)마다 시간 스케일러(450)에 의해 출력될 수 있다. 이와 대조적으로, 스피커 사운드 카드(또는, 일반적으로, 사운드 출력 디바이스)는 일반적으로 고정된 프레이밍(framing), 예를 들어 20ms를 예측한다. 그러므로, 선입 선출 행위를 갖는 추가 버퍼는 고정된 프레이밍을 시간-스케일러 출력 샘플들(448) 상에 적용하는데 사용된다.
전체 체인을 볼 때, 이러한 PCM 버퍼(460)는 추가 지연을 생성하지 않는다. 오히려, 지연은 디-지터 버퍼(430)와 PCM 버퍼(460) 사이에서 단지 공유된다. 그럼에도 불구하고, PCM 버퍼(460)에 저장된 샘플들의 수를 가능한 한 낮게 유지하는 것이 목적인데, 이는 이것이 디-지터 버퍼(430)에 저장된 프레임들의 수를 증가시켜, 후발-손해(late-loss)의 확률을 감소시키기 때문이다(디코더는 나중에 수신되는 잃어버린 프레임을 은닉한다).
도 5에 도시된 의사 프로그램 코드는 PCM 버퍼 레벨을 제어하기 위한 알고리즘을 보여준다. 도 5의 의사 프로그램 코드로부터 알 수 있듯이, 사운드 카드 프레임 크기("soundCardFrameSize")는, 예로서 프레임 지속기간이 20ms이라고 가정되는 경우, 샘플율("sampleRate")에 기초하여 계산된다. 따라서, 사운드 카드 프레임당 샘플들의 수는 알려져 있다. 후속하여, PCM 버퍼는, PCM 버퍼에서의 샘플들의 수("pcmBuffer_nReadableSamples()")가 사운드 카드 프레임당 샘플들의 수("soundCardFrameSize")보다 더 이상 작아지지 않을 때까지 오디오 프레임들(432)을 오디오 프레임들(432)(또한 "accessUnit"으로서 표시됨)을 디코딩함으로써 충진된다. 먼저, 프레임(또한, "accessUnit"으로서 표시됨)은 도면 부호(510)로 도시된 바와 같이, 디-지터 버퍼(430)로부터 얻어진다(또는 요청된다). 후속하여, 오디오 샘플들의 "프레임"은 도면 부호(512)에서 알 수 있듯이, 디-지터 버퍼로부터 요청된 프레임(432)을 디코딩함으로써 얻어진다. 따라서, 디코딩된 오디오 샘플들(예를 들어, 442로 표시됨)의 프레임이 얻어진다. 후속하여, 시간 스케일 변형은 디코딩된 오디오 샘플들(442)의 프레임에 적용되어, 시간 스케일링된 오디오 샘플들(448)의 "프레임"이 얻어지고, 이것은 도면 부호(514)에서 알 수 있다. 시간 스케일링된 오디오 샘플들의 프레임이 시간 스케일러(450)에 입력된 디코딩된 오디오 샘플들(442)의 프레임보다 더 큰 수의 오디오 샘플들 또는 더 작은 수의 오디오 샘플들을 포함할 수 있다는 것이 주지되어야 한다. 후속하여, 시간 스케일링된 오디오 샘플들(448)의 프레임은 도면 부호(516)에서 알 수 있듯이, PCM 버퍼(460)에 삽입된다.
이 절차는, (시간 스케일링된) 오디오 샘플들의 충분한 수가 PCM 버퍼(460)에서 이용가능할 때까지 반복된다. (시간 스케일링된) 샘플들의 충분한 수가 PCM 버퍼에서 이용가능하자마자, 시간 스케일링된 오디오 샘플들의 "프레임"(사운드 카드와 같은 사운드 재생 디바이스에 의해 요구된 프레임 길이를 갖는)은 PCM 버퍼(460)로부터 판독 출력되고, 도면 부호들(520 및 522)에 도시된 바와 같이, 사운드 재생 디바이스(예를 들어, 사운드 카드)로 송출된다.
5.4.5. 목표 지연 추정
다음에서, 목표 지연 추정기(470)에 의해 수행될 수 있는 목표 지연 추정이 기재될 것이다. 목표 지연은, 목표 지연 추정 모듈(470)의 이력에 현재 포함된 모든 프레임들에 비해 네트워크 상에서 가장 낮은 송신 지연을 가진 경우, 이전 프레임이 재생된 시간과, 이 프레임이 수신될 수 있었던 시간 사이에서 원하는 버퍼링 지연을 규정한다. 목표 지연을 추정하기 위해, 2개의 상이한 지터 추정기들이 사용되는데, 하나는 장기간 지터 추정기이고, 하나는 단기간 지터 추정기이다.
장기간 지터 추정
장기간 지터를 계산하기 위해, FIFO 데이터 구조가 사용될 수 있다. FIFO에 저장된 시간 스팬(span)은, DTX(불연속 송신 모드)가 사용되는 경우 저장된 엔트리들(entries)의 수와 상이할 수 있다. 이러한 이유로 인해, FIFO의 윈도우 크기는 2가지 방식들로 제한된다. 이것은 최대 500개의 엔트리들(초당 50개의 패킷들에서 10초와 동일함) 및 최대 10초의 시간 스팬(가장 최근의 패킷과 가장 오래된 패킷 사이의 RTP 시간 스탬프 차이)을 포함할 수 있다. 더 많은 엔트리들이 저장되는 경우, 가장 오래된 엔트리는 제거된다. 네트워크 상에서 수신된 각 RTP 패킷에 대해, 엔트리는 FIFO에 추가될 것이다. 엔트리는 3개의 갑들을 포함한다: 지연, 오프셋 및 RTP 시간 스탬프. 이들 값들은 도 6의 의사 코드에 도시된 바와 같이, 수신 시간(예를 들어, 도달 시간 스탬프에 의해 표현됨) 및 RTP 패킷의 RTP 시간 스탬프로부터 계산된다.
도면 부호들(610 및 612)에서 알 수 있듯이, 2개의 패킷들(예를 들어, 후속 패킷들)의 RTP 시간 스탬프들 사이의 시간 차이가 계산되고("rtpTimeDiff"를 산출), 2개의 패킷들(예를 들어, 후속 패킷들)의 수신 시간 스탬프들 사이의 차이가 계산된다("rcvTimeDiff"를 산출). 더욱이, RTP 시간 스탬프는 도면 부호(614)에서 알 수 있듯이, 송신 디바이스의 시간 베이스로부터 수신 디바이스의 시간 베이스로 변환되고, 이것은 "rtpTimeTicks"를 산출한다. 유사하게, RTP 시간 차이들(RTP 시간 스탬프들 사이의 차이)은 도면 부호(616)에서 알 수 있듯이, 수신기 시간 스케일/수신 디바이스의 시간-베이스로 변환되고, 이것은 "rtpTimediff"를 산출한다.
후속하여, 지연 정보("지연")는 도면 부호(618)에서 알 수 있듯이, 이전 지연 정보에 기초하여 업데이트된다. 예를 들어, 수신 시간 차이(즉, 패킷들이 수신되었던 시간들에서의 차이)가 RTP 시간 차이(즉, 패킷들이 전송되었던 시간들 사이의 차이)보다 크면, 지연이 증가된다는 결론이 얻어질 수 있다. 더욱이, 오프셋 시간 정보("오프셋")는 도면 부호(620)에서 알 수 있듯이, 계산되고, 오프셋 시간 정보는 수신 시간(즉, 패킷이 수신되었던 시간)과 패킷이 전송된 시간(수신기 시간 스케일로 변환된, RTP 시간 스탬프에 의해 정의됨) 사이의 차이를 나타낸다. 더욱이, 지연 정보, 오프셋 시간 정보 및 RTP 시간 스탬프 정보(수신기 시간 스케일로 변환된)는 도면 부호(622)에서 알 수 있듯이, 장기간 FIFO에 추가된다.
후속하여, 일부 현재 정보는 도면 부호(624)에서 알 수 있듯이, 다음 반복을 위해 "이전" 정보로서 저장된다.
장기간 지터는 FIFO에 현재 저장된 최대 지연 값과 최소 지연 값 사이의 차이로서 계산될 수 있다:
longTermJitter=longTermFifo_getMaxDelay()-longTermFifo_getMinDelay();
단기간 지터 추정
다음에서, 단기간 지터 추정이 기재될 것이다. 단기간 지터 추정은 예를 들어, 2가지 단계들로 이루어진다. 제 1 단계에서, 장기간 추정에 대해 이루어진 것과 동일한 지터 계산은 다음의 변형들을 통해 사용된다: FIFO의 윈도우 크기는 최대 50개의 엔트리들 및 최대 1초의 시간 스팬에 제한된다. 결과적인 지터 값은 FIFO에 현재 저장된 94% 백분율의 지연 값(3개의 가장 높은 값들은 무시됨)과 최소 지연 값 사이의 차이로서 계산된다:shortTermJitterTmp=shortTermFifo1_getPercentileDelay(94)-shortTermFifo1_getMinDelay();
제 2 단계에서, 먼저 단기간 및 장기간 FIFO들 사이의 차이 오프셋들은 이 결과에 대해 보상된다:
shortTermJitterTmp+=shortTermFifo1_getMinOffset();
shortTermJitterTmp-=shortTermFifo1_getMinOffset();
이 결과는 최대 200개의 엔트리들의 윈도우 크기와 최대 4초의 시간 스팬을 갖는 다른 FIFO에 추가된다. 마지막으로, FIFO에 저장된 최대 값은 프레임 크기의 정수배로 증가되고, 단기간 지터로서 사용된다:
shortTermFifo2_add(shortTermJitterTmp);
shortTermJitter=ceil(shortTermFifo2_getMax()/20.f)*20;
장/단기간 지터 추정의 조합에 의한 목표 지연 추정
목표 지연{예를 들어, 목표 지연 정보(472)}을 계산하기 위해, 장기간 및 단기간 지터 추정들(예를 들어, "lonhTermJitter" 및 "shortTermJitter"로서 위에서 정의된 바와 같이)은 현재 상태에 따라 상이한 방식들로 조합된다. 활성 신호들(또는, 안락 잡음 생성이 사용되지 않는 신호 부분들)에 대해, 범위(예를 들어, "targetMin" 및 "targetMax"에 의해 정의됨)는 목표 지연으로서 사용된다. DTX 동안, 그리고 DTX 이후의 시동 동안, 2가지 상이한 값들은 목표 지연으로서 계산된다(예를 들어, "targetDtx" 및 "targetStartUp").
상이한 목표 지연 값들이 어떻게 계산될 수 있는지에 대한 세부사항들은 예를 들어 도 7에서 알 수 있다. 도면 부호들(710 및 712)에서 알 수 있듯이, 활성 신호들에 대한 범위를 할당하는 값들("targetMin" 및 "targetMax")은 단기간 지터("shortTermJitter") 및 장기간 지터("longTermJitter")에 기초하여 계산된다. DTX 동안의 목표 지연("targetDtx")의 계산은 도면 부호(714)에서 도시되고, 시동(예를 들어, DTX 이후)에 대한 목표 지연 값("targetStartUp")의 계산은 도면 부호(716)에서 도시된다.
5.4.6. 재생 지연 추정
다음에서, 재생 지연 추정기(480)에 의해 수행될 수 잇는 재생 지연 추정이 기재될 것이다. 재생 지연은, 목표 지연 추정 모듈의 이력에 현재 포함된 모든 프레임들에 비해 네트워크 상의 가장 낮은 가능한 송신 지연을 갖는 경우 이전 프레임이 재생되는 시간과, 이 프레임이 수신될 수 있었던 시간 사이의 버퍼링 지연을 규정한다. 이것은 다음 수학식을 이용하여 ms 단위로 계산된다:
playoutDelay=prevPlayoutOffset-longTermFifo_getMinOffset()+pcmBufferDelay;
변수 "prevPlayoutOffset"은, 수신된 프레임이 ms 단위의 현재 시스템 시간 및 ms로 변환된 프레임의 RTP 시간 스탬프를 이용하여 디-지터 버퍼 모듈(430)로부터 파핑(popped)된다:
prevPlayoutOffset=sysTime-rtpTimestamp
프레임이 이용가능하지 않은 경우 "prevPlayoutOffset"이 업데이트되는 것을 회피하기 위해, 변수는 프레임-기반의 시간 스케일링의 경우에 업데이트된다. 프레임-기반의 시간 신장에 대해, "prevPlayoutOffset"은 프레임의 지속기간만큼 증가되고, 프레임-기반의 시간 수축에 대해, "PrevPlayoutOffset"은 프레임의 지속기간만큼 감소된다. 변수 "pcmBufferDelay"는 PCM 버퍼 모듈에서 버퍼링된 시간의 지속기간을 기재한다.
5.4.7. 제어 로직
다음에서, 제어{예를 들어, 제어 로직(490)}는 구체적으로 기재될 것이다. 하지만, 도 8에 따른 제어 로직(800)이 지터 버퍼 제어부(100)에 대해 기재된 임의의 특징들 및 기능들로 보완될 수 있고, 그 반대로도 이루어질 수 있다. 더욱이, 제어 로직(800)이 도 4에 따라 제어 로직(490)을 위치시킬 수 있지만, 선택적으로 추가 특징들 및 기능들을 포함할 수 있다는 것이 주지되어야 한다. 더욱이, 도 4에 대해 위에서 기재된 모든 특징들 및 기능들이 또한 도 8에 따라 제어 로직(800)에서 존재하고, 그 반대로도 이루어지는 것이 요구되지 않는다.
도 8은 사실상 하드웨어로 구현될 수 있는 제어 로직(800)의 흐름도를 도시한다.
제어 로직(800)은 디코딩을 위한 프레임을 풀링(pulling)(810)하는 것을 포함한다. 즉, 프레임은 디코딩을 위해 선택되고, 다음의 이러한 디코딩이 어떻게 수행되는 지에서 결정된다. 체크(814)에서, 이전 프레임{예를 들어, 단계(810)에서 디코딩을 위해 풀링된 프레임을 선행하는 이전 프레임}이 활성화되는 지의 여부가 체크된다. 이전 프레임이 비활성화인지가 체크(814)에서 발견되면, 제 1 결정 경로(분기)(820)가 선택되고, 비활성 신호를 적응시키는데 사용된다. 이와 대조적으로, 이전 프레임이 활성인지가 체크(814)에서 발견되면, 제 2 결정 경로(분기)(830)가 선택되고, 활성 신호를 적응시키는데 사용된다. 제 1 결정 경로(820)는 단계(840)에서 "갭" 값을 결정하는 것을 포함하고, 여기서 갭 값은 재생 지연과 목표 지연 사이의 차이를 나타낸다. 더욱이, 제 1 결정 경로(820)는 갭 값에 기초하여 수행될 시간 스케일링 동작에 대한 결정(850)을 포함한다. 제 2 결정 경로(830)는, 실제 재생 지연이 목표 지연 간격 내에 있는 지의 여부에 따라 시간 스케일링을 선택(860)하는 것을 포함한다.
다음에서, 제 1 결정 경로(820) 및 제 2 결정 경로(830)에 관한 추가 세부사항들이 기재될 것이다.
제 1 결정 경로(820)의 단계(840)에서, 다음 프레임이 활성인지의 여부에 대한 체크(842)가 수행된다. 예를 들어, 체크(842)는, 단계(810)에서 디코딩을 위해 풀링된 프레임이 활성인지의 여부를 체크할 수 있다. 대안적으로, 체크(842)는, 단계(810)에서 디코딩을 위해 풀링된 프레임에 후속하는 프레임이 활성인지의 여부를 체크할 수 있다. 다음 프레임이 활성이 아닌지, 또는 다음 프레임이 아직 이용가능하지 않은 지가 체크(842)에서 발견되면, 변수"갭"은 단계(844)에서, 실제 재생 지연(변수 "playoutDelay"에 의해 정의됨)과 DTX 목표 지연(변수 "targetDtx"에 의해 표현됨) 사이의 차이가 섹션 "목표 지연 추정"에서 위에서 기재되었기 때문에 설정된다. 이와 대조적으로, 다음 프레임이 활성인 지가 체크(840)에서 발견되면, 변수 "갭"은 단계(846)에서 재생 지연(변수 "playoutDelay"로 표현됨)과 시동 목표 지연(변수 "targetStartUp"에 의해 정의됨) 사이의 차이로 설정된다.
단계(850)에서, 변수 "갭"의 크기가 임계치보다 큰(또는 동일한) 지의 여부가 먼저 체크된다. 이것은 체크(852)에서 이루어진다. 변수 "갭"의 크기가 임계값보다 작은(또는 동일한) 지가 발견되면, 시간 스케일링이 수행되지 않는다. 이와 대조적으로, 변수 "갭"의 크기가 임계값보다 큰(또는 구현에 따라 임계값들보다 동일한) 지가 체크(852)에서 발견되면, 스케일링이 필요하다는 것이 결정된다. 다른 체크(854)에서, 변수 "갭"의 값이 양 또는 음인지의 여부(즉, 변수 "갭"이 0보다 크거나 크지 않으면)가 체크된다. 변수 "갭"의 값이 0보다 크지 않은 지(즉 음인지)가 발견되면, 프레임은 디-지터 버퍼에 삽입되어{단계(856)에서 프레임-기반의 시간 신장}, 프레임-기반의 시간 스케일링이 수행된다. 이것은, 예를 들어, 프레임-기반의 스케일링 정보(434)에 의해 신호 발신될 수 있다. 이와 대조적으로, 변수 "갭"의 값이 0보다 큰지, 즉 양인지가 발견되면, 프레임은 디-지터 버퍼로부터 드롭되어{단계(856)에서 프레임-기반의 시간 수축}, 프레임-기반의 시간 스케일이 수행된다. 이것은 프레임-기반의 스케일링 정보(434)를 이용하여 신호 발신될 수 있다.
다음에서, 제 2 결정 분기(860)가 기재될 것이다. 체크(862)에서, 재생 지연이 예를 들어, 변수 "targetMax"에 의해 기재된 최대 목표 값(즉, 목표 간격의 상한계)보다 큰(또는 동일한) 지가 체크된다. 재생 지연이 최대 목표 값보다 큰(또는 동일한) 지가 발견되면, 시간 수축(shrink)은 시간 스케일러(450){단계(866), TSM을 이용하여 샘플-기반의 시간 수축}에 의해 수행되어, 샘플-기반의 시간 스케일링이 수행된다. 이것은, 예를 들어, 샘플-기반의 스케일링 정보(444)에 의해 신호 발신될 수 있다. 하지만, 재생 지연이 최대 목표 지연보다 작은(또는 동일한) 지가 체크(862)에서 발견되면, 체크(864)가 수행되고, 여기서 재생 지연이 최소 목표 지연보다 작은(또는 동일한) 지의 여부가 체크되고, 이러한 최소 목표 지연은 예를 들어, 변수 "targetMin"으로 기재된다. 재생 지연이 최소 목표 지연보다 작은(또는 동일한) 지가 발견되면, 시간 신장(stretch)은 시간 스케일러(450)에 의해 수행되어{단계(866), TSM을 이용하는 샘플-기반의 시간 신장}, 샘플-기반의 시간 스케일링이 수행된다. 이것은, 예를 들어 샘플 기반의 스케일링 정보(444)에 의해 신호 발신될 수 있다. 하지만, 재생 지연이 최소 목표 지연보다 작지 않은(또는 동일한) 지가 체크(864)에서 발견되면, 시간 스케일링이 수행되지 않는다.
결론적으로, 도 8에 도시된 제어 로직 모듈(또한 지터 버퍼 관리 제어 로직으로서 표시됨)은 실제 지연(재생 지연)과 원하는 지연(목표 지연)을 비교한다. 상당한 차이의 경우에, 시간 스케일링을 개시한다. 안락 잡음(예를 들어, SID-플래그가 활성일 때) 동안, 프레임-기반의 시간 스케일링은 디-지터 버퍼 모듈에 의해 개시되고 실행될 것이다. 활성 주기 동안, 샘플-기반의 시간 스케일링은 TSM 모듈에 의해 개시되고 실행된다.
도 12는 목표 및 재생 지연 추정에 대한 예를 도시한다. 그래픽적 표현(1200)의 가로 좌표(1210)는 시간을 기재하고, 그래픽 표현(1200)의 세로 좌표(1212)는 ms 단위의 지연을 기재한다. "targetMin" 및 "targetMax" 시리즈는 윈도윙 네트워크 지터에 후속하는 목표 지연 추정 모듈에 의해 바람직한 지연의 범위를 생성한다. 재생 지연 "playoutDelay"는 일반적으로 범위 내에 있지만, 그 적응은 신호 적응성 시간 스케일 변형으로 인해 약간 지연될 수 있다.
도 13은 도 12 트레이스(trace)에서 실행된 시간 스케일 동작들을 도시한다. 그래픽 표현(1300)의 가로 좌표(1310)는 초 단위의 시간을 기재하고, 세로 좌표(1312)는 ms 단위의 시간 스케일링을 기재한다. 양의 값들은 시간 신장을 나타내고, 음의 값들은 그래픽 표현(1300)에서 시간 수축을 나타낸다. 버스트 동안, 양쪽 버퍼들은 단지 한 번 비어 있는 상태를 취하고, 하나의 은닉된 프레임은 신장(35초에 20 ms를 더함)을 위해 삽입된다. 모든 다른 적응들에 대해, 더 높은 품질의 샘플-기반의 시간 스케일링 방법이 사용될 수 있고, 이것은 신호 적응성 접근법으로 인해 가변 스케일들을 초래한다.
결론적으로, 목표 지연은 특정 윈도우에 걸쳐 지터의 증가( 및 또한 지터의 감소에 응답하여)에 응답하여 동적으로 적응된다. 목표 지연이 증가하거나 감소할 때, 시간 스케일링은 일반적으로 수행되고, 여기서 시간 스케일링의 유형에 관한 결정은 신호-적응적 방식으로 이루어진다. 현재 프레임(또는 이전 프레임)이 활성인 경우, 샘플-기반의 시간 스케일링이 수행되고, 여기서 샘플-기반의 시간 스케일링의 실제 지연은 결함들을 감소시키기 위해 신호-적응적 방식으로 적응된다. 따라서, 일반적으로, 샘플-기반의 시간 스케일링이 적용될 때 시간 스케일링의 고정된 양이 존재하지 않는다. 하지만, 지터 버퍼가 비어 있는 상태로 실행될 때, 이전 프레임(또는 현재 프레임)이 활성이더라도, 은닉된 프레임(프레임-기반의 시간 스케일링을 구성)을 삽입하는 것이 필요하다(또는 권고가능하다) - 예외적인 취급.
5.8. 도 9에 따른 시간 스케일 변형
다음에서, 시간 스케일 변형에 관한 세부사항들은 도 9를 참조하여 기재될 것이다. 시간 스케일 변형이 섹션 5.4.3.에 간략하게 기재되었다는 것이 주지되어야 한다. 하지만, 예를 들어, 시간 스케일러(150)에 의해 수행될 수 있는 시간 스케일 변형은 다음에서 더 구체적으로 기재될 것이다.
도 9는 본 발명의 실시예에 따라 품질 제어를 갖는 변형된 WSOLA의 흐름도를 도시한다. 도 9에 따른 시간 스케일링(900)이 도 2에 따른 시간 스케일러(200)에 대해 기재된 임의의 특징들 및 기능들에 의해 보완될 수 있고, 그 반대로도 이루어진다는 것이 주지되어야 한다. 더욱이, 도 9에 따른 시간 스케일링(900)이 도 3에 따른 샘플 기반의 시간 스케일러(340) 및 도 4에 따른 시간 스케일러(450)에 대응할 수 있다는 것이 주지되어야 한다. 더욱이, 도 9에 따른 시간 스케일링(900)은 샘플-기반의 시간 스케일링(866)을 대체할 수 있다.
시간 스케일링(또는 시간 스케일러, 또는 시간 스케일러 변형기)(900)은 예를 들어, 펄스-코드-변형된(PCM) 형태로 디코딩된(오디오) 샘플들(910)을 수신한다. 디코딩된 샘플들(910)은 디코딩된 샘플들(442), 오디오 샘플들(332) 또는 입력 오디오 신호(210)에 대응할 수 있다. 더욱이, 시간 스케일러(900)는 예를 들어, 샘플 기반의 스케일링 정보(444)에 대응할 수 있는 제어 정보(912)를 수신한다. 제어 정보(912)는 예를 들어, 목표 스케일 및/또는 최소 프레임 크기{예를 들어, PCM 버퍼(460)에 제공될 오디오 샘플들(448)의 프레임의 샘플들의 최소 수}를 기재할 수 있다. 시간 스케일러(900)는, 목표 스케일에 관한 정보에 기초하여, 시간 수축이 수행되어야 하는 지의 여부, 시간 신장이 수행되어야 하는 지, 또는 시간 스케일링이 수행될 수 없는 지의 여부가 결정된다. 예를 들어, 스위칭(또는 체크, 또는 선택)(920)은 제어 로직(490)으로부터 수신된 샘플-기반의 스케일링 정보(444)에 기초할 수 있다.
목표 스케일 정보에 기초하여, 스케일링이 수행될 수 없는 지가 발견되면, 수신된 디코딩된 샘플들(910)은 시간 스케일러(900)의 출력으로서 변형되지 않은 형태로 송출된다. 예를 들어, 디코딩된 샘플들(910)은 변형되지 않은 형태로, "시간 스케일링된" 샘플들(448)로서 PCM 버퍼(460)에 송출된다.
다음에서, 시간 수축이 수행되는{목표 스케일 정보(912)에 기초하여, 체크(920)에 의해 발견될 수 있는} 경우에 대한 처리 흐름이 기재될 것이다. 시간 수축이 바람직한 경우에, 에너지 계산(930)이 수행된다. 이러한 에너지 계산(930)에서, 샘플들(예를 들어, 주어진 수의 샘플들을 포함하는 프레임)의 블록의 에너지가 계산된다. 에너지 계산(930)에 뒤이어, 선택(또는 스위칭, 또는 체크)(936)이 수행된다. 에너지 계산(930)에 의해 제공된 에너지 값(932)이 에너지 임계값{예를 들어, 에너지 임계값(Y)}보다 큰(또는 동일한) 지가 발견되면, 제 1 처리 경로(940)가 선택되고, 샘플-기반의 시간 스케일링 내에서 시간 스케일링의 양의 신호 적응성 결정을 포함한다. 이와 대조적으로, 에너지 계산(930)에 의해 제공된 에너지 값(932)이 임계값{예를 들어, 임계값(Y)}보다 작은(또는 동일한) 지가 발견되면, 제 2 처리 경로(960)가 선택되고, 시간 시프트의 고정된 양이 샘플-기반의 시간 스케일링에 적용된다. 시간 시프트의 양이 신호 적응성 방식으로 결정되는 제 1 처리 경로(940)에서, 유사도 추정(942)은 오디오 샘플들에 기초하여 수행된다. 유사도 추정(942)은 최소 프레임 크기 정보(944)를 고려할 수 있고, 가장 높은 유사도(또는 가장 높은 유사도의 위치)에 관한 정보(946)를 제공할 수 있다. 즉, 유사도 추정(942)은, 어떤 위치(예를 들어, 샘플들의 블록 내의 샘플들의 어떤 위치)가 시간 수축 중첩-및-가산 동작에 가장 적합한 지를 결정할 수 있다. 가장 높은 유사도에 관한 정보(946)는 품질 제어(950)로 송출되고, 이러한 품질 제어(950)는, 가장 높은 유사도에 관한 정보(946)를 이용하여 중첩-및-가산 동작이 품질 임계값(X)(일정할 수 있거나 가변적일 수 있는)보다 더 큰(또는 동일한) 오디오 품질을 초래하는 지를 계산하거나 추정한다. 품질 제어(950)에 의해, 중첩-및-가산 동작(또는 동등하게, 중첩-및-가산 동작에 의해 획득가능한 입력 오디오 신호의 시간 스케일링된 버전의)의 품질이 품질 임계값(X)보다 작은(또는 동일한) 것이 발견되면, 시간 스케일링은 생략되고, 스케일링되지 않은 오디오 샘플들은 시간 스케일러(900)에 의해 출력된다. 이와 대조적으로, 품질 제어(950)에 의해, 가장 높은 유사도(또는 가장 높은 유사도의 위치)에 관한 정보(946)를 이용하여 중첩-및-가산 동작의 품질이 품질 임계값(X)보다 크거나 동일한 것이 발견되면, 중첩-및-가산 동작(954)이 수행되고, 중첩-및-가산 동작에서 적용된 시프트는 가장 높은 유사도(또는 가장 높은 유사도의 위치)에 관한 정보(946)에 의해 기재된다. 따라서, 오디오 샘플들의 스케일링된 블록(또는 프레임)은 중첩-및-가산 동작에 의해 제공된다.
시간 스케일링된 오디오 샘플들(956)의 블록(또는 프레임)은 예를 들어, 시간 스케일링된 샘플들(448)에 대응할 수 있다. 유사하게, 획득가능한 품질이 품질 임계값(X)보다 작거나 동일한 지를 품질 제어(950)가 발견하는 경우 제공되는 스케일링되지 않은 오디오 샘플들(952)의 블록(또는 프레임)은 또한 "시간 스케일링된" 샘플들(448)(여기서 이 경우에 실제로 시간 스케일링이 존재하지 않는다)에 대응할 수 있다.
이와 대조적으로, 선택(936)에서, 입력 오디오 샘플들(910)의 블록(또는 프레임)의 에너지가 에너지 임계값(Y)보다 작은(또는 동일한) 지가 발견되면, 중첩-및-가산 동작에 사용되는 시프트는 최소 프레임 크기(최소 프레임 크기 정보에 의해 기재됨)에 의해 한정되고, 스케일링된 오디오 샘플들(964)의 블록(또는 프레임)이 얻어지고, 이것은 시간 스케일링된 샘플들(448)에 대응할 수 있다.
더욱이, 시간 신장의 경우에 수행되는 처리가 변형된 유사도 측정 및 중첩-및-가산을 갖는 시간 수축에서 수행된 처리와 유사하다는 것이 주지되어야 한다.
결론적으로, 3가지 상이한 경우들이, 시간 수축 또는 시간 신장이 선택될 때 신호 적응성 샘플-기반의 시간 스케일링에서 구별된다는 것이 주지되어야 한다. 입력 오디오 샘플들의 블록(또는 프레임)의 에너지가 상당히 작은 에너지{예를 들어, 에너지 임계값(Y)보다 작은(또는 동일한)}를 포함하면, 시간 신장 중첩-및-가산 동작의 시간 수축은 고정된 시간 시프트(즉, 시간 수축 또는 시간 신장의 고정된 양)로 수행된다. 이와 대조적으로, 입력 오디오 샘플들의 블록(또는 프레임)의 에너지가 에너지 임계값(Y)보다 큰(또는 동일한) 경우, 시간 수축 또는 시간 신장의 "최적의"(또한 본 명세서에서 "후보"로서 종종 표시됨) 양은 유사도 추정{유사도 추정(942)}에 의해 결정된다. 후속 품질 제어 단계에서, 충분한 품질이 시간 수축 또는 시간 신장의 이전에 결정된 "최적의" 양을 이용하여 그러한 중첩-및-가산 동작에 의해 얻어지는 지의 여부가 결정된다. 충분한 품질에 도달할 수 있다는 것이 발견되면, 중첩-및-가산 동작은 시간 수축 또는 시간 신장의 결정된 "최적의" 양을 이용하여 수행된다. 이와 대조적으로, 충분한 품질이 시간 수축 또는 시간 신장의 이전에 결정된 "최적의" 양을 이용하여 중첩-및-가산 동작을 이용하여 도달되지 않을 수 있다는 것이 발견되면, 시간 수축 또는 시간 신장은 생략된다(또는 시간적으로 나중의 지점에, 예를 들어 나중의 프레임으로 연기된다).
다음에서, 시간 스케일러(900){또는 시간 스케일러(200), 또는 시간 스케일러(340), 또는 시간 스케일러(450)}에 의해 수행될 수 있는 품질 적응성 시간 스케일링에 관한 몇몇 추가 세부사항들이 기재될 것이다. 중첩-및-가산(OLA)를 이용하는 시간 스케일링 방법들은 광범위하게 이용가능하지만, 일반적으로, 신호 적응성 시간 스케일링 결과들을 수행하지 않는다. 본 명세서에 기재된 시간 스케일러들에서 사용될 수 있는 기재된 해법에서, 시간 스케일링의 양은 고품질 시간 스케일링에 대해 최적인 것으로 보이는 유사도 추정{예를 들어, 유사도 추정(942)}에 의해 추출된 위치에 의존할 뿐 아니라, 중첩-및-가산{예를 들어, 중첩-및-가산(954)}의 예상된 품질에 의존한다. 그러므로, 2가지 품질 제어 단계들은 시간 스케일링 모듈{예를 들어, 시간 스케일러(900), 또는 본 명세서에 기재된 다른 시간 스케일러들}에 도입되어, 시간 스케일링이 청취성 결함들을 초래하는 지의 여부를 결정한다. 잠재적인 결함들의 경우에, 시간 스케일링은 덜 청취성인 시간에서의 지점까지 연기된다.
제 1 품질 제어 단계는 입력으로서 유사도 측정{예를 들어, 유사도 추정(942)}에 의해 추출된 위치(p)를 이용하여 목적 품질 측정을 계산한다. 주기적 신호의 경우에, p는 현재 프레임의 기본 주파수일 것이다. 정규화된 교차 상관{c()}은 위치들(p, 2*p, 3/2*p)에 대해 계산되고, 1/2*p. c(p)는 양의 값인 것으로 예상되고, c(1/2*p)는 양 또는 음일 수 있다. 고조파 신호들에 대해, c(2p)의 부호는 또한 양이어야 하고, c(3/2*p)의 부호는 c(1/2*p)의 부호와 동일해야 한다. 이러한 관계는 목적 품질 측정(q)을 생성하는데 사용될 수 있다:
q=c(p)*c(2*p)+c(3/2*p)*c(1/2*p).
q에 대한 값들의 범위는 [-2; +2]이다. 이상적인 고조파 신호는 q=2를 초래하는 한편, 시간 스케일링 동안 청취성 결함들을 생성할 수 있는 매우 동적이고 광대역의 신호들은 낮은 값을 발생시킬 것이다. 시간 스케일링이 프레임간에 기초하여 이루어진다는 점으로 인해, c(2*p) 및 c(3/2*p)를 계산하기 위한 전체 신호는 아직 이용가능하지 않을 수 있다. 하지만, 평가는 과거 샘플들을 탐색함으로써 또한 이루어질 수 있다. 그러므로, c(-p)는 c(2*p) 대신에 사용될 수 있고, 유사하게 c(-1/2*p)는 c(3/2*p) 대신에 사용될 수 있다.
제 2 품질 제어 단계는 목적 품질 측정(q)의 현재 값과 동적 최소 품질 값(qMin){품질 임계값(X)에 대응할 수 있음}을 비교하여, 시간-스케일링이 현재 프레임에 적용되어야 하는 지를 결정한다.
동적 최소 품질 값을 갖기 위한 상이한 의도들이 존재한다: 신호가 긴 주기에 걸쳐 스케일링하기에 불량한 것으로 평가되기 때문에 q가 낮은 값을 가지면, qMin은, 예상된 스케일링이 낮은 예상된 품질에 대한 시간적으로 몇몇 지점에서 여전히 실행되는 것을 확인하기 위해 느리게 감소되어야 한다. 다른 한 편으로, q에 대한 높은 값을 갖는 신호들은 장기간 신호 특징들(예를 들어, 리듬)에 관한 품질을 감소시키는 행(row)에서 많은 프레임들을 스케일링하는 것을 초래하지 않아야 한다.
그러므로, 다음의 수학식은 동적 최소 품질(qMin)을 계산하는데 사용된다{예를 들어, 품질 임계값(X)과 등가일 수 있음}:
qMin = qMinInitial - (nNotScaled*0.1) + (nScaled*0.2)
qMinInitial은, 프레임이 요청된 품질로 스케일링될 수 있을 때까지 지연과 특정 품질 사이에서 최적화하기 위한 구성 값이며, 그 값 중에서 1의 값은 양호한 절충안이다. nNotScaled는 불충분한 품질(q < qMin)로 인해 스케일링되지 않았던 프레임들의 카운터이다. nScaled는, 품질 요건에 도달(q >=qMin)하였기 때문에 스케일링된 프레임들의 수를 계수한다. 양쪽의 카운터들의 범위는 제한된다: 이들은 음의 값들로 감소되지 않을 것이고, 디폴트에 의해(예를 들어) 4인 것으로 설정된 지정된 값보다 위로 증가되지 않을 것이다.
현재 프레임은 q >=qMin인 경우 위치(p)에 의해 시간-스케일링될 것이고, 그렇지 않으면, 시간-스케일링은 이러한 조건이 충족되는 다음의 프레임으로 연기될 것이다. 도 11의 의사 코드는 시간 스케일링을 위한 품질 제어를 도시한다.
알 수 있듯이, qMin에 대한 초기 값은 1로 설정되고, 상기 초기 값은 "qMinInitial"로 지정된다{도면 부호(1110)를 참조}. 유사하게, nScaled의 최대 카운터 값("variable qualityRise"로 지정됨)은 도면 부호(1112)에서 알 수 있듯이, 4로 초기화된다. 카운터 nNotScaled의 최대 값은 4로 초기화되고(변수 "qualityRed"), 도면 부호(1114)를 참조하자. 후속하여, 위치 정보(p)는 도면 부호(1116)에서 알 수 있듯이, 유사도 척도에 의해 추출된다. 후속하여, 품질 값(q)은 도면 부호(1116)에서 알 수 있는 수학식에 따라 위치 값(p)에 의해 기재된 위치에 대해 계산된다. 품질 임계값(qMin)은 변수(qMinInitial)에 따라 계산되고, 또한 도면 부호(1118)에서 알 수 있듯이, 카운터 값들(nNotScaled 및 nScaled)에 따라 계산된다. 알 수 있듯이, 품질 임계값(qMin)에 대한 초기 값(qMinInitial)은 카운터의 값(nNotScaled)에 비례하는 값만큼 감소하고, 값(nScaleD)에 비례하는 값만큼 증가한다. 알 수 있듯이, 카운터 값들(nNotScaled 및 nScaled)에 대한 최대 값들은 또한 품질 임계값(qMin)의 최대 증가 및 품질 임계값(qMin)의 최대 감소를 결정한다. 후속하여, 도면 부호(1120)에서 알 수 있듯이, 품질 값(q)이 품질 임계값보다 크거나 동일한 지의 여부에 대한 체크가 수행된다.
이것이 그러하면, 도면 부호(1122)에서 알 수 있듯이, 중첩-가산 동작이 실행된다. 더욱이, 카운터 변수(nNotScaled)는 감소하고, 상기 카운터 변수가 음을 취하지 않는 것이 보장된다. 더욱이, 카운터 변수(nScaled)는 증가하고, nScaled가 변수(또는 상수)(qualityRise)에 의해 정의된 상한계를 초과하지 않는 것이 보장된다. 카운터 변수들의 적응은 도면 부호들(1124 및 1126)에서 알 수 있다.
이와 대조적으로, 품질 값(q)이 품질 임계치(qMin)보다 작다는 것이 도면 부호(1120)에서 도시된 비교에서 발견되면, 중첩-및-가산 동작의 실행은 생략되고, 카운터 변수(nNotScaled)는, 카운터 변수(nNotScaled)가 변수(또는 상수)(qualityRed)에 의해 정의된 임계치를 초과하지 않는다는 점을 고려하여 증가하고, 카운터 변수(nScaled)는, 카운터 변수(nScaled)가 음이 아닌 점을 고려하여 감소한다. 품질이 불충분한 경우에 대해 카운터 변수들의 적응은 도면 부호들(1128 및 1130)에서 도시된다.
5.9. 도 10a 및 도 10b에 따른 시간 스케일러
다음에서, 신호 적응성 시간 스케일러는 도 10 및 도 10b를 참조하여 설명될 것이다. 도 10 및 도 10b는 신호 적응성 시간 스케일링의 흐름도를 도시한다. 도 10a 및 도 10b에 도시된 바와 같이, 신호 적응성 시간 스케일링이 예를 들어 시간 스케일러(200)에, 시간 스케일러(340)에, 시간 스케일러(450)에, 또는 시간 스케일러(900)에 적용될 수 있다는 것이 주지되어야 한다.
도 10a 및 도 10b에 따른 시간 스케일러(1000)는 에너지 계산(1010)을 포함하고, 오디오 샘플들의 프레임(또는 부분, 또는 블록)의 에너지가 계산된다. 예를 들어, 에너지 계산(1010)은 에너지 계산(930)에 대응할 수 있다. 후속하여, 체크(1014)가 수행되고, 여기서 에너지 계산(1010)에서 얻어진 에너지 값이 에너지 임계값(예를 들어, 고정된 에너지 임계값일 수 있음)보다 큰(또는 동일한) 지의 여부가 체크된다. 체크(1014)에서, 에너지 계산(1010)에서 얻어진 에너지 값이 에너지 임계값보다 작은(또는 동일한) 지가 발견되면, 충분한 품질이 중첩-가산 동작에 의해 얻어질 수 있고, 중첩-및-가산 동작이 단계(1018)에서 최대 시간 시프트(이를 통해 최대 시간 스케일링을 얻기 위해)로 수행된다는 것이 가정될 수 있다. 이와 대조적으로, 체크(1014)에서, 에너지 계산(1010)에서 얻어진 에너지 값이 에너지 임계값보다 작지 않는(또는 동일한)다는 것이 발견되면, 검색 영역 내에서 템플리트 세그먼트(template segment)의 최상의 매치에 대한 검색은 유사도 척도를 이용하여 수행된다. 예를 들어, 유사도 척도는 교차 상관, 정규화된 교차 상관, 평균 크기 차이 함수 또는 제곱근 에러들의 합일 수 있다. 다음에서, 최상의 매치에 대한 이러한 검색에 관한 몇몇 세부사항들이 기재될 것이고, 또한 시간 신장 또는 시간 수축이 어떻게 획득가능한지가 설명될 것이다.
이제 도면 부호(1040)에서 그래픽 표현이 참조된다. 제 1 표현(1042)은 시간(t1)에서 시작하고 시간(t2)에서 종료하는 블록(또는 프레임)을 도시한다. 알 수 있듯이, t1에서 시작하고 시간(t2)에서 종료하는 샘플들의 블록은 시간(t1)에서 시작하고 시간(t3)에서 종료하는 샘플들의 제 1 블록과, 시간(t4)에서 시작하고 시간(t2)에서 종료하는 샘플들의 제 2 블록으로 논리적으로 분할될 수 있다. 하지만, 샘플들의 제 2 블록은 이 후 샘플들의 제 1 블록에 대해 시간 시프트되고, 이것은 도면 부호(1044)에서 알 수 있다. 예를 들어, 제1 시간 시프트의 결과로서, 샘플들의 시간 시프트된 제 2 블록은 시간(t4')에서 시작하고 시간(t2')에서 종료한다. 따라서, 샘플들의 제 1 블록과, 시간(t' 및 t3) 사이의 샘플들의 시간 시프트된 제 2 블록 사이에 시간 중첩이 존재한다. 하지만, 알 수 있듯이, 예를 들어, 시간(t4' 및 t3)에서{또는 시간(t4' 및 t3) 사이의 상기 중첩 영역의 부분 내에서} 샘플들의 제 1 블록과 샘플들의 제 2 블록의 시간 시프트된 버전 사이에 양호한 매치(즉, 높은 유사도)가 이루어지지 않는다. 즉, 시간 스케일러는 예를 들어, 도면 부호(1044)에 도시된 바와 같이, 샘플들의 제 2 블록을 시간 시프트할 수 있고, 시간(t4' 및 t3) 사이의 중첩 영역(또는 중첩 영역의 부분)에 대한 유사도의 척도를 결정할 수 있다. 더욱이, 시간 스케일러는 또한 도면 부호(1046)에 도시된 바와 같이, 추가 시간 시프트를 샘플들의 제 2 블록에 적용할 수 있어서, 샘플들의 제 2 블록의 (2회) 시간 시프트된 버전은 시간(t4")에서 시작하고, 시간(t2")에서 종료한다(t2" > t2' > t2 및 유사도 t4" > t4' > t4를 가지고). 시간 스케일러는 또한 샘플들의 제 1 블록과, 예를 들어 시간(t4" 및 t3) 사이{또는, 예를 들어, 시간(t4" 및 t3) 사이의 부분 내에서}의 샘플들의 제 2 블록의 2회 시프트된 버전 사이에서 유사도를 나타내는 (정량적) 유사도 정보를 결정할 수 있다. 따라서, 시간 스케일러는, 샘플들의 제 2 블록의 시간 시프트된 버전의 시간 시프트가 샘플들의 제 1 블록을 갖는 중첩 영역에서, 최대화(또는 임계값보다 적어도 더 큰)되는 유사도를 평가한다. 따라서, 시간 시프트가 결정될 수 있고, 이것은 샘플들의 제 1 블록과 샘플들의 제 2 블록의 시간 시프트된 버전 사이의 유사도가 최대화(또는 적어도 충분히 큰)된다는 "최상의 매치"를 초래한다. 따라서, 시간 중첩 영역{예를 들어, 시간(t4" 및 t3)} 내에서 샘플들의 제 2 블록의 2회 시간 시프트된 버전과 샘플들의 제 1 블록 사이에 충분한 유사도가 존재하면, 유사도의 사용된 척도에 의해 결정된 신뢰성을 통해, 샘플들의 제 1 블록과 샘플들의 제 2 블록의 2회 시간 시프트된 버전을 중첩 및 가산하는 중첩-및-가산 동작이 상당한 청취성 결함들 없이 오디오 신호를 초래한다는 것이 예상될 수 있다. 더욱이, 샘플들의 제 1 블록과 샘플들의 제 2 블록의 2회 시간 시프트된 버전 사이의 중첩-및-가산은 시간(t1)으로부터 시간(t2)으로 연장하는, "원래" 오디오 신호보다 더 긴 시간(t1 및 t2") 사이의 시간 연장을 갖는 오디오 신호 부분을 초래한다는 것이 주지되어야 한다. 따라서, 시간 신장은 샘플들의 제 1 블록 및 샘플들의 제 2 블록의 2회 시간 시프트된 버전을 중첩 및 가산함으로써 달성될 수 있다.
유사하게, 도면 부호(1050)에서의 그래픽 표현을 참조하여 설명된 바와 같이, 시간 수축이 달성될 수 있다. 도면 부호(1052)에서 알 수 있듯이, 샘플들의 원래 블록(또는 프레임)이 존재하고, 이것은 시간(t11 및 t12) 사이로 연장한다. 샘플들의 원래 블록(또는 프레임)은 예를 들어, 시간(t11)으로부터 시간(t13)으로 연장하는 샘플들의 제 1 블록과, 시간(t13)으로부터 시간(t12)으로 연장하는 샘플들의 제 2 블록으로 분리될 수 있다. 샘플들의 제 2 블록은 도면 부호(1054)에서 알 수 있듯이, 좌측으로 시간 시프트된다. 따라서, 샘플들의 제 2 블록의 (1회) 시간 시프트된 버전은 시간(t13')에서 시작하고, 시간(t12')에서 종료한다. 또한, 샘플들의 제 1 블록과 시간(t13' 및 t13) 사이의 샘플들의 제 2 블록의 1회 시간 시프트된 버전 사이의 시간 중첩이 존재한다. 하지만, 시간 스케일러는 샘플들의 제 1 블록과, 시간(t13' 및 t13){또는 시간(t13' 및 t13) 사이의 시간의 부분에 대한} 사이의 샘플들의 제 2 블록의 (1회) 시간 시프트된 버전의 유사도를 나타내는 (정량적) 유사도 정보를 결정할 수 있고, 유사도가 특히 양호하지 않다는 것을 발견할 수 있다. 더욱이, 시간 스케일러는 샘플들의 제 2 블록을 추가로 시간 시프트할 수 있어서, 이를 통해 샘플들의 제 2 블록들의 2회 시간 시프트된 버전을 얻고, 이것은 도면 부호(1056)에서 도시되고, 시간(t13")에서 시작하고 시간(t12")에서 종료한다. 따라서, 샘플들의 제 1 블록과, 시간(t13" 및 t13) 사이의 샘플들의 제 2 블록의 (2회) 시간 시프트된 버전 사이에 중첩이 존재한다. 시간 스케일러에 의해, (정량적) 유사도 정보가 샘플들의 제 1 블록과, 시간(t13" 및 t13) 사이의 샘플들의 제 2 블록의 2회 시간 시프트된 버전 사이에 높은 유사도를 나타낸다는 것이 발견될 수 있다. 따라서, 시간 스케일러에 의해, 중첩-및-가산 동작은 샘플들의 제 1 블록과 샘플들의 제 2 블록의 2회 시간 시프트된 버전 사이에서 양호한 품질 및 적은 청취성 결함들을 가지고(적어도 사용된 유사도 척도에 의해 제공된 신뢰도를 가지고) 수행될 수 있다는 결론이 생길 수 있다. 더욱이, 도면 부호(1058)에서 도시된, 샘플들의 제 2 블록의 3회 시간 시프트된 버전이 또한 고려될 수 있다. 샘플들의 제 2 블록의 3회 시간 시프트된 버전은 시간(t13"')에서 시작할 수 있고, 시간(t12"')에서 종료할 수 있다. 하지만, 샘플들의 제 2 블록의 3회 시간 시프트된 버전은 시간(t13"' 및 t13) 사이의 중첩 영역에서 샘플들의 제 1 블록과의 양호한 유사도를 포함하지 않을 수 있는데, 이는 시간 시프트가 적절하지 않기 때문이다. 따라서, 시간 스케일러는, 샘플들의 제 2 블록의 2회 시간 시프트된 버전이 샘플들의 제 1 블록과의 최상의 매치(중첩 영역에서, 및/또는 중첩 영역의 환경에서, 및/또는 중첩 영역의 부분에서 최상의 유사도)를 포함한다는 것을 발견할 수 있다. 따라서, 시간 스케일러는, 추가 품질 체크(제 2의 더 의미 있는 유사도 척도에 의존할 수 있는)가 충분한 품질을 나타내는 경우, 샘플들의 제 1 블록과 샘플들의 제 2 블록의 2회 시간 시프트된 버전의 중첩-및-가산을 수행할 수 있다. 중첩-및-가산 동작의 결과로서, 샘플들의 조합된 블록이 얻어지고, 이것은 시간(t11)으로부터 시간(t12")으로 연장하고, 시간(t11)으로부터 시간(t12)으로 샘플들의 원래 블록보다 시간적으로 더 짧다. 따라서, 시간 수축이 수행될 수 있다.
도면 부호들(1040 및 1050)에서 그래픽 표현을 참조하여 기재된 상기 기능들이 검색(1030)에 의해 수행될 수 있고, 가장 높은 유사도의 위치에 관한 정보가 최상의 매치에 대한 검색 결과로서 제공된다는(가장 높은 유사도의 위치를 기재하는 정보 또는 값이 또한 본 명세서에서 p로 표시된다) 것이 주지되어야 한다. 각 중첩 영역들 내에서 샘플들의 제 1 블록과 샘플들의 제 2 블록의 시간 시프트된 버전 사이의 유사도는 교차 상관을 이용하여, 정규화된 교차 상관을 이용하여, 평균 크기 차이 함수를 이용하여, 또는 제곱근 에러들의 합을 이용하여, 결정될 수 있다.
일단 가장 높은 유사도의 위치(p)에 관한 정보가 결정되면, 가장 높은 유사도의 식별된 위치(p)에 대한 매칭 품질의 계산(1060)이 수행된다. 이러한 계산은 예를 들어, 도 11에서의 도면 부호(1116)에 도시된 바와 같이 수행될 수 있다. 즉, 매칭 품질에 관한 (정량적) 정보(예를 들어, q로 표시될 수 있음)는 4가지 상관 값들의 조합을 이용하여 계산될 수 있고, 이것은 상이한 시간 시프트들{예를 들어, 시간 시프트들(p, 2*p, 3/2*p, 및 1/2*p)}에 대해 얻어질 수 있다. 따라서, 매칭 품질을 나타내는 (정량적) 정보(q)가 얻어질 수 있다.
이제 도 10b를 참조하면, 체크(1064)가 수행되고, 여기서 매칭 품질을 기재하는 정량적 정보(q)는 품질 임계값(qMin)과 비교된다. 이러한 체크 또는 비교(1064)는, 변수(q)에 의해 표시된 매칭 품질이 변수 품질 임계값(qMin)보다 더 큰(또는 동일한) 지의 여부를 평가할 수 있다. 체크(1064)에서, 매칭 품질이 충분한(즉, 변수 품질 임계값보다 크거나 동일한) 지가 발견되면, 중첩-및-가산 동작은 가장 높은 유사도의 위치{예를 들어, 변수(p)에 의해 기재됨}를 이용하여 적용된다(단계 1068). 따라서, 중첩-및-가산 동작은 예를 들어, 샘플들의 제 1 블록과 샘플들의 제 2 블록의 시간 시프트된 버전 사이에서 수행되고, 이것은 "최상의 매치"(즉, 유사도 정보의 가장 높은 값)를 초래한다. 구체적으로, 예를 들어, 그래픽 표현(1040 및 1050)에 대해 이루어진 설명들이 참조된다. 중첩-및-가산의 적용은 또한 도 11에서의 도면 부호(1122)에 도시된다. 더욱이, 프레임 카운터의 업데이트는 단계(1072)에서 수행된다. 예를 들어, 카운터 변수("nNotScaled") 및 카운터 변수("nScaled")는 예를 들어 도면 부호들(1124 및 1126)에서 도 11을 참조하여 기재된 바와 같이 업데이트된다. 이와 대조적으로, 체크(1064)에서, 매칭 품질이 불충분한{예를 들어, 변수 품질 임계값(qmin)보다 작은(또는 동일한) 지가 발견되면, 중첩-및-가산 동작이 회피되고(예를 들어, 연기되고), 이것은 도면 부호(1076)에 나타난다. 이 경우에, 프레임 카운터들은 또한 단계(1080)에서 도시된 바와 같이 업데이트된다. 프레임 카운터들의 업데이트는 또한 도 11에서의 도면 부호들(1128 및 1130)에 도시된 바와 같이, 수행된다. 더욱이, 도 10a 및 도 10b를 참조하여 기재된 시간 스케일러는 또한 가변 품질 임계값(qMin)을 계산할 수 있고, 이것은 도면 부호(1084)에 도시된다. 변수 품질 임계값(qMin)의 계산은 예를 들어 e h11에서의 도면 부호(1118)에 도시된 바와 같이 수행될 수 있다.
결론적으로, 흐름도의 형태로 도 10a 및 도 10b를 참조하여 기재된 기능을 갖는 시간 스케일러(1000)는 품질 제어 메커니즘(단계 1060 내지 1084)을 이용하여 샘플-기반의 시간 스케일링을 수행할 수 있다.
5.10. 도 14에 따른 방법
도 14는 입력 오디오 컨텐트에 기초하여 디코딩된 오디오 컨텐트의 제공을 제어하기 위한 방법의 흐름도를 도시한다. 도 14에 따른 방법(1400)은 신호-적응적 방식으로 프레임-기반의 스케일링 또는 샘플-기반의 시간 스케일링을 선택(1410)하는 것을 포함한다.
더욱이, 방법(1400)이 예를 들어 지터 버퍼 제어에 대해 본 명세서에 기재된 임의의 특징들 및 기능들에 의해 보완될 수 있다는 것이 주지되어야 한다.
5.11. 도 15에 따른 방법
도 15는 입력 오디오 신호의 시간 스케일링된 버전을 제공하기 위한 방법(1500)의 개략적인 블록도를 도시한다. 방법은 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 입력 오디오 신호의 시간-스케일링된 버전의 품질을 계산 또는 추정(1510)하는 것을 포함한다. 더욱이, 방법(1500)은 시간 스케일링에 의해 어어질 수 있는 입력 오디오 신호의 시간 스케일링된 버전의 품질의 계산 또는 추정에 따라 입력 오디오 신호의 시간 스케일링을 수행(1520)하는 것을 포함한다.
6. 결론들
결론적으로, 본 발명에 따른 실시예들은 고품질의 음성 및 오디오 통신을 위한 지터 버퍼 관리 방법 및 장치를 생성한다. 방법 및 장치는 MPEG ELD, AMR-WB, 또는 미래의 코덱들과 같은 통신 코덱들과 함께 사용될 수 있다. 즉, 본 발명에 따른 실시예들은 패킷-기반의 통신에서 도달간(inter-arrival) 지터의 보상을 위한 방법 및 장치를 생성한다.
본 발명의 실시예들은 예를 들어, "3GPP EVS"라 불리는 기술에 적용될 수 있다.
다음에서, 본 발명에 따른 실시예들의 몇몇 양상들이 간략하게 기재될 것이다.
본 명세서에 기재된 지터 버퍼 관리 해법은 시스템을 생성하고, 여기서 다수의 기재된 모듈들은 이용가능하고, 전술한 방식으로 조합된다. 더욱이, 본 발명의 양상들이 또한 모듈들 자체의 특징들에 관련된다는 것이 주지되어야 한다.
본 발명의 중요한 양상은 적응성 지터 버퍼 관리를 위한 시간 스케일링 방법의 신호 적응성 선택이다. 기재된 해법은 제어 로직에서 프레임-기반의 시간 스케일링과 샘플-기반의 시간 스케일링을 조합하여, 양쪽 방법들의 장점들이 조합된다. 이용가능한 시간 스케일링 방법들은
- DTX에서의 안락 잡음 삽입/삭제
- 낮은 신호 에너지(예를 들어, 낮은 신호 에너지를 갖는 프레임들에 대해)에서 상관을 갖지 않은 중첩-및-가산(OLA);
- 활성 신호들에 대한 WSOLA;
- 빈 지터 버퍼의 경우에 신장하기 위한 은닉된 프레임의 삽입.
본 명세서에 기재된 해법은 프레임-기반의 방법들(안락 잡음 삽입 및 삭제, 및 신장을 위한 은닉된 프레임들의 삽입)을 샘플-기반의 방법들{활성 신호들에 대한 WSOLA, 및 저-에너지 신호들에 대한 비동기화된 중첩-가산(OLA)}과 조합하기 위한 메커니즘을 기재한다. 도 8에서, 본 발명의 실시예에 따라 시간-스케일 변형을 위한 최적의 기술을 선택하는 제어 로직이 예시된다.
본 명세서에 기재된 추가 양상에 따라, 적응성 지터 버퍼 관리에 대한 다수의 목표들이 사용된다. 기재된 해법에서, 목표 지연 추정은 단일 목표 재생 지연을 계산하기 위한 상이한 최적 기준을 이용한다. 이들 기준은 먼저 상이한 목표들을 초래하고, 이것은 고품질 또는 낮은 지연을 위해 최적화된다.
목표 재생 지연을 계산하기 위한 다중 목표들은 다음과 같다:
- 품질: 늦은-손실을 회피(지터를 평가);
- 지연: 지연을 제한(지터를 평가).
기재된 해법의 (선택적인) 양상은, 지연이 제한되지만, 늦은-손실들이 회피되고, 더욱이 지터 버퍼에서의 작은 확보(reserve)가 디코더를 위해 고품질의 에러 은닉으 ㄹ가능하게 하기 위해 보간의 확률을 증가시키도록 유지되도록 목표 지연 추정을 최적화하는 것이다.
다른 (선택적인) 양상은 늦은 프레임들을 이용한 TCX 은닉 회복에 관한 것이다. 늦게 도달하는 프레임들은 현재까지 대부분의 지터 버퍼 관리 해법들에 의해 폐기된다. 메커니즘들은 ACELP-기반의 디코더들[Lef03]에서 늦은 프레임들을 이용하도록 기재되었다. 양상에 따라, 그러한 메커니즘은 또한 ACELP 프레임들 이외의 프레임들, 예를 들어, TCX와 같은 주파수 도메인 코딩된 프레임들에 사용되어, 일반적으로 디코더 상태의 회복에 도움을 준다. 그러므로, 늦게 수신되고 이미 은닉된 프레임들은 여전히 디코더 상태의 회복을 개선하기 위해 디코더에 공급된다.
본 발명에 따른 다른 중요한 양상은 전술한 품질-적응성 시간 스케일링이다.
추가로 결론적으로, 본 발명에 따른 실시예들은 패킷-기반의 통신들에서 개선된 사용자 경험을 위해 사용될 수 있는 완전한 지터 버퍼 관리 해법을 생성한다. 제공된 해법들이 본 발명자들에게 알려진 임의의 다른 알려진 지터 버퍼 관리 해법보다 더 뛰어나게 수행한다는 것이 관찰되었다.
7. 대안들의 구현
몇몇 양상들이 장치의 정황에서 기재되었지만, 이들 양상들이 또한 대응하는 방법의 설명을 나타내고, 여기서 블록 또는 디바이스가 방법 단계 또는 방법 단계의 특징에 대응한다는 것이 명확하다. 유사하게, 방법 단계의 정황에 기재된 양상들은 또한 대응하는 블록 또는 항목 또는 대응하는 장치의 특징의 설명을 나타낸다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그래밍가능 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 실행될 수 있다. 몇몇 실시예들에서, 하나 이상의 가장 중요한 방법 단계들의 몇몇은 그러한 장치에 의해 실행될 수 있다.
특정 구현 요건들에 따라, 본 발명의 실시예들은 하드웨어 또는 소프트웨어로 구현될 수 있다. 구현은 예를 들어, 플로피 디스크, DVD, 블루-레이, CD, ROM, PROM, EPROM, EEPROM, 또는 플래쉬 메모리와 같은 디지털 저장 매체를 이용하여 수행될 수 있고, 이것은 전자적으로 판독가능한 제어 신호들을 저장하고, 이것은 각 방법이 수행되도록 프로그래밍가능 컴퓨터 시스템과 협력(또는 협력할 수 있다)한다. 그러므로, 디지털 저장 매체는 컴퓨터 판독가능할 수 있다.
삭제
삭제
일반적으로, 본 발명의 실시예들은 프로그램 코드를 갖는 컴퓨터 프로그램 제품으로서 구현될 수 있고, 프로그램 코드는, 컴퓨터 프로그램이 컴퓨터 상에서 실행될 때 방법들 중 하나를 수행하기 위해 동작가능하다.
삭제
즉, 그러므로, 본 발명의 방법의 실시예는, 컴퓨터 프로그램이 컴퓨터 상에서 실행될 때, 본 명세서에 기재된 방법들 중 하나를 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램이다.
그러므로, 본 발명의 방법들의 추가 실시예는 그 위에 디지털 저장 매체(또는 컴퓨터-판독가능 매체)이고, 이러한 디지털 저장 매체 상에는 본 명세서에 기재된 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램이 리코딩된다. 디지털 저장 매체 또는 리코딩된 매체는 일반적으로 실체적(tangible)이고 및/또는 비-임시적이다.
삭제
추가 실시예는 본 명세서에 기재된 방법들 중 하나를 수행하도록 구성되거나 적응된 처리 수단, 예를 들어, 컴퓨터, 또는 프로그램가능 논리 디바이스를 포함한다.
추가 실시예는 본 명세서에 기재된 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 그 위에 설치한 컴퓨터를 포함한다.
본 발명에 따른 추가 실시예는 본 명세서에 기재된 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 (예를 들어, 전자적으로 또는 광학적으로) 수신기에 전송하도록 구성된 장치 또는 시스템을 포함한다. 수신기는 예를 들어, 컴퓨터, 모바일 디바이스, 메모리 디바이스 등일 수 있다. 장치 또는 시스템은 예를 들어, 컴퓨터 프로그램을 수신기에 전송하기 위한 파일 서버를 포함할 수 있다.
몇몇 실시예들에서, 프로그래밍가능 논리 디바이스(예를 들어, 전계 프로그래밍가능 게이트 어레이)는 본 명세서에 기재된 방법들의 기능들의 몇몇 또는 전부를 수행하도록 사용될 수 있다. 몇몇 실시예들에서, 전계 프로그래밍가능 게이트 어레이는 본 명세서에 기재된 방법들 중 하나를 수행하기 위해 마이크로프로세서와 협력할 수 있다. 일반적으로, 방법들은 바람직하게 임의의 하드우에어 장치에 의해 수행된다.
본 명세서에 기재된 장치는 하드웨어 장치를 이용하여, 또는 컴퓨터를 이용하여, 또는 하드웨어 장치와 컴퓨터의 조합을 이용하여 구현될 수 있다.
본 명세서에 기재된 방법들은 하드웨어 장치를 이용하여, 또는 컴퓨터를 이용하여, 또는 하드웨어 장치와 컴퓨터의 조합을 이용하여 수행될 수 있다.
전술한 실시예들은 본 발명의 원리들을 위해 단지 예시적이다. 본 명세서에 기재된 배치들 및 세부사항들의 변형들 및 변경들이 당업자에게 명백하다는 것이 이해된다. 그러므로, 본 명세서에의 실시예들의 설명 및 기재에 의해 제공된 특정 세부사항들에 의해서가 아니라, 첨부된 특허 청구항들의 범주에 의해서만 제한되도록 의도된다.
참고 문헌들
[Lia01] Y. J. Liang, N. Faerber, B. Girdo: "Adaptive playout scheduling using time-scale modification in packet voice communications", 2001
[Left03] P. Gournay, F. Rousseau, R. Lefebvre: "Improved packet loss recovery using late frames for prediction-based speech coders", 2003

Claims (35)

  1. 입력 오디오 신호(210;332;442;910)의 시간 스케일링된(time scaled) 버전(212;312;448;956)을 제공하기 위한 시간 스케일러(200;340;450;866;900;1000)로서,
    상기 시간 스케일러는 상기 입력 오디오 신호의 시간 스케일링(time scaling)에 의해 획득가능한 상기 입력 오디오 신호의 시간 스케일링된 버전의 품질을 계산 또는 추정(950;1060)하도록 구성되고,
    상기 시간 스케일러는 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 상기 계산 또는 추정에 따라 상기 입력 오디오 신호의 상기 시간 스케일링을 수행하도록 구성되고,
    상기 시간 스케일러는, 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 상기 계산 또는 추정이 품질 임계값보다 크거나 동일한 품질을 나타내는 경우, 샘플들의 제 1 블록에 대해 샘플들의 제 2 블록을 시간-시프트(time-shift)하고, 샘플들의 상기 제 1 블록과 샘플들의 상기 시간-시프트된 제 2 블록을 중첩-및-가산(954;1068)하여, 이를 통해 상기 입력 오디오 신호의 상기 시간-스케일링된 버전을 얻도록 구성되고; 그리고
    상기 시간 스케일러는, 샘플들의 상기 제 1 블록, 또는 샘플들의 상기 제 1 블록의 부분과, 샘플들의 상기 제 2 블록 또는 샘플들의 상기 제 2 블록의 부분 사이의 제 1 유사도 척도(first similarity measure)를 이용하여 평가된, 유사도의 레벨의 결정에 따라 샘플들의 상기 제 1 블록에 대한 샘플들의 상기 제 2 블록의 시간 시프트(p)를 결정하도록 구성되고,
    상기 결정된 시간 시프트(p)는 가장 높은 유사도의 위치를 기재하는 정보이고;
    상기 시간 스케일러는, 샘플들의 상기 제 1 블록 또는 샘플들의 상기 제 1 블록의 부분과, 상기 결정된 시간 시프트에 의해 시간-시프트된 샘플들의 상기 제 2 블록, 또는 상기 결정된 시간 시프트에 의해 시간-시프트된 샘플들의 상기 제 2 블록의 부분 사이의 제 2 유사도 척도(q)를 이용하여 평가된, 유사도의 레벨에 관한 정보에 기초하여 상기 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 품질을 계산 또는 추정(950;1060)하도록 구성되는, 시간 스케일러.
  2. 제 1항에 있어서, 상기 시간 스케일러는 상기 입력 오디오 신호의 샘플들의 제 1 블록과, 상기 입력 오디오 신호의 샘플들의 제 2 블록을 이용하여 중첩-및-가산(overlap-and-add) 동작(954;1068)을 수행하도록 구성되고,
    상기 시간 스케일러는 샘플들의 상기 제 1 블록에 대해 샘플들의 상기 제 2 블록을 시간-시프트(time-shift)하고, 샘플들의 상기 제 1 블록과 샘플들의 상기 시간-시프트된 제 2 블록을 중첩-및-가산하고, 이를 통해 상기 입력 오디오 신호의 상기 시간-스케일링된 버전을 얻도록 구성되는, 시간 스케일러.
  3. 제 2항에 있어서, 상기 시간 스케일러는 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질을 계산하거나 추정하기 위해 샘플들의 상기 제 1 블록과 샘플들의 상기 시간-시프트된 제 2 블록 사이의 상기 중첩-및-가산 동작의 품질을 계산 또는 추정(950;1060)하도록 구성되는, 시간 스케일러.
  4. 제 2항에 있어서, 상기 시간 스케일러는 샘플들의 상기 제 1 블록, 또는 샘플들의 상기 제 1 블록의 부분과, 샘플들의 상기 제 2 블록, 또는 샘플들의 상기 제 2 블록의 부분 사이의 유사도의 레벨의 결정에 따라 샘플들의 상기 제 1 블록에 대해 샘플들의 상기 제 2 블록의 상기 시간 시프트(p)를 결정(942;1030)하도록 구성되는, 시간 스케일러.
  5. 제 4항에 있어서, 상기 시간 스케일러는 샘플들의 상기 제 1 블록과 샘플들의 상기 제 2 블록 사이의 복수의 상이한 시간 시프트들에 대해, 샘플들의 상기 제 1 블록, 또는 샘플들의 상기 제 1 블록의 부분과, 샘플들의 상기 제 2 블록, 또는 샘플들의 상기 제 2 블록의 부분 사이의 유사도의 레벨에 관한 정보를 결정하고, 상기 복수의 상이한 시간 시프트들에 대한 상기 유사도의 레벨에 관한 상기 정보에 기초하여 상기 중첩-및-가산 동작에 사용될 시간 시프트(p)를 결정하도록 구성되는, 시간 스케일러.
  6. 제 4항에 있어서, 상기 시간 스케일러는 샘플들의 상기 제 1 블록에 대해 샘플들의 상기 제 2 블록의 상기 시간 시프트(p)를 결정하도록 구성되고, 상기 시간 시프트는 목표 시간 시프트 정보에 따라 상기 중첩-및-가산 동작에 사용되는, 시간 스케일러.
  7. 제 4항에 있어서, 상기 시간 스케일러는 샘플들의 상기 제 1 블록, 또는 샘플들의 상기 제 1 블록의 부분과, 상기 결정된 시간 시프트(p)에 의해 시간 시프트된 샘플들의 상기 제 2 블록, 또는 상기 결정된 시간 시프트(p)에 의해 시간-시프트된 샘플들의 상기 제 2 블록의 부분 사이의 상기 유사도의 레벨에 관한 정보에 기초하여 상기 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 품질을 계산 또는 추정(950;1060)하도록 구성되는, 시간 스케일러.
  8. 제 7항에 있어서, 상기 시간 스케일러는, 샘플들의 상기 제 1 블록, 또는 샘플들의 상기 제 1 블록의 부분과, 상기 결정된 시간 시프트(p)에 의해 시간-시프트된 샘플들의 상기 제 2 블록, 또는 상기 결정된 시간 시프트(p)에 의해 시간-시프트된 샘플들의 상기 제 2 블록의 부분 사이의 상기 유사도의 레벨에 관한 상기 정보에 기초하여, 시간 스케일링이 실제로 수행되는 지의 여부를 결정(1064)하도록 구성되는, 시간 스케일러.
  9. 제 1항에 있어서, 상기 제 2 유사도 척도(q)는 상기 제 1 유사도 척도보다 계산적으로 더 복잡한, 시간 스케일러.
  10. 제 1항에 있어서, 상기 제 1 유사도 척도는 교차 상관 또는 정규화된 교차 상관, 또는 평균 크기 차이 함수(average magnitude difference function) 또는 제곱근 에러들(squared errors)의 합이고,
    상기 제 2 유사도 척도(q)는 복수의 상이한 시간 시프트들에 대한 교차 상관들 또는 정규화된 교차 상관들의 조합인, 시간 스케일러.
  11. 제 1항에 있어서, 상기 제 2 유사도 척도(q)는 적어도 4개의 상이한 시간 시프트들에 대한 교차 상관들의 조합인, 시간 스케일러.
  12. 제 11항에 있어서, 상기 제 2 유사도 척도(q)는, 샘플들의 상기 제 1 블록 또는 샘플들의 상기 제 2 블록의 오디오 컨텐트의 기본 주파수의 주기 지속기간(period duration)의 정수배만큼 이격되는(spaced) 시간 시프트들에 대해 얻어지는 제 1 교차 상관 값 및 제 2 교차 상관 값과, 상기 오디오 컨텐트의 상기 기본 주파수의 상기 주기 지속기간의 정수배만큼 이격되는 시간 시프트들에 대해 얻어지는 제 3 교차 상관 값 및 제 4 교차 상관 값의 조합이고,
    상기 제 1 교차 상관 값이 얻어지는 시간 시프트는 상기 제 3 교차 상관 값이 얻어지는 시간 시프트로부터 상기 오디오 컨텐트의 상기 기본 주파수의 상기 주기 지속기간의 절반의 홀수배만큼 이격되는, 시간 스케일러.
  13. 제 1항에 있어서, 상기 제 2 유사도 척도(q)는 q=c(p)*c(2*p)+c(3/2*p)*c(1/2*p)에 따라 또는 q=c(p)*c(-p)+c(-1/2*p)*c(1/2*p)에 따라 얻어지고, c(p)은 샘플들의 제 1 블록 또는 샘플들의 제 2 블록의 오디오 컨텐트의 기본 주파수의 주기 지속기간만큼 시간적으로 시프트되는 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 교차 상관 값이고;
    c(2*p)는 2*p만큼 시간적으로 시프트되는 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 교차 상관 값이고;
    c(3/2*p)는 3/2*p만큼 시간적으로 시프트되는 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 교차 상관 값이고;
    c(1/2*p)는 1/2*p만큼 시간적으로 시프트되는 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 교차 상관 값이고;
    c(-p)는 -p만큼 시간적으로 시프트되는 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 교차 상관 값이고;
    c(-1/2*p)는 -1/2*p만큼 시간적으로 시프트되는 샘플들의 제 1 블록과 샘플들의 제 2 블록 사이의 교차 상관 값인, 시간 스케일러.
  14. 제 1항에 있어서,
    상기 시간 스케일러는, 시간 스케일링이 수행되어야 하는 지의 여부를 결정하기 위해, 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 계산 또는 추정에 기초한 품질 값을 가변 임계값(qmin)과 비교(1064)하도록 구성되는, 시간 스케일러.
  15. 제 14항에 있어서, 상기 시간 스케일러는, 시간 스케일링의 품질이 샘플들의 하나 이상의 이전 블록들에 대해 불충분하였다는 발견에 응답하여, 상기 가변 임계값(qmin)을 감소시키고, 이를 통해 품질 요건을 감소시키도록 구성되는, 시간 스케일러.
  16. 제 15항에 있어서, 상기 시간 스케일러는, 시간 스케일링이 샘플들의 하나 이상의 이전 블록들에 적용되었다는 점에 응답하여 상기 가변 임계값(qmin)을 증가시키고, 이를 통해 품질 요건을 증가시키도록 구성되는, 시간 스케일러.
  17. 제 14항에 있어서,
    상기 시간 스케일러는, 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 각 품질 요건에 도달되었기 때문에 시간 스케일링된 프레임들의 수 또는 샘플들의 블록들의 수를 계수하기 위한 범위-제한된 제 1 카운터(nScaled)를 포함하고,
    상기 시간 스케일러는 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 각 품질 요건에 도달되지 않았기 때문에 시간 스케일링되지 않았던 프레임들의 수 또는 샘플들의 블록들의 수를 계수하기 위한 범위-제한된 제 2 카운터(nNotScaled)를 포함하고,
    상기 시간 스케일러는 상기 제 1 카운터의 값(nScaled)에 따라, 그리고 상기 제 2 카운터의 값(nNotScaled)에 따라 상기 가변 임계값(qmin)을 계산하도록 구성되는, 시간 스케일러.
  18. 제 17항에 있어서, 상기 시간 스케일러는 상기 가변 임계값(qmin)을 얻기 위해, 상기 제 1 카운터의 상기 값(nScaled)에 비례하는 값을 초기 임계값에 가산하고, 그로부터 상기 제 2 카운터의 상기 값(nNotScaled)에 비례하는 값을 감산하도록 구성되는, 시간 스케일러.
  19. 제 1항에 있어서, 상기 시간 스케일러는 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 상기 계산 또는 추정(950;1060)에 따라 상기 입력 오디오 신호의 상기 시간 스케일링을 수행하도록 구성되고, 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 상기 계산 또는 추정은 시간 스케일링에 의해 야기된 상기 입력 오디오 신호의 상기 시간 스케일링된 버전에서의 결함들의 계산 또는 추정을 포함하는, 시간 스케일러.
  20. 제 19항에 있어서, 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 상기 계산 또는 추정(950;1060)은 상기 입력 오디오 신호의 샘플들의 후속 블록들의 중첩-및-가산 동작(954;1068)에 의해 야기된 상기 입력 오디오 신호의 상기 시간 스케일링된 버전에서의 결함들의 계산 또는 추정을 포함하는, 시간 스케일러.
  21. 제 1항에 있어서, 상기 시간 스케일러는 상기 입력 오디오 신호의 샘플들의 후속 블록들의 유사도의 레벨에 따라 상기 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 시간 스케일링된 버전의 상기 품질을 계산 또는 추정(950;1060)하도록 구성되는, 시간 스케일러.
  22. 제 1항에 있어서, 상기 시간 스케일러는, 상기 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 시간 스케일링된 버전에서의 청취성 결함들(audible artifacts)이 존재하는 지의 여부를 계산하거나 추정하도록 구성되는, 시간 스케일러.
  23. 제 1항에 있어서, 상기 시간 스케일러는, 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 스케일링된 버전의 상기 품질의 상기 계산 또는 추정이 불충분한 품질을 나타내는 경우 시간 스케일링을 후속 프레임 또는 샘플들의 후속 블록으로 연기(postpone)(1076)하도록 구성되는, 시간 스케일러.
  24. 제 1항에 있어서, 상기 시간 스케일러는, 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 상기 계산 또는 추정이 불충분한 품질을 나타내는 경우 시간 스케일링을 상기 시간 스케일링이 덜 청취성인 시간으로 연기하도록 구성되는, 시간 스케일러.
  25. 삭제
  26. 제 1항에 있어서, 상기 제 1 유사도 척도는 교차 상관 또는 정규화된 교차 상관, 또는 평균 크기 차이 함수 또는 제곱근 에러들의 합인, 시간 스케일러.
  27. 입력 오디오 신호(210;332;442;910)의 시간 스케일링된 버전(212;312;448;956)을 제공하기 위한 시간 스케일러(200;340;450;866;900;1000)로서,
    상기 시간 스케일러는 상기 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 시간 스케일링된 버전의 품질을 계산 또는 추정(950;1060)하도록 구성되고,
    상기 시간 스케일러는 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 상기 계산 또는 추정에 따라 상기 입력 오디오 신호의 상기 시간 스케일링을 수행(954;1068)하도록 구성되고,
    상기 시간 스케일러는, 시간 스케일링이 수행되어야 하는 지의 여부를 결정하기 위해, 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 계산 또는 추정에 기초한 품질 값(q)을 가변 임계값(qmin)과 비교(1064)하도록 구성되고;
    상기 시간 스케일러는, 시간 스케일링이 샘플들의 하나 이상의 이전 블록들에 적용되었다는 점에 응답하여 상기 가변 임계값(qmin)을 증가시키도록 구성되어, 정상 품질 레벨보다 더 높은 비교적 높은 품질 레벨에 도달되는 경우 샘플들의 후속 블록들이 단지 시간 스케일링되는 것을 보장하는, 시간 스케일러.
  28. 입력 오디오 컨텐트(310)에 기초하여 디코딩된 오디오 컨텐트(312)를 제공하기 위한 오디오 디코더(300)로서,
    오디오 샘플들의 블록들을 나타내는 복수의 오디오 프레임들을 버퍼링(buffer)하도록 구성되는 지터 버퍼(320);
    상기 지터 버퍼로부터 수신된 오디오 프레임들(322)에 기초하여 오디오 샘플들(332)의 블록들을 제공하도록 구성되는 디코더 코어(330);
    제 1항 내지 제 24항, 제 26항 및 제 27항 중 어느 한 항에 따른 샘플-기반의 시간 스케일러(200;340;450;866;900;1000)로서, 상기 샘플-기반의 시간 스케일러는 상기 디코더 코어에 의해 제공된 오디오 샘플들(332)의 블록들에 기초하여 오디오 샘플들(342)의 시간-스케일링된 블록들을 제공하도록 구성되는, 샘플-기반의 시간 스케일러(200;340;450;866;900;1000)를
    포함하는, 오디오 디코더.
  29. 제 28항에 있어서, 상기 오디오 디코더는 지터 버퍼 제어부(100;350;490;800)를 더 포함하고,
    상기 지터 버퍼 제어부는 제어 정보(114;444)를 상기 샘플-기반의 시간 스케일러(200;340;866;900;1000)에 제공하도록 구성되고, 상기 제어 정보는, 샘플-기반의 시간 스케일링이 수행되어야 하는 지의 여부를 나태내고, 및/또는 상기 제어 정보는 시간 스케일링의 원하는 양을 나타내는, 오디오 디코더.
  30. 입력 오디오 신호의 시간 스케일링된 버전을 제공하기 위한 방법(1500)으로서,
    상기 방법은 상기 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 시간 스케일링된 버전의 품질을 계산 또는 추정하는 단계(1510)를 포함하고,
    상기 방법은 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 상기 계산 또는 추정에 따라 상기 입력 오디오 신호의 상기 시간 스케일링을 수행하는 단계(1520)를 포함하고,
    상기 방법은 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 상기 계산 또는 추정이 품질 임계값보다 크거나 동일한 품질을 나타내는 경우, 샘플들의 제 1 블록에 대해 샘플들의 제 2 블록을 시간-시프트하고, 샘플들의 상기 제 1 블록과 샘플들의 상기 시간-시프트된 제 2 블록을 중첩-및-가산(954;1068)하여, 이를 통해 상기 입력 오디오 신호의 상기 시간-스케일링된 버전을 얻는 단계를 포함하고;
    상기 방법은, 샘플들의 상기 제 1 블록, 또는 샘플들의 상기 제 1 블록의 부분과, 샘플들의 상기 제 2 블록, 또는 샘플들의 상기 제 2 블록의 부분 사이의 제 1 유사도 척도를 이용하여 평가된, 유사도의 레벨의 결정에 따라 샘플들의 상기 제 1 블록에 대한 샘플들의 상기 제 2 블록의 시간 시프트(p)를 결정하는 단계를 포함하고,
    상기 결정된 시간 시프트는 가장 높은 유사도의 위치를 기재하는 정보이고;
    상기 방법은, 샘플들의 상기 제 1 블록, 또는 샘플들의 상기 제 1 블록의 부분과, 상기 결정된 시간 시프트에 의해 시간-시프트된 샘플들의 상기 제 2 블록, 또는 상기 결정된 시간 시프트에 의해 시간-시프트된 샘플들의 상기 제 2 블록의 부분 사이의 제 2 유사도 척도(q)를 이용하여 평가된, 유사도의 레벨에 관한 정보에 기초하여 상기 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 품질을 계산 또는 추정하는 단계(950;1060)를 포함하는, 입력 오디오 신호의 시간 스케일링된 버전을 제공하기 위한 방법.
  31. 입력 오디오 신호의 시간 스케일링된 버전을 제공하기 위한 방법(1500)으로서,
    상기 방법은 상기 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 시간 스케일링된 버전의 품질을 계산 또는 추정하는 단계(1510)를 포함하고,
    상기 방법은 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 상기 계산 또는 추정에 따라 상기 입력 오디오 신호의 상기 시간 스케일링을 수행하는 단계(1520)를 포함하고,
    상기 방법은, 시간 스케일링이 수행되어야 하는 지의 여부를 결정하기 위해, 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 계산 또는 추정에 기초한 품질 값을 가변 임계값(qmin)과 비교(1064)하도록 구성되고;
    상기 방법은, 시간 스케일링이 샘플들의 하나 이상의 이전 블록들에 적용되었다는 점에 응답하여 상기 가변 임계값(qmin)을 증가시키는 단계를 포함하여, 정상 품질 레벨보다 더 높은 비교적 높은 품질 레벨에 도달되는 경우 샘플들의 후속 블록들이 단지 시간 스케일링되는 것을 보장하는, 입력 오디오 신호의 시간 스케일링된 버전을 제공하기 위한 방법.
  32. 컴퓨터 상에서 실행될 때 제 30항 또는 제 31항에 따른 방법을 수행하기 위한 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능 기록매체.
  33. 입력 오디오 신호(210;332;442;910)의 시간 스케일링된 버전(212;312;448;956)을 제공하기 위한 시간 스케일러(200;340;450;866;900;1000)로서,
    상기 시간 스케일러는 상기 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 시간 스케일링된 버전의 품질을 계산 또는 추정(950;1060)하도록 구성되고,
    상기 시간 스케일러는 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 상기 계산 또는 추정에 따라 상기 입력 오디오 신호의 상기 시간 스케일링을 수행(954;1068)하도록 구성되고,
    상기 시간 스케일러는, 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 상기 계산 또는 추정이 품질 임계값보다 크거나 동일한 품질을 나타내는 경우, 샘플들의 제 1 블록에 대해 샘플들의 제 2 블록을 시간-시프트하고, 샘플들의 상기 제 1 블록과 샘플들의 상기 시간-시프트된 제 2 블록을 중첩-및-가산(954;1068)하여 상기 입력 오디오 신호의 상기 시간-스케일링된 버전을 얻도록 구성되고;
    상기 시간 스케일러는, 샘플들의 상기 제 1 블록, 또는 샘플들의 상기 제 1 블록의 부분과, 샘플들의 상기 제 2 블록, 또는 샘플들의 상기 제 2 블록의 부분 사이의 제 1 유사도 척도를 이용하여 평가된, 유사도의 레벨의 결정에 따라 샘플들의 상기 제 1 블록에 대한 샘플들의 상기 제 2 블록의 시간 시프트(p)를 결정하도록 구성되고,
    상기 시간 스케일러는, 샘플들의 상기 제 1 블록, 또는 샘플들의 상기 제 1 블록의 부분과, 상기 결정된 시간 시프트에 의해 시간-시프트된 샘플들의 상기 제 2 블록, 또는 상기 결정된 시간 시프트에 의해 시간-시프트된 샘플들의 상기 제 2 블록의 부분 사이의 제 2 유사도 척도(q)를 이용하여 평가된, 유사도의 레벨에 관한 정보에 기초하여 상기 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 품질을 계산 또는 추정(950;1060)하도록 구성되고,
    상기 제 1 유사도 척도는 교차 상관 또는 정규화된 교차 상관, 또는 평균 크기 차이 함수 또는 제곱근 에러들의 합이고,
    상기 제 2 유사도 척도(q)는 복수의 상이한 시간 시프트들에 대한 교차 상관들 또는 정규화된 교차 상관들의 조합; 또는
    상기 제 2 유사도 척도(q)는 적어도 4개의 상이한 시간 시프트들에 대한 교차 상관들의 조합인, 시간 스케일러.
  34. 입력 오디오 신호의 시간 스케일링된 버전을 제공하기 위한 방법으로서,
    상기 방법은 상기 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 시간 스케일링된 버전의 품질을 계산 또는 추정하는 단계(1510)를 포함하고,
    상기 방법은 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 상기 계산 또는 추정에 따라 상기 입력 오디오 신호의 상기 시간 스케일링을 수행하는 단계(1520)를 포함하고,
    상기 방법은, 샘플들의 제 1 블록에 대해 샘플들의 제 2 블록을 시간-시프트하고, 상기 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 상기 품질의 상기 계산 또는 추정이 품질 임계값보다 크거나 동일한 품질을 나타내는 경우, 샘플들의 제 1 블록에 대해 샘플들의 제 2 블록을 시간-시프트하고, 샘플들의 상기 제 1 블록과 샘플들의 상기 시간-시프트된 제 2 블록을 중첩-및-가산하여, 이를 통해 상기 입력 오디오 신호의 상기 시간-스케일링된 버전을 얻는 단계(954;1068)를 포함하고,
    상기 방법은, 샘플들의 상기 제 1 블록, 또는 샘플들의 상기 제 1 블록의 부분과, 샘플들의 상기 제 2 블록, 또는 샘플들의 상기 제 2 블록 사이의 제 1 유사도 척도를 이용하여 평가된, 유사도의 레벨의 결정에 따라 샘플들의 상기 제 1 블록에 대한 샘플들의 상기 제 2 블록의 시간 시프트(p)를 결정하는 단계를 포함하고,
    상기 방법은, 샘플들의 상기 제 1 블록, 또는 샘플들의 상기 제 1 블록의 부분과, 상기 결정된 시간 시프트에 의해 시간-시프트된 샘플들의 상기 제 2 블록, 또는 상기 결정된 시간 시프트에 의해 시간-시프트된 샘플들의 상기 제 2 블록의 부분 사이의 제 2 유사도 척도(q)를 이용하여 평가된, 유사도의 레벨에 관한 정보에 기초하여 상기 입력 오디오 신호의 시간 스케일링에 의해 획득가능한 상기 입력 오디오 신호의 상기 시간 스케일링된 버전의 품질을 계산 또는 추정하는 단계(950;1060)를 포함하고,
    상기 제 1 유사도 척도는 교차 상관 또는 정규화된 교차 상관, 또는 평균 크기 차이 함수 또는 제곱근 에러들의 합이고,
    상기 제 2 유사도 척도(q)는 복수의 상이한 시간 시프트들에 대한 교차 상관들 또는 정규화된 교차 상관들의 조합; 또는
    상기 제 2 유사도 척도(q)는 적어도 4개의 상이한 시간 시프트들에 대한 교차 상관들의 조합인,
    입력 오디오 신호의 시간 스케일링된 버전을 제공하기 위한 방법.
  35. 컴퓨터 상에서 실행될 때 제 34항에 따른 방법을 수행하기 위한 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능 기록매체.
KR1020167001813A 2013-06-21 2014-06-18 품질 제어를 이용하는 오디오 디코더, 방법 및 컴퓨터 프로그램 KR101952192B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP13173159.8 2013-06-21
EP13173159 2013-06-21
EP14167055 2014-05-05
EP14167055.4 2014-05-05
PCT/EP2014/062833 WO2014202672A2 (en) 2013-06-21 2014-06-18 Time scaler, audio decoder, method and a computer program using a quality control

Publications (2)

Publication Number Publication Date
KR20160023830A KR20160023830A (ko) 2016-03-03
KR101952192B1 true KR101952192B1 (ko) 2019-02-26

Family

ID=51022305

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167001813A KR101952192B1 (ko) 2013-06-21 2014-06-18 품질 제어를 이용하는 오디오 디코더, 방법 및 컴퓨터 프로그램

Country Status (18)

Country Link
US (2) US10204640B2 (ko)
EP (3) EP3321935B1 (ko)
JP (1) JP6317436B2 (ko)
KR (1) KR101952192B1 (ko)
CN (2) CN105474313B (ko)
AU (2) AU2014283256B2 (ko)
BR (1) BR112015032174B1 (ko)
CA (1) CA2916126C (ko)
ES (2) ES2667823T3 (ko)
HK (3) HK1223727A1 (ko)
MX (1) MX355850B (ko)
MY (1) MY171256A (ko)
PL (2) PL3321935T3 (ko)
PT (2) PT3321935T (ko)
RU (1) RU2662683C2 (ko)
SG (2) SG11201510501YA (ko)
TW (1) TWI581257B (ko)
WO (1) WO2014202672A2 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2964362C (en) * 2013-06-21 2020-03-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Jitter buffer control, audio decoder, method and computer program
MX355850B (es) 2013-06-21 2018-05-02 Fraunhofer Ges Forschung Escalador de tiempo, decodificador de audio, metodo y programa de computadora usando un control de calidad.
US9948578B2 (en) * 2015-04-14 2018-04-17 Qualcomm Incorporated De-jitter buffer update
GB2535819B (en) * 2015-07-31 2017-05-17 Imagination Tech Ltd Monitoring network conditions
KR102422794B1 (ko) * 2015-09-04 2022-07-20 삼성전자주식회사 재생지연 조절 방법 및 장치와 시간축 변형방법 및 장치
US10878835B1 (en) * 2018-11-16 2020-12-29 Amazon Technologies, Inc System for shortening audio playback times
US20200184366A1 (en) * 2018-12-06 2020-06-11 Fujitsu Limited Scheduling task graph operations
CN110113270B (zh) * 2019-04-11 2021-04-23 北京达佳互联信息技术有限公司 网络通信的抖动控制方法、装置、终端及存储介质
CN112764709B (zh) * 2021-01-07 2021-09-21 北京创世云科技股份有限公司 一种声卡数据的处理方法、装置及电子设备
CN113242546B (zh) * 2021-06-25 2023-04-21 南京中感微电子有限公司 音频转发方法、设备和存储介质
CN117041123B (zh) * 2023-10-08 2024-02-09 广东保伦电子股份有限公司 一种双任务并发广播监听方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070186145A1 (en) * 2006-02-07 2007-08-09 Nokia Corporation Controlling a time-scaling of an audio signal
US20070260462A1 (en) * 1999-12-28 2007-11-08 Global Ip Solutions (Gips) Ab Method and arrangement in a communication system

Family Cites Families (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3832491A (en) * 1973-02-13 1974-08-27 Communications Satellite Corp Digital voice switch with an adaptive digitally-controlled threshold
US4052568A (en) * 1976-04-23 1977-10-04 Communications Satellite Corporation Digital voice switch
US5175769A (en) * 1991-07-23 1992-12-29 Rolm Systems Method for time-scale modification of signals
US5806023A (en) * 1996-02-23 1998-09-08 Motorola, Inc. Method and apparatus for time-scale modification of a signal
US6360271B1 (en) 1999-02-02 2002-03-19 3Com Corporation System for dynamic jitter buffer management based on synchronized clocks
US6549587B1 (en) 1999-09-20 2003-04-15 Broadcom Corporation Voice and data exchange over a packet based network with timing recovery
US6788651B1 (en) 1999-04-21 2004-09-07 Mindspeed Technologies, Inc. Methods and apparatus for data communications on packet networks
US6658027B1 (en) 1999-08-16 2003-12-02 Nortel Networks Limited Jitter buffer management
US6665317B1 (en) 1999-10-29 2003-12-16 Array Telecom Corporation Method, system, and computer program product for managing jitter
US6683889B1 (en) 1999-11-15 2004-01-27 Siemens Information & Communication Networks, Inc. Apparatus and method for adaptive jitter buffers
US6700895B1 (en) 2000-03-15 2004-03-02 3Com Corporation Method and system for computationally efficient calculation of frame loss rates over an array of virtual buffers
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
US6862298B1 (en) 2000-07-28 2005-03-01 Crystalvoice Communications, Inc. Adaptive jitter buffer for internet telephony
US6738916B1 (en) 2000-11-02 2004-05-18 Efficient Networks, Inc. Network clock emulation in a multiple channel environment
ES2319433T3 (es) 2001-04-24 2009-05-07 Nokia Corporation Procedimientos para cambiar el tamaño de una memoria de almacenamiento temporal de fluctuacion y para el alineamiento temporal, sistema de comunicaciones, fin de la recepcion y transcodificador.
US7006511B2 (en) 2001-07-17 2006-02-28 Avaya Technology Corp. Dynamic jitter buffering for voice-over-IP and other packet-based communication systems
US7697447B2 (en) 2001-08-10 2010-04-13 Motorola Inc. Control of jitter buffer size and depth
US6977948B1 (en) 2001-08-13 2005-12-20 Utstarcom, Inc. Jitter buffer state management system for data transmitted between synchronous and asynchronous data networks
US7170901B1 (en) 2001-10-25 2007-01-30 Lsi Logic Corporation Integer based adaptive algorithm for de-jitter buffer control
US7079486B2 (en) 2002-02-13 2006-07-18 Agere Systems Inc. Adaptive threshold based jitter buffer management for packetized data
US7496086B2 (en) 2002-04-30 2009-02-24 Alcatel-Lucent Usa Inc. Techniques for jitter buffer delay management
WO2004015688A1 (en) * 2002-08-08 2004-02-19 Cosmotan Inc. Audio signal time-scale modification method using variable length synthesis and reduced cross-correlation computations
US20040062260A1 (en) 2002-09-30 2004-04-01 Raetz Anthony E. Multi-level jitter control
US7426470B2 (en) * 2002-10-03 2008-09-16 Ntt Docomo, Inc. Energy-based nonuniform time-scale modification of audio signals
US7289451B2 (en) 2002-10-25 2007-10-30 Telefonaktiebolaget Lm Ericsson (Publ) Delay trading between communication links
US7394833B2 (en) 2003-02-11 2008-07-01 Nokia Corporation Method and apparatus for reducing synchronization delay in packet switched voice terminals using speech decoder modification
US20050047396A1 (en) 2003-08-29 2005-03-03 Helm David P. System and method for selecting the size of dynamic voice jitter buffer for use in a packet switched communications system
US7596488B2 (en) 2003-09-15 2009-09-29 Microsoft Corporation System and method for real-time jitter control and packet-loss concealment in an audio signal
US20050094628A1 (en) 2003-10-29 2005-05-05 Boonchai Ngamwongwattana Optimizing packetization for minimal end-to-end delay in VoIP networks
US20050137729A1 (en) * 2003-12-18 2005-06-23 Atsuhiro Sakurai Time-scale modification stereo audio signals
US6982377B2 (en) * 2003-12-18 2006-01-03 Texas Instruments Incorporated Time-scale modification of music signals based on polyphase filterbanks and constrained time-domain processing
US7359324B1 (en) 2004-03-09 2008-04-15 Nortel Networks Limited Adaptive jitter buffer control
EP1754327A2 (en) 2004-03-16 2007-02-21 Snowshore Networks, Inc. Jitter buffer management
US7424026B2 (en) * 2004-04-28 2008-09-09 Nokia Corporation Method and apparatus providing continuous adaptive control of voice packet buffer at receiver terminal
KR100964436B1 (ko) 2004-08-30 2010-06-16 퀄컴 인코포레이티드 V o I P 용 적응성 디-지터 버퍼
US7783482B2 (en) 2004-09-24 2010-08-24 Alcatel-Lucent Usa Inc. Method and apparatus for enhancing voice intelligibility in voice-over-IP network applications with late arriving packets
US20060187970A1 (en) 2005-02-22 2006-08-24 Minkyu Lee Method and apparatus for handling network jitter in a Voice-over IP communications network using a virtual jitter buffer and time scale modification
WO2006106466A1 (en) * 2005-04-07 2006-10-12 Koninklijke Philips Electronics N.V. Method and signal processor for modification of audio signals
US7599399B1 (en) 2005-04-27 2009-10-06 Sprint Communications Company L.P. Jitter buffer management
US7548853B2 (en) * 2005-06-17 2009-06-16 Shmunk Dmitry V Scalable compressed audio bit stream and codec using a hierarchical filterbank and multichannel joint coding
US7746847B2 (en) 2005-09-20 2010-06-29 Intel Corporation Jitter buffer management in a packet-based network
US20070083377A1 (en) * 2005-10-12 2007-04-12 Steven Trautmann Time scale modification of audio using bark bands
CN101305417B (zh) * 2005-11-07 2011-08-10 艾利森电话股份有限公司 移动电信网络中的方法和装置
CN101421781A (zh) * 2006-04-04 2009-04-29 杜比实验室特许公司 音频信号的感知响度和/或感知频谱平衡的计算和调整
EP2013871A4 (en) * 2006-04-27 2011-08-24 Technologies Humanware Inc METHOD FOR TEMPORALLY NORMALIZING AN AUDIO SIGNAL
US20070263672A1 (en) * 2006-05-09 2007-11-15 Nokia Corporation Adaptive jitter management control in decoder
RU2398361C2 (ru) * 2006-06-16 2010-08-27 Эрикссон Аб Интеллектуальный способ, система и узел ограничения аудио
US8346546B2 (en) * 2006-08-15 2013-01-01 Broadcom Corporation Packet loss concealment based on forced waveform alignment after packet loss
US7573907B2 (en) 2006-08-22 2009-08-11 Nokia Corporation Discontinuous transmission of speech signals
US7647229B2 (en) 2006-10-18 2010-01-12 Nokia Corporation Time scaling of multi-channel audio signals
JP2008139631A (ja) * 2006-12-04 2008-06-19 Nippon Telegr & Teleph Corp <Ntt> 音声合成方法、装置、プログラム
CN101548500A (zh) 2006-12-06 2009-09-30 艾利森电话股份有限公司 抖动缓冲器控制
US8078456B2 (en) * 2007-06-06 2011-12-13 Broadcom Corporation Audio time scale modification algorithm for dynamic playback speed control
WO2009010831A1 (en) 2007-07-18 2009-01-22 Nokia Corporation Flexible parameter update in audio/speech coded signals
US20100290454A1 (en) 2007-11-30 2010-11-18 Telefonaktiebolaget Lm Ericsson (Publ) Play-Out Delay Estimation
JP5250255B2 (ja) 2007-12-27 2013-07-31 京セラ株式会社 無線通信装置
US7852882B2 (en) 2008-01-24 2010-12-14 Broadcom Corporation Jitter buffer adaptation based on audio content
US9143810B2 (en) 2008-03-13 2015-09-22 Telefonaktiebolaget L M Ericsson (Publ) Method for manually optimizing jitter, delay and synch levels in audio-video transmission
EP2141696A1 (en) * 2008-07-03 2010-01-06 Deutsche Thomson OHG Method for time scaling of a sequence of input signal values
JP5325293B2 (ja) 2008-07-11 2013-10-23 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ 符号化されたオーディオ信号を復号化するための装置および方法
CN102150201B (zh) * 2008-07-11 2013-04-17 弗劳恩霍夫应用研究促进协会 提供时间扭曲激活信号以及使用该时间扭曲激活信号对音频信号编码
JP5083097B2 (ja) 2008-07-30 2012-11-28 日本電気株式会社 ジッターバッファ制御方法と通信装置
EP2230784A1 (de) 2009-03-19 2010-09-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zur Übertragung einer Mehrzahl von Informationssignalen in einem flexiblen Zeitmultiplex
US8848525B2 (en) 2009-06-10 2014-09-30 Genband Us Llc Methods, systems, and computer readable media for providing adaptive jitter buffer management based on packet statistics for media gateway
EP2302845B1 (en) 2009-09-23 2012-06-20 Google, Inc. Method and device for determining a jitter buffer level
BR122021008581B1 (pt) * 2010-01-12 2022-08-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codificador de áudio, decodificador de áudio, método de codificação e informação de áudio, e método de decodificação de uma informação de áudio que utiliza uma tabela hash que descreve tanto valores de estado significativos como limites de intervalo
CA2792500C (en) * 2010-03-10 2016-05-03 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio signal decoder, audio signal encoder, methods and computer program using a sampling rate dependent time-warp contour encoding
CN102214464B (zh) * 2010-04-02 2015-02-18 飞思卡尔半导体公司 音频信号的瞬态检测方法以及基于该方法的时长调整方法
US8693355B2 (en) 2010-06-21 2014-04-08 Motorola Solutions, Inc. Jitter buffer management for power savings in a wireless communication device
CN103250206B (zh) * 2010-10-07 2015-07-15 弗朗霍夫应用科学研究促进协会 用于比特流域中的编码音频帧的强度估计的装置及方法
TWI425502B (zh) 2011-03-15 2014-02-01 Mstar Semiconductor Inc 音訊的時間伸縮方法與相關裝置
WO2012167479A1 (en) 2011-07-15 2012-12-13 Huawei Technologies Co., Ltd. Method and apparatus for processing a multi-channel audio signal
WO2013026203A1 (en) 2011-08-24 2013-02-28 Huawei Technologies Co., Ltd. Audio or voice signal processor
KR102058714B1 (ko) 2011-10-20 2019-12-23 엘지전자 주식회사 지터 버퍼 관리 방법 및 이를 이용하는 지터 버퍼
GB2495927B (en) 2011-10-25 2015-07-15 Skype Jitter buffer
WO2014039843A1 (en) 2012-09-07 2014-03-13 Apple Inc. Adaptive jitter buffer management for networks with varying conditions
US9420475B2 (en) 2013-02-08 2016-08-16 Intel Deutschland Gmbh Radio communication devices and methods for controlling a radio communication device
MX355850B (es) 2013-06-21 2018-05-02 Fraunhofer Ges Forschung Escalador de tiempo, decodificador de audio, metodo y programa de computadora usando un control de calidad.
CA2964362C (en) 2013-06-21 2020-03-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Jitter buffer control, audio decoder, method and computer program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070260462A1 (en) * 1999-12-28 2007-11-08 Global Ip Solutions (Gips) Ab Method and arrangement in a communication system
US20070186145A1 (en) * 2006-02-07 2007-08-09 Nokia Corporation Controlling a time-scaling of an audio signal

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Shahaf Grofit et al., ‘Time-scale modification of audio signals using enhances WSOLA with management of transients’, IEEE Trans. on ASLP. Vol.16, No.1, pp.106~115, January 2008.*
Sungjoo Lee et al., ‘Variable time-scale modification of speech using transient information’, IEEE interantional conference on ASSP, ICASSP-97, pp.1319~1321, April 1997.*

Also Published As

Publication number Publication date
US10204640B2 (en) 2019-02-12
MX2015017831A (es) 2016-04-15
BR112015032174A2 (pt) 2017-07-25
EP3321934A1 (en) 2018-05-16
PL3321935T3 (pl) 2019-11-29
RU2016101580A (ru) 2017-07-26
HK1223727A1 (zh) 2017-08-04
PT3011564T (pt) 2018-05-08
ES2667823T3 (es) 2018-05-14
KR20160023830A (ko) 2016-03-03
MY171256A (en) 2019-10-07
TW201517025A (zh) 2015-05-01
EP3011564B1 (en) 2018-01-31
EP3321935A1 (en) 2018-05-16
US20210233553A1 (en) 2021-07-29
CA2916126C (en) 2019-07-09
US20160171990A1 (en) 2016-06-16
BR112015032174B1 (pt) 2021-02-23
TWI581257B (zh) 2017-05-01
WO2014202672A3 (en) 2015-06-18
AU2017204613A1 (en) 2017-07-27
ES2739481T3 (es) 2020-01-31
AU2017204613B2 (en) 2019-02-14
PT3321935T (pt) 2019-09-12
RU2662683C2 (ru) 2018-07-26
AU2014283256B2 (en) 2017-09-21
CN105474313B (zh) 2019-09-06
SG11201510501YA (en) 2016-01-28
CN110211603A (zh) 2019-09-06
WO2014202672A2 (en) 2014-12-24
EP3321934C0 (en) 2024-04-10
HK1255499A1 (zh) 2019-08-16
JP6317436B2 (ja) 2018-04-25
JP2016529536A (ja) 2016-09-23
CA2916126A1 (en) 2014-12-24
MX355850B (es) 2018-05-02
CN110211603B (zh) 2023-11-03
US10984817B2 (en) 2021-04-20
EP3321935B1 (en) 2019-05-29
HK1255429B (zh) 2020-07-17
EP3321934B1 (en) 2024-04-10
PL3011564T3 (pl) 2018-07-31
AU2014283256A1 (en) 2016-02-11
SG10201708531PA (en) 2017-12-28
US20190147901A1 (en) 2019-05-16
EP3011564A2 (en) 2016-04-27
CN105474313A (zh) 2016-04-06

Similar Documents

Publication Publication Date Title
US11580997B2 (en) Jitter buffer control, audio decoder, method and computer program
KR101952192B1 (ko) 품질 제어를 이용하는 오디오 디코더, 방법 및 컴퓨터 프로그램
US12020721B2 (en) Time scaler, audio decoder, method and a computer program using a quality control

Legal Events

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