(57)【特許請求の範囲】
【請求項１】
ＣＰＵと、
上記ＣＰＵにより制御される演算ユニットと、記憶手段と、
上記ＣＰＵのデータバス幅よりも広いバス幅を持ち、上記演算ユニットと上記記憶手段とを接続するローカルデータバスと、
上記ＣＰＵ、上記演算ユニット及び上記記憶手段に共通に接続されたアドレスバスを持ち、
上記演算ユニットは、
第一の入力端子、第二の入力端子及び出力端子をもち、上記ＣＰＵからの制御信号によって動作する複数のプロセッサエレメントと、
上記複数のプロセッサエレメントの全ての第一の入力端子のビット幅を合計したビット幅の第一のレジスタと、
上記複数のプロセッサエレメントの全ての第二の入力端子のビット幅を合計したビット幅を持ち全てのビット幅を重なりがないように全てのプロセッサエレメントの第二の入力端子に加える第二のレジスタと、
上記プロセッサエレメントの第二の入力端子のビット幅以上のビット幅を持ち第二のレジスタに第二の入力端子のビット幅単位でデータのシフトができる第三のレジスタと、
上記第一のレジスタとのデータを選択して最上位ビットから上記プロセッサエレメントの第一の入力端子のビット幅を全ての上記プロセッサエレメントの第一の入力端子に共通に供給するセレクタと、
上記アドレスバスによって制御され、上記ローカルデータバスを介してそれぞれ上記第一、第二及び第三レジスタにデータを書き込む書き込み制御回路と、
上記出力端子のデータを上記ローカルデータバスに出力する回路とを持つＳＩＭＤ制御型の演算器で構成されたデータ処理装置。
【請求項２】
上記演算ユニットはＳＩＭＤ型の演算器である第1項記載のデータ処理装置。
【請求項３】
上記演算ユニットが複数個並列に上記ローカルデータバスに接続された第１項記載のデータ処理装置。
【請求項４】
上記記憶手段は第１メモリと、第２メモリとを有し、
上記アドレスバス及び上記ローカルデータバスに接続されかつ第１メモリと第２メモリ間のデータの転送を制御するＤＭＡ回路とを持つ第1項記載のデータ処理装置。
【請求項５】
上記記憶手段は上記第２メモリから上記第１メモリにＤＭＡ回路で転送する際に符号拡張を行う手段を持つ第４項記載のデータ処理装置。
【請求項６】
上記第１メモリは、第１及び第２ワークメモリを持ち、上記記憶手段は上記第１及び第２のワークメモリと上記演算ユニットの接続及び上記第２メモリとの接続を交互に切り替える手段を更に持つ第４項記載のデータ処理装置。
【請求項７】
上記演算ユニットは、上記ＣＰＵからの単一命令で複数のデータを並列に演算処理するSIMD制御型の演算器であることを特徴とする請求項第1項に記載のデータ処理装置。
【請求項８】
上記プロセッサエレメントは、上記第一及び第二の入力端子のデータの減算値を一定の範囲に亘り積算し出力する演算回路であり、上記第一のレジスタに符号化すべき画像の複数の画素のデータが格納され、上記第二のレジスタに参照すべき参照画像の複数の画素のデータが格納され、上記複数のプロセッサエレメントの出力を画像の複数の動きベクトルに対応する近似度として取り出す請求項１に記載の画像処理用データ処理装置。
【請求項９】
ＣＰＵと、
演算ユニットと、
記憶手段と、
上記ＣＰＵと上記記憶手段とを接続するアドレスバスと、
上記演算ユニットと上記記憶手段とを接続するローカルデータバスとを有するデータ処理装置であって、
上記ＣＰＵは、命令をデコードする命令デコード回路を有し、上記命令デコード回路の処理結果によって上記の演算ユニットを制御し、
上記ローカルデータバスは上記ＣＰＵよりも広いバス幅を有し、
上記演算ユニットは、
上記ＣＰＵからの制御信号によって複数の入力データを用いて演算処理動作を行う複数のプロセッサエレメントと、
上記複数のプロセッサエレメントに接続され演算処理データを供給可能な第一のレジスタと及び第二のレジスタと、
上記第二のレジスタに接続され、所定のビット幅単位でデータのシフトを行い、シフトしたデータを上記第二のレジスタに供給することができる第三のレジスタと、
上記第一のレジスタ及びプロセッサエレメントに接続され、データの供給制御を行うセレクタと、
上記ＣＰＵから供給されたアドレスを用いてアクセス可能とされ、上記ローカルデータバスを介して供給されたデータをそれぞれ上記第一、第二及び第三レジスタにデータを書き込むことが可能な書き込み制御回路と、
上記複数のプロセッサエレメントの演算処理データを上記ローカルデータバスに出力する回路とを持つＳＩＭＤ制御型の演算器で構成されることを特徴とするデータ処理装置。
【請求項１０】
上記第一の演算ユニットがＳＩＭＤ型の演算器である請求項９
記載のデータ処理装置。
【請求項１１】
バスを介して接続可能されたメモリに格納された命令をフェッチし、実行することが可能なＣＰＵと、
上記ＣＰＵに接続されたアドレスバスと第一のデータバスと、
上記ＣＰＵに上記アドレスバスを介して接続されたメモリと、
上記メモリに第二のデータバスを介して接続された演算ユニットを有し、
上記第二のデータバスは上記第一のデータバスよりも広いバス幅であり、
上記ＣＰＵは、上記フェッチされた所定の命令を実行することにより、上記演算ユニットを制御可能で、
上記演算ユニットは上記第二のデータバスを介して接続される上記メモリに格納されたデータを用いて演算処理を実行可能で、
上記演算ユニットは、
第一の入力端子、第二の入力端子及び出力端子をもち、上記ＣＰＵからの制御信号によって動作する複数のプロセッサエレメントと、
上記複数のプロセッサエレメントの全ての第一の入力端子のビット幅を合計したビット幅の第一のレジスタと、
上記複数のプロセッサエレメントの全ての第二の入力端子のビット幅を合計したビット幅を持ち全てのビット幅を重なりがないように全てのプロセッサエレメントの第二の入力端子に加える第二のレジスタと、
上記プロセッサエレメントの第二の入力端子のビット幅以上のビット幅を持ち第二のレジスタに第二の入力端子のビット幅単位でデータのシフトができる第三のレジスタと、
上記第一のレジスタとのデータを選択して最上位ビットから上記プロセッサエレメントの第一の入力端子のビット幅を全ての上記プロセッサエレメントの第一の入力端子に共通に供給するセレクタと、
上記アドレスバスによって制御され、上記ローカルデータバスを介してそれぞれ上記第一、第二及び第三レジスタにデータを書き込む書き込み制御回路と、
上記出力端子のデータを上記ローカルデータバスに出力する回路とを持つＳＩＭＤ制御型の演算器で構成されることを特徴とするデータ処理装置。
【請求項１２】
上記演算ユニットがＳＩＭＤ型の演算器であることを特徴とする請求項１１記載のデータ処理装置。
【請求項１３】
上記アドレスバスと上記第一のデータバスと上記メモリとに接続されたＤＭＡ回路を有することを特徴とする請求項１１又は１２記載のデータ処理装置。
【発明の詳細な説明】
技術分野
本発明はデータ処理装置、更に詳しく言えば、映像信号圧縮、伸長処理で用いる動き検出、動き補償の処理等のように、大量のデータをプロセッサを使用して高速かつ効率的に行うデータ処理装置に関するものである。
背景技術
画像や音声の伸張、圧縮処理等では大量のデータに対し、同一の演算処理を繰り返し高速度で行う必要がある。そのため、上記同一の演算処理を行う部分は専用の演算装置を儲け、その演算装置を高速動作させるため、並列に配置された複数のプロセッサエレメント（演算ユニット）を持ち、それらを同一のプログラムによって動作させるＳＩＭＤ（Single Instruction Multiple Data）演算装置で構成するデータ処理装置が知られている。なお、ＳＩＭＤ演算装置については、文献「インターフェイス」の１９９８年３月号の１１１頁から１１３頁に記載がある。具体的には、米国インテル社のペンティアムのＭＭＸテクノロジが知られている。
ＳＩＭＤ方式の演算装置では、メモリからデータを絶え間なく供給し、演算器の稼働率を上げることが、パフォーマンスを決める重要な要素となる。しかし、従来知られているセントラルプロセッサユニット（ＣＰＵと略称）とＳＩＭＤ方式の演算器を組み合わせたデータ処理装置は、装置構成上、ＣＰＵとＳＩＭＤ演算装置が共通のデータバス及びアドレスバスを介して接続されている。そのため、メモリーからＳＩＭＤ演算装置内のレジスタへのデータ転送を行い、次に演算を行い、次にレジスタ内の演算結果をメモリーに転送して、次のデータ処理が開始できるという動作であった。この場合、隣接したプロセッサエレメントで使用したデータを使用して、演算効率を上げることができないという問題があった。
この問題を解決するため考えられる方式は、システムLSIの考え方に従ってＳＩＭＤ演算装置と内蔵メモリとの間をシステムバスと独立の大きなバス幅のローカルバスで接続することが考えられる。しかしこの方法ではＳＩＭＤ演算装置とメモリのデータ転送性能は向上するが、ＣＰＵからＳＩＭＤ演算装置に受け渡す演算命令を限定しないシステムバスのトラヒックが問題となり、ＣＰＵとＳＩＭＤ演算装置の両方にアドレス発生器を必要とし、ＣＰＵはメモリのデータ読み出しとＳＩＭＤ演算装置のデータ格納との両者を一元的に管理できない。そのため、ＳＩＭＤ演算装置の高速性能を有効に利用することができないという問題がある。
発明の開示
本発明の主な目的は、データの高速処理ができるデータ処理装置を実現することである。
本発明の他の目的は、中央処理装置によって制御されかつメモリとローカルバスで接続された演算ユニットを持つデータ処理装置において、中央処理装置がメモリのデータ読み出しと演算ユニットのデータ格納との両者を一元的に管理できるデータ処理装置を実現することである。
本発明の更に他の目的は、演算ユニットを構成するプロセッサエレメントに対するデータの供給を絶え間なくできるようにして、できるだけ毎クロック演算が可能になり、データの高速処理ができるデータ処理装置を実現することである。
上記目的を達成するため、本発明のデータ処理装置は、ＣＰＵ装置により制御される演算ユニットと、第一の記憶手段と、上記ＣＰＵ、演算ユニット及び第一の記憶手段に共通に接続されたアドレスバスと、上記ＣＰＵのもつデータバスのバス幅より広いバス幅を持ち上記算ユニットとを結合するローカルデータバスとを設けて構成した。
本発明では、第一の記憶手段と演算ユニットとの間にローカルデータバスを設けることにより、データ転送性能を向上し、ＣＰＵから演算ユニットへ制御線を接続することにより、演算ユニットへ供給される演算命令をシステムバスのトラフィックから独立している。更に、アドレスバスは、ＣＰＵ装置、演算ユニット及び第一の記憶手段に共通に接続されたているため、アドレス発生器は、ＣＰＵ装置のみに設ければよく、演算ユニットに設ける必要がない。第一の記憶手段も演算ユニットのレジスタと共にＣＰＵ装置のアドレス空間にあり、ＣＰＵ装置は第一の記憶手段のデータ読み出しと、演算ユニットのレジスタのデータ格納との両者のアドレス指定を一元的に管理できる。
本発明の好ましい実施形態によれば、上記演算ユニットは複数のプロセッサエレメントを持つＳＩＭＤ制御型の演算器で構成され、上記各プロセッサエレメントは第一の入力端子と第二の入力端子と出力端子を持ち、全てのプロセッサエレメントの第一の入力端子のビット幅を合計したビット幅の第一のレジスタと、全てのプロセッサエレメントの第二の入力端子のビット幅を合計したビット幅の第二のレジスタと、プロセッサエレメントの第二の入力端子のビット幅以上のビット幅を持ち第二のレジスタに第二の入力端子のビット幅単位でデータのシフトができるように構成された第三のレジスタをもつ構成とする。
本発明のデータ処理装置は特に以下の実施形態で説明するように、画像の符号化処理に置ける動き検出処理などに有効であるが、高速の演算処理をＣＰＵの処理と平行して行う必要がある処理装置に適用できる。
【図面の簡単な説明】
第１図は本発明によるデータ処理装置の第１実施例の構成を示すブロック図
第２図は第１図のＳＩＭＤ型演算器４の内部構成を示す回路図
第３図は第１図のＣＰＵ２の内部構成図
第４図は第２図のプロセッサエレメント３８の内部構成図
第５図は第２図のＳＩＭＤ型演算器４の動作説明図
第６図は第２図のＳＩＭＤ型演算器４の動作説明図
第７図は第１実施形態で用いる参照画像データの説明図
第８図は第１実施形態で用いる符号化画像データの説明図
第９図は第１図のＤＲＡＭ１６上のアドレスマップ
第１０図は第１図のワークＲＡＭ１２上のアドレスマップ
第１１図は第１実施形態の動作フローチャート
第１２図は第１実施形態のＳＩＭＤ型演算器４のレジスタのデータ転送の様子を説明する図
第１３図は第１実施形態におけるベクトル（０，０）の演算範囲の説明図
第１４図は第１実施形態におけるベクトル（１，０）の演算範囲の説明図
第１５図は本発明によるデータ処理装置の第２実施形態の構成を示すブロック図
第１６図は第２実施形態のＣＰＵの内部構成図
第１７図は第２実施形態の動作フローチャート
第１８図は本発明によるデータ処理装置の第３実施形態の構成を示すブロック図
第１９図は本発明によるデータ処理装置の第４実施形態の構成を示すブロック図
第２０図は第４実施形態におけるＶＰＵ１６０の内部構成図
発明を実施するための最良の形態
＜実形態１＞
第１図は本発明によるデータ処理装置の第１の実施形態の構成を示すブロック図である。本実施形態のデータ処理装置は、画像符号化処理において、ブロックマッチング法による動き検出の処理を演算ユニットで行うものである。先に装置の構成を説明し、後で動き検出の処理の動作を説明する。
図示のように本データ処理装置は、中央処理装置（以下ＣＰＵと略称）２により制御線３及び５を介して直接制御されるＳＩＭＤ演算器で構成された演算ユニット４と、記憶手段であるワークＲＡＭ１２と、ＣＰＵ２、演算ユニット４及びワークＲＡＭ１２に共通に接続されたアドレスバス１０と、ＣＰＵ２のもつデータバス６のバス幅より広いバス幅を持ち演算ユニット４とワークＲＡＭ１２を結合するローカルデータバス８とをもつ。
ＣＰＵ２は、命令をデコードし全体を制御する。本実形態では、ＲＩＳＣ型マイクロプロセッサを用いている。２０はＣＰＵ装置２のプログラムなどを格納するＲＯＭ、１８はＣＰＵ装置２のデータあるいはプログラムなどを格納するＲＡＭである。１２はＳＩＭＤ型演算器４の演算データを一時的に保持するためのワークＲＡＭ、１６は画像データが格納されるＤＲＡＭ、１４はＤＲＡＭ１６とワークＲＡＭ１２とのＤＲＡＭインターフェイス回路、２２はＤＲＡＭ１６とワークＲＡＭ１２とのＤＭＡ（Direct Memory Access）転送を制御するＤＭＡ回路である。
本実施例は、３種のバスを有し、ＣＰＵ２のデータバス６のバス幅は３２ビット、アドレスバス１０のバス幅は３２ビット、データバス８及び２４のバス幅は１４４ビットである。図中バス線に斜線とを付し数はバス幅（ビット数）を示す。
以下各部の構成動作を詳しく説明する。
第２図は、第１図のＳＩＭＤ型演算器４の内部構成を示す回路図である。演算ユニット４は１６個の並列に配置されたプロセッサエレメント３８、４０…４２、４４を持つＳＩＭＤ制御型の演算器で構成され、各プロセッサエレメントは、セレクタ３２を介してレジスタ３０に接続された第一の入力端子とレジスタ３４に接続された第二の入力端子とデータバス６及び８に接続された出力端子を持つ。レジスタ３０は全てのプロセッサエレメント３８、４０…４２、４４の第一入力端子のビット幅を合計したビット幅を持つ。レジスタ３４は全てのプロセッサエレメントの第二入力端子のビット幅を合計したビット幅を持つ。更にプロセッサエレメントの第二入力端子のビット幅以上のビット幅を持ち、レジスタ３４に第二の入力端子のビット幅単位でデータのシフトができる第三のレジスタ３６をもつ。
各プロセッサエレメント３８、４０…４２、４４は、制御線３と５を介してＣＰＵ２によって制御される。レジスタ３０からプロセッサエレメント３８，４０…４２、４４へのデータ供給は、セレクタ３２により変えることができる。また、レジスタ３０、３４及び３６は、それそれアドレスバス１０によって制御される書き込み回路５０、４６及び４８からローカルバス８を介してデータが書き込まれる。
第３図は、第１図のＲＩＳＣ型マイクロプロセッサ２の構成を示すブロック図である。この構成は、従来知られているマイクロプロセッサの構成と全く同様で、命令フェッチ回路６０からフェッチした命令を線路７２を介して入力しデコードする命令デコード回路５８、命令デコード回路５８からの命令６８を実行する演算回路６４、プログラムカウンタ５４、汎用レジスタ５６から構成されている。
更に命令デコード回路５８では、例えば、ＳＩＭＤ型演算器４に対する演算命令の場合は信号線３を、ＳＩＭＤ型演算器４に対する結果の読み出し命令の場合は信号線５をアクティブにする。６６、６８、６２、73及び７４は命令及びデータ伝送線である。
第４図は、上記プロセッサエレメントの構成を示すブロック図である。ＳＩＭＤ型演算器４の１６個のプロセッサエレメント３８、４０、…４２、４４の構成は全て同じである。ここでは、代表してプロセッサエレメント３８を例に説明する。プロセッサエレメント３８は、演算回路８０、８１の演算結果を保持するためのレジスタ８２、ローカルデータバス８又はデータバス６への読み出しを制御するための読み出し制御回路８４から構成されている。演算回路８０には、レジスタ３０の１４４ビットのビット幅の一部の９ビットがバス３７を介して、また、レジスタ３４の１４４ビットのビット幅の一部の９ビットがバス３５を介して入力される。入力された２つのデータは、演算回路８０で演算（減算）され、演算回路８０の出力は演算回路８１でレジスタ８２の値と加算される。演算回路８１の演算結果はレジスタ８２に格納される。
第５図及び第６図は、セレクタ３２の接続形態を説明する図である。第１の接続形態では、第５図で示されるように、レジスタ３０の１４４ビットの最上位ビットから９ビットａ０が各プロセッサエレメント３８、４０…４４，４２に共通に供給される。また、第２の接続形態では、第６図に示されるように、レジスタ３０の全内容１４４ビットが、上位から９ビットづつのａ０、ａ２、…ａ１４、ａ１５がそれぞれプロセッサエレメント３８、４０…４４、４２に供給される。従って、図に示されるａ０の９ビットのデータは０番のプロセッサエレメント３８に、ａ１の９ビットのデータは１番のプロセッサエレメント４０に、という様にデータが分配供給される。
次に、上記データ処理装置を使用してＭＰＥＧ２の規格による画像信号の符号化処理の中で行われる画像の動き検出を行う場合を説明する。
規格ＭＰＥＧ２による画像の動き検出は、水平１６画素、垂直１６画素のマクロブロック単位で、符号化されるマクロブロックが、比較対照となる参照画面に対し、探索範囲の中で一番似ているマクロブロックの場所を求め、その２つのマクロブロック間の画像フレームにおける距離を求める処理を行う。通常、動き検出は、ブロックマッチング法で行われる。ブロックマッチング法とは、符号化される画像の画素と対応する参照画像の画素の差分絶対値をマクロブロック内の全ての画素に対し累積加算を行って、累積加算値の最も値の小さいマクロブロックの場所を見つける処理を行う。
第７図及び第８図は、それぞれ上記画像を符号化する際の参照画像データ及び符号化画像のマクロブロックである符号化画像の画素を示す。ここでは、参照画像データは水平方向３５２画素、垂直方向２４０画素を想定している。図中丸で囲む記号ra1、ra2…rb1…rp17…等は画素を識別する記号である。また、マクロブロックは、水平方向１６画素、垂直方向１６画素で、図中丸で囲む記号ta1、ta2…tp16等は画素を識別する記号である。
第９図は、第１図のＤＲＡＭ１６に格納されているデータの様子を示す。図中の記号ｒａ１，ｒａ２，…ｔａ１…ｔｂ８…等は、第７図、第８図に示した記号に対応した画素を表す。アドレスA000からが参照画像データの領域に割り当てられており、ＤＲＡＭ１６のビット幅である３２ビットで水平方向の４画素が格納されている。アドレスB000からがマクロブロック即ち符号化画像データの領域に割り当てられている。
第１０図は、ワークＲＡＭ１２に格納された符号化画像データと参照画像データを示す。ここでは、アドレスC000からが参照画像データの領域に割り当てられている。各画素のデータは９ビットのデータとなり、アドレスC000からの１４４ビットには、画素ra1から画素ra16までの水平１６画素のデータが格納される。また、アドレスD000からが符号化画像データの領域に割り当てられている。参照画像データの場合と同様に、アドレスD000の１４４ビットに画素ta1から画素ta16までの水平１６画素が格納される。
第１１図は、上記データ処理装置における動き検出の処理フローチャートである。
まず、ＤＲＡＭ１６のデータ（第９図）をＤＲＡＭインターフェイス１４を介して、ワークＲＡＭ１２に転送する（ステップ９０）。この時、１画素あたり８ビットのデータに符号ビットを付加して、１画素あたり９ビットのデータとする符号拡張を行う。ＤＲＡＭ１６上で４ロングワードのデータを並べて１４４ビットのデータを作り出す。このような転送を繰り返して、バス２４を介してワークＲＡＭ１２にデータを格納する。
次に、ローカルデータバス８を介してワークＲＡＭ１２からＳＩＭＤ演算器４のレジスタ３４に参照画像データを転送する（ステップ９２）。
第１２図はステップ９２の詳細な動作を説明するための図で、１６個のプロセッサエレメント３８，４０、…４２、４４と、１４４ビットのレジスタＡ３０、レジスタＢ３４、レジスタＣ３６の信号の流れを時間との関係で示している。すなわち、縦方向に示す時刻ｔとその時のレジスタ３０、３４、３６の内容の変化も示している。
前述のように、レジスタＡ３０は、符号化すべき画像の複数の画素データが格納され、一連のビット列の上位９ビットが全てのプロセッサエレメント３８、４０…４２、４４に共通に供給され、レジスタＢ３４には参照画像の複数の画素データ画格納され、上位９ビットがプロセッサエレメント３８に、次の９ビットがプロセッサエレメント４０とゆうように、９ビット毎に別のプロセッサエレメントに供給され。レジスタＣ３６は、レジスタＢ３４にデータをシフトして供給する。９ビットのシフト命令の場合、レジスタＢ３４の下位９ビットにレジスタＣ３６の上位９ビットが供給される。
ここで、時刻ｔ＝０（ステップ９２）では、レジスタＢ３４の参照画像データの画素ra1から画素ra16までが、１４４ビットの幅で一度に転送されていることが分かる。
時刻ｔ＝１（ステップ９４）では、ワークＲＡＭ１２からレジスタＣ３６にデータを転送する。この結果、新たに参照画像データの画素ra17から画素ra32までが、１４４ビットの幅でレジスタＣ３６に一度に転送される。その結果、水平３２画素の１ラインの参照画像データがレジスタＢ３４とレジスタＣ３６に亘って格納される。
時刻ｔ＝２（ステップ９６）では、ワークＲＡＭ１２からレジスタＡ３０に符号化画像データのマクロブロック画素ta1から画素ta16までの１４４ビットの幅のデータを一度に転送する。ここで、レジスタ３０、３４、３６演算に必要な全てのデータが格納される。
時刻ｔ＝３（ステップ９８）では、プロセッサエレメント３８、４０…４２、４４による同時並列演算とレジスタ３４とレジスタ３６の９ビットのシフトを行う。その結果、プロセッサエレメント３８は、参照画像データra1と符号化画像データta1との差分絶対値を求める演算を行う。そして、結果を第４図で示したプロセッサエレメント内部のレジスタ８２に格納する。また、プロセッサエレメント４０では、同様に、参照画像データra2と符号化画像データta1との差分絶対値を求める演算を行い、プロセッサエレメント４０内部のレジスタ８２に結果を格納する。他のプロセッサエレメント４２、４４等も同様である。
時刻ｔ＝４（ステップ１００）では、再度、複数のプロセッサエレメントの並列演算とレジスタ３４とレジスタ３６の９ビットのシフトを行う。その結果、プロセッサエレメント３８では、参照画像データra2と符号化画像データta2との差分絶対値を求める演算を行う。そして、レジスタ８２のデータと加算して、レジスタ８２に書き込む。また、プロセッサエレメント４０では、同様にして、参照画像データra3と符号化画像データta1との差分絶対値を求める演算を行い、プロセッサエレメント内部のレジスタ８２の値と加算する。
上述の動作を繰り返し、１６回目の演算とレジスタ３４とレジスタ３６の９ビットのシフトを行った時（ステップ１０２）の、レジスタの状態は、第１２図の時刻t=18で示される。ブロックマッチングを行う範囲が水平１６画素の場合は、この時点で１水平ラインの演算が終了する。
ここで、１ライン下のデータを演算するために、ワークＲＡＭ１２から３つレジスタ３０、３４、３６へのデータ転送を行う。まず、時刻ｔ＝１９（ステップ１０４）では、ワークＲＡＭ１２からレジスタＢにデータを転送する。
時刻ｔ＝２０（ステップ１０６）では、ワークＲＡＭ１２からレジスタ３６にデータを転送する。この結果、第１２図の時刻t=20の状態なり、先に演算したライン下の１ラインの参照画像のデータ、画素rb1からrb32がレジスタ３４とレジスタ３６にまたがって格納される。
時刻ｔ＝２１（ステップ１０８）では、ワークＲＡＭ１２からレジスタＡにデータを転送する。この結果、先に演算した下の１ラインの符号化画像の画素ta1からta16までがレジスタＡに格納され、３つのレジスタ３０、３４、３６の全てにデータが格納される。そして、前述と同様にして、演算を行う。さらに、この動作を１６ライン分、繰り返す。
その結果、プロセッサエレメント３８の内部レジスタ８２には、全ての画素に対する差分絶対値の累積加算値が格納される。この値は、第１３図におけるベクトル（０，０）のブロックマッチング演算の結果即ちベクトル（０，０）に対応する近似度を表す。
一方、プロセッサエレメント４０の内部レジスタ８２には、第１４図におけるベクトル（１，０）のブロックマッチング演算の結果が格納され、同様にして１６個のプロセッサエレメント３８…４４で同時に１６個の動きベクトルのブロックマッチング演算の結果を得ることができる。
本実形態では、ワークＲＡＭ１２からＳＩＭＤ演算器４に、データ処理装置のシステムデータ８を介することなく、多量のデータが一度に転送できると共に、ＳＩＭＤ演算器４にアドレス発生器を設けることなく、ＣＰＵ４のアドレス管理によってワークＲＡＭ１２とＳＩＭＤ演算器４との間のデータ転送が一元的に管理できる。従って、画像処理の動き検出をブロックマッチング法によって行うような、１つの命令によって同種の多数の演算を必要とするデータ処理に有効である。
＜実施形態２＞
第１５図は本発明によるデータ処理装置の第２の実施形態の構成を示すブロック図である。本実施形態は第１図のデータ処理装置に第二のＳＩＭＤ演算器１３０が追加されている。これに伴い、ＣＰＵ１３１からの制御線１３４と１３２が追加されている。ここで、第二のＳＩＭＤ演算器１３０の内部構成は、第２図で示したものと同じで、同一対応構成要素については同じ番号を付して説明を省く。また他の構成要素で第１図に示したものと実質的に同じ部分に関しては、同じ番号を付して説明を省く。
第１６図は、第２の実施形態（第１５図）におけるＣＰＵ１３１の構成を示すブロック図である。ＣＰＵ１３１の構成は、第３図で示した実施形態１におけるＣＰＵ２に、命令デコード回路１３３から出る制御線１３２及び１３４が付加された点を除いては、ＣＰＵ２に実質的に同じである。制御線１３２及び１３４は、第二のＳＩＭＤ演算器１３０を制御するためのものである。
第１７図は、実施形態２のデータ処理装置の動作を説明する処理フローチャートを示す。実施形態２において、ＳＩＭＤ演算器４の３つのレジスタにデータを格納する動作、つまり、ＤＲＡＭ１６らワークＲＡＭ１２にデータ転送する動作（ステップ９０）から、ワークＲＡＭ１２からレジスタＡに符号化画像データを転送する動作（ステップ９６）までは、第１１図に示した同じステップ番号を付した部分と同じである。
ステップ９６の次に、本実施形態の場合、ＳＩＭＤ演算器１３０のレジスタにデータを格納する。最初に、ワークＲＡＭ１２からレジスタＢに参照画像データを転送する（ステップ１４０）。次に、ワークＲＡＭ１２からレジスタＣに参照画像データを転送する（ステップ１４２）。最後に、ワークＲＡＭ１２からレジスタＡに符号化画像データを転送する（ステップ１４４）。そして、実施例１の場合と同様に、プロセッサエレメント（ＰＥ）による演算を行う。その結果、同時に３２個のプロセッサエレメントを用いて、異なるベクトルのブロックマッチングを行うことができ、より高速の処理ができる。
＜実施形態３＞
第１８図は本発明によるデータ処理装置の第３の実施形態の構成を示すブロック図である。本実施形態では、２つのワークＲＡＭ１４４及び１４６を持ち、ＤＲＡＭ１６側とＳＩＭＤ演算器４側とを切り替えて使用する。
ワークＲＡＭ１４４にデータが格納され、このデータを用いてＳＩＭＤ演算器４が信号処理を行っているとき、ワークＲＡＭ１４４は、セレクタ１４２と１５２によってＳＩＭＤ演算器４側に接続されている。一方、ワークＲＡＭ１４６は、セレクタ１４８と１５０によってＤＭＡC１２２側に接続されている。そして、ワークＲＡＭ１４６には、ＤＭＡC１２２がＤＲＡＭ１６から、ＳＩＭＤ演算器４が次に使用する画像データを転送している。ここで、ＳＩＭＤ演算器４が、ワークＲＡＭ１４４内の信号処理を終了すると、ワークＲＡＭ１４４とワークＲＡＭ１４６を切り替える。つまり、ワークＲＡＭ１４４をＤＭＡC１２２側に接続し、ワークＲＡＭ１４６をＳＩＭＤ演算器４側に接続する。この構成によって、ワークＲＡＭ１４６には、既に使うデータがＤＲＡＭ１６から転送されているため、ＳＩＭＤ演算器４は、すぐに演算動作を開始することができる。従って、演算効率を高めることができる。
＜実施形態４＞
第１９図は、本発明によるデータ処理装置の第４の実施形態を示す図である。本実施形態は、発明のデータ処理装置を画像信号圧縮LSIの中に構成したものである。
マイクロプロセッサユニット１６６のバス１８４に、各構成要素ブロックが接続されている。構成要素ブロックは、外部のモデムとのインタフェイス機能を持つ通信インターフェイス１６８、外部のオーディオ信号と入出力機能を有するオーディオインターフェイス１７０、外部のビデオ信号との入出力機能を有するビデオインターフェイスブロック１７２、可変長符号の符号化と復号化を担当する可変長符号化復号化ブロック１６４、量子化、逆量子化、DCT、逆DCT処理を担当するQ-DCT/IQ-IDCTブロック１６２、ＤＲＡＭ１７６の制御を担当するＤＲＡＭ制御ブロック１７４、動き検出ブロック１６０を含む。動き検出ブロック１６０は第１の実施形態で説明したものと同じである。
本実施形態では、第１図に示した装置と比較して、ＤＲＡＭインターフェイス１４とＤＲＡＭ１６に対応するＤＲＡＭ１７６がLSIの外に出ている点、また、ＭＰＵ１６６が動き検出ブロック１６０を制御するためのコントロールレジスタ１８５を持っているところが異なっている。このコントロールレジスタ１８５により、動き検出ブロック１６０のＣＰＵ１８０の制御が行われる。
本構成による画像圧縮時の動作を説明する。ビデオインターフェイスブロック１７２により入力された符号化画像データは、一度、ＤＲＡＭ１７６に格納される。そして、マクロブロック単位で動き検出ブロック１６０のワークＲＡＭに読み込まれる。この時、対応する探索範囲の参照画像データも同時に、動き検出ブロック１６０のワークＲＡＭに読み込まれる。第１の実施形態で説明したように、各動きベクトルの差分絶対値演算の累積加算を行う。全ベクトルの演算を終了した後、最も差分絶対値演算値の小さいベクトルをこのマクロブロックに対する動きベクトルとする。そして、この時の符号化画像と参照画像の対応する各画素の差分値をとり、その結果をQ-DCT/IQ-IDCTブロック１６４に送る。Q-DCT/IQ-IDCTブロック１６４では、動き検出ブロック１６０から送られてきた結果に対し、ＤＣＴ処理と量子化処理を行い、可変長符号化復号化ブロック１６４に送る。ここでは、可変長符号化処理を行い、画像データの圧縮処理が完了する。
上述のように、本発明を画像信号圧縮LSIに適用することにより、プログラマビリティの高く、高性能な画像信号圧縮LSIを構成することができる。
産業上の利用可能性
上述の実施形態で説明したように、本発明は、ＳＩＭＤ型演算器を構成するプロセッサエレメントに対するデータの供給を絶え間なくできるようになり、特に、画像信号を圧縮、伸長する多大の演算処理を繰り返り行う信号処理における演算効率を上げることができる。
【図１】
0003676237.tif 000002
【図２】
0003676237.tif 000003
【図３】
0003676237.tif 000004
【図４】
0003676237.tif 000005
【図５】
0003676237.tif 000006
【図６】
0003676237.tif 000007
【図７】
0003676237.tif 000008
【図８】
0003676237.tif 000009
【図９】
0003676237.tif 000010
【図１０】
0003676237.tif 000011
【図１１】
0003676237.tif 000012
【図１２】
0003676237.tif 000013
【図１３】
0003676237.tif 000014
【図１４】
0003676237.tif 000015
【図１５】
0003676237.tif 000016
【図１６】
0003676237.tif 000017
【図１７】
0003676237.tif 000018
【図１８】
0003676237.tif 000019
【図１９】
0003676237.tif 000020
【図２０】
0003676237.tif 000021