JP6251464B2 - ジッターバッファ制御、オーディオデコーダ、方法およびコンピュータプログラム - Google Patents

ジッターバッファ制御、オーディオデコーダ、方法およびコンピュータプログラム Download PDF

Info

Publication number
JP6251464B2
JP6251464B2 JP2016520457A JP2016520457A JP6251464B2 JP 6251464 B2 JP6251464 B2 JP 6251464B2 JP 2016520457 A JP2016520457 A JP 2016520457A JP 2016520457 A JP2016520457 A JP 2016520457A JP 6251464 B2 JP6251464 B2 JP 6251464B2
Authority
JP
Japan
Prior art keywords
jitter buffer
time
frame
audio
scaling
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2016520457A
Other languages
English (en)
Other versions
JP2016527540A5 (ja
JP2016527540A (ja
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 JP2016527540A publication Critical patent/JP2016527540A/ja
Publication of JP2016527540A5 publication Critical patent/JP2016527540A5/ja
Application granted granted Critical
Publication of JP6251464B2 publication Critical patent/JP6251464B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • 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/012Comfort noise or silence coding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/062Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
    • H04J3/0632Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0664Clock or time synchronisation among packet nodes using timestamps unidirectional timestamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Quality & Reliability (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Soundproofing, Sound Blocking, And Sound Damping (AREA)
  • Noise Elimination (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Communication Control (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)

Description

本発明による実施形態は、入力オーディオコンテンツに基づいて復号されたオーディオコンテンツの供給を制御するためのジッターバッファ制御に関連する。
本発明による他の実施形態は、入力オーディオコンテンツに基づいて復号されたオーディオコンテンツを供給するためのオーディオデコーダに関連する。
本発明の他の実施形態は、入力オーディオコンテンツに基づいて復号されたオーディオコンテンツの供給を制御するための方法に関連する。
本発明による他の実施形態は、前記方法を実行するためのコンピュータプログラムに関連する。
オーディオコンテンツ(音楽コンテンツ等の一般オーディオコンテンツ、音声コンテンツ、および一般オーディオ/音声コンテンツの混合されたものを含む)の保存および送信は、重要な技術分野である。特定の課題は、リスナーが、まったく途切れることなく、かつ、オーディオコンテンツの保存および/または送信により生じる可聴アーチファクトなしに、オーディオコンテンツの連続した再生を期待するという事実により生じる。同時に、保存手段およびデータ送信手段に関する要件は、コストを許容可能な範囲に留めるため、できるだけ低く保つことが望ましい。
たとえば、問題が生じるのは、記憶媒体からの読出しが一時的に途切れたり遅れたりする場合や、データソースとデータシンクとの間での送信が一時的に途切れたり遅れたりする場合である。たとえば、インターネットを経由する送信の信頼度が高いとは言えないのは、TCP/IPパケットを損失する可能性があり、またインターネットによる送信の遅れが、たとえば、インターネットノードの可変な負荷状況に依拠して変化し得るためである。
しかしながら、ユーザーが満足できる体験を得るためには、可聴な「途切れ(ギャップ)」または可聴なアーチファクトなしにオーディオコンテンツを連続して再生することが必要である。また、大量のオーディオ情報をバッファすることにより生じると考えられる実質的な遅延を回避することが望ましい。
上記に鑑み、オーディオ情報の供給が不連続な場合さえ、良好なオーディオ品質を提供するコンセプトの必要性が認識できる。
本発明による実施形態は、入力オーディオコンテンツに基づいて復号されたオーディオコンテンツの供給を制御するためのジッターバッファ制御を創出する。ジッターバッファ制御は、信号適応的に、フレームベースの時間スケーリングまたはサンプルベースの時間スケーリングを選択するよう構成される。
本発明によるこの実施形態は、時間スケーリングの使用によって、入力コンテンツが実質的なジッターを含んでいたり、入力オーディオコンテンツが一部(フレーム等)失われた場合でさえ、良好なまたは少なくとも許容可能な品質を有する連続的な復号化オーディオコンテンツを供給することが可能になるとする所見に基づく。また、本発明によるこの実施形態は、フレームベースの時間スケーリングが、計算効率がよくかつ良好な結果をもたらす場合がある一方で、復号化オーディオコンテンツの可聴アーチファクトを回避するためには、一般に計算上はより複雑であるサンプルベースの時間スケーリングが推奨される(要件とされる場合も)状況があるとする所見に基づく。また、信号適応的にフレームベースの時間スケーリングとサンプルベースの時間スケーリングを選択することにより特に良好な結果が得られる理由は、最も適切なタイプの時間スケーリングがこの態様で使用できるからと言うことがわかっている。したがって、本発明による実施形態は、オーディオ品質、遅延および計算の複雑さの間で良好なトレードオフを図るものである。
好ましい実施形態において、フレームベースの時間スケーリングが使用される場合にはジッターバッファの深さを制御するためにオーディオフレームを減らすかまたは挿入する。また、サンプルベースの時間スケーリングを使用する場合には、オーディオ信号部分の時間シフトされた重畳加算を行う。したがって、オーディオ信号が許容できないオーディオ歪みを生じず、このようなアプローチが可能な場合、たとえば、オーディオフレームを減らしたり挿入したりという計算的に非常に効率の良いアプローチを使用することが可能である。他方で、計算的により複雑でないアプローチ(オーディオフレームを減らしたり挿入する等)で、満足なオーディオ品質が得られないと考えられる場合(おそらくは、オーディオコンテンツの評価または分析の観点から)、より洗練されて細かく調節できるアプローチ、すなわちオーディオ信号部分の時間シフトされた重畳加算が使用される。したがって、計算の複雑さとオーディオ品質との間で良好な妥協を行うことができる。
好ましい実施形態では、ジッターバッファ制御は、信号適応的に、フレームベースの時間スケーリングと、サンプルベースの時間スケーリングと、時間スケーリングの不活性化との間で切り替わるよう構成される。このアプローチを使用することで、時間スケーリング動作(サンプルベースの時間スケーリング動作であっても)により許容できないオーディオコンテンツの劣化が生じ得ることがわかっている場合、時間スケーリング動作を(少なくとも一時的に)回避することができる。
好ましい実施形態では、ジッターバッファ制御は、デジッターバッファ(単に「ジッターバッファ」と称されることもあり得る)の深さを制御するために、フレームベースの時間スケーリングまたはサンプルベースの時間スケーリングを選択するよう構成される。したがって、デジッターバッファ(またはジッターバッファ)の「深さ」(または占有率)を所望の範囲に維持することが可能で、それにより依然として遅延(一般にデジッターバッファの深さに対応する)をかなり小さく維持しながら、実質的にオーディオ品質を劣化させずにジッターを扱うことが可能になる。
好ましい実施形態では、前のフレームが「不活性」な場合、ジッターバッファ制御は、コンフォートノイズ挿入またはコンフォートノイズ削除を選択するよう構成される。このコンセプトは、「話者」が聞いているだけのため一定期間音声がない場合等、フレーム(たとえば前のフレーム)が不活性であれば、コンフォートノイズを発生させるだけで充分であるとする所見に基づく。しかしながら、コンフォートノイズの延長された期間は、人からは実質的なアーチファクトとして知覚されることはないので、追加のコンフォートノイズ(たとえばコンフォートノイズからなる1フレーム全部)をオーディオコンテンツ内に挿入することにより、聞いた印象がひどく劣化することなく時間スケーリングができることがわかっている。同様に、人が、コンフォートノイズフレームが「なくて困る」ことはないので、コンフォートノイズ(コーフォートノイズフレーム等)の削除は、聞いた印象を実質的に劣化させることはない。したがって、前のフレームが不活性(たとえばコンフォートノイズフレーム)であれば、非常に効率のよいフレームベースの時間スケーリング(コンフォートノイズフレームの挿入または削除により)を行うことができる。したがって、前のフレームが不活性な場合、フレームベースの時間スケーリングを信号適応的に選択することで、時間スケーリングの良好な効率がもたらされる(一方で、フレームベースの時間スケーリングは、典型的には、たとえば空のバッファ等、特定の状況がない限り、オーディオコンテンツの「活性」な部分にはあまり適していない)。
好ましい実施形態では、コンフォートノイズの挿入は、デジッターバッファ(単にジッターバッファとも称する)へのコンフォートノイズフレームの挿入になる。また、コンフォートノイズの削除は、デジッターバッファからのコンフォートノイズフレームの除去になることが好ましい。したがって、コンフォートノイズフレームは、簡単に発生させることができるので、非常に効率のよい時間スケーリングを行うことができる(コンフォートノイズフレームは、典型的には、コンフォートノイズを発生すべきとするシグナリングのための適切なシグナリング情報を含むだけである)。
好ましい実施形態では、それぞれのフレームがコンフォートノイズの発生を示すシグナリング情報を保持する場合、それぞれのフレームは、不活性と考えられる。したがって、時間スケーリングモード(フレームベースまたはサンプルベースの時間スケーリング)の信号適応的選択を苦もなく実行することができる。
好まし実施形態では、ジッターバッファ制御は、前のフレームが「活性」である場合、オーディオ信号部分の時間シフトされた重畳加算を実行するよう構成される。このコンセプトは、オーディオ信号部分の時間シフトされた重畳加算により、活性フレーム(コンフォートノイズの発生を示すシグナリング情報ではなく、オーディオコンテンツを含むフレーム等)の場合、可聴アーチファクトが減る(または回避することも)とする所見に基づく。
好ましい実施形態では、オーディオ信号部分の時間シフトされた重畳加算を採用して、オーディオサンプルのブロックの長さより小さい(またはフレームの長さより小さい)、オーディオサンプルのブロックの長さの4分の1より小さい(またはフレームの長さの4分の1より小さい)、または2つのオーディオサンプル以下の分解能で、単独のフレームに基づいてまたは入力オーディオコンテンツの後続フレームに基づいて得られるオーディオサンプルのブロック間の時間シフトの調節を可能にする。言い換えれば、オーディオ信号部分の時間シフトされた重畳加算を用いる場合、時間シフトは、非常に細かい分解能で調節することができ、これは、1つのオーディオサンプルと同じぐらい小さくてもよい。したがって、時間シフトは、(オーディオサンプルの後続ブロック間の)重畳加算を、信号部分によく適応した態様で実行することができるように、調節される(重畳加算は、典型的には、比較的高い類似度を有する信号部分の間で行われ、アーチファクトが回避される)。
好ましい実施形態では、ジッターバッファ制御は、オーディオサンプルのブロックが、活性ではあるが無音のオーディオ信号部分(たとえばコンフォートノイズの発生がないので「活性」と考えられるオーディオ信号ではあるが、前記オーディオ信号部分のエネルギが、特定のエネルギ閾値以下かまたはゼロに等しいので、「無音」と考えられる)を表すかどうかを決定し、かつ、重畳加算モードを選択するよう構成され、無音のオーディオ信号部分を表すオーディオサンプルのブロックとオーディオサンプルの後続のブロックとの間の時間シフトが、「無音」の(ただし「活性」の)オーディオ信号部分を表すオーディオサンプルのブロックについて、予め定められた最大値に設定される。したがって、たとえば上記の定義に従って「活性」ではあるが「無音」のこのようなオーディオ信号部分について、最大時間スケーリングが行われる。その結果、「無音」のオーディオ信号部分は可聴歪みがほとんどないか皆無で時間スケーリングできるので、時間スケーリングにより実質的な可聴アーチファクトを生じないオーディオ信号部分についての最大時間スケーリングが行われる。また、「無音」のオーディオ信号部分に対して最大時間スケーリングを適用することにより、「非無音」のオーディオ信号部分(エネルギ閾値以上のエネルギを含む「活性」のオーディオ信号部分等)に対して、比較的より小さい時間スケーリングを適用するだけで充分であり、このことも可聴歪みを抑えるかまたは回避する助けとなる(より小さい時間スケーリングが非無音のオーディオ信号部分に適用されると、典型的にはより大きな時間スケーリングの場合に比べて歪みが小さくなるため)。
好ましい実施形態では、ジッターバッファ制御は、オーディオサンプルのブロックが、活性でかつ非無音のオーディオ信号部分を表すかどうかを決定し、かつ、重畳加算モードを選択するよう構成され、オーディオサンプルのブロック(オリジナルの時間位置に対して時間シフトされる、時間シフトされた態様で重畳加算される)間の時間シフトが、信号適応的に決定される。オーディオサンプルのブロック(後続の)間の時間シフトの決定を信号適応的に行うことは、オーディオサンプルのブロック(またはオーディオサンプルの後続のブロック)が活性でかつ非無音のオーディオ信号部分を表す場合には、重畳加算の実行に適切であることがわかっている。これは、活性かつ非無音のオーディオ信号部分の時間スケーリングから発生するかもしれない可聴アーチファクトが、重畳加算演算に適用されるべき時間シフトの信号適応的な決定により低減(または回避さえ)されるためである。
好ましい実施形態では、ジッターバッファ制御は、時間伸張(time stretching)が必要で、かつジッターバッファが空であるとする決定に応答して、隠蔽フレームの挿入を選択するよう構成される。したがって、ジッターバッファ制御は、他の時間スケーリングのコンセプトが、典型的には空のジッターバッファの場合には良い結果をもたらさないので、空のジッターバッファの場合には特定の扱いを実行し得る。たとえば、隠蔽フレームは、前のフレーム(たとえば、ジッターバッファが空になる前に得られた最後のフレーム)のオーディオコンテンツに類似するオーディオコンテンツを含み得る。しかしながら、コンフォートノイズの発生を示すシグナリング情報を、ジッターバッファが空になる前に、保持する前のフレームの場合、隠蔽フレームは、コンフォートノイズの発生を示すそのようなシグナリング情報も含み得る。
好ましい実施形態では、ジッターバッファ制御は、コンフォートノイズの発生に関連する不連続送信が現在使用されるかどうか(または同様に、前のフレームに使用されたかどうか)に依拠して、フレームベースの時間スケーリングまたはサンプルベースの時間スケーリングを選択するよう構成される。このコンセプトは、コンフォートノイズ発生に関連する不連続な送信が現在使用される(または前のフレームに使用された)場合に、サンプルベースの時間スケーリングを使用することは非効率であるとする所見に基づく。したがって、ジッターバッファ制御は、フレームベースの時間スケーリングとサンプルベースの時間スケーリングとの切り替えを容易にするため、コンフォートノイズ発生(CNGとも称する)に関する不連続送信(またはDTXとも称する)が現在使用される(または前のフレームで使用された)かどうかに関する情報を使用することができる。
好ましい実施形態では、ジッターバッファ制御は、コンフォートノイズ発生が現在使用される(または同様に前のフレームに使用された)場合に、フレームベースの時間スケーリングを選択し、かつコンフォートノイズ発生が現在使用されない(かまたは同様に前のフレームに使用されていない)場合には、サンプルベースの時間スケーリングを選択するよう構成される。したがって、時間スケーリングのモードが信号によく適応される(ただし、隠蔽フレームを使用することによるフレームベースの「時間スケーリング」が、空のジッターバッファの例外的な条件下で使用されることもできる)。
好ましい実施形態では、ジッターバッファ制御は、コンフォートノイズ発生に関する不連続な送信が現在使用される(かまたは同様に前のフレームに使用された)場合、時間スケーリングにコンフォートノイズ挿入またはコンフォートノイズ削除を選択して、現在のオーディオ信号部分(または同様に前のオーディオ信号部分)が活性(コンフォートノイズ発生を使用しない等)ではあるが、エネルギ閾値以下の信号エネルギを含み(「無音」オーディオ信号部分)、かつジッターバッファが空でない場合に、時間スケーリングに予め定められた時間シフトを用いる重畳加算演算を選択し、現在のオーディオ信号部分(または同様に前のオーディオ信号部分)が活性(たとえばコンフォートノイズ発生を含まない)で、エネルギ閾値以上の信号エネルギを含みかつジッターバッファが空でない場合、時間スケーリングに信号適応的時間シフトを用いる重畳加算演算を選択し、かつ現在のオーディオ信号部分(または同様に前のオーディオ信号部分)が活性でかつジッターバッファが空の場合、時間スケーリングに隠蔽フレームの挿入を選択するよう構成される。したがって、オーディオ信号の各部分(またはフレーム)について、計算効率よい態様で、時間スケーリングの適正なモードを選ぶことができる。
好ましい実施形態において、ジッターバッファ制御が、現在のオーディオ信号部分(または同様に前のオーディオ信号部分)が活性で(コンフォートノイズ発生を含まない等)かつエネルギ閾値以上の信号エネルギを含み、かつジッターバッファが空でない場合、時間スケーリングに信号適応的時間シフトおよび品質制御メカニズムを用いる重畳加算演算を選択するよう構成される。信号適応的時間シフトおよび品質制御メカニズムを用いる重畳加算演算の使用によって、品質制御メカニズムを用いて耐えがたい可聴アーチファクトを回避できるという効果がもたらされる。このように、品質制御メカニズムは、たとえば、現在のオーディオ信号部分が活性で、エネルギ閾値以上の信号エネルギを含み、かつ、時間シフトが制御論理により要求される場合でさえ、時間スケーリングの適用を阻止できる。
本発明の実施形態は、入力オーディオコンテンツに基づいて復号されたオーディオコンテンツを供給するためのオーディオデコーダを創出する。オーディオデコーダは、オーディオサンプルのブロックを表す複数のオーディオフレームをバッファするよう構成されるジッターバッファを含む。オーディオデコーダは、また、ジッターバッファから受信したオーディオフレームに基づいてオーディオサンプルのブロックを供給するよう構成されるデコーダコアを含む。オーディオデコーダは、また、サンプルベースの時間スケーラを含み、サンプルベースの時間スケーラは、デコーダコアが供給するするオーディオサンプルに基づいてオーディオサンプルの時間スケーリングされたブロックを供給するよう構成される。また、オーディオデコーダは、上述したように、ジッターバッファ制御を含む。ジッターバッファ制御が、信号適応的に、ジッターバッファにより行われるフレームベースの時間スケーリング、またはサンブルベースの時間スケーラにより行われるサンプルベースの時間スケーリングを選択するよう構成される。したがって、ジッターバッファ制御によって、2つの実質的に異なる時間スケーリングのコンセプトが選択され、フレームベースの時間スケーリングは、オーディオフレームがデコーダコアに入力される前に実行され(たとえばオーディオフレーム全体を加えたり、削除することにより)、かつ、サンプルベースの時間スケーリングが、デコーダコアが供給するオーディオサンプルのブロックに基づいて実行される。こうして、2つの実質的に異なる時間スケーリングのアプローチの間で信号適応的に選択が行われ、これにより時間スケーリングモードの信号への適応が可能になり、かつ過度な可聴アーチファクト(または歪み)を回避しながら、結果として効率の向上がもたらされる。
好ましい実施形態では、ジッターバッファが、フレームベースの時間スケーリングを実行するために、オーディオフレームを減らすかまたは挿入するよう構成される。したがって、時間スケーリングを特に効率的に行うことができる。減らされた時間フレームは、たとえば、コンフォートノイズの発生を示す(かつおそらくは「無音」を示す)シグナリング情報を含む時間フレームであり得る。また、挿入される時間フレームは、たとえば、コンフォートノイズを発生すべきであることを示すシグナリング情報を含む時間フレームであり得る。このような時間フレームは、容易に挿入したり減らすことが可能で、減らされたフレームまたは挿入されたフレームに先行する前のフレームが、コンフォートノイズ発生を示すシグナリング情報を含む場合には、典型的には、ほとんど可聴歪みはない(または皆無である)。
好ましい実施形態では、オーディオデコーダコアが、コンフォートノイズの発生を示すシグナリング情報を保持するフレームに応答して、コンフォートノイズの発生を実行するよう構成される。また、デコーダコアが、空のジッターバッファに応答して封じ込めを実行するよう構成されることが好ましい。コンフォートノイズ発生を実行するよう構成されるデコーダコアを使用することで、オーディオコンテンツの効率的な送信が可能で、かつ効率的な時間スケーリングも可能になる。また、空のジッターバッファに応答して封じ込めを実行するよう構成されるデコーダコアの使用により、封じ込め機能性のない空のジッターバッファの場合に、オーディオコンテンツのプレイバックが途切れるという問題が回避される。こうして、記載のデコーダコアの使用によって、復号されたオーディオコンテンツの効率的かつ信頼度の高い供給が可能となる。
好ましい実施形態では、サンプルベースの時間スケーラが、時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンの品質の計算または推定に依拠して、入力オーディオ信号の時間スケーリングを実行するよう構成される。したがって、第2の段階、すなわちサンプルベースの時間スケーリングを使用する判断を行った後で、可聴アーチファクトの発生を低減または回避さえする追加のメカニズムが導入される。言い換えれば、第1の段階で、信号適応的にフレームベースの時間スケーリングとサンプルベースの時間スケーリングの間で選択が行われ、かつ品質制御(サンプルベースの時間スケーリングにより入手可能なオーディオ信号の時間スケーリングされたバージョンの品質の計算推定)が第2の段階で行われて、これにより時間スケーリングが実質的にオーディオコンテンツを劣化させ、それにより時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンの品質が悪くなると考えられる場合には、(サンプルベースの)時間スケーリングを省略することができる。
本発明の実施形態は、入力オーディオコンテンツに基づいて、復号されたオーディオコンテンツを供給するための方法を創出する。この方法は、信号適応的にフレームベースの時間スケーリング、またはサンプルベースの時間スケーリングを選択するステップを含む。この方法は、上記のジッターバッファ制御および上記のオーディオデコーダと同じ考察に基づく。
本発明の他の実施形態は、コンピュータプログラムがコンピュータ上で実行されている時に、前記方法を実行するためのコンピュータプログラムを創出する。コンピュータプログラムは、上記の方法と同じ考察に基づく。
次に、添付の図面を参照して、本発明の実施形態について説明する。
図1は、本発明の実施形態によるジッターバッファ制御の模式ブロック図である。 図2は、本発明の実施形態による時間スケーラの模式ブロック図である。 図3は、本発明の実施形態によるオーディオデコーダの模式ブロック図である。 図4は、本発明の他の実施形態によるオーディオデコーダの模式ブロック図であり、ジッターバッファ管理(JBM)の概略を示す図である。 図5は、PCMバッファレベルを制御するアルゴリズムの擬似プログラムコードを示す図である。 図6は、RTPパケットの受信時間とRTPタイムスタンプとから遅延値とオフセット値を計算するためのアルゴリズムの擬似プログラムコードを示す図である。 図7は、ターゲット遅延値を計算するためのアルゴリズムの擬似プログラムコードを示す図である。 図8は、ジッターバッファ制御論理のフローチャートを示す図である。 図9は、品質制御を伴う修正WSOLAの模式ブロック図である。 図10A−1は、時間スケーラを制御するための方法のフローチャートである。 図10A−2は、時間スケーラを制御するための方法のフローチャートである。 図10Bは、時間スケーラを制御するための方法のフローチャートである。 図11は、時間スケーリングのための品質制御用のアルゴリズムの擬似プログラムコードを示す図である。 図12は、本発明の実施形態により得られるターゲット遅延およびプレイアウト遅延のグラフである。 図13は、本発明の実施形態において行われる時間スケーリングのグラフである。 図14は、入力オーディオコンテンツに基づいて、復号されたオーディオコンテンツの供給を制御するための方法のフローチャートである。 図15は、本発明の実施形態による入力オーディオ信号の時間スケーリングされたバージョンを供給するための方法のフローチャートである。
<図1によるジッターバッファ制御>
図1は、本発明の実施形態によるジッターバッファ制御の模式ブロック図である。入力オーディオコンテンツに基づいて、復号されたオーディオコンテンツの供給を制御するためのジッターバッファ制御100は、オーディオ信号110またはオーディオ信号に関する情報を受信する(この情報は、オーディオ信号の1以上の特徴またはオーディオ信号のフレームまたは他の信号部分を記述し得る)。
また、ジッターバッファ制御100は、フレームベースのスケーリングのための制御情報(制御信号等)112を供給する。たとえば、制御情報112は、活性化信号(フレームベースの時間スケーリングのための)および/または量的制御情報(フレームベースの時間スケーリングのための)を含み得る。
また、ジッターバッファ制御100は、サンプルベースの時間スケーリングのための制御情報(制御信号等)114を供給する。制御情報114は、たとえば、サンプルベースの時間スケーリングのための活性化信号および/または量的制御情報を含み得る。
ジッターバッファ制御110は、信号適応的に、フレームベースの時間スケーリングまたはサンプルベースの時間スケーリングを選択するよう構成される。したがって、ジッターバッファ制御は、オーディオ信号またはオーディオ信号110に関する情報を評価し、それに基づいて制御情報112および/または制御情報114を供給するよう構成され得る。したがって、フレームベースの時間スケーリングまたはサンプルベースの時間スケーリングが用いられるか否かの決定がオーディオ信号の特性に適応されてもよく、たとえば、それによりオーディオ信号に基づいておよび/またはオーディオ信号の1以上の特徴についての情報に基づいて、フレームベースの時間スケーリングによりオーディオコンテンツの実質的な劣化がないと予測(または推定)される場合、計算的に単純なフレームベースの時間スケーリングを使用するようになっている。対照的に、オーディオ信号110の特徴の評価に基づいて、時間スケーリングを行う際に可聴アーチファクトを回避するため、サンプルベースの時間スケーリングが必要であると(ジッターバッファ制御によって)予測または推定される場合、ジッターバッファ制御は、典型的には、サンプルベースの時間スケーリングを使用すると判断する。
また、ジッターバッファ制御110は、時間スケーリングを行うべきか否かを示す制御情報等の付加的制御情報も当然受信し得る点に注目されたい。
以下では、ジッターバッファ制御100のいくつかの任意の詳細について説明する。たとえば、ジッターバッファ制御100は、フレームベースの時間スケーリングが使用される場合には、ジッターバッファの深さを制御するために、オーディオフレームを減らすかまたは挿入するように、かつサンプルベースの時間スケーリングが使用される場合には、オーディオ信号部分の時間シフトされた重畳加算が行われるように、制御情報112、114を供給する。言い換えれば、ジッターバッファ制御100は、たとえば、ジッターバッファ(デジッターバッファと称する場合もある)と協働し、かつ、ジッターバッファを制御してフレームベースの時間スケーリングを実行し得る。この場合、ジッターバッファの深さは、ジッターバッファからフレームを減らすか、またはジッターバッファにフレーム(フレームが「不活性」でかつコンフォートノイズを使用する必要があるとするシグナリングを含む単純なフレーム等)を挿入することにより制御され得る。また、ジッターバッファ制御100は、オーディオ信号部分の時間シフトされた重畳加算を実行するために時間スケーラ(たとえばサンプルベースの時間スケーラ)を制御し得る。
ジッターバッファ制御部100は、信号適応的に、フレームベースの時間スケーリングと、サンプルベースの時間スケーリングと、時間スケーリングの不活性化とを切り替えるよう構成され得る。言い換えれば、ジッターバッファ制御は、典型的には、フレームベースの時間スケーリングとサンプルベースの時間スケーリングとの間を区別するのみならず、時間スケーリングが全く行わない状態も選択する。後者の状態は、たとえば、ジッターバッファの深さが許容可能な範囲内にあるため、時間スケーリングを全く必要としない場合に選択され得る。言い換えれば、ジッターバッファ制御が選択できるのは、典型的には、フレームベースの時間スケーリングとサンプルベースの時間スケーリングの2つのモードだけではないということである。
ジッターバッファ制御100は、どのモードの動作(たとえばフレームベースの時間スケーリング、サンプルベースの時間スケーリング、時間スケーリングなし)を使用するべきかを判断するためのジッターバッファの深さについての情報も考慮する。たとえば、ジッターバッファ制御は、ジッターバッファ(デジッタバッファとも称する)の所望の深さを記述するターゲット値とジッターバッファの実際の深さを記述する実際の値と比較して、前記比較に依拠して動作モード(フレームベースの時間スケーリング、サンプルベースの時間スケーリング、時間スケーリングなし)を選択することができ、それによりジッターバッファの深さを制御するため、フレームベースの時間スケーリングまたはサンプルベースの時間スケーリングが選択される。
ジッターバッファ制御100は、たとえば、前のフレームが不活性であった場合(これは、たとえばオーディオ信号110自体か、不連続送信モードの場合には無音識別子フラグSID等のオーディオ信号に関する情報をもとに認識される)、コンフォートノイズ挿入またはコンフォートノイズ削除を選択するよう構成され得る。したがって、ジッターバッファ制御100は、時間伸張が所望され、前のフレーム(または現在のフレーム)が不活性な場合、コンフォートノイズフレームを挿入すべきであるとジッターバッファ(デジッターバッファとも称する)へシグナリングし得る。また、ジッターバッファ制御100は、時間収縮(time shrinking)の実行が所望されかつ前のフレームが不活性であった場合(または現在のフレームが不活性の場合)、コンフォートノイズフレーム(コンフォートノイズ発生を実行する必要があることを表示するシグナリング情報を含むフレーム)を削除するようジッターバッファ(またはデジッターバッファ)に命令し得る。なお、それぞれのフレームが、コンフォートノイズの発生を示す(かつ典型的には付加的な符号化オーディオコンテンツを含まない)シグナリング情報を保持する場合、それぞれのフレームは不活性と考えられ得る。このようなシグナリング情報は、たとえば、不連続送信モードの場合には無音表示フラグ(SIDフラグ)の形式を取り得る。
対照的に、ジッターバッファ制御100は、前のフレームが活性であった場合(たとえば、前のフレームがコンフォートノイズを発生すべきことを示すシグナリング情報を含んでいなかった場合)、オーディオ信号部分の時間シフトされた重畳加算を選択するよう構成されることが好ましい。音声信号部分のこのような時間シフトされた重畳加算により、典型的には、比較的高い分解能(たとえば、オーディオサンプルのブロックの長さより小さいか、またはオーディオサンプルのブロックの長さの4分の1より小さいか、または2つのサンプル以下か、または単一のオーディオサンプルと同じぐらい小さい分解能)で、入力オーディオ情報の後続のフレームに基づいて得られるオーディオアンプルのブロック間の時間シフトを調節できる。したがって、サンプルベースの時間スケーリングの選択によって、非常に細かく調整された時間スケーリングが可能となり、これは活性フレームについて可聴アーチファクトを回避するのに役立つ。
ジッターバッファ制御が、サンプルベースの時間スケーリングを選択する場合、ジッターバッファ制御は、サンプルベースの時間スケーリングを調節または細かく調整するための追加の制御情報も供給し得る。たとえば、ジッターバッファ制御100は、オーディオサンプルのブロックが、比較的小さいエネルギを含むオーディオ信号部分等の、活性ではあるが「無音」のオーディオ信号部分を表すかどうかを決定するよう構成され得る。この場合、すなわち、オーディオ信号部分が「活性」(たとえば、オーディオコンテンツのより詳細な復号化ではなく、オーディオデコーダにおいてコンフォートノイズ発生が使用されるオーディオ信号ではない場合)ではあるが、「無音」(たとえば信号エネルギが特定のエネルギ閾値未満かまたはゼロの場合も)である場合、ジッターバッファ制御は、重畳加算モードを選択するための制御情報114を供給することができ、「無音」(ただし活性)の音声信号部分を表すオーディオサンプルのブロックと、オーディオサンプルの後続のブロックとの間の時間シフトを予め定められた最大値に設定する。したがって、サンプルベースの時間スケーラは、オーディオサンプルの後続のブロックの詳細な比較に基づいて、時間スケーリングの適正な量を識別する必要がなく、むしろ単に時間シフトについて予め定められた最大値を使用することができる。「無音」のオーディオ信号部分は、典型的には時間シフトの実際の選択に関係なく、重畳加算演算において実質的なアーチファクトを引き起こさないということがわかる。結果的に、ジッターバッファ制御により供給される制御情報114は、サンプルベースの時間スケーラにより実行される処理を簡素化することができる。
対照的に、ジッターバッファ制御110が、オーディオサンプルのブロックが「活性」でかつ無音でないオーディオ信号部分(コンフォートノイズの発生がなく、特定の閾値を上回る信号エネルギも含むオーディオ信号部分等)を表すことを発見した場合、ジッターバッファ制御は、制御情報114を供給して、それにより、オーディオサンプルのブロック間の時間シフトが信号適応的に(たとえばサンプルベースの時間スケーラにより、オーディオサンプルの後続のブロック間の類似度の判断を用いるなどして)決定される、重畳加算モードを選択する。
また、ジッターバッファ制御100は、実際のバッファの占有率に関する情報も受信する。ジッターバッファ制御100は、時間伸張が必要でかつジッターバッファが空であるとする決定に応答して、隠蔽フレーム(すなわち前に復号されたフレームに基づく予測を用いる等、パケット損失リカバリメカニズムを用いて生成されるフレーム)の挿入を選択し得る。言い換えれば、ジッターバッファ制御は、基本的にサンプルベースの時間スケーリングが望ましい(前のフレームまたは現在のフレームが「活性」であるため)と考えられるが、ジッターバッファ(またはデジッターバッファ)が空であるため、サンプルベースの時間スケーリング(重畳加算を用いる等)を適切に実行することができない場合の例外的扱いを開始できる。したがって、ジッターバッファ制御100は、例外的なケースについてさえ、適切な制御情報112、114を供給するよう構成され得る。
ジッターバッファ制御100の動作を簡素化するため、ジッターバッファ制御100は、コンフォートノイズ発生(単に「CNG」とも称する)に関連する不連続送信(単に「DTX」とも称する)が現在使用されているかどうかに依拠して、フレームベースの時間スケーリングまたはサンプルベースの時間スケーリングを選択するよう構成され得る。言い換えれば、ジッターバッファ制御100は、たとえば、オーディオ信号またはオーディオ信号に関する情報に基づいて、前のフレーム(または現在のフレーム)が、コンフォートノイズを使用すべき「不活性」フレームであると認識される場合、フレームベースの時間スケーリングを選択し得る。これは、たとえば、オーディオ信号の符号化された表現に含まれるシグナリング情報(たとえばいわゆる「SID」フラグ等のフラグ)を評価することにより決定されることができる。したがって、ジッターバッファ制御は、コンフォートノイズ発生に関連する不連続送信が現在使用される場合には、フレームベースの時間スケーリングを使用すべきと判断することができ、これは、この場合にはこのような時間スケーリングにより引き起こされる可聴歪みがわずかであるか皆無であると予測できるからである。対照的に、なんらかの例外的な状況(空のジッターバッファ等)がない限り、それ以外の場合(コンフォートノイズ発生に関連する不連続送信が現在使用されていない場合等)は、サンプルベースの時間スケーリングが使用され得る。
ジッターバッファ制御は、時間スケーリングが必要な場合に、4つ(以上)のモードから1つを選択し得ることが好ましい。たとえば、ジッターバッファ制御は、コンフォートノイズ発生に関連する不連続送信が現在使用される場合、時間スケーリングについてコンフォートノイズ挿入またはコンフォートノイズ削除を選択するよう構成され得る。また、ジッターバッファ制御は、現在のオーディオ信号部分が、活性ではあるが、エネルギ閾値以下の信号エネルギを含み、かつジッターバッファが空でない場合に、時間スケーリングのため予め定められた時間シフトを用いる重畳加算演算を選択するよう構成され得る。また、ジッターバッファ制御は、現在のオーディオ信号部分が活性でかつエネルギ閾値以上の信号エネルギを含み、かつ、ジッターバッファが空でない場合には、時間スケーリングのため信号適応的時間シフトを用いる重畳加算演算を選択するよう構成され得る。最後に、ジッターバッファ制御は、現在のオーディオ信号部分が活性でかつジッターバッファが空の場合には、時間スケーリングのため隠蔽フレームの挿入を選択するよう構成され得る。したがって、ジッターバッファ制御は、信号適応的にフレームベースの時間スケーリングまたはサンプルベースの時間スケーリングを選択するよう構成され得ることがわかる。
また、現在のオーディオ信号部分が活性でかつエネルギ閾値以上の信号エネルギを含み、かつジッターバッファが空でない場合には、ジッターバッファ制御は、時間スケーリングのために信号適応的時間シフトおよび品質制御メカニズムを用いる重畳加算演算を選択するよう構成され得る点に注目されたい。言い換えれば、サンプルベースの時間スケーリングについては、付加的な品質制御メカニズムが存在可能で、これがジッターバッファ制御により行われるフレームベースの時間スケーリングとサンプルベースの時間スケーリングとの間の信号適応的選択を補う。このように、階層的なコンセプトを使用でき、ジッターバッファがフレームベースの時間スケーリングとサンプルベースの時間スケーリングとの間で当初の選択を行い、かつ付加的な品質制御メカニズムが実現されて、サンプルベースの時間スケーリングで、許容できないオーディオ品質の劣化が起こらないことを確実にする。
結論として、ジッターバッファ制御100の基本的な機能性について説明し、その任意の改良点についても説明した。また、ジッターバッファ制御100を、本明細書に記載の特徴および機能性のいずれかにより補うことができる点にも注目されたい。
<図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のブロックの時間シフトされたバージョンとを用いる重畳加算演算の結果は、それぞれの元の形でのサンプルの第1のブロックとサンプルの第2のブロックの延長合計よりも大きな時間的延長を含む(時間的にもサンプル数的にも)。
したがって、時間収縮および時間伸張の両方を、入力オーディオ信号のサンプルの第1のブロックと入力オーディオ信号のサンプルの第2のブロックとを用いる重畳加算演算を使用することで得ることができることは明らかであり、サンプルの第2のブロックが、サンプルの第1のブロックに対して時間シフトされる(またはサンプルの第1のブロックとサンプルの第2のブロックの両方がお互いに対して時間シフトされる)。
時間スケーラ200は、時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンの(期待される)品質を計算または推定するために、サンプルの第1のブロックとサンプルの第2のブロックの時間シフトされたバージョンとの間の重畳加算演算の品質を計算または推定するよう構成されることが好ましい。なお、重畳加算演算が十分に類似したサンプルのブロックの部分について実行される場合、典型的には、殆ど、可聴アーチファクトが存在しない。言い換えれば、重畳加算演算の品質が入力オーディオ信号の時間スケーリングされたバージョンの(期待される)品質に実質的に影響を与える。したがって、重畳加算演算の品質の推定(または計算)により、入力オーディオ信号の時間スケーリングされたバージョンの品質の信頼できる推定(または計算)が提供される。
時間スケーラ200は、サンプルの第1のブロックまたはサンプルの第1のブロックの一部(右側の部分等)とサンプルの時間シフトされた第2のブロックまたはサンプルの時間シフトされた第2のブロック一部(左側の部分等)との間の類似のレベルの決定に依拠して、サンプルの第2のブロックのサンプルの第1のブロックに対する時間シフトを決定するよう構成される。言い換えれば、時間スケーラは、十分に良好な重畳加算結果(または少なくともできる限り最良の重畳加算結果)を得るために、サンプルの第1のブロックとサンプルの第2のブロックとの間でどの時間シフトが最も適切かを決定するよう構成され得る。しかしながら、追加の(「品質制御」)ステップでは、サンプルの第1のブロックに対するサンプルの第2のブロックのこのような決定された時間シフトが、実際に十分に良好な重畳加算結果をもたらすか(または十分に良好な重畳加算結果をもたらすと期待されるか)どうかが検証され得る。
時間スケーラは、サンプルの第1のブロックとサンプルの第2のブロックとの間の複数の異なる時間シフトについて、サンプルの第1のブロックまたは第1のサンプルのブロックの一部(右側の部分等)とサンプルの第2のブロックまたはサンプルの第2のブロックの一部(左側の部分等)との間の類似のレベルについての情報を決定し、かつ複数の異なる時間シフトについて類似のレベルについての情報に基づいて、重畳加算演算に使用するべき(候補の)時間シフトを決定することが好ましい。言い換えれば、ベストマッチのサーチを行うことができ、様々な時間シフトに関する類似のレベルについての情報を比較して、最良の類似レベルに到達できる時間シフトを見つける。
時間スケーラは、ターゲット時間シフト情報に依拠して、サンプルの第1のブロックに対してサンプルの第2のブロックの時間シフト(この時間シフトは、重畳加算演算のために使用される)を決定するよう構成されることが好ましい。言い換えれば、ターゲット時間シフト情報は、たとえば、バッファの占有率の評価、ジッターおよび他に考えられる追加の基準に基づいて得ることができ、重畳加算演算についてどの時間シフトを使用すべきか(候補の時間シフトとして等)を決定する際に考慮する(考慮に入れる)ことができる。こうして、重畳加算を、システムの要件に適合させる。
いくつかの実施形態では、時間スケーラが、サンプルの第1のブロックまたはサンプルの第1のブロックの一部(右側の部分等)と、決定された(候補の)時間シフトにより時間シフトされたサンプルの第2のブロックまたは決定された(候補の)時間シフトにより時間シフトされたサンプルの第2のブロックの一部(左側の部分等)との間の類似のレベルについての情報に基づいて入力オーディオ信号の時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンの品質を計算または推定するよう構成され得る。類似のレベルについての前記情報は、重畳加算演算の(期待される)品質についての情報を提供し、かつ時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンの品質についての情報(少なくとも推定)も結果的に提供する。時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンの品質について計算または推定した情報を、時間スケーリングが実際に行われるかどうか(行われない場合、時間スケーリングは、延期され得る)を決定するために使用し得る場合もある。言い換えれば、時間スケーラは、サンプルの第1のブロックまたはサンプルの第1のブロックの一部(右側の部分等)と決定された(候補の)時間シフトにより時間シフトされたサンプルの第2のブロックまたは決定された(候補の)時間シフトにより時間シフトされたサンプルの第2のブロックの一部(左側の部分等)との間の類似のレベルについての情報に基づいて、時間スケーリングを実際に行うか(行わないか)を決定するよう構成され得る。こうして、時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンの品質に関する計算または推定された情報を評価する品質制御メカニズムにより、時間スケーリングよりオーディオコンテンツの過度な劣化が生じると予測される場合には、実際には時間スケーリングを省略することもあり得る(少なくともオーディオサンプルの現在のブロックまたはフレームについて)。
いくつかの実施形態では、サンプルの第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の類似尺度を用いた)を適用することで、時間スケーリングにおける可聴歪みの回避の助けとなる。
たとえば、第1の類似尺度は、相互相関、正規化された相互相関、平均大きさ差分関数または二乗誤差の和が可能である。このような類似尺度は、計算効率よく得ることができ、かつサンプルの第1のブロック(またはその一部)と(時間シフトされた)サンプルの第2のブロック(またはその一部)との「ベストマッチ」を見つける、すなわち「候補」の時間シフトを決定するには十分である。対照的に、第2の類似尺度は、たとえば、複数の異なる時間シフトについて相互相関値または正規化された相互相関値の組み合せが考えられる。このような類似尺度は、時間スケーリングの(期待される)品質を評価する際に、より高い精度をもたらし、付加的な信号成分(たとえば高調波のような)またはオーディオ信号の定常性を考慮する助けとなる。しかしながら、第2の類似尺度は、第1の類似尺度よりも計算的な要求が高いので、「候補の」時間シフトをサーチする場合に第2の類似尺度を適用することは計算的に非効率だと考えられる。
以下では、第2の類似尺度の決定についてのいくつかの選択肢について説明する。いくつかの実施形態では、第2の類似尺度は、4以上の異なる時間シフトについて、相互相関の組み合せが可能である。たとえば、第2の類似尺度は、サンプルの第1のブロックまたはサンプルの第2のブロックのオーディオコンテンツの基本周波数の持続期間の整数倍の間隔の時間シフトについて得られる、第1の相互相関値と第2の相互相関値の組み合せおよびオーディオコンテンツの基本周波数の持続期間の整数倍の間隔の時間シフトについて得られる第3の相互相関値と第4の相互相関値の組み合せが考えられる。第1の相互相関値が得られる時間シフトは、第3の相互相関値が得られる時間シフトから、オーディオコンテンツの基本周波数の持続期間の半分の奇数倍の間隔をあけられ得る。オーディオコンテンツ(入力オーディオ信号により表される)が、実質的に定常で、基本周波数に占有される場合、たとえば正規化され得る第1の相互相関値と第2の相互相関値は、両方とも1に近似することが期待され得る。しかしながら、第3の相互相関値および第4の相互相関値は、両方とも第1の相互相関値と第2の相互相関値が得られる時間シフトから基本周波数の持続期間の半分の奇数倍間隔をあけた時間シフトについて得られるので、第3の相互相関値および第4の相互相関値は、オーディオコンテンツが実質的に定常で基本周波数により占有される場合には、第1の相互相関値と第2の相互相関値に対して反対になることが予想できる。したがって、第1の相互相関値、第2の相互相関値、第3の相互相関値および第4の相互相関値に基づき有意味な組み合せを構成することができ、これは、オーディオ信号が十分に定常でかつ(候補の)重畳加算領域において基本周波数により占有されているかどうかを示す。
なお、特に有意味の類似尺度は、以下の式によって類似尺度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のブロック(またはその一部)との相互相関値である(ここで、オーディオコンテンツの基本周波数は、典型的には、サンプルの第1のブロックおよびサンプルの第2のブロックにおいて実質的に同じである)。言い換えれば、相互相関値は、入力オーディオコンテンツから取られ、かつ、入力オーディオコンテンツの基本周波数の持続期間pだけ付加的に相互に時間シフトされたサンプルのブロックに基づき計算される(ここで、基本周波数の持続期間pは、たとえば基本周波数推定、自己相関等に基づき得ることができる)。同様に、c(2*p)は、2*pだけ時間的にシフトさせたサンプルの第1のブロック(またはその一部)とサンプルの第2のブロック(またはその一部)との間の相互相関値である。同様の定義は、c(3/2*p)、c(1/2*p)、c(−p)およびc(−1/2*p)にも当てはまり、c(.)の引数が時間シフトを示す。
以下では、時間スケーラ200において任意に適用可能な、時間スケーリングを行う必要があるかどうかを判断するためのいくつかのメカニズムについて説明する。ある実現例においては、時間スケーラ200は、時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンの(期待される)品質の計算または推定に基づく品質値を可変の閾値と比較して、時間スケーリングを行うべきか否かを判断する。したがって、たとえば、以前の時間スケーリングを表す履歴等の状況に依拠して、時間スケーリングを行うかどうか判断することもできる。
たとえば、サンプルの1以上の前のブロックについて、時間スケーリングの品質が不十分であったと考えられるとする発見に応答して、時間スケーラは、可変の閾値を低減して、品質要件(時間スケーリングを可能にするために到達する必要がある)を下げるよう構成され得る。したがって、バッファオーバランまたはバッファアンダーランを引き起こし得るフレーム(またはサンプルのブロック)の長いシーケンスについては、時間スケーリングが阻害されないことを確実にする。また、時間スケーリングが1以上の前のブロックまたはサンプルに対して適用されたとする事実に応答して、時間スケーラは、可変の閾値を増大させて、それにより品質要件(時間スケーリングを可能にするために到達する必要がある)を上げるように構成され得る。したがって、時間スケーリングの非常に良好な品質(正常な品質要件に対して向上した)が得られると言う場合以外は、時間スケーリングされる後続ブロックまたはサンプルが多すぎるという事態を避けることができる。したがって、時間スケーリングの品質の条件が低すぎる場合に生じると考えられるアーチファクトを回避することができる。
いくつかの実施形態において、時間スケーラは、時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンのそれぞれの品質要件に到達したため、時間スケーリングされたサンプルのブロック数またはフレーム数をカウントするための範囲が限定された第1のカウンタを含む。また、時間スケーラは、時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンのそれぞれの品質要件に到達しなかったため、時間スケーリングされなかったサンプルのブロック数またはフレーム数をカウントするための範囲が限定された第2のカウンタも含み得る。この場合、時間スケーラは、第1のカウンタの値および第2のカウンタの値に依拠して可変の閾値を計算するよう構成され得る。したがって、時間スケーリングの「履歴」(および「品質」の履歴も)を、適度の計算量で考慮することができる。
たとえば、時間スケーラは、可変の閾値を得るために、初期の閾値に対して第1のカウンタの値に比例する値を加算し、かつ第2のカウンタの値に比例する値をそこから(たとえば加算結果から)減算するよう構成され得る。
以下では、時間スケーラ200のいくつかの実施形態において提供され得るいくつかの重要な機能性について要約する。しかしながら、以下に記載する機能性は、時間スケーラ200の必須の機能性ではない点に留意されたい。
ある実現例では、時間スケーラは、時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンの品質の計算または推定に依拠して、入力オーディオ信号の時間スケーリングを行うよう構成され得る。この場合、入力オーディオ信号の時間スケーリングされたバージョンの品質の計算または推定は、時間スケーリングによって生じると考えられる入力オーディオ信号の時間スケーリングされたバージョンにおけるアーチファクトの計算または推定を含む。しかしながら、アーチファクトの計算または推定は、たとえば重畳加算演算の品質を計算することにより間接的に実行され得る点に注目されたい。言い換えれば、入力オーディオ信号の時間スケーリングされたバージョンの品質の計算または推定は、入力オーディオ信号のサンプルの後続のブロックの重畳加算演算により生じると考えられる入力オーディオ信号の時間スケーリングされたバージョンにおけるアーチファクトの計算または推定を含み得る(当然ながら、なんらかの時間シフトが、サンプルの後続ブロックに適用され得る)。
たとえば、時間スケーラは、入力オーディオ信号のサンプルの後続の(かつおそらくは重複する)ブロックの類似のレベルに依拠して、入力オーディオ信号の時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンの品質を計算または推定するよう構成され得る。
好ましい実施形態では、時間スケーラは、入力オーディオ信号の時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンに可聴アーチファクトが存在するかどうかを計算または推定するよう構成され得る。可聴アーチファクトの推定は、上記のとおり間接的に行われてもよい。
品質制御の結果として、時間スケーリングは、時間スケーリングに適切な時点で実行され、かつ、時間スケーリングに適切でない時点では回避することができる。たとえば、時間スケーラは、時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンの品質の計算または推定が、不十分な品質(たとえば、特定の品質閾値を下回る品質)を示す場合、時間スケーリングを後続のフレームまたはサンプルの後続のブロックへ延期するよう構成され得る。こうして、時間スケーリングは、時間スケーリングに、より適した時点で実行され得るので、発生するアーチファクト(特に可聴アーチファクト)が低減される。言い換えれば、時間スケーラは、時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンの品質の計算または推定が不十分な品質を示す場合、時間スケーリングがより可聴でない時点まで、時間スケーリングを延期するよう構成され得る。
結論として、時間スケーラ200は、上記のとおり、いくつかの異なる態様で改良され得る。
また、時間スケーラ200は、任意にジッターバッファ制御100と組み合わせてもよく、ジッターバッファ制御100が、典型的には時間スケーラ200により実行されるサンプルベースの時間スケーリングを使用すべきかどうか、またはフレームベースの時間スケーリングを使用すべきかどうかを判断し得る点に注目されたい。
<図3によるオーディオデコーダ>
図3は、本発明の実施形態によるオーディオデコーダ300の模式ブロック図である。
オーディオデコーダ300は、入力オーディオ表現として考慮され、かつ、たとえばオーディオフレームの形式で表現され得る入力オーディオコンテンツ310を受信するよう構成される。また、オーディオデコーダ300は、それに基づいて、たとえば復号されたオーディオサンプルの形式で表現され得る復号されたオーディオコンテンツ312を供給する。オーディオデコーダ300は、たとえば、入力オーディオコンテンツ310を、たとえば、オーディオフレームの形式で受信するよう構成されるジッターバッファ320を含む。ジッターバッファ320は、オーディオサンプルのブロックを表す複数のオーディオフレームをバッファするよう構成される(1つのフレームがオーディオサンプルの1以上のブロックを表すことが可能で、かつ1つのフレームにより表されるオーディオサンプルは、論理的に複数の重複または非重複のオーディオサンプルのブロックへ細かく分けられ得る)。また、ジッターバッファ320は、「バッファされた」オーディオフレーム322を供給し、オーディオフレーム322が、入力オーディオコンテンツ310に含まれるオーディオフレームおよびジッターバッファにより生成または挿入されるフレーム(コンフォートノイズの発生をシグナリングするシグナリング情報を含む「不活性な」オーディオフレーム等)の両方を含み得る。オーディオデコーダ300は、ジッターバッファ320からバッファされたオーディオフレーム322を受信し、かつ、ジッターバッファから受信したオーディオフレーム322に基づいてオーディオサンプル332(たとえばオーディオフレームに関連するオーディオサンプルを有するブロック)を供給するデコーダコア330をさらに含む。また、オーディオデコーダ300は、デコーダコア330により供給されるオーディオサンプル332を受信し、かつ、それに基づいて、復号されたオーディオコンテンツ312を構成する時間スケーリングされたオーディオサンプル342を供給するよう構成されるサンプルベースの時間スケーラ340を含む。サンプルベースの時間スケーラ340は、オーディオサンプル332に基づいて(すなわちデコーダコアが供給するオーディオサンプルのブロックに基づいて)、時間スケーリングされたオーディオサンプル(たとえばオーディオサンプルのブロックの形式で)を供給するよう構成される。また、オーディオデコーダは、任意の制御350を含み得る。オーディオデコーダ300において使用されるジッターバッファ制御350は、たとえば図1によるジッターバッファ制御100と同じでもよい。言い換えれば、ジッターバッファ350は、信号適応的に、ジッターバッファ320により行われるフレームベースの時間スケーリングまたはサンプルベースの時間スケーラ340により行われるサンプルベースの時間スケーリングを選択するよう構成され得る。したがって、ジッターバッファ制御350は、入力オーディオコンテンツ310またはオーディオ信号110もしくはオーディオ信号110に関する情報としての入力オーディオコンテンツ310に関する情報を受信し得る。また、ジッターバッファ制御350は、制御情報112(ジッターバッファ制御100に関して記載したとおり)をジッターバッファ320へ供給し、かつジッターバッファ制御350は、ジッターバッファ制御100に関して記載したとおり、制御情報114をサンプルベースの時間スケーラ140へ供給し得る。したがって、ジッターバッファ320は、フレームベースの時間スケーリングを実行するためにオーディオフレームを減らすかまたは挿入するよう構成され得る。また、デコーダコア330は、コンフォートノイズの発生を示すシグナリング情報を保持するフレームに応答してコンフォートノイズ発生を実行するよう構成され得る。したがって、「不活性」フレーム(コンフォートノイズを発生すべきことを示すシグナリング情報を含む)のジッターバッファ320への挿入に応答して、コンフォートノイズをデコーダコア330により発生させ得る。言い換えれば、フレームベースの時間スケーリングの単純な形式により、「不活性」フレームのジッターバッファへの挿入(ジッターバッファ制御により供給される制御情報112に応答して実行され得る)によりトリガされるコンフォートノイズを含むフレームの発生が効果的に行われ得る。また、デコーダコアは、空のジッターバッファに応答して、「封じ込め」を実行するよう構成され得る。この封じ込めは、失ったオーディオフレームに先行する1以上のフレームのオーディオ情報に基づいて「消失」フレーム(空のジッターバッファ)について、オーディオ情報を生成することを含み得る。たとえば、消失オーディオフレームのオーディオコンテンツは、消失したオーディオフレームに先行する1以上のオーディオフレームのオーディオコンテンツの「継続するもの」と仮定して、予測を用いることができる。しかしながら、当該技術分野において知られるフレーム損失封じ込めのコンセプトのいずれかをデコーダコアにより使用することができる。結果として、ジッターバッファ制御350は、ジッターバッファ320が空の場合には、ジッターバッファ320(またデコーダコア330)に封じ込めを開始するよう命令し得る。しかしながら、デコーダコアは、明示的な制御信号なしでも、独自の情報に基づいて封じ込めを実行し得る。
また、サンプルベースの時間スケーラ340は、図2に関連して記載される時間スケーラ200に等しいことが可能である点に注目されたい。したがって、入力オーディオ信号210がオーディオサンプル332に相当し、かつ入力オーディオ信号の時間スケーリングされたバージョン212が時間スケーリングされたオーディオサンプル342に相当し得る。したがって、時間スケーラ340は、時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンの品質の計算または推定に依拠して、入力オーディオ信号の時間スケーリングを実行するよう構成され得る。サンプルベースの時間スケーラ340は、ジッターバッファ制御350により制御が可能で、ジッターバッファ制御によりサンプルベースのスケーラ340に供給される制御情報114が、サンプルベースの時間スケーリングを実行すべきか否かを示し得る。また、制御情報114は、たとえば、サンブルベースのスケーラ340により実行されるべき時間スケーリングの所望量を示す。
なお、時間スケーラ300は、ジッターバッファ制御100および/または時間スケーラ200に関連して記載された特徴および機能性のいずれかにより補完することができる点に注目されたい。また、オーディオデコーダ300は、また、たとえば図4から図15に関して本明細書に記載される他の特徴および機能性によっても補完され得る。
<図4によるオーディオデコーダ>
図4は、本発明の実施形態によるオーディオデコーダ400の模式ブロック図を示す。オーディオデコーダ400は、1以上のオーディオフレームのパケット化された表現を含み得るパケット410を受信するよう構成される。また、オーディオデコーダ400は、たとえばオーディオサンプルの形式で復号されたオーディオコンテンツ412を供給する。オーディオサンプルは、たとえば「PCM」形式(すなわちオーディオ波形のサンプルを表すデジタル値のシーケンスの形式等のパルス符号変調形式)で表され得る。
オーディオデコーダ400は、パケット410を受信し、それらに基づいて、非パケット化されたフレーム422を供給するよう構成されるデパッカ(depacker)420を含む。また、デパッカは、パケット410から、「不活性な」オーディオフレーム(すなわち、オーディオコンテンツの「正常な」詳細な復号化ではなく、コンフォートノイズ発生を用いるべきオーディオフレーム)をシグナリングするいわゆる「SIDフラグ」を抽出するよう構成される。SIDフラグ情報は、424で示す。また、デパッカは、リアルタイムトランスポートプロトコルタイムスタンプ(「RTP TS」とも称する)およびアライバルタイムスタンプ(「アライバルTS」とも称する)を供給する。タイムスタンプ情報は、426で示す。また、オーディオデコーダ400は、デパッカ420からの非パケット化されたフレーム422を受信し、かつ、バッファされたフレーム432(およびおそらくは挿入されたフレーム)をデコーダコア440へ供給するデジッターバッファ430(単にジッターバッファ430とも称す)を含む。また、デジッターバッファ430は、制御論理からフレームベースの(時間)スケーリングのための制御情報434を受信する。また、デジッターバッファ430は、プレイアウト遅延推定へスケーリングフィードバック情報436を供給する。オーディオデコーダ400は、また、デコーダコア440から復号されたオーディオサンプル442(たとえばパルスコード変調されたデータの形式で)を受信する時間スケーラ(「TSM」とも称す)450も含み、デコーダコア440は、デジッターバッファ430から受信したバッファまたは挿入されたフレーム432に基づいて、復号されたオーディオサンプル442を供給する。時間スケーラ450は、制御論理からサンプルベースの(時間)スケーリングのための制御情報444を受信し、プレイアウト遅延推定へ、スケーリングフィードバック情報446を供給する。時間スケーラ450は、パルスコード変調形式で時間スケーリングされたオーディオコンテンツを表し得る時間スケーリングされたサンプル448も供給する。オーディオデコーダ400は、時間スケーリングされたサンプル448を受信し、時間スケーリングされたサンプル448をバッファするPCMバッファ460をさらに含む。また、PCMバッファ460は、時間スケーリングされたサンプル448のバッファされたバージョンを復号されたオーディオコンテンツ412の表現として供給する。また、PCMバッファ460は、制御論理へ遅延情報462を供給し得る。
オーディオデコーダ400は、情報424(SIDフラグ等)ならびにRTPタイムスタンプおよびアライバルタイムスタンプを含むタイムスタンプ情報426を受信するターゲット遅延推定470をさらに含む。この情報に基づいて、ターゲット遅延推定470は、デジッターバッファ430、デコーダ440、時間スケーラ450およびPCMバッファ460により生じるはずの望ましい遅延等、望ましい遅延を記述するターゲット遅延情報472を供給する。たとえば、ターゲット遅延推定470は、遅延が不必要に大きく選択されず、しかしながらパケット410のなんらかのジッターを補償するのに十分なものになるようターゲット遅延情報472を計算または推定し得る。また、オーディオデコーダ400は、デジッターバッファ430からのスケーリングフィードバック情報436および時間スケーラ460からのスケーリングフィードバック情報446を受信するよう構成されるプレイアウト遅延推定480を含む。たとえば、スケーリングフィードバック情報436は、デジッターバッファにより実行される時間スケーリングを記述し得る。また、スケーリングフィードバック情報446は、時間スケーラ450により実行される時間スケーリングを記述する。スケーリングフィードバック情報446に関しては、時間スケーラ450により実行される時間スケーリングが典型的には、スケーリングフィードバック情報446により記述される実際の時間スケーリングが、サンプルベースのスケーリング情報444により記述され得る所望の時間スケーリングとは異なり得るように、信号適応的である点に注目されたい。結論として、スケーリングフィードバック情報436およびスケーリングフィードバック情報446は、本発明のいくつかの態様に従って提供される信号適応性のために、所望の時間スケーリングとは異なり得る実際の時間スケーリングを記述することができる。
また、オーディオデコーダ400は、オーディオデコーダの(主要な)制御を実行する制御論理490をさらに含む。制御論理490は、デパッカ420からの情報424(SIDフラグ等)を受信する。また、制御論理490は、ターゲット遅延推定470からのターゲット遅延情報472、プレイアウト遅延推定480からのプレイアウト遅延情報482(プレイアウト遅延情報482は、スケーリングフィードバック情報436および446に基づきプレイアウト遅延推定480が生成する実際の遅延を記述する)を受信する。また、制御論理490は(任意に)PCMバッファ460からの遅延情報462を受信する(代替的にはPCMバッファの遅延情報は、予め定められた量が可能)。受信した情報に基づいて、制御論理490は、フレームベースのスケーリング情報434およびサンプルベースのスケーリング情報442をデジッターバッファ430および時間スケーラ450に供給する。したがって、制御論理は、ターゲット遅延情報472およびプレイアウト遅延情報482に依拠して、オーディオコンテンツの1以上の特徴(たとえばSIDフラグにより保持されるシグナリングによりコンフォートノイズ発生が実行されるべき「不活性な」フレームがあるかどうかなど)を考慮して、信号適応的にフレームベースのスケーリング情報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)について説明する。
連続するプレイアウトを維持しながら、符号化音声またはオーディオデータを含むフレームを有する受信したパケット410をデコーダ440内へフィードするために使用できるジッターバッファ管理(JBM)解決法を説明する。たとえば、ボイスオーバインターネットプロトコール(VoIP)等のパケットベースの通信おいて、パケット(パケット410等)は、典型的には、送信時間が様々であり、送信中に失われるが、これが、到着間ジッターおよび受信機(オーディオデコーダ400を含む受信機)にとっての消失パケットにつながる。したがって、スタッターなしで連続する出力信号を可能にするために、ジッターバッファ管理およびパケット損失封じ込め解決法が求められる。
以下では、解決法の概略について説明する。記載のジッターバッファ管理の場合、受信RTPパケット(パケット410等)内の符号化データが、まず非パケット化され(たとえばデパッカ420を用いて)、かつ符号化データ(AMR−WB符号化フレーム内の音声データ等)を伴う結果として得られるフレーム(フレーム422等)がデジッターバッファ(デジッターバッファ430等)内へフィードされる。プレイアウトに新たなパルスコード変調データ(PCMデータ)が必要な場合、デコーダにより(デコーダ440等により)入手可能にする必要がある。この目的で、フレーム(フレーム432等)をデジッターバッファから(デジッターバッファ430等から)引き出す。デジッターバッファを使用することにより、到着時間の変動を補償できる。バッファの深さを制御するために、時間スケール変更(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等)により供給する。
<デパッカ>
以下では、デパッカ420について説明する。デパッカモジュールは、RTPパケット410を単一のフレーム(アクセス単位)422に分割する。また、パケット内における唯一または最初のフレームでない全フレームについてRTPタイムスタンプを計算する。たとえば、RTPパケットに含まれるタイムスタンプは、その最初のフレームに割り当てられる。集合の場合(すなわち1以上の単一のフレームを含むRTPパケットについて)、後続のフレームのタイムスタンプは、RTPタイムスタンプのスケールにより分割されるフレーム持続時間分増分される。また、RTPタイムスタンプに対して、各フレームは、RTPパケットが受信されたシステム時間(「アライバルタイムスタンプ」)でタグ付される。図示のとおり、たとえばターゲット遅延推定470に対して、RTPタイムスタンプ情報およびアライバルタイムスタンプ情報426が供給され得る。デパッカモジュールは、また、フレームが活性か、または無音挿入記述子(SID)を含むかどうか決定する。なお、非活性期間においては、SIDフレームのみが受信される場合もある。したがって、たとえばSIDフラグを含み得る情報424が制御論理490へ供給される。
<デジッターバッファ>
デジッターバッファモジュール430は、復号化(たとえばデコーダ440による)までネットワークで(TCP/IP型ネットワークを経由するなどして)受信されるフレーム422を記憶する。フレーム422は、ネットワーク上で起こった可能性のあるリーオーダリングを解除する昇順RTPタイムスタンプ順でソートされたキューに挿入される。キューのフロントのフレームをデコーダ440へフィードすることができ、その後、取り除かれる(たとえばデジッターバッファ430から)。キューが空で、フロント(キューの)のフレームと前に読み取ったフレームのタイムスタンプ差によりフレームが消失している場合、空のフレームを返して(たとえばデジッターバッファ430からデコーダ440へ)、パケット損失封じ込め(最後のフレームが活性の場合)またはデコーダモジュール440においてコンフォートノイズ発生(最後のフレームが「SID」または不活性の場合)をトリガする。
言い換えれば、デコーダ440は、たとえば活性の「SID」フラグを用いて、コンフォートノイズを使用すべきとフレームでシグナリングされる場合に、コンフォートノイズを発生するよう構成され得る。他方、デコーダは、前の(最後の)フレームが活性で(すなわち、コンフォートノイズ発生は不活性化)、ジッターバッファが空の場合(それにより空のフレームがジッターバッファ430によりデコーダ440へ付与される場合)、たとえば予測される(または外挿される)オーディオサンプルを供給することによりパケット損失封じ込めを実行するよう構成され得る。
デジッターバッファモジュール430は、時間伸張のためには、空のフレームをフロント(たとえばジッターバッファのキューの)へ加え、時間収縮のためには、フロント(たとえばジッターバッファのキューの)でフレームを落とすことによりフレームベースの時間スケーリングも支持する。不活性期間の場合、デジッターバッファは、「NO_DATA」フレームが加えられたかまたは落とされたかのようにふるまい得る。
<時間スケール変換(TSM)>
以下では、本明細書で単に時間スケーラまたはサンプルベースの時間スケーラとも称する時間スケール変換(TSM)について説明する。ビルトイン品質制御を伴う修正パケットベースのWSOLA(波形類似度に基づく重畳加算)(たとえば非特許文献1[Lia01]を参照)アルゴリズムを使用して、信号の時間スケール変更(単に時間スケーリングとも称する)を行う。いくつかの詳細な点については、たとえば以下に説明する図9においてみることができる。時間スケーリングのレベルは、信号に依拠し、スケーリングされると激しいアーチファクトを作り出すと考えられる信号は、品質制御により検知され、無音に近い低レベルの信号は、できる限りの範囲でスケーリングされる。周期的な信号等うまく時間スケーリングができる信号は、内部的に生成されたシフトによってスケーリングされる。このシフトは、正規化相互相関等の類似尺度から生成される。重畳加算(OLA)で、現在のフレームの終わり(本明細書では「サンプルの第2のブロック」とも称する)がシフトされ(たとえば、本明細書で「サンプルの第1のブロック」とも称する現在のフレームの始まりに対して)、フレームを短くするか長くする。
すでに述べたとおり、時間スケール変更(TSM)に関する追加の詳細については、以下に品質制御を伴う修正されたWSOLAを示す図9ならびに図10a、図10bおよび図11を参照して説明する。
<PCMバッファ>
以下では、PCMバッファについて説明する。時間スケール変更モジュール450は、時間変化スケールでデコーダモジュールにより出力されるPCMフレームの持続時間を変更する。たとえば、1024個のサンプル(または2048個のサンプル)が、オーディオフレーム432ごとにデコーダ440により出力され得る。対照的に、サンプルベースの時間スケーリングにより可変な数のサンプルがオーディオフレーム432ごとに時間スケーラ450により出力され得る。対照的に、ラウドスピーカサウンドカード(または一般にはサウンド出力装置)は、典型的には、20ms等の固定のフレーミングを想定する。したがって、ファーストインファーストアウトの挙動の追加バッファを用いて、タイムスケーラの出力サンプル448に固定のフレーミングを適用する。
つながり全体を見ると、このPCMバッファ460は、追加の遅延を作り出さない。むしろ、遅延は、デジッターバッファ430とPCMバッファ460の間で共有されるだけである。それにもかかわらず、PCMバッファ460にストアされるサンプルの数をできるだけ少なく保つことが目標とされるのは、これにより、デジッターバッファ430にストアされるフレーム数が増え、したがって、遅い損失の可能性が低減されるからである(デコーダは、後で受信される消失フレームを封じ込める)。
図5に示す擬似プログラムコードは、PCMバッファレベルを制御するアルゴリズムを示す。図5の擬似プログラムコードから分かるように、サウンドカードのフレームサイズが、サンプルレート(「sampleRate」)に基づいて計算され、例として、フレーム持続時間は、20msと仮定する。したがって、サウンドカードフレームごとのサンプルの数がわかる。次いで、PCMバッファは、PCMバッファにおけるサンプル数(「pcmBuffer_nReadableSamples()」)が、もはやサウンドカードフレームごとのサンプル数(「soundCardFrameSize」)より小さくないという時点まで、オーディオフレーム432(「accessUnit」とも称する)を復号することにより満たされる。まず、フレーム(「accessUnit」とも称する)を参照番号510で示すとおり、デジッターバッファ430から取得する(または要求される)。次いで、オーディオサンプルの「フレーム」を、参照番号512で示すとおり、デジッターバッファから要求されたフレーム432を復号することにより入手する。したがって、復号されたオーディオサンプルのフレーム(たとえば442で示す)が得られる。次いで、復号されたオーディオサンプル442のフレームに対して時間スケール変更が行われ、それにより、時間スケーリングされたオーディオサンプル448の「フレーム」が得られるようになっており、これについては、参照番号514で示す。なお、時間スケーリングされたオーディオサンプルのフレームは、オーディオサンプルの数は、時間スケーラ450に入力される復号されたオーディオサンプル442のフレームよりも多くの数のオーディオサンプルまたは少ない数のオーディオサンプル含んでもよい。次いで、時間スケーリングされたオーディオサンプル448のフレームを、参照番号516で示すようにPCMバッファ460へ挿入する。
この手続きを、十分な数の(時間スケーリングされた)オーディオサンプルがPCMバッファ460内に利用可能になるまで繰り返す。十分な数の(時間スケーリングされた)サンプルがPCMバッファ内で利用可能になると、時間スケーリングされたオーディオサンプルの「フレーム」(サウンドカード等のサウンドプレイバック装置により必要とされるフレーム長を有する)を、参照番号520および522で示すようにPCMバッファ460から読みだして、サウンドプレイバック装置(サウンドカード等)へ転送する。
<ターゲット遅延推定>
以下では、ターゲット遅延推定器470により実行され得るターゲット遅延推定について説明する。ターゲット遅延は、前のフレームが再生される時点と、ターゲット遅延推定モジュール470の履歴に現在含まれる全フレームに比べて、ネットワーク上で送信遅延が最も低ければ、このフレームが、受信が可能であったと考えられる時点との間の所望のバッファ遅延を指定する。ターゲット遅延を推定するため、長期と短期のジッター推定部を1つずつ、2つの異なるジッター推定器が使用される。
<長期ジッター推定>
長期ジッターを計算するため、FIFOデータ構造を使用し得る。FIFOに記憶されるタイムスパンは、DTX(不連続送信モード)を使用した場合にストアされるエントリの数とは異なるかもしれない。そのため、FIFOのウィンドウサイズは、2つ態様で限定される。最大で500のエントリ(=秒あたり50パケットで10秒)および最大で10秒のタイムスパン(最新と最古パケット間のRTPタイムスタンプ差)を含み得る。より多くのエントリをストアする場合、最古のエントリを除去する。ネットワークで受信されるRTPパケットごとに、エントリがFIFOへ加えられる。エントリは、3つの値、すなわち、遅延、オフセットおよびRTPタイムスタンプを含む。これらの値は、図6の擬似コードに示されるように、受信時間(たとえばアライバルタイムスタンプにより表される)およびRTPパケットのRTPタイムスタンプから計算される。
参照番号610および612で示すように、2つのパケット(たとえば後続パケット)のRTPタイムスタンプの時間差を計算し(「rtpTimeDiff」を算出)、かつ2つのパケット(たとえば後続パケット)の受信タイムスタンプ間の差を計算する(「rcvTimeDiff」を算出)。また、RTPタイムスタンプは、参照番号614で示すとおり、送信装置の時間軸から受信装置の時間軸へ変換され、「rtpTimeTicks」を算出する。同様に、参照番号616で示すとおり、RTP時間差(RTPタイムスタンプの差)を受信装置の受信部時間スケール/時間軸へ変換し、「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と長期FIFOとの間の異なるオフセットをこの結果について補償する。
shortTermJitterTmp+=shortTermFifo1_getMinOffset();
shortTermJitterTmp−=longTermFifo_getMinOffset();
この結果を、200以下のエントリのウィンドウサイズで4秒以下のタイムスパンの他のFIFOへ加える。最後に、FIFOにストアされる最大値をフレームサイズの整数倍に増大し、短期ジッターとして使用する。
shortTermFifo2_add(shortTermJitterTmp);
shortTermJitter=ceil(shortTermFifo2_getMax()/20.f)*20;
<長期/短期ジッター推定の組み合せによるターゲット遅延推定>
ターゲット遅延(たとえばターゲット遅延情報472)を計算するために、長期および短期ジッター推定(上に規定した「longTermJitter」および「shortTermJitter」等)を現在の状態に依拠して様々な態様に組み合わせる。活性信号(またはコンフォートノイズ発生が用いられない信号部分)については、ある範囲(たとえば「targetMin」および「targetMax」により規定される)をターゲット遅延として使用する。DTX中およびDTX後のスタートアップについては、2つの異なる値をターゲット遅延(たとえば「targetDtx」)および「targetStartUp」)として計算する。
異なるターゲット遅延値がどのように計算されるかについての詳細は、たとえば図7に見ることができる。参照番号710および712で示すとおり、活性信号の範囲を割り当てる「targetMin」および「targetMax」を短期ジッター(「shortTermJitter」)および長期ジッター(「longTermJitter」)に基づいて計算する。DTX(「targetDtx」)中のターゲット遅延の計算を参照番号714で示し、かつスタートアップ(たとえばDTX後)(「targetStartUp」)についてのターゲット遅延値の計算は、参照番号716で示す。
<プレイアウト遅延推定>
以下では、プレイアウト遅延推定器480により行われ得るプレイアウト遅延推定について説明する。プレイアウト遅延は、前のフレームが再生される時点と、ターゲット遅延推定モジュールの履歴に現在含まれる全フレームに比べてネットワーク上での送信遅延が最低であった場合にこのフレームを受信することができたと考えられる時点との間のバッファ遅延を指定する。これは、以下の式を用いてミリ秒で計算される。
playoutDelay=prevPlayoutOffset−longTermFifo_getMinOffset()+pcmBufferDelay;
ミリ秒の現在のシステム時間およびミリ秒に変換されたフレームのRTPタイムスタンプを用いて、デジッターバッファモジュール430から受信フレームがポップするたびに可変の「prevPlayoutOffset」を再計算する。
prevPlayoutOffset=sysTime−rtpTimestamp
フレームが入手可能でない場合、「prevPlayoutOffset」が期限切れになることを回避するため、フレームベースの時間スケーリングの場合には、変数を更新する。フレームベースの時間伸張の場合には、「prevPlayoutOffset」をフレームの持続時間だけ増分させ、フレームベースの時間収縮については、「PrevPlayoutOffset」をフレームの持続時間だけ減分する。可変の「pcmBufferDelay」は、PCMバッファモジュールにおいてバッファされる持続時間を記述する。
<制御論理>
以下では、制御(制御論理490等)について詳細に説明する。ただし、図8による制御論理800は、ジッターバッファ制御100に関して説明した特徴および機能性のいずれかにより補完でき、かつ逆も同様である点に注目されたい。また、制御論理800は、図4による制御論理490の場所を占めるかもしれないが、追加の特徴および機能性を任意に含んでもよい点に注目されたい。また、図4に関連して上に記載した特徴および機能性のすべてが、図8による制御論理800内にも存在している必要はなく、その逆もまた同様である。
図8は、ハードウェアでも当然実現され得る制御論理800のフローチャートを示す。
制御論理800は、復号化のためフレームを引き出すステップ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において、次のフレームが活性でないかまたは次のフレームが依然として入手可能でないとわかった場合には、「ターゲット遅延推定」のセクションで上記に説明したとおり、実際のプレイアウト遅延(可変の「playoutDelay」により規定される)とDTXターゲット遅延(可変の「targetDtx」により表される)との差として、ステップ844において可変の「ギャップ」が設定される。対照的に、チェック840において、次のフレームが活性であると分かった場合、ステップ846で、可変の「ギャップ」がプレイアウト遅延(可変の「playoutDelay」により表される)とスタートアップターゲット遅延(可変「targetStartUp」により表される)との差に設定される。
ステップ850では、まず、可変「ギャップ」の大きさが、閾値より大きいか(または等しいか)をチェックする。これは、チェック852において行われる。可変の「ギャップ」の大きさが、閾値より小さい(または等しい)とわかった場合、時間スケーリングは、行われない。対照的に、チェック852において、可変「ギャップ」の大きさが閾値より大きい(または実装に応じて閾値に等しい)とわかった場合、スケーリングが必要であると判断される。他のチェック854では、可変「ギャップ」の値が正であるか負であるか(すなわち、可変「ギャップ」がゼロより大きいか否か)がチェックされる。可変の「ギャップ」の値がゼロより大きくない(すなわち負)場合、フレームがデジッターバッファに挿入され(ステップ856においてフレームベースの時間伸張)、それにより、フレームベースの時間スケーリングが行われる。たとえば、これは、フレームベースのスケーリング情報434によりシグナリングされ得る。対照的に、チェック854において、可変「ギャップ」の値がゼロより大きい、すなわち正とわかった場合、フレームがデジッターバッファから落とされ(ステップ856におけるフレームベースの時間収縮)、それにより、フレームベースの時間スケーリングが行われる。これは、フレームベースのスケーリング情報434を用いてシグナリングされ得る。
以下では、第2の判断ブランチ860について説明する。チェック862では、プレイアウト遅延が、たとえば、可変の「targetMax」によって記述される最大ターゲット値(すなわち、ターゲット間隔の上限)より大きいか(または等しいか)をチェックする。プレイアウト遅延が最大ターゲット値より大きいか(または等しい)とわかった場合、時間収縮が時間スケーラ450により行われ(ステップ866、TSMを用いるサンプルベースの時間収縮)、それによりサンプルベースの時間スケーリングが行われる。これは、たとえばサンプルベースのスケーリング情報444によりシグナリングされ得る。これは、たとえば、サンプルベースのスケーリング情報444によってシグナリングされ得る。しかしながら、チェック862において、プアレイアウト遅延が、最大ターゲット遅延より小さい(または等しい)とわかると、チェック864が行われ、プレイアウト遅延が、たとえば、可変の「targetMin」により記述される最小ターゲット遅延より小さいか(または等しいか)がチェックされる。プレイアウト遅延が最小ターゲット遅延より小さい(または等しい)とわかった場合、時間スケーラ450により時間伸張が行われ(ステップ866、TSMを用いるサンプルベースの時間伸張)、それによりサンプルベースの時間スケーリングが行われる。これは、たとえば、サンプルベースのスケーリング情報444によりシグナリングされ得る。しかしながら、チェック864で、プレイアウト遅延が最小ターゲット遅延より小さくなく(または等しくない)とわかった場合は、時間スケーリングは、行われない。
結論として、図8に示す制御論理モジュール(ジッターバッファ管理制御論理とも称する)は、実際の遅延(プレイアウト遅延)と所望の遅延(ターゲット遅延)と比較する。有意味な差がある場合には、時間スケーリングをトリガする。コンフォートノイズの間(たとえば、SIDフラグが活性の場合)、フレームベースの時間スケーリングがトリガされ、デジッターバッファモジュールにより実行される。活性の期間の間、サンプルベースの時間スケーリングがトリガされ、TSMモジュールにより実行される。
図12は、ターゲットよびプレイアウト遅延推定の例を示す。グラフ1200の横軸1210が時間を示し、グラフ1200の縦軸1212がミリ秒で遅延を示す。「targetMin」および「targetMax」の系列が、ウィンドウ化されたネットワークジッターに続くターゲット遅延推定モジュールにより所望される遅延の範囲を作り出す。プレイアウト遅延「playoutDelay」は、典型的には、この範囲内にとどまるが、適応は、信号適応的時間スケール変更のために、わずかに遅れるかもしれない。
図13は、図12のトレースで実行される時間スケーリング演算を示す。グラフ1300の横軸1310は、時間を秒で示し、縦軸1312は、時間スケーリングをミリ秒で示す。正の値は、グラフ1300における時間伸張を示し、負の値は、時間収縮を示す。バーストの間、両方のバッファとも一度空になり、1つの隠蔽フレームが伸張のために挿入される(35秒で+20ミリ秒)。すべての他の適応については、信号適応的なアプローチのために、可変スケールが得られる、より高品質のサンプルベースの時間スケーリング法を使用できる。
結論として、ターゲット遅延は、特定のウィンドウにわたってジッターの増大に応答して(かつジッターの減少にも応答して)動的に適応される。ターゲット遅延が増大または減少する場合、典型的には、時間スケーリングが行われ、時間スケーリングのタイプに関する判断は、信号適応的に行われる。現在のフレーム(または前のフレーム)が活性であることを前提として、サンプルベースの時間スケーリングを行い、サンプルベースの時間スケーリングの実際の遅延は、アーチファクトを低減するために信号適応的に適応される。したがって、サンプルベースの時間スケーリングが適用される場合には、典型的には、固定量の時間スケーリングは存在しない。しかしながら、ジッターバッファが空の場合、「例外的な取り扱いとして」、前のフレーム(または現在のフレーム)が活性であっても、隠蔽フレーム(フレームベースの時間スケーリングを構成する)を挿入することが必要である(または推奨される)。
<図9による時間スケール変更>
以下では、時間スケール変更に関する詳細について、図9を参照して説明する。なお、同じ時間スケーリング変更については、時間スケール変更が、5.4.3のセクションにおいて簡単に説明された。しかしながら、たとえば、時間スケーラ150により実行され得る時間スケーリング変更については、以下により詳細に説明する。
図9は、本発明の実施形態による品質制御を伴う修正されたWSOLAのフローチャートを示す。なお、図9による時間スケーリング900は、図2による時間スケーラ200に関して説明した特徴および機能性のいずれかにより補完することが可能で、その逆も同様である。また、図9による時間スケーリング900は、図3によるサンプルベースの時間スケーラ340に相当し、かつ図4による時間スケーラ450に相当する。また、図9による時間スケーリング900は、サンプルベースの時間スケーリング866に代わり得る。
時間スケーリング(または時間スケーラまたは時間スケーラ変更器)900は、復号された(オーディオ)サンプル910を、たとえばパルスコード変調(PCM)形式で受信する。復号化サンプル910は、復号化サンプル442、オーディオサンプル332または入力オーディオ信号210に相当し得る。また、時間スケーラ900は、たとえばサンプルベースの時間スケーリング情報444に相当し得る制御情報912を受信する。制御情報912は、たとえばターゲットスケールおよび/または最小フレームサイズ(たとえばPCMバッファ460へ供給されるべきオーディオサンプル448のフレームの最小サンプル数)を記述する。時間スケーラ900は、スイッチ(または選択)920を含み、時間収縮を実行すべきか、時間伸張を実行すべきか、または時間スケーリングを行うべきでないかについて、ターゲットスケールに関する情報に基づいて判断する。たとえば、切り替え(またはチェックまたは選択)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は、最高類似度に関する情報946を用いる重畳加算演算により、品質閾値X(一定または可変)を超える(または等しい)オーディオ品質がもたらされるかどうかを計算または推定する品質制御950へ転送される。品質制御950によって、重畳加算の(または等価的には重畳加算により得られる入力オーディオ信号の時間スケーリングされたバージョンの)品質が品質閾値Xを下回る(または等しくなる)と考えられることがわかると、時間スケーリングを省略し、スケーリングされていないオーディオサンプルが時間スケーラ900により出力される。対照的に、品質制御950により、最高類似度に関する(または最高類似度の位置に関する)情報946を用いる重畳加算演算の品質が品質閾値X以上になると考えられることがわかると、重畳加算演算954が実行され、重畳加算演算において適用されるシフトが、最高類似度に関する(または最高類似度の位置に関する)情報946により記述される。したがって、オーディオサンプルのスケーリングされたブロック(またはフレーム)が、重畳加算演算により提供される。
時間スケーリングされたオーディオサンプル956のブロック(またはフレーム)は、たとえば時間スケーリングされたサンプル448に相当し得る。同様に、品質制御950が、入手できる品質が、品質閾値X以下になると考えられると判断した場合に供給される、スケーリングされていないオーディオサンプル952のブロック(またはフレーム)も、「時間スケーリングされた」サンプル448に相当し得る(この場合、実際には、時間スケーリングは行われない)。
対照的に、選択936において、入力オーディオサンプル910のブロック(またはフレーム)のエネルギがエネルギ閾値Y未満(または等しい)とわかると、重畳加算演算962が行われ、重畳加算演算において使用されるシフトは、最小フレームサイズ(最小フレームサイズ情報により記述される)により規定され、かつスケーリングされたオーディオサンプル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の値が高い信号は、長期信号特性(リズム等)に関する品質を下げることが考えられる多くのフレームを続けてスケーリングすることにならないようにする必要がある。
したがって、以下の式を用いて動的最小品質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を参照)。同様に、参照番号1112で示すように、nScaled(「可変qualityRise」として示す)の最大カウンタ値は、4に初期設定される。カウンタnNotScaledの最大値は、4に初期設定される(可変「qualityRed」)。参照番号1114を参照。次いで、参照番号1116で示すとおり、位置情報pを類似尺度により抽出する。次いで、品質値qは、参照番号1116で示された式に従って、位置値pにより記述される位置について計算される。品質閾値qMinは、参照番号1118で示すように、可変のqMinInitialに依拠して、ならびにカウンタ値nNotScaledおよびnScaledにも依拠して計算される。図示のとおり、品質閾値qMinについての初期値qMinInitialは、カウンタnNotScaledの値に比例する値だけ減少され、値nScaledに比例する値だけ増加される。図示のとおり、カウンタ値nNotScaledおよびnScaledの最大値が、品質閾値qMinの最大増分および品質閾値qMinの最大減分も決定する。次いで、参照番号1120で示すように、品質値qが品質閾値qMin以上であるかどうかチェックが行われる。
そうである場合、参照番号1122で示すとおり、重畳加算演算を行う。また、カウンタ変数nNotScaledを減少させ、前記カウンタ変数が確実に負にならないようにする。また、カウンタ変数nScaledを増加させ、nScaledが変数(または定数)qualityRiseにより規定される上限を確実に超えないようにする。カウンタ変数の適応については、参照番号1124および1126に示す。
対照的に、参照番号1120で示す比較において、品質値qが、品質閾値qMinより小さいことがわかると、重畳加算演算の実行を省略し、カウンタ変数nNotScaledが変数(または定数)qualityRedにより規定される閾値を超えていないことを斟酌して、カウンタ変数nNotScaledを増加させ、カウンタ変数nScaledが負にならないことを斟酌して、カウンタ変数nScaledを減少させる。品質が不十分な場合のカウンタ変数の適応については、参照番号1128および1130で示す。
<図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において得られるエネルギ値がエネルギ閾値より小さくない(または等しくない)とわかった場合、類似尺度を用いて、サーチ領域内のテンプレートセグメントのベストマッチをサーチする。たとえば、類似尺度は、相互相関、正規化された相互相関、平均大きさ差分関数、または二乗誤差の和が可能である。以下では、このベストマッチのサーチに関するいくつかの詳細について説明し、時間伸張または時間収縮がどのように得られるかも説明する。
ここで、グラフの参照番号1040を参照する。第1の表現1042は、時間t1で開始し、かつ、時間t2で終了するサンプルのブロック(またはフレーム)を示す。図から分かるとおり、時間t1で開始し、かつ、時間t2で終了するサンプルのブロックは、論理的には、時間t1で開始し、時間t3で終了するサンプルの第1のブロックと、時間t4で開始し、時間t2で終了するサンプルの第2のブロックに分けることができる。しかしながら、参照番号1044で示すとおり、サンプルの第2のブロックは、サンプルの第1のブロックに対して時間シフトされる。たとえば、第1の時間シフトの結果、サンプルの時間シフトされた第2のブロックは、時間t4’で開始し、時間t2’で終了する。したがって、サンプルの第1のブロックとサンプルの時間シフトされた第2のブロックとの間では、時間t4’とt3’との間で、時間の重複が存在する。しかしながら、たとえば時間t4’とt3’との間の重複領域(または時間t4’とt3’との間の重複領域の一部内)において、サンプルの第1のブロックとサンプルの第2のブロックの時間シフトされたバージョンの間には良い一致は存在しない(高い類似度がない)。言い換えれば、時間スケーラは、たとえば、参照番号1044に示すとおり、サンプルの第2のブロックを時間シフトさせ、時間t4’とt3との間の重複領域(または重複領域の一部)について、類似の尺度を決定する。また、時間スケーラは、参照番号1046で示すように、追加の時間シフトもサンプルの第2のブロックに対して適用することが可能で、それにより、サンプルの第2のブロックの(2回)時間シフトされたバージョンは、時間t4”で始まり、時間t2”で終了する(t2”>t2’>t2であり、同様にt4”>t4’>t4)。時間スケーラは、また、たとえば時間t4”と時間t3との間(またはたとえば時間t4”とt3との間の一部内)で、サンプルの第1のブロックとサンプルの第2のブロックの2回時間シフトされたバージョンとの間の類似度を表す(量的)類似度情報を決定し得る。したがって、時間スケーラは、サンプルの第2のブロックの時間シフトされたバージョンのどの時間シフトについて、サンプルの第1のブロックと重複する領域において類似度が最大化されるか(または少なくとも閾値より大きくなるか)を評価する。したがって、サンプルの第1のブロックとサンプルの第2のブロックの時間シフトされたバージョンとの間の類似度が最大化される(または少なくとも十分大きくなる)と言う意味での「ベストマッチ」が得られる時間シフトが決定できる。したがって、時間的に重複する領域内で(たとえば時間t4”とt3の間で)、サンプルの第1のブロックとサンプルの第2のブロックの2回時間シフトされたバージョンとの間に十分な類似度が存在する場合、使用された類似度の尺度により決定される信頼度で、サンプルの第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’で終了する。また、時間t13’と時間t13との間で、サンプルの第1のブロックとサンプルの第2のブロックの1回時間シフトされたバージョンの間に時間的な重複が存在する。しかしながら、時間スケーラは、時間t13’と時間t13との間で(または時間t13’と時間t13との間の時間の一部について)、サンプルの第1のブロックとサンプルの第2のブロックの(1回)時間シフトされたバージョンの類似度を表す(量的)類似度情報を決定し、類似度が特に良好ではないことを見つける。さらに、時間スケーラは、参照番号1056に示すとおり、サンプルの第2のブロックをさらに時間シフトして、それによりサンプルの第2のブロックの2回時間シフトされたバージョンを得ることができ、これは、時間t13”で開始し、時間t12”で終了する。こうして、時間t13”とt13との間で、サンプルの第1のブロックとサンプルの第2のブロックの(2回)時間シフトされたバージョンとの間に重複が存在する。時間スケーラは、時間t13”とt13との間で、(量的)類似度情報が、サンプルの第1のブロックとサンプルの第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で示す)は、異なる時間シフト(たとえば時間シフトp、2*p、3/2*pおよび1/2*p)について得られ得る4つの相関値の組み合せを使用して計算され得る。したがって、一致品質を表す(量的)情報(q)を得ることができる。
ここで、図10bを参照して、チェック1064を実行し、一致品質を記述する量的情報qを品質閾値qMinと比較する。このチェックまたは比較1064は、変数qで表す一致品質が、可変品質閾値qMinより大きいか(または等しいか)を評価し得る。チェック1064において、一致品質が十分である(すなわち可変品質閾値以上である)ことがわかると、最も高い類似度の位置(たとえば変数pにより記述)を用いて重畳加算演算が適用される(ステップ1068)。したがって、重畳加算演算が、たとえば、サンプルの第1のブロックとサンプルの第2のブロックの時間シフトされたバージョンとの間で行われ、「ベストマッチ」が得られる(すなわち類似度情報の最高値が得られる)。詳細については、例えば、グラフ1040および1050に関する説明を参照する。重畳加算の適用については、図11の参照番号1122にも示される。また、フレームカウンタの更新は、ステップ1072で行われる。たとえば、カウンタ変数「nNotScaled」およびカウンタ変数「nScaled」が、図11を参照して、参照番号1124と1126で示すように更新される。対照的に、チェック1064において、一致品質が不十分である(たとえば、可変の品質閾値qminより小さい(または等しい))とわかると、重畳加算演算を回避する(延期する等)。それは、参照番号1076で表示される。この場合、フレームカウンタも、ステップ1080に示すように更新される。フレームカウンタの更新は、たとえば、図11の参照番号1128および1130に示すように行われてもよい。また、図10aおよび図10bを参照して記載される時間スケーラは、参照番号1084で示す、可変品質閾値qMinを計算してもよい。可変品質閾値qMinの計算は、たとえば、図11に参照番号1118で示すように行われ得る。
結論として、図10aおよび図10bを参照して、その機能性がフローチャートの形で説明された時間スケーラ1000は、品質制御メカニズムを用いてサンプルベースの時間スケーリングを行うことができる(ステップ1060から1084)。
<図14による方法>
図14は、入力オーディオコンテンツに基づいて、復号されたオーディオコンテンツの供給を制御するための方法のフローチャートを示す。図14による方法1400は、信号適応的に、フレームベースの時間スケーリングまたはサンプルベースの時間スケーリングを選択するステップ1410を含む。
また、方法1400は、たとえばジッターバッファ制御に関し、本明細書に記載の特徴および機能性のいずれかにより補うことができる点に注目されたい。
<図15による方法>
図15は、入力オーディオ信号の時間スケーリングされたバージョンを提供するための方法1500の模式ブロック図である。方法は、入力オーディオ信号の時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンの品質を計算または推定するステップ1510を含む。また、方法1500は、時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンの品質の計算または推定に依拠して入力オーディオ信号の時間スケーリングを実行するステップ1520を含む。
方法1500は、たとえば、時間スケーラに関して本明細書に記載の特徴および機能性のいずれかにより補うことができる。
<結論>
結論として、本発明による実施形態は、高品質の音声およびオーディオ通信のためのジッターバッファ管理方法および装置を創出する。方法および装置は、MPEG ELD、AMR−WBまたは未来のコーデック等の通信コーデックと共に使用することができる。言い換えれば、本発明による実施形態は、パケットベースの通信における到着間ジッターを補償するための方法および装置を創出する。
本発明の実施形態は、たとえば「3GPP EVS」と呼ばれる技術において適用することができる。
以下では、本発明による実施形態のいくつかの態様について簡単に述べる。
本明細書に記載のジッターバッファ管理解決法は、システムを創出し、いくつかの記載のモジュールが使用可能で、上記の態様で組み合わされる。また、本発明の態様は、モジュール自体の特徴にも関連することに注目されたい。
本発明の重要な態様は、適応的ジッターバッファ管理のための時間スケーリング方法を信号適用的に選択することである。記載の解決法は、両方の方法の効果を併せ持つように、制御論理においてフレームベースの時間スケーリングおよびサンプルベースの時間スケーリングを組み合わせる。使用可能な時間スケーリングの方法は、以下のとおりである。
・DTXにおけるコンフォートノイズの挿入/削除。
・低信号エネルギ(たとえば低信号エネルギのフレームについて)における相関なしの重畳加算(OLA)。
・活性信号のためのWSOLA。
・空のジッターバッファの場合の伸張のため隠蔽フレームの挿入。
本明細書に記載の解決法は、フレームベースの方法(コンフォートノイズ挿入および削除、ならびに伸張のための隠蔽フレームの挿入)をサンプルベースの方法(活性信号のためのWSOLAおよび低エネルギ信号のための非同期化重畳加算(OLA))と組み合わせるメカニズムを記載する。図8において、本発明の実施形態による時間スケール変更のための最適な技術を選択する制御論理を示す。
本明細書に記載の他の態様によれば、適応ジッターバッファ管理のために複数のターゲットを使用する。記載の解決法においては、ターゲット遅延推定に、単一のターゲットプレイアウト遅延を計算するための様々な最適化基準を採用する。これらの基準により、まず、高品質または低遅延のために最適化された様々なターゲットが得られる。
ターゲットプレイアウト遅延を計算するための複数のターゲットは、以下のとおりである。
・品質:遅い損失を回避(ジッタを評価)
・遅延:遅延の制限(ジッタを評価)
遅延は、制限されるが、遅い損失も回避され、さらには、ジッターバッファにおける小さい予備を維持して、デコーダのための高品質エラー封じ込めを可能にする内挿の確率を高めるように、ターゲット遅延推定を最適化することが、記載の解決法の1つの(任意の)態様である。
他の(任意の)態様は、遅いフレームでTCX封じ込めを回復させることに関する。遅れて到着するフレームは、現時点では多くのジッターバッファ管理解決法により廃棄される。遅れたフレームを使用するためのメカニズムについては、ACELPベースのデコーダ(非特許文献2[Lef03])に記載される。ある態様によれば、このようなメカニズムは、一般に、デコーダ状態の回復を助けるために、ACELPフレーム以外のフレーム、たとえばTCXのような周波数領域符号化フレームにも使用される。したがって、遅れて受信され、すでに封じ込められているフレームも、デコーダ側の回復を向上させるためにデコーダへ送られる。
本発明による他の重要な態様は、上記の品質適応的時間スケーリングである。
さらに、結論として、本発明による実施形態は、パケットベースの通信において、ユーザーの体験を向上させるために使用できる完全なジッターバッファ管理解決法を創出する。提示の解決法は、発明者らにとって既知の他のどのジッターバッファ管理の解決法よりも優れた性能であることがわかった。
<実装の代替例>
いくつかの態様について、装置に関連して説明したが、これらの態様が対応する方法の説明も表すことは明らかであり、その場合、ブロックまたは装置が方法ステップまたは方法ステップの特徴に相当する。同様に、方法ステップに関連して説明した態様も、対応の装置の対応のブロックもしくはアイテムまたは特徴の説明を表す。方法ステップの一部または全部を、たとえばマイクロプロセッサ、プログラマブルコンピュータまたは電子回路等のハードウェア装置により(またはこれを使用して)実行できる。いくつかの実施形態では、最も重要な方法ステップの1以上をこのような装置により実行することができる。
発明の符号化オーディオ信号は、デジタル記憶媒体上に記憶することができ、または無線送信媒体もしくはインターネット等の有線送信媒体等の送信媒体上で送信することができる。
特定の実装要件に依拠して、発明の実施形態を、ハードウェアまたはソフトウェアで実装することができる。実装は、それぞれの方法が実行されるように、プログラマブルコンピュータシステムと協働する(または協働することができる)電子的に可読な制御信号を記憶した、フロッピー(登録商標)ディスク、DVD、ブルーレイ、CD、ROM、PROM、EPROM、EEPROMまたはフラッシュメモリ等のデジタル記憶媒体を用いて行うことができる。
本発明によるいくつかの実施形態は、本明細書に記載の方法の1つが実行されるように、プログラマブルコンピュータシステムと協働することができる、電子的に可読な制御信号を有するデータキャリアを含む。
一般に、本発明の実施形態は、プログラムコードを有するコンピュータプログラム製品として実現することが可能で、プログラムコードは、コンピュータプログラム製品がコンピュータ上で実行されると、方法の1つを実行するように動作する。プログラムコードは、たとえば、機械可読なキャリア上に記憶することができる。
他の実施形態は、機械可読なキャリア上に記憶される、本明細書に記載の方法の1つを実行するためのコピュータプログラムを含む。
したがって、言い換えれば、本発明の方法の実施形態は、コンピュータプログラムがコンピュータ上で実行された時に、本明細書に記載の方法の1つを実行するためのプログラムコードを有するコンピュータプログラムである。
したがって、本発明の方法の他の実施形態は、本明細書に記載の方法の1つを実行するためのコンピュータプログラムを記録するデータキャリア(またはデジタル記憶媒体またはコンピュータ可読媒体)である。データキャリア、デジタル記憶媒体または記録媒体は、典型的には、有形でかつ/または非一時的なものである。
したがって、本発明の方法の他の実施形態は、本明細書に記載の方法の1つを実行するためのコンピュータプログラムを表すデータストリームまたは信号のシーケンスである。データストリームまたは信号のシーケンスは、たとえば、インターネットを経由する等データ通信接続を経由して転送されるように構成され得る。
他の実施形態は、たとえば、本明細書に記載の方法の1つを実行するよう構成または適合されたコンピュータまたはプログラマブル論理装置等の処理手段を含む。
他の実施形態は、本明細書に記載の方法の1つを実行するためのコンピュータプログラムをインストールしたコンピュータを含む。
本発明による他の実施形態には、本明細書に記載の方法の1つを実行するためのコンピュータプログラムを受信機へ転送(たとえば電子的または光学的に)するよう構成される装置またはシステムを含む。受信機は、たとえばコンピュータ、携帯装置、メモリ装置等が可能である。装置またはシステムは、たとえばコンピュータプログラムを受信機へ転送するためのファイルサーバを含み得る。
いくつかの実施形態において、プログラマブル論理装置(フィールドプログラマブルゲートアレイ等)を使用して、本明細書に記載の方法の機能性の一部または全部を実行することができる。いくつかの実施形態では、フィールドプログラマブルゲートアレイが、本明細書に記載の方法の1つを実行するために、マイクロプロセッサと協働し得る。一般に、方法は、なんらかのハードウェア装置により実行されることが好ましい。
本明細書に記載の装置は、ハードウェア装置を用いて、またはコンピュータ、またはハードウェア装置とコンピュータの組み合せを使用して実行することができる。
本明細書に記載の方法は、ハードウェア装置を用いて、またはコンピュータを用いて、またはハードウェア装置とコンピュータの組み合せを使用して実現することができる。
上記の実施形態は、本発明の原則を説明するに過ぎない。当業者には、本明細書に記載の構成および詳細の変形例および修正例が明らかになることは当然である。したがって、特許請求の範囲によってのみ限定され、本明細書における実施形態の記載および説明により提示される特定の詳細によっては限定されないことを意図する。

