(57)【要約】  ビデオフレームを積極的にドロップする方法およびシステムが開示される。方法は、コンピュータによって、第１の装置にキャプチャされるビデオフレームのビデオフレームキャプチャ時間スタンプを記録することと、コンピュータによって、ビデオフレームキャプチャ時間スタンプをキャプチャされるビデオフレームと関連付けることと、コンピュータによって、ビデオフレームキャプチャ時間スタンプをビデオフレームのビデオフレーム目標時間スタンプと比較することと、比較に基づいて、ビデオフレームキャプチャ時間スタンプとビデオフレーム目標時間スタンプとの間の時間差が所定の時間値の範囲外である場合、コンピュータによって、ビデオフレームをドロップすることと、を含む。
2015536594.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実行されて、該コンピュータに、ビデオフレームを積極的にドロップするための方法を実行させるコンピュータ実行可能な命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記方法が、
前記コンピュータによって、第１の装置でキャプチャされるビデオフレームのビデオフレームキャプチャ時間スタンプを記録することと、
前記コンピュータによって、前記ビデオフレームキャプチャ時間スタンプをキャプチャされる前記ビデオフレームに関連付けることと、
前記コンピュータによって、前記ビデオフレームキャプチャ時間スタンプを、前記ビデオフレームのビデオフレームキャプチャ目標時間スタンプと比較することと、
前記比較に基づいて、前記ビデオフレームキャプチャ時間スタンプと前記ビデオフレームキャプチャ目標時間スタンプとの間の時間差が所定の時間値の範囲外である場合、前記コンピュータによって、前記ビデオフレームをドロップすることと、を含む、非一時的コンピュータ可読記憶媒体。
【請求項２】
前記方法が、
前記比較に基づいて、前記ビデオフレームキャプチャ時間スタンプと前記ビデオフレームキャプチャ目標時間スタンプとの間の前記時間差が、前記所定の時間値の範囲内にある場合、前記コンピュータによって、前記ビデオフレームキャプチャ時間スタンプおよび前記ビデオフレームを、前記第１の装置から第２の装置に送信することをさらに含む、請求項１に記載の非一時的コンピュータ可読記憶媒体。
【請求項３】
前記方法が、
前記コンピュータによって、後続してキャプチャされるビデオフレームと関連付けられる後続のビデオフレーム目標時間スタンプを更新することをさらに含む、請求項１に記載の非一時的コンピュータ可読記憶媒体。
【請求項４】
前記方法が、
前記コンピュータによって、後続してキャプチャされるビデオフレームの後続のビデオフレームキャプチャ時間スタンプを推定することであって、前記推定することが、ビデオフレームキャプチャ履歴データに基づき推定することをさらに含む、請求項１に記載の非一時的コンピュータ可読記憶媒体。
【請求項５】
第１の装置にキャプチャされるビデオフレームのビデオフレームキャプチャ時間スタンプを記録するように構成された、コンピュータと連結したビデオフレームキャプチャ時間スタンプ記録器と、
前記ビデオフレームキャプチャ時間スタンプを、キャプチャされる前記ビデオフレームと関連付けるように構成された、前記コンピュータと連結したビデオフレームキャプチャ時間スタンプ関連付け器と、
前記ビデオフレームキャプチャ時間スタンプを、前記ビデオフレームのビデオフレーム目標時間スタンプと比較するように構成された、前記コンピュータと連結したビデオフレームキャプチャ時間スタンプ比較器と、
前記ビデオフレームキャプチャ時間スタンプと前記ビデオフレーム目標時間スタンプとの間の時間差に応じて前記ビデオフレームを操作するように構成された、前記コンピュータと連結したビデオフレーム操作器であって、前記ビデオフレームキャプチャ時間スタンプと前記ビデオフレーム目標時間スタンプとの間の前記時間差が所定の時間値の範囲外である場合、前記ビデオフレームをドロップするように構成されたビデオフレームドロップ器を含むビデオフレーム操作器と、を含む、ビデオフレームを積極的にドロップするための装置。
【請求項６】
前記ビデオフレーム情報送信器が、
前記比較に基づいて、前記ビデオフレームキャプチャ時間スタンプと前記ビデオフレーム目標時間スタンプとの間の時間差が、前記所定の値の範囲内にある場合、前記ビデオフレームキャプチャ時間スタンプおよび前記ビデオフレームを、前記第１の装置から第２の装置に送信するように構成されたビデオフレーム送信器、をさらに含む、請求項５に記載の装置。
【請求項７】
後続してキャプチャされるビデオフレームと関連付けられる後続のビデオフレーム目標時間スタンプを更新するように構成された、前記コンピュータと連結したビデオフレーム目標時間スタンプ更新器、をさらに含む、請求項５に記載の装置。
【請求項８】
後続してキャプチャされるビデオフレームの後続のビデオフレームキャプチャ時間スタンプを推定するように構成された、前記コンピュータと連結したビデオフレームキャプチャ時間スタンプ推定器であって、前記推定することがビデオフレームキャプチャ履歴データに基づくものであるビデオフレームキャプチャ時間スタンプ推定器、をさらに含む、請求項５に記載の装置。
【請求項９】
コンピュータによって実行されて、該コンピュータに、ビデオフレームを積極的にドロップするための方法を実行させるコンピュータ実行可能な命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記方法が、
前記コンピュータによって、コンピュータネットワーク層内のビデオフレームパケットスケジュールバッファにアクセスすることと、
前記コンピュータによって、前記ビデオフレームパケットスケジュールバッファのビデオフレームパケットスケジュールバッファ状態を受信することであって、前記ビデオフレームパケットスケジュールバッファ状態が、前記ビデオフレームパケットスケジュールバッファが、ネットワークの混雑のためにビデオフレームパケットをドロップする寸前であることを示すものであり、前記ビデオフレームパケットが、少なくとも１つのビデオフレームを含むものである、受信することと、
前記少なくとも１つのビデオフレームのビデオフレームを符号化が行われる前に前記次のビデオフレームがドロップされるよう、前記少なくとも１つのビデオフレームの次のビデオフレームを符号化するには十分なバッファ領域が前記送信バッファ内に残っていないようにするために、前記コンピュータによって、送信バッファの送信バッファ占有量を増加させることと、を含む、非一時的コンピュータ可読記憶媒体。
【請求項１０】
前記方法が、
前記コンピュータによって、前記次のビデオフレームのために十分な余裕が前記送信バッファ内に存在しない場合、符号化の前に、前記次のビデオフレームをドロップすることをさらに含む、請求項９に記載の非一時的コンピュータ可読記憶媒体。
【請求項１１】
前記コンピュータによって、符号化の前に、前記次のビデオフレームを前記ドロップすることが、
前記次のビデオフレームの予測サイズを得るために、ビデオフレーム履歴データを用いて前記次のビデオフレームのサイズを予測することと、
前記次のビデオフレームの前記予測サイズが所定のサイズ値の範囲外にある場合、前記符号化が行われる前に、前記次のビデオフレームをドロップすることと、を含む、請求項１０に記載の非一時的コンピュータ可読記憶媒体。
【請求項１２】
前記方法が、
前記コンピュータによって、前記次のビデオフレームのために十分な余裕が前記送信バッファ内に存在する場合、前記符号化のために前記次のビデオフレームを送信することをさらに含む、請求項９に記載の非一時的コンピュータ可読記憶媒体。
【請求項１３】
前記コンピュータによって、前記符号化のために前記次のビデオフレームを前記送信することが、
予測される次のビデオフレームのサイズを得るために、ビデオフレーム履歴データを用いて前記次のビデオフレームのサイズを予測することと、
前記次のビデオフレームの予測サイズが所定のサイズ値の範囲内にある場合、前記符号化のために前記次のビデオフレームを送信することと、を含む、請求項１２に記載の非一時的コンピュータ可読記憶媒体。
【請求項１４】
コンピュータネットワーク層内のビデオフレームパケットスケジュールバッファにアクセスするように構成された、コンピュータと連結したビデオフレームパケットスケジュールバッファアクセサと、
前記ビデオフレームパケットスケジュールバッファのビデオフレームパケットスケジュールバッファ状態を受信するように構成された、前記コンピュータと連結したビデオフレームパケットスケジュールバッファ状態受信器であって、前記ビデオフレームパケットスケジュールバッファ状態が、前記ビデオフレームパケットスケジュールバッファがネットワークの混雑のためにビデオフレームパケットをドロップする寸前であることを示すものであり、前記ビデオフレームパケットが少なくとも１つのビデオフレームを含むものである、ビデオフレームパケットスケジュールバッファ状態受信器と、
前記少なくとも１つのビデオフレームのビデオフレームを符号化が行われる前に前記次のビデオフレームがドロップされるよう、前記少なくとも１つのビデオフレームの次のビデオフレームを符号化するには十分なバッファ領域が前記送信バッファ内に残っていないようにするために、送信バッファの送信バッファ占有量を増加させるように構成された、前記コンピュータと連結した送信バッファ占有量調整器と、を含む、ビデオフレームを積極的にドロップするためのビデオフレームパケットスケジュール制御機構。
【請求項１５】
前記次のビデオフレームのために十分な余裕が前記送信バッファ内に存在しない場合、符号化の前に、前記次のビデオフレームをドロップするように構成された、前記コンピュータと連結した次のビデオフレームドロップ器、をさらに含む、請求項１４に記載のビデオフレームパケットスケジュール制御機構。
【請求項１６】
前記次のビデオフレームドロップ器が、
前記次のビデオフレームの予測サイズを得るために、ビデオフレーム履歴データを用いて前記次のビデオフレームのサイズを予測するように構成された、ビデオフレームサイズ予測器と、
前記予測サイズが所定のサイズ値の範囲外にあるかどうかを決定するように構成された、ビデオフレームサイズ値の範囲決定器と、を含む、請求項１５に記載のビデオフレームパケットスケジュール制御機構。
【請求項１７】
コンピュータによって実行されて、該コンピュータに、ビデオフレームを積極的にドロップするための方法を実行させるコンピュータ実行可能な命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記方法が、
第１の装置にキャプチャされるビデオフレームのビデオフレームキャプチャ時間スタンプを記録することと、
前記ビデオフレームキャプチャ時間スタンプを、最初にキャプチャされる前記ビデオフレームに関連付けることと、
レンダリングの考慮対象である現在のビデオフレームと関連付けられる時間スタンプと最初にキャプチャされる前記ビデオフレームの時間スタンプとの間の第１の時間差である第１の時間間隔と、レンダリングの考慮対象である前記現在のビデオフレームの時間インスタンスと最初にキャプチャされる前記ビデオフレームの開始ビデオフレームレンダリング時間インスタンスとの間の第２の時間差である第２の時間間隔との間の時間差を比較することと、
レンダリングの考慮対象である前記現在のビデオフレームの目標ビデオフレームレンダリング時間インスタンスを、ビデオフレームレンダリング規則のセットに従ってスケジュールすることであって、ビデオフレームレンダリング規則の前記セットが、前記第１の時間間隔に応じた第２の間隔が維持される目標ビデオフレームレンダリング時間スケジュールを維持することを含むものである、スケジュールすることと、を含む、非一時的コンピュータ可読記憶媒体。
【請求項１８】
第１の装置に最初にキャプチャされるビデオフレームのビデオフレームキャプチャ時間スタンプを記録するように構成された、コンピュータと連結したビデオフレームキャプチャ時間スタンプ記録器と、
前記ビデオフレームキャプチャ時間スタンプを最初にキャプチャされる前記ビデオフレームに関連付けるように構成された、コンピュータと連結したビデオフレームキャプチャ時間スタンプ関連付け器と、
レンダリングの考慮対象である現在のビデオフレームと関連付けられるキャプチャ時間スタンプと最初にキャプチャされる前記ビデオフレームのキャプチャ時間スタンプとの間の第１の時間差である第１の時間間隔と、レンダリングの考慮対象である前記現在のビデオフレームの時間インスタンスと最初にキャプチャされる前記ビデオフレームの開始ビデオフレームレンダリング時間インスタンスとの間の第２の時間差である第２の時間間隔との間の時間差を比較するように構成された、コンピュータと連結した時間差比較器と、
レンダリングの考慮対象である前記現在のビデオフレームの目標ビデオフレームレンダリング時間インスタンスを、ビデオフレームレンダリング規則のセットに従ってスケジュールするように構成された、コンピュータと連結した目標ビデオフレームレンダリング時間インスタンススケジュール器であって、前記ビデオフレームレンダリング規則が、前記第１の時間間隔に応じた第２の間隔が維持される目標ビデオフレームレンダリング時間スケジュールを維持することを含むものである、スケジュールすることと、を含む、ビデオフレームを積極的にドロップするための装置。
【請求項１９】
前記ビデオフレームレンダリング規則が、
少なくとも１つのビデオフレームは、該少なくとも１つのビデオフレームがそのスケジュールに遅れる場合、すぐにレンダリングされることを含む、請求項１８に記載の装置。
【請求項２０】
前記ビデオフレームレンダリング規則が、
少なくとも１つのビデオフレームは、そのスケジュールより早い場合、調整されたディレイでホールドされることを含む、請求項１８に記載の装置。
【請求項２１】
前記ビデオフレームレンダリング規則が、
少なくとも１つのビデオフレームは、そのスケジュールに遅れすぎる場合、送信バッファのアンダーフローを伴うことなくドロップされることを含む、請求項１８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、その全体が参照により本明細書に組み込まれる、２０１２年１０月１１日出願の米国出願第１３／６４９，８６３号に関連し、同出願に対する優先権を主張する。
【背景技術】
【０００２】
ビデオフレーム速度は、１秒につき処理されるビデオフレームの数として定義される。一般的に、ビデオフレーム速度は、様々な／変化するＣＰＵの使用およびチャネル帯域幅に適合することが望ましい。したがって、一般的に、ビデオフレームは、決められたビデオフレーム速度でキャプチャされることが望ましい。しかしながら、数多くの異なる既存のプラットフォーム、および、ばらつきのある装置のために、装置が正確かつ動的にビデオフレームのキャプチャ速度を制御することは、常に可能だとは限らない。
【発明の概要】
【０００３】
大まかに言えば、本文書は、ハードウェアおよびネットワークの変動のための積極的なビデオフレームのドロップについて説明する。より詳細には、本文書は、ビデオフレームを積極的にドロップする方法およびシステムを提供する。本方法は、コンピュータによって、第１の装置にキャプチャされるビデオフレームのビデオフレームキャプチャ時間スタンプを記録することと、コンピュータによって、ビデオフレームキャプチャ時間スタンプを、キャプチャされるビデオフレームと関連付けることと、コンピュータによって、ビデオフレームキャプチャ時間スタンプをビデオフレームのビデオフレーム目標時間スタンプと比較することと、比較に基づいて、ビデオフレームキャプチャ時間スタンプとビデオフレーム目標時間スタンプとの間の時間差が所定の時間値の範囲外である場合、コンピュータによって、ビデオフレームをドロップすることと、を含む。
【図面の簡単な説明】
【０００４】
【図１】実施形態に係る、送信器から受信器までのビデオ通話伝達経路全体にわたるフレームドロップの例を示す図である。
【０００５】
【図２】実施形態に係る、ビデオフレームを積極的にドロップするための装置を示す図である。
【０００６】
【図３Ａ】実施形態に係る、ビデオフレームを積極的にドロップするための方法の流れ図である。
【図３Ｂ】実施形態に係る、ビデオフレームを積極的にドロップするための方法の流れ図である。
【０００７】
【図４】実施形態に係る、ビデオフレームを積極的にドロップするためのビデオフレームパケットスケジュール制御機構を示す図である。
【０００８】
【図５】実施形態に係る、ビデオフレームを積極的にドロップするための方法の流れ図である。
【０００９】
【図６】実施形態に係る、ビデオフレームを積極的にドロップするための装置を示す図である。
【００１０】
【図７】実施形態に係る、ビデオフレームを積極的にドロップするための方法を示す図である。
【００１１】
【図８】実施形態に係る、ビデオフレームを積極的にドロップするための実施形態が行われ得る例示的な装置を示す図である。
【００１２】
【図９】実施形態に係る、ビデオフレームを積極的にドロップするための実施形態が行われ得る例示的な装置を示す図である。
【００１３】
【図１０】実施形態に係る、ビデオフレームを積極的にドロップするための実施形態が行われ得る例示的な装置（たとえば、モバイル装置）のブロック図である。
【００１４】
本記載において言及される図面は、特に記載される場合を除き、原寸に比例して描かれているわけではないものとして理解されるべきである。
【発明を実施するための形態】
【００１５】
様々な実施形態が詳細に説明され、それらの例は添付する図面において例示される。これらの実施形態と共に主題が説明されるが、主題をこれらの実施形態に限定するものではないことが理解される。むしろ、本明細書に記載される主題は、その趣旨およびその範囲内に含まれ得る、その代替物、その変更物、および等価物を網羅するものと考えられる。さらに、以下の記載においては、主題についての完全な理解をもたらすために数多くの特定の詳細が説明される。しかしながら、いくつかの実施形態では、これらの特定の詳細なしでも実施され得る。また、主題の態様を不必要に不明瞭にしないために、既知の構造および部品は詳細に記載されていないこともある。
【００１６】
以下に記載されるように、実施形態では、様々な装置（たとえば、モバイル、デスクトップ）において、３つの異なる手法、（１）ビデオフレームがキャプチャされた後の適応的なビデオフレームドロップと、（２）ビデオフレームパケットスケジュール制御を促進するための、符号化前の適応的なビデオフレームドロップと、（３）ビデオフレームレンダリング前の動的ビデオフレームドロップと、を用いて、ビデオ通話伝達経路の異なる段階の間、ビデオフレームを積極的にドロップする。各手法は以下により詳細に記載される。
【００１７】
図１は、送信器から受信器までのビデオ通話伝達経路全体にわたって行われる、３つの可能なビデオフレームドロップの流れを示す図である。簡単に言えば、図１は、送信装置１００にキャプチャされるビデオフレームから、受信装置１６５でレンダリングされるビデオフレームまでに行われる過程を示す。図示されているように、送信装置１００でビデオフレームが通過する過程は以下のものである：  ビデオキャプチャ１０５、ビデオ符号化１１０、ビデオパケット化１１５、およびビデオパケットスケジュール１２０。図示されているように、受信装置１６５で、ビデオフレームが通過する過程は以下のものである：  ビデオパケットスケジュール１３５、ビデオデパケット化１４０、ビデオ復号化１４５、およびビデオレンダリング１５０。
【００１８】
様々な実施形態において、ビデオキャプチャ１０５の過程の後に過程１２５でビデオフレームがドロップされる。様々な実施形態において、ビデオフレーム符号化１０が開始する前に過程１３０でビデオフレームがドロップされる。さらに、過程１３０では、（ビデオフレームパケットスケジュール１２０の過程から伝達される）ビデオフレームスケジュール状態１６０が、ビデオフレーム符号化１１０が始まる前のビデオフレームドロップの処理において考慮されることが示される。様々な実施形態において、ビデオレンダリング１５０の前に過程１５５でビデオフレームがドロップされる。時間スタンプ１６１〜１６９もまた図１に示されている。この図に示されているように、時間スタンプは、１つの過程から次の過程に移行する際に生成される。たとえば、ビデオフレームはビデオキャプチャ１０５にキャプチャされる。ビデオ符号化１１０の過程に移る際、時間スタンプ１６２が生成され、ビデオフレームの符号化が行われる時間をマークする。
【００１９】
したがって、実施形態では、様々な伝達問題（たとえば、ネットワークの混雑、不十分な帯域幅など）のために、ネットワークがビデオフレームをドロップするのを待つ代わりに、ビデオフレームの積極的なドロップを提供し、それにより安定したペースで装置間のビデオフレームの伝達が促進される。
【００２０】
［表記法と命名法］
本技術の実施形態が詳細に説明され、それらの例は添付する図面において例示される。様々な実施形態と共に主題が説明されるが、主題をこれらの実施形態に限定するものではないことが理解される。むしろ、本明細書に記載される主題は、添付の特許請求の範囲によって定まる様々な実施形態の趣旨および範囲内に含まれ得る、その代替物、その変更物、および等価物を網羅するものと考えられる。
【００２１】
さらに、実施形態の以下の記載においては、本技術についての完全な理解をもたらすために数多くの特定の詳細が説明される。しかしながら、本技術は、これらの特定の詳細なしでも実施され得る。また、主題の態様を不必要に不明瞭にしないために、既知の構造、部品および回路は詳細に記載されていないこともある。
【００２２】
後続の実施形態の記載のいくつかの部分は、コンピュータメモリ内でのデータビットに対する動作の手順、論理ブロック、処理、および他の記号表現により説明される。これらの記載および表現は、これらの作業の本質を最も有効に他の当業者に伝えるために、データ処理技術における当業者によって用いられるものである。本出願において、手順、論理ブロック、過程などは、所望の結果につながる一貫した一連の処理または命令の連続であると考えられる。過程は、物理的な量の物理的な操作を要求するものである。通常、必然的ではないが、これらの量は、コンピュータシステム中で、記憶されること、転送されること、組み合わせられること、比較されること、およびさもなければ、操作されることが可能な電気または磁気信号の形態をとる。
【００２３】
しかしながら、これらおよび類似の用語は全て、適切な物理的な量と関連付けられるべきであり、それらの量に適用される便利な標識に過ぎないことが留意されるべきである。以下の説明から明らかなものとして特に別記されない限り、本説明全体にわたって、「記録すること“ｒｅｃｏｒｄｉｎｇ”」、「関連付けること“ａｓｓｏｃｉａｔｉｎｇ”」、「比較すること“ｃｏｍｐａｒｉｎｇ”」、「ドロップすること“ｄｒｏｐｐｉｎｇ”」、「送信すること“ｓｅｎｄｉｎｇ”」、「更新すること“ｕｐｄａｔｉｎｇ”」、「推定すること“ｅｓｔｉｍａｔｉｎｇ”」、「アクセスすること“ａｃｃｅｓｓｉｎｇ”」、「受信すること“ｒｅｃｅｉｖｉｎｇ”」、「増加させること“ｉｎｃｒｅａｓｉｎｇ”」、「予測すること“ｐｒｅｄｉｃｔｉｎｇ”」、「保持すること“ｋｅｅｐｉｎｇ”」、「送信すること“ｓｅｎｄｉｎｇ”」、「スケジュールすること“ｓｃｈｅｄｕｌｉｎｇ”」、「維持すること“ｍａｉｎｔａｉｎｉｎｇ”」などの用語は、コンピュータシステムまたは類似の電子計算装置の動作および処理に言及するものであることは明らかであり、これらコンピュータシステムまたは類似の電子計算装置は、コンピュータシステムのレジスタやメモリ内の物理的（電子的）量として表わされるデータを、コンピュータシステムのメモリやレジスタや他のそのような情報記憶・送信・表示の装置内における物理的な量として同じように表わされる他のデータに操作・変換するものである。
【００２４】
（１）ビデオフレームがキャプチャされた後の適応的なビデオフレームドロップ
ビデオフレーム速度は、１秒につき処理されるビデオフレームの数として定義される。一般的に、ビデオフレーム速度は、様々な／変化するＣＰＵの使用およびチャネル帯域幅に適合することが望ましい。したがって、一般的に、ビデオフレームは、決められたビデオフレーム速度でキャプチャされることが望ましい。しかしながら、数多くの異なる既存のプラットフォーム、および、ばらつきのある装置のために、装置が正確かつ動的にビデオフレームのキャプチャ速度を制御することは、常に可能だとは限らない。これは、１つには、いくつかの装置および／またはプラットフォームは、正確なビデオフレーム速度を提供する明示的なＡＰＩを提供するものではないためであり、いくつかの装置および／またはプラットフォームは、カメラフレームのキャプチャ中に中断やちらつきを発生させることなくカメラフレームの速度設定を動的に変化させることはできない。
【００２５】
したがって、ある時点での目標ビデオフレーム速度がその時点でのカメラキャプチャビデオフレーム速度より低い状況において、実施形態では、変化する目標ビデオフレーム速度を達成しつつ、キャプチャされるビデオフレームが等しくペース配分されるようなビデオフレームドロップの方法を提供する。いくつかの状況において、カメラキャプチャビデオフレーム速度は、異なるＣＰＵ使用条件および／または異なる照明条件によって変動することがある。さらに、別の状況においては、目標ビデオフレーム速度は、端末間の使用感が良好なものとなるようにするために変動することがある。たとえば、変動するネットワーク状態や、各装置および／またはその相手装置のＣＰＵ使用条件に適応することにより変動する。
【００２６】
１つのビデオフレームの「目標時間インスタンス」は、目標ビデオフレーム速度を最良に達成するようにビデオフレームを処理しなければならないときの時間インスタンスとして定義される。一方、「キャプチャ時間インスタンス」は、ビデオフレームがキャプチャされている時の時間インスタンスとして定義される。一実施形態においては、目標時間インスタンスは新たにキャプチャされる全てのビデオフレームごとに更新される。ビデオの、キャプチャされたビデオフレームについてのキャプチャ時間インスタンスに関連付けられている履歴データを用いて、次にキャプチャされるビデオフレームについてキャプチャ時間インスタンスが推定される。ビデオフレームについての目標時間インスタンスが、現在のキャプチャ時間インスタンスに近い（閾値を満たすおよび／または超過する）場合には、新たにキャプチャされるビデオフレームが保持される。そうでない場合には、新たにキャプチャされるビデオフレームはドロップされる（スキップされる）。
【００２７】
実施形態では、適応的で積極的なビデオフレームのドロップを促進することにより、安定したペースでのビデオフレームの伝達が可能となる。キャプチャされるビデオフレームが多すぎる（ビデオフレームのキャプチャが速すぎる）と、キャプチャの段階でビデオフレームのドロップが必要になる。たとえば、ネットワークの混雑が起こり、Ｉフレームが失われる。これらのＩフレームを失うことは、ＩＤＲの再度の翻訳を引き起こし、より多くの混雑が引き起こされる。どのビデオフレームが喪失されるのかが確かではないので、ビデオフレームのきまぐれなドロップは危険である。実施形態では、ビデオフレームを積極的にドロップする。
【００２８】
図２は、ビデオフレームを積極的にドロップするための装置２０２を示す図である。本明細書に説明されるように、装置２０２は、少なくともコンピュータと接続された以下の部品、ビデオフレームキャプチャ時間スタンプ記録器２１５と、ビデオフレームキャプチャ時間スタンプ関連付け器２２０と、ビデオフレームキャプチャ時間スタンプ比較器２３５と、ビデオフレームドロップ器２５０を含むビデオフレーム操作器２４５、を含む。様々な実施形態において、ここに説明されるように、装置２０２は、コンピュータと接続された以下の部品、ビデオフレーム送信器２５５と、ビデオフレーム目標時間スタンプ更新器２６５と、ビデオフレームキャプチャ時間スタンプ推定器２７０と、のうちのいずれかを任意に含む。
【００２９】
ビデオフレームキャプチャ時間スタンプ記録器２１５は、第１の装置２００にキャプチャされるビデオフレーム２０５のためのビデオフレームキャプチャ時間スタンプ２１０を記録する。様々な実施形態において、第１の装置２００は、別の装置（第２の装置２６０）にビデオを伝達することが可能な装置である。ビデオフレームキャプチャ時間スタンプ関連付け器２２０は、ビデオフレームキャプチャ時間スタンプ２１０を、キャプチャされるビデオフレーム２０５に関連付ける。ビデオフレームキャプチャ時間スタンプ比較器２３５は、ビデオフレームキャプチャ時間スタンプ２１０を、ビデオフレーム２０５のためのビデオフレームキャプチャ目標時間スタンプ２４０と比較する。ビデオフレームキャプチャ目標時間スタンプ２４０は、ビデオフレーム２１０のキャプチャが望ましい時間を示す。
【００３０】
ビデオフレーム操作器２４５は、ビデオフレームキャプチャ時間スタンプ２１０とビデオフレームキャプチャ目標時間スタンプ２４０との間の時間差に応じて、ビデオフレーム２１０を操作する。ビデオフレーム操作器２４５は、ビデオフレームドロップ器２５０を含む。ビデオフレームキャプチャ時間スタンプ２１０とビデオフレームキャプチャ目標時間スタンプ２４０との間の時間差が所定の時間値の範囲外にある場合、ビデオフレームドロップ器２５０は、ビデオフレーム２０５をドロップする。
【００３１】
ビデオフレームキャプチャ時間スタンプ２１０とビデオフレームキャプチャ目標時間スタンプ２４０との間の時間差が所定の時間値の範囲内にある場合、ビデオフレーム送信器２５５は、ビデオフレームキャプチャ時間スタンプ２１０およびビデオフレーム２０５を、第１の装置２００から第２の装置２６０に送信する。
【００３２】
ビデオフレーム目標時間スタンプ更新器２６５は、後続してキャプチャされるビデオフレームに関連付けられる後続のビデオフレーム目標時間スタンプを更新する。したがって、ビデオフレーム２０５の後にキャプチャされるあらゆるビデオフレームは、後続してキャプチャされるビデオフレームであると考えられる。あらゆる後続してキャプチャされるビデオフレームは、ビデオフレームキャプチャ時間スタンプを受信し、ビデオフレーム目標時間スタンプに関連付けられる。新しいビデオフレームがキャプチャされる度に、このビデオフレームキャプチャ目標時間スタンプは、新しいビデオフレームのキャプチャが望ましい新たな目標時間を反映するように変更される。
【００３３】
ビデオフレームキャプチャ時間スタンプ推定器２７０は、後続してキャプチャされるビデオフレームのために、上記の後続のビデオフレームキャプチャ時間スタンプを推定し、その推定は、ビデオフレームキャプチャ履歴データに基づくものである。ビデオフレームキャプチャ履歴データは、以下のもの：  以前のすべてのビデオフレームキャプチャ目標時間スタンプ、および、以前のすべてのビデオフレームキャプチャ時間スタンプ、のうちの少なくともいずれかを含み得る。
【００３４】
図３Ａおよび３Ｂは、実施形態に係る、ビデオフレームを積極的にドロップするための方法の流れ図である。一実施形態における過程３０５では、本明細書に記載されているように、第１の装置にキャプチャされるビデオフレームのキャプチャ時間スタンプが記録される。一実施形態における過程３１０では、本明細書に記載されているように、ビデオフレームキャプチャ時間スタンプは、キャプチャされるビデオフレームと関連付けられる。一実施形態における過程３１５において、本明細書に記載されているように、ビデオフレームキャプチャ時間スタンプは、ビデオフレームのビデオフレームキャプチャ目標時間スタンプと比較される。一実施形態における過程３２０では、本明細書に記載されているように、過程３１５での比較に基づいて、ビデオフレームキャプチャ時間スタンプとビデオフレームキャプチャ目標時間スタンプとの間の時間差が所定の時間値の範囲外である場合、ビデオフレームはドロップされる。
【００３５】
ここで図３Ｂを参照すると、一実施形態における過程３２５では、本明細書に記載されているように、過程３１５での比較に基づいて、ビデオフレームキャプチャ時間スタンプとビデオフレームキャプチャ目標時間スタンプとの間の時間差が所定の時間値の範囲内にある場合、ビデオフレームキャプチャ時間スタンプおよびビデオフレームが第１の装置から第２の装置に送信される。
【００３６】
一実施形態における過程３３０では、本明細書に記載されているように、後続してキャプチャされるビデオフレームに関連付けられた後続のビデオフレーム目標時間スタンプが更新される。一実施形態における過程３３０では、本明細書に記載されているように、後続してキャプチャされるビデオフレームの後続のビデオフレームキャプチャ時間スタンプが推定され、その推定は、ビデオフレームキャプチャ履歴データに基づくものである。
【００３７】
（２）パケットスケジュール制御を促進するための、ビデオフレーム符号化の前の適応的なビデオフレームドロップ
ビデオ符号化は、デジタルビデオファイルを、１つの形式から別の形式に変換する過程である。コンピュータ、タブレット、携帯電話、およびセットトップボックス上で閲覧されるビデオはすべて、元の「ソース」ビデオをこれらの装置上で視聴可能なように変換するための符号化過程を経なければならない。異なる装置およびブラウザが異なるビデオ形式を支持するため、符号化が必要である。本過程は、時に「コード変換」あるいは「ビデオ変換」と呼ばれる。
【００３８】
デジタルビデオの異なる形式は、コンテナ（たとえば、．ＭＯＶ、．ＦＬＶ、．ＭＰ４、．ＯＧＧ、．ＷＭＶ、ＷｅｂＭ）、コーデック（たとえば、Ｈ２６４、ＶＰ６、ＰｒｏＲｅｓ）、およびビット速度（たとえば、メガビットまたはキロビット／秒で）のような特定の変数を有し得る。異なる装置およびブラウザは、これらの変数に関する異なる仕様を有する。
【００３９】
ネットワークのサービス品質（ＱｏＳ）層は、瞬間チャネル帯域幅、往復時間、ジッタ、パケット喪失などの観点で変化するネットワーク状態を監視する。そして、ネットワークＱｏＳ層は、リアルタイムで監視される情報をビデオ符号化器にフィードバックする。
【００４０】
パケット送信を全体わたって最大化するために、チャネル状態がこれを許容する場合はいつも、リーキーバケット機構が導入され、ネットワークに押し込まれるパケットをスケジュールする。しかしながら、リアルタイムでの伝達では、ビデオパケットは、ディレイの制約なくしてバッファされ得ない。ネットワークの混雑が起きている際には、端末間のディレイの制約を満たすためにパケットのドロップを招くことや、制御パケットまたは音声パケットなどのより高い優先順位のパケットに対して、限られたチャネル帯域幅を譲ることも避けられない。
【００４１】
ドロップされるビデオパケットが参照用に用いられるビデオフレームの一部である場合、ビデオ符号化の性質上、ビデオの流れを再開するために、ビデオパケットのドロップは、同期させるビデオフレームの符号化が必要となることがある。
【００４２】
フレームは、既知の時間間隔の間にキャプチャされる完全な画像であり、フィールドは、部分画像を構成する奇数行または偶数行の走査線のセットである。ビデオが、飛び越し走査形式で送信される際、各フレームは、偶数行のフィールドが後続の奇数行のフィールドとして送信される。
【００４３】
他のフレームを予測する参照用に用いられるフレームは、参照フレームと呼ばれる。ビデオ圧縮において用いられる少なくとも３つの型の画像（あるいは参照フレーム）、Ｉフレーム、ＰフレームおよびＢフレームが存在する。この分類では、他のフレームからの予測なしで符号化されるフレームはＩフレームと呼ばれ、単一参照フレーム（あるいは各領域の予測のための単一フレーム）からの予測を用いるフレームはＰフレームと呼ばれ、２つの参照フレームの平均（加重平均でもあり得る）として形成される予測信号を用いるフレームはＢフレームと呼ばれる。
【００４４】
Ｉフレームは、「イントラ符号化された画像」であり、従来の静止画像ファイルのように、実際上完全に特定される１つの画像である。ＰフレームおよびＢフレームは、画像情報の一部のみを保持するため、Ｉフレームより記憶するのに必要な領域が少なくてすむので画像圧縮率が向上する。
【００４５】
Ｐフレーム（「予測される画像」）は前フレームからの画像における変化のみを保持する。たとえば、自動車が静止した背景を横切って移動する場面においては、自動車の動きのみが符号化の必要がある。符号化器は、Ｐフレーム中の変化しない背景画素を記憶する必要はないため、領域を節約する。Ｐフレームはまた、デルタフレームとしても知られている。
【００４６】
Ｂフレーム（「両予測的な画像」）は、その内容を特定するために、現在のフレームと、先行および後続のフレームの両方との間の差を用いることによって、さらにより多くの領域を節約する。
【００４７】
同期させるビデオフレームは、参照用として認められたビデオフレームを用いるＰフレームか、あるいは、Ｉ／ＩＤＲフレームのいずれかである。この同期させるビデオフレームは、符号化される以前のビデオフレームの符号化から独立しており、以前のビデオパケットのドロップに伴うエラーの伝播を止めることができる。その同期させるビデオフレーム、特にＩＤＲフレームは、通常大きなビデオフレームサイズとなる。この大きなビデオフレームサイズは、そのような大きなビデオフレームサイズを、そのまま完全な形で送らなければならないという問題を創出するだけでなく、より多くの帯域幅を消費し、既に悪くなっている可能性のあるネットワーク状態に負担を追加することとなる。そのような大きなビデオフレームのいずれかのビデオパケットがドロップされる場合には、同期させる別のビデオフレームが挿入されなければならない。
【００４８】
実施形態では、符号化が行われる前にビデオフレームをドロップさせ、そのビデオフレームのドロップはビデオパケットスケジュールにより促進される。それにより、同期させる大きなビデオフレームサイズのビデオフレームの挿入が回避される。より具体的には、実施形態では、符号化が行われる前に適応的なフレームドロップを組み込むビデオパケットスケジュール制御機構が提供される。ビデオパケットは、コンピュータネットワークによって伝搬されるビデオデータのフォーマットの単位である。メディア層中のビデオ符号化器がコンピュータネットワーク層からのビデオパケットスケジュールの詳細な状態を認識している場合、ビデオ符号化器は、符号化の前にビデオフレームを積極的にドロップし、それにより、無益な符号化後の後続パケットのドロップが回避される。符号化の前の１つのビデオフレームのドロップは、他のビデオフレームの符号化から独立しているため、それにより、同期させる大きなサイズのビデオフレームの挿入を有効に回避できる。
【００４９】
パケットスケジュールの詳細に関するフィードバック情報は通信されてもよく、送信バッファは符号化の前に実行されてもよい。送信バッファは、実際のビデオフレームバッファリングの代わりに、ビデオフレームドロップの決定を促進するために用いられる。送信バッファサイズは、平均符号化ビット速度を抑制するために、時間窓によって操作される目標ビット速度によって決定され得るものである。送信バッファの送信バッファ占有量は、符号化されるビデオフレームビットによって増加され、リアルタイム送信ビット速度によって低減される。
【００５０】
ビデオパケットスケジュールを促進するために、送信バッファ占有量は、コンピュータネットワーク層中のパケットスケジュールバッファ状態によってさらに制約される。たとえば、ビデオパケットスケジュールバッファが、ネットワークの混雑のために少なくとも１つのパケットをドロップしなければならない寸前であることを示す場合、十分なバッファ領域が次の新しいビデオフレームの符号化のために残されないように、送信バッファはその占有量を増加させ、これにより、適切なビデオフレームドロップが実現する。
【００５１】
実施形態のさらなる利点として、符号化前の、ドロップ予定のビデオフレームをドロップすることにより、ＣＰＵ時間が節約されることがある。次のビデオフレームをドロップするべきかどうかをより正確に予測するために、履歴データが、符号化前にビデオフレームサイズをより精密に予測するのに用いられる。たとえば、ＩフレームあるいはＰビデオフレーム型などの異なるビデオフレーム型に基づいてビデオフレームサイズが予測される場合、直近の数のＩビデオフレームサイズおよび／またはＰビデオフレームサイズの平均が用いられてもよい。
【００５２】
したがって、実施形態では、オーバーシュートの回避が可能となっている。たとえば、符号化器が１００ｋフレーム／秒を生成することが望ましい場合、符号化器はその代わりに２００ｋフレーム／秒を生成し、符号化器のオーバーシュートを発生させる。この２００ｋフレーム／秒がルータに送信された場合、これはあまりにも大きくてネットワークの混雑を創出するため、ルータはそれを送信しないと考えられる。一実施形態においては、ビデオフレームは符号化内でドロップされる。たとえば、符号化器はビデオフレームを符号化し、次に符号化器オーバーシュートを発生させてもよい。符号化器はこのビデオフレームをドロップし、次のビデオフレームを生成し得る。基本的に、符号化器はその以前の状態に戻って、次のビデオフレームを符号化しようとする。（この例は、符号化器内でのドロップと考えられる。）または、ネットワークが、ビデオフレームを符号化器に全く送信しないように伝達経路に命じてもよい。
【００５３】
図４は、実施形態に係る、ビデオフレームを積極的にドロップするためのビデオフレームパケットスケジュール制御機構４００を示す図である。ビデオフレームパケットスケジュール制御機構４００は、以下に記載されるように、コンピュータと連結した以下の部品、ビデオフレームパケットスケジュールバッファアクセサ４１５と、ビデオフレームパケットスケジュールバッファ状態受信器４２０と、および送信バッファ占有量調整器４２５と、を含む。様々な実施形態において、本明細書に記載されているように、コンピュータに連結したビデオフレームパケットスケジュール制御機構４００は、ビデオフレームサイズ予測器４３５と、ビデオフレームサイズ範囲値決定器４４０と、を任意に含む次のビデオフレームドロップ器４３０を任意に含む。
【００５４】
ビデオフレームパケットスケジュールバッファ状態アクセサ４１５は、コンピュータネットワーク層４５０内のビデオフレームパケットスケジュールバッファ４０５にアクセスする。ビデオフレームパケットスケジュールバッファ状態受信器４２０は、ビデオフレームパケットスケジュールバッファ４０５のビデオフレームパケットスケジュールバッファ状態を受信する。ビデオフレームパケットスケジュールバッファ状態は、ネットワークの混雑のために、ビデオフレームパケットスケジュールルバッファ４０５がビデオフレームパケットをドロップする寸前であることを示し、ビデオフレームパケットは、少なくとも１つのビデオフレームを含む。ネットワークがひどく混雑する状況では、ネットワーク上の現在のトラフィックおよび／または予測されるトラフィックは、ネットワークが負担できる以上であると予測され、ビデオフレームがドロップされるというメッセージを引き起こす。
【００５５】
送信バッファ占有量調整器４２５は、上記の少なくとも１つのビデオフレームのうちの１つのビデオフレームの符号化が行われる前に次のビデオフレームがドロップされるよう、上記の少なくとも１つのビデオフレームの次のビデオフレームを符号化するには送信バッファ４４５内に十分なバッファ領域が残っていないようにするために、送信バッファ４４５の送信バッファ占有量を増加させる。
【００５６】
次のビデオフレームドロップ器４３０は、次のビデオフレームのために送信バッファ内に十分な余裕が存在しない場合、符号化の前に次のビデオフレームをドロップする。本明細書で言及されるように、次のビデオフレームドロップ器４３０は、ビデオフレームサイズ予測器４３５およびフレームサイズ範囲値決定器４４０を任意に含む。ビデオフレームサイズ予測器４３５は、ビデオフレーム履歴データを用いて、次のビデオフレームのサイズを予測し、それにより、該次のビデオフレーム４５５の予測されるサイズを得る。ビデオフレームサイズ範囲値決定器４４０は、次のビデオフレーム４５５の予測されたサイズが、所定の範囲外にあるかどうかを決定する。
【００５７】
図５は、ビデオフレームを積極的にドロップする方法の流れ図を示す図である。一実施形態における過程５０５では、本明細書に記載されているように、コンピュータネットワーク層中のビデオフレームパケットスケジュールバッファがアクセスされる。一実施形態における過程５１０では、本明細書に記載されているように、ビデオフレームパケットスケジュールバッファのビデオフレームパケットスケジュールバッファ状態が受信され、ビデオフレームパケットスケジュールバッファ状態は、ネットワークの混雑のために、ビデオフレームパケットスケジュールルバッファがビデオフレームパケットをドロップする寸前であることを示し、ビデオフレームパケットは少なくとも１つのビデオフレームを含む。
【００５８】
一実施形態における過程５１５では、本明細書に記載されているように、少なくとも１つのビデオフレームの符号化が行われる前に次のビデオフレームがドロップされるよう、少なくとも１つのビデオフレームの次のビデオフレームを符号化するには送信バッファ内に十分なバッファ領域が残っていないようにするために、送信バッファの送信バッファ占有量が増加させられる。
【００５９】
一実施形態における過程５２０では、本明細書に記載されているように、次のビデオフレームのために送信バッファ内に十分な余裕が存在しない場合、次のビデオフレームは、符号化の前にドロップされる。一実施形態においては、過程５２０でのドロップは、次のビデオフレームの予測サイズを得るために、ビデオフレーム履歴データを用いて次のビデオフレームのサイズを予測することと、次のビデオフレームの予測サイズが所定のサイズ値の範囲外にある場合、符号化が行われる前に次のビデオフレームがドロップされることと、を含む。
【００６０】
一実施形態における過程５２５では、本明細書に記載されているように、次のビデオフレームのために送信バッファに十分な余裕が存在する場合、次のビデオフレームは符号化のために送信される。一実施形態においては、過程５２５での送信は、予測される次のビデオフレームサイズを得るために、ビデオフレーム履歴データを用いて次のビデオフレームのサイズを予測することと、次のビデオフレームサイズが所定の範囲内のサイズ値である場合、符号化のために次のビデオフレームを送信することと、を含む。
【００６１】
（３）  ビデオフレームレンダリング前の動的ビデオフレームドロップ
ビデオフレームがキャプチャされたのとほぼ同一のペースでビデオフレームをレンダリングすることが一般的に望ましい。この場合、ユーザが感じる主観的見栄えが可能な限り最良のものとなる。しかしながら、ビデオ前処理および／または後処理、ビデオ符号化および／またはビデオ復号化、パケットスケジュール、ネットワーク遅延などを含む端末間の遅延や、装置レンダリング能力といった点では、連続するビデオフレーム間において大きく変動する。適切なビデオフレームレンダリング制御なしでは、ビデオフレームレンダリングの際に、ビデオフレームジャーキネスおよび／または許容しがたい長い遅延が観察されることがあり、それにより、不満足なビデオを得ることとなる。
【００６２】
実施形態では、許容しがたい端末間の遅延を回避するために、適応的なビデオフレームレンダリングスケジュールパラダイムを用いて、ビデオレンダリング中のジャーキネスを平滑にし、ビデオフレームを適応的にドロップする。適応的なビデオフレームレンダリングスケジュールパラダイムは、あらゆるビデオフレームにマークされるビデオフレームキャプチャ時間スタンプ、およびビデオフレーム符号化器とビデオフレームレンダリング器との間のビデオフレームバッファを用いる。（時間スタンプはあらゆるビデオフレームに添付される。この概念［適応的なビデオフレームドロップ／ビデオキャプチャの後のペース配分］、および以下に記載される概念［ビデオフレームレンダリング前の動的ビデオフレームドロップ］の両方は、あらゆるビデオフレームに付けられた時間スタンプに基づく。ビデオフレームが再生される際、そのビデオフレームに関連付けられる時間スタンプは、ビデオおよび音声が整合して良好な視聴が得られるようにするために、音声フレームと関連付けられる時間スタンプと整合されなければならない。）
【００６３】
適応的なビデオフレームレンダリングスケジュールパラダイムにおいて、あらゆるビデオフレームは、キャプチャ時に時間スタンプと関連付けられる（ビデオフレームキャプチャ時間スタンプ）。ビデオフレームがレンダリングされるまで、このビデオキャプチャ時間スタンプは、ビデオフレーム処理伝達経路全体にわたって記憶される。
【００６４】
ビデオフレームキャプチャ時間スタンプは、以下の規則に従って目標ビデオフレームレンダリング時間スケジュールをスケジュールするために用いられる：  （１）ビデオフレームがそのスケジュールよりも遅れる場合、ビデオフレームはすぐにレンダリングされる、（２）ビデオフレームがそのスケジュールより早い場合、ビデオフレームは、調整されたディレイでホールドされるべきであることと、および（３）ビデオフレームがそのスケジュールに遅れすぎる場合、それらはドロップされるべきであるが、ドロップは送信バッファのアンダーフローを伴わないこと（すなわち、バッファされるフレームがあるときに限り、ビデオフレームがドロップされる）。
【００６５】
上記の目標ビデオフレームレンダリング時間スケジュールは、以下の２つの時間間隔：（１）考慮対象の現在のビデオフレームに関連付けられる時間スタンプと、最初にキャプチャされるビデオフレームの時間スタンプ（すなわち、開始ビデオフレームのキャプチャ時間インスタンス）との間の時間間隔、（２）レンダリングの考慮対象である現在のビデオフレームの時間インスタンスと、開始ビデオフレームのレンダリング時間インスタンスとの間の時間間隔、の間の時間差を比較することによって決定される。
【００６６】
開始ビデオフレームのレンダリング時間インスタンスは、時間の経過とともに自動的に調整され、直近の目標ビデオフレームレンダリング時間スケジュールによって更新される。この調整および更新は、以下の規則：  ビデオフレームがレンダリングされている場合はいつも、その最終ビデオフレームレンダリングスケジュールは、その元のビデオフレームキャプチャスケジュールと一致すると考える、に従ってなされる。
【００６７】
レンダリングの前の動的フレームドロップに関する実施形態では、モバイル装置でのみ連動する。
【００６８】
もし、１０フレーム／秒が第２の装置（たとえば、受信器）に送信されるが、ビデオフレームレンダリング器は、５フレーム／秒の負荷のみを処理し得る場合には、レンダリング器が１０フレーム／秒を発生させることを強要されると、長い待ち時間が発生し、音声およびビデオは同期しないことになる。
【００６９】
図６は、実施形態に係る、積極的なビデオフレームドロップのための装置６０５を示す図である。以下に記載されるように、装置６０５は、コンピュータと連結した以下の部品、ビデオフレームキャプチャ時間スタンプ記録器６２０と、ビデオフレームキャプチャ時間スタンプ関連付け器６２５と、時間差比較器６４０と、目標ビデオフレームレンダリング時間インスタンススケジュール器６５５と、を含む。
【００７０】
ビデオフレームキャプチャ時間スタンプ記録器６２０は、第１の装置６００に最初にキャプチャされるビデオフレーム６１０のためのビデオフレームキャプチャ時間スタンプ６１５を記録する。換言すると、第１の装置６００にキャプチャされる第１のビデオフレームは、ビデオフレームキャプチャ時間スタンプ６１５が記録されるためのものである。
【００７１】
ビデオフレームキャプチャ時間スタンプ関連付け器６２５は、ビデオフレームキャプチャ時間スタンプ６１５を、最初にキャプチャされるビデオフレーム６１０に関連付ける。
【００７２】
時間差比較器５４０は、第１の時間間隔と第２の時間間隔との間の時間差を比較する。第１の時間間隔６４５は、レンダリングの考慮対象である現在のビデオフレームに関連付けられた時間スタンプと、最初にキャプチャされるビデオフレームの時間スタンプの間の第１の時間差である。第２の時間間隔６５０は、レンダリングの考慮対象である現在のビデオフレームの時間インスタンスと、最初にキャプチャされるビデオフレームの開始ビデオフレームレンダリング時間インスタンスとの間の第２の時間差である。
【００７３】
目標ビデオフレームレンダリング時間インスタンススケジュール器６５５は、レンダリングの考慮対象である現在のビデオフレームの目標ビデオフレームレンダリング時間インスタンスを、ビデオフレームレンダリング規則６６０のセットに従ってスケジュールする。ビデオフレームレンダリング規則６６０のセットは、第１の時間間隔に応じた第２の間隔が維持される目標ビデオフレームレンダリング時間スケジュールを維持するという規則６６５を含む。
【００７４】
ビデオフレームレンダリング規則６６０のセットは、少なくとも１つのビデオフレームがそのスケジュールに遅れる場合、その少なくとも１つのビデオフレームがすぐにレンダリングされるという規則６７０と、少なくとも１つのビデオフレームがそのスケジュールより早い場合、その少なくとも１つのビデオフレームが、調整されたディレイでホールドされるという規則６７５と、少なくとも１つのビデオフレームがそのスケジュールに遅れすぎる場合、その少なくとも１つのビデオフレームがドロップされ、その少なくとも一つのビデオフレームのドロップは、送信バッファのアンダーフローを伴わないという規則６８０と、を含む。
【００７５】
図７は、実施形態にしたがって、ビデオフレームを積極的にドロップするための方法の流れ図である。一実施形態における過程７０５では、本明細書に記載されているように、第１の装置で最初にキャプチャされるビデオフレームのビデオフレームキャプチャ時間スタンプが記録される。一実施形態における過程７１０では、本明細書に記載されているように、ビデオフレームキャプチャ時間スタンプは、最初にキャプチャされるビデオフレームに関連付けられる。一実施形態における過程７１５では、本明細書に記載されているように、第１の時間間隔と第２の時間間隔との間の時間差が比較される。第１の時間間隔は、レンダリングの考慮対象である現在のビデオフレームに関連付けられたた時間スタンプと、最初にキャプチャされるビデオフレームの時間スタンプの間の第１の時間差である。第２の時間間隔は、レンダリングの考慮対象である現在のビデオフレームの時間インスタンスと、最初にキャプチャされるビデオフレームの開始ビデオフレームレンダリング時間インスタンスの間の第２の時間差である。
【００７６】
一実施形態における過程７２０では、本明細書に記載されているように、レンダリングの考慮対象である現在のビデオフレームの目標ビデオフレームレンダリング時間インスタンスは、第１の時間間隔に応じた第２の間隔が維持される目標ビデオフレームレンダリング時間スケジュールを維持することを含む、ビデオフレームレンダリング規則のセットに従ってスケジュールされる。
【００７７】
様々な実施形態において、方法３００、５００および７００は、コンピュータ読取可能かつコンピュータ実行可能な命令の制御の下で、プロセッサおよび電気部品によって実行される。コンピュータ読取可能かつコンピュータ実行可能な命令は、たとえば、コンピュータ使用可能な揮発性および不揮発性メモリのようなデータ記憶媒体内に存在する。しかしながら、コンピュータ読取可能かつコンピュータ実行可能な命令は、任意の型のコンピュータ読取可能記憶媒体に存在し得る。いくつかの一実施形態においては、方法３００、５００および７００は、装置８００および／または装置９００によって、より具体的には、図２〜１０に記載されるように、装置２０２、ビデオフレームパケットスケジュール制御機構４１０、および／または装置６０５によって実行される。
【００７８】
図８および９は、ビデオ会議に参加する装置８００および９００を描写する。一般的に、ビデオ会議は、２つ以上の位置が多方向ビデオおよび音声送信を介して同時に対話することを可能にする。
【００７９】
注目すべきことに、装置２０２、ビデオフレームパケットスケジュール制御機構４１０、および／または装置６０５は、モバイル装置内で連結され、機能する。一実施形態においては、モバイル装置は、図１０内の装置８００に記載される部品を含む。装置８００と９００との間のビデオ会議の間の装置８００の機能性は、図８および９を参照して以下に記載される。
【００８０】
装置８００および９００は、ビデオ会議に参加することができる任意の通信装置（たとえば、ラップトップ、デスクトップ、スマートフォン、タブレット、テレビなど）である。様々な実施形態において、装置９００は、スマートフォン、携帯情報端末（ＰＤＡ）などのような携帯型のモバイル装置である。
【００８１】
さらに、明瞭さと簡潔さのため、説明は装置８００の部品および機能性に注目する。しかしながら、装置９００は、装置８００と類似の方法で動作する。一実施形態においては、装置９００は、装置８００と同一であり、装置８００と同一の部品を含む。
【００８２】
一実施形態においては、本明細書に記載されているように、装置８００は、次の、様々な実施形態における、装置２０２と、ビデオパケットスケジュール制御機構４１０と、装置６０５と、のうちのいずれにも様々に連結される。装置８００および／または装置２０２、ビデオパケットスケジュール制御機構４１０、および／または装置６０５は、様々な実施形態において、以下の部品、実施形態に係る装置８００のブロック図である図１０に例示されるような、ディスプレイ１０１０と、送信器１０４０と、ビデオカメラ１０５０と、マイクロホン１０５２と、スピーカー１０５４と、命令記憶装置１０２５と、全地球測位システム１０６０と、にさらに連結される。
【００８３】
ディスプレイ８１０は、装置９００にキャプチャされるビデオを表示するように構成される。別の実施形態においては、ディスプレイ８１０は、装置８００にキャプチャされるビデオをさらに表示するように構成される。
【００８４】
送信器８４０はデータ（たとえば、制御コード）を送信するためのものである。
【００８５】
ビデオカメラ８５０は、装置８００でビデオをキャプチャする。マイクロホン８５２は、装置８００で音声をキャプチャする。スピーカー８５４は、装置８００で音響信号を発生させる。
【００８６】
全地球測位システム８６０は、装置８００の位置を決定する。
【００８７】
ここで図８Ａおよび８Ｂを参照すると、実施形態に係る装置８００および９００は、互いとのビデオ会議に参加している。様々な実施形態において、２つを超える装置が互いとのビデオ会議に参加する。
【００８８】
ビデオ会議中に、ビデオカメラ９５０は、装置９００にビデオをキャプチャする。たとえば、ビデオカメラ９５０は、装置９００のユーザ９０５のビデオをキャプチャする。
【００８９】
ビデオカメラ８５０は、装置８００にビデオをキャプチャする。たとえば、ビデオカメラ８５０は、ユーザ８０５のビデオをキャプチャする。ビデオカメラ８５０および９５０は、カメラ８５０および９５０のそれぞれの視野範囲内にある任意の対象をキャプチャし得ると理解されるべきである。（図９を参照する以下の説明を参照されたい。）
【００９０】
マイクロホン８５２は、キャプチャされるビデオ信号に対応する音声信号を装置８００にキャプチャする。同様に、装置９００のマイクロホンは、キャプチャされるビデオ信号に対応する音声信号を装置９００にキャプチャする。
【００９１】
一実施形態においては、装置９００にキャプチャされるビデオは、装置８００のディスプレイ８１０に送信され、そこで表示される。たとえば、ユーザ９０５のビデオは、ディスプレイ８１０の第１の視野８１２上に表示される。さらに、ユーザ９０５のビデオは、ディスプレイ９１０の第２の視野９１４上に表示される。
【００９２】
装置８００にキャプチャされるビデオは、装置９００のディスプレイ９１０に送信され、そこで表示される。たとえば、ユーザ８０５のビデオはディスプレイ９１０の第１の視野９１２上に表示される。さらに、ユーザ８０５のビデオは、ディスプレイ８１０の第２の視野８１４上に表示される。
【００９３】
一実施形態においては、装置８００および９００にキャプチャされる音声信号は、キャプチャされるビデオに組みこまれる。別の実施形態においては、音声信号は送信されるビデオとは別に送信される。
【００９４】
描写されるように、第１の視野８１２は、ディスプレイ８１０上に表示される一次視野であり、第２の視野８１４は、ディスプレイ８１０上に表示されるより小さい二次視野である。様々な実施形態において、第１の視野８１２および第２の視野８１４の両方のサイズは調整可能である。たとえば、第２の視野８１４は一次視野まで拡大することができ、第１の視野１１２は二次視野（第２の視野）まで縮小することができる。さらに、第１の視野８１２および第２の視野８１４の視野のうちのいずれか１つは、閉じられてもよく、またはそれが見えないように完全に縮小することができる。
【００９５】
ここで図９を参照すると、装置９００のユーザ９０５は、（彼自身または彼女自身の画像９０５をキャプチャする代わりに）橋梁９６０の画像をキャプチャしているところであり、それはビデオカメラ９５０の視野範囲内にある。橋梁の画像は、装置９００の第２の視野９１４に、および装置８００の第１の視野８１２に描写される。
【００９６】
本技術の原理、態様、および実施形態、ならびにその特定の実施例を列挙する本明細書の記述はすべて、その構造的および機能的等価物の両方を包含することを意図している。さらに、そのような等価物は、現在既知の等価物、および将来開発される等価物の両方、すなわち、構造に関わらず同一の機能を実行する開発された任意の構成要素を含むことを意図している。したがって、本技術の範囲は、本明細書に示され、記載される実施形態に限定されるものではない。むしろ、本技術の範囲および精神は、添付の特許請求の範囲によって具体化される。
【００９７】
当業者は、本明細書で言及される方法過程が、プロセッサと、少なくともキーボード、マウス、スキャナ、カメラを備える入力装置と、少なくともモニタ、プリンタを備える出力装置と、を含むが、これに限定されない、ハードウェアによって行われ得ることを理解するであろう。必要に応じて、方法過程は、適切な装置によって行われるべきである。たとえば、決定アルゴリズムを実装することによって、プロセッサ内の意思決定ユニットによって、決定過程が行われ得る。当業者は、この意思決定ユニットが、たとえばコンピュータのプロセッサ内で上述の決定アルゴリズムを行う際、物理的にまたは有効に存在し得ると理解するであろう。上記の分析は、本明細書に記載される他の過程に適用されるべきである。
【００９８】
本明細書に記載される構成要素、部分および過程の全ては、好適に含まれる。これらの構成要素、部分および過程のうちのどれも、当業者にとって明白であるように、他の構成要素、部分および過程によって代替され得る、または完全に除去され得ることが理解されるべきである。
［概念］
本文章は、少なくとも下記の概念を開示する。
概念１．  コンピュータによって実行されて、該コンピュータに、ビデオフレームを積極的にドロップするための方法を実行させるコンピュータ実行可能な命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記方法が、
前記コンピュータによって、第１の装置でキャプチャされるビデオフレームのビデオフレームキャプチャ時間スタンプを記録することと、
前記コンピュータによって、前記ビデオフレームキャプチャ時間スタンプをキャプチャされる前記ビデオフレームに関連付けることと、
前記コンピュータによって、前記ビデオフレームキャプチャ時間スタンプを、前記ビデオフレームのビデオフレームキャプチャ目標時間スタンプと比較することと、
前記比較に基づいて、前記ビデオフレームキャプチャ時間スタンプと前記ビデオフレームキャプチャ目標時間スタンプとの間の時間差が所定の時間値の範囲外である場合、前記コンピュータによって、前記ビデオフレームをドロップすることと、を含む、非一時的コンピュータ可読記憶媒体。
概念２．  前記方法が、
前記比較に基づいて、前記ビデオフレームキャプチャ時間スタンプと前記ビデオフレームキャプチャ目標時間スタンプとの間の前記時間差が、前記所定の時間値の範囲内にある場合、前記コンピュータによって、前記ビデオフレームキャプチャ時間スタンプおよび前記ビデオフレームを、前記第１の装置から第２の装置に送信することをさらに含む、概念１に記載の非一時的コンピュータ可読記憶媒体。
概念３．  前記方法が、
前記コンピュータによって、後続してキャプチャされるビデオフレームと関連付けられる後続のビデオフレーム目標時間スタンプを更新することをさらに含む、概念１に記載の非一時的コンピュータ可読記憶媒体。
概念４．  前記方法が、
前記コンピュータによって、後続してキャプチャされるビデオフレームの後続のビデオフレームキャプチャ時間スタンプを推定することであって、前記推定することが、ビデオフレームキャプチャ履歴データに基づき推定することをさらに含む、概念１に記載の非一時的コンピュータ可読記憶媒体。
概念５．  第１の装置にキャプチャされるビデオフレームのビデオフレームキャプチャ時間スタンプを記録するように構成された、コンピュータと連結したビデオフレームキャプチャ時間スタンプ記録器と、
前記ビデオフレームキャプチャ時間スタンプを、キャプチャされる前記ビデオフレームと関連付けるように構成された、前記コンピュータと連結したビデオフレームキャプチャ時間スタンプ関連付け器と、
前記ビデオフレームキャプチャ時間スタンプを、前記ビデオフレームのビデオフレーム目標時間スタンプと比較するように構成された、前記コンピュータと連結したビデオフレームキャプチャ時間スタンプ比較器と、
前記ビデオフレームキャプチャ時間スタンプと前記ビデオフレーム目標時間スタンプとの間の時間差に応じて前記ビデオフレームを操作するように構成された、前記コンピュータと連結したビデオフレーム操作器であって、前記ビデオフレームキャプチャ時間スタンプと前記ビデオフレーム目標時間スタンプとの間の前記時間差が所定の時間値の範囲外である場合、前記ビデオフレームをドロップするように構成されたビデオフレームドロップ器を含むビデオフレーム操作器と、を含む、ビデオフレームを積極的にドロップするための装置。
概念６．  前記ビデオフレーム情報送信器が、
前記比較に基づいて、前記ビデオフレームキャプチャ時間スタンプと前記ビデオフレーム目標時間スタンプとの間の時間差が、前記所定の値の範囲内にある場合、前記ビデオフレームキャプチャ時間スタンプおよび前記ビデオフレームを、前記第１の装置から第２の装置に送信するように構成されたビデオフレーム送信器、をさらに含む、概念５に記載の装置。
概念７．  後続してキャプチャされるビデオフレームと関連付けられる後続のビデオフレーム目標時間スタンプを更新するように構成された、前記コンピュータと連結したビデオフレーム目標時間スタンプ更新器、をさらに含む、概念５に記載の装置。
概念８．  後続してキャプチャされるビデオフレームの後続のビデオフレームキャプチャ時間スタンプを推定するように構成された、前記コンピュータと連結したビデオフレームキャプチャ時間スタンプ推定器であって、前記推定することがビデオフレームキャプチャ履歴データに基づくものであるビデオフレームキャプチャ時間スタンプ推定器、をさらに含む、概念５に記載の装置。
概念９．  コンピュータによって実行されて、該コンピュータに、ビデオフレームを積極的にドロップするための方法を実行させるコンピュータ実行可能な命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記方法が、
前記コンピュータによって、コンピュータネットワーク層内のビデオフレームパケットスケジュールバッファにアクセスすることと、
前記コンピュータによって、前記ビデオフレームパケットスケジュールバッファのビデオフレームパケットスケジュールバッファ状態を受信することであって、前記ビデオフレームパケットスケジュールバッファ状態が、前記ビデオフレームパケットスケジュールバッファが、ネットワークの混雑のためにビデオフレームパケットをドロップする寸前であることを示すものであり、前記ビデオフレームパケットが、少なくとも１つのビデオフレームを含むものである、受信することと、
前記少なくとも１つのビデオフレームのビデオフレームを符号化が行われる前に前記次のビデオフレームがドロップされるよう、前記少なくとも１つのビデオフレームの次のビデオフレームを符号化するには十分なバッファ領域が前記送信バッファ内に残っていないようにするために、前記コンピュータによって、送信バッファの送信バッファ占有量を増加させることと、を含む、非一時的コンピュータ可読記憶媒体。
概念１０．  前記方法が、
前記コンピュータによって、前記次のビデオフレームのために十分な余裕が前記送信バッファ内に存在しない場合、符号化の前に、前記次のビデオフレームをドロップすることをさらに含む、概念９に記載の非一時的コンピュータ可読記憶媒体。
概念１１．  前記コンピュータによって、符号化の前に、前記次のビデオフレームを前記ドロップすることが、
前記次のビデオフレームの予測サイズを得るために、ビデオフレーム履歴データを用いて前記次のビデオフレームのサイズを予測することと、
前記次のビデオフレームの前記予測サイズが所定のサイズ値の範囲外にある場合、前記符号化が行われる前に、前記次のビデオフレームをドロップすることと、を含む、概念１０に記載の非一時的コンピュータ可読記憶媒体。
概念１２．  前記方法が、
前記コンピュータによって、前記次のビデオフレームのために十分な余裕が前記送信バッファ内に存在する場合、前記符号化のために前記次のビデオフレームを送信することをさらに含む、概念９に記載の非一時的コンピュータ可読記憶媒体。
概念１３．  前記コンピュータによって、前記符号化のために前記次のビデオフレームを前記送信することが、
予測される次のビデオフレームのサイズを得るために、ビデオフレーム履歴データを用いて前記次のビデオフレームのサイズを予測することと、
前記次のビデオフレームの予測サイズが所定のサイズ値の範囲内にある場合、前記符号化のために前記次のビデオフレームを送信することと、を含む、概念１２に記載の非一時的コンピュータ可読記憶媒体。
概念１４．  コンピュータネットワーク層内のビデオフレームパケットスケジュールバッファにアクセスするように構成された、コンピュータと連結したビデオフレームパケットスケジュールバッファアクセサと、
前記ビデオフレームパケットスケジュールバッファのビデオフレームパケットスケジュールバッファ状態を受信するように構成された、前記コンピュータと連結したビデオフレームパケットスケジュールバッファ状態受信器であって、前記ビデオフレームパケットスケジュールバッファ状態が、前記ビデオフレームパケットスケジュールバッファがネットワークの混雑のためにビデオフレームパケットをドロップする寸前であることを示すものであり、前記ビデオフレームパケットが少なくとも１つのビデオフレームを含むものである、ビデオフレームパケットスケジュールバッファ状態受信器と、
前記少なくとも１つのビデオフレームのビデオフレームを符号化が行われる前に前記次のビデオフレームがドロップされるよう、前記少なくとも１つのビデオフレームの次のビデオフレームを符号化するには十分なバッファ領域が前記送信バッファ内に残っていないようにするために、送信バッファの送信バッファ占有量を増加させるように構成された、前記コンピュータと連結した送信バッファ占有量調整器と、を含む、ビデオフレームを積極的にドロップするためのビデオフレームパケットスケジュール制御機構。
概念１５．  前記次のビデオフレームのために十分な余裕が前記送信バッファ内に存在しない場合、符号化の前に、前記次のビデオフレームをドロップするように構成された、前記コンピュータと連結した次のビデオフレームドロップ器、をさらに含む、概念１４に記載のビデオフレームパケットスケジュール制御機構。
概念１６．  前記次のビデオフレームドロップ器が、
前記次のビデオフレームの予測サイズを得るために、ビデオフレーム履歴データを用いて前記次のビデオフレームのサイズを予測するように構成された、ビデオフレームサイズ予測器と、
前記予測サイズが所定のサイズ値の範囲外にあるかどうかを決定するように構成された、ビデオフレームサイズ値の範囲決定器と、を含む、概念１５に記載のビデオフレームパケットスケジュール制御機構。
概念１７．  コンピュータによって実行されて、該コンピュータに、ビデオフレームを積極的にドロップするための方法を実行させるコンピュータ実行可能な命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記方法が、
第１の装置にキャプチャされるビデオフレームのビデオフレームキャプチャ時間スタンプを記録することと、
前記ビデオフレームキャプチャ時間スタンプを、最初にキャプチャされる前記ビデオフレームに関連付けることと、
レンダリングの考慮対象である現在のビデオフレームと関連付けられる時間スタンプと最初にキャプチャされる前記ビデオフレームの時間スタンプとの間の第１の時間差である第１の時間間隔と、レンダリングの考慮対象である前記現在のビデオフレームの時間インスタンスと最初にキャプチャされる前記ビデオフレームの開始ビデオフレームレンダリング時間インスタンスとの間の第２の時間差である第２の時間間隔との間の時間差を比較することと、
レンダリングの考慮対象である前記現在のビデオフレームの目標ビデオフレームレンダリング時間インスタンスを、ビデオフレームレンダリング規則のセットに従ってスケジュールすることであって、ビデオフレームレンダリング規則の前記セットが、前記第１の時間間隔に応じた第２の間隔が維持される目標ビデオフレームレンダリング時間スケジュールを維持することを含むものである、スケジュールすることと、を含む、非一時的コンピュータ可読記憶媒体。
概念１８．  第１の装置に最初にキャプチャされるビデオフレームのビデオフレームキャプチャ時間スタンプを記録するように構成された、コンピュータと連結したビデオフレームキャプチャ時間スタンプ記録器と、
前記ビデオフレームキャプチャ時間スタンプを最初にキャプチャされる前記ビデオフレームに関連付けるように構成された、コンピュータと連結したビデオフレームキャプチャ時間スタンプ関連付け器と、
レンダリングの考慮対象である現在のビデオフレームと関連付けられるキャプチャ時間スタンプと最初にキャプチャされる前記ビデオフレームのキャプチャ時間スタンプとの間の第１の時間差である第１の時間間隔と、レンダリングの考慮対象である前記現在のビデオフレームの時間インスタンスと最初にキャプチャされる前記ビデオフレームの開始ビデオフレームレンダリング時間インスタンスとの間の第２の時間差である第２の時間間隔との間の時間差を比較するように構成された、コンピュータと連結した時間差比較器と、
レンダリングの考慮対象である前記現在のビデオフレームの目標ビデオフレームレンダリング時間インスタンスを、ビデオフレームレンダリング規則のセットに従ってスケジュールするように構成された、コンピュータと連結した目標ビデオフレームレンダリング時間インスタンススケジュール器であって、前記ビデオフレームレンダリング規則が、前記第１の時間間隔に応じた第２の間隔が維持される目標ビデオフレームレンダリング時間スケジュールを維持することを含むものである、スケジュールすることと、を含む、ビデオフレームを積極的にドロップするための装置。
概念１９．  前記ビデオフレームレンダリング規則が、
少なくとも１つのビデオフレームは、該少なくとも１つのビデオフレームがそのスケジュールに遅れる場合、すぐにレンダリングされることを含む、概念１８に記載の装置。
概念２０．  前記ビデオフレームレンダリング規則が、
少なくとも１つのビデオフレームは、そのスケジュールより早い場合、調整されたディレイでホールドされることを含む、概念１８に記載の装置。
概念２１．  前記ビデオフレームレンダリング規則が、
少なくとも１つのビデオフレームは、そのスケジュールに遅れすぎる場合、送信バッファのアンダーフローを伴うことなくドロップされることを含む、概念１８に記載の装置。
【図１】
2015536594.tif 000003
【図２】
2015536594.tif 000004
【図３Ａ】
2015536594.tif 000005
【図３Ｂ】
2015536594.tif 000006
【図４】
2015536594.tif 000007
【図５】
2015536594.tif 000008
【図６】
2015536594.tif 000009
【図７】
2015536594.tif 000010
【図８】
2015536594.tif 000011
【図９】
2015536594.tif 000012
【図１０】
2015536594.tif 000013
【国際調査報告】
2015536594.tif 000014
2015536594.tif 000015