(57)【要約】  【課題】  複数回行われるＳＡＤ演算において、一方の数値情報については、一旦レジスタに書き込まれた数値情報を以降のＳＡＤ演算でも繰り返し用いることができるようにしたＳＡＤ演算装置を提供する。  【解決手段】  参照レジスタに、数値Ｘ（１）〜Ｘ（Ｎ）を記憶させておいた上で、比較レジスタに数値Ｙ（Ｋ）を記憶させる第１のステップと、減算手段にＸ（Ｋ）とＹ（Ｋ）とを入力し、｜Ｘ（Ｋ）−Ｙ（Ｋ）｜を出力させる第２のステップと、加算手段に、｜Ｘ（Ｋ）−Ｙ（Ｋ）｜と、結果レジスタの加算値ＡＤＤ（Ｋ−１）とを入力し、その加算値ＡＤＤ（Ｋ）を出力させる第３のステップと、加算値ＡＤＤ（Ｋ）を結果レジスタに記憶させる第４のステップと、から成る一連のステップ処理をＫ＝１〜ＮまでＮ回繰り返すことにより、ＡＤＤ（Ｎ）をＳＡＤとして出力させるＳＡＤ演算装置とする。【選択図】      図２
2006352220.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ個（Ｎは、Ｎ≧２の整数）の数値Ｘ（１）〜Ｘ（Ｎ）を記憶する参照レジスタと；
Ｎ個の数値Ｙ（１）〜Ｙ（Ｎ）のうち、いずれか一の数値Ｙ（Ｋ）（Ｋは、１≦Ｋ≦Ｎの整数）を記憶する比較レジスタと；
入力される２個の数値の絶対差分値を求める減算手段と；
入力される２個の数値の加算値を求める加算手段と；
上記加算手段の出力値を記憶する結果レジスタと；
上記各手段を用いて、数値Ｘ（１）〜Ｘ（Ｎ）と数値Ｙ（１）〜Ｙ（Ｎ）につき、絶対差分値｜Ｘ（１）−Ｙ（１）｜〜｜Ｘ（Ｎ）−Ｙ（Ｎ）｜の総和演算を行う制御手段と；
を備えたＳＡＤ演算装置であって、
前記制御手段は、
上記参照レジスタに、数値Ｘ（１）〜Ｘ（Ｎ）を記憶させておいた上で、
上記比較レジスタに、数値Ｙ（Ｋ）を記憶させる第１のステップと、
上記減算手段に、上記参照レジスタの数値Ｘ（Ｋ）と上記比較レジスタの数値Ｙ（Ｋ）とを入力し、その絶対差分値｜Ｘ（Ｋ）−Ｙ（Ｋ）｜を出力させる第２のステップと、
上記加算手段に、第２のステップで得られた絶対差分値｜Ｘ（Ｋ）−Ｙ（Ｋ）｜と、上記結果レジスタに記憶されている加算値ＡＤＤ（Ｋ−１）（ただし、ＡＤＤ（０）＝０）とを入力し、その加算値ＡＤＤ（Ｋ）を出力させる第３のステップと、
第３のステップで得られた加算値ＡＤＤ（Ｋ）を上記結果レジスタに記憶させる第４のステップと、
から成る一連のステップ処理をＫ＝１〜ＮまでＮ回繰り返した後、前記結果レジスタに記憶されている加算値ＡＤＤ（Ｎ）を絶対差分和演算の最終結果値ＳＡＤとして出力させることを特徴とするＳＡＤ演算装置。
【請求項２】
Ｎ個（Ｎは、Ｎ≧２の整数）の数値Ｘ（１）〜Ｘ（Ｎ）を記憶する参照レジスタと；
Ｎ個の数値Ｙ（１）〜Ｙ（Ｎ）のうち、少なくとも一の数値を記憶する比較レジスタと；
入力される２個の数値の絶対差分値を求める減算手段と；
入力される２個の数値の加算値を求める加算手段と；
上記加算手段の出力値を記憶する結果レジスタと；
上記各手段を用いて、数値Ｘ（１）〜Ｘ（Ｎ）と数値Ｙ（１）〜Ｙ（Ｎ）につき、絶対差分値｜Ｘ（１）−Ｙ（１）｜〜｜Ｘ（Ｎ）−Ｙ（Ｎ）｜の総和演算を行う制御手段と；
を備えたＳＡＤ演算装置であって、
上記制御手段は、
遅くとも下記の第１のステップを実行する前に、上記参照レジスタに数値Ｘ（Ｋ）を記憶させ、上記比較レジスタに数値Ｙ（Ｋ）を記憶させる処理と、
上記減算手段に、上記参照レジスタの数値Ｘ（Ｋ）（Ｋは、初期値を１とする）と上記比較レジスタの数値Ｙ（Ｋ）とを入力し、その絶対差分値｜Ｘ（Ｋ）−Ｙ（Ｋ）｜を出力させる第１のステップと；上記加算手段に、第１のステップで得られた絶対差分値｜Ｘ（Ｋ）−Ｙ（Ｋ）｜と、上記結果レジスタに記憶されている加算値ＡＤＤ（Ｋ−１）（ただし、ＡＤＤ（０）＝０）とを入力し、その加算値ＡＤＤ（Ｋ）を出力させる第２のステップと；第２のステップで得られた加算値ＡＤＤ（Ｋ）を上記結果レジスタに記憶させる第３のステップと；から成る第１〜第３の一連のステップ処理を、Ｋを１ずつ増加させながらＮ回繰り返す処理と、
を行った後、前記結果レジスタに記憶されている加算値ＡＤＤ（Ｎ）を絶対差分和演算の最終結果値ＳＡＤとして出力させることを特徴とするＳＡＤ演算装置。
【請求項３】
上記制御手段は、２回目以降のＳＡＤ演算につき、上記参照レジスタに記憶済みの数値Ｘ（１）〜Ｘ（Ｎ）をそのまま用いることを特徴とする請求項１または請求項２に記載のＳＡＤ演算装置。
【請求項４】
上記Ｘ（Ｋ）として、Ｎ個の画素を有する判断対象のマクロブロック内のＫ番目の画素の情報を用いるとともに、上記Ｙ（Ｋ）として、Ｎ個の画素を有する比較対象のマクロブロック内のＫ番目の画素の情報を用いることを特徴とする請求項３に記載のＳＡＤ演算装置。
【請求項５】
複数存在する上記比較対象のマクロブロックの各々について、特定の上記判断対象のマクロブロックとの上記ＳＡＤを算出する請求項４に記載のＳＡＤ演算装置と、
上記比較対象のマクロブロックのうちから、該ＳＡＤを最小にするものを探索することによって、上記判断対象のマクロブロックに最も近似しているものを探索する探索手段と、を備えたことを特徴とするマクロブロック探索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＡＤ［Sum of Absolute Difference：絶対差分和］の値を算出するＳＡＤ演算装置及びこれを用いたマクロブロック探索装置に関するものである。
【背景技術】
【０００２】
従来、画像信号を高能率符号化する方式の一つとして、ＭＰＥＧ［Moving Picture Experts Group］方式が広く採用されている。この方式では、まず画像間の差分を取ることで時間軸方向の冗長度を落とし、その後、いわゆる離散コサイン変換処理と可変長符号とを使用して空間軸方向の冗長度を落とすようにすることで画像データを圧縮する。
【０００３】
時間軸方向の冗長度を落とすためには、今から符号化しようとしている画像と時間的に前方の画像との差分を取り、その差分を伝送するようにすることで達成される。連続した動画におけるある瞬間の画像と、これと時間的に前後した画像とを比較すれば、一般に両者は良く似ているものであるから、このような方法により画質をあまり落とさずに情報量を減らすことが可能である。
【０００４】
符号化した画像を作るためには、いわゆる動き補償が行われる。この動き補償によれば、例えば８×８画素の単位ブロックにより構成される１６×１６画素のブロック（マクロブロック）を作る。そして基準時のあるマクロブロックと、基準時以外における当該マクロブロックの位置の近傍との間で、一番画素情報の差分の少ない（近似している）ところを探索し、この探索されたマクロブロックとの差分をとることにより、伝送データを削減することができる。
【０００５】
なお以下本願では、このような比較対象のマクロブロック（基準時以外の複数のマクロブロック）のうちから、判断対象のマクロブロック（基準時の特定のマクロブロック）に最も近似しているものを探索することを「最適ブロックの探索」と称する。この最適ブロックの探索におけるマクロブロック同士の差分は、例えば特許文献１にも記載されているように、次式に例示されるＳＡＤにより算出するのが一般的である。
【０００６】
【数１】
2006352220.tif 000003
【０００７】
ここで、ｆi,j（Ｋ）はある基準時のフレームにおける、空間位置（ｉ，ｊ）に存在す
るマクロブロック内のＫ番目の画素情報を表し、ｆ´i-u,j-v（Ｋ）は基準時以外のフレームにおける、空間位置（ｉ−ｕ，ｊ−ｖ）に存在するマクロブロック内のＫ番目の画素情報を表す。なお画素情報は、例えば各画素の輝度値のような数値情報であり、またＮはマクロブロック内の総画素数である。
【０００８】
すなわち最適ブロックの探索は、基準時のフレームにおける空間位置（ｉ，ｊ）のマクロブロックと、基準時以外のフレームにおける空間位置（ｉ−ｕ，ｊ−ｖ）のマクロブロックとのＳＡＤを種々の（ｕ，ｖ）の組み合わせについて算出し、当該組み合わせのうち、ＳＡＤを最小にするものを見つけ出すことで達成される。そしてそのためには、基準時のフレームの１個のマクロブロックと、基準時以外のフレームにおける複数のマクロブロックとのＳＡＤ演算が必要となる。
【０００９】
最適ブロックの探索の過程で必要となる、マクロブロック同士のＳＡＤの算出には、従来、図５のブロック図にその構成を例示するＳＡＤ演算装置が用いられていた。本装置は演算処理装置１０１およびＲＡＭ［Random Access Memory］１０２から成り、演算処理装置１０１は、参照レジスタ１２１、比較レジスタ１２２、結果レジスタ１２３の各レジスタ、減算部１１３および加算部１１４などから成るＡＬＵ［Arithmetic Logic Unit：演算論理装置］を備えている。
【００１０】
当該ＳＡＤ演算装置による、マクロブロック同士のＳＡＤの演算処理手順を、図５を参照しながら以下に簡潔に説明する。
【００１１】
まず制御部１１１は、ＲＡＭ１０２に格納されている基準時のフレームのマクロブロックについての、Ｋ番目の画素情報（数値情報）であるＸ（Ｋ）を参照レジスタ１２１に上書きするとともに（図のＦ１）、ＲＡＭ１０２に格納されている基準時以外フレームのマクロブロックについての、Ｋ番目の画素情報であるＹ（Ｋ）を比較レジスタ１２２に上書きする（図のＦ２）。
【００１２】
続いて制御部１１１は、参照レジスタ１２１に書き込まれている数値（図のＦ３ａ）と、比較レジスタ１２２に書き込まれている数値（図のＦ３ｂ）とを減算部１１３に入力し、これらの値の差の絶対値を算出させる。そしてこの算出値（図のＦ４ａ）と、結果レジスタ１２３に書き込まれている数値（図のＦ４ｂ）とを加算部に入力してこれらの和を算出させ、結果レジスタ１２３に上書きする（図のＦ５）。
【００１３】
以上の一連の処理をＮ回繰り返すことにより（ただしＫは、初期値を１とし、当該繰り返しの度に１ずつ増加させる）、当該マクロブロック同士のＳＡＤが算出される。
【特許文献１】特表２００３−５１３５６５
【発明の開示】
【発明が解決しようとする課題】
【００１４】
先述の通り、最適ブロックの探索では、基準時のフレームの１個のマクロブロックと、基準時以外のフレームにおける複数のマクロブロックとのＳＡＤ演算が行われる。そのため、最適ブロックの探索において複数回行われるＳＡＤ演算では、基準時のフレーム側のマクロブロックは不変であるため、そのマクロブロック内の数値情報も不変である。従って複数回行われるＳＡＤ演算において、基準時のフレーム側の数値情報については、一旦レジスタに書き込まれたものを以降のＳＡＤ演算でも繰り返し用いるようにすることができれば、再度の書込み処理を省くことができる。
【００１５】
しかし従来のＳＡＤ演算装置では、上述の例のように、Ｘ（Ｋ）及びＹ（Ｋ）の何れについても、各ＳＡＤ演算の減算処理を行う度にレジスタへ上書きすることとしている。その理由として、一般的には、ＳＡＤ演算毎にＸ（Ｋ）及びＹ（Ｋ）は変動することが前提であり、一旦レジスタに書き込まれた数値情報を再度用いてＳＡＤ演算を行うことは想定されていないことが挙げられる。そしてさらにレジスタを複数設けることやレジスタの記憶容量を増大させることは、一般には製品コストの高騰を招いてしまう点も挙げられる。
【００１６】
そのため従来のＳＡＤ演算装置では、図１０のＦ１及びＦ２に例示されるように、レジスタに数値情報を書き込む処理が、各ＳＡＤ演算での減算処理毎に一律に行われている。その結果、複数回のＳＡＤ演算において不変である基準時のフレーム側の数値情報であっても、ＳＡＤ演算が行われる度にレジスタへの書込み処理がなされる。
【００１７】
このように従来のＳＡＤ演算装置では、本来省くことのできる書込み処理をも一律に行われている状況である。この点、特に動画処理の高速化の要請が強まっている現状では、かかる不必要な処理を排除することでＳＡＤ演算処理の効率を改善し、演算速度を向上させることは非常に重要である。
【００１８】
そこで本発明は上記の問題点に鑑み、複数回行われるＳＡＤ演算において、一方の（基準時のフレーム側の）数値情報については、一旦レジスタに書き込まれた数値情報を以降のＳＡＤ演算でも繰り返し用いることができるようにしたＳＡＤ演算装置、及び、これを備えたマクロブロック探索装置を提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記目的を達成するために、本発明に係るＳＡＤ演算装置は、Ｎ個（Ｎは、Ｎ≧２の整数）の数値Ｘ（１）〜Ｘ（Ｎ）を記憶する参照レジスタと；Ｎ個の数値Ｙ（１）〜Ｙ（Ｎ）のうち、いずれか一の数値Ｙ（Ｋ）（Ｋは、１≦Ｋ≦Ｎの整数）を記憶する比較レジスタと；入力される２個の数値の絶対差分値を求める減算手段と；入力される２個の数値の加算値を求める加算手段と；上記加算手段の出力値を記憶する結果レジスタと；上記各手段を用いて、数値Ｘ（１）〜Ｘ（Ｎ）と数値Ｙ（１）〜Ｙ（Ｎ）につき、絶対差分値｜Ｘ（１）−Ｙ（１）｜〜｜Ｘ（Ｎ）−Ｙ（Ｎ）｜の総和演算を行う制御手段と；を備えたＳＡＤ演算装置であって、前記制御手段は、上記参照レジスタに、数値Ｘ（１）〜Ｘ（Ｎ）を記憶させておいた上で、上記比較レジスタに、数値Ｙ（Ｋ）を記憶させる第１のステップと、上記減算手段に、上記参照レジスタの数値Ｘ（Ｋ）と上記比較レジスタの数値Ｙ（Ｋ）とを入力し、その絶対差分値｜Ｘ（Ｋ）−Ｙ（Ｋ）｜を出力させる第２のステップと、上記加算手段に、第２のステップで得られた絶対差分値｜Ｘ（Ｋ）−Ｙ（Ｋ）｜と、上記結果レジスタに記憶されている加算値ＡＤＤ（Ｋ−１）（ただし、ＡＤＤ（０）＝０）とを入力し、その加算値ＡＤＤ（Ｋ）を出力させる第３のステップと、第３のステップで得られた加算値ＡＤＤ（Ｋ）を上記結果レジスタに記憶させる第４のステップと、から成る一連のステップ処理をＫ＝１〜ＮまでＮ回繰り返した後、前記結果レジスタに記憶されている加算値ＡＤＤ（Ｎ）を絶対差分和演算の最終結果値ＳＡＤとして出力させる構成（第１の構成）とする。
【００２０】
本発明の構成によれば、ＳＡＤ演算処理を終えた段階で、参照レジスタにはＮ個の数値情報Ｘ（１）〜Ｘ（Ｎ）が書き込まれている。そのためＸ（１）〜Ｘ（Ｎ）を変えずに以
降のＳＡＤ演算を行う場合は、前回以前のＳＡＤ演算において既に書き込まれているＸ（
１）〜Ｘ（Ｎ）の情報を繰り返し用いることができ、これらの数値情報の再度の書込み処理を省くことができる。
【００２１】
またＳＡＤ演算中に必要な比較レジスタへの数値情報の書込みは、（１）の処理において一度に纏めてなされるため、書込みの制御を簡略化することができる。さらに比較レジスタおよび結果レジスタに対して逐次行われる数値情報の書込みは上書きによってなされるから、これらのレジスタは１個の数値情報を記憶できれば良く、記憶容量を極力小さくすることができる。
【００２２】
また本発明に係るＳＡＤ演算装置は、Ｎ個（Ｎは、Ｎ≧２の整数）の数値Ｘ（１）〜Ｘ（Ｎ）を記憶する参照レジスタと；Ｎ個の数値Ｙ（１）〜Ｙ（Ｎ）のうち、少なくとも一の数値を記憶する比較レジスタと；入力される２個の数値の絶対差分値を求める減算手段と；入力される２個の数値の加算値を求める加算手段と；上記加算手段の出力値を記憶する結果レジスタと；上記各手段を用いて、数値Ｘ（１）〜Ｘ（Ｎ）と数値Ｙ（１）〜Ｙ（Ｎ）につき、絶対差分値｜Ｘ（１）−Ｙ（１）｜〜｜Ｘ（Ｎ）−Ｙ（Ｎ）｜の総和演算を行う制御手段と；を備えたＳＡＤ演算装置であって、上記制御手段は、遅くとも下記の第１のステップを実行する前に、上記参照レジスタに数値Ｘ（Ｋ）を記憶させ、上記比較レジスタに数値Ｙ（Ｋ）を記憶させる処理と、上記減算手段に、上記参照レジスタの数値Ｘ（Ｋ）（Ｋは、初期値を１とする）と上記比較レジスタの数値Ｙ（Ｋ）とを入力し、その絶対差分値｜Ｘ（Ｋ）−Ｙ（Ｋ）｜を出力させる第１のステップと；上記加算手段に、第１のステップで得られた絶対差分値｜Ｘ（Ｋ）−Ｙ（Ｋ）｜と、上記結果レジスタに記憶されている加算値ＡＤＤ（Ｋ−１）（ただし、ＡＤＤ（０）＝０）とを入力し、その加算値ＡＤＤ（Ｋ）を出力させる第２のステップと；第２のステップで得られた加算値ＡＤＤ（Ｋ）を上記結果レジスタに記憶させる第３のステップと；から成る第１〜第３の一連のステップ処理を、Ｋを１ずつ増加させながらＮ回繰り返す処理と、を行った後、前記結果レジスタに記憶されている加算値ＡＤＤ（Ｎ）を絶対差分和演算の最終結果値ＳＡＤとして出力させる構成（第２の構成）とする。
【００２３】
本発明の構成によれば、ＳＡＤ演算処理を終えた段階で、参照レジスタにはＮ個の数値情報Ｘ（１）〜Ｘ（Ｎ）が書き込まれている。そのためＸ（１）〜Ｘ（Ｎ）を変えずに以
降のＳＡＤ演算を行う場合は、前回以前のＳＡＤ演算において既に書き込まれているＸ（
１）〜Ｘ（Ｎ）の情報を繰り返し用いることができ、これらの数値情報の再度の書込み処理を省くことができる。
【００２４】
また上記第１または第２の構成によるＳＡＤ演算装置において、上記制御手段は、２回目以降のＳＡＤ演算につき、上記参照レジスタに記憶済みの数値Ｘ（１）〜Ｘ（Ｎ）をそのまま用いる構成（第３の構成）としても良い。
【００２５】
このようにすれば、Ｘ（１）〜Ｘ（Ｎ）が不変である２回目以降のＳＡＤ演算は、Ｘ（Ｋ）の数値情報が再度参照レジスタに書き込まれることなく（書き込み処理を省略して）進められる。そのため従来のＳＡＤ演算装置に比べて演算処理の効率が改善され、演算速度の向上を図ることができる。
【００２６】
また上記第３の構成によるＳＡＤ演算装置において、上記Ｘ（Ｋ）として、Ｎ個の画素を有する判断対象のマクロブロック内のＫ番目の画素の情報を用いるとともに、上記Ｙ（Ｋ）として、Ｎ個の画素を有する比較対象のマクロブロック内のＫ番目の画素の情報を用いる構成（第４の構成）としても良い。
【００２７】
このようにすれば、判断対象のマクロブロックと比較対象のマクロブロックとの画素情報に係るＳＡＤを算出することにより、両マクロブロックに係る画像の近似の度合いを知ることができる。
【００２８】
また、複数存在する上記比較対象のマクロブロックの各々について、特定の上記判断対象のマクロブロックとの上記ＳＡＤを算出する上記第４の構成によるＳＡＤ演算装置と、上記比較対象のマクロブロックのうちから、該ＳＡＤを最小にするものを探索することによって、上記判断対象のマクロブロックに最も近似しているものを探索する探索手段と、を備えた構成（第５の構成）としたマクロブロック探索装置も有用である。
【００２９】
このようなマクロブロック探索装置であれば、複数存在する比較対象のマクロブロックの中から、判断対象のマクロブロックに最も近似しているものを探索できる。そのため、例えばＭＰＥＧ処理における動き補償の実行などに用いることができる。なおこの場合、判断対象のマクロブロックの画素情報は各ＳＡＤ演算において不変であるから、上記第３の構成による利点を最大限に活かすことができる。
【発明の効果】
【００３０】
上記したように、ＳＡＤ演算処理を終えた段階で、参照レジスタにはＮ個の数値情報Ｘ
（１）〜Ｘ（Ｎ）が書き込まれている。そのためＸ（１）〜Ｘ（Ｎ）を変えずに以降のＳ
ＡＤ演算を行う場合は、前回以前のＳＡＤ演算において既に書き込まれているＸ（１）〜
Ｘ（Ｎ）の情報を繰り返し用いることができ、これらの数値情報の再度の書込み処理を省くことができる。その結果、例えば最適ブロックの探索のように、一方の（基準時のフレーム側の）数値情報が不変であるＳＡＤ演算を複数回行う場合において、演算処理の高速化、および、ＲＡＭ等へのアクセス回数の減少に伴うバス占有率の低減により、低消費電力化を図ることができる。
【発明を実施するための最良の形態】
【００３１】
本発明の一実施形態について、その構造のブロック図を図１に示す。本実施形態は演算処理装置１およびＲＡＭ２から成り、さらに演算処理装置１は、制御部１１と、参照レジスタ２１、比較レジスタ２２および結果レジスタ２３の各レジスタと、減算部１３および加算部１４から成るＡＬＵ１２とを備えている。
【００３２】
ＲＡＭ２は、動画像における基準時および基準時以外についてのフレームの画素情報を、ＳＡＤ演算処理が開始される前に予め格納している。なお画素情報は、各画素の輝度値などの情報を示す数値である。従って画素情報は互いに加減算が可能であり、また画素情報が互いに近似している程、その値の差は小さくなる。
【００３３】
参照レジスタ２１は、少なくともマクロブロック内の総画素数分の数値情報を格納できるだけの容量を有しており、ＲＡＭ２に格納されている画素情報を書き込むことができる。また比較レジスタ２２は、少なくとも１個の数値情報を格納することができ、ＲＡＭ２に格納されている画素情報を書き込むことができる。
【００３４】
減算部１３は、参照レジスタ２１及び比較レジスタ２２が各々出力する数値情報を受け、これらの差の絶対値を内部の論理回路によって算出し、加算部１４に出力する。また加算部１４は、減算部１３及び結果レジスタ２３が各々出力する数値情報を受け、これらの和を内部の論理回路によって算出し、結果レジスタ２３に出力する。
【００３５】
結果レジスタ２３は少なくとも１個の数値情報を格納することができ、加算部１４が出力する数値情報を受ける度に、その情報を上書きして格納する。なお上書きをせずに、加算部１４が逐次出力する数値情報を各々格納することとしても良く、この場合は最後に格納した情報を演算処理に用いることになる。
【００３６】
制御部１１は、上述した種々の装置を制御し、後述する一連の処理を実行することによって、ＳＡＤを算出する。
【００３７】
本実施形態のＳＡＤ演算装置は上述の構成を有することにより、任意の数値情報であるＸ（１）〜Ｘ（Ｎ）およびＹ（１）〜Ｙ（Ｎ）について、次の（１）式で定義されるＳＡＤを算出する。
【００３８】
【数２】
2006352220.tif 000004
【００３９】
次に本実施形態によるＳＡＤ演算処理の流れについて、図２のフローチャートを参照しながら以下に説明する。
【００４０】
初回目のＳＡＤ演算開始の指示を受けると、制御部１１はまずＲＡＭ２に格納されているＮ個の数値情報Ｘ（１）、Ｘ（２）・・・Ｘ（Ｎ）を参照レジスタ２１に書き込む（ステップＳ１）。そしてさらに、ＲＡＭ２に格納されている１個の数値情報Ｙ（Ｋ）を比較レジスタ２２に書き込む（ステップＳ２）。ここでＫは初期値が１であり、後述するように加減算が繰り返される度に１ずつ増加する整数である。
【００４１】
なおＸ（Ｋ）およびＹ（Ｋ）の情報は、後述するステップＳ３の処理で初めて用いられることになる。従ってＸ（Ｋ）の参照レジスタ２１への書込み、及びＹ（Ｋ）の比較レジスタ２２への書込みは、遅くともこのステップＳ３の処理の実施より前に行うようにしていれば、他のタイミングで行うようにしても問題はない。
【００４２】
続いて制御部１１は、参照レジスタ２１に格納されているＸ（Ｋ）と比較レジスタ２２に格納されているＹ（Ｋ）の情報を減算部１３へ入力することにより、これらの差の絶対値を算出させる（ステップＳ３）。
【００４３】
続いて制御部１１は、ステップＳ３における算出値｜Ｘ（Ｋ）−Ｙ（Ｋ）｜と、結果レジスタ２３に格納されている数値の情報を加算部１４へ入力することにより、これらの和を算出させる（ステップＳ４）。なおこの時点で結果レジスタ２３に格納されている数値は、｜Ｘ（１）−Ｙ（１）｜から｜Ｘ（Ｋ−１）−Ｙ（Ｋ−１）｜までの総和であるＡＤＤ（Ｋ−１）であるから、加算部１４の算出値はＡＤＤ（Ｋ）となる。
【００４４】
続いて制御部１１はステップＳ４での算出値ＡＤＤ（Ｋ）を、結果レジスタ２３に上書きする（ステップＳ５）。
【００４５】
上述したステップＳ２からＳ５までの一連の処理を、Ｋを１ずつ増加させながら（ステップＳ７）、Ｋ＝Ｎとなるまで繰り返し実施する（ステップＳ６）。このようにしてＫ＝ＮとなるまでステップＳ２からＳ５までの一連の処理を繰り返し終えた段階では、結果レジスタ２３にはＡＤＤ（Ｎ）、すなわち（１）式で表されるＳＡＤの値が格納されていることになる。そこで制御部１１は、結果レジスタに格納されている数値情報をＲＡＭ２へ書き込むこととし（ステップＳ８）、これによって初回目のＳＡＤ演算処理は完了する。
【００４６】
次に制御部１１は、更に新たなＳＡＤ演算処理を実施するか否かを判断する（ステップＳ９）。そして実施する場合は（ステップＳ９のＹ）、これから新たに行おうとするＳＡＤ演算についての、Ｘ（１）〜Ｘ（Ｎ）の全ての値が、直前に行われたＳＡＤ演算のものと同一であるか否かの判断を行う（ステップＳ１０）。
【００４７】
その結果、同一でないと判断された場合は（ステップＳ１０のＮ）、上述した一連の処理をステップＳ１から再度実行することにより、新たなＳＡＤ演算を行う。しかし同一であると判断された場合は（ステップＳ１０のＹ）、上述した一連の処理をステップＳ２の処理から再度実行することにより、新たなＳＡＤ演算を行う。なお、Ｙ（１）〜Ｙ（Ｎ）についての変動の有無は問わない。
【００４８】
このようにステップＳ１０において同一と判断された場合、新たに行われるＳＡＤ演算については、ステップＳ１の処理を省略する。そして新たに行われるＳＡＤ演算では、その過程で必要となるＸ（１）〜Ｘ（Ｎ）の値として、前回行われたＳＡＤ演算のステップＳ１により既に書き込まれているＸ（１）〜Ｘ（Ｎ）の情報を用いて処理を進めることとする。
【００４９】
なおＳＡＤ演算を更に何度も繰り返して行う場合であっても、Ｘ（１）〜Ｘ（Ｎ）の何れの値をも変えない場合は、前回以前のＳＡＤ演算によって既に書き込まれている情報を用いることができるので、ステップＳ１の処理は省略される。以上のようにして、実行すべきＳＡＤ演算処理が全て終了したら（ステップＳ９のＮ）、本ＳＡＤ演算装置の目的が達成されたことになる。
【００５０】
次に本実施形態を最適ブロックの探索に応用した場合の処理の流れについて、引き続き図２を参照しながら以下に説明する。ここでは図３に示すように、基準時のフレームのマクロブロックＡ（判断対象のマクロブロック）に対して、基準時以外のフレームにおける、マクロブロックＡの位置およびその隣接した位置に係るマクロブロックＢ０〜Ｂ８（比較対象のマクロブロック）の中から最も類似するものを探索する事例を想定する。なお、マクロブロックとは１フレームのデータを一定の大きさに分割したものあり、本事例ではマクロブロックの大きさを１６×１６（＝２５６）画素とする。
【００５１】
まずマクロブロックＡとマクロブロックＢ０とのＳＡＤ演算を行う。ＳＡＤ演算の内容は、先述したステップＳ１からステップＳ８までの一連の処理と同様であるが、その中でのＸ（Ｋ）としてはマクロブロックＡの第Ｋ番目の画素情報が、Ｙ（Ｋ）としてはマクロブロックＢ０の第Ｋ番目の画素情報が、具体的に用いられる。
【００５２】
これにより（１）式のＳＡＤとして、マクロブロックにおける相対的位置が同一の画素同士についての情報の差（近似の度合い）を、マクロブロック内の全画素について累積させた値が算出されることになる。従ってＳＡＤが小さな値となる程、双方のマクロブロックは互いに近似していると認められる。
【００５３】
マクロブロックＢ０に係るＳＡＤ演算が終了したら、引き続いてマクロブロックＢ１、Ｂ２、・・・Ｂ８についても、マクロブロックＡとのＳＡＤ演算を行う。ここでＢ０からＢ８までの計９回行われるＳＡＤ演算においては、何れもマクロブロックＡがその対象となっている。従ってマクロブロックＡの画素情報を表すＸ（１）〜Ｘ（Ｎ）は不変であるから、ステップＳ１０の判断処理により、２回目以降のＳＡＤ演算ではステップＳ１の処理が省略されることになる。
【００５４】
そして比較対象のマクロブロックの全てについて、マクロブロックＡとのＳＡＤ演算が終了した時点では、ＲＡＭ２にはＢ０からＢ８までのマクロブロックに係るＳＡＤの値が格納されていることになる（本事例では、図４のようなＳＡＤの値が格納されているとする）。そこで制御部１１は、これらのＳＡＤのうちの最小値のものに係る比較対象のマクロブロック（本事例では、マクロブロックＢ６）を、マクロブロックＡ（判断対象のマクロブロック）に最も近似するものと判断する。これにより最適ブロックの検索が達成される。
【００５５】
ここで本事例における参照レジスタ２１への数値情報の書込み回数に着目すると、仮に従来のＳＡＤ演算装置を用いていたとすれば、ＳＡＤ演算毎に書込み処理がなされるので、計２０４８（＝画素数２５６×ＳＡＤ演算回数８）回の書込みが必要であったことになる。しかし本実施形態では、書き込み処理は初回のＳＡＤ演算についての計２５６（＝画素数２５６×ＳＡＤ演算回数１）回だけで足りる。
【００５６】
このように本実施形態では、従来のＳＡＤ演算装置よりも、レジスタへのデータ書込み処理を低減させることができる。その結果、本実施形態では演算処理の高速化、および、ＲＡＭ等へのアクセス回数の減少に伴うバス占有率の低減により、低消費電力化を図ることができる。なおマクロブロック内の画素数や比較対象となるマクロブロックの数がより大きくなれば、双方の書込み回数の差がより顕著になることはいうまでもない。
【００５７】
以上、マクロブロック同士のＳＡＤ演算を具体例に挙げて説明を行ったが、本発明の適用範囲はこれに限定されるものではなく、ＳＡＤ演算処理を行う電子機器に対して広く適用することが可能である。
【００５８】
また、本発明の構成は、上記実施形態のほか、発明の主旨を逸脱しない範囲で種々の変更を加えることが可能である。
【産業上の利用可能性】
【００５９】
本発明は、ＳＡＤ演算処理を行う電子機器、例えば、動画のＭＰＥＧ処理を実行する画像処理装置に関して有用な技術である。
【図面の簡単な説明】
【００６０】
【図１】本発明の一実施形態の構成を示すブロック図である。
【図２】本発明の一実施形態の処理の流れを示すフローチャートである。
【図３】ＳＡＤ演算の対象となる各マクロブロックの説明図である。
【図４】ＲＡＭに格納されている各ＳＡＤ値の内容を示す説明図である。
【図５】従来のＳＡＤ演算装置の構成を示すブロック図である。
【符号の説明】
【００６１】
１、１０１    演算制御装置
２、１０２    ＲＡＭ
１１、１１１    制御部（制御手段、判断手段）
１２            ＡＬＵ
１３、１１３    減算部（減算手段）
１４、１１４    加算部（加算手段）
２１、１２１    参照レジスタ
２２、１２２    比較レジスタ
２３、１２３    結果レジスタ
【図１】
2006352220.tif 000005
【図２】
2006352220.tif 000006
【図３】
2006352220.tif 000007
【図４】
2006352220.tif 000008
【図５】
2006352220.tif 000009