(57)【要約】【課題】ＳＩＭＤ演算を利用して画像処理を行う際に画像データを点順次から線順次又は面順次へ、また線順次又は面順次から点順次へ変換する処理の高速化を図る。【解決手段】画像処理装置は、点順次配列方式で保存されたＲＧＢ画像データから、ＳＩＭＤ演算で同時に演算する要素数長であって画像データの成分数個用意された読出用レジスタに、成分数（３）×要素数（４）＝１２の要素データを読み出し書き込むデータ読出部２１と、読み出した要素データを線順次に並び替えるデータ変換部２２と、並び替え後の要素データでＳＩＭＤ演算を利用した画像処理を実行する画像処理部２３と、演算結果を点順次配列に並び戻した後に保存するデータ書込部２５を有する。【選択図】図２
2008287556.tif 000002
【特許請求の範囲】
【請求項１】
１画素を表現する画像データの成分の数と、画像データの各成分を表す要素データのうちＳＩＭＤ演算で同時に演算する演算対象要素データの数とが互いに素の関係にある場合において、演算対象とする点順次形式の画像データから、連続する前記演算対象要素データ数個から成る要素データの組を少なくとも前記成分の数だけ読み出し、その読み出した要素データの組を、少なくとも成分数個用意された読出データ用記憶手段にそれぞれ書き込むデータ読出手段と、
前記各読出データ用記憶手段に記憶された要素データの中から同一成分の要素データのみを抽出するために成分数個のマスク用記憶手段それぞれに予め設定されたマスク値と、前記各読出データ用記憶手段に記憶された要素データとの論理積を求め、その求めた論理積を、少なくとも成分数個用意された論理積結果記憶手段にそれぞれ書き込む論理積実行手段と、
前記各論理積結果記憶手段に記憶された論理積の論理和を成分毎に求め、その求めた成分毎の論理和を、成分毎に用意された論理和結果記憶手段にそれぞれ書き込む論理和実行手段と、
前記各論理和結果記憶手段に記憶された要素データを用いて、少なくともＳＩＭＤ演算を含み、予め決められた内容の画像処理を実行する画像処理手段と、
を有し、点順次形式の画像データに含まれる要素データを、線順次または面順次に並び替えてからＳＩＭＤ演算を行うことを特徴とする画像処理装置。
【請求項２】
請求項１記載の画像処理装置において、
前記画像処理手段は、演算データ記憶手段に予め記憶された演算データと、前記読出データ用記憶手段に記憶された演算対象の要素データとのＳＩＭＤ演算を行うことを特徴とする画像処理装置。
【請求項３】
請求項１記載の画像処理装置において、
前記論理和結果記憶手段に記憶された要素データをＳＩＭＤ演算用に並び替える並び替え手段を有することを特徴とする画像処理装置。
【請求項４】
請求項３記載の画像処理装置において、
前記並び替え手段は、同一画素における他の成分の要素データとのＳＩＭＤ演算用に、当該他の成分用の前記論理和結果記憶手段に記憶された要素データを並び替えることを特徴とする画像処理装置。
【請求項５】
請求項３記載の画像処理装置において、
前記論理和結果記憶手段は、１成分に対して複数用意されており、
前記並び替え手段は、同一成分における他の要素データとのＳＩＭＤ演算用に、当該成分用の他の前記論理和結果記憶手段に記憶された要素データを並び替えることを特徴とする画像処理装置。
【請求項６】
前記並び替え手段は、前記画像処理手段で実行する画像処理の内容に応じて、並び替え動作を切り替えることを特徴とする画像処理装置。
【請求項７】
コンピュータに、
１画素を表現する画像データの成分の数と、画像データの各成分を表す要素データのうちＳＩＭＤ演算で同時に演算する演算対象要素データの数とが互いに素の関係にある場合において、演算対象とする点順次形式の画像データから、連続する前記演算対象要素データ数個から成る要素データの組を少なくとも前記成分の数だけ読み出し、その読み出した要素データの組を、少なくとも成分数個用意された読出データ用記憶手段にそれぞれ書き込ませ、
前記各読出データ用記憶手段に記憶された要素データの中から同一成分の要素データのみを抽出するために成分数個のマスク用記憶手段それぞれに予め設定されたマスク値と、前記各読出データ用記憶手段に記憶された要素データとの論理積を求め、その求めた論理積を、少なくとも成分数個用意された論理積結果記憶手段にそれぞれ書き込ませ、
前記各論理積結果記憶手段に記憶された論理積の論理和を成分毎に求め、その求めた成分毎の論理和を、成分毎に用意された論理和結果記憶手段にそれぞれ書き込ませ、
前記各論理和結果記憶手段に記憶された要素データを用いて、少なくともＳＩＭＤ演算を含み、予め決められた内容の画像処理を実行させ、
点順次形式の画像データに含まれる要素データを、線順次または面順次に並び替えてからＳＩＭＤ演算を行わせることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＩＭＤ演算の画像処理への適用に関する。
【背景技術】
【０００２】
画像処理に用いられる画像データは、一般に点順次の形式にて保存されている。例えば、１画素を表現する画像データが３成分であるＲＧＢデータの場合、１画素目のＲ，Ｇ，Ｂの各要素データ、次に２画素目のＲ，Ｇ，Ｂの各要素データ、次に３画素目のＲ，Ｇ，Ｂの各要素データ、そして最後尾のｎ画素目のＲ，Ｇ，Ｂの各要素データ、というように、画素（ピクセル）の並びを重視して画像の左上から右下へと各画素の各色成分の要素データを画素毎に順次１次元的に配列する。この点順次に対し、面順次という配列方式がある。面順次配列方式では、例えば、同じくＲＧＢデータの場合、画像を形成する１〜ｎ画素目までのＲ、次に１〜ｎ画素目までのＧ、そして１〜ｎ画素目までのＢ、というように、画像の各色成分の要素データを色面毎に順次１次元的に配列する。更に、画像データを色情報単位にまとめて取り扱う点で面順次に共通するが、面順次が画像データ全体を色面毎に配列するのに対し、画像を形成する１ライン毎に色情報単位にまとめて取り扱う方式として線順次が存在する。つまり、線順次配列方式では、例えば１ラインがｍ画素で構成される場合、線順次は、Ｒ１〜Ｒｍ，Ｇ１〜Ｇｍ，Ｂ１〜Ｂｍ，Ｒｍ＋１〜Ｒ２ｍ，Ｇｍ＋１〜Ｇ２ｍ，Ｂｍ＋１〜Ｂ２ｍ，Ｒ２ｍ＋１〜Ｒ３ｍ・・・、というように、ＲＧＢデータ全体を１ライン毎に順次１次元的に配列する。なお、画素毎の色情報は赤緑青の順序で記録されるが、赤緑青はそれぞれ０から２５５までの２５６階調の値を取り得る場合、１画素は３バイトである。
【０００３】
ところで、1つの命令で複数のデータに対して処理を行う演算方式として、ＳＩＭＤ（Single Instruction/Multiple Data (単一命令/複数データ)）演算がある。ＳＩＭＤ演算は、画像データを構成する複数の要素に対して同一内容の演算を行うのであれば、単一の命令にて複数の要素データをまとめて演算できるので、画像処理や物理演算のように膨大なデータに対して計算を単調に繰り返すような場合に適している。従って、ＳＩＭＤ演算を利用することにより画像処理の高速化が期待できる。
【０００４】
ＳＩＭＤ演算を利用して画像処理の高速化を実現するためには、点順次にて保存されている画像データをそのまま用いるより、色情報単位にまとめて取り扱う線順次や面順次の形式で取り扱う方が都合がよい。従って、ＳＩＭＤ演算を実施する際に、点順次形式にて保存されている画像データを線順次又は面順次形式に変換してから演算処理を行い、そして演算処理後に線順次又は面順次から点順次に戻すデータ変換を行ってから演算結果を保存する必要が生じてくる。
【０００５】
なお、専用の演算回路を設けることでＳＩＭＤ演算を利用した画像処理が提案されている（例えば、特許文献１）。
【０００６】
【特許文献１】特開２００４−２１９３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、画像データを点順次形式から線順次又は面順次形式に変換し、そして元に戻すという変換処理のオーバーヘッドが大きいと、画像処理全体として処理高速化という効果が期待できなくなってしまうおそれがある。
【０００８】
また、専用のハードウェアを設けることによって変換処理のオーバーヘッドは解消できるかもしれないが、種々の演算種類に対応するためには回路が複雑化してしまう。つまり、回路規模の増大に伴いスペース面やコスト面で不都合な場合が生じてくる可能性がある。
【０００９】
本発明は、ＳＩＭＤ演算を利用して画像処理を行う際に画像データを点順次から線順次又は面順次へ、また線順次又は面順次から点順次へ変換する処理の高速化を図ることを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る画像処理装置は、１画素を表現する画像データの成分の数と、画像データの各成分を表す要素データのうちＳＩＭＤ演算で同時に演算する演算対象要素データの数とが互いに素の関係にある場合において、演算対象とする点順次形式の画像データから、連続する前記演算対象要素データ数個から成る要素データの組を少なくとも前記成分の数だけ読み出し、その読み出した要素データの組を、少なくとも成分数個用意された読出データ用記憶手段にそれぞれ書き込むデータ読出手段と、前記各読出データ用記憶手段に記憶された要素データの中から同一成分の要素データのみを抽出するために成分数個のマスク用記憶手段それぞれに予め設定されたマスク値と、前記各読出データ用記憶手段に記憶された要素データとの論理積を求め、その求めた論理積を、少なくとも成分数個用意された論理積結果記憶手段にそれぞれ書き込む論理積実行手段と、前記各論理積結果記憶手段に記憶された論理積の論理和を成分毎に求め、その求めた成分毎の論理和を、成分毎に用意された論理和結果記憶手段にそれぞれ書き込む論理和実行手段と、前記各論理和結果記憶手段に記憶された要素データを用いて、少なくともＳＩＭＤ演算を含み、予め決められた内容の画像処理を実行する画像処理手段と、を有し、点順次形式の画像データに含まれる要素データを、線順次または面順次に並び替えてからＳＩＭＤ演算を行うことを特徴とする。
【００１１】
また、前記画像処理手段は、演算データ記憶手段に予め記憶された演算データと、前記読出データ用記憶手段に記憶された演算対象の要素データとのＳＩＭＤ演算を行うことを特徴とする。
【００１２】
また、前記論理和結果記憶手段に記憶された要素データをＳＩＭＤ演算用に並び替える並び替え手段を有することを特徴とする。
【００１３】
また、前記並び替え手段は、同一画素における他の成分の要素データとのＳＩＭＤ演算用に、当該他の成分用の前記論理和結果記憶手段に記憶された要素データを並び替えることを特徴とする。
【００１４】
また、前記論理和結果記憶手段は、１成分に対して複数用意されており、前記並び替え手段は、同一成分における他の要素データとのＳＩＭＤ演算用に、当該成分用の他の前記論理和結果記憶手段に記憶された要素データを並び替えることを特徴とする。
【００１５】
また、前記並び替え手段は、前記画像処理手段で実行する画像処理の内容に応じて、並び替え動作を切り替えることを特徴とする。
【００１６】
本発明に係る画像処理プログラムは、コンピュータに、１画素を表現する画像データの成分の数と、画像データの各成分を表す要素データのうちＳＩＭＤ演算で同時に演算する演算対象要素データの数とが互いに素の関係にある場合において、演算対象とする点順次形式の画像データから、連続する前記演算対象要素データ数個から成る要素データの組を少なくとも前記成分の数だけ読み出し、その読み出した要素データの組を、少なくとも成分数個用意された読出データ用記憶手段にそれぞれ書き込ませ、前記各読出データ用記憶手段に記憶された要素データの中から同一成分の要素データのみを抽出するために成分数個のマスク用記憶手段それぞれに予め設定されたマスク値と、前記各読出データ用記憶手段に記憶された要素データとの論理積を求め、その求めた論理積を、少なくとも成分数個用意された論理積結果記憶手段にそれぞれ書き込ませ、前記各論理積結果記憶手段に記憶された論理積の論理和を成分毎に求め、その求めた成分毎の論理和を、成分毎に用意された論理和結果記憶手段にそれぞれ書き込ませ、前記各論理和結果記憶手段に記憶された要素データを用いて、少なくともＳＩＭＤ演算を含み、予め決められた内容の画像処理を実行させ、点順次形式の画像データに含まれる要素データを、線順次または面順次に並び替えてからＳＩＭＤ演算を行わせることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、論理積や論理和、あるいはシフト等処理時間のかからない演算を使用して点順次から線順次または面順次に変換できるようにしたので、ＳＩＭＤ演算を利用した画像処理の高速化を図ることができる。
【発明を実施するための最良の形態】
【００１８】
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
【００１９】
本実施の形態の構成
図１は、本発明に係る画像処理装置の一実施の形態を示したハードウェア構成図である。本実施の形態における従前から存在する汎用的なコンピュータのハードウェア構成で実現できる。すなわち、画像処理装置２０は、図１に示したようにプロセッサ１、ＲＯＭ２、ＲＡＭ３、ハードディスクドライブ（ＨＤＤ）４を接続したＨＤＤコントローラ５、入力手段として設けられたマウス６とキーボード７、及び表示装置として設けられたディスプレイ８をそれぞれ接続する入出力コントローラ９、通信手段として設けられたネットワークコントローラ１０を内部バス１１に接続して構成される。なお、プロセッサ１には、算術的な処理を行なう回路であるＡＬＵ（Arithmetic and Logic Unit）及び演算や実行状態の保持に用いる記憶素子であるレジスタが内部に搭載されている。
【００２０】
図２は、本実施の形態における画像処理装置の機能ブロック構成図である。なお、図２には、本実施の形態の説明に必要な機能のみを図示しており、画像処理装置として本来的に持つ機能のうち説明に必要でない機能は省略している。
【００２１】
画像処理装置２０は、データ読出部２１、データ変換部２２、画像処理部２３、並び替え部２４、データ書込部２５、データ一時保持部２６及び画像データ記憶部２７を有している。データ一時保持部２６には、画像処理装置２０における画像処理実行の際に画像データの一部分の一時保持に利用される。画像データ記憶部２７には、画像処理対象となる画像データが点順次配列方式にて格納されている。データ読出部２１は、画像処理対象とする画像データを構成する各成分の要素データを演算対象要素データとして画像データ記憶部２７からデータ一時保持部２６に読み出す。データ変換部２２は、点順次から線順次又は面順次へ、また線順次又は面順次から点順次へ要素データの形式変換処理を行う。データ変換部２２に含まれる論理積実行部２８及び論理和実行部２９は、データ変換処理を実行する際にそれぞれ論理積、論理和を求める。画像処理部２３は、線順次に変換された各成分の要素データに対して画像処理を実施する。後述するように、本実施の形態において用いるレジスタは、ＳＩＭＤ演算で同時に演算する要素数個の要素データを保持する大きさ、すなわち４要素分の大きさで形成されているが、並び替え部２４は、データ変換部２２によりレジスタに記録された線順次形式の要素データを、実施すべき画像処理に適した並びに並び替える。なお、並び替え部２４は、実施すべき演算パターンの内容により必要に応じて動作する。ＳＩＭＤ演算部３０は、４要素を同時にＳＩＭＤ演算する。レジスタに記録された画像処理部２３による画像処理の結果は、データ変換部２２により線順次から点順次へ形式変換が施されるが、データ書込部２５は、画像処理結果、すなわち点順次形式でレジスタに保持された要素データを画像データ記憶部２７に書き込む。
【００２２】
画像処理装置２０における各構成要素２１〜２５は、画像処理装置２０に搭載されたプロセッサ１と、プロセッサ１で動作するプログラムとの協調動作により実現される。より詳細には、各構成要素２１〜２５は、ＡＬＵとＲＯＭ２またはＲＡＭ３に予め記憶された画像処理プログラムとにより実現される。また、本実施の形態では、データ一時保持部２６をプロセッサ１に搭載されたレジスタにより実現し、画像データ記憶部２７をＨＤＤ４にて実現することを想定している。
【００２３】
本実施の形態で用いるプログラムは、上記の通り、ＲＯＭ２に予め記憶させておくことを想定しているが、通信手段により提供することはもちろん、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体に格納して提供することも可能である。つまり、通信手段や記録媒体から提供されたプログラムは、画像処理装置２０を形成するコンピュータにインストールされ、プロセッサ１がインストールプログラムを順次実行することで各種処理を実現するようにしてもよい。
【００２４】
ここで、画像データ、レジスタの容量、ＳＩＭＤ演算で同時に演算する要素等本実施の形態を実施する上での設定条件について説明する。
【００２５】
画像データは、複数の画素によって構成され、また１画素は、複数の成分によって表現される。本実施の形態において画像処理対象とする画像データは、ＲＧＢデータを想定している。従って、各画素を表す成分は、Ｒ（赤），Ｇ（緑），Ｂ（青）の３色から成る色成分であることから、成分の数は３である。なお、画像データ記憶部２７には、上記の通り点順次配列方式にて格納されている。要素というのは、各画素を表現する成分それぞれのことをいい、要素データというのは各成分の画素値である。なお、画素毎の色情報は赤緑青の順序で記録されるが、赤緑青はそれぞれ０から２５５までの２５６階調の値を取るものとする。つまり、各成分の要素データは１バイト長であり、よって１画素は３バイトで表現できる。また、本実施の形態におけるレジスタ長は、プロセッサ１の仕様により３２ビット長とする。つまり、レジスタ長は、４バイト長であることから、１つのレジスタには、４要素データが一度に保持されることになる。これに応じて、ＳＩＭＤ演算で同時に演算する演算対象要素データの数は４である。
【００２６】
本実施の形態では、上記設定条件に基づき後述する画像処理を行うことになるが、前述したように１画素を表現する画像データの成分の数は３、そしてＳＩＭＤ演算で同時に演算する演算対象要素データの数は４と、成分数と演算対象要素データ数とが互いに素の関係にある。
【００２７】
なお、本実施の形態では、画像データとして一般的な成分数が３のＲＧＢデータを、画像処理装置として汎用的な３２ビットパーソナルコンピュータにて画像処理する場合を例にして説明する。ところで、プロセッサ１が一度に処理するビット数は、通常２のｎ乗になる。ＳＩＭＤ演算における演算対象要素データの数は、プロセッサ１の仕様に依存するので、通常２のｎ乗になる。従って、この演算対象要素データ数と素の関係になる画像データの成分の数は、２のｎ乗以外であればよく、３に限る必要はない。
【００２８】
本実施の形態の動作の概要
次に、本実施の形態における動作について説明する。画像データを構成する要素データをＳＩＭＤ演算するパターンとしては、次の３つのパターンに分類分けできると考えられる。すなわち、第１に、各画素において各要素データのみで演算を行うパターン、第２に、各画素において他の要素も用いて演算を行うパターン、第３に、各画素においてその周辺画素に含まれる他の要素も用いて演算を行うパターン、である。以下、図３に示したフローチャートと、各パターンに基づき行われる画像処理で用いる各種レジスタの要素データ設定例及びその遷移を示した図４乃至図６を用いてそれぞれのパターンに対する動作の詳細を説明する。
【００２９】
第１のパターン（各画素において各要素データのみで演算を行うパターン）
この演算のパターンは、ある要素データを他の要素データと完全に独立してＳＩＭＤ演算を行うことで演算結果が得られるパターンである。つまり、Ｒの要素データを用いて演算が行われる場合は、Ｒのその他の要素データ及びＧ，Ｂの各要素データを演算に用いない。同様に、Ｇの要素データを用いて演算が行われる場合は、Ｇのその他の要素データ及びＢ，Ｒの各要素データを、Ｂの要素データを用いて演算が行われる場合は、Ｂのその他の要素データ及びＲ，Ｇの各要素データを、それぞれ演算に用いない。ここでは、予め決められた所定の画像処理として、Ｒの画素値（要素データ）に０ｘ００１０、Ｇの画素値（要素データ）に０ｘ００２０、Ｇの画素値（要素データ）に０ｘ００３０、をそれぞれ加算する場合を例にして説明する。なお、加算値に付加された“０ｘ”は１６進数であることを示している。
【００３０】
第１のパターンに基づく演算を行うために、まずマスクレジスタ４２と、演算用レジスタ４３とを事前に用意しておく必要がある。後述する読出用レジスタ４１には、ＳＩＭＤ演算対象の要素データが点順次配列方式の並びのまま書き込まれることになるが、マスクレジスタ４２は、読出用レジスタ４１それぞれに記憶された要素データの中から同一成分の要素データのみを抽出するために用意された成分数個のマスク用記憶手段であり、要素データの並び替えの際に利用される。本実施の形態では、成分の数、すなわち３種類のマスクレジスタ４２が用意され、このうちマスクレジスタ“ｍａｓｋ０”には要素０，３の位置に、マスクレジスタ“ｍａｓｋ１”には要素２の位置に、マスクレジスタ“ｍａｓｋ２”には要素１の位置に、それぞれマスク値“０ｘＦＦＦＦ”が設定されている。なお、マスクレジスタ４２は、後述する第２，３のパターンにおいても利用される。
【００３１】
また、演算用レジスタ４３には、予め決められた画像処理の内容に適合したデータが予め設定される。この例では、前述したようにＲ，Ｇ，Ｂの各成分の各要素データに加算する値０ｘ００１０、０ｘ００２０及び０ｘ００３０が各演算用レジスタ“ａｄｄ＿ｒ”，“ａｄｄ＿ｇ”，“ａｄｄ＿ｂ”の要素０〜３それぞれに設定される。
【００３２】
ステップ１１０において、画像処理装置２０は、例えば画像データ記憶部２７に保存されている画像データのファイル名をディスプレイ８にリスト表示し、処理対象とする画像データファイルをユーザに選択させることで、画像処理対象の画像データを特定する。そして、データ読出部２１は、ユーザにより選択された画像データファイルの中からＳＩＭＤ演算対象とする演算対象要素データ数個の要素データの組を、成分数個読み出す。具体的には、演算対要素データ数（４）×成分数（３）＝１２の連続した要素データを先頭から順番に読み出す。そして、その読み出した１２の要素データを成分数個用意された読出データ用記憶手段にそれぞれ書き込む。本実施の形態では、図４において“ｄａｔａ０”、“ｄａｔａ１”、“ｄａｔａ２”と名付けられた３つの読出用レジスタ４１を読出データ用記憶手段として用意したので、読み出した１２の要素データを４要素ずつ“ｄａｔａ０”、“ｄａｔａ１”、“ｄａｔａ２”の各読出用レジスタ４１に順番に書き込む。画像処理対象となる画像データは、点順次配列方式にて画像データ記憶部２７に保存されているので、読出用レジスタ“ｄａｔａ０”には、１画素目の各要素データＲ１，Ｇ１，Ｂ１と２画素目の要素データＲ２の４要素データが設定される。続く読出用レジスタ“ｄａｔａ１”には、２画素目の残りの要素データＧ２，Ｂ２と、３画素目の要素データＲ３，Ｇ３の４要素データが設定される。そして、読出用レジスタ“ｄａｔａ２”には、３画素目の残りの要素データＢ３と、４画素目の要素データＲ４，Ｇ４，Ｂ４の４要素データが設定される。なお、図４に示した各種レジスタには、それぞれ４要素ずつ記録されることになるが、図面上、レジスタに記録された要素データがＲ成分であれば当該要素にドットを、Ｇ成分であれば当該要素に縦線を、Ｂ成分であれば当該要素に横線を、それぞれ描画した。図５，６においても同様である。
【００３３】
ステップ１２０において、データ変換部２２は、読出用レジスタ４１に保持されている点順次配列の画像データを線順次へ変換する。すなわち、上記要素データ読出処理においては、点順次配列の画像データを読み出して、その配列のまま読出用レジスタ４１それぞれに書き込んだので、これをＳＩＭＤ演算のために線順次に並び替えることになる。このために、データ変換部２２における論理積実行部２８は、読出用レジスタ４１それぞれに記憶された要素データの中から同一成分の要素データのみを抽出するために、各読出用レジスタ４１と、該当するマスクレジスタ４２との論理積を要素毎に求める（ステップ１２１）。具体的には、次の組の論理積を求める。
【００３４】
まず、Ｒ成分の場合、要素０，３にＲ成分の要素データが含まれている読出用レジスタ“ｄａｔａ０”は、要素０，３の位置にマスク値が設定されたマスクレジスタ“ｍａｓｋ０”との論理積を得る。同様に、要素２にＲ成分の要素データが含まれている読出用レジスタ“ｄａｔａ１”は、要素２の位置にマスク値が設定されたマスクレジスタ“ｍａｓｋ１”との論理積を、要素１にＲ成分の要素データが含まれている読出用レジスタ“ｄａｔａ２”は、要素１の位置にマスク値が設定されたマスクレジスタ“ｍａｓｋ２”との論理積を、それぞれ求める。なお、読出用レジスタ“ｄａｔａ０”のどの要素位置にどの成分の要素データが含まれているかということは、画素毎の色情報の並び順（通常はＲＧＢの順序で記録されている）と、ステップ１１０における要素データの読出しが何回目であるかという情報を把握すれば特定することができる。
【００３５】
論理積実行部２８は、この３つの論理積の結果を各論理積結果用レジスタ４４ｒに書き込む。続いて、論理和実行部２９は、各論理積結果用レジスタ４４ｒの論理和を求め（ステップ１２２）、その求めた論理和を論理和結果記憶手段として設けた論理和結果用レジスタ４５ｒに書き込む。このようにして、点順次配列で保存されていたことによりデータ読み出し時には３つの読出用レジスタ４１に散在していたＲの要素データを１つの論理和結果用レジスタ４５ｒにまとめることができる。すなわち、点順次を線順次に変換することができる。
【００３６】
他のＧ，Ｂ成分についても同様に処理することで点順次を線順次に変換することができる。すなわち、Ｇ成分の場合、要素１にＧ成分の要素データが含まれている読出用レジスタ“ｄａｔａ０”は要素１の位置にマスク値が設定されたマスクレジスタ“ｍａｓｋ２”と、要素１，３にＧ成分の要素データが含まれている読出用レジスタ“ｄａｔａ１”は、要素１，３の位置にマスク値が設定されたマスクレジスタ“ｍａｓｋ０”と、要素２にＧ成分の要素データが含まれている読出用レジスタ“ｄａｔａ２”は、要素２の位置にマスク値が設定されたマスクレジスタ“ｍａｓｋ１”と、それぞれ論理積を求める（ステップ１２１）。そして、論理積実行部２８が３つの論理積の結果を各論理積結果用レジスタ４４ｇに書き込むと、論理和実行部２９は、各論理積結果用レジスタ４４ｇの論理和を求め（ステップ１２２）、その求めた論理和を論理和結果用レジスタ４５ｇに書き込む。また、Ｂ成分の場合、要素２にＢ成分の要素データが含まれている読出用レジスタ“ｄａｔａ０”はマスクレジスタ“ｍａｓｋ１”と、要素１にＢ成分の要素データが含まれている読出用レジスタ“ｄａｔａ１”は、マスクレジスタ“ｍａｓｋ２”と、要素１，３にＢ成分の要素データが含まれている読出用レジスタ“ｄａｔａ２”は、マスクレジスタ“ｍａｓｋ０”と、それぞれ論理積を求める（ステップ１２１）。そして、論理積実行部２８が３つの論理積の結果を各論理積結果用レジスタ４４ｂに書き込むと、論理和実行部２９は、各論理積結果用レジスタ４４ｂの論理和を求め（ステップ１２２）、その求めた論理和を論理和結果用レジスタ４５ｂに書き込む。このようにして、Ｇ，Ｂ成分の各要素データについても点順次を線順次に変換することができる。
【００３７】
以上の点順次から線順次への変換処理を成分毎に実施することになる。なお、図４では成分毎に論理積（ステップ１２１）、そして論理和（ステップ１２２）を求める手順で図示したが、全ての成分に対して先に論理積を求め、その後に各成分について論理和を求める手順で処理してもよい。
【００３８】
ステップ１３０において、画像処理部２３は、第１のパターンに基づく画像処理を実行する。ここでは、予め決められた加算処理を実施する。具体的には、Ｒ成分の場合、論理和結果用レジスタ４５ｒの内容に演算用レジスタ“ａｄｄ＿ｒ”の内容、すなわち加算値“０ｘ００１０”を要素毎に加算する。この演算は、ＳＩＭＤ演算部３０により実施されることになるので、１加算命令において４要素の加算が同時に実施されることになる（ステップ１３２）。Ｇ成分の場合も同様に、論理和結果用レジスタ４５ｇの内容に演算用レジスタ“ａｄｄ＿ｇ”の各要素に設定された加算値“０ｘ００２０”を要素毎に加算する。また、Ｂ成分の場合、論理和結果用レジスタ４５ｂの内容に演算用レジスタ“ａｄｄ＿ｂ”の各要素に設定された加算値“０ｘ００３０”を要素毎に加算する。この処理による成分毎の演算結果は、各成分に対して設けられた演算結果用レジスタ“ｒｅｇ＿ｒ”，“ｒｅｇ＿ｇ”，“ｒｅｇ＿ｂ”に、それぞれ書き込まれる。
【００３９】
なお、この第１のパターンでは、上記演算内容から明らかなように各論理和結果用レジスタ４５に含まれる要素データを並び替えることなく線順次に変換することができる。
【００４０】
ステップ１４０において、データ変換部２２は、演算結果を線順次から点順次へ変換することになる。つまり、画像データ記憶部２７に保存するために要素データの並びを元の点順次に戻すことになる。この処理は、基本的には点順次を線順次に変換した処理の逆を行えばよいが、具体的には次のように行う。
【００４１】
まず、Ｒ成分の場合、論理積実行部２８により演算結果用レジスタ“ｒｅｇ＿ｒ”と、３種類の各マスクレジスタ４２との論理積を求め（ステップ１４１）、その論理積の結果を所定の中間レジスタ４６にて保持する。具体的には、演算結果用レジスタ“ｒｅｇ＿ｒ”に含まれる要素０，３を抽出するために、要素０，３にマスク値が設定されているマスクレジスタ“ｍａｓｋ０”との論理積を求める。また、演算結果用レジスタ“ｒｅｇ＿ｒ”に含まれる要素２を抽出するために、要素２にマスク値が設定されているマスクレジスタ“ｍａｓｋ１”と、また要素１を抽出するために、要素１にマスク値が設定されているマスクレジスタ“ｍａｓｋ２”と、それぞれ論理積を求める。
【００４２】
Ｇ，Ｂ成分においても同様に演算結果用レジスタ“ｒｅｇ＿ｇ”， “ｒｅｇ＿ｂ”と、当該演算結果用レジスタの対応する要素位置にマスク値が設定されているいずれかのマスクレジスタ４２との論理積を求め、所定の中間レジスタ４６にて保持する。
【００４３】
そして、図４に示したように、各成分の対応する位置にある中間レジスタ４６の論理和を求め（ステップ１４２）、この論理和の結果を書込用レジスタ４７にそれぞれ書き込む。なお、書込用レジスタ４７は、読出用レジスタ４１を利用してもよい。このようにして、演算結果用レジスタ“ｒｅｇ＿ｒ” ，“ｒｅｇ＿ｇ”， “ｒｅｇ＿ｂ”により線順次配列にて保持されていた要素データを点順次配列に変換することができる。
【００４４】
ステップ１５０において、データ書込部２５は、書込用レジスタ４７に保持されていた要素データを順番に画像データ記憶部２７に書き込む。これは、ユーザ指示又はシステムの設定等に応じて新しい画像データファイルとして保存したり、あるいは処理対象となった既存の画像データファイルを上書き保存したりする。
【００４５】
以上のようにして、画素０〜３を構成する１２の要素データにつき演算が終了すると、次の１２の要素データ、すなわちここでは画素４〜７に含まれる１３〜２４番目の要素データに対して上記ステップ１１０〜１５０の処理を同様に行う。これを画像データ全体に対して実施されるまで繰り返し実行する（ステップ１６０）。このようにして、第１のパターンに基づく演算を含む画像処理を処理対象の画像データに対して実施することができる。
【００４６】
第２のパターン（各画素において他の要素も用いて演算を行うパターン）
この演算のパターンは、ある画素に含まれる要素データを、同一画素に含まれる１または複数の他の成分の要素データと共にＳＩＭＤ演算を行うことで演算結果が得られるパターンである。ここでは、予め決められた所定の画像処理として、Ｒ成分の要素データを同一画素のＧ成分の要素データと加算し、Ｇ成分の要素データを同一画素のＢ成分の要素データと加算し、Ｂ成分の要素データを同一画素のＲ成分の要素データと加算する場合を例にして説明する。つまり、ここでは、同一画素内においてＲ＝Ｒ＋Ｇ、Ｇ＝Ｇ＋Ｂ、Ｂ＝Ｂ＋Ｒという加算処理を、ＳＩＭＤ演算を用いて行う。なお、第２のパターンに基づく演算を行うためには、第１のパターンにおいて説明したとおりマスクレジスタ４２を事前に用意しておく必要がある。
【００４７】
なお、この第２のパターンに基づく演算は、図３と図５を用いて説明するが、各処理において第１のパターンと共通する処理内容については、適宜説明を省略する。
【００４８】
ステップ１１０において、画像処理装置２０におけるデータ読出部２１は、ユーザにより指定された画像データの中から連続する１２の要素データを読み出し、読出用レジスタ４１に順番に書き込むが、この処理は第１のパターンと同じなので説明を省略する。
【００４９】
ステップ１２０において、データ変換部２２は、画像データの点順次配列の要素データを線順次へ変換するが、各論理和結果用レジスタ４５ｒ，４５ｇ，４５ｂの各画素値（要素データ）が同じことからも理解できるように、この処理も第１のパターンと同じでよいため、説明を省略する。
【００５０】
ステップ１３０において、画像処理部２３は、第２のパターンに基づく画像処理を実行する。ここでは、同一画素内においてＲ＝Ｒ＋Ｇ、Ｇ＝Ｇ＋Ｂ、Ｂ＝Ｂ＋Ｒという加算処理を実施することになるが、各論理和結果用レジスタ４５ｒ，４５ｇ，４５ｂの内容から明らかなように同一画素に含まれる各要素データがずれた位置関係にあることが把握できる。従って、ＳＩＭＤ演算を用いて加算処理をするためには、同一画素の要素データの位置合わせを行う必要がある。本実施の形態では、この位置合わせを、いずれかの論理和結果用レジスタ４５に保持された要素データの並び順を入れ替えることで実現するようにした。なお、この要素データの入替処理は、並び替え部２４により実施される（ステップ１３１）。
【００５１】
本実施の形態では、Ｒ成分を基準として位置合わせを行うようにした。もちろん、他の成分を基準としてもよい。ここで、画像データの画素の並び順を画素０，１，・・・，ｎと表現した場合、Ｒ成分用の論理和結果用レジスタ４５ｇの要素３〜０には、それぞれ画素１の要素データ“０ｘ０００１”、画素２の要素データ“０ｘ０００２”、画素３の要素データ“０ｘ０００３”、そして画素０の要素データ“０ｘ００００”が設定されている。
【００５２】
一方、Ｇ成分用の論理和結果用レジスタ４５ｇの要素３〜０には、それぞれ画素２の要素データ“０ｘ００１２”、画素３の要素データ“０ｘ００１３”、画素０の要素データ“０ｘ００１０”、そして画素１の要素データ“０ｘ００１１”が設定されている。従って、Ｇ成分の２，３，０，１という画素の並び番を、Ｒ成分の１，２，３，０に合わせるために、論理和結果用レジスタ４５ｇを右に１要素分の１６ビットシフトする。換言すると、論理和結果用レジスタ４５ｇに含まれる各要素データの要素位置を右に１回シフトする。なお、１番右に位置する画素１の要素０は右にシフトできないので、この場合は論理和結果用レジスタ４５ｇの１番左の要素位置に移動させる。このように、サイクリックにシフトすることによって、Ｇ成分の２，３，０，１という画素の並び番を１，２，３，０とＲ成分に合致させることができる。この要素位置の入替結果を入替用レジスタ４８ｇにて保持する。
【００５３】
Ｂ成分についても同様に、Ｒの１，２，３，０という画素の並び番に合致させるように、論理和結果用レジスタ４５ｂに含まれる要素データを並び替える。すなわち、Ｂ成分用の論理和結果用レジスタ４５ｒには、３，０，１，２という画素の並び番で各要素３〜０に設定されているので、右又は左に２要素分の３２ビットシフトする。換言すると、論理和結果用レジスタ４５ｇに含まれる各要素データの要素位置を右又は左に２回シフトする。これにより、Ｂ成分の画素の並び順をＲ成分の１，２，３，０という画素の並び番に合致させることができる。
【００５４】
以上のようにして、同一画素に含まれる各成分の各要素の位置合わせを行うと、ＳＩＭＤ演算部３０は、前述した加算処理Ｒ＝Ｒ＋Ｇ、Ｇ＝Ｇ＋Ｂ、Ｂ＝Ｂ＋Ｒを実行し、この演算結果を成分毎に用意された演算結果用レジスタ“ｒｅｇ＿ｒ”，“ｒｅｇ＿ｇ”，“ｒｅｇ＿ｂ”にそれぞれ書き込む（ステップ１３２）。
【００５５】
画像処理の結果は、画像データ記憶部２７にて保存することになるが、その際に線順次から点順次に要素データの配列を元に戻す必要があることについては、第１のパターンにおいて説明した。この第２のパターンでは、ＳＩＭＤ演算の実施前にＧ，Ｂの各成分について要素データの並び替えをしたので、線順次から点順次への変換前に元に戻す必要がある。つまり、位置合わせのために、Ｇ成分では右に１回、Ｂ成分では右または左に２回シフトしたので、この並び替えを元に戻すために、演算結果を保持する演算結果用レジスタ “ｒｅｇ＿ｇ”，“ｒｅｇ＿ｂ”の各要素を、それぞれ左に１回、左または右に２回シフトすることによって要素データを保持する要素位置を元に戻すよう並び替える（ステップ１３３）。
【００５６】
ステップ１４０において、データ変換部２２は、演算結果用レジスタ“ｒｅｇ＿ｒ”，“ｒｅｇ＿ｇ”，“ｒｅｇ＿ｂ”に保持された演算結果を線順次から点順次へ変換することになるが、この処理は、第１のパターンと同じなので説明を省略する。
【００５７】
そして、ステップ１５０において、データ書込部２５は、書込用レジスタ４７に保持されていた要素データを順番に画像データ記憶部２７に書き込む。この処理も第１のパターンと同じなので説明を省略する。
【００５８】
以上のようにして、１２の要素データにつき演算が終了すると、次の１２の要素データ、すなわちここでは１３〜２４番目の要素データに対して上記ステップ１１０〜１５０の処理を同様に行う。これを画像データ全体に対して実施されるまで繰り返し実行する（ステップ１６０）。
【００５９】
この第２のパターンでは、以上のようにして同一画素における他の成分の要素データとの演算においてＳＩＭＤ演算を利用することができる。
【００６０】
第３のパターン（各画素においてその周辺画素に含まれる他の要素も用いて演算を行うパターン）
上記第２のパターンでは、同一画素に含まれる他の成分の要素データと共にＳＩＭＤ演算を行う場合であったが、この第３のパターンでは、当該画素の周辺画素に含まれる１または複数の要素データと共にＳＩＭＤ演算を行うことで演算結果が得られるパターンである。ここでは、予め決められた所定の画像処理として、ある画素Ｐｍのある成分の要素データに、直後に位置する画素Ｐｍ＋１に含まれる同一成分の要素データを加算する場合を例にして説明する。つまり、ここでは、Ｒｍ＝Ｒｍ＋Ｒｍ＋１、Ｇｍ＝Ｇｍ＋Ｇｍ＋１、Ｂｍ＝Ｂｍ＋Ｂｍ＋１という加算処理を、ＳＩＭＤ演算を用いて行うことにする。
【００６１】
第３のパターンに基づく演算を行うためには、図６に示したように成分数の２倍の読出用レジスタ “ｄａｔａ０”〜“ｄａｔａ５”を予め用意しておく必要がある。これは、次の理由による。
【００６２】
まず、上記第２のパターンでは、演算に用いる他の要素データは、同一画素に含まれていたので、例えば最初のデータ読み出しでは、演算に必要な全ての要素データ、具体的には画素０〜３に含まれるＲ０〜Ｒ３，Ｇ０〜Ｇ３，Ｂ０〜Ｂ３の１２の要素データを取り出すことができた。しかし、この第３のパターンの演算例では、最後尾の画素３に含まれるＲ３，Ｇ３，Ｂ３に対する演算にはＲ４，Ｇ４，Ｂ４という各要素データが必要になる。そこで、Ｒ４，Ｇ４，Ｂ４の各要素データを処理対象のＲ０〜Ｒ３，Ｇ０〜Ｇ３，Ｂ０〜Ｂ３と共に読み出すために、図６に示したように成分数の２倍の読出用レジスタ“ｄａｔａ０”〜“ｄａｔａ５”を用意する。なお、データ読出部２１は、演算対要素データ数（４）×成分数（３）＝１２の連続した要素データを組にして読み出すので、１２の整数倍（この例では２倍）である２４の要素データを読み出す必要がある。
【００６３】
なお、この例では、直後の画素の要素データを演算を用いるので、成分数の２倍の読出用レジスタ４１を用意すれば足りるが、画像処理の内容によっては、更に３倍以上の読出用レジスタ４１が必要になってくる場合もあり得る。
【００６４】
また、第３のパターンでは、第１，２のパターンで使用したマスクレジスタ“ｍａｓｋ０”〜“ｍａｓｋ２”に加えて、要素データの並び替えの便宜を図るためにマスクレジスタ“ｍａｓｋ３”，“ｍａｓｋ４”を予め用意した。
【００６５】
なお、この第３のパターンに基づく演算は、図３と図６を用いて説明するが、各処理において第１又は第２のパターンと共通する処理内容については、適宜説明を省略する。
【００６６】
ステップ１１０において、画像処理装置２０におけるデータ読出部２１は、ユーザにより指定された画像データの中から連続する２４の要素データを読み出し、読出用レジスタ４１に順番に書き込むが、この処理は、第１のパターンと比較して読み出す要素データ数が２倍になる点が異なるだけなので説明を省略する。
【００６７】
ステップ１２０において、データ変換部２２は、画像データの点順次配列の要素データを線順次へ変換するが、図４と図６における各論理和結果用レジスタ４５ｒ，４５ｇ，４５ｂの各画素値（要素データ）が同じことからも理解できるように、画素０〜３の１２の要素データに対する処理も第１のパターンと同じでよい。従って、このデータ変換処理の説明は省略する。
【００６８】
ステップ１３０において、画像処理部２３は、第３のパターンに基づく画像処理を実行する。ここでは、Ｒｍ＝Ｒｍ＋Ｒｍ＋１、Ｇｍ＝Ｇｍ＋Ｇｍ＋１、Ｂｍ＝Ｂｍ＋Ｂｍ＋１という加算処理を実施することになるが、ＳＩＭＤ演算により加算を行うために、Ｒ成分の場合、ＳＩＭＤ演算を行う前に演算対象となるＲｍとＲｍ＋１をそれぞれ保持するレジスタにおいて同じ要素位置に合致させておく必要がある。そのため、並び替え部２４は、次のような要素データの並び替えを実施する（ステップ１３１）。
【００６９】
まず、Ｒ成分に対する並び替えに着目すると、図６に示した論理和結果用レジスタ４５ｒと演算結果用レジスタ“ｒｅｇ＿ｒ０”の各画素値を比較してみると理解できるように、並び替え部２４は、画素を左から順に画素３，２，１，０という順番に並び替えていることがわかる。この並び替えを実現するために、並び替え部２４は、論理和結果用レジスタ４５ｒを、マスクレジスタ“ｍａｓｋ３”，“ｍａｓｋ４”とそれぞれ論理積を求め、そしてこのうちマスクレジスタ“ｍａｓｋ４”との論理積の結果を２要素分の３２ビットを右又は左にシフトする。その後、マスクレジスタ“ｍａｓｋ３”に保持されている論理積の結果との論路和を求め、演算結果用レジスタ“ｒｅｇ＿ｒ０”に書き込む。このようにして、Ｒ成分の画素３〜０を当該画素の並び順で並べることができる。
【００７０】
以上は、画素３〜０に含まれる１２の要素データに対する処理であるが、読出用レジスタ “ｄａｔａ３”〜“ｄａｔａ５”に対しても同様に処理することで画素７〜４の各要素データを当該画素の並び順で並べることができる。この画素７〜４に対する並び替えの結果は、演算結果用レジスタ“ｒｅｇ＿ｒ１”に書き込まれる。
【００７１】
第３のパターンにおける並び替え処理（ステップ１３１）の考え方は、上記の通りなので、Ｇ，Ｂの各成分においても同様にして演算結果用レジスタ“ｒｅｇ＿ｇ０”，“ｒｅｇ＿ｇ１”，“ｒｅｇ＿ｂ０”，“ｒｅｇ＿ｂ１”を得る。Ｒ成分の場合と異なるのは、読出用レジスタ “ｄａｔａ０”〜“ｄａｔａ５”に保持される各要素の位置が異なるため、この位置の相違に応じて論理積を求めるのに用いるマスクレジスタ“ｍａｓｋ３”，“ｍａｓｋ４”と、レジスタ内におけるシフト量が異なってくる。いずれにしても、演算結果用レジスタ“ｒｅｇ＿ｇ０”，“ｒｅｇ＿ｂ０”における各要素の並びは画素３〜０、演算結果用レジスタ“ｒｅｇ＿ｇ１”，“ｒｅｇ＿ｂ１”における各要素の並びは画素７〜４、とそれぞれ当該画素の並び順で並べられることになる。
【００７２】
続いて、並び替え部２４は、加算対象とする各画素値（要素データ）の位置合わせを行うための並び替えを行う。例えば、Ｒ成分の場合、Ｒｍ＝Ｒｍ＋Ｒｍ＋１なので、あるレジスタにおける画素０と他のレジスタにおける画素１の各要素位置などのように加算対象とする画素同士を同じ要素位置に合致させるための並び替えを行う必要がある。
【００７３】
例えば、Ｒ成分の画素３〜０の並びは、演算結果用レジスタ“ｒｅｇ＿ｒ０”に存在している。一方、画素３〜０（Ｒｍ：ｍ＝３〜０）に加算する画素４〜１（Ｒｍ＋１：ｍ＝３〜０）を保持するレジスタは存在しないので、図６に示したようにこの画素４〜１という並び順でＲ成分の要素データを保持する演算結果用レジスタ“ｒｅｇ＿ｒ２”を用意する必要がある。そのために、並び替え部２４は、まず演算結果用レジスタ“ｒｅｇ＿ｒ０”を１６ビット右にシフトする。つまり、１要素分右にシフトする。このとき、１番左の要素には、第２のパターンのようにサイクリックにシフトせずに、“０ｘ００００”を書き込む。このようにして、中間レジスタ４９ｒ−１を得る。また、演算結果用レジスタ“ｒｅｇ＿ｒ１”を４８ビット左にシフトする。つまり、３要素分左にシフトする。このとき、１番左以外の要素には、第２のパターンのようにサイクリックにシフトせずに、３要素分全てに“０ｘ００００”を書き込む。このようにして、中間レジスタ４９ｒ−２を得る。そして、中間レジスタ４９ｒ−１と中間レジスタ４９ｒ−２との論理和を求め、その結果を演算結果用レジスタ“ｒｅｇ＿ｒ２”に書き込む。
【００７４】
このようにして、画素４〜１（Ｒｍ＋１：ｍ＝３〜０）を保持するレジスタを用意すると、ＳＩＭＤ演算部３０は、演算結果用レジスタ“ｒｅｇ＿ｒ０”と演算結果用レジスタ“ｒｅｇ＿ｒ２”でＳＩＭＤ演算を実行することで、Ｒｍ＝Ｒｍ＋Ｒｍ＋１（ｍ＝３〜０）の演算結果を得る。
【００７５】
Ｇ，Ｂの各成分においても同様にして、演算結果用レジスタ“ｒｅｇ＿ｇ０”，“ｒｅｇ＿ｇ１”，“ｒｅｇ＿ｂ０”，“ｒｅｇ＿ｂ１”から演算結果用レジスタ“ｒｅｇ＿ｇ２”，“ｒｅｇ＿ｂ２”を得て、ＳＩＭＤ演算を実行することで、Ｇｍ＝Ｇｍ＋Ｇｍ＋１（ｍ＝３〜０）及びＢｍ＝Ｂｍ＋Ｂｍ＋１（ｍ＝３〜０）というＧ，Ｂ各成分における演算結果を得る。
【００７６】
以上の画素３〜０に対する画像処理の結果は、画像データ記憶部２７にて保存することになるが、その際に線順次から点順次に要素データの配列を元に戻す必要があり、また、ＳＩＭＤ演算を実行するために各成分について要素データの並び替えをしたので、線順次から点順次への変換前にその並びを元に戻す並び替え処理（ステップ１３３）を実施する必要があることについては、第２のパターンにおいて説明したとおりである。ただ、この元に戻す処理内容は、第２のパターンで説明したので、ここでの説明は省略する。
【００７７】
ステップ１４０において、データ変換部２２は、演算結果用レジスタ“ｒｅｇ＿ｒ３”，“ｒｅｇ＿ｇ３”，“ｒｅｇ＿ｂ３”に保持された演算結果を線順次から点順次へ変換することになるが、この処理は、第１のパターンと同じなので説明を省略する。
【００７８】
そして、ステップ１５０において、データ書込部２５は、書込用レジスタに保持されていた要素データを順番に画像データ記憶部２７に書き込む。この処理も第１のパターンと同じなので説明を省略する。
【００７９】
以上のようにして、処理対象である画素３〜０を構成する１２の要素データにつき画像処理が終了すると、次の１２の要素データ、すなわちここでは１３〜２４番目の要素データに対して上記ステップ１１０〜１５０の処理を同様に行う。これを画像データ全体に対して実施されるまで繰り返し実行する（ステップ１６０）。
【００８０】
なお、第３のパターンでは、次に続く１２の要素データは、読出用レジスタ４１にすでに読み出し済みである。もちろん、読出用レジスタ“ｄａｔａ０”〜“ｄａｔａ２”に改めて読み出してもよいが、処理効率を考慮して、次の１２の要素データのみを読出用レジスタ“ｄａｔａ０”〜“ｄａｔａ２”と読出用レジスタ“ｄａｔａ３”〜“ｄａｔａ５”に交互に読み出すようにしてもよい。具体的にいうと、画素４〜７に対する画像処理の際、画素４〜７自体は画素０〜３に対する画像処理の際に読み出し済みなので、これに続く画素８〜１１の各要素データのみを読出用レジスタ“ｄａｔａ０”〜“ｄａｔａ２”に読み出すようにする。
【００８１】
この第３のパターンでは、以上のようにしてある画素における要素データと周辺画素に含まれる要素データとの演算においてＳＩＭＤ演算を利用することができる。なお、前述した第３のパターンの画像処理では、ある画素に対する直後の画素を周辺画素の例として説明した。このため、読み出し単位である１２要素の整数倍として、２倍の２４の要素データを保持できるだけの容量で読出用レジスタ４１を用意しておけばよい。このデータ読み出しに必要な読出用レジスタ４１の容量は、実行する画像処理に依存するが、この画像処理の内容は既知なので、必要なレジスタ容量は事前に用意することができる。なお、仮に、画像データ全てを読出用レジスタ４１に読み出すとしたならば、このときには点順次から線順次ではなく面順次への変換ということができる。
【００８２】
本実施の形態によれば、以上説明したように、少ないステップ数で点順次から線順次へ、また線順次又は面順次から点順次へ画像データを変換することができるので、データ変換処理の高速化を図ることができる。特に、ＳＩＭＤ演算のために行う要素データの並び替え処理として、論理積や論理和、また要素データシフト等処理に時間のかからない、換言すると演算速度の速い演算を用いているのでこの処理高速化という効果はより顕著になる。なお、本実施の形態では、要素の並び替えを要素のシフトにより行ったが、要素の入替命令によっても可能であり、この並び替えの方法は、プロセッサ１の種類に依存する。
【００８３】
また、上記の通り、専用のハードウェア構成を有する必要はなく、論理積と論理和という演算での点順次から線順次への変換、また実施すべき画像処理の内容に応じて要素の入替を行う並び替え部２４を用意すればよいので、多種多様な画像処理にも柔軟かつ迅速に対応することができる。
【００８４】
本実施の形態では、以上説明したように上記３種類の演算パターンを例示したが、加算値や演算対象とする要素または画素が上記設定例と異なる場合でも、ＳＩＭＤ演算を利用した画像処理は、基本的には上記３パターンのいずれか若しくは３パターンの組合せにより行うことができると考えられる。
【００８５】
また、上記演算の例では、要素データ同士を単に加算する場合を例にしたが、要素データに係数を乗算するなど種々の演算を行うことも可能である。例えば、Ｒｍ＝Ｒｍ＋αＧｍ（αは係数、ｍ＝１〜ｎ）等のような演算を行うことも可能である。もちろん、αという係数を全てのＧｍに対して乗算という演算を行うので、ＳＩＭＤ演算により演算可能である。
【図面の簡単な説明】
【００８６】
【図１】本発明に係る画像処理装置の一実施の形態を示したハードウェア構成図である。
【図２】本実施の形態における画像処理装置の機能ブロック構成図である。
【図３】本実施の形態における画像処理を示したフローチャートである。
【図４】本実施の形態において、各画素において各要素データのみで演算を行う第１のパターンにおける各種レジスタの要素データ設定例及びその遷移を示した図である。
【図５】本実施の形態において、各画素において他の要素も使用して演算を行う第２のパターンにおける各種レジスタの要素データ設定例及びその遷移を示した図である。
【図６】本実施の形態において、各画素においてその周辺画素に含まれる他の要素も使用して演算を行う第３のパターンにおける各種レジスタの要素データ設定例及びその遷移を示した図である。
【符号の説明】
【００８７】
１  プロセッサ、２  ＲＯＭ、３  ＲＡＭ、４  ハードディスクドライブ（ＨＤＤ）、５  ＨＤＤコントローラ、６  マウス、７  キーボード、８  ディスプレイ、９  入出力コントローラ、１０  ネットワークコントローラ、１１  内部バス、２０  画像処理装置、２１  データ読出部、２２  データ変換部、２３  画像処理部、２４  並び替え部、２５  データ書込部、２６  データ一時保持部、２７  画像データ記憶部、２８  論理積実行部、２９  論理和実行部、３０  ＳＩＭＤ演算部、４１  読出用レジスタ、４２  マスクレジスタ、４３  演算用レジスタ、４４  論理積結果用レジスタ、４５  論理和結果用レジスタ、４６，４９  中間レジスタ、４７  書込用レジスタ、４８  入替用レジスタ。
【図１】
2008287556.tif 000003
【図２】
2008287556.tif 000004
【図３】
2008287556.tif 000005
【図４】
2008287556.tif 000006
【図５】
2008287556.tif 000007
【図６】
2008287556.tif 000008