(57)【要約】  動き予測を使用してデジタル・イメージ・データを圧縮するための方法および装置を本明細書で説明する。一実施形態では、イメージ・シーケンスの各２つの連続するフレームに対して、それらの連続するフレーム間の動き予測が、フレームの輝度マップ上の動きを追跡して、輝度成分に関する動き予測情報を生成することによって実行される。輝度成分の動き予測情報は、次に、クロミナンス・マップに適用される。動き予測に応答して、各フレームのウェーブレット係数と動き予測情報が、目標伝送速度に基づいてビット・ストリームに符号化され、ただし、符号化されたウェーブレット係数が所定のアルゴリズムにしたがって予め決めたしきい値を満たす。また、他の方法および装置も説明する。
2007529184.tif 000002
【特許請求の範囲】
【請求項１】
イメージ・シーケンスの各２つの連続するフレームに対して、輝度成分に関する動き予測情報を生成するために、前記フレームの輝度マップ上の動きを追跡して前記連続するフレーム間における動き予測を実行し、かつ前記輝度マップの前記動き予測情報をクロミナンス・マップに適用すること、および
前記動き予測に応答して、各フレームのウェーブレット係数と前記動き予測情報を、目標伝送速度に基づいてビット・ストリームに符号化することを含み、前記符号化されたウェーブレット係数が所定のアルゴリズムにしたがって予め決めたしきい値を満たす、コンピュータによって実施される方法。
【請求項２】
２つのフレーム間における動き予測を実行することは、
各フレームの１つまたは複数のサブバンドの中の相同のピクセルの動きにタグを付けて、前記相同のピクセルの１つまたは複数の動きベクトルを決定すること、および
前記決定された１つまたは複数の動きベクトルを最小絶対差分方向で符号化することを含む請求項１に記載の方法。
【請求項３】
前記動き予測は、前記輝度マップの最も粗いサブバンドに対して実行されて、前記最も粗いサブバンドのそれぞれに関する動きベクトルが生成され、前記最も粗いサブバンドの前記動きベクトルは、前記フレームのより細かいサブバンドの動きベクトルを決定する親動きベクトルとして使用される請求項１に記載の方法。
【請求項４】
前記対応する親サブバンドの前記動きベクトルを使用して子サブバンドのピクセルの空間的移動を推定して子サブバンドのサーチ区域を特定すること、および
決定されたサーチ区域内の前記子サブバンドに関する動き予測を実行して、前記子サブバンドの前記動きベクトルを決定することをさらに含む請求項３に記載の方法。
【請求項５】
対応する親ブロック、前記シーケンスの第１のフレーム、Ｉフレームの１つから基準ブロックを決めること、
分解レベルに基づいて決定された近傍ゾーンを有する、前記基準ブロックを囲むサーチ区域を決めること、および
前記定義されたサーチ区域内でサーチ−マッチ・オペレーションを実行して、マッチするブロックを識別する改良された動きベクトルを得ることをさらに含む請求項４に記載の方法。
【請求項６】
前記サーチ−マッチ・オペレーションは、現在の分解レベルと分解レベルの総数に基づいて実行される請求項５に記載の方法。
【請求項７】
前記マッチするブロックを現在のブロックから減算して補償ブロックを生成することにより、前記改良された動きベクトルを使用して動き補償を実行することをさらに含み、前記補償ブロックの少なくとも一部分が、前記ビット・ストリームの中に符号化される請求項５に記載の方法。
【請求項８】
ウェーブレット係数を符号化することは、目標伝送速度に基づき、ビット・ストリームに入る前回の実行の親サブバンドから得られたフレームのサブバンドに対して繰り返し実行され、前記予め決めたしきい値を満たさない前記ウェーブレット係数は、各回の実行において無視される請求項１に記載の方法。
【請求項９】
前記目標伝送速度に従ってネットワークを介して、前記ビット・ストリームの少なくとも一部分を受信側に伝送することをさらに含み、前記伝送されたビット・ストリームは、前記受信側によって復号化されると、前記フレームのイメージを表すのに十分である請求項８に記載の方法。
【請求項１０】
反復符号化は、前記ウェーブレット係数の有意性を表す順序に従って実行される請求項９に記載の方法。
【請求項１１】
前記順序は、前記フレーム全体をわたるジグザグの順序であり、したがって、有意な係数が、それほど有意でない係数に先立って前記ビット・ストリームの中で符号化され、前記ビット・ストリームの一部分が前記目標伝送速度によって伝送されると、前記有意な係数を表すビットの少なくとも一部分は伝送されるのに対して、前記それほど有意でない係数を表すビットの少なくとも一部分は無視される請求項１０に記載の方法。
【請求項１２】
イメージ・シーケンスの各２つの連続するフレームに対して、輝度成分に関する動き予測情報を生成するために、前記フレームの輝度マップ上の動きを追跡して前記連続するフレーム間における動き予測を実行し、かつ前記輝度マップの前記動き予測情報をクロミナンス・マップに適用すること、および
前記動き予測に応答して、各フレームのウェーブレット係数と前記動き予測情報を、目標伝送速度に基づいてビット・ストリームに符号化することを含み、前記符号化されたウェーブレット係数が所定のアルゴリズムにしたがって予め決めたしきい値を満たす方法をマシンに実行させる実行可能コードを有するマシン可読媒体。
【請求項１３】
２つのフレーム間における動き予測を実行することは、
各フレームの１つまたは複数のサブバンドの中の相同のピクセルの動きにタグを付けて、前記相同のピクセルの１つまたは複数の動きベクトルを決定すること、および
前記決定された１つまたは複数の動きベクトルを最小絶対差分方向で符号化することを含む請求項１２に記載のマシン可読媒体。
【請求項１４】
前記動き予測は、前記輝度マップの最も粗いサブバンドに対して実行されて、前記最も粗いサブバンドのそれぞれに関する動きベクトルが生成され、前記最も粗いサブバンドの前記動きベクトルは、前記フレームのより細かいサブバンドの動きベクトルを決定する親動きベクトルとして使用される請求項１２に記載のマシン可読媒体。
【請求項１５】
前記方法は、
前記対応する親サブバンドの前記動きベクトルを使用して子サブバンドのピクセルの空間的移動を推定して子サブバンドのサーチ区域を特定すること、および
決定されたサーチ区域内の前記子サブバンドに関する動き予測を実行して、前記子サブバンドの前記動きベクトルを決定することをさらに含む請求項１４に記載のマシン可読媒体。
【請求項１６】
前記方法は、
対応する親ブロック、前記シーケンスの第１のフレーム、Ｉフレームの１つから基準ブロックを決めること、
分解レベルに基づいて決定された近傍ゾーンを有する、前記基準ブロックを囲むサーチ区域を決めること、および
前記定義されたサーチ区域内でサーチ−マッチ・オペレーションを実行して、マッチするブロックを識別する改良された動きベクトルを得ることをさらに含む請求項１５に記載のマシン可読媒体。
【請求項１７】
前記サーチ−マッチ・オペレーションは、現在の分解レベルと分解レベルの総数に基づいて実行される請求項１６に記載のマシン可読媒体。
【請求項１８】
前記方法は、前記マッチするブロックを現在のブロックから減算して補償ブロックを生成することにより、前記改良された動きベクトルを使用して動き補償を実行することをさらに含み、前記補償ブロックの少なくとも一部分が、前記ビット・ストリームの中に符号化される請求項１６に記載のマシン可読媒体。
【請求項１９】
ウェーブレット係数を符号化することが、目標伝送速度に基づき、ビット・ストリームに入る前回の実行の親サブバンドから得られたフレームのサブバンドに対して繰り返し実行され、前記予め決めたしきい値を満たさない前記ウェーブレット係数が各回の実行において無視される請求項１２に記載のマシン可読媒体。
【請求項２０】
イメージ・シーケンスの１つまたは複数のフレームをキャプチャするキャプチャ・デバイスと、
前記キャプチャ・デバイスに前記各フレームごとに結合されたエンコーダとを有し、そのエンコーダが、
輝度成分に関する動き予測情報を生成するために、イメージ・シーケンスの各２つの連続するフレームに対して、前記フレームの輝度マップ上の動きを追跡して、前記連続するフレーム間における動き予測を実行し、かつ前記輝度マップの前記動き予測情報をクロミナンス・マップに適用し、かつ
前記動き予測に応答して、各フレームのウェーブレット係数と前記動き予測情報を、目標伝送速度に基づいてビット・ストリームに符号化するように構成され、
前記符号化されたウェーブレット係数が所定のアルゴリズムにしたがって予め決めたしきい値を満たすデータ処理システム。
【請求項２１】
ポケットＰＣベースのＰＤＡとスマートホン、ＰａｌｍベースのＰＤＡとスマートホン、Ｓｙｍｂｉａｎベースの電話機、ＰＤＡ、Ｊ２ＭＥとＢＲＥＷの少なくともいずれかをサポートする電話機の１つを含む移動デバイスにおいて、少なくとも１つのフレームを有するビット・ストリームの少なくとも一部分を受信すること、および
前記受信されたビットを繰り返し復号化して、フレームのイメージを再構成することを含む、コンピュータによって実施される方法。
【請求項２２】
繰り返し復号化することは、前記符号化された係数に関連する有意性情報、符号情報、ビットプレーン情報を、それぞれのサブバンド内における符号化された係数の位置に基づいて生成することを含む請求項２１に記載の方法。
【請求項２３】
異なる分解レベルに対して前記有意性情報、前記符号情報、前記ビットプレーン情報を表す別々のコンテキストを保持することをさらに含み、前記コンテキストの内容は、前記受信されたビット・ストリームから更新される請求項２２に記載の方法。
【請求項２４】
反復復号化は、前記ウェーブレット係数の有意性を表す順序に従って実行される請求項２２に記載の方法。
【請求項２５】
現在の実行の予め決めたしきい値を所定のオフセットだけ減分して、次回の実行のための新たなしきい値を生成することをさらに含む請求項２２に記載の方法。
【請求項２６】
前記所定のオフセットは、前記現在の実行の前記予め決めたしきい値の半分までを含む請求項２５に記載の方法。
【請求項２７】
前記次回の実行に関する復号化区域は、前記所定のオフセットに基づいて決定される率だけ、前記現在の実行の前記復号化区域より大きい請求項２５に記載の方法。
【請求項２８】
前記ビット・ストリームから復号化されるデータの量は、再構築されるイメージの要求される品質に基づいて決定される請求項２２に記載の方法。
【請求項２９】
前記順序は前記フレーム全体にわたるジグザグの順序であり、したがって、有意な係数が、前記ビット・ストリームの中のそれほど有意でない係数に先立って復号化され、前記ビット・ストリームの一部分が受信されると、前記再構築されるフレームの前記要求される品質に応じて、前記有意な係数を表すビットの少なくとも一部分は復号化されるのに対して、前記それほど有意でない係数を表すビットの少なくとも一部分は無視される請求項２４に記載の方法。
【請求項３０】
それぞれの再構築された係数に対して逆ウェーブレット変換が実行されて、前記フレームのイメージを表す複数のピクセルが生成される請求項２１に記載の方法。
【請求項３１】
イメージ・シーケンスの各２つの連続する復号化されたフレームに対して、前記ビット・ストリームの中に存在する動きベクトルを輝度マップとクロミナンス・マップのために使用することにより、前記連続するフレームの間における動き補償を実行する請求項２１に記載の方法。
【請求項３２】
前記より細かいサブバンドに関する前記動きベクトルは、前記ビット・ストリームの中に存在する増分の差分値を加算することによって前記最も粗いサブバンドの前記動きベクトルから構築される請求項２１に記載の方法。
【請求項３３】
フレームの各ピクセルに対してウェーブレット変換を実行して、周波数ドメインにおける各ピクセルを表す複数のウェーブレット係数を生成すること、
目標伝送速度に基づき、ビット・ストリームに入る前回の実行の親サブバンドから得られたフレームのサブバンドのウェーブレット係数を繰り返し符号化することを含み、前記符号化されるウェーブレット係数が所定のアルゴリズムに基づく予め決めたしきい値を満たすのに対して、前記予め決めたしきい値を満たさない前記ウェーブレット係数は、各回の実行において無視される、コンピュータによって実施される方法。
【請求項３４】
前記目標伝送速度に従ってネットワークを介して、前記ビット・ストリームの少なくとも一部分を受信側に伝送することをさらに含み、前記伝送されたビット・ストリームは、前記受信側によって復号化されると、前記フレームのイメージを表すのに十分である請求項３３に記載の方法。
【請求項３５】
反復符号化は、前記ウェーブレット係数の有意性を表す順序に従って実行される請求項３４に記載の方法。
【請求項３６】
前記順序は前記フレーム全体をわたるジグザグの順序であり、したがって、有意な係数が、それほど有意でない係数に先立って、前記ビット・ストリームの中で符号化され、前記ビット・ストリームの一部分が前記目標伝送速度によって伝送されると、前記有意な係数を表すビットの少なくとも一部分は伝送されるのに対して、前記それほど有意でない係数を表すビットの少なくとも一部分は無視される請求項３５に記載の方法。
【請求項３７】
前記ビット・ストリームの中のデータの量は、前記ネットワーク上の受信側に関連する通信帯域幅に基づいて決定される、前記目標伝送速度に基づいて決定される請求項３５に記載の方法。
【請求項３８】
前記ビット・ストリームは、それぞれのサブバンド内における符号化された係数の位置に基づいて前記符号化された係数に関連する有意性情報、符号情報、ビットプレーン情報を含む請求項３７に記載の方法。
【請求項３９】
異なる分解レベルに対して、前記有意性情報、前記符号情報、前記ビットプレーン情報をそれぞれ表す別々のコンテキストを保持することをさらに含み、前記コンテキストの内容が、伝送のために前記ビット・ストリームに圧縮される請求項３８に記載の方法。
【請求項４０】
現在の実行の予め決めたしきい値を所定のオフセットだけ減分して、次回の実行のための新たなしきい値を生成することをさらに含む請求項３５に記載の方法。
【請求項４１】
前記所定のオフセットは、前記現在の実行の前記予め決めたしきい値の半分までを含む請求項４０に記載の方法。
【請求項４２】
前記次回の実行に関する符号化区域は、前記所定のオフセットに基づいて決定される率だけ、前記現在の実行の前記符号化区域より大きい請求項４０に記載の方法。
【請求項４３】
フレームの各ピクセルに対してウェーブレット変換を実行して、周波数ドメインにおける各ピクセルを表す複数のウェーブレット係数を生成すること、
目標伝送速度に基づき、ビット・ストリームに入る前回の実行の親サブバンドから得られたフレームのサブバンドのウェーブレット係数を繰り返し符号化することを含み、前記符号化されるウェーブレット係数が所定のアルゴリズムに基づく予め決めたしきい値を満たすのに対して、前記予め決めたしきい値を満たさない前記ウェーブレット係数は、各回の実行において無視される方法をマシンに実行させる実行可能コードを有するマシン可読媒体。
【請求項４４】
前記方法は、前記目標伝送速度に従ってネットワークを介して、前記ビット・ストリームの少なくとも一部分を受信側に伝送することをさらに含み、前記伝送されたビット・ストリームは、前記受信側によって復号化されると、前記フレームのイメージを表すのに十分である請求項４３に記載のマシン可読媒体。
【請求項４５】
反復符号化は、前記ウェーブレット係数の有意性を表す順序に従って実行される請求項４４に記載のマシン可読媒体。
【請求項４６】
前記順序は前記フレーム全体をわたるジグザグの順序であり、したがって、有意な係数が、それほど有意でない係数に先立って、前記ビット・ストリームの中に符号化され、前記ビット・ストリームの一部分が前記目標伝送速度によって伝送されると、前記有意な係数を表すビットの少なくとも一部分は伝送されるのに対して、前記それほど有意でない係数を表すビットの少なくとも一部分は無視される請求項４５に記載のマシン可読媒体。
【請求項４７】
前記ビット・ストリームの中のデータの量は、前記ネットワーク上の受信側に関連する通信帯域幅に基づいて決定される、前記目標伝送速度に基づいて決定される請求項４５に記載のマシン可読媒体。
【請求項４８】
前記ビット・ストリームは、それぞれのサブバンド内における符号化された係数の位置に基づいて前記符号化された係数に関連する有意性情報、符号情報、ビットプレーン情報を含む請求項４７に記載のマシン可読媒体。
【請求項４９】
前記方法は、現在の実行の予め決めたしきい値を所定のオフセットだけ減分して、次回の実行のための新たなしきい値を生成することをさらに含む請求項４５に記載のマシン可読媒体。
【請求項５０】
前記所定のオフセットは、前記現在の実行の前記予め決めたしきい値の半分までを含む請求項４９に記載のマシン可読媒体。
【請求項５１】
前記次回の実行に関する符号化区域は、前記所定のオフセットに基づいて決定される率だけ、前記現在の実行の前記符号化区域より大きい請求項４９に記載のマシン可読媒体。
【請求項５２】
イメージ・シーケンスの１つまたは複数のフレームをキャプチャするキャプチャ・デバイスと、
前記キャプチャ・デバイスに前記各フレームごとに結合されたエンコーダとを有し、前記エンコーダが、
周波数ドメインにおける各ピクセルを表す複数のウェーブレット係数を生成するために、フレームの各ピクセルに対してウェーブレット変換を実行し、かつ目標伝送速度に基づき、ビット・ストリームに入る前回の実行の親サブバンドから得られた前記フレームのサブバンドのウェーブレット係数を繰り返し符号化するように構成され、
前記符号化されるウェーブレット係数が所定のアルゴリズムに基づく予め決めたしきい値を満たすのに対して、前記予め決めたしきい値を満たさない前記ウェーブレット係数は各回の実行において無視されるエンコーダとを含むデータ処理システム。
【請求項５３】
ポケットＰＣベースのＰＤＡとスマートホン、ＰａｌｍベースのＰＤＡとスマートホン、Ｓｙｍｂｉａｎベースの電話機、ＰＤＡ、Ｊ２ＭＥとＢＲＥＷの少なくともいずれかをサポートする電話機の１つを含む移動デバイスにおいて、少なくとも１つのフレームを有するビット・ストリームの少なくとも一部分を受信すること、および
ビット・ストリームの少なくとも一部分を繰り返し復号化して、前記少なくとも１つのフレームのイメージを再構築することを含む、コンピュータによって実施される方法。
【請求項５４】
繰り返し復号化することは、符号化された係数に関連する有意性情報、符号情報、ビットプレーン情報を、それぞれのサブバンド内における符号化された係数の位置に基づいて生成することを含む請求項５３に記載の方法。
【請求項５５】
異なる分解レベルに対して前記有意性情報、前記符号情報、前記ビットプレーン情報のそれぞれを表す別々のコンテキストを保持することをさらに含み、前記コンテキストの内容が前記受信されたビット・ストリームから更新される請求項５４に記載の方法。
【請求項５６】
反復復号化は、前記ウェーブレット係数の有意性を表す順序に従って実行される請求項５４に記載の方法。
【請求項５７】
現在の実行の予め決めたしきい値を所定のオフセットだけ減分して、次回の実行のための新たなしきい値を生成することをさらに含む請求項５４に記載の方法。
【請求項５８】
前記所定のオフセットは、前記現在の実行の前記予め決めたしきい値の半分までを含む請求項５７に記載の方法。
【請求項５９】
前記次回の実行に関する復号化区域は、前記所定のオフセットに基づいて決定される率だけ、前記現在の実行の前記復号化区域より大きい請求項５７に記載の方法。
【請求項６０】
前記ビット・ストリームから復号化されるデータの量は、再構築されるフレームの要求される品質に基づいて決定される請求項５４に記載の方法。
【請求項６１】
前記順序は前記フレーム全体にわたるジグザグの順序であり、したがって、有意な係数が、前記ビット・ストリームの中のそれほど有意でない係数に先立って復号化され、前記ビット・ストリームの一部分が受信されると、前記再構築されるフレームの前記要求される品質に応じて、前記有意な係数を表すビットの少なくとも第１の部分は復号化されるのに対して、前記それほど有意でない係数を表すビットの少なくとも第２の部分は無視される請求項５６に記載の方法。
【請求項６２】
それぞれの再構築された係数に対して逆ウェーブレット変換が実行されて、前記フレームのイメージを表す複数のピクセルが生成される請求項５３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００４年３月１０日に出願した米国特許仮出願第６０／５５２，１５３号、２００４年３月１０日に出願した米国特許仮出願第６０／５５２，３５６号、および２００４年３月１０日に出願した米国特許仮出願第６０／５５２，２７０号の優先権を主張する。以上に識別された出願は、引用より本明細書に組み込まれる。
本発明は、一般に、マルチメディア・アプリケーションに関する。より詳細には、本発明は、動き予測を使用してデジタル・イメージ・データを圧縮することに関する。
【背景技術】
【０００２】
過去十年にわたり、様々なシステムが、有線通信システムおよび／または無線通信システムを介して伝送するためのオーディオ／ビデオ・データの符号化と復号化に対して開発されてきた。そのカテゴリのほとんどのシステムは、例えば、ＩＴＵ−Ｒｅｃ．Ｈ．２６４（Ｈ．２６４とも呼ばれる）標準やＩＳＯ／ＩＥＣ  Ｒｅｃ．１４４９６−１０ＡＶＣ（ＭＰＥＧ−４とも呼ばれる）標準などの、標準の圧縮／伝送技術を使用する。しかし、それらの技術の本来備わった一般性に起因して、それらの技術は、雑音のある低いビット伝送速度の無線チャネルを介した低電力の、あまり複雑ではないシステム（パーソナル・デジタル・アシスタントやスマートホンを含むが、それらには限定されないハンドヘルド・デバイスなどの）におけるシームレスな実施に必要とされる特定の品質を欠いている。
【０００３】
消費者が被る費用が、伝送されたデータの実際の量に正比例する、無線マーケットで急速に出現しつつある有望なビジネス・モデルに起因して、また、限られた帯域幅、処理能力、格納容量、バッテリ電力にも起因して、伝送されるべきオーディオ／ビデオ・データの圧縮の効率と速度は、そのようないずれのマルチメディア・コンテンツ配信システムの最終的な成功においても、大きな要因である。今日、使用されているほとんどのシステムは、よりハイエンドのデスクトップ・ワークステーション上で使用されている同一のシステムの追加設置されたバージョンである。ケーブルＬＡＮ／ＷＡＮデータ伝送の本来備わった信頼性のために、エラー制御がクリティカルな問題ではなく、帯域幅がほとんど無限であると見なされることが可能なデスクトップ・システムとは異なり、限られた容量の無線ネットワークを介する伝送は、適切な処理技術およびエラー制御技術を活用して、商業的に成り立つマルチメディア圧縮−伝送システムに求められる忠実度レベルを実現することができるようなシステムの統合を要する。
【０００４】
従来のビデオ圧縮エンジン、つまり、コーデックは、２つの広いカテゴリに大きく分類される。ダウンロード・アンド・プレイ（Ｄ＆Ｐ）プロファイルとして知られる１つのクラスの符号化戦略は、ファイル全体が、再生より前にローカル・メモリ上にダウンロードされることを要し、長い待ち時間につながるだけでなく（利用可能な帯域幅と実際のファイル・サイズに依存して）、ダウンロードされるペイロードのために用意されるべきバッファ・メモリの量も厳しく要求する。より高度なストリーミング・プロファイルを使用しても、物理レイヤにおける現世代の伝送機器の現在の物理的限界により、サービス・プロバイダは、初期待ち時間を要する（伝送の始めに）擬似ストリーミング能力と、ハンドヘルド・プロセッサの限られた処理能力に負担をかける、以降の継続的バッファリングとを組み込むことを余儀なくされる。今日、市場に出ているほとんどの市販の圧縮ソリューションは、プログレッシブ伝送能力を有しておらず、このことは、帯域幅が、最小しきい値を下回って低下する前の最後の完全なフレーム、パケット、またはビットまでしか、伝送できないことを意味する。ビデオ・コーデックのケースでは、現在のフレームの伝送より前に接続が切れた場合、そのフレームは永久に失われる。
【０００５】
従来のビデオ圧縮コードの別の欠点は、ほとんどのコーデックにおいて使用されるブロック・ベースの符号化スキームに起因して、ブロック・アーチファクトが生じることである。主観的な視覚的品質の低下は別にして、そのようなシステムは、追加のブロック除去フィルタによって生じさせられるボトルネックに起因して、劣悪なパフォーマンスに悩まされる。さらに別の欠点は、コンピューティング・プラットフォームの語長の限界に起因して、符号化された係数が、おおよその値にまで切り捨てられることである。このことは、ギブズ現象が、モスキート・ノイズとして知られる視覚的現象が生じることをもたらすオブジェクト境界に沿って、特に顕著である。このことに起因して、オブジェクト境界に沿ったぼけが、より顕著になって、全体的なフレーム品質の低下につながる。
【０００６】
さらに、一部のコーデックにおける動き予測の局所的性質は、動きによって誘起されるアーチファクトを生じさせ、それらのアーチファクトは、単純なフィルタリング・オペレーションによっては容易に平滑することができない。そのような問題は、特に、高速なモーション・クリップのケースや、フレーム・レートが自然なビデオ（例えば、２５ｆｐｓまたは３０ｆｐｓの非インタレース・ビデオ）のフレーム・レートを下回るシステムのケースにおいて生じる。いずれのケースでも、２つの連続するフレーム間の時間的冗長性は極めて低く（動きの多くは、フレーム自体の間に失われるので）、フレームにまたがる動きの追跡がより劣悪になる。以上の効果の性質は、特に長いフレーム・グループ（ＧｏＦ）の場合、累積的である。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
さらに、移動エンドユーザ・デバイスは低い処理能力や記憶容量によって制約される。シリコン・フットプリントの限界に起因して、市場に出ているほとんどの移動システムとハンドヘルド・システムは、システムのあらゆるＤＳＰタスク、制御タスク、通信タスクを実行するのに中央処理装置（マイクロコントローラまたはＲＩＳＣ／ＣＩＳＣプロセッサ）のリソースをタイムシェアリングしなければならず、中央プロセッサにかかるビデオ／オーディオ処理負荷を軽減する専用プロセッサの備えを、ほとんど、または全く有さない。さらに、ほとんどの汎用の中央プロセッサは、最適なＤＳＰパフォーマンスのために必要とされる独特のアーキテクチャを欠いている。したがって、移動ビデオ・コーデック設計は、効率および堅牢性の面において一貫性を維持しながら、クライアント・エンドの複雑さが、最小限でなければならない。
【課題を解決するための手段】
【０００８】
動き予測を使用してデジタル・イメージ・データを圧縮するための方法および装置を本明細書で説明する。一実施態様では、イメージ・シーケンスの各２つの連続するフレームに対して、それらの連続するフレーム間における動き予測が、フレームの輝度マップ上の動きを追跡して、輝度成分に関する動き予測情報を生成することによって実行される。輝度成分の動き予測情報は、次に、クロミナンス・マップに適用される。動き予測に応答して、各フレームのウェーブレット係数と動き予測情報が、目標伝送速度に基づいてビット・ストリームに符号化される。その際、符号化されたウェーブレット係数が所定のアルゴリズムにしたがって予め決めたしきい値を満たす。
【０００９】
本発明のその他の特徴は、添付の図面、および以下の詳細な説明から明白となろう。
【００１０】
本発明は、例として、限定としてではなく、同様の符号が同様の要素を指し示す添付の図面の図に示される。
【発明を実施するための最良の形態】
【００１１】
動き予測を使用してデジタル・イメージ・データを圧縮するための方法および装置を本明細書で説明する。本出願における諸実施形態が対処する問題はデータを処理する速度、すなわち、限られた処理能力、記憶メモリ容量、および／またはバッテリ寿命を有するプロセッサを使用して、高忠実度のマルチメディア・データ（例えば、オーディオ／ビデオ）を再現するような伝送データ速度を実現するため、チャネル容量によって指定された目標伝送速度を実現するべくペイロード・データの中に存在するいずれの形態の冗長性（例えば、空間的、時間的、またはランレングス）も活用することにより、ペイロード・データの最適な圧縮を実現するため、さらには、チャネルを介する最適なプログレッシブ伝送のためのデータの独特なパケット化を実現するためのデータを処理する速度である。
【００１２】
システムの諸実施形態は、チャネル帯域幅の突然の不足が生じた場合におけるビデオ品質のグレースフル・デグラデーションに役立つ、シームレスなプログレッシブ伝送能力（例えば、様々な帯域幅）のために、無線ストリーミング・ソリューションに適している。さらに、シームレスなプログレッシブ伝送能力は、フレーム内レート制御とともに、フレーム間レート制御も可能にして、各フレームに対するビットの最適な割り当て、および輝度マップとクロマ・マップの間におけるフレーム・ビット予算の最適な配分を可能にする。その結果、以上のことは、ビデオ・クリップ内の均一なテクスチャおよび／または遅い動きのシーケンスのピクチャ品質に関して最小のしきい値を保ちながら、比較的高いレベルの詳細または動きを有する、フレームのパースペクティブ品質を向上させるのに役立つ。
【００１３】
以下の説明では、本発明のより完全な説明を与える多数の詳細を示す。しかし、本発明は、それらの特定の詳細なしに実施されることも可能であることが、当業者には明白となろう。その他、周知の構造およびデバイスは、本発明を不明瞭にするのを回避するため、詳細にではなく、ブロック図の形態で示している。
【００１４】
本明細書において「一実施形態」または「実施形態」について述べていることは、その実施形態に関連して説明される特定のフィーチャ、構造、または特徴が、本発明の少なくとも１つの実施形態に含まれることを意味する。本明細書の様々な箇所における「一実施形態では」という句の出現は、必ずしもすべて、同一の実施形態を指していない。
【００１５】
（概要）
本明細書で示される諸実施形態は、ソフトウェア・プラットフォームおよび／またはハードウェア・プラットフォーム上で実施されるデジタル・オーディオ／ビデオ・データの圧縮と伸長を行う安定したシステムを含む。本発明の様々な実施形態のいくつかの利点には、商用のオーディオ／ビデオ圧縮／伸張−伝送システムをより効率的な実現に導く、低いバッテリ電力消費、低い複雑度、低い処理負荷が含まれるが、以上には限定されない。
【００１６】
一部の実施形態によれば、他のいくつかの利点には、システムのソース／算術エンコーダ／デコーダにおいて使用される独特なデータ構造の中の冗長性を活用するローバストな誤り検出−誤り訂正ルーチンを含み、かつより効率的で、より高速な動き予測ルーチンのために、２つの連続するフレーム間の動きを予測するためのサーチスペースがより小さいことを含むが、以上には限定されない。
【００１７】
図１は、例示的なマルチメディア・ストリーミング・システムの一実施形態のブロック図である。図１を参照すると、例示的なシステム１００が、有線ネットワーク、無線ネットワーク、またはその両方の組み合わせであることが可能なネットワーク１０２を介してクライアント・コンポーネント１０３〜１０４（本明細書でクライアント・スーツとも呼ばれる）と通信するように結合された、サーバ・コンポーネント１０１（本明細書でサーバ・スーツとも呼ばれる）を含む。サーバ・スーツは、ダウンロード・アンド・プレイバック（Ｄ＆Ｐ）、ストリーミング・ブロードキャスト、および／またはピアツーピア通信サービスを提供するいくつかのサービスの融合体である。このサーバ・スーツは、任意のサードパーティ・ネットワーク・プロトコル・スタック（図３に示される）とも通信するように設計される。一実施形態では、エンコーダの軽量バージョンが、ピアツーピア・テレビ会議アプリケーションのためにハンドヘルド・プラットフォームに組み込まれてもよいが、システムのそれらのコンポーネントは、中央サーバ内部に実装されてもよい。デコーダは、クライアント側メモリ内に実装される。サーバ・コンポーネント１０１は、Ｗｅｂサーバなどのサーバ内部のプラグイン・アプリケーションとして実装される。同様に、クライアント・コンポーネント１０３〜１０４のそれぞれも、無線局（例えば、セルラー電話機、パーソナル・デジタル・アシスタントすなわちＰＤＡ）などのクライアント内部のプラグインとして実装される。
【００１８】
一実施形態では、サーバ・コンポーネント１０１は、データ獲得モジュール１０５、エンコーダ１０６、デコーダ１０７を含む。データ獲得モジュール１０５は、ビデオ／オーディオ・リポジトリ、ビデオをリアルタイムでキャプチャするイメージング・デバイス、および／またはビデオ／オーディオ・クリップのリポジトリを含む。一実施形態では、エンコーダ１０６は、データを読み取り、データをエントロピ／算術符号化してバイト・ストリームにする。エンコーダ１０６はサーバ・スーツ内部に実装される。
【００１９】
一実施形態では、ビデオ／オーディオ・サービスが、クライアント・エンジン（例えば、クライアント１０３〜１０４）に提供され、クライアント・エンジンは、ネットワーク・スタック実装（図３に示される）と独自のデコーダ（例えば、１０８〜１０９）をカプセル化した製品スーツである。このスーツは、様々なデータ転送速度とフットプリント・フォーマットでデジタル・ペイロードを受け入れ、オーディオ・ストリームとビデオ・ストリームを分離し、各バイト・ストリームを独立に復号化し、データを整合性のとれた実際の形で表示することができる。
【００２０】
一実施形態では、エンコーダ・モジュール１０６は、様々なデータ・フォーマット（文字記号が、サブサンプリング比を表すＲＧＢ  ｘ：ｙ：ｚ、ＹＵＶ  ｘ’：ｙ’：ｚ’、ＹＣｒＣｂ  ｘ”：ｙ”：ｚ”などを含むが、以上には限定されない）の生のデータを読み取り、それらのデータを標準化するため、および単純にするために、単一の標準のフォーマットに変換する。一実施形態によれば、データ獲得のモードに関わらず、デジタル情報は、フレーム単位で非インタリーブ・ラスタ・フォーマットで読み取られる。事前記録ビデオ圧縮のケースでは、エンコーダ・ユニット１０６は、実際の処理に先立ってオーディオ・ストリームとビデオ・ストリームを分離させる。これは、オーディオ用とビデオ用では、使用される符号化機構と復号化機構が異なるので、有用である。
【００２１】
一実施形態では、フレーム・データは、次に、一時バッファに送り込まれて、一群の独特なウェーブレット・フィルタリング・オペレーションを使用して、空間周波数ドメインに変換される。このウェーブレット変換の巧妙さは、余計なバッファリングを排除すること、および計算上、複雑なフィルタリング・オペレーションを単純な加算／減算オペレーションに変換することにある。これにより、そのコーデック・メモリ内のウェーブレット・モジュールがより効率的になる。
【００２２】
一実施形態では、ソース・エンコーダ／デコーダは、先行するオペレーションから獲得されたフレームのすべてのサブバンドのウェーブレット係数を、モートン・スキャンとして知られる独特なジグザグの形（図７に示されるものと同様な）で読み取ることにより、データの圧縮を実行する。これにより、システムが、データを、ウェーブレット係数の有意性に基づく順序で並べ、データをその順序で符号化することが可能になる。符号化の英字は、当技術分野（例えば、ＪＰＥＧ２０００、その他）で周知の形で、有意性クラス、符号クラス、リファインメント・クラスに分類される。
【００２３】
サブバンド・マップの中で符号化されているピクセル係数の位置に基づき、ピクセルの有意性情報、符号情報、ビットプレーン情報が符号化され、バイト・ストリームの中に送り込まれる。このように符号化される第１の係数セットは、サブバンド・マップの左上隅の最も粗いサブバンドである。最も粗いサブバンドが、このようにして尽きると、より細かいサブバンドの中の係数が、空間的に相同(homologous)のサブバンドの中の係数間における独特なツリー構造関係に基づき、同様の形で符号化される。
【００２４】
ビット・ストリームの冗長性をさらに活用するため、ビット・ストリームは、サブバンド・ツリー・マップの中のビットのソースとそのソースが表す情報のタイプ（例えば、有意性、符号、またはリファインメント）に基づき、独立した論理ビット・グループに分けられ、さらなる圧縮のために算術符号化される。結果を実現するこのプロセスは、Ｈ．２６４標準およびＭＰＥＧ４標準の中で指定されているコンテキスト・ベースの適応バイナリ算術符号化（ＣＡＢＡＣ）技術に類似するが、その技術よりも優れている。
【００２５】
ビデオ・ストリームの中の連続するフレーム間の時間的冗長性が、動き予測スキームを使用することによって活用されて、ビット・カウントがさらにいっそう低減される。一実施形態では、動きは、最も粗い４つのサブバンドにわたり、ある種のアフィン変換を使用することによって予測され、残りのより細かいサブバンドにおいて、より低いエントロピのリファインメント・サーチを使用して予測される。より細かいサブバンドにおける動きを予測するための有効サーチ範囲は、より粗いサブバンドにおいてよりも小さく、システムの全体的パフォーマンスのスピードアップにつながるとともに、現在、使用されている類似のビデオ圧縮システムと比べて、より低いビットレートをもたらす。
【００２６】
一実施形態では、ビデオ・デコーダ（例えば、デコーダ１０８〜１０９）は、動き予測フィードバック・ループを有さないことを除き、エンコーダと同様の形で機能する。データの中の空間的冗長性と時間的冗長性を補償するのに、デコーダは、エンコーダにおける場合と、相対的に逆のオペレーションを実行する。一実施形態では、バイト・ストリームは、ビットごとに読み取られ、係数は、コンテキスト判定に基づき、非線形の量子化スキームを使用して更新される。同様の論理が、ウェーブレット変換ブロックと算術符号化ブロックに適用される。
【００２７】
ビット予算が使い果たされると、一実施形態によれば、更新された係数マップが、エンコーダにおいて順方向ウェーブレット変換ブロックで行われるオペレーションの逆であることが可能な一群の算術持上げオペレーションを使用して、逆ウェーブレット変換されて、再構築されたフレームが作成される。再構築されたフレームは、次に、デコーダ・クライアントにおける一群のネイティブＡＰＩ（アプリケーション・プログラミング・インタフェース）呼び出しによってレンダリングされる。
【００２８】
本明細書で説明する諸技術は、任意のサードパーティ・コンテンツ・プロバイダまたはサービス・プロバイダから入手可能なピアツーピア・ビデオ／オーディオ・ソリューション、テキスト／マルチメディア・メッセージング・ソリューション、ダウンロード・アンド・プレイ・ソリューション、およびストリーミング・ブロードキャスト・ソリューションに適合する。その目的で、一実施形態によれば、コーデック・スーツは、普及しているいくつかのサードパーティ・マルチメディア・ネットワーク・プロトコル・スーツに適合させられる。
【００２９】
一実施形態では、例示的なシステムは、ハンドヘルド・ドメインとＰＣドメインの両方における、様々なオペレーティング・システム上、および動作環境上で展開される。それらのオペレーティング・システムと動作環境には、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）９ｘ／Ｍｅ／ＸＰ／ＮＴ４．ｘ／２０００、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）ＣＥ、ＰｏｃｋｅｔＬｉｎｕｘ（商標）（およびＰｏｃｋｅｔＬｉｎｕｘ（商標）の様々なサードパーティ変種）、ＳｙｍｂｉａｎＯＳ（商標）、ＰａｌｍＯＳ（商標）が含まれるが、以上には限定されない。それらは、一連のサードパーティ開発プラットフォーム上で入手可能である。それらのプラットフォームには、Ｍｉｃｒｏｓｏｆｔ（登録商標）ＰｏｃｋｅｔＰＣ（商標）２００Ｘ、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ（登録商標）Ｊ２ＭＥ（商標）ＭＩＤＰ（登録商標）Ｘ．０／ＣＬＤＣ（登録商標）Ｘ．０、Ｔｅｘａｓ  Ｉｎｓｔｒｕｍｅｎｔｓ（登録商標）ＯＭＡＰ（商標）、Ｑｕａｌｃｏｍｍ（登録商標）ＢＲＥＷ（商標）が含まれるが、以上には限定されない。ハードウェア面では、本発明の諸実施形態は、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）実装、特定用途向け集積回路（ＡＳＩＣ）実装、システム・オン・チップ（ＳｏＣ）実装を含むが、以上には限定されない多様なプラットフォーム上のソリューションとして提供される。
【００３０】
（例示的なシステム）
低帯域幅の無線ネットワークを介したオーディオ・マルチメディア・データとビデオ・マルチメディア・データの配信を強化する技術を、本明細書で説明する。以降の段落は、単一の統合されたプラットフォームからサービスをユーザに提供する統合システムの構造を説明する。このシステムは、トランスコーディング問題やスケーラビリティ問題だけでなく、異なるサードパーティ・ネットワーク・プロトコル実装間における統合にも対処する。
【００３１】
図２は、一実施形態による例示的なマルチメディア・ストリーミング・システムを示すブロック図である。図２を参照すると、例示的なシステム２００が、同一のネットワークであってもよい、無線ネットワーク２０４および／または有線ネットワーク２０５〜２０６などの、様々なタイプのネットワークを介して、１つまたは複数のクライアント２０２〜２０３と通信するように結合されたサーバまたはサーバ群２０１を含む。例えば、サーバ２０１は、図１のサーバ１０１として実施されてもよい。クライアント２０２〜２０３は、図１のクライアント１０３〜１０４として実施されてもよい。一実施形態では、サーバ・プラットフォーム２０１は、Ａ、Ｂ、Ｃというラベルが付けられた３つのユニットを含むが、以上には限定されない。しかし、プラットフォーム２０１は、そのように限定されない。それらのユニットは、単一のユニット、または単一のモジュールとして実施されてもよい。それらのユニットは、互いに通信するとともに、外部ユニットとも通信して、すべての妥当な通信能力およびビデオ／オーディオ処理能力を有する。
【００３２】
ユニットＣは、デコーダ／エンコーダＡＰＩなどのクライアント側コンポーネントにダウンロード・サービスを提供して、サードパーティ・サポート、ブラウザ・プラグイン、ドライバ、およびプラグ・アンド・プレイ・コンポーネントを円滑にするアプリケーション・サーバである。ユニットＢは、Ｗｅｂサービス・プラットフォームである。ユニットＢは、ＣＯＭ（商標）サービス、ＣＯＭ＋（商標）サービス、ＥＪＢ（商標）サービス、ＣＯＲＢＡ（商標）サービス、ＸＭＬサービス、その他の関連するＷｅｂサービスおよび／またはＭＭＳ関連サービスを提供することにより、コンポーネント再利用性問題やコンポーネント・スケーラビリティ問題に対処する。以上のコンポーネントは、個別であり、データをカプセル化する。以上のコンポーネントは、システム依存性を最小限に抑え、対話を一群の入力と所望の出力にまで減らす。コンポーネントを使用するのに、開発者は、そのコンポーネントのインタフェースを呼び出すことができる。機能は、開発されると、様々なアプリケーションにおいて使用されることが可能であり、そのため、コンポーネントが再利用可能になる。コンポーネントは、互いに切り離され、そのため、異なる部分は、アプリケーション全体を変更する必要なしに、スケーリングされる。以上の諸特徴のため、アプリケーションは、差別化サービスを提供するようにカスタマイズされることも可能であり、需要が増加するにつれ、より多くの顧客を扱うようにスケーリングされることも可能である。ユニットＡは、実際のネットワーク・サービス・プラットフォームであってもよい。ユニットＡは、Ｄ＆Ｐ（ダウンロード・アンド・プレイ）プロファイルまたはストリーミング・プロファイルで、無線ネットワークを介して符号化されたデータを伝送することを要求されるネットワーク・サービスを提供する。また、ユニットＡは、移動テレビ会議アプリケーションにおけるピアツーピア（Ｐ２Ｐ）通信のためのサポートを提供するとともに、無線サービス・プロバイダと通信して、料金請求問題、その他の付随的な問題を迅速に処理する。
【００３３】
一実施形態によれば、例示のため、主要な３つのタイプのシナリオを本明細書で説明する。しかし、他のタイプのシナリオが適用されてもよい。１つの実例では、無制限の移動性を有するユーザ２０３（ダウンタウンへ自動車を運転している個人などの）が、ユーザが加入しているサービス・プロバイダの最寄りの無線基地局（ＢＳ）２０９を使用して、ユーザの無線マルチメディア・サービスにアクセスすることができる。接続は、ＷＣＤＭＡ［ＵＭＴＳ］、ＩＳ−９５、Ａ／Ｂ−ＣＤＭＡ  １．Ｘ／ＥＶＤＯ／ＥＶＤＶ、ＩＳ−２０００−ＣＤＭＡ２０００、ＧＳＭ−ＧＰＲＳ−ＥＤＧＥ、ＡＭＰＳ、ｉＤＥＮ／ＷｉＤＥＮ、Ｗｉ−ＭＡＸを含むが、以上には限定されない多様な技術を使用して確立される。ＢＳ２０９は、無線ＷＡＮ２０４上のＴＣＰ／ＩＰ接続またはＵＤＰ／ＩＰ接続を介して、サービス・プロバイダの中継局（ＭＴＳＯ）２１０と通信する。ＭＴＳＯ２１０は、ハンドオフ問題、コール・ドロップ問題、ローミング問題、その他のユーザ・プロファイル問題を扱う。ペイロードとプロファイル・データは、処理のために無線ＩＳＰサーバに送られる。
【００３４】
別のタイプのシナリオでは、ユーザ２０２は、例えば、自宅またはオフィス・ビル（例えば、アクセス・ポイント／ゲートウェイ２１１によって制御されるＬＡＮ）内部で、限られた移動性を有する。そのようなユーザが、アクセス・ポイント（ＡＰ）と企業ゲートウェイ２１１を介して、Ｂｌｕｅｔｏｏｔｈ（商標）接続、Ｗｉ−Ｆｉ（商標）（ＩＥＥＥ（商標）８０２．１１ｘ）接続、ＨｏｍｅＲＦ接続、ＨｉｐｅｒＬＡＮ／１接続、またはＨｉｐｅｒＬａｎ／２接続を含むが、以上には限定されない短距離無線接続を介して、特定のサービスを求める要求を、ユーザのサービス・プロバイダのＷｅｂゲートウェイに送信する。ＩＳＰは、ＭＴＳＯ２１０と通信して、要求をサーバ・スーツ２０１に転送する。すべての通信は、ＴＣＰ／ＩＰ接続またはＵＤＰ／ＩＰ接続２０６を介して行われる。要求されたサービスが、サーバ２０１によって処理されると、ペイロードは、実質的に同一の経路を逆方向に、ユーザに戻るように伝送される。
【００３５】
第３のタイプのシナリオでは、ピアツーピア（Ｐ２Ｐ）通信が、サーバ２０１を完全に迂回することによって行われる。このケースでは、すべての通信、ペイロード転送、オーディオ／ビデオ処理は、制御、割り当て、監視の諸機能を実行すること以外は、サーバに有意な負荷を全くかけずに、無線ＩＳＰサーバ（例えば、サーバ２０７）を介してルーティングまたは委任が行われる。
【００３６】
システム能力は、サービスの性質や、ペイロード転送のモードに基づいて分類される。Ｄ＆Ｐサービスでは、ユーザは、ペイロード全体（例えば、ビデオ／オーディオ・クリップ）が、ユーザの無線移動ユニットまたはハンドセットにダウンロードされるのを待ってから、そのペイロードを再生する。そのようなサービスは、長い待ち時間を有するが、セキュリティで保護され、信頼できるＴＣＰ／ＩＰ接続を介してトランスポートされる。
【００３７】
ストリーミング・サービスでは、ペイロード・ルーティングは、前の場合と同一であるが、ペイロードは、この場合、ＵＤＰ／ＩＰネットワーク（例えば、ネットワーク２０５〜２０６）上でストリーミング・プロトコル・スタック（例えば、ＲＴＳＰ／ＲＴＰ、ＲＴＣＰ、ＳＤＰ）を介してトランスポートされることだけが異なる。これにより、ペイロード・パケットが、確実に迅速に伝送されるが、ＵＤＰ接続の信頼できない性質に起因して、データ破損（例えば、パケット損失）の可能性が存在する。Ｐ２Ｐサービスでは、ペイロードは、ＵＤＰ／ＩＰ接続を介してルーティングされて、テレビ会議アプリケーションに必要とされるライブ・ビデオ／オーディオ品質が保証される。
【００３８】
デコーダとエンコーダは、ハードウェアで、ソフトウェアで、またはその両方の組み合わせで利用可能である。ダウンロード・アンド・プレイ・サービスとストリーミング・サービスに関して、エンコーダは、適切な接続を介して要求されるサービスを提供するリモート・サーバ上に格納されるのに対して、軽量ソフトウェア・デコーダは、無線ハンドヘルド端末装置のメモリの中に格納される。デコーダＡＰＩは、ＨＴＴＰ／ＦＴＰ−ｏｖｅｒ−ＴＣＰ／ＩＰ接続を介してアプリケーション・サーバ（例えば、ユニットＡ）からダウンロードされる。ＭＭＳサービスやＰ２Ｐテレビ会議サービスなどの、より多くの対話を要するサービスに関して、エンコーダ（例えば、ハンドヘルド・チップセット上に直接搭載されたスタンドアロンのハードウェア・プラットフォーム上の）とデコーダ（例えば、アプリケーション・レイヤ・ソフトウェア）はともに、例えば、図３に示されたネットワーク・プロトコル・スタックに組み込まれたハンドヘルド端末装置にインストールされる。
【００３９】
（例示的なデータ圧縮プロセス）
図４Ａ、図４Ｂは、本発明の一部の実施形態による、符号化システムと復号化システムをそれぞれ介した例示的な符号化プロセスと復号化プロセスを示すデータ流れ図である。図５は、一実施形態によるデジタル・イメージ・データを符号化するための例示的なプロセスを示す流れ図である。例示的なプロセス５００は、ハードウェア（例えば、回路、専用論理、その他）、ソフトウェア（汎用コンピュータ・システム上、サーバ上、または専用マシン上で実行されるような）、またはその両方の組み合わせを含む処理論理によって実行される。例えば、例示的なプロセス５００は、例えば、図１のサーバ１０１、または図２のサーバ２０１のような、サーバ・コンポーネント（例えば、サーバ・スーツ）によって実行されてもよい。
【００４０】
図４Ａと図５を参照すると、コーデックは、高品位テレビ（ＨＤＴＶ）、標準品位テレビ（ＳＤＴＶ）、拡張ビデオ・グラフィックス・アレイ（ＸＶＧＡ）、標準ビデオ・グラフィックス・アレイ（ＳＶＧＡ）、ビデオ・グラフィックス・アレイ（ＶＧＡ）、コモン・インタチェンジ・フォーマット（ＣＩＦ）、クォータ・コモン・インタチェンジ・フォーマット（ＱＣＩＦ）、サブクォータ・インタチェンジ・フォーマット（Ｓ−ＱＣＩＦ）を含むが、以上には限定されない、いくつかの標準のファイル・フォーマットとフレーム・フォーマットのいずれかによって指定される生のＹＵＶカラー・フレーム・データを有する生のファイル・フォーマット４０１を扱う。一実施形態では、ピクセル・データは、バイト・フォーマットで格納され、このデータは、順次の形で読み取られ、１次元アレイの中に格納される。
【００４１】
一実施形態では、以降、「フレーム」と呼ばれる各イメージは、３つのマップを含む。それらのマップのそれぞれは、１つの原色成分を格納するように指定され、あるいは、より非対称のスキームでは、１つのマップが、輝度情報（輝度マップまたはＹマップとも呼ばれる）を格納する一方で、その他の２つのマップは、クロミナンス情報（クロマ・マップまたはＣｂ／Ｃｒマップとも呼ばれる）を格納する。Ｙマップは、フレームの輝度情報を格納するのに対して、クロマ情報は２つの直交成分の中に格納される。システムは、多種多様なクロミナンス・サブサンプリング・フォーマット（４：１：１カラー・フォーマットを含むが、そのフォーマットには限定されない）を扱うように設計される。その場合、クロマ・マップの大きさは、両方の基本的な方向に沿って、輝度マップの大きさの整数分の１である。ピクセル・データは、バイト・フォーマットで生のペイロード・ファイルの中に格納され、そのデータは、順次の形で読み取られ、各マップにつき１つの、３つの１次元アレイのセットの中に格納される。
【００４２】
フレームの大きさがあらかじめ分かっているので、イメージ・マップの中の各ピクセルの２次元座標が、現在のカラー・マップを表す１次元アレイのインデックス・システム上にマップされる。実際の１次元インデックスをフレームの幅で割って、「行番号」が得られる。１次元インデックスに対するモジュロ・オペレーションにより、対応するピクセルの「列番号」である剰余が与えられる。
【００４３】
一実施形態では、より重要な前処理オペレーションの１つとして、ピクセル係数値が、各ピクセル係数の絶対値を所定の倍数（例えば、６４倍）だけシフトさせることによってスケールアップされる。これにより、ピクセル係数値のダイナミックレンジが大きくなり、復号化中に、再構築されるフレームのより細かい近似が可能になる。
【００４４】
符号化プロセスにおける次のオペレーションは、ペイロードを空間ドメインから多重解像度ドメインに変換することである。一実施形態では、整数のタップを有する一組の順方向ウェーブレット・フィルタ４０２係数と逆方向ウェーブレット・フィルタ４０２係数が、低域通過フィルタリング・オペレーションと高域通過フィルタリング・オペレーション（例えば、オペレーション５０１）に対して使用される。一実施形態では、フィルタ係数は、すべてのオペレーションが、メモリ内の別個の領域の中にピクセル値をバッファリングする必要なしに、定位置で行われるように変更される。これにより、貴重な揮発性メモリ・スペースと処理時間が節約される。
【００４５】
（例示的なウェーブレット・フィルタリング・オペレーション）
一実施形態では、各イメージ・ピクセルに対するウェーブレット・フィルタリング・オペレーションが定位置で実行され、結果の係数は、サブバンド・マップの中でそれらの相対的位置を保持する。一実施形態では、ウェーブレット分解プロセス全体が、フィルタリングの基本的な向きが選択される順序に特定の選好は全く与えられない水平成分と垂直成分に分割される。フィルタリング・プロセスの独特な持上げの性質のため、フィルタリング・プロセスにかかわる複雑な数学的計算が、一組の高速な低い複雑度の加算オペレーションおよび／または減算オペレーションに変えられる。
【００４６】
毎回のパスで、一実施形態によれば、行または列（行ベクトルまたは列ベクトルとも呼ばれる）が、現在のフィルタリング・プロセスの方向に依存して選択される。特定の実施形態では、低域通過フィルタリング・オペレーションが、現在のベクトル内の第１のピクセルに対して偶数インデックスを有するすべてのピクセルに対して実行され、高域通過フィルタリング・オペレーションが、同一のベクトルの第１のピクセルに対して奇数インデックスを有するすべてのピクセルに対して実行される。各フィルタリング・オペレーションに関して、ウェーブレット係数が算出されるべきピクセルが、現在のベクトル内で、フィルタリングの現在の方向に沿ったそのピクセルの近傍で、そのピクセルの周囲に対称的に並んだ一組のピクセルと一緒に、選択される。
【００４７】
４つの消失モーメントを有するウェーブレット・フィルタが、ピクセルに適用される。一実施形態では、４タップの高域通過フィルタと低域通過フィルタが、変換のために使用される。高域通過フィルタは、奇数ピクセルを濾波して除くために、以下に示されるとおり、重み付けされ、正規化された４つの近傍の偶数ピクセルを結合する。
［９*（Ｘk-1＋Ｘk+1）−（Ｘk-3＋Ｘk+3）＋１６］／３２
低域通過フィルタは、偶数ピクセルを濾波して除くために、以下に示されるとおり、重み付けされ、正規化された４つの近傍の奇数ピクセルを結合する。
［９*（Ｘk-1＋Ｘk+1）−（Ｘk-3＋Ｘk+3）＋８］／１６
ただし、Ｘkは、位置ｋにおけるピクセルである。
【００４８】
異なる正規化された重みが各ピクセルに適用され（変換された値が算出されるべき（中心）ピクセルに、１．０という重みが適用される）、一連の加算オペレーション、減算オペレーション、乗算オペレーションによって、現在のベクトルの始めに対して同一のピクセル位置におけるウェーブレット係数が生成される。特定のベクトル（行または列）内の偶数インデックス（０、２、４、．．．）を有するすべてのピクセル位置は、低域通過係数を表すのに対して、特定のベクトル（行または列）内の奇数インデックス（１、３、５、．．．）を有するすべてのピクセル位置は、高域通過係数を表すものと推定することができる。それぞれのそのような実行またはパスは、サブバンドまたはサブイメージをそれぞれが構成する、４つの係数セットを生じさせる。
【００４９】
それら４つのサブバンドは、互いに密接にかみ合わされる。例えば、初回のパスで、同一のサブイメージに属する係数は、互いから１ピクセル位置のオフセットに位置する。次のパスで、すべての低域通過係数（ＬＬkサブイメージを構成する）が選択され、プロセス全体が繰り返される。このオペレーションも同様に、４つのサブイメージとなり、各サブイメージは、互いから２ピクセル位置のオフセットに位置するピクセルを有する。繰り返しのデシメーションのため、毎回のパスには、前回のパスと比べて、正確に１／４のピクセル数に対する計算がかかわり、同一レベルにおける同一のサブイメージ内のピクセル間のオフセットは、１回の実行ごとに２倍になる。
【００５０】
（代替のウェーブレット・フィルタリング・オペレーション）
別の実施形態では、ウェーブレット・フィルタリング・オペレーションは、２項階層フィルタリング・プロセスと見なされ、２項階層フィルタリング・プロセスとは、イメージに対するフィルタリング・プロセスの単一回の実行の最終結果が、そのイメージを、両方向において、元のイメージの半分の大きさをそれぞれが有する４つのサブバンド、つまり、サブイメージにまでデシメートすることを意味する。４つのサブバンド、つまり、サブイメージには、元のイメージに対するそれらのサブイメージの空間的向きに依存して、ＨＨk、ＨＬk、ＬＨk、ＬＬk（ただし、ｋは、最も細かいレベルに関する分解から始まる分解のレベルである）というラベルが付けられる。次回の実行で、フィルタリング・プロセス全体が、前回のパスにおいて獲得されたＬＬkサブイメージだけに対して繰り返されて、前述したとおり、ＬＬkの半分の大きさを有するＨＨk-1、ＬＨk-1、ＨＬk-1、ＬＬk-1と呼ばれる４つのサブイメージが獲得される。このプロセスは、所望されるだけの数の分解レベルに関して、またはＬＬサブバンドが、さらなるデシメーションがもはや可能でない、差し渡し１ピクセルであるブロックにまで縮小されるまで繰り返される。
【００５１】
一実施形態では、フィルタリングは、水平フィルタリング・オペレーションと垂直フィルタリング・オペレーションに分割される。垂直フィルタリング・モードの場合、３つのマップの中の各列（例えば、垂直ベクトル）が一度に処理される。最初、列の中のすべてのピクセルが、一時ベクトルの中にコピーされ、このベクトルでは、ベクトルの中に存在するピクセル数と同じ数のロケーションが確保されている。実際のフィルタリング・オペレーションの場合、一時ベクトルは２等分される。一時ベクトルの偶数番のメモリ・ロケーション（０、２、４、．．．などの）に位置するピクセルには、低域通過フィルタ（ＬＰＦ）係数を使用して低域通過フィルタリングが行われるのに対して、一時ベクトルの奇数番のメモリ・ロケーション（１、３、５、．．．などの）におけるピクセルには、高域通過フィルタ（ＨＰＦ）係数を使用して高域通過フィルタリングが行われる。
【００５２】
各フィルタリング・オペレーション（高域または低域）の結果は、現在のベクトルの中に格納されて、低域通過フィルタリング・オペレーションのすべての結果が、ベクトルの上半分（例えば、フィルタリングの現在の向きに依存して、垂直ベクトルの上半分、または水平ベクトルの左半分）に格納されるのに対して、高域通過フィルタリング・オペレーションの結果は、列の下半分（例えば、垂直ベクトルの下半分、または水平ベクトルの右半分）に格納される。このようにして、ピクセル・データは、単一回の実行でデシメートされる。プロセス全体が、現在のマップとフレームの中のすべての列と行に対して繰り返される。プロセス全体が、現在のフレームに関する３つすべてのマップに対して繰り返されて、ウェーブレット変換されたイメージが獲得される。
【００５３】
図４Ａを再び参照すると、ウェーブレット・マップのブートストラップ・ソース・エントロピと算術符号化プロセス４０３がチャネル符号化（例えば、オペレーション５０２）と呼ばれる。算術符号化は、前述したとおり、ウェーブレット変換４０２において生成されたサブバンド・ツリー構造内の空間的に相同のブロック間の密接な関係を活用する。ウェーブレット・マップの中のデータは、単一のビットの英字を使用して、ピクセルの有意性（例えば、可変サイズの量子化しきい値に関する）情報、符号情報、ビットプレーン情報を表すことによって符号化される。ビット・ストリームは、埋め込まれた形態で符号化される。埋め込まれた形態とは、特定の量子化しきい値における単一のピクセルのすべての関係のある情報が、連続的なビット・ストリームとして伝送されることを意味する。量子化しきい値は、ウェーブレット係数を表すのに使用されるビット数に依存する。この実施形態では、それらの係数を表すために１６ビットが使用される。このため、初回のパスの場合、量子化しきい値は、例えば、０ｘ８０００に設定される。単一回のパスの後、しきい値が下げられ、ピクセルは、実質的にすべてのピクセルが処理されるまで、同一の順序、または同様の順序で符号化される。以上により、すべてのピクセルが、確実に、ビット・ストリームの中でプログレッシブに符号化され、伝送される。
【００５４】
一実施形態によれば、エントロピ符号化されたビット・ストリームは、オペレーション５０３として示されるとおり、コンテキスト・ベースの適応算術エンコーダ４０４の中を出力されたビットを通すことにより、さらに圧縮される。このコンテキスト・ベースの適応バイナリ算術コーダ（ＣＡＢＡＣ）は、現在のビットの直前に所定のビット・セットが出現する確率に依存して、ビット情報を符号化する。現在のビットが符号化されるコンテキストは、そのビットによって表される情報の性質（有意性情報、符号情報、またはビットプレーン情報）と、階層ツリー構造における符号化される係数の位置に依存する。ＣＡＢＡＣの概念は、原理的に、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３  Ｑ．６（ＶＣＥＧ）Ｒｅｃ．Ｈ．２６４およびＩＳＯ／ＩＥＣ  ＪＴＣ  １／ＳＣ  ２９／ＷＧ  １１（ＭＰＥＧ）Ｒｅｃ．１４４９６−１０（ＭＰＥＧ４  ｐａｒｔ  １０）において指定される概念と同様である。違いは、確率のコンテキスト・モデル化、推定、適応にある。この実施形態の変換−ソース符号化技術は、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３  Ｑ．６（ＶＣＥＧ）Ｒｅｃ．Ｈ．２６４およびＩＳＯ／ＩＥＣ  ＪＴＣ  １／ＳＣ  ２９／ＷＧ  １１（ＭＰＥＧ）Ｒｅｃ．１４４９６−１０（ＭＰＥＧ４  ｐａｒｔ  １０）とは異なるので、この実施形態の係数は、異なる統計特性を有する。この実施形態で指定されるＣＡＢＡＣタイプのエントロピ・コーダは、それらの特性を最大限に活用するように設計される。
【００５５】
一実施形態では、コンテキストは、０ないし２nのダイナミックレンジを有するｎビットのデータ構造である。新たなビットが符号化されるごとに、現在のビットに割り当てられたコンテキスト変数は、確率推定テーブル（ＰＥＴ）に基づいて更新される。ｎビットが符号化されると、コンテキスト変数の内容が圧縮ファイル４０５としてコンパクトなデータ構造にパックされ、先に送られ、変数は、次のバッチのｎビットに対してリフレッシュされる（例えば、オペレーション５０４）。一実施形態では、システムは、各フレームに対して、つまり、３つの空間配向ツリーにわたる３つのビットクラス、ｍ個の分解レベルにわたるすべてのサブバンドに対して、（９×ｍ）個のコンテキスト変数を使用する。
【００５６】
一実施形態によれば、クライアントに存在することが可能なデコーダは、図４Ａの例示的なエンコーダ４００と同様に、ただし、図４Ｂに示されるとおり、逆の順序で実施される。
【００５７】
（例示的な符号化階層）
空間的に相同のピクセルとそれらのピクセルの子孫を関係付ける階層ツリー構造は、親−子階層を使用して説明することができる。図６は、一実施形態による符号化処理のための例示的なピクセル・マップを示す図である。図６を参照すると、一実施形態では、ツリー構造のルートは、最も粗いサブバンド、ＬＬkの中のすべてのピクセルのセット、およびＨというラベルが付けられたセットから成る。一実施形態では、セットＨの中のピクセルは、２×２のセットに、つまり、カッドにグループ化される。図６を参照すると、セットＨ（例えば、ブロック６０１）の中の各カッドは４ピクセルを有し、すべてのカッドの左上のメンバ６０２を除くすべてのメンバは、空間的に相同の次のより細かい分解レベルにおいて４つの子孫（例えば、ブロック６０３〜６０５）を有している。このため、例えば、カッドの中の右上のピクセルは、同一の空間的向きを有する次のより細かいサブバンド（この場合は、ＨＬk-1）の中で４つの子孫ピクセル６０４（２×２フォーマットで）を有する。また、子孫の相対的位置も、ツリー・ルートの空間的向きに関係している。セットＨの左上のカッドにおける右上のピクセルの係数の第１世代の子孫（以降、子供というラベルを付ける）は、ＨＬk-1（例えば、ブロック６０４）の中の左上の２×２カッドである。同様に、セットＨの任意のカッドにおける右下のピクセルの子供は、ＨＨk-1サブバンドの中で空間的に相同の位置にあるのに対して、セットＨの任意のカッドにおける左下のピクセルの子孫は、ＬＨk-1サブバンドの中の空間的に相同の位置にある（例えば、ブロック６０３）。第１世代のピクセル以降の子孫と、それらの子孫のセット（カッドを含む）には、孫係数として、例えば、図６に示されるブロック６０６〜６１１として一般にラベルが付けられる。
【００５８】
符号化プロセスに対して、一実施形態では、独特なデータ構造が、係数が符号化される順序を記録する。意味のないピクセル・キュー（ＩＰＱ）、意味のないセット・キュー（ＩＳＱ）、有意なピクセル・キュー（ＳＰＱ）としてラベルが付けられる３つの動的にリンクされたデータ構造すなわちキューが、その目的で保持される。一実施形態では、各キューは、動的データ構造として実施され、そのデータ構造には、各ノードが、ピクセルが有意になった際の座標、ビットプレーン番号、ＩＳＱリストのタイプなどの、ピクセルについての情報を格納する２重にリンクされたリスト、またはスタック・アレイ構造が含まれるがそれに限定されない。
【００５９】
一実施形態では、３つのタイプの変換係数セットは、ピクセルとそのピクセルの子孫のツリーを分割するように定義される。しかし、より多くのセット、またはより少ないセットが実施されてもよい。セットＤ（Ｔ）は、ピクセルのすべての子孫のセット、またはそれらの子孫の任意のセット、Ｔである。セットＤ（Ｔ）には、直接の子孫（例えば、ブロック６０３〜６０５などの子供）、孫係数（例えば、ブロック６０６〜６０８）などが含まれる。セットＯ（Ｔ）は、ピクセルのすべての第１世代の、つまり、直接の子孫のセットとして、またはそれらの子孫の任意のセット、Ｔ（例えば、ブロック６０３〜６０５）として定義される。最後に、セットＬ（Ｔ）は、ピクセルの子供以外の子孫のセット、またはそれらの子孫の任意のセット、Ｔとして定義され、すなわち、Ｌ（Ｔ）＝Ｄ（Ｔ）−Ｏ（Ｔ）（例えば、ブロック６０９〜６１１）である。一実施形態では、２つのタイプのＩＳＱエントリが定義される。タイプαのＩＳＱエントリは、セットＤ（Ｔ）を表す。タイプβのＩＳＱエントリは、セットＬ（Ｔ）を表す。
【００６０】
一実施形態では、符号化プロセスにおいて広範に使用されるバイナリ・メトリックが、有意性関数、Ｓn（Ｔ）である。一実施形態では、有意性関数は、セットτの中の最大のウェーブレット係数が、現在の量子化しきい値レベル（例えば、現在の実行における量子化しきい値）より大きい場合、１という出力を与え、それ以外の場合、０という出力を与える。一実施形態では、有意性関数は、以下のとおり定義される。すなわち、
【００６１】
【数１】
2007529184.tif 000003
ただし、Ｓn（Ｔ）は、有意性が、現在のしきい値、ｎ1に照らして測定されるべきピクセル・セット、Ｔである。
【００６２】
図８は、一実施形態による例示的な符号化プロセスを示す流れ図である。例示的なプロセス５００は、ハードウェア（例えば、回路、専用論理、その他）、ソフトウェア（汎用コンピュータ・システム上、サーバ上、または専用マシン上で実行されているような）、またはその両方の組み合わせを含む処理論理によって実行される。例えば、例示的なプロセス５００は、例えば、図１のサーバ１０１、または図２のサーバ２０１のような、サーバ・コンポーネント（例えば、サーバ・スーツ）によって実行されてもよい。
【００６３】
図８を参照すると、エンコーダの符号化プロセスにおける第１の段階（初期設定パスとも呼ばれる）は、エンコーダが、実行を繰り返さなければならないパスの回数を算出し、伝送する（バイナリ・フォーマットの８ビットのシーケンスとして）ことである（ブロック８０１）。一実施形態による実行の回数は、現在のマップの中の最大のウェーブレット係数のビットプレーン数以下である。単一のマップの中のすべてのビットを符号化する実行の回数は、量子化レベルの数によって決定する。一実施形態では、実行の回数は、以下のとおり定義されることが可能な数式を使用して算出される。すなわち、
ｎ1＝ｃｅｉｌ（ｌｏｇ2｜ｗmax｜）
ただし、ｗmaxは、現在のマップの中の最大ウェーブレット係数である。この数が、バイト・ストリームの中に送られる（コンテキストなしに）。次いで、符号化プロセスが、マップ全体にわたってｎ1回、繰り返される。
【００６４】
最初、ブロック８０２で、一実施形態では、すべてのピクセルに、現在のしきい値レベルに照らして、意味がないというマークが付けられる。そのレベルはＴ＝２n1と決められる。このため、ＩＰＱは、セットＨの中のすべてのピクセルでポピュレートされ、他方、ＩＳＱは、子孫を有するセットＨの中のすべてのピクセル（すなわち、セットＨの中で、左上のカッドを除くすべてのカッドの中のすべてのピクセル）でポピュレートされる。ＳＰＱは、空のままにされ、ピクセルが、現在の量子化しきい値に照らして有意になるにつれ、徐々に埋められる。
【００６５】
次の段階として、並べ替えパスとも呼ばれるブロック８０３で、一実施形態では、ＩＰＱの中のすべてのピクセルが並べ替えられて、現在の量子化しきい値を基準してどのピクセルが有意になったかが判定される。ＩＰＱの中のすべてのエントリに対して、現在のピクセル（またはＩＰＱの中のエントリ）に関する有意性関数の値が算出され、その値が、単一のビットの形態で出力として送られる。一実施形態では、次のオペレーションとして、前回のオペレーションにおける有意性関数の値が、１であった場合、ピクセル・エントリの符号ビットが、単一のビットの形態で出力として送られる。符号の出力は、エントリが正である場合、１であり、エントリが負である場合、０である。セットＨの中のすべての有意なピクセルが、意味のないピクセルから分離されると、同一の並べ替えパスのより複雑なバージョンが、ＩＳＱのエントリに対して実行される。
【００６６】
一実施形態では、ブロック８０４で、ＩＳＱの現在のエントリが、タイプα（例えば、すべての世代にわたるピクセルのすべての子孫を表すクラスのエントリ）である場合、セットＤ（Ｔ）の有意性は、単一のビットとして送られる。その出力ビットが、１である（例えば、エントリが、１つまたは複数の有意な子孫を有する）場合、そのエントリの直接の（例えば、第１世代の）子孫、つまり、子供に対して、同様の試験が実行される。エントリの４つすべての子供（セットＯ（Ｔ）によって定義される）に対して、一実施形態によれば、２つのオペレーションが実行される。最初に、子供ピクセルの有意性が判定され、伝送される。第２のオペレーションとして、子供ピクセルが有意である場合、ＩＳＱエントリの符号が伝送される。つまり、エントリが正である場合、１という値が伝送され、エントリが負である場合、０という値が伝送される。次に、エントリは、ＩＳＱから削除され、ＳＱＰに追加される。しかし、子供ピクセルが意味がない場合、その子供ピクセルはＩＳＱから除去され、ＩＰＱに追加される。
【００６７】
すべての子供ピクセルが試験されると、現在のＩＳＱエントリが子孫階層の深度に依存して保持される。エントリが、直接の子供を超えた子孫を全く有さない（Ｌ（Ｔ）≠（φ）場合、そのエントリはＩＳＱからパージされる。しかし、現在のセットに関する子孫が、第１世代を超えて存在する場合、そのエントリはＩＳＱの中の現在の位置から除去されて、タイプβのエントリとしてＩＳＱの末尾に追加される（ブロック８０５）。
【００６８】
一実施形態では、ＩＳＱの中の現在のエントリが、タイプβであった場合、セットＬ（Ｔ）に対して有意性試験が実行される。ＩＳＱの中のタイプβのすべてのエントリに対して、セットＬ（Ｔ）の有意性が試験され（例えば、有意性関数を使用して）、単一のビットとして伝送される。セットＬ（Ｔ）の中に１つまたは複数の有意なピクセルが存在する場合、現在のＩＳＱエントリの４つすべての子供が、将来のパスにおいて処理されるように、ブロック８０６で、タイプαエントリとしてＩＳＱに追加される。次に、ＩＳＱの中の現在のエントリは、ブロック８０７で、キューからパージされる。
【００６９】
一実施形態では、符号化プロセスにおける最終段階は、リファインメントパスと呼ばれる。並べ替えパスの終りで、現在の反復までに現在の量子化しきい値レベルに照らして有意になったすべてのピクセル（またはそれらのピクセルのセット）がＩＰＱから除去されて、ＳＰＱに追加される。そのようなすべてのエントリに対して、エントリがキューに追加された（さらに、対応する係数が、現在の量子化しきい値レベルに照らして有意になった）際の実行番号「ｎ」が、座標情報とともに記録される。それまでの反復（ｎ1、ｎ1−１．．．ｎ1−ｎ）においてＳＰＱに追加されたＳＰＱの中のすべてのエントリに対して、第ｎ番の最も有意性のあるビットが伝送される。最終パスとして、一実施形態では、ｎの値が１だけ減分されて、量子化しきい値、Ｔが半減されて、プロセス全体が、３つのキューの中で現在、リストアップされているすべてのエントリに対して繰り返される。
【００７０】
一実施形態では、さらなる圧縮を実現するのに、エントロピ・コーダの出力を、ＣＡＢＡＣタイプのプロセッサの中を通す。エントロピ・コーダの埋め込まれた出力ストリームは、特定のビットが符号化されているコンテキストに基づいてビット・ストリームを分離することにより、圧縮が最適化されるような形で設計されている。ビット・ストリームは、符号化中に行われたバイナリ判定を表すビットを含む。同一の判定に対応するビットは分離され、別々に符号化される。ウェーブレット変換された係数は、同一の特性を有する係数が、一緒にグループ化されるように並べられるので、あるグループの中の係数に関する判定は、同様または同一であるものと見込まれる。このため、結果として生成されるビット・ストリームは同一ビットのより長い連続を有し、ストリームが圧縮により適するようになり、より最適な圧縮レベルが達せられる。
【００７１】
ウェーブレット係数「ｗ」は、その係数が属するサブバンドとツリーに依存して、互いに独特の空間的相関を有することに留意されたい。特に、そのような密接な相関は、特定のレベルにおける単一のサブバンドのピクセル間に存在するが、相関のレベルは、同一の、または異なるツリーとレベルにおける異なるサブバンドのピクセル間で弱まる。また、同様の構文関係を有するビット間におけるランレングス・ベースの相関が存在することにも留意されたい。例えば、埋め込まれたストリーム内のビットの一部は、特定のピクセルに関する符号情報を表すのに対して、他のビットは有意性情報を表す。例えば、この場合、１という値は、現在、処理されているピクセルが、現在の量子化しきい値を基準にして有意であるのに対して、０の値は、そうではないことを表す。第３の、最後のクラスのビットは、実際の量子化誤り情報を符号化するリファインメント・ビットを表す。
【００７２】
一実施形態では、出力ストリームの中の各ビットは、そのビットが表す情報の性質（３つのタイプ）、またはサブバンド・ツリー・マップの中の位置（３ｎ1＋１の可能な位置、ただし、ｎ1は、分解レベルの数である）に基づいて分類される。これにより、ビットが存在することが可能な３×（３ｎ1＋１）個の可能なコンテキストが生じ、任意のビットを符号化するのに独特のコンテキストが使用される。
【００７３】
コンテキストに基づいてストリームの分割を実施するために、３×（３ｎ1＋１）個のコンテキスト変数が、エントロピ・コーダの出力とバイナリ算術コーダの間のインタフェースとして作用する。各コンテキスト変数は、８ビットのメモリ・ロケーションであり、このロケーションは、追加の符号化されたビットが出力されるにつれ、一度に１ビット、値を更新する。８ビットが出力されると、問題のコンテキスト変数によって表されるメモリ・ロケーションの内容は、確率推定テーブル（ＰＥＴ）を使用して処理される。算術符号化されたビットを伝送した後、コンテキスト変数の内容は、次のバッチの８ビットのためにフラッシュされる。
【００７４】
（代替のソース符号化スキーム）
本明細書で算術符号化ＩＩと呼ばれる別の実施形態では、ウェーブレット・マップは、３２×３２サイズ（ピクセル単位で）のブロックに分割され、それぞれのそのようなブロックは、ウェーブレット・マップの中の他のすべてのブロックとは独立にソース符号化される。各ウェーブレット・マップに対して、マップの大きさが、いずれかの方向で３２の倍数ではない場合、列および／または行のセットに、０が埋められて、マップの新たな大きさが、両方向で３２の倍数であるようにされる。一実施形態では、それぞれのそのようなブロックの中の係数は、階層マラー・フォーマットで並べられる。分解レベルの数は任意である。一実施形態では、その数は、各ブロックのマラー・フォーマットの最も粗いサブバンドが１ピクセルであるように、５である。そのようなスキームの下では、バンドとも呼ばれる１０の区画が存在し、マラー表現において最も細かい１０のサブバンドが、９つの最も細かいバンドと一致する。最も粗いバンドは、マラー・フォーマットにおける６つの最も粗いサブバンドを合併することによって構築される。
【００７５】
一実施形態では、バンドには、図７に示される順序と同様に、ジグザグの形で番号が付けられる。最も粗いバンドには、バンド０というラベルが付けられるのに対して、次の３つのバンド（順にＨＬの向き、ＬＨの向き、ＨＨの向き）には、それぞれバンド１、バンド２、バンド３というラベルが付けられるといった具合である。ストライプとして知られる、さらなるデータ構造が、４×４の係数のセットを表すのに使用される。このため、バンド０、１、２、３のそれぞれが、１つのそのようなストライプから構成される。第２の分解レベルと第３の分解レベルにおけるバンドは、それぞれ４つのストライプと１６のストライプから構成される。
【００７６】
最初、一実施形態によれば、量子化しきい値が、すべてのより細かいバンドの他にバンド０（最も粗い）中のすべての係数に割り当てられる。ウェーブレット・マップの中の様々な係数とバンドに割り当てられたしきい値の間で、線形のプログレッシブな関係が存在する。しきい値の値は任意であり、推測と厳密な実験の問題である。一実施形態では、５レベル分解に対して、左上の（最も粗い）サブバンド（バンド０の一部である）に、特定のしきい値（ｘというラベルが付けられた）が割り当てられるのに対して、同一の分解レベルの右上のサブバンドと左下のサブバンド（やはり、バンド０の一部である）には、２×というしきい値が割り当てられ、右下のサブバンドに対するしきい値は４×である。
【００７７】
分解ツリーの次の（より細かい）レベルに進むと、右上のサブバンドと左下のサブバンドに関するしきい値は、前の（より粗い）レベルの右下のサブバンドのしきい値と同一であるのに対して、現在の（より細かい）レベルの右下のサブバンドは、その値の２倍のしきい値を有する。このプロセスが、現在のブロックの中の０ないし９の番号が付けられたすべての連続するバンドに関するしきい値の割り当てに適用される。例えば、バンド０の左上隅にある最も粗い４つのピクセルに関する初期しきい値は、４０００h、８０００h、８０００h、１００００hに設定される（ｈは、１６進法の数を表す）。同様に、バンド０の右上隅における４つのピクセル・カルテットには、１００００hが割り当てられるのに対して、バンド０の左下隅と右下隅におけるカルテットには、１００００hと２００００hというしきい値がそれぞれ割り当てられる。ソース符号化スキームの相次ぐ各回の反復とともに、前述した各サブバンドと各バンドに関するしきい値は半減される。
【００７８】
一実施形態では、符号化スキームは、０ないし３というラベルが付けられた４回のパスを含む。パス０で、一実施形態では、現在のバンドの有意性の判定が考慮される。一実施形態では、最も粗いバンド（バンド０）は、そのバンドの中のすべての係数が現在のしきい値を超えている可能性が高いので、常に有意であると想定される。他のすべてのバンドの場合、いずれか１つの係数がその特定のバンド／サブバンドに関する現在のしきい値を超えた場合、現在のバンドに有意であるというマークが付けられる。有意なバンドを表す追加のビット（例えば、１）が出力ストリームに伝送される。有意であるというマークが現在のバンドに既に付けられている場合、さらなるアクションは全く必要ない。
【００７９】
パス１で、一実施形態では、ストライプの有意性の判定が考慮される。各ストライプは４×４ピクセルのセットであり、ストライプの中の２×２ピクセルの各セットは、同一の向きを有する前のより粗いサブバンドの中の相同のピクセルに対して階層親−子関係を有する。このため、各ストライプは、前のより粗いサブバンドの中の、空間的な向きが相同である２×２カッドに対して親−子階層関係を有する（図１１参照）。
【００８０】
ストライプは、そのストライプの２×２カッド親（前述した）も有意である場合、またはストライプが存在するバンドに有意であるというマークが付けられている場合（パス０で）、有意であるとして指定される。親カッドには、そのカッドの中の係数の１つまたは複数が、そのカッドが存在するバンドに関する現在のしきい値レベルを超えている場合、有意であるというマークが付けられる。
【００８１】
パス２で、一実施形態では、現在のストライプの中の個々のピクセルの有意性情報と、それらのピクセルの符号情報が考慮される。初期オペレーションとして、現在のストライプの中の、有意であるピクセルの数が記録される。この情報は、現在のストライプの中のピクセルの有意性情報を符号化するのに、いずれのコンテキスト変数が使用されるべきかを判定するのに使用される（前段のＣＡＢＡＣについての説明を参照）。絶対値が、現在のバンドとストライプの現在のしきい値を超えているピクセルごとに、バイナリ１が伝送され、その後、その係数の符号を表す単一のビット（正の係数を表す１、または負の係数を表す０）が伝送される。現在の係数が意味がない場合、０が伝送され、その係数の符号は、調べられなくてもよい。以上の試験が、現在のストライプの中の１６のすべてのピクセルに対して実行され、現在のバンドの中のすべてのストライプにわたり、さらに、ウェーブレット・マップの現在のブロックの中のすべてのバンドに対して繰り返される。
【００８２】
パス３で、一実施形態では、現在のブロックの中の各ピクセルに関するリファインメント情報が伝送される。すべてのバンドに対して、各ピクセルが、その特定のバンドまたはストライプに関するしきい値レベルと比較される。係数の絶対値が、現在のバンドとストライプのためのしきい値レベルを超えている場合、１（ビット）が伝送され、それ以外の場合、０が伝送される。
【００８３】
一実施形態では、最初の３回のパス（パス０ないし２）は、現在のブロック、バンド、ストライプに対して互いの中に入れ子にされる。このため、パス０は、現在のブロックの中のすべてのバンドに対して実行され、バンドには、ジグザクの形で順次に番号が付けられ、その順序で試験される。各バンドに対して、パス１が、そのバンドの中のすべてのストライプに対して、ラスタ走査の形で実行される。ストライプ内で、パス２が、やはりラスタ走査モードで、現在のストライプのすべての係数に対して実行される。パス３が、バンド内のストライプのバンドの順序を考慮せずに、ブロックのすべての係数に対して実行される。
【００８４】
前述した４つのパスルーチンの各回の実行の終りに、プロセスは、ウェーブレット・マップの中のすべてのブロックに対して繰り返される。ウェーブレット・マップの中のすべてのブロックがこのように試験されると、プロセスは、最初のブロック以降に対して繰り返され、そのブロックの中のすべてのバンドのしきい値レベルは、前の値の半分に低減される。以上が、最下位ビットプレーンまでの、すべてのピクセルが符号化されるまで、またはビット予算が完全に使い果たされるまで続けられる。
【００８５】
（例示的な動き予測スキーム）
一実施形態では、高速で効率的な動き予測スキームに、ビデオ・ストリームに本来備わった時間的冗長性を最適に活用させる。そのスキームの一実施形態では、ウェーブレット係数の位置の空間的移動が、ビデオ・クリップの中の連続するフレームの中の相同のサブバンドのウェーブレット係数間における時間的冗長性を活用するため、革新的な、高速で正確な動き予測ルーチンを使用して追跡される。
【００８６】
多重解像度表現では、ビデオ・クリップの中の各フレームのためのウェーブレット・マップ全体の中のすべてのサブバンド、つまり、サブイメージは、元のイメージの、サブサンプリングされ、デシメートされたバージョンを表すことがよく知られている。連続するフレーム間の動きを追跡するのに、フィードバック・ループが直線信号フロー・パスに導入される。
【００８７】
図９Ａ〜図９Ｂと図１０Ａ〜図１０Ｂは、本発明の一部の実施形態による例示的な符号化プロセスと復号化プロセスを示すブロック図である。元のイメージの中の全体的動きが、連続するフレームのすべてのサブバンドの中におけるピクセルの相同のブロックの動きを追うことによって追跡される。プロセスをスピードアップするため、一実施形態によれば、動きが、輝度（Ｙ）マップの中でだけ追跡される一方で、同一の動き予測情報が２つのクロマ（ＣｒとＣｂ）マップの中で使用される。これは、比較的うまく機能する。というのは、クロマ情報は輝度マップの変化をかなり丹念に追うからである。輝度（Ｙ）マップ内で、一実施形態では、サーチ空間全体の本格的なサーチが、図６に示されるとおり、最も粗い４つのサブバンドの中だけで実行される一方で、その情報が、例えば、６つのより細かいサブバンドの中で、一組のアフィン変換を使用して、スケーリングされ、改良される。以上により、忠実度の大きな損失なしに、動き情報を表すように符号化され、伝送される必要があるビット数がより少ないために、相当な量の帯域幅が節約される。
【００８８】
一実施形態では、３つのフレーム・カテゴリが、ラベル付けの目的で、本明細書で概要を述べる動き予測ルーチンのいずれかを使用して、本来備わった時間的冗長性を除去するのにフレームが受けるべき予測のタイプに依存して、判定され、時間的冗長性に対して予測符号化される必要のない現在のフレームには、イントラ符号化フレーム（Ｉフレーム）というラベルが付けられる。それまでに符号化されたフレームからの情報を使用して符号化されるフレームは、予測フレーム（Ｐフレーム）と呼ばれる。それまでに符号化されたフレームとともに、現在のフレームの後に来るフレームも必要とするフレームは、双方向フレーム（Ｂフレーム）と呼ばれる。
【００８９】
一実施形態では、図９Ａ、図９Ｂを参照すると、現在のフレームの輝度（Ｙ）マップが、目標ビットレートで算術符号化Ｉ／ＩＩスキームを使用して符号化される。ビット予算が使い尽くされる（例えば、目標ビットレートによって決定する、ある時間内に伝送される符号化されたビットの数）と、またはすべてのビットプレーンが符号化されると、符号化が停止され、同様の逆手続き（逆算術符号化Ｉ／ＩＩと呼ばれる）が実行されて、現在のフレームのウェーブレット・マップの輝度（Ｙ）成分の（損失のある）バージョンが回復される。この場合に使用されるべき算術符号化のバージョンは、前述した順方向エントロピ・コーダにおいて使用されるバージョンと同様または同一である。
【００９０】
図１１は、一実施形態による動き予測のための例示的なプロセスを示す流れ図である。この例示的なプロセス１１００は、ハードウェア（例えば、回路、専用論理、その他）、ソフトウェア（汎用コンピュータ・システム上、サーバ上、または専用マシン上で実行されるような）、またはその両方の組み合わせを含むことがある処理論理によって実行される。例えば、例示的なプロセス１１００は、例えば、図１のサーバ１０１、または図２のサーバ２０１のような、サーバ・コンポーネント（例えば、サーバ・スーツ）によって実行されてもよい。
【００９１】
図１１を参照すると、第１のフレーム（および、ビデオ・シーケンスの中のＩフレームとして分類されている、あらゆる続くフレーム）に対して、回復されたウェーブレット・マップが、シーケンスの中の次のフレームに関する基準として使用するために、基準フレームとしてバッファリングされる（ブロック１１０１）。一実施形態では、第２のフレームが、ｎレベル・ウェーブレット分解フィルタ・バンクを使用して読み取られ、分解されて、新たな現在のフレームが生成される。独特のサーチ−マッチ・アルゴリズムが、ウェーブレット・マップに実行されて、ビデオ・シーケンスの中の全体的な動きに起因して位置が変わったピクセルと、ピクセルのセットが追跡される。一実施形態では、サーチ・アルゴリズムは、動き推定（ＭＥ）と呼ばれるのに対し、マッチ・アルゴリズムは、動き補償（ＭＣ）と呼ばれる。
【００９２】
ＭＥ／ＭＣルーチンに対する第１のオペレーションとして、一実施形態では、より低いしきい値が設定されて、動きに対して追跡される必要があり、最終的に補償される必要がある係数は、どの係数かが判定される。予測フレーム（ＰまたはＢ、あるいはそれ以外）の中で、細かいサブバンドの中のほとんどの係数は、自動的に０に量子化されるのに対して、最も粗いサブバンドの中の係数は、通常、０に量子化されない。このため、損失のある再構成プロセス中に０にまで量子化される中間（レベル２）サブバンドの中の最大の係数を、符号化プロセス中に決定し、その係数を低い方のしきい値（ｌｏＴｈｒｅｓとも呼ばれる）として使用することが、理にかなっている。
【００９３】
（例示的な粗い動き予測）
次のオペレーションとして、従来のサーチ−マッチが、基準フレームと現在のフレームのウェーブレット・マップの最も粗い４つのサブバンドに対して実行される（ブロック１１０２）。それらのサブバンドに対して実行される動き予測ルーチンには、相同のピクセル・ブロックに対する単純なブロックサーチ−マッチ・アルゴリズムがかかわる。このオペレーションにより、動きが生じたブロックが識別される。動きの量が算出され、補償される。これにより、伝送されることが要求される情報の量が減り、より良好な圧縮につながる。
【００９４】
現在のウェーブレット・マップと基準ウェーブレット・マップの間におけるピクセル・ブロックの動きを推定するのに、ブロック１１０３で、図１２に示されるとおり、動きが推定されるべき、基準マップの中のピクセル・ブロック（基準ブロックと呼ばれる）の周囲で、ブロック近傍が定義される。
【００９５】
最も粗い４つのサブバンドに対して、サブバンドの大きさは、ｋ＝（ｗ／２n）、ｌ＝（ｈ／２n）に等しく、ただし、ｗとｈは、ｎレベルの分解を伴う元のイメージの幅と高さである。ピクセル・ブロックの周囲の近傍の深度は、普通、それぞれｋとｌに等しいように設定されるが、わずかにより低い値（例えば、ｋ−１およびｌ−１）も同様に良好に作用する。
【００９６】
サブバンドの端部に沿ったピクセル・ブロックに対して、近傍の領域が、サブバンドの外側にあふれ出る。一実施形態では、そのブロックに対して、端部拡張ゾーンを使用してブロック近傍が作成される。信号の輪郭を平滑化し、イメージ端部に沿ったウェーブレット係数のダイナミックレンジを小さくするため、一実施形態では、ミラーリング・スキームを使用して、端部拡張ゾーンが作成される。ブロックの水平端部に沿って、近傍ゾーン内のピクセルの列が、ブロックの水平端部に沿った同一の列の中のピクセルで、逆の順序で埋められる。このため、端部に最も近い近傍ゾーンの中のピクセルは、同一の列の中でそのピクセルにすぐに隣接している、ブロック内のピクセルの値で埋められる。このプロセスは、ブロックの近傍ゾーンの現在の列の中のすべてのピクセルが埋められるまで、ブロック境界から等距離のピクセルに対して続けられる。このプロセスは、ブロックの両方の水平端部に隣接するすべての列に対して繰り返される。同様のプロセスが、ブロックの垂直境界に沿った隣接する行に対しても繰り返される。ブロックの隅に隣接するピクセルに対して、基準ブロックのそれぞれの隅におけるピクセルの値が複製される。
【００９７】
ブロック近傍が、基準ブロックの周囲に決められ、対応する端部拡張ゾーンに、以上に概要を述べたスキームを使用してポピュレートが行われると、実際のサーチルーチンが実行される。
【００９８】
相同のサブバンドの中で同一の相対的位置にある、現在のフレームと基準フレームの中のピクセル・ブロックが、ＭＥルーチンのために使用される。マッチングされるべき現在のフレームの中のピクセル・ブロックは、現在のブロックと呼ばれる。基準ブロックの周囲のブロック近傍によって包含される領域は、基準（または現在の）ブロックと同一の大きさを有するいくつかのブロックで構成されていると見なされる。
【００９９】
現在のブロックと基準ブロックの近傍内の同一サイズの任意のブロックの間の客観的な数値上の差を測定するのに使用されるメトリックは、一般的なＬ1メトリック、つまり、平均絶対誤差（ＭＡＥ）メトリックである。メトリックを測定するのに、一実施形態によれば、現在のブロックと同一の大きさを有するピクセル・ブロックが、近傍ゾーン内で識別される。それら２つのブロックの中の対応するピクセルの絶対値の間の差が計算され、合計される。このプロセスが、基準ブロック自体を含む、近傍領域内のすべてのそのような可能なピクセル・ブロックに対して繰り返される（ブロック１１０４）。
【０１００】
サーチ技術の１つの重要な態様は、サーチが行われる順序である。従来のラスタ走査を使用するのではなく、一実施形態によれば、革新的な外向きコイル技術が使用される。この変更形態では、現在のブロック（現在のフレームの中の相同のサブバンドの）とマッチングされるべき、基準フレームの現在のサブバンドの中の現在の近傍内の第１のブロックは基準ブロック自体である。基準ブロックが試験されると、基準ブロックのすべての側部で１ピクセルのオフセットに位置するすべてのブロックが試験される。初回の実行の後、基準フレームから２ピクセルのオフセットに位置するすべてのブロックが試験される。このようにして、サーチ空間は、現在の近傍内のすべてのブロックが試験されるまで、プログレッシブに外向きに移動する。
【０１０１】
最小のＭＡＥを有する近傍領域内の特定のブロックが、現在のシステムに特に関心の対象となる（マッチするブロックとも呼ばれる）。そのブロックは、現在のフレームの中の現在のピクセル・ブロックに対する絶対差分方向で最も近い、基準（前の）フレームの中のピクセル・ブロックである。
【０１０２】
現在の（または基準）ブロックからの、マッチするブロックの相対的ずれを記録するのに、一実施形態では、動きベクトル（ＭＶ）と呼ばれる独特なデータ構造が利用される。試験されているブロックのＭＶは、基準フレーム（例えば、前のフレーム、または将来のフレームのブロック）とマッチするブロック（現在のフレームの中の）の間の相対的ずれに関する情報を含む。各ブロックの左上隅が、マッチするブロックを追跡する基準点として選択される。基準ブロックの左上隅の座標と、マッチするブロックの座標との間の相対的ずれが、動きベクトル・データ構造の中に格納される。図１２に示されるとおり、ＬＬkサブバンドの中の動きベクトルには、Ｖ1oというラベルが付けられるのに対して、他の３つの最も粗いサブバンドの中の動きベクトルには、Ｖ2oというラベルが付けられ、ただし、ｏは、向き（ＨＬ、ＬＨ、およびＨＨ）である。
【０１０３】
動きベクトルを計算した後、データは、ベースライン・バイナリ算術圧縮アルゴリズム（本明細書で「パススルー・モード」とも呼ばれる）を介して、コンテキストなしに伝送される。一実施形態では、動き情報、特に動きベクトル・データ構造を伝送する間、階層順序に従う。動きベクトル情報は、絶対的動きベクトル情報（より粗いレベルからの）も改良された動きベクトル情報（より細かいレベルからの）もともに、一実施形態によれば、階層構造を有する。同一の空間配向ツリーに沿った親−子関係を共有するブロックに対応する動きベクトルは、ある程度の相関を有し、そのため、同一のコンテキスト変数を使用して伝送される。
【０１０４】
動き予測プロセスが、前述したとおりに実行された後、一実施形態によれば、基準フレームの中のマッチするブロックのピクセル値が、現在のフレームの中の相同のブロックから減算されて、各オペレーションの結果を使用して、現在のブロックの中の対応するピクセルが上書きされる。補償ブロックとも呼ばれる、この差分ブロックが、現在のフレームの中の現在のブロックに取って代わる。このプロセスは動き補償（ＭＣ）と呼ばれる。
【０１０５】
補償プロセスが、デコーダにおける最終的な再構築されたイメージに実質的に寄与する係数だけに適用されることを確実にするため、一実施形態によれば、前段で定義された低い方のしきい値（ｌｏＴｈｒｅｓ）を使用して、そのような係数に対してだけ動き補償が実行される。補償された係数値は、ｌｏＴｈｒｅｓ値よりも低く、一実施形態によれば、補償された係数は、０にまで量子化されることが確認されている。これにより、再構築されたフレームの全体的忠実度にいくらかの大きな寄与をする係数だけが、最終ビットレートに寄与することを許されることが確実になる。以上のＭＥ／ＭＣプロセスが、現在と基準のウェーブレット・マップの最も粗い４つのサブバンドの中の、すべての２×２ブロックに対して繰り返される。
【０１０６】
（例示的な改良された動き予測）
プロセスは、現在のマップと基準マップのウェーブレット・マップの中の、残りのすべてのより細かいサブバンドに対して、わずかに変更される。最も粗い４つのサブバンドを除く、すべてのサブバンドに対して、一実施形態では、最も粗いサブバンドの中の相同のブロックに対応する動きベクトルに対してアフィン変換を使用して、図１２に示されるとおり、移動された基準ブロックの周囲の領域内の限られた区域にわたって通常のサーチルーチンを適用して、リファインメント動き予測スキームが実施される。
【０１０７】
次々により細かくなるサブバンドのピクセル間の親−子階層のため、より細かいサブバンドの中の基準ブロックの相対位置は、最も粗いサブバンドの中の基準ブロックに密接に関係している。例えば、ＨＬ3サブバンドの中の左上の２×２ピクセル・ブロックの子孫には、図６に示されるとおり、ＨＬ2の左上隅における４×４ピクセル・ブロックと、ＨＬ1の左上隅における８×８ピクセル・ブロックが含まれる。両方のディメンションに沿った基準ブロックのサイズが、前のより粗いサブバンドの中の相同の基準ブロックのサイズの２倍であることに留意されたい。直観的に、より細かいサブバンドの中の動きベクトルのサイズは、相同のより粗いサブバンドの中の動きベクトルの２倍であると想定することができる。これにより、サブバンドの中の基準ブロックの中におけるピクセルの空間的移動の非常に粗い近似を得ることができる。この近似をさらに改良し、より細かいサブバンドの中のピクセルの動きをより正確に追跡するのに、一実施形態によれば、改良されたサーチ−マッチ・ルーチンが、より細かいサブバンドの中の基準ブロックに対して実行される。
【０１０８】
改良された動き予測ルーチンにおける第１のオペレーションとして、一実施形態では、基準ブロックの大きさが、基準ブロックが存在するサブバンドのレベルに依存する。例えば、レベル２における基準ブロックが４×４のサイズであるのに対して、レベル３における基準ブロックは８×８のサイズであるといった具合である。つまり、両方向に沿った基準ブロックのサイズは直前の（より粗い）サブバンドの中の基準ブロックの２倍である。一実施形態では、特定のレベルにおける、基準ブロックと同一の、または同様の大きさを有し、両方の基本的な方向に沿ってある量だけずれているブロックが識別される。
【０１０９】
ずれの量は、図１２に示されるとおり、基準ブロックが存在するレベルに依存する。例えば、図１２を参照すると、レベル２のサブバンドの中で、おおよそのずれは、２*Ｖkoであり、ただし、Ｖkoは、最も粗い（レベル１）サブバンドの中の相同の基準ブロックに関する動きベクトルである。このため、新たな基準ブロックは、元の基準ブロックから２*Ｖkoだけずれている。新たな基準ブロックがサブバンド端部に隣接している場合、前段で定義された、基準ブロックの周囲の近傍ゾーンと同一であるサーチ区域が、端部拡張とともに、そのブロックの周囲に定義される。近傍ゾーンの深度は分解レベルに依存する。一実施形態では、深度は、レベル２のサブバンドに対して、４ピクセルに設定されており、レベル３のサブバンドに監視介して、８に設定されているといった具合である。
【０１１０】
あらゆる中間レベルにおけるサブバンドに対して、改良されたサーチ−マッチ・ルーチンは、前述したレベル１（最も粗い）サブバンドに関するサーチ−マッチ・ルーチンと同様の、または同一の形で実施される。ｋ＝２ｎ−ｌであり、ｎ＝合計分解レベルであり、ｌ＝現在の分解レベルである、Δkoというラベルが付けられた、改良された動きベクトルが、より粗いサブバンドの動きベクトルと同様の形で伝送される（図１２参照）。マッチするブロックの正味のずれをポイントする（結果の）補正された動きベクトルＶｋoが、概算の（スケーリングされた）動きベクトル、２*Ｖk/2oとリファインメント・ベクトル、Δkoとを足すことによって与えられる。
【０１１１】
最も細かいレベルのサブバンドに対して、概算の動きベクトル（基準ブロックのディメンションを２倍にすることを見込む）は、Ｖko＋（２*Ｖk/2o）によって与えられる。元の基準ブロックから概算の動きベクトル分だけずれたブロックが、次に新しい基準ブロックとして使用される。そのブロックの周囲の近傍ゾーンの深度は、すぐ前のより粗いレベルにおいて設定されたサイズの２倍に設定される。このようにして獲得された、新たな改良された動きベクトル、Ｖ2*koは、より粗いレベルの動きベクトルと同様の形で伝送される（図１２参照）。
【０１１２】
より細かいサブバンドに対して実行される、改良された動き予測アルゴリズムのための動き補償（ＭＣ）ルーチンは、最も粗いサブバンドに対して概要を述べたプロセスと同じか、同一である。改良された動きベクトルがポイントする、マッチするブロックが、現在のブロック（現在のフレームの中の相同の位置における）からピクセルごとに減算され、差分が、現在のブロックによって占められるロケーションに上書きされる。そのブロックが、この時点で、補償ブロック（より粗いサブバンドに対して前述した）と呼ばれる。
【０１１３】
現在のフレームの中のすべての現在のブロックが補償された後、新たなフレームが補償フレームと呼ばれる。この補償（差分）フレーム（予測フレームとも呼ばれる）が、次に、ソース・エントロピ／算術コーダを使用してソース−算術符号化され、ビット・ストリームが、伝送チャネルを介して伝送される（例えば、図４Ａのブロック４０３〜４０５）。
【０１１４】
予測フレームに関するソース符号化−動き補償フィードバック・ループは、いくつかの軽微な変更を伴って、イントラ・フレームに対して使用されるプロセスと同様である。予測フレームにおける係数値の統計分布は、イントラ符号化フレームにおいて見られる分布とは異なることがよく知られている。イントラ符号化フレームのケースでは、ウェーブレット・フィルタのエネルギー圧縮により、より優れたエネルギー圧縮が確実にされるものと想定される。これにより、エネルギーの大部分が、確実に、最も粗い４つのサブバンドの中に集中するようになる。しかし、セットアップ全体の間に、データは、ビデオ・シーケンスなどの、リアルタイムのビジュアル信号の非決定論的な統計特性を有する。しかし、予測フレームのケースで、ピクセルの空間的に異なる差分値だけが格納され、それらの係数は、現実のビデオ・クリップのエントロピを欠く。このため、予測ウェーブレット・マップの、より優れたエネルギー圧縮を当然視することはできない。
【０１１５】
一実施形態では、イントラ符号化マップに対して、特定の配向ツリーに沿って進むと、最も粗いサブバンドは、係数値の最大の平均と分散を有し、それらの統計値は、より細かいレベルに向かって対数曲線に沿って減少する。そのような「下り坂の」輪郭により、ウェーブレット・マップの中で高いレベルのエネルギー圧縮が保たれる。この「頭でっかちの」分布は、ソース・コーダの高い符号化効率と利得に役立つ。しかし、それらのサブバンドの第１の統計モーメントと第２の統計モーメントは、予測ウェーブレット・マップの中で、それほど密接に関係していない。予測マップの中で「ほぼ対数曲線」関係をシミュレートするのに、一実施形態によれば、予測マップの中のより細かいサブバンドのウェーブレット係数が、それらの係数の元の値からスケールダウンされる。これにより、輪郭プロットが、より「対数的な」フィットになるように強制されて、イントラ符号化ウェーブレット・マップの圧縮を非常に効果的にするウェーブレット係数の同様の統計分布がシミュレートされる。一実施形態によれば、このスケーリング・プロセスは、復号化プロセスにおいて逆にされる。一実施形態によれば、３レベル分解に関する特定のツリーの向きに沿って、最も細かいサブバンド（ＬＬkサブバンド以外の）に対して、スケーリング率は８、１６、３２である。
【０１１６】
一実施形態では、フレーム・グループ（ＧＯＦ）が、イントラ符号化フレームから始まり、その後に、予測（ＢまたはＰ、あるいはそれ以外の）フレームが続く、時間的に隣接したフレーム・セットとして定義される。ＧＯＦの終りで、イントラ符号化フレームは、新たなＧＯＦの始まりを知らせる。
【０１１７】
レート制御の重要な側面は、イントラ符号化フレームが、それらのフレームの本来備わったより高い符号化レートのために、必要とされる場合にだけ、導入されることを保証することである。一実施形態では、イントラ符号化フレームの導入の理由となる２つのイベントは、許容できるレベルを下回る平均フレームＰＳＮＲの低下、および／またはビデオ・クリップにおけるシーンの変化である。システムによって使用される正確な動き予測ルーチンのため、フレームの平均ＰＳＮＲは、それまでに受け入れられたしきい値を下回って低下する可能性の方が低い（そのため、ビデオ・シーケンス全体を通して良好な主観的品質が確実にされる）。
【０１１８】
ほとんどのデータ処理とヒューリスティックな判定は、多重解像度ドメインにおいて行われるので、シーンの変化も、最も粗い（ＬＬk）サブバンドの中のピクセル値の分布に基づいて、検出される。動き予測とソース／エントロピ符号化の前の前処理オペレーションとして、動き予測ルーチンが実行されるべき２つのフレームの最も粗いサブバンドが比較される。
【０１１９】
一実施形態では、ＬＬkサブバンドにおける相同のピクセルの絶対差が計算されて、しきい値に対して比較される。このしきい値は、多様なビデオ・クリップに対する実験で決定される。特定の実施形態では、５００という値が、ほとんどの目的に適している。この絶対差分オペレーションが、最も粗いサブバンドのすべての係数に対して実行されて、カウンタが、絶対差の値がしきい値を超えるケースの数の追跡を記録する。絶対差がしきい値を超えるピクセルの数が、所定のレベル以上である場合、ビデオ・フレームにおけるシーンの激しい変化があったものと考えることができ、したがって、イントラ符号化フレームの導入の理由となり、現在のＧＯＦの終りと新たなＧＯＦの始まりが印される。シーン変化を判定する、本明細書で、シーン変化ファクタ（ＳＣＦ）というラベルが付けられる数値レベルは実験の問題である。一実施形態では、５０という値が、ほとんどのケースに適している。
【０１２０】
一実施形態では、ある最小しきい値要件とある最大しきい値要件を満たす、マッチするブロック（サブバンド内の）だけが補償され、符号化されることを確実にする技術が、使用される。その技術は、適応しきい値と呼ばれる。一実施形態では、実際のブロック・マッチング・ルーチン中に、現在のブロックと比較されるべき最初のブロックは、基準ブロックである。近隣ゾーン内の他のすべてのブロックに対して、そのブロックのＭＡＥが、しきい値と照らして基準ブロックのＭＡＥと比較される。それら２つのブロックのＭＡＥの値の差がしきい値未満である場合、そのマッチは、破棄され、基準ブロックが、引き続き最良のマッチと見なされる。
【０１２１】
しきい値は、実験によって決定され、ウェーブレット・ツリー構造の異なるレベルに対して異なる。より粗いレベル（より高いサブバンド）において、係数は平均値であるのに対して、より細かいレベル（より低いサブバンド）において、係数は差分値である。平均値は差分値より大きい。このため、ＬＬkサブバンドに対して、しきい値は他のサブバンドより高い。所与の分解レベルにおけるすべてのサブバンドが同一の量子化値を有し、値は、分解レベルを下に行くにつれて小さくなる。マッチが見つかると、一実施形態によれば、現在のブロック（現在のフレームの中の）のエネルギーが、補償ブロック（現在のフレームの中の現在のブロックと、基準フレームの中のマッチするブロックの相同のピクセル間の差分を計算することによって得られる）のエネルギーと比較される。このケースにおけるエネルギーは、特定の補償ブロックの係数値を合計することによって得られる単純な１次メトリックである。そのエネルギー値が、現在のブロックの対応するエネルギー値より大きい場合、その補償ブロックは、破棄され、現在のブロックが、補償（残余の）フレームの中で代わりに使用される。前のしきい値のケースと同様に、一実施形態によれば、現在のしきい値レベルの値は、広範な実験を介して決定されることが可能であり、ウェーブレット・ピラミッドの様々なレベルに対して異なる。
【０１２２】
（例示的な動き予測モード）
一部の実施形態で使用される動き予測ルーチンは、本明細書で、双方向多重解像度動き予測（Ｂ−ＭＲＭＰ）と呼ばれる。一実施形態では、動きは、先行するフレームと後続のフレームから推定される。動き予測のために使用される過去のフレーム、現在のフレーム、将来のフレームの間の時間的オフセットは推測の問題である。一実施形態では、１という時間的オフセットが、最良の結果のために適用される。一実施形態では、フレームはペアで読み取られ、ウェーブレット変換される。そのようなシナリオでは、３つの一般的なシーケンス・モードが可能である。
【０１２３】
ＢＰモードとも呼ばれる第１のモードでは、ペアの中の第１のフレームは、動き予測ルーチンを受ける、そのフレームの各サブバンドの中の各ブロックが、前に符号化された（基準）フレームと、将来の（Ｐ、またはそれ以外の）フレームの両方の中の相同のブロックに照らして試験される双方向予測フレームである。一実施形態では、フレーム・データは、自然な順序で読み取られ、ウェーブレット変換される。しかし、（後続の）Ｐフレームは、Ｂフレームより前に動きが予測される。Ｐフレームは、最後のフレーム・ペア（例えば、基準フレーム）の第２のフレームを使用して動き予測ルーチンを適用することにより、予測される。次に、フレームは、フレームの損失のあるバージョンを回復するように、動き予測技術を使用して再構築され、補償される。Ｂフレームの中の各ブロックが、次に、（過去の）基準フレームと（将来の）Ｐフレームの両方からの相同のブロックを使用して、動き予測される。基準フレームからの基準ブロックを使用した推定／補償が、より低いエネルギーの補償ブロックとなる場合、その特定のブロックは、（過去の）基準フレームの基準ブロックを使用して補償され、さもなければ、補償は、（将来の）Ｐフレームの基準ブロックを使用して実行される。
【０１２４】
Ｂフレームのより細かいサブバンドでは、補償のために２つのフレーム（過去の基準フレーム、または将来のＰフレーム）のいずれかを使用する決定は、最も粗い４つのサブバンドの中の親ブロックにおいてその目的で使用されたフレームに基づく。
【０１２５】
Ｂフレームの動き情報を記録し、伝送する間、アレイは、補償プロセスにおいて使用され、２ビットの英字を使用している、フレーム（過去の基準フレーム、または将来のＰフレーム）のＩＤを格納する。フレームの中のすべてのブロックに関するその情報は、他の動き情報に先立って、チャネルを介してコンテキストとともに伝送される。Ｂフレームを使用する利点は、Ｂフレームが、将来のフレームを予測する基準フレームとして使用される可能性がそれほど高くないため、動き予測フィードバック・ループにおいて補償と再構築を必要としないことである。このため、このルーチンは、符号化プロセスにおいて、他のシステムにおける場合と比べて、非イントラ符号化フレームに対して半分でフィードバック再構築ループを通過し、相当な量の処理時間が節約される。
【０１２６】
ＰＩモードとも呼ばれる第２のモードでは、ペアの中の第１のフレームは、先行するフレーム・ペアの第２のフレームを基準として使用して予測符号化される。そのペアの後半部分におけるイントラ符号化フレームは、次のフレーム・ペアに関する基準として使用される。
【０１２７】
ＰＩモードでは、第１のフレームは、イントラ符号化フレームであり、ペアの中の第２のフレームの（単方向）動き予測のための基準として使用される。第２の（Ｐ）フレームが、補償されると、そのフレームは、次のフレーム・ペアのために新たな基準フレームとして再割り当てされる。
【０１２８】
別の実施形態では、動き予測は、単方向多重解像度動き予測（Ｕ−ＭＲＭＰモード）とも呼ばれる単一の予測フレームを使用して実行される。このスキームでは、Ｂ−ＭＲＭＰに対して前段で概要を述べたすべてのオペレーションが、単にＰフレームとして知られる単一の（先行する）予測フレームを使用して実行される。一度に１つのフレームだけが読み取られればよいので、この技術は、動き予測の正確さが劣るものの、要する待ち時間はより短くてすむ。すべての非イントラ符号化フレームは、先行する（ＩまたはＰ）フレームから予測されるので、前述したとおり、モード・ビットのストリームを送信する必要がない。
【０１２９】
別の実施形態では、動き補償（ＭＣ）スキームは、動きブロック重ね合わせ（ＭＢＳ）で置き換えられることが可能である。ＭＢＳスキームでは、動き推定は、前述したとおり、実行される。しかし、算術符号化スキームは、符号化予測された（誤り）マップ（ＢおよびＰ）において非常に非効率である。ＢフレームとＰフレームの中の係数の偏った確率分布のために、それらの係数は、算術符号化のケースで行われる頭でっかちのツリー構造の想定を満たさない。これにより、大きい係数のいくつかが、より細かいサブバンドの中で散在することになり、それらの孤立した係数が、より高い忠実度のために符号化される前に、算術符号化の反復機構が、いくつかのビットプレーンを通ってループさせられる。
【０１３０】
一実施形態では、以上の問題を解決する１つのやり方は、誤りマップを扱うことを完全に回避することである。そのスキームでは、任意のＧＯＦサイズが、固定サイズのＧＯＦによって置き換えられる。一部の実施形態では、ＧＯＦの中のフレームの数は、毎秒のフレーム数に等しい（例えば、毎秒、新たなＧＯＦ）。２つのイントラ符号化ＧＯＦエンドマーカ（新たなシーンの始まりにマークを付ける）間の１秒の時間内にイントラ符号化フレームが挿入される可能性がある、急速なシーン変化のケースでは、新たなＧＯＦが、その新たなＩフレームから定義される。動き推定ルーチンが、基準ブロックを基準として、マッチするブロックの空間的位置を決定した後、一実施形態によれば、現在のブロック（現在のフレーム）の係数値が、基準フレームの中のマッチするブロックの相同のピクセルで置き換えられる。これは、２つのブロックの差分を計算しないことによって時間を節約し、イントラ符号化フレームの全体的な統計も維持する。実際、これにより、現在のＧＯＦの中の第１のイントラ符号化フレームのブロックが、ジグソーパズルのように、限られた領域内であちこちに移動されることになり、動きは、対応する動きベクトルだけを使用して表される。このスキームでは、動きベクトルだけが伝送される必要があり、予測符号化マップは、もはやソース符号化されない。というのは、各予測符号化フレームの中のブロックは、基本的に、現在のＧＯＦの第１のイントラ符号化フレームから並進され、持ち上げられたブロックから成るからである。以上のオペレーションが、各Ｂフレーム、または各Ｐフレームの３つすべてのマップに対して実行される。
【０１３１】
基準から現在のフレームへの重ね合わせが完了すると（前述した補償フレームの代わりに、重ね合わせフレームを作成する）、そのフレームが、将来のフレームのための基準フレームの役割をする。現在のＧＯＦの第１のＩフレームの中の実際のピクセル値は、プロセス全体を通じて、単にそれらの値の周囲で並進されるので、算術符号化を使用して重ね合わせフレームを符号化し、ビットをデコーダに伝送することは必要としない。このため、新たなシステムは、重ね合わせフレームからのビットを符号化せず、伝送しないことにより、時間と帯域幅を節約する。
【０１３２】
ＢＭＳの別の実施形態では、前に符号化されたフレームの輝度（および／またはクロマ）マップの最も粗い４つのサブバンドだけが、算術符号化を使用してソース符号化される。これは、それら４つのサブバンドをｎレベル・サブバンド・マップ（通常のマップと同様の）の中で複製し、他のすべてのサブバンドを０で埋めることによって行われる。動き推定（ＭＥ）と動き補償（ＭＣ-／ＭＣ+）が、前述したとおり、実行され、補償フレームは、算術符号化を使用して符号化される。これにより、前の実施形態と比べて、動きを追跡する際により高い信頼性が確実になるが、より高いビットレートという犠牲を払う。
【０１３３】
前述したとおり、動き予測のモードの選択は、確定していない推測といくらかの入念な実験の問題である。一実施形態では、動き情報ファクタ（ＭＩＦ）とも呼ばれるしきい値が、現在のフレームと将来のフレームが時間符号化されるべきモードを決定するのに使用される。
【０１３４】
一実施形態によれば、ＭＩＦを計算するのに２つの独立したしきい値が使用される。ウェーブレット・マップの中のサブバンドの中の係数がその目的で使用される。動きの平均量に基づいてブロックを分類するデシジョン・ツリーは、係数を３つのカテゴリに分離することに基づく。補償の後の合計エネルギーが、元の現在のブロック自体のエネルギーより大きいブロックに対して、対応する動きベクトル座標は、例えば、１２７という値などの、所定の値に設定される。他の２つのカテゴリのブロックは、両方の座標が、所定の値以外の値と等しい動きベクトルを有する。便宜上、それらのブロックには、それぞれ、ＮＣ（非補償）、Ｚ（ゼロ）、ＮＺ（非ゼロ）というラベルが付けられる。
【０１３５】
第１のしきい値は、ウェーブレット・マップの中の４つの最も粗いサブバンドに対して設定される。ＮＣブロックの総数をファクタαで表し、ＮＣブロックとＺブロックの総数をファクタβで表す。一実施形態では、αがβの値の１０％未満である場合、その特定のフレームは繰り返される。それ以外の場合、動き予測（Ｂ−ＭＲＭＰ）が実行される。
【０１３６】
同じ試験パラメータ（αまたはβ）を用いる同様の試験が、残りのより細いサブバンドに対して実行される。一実施形態では、αがβの１０％未満である場合、動きブロック置換（ＭＢＳ）が実行される。そうでない場合は動き予測（Ｂ−ＭＲＭＰ）が実行される。
【０１３７】
いずれかの試験において使用されるしきい値ファクタとサブバンドの数は、推測と入念な実験の問題である。一実施形態では、４つの（可能な１０からの）サブバンドが、第１の試験のために使用され、残りの６つは、第２の試験のために使用され、いずれのケースにおいても、１０％というしきい値ファクタが使用される。
【０１３８】
（代替の動き予測スキーム）
別の実施形態では、ピクセル（空間）マップの完全サーチルーチンが、空間ドメインにおける動きを予測し、追跡して、ビデオ・シーケンスの中の連続するフレーム間の時間的冗長性を活用するために、図９Ｂ、図１０Ｂに示すとおり、ウェーブレット変換ブロックに先立って導入される。一実施形態では、１６×１６ブロック・サイズが、現実世界の大域的動きと局所的動きを追跡するのに最もよく適している。これには、回転の動き、並進の動き、カメラ・パンの動き、ズームの動きが含まれるが、以上には限定されない。このため、このサイズのブロックは標準マクロブロックと呼ばれる。
【０１３９】
一実施形態では、単方向動き予測（Ｕ−ＭＰ）が、完全サーチ技術を使用して、連続するフレーム間の動きを予測するのに使用される。その実施形態では、フレームは、標準マクロブロック・サイズ（１６×１６）の高さと幅を有するブロックに分割される。フレーム境界に沿った不整合を防止するのに、フレームの大きさは、１６の倍数となるように端部拡張される。そのように作成された端部拡張されたゾーンの中のピクセルを満たすのに、すべてのフレームにわたって標準の一様な技術が適用される。エッジ拡張されたゾーンには、例えば、実際のイメージの端部に沿ったピクセル値が埋められても、あるいは、全体にわたって０で埋められてもよい。様々な技術が、特定の構成に依存して利用される。
【０１４０】
フレームが、１６×１６のサイズのブロックに分割されると、Ｕ−ＭＰルーチンが、すべてのそのようなブロックにラスタ走査シーケンスで適用される。各ブロックに対して、近傍ゾーンが、図１３に示されるとおり、マクロブロックの端部の周囲に定義される。近傍ゾーンの深度は、すべての方向で、１５ピクセルに等しくなるように選択される。このため、Ｕ−ＭＰを使用して処理されるべき各マクロブロックは、すべての方向で、そのマクロブロックの周囲の１５ピクセルの近傍ゾーンで埋められる。
【０１４１】
イメージ・マップの端部に沿ったマクロブロックに対して、近隣ゾーンは、イメージ・マップの外の領域に及ぶまで広がることが可能である。そのようなケースでは、マクロブロックに関する近傍ゾーンは、端部拡張されたゾーンからのピクセルを使用する。
【０１４２】
Ｕ−ＭＰルーチンは、５つの基本的なオペレーションに分割される。選択的動き予測として知られる第１のオペレーションにおいて、一実施形態では、いずれのピクセルが、またはいずれのピクセル・セットが、Ｕ−ＭＰプロセスにおいて補償される必要があるかを判定するしきい値が設定される。一実施形態では、基準フレームの中の各ピクセルが、現在のフレームの中の相同のピクセルから減算されて、差分マップが生成される。差分マップの中の各ピクセルが、次に、予め決めたしきい値と比較される。しきい値の値は、推定と厳密な実験の問題である。現在のピクセル位置における差分値が、しきい値を超えている場合、そのピクセルには、アクティブであるというマークが付けられ、超えていない場合、そのピクセルには、非アクティブであるというマークが付けられる。基準フレームの中のすべてのピクセルが検査された後、基準フレームの中のそれぞれの１６×１６ピクセルの中のそのようなアクティブなピクセルの数のカウントが記録される。マクロブロックの中のアクティブなピクセルの数が予め決めたしきい値を超えている場合、そのマクロブロックには、アクティブであるというマークが付けられ、超えていない場合、そのマクロブロックには、非アクティブであるというマークが付けられる。しきい値の値は、推定と厳密な実験の問題である。
【０１４３】
Ｕ−ＭＰプロセスにおける第２のオペレーションは、単方向動き予測（Ｕ−ＭＰ）オペレーションである。一実施形態では、従来のハーフペル動き予測アルゴリズムの変更形態が実行される。その変更形態では、各フレームは、２倍に補間されて、元のイメージ・マップの４倍のサーチ区域となる。前の実施形態で前述したとおり、基準フレームとして知られる先行するフレームが、動きを予測し、追跡するための基準として使用される。現在のフレーム（単に現在のフレームとして知られる）が比較の他の基礎として使用される。比較されるそれら２つのフレームの中の相同のブロックが、図１３に示されるとおり、それぞれ、基準ブロック、現在のブロックと呼ばれる。
【０１４４】
動き予測ルーチンの別の実施形態では、非整数ペル動き補間スキームは、図１４に示されるとおり、ある形態のクォータペル動き予測を実行するようにさらに変更される。この変更形態では、現在のフレームと基準フレームの輝度マップが、両方の基本的な方向に沿って４倍に補間されて、サーチ−マッチ・ルーチンにおける有効サーチ区域が、１６倍に増加する。前述した両方の補間スキームの形態において、双１次補間スキーム、２次補間スキーム、３次スプライン補間スキームを含むが、以上には限定されない補間機構の選択は、推定と厳密な実験の問題である。補完された係数の正確な予測と計算の速度の間のトレードオフが、スキームの選択に関する重要な決定的要因である。
【０１４５】
第２のオペレーションで、現在のフレームの中の特定のピクセル・ブロックの中の動きの最適な方向を判定する３つの試験が実行される。最初、ノンディスプレース動き予測オペレーションにおいて、一実施形態では、現在のフレームの中の各マクロブロックが、基準フレームの中の相同のマクロブロックからピクセルごとに減算される。これにより、ノンディスプレース補償ブロックが生成される。次のオペレーションで、整数サーチ（図１３、図１４参照）が、現在のフレームのすべての１６×１６マクロブロックに対して実行される。このルーチンにおいて、現在のマクロブロックのピクセルが、基準ブロックの周囲の近傍ゾーン内の現在のブロックと同一サイズのすべてのピクセル・セット上に重ねられる。それら２つのピクセル・セットを比較するために使用されるメトリックは、前の実施形態の場合と同様に、Ｌ1（絶対差の合計、つまり、ＳＡＤ）メトリックである。基準ブロックから開始して、ＳＡＤは、基準ブロックの近傍ゾーン内の１６×１６のすべてのブロックに対して計算されて、ＳＡＤの最低の値を有するブロックの位置には、マッチするブロックというラベルが付けられる。
【０１４６】
マッチするブロックと基準ブロックの間の相対位置が、現在の基準ブロックに関する動きベクトルとして知られる独特のデータ構造を使用して記録される。次のオペレーションで、ハーフペルサーチが、現在のフレームのすべての１６×１６マクロブロックに対して実行される（図１３参照）。このモードでは、整数サーチモードにおいて特定のマクロブロックに対して獲得された動きベクトルが２倍にされ、改良されたサーチが実行される。改良されたサーチ区域の深度は、すべての方向で１ピクセルである。このオペレーションは、すべての方向において、１／２ピクセル以下の動きを検出するのに役立つ。結果の動きベクトルは、整数サーチモードと改良されたサーチモードにおいて獲得された、スケーリングされた動きベクトルを合計することによって得られる。その動きベクトルと対応するＳＡＤ値とが、将来のモード選択のために記録される（図１３参照）。
【０１４７】
現在のフレームの中の対応するマクロブロックのための動きベクトルとＳＡＤの値を記録した後、各マクロブロックは、８×８のサイズの４つのブロックに分割され、ハーフペルサーチが、４つのブロックのそれぞれに対して実行される（図１４参照）。前段で概要を述べたとおり獲得された動きベクトルの対応する成分に等しい、両方の基本的な方向に沿った距離だけ、現在のブロック（動き予測のために試験されている）からオフセットされたブロック（８×８の大きさの）が、改良されたサーチルーチンのための基礎として使用され、そのブロックの周囲に１ピクセルのサーチ区域が存在する。これは、前述したとおり、１ピクセルの改良されたサーチ区域を伴う、改良されたサーチ技術の変更形態である。整数サーチモードと改良されたサーチモードにおいて獲得された、スケーリングされた動きベクトルを合計することによって獲得された結果の４つの動きベクトルのセット、および対応するＳＡＤ値が後のモード選択のために記録される（図１４参照）。
【０１４８】
別の実施形態では、より改良されたスキームが、大域的な動きフィールドの中の、より小さい動くオブジェクトに対して実施される。このスキームでは、現在のマクロブロック内の８×８の各ブロックが、４×４の４つのブロックにさらに分割され、前段で概要を述べた、スケーリングの前述の技術と概要を述べた改良されたサーチの技術が、４×４ピクセル、４×８ピクセル、８×４ピクセルの大きさの、可能なすべてのサーチ区域に対して繰り返される。前段で概要を述べた改良された動き推定ルーチンから獲得されたＳＡＤ値も、将来のモード選択のために表にされる。
【０１４９】
一実施形態によるＵ−ＭＰにおける第３のオペレーションでは、前述した異なる３つのモードから獲得されたＳＡＤ値に、異なる重みが適用される。ノンディスプレース動き予測オペレーションからのＳＡＤ（および対応する動きベクトル）は、累積的伝送速度に対する追加への寄与が最も少ないので、このモードに対応する動きベクトルには、最低の重み（値ゼロの）が与えられ、そのため、最高の優先順位が与えられ、ブロックのモードには、０ＭＶというラベルが付けられる。同様に、より大きくなる重み（およびより低い優先順位）が、１６×１６整数ペル／ハーフペルサーチモードと８×８ハーフペル・モードからそれぞれ獲得されたＳＡＤ値と動きベクトルに与えられる。それらのブロックには、それぞれ、１ＭＶ（図１３参照）、４ＭＶ（図１４参照）というラベルが付けられる。重みは、ＳＡＤ値を何らかの予め決めたしきい値と比較することによって課せられる。前段で概要を述べた３つのケースのそれぞれにおけるしきい値の値は、推定と厳密な実験の問題である。これは、特定のマクロブロックに対してより高いレートを有するモードが選択されることが、そのようにして得られる利点が、より高い忠実度（およびより低いＳＡＤ）の点で、相当に大きい場合にだけ行われることを確実にするように行われる。
【０１５０】
Ｕ−ＭＰの第４のオペレーションで、一実施形態によれば、図１５に示されるとおり、オーバラップ・ブロック・マッチング／補償（ＯＢＭＣ）が、図１５に示された基準フレームの各１６×１６マクロブロックに対して実行される。このオペレーションでは、ディスプレース・フレーム差分（ＤＦＤ）アルゴリズムが、前述した諸技術を使用して実施される。しかし、一実施形態では、マッチするブロックの選択は、図１５に示されるとおり、現在、試験されている基準ブロックと、隣接する近隣ブロックの動きベクトルの関数である。
【０１５１】
現在、試験されている基準ブロックが、１ＭＶモードであり、そのブロックのすぐ上と左に隣接しているブロックが、それぞれ、１ＭＶモードである実例を考慮されたい。そのような実例では、一実施形態によれば、３つすべてのブロックからの動きベクトルが、試験されている基準ブロックの任意の１つの隅に並進され（いずれの特定の隅も優先されないが、その選択は、そのブロックに関する補償手続き全体にわたって一貫していなければならない）、対応するマッチするブロックが決定される。３つすべてのマッチするブロックの大きさは、基準ブロックの大きさと等しくなければならない（図１５参照）。現在の実施形態では、そのように決定された、すべてのマッチするブロックからの相同のピクセルが、異なる重みを使用して合計され、次に、現在のブロック（現在のフレームの中の）の中の相同のピクセルとの間で差分が計算される。差分値は、現在のブロックの中の対応するピクセル位置上に上書きされる。その差分ブロックに、補償ブロックというラベルが付けられる。
【０１５２】
現在、試験されている基準ブロックが、４ＭＶモードである実例では、一実施形態によれば、マッチするブロックは８×８のサイズである。その実例では、元の１６×１６基準ブロックから切り出された４つの８×８ブロックのそれぞれが、ＯＢＭＣを実行するのに使用される。８×８ブロックのいずれか１つに直に接触するブロックが１ＭＶモードである場合、そのブロックの単一の動きベクトルがＯＢＭＣプロセスにおいて使用される。隣接するブロックが４ＭＶモードである場合、問題の８×８ブロック（試験されている基準ブロックの中の）とピクセルのライン全体を境界として共有する、そのような隣接するブロックの８×８ブロックだけが、使用される（図１５参照）。
【０１５３】
現在、試験されている基準ブロックの中のピクセルまたはピクセル・セットに適用される重み付け関数と、基準ブロックに隣接するブロックの中のピクセルまたはピクセル・セットに適用される関数は、厳密な実験のプロセスを使用して決定される。
【０１５４】
Ｕ−ＭＰにおける最終オペレーションとして、残余のフレームが、前述したＯＢＭＣオペレーションの直接の結果として生成される。ＤＦＤルーチンを使用して、各ブロック（８×８または１６×１６）の間の差分が計算され、ピクセル値が、現在のブロックの中の対応するピクセル位置の上に上書きされて、残余のブロックが生成される。現在のフレームの中のすべてのブロックが試験されると、結果のフレームに、残余のフレームというラベルが付けられる。
【０１５５】
０のサイズの動きベクトルを有するすべてのマクロブロック（１６×１６のサイズの）に対して、ＳＡＤが予め決めたしきい値と比較される。ＳＡＤが、予め決めたしきい値を下回っている場合、その特定のマクロブロックには、非補償マクロブロック（ＮＣＭＢ）というマークが付けられる。４つのそのようなＮＣＭＢが、２×２グリッド・アレイ構成で互いに隣接して見つかった場合、４つのブロックのそのセットには、非符号化ブロック（ＮＣＢ）というラベルが合同で付けられる。
【０１５６】
デコーダは、符号化されたビット・ストリームを復号化し、エンコーダと逆の信号フローを有する。様々な信号処理オペレーションの相対的順序は逆にされる（例えば、ウェーブレット再構築ブロック、またはＩ−ＤＷＴが、ソース／エントロピ・デコーダ、逆算術符号化の後に来る）。各ブロック内で、入力データの流れは、エンコーダに対して逆にされ、実際の論理オペレーションと数学オペレーションも逆にされる。
【０１５７】
しかし、デコーダは、デコーダにおける動き補償（ＭＣ+）ルーチンが、比較的単純な加算プロセスであり、動き推定／補償（ＭＥ／ＭＣ-）オペレーションの計算リソースを多用するサーチ−差分ルーチンがかかわらないという点で、エンコーダの複雑さを欠く。図９Ｂおよび図１０Ｂに示されるとおり、特定のピクセル・ブロック（任意の解像度レベルにおける任意のサブバンドの）に関する動きベクトル情報が、考慮されている現在のブロックにマークを付けるのに使用され、残余のフレームは、残余のブロックからの相同のピクセルの値を、現在のブロックに単に加算することによって更新される（つまり、「補償される」）。
【０１５８】
以上、動き予測を使用してデジタル・イメージ・データを補償するための方法および装置を本明細書で説明した。以上の詳細な説明のいくつかの部分は、コンピュータ・メモリ内部のデータ・ビットに対するオペレーションのアルゴリズムと記号表現の点で提示してきた。それらのアルゴリズム記述とアルゴリズム表現は、データ処理技術の当業者が、自らの作業の内容を他の当業者に最も効果的に伝えるのに利用するやり方である。本明細書で、また一般的にも、アルゴリズムは、所望される結果をもたらす自己矛盾のないオペレーション・シーケンスであると考えられている。オペレーションは、物理量の物理的操作を要するオペレーションである。普通、ただし、必然的にではなく、それらの量は、格納、転送、合成、比較、およびそれ以外の形の操作が行われることが可能な電気信号または磁気信号の形態をとる。ときとして、主に一般的な用法の理由で、それらの信号をビット、値、要素、記号、文字、項、数値などと呼ぶことが好都合であることが分かっている。
【０１５９】
しかし、それらの用語、および類似の用語は、適切な物理量に関連付けられるべきであり、単に、それらの量に付けられた便利なラベルに過ぎないことに留意しなければならない。特に明記しない限り、以上の説明から明らかなように、説明の全体を通して、「処理する」、または「演算する」、または「計算する」、または「判定する」、または「表示する」などの用語を利用する説明は、コンピュータ・システムのレジスタとメモリの内部の物理（電子）量として表されるデータを操作して、コンピュータ・システム・メモリまたはコンピュータ・システム・レジスタ、あるいは他のそのような情報格納デバイス、情報伝送デバイス、または情報表示デバイスの内部の物理量として同様に表される他のデータに変換する、コンピュータ・システム、または類似した電子コンピューティング・デバイスのアクションおよびプロセスを指すものと理解される。
【０１６０】
また、本発明の諸実施形態は、本明細書のオペレーションを実行するための装置にも関する。この装置は、要求される目的のために特別に構築されても、コンピュータに格納されたコンピュータ・プログラムによって選択的にアクティブにされる、または再構成される汎用コンピュータを含んでもよい。そのようなコンピュータ・プログラムは、フロッピー（登録商標）・ディスク、光ディスク、ＣＤ−ＲＯＭ、および光磁気ディスクを含む任意のタイプのディスク、読取り専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、消去可能なプログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ）、磁気カードもしくは光カード、あるいは電子命令を格納するのに適した任意のタイプの媒体などの、ただし、以上には限定されない、それぞれがコンピュータ・システム・バスに結合された、コンピュータ可読記憶媒体の中に格納される。
【０１６１】
本明細書で提示されるアルゴリズムおよび表示は、いずれの特定のコンピュータ、または他の装置にも本来的に関連していない。様々な汎用システムが、本明細書の教示によるプログラムとともに使用されることが可能であり、あるいは要求される方法オペレーションを実行する、より特化された装置を構築するのが好都合であると判明する可能性がある。様々なそれらのシステムに関する要求される構造は、以下の説明から明らかとなろう。さらに、本発明は、いずれの特定のプログラミング言語に関連しても説明されていない。様々なプログラミング言語が、本明細書で説明される本発明の教示を実施するのに使用されることが理解されよう。
【０１６２】
マシン可読媒体には、マシン（例えば、コンピュータ）によって読み取られることが可能な形態の情報を格納するため、または伝送するための任意の機構が含まれることが可能である。例えば、マシン可読媒体には、読取り専用メモリ（「ＲＯＭ」）、ランダム・アクセス・メモリ（「ＲＡＭ」）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ・デバイス、電気形態、光形態、音響形態、または他の形態の伝搬される信号（例えば、搬送波、赤外線信号、デジタル信号、その他）、その他が含まれる。
【０１６３】
以上の明細において、本発明を、本発明の特定の例示的な諸実施形態に関連して説明してきた。添付の特許請求の範囲に記載される本発明のより広い趣旨および範囲を逸脱することなく、それらの実施形態に様々な変更が加えられることが可能であることが、明白であろう。したがって、本明細書および図面は、限定的ではなく、例示的な意味であると見なされるべきである。
【図面の簡単な説明】
【０１６４】
【図１】一実施形態による例示的なマルチメディア・ストリーミング・システムを示すブロック図。
【図２】一実施形態による例示的なマルチメディア・ストリーミング・システムを示すブロック図。
【図３】一実施形態による例示的なネットワーク・スタックを示すブロック図。
【図４Ａ】一部の実施形態による例示的な符号化システムと復号化システムを示すブロック図。
【図４Ｂ】一部の実施形態による例示的な符号化システムと復号化システムを示すブロック図。
【図５】一実施形態による例示的な符号化プロセスを示す流れ図。
【図６】一部の実施形態による例示的なピクセル・マップを示すブロック図。
【図７】一部の実施形態による例示的なピクセル・マップを示すブロック図。
【図８】代替の実施形態による例示的な符号化プロセスを示す流れ図。
【図９Ａ】一部の実施形態による動き予測を使用する例示的な符号化システムと復号化システムを示すブロック図。
【図９Ｂ】一部の実施形態による動き予測を使用する例示的な符号化システムと復号化システムを示すブロック図。
【図１０Ａ】一部の実施形態による動き予測を使用する例示的な符号化システムと復号化システムを示すブロック図。
【図１０Ｂ】一部の実施形態による動き予測を使用する例示的な符号化システムと復号化システムを示すブロック図。
【図１１】一実施形態による動き予測を使用する例示的な符号化プロセスを示す流れ図。
【図１２】一部の実施形態による例示的なピクセル・マップを示すブロック図。
【図１３】一部の実施形態による例示的なピクセル・マップを示すブロック図。
【図１４】一部の実施形態による例示的なピクセル・マップを示すブロック図。
【図１５】一部の実施形態による例示的なピクセル・マップを示すブロック図。
【図１】
2007529184.tif 000004
【図２】
2007529184.tif 000005
【図３】
2007529184.tif 000006
【図４Ａ】
2007529184.tif 000007
【図４Ｂ】
2007529184.tif 000008
【図５】
2007529184.tif 000009
【図６】
2007529184.tif 000010
【図７】
2007529184.tif 000011
【図８】
2007529184.tif 000012
【図９Ａ】
2007529184.tif 000013
【図９Ｂ】
2007529184.tif 000014
【図１０Ａ】
2007529184.tif 000015
【図１０Ｂ】
2007529184.tif 000016
【図１１】
2007529184.tif 000017
【図１２】
2007529184.tif 000018
【図１３】
2007529184.tif 000019
【図１４】
2007529184.tif 000020
【図１５】
2007529184.tif 000021
【国際調査報告】
2007529184.tif 000022