Claims (27)

  1. 入力オーディオコンテンツ(310、410)に基づいて、復号されたオーディオコンテンツ(312、412)の供給を制御するためのジッターバッファ制御(100、350、490)であって、
    ジッターバッファ制御が、信号適応的にフレームベースの時間スケーリングまたはサンプルベースの時間スケーリングを選択するよう構成され、それにより、フレームベースの時間スケーリングまたはサンプルベースの時間スケーリングが用いられるか否かの決定がオーディオ信号の特性に適応される、ジッターバッファ制御。
  2. フレームベースの時間スケーリングを使用する場合、ジッターバッファ(320、430)の深さを制御するために、オーディオフレームが減らされ、または挿入され、サンプルベースの時間スケーリングを使用する場合には、オーディオ信号部分の時間シフトされた重畳加算(954、1068)が実行される、請求項1に記載のジッターバッファ制御(100、350、490)。
  3. ジッターバッファ制御が、フレームベースの時間スケーリング、サンプルベースの時間スケーリングおよび時間スケーリングの不活性化の間で信号適応的に切り替わるよう構成される、請求項1または請求項2に記載のジッターバッファ制御(100、350、490)。
  4. ジッターバッファ制御が、ジッターバッファ(320、430)の深さを制御するために、フレームベースの時間スケーリングまたはサンプルベースの時間スケーリングを選択するよう構成される、請求項1から請求項3のいずれか1項に記載のジッターバッファ制御(100、350、490)。
  5. ジッターバッファ制御が、前のフレームが不活性であった場合、コンフォートノイズ挿入またはコンフォートノイズ削除(856)を選択するよう構成される、請求項1から請求項4のいずれか1項に記載のジッターバッファ制御(100、350、490)。
  6. コンフォートノイズ挿入により、ジッターバッファ(320、430)へコンフォートノイズフレームが挿入されることになり、コンフォートノイズ削除により、ジッターバッファからコンフォートノイズフレームが除去されることになる、請求項5に記載のジッターバッファ制御(100、350、490)。
  7. それぞれのフレームがコンフォートノイズの発生を示すシグナリング情報を保持する場合、それぞれのフレームが不活性であると考えられる、請求項5または請求項6に記載のジッターバッファ制御(100、350、490)。
  8. ジッターバッファ制御は、前のフレームが活性であった場合、オーディオ信号部分の時間シフトされた重畳加算(954、1068)を選択するよう構成される、請求項1から請求項7のいずれか1項に記載のジッターバッファ制御(100、350、490)。
  9. オーディオ信号部分の時間シフトされた重畳加算(954、1068)が、オーディオサンプルのブロックの長さより短い、またはオーディオサンプルのブロックの長さの4分の1より短い、または2つのオーディオサンプル以下である分解能で、入力オーディオコンテンツの後続フレームに基づいて得られるオーディオサンプルのブロック間の時間シフトの調節を可能にするように適用される、請求項8に記載のジッターバッファ制御(100、350、490)。
  10. ジッターバッファ制御は、オーディオサンプルのブロックが、活性であるが無音のオーディオ信号部分を表すかどうかを決定(930、936、1010、1014)するよう構成され、かつジッターバッファ制御が、重畳加算モード(962、1018)を選択するよう構成され、無音のオーディオ信号部分を表すオーディオサンプルのブロックとオーディオサンプルの前または後続のブロックとの間の時間シフトが、無音のオーディオ信号部分を表すオーディオサンプルのブロックについて予め定められた最大値に設定される、請求項8または請求項9に記載のジッターバッファ制御(100、350、490)。
  11. ジッターバッファ制御が、オーディオサンプルのブロックが活性で、かつ、非無音のオーディオ信号部分を表すかどうか決定(930、936、1010、1014)し、かつ重畳加算モード(942、950、954、1030、1060、1064、1068)を選択するよう構成され、入力オーディオコンテンツの後続のフレームに基づいて決定されるオーディオサンプルのブロック間の時間シフトが、信号適応的に決定される、請求項8から請求項10のいずれか1項に記載のジッターバッファ制御(100、350、490)。
  12. ジッターバッファ制御が、時間伸張が必要で、かつ、ジッターバッファが空であるとする決定に応答して、パケット損失リカバリメカニズムを用いて生成される隠蔽フレームの挿入を選択するよう構成される、請求項1から請求項11のいずれか1項に記載の、ジッターバッファ制御(100、350、490)。
  13. ジッターバッファ制御が、コンフォートノイズ発生に関連する不連続送信が現在使用されるか、または前のフレームに使用されたかどうかに依拠して、フレームベースの時間スケーリングまたはサンプルベースの時間スケーリングを選択するよう構成される、請求項1から請求項12のいずれか1項に記載のジッターバッファ制御(100、350、490)。
  14. ジッターバッファ制御が、コンフォートノイズ発生が現在使用される、または前のフレームに使用された場合、フレームベースの時間スケーリングを選択し、かつコンフォートノイズ発生が現在使用されない、または前のフレームに使用されなかった場合、サンプルベースの時間スケーリングを選択するよう構成される、請求項1から請求項13のいずれか1項に記載のジッターバッファ制御(100、350、490)。
  15. ジッターバッファ制御が、コンフォートノイズ発生に関連する不連続送信が現在使用される、または前のフレームに使用された場合に、時間スケーリングのために、フレームベースのコンフォートノイズ挿入またはフレームベースのコンフォートノイズ削除(856)を選択するよう構成され、
    ジッターバッファ制御が、現在のオーディオ信号部分が、活性ではあるが、エネルギ閾値以下の信号エネルギを含む場合で、かつジッターバッファが空でない場合、または前のオーディオ信号部分が活性ではあるが、エネルギ閾値以下の信号エネルギを含む場合で、かつジッターバッファが空でない場合、時間スケーリングのために、予め定められた時間シフトを用いる重畳加算演算(962、1018)を選択するよう構成され、
    ジッターバッファ制御が、現在のオーディオ信号部分が、活性でかつエネルギ閾値以上の信号エネルギを含む場合で、かつジッターバッファが空でない場合、または前のオーディオ信号部分が活性でかつエネルギ閾値以上の信号エネルギを含む場合で、かつジッターバッファが空でない場合、時間スケーリングのために、信号適応的時間シフト(954、1068)を用いる重畳加算演算を選択するよう構成され、かつ
    ジッターバッファ制御が、現在のオーディオ信号部分が活性でかつジッターバッファが空の場合、または前のオーディオ信号部分が活性でかつジッターバッファが空の場合、時間スケーリングのために、パケット損失リカバリメカニズムを用いて生成される隠蔽フレームの挿入を選択するよう構成される、請求項1から請求項14のいずれか1項に記載のジッターバッファ制御(100、350、490)。
  16. ジッターバッファ制御が、現在のオーディオ信号部分が活性でかつエネルギ閾値以上の信号エネルギを含む場合で、かつジッターバッファが空でない場合、または前のオーディオ信号部分が活性でかつエネルギ閾値以上の信号エネルギを含む場合で、かつジッターバッファが空でない場合、時間スケーリングのため、信号適応的時間シフトおよび品質制御メカニズム(950、1060、1064、1072、1084)を用いる重畳加算演算(942、950、954、1030、1060、1064、1068、1072、1084)を選択するよう構成される、請求項1から請求項15のいずれか1項に記載のジッターバッファ制御(100、350、490)。
  17. 入力オーディオコンテンツ(310、410)に基づいて、復号されたオーディオコンテンツ(312、412)を供給するためのオーディオデコーダ(300、400)であって、
    オーディオサンプルのブロックを表す複数のオーディオフレームをバッファするよう構成されるジッターバッファ(320、430)と、
    ジッターバッファから受信したオーディオフレーム(322、432)に基づいてオーディオサンプルのブロック(332、442)を供給するよう構成されるデコーダコア(330、440)と、
    デコーダコアによって供給されるオーディオサンプルのブロックに基づいてオーディオサンプルの時間スケーリングされたブロック(342、448)を供給するよう構成されるサンプルベースの時間スケーラ(340、450)と、
    請求項1から請求項15のいずれか1項に記載のジッターバッファ制御(100、350、490)とを含み、
    ジッターバッファ制御が、信号適応的に、ジッターバッファにより行われるフレームベースの時間スケーリング、またはサンブルベースの時間スケーラにより行われるサンプルベースの時間スケーリングを選択するよう構成される、オーディオデコーダ。
  18. ジッターバッファ(320、430)が、フレームベースの時間スケーリングを実行するために、オーディオフレームを減らす、または挿入するよう構成される、請求項17に記載のオーディオデコーダ(300、400)。
  19. デコーダコア(330、440)が、コンフォートノイズの発生を示すシグナリング情報を保持するフレームに応答して、コンフォートノイズの発生を実行するよう構成され、かつ
    デコーダコアが、空のジッターバッファに応答して封じ込めを実行するよう構成される、請求項17または請求項18に記載のオーディデコーダ。
  20. サンプルベースの時間スケーラ(340、450)が、時間スケーリングにより入手可能な入力オーディオ信号の時間スケーリングされたバージョンの品質の計算または推定(950、1060)に依拠して、入力オーディオ信号の時間スケーリングを実行するよう構成される、請求項17から請求項19のいずれか1項に記載のオーディオデコーダ(300、400)。
  21. 入力オーディオコンテンツに基づいて、復号されたオーディオコンテンツの供給を制御するための方法(1400)であって、
    信号適応的にフレームベースの時間スケーリングまたはサンプルベースの時間スケーリングを選択し、それにより、フレームベースの時間スケーリングまたはサンプルベースの時間スケーリングが用いられるか否かの決定がオーディオ信号の特性に適応されるステップ(1410)を含む、方法。
  22. コンピュータプログラムがコンピュータ上で実行されている時に、請求項21に記載の方法を実行するためのコンピュータプログラム。
  23. 入力オーディオコンテンツ(310,410)に基づいて、復号されたオーディオコンテンツ(312,412)の供給を制御するためのジッターバッファ制御(100,350,490)であって、
    ジッターバッファ制御は、信号適応的に、フレームベースの時間スケーリングまたはサンプルベースの時間スケーリングを選択するように構成され、
    フレームベースの時間スケーリングを使用する場合、ジッターバッファ(320,430)の深さを制御するために、オーディオフレームが、減少され、または挿入され、サンプルベースの時間スケーリングを使用する場合には、オーディオ信号部分の時間シフトされた重畳加算(954、1068)が実行され、
    ジッターバッファ制御は、コンフォートノイズ発生に関連した不連続送信が、現在使用され、または前のフレームについて使用された場合、時間スケーリングのために、フレームベースのコンフォートノイズの挿入またはフレームベースのコンフォートノイズの削除(856)を選択するよう構成され、
    ジッターバッファ制御は、現在のオーディオ信号部分が活性であるがエネルギ閾値以下の信号エネルギを含み、かつジッターバッファが空でない場合、または前のオーディオ信号部分が活性であるがエネルギ閾値以下の信号エネルギを含み、かつジッターバッファが空でない場合、時間スケーリングのために、予め決定された時間シフト(962,1018)を用いる重畳加算演算を選択するように構成され、
    ジッターバッファ制御は、現在のオーディオ信号部分が活性であり、かつ、エネルギ閾値以上の信号エネルギを含み、かつジッターバッファが空でない場合、または前のオーディオ信号部分が活性であり、かつ、エネルギ閾値以上の信号エネルギを含み、かつジッターバッファが空でない場合、時間スケーリングのために、信号適応的時間シフト(954,1068)を使用する重畳加算演算を選択するように構成され、
    ジッターバッファ制御は、現在のオーディオ信号部分が活性であり、かつ、ジッターバッファが空でない場合、または前のオーディオ信号部分が活性であり、かつ、ジッターバッファが空でない場合、時間スケーリングのために、隠蔽フレームの挿入を選択するように構成される、ジッターバッファ制御。
  24. 入力オーディオコンテンツ(310,410)に基づいて、復号されたオーディオコンテンツ(312,412)の供給を制御するためのジッターバッファ制御(100,350,490)であって、
    ジッターバッファ制御は、信号適応的に、フレームベースの時間スケーリングまたはサンプルベースの時間スケーリングを選択するように構成され、
    フレームベースの時間スケーリングを使用する場合、ジッターバッファ(320,430)の深さを制御するために、オーディオフレームが、減少され、または挿入され、サンプルベースの時間スケーリングを使用する場合には、オーディオ信号部分の時間シフトされた重畳加算(954、1068)が実行され、
    ジッターバッファ制御は、現在のオーディオ信号部分が活性であり、エネルギ閾値以上の信号エネルギを含み、かつジッターバッファが空でない場合、または前のオーディオ信号部分が活性であり、エネルギ閾値以上の信号エネルギを含み、かつジッターバッファが空でない場合、時間スケーリングのために、信号適応的時間シフトおよび品質制御メカニズム(950,1060,1064,1072,1084)を用いる重畳加算演算(942,950,954,1030,1060,1064,1068,1072,1084)を選択するように構成される、ジッターバッファ制御。
  25. 入力オーディオコンテンツに基づいて、復号されたオーディオコンテンツの供給を制御するための方法(1400)であって、
    方法は、信号適応的に、フレームベースの時間スケーリングまたはサンプルベースの時間スケーリングを選択するステップ(1410)を含み、
    フレームベースの時間スケーリングを使用する場合、ジッターバッファ(320,430)の深さを制御するために、オーディオフレームが、減少され、または挿入され、サンプルベースの時間スケーリングを使用する場合には、オーディオ信号部分の時間シフトされた重畳加算(954、1068)が実行され、
    方法は、
    コンフォートノイズ発生に関連した不連続送信が、現在使用され、または前のフレームについて使用された場合、時間スケーリングのために、フレームベースのコンフォートノイズの挿入またはフレームベースのコンフォートノイズの削除(856)を選択するステップと、
    現在のオーディオ信号部分が活性であるがエネルギ閾値以下の信号エネルギを含み、かつジッターバッファが空でない場合、または前のオーディオ信号部分が活性であるがエネルギ閾値以下の信号エネルギを含み、かつジッターバッファが空でない場合、時間スケーリングのために、予め決定された時間シフト(962,1018)を用いる重畳加算演算を選択するステップと、
    現在のオーディオ信号部分が活性であり、かつ、エネルギ閾値以上の信号エネルギを含み、かつジッターバッファが空でない場合、または前のオーディオ信号部分が活性であり、かつ、エネルギ閾値以上の信号エネルギを含み、かつジッターバッファが空でない場合、時間スケーリングのために、信号適応的時間シフト(954,1068)を使用する重畳加算演算を選択するステップと、
    現在のオーディオ信号部分が活性であり、かつ、ジッターバッファが空である場合、または前のオーディオ信号部分が活性であり、かつ、ジッターバッファが空である場合、時間スケーリングのために、隠蔽フレームの挿入を選択するステップとを含む、方法。
  26. 入力オーディオコンテンツに基づいて、復号されたオーディオコンテンツの供給を制御するための方法(1400)であって、
    方法は、信号適応的に、フレームベースの時間スケーリングまたはサンプルベースの時間スケーリングを選択するステップ(1410)を含み、
    フレームベースの時間スケーリングを使用する場合、ジッターバッファ(320,430)の深さを制御するために、オーディオフレームが、減少され、または挿入され、サンプルベースの時間スケーリングを使用する場合には、オーディオ信号部分の時間シフトされた重畳加算(954、1068)が実行され、
    方法は、
    現在のオーディオ信号部分が活性であり、エネルギ閾値以上の信号エネルギを含み、かつジッターバッファが空でない場合、または前のオーディオ信号部分が活性であり、エネルギ閾値以上の信号エネルギを含み、かつジッターバッファが空でない場合、時間スケーリングのために、信号適応的時間シフトおよび品質制御メカニズム(950,1060,1064,1072,1084)を用いる重畳加算演算(942,950,954,1030,1060,1064,1068,1072,1084)を選択するステップとを含む、方法。
  27. コンピュータプログラムがコンピュータ上で実行されるときに、請求項25または請求項26に記載の方法を実行するためのコンピュータプログラム。
