(57)【特許請求の範囲】
【請求項１】
ビデオピクチャ内の画素値のブロックをイントラ符号化するためのパーティションサイズを特定する方法であって、
ここで、前記ブロックは複数のサブブロックを含む、
前記ブロックについて複数の分散値を算出する算出ステップと、ここで、各分散値は前記ブロックにおけるサブブロックの画素値の分散に基づく；
前記分散値の全てが所定の分散閾値を満たす場合、前記ブロックに対し、前記サブブロックの各々よりも大きいパーティションサイズを特定する第１の符号化タイプを選択するステップと、
少なくとも１つの分散値が前記所定の分散閾値を満たさない場合、前記ブロックに対し、前記サブブロックの各々よりも小さいパーティションサイズを特定する第２の符号化タイプを選択するステップと、
を有することを特徴とする方法。
【請求項２】
前記サブブロックの各々は８×８個の画素値で構成され、
前記第１の符号化タイプは、１６×１６個の画素値を有するパーティションサイズを特定し、
前記第２の符号化タイプは、４×４個の画素値を有するパーティションサイズを特定する
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記所定の分散閾値は、前記ビデオピクチャ内の全サブブロックの平均分散値であることを特徴とする請求項１に記載の方法。
【請求項４】
前記所定の分散閾値は、量子化パラメータの増加するにつれて増加するように、量子化パラメータに依存する要素によってスケーリングされることを特徴とする請求項１に記載の方法。
【請求項５】
選択された符号化タイプに基づき予測符号化モードを選択するステップを更に有することを特徴とする請求項１に記載の方法。
【請求項６】
前記選択された符号化タイプが４×４個の画素値を有するブロックのパーティションを特定した場合、前記予測符号化モードは複数の４×４イントラ予測符号化モードの１つであることを特徴とする請求項５に記載の方法。
【請求項７】
前記選択された符号化タイプが１６×１６個の画素値を有するブロックのパーティションを特定した場合、前記予測符号化モードは複数の１６×１６イントラ予測符号化モードの１つであることを特徴とする請求項５に記載の方法。
【請求項８】
前記予測符号化モードを選択するステップは、
（ｉ）前記ブロックを符号化するため特定の予測符号化モードを用いたことに起因する前記ブロックの歪み値のセットを算出するステップと、
（ｉｉ）算出された前記ブロックの歪み値のセットが所定閾値より下回るか否かを判定するステップ
を有することを特徴とする請求項５に記載の方法。
【請求項９】
少なくとも１つのプロセッサによって実行された場合、コンピュータに請求項１乃至８のいずれか１項に記載のステップを実行させるための命令セットを有するコンピュータプログラムを格納したコンピュータが読み取り可能な記憶媒体。
【請求項１０】
請求項１乃至８のいずれか１項に記載のステップを実行するための手段を有するコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願）
本出願は、２００４年６月２７日出願の「画像の符号化および復号化」（Ｅｎｃｏｄｉｎｇ  ａｎｄ  Ｄｅｃｏｄｉｎｇ  Ｉｍａｇｅｓ）という名称の米国仮特許出願番号６０／５８３，４４７の利益を主張する。
（技術分野）
本発明は、ビデオ・データを符号化するための符号化タイプおよび予測モードの選択に関する。
【背景技術】
【０００２】
ビデオ・ストリームは、各フレームが複数のマクロブロックからなる一連のビデオ・フレームからなる。各マクロブロックは、通常、画素の１６×１６アレイである。しかし、他のサイズのマクロブロックも使用することができる。ビデオ・コーデック（圧縮装置−解凍装置）は、より高速の送信およびもっと小さな記憶空間用にストリームのサイズを小さくするために、ビデオ・データ・ストリームを符号化／圧縮し、および復号化／解凍するように設計されている、圧縮アルゴリズムのソフトウェアによる実行、ハードウェアによる実行およびこれら両者の実行の組合わせである。損失はあるが、ビデオ・コーデックは、ビデオ・ストリームの２進データを圧縮する一方で、ビデオの品質を維持するための努力をする。一般に使用されているビデオ・コーデックの例としては、ＷＭＶ、ＲｅａｌＶｉｄｅｏおよびＭＰＥＧ−２、ＭＰＥＧ−４、Ｈ．２６１、Ｈ２６３およびＨ．２６４等の圧縮規格の実施がある。
【０００３】
Ｈ．２６４圧縮規格の場合、ビデオ・フレームのマクロブロックを、１６×１６画素アレイとして内部符号化することができ、アレイの画素値が、前に符号化したマクロブロックから計算した値により予測される。１６×１６マクロブロックも、１６個の４×４画素アレイとして内部符号化することができる。この場合、各４×４アレイ内の画素値は、前に符号化した４×４アレイから計算した値により予測される。１６×１６アレイ（ルマ（ｌｕｍａ）ブロック）の場合には４つの内部予測モードを使用することができ、４×４アレイ（ルマ・ブロック）の場合には９つの内部予測モードを使用することができる。
【０００４】
それ故、マクロブロックを符号化する場合、下記の２つの決定（選択）を行わなければならない。すなわち、１）マクロブロックを１６×１６アレイ（本明細書においては、１６×１６符号化と呼ぶ）として符号化するのか、または１６個の４×４アレイ（本明細書においては、４×４符号化と呼ぶ）として符号化するのかを決定しなければならないし、また２）マクロブロックを符号化するのに使用する予測モードを決定しなければならない。例えば、マクロブロックを１６×１６アレイとして符号化すると決定した場合には、１６×１６アレイに対して、４つの予測モードのうちのどれを使用するのかも決定しなければならない。マクロブロックを１６個の４×４アレイとして符号化すると決定した場合には、１６個の４×４アレイそれぞれに対して、４×４アレイに対する９つの予測モードのうちのどれを使用するのかを決定しなければならない。本明細書においては、ステップ１を符号化タイプ選択と呼び、ステップ２を予測モード選択と呼ぶ。
【０００５】
符号化タイプ選択および予測モード選択は、費用関数を使用して行われる。例えば、費用関数は、通常、マクロブロックを１６×１６アレイとして符号化するのか、１６個の４×４アレイとして符号化するのかを決定するために使用される。この場合、コストが最も安い符号化のタイプ（１６×１６符号化または４×４符号化）が選択される。コストは、通常、歪みまたは歪みの加重平均に予測モードによるビットの数の推定値を加えたものに等しい。この場合、歪みおよび／またはビットの数が増大すると、コストも増大する。歪みは、元の画素値と予測した（または符号化した）値との間の差を反映していて、種々の方法で測定することができる。例えば、歪みは、元の画素値と予測した（または符号化した）値との間の絶対値の差の合計として測定することができる。
【０００６】
マクロブロックに対する最適な符号化タイプ（１６×１６符号化または４×４符号化）および最適な予測モードを選択するための全数探索アプローチは、マクロブロック内の４つのすべての１６×１６予測モード、および１６個の４×４ブロックに対する９つの４×４予測モードのすべての組合わせのコストを決定するステップを含む。この場合、１６×１６予測モードまたはコストを最低にする４×４予測モードの特定の組合わせが選択される。各マクロブロックに対して、全数探索アプローチは、４×４予測モードの９＾１６の異なる組合わせを検討するように求め、そのため全数探索アプローチを実行するのは事実上不可能になる。
【０００７】
それ故、通常、あるマクロブロックに対する符号化タイプおよび予測モードを決定するために下記の演算が行われる。
１）４つのすべての可能な１６×１６予測モードアレイのコストの計算。
２）１６個の各４×４ブロックに対する、最低のコストの（９つの予測モードのうちの）予測モードの選択と、その後での結果としての組合わせの全コスト（すなわち、１６個の決定したコストの合計コスト）の計算。
３）ステップ１で決定したコストと、ステップ２で決定したコストとの比較、および最低のコストの選択。この選択により、符号化タイプ選択と予測モード選択の両方が行われる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国仮出願第６０／５８３，４４７号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、従来のアプローチは、他に４×４予測モードの９×１６個の異なる組合わせに対するコストに、４つの１６×１６予測モードに対するコストを加算したものに対するコストを決定するステップを含む。
【００１０】
ある実施形態の場合には、ビデオ・フレーム内のマクロブロックに対する符号化タイプ選択、および予測モード選択を決定するためのもっと効率的な方法を使用している。ある実施形態の場合には、一般的な方法は、１）（簡単に計算できるマクロブロックの属性に基づく）符号化タイプ選択アルゴリズムにより、マクロブロックに対して最初に検討する符号化タイプ（１６×１６または４×４）を選択し、２）ステップ１で１６×１６符号化タイプを選択した場合には、歪みしきい値に基づいて、従来の方法または改良した１６×１６予測モード探索アルゴリズムにより、マクロブロック上で使用することができる４つの１６×１６予測モードを検討し、３）ステップ１で４×４符号化タイプを選択した場合には、予測モード間の位置関係に基づいて、従来の方法または改良した４×４予測モード探索アルゴリズムにより、マクロブロックの１６個の各４×４ブロックに対して使用する４×４予測モードを選択する。
【図面の簡単な説明】
【００１１】
【図１】図１は、画素のマクロブロックに対する符号化タイプおよび予測モードを選択するための一般的な方法のフローチャートである。
【図２】図２は、画素のマクロブロックに対する符号化タイプを選択するための符号化タイプ選択方法のフローチャートである。
【図３】図３は、画素の１６×１６マクロブロックの予測モードを選択するための１６×１６予測モード探索方法のフローチャートである。
【図４】図４は、４×４アレイの９つの予測モード間の論理的／位置的関係を示す概念図である。
【図５】図５は、マクロブロックの４×４アレイに対する予測モードを選択する４×４予測モード探索方法のフローチャートである。
【図６】図６は、マクロブロックの４×４アレイに対する予測モードを選択する他の４×４予測モード探索方法のフローチャートである。
【図７】図７は、本発明のいくつかの実施形態を実施するコンピュータ・システムである。
【発明を実施するための形態】
【００１２】
２００４年６月２７日出願の「画像の符号化および復号化」（Ｅｎｃｏｄｉｎｇ  ａｎｄ  Ｄｅｃｏｄｉｎｇ  Ｉｍａｇｅｓ）という名称の米国仮出願第６０／５８３，４４７号の内容は、参照により本明細書に明示的に組み込むものとする。
【００１３】
以下の説明における、多数の詳細な点は説明のためのものである。しかし、通常の当業者であれば、本発明は、これらの特定の詳細な点を使用しなくても、実行することができることを理解することができるだろう。他の例の場合には、不必要な詳細な記述により、説明が分かりにくくならないように、周知の構造体およびデバイスをブロック図の形で示している。
【００１４】
ある実施形態の場合には、ビデオ・フレーム内のマクロブロックに対する符号化タイプの選択および予測モードの選択を決定するためのもっと効率的な方法を使用している。ある実施形態の場合には、一般的な探索アルゴリズムは、下記の演算、すなわち、
１）符号化タイプ選択アルゴリズム（簡単に計算できるマクロブロックの属性に基づく）による、マクロブロックに対して最初に検討する符号化タイプ（１６×１６または４×４）の選択。符号化タイプ選択アルゴリズムについては、Ｉ節で以下に説明する。
２）ステップ１で１６×１６符号化タイプを選択した場合の、歪みしきい値に基づいて、従来の方法または改良した１６×１６予測モード探索アルゴリズムによる、マクロブロック上で使用することができる４つの１６×１６予測モードの検討（すなわち、試験）。１６×１６予測モード探索アルゴリズムのある特定の状況の場合には、４×４符号化タイプの選択も行われることに留意されたい。このステップについては、ＩＩ節で以下に説明する。
３）ステップ１で４×４符号化タイプを選択した場合の、予測モード間の位置関係に基づいて、従来の方法または改良した４×４予測モード探索アルゴリズムによる、マクロブロックの１６個の各４×４ブロックに対して使用する４×４予測モードの選択を行う（ＩＩＩ節で以下に説明する）。
【００１５】
探索アルゴリズムのステップ１において、符号化タイプ選択アルゴリズムが、最初の検討対象として１６×１６符号化タイプを選択した場合には、最終的に選択される符号化タイプは、１６×１６符号化タイプであっても、４×４符号化タイプであってもよいことに留意されたい。対照的に、符号化タイプ選択アルゴリズムが、最初の検討対象として４×４符号化タイプを選択した場合には、実際には、４×４符号化タイプが、マクロブロックに対する符号化タイプとして選択される。最初の検討対象として１６×１６符号化タイプを選択した場合には、マクロブロックに対する予測モードを決定するために、従来の方法または改良した１６×１６予測モード探索アルゴリズムが使用される。最初の検討対象として４×４符号化タイプを選択した場合には、マクロブロックに対する予測モードを決定するために、従来の方法または改良した４×４予測モード探索アルゴリズムが使用される。それ故、探索アルゴリズムにより最初の検討対象に対してどの符号化タイプを選択したかにより、予測モードを決定するために異なる探索アルゴリズム（従来のまたは改良した）が使用される。
【００１６】
図１は、画素のマクロブロックに対する符号化タイプおよび予測モードを選択するための一般的な方法１００のフローチャートである。ある実施形態の場合には、この一般的な方法１００は、ビデオ・フレームを符号化するように構成されているソフトウェアおよび／またはハードウェアにより実行される。この方法は、画素のマクロブロックを受け取った時点でスタートする（１０２において）。ある実施形態の場合には、マクロブロックは、画素の１６×１６アレイであり、一方、他の実施形態の場合には、マクロブロックは異なるサイズの画素のアレイである。ある実施形態の場合には、マクロブロックは、４つの８×８のアレイに、または１６個の４×４アレイに分割される。一方、他の実施形態の場合には、マクロブロックは、異なるサイズのブロック／アレイに分割される。
【００１７】
次に、この方法は、符号化タイプ選択方法２００により、マクロブロックに対して最初に検討する符号化タイプ（１６×１６または４×４）を選択する（１０５において）（図２のところで以下に説明する）。次に、この方法は、４×４符号化タイプを選択したかどうかを判断する（１１０において）。選択した場合には、この方法は、従来の方法、改良した４×４予測モード探索方法５００により（図５のところで以下に説明する）、または他の４×４予測モード探索方法６００により（図６のところで以下に説明する）、マクロブロックの１６個の各４×４ブロックに対する予測モードを選択する（１１５において）。
【００１８】
この方法が、４×４符号化タイプを選択しなかった場合には（１１０−Ｎｏにおいて）、この方法は、１６×１６予測モード（図３のところで以下に説明するように、従来の方法または改良した１６×１６予測モード探索方法３００により）、または４×４符号化タイプを選択する（１２０において）。次に、この方法は、４×４符号化タイプを選択したかどうか（１２０において）を決定する（１２５において）。選択した場合には、この方法は、ステップ１１５に進み、そこでマクロブロックの１６個の各４×４ブロックに対する予測モードが選択される。この方法が、４×４符号化タイプを選択しなかったと判断した場合には（１２５−Ｎｏにおいて）、そのことは、特定の１６×１６予測モードが選択されたことを示す。ここでこの方法は終了する。
【００１９】
Ｉ節：符号化タイプ選択アルゴリズム
この節においては、一般的探索アルゴリズムのステップ１の符号化タイプ選択アルゴリズムについて説明する。符号化タイプ選択アルゴリズムは、マクロブロックに対して最初に検討する符号化タイプ（１６×１６または４×４）を選択し、それによりマクロブロックに対してどの予測モード（１６×１６モードまたは４×４モード）を最初に検討するのかを決定する。符号化タイプ選択アルゴリズムは、簡単に決定することができるマクロブロックの属性を使用する。
【００２０】
符号化タイプ選択アルゴリズムは、下記の演算を行う。
１）マクロブロックを４つの８×８ブロックに分割し、
２）各８×８ブロックの変化を計算し、所定のしきい値と比較する。例えば、所定のしきい値を、マクロブロックを含むフレーム内のすべての８×８ブロックの平均の変化に等しくセットすることができる。８×８ブロックの変化は、例えば、ａ）ブロック内のすべての画素値の平均を計算することにより、ｂ）ブロック内の各画素を計算することにより：（画素値−平均）＾２、ｃ）ステップｂのところで計算したすべての値を合計することにより、（すなわち、ブロック内のすべての画素に対して測定したすべての値を合計することにより）決定することができる。
３）所定のしきい値（マクロブロックを１６×１６ブロック、または１６個の４×４ブロックに符号化すべきかどうかを決定するために使用する属性である）以下の変化を有するマクロブロック内の８×８ブロックの数を決定する。
４）４つすべての８×８ブロックが所定のしきい値以下の変化を有している場合には、１６×１６符号化タイプが最初の検討対象として選択される。最初の検討対象として１６×１６符号化タイプが選択された場合には、最終的に選択される符号化タイプは、１６×１６符号化タイプであっても、４×４符号化タイプであってもよいことに留意されたい。マクロブロック上で使用する１６×１６予測モードは、従来の方法または改良した１６×１６予測モード探索アルゴリズムにより選択することができる（ＩＩ節のところで以下に説明する）。
５）４つの８×８ブロックの中のどれかが、所定のしきい値を超える変化を含んでいる場合には、４×４符号化タイプが選択される。それ故、次に、マクロブロックの１６個の各４×４ブロック上で使用する４×４予測モードは、従来の方法または改良した４×４予測モード探索アルゴリズムにより決定される（ＩＩＩ節のところで以下に説明するように）。
【００２１】
符号化プロセスの量子化ステップで使用する量子化パラメータ値が、比較的高い場合には（例えば、３４を超える）、符号化タイプ選択アルゴリズムの演算は、上記説明から若干ずれることに留意されたい。これらの実施形態の場合には、所定のしきい値は、量子化パラメータ値（ＱＰ）である係数によりスケーリングされるので、量子化パラメータ値が増大すると所定のしきい値が増大する。ある実施形態の場合には、スケーリング係数は（１＋ｋ（ＱＰ−３４））という形のスケーリング式により計算される。ここで、ｋは定数である。他の実施形態の場合には、スケーリング係数は他のスケーリング式により決定される。次に、スケーリングしたしきい値を入手するために、所定のしきい値に所定のスケーリング係数が掛けられる。
【００２２】
これらの実施形態の場合、４つの８×８ブロックの中のどれかがスケーリングしたしきい値を超える変化を有している場合には、マクロブロックは１６個の４×４ブロックとして符号化される。この選択は、従来の方法または本発明の方法（改良した４×４予測モード探索アルゴリズムのような）により行うことができる。しかし、マクロブロックの４つのすべての８×８ブロックがスケーリングしたしきい値以下の変化を有している場合には、マクロブロックを１６×１６ブロックまたは１６個の４×４ブロックとして符号化することができる。マクロブロック上で使用する１６×１６予測モードは、次に、従来の方法または改良した１６×１６予測モード探索アルゴリズムにより選択することができる（ＩＩ節のところで以下に説明する）。４×４符号化タイプが選択した１６×１６予測モード上で選択された場合には、４×４予測モードを、従来の方法または本発明の方法（改良した４×４予測モード探索アルゴリズムのような）により選択することができる。
【００２３】
図２は、画素のマクロブロックに対して符号化タイプを選択するための符号化タイプ選択方法２００のフローチャートである。ある実施形態の場合には、この方法２００は、ビデオ・フレームを符号化するように構成されているソフトウェアおよび／またはハードウェアにより実施される。ある実施形態の場合には、この符号化タイプ選択方法２００は、図１のステップ１０５を含む。この方法２００は、マクロブロックに対するしきい値の変化を測定する（２０５において）ことによりスタートする。ある実施形態の場合には、しきい値の変化は、マクロブロックを含んでいるフレーム内のすべての８×８ブロックの平均の変化に等しくセットされる（すでに説明したように）。他の実施形態の場合には、符号化プロセスの量子化ステップで使用する量子化パラメータ値が比較的高い場合には、決定したしきい値の変化は、量子化パラメータ値に従ってある係数によりスケーリングされる（すでに説明したように）。
【００２４】
次に、この方法は、マクロブロックを４つの８×８ブロックに分割し（２１０において）、４つの各８×８ブロックに対する変化を測定する（２１５において）。次に、この方法は、４つのすべての８×８ブロックの変化が、しきい値の変化より小さいかどうかを判断する（２２０において）。小さい場合には、この方法は、マクロブロックに対して１６×１６符号化タイプを選択し（２２５において）、終了する。小さくない場合には、この方法は、マクロブロックに対して４×４符号化タイプを選択して（２３０において）、終了する。
【００２５】
ＩＩ節：１６×１６予測モード探索アルゴリズム
一般的な探索アルゴリズムのステップ１の後で、最初に、検討対象として１６×１６符号化タイプが選択された場合には、１６×１６予測モードが試験される。この節においては、一般的な探索アルゴリズムのステップ２について説明する。Ｈ．２６４コーデック規格の場合には、ＤＣ、Ｖ（垂直）、Ｈ（水平）およびＰ（平面）から選択するために、４つの可能な１６×１６内部予測モードを使用することができる。ある実施形態の場合には、１６×１６予測モードを選択するために従来の方法を使用することができる（例えば、４つの各１６×１６予測モードを決定し、コストが最も安いモードを選択することにより）。他の実施形態の場合には、予測モードによる歪みに基づいて、マクロブロックに対する１６×１６予測モードを検討（すなわち、試験）するために、改良した１６×１６予測モード探索アルゴリズムを使用することができる。
【００２６】
ある実施形態の場合には、１６×１６予測モード探索アルゴリズムは、今処理したマクロブロックに適用した場合に、特定の予測モードによる歪みを測定するために従来の方法を使用する。従来の方法の場合、この歪みは、１）隣接する前に符号化したマクロブロックから画素値を検索することにより、２）検索した画素値から新しい値を入手することにより、３）入手した値により、今処理したマクロブロックに対する予測値を計算することにより、４）今処理したマクロブロックの元の画素値と、計算した予測値との間の歪みを測定することにより決定される。しかし、従来の方法による歪みの測定は時間がかかる。
【００２７】
他の実施形態の場合には、１６×１６予測モード探索アルゴリズムは、今処理したマクロブロックに適用した場合、特定の予測モードによる歪みを測定するためにより高速な推定方法を使用する。この推定方法は、特定の予測モードによる予測値の推定値（エミュレーション）を与え、推定した予測値の歪みを測定する。
【００２８】
この推定方法の場合には、予測値は、境界のところで今処理したマクロブロックの画素値が、隣接するマクロブロックからの隣接する画素値に近いものと仮定して、今処理したマクロブロックからの画素値を使用して決定される。この推定方法を使用する歪みの測定は、もっと短い時間で行うことができる。何故なら、今処理したマクロブロックからの画素値は、他のマクロブロックからの画素値よりよく使用され、これにより検索時間が短縮するからである。この推定方法を使用すれば、精度をそんなに犠牲にしないで、歪み値を測定するのに必要な時間が有意に短縮する。
【００２９】
ある実施形態の場合には、この推定方法のための疑似コードは下記の通りである。
【００３０】
【数１】
0005559900.tif 000002
【００３１】
【数２】
0005559900.tif 000003
【００３２】
【数３】
0005559900.tif 000004
【００３３】
特定の予測モードの歪みを計算する方法が何であれ、１６×１６予測モード探索アルゴリズムは、下記の演算を行う。
１）１６×１６ＤＣ予測モードを試験する。
ａ）１６×１６ＤＣ予測モードにより、マクロブロックの各４×４ブロック内で起きた歪みを測定する。
ｂ）各４×４ブロック内の歪みが所定のしきい値より低い場合には、１６×１６ＤＣ予測モードがこのマクロブロックに対する予測モードとして選択され、１６×１６予測モード探索アルゴリズムは終了する。
ｃ）任意の４×４ブロック内の歪みが所定のしきい値より大きい場合には、１６×１６予測モード探索アルゴリズムはステップ２に進む。
【００３４】
２）１６×１６Ｖ予測モードを試験する。
ａ）１６×１６Ｖ予測モードにより、マクロブロックの各４×４ブロック内で起きた歪みを測定する。
ｂ）各４×４ブロック内の歪みが所定のしきい値より低い場合には、１６×１６Ｖ予測モードがこのマクロブロックに対する予測モードとして選択され、１６×１６予測モード探索アルゴリズムは終了する。
ｃ）任意の４×４ブロック内の歪みが所定のしきい値より大きい場合には、１６×１６予測モード探索アルゴリズムはステップ３に進む。
【００３５】
３）１６×１６Ｈ予測モードを試験する。
ａ）１６×１６Ｈ予測モードによりマクロブロックの各４×４ブロック内で起きた歪みを測定する。
ｂ）各４×４ブロック内の歪みが所定のしきい値より低い場合には、１６×１６Ｈ予測モードがこのマクロブロックに対する予測モードとして選択され、１６×１６予測モード探索アルゴリズムは終了する。
ｃ）任意の４×４ブロック内の歪みが所定のしきい値より大きい場合には、１６×１６予測モード探索アルゴリズムは、１６×１６Ｐ予測モードおよび４×４符号化タイプを検討する。ある実施形態の場合には、２つの上記オプションの選択は、４×４予測モード探索アルゴリズムを使用することにより容易になる（ＩＩＩ節のところで以下に説明する）。他の実施形態の場合には、２つの上記オプション間の選択は、従来の方法により行うことができる（例えば、１６×１６Ｐ予測モードおよび４×４符号化タイプを使用することにより最も低いコストを測定し、最も低いコストのオプションを選択することにより）。
【００３６】
図３は、画素の１６×１６マクロブロックの予測モードを選択するための１６×１６予測モード探索方法３００のフローチャートである。ある実施形態の場合には、この方法３００は、ビデオ・フレームを符号化するように構成されている、ソフトウェアおよび／またはハードウェアにより実施される。ある実施形態の場合には、この符号化タイプ選択方法３００は、図１のステップ１２０を含む。ある実施形態の場合には、１６×１６予測モード探索方法は、特定の予測モードによるマクロブロック内の４×４ブロックの歪みを測定するために、従来の方法または改良した推定方法を使用する（すでに説明したように）。
【００３７】
この方法３００は、１６×１６ＤＣ予測モードによりマクロブロックの１６個の各４×４ブロック内の歪みを測定する（３０５において）ことによりスタートする。次に、この方法は、１６×１６ＤＣ予測モードによるすべての４×４ブロック内の歪みが、所定のしきい値歪みより小さいかどうかを判断する（３１０において）。小さい場合には、１６×１６ＤＣ予測モードが、マクロブロックに対して予測モードとして選択され（３１５において）、この方法は終了する。
【００３８】
この方法３００が１６×１６ＤＣ予測モードによる任意の４×４ブロック内の歪みが所定のしきい値歪み以下でないと判断した場合には（３１０−Ｎｏにおいて）、この方法は、１６×１６Ｖ予測モードによるマクロブロックの１６個の各４×４ブロック内の歪みを測定する（３２０において）。次に、この方法は、１６×１６Ｖ予測モードによるすべての４×４ブロック内の歪みが、所定のしきい値歪みより小さいかどうかを判断する（３２５において）。小さい場合には、１６×１６Ｖ予測モードがマクロブロックの予測モードとして選択され（３３０において）、この方法は終了する。
【００３９】
この方法３００が、１６×１６Ｖ予測モードによる任意の４×４ブロック内の歪みが所定のしきい値歪み以下でないと判断した場合には（３２５−Ｎｏにおいて）、この方法は、１６×１６Ｈ予測モードによるマクロブロックの１６個の各４×４ブロック内の歪みを測定する（３３５において）。次に、この方法は、１６×１６Ｈ予測モードによるすべての４×４ブロック内の歪みが、所定のしきい値歪みより小さいかどうかを判断する（３４０において）。小さい場合には、１６×１６Ｈ予測モードがマクロブロックに対する予測モードとして選択され（３４５において）、この方法は終了する。
【００４０】
この方法３００が、１６×１６Ｈ予測モードによる任意の４×４ブロック内の歪みが所定のしきい値歪み以下でないと判断した場合には（３４０−Ｎｏにおいて）、この方法は、マクロブロックに対する予測モードとしての１６×１６Ｐ予測モードの設定、またはマクロブロックに対する４×４符号化タイプとの間で選択を行う（３５０において）。ある実施形態の場合には、２つの上記オプションの間の選択は、４×４予測モード探索アルゴリズム５００を使用することにより容易になる（図５のところで以下に説明する）。他の実施形態の場合には、２つの上記オプションの間の選択は、従来の方法により行われる（すでに説明したように）。ここでこの方法は終了する。
【００４１】
ＩＩＩ節：４×４予測モード探索アルゴリズム
一般的な探索アルゴリズムのステップ１の後で、４×４符号化タイプが最初の検討対象として選択された場合には、４×４予測モードがマクロブロックの１６個の各４×４ブロックに対して選択される。この節においては、一般的な探索アルゴリズムのステップ３について説明する。ある実施形態の場合には、各４×４ブロックの４×４予測モードを選択するために従来の方法を使用することができる（例えば、９つの各予測モードのコストを決定し、コストが最も安いモードを選択することにより）。他の実施形態の場合には、４×４ブロックに対する４×４予測モードを選択するために、改良した４×４予測モード探索アルゴリズムを使用することができる。
【００４２】
すでに説明したように、ビデオ・ストリームは、各フレームが複数のマクロブロックからなる一連のビデオ・フレームからなる。マクロブロックは、通常、画素の１６×１６アレイであり（他のサイズのマクロブロックも使用することができるが）区画（４×４画素アレイの区画など）に分割される。Ｈ．２６４コーデック規格の場合には、フレームを内部符号化する場合、４×４アレイを符号化するのに９つの異なる方法がある（すなわち、９つの内部４×４予測モードがある）。これら９つのモードは、下記の通りである。
０．内部＿４×４＿垂直
１．内部＿４×４＿水平
２．内部＿４×４＿ＤＣ
３．内部＿４×４＿対角線＿下＿左
４．内部＿４×４＿対角線＿下＿右
５．内部＿４×４＿垂直＿右
６．内部＿４×４＿水平＿下
７．内部＿４×４＿垂直＿左
８．内部＿４×４＿水平＿上
【００４３】
各４×４アレイは、１つの予測モードだけで符号化される。通常、コストが最も安くなる予測モードが選択される。コストは、通常、歪み（この場合、歪みは、元の画素値と符号化された予測モード間の差を反映している）、または歪みの加重平均および予測モードによるビット数（この場合、歪みおよび／またはビット数が増大すると、コストが増大する）に等しい。コストが最も安い最適の予測モード（選択予測モード）を決定するために、９つすべての予測モード間の全数探索を行うことができる。しかし、通常、９つすべての予測モード間の全数探索は効率的でない（時間がかかりすぎるし、リソースの処理が多すぎる）。
【００４４】
ある実施形態の場合には、画素アレイに対する予測モードを決定するためのもっと効率的な方法が使用される。ある実施形態の場合には、画素アレイに対する予測モードを決定する際に、少ない数の予測モードを検討する探索アルゴリズムが使用される。この探索アルゴリズムは、もっと効率的であり、精度の低下も少ない。
【００４５】
この探索アルゴリズムは、４×４アレイの可能な９つの予測モード間の論理的／位置的関係をベースとしている。図４は、４×４アレイの９つの予測モード間の論理的／位置的関係を示す概念図である。図４に示すように、円の周囲には８つの予測モード（０、１、３、４、５、６、７および８）が位置していて、１つの予測モード（２）は、円の中心に位置していて、予測モードはノードで表している。円上の２つの予測モードの間隔が近ければ近いほど、２つの予測モード間の論理的／位置的関係は強い。それ故、円上の相互間の間隔が遠ければ遠いほど、２つの予測モードの論理的／位置的関係は弱くなる。例えば、予測モード０および５は円上で相互に隣接しているが、このことはこれら２つの予測モード間に強い論理的／位置的関係が存在することを示す。もう１つの例を挙げると、予測モード０および１は、円上の対向する位置に位置しているが、このことは、これら２つの予測モード間の論理的／位置的関係が弱いことを示す。予測モード２は、円の中心に位置しているが、このことはこの予測モードが、他の予測モードのどれとも論理的／位置的関係を有さないことを示す。
【００４６】
図４の概念図は、４×４アレイを内部符号化するためのＨ．２６４コーデック規格をベースとしている。今処理した４×４アレイの場合には、Ｈ．２６４規格の下の予測モードは、今処理したアレイに対して符号化する予測情報の基礎になる他の４×４アレイ（本明細書においては、予測アレイと呼ぶ）の位置（今処理した４×４アレイに対する）を示す。例えば、予測モード０（垂直）は、今処理したアレイに対する予測アレイが、今処理したアレイの上に位置していることを示し、予測モード１（水平）は、今処理したアレイに対する予測アレイが、今処理したアレイの左に位置することを示す。
【００４７】
それ故、予測モード間の論理的／位置的関係の強弱は、（今処理した４×４アレイに対する予測モードが示す位置的関係に基づいて）アクセスすることができる。例えば、予測モード０の予測モード１に対する論理的／位置的関係は弱い。何故なら、今処理したアレイ（予測モード０が示す）上に位置する予測アレイは、今処理したアレイ（予測モード１が示す）の左に位置する予測アレイに対して弱い論理的／位置的関係を有しているからである。この弱い論理的／位置的関係は、予測モード０および１が円の対向部分に位置する図４に反映されている。対照的に、予測モード０は、予測モード５に対して強い論理的／位置的関係を有する。何故なら、今処理したアレイ（予測モード０で示す）の中に位置する予測アレイは今処理したアレイ（予測モード５で示す）の上および右に位置する予測アレイに対して強い論理的／位置的関係を有しているからである。この強い論理的／位置的関係は、予測モード０および５が円上で隣接している図４に反映されている。
【００４８】
円の周囲に位置する８つの予測モード（０、１、３、４、５、６、７および８）は、論理的／位置的に関連する予測モードの４つのグループに分けることができる。
１．  ７、０および５（垂直＿左、垂直および垂直＿右）
２．  ８、１および６（水平＿上、水平および水平＿下）
３．  ７、３および８（垂直＿左、対角線＿下＿左および水平＿上）
４．  ５、４および６（垂直＿右、対角線＿下＿右、および水平＿下）
【００４９】
同じグループ内の予測モードは、相互に強い論理的／位置的関係を有する。ある実施形態の場合には、探索アルゴリズムは、最初に、予測モード２のコストと一緒に、各グループからの１つの予測モードのコストを決定する。次に、探索アルゴリズムは、最もコストが安い予測モードのこの組間の予測モードを決定する。コストが最も安い予測モードが、予測モードの特定のグループ内に位置している場合には、９つすべての可能な予測モードの最もコストが安いものがこの特定のグループ内に含まれている可能性が高い。それ故、次に、探索アルゴリズムは、特定のグループ内の最もコストが安い予測モードを決定し、最もコストが安い予測モードがアレイに対する最適の予測モードとして選択される。
【００５０】
例えば、ある実施形態の場合には、探索アルゴリズムは、最初に、予測モード０、１、２、３および４のコストを決定する。この場合、予測モード０、１、３および４は、それぞれ異なるグループからのものである。予測モード０、１、３または４が、一組の予測モード（０、１、２、３および４）の中でコストが最も安い場合には、探索アルゴリズムは、前に決定した予測モードを含む予測モードのグループ内のコストが最も安いものを決定する。例えば、探索アルゴリズムが、予測モード１が、一組の予測モード（０、１、２、３および４）内でコストが最も安いと判断した場合には、探索アルゴリズムは、予測モード（８、１および６）のグループの中からコストが最も安いモードを決定し、コストが最も安い予測モードが最適な予測モードとして選択される。
【００５１】
ある実施形態の場合には、探索アルゴリズムは、最初に、所定の一組の予測モードのコストを検討し比較する。この一組の予測モードはいくつかの予測モードを含んでいるが、９つのすべての可能な予測モードを含んでいるわけではない。ある実施形態の場合には、所定の一組の予測モードは、４つの各予測モード・グループ（図４のところで説明した）からの１つの予測モードを含む。上記実施形態の場合には、所定の一組の予測モードは、予測モード０、１、２、３および４を含む。他の実施形態の場合には、所定の一組の予測モードは、他の予測モードを含む。
【００５２】
探索アルゴリズムは、この一組の予測モード内の各予測モードのコストを決定する。この場合、Ｃ０、Ｃ１、Ｃ２、Ｃ３およびＣ４は、それぞれ予測モード０、１、２、３および４に対して決定したコストである。各予測モードに対するコストは、当業者であれば周知の方法により決定することができる。次に、探索アルゴリズムは、コストが最も安い予測モードの索引番号（０、１、２、３または４）を決定する。この場合、変数ｎは決定した索引番号を表すために使用される。これらの演算は、下式により表すことができる。
【００５３】
【数４】
0005559900.tif 000005
ここで、ＧｅｔＩｎ１ＯｆＭｉｎＣｏｓｔは、一組の予測モード（例えば、０、１、２、３および４）内の各予測モードに対するコストを決定する関数であり、コストが最も安い一組の中の予測モードの索引番号を決定する。
【００５４】
次に、探索アルゴリズムは下記の演算を行う。
【００５５】
【数５】
0005559900.tif 000006
【００５６】
ここで、ｘは画素アレイに対する最適な予測モード（選択予測モード）として、最終的に選択される予測モードの索引番号である。
【００５７】
それ故、探索アルゴリズムは、ｎが２に等しいかどうかを判断する。等しい場合には、選択した予測モードは予測モード２である。ｎが２に等しくない場合には、探索アルゴリズムはｎが０に等しいかどうかを判断する。等しい場合には、探索アルゴリズムは選択した予測モードが、一組の予測モード（７、０、５）の中のコストが最も安い予測モードである。ｎが０に等しくない場合には、探索アルゴリズムはｎが１に等しいかどうかを判断する。等しい場合には、選択した予測モードが、一組の予測モード（８、１、６）のコストが最も安い予測モードである。ｎが１に等しくない場合には、探索アルゴリズムはｎが３に等しいかどうかを判断する。等しい場合には、選択した予測モードが、一組の予測モード（７、３、８）のコストが最も安い予測モードである。ｎが３に等しくない場合には、探索アルゴリズムは、ｎが４に等しいかどうかを判断する。等しい場合には、選択した予測モードが、一組の予測モード（５、４、６）のコストが最も安い予測モードである。
【００５８】
図５は、マクロブロックの４×４アレイに対する予測モードを選択する４×４予測モード探索方法５００のフローチャートである。ある実施形態の場合には、この方法５００は、ビデオ・フレームを符号化するように構成されているソフトウェアおよび／またはハードウェアにより実施される。ある実施形態の場合には、４×４予測モード探索方法５００は、図１のステップ１１５を含む。
【００５９】
この方法５００は、マクロブロックを１６個の４×４アレイに分割する（５０５において）ことによりスタートする。次に、この方法は、第１の４×４アレイを処理のための現在の４×４アレイとしてセットする（５１０において）。現在の４×４アレイに対して、この方法５００は、各予測モード０、１、２、３および４に対するコストを決定する（５１５において）。この方法は、コストが最も安い予測モードが２であるかどうかを判断する（５２０において）。２である場合には、この方法は、予測モード２を現在の４×４アレイに対する予測モードとしてセットする（５２５において）。次に、この方法は、処理するマクロブロック内に他の４×４アレイが存在するかどうかを判断する（５８５において）。存在する場合には、この方法は、次の４×４アレイを現在の４×４アレイとしてセットし（５９０において）、ステップ５１５に進む。存在しない場合には、この方法は終了する。
【００６０】
この方法がコストが最も安い予測モードが２でないと判断した場合には（５２０−Ｎｏにおいて）、この方法はコストが最も安い予測モードが０であるかどうかを判断する（５３０において）。０である場合には、この方法は各予測モード７、０および５に対するコストを決定する（５３５において）。次に、この方法は、コストが最も安い予測モード（予測モード７、０、５内の）を現在の４×４アレイに対する予測モードとしてセットする（５４０において）。次に、この方法はステップ５８５に進む。
【００６１】
この方法が、コストが最も安い予測モードが０でないと判断した場合には（５３０−Ｎｏにおいて）、この方法はコストが最も安い予測モードが１であるかどうかを判断する（５４５において）。１である場合には、この方法は各予測モード８、１および６に対するコストを決定する（５５０において）。次に、この方法は、コストが最も安い予測モード（予測モード８、１、６内の）を現在の４×４アレイに対する予測モードとしてセットする（５５５において）。次に、この方法はステップ５８５に進む。
【００６２】
この方法が、コストが最も安い予測モードが１でないと判断した場合には（５４５−Ｎｏにおいて）、この方法はコストが最も安い予測モードが３であるかどうかを判断する（５６０において）。３である場合には、この方法は各予測モード７、３および８に対するコストを決定する（５６５において）。次に、この方法は、コストが最も安い予測モード（予測モード７、３および８の中の）を現在の４×４アレイに対する予測モードとしてセットする（５７０において）。次に、この方法はステップ５８５に進む。
【００６３】
この方法が、コストが最も安い予測モードが３でないと判断した場合には（５６０−Ｎｏにおいて）、そのことは、最も安いコストの予測モードが４であることを示す。その場合、この方法は、各予測モード５、４および６に対するコストを決定する（５７５において）。次に、この方法はコストが最も安い予測モード（予測モード５、４および６の中の）を現在の４×４アレイに対する予測モードとしてセットする（５８０において）。次に、この方法はステップ５８５に進む。
【００６４】
ある実施形態の場合には、この方法５００は、各４×４アレイに対する予測モードの選択が、マクロブロック内の１つまたは複数の他の４×４アレイに対する前の予測モード選択に依存するマクロブロックの４×４アレイに対する予測モードを選択する。これらの実施形態の場合には、マクロブロックの各４×４アレイに対する予測モードの選択は、その頂部および左の隣接する４×４アレイに対する符号化した値（すなわち、選択した予測モード）により異なる。それ故、これらの実施形態の場合には、この方法５００は、マクロブロック内の頂部左の４×４アレイからスタートして予測モードを選択し右、次に下に進む。頂部および左の隣接する４×４アレイに対して前に選択した予測モードの場合には、この方法５００は、処理中の現在の４×４アレイに対してコストが最も安い予測モード（９つの予測モードの中の）を選択する。そうするために、この方法５００は、例えば、結果として得られる組合わせの全コスト（すなわち、１６個の決定したコストの合計）を計算することができる。
【００６５】
Ａ：別の予測モード探索アルゴリズム
他の実施形態の場合には、他の予測モード探索アルゴリズムが、他の一組の演算を行う。最初に、他の探索アルゴリズムは、変数ａが決定した索引番号を表すために使用される一組の予測モード（０、１、３および４）の中からコストが最も安い予測モードの索引番号を決定する。他の探索アルゴリズムは、また、変数ｂが決定した索引番号を表すために使用される一組の予測モード（０、１、３および４）の中から２番目にコストが安い予測モードの索引番号も決定する。さらに、この別の探索アルゴリズムは、また、変数ｎが決定した索引番号を表すために使用される一組の予測モード（０、１、２、３および４）の中からコストが最も安い予測モードの索引番号も決定する。
【００６６】
これらの演算は下式で表すことができる。
【００６７】
【数６】
0005559900.tif 000007
【００６８】
ここで、ＧｅｔＩｎ１ＯｆＳｅｃｏｎｄＭｉｎＣｏｓｔは、一組の予測モード（例えば、０、１、３および４）内の各予測モードに対するコストを決定する関数であり、２番目に安いコストの一組内の予測モードの索引番号を決定する。
【００６９】
次に、この探索アルゴリズムは下記の演算を行う。
【００７０】
【数７】
0005559900.tif 000008
【００７１】
ここで、ｘは、画素・アレイに対して最適な予測モード（選択予測モード）として最終的に選択される予測モードの索引番号である。
【００７２】
それ故、探索アルゴリズムは、ｎが２に等しいかどうかを判断する。２に等しい場合には、選択した予測モードは予測モード２である。ｎが２に等しくない場合には、他の探索アルゴリズムは、ａが０に等しいかどうかまたｂが４に等しいかどうか、またはその逆であるかどうか（すなわち、ａが４に等しいかどうか、またｂが０に等しいかどうか）を判断する。等しい場合には、選択した予測モードが、一組の予測モード（０、５、４）の中のコストが最も安い予測モードである。
【００７３】
ａが０に等しくなく、ｂが４に等しくなく、またはその逆でもない場合には、他の探索アルゴリズムは、ａが４に等しいかどうか、またｂが１に等しいかどうか、またはその逆であるかどうかを判断する。そうである場合には、選択した予測モードが、一組の予測モード（４、６、１）のコストが最も安い予測モードである。
【００７４】
ａが４に等しくなく、ｂが１に等しくなく、またはその逆でもない場合には、他の探索アルゴリズムは、ａが１に等しいかどうか、またｂが３に等しいかどうか、またはその逆であるかどうかを判断する。そうである場合には、選択した予測モードが、一組の予測モード（１、８、３）のコストが最も安い予測モードである。
【００７５】
ａが１に等しくなく、ｂが３に等しくなく、またはその逆でもない場合には、他の探索アルゴリズムは、ａが３に等しいかどうか、またｂが０に等しいかどうか、またはその逆であるかどうかを判断する。そうである場合には、選択した予測モードが、一組の予測モード（３、７、０）のコストが最も安い予測モードである。
【００７６】
図６は、マクロブロックの４×４アレイに対して予測モードを選択する他の４×４予測モード探索方法のフローチャートである。ある実施形態の場合には、他の４×４予測モード探索方法は６００、図１のステップ１１５を含む。
【００７７】
この方法６００は、マクロブロックを１６個の４×４アレイに分割する（６０５において）ことによりスタートする。次に、この方法は、第１の４×４アレイを処理のための現在の４×４アレイとしてセットする（６１０において）。現在の４×４アレイに対して、この方法６００は各予測モード０、１、２、３および４に対するコストを決定する（６１６において）。この方法は、変数ａを、予測モード０、１、３および４の中のコストが最も安い予測モードの予測モード索引に等しくセットする（６１６において）。この方法は、変数ｂを、予測モード０、１、３および４の中から２番目にコストが安い予測モードの予測モード索引に等しくセットする（６１７において）。この方法は、変数ｎを、予測モード０、１、２、３および４の中のコストが最も安い予測モードの予測モード索引に等しくセットする（６１７において）。
【００７８】
この方法は、ｎが２に等しいかどうかを判断する（６２０において）。２に等しい場合には、この方法は、予測モード２を現在の４×４アレイに対する予測モードとしてセットする（６２５において）。次に、この方法は、処理するマクロブロック内に他の４×４アレイが存在するかどうかを判断する（６８５において）。存在する場合には、この方法は、次の４×４アレイを現在の４×４アレイとしてセットし（６９０において）、ステップ６１５に進む。存在しない場合には、この方法は終了する。
【００７９】
この方法が、ｎが２に等しくないと判断した場合には（６２０−Ｎｏにおいて）、この方法は、上記条件（ａが０に等しく、ｂが４に等しく、またはその逆）が真であるかどうかを判断する（６３０において）。真である場合には、この方法は、各予測モード０、５および４に対するコストを決定する（６３５において）。次に、この方法は、コストが最も安い予測モード（予測モード０、５および４の中の）を現在の４×４アレイに対する予測モードとしてセットする（６４０において）。次に、この方法はステップ６８５に進む。
【００８０】
この方法が、上記条件（ａが０に等しく、ｂが４に等しく、またはその逆である）が真でないと判断した場合には（６３０−Ｎｏにおいて）、この方法は、上記条件（ａが４に等しく、ｂが１に等しく、またはその逆である）が真であるかどうかを判断する（６４５において）。そうである場合には、この方法は、各予測モード４、６および１に対するコストを決定する（６５０において）。次に、この方法は、コストが最も安い予測モード（予測モード４、６、および１の中の）を現在の４×４アレイに対する予測モードとしてセットする（６５５において）。次に、この方法はステップ６８５に進む。
【００８１】
この方法が、上記条件（ａが４に等しく、ｂが１に等しく、またはその逆である）が真でないと判断した場合には（６４５−Ｎｏにおいて）、この方法は、上記条件（ａが１に等しく、ｂが３に等しく、またはその逆である）が真であるかどうかを判断する（６６０において）。真である場合には、この方法は、各予測モード１、８および３に対するコストを決定する（６６５において）。次に、この方法は、コストが最も安い予測モード（予測モード１、８および３の中の）を現在の４×４アレイに対する予測モードとしてセットする（６７０において）。次に、この方法はステップ６８５に進む。
【００８２】
この方法が、上記条件（ａが１に等しく、ｂが３に等しく、またはその逆である）が真でないと判断した場合には（６６０−Ｎｏにおいて）、この方法は、上記条件（ａが３に等しく、ｂが０に等しく、またはその逆である）が真であるかどうかを判断する（６７２において）。真である場合には、この方法は、各予測モード３、７および０に対するコストを決定する（６７５において）。次に、この方法は、コストが最も安い予測モード（予測モード３、７および０の中の）を現在の４×４アレイに対する予測モードとしてセットする（６８０において）。次に、この方法はステップ６８５に進む。この方法が、上記条件（ａが３に等しく、ｂが０に等しく、またはその逆である）が真でないと判断した場合には（６７２−Ｎｏにおいて）、この方法は、予測モードを、変数ｎ（ステップ６１８において決定した）が示す予測モード、すなわち予測モード０、１、２、３および４の中のコストが最も安い予測モードに等しくセットする（６７３において）。次に、この方法はステップ６８５に進む。
【００８３】
図７は、ある実施形態を実行するコンピュータ・システム７００である。コンピュータ・システム７００は、バス７０５、プロセッサ７１０、システム・メモリ７１５、読出し専用メモリ７２０、永久記憶装置７２５、入力装置７３０、および出力装置７３５を含む。
【００８４】
バス７０５は、すべてのシステム、周辺機器およびコンピュータ・システム７００の多数の内部装置と通信できるように接続しているチップセット・バスを集合的に表す。例えば、バス７０５は、プロセッサ７１０を、読出し専用メモリ７２０、システム・メモリ７１５、および永久記憶装置７２５と通信できるように接続している。
【００８５】
読出し専用メモリ（ＲＯＭ）７２０は、コンピュータ・システムのプロセッサ７１０および他のモジュールが必要とする静的データおよび命令を記憶する。一方、永久記憶装置７２５は、読出し／書込みメモリ素子である。このデバイスは、コンピュータ・システム７００の電源をオフにした場合でも、命令およびデータを記憶している不揮発性記憶装置である。ある種の実施形態は、永久記憶装置７２５として、大量記憶装置（磁気ディスクまたは光ディスクおよびその対応するディスク・ドライブなど）を使用する。他の実施形態は、永久記憶装置として取り外すことができる記憶装置（フロッピー・ディスクまたはｚｉｐ（登録商標）ディスクおよびその対応するディスク・ドライブなど）を使用する。
【００８６】
永久記憶装置７２５のように、システム・メモリ７１５は、読出し／書込みメモリ素子である。しかし、記憶装置７２５とは異なり、システム・メモリは、ランダム・アクセス・メモリ（ＲＡＭ）のような揮発性読出し／書込みメモリである。システム・メモリは、プロセッサが稼働時間中に必要とする命令およびデータの中のあるものを記憶する。
【００８７】
ある実施形態を実行するために必要な命令および／またはデータは、システム・メモリ７１５、永久記憶装置７２５、読出し専用メモリ７２０、またはこれら３つの任意の組合わせ内に記憶される。例えば、種々の記憶装置は、ある種の実施形態によるビデオ・データ・ストリームを符号化または復号化するための命令を含むことができ、および／またはビデオ・データを含むことができる。これらの種々の記憶装置から、プロセッサ７１０は、ある種の実施形態の処理を実行するために実行する命令および処理するデータを検索する。これらの種々の記憶装置から、プロセッサ７１０は、ある種の実施形態の処理を実行するために実行する命令および処理するデータを検索する。
【００８８】
バス７０５は、また、入力および出力装置７３０および７３５に接続している。入力装置７３０により、ユーザは、コンピュータ・システム７００に情報を入力することができ、コンピュータ・システム７００へのコマンドを選択することができる。入力装置７３０は、英数字キーボードおよびカーソル・コントローラを含む。出力装置７３５は、コンピュータ・システム７００が生成する画像を表示する。出力装置は、プリンタおよび陰極線管（ＣＲＴ）または液晶表示装置（ＬＣＤ）のような表示デバイスを含む。
【００８９】
最後に、図７に示すように、バス７０５は、また例えば、ネットワーク・アダプタ（図示せず）を通して、コンピュータ・システム７００をネットワーク７６５に接続している。このようにして、コンピュータ・システム７００は、コンピュータのネットワークの一部（ローカル・エリア・ネットワーク（「ＬＡＮ」）、ワイド・エリア・ネットワーク（「ＷＡＮ」）またはイントラネットなど）、またはネットワークのネットワーク（インターネットなど）となることができる。コンピュータ・システム７００のいくつかのまたは全部の構成要素は、ある種の実施形態と一緒に使用することができる。しかし、通常の当業者であれば、任意の他の構成も他の実施形態と一緒に使用することができることを理解することができるだろう。
【００９０】
多数の特定の詳細を参照しながら本発明を説明してきたが、通常の当業者であれば、本発明の精神から逸脱することなしに、本発明を他の特定の形態内に埋設することができることを理解することができるだろう。例えば、本発明の多くの実施形態をマクロブロックを参照しながら説明してきたが、通常の当業者であれば、これらの実施形態は、画素値の任意の他のアレイと一緒に使用することができることを理解することができるだろう。
【符号の説明】
【００９１】
７００  コンピュータ・システム
７０５  バス    ７１０  プロセッサ
７１５  システム・メモリ
７２０  ＲＯＭ    ７２５  記憶装置
７３０  入力装置  ７６５  ネットワーク
【図１】
0005559900.tif 000009
【図２】
0005559900.tif 000010
【図３】
0005559900.tif 000011
【図４】
0005559900.tif 000012
【図５】
0005559900.tif 000013
【図６】
0005559900.tif 000014
【図７】
0005559900.tif 000015