(57)【要約】本発明の実施形態による、各ストリームの遅延およびチャネルレートに基づいてストリームを選択する適応型ビットレートストリーミング再生デバイスのためのシステムおよび方法が開示される。本発明の一実施形態は、クライアントアプリケーションおよびバッファを含むメモリとプロセッサとを含み、クライアントアプリケーションは、第１のビデオストリームを一組の代替ビデオストリームから選択し、少なくとも複数の代替ビデオストリームがより高い最大ビットレートでエンコードされる一組の代替ビデオストリーム内のストリームの上限シーク遅延以下である上限シーク遅延を有するようにエンコードされ、ネットワーク接続を介して第１のビデオストリームのチャンクを要求し、要求されたチャンクをバッファ内に記憶するようにプロセッサを構成する。このシステムおよび方法は、バッファリングされたチャンクの再生を含んでもよい。
2014505425.tif 000002
【特許請求の範囲】
【請求項１】
一組の代替ビデオストリームを含むメディアの適応型ビットレートストリーミングを行うように構成された再生デバイスであって、
該再生デバイスは、
クライアントアプリケーションおよびバッファを含むメモリと、
プロセッサと
を備え、
該クライアントアプリケーションは、
第１のビデオストリームを一組の代替ビデオストリームから選択することであって、少なくとも複数の該代替ビデオストリームは、より高い最大ビットレートでエンコードされる該一組の代替ビデオストリーム中のストリームの上限シーク遅延以下である上限シーク遅延を有するようにエンコードされる、ことと、
ネットワーク接続を介して該第１のビデオストリームのチャンクを要求し、該要求されたチャンクを該バッファ中に記憶することと、
該第１のビデオストリームの該バッファリングされたチャンクを再生することと、
該ネットワーク接続のチャネルデータレートを測定することと、
第２のビデオストリームを該一組の代替ストリームから選択することであって、該第２のビデオストリームは、該測定されたチャネルデータレート未満である最大ビットレートを有する、ことと
を行うように該プロセッサを構成する、再生デバイス。
【請求項２】
前記クライアントアプリケーションは、
所定の時間間隔の間にダウンロードされたデータの量を計算することと、
該所定の時間間隔の間に現在のデータがダウンロードされる任意のギャップを観察することと、
任意のギャップの持続時間を該所定の時間間隔から減算することによって、有効時間間隔を計算することと、
該ダウンロードされたデータの量を該有効時間間隔で除算して、データレート測定値を取得することと
を実行するように前記プロセッサを構成することによって、前記ネットワーク接続のチャネルデータレートを測定するように該プロセッサを構成する、請求項１に記載の再生デバイス。
【請求項３】
前記クライアントアプリケーションは、所定の安全マージンを前記データレート測定値から減算することによって、測定されたチャネルデータレートを取得するように前記プロセッサをさらに構成する、請求項２に記載の再生デバイス。
【請求項４】
前記クライアントアプリケーションは、前記バッファが、前記第１のビデオストリームの前記上限シーク遅延以上の再生持続時間を有する該第１のビデオストリームからのチャンクを含有するとき、前記測定されたチャネルデータレート未満の最高の最大ビットレートを有する第２のビデオストリームを選択するように前記プロセッサを構成する、請求項１に記載の再生デバイス。
【請求項５】
前記クライアントアプリケーションは、前記バッファが、第２のビデオストリームの上限シーク遅延以上の再生持続時間を有する前記第１のビデオストリームからのチャンクを含有するとき、前記測定されたチャネルデータレート未満の最高の最大ビットレートを有する該第２のビデオストリームを選択するように前記プロセッサを構成する、請求項１に記載の再生デバイス。
【請求項６】
前記代替ビデオストリームの各々は、最大バッファサイズ制約条件および最大ビットレートを前提としてエンコードされ、
前記クライアントアプリケーションは、該ビデオストリームのエンコーディングにおいて使用される該最大バッファサイズ制約条件および最大ビットレートに基づいて、ビデオストリームの前記上限シーク遅延を決定するように前記プロセッサを構成する、請求項５に記載の再生デバイス。
【請求項７】
前記クライアントアプリケーションは、
【数３】
2014505425.tif 000005
式中、レベルバッファサイズは、前記ビデオストリームをエンコードすることにおいて使用される前記最大バッファサイズ制約条件であり、
持続時間チャンクは、ビデオの単一チャンクを再生するためにかかる時間であり、
レベルレートは、該ビデオの前記最大ビットレートであり、
レートは、前記ネットワークデータレートであるような該ビデオストリームの前記上限シーク遅延を決定するように前記プロセッサを構成する、請求項６に記載の再生デバイス。
【請求項８】
前記クライアントアプリケーションは、前記第１のビデオストリームからのコンテンツのバッファリングされたチャンクを再生するためにかかる時間の間に第２のビデオストリームからダウンロードされたメディアの量の再生持続時間が該第２のビデオストリームの下限シーク遅延以上であるように、該第２のビデオストリームを前記一組の代替ストリームから選択するように前記プロセッサを構成する、請求項１に記載の再生デバイス。
【請求項９】
前記代替ビデオストリームの各々の下限シーク遅延は、該代替ビデオストリームの各々の中に含まれ、
前記クライアントアプリケーションは、前記第２のビデオストリームの該下限シーク遅延を前記第１のビデオストリームから取得するように前記プロセッサをさらに構成する、請求項８に記載の再生デバイス。
【請求項１０】
前記代替ビデオストリームは、ｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙフィールド中のＳＥＩバッファリングメッセージ中の遅延情報を伝達するＨ．２６４ビットストリームであり、
前記クライアントアプリケーションは、前記第１のビデオビデオストリームからのコンテンツのバッファリングされたチャンクを再生するためにかかる時間の間に第２のビデオストリームからダウンロードされたメディアの量の再生持続時間が、該第２のストリームにおいて、ｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙフィールド中のＳＥＩバッファリングメッセージの中で指定される値を使用して計算された遅延以上であるように、該第２のビデオストリームを前記一組の代替ストリームから選択するように前記プロセッサを構成する、請求項１に記載の再生デバイス。
【請求項１１】
安全シーク遅延が、前記代替ビデオストリームの各々の中に含まれ、
前記クライアントアプリケーションは、前記第１のビデオストリームからのコンテンツのバッファリングされたチャンクを再生するためにかかる時間の間に第２のビデオストリームからダウンロードされたメディアの量の再生持続時間が前記安全シーク遅延以上であるように、該第２のビデオストリームを前記一組の代替ストリームから選択するように前記プロセッサを構成する、請求項１に記載の再生デバイス。
【請求項１２】
前記代替ビデオストリームは、ｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙフィールド中のＳＥＩバッファリングメッセージ中の前記安全シーク遅延の伝達を行うＨ．２６４ビットストリームである、請求項１１に記載の再生デバイス。
【請求項１３】
前記クライアントアプリケーションは、
前記第１のビデオストリームが前記測定されたチャネルデータレートを下回る所定の量である最大ビットレートを有するように、該第１のビデオストリームを前記一組の代替ストリームから選択することと、
前記バッファリングされたチャンクの再生持続時間が該第１のビデオストリームの前記上限シーク遅延以上であるように、該第１のビデオストリームの再生の間に該第１のビデオストリームから受信したチャンクをバッファリングすることと
を行うように前記プロセッサを構成する、請求項１に記載の再生デバイス。
【請求項１４】
前記クライアントアプリケーションは、前記バッファが、前記第１のビデオストリームの上限シーク遅延以上の再生持続時間を有する、該第１のビデオストリームからのチャンクを含有するとき、前記測定されたチャネルデータレート未満の最高の最大ビットレートを有する第２のビデオストリームを選択するように前記プロセッサを構成する、請求項１３に記載の再生デバイス。
【請求項１５】
前記クライアントアプリケーションは、前記バッファが、前記第１のビデオストリームの上限シーク遅延未満の再生持続時間を有する、前記第１のビデオストリームからのチャンクを含有し、前記測定されたチャネルデータレートが信頼できないとき、最低の最大ビットレートを有する第２のビデオストリームを選択するように前記プロセッサを構成する、請求項１に記載の再生デバイス。
【請求項１６】
前記クライアントアプリケーションは、前記測定されたチャネルデータレートに基づいて前記第１のビデオストリームのチャンクをダウンロードするために予期される時間が、前記第１のビデオストリームのチャンクをダウンロードするためにかかる実際の時間を上回る所定の量であり、前記バッファが、該第１のビデオストリームの前記上限シーク遅延以上の再生持続時間を有する、前記第１のビデオストリームからのチャンクを含有するとき、該第１のビデオストリームの最大ビットレートを上回る最大ビットレートを有する第２のビデオストリームを選択するように前記プロセッサを構成する、請求項１に記載の再生デバイス。
【請求項１７】
一組の代替ビデオストリームを含むメディアの適応型ビットレートストリーミングを行う方法であって、
該方法は、
再生デバイスを使用して、第１のビデオストリームを一組の代替ビデオストリームから選択することであって、少なくとも複数の代替ビデオストリームは、より高い最大ビットレートでエンコードされる該一組の代替ビデオストリーム中のストリームの上限シーク遅延以下である上限シーク遅延を有するようにエンコードされる、ことと、
該再生デバイスを使用して、ネットワーク接続を介して該第１のビデオストリームのチャンクを要求し、該要求されたチャンクをバッファ中に記憶することと、
該再生デバイスを使用して、該第１のビデオストリームのバッファリングされたチャンクを再生することと、
該再生デバイスを使用して、該ネットワーク接続のチャネルデータレートを測定することと、
該再生デバイスを使用して、第２のビデオストリームを該一組の代替ストリームから選択することであって、該第２のビデオストリームは、該測定されたチャネルデータレート未満である最大ビットレートを有する、ことと
を含む、方法。
【請求項１８】
前記再生デバイスを使用して、前記ネットワーク接続のチャネルデータレートを測定することは、
該再生デバイスを使用して、所定の時間間隔の間にダウンロードされたデータの量を計算することと、
該再生デバイスを使用して、該所定の時間間隔の間に、現在データがダウンロードされる任意のギャップを観察することと、
該再生デバイスを使用して、該所定の時間間隔から任意のギャップの持続時間を減算することによって、有効時間間隔を計算することと、
該再生デバイスを使用して、該ダウンロードされたデータの量を該有効時間間隔で除算して、データレート測定値を取得することと
さらにを含む、請求項１７に記載の方法。
【請求項１９】
前記再生デバイスを使用して、前記ネットワーク接続のチャネルデータレートを測定することは、前記データレート測定値から所定の安全マージンを減算することによって、測定されたチャネルデータレートを取得することをさらに含む、請求項１８に記載の方法。
【請求項２０】
前記再生デバイスを使用して、第２のビデオストリームを前記一組の代替ストリームから選択することは、該再生デバイスを使用して、第２のビデオストリームを選択することをさらに含み、該第２のストリームは、前記バッファが、前記第１のビデオストリームの前記上限シーク遅延以上の再生持続時間を有する該第１のビデオストリームからのチャンクを含有するとき、前記測定されたチャネルデータレート未満の最高の最大ビットレートを有する、請求項１７に記載の方法。
【請求項２１】
前記再生デバイスを使用して、第２のビデオストリームを前記一組の代替ストリームから選択することは、該再生デバイスを使用して、第２のビデオストリームを選択することをさらに含み、該第２のストリームは、前記バッファが、該第２のビデオストリームの上限シーク遅延以上の再生持続時間を有する前記第１のビデオストリームからのチャンクを含有するとき、前記測定されたチャネルデータレート未満の最高の最大ビットレートを有する、請求項１７に記載の方法。
【請求項２２】
前記代替ビデオストリームの各々は、最大バッファサイズ制約条件を前提としてエンコードされ、前記方法は、該ビデオストリームのエンコーディングにおいて使用される該最大バッファサイズ制約条件に基づいて、前記再生デバイスを使用して、該ビデオストリームの前記上限シーク遅延を決定することをさらに含む、請求項２１に記載の方法。
【請求項２３】
【数４】
2014505425.tif 000006
式中、レベルバッファサイズは、前記ビデオストリームをエンコードすることにおいて使用される最大バッファサイズ制約条件であり、
持続時間チャンクは、ビデオの単一チャンクを再生するためにかかる時間であり、
レベルレートは、該ビデオの最大ビットレートであり、
レートは、前記ネットワークデータレートであるような該ビデオストリームの前記上限シーク遅延を決定することをさらに含む、請求項２２に記載の方法。
【請求項２４】
前記再生デバイスを使用して、第２のビデオストリームを前記一組の代替ストリームから選択することは、前記第１のビデオストリームからのコンテンツのバッファリングされたチャンクを再生するためにかかる時間の間に該第２のビデオストリームからダウンロードされたメディアの量についての再生持続時間が、該第２のビデオストリームの下限シーク遅延以上であるように、該再生デバイスを使用して、該第２のビデオストリームを該一組の代替ストリームから選択することをさらに含む、請求項１７に記載の方法。
【請求項２５】
前記代替ビデオストリームの各々の下限シーク遅延は、該代替ビデオストリームの各々の中に含まれ、前記方法は、前記再生デバイスを使用して、前記第２のビデオストリームの下限シーク遅延を前記第１のビデオストリームから取得することをさらに含む、請求項２４に記載の方法。
【請求項２６】
前記代替ビデオストリームは、ｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙフィールド中のＳＥＩバッファリングメッセージ内の遅延情報の伝達をするＨ．２６４ビットストリームであり、
前記再生デバイスを使用して、第２のビデオストリームを前記一組の代替ストリームから選択することは、前記第１のビデオストリームからのコンテンツのバッファリングされたチャンクを再生するためにかかる時間の間に該第２のビデオストリームからダウンロードされたメディアの量の再生持続時間が、該第２のストリームにおいて、ｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙフィールド中のＳＥＩバッファリングメッセージ内で指定される値を使用して計算される遅延以上であるように、該再生デバイスを使用して、該第２のビデオストリームを該一組の代替ストリームから選択することをさらに含む、請求項１７に記載の方法。
【請求項２７】
安全シーク遅延が、前記代替ビデオストリームの各々の中に含まれ、
前記再生デバイスを使用して、第２のビデオストリームを前記一組の代替ストリームから選択することは、前記第１のビデオストリームからのコンテンツのバッファリングされたチャンクを再生するためにかかる時間の間に該第２のビデオストリームからダウンロードされたメディアの量の再生持続時間が該安全シーク遅延以上であるように、該第２のビデオストリームを該一組の代替ストリームから選択することをさらに含む、請求項１７に記載の方法。
【請求項２８】
前記代替ビデオストリームは、ｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙフィールド中のＳＥＩバッファリングメッセージ内の前記安全シーク遅延の伝達をするＨ．２６４ビットストリームである、請求項２７に記載の方法。
【請求項２９】
第１のビデオストリームを前記一組の代替ストリームから選択することは、
該第１のビデオストリームが前記測定されたチャネルデータレートを下回る所定の量である最大ビットレートを有するように、前記再生デバイスを使用して、該第１のビデオストリームを該一組の代替ストリームから選択することと、
該第１のビデオストリームからバッファリングされたチャンクの量の再生持続時間が該第１のビデオストリームの前記上限シーク遅延以上であるように、該第１のビデオストリームの再生の間に、該第１のビデオストリームのチャンクをバッファリングすることと
さらにを含む、請求項１７に記載の方法。
【請求項３０】
前記再生デバイスを使用して、第２のビデオストリームを前記一組の代替ストリームから選択することは、該再生デバイスを使用して、第２のビデオストリームを選択することをさらに含み、該第２のビデオストリームは、前記バッファが、前記第１のビデオストリームの前記上限シーク遅延以上の再生持続時間を有する該第１のビデオストリームからのチャンクを含有するとき、前記測定されたチャネルデータレート未満の最高の最大ビットレートを有する、請求項２９に記載の方法。
【請求項３１】
前記再生デバイスを使用して、第２のビデオストリームを前記一組の代替ストリームから選択することは、該再生デバイスを使用して、第２のビデオストリームを選択することをさらに含み、該第２のビデオストリームは、前記バッファが、前記第１のビデオストリームの前記上限シーク遅延未満の再生持続時間を有する、該第１のビデオストリームからのチャンクを含有し、前記測定されたチャネルデータレートが信頼できないとき、最低の最大ビットレートを有する、請求項３０に記載の方法。
【請求項３２】
前記再生デバイスを使用して、第２のビデオストリームを前記一組の代替ストリームから選択することは、該再生デバイスを使用して、第２のビデオストリームを選択することをさらに含み、該第２のビデオストリームは、前記測定されたチャネルデータレートに基づいて、前記第１のビデオストリームのチャンクをダウンロードするために予期される時間が該第１のビデオストリームのチャンクをダウンロードするためにかかる実際の時間を上回る所定の量であり、前記バッファが該第１のビデオストリームの前記上限シーク遅延以上の再生持続時間を有する該第１のビデオストリームからのチャンクを含有するとき、該第１のビデオストリームの最大ビットレートを上回る最大ビットレートを有する、請求項１７に記載の方法。
【請求項３３】
いくつかの代替ビデオストリームとして、ソースビデオをエンコードするように構成されるソースエンコーダであって、
該ソースエンコーダは、
メモリと、
プロセッサと
を備え、
該プロセッサは、ソースエンコーディングアプリケーションによって、
マルチメディアコンテンツを受信することであって、該マルチメディアコンテンツは、一次解像度および一次サンプルアスペクト比を有するソースビデオデータを備える、ことと、
一組の代替ビデオストリームとして該ソースビデオデータをエンコードすることと
を行うように構成され、
該代替ビデオストリームは、異なる最大ビットレートを有し、
該代替ビデオストリームは、より高い最大ビットレートでエンコードされる該一組の代替ビデオストリーム中のストリームの上限シーク遅延以下である上限シーク遅延を有するようにエンコードされる、ソースエンコーダ。
【請求項３４】
前記ソースエンコーディングアプリケーションは、所定の最大ビットレートおよび最大バッファサイズにおいて前記代替ビデオストリームをエンコードするように前記プロセッサをさらに構成し、
ストリームの前記上限シーク遅延は、該ストリームの所定の最大バッファサイズを該ストリームの所定の最大ビットレートによって除算することによって決定される、請求項３３に記載のソースエンコーダ。
【請求項３５】
前記ソースエンコーディングアプリケーションは、前記一組の代替ストリーム中の各ストリームが同一のアスペクト比を有するように該代替ビデオストリームをエンコードするように前記プロセッサをさらに構成する、請求項３３に記載のソースエンコーダ。
【請求項３６】
前記ソースエンコーディングアプリケーションは、前記一組の代替ビデオストリーム中の各ストリームに対する下限シーク遅延を決定するように前記プロセッサをさらに構成する、請求項３３に記載のソースエンコーダ。
【請求項３７】
前記ソースエンコーディングアプリケーションは、各ストリーム内に、その下限シーク遅延を含むように前記プロセッサをさらに構成する、請求項３６に記載のソースエンコーダ。
【請求項３８】
前記ソースエンコーディングアプリケーションは、
最高の下限シーク遅延を有する前記代替ストリームを決定することと、
該最高の下限シーク遅延を各ストリーム内に含めることと
を行うように前記プロセッサをさらに構成する、請求項３６に記載のソースエンコーダ。
【請求項３９】
前記代替ビデオストリームは、前記Ｈ．２６４規格に従ってエンコードされる、請求項３８に記載のソースエンコーダ。
【請求項４０】
前記ソースエンコーディングアプリケーションは、各ストリーム内のＳＥＩバッファリングメッセージ中のｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙフィールド中に、前記最高の下限シーク遅延を含むように前記プロセッサをさらに構成する、請求項３９に記載のソースエンコーダ。
【請求項４１】
前記ソースエンコーディングアプリケーションは、
【数５】
2014505425.tif 000007
のような前記下限シーク遅延を決定するように前記プロセッサを構成する、請求項３６に記載のソースエンコーダ。
【請求項４２】
前記ソースエンコーディングアプリケーションは、
【数６】
2014505425.tif 000008
式中、レベルバッファサイズは、前記ビデオストリームをエンコードすることにおいて使用される最大バッファサイズ制約条件であり、
持続時間チャンクは、ビデオの単一チャンクを再生するためにかかる時間であり、
レベルレートは、該ビデオの最大ビットレートであり、
レートは、前記ネットワークデータレートであるような前記上限シーク遅延を決定するように前記プロセッサを構成する、請求項３６に記載のソースエンコーダ。
【請求項４３】
いくつかの代替ビデオストリームとしてソースビデオをエンコードする方法であって、
該方法は、
ソースエンコーダを使用して、マルチメディアコンテンツを受信することであって、該マルチメディアコンテンツは、一次解像度および一次サンプルアスペクト比を有するソースビデオデータを備える、ことと、
該ソースエンコーダを使用して、一組の代替ビデオストリームとして該ソースビデオデータをエンコードすることと
を含み、
該代替ビデオストリームは、異なる最大ビットレートを有し、
該代替ビデオストリームは、より高い最大ビットレートでエンコードされる該一組の代替ビデオストリーム中のストリームの上限シーク遅延以下である上限シーク遅延を有するようにエンコードされる、方法。
【請求項４４】
前記ソースエンコーダを使用して、所定の最大ビットレートおよび最大バッファサイズにおいて前記代替ビデオストリームをエンコードすること
をさらに含み、ストリームの前記上限シーク遅延は、該ストリームの該所定の最大バッファサイズを該ストリームの該所定の最大ビットレートで除算することによって決定される、請求項４３に記載の方法。
【請求項４５】
前記一組の代替ストリーム中の各ストリームが、同一のアスペクト比を有するように該代替ビデオストリームをエンコードすることをさらに含む、請求項４３に記載の方法。
【請求項４６】
前記一組の代替ビデオストリーム中の各ストリームに対する下限シーク遅延を決定することをさらに含む、請求項４３に記載の方法。
【請求項４７】
各ストリーム内にその下限シーク遅延を含むことをさらに含む、請求項４６に記載の方法。
【請求項４８】
最高の下限シーク遅延を有する前記代替ストリームを決定することと、
該最高の下限シーク遅延を各ストリーム内に含むことと
をさらに含む、請求項４６に記載の方法。
【請求項４９】
前記代替ビデオストリームは、Ｈ．２６４規格に従ってエンコードされる、請求項４６に記載の方法。
【請求項５０】
各ストリーム内のＳＥＩバッファリングメッセージ中のｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙフィールド中に、最高の下限シーク遅延を含むことをさらに含む、請求項４９に記載の方法。
【請求項５１】
【数７】
2014505425.tif 000009
のような前記下限シーク遅延を決定することをさらに含む、請求項４６に記載の方法。
【請求項５２】
【数８】
2014505425.tif 000010
式中、レベルバッファサイズは、前記ビデオストリームのエンコーディングにおいて使用される最大バッファサイズ制約条件であり、
持続時間チャンクは、ビデオの単一チャンクを再生するためにかかる時間であり、
レベルレートは、該ビデオの最大ビットレートであり、
レートは、ネットワークデータレートであるような前記上限シーク遅延を決定することをさらに含む、請求項４６に記載の方法。
【請求項５３】
プロセッサ命令を含有する機械可読媒体であって、該プロセッサによる該命令の実行は、
マルチメディアコンテンツを受信することであって、該マルチメディアコンテンツは、一次解像度および一次サンプルアスペクト比を有するソースビデオデータを備える、ことと、
一組の代替ビデオストリームとして該ソースビデオデータをエンコードすることと
を含むプロセスを該プロセッサに行わせ、
該代替ビデオストリームは、異なる最大ビットレートを有し、
該代替ビデオストリームは、より高い最大ビットレートでエンコードされる該一組の代替ビデオストリーム中のストリームの上限シーク遅延以下である上限シーク遅延を有するようにエンコードされる、機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、適応型ビットレートストリーミングに関し、より具体的には、適応型ビットレートストリーミングシステム内の再生デバイスによるメディアのバッファリングに関する。
【背景技術】
【０００２】
メディアのストリーミングという用語は、再生デバイス上でのメディアの再生を説明しており、メディアは、サーバ上に記憶され、再生の間、ネットワークを経由して再生デバイスに継続的に送信される。一般的には、再生デバイスは、メディアの次の部分の受信に先立って、全バッファリングされたメディアの再生を完了することに起因して、再生デバイスは、再生の間、任意の所与の時間において、十分な量のメディアをバッファの中に記憶することにより、再生の途絶を防止する。適応型ビットレートストリーミングまたは適応型ストリーミングは、現在のストリーミング条件（例えば、ユーザのネットワーク帯域幅）をリアルタイムで検出し、適宜、ストリーミングされるメディアの質を調節することを含む。一般的には、ソースメディアは、複数のビットレートでエンコードされ、再生デバイスまたはクライアントは、利用可能なリソースに応じて、異なるエンコーディングのストリーミングの間で切り替える。
【０００３】
適応型ビットレートストリーミングに関する一般的な目標は、アンダーフローによるメディアの再生の失速を伴わずに、再生デバイスによって経験されるストリーミング条件を前提として、利用可能な最高ビットレートストリームをストリーミングすることである。アンダーフローは、再生デバイスが、メディアが再生される速度より遅い速度でストリーミングメディアを受信するときに生じる。大部分の適応型ビットレートストリーミングシステムの中で使用されるビデオは、一般的には、より効率的である可変ビットレートエンコーディングを使用してエンコードされる。ストリームのビットレートは、時間で変動するが、ストリームは、一般的には、その平均ビットレートに基づいて説明される。可変ビットレートエンコーディングが使用されるとき、ストリームの最大ビットレートは、あるバッファサイズを前提として、アンダーフローが生じないことを確実にするレートである。大部分の再生デバイスは、バッファを使用してエンコードされたフレームのサイズの変動に適合する。ビデオに照らして考えると、バッファリング遅延（シーク遅延とも称され得る）は、再生デバイスが、アンダーフローを防止するために、バッファの充填開始から再生開始まで待機しなければならない（すなわち、デコーディングを開始することができる前に、ある量のデータがバッファされる）時間である。
【発明の概要】
【課題を解決するための手段】
【０００４】
本発明の実施形態によるシステムおよび方法は、再生デバイスが、図示される本発明の実施形態に従って、各ストリームの遅延およびチャネルレートに基づいて、ストリームを選択する、適応型ビットレートストリーミングを行う。本発明の一実施形態は、クライアントアプリケーションおよびバッファを含む、メモリと、プロセッサとを含み、クライアントアプリケーションが、第１のビデオストリームを一組の代替ビデオストリームから選択し、少なくとも、複数の代替ビデオストリームが、より高い最大ビットレートでエンコードされる一組の代替ビデオストリーム内のストリームの上限シーク遅延以下である、上限シーク遅延を有するようにエンコードされ、ネットワーク接続を介して、第１のビデオストリームのチャンクを要求し、要求されたチャンクをバッファ内に記憶し、第１のビデオストリームのバッファリングされたチャンクを再生し、ネットワーク接続のチャネルデータレートを測定し、第２のビデオストリームを一組の代替ストリームから選択するように、プロセッサを構成し、第２のビデオストリームが、測定されたチャネルデータレート未満である、最大ビットレートを有する。
【０００５】
本発明の方法のある実施形態は、再生デバイスを使用して、第１のビデオストリームを一組の代替ビデオストリームから選択するステップであって、少なくとも、複数の代替ビデオストリームが、より高い最大ビットレートでエンコードされる一組の代替ビデオストリーム内のストリームの上限シーク遅延以下である上限シーク遅延を有するようにエンコードされる、ステップと、再生デバイスを使用して、ネットワーク接続を介して第１のビデオストリームのチャンクを要求し、要求されたチャンクをバッファ内に記憶するステップと、再生デバイスを使用して、第１のビデオストリームのバッファリングされたチャンクを再生するステップと、再生デバイスを使用して、ネットワーク接続のチャネルデータレートを測定するステップと、再生デバイスを使用して、第２のビデオストリームを一組の代替ストリームから選択するステップであって、第２のビデオストリームが、測定されたチャネルデータレート未満である最大ビットレートを有する、ステップとを含む。
【０００６】
本発明の別の実施形態は、メモリと、ソースエンコーディングアプリケーションによって、マルチメディアコンテンツを受信し、マルチメディアコンテンツが、一次解像度および一次サンプルアスペクト比を有するソースビデオデータを含み、一組の代替ビデオストリームとして、ソースビデオデータをエンコードし、代替ビデオストリームが、異なる最大ビットレートを有し、代替ビデオストリームが、より高い最大ビットレートでエンコードされる、一組の代替ビデオストリーム内のストリームの上限シーク遅延以下である、上限シーク遅延を有するようにエンコードされるように構成される、プロセッサとを含む。
【０００７】
別の付加的実施形態は、ソースエンコーダを使用して、マルチメディアコンテンツを受信するステップであって、マルチメディアコンテンツが、一次解像度および一次サンプルアスペクト比を有するソースビデオデータを含む、ステップと、ソースエンコーダを使用して、一組の代替ビデオストリームとして、ソースビデオデータをエンコードするステップとを含み、代替ビデオストリームが、異なる最大ビットレートを有し、代替ビデオストリームが、より高い最大ビットレートでエンコードされる、一組の代替ビデオストリーム内のストリームの上限シーク遅延以下である、上限シーク遅延を有するようにエンコードされる。
【０００８】
さらなる付加的実施形態はさらに、プロセッサ命令を含有する機械可読媒体を含み、プロセッサによる命令の実行が、プロセッサに、マルチメディアコンテンツを受信するステップであって、マルチメディアコンテンツが、一次解像度および一次サンプルアスペクト比を有するソースビデオデータを含む、ステップと、一組の代替ビデオストリームとして、ソースビデオデータをエンコードするステップとを含む、プロセスを行わせ、代替ビデオストリームが、異なる最大ビットレートを有し、代替ビデオストリームが、より高い最大ビットレートでエンコードされる、一組の代替ビデオストリーム内のストリームの上限シーク遅延以下である、上限シーク遅延を有するようにエンコードされる。
【図面の簡単な説明】
【０００９】
【図１Ａ】図１Ａは、本発明のある実施形態による、適応型ビットレートストリーミングシステムのアーキテクチャ図である。
【図１Ｂ】図１Ｂは、本発明のある実施形態による、ソースエンコーダのアーキテクチャ図である。
【図１Ｃ】図１Ｃは、本発明のある実施形態による、再生デバイスのアーキテクチャ図である。
【図２】図２は、本発明のある実施形態による、チャネルデータレートを測定するためのプロセスを概念的に図示する。
【図３】図３は、本発明のある実施形態による、代替ビデオストリームをエンコードするためのプロセスを図示する、流れ図である。
【図４】図４は、本発明のある実施形態による、再生の開始前にバッファリングされたメディアの量が、上限シーク遅延を使用して決定されるとき、ストリーム間で切り替えるためのプロセスを図示する、流れ図である
【図５】図５は、本発明のある実施形態による、適応型ビットレートストリーミングを行うためのプロセスを図示する。
【発明を実施するための形態】
【００１０】
次に、図面を参照すると、本発明の実施形態による、各ストリームの遅延およびチャネルレートに基づいてストリームを選択する、適応型ビットレートストリーミング再生デバイスのためのシステムおよび方法が図示される。ストリームの遅延は、アンダーフローが再生の間に生じないように、再生の開始に先立って、メディアがバッファされる時間の量である。いくつかの実施形態では、上限シーク遅延は、ストリームがエンコードされる最大ビットレートおよび最大バッファサイズに基づいて決定することができる。多くの実施形態では、各ストリームは、より高いビットレートストリームの上限シーク遅延以下である上限シーク遅延を有するようにエンコードされる。いくつかの実施形態では、ストリームの上限シーク遅延は、一般的再生デバイス上で利用可能なバッファのサイズに基づいて決定される所定の最大バッファサイズに基づいて制限される。ストリームがこれらの制約に従ってエンコードされると、上限シーク遅延（加えて、安全マージン）に等しい持続時間を有する再生に先立って、ある量のメディアをバッファリングする再生デバイスは、再生デバイスが、自動的に、新しいチャネル条件に対する最適ストリームに切り替えることができるように、チャネルデータレートの減少に応答するために十分な時間を有する。
【００１１】
いくつかの実施形態では、下限シーク遅延は、アンダーフローを防止するために、特定のストリームを分析し、シーク遅延の最小量を決定することによって決定される。下限シーク遅延の利用は、ストリーミングメディアの再生を開始するとき、遅延を有意に減少させることができる。しかしながら、より少ないメディアのバッファは、再生デバイスが、チャネルレートの突然の切断に応答して、より低いビットレートストリームに切り替えるための時間が少ないことを意味し得る。いくつかの実施形態では、再生デバイスは、下限シーク遅延が、新しいチャネルレートにおいて、現在バッファされているメディアの再生持続時間内でバッファされることができる最高ビットレートストリームを選択することによって、チャネルレートにおける突然の切断に対応する。多くの実施形態では、安全マージンもまた、実世界システムにおいて生じる変動に適合するための計算に利用される。
【００１２】
下限シーク遅延は、再生が開始するストリーム内の点に応じて変動し得る。加えて、下限シーク遅延は、各ストリームのレートに応じて変動し得る。いくつかの実施形態では、再生デバイスは、サーバからのストリームの全部に対して、下限シーク遅延を取得する。いくつかの実施形態では、再生デバイスは、サーバからの各ストリームにおいて下限シーク遅延の最大のみを取得する。ビデオが、Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ  Ｓｅｃｔｏｒ’ｓ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐとともに、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ（ＩＳＯ）、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏ  ｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ（ＩＥＣ）、およびＭｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）によって開発されたＨ．２６４規格に従ってエンコードされると、本発明の多くの実施形態による再生デバイスは、下限シーク遅延に相当するＨ．２６４ストリーム内のＳＥＩバッファリングメッセージ中のｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙフィールドの値を考慮する。いくつかの実施形態では、各ストリームにおいてｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙフィールド中の値は、適応型ビットレートストリーミングシステムによって、サーバによってホストされた代替ストリームの全部に対して、最大下限シーク遅延および／またはｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙ値となるように修正される。他の実施形態では、再生デバイスは、ｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙを調節し、ストリームの次のダウンロードされるチャンクの遅延を推定する。いくつかの実施形態では、調節は、倍率、補正係数、および／または安全マージンを含む（但し、それに限定されない）。
【００１３】
いくつかの実施形態では、下限シーク遅延は、再生の開始に先立って、バッファリングするためのメディアの量を決定するために、再生デバイスによって使用される。しかしながら、再生デバイスは、バッファが、ストリームのための上限シーク遅延に迅速に到達するように、チャネルレートを有意に下回る最大ビットレートを有するストリームを選択する。バッファ内のメディアの量が上限シーク遅延に等しい再生持続時間を有するとき、再生デバイスは、その点以降、チャネル条件に対する最適ストリームに自由に切り替えることができる。本発明の実施形態による、適応型ビットレートストリーミングシステム、再生デバイス、および適応型ビットレートストリーミングメディアのバッファリングおよび再生は、以下にさらに論じられる。
【００１４】
（適応型ストリーミングシステムアーキテクチャ）
本発明のある実施形態による、適応型ビットレートストリーミングシステムは、図１Ａに図示される。適応型ビットレートストリーミングシステム１０は、いくつかの代替ストリームとして、ソースメディアをエンコードするように構成されるソースエンコーディングサーバ１２を含む。以下にさらに論じられるように、ソースエンコーディングサーバ１２は、そのうちの少なくとも複数がエンコードされたビデオの代替ストリームである、エンコードされたストリームを含有する複数のコンテナファイルに対して、トップレベルインデックスを生成する。これらのファイルは、コンテンツサーバ１４にアップロードされる。種々の再生デバイス１８は、次いで、インターネット等のネットワーク１６を介して、コンテンツサーバ１４からエンコードされたストリームの一部を要求することができる。
【００１５】
多くの実施形態では、トップレベルインデックスファイルは、ＳＭＩＬファイルであって、メディアは、Ｍａｔｒｏｓｋａコンテナファイル内に記憶され、再生デバイスは、ＨＴＴＰまたは別の類似ステートレスプロトコルを使用して、ファイルの一部を要求する。しかしながら、任意の適切なインデックスファイル形式および／またはコンテナファイル形式を利用して、エンコードされたストリームを記憶およびインデックスすることができ、任意の好適な通信プロトコルが、本発明の実施形態に従って、再生デバイス１８によって利用され、データをコンテンツサーバ１４から取得することができる。
【００１６】
具体的アーキテクチャが、図１Ａに示されるが、任意の種々のアーキテクチャのいずれも、本発明の実施形態による、適応型ビットレートストリーミングを行うために利用されることができる。本発明の実施形態による、ソースエンコーダおよび再生デバイスは、以下にさらに論じられる。
【００１７】
（ソースエンコーダ）
図示される実施形態では、適応型ビットレートストリーミングシステムは、ソースビデオストリームコンテンツを、異なる最大ビットレートを有する、エンコードされたビデオの代替ストリームにエンコード可能である、１つ以上のソースエンコーダを含み、ストリームのそれぞれの上限シーク遅延は、より高いビットレートでエンコードされた他の代替ストリームのいずれかの上限シーク遅延以下である。多くの実施形態では、ソースエンコーダは、マルチメディアのストリームをエンコード可能な任意のデバイスを使用して、実装することができ、ストリームは、異なる解像度、サプリングレート、上限シーク遅延、および／または最大ビットレートでエンコードされる。本発明のある実施形態による、適応型ストリーミングシステムソースエンコーダの基本的アーキテクチャは、図１Ｂに図示される。適応型ビットレートストリーミングシステム３０は、不揮発性メモリ３４および揮発性メモリ３６と通信する、プロセッサ３２を含む。図示される実施形態では、揮発性メモリは、ソースエンコーディングアプリケーション３８および代替ビデオストリームデータ４０を含む。ソースエンコーディングアプリケーション３８は、入力として、ソースビデオストリームを含むメディアを受け取り、複数の代替ストリームとして、ソースビデオをエンコードする。多くの実施形態では、代替ストリームは、異なる解像度、サンプルアスペクト比、および／または最大ビットレートでエンコードされる。代替ストリームがエンコードされる、最大ビットレートにおける差異のため、再生デバイスは、代替ストリーム間で切り替え、エンコードされたソースビデオの適応型ビットレートストリーミングを行うことができる。以下にさらに論じられるように、再生デバイスは、その上限シーク遅延が、バッファ内のメディアの量の再生持続時間未満であるように、代替ストリームがそれぞれ、エンコードされるとき、ストリーム間でシームレスに下方切り替えを行うことができる。バッファリングされたメディアの量が、より低い最大ビットレートでエンコードされた他の代替ストリームのいずれかの上限シーク遅延に等しい再生持続時間を有するとき、再生デバイスは、シームレスに下方切り替えを行うであろう。また、以下に論じられるように、下限シーク遅延はまた、再生のより迅速な開始を可能にする際、再生デバイスにとって有用であり得る。いくつかの実施形態では、ストリームの上限シーク遅延および／またはストリームの下限シーク遅延に関する情報は、ストリームを含有するコンテナファイル内に情報を含めることによって、またはストリームを記述するトップレベルインデックスファイル内に情報を含めることによって、ソースエンコーディングアプリケーション３８によって、再生デバイスに利用可能となることができる。
【００１８】
代替ビデオストリームデータが、Ｈ．２６４規格に従ってエンコードされる実施形態では、ソースエンコーディングアプリケーション３８は、各代替Ｈ．２６ストリームにおいて、ＳＥＩバッファリングメッセージ内のｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙフィールド中に下限シーク遅延を示す値を書き込むことができる。多くの実施形態では、ソースエンコーディングアプリケーション３８は、最高の下限シーク遅延を有する代替ストリームの下限シーク遅延および／またはｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙ値を代替ストリームのそれぞれにおけるｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙフィールドに書き込む。以下に論じられるように、最大下限シーク遅延は、一般的には、本発明の多くの実施形態に従って、ストリーム切り替えを行うために十分である。他の実施形態では、Ｈ．２６４規格に従う以外の形式でエンコードされるストリームを含む、ビデオストリーム内に下限シーク遅延情報を含むための種々の機構のいずれかが、利用されることができる。
【００１９】
本発明の実施形態による、複数の代替ストリームとして、ソースビデオをエンコードするためのプロセスが、図３に図示される。プロセス８０は、ソースビデオを受信するステップ（８２）と、ソースエンコーダによって生成されるであろう代替ビデオストリームの各々のための最大ビットレートおよび最大バッファサイズを取得するステップ（８４）とを含む。代替ビデオストリームは、次いで、エンコードされ（８６）、一般的には、コンテナファイルに書き込まれる。エンコードされたビデオストリームをコンテナファイルに書き込む際、プロセス８０はまた、下限シーク遅延に関する情報を、前述と同様に、代替ストリームのそれぞれに書き込む（８８）ことができる。多くの実施形態では、各ストリームの下限シーク遅延を示す情報は、ストリームとともに含まれる。いくつかの実施形態では、ストリームの全部の最高の下限シーク遅延が、ファイルのそれぞれ内に含まれる。
【００２０】
具体的アーキテクチャが、図１Ｂに図示されるが、アプリケーションが、ディスクまたはいくつかの他の形態の記憶上に位置し、ランタイム時に揮発性メモリにロードされるアーキテクチャを含む、種々のアーキテクチャのいずれかが、ソースビデオコンテンツのストリームを、異なる最大ビットレートを有する、エンコードされたビデオの代替ストリームにエンコード可能であるソースエンコーダを実装するために利用することができ、ストリームのそれぞれの上限シーク遅延は、本発明の実施形態に従って、より高いビットレートでエンコードされた他の代替ストリームのいずれかの上限シーク遅延以下である。
【００２１】
（再生デバイス）
図１Ａに図示されるシステムでは、再生デバイスは、パーソナルコンピュータおよび携帯電話である。他の実施形態では、再生デバイスは、消費者電子機器デバイス例えば、ＤＶＤプレーヤ、Ｂｌｕ−ｒａｙ（登録商標）プレーヤ、テレビ、セットトップボックス、ビデオゲームコンソール、タブレット、およびサーバに接続し、エンコードされたメディアを再生可能な他のデバイスを含むことができる。本発明のある実施形態による、再生デバイスのための基本的アーキテクチャは、図１Ｃに図示される。再生デバイス５０は、不揮発性メモリ５４および揮発性メモリ５６と通信するプロセッサ５２を含む。図示される実施形態では、不揮発性メモリは、遠隔サーバからコンテンツをストリーミングするようにｒプロセッサおよび再生デバイスを構成するクライアントアプリケーション５８を含む。
【００２２】
動作の間、クライアントアプリケーション５８は、コンテンツをコンテンツストアから購入し、トップレベルインデックスファイル６０をコンテンツサーバまたは別のサーバから要求するように再生デバイスを構成することができる。トップレベルインデックスファイル６０がコンテンツサーバから受信されると、クライアントアプリケーション５８は、トップレベルインデックスファイル６０をメモリ５６内に記憶するように、再生デバイスを構成することができる。クライアントアプリケーション５８は、次いで、トップレベルインデックスファイルを使用して、コンテンツを含有するコンテナファイルの一部をコンテンツサーバから要求することによって、コンテンツを再生するように、再生デバイス５０を構成することができる。クライアントアプリケーション５８によって選択される具体的コンテナファイルは、トップレベルインデックスファイル６０内のクライアントアプリケーションに利用可能な情報に基づいて決定されることができる。コンテンツを含有するコンテナファイルの要求された部分は、再生デバイスのメモリ５６におけるバッファ６２内に記憶される。バッファのサイズは、一般的には、トップレベルインデックスファイル６０内で特定のストリームのために指定されたビデオバッファ検証子に依存する。但し、多くの実施形態では、バッファサイズは、固定されているか、または具体的アプリケーションおよび／またはストリームに適切な任意の数の要因に基づいて決定される。クライアントアプリケーションは、再生を保留するユーザ命令が受信されるまで、または再生が完了するまで、優勢ストリーミング条件に応じて、異なるコンテナファイルから、コンテンツを要求および再生し続けることができる。
【００２３】
ネットワークデータレートが切断すると、再生デバイスは、クライアントアプリケーションが、バッファ６２内に記憶されたコンテンツを再生するためにかかる時間の間、より低いビットレートストリームからダウンロードされることができるデータの量と、利用可能なデータレートとに基づいて、適切なより低いビットレートストリームを決定することができる。バッファアンダーフローは、十分なデータの量がダウンロードされることを前提として、ストリーム切り替え後には生じないであろう。いくつかの実施形態では、クライアントアプリケーション５８は、下限シーク遅延が、新しいチャネルレートにおいて、現在バッファされているメディアの再生持続時間内にバッファされることができる最高ビットレートストリームを選択することによって、チャネルレートにおける突然の切断に対応する。再生デバイスが、既に、再生されているストリームの上限シーク遅延に等しい再生持続時間を有するビデオの量をバッファリングしており、代替ビデオストリームが、前述のようにエンコードされると、再生デバイスは、単に、新しいネットワークデータレート未満の最高の最大ビットレートを有するストリームを選択することによって、ネットワークデータレートにおける切断に対応することができる。多くの実施形態では、安全マージンもまた、実世界システムにおいて生じる変動に適合するための計算において利用される。いくつかの実施形態では、付加的マージンが提供され、再生デバイスが、バッファリングされたデータの量をストリームの上限シーク遅延に対応するように増大させることを可能にする。本発明の実施形態による、再生デバイスが、ストリーム切り替え決定を行う様式は、以下にさらに論じられる。
【００２４】
具体的再生デバイスアーキテクチャが、図１Ｃに図示されるが、クライアントアプリケーションが、ディスクまたはいくつかの他の形態の記憶上に位置し、ランタイム時に揮発性メモリにロードされるアーキテクチャを含む、種々のアーキテクチャのいずれかが、本発明の実施形態による、適応型ビットレートストリーミングシステムにおいて使用するための再生デバイスを実装するために利用されることができる。
【００２５】
（チャネルデータレートの測定）
コンテンツサーバから再生デバイスへのデータの伝送は、外部条件のために変動する一定レートチャネルを伴うように考慮されることができる。本発明の実施形態による、再生デバイスは、チャネルのレートを測定し、次いで、チャネルの測定されたレートに最も近く、それ未満である最大ビットレート（任意の安全マージンを差し引く）を有する、エンコードされたストリームのストリーミングを開始する。いくつかの実施形態では、再生デバイスは、データを要求し、要求されたデータをサーバから受信するためにかかる時間を測定することによって、チャネルのレートを測定する。
【００２６】
再生デバイスのバッファは、時としてフルであり、したがって、コンテンツサーバ上に位置するコンテナファイルからデータを受け取るか、あるいはデータのバイト範囲またはチャンクを要求することができないという事実に起因して、再生デバイスが任意のデータを受信できない間隔またはギャップが生じ得る。加えて、再生デバイスは、同時に、コンテンツを複数のストリームからストリーミングすることができる。例えば、再生デバイスは、同時に、オーディオ、ビデオ、および字幕ストリームからコンテンツを要求することができる。多くの実施形態では、再生デバイスは、各ストリームから各ダウンロードされたチャンクのサイズ、開始時間、および持続時間を記録する。これらの記録は、その時間間隔の間にデータが受信されなかった時間間隔および任意のギャップの間に受信された重複チャンクを決定することによって、帯域幅測定値を精緻化するために利用されることができる。このように、本発明の実施形態による、再生デバイスは、所定の時間間隔の間にダウンロードされたデータの和を、任意のギャップの持続時間を所定の時間間隔から減算することによって決定される有効間隔によって除算されたものとして、チャネルデータレートを決定することができる。多くの事例では、再生デバイスによって要求されたチャンクは、ピクチャのクローズド群に対応する。いくつかの実施形態では、ソースビデオは、複数の代替ストリームにエンコードされ、ソースビデオの各部分は、代替ストリームのそれぞれにおけるピクチャのクローズド群としてエンコードされる。このように、代替ストリーム内でイントラコード化フレームを整列させることによって、再生デバイスは、ピクチャのクローズド群の再生の完了時に代替ストリーム間で切り替えることができる。ピクチャのクローズド群の再生完了時に選択されたストリームに関係なく、選択されたストリーム中のビデオの次のフレームは、イントラコード化フレームである。
【００２７】
本発明のある実施形態による、チャネルデータレートを測定するために利用されるプロセスは、図２に概念的に図示される。図示される実施形態では、所定の時間間隔が７０として指定され、その間に、データが２つのビデオチャンク７１、７２および２つのオーディオチャンク７３、７４からダウンロードされる。所定の時間間隔の間、ギャップ７５またはホールが生じ、その間は、データが再生デバイスによって受信されない。チャネルデータレートは、所定の時間間隔７０の間にビデオチャンク７１、７２およびオーディオチャンク７３、７４からダウンロードされたデータのバイトの和を、所定の時間間隔からギャップ７５の持続時間を減算した結果によって除算されたものとして計算される。ネットワークデータレートを計算するための具体的プロセスが前述されたが、具体的アプリケーションに適切な種々のプロセスのいずれかが、本発明の実施形態による、ネットワークデータレートを決定するために利用されることができる。
【００２８】
（ストリーミング条件の変化への適応）
チャネルのデータレートが変化するとき、再生デバイスは、新しいチャネル条件に対して最適にエンコードされたストリームを選択することによって、適応することができる。いくつかの実施形態では、各エンコードされたストリームは、可変ビットレートエンコーディング技法を使用してエンコードされ、再生デバイスは、バッファを利用して、エンコーディングビットレートの変動を平滑化する。エンコードされたビットレートにおける変動を平滑化するためのメディアのバッファリングは、ストリーム間で切り替えを行うための再生デバイスの決定に影響を及ぼし得る。再生デバイスが十分に大きなデータの量をバッファリングするとき、再生デバイスは、ストリーム間で切り替えるための十分な時間を有し、再生デバイスは、新しいチャネルレート未満である最大ビットレートを有する最高ビットレートストリームを選定することができる。バッファリングされたビデオの量が、ネットワークデータレート未満の最高の最大ビットレートを有する、ストリームからの上限シーク遅延に等しい再生持続時間を有するビデオの一部をダウンロードするために要求される時間未満である再生持続時間を有するとき、再生デバイスは、ストリーム切り替え後に、より低い最大ビットレートを有するストリームを選択し、バッファアンダーフローを防止してもよい。
【００２９】
再生に先立って、最初にバッファリングされたデータの量を減少させることは、再生が開始する速度を増加させることができる。しかしながら、バッファリングが少ないメディアは、突然、チャネルレートが低下する場合、再生デバイスが、ストリーム間で切り替えを行う時間が少ない結果をもたらし得る。したがって、再生デバイスは、そうでなければ、アンダーフローを回避するために該当するであろう、より低いビットレートを有する、ストリームを選択するよう強いられ得る。本発明の実施形態による、再生デバイスは、いずれかのアプローチまたは両アプローチの組み合わせを使用することができる。本発明の実施形態による、再生デバイスが、バッファリングするためのデータの量を決定する様式、およびチャネルレートにおける突然の低下に応答して、ストリームを切り替える方法は、以下にさらに論じられる。
【００３０】
（可変ビットレートストリームのバッファリング）
再生の開始に先立って、可変ビットレートでエンコードされたメディアのバッファリングは、バッファリングまたはシーク遅延と称され得るものを導入する。遅延は、一般的には、いったん再生が開始すると、バッファがアンダーフローを起こさない、十分な量のメディアをダウンロードするためにかかる時間に等しい。チャネルレートが変化しないと仮定すると、再生デバイスは、初期シーク遅延後、不断の再生を経験するはずである。
【００３１】
（上限シーク遅延を使用したバッファリングおよび再生）
多くの実施形態では、各ストリームは、最大ビットレートおよび最大バッファサイズを用いてエンコードされる。したがって、ストリームに対するシーク遅延は、ストリームの最大バッファサイズが、ストリームの最大ビットレートによって除算されたものとして決定することができる。ストリームの最大ビットレートに基づいてシーク遅延を計算することは、再生を開始するために要求されるバッファリングの量に関する上限を表し、上限シーク遅延と呼ばれ得る。再生デバイスは、再生デバイスが上限シーク遅延に等しい持続時間を有するメディアの一部、またはストリームの最大バッファサイズ属性にサイズが等しいメディアの一部をダウンロードするとき、チャネルレート未満の最大ビットレートを有するストリームの再生を安全に開始することができる。再生開始後、平均して、上限シーク遅延の持続時間に対応するメディアの一部は、ストリームのエンコーディングおよびチャネルのレートの結果としてバッファ中に残留している。
【００３２】
チャネルのレートが有意に低下すると、本発明のある実施形態による、再生デバイスは、より低いビットレートストリーム（すなわち、より低い最大ビットレートを有するストリーム）に切り替えることができる。再生デバイスが、以前にバッファリングされたメディアの再生完了に先立って、より低いビットレートストリームの上限シーク遅延に等しい再生持続時間を有するメディアの一部をバッファリングしない場合、より低いビットレートストリームの再生は、失速し得る。再生デバイスが、上限シーク遅延以上の再生持続時間を有するメディアの一部をバッファリングしていることを前提として、より低いビットレートストリームの上限シーク時間が、より高いビットレートストリームの上限シーク遅延以下である場合、アンダーフローは、回避されることができる。故に、各ストリームが、より高いビットレートストリームの上限シーク遅延以上である上限シーク遅延を有するようにエンコードされる場合、再生デバイスは、シーク遅延に関係なく、所与のチャネル条件に最適であるストリーム間で滑らかに遷移することができる。
【００３３】
（ストリーム間での切り替え）
再生の開始前にバッファリングされたメディアの量が、上限シーク遅延を使用して決定されるとき、ストリーム間で切り替えるためのプロセスが、図４に図示される。プロセス１００は、再生条件に対する最適ストリームを選択するステップ（１０２）と、再生に先立って、上限シーク遅延に等しい再生持続時間を有するメディアの一部をバッファリングするステップとを含む。再生の開始に先立って、チャネル条件は未知であってもよく、再生は、最低ビットレートで開始する（但し、多くの実施形態は、再生開始に先立って、チャネルレートを測定し、より高い最大ビットレートを有するビットレートストリームを利用することができる）。再生デバイスは、次いで、チャネルデータレートを測定（１０４）し、チャネルレートに変化があるかどうかを決定（１０６）する。変化が存在する場合、再生デバイスは、新しいチャネルレートに対して最適にエンコードされるストリームを選定（１０２）する。プロセスは、ストリームの終了（１０８）に到達するまで反復する。容易に理解され得るように、図４に図示されるプロセスは、極端に単純である。再生デバイスは、より低いビットレートストリームが、より高いビットレートストリームの上限シーク遅延以下である上限シーク遅延を有することを確実にするストリームのエンコーディングのため、および再生デバイスがストリームの上限シーク遅延に等しい再生持続時間を有するメディアの一部をバッファリングするため、シーク遅延を無視することができる。具体的プロセスが、図４に図示されるが、（限定されないが）シーク遅延に関する下限を利用して、再生を開始するためにかかる時間を短縮するプロセスを含む、具体的アプリケーションに適切な類似プロセスもまた、本発明の実施形態に従って、利用されることができる。
【００３４】
（下限シーク遅延を使用したバッファリングおよび再生）
ビデオが可変ビットレートでエンコードされるとき、全ピクチャが同一のサイズを有しているわけではない。チャネルレートに応じて、大きなフレーム（例えば、ｌ−フレーム）は、ダウンロードのために２つ以上のフレーム期間をとり得る。したがって、大きなフレームのクラスタ化による所与のチャネルレートでのビデオストリームの再生における失速を回避するために、実際の最小シーク遅延を決定する。バッファ内のデータの量が上限シーク遅延未満であるとき、ストリーミングを開始し、ストリーム切り替え決定を行うためにかかる時間を短縮するために、最小または下限シーク遅延を把握することに利点が存在する。バッファ内のデータの量が上限シーク遅延未満であり、ストリームを切り替える必要性が生じるとき、理想的には、ストリームは、バッファ内に記憶されたビデオを再生するためにかかるであろう時間の量よりも小さい下限シーク遅延を有するように選択される。ビデオデータは、一般的には、チャンクにおいて要求されるという事実に起因して、下限シーク遅延は、
【００３５】
【数１】
2014505425.tif 000003
のように、チャンクのサイズに基づいて決定することができる。
【００３６】
実際、下限シーク遅延は、チャンク到達間の各チャンクに対する時間の差の最大値（すなわち、全先行チャンクおよび現在のチャンクのサイズの和ｎがチャネルレートによって除算されたもの）として決定され、アンダーフローを防止するために到達しているはずであるとき（すなわち、（ｎ−１）＊各チャンクの再生持続時間）、上限シーク遅延は、
【００３７】
【数２】
2014505425.tif 000004
のように、データのストリームの最大バッファサイズに基づいて決定される。
【００３８】
上限シーク遅延は、最大可能チャンクをダウンロードするためにかかる時間に、チャンクを再生するためにかかる時間を加算したものと決定される。可変ビットレートビデオがエンコードされる様式のため、ストリーム内の最大可能フレームは、理論的には、バッファサイズと同程度であり得る。
【００３９】
いずれかの式を使用して、ストリームに対する最小バッファ遅延が、決定されることができる。下限シーク遅延は、一般的には、上限シーク遅延未満であるが、下限シーク遅延はまた、再生が開始する点に応じて、変化する。各ストリーム内の各点に対する下限シーク遅延は、サーバによって事前に計算され、要求に応じて、再生デバイスに提供されることができる。代替として、多くのＨ．２６４ビットストリームは、フィールドｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙ中に、ＳＥＩバッファリングメッセージ内の遅延情報を伝達する。この値は、前述の計算を行ったものと同一ではないが、相当することが分かっており、いくつかの実施形態では、ストリーム内の特定の点におけるｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙ値は、その点における下限シーク遅延として使用される。
【００４０】
再生は、一般的には、再生デバイスが、下限シーク遅延を使用して、アンダーフローを防止し得る、バッファリングされたメディアの量を決定するとすぐに開始することができる。しかしながら、再生の間、再生デバイスは、上限シーク遅延が使用されるときより少ないバッファリングされたコンテンツを有し得る。したがって、チャネルレートが低下すると、再生デバイスは、より低いビットレートストリームに切り替えるための時間が少ない。多くの実施形態では、再生デバイスは、新しいチャネルレート未満かつそれに最も近い最大ビットレートを有する、ストリームを選択し、そこから、下限シーク遅延に等しい再生持続時間を有するメディアの一部が、残りのバッファリングされたメディアを再生するためにかかるであろう時間内にダウンロードされることができる。多くの事例では、チャネル条件のために最適にエンコードされるストリームは、不十分なメディアが、バッファリングされたコンテンツを再生するためにかかるであろう時間内にダウンロードされ得るため、選択されるストリームではない。代わりに、より低いビットレートストリームが、バッファリングされたメディアの再生の間、ダウンロードされるメディアの一部が、より低いビットレートストリームのための下限シーク遅延以上の再生持続時間を有するように、選択され得る。メディアの十分な部分が、再生デバイスのバッファ内に蓄積されると、再生デバイスは、チャネルビットレートのために最適である、より高いレートのビットストリームに切り替えることができる。
【００４１】
本発明のある実施形態による、ストリーム間で切り替えるとき、下限シーク遅延を利用する再生デバイスは、ストリームのそれぞれに対する下限シーク遅延をサーバから取得することができる。いくつかの実施形態では、下限シーク遅延は、サーバから受信されたストリーム内にエンコードされる。いくつかの実施形態では、再生デバイスは、下限シーク遅延をサーバから別個に取得する。いくつかの実施形態では、再生デバイスは、ストリームの全部に対する下限シーク遅延として、ストリームのそれぞれに対する下限シーク遅延の最高値を利用する。下限シーク遅延の最高値は、ストリームの全部に対して使用するための再生デバイスにとって安全であるため、安全シーク遅延と称され得る。各ストリームに対する下限シーク遅延の代わりに、安全シーク遅延を利用することは、現在のストリームの安全シーク遅延を把握することによって、全他の代替ストリームのシーク遅延にわたって十分な知識を与えるため、望ましくあり得る。多くの実施形態では、ストリーム内の全対応する場所にわたる最大ｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙ値は、安全シーク遅延と見なされ、各ストリームのＳＥＩバッファリングメッセージ内のｉｎｉｔｉａｌ＿ｃｐｂ＿ｒｅｍｏｖａｌ＿ｄｅｌａｙフィールド中に挿入される。他の実施形態では、種々の技法のいずれかが、再生デバイスが、チャネルレートの変化に応答して、新しいストリームを選択する前に、再生デバイスに、ストリームのそれぞれと関連付けられた遅延を提供するために利用される。
【００４２】
（下限および上限シーク遅延の組み合わせを使用したバッファリングおよび再生）
下限シーク時間の利用は、再生をより迅速に開始可能にする。適切にエンコードされたコンテンツと組み合わせた上限シーク時間の使用は、ストリーム間の切り替えを簡略化する。いくつかの実施形態では、再生デバイスは、両アプローチの利点を用いるプロセスを利用する。
【００４３】
本発明のある実施形態による、適応型ビットレートストリーミングを行うためのプロセスは、図５に図示される。プロセス２００は、ストリームが、図４に示されるプロセスに関して前述のストリームと同様にエンコードされ、下限シーク遅延または安全シーク遅延情報が、再生デバイスに利用可能である（例えば、各ストリーム内に）と仮定する。プロセス２００は、下限シーク遅延または安全シーク遅延を利用して、再生を開始すべき時を決定する、前述の適応型ビットレートストリーミングプロセスと同様に開始される。しかしながら、適応型ビットレートプロセスは、初期適応型ビットレートプロセス（２０２）の間に選択されるストリームのレートが、チャネルレート未満の所定の量であるという点において、前述のプロセスと異なる。より低いビットレートストリームは、メディアが、再生デバイスのバッファ内に蓄積するように選択される。いくつかの実施形態では、ストリームは、チャネルレートの３３％未満である、ビットレートを有するように選択される。但し、他の実施形態では、所定の量は、より多い、より少ない、および／またはメディア再生の間、再生デバイスのバッファ内にメディアの蓄積をもたらす他の方法で決定されることができる。ストリームの上限シーク遅延以上の再生持続時間および／またはエンコードされたストリームのための最大バッファサイズ以上のサイズを有する、バッファ内に蓄積されるメディアの量が決定されると（２０４）、適応型ビットレートストリーミングプロセスは、図４に図示される適応型ビットレートストリーミングプロセスに遷移（２０６）し、ストリームのエンコーディングおよび再生デバイスのバッファ内に記憶されるメディアの量の組み合わせによって、再生デバイスが、シーク遅延に関係なく、所与のチャネルレートに対して最適にエンコードされたストリームを選択することを可能にする。
【００４４】
具体的プロセスが、図５に図示され、具体的ストリーム切り替えルールが、ストリームを切り替えるとき、高速再生を達成するための下限シーク時間の利点と、上限シーク時間の単純性を組み合わせて、前述されたが、いくつかのプロセスは、適応型ビットレートストリーミングの間、可変バッファリング要件を利用して、本発明の実施形態による、異なる性能目的を達成することができる。
【００４５】
（下限および上限シーク遅延の組み合わせを使用時のストリーム切り替え）
再生デバイスが、下限および上限シーク遅延の両方を利用することができるとき、バッファリングされたビデオの量に依存する、一組のストリーム切り替えルールが、利用される。図５に関連して前述のように、再生デバイスは、ビデオの再生開始に先立って、バッファリングに費やす時間を短縮するために、下限シーク遅延を利用することができる。この初期始動期間の間、ストリームの下限シーク遅延が、ストリーム切り替え時にバッファリングされたビデオを再生するためにかかるであろう時間の量未満であるストリームを選択することを伴うストリーム切り替えルールを適用することができる。そのようなルールは、以下のように表すことができる。
１．（バッファレベル＜上限シーク遅延）である場合、バッファリングされたビデオの再生持続時間未満の下限シーク遅延を有するストリームを選択する。
【００４６】
ネットワーク帯域幅測定が、確実に行われることができない場合、再生デバイスは、最低ビットレートストリームの選択を強いる、付加的ストリーミングルールを利用することができる。このストリーム切り替えルールは、以下のように表すことができる。
２．（バッファレベル＜上限シーク遅延およびネットワークデータレートが、信頼できないまたは不正確なである）場合、最低ビットレートストリームを選択する。
【００４７】
定常ネットワークデータレートは、十分に長い時間期間の間、経験される、またはより低いビットレートストリームが、図５に関連して前述のように、バッファを増大させるように選択されるとき、再生デバイスによってバッファリングされたビデオの量は、ストリームの上限シーク遅延を超える点に上昇するであろう。この点において、ストリーム切り替えが、測定されたネットワーク帯域幅およびストリームの最大ビットレートに基づいて、行われることができる。より低い最大ビットレートでエンコードされたストリームの上限シーク遅延が、既知である場合、類似ストリーム切り替え決定が、切り替えが行われているストリームの上限シーク遅延に基づいて行われ得る。対応するストリーム切り替えルールは、以下のように表されることができる。
３．（ネットワークデータレートが、信頼性があり、上限シーク遅延＜＝バッファリングされたビデオ）である場合、ネットワークデータレート未満の最大ビットレートを有する代替ストリームの最高値である、最大ビットレートを有するストリームを選択する。
【００４８】
再生デバイスが、レベルレートに従って予期されるものより遥かに高速で、ストリームのチャンクをダウンロードしているとき、チャネルデータレートは、ストリームの最大ビットレートより遥かに高く、ネットワークデータレートを確実に測定することは困難であって、したがって、いったんバッファリングされたビデオの量が上限シーク遅延を超えると、より高いビットレートストリームが選択されることができる。このストリーム切り替えルールは、以下のように表されることができる。
４．（チャンクをダウンロードするために予期される時間＞＞チャンクをダウンロードするためにかかる実施の時間および上限シーク遅延＜＝バッファリングされたビデオ）である場合、次の最高の最大ビットレートを有するストリームを選択する。
【００４９】
前述のルールに加え、本発明の実施形態による、再生デバイスは、ヒステリシスをストリーム切り替えルールに組み込み、測定されたネットワークデータレートが、決定閾値の周囲で変動するとき、過剰なレベルの切り替えを防止することができる。さらに、再生デバイスは、ストリームを選択するとき、測定されたネットワークデータレートと選択されたストリームの最大ビットレートとの間に、安全マージンまたはヘッドルームを含んでもよい。多くの実施形態では、ヘッドルームは、有意な帯域幅切断（例えば、所定の量または割合）後、一時的に増加し、ネットワークデータレート内の付加的切断の場合、バッファアンダーフローの可能性を低減させることができる。また、再生デバイスは、他のメディアのダウンロード（特に、始動時）を抑制し、特定のストリームのためにバッファリングされたビデオデータの再生持続時間が、上限シーク遅延に一致する、またはそれを超えるためにかかる時間を短縮させることができる。
【００５０】
具体的ストリーム切り替えルールが、切り替えストリームを切り替えるとき、高速再生を達成するための下限シーク時間の利点と、上限シーク時間の単純性を組み合わせて、前述されるが、ストリーム切り替えルールの種々のかつ組み合わせのいずれかが、適応型ビットレートストリーミングの間、本発明の実施形態による、異なる性能目的を達成するために利用されることができる。
【００５１】
本発明は、ある具体的側面において説明されたが、多くの付加的修正および変形例が、当業者に明白となるであろう。したがって、本発明は、例えば、本発明の範囲および精神から逸脱することなく、それらが準拠する特定の規格内で指定されるもの以外の特徴に対応する、エンコーダおよびデコーダを利用する、実装における種々の変更を含め、具体的に説明される以外に、別様に実践されてもよいことを理解されたい。したがって、本発明の実施形態は、あらゆる観点において、制限ではなく、例証として、見なされるべきである。
【図１Ｂ】
2014505425.tif 000011
【図１Ｃ】
2014505425.tif 000012
【図１Ａ】
2014505425.tif 000013
【図２】
2014505425.tif 000014
【図３】
2014505425.tif 000015
【図４】
2014505425.tif 000016
【図５】
2014505425.tif 000017
【国際調査報告】
2014505425.tif 000018