(57)【特許請求の範囲】
【請求項１】
ビデオデータを送る方法であって、
ビデオシーケンスの第１の表現のためのデータと前記ビデオシーケンスの第２の表現のためのデータとにアクセスするための情報をクライアント機器に与えることと、
前記第１の表現のための前記データの送信中に、前記ビデオシーケンスを表示するときにプレゼンテーションギャップを経験することなしに、及び２つ以上のデコーダを同時に実行することなしに、前記クライアント機器が前記第２の表現に切り替えることができ、前記切り替え中に前記第１の表現のための前記データと前記第２の表現のための前記データとを復号することを示す情報を前記クライアント機器に与えることと、前記与えることは、前記第１の表現から前記第２の表現に切り替えるために遅延値を前記クライアント機器に送ることを含む、
前記第１の表現からデータを検索するため前記クライアント機器からの第１の要求に応答して、前記第１の表現からの前記要求されたデータを前記クライアント機器に送ることと、
前記第１の表現からの前記要求されたデータを送った後、前記第２の表現からデータを検索するため前記クライアント機器からの第２の要求に応答して、前記第２の表現からの前記要求されたデータを前記クライアント機器に送ることとを備える、方法。
【請求項２】
１つの符号化ビデオサンプルの復号遅延が、前記符号化ビデオサンプルを復号するための遅延を含み、前記第１及び第２の表現の複数の符号化ビデオサンプルのための最大復号遅延を決定することと、
１つの符号化ビデオピクチャのためのピクチャ並べ替え遅延が、前記符号化ビデオピクチャのための復号時間と前記符号化ビデオピクチャのためのプレゼンテーション時間との間の差を含み、前記第１及び第２の表現の前記複数の符号化ビデオサンプルのための最大ピクチャ並べ替え遅延を決定することと、
前記最大復号遅延と前記最大ピクチャ並べ替え遅延との和を含む遅延値を計算することと、を更に備える、請求項１に記載の方法。
【請求項３】
前記第１及び第２の表現の前記符号化ビデオサンプルが時間整合されているかどうかを決定することをさらに備え、
前記第１及び第２の表現の前記符号化ビデオサンプルが時間整合されていないとき、前記遅延値を計算することが、前記最大復号遅延と前記最大ピクチャ並べ替え遅延との前記和に時間整合遅延値を加算することをさらに備え、前記時間整合遅延値が、前記第１の表現の最後の要求されたフラグメントの最後の符号化ビデオサンプルと前記第２の表現の最初のフラグメントの最初の符号化ビデオサンプルとの間の時間差を備える、請求項２に記載の方法。
【請求項４】
前記第１の表現のための初期化セグメントを受信することと、
前記第２の表現が前記第１の表現の前記初期化セグメントに基づいて復号され得ると決定することと、
前記第１の表現と前記第２の表現とにグループ識別子値を割り当てることと、
前記グループ識別子値を前記クライアント機器に送ることとをさらに備え、前記第１の表現からの前記要求されたデータを送ることが、前記初期化セグメントを前記クライアント機器に送ることを備え、
前記第２の表現の前記要求されたデータを前記クライアント機器に送ることが、前記第２の表現の初期化セグメントを前記クライアント機器に送ることなしに、前記第２の表現の前記要求されたデータを前記クライアント機器に送ることを備える、請求項１に記載の方法。
【請求項５】
ビデオデータを転送するための装置であって、ビデオシーケンスの第１の表現のためのデータと前記ビデオシーケンスの第２の表現のためのデータとにアクセスするための情報をクライアント機器に与えることと、前記第１の表現のための前記データの送信中に、前記ビデオシーケンスを表示するときにプレゼンテーションギャップを経験することなしに、及び２つ以上のデコーダを同時に実行することなしに、前記クライアント機器が前記第２の表現に切り替えることができ、前記切り替え中に前記第１の表現のための前記データと前記第２の表現のための前記データとを復号することを示す情報を前記クライアント機器に与えることと、前記第１の表現からデータを検索するため前記クライアント機器からの第１の要求に応答して、前記第１の表現からの前記要求されたデータを前記クライアント機器に送ることと、前記第１の表現からの前記要求されたデータを送った後、前記第２の表現からデータを検索するため前記クライアント機器からの第２の要求に応答して、前記第２の表現からの前記要求されたデータを前記クライアント機器に送ることと、前記第１の表現から前記第２の表現に切り替えるために前記遅延値を前記クライアント機器に送ることとを行うように構成されたプロセッサを備える、装置。
【請求項６】
前記プロセッサが、１つの符号化ビデオサンプルの復号遅延が、前記符号化ビデオサンプルを復号するための遅延を含み、前記第１及び第２の表現の複数の符号化ビデオサンプルのための最大復号遅延を決定することと、１つの符号化ビデオピクチャのためのピクチャ並べ替え遅延が、前記符号化ビデオピクチャのための復号時間と前記符号化ビデオピクチャのためのプレゼンテーション時間との間の差を含み、前記第１及び第２の表現の前記符号化ビデオサンプルのための最大ピクチャ並べ替え遅延を決定することと、前記最大復号遅延と前記最大ピクチャ並べ替え遅延との和を含む遅延値を計算することとを行うように構成された、請求項５に記載の装置。
【請求項７】
前記プロセッサは、前記第１及び第２の表現の前記符号化ビデオサンプルが時間整合されているかどうかを決定するように構成され、前記第１及び第２の表現の前記符号化ビデオサンプルが時間整合されていないとき、前記遅延値を計算することが、前記最大復号遅延と前記最大ピクチャ並べ替え遅延との前記和に時間整合遅延値を加算することをさらに備え、前記時間整合遅延値が、前記第１の表現の最後の要求されたフラグメントの最後の符号化ビデオサンプルと前記第２の表現の最初のフラグメントの最初の符号化ビデオサンプルとの間の時間差を含む、請求項６に記載の装置。
【請求項８】
前記プロセッサが、前記第１の表現のための初期化セグメントを受信することと、前記第２の表現が前記第１の表現の前記初期化セグメントに基づいて復号され得ると決定することと、前記第１の表現と前記第２の表現とにグループ識別子値を割り当てることと、前記グループ識別子値を前記クライアント機器に送ることと、前記第１の表現からの前記要求されたデータとともに前記初期化セグメントを前記クライアント機器に送ることと、前記第２の表現の初期化セグメントを前記クライアント機器に送ることなしに、前記第２の表現の前記要求されたデータを前記クライアント機器に送ることとを行うように構成された、請求項５に記載の装置。
【請求項９】
集積回路と、
マイクロプロセッサと、
前記プロセッサを含むワイヤレス通信機器とのうちの少なくとも１つを備える、請求項５に記載の装置。
【請求項１０】
ビデオデータを与えるための装置であって、
ビデオシーケンスの第１の表現のためのデータと前記ビデオシーケンスの第２の表現のためのデータとにアクセスするための情報をクライアント機器に与えるための手段と、
前記第１の表現のための前記データの送信中に、前記ビデオシーケンスを表示するときにプレゼンテーションギャップを経験することなしに、及び２つ以上のデコーダを同時に実行することなしに、前記クライアント機器が前記第２の表現に切り替えることができ、前記切り替え中に前記第１の表現のための前記データと前記第２の表現のための前記データとを復号することを示す情報を前記クライアント機器に与えるための手段と、
前記第１の表現からデータを検索するため前記クライアント機器からの第１の要求に応答して、前記第１の表現からの前記要求されたデータを前記クライアント機器に送るための手段と、
前記第１の表現からの前記要求されたデータを送った後、前記第２の表現からデータを検索するため前記クライアント機器からの第２の要求に応答して、前記第２の表現からの前記要求されたデータを前記クライアント機器に送るための手段と、
前記第１の表現から前記第２の表現に切り替えるために前記遅延値を前記クライアント機器に送るための手段とを備える、装置。
【請求項１１】
１つの符号化ビデオサンプルの復号遅延が、前記符号化ビデオサンプルを復号するための遅延を含み、前記第１及び第２の表現の前記符号化ビデオサンプルのための最大復号遅延を決定するための手段と、
１つの符号化ビデオピクチャのためのピクチャ並べ替え遅延が、前記符号化ビデオピクチャのための復号時間と前記符号化ビデオピクチャのためのプレゼンテーション時間との間の差を含み、前記第１及び第２の表現の前記符号化ビデオサンプルのための最大ピクチャ並べ替え遅延を決定するための手段と、
前記最大復号遅延と前記最大ピクチャ並べ替え遅延との和を備える遅延値を計算するための手段とをさらに備える、請求項１０に記載の装置。
【請求項１２】
前記第１及び第２の表現の前記符号化ビデオサンプルが時間整合されているかどうかを決定するための手段をさらに備え、
前記遅延値を計算するための前記手段が、前記最大復号遅延と前記最大ピクチャ並べ替え遅延との前記和に時間整合遅延値を加算するための手段をさらに備え、前記第１及び第２の表現の前記符号化ビデオサンプルが時間整合されていないとき、前記時間整合遅延値が、前記第１の表現の最後の要求されたフラグメントの最後の符号化ビデオサンプルと前記第２の表現の最初のフラグメントの最初の符号化ビデオサンプルとの間の時間差を備える、請求項１１に記載の装置。
【請求項１３】
前記第１の表現のための初期化セグメントを受信するための手段と、
前記第２の表現が前記第１の表現の前記初期化セグメントに基づいて復号され得ると決定するための手段と、
前記第１の表現と前記第２の表現とにグループ識別子値を割り当てるための手段と、
前記グループ識別子値を前記クライアント機器に送るための手段とをさらに備え、
前記第１の表現からの前記要求されたデータを送るための前記手段が、前記初期化セグメントを前記クライアント機器に送るための手段を備え、
前記第２の表現からの前記要求されたデータを送るための前記手段が、前記第２の表現の初期化セグメントをクライアント機器に送ることなしに、前記第２の表現のデータを前記クライアント機器に送るための手段を備える、請求項１０に記載の装置。
【請求項１４】
実行されると、
ビデオシーケンスの第１の表現のためのデータと前記ビデオシーケンスの第２の表現のためのデータとにアクセスするための情報をクライアント機器に与えることと、
前記第１の表現のための前記データの送信中に、前記ビデオシーケンスを表示するときにプレゼンテーションギャップを経験することなしに、及び２つ以上のデコーダを同時に実行することなしに、前記クライアント機器が前記第２の表現に切り替えることができ、前記切り替え中に前記第１の表現のための前記データと前記第２の表現のための前記データとを復号することを示す情報を前記クライアント機器に与えることと、
前記第１の表現からデータを検索するため前記クライアント機器からの第１の要求に応答して、前記第１の表現からの前記要求されたデータを前記クライアント機器に送ることと、
前記第１の表現からの前記要求されたデータを送った後、前記第２の表現からデータを検索するため前記クライアント機器からの第２の要求に応答して、前記第２の表現からの前記要求されたデータを前記クライアント機器に送ることと、
前記第１の表現から前記第２の表現に切り替えるために前記遅延値を前記クライアント機器に送ることとを、ビデオデータを与えるためのデバイスのプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体。
【請求項１５】
１つの符号化ビデオサンプルの復号遅延が、前記符号化ビデオサンプルを復号するための遅延を含み、前記第１及び第２の表現の複数の符号化ビデオサンプルのための最大復号遅延を決定することと、
１つの符号化ビデオピクチャのためのピクチャ並べ替え遅延が、前記符号化ビデオピクチャのための復号時間と前記符号化ビデオピクチャのためのプレゼンテーション時間との間の差を含み、前記第１及び第２の表現の前記符号化ビデオサンプルのための最大ピクチャ並べ替え遅延を決定することと、
前記最大復号遅延と前記最大ピクチャ並べ替え遅延との和を備える遅延値を計算することとを前記プロセッサに行わせる命令をさらに備える、請求項１７に記載のコンピュータ可読記憶媒体。
【請求項１６】
前記第１及び第２の表現の前記符号化ビデオサンプルが時間整合されているかどうかを決定することを前記プロセッサに行わせる命令をさらに含み、
前記遅延値を計算することを前記プロセッサに行わせる前記命令が、前記第１及び第２の表現の前記符号化ビデオサンプルが時間整合されていないとき、前記最大復号遅延と前記最大ピクチャ並べ替え遅延との前記和に時間整合遅延値を加算することを前記プロセッサに行わせる命令を含み、前記時間整合遅延値が、前記第１の表現の最後の要求されたフラグメントの最後の符号化ビデオサンプルと前記第２の表現の最初のフラグメントの最初の符号化ビデオサンプルとの間の時間差を含む、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記第１の表現のための初期化セグメントを受信することと、
前記第２の表現が前記第１の表現の前記初期化セグメントに基づいて復号され得ると決定することと、
前記第１の表現と前記第２の表現とにグループ識別子値を割り当てることと、
前記グループ識別子値を前記クライアント機器に送ることと
を前記プロセッサに行わせる命令をさらに備え、
前記第１の表現からの前記データを送ることを前記プロセッサに行わせる前記命令が、前記初期化セグメントを前記クライアント機器に送ることを前記プロセッサに行わせる命令を含み、
前記第２の表現からの前記データを送ることを前記プロセッサに行わせる前記命令が、前記第２の表現の初期化セグメントを前記クライアント機器に送ることなしに、前記第２の表現からのデータを前記クライアント機器に送ることを前記プロセッサに行わせる命令を含む、請求項１７に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、符号化ビデオデータの記憶及びトランスポートに関する。
【背景技術】
【０００２】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話又は衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信及び受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３又はＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格、及びそのような規格の拡張に記載されているビデオ圧縮技術など、ビデオ圧縮技術を実装する。
【０００３】
ビデオ圧縮技術は、ビデオシーケンスに固有の冗長性を低減又は除去するために空間的予測及び／又は時間的予測を実行する。ブロックベースのビデオ符号化の場合、ビデオフレーム又はスライスがマクロブロックに区分され得る。各マクロブロックはさらに区分され得る。イントラ符号化（Ｉ）フレーム又はスライス中のマクロブロックは、隣接マクロブロックに関する空間的予測を使用して符号化される。インター符号化（Ｐ又はＢ）フレーム又はスライス中のマクロブロックは、同じフレーム又はスライス中の隣接マクロブロックに関する空間的予測、若しくは他の参照フレームに関する時間的予測を使用し得る。
【０００４】
ビデオデータが符号化された後、ビデオデータは送信又は記憶のためにパケット化され得る。ビデオデータは、ＡＶＣなど、国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマット及びそれの拡張など、様々な規格のいずれかに準拠するビデオファイルにアセンブルされ得る。
【０００５】
Ｈ．２６４／ＡＶＣに基づく新しいビデオ符号化規格を開発するための取り組みが行われている。１つのそのような規格は、Ｈ．２６４／ＡＶＣのスケーラブル拡張であるスケーラブルビデオ符号化（ＳＶＣ）規格である。別の規格は、Ｈ．２６４／ＡＶＣのマルチビュー拡張になったマルチビュービデオ符号化（ＭＶＣ）である。ＭＶＣのジョイントドラフトは、http://wftp3.itu.int/av-arch/jvt-site/2008_07_Hannover/JVT-AB204.zipにおいて入手可能な、ＪＶＴ−ＡＢ２０４、「Joint Draft 8.0 on Multiview Video Coding」、28th JVT meeting、Hannover、Germany、July 2008に記載されている。ＡＶＣ規格のバージョンは、http://wftp3.itu.int/av-arch/jvt-site/2009_01_Geneva/JVT-AD007.zipから入手可能な、ＪＶＴ−ＡＤ００７、「Editors' draft revision to ITU-T Rec. H.264 | ISO/IEC 14496-10 Advanced Video Coding - in preparation for ITU-T SG 16 AAP Consent (in integrated form)」、30th JVT meeting、Geneva、CH、Feb. 2009に記載されている。本明細書では、ＳＶＣ規格及びＭＶＣ規格とＡＶＣ仕様との統合を行う。
【発明の概要】
【０００６】
本出願は、その各々の全体が参照により本明細書に組み込まれる、２０１０年７月１３日に出願された米国仮出願第６１／３６３，８８４号、２０１０年７月２１日に出願された米国仮出願第６１／３６６，４３６号、２０１０年８月１６日に出願された米国仮出願第６１／３７４，２２２号、及び２０１１年１月１４日に出願された米国仮出願第６１／４３３，１１０号の利益を主張する。
【０００７】
概して、本開示は、ネットワークストリーミングプロトコルを使用してマルチメディアコンテンツの表現をストリーミングしながら表現間で切り替えるための技術について説明する。同じマルチメディアコンテンツは、様々な方法で符号化され、マルチメディアコンテンツの様々な表現を生じ得る。本開示の技術は、クライアント機器においてビデオ再生を中断することなしに表現間で切り替えるクライアント機器の能力を改善することによって、（例えば、ＨＴＴＰストリーミングとも呼ばれるＨＴＴＰバージョン１．１などのネットワークストリーミングプロトコルに従って）マルチメディアコンテンツのデータのストリーミングを改善し得る。
【０００８】
本開示の技術によれば、サーバ機器は、復号遅延とピクチャ並べ替え遅延とを表す遅延値を信号伝達し得る（即ち、要求に応答して与え得る）。復号遅延は、表現の１つ以上の符号化されたビデオサンプルを復号するために必要とされる時間量を表し得る。ピクチャは、ピクチャが復号される順序と必ずしも同じ順序で表示されるとは限らないので、ピクチャ並べ替え遅延は、表示の目的でピクチャを並べ替えるために必要とされる時間量を表し得る。クライアント機器は、遅延値を使用して、クライアント機器がある表現から別の表現に切り替え得るポイントを決定し得る。即ち、クライアント機器は、クライアント機器が第１の表現のデータを要求するのを止め、代わりに第２の異なる表現のデータを要求し始めるポイントを決定し得る。信号伝達された遅延値を考慮して、クライアントは、表現間の切替えによって（復号及び並べ替えに続く）再生が中断されないようにこのポイントを決定し得る。
【０００９】
一例では、ビデオデータを送る方法が、ビデオシーケンスの第１の表現のためのデータとビデオシーケンスの第２の表現のためのデータとにアクセスするための情報をクライアント機器に与えることと、第１の表現のためのデータの送信中に、ビデオシーケンスを表示するときにプレゼンテーションギャップを経験することなしに、及び切替え中に第１の表現のためのデータと第２の表現のためのデータとを復号するために２つ以上のデコーダを同時に実行することなしに、クライアント機器が第２の表現に切り替えることができることを示す情報をクライアント機器に与えることと、第１の表現からデータを検索するためクライアント機器からの第１の要求に応答して、第１の表現からの要求されたデータをクライアント機器に送ることと、第１の表現からの要求されたデータを送った後、第２の表現からデータを検索するためクライアント機器からの第２の要求に応答して、第２の表現からの要求されたデータをクライアント機器に送ることとを含む。
【００１０】
別の例では、ビデオデータを送るための装置が、ビデオシーケンスの第１の表現のためのデータとビデオシーケンスの第２の表現のためのデータとにアクセスするための情報をクライアント機器に与えることと、第１の表現のためのデータの送信中に、ビデオシーケンスを表示するときにプレゼンテーションギャップを経験することなしに、及び切替え中に第１の表現のためのデータと第２の表現のためのデータとを復号するために２つ以上のデコーダを同時に実行することなしに、クライアント機器が第２の表現に切り替えることができることを示す情報をクライアント機器に与えることと、第１の表現からデータを検索するためクライアント機器からの第１の要求に応答して、第１の表現からの要求されたデータをクライアント機器に送ることと、第１の表現からの要求されたデータを送った後、第２の表現からデータを検索するためクライアント機器からの第２の要求に応答して、第２の表現からの要求されたデータをクライアント機器に送ることとを行うように構成されたプロセッサを含む。
【００１１】
別の例では、ビデオデータを送るための装置が、ビデオシーケンスの第１の表現のためのデータとビデオシーケンスの第２の表現のためのデータとにアクセスするための情報をクライアント機器に与えるための手段と、第１の表現のためのデータの送信中に、ビデオシーケンスを表示するときにプレゼンテーションギャップを経験することなしに、及び切替え中に第１の表現のためのデータと第２の表現のためのデータとを復号するために２つ以上のデコーダを同時に実行することなしに、クライアント機器が第２の表現に切り替えることができることを示す情報をクライアント機器に与えるための手段と、第１の表現からデータを検索するためクライアント機器からの第１の要求に応答して、第１の表現からの要求されたデータをクライアント機器に送るための手段と、第１の表現からの要求されたデータを送った後、第２の表現からデータを検索するためクライアント機器からの第２の要求に応答して、第２の表現からの要求されたデータをクライアント機器に送るための手段とを含む。
【００１２】
別の例では、コンピュータプログラム製品が、実行されると、ビデオデータを送るための発信源機器のプロセッサに、ビデオシーケンスの第１の表現のためのデータとビデオシーケンスの第２の表現のためのデータとにアクセスするための情報をクライアント機器に与えることと、第１の表現のためのデータの送信中に、ビデオシーケンスを表示するときにプレゼンテーションギャップを経験することなしに、及び切替え中に第１の表現のためのデータと第２の表現のためのデータとを復号するために２つ以上のデコーダを同時に実行することなしに、クライアント機器が第２の表現に切り替えることができることを示す情報をクライアント機器に与えることと、第１の表現からデータを検索するためクライアント機器からの第１の要求に応答して、第１の表現からの要求されたデータをクライアント機器に送ることと、第１の表現からの要求されたデータを送った後、第２の表現からデータを検索するためクライアント機器からの第２の要求に応答して、第２の表現からの要求されたデータをクライアント機器に送ることとを行わせる命令を備えるコンピュータ可読記憶媒体を含む。
【００１３】
別の例では、ビデオデータを受信する方法が、ビデオシーケンスの第１の表現とビデオシーケンスの第２の表現との間で切り替えるための遅延を示す遅延値を受信することと、ストリーミングネットワークプロトコルに従ってビデオシーケンスの第１の表現からのデータを要求することと、第１の表現から第２の表現に切り替えることを決定したことに応答して、遅延値に基づいて第１の表現からのある量のデータをバッファすることと、第１の表現からのその量のデータをバッファした後に、ストリーミングネットワークプロトコルに従ってビデオシーケンスの第２の表現からのデータを要求することとを含む。
【００１４】
別の例では、ビデオデータを受信するための装置が、ビデオシーケンスの第１の表現とビデオシーケンスの第２の表現との間で切り替えるための遅延を示す遅延値を受信することと、ストリーミングネットワークプロトコルに従ってビデオシーケンスの第１の表現からのデータを要求することと、第１の表現から第２の表現に切り替えることを決定したことに応答して、遅延値に基づいて第１の表現からのある量のデータをバッファすることと、第１の表現からのそのデータ量をバッファした後に、ストリーミングネットワークプロトコルに従ってビデオシーケンスの第２の表現からのデータを要求することとを行うように構成されたプロセッサを含む。
【００１５】
別の例では、ビデオデータを受信するための装置が、ビデオシーケンスの第１の表現とビデオシーケンスの第２の表現との間で切り替えるための遅延を示す遅延値を受信するための手段と、ストリーミングネットワークプロトコルに従ってビデオシーケンスの第１の表現からのデータを要求するための手段と、第１の表現から第２の表現に切り替えることを決定したことに応答して、遅延値に基づいて第１の表現からのあるデータ量をバッファするための手段と、第１の表現からのそのデータ量をバッファした後に、ストリーミングネットワークプロトコルに従ってビデオシーケンスの第２の表現からのデータを要求するための手段とを含む。
【００１６】
別の例では、コンピュータプログラム製品が、実行されると、ビデオデータを受信するための発信源機器のプロセッサに、ビデオシーケンスの第１の表現とビデオシーケンスの第２の表現との間で切り替えるための遅延を示す遅延値を受信することと、ストリーミングネットワークプロトコルに従ってビデオシーケンスの第１の表現からのデータを要求することと、第１の表現から第２の表現に切り替えることを決定したことに応答して、遅延値に基づいて第１の表現からのある量のデータをバッファすることと、第１の表現からのそのデータ量をバッファした後に、ストリーミングネットワークプロトコルに従ってビデオシーケンスの第２の表現からのデータを要求することとを行わせる命令を備えるコンピュータ可読記憶媒体を含む。
【００１７】
１つ以上の例の詳細を添付の図面及び以下の説明に記載する。他の特徴、目的、及び利点は、説明及び図面、並びに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１８】
【図１】オーディオ／ビデオ（Ａ／Ｖ）発信源機器がオーディオ及びビデオデータをＡ／Ｖ宛先機器に転送する例示的なシステムを示すブロック図。
【図２】例示的なカプセル化ユニットの構成要素を示すブロック図。
【図３】符号化ビデオフレームのシーケンスを示す概念図。
【図４】切替え可能な表現を示す概念図。
【図５Ａ】時間的に整合している２つの表現の一例を示す概念図。
【図５Ｂ】時間的に整合していない２つの表現の一例を示す概念図。
【図６】２つの切替え可能な表現間のシームレスな切替えを実行するための例示的な方法を示すフローチャート。
【図７】サーバ機器が、切替え可能な表現を記述する情報をクライアント機器に与えるための例示的な方法を示すフローチャート。
【図８】クライアント機器が、サーバ機器から第１の表現のデータを検索することから、サーバ機器から第２の表現のデータを検索することに切り替えるための例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１９】
概して、本開示は、ネットワークストリーミングコンテキストにおいてマルチメディアコンテンツの表現間の切替えをサポートするための技術について説明する。表現間で切り替えるとき、様々なファクタによって生じる自然遅延が存在し得る。以下でより詳細に説明するように、本開示の技術は、マルチメディアコンテンツのある表現からマルチメディアコンテンツの別の表現に切り替えるときに考慮すべき遅延を示す情報を信号伝達すること（例えば、クライアント機器からの要求に応答してサーバ機器がデータを与えること）を含む。このようにして、クライアント機器は、第２の表現からのデータを受信して第２の表現からのデータを復号し始める前にデータを復号することを可能にするために、第１の表現からの十分な量のデータをバッファし得る。従って、クライアント機器は、マルチメディアコンテンツの再生を中断することなしに表現間で切り替えることが可能であり得る。このようにして、本開示の技術は、クライアント機器上のコンテンツを閲覧するとき、ユーザの経験(user’s experience)を改善し得る。
【００２０】
信号伝達された遅延は、復号遅延とピクチャ並べ替え遅延の両方を表し得る。特に、信号伝達された遅延値は、ある表現から別の表現に切り替えるための最大復号遅延と最大並べ替え遅延の組合せを備え得る。例えば、各フレームの符号化モード、ビットレート、解像度、又は他のファクタに基づいて、ピクチャのシーケンスに関連する異なる復号遅延が存在し得る。信号伝達された遅延値は、いずれかの表現のいずれかのアクセスユニット、又は切替えに関与する２つの表現のいずれかのアクセスユニットの最大復号遅延を含み得る。
【００２１】
ピクチャ並べ替え遅延は、ピクチャを復号順序から表示順序に並べ替えることに関連する遅延に対応し得る。Ｈ．２６４／ＡＶＣの例では、ビットストリームは、様々なタイプの符号化ピクチャ、例えば、イントラ符号化ピクチャ（例えば、Ｉピクチャ）及びインター符号化ピクチャ（例えば、Ｐピクチャ及びＢピクチャ）を含み得る。Ｉピクチャのためのデータは、概してＩピクチャの他のデータのみに対して符号化され、従って、イントラピクチャ符号化される。Ｐピクチャ及びＢピクチャのためのデータは、前に符号化された１つ以上の他のピクチャに対して符号化され得る。Ｐピクチャは、例えば、表示順序でＰピクチャに先行する１つ以上のピクチャに対して符号化され得る。別の例として、Ｂピクチャは、表示順序でＢピクチャに先行する１つ以上のピクチャと、表示順序でＢピクチャの後にくる１つ以上のピクチャとに対して符号化され得る。参照のために使用されるピクチャは、符号化され、それらのピクチャを参照するピクチャよりも早くビットストリーム中に配置され得る。
【００２２】
一例として、ＢピクチャはＩピクチャとＰピクチャの両方に対して符号化され得、ＰピクチャはＩピクチャに対して符号化され得る。３つのピクチャのうち、Ｐピクチャは最も早い表示時間を有し得、Ｉピクチャは最も遅い表示時間を有し得、ＢピクチャはＰピクチャの表示時間とＩピクチャの表示時間との間の表示時間を有し得る。これらのピクチャの予測構造により、ビデオエンコーダは、３つのピクチャのうちＩピクチャをビットストリーム中の最も早くに配置し得、３つのピクチャのうちＢピクチャをビットストリーム中の最も遅くに配置し得、Ｐピクチャをビットストリーム中のＩピクチャとＢピクチャとの間に配置し得る。従って、デコーダは、ビットストリームを順番に復号し、即ち、Ｉピクチャ、次いでＰピクチャ、次いでＢピクチャを復号し得る。但し、デコーダは、ＰピクチャがＢピクチャの前に表示され、ＢピクチャがＩピクチャの前に表示されるように、ピクチャを表示順序に並べ替え得る。
【００２３】
上記で説明したように、信号伝達された遅延値は、復号遅延とピクチャ並べ替え遅延との組合せを含み得る。ピクチャ並べ替え遅延は、いずれかの表現中のいずれかのピクチャのためのプレゼンテーション時間と復号時間との間の最大差に対応し得る。幾つかの例では、ピクチャ並べ替え遅延は、切替えに関与する２つの表現中のいずれかのピクチャのためのプレゼンテーション時間と復号時間との間の最大差に対応し得る。プレゼンテーション時間は、ピクチャが表示される相対時間に対応し、復号時間は、ピクチャが復号される相対時間に対応する。上記のように、プレゼンテーション時間と復号時間とは必ずしも等しくないので、復号に続き、復号されたピクチャがプレゼンテーション時間順序に並べ替えられ得る。
【００２４】
サーバ機器は、シームレスな切替えのために遅延値をクライアント機器に信号伝達し得る。遅延値は、同じマルチメディアコンテンツの、いずれかの表現中のいずれかのピクチャの最大復号遅延と、いずれかの表現中のいずれかのピクチャのプレゼンテーション時間と復号時間との間の最大差との和を備え得る。クライアント機器は、２つの表現の間のシームレスな切替えを実行するために、この信号伝達された遅延値を使用し得る。例えば、クライアント機器は、シームレスな切替えが実施され得るように、異なる表現に切り替える前に、バッファしておくべき現在の表現中のデータ量を決定し得る。即ち、利用可能な帯域幅が新しい表現のために十分であると仮定すると、クライアント機器はスムーズな再生とシームレスな復号を有し得る。
【００２５】
シームレスな切替えを実施するために、クライアント機器は、表現間の切替え中のシームレスな復号、並びに復号されたピクチャのシームレスな表示の両方を行う必要があり得る。シームレスな復号は、新しい表現からのピクチャを復号するために第２のデコーダが必要とされないことを保証し得る（とはいえ、クライアント機器はそれにもかかわらず２つ以上のデコーダを含み得る）。シームレスな表示は、ピクチャが表現間の切替え中に連続再生の準備ができていることに対応し得る。
【００２６】
本開示の技術はまた、表現のセットから切替えグループを形成することと、表現のセットが同じ切替えグループに属することを信号伝達することとを含む。表現は、宛先機器のデコーダ及び／又は他の要素を初期化するためのデータを含む初期化セグメントを含み得る。初期化セグメントは、例えば、ＩＳＯベースメディアファイルのムービーボックス、Ｈ．２６４／ＡＶＣビットストリームの、シーケンスパラメータセットとピクチャパラメータセットとを含んでいるサンプル、及び場合によってはシーケンスレベル補足エンハンスメント情報（ＳＥＩ：supplemental enhancement information）メッセージを記述し得る。場合によっては、２つ以上の表現に対して宛先機器を初期化するために同じ初期化セグメントが使用され得る。切替えグループは、それぞれ同じ初期化セグメントを使用して初期化され得る表現のセットを含み得る。このようにして、クライアント機器は、切替えグループの第１の表現のための初期化セグメントを検索し、次いで第２の表現に固有の初期化セグメントを検索しないで切替えグループの第２の表現に切り替え得る。即ち、クライアント機器は、第２の表現を復号するために第１の表現のための初期化セグメントを使用し得る。セグメントが全てランダムアクセスポイントピクチャから開始するとき、切替えグループは、時間的に整合されているセグメントを有する表現、従ってある表現から別の表現への切替えを含み得る。この場合、そのようなグループ間の切替えが起こった場合、異なる表現の時間的に重複するセグメントが要求される必要がある。
【００２７】
概して、Ｉピクチャはランダムアクセスポイント（ＲＡＰ）と呼ばれることがある。即ち、デコーダは、Ｉピクチャにおいて開始するビデオデータを復号し始め、Ｉピクチャの後にくるビットストリーム中のピクチャの全てでないとしても幾つかを復号することが可能であり得る。しかしながら、Ｉピクチャよりも早い表示順序を有するが、Ｉピクチャよりも遅い復号順序を有するＢピクチャなど、正しく復号可能でない幾つかのピクチャが存在し得る。これらのＢピクチャは、ビットストリーム中のより早いＩピクチャに従属し得る。ビットストリーム中の全ての後続のピクチャがビットストリーム中のより早いピクチャを検索することなしに適切に復号され得るＩピクチャは、瞬時復号リフレッシュ（ＩＤＲ：instantaneous decoding refresh）ランダムアクセスポイントと呼ばれることがある。ビットストリーム中の少なくとも１つの後続のピクチャがビットストリーム中のより早いピクチャを検索しないで適切に復号されないことがあるＩピクチャは、オープン復号リフレッシュ（ＯＤＲ）ランダムアクセスポイントと呼ばれることがある。
【００２８】
言い換えれば、ＩＤＲピクチャは、イントラ符号化スライスのみを含んでいることがあり、ＩＤＲピクチャを除く全ての参照ピクチャが「参照のために使用されない」とマークされるようにすることがある。符号化ビデオシーケンスは、復号順序で、ＩＤＲアクセスユニット（それを含む）から、次のＩＤＲアクセスユニット（それを含まない）又はビットストリームの最後の、どちらかより早く現れるほうまでの、連続するアクセスユニットのシーケンスと定義され得る。ＩＤＲピクチャを含むピクチャグループ（ＧＯＰ）中の各ピクチャは、前のピクチャが復号されたかどうかにかかわらず適切に復号され得る。そのようなＧＯＰはクローズドＧＯＰと呼ばれることがある。即ち、ＧＯＰの全てのピクチャが復号のために利用可能であると仮定すると、クローズドＧＯＰは、全てのピクチャが適切に復号され得るＧＯＰである。Ｈ．２６４／ＡＶＣの例では、クローズドＧＯＰは、ＩＤＲアクセスユニット、即ち、ＩＤＲピクチャを含むアクセスユニットから開始し得る。さらに、符号化ビデオシーケンスの（最初のＩＤＲピクチャを含む）各ピクチャが復号に応じられると仮定すると、符号化ビデオシーケンス中の各ピクチャは適切に復号され得る。
【００２９】
オープンＧＯＰは、オープンＧＯＰの全てのピクチャが復号に応じられるときでも、表示順序でＧＯＰのＩピクチャに先行するピクチャが正しく復号可能でないピクチャグループと定義され得る。エンコーダは、回復点補足エンハンスメント情報（ＳＥＩ）メッセージなど、ＧＯＰがオープンＧＯＰであることを示す情報をビットストリーム中に含み得る。オープンＧＯＰのＩピクチャはＯＤＲピクチャと呼ばれることがある。復号順序でオープンＧＯＰの後にくるピクチャは正しく復号可能であり得るが、オープンＧＯＰ中の幾つかのピクチャは復号順序で前のＩピクチャを参照することがあり、従って、前のＩピクチャが復号に応じられなければ適切に復号可能でないことがある。
【００３０】
概して、デコーダは、ＩＤＲピクチャ又はＯＤＲピクチャから開始するビットストリームを復号し始め、従ってＩＤＲピクチャとＯＤＲピクチャの両方をビットストリーム内のランダムアクセスポイントとして扱い得る。しかしながら、ＯＤＲピクチャにおいて開始してビットストリームがアクセスされる場合、適切に復号可能でない、ビットストリーム中のＯＤＲピクチャの後にくる幾つかのピクチャがあるので、デコーダは、これらのピクチャを復号しようと試みることに不要な労力を使うことがある。本開示の技術によれば、サーバは、ランダムアクセスポイントピクチャがＩＤＲピクチャであるか又はＯＤＲピクチャであるかを信号伝達し得る。サーバはまた、クライアント機器がＩＤＲ及び／又はＯＤＲピクチャのみにアクセスするために１つ以上のＨＴＴＰ部分ＧＥＴ要求をサブミットし得るように、ランダムアクセスポイントのためのバイト範囲を信号伝達し得る。このようにして、クライアントは、早送り又は巻戻しなど、マルチメディアコンテンツのトリックモード表示を可能にするために、ＩＤＲピクチャ及び／又はＯＤＲピクチャを検索し得る。
【００３１】
本開示の技術は、ＩＳＯベースメディアファイルフォーマット、スケーラブルビデオ符号化（ＳＶＣ）ファイルフォーマット、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）ファイルフォーマット、Ｔｈｉｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔ（３ＧＰＰ）ファイルフォーマット、及び／又はマルチビュービデオ符号化（ＭＶＣ）ファイルフォーマットのいずれか、若しくは他の同様のビデオファイルフォーマットに準拠するビデオファイルに適用され得る。
【００３２】
ＩＳＯベースメディアファイルフォーマットは、メディアの交換、管理、編集、及びプレゼンテーションを可能にする、フレキシブルな、拡張可能なフォーマットのプレゼンテーションのための、時限メディア情報を含んでいるように設計される。ＩＳＯベースメディアファイルフォーマット（ＩＳＯ／ＩＥＣ１４４９６−１２：２００４）は、時間ベースメディアファイルのための一般的な構造を定義するＭＰＥＧ−４  Ｐａｒｔ１２において規定されている。それは、Ｈ．２６４／ＭＰＥＧ−４ＡＶＣビデオ圧縮のサポートを定義したＡＶＣファイルフォーマット（ＩＳＯ／ＩＥＣ１４４９６−１５）、３ＧＰＰファイルフォーマット、ＳＶＣファイルフォーマット、及びＭＶＣファイルフォーマットなどのファミリー中の他のファイルフォーマットに対する基準として使用される。３ＧＰＰファイルフォーマット及びＭＶＣファイルフォーマットはＡＶＣファイルフォーマットの拡張である。ＩＳＯベースメディアファイルフォーマットは、オーディオビジュアルプレゼンテーションなどのメディアデータの時限シーケンスのためのタイミング、構造、及びメディア情報を含んでいる。ファイル構造はオブジェクト指向であり得る。ファイルは、非常に単純に基本オブジェクトに分解され得、オブジェクトの構造はそれらのタイプから暗示される。
【００３３】
ＩＳＯベースメディアファイルフォーマット（及びそれの拡張）に準拠するファイルは、「ボックス」と呼ばれる一連のオブジェクトとして形成され得る。ＩＳＯベースメディアファイルフォーマットのデータは、他のいかなるデータもファイル内に含まれる必要がなく、ファイル内のボックスの外部にデータがある必要がないように、ボックス中に含まれていることがある。これは、特定のファイルフォーマットによって必要とされる略式署名(initial signature)を含む。「ボックス」は、一意のタイプ識別子と長さとによって定義されるオブジェクト指向基礎的要素（object-oriented building block）であり得る。一般に、プレゼンテーションは１つのファイル中に含まれ、メディアプレゼンテーションは独立型（self-contained）である。ムービーコンテナ（ムービーボックス）はメディアのメタデータを含んでいることがあり、ビデオ及びオーディオフレームは、メディアデータコンテナ中に含まれていることがあり、他のファイル中にあり得る。
【００３４】
表現（動きシーケンス）は、幾つかのファイル中に含まれていることがある。タイミング及びフレーミング（位置及びサイズ）情報は概してＩＳＯベースメディアファイル中にあり、補助ファイルは本質的に任意のフォーマットを使用し得る。この表現は、表現を含んでいるシステムに対して「ローカル」であり得るか、若しくはネットワーク又は他のストリーム配信機構を介して与えられ得る。
【００３５】
ファイルは、論理構造と時間構造と物理構造とを有し得、これらの構造は結合される必要はない。ファイルの論理構造は、時間並列トラックのセットを含んでいる（ビデオデータとオーディオデータの両方を潜在的に含む）ムービー又はビデオクリップであり得る。ファイルの時間構造は、トラックが時間的なサンプルのシーケンスを含んでおり、それらのシーケンスは、随意のエディットリストによってムービー全体のタイムラインにマッピングされるものであり得る。ファイルの物理構造は、メディアデータサンプル自体から、論理、時間、及び構造的分解のために必要とされるデータを分離し得る。この構造的情報は、ムービーボックス中に集められ、場合によってはムービーフラグメントボックスによって時間的に拡張され得る。ムービーボックスは、サンプルの論理関係及びタイミング関係をドキュメント化し得、また、サンプルが配置される場所へのポインタを含んでいることがある。それらのポインタは、例えば、ＵＲＬによって参照される同じファイル又は別のファイルへのものであり得る。
【００３６】
各メディアストリームは、そのメディアタイプ（オーディオ、ビデオなど）に専用のトラック中に含まれていることがあり、さらにサンプルエントリによってパラメータ表示され得る。サンプルエントリは、厳密なメディアタイプ（ストリームを復号するために必要とされるデコーダのタイプ）の「名前」と、必要とされるそのデコーダのパラメータ表示を含んでいることがある。名前はまた、４文字コード、例えば、「ｍｏｏｖ」、又は「ｔｒａｋ」の形態をとり得る。ＭＰＥＧ−４メディアについてだけでなく、このファイルフォーマットファミリーを使用する他の編成によって使用されるメディアタイプについても、定義済みのサンプルエントリフォーマットがある。
【００３７】
メタデータのサポートは、概して２つの形態をとる。第１に、時限メタデータが、適切なトラックに記憶され得、必要に応じて、それが表しているメディアデータと同期され得る。第２に、ムービー又は個々のトラックにアタッチされた非時限メタデータの全般的サポートがあり得る。メタデータの構造的サポートは、全般的であり、メディアデータ、即ち、符号化ビデオピクチャの記憶と同様の方法で、ファイル中の他の場所又は別のファイル中でのメタデータリソースの記憶を可能にする。さらに、これらのリソースは名前付きであり得、保護され得る。
【００３８】
「プログレッシブダウンロード」という用語は、一般に、ＨＴＴＰプロトコル、例えばＨＴＴＰのバージョン１．１を使用した、サーバからクライアントへのデジタルメディアファイルの転送を説明するために使用される。プログレッシブダウンロードの一例はＨＴＴＰストリーミングである。コンピュータから開始されるとき、コンピュータは、ダウンロードが完了する前にメディアの再生を開始し得る。メディアのストリーミングとプログレッシブダウンロードとの間の１つの相違は、デジタルメディアにアクセスしているエンドユーザデバイスによってデジタルメディアデータが受信され、記憶される方法にある。プログレッシブダウンロード再生が可能であるメディアプレーヤは、そのままファイルのヘッダ中に配置されたメタデータと、ウェブサーバからダウンロードされたときのデジタルメディアファイルのローカルバッファとに依拠する。指定された量のバッファデータがローカル再生機器に利用可能になった時点で、機器はメディアを再生し始め得る。この指定された量のバッファデータは、エンコーダ設定においてコンテンツの製作者によってファイルに埋め込まれ得、クライアントコンピュータのメディアプレーヤによって課せられる追加のバッファ設定によって補強され得る。
【００３９】
ＨＴＴＰストリーミングでは、符号化オーディオ及びビデオサンプルを含む、表現のための全てのデータをムービー（ＭＯＯＶ）ボックス中で与えるのではなく、ムービーボックスとは別にサンプルを含み得るムービーフラグメント（ＭＯＯＦボックス）がサポートされる。各ムービーフラグメントは、ある時間期間にわたるサンプルを含み得る。概して、クライアントは、ムービーフラグメントを使用して所望の時間を迅速にシークし得る。（例えば）ＨＴＴＰストリーミングにおいて、クライアントがムービーフラグメントを検索すために単一の部分ＧＥＴ要求を発行し得るように、ムービーフラグメントはファイルの連続バイトを含み得る。部分ＧＥＴ要求は、ファイルの識別子（例えば、ユニフォームリソースロケータ（ＵＲＬ）又はユニフォームリソースネーム（ＵＲＮ））、並びにファイル内の検索されるべきバイト範囲を指定する。幾つかの例では、ムービーボックス自体は符号化オーディオ又はビデオサンプルを含んでいないように、符号化オーディオ及びビデオサンプルはムービーフラグメント中に完全に含まれ得る。
【００４０】
ＡＶＣ及び３ＧＰＰはＩＳＯベースメディアファイルフォーマットの拡張であり、ＳＶＣ及びＭＶＣはＡＶＣファイルフォーマットの拡張である。従って、本開示の技術は、ＩＳＯベースメディアファイルフォーマット、ＡＶＣファイルフォーマット、及びそれらの拡張、例えば、ＳＶＣ及びＭＶＣ、及び／又は３ＧＰＰファイルフォーマットに準拠するビデオファイルに対して適用され得る。本技術は、これらのフォーマットのこれら及び他の拡張にさらに適用され得、切替え可能な表現を記述する情報と、２つ以上の表現間のシームレスな切替えを可能にする遅延値とを与えるように他のファイルフォーマットを拡張するためにさらに適用され得る。
【００４１】
Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅｓ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）は、ＩＳＯベースメディアファイルフォーマットの拡張としてＡＶＣファイルフォーマットを開発した。ＡＶＣファイルフォーマットでは、シーケンスパラメータセット及びピクチャパラメータセットを含むパラメータセットは、ビデオトラック中にあるビデオエレメンタリストリームに関連付けられ得る。ＳＰＳ又はＰＰＳネットワークアブストラクションレイヤ（ＮＡＬ：network abstraction layer）ユニットであるサンプルを含んでいるパラメータセットエレメンタリストリームを含む、パラメータセットトラックと呼ばれる別のトラック中にパラメータセットを有することも可能である。しかしながら、ＳＥＩメッセージを使用するピクチャより前の復号時間をもつサンプル中にこのＳＥＩメッセージが提示される限り、ＳＥＩメッセージＮＡＬユニットの位置はＡＶＣファイルフォーマットでは制限されない。
【００４２】
ＡＶＣファイルフォーマットは、それぞれ、ＳＶＣ及びＭＶＣ拡張によって、ＳＶＣ及びＭＶＣの記憶をサポートするように拡張される。ＳＶＣ及びＭＶＣでは、１つのビデオトラック又は複数のビデオトラック中に複数のレイヤ／ビューが含まれ得る。レイヤ／ビューが様々な編成で提示されるとき、動作点を構築するために、ＳＶＣ及びＭＶＣ仕様において定義されたツールがある。
【００４３】
別の例として３ＧＰＰに関して、３ＧＰＰファイルをダウンロード及びプログレッシブダウンロードするためにＨＴＴＰ／ＴＣＰ／ＩＰトランスポートがサポートされる。さらに、ビデオストリーミングのためにＨＴＴＰを使用することは幾つかの利点を与え得、ＨＴＴＰに基づくビデオストリーミングサービスが普及しつつある。ＨＴＴＰストリーミングは、ネットワーク上でビデオデータをトランスポートするための新しい技術を開発するために新たな労力が必要とされないように、既存のインターネット構成要素及びプロトコルが使用され得ることを含む幾つかの利点を与え得る。他のトランスポートプロトコル、例えばＲＴＰペイロードフォーマットは、メディアフォーマット及び信号伝達コンテキストを認識するために、中間ネットワーク機器、例えば中間ボックスを必要とする。また、ＨＴＴＰストリーミングはクライアント主導型であり得、それにより、制御問題を回避し得る。
【００４４】
例えば、最適性能を取得するための特徴を活用するために、サーバは、まだ肯定応答されていないパケットのサイズとコンテンツとを追跡し得る。サーバはまた、ＲＤ最適切替え／間引き（thinning）決定を行うために、ファイル構造を分析し、クライアントバッファの状態を再構成し得る。さらに、ネゴシエートされたプロファイルに準拠した状態を保つために、ビットストリーム変動に関する制約が満たされ得る。ＨＴＴＰは、ＨＴＴＰ１．１が実装されたウェブサーバにおいて、新しいハードウェア又はソフトウェア実装を必ずしも必要とはしない。ＨＴＴＰストリーミングはまた、ＴＣＰフレンドリネスとファイアウォール横断とを実現する。
【００４５】
本開示の技術は、例えば、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ：dynamic adaptive streaming over HTTP）による、ＨＴＴＰストリーミングなどのネットワークストリーミングプロトコルに適用可能であり得る。ＨＴＴＰストリーミングでは、頻繁に使用される動作にはＧＥＴ及び部分ＧＥＴがある。ＧＥＴ動作は、所定のユニフォームリソースロケータ（ＵＲＬ）又はユニフォームリソースネーム（ＵＲＮ）に関連するファイル全体を検索する。部分ＧＥＴ動作は、入力パラメータとしてバイト範囲を受信し、受信したバイト範囲に対応するファイルの連続する幾つかのバイトを検索する。従って、部分ＧＥＴ動作は１つ以上の個々のムービーフラグメントを得ることができるので、ＨＴＴＰストリーミングのためのムービーフラグメントが与えられ得る。ムービーフラグメントには、異なるトラックの幾つかのトラックフラグメントがあり得ることに留意されたい。ＨＴＴＰストリーミングでは、メディア表現は、クライアントがアクセス可能であるデータの構造化された集合であり得る。クライアントは、ストリーミングサービスをユーザに提示するために、メディアデータ情報を要求し、ダウンロードし得る。
【００４６】
ＨＴＴＰストリーミングを使用して３ＧＰＰデータをストリーミングする例では、マルチメディアコンテンツのビデオ及び／又はオーディオデータのための複数の表現があり得る。そのような表現のマニフェストは、メディアプレゼンテーション記述（ＭＰＤ：Media Presentation Description）データ構造中で定義され得る。メディアプレゼンテーションは、ＨＴＴＰストリーミングクライアント機器がアクセス可能であるデータの構造化された集合に対応し得る。ＨＴＴＰストリーミングクライアント機器は、クライアント機器のユーザにストリーミングサービスを提示するために、メディアデータ情報を要求し、ダウンロードし得る。ＭＰＤの更新を含み得るＭＰＤデータ構造中にメディアプレゼンテーションが記述され得る。
【００４７】
メディアプレゼンテーションは、１つ以上の期間のシーケンスを含み得る。期間は、ＭＰＤ中のＰｅｒｉｏｄ要素によって定義され得る。各期間は、ＭＰＤ中に属性startを有し得る。ＭＰＤは、期間ごとのstart属性とavailableStartTime属性とを含み得る。ライブサービスでは、期間のstart属性とＭＰＤ属性availableStartTimeとの和は、ＵＴＣフォーマットでの期間の利用可能性時間、特に、対応する期間中の各表現の第１のメディアセグメントを指定し得る。オンデマンドサービスでは、第１の期間のstart属性は０であり得る。他の期間では、start属性は、対応する期間の開始時間と第１の期間の開始時間との間の時間オフセットを指定し得る。各期間は、次の期間の開始まで、又は最後の期間の場合、メディアプレゼンテーションの終了まで継続し得る。期間開始時間は正確であり得る。それらは、全ての前の期間のメディアを再生することから得られる実際のタイミングを反映し得る。
【００４８】
各期間は、同じメディアコンテンツのための１つ以上の表現を含み得る。表現は、オーディオ又はビデオデータの幾つかの代替符号化バージョンの１つであり得る。表現は、符号化タイプによって、例えば、ビデオデータの場合、ビットレート、解像度、及び／又はコーデックによって、並びにオーディオデータの場合、ビットレート、言語、及び／又はコーデックによって異なり得る。表現という用語は、マルチメディアコンテンツの特定の期間に対応する、特定の方法で符号化された、符号化オーディオ又はビデオデータのセクションを指すために使用され得る。
【００４９】
特定の期間の表現は、ＭＰＤ中のgroup属性によって示されるグループに割り当てられ得る。同じグループ中の表現は、概して互いの代替と見なされ得る。例えば、特定の期間にわたるマルチメディアコンテンツのビデオデータを表示するために、表現のいずれかが復号のために選択され得るように、対応する期間にわたるビデオデータの各表現が同じグループに割り当てられ得る。幾つかの例では、１つの期間内のメディアコンテンツは、存在する場合、グループ０からの１つの表現、又は各非ゼログループからの多くても１つの表現の組合せのいずれかによって表され得る。期間の各表現のタイミングデータは、期間の開始時間に対して表され得る。
【００５０】
表現は１つ以上のセグメントを含み得る。各表現は初期化セグメントを含み得るか、又は表現の各セグメントは自己初期化していることがある。存在するとき、初期化セグメントは、表現にアクセスするための初期化情報を含み得る。概して、初期化セグメントはメディアデータを含んでいない。セグメントは、ユニフォームリソースロケータ（ＵＲＬ）、ユニフォームリソースネーム（ＵＲＮ）、又はユニフォームリソース識別子（ＵＲＩ）などの識別子によって一意に参照され得る。ＭＰＤはセグメントごとの識別子を与え得る。幾つかの例では、ＭＰＤはまた、ＵＲＬ、ＵＲＮ、又はＵＲＩによってアクセス可能なファイル内のセグメントのためのデータに対応し得るバイト範囲をrange属性の形態で与え得る。
【００５１】
各メディア構成要素が、オーディオ、ビデオ、又は（例えば、クローズドキャプションのための）時限テキストなど、１つの個々のメディアタイプの符号化バージョンに対応し得る場合、各表現はまた、１つ以上のメディア構成要素を含み得る。メディア構成要素は、１つの表現内の連続するメディアセグメントの境界を越えて時間連続であり得る。
【００５２】
ＭＰＤはまた、例えば、ｇｒｏｕｐ属性を与えることによって部分表現をサポートし得る。部分表現は、マルチメディアファイルのビデオ又はオーディオトラックに対応し得る。ＭＰＤは、２つの部分表現が互いに切替え可能であるとき、２つの部分表現が同じgroup属性を有することを示し得る。
【００５３】
サーバ機器も、２つの表現が互いに効率的に切替え可能かどうかを信号伝達し得る。表現のいずれかを復号するとき、他の表現の初期化セグメントが使用され得る場合、２つの表現は効率的に切替え可能であると見なされ得る。即ち、クライアント機器は、現在の表現のための初期化セグメントを受信し、次いで、新しい表現のための初期化セグメントを要求することなしに新しい表現に切り替え得る。
【００５４】
サーバ機器は、表現が部分表現であるか否かを示すフラグをＭＰＤデータ構造中で設定し得る。例えば、ＭＰＤデータ構造は表現ごとの切替え識別子を含み得る。サーバ機器は、２つ以上の効率的に切替え可能な表現の切替え識別子を同じ値に設定し得る。このようにして、クライアント機器は、同じ切替え識別子を有する表現の各々に基づいて、互いに効率的に切替え可能である表現のセットを決定し得る。サーバは、表現のセグメントが時間的に整合しているかどうかをＭＰＤ中でさらに示し得る。
【００５５】
各表現がＭＰＤの帯域幅属性の値以上で配信されるとすれば、ＭＰＤはまた、スムーズなプレイアウトを保証するために必要とされる、初めにバッファされるメディアの最小量を示す、minBufferTime属性を含み得る。このようにして、ある量の利用可能な帯域幅を仮定すると、クライアント機器は、再生を開始する前にどのくらいのメディアをバッファすべきかを決定し得る。クライアントは、利用可能な帯域幅の量に基づいて、例えば、初めに、又はネットワーク状態が変化するとき、帯域幅属性に基づいて表現をさらに選択し得る。これらの属性は、様々なネットワーク状態の下でコンテンツの連続復号及びプレゼンテーションを可能にするためのソリューションにおける単純なバッファモデルを与え得る。
【００５６】
各期間において、表現は互いに切替え可能であり得る。ＭＰＤは、bitstreamSwitchingFlag属性を与え得る。このフラグが真であるとき、それは、同じメディアタイプを含んでいる任意の２つの異なる表現からの、期間内の任意の２つの時間連続メディアセグメントのビットストリームレベルでのスプライシングの結果がメディアセグメントフォーマットに準拠することを示す。このフラグが真であるとき、全てのビットストリームは、時間的に整合しており、同じプロファイル及びレベルインジケータを有し、（Ｈ．２６４／ＡＶＣ符号化の例では）多くのシーケンスパラメータが同じであると仮定され得る。
【００５７】
ストリーミング及び再生中に、クライアント機器は表現間で切り替え得る。例えば、クライアント機器は、利用可能な帯域幅が増加又は減少するようにネットワーク状態が変化したと決定し得る。クライアント機器は、より高品質の表現のデータを復号し、レンダリングすることが可能であると仮定すると、帯域幅が増加したとき、クライアント機器はより高品質の表現に切り替え得る。一方、帯域幅が減少したとき、クライアント機器はより少ない帯域幅を消費する、より低品質の表現に切り替え得る。概して、進行中のメディアプレゼンテーション中に更新された情報に基づいて、クライアント機器が表現を切り替え得る。新しい表現への切替えは、前の表現が停止された時点（例えば、時間位置）から表現内の特定の位置を検索し始めること、又は検索しようとすることと同様のプロシージャを含み得る。
【００５８】
新しい表現への切替えが適切であると決定した後、クライアント機器は、ランダムアクセスポイントにおいて開始する新しい表現をストリーミングし始め得る。即ち、クライアント機器は、現在のプレゼンテーション時間よりも後であるが、それに近い所望のプレゼンテーション時間において、新しい表現中のランダムアクセスポイントをシークし得る。ランダムアクセスポイントまでの前の表現からのデータを提示し、次いで、ランダムアクセスポイント以降の新しい表現からのデータを提示することによって、クライアント機器はシームレスな切替えを達成し得る。本開示の技術によれば、クライアント機器は、信号伝達された遅延時間を使用して、新しい表現のデータをストリーミングし始める、新しい表現のランダムアクセスポイントを決定し得る。サーバ機器は、メディアコンテンツのためのＭＰＤデータ構造中で遅延時間を信号伝達し得る。幾つかの例では、発信源機器は、異なる表現にまたがってランダムアクセスポイントを整合させ得、それにより、表現中のランダムアクセスポイントの位置を特定する際に利点を与え得る。
【００５９】
場合によっては、２つの切替え可能な表現が時間整合されていないことがある。例えば、２つの表現中のランダムアクセスポイントが、異なる時間位置において生じ得る。そのような場合、サーバは、２つの表現が整合されていないことを示すために、フラグを設定するか又は他の情報を与え得る。そのような場合、ある表現から他の表現への切替えは困難であり得る。例えば、現在の表現中のフラグメントの終了と、切替え先の（switched-to）表現の新しいフラグメント中のランダムアクセスポイントにおいて開始するフレームとは、表示時間が重複し得る。本開示はまた、２つの整合されていない表現間でシームレスに切り替えるための技術を与える。特に、クライアント機器及び／又はサーバ機器は、ランダムアクセスポイントにおいて新しい表現に切り替える前にクライアント機器に現在の表現からデータを検索し続けさせるために追加の遅延を導入し得る。この遅延は、現在の表現のＧＯＰ構造並びにＧＯＰ中のピクチャの位置に依存し得る。
【００６０】
本開示の技術によれば、サーバ機器は、１つの表現中の非ランダムアクセスポイントピクチャの時間位置と、別の表現中のランダムアクセスポイントピクチャの時間位置との間の差を表す重なり遅延値を信号伝達し得る。サーバ機器は、重なり遅延値を表現のためのＭＰＤ中で信号伝達し得る。幾つかの例では、サーバ機器は、全期間にわたって、又はさらには全サービスにわたって、各表現の最大重なり遅延値を信号伝達し得る。幾つかの例では、サーバ機器は、重なり遅延と、整合されているフラグメントについて上記で説明した遅延値との和として最大遅延値を信号伝達し得る。従って、サーバ機器は、２つ以上の切替え可能な表現のための最大復号遅延と、最大ピクチャ並べ替え遅延と、最大重なり遅延との和を含み得る単一の遅延値を信号伝達し得る。
【００６１】
サーバ機器は、表現のための最小遅延値をさらに信号伝達し得る。表現がそれの帯域幅属性の値以上で配信されると仮定すると、最小遅延をカバーするために十分なデータがバッファされる場合、クライアント機器は表現のスムーズなプレイアウトが保証され得る。サーバ機器は、シームレスな切替えの場合をカバーするために最小バッファ時間値の計算を変更するように構成され得る。各表現がそれの帯域幅属性の値以上で配信される場合、最小バッファ時間値（minBufferTime）は、スムーズなプレイアウトとシームレスな切替えとを保証するために必要とされる、初めにバッファされるメディアの最小量を与え得る。このようにして、最小バッファ時間値は、様々なネットワーク状態の下でコンテンツの連続復号及びプレゼンテーションを可能にするためのソリューションにおける単純なバッファモデルに対応し得る。
【００６２】
概して、クライアント機器のユーザは、再生中にメディアプレゼンテーションを休止又は停止し得る。ユーザがプレゼンテーションを休止又は停止すると、ユーザが再生を再開するまで、クライアント機器はメディアセグメント又はそれの一部分を要求するのを止め得る。再開するために、クライアント機器は、最後の要求されたフラグメントの直後のフラグメントで開始するメディアセグメントを要求し得る。任意の特定の表現のためのＭＰＤは、表現のためのTrickMode要素を与え得、その場合、表現は、トリックモードとともに使用することを明示的に可能にされていると仮定され得る。トリックモードは、概して、早送りモード及び巻戻しモード、又は「通常の」再生に対して再生が変更された他のそのようなモードを含む。ＭＰＤは、alternatePlayoutRate属性を与え得、その場合、クライアント機器は、通常のプレイアウトレートと同じデコーダプロファイル及びレベルで、alternatePlayoutRateに対応する速度で表現を再生し得る。クライアント機器はまた、トリックモード挙動をサポートするために複数の表現を使用し得る。
【００６３】
図１は、オーディオ／ビデオ（Ａ／Ｖ）発信源機器２０がオーディオ及びビデオデータをＡ／Ｖ宛先機器４０にトランスポートする例示的なシステム１０を示すブロック図である。図１のシステム１０は、ビデオ通信会議システム、サーバ／クライアントシステム、放送事業者／受信機システム、又はＡ／Ｖ発信源機器２０などの発信源機器からＡ／Ｖ宛先機器４０などの宛先機器にビデオデータが送られる任意の他のシステムに対応し得る。幾つかの例では、Ａ／Ｖ発信源機器２０及びＡ／Ｖ宛先機器４０は双方向情報交換を実行し得る。即ち、Ａ／Ｖ発信源機器２０及びＡ／Ｖ宛先機器４０は、オーディオ及びビデオデータの符号化と復号（及び、送信と受信）の両方が可能であり得る。幾つかの例では、オーディオエンコーダ２６は、ボコーダとも呼ばれるボイスエンコーダを備え得る。
【００６４】
Ａ／Ｖ発信源機器２０は、図１の例では、オーディオ発信源２２とビデオ発信源２４とを備える。オーディオ発信源２２は、例えば、オーディオエンコーダ２６によって符号化されるべき、キャプチャされたオーディオデータを表す電気信号を生成するマイクロフォンを備え得る。代替的に、オーディオ発信源２２は、前に記録されたオーディオデータを記憶する記憶媒体、コンピュータシンセサイザなどのオーディオデータ生成器、又はオーディオデータの任意の他のソースを備え得る。ビデオ発信源２４は、ビデオエンコーダ２８によって符号化されるべきビデオデータを生成するビデオカメラ、前に記録されたビデオデータで符号化された記憶媒体、ビデオデータ生成ユニット、又はビデオデータの任意の他のソースを備え得る。
【００６５】
概して、発信源機器２０は符号化ビデオコンテンツのサーバとして働き得る。ビデオエンコーダ２８は、同じビデオコンテンツを異なる方法で、例えば、異なる符号化規格、及び／又は異なるビットレート、フレームレート、又はバージョン（例えば、２次元又は３次元）での符号化を使用して符号化し得る。従って、同じビデオコンテンツは、多種多様な表現において利用可能であり得る。発信源機器２０は、ビデオコンテンツの異なる表現の利用可能性を広告し得る。宛先機器４０は、例えば、表現の特性及び宛先機器４０の復号及びレンダリング能力、並びに現在のネットワーク状態、例えば、利用可能な帯域幅に基づいて、表現のうちの１つを選択することが可能であり得る。
【００６６】
発信源機器２０は、例えば、ＨＴＴＰバージョン１．１に従って、概してサーバとして働き得る。従って、発信源機器２０は、ストリーミングネットワークプロトコルとＤＡＳＨ規格などのネットワークベースのストリーミング規格とに従って、表現のためのデータを宛先機器４０に与え得る。場合によっては、以下でより詳細に説明するように、表現は切替え可能であり得る。即ち、宛先機器４０は、１つの表現のデータを検索し始め、次いで、途中で異なる表現に切り替え得る。本開示の技術によれば、宛先機器４０は、２つの表現を並列に復号する必要なしに、及び再生におけるギャップに遭遇することなしに、２つの表現間でシームレスに切り替え得る。
【００６７】
オーディオ発信源２２及びビデオ発信源２４は、未加工オーディオ及びビデオデータをキャプチャし得る。未加工オーディオ及びビデオデータは、アナログ又はデジタルデータを備え得る。アナログデータは、オーディオエンコーダ２６及び／又はビデオエンコーダ２８によって符号化される前にデジタル化され得る。オーディオ発信源２２は、通話参加者が話している間、通話参加者からオーディオデータを取得し得、同時に、ビデオ発信源２４は、通話参加者のビデオデータを取得し得る。他の例では、オーディオ発信源２２は、記憶されたオーディオデータを備えるコンピュータ可読記憶媒体を備え得、ビデオ発信源２４は、記憶されたビデオデータを備えるコンピュータ可読記憶媒体を備え得る。このようにして、本開示で説明する技術は、ライブ、ストリーミング、リアルタイムオーディオ及びビデオデータ、又はアーカイブされた、あらかじめ記録されたオーディオ及びビデオデータに適用され得る。
【００６８】
ビデオフレームに対応するオーディオフレームは、概して、ビデオフレーム内に含まれている、ビデオ発信源２４によって取得されたビデオデータと同時にオーディオ発信源２２によって録音されたオーディオデータを含んでいるオーディオフレームである。例えば、通話参加者が概して話すことによってオーディオデータを生成する間、オーディオ発信源２２はオーディオデータを取得し、同時に、即ちオーディオ発信源２２がオーディオデータを取得している間、ビデオ発信源２４は通話参加者のビデオデータを取得する。従って、オーディオフレームは、１つ以上の特定のビデオフレームに時間的に対応し得る。従って、ビデオフレームに対応するオーディオフレームは、概して、オーディオデータとビデオデータとが同時に取得される状況、及びオーディオフレームとビデオフレームとが、それぞれ、同時に取得されたオーディオデータとビデオデータとを備える状況に対応する。
【００６９】
幾つかの例では、オーディオエンコーダ２６は、符号化オーディオフレームのオーディオデータが記録された時間を表す、各符号化オーディオフレームにおけるタイムスタンプを符号化し得、同様に、ビデオエンコーダ２８は、符号化ビデオフレームのビデオデータが記録された時間を表す、各符号化ビデオフレームにおけるタイムスタンプを符号化し得る。そのような例では、ビデオフレームに対応するオーディオフレームは、タイムスタンプを備えるオーディオフレームと同じタイムスタンプを備えるビデオフレームとを備え得る。Ａ／Ｖ発信源機器２０は、オーディオエンコーダ２６及び／又はビデオエンコーダ２８がそこからタイムスタンプを生成し得るか、若しくはオーディオ発信源２２及びビデオ発信源２４がオーディオ及びビデオデータをそれぞれタイムスタンプに関連付けるために使用し得る、内部クロックを含み得る。
【００７０】
幾つかの例では、オーディオ発信源２２は、オーディオデータが記録された時間に対応するデータをオーディオエンコーダ２６に送り得、ビデオ発信源２４は、ビデオデータが記録された時間に対応するデータをビデオエンコーダ２８に送り得る。幾つかの例では、オーディオエンコーダ２６は、必ずしもオーディオデータが記録された絶対時刻を示すことなしに、符号化オーディオデータの相対的時間順序を示すために、符号化オーディオデータ中のシーケンス識別子を符号化し得、同様に、ビデオエンコーダ２８も、符号化ビデオデータの相対的時間順序を示すためにシーケンス識別子を使用し得る。同様に、幾つかの例では、シーケンス識別子は、タイムスタンプにマッピングされるか、又は場合によってはタイムスタンプと相関し得る。
【００７１】
本開示の技術は、概して、符号化マルチメディア（例えば、オーディオ及びビデオ）データの記憶及び転送と、転送されたマルチメディアデータの受信並びに後続の解釈及び復号とを対象とする。図１の例に示すように、ビデオ発信源２４はシーンの複数のビューをビデオエンコーダ２８に与え得る。
【００７２】
各個のデータストリームは（オーディオかビデオかにかかわらず）エレメンタリストリームと呼ばれる。エレメンタリストリームは、デジタル的に符号化された（場合によっては圧縮された）プログラムの単一の構成要素である。例えば、プログラムの符号化ビデオ又はオーディオ部分はエレメンタリストリームであり得る。エレメンタリストリームは、ビデオファイル内にカプセル化される前に、パケット化エレメンタリストリーム（ＰＥＳ：packetized elementary stream）に変換され得る。同じプログラム内では、１つのエレメンタリストリームに属するＰＥＳパケットを他のものから区別するためにストリームＩＤが使用される。エレメンタリストリームの基本データ単位はパケット化エレメンタリストリーム（ＰＥＳ）パケットである。従って、ＭＶＣビデオデータの各ビューはそれぞれのエレメンタリストリームに対応する。同様に、オーディオデータは１つ以上のそれぞれのエレメンタリストリームに対応する。
【００７３】
図１の例では、カプセル化ユニット３０は、ビデオエンコーダ２８からビデオデータを備えるエレメンタリストリームを受信し、オーディオエンコーダ２６からオーディオデータを備えるエレメンタリストリームを受信する。幾つかの例では、ビデオエンコーダ２８及びオーディオエンコーダ２６はそれぞれ、符号化データからＰＥＳパケットを形成するためのパケッタイザを含み得る。他の例では、ビデオエンコーダ２８及びオーディオエンコーダ２６はそれぞれ、符号化データからＰＥＳパケットを形成するためのパケッタイザとインターフェースし得る。さらに他の例では、カプセル化ユニット３０は、符号化オーディオデータと符号化ビデオデータとからＰＥＳパケットを形成するためのパケッタイザを含み得る。
【００７４】
本開示で使用する表現は、オーディオデータとビデオデータの組合せ、例えば、Ａ／Ｖ発信源機器２０によって配信されたオーディオエレメンタリストリームとビデオエレメンタリストリームとを含み得る。例えば、ビデオデータが、異なるフレームレート、異なるビットレート、又は異なる解像度で符号化されると、マルチメディアコンテンツは１つ以上の表現を有し得る。同様に、マルチメディアコンテンツのためのオーディオデータは、様々な言語、例えば、英語、フランス語、中国語に対応し得る。表現は、オーディオエレメンタリストリーム及び（例えば、３次元ビデオデータをサポートするために）１つ以上のビデオエレメンタリストリームの選択に対応し得る。
【００７５】
カプセル化ユニット３０は、オーディオエンコーダ２６とビデオエンコーダ２８とからプログラムのエレメンタリストリームのＰＥＳパケットを受信し、ＰＥＳパケットから対応するネットワークアブストラクションレイヤ（ＮＡＬ）ユニットを形成する。Ｈ．２６４／ＡＶＣ（Advanced Video Coding）の例では、符号化ビデオセグメントは、ビデオテレフォニー、ストレージ、ブロードキャスト、又はストリーミングなどのアプリケーションに対処する「ネットワークフレンドリーな」ビデオ表現を与えるＮＡＬユニットに編成される。ＮＡＬユニットは、Video Coding Layer（ＶＣＬ）ＮＡＬユニットと非ＶＣＬ  ＮＡＬユニットとにカテゴリー分類され得る。ＶＣＬユニットは、コア圧縮エンジンによって生成されたデータに対応し得、ブロック、マクロブロック、及び／又はスライスレベルのデータを含み得る。他のＮＡＬユニットは非ＶＣＬ  ＮＡＬユニットであり得る。幾つかの例では、通常は１次符号化ピクチャとして提示される、１つの時間インスタンス中の符号化ピクチャは、１つ以上のＮＡＬユニットを含み得るアクセスユニット中に含まれ得る。
【００７６】
非ＶＣＬ  ＮＡＬユニットは、特に、パラメータセットＮＡＬユニットとＳＥＩ  ＮＡＬユニットとを含み得る。パラメータセットは、（シーケンスパラメータセット（ＳＰＳ：sequence parameter set）中の）シーケンスレベルヘッダ情報と（ピクチャパラメータセット（ＰＰＳ：picture parameter set）中の）まれに変化するピクチャレベルヘッダ情報とを含んでいることがある。パラメータセット（例えば、ＰＰＳ及びＳＰＳ）がある場合、まれに変化する情報をシーケンスごと又はピクチャごとに繰り返す必要はなく、従って符号化効率が改善され得る。さらに、パラメータセットの使用は重要なヘッダ情報の帯域外送信を可能にし得、誤り耐性のための冗長送信の必要を回避する。帯域外送信の例では、ＳＥＩ  ＮＡＬユニットなど、他のＮＡＬユニットとは異なるチャネル上でパラメータセットＮＡＬユニットが送信され得る。
【００７７】
補足エンハンスメント情報（ＳＥＩ）は、ＶＣＬ  ＮＡＬユニットからの符号化ピクチャサンプルを復号するためには必要でないが、復号、表示、誤り耐性、及び他の目的に関係するプロセスを支援し得る情報を含んでいることがある。ＳＥＩメッセージは、非ＶＣＬ  ＮＡＬユニット中に含まれていることがある。ＳＥＩメッセージは、一部の標準規格の規範的部分であり、従って、常に標準準拠デコーダ実装のために必須であるとは限らない。ＳＥＩメッセージは、シーケンスレベルのＳＥＩメッセージ又はピクチャレベルのＳＥＩメッセージであり得る。幾つかのシーケンスレベル情報は、ＳＶＣの例ではスケーラビリティ情報ＳＥＩメッセージ、ＭＶＣではビュースケーラビリティ情報ＳＥＩメッセージなど、ＳＥＩメッセージ中に含まれていることがある。これらの例示的なＳＥＩメッセージは、例えば、動作ポイントの抽出及びそれらの動作ポイントの特性に関する情報を伝達し得る。
【００７８】
本開示の技術によれば、カプセル化ユニット３０は、２つ以上の表現が互いに効率的に切替え可能であることを信号伝達し得る。カプセル化ユニット３０は、例えば、表現の符号化サンプルを復号及び／又はレンダリングするために、２つ以上の表現の初期化セグメントが互換的に使用され得るかどうかを決定し得る。カプセル化ユニット３０は、表現が互いに効率的に切替え可能であるかどうかを示すために使用されるデータを生成し得る。従って、宛先機器４０は、例えば、ストリーミング中にある表現から別の表現に切り替えるためにデータを要求し得る。
【００７９】
カプセル化ユニット３０はまた、２つの効率的に切替え可能な表現間で切り替えるときの最大遅延を表す遅延値を計算し得る。即ち、遅延値は、概して、（一定の帯域幅利用可能性を仮定すると）２つの表現間で切り替えるときに予想され得る遅延量を表し得る。従って、カプセル化ユニット３０は、表現が時間的に整合しているとき、最大復号遅延と最大ピクチャ並べ替え遅延との和として遅延値を計算し得る。表現が時間的に整合していないとき、例えば、表現内の異なる時間位置においてランダムアクセスポイントが生じるとき、カプセル化ユニット３０はさらに重なり遅延を計算し得、計算された遅延値中に重なり遅延を含め得る。発信源機器２０は、例えば、宛先機器４０からの遅延値の要求に応答して遅延値を宛先機器４０に与え得る。
【００８０】
宛先機器４０は、２つの表現間のシームレスな切替えを実行するために、遅延値に基づいて表現の十分な量のデータを検索してバッファするように構成され得る。従って、宛先機器４０は、表示ギャップを被ることなしに、宛先機器４０が、異なる表現のデータを要求し始め、新しい表現のデータを復号し始めることが可能である十分な量のデータをバッファし得る。即ち、新しい表現からデータを検索しながら、宛先機器４０は、前の表現からのデータを復号し、レンダリングし得る。さらに、宛先機器４０は、２つの表現の同時復号が必要でないように構成され得る。即ち、新しい表現のランダムアクセスポイントにアクセスした後、宛先機器４０は、ビデオ再生において同じ時間位置に対応する２つ以上の表現からのデータを復号する必要はない。ビデオデコーダ４８が、同じ時間位置に対して複数のサンプルを復号する必要がないという点で、これはバッテリー性能を改善し得る。
【００８１】
そのペイロード中にビデオデータを含むＮＡＬユニットは、様々な精度レベル（granularity levels）のビデオデータを備え得る。例えば、ＮＡＬユニットは、ビデオデータのブロック、マクロブロック、複数のマクロブロック、ビデオデータのスライス、又はビデオデータのフレーム全体を備え得る。カプセル化ユニット３０は、ビデオエンコーダ２８から符号化ビデオデータをエレメンタリストリームのＰＥＳパケットの形態で受信し得る。カプセル化ユニット３０は、各エレメンタリストリームを対応するプログラムに関連付け得る。
【００８２】
カプセル化ユニット３０はまた、複数のＮＡＬユニットからアクセスユニットをアセンブルし得る。概して、アクセスユニットは、ビデオデータのフレームを表すための１つ以上のＮＡＬユニット、並びにそのフレームに対応するオーディオデータが利用可能なとき、そのようなオーディオデータを備え得る。アクセスユニットは、概して、１つの出力時間インスタンスにわたる全てのＮＡＬユニット、例えば１つの時間インスタンスにわたる全てのオーディオ及びビデオデータを含む。例えば、各ビューが毎秒２０フレーム（ｆｐｓ）のフレームレートを有する場合、各時間インスタンスは０．０５秒の時間間隔に対応し得る。この時間間隔中に、同じアクセスユニット（同じ時間インスタンス）の全てのビューの固有のフレームは同時にレンダリングされ得る。Ｈ．２６４／ＡＶＣに対応する例では、アクセスユニットは、１次符号化ピクチャとして提示され得る、１つの時間インスタンス中の符号化ピクチャを備え得る。従って、アクセスユニットは、共通の時間インスタンスの全てのオーディオ及びビデオフレーム、例えば、時間Ｘに対応する全てのビューを備え得る。本開示はまた、特定のビューの符号化ピクチャを「ビュー構成要素」と呼ぶ。即ち、ビュー構成要素は、特定の時間における特定のビューの符号化ピクチャ（又はフレーム）を備え得る。従って、アクセスユニットは、共通の時間インスタンスの全てのビュー構成要素を備えるものと定義され得る。アクセスユニットの復号順序は、必ずしも出力又は表示順序と同じである必要はない。
【００８３】
多くのビデオ符号化規格の場合と同様に、Ｈ．２６４／ＡＶＣは、誤りのないビットストリームのシンタックスと、セマンティクスと、復号プロセスとを定義し、そのいずれかは特定のプロファイル又はレベルに準拠する。Ｈ．２６４／ＡＶＣはエンコーダを指定しないが、エンコーダは、生成されたビットストリームがデコーダの規格に準拠することを保証することを課される。ビデオ符号化規格のコンテキストにおいて、「プロファイル」は、アルゴリズム、機能、又はそれらに適用するツール及び制約のサブセットに対応する。例えば、Ｈ．２６４規格によって定義される「プロファイル」は、Ｈ．２６４規格によって指定されたビットストリームシンタックス全体のサブセットである。「レベル」は、例えば、ピクチャの解像度、ビットレート、及びマクロブロック（ＭＢ）処理レートに関係するデコーダメモリ及び計算など、デコーダリソース消費の制限に対応する。プロファイルはprofile_idc（プロファイルインジケータ）値を用いて信号伝達され得、レベルはlevel_idc（レベルインジケータ）値を用いて信号伝達され得る。
【００８４】
Ｈ．２６４規格は、例えば、与えられたプロファイルのシンタックスによって課される限界内で、復号されたピクチャの指定されたサイズなど、ビットストリーム中のシンタックス要素がとる値に応じて、エンコーダ及びデコーダのパフォーマンスの大きい変動を必要とする可能性が依然としてあることを認識している。Ｈ．２６４規格は、多くのアプリケーションにおいて、特定のプロファイル内でシンタックスの全ての仮定的使用を処理することが可能なデコーダを実装することが実際的でもなく、経済的でもないことをさらに認識している。従って、Ｈ．２６４規格は、ビットストリーム中のシンタックス要素の値に課せられた制約の指定されたセットとして「レベル」を定義している。これらの制約は、値に関する単純な限界であり得る。代替的に、これらの制約は、値の演算の組合せ（例えば、ピクチャの幅×ピクチャ高さ×毎秒復号されるピクチャの数）に関する制約の形態をとり得る。Ｈ．２６４規格は、個別の実装形態が、サポートされるプロファイルごとに異なるレベルをサポートし得ることをさらに規定している。
【００８５】
プロファイルに準拠するデコーダは、通常、プロファイル中で定義された全ての機能をサポートする。例えば、符号化機能として、Ｂピクチャ符号化は、Ｈ．２６４／ＡＶＣのベースラインプロファイルではサポートされないが、Ｈ．２６４／ＡＶＣの他のプロファイルではサポートされる。レベルに準拠するデコーダは、レベルにおいて定義された制限を超えてリソースを必要としない任意のビットストリームを復号することが可能である必要がある。プロファイル及びレベルの定義は、説明可能性のために役立ち得る。例えば、ビデオ送信中に、プロファイル定義とレベル定義のペアが全送信セッションについてネゴシエートされ、同意され得る。より詳細には、Ｈ．２６４／ＡＶＣでは、レベルは、例えば、処理する必要があるマクロブロックの数に関する制限と、復号されたピクチャバッファ（ＤＰＢ）サイズと、符号化ピクチャバッファ（ＣＰＢ）サイズと、垂直動きベクトル範囲と、２つの連続するＭＢごとの動きベクトルの最大数と、Ｂブロックが８×８画素未満のサブマクロブロックパーティションを有することができるかどうかとを定義し得る。このようにして、デコーダは、デコーダがビットストリームを適切に復号することが可能であるかどうかを決定し得る。
【００８６】
パラメータセットは、概して、シーケンスパラメータセット（ＳＰＳ）中のシーケンスレイヤヘッダ情報とピクチャパラメータセット（ＰＰＳ）中のまれに変化するピクチャレイヤヘッダ情報とを含んでいる。パラメータセットがある場合、このまれに変化する情報をシーケンスごと又はピクチャごとに繰り返す必要はなく、従って符号化効率が改善され得る。さらに、パラメータセットの使用はヘッダ情報の帯域外送信を可能にし、誤り耐性を達成するための冗長送信の必要を回避し得る。帯域外送信では、他のＮＡＬユニットとは異なるチャネル上でパラメータセットＮＡＬユニットが送信される。
【００８７】
ＳＶＣ及びＭＶＣの例は、スケーラブルビデオ又はマルチビュービデオのためのシーケンスパラメータセット（ＳＰＳ）拡張を与える。ＳＰＳ拡張情報は、他のＮＡＬユニットとは異なるＮＡＬユニットタイプを有し得る、サブＳＰＳ  ＮＡＬユニット中に含まれていることがある。サポートされる動作点についてのプロファイル及びレベル情報は、ＳＰＳ拡張情報を含むＮＡＬユニット中に含まれ得る。
【００８８】
メディア表現は、異なる代替表現（例えば、異なる品質をもつビデオサービス）の記述を含んでいることがあるメディアプレゼンテーション記述（ＭＰＤ）を含み得、記述は、例えば、コーデック情報、プロファイル値、及びレベル値を含み得る。様々なプレゼンテーションのムービーフラグメントにアクセスする方法を決定するために、宛先機器４０はメディア表現のＭＰＤを検索し得る。ムービーフラグメントは、ビデオファイルのムービーフラグメントボックス（ｍｏｏｆボックス）中に配置され得る。
【００８９】
ＩＴＵ−ＴＨ．２６１、Ｈ．２６２、Ｈ．２６３、ＭＰＥＧ−１、ＭＰＥＧ−２及びＨ．２６４／ＭＰＥＧ−４  ｐａｒｔ１０などのビデオ圧縮規格は、時間冗長性を低減するために動き補償時間予測を利用する。エンコーダは、動きベクトルに従って現在の符号化ピクチャを予測するために、幾つかの前の（本明細書ではフレームとも呼ぶ）符号化ピクチャからの動き補償予測を使用する。典型的なビデオ符号化には３つの主要なピクチャタイプがある。それらは、イントラ符号化ピクチャ（「Ｉピクチャ」又は「Ｉフレーム」）と、予測ピクチャ（「Ｐピクチャ」又は「Ｐフレーム」）と、双方向予測ピクチャ（「Ｂピクチャ」又は「Ｂフレーム」）とである。Ｐピクチャは、時間順序で現在のピクチャの前の参照ピクチャのみを使用する。Ｂピクチャでは、Ｂピクチャの各ブロックは、１つ又は２つの参照ピクチャから予測され得る。これらの参照ピクチャは、時間順序で現在のピクチャの前又は後に位置し得る。
【００９０】
Ｈ．２６４符号化規格によれば、一例として、Ｂピクチャは、前に符号化された参照ピクチャの２つのリスト、即ち、リスト０とリスト１とを使用する。これらの２つのリストは、それぞれ、過去及び／又は将来の符号化ピクチャを時間順序で含むことができる。Ｂピクチャ中のブロックは、幾つかの方法、即ちリスト０参照ピクチャからの動き補償予測、リスト１参照ピクチャからの動き補償予測、又はリスト０参照ピクチャとリスト１参照ピクチャの両方の組合せからの動き補償予測のうちの１つで予測され得る。リスト０参照ピクチャとリスト１参照ピクチャの両方の組合せを得るために、２つの動き補償基準エリアが、それぞれリスト０参照ピクチャ及びリスト１参照ピクチャから取得される。それらの組合せは現在のブロックを予測するために使用され得る。
【００９１】
ＩＴＵ−Ｔ  Ｈ．２６４規格は、ルーマ成分については１６×１６、８×８、又は４×４、及びクロマ成分については８×８など、様々なブロックサイズのイントラ予測をサポートし、並びにルーマ成分については１６×１６、１６×８、８×１６、８×８、８×４、４×８及び４×４、及びクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。本開示では、「Ｎ×（x）Ｎ」と「Ｎ×（by）Ｎ」は、垂直寸法及び水平寸法に関するブロックの画素寸法、例えば、１６×（x）１６画素又は１６×（by）１６画素を指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６画素を有し（ｙ＝１６）、水平方向に１６画素を有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮ画素を有し、水平方向にＮ画素を有し、Ｎは、非負整数値を表す。ブロック中の画素は行と列に構成され得る。ブロックは、水平寸法と垂直寸法とにおいて異なる数の画素を有し得る。即ち、ブロックはＮ×Ｍ画素を含み得、Ｎは必ずしもＭに等しいとは限らない。
【００９２】
１６×１６よりも小さいブロックサイズは１６×１６マクロブロックのパーティションと呼ばれることがある。ビデオブロックは、画素領域中の画素データのブロックを備え得、又は、例えば、符号化ビデオブロックと予測ビデオブロックとの画素差分を表す残差ビデオブロックデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、又は概念的に同様の変換などの変換の適用後の、変換領域中の変換係数のブロックを備え得る。場合によっては、ビデオブロックは、変換領域中の量子化変換係数のブロックを備え得る。
【００９３】
ビデオブロックは、小さいほどより良い解像度が得られ、高い詳細レベルを含むビデオフレームの位置決めに使用され得る。一般に、マクロブロック、及びサブブロックと呼ばれることがある様々なパーティションは、ビデオブロックと見なされ得る。さらに、スライスは、マクロブロック及び／又はサブブロックなど、複数のビデオブロックであると見なされ得る。各スライスはビデオフレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が復号可能なユニットであり得るか、又はフレームの他の部分が復号可能なユニットとして定義され得る。「符号化ユニット」又は「符号化ユニット」という用語は、フレーム全体、フレームのスライス、シーケンスとも呼ばれるピクチャグループ（ＧＯＰ）など、ビデオフレームの単独で復号可能な任意のユニット、又は適用可能な符号化技術に従って定義される別の単独で復号可能なユニットを指すことがある。
【００９４】
マクロブロックという用語は、１６×１６画素を備える２次元画素アレイに従ってピクチャ及び／又はビデオデータを符号化するためのデータ構造を指す。各画素はクロミナンス成分と輝度成分とを備える。従って、マクロブロックは、各々が８×８画素の２次元アレイを備える４つの輝度ブロックと、各々が１６×１６画素の２次元アレイを備える２つのクロミナンスブロックと、符号化ブロックパターン（ＣＢＰ）、符号化モード（例えば、イントラ（Ｉ）又はインター（Ｐ又はＢ）符号化モード）、イントラ符号化ブロックのパーティションのパーティションサイズ（例えば、１６×１６、１６×８、８×１６、８×８、８×４、４×８、又は４×４）、又はインター符号化マクロブロックのための１つ以上の動きベクトルなど、シンタックス情報を備えるヘッダとを定義し得る。
【００９５】
ビデオエンコーダ２８、ビデオデコーダ４８、オーディオエンコーダ２６、オーディオデコーダ４６、カプセル化ユニット３０、及びカプセル化解除ユニット３８は、それぞれ、適用可能なとき、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなどの様々な好適な処理回路のいずれか、又はそれらの任意の組合せとして実装され得る。ビデオエンコーダ２８及びビデオデコーダ４８の各々は１つ以上のエンコーダ又はデコーダ中に含められ得、そのいずれかは複合ビデオエンコーダ／デコーダ（ＣＯＤＥＣ）の一部として統合され得る。同様に、オーディオエンコーダ２６及びオーディオデコーダ４６の各々は１つ以上のエンコーダ又はデコーダ中に含められ得、そのいずれかは複合ＣＯＤＥＣの一部として統合され得る。ビデオエンコーダ２８、ビデオデコーダ４８、オーディオエンコーダ２６、オーディオデコーダ４６、カプセル化ユニット３０、及び／又はカプセル化解除ユニット３８を含む装置は、集積回路、マイクロプロセッサ、及び／又はセルラー電話などのワイヤレス通信機器を備え得る。
【００９６】
カプセル化ユニット３０が、受信したデータに基づいてＮＡＬユニット及び／又はアクセスユニットをビデオファイルに組み立てた後、カプセル化ユニット３０はビデオファイルを出力のために出力インターフェース３２に受け渡す。幾つかの例では、カプセル化ユニット３０は、ビデオファイルをローカルに記憶するか、又はビデオファイルを直接宛先機器４０に送るのではなく、出力インターフェース３２を介してビデオファイルをリモートサーバに送り得る。出力インターフェース３２は、例えば、送信機、トランシーバ、例えば、オプティカルドライブ、磁気メディアドライブ（例えば、フロッピー（登録商標）ドライブ）など、コンピュータ可読媒体にデータを書き込むためのデバイス、ユニバーサルシリアルバス（ＵＳＢ）ポート、ネットワークインターフェース、又は他の出力インターフェースを備え得る。出力インターフェース３２は、ビデオファイルを、例えば、送信信号、磁気メディア、光メディア、メモリ、フラッシュドライブ、又は他のコンピュータ可読媒体など、コンピュータ可読媒体３４に出力する。
【００９７】
最終的に、入力インターフェース３６はコンピュータ可読媒体３４からデータを検索する。入力インターフェース３６は、例えば、オプティカルドライブ、磁気媒体ドライブ、ＵＳＢポート、受信機、トランシーバ、又は他のコンピュータ可読媒体インターフェースを備え得る。入力インターフェース３６は、ＮＡＬユニット又はアクセスユニットをカプセル化解除ユニット３８に与え得る。カプセル化解除ユニット３８は、ビデオファイルの要素を構成ＰＥＳストリームにカプセル化解除し、符号化データを検索すためにＰＥＳストリームをパケット化解除し、例えば、ストリームのＰＥＳパケットヘッダによって示されるように、符号化データがオーディオ又はビデオストリームの一部であるかどうかに応じて、符号化データをオーディオデコーダ４６又はビデオデコーダ４８に送り得る。オーディオデコーダ４６は、符号化オーディオデータを復号し、復号されたオーディオデータをオーディオ出力４２に送り、ビデオデコーダ４８は、符号化ビデオデータを復号し、ストリームの複数のビューを含み得る復号されたビデオデータをビデオ出力４４に送る。
【００９８】
図２は、例示的なカプセル化ユニット３０の構成要素を示すブロック図である。図２の例では、カプセル化ユニット３０は、ビデオ入力インターフェース８０と、オーディオ入力インターフェース８２と、ビデオファイル作成ユニット６０と、ビデオファイル出力インターフェース８４とを含む。ビデオファイル作成ユニット６０は、この例では、ＮＡＬユニットコンストラクタ６２と、切替え情報ユニット６４と、初期化セグメントユニット６６とを含む。
【００９９】
ビデオ入力インターフェース８０及びオーディオ入力インターフェース８２は、それぞれ符号化ビデオデータ及び符号化オーディオデータを受信する。ビデオ入力インターフェース８０及びオーディオ入力インターフェース８２は、データが符号化されると、符号化ビデオデータ及び符号化オーディオデータを受信するか、又は符号化ビデオデータ及び符号化オーディオデータをコンピュータ可読媒体から検索し得る。符号化ビデオデータ及び符号化オーディオデータを受信すると、ビデオ入力インターフェース８０及びオーディオ入力インターフェース８２は、ビデオファイルに集約するために符号化ビデオデータ及び符号化オーディオデータをビデオファイル作成ユニット６０に受け渡す。
【０１００】
ビデオファイル作成ユニット６０は、制御ユニットによる機能及び手順を実行するように構成されたハードウェア、ソフトウェア、及び／又はファームウェアを含む制御ユニットに対応し得る。制御ユニットは、概して、カプセル化ユニット３０に起因する機能をさらに実行し得る。ビデオファイル作成ユニット６０がソフトウェア及び／又はファームウェアで実施される例では、カプセル化ユニット３０は、ビデオファイル作成ユニット６０のための命令を備えるコンピュータ可読媒体と、命令を実行するためのハードウェアベースの処理ユニットとを含み得る。ビデオファイル作成ユニット６０のサブユニット（この例では、ＮＡＬユニットコンストラクタ６２、切替え情報ユニット６４、及び初期化セグメントユニット６６）の各々は、個々のハードウェアユニット及び／又はソフトウェアモジュールとして実装され得、機能的に統合されるか、又は追加のサブユニットにさらに分離され得る。
【０１０１】
ビデオファイル作成ユニット６０は、例えば、（単一の集積回路の複数のコアに対応し得る）１つ以上のマイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、又は任意のそれらの組合せなど、任意の好適な処理ユニット又は処理回路に対応し得る。ビデオファイル作成ユニット６０は、ＮＡＬユニットコンストラクタ６２、切替え情報ユニット６４、及び初期化セグメントユニット６６のいずれか又は全てのための命令を記憶する非一時的コンピュータ可読媒体、並びに命令を実行するためのプロセッサをさらに含み得る。
【０１０２】
概して、ビデオファイル作成ユニット６０は、受信したオーディオ及びビデオデータを含むビデオファイルを作成し得る。ＮＡＬユニットコンストラクタ６２は、符号化ビデオ及びオーディオサンプルを含むＮＡＬユニットを形成し得る。ビデオファイル作成ユニット６０は、符号化ビデオ及びオーディオサンプルを含む表現を組み立てるようにさらに構成され得る。幾つかの例では、ビデオファイル作成ユニット６０は、幾つかの例では、互いに切替え可能であり得る複数の表現を作成し得る。
【０１０３】
切替え情報ユニット６４は、２つ以上の表現の間で切り替えるための情報を生成するように構成され得る。例えば、切替え情報ユニット６４は、最大復号遅延と、最大ピクチャ並べ替え遅延と、（表現が時間的に整合していないとき）最大重なり遅延との和に基づいて遅延値を計算するように構成され得る。クライアント機器は、遅延値を使用して、ある表現から別の表現にシームレスに切り替えるためにバッファしておくべき表現のデータ量を決定し得る。従って、クライアント機器は、バッファされたピクチャを復号し、ピクチャを並べ替えることに関連する遅延を考慮するために、及びクライアント機器が、新しい表現のデータを検索し、復号し、レンダリングする時間中に、新しい表現のランダムアクセスポイントよりも前のプレゼンテーション時間を有するピクチャが復号され、レンダリングされ得ることを保証するために、十分な量のデータをバッファしておくことがある。
【０１０４】
初期化セグメントユニット６６は、特定の表現にアクセスするための初期化情報を生成し得る。概して、初期化セグメント中の初期化情報はメディアデータを含んでいない。初期化セグメントユニット６６は、表現の各々のための初期化セグメントを生成し得る。しかしながら、場合によっては、複数の表現を初期化するために同じ初期化セグメントが使用され得る。これが当てはまるとき、初期化セグメントユニット６６は、表現が効率的に切替え可能であることを示す情報を生成し得る。即ち、第１の表現と第２の表現とが効率的に切替え可能である場合、クライアント機器は第１の表現の初期化セグメントを検索し、第１の表現のデータを検索して復号し、次いで、第２の表現の初期化セグメントを検索しないで、第１の表現の初期化セグメントに基づいて第２の表現のデータを検索し復号することを開始し得る。
【０１０５】
幾つかの例では、ビデオファイル作成ユニット６０は、メディアプレゼンテーションを記述するメディアプレゼンテーション記述（ＭＰＤ）データ構造を生成し得る。本開示の技術によれば、ビデオファイル作成ユニット６０は、２つ以上の表現が互いに効率的に切替え可能であるかどうかを示す、変更されたＭＰＤデータ構造と、２つの表現間でシームレスに切り替えるための遅延値とを生成し得る。以下の表１に、本開示の技術による例示的なＭＰＤデータ構造を与える。表１は、ビデオファイル作成ユニット６０が期間レベルで情報を信号伝達する例である。他の例では、情報は他のレベルで信号伝達され得る。
【０１０６】
「要素名又は属性名」列は、シンタックスオブジェクトの名前を表す。「タイプ」列は、シンタックスオブジェクトが要素であるか属性であるかを表す。「基数」列は、シンタックスオブジェクトの基数、即ち、表１に対応するデータ構造のインスタンスにおけるシンタックスオブジェクトのインスタンスの数を表す。「随意性（optionality）」列は、シンタックスオブジェクトが随意であるかどうかを表し、この例では、「Ｍ」が必須を示し、「Ｏ」は随意を示し、「ＯＤ」はデフォルト値で随意を示し、「ＣＭ」は条件付きで必須を示す。「説明」列は、対応するシンタックスオブジェクトのセマンティクスを表す。
【０１０７】
この例では、ビデオファイル作成ユニット６０は、表現が切替え可能であるかどうかを示すために、単一のフラグ（seamlessSwitchingFlag）を設定し得る。フラグが真に設定された場合、初期遅延が、ＭＰＤ中で信号伝達されたminBufferTimeに等しいかそれよりも大きいとすれば、クライアント機器は表現がシームレスに切替え可能であると仮定し得る。この例のseamlessSwitchingFlagが真に設定されると、クライアント機器は、さらに、シームレスな切替えを実行するために表現のプレイアウトギャップ及び並列復号が必要とされないと仮定し得る。クライアントは、例えば、図８に関して以下で説明する本開示の技術に従って、シームレスな切替えを実行し得る。
【表１−１】
0005559430.tif 000002
【表１−２】
0005559430.tif 000003
【０１０８】
図３は、符号化ビデオフレーム１００〜１３２のシーケンスを示す概念図である。フレームは、階層予測構造内の位置を示すために異なる陰影をつけられている。例えば、フレーム１００、１１６、及び１３２は、フレーム１００、１１６、１３２が階層予測構造の最上位にあることを表すために黒の陰影をつけられている。フレーム１００、１１６、１３２は、例えば、単一の方向にある他のフレーム（例えば、Ｐフレーム）から予測されるイントラ符号化フレーム又はインター符号化フレームを備え得る。イントラ符号化の場合、フレーム１００、１１６、１３２は同じフレーム内のデータからのみ予測される。インター符号化の場合、フレーム１１６は、例えば、フレーム１１６からフレーム１００への破線矢印で示すように、フレーム１００のデータに対して符号化され得る。フレーム１１６、１３２は、それぞれ、ピクチャグループ（ＧＯＰ）１３４、１３６のキーフレームを形成する。
【０１０９】
フレーム１０８、１２４は、それらが、符号化階層においてフレーム１００、１１６、及び１３２の次であることを示すために暗い陰影をつけられている。フレーム１０８、１２４は、双方向、インターモード予測符号化フレームを備え得る。例えば、フレーム１０８はフレーム１００及び１１６のデータから予測され得、フレーム１２４はフレーム１１６及び１３２から予測され得る。フレーム１０４、１１２、１２０、及び１２８は、それらが、符号化階層においてフレーム１０８及び１２４の次であることを示すために、明るい陰影をつけられている。フレーム１０４、１１２、１２０、及び１２８はまた、双方向、インターモード予測符号化フレームを備え得る。例えば、フレーム１０４はフレーム１００及び１０８から予測され得、フレーム１１２はフレーム１０８及び１１６から予測され得、フレーム１２０はフレーム１１６及び１２４から予測され得、フレーム１２８はフレーム１２４及び１３２から予測され得る。
【０１１０】
最後に、フレーム１０２、１０６、１１０、１１４、１１８、１２２、１２６、及び１３０は、これらのフレームが符号化階層において最下位であることを示すために白い陰影をつけられている。フレーム１０２、１０６、１１０、１１４、１１８、１２２、１２６、及び１３０はまた、双方向、インターモード予測符号化フレームであり得る。フレーム１０２はフレーム１００及び１０４から予測され得、フレーム１０６はフレーム１０４及び１０８から予測され得、フレーム１１０はフレーム１０８及び１１２から予測され得、フレーム１１４はフレーム１１２及び１１６から予測され得、フレーム１１８はフレーム１１６及び１２０から予測され得、フレーム１２２はフレーム１２０及び１２４から予測され得、フレーム１２６はフレーム１２４及び１２８から予測され得、フレーム１３０はフレーム１２８及び１３２から予測され得る。
【０１１１】
フレーム１００〜１３２は表示順序で示されている。即ち、復号に続き、フレーム１００はフレーム１０２の前に表示され、フレーム１０２はフレーム１０４の前に表示され、以下同様である。しかしながら、符号化階層により、フレーム１００〜１３２は異なる順序で復号され得る。さらに、符号化された後、フレーム１００〜１３２は、フレーム１００〜１３２のための符号化データを含むビットストリームに復号順序で構成され得る。例えば、フレーム１１６は、ＧＯＰ１３４のフレームのうち最後に表示され得る。しかしながら、符号化階層により、フレーム１１６はＧＯＰ１３４のうち最初に復号され得る。即ち、フレーム１０８を適切に復号するために、例えば、フレーム１１６は、フレーム１０８のための参照フレームとして働くために最初に復号される必要があり得る。同様に、フレーム１０８は、フレーム１０４、１０６、１１０、及び１１２のための参照フレームとして働き得、従って、フレーム１０４、１０６、１１０、及び１１２の前に復号される必要があり得る。
【０１１２】
フレームが表示される時間は、プレゼンテーション時間と呼ばれることがあり、フレームが復号される時間は復号時間と呼ばれることがある。復号時間及びプレゼンテーション時間は、概して、同じシーケンスの他のフレームに対する時間的順序の指示を与える。フレームの復号時間とフレームのプレゼンテーション時間との間の差は、フレームのためのピクチャ並べ替え遅延と呼ばれることがある。上記で説明したように、発信源機器（例えば、発信源機器２０）は、表現のための信号伝達されるべき遅延値を計算するために、切替え可能な表現のセットの最大ピクチャ並べ替え遅延を計算し得る。
【０１１３】
このようにして、宛先機器４０などの宛先機器は、信号伝達された遅延値を使用して、２つの切替え可能な表現間のシームレスな切替えを行うために十分な量のデータをバッファし得る。例えば、フレーム１００〜１３２が第１の表現のフレームであると仮定する。宛先機器４０は、ネットワーク状態が変化し、第２の表現が新しいネットワーク状態により好適であると決定し得る。宛先機器４０は、さらに、フレーム１３２と同じプレゼンテーション時間を有する第２の表現中のランダムアクセスポイントが存在すると決定し得る。宛先機器４０は、次いで、第１の表現からフレーム１００〜１１６の各々を検索し、次いで、フレーム１１８〜１３２のプレゼンテーション時間に等しいプレゼンテーション時間をもつフレームを第２の表現から検索し得る。ランダムアクセスポイントがオープン復号リフレッシュランダムアクセスポイントである場合、フレーム１１８〜１３０に対応する第２の表現のフレームが適切に復号され得るように、宛先機器４０はまた、フレーム１１６と同じプレゼンテーション時間を有する第２の表現のフレームを検索し得る。
【０１１４】
図４は、切替え可能な表現１５４、１６０を示す概念図である。図４に、未加工ビデオシーケンス１５０と、それぞれ、表現１５４、１６０のフラグメント１５８、１６４との間の対応を示す。この例では、表現１５４は初期化セグメント１５６とフラグメント１５８Ａ〜１５８Ｎとを含み、表現１６０は初期化セグメント１６２とフラグメント１６４Ａ〜１６４Ｎとを含む。
【０１１５】
初期化セグメント１５６、１６２は、同様の又は同じデータを含み得る。従って、幾つかの例では、クライアント機器は、初期化セグメント１５６を検索し、表現１６０の初期化セグメント１６２を検索しないで、表現１５４の初期化セグメント１５６に基づいて表現１６０のうちの１つ以上のフラグメント１６４のデータを復号し得る。従って、宛先機器は、初期化セグメント１５６、１６２の両方を検索しないで、表現１５４のフラグメント１５８と表現１６０のフラグメント１６４との間で切り替え得る。
【０１１６】
一例として、３ＧＰＰ  ＨＴＴＰストリーミングでは、初期化セグメントは、対応する表現にアクセスするための初期化情報を含んでいるが、初期化セグメントはメディアデータを含んでいない。Ｈ．２６４／ＡＶＣで符号化されたビデオをストリーミングするとき、ビデオの最初のＩＤＲピクチャより前に、シーケンスパラメータセット、ピクチャパラメータセット、及び／又は幾つかのシーケンスレベルの補足エンハンスメント情報（ＳＥＩ）メッセージなど、幾つかのパラメータが存在し得る。それらのパラメータは表現全体に適用可能であり得、従って、本開示の技術によれば、初期化セグメントが使用されているとき、最初のＩＤＲを含んでいるメディアセグメント中にパラメータを含めるのではなく、パラメータは初期化セグメント中に含まれ得る。従って、初期化セグメント１５６、１６２は、それぞれ表現１５４、１６０のためのシーケンスパラメータセット、ピクチャパラメータセット、及び／又はシーケンスレベルのＳＥＩメッセージを含み得る。
【０１１７】
図４の例は、異なるサイズを有するものとしてフラグメント１５８とフラグメント１６４とを示している。これは、フラグメント１５８によって占有されるメモリの量が必ずしもフラグメント１６４と同じとは限らないことを示すためである。即ち、フラグメント１５８Ａは、例えば、メモリ消費（及び同様にネットワークを介してトランスポートするときの帯域幅使用）に関して、フラグメント１６４Ａと同じサイズではない。但し、破線は、フラグメント１５８Ａとフラグメント１６４Ａとが同じビデオセグメント１５２Ａに対応することを示している。フラグメント１５８Ａと１６４Ａとは異なるサイズであるが、それらはビデオシーケンス１５０の同じ時間領域に対応する。言い換えれば、フラグメント１５８Ａのサンプルのための開始プレゼンテーション時間及び終了プレゼンテーション時間は、フラグメント１６４のサンプルのための開始及び終了プレゼンテーション時間に対応する。
【０１１８】
このようにして、ランダムアクセスポイントが表現１５４及び１６０中の同じポイントにおいて生じたと仮定すると、フラグメント１５８及び１６４は時間的に整合していると言われることがある。即ち、フラグメント１５８のうちの１つ中にランダムアクセスポイントがあるとき、フラグメント１６４のうちの対応する１つもランダムアクセスポイントを有し、ランダムアクセスポイントは復号順序値を共有する。表現の時間的整合は、２つの表現間で切り替えるプロセスを簡略化し得る。
【０１１９】
図５Ａは、時間的に整合している２つの表現１８０、１９０の一例を示す概念図である。表現１８０は、ランダムアクセスポイント（ＲＡＰ）１８２Ａ、１８２Ｂとサンプル１８４Ａ〜１８４Ｄとを含む。ランダムアクセスポイントは、デコーダが、表現中の、ランダムアクセスポイントに先行するデータを受信することなしにランダムアクセスポイントを復号することができるという追加のプロパティをもつサンプルである。従って、ランダムアクセスポイントは、概して、イントラモード符号化であるピクチャであり得る。
【０１２０】
例えば、サンプルは、サーバ機器からクライアント機器に送られるビットストリームに構成されるので、表現１８０のランダムアクセスポイント１８２及びサンプル１８４は復号時間順序で示されている。ランダムアクセスポイント１８２及びサンプル１８４のプレゼンテーション時間が必ずしも復号時間に一致するとは限らないことを理解されたい。
【０１２１】
図５Ａの表現１９０は、ランダムアクセスポイント１９２Ａ、１９２Ｂとサンプル１９４Ａ〜１９４Ｄとを含む。同じく、この例では、ランダムアクセスポイント１９２及びサンプル１９４が復号時間順序で示されている。わかるように、ランダムアクセスポイント１８２は、対応するランダムアクセスポイント１９２を有する。即ち、ランダムアクセスポイント１８２Ａはランダムアクセスポイント１９２Ａと同じ復号時間を有し、ランダムアクセスポイント１８２Ｂはランダムアクセスポイント１９２Ｂと同じ復号時間を有する。
【０１２２】
表現１８０から表現１９０に切り替えるために、クライアント機器は、サーバ機器から受信された遅延値に基づいて、表現１８０の（ランダムアクセスポイントを含み得る）一定数のサンプルをバッファし得る。次いで、クライアント機器は、例えば、表現１８０中のランダムアクセスポイントの位置、復号時間、及び／又はプレゼンテーション時間を示す、サーバ機器から信号伝達されたデータを分析することによって、表現１８０の次のランダムアクセスポイントがいつ生じるかを決定し得る。例えば、表現１８０の次のランダムアクセスポイントがランダムアクセスポイント１８２Ｂであると仮定する。次いで、クライアント機器は、表現１８０の決定されたランダムアクセスポイントと同じ復号時間を有する、表現１９０のランダムアクセスポイントにおいて開始する表現１９０のデータを要求し得る。この例では、クライアント機器は、ランダムアクセスポイント１８２Ｂと同じ復号時間を有するランダムアクセスポイント１９２Ｂで開始する表現１９０のデータを要求し始めることになる。
【０１２３】
このようにして、クライアント機器は、表現１８０のデータを継続的に復号し、表現１８０のバッファされたデータを復号し、並べ替えている間に、表現１９０のデータを検索し始め得る。表現１８０のバッファされたデータの全てを復号した後、クライアント機器は、表現１９０の検索されたデータの復号と並べ替えを直ちに開始し得る。このようにして、クライアント機器は、２つの表現間のシームレスな切替えを実行し得る。即ち、クライアント機器は一度に１つの表現のみを復号し得（従って、切替えを実施するために２つ以上のデコーダを必要としない）、また、他の場合は切替えを実行するために十分なデータがバッファされていないことによって生じ得る、再生におけるギャップを回避し得る。
【０１２４】
上記の例では、表現１８０及び１９０は時間的に整合しており、クライアント機器が、単に、表現１８０のバッファされたデータの後にくるランダムアクセスポイントを決定し、次いで、表現１８０の決定されたランダムアクセスポイントと同じ復号時間を有する、ランダムアクセスポイントにおける表現１９０のデータを要求することを可能にする。他の例では、２つの表現は時間的に整合していないが、表現間で切り替えるために、依然として本開示の技術が使用され得る。
【０１２５】
図５Ｂは、時間的に整合していない２つの表現２００、２１０の一例を示す概念図である。表現２００はランダムアクセスポイント２０２Ａ、２０２Ｂとサンプル２０４Ａ〜２０４Ｄとを含み、表現２１０はランダムアクセスポイント２１２Ａ、２１２Ｂとサンプル２１４Ａ〜２１４Ｄとを含む。同じく、図５Ｂの例では、ランダムアクセスポイント及びサンプルは復号時間順序で示されている。
【０１２６】
図５Ｂの例では、表現２００と表現２１０とは時間的に整合していない。詳細には、この例では、ランダムアクセスポイント２０２Ｂは、表現２１０中の対応するランダムアクセスポイント（即ち、同じ復号時間をもつランダムアクセスポイント）を有しない。同様に、ランダムアクセスポイント２１２Ｂは、表現２００中の対応するランダムアクセスポイントを有しない。概して、２つの表現は同数のランダムアクセスポイントを有する必要はなく、ランダムアクセスポイントは時間的に整合している必要はない。とはいえ、時間的に整合していない２つの表現間の切替えを実行するために、本開示の技術は依然として適用され得る。
【０１２７】
表現２００と表現２１０との間で切り替えるために、例えば、クライアント機器は、サーバ機器から受信された遅延値に基づいて、表現２００の（ランダムアクセスポイントを含み得る）一定数のサンプルをバッファし得る。サーバ機器は、最大復号遅延と、最大ピクチャ並べ替え遅延と、（表現２００と表現２１０とが時間的に整合していないので）重なり遅延との和として遅延値を計算し得る。従って、遅延値に基づいてデータをバッファすることによって、クライアント機器は、復号遅延と、ピクチャ並べ替え遅延と、時間的に整合していない表現に関連する遅延とを考慮し得る、表現２００と表現２１０との間のシームレスな切替えを保証するために十分なデータ量をバッファし得る。
【０１２８】
表現２００のバッファされたデータは、表現２１０のランダムアクセスポイント２１２Ｂと重複するフラグメントを含み得る。例えば、フラグメントは、ランダムアクセスポイント２０２Ｂ並びにサンプル２０４Ｃ及び２０４Ｄ（及び、潜在的に、図５Ｂに示されていない、表現２００の後続のサンプル）を含み得る。フラグメント中のサンプルの最も早いプレゼンテーション時間が、ランダムアクセスポイント２１２Ｂのプレゼンテーション時間よりも前であり得るが、フラグメント中のサンプルの最も遅いプレゼンテーション時間はランダムアクセスポイント２１２Ｂのプレゼンテーション時間よりも後であり得るという点で、フラグメントはランダムアクセスポイント２１２Ｂと「重なり」得る。そのようなフラグメントは、ランダムアクセスポイントと重なると言われる。本開示ではまた、そのようなフラグメントをランダムアクセスポイントに「またがる」と呼ぶことがある。フラグメントは、表現２００の最後のバッファされたフラグメントに対応し得る。即ち、クライアント機器は、表現２１０のランダムアクセスポイントと重なるフラグメントを含めて、そのフラグメントまでの表現２００からのデータを要求し得る。
【０１２９】
クライアント機器はまた、ランダムアクセスポイント２１２Ｂを含む、表現２１０のフラグメントの位置を特定し得る。クライアント機器は、ランダムアクセスポイント２１２Ｂを含むフラグメントにおいて開始する表現２１０からのデータを要求し得る。クライアント機器は、表現２００から検索された、ランダムアクセスポイント２１２Ｂと重なるフラグメント中のピクチャグループまでのデータを復号し得る。このピクチャのループに達すると、クライアント機器は、表現２１０のデータを復号し始め得る。クライアント機器は、ランダムアクセスポイント２１２Ｂのプレゼンテーション時間よりも早いプレゼンテーション時間を有するピクチャが表現２００中にあるかどうかを決定し、ランダムアクセスポイント２１２Ｂを復号する前に、任意のそのようなピクチャを復号し得る。このようにして、クライアント機器は、表現２００と表現２１０との間でシームレスに切り替え得る。即ち、クライアント機器はビデオ再生におけるギャップを回避し、また、並列復号、即ち、表現を復号するために２つ以上のデコーダを同時に操作することを回避し得る。
【０１３０】
この例では、最終的に復号されない一定量のデータが検索され得るが、少量の余分のデータのこの取出しは、表現の並列復号を実行する必要がないという利点を下回り、また、シームレスな再生を可能にする。従って、余分のデータを検索するコストは無視できると考えられ得る。
【０１３１】
図６は、２つの切替え可能な表現間のシームレスな切替えを実行するための例示的な方法を示すフローチャートである。図１の発信源機器２０と宛先機器４０とに関して説明するが、図６の技術が任意のサーバ及びクライアント機器によって実行され得ることを理解されたい。さらに、方法中のステップは、必ずしも図６に示す正確な順序で行われる必要はなく、本開示の技術を逸脱することなしに、追加のステップが追加され得、又は幾つかのステップが除去され得る。
【０１３２】
初めに、発信源機器２０は、切替え可能な２つ以上の表現を記述するデータを宛先機器４０に与える（２５０）。このデータは、例えば、スムーズな再生のための最小限のネットワーク帯域幅要件、表現の符号化ビデオデータを復号及び／又はレンダリングするデコーダデバイスのプロファイル及び／又はレベル要件、ランダムアクセスポイントの位置（例えば、フラグメント及び／又はバイト範囲）、ランダムアクセスポイントの復号時間、ランダムアクセスポイントのプレゼンテーション時間、表現のフラグメントの復号及び／又はプレゼンテーション時間、フラグメントのバイト範囲、ランダムアクセスポイントを含むユニフォームリソースロケータ、又は符号化ビデオデータを復号及び／又はレンダリングするための他のそのようなデータを記述し得る。
【０１３３】
データは、２つ以上の表現（又はそれの何らかのサブセット）が効率的な切替えグループを形成するかどうかと、２つ以上の表現のいずれかが時間的に整合しているかどうかとをさらに示し得る。さらに、データは、切替え可能な表現間で切り替えるための遅延値を含み得る。遅延値は、切替え可能な表現のための最大復号遅延と最大ピクチャ並べ替え遅延との和に対応し得る。さらに、時間的に整合していない表現の場合、遅延値は重なり遅延を考慮し得る。
【０１３４】
宛先機器４０は、２つ以上の表現を記述するデータを受信する（２５２）。次いで、宛先機器４０は、初めに表現のうちの１つを選択するために、現在のネットワーク状態、例えば、利用可能な帯域幅を決定する（２５４）。さらに、宛先機器４０は、表現間で選択するために、それ自体の復号及び／又はレンダリング能力を決定し得る。即ち、宛先機器４０が復号及びレンダリングすることが可能である表現の中から、宛先機器４０は、現在のネットワーク状態に基づいて、表現のうちの１つを選択し得る。例えば、宛先機器４０は、現在の利用可能なネットワーク帯域幅に最も近いがそれを超えない帯域幅要件を有する第１の表現を選択し得る。
【０１３５】
次いで、宛先機器４０は、第１の表現からのデータを要求する（２５６）。例えば、宛先機器４０は、第１の表現のフラグメントと、潜在的にフラグメントのバイト範囲とを指定するＨＴＴＰ  ＧＥＴ要求又は部分ＧＥＴ要求を生成し得る。要求に応答して、発信源機器２０は、宛先機器４０によって要求された第１の表現の符号化サンプルを宛先機器４０に送る（２５８）。宛先機器４０は、受信されたサンプルを復号し、表示する（２６０）。ネットワーク状態の変化がないと仮定すると、宛先機器４０は第１の表現のサンプルを要求し、次いで、それらが受信された後、サンプルを復号し、表示し続け得る。
【０１３６】
図６の例では、宛先機器４０は、ネットワーク状態の変化を決定する（２６２）。例えば、宛先機器４０は、利用可能なネットワーク帯域幅が増加又は減少したと決定し得る。帯域幅増加を決定したことに応答して、宛先機器４０は、より高い帯域幅要件と対応するより高い品質とを有する第２の表現を選択し得る。一方、帯域幅減少を決定したことに応答して、宛先機器４０は、品質は低下するが、より低い帯域幅要件を有する第２の表現を選択し得る。
【０１３７】
ネットワーク状態が変化したと決定した後、宛先機器４０は、発信源機器２０から受信した遅延値に基づいて、第１の表現のあるデータ量をバッファする（２６４）。例えば、宛先機器４０は、第１の表現から第２の表現へのシームレスな切替えを可能にするために、第１の表現から検索するサンプルの数又はフラグメントの数を遅延値に基づいて決定し得る。データをバッファすることは、第１の表現からのデータについての１つ以上の要求を生成することと、要求を発信源機器２０に送ることとを含み得る。第１の表現からのこのデータをバッファした後、宛先機器４０は、選択された第２の表現からのデータを要求し始める（２６６）。
【０１３８】
要求に応答して、発信源機器２０は、第２の表現の符号化サンプルを宛先機器４０に送る（２６８）。この時間中に、宛先機器４０は、第１の表現のバッファされたデータを復号し続け得る。第２の表現からの要求されたデータを受信した後、及び第２の表現のランダムアクセスポイントの前のプレゼンテーション時間を有する第１の表現のサンプルを復号した後、宛先機器４０は、第２の表現の受信されたサンプルを復号し、表示し始める（２７０）。幾つかの例では、宛先機器４０は、第２の表現のための初期化セグメントを要求することなしに、第２の表現からのデータを要求し得る。従って、宛先機器４０は、第２の表現のサンプルを復号し、表示するために、第１の表現から検索された初期化セグメントを使用し得る。
【０１３９】
図７は、発信源機器２０などのサーバ機器が、切替え可能な表現を記述する情報を宛先機器４０などのクライアント機器に与えるための例示的な方法を示すフローチャートである。図１の発信源機器２０と宛先機器４０とに関して説明するが、図７の技術が任意のサーバ及びクライアント機器によって実行され得ることを理解されたい。さらに、方法中のステップは、必ずしも図７に示す正確な順序で行われる必要はなく、本開示の技術を逸脱することなしに、追加のステップが追加され得、又は幾つかのステップが除去され得る。
【０１４０】
初めに、発信源機器２０は、２つ以上の切替え可能な表現の符号化ビデオサンプルを受信する（２８０）。幾つかの例では、発信源機器２０は、未加工ビデオデータを受信し、２つ以上の切替え可能な表現を符号化し得る。他の例では、発信源機器２０は、切替え可能な表現を生成する１つ以上のエンコーダを含む中間デバイスから符号化表現を受信し得る。表現は、幾つかの例では時間的に整合していることがあり、又は他の例では時間的に整合していないことがある。
【０１４１】
発信源機器２０は、切替え可能な表現の受信したサンプルの最大復号遅延を決定する（２８２）。例えば、発信源機器２０は、各表現のサンプルを分析して、各表現のための最大復号遅延を決定し得る。次いで、これらの決定された最大値に基づいて、発信源機器２０は表現の全ての最大復号遅延を計算し得る。例えば、発信源機器２０が、３つの表現のためのサンプルを受信したと仮定する。発信源機器２０は、第１の表現のための第１の最大復号遅延と、第２の表現のための第２の最大復号遅延と、第３の表現のための第３の最大復号遅延とを決定し得る。次いで、発信源機器２０は、切替え可能な表現の最大復号遅延として、第１、第２、及び第３の最大復号遅延の最大値を計算し得る。サンプルは、最大復号遅延が、切替え可能な表現のいずれかの任意のアクセスユニットを復号することに関連する最大遅延に対応するように、表現のアクセスユニットを備え得る。
【０１４２】
発信源機器２０はまた、サンプルの最大並べ替え遅延を決定する（２８４）。この場合も、発信源機器２０は、切替え可能な表現のためのサンプルを分析して表現ごとの最大並べ替え遅延を計算し、次いで、これらのうち最大値を計算して切替え可能な表現に関連する最大並べ替え遅延を決定し得る。概して、ピクチャ並べ替え遅延は、表現のフレームのためのプレゼンテーション時間と復号時間との間の差である。従って、最大ピクチャ並べ替え遅延は、切替え可能な表現のいずれかの任意のフレームのプレゼンテーション時間と復号時間との間の最大差に対応し得る。
【０１４３】
次いで、発信源機器２０は、例えば、最大復号遅延と最大ピクチャ並べ替え遅延との和として、切替え可能な表現間のシームレスな切替えに関連する遅延値を計算する（２８６）。発信源機器２０は、さらに、表現が時間的に整合しているかどうかを決定する（２８８）。例えば、発信源機器２０は、表現のうちの１つ中の任意のランダムアクセスポイントについて、他の表現の各々が、表現のうちの１つのランダムアクセスポイントと同じ復号時間を有するランダムアクセスポイントを有するときのみ、表現が時間的に整合していると決定し得る。発信源機器２０は、表現が時間的に整合しているかどうかに関する指示を復号デバイスから受信し得るか、又は、発信源機器２０が表現を符号化したとき、表現が時間的に整合しているように生成されたかどうかを追跡し得る。
【０１４４】
表現が時間的に整合している場合（２８８の「ＹＥＳ」分岐）、発信源機器２０は、計算された遅延値と符号化ビデオサンプルとを単に記憶する（２９４）。一方、表現が時間的に整合していない場合（２８８の「ＮＯ」分岐）、発信源機器２０は、２８６において計算された遅延値を中間遅延値として扱う。次いで、発信源機器２０は、切替え可能な表現のための最大重なり遅延を計算する（２９０）。ピクチャの重なり遅延は、現在の表現のＧＯＰ構造並びにＧＯＰ中のピクチャの位置に基づき得る。発信源機器２０は、切替え可能な表現のための最大重なり遅延を計算し、次いで、ステップ２８６において計算された遅延値に最大重なり遅延を加算する（２９２）。次いで、発信源機器２０は、この計算された遅延値を切替え可能な表現のビデオサンプルとともに記憶する（２９４）。発信源機器２０は、例えば、そのような信号伝達情報についての要求に応答して発信源機器２０が宛先機器４０に与え得る信号伝達情報を生成し得る。
【０１４５】
図８は、宛先機器４０などのクライアント機器が、発信源機器２０などのサーバ機器から第１の表現のデータを検索することから、サーバ機器から第２の表現のデータを検索することに切り替えるための例示的な方法を示すフローチャートである。図１の発信源機器２０と宛先機器４０とに関して説明するが、図８の技術が任意のサーバ及びクライアント機器によって実行され得ることを理解されたい。さらに、方法中のステップは、必ずしも図８に示す正確な順序で行われる必要はなく、本開示の技術を逸脱することなしに、追加のステップが追加され得、又は幾つかのステップが除去され得る。さらに、図８の例では、２つの表現が時間的に整合していないことを仮定している。
【０１４６】
初めに、宛先機器４０は、２つ以上の切替え可能な表現のための遅延値を、例えば発信源機器２０から受信する（３００）。宛先機器４０は、ランダムアクセスポイントの位置、表現が時間的に整合しているかどうか、表現を正常に復号／レンダリングするための、クライアント機器の復号及び／又はレンダリング要件を記述するプロファイル及び／又はレベルインジケータ、表現の帯域幅制限、又は他のそのような情報など、切替え可能な表現を記述する追加情報を受信し得る。
【０１４７】
宛先機器４０は、第１の表現のデータを受信し、復号し、表示する（３０２）。例えば、宛先機器４０は、利用可能な帯域幅などの現在のネットワーク状態と、宛先機器４０の復号及びレンダリング能力とに基づいて第１の表現を選択し得る。次いで、宛先機器４０は、第１の表現からのデータについての１つ以上の要求をサブミットし、受信した遅延値に基づいて十分なデータ量をバッファした後、第１の表現のデータを復号し、表示し始める。
【０１４８】
ある時点において、宛先機器４０は、ネットワーク状態の変化があった、例えば、利用可能な帯域幅が増加又は減少したと決定する（３０４）。従って、新しいネットワーク状態に基づいて、宛先機器４０は、第１の表現に切替え可能である第２の表現を選択する（３０６）。上記のように、この例では、第１の表現と第２の表現とが時間的に整合していないと仮定される。
【０１４９】
宛先機器４０は、この例では「フラグメントＭ」と標示された、第２の表現中の次のランダムアクセスポイント（ＲＡＰ）を含むフラグメントを決定する（３０８）。即ち、宛先機器４０は、第１の表現のためのバッファされたデータのプレゼンテーション時間よりも後のプレゼンテーション時間を有する、第２の表現のランダムアクセスポイントを決定し得る。次いで、宛先機器４０は、ランダムアクセスポイントを含むフラグメントＭを決定し得る。
【０１５０】
次いで、宛先機器４０は、この例では「フラグメントＮ」と標示された、第２の表現のランダムアクセスポイントにまたがる、第１の表現中のフラグメントの位置を特定する（３１０）。即ち、宛先機器４０は、最も早いプレゼンテーション時間が、第２の表現のランダムアクセスポイントのプレゼンテーション時間よりも前であり、最も遅いプレゼンテーション時間が、第２の表現のランダムアクセスポイントのプレゼンテーション時間よりも後であるフラグメントＮを識別し得る。
【０１５１】
次いで、宛先機器４０は、フラグメントＮを含めて、フラグメントＮまでの第１の表現からのデータを要求する（３１２）。フラグメントＮを要求した後、宛先機器４０は、フラグメントＭで開始する第２の表現からのデータを要求し始める（３１４）。宛先機器４０は、フラグメントＭのランダムアクセスポイントのプレゼンテーション時間にまたがるピクチャグループまでの第１の表現の全てのサンプルを復号する（３１６）。
【０１５２】
宛先機器４０は、上述のピクチャグループ内のピクチャを含み得る、フラグメントＭ中のランダムアクセスポイントのプレゼンテーション時間よりも前のプレゼンテーション時間を有する全てのピクチャが復号され、表示されたことを保証し得る。この後、宛先機器４０は、ランダムアクセスポイントにおいて開始する第２の表現のピクチャを復号し始める（３１８）。宛先機器４０は、さらに、第２の表現の復号されたピクチャを表示し得、それは、いくらかの量のピクチャ並べ替えを必要とし得る。
【０１５３】
さらに、宛先機器４０は、第２の表現に固有の初期化セグメントを要求することなしに、第２の表現のフラグメントを要求し、復号し得る。例えば、受信された情報が、第１の表現と第２の表現とが効率的に切替え可能であることを示すとき、宛先機器４０は、第１の表現のための受信された初期化セグメントに基づいて第２の表現のサンプルを復号し、レンダリングし得る。従って、図８の方法は、第１の表現のデータを受信し、復号し、表示するより前に（例えば、ステップ３０２より前に）、第１の表現の初期化セグメントを要求し、受信することをさらに含み得る。
【０１５４】
１つ以上の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、若しくはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従ってある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体など、有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、若しくは（２）信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技術の実装のための命令、コード及び／又はデータ構造を検索するために１つ以上のコンピュータ若しくは１つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。「１つ以上のプロセッサ」という句は、各々が共通のチップ（例えば、単一の集積回路）内に含まれ得る、マルチコアプロセッサの１つ以上のコアを含み得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１５５】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光ディスクストレージ、磁気ディスクストレージ、又は他の磁気ストレージデバイス、フラッシュメモリ、若しくは命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。さらに、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）及びディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピーディスク（disk）及びブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１５６】
命令は、１つ以上のデジタル信号プロセッサ（ＤＳＰ）などの１つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、若しくは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明した技術の実装に好適な他の構造のいずれかを指し得る。さらに、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のハードウェア及び／又はソフトウェアモジュール内に提供され得、若しくは複合コーデックに組み込まれ得る。また、本技術は、１つ以上の回路又は論理要素中に十分に実装され得る。
【０１５７】
本開示の技術は、ワイヤレスハンドセット、集積回路（ＩＣ）又はＩＣのセット（例えば、チップセット）を含む、多種多様なデバイス又は装置において実施され得る。本開示では、開示する技術を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び／又はファームウェアとともに、上記で説明したように１つ以上のプロセッサを含んで、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。
【０１５８】
様々な例について説明した。これら及び他の例は以下の特許請求の範囲内に入る。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[１]  ビデオデータを送る方法であって、ビデオシーケンスの第１の表現のためのデータと前記ビデオシーケンスの第２の表現のためのデータとにアクセスするための情報をクライアント機器に与えることと、前記第１の表現のための前記データの送信中に、前記ビデオシーケンスを表示するときにプレゼンテーションギャップを経験することなしに、及び前記切替え中に前記第１の表現のための前記データと前記第２の表現のための前記データとを復号するために２つ以上のデコーダを同時に実行することなしに、前記クライアント機器が前記第２の表現に切り替えることができることを示す情報を前記クライアント機器に与えることと、前記第１の表現からデータを検索するため前記クライアント機器からの第１の要求に応答して、前記第１の表現からの前記要求されたデータを前記クライアント機器に送ることと、前記第１の表現からの前記要求されたデータを送った後、前記第２の表現からデータを検索するため前記クライアント機器からの第２の要求に応答して、前記第２の表現からの前記要求されたデータを前記クライアント機器に送ることとを備える、方法。
[２]  １つの符号化ビデオサンプルの復号遅延が、前記符号化ビデオサンプルを復号するための遅延を含み、第１及び第２の表現の複数の符号化ビデオサンプルのための最大復号遅延を決定することと、１つの符号化ビデオピクチャのためのピクチャ並べ替え遅延が、前記符号化ビデオピクチャのための復号時間と前記符号化ビデオピクチャのためのプレゼンテーション時間との間の差を含み、前記第１及び第２の表現の前記複数の符号化ビデオサンプルのための最大ピクチャ並べ替え遅延を決定することと、前記最大復号遅延と前記最大ピクチャ並べ替え遅延との和を含む遅延値を計算することと、を更に備え、前記クライアント機器が前記第２の表現に切り替えることができることを示す前記情報を与えることが、前記第１の表現から前記第２の表現に切り替えるために前記遅延値を前記クライアント機器に送ることを含む、[１]に記載の方法。
[３]  前記第１及び第２の表現の前記符号化ビデオサンプルが時間整合されているかどうかを決定することをさらに備え、前記第１及び第２の表現の前記符号化ビデオサンプルが時間整合されていないとき、前記遅延値を計算することが、前記最大復号遅延と前記最大ピクチャ並べ替え遅延との前記和に時間整合遅延値を加算することをさらに備え、前記時間整合遅延値が、前記第１の表現の最後の要求されたフラグメントの最後の符号化ビデオサンプルと前記第２の表現の最初のフラグメントの最初の符号化ビデオサンプルとの間の時間差を備える、[２]に記載の方法。
[４]  前記表現の符号化ビデオサンプルのためのランダムアクセスポイントピクチャの最大サイズ値を決定することと、前記最大サイズ値を前記クライアント機器に送ることとをさらに備える、[１]に記載の方法。
[５]  前記第１の表現のための初期化セグメントを受信することと、前記第２の表現が前記第１の表現の前記初期化セグメントに基づいて復号され得ると決定することと、前記第１の表現と前記第２の表現とにグループ識別子値を割り当てることと、前記グループ識別子値を前記クライアント機器に送ることとをさらに備え、前記第１の表現からの前記要求されたデータを送ることが、前記初期化セグメントを前記クライアント機器に送ることを備え、前記第２の表現の前記要求されたデータを前記クライアント機器に送ることが、前記第２の表現の初期化セグメントを前記クライアント機器に送ることなしに、前記第２の表現の前記要求されたデータを前記クライアント機器に送ることを備える、[１]に記載の方法。
[６]  ビデオデータを転送するための装置であって、ビデオシーケンスの第１の表現のためのデータと前記ビデオシーケンスの第２の表現のためのデータとにアクセスするための情報をクライアント機器に与えることと、前記第１の表現のための前記データの送信中に、前記ビデオシーケンスを表示するときにプレゼンテーションギャップを経験することなしに、及び前記切替え中に前記第１の表現のための前記データと前記第２の表現のための前記データとを復号するために２つ以上のデコーダを同時に実行することなしに、前記クライアント機器が前記第２の表現に切り替えることができることを示す情報を前記クライアント機器に与えることと、前記第１の表現からデータを検索するため前記クライアント機器からの第１の要求に応答して、前記第１の表現からの前記要求されたデータを前記クライアント機器に送ることと、前記第１の表現からの前記要求されたデータを送った後、前記第２の表現からデータを検索するため前記クライアント機器からの第２の要求に応答して、前記第２の表現からの前記要求されたデータを前記クライアント機器に送ることとを行うように構成されたプロセッサを備える、装置。
[７]  前記プロセッサが、１つの符号化ビデオサンプルの復号遅延が、前記符号化ビデオサンプルを復号するための遅延を含み、前記第１及び第２の表現の複数の符号化ビデオサンプルのための最大復号遅延を決定することと、１つの符号化ビデオピクチャのためのピクチャ並べ替え遅延が、前記符号化ビデオピクチャのための復号時間と前記符号化ビデオピクチャのためのプレゼンテーション時間との間の差を含み、前記第１及び第２の表現の前記符号化ビデオサンプルのための最大ピクチャ並べ替え遅延を決定することと、前記最大復号遅延と前記最大ピクチャ並べ替え遅延との和を含む遅延値を計算することと、前記第１の表現から前記第２の表現に切り替えるために前記遅延値を前記クライアント機器に送ることとを行うように構成された、[６]に記載の装置。
[８]  前記プロセッサは、前記第１及び第２の表現の前記符号化ビデオサンプルが時間整合されているかどうかを決定するように構成され、前記第１及び第２の表現の前記符号化ビデオサンプルが時間整合されていないとき、前記遅延値を計算することが、前記最大復号遅延と前記最大ピクチャ並べ替え遅延との前記和に時間整合遅延値を加算することをさらに備え、前記時間整合遅延値が、前記第１の表現の最後の要求されたフラグメントの最後の符号化ビデオサンプルと前記第２の表現の最初のフラグメントの最初の符号化ビデオサンプルとの間の時間差を含む、[７]に記載の装置。
[９]  前記プロセッサが、前記表現の符号化ビデオサンプルのためのランダムアクセスポイントピクチャの最大サイズ値を決定することと、前記最大サイズ値を前記クライアント機器に送ることとを行うように構成された、[６]に記載の装置。
[１０]  前記プロセッサが、前記第１の表現のための初期化セグメントを受信することと、前記第２の表現が前記第１の表現の前記初期化セグメントに基づいて復号され得ると決定することと、前記第１の表現と前記第２の表現とにグループ識別子値を割り当てることと、前記グループ識別子値を前記クライアント機器に送ることと、前記第１の表現からの前記要求されたデータとともに前記初期化セグメントを前記クライアント機器に送ることと、前記第２の表現の初期化セグメントを前記クライアント機器に送ることなしに、前記第２の表現の前記要求されたデータを前記クライアント機器に送ることとを行うように構成された、[６]に記載の装置。
[１１]  前記装置が、集積回路と、マイクロプロセッサと、前記プロセッサを含むワイヤレス通信機器とのうちの少なくとも１つを備える、[６]に記載の装置。
[１２]  ビデオデータを与えるための装置であって、ビデオシーケンスの第１の表現のためのデータと前記ビデオシーケンスの第２の表現のためのデータとにアクセスするための情報をクライアント機器に与えるための手段と、前記第１の表現のための前記データの送信中に、前記ビデオシーケンスを表示するときにプレゼンテーションギャップを経験することなしに、及び前記切替え中に前記第１の表現のための前記データと前記第２の表現のための前記データとを復号するために２つ以上のデコーダを同時に実行することなしに、前記クライアント機器が前記第２の表現に切り替えることができることを示す情報を前記クライアント機器に与えるための手段と、前記第１の表現からデータを検索するため前記クライアント機器からの第１の要求に応答して、前記第１の表現からの前記要求されたデータを前記クライアント機器に送るための手段と、前記第１の表現からの前記要求されたデータを送った後、前記第２の表現からデータを検索するため前記クライアント機器からの第２の要求に応答して、前記第２の表現からの前記要求されたデータを前記クライアント機器に送るための手段とを備える、装置。
[１３]  １つの符号化ビデオサンプルの復号遅延が、前記符号化ビデオサンプルを復号するための遅延を含み、前記第１及び第２の表現の符号化ビデオサンプルのための最大復号遅延を決定するための手段と、１つの符号化ビデオピクチャのためのピクチャ並べ替え遅延が、前記符号化ビデオピクチャのための復号時間と前記符号化ビデオピクチャのためのプレゼンテーション時間との間の差を含み、前記第１及び第２の表現の前記符号化ビデオサンプルのための最大ピクチャ並べ替え遅延を決定するための手段と、前記最大復号遅延と前記最大ピクチャ並べ替え遅延との和を備える遅延値を計算するための手段と、前記第１の表現から前記第２の表現に切り替えるために前記遅延値を前記クライアント機器に送るための手段とをさらに備える、[１２]に記載の装置。
[１４]  前記第１及び第２の表現の前記符号化ビデオサンプルが時間整合されているかどうかを決定するための手段をさらに備え、前記遅延値を計算するための前記手段が、前記最大復号遅延と前記最大ピクチャ並べ替え遅延との前記和に時間整合遅延値を加算するための手段をさらに備え、前記第１及び第２の表現の前記符号化ビデオサンプルが時間整合されていないとき、前記時間整合遅延値が、前記第１の表現の最後の要求されたフラグメントの最後の符号化ビデオサンプルと前記第２の表現の最初のフラグメントの最初の符号化ビデオサンプルとの間の時間差を備える、[１３]に記載の装置。
[１５]  前記表現の符号化ビデオサンプルのためのランダムアクセスポイントピクチャの最大サイズ値を決定するための手段と、前記最大サイズ値を前記クライアント機器に送るための手段とをさらに備える、[１２]に記載の装置。
[１６]  前記第１の表現のための初期化セグメントを受信するための手段と、前記第２の表現が前記第１の表現の前記初期化セグメントに基づいて復号され得ると決定するための手段と、前記第１の表現と前記第２の表現とにグループ識別子値を割り当てるための手段と、前記グループ識別子値を前記クライアント機器に送るための手段とをさらに備え、前記第１の表現からの前記要求されたデータを送るための前記手段が、前記初期化セグメントを前記クライアント機器に送るための手段を備え、前記第２の表現からの前記要求されたデータを送るための前記手段が、前記第２の表現の初期化セグメントをクライアント機器に送ることなしに、前記第２の表現のデータを前記クライアント機器に送るための手段を備える、[１２]に記載の装置。
[１７]  実行されると、ビデオシーケンスの第１の表現のためのデータと前記ビデオシーケンスの第２の表現のためのデータとにアクセスするための情報をクライアント機器に与えることと、前記第１の表現のための前記データの送信中に、前記ビデオシーケンスを表示するときにプレゼンテーションギャップを経験することなしに、及び前記切替え中に前記第１の表現のための前記データと前記第２の表現のための前記データとを復号するために２つ以上のデコーダを同時に実行することなしに、前記クライアント機器が前記第２の表現に切り替えることができることを示す情報を前記クライアント機器に与えることと、前記第１の表現からデータを検索するため前記クライアント機器からの第１の要求に応答して、前記第１の表現からの前記要求されたデータを前記クライアント機器に送ることと、前記第１の表現からの前記要求されたデータを送った後、前記第２の表現からデータを検索するため前記クライアント機器からの第２の要求に応答して、前記第２の表現からの前記要求されたデータを前記クライアント機器に送ることとを、ビデオデータを与えるためのデバイスのプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
[１８]  １つの符号化ビデオサンプルの復号遅延が、前記符号化ビデオサンプルを復号するための遅延を含み、前記第１及び第２の表現の複数の符号化ビデオサンプルのための最大復号遅延を決定することと、１つの符号化ビデオピクチャのためのピクチャ並べ替え遅延が、前記符号化ビデオピクチャのための復号時間と前記符号化ビデオピクチャのためのプレゼンテーション時間との間の差を含み、前記第１及び第２の表現の前記符号化ビデオサンプルのための最大ピクチャ並べ替え遅延を決定することと、前記最大復号遅延と前記最大ピクチャ並べ替え遅延との和を備える遅延値を計算することと、前記第１の表現から前記第２の表現に切り替えるために前記遅延値を前記クライアント機器に送ることとを前記プロセッサに行わせる命令をさらに備える、[１７]に記載のコンピュータプログラム製品。
[１９]  前記第１及び第２の表現の前記符号化ビデオサンプルが時間整合されているかどうかを決定することを前記プロセッサに行わせる命令をさらに含み、前記遅延値を計算することを前記プロセッサに行わせる前記命令が、前記第１及び第２の表現の前記符号化ビデオサンプルが時間整合されていないとき、前記最大復号遅延と前記最大ピクチャ並べ替え遅延との前記和に時間整合遅延値を加算することを前記プロセッサに行わせる命令を含み、前記時間整合遅延値が、前記第１の表現の最後の要求されたフラグメントの最後の符号化ビデオサンプルと前記第２の表現の最初のフラグメントの最初の符号化ビデオサンプルとの間の時間差を含む、[１８]に記載のコンピュータプログラム製品。
[２０]  前記表現の符号化ビデオサンプルのためのランダムアクセスポイントピクチャの最大サイズ値を決定することと、前記最大サイズ値を前記クライアント機器に送ることとを前記プロセッサに行わせる命令をさらに備える、[１７]に記載のコンピュータプログラム製品。
[２１]  前記第１の表現のための初期化セグメントを受信することと、前記第２の表現が前記第１の表現の前記初期化セグメントに基づいて復号され得ると決定することと、前記第１の表現と前記第２の表現とにグループ識別子値を割り当てることと、前記グループ識別子値を前記クライアント機器に送ることと  を前記プロセッサに行わせる命令をさらに備え、前記第１の表現からの前記データを送ることを前記プロセッサに行わせる前記命令が、前記初期化セグメントを前記クライアント機器に送ることを前記プロセッサに行わせる命令を含み、前記第２の表現からの前記データを送ることを前記プロセッサに行わせる前記命令が、前記第２の表現の初期化セグメントをクライアント機器に送ることなしに、前記第２の表現からのデータを前記クライアント機器に送ることを前記プロセッサに行わせる命令を含む、[１７]に記載のコンピュータプログラム製品。
[２２]  ビデオデータを受信する方法であって、ビデオシーケンスの第１の表現と前記ビデオシーケンスの第２の表現との間で切り替えるための遅延を示す遅延値を受信することと、ストリーミングネットワークプロトコルに従ってビデオシーケンスの前記第１の表現からのデータを要求することと、前記第１の表現から前記第２の表現に切り替えることを決定したことに応答して、前記遅延値に基づいて前記第１の表現からのあるデータ量をバッファすることと、前記第１の表現からの前記データ量をバッファした後に、前記ストリーミングネットワークプロトコルに従って前記ビデオシーケンスの第２の表現からのデータを要求することとを含む、方法。
[２３]  前記第１の表現の前記データを要求するより前に前記第１の表現の初期化セグメントを要求することをさらに備え、前記第２の表現からの前記データを要求することが、前記第２の表現の初期化セグメントを要求することなしに前記第２の表現からの前記データを要求することを備える、[２２]に記載の方法。
[２４]  ネットワーク状態の変化を検出することと、前記ネットワーク状態の前記変化に基づいて、前記第１の表現から前記第２のネットワーク表現に切り替えることを決定することとをさらに備える、[２２]に記載の方法。
[２５]  前記第１の表現と前記第２の表現とが時間的に整合されているかどうかを示す情報を受信することと、前記情報に基づいて前記第２の表現のランダムアクセスポイントを選択することとをさらに備える、[２２]に記載の方法。
[２６]  前記第１の表現と前記第２の表現とが時間的に整合されているとき、前記ランダムアクセスポイントを選択することが、前記第１の表現の前記バッファされたデータのサンプルのプレゼンテーション時間値の後にくる最も早いプレゼンテーション時間値を有する前記第１の表現の第１のランダムアクセスポイントの位置を特定することと、前記第１のランダムアクセスポイントと同じ前記プレゼンテーション時間値を有する前記第２の表現の第２のランダムアクセスポイントを選択することとを備え、前記第２の表現からの前記データを要求することが、前記第２のランダムアクセスポイントを備える、前記第２の表現のフラグメントを要求することを備える、[２５]に記載の方法。
[２７]  前記第１の表現と前記第２の表現とが時間的に整合されていないとき、前記第１の表現の前記バッファされたデータの少なくとも１つのサンプルのプレゼンテーション時間値よりも後のプレゼンテーション時間値を有する前記第２の表現のランダムアクセスポイントを選択することを備え、前記データ量をバッファすることが、前記選択されたランダムアクセスポイントの前記プレゼンテーション時間値よりも前の開始プレゼンテーション時間値と、前記選択されたランダムアクセスポイントの前記プレゼンテーション時間値よりも後の終了プレゼンテーション時間値とを有する第１のフラグメントまでの前記第１の表現のデータを要求及び記憶することを備え、前記第２の表現からのデータを要求することが、前記選択されたランダムアクセスポイントを備える前記第２の表現の第２のフラグメントにおいて開始する前記第２の表現のデータを要求することを備える、[２５]に記載の方法。
[２８]  前記第１のフラグメントのピクチャグループに達するまでの前記第１の表現の前記データを復号することと、前記第１のフラグメントの前記ピクチャグループに達した後に、前記選択されたランダムアクセスポイントにおいて開始する前記第２の表現の前記データを復号することとをさらに備え、前記ピクチャグループが、前記選択されたランダムアクセスポイントのプレゼンテーション時間値よりも前の開始プレゼンテーション時間値と、前記選択されたランダムアクセスポイントの前記プレゼンテーション時間値よりも後の終了プレゼンテーション時間値とを有する第１のピクチャを備える、[２７]に記載の方法。
[２９]  ビデオデータを受信するための装置であって、ビデオシーケンスの第１の表現と前記ビデオシーケンスの第２の表現との間で切り替えるための遅延を示す遅延値を受信することと、ストリーミングネットワークプロトコルに従ってビデオシーケンスの前記第１の表現からのデータを要求することと、前記第１の表現から前記第２の表現に切り替えることを決定したことに応答して、前記遅延値に基づいて前記第１の表現からのある量のデータをバッファすることと、前記第１の表現からの前記量のデータをバッファした後に、前記ストリーミングネットワークプロトコルに従って前記ビデオシーケンスの第２の表現からのデータを要求することとを行うように構成されたプロセッサを備える、装置。
[３０]  前記プロセッサが、前記第１の表現の前記データを要求するより前に前記第１の表現の初期化セグメントを要求するように構成され、前記プロセッサが、前記第２の表現の初期化セグメントを要求することなしに前記第２の表現からの前記データを要求するように構成された、[２９]に記載の装置。
[３１]  前記プロセッサが、ネットワーク状態の変化を検出することと、前記ネットワーク状態の前記変化に基づいて、前記第１の表現から前記第２のネットワーク表現に切り替えることを決定することとを行うように構成された、[２９]に記載の装置。
[３２]  前記プロセッサが、前記第１の表現と前記第２の表現とが時間的に整合されているかどうかを示す情報を受信することと、前記情報に基づいて前記第２の表現のランダムアクセスポイントを選択することとを行うように構成された、[２９]に記載の装置。
[３３]  前記第１の表現と前記第２の表現とが時間的に整合しているとき、前記ランダムアクセスポイントを選択するために、前記プロセッサが、前記第１の表現の前記バッファされたデータのサンプルのプレゼンテーション時間値の後にくる最も早いプレゼンテーション時間値を有する前記第１の表現の第１のランダムアクセスポイントの位置を特定することと、前記第１のランダムアクセスポイントと同じ前記プレゼンテーション時間値を有する前記第２の表現の第２のランダムアクセスポイントを選択することとを行うように構成され、前記第２の表現からの前記データを要求するために、前記プロセッサが、前記第２のランダムアクセスポイントを備える、前記第２の表現のフラグメントを要求するように構成された、[３２]に記載の装置。
[３４]  前記プロセッサは、前記第１の表現と前記第２の表現とが時間的に整合されていないとき、前記第１の表現の前記バッファされたデータの少なくとも１つのサンプルのプレゼンテーション時間値よりも後のプレゼンテーション時間値を有する前記第２の表現のランダムアクセスポイントを選択するように構成され、前記データ量をバッファするために、前記プロセッサが、前記選択されたランダムアクセスポイントの前記プレゼンテーション時間値よりも前の開始プレゼンテーション時間値と、前記選択されたランダムアクセスポイントの前記プレゼンテーション時間値よりも後の終了プレゼンテーション時間値とを有する第１のフラグメントまでの前記第１の表現のデータを要求し、記憶するように構成され、前記第２の表現からのデータを要求するために、前記プロセッサが、前記選択されたランダムアクセスポイントを備える前記第２の表現の第２のフラグメントにおいて開始する前記第２の表現のデータを要求するように構成された、[３２]に記載の装置。
[３５]  前記第１のフラグメントのピクチャグループに達するまでの前記第１の表現の前記データを復号することと、前記第１のフラグメントの前記ピクチャグループに達した後に、前記選択されたランダムアクセスポイントにおいて開始する前記第２の表現の前記データを復号することとを行うように構成され、前記ピクチャグループが、前記選択されたランダムアクセスポイントのプレゼンテーション時間値よりも前の開始プレゼンテーション時間値と、前記選択されたランダムアクセスポイントの前記プレゼンテーション時間値よりも後の終了プレゼンテーション時間値とを有する第１のピクチャを備える、ビデオデコーダをさらに備える、[３４]に記載の装置。
[３６]  前記装置が、集積回路と、マイクロプロセッサと、前記プロセッサを含むワイヤレス通信機器とのうちの少なくとも１つを備える、[２９]に記載の装置。
[３７]  ビデオデータを受信するための装置であって、ビデオシーケンスの第１の表現と前記ビデオシーケンスの第２の表現との間で切り替えるための遅延を示す遅延値を受信するための手段と、ストリーミングネットワークプロトコルに従ってビデオシーケンスの前記第１の表現からのデータを要求するための手段と、前記第１の表現から前記第２の表現に切り替えることを決定したことに応答して、前記遅延値に基づいて前記第１の表現からのあるデータ量をバッファするための手段と、前記第１の表現からの前記データ量をバッファした後に、前記ストリーミングネットワークプロトコルに従って前記ビデオシーケンスの第２の表現からのデータを要求するための手段とを備える、装置。
[３８]  前記第１の表現の前記データを要求するより前に前記第１の表現の初期化セグメントを要求するための手段をさらに備え、前記第２の表現からの前記データを要求するための前記手段が、前記第２の表現の初期化セグメントを要求することなしに前記第２の表現からの前記データを要求するための手段を備える、[３７]に記載の装置。
[３９]  ネットワーク状態の変化を検出するための手段と、前記ネットワーク状態の前記変化に基づいて、前記第１の表現から前記第２のネットワーク表現に切り替えることを決定するための手段とをさらに備える、[３７]に記載の装置。
[４０]  前記第１の表現と前記第２の表現とが時間的に整合されているかどうかを示す情報を受信するための手段と、前記情報に基づいて前記第２の表現のランダムアクセスポイントを選択するための手段とをさらに備える、[３７]に記載の装置。
[４１]  前記第１の表現と前記第２の表現とが時間的に整合されているとき、前記ランダムアクセスポイントを選択するための前記手段が、前記第１の表現の前記バッファされたデータのサンプルのプレゼンテーション時間値の後にくる最も早いプレゼンテーション時間値を有する前記第１の表現の第１のランダムアクセスポイントの位置を特定するための手段と、前記第１のランダムアクセスポイントと同じ前記プレゼンテーション時間値を有する前記第２の表現の第２のランダムアクセスポイントを選択するための手段とを備え、前記第２の表現からの前記データを要求するための前記手段が、前記第２のランダムアクセスポイントを備える、前記第２の表現のフラグメントを要求するための手段を備える、[４０]に記載の装置。
[４２]  前記第１の表現と前記第２の表現とが時間的に整合されていないとき、前記ランダムアクセスポイントを選択するための前記手段が、前記第１の表現の前記バッファされたデータの少なくとも１つのサンプルのプレゼンテーション時間値よりも後のプレゼンテーション時間値を有する前記第２の表現のランダムアクセスポイントを選択するための手段を備え、前記量のデータをバッファするための前記手段が、前記選択されたランダムアクセスポイントの前記プレゼンテーション時間値よりも前の開始プレゼンテーション時間値と、前記選択されたランダムアクセスポイントの前記プレゼンテーション時間値よりも後の終了プレゼンテーション時間値とを有する第１のフラグメントまでの前記第１の表現のデータを要求し、記憶するための手段を備え、前記第２の表現からのデータを要求するための前記手段が、前記選択されたランダムアクセスポイントを備える前記第２の表現の第２のフラグメントにおいて開始する前記第２の表現のデータを要求するための手段を備える、[４０]に記載の装置。
[４３]  前記第１のフラグメントのピクチャグループに達するまでの前記第１の表現のデータを復号するための手段と、前記第１のフラグメントの前記ピクチャグループに達した後に、前記選択されたランダムアクセスポイントにおいて開始する前記第２の表現の前記データを復号するための手段とをさらに備え、前記ピクチャグループが、前記選択されたランダムアクセスポイントのプレゼンテーション時間値よりも前の開始プレゼンテーション時間値と、前記選択されたランダムアクセスポイントの前記プレゼンテーション時間値よりも後の終了プレゼンテーション時間値とを有する第１のピクチャを備える、[４２]に記載の装置。
[４４]  実行されると、ビデオシーケンスの第１の表現と前記ビデオシーケンスの第２の表現との間で切り替えるための遅延を示す遅延値を受信することと、ストリーミングネットワークプロトコルに従ってビデオシーケンスの前記第１の表現からのデータを要求することと、前記第１の表現から前記第２の表現に切り替えることを決定したことに応答して、前記遅延値に基づいて前記第１の表現からのある量のデータをバッファすることと、前記第１の表現からの前記データ量をバッファした後に、前記ストリーミングネットワークプロトコルに従って前記ビデオシーケンスの第２の表現からのデータを要求することとを、ビデオデータを受信するためのデバイスのプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
[４５]  前記第１の表現の前記データを要求するより前に、前記第１の表現の初期化セグメントを要求することを前記プロセッサに行わせる命令をさらに備え、前記第２の表現からの前記データを要求するための前記手段が、前記第２の表現の初期化セグメントを要求することなしに前記第２の表現からの前記データを要求するための手段を備える、[４４]に記載のコンピュータプログラム製品。
[４６]  ネットワーク状態の変化を検出することと、前記ネットワーク状態の前記変化に基づいて、前記第１の表現から前記第２のネットワーク表現に切り替えることを決定することとを前記プロセッサに行わせる命令をさらに備える、[４４]に記載のコンピュータプログラム製品。
[４７]  前記第１の表現と前記第２の表現とが時間的に整合されているかどうかを示す情報を受信することと、前記情報に基づいて前記第２の表現のランダムアクセスポイントを選択することとを前記プロセッサに行わせる命令をさらに備える、[４４]に記載のコンピュータプログラム製品。
[４８]  前記第１の表現と前記第２の表現とが時間的に整合されているとき、前記ランダムアクセスポイントを選択することを前記プロセッサに行わせる命令が、前記第１の表現の前記バッファされたデータのサンプルのプレゼンテーション時間値に続く最も早いプレゼンテーション時間値を有する前記第１の表現の第１のランダムアクセスポイントの位置を特定することと、前記第１のランダムアクセスポイントと同じ前記プレゼンテーション時間値を有する前記第２の表現の第２のランダムアクセスポイントを選択することとを備え、前記第２の表現からの前記データを要求することが、前記第２のランダムアクセスポイントを備える、前記第２の表現のフラグメントを要求することを備える、[４７]に記載のコンピュータプログラム製品。
[４９]  前記第１の表現と前記第２の表現とが時間的に整合されていないとき、前記第１の表現の前記バッファされたデータの少なくとも１つのサンプルのプレゼンテーション時間値よりも後のプレゼンテーション時間値を有する前記第２の表現のランダムアクセスポイントを選択することを前記プロセッサに行わせる命令をさらに備え、前記量のデータをバッファすることを前記プロセッサに行わせる前記命令が、前記選択されたランダムアクセスポイントの前記プレゼンテーション時間値よりも前の開始プレゼンテーション時間値と、前記選択されたランダムアクセスポイントの前記プレゼンテーション時間値よりも後の終了プレゼンテーション時間値とを有する第１のフラグメントまでの前記第１の表現のデータを要求し、記憶することを前記プロセッサに行わせる前記命令を備え、前記第２の表現からのデータを要求することを前記プロセッサに行わせる前記命令が、前記選択されたランダムアクセスポイントを備える前記第２の表現の第２のフラグメントにおいて開始する前記第２の表現のデータを要求することを前記プロセッサに行わせる命令を備える、[４７]に記載のコンピュータプログラム製品。
[５０]  前記第１のフラグメントのピクチャグループに達するまでの前記第１の表現のデータを復号することと、前記第１のフラグメントの前記ピクチャグループに達した後に、前記選択されたランダムアクセスポイントにおいて開始する前記第２の表現の前記データを復号することとを前記プロセッサに行わせる命令をさらに備え、前記ピクチャグループが、前記選択されたランダムアクセスポイントのプレゼンテーション時間値よりも前の開始プレゼンテーション時間値と、前記選択されたランダムアクセスポイントの前記プレゼンテーション時間値よりも後の終了プレゼンテーション時間値とを有する第１のピクチャを備える、[４９]に記載のコンピュータプログラム製品。
【図１】
0005559430.tif 000004
【図２】
0005559430.tif 000005
【図３】
0005559430.tif 000006
【図４】
0005559430.tif 000007
【図５Ａ】
0005559430.tif 000008
【図５Ｂ】
0005559430.tif 000009
【図６】
0005559430.tif 000010
【図７】
0005559430.tif 000011
【図８】
0005559430.tif 000012