(57)【特許請求の範囲】
【請求項１】
通信ネットワークでコンテンツを伝送するための動作方法であって、
コンテンツを要求する要求メッセージを受信する過程と、
前記コンテンツに含まれ、かつ、キャッシュに保存されたセグメントの識別子（ＩＤ）のうち前記要求メッセージに含まれたセグメントＩＤと一致するセグメントＩＤを有する少なくとも１つのセグメントを決定する過程と、
前記要求メッセージにより要求されたビットレートを満たす前記少なくとも１つのセグメントに対するレート歪み動作点（ＲＤＯｐ）を決定する過程と、
決定した前記ＲＤＯｐに基づいて、前記少なくとも１つのセグメントに含まれるフレームのうちいずれのフレームを伝送するかを決定する過程と、
決定した前記フレームを伝送する過程と、
を含む方法。
【請求項２】
前記キャッシュが、少なくとも１つのセグメントを有するアセットを識別するアセット識別子（ＩＤ）のリストと、  前記セグメントＩＤに対するレート歪み動作点（ＲＤＯｐ）のリストと、を保存する過程をさらに含み、
前記ＲＤＯｐは、
前記キャッシュのコンテンツファイルに保存されたセグメントの断片に対応するメディアデータユニット（Media Data Unit、ＭＤＵ）インデックスと、ユーザ体験品質（ＱｏＥ）媒介変数と、を含む、請求項１に記載の方法。
【請求項３】
前記要求メッセージに含まれたアセットＩＤと前記キャッシュに保存されたアセットＩＤとをマッチングする過程をさらに含む、請求項１に記載の方法。
【請求項４】
前記要求メッセージに含まれた前記セグメントＩＤは、前記要求されたコンテンツの指紋及び前記要求されたコンテンツのタイムスタンプのうち１つを含む、請求項３に記載の方法。
【請求項５】
前記ＲＤＯｐを決定する過程は、前記ＲＤＯｐのサービス品質（ＱｏＳ）媒介変数が前記要求メッセージに含まれたビットレートと等しいか超えるかを決定する過程を含む、請求項１に記載の方法。
【請求項６】
前記ＲＤＯｐは、
前記要求されたコンテンツの歪みを表示するＱｏＥ媒介変数と、前記キャッシュのコンテンツファイルに保存された前記要求されたコンテンツのセグメントの断片に対応するメディアデータユニット（Media Data Unit、ＭＤＵ）インデックスと、を含み、
前記要求されたコンテンツは前記断片を含む、請求項５に記載の方法。
【請求項７】
前記要求メッセージを受信する過程は、クライアント装置とコンテンツデリバリネットワーク（ＣＤＮ）サーバとの間のデータ経路に沿って配置されたキャッシュによって前記要求メッセージをインターセプトする過程を含む、請求項１に記載の方法。
【請求項８】
通信ネットワークで使用するための装置であって、
コンテンツを要求する要求メッセージを受信し、
前記コンテンツに含まれ、かつ、キャッシュに保存されたセグメントの識別子（ＩＤ）のうち前記要求メッセージに含まれたセグメントＩＤと一致するセグメントＩＤを有する少なくとも１つのセグメントを決定し、
前記要求メッセージにより要求されたビットレートを満たす前記少なくとも１つのセグメントに対するレート歪み動作点（ＲＤＯｐ）を決定し、
決定した前記ＲＤＯｐに基づいて、前記少なくとも１つのセグメントに含まれるフレームのうちいずれのフレームを伝送するかを決定し、
決定した前記フレームを伝送するように構成された処理回路を、
含む装置。
【請求項９】
前記ＲＤＯｐは、
前記キャッシュのコンテンツファイルに保存されたセグメントの断片に対応するメディアデータユニット（Media Data Unit、ＭＤＵ）インデックスと、ユーザ体験品質（ＱｏＥ）媒介変数と、を含む、請求項８に記載の装置。
【請求項１０】
前記処理回路は、前記要求メッセージに含まれたアセットＩＤと前記キャッシュに保存されたアセットＩＤとをマッチングするようにさらに構成される、請求項８に記載の装置。
【請求項１１】
前記要求メッセージに含まれた前記セグメントＩＤは、前記要求されたコンテンツの指紋及び前記要求されたコンテンツのタイムスタンプのうち１つを含む、請求項１０に記載の装置。
【請求項１２】
前記処理回路は、前記ＲＤＯｐのサービス品質（ＱｏＳ）媒介変数が前記要求メッセージに含まれたビットレートと等しいか超えるかを決定するようにさらに構成される、請求項８に記載の装置。
【請求項１３】
前記ＲＤＯｐは、
前記要求されたコンテンツの歪みを表示するＱｏＥ媒介変数と、前記キャッシュのコンテンツファイルに保存された前記要求されたコンテンツのセグメントの断片に対応するメディアデータユニット（Media Data Unit、ＭＤＵ）インデックスと、を含み、
前記要求されたコンテンツは前記断片を含む、請求項１２に記載の装置。
【請求項１４】
前記処理回路は、クライアント装置とコンテンツデリバリネットワーク（ＣＤＮ）サーバとの間のデータ経路から前記要求メッセージをインターセプトして前記要求メッセージを受信するようにさらに構成される、請求項８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にビデオコンテンツツ伝送システム、より具体的には、効率的なピア支援ストリーミング（ｐｅｅｒ  ａｓｓｉｓｔｅｄ  ｓｔｒｅａｍｉｎｇ）のためのキャッシュマニフェスト（ｃａｃｈｅ  ｍａｎｉｆｅｓｔ）に関する。
【背景技術】
【０００２】
ユーザはインターネットを介して高解像度（ｈｉｇｈ  ｄｅｆｉｎｉｔｉｏｎ、ＨＤ）又は超高解像度（ｕｌｔｒａ−ｈｉｇｈ  ｄｅｆｉｎｉｔｉｏｎ、ＵＨＤ）ビデオコンテンツを受信することを要求する。現在、インターネットはＨＤ又はＵＨＤ品質ビデオのストリーミングをサポートするが、制限された終端間（ｅｎｄ−ｔｏ−ｅｎｄ）帯域幅、処理量の不確実性、及び遅延の不確実性によって多くの問題が発生している。インターネットネットワークはネットワークの多様な場所でキャッシュ（ｃａｃｈｅ）を含み、キャッシュホストの帯域幅を利用することでビデオコンテンツ伝送を加速化させる。混雑しないオーバーレイ経路を探索し、可能な場合にはトラフィックをローカル化することによって、複数のユーザに人気番組（例えば、ワールドカップサッカーゲーム及び中国の新年慶祝行事）を生放送で伝達するためにクールストリームのような初期システムが用いられていた。
【発明の概要】
【課題を解決するための手段】
【０００３】
第１実施例において、通信ネットワークでコンテンツを伝送する方法は、提供されるコンテンツを要求する要求メッセージをキャッシュによって受信するステップを含む。方法は、複数のキャッシュの能力及びコンテンツを指示するステップに対応する複数のキャッシュマニフェストを保存するステップを含む。それぞれのキャッシュマニフェストは、対応するキャッシュの能力及びコンテンツを表し、対応するキャッシュに保存されたコンテンツの説明をリスト化（ｌｉｓｔ）する。方法は、複数のキャッシュマニフェストの情報に基づいて、要求されたコンテンツを提供すると決定するステップを含み、提供すると決定するステップは、複数のキャッシュの中から要求されたコンテンツを提供すべきキャッシュを選択するステップを含む。また、方法は、当該決定に応じて、選択されたキャッシュに対して、要求メッセージを生成したクライアント装置に要求されたコンテンツを伝送するよう指示するステップを含む。代わりに、方法は、複数のキャッシュマニフェストの情報に基づいて、要求されたコンテンツを提供しないように決定するステップと、上位レベル装置に要求メッセージを伝送するステップと、を含む。
【０００４】
第２実施例において、通信ネットワークで使用するための装置が提供される。装置は、提供されるコンテンツを要求する要求メッセージを受信し、複数のキャッシュのコンテンツ及び能力を指示するステップに対応する複数のキャッシュマニフェストを保存するように構成された処理回路を含む。それぞれのキャッシュマニフェストは、対応するキャッシュのコンテンツ及び能力を表し、対応するキャッシュに保存されたコンテンツの説明をリスト化する。また、処理回路は、複数のキャッシュマニフェストの情報に基づいて、要求されたコンテンツを提供すると決定するように構成され、提供すると決定するステップは、複数のキャッシュの中から要求されたコンテンツを提供すべきキャッシュを選択するステップを含む。また、処理回路は、当該決定に応じて、選択されたキャッシュに対して、要求メッセージを生成したクライアント装置に要求されたコンテンツを伝送するよう指示するように構成される。代わりに、処理回路は、複数のキャッシュマニフェストの情報に基づいて、要求されたコンテンツを提供しないように決定し、上位レベル装置に要求メッセージを伝送するように構成される。
【０００５】
第３実施例において、通信ネットワークで使用するためのクライアント装置が提供される。クライアント装置は、コンテンツを保存するように構成された再生バッファを含む。クライアント装置は、再生バッファのコンテンツ及び能力を表し、再生バッファに保存されたコンテンツの説明をリスト化するキャッシュマニフェストを生成するように構成された処理回路を含む。説明は、アセット識別子のリストを含み、それぞれのアセット識別子（ＩＤ）は、再生バッファに少なくとも１つのセグメントが保存されているアセットを識別する。要求メッセージはアセット識別子（ＩＤ）を含む。処理回路は、通信ネットワークでコンテンツ伝送サービスサーバ（ＣＤＳＳ）へのアップデートメッセージの伝送を開始するように構成される。アップデートメッセージはＣＤＳＳにキャッシュマニフェストを提供する。
【０００６】
以下の詳細な説明の前に、本特許文書全般にわたって使用される特定の単語及びフレーズの定義を規定することが有利であろう。「カップリング（ｃｏｕｐｌｅ）」との用語及びその派生語は、互いに物理的に接触しているかに関わらず２つ以上の要素間の直接又は間接通信を意味する。「伝送する」、「受信する」、「通信する」との用語及びこれらの派生語は、直接及び間接通信のいずれをも含む。「含む（ｉｎｃｌｕｄｅ）」、「含む（ｃｏｍｐｒｉｓｅ）」との用語及びこれらの派生語は、制限なく含むことを意味する。「又は」との用語は「及び／又は」の意味を含む。「〜と関連づけられた」とのフレーズ及びその派生語は、「含む」、「〜内に含まれる」、「〜と相互連結する」、「含む（ｃｏｎｔａｉｎ）」、「〜内に含まれる」、「〜と又は〜に連結する」、「〜と又は〜に結合する」、「〜と通信できる」、「〜と協働する」、「インタリーブする」、「並べる」、「〜に隣接する」、「〜に又は〜とバインドする」、「有する」、「〜の属性がある」、「〜に又は〜と関係がある」、などを意味する。「コントローラー（ｃｏｎｔｒｏｌｌｅｒ）」との用語は、少なくとも１つの動作を制御する全ての装置、システム又はそれらの一部を意味する。かかるコントローラーは、ハードウェア、又はハードウェアとソフトウェア及び／又はファームウェアの組み合わせにて実現されてもよい。任意の特定のコントローラーと関連づけられた機能は、局部的であろうと遠隔であろうと、集中または分散できる。項目のリストと共に使用される時、「〜の少なくとも１つ」というフレーズは、羅列された項目のうち１つ以上の互いに異なる組み合わせが使用される場合もあり、リストで１つの項目のみが要求される場合もあることを意味する。例えば、「Ａ、Ｂ及びＣのうち少なくとも１つ」は次の組み合わせ、すなわち、Ａ、Ｂ、Ｃ、ＡとＢ、ＡとＣ、ＢとＣ、及びＡとＢとＣのうちいずれか１つを含む。
【０００７】
また、後述される多様な機能は、１つ以上のコンピュータプログラムによって実現またはサポートでき、それぞれのコンピュータプログラムはコンピュータ読み取り可能なプログラムコードから形成されてコンピュータ読み取り可能な媒体に内蔵される。「アプリケーション」及び「プログラム」との用語は、適したコンピュータ読み取り可能なプログラムコードで実現するために構成された、１つ以上のコンピュータプログラム、ソフトウェア構成要素、命令（ｉｎｓｔｒｕｃｔｉｏｎ）の集合、プロシージャー（ｐｒｏｃｅｄｕｒｅ）、関数、オブジェクト、クラス、インスタンス、関連データ、又はそれらの一部を意味する。「コンピュータ読み取り可能なプログラムコード」とのフレーズは、ソースコード、オブジェクトコード及び実行可能なコードを含むあらゆる類型のコンピュータコードを指す。「コンピュータ読み取り可能な媒体」とのフレーズは、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ハードディスクドライブ、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、又は他の類型のメモリのようにコンピュータによってアクセス可能なあらゆる類型の媒体を含む。「非一時的」コンピュータ読み取り可能な媒体は、一時的な電気信号又は他の信号を伝送する有線、無線、光学的、又はその他の通信リンクを排除する。非一時的コンピュータ読み取り可能な媒体は、データを永久に保存できる媒体、及び、リライタブルの光ディスク又は消去可能なメモリデバイスといった、データを保存して後ほど上書き可能な媒体を含む。
【０００８】
他の特定の単語及びフレーズに対する定義は、本特許文書全般にわたって提供される。当業者は大部分ではないが多くの場合にこのような定義がこのような定義された単語及びフレーズの以前だけでなく未来の使用にも適用されることを理解するべきである。本発明のより完全な理解のために、添付図面と共に提供される次の説明を参照する。
【図面の簡単な説明】
【０００９】
【図１】本発明による例示的なコンピューティングシステムを示す図。
【図２】本発明によるコンピューティングシステムにおける例示的な装置を示す図。
【図３】本発明によるコンピューティングシステムにおける例示的な装置を示す図。
【図４】本発明の実施例によるインターネットを介して放送されるキャッシュビデオ伝送のためのデータ経路のネットワークを含むシステムを示す図。
【図５】本発明の実施例によるキャッシュ状態のタイムラインを示す図。
【図６Ａ】本発明の実施例によるＭＭＴキャッシュマニフェストを示す図。
【図６Ｂ】セグメントに対する多様なＲＤＯｐに対応する図６Ａのキャッシュマニフェストでセグメントの例示的なバージョンを示す図。
【図７】本発明の実施例によってＭＭＴキャッシュマニフェスト方式を具現する方法を示す図。
【発明を実施するための形態】
【００１０】
後述される図１乃至図７、及び、本特許文書で本発明の原理を説明するために用いられる多様な実施例は、単なる例示のためのものであって、本発明の範囲を限定するものと解釈されてはならない。当業者は、本発明の原理があらゆる適切に配置された通信装置で実現され得ることを理解できるはずである。
【００１１】
次の文書及び標準説明は、本明細書に完全に明示されたように本発明に含まれる。（ｉ）Ｂｏ  Ｌｉ，Ｓｕｓｕ  Ｘｉｅ，Ｇａｂｒｉｅｌ  Ｙｉｋ  Ｋｅｕｎｇ，Ｊｉａｎｇｃｈｕａｎ  Ｌｉｕ，Ｉｏｎ  Ｓｔｏｉｃａ，Ｈｕｉ  Ｚｈａｎｇ，Ｘｉｎｙａｎ  Ｚｈａｎｇ：クールストリーミング＋システムの実証研究。ＩＥＥＥ  Ｊｏｕｒｎａｌｏｎ  Ｓｅｌｅｃｔｅｄ  Ａｒｅａｓ  ｉｎ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ２５（９）：１６２７−１６３９（２００７）（以下、「ＲＥＦ１」）、（ｉｉ）Ｙｉｎｇ  Ｌｉ，Ｚｈｕ  Ｌｉ，Ｍｕｎｇ  Ｃｈｉａｎｇ，Ａ．Ｒｏｂｅｒｔ  Ｃａｌｄｅｒｂａｎｋ：ピアツーピアライブストリーミングシステムのためのビデオ伝送スケジューリング。ＩＣＭＥ  ２００８：６５３−６５６（以下、「ＲＥＦ２」）、（ｉｉｉ）ＩＳＯ／ＩＥＣ  ２３００８−１，２０１４，「情報技術――異機種環境における高効率コーディング及びメディア伝送――Ｐａｒｔ  １：ＭＰＥＧメディア伝送（ＭＭＴ）」（以下、「ＲＥＦ３」）、（ｉｖ）ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１／ＭＰＥＧ２０１４／ｍ３３２３７，Ｚ．Ｌｉ，Ｉ．Ｂｏｕａｚｉｚｉ，及びＫ．Ｐａｒｋ，ＭＭＴ  Ａｍｄ１：ＭＭＴ  ＡＤＣにおける多重ＱｏＥ運営地点シグナリング（以下、「ＲＥＦ４」）、（ｖ）ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１／ＭＰＥＧ２０１４／ｍ３３２３９，Ｚ．Ｌｉ，及びＩ．Ｂｏｕａｚｉｚｉ，ＦＦ：ＩＳＯに基づくメディアファイルフォーマットでの時間的品質シグナリング（以下、「ＲＥＦ５」）、及び（ｖｉ）ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１／ＭＰＥＧ２０１３／Ｎ１３９９２，Ｙ．Ｒｅｚｎｉｋ，Ａ．Ｇｉｌａｄｉ，Ｏ．Ｏｙｍａｎ，Ｄ．Ｓｉｎｇｅｒ，及びＳ．Ｚｈａｎｇ，「ＩＳＯ／ＩＥＣ  ＸＸＸＸＸ−ＹのＷＤ：ＩＳＯに基づくメディアファイルフォーマットにおける品質関連情報の運送」（以下、「ＲＥＦ６」）。ＲＥＦ１は、複数のユーザに（ワールドカップサッカー及び中国新年慶祝行事のような）人気番組を生放送で伝達するために用いられたクールストリームシステムを説明する。ＲＥＦ２は、ストリーミング時間スケジューリング間隔を説明する。ＲＥＦ３は、ＭＰＥＧ（ｍｏｖｉｎｇ  ｐｉｃｔｕｒｅ  ｅｘｐｅｒｔｓ  ｇｒｏｕｐ）メディア伝送（ＭＭＴ）システムを説明する。
【００１２】
図１は、本発明による例示的なコンピューティングシステム１００を示す。図１に示すコンピューティングシステム１００の実施例は、単なる例示のためのものである。本発明の範囲から逸脱することなく、コンピューティングシステム１００の他の実施例を使用できる。
【００１３】
図１に示すように、システム１００は、システム１００に含まれた多様な構成要素間の通信を可能にするネットワーク１０２を含む。例えば、ネットワーク１０２は、インターネットプロトコル（ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ、ＩＰ）パケット、フレームリレーフレーム、非同期転送モード（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ、ＡＴＭ）セル、又は他のネットワークアドレス（ａｄｄｒｅｓｓｅｓ）間の情報を通信できる。ネットワーク１０２は、１つ以上のローカルエリアネットワーク（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋｓ、ＬＡＮｓ）、メトロポリタンエリアネットワーク（ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋｓ、ＭＡＮｓ）ワイドエリアネットワーク（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋｓ、ＷＡＮｓ）、インターネットのようなグローバルネットワークの全部又は一部、又は１か所以上の位置にある他のあらゆる通信システム又はシステムを含みうる。
【００１４】
ネットワーク１０２は、少なくとも１つのサーバ１０４と多様なクライアント装置１０６〜１１４との間の通信を容易にする。サーバ１０４は、１つ以上のクライアント装置にコンピューティングサービスを提供できるあらゆる適したコンピューティング又は処理装置を含む。例えば、サーバ１０４は、１つ以上の処理装置、命令及びデータを保存する１つ以上のメモリ、及びネットワーク１０２を介した通信を容易にする１つ以上のネットワークインタフェースを含むことができる。
【００１５】
それぞれのクライアント装置１０６〜１１４は、ネットワーク１０２を介して少なくとも１つのサーバ又は他のコンピューティング装置と相互作用（ｉｎｔｅｒａｃｔ）する全ての適したコンピューティング又は処理装置を示す。本実施例において、クライアント装置１０６〜１１４は、デスクトップコンピュータ１０６、携帯電話又はスマートフォン１０８、個人情報端末（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ、ＰＤＡ）１１０、ラップトップコンピュータ１１２、及びタブレットコンピュータ１１４を含む。しかし、他の又は追加的なクライアント装置（例えば、ＴＶ）をコンピューティングシステム１００で使用できる。
【００１６】
本例で、一部のクライアント装置１０８〜１１４は、ネットワーク１０２と間接的に通信する。例えば、クライアント装置１０８、１１０は、セルラー基地局又はｅＮｏｄｅＢのような１つ以上の基地局１１６を介して通信する。また、クライアント装置１１２、１１４は、ＩＥＥＥ  ８０２．１１無線アクセスポイントのような１つ以上の無線アクセスポイント１１８を介して通信する。これらは単なる例示のためのものであって、それぞれのクライアント装置は、ネットワーク１０２と直接的に、又は、全ての適した中間装置又はネットワークを介してネットワーク１０２と間接的に通信できることに留意すべきである。
【００１７】
後ほど詳細に説明するように、コンパクトキャッシュマニフェスト方式は、オンデマンド（ｏｎ−ｄｅｍａｎｄ）及び分配方式でキャッシュコンテンツの検索及びストリーミングをサポートする。
【００１８】
図１は、コンピューティングシステム１００の一例を示すが、多様な変更を図１にて行える。例えば、システム１００は、いかなる適した態様にて、それぞれの構成要素をいくつでも含んでいてもよい。一般的に、コンピューティング及び通信システムは多様な構成で提供されるものなので、図１は、本発明の範囲をある特定の構成に限定するものではない。図１は、本特許文書に開示された多様な特徴を使用可能な１つの動作環境を示すが、これらの特徴は、あらゆる他の適したシステムで使用できる。
【００１９】
図２及び図３は、本発明によるコンピューティングシステムにおける例示的な装置を示す。特に、図２は例示的なサーバ２００を示し、図３は例示的なクライアント装置３００を示す。サーバ２００は、図１のサーバ１０４に対応し、クライアント装置３００は、図１のクライアント装置１０６〜１１４のうち１つ以上に対応する。
【００２０】
図２に示すように、サーバ２００は、バスシステム２０５を含み、バスシステム２０５は、少なくとも１つの処理装置２１０、少なくとも１つの記憶装置２１５、少なくとも１つの通信ユニット２２０、及び少なくとも１つの入力／出力（Ｉ／Ｏ）ユニット２２５の間の通信をサポートする。
【００２１】
処理装置２１０は、メモリ２３０にロードされた命令（ｉｎｓｔｒｕｃｔｉｏｎｓ）を実行する。処理装置２１０は、適切な態様で、適切な個数及び類型のプロセッサ又は他の装置を含みうる。例示的な処理装置２１０の類型は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ、特定用途向け集積回路、及び離散回路を含む。
【００２２】
メモリ２３０及び永続性（ｐｅｒｓｉｓｔｅｎｔ）記憶装置２３５は、情報（データ、プログラムコード、及び／又は他の適切な一時的又は永続的な情報）を記憶し容易に読み出し可能な構造である記憶装置２１５の一例である。メモリ２３０は、ランダムアクセスメモリ又はあらゆる他の適した揮発性又は不揮発性記憶装置をいう。永続性記憶装置２３５は、読み取り専用メモリ、ハードドライブ、フラッシュメモリ、又は光ディスクのようにデータの長期記憶をサポートする１つ以上の構成要素又は装置を含む。
【００２３】
通信ユニット２２０は、他のシステム又は装置との通信をサポートする。例えば、通信ユニット２２０は、ネットワーク１０２を介した通信を容易にする無線送受信機又はネットワークインタフェースカードを含む。通信ユニット２２０は、あらゆる適した物理的又は無線通信リンクを介した通信をサポートできる。
【００２４】
Ｉ／Ｏユニット２２５は、データの入力及び出力を許可する。例えば、Ｉ／Ｏユニット２２５は、キーボード、マウス、キーパッド、タッチスクリーン、又は他の適した入力装置を介して、ユーザ入力のためのインタフェースを提供できる。また、Ｉ／Ｏユニット２２５は、ディスプレイ、プリンタ、又は他の適した出力装置に出力を伝送できる。
【００２５】
図２は、図１のサーバ１０４を示すものとして記載されるが、同じ又は類似の構造をクライアント装置１０６〜１１４のうち１つ以上に使用できることに留意すべきである。例えば、ラップトップ又はデスクトップコンピュータが、図２に示す構造と同じ又は類似の構造を有する場合がある。
【００２６】
図３に示すように、クライアント装置３００は、アンテナ３０５、無線周波数（ｒａｄｉｏ  ｆｒｅｑｕｅｎｃｙ、ＲＦ）送受信機３１０、送信（ｔｒａｎｓｍｉｔ、ＴＸ）処理回路３１５、マイクロホン３２０、及び受信（ｒｅｃｅｉｖｅ、ＲＸ）処理回路３２５を含む。また、クライアント装置３００は、スピーカ３３０、メインプロセッサ３４０、入力／出力（Ｉ／Ｏ）インタフェース（ＩＦ）３４５、キーパッド３５０、ディスプレイ３５５、及びメモリ３６０を含む。メモリ３６０は、オペレーティングシステム（ＯＳ）プログラム３６１及び１つ以上のアプリケーション３６２を含む。
【００２７】
ＲＦ送受信機３１０は、システムに含まれた他の構成要素によって伝送された入力ＲＦ信号を、アンテナ３０５から受信する。ＲＦ送受信機３１０は、中間周波数（ｉｎｔｅｒｍｅｄｉａｔｅ  ｆｒｅｑｕｅｎｃｙ、ＩＦ）又は基底帯域信号を生成するために、入力ＲＦ信号をダウンコンバート（ｄｏｗｎ−ｃｏｎｖｅｒｔ）する。ＩＦ又は基底帯域信号は、ＲＸ処理回路３２５に伝送され、ＲＸ処理回路３２５は、基底帯域又はＩＦ信号をフィルタリング、デコード、及び／又はデジタル化することで、処理された基底帯域信号を生成する。ＲＸ処理回路３２５は、処理された基底帯域信号を、追加的な処理のためのメインプロセッサ３４０（例えば、ウェブブラウジングデータのため）、又は、スピーカ３３０（例えば、音声データのため）に伝送する。
【００２８】
ＴＸ処理回路３１５は、マイクロホン３２０からアナログ又はデジタル音声データを、メインプロセッサ３４０から他の出力基底帯域データ（ウェブデータ、電子メール、又は対話形ビデオゲームデータ）を受信する。ＴＸ処理回路３１５は、処理された基底帯域又はＩＦ信号を生成するために、出力基底帯域データをエンコード、マルチプレックス、及び／又はデジタル化する。ＲＦ送受信機３１０は、ＴＸ処理回路３１５から出力された処理された基底帯域又はＩＦ信号を受信し、基底帯域又はＩＦ信号を、アンテナ３０５を介して伝送されるＲＦ信号にアップコンバート（ｕｐ−ｃｏｎｖｅｒｔｓ）する。
【００２９】
メインプロセッサ３４０は、１つ以上のプロセッサ又は他の処理装置を含むことができ、クライアント装置３００の全般的な動作を制御するために、メモリ３６０に記憶されたＯＳプログラム３６１を実行できる。例えば、メインプロセッサ３４０は、周知の原理に従って、ＲＦ送受信機３１０、ＲＸ処理回路３２５及びＴＸ処理回路３１５による順方向チャネル信号の受信及び逆方向チャネル信号の伝送を制御できる。一部の実施例において、メインプロセッサ３４０は、少なくとも１つのマイクロプロセッサ又はマイクロコントローラを含む。
【００３０】
また、メインプロセッサ３４０は、オンデマンド及び分配方式によるキャッシュコンテンツの読み出し及びストリーミングをサポートするコンパクトキャッシュマニフェストのための動作といった、メモリ３６０に存在する他のプロセス及びプログラムを実行できる。メインプロセッサ３４０は、実行中のプロセスの必要に応じて、メモリ３６０へ又はメモリ３６０から、データを移動できる。一部の実施例において、メインプロセッサ３４０は、オペレータ又は外部装置から受信した信号に応じて、又は、ＯＳプログラム３６１に基づいて、アプリケーション３６２を実行するように構成される。また、メインプロセッサ３４０は、クライアント装置３００をラップトップコンピュータ及びハンドヘルドコンピュータのような他の装置と接続可能とするＩ／Ｏインタフェース３４５と結合される。Ｉ／Ｏインタフェース３４５は、メインプロセッサ３４０とこれらの附属装置との間の通信経路である。
【００３１】
また、メインプロセッサ３４０は、キーパッド３５０及びディスプレイユニット３５５と接続される。クライアント装置３００のオペレータは、クライアント装置３００にデータを入力するためにキーパッド３５０を使用できる。ディスプレイ３５５は、例えばウェブサイトからのテキスト及び／又は少なくとも制限されたグラフィックをレンダリング可能な液晶ディスプレイ又は他のディスプレイである。
【００３２】
メモリ３６０は、メインプロセッサ３４０に接続される。メモリ３６０の一部はランダムアクセスメモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＲＡＭ）を含み、メモリ３６０の他の一部はフラッシュメモリ又は他の読み取り専用メモリ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ、ＲＯＭ）を含む。
【００３３】
後ほどより詳細に説明するように、コンパクトキャッシュマニフェスト方式は、オンデマンド及び分配方式でキャッシュコンテンツの読み出し及びストリーミングをサポートする。
【００３４】
図２及び図３は、コンピューティングシステムの装置の例を示すが、多様な変更が図２及び図３に対して行える。例えば、図２及び図３の多様な構成要素を組み合わせたり、さらに細分化したり、省略したり、特定の必要性に応じて追加の構成要素を追加したりできる。特定の例として、メインプロセッサ３４０は、１つ以上の中央処理ユニット（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔｓ、ＣＰＵ）及び１つ以上のグラフィック処理ユニット（ｇｒａｐｈｉｃｓ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔｓ、ＧＰＵ）のように複数のプロセッサに分割できる。また、図３は、携帯電話又はスマートフォンとして構成されたクライアント装置３００を示すが、クライアント装置は、他の類型のモバイル装置又は固定装置として動作するように構成できる。また、コンピューティング及び通信ネットワークに関して、クライアント装置及びサーバを多様な構成にて提供でき、図２及び図３は、ある特定のクライアント装置又はサーバに本開示を限定するものではない。
【００３５】
ビデオコンテンツ伝送を加速化するための１つの解決法は、終端間リンク容量を増加させる総当たり（ｂｒｕｔｅ  ｆｏｒｃｅ）接近法である。また、ピア支援多重経路ストリーミングをサポートするネットワーク内キャッシュを用いることも、ビデオコンテンツ伝送を加速化させる効果的な解決法である。本発明のコンパクトキャッシュマニフェスト方式は、ネットワーク内キャッシュにおいて実現できる。コンパクトキャッシュマニフェスト方式は、ＭＰＥＧ（ｍｏｖｉｎｇ  ｐｉｃｔｕｒｅ  ｅｘｐｅｒｔｓ  ｇｒｏｕｐ）メディア転送（ＭＭＴ）、システムハードウェアのためのＭＰＥＧデスクトップ及びモバイルアーキテクチャ（Ｄｅｓｋｔｏｐ  ａｎｄ  ｍｏｂｉｌｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｓｙｓｔｅｍ  Ｈａｒｄｗａｒｅ、ＤＡＳＨ）、及び、インターネットエンジニアリングタスクフォースアプリケーションレイヤトラフィック最適化（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｌａｙｅｒ  Ｔｒａｆｆｉｃ  Ｏｐｔｉｍｉｚａｔｉｏｎ、ＩＥＴＦ  ＡＬＴＯ）のような標準規格において実現できる。
【００３６】
本開示は、キャッシュ管理及びキャッシュ支援伝送の加速化をサポートするためのＭＭＴキャッシュマニフェスト方式の実施例について記載する。ＭＭＴキャッシュマニフェスト方式は、キャッシュで断片化されたコンテンツを構成でき、互いに異なるサービス品質（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ、ＱｏＳ）及び利用可能なユーザ体験品質（Ｑｕａｌｉｔｙ  ｏｆ  Ｅｘｐｅｒｉｅｎｃｅ、ＱｏＥ）オプションをシグナリングできる。マニフェストは非常にコンパクトで、コンテンツを要求するクライアント（クライアント装置３００のような）から容易に読み出すことができる。非常にコンパクトなマニフェストは、キャッシュコンテンツリストを無駄にブロードキャストしてしまうことを回避できる。また、非常にコンパクトンなマニフェストは、一般的にキャッシュマニフェストアップデート時間スケールよりはるかに少ないストリーミング時間スケジューリング間隔にて、より簡単な整列を許容する。
【００３７】
本発明の実施例によれば、ＭＭＴキャッシュマニフェストは、利用可能なコンテンツ（「アセット」、「マルチメディアアセット」又は「ＭＭＴアセット」とも称される）及びコンテンツの他の表現及び結果の品質及びＱｏＳ媒介変数を有するコンテンツのサブ表現を表す。特定の実施例において、マニフェストは、バイナリフォーマットで、非常にコンパクトで、キャッシュ支援伝送の加速化を可能にするための情報のセントラルピースであり得る。
【００３８】
図４は、本開示の実施例によってインターネットを介してブロードキャストされる、キャッシュビデオ伝送のためのデータ経路のネットワーク４０２を含むシステム４００を示す。図４に示すシステム４００の実施例は、単なる例示のためのものである。本発明の範囲から逸脱することなく他の実施例を使用できる。
【００３９】
例えば、システム４００は、図１のシステム４００として使用できる。図４の構成要素４０２，４０４，４０６及び４０８は、図１の対応する構成要素１０２，１０４，１０６及び１０８と同じ又は類似とできることに留意すべきである。これらの図４の構成要素は、図１の対応する構成要素と同じ又は類似の方式で作動できる。
【００４０】
ネットワーク４０２の他にも、システム４００は、インターネットサービスプロバイダー（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ、ＩＳＰ）サブネットワーク４０３ａ，４０３ｂ、コンテンツデリバリネットワーク（ｃｏｎｔｅｎｔ  ｄｅｌｉｖｅｒｙ  ｎｅｔｗｏｒｋ、ＣＤＮ）サーバ４０４、及びクライアント装置４０６，４０８を含む。ＣＤＮサーバ４０４は、ビデオコンテンツのソースで、直接データ経路４１０を使用してネットワーク４０２を介して最終ユーザのクライアント装置４０６を直接支援できる。類似の方式において、ＣＤＮサーバ４０４は、他のクライアント装置４０８を直接サポートするために他のデータ経路４１２を使用する。直接データ経路４１０，４１２は、それぞれＣＤＮサーバ４０４からネットワーク４０２を介して及びそれぞれのＩＳＰサブネットワーク４０３ａ，４０３ｂを介してそれぞれのクライアント装置４０６，４０８に接続される。特定の実施例において、ＣＤＮサーバ４０４は、秒あたり１６メガビット（すなわち、１６Ｍｂｐｓ）の発信（ｏｕｔ−ｇｏｉｎｇ）帯域幅を有する。
【００４１】
ＣＤＮサーバ４０４は、コンピューティング能力（ｃｏｍｐｕｔｉｎｇ  ｐｏｗｅｒ）、発信帯域幅、及び終端間不確実性を含む多様な理由によって、全てのクライアント装置を直接支援できない。より具体的には、ＣＤＮサーバ４０４のコンピューティング能力には限度があり、限られた数の同時接続しかサポートできない。また、元のＣＤＮサーバ４０４は、ビットレート（ｂｉｔ  ｒａｔｅ）Ｂにてビデオを使用するｎ人のユーザをサポートするために、ｎ×Ｂの発信帯域幅が必要である。ＵＨＤ（例えば、Ｂ＝１６Ｍｂｐｓ）のような高帯域幅アプリケーションの場合、１０００人のユーザをサポートするために必要な帯域幅量は、秒あたり１６ギガビット（すなわち、１６Ｇｂｐｓ）又は１６Ｇの発信帯域幅となる。ＵＨＤの場合、必要な帯域幅量は、ＣＤＮサーバ４０４の既存帯域幅量（例えば、Ｂ＝１６Ｍｂｐｓ）を優に超えて使い切ってしまう場合がある。本実施例において、ＣＤＮサーバ４０４は、ＵＨＤアプリケーションを実行する１人のユーザのみをサポートするのに十分な帯域幅を有する。また、パケットが一旦元のＣＤＮサーバ４０４から伝送されると、現状のインターネットネットワーク４０２では、スループットも遅延も保証できない。このような保証の不足は、長い間インターネットネットワークの特徴として残りうる不確実性を生じさせる。
【００４２】
システム４００は、ネットワーク４０２の多様な場所で１つ以上の上位レベルキャッシュ４１４を含む。また、システム４００は、それぞれのＩＳＰサブネットワーク４０３ａ，４０３ｂと関連づけられた下位レベルキャッシュ４１６，４１８を含む。それぞれのクライアント装置４０６，４０８は、キャッシュ４２０，４２２を含む。元のＣＤＮサーバ４０４から最終ユーザクライアント装置４０６，４０８をサポートする代わりに、上位レベルキャッシュ４１４がデータ経路４２４を介してクライアント装置４０８を直接サポートできる。上位レベルキャッシュ４１４は、ＣＤＮサーバ４０４のＲＴＴと比べて、一般的に、はるかに短いＲＴＴでクライアント装置をサポートできる。また、代替の伝送経路４２４は、ＣＤＮサーバ４０４からのデータ経路４１２に比べて混雑が少ない場合がある。
【００４３】
ＣＤＮサーバ４０４は、データ経路４２６を介して上位レベルキャッシュ４１４にコンテンツを直接提供できる。ＣＤＮサーバ４０４は、ネットワーク４０２及びＩＳＰサブネットワーク４０３ａを介して接続されたデータ経路４２８を介して下位レベルキャッシュ４１６にコンテンツを直接提供できる。同様に、ＣＤＮサーバ４０４は、データ経路４３０を介して下位レベルキャッシュ４１８を直接支援する。また、ＣＤＮサーバ４０４は、代替のデータ経路４３２を介して下位レベルキャッシュ４１６に、代替のデータ経路４３４を介してクライアント装置４０８にコンテンツを提供できる（代替のデータ経路は点線で示す）。
【００４４】
上位レベルキャッシュ４１４は、代替のデータ経路４３６（点線で示す）を介してクライアント装置４０８に、代替のデータ経路４３８（点線で示す）を介してクライアント装置４０６のキャッシュ４２０にコンテンツを提供できる。
【００４５】
下位レベルキャッシュ４１８は、同じＩＳＰネットワーク４０３ｂと関連づけられたクライアント装置４０８にコンテンツを提供するために直接データ経路４４０を使用できる。
【００４６】
本開示は、コンテンツ伝送を加速化し、混雑を防止し、再生フリーズ（ｐｌａｙｂａｃｋ  ｆｒｅｅｚｅ）を防止するために、データ経路を利用し多様なキャッシュ４１４，４１６，４１８，４２０，４２２を管理する方法（図７を参照して記述される）を提供する。より具体的には、それぞれのキャッシュ４１４，４１６，４１８，４２０，４２２は、キャッシュがコンパクトキャッシュマニフェスト方式を実現できるようにするマニフェスト４５０ａ〜４５０ｄを含む。マニフェスト４５０ａ〜４５０ｄは、図６Ａ及び図６Ｂを参照してより詳細に後述される。
【００４７】
特定の実施例において、システム４００は、図１のサーバ１０４と同じ又は類似であり得るコンテンツ発見サービスサーバ（ｃｏｎｔｅｎｔ  ｄｉｓｃｏｖｅｒｙ  ｓｅｒｖｉｃｅ  ｓｅｒｖｅｒ、ＣＤＳＳ）４６０を含む。ＣＤＳＳ４６０は、多様なキャッシュ４１４，４１６，４１８，４２０，４２２を管理するための方法を実現する。例えば、それぞれのキャッシュ４１４，４１６，４１８，４２０，４２２は、マニフェスト４５０ａ〜４５０ｄを生成してアップデートメッセージ４６２ａ〜４６２ｄとしてＣＤＳＳ４６０に伝送する。アップデートメッセージ４６２ａ〜４６２ｄは、マニフェスト４５０ａ〜４５０ｄ及び有効タイムスタンプをＣＤＳＳ４６０に提供し、ＣＤＳＳ４６０が通信ネットワーク４０２で中央集中化されたノードから多様なキャッシュ４１４，４１６，４１８，４２０，４２２を管理することを可能にする。
【００４８】
例えば、クライアント装置４０８は、クライアント装置４０８内の再生バッファ４２２のコンテンツに基づいて、マニフェスト４５０ｄ（例えば、マニフェスト４５０ｄのコピー）を含むアップデートメッセージ４６２ｄを生成する。アップデートメッセージ４６２ｄの受信に応じて、ＣＤＳＳ４６０は、参照の目的でマニフェスト４５０ｄを保存し、クライアント装置４０８のアドレスをマニフェスト４５０ｄに結びつけ（ｌｉｎｋ）、アップデートメッセージ４６２ｄ内の有効タイムスタンプを使用して、マニフェスト４５０ｄがいつ有効になるかを決定する。クライアント装置４０８が次のアップデートメッセージ４６２ｄを伝送すると、ＣＤＳＳ４６０は、これを受信すると、アップデートされたマニフェスト４５０ｄ（又はマニフェストに対する変更）を保存し、マニフェスト４５０ｄ内のアップデート（例えば、変更又は変更なし）に次の有効タイムスタンプを結びつける（ｌｉｎｋ）。クライアント装置４０８は、周期的に（例えば、一定の間隔をおいて）又は再生バッファ４２２内に保存されたコンテンツが変更される度に、アップデートメッセージ４６２を伝送できる。キャッシュマニフェストを有するネットワーク４０２におけるそれぞれのキャッシュ４１４，４１６，４２０，４２２は、クライアント装置４０８の再生バッファ４２２と類似したプロセスを使用して、ＣＤＳＳ４６０にアップデートメッセージ４６０ａ〜４６０ｄを伝送できる。すなわち、ＣＤＳＳ４６０は、システム４００内にあってネットワーク４０２に接続される複数のキャッシュに対する複数のアップデートされたキャッシュマニフェストを維持する。
【００４９】
通信ネットワーク４０２で集中化したノードから多様なキャッシュ４１４，４１６，４１８，４２０，４２２を管理する他の例として、ＣＤＳＳ４６０は、データ経路から元のコンテンツＣＤＳサーバ４０４へ向かうコンテンツ要求メッセージをインターセプトできる。また、ＣＤＳＳ４６０は、クライアント装置４０８からＣＤＳＳ４６０へ向かうコンテンツ要求メッセージを受信できる。コンテンツ要求メッセージ４６４の受信に応じて、ＣＤＳＳ４６０は、要求されたコンテンツをクライアント装置４０８に提供するか否かを決定する。すなわち、ＣＤＳＳ４６０は、ＣＤＳＳ４６０内に保存された複数のキャッシュマニフェストを参照し、コンテンツ要求メッセージ４６４内の情報に対応した（ｃｏｍｐｌｙ  ｗｉｔｈ）情報を検索する。要求されたコンテンツを提供するためにネットワーク４０２の多様なキャッシュから１つのキャッシュを選択することに基づいて、ＣＤＳＳ４６０内に保存されたいずれのキャッシュマニフェストもコンテンツ要求メッセージ４６４に対応していない場合、ＣＤＳＳ４６０は、要求されたコンテンツを提供しないと決定する。ＣＤＳＳ４６０がコンテンツ要求メッセージ４６４に対応する有効なキャッシュマニフェスト４５０ｂを発見した場合、ＣＤＳＳ４６０は、要求されたコンテンツを提供すると決定する。対応したキャッシュマニフェスト４５０ｂを発見することで、ＣＤＳＳ４６０は、また、対応したキャッシュマニフェスト４５０ｄの送信元であるキャッシュ４１６の結びつけられたアドレスを発見する。ＣＤＳＳ４６０は、要求されたコンテンツをクライアント装置４０８に提供すべきキャッシュとして、対応したキャッシュマニフェスト４５０ｄに結びつけられたキャッシュ４１６を選択する。要求されたコンテンツを提供すると決定すると、ＣＤＳＳ４６０は、要求メッセージ４６４を生成したクライアント装置４０８に要求されたコンテンツを伝送するよう、選択されたキャッシュ４１６に命令４６６を伝送する。命令４６６は、選択されたキャッシュ４１６の識別子（ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）（例えば、アドレス）及び要求されたコンテンツが伝送されるクライアント装置４０８の目的地アドレス又は識別子を含む。命令４６６を受信すると、キャッシュ４１６は、ネットワーク４０２及び４０３ｂを介してクライアント装置４０８に要求されたコンテンツ４６８を伝送する。
【００５０】
ＣＤＳＳ４６０は、クライアント装置４０８に要求されたコンテンツを提供すると決定する多様なプロセスを実現できる。例えば、ＣＤＳＳ４６０は、次のプロセス、すなわち、要求メッセージ４６４に含まれたアセット（ａｓｓｅｔ）ＩＤに複数のキャッシュマニフェストのアセット識別子（ＩＤ）をマッチングし、要求メッセージ４６４に含まれたセグメント識別子（例えば、セグメントの指紋（ｆｉｎｇｅｒｐｒｉｎｔ）又はタイムスタンプ）に複数のキャッシュマニフェストのセグメント識別子をマッチングし、又は複数のキャッシュマニフェスト内のレート歪み動作点（ｒａｔｅ−ｄｉｓｔｏｒｔｉｏｎ  ｏｐｅｒａｔｉｎｇ  ｐｏｉｎｔ、ＲＤＯｐ）のサービス品質（ＱｏＳ）媒介変数が要求メッセージ４６４に含まれたビットレートと等しいか又は超えるかを決定することによって、要求されたコンテンツを提供することを決定する。
【００５１】
図５は、本発明の実施例によるキャッシュ状態のタイムラインを示す。例示的なタイムライン５００にはコンテンツの断片化（ｆｒａｇｍｅｎｔａｔｉｏｎ）が存在しない。図５に示すキャッシュ状態のタイムライン５００は単なる例示のためのものである。本発明の範囲から逸脱することなくタイムラインの他の実施例を使用できる。
【００５２】
元のＣＤＮサーバ４０４でのコンテンツは、予測可能な方式で時間に比例して使用可能となる。すなわち、コンテンツの要求の受信に応じて、ＣＤＮサーバ４０４は、比例方式で、要求するクライアント装置に要求されたコンテンツを伝送できる。それに対して、コンテンツ可用性をキャッシュ４１４，４１６，４１８，４２０，４２２で予測することはできない。互いに異なるキャッシュは、互いに異なるストリーミングの開始時間及びユーザ行動によって互いに異なる品質及びＱｏＳ要件を有する互いに異なるサブ―リプレゼンテーション（ｓｕｂ−ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）（ＤＡＳＨ用語）を有するコンテンツの互いに異なるセグメントを含む。すなわち、サブネットワーク４３０ｂに接続されたクライアント装置４０８は、クライアント４０６が要求するコンテンツと同じコンテンツを要求するために、クライアント４０６のＱｏＳ要求より高いＱｏＳ要求を使用する場合もあり、結果として、クライアント４０８に最も近いキャッシュ４１８は、クライアント４０６に最も近いキャッシュ４１６に保存されたコンテンツのＱｏＳより高いＱｏＳで要求されたコンテンツを保存できる。同様に、ある時点では、複数のクライアント装置に特定のコンテンツを提供したキャッシュ４１６は、当該特定のコンテンツの複数のセグメントを保存できるが、当該特定のコンテンツの要求を受信していないキャッシュ４１８は、当該特定のコンテンツのいかなるセグメントも含むことができない。
【００５３】
キャッシュ支援ストリーミングを容易にするために、コンテンツ現在再生タイムスタンプｔｋ及びコンテンツ開始及び終了タイムスタンプ｛ｓｋ，ｅｋ｝をシグナリングする必要がある。同じセグメントに対して、互いに異なるサブリプレゼンテーションが利用可能な場合、次のような情報、すなわち、関連ＭＦＵインデックス、結果的な品質、及びＱｏＳ情報を、それぞれのサブリプレゼンテーションに対してシグナリングする必要がある。サブリプレゼンテーション情報は、ストリーミングにおける複数の動作点ＡＤＣケースと関連してＲＥＦ４に記載されたシグナリングと類似した方式でシグナリングできる。
【００５４】
図示されたタイムライン５００の例に対して、ネットワーク（ネットワーク４００）は、断片化されていない状態でビデオコンテンツ５０５全体を保存するＣＤＮサーバ（サーバ４０４）を含む。コンテンツ５０５は、ｓＣＯＮＴＥＮＴの開始タイムスタンプ及びｅＣＯＮＴＥＮＴの終了タイムスタンプを有する。また、ネットワークはＮ個のキャッシュ（キャッシュ１・・・・キャッシュｋ・・・・キャッシュＮ）を含み、それぞれのキャッシュは、コンテンツ５０５の互いに異なる部分を示すセグメントを保存する。例えば、第１キャッシュは、タイムスタンプの集合｛ｓ０，ｔ１，ｅ１｝を有するコンテンツのセグメント５１５を保存する。類似の方式で、第ｋキャッシュは、タイムスタンプ｛ｓｋ，ｔｋ，ｅｋ｝を有するセグメント５２５を保存し、第Ｎキャッシュは、タイムスタンプ｛ｓＮ，ｔＮ，ｅＮ｝を有するセグメント５３５を保存する。本実施例において、セグメント５１５，５２５，５３５の集合（キャッシュ１〜キャッシュＮ）は、欠落したコンテンツのパンチ（ｐｕｎｃｈｅｓ）又は時間のギャップ（ｇａｐ）を生じさせていないので、タイムスタンプ｛ｓｋ，ｅ１｝間でコンテンツ５０５を断片化しない。本実施例において、いずれのキャッシュもタイムスタンプ｛ｓＣＯＮＴＥＮＴ，ｓｋ｝の間又はタイムスタンプ｛ｅ１，ｅＣＯＮＴＥＮＴ｝の間でコンテンツ５０５の部分を示すセグメントを保存しない。
【００５５】
図６Ａは、本発明の実施例によるＭＭＴキャッシュマニフェスト６００を示す。図６Ａに示すＭＭＴキャッシュマニフェスト６００の実施例は単なる例示のためのものである。本発明の範囲から逸脱することなく他の実施例を使用できる。
【００５６】
図６Ａに示すＭＭＴキャッシュマニフェスト６００は、図４の対応するマニフェスト４０５ａ〜４０５ｄと同じ又は類似とできる。図６Ａのこれら構成要素は、図４の対応する構成要素と同じ又は類似の方式で動作できる。
【００５７】
便宜のための一例として、本発明は、マニフェスト６００がキャッシュ４１８に属しているとして記述するが、コンパクトキャッシュマニフェスト方式でそれぞれのキャッシュはマニフェストを含むことができる。ＭＭＴキャッシュマニフェスト６００は、アセット識別子（アセットＩＤ）によって体系づけられる。すなわち、それぞれのアセット６０５（例えば、コンテンツ５０５）は、アセットＩＤ６１０によって識別される。アセットＩＤ６１０は、全体セグメント化されていないコンテンツ６０５の位置を識別するＵＲＬ（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ）とできる。
【００５８】
アセット６０５は、一連のセグメント６１５ａ〜６１５ｄ（Ｓ１，Ｓ２，Ｓ３及びＳ４）を含む。それぞれのアセット６０５に対して、キャッシュ４１８に存在する対応するセグメント６１５ａ〜６１５ｄは、タイムスタンプによってリスト化される。タイムスタンプ（水平分割線で示す）は、第２セグメント６１５ｂ（Ｓ２）と第１セグメント６１５ａ（Ｓ１）とを分離する境界を描写する。一般的に、タイムスタンプは、連続したセグメントを分離する。例えば、アセット６０５は、１００個のビデオコンテンツフレームを含むことができ、セグメント６１５ａ（Ｓ１）はフレーム１〜フレーム２０を含み、セグメント６１５ｂ（Ｓ２）はフレーム２５〜フレーム３５を含み、セグメント６１５ｃ（Ｓ３）はフレーム５０〜フレーム５５を含み、セグメント６１５ｄ（Ｓ４）はフレーム７５〜９５を含む。特定の実施例において、タイムスタンプがセグメントを識別する。特定の実施例において、指紋がセグメントを識別する。
【００５９】
それぞれのセグメント６１５ａ〜６１５ｄに対して、マニフェスト６００は、対応するセグメントマニフェスト（ＳｅｇＭｆ）６２０ａ〜６２０ｄデータ構造を含む。それぞれのセグメントマニフェスト６２０ａデータ構造は、１つ以上のレート歪み動作点（ＲＤＯｐ）を含む。ＲＤＯｐの数は、キャッシュが提供できるセグメントのバージョン数を示す。より具体的には、セグメントマニフェスト６２０ａデータ構造は、複数のＲＤＯｐ６２２，６２４，６２６（ＲＤＯｐ１、ＲＤＯｐ２、及びＲＤＯｐ３）を含む。セグメントマニフェスト６２０ａは、キャッシュ４１８がセグメント６１５ａの互いに異なる３種のバージョン、すなわち、ＲＤＯｐ６２２に対応する第１バージョン、ＲＤＯｐ６２４に対応する第２バージョン、及びＲＤＯｐ６２６に対応する第３バージョンを保存することを示す。セグメント６１５ａの３種のバージョンが図６Ｂを参照してより具体的に記述される。
【００６０】
それぞれのＲＤＯｐ６２２，６２４，６２６は、メディアデータユニット（ｍｅｄｉａ  ｄａｔａ  ｕｎｉｔ、ＭＤＵ）インデックス（例えば、メディア断片化ユニット（ｍｅｄｉａ  ｆｒａｇｍｅｎｔａｔｉｏｎ  ｕｎｉｔ、ＭＦＵ）インデックス）、セグメント６１５ａ（Ｓ１）と関連づけられたＱｏＳ媒介変数、及びセグメント６１５ａ（Ｓ１）と関連づけられたＱｏＥ媒介変数を含む。すなわち、ＭＤＵインデックス、ＱｏＳ媒介変数、及びＱｏＥ媒介変数は、それぞれのＲＤＯｐを集合的に表す。ＭＤＵインデックスは、コンテンツファイル６４０（例えば、フラットマシンデータ（ｍｄａｔ）バイトファイル）にあるセグメント６１５ａの位置を参照する（このような参照関係は、ｍｄａｔバイトファイルにあるインデックスからアドレス位置へ向かう矢印によって示される）。キャッシュ４１８は、コンテンツファイル６４０に対するそれぞれのＭＤＵインデックスを、内部的に生成する。より具体的には、キャッシュ４１８は、第１セグメント６１５ａ（Ｓ１）のＲＤＯｐ１リプレゼンテーションに対するＭＤＵインデックス６３０を生成し、ＲＤＯｐ２に対するＭＤＵインデックス６３２を生成し、ＲＤＯｐ３に対するＭＤＵインデックス６３４を生成する。関連づけられたＱｏＳ媒介変数は、セグメント６１５ａ（Ｓ１）をキャッシュ４１８から伝送可能な平均ビットレート及びピークビットレートを表す。ＱｏＥ媒介変数は、ＲＥＦ４に記述された国際標準化機構（ＩＳＯ）に基づくメディアファイルフォーマット（ＩＳＯＢＭＦＦ）品質基準に適合するセグメントの時空間品質を表す。ＱｏＥは、対応するＲＤＯｐを使用する場合に、セグメント６１５ａ内での歪み（ｄｉｓｔｏｒｔｉｏｎ）の量を表す。キャッシュ４１８は、ＲＥＦ４に記述されたシグナリングと類似した方式で、ＱｏＥ媒介変数情報を指示する信号を伝送できる。キャッシュ４１８は、キャッシュホストから関連ＭＦＵを読み出すためのアプリケーションプログラミングインタフェース（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ、ＡＰＩ）を伝送する。
【００６１】
図６Ｂは、セグメント６１５ａに対する多様なＲＤＯｐに対応する図６Ａのキャッシュマニフェストのセグメント６１５ａ（Ｓ１）の例示的なバージョンを示す。図６Ｂに示すセグメント６１５ａの例示的なバージョンは、単なる例示のためのものである。本発明の範囲から逸脱することなく他の実施例を使用できる。
【００６２】
一例として、セグメント６１５ａは、タイムスタンプ｛ｓ１＝０，ｅ１＝１０｝の１０秒にわたり、フレーム１〜２０を含む。ＲＤＯｐ１６２２は、クライアント装置に伝達すべきコンテンツの部分が保存されているコンテンツファイル６４０での位置を参照するＭＤＵインデックスを含む。ＲＤＯｐ１６２２は、１メガバイト（ＭＢ）のファイル大きさに対応する。ＱｏＳ媒介変数は、１秒あたり１．０メガバイト（Ｍｂｐｓ）の高品質ビットレートを示す。ＱｏＥ媒介変数（例えば、１．０）は、歪み無し、すなわち、セグメントの全てのフレームが伝送され、フレームのうちいずれのフレームも除去されなかったか、あるいはクライアント装置に提供されたコンテンツから除外されなかったことを示す。
【００６３】
ＲＤＯｐ２６２４は、８００キロバイト（ＫＢ）のファイル大きさに対応する。ＱｏＳ媒介変数は、１秒あたり８００キロバイト（０．８Ｍｂｐｓ）の低い品質ビットレートを示す。ＱｏＥ媒介変数（例えば、０．８）は、低い歪み、すなわち、セグメントのフレームの大きい部分が伝送され、特定のフレームの小さい部分が除去されたか、あるいはクライアント装置に提供されたコンテンツから除外されたことを示す。フレームの除去された部分は、全体フレーム（単方向対角線斜線で示す）である場合、又は、全体フレームより小さい場合がある（両方向対角線斜線で示す）。本実施例に示すように、セグメント６１５ａの除去された部分は、ＲＤＯｐ２が使用される場合には伝送されなかった２００ＫＢのデータを示すが、対照的に、ＲＤＯｐ１が使用される場合には伝送される。
【００６４】
ＲＤＯｐ３６２６は、６４０キロバイト（ＫＢ）のファイル大きさに対応する。ＱｏＳ媒介変数は、１秒あたり６００キロバイト（Ｋｂｐｓ）のより減少した品質ビットレートを表示する。ＱｏＥ媒介変数は、さらに低い歪み、すなわち、セグメントのフレームの大きい部分が伝送され、特定のフレームの小さい部分が除去されたか、あるいはクライアント装置に提供されたコンテンツから除外されたことを示す。フレームの除去された部分は、全体フレーム（単方向対角線斜線で示す）である場合、又は、全体フレームより小さい場合がある（両方向対角線斜線で示す）。本実施例に示すように、セグメント６１５ａの除去された部分は、ＲＤＯｐ３が使用される場合には伝送されない３６０ＫＢのデータを示すが、対照的に、ＲＤＯｐ１が使用される場合には伝送される。
【００６５】
キャッシュマニフェストは、断片化されたコンテンツの識別を可能にする。例えば、要求されたコンテンツは、いずれか１つのキャッシュに共に保存されないｔ０〜ｔ１０に対するビデオコンテンツを含むことができるが、断片の組み合わせが全体の要求されたコンテンツと等価となるよう、要求されたコンテンツの様々な断片が異なるキャッシュに存在する。キャッシュは互いに異なるＱｏＳ及びＱｏＥトレードオフに対するキャッシュコンテンツの複数のリプレゼンテーションを表すマニフェストを含む。
【００６６】
表１は、ＭＭＴキャッシュマニフェストのシンタックス（ｓｙｎｔａｘ）の一例を示す。表２は、ＭＭＴキャッシュマニフェストのシンタックスにおいて用いられた用語（ｔｅｒｍ）に対する意味（ｓｅｍａｎｔｉｃｓ）を提供する。
【００６７】
【表１】
0006606516.tif 000002
【００６８】
【表２】
0006606516.tif 000003
【００６９】
図７は、本開示の実施例によってＭＭＴキャッシュマニフェスト方式を実現する方法を示す。方法７００により、ネットワークキャッシュ４１８は、元のコンテンツサーバ４０４より信頼でき、より近い位置にある要求されたコンテンツの代替のソースとして、要求するクライアントに高品質ビデオコンテンツを提供できる。方法７００は、システム４００によって実現される。図７に示す方法７００の実施例は、単なる例示のためのものである。本発明の範囲から逸脱することなく他の実施例を使用できる。
【００７０】
ブロック７０５にて、最終ユーザクライアント装置は、要求されたコンテンツのアセットＩＤ、クライアント装置が許容できるビットレート、及び要求されたコンテンツのセグメントを含むコンテンツ要求メッセージを伝送することによって、特定のコンテンツを要求する。特定の実施例において、コンテンツ要求メッセージは、アセットＩＤ及び要求されたセグメントを表すタイムスタンプの集合｛ｓ，ｅ｝を含む。特定の実施例において、コンテンツ要求メッセージは、アセットＩＤ及び要求されたセグメントを表す指紋を含む。コンテンツ要求メッセージには、ＣＤＮサーバ４０４の意図された目的地アドレスを含めることができる。
【００７１】
ブロック７１０にて、ネットワーク４０２のキャッシュが、コンテンツ要求メッセージをインターセプトする。キャッシュは、コンテンツ要求メッセージから要求されたアセット、要求されたセグメント、及び要求されたビットレートを決定する。キャッシュを、ＣＤＮサーバ４０４とクライアント装置との間のデータ経路に沿って配置されたキャッシュ、例えば、ＩＳＰサブネットワーク４０３ａ，４０３ｂのキャッシュとできる。ＣＤＮサーバ４０４は、要求されたコンテンツを保存し、上記の限られた帯域幅及び不確実性にて、クライアント装置４０６，４０８に要求されたコンテンツを伝送できる。また、システム４００の全体に分散された要求されたコンテンツを保存するキャッシュ４１４，４１６，４１８は、ＣＤＮサーバ４０４に比べてより高い帯域幅及び高い確実性にて、要求されたコンテンツを伝送できる。また、ブロック７１０にて、キャッシュは、要求されたアセットがキャッシュに保存されているか否かを決定する。例えば、キャッシュは、要求されたアセットのアセットＩＤとマニフェスト６００のアセットＩＤのリストとを比べる。要求されたアセットのアセットＩＤがキャッシュのマニフェストに存在する場合、プロセスはブロック７１５に進む。要求されたアセットのアセットＩＤがキャッシュのマニフェストに存在しない場合、方法７００はブロック７２０に進む。
【００７２】
ブロック７１５にて、キャッシュは、例えば、コンテンツ要求メッセージのタイムスタンプとキャッシュのマニフェストのタイムスタンプとを比べることによって、要求されたアセットの要求されたセグメントがキャッシュに保存されているか否かを決定する。特定の実施例において、キャッシュは、コンテンツ要求メッセージの指紋とマニフェストの指紋とを比べることによって、要求されたアセットの要求されたセグメントがキャッシュに保存されているか否かを決定する。要求されたタイムスタンプ又は要求された指紋がキャッシュのセグメント６２０ａ〜６２０ｄ（例えば、セグメントのリスト）に存在する場合、方法７００は、ブロック７２５に進み、そうでない場合は、方法は、ブロック７２０に進む。
【００７３】
ブロック７２０にて、キャッシュは、ネットワーク４０２の上位レベルの装置にコンテンツ要求メッセージを伝送する。例えば、下位レベルキャッシュ４１６，４１８は、上位レベルキャッシュ４１４にコンテンツ要求メッセージを伝送できる。上位レベルキャッシュ４１４は、要求されたセグメントを要求するクライアント装置に伝送する上位レベルＣＤＮサーバ４０４にコンテンツ要求メッセージを伝送できる。上位レベルキャッシュ４１４は、方法７００を（プロセスブロック７０５から開始することによって）実行し、必要な場合、ＣＤＮサーバ４０４は、要求されたコンテンツをクライアント装置に提供する。
【００７４】
ブロック７２５にて、キャッシュは、クライアント装置に伝送するセグメントを選択する。例えば、キャッシュは、コンテンツ要求メッセージのタイムスタンプ又は指紋と一致するマニフェストからセグメント６１５ａ〜６１５ｄ（Ｓ１、Ｓ２、Ｓ３及びＳ４）を選択する。例えば、コンテンツ要求メッセージが｛５〜７｝のタイムスタンプを含む場合、キャッシュは、要求された部分｛５〜７｝を含むタイムスタンプ｛ｓ１＝０，ｅ１＝１０｝の１０秒にわたるセグメント６１５ａ（Ｓ１）を、伝送するために選択する。
【００７５】
ブロック７３０にて、キャッシュは、コンテンツ要求メッセージの要求されたビットレートがマニフェストのいずれかのビットレートと一致しているか否かを決定する。すなわち、キャッシュは、要求されたセグメントを最低でも要求されたビットレートにてクライアント装置に伝送できる程度に、要求されたセグメントが十分に断片化された状態でキャッシュに保存されているか否かを決定する。より具体的には、キャッシュは、コンテンツ要求メッセージのＱｏＳの要求されたビットレートと、マニフェスト中の多様なＲＤＯｐのそれぞれのＱｏＳとを比較する。マニフェストのＲＤＯｐのうち少なくとも１つが、コンテンツ要求メッセージのビットレートの要件を満たしていれば、方法７００はブロック７３５に進み、そうでない場合は、方法７００は、ブロック７２０に進む。
【００７６】
ブロック７３５にて、キャッシュは、最もよく一致し、また、要求されたＱｏＳの最小ビットレートを提供するＲＤＯｐを選択する。ＲＤＯｐのうち１つを選択することによって、キャッシュ４１８は、最も一致したＲＤＯｐ（すなわち、要求の内容に最も近いパラメータを含むＲＤＯｐ）及び要求の内容に基づいて、要求するクライアント装置に提供すべきセグメント６１５ａのバージョンを選択する。一例として、ＲＤＯｐ１は、要求されたセグメント（例えば、Ｓ１６１５ａ）の最高品質バージョンを提供し、最大の帯域幅（ＣＤＮサーバ４０４の帯域幅要件と同等の）を必要とし、ＲＤＯｐ２は、要求されたセグメントの中間範囲の品質バージョンを提供し、ＣＤＮサーバ４０４より小さい帯域幅を必要とし、ＲＤＯｐ３は、要求されたセグメントの低い範囲品質バージョンを提供し、ＲＤＯｐ２よりさらに低い帯域幅を必要とする。
【００７７】
ブロック７４０にて、キャッシュは、コンテンツ要求メッセージのビットレートを満足させるために、クライアント装置に伝送する断片（ｆｒａｇｍｅｎｔｓ）の集合を選択する。すなわち、それぞれのＲＤＯｐのメディアデータユニット（ＭＤＵ）は、ＲＤＯｐのビットレートに基づいて伝送されるか、又は伝送から除外されるフレーム及びフレームの部分に対応する。ブロック７３５にてＲＤＯｐを選択すると、キャッシュは、選択されたＲＤＯｐのＭＤＵに対応する断片を選択する。例えば、セグメントＳ１６１５ａに対してＲＤＯｐ３を選択することによって、キャッシュは、図６ＢのセグメントＳ１６１５ａのハッチングにて示された全体フレーム及び部分フレームを伝送しない。
【００７８】
ブロック７４５にて、キャッシュは、ブロック７３５にて選択されたＲＤＯｐに対応する要求されたセグメントの断片を（クライアント装置に）伝送する。
【００７９】
ブロック７５０にて、コンテンツ要求メッセージの伝送に応じて、要求するクライアント装置は、コンパクトキャッシュマニフェスト方式を実現するシステム４００のキャッシュから要求された最小ビットレートにて要求されたアセットの要求されたセグメントを受信する。
【００８０】
特定の実施例において、コンテンツ要求メッセージの伝送に応じて、クライアント装置は、ネットワーク４０２，４０３ａ，４０３ｂのキャッシュから複数のマニフェストを同時に受信する。クライアント装置は、どのキャッシュが要求されたコンテンツをクライアント装置に最もよく提供できるかを決定できる。例えば、システム４００でそれぞれのキャッシュは、ＣＤＮサーバ４０４に保存された表を同時にアップデートでき、クライアント装置からのコンテンツ要求メッセージの受信に応じて、ＣＤＮサーバ４０４は、クライアント装置に複数のマニフェスト（システム４００で多様なキャッシュのコンテンツをそれぞれ示す）を同時に伝送できる。
【００８１】
例示的な実施例で本開始を説明したが、多様な変更例及び修正例が当業者に提案されることができる。本開示は、添付された請求範囲内に属するこのような変更例及び修正例を含むように意図される。
【図１】
0006606516.tif 000004
【図２】
0006606516.tif 000005
【図３】
0006606516.tif 000006
【図４】
0006606516.tif 000007
【図５】
0006606516.tif 000008
【図６Ａ】
0006606516.tif 000009
【図６Ｂ】
0006606516.tif 000010
【図７】
0006606516.tif 000011