JP2016520457A 2013-06-21 2014-06-18 ジッターバッファ制御、オーディオデコーダ、方法およびコンピュータプログラム Active JP6251464B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP13173159 2013-06-21
EP13173159.8 2013-06-21
EP14167061 2014-05-05
EP14167061.2 2014-05-05
PCT/EP2014/062789 WO2014202647A1 (en) 2013-06-21 2014-06-18 Jitter buffer control, audio decoder, method and computer program

Publications (3)

Publication Number Publication Date
JP2016527540A JP2016527540A (ja) 2016-09-08
JP2016527540A5 JP2016527540A5 (ja) 2017-12-07
JP6251464B2 true JP6251464B2 (ja) 2017-12-20

Family

ID=50976647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016520457A Active JP6251464B2 (ja) 2013-06-21 2014-06-18 ジッターバッファ制御、オーディオデコーダ、方法およびコンピュータプログラム

Country Status (17)

Country Link
US (3) US9997167B2 (ja)
EP (1) EP3011692B1 (ja)
JP (1) JP6251464B2 (ja)
KR (1) KR101953613B1 (ja)
CN (1) CN105518778B (ja)
AU (1) AU2014283320B2 (ja)
BR (1) BR112015031825B1 (ja)
CA (3) CA2964362C (ja)
ES (1) ES2642352T3 (ja)
MX (1) MX352748B (ja)
MY (1) MY170699A (ja)
PL (1) PL3011692T3 (ja)
PT (1) PT3011692T (ja)
RU (1) RU2663361C2 (ja)
SG (1) SG11201510459YA (ja)
TW (1) TWI582759B (ja)
WO (1) WO2014202647A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103888381A (zh) 2012-12-20 2014-06-25 杜比实验室特许公司 用于控制抖动缓冲器的装置和方法
PL3321935T3 (pl) * 2013-06-21 2019-11-29 Fraunhofer Ges Forschung Przelicznik czasu, dekoder sygnału audio, sposób i program komputerowy wykorzystujący kontrolę jakości
PL3011692T3 (pl) * 2013-06-21 2017-11-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sterowanie buforem rozsynchronizowania, dekoder sygnału audio, sposób i program komputerowy
CN105099949A (zh) 2014-04-16 2015-11-25 杜比实验室特许公司 基于对延迟抖动和对话动态的监视的抖动缓冲器控制
WO2016119793A1 (en) * 2015-01-28 2016-08-04 Dynastrom Aps Synchronization in audio playback network independent of system clock
US9948578B2 (en) * 2015-04-14 2018-04-17 Qualcomm Incorporated De-jitter buffer update
KR102422794B1 (ko) * 2015-09-04 2022-07-20 삼성전자주식회사 재생지연 조절 방법 및 장치와 시간축 변형방법 및 장치
US9929928B1 (en) * 2015-12-24 2018-03-27 Microsemi Solutions (U.S.), Inc. Packet transmitter and method for timestamping packets
WO2017129270A1 (en) * 2016-01-29 2017-08-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for improving a transition from a concealed audio signal portion to a succeeding audio signal portion of an audio signal
KR20250124257A (ko) * 2017-01-10 2025-08-19 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 오디오 디코더, 오디오 인코더, 디코딩된 오디오 신호를 제공하기 위한 방법, 인코딩된 오디오 신호를 제공하기 위한 방법, 오디오 스트림, 오디오 스트림 제공기, 및 스트림 식별자를 사용하는 컴퓨터 프로그램
EP3382703A1 (en) 2017-03-31 2018-10-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and methods for processing an audio signal
US11595316B2 (en) * 2018-06-01 2023-02-28 Apple Inc. Adaptive and seamless playback buffer adjustment for streaming content
CN109062537B (zh) * 2018-08-30 2021-07-30 倪兴炜 一种音频延迟的降低方法、装置、介质及设备
CN110113270B (zh) * 2019-04-11 2021-04-23 北京达佳互联信息技术有限公司 网络通信的抖动控制方法、装置、终端及存储介质
US10614810B1 (en) * 2019-09-06 2020-04-07 Verbit Software Ltd. Early selection of operating parameters for automatic speech recognition based on manually validated transcriptions
CN110659776B (zh) * 2019-09-25 2022-04-19 南京国电南自维美德自动化有限公司 具有自适应时间尺度的新能源发电功率预测方法及系统
EP3805924B1 (en) 2019-10-11 2025-04-16 Unify Beteiligungsverwaltung GmbH & Co. KG Method of scheduling an additional new processing task to be executed by a processor, scheduler, and central processing unit
CN111787268B (zh) * 2020-07-01 2022-04-22 广州视源电子科技股份有限公司 音频信号的处理方法、装置、电子设备及存储介质
WO2022108979A1 (en) 2020-11-17 2022-05-27 Dolby Laboratories Licensing Corporation Timestamp smoothing to remove jitter
CA3244883A1 (en) * 2022-02-28 2023-08-31 Arris Enterprises Llc METHOD FOR MEASURING SYNCHRONIZATION MAINTENANCE PERFORMANCE IN AN R-PHY SYSTEM
US12438830B2 (en) * 2022-05-25 2025-10-07 Cisco Technology, Inc. Providing high assurance of end-to-end CPRI circuit in a high jitter packet based fronthaul network
EP4682875A4 (en) * 2023-06-08 2026-04-22 Lg Electronics Inc DISPLAY DEVICE AND ITS OPERATING METHOD

