(57)【要約】【課題】  エンコードされたデジタルメディアストリームの逆提示を容易にする。【解決手段】  ＢＯＦのデコードされた基準フレームを順方向にデコードして記憶し、エンコードされた状態でＢＯＦの非基準フレームを記憶し、シーケンス最後のフレームから開始して逆順で非基準フレーム及び少なくとも隣接する１つの基準フレームを含むサブシーケンス毎に・逆順で次に提示されるフレームが基準フレームである場合にその基準フレームを提示し、・非基準フレームの次に提示されるサブシーケンスを生成し、・シーケンスと逆順で生成されたばかりの非基準フレームを提示し、・提示されたばかりの非基準フレームを記憶するメモリを解放し、・逆順で次に提示されるフレームが基準フレームである場合にその基準フレームを提示することを繰り返し、最初のフレームに達するまで繰り返してシーケンス最初の基準フレームを提示する。【選択図】  図２
2006025401.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実行される時に、メディアストリームのｂｌｏｃｋ−ｏｆ−ｆｒａｍｅｓ（ＢＯＦ）の逆提示を容易にする方法を実行するコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記ＢＯＦは、定義された順方向提示順序を有するフレームのシーケンスであり、前記フレームのそれぞれは、基準フレームまたは非基準フレームのいずれかとして分類され、基準フレームは、前記ＢＯＦ内の少なくとも１つの他のフレームがそれ自体のエンコードされたデータをデコードするための基準として使用するデータを有するフレームであり、非基準フレームは、前記ＢＯＦ内の別のフレームによって参照されないエンコードされたデータを有するフレームであり、前記方法は、
メディアストリームのＢＯＦを取得することと、
前記ＢＯＦの１つまたは複数のデコードされた基準フレームを順方向にデコードし、記憶することと、
そのデータをまだエンコードされた状態で、前記ＢＯＦの非基準フレームを記憶することと、
前記シーケンスの最後のフレームから開始して、前記シーケンスと逆の順序で、非基準フレームおよび少なくとも隣接する１つの基準フレームを含むサブシーケンスごとに
・  逆の順序で次に提示されるフレームが基準フレームである場合に、前記ＢＯＦ内のその基準フレームを提示することと、
・  前記ＢＯＦ内の非基準フレームの次に提示されるサブシーケンスを生成することと、
・  前記シーケンスと逆の順序で、生成されたばかりの非基準フレームの１つまたは複数を提示することと、
・  提示されたばかりの非基準フレームを記憶するメモリを解放することと、
・  逆の順序で次に提示されるフレームが基準フレームである場合に、前記ＢＯＦ内のその基準フレームを提示することと
を繰り返し、最初のフレームに達するまで前記繰り返しを継続することと、
前記シーケンスの最初の基準フレームを提示することと
を備えることを特徴とするコンピュータ可読媒体。
【請求項２】
前記生成されたばかりの非基準フレームのそれぞれの前記提示は、前記次に提示されるサブシーケンスの各非基準フレームの生成の後に行われることを特徴とする請求項１に記載の媒体。
【請求項３】
前記解放は、前記提示されたばかりの非基準フレームが参照するすべての基準フレームの提示の後に行われることを特徴とする請求項１に記載の媒体。
【請求項４】
１つまたは複数の提示されたばかりの基準フレームを記憶するメモリを解放することをさらに備えることを特徴とする請求項１に記載の媒体。
【請求項５】
前記方法は、さらに、
シーケンス内の複数のＢＯＦからなるスーパーＢＯＦを受け取ることであって、各ＢＯＦは、１つのキーフレームを有し、前記キーフレームは、デコードに関して他のフレームに依存しない、受け取ることと、
前記スーパーＢＯＦを複数のＢＯＦに分解することと、
請求項１に記載のステップを繰り返すことであって、前記複数のＢＯＦの異なる１つが、前記スーパーＢＯＦ内のＢＯＦの前記シーケンスと逆の順序で前記取得するステップに供給される、繰り返すことと
を備えることを特徴とする請求項１に記載の媒体。
【請求項６】
前記方法は、さらに、
シーケンス内の複数のＢＯＦからなるスーパーＢＯＦを受け取ることであって、各ＢＯＦは、デコードに関して他のフレームに依存しない、前記シーケンスの始めの１つのキーフレームとデコードに関して他のフレームに依存しないが次の論理ＢＯＦの一部とすることができる前記シーケンスの終りの１つのキーフレームとを含む、受け取ることと、
前記スーパーＢＯＦを複数のＢＯＦに分解することと、
請求項１に記載のステップを繰り返すことであって、前記複数のＢＯＦの異なる１つが、前記スーパーＢＯＦ内のＢＯＦの前記シーケンスと逆の順序で前記取得するステップに供給される、繰り返すことと
を備えることを特徴とする請求項１に記載の媒体。
【請求項７】
メディアストリームを受け取るように構成された入力デバイスと、
提示されるフレームを表示するように構成されたディスプレイデバイスと、
請求項１に記載の媒体と
を備えることを特徴とするコンピューティングデバイス。
【請求項８】
コンピュータによって実行される時に、メディアストリームのｂｌｏｃｋ−ｏｆ−ｆｒａｍｅｓ（ＢＯＦ）の逆提示を容易にする方法を実行するコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記ＢＯＦは、定義された順方向提示順序を有するフレームのシーケンスであり、前記フレームのそれぞれは、基準フレームまたは非基準フレームのいずれかとして分類され、基準フレームは、前記ＢＯＦ内の少なくとも１つの他のフレームがそれ自体のエンコードされたデータをデコードするための基準として使用するデータを有するフレームであり、非基準フレームは、前記ＢＯＦ内の別のフレームによって参照されないエンコードされたデータを有するフレームであり、前記方法は、
メディアストリームのＢＯＦを取得することと、
前記ＢＯＦの１つまたは複数の基準フレームを順方向にデコードすることと、
前記ＢＯＦの前記デコードされた基準フレームを記憶することと、
そのデータをまだエンコードされた状態で前記ＢＯＦの非基準フレームを記憶することと、
前記シーケンスと逆の順序で、非基準フレームを選択的にデコードすることと、
逆の順序で前記シーケンスを提示することと、
既に提示された非基準フレームを記憶するメモリを解放することと
を備えることを特徴とするコンピュータ可読媒体。
【請求項９】
前記方法は、さらに、前記シーケンスと逆の順序で基準フレームを選択的にデコードすることを備えることを特徴とする請求項８に記載の媒体。
【請求項１０】
前記非基準フレームのすべてより少ないものは、前記ＢＯＦのフレームのいずれかが逆の順序で提示される前にデコードされることを特徴とする請求項８に記載の媒体。
【請求項１１】
前記解放は、さらに、前記提示されたばかりの基準フレームを参照するすべての非基準フレームの提示の後に、提示されたばかりの非基準フレームを記憶するメモリを解放することを含むことを特徴とする請求項８に記載の媒体。
【請求項１２】
前記解放は、さらに、前記提示されたばかりの基準フレームを参照するすべての非基準フレームの提示の後に、提示されたばかりの非基準フレームを記憶するメモリを解放することからなり、前記方法は、さらに、これから提示されるフレームの後続のデコードで助けるためにそのようなメモリを使用することを備えることを特徴とする請求項８に記載の媒体。
【請求項１３】
前記方法は、さらに、
シーケンス内の複数のＢＯＦからなるスーパーＢＯＦを受け取ることであって、各ＢＯＦは、１つのキーフレームを有し、前記キーフレームは、デコードに関して他のフレームに依存しない、受け取ることと、
前記スーパーＢＯＦを複数のＢＯＦに分解することと、
請求項８に記載のステップを繰り返すことであって、前記複数のＢＯＦの異なる１つが、前記スーパーＢＯＦ内のＢＯＦの前記シーケンスと逆の順序で前記取得するステップに供給される、繰り返すことと
を備えることを特徴とする請求項８に記載の媒体。
【請求項１４】
メディアストリームを受け取るように構成された入力デバイスと、
提示されるフレームを表示するように構成されたディスプレイデバイスと、
請求項８に記載の媒体と
を備えることを特徴とするコンピューティングデバイス。
【請求項１５】
コンピュータによって実行される時に、メディアストリームのｂｌｏｃｋ−ｏｆ−ｆｒａｍｅｓ（ＢＯＦ）の逆提示を容易にする方法を実行するコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記ＢＯＦは、キーフレームおよびそれに続く、生成に関してシーケンス内の先行する１つまたは複数のフレームに漸進的に依存する複数のエンコードされたフレームを含む、定義された順方向提示順序を有するフレームの前記シーケンスであり、前記方法は、
メディアストリームのＢＯＦを取得することと、
前記ＢＯＦの終りから始めて、提示される前記ＢＯＦの非キーフレームのすべてについて、
これから提示されるフレームの１つまたは複数を選択することと、
逆の順序で、どのフレームがこれから提示されるフレームの次であるかを判定することと、
次に提示されるフレームが生成されており、メモリに記憶されている場合に、前記次に提示されるフレームを提示することと、
そうでない場合に、
・  前記次に提示されるフレームの生成に必要であるが、まだ前記メモリに記憶されていない、前記次に提示されるフレームに先行するフレームを生成することと、
・  前記生成中に、前記選択によって選択された前記生成されたフレームを記憶することと、
・  前記次に提示されるフレームをさらに生成することと、
・  前記次に提示されるフレームを提示することと
を繰り返すことと、
前記ＢＯＦの前記キーフレームが提示されるまで、条件に応じて、前記選択の動作、前記判定の動作、および前記〜の場合に〜そうでない場合に〜の条件動作を繰り返すことと
を備えることを特徴とするコンピュータ可読媒体。
【請求項１６】
前記生成およびさらなる生成は、それ自体のデータおよび前記ＢＯＦ内の他のフレームのデータに基づいてフレームをデコードすることを含むことを特徴とする請求項１５に記載の媒体。
【請求項１７】
前記記憶は、前記選択によって選択された前記生成されたフレームだけを記憶することを含むことを特徴とする請求項１５に記載の媒体。
【請求項１８】
前記提示の後に、前記方法が、さらに、前記提示されたばかりのフレームを記憶するメモリを解放することを備えることを特徴とする請求項１５に記載の媒体。
【請求項１９】
前記方法は、さらに、
そのデータがまだエンコードされた状態で前記ＢＯＦの非基準フレームを記憶することであって、非基準フレームは、前記ＢＯＦ内の別のフレームによって参照されないエンコードされたデータを有するフレームである、記憶することと、
前記シーケンスと逆の順序で、非基準フレームを選択的にデコードすることと
を備えることを特徴とする請求項１５に記載の媒体。
【請求項２０】
前記方法は、さらに、
そのデータがまだエンコードされた状態で前記ＢＯＦの非基準フレームを記憶することであって、非基準フレームは、前記ＢＯＦ内の別のフレームによって参照されないエンコードされたデータを有するフレームである、記憶することと、
前記シーケンスと逆の順序で、基準フレームおよび非基準フレームを選択的にデコードすることと
を備えることを特徴とする請求項１５に記載の媒体。
【請求項２１】
前記選択は、
前記メモリの使用可能なフレームバッファの個数ｍを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
選択のために実質的に約ｍ個のフレームを識別するためにバイナリ副分割を実行することと
を含むことを特徴とする請求項１５に記載の媒体。
【請求項２２】
前記選択は、
前記メモリの使用可能なフレームバッファの個数ｍを判定することであって、各フレームバッファは、デコードされた基準フレームを記憶することができる、判定することと、
前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
選択のために実質的に約ｍ個のフレームを識別するためにバイナリ副分割を実行することと
を含むことを特徴とする請求項１５に記載の媒体。
【請求項２３】
前記選択することは、
前記メモリの使用可能なフレームバッファの個数ｍを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
選択のためにｍ個以下のフレームを識別するためにバイナリ副分割を実行することと
を含むことを特徴とする請求項１５に記載の媒体。
【請求項２４】
前記選択することは、
前記メモリの使用可能なフレームバッファの個数ｍを判定することであって、各フレームバッファは、デコードされた基準フレームを記憶することができる、判定することと、
前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
選択のためにｍ個以下のフレームを識別するためにバイナリ副分割を実行することと
を含むことを特徴とする請求項１５に記載の媒体。
【請求項２５】
前記選択することは、
前記メモリの使用可能なフレームバッファの個数ｍを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
選択のために実質的に約ｍ個のフレームを識別するために再帰副分割を実行することであって、フレームの前記選択は、前記シーケンスの残りのこれから提示されるフレームの終りに向かってより重くなる重みを付けられる、実行することと
を含むことを特徴とする請求項１５に記載の媒体。
【請求項２６】
前記選択することは、
前記メモリの使用可能なフレームバッファの個数ｍを判定することであって、各フレームバッファは、デコードされた基準フレームを記憶することができる、判定することと、
前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
選択のために実質的に約ｍ個のフレームを識別するために再帰副分割を実行することであって、フレームの前記選択は、前記シーケンスの残りのこれから提示されるフレームの終りに向かってより重くなる重みを付けられる、実行することと
を含むことを特徴とする請求項１５に記載の媒体。
【請求項２７】
前記選択することは、
前記メモリの使用可能なフレームバッファの個数ｍを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
選択のために実質的に約ｍ個のフレームを識別するために再帰副分割を実行することであって、フレームの前記選択は、前記シーケンスの残りのこれから提示されるフレームの終りに向かってより重くなる重みを付けられ、前記フレームの前記選択は、逆転された算術シーケンスに比例する間隔を作る、実行することと
を含むことを特徴とする請求項１５に記載の媒体。
【請求項２８】
前記選択することは、
前記メモリの使用可能なフレームバッファの個数ｍを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
前記シーケンスの残りのこれから提示されるフレームをマッピングすることと、
選択のためにｍ個以下のフレームを識別するためにメモリに記憶された１つまたは複数の選択テーブルを参照することと
を含むことを特徴とする請求項１５に記載の媒体。
【請求項２９】
前記選択することは、
前記メモリの使用可能なフレームバッファの個数ｍを判定することであって、各フレームバッファは、デコードされた基準フレームを記憶することができる、判定することと、
前記シーケンスの残りのこれから提示されるフレームをマッピングすることと、
選択のためにｍ個以下のフレームを識別するためにメモリに記憶された１つまたは複数の選択テーブルを参照することと
を含むことを特徴とする請求項１５に記載の媒体。
【請求項３０】
前記方法は、さらに、
シーケンス内の複数のＢＯＦからなるスーパーＢＯＦを受け取ることであって、各ＢＯＦは、１つのキーフレームを有し、前記キーフレームは、デコードに関して他のフレームに依存しない、受け取ることと、
前記スーパーＢＯＦを複数のＢＯＦに分解することと、
請求項１５に記載のステップを繰り返すことであって、前記複数のＢＯＦの異なる１つが、前記スーパーＢＯＦ内のＢＯＦの前記シーケンスと逆の順序で前記取得するステップに供給される、繰り返すことと
を備えることを特徴とする請求項１５に記載の媒体。
【請求項３１】
フレームをデコードすることのコストを計算することをさらに備えることを特徴とする請求項１５に記載の媒体。
【請求項３２】
キーフレームおよびＢＯＦの組の漸進的に依存するフレームのコストを計算することをさらに備えることを特徴とする請求項１５に記載の媒体。
【請求項３３】
メディアストリームを受け取るように構成された入力デバイスと、
提示されるフレームを表示するように構成されたディスプレイデバイスと、
請求項１５に記載の媒体と
を備えることを特徴とするコンピューティングデバイス。
【請求項３４】
コンピュータによって実行される時に、メディアストリームのｂｌｏｃｋ−ｏｆ−ｆｒａｍｅｓ（ＢＯＦ）の逆提示を容易にする方法を実行するコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記ＢＯＦは、キーフレームおよびそれに続く、デコードに関してシーケンス内の先行する１つまたは複数のフレームに漸進的に依存する複数のエンコードされたフレームを含む、定義された順方向提示順序を有するフレームの前記シーケンスであり、前記方法は、
メディアストリームのＢＯＦを取得することと、
前記ＢＯＦの終りから始めて、提示される前記ＢＯＦの非キーフレームのすべてについて、
・  逆の順序で、次に提示されるフレームを提示することと、
・  前記次に提示されるフレームの提示の前に、前記次に提示されるフレームのデコードに必要な、前記次に提示されるフレームに先行するフレームを順方向にデコードすることと、
・  前記デコードされたフレームのどれをメモリに記憶するかを選択することであって、前記選択される生成されたフレームは、前記ＢＯＦの前記フレームのすべてより少ない、選択することと、
・  前記選択されたデコードされたフレームを記憶することと
を繰り返すことと、
前記キーフレームをさらに提示することと
を備えることを特徴とするコンピュータ可読媒体。
【請求項３５】
前記選択されるデコードされたフレームは、基準フレームであることを特徴とする請求項３４に記載の媒体。
【請求項３６】
既にデコードされ、前記メモリに記憶されたフレームは、前記順方向デコードから除外されることを特徴とする請求項３４に記載の媒体。
【請求項３７】
既にデコードされ、前記メモリに記憶されたフレームは、前記順方向デコードから除外され、これらの除外されるフレームは、前記選択によって選択された前記フレームの中にある可能性があることを特徴とする請求項３４に記載の媒体。
【請求項３８】
前記提示の後に、前記方法は、さらに、前記提示されたばかりのフレームを記憶するメモリを解放することを備えることを特徴とする請求項３４に記載の媒体。
【請求項３９】
前記メモリは、フレームのデコードをさらに助けるのに使用されることを特徴とする請求項３４に記載の媒体。
【請求項４０】
前記方法は、さらに、
そのデータがまだエンコードされた状態で前記ＢＯＦの非基準フレームを記憶することであって、非基準フレームは、前記ＢＯＦ内の別のフレームによって参照されないエンコードされたデータを有するフレームである、記憶することと、
前記シーケンスと逆の順序で、非基準フレームを選択的にデコードすることと
を備えることを特徴とする請求項３４に記載の媒体。
【請求項４１】
前記選択されるデコードされたフレームは、基準フレームであり、前記方法は、さらに、
そのデータがまだエンコードされた状態で前記ＢＯＦの非基準フレームを記憶することであって、非基準フレームは、前記ＢＯＦ内の別のフレームによって参照されないエンコードされたデータを有するフレームである、記憶することと、
前記シーケンスと逆の順序で、非基準フレームを選択的にデコードすることと
を備えることを特徴とする請求項３４に記載の媒体。
【請求項４２】
前記選択することは、
前記メモリの使用可能なフレームバッファの個数ｍを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
選択のために実質的に約ｍ個のフレームを識別するために再帰副分割を実行することと
を含むことを特徴とする請求項３４に記載の媒体。
【請求項４３】
前記選択することは、
前記メモリの使用可能なフレームバッファの個数ｍを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
選択のためにｍ個以下のフレームを識別するために再帰副分割を実行することと
を含むことを特徴とする請求項３４に記載の媒体。
【請求項４４】
前記選択することは、
前記メモリの使用可能なフレームバッファの個数ｍを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
選択のために実質的に約ｍ個のフレームを識別するために再帰副分割を実行することであって、フレームの前記選択は、前記シーケンスの残りのこれから提示されるフレームの終りに向かってより重くなる重みを付けられる、実行することと
を含むことを特徴とする請求項３４に記載の媒体。
【請求項４５】
前記選択することは、
前記メモリの使用可能なフレームバッファの個数ｍを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
選択のために実質的に約ｍ個のフレームを識別するために再帰副分割を実行することであって、フレームの前記選択は、前記シーケンスの残りのこれから提示されるフレームの終りに向かってより重くなる重みを付けられ、前記フレームの前記選択は、逆転された算術シーケンスに比例する間隔を作る、実行することと
を含むことを特徴とする請求項３４に記載の媒体。
【請求項４６】
前記選択することは、
前記メモリの使用可能なフレームバッファの個数ｍを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
選択のためにｍ個以下のフレームを識別するためにメモリに記憶された１つまたは複数の選択テーブルを参照することと
を含むことを特徴とする請求項３４に記載の媒体。
【請求項４７】
前記方法は、さらに、
シーケンス内の複数のＢＯＦからなるスーパーＢＯＦを受け取ることであって、各ＢＯＦは、１つのキーフレームを有する、受け取ることと、
前記スーパーＢＯＦを複数のＢＯＦに分解することと、
請求項３４に記載のステップを繰り返すことであって、前記複数のＢＯＦの異なる１つが、前記スーパーＢＯＦ内のＢＯＦの前記シーケンスと逆の順序で前記取得するステップに供給される、繰り返すことと
を備えることを特徴とする請求項３４に記載の媒体。
【請求項４８】
メディアストリームを受け取るように構成された入力デバイスと、
提示されるフレームを表示するように構成されたディスプレイデバイスと、
請求項３４に記載の媒体と
を備えることを特徴とするコンピューティングデバイス。
【請求項４９】
前記方法は、さらに、
フレームの組を受け取ることであって、フレームのデコードは、他のフレームの一部に対する依存性を有する、受け取ることと、
前記メモリの使用可能なフレームバッファまたはフレームバッファの一部の個数ｍを判定することであって、各フレームバッファの一部は、デコードされたフレームの一部を記憶することができる、判定することと、
前記シーケンスの残りの完了したこれから提示されるフレームの一部をマッピングすることと、
選択のためにｍ個以下のフレーム部分を識別するために、メモリに記憶された１つまたは複数の選択テーブルを参照することまたは選択ストラテジを使用することと
を備えることを特徴とする請求項３４に記載の媒体。
【請求項５０】
前記方法は、さらに、
フレームの一部は、スライス、マクロブロック、サブマクロブロック、またはサブマクロブロックの一部を含むこと
を含むことを特徴とする請求項４９に記載の媒体。
【請求項５１】
前記提示の後に、前記方法は、さらに、前記提示されたばかりのフレームを記憶するメモリを解放することを備えることを特徴とする請求項４９に記載の媒体。
【請求項５２】
フレームをデコードすることのコストを計算することをさらに備えることを特徴とする請求項３４に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にはデジタルマルチメディアテクノロジに関する。
【背景技術】
【０００２】
処理テクノロジおよびストレージテクノロジが進歩するにつれて、多数のパーソナルコンピューティングシステム（例えば、パーソナルコンピュータ、セットトップボックスなど）が、現在、マルチメディアオブジェクトを受け取り、処理し、レンダリングする能力を有する。そのようなオブジェクトは、オーディオコンテンツ、グラフィカルコンテンツ、および／またはビデオコンテンツの組合せを含むマルチメディアコンテンツを有する。マルチメディアコンテンツは、例えば、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）上、デジタル多用途ディスク読み出し専用メモリ（ＤＶＤ−ＲＯＭ）上、通信的に結合されたデータネットワーク（例えばインターネット）を介して、および類似物を含む複数の形のいずれかでコンピューティングシステムに配信することができる。
【０００３】
そのようなマルチメディアコンテンツを正確に表すのに必要なデータの量に起因して、通常、そのようなコンテンツは、エンコードされ、圧縮された形でコンピューティングシステムに配信される。提示のためにオリジナルコンテンツを再生するために、マルチメディアコンテンツを、提示の前に圧縮解除し、デコードしなければならない。ここで、提示に、ディスプレイデバイスおよび／またはオーディオデバイスにマルチメディアコンテンツを通信することが含まれる。
【０００４】
配布のためのエンコードされたマルチメディアコンテンツのフォーマットおよび意味を定義する複数のマルチメディア標準規格が、開発されてきた。国際標準化機構（ＩＳＯ）および国際電気標準会議（ＩＥＣ）のＭｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）、および国際電気通信連合（ＩＴＵ）の援助を受けるＶｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）などの組織が、複数のマルチメディアコーディング標準規格（例えば、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、Ｈ．２６１、Ｈ．２６３、および類似物）を開発した。
【０００５】
単純に割り切りすぎた言い方では、エンコーディングプロセスは、メディアコンテンツから時間的冗長性および空間的冗長性を除去し、これによって、メディアコンテンツを表すのに必要なデータの量を減らし、その結果、そのようなメディアコンテンツを記憶し、かつ／または伝送するための帯域幅の重荷を減らす。エンコーディングプロセスの例に、エントロピデコード、動き補償予測、逆量子化、逆変換、および逆変換された結果の予測への追加が含まれる。
【０００６】
逆に、デコーディングプロセスは、簡単に割り切りすぎた言い方では、通常、エンコーディングプロセスの逆である。
【０００７】
レンダリングに、通常は、デジタルアナログ変換（フィルタリングを伴う）という追加ステップが含まれる。これは、オリジナルのアナログメディア信号の近似表現を生成する。
【０００８】
本明細書での「メディアストリーム」は、圧縮およびエンコードを行うのに全般的に使用可能な機構に従って圧縮され、エンコードされたマルチメディアオブジェクト（オーディオコンテンツおよび／またはビデオコンテンツを含む）である。さらに、そのようなメディアストリームは、デコードおよびレンダリングを行うのに全般的に使用可能な機構に従ってデコードされ、レンダリングされることが意図されている。
【０００９】
一般性を失わずに、時間的冗長性または空間的冗長性を減らす同一の技法を、類似する構造を有するすべてのメディアストリームに適用することができる。例えば、多くのオーディオ圧縮フォーマットは、オリジナルの圧縮されていないストリームの近似を再生成するための、キーフレームとそれに続く変更データを有する。
【００１０】
多数の様々なビデオストリームデータフォーマットがある。例えば、Ｈ．２６３フォーマット、ＭＰＥＧ−１フォーマット、ＭＰＥＧ−２フォーマット、ＭＰＥＧ−４  Ｖｉｓｕａｌフォーマット、Ｈ．２６４／ＡＶＣフォーマット、およびＤＶフォーマットである。
【００１１】
多数の様々なオーディオストリームデータフォーマットがある。例えば、ＤＴＳオーディオまたはＭＬＰオーディオである。
【００１２】
ＭＰＥＧ−２／Ｈ．２６２
優勢なデジタルビデオ圧縮伝送フォーマットは、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−Ｘ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）標準規格およびＩＴＵ−Ｔ  ＶＣＥＧ  Ｈ．２６Ｘ（Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）標準規格を代表とする、ブロックベース動き補償ハイブリッドビデオコーダと称するファミリからのものである。この標準規格のファミリは、デジタル圧縮フォーマットでのオーディオビジュアル情報（例えば、映画、ビデオ、音楽など）のコーディングに使用される。
【００１３】
説明の便宜上、ＭＰＥＧ−２ビデオストリーム（Ｈ．２６２ビデオストリームとも称する）を、本明細書で全般的に述べ、説明する。というのは、これが、普通のビデオコーディング手法を代表する構造を有するからである。しかし、他のそのようなデジタルビデオ圧縮伝送フォーマットが存在し、これらを使用できることを、当業者は理解し、諒解するであろう。
【００１４】
ＭＰＥＧ−２フォーマットを、一般に「順方向デコード」フォーマットと呼ぶことができる。ＭＰＥＧフォーマットの例の表現を、全般的に図１の１０に示す。各ビデオシーケンスは、通常はＧｒｏｕｐ  ｏｆ  Ｐｉｃｔｕｒｅｓ（または「ＧＯＰ」）と呼ばれるフレームのシーケンスからなる。ＧＯＰは、ピクチャまたはフレームのシーケンスからなる。ＧＯＰデータは、Ｉフレーム、Ｐフレーム、およびＢフレームのシーケンスとして圧縮され、ここで、
・  Ｉフレーム（すなわちイントラ−フレーム）は、独立の開始イメージ（ＪＰＥＧイメージに類似するフォーマットで圧縮される）である。Ｉフレームまたは「キーフレーム」（Ｉフレーム１２など）は、単一のイメージとしてエンコードされ、過去のフレームまたは将来のフレームへの参照はない。Ｉフレームは、ＭＰＥＧ−２では「基準フレーム」と考えられる。というのは、その内容を、デコード順序で後続の１つのＰフレームまたはデコード順序で後続の複数のＢフレームのデコード処理に使用することができるからである。 
・  Ｐフレーム（すなわち、順方向予測フレーム）は、前のＩフレームまたはＰフレームからの長方形（マクロブロックと呼ぶ）を移動し、その後、（エンコーダによって指示される場合に）残差と称する「訂正」を適用することによって計算される。後続のＰフレーム（Ｐフレーム１８など）は、過去の基準フレーム（前のＩフレームまたはＰフレームなど）に関してエンコードされる。Ｐフレームは、基準フレームに関する変化を含むという点で、「デルタフレーム」と考えることもできる。Ｐフレームは、ＭＰＥＧ−２では「基準フレーム」と考えることもできる。というのは、その内容が、デコード順序で後続の１つのＰフレームまたはデコード順序で後続の複数のＢフレームのデコード処理に使用することができるからである。 
・  ０個以上のＢフレーム（すなわちフレーム１４および１６などの両方向予測フレーム）は、隣接するＩフレームまたはＰフレームからの長方形とそれに続く（エンコーダによって指示される場合に）訂正係数の組合せによって形成される。複数のＢフレームが、基準フレーム（ＩフレームまたはＰフレームのいずれかであるフレーム）の対の間に位置することができる。ＭＰＥＧ−２では、Ｂフレームが、基準フレームと呼ばれない。というのは、これらが、デコード順序で後続のフレームのデコードの基準として使用されないからである。
【００１５】
ＧＯＰ構造は、ストリーム内のランダムアクセスを援助することを意図されたものである。ＧＯＰは、通常、Ｉフレームから始まる限り任意のサイズとすることができる、独立にデコード可能な単位である。
【００１６】
ＭＰＥＧ−２フォーマットに関連する１つの問題は、普通の表示順序の逆でデータを再生できることに関係する。順方向のデータの再生は、通常は問題ではない。というのは、このフォーマット自体が、通常はまずＩフレームをデコードし、その後、ＧＯＰ内の他のフレームに移らなければならないことを意味する順方向デコードであるからである。しかし、逆方向でのデータの再生は、よりむずかしい。というのは、ＧＯＰが、生来的に、単純な逆方向デコードに抵抗するからである。
【００１７】
類似する課題が、値の開始ベクトル（すなわち、オーディオチャネルごとに１つ）とそれに続くデルタフレームとして圧縮されるオーディオデータに存在する。
【００１８】
ＤＶＤ
通常、イメージが、ＤＶＤなどのディスクに記録される時に、コンテンツが、実際には、事前に決定される時間期間（通常は約１／２秒の単位またはｖｉｄｅｏ  ｏｂｊｅｃｔ  ｂａｓｉｃ  ｕｎｉｔ（「ＶＯＢＵ」））を含む小さい単位に分割される。このフォーマットの利益は、ビデオを再生する時に、ビデオユニットを介して１つずつ進行できることである。ビデオの任意の部分にジャンプすることが望まれる場合に、興味のあるビデオユニットに単純にジャンプすることができ、オーディオおよびビデオが同期化される。すべてのストリームが同期化される位置を、「クリーンポイント」と呼ぶ。したがって、ビデオユニットおよびオーディオユニットが圧縮される時に、これらは、正確に同一の時にレンダリングされる単位に圧縮される、すなわち、オーディオとビデオの間にスキューがない。
【００１９】
ＭＰＥＧ−２の文脈内で語られる時のＩフレームへのすべての言及を、他のデータフォーマットのキーフレームに拡張することができる。用語Ｉフレームは、ＭＰＥＧ−２の文脈の外で語られる時に、キーフレームと同義である。
【００２０】
例示的なメディアストリームレンダリングシステム
図２に、ＤＶＤなどのメディアストリームソースからデータをレンダリングすることができる例示的なシステム２００を示す。システム２００に、ＤＶＤ  ２０６からデータを読み取るソースコンポーネント２０４と通信するアプリケーション２０２が含まれる。ＤＶＤから読み取られるデータに、一緒にエンコードされ、多重化されたオーディオデータおよびビデオデータが含まれる。
【００２１】
ソースがＤＶＤからデータを読み取る時に、ソースは、データパケットからタイムスタンプを取り出し、このタイムスタンプが、レンダリングのためにパケットを同期化し、スケジューリングするのに使用される。次に、パケットが、デマルチプレクサ（ｄｅｍｕｘ）２０８に供給され、デマルチプレクサ２０８は、パケットを別々の構成部分すなわち、オーディオパケット、ビデオパケット、および存在する場合にサブピクチャパケットに分割する。
【００２２】
次に、パケットが、デマルチプレクサによって、ビデオデコーダ２１０（ビデオパケットのデコード用）、オーディオデコーダ２１２（オーディオパケットのデコード用）、およびサブピクチャデコーダ２１４（サブピクチャパケットのデコード用）などの関連するデコーダに供給される。パケットのそれぞれが、関連するタイミング情報を有し、このタイミング情報は、パケットのコンテンツがいつレンダリングされると想定されるかを定義する。これらのパケットは、１つのＧＯＰ（ＭＰＥＧに関して上で説明したもの）とすることができる。
【００２３】
次に、デコーダは、それに関連するパケットを解凍し、個々のデータサンプルまたはパケット（そのパケットのタイムスタンプを含む）を、ビデオレンダラ２１６およびオーディオレンダラ２１８などの適当なレンダラに送る。これらのデコーダのそれぞれが、通常、デコードされたパケット（またはその一部）を一時的に記憶するキャッシュを有する。通常、キャッシュは、少なくとも、他のフレームからのデータを参照するフレームデコードに対処するのに十分に大きい。
【００２４】
システム２００には、通常、グローバルクロック２２０も含まれ、このグローバルクロック２２０は、様々なレンダラによって、そのタイムスタンプがグローバルクロックによって示される時刻と一致する一定のデータサンプルをレンダリングする時を確かめるのに使用される。
【００２５】
逆再生
ここで、ユーザが、アプリケーション２０２を介して、コンテンツを逆の順序で見ることを望むことを示すと仮定する。これを、「逆再生」、「逆方向再生」、「リワインド」、「逆方向スキャン」、「リバーストリックプレイ」、または「リバーススキャン」と呼ぶことができる。
【００２６】
ＧＯＰのフレームは、一般に同一の方向（本明細書では「順」方向と呼ぶ）で再生され、提示されるように設計されている。これは、ＧＯＰのフレームがエンコードされた方向と同一の方向である。しかしＧＯＰのフレームがエンコードされた実際の特定の順序は、通常は、その提示の実際の特定の順序と異なる。
【００２７】
Ｂフレーム（図１のフレーム１４および１６など）をデコードするために、前のＩフレーム／Ｐフレームおよび次のＩフレーム／Ｐフレームが、既に存在しなければならない。例えば、ＧＯＰを、この順序Ｉ1Ｂ2Ｂ3Ｐ4Ｂ5Ｐ6で提示することができるが、これは、順序Ｉ1Ｐ4Ｂ2Ｂ3Ｐ6Ｂ5でエンコードされる。Ｂ2およびＢ3を生成する前に、Ｐ4をデコードしなければならないことに留意されたい。Ｐ6を生成するためには、Ｐ4をデコードしなければならない。
【００２８】
その結果、デコード順序を単純に逆にすることは、ＧＯＰの逆再生を作るのに不十分である。上の例では、Ｐ6が、前のＰ4フレームに依存し、このＰ4は、デコードが逆方向で行われる場合に、まだデコードされていない。さらに、Ｐ4は、前のＩ1フレームに依存し、このＩ1も、デコードが逆方向で行われる場合に、まだデコードされていない。さらに、Ｂフレームは、デコードが逆の時にまだデコードされていない１つまたは複数のフレームに依存する。
【００２９】
これに鑑みて、ＧＯＰを「逆再生」する１つの従来の手法では、ＧＯＰ内のフレームの逆提示を用い、その結果、各フレームの提示の前に、現在のフレームに先行するすべてのフレーム（または少なくとも基準フレームのすべて）がデコードされるようにする。例えば、ＡＢＣＤＥというラベルを付けられたフレームについて、この従来の手法は、フレームＡＢＣＤＥをデコードし、その後、フレームＥを表示する。次に、フレームＡＢＣＤをデコードし、その後、Ｄを表示する。次に、ＡＢＣをデコードし、その後、Ｃを表示し、以下同様である。
【００３０】
この従来の手法は、非常に時間がかかり、非常に非効率的である。というのは、このシステムが、いくつかの同一フレームを繰り返してデコードするからである。計算要件は非常に高いが、メモリ要件は比較的低い。
【００３１】
ＧＯＰを「逆再生」するもう１つの従来の手法は、普通に順方向にデコードするが、ＧＯＰのデコードされ、現在は圧縮されていないフレームのすべてを一時的に記憶することである。ＧＯＰ全体がデコードされ、記憶されたならば、デコードされたフレームを、逆の順序でレンダラに渡す。したがって、記憶された出力フレームが、単純に逆の順序で表示される。
【００３２】
この手法を用いると、計算要件は比較的低いが、メモリ要件が、比較的高い。この従来の手法は、次を必要とする。  
・  ＧＯＰのデコードされたフレームの圧縮されていないイメージをキャッシングする大量のキャッシュメモリ。ＤＶＤまたは標準精細度ＴＶなどの一般的なフォーマットであっても、１０ＭＢ以上のキャッシュメモリが必要になる可能性がある。より高いＨＤＴＶ解像度は、通常は５０ＭＢのメモリを必要とする。  
・  キャッシュメモリは、通常は、デコーダユニットにアクセス可能な高速メモリに置かれる。ランダムな長方形の抽出は、非常にキャッシュフレンドリでないアクセスパターンを作る。通常、このメモリは、ビデオカード上の通常は高価な限られたローカルビデオメモリ（ＶＲＡＭ）内にある必要がある。  
・  ＧＯＰは、通常、一定の出力速度を保証するために、少なくともダブルキャッシングを使用してパイプライン化される必要があるので、キャッシュメモリのメモリ要件は、通常は２倍になる。逆でのブロックの総合的なデコード速度は、同一の速度で順方向に再生する時と同位置であるが、デコーダは、ほとんど瞬間的にブロックをデコードし、普通の速度で逆に再生する必要がある。完全にデコードされたＧＯＰをメモリ内に有することによって、デコーダユニットは、次のＧＯＰをデコードするために、１ＧＯＰ分の提示時間を有する。
【００３３】
さらに、コンテンツの後処理（インターレース除去、スケーリング、フィルタリング、オーディオピッチ訂正など）が、追加の計算能力および一時的処理キャッシュを必要とする場合がある。
【００３４】
逆再生に伴う問題を理解して、いくつかの従来の手法は、単純に、各ＧＯＰからキーフレーム（すなわちＩフレーム）だけをデコードし、表示する。これは、ビデオストリームに現れる静止画像の、がくがくしたスライドショーのような逆提示を作る。単純であるが、この極度に単純化された手法は、優雅ではなく、ビデオストリームのビデオコンテンツの逆の動きのシミュレーションに完全に失敗する。
【発明の開示】
【発明が解決しようとする課題】
【００３５】
エンコードされたデジタルメディアストリームの逆提示を容易にする技術を提供する。
【課題を解決するための手段】
【００３６】
本明細書で、エンコードされたデジタルマルチメディアストリームの逆提示を容易にする実施形態を説明する。
【００３７】
この要約自体は、本願の範囲を制限することを意図したものではない。さらに、本願の名称は、本願の範囲を制限することを意図したものではない。本発明のよりよい理解のために、次の詳細な説明および請求項を、添付図面と共に参照されたい。本発明の範囲は、添付の特許請求の範囲で指摘する。
【００３８】
同一の符号を、複数の図面を通じて、同一の要素および特徴を指すのに使用する。
【発明を実施するための最良の形態】
【００３９】
次の説明では、説明のために、本発明の完全な理解を提供するために、特定の数、材料、および構成を示す。しかし、本発明を、特定の例示的詳細なしで実践できることは、当業者に明白である。他の場合に、本発明の例示的な実施形態の説明を明瞭にし、これによって本発明をよりよく説明するために、周知の構造は、省略するか単純化する。さらに、理解しやすくするために、ある方法ステップを、別々のステップとして表すが、これらの別々に表されたステップを、その実行において必ず順序依存であるものとして解釈してはならない。
【００４０】
次の説明で、請求項に記載の要素を組み込んだデジタルメディアストリームの逆提示の１つまたは複数の例示的な実施形態を示す。これらの実施形態を、法定の書面による明細書の要件、実施可能要件、および最良の態様要件を満たすために具体的に説明する。しかし、この説明自体は、本発明の範囲を制限することを意図したものではない。
【００４１】
本発明人は、これらの例示的な実施形態が例であることを意図している。本発明人は、これらの例示的な実施形態が請求される本発明の範囲を制限することを意図しない。そうではなく、本発明人は、請求される本発明を、他の現在のまたは将来のテクノロジと共に、他の形で実施し、実装することもできることを企図した。
【００４２】
デジタルメディアストリームの逆提示の実施形態の例を、「例示的な逆プレゼンタ」と呼ぶ場合がある。
【００４３】
序
本請求される発明の、本明細書に記載の１つまたは複数の例示的な実施形態は、（全体をまたは部分的に）メディアストリームレンダリングシステム２００によって、提示デバイス（ｐｒｅｓｅｎｔａｔｉｏｎ  ｄｅｖｉｃｅ）７０８によって、および／または図１０に示されたものなどのコンピューティング環境の一部として実施することができる。
【００４４】
例示的逆プレゼンタは、圧縮されたデジタルメディアストリームの逆再生を容易にする。ほとんどのメディアストリームフォーマットは、フレームのシーケンスを含む独立にデコード可能なブロックを使用して圧縮されている。便宜上、そのようなブロックを、本明細書ではｂｌｏｃｋ−ｏｆ−ｆｒａｍｅｓ（ＢＯＦ）と呼ぶ。ＭＰＥＧでは、ｇｒｏｕｐ−ｏｆ−ｐｉｃｔｕｒｅｓ（ＧＯＰ）が、そのようなＢＯＦの例である。ＢＯＦが、いくつかの情況で（ＭＰＥＧ２のオープンＧＯＰなど）隣接するＢＯＦとフレームを共有する（すなわちオーバーラップする）場合があることに留意されたい。
【００４５】
本明細書では、「フレーム」が、メディアデータ（通常はオーディオデータおよび／またはビジュアルデータ）の圧縮された単位を指す。全体的なエンコーディング処理は、ＢＯＦのフレームのメディアデータ内の時間的冗長性または空間的冗長性を減らす。フレームがデコードされる（または圧縮解除される）時に、そのメディアデータが、圧縮なしで完全に表現される（時間的または空間的冗長性削減から）。
【００４６】
各ＢＯＦに、通常は、少なくとも１つのキーフレーム（例えばＩフレーム）または基準ベクトルが含まれ、これに、複数のデルタフレームが続く。類似するプロシージャを使用して、類似する構造を使用して圧縮されたオーディオなどの様々なメディアストリームをデコードすることができる。
【００４７】
ストリームの逆再生に対する従来の手法は、通常は、普通に「順」方向でＢＯＦをデコードするが、ＢＯＦ全体のデコードされ、現在は圧縮されていないフレームのすべてをキャッシングすることである。ＢＯＦ全体がデコードされ、キャッシングされたならば、デコードされたフレームが、逆の順序で提示される。
【００４８】
この従来の単純な手法は、比較的小さい圧縮されていないフレームサイズおよび短いＢＯＦ長さについて機能する。しかしＨＤＴＶイメージのデコードの場合など、圧縮されていないフレームサイズが大きくなる際に、一時的メモリ要件が、極端に厳しくなる可能性がある。
【００４９】
１／２秒長さのＢＯＦを有するインターレース式１９２０×１０８０ピクセルイメージについて、このフレームを記憶するために、３００ＭＢ超のメモリが必要である。さらに悪いことに、キャッシングされるイメージは、デコーダのローカルメモリ（メインメモリではなく）に置かれなければならない。圧縮解除されたイメージをメインメモリにコピーするのに必要なメモリ帯域幅は、しばしば、システムの内部バスの帯域幅を超える。
【００５０】
より多くのローカルキャッシュメモリを単純に追加することは、コンポーネントコストが増えるだけなので、経済的に逆効果である。ある点で、このブルートフォース解決策（メモリ追加という）は、コストが高すぎるようになる。
【００５１】
例示的な逆プレゼンタは、メディアストリームのＢＯＦのより効率的な逆デコードを実行することによって、ストリームの改善された逆提示を容易にする。例示的な逆プレゼンタは、計算要件とメモリ要件のバランスもとり、その結果、メモリリソースまたは計算リソースが制限される場合にも、コンテンツを逆デコードできるようになる。
【００５２】
例示的な逆プレゼンタ
例示的な逆プレゼンタは、図２のメディアストリームレンダリングシステム２００によって、図７および９の提示デバイス７０８によって、および／または図１０に示されたものなどのコンピューティング環境の一部として（全体をまたは部分的に）実施することができる。
【００５３】
例示的な逆プレゼンタのストリームデコード機能は、ビデオストリームおよびオーディオストリームの圧縮されたマルチメディアデータを受け入れる、限られたメモリを有するデコードユニットで行うことができる。デコードユニットには、デコードコントローラ（図９のコントローラ９４０など）およびハードウェアデコーダ（図２のデコーダ２１０、２１２、および２１４または図９のデコーダ９２０など）が含まれる。
【００５４】
デコーダコントローラ（図９のコントローラ９４０など）は、デコーディングプロセスを制御する。デコーダコントローラは、デコーダによってデコードされたフレームをスケジューリングする。デコーダコントローラは、ソフトウェアで、ハードウェアで、またはその組合せで実行することができる。デコーダコントローラは、提示デバイス７０８上のプログラムモジュール、および／または図１０に示されたものなどのコンピューティング環境の一部とすることができる。
【００５５】
デコーダ（図２のデコーダ２１０、２１２、および２１４または図９のデコーダ９２０など）は、専用の圧縮解除／デコードハードウェア、同等の動作を実行するソフトウェアコンポーネント、またはこの両方の組合せである。デコードは、通常は、専用ハードウェアによって処理されるので、しばしば、表示されるフレームに必要であるよりも素早くデコード（またはフレームを再デコード）することができる。
【００５６】
本明細書で、用語「フレームバッファ」は、１つの圧縮されていないフレームを記憶するように構成されたメモリストレージロケーションを指す。本明細書で、「キャッシュ」は、メモリストレージである。キャッシュに、フレームバッファを含めることができる。
【００５７】
基準フレームおよび非基準フレーム
「基準フレーム」は、それに依存するフレームを生成するための基準として使用されるデータを有するタイプのフレームである。基準フレームは、通常、そのデータが参照される前にデコードされなければならない。キーフレームは、必ず基準フレームである。しかし、キーフレームに依存するが、それに依存する１つまたは複数のフレームを有する中間フレームも、基準フレームとして分類される。ＭＰＥＧ領域では、ＩフレームとＰフレームの両方が、基準フレームとして分類される。
【００５８】
「非基準フレーム」は、別のフレームによって参照されるデータを含まないタイプのフレームである。非基準フレームに含まれるデータの他に、フレーム内の完全にデコードされたイメージの生成は、そのデコードされた基準フレームのデータに依存する。ＭＰＥＧ領域では、Ｂフレームが、非基準フレームとして分類される。というのは、Ｂフレームに依存するフレームがないが、Ｂフレームは２つの基準フレーム（ＩフレームまたはＰフレーム）に依存するからである。非基準フレームは、通常、デコードされ、その後、破棄され、他のフレームをデコードするために一時的に記憶される必要がない。
【００５９】
例示的な逆プレゼンタの諸態様
下で説明する（「エンコードされた非基準フレームをキャッシングする、基準フレームのデコード」という題名のセクションに関して）例示的な逆プレゼンタの諸態様は、基準フレーム（例えば、Ｉフレーム／Ｐフレーム）に関する非基準フレーム（例えば、Ｂフレーム）の改善された処理に焦点を合わせたものである。それを行う際に、メディアストリームの逆再生に対する改善された手法が提供される。
【００６０】
逆に、下で説明する（「選択的基準フレームのデコードおよびキャッシング」という題名のセクションに関して）例示的な逆プレゼンタのもう１つの態様は、ストリームの逆再生に対する改善された手法を作成するために、基準フレーム（例えば、Ｉフレーム／Ｐフレーム）の改善された処理に焦点を合わせたものである。この態様によって提供される改善は、非基準フレーム（例えば、Ｂフレーム）の処理に基づかない。しかし、例示的な逆プレゼンタの両方の態様を、一緒に使用することができる。また、実際に、全体的な逆再生機能をさらに改善するために、両方の態様を同時に使用することが望ましい場合がある。
【００６１】
エンコードされた非基準フレームをキャッシングする、基準フレームのデコード
例示的な逆プレゼンタのこの態様は、ＢＯＦの基準フレーム（例えば、ＩフレームまたはＰフレーム）の一部またはすべてを順方向にデコードしながら、まだエンコードされている（したがってまだ圧縮されている）非基準フレーム（例えば、Ｂフレーム）をキャッシングすることによって、ＢＯＦ（ＧＯＰなど）の改善された逆再生を達成する。
【００６２】
例示的な逆プレゼンタは、逆の順序でＢＯＦのフレームを提示するので、既にデコードされた基準フレームを提示するが、非基準フレームを提示する前に、既にデコードされた基準フレームに基づいて、キャッシュ内のまだエンコードされている非基準フレームをデコードする。
【００６３】
Ｉフレームは、以前のまたは将来のフレーム情報と独立にデコードされる。Ｐフレームは、前のＩフレームまたはＰフレームの順方向の変更である。Ｂフレームは、隣接するフレームのＩフレーム／Ｐフレームだけに依存するので、Ｂフレームは、隣接するフレームのフレームインデックスを交換し、順方向でデコードすることによって、逆方向にデコードすることができる。
【００６４】
例えば、Ｂフレーム内の結果のマクロブロックＭＢが、前のＰフレームからのマクロブロックＭＰ1および次のＰフレームからのマクロブロックＭＰ2の関数であったと仮定する。Ｂフレームが順方向にデコードされる場合に、ＭＢ＝ｆｕｎｃｔｉｏｎ１（ＭＰ1，ＭＰ2）である。しかし、Ｂフレームのインデックスが交換された時に、このフレームは、次のようにデコードされる：ＭＢ＝ｆｕｎｃｔｉｏｎ２（ＭＰ2，ＭＰ1）。ただし、ｆｕｎｃｔｉｏｎ２は、そのオペランドを交換されたｆｕｎｃｔｉｏｎ１である。
【００６５】
したがって、Ｂフレームのデコードされたマクロブロックは、隣接するフレームのデコード順序を逆転し、同一の残差訂正（ｒｅｓｉｄｕａｌ  ｃｏｒｒｅｃｔｉｏｎ）を適用することによって生成することができる。
【００６６】
例示的な逆プレゼンタは、圧縮された形の非基準フレーム（例えば、Ｂフレーム）をキャッシングする。ＢＯＦフレームが、逆の順序で提示されつつある時に、キャッシングされた圧縮された非基準フレームが、デコードされる。非基準フレームのデコードに関する依存性は、前もってではなく、非基準フレームのデータがレンダリングに必要になった時に解決される。
【００６７】
非基準フレームは、メインシステムメモリに、アクセス速度を改善するためにローカルメモリ（ＶＲＡＭなど）に、またはデコーダユニットから簡単にアクセス可能なシステムメモリ（ＡＧＰメモリなど）に記憶することができる。本明細書で、これらのすべてを、包括的にキャッシュと呼ぶことができる。
【００６８】
例えば、ＩＢＢＰＢＢＰＢＢＰＢＢＩ（最後のＩが隣接するＢＯＦによって共有される）の通常のＢＯＦ再生構造が使用される場合に、逆再生のメモリ要件は、ＢＯＦのすべてのデコードされたフレームをキャッシングする従来の手法が必要とするものの約１／３にすることができる。この例では、例示的な逆プレゼンタが、１０個のフレームのすべてではなく、１０個のフレームのうちの４つだけのデコードされたバージョンをキャッシングする。具体的に言うと、例示的な逆プレゼンタは、ＩフレームおよびＰフレームのデコードされたバージョンをキャッシングする。
【００６９】
例示的な逆プレゼンタは、この例では圧縮された形の６つのＢフレームを記憶する。３つのタイプ（Ｉフレーム、Ｐフレーム、およびＢフレーム）のうちで、Ｂフレームは、２つの他のフレームに依存するので、最も圧縮されたタイプのフレームを表す。Ｂフレームの圧縮解除されたデータの一時的ストレージを回避することは、ＢＯＦのすべてのデコードされたフレームのキャッシングという伝統的な手法のメモリ要件の大きい削減を表す。
【００７０】
例示的な逆プレゼンタのこの態様に関して、特定のＢＯＦ構造は、ＩＢＢＰＢＢＰＢＢＰという通常のＢＯＦ構造である。これは、一般的なＢＯＦ構造であるが、当業者は、他のＢＯＦ構造が可能であることを理解し、諒解し、さらに、この態様を他の可能な構造に適用する形を理解し、諒解する。
【００７１】
非基準フレームを圧縮された形で保有する（または効果的に「キャッシングする」）もう１つの形が、ビデオデータが到着した記憶媒体が何であれ、単純にそれに残すことである。例えば、フレームを、ＤＶＤまたはハードドライブに残し、望まれる時にその位置を読み取ることができる。
【００７２】
例示的な逆プレゼンタの方法論的実施形態
図３に、基準フレームのデコードを含むがエンコードされた非基準フレームをキャッシングする、逆再生の例示的な逆プレゼンタの方法論的実施形態を示す。この方法論的実施形態は、ソフトウェアで、ハードウェアで、またはその組合せで実施することができる。
【００７３】
図３の３１０で、例示的な逆プレゼンタは、ＢＯＦを受け取り、受け取られたＢＯＦが逆方向に提示（すなわち逆に再生）されなければならないことのインディケーションを受け取る。
【００７４】
３１２で、例示的な逆プレゼンタは、受け取ったＢＯＦの基準フレームを順方向にデコードする。
【００７５】
３１４で、例示的な逆プレゼンタは、ＢＯＦのデコードされた基準フレームおよびまだエンコードされている非基準フレームを記憶する。
【００７６】
３１６で、非基準フレームごとに、隣接するフレームのフレームインデックスを交換する。その後、非基準フレームの依存性を逆にする。
【００７７】
図３の３１８で、例示的な逆プレゼンタは、これから提示されるＢＯＦの最後の基準フレームを提示する。
【００７８】
３２０で、例示的な逆プレゼンタは、これから提示されるＢＯＦの最後の非基準フレームを生成する。生成されたばかりの非基準フレームは、キャッシュ内の既にデコードされた基準フレームへの依存性に基づいてデコードされる。
【００７９】
３２２で、例示的な逆プレゼンタは、生成されたばかりの非基準フレームを提示し、任意選択として、生成されたばかりの非基準フレームを記憶するフレームバッファを解放する。生成されたばかりの非基準フレームは、もはや、提示または他のフレームのさらなるデコードに必要ないので、それを保持するメモリを、他の使用のために解放することができる。また、例示的な逆プレゼンタは、次のフレームに進む（逆の順序で）。
【００８０】
３２４で、次のフレームが非基準フレームである場合には、逆の順序で発生する非基準フレームごとにブロック３２０および３２２を繰り返す。そうでない場合には、ブロック３２６に進む。
【００８１】
３２６で、次のフレームが基準フレームである場合に、それがＢＯＦの最後のフレーム（逆の方向での。順方向で最初であった）であるかどうかを判定する。そうである場合には、ブロック３２８に進む。そうでない場合には、次のフレームは、単にもう１つの基準フレームであり、このプロセスはブロック３１８に進む。
【００８２】
図３の３２８で、例示的な逆プレゼンタは、最後のフレーム（逆の方向での。順方向で最初であった）を提示する。このＢＯＦに関して、このプロセスは終了する。
【００８３】
例示的動作
図３の方法論的実施形態に従って逆の順序でＢＯＦを再生するために、例示的な逆プレゼンタは、フレームＩ1Ｂ2Ｂ3Ｐ4Ｂ5Ｂ6Ｐ7Ｂ8Ｂ9Ｐ10からなる例示的なＢＯＦを受け取る。例示的な逆プレゼンタは、このＢＯＦが逆に提示されることの表示も受け取る。
【００８４】
例示的な逆プレゼンタは、基準フレームを順方向にデコードし、それらをキャッシュに一時的に記憶する。この例では、例示的な逆プレゼンタは、基準フレームＩ1Ｐ4Ｐ7Ｐ10をデコードし、キャッシングする。
【００８５】
基準の圧縮されないバージョンを一時的に記憶することに加えて、例示的な逆プレゼンタは、キャッシュに、圧縮された形の非基準フレームすなわち、Ｂ2Ｂ3、Ｂ5Ｂ6、およびＢ8Ｂ9も記憶する。例示的な逆プレゼンタは、非基準フレームのフレームインデックスも交換し、その結果、そのフレーム依存性が入れ替えられるようにする。これは、Ｂフレームのデコードされたマクロブロックを、隣接するフレームの逆のデコード順序を用いて、同一の残差訂正を適用しながら生成するために行われる。
【００８６】
例示的な逆プレゼンタは、提示（例えば、レンダリングおよび表示）のために、記憶され、デコードされたＰ10をスケジューリングする。
【００８７】
例示的な逆プレゼンタは、Ｐ7およびＰ10に基づいてＢ9を生成する。この生成は、Ｐ7およびＰ10に対するＢ9の依存性に基づくデコードまたは圧縮解除である。
【００８８】
例示的な逆プレゼンタは、記憶され、現在はデコードされているＢ9を提示のためにスケジューリングし、任意選択として、Ｂ9用に割り当てられたメモリをフリープールに移動する。
【００８９】
次のフレーム（逆に進む時の）は、もう１つの非基準フレーム（Ｂ8）なので、上の２つのアクション（Ｂフレームの生成および提示）が、Ｂ8について繰り返される。
【００９０】
Ｂ9およびＢ8がデコードされ、提示された後に、Ｐ10は、もはや不要である（既に提示され、もはや依存性コーディングに使用されないので）。したがって、Ｐ10のメモリを解放することができる。
【００９１】
Ｐ7Ｂ8Ｂ9Ｐ10の組を操作する上のアクションが、次の組（逆に進む時の）Ｐ4Ｂ5Ｂ6Ｐ7について繰り返される。
【００９２】
Ｐ7Ｂ8Ｂ9Ｐ10の組を操作する上のアクションが、今度は、次の組（逆に進む時の）Ｉ1Ｂ2Ｂ3Ｐ4について繰り返される。
【００９３】
最後に、例示的な逆プレゼンタは、提示のために、記憶されデコードされたＩ1をスケジューリングする。Ｉ1は、最後のフレーム（逆の順序で）なので、その提示によって、フレームＩ1Ｂ2Ｂ3Ｐ4Ｂ5Ｂ6Ｐ7Ｂ8Ｂ9Ｐ10からなる例示的なＢＯＦの逆再生が完了する。
【００９４】
さらに、例示的な逆プレゼンタは、基準フレームバッファが現在のＢＯＦについて解放されるたびに、前のＢＯＦの次の基準フレームをデコードすることによって、ＣＰＵ使用量を平滑化することができる。この形で、次のＢＯＦが、現在のＢＯＦが完了するや否やデコードされる。
【００９５】
選択的基準フレームのデコードおよびキャッシング
このセクションで説明する例示的な逆プレゼンタのもう１つの態様は、ストリームの逆再生に対する改善された手法を作成するための基準フレーム（例えば、Ｉフレーム／Ｐフレーム）の改善された処理に焦点を合わせたものである。この態様によって提供される改善は、非基準フレーム（例えば、Ｂフレーム）の処理に基づかない。しかし、この態様を、上で説明した態様と組み合わせて、全体的な逆再生機能をさらに改善することができる。
【００９６】
例示的な逆プレゼンタのこの態様では、圧縮されていない基準フレーム（例えば、Ｉフレーム／Ｐフレーム）が選択的に維持され、それ以外が再生成される。それを行うことによって、ＢＯＦシーケンスの逆再生に必要な一時メモリ（例えば、キャッシュ）の量が減る。この態様では、逆再生を、キャッシュ内で使用可能な少数のフレームバッファだけを用いて実行することができる。本明細書での「フレームバッファ」は、１つの圧縮されていないフレームを記憶するように構成されたメモリストレージロケーションである。
【００９７】
正確なストラテジは、ＢＯＦシーケンスの正確な構造に基づいて変化する可能性があるが、説明を明瞭にするために、このセクションの説明では、各ＢＯＦが単一のキーフレーム（例えば、Ｉフレーム）を有し、これから始まると仮定する。また、キーフレームに、他の基準フレーム（例えば、Ｐフレーム）および非基準フレーム（例えば、Ｂフレーム）が続くと仮定する。
【００９８】
このストラテジは、最良のデコードストラテジを選択するために、ＢＯＦを完全に事前スキャンして、ＢＯＦ内のフレーム数を発見することによって改善することができる。
【００９９】
通常のＭＰＥＧ−２ビデオストリームについて、フレームの１／３がＩフレームまたはＰフレームであり、ＢＯＦサイズが、約５００ｍｓである。これは、１５フレームにマッピングされ、５つの基準フレームを有するＢＯＦが作られる。
【０１００】
複数のキーフレーム（例えば、Ｉフレーム）を有する、より複雑なＢＯＦ構造が存在する。これらは、逆に再生される時に、それぞれが１つのキーフレームを有するサブＢＯＦブロックに分解することができる。この話題の詳細については、下の「Ｂフレームを含むＢＯＦへの拡張」という題名のセクションを参照されたい。
【０１０１】
使用される特定のストラテジは、例示的な逆プレゼンタの対象であるＢＯＦシーケンスの特定のＢＯＦ構造（例えば、そのＩフレーム、Ｐフレーム、およびＢフレームの構成および順序）に依存して変化する。非基準フレームを、ローカル基準フレームから生成することができるので、基準フレームの相対的な構造が、この態様にとって最も重要である。
【０１０２】
例示的な逆プレゼンタのこの態様について、非基準フレーム（例えば、Ｂフレーム）を無視することができる。その結果、この態様は、基準フレームに焦点を合わせたものになる。ここで述べる基準フレームの特定のＢＯＦ構造に、単一のＩフレームと、それに続くｎ−１個のＰフレームが含まれる。したがって、数ｎは、ＢＯＦ構造内の基準フレームの個数である。
【０１０３】
これは、一般的なＢＯＦ構造であるが、当業者は、他のＢＯＦ構造が可能であることを理解し、諒解し、さらに、この態様を他の可能な構造に適用する形を理解し、諒解する。
【０１０４】
一部のＢＯＦ構造は、最後のＢフレームをデコードするために、次のＢＯＦのＩフレームを必要とする場合がある（例えば、ＭＰＥＧ２「オープンＧＯＰ」）。一般性を失わずに説明を単純にするために、現在のＢＯＦの定義を、次のＢＯＦの次のＩフレームを含むように拡張することができる。最後のＩフレームを、現在のＢＯＦの最後の「Ｐフレーム」と呼ぶことができる。
【０１０５】
例示的な逆プレゼンタは、基準フレームの個数ｎの判定またはそれに関する上限の設定のいずれかを行う。これを判定するために、例示的な逆プレゼンタは、圧縮された形のＢＯＦをキャッシングし、解析することができる。代替案では、例示的な逆プレゼンタは、タイムインターバルおよびＢＯＦ構造限度（ＢＯＦ  ｓｔｒｕｃｔｕｒｅ  ｌｉｍｉｔｓ）を使用して、基準フレームの最大個数を推定することができる。
【０１０６】
この議論に関して、ｍは、デコードされた基準フレームを一時的に記憶するのに使用可能なフレームバッファの個数を表し、ｎは、ＢＯＦシーケンス内の基準フレームの個数を表す。
【０１０７】
ｎ＝１（単一のＩフレームだけがある）の場合の自明な状況について、１つのフレームバッファだけが必要である。もう１つの自明な状況が、ｎ＝２の場合である。この状況では、２つのフレームバッファが必要である。この２つの自明な状況では、１つ（ｎ＝１の場合）または２つ（ｎ＝２の場合）のフレームバッファがあると仮定する。
【０１０８】
ｎ＞２の場合に、少なくとも１つのフレームバッファが、第１のＩフレームイメージ用であり、少なくとも１つのフレームバッファが、最後のこれから提示されるＰフレームイメージ用である。残りのフレームバッファ（そのうちの１からｎ−２がある）が、他のこれから提示されるＰフレームイメージに使用可能である。本明細書で、フレーム「イメージ」への言及は、フレームの内容が完全にデコードされる（例えば、圧縮解除される）ことを意味する。
【０１０９】
ｎ≦ｍの場合に、順方向ですべての基準フレームをデコードし、その後、これらを逆の順序で提示するのに十分なフレームバッファがある。
【０１１０】
その結果、例示的な逆プレゼンタのこの態様は、３つ以上の基準フレームがあり（ｎ＞２）、基準フレームより少数のフレームバッファがある（ｍ＞ｎ）時に特に有用である。
【０１１１】
選択ストラテジ（バイナリ副分割（ｂｉｎａｒｙ  ｓｕｂｄｉｖｉｓｉｏｎ）または本明細書で述べる他のストラテジ）を使用することによって、例示的な逆プレゼンタは、これから提示される基準フレームの間で、デコードされ、フレームバッファに記憶されるものを選択する。
【０１１２】
まだデコードされず、記憶されていない場合に、選択された基準フレームをデコードするのに必要な基準フレームのすべてを、順方向にデコードする。このデコードを行っている間に、最後のこれから提示される基準フレームに先行する、ＢＯＦのデコードされた基準フレームを、一時的に記憶する。デコードされたフレームが、選択されたフレームの１つでない場合には、これを破棄し、そのフレームバッファを解放する。
【０１１３】
例示的な逆プレゼンタは、選択されたフレームをフレームバッファに記憶する。例示的な逆プレゼンタは、記憶されたこれから提示されるフレームの最後のフレームを提示し、その後、それに使用されたフレームバッファを解放する。バッファは、このデコーディングプロセスの後続フレームをキャッシングするために、空きバッファの使用可能プールに返すことができる。この観察は、提案されるアルゴリズムとバイナリ副分割の間の主要な相違である。これによって、提案されるアルゴリズムが、計算コストを大幅に削減できるようになる。
【０１１４】
例示的な逆プレゼンタは、もう一度その選択ストラテジを使用して、まだデコードされず、フレームバッファに記憶されていないもう１つの基準フレームを選択する。例示的な逆プレゼンタは、ＢＯＦの基準フレームのすべてを提示するまで、上の選択、デコード、記憶、および提示の各機能を繰り返す。
【０１１５】
これを行う際に、例示的な逆プレゼンタは、いくつかの基準フレームを複数回きわめて良好にデコードする可能性もある。通常、デコーダは、提示される速度より速くデータをデコードする能力を有する。例示的な逆プレゼンタのこの態様は、必要になるより十分に前に圧縮されていないフレームをキャッシングするのではなく、この使用可能なアイドル時間を利用して、必要に応じて圧縮されていないフレームを再生成する。
【０１１６】
メモリリソースと計算リソースとの間のバランスを見つけるという目標について、例示的な逆プレゼンタは、キャッシングまたはフレーム再生成の間で判断を行う。
【０１１７】
例示的な逆プレゼンタの方法論的実施形態
図４に、選択的デコードおよび基準フレームのキャッシングを行う、逆再生用の例示的な逆プレゼンタの方法論的実施形態を示す。この方法論的実施形態は、ソフトウェアで、ハードウェアで、またはその組合せで実施することができる。
【０１１８】
この態様は、基準フレームに焦点を合わせているので、下で説明する方法論的実施形態では、非基準フレームに対する動作のすべてを無視する。しかし、下で説明する方法論的実施形態を、非基準フレームに対して動作する別の方法論的実施形態（上で図３に関して説明したものなど）と組み合わせることができる。
【０１１９】
図４の４１０で、例示的な逆プレゼンタは、ＢＯＦを受け取り、受け取られたＢＯＦが逆方向に提示（すなわち逆に再生）されなければならないことのインディケーションを受け取る。
【０１２０】
４１２で、例示的な逆プレゼンタは、基準フレームの個数ｎの値を割り出すが、このｎは、ＢＯＦ内の基準フレームの実際の個数または基準フレームの上限を表す。これを判定するために、例示的な逆プレゼンタは、圧縮された形のＢＯＦをキャッシングし、解析し、基準フレームを識別し、数えることができる。代替案では、例示的な逆プレゼンタは、タイムインターバルおよびＢＯＦ構造限度を使用して、基準フレームの最大個数を推定することができる。
【０１２１】
４１４で、例示的な逆プレゼンタは、ｍの値を割り出すが、このｍは、デコードされた基準フレームを一時的に記憶するのに使用可能なフレームバッファの個数を表す。例示的な逆プレゼンタは、メモリシステム内で使用可能なフレームバッファおよびメモリロケーションの特定の個数を追跡する、メモリトラッキング技法によってこれを行うことができる。例示的な逆プレゼンタは、メモリトラッキングシステムなどからこの情報を受け取ることもできる。
【０１２２】
４１６で、例示的な逆プレゼンタは、３つ以上の基準フレームがある（ｎ＞２）かどうかと、基準フレームより少数のフレームバッファがある（ｍ＜ｎ）かどうかを判定する。そうである場合には、このプロセスはブロック４１８に継続する。そうでない場合にには、このプロセスは、４３０で終了する。
【０１２３】
図４の４１８で、例示的な逆プレゼンタは、ＢＯＦのｎ個の基準フレームの、サイズｍ（以下）のサブセットを選択する。基準フレームのいずれかが既に提示済みである場合には、そのフレームは、このサブセットに含まれない。通常、この選択には、少なくとも、Ｉフレームおよび最後のこれから提示されるＰフレームが含まれる（「最後」は、ＢＯＦの順方向で見たものである）。３つ以上のフレームバッファがある時に、ｍ−２個のさらなるＰフレーム（Ｉフレームと最初のこれから提示されるＰフレームの間）も選択する。
【０１２４】
多数の選択ストラテジを使用することができる。１つのストラテジは、バイナリ副分割を使用して、残りの基準フレームを選択することとすることができる。基準フレームの個数（ｎ）に応じて、例示的な逆プレゼンタを、下の「小さいｎのフレームバッファ選択ストラテジ」、「中程度のｎのフレームバッファ選択ストラテジ」、および「大きいｎのフレームバッファ選択ストラテジ」という題名のサブセクションで説明する３つの選択ストラテジの１つを使用するように構成することができる。
【０１２５】
４２０で、例示的な逆プレゼンタは、選択された基準フレームのすべてをデコードするのに必要な基準フレームのすべてを順方向にデコードする。選択された基準フレームをデコードするのに必要なフレームが、既に記憶されている場合には、それをデコードする必要はない。言い換えると、選択された基準フレームが、既にデコードされ、フレームバッファに記憶されている場合には、そのフレームに対して何もしない。
【０１２６】
このデコードを行っている間に、最後のこれから提示される基準フレームに先行する、ＢＯＦの各デコードされた基準フレームを、一時的に記憶する。デコードされたフレームが、選択されたフレームの１つでない場合には、破棄し、そのフレームバッファを、選択された基準フレームの１つを記憶するために解放する。
【０１２７】
例示的な逆プレゼンタは、選択されたフレームをフレームバッファに記憶する。この機能の終りに、フレームバッファに、選択された基準フレームが記憶されている。
【０１２８】
４２２で、例示的な逆プレゼンタは、フレームバッファに記憶されたこれから提示される最後の基準フレーム（例えば、Ｉフレーム／Ｐフレーム）を提示する。これは、ＢＯＦの逆再生なので、最後のこれから提示される基準フレームの提示によって、ＢＯＦの基準フレームの逆提示が作られる。
【０１２９】
また、基準フレームの提示の間に、例示的な逆プレゼンタは、やはり逆に、間にある非基準フレーム（例えば、Ｂフレーム）を提示している場合もある。
【０１３０】
４２４で、例示的な逆プレゼンタは、提示されたばかりの基準フレームが記憶されていたフレームバッファを解放する。提示されたばかりの基準フレームは、もはや提示および他のフレームの将来のデコードに必要でないので、それを保持するメモリを、他の使用のために解放することができる。
【０１３１】
４２６で、提示されたばかりの基準フレームが、ＢＯＦの最初のフレーム（例えば、Ｉフレーム）である場合に、このプロセスは、このＢＯＦに関して終了する。そうでない場合には、ブロック４１８に戻って、ブロック４１８から４２６を繰り返す。フレームバッファを解放したので、ブロック４１８に戻った時に、新しい基準フレームを選択することができる。
【０１３２】
小さいｎのフレームバッファ選択ストラテジ
「小さい」ｎ、「中程度の」ｎ、および「大きい」ｎを分類する閾値の選択は、完全に任意ではないが、閾値の選択に、通常はある度合のヒューリスティックが含まれる。これは、例示的な逆プレゼンタの実際の実装の計算能力に大きく依存する。例えば、「小さい」と「中程度」の間の閾値は、約８程度とすることができるが、「中程度」と「大きい」の間の閾値は、約５００から１０００程度とすることができる。しかし、本明細書に記載の概念を使用して、特定の実装の必要に合うように閾値を調整することができる。
【０１３３】
したがって、ｎ≦８かつｍ＜ｎである、小さい数（ｎ）の基準フレームに関する例示的な逆プレゼンタのこのフレームバッファ選択ストラテジでは、下の明示的なテーブルを使用する。このストラテジは、上の図３のブロック３１８で説明した機能およびその前後で使用することができる。このテーブルは、最適の小さいｎアルゴリズムの出力によって生成されたものである。
【０１３４】
このテーブルでは、ＢＯＦ構造がＩ1Ｐ2Ｐ3．．．ＰNであることと、Ｉフレームの相対的なデコードコストがＰフレームに類似することを前提とする。
【０１３５】
２フレームバッファ（ｍ＝２）
２つのフレームバッファだけがある（ｍ＝２）場合に、例示的逆プレゼンタは、第１フレーム（例えばＩ1）の生成を開始し、最後のこれから提示されるフレームを再帰的に生成する。後の（ｌａｔｅｒ）Ｐフレームのキャッシングを優先してＩフレームを破棄して、最初のランの長さを減らすことができる。
【０１３６】
次の表に、ｎ＝３から８で各基準フレームについて実行されるデコードの回数を示す。
【０１３７】
【表１】
2006025401.tif 000003
【０１３８】
３フレームバッファ（ｍ＝３）
３つのフレームバッファだけがある（ｍ＝３）場合に、例示的な逆プレゼンタは、最初のフレームを生成し、ほぼ真ん中のＰフレームを保持し、最後の２つのフレームバッファフレームを使用し、最後のこれから提示されるフレームを再帰的に生成する。例示的な逆プレゼンタは、３つのフレームバッファの２つにこれらを記憶する。残りの基準フレームの１つが、選択され、残りの１つのフレームバッファに記憶される。
【０１３９】
選択（記憶される基準フレームの選択のための）、世代、および提示の機能の各再帰について、新しい最後のこれから提示されるフレームが、選択され、第１フレームと新しい最後のこれから提示されるフレームの間の新しい基準フレームが、フレームバッファに記憶される。
【０１４０】
次のテーブルに、ｎ＝４から８で各基準フレームについて実行されるデコードの回数を示す。
【０１４１】
ｍ＝３の時に、デコードの総数＝２ｎ−３である。
【０１４２】
通常のＢＯＦ構造は、５つの基準フレームを有する（ｎ＝５）。したがって、ｍ＝３の時に、通常、通常のＢＯＦ構造には８つのデコードを要する。
【０１４３】
４フレームバッファ（ｍ＝４）
４つのフレームバッファがある（ｍ＝４）場合に、１つの追加フレームバッファ（ｍ＝３状況と比較した時に）が、基準フレームの長いランの再デコードを減らすのに使用可能である。このストラテジでは、これから提示されるフレームのシーケンスの中ほどにあるフレームを選択する。これを行うことは、ＢＯＦを半分に分割するのに役立ち、ここで、各半分がデコードされる。
【０１４４】
【表２】
2006025401.tif 000004
【０１４５】
このストラテジでは、デコード（または再デコード）されなければならないフレームの１つまたは複数のスパンのサイズを最小にするという目標に関してフレームを選択する。それを行う際に、残りのこれから提示されるフレームのデコード（および必要な場合の再デコード）の全体的な動作が、２つの副動作に再帰的に分割される。各副動作は、より少数のフレームバッファを有することができ、より少数の使用可能なフレームバッファｍを有するより小さいｎの事例を使用して解決することができる。
【０１４６】
例えば、ｎ＝８（Ｉ1Ｐ2Ｐ3Ｐ4Ｐ5Ｐ6Ｐ7Ｐ8）であり、フレーム４をキャッシングすると選択する場合に、Ｐ4．．．Ｐ8からの第２デコード動作を、５つのフレームおよび３つのバッファ（ｎ＝５、ｍ＝３、前のｍ＝３テーブルのｎ＝５エントリを参照されたい）を有する副問題とみなすことができる。第２の副問題をデコードした後に、Ｉ1Ｐ2Ｐ3Ｐ4をデコードするという残りの問題は、前の、ｍ＝４バッファを有するｎ＝４の部分事例になる。選択ストラテジは、まだｎ＝４、ｍ＝４の事例と同一であるが、フレームＩ1およびＰ4がキャッシングされているので、さらに２つの基準フレームをデコードするだけでよい。
【０１４７】
５フレームバッファ（ｍ＝５）
ｍ＝５、ｎ＝６の場合に、１つのフレーム（例えば、フレームＰ2）だけを再デコードする必要がある。合計で、７回のデコードがもたらす。
【０１４８】
ｍ＝５、ｎ＝７の場合に、２つのフレームだけを再デコードする必要がある（例えば、Ｐ2、Ｐ3）。これは、合計９回のデコードをもたらす。
【０１４９】
ｍ＝５、ｎ＝８の場合に、３つのフレーム（例えば、Ｐ2、Ｐ3、およびＰ4）だけを再デコードする必要がある。これは、合計１１回のデコードをもたらす。
【０１５０】
【表３】
2006025401.tif 000005
【０１５１】
６フレームバッファ（ｍ＝６）
ｍ＝６、ｎ＝７の場合に、１つのフレーム（例えば、フレームＰ4）だけを再デコードする必要がある。これは、合計８回のデコードをもたらす。
【０１５２】
ｍ＝６、ｎ＝８の場合に、２つのフレームを再デコードする必要がある。これは、合計１０回のデコードをもたらす。
【０１５３】
【表４】
2006025401.tif 000006
【０１５４】
７フレームバッファ（ｍ＝７）
ｍ＝７、ｎ＝８の場合に、１つのフレーム（例えば、フレームＰ2）を再デコードする必要がある。これは、合計９回のデコードをもたらす。
【０１５５】
【表５】
2006025401.tif 000007
【０１５６】
合計デコード回数の要約
【０１５７】
【表６】
2006025401.tif 000008
【０１５８】
例示的な逆プレゼンタの選択ストラテジは、再デコードの量を劇的に減らすと同時に、大量のバッファリングの必要（従来の手法に必要）をなくすことができる。
【０１５９】
代替実施形態は、デコードされたＩフレームを使用可能に保たないものとすることができる。実際に、Ｉフレームを破棄し、後でもう一度デコードすることができる。
【０１６０】
中程度のｎのフレームバッファ選択ストラテジ
したがって、ｎが約８を超え、ｍ＜ｎである、中程度の個数（ｎ）の基準フレームに関する例示的な逆プレゼンタのこのフレームバッファ選択ストラテジでは、下で説明するストラテジを使用する。このストラテジは、上の図３のブロック３１８で説明した機能およびその前後で使用することができる。
【０１６１】
この選択ストラテジを、「暗記（ｍｅｍｏｒｉｚａｔｉｏｎ）」ストラテジと呼ぶこともできる。一般に、「暗記」は、同一の条件の下で結果をもう一度再計算するのではなく、後の使用のために計算結果を保存（すなわち暗記）するアルゴリズム的技法である。
【０１６２】
この選択ストラテジでは、ＢＯＦをますます小さくなるスパンに再帰的に分割することに焦点を合わせる。スパンは、選択されたフレーム（キャッシングに関して）の間のフレームである。スパン長は、スパンに何個のフレームがあるかに基づく。この選択ストラテジは、スパンの既知の組合せがフレームおよびバッファの既知の組合せと一致するまで、スパンをより小さいスパンに分割することを継続する。
【０１６３】
例示的な逆プレゼンタのこのフレームバッファ選択ストラテジでは、ｍ個のバッファを使用する逆の順序でのｎ個のフレームのデコードおよび表示に、「保持すべき最初のフレーム」Ｆ（ｍ，ｎ）を定義する。これは、デコードの後に、そのバッファを即座に解放されない最初のフレームである。このフレームがデコードされる先のバッファは、このフレームが実際に表示されるまで解放されない。任意に、最初のフレームの個数が、１になるように選択される。
【０１６４】
この選択ストラテジでは、このアルゴリズムを使用し、ｍ個のバッファを使用して逆の順序でｎ個のフレームをデコードし、表示するのに必要なデコードの回数を、Ｄ（ｍ，ｎ）と定義する。ここで、Ｆ（ｍ，ｎ）およびＤ（ｍ，ｎ）を再帰的に計算する。ｍ≧ｎの場合に、Ｄ（ｍ，ｎ）＝ｎかつＦ（ｍ，ｎ）＝１であることに留意されたい。
【０１６５】
ｍ＜ｎの場合に、再帰は、保持される最初のフレームのすべての重要な値に必要なデコードの最小回数を見つけることによって実行される。したがって、Ｆ（ｍ，ｎ）およびＤ（ｍ，ｎ）を、副産物として導出する。
【０１６６】
保持される最初のフレームがｘであると仮定すると、必要なデコードの回数は、次のように分析される。
【０１６７】
【表７】
2006025401.tif 000009
【０１６８】
これらの量の合計を最小にするｘの値が、Ｆ（ｍ，ｎ）である。この合計を最小にするｘの最大値が、曖昧さを防ぐために任意に選択される。
【０１６９】
再帰を計算する際に、Ｄ（ｉ，ｊ）およびＦ（ｉ，ｊ）の値が、サイズがｍ×ｎである配列に集められる。したがって、ある値を計算した時に、上のさらなる検索は不要である。
【０１７０】
次に、Ｆ（ｉ，ｊ）の値を使用して、デコードシーケンスを再構成する。
【０１７１】
大きいｎのフレームバッファ選択ストラテジ
したがって、ｎが約５００〜１０００を超え、ｍ＜ｎである、多数（ｎ）の基準バッファに関する例示的な逆プレゼンタのこのフレームバッファ選択ストラテジでは、下で説明するストラテジを使用する。このストラテジは、上の図３のブロック３１８で説明した機能およびその前後で使用することができる。
【０１７２】
この選択ストラテジは、「正規化された算術スパン幅シーケンス」ストラテジと呼ぶこともできる。この選択ストラテジは、スパン長に焦点を合わせたものである。スパンは、選択されたフレーム（キャッシングに関して）の間のフレームである。スパン長は、スパンに何個のフレームがあるかに基づく。この選択ストラテジは、複数のスパンのうちの最長スパンの複数の再デコードの長さを最小にすることを試みる。
【０１７３】
一般に、フレームバッファを再デコードする回数は、選択されたフレーム（フレームバッファにキャッシングされる）の間のスパンの長さに比例する。キャッシングされたフレームが表示される時に、そのフレームバッファは、もはや不要であり、再デコードされるフレームのキャッシングに再利用することができる。
【０１７４】
ｎのサイズが増える時に、選択ストラテジの順列最適化が、デコードされるフレームの相対的な個数ほど重要でなくなる。選択ストラテジは、各「再デコード」ブロックのスパン長を最小にすると同時に、ＢＯＦがデコードされる時のフレームバッファの増加する個数を考慮に入れるように努力する。
【０１７５】
最後にデコードされるフレームから始めて、スパン長は、１、２、３、４、５、．．．ｍ−２に比例する（すなわち、フレームインデックスの順序では、相対スパン幅が、ｍ−２、ｍ−１、．．．、３、２、１になる）。最後のインターバルをデコードするために、最初のフレーム、ｎ番目のフレーム、およびｎ番目のフレームに隣接するフレーム（すなわち、ｎ−１番目）のための少なくとも１つのフレームバッファが必要である。最後のインターバルがデコードされた後に、次の最後のインターバルをデコードするために、バッファを解放する。したがって、ｎ−２個のフレームのインターバルに置かれるｍ−３個のバッファがある。これから、２．．．ｎ−１の範囲にまたがってこれらを均等に分散させるスケーリング係数は、次の係数によって与えられる。
【０１７６】
【表８】
2006025401.tif 000010
【０１７７】
再帰として選択されるフレームの位置は、次の通りである。
【０１７８】
【表９】
2006025401.tif 000011
【０１７９】
例えば、ｎ＝１００フレームでｍ＝１０のフレームバッファを使用して、インターバルをデコードするために１つのバッファを残す場合に、９個のバッファが使用可能であり、ｋ＝２*９８／（８*９）＝２．７である。次のフレームｆ（１．．．ｍ）が、フレームバッファでのキャッシングのために選択される。
【０１８０】
【表１０】
2006025401.tif 000012
【０１８１】
（注：ｉ＝８の場合に、ｆ（１）＝ｆ（２）−ｋ*８＝２１−２２＝−１であり、これは約１である）
したがって、フレーム１、２１、４２、５８、７２、８３、９１、９６、９９、および１００が、キャッシングのために選択される。
【０１８２】
スパンをデコードした後に、このアルゴリズムが、前のスパンに再帰的に適用される。
【０１８３】
デコーディングプロセス中に、フレーム１から１００が、まず１回デコードされ（キャッシュポイントを生成するため）、その後、再デコードされるフレームの間の間隔が、２フレームだけになる。これによって、多くとも３の所与のフレームの最大再デコードカウントが作られる。例えば、９１．．．９６をデコードするには、２つの自由フレーム（９９および１００）があり、したがって、９４および９５がキャッシングされる（９２、９３、９４、９５を再デコードする）。次に、９１および９３をデコードするのに２フレームが使用可能である（９５および９６を解放することから）。同様に、１．．．２１について、８フレームが使用可能である（同一の算術スペーシングアルゴリズムを適用すると、フレームが、２の再デコードコストになる）。
【０１８４】
総デコードコストは、約２００（約２倍）であるが、メモリ要件が、１０倍だけ減る。
【０１８５】
この選択ストラテジは、各スパンの長さ（最後のフレームに対する相対的な）を徐々に増やす。
【０１８６】
対照的に、バイナリ副分割アルゴリズムは、フレーム１、５０、７５、８７、９３、９６、９９、および１００を選択する。平均して、各フレームは、ｌｎ（ｇ）回デコードされ、合計約７００のデコードコストになる。バイナリ副分割アルゴリズムは、「ｍ」を超える使用可能なバッファを利用せず、これによって、ｍ−ｌｎ（ｇ）＝１０−７＝３個のバッファを浪費する。本発明の第１のアルゴリズムは、余分なバッファを使用して、最初のスパンを５０ではなく２１の長さに減らす。
【０１８７】
Ｂフレームを含むＢＯＦへの拡張
ＢＯＦにＢフレームが含まれる場合に、ＢＯＦに非基準フレームがある場合より少数のバッファを使用することを含む上で説明した方式は、使用に余分のバッファを必要とする。このバッファは、最後にデコードされた基準フレームを、それを参照する非基準フレームが表示されるまで保存するために使用される。
【０１８８】
計算負荷の平滑化
各フレーム表示の間で、できる限り、フレームをデコードするコストのバランスをとることが望ましい。各フレーム表示の間で必要なデコードの最大回数を最小にすることが、フレームの滑らかな逆表示の最も重要な要因になる可能性がある。
【０１８９】
この場合に、ＢＯＦ内に非基準フレームがある場合より少数のバッファを使用することを伴う、逆表示の上で説明した方式を変更して、この目標を満たすことができる。これに関してこの方式を改善する形の１つが、デコードを継続するのに使用できるもの以上の空きバッファがある時に、デコードされた基準フレームの一部の表示を遅らせることである。これは、１つのＢＯＦの逆表示の終りに近く、前のＢＯＦの表示を開始する時に特に重要である。この場合に、ｍ個のフレームが使用可能であると仮定すると、表示すべきｍ個のフレームが残っている時に、各フレームバッファに、ＢＯＦ内の最初のｍ個のフレームの１つが含まれる。この場合に、例えば、ｍ番目のフレームが表示されるや否や、１つのバッファを解放し、最適のロードバランシングの対象として、前のＢＯＦの複数のフレームを、その空きバッファを使用してデコードすることができる。バッファが解放される時に、さらなるバッファを前のＢＯＦのデコードにどのように使用できるかは、簡単に諒解することができる。
【０１９０】
デコードの最大回数を最小にするか、デコードの最大時間を最小にするように特に設計されたアルゴリズムを、設計することもできる。
【０１９１】
１つのＩフレームだけを有するＢＯＦへの分解
例示的な逆プレゼンタの上の議論および説明では、各ＢＯＦが、単一のキーフレーム（例えば、Ｉフレーム）を有し、それから始まることが前提になっている。また、キーフレームに、他の基準フレーム（例えば、Ｐフレーム）および／または非基準フレーム（例えば、Ｂフレーム）が続くことが前提になっている。
【０１９２】
しかし、より複雑なＢＯＦ構造が存在する。この構造は、複数のキーフレーム（例えば、Ｉフレーム）を有する。これらは、逆に再生される時にそれぞれが１つのキーフレームを有するサブＢＯＦグループに分解することができる。例えば、ＤＶＤのＶＯＢＵは、多数のサブＢＯＦグループからなる大きいＢＯＦとみなすことができる。
【０１９３】
ＢＯＦに複数のＩフレームが含まれる場合に、これを、それぞれが単一のＩフレームを有する複数のサブＢＯＦグループに分解することができ、各サブＢＯＦグループは、あるＩフレームから次のＩフレームまでのフレームのスパンによって形成される。
【０１９４】
例示的な逆プレゼンタは、サブＢＯＦグループのブロックレベル逆提示を実行する。その結果、各サブＢＯＦのフレームのデコードが、逆転される。各サブＢＯＦグループからの第１フレームを、次にデコードされるサブＢＯＦグループのためにキャッシングすることができる。
【０１９５】
例えば、入力ＢＯＦが、Ｉ1Ｂ2Ｂ3Ｐ4Ｂ5Ｂ6Ｉ7Ｂ8Ｂ9Ｐ10Ｂ11Ｉ12Ｂ13Ｉ14であると仮定する。ＩフレームからＩフレームまでの有効なサブＢＯＦは、次の通りである。
【０１９６】
ＢＯＦ1＝Ｉ1Ｂ2Ｂ3Ｐ4Ｂ5Ｂ6Ｉ7
ＢＯＦ2＝Ｉ7Ｂ8Ｂ9Ｐ10Ｂ11Ｉ12
ＢＯＦ3＝Ｉ12Ｂ13Ｉ14
ＢＯＦ3がデコードされた後に、ＢＯＦ2を表示している間にＢ11フレームを生成する時に、フレームＩ12を保持することができる。
【０１９７】
したがって、この機能は、図３のブロック３１０の間または図４のブロック４１０の間に実行することができる。そのブロックの動作中に、受け取られるＢＯＦが、複数のサブＢＯＦグループに分解される。各プロセスの残りは、サブＢＯＦに対して行われ、完了した時に、各プロセスは先頭に戻って、次のサブＢＯＦを操作する。
【０１９８】
複雑なＢＯＦ構造を有する他のフォーマットへの拡張
ほとんどの一般的なビデオストリームフォーマットでは、Ｂフレームが、排他的な非基準フレームである。しかし、Ｈ．２６４標準規格など、他のより複雑なフォーマットが存在する。これらのフォーマットは、階層基準フレームを有するＢＯＦなど、より複雑なＢＯＦ構造を有する。これらの複雑なフォーマットでは、Ｂフレームが、他のＢフレームの基準フレームとして働く場合がある。
【０１９９】
例えば、図５のＢＯＦ  ５００によって示されるシーケンスＩ1Ｂ2Ｂ3Ｂ4Ｂ5Ｂ6Ｉ7Ｂ8Ｂ9Ｂ10Ｂ11Ｂ12Ｉ13Ｂ14Ｉ15について、次のＢＯＦ構造が存在すると仮定する。
【０２００】
この例では、ＢＯＦ  ５００に、基準フレーム５１０および非基準フレーム５２０が含まれる。これらの基準フレーム（具体的には、Ｂ2Ｂ4Ｂ6Ｂ8Ｂ11Ｂ14）は、Ｂフレームであり、通常は、非基準フレームになるだけである。しかし、階層基準フレームを有するこの複雑なＢＯＦ構造では、これらのＢフレームが、基準フレームである。というのは、他のフレーム（具体的には、Ｂ3Ｂ5Ｂ9Ｂ10Ｂ12Ｂ14）が、これらに依存するからである。これを、３つのサブＢＯＦ  ５３０、５３２、および５３４に分解することができる。
【０２０１】
例示的な逆プレゼンタは、基準フレームの間の各インターバル（例えば、各サブＢＯＦ）に適用できるブロック逆転分解（ｂｌｏｃｋ  ｒｅｖｅｒｓａｌ  ｄｅｃｏｍｐｏｓｉｔｉｏｎ）（上で説明した）を実行する。例えば、図５のサブＢＯＦ  ３（５３４）を、逆転し、提示することができる。フレームＩ13を、キャッシングし、サブＢＯＦ  ２（５３２）の逆転および再生に使用することができる。同様に、フレームＩ7をキャッシングし、サブＢＯＦ  １（５３０）の逆転および再生に使用することができる。ブロック逆転は、擬似基準フレーム５１５の間のサブＢＯＦにも適用することができる。例えば、Ｂ2．．．Ｂ6のサブＢＯＦ  ５３０を、それぞれＢ4．．．Ｂ6およびＢ2．．．Ｂ4からなる２つのサブサブＢＯＦに分解することができる。各サブサブＢＯＦを、独立に逆転することができる。
【０２０２】
その代わりに、例示的逆プレゼンタが、「インターバル基準フレーム」の間の基準フレームの数を知っている時など、別の形でＢＯＦを分解することができる。ここで、インターバル基準フレームは、図５のＩ1、Ｉ7、Ｉ13、およびＩ15など、各スペースの境界を定めるＩフレームである。サブＢＯＦ  １（５３０）インターバルは、５つの基準フレームおよび擬似基準フレーム（Ｉ1Ｂ2Ｂ4Ｂ6Ｉ7）および２つの非基準フレーム（Ｂ3Ｂ5）を有する。
【０２０３】
深さ優先トラバース（ｄｅｐｔｈ  ｆｉｒｓｔ  ｔｒａｖｅｒｓａｌ）を使用してＢＯＦ階層を線形化することによって、例示的な逆プレゼンタは、キーフレームキャッシング位置を割り当てることができる。これによって、多数のフレームバッファが、再デコードを必要とするより多数のフレームを含む枝に分散される。
【０２０４】
有効なインターバル幅は、インターバル内の基準フレームの個数と等しい。枝内の基準フレームの個数によって、インターバルの重みが割り当てられる。枝の重みは、そのインターバルおよびそのすべてのサブインターバルに必要なフレームバッファの最小個数である。
【０２０５】
部分的フレームデコード依存性を有する他のフォーマットへの拡張
最も一般的なビデオストリームフォーマットでは、生成されるフレームが、完全に他のフレームから生成される。例えば、Ｂフレームは、２つの隣接するキーフレームから再構成することができる。しかし、１つのフレームをより小さい領域に副分割できるＨ．２６４など、他のより複雑なフォーマットが存在する。フレームを、スライス（１６ピクセル高さのストライプ）に分割することができ、スライスを、マクロブロック（１６×１６ピクセルブロック）に分割することができ、マクロブロックを、サブマクロブロック（マクロブロックの半分または１／４）に分割することができるなどである。
【０２０６】
フレームの一部を他のフレームの一部および訂正係数に置換することによって実行される変更を用いて、フレームを、前のフレームのコピーとしてコーディングすることができる。
【０２０７】
これらの複雑さは、例示的な逆プレゼンタの手法に影響しない。非基準フレームは、まだ、他のフレームの生成に使用されないフレームとして定義されるが、フレームは、別のフレームの生成に必要であるならば基準フレームである。
【０２０８】
所与のＧＯＰについて、例示的な逆プレゼンタは、図５に示されたものに類似する、有向非循環依存性グラフを作成する。
【０２０９】
例示的な逆デコーダの方法論的実施形態
図６に、メディアストリームレンダリングシステム２００（またはその一部）によって実行される例示的な逆プレゼンタの方法論的実施形態を示す。この方法論的実施形態は、ソフトウェアで、ハードウェアで、またはその組合せで実施することができる。
【０２１０】
図６の６１０で、例示的な逆プレゼンタが、複雑なＢＯＦを、各サブインターバルが少なくとも１つの基準フレームを有する複数のインターバルに分割する。
【０２１１】
６１２で、例示的な逆プレゼンタが、各インターバルに対してブロック逆転分解を実行する。
【０２１２】
６１４で、例示的な逆プレゼンタが、各インターバルを、各サブインターバルが少なくとも１つの擬似基準フレームを有するサブインターバルに分割する。
【０２１３】
６１６で、例示的な逆プレゼンタが、各サブインターバルに対してブロック逆転分解を実行する。
【０２１４】
ブロック６１４および６１６は、サブインターバルの階層レイヤごとに繰り返される。
【０２１５】
デコードのコストの計算
本明細書に記載の少なくとも１つの実施形態で、基準フレーム（例えば、Ｉフレーム／Ｐフレーム）のデコードのコストが仮定される。具体的に言うと、ＩフレームおよびＰフレームの相対的なコストを仮定することができる。
【０２１６】
これらの相対デコードコストを仮定するのではなく、本明細書に記載の技法の実施形態は、ＩフレームおよびＰフレームのデコードの相対コストを計算することができる。
【０２１７】
例示的な環境
図７に、本明細書に記載の技法、システム、および他の態様を実施できる（部分的にまたは全体を）例示的な環境７００を示す。例示的な環境７００は、マルチメディアの配布を容易にするテレビジョンエンターテイメントシステムである。通常のデジタルビデオブロードキャスト（ＤＶＢ）ネットワークが、そのような環境の例である。
【０２１８】
環境７００に、１つまたは複数のマルチメディアコンテンツプロバイダ７０２、コンテンツ配信システム７０６、および、ブロードキャストネットワーク７１０を介してコンテンツ配信システム７０６に結合された１つまたは複数の提示デバイス７０８（１）、７０８（２）、．．．、７０８（Ｎ）が含まれる。
【０２１９】
マルチメディアコンテンツプロバイダ７０２に、コンテンツサーバ７１２ならびに、映画と、テレビジョン番組と、コマーシャルと、音楽と、類似するオーディオコンテンツおよびビデオコンテンツなどの記憶されたコンテンツ７１４が含まれる。コンテンツサーバ７１２は、コンテンツプロバイダ７０２からコンテンツ配信システム７０６への記憶されたコンテンツ７１４の配布を制御する。さらに、コンテンツサーバ７１２は、生のコンテンツ（例えば、ライブフィードなど、前に記憶されたものでないコンテンツ）および／またはコンテンツ配信システム７０６の他の位置に記憶されたコンテンツの配布を制御する。
【０２２０】
コンテンツ配信システム７０６は、イントラネットまたはインターネットなどのネットワーク７２０に結合することができる。コンテンツ配信システム７０６に、ブロードキャスト送信器７２８および１つまたは複数のコンテンツプロセッサ７３０が含まれる。ブロードキャスト送信器７２８は、ケーブルテレビジョン信号などの信号を、ブロードキャストネットワーク７１０を介してブロードキャストする。
【０２２１】
コンテンツ配信システム７０６は、マルチメディアコンテンツを複数の加入者に供給するヘッドエンドサービスを表す。
【０２２２】
ブロードキャストネットワーク７１０に、ケーブルテレビジョン網、ＲＦ、マイクロ波、衛星、および／またはインターネットなどのデータネットワークを含めることができ、任意のブロードキャストフォーマットまたはブロードキャストプロトコルを使用する有線媒体または無線媒体を含めることもできる。さらに、ブロードキャストネットワーク７１０は、任意のタイプのネットワークトポロジおよび任意のネットワーク通信プロトコルを使用するすべてのタイプのネットワークとすることができ、２つ以上のネットワークの組合せとして表すか他の形で実施することができる。
【０２２３】
コンテンツプロセッサ７３０は、コンテンツプロバイダ７０２から受け取ったコンテンツを、ブロードキャストネットワーク７１０を介して送信する前に処理する。特定のコンテンツプロセッサ７３０は、受け取ったコンテンツを、ブロードキャストネットワーク７１０に結合された複数の提示デバイス７０８（１）、７０８（２）、．．．、７０８（Ｎ）によって理解されるフォーマットにエンコードし、または他の形で処理することができる。
【０２２４】
提示デバイス７０８は、複数の形で実施することができる。例えば、提示デバイス７０８（１）は、衛星パラボラアンテナ７３４を介して、衛星ベース送信器からブロードキャストコンテンツを受け取る。提示デバイス７０８（１）を、セットトップボックスまたは衛星受信デバイスとも称する。提示デバイス７０８（１）は、提示デバイスによって受け取られたコンテンツ（例えば、オーディオデータおよびビデオデータ）ならびにグラフィカルユーザインターフェースを提示するためにテレビジョン７３６（１）に結合される。特定の提示デバイス７０８を、任意の台数のテレビジョン７３６および／またはコンテンツを表示し、または他の形でレンダリングする類似するデバイスに結合することができる。同様に、任意の個数の提示デバイス７０８を、単一のテレビジョン７３６に結合することができる。
【０２２５】
提示デバイス７０８（２）も、ブロードキャストネットワーク７１０からブロードキャストコンテンツを受け取るために結合され、受け取ったコンテンツを関連するテレビジョン７３６（２）に供給する。提示デバイス７０８（Ｎ）は、組合せテレビジョン７３８および一体化されたセットトップボックス７４０の例である。この例では、セットトップボックスの様々なコンポーネントおよび機能が、２つの別々のデバイスを使用するのではなく、テレビジョンに組み込まれる。テレビジョンに組み込まれたセットトップボックスは、衛星パラボラアンテナ（衛星パラボラアンテナ７３４に類似する）を介しておよび／またはブロードキャストネットワーク７１０を介して、ブロードキャスト信号を受け取ることができる。代替実施形態では、提示デバイス７０８は、インターネットまたは他のブロードキャストメディアを介してブロードキャスト信号を受け取ることができる。
【０２２６】
例示的な環境７００に、ビデオオンデマンド（ＶＯＤ）映画コンテンツなど、記憶されたオンデマンドコンテンツ７４２も含まれる。記憶されたオンデマンドコンテンツは、例えば、オンスクリーン映画ガイドを介して提示デバイス７０８を用いて見ることができ、視聴者は、特定の映画または他の記憶されたコンテンツを対応する提示デバイス７０８にストリーミングする指示を入力することができる。
【０２２７】
ここまでで、この例示的環境７００を、デジタルビデオブロードキャスト（ＤＶＢ）環境に関して説明した。実際に、それは例示的な環境である。しかし、例示的な逆プレゼンタは、ＤＶＢ環境自体の全体なしで実施することができる。その代わりに、例示的な逆プレゼンタを、デバイス７０８（Ｘ）に示されたものなど、独立型の提示デバイスによって実施することができる。
【０２２８】
独立型の提示デバイス７０８（Ｘ）は、ＤＶＤディスクなどの記憶媒体７４４からデジタルビデオにアクセスする。このデバイスは、媒体からのコンテンツを関連するテレビジョン７３９に供給する。そのような独立型提示デバイスの例に、ＤＶＤプレイヤ、パーソナルビデオレコーダなどが含まれる。
【０２２９】
提示デバイスの例
図８に、テレビジョン７３６に接続された独立型ユニットとして示された提示デバイス７０８の例示的実施形態８００を示す。提示デバイス７０８は、セットトップボックス、衛星受信器、ハードディスク付きのＴＶレコーダ、ゲーム機、情報アプライアンス、ＤＶＤプレイヤ、パーソナルビデオレコーダなどを含む任意の数の実施形態で実施することができる。
【０２３０】
提示デバイス７０８に、赤外線（ＩＲ）無線ポートまたはＢｌｕｅｔｏｏｔｈ無線ポートなど、リモートコントロールデバイス８０４、ハンドヘルド入力デバイス８０６、または無線キーボードなどの他の無線デバイスからの無線通信を受け取る無線受信ポート８０２が含まれる。ハンドヘルド入力デバイス８０６は、携帯情報端末（ＰＤＡ）、ハンドヘルドコンピュータ、無線電話機、または類似物とすることができる。さらに、無線キーボード８０８が、提示デバイス７０８と通信するために結合される。代替実施形態では、リモートコントロールデバイス８０４、ハンドヘルド入力デバイス８０６、および／またはキーボード８０８が、ＲＦ通信リンクまたは他のモードの伝送を使用して、提示デバイス７０８と通信することができる。
【０２３１】
提示デバイス７０８は、ＤＶＤディスクなどのコンテンツ記憶媒体を読み取る記憶媒体リーダー８０９を有する場合がある。独立型または非独立型の提示デバイス７０８に、記憶媒体リーダー８０９を含めることができる。
【０２３２】
提示デバイス７０８は、衛星からまたはブロードキャストネットワークからなど、１つまたは複数のブロードキャストソースから１つまたは複数のブロードキャスト信号８１０を受け取ることができる。提示デバイス７０８に、ＮＴＳＣ、ＰＡＬ、ＳＥＣＡＭ、または他のＴＶシステムビデオ信号などのブロードキャスト信号８１０を受信し、デコードするハードウェアおよび／またはソフトウェアが含まれる。
【０２３３】
提示デバイス７０８に、ユーザが、例えば、様々なネットワークサービスにアクセスし、提示デバイス７０８を構成し、他の機能を実行できるようにするグラフィカルユーザインターフェースをユーザに提供するハードウェアおよび／またはソフトウェアも含まれる。
【０２３４】
提示デバイス７０８は、従来の電話回線８１２、ＩＳＤＮリンク８１４、ケーブルリンク８１６、イーサネット（登録商標）リンク８１８、ＤＳＬリンク８２０、および類似物を含む１つまたは複数の接続を介して他のデバイスと通信できる場合がある。提示デバイス７０８は、特定の瞬間に様々な通信リンク８１２〜８２０の１つまたは複数を使用して、任意の個数の他のデバイスと通信することができる。
【０２３５】
提示デバイス７０８は、ビデオ信号８２０およびオーディオ信号８２２を生成し、この信号の両方が、テレビジョン７３６に伝えられる。ビデオ信号およびオーディオ信号は、ＲＦ（ｒａｄｉｏ  ｆｒｅｑｕｅｎｃｙ）リンク、Ｓビデオリンク、コンポジットビデオリンク、コンポーネントビデオリンク、または他の通信リンクを介して提示デバイス７０８からテレビジョン７３６に伝えることができる。
【０２３６】
図８には示されていないが、提示デバイス７０８に、デバイスの現在の状態を識別する、１つまたは複数のライトまたは他のインジケータを含めることができる。さらに、提示デバイスに、デバイスの動作を制御するために、１つまたは複数のコントロールボタン、スイッチ、または他の選択可能なコントロールを含めることができる。
【０２３７】
図９に、図７および８に示された提示デバイス７０８の選択されたコンポーネントを示す。提示デバイス７０８に、第１チューナ９００および任意選択の第２チューナ９０２が含まれる。これらのチューナを、受信ユニットと呼ぶ場合がある。チューナ９００および９０２は、テレビジョン信号を受信するために様々な周波数またはチャンネルに同調する１つまたは複数の帯域内チューナならびにそれを介して他のコンテンツを提示デバイス７０８にブロードキャストできるブロードキャストチャネルに同調する帯域外チューナを表す。
【０２３８】
提示デバイス７０８に、１つまたは複数のプロセッサ９０４および１つまたは複数のメモリコンポーネントも含まれる。可能なメモリコンポーネントの例に、ランダムアクセスメモリ（ＲＡＭ）９０６、ディスクドライブ９０８、マスストレージコンポーネント９１０、および不揮発性メモリ９１２（例えば、ＲＯＭ、フラッシュ、ＥＰＲＯＭ、ＥＥＰＲＯＭなど）が含まれる。
【０２３９】
提示デバイス７０８の代替実施形態に、ある範囲の処理機能およびメモリ機能を含めることができ、図９に示されたものより多数またはより少数のタイプのメモリコンポーネントを含めることができる。
【０２４０】
プロセッサ９０４は、様々な命令を処理して、提示デバイス７０８の動作を制御し、他の電子デバイスおよびコンピューティングデバイスと通信する。メモリコンポーネント（例えば、ＲＡＭ９０６、ディスクドライブ９０８、記憶媒体９１０、および不揮発性メモリ９１２）は、マルチメディアコンテンツ、電子プログラムデータ、ウェブコンテンツデータ、提示デバイス７０８のコンフィギュレーション情報、および／またはグラフィカルユーザインターフェース情報などの様々な情報および／またはデータを記憶する。デバイスは、これらの多数のメモリコンポーネントのいずれかにデータをキャッシングすることができる。
【０２４１】
オペレーティングシステム９１４および１つまたは複数のアプリケーションプログラム９１６を、不揮発性メモリ９１２に記憶し、プロセッサ９０４で実行して、ランタイム環境を提供することができる。ランタイム環境は、様々なインターフェースを定義できるようにすることによって提示デバイス７０８の拡張性を容易にし、このインターフェースは、アプリケーションプログラム９１６が提示デバイス７０８と相互作用できるようにする。
【０２４２】
提示デバイス７０８で実施できるアプリケーションプログラム９１６に、電子番組ガイド（ＥＰＧ）、電子メールを容易にする電子メールプログラムなどを含めることができる。
【０２４３】
提示デバイス７０８に、図を単純にするためにこの例に示されていないテレビジョンエンターテイメントシステムに関係する他のコンポーネントも含めることができる。例えば、提示デバイス７０８に、デバイスとの視聴者対話を容易にするために、ユーザインターフェースアプリケーションおよびユーザインターフェースライト、ボタン、コントロールなどを含めることができる。
【０２４４】
提示デバイス７０８に、ＮＴＳＣ、ＰＡＬ、ＳＥＣＡＭ、または他のＴＶシステムビデオ信号などのブロードキャストビデオ信号をデコードするデコーダ９２０も含まれる。これは、ＭＰＥＧとして形成されたものなどのデジタル圧縮ビデオストリームをデコードするデコーダとすることもできる。これは、図２のデコーダ２１０、２１２、および２１４と同一のタイプのデコーダとすることができる。
【０２４５】
提示デバイス７０８に、さらに、無線インターフェース９２２、ネットワークインターフェース９２４、シリアルおよび／またはパラレルインターフェース９２６、およびモデム９２８が含まれる。無線インターフェース９２２は、提示デバイス７０８が、リモートコントロールデバイスからまたは別のＩＲ、Ｂｌｕｅｔｏｏｔｈ、もしくは類似するＲＦ入力デバイスからなど、ユーザが操作した入力デバイスから入力コマンドおよび他の情報を受け取ることを可能にする。
【０２４６】
ネットワークインターフェース９２４ならびにシリアルおよび／またはパラレルインターフェース９２６は、提示デバイス７０８が、様々な通信リンクを介して他の電子デバイスおよび通信デバイスと相互作用し、通信することを可能にする。図示されていないが、提示デバイス７０８に、他のデバイスと通信する、他のタイプのデータ通信インターフェースを含めることもできる。モデム９２８は、提示デバイス７０８が、普通の電話回線を介して他の電子デバイスおよびコンピューティングデバイスと通信するのを容易にする。
【０２４７】
提示デバイス７０８に、テレビジョンまたは他のデバイスに信号を供給する、オーディオデータおよびビデオデータを処理し、かつ／または提示し、あるいは他の形でレンダリングするオーディオ／ビデオ出力９３０も含まれる。この出力を、ディスプレイと呼ぶ場合がある。
【０２４８】
提示デバイス７０８に、例示的な逆プレゼンタを部分的にまたは全体的に実施するデコードコントローラ９４０も含まれる。これは、アプリケーションプログラムまたはハードウェアコンポーネント（あるいはこの両方の組合せ）とすることができる。
【０２４９】
別々に図示されているが、提示デバイス７０８のコンポーネントのいくつかを、特定用途向け集積回路（ＡＳＩＣ）で実施することができる。さらに、システムバス（図示せず）によって、通常、提示デバイス７０８内の様々なコンポーネントが接続される。
【０２５０】
例示的なコンピューティングシステムおよびコンピューティング環境
図１０に、本明細書に記載の例示的な逆プレゼンタを（完全にまたは部分的にのいずれかで）実施できる適切なコンピューティング環境１０００の例を示す。コンピューティング環境１０００は、本明細書に記載のコンピュータアーキテクチャおよびネットワークアーキテクチャで使用することができる。
【０２５１】
例示的なコンピューティング環境１０００は、コンピューティング環境の１つの例にすぎず、コンピュータアーキテクチャおよびネットワークアーキテクチャの使用または機能の範囲に関する制限を提案することを意図したものではない。コンピューティング環境１０００を、例示的なコンピューティング環境１０００に図示されたコンポーネントのいずれかまたはその組合せに関する依存性または要件を有すると解釈してもならない。
【０２５２】
例示的な逆プレゼンタは、多数の他の汎用のまたは特殊目的のコンピューティングシステム環境およびコンピューティングコンフィギュレーションと共に使用することができる。使用に適する可能性がある周知のコンピューティングシステム、コンピューティング環境、および／またはコンピューティングコンフィギュレーションの例に、パーソナルコンピュータ、サーバコンピュータ、シンクライアント、シッククライアント、ハンドヘルドデバイス、またはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブルな家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境、および類似物が含まれるが、これに制限はされない。
【０２５３】
例示的な逆プレゼンタを、プログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能命令の全般的な文脈で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか、特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。例示的な逆プレゼンタは、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実践することもできる。分散コンピューティング環境では、プログラムモジュールを、メモリストレージデバイスを含む、ローカルとリモートの両方のコンピュータ記憶媒体に配置することができる。
【０２５４】
コンピューティング環境１０００に、コンピュータ１００２の形の汎用コンピューティングデバイスが含まれ、このコンピュータは、提示デバイス７０８のもう１つの例とすることができる。コンピュータ１００２のコンポーネントに、１つまたは複数のプロセッサまたは処理ユニット１００４、システムメモリ１００６、プロセッサ１００４を含む様々なシステムコンポーネントをシステムメモリ１００６に結合するシステムバス１００８を含めることができるが、これに制限はされない。
【０２５５】
システムバス１００８は、メモリバスまたはメモリコントローラ、周辺バス、ａｃｃｅｌｅｒａｔｅｄ  ｇｒａｐｈｉｃｓ  ｐｏｒｔ、または様々なバスアーキテクチャのいずれかを使用するローカルバスを含む様々なバスアーキテクチャのいずれかを使用する、任意の複数のタイプのバス構造の１つまたは複数を表す。例えば、そのようなアーキテクチャに、ＣａｒｄＢｕｓ、Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ（ＰＣＭＣＩＡ）、Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ（ＡＧＰ）、Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ）、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）、ＩＥＥＥ  １３９４、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカルバス、およびメザニンバスとも称するＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ（ＰＣＩ）バスが含まれる。
【０２５６】
コンピュータ１００２に、通常は、様々なコンピュータ可読媒体が含まれる。そのような媒体は、コンピュータ１００２によってアクセス可能なすべての使用可能な媒体とすることができ、揮発性媒体および不揮発性媒体と、取外し可能媒体および取外し不能媒体の両方が含まれる。
【０２５７】
システムメモリ１００６に、ランダムアクセスメモリ（ＲＡＭ）１０１０などの揮発性メモリの形および／または読み出し専用メモリ（ＲＯＭ）１０１２などの不揮発性メモリの形のコンピュータ可読媒体が含まれる。スタートアップ中などにコンピュータ１００２内の要素の間での情報の転送を助ける基本ルーチンを含む基本入出力システム（ＢＩＯＳ）１０１４が、ＲＯＭ  １０１２に記憶される。ＲＡＭ  １０１０に、通常、処理ユニット１００４によって即座にアクセス可能および／またはこれによって現在処理されているデータおよび／またはプログラムモジュールが含まれる。
【０２５８】
コンピュータ１００２に、他の取外し可能／取外し不能の、揮発性／不揮発性のコンピュータ記憶媒体も含めることができる。例えば、図１０に、取外し不能不揮発性磁気媒体（図示せず）から読み取り、これに書き込むハードディスクドライブ１０１６、取外し可能不揮発性磁気ディスク１０２０（例えば、「フロッピディスク」）から読み取り、これに書き込む磁気ディスクドライブ１０１８、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光学媒体などの取外し可能不揮発性光学ディスク１０２４から読み取り、かつ／またはこれに書き込む光学ディスクドライブ１０２２を示す。ハードディスクドライブ１０１６、磁気ディスクドライブ１０１８、および光学ディスクドライブ１０２２は、それぞれ、１つまたは複数のデータメディアインターフェース１０２６によってシステムバス１００８に接続される。代替案では、ハードディスクドライブ１０１６、磁気ディスクドライブ１０１８、および光学ディスクドライブ１０２２を、１つまたは複数のインターフェース（図示せず）によってシステムバス１００８に接続することができる。
【０２５９】
ディスクドライブおよびそれに関連するコンピュータ可読媒体は、コンピュータ１００２に、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージを提供する。この例には、ハードディスク１０１６、取外し可能磁気ディスク１０２０、および取外し可能光学ディスク１０２４が示されているが、磁気カセットまたは他の磁気ストレージデバイス、フラッシュメモリカード、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または他の光学ストレージ、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）、および類似物など、コンピュータによってアクセス可能なデータを記憶できる他のタイプのコンピュータ可読媒体を使用して、例示的なコンピューティングシステムおよびコンピューティング環境を実施することもできることを諒解されたい。
【０２６０】
例えばオペレーティングシステム１０２７、１つまたは複数のアプリケーションプログラム１０２８、他のプログラムモジュール１０３０、およびプログラムデータ１０３２を含む任意の個数のプログラムモジュールを、ハードディスク１０１６、磁気ディスク１０２０、光学ディスク１０２４、ＲＯＭ  １０１２、および／またはＲＡＭ  １０１０に記憶することができる。
【０２６１】
ユーザは、キーボード１０３４およびポインティングデバイス１０３６（例えば「マウス」）などの入力デバイスを介してコンピュータ１００２にコマンドおよび情報を入力することができる。他の入力デバイス１０３８（具体的には図示せず）に、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、シリアルポート、スキャナ、および／または類似物を含めることができる。これらおよび他の入力デバイスは、システムバス１００８に結合された入出力インターフェース１０４０を介して処理ユニット１００４に接続されるが、パラレルポート、ゲームポート、またはｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ（ＵＳＢ）などの他のインターフェース構造およびバス構造によって接続することができる。
【０２６２】
モニタ１０４２または他のタイプのディスプレイデバイスも、ビデオアダプタ１０４４などのインターフェースを介してシステムバス１００８に接続することができる。モニタ１０４２の他に、他の出力周辺デバイスに、入出力インターフェース１０４０を介してコンピュータ１００２に接続できるスピーカ（図示せず）およびプリンタ１０４６などのコンポーネントを含めることができる。
【０２６３】
コンピュータ１００２は、リモートコンピューティングデバイス１０４８などの１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作することができる。例えば、リモートコンピューティングデバイス１０４８を、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイスまたは他の一般的なネットワークノード、および類似物とすることができる。リモートコンピューティングデバイス１０４８は、本明細書でコンピュータ１００２に関して説明した要素および特徴の多くまたはすべてを含めることができるポータブルコンピュータとして図示されている。
【０２６４】
コンピュータ１００２とリモートコンピューティングデバイス１０４８の間の論理接続は、ローカルエリアネットワーク（ＬＡＮ）１０５０および一般的な広域ネットワーク（ＷＡＮ）１０５２として図示されている。そのようなネットワーキング環境は、オフィス、会社全体のコンピュータネットワーク、イントラネット、およびインターネットでありふれたものである。
【０２６５】
ＬＡＮネットワーキング環境で実施される時に、コンピュータ１００２は、ネットワークインターフェースまたはネットワークアダプタ１０５４を介してローカルネットワーク１０５０に接続される。ＷＡＮネットワーキング環境で実施される時に、コンピュータ１００２に、通常、広域ネットワーク１０５２を介する通信を確立する、モデム１０５６または他の手段が含まれる。モデム１０５６は、コンピュータ１００２に内蔵または外付けとすることができるが、入出力インターフェース１０４０または他の適当な機構を介してシステムバス１００８に接続することができる。図示のネットワーク接続が、例示的であることと、コンピュータ１００２と１０４８の間の通信リンクを確立する他の手段を使用できることを諒解されたい。
【０２６６】
コンピューティング環境１０００と共に示されたものなどのネットワーク化された環境では、コンピュータ１００２に関して示されたプログラムモジュールまたはその一部を、リモートメモリストレージデバイスに記憶することができる。例えば、リモートアプリケーションプログラム１０５８が、リモートコンピュータ１０４８のメモリデバイスに常駐する。
【０２６７】
例示において、アプリケーションプログラムおよび、オペレーティングシステムなどの他の実行可能プログラムコンポーネントが、本明細書では別個のブロックとして示されているが、そのようなプログラムおよびコンポーネントが、様々な時に、コンピューティングデバイス１００２の様々なストレージコンポーネントに常駐し、コンピュータのデータプロセッサによって実行されることを理解されたい。
【０２６８】
コンピュータ実行可能命令
例示的な逆プレゼンタの実施形態を、プログラムモジュールなど、１つまたは複数のコンピュータもしくは他のデバイスによって実行されるコンピュータ実行可能命令の一般的なコンテキストで説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか、特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。通常、プログラムモジュールの機能は、様々な実施形態で、望み通りに組み合わせるか分散させることができる。
【０２６９】
コンピュータ可読媒体
例示的な逆プレゼンタの実施形態を、ある形のコンピュータ可読媒体に記憶するか、これにまたがって伝送することができる。コンピュータ可読媒体は、コンピュータによってアクセスできるすべての使用可能な媒体とすることができる。制限ではなく例として、コンピュータ可読媒体に、「コンピュータ記憶媒体」および「通信媒体」を含めることができる。
【０２７０】
「コンピュータ記憶媒体」に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報のストレージの方法またはテクノロジで実施された、揮発性および不揮発性の、取外し可能および取外し不能の媒体が含まれる。コンピュータ記憶媒体に、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリテクノロジ、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ストレージデバイス、あるいは、所望の情報を記憶するのに使用でき、コンピュータによってアクセスできる他のすべての媒体が含まれるが、これに制限はされない。
【０２７１】
「通信媒体」は、通常は、搬送波または他のトランスポート機構など、変調されたデータ信号内でコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを具現化する。通信媒体に、すべての情報配信媒体も含まれる。
【０２７２】
用語「変調されたデータ信号」は、信号内で情報をエンコードする形でその特性の１つまたは複数を設定または変更された信号を意味する。制限ではなく例として、通信媒体に、有線ネットワークまたは直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体が含まれる。上記のいずれかの組合せも、コンピュータ可読媒体の範囲に含まれる。
【０２７３】
結論
本発明を、構造的特徴および／または方法論的ステップに固有の言葉で説明したが、請求項で定義される本発明が、説明した特定の特徴またはステップに必ずしも制限されないことを理解されたい。そうではなく、特定の特徴およびステップは、請求される発明を実施する好ましい形態として開示されたものである。
【図面の簡単な説明】
【０２７４】
【図１】本明細書に記載の実施形態に従って使用することができるｇｒｏｕｐ−ｏｆ−ｐｉｃｔｕｒｅｓ（ＧＯＰ）を示すブロック図である。
【図２】本明細書に記載の実施形態によるシステムを示すブロック図である。
【図３】本明細書に記載の方法論的実施形態を示す流れ図である。
【図４】本明細書に記載の方法論的実施形態を示す流れ図である。
【図５】本明細書に記載の実施形態に従って使用することができる複合ｇｒｏｕｐ−ｏｆ−ｐｉｃｔｕｒｅｓ（ＧＯＰ）を示すブロック図である。
【図６】本明細書に記載の方法論的実施形態を示す流れ図である。
【図７】本明細書に記載の実施形態を使用できる例示的環境を示す図である。
【図８】例の提示デバイス、テレビジョン、および提示デバイスと相互作用する様々な入力デバイスを示す図である。
【図９】図７および８に示された例の提示デバイスのコンポーネントを示すブロック図である。
【図１０】本明細書に記載の実施形態の少なくとも１つを（全体的にまたは部分的に）実施できるコンピューティングオペレーティング環境の例を示す図である。
【符号の説明】
【０２７５】
２０２  アプリケーション
２０４  ソース
２０８  デマルチプレクサ
２１０  ビデオデコーダ
２１２  オーディオデコーダ
２１４  サブピクチャデコーダ
２１６  ビデオレンダラ
２１８  オーディオレンダラ
【図１】
2006025401.tif 000013
【図２】
2006025401.tif 000014
【図３】
2006025401.tif 000015
【図４】
2006025401.tif 000016
【図５】
2006025401.tif 000017
【図６】
2006025401.tif 000018
【図７】
2006025401.tif 000019
【図８】
2006025401.tif 000020
【図９】
2006025401.tif 000021
【図１０】
2006025401.tif 000022
【外国語明細書】
2006025401000001.pdf