(57)【特許請求の範囲】
【請求項１】
対象画像データの処理モードに応じて演算回路を再構成する単位演算回路が複数個配列されて成る演算処理装置であって、
前記単位演算回路は、
第１入力端子から入力された画像データをクロック信号に同期して取り込む第１レジスタと、
前記処理モードに応じた第１制御信号に従って、第２入力端子から入力された画像データまたは第３入力端子から入力された画像データを選択出力する第１セレクタと、
前記第１レジスタから出力され一端に入力される画像データと、他端に入力される画像データとの加算をとり、第１出力端子に出力する加算器と、
前記第１セレクタから出力される画像データを前記クロック信号に同期して取り込む第２レジスタと、
前記処理モードに応じた第２制御信号に従って、前記第１レジスタから出力される画像データ、前記第２レジスタから出力される画像データ、前記第３入力端子からの画像データ、または固定データを選択出力する第２セレクタと、
前記第２レジスタから出力される画像データを設定されたビット数だけ上位側または下位側にシフトするビットシフタと、
前記ビットシフタから出力される画像データと前記第２セレクタから出力される画像または固定データとの差分をとり、第２出力端子に出力する減算器と、
前記減算器から出力される差分データの絶対値をとる絶対値演算器と、
前記処理モードに応じた第３制御信号に従って、前記第２レジスタから出力される画像データ、前記減算器から出力される差分データ、または前記絶対値演算器から出力される絶対値データを選択し、前記加算器の他端に出力する第３セレクタとを備え、
前記複数の単位演算回路のうちの幾つかが組み合わされた演算処理ブロック毎に、前記処理モードに応じて異なる演算処理機能を実行することを特徴とする演算処理装置。
【請求項２】
前記対象画像データの処理モードは、静止画の符号化に主眼を置いた符号化処理モードであり、前記演算処理ブロックのそれぞれは、分布演算法を用いた離散コサイン変換処理の部分機能、およびデジタルフィルタ処理機能を実行する請求項１記載の演算処理装置。
【請求項３】
前記離散コサイン変換処理機能を実行する演算処理ブロックは、バタフライ演算回路を構成する請求項２記載の演算処理装置。
【請求項４】
前記対象画像データの処理モードは、動画像フレーム間の相関を用いた符号化に主眼を置いた符号化処理モードであり、前記演算処理ブロックのそれぞれは、動き補償フレーム間予測符号化処理における動き推定処理機能、分布演算法を用いた離散コサイン変換処理の部分機能、およびデジタルフィルタ処理機能を実行する請求項１記載の演算処理装置。
【請求項５】
前記離散コサイン変換処理の部分機能を実行する演算処理ブロックは、バタフライ演算回路を構成し、前記動き推定処理機能を実行する演算処理ブロックは、差分絶対値の総和をとる演算回路を構成する請求項４記載の演算処理装置。
【請求項６】
前記第１セレクタは、前記第２入力端子からの下位ビットの画像データを選択し、前記第２セレクタは、前記第１レジスタからの上位ビットの画像データを選択し、前記第３セレクタは、前記第２レジスタからの画像データを選択し、前記ビットシフタは０ビットシフトのスルー画像データを出力することにより、前記離散コサイン変換処理に対応した前記単位演算回路が再構成される請求項２から５のいずれか一項記載の演算処理装置。
【請求項７】
前記第１セレクタは、前記第２入力端子からの比較対象の画像データを選択し、前記第２
セレクタは、前記第３入力端子からの参照用の画像データを選択し、前記第３セレクタは、前記絶対値演算器からの絶対値データを選択し、前記ビットシフタは０ビットシフトのスルー画像データを出力することにより、前記動き推定処理に対応した前記単位演算回路が再構成される請求項４または５記載の演算処理装置。
【請求項８】
前記動き推定処理機能を実行する演算処理ブロックは、動き推定を行う画素数に応じた個数の前記単位演算回路が行列状に配列されて成り、参照用の画像データが列方向の位置をずらしながら入力される請求項４、５または７記載の演算処理装置。
【請求項９】
前記動き推定を行う画素数に応じた個数の前記単位演算回路が行列状に配列されて成る前記演算処理ブロックが行方向で並列配置され、行方向で１画素ずつずらした前記参照用の画像データが、並列配置されたそれぞれの前記演算処理ブロックに入力される請求項８記載の演算処理装置。
【請求項１０】
前記動き推定処理機能を実行する演算処理ブロックは、列方向の画素数に応じた個数の前記単位演算回路を、前記参照用の画像データを構成する参照用の画素データが入力される前記第３入力端子を共通に接続し、ある単位演算回路の前記第１出力端子を列方向で次の単位演算回路の前記第１入力端子に接続することにより、列方向の画素数に応じた個数の前記単位演算回路を列方向に接続して成るモジュールを行方向で並列配置したものである請求項８または９記載の演算処理装置。
【請求項１１】
前記デジタルフィルタ処理機能を実行する演算処理ブロックは、クロック信号に同期して、当該演算処理ブロックに入力される画像データに２のｎ（ｎは整数）乗の係数を乗算するため、ｎの符号が正の場合は上位ビット側に、ｎの符号が負の場合は下位ビット側にｎの絶対値のビットだけシフトして、順次加算する演算回路を構成する請求項１から１０のいずれか一項記載の演算処理装置。
【請求項１２】
前記デジタルフィルタ処理機能を実行する演算処理ブロックは、
前記第１セレクタにより前記第３入力端子からの画像データが選択され、前記第２セレクタにより前記固定データが選択され、前記第３セレクタにより前記減算器からの画像データが選択される前記単位演算回路を、画像データが入力される前記第３入力端子を共通に接続し、ある単位演算回路の前記第１出力端子を列方向で次の単位演算回路の前記第１入力端子に接続することにより、タップ数に応じた個数だけ列方向に接続して成るモジュールを行方向で並列配置し、並列配置された前記モジュールからの各出力データを、別の単位演算回路内の前記第１および第２レジスタを介して前記加算器により加算し、加算された画像データに対してさらに別の単位演算回路内の前記第２レジスタおよび前記ビットシフタを介してディジタルフィルタ処理を行う請求項１０記載の演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置に係わり、特に動画データの符号化規格であるＭＰＥＧ（Moving Picture Experts Group）と静止画データの符号化規格であるＪＰＥＧ（Joint Photographic Experts Group）の両方に対応したエンコーダに構成される、動き推定（Motion Estimation：以下ＭＥと略称する）回路、離散コサイン変換（Discrete Cosine Transform：以下ＤＣＴと略称する）回路、ディジタルフィルタ等を構成する演算処理装置に関する。
【背景技術】
【０００２】
例えば、動画像を撮影する機能を有する従来のディジタルスチルカメラ（以下、ＤＳＣと略称する）には、ＭＰＥＧとＪＰＥＧの両規格に対応したエンコーダ（以下、ＭＰＥＧ／ＪＰＥＧエンコーダと称する）が塔載されている。
【０００３】
従来のＭＰＥＧ／ＪＰＥＧエンコーダにおいて、ＭＰＥＧ処理には、動画データのフレーム内およびフレーム間の動きベクトルの方向と大きさを検出するために高性能なＭＥ回路が必要で、ＤＣＴ演算に比べてＭＥ演算が支配的となり、メガピクセル級のＪＰＥＧ処理には、ＭＰＥＧ処理におけるＤＣＴ回路よりも高い処理能力を有するＤＣＴ回路が必要で、ＤＣＴ演算が支配的となり、またＭＰＥＧ処理とＪＰＥＧ処理の共通回路としてディジタルフィルタが必要となる。
【０００４】
図１９は、ＭＰＥＧ／ＪＰＥＧエンコーダを有するＤＳＣの一構成例を示すブロック図である。図１９において、１９０１はレンズ等の光学部品からなる光学部で、撮像対象からの光信号は、光学部１９０１を介して、ＣＣＤ等の撮像素子１９０２に入力されて電気信号に変換される。１９０３はアナログ信号処理／タイミング信号発生部であり、タイミング信号発生部（ＴＧ）では、撮像素子１９０２を駆動するタイミング信号を発生し、アナログ信号処理部では、撮像素子１９０２からのアナログ信号に対して、相関二重サンプリング（ＣＤＳ）、自動ゲイン制御（ＡＧＣ）、Ａ／Ｄ変換等の処理を施して、ディジタルの画像データに変換する。このようにして得られた画像データは、メモリコントローラ１９０４を介して、メモリ１９０５に格納される。
【０００５】
メモリ１９０５に格納された画像データは、メモリコントローラ１９０４を介して、ＭＰＥＧ／ＪＰＥＧエンコーダ１９０６に入力される。ＭＰＥＧ／ＪＰＥＧエンコーダ１９０６は、メモリ１９０５に格納された画像データが動画データである場合、時間的相関を利用した動き補償フレーム間予測符号化、空間的相関を利用した直交符号化としての、分布演算（Distributed Arithmetic：以下ＤＡと略称する）法を用いたＤＣＴによる符号化、発生符号量を抑えるために視覚的に影響の少ない高域の係数に符号を割り当てないよう重み付けを行う量子化、および発生頻度（出現確率）の偏りを利用して発生頻度の高い係数ほど短い符号列を割り当てるエントロピー符号化（可変長符号化）としてのハフマン符号化を行うＭＰＥＧ処理回路により、入力された動画データを符号化する。
【０００６】
一方、メモリ１９０５に格納された画像データが静止画データである場合、ＭＰＥＧ／ＪＰＥＧエンコーダ１９０６は、ＤＡ法を用いたＤＣＴによる符号化、量子化、およびハフマン符号化を行うＪＰＥＧ処理回路により、入力された静止画データを符号化する。
【０００７】
ＭＰＥＧ／ＪＰＥＧエンコーダ１９０６からの符号化データは、メモリ１９０５に格納されたり、メモリカードインターフェース（Ｉ／Ｆ）１９０７を介してメモリカード１９０８に記録される。なお、１９０９は、アナログ信号処理／タイミング信号発生部１９０３、ＭＰＥＧ／ＪＰＥＧエンコーダ１９０６、およびメモリカードＩ／Ｆ１９０７の動作を制御するＣＰＵである。
【０００８】
ＭＰＥＧ／ＪＰＥＧエンコーダ１９０６内のＭＰＥＧ処理回路には、上述したように、動き補償フレーム間予測符号化を行うためにＭＥ回路が含まれており、ＭＥ回路は、例えば１６×１６画素のマクロブロック単位で、既に符号化したフレームの中に類似した画像データがないか検索を行う。
【０００９】
このＭＥ回路が、例えば画像サイズが６４０×４８０画素（４０×３０マクロブロック）である１フレーム総当りの検索を行う場合、水平方向は６４０画素、垂直方向は４８０ラインをずらしながら、１６×１６画素の差分絶対値の総和（以下、ＳＡＤ）演算を行うものを想定する。この場合、１回のＳＡＤ演算は１マクロブロック当たり、差分演算が２５６回、総和をとる加算演算が２５６回の計５１２回の加減算処理が必要となり、よって、１フレーム当りでは、５１２×６４０×４８０×４０×３０＝１８８７４３６８００００回となって、約１８８７億回の加減算処理を行うことになる。
【００１０】
さらに、演算処理対象の画像データが、３０フレーム／秒の２／３が双方向予測のＢピクチャであるとすると、ＭＥ回路には、１秒当り１８８７億×３０×５／３＝９４３７１億回、という膨大な演算処理が必要になり、これがＭＰＥＧ処理回路における演算処理量（回路規模、消費電力）を決める要因となる。
【００１１】
また、ＭＰＥＧ／ＪＰＥＧエンコーダ１９０６内のＪＰＥＧ処理回路には、上述したように、空間的な冗長圧縮を行うためのＤＣＴ回路が含まれており、ＤＣＴ回路は、２次元の画素データ（ＹＵＶデータ）を８×８画素単位のブロックに分割して、水平方向および垂直方向に１次元のＤＣＴを行う。
【００１２】
このＤＣＴ回路が、例えば撮像素子として３００万画素クラスのＣＣＤからの画素データに対して、４フレーム／秒の連射モードで演算処理を行わなければならないブロック数は、１秒当り３００万×４／（８×８）≒１８７５００個となる。さらに、予め設定された符号量にするために、量子化マトリックスを調整して、サイドＤＣＴ以降に演算処理をやり直すと、演算処理を行うブロック数は、１８７５００×２＝３７５０００個となる。
【００１３】
ＤＣＴ回路は、ＭＰＥＧ処理回路にも含まれるが、画像サイズが６４０×４８０画素で、３０フレーム／秒であるとしても、このＤＣＴ回路が演算処理を行うブロック数は、１秒当り６４０×４８０×３０／（８×８）≒１４４０００個である。
【００１４】
したがって、ＪＰＥＧ処理回路に含まれるＤＣＴ回路は、ＭＰＥＧ処理回路に含まれるＤＣＴ回路の２．５倍以上の演算処理量が必要となり、これがＪＰＥＧ処理回路における演算処理量（回路規模、消費電力）を決める要因となる。
【特許文献１】特開２００１−８４２４２号公報
【特許文献２】特開平７−２６４５８３号公報
【特許文献３】特開平１０−８３３８８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
上記のように、従来のＭＰＥＧ／ＪＰＥＧエンコーダでは、ＭＰＥＧ処理には高性能なＭＥ回路が必要で、またＪＰＥＧ処理には高い処理能力のＤＣＴ回路が必要であり、両方の回路をＭＰＥＧ処理とＪＰＥＧ処理とで相互に使用することはできず、別個に設けられているため、回路規模が肥大化し、消費電力も増大するという問題があった。
【００１６】
本発明は、かかる問題点に鑑みてなされたものであり、その目的は、必要な処理性能を単純な構成で無駄なく得ることができ、ＤＳＰ（Digital Signal Processor）と比較して処理性能毎の回路規模を小さくでき、低消費電力化を図った演算処理装置を提供することにある。
【課題を解決するための手段】
【００１７】
前記の目的を達成するため、本発明に係る演算処理装置は、対象画像データの処理モードに応じて演算回路を再構成する単位演算回路が複数個配列されて成る演算処理装置であって、単位演算回路は、第１入力端子から入力された画像データをクロック信号に同期して取り込む第１レジスタと、処理モードに応じた第１制御信号に従って、第２入力端子から入力された画像データまたは第３入力端子から入力された画像データを選択出力する第１セレクタと、第１レジスタから出力され一端に入力される画像データと、他端に入力される画像データとの加算をとり、第１出力端子に出力する加算器と、第１セレクタから出力される画像データをクロック信号に同期して取り込む第２レジスタと、処理モードに応じた第２制御信号に従って、第１レジスタから出力される画像データ、第２レジスタから出力される画像データ、第３入力端子からの画像データ、または固定データ（“０”）を選択出力する第２セレクタと、第２レジスタから出力される画像データを設定されたビット数だけ上位側または下位側にシフトするビットシフタと、ビットシフタから出力される画像データと第２セレクタから出力される画像または固定データとの差分をとり、第２出力端子に出力する減算器と、減算器から出力される差分データの絶対値をとる絶対値演算器と、処理モードに応じた第３制御信号に従って、第２レジスタから出力される画像データ、減算器から出力される差分データ、または絶対値演算器から出力される絶対値データを選択し、加算器の他端に出力する第３セレクタとを備え、複数の単位演算回路のうちの幾つかが組み合わされた演算処理ブロック毎に、処理モードに応じて異なる演算処理機能を実行することを特徴とする。
【００１８】
本発明に係る演算処理装置において、入力画像データの処理モードは、静止画の符号化（例えば、ＪＰＥＧ規格に準拠した符号化）に主眼を置いた符号化処理モードであり、演算処理ブロックのそれぞれは、分布演算法を用いた離散コサイン変換処理の部分機能、およびデジタルフィルタ処理機能を実行する。
【００１９】
この場合、離散コサイン変換処理の部分機能を実行する演算処理ブロックは、バタフライ演算回路を構成する。
【００２０】
また、本発明に係る演算処理装置において、入力画像データの処理モードは、動画像フレーム間の相関を用いた符号化（例えば、ＭＰＥＧ規格に準拠した符号化）に主眼を置いた符号化処理モードであり、演算処理ブロックのそれぞれは、動き補償フレーム間予測符号化処理における動き推定処理機能、分布演算法を用いた離散コサイン変換処理の部分機能、およびデジタルフィルタ処理機能を実行する。
【００２１】
この場合、離散コサイン変換処理の部分機能を実行する演算処理ブロックは、バタフライ演算回路を構成し、動き推定処理機能を実行する演算処理ブロックは、差分絶対値の総和をとる演算回路を構成する。
【００２２】
また、第１セレクタは、第２入力端子からの下位ビットの画像データを選択し、第２セレクタは、第１レジスタからの上位ビットの画像データを選択し、第３セレクタは、第２レジスタからの画像データを選択し、ビットシフタは０ビットシフトのスルー画像データを出力することにより、離散コサイン変換処理に対応した単位演算回路が再構成される。
【００２３】
また、第１セレクタは、第２入力端子からの比較対象の画像データを選択し、第２セレクタは、第３入力端子からの参照用の画像データを選択し、第３セレクタは、絶対値演算器からの絶対値データを選択し、ビットシフタは０ビットシフトのスルー画像データを出力することにより、動き推定処理に対応した単位演算回路が再構成される。
【００２４】
また、動き推定処理の部分機能を実行する演算処理ブロックは、動き推定を行う画素数に応じた個数の単位演算回路が行列状に配列されて成り、参照用の画像データが列方向の位置をずらしながら入力される。
【００２５】
また、動き推定を行う画素数に応じた個数の単位演算回路が行列状に配列されて成る演算処理ブロックが行方向で並列配置され、行方向で１画素ずつずらした参照用の画像データが、並列配置されたそれぞれの演算処理ブロックに入力されることが好ましい。
【００２６】
また、動き推定処理機能を実行する演算処理ブロックは、列方向の画素数に応じた個数の単位演算回路を、参照用の画像データを構成する参照用の画素データが入力される第３入力端子を共通に接続し、ある単位演算回路の第１出力端子を列方向で次の単位演算回路の第１入力端子に接続することにより、列方向の画素数に応じた個数の前記単位演算回路を列方向に接続して成るモジュールを行方向で並列配置したものである。
また、デジタルフィルタ処理機能を実行する演算処理ブロックは、クロック信号に同期して、当該演算処理ブロックに入力される画像データに２のｎ（ｎは整数）乗の係数を乗算するため、ｎの符号が正の場合は上位ビット側に、ｎの符号が負の場合は下位ビット側にｎの絶対値のビットだけシフトして、順次加算する演算回路を構成する。
【００２７】
この場合、デジタルフィルタ処理機能を実行する演算処理ブロックは、第１セレクタにより第３入力端子からの画像データが選択され、第２セレクタにより固定データが選択され、第３セレクタにより減算器からの画像データが選択される単位演算回路を、画像データが入力される第３入力端子を共通に接続し、ある単位演算回路の第１出力端子を列方向で次の単位演算回路の第１入力端子に接続することにより、タップ数に応じた個数だけ列方向に接続して成るモジュールを行方向で並列配置し、並列配置されたモジュールからの各出力データを、別の単位演算回路内の第１および第２レジスタを介して加算器により加算し、加算された画像データに対してさらに別の単位演算回路内の第２レジスタおよびビットシフタを介してディジタルフィルタ処理を行う。
【発明の効果】
【００２８】
本発明の演算処理装置によれば、必要な処理性能を単純な構成で無駄なく得ることができ、ＤＳＰと比較して処理性能毎の回路規模を小さくでき、低消費電力化を図ることが可能となる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の好適な実施形態について、図面を参照しながら説明する。なお、本実施形態の演算処理装置は、背景技術において図１９を参照して説明したＤＳＣのＭＰＥＧ／ＪＰＥＧエンコーダに適用される。
【００３０】
図１は、本発明の一実施形態に係る演算処理装置における単位演算回路の構成例を示す回路ブロック図である。図１において、単位演算回路は、第１入力端子１１と、第２入力端子１２と、第３入力端子１３と、クロック信号（ＣＬＫ）入力端子１４と、制御信号（ＣＯＮＴ）入力端子１５と、第１レジスタ１６と、第２レジスタ１７と、第１セレクタ１８と、第２セレクタ１９と、第３セレクタ２０と、ビットシフタ２１と、減算器２２と、加算器２３と、絶対値演算器２４と、第１出力端子２５と、第２出力端子２６とで構成される。
【００３１】
第１レジスタ１６は、第１入力端子１１から入力された画像データをクロック信号ＣＬＫに同期して取り込む。第１セレクタ１８は、ＭＰＥＧまたはＪＰＥＧ規格に準拠した処理モードに応じた第１制御信号（ＣＯＮＴ１）に従って、第２入力端子１２から入力された画像データまたは第３入力端子１３から入力された画像データを選択出力する。
【００３２】
第２レジスタ１７は、第１セレクタ１８から出力される画像データをクロック信号ＣＬＫに同期して取り込む。第２セレクタ１９は、ＭＰＥＧまたはＪＰＥＧ規格に準拠した処理モードに応じた第２制御信号ＣＯＮＴ２に従って、第１レジスタ１６から出力される画像データ、第２レジスタ１７から出力される画像データ、第３入力端子１３からの画像データ、または固定データである“０”を選択出力する。
【００３３】
ビットシフタ２１は、第２レジスタ１７から出力される画像データを設定されたビット数だけ上位側または下位側にシフトする。減算器２２は、ビットシフタ２１から出力される画像データと第２セレクタ１９から出力される画像または固定データとの差分をとり、第２出力端子２６に出力する。
【００３４】
絶対値演算器２４は、減算器２２から出力される差分データの絶対値をとる。第３セレクタ２０は、ＭＰＥＧまたはＪＰＥＧ規格に準拠した処理モードに応じた第３制御信号ＣＯＮＴ３に従って、第２レジスタ１７から出力される画像データ、減算器２２から出力される差分データ、または絶対値演算器２４から出力される絶対値データを選択出力する。加算器２３は、第１レジスタ１６から出力される画像データと第３セレクタ２０から出力される画像データとの加算をとり、第１出力端子２５に出力する。
【００３５】
上記のように、単位演算回路は、対象画像データが静止画データである場合は、ＪＰＥＧ処理モードに応じて、また対象画像データが動画データである場合は、ＭＰＥＧ処理モードに応じて、第１セレクタ１８、第２セレクタ１９、および第３セレクタ２０により演算経路を切り換える。これにより、単位演算回路は、ＪＰＥＧ処理に必要である、ＤＡ法を用いたＤＣＴ回路に含まれるバタフライ演算回路の一部、およびデジタルフィルタの一部を構成したり、ＭＰＥＧ処理に必要である、ＭＥ回路を構成するＳＡＤ演算回路の一部、ＤＡ法を用いたＤＣＴ回路に含まれるバタフライ演算回路の一部、およびデジタルフィルタの一部を構成する。
【００３６】
図２Ａは、バタフライ演算回路の一部を構成する単位演算回路における第１セレクタ１８、第２セレクタ１９、第３セレクタ２０による演算経路の切り換えの様子を示す回路ブロック図で、図２Ｂは、図２Ａの構成を簡略化して示した図である。図２Ａにおいて、バタフライ演算回路の構成時には、第１セレクタ１８は、第２入力端子１２からの下位ビットの画像データを選択し、第２セレクタ１９は、第１レジスタ１６からの上位ビットの画像データを選択し、第３セレクタ２０は、第２レジスタ１７からの画像データを選択し、ビットシフタ２１は０ビットシフト（「＜＜０」で表す）の（ビットシフトしない）スルー画像データを出力する。
【００３７】
図３Ａは、ＳＡＤ演算回路の一部を構成する単位演算回路における第１セレクタ１８、第２セレクタ１９、第３セレクタ２０による演算経路の切り換えの様子を示す回路ブロック図で、図３Ｂは、図３Ａの構成を簡略化して示した図である。図３Ａにおいて、ＳＡＤ演算回路の構成時には、第１セレクタ１８は、第２入力端子１２からの比較対象の画像データを選択し、第２セレクタ１９は、第３入力端子１３からの参照用の画像データを選択し、第３セレクタ２０は、絶対値演算器２４からの絶対値データを選択し、ビットシフタ２１は０ビットシフト（「＜＜０」で表す）の（ビットシフトしない）スルー画像データを出力する。
【００３８】
図４Ａは、ディジタルフィルタの一部を構成する単位演算回路における第１セレクタ１８、第２セレクタ１９、第３セレクタ２０による演算経路の切り換えの様子を示す回路ブロック図で、図４Ｂは、図４Ａの構成を簡略化して示した図である。図４Ａにおいて、ディジタルフィルタの構成時には、第１セレクタ１８は、第３入力端子１３からの画像データを選択し、第２セレクタ１９は、固定データである“０”を選択し、第３セレクタ２０は、減算器２２からの差分データを選択する。
【００３９】
本実施形態の演算処理装置は、対象画像データの処理モードに応じて演算回路を再構成する単位演算回路が複数個行列状に配列されて構成され、複数の単位演算回路のうちの幾つかが組み合わされた演算処理ブロック毎に、処理モードに応じて異なる演算処理機能を実行する。
【００４０】
図５Ａおよび図５Ｂは、それぞれ、ＪＰＥＧ処理時およびＭＰＥＧ処理時における演算処理ブロックの構成例を示す模式図である。
【００４１】
図５Ａにおいて、ＪＰＥＧ処理時には、演算処理装置は、ＤＣＴ回路用の演算処理ブロック５１Ａと、ディジタルフィルタ用の演算処理ブロック５２Ａとで構成され、ＤＣＴ回路用の演算処理ブロック５１Ａに単位演算回路の大部分が割り当てられる。ＤＣＴ回路用の演算処理ブロック５１Ａは、バタフライ演算回路を構成する。
【００４２】
まず、ＤＣＴ回路用の演算処理ブロック５１Ａによるバタフライ演算回路の構成について説明する。
【００４３】
図６Ａは、８ビットのバタフライ演算回路を４個の単位演算回路で構成した場合の例を示す回路接続図で、図６Ｂは、図６Ａの構成を簡略化して示した図である。図６Ａにおいて、図２Ｂに示すように再構成された、第１単位演算回路６１、第２単位演算回路６２、第３単位演算回路６３、および第４単位演算回路６４には、ＤＡ法を用いたＤＣＴ回路の一部を構成する分布演算回路（不図示）からの入力ベクトルを構成する８個の要素Ｘｉ（ｉ＝０、１、…、７）が入力され、中間ベクトルを構成する８個の要素Ａｉ（ｉ＝０、１、…、７）が出力される。
【００４４】
図６Ａおよび図６Ｂから分かるように、入力ベクトルに対する中間ベクトルのバタフライ演算式は、以下のように表される。
【００４５】
Ａ０＝Ｘ０＋Ｘ７，Ａ４＝Ｘ０−Ｘ７
Ａ１＝Ｘ１＋Ｘ６，Ａ５＝Ｘ１−Ｘ６
Ａ２＝Ｘ２＋Ｘ５，Ａ６＝Ｘ２−Ｘ５
Ａ３＝Ｘ３＋Ｘ４，Ａ７＝Ｘ３−Ｘ４
なお、本実施形態では詳細に説明しないが、８行８列の離散コサイン行列と、８個の要素Ａｉ（ｉ＝０、１、…、７）で構成された中間ベクトルとの乗算により、１次元ＤＣＴ結果の一部を構成する８個の要素が得られる。
【００４６】
次に、図５Ａに示すディジタルフィルタ用の演算処理ブロック５２Ａによるデジタルフィルタの構成について説明する。
【００４７】
図７は、４タップのディジタルフィルタを、４個の単位演算回路からなる第１モジュール７１と、４個の単位演算回路からなる第２モジュール７２とで構成した場合の例を示す回路接続図である。第１モジュール７１および第２モジュール７２は、同じ構成を有し、画像データ（Ｄａｔａ  ｉｎ）が入力される第３入力端子を共通に接続し、ある単位演算回路の第１出力端子を列方向で次の単位演算回路の第１入力端子に接続することにより、タップ数に応じた４個だけ単位演算回路を列方向に接続して構成される。各単位演算回路は、図４Ｂに示したように再構成される。
【００４８】
第１モジュール７１および第２モジュール７２は並列配置されて、並列配置された各モジュールからの各出力データは、別の単位演算回路内の第１レジスタ７３および第２レジスタ７４を介して加算器７５により加算され、加算された画像データに対してさらに別の単位演算回路内の第２レジスタ７６ビットシフタを介してディジタルフィルタ処理が施された画像データ（Ｄａｔａ  ｏｕｔ）が出力される。図８は、図７の接続関係および構成を詳細に示す図である。なお、図８において、ＣＳは、単位演算回路の外部配線同士を接続するクロスバースイッチを示している。
【００４９】
図７および図８に示す４タップのデジタルフィルタは、クロック信号に同期して、入力画像データに２のｎ（ｎは整数）乗のフィルタ係数を乗算するため、ｎの符号が正の場合は上位ビット側に、ｎの符号が負の場合は下位ビット側にｎの絶対値のビットだけシフトして、順次加算していく構成をとる。
【００５０】
次に、ディジタルフィルタの動作について具体例を挙げて説明する。
【００５１】
図９は、隣接４画素に対してそれぞれ１／８、１／４（＝２／８）、１／２（＝４／８）、１／８のフィルタ係数を乗算して、４画素の加算を行うディジタルフィルタの構成を示す回路接続図である。図９において、ビットシフタ２１−１１、２１−１２、２１−１４、２１−２１、２１−２２、２１−２４には「０」が設定され、スルー状態となり、第２レジスタ１７−１１、１７−１２、１７−１４、１７−２１、１７−２２、１７−２４からの画像データに係数として「１（＝２0）」が乗算される。
【００５２】
また、ビットシフタ２１−１３、２１−２３には「＋１」が設定され、上位ビット側への１ビットシフトが行われ（「＜＜１」で表す）、第２レジスタ１７−１３、１７−２３からの画像データに係数として「２（＝２1）」が乗算される。
【００５３】
また、第２モジュール７２内の第２セレクタ２１−２１、２１−２４は、それぞれ、第２レジスタ１７−２１、１７−２４からの画像データを選択するように接続を切り換える。さらに、ビットシフタ７７には「−３」が設定され、下位ビット側への３ビットシフトが行われ（「＞＞３」で表す）、加算器７６からの画像データに係数として「１／８（＝２-3）」が乗算される。
【００５４】
図１０は、図９における各レジスタの出力データ（Ｒｅｇ）とビットシフタ７７の出力データ（Ｄａｔａ  ｏｕｔ）のクロック信号ＣＬＫに同期した変化を示す図である。なお、図１０において、ＣＬＫ０、ＣＬＫ１、ＣＬＫ２、…、ＣＬＫ５は、クロック信号ＣＬＫの立ち上がり時点を示し、ＣＬＫ０を基準としてＣＬＫ１は１クロック周期後のＣＬＫの立ち上がり時点を、ＣＬＫ２は２クロック周期後のＣＬＫの立ち上がり時点を、ＣＬＫ５は５クロック周期後のＣＬＫの立ち上がり時点を示している。また、例えばＲｅｇ１６−１２は、第１レジスタ１６−１２からの出力データを示している。また、ｄ０、ｄ１、…、ｄ４は画素データを示している。
【００５５】
図１０に示すように、最終の出力データＤａｔａ  ｏｕｔは、ＣＬＫ４の時点では、ｄ０／８＋ｄ１／４＋ｄ２／２＋ｄ３／８となり、ＣＬＫ５の時点では、ｄ１／８＋ｄ２／４＋ｄ３／２＋ｄ４／８となって、隣接４画素に対してそれぞれ１／８、１／４、１／２、１／８のフィルタ係数が乗算されて、隣接４画素が加算されて、ディジタルフィルタ処理が行われている。
【００５６】
次に、図５Ｂに戻って、ＭＰＥＧ処理時における演算処理ブロックの構成について説明する。
【００５７】
図５Ｂにおいて、ＭＰＥＧ処理時には、演算処理装置は、ＤＣＴ回路用の演算処理ブロック５１Ｂと、ＭＥ回路用の演算処理ブロック５３と、ディジタルフィルタ用の演算処理ブロック５２Ｂとで構成され、ＭＥ回路用の演算処理ブロック５３に単位演算回路の多くが割り当てられる。
【００５８】
なお、ＤＣＴ回路用の演算処理ブロック５１Ｂにより構成されるバタフライ演算回路については、処理能力に応じて割り当てられる単位演算回路の個数が異なるだけで、ＪＰＥＧ処理時におけるＤＣＴ回路用の演算処理ブロック５１Ａにより構成されるバタフライ演算回路とその構成および機能は同じであるので説明を省略する。また、ディジタルフィルタ用の演算処理ブロック５２Ｂについては、ＪＰＥＧ処理時におけるディジタルフィルタ用の演算処理ブロック５２Ａとその構成および機能は同じであるので、やはり説明を省略する。
【００５９】
ＭＥ回路用の演算処理ブロック５３は、ＳＡＤ演算回路を構成する。以下では、ＭＥ回路用の演算処理ブロック５３によるＳＡＤ演算回路について説明する。
【００６０】
図１１は、４個の単位演算回路が列方向に接続されて成る第１モジュール１１０１と、それぞれ第１モジュール１１０１と同じ構成を有する、第２モジュール１１０２と、第３モジュール１１０３と、第４モジュール１１０４とを行方向に並列配置することで、４画素×４ラインからなるＭＥ基本単位を構成した場合の例を示す回路接続図である。なお、図１１には、第２モジュール１１０２、第３モジュール１１０３、および第４モジュール１１０４の内部構成は、第１モジュール１１０１と同じであるため図示していない。
【００６１】
図１１において、第１モジュール１１０１、第２モジュール１１０２、第３モジュール１１０３、および第４モジュール１１０４は、それぞれ、参照用の画像データＲｅｆ．Ｄａｔａ  ｉｎ０、Ｒｅｆ．Ｄａｔａ  ｉｎ１、Ｒｅｆ．Ｄａｔａ  ｉｎ２、Ｒｅｆ．Ｄａｔａ  ｉｎ３を構成する参照用の画素データが、参照用画像メモリ（不図示）から垂直方向に位置をずらしながら読み出されて入力される第３入力端子を共通に接続し、ある単位演算回路の第１出力端子を列方向で次の単位演算回路の第１入力端子に接続することにより、４個の単位演算回路を列方向に接続して構成される。各単位演算回路は、図３Ｂに示したように再構成される。なお、図示はしていないが、各モジュールの第２レジスタには、第２入力端子から入力された比較対照の画素データが格納される。
【００６２】
次に、図１２を参照して、図１１の回路動作について説明する。
【００６３】
図１２において、第１モジュール１１０１の第２レジスタには、それぞれ、第１行第１列の比較対象の画素データであるＲｅｇ＿ｙ０ｘ０が、第２行第１列の比較対象の画素データであるＲｅｇ＿ｙ１ｘ０が、第３行第１列の比較対象の画素データであるＲｅｇ＿ｙ２ｘ０が、第４行第１列の比較対象の画素データであるＲｅｇ＿ｙ３ｘ０が格納されている。また、第１モジュール１１０１において、Ｒｅｇ０＿０、Ｒｅｇ０＿１、Ｒｅｇ０＿２、Ｒｅｇ０＿３は、各第１レジスタからの出力データを示す。
【００６４】
同様に、第２モジュール１１０２の第２レジスタには、それぞれ、第１行第２列の比較対象の画素データであるＲｅｇ＿ｙ０ｘ１が、第２行第２列の比較対象の画素データであるＲｅｇ＿ｙ１ｘ１が、第３行第２列の比較対象の画素データであるＲｅｇ＿ｙ２ｘ１が、第４行第２列の比較対象の画素データであるＲｅｇ＿ｙ３ｘ１が格納されている。また、第２モジュール１１０２において、Ｒｅｇ１＿０、Ｒｅｇ１＿１、Ｒｅｇ１＿２、Ｒｅｇ１＿３は、各第１レジスタ（不図示）からの出力データを示す。
【００６５】
同様に、第３モジュール１１０３の第２レジスタには、それぞれ、第１行第３列の比較対象の画素データであるＲｅｇ＿ｙ０ｘ２が、第２行第３列の比較対象の画素データであるＲｅｇ＿ｙ１ｘ２が、第３行第３列の比較対象の画素データであるＲｅｇ＿ｙ２ｘ２が、第４行第３列の比較対象の画素データであるＲｅｇ＿ｙ３ｘ２が格納されている。また、第３モジュール１１０３において、Ｒｅｇ２＿０、Ｒｅｇ２＿１、Ｒｅｇ２＿２、Ｒｅｇ２＿３は、各第１レジスタ（不図示）からの出力データを示す。
【００６６】
同様に、第４モジュール１１０４の第２レジスタには、それぞれ、第１行第４列の比較対象の画素データであるＲｅｇ＿ｙ０ｘ３が、第２行第４列の比較対象の画素データであるＲｅｇ＿ｙ１ｘ３が、第３行第４列の比較対象の画素データであるＲｅｇ＿ｙ２ｘ３が、第４行第４列の比較対象の画素データであるＲｅｇ＿ｙ３ｘ３が格納されている。また、第４モジュール１１０４において、Ｒｅｇ３＿０、Ｒｅｇ３＿１、Ｒｅｇ３＿２、Ｒｅｇ３＿３は、各第１レジスタ（不図示）からの出力データを示す。
【００６７】
第１モジュール１１０１から出力される第１列４ラインの差分絶対値和データであるＲｅｇ０＿３と、第２モジュール１１０２から出力される第２列４ラインの差分絶対値和データであるＲｅｇ１＿３と、第３モジュール１１０３から出力される第３列４ラインの差分絶対値和データであるＲｅｇ２＿３と、第４モジュール１１０４から出力される第４列４ラインの差分絶対値和データであるＲｅｇ３＿３は、加算器１２０１に入力されて、４画素×４ラインの差分絶対値の総和（ＳＡＤ  ｏｕｔ）がとられる。この差分絶対値の総和である画像比較評価値が小さいほど、比較対象画素と参照用画素とが類似していることを示す。
【００６８】
図１３は、４画素×４ラインの比較対象画素の配置をレジスタで代表させて表し、参照用画像メモリから、垂直方向に位置をずらしながら探索したい範囲内の参照用の画素データを読み出して探索を行う様子を示す模式図である。
【００６９】
図１４Ａは、図１０と同様に、図１２に示す第１モジュール１１０１内の各第１レジスタの出力データＲｅｇ０＿０、Ｒｅｇ０＿１、Ｒｅｇ０＿２、Ｒｅｇ０＿３のクロック信号ＣＬＫに同期した変化を示す図である。図１４Ａにおいて、各第１レジスタの出力データにおける記号ＳＡＤａｂｃは、「ａ」を行（ライン）番号（垂直方向位置）、「ｂ」を列（モジュール）番号（水平方向位置）、「ｃ」を差分絶対値演算のクロック信号立ち上がり時点、参照用の画素データをＲｅｆ＿ｙａｘｂとして、以下のように表される。
【００７０】
ＳＡＤ０００＝（Ｒｅｇ＿ｙ０ｘ０）−（Ｒｅｆ＿ｙ０ｘ０）
ＳＡＤ１０１＝（Ｒｅｇ＿ｙ１ｘ０）−（Ｒｅｆ＿ｙ１ｘ０）
ＳＡＤ２０２＝（Ｒｅｇ＿ｙ２ｘ０）−（Ｒｅｆ＿ｙ２ｘ０）
ＳＡＤ３０３＝（Ｒｅｇ＿ｙ３ｘ０）−（Ｒｅｆ＿ｙ３ｘ０）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
ＳＡＤ００１＝（Ｒｅｇ＿ｙ０ｘ０）−（Ｒｅｆ＿ｙ１ｘ０）
ＳＡＤ１０２＝（Ｒｅｇ＿ｙ１ｘ０）−（Ｒｅｆ＿ｙ２ｘ０）
ＳＡＤ２０３＝（Ｒｅｇ＿ｙ２ｘ０）−（Ｒｅｆ＿ｙ３ｘ０）
ＳＡＤ３０４＝（Ｒｅｇ＿ｙ３ｘ０）−（Ｒｅｆ＿ｙ４ｘ０）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
ＳＡＤ００２＝（Ｒｅｇ＿ｙ０ｘ０）−（Ｒｅｆ＿ｙ２ｘ０）
ＳＡＤ１０３＝（Ｒｅｇ＿ｙ１ｘ０）−（Ｒｅｆ＿ｙ３ｘ０）
ＳＡＤ２０４＝（Ｒｅｇ＿ｙ２ｘ０）−（Ｒｅｆ＿ｙ４ｘ０）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
ＳＡＤ００３＝（Ｒｅｇ＿ｙ０ｘ０）−（Ｒｅｆ＿ｙ３ｘ０）
ＳＡＤ１０４＝（Ｒｅｇ＿ｙ１ｘ０）−（Ｒｅｆ＿ｙ４ｘ０）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
ＳＡＤ００４＝（Ｒｅｇ＿ｙ０ｘ０）−（Ｒｅｆ＿ｙ４ｘ０）
また、図１４Ｂは、図１２に示す第２モジュール１１０２内の各第１レジスタの出力データＲｅｇ１＿０、Ｒｅｇ１＿１、Ｒｅｇ１＿２、Ｒｅｇ１＿３のクロック信号ＣＬＫに同期した変化を示す図である。図１４Ｂにおいて、各第１レジスタの出力データにおける記号ＳＡＤａｂｃは、図１４Ａと同様に、以下のように表される。
【００７１】
ＳＡＤ０１０＝（Ｒｅｇ＿ｙ０ｘ１）−（Ｒｅｆ＿ｙ０ｘ１）
ＳＡＤ１１１＝（Ｒｅｇ＿ｙ１ｘ１）−（Ｒｅｆ＿ｙ１ｘ１）
ＳＡＤ２１２＝（Ｒｅｇ＿ｙ２ｘ１）−（Ｒｅｆ＿ｙ２ｘ１）
ＳＡＤ３１３＝（Ｒｅｇ＿ｙ３ｘ１）−（Ｒｅｆ＿ｙ３ｘ１）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
ＳＡＤ０１１＝（Ｒｅｇ＿ｙ０ｘ１）−（Ｒｅｆ＿ｙ１ｘ１）
ＳＡＤ１１２＝（Ｒｅｇ＿ｙ１ｘ１）−（Ｒｅｆ＿ｙ２ｘ１）
ＳＡＤ２１３＝（Ｒｅｇ＿ｙ２ｘ１）−（Ｒｅｆ＿ｙ３ｘ１）
ＳＡＤ３１４＝（Ｒｅｇ＿ｙ３ｘ１）−（Ｒｅｆ＿ｙ４ｘ１）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
ＳＡＤ０１２＝（Ｒｅｇ＿ｙ０ｘ１）−（Ｒｅｆ＿ｙ２ｘ１）
ＳＡＤ１１３＝（Ｒｅｇ＿ｙ１ｘ１）−（Ｒｅｆ＿ｙ３ｘ１）
ＳＡＤ２１４＝（Ｒｅｇ＿ｙ２ｘ１）−（Ｒｅｆ＿ｙ４ｘ１）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
ＳＡＤ０１３＝（Ｒｅｇ＿ｙ０ｘ１）−（Ｒｅｆ＿ｙ３ｘ１）
ＳＡＤ１１４＝（Ｒｅｇ＿ｙ１ｘ１）−（Ｒｅｆ＿ｙ４ｘ１）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
ＳＡＤ０１４＝（Ｒｅｇ＿ｙ０ｘ１）−（Ｒｅｆ＿ｙ４ｘ１）
また、図１４Ｃは、図１２に示す第３モジュール１１０３内の各第１レジスタの出力データＲｅｇ２＿０、Ｒｅｇ２＿１、Ｒｅｇ２＿２、Ｒｅｇ２＿３のクロック信号ＣＬＫに同期した変化を示す図である。図１４Ｃにおいて、各第１レジスタの出力データにおける記号ＳＡＤａｂｃは、図１４Ａと同様に、以下のように表される。
【００７２】
ＳＡＤ０２０＝（Ｒｅｇ＿ｙ０ｘ２）−（Ｒｅｆ＿ｙ０ｘ２）
ＳＡＤ１２１＝（Ｒｅｇ＿ｙ１ｘ２）−（Ｒｅｆ＿ｙ１ｘ２）
ＳＡＤ２２２＝（Ｒｅｇ＿ｙ２ｘ２）−（Ｒｅｆ＿ｙ２ｘ２）
ＳＡＤ３２３＝（Ｒｅｇ＿ｙ３ｘ２）−（Ｒｅｆ＿ｙ３ｘ２）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
ＳＡＤ０２１＝（Ｒｅｇ＿ｙ０ｘ２）−（Ｒｅｆ＿ｙ１ｘ２）
ＳＡＤ１２２＝（Ｒｅｇ＿ｙ１ｘ２）−（Ｒｅｆ＿ｙ２ｘ２）
ＳＡＤ２２３＝（Ｒｅｇ＿ｙ２ｘ２）−（Ｒｅｆ＿ｙ３ｘ２）
ＳＡＤ３２４＝（Ｒｅｇ＿ｙ３ｘ２）−（Ｒｅｆ＿ｙ４ｘ２）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
ＳＡＤ０２２＝（Ｒｅｇ＿ｙ０ｘ２）−（Ｒｅｆ＿ｙ２ｘ２）
ＳＡＤ１２３＝（Ｒｅｇ＿ｙ１ｘ２）−（Ｒｅｆ＿ｙ３ｘ２）
ＳＡＤ２２４＝（Ｒｅｇ＿ｙ２ｘ２）−（Ｒｅｆ＿ｙ４ｘ２）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
ＳＡＤ０２３＝（Ｒｅｇ＿ｙ０ｘ２）−（Ｒｅｆ＿ｙ３ｘ２）
ＳＡＤ１２４＝（Ｒｅｇ＿ｙ１ｘ２）−（Ｒｅｆ＿ｙ４ｘ２）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
ＳＡＤ０２４＝（Ｒｅｇ＿ｙ０ｘ２）−（Ｒｅｆ＿ｙ４ｘ２）
また、図１４Ｄは、図１２に示す第４モジュール１１０４内の各第１レジスタの出力データＲｅｇ３＿０、Ｒｅｇ３＿１、Ｒｅｇ３＿２、Ｒｅｇ３＿３のクロック信号ＣＬＫに同期した変化を示す図である。図１４Ｄにおいて、各第１レジスタの出力データにおける記号ＳＡＤａｂｃは、図１４Ａと同様に、以下のように表される。
【００７３】
ＳＡＤ０３０＝（Ｒｅｇ＿ｙ０ｘ３）−（Ｒｅｆ＿ｙ０ｘ３）
ＳＡＤ１３１＝（Ｒｅｇ＿ｙ１ｘ３）−（Ｒｅｆ＿ｙ１ｘ３）
ＳＡＤ２３２＝（Ｒｅｇ＿ｙ２ｘ３）−（Ｒｅｆ＿ｙ２ｘ３）
ＳＡＤ３３３＝（Ｒｅｇ＿ｙ３ｘ３）−（Ｒｅｆ＿ｙ３ｘ３）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
ＳＡＤ０３１＝（Ｒｅｇ＿ｙ０ｘ３）−（Ｒｅｆ＿ｙ１ｘ３）
ＳＡＤ１３２＝（Ｒｅｇ＿ｙ１ｘ３）−（Ｒｅｆ＿ｙ２ｘ３）
ＳＡＤ２３３＝（Ｒｅｇ＿ｙ２ｘ３）−（Ｒｅｆ＿ｙ３ｘ３）
ＳＡＤ３３４＝（Ｒｅｇ＿ｙ３ｘ３）−（Ｒｅｆ＿ｙ４ｘ３）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
ＳＡＤ０３２＝（Ｒｅｇ＿ｙ０ｘ３）−（Ｒｅｆ＿ｙ２ｘ３）
ＳＡＤ１３３＝（Ｒｅｇ＿ｙ１ｘ３）−（Ｒｅｆ＿ｙ３ｘ３）
ＳＡＤ２３４＝（Ｒｅｇ＿ｙ２ｘ３）−（Ｒｅｆ＿ｙ４ｘ３）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
ＳＡＤ０３３＝（Ｒｅｇ＿ｙ０ｘ３）−（Ｒｅｆ＿ｙ３ｘ３）
ＳＡＤ１３４＝（Ｒｅｇ＿ｙ１ｘ３）−（Ｒｅｆ＿ｙ４ｘ３）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
ＳＡＤ０３４＝（Ｒｅｇ＿ｙ０ｘ３）−（Ｒｅｆ＿ｙ４ｘ３）
図１４Ａ、図１４Ｂ、図１４Ｃ、および図１４Ｄに示すように、クロック信号ＣＬＫのＣＬＫ３での立ち上がり時点において、第１モジュール１１０１から出力されるデータＲｅｇ０＿３は、ＳＡＤ３０３＋ＳＡＤ２０２＋ＳＡＤ１０１＋ＳＡＤ０００となり、第２モジュール１１０２から出力されるデータＲｅｇ１＿３は、ＳＡＤ３１３＋ＳＡＤ２１２＋ＳＡＤ１１１＋ＳＡＤ０１０となり、第３モジュール１１０３から出力されるデータＲｅｇ２＿３は、ＳＡＤ３２３＋ＳＡＤ２２２＋ＳＡＤ１２１＋ＳＡＤ０２０となり、第４モジュール１１０４から出力されるデータＲｅｇ３＿３は、ＳＡＤ３３３＋ＳＡＤ２３２＋ＳＡＤ１３１＋ＳＡＤ０３０となる。したがって、加算器１２０１（図１２）から出力される差分絶対値の総和ＳＡＤ  ｏｕｔは、
（ＳＡＤ３０３＋ＳＡＤ２０２＋ＳＡＤ１０１＋ＳＡＤ０００）
＋（ＳＡＤ３１３＋ＳＡＤ２１２＋ＳＡＤ１１１＋ＳＡＤ０１０）
＋（ＳＡＤ３２３＋ＳＡＤ２２２＋ＳＡＤ１２１＋ＳＡＤ０２０）
＋（ＳＡＤ３３３＋ＳＡＤ２３２＋ＳＡＤ１３１＋ＳＡＤ０３０）
となる。
【００７４】
また、クロック信号ＣＬＫのＣＬＫ４での立ち上がり時点において、第１モジュール１１０１から出力されるデータＲｅｇ０＿３は、ＳＡＤ３０４＋ＳＡＤ２０３＋ＳＡＤ１０２＋ＳＡＤ００１となり、第２モジュール１１０２から出力されるデータＲｅｇ１＿３は、ＳＡＤ３１４＋ＳＡＤ２１３＋ＳＡＤ１１２＋ＳＡＤ０１１となり、第３モジュール１１０３から出力されるデータＲｅｇ２＿３は、ＳＡＤ３２４＋ＳＡＤ２２３＋ＳＡＤ１２２＋ＳＡＤ０２１となり、第４モジュール１１０４から出力されるデータＲｅｇ３＿３は、ＳＡＤ３３４＋ＳＡＤ２３３＋ＳＡＤ１３２＋ＳＡＤ０３１となる。したがって、加算器１２０１（図１２）から出力される差分絶対値の総和ＳＡＤ  ｏｕｔは、
（ＳＡＤ３０４＋ＳＡＤ２０３＋ＳＡＤ１０２＋ＳＡＤ００１）
＋（ＳＡＤ３１４＋ＳＡＤ２１３＋ＳＡＤ１１２＋ＳＡＤ０１１）
＋（ＳＡＤ３２４＋ＳＡＤ２２３＋ＳＡＤ１２２＋ＳＡＤ０２１）
＋（ＳＡＤ３３４＋ＳＡＤ２３３＋ＳＡＤ１３２＋ＳＡＤ０３１）
となる。
【００７５】
図１５は、図１２または図１３に示す構成により、ＣＬＫ３およびＣＬＫ４の時点で得られるＳＡＤ  ｏｕｔの範囲を示す模式図である。
【００７６】
次に、ＭＥ回路用の演算処理ブロック５３（図５Ｂ）によるＳＡＤ演算回路の変形例について説明する。
【００７７】
図１６は、図１２に示す４画素×４ラインのＭＥ基本単位を行方向で２つ並列配置し、行方向で１画素ずつずらした参照用の画像データを、並列配置されたそれぞれのＭＥ基本単位に入力する場合の構成を示す模式図である。
【００７８】
図１６において、第１ＭＥ基本単位１６０１には、参照用の画像データＲｅｆ．Ｄａｔａ  ｉｎ０、Ｒｅｆ．Ｄａｔａ  ｉｎ１、Ｒｅｆ．Ｄａｔａ  ｉｎ２、Ｒｅｆ．Ｄａｔａ  ｉｎ３が入力され、加算器１６０３から差分絶対値の総和ＳＡＤ  ｏｕｔ０が出力される。また、第２ＭＥ基本単位１６０２には、第１ＭＥ基本単位１６０１とは行方向で１画素ずつずらした参照用の画像データＲｅｆ．Ｄａｔａ  ｉｎ１、Ｒｅｆ．Ｄａｔａ  ｉｎ２、Ｒｅｆ．Ｄａｔａ  ｉｎ３、Ｒｅｆ．Ｄａｔａ  ｉｎ４が入力され、加算器１６０４から差分絶対値の総和ＳＡＤ  ｏｕｔ１が出力される。
【００７９】
図１７は、図１６に示す構成を用いて、参照用画像メモリから、垂直方向に位置をずらしながら探索したい範囲内の参照用の画素データを読み出して探索を行う様子を示す模式図である。また、図１８は、図１６または図１７に示す構成により、ＣＬＫ３およびＣＬＫ４の時点で得られるＳＡＤ  ｏｕｔの範囲を示す模式図である。
【００８０】
このように構成することで、参照画像用メモリの読み出しデータ幅が広いほど、水平方向（行方向）探索の並列処理を行うことができる。例えば、１画素を８ビットとして、６４ビット単位でのメモリ読み出しの場合、４画素×４ラインがＭＥ基本単位であるので、水平方向（行方向）に１画素ずつずらした基本単位で、５つ分同時に探索を行うことができる。すなわち、５つ分の中心位置を探索の水平方向の中心とすると、±２画素の探索範囲を一度に処理できることになる。
【産業上の利用可能性】
【００８１】
本発明の演算処理装置は、必要な処理性能を単純な構成で無駄なく得ることができ、ＤＳＰと比較して処理性能毎の回路規模を小さくでき、低消費電力化を図ることが可能であるという利点を有し、ＭＰＥＧとＪＰＥＧの両方に対応した動画撮影機能付きＤＳＣ等のエンコーダＬＳＩ等に適用できる。
【図面の簡単な説明】
【００８２】
【図１】本発明の第１の実施形態に係る演算処理装置における単位演算回路の構成例を示す回路ブロック図
【図２Ａ】バタフライ演算回路の一部を構成する単位演算回路における第１セレクタ、第２セレクタ、第３セレクタによる演算経路の切り換えの様子を示す回路ブロック図
【図２Ｂ】図２Ａの構成を簡略化して示した図
【図３Ａ】ＳＡＤ演算回路の一部を構成する単位演算回路における第１セレクタ、第２セレクタ、第３セレクタによる演算経路の切り換えの様子を示す回路ブロック図
【図３Ｂ】図３Ａの構成を簡略化して示した図
【図４Ａ】ディジタルフィルタの一部を構成する単位演算回路における第１セレクタ、第２セレクタ、第３セレクタによる演算経路の切り換えの様子を示す回路ブロック図
【図４Ｂ】図４Ａの構成を簡略化して示した図
【図５Ａ】ＪＰＥＧ処理時における演算処理ブロックの構成例を示す模式図
【図５Ｂ】ＭＰＥＧ処理時における演算処理ブロックの構成例を示す模式図
【図６Ａ】８ビットのバタフライ演算回路を４個の単位演算回路で構成した場合の例を示す回路接続図
【図６Ｂ】図６Ａの構成を簡略化して示した図
【図７】４タップのディジタルフィルタを、４個の単位演算回路からなる第１モジュールと、４個の単位演算回路からなる第２モジュールとで構成した場合の例を示す回路接続図
【図８】図７の接続関係および構成を詳細に示す図
【図９】隣接４画素に対してそれぞれ１／８、１／４（＝２／８）、１／２（＝４／８）、１／８のフィルタ係数を乗算して、４画素の加算を行うディジタルフィルタの構成を示す回路接続図
【図１０】図９における各レジスタの出力データ（Ｒｅｇ）とビットシフタ７７の出力データ（Ｄａｔａ  ｏｕｔ）のクロック信号ＣＬＫに同期した変化を示す図
【図１１】４個の単位演算回路が列方向に接続されて成る第１モジュールと、それぞれ第１モジュールと同じ構成を有する、第２モジュールと、第３モジュールと、第４モジュールとを行方向に並列配置することで、４×４画素からなるＭＥ基本単位を構成した場合の例を示す回路接続図
【図１２】図１１の回路動作を説明するための図
【図１３】４画素×４ラインの比較対象画素の配置をレジスタで代表させて表し、参照用画像メモリから、垂直方向に位置をずらしながら探索したい範囲内の参照用の画素データを読み出して探索を行う様子を示す模式図
【図１４Ａ】図１２に示す第１モジュール内の各第１レジスタの出力データＲｅｇ０＿０、Ｒｅｇ０＿１、Ｒｅｇ０＿２、Ｒｅｇ０＿３のクロック信号ＣＬＫに同期した変化を示す図
【図１４Ｂ】図１２に示す第２モジュール内の各第１レジスタの出力データＲｅｇ１＿０、Ｒｅｇ１＿１、Ｒｅｇ１＿２、Ｒｅｇ１＿３のクロック信号ＣＬＫに同期した変化を示す図
【図１４Ｃ】図１２に示す第３モジュール内の各第１レジスタの出力データＲｅｇ２＿０、Ｒｅｇ２＿１、Ｒｅｇ２＿２、Ｒｅｇ２＿３のクロック信号ＣＬＫに同期した変化を示す図
【図１４Ｄ】図１２に示す第３モジュール内の各第１レジスタの出力データＲｅｇ３＿０、Ｒｅｇ３＿１、Ｒｅｇ３＿２、Ｒｅｇ３＿３のクロック信号ＣＬＫに同期した変化を示す図
【図１５】図１２に示す構成により、ＣＬＫ３およびＣＬＫ４の時点で得られるＳＡＤ  ｏｕｔの範囲を示す模式図
【図１６】図１２に示す４画素×４ラインのＭＥ基本単位を行方向で２つ並列配置し、行方向で１画素ずつずらした参照用の画像データを、並列配置されたそれぞれのＭＥ基本単位に入力する場合の構成を示す模式図
【図１７】図１５に示す構成を用いて、参照用画像メモリから、垂直方向に位置をずらしながら探索したい範囲内の参照用の画素データを読み出して探索を行う様子を示す模式図
【図１８】図１６に示す構成により、ＣＬＫ３およびＣＬＫ４の時点で得られるＳＡＤ  ｏｕｔ０およびＳＡＤ  ｏｕｔ１の範囲を示す模式図
【図１９】ＭＰＥＧ／ＪＰＥＧエンコーダを有するＤＳＣの一構成例を示すブロック図
【符号の説明】
【００８３】
１１  第１入力端子
１２  第２入力端子
１３  第３入力端子
１４  クロック信号（ＣＬＫ）入力端子
１５  制御信号（ＣＯＮＴ）入力端子
１６、１６−１２、１６−１３、１６−１４、１６−２２、１６−２３、１６−２４  第１レジスタ
１７、１７−１１、１７−１２、１７−１３、１７−１４、１７−２１、１７−２２、１７−２３、１７−２４  第２レジスタ
１８  第１セレクタ
１９  第２セレクタ
２０  第３セレクタ
２１、２１−１１、２１−１２、２１−１３、２１−１４、２１−２１、２１−２２、２１−２３、２１−２４  ビットシフタ
２２  減算器
２３  加算器
２４  絶対値演算器
２５  第１出力端子
２６  第２出力端子
５１Ａ  ＪＰＥＧ処理時のＤＣＴ回路用の演算処理ブロック
５２Ａ  ＪＰＥＧ処理時のディジタルフィルタ用の演算処理ブロック
５１Ｂ  ＭＰＥＧ処理時のＤＣＴ回路用の演算処理ブロック
５２Ｂ  ＭＰＥＧ処理時のディジタルフィルタ用の演算処理ブロック
５３  ＭＰＥＧ処理時のＭＥ回路用の演算処理ブロック
６１  バタフライ演算回路を構成する第１単位演算回路
６２  バタフライ演算回路を構成する第２単位演算回路
６３  バタフライ演算回路を構成する第３単位演算回路
６４  バタフライ演算回路を構成する第４単位演算回路
７１  ディジタルフィルタを構成する第１モジュール
７２  ディジタルフィルタを構成する第２モジュール
７３  第１レジスタ
７４  第２レジスタ
７５  加算器
７６  第２レジスタ
７７  ビットシフタ
１１０１  ＳＡＤ演算回路を構成する第１モジュール
１１０２  ＳＡＤ演算回路を構成する第２モジュール
１１０３  ＳＡＤ演算回路を構成する第３モジュール
１１０４  ＳＡＤ演算回路を構成する第４モジュール
１２０１  加算器
１６０１  第１ＭＥ基本単位
１６０２  第２ＭＥ基本単位
１６０３、１６０４  加算器
１９０１  光学部
１９０２  撮像素子（ＣＣＤ）
１９０３  アナログ信号処理／タイミング信号発生部（ＣＤＳ、ＡＧＣ、Ａ／Ｄ、ＴＧ）
１９０４  メモリコントローラ
１９０５  メモリ
１９０６  ＭＰＥＧ／ＪＰＥＧエンコーダ
１９０７  メモリカードＩ／Ｆ
１９０８  メモリカード
１９０９  ＣＰＵ
【図１】
0004663223.tif 000002
【図２Ａ】
0004663223.tif 000003
【図２Ｂ】
0004663223.tif 000004
【図３Ａ】
0004663223.tif 000005
【図３Ｂ】
0004663223.tif 000006
【図４Ａ】
0004663223.tif 000007
【図４Ｂ】
0004663223.tif 000008
【図５Ａ】
0004663223.tif 000009
【図５Ｂ】
0004663223.tif 000010
【図６Ａ】
0004663223.tif 000011
【図６Ｂ】
0004663223.tif 000012
【図７】
0004663223.tif 000013
【図８】
0004663223.tif 000014
【図９】
0004663223.tif 000015
【図１０】
0004663223.tif 000016
【図１１】
0004663223.tif 000017
【図１２】
0004663223.tif 000018
【図１３】
0004663223.tif 000019
【図１４Ａ】
0004663223.tif 000020
【図１４Ｂ】
0004663223.tif 000021
【図１４Ｃ】
0004663223.tif 000022
【図１４Ｄ】
0004663223.tif 000023
【図１５】
0004663223.tif 000024
【図１６】
0004663223.tif 000025
【図１７】
0004663223.tif 000026
【図１８】
0004663223.tif 000027
【図１９】
0004663223.tif 000028