Family Cites Families (85)

* 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
SE517156C2 (sv) * 1999-12-28 2002-04-23 Global Ip Sound Ab System för överföring av ljud över paketförmedlade nät
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
SE518941C2 (sv) * 2000-05-31 2002-12-10 Ericsson Telefon Ab L M Anordning och förfarande relaterande till kommunikation av tal
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
US7010073B2 (en) * 2001-01-19 2006-03-07 Qualcomm, Incorporated Delay lock loops for wireless communication systems
CA2443837C (en) 2001-04-13 2012-06-19 Dolby Laboratories Licensing Corporation High quality time-scaling and pitch-scaling of audio signals
ATE422744T1 (de) * 2001-04-24 2009-02-15 Nokia Corp Verfahren zum ändern der grösse eines zitterpuffers und zur zeitausrichtung, kommunikationssystem, empfängerseite und transcoder
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
US20050273321A1 (en) 2002-08-08 2005-12-08 Choi Won Y 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
US7337108B2 (en) 2003-09-10 2008-02-26 Microsoft Corporation System and method for providing high-quality stretching and compression of a digital audio signal
US20050094628A1 (en) * 2003-10-29 2005-05-05 Boonchai Ngamwongwattana Optimizing packetization for minimal end-to-end delay in VoIP networks
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
US20050137729A1 (en) 2003-12-18 2005-06-23 Atsuhiro Sakurai Time-scale modification stereo audio signals
US7359324B1 (en) * 2004-03-09 2008-04-15 Nortel Networks Limited Adaptive jitter buffer control
JP2007532053A (ja) * 2004-03-16 2007-11-08 スノーシヨア・ネツトワークス・インコーポレーテツド ジッター・バッファーの管理
US7424026B2 (en) * 2004-04-28 2008-09-09 Nokia Corporation Method and apparatus providing continuous adaptive control of voice packet buffer at receiver terminal
EP2189978A1 (en) * 2004-08-30 2010-05-26 QUALCOMM Incorporated Adaptive De-Jitter Buffer for voice over IP
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
US7720677B2 (en) * 2005-11-03 2010-05-18 Coding Technologies Ab Time warped modified transform coding of audio signals
CN101305417B (zh) * 2005-11-07 2011-08-10 艾利森电话股份有限公司 移动电信网络中的方法和装置
US8832540B2 (en) * 2006-02-07 2014-09-09 Nokia Corporation Controlling a time-scaling of an audio signal
BRPI0709877B1 (pt) 2006-04-04 2019-12-31 Dolby Laboratories Licensing Corp método e aparelho para controlar uma característica de intensidade acústica particular de um sinal de áudio
WO2007124582A1 (en) 2006-04-27 2007-11-08 Technologies Humanware Canada Inc. Method for the time scaling of an audio signal
US20070263672A1 (en) * 2006-05-09 2007-11-15 Nokia Corporation Adaptive jitter management control in decoder
JP2008042889A (ja) 2006-06-16 2008-02-21 Ericsson Ab インテリジェント音声制限方法、システム及びノード
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> 音声合成方法、装置、プログラム
WO2008069719A1 (en) * 2006-12-06 2008-06-12 Telefonaktiebolaget Lm Ericsson (Publ) Jitter buffer control
US8078456B2 (en) 2007-06-06 2011-12-13 Broadcom Corporation Audio time scale modification algorithm for dynamic playback speed control
US8401865B2 (en) * 2007-07-18 2013-03-19 Nokia Corporation Flexible parameter update in audio/speech coded signals
JP5174182B2 (ja) * 2007-11-30 2013-04-03 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 再生遅延推定
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
KR101400588B1 (ko) 2008-07-11 2014-05-28 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 시간 워프 활성 신호의 제공 및 이를 이용한 오디오 신호의 인코딩
PL2352147T3 (pl) 2008-07-11 2014-02-28 Fraunhofer Ges Forschung Urządzenie i sposób kodowania sygnału audio
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
WO2011086067A1 (en) 2010-01-12 2011-07-21 Fraunhofer Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder, audio decoder, method for encoding and decoding an audio information, and computer program obtaining a context sub-region value on the basis of a norm of previously decoded spectral values
BR112012022741B1 (pt) 2010-03-10 2021-09-21 Fraunhofer-Gesellschaft Zur Fõrderung Der Angewandten Forschung E.V. Decodificador de sinal de áudio, codificador de sinal de áudio e métodos utilizando uma codificação de contorno da deformação no tempo dependente da taxa de amostragem
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
CN103988255B (zh) * 2011-10-20 2016-03-02 Lg电子株式会社 管理抖动缓存器的方法和使用其的抖动缓存器
GB2520866B (en) * 2011-10-25 2016-05-18 Skype Ltd Jitter buffer
US9787416B2 (en) * 2012-09-07 2017-10-10 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
PL3321935T3 (pl) * 2013-06-21 2019-11-29 Fraunhofer Ges Forschung Przelicznik czasu, dekoder sygnału audio, sposób i program komputerowy wykorzystujący kontrolę jakości
PL3011692T3 (pl) * 2013-06-21 2017-11-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sterowanie buforem rozsynchronizowania, dekoder sygnału audio, sposób i program komputerowy

