(57)【特許請求の範囲】
【請求項１】
複数のディスク・ドライブに複数の異なった解像度でファイルを格納するために多解像度コーディングを使用するシステムにおいて、第１のファイルに対するユーザ要求を処理するための方法であって、
第１グループのディスク・ドライブの各々に、前記第１ファイルに関連した基準レイヤを格納するステップと、
第２グループのディスク・ドライブの各々に、前記第１ファイルに関連した前記基準レイヤと前記第１ファイルに関連した第１の精細レイヤとの第１の線形組み合わせを格納するステップと、
前記第２グループのディスク・ドライブの各々に、前記第１ファイルに関連した前記基準レイヤと前記第１ファイルに関連した前記第１の精細レイヤとの第２の線形組み合わせを格納するステップと、
サーバにおいて、最低から２番目の解像度の前記第１ファイルに対する第１の要求を、第１のユーザから受けるステップであって、前記サーバが、
前記第１の線形組み合わせを引き出し、
前記基準レイヤまたは前記第２の線形組み合わせを引き出すべきかについて第１の判定を行い、
前記第１の判定に基づいて前記第２の線形組み合わせを引き出し、
前記第１の線形組み合わせと前記第２の線形組み合わせとに基づくデータを前記第１のユーザに送る、
ことによって前記第１の要求に対し応答する、ステップと、
前記サーバにおいて、最低から２番目の解像度の前記第１ファイルに対する第２の要求を、第２のユーザから受けるステップであって、前記サーバが、
前記第１の線形組み合わせを引き出し、
前記基準レイヤまたは前記第２の線形組み合わせを引き出すべきかについて第２の判定を行い、
前記第２の判定に基づいて前記基準レイヤを引き出し、
前記第１の線形組み合わせと前記基準レイヤとに基づくデータを前記第２のユーザに送る、
ことによって前記第２の要求に対し応答する、ステップと、
を含む、方法。
【請求項２】
請求項１記載の方法において、前記第２グループのディスク・ドライブの各々に、前記基準レイヤと前記第１の精細レイヤとの第１の線形組み合わせを格納するステップと、前記第２グループのディスク・ドライブの各々に、前記基準レイヤと前記第１の精細レイヤとの第２の線形組み合わせを格納するステップとは各々、前記第２グループのディスク・ドライブの各々に対し、異なるランダム係数を使用して線形組み合わせを生成するステップを含む、方法。
【請求項３】
請求項２記載の方法において、 前記第２グループのディスク・ドライブの各々に前記基準レイヤと前記第１の精細レイヤとの第１の線形組み合わせを格納するステップと、前記第２グループのディスク・ドライブの各々に前記基準レイヤと前記第１の精細レイヤとの第２の線形組み合わせを格納するステップとは各々、前記第２グループのディスク・ドライブの各々に、各線形組み合わせと共に、前記異なるランダム係数を格納するステップを含む、方法。
【請求項４】
請求項１記載の方法において、
前記第１グループのディスク・ドライブおよび前記第２グループのディスク・ドライブが、共通のディスク・ドライブを有さない、方法。
【請求項５】
請求項１記載の方法であって、前記システムは更に第３グループのディスク・ドライブを含み、前記方法が更に、
前記第３グループのディスク・ドライブの各々に、前記第１ファイルに関連した前記基準レイヤと、前記第１ファイルに関連した前記第１の精細レイヤと、前記第１ファイルに関連した第２の精細レイヤとの線形組み合わせを格納するステップを含む、方法。
【請求項６】
請求項１記載の方法であって、更に、
前記第１グループのディスク・ドライブの各々に第２ファイルに関連した基準レイヤを格納するステップと、
前記第２グループのディスク・ドライブの各々に、前記第２ファイルに関連した前記基準レイヤと前記第２ファイルに関連した第１の精細レイヤとの線形組み合わせを格納するステップと、
を含む、方法。
【請求項７】
システムであって、
複数のディスク・ドライブと、
多解像度コード化を使用して、複数の異なる解像度で前記複数のディスク・ドライブにファイルを格納するコントローラと、
を含み、前記コントローラが、
前記複数のディスク・ドライブ内の第１グループのディスク・ドライブの各々に第１ファイルに関連した基準レイヤを、前記複数のディスク・ドライブ内の第２グループのディスク・ドライブの各々に、前記第１ファイルに関連した前記基準レイヤと、前記第１ファイルに関連した第１の精細レイヤとの第１の線形組み合わせを、前記第２グループのディスク・ドライブの各々に、前記第１ファイルに関連した前記基準レイヤと前記第１ファイルに関連した前記第１の精細レイヤとの第２の線形組み合わせを格納するように構成され、
前記コントローラが更に、
最低から２番目の解像度の前記第１ファイルに対する第１の要求を、第１のユーザから受け、
該第１の要求に応答して、前記第１の線形組み合わせを引き出し、前記基準レイヤまたは前記第２の線形組み合わせを引き出すべきかについて第１の判定を行い、該第１の判定に基づいて前記第２の線形組み合わせを引き出し、前記第１の線形組み合わせと前記第２の線形組み合わせとに基づくデータを前記第１のユーザに送り、
最低から２番目の解像度の前記第１ファイルに対する第２の要求を、第２のユーザから受け、
該第２の要求に応答して、前記第１の線形組み合わせを引き出し、前記基準レイヤまたは前記第２の線形組み合わせを引き出すべきかについて第２の判定を行い、該第２の判定に基づいて前記基準レイヤを引き出し、前記第１の線形組み合わせと前記基準レイヤとに基づくデータを前記第２のユーザに送る、
ように構成された、システム。
【請求項８】
請求項７記載のシステムにおいて、
前記コントローラは、前記複数のディスク・ドライブ内の第３グループのディスク・ドライブの各々に、前記第１ファイルに関連した前記基準レイヤと、前記第１ファイルに関連した前記第１の精細レイヤと、前記第１ファイルに関連した第２の精細レイヤとの線形組み合わせを格納するように構成された、システム。
【請求項９】
請求項７記載のシステムにおいて、
前記コントローラは、
異なるランダム係数を使用して、前記第２グループのディスク・ドライブの各々に対して、前記線形組み合わせを生成し、
前記第２グループのディスク・ドライブの各々に、前記ランダム係数を、対応する線形組み合わせと関連付けて格納する、
ように構成された、システム。
【請求項１０】
請求項７記載のシステムにおいて、
前記コントローラは、更に
前記第１グループのディスク・ドライブの各々に第２ファイルに関連した基準レイヤを格納し、
前記第２グループのディスク・ドライブの各々に、前記第２ファイルに関連した前記基準レイヤと前記第２ファイルに関連した第１の精細レイヤとの線形組み合わせを格納する、
ように構成された、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本明細書において開示する主題は、一般に、データ記憶に関し、更に特定すれば、コーディングを利用するデータ記憶技法および構造に関する。
【背景技術】
【０００２】
[0002]  過去十年にわたり、ビデオ・ストリーミング・サービスに対する需要の大きな増大があった。これらのストリーミング・サービスは、多くの場合、コンテンツ配信を容易にするために１つ以上のデータ・センタを利用するコンテンツ配信ネットワークによって提供される。各データ・センタは、通例、ハードウェアの大型アレイを含み、データ・センタが大多数のユーザに同時に信頼性高くサービスを提供することを可能にする。しかしながら、所与の時点においてデータ・センタがサービスを提供できるユーザ要求の数には限度があるのが通例である。一旦データ・センタがその限界に達したなら、過去のサービス要求が完了するまでは、その後に受けたユーザ要求にサービスすることはできない。認められるであろうが、データ・センタにおける頻繁なサービス拒否または繰り返すサービス拒否は、サービス・プロバイダとしてのデータ・センタの評判に傷を付ける可能性がある。したがって、データ・センタ、コンテンツ配信ネットワーク、および同様のシステムにおいてサービス拒否の確率を低下させる技法が求められている。また、データ・センタおよびコンテンツ配信ネットワークに関連するユーザに提供されるサービスのレベルを高める技法も求められている。
【発明の概要】
【０００３】
[0003]  本明細書において説明する概念、システム、回路、および技法の一形態によれば、多解像度コード化を使用するシステムにおいて複数のディスク・ドライブにファイルを格納する方法を提供する。更に特定すれば、この方法は、複数のディスク・ドライブにおける第１組のディスク・ドライブの各々に、第１ファイルの基準レイヤを格納するステップと、複数のディスク・ドライブにおける第２組のディスク・ドライブの各々に、第１ファイルの基準レイヤと第１ファイルの第１精細レイヤとの線形組み合わせを格納するステップとを含む。
【０００４】
[0004]  一実施形態では、第２組のディスク・ドライブの各々に、基準レイヤと前第１精細レイヤとの線形組み合わせを格納するステップは、異なるランダム係数を使用して、第２組のディスク・ドライブの各々に、線形組み合わせを生成するステップを含む。
【０００５】
[0005]  一実施形態では、第２組のディスク・ドライブの各々に、基準レイヤと前第１精細レイヤとの線形組み合わせを格納するステップが、第２組のディスク・ドライブの各々に、各線形組み合わせと共に、異なるランダム係数を格納するステップを含む。
【０００６】
[0006]  一実施形態では、第１組のディスク・ドライブおよび第２組のディスク・ドライブは、共通のディスク・ドライブを有さない。
[0007]  一実施形態では、この方法は、更に、複数のディスク・ドライブにおける第３組のディスク・ドライブの各々に、第１ファイルの基準レイヤと、第１ファイルの第１精細レイヤと、第１ファイルの第２精細レイヤとの線形組み合わせを格納するステップを含む。
【０００７】
[0008]  一実施形態では、この方法は、コンテンツ配信ネットワークに関連するデータ・センタにおいて実施される。
[0009]  一実施形態では、この方法は、更に、複数のディスク・ドライブにおける第１組のディスク・ドライブの各々に第２ファイルの基準レイヤを格納するステップと、複数のディスク・ドライブにおける第２組のディスク・ドライブの各々に、第２ファイルの基準レイヤと第２ファイルの第１精細レイヤとの線形組み合わせを格納するステップとを含む。
【０００８】
[0010]  一実施形態では、 第１ファイルはビデオ・ファイルである。
[0011]  本明細書において説明する概念、システム、回路、および技法の他の形態によれば、システムは、複数のディスク・ドライブと、多解像度コード化を使用して、複数の異なる解像度で複数のディスク・ドライブにファイルを格納するコントローラとを含む。このコントローラは、複数のディスク・ドライブにおける第１グループのディスク・ドライブの各々に第１ファイルの基準レイヤを格納し、複数のディスク・ドライブにおける第２グループのディスク・ドライブの各々に、第１ファイルの基準レイヤと第１ファイルの第１精細レイヤとの線形組み合わせを格納するように構成される。
【０００９】
[0012]  一実施形態では、 前述のコントローラは、複数のディスク・ドライブにおける第３グループのディスク・ドライブの各々に、第１ファイルの基準レイヤと、第１ファイルの第１精細レイヤと、第１ファイルの第２精細レイヤとの線形組み合わせを格納するように構成される。
【００１０】
[0013]  一実施形態では、 前述のコントローラは、異なるランダム係数を使用して、第２組のディスク・ドライブの各々に対して、線形組み合わせを生成し、第２組のディスク・ドライブの各々に、ランダム係数を、対応する線形組み合わせと関連付けて格納するように構成される。
【００１１】
[0014]  一実施形態では、 前述のコントローラは、複数のディスク・ドライブにおける第３組のディスク・ドライブの各々に、第１ファイルの基準レイヤと、第１ファイルの第１精細レイヤと、第１ファイルの第２精細レイヤとの線形組み合わせを格納するように構成される。  
【００１２】
[0015]  一実施形態では、このシステムは、更に、ユーザからの要求にサービスするときに使用するための複数のサーバを含み、複数のディスク・ドライブが、複数のサーバにおける第１サーバと関連付けられる。
【００１３】
[0016]  一実施形態では、複数のサーバにおける各サーバは、異なる複数のディスク・ドライブに関連付けられる。
[0017]  一実施形態では、複数のサーバは、ユーザからのビデオ・ストリーミング・サービスを求める要求にサービスするように構成される。
【００１４】
[0018]  一実施形態では、第１ファイルは第１ビデオ・ファイルを含む。
[0019]  一実施形態では、このシステムは、コンテンツ配信ネットワークに関連するデータ・センタの一部である。
【００１５】
[0020]  一実施形態では、 前述のコントローラは、ユーザの要求に応答して、複数のディスク・ドライブからファイルを引き出すように構成される。このコントローラは、最低から２番目の解像度の第１ファイルを求めるユーザ要求を受け、これに応答して、第１ファイルに関連する基準レイヤと第１ファイルに関連する第１精細レイヤとの第１線形組み合わせを、第２グループのディスク・ドライブにおけるディスク・ドライブから引き出し、第１グループのディスク・ドライブにおけるディスク・ドライブから第１ファイルに関連する基準レイヤ、または第２グループのディスク・ドライブにおける他のディスク・ドライブから第１ファイルに関連する基準レイヤと第１ファイルに関連する第１精細レイヤとの第２線形組み合わせのいずれかを引き出す。
【００１６】
[0021]  一実施形態では、 前述のコントローラは、複数のディスク・ドライブから引き出された情報に基づくデータをユーザに配信するように構成される。
[0022]  本明細書において説明する概念、システム、回路、および技法の更に他の形態によれば、複数のディスク・ドライブ内において複数の異なる解像度でファイルを格納するために多解像度コード化を使用するシステムにおいて、第１ファイルを求めるユーザの要求を処理する方法を提供する。このシステムは、第１ファイルに関連する基準レイヤを格納する第１グループのディスク・ドライブと、第１ファイルに関連する基準レイヤと第１ファイルに関連する第１精細レイヤとの線形組み合わせを格納する第２グループのディスク・ドライブとを有する。更に特定すれば、この方法は、最低から２番目の解像度の第１ファイルを求めるユーザからの要求を受けるステップと、第２グループのディスク・ドライブにおけるディスク・ドライブから、第１ファイルに関連する基準レイヤと第１ファイルに関連する第１精細レイヤとの第１線形組み合わせを引き出すステップと、第１グループのディスク・ドライブにおけるディスク・ドライブから第１ファイルに関連する基準レイヤ、または第２グループのディスク・ドライブにおける他のディスク・ドライブから、第１ファイルに関連する基準レイヤと第１ファイルに関連する第１精細レイヤとの第２線形組み合わせのいずれかを引き出すステップと、第１線形組み合わせと、基準レイヤまたは第２線形組み合わせのいずれかとに基づくデータを、ユーザに送るステップとを含む。
【００１７】
[0023]  一実施形態では、この方法は、更に、第２グループのディスク・ドライブのいずれも、受けた要求が処理されるときに使用のために利用可能でない場合、要求拒否メッセージをユーザに送るステップを含む。
【００１８】
[0024]  一実施形態では、この方法は、更に、最低解像度の第１ファイルを求めるユーザからの要求を受けるステップと、要求に応答して、第１グループのディスク・ドライブにおけるディスク・ドライブから第１ファイルに関連する基準レイヤを引き出すステップと、要求に応答して引き出した基準レイヤをユーザに送るステップとを含む。
【００１９】
[0025]  本明細書において説明する概念、システム、回路、および技法の更に他の形態によれば、多解像度コードを使用して複数の異なる解像度で複数のディスク・ドライブにファイルを格納し、および／または引き出すコントローラについて説明する。一実施形態では、このコントローラは、複数のディスク・ドライブにおける第１グループのディスク・ドライブの各々に、第１ファイルの基準レイヤを格納し、複数のディスク・ドライブにおける第２グループのディスク・ドライブの各々に、第１ファイルの基準レイヤと第１ファイルの第１精細レイヤとの線形組み合わせを格納するように構成される。
【００２０】
[0026]  一実施形態では、このコントローラは、複数のディスク・ドライブにおける第３グループのディスク・ドライブの各々に、第１ファイルの基準レイヤと、第１ファイルの第１精細レイヤと、第１ファイルの第２精細レイヤとの線形組み合わせを格納するように構成される。
【００２１】
[0027]  一実施形態では、このコントローラは、異なるランダム係数を使用して、第２組のディスク・ドライブの各々に対して線形組み合わせを生成し、第２組のディスク・ドライブの各々に、ランダム係数を、対応する線形組み合わせと関連付けて格納するように構成される。
【００２２】
[0028]  一実施形態では、このコントローラは、複数のディスク・ドライブにおける第３グループのディスク・ドライブの各々に、第１ファイルの基準レイヤと、第１ファイルの第１精細レイヤと、第１ファイルの第２精細レイヤとの線形組み合わせを格納するように構成される。
【００２３】
[0029]  一実施形態では、このコントローラは、ユーザ要求に応答して、複数のディスク・ドライブからファイルを引き出すように構成される。このコントローラは、２番目に低い解像度の第１ファイルを求めるユーザ要求を受け、これに応答して、第２グループのディスク・ドライブにおけるディスク・ドライブから、第１ファイルに関連する基準レイヤと第１ファイルの第１精細レイヤとの第１線形組み合わせを引き出し、第１グループのディスク・ドライブにおけるディスク・ドライブから第１ファイルに関連する基準レイヤ、または第２グループのディスク・ドライブにおける他のディスク・ドライブから、第１ファイルに関連する基準レイヤと第１ファイルに関連する第１精細レイヤとの第２線形組み合わせのいずれかを引き出す。
【００２４】
[0030]  一実施形態では、このコントローラは、複数のディスク・ドライブから引き出された情報に基づくデータを、ユーザに配信するように構成される。
【図面の簡単な説明】
【００２５】
[0031]  以上の特徴は、以下の図面の説明から、一層深く理解することができよう。
【図１】図１は、複数のディスク・ドライブ内に多解像度コード化ファイルを格納する技法を示す図である。
【図２】図２は、実施形態にしたがって、システマティック・ネットワーク・コード化格納(systematic network coded storage)を使用して、複数のドライブ内に多解像度コード化ファイルを格納する技法例を示す図である。
【図３】図３は、実施形態にしたがって、多解像度コード化によってシステマティック・ネットワーク・コード化格納を設けるために、データ・センタまたは同様のシステムにおいて使用することができるアーキテクチャ例を示すブロック図である。
【図４】図４は、実施形態にしたがって、システマティック・ネットワーク・コード化格納を使用して複数のディスク・ドライブ内に多解像度コード化ファイルを格納する方法例を示す流れ図である。
【図５】図５は、実施形態にしたがって多解像度コード化ファイルを複数のディスク・ドライブに格納するためにシステマティック・ネットワーク・コード化格納を使用するシステムにおいてストリーミング・サービスをユーザに提供する方法例を示す流れ図である。
【発明を実施するための形態】
【００２６】
[0037]  本明細書では、多解像度コード(multi-resolution code)を使用してビデオ・ファイルおよび／または他のファイルのためにシステマティック・ネットワーク・コード化格納を提供する技法、デバイス、およびシステムについて説明する。これらの技法、デバイス、およびシステムは、多種多様な異なる用途において使用することができ、特にデータ・センタに基づくビデオ・ストリーミングの用途における使用に非常に適している。多解像度コードによるシステマティック・ネットワーク・コード化格納を使用するデータ・センタは、多種多様のネットワーク条件の下で非コード化格納(uncoded storage)を使用するものよりも低い飽和確率を達成できることが示されている。これらの条件は、サーバ負荷の変動、レイヤ間におけるストレージ割り当て、および／または到達要求−タイプ比率(arrival request-type ratio)を含むことができる。ある実現例では、多解像度コードによるシステマティック・ネットワーク・コード化格納を使用すると、飽和確率を１桁よりも多く低下させることができる。また、システマティック・ネットワーク・コード化格納は、データ・センタにおいてドライブ・インフラストラクチャ要件を低減するために使用されることも可能である。
【００２７】
[0038]  システム飽和とは、システムが現在新たなユーザ要求に全くサービスすることができない状態である。飽和に伴う問題を低減するために、多くのコンテンツ配信ネットワーク（ＣＤＮ）はネットワークにわたってコンテンツを複製する。このコンテンツの複製は、例えば、ＣＤＮに関連するデータ・センタ内の複数の位置にある特定のファイルの複製（例えば、同じファイルがデータ・センタの異なるディスク・ドライブ内に格納される）を含むこともある。このように、データ・センタにおいてファイルを求める要求を受けたときに、そのファイルを含む第１ディスク・ドライブが利用できない場合でも（即ち、現在１つ以上の他の要求にサービスしている）、同じコンテンツを１つ以上の他のドライブから利用可能にすることができる。少なくとも１つのドライブからファイルが入手可能である限り、要求にサービスすることができ、要求が否定される必要はない。
【００２８】
[0039]  現在、ユーザがＣＤＮからのストリーミング・ビデオ・サービスにアクセスすることを可能にする多種多様な異なるタイプのユーザ・デバイスが入手可能である。このようなデバイスは、例えば、スマート・フォン、タブレットおよび他のコンピュータ、マルチメディア・デバイス、およびその他を含む。普及しているデバイスによって可能にされるビデオ解像度は、現在３６０ＰからＨＤの１０８０ｐまでの比較的広い範囲にわたる。このデバイスおよび解像度レベルの多様性は、データ・センタにおけるビデオ・ファイル複製戦略を複雑にする可能性がある。データ・センタ内において使用されるファイル複製技法は、ビデオ解像度の多様性および飽和確率の低下の双方を考慮に入れなければならない。
【００２９】
[0040]  多解像度コードは、データ・センタにおけるビデオ解像度の多様性を管理するための手段として提案された。多解像度コードは、異なるレートで読み取ることができる１つのコードであり、異なる解像度での再生が得られる。多解像度コードは、通例、最低ビデオ解像度を与える基準レイヤと、追加の解像度を与える１つ以上の精細レイヤとを含む。例えば、ビデオのＨ．２６４またはＳｉｌｖｅｒｌｉｇｈｔ４８０ｐは、３８０ｐ基準レイヤと、１つ以上の精細レイヤとを使用してエンコードすることができる。多解像度コードが使用されているとき、ユーザは、例えば、彼らのビデオ解像度の好みおよび／または利用可能な通信帯域幅に基づいて、どの位多くのレイヤを要求すべきか決定することができる。
【００３０】
[0041]  最近のシステムでは、データ・センタ内部の異なるドライブに、多解像度ビデオのレイヤの異なるグループが格納されることが多い。つまり、あるディスク・ドライブはビデオの基準レイヤだけを格納することもあり、他のディスク・ドライブは基準レイヤおよび第１精細レイヤを含むこともあり、更に他のディスク・ドライブは基準レイヤならびに第１および第２精細レイヤを含むこともある等である。この技法を、２つの異なるビデオ解像度を提供するシステムについて、図１に示す。図示のように、ユーザが特定のファイルの最も低い解像度を要求した場合（図１の左側を参照）、ビデオの基準レイヤのみを格納するディスク・ドライブが選択されればよい。次いで、この基準レイヤは、選択されたドライブから引き出され、ユーザに配信することができる。あるストリーミングの用途では、ファイルの引き出しおよび配信は双方とも、ファイル全体が配信され終えるまでまたはプロセスがそれ以外で終了するまで、１つの連続プロセスの一部であることが可能である。
【００３１】
[0042]  ユーザがもっと高い解像度のビデオを要求した場合（図１の右側参照）、基準レイヤおよび第１精細レイヤの双方を格納するディスク・ドライブが選択されればよい。次いで、基準レイヤおよび第１精細レイヤが引き出されてデコードされ、その結果得られたもっと解像度が高いファイルがユーザに配信される。もっと低い解像度の要求を受け、基準レイヤだけを含むドライブがいずれも利用できない場合、この要求を拒否することができる。同様に、もっと高い解像度の要求を受け、基準レイヤおよび第１精細レイヤを含むドライブがいずれも利用できない場合、この要求も拒否することができる。
【００３２】
[0043]  より高い解像度の精細レイヤをデコードするには、通例、対応する基準レイヤとそれよりも低い全ての精細レイヤをデコードする必要がある。つまり、いずれの解像度のビデオが要求されても、基準レイヤは常に必要になる。システムが格納する基準レイヤが少なすぎる場合、基準レイヤ・ドライブがユーザの要求によって圧倒される危険性があり、高いシステム飽和確率を生ずる。逆に、システムが、精細レイヤを犠牲にして、基準レイヤのためにもっと多くのドライブを割り当てる場合、ユーザの体験品質を低下させるまたは制限する危険性がある。
【００３３】
[0044]  既に説明したように、データ・センタが所与の時点にサービスすることができるユーザ要求の数には限度があるのが通例である。本明細書において説明する種々の実施形態では、ユーザのビデオ要求は通例ユーザによって望まれるビデオ解像度を識別する。本明細書において使用する場合、システムが、サポートされるいずれの解像度でも、新たなユーザ要求に現在全くサービスできない場合、このシステムは「飽和」状態（または単に「飽和」）にあると言う。同様に、「飽和確率」（またはＰＳ）という用語は、システムが飽和状態にある定常状態確率(steady state probability)を記述するために使用される。
【００３４】
[0045]  ネットワーク・コーディング(network coding)とは、データ・エレメントの線形組み合わせを生成することによってデータがエンコードされる技法である。これらの線形組み合わせは、十分な数の線形組み合わせ（および／または元のデータ・エレメント）が自由度として入手可能であると仮定して、元のデータ・エレメントを抽出するために、後に「デコード」することができる。普及しているネットワーク・コーディングの１つの形態に、ランダム線形ネットワーク・コーディング（ＲＬＮＣ）として知られるものがある。ＲＬＮＣを使用すると、データ・エレメントは、ランダムに生成される係数を使用して、線形に組み合わせられる。異なる線形組み合わせを生成するために異なる１組のランダムに生成された係数が使用される場合、その線形組み合わせは、通例、互いに線形に独立であり（即ち、革新的(innovative)）、したがって、デコーディングにおける使用に対する自由度を表す。
【００３５】
[0046]  システマティック・コード(systematic code)とは、元のコード化されていないデータが、エンコードされた出力の一部にされるコードである。システマティック・ネットワーク・コーディングとは、元のコード化されていないデータの一部または全部を、データの線形組み合わせ（即ち、ネットワーク・コード化データ）と共に含むシステマティック・データである。更に詳細に説明するが、ある実施形態では、データ・センタにおいて多解像度コード化ファイルを格納するために、システマティック・ネットワーク・コード化格納が使用される。ネットワーク・コード化格納が「システマティック」であるのは、多解像度ビデオ・ファイルに関連するデータの一部（例えば、基準レイヤ）が、ディスク・ドライブにおいて非コード化形態で、それよりも解像度が高いレイヤのネットワーク・コード化バージョンと共に格納されるからである。
【００３６】
[0047]  図２は、実施形態にしたがってシステマティック・ネットワーク・コード化格納を使用する複数のドライブ内に、多解像度コード化ファイルを格納する技法を示す図である。この技法は、例えば、データ・センタおよび／または他のシステム内において使用することができる。以下に続く説明では、２つの異なる解像度をサポートするシステムのコンテキストにおいて、本技法を説明する。しかしながら、本技術はそれよりも多い数の利用可能な解像度を有するシステムにも容易に拡張できることは認められてしかるべきである。図２を参照すると、非ネットワーク・コード化形態の所与の多解像度コード化ファイルに関連する基準レイヤ（Ｌ１）を格納する第１グループのドライブ１０が設けられる。また、各々多解像度コード化ビデオ・ファイルの基準レイヤ（Ｌ１）と、第１精細レイヤ（Ｌ２）との線形組み合わせ
【数１】
0006286019.tif 000002
を格納する第２グループのドライブ１２も設けられる。基準レイヤ（Ｌ１）および第１精細レイヤ（Ｌ２）は、ある実現例では、レートが等しいレイヤ(equal-rate layer)（レートＢ０を有する）であってもよい。線形組み合わせは次のように計算することができる。
【００３７】
【数２】
0006286019.tif 000003
【００３８】
ここで、ａｉは、ランダム係数であり、Ｌｉは多解像度コード・レイヤである。第２グループのドライブに各線形組み合わせを格納するために、異なるランダム係数が使用されてもよい。ある実現例では、ランダム係数を生成するために、乱数発生器を使用してもよい。ランダム係数は、各対応するドライブ内に線形組み合わせと関連付けて格納されてもよい（例えば、メタデータまたはある他のタイプの関連データとして）。
【００３９】
[0048]  以前と同様に、ユーザは、もっと低い解像度またはもっと高い解像度のいずれかのビデオ・ファイルをデータ・センタに要求することができる。ユーザがもっと低い解像度のファイルを要求した場合、システムは、第１グループのドライブ１０をチェックして、これらのドライブの内いずれかが、この要求にサービスするために利用可能な十分な帯域幅を有するか否か判定することができる。有する場合、第１グループのドライブから利用可能なドライブを選択することができ、要求されたファイルの基準レイヤをそのドライブから引き出してユーザに配信することができる。ユーザがもっと高い解像度のファイルを要求した場合、システムは第２グループのドライブ１２をチェックして、これらのドライブの内いずれかが、この要求にサービスするために利用可能な十分な帯域幅を有するか否か判定することができる。有する場合、第２グループのドライブから利用可能なドライブを選択し、線形組み合わせをそこから引き出すことができる。
【００４０】
[0049]  第２グループのドライブから引き出された線形組み合わせは、それがデコードされるまでは使用可能ではなく、デコーディングには追加の情報が必要となる（即ち、追加の自由度）。この追加の情報は、第１グループのドライブ１０から基準レイヤを引き出すことによって、または第２グループのドライブ１２におけるドライブの内他の１つから他の線形組み合わせを引き出すことによってのいずれかで、提供することができる。これら２つのソースはいずれも、ネットワーク・コード化情報をデコードするために必要とされる自由度を与える。このデコーディングは、データ・センタまたはユーザ位置のいずれかにおいて実行することができる。ユーザ位置において実行される場合、信号送信の間ネットワーク・コード化を使用するという追加の利点も得ることができる。ネットワーク・コード化情報をデコードするための任意の技法を使用することができる。要求されたビデオ・ファイルの基準レイヤおよび第１精細レイヤが抽出された後、これらのファイルを更に処理して多解像度コーディングを除去し、再生に適した、要求ファイルの最終的な、解像度が高いバージョンを生成することができる。また、これもデータ・センタまたはユーザ位置のいずれかで実行することができる。
【００４１】
[0050]  以上で説明した技法は、データ・センタまたは同様の設備において飽和の確率を下げることができる。例えば、ユーザがある高い方の解像度のビデオを求める要求を提出した場合、第１ファイルを第２グループのドライブ１２から引き出すことができ、第２ファイルを第１または第２グループのドライブ１０、１２のいずれかから引き出すことができる。第２ファイルを引き出すためにより多くのドライブを使用することができるので、高い方の解像度の要求を拒否する機会が減少する。１つの可能な手法では、第２グループのドライブ１２から第１線形組み合わせを引き出した後、システムは第２グループ１２において他のドライブが利用可能か否か判定することができる。利用可能である場合、第２線形組み合わせを引き出すことができる。第２グループにおいて他のドライブが利用可能でない場合、システムは、次に、第１グループのドライブ１０において利用可能なドライブがあるか否か判定することができる。ある場合、基準レイヤＬ１を引き出すことができる。２つのファイルを引き出す他の技法も、他の実施形態では使用することができる。
【００４２】
[0051]  以上で説明した技法は、２つよりも多い解像度をサポートするシステムにおける使用のために拡張することもできる。以下に続く説明では、最低解像度のファイルを求める要求をタイプ１要求と呼び、２番目に低い解像度のファイルを求める要求をタイプ２要求と呼ぶ等とする。三解像度システムでは、第３グループのドライブを設け、各ドライブが、所与のファイルの基準レイヤ、第１精細レイヤ、および第２精細レイヤの線形組み合わせを格納すればよい。以前のように、格納されている線形組み合わせ毎に、異なる１組のランダム係数を使用することができる。これらの係数は、ある実施形態では、線形組み合わせと共に格納されてもよい。三解像度システムでは、タイプ３要求は、ディスク・ドライブから３つのファイルを引き出すことによって処理することができる。引き出されるファイルの内１つは、第３グループのドライブから引き出されなければならず、第２ファイルは、第２グループのドライブまたは第３グループのドライブのいずれかから引き出すことができ、第３ファイルは、第１、第２、または第３グループのファイルから引き出すことができる。この場合も、この手法は、サービス拒否の回数減少に繋げることができる。同様に、追加の解像度レイヤも追加することができる。
【００４３】
[0052]  図３は、実施形態にしたがって、データ・センタまたは同様の設備内において使用することができるアーキテクチャ２０を示すブロック図である。データ・セータは、例えば、ビデオ・ストリーミング・サービスを求めるユーザからの要求を受けるときに使用するために、ネットワークに結合されるとよい。ネットワークは、例えば、プライベート・ネットワーク、パブリック・ネットワーク、インターネット、ワイヤレス・ネットワーク、有線ネットワーク、ワイヤレスおよび有線双方のリンクを有するネットワーク、あるいは複数のユーザのためにデータ・センタへのアクセスを与えることができる任意の他のタイプのネットワークまたは通信媒体を含むことができる。図示のように、アーキテクチャ２０は、複数のサーバ２２と複数のディスク・ドライブ２４とを含むことができる。各サーバには、複数のディスク・ドライブ内にある対応する１組のディスク・ドライブと関連付けることができる。例えば、図３に示すように、サーバ２６はドライブ２８、ドライブ３０、およびドライブ３２と関連付けることができ、サーバ３４はドライブ３６、ドライブ３９、およびドライブ４０と関連付けることができ、サーバ４２はドライブ４４、ドライブ４６、およびドライブ４８と関連付けることができる。任意の数のサーバを設けることができ、そして任意の数のドライブを各サーバと関連付けることができる。各サーバは、それに関連するドライブだけにしかアクセスできなくてもよい。
【００４４】
[0053]  また、アーキテクチャ２０は、ビデオ・ファイル（および／または他のタイプのファイル）を求めるユーザからの要求を受けて処理するために、要求処理ユニット５０も含むことができる。要求処理ユニット５０は、例えば、外部ネットワークを介して、その入力においてユーザからの要求を受信することができる。各ユーザ要求は、例えば、所望のファイルおよび対応する解像度を示すことができる。少なくとも１つの実施形態では、アーキテクチャ２０を有するデータ・センタ内に格納されている各ビデオ・ファイルは、１つのサーバに関連するドライブ内でなければ複製することはできない。このような実施形態では、要求処理ユニット５０は、どのサーバが、要求されたファイルを有するか判定し、次いで要求をそのサーバに転送することができる。
【００４５】
[0054]  ある実施形態では、既に説明したように、特定のサーバに関連するドライブを、個々のファイル毎に、解像度に基づくグループに分割することができる。即ち、これらのドライブは、各々ファイルのＭＲＣ基準レイヤだけを格納する第１グループのドライブと、ファイルのＭＲＣ基準レイヤとファイルの第１ＭＲＣ精細レイヤとのの線形組み合わせのみを格納する第２グループのファイル等を含むことができる。サーバに関連し特定のファイルについて何らかの情報を有するドライブの総数は、グループにおける全てのドライブを含む必要はない。即ち、ある実施形態では、サーバに関連する１つ以上のドライブが、そのサーバに関連する対応ファイルについて情報を有していなくてもよい。ある実施形態では、特定のファイルに関連する異なるグループ間に共通エレメントがない。つまり、第１ファイルに関連する基準レイヤおよび第１精細レイヤの線形組み合わせを含む各ドライブは、非コード化形態(uncoded form)で基準レイヤの別のコピーを格納しなくてもよい。他の実施形態では、異なるグループ間にある交差(cross-over)がある場合もある。少なくとも１つの構成では、個々のドライブは、あるファイルに対しては非コード化基準レイヤを格納し、他のファイルに対しては線形組み合わせを格納することができる。即ち、ドライブは、全てのファイルに対して１つのレイヤ・タイプに限定されても、されなくてもよい。
【００４６】
[0055]  ファイルに関連する各グループ内のドライブ数は、ある実現例では、コスト関数に依存する。異なるレイヤを格納するドライブの比率は、例えば、分析モデル、数値シミュレーション、テストベッド実施(testbed implementations)、および／または他の最適化戦略を使用して、飽和確率を下げるために、最適化することができる。一般に、システム飽和確率は、例えば、サーバに関連するドライブ数（ｍ）、各レイヤに関連するドライブ数（ｍｉ）、各ドライブのアクセス帯域幅（Ｂ）、各レイヤに関連するデータ・レート（Ｂ０）、および／または他の要因というようなパラメータに依存すると考えられる。
【００４７】
[0056]  ユーザ要求がサーバに転送された後、サーバはファイルに関連する(associated)該当の(relevant)グループのドライブを識別することができる。サーバは、このグループ情報をローカルに格納しておくことができ、または要求処理ユニット５０または何らかの他の場所からその情報を受信することもできる。例えば、タイプ１要求を受けた場合、対応するサーバは、このファイルの非ネットワーク・コード化基準ファイルのコピーを格納しているのはどのドライブか判定することができる。これらのドライブの内１つ以上が、利用可能な十分な帯域幅を有する場合、サーバは基準レイヤを利用可能なドライブから引き出し、それを要求元のユーザに配信することができる。タイプ２要求を受けた場合、対応するサーバは、ファイルの基準レイヤおよび第１精細レイヤの線形組み合わせを格納しているのはどのドライブか、更にファイルの非ネットワーク・コード化基準レイヤのコピーを格納しているのはどのドライブか判定することができる。次いで、サーバは第１線形組み合わせ、および非コード化基準レイヤまたは他の線形組み合わせのいずれかを、対応するドライブ・グループから引き出すことができる（ドライブが利用可能であると仮定する）。次いで、この情報を要求元のユーザに配信することができる。
【００４８】
[0057]  図４および図５は、実施形態にしたがって、多解像度コードを使用して、システマティック・ネットワーク・コード化格納を実現するデータ・センタ内部における使用方法を示す流れ図である。
【００４９】
[0058]  矩形エレメント（図４におけるエレメント６２に代表される）は、ここでは、「処理ブロック」を示し、コンピュータ・ソフトウェア命令または命令のグループを表すことができる。尚、図４および図５の流れ図は、本明細書において説明する設計の一実施形態例を表し、概要を説明するプロセスに概ね従うこのような図の変形も、本明細書において説明し特許請求する概念、システム、および技法の範囲内に入ると見なされることは、注記してしかるべきである。
【００５０】
[0059]  あるいは、処理ブロックは、ディジタル信号プロセッサ回路、特定用途集積回路（ＡＳＩＣ）、またはフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）のような、機能的に等価な回路によって実行される動作を表すこともできる。ある処理ブロックは手動で実行されてもよく、一方他の処理ブロックはプロセッサまたは他の回路によって実行されてもよい。この流れ図は、いずれの特定のプログラミング言語のシンタックスも示さない。むしろ、この流れ図は、当業者が回路を製作するためおよび／または特定の装置の要求される処理を実行するコンピュータ・ソフトウェアを生成するために必要とする機能的情報を示す。尚、ループおよび変数の初期化、ならびに一時的変数の使用というような、決まり切ったプログラム・エレメントの多くは示されない場合もあることは、注記してしかるべきである。本明細書において別段示されない限り、説明する特定のシーケンスは例示に過ぎず、本明細書において説明および／または特許請求する概念の主旨から逸脱することなく、変更できることは、当業者には認められよう。つまり、別段述べられない限り、以下で説明するプロセスは、順不問であり、可能であれば、図４および図５に示すシーケンスを任意の便利なまたは望ましい順序で実行できることを意味する。
【００５１】
[0060]  図４は、実施形態にしたがって、システマティック・ネットワーク・コード化格納を使用して複数のディスク・ドライブ内に多解像度コード化ファイルを格納する方法６０を示す流れ図である。方法６０は、例えば、コンテンツ配信ネットワークおよび／または他のコンテンツ配信ベース・システムの一部であるデータ・センタに関連付けて実行することができる。ある実施形態では、多解像度コード化ファイルは、多解像度コード化ビデオ・ファイルを含むこともできる。以下の説明では、方法６０は、３つの異なる解像度を与えるシステムのコンテキストで説明する。しかしながら、方法６０の異形も、任意の数の解像度レベル（即ち２つ以上）を与えるシステムにおいて使用できることは認められてしかるべきである。第１ファイルの基準レイヤを、第１グループのディスク・ドライブの各々に格納する（ブロック６２）。第１ファイルの基準レイヤおよび第１精細レイヤの線形組み合わせを、第２グループのディスク・ドライブの各々に格納する。格納される各線形組み合わせは、他の線形組み合わせに対して線形に独立である（または革新的である）ように、異なる１組のランダム係数を利用することができる。ある実施形態では、格納プロセス中に線形組み合わせを生成するために、乱数発生器が使用されてもよい。線形組み合わせ毎に使用されるランダム係数は、対応する組み合わせに関連付けて（例えば、メタデータとして、または何らかの他の様態で）格納することもできる。
【００５２】
[0061]  第１ファイルの基準レイヤ、第１精細レイヤ、および第２精細レイヤの線形組み合わせを、第３グループのディスク・グループの各々に格納する（ブロック６６）。以前と同様、格納される各線形組み合わせは、異なる１組のランダム係数を利用することができ、これらの係数は組み合わせと関連付けて格納することができる。以上で説明した方法は、複数のドライブに格納されるファイル毎に繰り返すことができる。ある実施形態では、第１、第２、および第３グループのディスク・ドライブは、各々、システムにおける特定のサーバと関連付けられてもよい。また、ある実施形態では、第１、第２、および第３グループのディスク・ドライブが、それらの間に共通のディスク・ドライブを有していなくてもよい。しかしながら、第１、第２、および第３グループのディスク・ドライブを定める他の技法が代わりに使用されてもよい（例えば、複数の異なるサーバに跨がるドライブ・グループ、グループ間に交差を有するドライブ・グループ等）。
【００５３】
[0062]  図５は、実施形態にしたがって複数のディスク・ドライブに多解像度コード化ファイルを格納するために、システマティック・ネットワーク・コード化格納を使用するシステムにおいて、ビデオ・ストリーミング・サービスをユーザに提供する方法８０を示す流れ図である。方法８０は、例えば、コンテンツ配信ネットワークおよび／または他のコンテンツ配信ベース・システムの一部であるデータ・センタと併せて実行することができる。以下の説明では、方法８０は、２つの異なる解像度を与えるシステムのコンテキストで説明する。しかしながら、方法８０の異形も、任意の数の解像度レベル（即ち２つ以上）を与えるシステムにおいて使用できることは認められてしかるべきである。最初に、ユーザから第１ファイル（例えば、ビデオ・ファイル等）を求める要求を受ける（ブロック８２）。次いで、この要求が入手可能な最低解像度を求めるか否か判定を行うことができる（ブロック８４）。この要求が最低解像度を求める場合（ブロック８４においてＹ）、要求されたファイルの非ネットワーク・コード化基準レイヤを、第１グループのディスク内にあるディスク・ドライブから引き出すことができる（ブロック８６）。この基準レイヤをユーザに送る（またはストリーミングする）ことができる（ブロック８８）。第１グループのディスクにおいて、いずれのディスクも、この要求にサービスするために利用可能な十分な帯域幅を有していない場合、この要求を拒否することができる。拒否された場合、要求拒否メッセージをユーザに送ることができる。
【００５４】
[0063]  要求が最低解像度を求めるのではない場合（ブロック８４においてＮ）、第２組のディスク・ドライブから、第１線形組み合わせを引き出す（ブロック９０）。第１線形組み合わせは、要求されたファイルの基準レイヤと、要求されたファイルの第１精細レイヤとの線形組み合わせである。第１線形組み合わせに加えて、第２線形組み合わせも、第２組のディスク・ドライブにおけるディスク・ドライブから引き出してもよく、または第１グループのドライブにおけるディスク・ドライブから、要求されたファイルの非ネットワーク・コード化基準レイヤを読み出してもよい（ブロック９２）。ブロック９０および９２は、いずれの順序で実行することも、または並列に実行することもできる。引き出したデータをユーザに配信する（ブロック９４）。データ・センタ内またはユーザ位置において、引き出されたデータからネットワーク・コード化を除去することができる。第１および第２グループのドライブ内において、以上で説明したアクションを実行するためにディスク・ドライブが利用可能でない場合、要求を拒否することができる。拒否された場合、要求拒否メッセージをユーザに送ることができる。
【００５５】
[0064]  以上、本発明の実施形態例について説明したが、それらの概念を組み込んだ他の実施形態が使用されてもよいことは、今や当業者には明白であろう。本明細書に含まれる実施形態は、開示された実施形態に限定されるのではなく、添付した請求項の主旨および範囲のみによって限定されてしかるべきである。本明細書内において引用した全ての刊行物および引例は、本明細書において引用したことによってその内容全体が明示的に本願にも含まれるものとする。
【図１】
0006286019.tif 000004
【図２】
0006286019.tif 000005
【図３】
0006286019.tif 000006
【図４】
0006286019.tif 000007
【図５】
0006286019.tif 000008