(57)【要約】本発明は、連続する画像を符号化する方法および装置に関する。この方法は、参照画像の検索領域を定義するステップ（６００）と、各動きベクトル候補のコスト関数を計算するステップ（６０２）とを含む。次いで、符号化されるべきブロックが、最低コスト関数値を与える動きベクトル候補を使用して符号化される（６１４）。コスト関数の計算（６０２）では、符号化されるべきブロックと候補ブロックに対して数論変換が実行され（６０４、６０６）、符号化されるべきブロックと変換済み候補ブロックとの間で乗算が実行され（６０８）、乗算の結果に対して数論変換の逆変換を実行することによって、符号化されるべきブロックと候補ブロックとの間の相関が構成され（６１０）、構成された相関がコスト関数の計算に使用される（６１２）。
2005502285.tif 000002
【特許請求の範囲】
【請求項１】
現在の画像の符号化されるべきブロックが検索される、参照画像の検索領域を定義するステップ（６００）と、
符号化されるべきブロックと検索領域の候補ブロックとの間の動きを決定する各動きベクトル候補のコスト関数を計算するステップ（６０２）と、
最低コスト関数値を与える動きベクトル候補を使用して符号化されるべきブロックを符号化するステップ（６１４）とを備えた、連続する画像を符号化する方法であって、
コスト関数の計算（６０２）で、
符号化されるべきブロックに対して数論変換が実行され（６０４）、
候補ブロックに対して数論変換が実行され（６０６）、
符号化されるべきブロックと変換済み候補ブロックとの間で乗算が実行され（６０８）、
乗算の結果に対して数論変換の逆変換を実行することによって、符号化されるべきブロックと候補ブロックとの間の相関が形成され（６１０）、
形成された相関がコスト関数の計算に使用される（６１２）ことを特徴とする方法。
【請求項２】
Ｒａｄｉｘ−２アルゴリズムを使用して数論変換が実施されることを特徴とする請求項１に記載の方法。
【請求項３】
ウィノグラードフーリエ変換アルゴリズム（ＷＦＴＡ）を使用して数論変換が実施されることを特徴とする請求項１に記載の方法。
【請求項４】
数論変換のモジュラスを１６７７７２１７とし、核を５２４１６０とするか、またはモジュラスを１６７７７２１７とし、核を６５５２０とするか、またはモジュラスを４２９４９６７２９７とし、核を４とするか、またはモジュラスを４２９４９６７２９７とし、核３２２１２２５４７３とすることを特徴とする請求項１に記載の方法。
【請求項５】
コスト関数の計算（６０２）で、
符号化されるべきブロックが０要素を付加することによって１ピクセルが各動きベクトル候補に相当するサイズまで埋められ、
符号化されるべきブロックが横方向と縦方向に反転されることを特徴とする請求項１に記載の方法。
【請求項６】
コスト関数の計算（６０２）で、
少なくとも４つの変換済み候補ブロックが選択され、それらのそれぞれに対して符号化されるべき反転した変換済みブロックによって順に乗算が実行され、この乗算の各結果に対して数論変換の逆変換が実行され、この逆変換の結果は１つの相関に結合されることを特徴とする請求項２に記載の方法。
【請求項７】
符号化されるべきブロックの数論変換は、最初にすべての列の左半分に対して、その後すべての行に対して実行されることを特徴とする請求項６に記載の方法。
【請求項８】
数論変換の逆変換は、最初にすべての行に対して、その後すべての列の左半分に対して実行されることを特徴とする請求項６に記載の方法。
【請求項９】
数論変換は、数論変換に適応する４８ポイントのウィノグラードフーリエ変換アルゴリズム、または数論変換に適応する２４ポイントのウィノグラードフーリエ変換アルゴリズムを使用して実施されることを特徴とする請求項１に記載の方法。
【請求項１０】
数論変換のモジュラスは１６７７７１５３であり核が４５７５５８１である請求項９に記載の方法。
【請求項１１】
符号化されるべきブロックは、０要素を付加することによって４８×４８ピクセルまたは２４×２４ピクセルのサイズまで埋められることを特徴とする請求項９に記載の方法。
【請求項１２】
コスト関数としてＳＳＤ（２乗誤差の和）を使用することを特徴とする請求項１〜１１のいずれかに記載の方法。
【請求項１３】
現在の画像の符号化されるべきブロックが検索される、参照画像の検索領域を決定する手段（２１６）と、
符号化されるべきブロックと検索領域の候補ブロックとの間の動きを決定する各動きベクトル候補のコスト関数を計算する計算手段（２１６）と、
コスト関数の最低値を与える動きベクトル候補を使用して符号化されるべきブロックを符号化する手段（２１６、２２０）とを備えた、連続する画像を符号化する装置であって、
計算手段（２１６）は、
符号化されるべきブロックに対して数論変換を実行し、
候補ブロックに対して数論変換を実行し、
符号化されるべき変換済みブロックと変換済み候補ブロックとの間で乗算を実行し、
乗算の結果に対して数論変換の逆変換を実行することによって、符号化されるべきブロックと候補ブロックとの間の相関を形成し、
形成された相関をコスト関数の計算に使用することを特徴とする装置。
【請求項１４】
計算手段（２１６）はＲａｄｉｘ−２アルゴリズムを使用して数論変換を実施することを特徴とする請求項１３に記載の装置。
【請求項１５】
計算手段（２１６）はウィノグラードフーリエ変換アルゴリズム（ＷＦＴＡ）を使用して数論変換を実施することを特徴とする請求項１３に記載の装置。
【請求項１６】
計算手段（２１６）で、数論変換のモジュラスを１６７７７２１７とし、核を５２４１６０とするか、またはモジュラスを１６７７７２１７とし、核を６５５２０とするか、またはモジュラスを４２９４９６７２９７とし、核を４とするか、またはモジュラスを４２９４９６７２９７とし、核３２２１２２５４７３とすることを特徴とする請求項１３に記載の装置。
【請求項１７】
計算手段（２１６）は、コスト関数の計算で、
符号化されるべきブロックを、０要素を付加することによって１ピクセルが各動きベクトル候補に相当するサイズまで埋め、
符号化されるべきブロックを横方向と縦方向に反転するることを特徴とする請求項１３に記載の装置。
【請求項１８】
計算手段（２１６）は、コスト関数の計算で、
少なくとも４つの変換済み候補ブロックを選択し、それらのそれぞれに対して符号化されるべき反転した変換済みブロックによって順に乗算を実行し、この乗算の各結果に対して数論変換の逆変換を順に実行し、この逆変換の結果を１つの相関に結合することを特徴とする請求項１４に記載の装置。
【請求項１９】
計算手段（２１６）は、符号化されるべきブロックの数論変換を、最初にすべての列の左半分に対して、次いですべての行に対して実行することを特徴とする請求項１８に記載の装置。
【請求項２０】
計算手段（２１６）は、数論変換の逆変換を、最初にすべての行に対して、次いですべての列の左半分に対して実行することを特徴とする請求項１８に記載の装置。
【請求項２１】
数論変換は、数論変換に適応する４８ポイントのウィノグラードフーリエ変換アルゴリズム、または数論変換に適応する２４ポイントのウィノグラードフーリエ変換アルゴリズムを使用して実施されることを特徴とする請求項１３に記載の装置。
【請求項２２】
計算手段（２１６）で、数論変換のモジュラスが１６７７７１５３であり核が４５７５５８１であることを特徴とする請求項２１に記載の装置。
【請求項２３】
計算手段（２１６）は、符号化されるべきブロックを、０要素を付加することによって４８×４８ピクセルまたは２４×２４ピクセルのサイズまで埋めることを特徴とする請求項２１に記載の装置。
【請求項２４】
計算手段（２１６）はコスト関数としてＳＳＤ（２乗誤差の和）を使用することを特徴とする請求項１３から２３のいずれかに記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、連続する画像を符号化する方法および装置に関する。
【背景技術】
【０００２】
ビデオ画像など、連続する画像の符号化は、画像をより効率的にメモリ手段に記憶出来、または画像をデータリンクによって転送出来るようにデータ量を低減するために使用される。ビデオ符号化標準の１例はＭＰＥＧ−４（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅｓ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）である。３５２×２８８ピクセルのｃｉｆサイズや１７６×１４４ピクセルのｑｃｉｆサイズなど様々な画像サイズがある。
【０００３】
一般に、個々の画像は複数のブロックに分割され、ブロックのサイズはシステムに適するように選択される。ブロックは、一般に、輝度、色、および場所に関する情報を含んでいる。ブロックデータは所望の符号化法によってブロック専用に圧縮される。圧縮は重要でないデータの削除に基づいている。圧縮方法は、主として、スペクトラル冗長低減、空間冗長低減、および時間冗長低減の３つのカテゴリに分類される。通常、圧縮のためにはこれらの方法の異なる組み合わせが使用される。
【０００４】
スペクトラル冗長を低減するには、例えばＹＵＶ色モデルなどが使用される。ＹＵＶ色モデルは、人間の目が輝度クロミナンスの変化すなわち色の変化よりも輝度の変動の方により感受性が高いという事実を利用する。ＹＵＶモデルは１つの輝度成分（Ｙ）と２つのクロミナンス成分（Ｕ、Ｖ）とを有する。例えば、Ｈ．２６３ビデオ符号化標準に準拠する輝度ブロックは１６×１６ピクセルであり、クロミナンスブロックはどちらも輝度ブロックと同じ面積をカバーして８×８ピクセルである。１つの輝度ブロックと２つのクロミナンスブロックの組み合わせはマクロブロックと呼ばれる。輝度ブロックとクロミナンスブロックにある各ピクセルは０と２５５の間の値をとることができる。すなわち、１ピクセルを表すには８ビットが必要となる。例えば、輝度ピクセルの値０は黒を表し、値２５５は白を表す。
【０００５】
空間冗長を低減するために、例えば離散コサイン変換（ＤＣＴ）が使用される。離散コサイン変換では、ブロックのピクセル表現は空間周波数表現に変換される。さらに、画像ブロックでは、その中にある信号周波数だけが高振幅係数を有し、当該ブロックにない信号は０に近い係数を有する。離散コサイン変換は、原則として可逆変換であり、信号は量子化でのみ干渉を受ける。
【０００６】
時間冗長は、連続する画像が一般に類似しているという事実を利用して低減される。したがって個々の画像を圧縮する代わりにそのブロックの動きデータが生成される。これは動き補償と呼ばれる。実現可能な程度に良好なあらかじめ符号化された参照ブロックが、あらかじめメモリに記憶されている参照画像に符号化されるべきブロックを求めて検索され、参照ブロックと符号化されるべきブロックとの間の動きがモデル化され、計算された動きベクトルが受信装置に送られる。符号化されるべきブロックと参照ブロックとの相違は誤り因子として表現される。このような符号化は、同じ画像シーケンスの画像間の類似点を利用することを意味するインター符号化と呼ばれる。
【０００７】
この応用例では、最良の動きベクトルを求める問題点が強調されている。通常、検索領域は参照画像に対して決定され、符号化されるべき現在の画像にあるブロックと類似のブロックがその検索領域から検索される。最良の一致は、例えば検索領域内のブロックと符号化されるべきブロックのピクセルの間の絶対差の和（ＳＡＤ）など、コスト関数を計算することによって求められる。
【０００８】
従来技術ではフル検索が使用される。すなわち、すべての、もしくはほとんどすべての実現可能な動きベクトルは動きベクトルの候補として設定されている。フル検索は、略語であるＥＳＡ（徹底検索アルゴリズム）としても知られている。フル検索を使用する際の問題は多数の計算が要求されるということである。例えば、検索領域のサイズが４８×４８ピクセルであり、それによって１ピクセルの精度で実現可能な動きベクトル数が３２×３２、輝度ブロックのサイズが１６×１６ピクセルの場合、絶対差分の１つの合計の計算には１６×１６＝２５６の計算が要求され、実現可能な動きベクトルすべての絶対差分合計の計算にはマクロブロックあたり合計３２×３２×２５６＝２６２  １４４の計算が要求される。例えば、ｃｉｆサイズの画像は３９６のマクロブロックを有する。すなわち、３９６×２６２  １４４＝１０３  ８０９  ０２４の計算がある。ビデオ画像は、一般に１５画像／秒を含んでおり、動きベクトルを求めるために、秒あたりに要求される計算数は１５×１０３  ８０９  ０２４＝１５５  ７１３  ５３６０である。
【０００９】
動きベクトル候補数が徹底的に低減される様々な検索方法を使用することによって、計算数を低減する試みがなされてきた。例えば、ＴＳＳ（３ステップ検索）法では、絶対差分の和は、３つの異なるラウンド中に８つの動きベクトルに対してのみ検索領域の異なる部分から計算され、各ラウンドの検索領域が低減され、これにより計算数は１マクロブロックあたり３×８×２５６＝６１４４の計算に低減される。この場合、最良の結果をもたらす動きベクトルが連続して選択され、その周囲にはより小さい検索領域が形成され、次いでそこから最良の動きベクトルが検索される。この解決策の問題は、検索領域がフル検索の場合よりも小さいということであり、仮に最初の段階で誤った進路に従って検索が開始された場合、この方法は不満足な結果を提供する。
【００１０】
画像品質を犠牲にして計算数が低減される他の方法は、ＴＤＬ（２−Ｄログ検索）、クロス検索、および１−Ｄフル検索を含む。符号化されるべき画像によって計算数が変動する非決定論的方法は、ＳＥＡ（連続消去アルゴリズム）およびＰＤＥ（部分歪曲消去）を含む。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
参照により本明細書に組み込んだ米国特許出願第５  ５３５  ２８８号は、計算が少なく、フル検索と同等のよい結果をもたらす方法を開示する。重畳積分定理によれば、フーリエ変換で重畳および相関を計算することができる。使用されるフーリエ変換の計算が浮動小数点算術および２成分の複素数を必要とするので、使用されるフーリエ変換が解決策の問題である。問題の計算を、特に特定用途向け集積回路（ＡＳＩＣ）を使用して実施することは非効率的であり、これはそのような回路を使用する装置の電力消費量を増加させる。問題は、例えば移動電話システムなど、無線システムのマルチメディア端末で特に大きい。
【課題を解決するための手段】
【００１２】
本発明の目的は、改善された方法および改善された装置を提供することである。本発明の一態様として、請求項１に記載の方法が提供されている。本発明の一態様として、請求項１３に記載の装置が提供されている。本発明の他の好ましい実施形態は従属項で開示される。
【００１３】
本発明は、フーリエ変換の代わりに数論変換を使用し、その処理は１成分の整数を使用することしか必要としないという考えに基づいている。
【００１４】
本発明による解決策は、特にマルチメディア端末に対する効率的な特定用途向け集積回路の実施を容易にする。
【発明を実施するための最良の形態】
【００１５】
本発明の好ましい実施形態を添付の図面を参照して１例として説明する。
【００１６】
図１を参照して、ビデオ画像を符号化し、復号するための装置を説明する。当業者には、ビデオ符号化は本明細書に組み込まれた著作物、Ｖａｓｕｄｅｖ  Ｂｈａｓｋａｒａｎ  ａｎｄ  Ｋｏｎｓｔａｎｔｉｎｏｓ  Ｋｏｎｓｔａｔｉｎｉｄｅｓ：‘Ｉｍａｇｅ  ａｎｄ  Ｖｉｄｅｏ  Ｃｏｍｐｒｅｓｓｉｎｇ  Ｓｔａｎｎｄａｒｄｓ−Ａｌｇｏｒｉｔｈｍｓ  ａｎｄ  Ａｒｃｈｉｔｅｃｔｕｒｅｓ，Ｓｅｃｏｎｄ  Ｅｄｉｔｉｏｎ’Ｋｌｕｗｅｒ  Ａｃａｄｅｍｉｃ  Ｐｕｂｌｉｓｈｅｒｓ  １９９７，Ｃｈａｐｔｅｒ６：‘Ｔｈｅ  ＭＰＥＧ  ｖｉｄｅｏ  ｓｔａｎｄａｒｄｓ’など、標準およびテキストによってよく知られているので、説明を簡約化している。ビデオ画像はカメラ１００で個々の連続する画像から構成される。カメラ１００を使用すると、画像をピクセルで表現する行列が構成され、例えば輝度とクロミナンスが独自の行列を有する最初に説明された方法などの構成である。画像をピクセルで表現するデータフローは符号器１０２に取り込まれる。当然ながら、データフローが、例えばデータ伝送接続に沿って、またはコンピュータのメモリ手段から符号器１０２で受け取ることができる場合、そのような装置も構築することができる。したがって、未圧縮のビデオ画像が、転送するため、または記憶するためなどに符号器１０２で圧縮されるのが本発明である。符号器１０２によって形成された圧縮ビデオ画像はチャネル１０６を使用して復号器１０８に送られる。
【００１７】
符号器１０２で、各ブロックは離散コサイン変換され、量子化される。すなわち、原則として各要素が定数によって分割される。定数は異なるマクロブロックの間で変動しうる。除数が計算される量子化パラメータは一般に１と３１の間である。０はチャネルには送られないので、ブロック内で得られる０が多いほど、そのブロックはより圧縮される。量子化されたブロックに対して異なる符号化法をさらに実行することができ、最終的にそれらから１つのビットストリームが構成され、復号器１１０に送られる。逆量子化および逆離散コサイン変換はなお符号器１０２内の量子化されたブロックに対して実行され、したがって次の画像のブロックを予測できる参照画像が形成される。この後、符号器は入ってくるブロックと参照ブロックの間の差分データならびに動きベクトルを送る。このようにして、圧縮効率は改善される。そのビットストリームの圧縮解除および圧縮法の後、復号器１１０は、原則として参照画像が形成される時に符号器１０２が行ったのと同様に行う。すなわち、それらのブロックに対して同じ演算が符号器１０２の場合とは逆の順番で実行される。
【００１８】
当業者にはチャネル１０６の異なる実施態様のオプションは明らかなので、本明細書ではチャネル１０６がどのように実施されるかは記載しない。チャネル１０６は、例えば固定であっても無線データ伝送接続であってもよい。チャネル１０６はまた、ビデオ画像をレーザディスクのようなメモリ手段に記憶し、次いでビデオ画像をメモリ手段から読み取り、復号器１０８で処理する伝送経路として解釈してもよい。圧縮ビデオ画像を、例えば図１に示すチャネル符号器１０４でチャネル１０６に送るために他の符号化を使用することもできる。チャネル符号化はチャネル復号器１０８で復号される。静止画像から構成され、復号器１１０で復号されるビデオ画像はディスプレイ１１２上に表示することができる。
【００１９】
符号器１０２および復号器１１０を、例えばコンピュータ内、移動局のような異なる無線システムの加入者端末内、またはビデオ画像を処理することが望まれる他の装置など、異なる装置に配置することができる。符号器１０２および復号器１１０は同じ装置に結合することができる。その場合、それはビデオコーデックと呼ばれる。
【００２０】
図２は、ビデオ画像を符号化する装置、すなわち符号器１０２をより詳細に示す。ビデオ動画像２００は符号器１０２に入れられ、一時的にフレームバッファ２２４内に画像ごとに記憶することができる。最初の画像はイントラ画像と呼ばれる。すなわち、それは離散コサイン変換ブロック２０４および量子化ブロック２０６で処理されるが、それが時間冗長を低減するための符号化は実行されない。最初の画像の後でも、例えば十分に良好な動きベクトルが求められなかった場合などはイントラ画像を送ることができる。
【００２１】
次の画像が処理されると、時間冗長を低減するために符号化を開始することができる。その場合、参照画像は逆量子化ブロック２０８で逆量子化され、またそれに対して逆離散コサイン変換ブロック２１０で逆離散コサイン変換が実行される。前画像に対して動きベクトルが既に計算されている場合、その効果は手段２１２で画像に追加される。このようにして、再構築された前画像がフレームバッファ２１４に記憶される。すなわち、前画像は復号器１１０で実行された処理後の形式をとっている。したがって、カメラからの現在の画像を記憶するための第１のフレームバッファ２２４と、再構築された前画像を記憶するための第２のフレームバッファ２１４の２つのフレームバッファがあってよい。
【００２２】
次いで前の再構築された画像がフレームバッファ２１４から動き推定ブロック２１６に取り込まれる。同様にして、符号化されるべき現在の画像が動き推定ブロック２１６に取り込まれる。次いで動き推定ブロック２１６では、現在の画像のブロックと一致する前画像のブロックを発見することを目的として、時間冗長を低減するために検索が実行される。これらのブロック間の置換は動きベクトルとして表現される。
【００２３】
求められた動きベクトルは動き補償ブロック２１８に、また可変長符号器２２０に取り込まれる。フレームバッファ２１４からの前の再構築された画像も動き補償ブロック２１８に取り込まれる。前の再構築された画像と動きベクトルとに基づいて、補償ブロック２１８は前画像で発見されたブロックを手段２０２および２１２に送る方法を知る。前画像で発見されたブロックが手段２０２によって符号化されるべき現在の画像から、より正確にはその少なくとも１ブロックから差し引かれる。したがって、現在の画像からの、より正確にはその少なくとも１ブロックからの符号化されるべき誤り因子は残っており、その誤り因子は離散コサイン変換され、量子化される。
【００２４】
すなわち、可変長符号器２２０は、離散コサイン変換され、量子化された誤り因子２２８および動きベクトル２２６を入力として受け取る。したがって、現在の画像を表している圧縮データが符号器１０２の出力２２２から取り込まれるが、その圧縮データは、表現として１つまたは複数の動きベクトルおよび１つまたは複数の誤差項を使用して参照画像に対する現在の画像を表している。動き推定は輝度ブロックを使用して実行されるが、符号化されるべき誤り因子は輝度ブロックおよびクロミナンスブロックの両方について計算される。
【００２５】
次に、図５の流れ図を参照して、連続する画像を符号化する方法を説明する。符号化は、時間冗長を低減するという観点から具体的に説明し、この文脈では冗長性を低減する他の方法は説明しない。この方法の実施はブロック５００で開始されるが、そこで符号器１０２が最初のイントラ画像を符号化する。ブロック５０２で、フレームメモリ２２４から次の画像が取ってこられる。ブロック５０４で、符号化されるべき画像は複数のブロックに分割される。例えば、ｃｉｆ画像は３９６のマクロブロックに分割される。ブロック５０６では、符号化されるべき次のブロックが選択される。次いでブロック５０８で、符号化されるべきブロックの動きベクトルが検索される。ブロック５１０で、符号化されるべきブロックが残っているか否かがテストされる。符号化されるべきブロックがある場合、矢印５１２に従ってブロック５０６に移動する。符号化されるべきブロックがない場合、矢印５１４に従ってブロック５１６に移動する。ブロック５１６で、符号化されるべき画像が残っているか否かがテストされる。符号化されるべき画像がある場合、矢印５１８に従ってブロック５０２に移動する。符号化するべき画像がない場合、矢印５２０に従ってブロック５２２に移動し、そこで方法は完了する。
【００２６】
図６では、図５のブロック５０８の内容、すなわち符号化されるべきブロックの動きベクトルの検索をより詳細に説明する。ブロック６００で、検索領域が参照画像に対して定義され、そこから現在の画像で符号化されるべきブロックが検索される。参照画像は、符号化されるべき画像の直前または符号化されるべき画像の前の複数の画像のうちの１つであってよい。
【００２７】
図３は、２つの連続する静止画像を示している。すなわち、符号化されるべき現在の画像３００を左に、参照画像３０４を右に示している。画像はｃｉｆサイズである。すなわち、それぞれが１６×１６ピクセルのサイズである２２×１８＝３９６輝度マクロブロックを有している。クロミナンスブロックは一般に８×８ピクセルのサイズだが、クロミナンスブロックは動きベクトルの推定には利用しないので図３には示さない。
【００２８】
符号化されるべき画像３００ではブロック３０２を符号化されるべきものと仮定する。参照画像３０４では、４８×４８ピクセルのサイズの検索領域３０６は、符号化されるべきブロック３０２の周囲に形成される。検索領域のサイズは、本発明者らの実施例では９ブロックのサイズである。したがって、実現可能な動きベクトル数、すなわち動きベクトル候補は３２×３２である。
【００２９】
次いで検索領域３０６では、符号化されるべきブロック３０２に対応するブロック３０８が発見される。図４では、左端から順に、ブロック３０２、検索領域３０６および符号化されるべきブロック３０２に対応するブロック３０８が拡大表示されている。図４で、右の画像要素は検索領域３０６内での符号化されるべきブロック３０２ならびに符号化されるべきブロック３０２に対応する発見ブロック３０８の位置を示す組み合わせ画像である。
【００３０】
参照画像３０４で発見されたブロック３０８に対する符号化されるべきブロック３０２の動きは、動きベクトル４００によって表現される。動きベクトルは、符号化されるべきブロック３０２の左上隅のピクセルの動きベクトルとして表現することができる。当然ながら、ブロック内の他のピクセルも、問題の動きベクトルの方向に移動する。
【００３１】
画像の原点（０．０）は、一般に画像の左上隅のピクセルである。ビデオ符号化の用語では、右への移動は正、左へは負、上へは負、下へは正というように表現される。符号化されるべきブロック３０２の左上隅の座標はしたがって（１２８、１１２）である。検索領域３０６の左上隅の座標は（１１２、９６）である。動きベクトル４００は（−１０、１０）、すなわち動きはＸ軸左方に１０ピクセル、およびＹ軸下方に１０ピクセルである。
【００３２】
ブロック６００からブロック６０２に移動し、そこで各動きベクトル候補のコスト関数が計算されるが、動きベクトル候補は符号化されるべきブロック３０２と候補ブロック３０８との間の動きを決定する。したがって、ここではフル検索が使用される。すなわち、動きベクトル候補すべてのコスト関数が定義される。
【００３３】
コスト関数としてＳＳＤ（２乗誤差の和）関数が使用される。その式は次の通りである。
【００３４】
【数１】
2005502285.tif 000003
【００３５】
【数２】
2005502285.tif 000004
【００３６】
【数３】
2005502285.tif 000005
【００３７】
【数４】
2005502285.tif 000006
項２は定数であり、計算する必要はない。何故ならば、本発明者らは、ＳＳＤ関数の最小値には関心がなく、ＳＳＤ関数が最小値を受け取るｘ値とｙ値を求めることに関心があるからである。
【００３８】
項３は、従来技術によれば、比較的簡素な演算により異なる方法で計算することができる。例えば、参照として本明細書に組み込んだ文献、Ｙｕｋｉｈｉｒｏ  Ｎａｉｔｏ、Ｔａｋａｓｈｉ  Ｍｉｙａｚａｋｉ、Ｉｃｈｉｒｏ  Ｋｕｒｏｄａ、「Ａ  ｆａｓｔ  ｆｕｌｌ−ｓｅａｒｃｈ  ｍｏｔｉｏｎ  ｅｓｔｉｍａｔｉｏｎ  ｍｅｔｈｏｄ  ｆｏｒ  ｐｒｏｇｒａｍｍａｂｌｅ  ｐｒｏｃｅｓｓｏｒｓ  ｗｉｔｈ  ａ  ｍｕｌｔｉｐｌｙ−ａｃｃｕｍｕｌａｔｏｒ」、ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｆｅｒｅｎｃｅ  ｏｎ  Ａｃｏｕｓｔｉｃｓ、Ｓｐｅｅｃｈ、ａｎｄ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ、１９９６年である。
【００３９】
項４は、次に説明する方法で計算される相関である。ブロック６０４で、符号化されるべきブロックに対して数論変換が実行される。次いでブロック６０６で、候補ブロックに対して数論変換が実行される。次にブロック６０８で、変換されるべきブロックと変換済み候補ブロックの間で乗算が実行される。ブロック６１０で、乗算結果に対する数論変換の逆変換を実行することにより、符号化されるべきブロックと候補ブロックから相関が形成される。ブロック６１２によれば、形成された相関がコスト関数の計算に使用される。すなわち式１の項４として使用される。
【００４０】
数論変換（ＮＴＴ）は次のように定義される。
【００４１】
【数５】
2005502285.tif 000007
上式で、χｎは０とｑ−１（ｑ−１を含む）の間の変換されるべきＮ個の整数であり、ωは変換の核、すなわち０とｑ−１の間の精選した１つの整数であり、Χｋは０とｑ−１の間の変換結果として受け取られた複数の整数である。すべての演算はｑを法として行われる。
【００４２】
数論変換の逆変換は次のように定義される。
【００４３】
【数６】
2005502285.tif 000008
上式で、Ｎ―１は数論的にＮの逆数である。すなわち、
【００４４】
【数７】
2005502285.tif 000009
であり、同様にω−１は数論的にωの逆数である。必須ではないが、モジュラスｑは素数であることが好ましい。
【００４５】
ピクセルの値は０と２５５の間で変動するので、相関値は最高で次のようになりえる。
2005502285.tif 000010
【００４６】
これは２２４よりも僅かに小さい。すなわち、ｑの値を表すには２４ビットで十分である。
【００４７】
最後に、ブロック６１４で、符号化されるべきブロック３０２はコスト関数の最低値を与える動きベクトル４００を使用して符号化される。
【００４８】
一実施形態では、Ｒａｄｉｘ−２アルゴリズムまたはウィノグラードフーリエ変換アルゴリズム（ＷＦＴＡ）を使用して数論変換が実施される。当業者にはこれらのアルゴリズムはよく知られているので、これらの使用法について本明細書ではこれ以上詳しく説明しない。Ｒａｄｉｘ−２アルゴリズムの使用法は、例えば参照により本明細書に組み込んだ記事、Ｄｉｇｉｔａｌ  ｆｉｌｔｅｒｓ  ａｎｄ  ｔｈｅ  ｆａｓｔ  Ｆｏｕｒｉｅｒ  ｔｒａｎｓｆｏｒｍ、ＩＳＢＮ  ０−４７０−５３１５０−４のＷｉｌｌｉａｍ  Ｔ．Ｃｏｃｈｒａｎ他著、Ｗｈａｔ  ｉｓ  ｔｈｅ  Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍに記載されている。これらのアルゴリズムが使用される場合、次の値により良好な結果が得られる。数論変換のモジュラスを１６７７７２１７とし、核を５２４１６０とするか、またはモジュラスを１６７７７２１７とし、核を６５５２０とするか、またはモジュラスを４２９４９６７２９７とし、核を４とするか、またはモジュラスを４２９４９６７２９７とし、核３２２１２２５４７３とする。
【００４９】
一実施形態では、コスト関数の計算で符号化されるべきブロック３０２は、０要素を付加することによって１ピクセルが各動きベクトル候補に相当するサイズまで埋められる。これで直線相関が得られる。図７に示す方法で、本発明者らの実施例は、符号化されるべきブロック７００のサイズを１６×１６ピクセルとして、３２×３２の動きベクトル候補を含んでいる。すなわち、符号化されるべきブロックの下に１６行と、右側に１６列の０要素、つまり０要素の３つのブロック７０２、７０４、７０６が追加される。符号化されるべきブロックの数論変換は、すべての列の左半分に対して最初に実行され、その後すべての行に対して実行される。すなわち本発明者らの実施例では、最初に１６個の左側の列に対して、その後３２の行すべてに対して行われる。項４を計算するためには直線相関が必要とされるが、重畳積分定理によれば循環畳み込み演算を受け取る場合がある。符号化されるべき変換済みブロック７００を横方向と縦方向に反転することによって相関が受け取られる。これにより図７の右に示したブロックが得られ、符号化されるべきブロック７００は４つのブロック７１０、７１２、７１４、７１６に分割される。本発明者らの実施例では、ブロック７００は、原則として前のブロック３０２と同じだが、ブロック７００の内容に対する反転効果を示すためにその中に異なる複数の線が引かれている。次に、少なくとも４つの変換済み候補ブロックが選択される。これは図８に示されており、そこには検索領域３０６および候補ブロック８００、８０２、８０４、８０６が示されている。これらの候補ブロック８００、８０２、８０４、８０６は０で埋められていないが、それでもそれらのサイズは３２×３２ピクセルであることに留意されたい。各ブロック８００、８０２、８０４、８０６の面積の１／４が符号化されるべきブロック３０２にオーバーラップするように適切にオーバーラップされるようブロック８００、８０２、８０４、８０６が選択される。各候補ブロック８００、８０２、８０４、８０６に対して順に、符号化されるべき反転した変換済みブロックによって乗算が実行され、この乗算の各結果に対して数論変換の逆変換が実行され、この逆変換の結果は１つの相関に結合される。この変換領域ではブロック間の乗算は循環相関に対応するが、その循環性により、乗算の結果は折り返された誤りデータを１６×１６ピクセルのサイズの面積の空間領域の左隅以外ならばどこにでも含んでいる。数論変換の逆変換は、最初にすべての行に対して、その後すべての列の左半分に対して、すなわち本発明者らの実施例では最初に３２行すべてに対して、その後１６の左側の列に対して行われる。組み合わせの結果は、各動きベクトル候補に対応する相関値を含んでいる１つの３２×３２の相関行列である。
【００５０】
数論変換は、数論変換に適応する４８ポイントのウィノグラードフーリエ変換アルゴリズムを使用して実施することもできる。このアルゴリズムが使用される場合、次の値から良好な結果が得られる。数論変換のモジュラスを１６７７７１５３とし、核を４５７５５８１とする。
【００５１】
図９は、数論変換に適応する４８ポイントのウィノグラードフーリエ変換アルゴリズムを使用したコスト関数の計算を示している。記載した関数は上記のブロック５０８内に置かれる。計算は、ブロック９００で開始され、ブロック９４２で完了する。次いでこの計算は、並列計算としてその処理を実施可能な２つの並列の分岐に分割される。左の分岐では、図３に示した４８×４８ピクセルのサイズの検索領域３０６を意味する検索領域ブロックが処理される。右の分岐では、図３に示した符号化されるべきブロック３０２が処理される。このブロックは、０要素を付加することによって４８×４８ピクセルのサイズになるよう埋められている。
【００５２】
ブロック９０２で、４８×４８ピクセルのサイズの検索領域ブロックが取ってこられ、４８×４８要素のサイズの行列に記憶される。ブロック９０４で、行列の各列および行が並べ替えられる。表１に、元の行列の列および行の位置を左側の列に、新しく並べ替えられた位置を右側の列に示す。
【００５３】
例えば、列が並べ替えられる場合、３番目の列の２番目の行にある行列の要素（すなわち、インデックスは０から始まり、列が最初に示されるので、位置２，１）が最初に列３４に移動される。この後、行が並べ替えられる際には、要素は行１７に移動される。したがって最後に要素は位置３４、１７となる。すべての行列の要素は対応する方法で並べ替えられる。
【００５４】
【表１】
2005502285.tif 000011
並べ替えに加え、行列に関する通常の計算規則を使用して、ブロック９０４で行列に左から定数行列Ａ４８が乗じられる。行列Ａ４８は次の式で得られる。
【００５５】
【数８】
2005502285.tif 000012
である。
【００５６】
効率を考慮して、検索領域ブロックに別個の並べ替えが必要ないように、並べ替えと行列Ａ４８による乗算とを組み合わせることができる。
【００５７】
ブロック９０６では、行列に関する通常の計算規則を使用して、ブロック９０４の結果に右から定数行列Ｂ４８が乗じられる。行列Ｂ４８は次の式から得られる。
【００５８】
【数９】
2005502285.tif 000013
である。
【００５９】
ブロック９０８で、前のブロックの結果に右と左の両方から対角行列Ｄ４８が乗じられる。対角値は使用される変換核によって異なる。この例では、核は４５７５５８１であり、これにより行列は次の式から受け取られる。
【００６０】
【数１０】
2005502285.tif 000014
上式で、行列Ｄ３の対角値は表３にあり、行列Ｄ１６の対角値は表４にある。
【００６１】
【表３】
2005502285.tif 000015
対角値を左と右の両方から乗じることは、１つの定数を各行列の要素に乗じる乗算に相当する。すなわち、乗じられるべき行列の各要素に１つの定数が連続２回乗じられる。これら２つの定数をあらかじめ掛け合わせておくことができる。これにより各要素に対して乗算が節約される。
【００６２】
ブロック９１０で、前ブロックの結果に左から行列Ｂ４８が乗じられ、ブロック９１２で、この結果に右から行列Ａ４８が乗じられる。並べ替え後に実行される演算を次の式によって数学的に表現することができる。
【００６３】
【数１１】
2005502285.tif 000016
上式で、ｘは並べ替えられた検索領域ブロックであり、ｙはブロック９１２の結果である。この結果は、並べ替えられた順番に残されることを除いて、検索領域ブロック３０６の数論変換である。
【００６４】
【表４】
2005502285.tif 000017
ブロック９１４で、１６×１６のサイズの符号化されるべきブロックが取ってこられ、４８×４８要素の行列の左上隅に記憶される。他の行列の要素は０にセットされる。この行列内のブロックは、図７に示した原則に従い横方向と縦方向に反転される。
【００６５】
ブロック９１６では、行列の各列と行がブロック９０４と同様の方法で並べ替えられる。この後、この列に行列Ａ４８が乗じられる（これは、並べ替えられた行列に左から行列Ａ４８が乗じられることに相当する）。並べ替えと行列Ａ４８による乗算は、実際には効率のために１つの演算として実行することができる。
【００６６】
【表２】
2005502285.tif 000018
ブロック９１８で、前ブロックから１つの結果として受け取られた列に対角行列Ｄ４８が乗じられる。これは、ブロック９０８におけるように係数を行列要素に乗算することに相当する。
【００６７】
ブロック９２０では、列に行列Ｂ４８が乗じられる。ブロック９１６、９１８、および９２０は、結果が並べ替えられた順番に残されることを除いて原則として列の数論変換を共に実行する。
【００６８】
【表５】
2005502285.tif 000019
ブロック９２２では、行に行列Ａ４８が乗じられる（これは、行列Ａ４８の転置が右から乗じられることに相当する）。ブロック９２４では、前のブロックから結果として受け取られた行列の行に対角行列Ｄ４８が乗じられる。
【００６９】
ブロック９２６では、行に行列Ｂ４８が乗じられる。ブロック９２２、９２４、および９２６は、結果が並べ替えられた順番に残されることを除いて原則として数論変換を共に実行する。
【００７０】
ブロック９２８で、ブロック９１２および９２６から受け取られた不適切な順番の行列要素は、正しい順番に整えられ、後で並べ替えられる。正しい順番は表２から受け取られ、並べ替えは表１から受け取られる。これら２つの連続した演算を新しい種類の１つの並べ替えに結合することができる。さらに、２つの行列のそれぞれに対応する要素が相互に乗じられる。例えば、位置５、８でブロック９１２から受け取られた行列要素にブロック９２６から受け取られた行列要素５、８が乗じらる。
【００７１】
ブロック９３０で、ブロック９２８の結果に左から行列Ａ４８が乗じられる。ブロック９３２で、行列に右から行列Ｂ４８が乗じられる。
【００７２】
ブロック９３４で、前ブロックの結果に右と左の両方から対角行列Ｅ４８が乗じられる。対角値は使用される変換核によって異なる。この実施例では、これらは表５から受け取られる。２つの対角値を前もって掛け合わせておくことができる。この場合、各行列要素に対して乗算が節約される。
【００７３】
ブロック９３６で、行列に左から行列Ｂ４８が乗じられる。ブロック９３８で、右から行列Ａ４８による乗算が実行され、結果として受け取られた行列要素は表２に従って整えられる。ブロック９３０、９３２、９３４、９３６、および９３８は逆数論変換を共に実行する。
【００７４】
結果として受け取られた行列は、３２×３２要素の面積で左上隅に検索領域ブロック３０６と符号化されるべきブロック３０２との間の相関を有する。ブロック９４０で、この相関は、コスト関数の計算、すなわち式１の項４として使用される。
【００７５】
行列Ａ３、Ａ１６、Ｂ３、およびＢ１６による乗算を最適化されたアルゴリズムによって実行することができる。右から行列を乗算する場合、定数行列の転置のために推論されたアルゴリズムが使用される。これらのアルゴリズムは以下で得られる。上記テキストから外れて、得られたアルゴリズムのインデックスは（０ではなく）１から始まる。
【００７６】
行列Ａ３は、
2005502285.tif 000020
行列Ｂ３は、
2005502285.tif 000021
行列Ａ３の転置は、
2005502285.tif 000022
行列Ｂ３の転置は、
2005502285.tif 000023
行列Ａ１６は、
2005502285.tif 000024
行列Ｂ１６は、
2005502285.tif 000025
行列Ａ１６の転置は、
2005502285.tif 000026
行列Ｂ１６の転置は、
2005502285.tif 000027
である。
【００７７】
記載した数論変換に適応する４８ポイントのウィノグラードフーリエ変換アルゴリズムの代わりに、数論変換に適応する２４ポイントのウィノグラードフーリエ変換を使用することができる。この場合、数論変換のモジュラスおよび核を適切に選択する必要がある。次いで、符号化されるべきブロックは０要素を付加することによって２４×２４ピクセルのサイズになるよう埋められる。
【００７８】
記載した方法は、動き推定ブロック２１６、また適宜、ブロック２２０のような動き推定ベクトル２１６に関する他のブロックを使用することによって図２に示す符号器で実行される。図２に示される符号器１０２のブロックを１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）の１つとして実施することができる。別個の論理構成要素から構成された回路、またはソフトウェアを有するプロセッサなど、他の種類の実施態様も実現可能である。異なる実施態様の組み合わせも実現可能である。当業者は、装置のサイズおよび電力消費量、要求される処理効率、製造コストおよび生産規模によってセットされる要件を考慮する。
【００７９】
以上、本発明を添付の図面により実施例を参照して説明したが、本発明はこれに制限されるものではなく、首記の特許請求の範囲の本発明の概念の範囲内で複数の方法で変化し得る。したがって、処理されるべき画像サイズはこの実施例で使用されるｃｉｆサイズからはずれることが出来、これは本発明の実施態様において重大な変化を生じる原因とはならない。符号化されるべきブロックのサイズおよび検索領域のサイズは、実施例に記載したサイズと異なってもよい。それでも尚、本発明は数論変換を使用して実施することができる。この実施例では、ブロックサイズは１６×１６であり検索領域サイズは４８×４８だが、例えば８×８および８×１６のブロックサイズならびに２４×２４の検索領域サイズを使用することもできる。出願人の調査により、この実施例で提示されるモジュラスおよび核は適切だが、他の適切な値が存在することも確かである。例えば、モジュラス値は二進法で可能な限り１を少なくした素数であってよい。フェルマーの数（２３２＋１）を使用することができるが、これはメモリが一般に３２ビットであるのに対し、３３ビットのメモリを必要とする。
【図面の簡単な説明】
【００８０】
【図１】ビデオ画像を符号化し復号する装置を示す図である。
【図２】ビデオ画像を符号化する装置をより詳細に示す図である。
【図３】符号化されるべき現在の画像を左に、参照画像を右にして、連続する２つの画像を示す図である。
【図４】さらに動きベクトルが求められる、図３の詳細を拡大した図である。
【図５】ビデオ画像を符号化する方法を説明する流れ図である。
【図６】ビデオ画像を符号化する方法を説明する流れ図である。
【図７】符号化されるべきブロックを横方向と縦方向に反転している図である。
【図８】相関の形成を示す図である。
【図９】数論変換に適応される４８ポイントのウィノグラードフーリエ変換アルゴリズムを使用することによってコスト関数の計算を説明する流れ図である。
【図１】
2005502285.tif 000028
【図２】
2005502285.tif 000029
【図３】
2005502285.tif 000030
【図４】
2005502285.tif 000031
【図５】
2005502285.tif 000032
【図６】
2005502285.tif 000033
【図７】
2005502285.tif 000034
【図８】
2005502285.tif 000035
【図９】
2005502285.tif 000036
【国際公開パンフレット】
2005502285.tif 000037
2005502285.tif 000038
2005502285.tif 000039
2005502285.tif 000040
2005502285.tif 000041
2005502285.tif 000042
2005502285.tif 000043
2005502285.tif 000044
2005502285.tif 000045
2005502285.tif 000046
2005502285.tif 000047
2005502285.tif 000048
2005502285.tif 000049
2005502285.tif 000050
2005502285.tif 000051
2005502285.tif 000052
2005502285.tif 000053
2005502285.tif 000054
2005502285.tif 000055
2005502285.tif 000056
2005502285.tif 000057
2005502285.tif 000058
2005502285.tif 000059
2005502285.tif 000060
2005502285.tif 000061
2005502285.tif 000062
2005502285.tif 000063
2005502285.tif 000064
2005502285.tif 000065
2005502285.tif 000066
2005502285.tif 000067
2005502285.tif 000068
2005502285.tif 000069
2005502285.tif 000070
2005502285.tif 000071
2005502285.tif 000072
【国際調査報告】
2005502285.tif 000073
2005502285.tif 000074
2005502285.tif 000075