Also Published As

Publication number Publication date
US20180190302A1 (en) 2018-07-05
RU2016101339A (ru) 2017-07-26
AU2014283320A1 (en) 2016-02-11
MY170699A (en) 2019-08-26
JP2016527540A (ja) 2016-09-08
SG11201510459YA (en) 2016-01-28
HK1224447A1 (en) 2017-08-18
US9997167B2 (en) 2018-06-12
BR112015031825A2 (pt) 2020-06-16
TW201517026A (zh) 2015-05-01
US20160180857A1 (en) 2016-06-23
AU2014283320B2 (en) 2016-09-15
CA2916121C (en) 2019-01-29
CA2964362C (en) 2020-03-31
MX2015017364A (es) 2016-04-06
CA2964368A1 (en) 2014-12-24
KR20160021886A (ko) 2016-02-26
US11580997B2 (en) 2023-02-14
RU2663361C2 (ru) 2018-08-03
CA2964368C (en) 2020-03-31
TWI582759B (zh) 2017-05-11
EP3011692A1 (en) 2016-04-27
PT3011692T (pt) 2017-09-22
BR112015031825B1 (pt) 2021-12-28
US10714106B2 (en) 2020-07-14
KR101953613B1 (ko) 2019-03-04
EP3011692B1 (en) 2017-06-14
PL3011692T3 (pl) 2017-11-30
MX352748B (es) 2017-12-06
CN105518778A (zh) 2016-04-20
WO2014202647A1 (en) 2014-12-24
CN105518778B (zh) 2019-09-13
US20200321014A1 (en) 2020-10-08
CA2916121A1 (en) 2014-12-24
ES2642352T3 (es) 2017-11-16
CA2964362A1 (en) 2014-12-24

Similar Documents

Publication Publication Date Title
US11580997B2 (en) Jitter buffer control, audio decoder, method and computer program
JP6317436B2 (ja) 時間スケーラ、オーディオデコーダ、方法および品質制御を用いるコンピュータプログラム
HK1224447B (en) Jitter buffer control, audio decoder, method and computer program
HK1223727B (en) Time scaler, audio decoder, method and a computer program using a quality control

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20160217

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170418

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171016

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20171016

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171125

R150 Certificate of patent or registration of utility model

Ref document number: 6251464

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250