(57)【要約】  本開示の態様は全般に、マルチメディアコンテンツのビデオデータを検索する方法に関する。ある例では、方法は、マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定することを含み、第１の間隔は第２の間隔よりも短い。方法はまた、決定に基づいて、第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する第１の表現からのある量のビデオデータに対する、１つまたは複数のネットワーク要求を出すことを含む。方法はまた、第１の表現からの上記の量のビデオデータに対する要求を出した後で、第２の表現からビデオデータを検索することを含む。
2014534684.tif 000002
【特許請求の範囲】
【請求項１】
マルチメディアコンテンツのビデオデータを検索する方法であって、
前記マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、前記マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定することであって、前記第１の間隔が前記第２の間隔よりも短い、決定することと、
前記決定に基づいて、前記第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータに対する、１つまたは複数のネットワーク要求を出すことと、
前記第１の表現からの前記量のビデオデータに対する前記要求を出した後で、前記第２の表現からビデオデータを検索することとを備える、方法。
【請求項２】
前記第１の表現からのビデオデータをバッファリングすることと、前記バッファリングされたビデオデータの期間に基づいて、前記第２の表現からビデオデータをいつ検索するかを決定することとをさらに備える、請求項１に記載の方法。
【請求項３】
前記バッファリングされたビデオデータの前記期間に基づいて前記第２の表現からビデオデータを検索することが、前記第２の表現中の切替点の間の前記再生時間に概ね等しい前記第１の表現からのある期間のビデオデータをバッファリングした後で、前記第２の表現からデータを検索することを備える、請求項２に記載の方法。
【請求項４】
ネットワーク帯域幅の現在利用可能な量を決定することと、
前記第１の表現および前記第２の表現が共通のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信することと、
前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現と前記第２の表現とを選択することとをさらに備える、請求項１に記載の方法。
【請求項５】
ネットワーク帯域幅の現在利用可能な量を決定することと、
前記第１の表現が第１のビットレートを有し、前記第２の表現が前記第１のビットレートよりも高い第２のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信することと、
前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得るかどうかを判定することとをさらに備え、
前記第１の表現からの前記ビデオデータを要求することが、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現からの前記ビデオデータを要求することを備え、
前記第１の表現からの前記ビデオデータを要求した後で前記第２の表現から前記ビデオデータを検索することが、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第２の表現から前記ビデオデータを検索することを備える、請求項１に記載の方法。
【請求項６】
前記第１の表現からの前記ビデオデータを要求することが、
前記第１の表現からの前記ビデオデータに対する１つまたは複数の要求をサーバデバイスに送信することと、
ユニキャストを介して前記第１の表現からの前記ビデオデータを受信することとを備え、
前記第２の表現から前記ビデオデータを検索することが、前記サーバデバイスから、マルチキャストまたはブロードキャストの少なくとも１つを介して、前記ビデオデータを検索することを備える、請求項１に記載の方法。
【請求項７】
前記マルチメディアコンテンツに対するマニフェストファイルを受信することをさらに備え、前記第１の間隔を決定することが、前記マニフェストファイル中の情報から前記第１の間隔を決定することを備え、前記第２の間隔を決定することが、前記マニフェストファイル中の情報から前記第２の間隔を決定することを備える、請求項１に記載の方法。
【請求項８】
前記第１の表現および前記第２の表現が共通のビットレートを有し、前記方法が、
前記第１の間隔と前記第２の間隔とを決定する前に、前記共通のビットレートとは異なるビットレートを有する第３の異なる表現からビデオデータを検索することと、
ネットワーク帯域幅の現在利用可能な量を決定することと、
前記第１の表現および前記第２の表現の前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量に対してより適切であるという判定に基づいて、前記第１の間隔と前記第２の間隔とを決定し、前記第１の表現からの前記ビデオデータに対する前記１つまたは複数のネットワーク要求を出し、前記第２の表現から前記ビデオデータを検索することとを備える、請求項１に記載の方法。
【請求項９】
１つまたは複数のプロセッサを備える、マルチメディアコンテンツのビデオデータを検索するための装置であって、前記プロセッサが、
前記マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、前記マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定することであって、前記第１の間隔が前記第２の間隔よりも短い、決定することと、
前記決定に基づいて、前記第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータに対する、１つまたは複数のネットワーク要求を出すことと、
前記第１の表現からの前記量のビデオデータに対する前記要求を出した後で、前記第２の表現からビデオデータを検索することとを行うように構成される、装置。
【請求項１０】
前記１つまたは複数のプロセッサがさらに、前記第１の表現からのビデオデータをバッファリングし、前記バッファリングされたビデオデータの期間に基づいて、前記第２の表現からビデオデータをいつ検索するかを決定するように構成される、請求項９に記載の装置。
【請求項１１】
前記バッファリングされたビデオデータの前記期間に基づいて前記第２の表現からビデオデータを検索するために、前記１つまたは複数のプロセッサが、前記第２の表現中の切替点の間の前記再生時間に概ね等しい前記第１の表現からのある期間のビデオデータをバッファリングした後で、前記第２の表現からデータを検索するように構成される、請求項１０に記載の装置。
【請求項１２】
前記１つまたは複数のプロセッサがさらに、
ネットワーク帯域幅の現在利用可能な量を決定し、
前記第１の表現および前記第２の表現が共通のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信し、
前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現と前記第２の表現とを選択するように構成される、請求項９に記載の装置。
【請求項１３】
前記１つまたは複数のプロセッサがさらに、
ネットワーク帯域幅の現在利用可能な量を決定し、
前記第１の表現が第１のビットレートを有し、前記第２の表現が前記第１のビットレートよりも高い第２のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信し、
前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得るかどうかを判定するように構成され、
前記第１の表現からの前記ビデオデータを要求するために、前記１つまたは複数のプロセッサが、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現からの前記ビデオデータを要求するように構成され、
前記第１の表現からの前記ビデオデータを要求した後で前記第２の表現から前記ビデオデータを検索するために、前記１つまたは複数のプロセッサが、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第２の表現から前記ビデオデータを検索するように構成される、請求項９に記載の装置。
【請求項１４】
前記第１の表現からの前記ビデオデータを要求するために、前記１つまたは複数のプロセッサが、
前記第１の表現からの前記ビデオデータに対する１つまたは複数の要求をサーバデバイスに送信し、
ユニキャストを介して前記第１の表現からの前記ビデオデータを受信するように構成され、
前記第２の表現から前記ビデオデータを検索するために、前記１つまたは複数のプロセッサが、前記サーバデバイスから、マルチキャストまたはブロードキャストの少なくとも１つを介して、前記ビデオデータを検索するように構成される、請求項９に記載の装置。
【請求項１５】
前記１つまたは複数のプロセッサが、前記マルチメディアコンテンツに対するマニフェストファイルを受信するように構成され、前記第１の間隔を決定するために、前記１つまたは複数のプロセッサが、前記マニフェストファイル中の情報から前記第１の間隔を決定するように構成され、前記第２の間隔を決定するために、前記１つまたは複数のプロセッサが、前記マニフェストファイル中の情報から前記第２の間隔を決定するように構成される、請求項９に記載の装置。
【請求項１６】
前記第１の表現および前記第２の表現が共通のビットレートを有し、前記１つまたは複数のプロセッサがさらに、
前記第１の間隔と前記第２の間隔とを決定する前に、前記共通のビットレートとは異なるビットレートを有する第３の異なる表現からビデオデータを検索し、
ネットワーク帯域幅の現在利用可能な量を決定し、
前記第１の表現および前記第２の表現の前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量に対してより適切であるという判定に基づいて、前記第１の間隔と前記第２の間隔とを決定し、前記第１の表現からの前記ビデオデータに対する前記１つまたは複数のネットワーク要求を出し、前記第２の表現から前記ビデオデータを検索するように構成される、請求項９に記載の装置。
【請求項１７】
マルチメディアコンテンツのビデオデータを検索するための装置であって、
前記マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、前記マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定するための手段であって、前記第１の間隔が前記第２の間隔よりも短い、手段と、
前記決定に基づいて、前記第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータに対する、１つまたは複数のネットワーク要求を出すための手段と、
前記第１の表現からの前記量のビデオデータに対する前記要求を出した後で、前記第２の表現からビデオデータを検索するための手段とを備える、装置。
【請求項１８】
前記第１の表現からのビデオデータをバッファリングするための手段と、前記バッファリングされたビデオデータの期間に基づいて、前記第２の表現からビデオデータをいつ検索するかを決定するための手段とをさらに備える、請求項１７に記載の装置。
【請求項１９】
前記バッファリングされたビデオデータの前記期間に基づいて前記第２の表現からビデオデータを検索するための手段が、前記第２の表現中の切替点の間の前記再生時間に概ね等しい前記第１の表現からのある期間のビデオデータをバッファリングした後で、前記第２の表現からデータを検索するための手段を備える、請求項１８に記載の装置。
【請求項２０】
ネットワーク帯域幅の現在利用可能な量を決定するための手段と、
前記第１の表現および前記第２の表現が共通のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信するための手段と、
前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現と前記第２の表現とを選択するための手段とをさらに備える、請求項１７に記載の装置。
【請求項２１】
ネットワーク帯域幅の現在利用可能な量を決定するための手段と、
前記第１の表現が第１のビットレートを有し、前記第２の表現が前記第１のビットレートよりも高い第２のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信するための手段と、
前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得るかどうかを判定するための手段とをさらに備え、
前記第１の表現からの前記ビデオデータを要求するための手段が、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現からの前記ビデオデータを要求するための手段を備え、
前記第１の表現からの前記ビデオデータを要求した後で前記第２の表現からの前記ビデオデータを検索するための手段が、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第２の表現から前記ビデオデータを検索するための手段を備える、請求項１７に記載の装置。
【請求項２２】
前記第１の表現からの前記ビデオデータを要求するための手段が、
前記第１の表現からの前記ビデオデータに対する１つまたは複数の要求をサーバデバイスに送信するための手段と、
ユニキャストを介して前記第１の表現からの前記ビデオデータを受信するための手段とを備え、
前記第２の表現から前記ビデオデータを検索するための手段が、前記サーバデバイスから、マルチキャストまたはブロードキャストの少なくとも１つを介して、前記ビデオデータを検索するための手段を備える、請求項１７に記載の装置。
【請求項２３】
前記マルチメディアコンテンツに対するマニフェストファイルを受信するための手段をさらに備え、前記第１の間隔を決定するための手段が、前記マニフェストファイル中の情報から前記第１の間隔を決定するための手段を備え、前記第２の間隔を決定するための手段が、前記マニフェストファイル中の情報から前記第２の間隔を決定するための手段を備える、請求項１７に記載の装置。
【請求項２４】
前記第１の表現および前記第２の表現が共通のビットレートを有し、前記装置が、
前記第１の間隔と前記第２の間隔とを決定する前に、前記共通のビットレートとは異なるビットレートを有する第３の異なる表現からビデオデータを検索するための手段と、
ネットワーク帯域幅の現在利用可能な量を決定するための手段と、
前記第１の表現および前記第２の表現の前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量に対してより適切であるという判定に基づいて、前記第１の間隔と前記第２の間隔とを決定するための手段と、前記第１の表現からの前記ビデオデータに対する前記１つまたは複数のネットワーク要求を出すための手段と、前記第２の表現から前記ビデオデータを検索することとを備える、請求項１７に記載の装置。
【請求項２５】
命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令が、実行されると、１つまたは複数のプロセッサに、
前記マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、前記マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定することであって、前記第１の間隔が前記第２の間隔よりも短い、決定することと、
前記決定に基づいて、前記第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータに対する、１つまたは複数のネットワーク要求を出すことと、
前記第１の表現からの前記量のビデオデータに対する前記要求を出した後で、前記第２の表現からビデオデータを検索することとを行わせる、非一時的コンピュータ可読記憶媒体。
【請求項２６】
前記命令が、前記１つまたは複数のプロセッサに、前記第１の表現からのビデオデータをバッファリングさせ、前記バッファリングされたビデオデータの期間に基づいて、前記第２の表現からビデオデータをいつ検索するかを決定させる、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項２７】
前記バッファリングされたビデオデータの前記期間に基づいて前記第２の表現からビデオデータを検索するために、前記命令が、前記１つまたは複数のプロセッサに、前記第２の表現中の切替点の間の前記再生時間に概ね等しい前記第１の表現からのある期間のビデオデータをバッファリングした後で、前記第２の表現からデータを読み出させる、請求項２６に記載のコンピュータ可読記憶媒体。
【請求項２８】
前記命令が、前記１つまたは複数のプロセッサに、
ネットワーク帯域幅の現在利用可能な量を決定させ、
前記第１の表現および前記第２の表現が共通のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信させ、
前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現と前記第２の表現とを選択させる、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記１つまたは複数のプロセッサがさらに、
ネットワーク帯域幅の現在利用可能な量を決定し、
前記第１の表現が第１のビットレートを有し、前記第２の表現が前記第１のビットレートよりも高い第２のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信し、
前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得るかどうかを判定するように構成され、
前記第１の表現からの前記ビデオデータを要求するために、前記命令が、前記１つまたは複数のプロセッサに、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現からの前記ビデオデータを要求させ、
前記第１の表現からの前記ビデオデータを要求した後で前記第２の表現から前記ビデオデータを検索するために、前記命令が、前記１つまたは複数のプロセッサに、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第２の表現から前記ビデオデータを検索させる、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記第１の表現からの前記ビデオデータを要求するために、前記命令が、前記１つまたは複数のプロセッサに、
前記第１の表現からの前記ビデオデータに対する１つまたは複数の要求をサーバデバイスへ送信させ、
ユニキャストを介して前記第１の表現からの前記ビデオデータを受信させ、
前記第２の表現から前記ビデオデータを検索するために、前記命令が、前記１つまたは複数のプロセッサに、前記サーバデバイスから、マルチキャストまたはブロードキャストの少なくとも１つを介して、前記ビデオデータを読み出させる、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項３１】
前記命令が、前記１つまたは複数のプロセッサに、前記マルチメディアコンテンツに対するマニフェストファイルを受信させ、前記第１の間隔を決定するために、前記命令が、前記１つまたは複数のプロセッサに、前記マニフェストファイル中の情報から前記第１の間隔を決定させ、前記第２の間隔を決定するために、前記命令が、前記１つまたは複数のプロセッサに、前記マニフェストファイル中の情報から前記第２の間隔を決定させる、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項３２】
前記第１の表現および前記第２の表現が共通のビットレートを有し、前記命令がさらに、前記１つまたは複数のプロセッサに、
前記第１の間隔と前記第２の間隔とを決定する前に、前記共通のビットレートとは異なるビットレートを有する第３の異なる表現からビデオデータを検索させ、
ネットワーク帯域幅の現在利用可能な量を決定させ、
前記第１の表現および前記第２の表現の前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量に対してより適切であるという判定に基づいて、前記第１の間隔と前記第２の間隔とを決定させ、前記第１の表現からの前記ビデオデータに対する前記１つまたは複数のネットワーク要求を出させ、前記第２の表現から前記ビデオデータを検索させる、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項３３】
マルチメディアコンテンツのビデオデータをストリーミングする方法であって、
前記マルチメディアコンテンツの複数の表現を受信することであって、前記表現が、前記それぞれの表現の切替点の間隔を表す切替点間隔情報を含む、受信することと、
前記クライアントデバイスからの要求に応答して、前記表現のうちの第１の表現のビデオデータをクライアントデバイスに送信することと、
前記表現のうちの第２の異なる表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータを送信した後で、前記表現のうちの前記第２の表現のビデオデータを前記クライアントデバイスに送信することであって、前記表現のうちの前記第２の表現の切替点の前記間隔が、前記表現のうちの前記第１の表現の切替点の前記間隔より短い、送信することとを備える、方法。
【請求項３４】
前記複数の表現を形成することが、
前記表現のうちの前記第１の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第１の表現を形成することと、
前記第２の表現の前記切替点の各々が前記第１の表現の前記切替点の１つの時間的位置に対応する時間的位置で発生するように、前記表現のうちの前記第２の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第２の表現を形成することとを備える、請求項３３に記載の方法。
【請求項３５】
前記表現のうちの前記第２の表現の前記切替点が、前記表現のうちの前記第１の表現の前記切替点のサブセットを備える、請求項３４に記載の方法。
【請求項３６】
前記表現のうちの前記第１の表現の前記ビデオデータを送信することが、ユニキャストを介して前記表現のうちの前記第１の表現の前記ビデオデータを送信することを備え、
前記表現のうちの前記第２の表現の前記ビデオデータを送信することが、ブロードキャストを介して前記表現のうちの前記第２の表現の前記ビデオデータを送信することを備える、請求項３３に記載の方法。
【請求項３７】
前記表現切替点間隔情報を割り当てることが、前記マルチメディアコンテンツに対するマニフェストファイル中で前記切替点間隔情報を提供することを備える、請求項３３に記載の方法。
【請求項３８】
１つまたは複数のプロセッサを備える、マルチメディアコンテンツのビデオデータをストリーミングするための装置であって、前記プロセッサが、
前記マルチメディアコンテンツの複数の表現を受信することであって、前記表現が、前記それぞれの表現の切替点の間隔を表す切替点間隔情報を含む、受信することと、
前記クライアントデバイスからの要求に応答して、前記表現のうちの第１の表現のビデオデータをクライアントデバイスに送信することと、
前記表現のうちの第２の異なる表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータを送信した後で、前記表現のうちの前記第２の表現のビデオデータを前記クライアントデバイスに送信することであって、前記表現のうちの前記第２の表現の切替点の前記間隔が、前記表現のうちの前記第１の表現の切替点の前記間隔より短い、送信することとを行うように構成される、装置。
【請求項３９】
前記複数の表現を形成するために、前記１つまたは複数のプロセッサが、
前記表現のうちの前記第１の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第１の表現を形成し、
前記第２の表現の前記切替点の各々が前記第１の表現の１つの前記切替点の時間的位置に対応する時間的位置で発生するように、前記表現のうちの前記第２の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第２の表現を形成するように構成される、請求項３８に記載の装置。
【請求項４０】
前記表現のうちの前記第２の表現の前記切替点が、前記表現のうちの前記第１の表現の前記切替点のサブセットを備える、請求項３９に記載の装置。
【請求項４１】
前記表現のうちの前記第１の表現の前記ビデオデータを送信するために、前記１つまたは複数のプロセッサが、ユニキャストを介して前記表現のうちの前記第１の表現の前記ビデオデータを送信するように構成され、
前記表現のうちの前記第２の表現の前記ビデオデータを送信するために、前記１つまたは複数のプロセッサが、ブロードキャストを介して前記表現のうちの前記第２の表現の前記ビデオデータを送信するように構成される、請求項３８に記載の装置。
【請求項４２】
表現切替点間隔情報を割り当てるために、前記１つまたは複数のプロセッサが、前記マルチメディアコンテンツに対するマニフェストファイル中で前記切替点間隔情報を提供するように構成される、請求項３８に記載の装置。
【請求項４３】
マルチメディアコンテンツのビデオデータをストリーミングするための装置であって、
前記マルチメディアコンテンツの複数の表現を受信するための手段であって、前記表現が、前記それぞれの表現の切替点の間隔を表す切替点間隔情報を含む、手段と、
前記クライアントデバイスからの要求に応答して、前記表現のうちの第１の表現のビデオデータをクライアントデバイスに送信するための手段と、
前記表現のうちの第２の異なる表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータを送信した後で、前記表現のうちの前記第２の表現のビデオデータを前記クライアントデバイスに送信するための手段であって、前記表現のうちの前記第２の表現の切替点の前記間隔が、前記表現のうちの前記第１の表現の切替点の前記間隔より短い、手段とを備える、装置。
【請求項４４】
前記複数の表現を形成するための手段が、
前記表現のうちの前記第１の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第１の表現を形成するための手段と、
前記第２の表現の前記切替点の各々が前記第１の表現の前記切替点の１つの時間的位置に対応する時間的位置で発生するように、前記表現のうちの前記第２の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第２の表現を形成するための手段とを備える、請求項４３に記載の装置。
【請求項４５】
前記表現のうちの前記第２の表現の前記切替点が、前記表現のうちの前記第１の表現の前記切替点のサブセットを備える、請求項４４に記載の装置。
【請求項４６】
前記表現のうちの前記第１の表現の前記ビデオデータを送信するための手段が、ユニキャストを介して前記表現のうちの前記第１の表現の前記ビデオデータを送信するための手段を備え、
前記表現のうちの前記第２の表現の前記ビデオデータを送信するための手段が、ブロードキャストを介して前記表現のうちの前記第２の表現の前記ビデオデータを送信するための手段を備える、請求項４３に記載の装置。
【請求項４７】
表現切替点間隔情報を割り当てるための手段が、前記マルチメディアコンテンツに対するマニフェストファイル中で前記切替点間隔情報を提供するための手段を備える、請求項４３に記載の装置。
【請求項４８】
命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令が、実行されると、１つまたは複数のプロセッサに、
前記マルチメディアコンテンツの複数の表現を受信することであって、前記表現が、前記それぞれの表現の切替点の間隔を表す切替点間隔情報を含む、受信することと、
前記クライアントデバイスからの要求に応答して、前記表現のうちの第１の表現のビデオデータをクライアントデバイスへ送信することと、
前記表現のうちの第２の異なる表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータを送信した後で、前記表現のうちの前記第２の表現のビデオデータを前記クライアントデバイスへ送信することであって、前記表現のうちの前記第２の表現の切替点の前記間隔が、前記表現のうちの前記第１の表現の切替点の前記間隔より短い、送信することとを行わせる、非一時的コンピュータ可読記憶媒体。
【請求項４９】
前記複数の表現を形成するために、前記命令が、前記１つまたは複数のプロセッサに、
前記表現のうちの前記第１の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第１の表現を形成させ、
前記第２の表現の前記切替点の各々が前記第１の表現の前記切替点の１つの時間的位置に対応する時間的位置で発生するように、前記表現のうちの前記第２の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第２の表現を形成させる、請求項４８に記載のコンピュータ可読記憶媒体。
【請求項５０】
前記表現のうちの前記第２の表現の前記切替点が、前記表現のうちの前記第１の表現の前記切替点のサブセットを備える、請求項４９に記載のコンピュータ可読記憶媒体。
【請求項５１】
前記表現のうちの前記第１の表現の前記ビデオデータを送信するために、前記命令が、前記１つまたは複数のプロセッサに、ユニキャストを介して前記表現のうちの前記第１の表現の前記ビデオデータを送信させ、
前記表現のうちの前記第２の表現の前記ビデオデータを送信するために、前記命令が、前記１つまたは複数のプロセッサに、ブロードキャストを介して前記表現のうちの前記第２の表現の前記ビデオデータを送信させる、請求項４８に記載のコンピュータ可読記憶媒体。
【請求項５２】
表現切替点間隔情報を割り当てるために、前記命令が、前記１つまたは複数のプロセッサに、前記マルチメディアコンテンツに対するマニフェストファイル中で前記切替点間隔情報を提供させる、請求項４８に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれる、２０１１年１０月５日に出願された米国仮出願第６１／５４３，７３２号の利益を主張する。
【０００２】
本開示は、符号化されたマルチメディアデータのネットワークストリーミングに関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３またはＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ＿１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法のような、ビデオ圧縮技法を実装する。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間的予測および／または時間的予測を実行する。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスはブロックに区分され得る。各ブロックはさらに区分され得る。イントラコーディングされた（Ｉ）フレームまたはスライス中のブロックは、隣接するブロックに対する空間的予測を使用して符号化される。インターコーディングされた（ＰまたはＢ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接するブロックに対する空間的予測、あるいは他の参照フレームに対する時間的予測を使用し得る。
【０００５】
ビデオデータが符号化された後、ビデオデータは送信または記憶のためにパケット化され得る。ビデオデータは、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマット、およびＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣのようなその拡張など、様々な規格のいずれかに準拠するビデオファイルへと組み立てられ得る。そのようなパケット化されたビデオデータは、ネットワークストリーミングを使用したコンピュータネットワークを通じた送信など、種々の方法でトランスポートされ得る。
【発明の概要】
【０００６】
全般に、本開示は、ネットワークを通じたメディアデータのストリーミングを改善するための技法を説明する。たとえば、本開示の技法は全般に、最初にマルチメディアコンテンツを検索し、帯域幅適応を実行するときに、ユーザの体験を改善することを対象とする。本開示の態様は、マルチメディアコンテンツの様々な表現の切替点の間の距離を示す情報を、サーバデバイスからクライアントデバイスに提供することに関する。クライアントデバイスは、この情報を使用して、比較的切替点の頻度が高い（知覚される品質が比較的低いにもかかわらず）表現を最初に選択し、その表現のデータをバッファリングし、次いで、より高品質の表現の今後の切替点において、知覚される品質が比較的高い表現へと切り替えることができる。
【０００７】
ある例では、マルチメディアコンテンツのビデオデータを検索する方法は、マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定することであって、第１の間隔が第２の間隔より短い、決定することと、その決定に基づいて、第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する、第１の表現からのある量のビデオデータに対する１つまたは複数のネットワーク要求を出すことと、第１の表現からのその量のビデオデータに対する要求を出した後で、第２の表現からビデオデータを検索することとを含む。
【０００８】
別の例では、マルチメディアコンテンツのビデオデータを検索するための装置は、マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定することであって、第１の間隔が第２の間隔より短い、決定することと、その決定に基づいて、第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する、第１の表現からのある量のビデオデータに対する１つまたは複数のネットワーク要求を出すことと、第１の表現からのその量のビデオデータに対する要求を出した後で、第２の表現からビデオデータを検索することとを行うように構成される、１つまたは複数のプロセッサを含む。
【０００９】
別の例では、マルチメディアコンテンツのビデオデータを検索するための装置は、マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定するための手段であって、第１の間隔が第２の間隔より短い、手段と、その決定に基づいて、第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する、第１の表現からのある量のビデオデータに対する１つまたは複数のネットワーク要求を出すための手段と、第１の表現からのその量のビデオデータに対する要求を出した後で、第２の表現からビデオデータを検索するための手段とを含む。
【００１０】
別の例では、本開示の態様は、命令を記憶した非一時的コンピュータ可読記憶媒体を対象とし、その命令は、実行されると、１つまたは複数のプロセッサに、マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定することであって、第１の間隔が第２の間隔より短い、決定することと、その決定に基づいて、第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する、第１の表現からのある量のビデオデータに対する１つまたは複数のネットワーク要求を出すことと、第１の表現からのその量のビデオデータに対する要求を出した後で、第２の表現からビデオデータを検索することとを行わせる。
【００１１】
別の例では、マルチメディアコンテンツのビデオデータをストリーミングする方法は、マルチメディアコンテンツの複数の表現を受信することであって、表現が、それぞれの表現に対する切替点の間隔を表す切替点間隔情報を含む、受信することと、クライアントデバイスからの要求に応答して、表現のうちの第１の表現のビデオデータをクライアントデバイスに送信することと、表現のうちの第２の異なる表現における切替点の間の再生時間に少なくとも等しい再生時間を有する、第１の表現からのある量のビデオデータを送信した後で、表現のうちの第２の表現のビデオデータをクライアントデバイスに送信することであって、表現のうちの第２の表現に対する切替点の間隔が、表現のうちの第１の表現に対する切替点の間隔より短い、送信することとを含む。
【００１２】
別の例では、マルチメディアコンテンツのビデオデータをストリーミングするための装置は、マルチメディアコンテンツの複数の表現を受信することであって、表現が、それぞれの表現に対する切替点の間隔を表す切替点間隔情報を含む、受信することと、クライアントデバイスからの要求に応答して、表現のうちの第１の表現のビデオデータをクライアントデバイスに送信することと、表現のうちの第２の異なる表現における切替点の間の再生時間に少なくとも等しい再生時間を有する、第１の表現からのある量のビデオデータを送信した後で、表現のうちの第２の表現のビデオデータをクライアントデバイスに送信することであって、表現のうちの第２の表現に対する切替点の間隔が、表現のうちの第１の表現に対する切替点の間隔より短い、送信することとを行うように構成される１つまたは複数のプロセッサを含む。
【００１３】
別の例では、マルチメディアコンテンツのビデオデータをストリーミングするための装置は、マルチメディアコンテンツの複数の表現を受信するための手段であって、表現が、それぞれの表現に対する切替点の間隔を表す切替点間隔情報を含む、手段と、クライアントデバイスからの要求に応答して、表現のうちの第１の表現のビデオデータをクライアントデバイスに送信するための手段と、表現のうちの第２の異なる表現における切替点の間の再生時間に少なくとも等しい再生時間を有する、第１の表現からのある量のビデオデータを送信した後で、表現のうちの第２の表現のビデオデータをクライアントデバイスに送信するための手段であって、表現のうちの第２の表現に対する切替点の間隔が、表現のうちの第１の表現に対する切替点の間隔より短い、手段とを含む。
【００１４】
別の例では、本開示の態様は、命令を記憶した非一時的コンピュータ可読記憶媒体を対象とし、その命令は、実行されると、１つまたは複数のプロセッサに、マルチメディアコンテンツの複数の表現を受信することであって、表現が、それぞれの表現に対する切替点の間隔を表す切替点間隔情報を含む、受信することと、クライアントデバイスからの要求に応答して、表現のうちの第１の表現のビデオデータをクライアントデバイスへ送信することと、表現のうちの第２の異なる表現における切替点の間の再生時間に少なくとも等しい再生時間を有する、第１の表現からのある量のビデオデータを送信した後で、表現のうちの第２の表現のビデオデータをクライアントデバイスへ送信することであって、表現のうちの第２の表現に対する切替点の間隔が、表現のうちの第１の表現に対する切替点の間隔より短い、送信することとを行わせる。
【００１５】
１つまたは複数の例の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１６】
【図１】ネットワークを通じてメディアデータをストリーミングするための技法を実装する例示的なシステムを示すブロック図。
【図２】例示的なマルチメディアコンテンツの要素を示す概念図。
【図３】マルチメディアコンテンツの表現のセグメントに対応し得る、例示的なビデオファイルの要素を示すブロック図。
【図４】ｍｅｄｉａ  ｐｒｅｓｅｎｔａｔｉｏｎ  ｄｅｓｃｒｉｐｔｉｏｎ（ＭＰＤ）と様々な適応セットとを含む例示的なマルチメディアコンテンツを示す概念図。
【図５】本開示の態様による、例示的な表現を示す概念図。
【図６】本開示の態様による、他の例示的な表現を示す概念図。
【図７】ネットワーク帯域幅の決定された量とデータの検索し元の表現の対応する指示との例をグラフィカルに表す概念図。
【図８】本開示の態様を実行するための例示的な方法を示すフローチャート。
【図９】本開示の態様を実行するための例示的な方法を示すフローチャート。
【図１０】本開示の態様を実行するための例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１７】
全般に、本開示は、ネットワークを通じてオーディオおよびビデオデータなどのマルチメディアデータをストリーミングするための技法を説明する。本開示の技法は、ｄｙｎａｍｉｃ  ａｄａｐｔｉｖｅ  ｓｔｒｅａｍｉｎｇ  ｏｖｅｒ  ＨＴＴＰ（ＤＡＳＨ）と併せて使用され得る。本開示は、ネットワークストリーミングと併せて実行され得る様々な技法を説明し、それらの技法のいずれかまたはすべては単独でまたは任意の組合せで実装され得る。以下でより詳細に説明されるように、ネットワークストリーミングを実行する様々なデバイスが本開示の技法を実装するように構成され得る。
【００１８】
ＤＡＳＨおよびネットワークを通じてデータをストリーミングするための同様の技法によれば、（テキストオーバーレイまたは他のデータも含み得る、ムービーまたは他のオーディオ／ビデオコンテンツなどの）マルチメディアコンテンツは種々の方法で種々の特性を伴って符号化され得る。コンテンツ作成デバイスは、同じマルチメディアコンテンツの複数の表現を形成し得る。各表現は、様々なコーディングおよびレンダリング能力をもつ種々のクライアントデバイスによって使用可能なデータを与えるために、コーディングおよびレンダリング特性のような、特性の特定のセットに対応し得る。その上、様々なビットレートを有する表現は、帯域幅適応を可能にし得る。すなわち、クライアントデバイスは、現在利用可能である帯域幅の量を決定し、クライアントデバイスのコーディングおよびレンダリング能力とともにその利用可能な帯域幅の量に基づいて表現を選択し得る。
【００１９】
いくつかの例では、コンテンツ作成デバイスは、ある表現のセットが共通の特性のセットを有することを示し得る。そして、コンテンツ作成デバイスは、セット中の表現が帯域幅適応のために使用され得るという点で、セット中の表現が適応セットを形成することを示し得る。いくつかの例では、適応セットは「表現グループ」とも呼ばれ得る。すなわち、セット中の表現は、ビットレートが異なり得るが、それ以外は実質的に同じ特性を共有し得る。このようにして、クライアントデバイスは、マルチメディアコンテンツの適応セットについての共通の特性の様々なセットを決定し、クライアントデバイスのコーディングおよびレンダリング能力に基づいて適応セットを選択し得る。次いで、クライアントデバイスは、帯域幅の利用可能性に基づいて、選択された適応セット中の表現の間で適応的に切り替わり得る。
【００２０】
コンテンツ作成デバイスはまた、３ＧＰＰ（Ｔｈｉｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔ）によって規定されたフォーマットのｍｅｄｉａ  ｐｒｅｓｅｎｔａｔｉｏｎ  ｄｅｓｃｒｉｐｔｉｏｎ（ＭＰＤ）ファイルのようなマニフェストファイルの異なる部分に、別々のネットワーク位置を与え得る。すなわち、マニフェストファイルの異なる部分は、たとえば、ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ（ＵＲＬ）のような、様々なｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）によって独立にアドレス指定可能であり得る。マニフェストファイルの最初の部分は、ＵＲＩ、ＵＲＬ、またはマニフェストファイルの別の部分の他の位置識別子を含み得る。たとえば、マニフェストファイルの第１の部分は、上で論じられたように、適応セットの共通の特性の記述を含み得る。
【００２１】
適応セットの各々は、それぞれの適応セット中の表現のメディアデータの位置を示すデータを含み得る、マニフェストファイルのそれぞれの異なる部分に関連し得る。このようにして、クライアントデバイスは、マニフェストファイルの第１の部分を受信し、適切な適応セットを選択し、選択された適応セットのためのマニフェストファイルの別の部分を検索し、選択されたグループの表現を選択し、マニフェストファイルのその別の部分を使用して、選択された表現のデータを検索し得る。その上、クライアントデバイスは、マニフェストファイルのその別の部分、すなわち、選択された適応セットに固有の部分を使用して、変化するネットワーク帯域幅に適応し得る。
【００２２】
メディアコンテンツの表現のセグメントのようなビデオファイルは、ＩＳＯベースのメディアファイルフォーマット、Ｓｃａｌａｂｌｅ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＳＶＣ）ファイルフォーマット、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）ファイルフォーマット、Ｔｈｉｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔ（３ＧＰＰ）ファイルフォーマット、および／またはＭｕｌｔｉｖｉｅｗ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＭＶＣ）ファイルフォーマット、または他の同様のビデオファイルフォーマットのいずれかに従ってカプセル化されたビデオデータに準拠し得る。
【００２３】
ＩＳＯベースのメディアファイルフォーマットは、メディアの交換、管理、編集、および提示を可能にする、フレキシブルな、拡張可能なフォーマットでの提示のための、時限メディア情報を含むように設計される。ＩＳＯベースのメディアファイルフォーマット（ＩＳＯ／ＩＥＣ１４４９６−１２：２００４）は、時間ベースのメディアファイルのための一般的な構造を定義するＭＰＥＧ−４  Ｐａｒｔ−１２において規定されている。ＩＳＯベースのメディアファイルフォーマットは、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣビデオ圧縮のサポートを定義したＡＶＣファイルフォーマット（ＩＳＯ／ＩＥＣ１４４９６−１５）、３ＧＰＰファイルフォーマット、ＳＶＣファイルフォーマット、およびＭＶＣファイルフォーマットなどのファミリー中の他のファイルフォーマットのための基礎として使用される。３ＧＰＰファイルフォーマットおよびＭＶＣファイルフォーマットはＡＶＣファイルフォーマットの拡張である。ＩＳＯベースのメディアファイルフォーマットは、オーディオビジュアルプレゼンテーションのようなメディアデータの時限シーケンスのためのタイミングと、構造と、メディア情報とを含む。ファイル構造はオブジェクト指向であり得る。ファイルは、非常に単純に基本オブジェクトに分解することができ、オブジェクトの構造はそれらのタイプから暗示される。
【００２４】
ＩＳＯベースのメディアファイルフォーマット（およびそれの拡張）に準拠するファイルは、「ボックス」と呼ばれる一連のオブジェクトとして形成され得る。ＩＳＯベースのメディアファイルフォーマットのデータは、そのファイル内に他のデータが含まれている必要がなくそのファイル内のボックスの外部にデータが存在する必要がないように、ボックス中に含まれ得る。これは、特定のファイルフォーマットによって必要とされる初期シグネチャを含む。「ボックス」は、固有のタイプ識別子と長さとによって定義されるオブジェクト指向ビルディングブロックであり得る。一般に、プレゼンテーションは１つのファイル中に含まれ、メディアプレゼンテーションは自己完結的である。ムービーコンテナ（ムービーボックス）はメディアのメタデータを含んでよく、ビデオおよびオーディオフレームは、メディアデータコンテナ中に含まれてよく、他のファイル中にあってよい。
【００２５】
表現（動きシーケンス）は、セグメントと呼ばれることがある、いくつかのファイル中に含まれてよい。タイミングおよびフレーミング（位置およびサイズ）情報は一般にＩＳＯベースのメディアファイル中にあり、補助ファイルは基本的に任意のフォーマットを使用することができる。このプレゼンテーションは、プレゼンテーションを含んでいるシステムに対して「ローカル」であり得るか、あるいはネットワークまたは他のストリーム配信機構を介して与えられ得る。
【００２６】
任意選択のメタデータトラックは、その値がグループの他のメンバー（たとえば、それのビットレート、スクリーンサイズ、または言語）とは異なり得る、それが有する「興味深い特性」によって各トラックをタグ付けするために使用され得る。トラック内のいくつかのサンプルは、特殊な特性を有し得るか、または個々に識別され得る。特性の一例は同期ポイント（しばしばビデオＩフレーム）である。これらのポイントは、各トラック中の特殊なテーブルによって識別され得る。より一般的には、トラックサンプル間の依存性の性質はまた、メタデータを使用して記録され得る。メタデータは、ビデオトラックとまったく同様に、ファイルフォーマットサンプルのシーケンスとして構造化され得る。そのようなトラックはメタデータトラックと呼ばれることがある。各メタデータサンプルはメタデータステートメントとして構造化され得る。対応するファイルフォーマットサンプルまたはその構成要素サンプルに関して質問され得る様々な質問に対応する、様々な種類のステートメントがある。
【００２７】
メディアがストリーミングプロトコルを通じて配信されるとき、メディアは、それがファイルにおいて表される形から変換される必要があり得る。この一例は、メディアがリアルタイムトランスポートプロトコル（ＲＴＰ）を通じて送信されるときである。ファイルには、たとえば、ビデオの各フレームが、ファイルフォーマットサンプルとして連続して記憶される。ＲＴＰでは、これらのフレームをＲＴＰパケット中に配置するために、使用されるコーデックに固有のパケット化規則が順守されなければならない。ストリーミングサーバは、そのようなパケット化をランタイムに計算するように構成され得る。しかしながら、ストリーミングサーバを支援するためのサポートがある。
【００２８】
本開示の技法は、たとえば、ｄｙｎａｍｉｃ  ａｄａｐｔｉｖｅ  ｓｔｒｅａｍｉｎｇ  ｏｖｅｒ  ＨＴＴＰ（ＤＡＳＨ）に従って、ＨＴＴＰストリーミングなどのネットワークストリーミングプロトコルに適用可能であり得る。ＨＴＴＰストリーミングにおいて、頻繁に使用される動作にはＧＥＴおよびｐａｒｔｉａｌ  ＧＥＴがある。ＧＥＴ動作は、所与のｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ（ＵＲＬ）または他の識別子、たとえばＵＲＩに関連するファイル全体を検索する。ｐａｒｔｉａｌ  ＧＥＴ動作は、入力パラメータとしてバイト範囲を受信し、その受信されたバイト範囲に対応するファイルのある連続する数のバイトを検索する。したがって、ｐａｒｔｉａｌ  ＧＥＴ動作は１つまたは複数の個々のムービーフラグメントを得ることができるので、ムービーフラグメントはＨＴＴＰストリーミングのために与えられ得る。ムービーフラグメント中には、異なるトラックのいくつかのトラックフラグメントがあり得ることに留意されたい。ＨＴＴＰストリーミングでは、メディア表現は、クライアントがアクセス可能であるデータの構造化された集合体であり得る。クライアントは、ユーザにストリーミングサービスを提示するためにメディアデータ情報を要求し、ダウンロードし得る。
【００２９】
ＨＴＴＰストリーミングを使用して３ＧＰＰデータをストリーミングする例では、マルチメディアコンテンツのビデオおよび／またはオーディオデータのための複数の表現があり得る。そのような表現のマニフェストは、Ｍｅｄｉａ  Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｄｅｓｃｒｉｐｔｉｏｎ（ＭＰＤ）データ構造で定義され得る。メディア表現は、ＨＴＴＰストリーミングクライアントデバイスがアクセス可能であるデータの構造化された集合体に対応し得る。ＨＴＴＰストリーミングクライアントデバイスは、クライアントデバイスのユーザにストリーミングサービスを提示するためにメディアデータ情報を要求し、ダウンロードし得る。メディア表現は、ＭＰＤの更新を含み得る、ＭＰＤデータ構造で記述され得る。
【００３０】
マルチメディアコンテンツは、１つまたは複数の期間のシーケンスを含み得る。期間は、ＭＰＤ中のＰｅｒｉｏｄ要素によって定義され得る。各期間はＭＰＤ中に属性ｓｔａｒｔを有し得る。ＭＰＤは、期間ごとにｓｔａｒｔ属性とａｖａｉｌａｂｌｅＳｔａｒｔＴｉｍｅ属性とを含み得る。ライブサービスでは、期間のｓｔａｒｔ属性とＭＰＤ属性ａｖａｉｌａｂｌｅＳｔａｒｔＴｉｍｅとの和が、ＵＴＣ形式での期間の利用可能な時間、特に対応する期間中の各表現の第１のメディアセグメントを規定し得る。オンデマンドサービスでは、第１の期間のｓｔａｒｔ属性は０であり得る。任意の他の期間では、ｓｔａｒｔ属性は、対応する期間の開始時間と第１の期間の開始時間との間の時間オフセットを規定し得る。各期間は、次の期間の開始まで、または最後の期間の場合、メディア提示の終了まで継続し得る。期間開始時間は正確であり得る。それらは、すべての前の期間のメディアを再生することから得られる実際のタイミングを反映し得る。
【００３１】
各期間は、同じメディアコンテンツに対する１つまたは複数の表現を含み得る。表現は、オーディオまたはビデオデータのいくつかの代替的な符号化されたバージョンのうちの１つであり得る。表現は、符号化タイプのような様々な特性によって異なることがあり、たとえば、ビデオデータの場合はビットレート、解像度、および／またはコーデックによって、またオーディオデータの場合はビットレート、言語、および／またはコーデックによって異なることがある。表現という用語は、マルチメディアコンテンツの特定の期間に対応し、特定の方法で符号化された符号化オーディオまたはビデオデータのセクションを指すために使用され得る。
【００３２】
特定の期間の表現はグループに割り当てられてよく、グループはＭＰＤ中のｇｒｏｕｐ属性によって示され得る。同じグループ中の表現は、一般に互いに代替的であると見なされる。たとえば、特定の期間に対するビデオデータの各表現は、それらの表現のいずれかが、対応する期間に対するマルチメディアコンテンツのビデオデータを表示するために復号のために選択され得るように、同じグループに割り当てられ得る。１期間内のメディアコンテンツは、いくつかの例では、存在する場合、グループ０からの１つの表現と、または各々の０ではないグループからの多くとも１つの表現の組合せとのいずれかによって表され得る。期間の各表現に対するタイミングデータは、期間の開始時間に対して表現され得る。
【００３３】
表現は１つまたは複数のセグメントを含み得る。各表現は初期化セグメントを含むことがあり、または表現の各セグメントは自己初期化していることがある。存在するとき、初期化セグメントは、表現にアクセスするための初期化情報を含み得る。一般に、初期化セグメントはメディアデータを含まない。セグメントは、ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ（ＵＲＬ）などの識別子によって一意に参照され得る。ＭＰＤは各セグメントの識別子を与え得る。いくつかの例では、ＭＰＤはまた、ＵＲＬまたはＵＲＩによってアクセス可能なファイル内のセグメントに対するデータに対応し得る、ｒａｎｇｅ属性の形態でバイト範囲を与え得る。
【００３４】
各表現はまた、１つまたは複数のメディアコンポーネントを含んでよく、各メディアコンポーネントは、オーディオ、ビデオ、および／または（たとえば、字幕用の）時限テキストのような、１つの個々のメディアタイプの符号化されたバージョンに対応し得る。メディアコンポーネントは、１つの表現内の連続するメディアセグメントの境界にわたって時間連続的であり得る。
【００３５】
本開示の態様は全般に、最初にマルチメディアコンテンツを検索し、帯域幅適応を実行するときに、ユーザの体験を改善することを対象とする。上で述べられたように、クライアントデバイスは、現在利用可能である帯域幅の量を決定し、クライアントデバイスのコーディングおよびレンダリング能力とともにその利用可能な帯域幅の量と表現のビットレートとに基づいて表現を選択し得る。クライアントデバイスは通常、利用可能な帯域幅によって許容される最高のビットレートを選ぶ。帯域幅条件が変化すると、クライアントは、たとえばビットレートが異なる、異なる表現へと切り替えることによって応答することができる。
【００３６】
従来のビデオストリーミング技法は、ビデオデータが妨害されることなく表示されるように、ビデオデータを表示する前に、クライアントデバイスが受信されたビデオデータをバッファリングすることを必要とし得る。いくつかの例では、ビデオデータをバッファリングするのに必要な時間と、ビデオデータが符号化された方式との間に、トレードオフがあり得る。すなわち、クライアントデバイスは、可変のビットレートを使用して符号化されたビデオデータに対しては、一定のビットレートを使用して符号化されたビデオデータよりも、長いバッファリング期間を必要とし得る。
【００３７】
しかしながら、平均レートが不変であると仮定すると、可変のビットレートを使用して符号化されたビデオデータの知覚される品質は、一定のビットレートを使用して符号化されたビデオデータよりも高いことがある。たとえば、ビデオコーディングでは、ビデオデータのいくつかのフレーム（すなわち、イントラ予測モードで符号化されたフレームまたはＩフレーム）は、ビデオデータの他のフレームを参照することなく独立にコーディングされる。フレーム間の時間的な冗長性を利用するために、他のフレーム（すなわち、ＰおよびＢフレームのようなインター予測モードで符号化されたフレーム）は、以前のコーディングされたフレーム（参照フレームと呼ばれる）に対してコーディングされる。したがって、より一定のレートでコーディングされたビデオデータは、通常、より可変のレートでコーディングされたビデオデータよりも多くのＩフレームを含む。したがって、所与の平均レートに対して、バッファリングに必要な期間と、表示されるビデオデータの知覚される品質との間にトレードオフがあり得る。すなわち、知覚される品質が低い、より一定のビットレートを使用して符号化されたビデオデータよりも高い知覚される品質を示す、可変のビットレートを使用して符号化されたビデオデータに対して、より長いバッファリング時間が必要であり得る。
【００３８】
本開示の技法は、複数の表現を提供することを含み得るが、表現の各々は異なる関連するバッファリング期間を有する。したがって、クライアントデバイスは、適切なビットレートを有する表現とともに、適切なバッファリング時間を有する表現を選び得る。ある例では、クライアントデバイスは、最初に、あるビットレートと比較的短いバッファリング期間（比較的低い品質にもかかわらず）とを有する表現を選択し、その表現のデータをバッファリングし、次いで、ビットレートは同一であるが比較的長いバッファリング期間を有する（たとえば、比較的高い品質を有する）表現へと切り替えることができる。上の例は同一のビットレートを有する２つの表現を含むが、以下でより詳しく説明されるように、他の例では、表現は（異なるバッファリング時間に加えて）異なるビットレートを有し得る。
【００３９】
クライアントデバイスが別の表現に切り替える点は、「切替点」と呼ばれ得る。すなわち、以下でより詳しく説明されるように、クライアントデバイスは、いわゆるキーフレームにおいてある表現に切り替え得る。一般に、キーフレームは、表現中のデータが復号の順序であれば表現のより前のデータにアクセスすることなくクライアントデバイスが表現の復号を開始できる、表現のイントラコーディングされたフレームである。クライアントデバイスは通常キーフレームにおいてある表現へと切り替えるが、クライアントデバイスは、表現中の任意の点においてある表現から切り替わってよい。たとえば、クライアントデバイスがキーフレームにおいて第２の表現に切り替える場合、クライアントデバイスは、第１の表現中の任意の点において、第１の表現から第２の表現へと切り替えることができる。
【００４０】
いくつかの例では、クライアントデバイスは、より長いバッファリング期間とほぼ等しい、またはそれよりも長い、最初の表現からのある量のデータをバッファリングした後で、上記のより長いバッファリング期間を有する表現へと切り替えることができる。本開示のいくつかの態様によれば、クライアントデバイスは、バッファの状態に基づいて、より短いバッファリング期間を有する表現からより長いバッファリング期間を有する表現へといつ切り替えるかを、動的に決定することができる。したがって、より短いバッファリング期間を有する表現からより長いバッファリング期間を有する表現への移行は、ネットワーク条件に依存し得る。すなわち、（たとえば、比較的高いダウンロードデータレートにより）クライアントデバイスのバッファが比較的速く満たされる場合、クライアントデバイスは、クライアントデバイスのバッファが比較的ゆっくり満たされる場合よりも早く、より長いバッファリング期間を有する表現へと切り替えることが可能であり得る。その上、クライアントデバイスは、他のデータが読み出されているときに、バッファからのデータを再生していてよい。したがって、クライアントデバイスは、再生データレートと比較された、ダウンロードデータレートの相対的な速度に基づいて、いつ表現を切り替えるかを決定することができる。
【００４１】
ある例では、サーバは、所与のビットレートにおいて複数の表現を提供することができる。第１の表現は比較的低品質であり得るが、１秒という関連するバッファリング期間を有し得る。第２の表現は比較的高品質であり得るが、１０秒という関連するバッファリング期間を有し得る。最初は、クライアントデバイスは第１の表現を要求し得る。第１の表現のある量のデータ、たとえば（再生時間に関して）１０秒のデータをバッファリングした後で、クライアントデバイスは、より高品質の第２の表現（たとえば、比較的長いバッファリング期間を有する）に切り替えることができる。このようにして、クライアントデバイスは、第１の表現を使用したより高速な再生を提供することができるが、ある量のバッファリングされたデータを得た後で、比較的高品質な表現に切り替えることもできる。安定したネットワーク条件では、説明される例は、変化するバッファリング条件（たとえば、１０秒）にもかかわらず、ストールまたは再バッファを伴わずにコンテンツを表示することができる。
【００４２】
さらに、本開示の技法は、ネットワークストリーミングを介して、ビデオデータの検索し改善するために種々の方法で使用され得る。いくつかの例では、２つ以上の表現は、ビットレートは同一であり得るが、切替点の頻度は異なり得る（この例では表現のターゲットグループと呼ばれる）。クライアントデバイスは、最初に、異なるビットレートで異なる表現のデータを検索することを開始できるが、何らかの時点において、ネットワーク帯域幅の利用可能性が変化したと判定し得る。したがって、クライアントデバイスは、表現のターゲットグループに切り替え、具体的には、より切替点の頻度が高い表現のターゲットグループのうちの１つの表現のデータを検索することができる。この表現の十分な量のデータをバッファリングした後で、クライアントデバイスは、より切替点の頻度が低い表現のターゲットグループのうちの別の１つの表現へと切り替えることができる。たとえば、クライアントデバイスが最初に、１０Ｍｂｐｓというビットレートを有する表現からデータを検索すると仮定する。何らかの時点で、クライアントデバイスは、ネットワーク帯域幅が減少したと判定するので、クライアントデバイスは、より低いビットレート、たとえば５Ｍｂｐｓを有する表現のセットを検索する。具体的には、クライアントデバイスは、表現のセットが、（再生時間に関して）０．５秒ごとに切替点を伴う１つの表現と、５秒ごとに切替点を伴う別の表現とを含むと、特定する。クライアントデバイスは最初、０．５秒ごとに切替点を伴う５Ｍｂｐｓの表現からデータを検索し、（やはり、再生時間に関して）この表現から少なくとも５秒に値するデータをバッファリングすることができる。次いで、クライアントデバイスは、５秒ごとに切替点を伴う５Ｍｂｐｓの表現からデータを検索することを開始することができる。この切替の間、クライアントデバイスは、バッファのアンダーフローを避けつつ、過剰なバッテリー電力と処理能力とを消費し得る、２つのデコーダの同時実行の必要性も避けるために、切替点の頻度が０．５秒である表現からのデータを、十分にバッファリングしていなければならない。クライアントデバイスは、ネットワーク帯域幅が増加したと判定すると、より高いビットレートの表現のセットへと切り替えるように同様に構成され得る。上の例では、クライアントデバイスは、同一のビットレート（たとえば、５Ｍｂｐｓ）を有するが切替点の頻度が異なる表現へと移行する。他の例では、以下でより詳しく説明されるように、クライアントデバイスは、ビットレートが異なり切替点の頻度も異なる表現へと移行し得る。たとえば、クライアントデバイスは、比較的ビットレートは低いが、切替点の頻度が低下したことにより知覚される品質がより高い表現へと、切り替えることができる。いくつかの例では、以下でより詳しく説明されるように、クライアントデバイスはまた、クライアントデバイスのバッファに記憶されているデータの量に基づいて、切り替え先の表現を選択することができる。
【００４３】
図１は、ネットワークを通じてメディアデータをストリーミングするための技法を実装する例示的なシステム１０を示すブロック図である。この例では、システム１０は、コンテンツ作成デバイス２０と、サーバデバイス６０と、クライアントデバイス４０とを含む。クライアントデバイス４０およびサーバデバイス６０は、インターネットを備え得るネットワーク７４によって通信可能に結合される。いくつかの例では、コンテンツ作成デバイス２０およびサーバデバイス６０も、ネットワーク７４または別のネットワークによって結合されるか、あるいは直接通信可能に結合され得る。いくつかの例では、コンテンツ作成デバイス２０およびサーバデバイス６０は同一のデバイスを備え得る。
【００４４】
コンテンツ作成デバイス２０は、図１の例では、オーディオソース２２とビデオソース２４とを備える。オーディオソース２２は、たとえば、オーディオエンコーダ２６によって符号化されるべき、キャプチャされたオーディオデータを表す電気信号を生成するマイクロフォンを備え得る。代替的に、オーディオソース２２は、前に記録されたオーディオデータを記憶する記憶媒体、コンピュータシンセサイザなどのオーディオデータ生成器、またはオーディオデータの任意の他のソースを備え得る。ビデオソース２４は、ビデオエンコーダ２８によって符号化されるべきビデオデータを生成するビデオカメラ、前に記録されたビデオデータで符号化された記憶媒体、コンピュータグラフィックスソースなどのビデオデータ生成ユニット、またはビデオデータの任意の他のソースを備え得る。コンテンツ作成デバイス２０は、必ずしもすべての例においてサーバデバイス６０に通信可能に結合されるとは限らないが、サーバデバイス６０によって読み取られる別個のメディアにマルチメディアコンテンツを記憶し得る。
【００４５】
未加工のオーディオおよびビデオデータは、アナログまたはデジタルデータを備え得る。アナログデータは、オーディオエンコーダ２６および／またはビデオエンコーダ２８によって符号化される前にデジタル化され得る。オーディオソース２２は、通話参加者が話している間、通話参加者からオーディオデータを取得することができ、同時に、ビデオソース２４は、通話参加者のビデオデータを取得することができる。他の例では、オーディオソース２２は、記憶されたオーディオデータを備えるコンピュータ可読記憶媒体を備えてよく、ビデオソース２４は、記憶されたビデオデータを備えるコンピュータ可読記憶媒体を備えてよい。このようにして、本開示で説明される技法は、ライブ、ストリーミング、リアルタイムオーディオおよびビデオデータ、またはアーカイブされた、あらかじめ記録されたオーディオおよびビデオデータに適用され得る。
【００４６】
ビデオフレームに対応するオーディオフレームは、一般に、ビデオフレーム内に含まれているビデオソース２４によってキャプチャされたビデオデータと同時に、オーディオソース２２によってキャプチャされたオーディオデータを含むオーディオフレームである。たとえば、通話参加者が一般に話すことによってオーディオデータを生成する間、オーディオソース２２はオーディオデータをキャプチャし、同時に、すなわちオーディオソース２２がオーディオデータをキャプチャしている間、ビデオソース２４は通話参加者のビデオデータをキャプチャする。したがって、オーディオフレームは、１つまたは複数の特定のビデオフレームに時間的に対応し得る。したがって、ビデオフレームに対応するオーディオフレームは、一般に、オーディオデータとビデオデータとが同時にキャプチャされる状況、およびオーディオフレームとビデオフレームとが、それぞれ、同時にキャプチャされたオーディオデータとビデオデータとを備える状況に対応する。
【００４７】
いくつかの例では、オーディオエンコーダ２６は、符号化されたオーディオフレームのオーディオデータが記録された時間を表す、各々の符号化されたオーディオフレームにおけるタイムスタンプを符号化することができ、同様に、ビデオエンコーダ２８は、符号化されたビデオフレームのビデオデータが記録された時間を表す、各々の符号化されたビデオフレームにおけるタイムスタンプを符号化することができる。そのような例では、ビデオフレームに対応するオーディオフレームは、タイムスタンプを備えるオーディオフレームと、同じタイムスタンプを備えるビデオフレームとを備え得る。コンテンツ作成デバイス２０は、オーディオエンコーダ２６および／またはビデオエンコーダ２８がそこからタイムスタンプを生成し得るか、あるいはオーディオソース２２およびビデオソース２４がオーディオデータとビデオデータとをそれぞれタイムスタンプに関連付けるために使用し得る、内部時計を含み得る。
【００４８】
いくつかの例では、オーディオソース２２は、オーディオデータが記録された時間に対応するデータをオーディオエンコーダ２６に送ることができ、ビデオソース２４は、ビデオデータが記録された時間に対応するデータをビデオエンコーダ２８に送ることができる。いくつかの例では、オーディオエンコーダ２６は、必ずしもオーディオデータが記録された絶対時刻を示すことなく、符号化されたオーディオデータの相対的時間順序を示すために、符号化されたオーディオデータ中のシーケンス識別子を符号化することができ、同様に、ビデオエンコーダ２８も、符号化されたビデオデータの相対的時間順序を示すためにシーケンス識別子を使用することができる。同様に、いくつかの例では、シーケンス識別子は、タイムスタンプと対応付けられるか、または場合によってはタイムスタンプと相関付けられ得る。
【００４９】
オーディオエンコーダ２６は一般に符号化されたオーディオデータのストリームを生成し、ビデオエンコーダ２８は符号化されたビデオデータのストリームを生成する。データの各々の個々のストリームは（オーディオかビデオかにかかわらず）エレメンタリストリームと呼ばれることがある。エレメンタリストリームは、表現のデジタル的にコーディングされた（場合によっては圧縮された）単一のコンポーネントである。たとえば、表現のコーディングされたビデオまたはオーディオ部分はエレメンタリストリームであり得る。エレメンタリストリームは、ビデオファイル内にカプセル化される前に、パケット化されたエレメンタリストリーム（ＰＥＳ：packetized elementary stream）に変換され得る。同じ表現内では、１つのエレメンタリストリームに属するＰＥＳパケットを他のものから区別するためにストリームＩＤが使用され得る。エレメンタリストリームの基本データ単位はパケット化されたエレメンタリストリーム（ＰＥＳ）パケットである。したがって、コーディングされたビデオデータは一般にエレメンタリビデオストリームに対応する。同様に、オーディオデータは１つまたは複数のそれぞれのエレメンタリストリームに対応する。
【００５０】
多くのビデオコーディング規格の場合と同様に、Ｈ．２６４／ＡＶＣは、誤りのないビットストリームのシンタックスと、セマンティクスと、復号プロセスとを定義し、そのいずれかは特定のプロファイルまたはレベルに準拠する。Ｈ．２６４／ＡＶＣはエンコーダを規定しないが、エンコーダは、生成されたビットストリームがデコーダの規格に準拠することを保証することを課される。ビデオコーディング規格の文脈では、「プロファイル」は、アルゴリズム、機能、またはツール、およびそれらに適用される制約のサブセットに対応する。たとえば、Ｈ．２６４規格によって定義される「プロファイル」は、Ｈ．２６４規格によって規定されたビットストリームシンタックス全体のサブセットである。「レベル」は、たとえば、ピクチャの解像度、ビットレート、およびマクロブロック（ＭＢ）処理レートに関連するデコーダメモリおよび計算のような、デコーダリソース消費の制限に対応する。プロファイルはｐｒｏｆｉｌｅ＿ｉｄｃ（プロファイルインジケータ）値でシグナリングされてよく、レベルはｌｅｖｅｌ＿ｉｄｃ（レベルインジケータ）値でシグナリングされてよい。
【００５１】
Ｈ．２６４規格は、たとえば、所与のプロファイルのシンタックスによって課される制限の範囲内で、復号されたピクチャの規定されたサイズのような、ビットストリーム中のシンタックス要素がとる値に応じて、エンコーダおよびデコーダの動作の大きい変動を必要とする可能性が依然としてあることを認める。Ｈ．２６４規格は、多くの適用例において、特定のプロファイル内でシンタックスのすべての仮定的使用を処理することが可能なデコーダを実装することが現実的でもなく、経済的でもないことをさらに認める。したがって、Ｈ．２６４規格は、ビットストリーム中のシンタックス要素の値に課された制約の規定されたセットとして「レベル」を定義する。これらの制約は、値に関する単純な制限であり得る。代替的に、これらの制約は、値の演算の組合せ（たとえば、ピクチャの幅×ピクチャの高さ×毎秒復号されるピクチャの数）に関する制約の形態をとり得る。Ｈ．２６４規格は、個々の実装形態が、サポートされるプロファイルごとに異なるレベルをサポートし得ることをさらに規定する。
【００５２】
プロファイルに準拠するデコーダは、通常、プロファイル中で定義されたすべての機能をサポートする。たとえば、コーディング機能として、Ｂピクチャコーディングは、Ｈ．２６４／ＡＶＣのベースラインプロファイルではサポートされないが、Ｈ．２６４／ＡＶＣの他のプロファイルではサポートされる。レベルに準拠するデコーダは、レベルにおいて定義された制限を超えてリソースを必要としない任意のビットストリームを復号することが可能でなければならない。プロファイルおよびレベルの定義は、解釈を可能にすることに役立ち得る。たとえば、ビデオ送信中に、プロファイル定義とレベル定義のペアが全送信セッションについてネゴシエートされ、同意され得る。より具体的には、Ｈ．２６４／ＡＶＣでは、レベルは、たとえば、処理される必要があるマクロブロックの数に関する制限と、復号されたピクチャバッファ（ＤＰＢ）のサイズと、コーディングされたピクチャバッファ（ＣＰＢ）のサイズと、垂直方向の動きベクトルの範囲と、２つの連続するＭＢごとの動きベクトルの最大数と、Ｂブロックが８×８ピクセル未満のサブマクロブロックパーティションを有することができるかどうかとを定義し得る。このようにして、デコーダは、デコーダがビットストリームを適切に復号することが可能であるかどうかを判定し得る。
【００５３】
ＩＴＵ−Ｔ  Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、ＭＰＥＧ−１、ＭＰＥＧ−２、Ｈ．２６４／ＭＰＥＧ−４  ｐａｒｔ１０、および今度のＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格などのビデオ圧縮規格は、時間冗長性を低減するために動きが補償された時間的予測を利用する。ビデオエンコーダ２８などのエンコーダは、動きベクトルに従って現在のコーディングされたピクチャを予測するために、いくつかの前の（本明細書ではフレームとも呼ぶ）符号化されたピクチャからの、動きが補償された予測を使用し得る。典型的なビデオコーディングには３つの主要なピクチャタイプがある。それらは、イントラコーディングされたピクチャ（「Ｉピクチャ」または「Ｉフレーム」）、予測されたピクチャ（「Ｐピクチャ」または「Ｐフレーム」）、および双方向予測されたピクチャ（「Ｂピクチャ」または「Ｂフレーム」）である。Ｐピクチャは、時間順序で現在のピクチャの前の参照ピクチャのみを使用し得る。Ｂピクチャでは、Ｂピクチャの各ブロックは、１つまたは２つの参照ピクチャから予測され得る。これらの参照ピクチャは、時間順序で現在のピクチャの前または後に位置し得る。
【００５４】
パラメータセットは、一般に、シーケンスパラメータセット（ＳＰＳ）中のシーケンスレイヤヘッダ情報とピクチャパラメータセット（ＰＰＳ）中のまれに変化するピクチャレイヤヘッダ情報とを含む。パラメータセットがある場合、このまれに変化する情報をシーケンスごとまたはピクチャごとに繰り返す必要はなく、したがってコーディング効率が改善され得る。さらに、パラメータセットの使用はヘッダ情報の帯域外送信を可能にし、誤り耐性を達成するための冗長送信の必要を回避し得る。帯域外送信では、パラメータセットＮＡＬユニットが、他のＮＡＬユニットとは異なるチャネル上で送信される。
【００５５】
図１の例では、コンテンツ作成デバイス２０のカプセル化ユニット３０は、ビデオエンコーダ２８からコーディングされたビデオデータを備えるエレメンタリストリームを受信し、オーディオエンコーダ２６からコーディングされたオーディオデータを備えるエレメンタリストリームを受信する。いくつかの例では、ビデオエンコーダ２８およびオーディオエンコーダ２６はそれぞれ、符号化されたデータからＰＥＳパケットを形成するためのパケタイザを含み得る。他の例では、ビデオエンコーダ２８およびオーディオエンコーダ２６はそれぞれ、符号化されたデータからＰＥＳパケットを形成するためのそれぞれのパケタイザとインターフェースをとり得る。さらに他の例では、カプセル化ユニット３０は、符号化されたオーディオデータと符号化されたビデオデータとからＰＥＳパケットを形成するためのパケタイザを含み得る。
【００５６】
ビデオエンコーダ２８は、ピクセル解像度、フレームレート、様々なコーディング規格への準拠、様々なコーディング規格のための様々なプロファイルおよび／またはプロファイルのレベルへの準拠、（たとえば、２次元または３次元再生用の）１つまたは複数のビューを有する表現、あるいは他のそのような特性のような、様々な特性とともに、様々なビットレートで、マルチメディアコンテンツの異なる表現を生成するために、種々の方法でマルチメディアコンテンツのビデオデータを符号化し得る。本開示で使用される場合、表現は、オーディオデータとビデオデータ、たとえば、１つまたは複数のオーディオエレメンタリストリームと１つまたは複数のビデオエレメンタリストリームの組合せを備え得る。各ＰＥＳパケットは、ＰＥＳパケットが属するエレメンタリストリームを識別するｓｔｒｅａｍ＿ｉｄを含み得る。カプセル化ユニット３０は、エレメンタリストリームを様々な表現のビデオファイルへと組み立てることを担う。
【００５７】
カプセル化ユニット３０は、オーディオエンコーダ２６とビデオエンコーダ２８とから表現のエレメンタリストリームのＰＥＳパケットを受信し、ＰＥＳパケットから対応するネットワーク抽象化レイヤ（ＮＡＬ）ユニットを形成する。Ｈ．２６４／ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）の例では、コーディングされたビデオセグメントは、ビデオ電話、ストレージ、ブロードキャスト、またはストリーミングなどの用途に対応する「ネットワークフレンドリーな」ビデオ表現を与えるＮＡＬユニットに編成される。ＮＡＬユニットは、Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｌａｙｅｒ（ＶＣＬ）ＮＡＬユニットと非ＶＣＬ  ＮＡＬユニットとに分類され得る。ＶＣＬユニットは、コア圧縮エンジンを含むことがあり、ブロック、マクロブロック、および／またはスライスレベルのデータを含み得る。他のＮＡＬユニットは非ＶＣＬ  ＮＡＬユニットであり得る。いくつかの例では、通常は主要なコーディングされたピクチャとして提示される、１つの時間インスタンス中のコーディングされたピクチャは、１つまたは複数のＮＡＬユニットを含み得るアクセスユニット中に含まれ得る。
【００５８】
非ＶＣＬ  ＮＡＬユニットは、とりわけ、パラメータセットＮＡＬユニットとＳＥＩ  ＮＡＬユニットとを含み得る。パラメータセットは、（シーケンスパラメータセット（ＳＰＳ）中の）シーケンスレベルヘッダ情報と、（ピクチャパラメータセット（ＰＰＳ）中の）まれに変化するピクチャレベルヘッダ情報とを含み得る。パラメータセット（たとえば、ＰＰＳおよびＳＰＳ）がある場合、まれに変化する情報がシーケンスごとまたはピクチャごとに繰り返される必要はなく、したがって、コーディング効率が改善され得る。さらに、パラメータセットの使用は重要なヘッダ情報の帯域外送信を可能にし、誤り耐性のための冗長送信の必要を回避し得る。帯域外送信の例では、ＳＥＩ  ＮＡＬユニットのような、他のＮＡＬユニットとは異なるチャネル上でパラメータセットＮＡＬユニットが送信され得る。
【００５９】
補足エンハンスメント情報（ＳＥＩ）は、ＶＣＬ  ＮＡＬユニットからのコーディングされたピクチャサンプルを復号するためには必要でないが、復号、表示、誤り耐性、および他の目的に関係するプロセスを支援し得る情報を含み得る。ＳＥＩメッセージは、非ＶＣＬ  ＮＡＬユニット中に含まれていることがある。ＳＥＩメッセージは、一部の標準的な規格の規範的部分であり、したがって、常に規格に準拠するデコーダ実装のために必須であるとは限らない。ＳＥＩメッセージは、シーケンスレベルのＳＥＩメッセージまたはピクチャレベルのＳＥＩメッセージであり得る。ＳＶＣの例ではスケーラビリティ情報ＳＥＩメッセージ、ＭＶＣではビュースケーラビリティ情報ＳＥＩメッセージなどのＳＥＩメッセージ内に、何らかのシーケンスレベル情報が含まれていることがある。これらの例示的なＳＥＩメッセージは、たとえば、動作点の抽出およびそれらの動作点の特性に関する情報を搬送し得る。加えて、カプセル化ユニット３０は、表現の特性を記述するｍｅｄｉａ  ｐｒｅｓｅｎｔａｔｉｏｎ  ｄｅｓｃｒｉｐｔｉｏｎ（ＭＰＤ）のような、マニフェストファイルを形成し得る。カプセル化ユニット３０は、拡張可能マークアップ言語（ＸＭＬ）に従ってＭＰＤをフォーマットし得る。
【００６０】
カプセル化ユニット３０は、マニフェストファイル（たとえば、ＭＰＤ）とともに、マルチメディアコンテンツの１つまたは複数の表現に対するデータを出力インターフェース３２に与え得る。出力インターフェース３２は、ユニバーサルシリアルバス（ＵＳＢ）インターフェース、ＣＤまたはＤＶＤライターまたはバーナーのような、記憶媒体に書き込むためのネットワークインターフェースまたはインターフェース、磁気またはフラッシュ記憶媒体へのインターフェース、あるいはメディアデータを記憶または送信するための他のインターフェースを備え得る。カプセル化ユニット３０は、マルチメディアコンテンツの表現の各々のデータを出力インターフェース３２に与えることができ、出力インターフェース３２は、ネットワーク送信または記憶媒体を介してそのデータをサーバデバイス６０に送ることができる。図１の例では、サーバデバイス６０は、様々なマルチメディアコンテンツ６４を記憶する記憶媒体６２を含み、各マルチメディアコンテンツ６４は、それぞれのマニフェストファイル６６と１つまたは複数の表現６８Ａ〜６８Ｎ（表現６８）とを含む。本開示の技法によれば、マニフェストファイル６６の部分は、別々の位置に記憶されてよく、たとえば、記憶媒体６２、または場合によってはプロキシデバイスのようなネットワーク７４の別のデバイスの別の記憶媒体の位置に記憶され得る。
【００６１】
いくつかの例では、表現６８は複数の適応セットへと分けられ得る。いくつかの例では、適応セットは「表現グループ」とも呼ばれ得る。すなわち、表現６８の様々なサブセットは、コーデック、プロファイルおよびレベル、解像度、ビューの数、セグメントのファイルフォーマット、表現によって表示されるべきテキストおよび／または復号され、たとえばスピーカーによって提示されるべきオーディオデータの言語または他の特性を識別し得るテキストタイプ情報、適応セット中の表現に対するシーンのカメラアングルまたは現実世界のカメラ視点を記述し得るカメラアングル情報、特定の視聴者のコンテンツ適合性を記述するレーティング情報などのような、特性のそれぞれの共通のセットを含み得る。
【００６２】
マニフェストファイル６６は、特定の適応セットに対応する表現６８のサブセットを示すデータ、ならびに適応セットについての共通の特性を含み得る。マニフェストファイル６６はまた、ビットレートのような、適応セットの個々の表現に対する個々の特性を表すデータを含み得る。このようにして、適応セットは、簡略化されたネットワーク帯域幅適応を可能にし得る。適応セット中の表現は、マニフェストファイル６６の適応セット要素の子要素を使用して示され得る。
【００６３】
サーバデバイス６０は、要求処理ユニット７０とネットワークインターフェース７２とを含む。いくつかの例では、サーバデバイス６０は複数のネットワークインターフェースを含み得る。さらに、サーバデバイス６０の機能のうちのいずれかまたはすべてが、ルータ、ブリッジ、プロキシデバイス、スイッチ、または他のデバイスのような、コンテンツ配信ネットワークの他のデバイス上で実装され得る。いくつかの例では、コンテンツ配信ネットワークの中間デバイスは、マルチメディアコンテンツ６４のデータをキャッシュし、サーバデバイス６０のコンポーネントに実質的に準拠するコンポーネントを含み得る。一般に、ネットワークインターフェース７２は、ネットワーク７４を介してデータを送信および受信するように構成される。
【００６４】
要求処理ユニット７０は、クライアントデバイス４０などのクライアントデバイスから、記憶媒体７２のデータに対するネットワーク要求を受信するように構成される。たとえば、要求処理ユニット７０は、Ｒ．Ｆｉｅｌｄｉｎｇらによる、ＲＦＣ２６１６、「Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ−ＨＴＴＰ／１．１」、Ｎｅｔｗｏｒｋ  Ｗｏｒｋｉｎｇ  Ｇｒｏｕｐ、ＩＥＴＦ、１９９９年６月に記載されている、ハイパーテキスト転送プロトコル（ＨＴＴＰ）バージョン１．１を実装し得る。すなわち、要求処理ユニット７０は、ＨＴＴＰ  ＧＥＴ要求またはｐａｒｔｉａｌ  ＧＥＴ要求を受信し、これらの要求に応答してマルチメディアコンテンツ６４のデータを与えるように構成され得る。要求は、たとえば、セグメントのＵＲＬを使用して、表現６８のうちの１つのセグメントを指定し得る。いくつかの例では、要求はまた、セグメントの１つまたは複数のバイト範囲を指定し、したがってｐａｒｔｉａｌ  ＧＥＴ要求を備え得る。要求処理ユニット７０はさらに、表現６８のうちの１つのセグメントのヘッダデータを与えるためのＨＴＴＰ  ＨＥＡＤ要求に対応するように構成され得る。いずれの場合も、要求処理ユニット７０は、要求されたデータをクライアントデバイス４０などの要求元デバイスに与えるための要求を処理するように構成され得る。
【００６５】
図１の例に示されるように、マルチメディアコンテンツ６４は、ｍｅｄｉａ  ｐｒｅｓｅｎｔａｔｉｏｎ  ｄｅｓｃｒｉｐｔｉｏｎ（ＭＰＤ）に対応し得る、マニフェストファイル６６を含む。マニフェストファイル６６は、異なる代替表現６８（たとえば、異なる品質をもつビデオサービス）の記述を含んでよく、その記述は、たとえば、表現６８のコーデック情報、プロファイル値、レベル値、ビットレート、および他の記述特性を含んでよい。クライアントデバイス４０は、どのように表現６８のセグメントにアクセスすべきかを決定するためにメディアプレゼンテーションのＭＰＤを検索し得る。
【００６６】
特に、ウェブアプリケーション５２は、ビデオデコーダ４８の復号能力とビデオ出力４４のレンダリング能力とを判定するために、クライアントデバイス４０の構成データ（図示せず）を検索し得る。構成データはまた、クライアントデバイス４０のユーザによって選択された言語の選好、クライアントデバイス４０のユーザによって設定された深度の選好に対応する１つまたは複数のカメラ視点、および／またはクライアントデバイス４０のユーザによって選択されたレーティングの選好のうちのいずれかまたはすべてを含み得る。ウェブアプリケーション５２は、たとえば、ＨＴＴＰ  ＧＥＴ要求およびｐａｒｔｉａｌ  ＧＥＴ要求を出すように構成されたウェブブラウザまたはメディアクライアントを備え得る。ウェブアプリケーション５２は、クライアントデバイス４０の１つまたは複数のプロセッサまたは処理ユニット（図示せず）によって実行されるソフトウェア命令に対応し得る。いくつかの例では、ウェブアプリケーション５２に関して説明される機能のすべてまたは部分が、ハードウェア、あるいはハードウェア、ソフトウェア、および／またはファームウェアの組合せで実装されてよく、ソフトウェアまたはファームウェアの命令を実行するために必須のハードウェアが設けられてよい。
【００６７】
ウェブアプリケーション５２は、クライアントデバイス４０の復号能力およびレンダリング能力を、マニフェストファイル６６の情報によって示される表現６８の特性と比較し得る。ウェブアプリケーション５２は、最初に、表現６８の特性を決定するためにマニフェストファイル６６の少なくとも一部分を検索し得る。たとえば、ウェブアプリケーション５２は、本開示の技法に従って、１つまたは複数の適応セットの特性を記述するマニフェストファイル６６の部分を要求し得る。ウェブアプリケーション５２は、クライアントデバイス４０のコーディング能力およびレンダリング能力によって満たされ得る特性を有する表現６８のサブセット（たとえば、適応セット）を選択し得る。ウェブアプリケーション５２は、次いで、適応セット中の表現のビットレートを決定し、ネットワーク帯域幅の現在利用可能な量を決定し、ネットワーク帯域幅によって満たされ得るビットレートを有する表現のうちの１つからセグメントを検索し得る。
【００６８】
一般に、よりビットレートが高い表現はより高品質のビデオ再生をもたらし得るが、利用可能なネットワーク帯域幅が減少したとき、よりビットレートが低い表現は十分な品質のビデオ再生を実現し得る。したがって、利用可能なネットワーク帯域幅が比較的高いとき、ウェブアプリケーション５２は比較的ビットレートが高い表現からデータを検索し得るが、利用可能なネットワーク帯域幅が低いとき、ウェブアプリケーション５２は比較的ビットレートが低い表現からデータを検索し得る。このようにして、クライアントデバイス４０は、ネットワーク７４上でマルチメディアデータをストリーミングしながら、ネットワーク７４の利用可能なネットワーク帯域幅の変化にも適応し得る。
【００６９】
上で述べられたように、本開示の態様は全般に、最初にマルチメディアコンテンツを検索し、帯域幅適応を実行するときに、ユーザの体験を改善することを対象とする。いくつかの例では、クライアントデバイス４０のようなクライアントデバイスは、最初に、あるビットレートと比較的短いバッファリング期間（たとえば、比較的低い品質にもかかわらず）とを有する表現６８を選択し、その表現のデータをバッファリングし、次いで、ビットレートは同一であるが比較的長いバッファリング期間を有する（たとえば、比較的高い品質を有する）表現へと切り替えることができる。表現の切替は、本明細書ではクライアントデバイス４０によって実行されるものとして説明され得るが、ウェブアプリケーション５２のような、クライアントデバイス４０によって実行されているアプリケーションも、そのような判定を行うことができることを理解されたい。
【００７０】
クライアントデバイス４０は、キーフレームにおいて表現６８を切り替えることができる。たとえば、キーフレームは、クライアントデバイスが、表現６８のより前のデータにアクセスすることなく表現６８の復号を開始できる、表現６８のフレームである。したがって、キーフレームはＩフレームとして符号化される。クライアントデバイス４０は、切り替え先の表現６８のキーフレームの時間的位置までデータを検索し、切り替え先の表現６８のキーフレームにおいて開始するデータを検索することによって、ある表現６８から別の表現６８に切り替えることができる。したがって、キーフレームは、表現の切替点、または単に切替点と呼ばれ得る。
【００７１】
上で述べられたように、クライアントデバイス４０は、キーフレームにおいて表現６８から切り替える必要はない。たとえば、ある例では、クライアントデバイスは、表現６８の切替点と切替点の間で表現６８から切り替えることができる。そのような例では、クライアントデバイス４０は、必要な分よりも多くの表現６８を検索し得る。すなわち、クライアントデバイス４０は、切替点まで表現６８からデータを検索するが、切替点に達する前に別の表現に切り替えることができる。そのような例では、クライアントデバイス４０は、切り替え元の表現から読み出された余剰のデータを再生しなくてよく、このデータはオーバーラップと呼ばれ得る。
【００７２】
代替として、オーバーラップを減らすために、クライアントデバイス４０は、クライアントデバイス４０の切り替え先の表現の再生が開始する時間までの再生を可能にする点までのみ、表現６８からデータを検索することができる。したがって、クライアントデバイス４０は、表現６８から別の表現へのシームレスな切替を可能にするために、表現６８の中の次の切替点までのすべてのデータをダウンロードしなくてよい。たとえば、表現６８の中のフレームのシーケンスがＩＰＢＢＰＢＢＰＢＢＰＢＢＢＢＩであり、これらのフレームがＩＢＢＰＢＢＰＢＢＰＢＢＰＢＢＩという順序で再生されることになると仮定する。この例では、フレーム１および１６に切替点がある。表現へと切り替えるための切替点は、再生されるべき表現６８の１０番目のフレームの提示時間にある、すなわち、この再生シーケンス中の３番目のＰフレームが再生されることになり、したがってこの３番目のＰフレームおよびすべての後続のフレームは再生されないことになると、さらに仮定する。そうすると、クライアントデバイス４０は、表現６８からＩＰＢＢＰＢＢＰＢＢをダウンロードすることができ、したがって、表現６８からＩＢＢＰＢＢＰＢＢＰを再生することが可能であり得る。しかしながら、表現６８から切り替え先の表現へのシームレスな切り替えにおいて、再生順序の中のこれらの１０個のフレームの最初の９個のみが実際に再生される。この例では、再生されない表現６８からダウンロードされたデータ、すなわちオーバーラップ中のデータは３番目のＰフレームであり、したがって、クライアントデバイス４０は、シームレスな切り替えを可能にするために、表現６８の中のフレーム１６にある次の切替点の直前の５個のフレームをダウンロードする必要はない。
【００７３】
一般に、所与の表現６８の中の切替点の数は、表現６８のバッファリング期間と反比例の関係を有し得る。すなわち、比較的少数の切替点を有する表現６８は、長いバッファリング期間を有し得る。逆に、比較的多数の切替点を有する表現６８は、比較的短いバッファリング期間を有し得る。
【００７４】
切替点が多いと、クライアントデバイス４０は表現６８をより頻繁に切り替えることが可能になるが、キーフレームは、ＰフレームまたはＢフレームほどは冗長性を利用しないので、通常は、ＰフレームまたはＢフレームよりも多くのコーディングビットを使用する。しかしながら、切替点が表現６８においてあまり頻繁に設けられない場合、表現６８の復号を試みるクライアントデバイス４０は、次のキーフレームを受信するまで長期間待機する必要があることがあり、これは、（たとえば、最初または表示６８の切り替えの後に、表示６８の再生の開始が遅延することにより）ユーザ体験を劣化させ得る。したがって、マルチメディアコンテンツの表示６８に、切替点をどの程度頻繁に含めるかに関して、戦略的な決定が通常は行われる。
【００７５】
切替点の位置を表す際の「頻度」という用語は、切替点の間の間隔を指し、これは、表現６８の中の切替点の間の時間的な距離を表し得る。頻度は比較的安定していてよいが、いくつかの例では、切替点の間の時間的な距離は、ある差を伴って、切替点の間で変動し得る。
【００７６】
いくつかの例では、本開示の技法は、マルチメディアコンテンツの様々な表現６８の切替点の間の距離を示す情報を、サーバデバイス６０からクライアントデバイス４０に提供することに関わる。たとえば、図２に関して以下でさらに詳しく説明されるように、サーバデバイス６０は、マニフェストファイル／ＭＰＤ内の各表現に対する切替点の間隔（たとえば、表現内の切替点の頻度）を示す情報を、クライアントデバイス４０に提供することができる。クライアントデバイス４０は、この情報を使用して、比較的頻繁な切替点（知覚される品質が比較的低いにもかかわらず）を有する表現６８を最初に選択し、その表現６８のデータをバッファリングし、次いで、より高品質の表現６８の今後の切替点において、比較的高い品質を有する表現６８へと切り替えることができる。
【００７７】
いくつかの例では、サーバデバイス６０は、表現６８のグループに同一のビットレートを割り当てることができるが、グループ中の表現６８に異なる切替点の頻度を割り当てることができる。比較的多くのビットが切替点を符号化するために使用される（切替点がＩフレームとしてコーディングされていることにより）ので、より切替点の頻度が高い表現６８は、比較的品質が低い傾向があり、しかし、クライアントデバイスが平均的な場合においてより早く再生を開始できるようにする。したがって、表現６８の切替点の間の距離を示す情報を使用して、クライアントデバイス４０は最初に、比較的切替点の頻繁が高い表現６８からデータを検索しバッファリングすることができる。再生の空白を避けるために最初の表現から十分なデータをバッファリングした後で、クライアントデバイス４０は、切替点をあまり頻繁に有さないが比較的高品質である異なる表現６８の切替点において開始する、データの要求とバッファリングとを始めることができる。
【００７８】
上の例は同じビットレートを有する表現６８のグループを説明するが、これらの技法はまた、異なるビットレートを有する表現６８のグループに適用され得る。たとえば、クライアントデバイス４０は、１秒ごとに切替点を伴い、たとえば５００ｋｂｐｓの初期ビットレートを有する表現６８のデータの要求とバッファリングとを始めることができる。再生の空白を避けるために最初の表現から十分なデータをバッファリングした後で、クライアントデバイス４０は、初期ビットレートよりも比較的ビットレートが低いが知覚される品質が同一かより高い（たとえば、切替点の頻度の減少により）、たとえば、５秒ごとに切替点を伴う４００ｋｂｐｓの表現６８へと切り替えることができる。
【００７９】
ある例では、再生の始動の間（または探索の後）、クライアントデバイス４０は、比較的切替点の頻度が高い、たとえば、１秒ごとに切替点を伴う５００ｋｂｐｓの初期表現６８を選択することができる。初期表現６８の少なくとも一部をバッファリングした後、クライアントデバイス４０は、より効率的にコーディングされる、より切替点の頻度が低い表現６８、たとえば、３秒ごとに切替点を伴う４５０ｋｂｐｓの表現６８へと移行することができる（知覚される品質の向上をもたらし得る）。
【００８０】
いくつかの例では、クライアントデバイス４０は、バッファリングされたデータの量に基づいて、表現６８を選択することができる。たとえば、一般に、クライアントデバイス４０のバッファがほとんど空である場合、クライアントデバイス４０は、比較的切替点の頻度が高い表現６８へと切り替えて、表現６８へのシームレスな移行を可能にし得る。すなわち、クライアントデバイス４０は、再生の妨害（たとえば、再バッファ）を避けるために、クライアントデバイス４０のバッファが空になると、表現６８を切り替えるための機会が比較的増えることを必要とし得る。対照的に、バッファが少なくとも部分的に満たされた後、クライアントデバイス４０は、より効率的にコーディングされ比較的少数の切替点を有する表現６８へと移行することができる（これは、知覚される品質の向上をもたらし得る）。
【００８１】
さらに、バッファがより満たされており、ストールまたは再バッファの発生のリスクが低いので、表現６８への移行のビットレートはより高いビットレートであってよく、これは、（より切替点が少ないことによる）より効率的なビデオ符号化およびより高いビットレートによって、再生品質の向上を可能にする。すなわち、クライアントデバイス４０は、バッファが比較的満たされている場合、満たされているバッファは再生の妨害のリスクを下げるので、表現６８を切り替える機会がより少なくてよい。
【００８２】
したがって、切替点の頻度が低い表現６８を選択すると、選ばれた表現はビットレートがより低く品質は同じであるか良好であり得るので、再生に必要なデータの量が減り、高品質な再生が維持される。選ばれた表現はまた、さらに良好な品質を伴う、同一のまたはより高いビットレートであり得るので、より高品質の再生体験をもたらす。したがって、クライアントデバイス４０は、切替点の頻度が低い表現６８を検索する余裕があり、したがって、同一のまたはより低いビットコストでより良好な知覚される品質を有するコンテンツを、またはより高いビットコストでさらに良好な品質を有するコンテンツを検索するが、すべての場合において、再生のストールまたは再バッファの発生を引き起こす確率は最小限である。
【００８３】
しかしながら、いくつかの例では、クライアントデバイス４０に対して利用可能な帯域幅の量は、かなり増加することがある。そのような例では、クライアントデバイス４０は、比較的切替点の頻度が高くよりビットレートの高い表現６８の検索し開始することができる。切替点の高い頻度は、よりビットレートの高い表現へ切り替える機会を増大させ得るので、クライアントデバイス４０は、増大した帯域幅を利用して、ユーザの体験をより早く改善することが可能になる。
【００８４】
いくつかの態様によれば、適応セットの表現６８は、各々の連続するビットレート表現に対して、比較的切替点の頻度が高い表現６８と、比較的切替点の頻度が低い表現６８とを、交互に切り替えることができる。たとえば、１秒、３秒、１秒、３秒、１秒、および３秒というそれぞれの切替点の頻度を伴う、３００ｋｂｐｓ、５００ｋｂｐｓ、８００ｋｂｐｓ、１３００ｋｂｐｓ、２１００ｋｂｐ、および３４００ｋｂｐｓにおける表現があり得る。そのような例では、クライアントデバイス４０は、利用可能な帯域幅（たとえば、ダウンロード速度）とクライアントデバイス４０のバッファの状態（たとえば、バッファが比較的満たされているか空か）との両方の変化に基づいて、適応セットから表現６８を選択することができる。たとえば、バッファが比較的空に近く、かつ／または利用可能な帯域幅の量が大きく減った場合、クライアントデバイス４０は、比較的切替点の頻度が高く比較的ビットレートが低い表現を選ぶことができる。
【００８５】
しかしながら、バッファがほぼ満たされている場合、かつ／または、利用可能な帯域幅の減少がさほど大きくない場合、クライアントデバイス４０は、比較的切替点の頻度が低くよりビットレートが低い表現を選ぶことができる。適応セットの表現に低頻度の切替点と高頻度の切替点の混合物を与えるというこの選択肢は、いくつかの場合には、ビデオ符号化の効率（より頻度の低い切替点）とネットワーク条件の変化に対する応答時間（より頻度の高い切替点）との良好なバランスを実現し得る。
【００８６】
別の例では、本開示の態様によれば、比較的ビットレートが低い表現６８は比較的切替点の頻度が高くてよいが、比較的ビットレートが高い表現は切替点の頻度が低くてよい。たとえば、１秒、１秒、１秒、３秒、３秒、および３秒というそれぞれの切替点の頻度を伴う、３００ｋｂｐｓ、５００ｋｂｐｓ、８００ｋｂｐｓ、１３００ｋｂｐｓ、２１００ｋｂｐ、および３４００ｋｂｐｓにおける表現があり得る。この例では、クライアントデバイス４０は、始動時に対しては低ビットレートの（帯域幅条件に基づいて可能なレートよりも低い）表現６８を選択し、たとえばバッファが満たされた後、よりビットレートの高い表現６８へと迅速に移ることができる。クライアントデバイス４０は、よりビットレートの高い表現６８を検索するのを続けて、高品質の再生を達成しつつ、バッファが比較的満たされている限りストールまたは再バッファのリスクを改善することができる。適応セットの表現に、より低いビットレートに対するより頻度の低い切替点とより高い切替点に対するより頻度の高い切替点とを与えるというこの選択肢は、ネットワーク条件の高速な悪化に反応するための適切な戦略によって（より低いビットレートの表現に対するより頻繁な切替点は、条件が悪化したときに迅速により低いビットレートの表現へと切り替えることを可能にする）、バッファが比較的満たされているとき（これは、ネットワーク条件が通常良好であれば大半の時間であり得る）の高品質のビデオ符号化の効率性をもたらし得る。
【００８７】
クライアントデバイス４０は、クライアントデバイス４０のバッファがさほど満たされていない場合、利用可能なダウンロードレートをかなり下回るビットレートを有する表現６８を選択することができ、これによって、ストールまたは再バッファの可能性を減らす。バッファが満たされると、クライアントデバイス４０は、ダウンロードレートに近いビットレートを有する表現６８の検索しを開始することができる。したがって、クライアントデバイス４０は、ビットレートがより高く、切替点がより少なく、ストールまたは再バッファの確率が低い表現を選択することができ、それは、ダウンロードレートが低下すると、クライアントデバイス４０は、（バッファ中のデータの量が原因で）よりビットレートの低い表現６８へと切り替える機会を十分有するからである。加えて、ダウンロードレートが低下し、クライアントデバイス４０がよりビットレートの低い表現６８に切り替えると、よりビットレートの低い表現６８は、切替点もより頻繁に有する。したがって、クライアントデバイス４０は比較的迅速によりビットレートの低い表現６８に切り替えることができ、これはさらに、ダウンロードレートが下がったときの、ストールまたは再バッファに対する保護を提供する。
【００８８】
代替的な例では、本開示の態様によれば、比較的ビットレートが低い表現６８は比較的切替点の頻度が低くてよいが、比較的ビットレートが高い表現は切替点の頻度がより高くてよい。この例では、比較的低いビットレートでコーディングされる表現６８は、より切替点の頻度が高くより高いビットレートでコーディングされた表現６８よりも、品質が劣り得る。したがって、クライアントデバイス４０は最初に、比較的ビットレートが低い表現６８を選択することができるが、バッファが早く満たされると、（より低いビットレートの表現に対する切替点とは一致しないことがある、より高いビットレートの表現６８の切替点において）よりビットレートが高い表現６８へと切り替えることができる。
【００８９】
いくつかの例では、表現６８のビットレートおよび利用可能な帯域幅の量に基づいて表現を最初に選択するのではなく、選択された表現６８のビットレートが現在利用可能な帯域幅を超えない限り、クライアントデバイス４０は、切替点の頻度に基づいて表現６８を最初に選択するように構成され得る。最初に選択された表現６８の十分なデータをバッファリングした後で、クライアントデバイス４０は、最初に選択された表現６８よりも切替点の頻度が低くてよい、より高いビットレートの表現６８からのデータを要求することを開始できる。
【００９０】
特定の例では、サーバデバイス６０は、切替点の間の比較的長い期間（たとえば、１０秒の再生時間）を伴う、マルチメディアコンテンツの表現６８をブロードキャストすることができる。クライアントデバイス４０は、比較的切替点の頻度が高いマルチメディアコンテンツの異なる表現６８のユニキャストを最初に要求し、次いで、ユニキャストされた表現６８の十分なデータをバッファリングした後で、ブロードキャストへと切り替えるように構成され得る。同様に、ブロードキャストの受信が妨害されると、クライアントデバイス４０は、ユニキャストを使用して他の表現の検索を再び開始し、ユニキャストされた表現６８の十分な量のデータをバッファリングした後で、ブロードキャストに戻ることができる。
【００９１】
別の例では、２つ以上の表現は、同一のビットレートを有し得るが異なる切替点の頻度を有し得る（この例では、適応セットに含まれ得る、表現のターゲットグループと呼ばれる）。クライアントデバイス４０は、最初に、あるビットレートである表現のデータを検索することを開始できるが、何らかの時点において、ネットワーク帯域幅の利用可能性が変化したと判定し得る。したがって、クライアントデバイス４０は、表現のターゲットグループ（たとえば、同一の、またはほぼ同一のビットレートを有するが、切替点の間の異なる時間間隔を有する、表現の適応セット）へと切り替え、具体的には、より切替点の頻度が高い表現のターゲットグループのうちの１つのデータを検索することができる。この表現の十分な量のデータをバッファリングした後で、クライアントデバイス４０は、より切替点の頻度が低い表現のターゲットグループのうちの別の１つの表現へと切り替えることができる。
【００９２】
たとえば、クライアントデバイス４０が最初に、１０Ｍｂｐｓというビットレートを有する表現からデータを検索すると仮定する。何らかの時点で、クライアントデバイス４０は、ネットワーク帯域幅が減少したと判定するので、クライアントデバイス４０は、より低いビットレート、たとえば５Ｍｂｐｓを有する表現のセット（たとえば、適応セット）を決定する。具体的には、クライアントデバイス４０は、表現のセットが、（再生時間に関して）０．５秒ごとに切替点を伴う１つの表現と、５秒ごとに切替点を伴う別の表現とを含むと、判定することができる。クライアントデバイス４０は最初、０．５秒ごとに切替点を伴う５Ｍｂｐｓの表現からデータを検索し、（やはり、再生時間に関して）この表現から少なくとも５秒に値するデータをバッファリングすることができる。次いで、クライアントデバイス４０は、５秒ごとに切替点を伴う５Ｍｂｐｓの表現からデータを検索することを開始することができる。この切替の間、クライアントデバイス４０は、バッファのアンダーフローを避けつつ、過剰なバッテリー電力と処理能力とを消費し得る２つのデコーダの同時実行の必要性を避けるために、切替点の頻度が０．５秒である表現からのデータを、十分にバッファリングしていなければならない。クライアントデバイス４０は、ネットワーク帯域幅が増えたと判定すると、より高いビットレートの表現のセットへと切り替えるように同様に構成され得る。
【００９３】
サーバデバイス６０は、表現６８にわたり切替点を時間的に揃えるように構成され得る。すなわち、異なる頻度の切替点を有する２つの表現６８に対して、切替点の頻度が低い表現６８の切替点は、切替点の頻度が高い表現６８の切替点と同一の時間的位置（再生中の）において発生する。このようにして、クライアントデバイスは、切替点の頻度がより高い表現６８のセグメントの全体のデータをバッファリングし、そのセグメントの後で、切替点の頻度がより低い表現６８へと切り替えるように構成され得る。したがって、クライアントデバイス４０は、表現６８を切り替えるとき、異なる表現６８からの重複するデータを検索し復号することを避けることができる。しかしながら、上で述べられたように、クライアントデバイス４０は、切替点において特定の表現６８から切り替える必要はない。加えて、切替点の時間的な整列は重複するデータの検索しを避けるのを助けることができ、切替点は、本開示の技法を実行するために時間的に揃えられる必要はない。
【００９４】
いくつかの例では、クライアントデバイス４０は、クライアントデバイス４０がそこからマルチメディアコンテンツ６４に対するデータを要求した、特定の表現６８を示すデータ構造を保持し得る。クライアントデバイス４０はまた、正確に何がいつ再生されたのかの指示を保持し得る。すなわち、データ構造は、実際の時間（または「実時間（wall clock）」）と提示時間の両方で開始時間および終了時間を表す情報を提供し得る。データ構造はさらに、最初の開始時間と再生の開始とを表す情報を提供し得る。マルチメディアコンテンツ６４の再生を終えた後に、クライアントデバイス４０は、データ構造をサーバデバイス６０および／またはコンテンツ作成デバイス２０に送り得る。サーバデバイス６０および／またはコンテンツ作成デバイス２０は、クライアントデバイス４０から受信された情報を使用して、再生の中断を低減することなどのために、体験の品質を改善するより最適な方法を決定し得る。
【００９５】
ネットワークインターフェース５４は、選択された表現のセグメントのデータを受信し、ウェブアプリケーション５２に与えることができ、ウェブアプリケーション５２は、今度は、そのセグメントをカプセル化解除ユニット５０に与えることができる。カプセル化解除ユニット５０は、ビデオファイルの要素を構成ＰＥＳストリームへとカプセル化解除し、ＰＥＳストリームをパケット化解除して符号化されたデータを検索し、たとえば、ストリームのＰＥＳパケットヘッダによって示される、符号化されたデータがオーディオストリームの一部であるかビデオストリームの一部であるかに応じて、符号化されたデータをオーディオデコーダ４６またはビデオデコーダ４８のいずれかに送り得る。オーディオデコーダ４６は、符号化されたオーディオデータを復号し、復号されたオーディオデータをオーディオ出力４２に送り、ビデオデコーダ４８は、符号化されたビデオデータを復号し、ストリームの複数のビューを含み得る復号されたビデオデータをビデオ出力４４に送る。
【００９６】
ビデオエンコーダ２８、ビデオデコーダ４８、オーディオエンコーダ２６、オーディオデコーダ４６、カプセル化ユニット３０、ウェブアプリケーション５２、およびカプセル化解除ユニット５０はそれぞれ、適宜、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適な処理回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２８およびビデオデコーダ４８の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれてよく、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合されてよい。同様に、オーディオエンコーダ２６およびオーディオデコーダ４６の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれてよく、そのいずれも複合コーデックの一部として統合されてよい。ビデオエンコーダ２８、ビデオデコーダ４８、オーディオエンコーダオーディオエンコーダ２６、オーディオデコーダ４６、カプセル化ユニット３０、ウェブアプリケーション５２、および／またはカプセル化解除ユニット５０を含む装置は、集積回路、マイクロプロセッサ、および／またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【００９７】
図２は、例示的なマルチメディアコンテンツ１００の要素を示す概念図である。マルチメディアコンテンツ１００は、マルチメディアコンテンツ６４（図１）、またはメモリ６２に記憶された別のマルチメディアコンテンツに対応し得る。図２の例では、マルチメディアコンテンツ１００は、ｍｅｄｉａ  ｐｒｅｓｅｎｔａｔｉｏｎ  ｄｅｓｃｒｉｐｔｉｏｎ（ＭＰＤ）１０２と、複数の表現１１０〜１２０とを含む。表現１１０は、任意選択のヘッダデータ１１２とセグメント１１４Ａ〜１１４Ｎ（セグメント１１４）とを含み、表現１２０は、任意選択のヘッダデータ１２２とセグメント１２４Ａ〜１２４Ｎ（セグメント１２４）とを含む。文字Ｎは、便宜上、表現１１０、１２０の各々中の最後のムービーフラグメントを指定するために使用する。いくつかの例では、表現１１０と表現１２０との間で異なる数のムービーフラグメントが存在し得る。
【００９８】
ＭＰＤ１０２は、表現１１０〜１２０とは別のデータ構造を備え得る。ＭＰＤ１０２は図１のマニフェストファイル６６に対応し得る。同様に、表現１１０〜１２０は図１の表現６８に対応し得る。一般に、ＭＰＤ１０２は、コーディングおよびレンダリング特性、適応セット、ＭＰＤ１０２が対応するプロファイル、テキストタイプ情報、カメラアングル情報、ラーティング情報などのような、表現１１０〜１２０の特性を全般に表すデータを含み得る。リモート期間は外部期間と呼ばれることもある。以下でさらに詳しく論じられる図４〜図５は、様々な要素がＭＰＤおよび／または（表現のセグメントもしくは表現のヘッダデータ内などの）表現の一方または両方の中に含まれる、マルチメディアコンテンツの様々な例を示す。
【００９９】
本開示の態様によれば、たとえば、ＭＰＤ１０２および／またはヘッダデータ１１２、１２２は、表現１１０、１２０に対する切替点の頻度（または間隔）を示す、ＳＰ間隔情報１０４を含み得る。すなわち、ＳＰ間隔情報１０４は、所与の期間において切替点（たとえば、キーフレームとも呼ばれる）が発生する時間的な頻度を示すものを提供し得る。加えて、または代替的に、ＳＰ間隔情報１０４は、切替点の間の期間または間隔を示すものを提供し得る。図４〜図５のＭＰＤのいずれかまたはすべては、実質的に図２のＭＰＤ１０２に対応し得る。
【０１００】
ヘッダデータ１１２は、存在するとき、セグメント１１４の特性、たとえば、ランダムアクセスポイントの時間的位置を記述することができ、セグメント１１４のランダムアクセスポイントは、ランダムアクセスポイント、セグメント１１４内のランダムアクセスポイントへのバイトオフセット、セグメント１１４のｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ（ＵＲＬ）、またはセグメント１１４の他の態様を含む。ヘッダデータ１２２は、存在するとき、セグメント１２４についての同様の特性を記述し得る。加えて、または代替的に、そのような特性はＭＰＤ１０２内に完全に含まれ得る。
【０１０１】
セグメント１１４は１つまたは複数のコーディングされたビデオサンプルを含み、コーディングされたビデオサンプルの各々はビデオデータのフレームまたはスライスを含み得る。セグメント１１４のコーディングされたビデオサンプルの各々は、同様の特性、たとえば、高さ、幅、および帯域幅の要件を有し得る。そのような特性はＭＰＤ１０２のデータによって記述され得るが、そのようなデータは図２の例に示されていない。ＭＰＤ１０２は、本開示において説明されるシグナリングされた情報のいずれかまたはすべてに加えて、３ＧＰＰ規格に記載されている特性を含み得る。
【０１０２】
セグメント１１４、１２４の各々は、固有のｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）、たとえば、ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ（ＵＲＬ）と関連付けられ得る。したがって、セグメント１１４、１２４の各々は、ＤＡＳＨなどのストリーミングネットワークプロトコルを使用して独立に検索可能であり得る。このようにして、クライアントデバイス４０などの宛先デバイスは、セグメント１１４または１２４を検索するためにＨＴＴＰ  Ｇｅｔ要求を使用し得る。いくつかの例では、クライアントデバイス４０は、セグメント１１４または１２４の特定のバイト範囲を検索するためにＨＴＴＰ  ｐａｒｔｉａｌ  Ｇｅｔ要求を使用し得る。
【０１０３】
セグメント１１４、１２４は、表現１１０、１２０に対する切替点を含み得る。切替点は一般に、ランダムアクセスポイント（ＲＡＰ）に対応し得る。様々な表現は、異なる間隔の切替点、たとえば表現の中で異なる頻度で発生するＲＡＰを含み得る。たとえば、表現１１０のセグメント１１４の各々は切替点を含んでよく、一方、表現１２０のセグメント１２４Ａ、１２４Ｃ、１２４Ｅなどは切替点を含んでよいが、表現１２０のセグメント１２４Ｂ、１２４Ｄなどは切替点を含まなくてよい。
【０１０４】
したがって、この例では、クライアントデバイス４０は最初に表現１１０からデータを検索し、次いで十分な量のデータを検索した後で、表現１２０へと切り替えることができる。たとえば、クライアントデバイス４０は、表現１１０のセグメント１１４Ａと１１４Ｂとを検索することができる。表現１２０のセグメント１２４Ａおよび１２４Ｃがランダムアクセスポイントを含む場合、クライアントデバイス４０は、表現１１０のセグメント１１４Ａと１１４Ｂとを検索し、次いで、ある量の表現１１０のデータが、表現１２０の切替点の間の時間を超える時間的な再生時間を伴ってバッファリングされたと判定することができる。したがって、表現１１０のセグメント１１４Ａおよび１１４Ｂのデータを検索した後、クライアントデバイス４０は、表現１２０の中でセグメント１２４Ｂに続く、セグメント１２４Ｃのデータを検索することができる。
【０１０５】
図３は、図２のセグメント１１４、１２４のうちの１つのような表現のセグメントに対応し得る、例示的なビデオファイル１５０の要素を示すブロック図である。セグメント１１４、１２４の各々は、図３の例に示されるデータの構成に実質的に準拠するデータを含み得る。同様に、以下で論じられる図４〜図５のセグメントも、ビデオファイル１５０の構造に実質的に準拠し得る。上で説明されたように、ＩＳＯベースのメディアファイルフォーマットおよびその拡張によるビデオファイルは、データを「ボックス」と呼ばれる一連のオブジェクトに記憶する。図３の例では、ビデオファイル１５０は、ファイルタイプ（ＦＴＹＰ）ボックス１５２と、ムービー（ＭＯＯＶ）ボックス１５４と、ムービーフラグメント（ＭＯＯＦ）ボックス１６２と、ムービーフラグメントランダムアクセス（ＭＦＲＡ）ボックス１６４とを含む。
【０１０６】
ファイルタイプ（ＦＴＹＰ）ボックス１５２は一般に、ビデオファイル１５０のファイルタイプを記述する。ファイルタイプボックス１５２は、ビデオファイル１５０の最良の使用を記述する仕様を特定するデータを含み得る。ファイルタイプボックス１５２は、ＭＯＯＶボックス１５４、ムービーフラグメントボックス１６２、およびＭＦＲＡボックス１６４の前に配置され得る。
【０１０７】
いくつかの例では、ビデオファイル１５０などのセグメントは、ＦＴＹＰボックス１５２の前にＭＰＤ更新ボックス（図示せず）を含み得る。ＭＰＤ更新ボックスは、ＭＰＤを更新するための情報とともに、ビデオファイル１５０を含む表現に対応するＭＰＤが更新されるべきであることを示す情報を含み得る。たとえば、ＭＰＤ更新ボックスは、ＭＰＤを更新するために使用されるべきリソースのＵＲＩまたはＵＲＬを与え得る。別の例として、ＭＰＤ更新ボックスは、ＭＰＤを更新するためのデータを含み得る。いくつかの例では、ＭＰＤ更新ボックスはビデオファイル１５０のセグメントタイプ（ＳＴＹＰ）ボックス（図示せず）の直後にあってよく、ＳＴＹＰボックスはビデオファイル１５０のセグメントタイプを定義し得る。以下でさらに詳しく論じられる図７は、ＭＰＤ更新ボックスに関する追加の情報を提供する。
【０１０８】
ＭＯＯＶボックス１５４は、図３の例では、ムービーヘッダ（ＭＶＨＤ）ボックス１５６と、トラック（ＴＲＡＫ）ボックス１５８と、１つまたは複数のムービー拡張（ＭＶＥＸ）ボックス１６０とを含む。一般に、ＭＶＨＤボックス１５６はビデオファイル１５０の一般的特性を記述し得る。たとえば、ＭＶＨＤボックス１５６は、ビデオファイル１５０が最初に生成されたとき、ビデオファイル１５０が最後に変更されたときを記述するデータ、ビデオファイル１５０の時間軸、ビデオファイル１５０の再生の長さ、またはビデオファイル１５０を一般に記述する他のデータを含み得る。
【０１０９】
ＴＲＡＫボックス１５８は、ビデオファイル１５０のトラックに対するデータを含み得る。ＴＲＡＫボックス１５８は、ＴＲＡＫボックス１５８に対応するトラックの特性を記述するトラックヘッダ（ＴＫＨＤ）ボックスを含み得る。いくつかの例では、ＴＲＡＫボックス１５８はコーディングされたビデオピクチャを含んでよく、他の例では、トラックのコーディングされたビデオピクチャは、ＴＲＡＫボックス１５８のデータによって参照され得るムービーフラグメント１６２中に含まれてよい。
【０１１０】
いくつかの例では、ビデオファイル１５０は２つ以上のトラックを含み得る。したがって、ＭＯＯＶボックス１５４は、ビデオファイル１５０中のトラックの数に等しいいくつかのＴＲＡＫボックスを含み得る。ＴＲＡＫボックス１５８は、ビデオファイル１５０の対応するトラックの特性を記述し得る。たとえば、ＴＲＡＫボックス１５８は、対応するトラックに対する時間および／または空間情報を記述し得る。カプセル化ユニット３０（図１）が、ビデオファイル１５０などのビデオファイル中にパラメータセットトラックを含むとき、ＭＯＯＶボックス１５４のＴＲＡＫボックス１５８と同様のＴＲＡＫボックスはパラメータセットトラックの特性を記述し得る。カプセル化ユニット３０は、パラメータセットトラックを記述するＴＲＡＫボックス内のパラメータセットトラック中にシーケンスレベルＳＥＩメッセージが存在することをシグナリングし得る。
【０１１１】
ＭＶＥＸボックス１６０は、たとえば、もしあれば、ＭＯＯＶボックス１５４内に含まれるビデオデータに加えて、ムービーフラグメント１６２をビデオファイル１５０が含むことをシグナリングするように、対応するムービーフラグメント１６２の特性を記述し得る。ビデオデータをストリーミングする状況では、コーディングされたビデオピクチャは、ＭＯＯＶボックス１５４ではなくムービーフラグメント１６２中に含まれ得る。したがって、すべてのコーディングされたビデオサンプルは、ＭＯＯＶボックス１５４ではなくムービーフラグメント１６２中に含まれ得る。
【０１１２】
ＭＯＯＶボックス１５４は、ビデオファイル１５０中のムービーフラグメント１６２の数に等しい数のＭＶＥＸボックス１６０を含み得る。ＭＶＥＸボックス１６０の各々は、ムービーフラグメント１６２のうちの対応する１つの特性を記述し得る。たとえば、各ＭＶＥＸボックスは、ムービーフラグメント１６２のうちの対応する１つの時間的な長さを記述するムービー拡張ヘッダボックス（ＭＥＨＤ）ボックスを含み得る。
【０１１３】
上で述べられたように、カプセル化ユニット３０は、シーケンスデータセットを、実際のコーディングされたビデオデータを含まないビデオサンプルに記憶し得る。ビデオサンプルは、一般に、特定の時間インスタンスにおけるコーディングされたピクチャの表現である、アクセスユニットに対応し得る。ＡＶＣの状況では、コーディングされたピクチャは、アクセスユニットのすべてのピクセルを構築するための情報を含んでいる１つまたは複数のＶＣＬ  ＮＡＬユニットと、ＳＥＩメッセージのような他の関連する非ＶＣＬ  ＮＡＬユニットとを含む。したがって、カプセル化ユニット３０は、ムービーフラグメント１６２のうちの１つ中に、シーケンスレベルＳＥＩメッセージを含み得る、シーケンスデータセットを含み得る。カプセル化ユニット３０はさらに、シーケンスデータセットおよび／またはシーケンスレベルＳＥＩメッセージの存在を、ムービーフラグメント１６２のうちの１つに対応するＭＶＥＸボックス１６０のうちの１つの中のムービーフラグメント１６２のうちの１つの中に存在するものとしてシグナリングし得る。
【０１１４】
ムービーフラグメント１６２は、１つまたは複数のコーディングされたビデオピクチャを含み得る。いくつかの例では、ムービーフラグメント１６２は１つまたは複数のピクチャグループ（ＧＯＰ）を含んでよく、ピクチャグループの各々は、いくつかのコーディングされたビデオピクチャ、たとえば、フレームまたはピクチャを含み得る。加えて、上で説明されたように、ムービーフラグメント１６２は、いくつかの例では、シーケンスデータセットを含み得る。ムービーフラグメント１６２の各々は、ムービーフラグメントヘッダボックス（ＭＦＨＤ、図３に図示せず）を含み得る。ＭＦＨＤボックスは、ムービーフラグメントのシーケンス番号のような、対応するムービーフラグメントの特性を記述し得る。ムービーフラグメント１６２は、ビデオファイル１５０中のシーケンス番号の順に含まれ得る。
【０１１５】
ＭＦＲＡボックス１６４は、ビデオファイル１５０のムービーフラグメント１６２内のランダムアクセスポイントを記述し得る。ＭＦＲＡボックス１６４は一般に任意選択であり、いくつかの例では、ビデオファイル中に含まれる必要がない。同様に、クライアントデバイス４０などのクライアントデバイスは、ビデオファイル１５０のビデオデータを正しく復号し、表示するために、必ずしもＭＦＲＡボックス１６４を参照する必要がない。ＭＦＲＡボックス１６４は、ビデオファイル１５０のトラックの数に等しいか、またはいくつかの例ではビデオファイル１５０のメディアトラック（たとえば、非ヒントトラック）の数に等しい、ある数のトラックフラグメントランダムアクセス（ＴＦＲＡ）ボックス（図示せず）を含み得る。
【０１１６】
いくつかの例では、ビデオファイル１５０は追加で、セグメントインデックス（ＳＩＤＸ）ボックスを含み得る（この例では図示されない）。ＳＩＤＸボックスは、ビデオファイル１５０の最初またはその近くにおいて発生してよく、ビデオファイル１５０に対するＲＡＰの位置（たとえば、開始バイトおよび長さまたはバイトの範囲）を示すものを提供し得る。あるいは、表現は、ヘッダデータ１１２、１２２（図２）のような、表現に対するヘッダ情報の中にＳＩＤＸボックスを含んでよい。いくつかの例では、クライアントデバイス４０は、表現の１つまたは複数のＳＩＤＸボックスによって提供される情報に基づいて、ビデオファイル１５０を含む表現に対する切替点の頻度（または間隔）を暗黙的に決定するように構成され得る。たとえば、表現のＳＩＤＸボックスからＲＡＰの位置を決定することによって、また、ＲＡＰに対する関連するタイミング情報を決定することによって、クライアントデバイス４０は、表現に対するＲＡＰの間の相対的な時間間隔を決定することができる。さらに別の例として、表現のＳＩＤＸボックスは、表現の切替点の頻度または切替点の間の間隔を明示的に示すものを提供することができる。
【０１１７】
図４は、ＭＰＤ２０２と適応セット２１０〜２２０とを含む例示的なマルチメディアコンテンツ２００を示す概念図である。マルチメディアコンテンツ２００は、マルチメディアコンテンツ６４（図１）、またはメモリ６２に記憶された別のマルチメディアコンテンツに対応し得る。この例では、マルチメディアコンテンツ２００の表現は適応セットによって構成される。すなわち、特性の共通のセットをもつ表現が適応セットへと形成されてよく、それにより、簡略化されたネットワーク帯域幅適応が可能になる。
【０１１８】
この例では、ＭＰＤ２０２は、適応セット２１０の共通の特性を記述する情報を含む共通の表現特性２０４Ａと、適応セット２２０の共通の特性を記述する共通の表現特性２０４Ｂとを含む。共通の特性は、コーデック、表現中の表現が準拠するコーデックのプロファイルおよびレベル、ピクセル解像度、フレームレート、または表現の他の特性のような、表現のコーディングおよび／またはレンダリング特性を含み得る。
【０１１９】
本開示の技法によれば、特性は、上で論じられた特性に加えて、テキストタイプ値、カメラアングル値、および／またはレーティング値を含み得る。テキストタイプ値は、ビデオデータ（たとえば、字幕テキスト）とともに表示されるべきテキストの特性を記述し得る。テキストタイプ値は、たとえば、テキストの言語、テキストを表示すべきスクリーン上の位置、テキストのフォントおよび／またはサイズ、あるいはテキストの他の特性を記述し得る。
【０１２０】
カメラアングル値は、対応する表現のコーディングされたビデオデータを生成するために（物理的あるいは概念的に）使用されるカメラの、現実世界での水平方向のカメラ位置を記述し得る。カメラアングルを使用して、クライアントデバイスは、たとえば、３次元ビデオ再生効果を生成するために、実質的に同時に表示されるべき２つ以上の表現からデータを選択し得る。水平方向の現実世界でのカメラ位置により、クライアントデバイスは、ビデオデータの３次元再生における深度の相対量を増加または減少させるように表現を選択することが可能になり得る。
【０１２１】
レーティングは、特定の視聴者のコンテンツ適合性を記述し得る。たとえば、米国では、アメリカ映画協会が、Ｇ、ＰＧ、ＰＧ−１３、Ｒ、およびＮＣ−１７を含むレーティングを定義している。別の例として、英国では、全英映像等級審査機構が、Ｕ、ＰＧ、１２Ａ、１２、１５、１８、およびＲ１８を含むレーティングを定義している。さらに別の例として、中華民国（台湾）では、映画のカテゴリーは、一般視聴者カテゴリー、保護カテゴリー、ペアレンタルガイダンスカテゴリー、および制限付きカテゴリーを含む。
【０１２２】
それぞれの適応セット、たとえば、適応セット２１０〜２２０の共通の特性２０４を与えることによって、クライアントデバイス（たとえば、クライアントデバイス４０）は、対応する共通の表現特性２０４に少なくとも部分的に基づいて、適応セット２１０〜２２０のうちの適切な１つを選択し得る。図４の例では、ＭＰＤ２０２はまた、表現２１２Ａ、２１２Ｂ、２２２Ａ、２２２Ｂにそれぞれ対応する、個々の表現特性２０６Ａ、２０６Ｂ、２０８Ａ、および２０８Ｂを含む。個々の表現特性２０６Ａ、２０６Ｂ、２０８Ａ、および２０８Ｂは、共通の表現特性２０４によって示されない表現２１２Ａ、２１２Ｂ、２２２Ａ、２２２Ｂの特性を表す情報を含み得る。たとえば、個々の表現特性２０６Ａ、２０６Ｂ、２０８Ａ、および２０８Ｂは、表現２１２Ａ、２１２Ｂ、２２２Ａ、２２２Ｂのうちのそれぞれの１つのビットレートを表す情報を含み得る。
【０１２３】
適応セットの表現は、異なる符号化または他のパラメータを伴う同じコンテンツ（同じビデオ、同じ言語オーディオなど）を表し得るという点で、相互排他的であると見なされ得る。ＭＰＤ２０２は、適応セット２１０〜２２０のうちの１つ、たとえば、共通の表現特性２０４を選択するための情報を提供し得る。この情報は、クライアントが所与の表現を復号し、レンダリングすることができるかどうかを示す情報を含み得る。このようにして、クライアントデバイスは、クライアントデバイスが復号および／またはレンダリングすることが不可能な表現を考慮から除外し得る。したがって、クライアントデバイス４０は、復号されレンダリングされ得る適切な適応セットを選択し、次いで、たとえば、ネットワーク帯域幅の利用可能性に基づいて、そのグループから表現を選択し得る。
【０１２４】
本開示の態様によれば、適応セット２１０、２２０などのうちの１つのような適応セットは、同一の、またはほぼ同一のビットレートを有するが切替点の異なる間隔を含む、複数の表現を含み得る。したがって、適応セット内の表現は品質が変化してよく、関連する変化するバッファリング期間を有し得る（たとえば、適応セット内の表現の各々は、ＤＡＳＨ規格において言及されるような、代替的な関連するｍｉｎＢｕｆｆｅｒＴｉｍｅを有し得る）。すなわち、上で述べられたように、比較的多数の切替点を伴う表現は、より少数の切替点を伴う表現よりも、比較的短いバッファリング期間を有し得る。しかしながら、適応セットの所与のビットレートに対して、より多数の切替点を伴う表現は、より少数の切替点を伴う表現よりも比較的低品質であり得る。
【０１２５】
本開示の態様によれば、クライアントデバイス４０は、同一の、またはほぼ同一のビットレートを伴う複数の表現を有する適応セットを選択することができる。クライアントデバイス４０は、最初に、あるビットレートと比較的短いバッファリング期間（たとえば、比較的低い品質にもかかわらず）とを有する表現を選択し、その表現のデータをバッファリングし、次いで、ビットレートは同一であるが比較的長いバッファリング期間を有する（たとえば、比較的高い品質を有する）表現へと切り替えることができる。他の態様によれば、図２に関して上で述べられたように、適応セットは異なるビットレートを有し得る。たとえば、適応セットは、各々の連続するビットレート表現に対して、比較的切替点の頻度が高い表現６８と比較的切替点の頻度が低い表現６８とを交互に切り替える、表現６８を有し得る。
【０１２６】
クライアントデバイス４０はまた、たとえば、レーティング、言語、および／または深度についてのユーザ選好によって構成され得る。したがって、クライアントデバイス４０はまた、選択されたグループがユーザ選好に準拠するように１つまたは複数の適応セットを選択し得る。クライアントデバイス４０は、次いで、同時に再生され得る利用可能な適応セットのサブセットを選択し得る。クライアントデバイス４０が１つのビューしか表示できないとき、クライアントデバイス４０は１つの表現からのみデータを検索することを選択し得る。一方、クライアントデバイス４０がステレオビューまたはマルチビュー対応であるとき、クライアントデバイス４０は２つ以上の表現からデータを検索し得る。
【０１２７】
１つまたは複数の適応セットを選択した後に、クライアントデバイス４０は、たとえば、利用可能なネットワーク帯域幅に基づいて、それらの適応セットから表現を選択し得る。利用可能なネットワーク帯域幅が変化（たとえば、増加または減少）したとき、クライアントデバイス４０は、変化するネットワーク帯域幅条件に適応するために適応セットからの表現の選択を調整し得る。もちろん、クライアントデバイス４０は、ユーザ選好またはデバイス能力（たとえば、復号およびレンダリング能力）が変化した場合にも表現選択を変更し得る。
【０１２８】
本開示の態様によれば、クライアントデバイス４０は、同一の、またはほぼ同一のビットレートを伴う複数の表現を有する適応セットを選択することができる。クライアントデバイス４０は、最初に、あるビットレートと比較的短いバッファリング期間（たとえば、比較的低い品質にもかかわらず）とを有する表現を選択し、その表現のデータをバッファリングし、次いで、ビットレートは同一であるが比較的長いバッファリング期間を有する（たとえば、比較的高い品質を有する）表現へと切り替えることができる。
【０１２９】
共通の表現特性２０４は、いくつかの例では、ＭＰＤ２０２のＲｅｐｒｅｓｅｎｔａｔｉｏｎＧｒｏｕｐ  ＸＭＬ要素に対応し得る。個々の表現特性は、いくつかの例では、ＭＰＤ２０２の対応するＲｅｐｒｅｓｅｎｔａｔｉｏｎＧｒｏｕｐ要素のサブ要素に対応し得る。
【０１３０】
表現の共通の特性を一緒にグループ化することによって、様々な最適化が達成され得る。たとえば、多くの表現が、様々なパラメータに対して同じ値を有し得る。したがって、ＭＰＤにおいて特性を個々にシグナリングすると、特性を個々にシグナリングするためにＭＰＤにおいてかなりの重複が生じ得る。多くのクライアントデバイスは、受信されたＭＰＤの大部分を廃棄するように構成される。したがって、クライアントデバイスが受信するＭＰＤの一部分において最適化が行われ得る。その上、適応セットが廃棄された場合、クライアントデバイスは、廃棄された表現または適応セットのＭＰＤ中に現在存在する情報（ＵＲＬなど）にアクセスしなくてもよい。クライアントデバイスはまた、たとえば、ライブイベントのためのビデオデータのリアルタイムネットワークストリーミング中では頻繁に更新される傾向がある、ＵＲＬの不必要な更新を回避し得る。ＭＰＤにおける冗長性がなくされた場合でも、クライアントデバイス４０は、受信および再構成の後に全ＭＰＤをパースすることが依然として必要であり、これは著しい量の計算時間を浪費し得る。
【０１３１】
図５は、例示的な適応セットを示す概念図である。図５に示される例によれば、第１の適応セット３００は、表現３０４Ａと、３０４Ｂと、３０４Ｃと（まとめて表現３０４）を含み、一方第２の適応セット３０８は、表現３１２Ａと、３１２Ｂと、３１２Ｃと（まとめて表現３１２）を含む。適応セット３００および３０８は、図４〜図５に関して説明された適応セットと同様または同一であり得る。図５に関して示され説明される例示的な適応セット３００および３０８は、本明細書で説明される技法のいずれとも適合し得る。
【０１３２】
図５に示される例では、適応セット３００の表現３０４の各々は、同一の、または実質的に同一のビットレートを有し得る。しかしながら、適応セット３００内で、表現３０４の各々は代替的な数の切替点３１６を有し得る。上で述べられたように、切替点３１６は通常Ｉフレームとして符号化され、キーフレームとも呼ばれ得る。しかしながら、他の例では、表現３０４は、（代替的な数の切替点３１６を有することに加えて）異なるビットレートを有し得る。
【０１３３】
本開示のいくつかの態様によれば、切替点３１６は概ね、適応セット内で揃えられ得る。たとえば、表現３０４Ａは、表現３０４Ｂおよび３０４Ｃと比較して、相対的に多数の切替点を含む。すなわち、いくつかの例では、表現３０４Ｂは、３０４Ａの切替点のサブセットを含み得る。その上、表現３０４Ｃは、３０４Ｂの切替点のサブセットを含み得る。他の例では、適応セット中の表現の切替点は、必ずしも揃えられなくてよい。
【０１３４】
ある例では、表現３０４Ａの切替点３１６は、約２秒ごとに発生し得る。図５に示される例によれば、表現３０４Ｂの切替点３１６は約４秒ごとに発生してよく、表現３０４Ｃの切替点３１６は約８秒ごとに発生してよい。切替点の間のそのような期間は、単に説明のための例として与えられ、切替点の間の代替的な期間が可能であることを理解されたい。
【０１３５】
いくつかの例では、上で述べられたように、切替点の頻度はバッファリング期間（たとえば、上の表３でｍｉｎＢｕｆｆｅｒＴｉｍｅとして識別される）に関連し得る。たとえば、表現３０４Ａは、表現３０４Ｂよりも短いバッファリング期間を有してよく、表現３０４Ｂは、表現３０４Ｃよりも短いバッファリング期間を有してよい。しかしながら、特定のビットレートを仮定すると、表現３０４Ｃの品質は３０４Ｂの品質よりも良好であってよく、３０４Ｂの品質は３０４Ｃの品質よりも良好であってよい。
【０１３６】
適応セット３０８は、適応セット３００と同様に構成されてよいが、適応セット３００とは異なるビットレートを有する表現を含み得る。図５の例に示される表現３１２の切替点３１６は必ずしも揃えられないが、上で述べられたように、切替点３１６はいくつかの例では揃えられ得ることを理解されたい。
【０１３７】
サーバデバイス６０のようなサーバデバイスは、図５に示される適応セット３００および３０８（たとえば、さらには追加の適応セット）のような、異なるビットレートの表現を有する複数の適応セットを提供することができる。クライアントデバイス４０のようなクライアントデバイスは、帯域幅条件に対して適切なビットレートと、さらには、ある数の切替点（たとえば、および対応するｍｉｎＢｕｆｆｅｒＴｉｍｅ）を伴う表現とを有する、適応セットを選択することができる。
【０１３８】
たとえば、本開示の態様によれば、クライアントデバイス４０は、最初に、あるビットレートと比較的短いバッファリング期間（たとえば、比較的低い品質にもかかわらず）とを有する表現を選択し、その表現のデータをバッファリングし、次いで、ビットレートは同一であるが比較的長いバッファリング期間を有する（たとえば、比較的高い品質を有する）表現へと切り替えることができる。
【０１３９】
図６は、例示的な表現を示す概念図である。図６に示される例によれば、第１の表現３２０は、複数のセグメント３２２Ａ〜３２２Ｄ（まとめてセグメント３２２）を含み、一方第２の表現３２４は、複数のセグメント３２６（たとえば、セグメント３２６Ａで開始する）を含む。いくつかの例では、図６に示される表現は、図２に示される表現１１０および１２０と同様に構成され得る。図６に関して示され説明される例示的な表現は、本明細書で説明される技法のいずれとも適合し得る。
【０１４０】
上で述べられたように、本開示の技法は全般に、最初にマルチメディアコンテンツを検索し、帯域幅適応を実行するときに、ユーザの体験を改善することに関する。上で説明されたいくつかの技法は同一のビットレートを有する表現に言及するが、これらの技法はまた、異なるビットレートを有する表現に適用され得る。
【０１４１】
たとえば、図６に示される例では、表現３２０は、ユニキャストを介してサーバによって提供され得る表現の例であり、一方表現３２４は、ブロードキャストを介して提供され得る表現の例である。図６に示されるように、表現３２０は、表現３２４のセグメント３２６よりも相対的に小さいセグメント３２２を含む。その上、表現３２０は、表現３２４よりも相対的に短い期間と関連付けられ得る。
【０１４２】
いくつかの例では、クライアントデバイス４０（図１）のようなクライアントデバイスは、選択された表現のビットレートが現在利用可能な帯域幅を超えない限り、切替点の頻度に基づいて表現を最初に選択するように構成され得る。したがって、図６に示される例では、ソースデバイス４０は、表現３２０を最初に選択することができる。最初に選択された表現３２０の十分なデータをバッファリングした後で、クライアントデバイス４０は、よりビットレートが高い表現からのデータを要求することを開始できる。図６に示される例では、クライアントデバイス４０は、最初に選択された表現３２０よりも低頻度の切替点を有し得る、表現３２４からのデータを要求することを開始できる。クライアントデバイス４０はまた、今後の何らかの時点において、たとえば表現３２４が利用可能ではない場合、表現３２０に戻ることができる。
【０１４３】
特定の例では、サーバデバイス６０（図１）のようなサーバは、切替点の間の比較的長い期間（たとえば、１０秒の再生時間）を有する、表現３２４をブロードキャストすることができる。クライアントデバイス４０は、比較的切替点の頻度が高い表現３２０のユニキャストを最初に要求し、次いで、ユニキャストされた表現３２０の十分なデータをバッファリングした後で、ブロードキャストされる表現３２４へと切り替えるように構成され得る。同様に、ブロードキャストされる表現３２４の受信が妨害されると、クライアントデバイス４０は、ユニキャストを使用した他の表現３２０の検索を再び開始し、ユニキャストされた表現３２０の十分な量のデータをバッファリングした後で、ブロードキャストされる表現２３４に戻ることができる。
【０１４４】
図７は、ネットワーク帯域幅の決定された量の例とデータの検索し元の表現の対応する指示とをグラフィカルに表す概念図である。図７の例は、特定のマルチメディアコンテンツの少なくとも４つの表現、すなわち、約３秒ごとに切替点を伴う１０Ｍｂｐｓの表現、約０．５秒ごとに切替点を伴う１０Ｍｂｐｓの表現、約２秒ごとに切替点を伴う５Ｍｂｐｓの表現、約０．５秒ごとに切替点を伴う５Ｍｂｐｓの表現を仮定する。
【０１４５】
図７の例では、サーバデバイス６０のようなサーバデバイスは、それぞれのマルチメディアコンテンツに対するマニフェストファイル中で、表現に対する切替点の頻度（ＳＰ  ｆｒｅｑ）を示すものを提供することができる。マニフェストファイルは、たとえば、マルチメディアコンテンツに対するｍｅｄｉａ  ｐｒｅｓｅｎｔａｔｉｏｎ  ｄｅｓｃｒｉｐｔｉｏｎ（ＭＰＤ）に対応し得る。クライアントデバイスは一般に、マニフェストファイルを検索し分析して、マルチメディアコンテンツの表現の特性と属性とを判定するように構成される。
【０１４６】
本開示の技法によれば、サーバデバイス６０は、表現に対するマニフェストファイル中に、様々な表現の切替点の頻度を示すものを提供することができる。表現の属性の特性を表すデータを提供することは、従来、データを「シグナリングすること」と呼ばれる。他の例では、サーバデバイス６０は、表現自体の中で表現の切替点の頻度をシグナリングすることができる。代替的に、クライアントデバイス４０のようなクライアントデバイスは、表現のセグメントと関連付けられるセグメントインデックス（ＳＩＤＸ）要素のデータから、切替点の頻度を推測するように構成され得る。
【０１４７】
図７に示される例では、クライアントデバイス４０は、約３秒ごとに切替点を伴う１０Ｍｂｐｓの表現を最初に検索することができる。利用可能なネットワーク帯域幅が減少すると、クライアントデバイス４０は、約０．５秒ごとに切替点を伴う５Ｍｂｐｓの表現に切り替えることができる。アンダーフローを避けるために十分なデータをバッファリングした後で、本開示の態様によれば、クライアントデバイス４０は、約２秒ごとに切替点を伴う５Ｍｂｐｓの表現を検索することができる。５Ｍｂｐｓの表現は、切替点の数が少ないことにより、比較的知覚される品質が高い（同一のビットレートにもかかわらず）ことがある。利用可能なネットワーク帯域幅が増大すると、クライアントデバイス４０は、約０．５秒ごとに切替点を伴う１０Ｍｂｐｓの表現に移行することができる。アンダーフローを避けるためにこの表現の十分なデータをバッファリングした後で、クライアントデバイス４０は再び、切替点がより少なく知覚される品質が高い表現（たとえば、約３秒ごとに切替点を伴う１０Ｍｂｐｓの表現）に切り替えることができる。
【０１４８】
図７の例は、同一のビットレートを有する切り替え先の表現を示すが（たとえば、約０．５秒ごとに切替点を伴う５Ｍｂｐｓの表現、約２秒ごとに切替点を伴う５Ｍｂｐｓの表現、約０．５秒ごとに切替点を伴う１０Ｍｂｐｓの表現、約３秒ごとに切替点を伴う１０Ｍｂｐｓの表現）、上で述べられたように、本開示の技法はこのように限定されない。たとえば、他の態様によれば、表現は、比較的切替点の頻度が高くよりビットレートが高い表現と、比較的切替点の頻度が低くよりビットレートが低い表現とを、交互に切り替えることができる。
【０１４９】
したがって、図７に示される例に関して、クライアントデバイス４０は、約０．５秒ごとに切替点を有する５Ｍｂｐｓの表現から、さらに低いビットレート（たとえば、４Ｍｂｐｓ、３Ｍｂｐｓなど）を有するが切替点の頻度の低下により同一のまたはより高い品質を伴う表現へと、切り替えることができる。加えて、または代替的に、上で述べられたように、クライアントデバイス４０は、切り替え先の表現を選択するときに、バッファリングされたデータの量を考慮することができる。すなわち、バッファリングされたデータの量が比較的少ない場合、クライアントデバイス４０は、比較的切替点の頻度が高い表現を選択することができる。対照的に、バッファリングされたデータの量がより多い場合、クライアントデバイスは、切替点の頻度が低い表現を選択することができる。
【０１５０】
図８は、本開示で説明される技法による例示的な方法を示すフローチャートである。図８の方法はサーバデバイス６０およびクライアントデバイス４０に関して説明されるが、他のデバイスが図８の方法の技法と類似の技法を実装し得ることを理解されたい。たとえば、コンテンツ作成デバイス２０、あるいはコンテンツ配信ネットワークの１つまたは複数のネットワークデバイスが、サーバデバイス６０による機能の一部または全部を実行し得る。
【０１５１】
サーバデバイス６０は、初めに、マルチメディアコンテンツの１つまたは複数の表現に対するデータ、さらにはマルチメディアコンテンツのマニフェストファイルを取得（たとえば、作成するか、またはコンテンツ作成デバイス２０から受信）することができる。サーバデバイス６０はまた、マルチメディアコンテンツの表現を示すもの、たとえば、表現の特性をクライアントデバイス４０に与えることができる（３４０）。加えて、サーバデバイス６０は、同一の、またはほぼ同一のビットレートを有するいくつかの表現に対する、切替点の間隔を決定することができる（３４２）。サーバデバイス６０は、各表現に対して、表現に含まれる切替点の数を示すものを提供することができる（３４４）。代替的に、または加えて、サーバデバイス６０は、各表現に対して、ｍｉｎＢｕｆｆｅｒＴｉｍｅを示すものを提供することができる。
【０１５２】
クライアントデバイス４０は、受信された情報に基づいて、各々の受信された表現に対する切替点の間隔を決定することができる（３４６）。クライアントデバイス４０はまたは、第１の表現に対する要求を出すことができる（３４８）。本開示のいくつかの態様によれば、クライアントデバイス４０は最初に、比較的多数の切替点（たとえば、および対応する短いバッファリング期間）を有する表現を選択することができる。
【０１５３】
要求を受信すると、サーバデバイス６０は、選択された第１の表現を提供することができる（３５０）。そして、クライアントデバイス４０は、受信されたデータのバッファリング、復号、および／または表示を開始することができる（３５２）。本開示の態様によれば、第１の表現からある量のデータを受信および／またはバッファリングすると、クライアントデバイス４０は、サーバデバイス６０からの第２の表現からのデータに対する要求を出すことができる。いくつかの例では、第２の表現は、第１の表現よりも比較的少数の（すなわち、より頻度の低い）切替点（たとえば、およびそれに対応するより長いバッファリング期間）を有し得る。その上、第２の表現は、第１の表現よりも高品質であり得る。すなわち、第２の表現は、切替点の頻度が低いにもかかわらず、第１の表現のビットレートと実質的に同様であるビットレートを有し得る（上で述べられたように、他の例ではビットレートは異なり得る）。したがって、第２の表現は、相対的により多くのＰフレームもしくはＰスライスおよび／またはＢフレームもしくはＢスライスを使用してコーディングすることができ、これにより、表現のビデオデータ内で時間的な冗長性の利用率が改善することにより、コーディングの効率が改善され得るという点で、より高い品質を達成することができる。
【０１５４】
要求を受信すると、サーバデバイス６０は、第２の表現を提供することができる（３５６）。そして、クライアントデバイス４０は、受信されたデータのバッファリング、復号、および／または表示を開始することができる（３５８）。ステップ３５４〜３５８は、ネットワーク帯域幅の条件に基づいて繰り返し実行され得る。
【０１５５】
このようにして、図８の方法は、マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定することを含む、方法の例を表し、第１の間隔は第２の間隔よりも短い。加えて、方法は、決定に基づいて、第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する第１の表現からのある量のビデオデータを規定する、ネットワーク要求を出すことと、第１の表現からのその量のビデオデータに対する要求を出した後で、第２の表現からのビデオデータを検索することとを含む。
【０１５６】
同様に、図８の方法は、マルチメディアコンテンツの複数の表現を形成することを含む方法の例を表す。方法はまた、それぞれの表現に対する切替点の間隔を表す表現切替点間隔情報を割り当てることと、クライアントデバイスからの要求に応答して、表現のうちの第１の表現のビデオデータをクライアントデバイスに送信することとを含む。方法はまた、表現のうちの第２の異なる表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する第１の表現からのある量のビデオデータを送信した後で、表現のうちの第２の表現のビデオデータをクライアントデバイスに送信することを含み、表現のうちの第２の表現の切替点の間隔は、表現のうちの第１の表現の切替点の間隔より短い。
【０１５７】
図９は、本開示で説明される技法による例示的な方法を示すフローチャートである。図９の方法はサーバデバイス６０およびクライアントデバイス４０に関して説明されるが、他のデバイスが図９の方法の技法と類似の技法を実装し得ることを理解されたい。たとえば、コンテンツ作成デバイス２０、あるいはコンテンツ配信ネットワークの１つまたは複数のネットワークデバイスが、サーバデバイス６０による機能の一部または全部を実行し得る。
【０１５８】
図９の例は全般に、クライアントデバイス４０のようなクライアントデバイスによって実行される本開示の技法を示す。たとえば、クライアントデバイス４０は最初に、複数の表現（たとえば、図５に示される適応グループ３００および３０８の表現など）の切替点の間隔を規定する、ＭＰＤを検索することができる（３８０）。クライアントデバイス４０は次いで、帯域幅の利用可能な量を決定することができる（３８２）。すなわち、クライアントデバイス４０は、サーバデバイス６０のようなサーバデバイスからクライアントデバイス４０へのデータの送信に現在利用可能な、ネットワーク帯域幅の量を決定することができる。
【０１５９】
利用可能な帯域幅を決定した後で、クライアントデバイス４０は、比較的切替点の間隔が短い第１の表現と、比較的切替点の間隔が長い第２の表現とを特定することができる。いくつかの例では、第１の表現および第２の表現は、上記の量の利用可能な帯域幅によって満たされ得る、ほぼ同一のビットレートを有し得る。たとえば、クライアントデバイス４０は、同一の、またはほぼ同一のビットレートを有するが、異なる間隔の切替点（たとえば、および、したがって異なる品質）を含む複数の表現を有する、適応グループを特定することができる。他の例では、クライアントデバイス４０は、異なるビットレートを有する表現を含む、１つまたは複数の適応グループを特定することができる。クライアントデバイス４０は次いで、比較的切替点の間隔が短い第１の第１の表現と、比較的切替点の間隔が長い第２の表現とを特定することができる。
【０１６０】
クライアントデバイス４０は次いで、第１の表現からのデータをバッファリングし（３８６）、第１の表現のデータを復号／表示することができる（３８８）。第１の表現の十分な量のデータをバッファリングした後（たとえば、第２の表現の切替点の間の時間的シーケンスに等しいかそれを超える時間的データを有する量をバッファリングした後）で、クライアントデバイス４０は第２の表現に切り替えることができる（３９０）。すなわち、クライアントデバイス４０は、第２の表現のデータをバッファリングし、復号し、表示することができる。
【０１６１】
図１０は、本開示で説明される技法による例示的な方法を示すフローチャートである。図１０の方法はサーバデバイス６０およびクライアントデバイス４０に関して説明されるが、他のデバイスが図１０の方法の技法と類似の技法を実装し得ることを理解されたい。たとえば、コンテンツ作成デバイス２０、あるいはコンテンツ配信ネットワークの１つまたは複数のネットワークデバイスが、サーバデバイス６０による機能の一部または全部を実行し得る。
【０１６２】
上で述べられたように、本開示の技法は、ネットワークストリーミングを介して、ビデオデータの検索を改善するために種々の方法で使用され得る。いくつかの例では、２つ以上の表現は、ビットレートは同一であり得るが、切替点の頻度は異なり得る（この例では表現のターゲットグループと呼ばれる）。
【０１６３】
図１０に示される例では、クライアントデバイス４０は最初に、あるビットレートである表現のデータを検索することを開始することができる（４００）。クライアントデバイス４０は、次いで、ネットワーク帯域幅の利用可能性が変化したかどうかを判定することができる（４０２）。いくつかの例では、クライアントデバイス４０は、現在の表現のビットレートをサポートするためのネットワークの能力が変化したことを特定することができる。たとえば、利用可能なネットワーク帯域幅の量は、利用可能なネットワーク帯域幅の新たに決定された量が対応できるよりビットレートの低い表現が選択されるべきであるとクライアントデバイス４０が判定する点まで、減少していることがある。あるいは、利用可能なネットワーク帯域幅の量は、たとえば再生品質を改善するためによりビットレートの高い表現が選択されるべきであるとクライアントデバイス４０が判定する点まで、増加していることがある。
【０１６４】
クライアントデバイス４０は次いで、表現のターゲットグループ、具体的には、同一のまたは実質的に同一のビットレートを有するが、少なくとも第１の表現と第２の表現とを有する、表現のグループを特定することができ、第１の表現は、第２の表現とは異なる頻度の切替点を含む（４０４）。ある特定の例では、第１の表現は、第２の表現よりも高い頻度の切替点を有し得る。クライアントデバイス４０は、ビットレートに基づいて表現のターゲットグループを選択することができ、ビットレートは、新たに決定された利用可能なネットワーク帯域幅の量によって満たされ得る。他の例では、クライアントデバイス４０は、ビットレートがわずかに異なり切替点の頻度も異なる、表現のターゲットグループを選択することができる。
【０１６５】
クライアントデバイス４０は、切替点の頻度が比較的高いターゲットグループの表現（たとえば、上で説明された第１の表現）から、十分な量のデータをバッファリングすることができる（４０６）。すなわち、たとえば、クライアントデバイス４０は、バッファのアンダーフローを避けつつ、過剰なバッテリー電力と処理能力とを消費し得る２つのデコーダの同時実行の必要性を避けるために、第１の表現からの十分なデータをバッファリングすることができる。この表現の十分な量のデータをバッファリングした後で、クライアントデバイス４０は、より切替点の頻度が低い表現のターゲットグループのうちの別の１つの表現（たとえば、上で説明された第２の表現）へと切り替えることができる（４０８）。
【０１６６】
１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１６７】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１６８】
命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に適切な他の構造のいずれかを指す。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のハードウェアおよび／もしくはソフトウェアモジュール内に与えられてよく、または複合コーデックに組み込まれてよい。また、本技法は、１つまたは複数の回路または論理要素中で完全に実装されてよい。
【０１６９】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々なコンポーネント、モジュール、またはユニットについて説明したが、それらのコンポーネント、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上で説明されたように、様々なユニットが、適切なソフトウェアおよび／またはファームウェアとともに、上で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされてもよく、または相互動作可能なハードウェアユニットの集合によって与えられてもよい。
【０１７０】
様々な例が説明されてきた。これらおよび他の例は、以下の特許請求の範囲内に入る。
【図１】
2014534684.tif 000003
【図２】
2014534684.tif 000004
【図３】
2014534684.tif 000005
【図４】
2014534684.tif 000006
【図５】
2014534684.tif 000007
【図６】
2014534684.tif 000008
【図７】
2014534684.tif 000009
【図８】
2014534684.tif 000010
【図９】
2014534684.tif 000011
【図１０】
2014534684.tif 000012
【手続補正書】
【提出日】平成26年5月13日(2014.5.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチメディアコンテンツのビデオデータを読み出す方法であって、
前記マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、前記マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定することであって、前記第１の間隔が前記第２の間隔よりも短い、決定することと、
前記決定に基づいて、前記第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータに対する、１つまたは複数のネットワーク要求を出すことと、
前記第１の表現からの前記量のビデオデータに対する前記要求を出した後で、前記第２の表現からビデオデータを読み出すこととを備える、方法。
【請求項２】
前記第１の表現からのビデオデータをバッファリングすることと、前記バッファリングされたビデオデータの期間に基づいて、前記第２の表現からビデオデータをいつ読み出すかを決定することとをさらに備える、請求項１に記載の方法。
【請求項３】
前記バッファリングされたビデオデータの前記期間に基づいて前記第２の表現からビデオデータを読み出すことが、前記第２の表現中の切替点の間の前記再生時間に概ね等しい前記第１の表現からのある期間のビデオデータをバッファリングした後で、前記第２の表現からデータを読み出すことを備える、請求項２に記載の方法。
【請求項４】
ネットワーク帯域幅の現在利用可能な量を決定することと、
前記第１の表現および前記第２の表現が共通のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信することと、
前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現と前記第２の表現とを選択することとをさらに備える、請求項１に記載の方法。
【請求項５】
ネットワーク帯域幅の現在利用可能な量を決定することと、
前記第１の表現が第１のビットレートを有し、前記第２の表現が前記第１のビットレートよりも高い第２のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信することと、
前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得るかどうかを判定することとをさらに備え、
前記第１の表現からの前記ビデオデータを要求することが、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現からの前記ビデオデータを要求することを備え、
前記第１の表現からの前記ビデオデータを要求した後で前記第２の表現から前記ビデオデータを読み出すことが、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第２の表現から前記ビデオデータを読み出すことを備える、請求項１に記載の方法。
【請求項６】
前記第１の表現からの前記ビデオデータを要求することが、
前記第１の表現からの前記ビデオデータに対する１つまたは複数の要求をサーバデバイスに送信することと、
ユニキャストを介して前記第１の表現からの前記ビデオデータを受信することとを備え、
前記第２の表現から前記ビデオデータを読み出すことが、前記サーバデバイスから、マルチキャストまたはブロードキャストの少なくとも１つを介して、前記ビデオデータを読み出すことを備える、請求項１に記載の方法。
【請求項７】
前記マルチメディアコンテンツに対するマニフェストファイルを受信することをさらに備え、前記第１の間隔を決定することが、前記マニフェストファイル中の情報から前記第１の間隔を決定することを備え、前記第２の間隔を決定することが、前記マニフェストファイル中の情報から前記第２の間隔を決定することを備える、請求項１に記載の方法。
【請求項８】
前記第１の表現および前記第２の表現が共通のビットレートを有し、前記方法が、
前記第１の間隔と前記第２の間隔とを決定する前に、前記共通のビットレートとは異なるビットレートを有する第３の異なる表現からビデオデータを読み出すことと、
ネットワーク帯域幅の現在利用可能な量を決定することと、
前記第１の表現および前記第２の表現の前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量に対してより適切であるという判定に基づいて、前記第１の間隔と前記第２の間隔とを決定し、前記第１の表現からの前記ビデオデータに対する前記１つまたは複数のネットワーク要求を出し、前記第２の表現から前記ビデオデータを読み出すこととを備える、請求項１に記載の方法。
【請求項９】
１つまたは複数のプロセッサを備える、マルチメディアコンテンツのビデオデータを読み出すための装置であって、前記プロセッサが、
前記マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、前記マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定することであって、前記第１の間隔が前記第２の間隔よりも短い、決定することと、
前記決定に基づいて、前記第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータに対する、１つまたは複数のネットワーク要求を出すことと、
前記第１の表現からの前記量のビデオデータに対する前記要求を出した後で、前記第２の表現からビデオデータを読み出すこととを行うように構成される、装置。
【請求項１０】
前記１つまたは複数のプロセッサがさらに、前記第１の表現からのビデオデータをバッファリングし、前記バッファリングされたビデオデータの期間に基づいて、前記第２の表現からビデオデータをいつ読み出すかを決定するように構成される、請求項９に記載の装置。
【請求項１１】
前記バッファリングされたビデオデータの前記期間に基づいて前記第２の表現からビデオデータを読み出すために、前記１つまたは複数のプロセッサが、前記第２の表現中の切替点の間の前記再生時間に概ね等しい前記第１の表現からのある期間のビデオデータをバッファリングした後で、前記第２の表現からデータを読み出すように構成される、請求項１０に記載の装置。
【請求項１２】
前記１つまたは複数のプロセッサがさらに、
ネットワーク帯域幅の現在利用可能な量を決定し、
前記第１の表現および前記第２の表現が共通のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信し、
前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現と前記第２の表現とを選択するように構成される、請求項９に記載の装置。
【請求項１３】
前記１つまたは複数のプロセッサがさらに、
ネットワーク帯域幅の現在利用可能な量を決定し、
前記第１の表現が第１のビットレートを有し、前記第２の表現が前記第１のビットレートよりも高い第２のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信し、
前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得るかどうかを判定するように構成され、
前記第１の表現からの前記ビデオデータを要求するために、前記１つまたは複数のプロセッサが、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現からの前記ビデオデータを要求するように構成され、
前記第１の表現からの前記ビデオデータを要求した後で前記第２の表現から前記ビデオデータを読み出すために、前記１つまたは複数のプロセッサが、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第２の表現から前記ビデオデータを読み出すように構成される、請求項９に記載の装置。
【請求項１４】
前記第１の表現からの前記ビデオデータを要求するために、前記１つまたは複数のプロセッサが、
前記第１の表現からの前記ビデオデータに対する１つまたは複数の要求をサーバデバイスに送信し、
ユニキャストを介して前記第１の表現からの前記ビデオデータを受信するように構成され、
前記第２の表現から前記ビデオデータを読み出すために、前記１つまたは複数のプロセッサが、前記サーバデバイスから、マルチキャストまたはブロードキャストの少なくとも１つを介して、前記ビデオデータを読み出すように構成される、請求項９に記載の装置。
【請求項１５】
前記１つまたは複数のプロセッサが、前記マルチメディアコンテンツに対するマニフェストファイルを受信するように構成され、前記第１の間隔を決定するために、前記１つまたは複数のプロセッサが、前記マニフェストファイル中の情報から前記第１の間隔を決定するように構成され、前記第２の間隔を決定するために、前記１つまたは複数のプロセッサが、前記マニフェストファイル中の情報から前記第２の間隔を決定するように構成される、請求項９に記載の装置。
【請求項１６】
前記第１の表現および前記第２の表現が共通のビットレートを有し、前記１つまたは複数のプロセッサがさらに、
前記第１の間隔と前記第２の間隔とを決定する前に、前記共通のビットレートとは異なるビットレートを有する第３の異なる表現からビデオデータを読み出し、
ネットワーク帯域幅の現在利用可能な量を決定し、
前記第１の表現および前記第２の表現の前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量に対してより適切であるという判定に基づいて、前記第１の間隔と前記第２の間隔とを決定し、前記第１の表現からの前記ビデオデータに対する前記１つまたは複数のネットワーク要求を出し、前記第２の表現から前記ビデオデータを読み出すように構成される、請求項９に記載の装置。
【請求項１７】
マルチメディアコンテンツのビデオデータを読み出すための装置であって、
前記マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、前記マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定するための手段であって、前記第１の間隔が前記第２の間隔よりも短い、手段と、
前記決定に基づいて、前記第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータに対する、１つまたは複数のネットワーク要求を出すための手段と、
前記第１の表現からの前記量のビデオデータに対する前記要求を出した後で、前記第２の表現からビデオデータを読み出すための手段とを備える、装置。
【請求項１８】
前記第１の表現からのビデオデータをバッファリングするための手段と、前記バッファリングされたビデオデータの期間に基づいて、前記第２の表現からビデオデータをいつ読み出すかを決定するための手段とをさらに備える、請求項１７に記載の装置。
【請求項１９】
前記バッファリングされたビデオデータの前記期間に基づいて前記第２の表現からビデオデータを読み出すための手段が、前記第２の表現中の切替点の間の前記再生時間に概ね等しい前記第１の表現からのある期間のビデオデータをバッファリングした後で、前記第２の表現からデータを読み出すための手段を備える、請求項１８に記載の装置。
【請求項２０】
ネットワーク帯域幅の現在利用可能な量を決定するための手段と、
前記第１の表現および前記第２の表現が共通のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信するための手段と、
前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現と前記第２の表現とを選択するための手段とをさらに備える、請求項１７に記載の装置。
【請求項２１】
ネットワーク帯域幅の現在利用可能な量を決定するための手段と、
前記第１の表現が第１のビットレートを有し、前記第２の表現が前記第１のビットレートよりも高い第２のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信するための手段と、
前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得るかどうかを判定するための手段とをさらに備え、
前記第１の表現からの前記ビデオデータを要求するための手段が、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現からの前記ビデオデータを要求するための手段を備え、
前記第１の表現からの前記ビデオデータを要求した後で前記第２の表現からの前記ビデオデータを読み出すための手段が、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第２の表現から前記ビデオデータを読み出すための手段を備える、請求項１７に記載の装置。
【請求項２２】
前記第１の表現からの前記ビデオデータを要求するための手段が、
前記第１の表現からの前記ビデオデータに対する１つまたは複数の要求をサーバデバイスに送信するための手段と、
ユニキャストを介して前記第１の表現からの前記ビデオデータを受信するための手段とを備え、
前記第２の表現から前記ビデオデータを読み出すための手段が、前記サーバデバイスから、マルチキャストまたはブロードキャストの少なくとも１つを介して、前記ビデオデータを読み出すための手段を備える、請求項１７に記載の装置。
【請求項２３】
前記マルチメディアコンテンツに対するマニフェストファイルを受信するための手段をさらに備え、前記第１の間隔を決定するための手段が、前記マニフェストファイル中の情報から前記第１の間隔を決定するための手段を備え、前記第２の間隔を決定するための手段が、前記マニフェストファイル中の情報から前記第２の間隔を決定するための手段を備える、請求項１７に記載の装置。
【請求項２４】
前記第１の表現および前記第２の表現が共通のビットレートを有し、前記装置が、
前記第１の間隔と前記第２の間隔とを決定する前に、前記共通のビットレートとは異なるビットレートを有する第３の異なる表現からビデオデータを読み出すための手段と、
ネットワーク帯域幅の現在利用可能な量を決定するための手段と、
前記第１の表現および前記第２の表現の前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量に対してより適切であるという判定に基づいて、前記第１の間隔と前記第２の間隔とを決定するための手段と、前記第１の表現からの前記ビデオデータに対する前記１つまたは複数のネットワーク要求を出すための手段と、前記第２の表現から前記ビデオデータを読み出すこととを備える、請求項１７に記載の装置。
【請求項２５】
命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令が、実行されると、１つまたは複数のプロセッサに、
前記マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、前記マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定することであって、前記第１の間隔が前記第２の間隔よりも短い、決定することと、
前記決定に基づいて、前記第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータに対する、１つまたは複数のネットワーク要求を出すことと、
前記第１の表現からの前記量のビデオデータに対する前記要求を出した後で、前記第２の表現からビデオデータを読み出すこととを行わせる、非一時的コンピュータ可読記憶媒体。
【請求項２６】
前記命令が、前記１つまたは複数のプロセッサに、前記第１の表現からのビデオデータをバッファリングさせ、前記バッファリングされたビデオデータの期間に基づいて、前記第２の表現からビデオデータをいつ読み出すかを決定させる、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項２７】
前記バッファリングされたビデオデータの前記期間に基づいて前記第２の表現からビデオデータを読み出すために、前記命令が、前記１つまたは複数のプロセッサに、前記第２の表現中の切替点の間の前記再生時間に概ね等しい前記第１の表現からのある期間のビデオデータをバッファリングした後で、前記第２の表現からデータを読み出させる、請求項２６に記載のコンピュータ可読記憶媒体。
【請求項２８】
前記命令が、前記１つまたは複数のプロセッサに、
ネットワーク帯域幅の現在利用可能な量を決定させ、
前記第１の表現および前記第２の表現が共通のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信させ、
前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現と前記第２の表現とを選択させる、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記１つまたは複数のプロセッサがさらに、
ネットワーク帯域幅の現在利用可能な量を決定し、
前記第１の表現が第１のビットレートを有し、前記第２の表現が前記第１のビットレートよりも高い第２のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信し、
前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得るかどうかを判定するように構成され、
前記第１の表現からの前記ビデオデータを要求するために、前記命令が、前記１つまたは複数のプロセッサに、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現からの前記ビデオデータを要求させ、
前記第１の表現からの前記ビデオデータを要求した後で前記第２の表現から前記ビデオデータを読み出すために、前記命令が、前記１つまたは複数のプロセッサに、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第２の表現から前記ビデオデータを読み出させる、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記第１の表現からの前記ビデオデータを要求するために、前記命令が、前記１つまたは複数のプロセッサに、
前記第１の表現からの前記ビデオデータに対する１つまたは複数の要求をサーバデバイスへ送信させ、
ユニキャストを介して前記第１の表現からの前記ビデオデータを受信させ、
前記第２の表現から前記ビデオデータを読み出すために、前記命令が、前記１つまたは複数のプロセッサに、前記サーバデバイスから、マルチキャストまたはブロードキャストの少なくとも１つを介して、前記ビデオデータを読み出させる、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項３１】
前記命令が、前記１つまたは複数のプロセッサに、前記マルチメディアコンテンツに対するマニフェストファイルを受信させ、前記第１の間隔を決定するために、前記命令が、前記１つまたは複数のプロセッサに、前記マニフェストファイル中の情報から前記第１の間隔を決定させ、前記第２の間隔を決定するために、前記命令が、前記１つまたは複数のプロセッサに、前記マニフェストファイル中の情報から前記第２の間隔を決定させる、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項３２】
前記第１の表現および前記第２の表現が共通のビットレートを有し、前記命令がさらに、前記１つまたは複数のプロセッサに、
前記第１の間隔と前記第２の間隔とを決定する前に、前記共通のビットレートとは異なるビットレートを有する第３の異なる表現からビデオデータを読み出させ、
ネットワーク帯域幅の現在利用可能な量を決定させ、
前記第１の表現および前記第２の表現の前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量に対してより適切であるという判定に基づいて、前記第１の間隔と前記第２の間隔とを決定させ、前記第１の表現からの前記ビデオデータに対する前記１つまたは複数のネットワーク要求を出させ、前記第２の表現から前記ビデオデータを読み出させる、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項３３】
マルチメディアコンテンツのビデオデータをストリーミングする方法であって、
前記マルチメディアコンテンツの複数の表現を受信することであって、前記表現が、前記それぞれの表現の切替点の間隔を表す切替点間隔情報を含む、受信することと、
前記クライアントデバイスからの要求に応答して、前記表現のうちの第１の表現のビデオデータをクライアントデバイスに送信することと、
前記表現のうちの第２の異なる表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータを送信した後で、前記表現のうちの前記第２の表現のビデオデータを前記クライアントデバイスに送信することであって、前記表現のうちの前記第２の表現の切替点の前記間隔が、前記表現のうちの前記第１の表現の切替点の前記間隔より短い、送信することとを備える、方法。
【請求項３４】
前記複数の表現を形成することが、
前記表現のうちの前記第１の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第１の表現を形成することと、
前記第２の表現の前記切替点の各々が前記第１の表現の前記切替点の１つの時間的位置に対応する時間的位置で発生するように、前記表現のうちの前記第２の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第２の表現を形成することとを備える、請求項３３に記載の方法。
【請求項３５】
前記表現のうちの前記第２の表現の前記切替点が、前記表現のうちの前記第１の表現の前記切替点のサブセットを備える、請求項３４に記載の方法。
【請求項３６】
前記表現のうちの前記第１の表現の前記ビデオデータを送信することが、ユニキャストを介して前記表現のうちの前記第１の表現の前記ビデオデータを送信することを備え、
前記表現のうちの前記第２の表現の前記ビデオデータを送信することが、ブロードキャストを介して前記表現のうちの前記第２の表現の前記ビデオデータを送信することを備える、請求項３３に記載の方法。
【請求項３７】
前記表現切替点間隔情報を割り当てることが、前記マルチメディアコンテンツに対するマニフェストファイル中で前記切替点間隔情報を提供することを備える、請求項３３に記載の方法。
【請求項３８】
１つまたは複数のプロセッサを備える、マルチメディアコンテンツのビデオデータをストリーミングするための装置であって、前記プロセッサが、
前記マルチメディアコンテンツの複数の表現を受信することであって、前記表現が、前記それぞれの表現の切替点の間隔を表す切替点間隔情報を含む、受信することと、
前記クライアントデバイスからの要求に応答して、前記表現のうちの第１の表現のビデオデータをクライアントデバイスに送信することと、
前記表現のうちの第２の異なる表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータを送信した後で、前記表現のうちの前記第２の表現のビデオデータを前記クライアントデバイスに送信することであって、前記表現のうちの前記第２の表現の切替点の前記間隔が、前記表現のうちの前記第１の表現の切替点の前記間隔より短い、送信することとを行うように構成される、装置。
【請求項３９】
前記複数の表現を形成するために、前記１つまたは複数のプロセッサが、
前記表現のうちの前記第１の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第１の表現を形成し、
前記第２の表現の前記切替点の各々が前記第１の表現の１つの前記切替点の時間的位置に対応する時間的位置で発生するように、前記表現のうちの前記第２の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第２の表現を形成するように構成される、請求項３８に記載の装置。
【請求項４０】
前記表現のうちの前記第２の表現の前記切替点が、前記表現のうちの前記第１の表現の前記切替点のサブセットを備える、請求項３９に記載の装置。
【請求項４１】
前記表現のうちの前記第１の表現の前記ビデオデータを送信するために、前記１つまたは複数のプロセッサが、ユニキャストを介して前記表現のうちの前記第１の表現の前記ビデオデータを送信するように構成され、
前記表現のうちの前記第２の表現の前記ビデオデータを送信するために、前記１つまたは複数のプロセッサが、ブロードキャストを介して前記表現のうちの前記第２の表現の前記ビデオデータを送信するように構成される、請求項３８に記載の装置。
【請求項４２】
表現切替点間隔情報を割り当てるために、前記１つまたは複数のプロセッサが、前記マルチメディアコンテンツに対するマニフェストファイル中で前記切替点間隔情報を提供するように構成される、請求項３８に記載の装置。
【請求項４３】
マルチメディアコンテンツのビデオデータをストリーミングするための装置であって、
前記マルチメディアコンテンツの複数の表現を受信するための手段であって、前記表現が、前記それぞれの表現の切替点の間隔を表す切替点間隔情報を含む、手段と、
前記クライアントデバイスからの要求に応答して、前記表現のうちの第１の表現のビデオデータをクライアントデバイスに送信するための手段と、
前記表現のうちの第２の異なる表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータを送信した後で、前記表現のうちの前記第２の表現のビデオデータを前記クライアントデバイスに送信するための手段であって、前記表現のうちの前記第２の表現の切替点の前記間隔が、前記表現のうちの前記第１の表現の切替点の前記間隔より短い、手段とを備える、装置。
【請求項４４】
前記複数の表現を形成するための手段が、
前記表現のうちの前記第１の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第１の表現を形成するための手段と、
前記第２の表現の前記切替点の各々が前記第１の表現の前記切替点の１つの時間的位置に対応する時間的位置で発生するように、前記表現のうちの前記第２の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第２の表現を形成するための手段とを備える、請求項４３に記載の装置。
【請求項４５】
前記表現のうちの前記第２の表現の前記切替点が、前記表現のうちの前記第１の表現の前記切替点のサブセットを備える、請求項４４に記載の装置。
【請求項４６】
前記表現のうちの前記第１の表現の前記ビデオデータを送信するための手段が、ユニキャストを介して前記表現のうちの前記第１の表現の前記ビデオデータを送信するための手段を備え、
前記表現のうちの前記第２の表現の前記ビデオデータを送信するための手段が、ブロードキャストを介して前記表現のうちの前記第２の表現の前記ビデオデータを送信するための手段を備える、請求項４３に記載の装置。
【請求項４７】
表現切替点間隔情報を割り当てるための手段が、前記マルチメディアコンテンツに対するマニフェストファイル中で前記切替点間隔情報を提供するための手段を備える、請求項４３に記載の装置。
【請求項４８】
命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令が、実行されると、１つまたは複数のプロセッサに、
前記マルチメディアコンテンツの複数の表現を受信することであって、前記表現が、前記それぞれの表現の切替点の間隔を表す切替点間隔情報を含む、受信することと、
前記クライアントデバイスからの要求に応答して、前記表現のうちの第１の表現のビデオデータをクライアントデバイスへ送信することと、
前記表現のうちの第２の異なる表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータを送信した後で、前記表現のうちの前記第２の表現のビデオデータを前記クライアントデバイスへ送信することであって、前記表現のうちの前記第２の表現の切替点の前記間隔が、前記表現のうちの前記第１の表現の切替点の前記間隔より短い、送信することとを行わせる、非一時的コンピュータ可読記憶媒体。
【請求項４９】
前記複数の表現を形成するために、前記命令が、前記１つまたは複数のプロセッサに、
前記表現のうちの前記第１の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第１の表現を形成させ、
前記第２の表現の前記切替点の各々が前記第１の表現の前記切替点の１つの時間的位置に対応する時間的位置で発生するように、前記表現のうちの前記第２の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第２の表現を形成させる、請求項４８に記載のコンピュータ可読記憶媒体。
【請求項５０】
前記表現のうちの前記第２の表現の前記切替点が、前記表現のうちの前記第１の表現の前記切替点のサブセットを備える、請求項４９に記載のコンピュータ可読記憶媒体。
【請求項５１】
前記表現のうちの前記第１の表現の前記ビデオデータを送信するために、前記命令が、前記１つまたは複数のプロセッサに、ユニキャストを介して前記表現のうちの前記第１の表現の前記ビデオデータを送信させ、
前記表現のうちの前記第２の表現の前記ビデオデータを送信するために、前記命令が、前記１つまたは複数のプロセッサに、ブロードキャストを介して前記表現のうちの前記第２の表現の前記ビデオデータを送信させる、請求項４８に記載のコンピュータ可読記憶媒体。
【請求項５２】
表現切替点間隔情報を割り当てるために、前記命令が、前記１つまたは複数のプロセッサに、前記マルチメディアコンテンツに対するマニフェストファイル中で前記切替点間隔情報を提供させる、請求項４８に記載のコンピュータ可読記憶媒体。
【請求項５３】
前記第２の表現からビデオデータを読み出すことが、前記第１の表現からの前記量のビデオデータの相対的な終了部から開始する、前記第２の表現からビデオデータを読み出すことを備える、請求項１に記載の方法。
【請求項５４】
前記第２の表現からビデオデータを読み出すことが、前記第２の表現の切替点から開始する、前記第２の表現からビデオデータを読み出すことを備え、前記第２の表現の前記切替点が、前記第１の表現から読み出された前記量のデータ内の表示時間を有する、請求項１に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１７０
【補正方法】変更
【補正の内容】
【０１７０】
様々な例が説明されてきた。これらおよび他の例は、以下の特許請求の範囲内に入る。
以下に、本件の出願当初の請求項を付記する。
［Ｃ１］
マルチメディアコンテンツのビデオデータを検索する方法であって、
前記マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、前記マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定することであって、前記第１の間隔が前記第２の間隔よりも短い、決定することと、
前記決定に基づいて、前記第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータに対する、１つまたは複数のネットワーク要求を出すことと、
前記第１の表現からの前記量のビデオデータに対する前記要求を出した後で、前記第２の表現からビデオデータを検索することとを備える、方法。
［Ｃ２］
前記第１の表現からのビデオデータをバッファリングすることと、前記バッファリングされたビデオデータの期間に基づいて、前記第２の表現からビデオデータをいつ検索するかを決定することとをさらに備える、請求項１に記載の方法。
［Ｃ３］
前記バッファリングされたビデオデータの前記期間に基づいて前記第２の表現からビデオデータを検索することが、前記第２の表現中の切替点の間の前記再生時間に概ね等しい前記第１の表現からのある期間のビデオデータをバッファリングした後で、前記第２の表現からデータを検索することを備える、請求項２に記載の方法。
［Ｃ４］
ネットワーク帯域幅の現在利用可能な量を決定することと、
前記第１の表現および前記第２の表現が共通のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信することと、
前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現と前記第２の表現とを選択することとをさらに備える、請求項１に記載の方法。
［Ｃ５］
ネットワーク帯域幅の現在利用可能な量を決定することと、
前記第１の表現が第１のビットレートを有し、前記第２の表現が前記第１のビットレートよりも高い第２のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信することと、
前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得るかどうかを判定することとをさらに備え、
前記第１の表現からの前記ビデオデータを要求することが、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現からの前記ビデオデータを要求することを備え、
前記第１の表現からの前記ビデオデータを要求した後で前記第２の表現から前記ビデオデータを検索することが、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第２の表現から前記ビデオデータを検索することを備える、請求項１に記載の方法。
［Ｃ６］
前記第１の表現からの前記ビデオデータを要求することが、
前記第１の表現からの前記ビデオデータに対する１つまたは複数の要求をサーバデバイスに送信することと、
ユニキャストを介して前記第１の表現からの前記ビデオデータを受信することとを備え、
前記第２の表現から前記ビデオデータを検索することが、前記サーバデバイスから、マルチキャストまたはブロードキャストの少なくとも１つを介して、前記ビデオデータを検索することを備える、請求項１に記載の方法。
［Ｃ７］
前記マルチメディアコンテンツに対するマニフェストファイルを受信することをさらに備え、前記第１の間隔を決定することが、前記マニフェストファイル中の情報から前記第１の間隔を決定することを備え、前記第２の間隔を決定することが、前記マニフェストファイル中の情報から前記第２の間隔を決定することを備える、請求項１に記載の方法。
［Ｃ８］
前記第１の表現および前記第２の表現が共通のビットレートを有し、前記方法が、
前記第１の間隔と前記第２の間隔とを決定する前に、前記共通のビットレートとは異なるビットレートを有する第３の異なる表現からビデオデータを検索することと、
ネットワーク帯域幅の現在利用可能な量を決定することと、
前記第１の表現および前記第２の表現の前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量に対してより適切であるという判定に基づいて、前記第１の間隔と前記第２の間隔とを決定し、前記第１の表現からの前記ビデオデータに対する前記１つまたは複数のネットワーク要求を出し、前記第２の表現から前記ビデオデータを検索することとを備える、請求項１に記載の方法。
［Ｃ９］
１つまたは複数のプロセッサを備える、マルチメディアコンテンツのビデオデータを検索するための装置であって、前記プロセッサが、
前記マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、前記マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定することであって、前記第１の間隔が前記第２の間隔よりも短い、決定することと、
前記決定に基づいて、前記第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータに対する、１つまたは複数のネットワーク要求を出すことと、
前記第１の表現からの前記量のビデオデータに対する前記要求を出した後で、前記第２の表現からビデオデータを検索することとを行うように構成される、装置。
［Ｃ１０］
前記１つまたは複数のプロセッサがさらに、前記第１の表現からのビデオデータをバッファリングし、前記バッファリングされたビデオデータの期間に基づいて、前記第２の表現からビデオデータをいつ検索するかを決定するように構成される、請求項９に記載の装置。
［Ｃ１１］
前記バッファリングされたビデオデータの前記期間に基づいて前記第２の表現からビデオデータを検索するために、前記１つまたは複数のプロセッサが、前記第２の表現中の切替点の間の前記再生時間に概ね等しい前記第１の表現からのある期間のビデオデータをバッファリングした後で、前記第２の表現からデータを検索するように構成される、請求項１０に記載の装置。
［Ｃ１２］
前記１つまたは複数のプロセッサがさらに、
ネットワーク帯域幅の現在利用可能な量を決定し、
前記第１の表現および前記第２の表現が共通のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信し、
前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現と前記第２の表現とを選択するように構成される、請求項９に記載の装置。
［Ｃ１３］
前記１つまたは複数のプロセッサがさらに、
ネットワーク帯域幅の現在利用可能な量を決定し、
前記第１の表現が第１のビットレートを有し、前記第２の表現が前記第１のビットレートよりも高い第２のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信し、
前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得るかどうかを判定するように構成され、
前記第１の表現からの前記ビデオデータを要求するために、前記１つまたは複数のプロセッサが、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現からの前記ビデオデータを要求するように構成され、
前記第１の表現からの前記ビデオデータを要求した後で前記第２の表現から前記ビデオデータを検索するために、前記１つまたは複数のプロセッサが、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第２の表現から前記ビデオデータを検索するように構成される、請求項９に記載の装置。
［Ｃ１４］
前記第１の表現からの前記ビデオデータを要求するために、前記１つまたは複数のプロセッサが、
前記第１の表現からの前記ビデオデータに対する１つまたは複数の要求をサーバデバイスに送信し、
ユニキャストを介して前記第１の表現からの前記ビデオデータを受信するように構成され、
前記第２の表現から前記ビデオデータを検索するために、前記１つまたは複数のプロセッサが、前記サーバデバイスから、マルチキャストまたはブロードキャストの少なくとも１つを介して、前記ビデオデータを検索するように構成される、請求項９に記載の装置。
［Ｃ１５］
前記１つまたは複数のプロセッサが、前記マルチメディアコンテンツに対するマニフェストファイルを受信するように構成され、前記第１の間隔を決定するために、前記１つまたは複数のプロセッサが、前記マニフェストファイル中の情報から前記第１の間隔を決定するように構成され、前記第２の間隔を決定するために、前記１つまたは複数のプロセッサが、前記マニフェストファイル中の情報から前記第２の間隔を決定するように構成される、請求項９に記載の装置。
［Ｃ１６］
前記第１の表現および前記第２の表現が共通のビットレートを有し、前記１つまたは複数のプロセッサがさらに、
前記第１の間隔と前記第２の間隔とを決定する前に、前記共通のビットレートとは異なるビットレートを有する第３の異なる表現からビデオデータを検索し、
ネットワーク帯域幅の現在利用可能な量を決定し、
前記第１の表現および前記第２の表現の前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量に対してより適切であるという判定に基づいて、前記第１の間隔と前記第２の間隔とを決定し、前記第１の表現からの前記ビデオデータに対する前記１つまたは複数のネットワーク要求を出し、前記第２の表現から前記ビデオデータを検索するように構成される、請求項９に記載の装置。
［Ｃ１７］
マルチメディアコンテンツのビデオデータを検索するための装置であって、
前記マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、前記マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定するための手段であって、前記第１の間隔が前記第２の間隔よりも短い、手段と、
前記決定に基づいて、前記第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータに対する、１つまたは複数のネットワーク要求を出すための手段と、
前記第１の表現からの前記量のビデオデータに対する前記要求を出した後で、前記第２の表現からビデオデータを検索するための手段とを備える、装置。
［Ｃ１８］
前記第１の表現からのビデオデータをバッファリングするための手段と、前記バッファリングされたビデオデータの期間に基づいて、前記第２の表現からビデオデータをいつ検索するかを決定するための手段とをさらに備える、請求項１７に記載の装置。
［Ｃ１９］
前記バッファリングされたビデオデータの前記期間に基づいて前記第２の表現からビデオデータを検索するための手段が、前記第２の表現中の切替点の間の前記再生時間に概ね等しい前記第１の表現からのある期間のビデオデータをバッファリングした後で、前記第２の表現からデータを検索するための手段を備える、請求項１８に記載の装置。
［Ｃ２０］
ネットワーク帯域幅の現在利用可能な量を決定するための手段と、
前記第１の表現および前記第２の表現が共通のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信するための手段と、
前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現と前記第２の表現とを選択するための手段とをさらに備える、請求項１７に記載の装置。
［Ｃ２１］
ネットワーク帯域幅の現在利用可能な量を決定するための手段と、
前記第１の表現が第１のビットレートを有し、前記第２の表現が前記第１のビットレートよりも高い第２のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信するための手段と、
前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得るかどうかを判定するための手段とをさらに備え、
前記第１の表現からの前記ビデオデータを要求するための手段が、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現からの前記ビデオデータを要求するための手段を備え、
前記第１の表現からの前記ビデオデータを要求した後で前記第２の表現からの前記ビデオデータを検索するための手段が、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第２の表現から前記ビデオデータを検索するための手段を備える、請求項１７に記載の装置。
［Ｃ２２］
前記第１の表現からの前記ビデオデータを要求するための手段が、
前記第１の表現からの前記ビデオデータに対する１つまたは複数の要求をサーバデバイスに送信するための手段と、
ユニキャストを介して前記第１の表現からの前記ビデオデータを受信するための手段とを備え、
前記第２の表現から前記ビデオデータを検索するための手段が、前記サーバデバイスから、マルチキャストまたはブロードキャストの少なくとも１つを介して、前記ビデオデータを検索するための手段を備える、請求項１７に記載の装置。
［Ｃ２３］
前記マルチメディアコンテンツに対するマニフェストファイルを受信するための手段をさらに備え、前記第１の間隔を決定するための手段が、前記マニフェストファイル中の情報から前記第１の間隔を決定するための手段を備え、前記第２の間隔を決定するための手段が、前記マニフェストファイル中の情報から前記第２の間隔を決定するための手段を備える、請求項１７に記載の装置。
［Ｃ２４］
前記第１の表現および前記第２の表現が共通のビットレートを有し、前記装置が、
前記第１の間隔と前記第２の間隔とを決定する前に、前記共通のビットレートとは異なるビットレートを有する第３の異なる表現からビデオデータを検索するための手段と、
ネットワーク帯域幅の現在利用可能な量を決定するための手段と、
前記第１の表現および前記第２の表現の前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量に対してより適切であるという判定に基づいて、前記第１の間隔と前記第２の間隔とを決定するための手段と、前記第１の表現からの前記ビデオデータに対する前記１つまたは複数のネットワーク要求を出すための手段と、前記第２の表現から前記ビデオデータを検索することとを備える、請求項１７に記載の装置。
［Ｃ２５］
命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令が、実行されると、１つまたは複数のプロセッサに、
前記マルチメディアコンテンツの第１の表現に対する切替点の第１の間隔と、前記マルチメディアコンテンツの第２の表現に対する切替点の第２の間隔とを決定することであって、前記第１の間隔が前記第２の間隔よりも短い、決定することと、
前記決定に基づいて、前記第２の表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータに対する、１つまたは複数のネットワーク要求を出すことと、
前記第１の表現からの前記量のビデオデータに対する前記要求を出した後で、前記第２の表現からビデオデータを検索することとを行わせる、非一時的コンピュータ可読記憶媒体。
［Ｃ２６］
前記命令が、前記１つまたは複数のプロセッサに、前記第１の表現からのビデオデータをバッファリングさせ、前記バッファリングされたビデオデータの期間に基づいて、前記第２の表現からビデオデータをいつ検索するかを決定させる、請求項２５に記載のコンピュータ可読記憶媒体。
［Ｃ２７］
前記バッファリングされたビデオデータの前記期間に基づいて前記第２の表現からビデオデータを検索するために、前記命令が、前記１つまたは複数のプロセッサに、前記第２の表現中の切替点の間の前記再生時間に概ね等しい前記第１の表現からのある期間のビデオデータをバッファリングした後で、前記第２の表現からデータを読み出させる、請求項２６に記載のコンピュータ可読記憶媒体。
［Ｃ２８］
前記命令が、前記１つまたは複数のプロセッサに、
ネットワーク帯域幅の現在利用可能な量を決定させ、
前記第１の表現および前記第２の表現が共通のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信させ、
前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現と前記第２の表現とを選択させる、請求項２５に記載のコンピュータ可読記憶媒体。
［Ｃ２９］
前記１つまたは複数のプロセッサがさらに、
ネットワーク帯域幅の現在利用可能な量を決定し、
前記第１の表現が第１のビットレートを有し、前記第２の表現が前記第１のビットレートよりも高い第２のビットレートを有することを示す、前記マルチメディアコンテンツに対するマニフェストを受信し、
前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得るかどうかを判定するように構成され、
前記第１の表現からの前記ビデオデータを要求するために、前記命令が、前記１つまたは複数のプロセッサに、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第１の表現からの前記ビデオデータを要求させ、
前記第１の表現からの前記ビデオデータを要求した後で前記第２の表現から前記ビデオデータを検索するために、前記命令が、前記１つまたは複数のプロセッサに、前記第２のビットレートがネットワーク帯域幅の前記現在利用可能な量によって満たされ得ると判定した後で、前記第２の表現から前記ビデオデータを検索させる、請求項２５に記載のコンピュータ可読記憶媒体。
［Ｃ３０］
前記第１の表現からの前記ビデオデータを要求するために、前記命令が、前記１つまたは複数のプロセッサに、
前記第１の表現からの前記ビデオデータに対する１つまたは複数の要求をサーバデバイスへ送信させ、
ユニキャストを介して前記第１の表現からの前記ビデオデータを受信させ、
前記第２の表現から前記ビデオデータを検索するために、前記命令が、前記１つまたは複数のプロセッサに、前記サーバデバイスから、マルチキャストまたはブロードキャストの少なくとも１つを介して、前記ビデオデータを読み出させる、請求項２５に記載のコンピュータ可読記憶媒体。
［Ｃ３１］
前記命令が、前記１つまたは複数のプロセッサに、前記マルチメディアコンテンツに対するマニフェストファイルを受信させ、前記第１の間隔を決定するために、前記命令が、前記１つまたは複数のプロセッサに、前記マニフェストファイル中の情報から前記第１の間隔を決定させ、前記第２の間隔を決定するために、前記命令が、前記１つまたは複数のプロセッサに、前記マニフェストファイル中の情報から前記第２の間隔を決定させる、請求項２５に記載のコンピュータ可読記憶媒体。
［Ｃ３２］
前記第１の表現および前記第２の表現が共通のビットレートを有し、前記命令がさらに、前記１つまたは複数のプロセッサに、
前記第１の間隔と前記第２の間隔とを決定する前に、前記共通のビットレートとは異なるビットレートを有する第３の異なる表現からビデオデータを検索させ、
ネットワーク帯域幅の現在利用可能な量を決定させ、
前記第１の表現および前記第２の表現の前記共通のビットレートがネットワーク帯域幅の前記現在利用可能な量に対してより適切であるという判定に基づいて、前記第１の間隔と前記第２の間隔とを決定させ、前記第１の表現からの前記ビデオデータに対する前記１つまたは複数のネットワーク要求を出させ、前記第２の表現から前記ビデオデータを検索させる、請求項２５に記載のコンピュータ可読記憶媒体。
［Ｃ３３］
マルチメディアコンテンツのビデオデータをストリーミングする方法であって、
前記マルチメディアコンテンツの複数の表現を受信することであって、前記表現が、前記それぞれの表現の切替点の間隔を表す切替点間隔情報を含む、受信することと、
前記クライアントデバイスからの要求に応答して、前記表現のうちの第１の表現のビデオデータをクライアントデバイスに送信することと、
前記表現のうちの第２の異なる表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータを送信した後で、前記表現のうちの前記第２の表現のビデオデータを前記クライアントデバイスに送信することであって、前記表現のうちの前記第２の表現の切替点の前記間隔が、前記表現のうちの前記第１の表現の切替点の前記間隔より短い、送信することとを備える、方法。
［Ｃ３４］
前記複数の表現を形成することが、
前記表現のうちの前記第１の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第１の表現を形成することと、
前記第２の表現の前記切替点の各々が前記第１の表現の前記切替点の１つの時間的位置に対応する時間的位置で発生するように、前記表現のうちの前記第２の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第２の表現を形成することとを備える、請求項３３に記載の方法。
［Ｃ３５］
前記表現のうちの前記第２の表現の前記切替点が、前記表現のうちの前記第１の表現の前記切替点のサブセットを備える、請求項３４に記載の方法。
［Ｃ３６］
前記表現のうちの前記第１の表現の前記ビデオデータを送信することが、ユニキャストを介して前記表現のうちの前記第１の表現の前記ビデオデータを送信することを備え、
前記表現のうちの前記第２の表現の前記ビデオデータを送信することが、ブロードキャストを介して前記表現のうちの前記第２の表現の前記ビデオデータを送信することを備える、請求項３３に記載の方法。
［Ｃ３７］
前記表現切替点間隔情報を割り当てることが、前記マルチメディアコンテンツに対するマニフェストファイル中で前記切替点間隔情報を提供することを備える、請求項３３に記載の方法。
［Ｃ３８］
１つまたは複数のプロセッサを備える、マルチメディアコンテンツのビデオデータをストリーミングするための装置であって、前記プロセッサが、
前記マルチメディアコンテンツの複数の表現を受信することであって、前記表現が、前記それぞれの表現の切替点の間隔を表す切替点間隔情報を含む、受信することと、
前記クライアントデバイスからの要求に応答して、前記表現のうちの第１の表現のビデオデータをクライアントデバイスに送信することと、
前記表現のうちの第２の異なる表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータを送信した後で、前記表現のうちの前記第２の表現のビデオデータを前記クライアントデバイスに送信することであって、前記表現のうちの前記第２の表現の切替点の前記間隔が、前記表現のうちの前記第１の表現の切替点の前記間隔より短い、送信することとを行うように構成される、装置。
［Ｃ３９］
前記複数の表現を形成するために、前記１つまたは複数のプロセッサが、
前記表現のうちの前記第１の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第１の表現を形成し、
前記第２の表現の前記切替点の各々が前記第１の表現の１つの前記切替点の時間的位置に対応する時間的位置で発生するように、前記表現のうちの前記第２の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第２の表現を形成するように構成される、請求項３８に記載の装置。
［Ｃ４０］
前記表現のうちの前記第２の表現の前記切替点が、前記表現のうちの前記第１の表現の前記切替点のサブセットを備える、請求項３９に記載の装置。
［Ｃ４１］
前記表現のうちの前記第１の表現の前記ビデオデータを送信するために、前記１つまたは複数のプロセッサが、ユニキャストを介して前記表現のうちの前記第１の表現の前記ビデオデータを送信するように構成され、
前記表現のうちの前記第２の表現の前記ビデオデータを送信するために、前記１つまたは複数のプロセッサが、ブロードキャストを介して前記表現のうちの前記第２の表現の前記ビデオデータを送信するように構成される、請求項３８に記載の装置。
［Ｃ４２］
表現切替点間隔情報を割り当てるために、前記１つまたは複数のプロセッサが、前記マルチメディアコンテンツに対するマニフェストファイル中で前記切替点間隔情報を提供するように構成される、請求項３８に記載の装置。
［Ｃ４３］
マルチメディアコンテンツのビデオデータをストリーミングするための装置であって、
前記マルチメディアコンテンツの複数の表現を受信するための手段であって、前記表現が、前記それぞれの表現の切替点の間隔を表す切替点間隔情報を含む、手段と、
前記クライアントデバイスからの要求に応答して、前記表現のうちの第１の表現のビデオデータをクライアントデバイスに送信するための手段と、
前記表現のうちの第２の異なる表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータを送信した後で、前記表現のうちの前記第２の表現のビデオデータを前記クライアントデバイスに送信するための手段であって、前記表現のうちの前記第２の表現の切替点の前記間隔が、前記表現のうちの前記第１の表現の切替点の前記間隔より短い、手段とを備える、装置。
［Ｃ４４］
前記複数の表現を形成するための手段が、
前記表現のうちの前記第１の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第１の表現を形成するための手段と、
前記第２の表現の前記切替点の各々が前記第１の表現の前記切替点の１つの時間的位置に対応する時間的位置で発生するように、前記表現のうちの前記第２の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第２の表現を形成するための手段とを備える、請求項４３に記載の装置。
［Ｃ４５］
前記表現のうちの前記第２の表現の前記切替点が、前記表現のうちの前記第１の表現の前記切替点のサブセットを備える、請求項４４に記載の装置。
［Ｃ４６］
前記表現のうちの前記第１の表現の前記ビデオデータを送信するための手段が、ユニキャストを介して前記表現のうちの前記第１の表現の前記ビデオデータを送信するための手段を備え、
前記表現のうちの前記第２の表現の前記ビデオデータを送信するための手段が、ブロードキャストを介して前記表現のうちの前記第２の表現の前記ビデオデータを送信するための手段を備える、請求項４３に記載の装置。
［Ｃ４７］
表現切替点間隔情報を割り当てるための手段が、前記マルチメディアコンテンツに対するマニフェストファイル中で前記切替点間隔情報を提供するための手段を備える、請求項４３に記載の装置。
［Ｃ４８］
命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令が、実行されると、１つまたは複数のプロセッサに、
前記マルチメディアコンテンツの複数の表現を受信することであって、前記表現が、前記それぞれの表現の切替点の間隔を表す切替点間隔情報を含む、受信することと、
前記クライアントデバイスからの要求に応答して、前記表現のうちの第１の表現のビデオデータをクライアントデバイスへ送信することと、
前記表現のうちの第２の異なる表現中の切替点の間の再生時間に少なくとも等しい再生時間を有する前記第１の表現からのある量のビデオデータを送信した後で、前記表現のうちの前記第２の表現のビデオデータを前記クライアントデバイスへ送信することであって、前記表現のうちの前記第２の表現の切替点の前記間隔が、前記表現のうちの前記第１の表現の切替点の前記間隔より短い、送信することとを行わせる、非一時的コンピュータ可読記憶媒体。
［Ｃ４９］
前記複数の表現を形成するために、前記命令が、前記１つまたは複数のプロセッサに、
前記表現のうちの前記第１の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第１の表現を形成させ、
前記第２の表現の前記切替点の各々が前記第１の表現の前記切替点の１つの時間的位置に対応する時間的位置で発生するように、前記表現のうちの前記第２の表現の切替点の前記間隔で切替点を含むように、前記表現のうちの前記第２の表現を形成させる、請求項４８に記載のコンピュータ可読記憶媒体。
［Ｃ５０］
前記表現のうちの前記第２の表現の前記切替点が、前記表現のうちの前記第１の表現の前記切替点のサブセットを備える、請求項４９に記載のコンピュータ可読記憶媒体。
［Ｃ５１］
前記表現のうちの前記第１の表現の前記ビデオデータを送信するために、前記命令が、前記１つまたは複数のプロセッサに、ユニキャストを介して前記表現のうちの前記第１の表現の前記ビデオデータを送信させ、
前記表現のうちの前記第２の表現の前記ビデオデータを送信するために、前記命令が、前記１つまたは複数のプロセッサに、ブロードキャストを介して前記表現のうちの前記第２の表現の前記ビデオデータを送信させる、請求項４８に記載のコンピュータ可読記憶媒体。
［Ｃ５２］
表現切替点間隔情報を割り当てるために、前記命令が、前記１つまたは複数のプロセッサに、前記マルチメディアコンテンツに対するマニフェストファイル中で前記切替点間隔情報を提供させる、請求項４８に記載のコンピュータ可読記憶媒体。
【国際調査報告】
2014534684.tif 000013
2014534684.tif 000014