(57)【特許請求の範囲】
【請求項１】
入力されたデータストリームからコンテンツのセグメントを受信することと、  前記コンテンツのセグメントを符号化するための複数の異なるビットレートデータストリームを特定するエンコーダ制御情報を受信することと、  前記エンコーダ制御情報によって特定された通りに、加入者に利用可能な可変数の異なるビットレートデータストリームに前記コンテンツのセグメントを適応的に符号化することを含み、 方法はさらに、  異なるビットレートデータストリーム上で前記コンテンツのセグメントを伝送するための帯域幅要件を決定するために前記コンテンツのセグメントを分析することと、  複数の異なるビットレートに従って前記コンテンツのセグメントを符号化することと、  前記セグメントに関する前記帯域幅要件の少なくとも一部に基づいて、前記コンテンツのセグメントが符号化される異なるビットレートデータストリームの数を動的に調整することを含む、方法。
【請求項２】
入力されたデータストリームからコンテンツのセグメントを受信することと、  前記コンテンツのセグメントを符号化するための複数の異なるビットレートデータストリームを特定するエンコーダ制御情報を受信することと、  前記エンコーダ制御情報によって特定された通りに、加入者に利用可能な可変数の異なるビットレートデータストリームに前記コンテンツのセグメントを適応的に符号化することを含み、 方法はさらに、 前記セグメントの少なくも１つを伝送するための帯域幅要件が閾値を上回ることの検知に応答して、少なくとも１つのセグメントを符号化する異なるビットレートデータストリームの数を増加させることをさらに含む、方法。
【請求項３】
前記コンテンツのセグメントを適応的に符号化することが、  第１の品質レベルまで対応するビットレートに、前記コンテンツのセグメントの第１の部分を符号化することと、  前記第１の品質レベルよりも高い第２の品質レベルまで対応するビットレートに、前記コンテンツのセグメントの第２の部分を符号化する、請求項１または２に記載の方法。
【請求項４】
前記エンコーダ制御情報によって特定された通りに、前記入力されたデータストリーム上で受信されるストリーミングコンテンツのスケジュールされたプログラムのセグメントを符号化するビットレートの数を変化させることをさらに含む、請求項１または２に記載の方法。
【請求項５】
前記コンテンツのセグメントが前記入力されたデータストリーム上で受信される日時に少なくとも部分的に基づいて、前記コンテンツのセグメントを符号化するビットレートを変化させることをさらに含む、請求項１または２に記載の方法。
【請求項６】
符号化されたコンテンツのセグメントを伝送するのに利用可能な帯域幅の量に少なくとも部分的に基づいて、前記コンテンツのセグメントを符号化するビットレートを変化させることをさらに含む、請求項１または２に記載の方法。
【請求項７】
データフィード上で前記入力されたデータストリームの前記コンテンツのセグメントを受け取ることを含み、当該入力されたデータストリームは、少なくともメタデータの部分を含む、前記コンテンツのセグメントを受信することと、  前記入力されたデータストリームの前記メタデータから前記エンコーダ制御情報を取得することをさらに含む、請求項１または２に記載の方法。
【請求項８】
前記コンテンツのセグメントが受信される前記入力されたデータストリームについての帯域外の信号から前記エンコーダ制御情報を受信することをさらに含む、請求項１または２に記載の方法。
【請求項９】
前記コンテンツのセグメントを受信することが、データフィード上で、コンテンツの第１のプログラムおよびコンテンツの第２のプログラムを受信することを含み、前記コンテンツの第１のプログラムが前記コンテンツの第２のプログラムとは無関係であり、  前記エンコーダ制御情報が、異なるビットレートデータストリームの第１の数により前記コンテンツの第１のプログラムを符号化することを特定し、  前記エンコーダ制御情報が、異なるビットレートデータストリームの第２の数により前記コンテンツの第２のプログラムを符号化することを特定し、前記第２の数は、前記第１の数とは異なるものである、請求項１または２に記載の方法。
【請求項１０】
前記データフィード上で前記コンテンツの第１のプログラムを受信し、これに続いて、前記データフィード上で前記コンテンツの第２のプログラムを受信することをさらに含み、  前記コンテンツのセグメントを、前記可変数の異なるビットレートデータストリームに適応的に符号化することが、ｉ）前記エンコーダ制御情報によって特定された通りに、データストリームの前記第１の数に従って前記コンテンツの第１のプログラムを符号化することと、ｉｉ）前記エンコーダ制御情報によって特定された通りに、データストリームの前記第２の数に従って前記コンテンツの第２のプログラムを符号化することを含む、請求項９に記載の方法。
【請求項１１】
前記データフィード上で前記コンテンツの第２のプログラムのセグメント間でインターリーブされた前記コンテンツの第１のプログラムのセグメントを受信することをさらに含み、  前記コンテンツのセグメントを、前記可変数の異なるビットレートデータストリームに適応的に符号化することが、ｉ）前記エンコーダ制御情報によって特定された通りに、データストリームの前記第１の数に従って前記コンテンツの第１のプログラムのセグメントを符号化することと、ｉｉ）前記エンコーダ制御情報によって特定された通りに、データストリームの前記第２の数に従って前記コンテンツの第２のプログラムのセグメントを符号化することを含む、請求項９に記載の方法。
【請求項１２】
第１のエンコーダ制御情報を受信することであって、当該第１のエンコーダ制御情報は、異なるビットレートデータストリームの第１の数において、受信されたコンテンツのセグメントの第１の部分を符号化するようにそれぞれのエンコーダを構成することを示す、前記第１のエンコーダ制御情報を受信することと、  前記第１のエンコーダ制御情報に従って、前記第１のエンコーダ制御情報によって特定された通りに、異なるビットレートデータストリームの前記第１の数に、受信されたコンテンツのセグメントの前記第１の部分を符号化することと、  第２のエンコーダ制御情報を受信することであって、当該第２のエンコーダ制御情報は、異なるビットレートデータストリームの第２の数において、受信されたコンテンツのセグメントの第２の部分を符号化するようにそれぞれのエンコーダを構成することを示す、前記第２のエンコーダ制御情報を受信することと、  前記第２のエンコーダ制御情報に従って、前記第２のエンコーダ制御情報によって特定された通りに、異なるビットレートデータストリームの前記第２の数に、受信されたコンテンツのセグメントの前記第２の部分を符号化することをさらに含む、請求項１または２に記載の方法。
【請求項１３】
可変数の異なるビットレートデータストリームに前記コンテンツのセグメントを符号化することが、  前記エンコーダ制御情報によって特定された通りに、異なる品質レベルの第１の数に、前記入力されたデータストリームから取得された前記コンテンツの第１のセグメントを符号化することと、  前記エンコーダ制御情報によって特定された通りに、異なる品質レベルの第２の数に、前記入力されたデータストリームから取得された前記コンテンツの第２のセグメントを符号化することを含み、異なる品質レベルの前記第２の数は、異なる品質レベルの前記第１の数とは異なるものである、請求項１または２に記載の方法。
【請求項１４】
前記可変数のビットレートデータストリームに従って、前記コンテンツのセグメントの利用可能性を示すコンテンツアクセス情報を生成することと、  前記コンテンツアクセス情報を少なくとも１人の加入者に分配することであって、当該少なくとも１人の加入者は、前記可変数のビットレートデータストリームから符号化されたコンテンツのセグメントを選択的に取得する、前記コンテンツアクセス情報を分配することをさらに含む、請求項１または２に記載の方法。
【請求項１５】
前記入力されたデータストリーム上で受信された前記コンテンツが、コンテンツの第１のプログラムおよびコンテンツの第２のプログラムを少なくとも含み、さらに、  前記第１のプログラムおよび前記第２のプログラムに関連した分類タイプを示す分類情報を受信することと、  前記分類タイプに基づいて、前記エンコーダ制御情報を生成することを含む、請求項１または２に記載の方法。
【請求項１６】
前記入力されたデータストリーム上で受信されたコンテンツの第１のプログラムが分類される、第１の分類タイプを特定する第１の分類情報を受信することと、  前記入力されたデータストリーム上で受信されたコンテンツの第２のプログラムが分類される、第２の分類タイプを特定する第２の分類情報を受信することと、  前記第１の分類タイプに割り当てられた第１のセットのデータストリームビットレートに、前記第１の分類タイプをマッピングすることと、  前記第２の分類タイプに割り振られた第２のセットのデータストリームビットレートに、前記第２の分類タイプをマッピングすることと、  第１のエンコーダ制御情報および第２のエンコーダ制御情報を含むエンコーダ制御情報を生成することであって、前記第１のエンコーダ制御情報は、前記第１のセットによって特定された通りに、それぞれのビットレートで前記コンテンツの第１のプログラムを符号化することを示し、前記第２のエンコーダ制御情報は、前記第２のセットによって特定された通りに、それぞれのビットレートで前記コンテンツの第２のプログラムを符号化することを示す、前記エンコーダ制御情報を生成することをさらに含む、請求項１または２に記載の方法。
【請求項１７】
前記入力されたデータストリームが、コンテンツの複数のプログラムを含む線形チャンネルであり、  前記線形チャンネル上の前記複数のプログラムのスケジューリングタイムおよび分類タイプに基づき、前記エンコーダ制御情報を生成することをさらに含む、請求項１または２に記載の方法。
【請求項１８】
異なる品質レベルで符号化されたコンテンツのセグメントを伝送可能なネットワーク帯域幅の少なくとも一部に基づいて、前記コンテンツのセグメントが符号化される異なるビットレートデータストリームの数を動的に調整すること、をさらに含む、請求項１７に記載の方法。
【請求項１９】
前記符号化されたデータストリームの少なくとも一部が伝送されるネットワークにおいて帯域幅を解放するために、前記複数の異なるビットレートデータストリームの少なくとも１つで前記コンテンツのセグメントを符号化することを取り除くための前記エンコーダ制御情報を生成することをさらに含む、請求項１または２に記載の方法。
【請求項２０】
コンテンツのオリジナルのセグメントを受信することと、  コンテンツの各オリジナルのセグメントのそれぞれの複雑さの程度を決定することであって、前記セグメントは、再生の際に各オリジナルのセグメントの描出をどのように再生成するかを特定するものであり、  前記各オリジナルのセグメントの各々の複雑さの程度に少なくとも部分に基づいて、前記コンテンツのオリジナルのセグメントが符号化される異なるビットレートデータストリームの数を動的に調整することを含む方法。
【請求項２１】
前記コンテンツの第１のセグメントを受信することと、  前記コンテンツの第１のセグメントの複雑さの程度が閾値を下回ることの検知に応答して、複数のビットレートデータストリームの第１のセットに前記第１のセグメントを符号化することと、  前記コンテンツの第２のセグメントを受信することと、  前記コンテンツの第２のセグメントの複雑さの程度が閾値よりも大きいことの検知に応答して、前記第１のセットに含まれるよりも多い数のビットレートデータストリームに、前記第２のセグメントを符号化することをさらに含む、請求項２０に記載の方法。
【請求項２２】
複数の異なるビットレートデータストリームの第２のセットが、前記第１のセットに含まれない、少なくとも１つの高い品質レベルのデータストリームを含む、請求項２１に記載の方法。
【請求項２３】
前記コンテンツの第１のセグメントを受信することと、  複数のビットレートデータストリームの第１のセットに、前記第１のセグメントを符号化することと、  前記第１のセグメントに続くシーケンスに論理的に配置された、前記コンテンツの第２のセグメントを受信することと、  前記コンテンツの第２のセグメントの複雑さの程度が、閾値よりも低いことの検知に応答して、前記第１のセットよりも少ないビットレートデータストリームを含むデータストリームの第２のセットに、前記第２のセグメントを符号化することをさらに含む、請求項２１に記載の方法。
【請求項２４】
複数の異なるビットレートデータストリームの前記第１のセットが、前記第２のセットに含まれるデータストリームよりも高い品質レベルの少なくとも１つのデータストリームを含む、請求項２３に記載の方法。
【請求項２５】
可変数のビットレートデータストリームによる前記コンテンツのセグメントの利用可能性を示すコンテンツアクセス情報を生成する、請求項２０に記載の方法。
【請求項２６】
前記コンテンツのセグメントを潜在的に符号化する複数のビットレートデータストリームの範囲を示すエンコーダ制御情報を受信することと、  前記オリジナルのセグメントの複雑さの程度に応じて前記エンコーダ制御情報によって特定された前記範囲内で変化するように、異なるビットレートデータストリームの数を動的に調整することをさらに含む、請求項２０に記載の方法。
【請求項２７】
コンテンツの特定のセグメントが、特定の閾値を下回る伝送帯域幅を要求することの検知に応答して、前記特定のセグメントが符号化される異なるビットレートデータストリームの数を減少させることをさらに含む、請求項２０に記載の方法。
【請求項２８】
少なくとも１つのプロセッサデバイスと、  前記少なくとも１つのプロセッサに結合されたハードウェア記憶リソースであって、当該ハードウェア記憶リソースは命令を記憶し、前記少なくとも１つのプロセッサデバイスによって実行されるときに、前記命令が前記少なくとも１つのプロセッサデバイスに、  入力されたデータストリームからコンテンツのセグメントを受信することと、  前記コンテンツのセグメントを符号化する複数の異なるビットレートデータストリームを特定するエンコーダ制御情報を受信することと、  前記エンコーダ制御情報によって特定された通りに、加入者に利用可能な可変数の異なるビットレートデータストリームに、前記コンテンツのセグメントを適応的に符号化することを実行させ、 さらに、  異なるビットレートデータストリーム上で前記コンテンツのセグメントを伝送するための帯域幅要件を決定するために前記コンテンツのセグメントを分析することと、  複数の異なるビットレートに従って前記コンテンツのセグメントを符号化することと、  前記セグメントに関する前記帯域幅要件の少なくとも一部に基づいて、前記コンテンツのセグメントが符号化される異なるビットレートデータストリームの数を動的に調整することを実行させる、ハードウェア記憶リソースとを含む、コンピュータシステム。
【請求項２９】
少なくとも１つのプロセッサデバイスと、  前記少なくとも１つのプロセッサに結合されたハードウェア記憶リソースであって、当該ハードウェア記憶リソースは命令を記憶し、前記少なくとも１つのプロセッサデバイスによって実行されるときに、前記命令が前記少なくとも１つのプロセッサデバイスに、  入力されたデータストリームからコンテンツのセグメントを受信することと、  前記コンテンツのセグメントを符号化する複数の異なるビットレートデータストリームを特定するエンコーダ制御情報を受信することと、  前記エンコーダ制御情報によって特定された通りに、加入者に利用可能な可変数の異なるビットレートデータストリームに、前記コンテンツのセグメントを適応的に符号化することを実行させ、 さらに、 前記セグメントの少なくも１つを伝送するための帯域幅要件が閾値を上回ることの検知に応答して、少なくとも１つのセグメントを符号化する異なるビットレートデータストリームの数を増加させることを実行させる、ハードウェア記憶リソースとを含む、コンピュータシステム。
【請求項３０】
前記コンテンツのセグメントを適応的に符号化することが、  第１の品質レベルおよび対応するビットレートまで、前記コンテンツのセグメントの第１の部分を符号化することと、  前記第１の品質レベルよりも高い第２の品質レベルおよび対応するビットレートまで、前記コンテンツのセグメントの第２の部分を符号化することを含む、請求項２８または２９に記載のコンピュータシステム。
【請求項３１】
前記少なくとも１つのプロセッサデバイスがさらに、  前記エンコーダ制御情報によって特定された通りに、前記入力されたデータストリームで受信されるストリーミングコンテンツのスケジュールされたプログラムのセグメントを符号化するビットレートの数を変化させる動作をサポートする、請求項２８または２９に記載のコンピュータデバイス。
【請求項３２】
前記少なくとも１つのプロセッサデバイスがさらに、  前記コンテンツのセグメントが前記入力されたデータストリームで受信される時間帯に少なくとも部分的に基づいて、前記コンテンツのセグメントを符号化するビットレートを変化させる動作をサポートする、請求項２８または２９に記載のコンピュータシステム。
【請求項３３】
前記少なくとも１つのプロセッサデバイスがさらに、  前記コンテンツの符号化されたセグメントを伝送する帯域幅の量に少なくとも部分的に基づいて、前記コンテンツのセグメントを符号化するビットレートを変化させる動作をサポートする、請求項２８または２９に記載のコンピュータシステム。
【請求項３４】
前記少なくとも１つのプロセッサデバイスがさらに、  データフィード上で、メタデータの少なくとも一部を含む前記入力されたデータストリームのコンテンツのセグメントを受信し、  前記入力されたデータストリームにおいて前記メタデータから前記エンコーダ制御情報を取得する動作をサポートする、請求項２８または２９に記載のコンピュータシステム。
【請求項３５】
前記少なくとも１つのプロセッサデバイスがさらに、  前記コンテンツのセグメントが受信される前記入力されたデータストリームについての帯域外の信号から前記エンコーダ制御情報を受信する動作をサポートする、請求項２８または２９に記載のコンピュータシステム。
【請求項３６】
前記コンテンツのセグメントを受信することが、データフィード上で、コンテンツの第１のプログラムおよびコンテンツの第２のプログラムを受信することを含み、前記コンテンツの第１のプログラムは、前記コンテンツの第２のプログラムとは無関係であり、  前記エンコーダ制御情報が、異なるビットレートデータストリームの第１の数に従って、前記コンテンツの第１のプログラムを符号化することを特定し、  前記エンコーダ制御情報が、異なるビットレートデータストリームの第２の数に従って、前記コンテンツの第２のプログラムを符号化することを特定し、前記第２の数が前記第１の数とは異なる、請求項２８または２９に記載のコンピュータシステム。
【請求項３７】
前記少なくとも１つのプロセッサデバイスがさらに、  前記データフィード上で前記コンテンツの第１のプログラムを受信し、これに続いて、前記データフィード上で、前記コンテンツの第２のプログラムを受信する動作をサポートすることを含み、  前記コンテンツのセグメントを、前記可変数の異なるビットレートデータストリームに適応的に符号化することが、前記エンコーダ制御情報によって特定された通りに、データストリームの第１の数に従って前記コンテンツの第１のプログラムを符号化することと、  前記エンコーダ制御情報によって特定された通りに、データストリームの前記第２の数に従って前記コンテンツの第２のプログラムを符号化することを含む、請求項３６に記載のコンピュータシステム。
【請求項３８】
前記少なくとも１つのプロセッサデバイスがさらに、  前記データフィード上で前記コンテンツの第２のプログラムのセグメント間でインターリーブされる前記コンテンツの第１のプログラムのセグメントを受信する動作をサポートし、  前記コンテンツのセグメントを、前記可変数の異なるビットレートデータストリームに適応的に符号化することが、前記エンコーダ制御情報によって特定された通りに、データストリームの前記第１の数に従って、前記コンテンツの第１のプログラムのセグメントを符号化することと、前記エンコーダ制御情報によって特定された通りに、データストリームの前記第２の数に従って、前記コンテンツの第２のプログラムのセグメントを符号化することを含む、請求項３６に記載のコンピュータシステム。
【請求項３９】
前記少なくとも１つのプロセッサデバイスがさらに、  異なるビットレートデータストリームの第１の数において受信されたコンテンツのセグメントの第１の部分を符号化するようにそれぞれのエンコーダを構成することを示す、第１のエンコーダ制御情報を受信することと、  前記第１のエンコーダ制御情報に従って、前記第１のエンコーダ制御情報が特定したように、前記受信されたコンテンツのセグメントの第１の部分を、異なるビットレートデータストリームの前記第１の数に符号化することと、  異なるビットレートデータストリームの第２の数において受信されたコンテンツのセグメントの第２の部分を符号化するように前記それぞれのエンコーダを構成することを示す、第２のエンコーダ制御情報を受信することと、  前記第２のエンコーダ制御情報に従って、前記第２のエンコーダ制御情報が特定したように、受信されたコンテンツのセグメントの第２の部分を、異なるビットレートデータストリームの前記第２の数に符号化することを含む、請求項２８または２９に記載のコンピュータシステム。
【請求項４０】
前記コンテンツのセグメントを、可変数の異なるビットレートデータストリームに符号化することが、  前記エンコーダ制御情報によって特定された通りに、前記入力されたデータストリームから取得された前記コンテンツの第１のセグメントを、異なる品質レベルの第１の数に符号化することと、  前記エンコーダ制御情報によって特定された通りに、前記入力されたデータストリームから取得された前記コンテンツの第２のセグメントを、異なる品質レベルの第２の数に符号化することを含み、異なる品質レベルの前記第２の数が、異なる品質レベルの前記第１の数とは異なる、請求項２８または２９に記載のコンピュータシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
従来のアダプティブビットレート（ＡＢＲ）技術は、デコーダデバイスにオーディオおよび／またはビデオストリームを送信するのに使用できる。単純な例として、ネットワーク環境は、サーバ、通信リンクおよびクライアントを含むことができる。クライアントは、デコーダを含むことができる。動作中、その名称が示す通り、デコーダは、サーバから受信された符号化されたデータストリームをデコード（復号）し、再生デバイスで各コンテンツの再生を開始する。
【０００２】
アダプティブビットレート技術によれば、デコーダにデータを転送するビットレートは、利用可能なネットワーク帯域幅または他のリソースの障害に応じて（例えば数秒毎に）適合する。一例として、データストリームを（クライアント側の）デコーダに転送する通信リンクは、輻輳（コンジェスション）という状態におかれることがある。このような例では、ネットワークを介してデータを伝達するための帯域幅は、著しく低下するであろう。
【０００３】
帯域幅の利用可能性の減少などの状態を検出することに応答して、サーバは、クライアントから、送信されたコンテンツを再生する加入者に各リンクで送信されるデータの品質レベルまたはビットレートをアダプティブに（適応的に）変化させるように通知され得る。言い換えると、クライアントは、ネットワークの輻輳を検出することに応答して、より低いビットレートまたは品質レベルで符号化されたデータを要求できる。
【０００４】
輻輳の間に低いビットレートまたは品質レベルでサーバから符号化されたデータを送信すると、デコーダに送信されるパケットを低下させるのとは対照的に、輻輳が検出されたときの再生品質のレベルが例え低くても、加入者は、中断なくコンテンツを再生し続けることができる。メディアプレーヤは、場合によっては低い品質レベルでコンテンツを再生しなければならないが、加入者は中断のないストリーミングコンテンツの再生を所望するのが通常であるので、アダプティブビットレート技術は有用である。
【０００５】
アダプティブビットレート型のアプリケーションのために異なるビットレートで符号化されたコンテンツを生成する従来のエンコーダアプリケーションによれば、各エンコーダは、通常、単一のフィードまたはデータチャンネルを受信するように構成される。このフィードは、スケジュールされたタイムスロットにおいて利用可能にされ得る線形プログラムを提供できる。従来の符号化によれば、エンコーダは、フィード上で受信された様々なタイプのコンテンツの全てを同一のビットレートで符号化する。
【発明の開示】
【０００６】
本明細書における実施形態は、従来技術とは逸するものである。例えば、本明細書における一実施形態は、異なるそれぞれのビットレートで生成された符号化されたデータストリームの数を変化させることを対象にする。本明細書に述べるように、異なるビットレートデータストリームの数は、１つまたは複数のパラメータによって変化できる。
【０００７】
より具体的には、一実施形態によれば、エンコーダリソースは、入力されたデータストリームからコンテンツのセグメントを受信する。コンテンツの各セグメントにより、ストリーミングコンテンツの各部分の再生が可能となる。処理リソースは、コンテンツのセグメントを符号化する複数の異なるビットレートデータストリームを指定するエンコーダ制御情報（例えば、ルールまたはガイドライン）を生成する。エンコーダリソースは、このエンコーダ制御情報を受信する。このエンコーダ制御情報によって指定されたように、エンコーダリソースは、例えば、ケーブルネットワーク環境において加入者に利用可能な変化する数の異なるビットレートデータストリームに、コンテンツのセグメントを適応的に符号化する。
【０００８】
本明細書に述べるように、複数のパラメータはいずれも、生成された異なるビットレートデータストリームの数を調整する基準として使用できる。一例として、エンコーダリソースによって受信されたコンテンツは、１つまたは複数の異なるタイプのプログラムを含むことができる。一実施形態では、受信されたプログラムのタイプ（例えば、ニュース番組、スポーツイベント、アクション映画等）に従って、エンコーダリソースは、異なる数の利用可能な品質レベルまたはビットレートデータストリームを生成する。別の実施形態では、エンコーダリソースは、データストリームの数をプログラムごとに変化させるのとは対照的に、生成されたデータストリームの数をプログラム内で調整する。
【０００９】
一実施形態では、エンコーダリソースが、データフィード上でニュース番組などの第１のプログラムを受信すると仮定する。このニュース番組は、１つのシーンから別のシーンへの変化がほとんどないので、比較的少ないデータビットを含むことができる。このような例では、低いビットレートデータストリームが、画像、音声等を再生するのに十分であるので、最高の品質レベルのデータストリームを生成する必要はない。特にニュース番組用に生成された、受信されたエンコーダ制御情報に基づいて、エンコーダリソースは、閾値レベルを下回るより低いビットレートデータストリームとしてこのニュース番組を符号化する。
【００１０】
エンコーダリソースは、フィード上でアクション映画などの第２のプログラムを受信できる。アクション映画は、多くの目まぐるしく変化するシーンを含むので、ニュース番組よりもかなり多くのデータビット（例えば、表示スクリーンのピクセル設定の規定）を必要とするであろう。この後者の例において、アクション映画には、低いビットレートデータストリームが、十分に高い品質レベルでアクションシーンによってキャプチャされた対応する画像や音声等を再生するには不十分であるので、最高レベルのビットレートデータストリームを生成する必要がある。特にアクション映画用に生成された、受信されたエンコーダ制御情報に基づいて、エンコーダリソースは、より高いビットレートデータストリームを含むようにアクション映画を符号化する。
【００１１】
本明細書に述べるように、受信されたコンテンツを符号化する１つまたは複数の異なるビットレートを示すエンコーダ制御情報は、任意の適切な方法で受信され得る。例えば、エンコード制御情報は、受信されたストリーミングコンテンツに含まれるメタデータ（例えば、帯域内信号）としてのエンコーダ制御情報で受信され得る。１つの可能な代替案として、エンコーダ制御情報は、受信されたストリーミングコンテンツに対して帯域外の信号において受信されてもよい。別の代替案として、エンコーダリソースが、受信されたコンテンツを分析して、エンコーダ制御情報を局所的に発生させてもよい。
【００１２】
別の実施形態によれば、エンコーダリソースは、コンテンツのオリジナルのセグメントを受信する。コンテンツのオリジナルのセグメントのそれぞれは、再生にあたり各オリジナルのセグメントの描出／描写（rendition）をどのように再現するかを指定するデータビット情報を含む。エンコーダリソースまたは他の適切なリソースは、コンテンツのオリジナルのセグメントを分析する。例えば、エンコーダリソースは、コンテンツの各個別のオリジナルのセグメントに関連する複雑さの程度（大きさ, magnitude）を分析する。個別のオリジナルのセグメントのそれぞれまたはセグメントのグループの複雑さの程度に少なくとも部分的に基づいて、エンコーダリソースは、コンテンツのオリジナルのセグメントが符号化される異なるビットレートデータストリームの数を動的に調整する。
【００１３】
符号化される分析されたコンテンツの複雑さは、任意の適切の方法で測定できる。一実施形態では、複雑さの程度は、同一フレーム内のピクセル設定の変動、複数のフレームにまたがる同一ピクセル間の設定変動、画像シーケンスにおける動きの量、画像シーケンス間のピクセル設定の変化等などのパラメータに基づいて変化する。シーケンスにおけるより複雑な画像は、個別の複雑さがより高く、品質レベルを維持するために多くのデータビットを要求するものと分類される。シーケンスにおいて複雑さの少ない画像は、複雑さが低いものと分類され、かつ、品質レベルを維持するために少ないデータビットを要求する。
【００１４】
一例として、ニュース番組タイプの大部分のセグメントは、平均して、前述のように比較的少ないデータビットを含む。エンコーダリソースは、低レベルの品質と中間レベルの品質の間で指定された範囲における複数の異なるビットレートデータストリームにこれらのセグメントを符号化するように構成できる。場合によっては、しかしながら、ニュース番組は、対応するアクション画像を描出するために実質的に多くの量のデータビット情報を含む、より高い複雑さのアクションシーンを含むことがある。例えば、話をしているアナウンサーの表示を含むことに代わって、ニュース番組は火炎爆発の表示に変化することがあり、これは、画像をキャプチャするためにデータの多くのデータビットを必要とする。このような例では、多くの量のデータビット情報および／または高い複雑さを説明するために、かつ、高い品質レベルで動作シーンの再生を提供するために、エンコーダリソースはデータストリームの量を調整し、このデータストリームへ、高品質レベルの再生を可能にする高ビットレートデータストリームを含むようにセグメントが符号化される。例えば、受信されたコンテンツが、再び変化のない背景を背にして会話する人などの複雑さの低い画像を再びキャプチャする場合など、セグメント毎のデータビット情報の大きさが再び減少される場合には、適切なレベルの画像品質が低いアダプティブビットレートで提供できるので、エンコーダリソースは、１つまたは複数の高い品質レベルのデータストリームを生成するのを中断するように構成され得る。
【００１５】
別の例として、アクション映画などのアクションタイプのコンテンツ（より複雑なコンテンツ）の大部分のセグメントは、平均して、より多くの数のデータビットを含むことができる。エンコーダリソースは、利用可能な低レベルの品質と高レベルの品質の間の範囲における複数の異なるビットレートデータストリームにこれらのセグメントを一般に符号化するように構成できる。場合によっては、しかしながら、アクションタイプのコンテンツは、対応するアクションの少ない画像を描出するために実質的に少ない量のデータビット情報を含む、複雑さの低いアクションシーンを含むことがある。このような例では、複雑さの低い画像（例えば、シーンが素早く変化しないことなどによる）を説明するために、かつ、適度に高い品質レベルでアクションの少ないシーンの再生を提供するように、エンコーダリソースは、より少ない高ビットレートデータストリームを含むようにデータストリームの量を調整する。なぜなら、高いビットレートデータストリームが複雑さの低い画像には必要でないためである。セグメント毎の複雑さの大きさが再び増加すると、エンコーダリソースは、利用可能な最低レベルの品質と最高レベルの品質の間の範囲でのアクションタイプのコンテンツの生成に戻る。
【００１６】
上記およびその他のより具体的な実施形態を下記でより詳細に開示する。
【００１７】
本明細書で述べるリソースはいずれも、本明細書で開示する方法の動作のうちのいくつかまたは全てを実行および／またはサポートするように、１つもしくは複数のコンピュータ化されたデバイス、サーバ、基地局、無線通信装置、通信管理システム、ワークステーション、ハンドヘルド型もしくはラップトップ型コンピュータ等を含むことができる。すなわち、１つまたは複数のコンピュータ化されたデバイスまたはプロセッサは、本発明の様々な実施形態を実行するために、本明細書で説明されるように動作するようにプログラムおよび／または構成できる。
【００１８】
本明細書におけるさらに別の実施形態は、上記で概説され、以下で詳細に開示されるステップおよび動作を実行するためのソフトウェアプログラムを含む。このような１つの実施形態は、ソフトウェア命令が後続の実行のために符号化される持続性のコンピュータ可読の記憶媒体（すなわち、あらゆるコンピュータ可読のハードウェア記憶媒体）を含むコンピュータプログラム製品を含む。この命令は、プロセッサを有するコンピュータ化されたデバイスにおいて実行される場合は、本明細書で開示する動作を実行するようにプロセッサをプログラムし、および／またはプロセッサにそれを実行させる。このような構成は、光媒体（例えば、ＣＤ‐ＲＯＭ）、フロッピーディスク、ハードディスク、メモリスティック等などの持続性のコンピュータ可読の記憶媒体で、または、１つまたは複数のＲＯＭ、ＲＡＭ、ＰＲＯＭ等におけるファームウェアまたはショートコードなどのその他の媒体で、または特定用途向け集積回路（ＡＳＩＣ）等などで構成または符号化される、ソフトウェア、コード、命令、および／または、その他のデータとして提供されるのが通常である。ソフトウェアまたはファームウェアまたはその他のこのような構成は、コンピュータ化されたデバイスにインストールされて、このコンピュータ化されたデバイスに本明細書で説明する技法を実行させることができる。
【００１９】
従って、本明細書における実施形態は、本明細書で検討される動作をサポートする方法、システム、コンピュータプログラム製品等を対象とする。
【００２０】
一実施形態は、サーバからの、１つまたは複数の異なる品質レベルに従ってコンテンツの配信を促進させるためにそこに記憶される命令を有する、コンピュータ可読の記憶媒体および／またはシステムを含む。命令は、個々のコンピュータデバイスのプロセッサによって実行される場合には、システムのプロセッサまたは複数のプロセッサに、入力されたデータストリームからコンテンツのセグメントを受信させ、コンテンツのこのセグメントを符号化する複数の異なるビットレートデータストリームを指定するエンコーダ制御情報を受信させ、かつ、このエンコーダ制御情報により指定された通りに、ケーブルネットワーク環境において加入者が利用可能な、異なる数（可変数）のビットレートデータストリームにコンテンツのセグメントを適応的に符号化させる。
【００２１】
さらに別の実施形態は、サーバからの１つまたは複数の異なる品質レベルに従ったコンテンツの配信を促進させるためにそこに記憶される命令を有する、コンピュータ可読の記憶媒体および／またはシステムを含む。命令は、それぞれのコンピュータデバイスのプロセッサによって実行される場合には、システムのプロセッサまたは複数のプロセッサに、コンテンツのオリジナルのセグメントを受信させ、コンテンツの各個別のオリジナルのセグメントに含まれる、再生にあたり個別のオリジナルのセグメントの描出をどのように再生成するかを指定するデータビット情報の大きさを分析させ、かつ、個別のオリジナルのセグメントの各々におけるデータビット情報の大きさに少なくとも部分的に基づいてコンテンツのオリジナルのセグメントが符号化される異なるビットレートデータストリームの数を動的に調整させる。
【００２２】
上記のステップの順序は、明確にする目的で設けられている。本明細書で述べる処理ステップはいずれも、任意の適切な順序で実行できることに留意されたい。
【００２３】
本開示の他の実施形態は、上記で概説され、下記で詳細に開示される方法の実施形態のステップおよび動作のいずれかを実施するように、ソフトウェアプログラムおよび／またはそれぞれのハードウェアを含む。
【００２４】
本明細書で述べるシステム、方法、装置、コンピュータ可読の記憶媒体上の命令等が、ソフトウェアプログラム、ファームウェアとして、ソフトウェア、ハードウェアおよび／またはファームウェアの混成物として、プロセッサ内、オペレーティングシステム内、ソフトエアアプリケーション内などのハードウェア単体として、厳密に具体化できることを理解すべきである。
【００２５】
本明細書に述べるように、本明細書における技法は、ネットワーク環境において、異なる品質レベルのアダプティブビットレートで符号化されたコンテンツを可変符号化しかつこれを配信する分野において使用するのに適している。しかしながら、本明細書における実施形態が、このような用途における使用に限定されるのではなく、本明細書で述べる技法がその他の用途にも同様に適していることに留意すべきである。
【００２６】
さらに、本明細書における様々な特徴、技法、構成等が、本開示の様々な箇所で述べられるが、適切な場合には、概念の各々が、互いに無関係に、または互いに関連して選択的に実行できることに留意されたい。従って、本明細書に記載される１つまたは複数の本発明は、多くの様々な方法で具体化され、かつ検討され得る。
【００２７】
また、本明細書における実施形態のこの予備的な記述は、本発明または請求される発明のあらゆる実施形態および／または漸進的な新規性の態様を特定するものではないことに留意すべきである。そうではなく、この簡潔な記載は、大まかな実施形態と、従来技術に対する新規性の対応する点とを提示するのみである。本発明の付加的な詳細および／または実行可能な観点（置換）のために、読者は、さらに以下で説明する本発明の詳細な説明の部分および対応する図面に導かれる。
【図面の簡単な説明】
【００２８】
【図１】本明細書における実施形態による、異なる品質レベルでのコンテンツの可変符号化および配信を促進するネットワーク環境を示す例示的な図である。
【図２】本明細書における実施形態による、コンテンツスケジュール情報を示す例示的な図である。
【図３】本明細書における実施形態による、複数の異なるビットレート、品質レベル等でのコンテンツの符号化を示す例示的な図である。
【図４】本明細書における実施形態による、複数の異なるビットレートでのコンテンツの符号化を示す例示的な図である。
【図５】本明細書における実施形態による、複数のネットワークアドレスを表示するコンテンツアクセス情報を示す例示手な図であり、当該ネットワークアドレスから、異なるビットレートで符号化されるコンテンツのセグメントが取得される。
【図６】本明細書における実施形態による、エンコーダリソースを制御するためのトランスポートストリームにおけるエンコーダ制御情報などのメタデータの包含を示す例示的な図である。
【図７】本明細書における実施形態による、複数のフィード上でコンテンツの複数のストリームを取得するように構成されたエンコーダリソースと、ビットレートの符号化の修正形態とを記す例示的な図である。
【図８】本明細書における実施形態による、コンテンツのセグメントを符号化するビットレートを変化させるためのコンテンツの分析を示す例示的な図である。
【図９】本明細書における実施形態による、可変数のビットレートで符号化されたデータストリームへの、コンテンツのセグメントの適応的な符号化を示す例示的な図である。
【図１０】本明細書における実施形態による、可変数のデータストリームへの、コンテンツのセグメントの適応的な符号化を示す例示的な図である。
【図１１】本明細書における実施形態による、可変数のデータストリームへの、コンテンツのセグメントの適応的な符号化を示す例示的な図である。
【図１２】本明細書における実施形態による、異なるビットレートでコンテンツを配信するネットワーク環境を示す例示的な図である。
【図１３】本明細書における実施形態による、異なる品質レベルで符号化されたコンテンツのセグメントの選択、インターリーブ、およびデリバリを示す例示的な図である。
【図１４】本明細書における実施形態による、プロセッサおよび符号化されるハードウェア記憶媒体を含む例示的なハードウェアアーキテクチャを示す図である。
【図１５】本明細書における実施形態による例示的な方法を示すフローチャートである。
【図１６】本明細書における実施形態による例示的な方法を示すフローチャートである。
【００２９】
本発明の、前述およびその他の目的、特徴および利点が、添付の図面に示すように、本明細書における好ましい実施形態に関する下記のより詳細な説明から明らかとなろう。図面では、同様の参照番号は、異なる図面を通して同一の部分に言及する。図面は必ずしも等倍でなく、実施形態、原則、概念等を示すことが強調されている。
【発明を実施するための形態】
【００３０】
前述のように、一実施形態によれば、エンコーダリソースは、入力されたデータストリームからコンテンツのセグメントを受信する。エンコーダリソースは、また、コンテンツのセグメントを符号化する複数の異なるビットレートデータストリームを指定するエンコーダ制御情報を受信および／または生成する。エンコーダ制御情報によって指定された通りに、エンコーダリソースは、ネットワーク環境における加入者への配信のために（例えば、ブロードキャスト、ユニキャスト、マルチキャスト等を介する）、異なるビットレートまたは品質レベルでコンテンツのセグメントを適応的に符号化する。
【００３１】
より具体的には、図１は、本明細書における実施形態に従った、異なる品質レベルでコンテンツの符号化および配信を促進するネットワーク環境を示す例示的な図である。
【００３２】
図示するように、ネットワーク環境１００は、エンコーダリソース１４０を含む。エンコーダリソース１４０は、データフィード（供給）１０５‐１上で、コンテンツＡ、コンテンツＢ、コンテンツＣ等などのストリーミングコンテンツを受け取る。コンテンツ１１０（コンテンツＡ、コンテンツＢ、コンテンツＣなど）は、同じプログラムまたは異なるプログラムの一部を表すことができる。
【００３３】
データフィード１０５‐１（または入力されたデータストリーム）は、コンテンツを受信するための、ファイバ、同軸ケーブル、ツイステッドペア等などの適切なタイプの媒体または通信リンクであることができる。データフィード１０５‐１で受信されたコンテンツ１１０は、ビデオデータ、音声データ等などの適切なタイプの情報であることができ、および／またはこれを含むことができる。
【００３４】
データフィード１０５‐１上で受信されたコンテンツ１１０は、適切な形態で受信され得る。例えば、本明細書において後述するように、受信されたコンテンツはセグメントに分割され得る。セグメントの各々は、それぞれのストリーミングコンテンツの特定の部分の再生を可能にする。一例として、受信されたコンテンツは、ビデオデータであり得る。コンテンツの各セグメントは、ビデオのそれぞれの部分の再生を可能にする。
【００３５】
エンコーダリソース１４０は、適切な方法でコンテンツ１１０を受信できる。例えば、コンテンツ１１０のセグメントは、相互間でインターリーブされ得る。別の実施形態では、データフィード１０５‐１は、シリアル方式で最初から最後まで（論理的な再生順序で、またはその順序から外れて）コンテンツＡのセグメントを伝送し、その後、シリアル方式で最初から最後まで（論理的な再生順序で、またはその順序から外れて）データフィード１０５‐１上でコンテンツＢの伝送が続く。
【００３６】
この例示的な実施形態では、エンコーダリソース１４０は、コントローラリソース１５０などの適切なタイプのリソースから、エンコーダ制御情報１２８を受信すると想定される。コントローラリソース１５０は、ネットワーク環境１００において適切な位置に配置できる。一実施形態では、コントローラリソース１５０は、エンコーダリソース１４０に対してネットワークを介して遠く離れて配置され得る。
【００３７】
非限定的な例として、エンコーダリソース１４０は、コンテンツ１１０が受信されるデータフィード１０５‐１に関して帯域外の信号でエンコーダ制御情報１２８を受信できる。すなわち、一実施形態では、エンコーダ制御情報１２８は、コンテンツ１１０が受信される物理的な通信リンク（例えば、データフィード１０５‐１）とは物理的に異なる通信リンクで受信され得る。
【００３８】
一実施形態では、コントローラリソース１５０は、コンテンツスケジュール情報１２５およびマップ１８０などの入力に基づき、エンコーダ制御情報１２８を生成する。その名称が示唆するように、コンテンツスケジュール情報１２５は、データフィード１０５上で受信されたコンテンツについての情報を含むことができる。例えば、コンテンツスケジュール情報１２５は、種々のコンテンツがいつ受信されるか、および／またはいつ視聴可能にされるかといったことや符号化されるコンテンツの分類等を示すことができる。
【００３９】
マップ１８０は、符号化されるそれぞれのタイプのコンテンツための、１つまたは複数の予め決められた品質レベル（すなわち、ビットレート）を示す。
【００４０】
１つの非限定的な例示的な実施形態では、コントローラリソース１５０は、対応するコンテンツ１１０を符号化する異なる品質レベルまたはビットレートを判定する基準として、マップ１８０を利用する。（実施形態のより詳細な説明については、図２の検討を参照されたい。）
【００４１】
エンコーダ制御情報１２８に従って、エンコーダリソース１４０はデータストリーム１２０を生成する。前述のように、エンコーダ制御情報１２８は、コンテンツ１１０のセグメントをエンコードする複数の異なるビットレートデータストリームを指定する。例えば、エンコーダ制御情報１２８は、（可変または一定の）ビットレートの第１のセットに従ってコンテンツＡを符号化することを示すことができ、エンコーダ制御情報１２８は、（可変または一定の）ビットレートの第２のセットに従ってコンテンツＢを符号化することを示すことができ、エンコーダ制御情報１２８は、（可変または一定の）ビットレートの第３のセットに従ってコンテンツＣを符号化することを示すことができる、といった具合である。
【００４２】
エンコーダ制御情報によって指定された通りに、エンコーダリソース１４０は、コンテンツ１１０のセグメントを、可変数の異なるビットレートデータストリーム１２０に適応的に符号化する。
【００４３】
１つの非限定的な例示的な実施形態によれば、符号化に続いて、サーバリソース１４５が、種々のビットレートデータストリーム１２０を、ネットワーク１９０を介して加入者に選択的に配信する（例えば、ユニキャスト、ブロードキャスト、マルチキャスト等）。
【００４４】
非限定的な例として、ネットワーク１９０は、ＩＰＴＶ（インターネットプロトコルテレビジョン）プロトコルに従って１人または複数の加入者がデータストリーム１２０を要求および取得するケーブルネットワーク環境であり得る。
【００４５】
データストリーム１２０を生成することに加えて、エンコーダリソース１４０またはその他の適切なリソースは、コンテンツアクセス情報１２２を生成する。その名称が示唆するように、一実施形態では、コンテンツアクセス情報１２２は、種々のデータストリーム１２０（すなわち、１つまたは複数の異なるビットレートに従って符号化されたコンテンツのセグメント）の利用可能性、種々のデータストリーム１２０の属性、データストリーム１２０が取得される１つまたは複数のネットワークアドレスの位置等などの情報を示す。
【００４６】
図２は、本明細書における実施形態による、コンテンツスケジュール情報と、コンテンツを符号化する種々のビットレートとを示す例示的な図である。
【００４７】
この非限定的な例では、コンテンツスケジュール情報１２５は、データフィード１０５‐１上で受信される種々のタイプのコンテンツを示す。図示するように、コンテンツスケジュール情報１２５は、種々のタイプのコンテンツがデータフィード１０５‐１上でいつ受信されるかを示すタイミング情報を含むことができる。受信されたコンテンツの部分は、データが属するそれぞれのコンテンツストリームを示すユニークな識別子情報を含むことができる。
【００４８】
この例では、コンテンツスケジュール情報１２５によって指定されるように、コンテンツＡは、おおよそ午後１時と午後２時の間の第１のタイムスロットでの受領を予定され、コンテンツＢは、おおよそ午後２時と午後４時の間の第２のタイムスロットでの受領を予定され、コンテンツＣは、おおよそ午後４時と午後５時の間の第３のタイムスロットでの受領を予定される、といった具合である。 
【００４９】
この例示的な実施形態において、コンテンツＡは、コンテンツの第１のプログラムを表し、コンテンツＢは、コンテンツの第２のプログラムを表し、コンテンツＣは、コンテンツの第３のプログラムを表すと仮定される。
【００５０】
種々のコンテンツ１１０（例えば、コンテンツＡ、コンテンツＢ、Ｃ等）は、無関係であり得る。例えば、図示するように、コンテンツＡは、ニュース番組のビデオであることができ、コンテンツＢはスポーツイベントのビデオであることができ、コンテンツＣは、アクション映画のビデオであることができる。それゆえ、種々のデータストリーム１２０に符号化される種々のコンテンツは、対応するジャンルによって分類され得る。
【００５１】
前述のように、マップ１８０は、異なるタイプのコンテンツを符号化する異なるビットレートを示す。可能なビットレートの範囲は、最高レベルの品質から最低レベルの品質まで、ビットレートＢＲ１（例えば、最高レベルの品質で符号化するビットレート）、ビットレートＢＲ２、ビットレートＢＲ３、ビットレートＢＲ４、ビットレートＢＲ５、ビットレートＢＲ６、ビットレートＢＲ７、ビットレートＢＲ８、ビットレートＢＲ９、およびビットレートＢＲ１０（例えば、最低レベルの品質で符号化するビットレート）を含むことができる。
【００５２】
この例では、マップ１８０は、ビットレートＢＲ４とビットレートＢＲ１０の間の範囲において、ニュース番組タイプのコンテンツのセグメント（例えば、比較的少ないビットレートで通常は符号化できる話し手の顔の映像）を符号化することを示す。午後１時と午後２時の間のタイムスロットにおけるコンテンツＡのためにエンコーダ制御情報１２８を生成する場合、コンテンツスケジュール情報１２５の分類情報が、コンテンツＡがニュース番組タイプのコンテンツであることを示すので、コントローラリソース１５０は、ビットレートＢＲ４からＢＲ１０に応じた異なるビットレートデータストリームの第１の数（例えば、計７個の異なるビットレートデータストリーム１２０）に従ってコンテンツＡの符号化を指定するように、第１のエンコーダ制御情報１２８を生成する。このエンコーダ制御情報１２８に応じて符号化する間に、エンコーダリソース１４０は、第１のエンコーダ制御情報によって指定された通りに、コンテンツＡのセグメントを７個の異なるビットレートデータストリーム（例えば、ＢＲ４、ＢＲ５、・・・ＢＲ１０）に符号化する。
【００５３】
さらに、この例示的な実施形態では、マップ１８０は、ビットレートＢＲ１とビットレートＢＲ１０の間の範囲においてスポーツイベントタイプのコンテンツ（例えば、多くのデータビットを必要とする高解像度で通常はキャプチャされるＮＦＬフットボールの試合のビデオ）を符号化することを示す。午後２時と午後４時の間のタイムスロットにおけるコンテンツＢのためにエンコーダ制御情報１２８を生成する場合、コンテンツスケジュール情報１２５における分類情報が、コンテンツＢがスポーツタイプのコンテンツであることを示すので、コントローラリソース１５０は、ビットレートＢＲ１からＢＲ１０に応じた異なるビットレートデータストリームの第２の数（例えば、計１０個の異なるビットレートデータストリーム１２０）に従ってコンテンツＢの符号化を指定するように、第２のエンコーダ制御情報１２８を生成する。このエンコーダ制御情報１２８に応じて符号化する間に、エンコーダリソース１４０は、第２のエンコーダ制御情報によって指定された通りに、コンテンツＢのセグメントを１０個の異なるビットレートデータストリーム（例えば、ＢＲ１、ＢＲ２、・・・ＢＲ１０）に符号化する。
【００５４】
この例示的な実施形態においてさらに、マップ１８０は、ビットレートＢＲ３とビットレートＢＲ１０の間の範囲においてドラマ映画タイプのコンテンツ（例えば、ドラマ映画のビデオ）を符号化することを示す。午後４時と午後５時の間のタイムスロットにおけるコンテンツＣのためにエンコーダ制御情報１２８を生成する場合、コンテンツスケジュール情報１２５の分類情報が、コンテンツＣがドラマ映画タイプのコンテンツであることを示すので、コントローラリソース１５０は、ビットレートＢＲ３〜ＢＲ１０に応じた異なるビットレートデータストリームの第３の数（例えば、計８個の異なるビットレートデータストリーム１２０）に従ってコンテンツＣの符号化を指定するように、第３のエンコーダ制御情報１２８を生成する。このエンコーダ制御情報１２８に応じて符号化する間に、エンコーダリソース１４０は、第３のエンコーダ制御情報によって指定された通りに、コンテンツＣのセグメントを８個の異なるビットレートデータストリームに符号化する。
【００５５】
それゆえ、第１のタイムスロットにおいてデータフィード１０５‐１上で受信されるコンテンツＡのセグメントなどのコンテンツ１１０の第１の部分は、ビットレートの第１の数に従って符号化されることができ、第２のタイムスロットにおいてデータフィード１０５‐１上で受信されるコンテンツＢのセグメントなどのコンテンツ１１０の第２の部分は、ビットレートの第２の数に従って符号化されることができ、第３のタイムスロットにおいてデータフィード１０５‐１上で受信されるコンテンツＣのセグメントなどのコンテンツ１１０の第３の部分は、ビットレートの第３の数に従って符号化されることができる、といった具合である。
【００５６】
非限定的な例として上述したように、データフィード１０５‐１は、異なるタイムスロットにおいて利用可能にされるコンテンツ１１０の複数のプログラム（例えば、コンテンツＡ、コンテンツＢ等）を含む線形のチャンネルであり得る。コントローラリソース１５０またはその他の適切なリソースは、複数のプログラムのスケジューリングタイム（タイムスロットなど）および／または分類タイプ（例えば、ジャンルタイプ）に基づいて、エンコーダ制御情報１２８を生成する。
【００５７】
エンコーダ制御情報１２８は、対応するビットレート情報を、受信されるコンテンツと一致させるように、適切な情報を含むことができる。例えば、エンコーダ制御情報１２８は、午後１時と午後２時の間にデータフィード１０５‐１上で受信されるコンテンツが、上述のようにビットレートＢＲ４からＢＲ１０に従って符号化されると指定でき、エンコーダ制御情報１２８は、午後２時と午後４時の間にデータフィード１０５‐１上で受信されるコンテンツが、上述のようにビットレートＢＲ１からＢＲ１０に従って符号化されると指定できる、といった具合である。
【００５８】
異なるコンテンツは、データがデータフィード１０５−１上で受信される時間よりもむしろ、タイトルによって指定されることもできる。例えば、エンコーダ制御情報１２８は、ビットレートの第１のセット（例えば、７個の異なるビットレート）に従ってデータフィード１０５‐１上で受信される第１のタイトルのコンテンツを符号化することを示すことができ、エンコーダ制御情報１２８は、ビットレートの第２のセット（例えば、１０個の異なるビットレート）に従ってデータフィード１０５‐１上で受信される第２のタイトルのコンテンツを符号化することを示すことができる、といった具合である。
【００５９】
エンコーダ制御情報により指定された通りに、エンコーダリソース１４０は、データフィード１０５‐１上で受信された、各スケジュールされたコンテンツのセグメントを符号化するビットレートの数を変化させる。
【００６０】
本明細書において後述するように、あるタイムスロットにおいて受信されたそれぞれのコンテンツを符号化するビットレートの数は、１つまたは複数の異なるタイプまたは代替的なタイプの入力に応じて変更できる。例えば、本願でさらに検討するように、エンコーダリソース１４０またはその他の適切なリソースは、ネットワーク環境において、異なるビットレートデータストリーム上でコンテンツのセグメントを伝送するための帯域幅要件を決定するために、コンテンツのセグメントを分析するように構成され得る。エンコーダリソース１４０は、このセグメントに関連する帯域幅要件に少なくとも部分的に基づいてコンテンツのセグメントが符号化される異なるビットレートデータストリームの数を動的に調整する。すなわち、受信されたコンテンツのある特定のセグメントは、コンテンツが素早く変化するシーンをキャプチャするかもしれない。このような例の場合、コンテンツのセグメントは、１つまたはそれ以上のより高い品質レベルまたはビットレートで新たに加えられる符号化されたデータとすることができる。
【００６１】
図３は、本願における実施形態による、複数の異なるビットレートでのコンテンツの符号化を示す例示的な図である。
【００６２】
図示するように、データフィード１０５‐１上で受信されるコンテンツＡは、論理セグメント＃１、セグメント＃２・・・に分割され、データフィード１０５‐１上で受信されるコンテンツＢは、論理セグメント＃１、セグメント＃２・・・に分割される、といった具合である。各セグメントは、同じ量または異なる量の再生時間を表す情報を含むように符号化され得る。
【００６３】
エンコーダリソース１４０によって生成される符号化されたデータのグループは、式Ａｘｙで表され、ここでは、ｘ＝符号化のビットレートであり、またｙ＝符号化されたコンテンツのセグメントの番号である。
【００６４】
異なるビットレートでのコンテンツのセグメントの符号化は、異なる品質レベルでの再生を提供する。例えば、データＡ４１、Ａ４２等のグループは、データＡ５１、Ａ５２等のグループを含む次の低ビットレートよりも多くの符号化されたデータを含む。それゆえ、ビットレートＢＲ４でのコンテンツの符号化されたセグメントは、ビットレートＢＲ５よりも高い品質レベルの再生を可能にし、ビットレートＢＲ５でのコンテンツの符号化されたセグメントは、ビットレートＢＲ６よりも高い品質レベルの再生を可能にする、といった具合である。
【００６５】
午後１時と午後２時の間のタイムスロットにおけるコンテンツＡのために生成されるエンコーダ制御情報１２８に従って、エンコーダリソース１４０は、（ビットレートＢＲ４での）データＡ４１のグループ、（ビットレートＢＲ５での）データＡ５１のグループ、（ビットレートＢＲ６での）データＡ６１のグループ等として、コンテンツＡのセグメント＃１を符号化する。エンコーダリソース１４０は、（ビットレートＢＲ４での）データＡ４２のグループ、（ビットレートＢＲ５での）データＡ５２のグループ、（ビットレートＢＲ６での）データＡ６２のグループ等として、コンテンツＡのセグメント＃２を符号化する、といった具合である。
【００６６】
午後２時と午後４時の間のタイムスロットにおけるコンテンツＢのために生成されたエンコーダ制御情報１２８に従って、エンコーダリソース１４０は、より高い品質レベルでコンテンツＢを符号化する。例えば、エンコーダリソース１４０は、（ビットレートＢＲ１での）データＢ１１のグループ、（ビットレートＢＲ２での）デーＢ２１のグループ、（ビットレートＢＲ３での）データＢ３１のグループ、（ビットレートＢＲ４での）データＢ４１のグループ、（ビットレートＢＲ５での）デーＢ５１のグループ、（ビットレートＢＲ６での）データＢ６１のグループ等として、コンテンツＢのセグメント＃１を符号化する。エンコーダリソース１４０は、（ビットレートＢＲ１での）データＢ１２のグループ、（ビットレートＢＲ２での）デーＢ２２のグループ、（ビットレートＢＲ３での）データＢ３２のグループ、（ビットレートＢＲ４での）データＢ４２のグループ、（ビットレートＢＲ５での）デーＢ５２のグループ、（ビットレートＢＲ６での）データＢ６２のグループ等として、コンテンツＢのセグメント＃２を符号化する。
【００６７】
コンテンツの、より高いビットレートで符号化されたセグメントは、クライアントのために途切れることなく（例えば、利用可能なシーケンスにおいて次のデータを待機する必要なく）コンテンツを受信および再生するために、より高い帯域幅のトランスポートストリームを必要とする。
【００６８】
図４は、本明細書における実施形態による複数の異なるビットレートでのコンテンツの符号化を示す例示的な図である。
【００６９】
図示するように、図４は、午後２時と午後４時の間のタイムスロットにおけるコンテンツＢの符号化と、午後４時と午後５時の間のタイムスロットにおけるコンテンツＣの符号化との間の移行を示す。
【００７０】
コンテンツＢの符号化は、図３において検討された。図４を参照すると、午後４時と午後５時の間のタイムスロットにおけるコンテンツＣのために生成されたエンコーダ制御情報１２８に従って、エンコーダリソース１４０は、より低い品質レベルでコンテンツＣを符号化する。例えば、エンコーダリソース１４０は、（ビットレートＢＲ３での）データＣ３１のグループ、（ビットレートＢＲ４での）データＣ４１のグループ、（ビットレートＢＲ５での）データＣ５１のグループ、（ビットレートＢＲ６での）データＣ６１のグループ等として、コンテンツＣのセグメント＃１を符号化し、エンコーダリソース１４０は、（ビットレートＢＲ３での）データＣ３２のグループ、（ビットレートＢＲ４での）データＣ４２のグループ、（ビットレートＢＲ５での）データＣ５２のグループ、（ビットレートＢＲ６での）データＣ６２のグループ等として、コンテンツＣのセグメント＃２をエンコードする、といった具合である。
【００７１】
図５は、仕様情報と複数のネットワークアドレスとを含む、コンテンツアクセス情報を示す例示的な図であり、このネットワークアドレスから、異なる品質レベル（異なるビットレート）で符号化されたコンテンツが取得される。
【００７２】
図示するように、コンテンツアクセス情報１２２‐Ａは、コンテンツＡの符号化されたセグメント（例えば、符号化されたデータＡｘｙのグループであり、上述のように、ｘ＝符号化のビットレート、ｙ＝符号化されたコンテンツのセグメントの番号である）の利用可能性を示す。コンテンツアクセス情報１２２‐Ａによると、コンテンツＡは、ビットレートＢＲ１、ＢＲ２およびＢＲ３では利用できない。というのも、コンテンツがこのような高いビットレートで符号化されていないからである。コンテンツアクセス情報１２２‐Ａは、コンテンツＡがビットレートＢＲ４、ＢＲ５、ＢＲ６、・・・ＢＲ１０で利用可能であり、かつこれらのビットレートで符号化されたことを示す。
【００７３】
さらに、取得に利用可能なデータのビットレートおよび符号化されたグループを特定することに加えて、コンテンツアクセス情報１２２‐Ａは、符号化されたコンテンツの属性（例えば、再生属性、ストリーミング属性等）と、異なるビットレートで符号化されたコンテンツをそこから取得するための１つまたは複数のネットワークアドレスとを示す。それゆえ、コンテンツアクセス情報１２２は、それぞれのセグメントが符号化される可変数のビットレートデータストリームに従うコンテンツのセグメントの利用可能性を示す。
【００７４】
上記と同様の方法で、エンコーダリソース１４０またはその他の適切なリソースは、コンテンツアクセス情報１２２を生成する。この例示的な実施形態では、コンテンツアクセス情報１２２‐Ｂは、符号化されたコンテンツＢの属性を示す。
【００７５】
本明細書に記すように、例えばコンテンツＡの異なるセグメントが符号化されるビットレートの数は、変更できる。このような例では、それぞれのコンテンツアクセス情報１２２は、可変ビットレートでのコンテンツＡの利用可能性を反映するように常に更新される。
【００７６】
図６は、本明細書における実施形態による、エンコーダリソースを制御するための伝送ストリームにおけるメタデータの取り込みを示す例示的な図である。
【００７７】
前述のように、エンコーダリソース１４０は、データフィード１０５-１についての帯域外のチャンネルにおいてエンコーダ制御情報１２８を受信できる。図６と別の実施形態において、エンコーダリソース１４０は、コンテンツの関連するストリームにおいてそれぞれのメタデータとしてエンコーダ制御情報１２８を受信できる。
【００７８】
例えば、コントローラリソース１５０は、前述のような方法で、エンコーダ制御情報１２８を生成するように構成できる。コンテンツデリバリリソース６５０は、データフィード１０５-１上で伝送されるコンテンツ６１０を受信する。コンテンツデリバリリソース６５０は、コンテンツストリームの各々において、メタデータとして、および／または、マーカ情報として、エンコーダ制御情報１２８をインターリーブする。例えば、コンテンツデリバリリソース６５０は、コンテンツＡと関連したエンコーダ制御情報をメタデータＡとして、データフィード１０５‐１上で伝送されるコンテンツデータストリームＡへ挿入し、コンテンツデリバリリソース６５０は、コンテンツＢと関連したエンコーダ制御情報をメタデータＢとして、データフィード１０５‐１上で伝送されるコンテンツデータストリームＢへ挿入する、といった具合である。エンコーダリソース１４０は、データフィード１０５‐１上で受信されたデータストリームをモニタし、メタデータに記憶されたエンコーダ制御情報１２８を取得する。
【００７９】
メタデータは、コンテンツを伝送するそれぞれのトランスポートストリームのあらゆる部分に含められることができる点に留意されたい。例えば、図示するように、コンテンツＡを伝送するトランスポートストリームは、ビットレートＢＲ４〜ＢＲ１０に従いトランスポートストリームのそれぞれのペイロード（例えば、コンテンツＡ）を符号化することを示すメタデータＡを含むことができ、コンテンツＢを伝送するトランスポートストリームは、ビットレートＢＲ１〜ＢＲ１０に従いトランスポートストリームのそれぞれのペイロード（例えば、コンテンツＢ）を符号化することを示すメタデータＢを含むことができる。
【００８０】
メタデータは、それぞれのトランスポートストリームの任意の場所で、分割され、および／または含まれ得る。１つの非限定的な例示的な実施形態において、メタデータの各受信された部分は、次に受け取られるコンテンツをどのように符号化するかを、エンコーダリソース１４０に示す。この方法で、コンテンツデリバリリソース６５０は、データフィード１０５‐１に関して帯域外のチャンネルでこのような情報を伝送する必要なく、データフィード１０５‐１上で伝送される種々のストリーミングコンテンツをどのように符号化するかを、エンコーダリソース１４０に通知できる。
【００８１】
エンコーダリソースは、データフィード１０５‐１上でコンテンツのセグメントを受信し、メタデータのためにデータフィード１０５‐１をモニタする。エンコーダリソース１４０は、１つまたは複数の異なる品質レベルで符号化されるべきコンテンツを含む入力されるトランスポートストリーム上のメタデータからエンコーダ制御情報を取得する。前述のように、エンコーダ制御方法は、コンテンツの符号化を異なるビットレートで連続的に変化させるように、それぞれのデータストリーム内で変化することができる。
【００８２】
図７は、本明細書における実施形態による、複数のフィード上のコンテンツの複数のストリームを受信するように構成されたエンコーダリソースと、エンコーダビットレートの変更とを示す例示的な図である。
【００８３】
図示するように、エンコーダリソース１４０は、符号化のために、コンテンツの任意の数の論理ストリームを受け取るように構成され得る。論理ストリームは、１つまたは複数のマルチストリームデータチャンネル、１つまたは複数のシングルストリームデータチャンネル等として受信され得る。
【００８４】
１つの非限定的な例示的な実施形態において、エンコーダリソースは、異なるビットレートデータストリームにおいてコンテンツの符号化されたセグメントを生成するように、複数の並列処理デバイスを含む。処理リソースは、経時的に発生される必要のある異なるビットレートデータストリームに応じて使用するために動的に分配され得る。
【００８５】
この例示的な実施形態において、エンコーダリソース１４０は、データフィード１０５‐１、データフィード１０５‐２、データフィード１０５‐３等を含む１つまたは複数のデータフィードの各々で受信されるコンテンツを符号化するビットレートを変化させる。エンコーダリソース１４０は、サーバリソース１４５による後続の分配のために、リポジトリ７８０‐１、７８０‐２、７８０‐３等において可変符号化されたコンテンツを記憶する。
【００８６】
一実施形態では、サーバリソース１４５‐１は、可変ビットレートで符号化されたデータストリームＸ１、Ｘ２、Ｘ３等を、ネットワーク１９０‐１を介して加入者に分配し、サーバリソース１４５‐２は、可変ビットレートで符号化されたデータストリームＹ１、Ｙ２、Ｙ３等をネットワーク１９０‐２を介して加入者へ分配し、サーバリソース１４５‐３は、可変ビットレートで符号化されたデータストリームＺ１、Ｚ２、Ｚ３等を、ネットワーク１９０‐３を介して加入者へ分配する、といった具合である。
【００８７】
前述の方法において、エンコーダリソース１４０は、対応するエンコーダ制御方法１２８に従って異なるコンテンツを符号化するように構成され得る。
【００８８】
別の例示的な実施形態においては、（コンテンツスケジュール情報１２５の代替物として、またはこれと共に）任意の適切な制御パラメータ入力が、必要に応じて、種々の受信されたコンテンツのための符号化されたビットレートデータストリームの数を適応的に変化させるための基礎として使用され得る。
【００８９】
例えば、アナライザリソース７６０は、フィードバック情報などの入力制御情報７７０を受信するように構成され得る。
【００９０】
一実施形態では、入力制御情報７７０は、コンテンツの符号化されたセグメントがケーブルネットワーク環境の加入者に分配される１つまたは複数のネットワークにおける輻輳の度合を示す。閾値を上回る、ネットワーク１９０‐１における輻輳を検出することに応答して、アナライザリソース７６０（例えば実質的にリアルタイムでのエンコーダ制御情報の生成を介して）は、エンコーダリソース１４０の設定を調整できる。生成されたエンコーダ制御情報は、コントローラリソース１５０により生成された設定に優先することができる。例えば、ネットワーク１９０‐１を介して高い品質レベルのデータストリームＸを伝送するのに利用可能な帯域幅が不十分であるという事実により、アナライザリソース７６０によって生成された制御入力に従って、エンコーダリソース１４０は、データストリームＸを符号化する際に、高い品質レベルで利用可能なビットレートデータストリームの数を減少するように構成され得る。より高いビットレートでの符号化を取り除くと、エンコーダリソース、記憶スペース、伝送コンテンツのネットワーク帯域幅等を節約できる。
【００９１】
それゆえ、一実施形態によれば、アナライザリソース７６０は、符号化されたデータストリームＸの少なくとも一部が伝送されるネットワーク１９０‐１の帯域幅を解放するべく、複数の異なるビットレートデータストリームの少なくとも１つのコンテンツＸのセグメントの符号化を取り除くように、エンコーダ制御情報を生成できる。
【００９２】
本例においてコンテンツＸのための符号化されたデータストリームの数を減らすと、エンコーダリソース１４０が解放されて、別のチャンネルのために生成されるビットレートデータストリームの数が増加する。例えば、データストリームＸにおける高い品質レベルのデータストリームを取り除くことにより、エンコーダリソース１４０は、その代わりに、解放された符号化リソースを使用して、コンテンツＺなどの別のチャンネルにおいて１つまたは複数のより高い品質レベルのデータストリームを生成できる。それゆえ、異なるビットレートで符号化すると、１つまたは複数の適切なタイプの入力制御情報に応じて負荷を分散できる。より具体的には、この方法で、エンコーダリソースは、例えばタイムスロット内などで必要に応じて、コンテンツの符号化されたセグメントを伝送するケーブルネットワーク環境で利用可能な帯域幅の量の少なくとも一部に基づいて、コンテンツのセグメントを符号化するビットレートを変化させることが可能である。
【００９３】
異なるビットレートデータストリームの生成を動的に調整するのに使用されるフィードバック情報（例えば、入力制御情報７７０）は、任意の適切なタイプの情報を含むことができる。例えば、入力制御情報７７０を介して、アナライザリソース７６０は、符号化されたデータストリームをそれぞれのリポジトリ７８０に記憶可能であることをモニタできる。それぞれのリポジトリにおけるリソースが利用できなくなるか、または容量に達する場合、アナライザリソース７６０は、１つまたは複数のビットレートデータストリームを減少させるように構成され得る。
【００９４】
特定の例においては、１つまたは複数のサーバリソース１４５は、符号化されたコンテンツをそれぞれの加入者に分配する障害となることがある。このような例では、１つまたは複数のビットレートデータストリーム（例えば、１つまたは複数の高い品質レベルのデータストリーム）を取り除いて、それぞれ要求されたコンテンツをクライアントに配信する負荷を減少させることが望ましい。
【００９５】
図８は、本明細書における実施形態による、符号化ビットレートを変化させるためのコンテンツの分析を示す例示的な図である。
【００９６】
一実施形態では、エンコーダリソース１４０は、コンテンツアナライザリソース８４０を含む。コンテンツアナライザリソース８４０は、エンコーダリソース１４０内に配置してもよく、または、ネットワークを介して遠隔に配置されたリソースに配置されてもよい。
【００９７】
前述のように、エンコーダリソース１４０は、データフィード１０５‐１上でコンテンツＡ、コンテンツＢ、コンテンツＣ等のオリジナルのセグメントを受信できる。コンテンツアナライザリソース８４０は、初めに、受信したセグメントを復号化する。その後、コンテンツアナライザリソース８４０は、コンテンツのそれぞれ個別のオリジナルのセグメントの複雑さを分析する。アクション映画のシーンなどの複雑なシーン（例えば、火炎爆発、風に揺れる細かい草の葉等）は、適度な品質レベルでこのようなイメージをキャプチャするのに、大規模のデータビットを必要とするのが通常である。各ニュース番組のイメージなどの複雑さの少ないシーン（例えば、静止した背景などを背に会話する人々）は、適度な品質レベルでそれぞれのイメージをキャプチャするのに、より少ないビットレートを必要とするのが通常である。
【００９８】
前述のように、データフィード１０５‐１で受信されたコンテンツの各セグメントにおけるデータビット情報（これはセグメントごとに異なり得る）は、再生テストで、それぞれのオリジナルのセグメントの描出をどのように再生成するかを示す。１つの非限定的な例示的な実施形態では、エンコーダリソース１４０は、コンテンツのオリジナルのセグメントが、個々のオリジナルのセグメントの各々の複雑さに少なくとも部分的に基づいて、符号化される異なるビットレートデータストリームの数を動的に調整する。
【００９９】
複雑さの高いイメージ（映像）の一例は、イメージにおける各画素が、イメージにおけるその他全ての画素と異なるカラー設定値に設定されるイメージである。このようなイメージの符号化は、損失なしには困難である。
【０１００】
最も複雑でないイメージの一例は、イメージにおける各画素が、イメージにおけるその他全ての画素と同じカラー設定値に設定されるイメージである。このようなイメージの符号化は単純である。
【０１０１】
これらの２つのサンプルの両極端の間には、多くの異なる度合の複雑さがあることに留意されたい。
【０１０２】
一般的な例を図９に表し、かつ説明する。
【０１０３】
１つの非限定的な例示的な実施形態において、エンコーダリソース１４０は、データフィード１０５‐１上でコンテンツを受け取る。コンテンツアナライザリソース８４０は、データストリームにおけるコンテンツのセグメントの各々に関連した相対的な複雑さを分析する。後続の図面において下記に述べるように、１つまたは複数のセグメントの複雑さに少なくとも部分的に基づいて、エンコーダリソース１４０は、セグメントのために生成されるアダプティブビットレートデータストリームの数を変化させる。
【０１０４】
図９は、本明細書における実施形態に従った、可変数のデータストリームへのコンテンツの適応的な符号化を示す例示的な図である。
【０１０５】
前述のように、エンコーダリソース１４０は、符号化のためにコンテンツＡを受信できる。この例において、コンテンツＡのセグメントは、テスト中のそれぞれのセグメント（またはセグメントのグループ）の複雑さに応じて、可変数の異なるビットレートデータストリームに符号化される。
【０１０６】
前述のように、一実施形態において、コンテンツアナライザリソース８４０は、各セグメントの複雑さを判定するためにコンテンツのセグメントを分析する。複雑さは、任意の適切な方法で測定され得る。例えば、コンテンツアナライザリソース８４０は、同じフレーム内のピクセル設定の変動、複数のフレームにまたがる同一のピクセルの設定の変動、一連のイメージ（映像）の動きの量、一連のイメージの間のピクセル設定の変化等などのパラメータに基づいて、セグメントの複雑さの程度を判定できる。
【０１０７】
一実施形態では、コンテンツアナライザリソース８４０は、最初に、データフィード１０５‐１上でコンテンツの受信されたセグメントを復号化する。コンテンツアナライザリソース８４０は、セグメントを特定の複雑さであると類別および／または分類する。非限定的な例として、最も複雑なセグメントは、クラスＡに割り振られ、その次に複雑なセグメントはクラスＢに割り振られ、その次に複雑なセグメントはクラスＣに割り振られ、次に複雑なセグメントはクラスＤに割り振られ、次に複雑なセグメントはクラスＥに割り振られ、次に複雑なセグメントはクラスＦに振り分けられ、最も複雑さの低いクラスに至る。
【０１０８】
以下で述べる一実施形態において、エンコーダリソース１４０は、符号化されるそれぞれのコンテンツの複雑さに応じて、異なるアダプティブビットレートでコンテンツのセグメントを符号化する。例えば、複雑さのクラスＡに分類されるようなコンテンツの非常に複雑なセグメントは、ＢＲ１とＢＲ１０の間（すなわち、最高でビットレートＢＲ１まで）のアダプティブビットレートの範囲において符号化でき、クラスＢに分類されるようなコンテンツの複雑さがより少ないセグメントは、ＢＲ２とＢＲ１０との間（すなわち、最高でビットレートＢＲ２まで）のアダプティブビットレートの範囲において符号化でき、複雑さのクラスＣに分類されるようなコンテンツのセグメントは、ＢＲ３とＢＲ１０との間（すなわち、最高でビットレートＢＲ３まで）のアダプティブビットレートの範囲において符号化でき、複雑さのクラスＤに分類されるようなコンテンツのセグメントは、ＢＲ４とＢＲ１０との間（すなわち、最高でビットレートＢＲ４まで）のアダプティブビットレートの範囲において符号化でき、複雑さのクラスＥに分類されるようなコンテンツのセグメントは、ＢＲ５とＢＲ１０との間（すなわち、最高でビットレートＢＲ５まで）のアダプティブビットレートの範囲において符号化できる、といった具合である。
【０１０９】
わかり易くするために、セグメント＃１、＃２・・・の各々は時間間隔が１秒または数秒であると仮定する。この例示的な実施形態では、それぞれの分析に基づいて、コンテンツアナライザリソース８４０は、オリジナルのコンテンツのセグメント＃１を複雑さのクラスＣに割り振ると想定され、コンテンツアナライザ８４０は、セグメント＃２を複雑さのクラスＤに割り振ると想定され、コンテンツアナライザ８４０は、オリジナルのコンテンツのセグメント＃７を複雑さのクラスＣに割り振ると想定され、コンテンツアナライザ８４０は、オリジナルのコンテンツのセグメント＃８を複雑さのクラスＢに割り振ると想定される、といった具合である。
【０１１０】
この例示的な実施形態においては、コンテンツＡのセグメント＃１の複雑さが、より高いビットレートＢＲ１およびＢＲ２での符号化を満たしていないので、エンコーダリソース１４０は、対応する指定されたビットレートＢＲ３〜ＢＲ１０（例えばデータＡ３１、Ａ４１、Ａ５１、Ａ６１等のグループ等）でセグメント＃１を符号化する。すなわち、これらのより高いビットレート（ＢＲ１およびＢＲ２）でのセグメント＃１の符号化は、データＡ３１のグループよりも優れたビデオの描出を必ずしも提供しない。
【０１１１】
同様の方法で、エンコーダリソース１４０は、適切な対応するビットレートＢＲ４〜ＢＲ１０（例えば、データＡ４２、Ａ５２、Ａ６２等のグループ）でセグメント＃２を符号化する。なぜなら、コンテンツＡのセグメント＃２の複雑さにより、より高いビットレートＢＲ１、ＢＲ２およびＢＲ３でコンテンツＡのセグメント＃２を符号化する必要がほとんどないか、または全くないからである。
【０１１２】
エンコーダリソース１４０は、適切なビットレートＢＲ３〜ＢＲ１０（例えば、データＡ３７、Ａ４７、Ａ５７、Ａ６７等のグループ）でセグメント＃７（複雑さのクラスＣに割り振られる）を符号化する。なぜなら、より高いビットレートＢＲ１およびＢＲ２でコンテンツＡのセグメント＃７を符号化する必要がほとんどないか、または全くないからである。
【０１１３】
エンコーダリソース１４０は、適切なビットレートＢＲ２〜ＢＲ１０（例えば、データＡ２８、Ａ３８、Ａ４８、Ａ５８、Ａ６８等のグループ）でセグメント＃８（複雑さのクラスＢに割り振られる）を符号化する。なぜなら、最高のビットレートＢＲ１でコンテンツＡのセグメント＃８を符号化する必要がほとんどないか、または全くないからである。
【０１１４】
それゆえ、本明細書における実施形態は、異なるビットレートデータストリームでコンテンツのセグメントを伝送するための帯域幅要件を決定するようにコンテンツのセグメントを分析すること、複数の異なるビットレートに従ってコンテンツのセグメントを符号化すること、および、コンテンツのセグメントが、セグメントに関連した帯域幅要件に少なくとも部分的に基づいて符号化される異なるビットレートデータストリームの数を動的に調整することを含む。すなわち、効率的な符号化のために、エンコーダリソース１４０は、符号化されるオリジナルのセグメントの帯域幅要件に応じて適切なビットレートまでセグメントを符号化する。より高いビットレートの符号化は、必要でない場合、または、それが再生の利点をほとんどもたらさないか、もしくは全くもたらさない場合には、取り除くことができる。
【０１１５】
前述のように、任意の１つまたは複数の異なるタイプの適切なリソースは、可変数のビットレートデータストリームに従ってコンテンツのセグメントの利用可能性を特定する、対応するコンテンツアクセス情報を生成するように構成され得る。
【０１１６】
図１０は、本明細書における実施形態に従った可変数のデータストリームへのコンテンツの適応的な符号化を示す例示的な図である。
【０１１７】
別の実施形態によれば、エンコーダリソース１４０は、コンテンツのセグメントが、複雑さの閾値を超えるものとして分類されない限りは、コンテンツＡのセグメントの各々を閾値１０２０（例えば、ＢＲ４、ＢＲ５、ＢＲ６等）まで符号化することを示すエンコーダ制御情報１２８を受け取ることができる。
【０１１８】
この例では、コンテンツＡのセグメントの各々は、最大で閾値１０２０のビットレートＢＲ４まで符号化される（例えば、ｃは、少なくともビットレートＢＲ４、ＢＲ５、ＢＲ６で符号化される）、受信されたセグメントの複雑さがそのようにする必要性を示さない限りは、より高いビットレートＢＲ３、ＢＲ２およびＢＲ１で必ずしも符号化されない。
【０１１９】
例えば、図示するように、セグメント＃１およびセグメント＃２は、クラスＥおよびクラスＤの複雑さであるとそれぞれ検出される。セグメント＃１およびセグメント＃２は、それゆえ、最高でビットレートＢＲ４まで符号化される。
【０１２０】
セグメント＃７は、複雑さのクラスＣに分類され、それゆえ、閾値１０２０を上回るさらなるビットレートＢＲ３で符号化される。なぜなら、コンテンツの複雑さの変化が、閾値１０２０を上回るより高いビットレートＢＲ３での符号化を保証するからである。
【０１２１】
セグメント＃８は、複雑さのクラスＢに分類され、それゆえ、閾値１０２０を上回るさらなるビットレートＢＲ３およびＢＲ２で符号化される。なぜなら、コンテンツの複雑さの変化が、閾値１０２０を上回るより高いビットレートＢＲ３での符号化を保証するからである。
【０１２２】
さらに、本明細書における実施形態は、コンテンツのセグメントを潜在的に符号化する複数の異なるビットレートデータストリームの範囲を示すエンコーダ制御情報１２８を受信することを含むことができる点に留意されたい。この範囲は、閾値１０２０に加えて、またはこれの代わりに、受信され得る。このような実施形態では、エンコーダリソース１４０は、上述の方法でオリジナルのセグメントの各々に含まれるデータビット情報（例えば、伝送帯域幅要件）の大きさに応じてエンコーダ制御情報によって特定されたように、この範囲内で変化するように異なるビットレートデータストリームの数を動的に調整する。一例として、エンコーダリソース１４０は、ビットレートＢＲ４の高さまでの閾値１０２０で、ＢＲ２〜ＢＲ１０を含む範囲において符号化されたコンテンツ（すなわち、データのグループ）を生成するように限定されるように構成され得る。コンテンツＡのセグメント＃８などのそれぞれのセグメントが複雑さの閾値を上回ると検出される場合、エンコーダリソース１４０は、ＢＲ２が許容範囲ＢＲ２〜ＢＲ１０における最大のビットレートであるので、最高でＢＲ２まで、かつＢＲ２を含んで、コンテンツのセグメントを符号化する。
【０１２３】
図１１は、本明細書における実施形態による可変数のデータストリームへのコンテンツのアダプティブな符号化を示す例示的な図である。
【０１２４】
この例では、エンコーダ制御情報１２８が、前述のようにビットレートＢＲ１からＢＲ１０に従ってコンテンツＢを符号化することを示すと仮定される。閾値１１２０は、それゆえ、最高レベルの品質に設定される。
【０１２５】
エンコーダ制御情報１２８によれば、エンコーダリソース１４０は閾値１１２０を最高レベルの品質（すなわち、ビットレートＢＲ１または６．２２ｍｂｐｓ）に設定する。コンテンツアナライザリソース８４０は、セグメントが符号化される最高のビットレートを減少させるかどうかを判定するようにセグメントを分析する。例えば、前述の方法で、コンテンツアナライザリソース８４０は、セグメント＃１が複雑さのクラスＡに分類されると検出し、コンテンツアナライザリソース８４０は、セグメント＃２が複雑さのクラスＡに分類されると検出し、コンテンツアナライザリソース８４０は、セグメント＃７が複雑さのクラスＢに分類されると検出し、コンテンツアナライザリソース８４０は、セグメント＃８が複雑さのクラスＣに分類されると検出すると想定される、といった具合である。
【０１２６】
図示するように、本明細書における実施形態は、それぞれのセグメントに関連する複雑さが、最高の１つまたは複数のビットレートでのセグメントの符号化を満たさない場合には、閾値１１２０を下回る、より少ないビットレートでコンテンツの１つまたは複数のセグメントを符号化することを含む。すなわち、この例示的な実施形態では、エンコーダリソース１４０は、ビットレートＢＲ１、ＢＲ２、ＢＲ３、ＢＲ４、ＢＲ５、ＢＲ６等でセグメント＃１を符号化し、エンコーダリソース１４０は、ビットレートＢＲ１、ＢＲ２、ＢＲ３、ＢＲ４、ＢＲ５、ＢＲ６等でセグメント＃２を符号化し、エンコーダリソース１４０は、ビットレートＢＲ２、ＢＲ３、ＢＲ４、ＢＲ５、ＢＲ６等でセグメント＃７を符号化し、エンコーダリソース１４０は、ビットレートＢＲ３、ＢＲ４、ＢＲ５、ＢＲ６等でセグメント＃７を符号化する、といった具合である。
【０１２７】
従って、本明細書における実施形態は、コンテンツの第１のセグメントを受信すること、複数のビットレートデータストリームの第１のセットに第１のセグメントを符号化すること、第１のセグメントの後続のシーケンスに論理的に配置されるコンテンツの第２のセグメントを受信すること、および、コンテンツの第２のセグメントにおけるデータビット情報の大きさが、閾値よりも小さいと判定することに応答して、第１のセットよりも少ないビットレートデータストリームを含むデータストリームの第２のセットに第２のセグメントを符号化することを含む。
【０１２８】
図１２は、本明細書における実施形態による異なるビットレートまたは異なる品質レベルでの符号化されたものの新規の生成および分配を促進するネットワーク環境の例示的な図である。
【０１２９】
図示するように、ネットワーク環境１００は、コンテンツ１１０、リポジトリ１８０、サーバリソース１４５（例えば、１つまたは複数のサーバ）、ケーブルネットワークまたは共有のケーブルネットワークなどのネットワーク１９０、および個々のユーザ（例えば、加入者）１０８が操作する通信デバイス１６０を含む。
【０１３０】
この例では、リポジトリ１８０のデータストリーム１２０は、コンテンツ１１０から派生している。コンテンツ１１０は、ビデオ情報、音声情報等などの、任意の適切なタイプの再生情報とすることができる。
【０１３１】
一般に、サーバリソース１４５は、ネットワーク１９０を介して通信デバイス１６０へ、データストリーム１２０の種々の部分の配信を開始する。一実施形態では、通信デバイス１６０は、再生装置であり、または、サーバリソース１４５から受信されるデータの種々の品質レベルに従ってコンテンツ１１０の描出を再生するように構成されるメディアプレーヤを含む。
【０１３２】
ネットワーク１９０は、サーバリソース１４５から、ネットワーク環境１００に位置する１人または複数のユーザ１０８の各々へのデータの配信をサポートする、任意の適切なタイプのリソースまたはデータ通信デバイスを含むことができる。例えば、一実施形態では、ネットワーク１９０は、ルータ、コアネットワーク、エッジサーバ、記憶リソース、スイッチ等などのリソースを含み、１つまたは複数の適切なインターネットデータトランスポートプロトコル（例えば、ＩＰプロトコル）に従って異なる品質レベルで符号化されたコンテンツの配信を促進する。
【０１３３】
非限定的な例として、ネットワーク１９０は、コンテンツデリバリネットワークとすることができ、または、これを含むことができる。
【０１３４】
一実施形態では、必要に応じて、ネットワーク１９０は、クライアントデバイス（例えば、通信デバイス１６０）に近接するそれぞれのエッジノードでデータをキャッシュするためにリソースを含む。初めに、データがサーバリソース１４５などの遠隔のソースから取得される場合には、キャッシュは空であることができる。ネットワーク１９０におけるエッジノードは、このエッジノードを介して対応する通信デバイス１６０に伝送される、特定のアダプティブビットレートセグメントをキャッシュするように構成され得る。後続要求で、およびネットワーク１９０の効率を上昇させるために、遠隔サーバ１４５からアダプティブビットレートを取得する代わりに、通信デバイス１６０は、エッジサーバから異なるビットレートでコンテンツの符号化されたセグメントを取得できる。前述のように、コンテンツが付近のエッジサーバにおいて利用可能でない場合、クライアントは、サーバリソース１４５からコンテンツのアダプティブビットレートセグメントを取得できる。
【０１３５】
通信デバイス１６０は、ユーザにメディアを再生するように構成された個々のメディアプレーヤを含む、パーソナルコンピュータ、テレビ、Ａｐｐｌｅ（商標）製品等などの任意のタイプの処理デバイスとすることができる。
【０１３６】
さらに非限定的な例として、通信デバイスは、任意の１つまたは複数の適切なＩＰプロトコルを使用して、符号化されたコンテンツの異なるセグメントの取得を要求するように構成できる。データストリーム１１５を受信する１つのアプリケーションは、ビデオオンデマンドタイプまたはＩＰＴＶタイプのアプリケーションであり、このアプリケーションにおいて、個々のユーザは、パケット交換ネットワーク上で伝送されるデータパケットの伝送をサポートする１つまたは複数の通信リンクを介してコンテンツの取得を要求する。このような例では、コンテンツの符号化されたセグメントは、１つまたは複数のデータパケットでクライアントに伝送される。各クライアントは、ＨＴＴＰ（ハイパーテキストトランスファープロトコル）要求メッセージなどの適切なプロトコルに基づいて、符号化されたコンテンツの異なるアダプティブビットレートセグメントの取得を要求する。それゆえ、通信デバイス１６０-１は、サーバリソース１４５と通信セッションを確立でき、かつ、異なるビットレートで符号化されたコンテンツを取得できる。
【０１３７】
このような例では、要求に応答して、それぞれの通信デバイスは、要求されたコンテンツを即座に再生するように、より低い品質レベルの利用可能なアダプティブビットレートコンテンツ１１０を初めに要求できる。十分なバッファリングの後、通信デバイスにおけるデコーダは、利用可能な場合には、より高い利用可能なビットレートでコンテンツのセグメントを要求できる。コンテンツの開始および初期の再生に続いて、デコーダは、利用可能なリソースに、任意の所定の時間での再生のために最高品質のコンテンツ（例えば、最高の利用可能なビットレート）を継続的に要求できる。従って、通信デバイス１６０における対応するデコーダは、コンテンツの異なるビットレートで符号化されたセグメントの選択を介してコンテンツを受信するビットレートを制御するように構成できる。
【０１３８】
前述のように、サーバリソース１４５は、ケーブルネットワーク環境における１人または複数の加入者に対応するコンテンツアクセス情報を配信するように構成できる。コンテンツアクセス情報を介して、加入者は、エンコーダリソース１４０が生成した可変数のビットレートデータストリームからコンテンツの符号化されたセグメントを選択的に取得できる。
【０１３９】
別の実施形態によれば、１人または複数のユーザ１０８は、共有のケーブルネットワークを介して利用可能なコンテンツを取得できる。一実施形態では、加入者（例えば、ユーザ１０８）はそれぞれ、ビデオの取得および視聴専用のケーブル帯域幅のＩＰ（インターネットプロトコル）の部分を介して異なる品質レベルでコンテンツ１１０のセグメントを取得するように要求できる。
【０１４０】
コンテンツのＩＰＴＶストリーミングの代案として、ケーブルネットワークにおけるケーブル帯域幅の一部は、加入者が符号化されたコンテンツを取得するように自身のそれぞれの通信デバイス（例えば、セットトップボックス）を放送チャンネルに同調させる、いわゆる線形チャンネルプログラミング専用とすることができる。ネットワーク１９０は、ケーブルネットワークとすることができ、またはこれを含むことができ、このケーブルネットワークを介して、異なる品質レベルで符号化されたコンテンツ１１０が、いわゆるサービスグループにおける複数のユーザの各々に放送される。このような実施形態では、ユーザ１０８は、自身のそれぞれの通信デバイス１６０を、利用可能なチャンネルに同調させ、かつ、選択されたコンテンツを再生するように設定できる。
【０１４１】
別の実施形態においては、ケーブルのＩＰ帯域幅の部分に対する需要が十分に高くなる場合は、ケーブルプロバイダは、ビデオオンデマンドと、より高いアダプティブビットレートで符号化されるコンテンツとに利用可能なケーブル帯域幅の量の割り当てを動的に調整できる。
【０１４２】
一般に、通信デバイス１６０は、ネットワーク１９０を介してサーバリソース１４５と通信する。前述のように、かつ、非限定的な例として、通信デバイス１６０のそれぞれは、携帯電話機、モバイル機器、パーソナルデジタルアシスタント、タッチパッドデバイス、ポータブルコンピュータ、有線電話機、ケーブルセットトップボックス、テレビ、表示スクリーン、無線電話機、無線携帯デバイス、テレビ等の、任意の適切なタイプの携帯型または非携帯型デバイスであるか、またはこれらを含むことができる。
【０１４３】
ネットワーク１９０は、通信デバイス１６０間または通信システム１００におけるその他のリソース間の通信をサポートする、任意の適切なタイプのネットワークであるか、またはこれを含むことができる。例えば、ネットワーク１９０は、電話ネットワーク、携帯電話ネットワーク、インターネット、ローカルエリアネットワーク、公衆交換電話ネットワーク、ケーブルネットワーク、ハイブリッドファイバ同軸ネットワーク等であるか、またはこれらを含むことができる。
【０１４４】
前述のように、一実施形態によれば、ネットワーク１９０を介した通信は、１つまたは複数の異なるインターネットまたはウェブベースのネットワークルーティングプロトコルに従ってパケット交換されるデータパケット（またはデータパケットのグループ分け）を含むことができる。ネットワーク１９０を介した通信は、専用リンクを介して伝送されることもできる。異なる品質レベルで符号化されたコンテンツ１１０を伝達する利用可能な帯域幅は、時間と共に変化できる。
【０１４５】
以下の本文の記載は、通信デバイス１６０‐１によってサポートされる機能を説明する。一般に、ユーザ１０８‐１は、異なる品質レベルで符号化されたコンテンツ１１０を取得するように、通信デバイス１６０‐１を操作する。
【０１４６】
前述のように、クライアント（例えば、通信デバイス１６０）がコンテンツの異なるビットレートで符号化されたセグメントの取得を制御する一実施形態によれば、サーバリソース１４５（例えば、１つまたは複数のサーバ）は、クライアントからの入力に基づいてデータストリーム１１５‐１におけるデータストリーム（例えば、データストリーム１２０‐１、データストリーム１２０‐２、データストリーム１２０‐３等）の一部を分配する。
【０１４７】
非限定的な例として、データストリーム１１５‐１は、いわゆるアダプティブビットレートデータストリームとすることができ、このストリームにおいて、通信デバイス１６０‐１に伝送されるデータの品質レベルは、ネットワーク１９０における利用可能な帯域幅、通信デバイスにおけるデコーダがアダプティブビットレートデータストリームを記憶および／または処理する能力などの１つまたは複数のパラメータに基づいて変化する。前述のように、コンテンツアクセス情報は、コンテンツのどのセグメントが利用可能であるか、また、どのビットレートでコンテンツのセグメントが利用可能であるかを示すことができる。
【０１４８】
ネットワーク環境１００における通信デバイス１６０‐２などのもう１つの通信デバイス１６０が、個々の再生装置を操作する異なるエンドユーザの各々のために、同様の機能をサポートできる点に留意されたい。言い換えると、通信デバイス１６０‐２でのユーザ１０８‐２は、取得のためのコンテンツを選択できる。このような例では、サーバリソース１４５は、通信デバイス１６０‐２によって選択されたアダプティブビットレートセグメントに従って、データストリーム１１５‐２においてネットワーク１９０を介して複数の品質レベルで符号化されたコンテンツ１１０を通信デバイス１６０‐２に伝達する。通信デバイス１６０‐２は、データストリーム１１５‐２を復号し、かつ、それぞれのメディアプレーヤでコンテンツ１１０を再生する。
【０１４９】
図１３は、本明細書における実施形態による、異なる品質レベルでのコンテンツの符号化されたセグメントの取得を示す例示的な図である。
【０１５０】
この例示的な実施形態では、通信デバイス１６０‐１は、図９において符号化されたコンテンツＡの取得を開始すると仮定する。コンテンツＡのための最高レベルの品質の符号化されたセグメントの取得を阻止するネットワーク帯域幅の制限はないと仮定する。通信デバイス１６０‐１は、コンテンツの符号化されたセグメント（例えばデータのグループ）Ａ３１、Ａ４２、・・・Ａ３７、Ａ２８等の取得を開始する。輻輳が発生する場合、通信デバイス１６０‐１は、コンテンツのより低いビットレートで符号化されたセグメントの取得および再生を開始できる。このより低いビットレートで符号化されたセグメントの再生は、表示スクリーン上でのイメージの低い品質レベルでの再生という結果となる。
【０１５１】
図１４は、本明細書における実施形態に従った、本明細書で述べた動作のいずれかを実施するためのコンピュータシステムの例示的なブロック図である。
【０１５２】
コンピュータシステム１５１は、エンコーダリソース１４０、サーバリソース、通信デバイス１６０のそれぞれ等など、本明細書で述べた任意のリソースに備わることができる。
【０１５３】
図示するように、本例のコンピュータシステム１５１は、デジタル情報を記憶および抽出できる持続性のタイプの媒体（例えば、任意のタイプのハードウェア記憶媒体）などのコンピュータ可読の記憶媒体８１２、プロセッサ８１３、Ｉ／Ｏインタフェース８１４、および通信インタフェース８１７に結合する相互接続８１１を含むことができる。
【０１５４】
Ｉ／Ｏインタフェース８１４は、リポジトリ１８０と、存在する場合は、再生装置１３０、キーボード１００５、コンピュータマウス等などの他のデバイスとの結合を提供する。
【０１５５】
コンピュータ可読の記憶媒体８１２は、メモリ、光学記憶装置、ハードドライブ、フロッピーディスク等などの任意のハードウェア記憶デバイスとすることができる。一実施形態では、コンピュータ可読の記憶媒体８１２は、命令および／またはデータを記憶する。
【０１５６】
通信インタフェース８１７により、コンピュータシステム１５１およびプロセッサ８１３は、遠隔のリソースから情報を取得し、かつ別のコンピュータと通信するように、ネットワーク１９０などのリソースを介して通信可能になる。Ｉ／Ｏインタフェース８１４により、プロセッサ８１３はリポジトリ１８０から、記憶された情報を取得可能になる。
【０１５７】
図示するように、コンピュータ可読の記憶媒体８１２は、プロセッサ８１３によって実行されるアプリケーション（例えば、ソフトウェア、ファームウェア等）で符号化される。アプリケーション１４０‐１（例えば、エンコーダアプリケーション）は、本明細書で述べる動作のいずれかを実施するための命令を含むように構成できる。
【０１５８】
一実施形態の動作の間に、プロセッサ８１３は、コンピュータ可読の記憶媒体８１２に記憶されたアプリケーション１４０‐１において命令を開始し、起動し、実行し、解釈し、または実施するために、相互接続８１１の使用を介してコンピュータ可読の記憶媒体８１２にアクセスする。
【０１５９】
アプリケーション１４０‐１の実行は、プロセッサ８１３におけるプロセス（処理）１４０‐２（例えば、エンコーダプロセス）などの処理機能を生成する。言い換えると、プロセッサ８１３に関連したプロセス１４０‐２は、コンピュータシステム１５１におけるプロセッサ８１３内での、またはそこでのアプリケーション１４０‐１の実施の１つまたは複数の態様を表す。
【０１６０】
コンピュータシステム１５１が、別のプロセスと、および／または、アプリケーション１４０‐１を実行するようにハードウェアリソースの配置および使用を制御するオペレーティングシステムなどのソフトウェアおよびハードウェアの構成要素とを含むことができることを当業者は理解するであろう。
【０１６１】
異なる実施形態によれば、コンピュータシステムは、任意の様々なタイプのデバイスであることができ、このデバイスには、セットトップボックス、テレビ、パーソナルコンピュータシステム、無線デバイス、基地局、電話機、デスクトップコンピュータ、ラップトップ、ノートブック、ネットブックコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、アプリケーションサーバ、記憶デバイス、カメラなどの家庭用電子機器、カムコーダ、セットトップボックス、携帯型デバイス、テレビゲーム機、携帯型テレビゲーム機、スイッチなどの周辺機器、モデム、ルータ、または一般に任意のタイプのコンピュータデバイスまたは電子機器が含まれるが、これに限定されない。コンピュータシステム１５１は、任意の場所に存在することができ、本明細書で述べた機能を実行するために、ネットワーク環境１９０における任意の適切なリソースに含まれることができる。
【０１６２】
次に、異なるリソースによってサポートされる機能を、図１５および図１６のフローチャートを用いて説明する。以下のフローチャート中のステップは、任意の適切な順番で実行可能であることに留意されたい。
【０１６３】
図１５は、実施形態に従った、コンテンツの符号化されたセグメントの品質レベルを変化させる例示的な方法を示すフローチャート１５００である。上述の概念といくつか重複があることに留意されたい。
【０１６４】
処理ブロック１５１０において、エンコーダリソース１４０は、データフィード１０５‐１（例えば、入力されたデータストリーム）からコンテンツのセグメントを受信する。
【０１６５】
処理ブロック１５２０において、エンコーダリソース１４０はコンテンツのセグメントを符号化する複数の異なるビットレートを指定するエンコーダ制御情報１２８を受信する。
【０１６６】
処理ブロック１５３０において、エンコーダ制御情報１２８により指定された通りに、エンコーダリソース１４０は、ケーブルネットワーク環境などのネットワーク環境において加入者に利用可能な可変数の異なるビットレートデータストリーム（例えば、コンテンツの、異なるビットレートで符号化されたセグメント）に、コンテンツのセグメントを適応的に符号化する。
【０１６７】
図１６は、本明細書における実施形態による、符号化されたコンテンツの品質レベルを変化させる例示的な方法を示すフローチャート１６００である。上述の概念といくつか重複があることに留意されたい。
【０１６８】
処理ブロック１６１０において、エンコーダリソース１４０はデータフィード１０５‐１などの通信リンクでコンテンツのオリジナルのセグメントを受信する。
【０１６９】
処理ブロック１６２０において、エンコーダリソース１４０は、コンテンツの各個別のオリジナルのセグメントの複雑さを分析する。個別のセグメントにおけるデータビット情報は、再生にあたり個別のオリジナルのセグメントの描出をどのように再生成するかを特定する。
【０１７０】
処理ブロック１６３０において、エンコーダリソース１４０は、コンテンツのオリジナルのセグメントが、それぞれのオリジナルのセグメントの複雑さの程度に少なくとも部分的に基づいて符号化される異なるビットレートデータストリームの数を動的に調整する。
【０１７１】
本明細書における技法が、ネットワーク環境において異なる品質レベルでコンテンツのセグメントを符号化する可変ビットレートによく適している点にも留意されたい。しかしながら、本明細書における実施形態が、このような用途での使用に限定されず、本明細書に記載した技法は、その他の用途にも同様に適していることに留意すべきである。
【０１７２】
本明細書において述べられた記載に基づいて、数々の具体的な詳細が、請求される主題の完全な理解を提供するために説明されてきた。しかしながら、請求される主題が、これらの具体的な詳細なしで実行可能であることを当業者は理解するであろう。別の例では、当業者のうちの１人によって知られている方法、装置、システム等が、請求される主題を不明瞭にすることがないように、詳細に記載されていない。詳細な説明のいくつかの箇所は、コンピュータメモリなどのコンピュータシステムメモリ内に記憶されたデータビットまたはバイナリデジタル信号上の動作のアルゴリズムまたは象徴的表現の観点で表された。これらのアルゴリズムの記載もしくは表現は、データ処理分野における当業者が使用する技法の例であり、この技術分野における別の当業者にそれらの作業の内容を伝達するためのものである。本明細書に記載したアルゴリズムは、一般に、所望の結果を導く動作または同様の処理の自己矛盾のないシーケンスあるように構成される。この状況では、動作または処理には、物理的な量の物理的な操作が含まれる。一般に、必ずしもそうではないが、このような量は、記憶、転送、結合、比較またはその他の操作をすることのできる電気信号または磁気信号の形態とすることができる。主に共通仕様の理由から、ビット、データ、値、エレメント、シンボル、文字、専門用語、数、数字などの信号として言及することは、いくつかの場合に便利であった。しかしながら、これらおよび同様の用語全ては、適切な物理量と関連でき、かつ、単に好都合なラベルであると理解すべきである。そうではないと特に述べられていない限り、下記の説明から明らかなように、本明細書における記載を通して、「処理（ｐｒｏｃｅｓｓｉｎｇ）」、「コンピュータ（ｃｏｍｐｕｔｉｎｇ）」、「計算（ｃａｌｃｕｌａｔｉｎｇ）」、「判定（ｄｅｔｅｒｍｉｎｉｎｇ）」等の用語の使用は、メモリ、レジスタまたはその他の情報記憶デバイス内の物理的な電子量または磁気量として表されるデータを操作または変換するコンピュータまたは同様の電子コンピュータデバイス、伝送デバイスまたはコンピュータプラットフォームの表示デバイスなど、コンピュータプラットフォームの動作またはプロセスに言及すると理解される。
【０１７３】
本発明が、その好ましい実施形態を参照して特に図示され説明されたが、添付の特許請求の範囲によって明らかにされる本願の精神および範囲から逸脱することなく、形態および詳細の様々な修正をすることができることを当業者は理解するであろう。このような変形形態は、本願の範囲に含まれることが意図される。このように、本願の実施形態の前述の記載は限定的であることを意図していない。むしろ、発明の限定は、以下の特許請求の範囲において示される。
【図１】
0006284132.tif 000002
【図２】
0006284132.tif 000003
【図３】
0006284132.tif 000004
【図４】
0006284132.tif 000005
【図５】
0006284132.tif 000006
【図６】
0006284132.tif 000007
【図７】
0006284132.tif 000008
【図８】
0006284132.tif 000009
【図９】
0006284132.tif 000010
【図１０】
0006284132.tif 000011
【図１１】
0006284132.tif 000012
【図１２】
0006284132.tif 000013
【図１３】
0006284132.tif 000014
【図１４】
0006284132.tif 000015
【図１５】
0006284132.tif 000016
【図１６】
0006284132.tif 000017