(57)【要約】【課題】ビデオデータの代替ストリームをエンコーディングすることにおけるエンコーディング情報の再使用のためのシステムおよび方法の提供。【解決手段】本発明の実施形態による、ビデオデータの代替ストリームのエンコーディングにおいて、エンコーディング情報を再使用するためのシステムおよび方法が、開示される。適応ストリーミングシステムにおいて使用するためのマルチメディアコンテンツのエンコーディングは、メディアサーバを使用して、複数のエンコーディングレベルから、第１のエンコーディングレベルを選択することと、第１のエンコーディングレベルおよびメディアサーバを使用して、ビデオデータの第１のストリームのためのエンコーディング情報を判定することと、メディアサーバを使用して、ビデオデータの第１のストリームをエンコーディングすること、などを含む。【選択図】図１
2019030022.tif 000002
【特許請求の範囲】
【請求項１】
装置またはシステムまたは方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の分野）
本発明は、概して、適応ストリーミングシステムのためのシステムおよび方法に関し、より具体的には、ビデオデータの代替ストリームのエンコーディングにおいて、エンコーディング情報を再使用するためのシステムおよび方法に関する。
【背景技術】
【０００２】
（背景）
メディアのストリーミングという用語は、再生デバイス上のメディアの再生を説明するものであって、メディアは、サーバ上に記憶され、再生の間、ネットワークを経由して、再生デバイスに継続的に送信される。典型的には、再生デバイスは、メディアの次の部分の受信に先立って、再生デバイスが全てのバッファされたメディアの再生を完了することによる再生の中断を防止するために、再生の間、任意の所与の時間において、十分な量のメディアをバッファ内に記憶する。適応ビットレートストリーミングまたは適応ストリーミングは、本ストリーミング状態（例えば、ユーザのネットワーク帯域幅およびＣＰＵ容量）をリアルタイムで検出し、適宜、ストリーミングされるメディアの量を調節することを伴う。インターネットを経由したビデオのストリーミングは、現代の現象となりつつある。Ｇｏｏｇｌｅ，  Ｉｎｃ．（Ｍｏｕｎｔａｉｎ  Ｖｉｅｗ，  Ｃａｌｉｆｏｒｎｉａ）のサービスであるＹｏｕＴｕｂｅ（登録商標）およびＥＳＰＮ（Ｂｒｉｓｔｏｌ，  Ｃｏｎｎｅｃｔｉｃｕｔ）のサービスであるＷａｔｃｈＥＳＰＮ等の多くの人気のウェブサイトは、ビデオおよびテレビ番組をインターネットを介して消費者に提供するために、ストリーミングビデオを利用する。
【０００３】
スケーラブルビデオコーディング（ＳＶＣ）は、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ  Ｓｅｃｔｏｒ（Ｇｅｎｅｖａ，  Ｓｗｉｔｚｅｒｌａｎｄ）によるＩＴＵ−Ｔ  Ｈ．２６４規格によって規定されたＨ．２６４／ＭＰＥＧ−４  ＡＶＣビデオ圧縮規格の拡張機能である。ＳＶＣは、加えて、１つ以上のサブビットストリームを含有する、ビデオビットストリームのエンコーディングを可能にする。サブビットストリームは、ビデオビットストリームからのデータのパケットをドロップすることによって、ビデオビットストリームから派生し、オリジナルビデオビットストリームより低品質および低帯域幅のサブビットストリームをもたらす。ＳＶＣは、ビデオビットストリームのサブビットストリームへの３つの形態のスケーリング、すなわち、時間的スケーリング、空間的スケーリング、および品質的スケーリングをサポートする。これらのスケーリング技法はそれぞれ、具体的ビデオシステムに応じて、個々に使用される、または組み合わせられることができる。
【０００４】
適応ストリーミングシステムでは、ソースメディアは、典型的には、実際のビデオおよびオーディオデータを含有する、いくつかの代替ストリームをポイントする上位レベルインデックスファイルとして、メディアサーバ上に記憶される。各ストリームは、典型的には、１つ以上のコンテナファイル内に記憶される。異なる適応ストリーミングソリューションは、典型的には、異なるインデックスおよびメディアコンテナを利用する。Ｍａｔｒｏｓｋａコンテナは、Ｍａｔｒｏｓｋａ非営利団体（Ａｕｓｓｏｎｎｅ，  Ｆｒａｎｃｅ）によって、オープンスタンダードプロジェクトとして開発されたメディアコンテナである。Ｍａｔｒｏｓｋａコンテナは、Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）のバイナリ派生物である、Ｅｘｔｅｎｓｉｂｌｅ  Ｂｉｎａｒｙ  Ｍｅｔａ  Ｌａｎｇｕａｇｅ（ＥＢＭＬ）に基づく。Ｍａｔｒｏｓｋａコンテナのデコーディングは、多くの消費者電子機器（ＣＥ）デバイスによってサポートされている。ＤｉｖＸ，
ＬＬＣ（Ｓａｎ  Ｄｉｅｇｏ，  Ｃａｌｉｆｏｒｎｉａ）によって開発されたＤｉｖＸ
Ｐｌｕｓファイル形式は、Ｍａｔｒｏｓｋａ形式内に規定されない要素を含む、Ｍａｔｒｏｓｋａコンテナ形式の拡張子を利用する。
【発明の概要】
【課題を解決するための手段】
【０００５】
（発明の要約）
本発明の実施形態による、ビデオデータの代替ストリームのエンコーディングにおいて、エンコーディング情報を再使用するためのシステムおよび方法が、開示される。本発明の一実施形態では、適応ストリーミングシステムにおいて使用するためのマルチメディアコンテンツをエンコーディングすることは、メディアサーバを使用して、複数のエンコーディングレベルから、第１のエンコーディングレベルを選択することと、第１のエンコーディングレベルおよびメディアサーバを使用して、ビデオデータの第１のストリームのためのエンコーディング情報を判定することと、メディアサーバを使用して、ビデオデータの第１のストリームをエンコーディングすることであって、ビデオデータの第１のストリームは、第１の解像度および第１のビットレートを含む、ことと、メディアサーバを使用して、複数のエンコーディングレベルから、第２のエンコーディングレベルを選択することと、エンコーディング情報およびメディアサーバを使用して、ビデオデータの第２のストリームをエンコーディングすることであって、ビデオデータの第２のストリームは、第２の解像度および第２のビットレートを含む、こととを含む。
【０００６】
本発明の別の実施形態では、第１の解像度および第２の解像度は、同一である。
【０００７】
本発明の付加的実施形態では、第１のビットレートは、第２のビットレートを下回る。
【０００８】
本発明のさらに別の付加的実施形態では、第１のビットレートは、第２のビットレートを上回る。
【０００９】
本発明のなおも別の付加的実施形態では、第１の解像度は、第２の解像度を下回る。
【００１０】
本発明のさらになおも別の付加的実施形態では、第１の解像度は、第２の解像度を上回る。
【００１１】
本発明のさらに別の実施形態では、エンコーディング情報を判定することは、動き推定結果を推定すること、加重された予測加重を選択すること、および場面変化を判定することから成る群から選択される、エンコーディング情報を判定することを含む。
【００１２】
本発明のさらになおも別の実施形態では、マルチメディアコンテンツをエンコーディングすることはさらに、第１のエンコーディングレベルおよびメディアサーバを使用して、ビデオデータの第１のストリームのための動き推定を判定することと、第２のエンコーディングレベルおよびメディアサーバを使用して、ビデオデータの第２のストリームのための判定された動き推定の結果をスケーリングすることとを含む。
【００１３】
本発明のさらに別の付加的実施形態では、動き推定を判定することは、メディアサーバを使用した階層動き推定を含む。
【００１４】
本発明のなおも別の付加的実施形態では、マルチメディアコンテンツをエンコーディングすることはさらに、メディアサーバを使用して、ビデオデータの第１のストリームおよびビデオデータの第２のストリームをコンテナファイル内に記憶することを含む。
【００１５】
本発明のさらになおも別の付加的実施形態では、コンテナファイルは、Ｍａｔｒｏｓｋａコンテナファイルである。
【００１６】
本発明のさらに別の実施形態では、エンコーディングマルチメディアコンテンツはさらに、メディアサーバを使用して、ビデオデータの第１のストリームおよびビデオデータの第２のストリームを別個のコンテナファイル内に記憶することを含む。
【００１７】
本発明のなおも別の実施形態では、ビデオデータの第１のストリームをエンコーディングすることおよびビデオデータの第２のストリームをエンコーディングすることは、スケーラブルビデオコーディングを利用する。
【００１８】
本発明のなおも別の実施形態は、メディアサーバを含み、メディアサーバは、マルチメディアコンテンツを記憶するように構成されたメモリであって、マルチメディアコンテンツは、ソースビデオを含む、メモリと、プロセッサとを含み、プロセッサは、メディアエンコーダアプリケーションによって、複数のエンコーディングレベルから、第１のエンコーディングレベルを選択することと、第１のエンコーディングレベルを使用して、ビデオデータの第１のストリームのためのエンコーディング情報を判定することと、ビデオデータの第１のストリームをエンコーディングすることであって、ビデオデータの第１のストリームは、第１の解像度および第１のビットレートを含む、ことと、複数のエンコーディングレベルから、第２のエンコーディングレベルを選択することと、エンコーディング情報を使用して、ビデオデータの第２のストリームをエンコーディングすることであって、ビデオデータの第２のストリームは、第２の解像度および第２のビットレートを含む、こととを行うように構成される。
【００１９】
本発明のさらに別の付加的実施形態では、第１の解像度および第２の解像度は、同一である。
【００２０】
本発明のなおも別の付加的実施形態では、第１のビットレートは、第２のビットレートを下回る。
【００２１】
本発明のさらになおも別の付加的実施形態では、第１のビットレートは、第２のビットレートを上回る。
【００２２】
本発明のさらに別の実施形態では、第１の解像度は、第２の解像度を下回る。
【００２３】
本発明のなおも別の実施形態では、第１の解像度は、第２の解像度を上回る。
【００２４】
本発明のさらになおも別の実施形態では、判定されたエンコーディング情報は、動き推定結果、加重された予測加重、および場面変化から成る群から選択される。
【００２５】
本発明のさらに別の付加的実施形態では、プロセッサはさらに、第１のエンコーディングレベルを使用して、ビデオデータの第１のストリームのための動き推定を判定し、第２のエンコーディングレベルを使用して、ビデオデータの第２のストリームのための判定された動き推定の結果をスケーリングするように構成される。
【００２６】
本発明のなおも別の付加的実施形態では、判定された動き推定は、階層動き推定を含む。
【００２７】
本発明のさらになおも別の付加的実施形態では、プロセッサはさらに、ビデオデータの第１のストリームおよびビデオデータの第２のストリームをコンテナファイル内に記憶するように構成される。
【００２８】
本発明のさらに別の実施形態では、コンテナファイルは、Ｍａｔｒｏｓｋａコンテナファイルである。
【００２９】
本発明のなおも別の実施形態では、プロセッサはさらに、ビデオデータの第１のストリームおよびビデオデータの第２のストリームを別個のコンテナファイル内に記憶するように構成される。
【００３０】
本発明のさらになおも別の実施形態では、ビデオデータの第１のストリームおよびビデオデータの第２のストリームは、スケーラブルビデオコーディングを使用してエンコーディングされる。
【００３１】
本発明のなおも別の実施形態は、プロセッサ命令を含有する機械可読媒体を含み、プロセッサによる命令の実行は、プロセッサに、複数のエンコーディングレベルから、第１のエンコーディングレベルを選択することと、第１のエンコーディングレベルを使用して、ビデオデータの第１のストリームのためのエンコーディング情報を判定することと、ビデオデータの第１のストリームをエンコーディングすることであって、ビデオデータの第１のストリームは、第１の解像度および第１のビットレートを含む、ことと、複数のエンコーディングレベルから、第２のエンコーディングレベルを選択することと、エンコーディング情報を使用して、ビデオデータの第２のストリームをエンコーディングすることであって、ビデオデータの第２のストリームは、第２の解像度および第２のビットレートを含む、こととを含むプロセスを行わせる。
例えば、本願発明は以下の項目を提供する。
（項目１）
適応ストリーミングシステムにおいて使用するために、マルチメディアコンテンツをエンコーディングするための方法であって、前記方法は、
メディアサーバを使用して、複数のエンコーディングレベルから、第１のエンコーディングレベルを選択することと、
前記第１のエンコーディングレベルおよび前記メディアサーバを使用して、ビデオデータの第１のストリームのためのエンコーディング情報を判定することと、
前記メディアサーバを使用して、ビデオデータの前記第１のストリームをエンコーディングすることであって、ビデオデータの前記第１のストリームは、第１の解像度および第１のビットレートを含む、ことと、
前記メディアサーバを使用して、前記複数のエンコーディングレベルから、第２のエンコーディングレベルを選択することと、
前記エンコーディング情報および前記メディアサーバを使用して、ビデオデータの第２のストリームをエンコーディングすることであって、ビデオデータの前記第２のストリームは、第２の解像度および第２のビットレートを含む、ことと
を含む、方法。
（項目２）
前記第１の解像度および前記第２の解像度は、同一である、項目１に記載の方法。
（項目３）
前記第１のビットレートは、前記第２のビットレートを下回る、項目２に記載の方法。
（項目４）
前記第１のビットレートは、前記第２のビットレートを上回る、項目２に記載の方法。
（項目５）
前記第１の解像度は、前記第２の解像度を下回る、項目１に記載の方法。
（項目６）
前記第１の解像度は、前記第２の解像度を上回る、項目１に記載の方法。
（項目７）
エンコーディング情報を判定することは、動き推定結果を推定すること、加重された予測加重を選択すること、および場面変化を判定することから成る群から選択されるエンコーディング情報を判定することを含む、項目１に記載の方法。
（項目８）
前記第１のエンコーディングレベルおよび前記メディアサーバを使用して、ビデオデータの前記第１のストリームのための動き推定を判定することと、
前記第２のエンコーディングレベルおよび前記メディアサーバを使用して、ビデオデータの前記第２のストリームのための前記判定された動き推定の結果をスケーリングすることと
をさらに含む、項目１に記載の方法。
（項目９）
動き推定を判定することは、前記メディアサーバを使用した階層動き推定を含む、項目８に記載の方法。
（項目１０）
前記メディアサーバを使用して、ビデオデータの前記第１のストリームおよびビデオデータの前記第２のストリームをコンテナファイル内に記憶することをさらに含む、項目１に記載の方法。
（項目１１）
前記コンテナファイルは、Ｍａｔｒｏｓｋａコンテナファイルである、項目１０に記載の方法。
（項目１２）
前記メディアサーバを使用して、ビデオデータの前記第１のストリームおよびビデオデータの前記第２のストリームを別個のコンテナファイル内に記憶することをさらに含む、項目１に記載の方法。
（項目１３）
ビデオデータの前記第１のストリームをエンコーディングすることおよびビデオデータの前記第２のストリームをエンコーディングすることは、スケーラブルビデオコーディングを利用する、項目１に記載の方法。
（項目１４）
メディアサーバであって、前記メディアサーバは、
マルチメディアコンテンツを記憶するように構成されたメモリであって、前記マルチメディアコンテンツは、ソースビデオを含む、メモリと、
プロセッサと
を備え、
前記プロセッサは、メディアエンコーダアプリケーションによって、
複数のエンコーディングレベルから、第１のエンコーディングレベルを選択することと、
前記第１のエンコーディングレベルを使用して、ビデオデータの第１のストリームのためのエンコーディング情報を判定することと、
ビデオデータの前記第１のストリームをエンコーディングすることであって、ビデオデータの前記第１のストリームは、第１の解像度および第１のビットレートを含む、ことと、
前記複数のエンコーディングレベルから、第２のエンコーディングレベルを選択することと、
前記エンコーディング情報を使用して、ビデオデータの第２のストリームをエンコーディングすることであって、ビデオデータの前記第２のストリームは、第２の解像度および第２のビットレートを含む、ことと
を行うように構成されている、メディアサーバ。
（項目１５）
前記第１の解像度および前記第２の解像度は、同一である、項目１４に記載のメディアサーバ。
（項目１６）
前記第１のビットレートは、前記第２のビットレートを下回る、項目１５に記載のメディアサーバ。
（項目１７）
前記第１のビットレートは、前記第２のビットレートを上回る、項目１５に記載のメディアサーバ。
（項目１８）
前記第１の解像度は、前記第２の解像度を下回る、項目１４に記載のメディアサーバ。
（項目１９）
前記第１の解像度は、前記第２の解像度を上回る、項目１４に記載のメディアサーバ。
（項目２０）
前記判定されたエンコーディング情報は、感情推定結果、加重された予測加重、および場面変化から成る群から選択される、項目１４に記載のメディアサーバ。
（項目２１）
前記プロセッサはさらに、
前記第１のエンコーディングレベルを使用して、ビデオデータの前記第１のストリームのための動き推定を判定することと、
前記第２のエンコーディングレベルを使用して、ビデオデータの前記第２のストリームのための前記判定された動き推定の結果をスケーリングすることと
を行うように構成されている、項目１４に記載のメディアサーバ。
（項目２２）
前記判定された動き推定は、階層動き推定を含む、項目２１に記載のメディアサーバ。
（項目２３）
前記プロセッサはさらに、ビデオデータの前記第１のストリームおよびビデオデータの前記第２のストリームをコンテナファイル内に記憶するように構成されている、項目１４に記載のメディアサーバ。
（項目２４）
前記コンテナファイルは、Ｍａｔｒｏｓｋａコンテナファイルである、項目２３に記載のメディアサーバ。
（項目２５）
前記プロセッサはさらに、ビデオデータの前記第１のストリームおよびビデオデータの前記第２のストリームを別個のコンテナファイル内に記憶するように構成されている、項目１４に記載のメディアサーバ。
（項目２６）
ビデオデータの前記第１のストリームおよびビデオデータの前記第２のストリームは、スケーラブルビデオコーディングを使用してエンコーディングされる、項目１４に記載のメディアサーバ。
（項目２７）
プロセッサ命令を含有する機械可読媒体であって、プロセッサによる前記命令の実行は、前記プロセッサに、
複数のエンコーディングレベルから、第１のエンコーディングレベルを選択することと、
前記第１のエンコーディングレベルを使用して、ビデオデータの第１のストリームのためのエンコーディング情報を判定することと、
ビデオデータの前記第１のストリームをエンコーディングすることであって、ビデオデータの前記第１のストリームは、第１の解像度および第１のビットレートを含む、ことと、
前記複数のエンコーディングレベルから、第２のエンコーディングレベルを選択することと、
前記エンコーディング情報を使用して、ビデオデータの第２のストリームをエンコーディングすることであって、ビデオデータの第２のストリームは、第２の解像度および第２のビットレートを含む、ことと
を含むプロセスを行わせる、機械可読媒体。
【図面の簡単な説明】
【００３２】
【図１】図１は、本発明のある実施形態による、適応ストリーミングシステムのシステム略図である。
【図２】図２は、本発明のある実施形態による、適応ストリーミングシステムにおいて使用するためのビデオデータのストリームをエンコーディングするように構成される、メディアサーバのブロック図である。
【図３】図３は、本発明のある実施形態による、適応ストリーミングシステムにおいて使用するためのビデオデータのストリームをエンコーディングするように構成される、メディアサーバを概念的に図示する。
【図４】図４は、本発明のある実施形態による、ビデオデータの代替ストリームのエンコーディングにおいて、エンコーディング情報を再使用するためのプロセスを図示する、流れ図である。
【図５】図５は、本発明のある実施形態による、マッチングマクロブロックを有するビデオデータの代替ストリームのエンコーディング間の動き推定を再使用するためのプロセスを図示する、流れ図である。
【図６】図６は、本発明のある実施形態による、ビデオデータのフレーム内のマクロブロックの階層動き推定を行うためのプロセスを図示する、流れ図である。
【発明を実施するための形態】
【００３３】
（詳細な説明）
ここで、図面を参照すると、本発明の実施形態による、ビデオデータの代替ストリームのエンコーディングにおいて、エンコーディング情報を再使用するためのシステムおよび方法が、開示される。本発明は、適応ストリーミングシステムおよびブロックベースのビデオエンコーディング技法に関して後述されるが、説明されるシステムおよび方法は、ビデオデータの異なるストリームが、ネットワーククライアントの接続品質およびブロックベースではないビデオエンコーディング技法に基づいて選択される、従来のストリーミングシステムにおいても等しく適用可能である。
【００３４】
適応ストリーミングシステムでは、マルチメディアコンテンツは、一式のビデオデータの代替ストリームとしてエンコーディングされる。ビデオデータの各代替ストリームは、同一のソースマルチメディアコンテンツを使用してエンコーディングされるため、類似エンコーディング情報が、ビデオデータの各代替ストリームのエンコーディングにおいて判定される。エンコーディング情報は、限定ではないが、動き推定結果、加重された予測加重の選択、および場面変化の判定を含む。本発明の多くの実施形態によるシステムおよび方法は、ビデオデータのある代替ストリームのエンコーディングにおいて判定されたエンコーディング情報を、ビデオデータの少なくとも１つの他の代替ストリームのエンコーディングにおいて再使用する。ビデオデータのいくつかの代替ストリームのエンコーディングにおいて、エンコーディング情報を再使用することによって、ビデオデータの代替ストリームのエンコーディングにおける有意な改良が、達成されることができ、特に、有意な時間節約が、本発明の実施形態に従って実現され得る。
【００３５】
適応ストリーミングシステムは、インターネット等のネットワークを経由して、異なる最大ビットレートおよび解像度においてエンコーディングされたマルチメディアコンテンツをストリーミングするように構成される。適応ストリーミングシステムは、現在のストリーミング条件に基づいてサポートされ得る、最高品質のマルチメディアコンテンツをストリーミングする。マルチメディアコンテンツは、典型的には、ビデオおよびオーディオデータ、字幕、および他の関連メタデータを含む。ネットワークデータレートから独立して、最高品質ビデオ経験を提供するために、適応ストリーミングシステムは、限定されないが、利用可能なネットワークデータレートおよびビデオデコーダ性能を含む、種々の要因に従って、ビデオデータの配信全体を通して、ビデオデータの利用可能なソース間を切り替えるように構成される。ストリーミング条件が悪化すると、適応ストリーミングシステムは、典型的には、より低い最大ビットレートでエンコーディングされたマルチメディアストリームに切り替えることを試みる。利用可能なネットワークデータレートが、最低最大ビットレートでエンコーディングされたストリームのストリーミングをサポートすることができない場合、次いで、再生は、多くの場合、十分な量のコンテンツが再生を再開するためにバッファされることができるまで、中断される。本発明の実施形態による、適応ストリーミングシステムにおいて利用され得る、再生の間、ビデオストリーム間を切り替えるためのシステムおよび方法は、２０１１年８月３０日出願のＢｒａｎｅｓｓらの米国特許出願第１３／２２１，６８２号「Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ａｄａｐｔｉｖｅ  Ｂｉｔｒａｔｅ  Ｓｔｒｅａｍｉｎｇ  ｏｆ  Ｍｅｄｉａ  Ｓｔｏｒｅｄ  ｉｎ  Ｍａｔｒｏｓｋａ  Ｃｏｎｔａｉｎｅｒ  Ｆｉｌｅｓ  Ｕｓｉｎｇ  Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ」に説明される（全体として、参照することによって組み込まれる）。
【００３６】
適応ストリーミングシステムにおいて利用されるビデオデータの複数のソースを作成するために、ソースエンコーダは、一連のマルチメディアコンテンツ内に含有されるソースビデオから、複数のビデオデータの代替ストリームをエンコーディングするように構成されることができる。適応ストリーミングシステムにおいて使用するためのソースビデオをエンコーディングするためのシステムおよび方法は、２０１１年８月３０日出願のＢｒａｎｅｓｓらの米国特許出願第１３／２２１，７９４号「Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｅｎｃｏｄｉｎｇ  Ｓｏｕｒｃｅ  Ｍｅｄｉａ  ｉｎ  Ｍａｔｒｏｓｋａ  Ｃｏｎｔａｉｎｅｒ  Ｆｉｌｅｓ  ｆｏｒ  Ａｄａｐｔｉｖｅ  Ｂｉｔｒａｔｅ  Ｓｔｒｅａｍｉｎｇ  Ｕｓｉｎｇ  Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ」に開示される（全体として、参照することによって組み込まれる）。本発明の実施形態によると、ソースエンコーダは、メディアソースおよび／またはメディアサーバを使用して実装されてもよい。
【００３７】
前述のように、同一のソースビデオに基づくビデオデータの代替ストリームは、類似コンテンツを含有する。したがって、ソースビデオのためのビデオデータのある代替ストリームのエンコーディングにおいて判定されたエンコーディング情報は、ビデオデータの他の代替ストリームのうちの１つ以上のエンコーディングにおいて再使用されてもよい。本発明の実施形態によると、同一のソースビデオに基づく、一式のビデオデータの代替ストリームは、同一の解像度であるが、異なるビットレートにおいて、ビデオデータを含有してもよい。本発明の多くの実施形態では、ビデオデータの特定の代替ストリームのエンコーディングのために計算される動き推定結果は、ビデオデータの全代替ストリームの中から再使用されることができる。以下に論じられるように、ビデオデータの代替ストリームのエンコーディングにおいて判定された種々のエンコーディング情報は、ビデオデータの代替ストリームの中から再使用されてもよい。本発明の実施形態による、ビデオデータの代替ストリームのエンコーディングにおいて、エンコーディング情報を再使用するためのシステムおよび方法は、以下にさらに論じられる。
【００３８】
（システム概要）
本発明の実施形態による、適応ストリーミングシステムは、ストリーミング条件に基づいて、ネットワーククライアントに伝送されるビデオに適応するように構成される。本発明のある実施形態による、適応ストリーミングシステムは、図１に図示される。図示される適応ストリーミングシステム１０は、マルチメディアコンテンツを含有するメディアソース１００を含む。本発明のいくつかの実施形態では、メディアソース１００内に記憶されるマルチメディアコンテンツは、適応ストリーミングのために、複数のビットレートおよび解像度でエンコーディングされたビデオデータの複数の事前にエンコーディングされたストリームを含有し、ビデオデータの複数のストリーム内のビデオデータのストリームのうちの少なくとも１つのエンコーディングは、ビデオデータの第２のストリームのエンコーディングにおいて判定されたエンコーディング情報を再使用する。本発明のいくつかの実施形態では、メディアソース１００は、ビデオデータの複数のストリームをリアルタイムでエンコーディングし、ビデオデータの複数のストリーム内のビデオデータのストリームのうちの少なくとも１つのエンコーディングは、ビデオデータの第２のストリームのエンコーディングにおいて判定されたエンコーディング情報を再使用する。本発明の多くの実施形態では、メディアソース１００内に記憶されるマルチメディアコンテンツは、スケーラブルビデオコーディング（ＳＶＣ）を利用してエンコーディングされたビデオデータを含有する。いくつかの実施形態では、メディアソース１００は、ビデオデータの代替ストリームとして、等しいタイムラインを伴う、ビデオデータの複数のストリームを含有する。メディアソース１００は、ネットワークレンダラ１０２に接続される。多くの実施形態では、メディアソース１００およびネットワークレンダラ１０２は、メディアサーバを使用して実装される。ネットワークレンダラ１０２は、ネットワーク１１０を介して、複数のネットワーククライアント１０４に接続される。ネットワークレンダラ１０２は、ビデオデータを１つ以上のネットワーククライアント１０４にストリーミングするように構成される。ネットワーククライアント１０４はそれぞれ、ネットワークレンダラ１０２を使用して、メディアソース１００からストリーミングされたメディアをデコーディングするように構成される、メディアデコーダ１０６を含有する。
【００３９】
本発明の多くの実施形態では、メディアソース１００および／またはネットワークレンダラ１０２は、単一機械を使用して実装される。本発明のいくつかの実施形態では、メディアソース１００および／またはネットワークレンダラ１０２は、複数の機械を使用して実装される。本発明の多くの実施形態では、メディアソース１００およびネットワークレンダラ１０２は、メディアサーバを使用して実装される。多くの実施形態では、ネットワーク１１０は、インターネットである。いくつかの実施形態では、ネットワーク１１０は、任意のＩＰネットワークである。いくつかの実施形態では、ネットワーク１１０は、セルラーデータネットワークである。
【００４０】
適応ストリーミングシステムの具体的アーキテクチャが、図１に示されるが、具体的アプリケーションに適切な他の実装も、本発明の実施形態に従って、利用されることができる。本発明の実施形態による、ビデオデータの代替ストリームのエンコーディングにおける、エンコーディング情報の再使用のためのシステムおよび方法は、以下にさらに論じられる。
【００４１】
（適応ストリーミングのために、メディアをエンコーディング可能なメディアサーバ）
本発明の実施形態によると、メディアサーバは、マルチメディアコンテンツ内に含有されるソースビデオのための複数のビデオデータの代替ストリームをエンコーディングするように構成される。図２は、本発明のある実施形態による、メディアサーバのブロック図である。メディアサーバ２００は、プロセッサ２１０およびビデオエンコーダ２１２を含む。プロセッサは、ソースビデオを前提として、ビデオデータの複数のストリームをエンコーディングするように構成される。いくつかの実施形態では、ビデオエンコーダ２１２は、ハードウェア内に実装される。いくつかの実施形態では、ビデオエンコーダ２１２は、グラフィック処理ユニットを利用して実装される。多くの実施形態では、ビデオエンコーダ２１２は、ビデオデータの代替ストリームをエンコーディングするように、プロセッサ２１０を構成する、ソフトウェアアプリケーションである。
【００４２】
いくつかの実施形態では、メディアサーバ２００は、マルチメディアコンテンツおよび／またはビデオデータの代替ストリームを記憶するように構成される、プロセッサ２１０に接続された記憶デバイス２２０を含む。本発明の多くの実施形態では、プロセス４００は、スケーラブルビデオコーディングを使用して、マルチメディアコンテンツをエンコーディングする。いくつかの実施形態では、ビデオデータの代替ストリームは、Ｍａｔｒｏｓｋａコンテナ形式を利用して、コンテナ内に記憶される。本発明の実施形態によると、ビデオデータの代替ストリームは、写真構造の適応グループを有する。
【００４３】
いくつかの実施形態では、メディアサーバ２００は、プロセッサ２１０に接続されたディスプレイデバイス２２４を含み、ディスプレイデバイスは、ビデオデータの代替ストリームおよび／またはビデオデータの代替ストリームのエンコーディングに関連する情報を表示するために使用されてもよい。本発明の実施形態によると、メディアサーバ２００は、マルチメディアコンテンツをエンコーディングおよび／またはストリーミングするために適切なソフトウェアアプリケーションとともに構成される、１つ以上のサーバを使用して実装される。メディアサーバ２００は、随意に、プロセッサ２１０に接続されたネットワークデバイス２２２を含む。多くの実施形態では、ネットワークデバイス２２２は、ネットワーク接続を確立するように構成され、プロセッサ２１０は、適応ストリーミングシステムにおいて使用するためのネットワーク接続を使用して、マルチメディアコンテンツをストリーミングするように構成される。
【００４４】
本発明のある実施形態による、メディアサーバの基本アーキテクチャは、図３に図示される。メディアサーバ３００は、不揮発性メモリ３３０および揮発性メモリ３２０と通信する、プロセッサ３１０を含む。図示される実施形態では、不揮発性メモリは、ソースビデオのためのビデオデータの複数の代替ストリームをエンコーディングするようにプロセッサを構成する、ビデオエンコーダ３３２を含み、ビデオデータの代替ストリームのうちの少なくとも１つのエンコーディングは、ビデオデータの第２の代替ストリームのエンコーディングにおいて判定されたエンコーディング情報を再使用する。いくつかの実施形態では、ビデオエンコーダ３３２は、プロセッサ３１０を使用して実装される。ネットワーククライアント３００はまた、ネットワーク接続を経由して、データを送受信するように構成される、ネットワークインターフェース３４０を含む。いくつかの実施形態では、ネットワークインターフェース３４０は、プロセッサ３１０、不揮発性メモリ３３０、および揮発性メモリ３２０と通信する。
【００４５】
本発明の多くの実施形態では、メディアサーバ３００は、複数のプロセッサを含む。いくつかの実施形態では、ビデオエンコーダ３３２は、専用ハードウェアを使用して実装される。メディアサーバのための具体的アーキテクチャは、図３に図示されるが、ビデオエンコーダ３３２が、ディスクまたはいくつかの他の形態の記憶上に位置し、ランタイム時、揮発性メモリ３２０にロードされる、アーキテクチャを含む、種々のアーキテクチャのいずれかが、本発明の実施形態による、適応ストリーミングシステムにおいて使用するためのメディアサーバを実装するために利用されてもよい。
【００４６】
メディアサーバの具体的実装が、図２に示されるが、具体的アプリケーションに適切な他の実装も、本発明の実施形態に従って、利用されることができる。本発明の実施形態による、ビデオデータの代替ストリームのエンコーディングにおいて、エンコーディング情報を再使用するためのシステムおよび方法は、以下にさらに論じられる。
【００４７】
（ビデオデータの代替ストリームのエンコーディングにおけるエンコーディング情報の再使用）
マルチメディアコンテンツの適応ストリーミングにおいて利用されるビデオデータのストリームを提供するために、メディアサーバは、ビデオデータの代替ストリームとしてマルチメディアコンテンツをエンコーディングすることができる。メディアサーバは、ビデオデータのあるストリームのエンコーディングにおいて判定されたエンコーディング情報を、ビデオデータの残りのストリームのうちの１つ以上のエンコーディングにおいて再使用することによって、ビデオデータの代替ストリームのエンコーディングの速度および性能を改善することができる。ソースビデオのためのビデオデータの代替ストリームのエンコーディングにおいて、エンコーディング情報を再使用するためのプロセスは、図４に図示される。プロセス４００は、ソースビデオを含有するマルチメディアコンテンツを受信するステップ（４１０）を含む。いくつかの実施形態では、エンコーディングレベルが、ソースビデオに対して判定される（４１２）。エンコーディングレベルが、選択される（４１４）。エンコーディング情報は、選択されたエンコーディングレベルに対して判定される（４１６）。エンコーディング情報は、選択されていないエンコーディングレベルのうちの１つ以上にわたって再使用される（４１８）。
【００４８】
いくつかの実施形態では、エンコーディングレベルは、限定されないが、予想されるネットワークデータレート、ネットワーククライアントの予想される画面解像度、および／またはソースビデオの解像度および／またはビットレートを含む要因に基づいて、判定される（４１２）。いくつかの実施形態では、エンコーディングレベルは、記憶された値を読み出すことによって判定される（４１２）。本発明の実施形態によると、ある解像度およびビットレートを有するビデオデータの代替ストリームが、各エンコーディングレベルに対してエンコーディングされる。多くの実施形態では、ビデオデータの代替ストリームは、同一の解像度および可変ビットレートを有する。いくつかの実施形態では、選択された（４１４）エンコーディングレベルは、最低ビットレートを伴うビデオデータの代替ストリームに対応する。いくつかの実施形態では、選択された（４１４）エンコーディングレベルは、最高ビットレートを伴うビデオデータの代替ストリームに対応する。いくつかの実施形態では、種々の判定された（４１６）エンコーディング情報は、限定されないが、動き推定結果、加重された予測加重の選択、および場面変化の判定を含む、同一の解像度および可変ビットレートにおけるビデオデータを有するエンコーディングレベルにわたって、再使用されてもよい（４１８）。本発明の実施形態によると、エンコーディング情報は、エンコーディングレベルにわたって再使用され（４１８）、算出上の複雑性における有意な節約をもたらすことができる。
【００４９】
いくつかの実施形態では、判定された（４１２）エンコーディングレベルに基づいてエンコーディングされたビデオデータの代替ストリームは、可変解像度およびビットレートを有する。多くの実施形態では、選択された（４１４）エンコーディングレベルは、最低解像度を有する、ビデオデータの代替ストリームに対応する。いくつかの実施形態では、選択された（４１４）エンコーディングレベルは、最高解像度を有する、ビデオデータの代替ストリームに対応する。いくつかの実施形態では、判定された（４１６）エンコーディング情報は、異なる解像度を有するビデオデータのストリームにわたって再使用される（４１８）。本発明の多くの実施形態によると、再使用されるエンコーディング情報（４１８）は、エンコーディングレベルにわたって変動してもよい。例えば、再使用される（４１８）エンコーディング情報が、動きベクトルである場合、動きベクトルは、ビデオデータの代替ストリームの異なる解像度に対してスケーリングされることができる。前述の情報等の他のエンコーディング情報も同様に、異なる解像度を有するビデオデータの代替ストリームに対応するエンコーディングレベル間でスケーリングされてもよい。
【００５０】
本発明のある実施形態による、ビデオデータの代替ストリームのエンコーディングにおける、エンコーディング情報の再使用のための具体的プロセスが、前述されたが、具体的に列挙されていないエンコーディング情報を再使用するステップ、およびエンコーディング情報の初期判定後、後に作成されたビデオデータの代替ストリームにおいてエンコーディング情報を再使用するステップを含む、種々のプロセスが、本発明の実施形態に従って、利用されてもよい。本発明のある実施形態による、ビデオデータの代替ストリームのエンコーディングにおいて使用される動き推定を再使用するためのプロセスは、以下に論じられる。
【００５１】
（ビデオデータの代替ストリームのエンコーディングにおける動き推定の再使用）
Ｈ．２６４等の種々のビデオ圧縮規格が、適応ストリーミングシステムにおいて使用するためのビデオデータの代替ストリームをエンコーディングするために利用されてもよい。ビデオ圧縮規格の多くは、マクロブロックを含有するビデオのフレームを利用し、ビデオデータのストリームのエンコーディングは、ビデオのフレーム間のマクロブロックの動き推定の計算を伴う。本発明の実施形態によると、ビデオデータのストリームのビットレートは、動き推定の同一のビット数を配分し、マクロブロック記述に割り当てられるビット数を増減することによって、変動されることができる。
【００５２】
本発明のある実施形態による、一連のマルチメディアコンテンツ内に含有される同一のソースビデオから派生したビデオデータの代替ストリーム間のマクロブロックの動きの動き推定を再使用するためのプロセスは、図５に図示される。プロセス５００は、ソースビデオのダウンスケーリングを行い、ビデオデータの代替ストリームを判定するステップを含む（５１０）。ビデオデータの代替ストリームが、選択される（５１２）。マクロブロックは、ビデオデータの選択されたストリームに対して判定される（５１４）。ビデオデータの第２の代替ストリーム内のマクロブロックをマッチングするための検索（５１６）が、行われる。ビデオデータの第２の代替ストリームが、１つ以上のマッチングマクロブロックを含有する場合、マッチングマクロブロックに関連する動き推定結果は、ビデオデータの第２の代替ストリームのエンコーディングにおいて再使用される（５１８）。
【００５３】
限定されないが、全検索、ヒューリスティック検索、および階層推定を含む、ビデオデータのフレーム内のマクロブロックの動きの推定を算出するためのいくつかの方法が、存在する。階層推定は、高速かつ効率的様式において、正確な結果を提供するため、一般に使用される。本発明のある実施形態による、ビデオデータのフレーム内のマクロブロックの階層動き推定を行うためのプロセスは、図６に図示される。プロセス６００は、検索において使用されるゼロ解像度として知られる、ビデオデータのフレームを選択するステップ（６１０）を含む。解像度が、選択されたフレームに対して作成される（６１２）。本発明の実施形態によると、２つ以上の解像度が、作成され（６１２）、作成された解像度は、以前の解像度より低い。解像度は、限定されないが、平均強度およびサブサンプリングを含む、種々の画像サンプリング技法を使用して、作成されてもよい（６１２）。最高解像度が、ゼロ解像度におけるマクロブロックに対応するマクロブロックに対して検索される（６１４）。動き推定が、最高解像度における対応するマクロブロックに対して算出される（６１６）。ゼロ解像度フレームに達する場合（６１８）、算出された（６１６）動き推定は、ビデオデータのフレームに対する動き推定として使用され、プロセスは、完了する。ゼロ解像度フレームに達しない場合（６１８）、次の解像度が、検索され（６１４）、動き推定が、以前に算出された（６１６）動き推定および対応するマクロブロックが以前解像度と現在解像度との間で移動した距離を利用して、算出される（６１６）。いくつかの実施形態では、マクロブロック動きは、平均絶対偏差、平均平方偏差、およびピクセル差分類を含む、種々の方法によって算出される。
【００５４】
図５に戻ると、いくつかの実施形態では、マクロブロックをマッチングするための検索（５１６）は、階層動き推定を利用する。いくつかの実施形態では、中間結果を含む、階層動き推定結果が、異なる解像度を有するビデオデータの代替ストリーム間で再使用されてもよい（５１８）。多くの実施形態では、ビデオデータの選択された（５１２）ストリームは、最低解像度を伴うビデオデータの代替ストリームである。いくつかの実施形態では、ビデオデータの選択された（５１２）ストリームは、最高解像度を有する。いくつかの実施形態では、再使用される（５１８）動き推定結果は、ビデオデータの代替ストリーム間でスケーリングされる。ビデオデータの代替ストリームのエンコーディングにおいて、動き推定を再使用するための具体的プロセスが、前述された。しかしながら、動き推定を再使用するための種々のプロセスが、本発明の実施形態に従って、利用されてもよい。
【００５５】
本発明は、ある具体的側面において説明されたが、多くの付加的修正および変形例が、当業者に明白である。したがって、本発明は、本発明の範囲および精神から逸脱することなく、具体的に説明されるものと別様に実践され得ることを理解されたい。したがって、本発明の実施形態は、あらゆる観点において、制限ではなく、例証として見なされるべきである。故に、本発明の範囲は、図示される実施形態によってではなく、添付の請求項およびその均等物によって判定されるべきである。
【図１】
2019030022.tif 000003
【図２】
2019030022.tif 000004
【図３】
2019030022.tif 000005
【図４】
2019030022.tif 000006
【図５】
2019030022.tif 000007
【図６】
2019030022.tif 000008
【外国語明細書】
2019030022000001.pdf