(57)【要約】【課題】  情報処理システム、特に画像データの取得における画像処理システムに関し、回路規模を増大することなく、データ処理の効率を向上させることができる。【解決手段】  処理対象画像を記憶する第１及び第２の画像記憶装置１０，１１と、画像記憶装置１０，１１にアクセスするアドレスポインタ１２，１３と、２つのアドレスを計算する計算手段と、アドレスポインタ１２，１３にアドレスを設定する設定手段と、処理対象画像中の一連の連続する画素が、画像記憶装置１０，１１に連続配置されているか否かを検出する検出手段とを備え、アドレスポインタ１２，１３が、画像記憶装置１０，１１に同時アクセスすることを特徴とするものである。【選択図】    図２
2006139574.tif 000002
【特許請求の範囲】
【請求項１】
処理対象データを記憶する第１及び第２の記憶手段と、
前記第１の記憶手段にアクセスする第１のアクセス手段と、
前記第２の記憶手段にアクセスする第２のアクセス手段と、
前記処理対象データ中の一連の連続するデータが、前記第１及び第２の記憶手段に連続配置されているか否かを検出する検出手段と、
前記検出手段による検出結果に基づいて２つのアドレスを計算する計算手段と、
前記第１及び第２のアクセス手段に前記計算手段により得たアドレスを設定する設定手段とを備え、
前記第１及び第２のアクセス手段が、前記第１及び第２の記憶手段に同時アクセスすることを特徴とする情報処理システム。
【請求項２】
処理対象画像を記憶する第１及び第２の画像記憶手段と、
前記第１の画像記憶手段にアクセスする第１のアクセス手段と、
前記第２の画像記憶手段にアクセスする第２のアクセス手段と、
前記処理対象画像中の一連の連続する画素が、前記第１及び第２の画像記憶手段に連続配置されているか否かを検出する検出手段と、
前記検出手段による検出結果に基づいて２つのアドレスを計算する計算手段と、
前記第１及び第２のアクセス手段に前記計算手段により得たアドレスを設定する設定手段とを備え、
前記第１及び第２のアクセス手段が、前記第１及び第２の画像記憶手段に同時アクセスすることを特徴とする画像処理システム。
【請求項３】
前記検出手段は、前記一連の連続する画素の個数を記憶するとともに、前記一連の連続する画素の前記第１及び第２の画像記憶手段内における記憶位置を与える列ポインタを有し、かつ、前記一連の連続する画素の個数と前記列ポインタを用いて、前記一連の連続する画素が前記第１及び第２の画像記憶手段において、連続配置されているか否かを検出することを特徴とする請求項２記載の画像処理システム。
【請求項４】
前記第１の画像記憶手段が、水平方向にｐ１個(ｐ１は正の整数)の画素を記憶することが可能であり、
前記第２の画像記憶手段が、水平方向にｐ２個(ｐ２は正の整数)の画素を記憶することが可能であり、
処理対象画像を水平方向にｐ１画素，ｐ２画素の順で繰り返し分割して、前記分割された画像を前記第１及び第２の画像記憶手段に順に格納したことを特徴とする請求項３に記載の画像処理システム。
【請求項５】
前記第１の画像記憶手段が、水平方向にｐ１個(ｐ１は正の整数)の画素を記憶することが可能であり、
前記第２の画像記憶手段が、水平方向にｐ２個(ｐ２は正の整数)の画素を記憶することが可能であり、
処理対象画像を垂直方向にｐ１画素，ｐ２画素の順で繰り返し分割して、前記分割された画像を前記第１及び第２の画像記憶手段に順に格納したことを特徴とする請求項３に記載の画像処理システム。
【請求項６】
水平Ｈ（Ｈ≧２の整数），垂直Ｖ（Ｖ≧２の整数）のサイズの処理対象画像を、水平ｐ１（ｐ１は正の整数），垂直Ｖのサイズ、及び水平ｐ２（ｐ２は正の整数），垂直Ｖのサイズの画像に順に分割し、前記分割された画像を前記第１及び第２の画像記憶手段に順に格納したことを特徴とする請求項４に記載の画像処理システム。
【請求項７】
水平Ｈ（Ｈ≧２の整数），垂直Ｖ（Ｖ≧２の整数）のサイズの処理対象画像を、水平Ｈ，垂直ｐ１（ｐ１は正の整数）のサイズ、及び水平Ｈ，垂直ｐ２（ｐ２は正の整数）のサイズの画像に順に分割し、前記分割された画像を前記第１及び第２の画像記憶手段に順に格納したことを特徴とする請求項５に記載の画像処理システム。
【請求項８】
請求項３に記載の画像処理システムにおいて、
前記第１及び第２の画像記憶手段にそれぞれ接続されたSIMD型プロセッサからなる第１のプロセッサ及び第２のプロセッサを有し、
前記計算手段と前記設定手段と前記検出手段が、前記第１及び第２のプロセッサで同時に実行されることを特徴とする画像処理システム。
【請求項９】
請求項３に記載の画像処理システムにおいて、
前記第１の画像記憶手段に接続されたSIMD型プロセッサからなるＭ個（Ｍ≧２の整数）の第１のプロセッサ群と、前記第２の画像記憶手段に接続されたSIMD型プロセッサからなるＮ個（Ｎ≧２の整数）の第２のプロセッサ群を有し、
前記計算手段と前記設定手段と前記検出手段が、前記第１及び第２のプロセッサ群で同時に実行されることを特徴とする画像処理システム。
【請求項１０】
請求項３に記載の画像処理システムにおいて、
前記第１のアクセス手段と第２のアクセス手段を用いて、前記第１の画像記憶手段と第２の画像記憶手段から同時に画素を取得することを特徴とする画像処理システム。
【請求項１１】
請求項３に記載の画像処理システムにおいて、
前記第１のアクセス手段と第２のアクセス手段を用いて、前記第１の画像記憶手段と第２の画像記憶手段に同時に画素を記録することを特徴とする画像処理システム。
【請求項１２】
前記画像記憶手段内における画像の記憶位置を前記列ポインタに設定する手段を備えたことを特徴とする請求項６に記載の画像処理システム。
【請求項１３】
処理対象画像を記憶するＬ個（Ｌ≧３の整数）の画像記憶手段と、
前記各画像記憶手段にアクセスするＬ個のアクセス手段と、
前記処理対象画像中の一連の連続する画素が前記Ｌ個の画像記憶手段に連続配置されているか否かを検出する検出手段と、
前記検出手段による検出結果に基づいてＬ個のアドレスを計算する計算手段と、
前記Ｌ個のアクセス手段に前記計算手段により得たアドレスを設定する設定手段とを備え、
前記Ｌ個のアクセス手段が、前記Ｌ個の画像記憶手段に同時アクセスすることを特徴とする画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、特に画像データの取得における画像処理システムに関する。
【背景技術】
【０００２】
近年、デジタルカメラやファクシミリ装置において、高画素が進んでいる。従来の画像処理システムでは、画素数の増加に伴い、図２４に示すような処理対象画像の画像記憶装置２４０へマッピングを行い、画像処理における主走査方向に対して、一つの演算命令により複数のプロセッサが別のデータに対して同時に同じ演算を行うSIMD(Single Instruction Multiple Data)型プロセッサアレイ２４１が用いられてきた（例えば、特許文献１参照）。このような画像処理システムでは、画素１ラインを一度に取得し、取得した画素に対し並列に演算を実行することができる。
【特許文献１】特開平９−２２２９８４号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述のような画像処理システムにおいては、処理対象の画像の主走査方向の画素数に応じてプロセッサ数及び画像記憶装置が１ラインに記憶可能な画素数を決定していた。しかしながら、処理対象となる画像の主走査方向の画素数に応じたプロセッサ数や画像記憶装置が１ラインに記憶可能な画素数を増加させると、回路規模の増大に繋がるという問題点がある。また、主走査方向の画素数がプロセッサ数以下の場合には、全てのプロセッサを演算に用いることができず、無駄が生じてしまうという問題点もある。
【０００４】
これに対し、プロセッサ数や画像記憶装置が１ラインに記憶可能な画素数を固定とし、主走査方向の画素数がプロセッサ数より多い場合には、図２５に示すような画像記憶装置へのデータマップを行うことが考えられる。同図において、２４２は画像記憶装置、２４３はSIMD型プロセッサアレイである。しかしながらこの方法においては、ある処理のために画素の１から８が必要な場合は、一度にデータを取得することができるが、画素２から９が必要な場合はデータを取得するのに二度の画像記憶装置へのアクセスが必要となり、画像処理のためのデータ取得の効率が低下するという問題点がある。
【課題を解決するための手段】
【０００５】
本発明の情報処理システムは、処理対象データを記憶する第１及び第２の記憶手段と、前記第１の記憶手段にアクセスする第１のアクセス手段と、前記第２の記憶手段にアクセスする第２のアクセス手段と、前記処理対象データ中の一連の連続するデータが、前記第１及び第２の記憶手段に連続配置されているか否かを検出する検出手段と、前記検出手段による検出結果に基づいて２つのアドレスを計算する計算手段と、前記第１及び第２のアクセス手段に前記計算手段により得たアドレスを設定する設定手段とを備え、前記第１及び第２のアクセス手段が、前記第１及び第２の記憶手段に同時アクセスすることを特徴とするものである。
【０００６】
本発明の画像処理システムは、処理対象画像を記憶する第１及び第２の画像記憶手段と、前記第１の画像記憶手段にアクセスする第１のアクセス手段と、前記第２の画像記憶手段にアクセスする第２のアクセス手段と、前記処理対象画像中の一連の連続する画素が、前記第１及び第２の画像記憶手段に連続配置されているか否かを検出する検出手段と、前記検出手段による検出結果に基づいて２つのアドレスを計算する計算手段と、前記第１及び第２のアクセス手段に前記計算手段により得たアドレスを設定する設定手段とを備え、前記第１及び第２のアクセス手段が、前記第１及び第２の画像記憶手段に同時アクセスすることを特徴とするものである。
【０００７】
本発明の画像処理システムによると、処理対象画像を第１及び第２の画像記憶手段にマッピングし、第１および第２のアクセス機構を適切に制御することにより、第１及び第２の画像記憶手段に対し第１および第２のアクセス機構が同時にアクセスして、処理対象画像中の一連の連続する画素が、第１及び第２の画像記憶手段上で不連続であった場合でも、一度のアクセスで処理でき、高速な画像処理が行える。
【０００８】
また、処理対象画像の第１及び第２の画像記憶手段上での水平オフセット位置情報を使用して第１および第２のアクセス機構の制御を行うが、その際、画像処理における一般的な手法であるSIMD型プロセッサアレイ構造を用いて、第１および第２のアクセス機構の制御を同時に行うことで、より一層更高速な画像処理が行える。
【発明の効果】
【０００９】
本発明の情報処理システム及び画像処理システムによると、回路規模を増大することなく、データ処理の効率を向上させることができる。
【発明を実施するための最良の形態】
【００１０】
以下に、本発明の実施の形態について、図面を参照しながら説明する。
【実施例１】
【００１１】
本実施例１は、本発明の画像処理システムを用いた水平フィルタ処理である。
【００１２】
図１に、水平画素数６、垂直画素数１の画像をタップ数３の水平フィルタ処理する場合の概要について示す。画素１から６はフィルタ演算前の画像を構成し、画素７から１０はフィルタ演算後の画像を構成する。画素７を計算するには、画素１から３が必要となり、画素８を計算するには、画素７の場合に必要となる画素から水平に１画素分ずれた画素２から４が必要となる。
【００１３】
図２は、本実施例１に係る画像処理システムの構成を示すブロック図である。この画像処理システムは、画像を記憶する画像記憶装置（画像記憶手段）１０，１１と、画像記憶装置１０にアクセスするためのアドレスポインタ（アクセス手段）１２と、画像記憶装置１１にアクセスするためのアドレスポインタ（アクセス手段）１３と、プロセッサ１４から構成される。プロセッサ１４は演算部１５と記憶部１６を備え、記憶部１６には処理対象となる画像の水平サイズＨ、垂直サイズＶ、アドレスポインタptr0,ptr1、処理対象画像の画像記憶装置１０，１１内でのオフセット位置を表すcnt0,cnt1、水平方向繰り返し回数ｉ及び垂直方向繰り返し回数ｊ、画像記憶装置１０，１１が１ラインに保持することのできる画素数Ｗ、フィルタのタップ数ｔを記憶する場所を有する。
【００１４】
図３，図４は、Ｗ＝８の画像処理システムにおいて、Ｈ＝１３，Ｖ＝５の処理対象画像に対し、タップ数５の水平フィルタ処理を行う時の画像記憶装置１０，１１へのデータマップ、及びフィルタ処理の手順を示すフローチャートである。
【００１５】
図４を参照すると、パラメータ初期化ステップ２１と、アドレスポインタ０更新判定ステップ２２と、アドレスポインタ０更新ステップ２３と、オフセット位置０クリアステップ２４と、アドレスポインタ１更新判定ステップ２５と、アドレスポインタ１更新ステップ２６と、オフセット位置１クリアステップ２７と、アドレスポインタによるアクセスステップ２８と、オフセット位置０インクリメントステップ２９と、オフセット位置１インクリメントステップ３０と、水平方向繰り返し回数インクリメントステップ３１と、水平方向繰り返し回数判定ステップ３２と、オフセット位置０更新ステップ３３と、オフセット位置１更新ステップ３４と、垂直方向繰り返し回数インクリメントステップ３５と、垂直方向繰り返し回数判定ステップ３６とからなる。
【００１６】
ステップ２１では、Ｗを８に、Ｈを１３に、Ｖを５に、ｔを５に、ｉ，ｊ，ptr0，ptr1，cnt1を０に、cnt0を４に初期化している。ステップ２２では、オフセット位置cnt0の値がＷ以上かどうかを調べ、Ｗ以上ならばステップ２３に進み、そうでなければステップ２５へ進む。ステップ２３では、アドレスポインタptr0の値を１インクリメントする。ステップ２４では、オフセット位置cnt0からＷの値を減算する。ステップ２５では、オフセット位置cnt1の値がＷ以上かどうかを調べ、Ｗ以上ならばステップ２６に進み、そうでなければステップ２８へ進む。ステップ２６では、アドレスポインタptr1の値を１インクリメントする。ステップ２７では、オフセット位置cnt0からＷの値を減算する。ステップ２８では、アドレスポインタptr0,ptr1を用いて、画像記憶装置１０，１１に同時にアクセスし、画素データを取得する。ステップ２９では、オフセット位置cnt0を１インクリメントする。ステップ３０では、オフセット位置cnt1を１インクリメントする。ステップ３１では、水平方向繰り返し回数ｉを１インクリメントする。ステップ３２では、水平方向繰り返し回数の値がＨ−ｔ＋１以上かどうかを調べ、Ｈ−ｔ＋１以上ならばステップ３３に進み、そうでなければステップ２２の直前に処理を戻し、ステップ２２以降の処理を繰り返す。ステップ３３では、次の画像ラインの処理開始のためにオフセット位置cnt0の更新を行う。図３に示すデータマップで水平フィルタ演算処理を行う時は、本ステップでのオフセット位置更新はフィルタタップ数から１を減算した値の加算となる。ステップ３４では、次の画像ラインの処理開始のためにオフセット位置cnt1の更新を行う。本ステップの更新処理はステップ３３と同様である。ステップ３５では、垂直方向繰り返し回数ｊを１インクリメントする。ステップ３６では、垂直方向繰り返し回数の値がＶ以上かどうかを調べ、Ｖ以上ならば処理を終了し、そうでなければステップ２２の直前に処理を戻し、ステップ２２以降の処理を繰り返す。
【００１７】
以上の処理において、画像記憶装置１０，１１へアクセスするときのアドレスポインタptr0,ptr1、オフセット位置cnt0,cnt1の値の、Ｖ＝０からＶ＝２までを表１にまとめる。
【００１８】
【表１】
2006139574.tif 000003
【００１９】
表１より、垂直位置０の画像ラインの処理において、水平位置０から３の画素を演算する時は、ptr0,ptr1とも０となっている。水平位置４の計算に必要となる画素は、図３における画素５から９となるが、この時、ptr0=1、ptr1=0となっており、これらのアドレスポインタで画像記憶装置１０，１１へアクセスを行えば、必要な画素を全て取得することができる。水平位置８の計算に必要となる画素は、図３における画素９から１３となるが、この時、ptr0=1、ptr1=1となっており、これらのアドレスポインタで画像記憶装置１０，１１へアクセスを行えば、必要な画素を全て取得することができる。垂直位置１のラインの処理を行う前に、オフセット位置はステップ２９，３０で１インクリメントされ、ステップ３３，３４で４インクリメントされる。これにより、ステップ２２実行直前では、cnt0=9、cnt1=5となるため、ステップ２２の条件判定は満たされ、ptr0=2、cnt0=1となる。また、ステップ２５の条件判定は満たされないため、ptr1とcnt1の値は変更されず、ptr1=1、cnt1=5となる。
【００２０】
具体的には、対象処理画像が２つの画像記憶装置１０，１１において連続配置されているか否かを検出する検出手段とは、図４のステップ２２と２５に相当する。ここで、連続配置されているとは、図３において、画素４と５のような場合を指し、連続配置されていない場合とは、画素８と９のような場合を指す。前者の画素を取得するためには、画像記憶装置１０用のアドレス、画像記憶装置１１用のアドレスが共に０となるのに対し、後者の場合は画像記憶装置１０用のアドレスは１、画像記憶装置１１用のアドレスは０となる。すなわち、連続配置されているか否かにより、アドレスの計算方法が異なっており、図４のステップ２２，２５の条件判定によるステップ２３，２６を実行するか否かがこれに対応し、この部分がアドレス計算部分となる。また、この計算手段により得られる２つのアドレスは、表１のptr0及びptr1に相当する。さらに、アドレスポインタ１２，１３にアドレスを設定する設定手段としては、計算されたアドレスをソフトウェアでメモリアクセス用のアドレスレジスタに設定する手段、あるいはハードウェア的に自動的に設定される手段が挙げられる。
【００２１】
このように、画素の繰り返し演算を行う中で、本実施例１を用いてアドレスポインタを適切に制御することにより、任意の位置の画素処理に必要となる画素のデータ取得を一度にすることができ、画像処理におけるデータ取得の効率を大幅に向上させることができる。
【実施例２】
【００２２】
本実施例２は、本発明の画像処理システムを用いた垂直フィルタ処理である。
【００２３】
図５，図６は、Ｗ＝８の画像処理システムにおいて、Ｈ＝５，Ｖ＝１３の処理対象画像に対し、タップ数５の垂直フィルタ処理を行う時の画像記憶装置１０，１１へのデータマップ、及びフィルタ処理の手順を示すフローチャートである。実施例１におけるフィルタ処理手順を表す図４と図６を比較すると、ステップ４１はステップ３５に対応し、ステップ４２はステップ３６に対応し、ステップ４３はステップ３１に対応し、ステップ４４はステップ３２に対応し、その他のステップは図４と同一であり、同一符号を付してその説明を省略する。
【００２４】
以上の処理において、画像記憶装置１０，１１へアクセスするときのアドレスポインタptr0,ptr1、オフセット位置cnt0,cnt1の値の、Ｈ＝０からＨ＝２までを表２にまとめる。
【００２５】
【表２】
2006139574.tif 000004
【００２６】
表２は表１と比べて、水平位置と垂直位置が入れ替わっている点においてのみ異なる。
【００２７】
本実施例２によると、処理対象となる画像の画像記憶装置１０，１１へのマッピングを変更することで、実施例１と同じ原理で垂直フィルタ処理におけるデータ取得の効率を大幅に向上させることができる。
【実施例３】
【００２８】
本実施例３は、本発明の画像処理システムを用いて、画像中の任意の場所から決まった大きさの画像ブロックを抜き出し、その画素の総和を求める処理である。
【００２９】
実施例１と比べて、図２におけるプロセッサ１４内の記憶部１６に、アドレスポインタptr0,ptr1に加えてtmp0,tmp1を記憶する場所を有する点が異なる。
【００３０】
図７，図８は、Ｗ＝８の画像処理システムにおいて、Ｈ＝１３，Ｖ＝４の処理対象画像から抜き出した４×４の画像ブロックの画素総和演算を行う時の画像記憶装置１０，１１へのデータマップ、及び処理の手順を示すフローチャートである。
【００３１】
図８を参照すると、パラメータ初期化ステップ５１と、アドレスポインタによるアクセスステップ５２と、アドレスポインタ０インクリメントステップ５３と、アドレスポインタ１インクリメントステップ５４と、垂直方向繰り返し回数インクリメントステップ５５と、垂直方向繰り返し回数判定ステップ５６と、アドレスポインタ０更新判定ステップ５７と、アドレスポインタ０更新ステップ５８と、オフセット位置０クリアステップ５９と、アドレスポインタ１更新判定ステップ６０と、アドレスポインタ１更新ステップ６１と、オフセット位置１クリアステップ６２と、オフセット位置０インクリメントステップ６３と、オフセット位置１インクリメントステップ６４と、アドレスポインタ０再設定ステップ６５と、アドレスポインタ１再設定ステップ６６と、水平方向繰り返し回数インクリメントステップ６７と、水平方向繰り返し回数判定ステップ６８とからなる。
【００３２】
ステップ５１では、Ｗを８に、Ｈを１３に、Ｖを４に、ｉ，ｊ，ptr0，ptr1，tmp0，tmp1，cnt1を０に、cnt0を４に初期化する。ステップ５２では、アドレスポインタptr0,ptr1を用いて、画像記憶装置１０，１１に同時にアクセスし、画素データを取得する。ステップ５３では、アドレスポインタptr0を１インクリメントする。ステップ５４では、アドレスポインタptr1を１インクリメントする。ステップ５５では、垂直方向繰り返し回数ｊを１インクリメントする。ステップ５６では、垂直方向繰り返し回数の値がＶ以上かどうかを調べ、Ｖ以上ならばステップ５７に進み、そうでなければステップ５２の直前に処理を戻し、ステップ５２以降の処理を繰り返す。ステップ５７では、オフセット位置cnt0の値がＷ以上かどうかを調べ、Ｗ以上ならばステップ５８に進み、そうでなければステップ６０へ進む。ステップ５８では、アドレスポインタtmp0にＶの値を加算する。ステップ５９では、オフセット位置cnt0からＷの値を減算する。ステップ６０では、オフセット位置cnt1の値がＷ以上かどうかを調べ、Ｗ以上ならばステップ６１に進み、そうでなければステップ６３へ進む。ステップ６１では、アドレスポインタtmp1にＶの値を加算する。ステップ６２では、オフセット位置cnt1からＷの値を減算する。ステップ６３では、オフセット位置cnt0を１インクリメントする。ステップ６４では、オフセット位置cnt1を１インクリメントする。ステップ６５では、アドレスポインタptr0にtmp0の値を設定する。ステップ６６では、アドレスポインタptr1にtmp1の値を設定する。ステップ６７では、水平方向繰り返し回数ｉを１インクリメントする。ステップ６８では、水平方向繰り返し回数の値がＨ−ｔ＋１以上かどうかを調べ、Ｈ−ｔ＋１以上ならば処理を終了し、そうでなければステップ５２の直前に処理を戻し、ステップ５２以降の処理を繰り返す。
【００３３】
以上の処理において、画像記憶装置１０，１１へアクセスするときのアドレスポインタptr0,ptr1、オフセット位置cnt0,cnt1の値の、Ｖ＝０の時の値を表３にまとめる。
【００３４】
【表３】
2006139574.tif 000005
【００３５】
画素１を左上とする画像ブロックの総和演算から画素５を左上とする画像ブロックの総和演算までは、ptr0,ptr1とも０となっている。画素６を左上とする画像ブロックの総和演算に必要となる画素は、図７における画素６から９となるが、この時、ptr0=4、ptr1=0となっており、これらのアドレスポインタで画像記憶装置１０，１１へアクセスを行えば、必要な画素を全て取得することができる。また、画素１０を左上とする画像ブロックの総和演算に必要となる画素は、図７における画素１０から１３となるが、この時、ptr0=4、ptr1=4となっており、これらのアドレスポインタで画像記憶装置１０，１１へアクセスを行えば、必要な画素を全て取得することができる。
【００３６】
このように、本実施例３は、画像のデータマップや画像処理の種類に応じることなく用いることが可能となり、画素総和演算処理におけるデータ取得の効率を大幅に向上させることができる。
【実施例４】
【００３７】
本実施例４は、本発明の画像処理システムを用いて、画像中の任意の場所から決まった大きさの画像ブロックを抜き出し、その画素の総和を求める処理である。なお、実施例３の主走査方向が水平方向であるのに対し、本実施例４は主走査方向が垂直方向である点が異なる。
【００３８】
図９，図１０は、Ｗ＝８の画像処理システムにおいて、Ｈ＝４，Ｖ＝１３の画像から抜き出した４×４の画像ブロックの画素総和演算を行う時の画像記憶装置１０，１１へのデータマップ、及び処理の手順を示すフローチャートである。実施例３における画素総和演算処理手順を表す図８と図１０を比較すると、ステップ７１はステップ６７に対応し、ステップ７２はステップ６８に対応し、ステップ７３はステップ５５に対応し、ステップ７４はステップ５６に対応し、その他のステップは図８と同一であり、同一符号を付してその説明を省略する。
【００３９】
以上の処理において、画像記憶装置１０，１１へアクセスするときのアドレスポインタptr0,ptr1、オフセット位置cnt0,cnt1の値の、Ｈ＝０の時の値を表４にまとめる。
【００４０】
【表４】
2006139574.tif 000006
【００４１】
表４は表３における水平位置が垂直位置に変わっている点においてのみ異なる。
【００４２】
本実施例４によると、処理対象となる画像の画像記憶装置１０，１１へのマッピングを変更することで、実施例３と同じ原理で主走査方向の違う画素総和演算処理におけるデータ取得の効率を大幅に向上させることができる。
【実施例５】
【００４３】
本実施例５は、実施例１と比べて、画像記憶装置及び画像記憶装置へのアクセス手段の数が４つに増加し、個々の画像記憶装置が１ラインに保持できる画素数が半分になる。これに伴い、本発明の実施例５に係る画像処理システムの構成を示すブロック図を示す図１１において、プロセッサ８８内部の記憶部８９には、実施例１と比べて、処理対象画像の画像記憶装置内でのオフセット位置cnt2,cnt3、アドレスポインタptr2,ptr3を記憶する場所が追加される。なお、画像処理システムは、画像を記憶する画像記憶装置（画像記憶手段）８０，８１，８２，８３と、各画像記憶装置８０，８１，８２，８３にアクセスするためのアドレスポインタ（アクセス手段）８４，８５，８６，８７と、記憶部８９ならびに演算部９０を備えたプロセッサ８８から構成される。
【００４４】
図１２，図１３は、Ｗ＝８の画像処理システムにおいて、Ｈ＝１３，Ｖ＝５の画像に対し、タップ数７の水平フィルタ処理を行う時の画像記憶装置８０，８１，８２，８３へのデータマップ、及びフィルタ処理の手順を示すフローチャートである。実施例１におけるフィルタ処理手順を表す図４と図１３を比較すると、ステップ１０１はステップ２１に対応し、ステップ１０２から１１３はステップ２２から２７に対応し、ステップ１１４はステップ２８に対応し、ステップ１１５から１１８はステップ２９から３０に対応し、ステップ１１９はステップ３１に対応し、ステップ１２０はステップ３２に対応し、ステップ１２１から１２４はステップ３３から３４に対応し、ステップ１２５はステップ３５に対応し、ステップ１２６はステップ３６に対応する。ただし、ステップ１０１においては、オフセット位置cnt2,cnt3、アドレスポインタptr2,ptr3を初期化する処理も追加される。
【００４５】
以上の処理において、画像記憶装置８０，８１，８２，８３へアクセスするときのアドレスポインタptr0,ptr1,ptr2,ptr3、オフセット位置cnt0,cnt1,cnt2,cnt3の値の、Ｖ＝０からＶ＝２までを表５にまとめる。
【００４６】
【表５】
2006139574.tif 000007
【００４７】
垂直位置０の画像ラインの処理において、水平位置０及び１の画素を演算する時は、ptr0,ptr1とも０となっている。水平位置２の計算に必要となる画素は図１２における画素３から９となるが、この時、ptr0=1、ptr1=0、ptr2=0、ptr3=0となっており、これらのアドレスポインタで画像記憶装置８０，８１，８２，８３へアクセスを行えば、必要な画素を全て取得することができる。水平位置４の計算に必要となる画素は図１２における画素５から１１となるが、この時、ptr0=1、ptr1=1、ptr2=0、ptr3=0となっており、これらのアドレスポインタで画像記憶装置８０，８１，８２，８３へアクセスを行えば、必要な画素を全て取得することができる。垂直位置１のラインの処理を行う前に、オフセット位置はステップ１１５からステップ１１８で１インクリメントされ、ステップ１２１からステップ１２４で６インクリメントされる。これにより、ステップ１０２実行直前では、cnt0=11、cnt1=10、cnt2=7、cnt3=13となるため、ステップ１０２、ステップ１０５、ステップ１１１の条件判定は満たされ、cnt0,cnt1,cnt3,ptr0,ptr1,ptr3は更新される。また、ステップ１０８の条件判定は満たされないため、cnt2とptr2の値は変更されない。
【００４８】
実施例１では、一度に水平方向に連続５画素のデータ取得が可能だったのに対し、本実施例５では、一度に水平方向に連続７画素のデータ取得が可能となる。なお、画像記憶装置及びアドレスポインタの数をＮ、一つの画像記憶装置が１ラインに保持することのできる画素の数をＰとすると、一度に取得することのできる連続画素数はＰ・（Ｎ−１）＋１で表すことができる。
【実施例６】
【００４９】
本実施例６は、実施例１と比べて、第１のプロセッサと第２のプロセッサを有する点が異なる。これら二つのプロセッサは、SIMD構造となる。図１４は本実施例６に係る画像処理システムの構成を示すブロック図である。この画像処理システムは、画像を記憶する画像記憶装置（画像記憶手段）１３０，１３１と、画像記憶装置１３０にアクセスするためのアドレスポインタ（アクセス手段）１３２と、画像記憶装置１３１にアクセスするためのアドレスポインタ（アクセス手段）１３３と、画像記憶装置１３０に接続されアドレスポインタ１３２に値の設定が可能なプロセッサ１３４と、画像記憶装置１３１に接続されアドレスポインタ１３３に値の設定が可能なプロセッサ１３５から構成される。プロセッサ１３４，１３５は、それぞれは演算部１３６，１３７と記憶部１３８，１３９とを備える。記憶部１３８は、処理対象となる画像の水平サイズＨ、垂直サイズＶ、アドレスポインタptr0、処理対象画像の画像記憶装置１３０内でのオフセット位置を表すcnt0、水平方向繰り返し回数ｉ及び垂直方向繰り返し回数ｊ、画像記憶装置１３０が１ラインに保持することのできる画素数と画像記憶装置１３１が１ラインに保持することのできる画素数の加算値Ｗ、フィルタのタップ数ｔ、プロセッサ１３４で実行される条件判定命令の結果を保持するフラグcon0を記憶する場所を有する。記憶部１３９は、処理対象となる画像の水平サイズＨ、垂直サイズＶ、アドレスポインタptr1、処理対象画像の画像記憶装置１３１内でのオフセット位置を表すcnt1、水平方向繰り返し回数ｉ及び垂直方向繰り返し回数ｊ、画像記憶装置１３０が１ラインに保持することのできる画素数と画像記憶装置１３１が１ラインに保持することのできる画素数の加算値Ｗ、フィルタのタップ数ｔ、プロセッサ１３５で実行される条件判定命令の結果を保持するフラグcon1を記憶する場所を有する。
【００５０】
図１６は、Ｗ＝８の画像処理システムにおいて、Ｈ＝１３，Ｖ＝５の画像に対し、タップ数４の水平フィルタ処理を行う手順を表すフローチャートである。実施例１におけるフィルタ処理手順を表す図４と図１６を比較すると、ステップ１４１はステップ２１に対応し、ステップ１４２からステップ１４４はステップ２２からステップ２４及びステップ２５からステップ２７に対応し、ステップ１４５はステップ２８に対応し、ステップ１４６はステップ２９とステップ３０に対応し、ステップ１４７はステップ３１に対応し、ステップ１４８はステップ３２に対応し、ステップ１４９はステップ３３とステップ３４に対応し、ステップ１５０はステップ３５に対応し、ステップ１５１はステップ３６に対応する。これらの各ステップはプロセッサ１３４とプロセッサ１３５において同時に実行され、図１６の左半分がプロセッサ１３４における処理、右半分がプロセッサ１３５における処理を表す。ただし、ステップ１４３及びステップ１４４の処理は、ステップ１４２における条件判定処理の結果生成されるフラグcon0及びcon1を参照して、フラグが立っていない場合には実行されない。例えば、ステップ１４２における条件判定で、プロセッサ１３４では条件を満たし、プロセッサ１３５では条件を満たさなかった場合、ステップ１４３及びステップ１４４の処理は、プロセッサ１３４では実行されるが、その間プロセッサ１３５では何も実行されない。また、ステップ１４６及びステップ１４７におけるインクリメント値が２になっているのは、二つのプロセッサで、水平フィルタ演算を同時に2画素分実行することができるためである。
【００５１】
以上の処理において、画像記憶装置１３０，１３１へアクセスするときのアドレスポインタptr0,ptr1、オフセット位置cnt0,cnt1の値の、Ｖ＝０からＶ＝３までを表６にまとめる。
【００５２】
【表６】
2006139574.tif 000008
【００５３】
垂直位置０の画像ラインの処理において、水平位置０及び２の画素を演算する時は、ptr0,ptr1とも０となっている。水平位置４の計算に必要となる画素は図１５における画素５から９となるが、この時、ptr0=1、ptr1=0となっており、これらのアドレスポインタで画像記憶装置１３０，１３１へアクセスを行えば、必要な画素を全て取得することができる。水平位置８の計算に必要となる画素は図１５における画素９から１３となるが、この時、ptr0=1、ptr1=1となっており、これらのアドレスポインタで画像記憶装置１３０，１３１へアクセスを行えば、必要な画素を全て取得することができる。垂直位置１のラインの処理を行う前に、オフセット位置はステップ１４６で２インクリメントされ、ステップ１４９で３インクリメントされる。これにより、ステップ１４２実行直前では、cnt0=9、cnt1=5となるため、ステップ１４２の条件判定処理はプロセッサ１３４においては満たされ、プロセッサ１３５においては満たされない。即ち、cnt0,ptr0の値は更新され、cnt1,ptr1の値は更新されない。
【００５４】
実施例６によると、二つのプロセッサ１３４，１３５により、水平フィルタ演算を同時実行することができるという点に加え、SIMD構造の特徴を生かして、二つのアドレスポインタ１３２，１３３の値をそれぞれが同時に同じプログラムで制御することが可能となる。
【実施例７】
【００５５】
本実施例７は、本発明の画像処理システムを用いて、画像中の任意の場所から決まった大きさの画像ブロックを抜き出し、その画素の総和を求める処理である。ただし、図１７に示す通り、本実施例７は処理対象となる画像の左端が、画像記憶装置の左端にアラインされていない点が実施例３と異なる。これに伴い、本実施例７に係る画像処理システムの構成を示すブロック図を示す図２において、プロセッサ１４内部の記憶部１６には、実施例３と比べて、処理対象となる画像の左端が、画像記憶装置の左端に対して何画素ずれているかを表すシフト量SFTを記憶する場所が追加される。
【００５６】
図１８は，Ｗ＝８の画像処理システムにおいて、Ｈ＝１３，Ｖ＝４の画像から抜き出した４×４の画像ブロックの画素総和演算処理の手順を示すフローチャートである。実施例３における画素総和演算処理手順を表す図８と図１８を比較すると、実施例３のパラメータ初期化ステップ５１に対応するステップ１６２の前にシフト量SFTを初期化するステップ１６１が加わり、ステップ１６２では、cnt0=4+SFT、cnt1=SFTに初期化する点が異なる。なお、ステップ１６３から１７９については、ステップ５２から６８と同じである。
【００５７】
以上の処理において、画像記憶装置１０，１１へアクセスするときのアドレスポインタptr0,ptr1、オフセット位置cnt0,cnt1の値の、Ｖ＝０の時の値を表７にまとめる。
【００５８】
【表７】
2006139574.tif 000009
【００５９】
画素１を左上とする画像ブロックの総和演算から画素４を左上とする画像ブロックの総和演算までは、ptr0,ptr1とも0となっている。画素５を左上とする画像ブロックの総和演算に必要となる画素は図１７における画素５から８となるが、この時、ptr0=4、ptr1=0となっており、これらのアドレスポインタで画像記憶装置１０，１１へアクセスを行えば、必要な画素を全て取得することができる。また、画素９を左上とする画像ブロックの総和演算に必要となる画素は図１７における画素９から１２となるが、この時、ptr0=4、ptr1=4となっており、これらのアドレスポインタで画像記憶装置１０，１１へアクセスを行えば、必要な画素を全て取得することができる。
【００６０】
処理対象となる画像を画像記憶装置に保持させるには、例えば２次元DMAを用いる方法が挙げられるが、２次元DMAの制約により必ずしも処理対象となる画像が画像記憶装置の左端にアラインされるとは限らない。そのような場合に、本実施例７によると、処理対象画像の画像記憶装置内でのオフセット位置を表すcnt0,cnt1の初期値を変更するだけで、以後のデータ取得のためのポインタ制御を行うことが可能となる。
【実施例８】
【００６１】
本実施例８は、本発明の画像処理システムを用いて、２枚の画像中の任意の場所から決まった大きさの画像ブロックを抜き出し、それぞれの画像ブロックの平均画像を求める処理である。ただし、２枚の画像から抜き出してくる位置は一致するものとする。図２０に示したＡ処理対象画像とＢ処理対象画像において、Ａ処理対象画像より抜き出した画素２，３，２３，２４の画素ブロックと平均を取るＢ処理対象画像における画像ブロックは画素４４，４５，６５，６６となる。
【００６２】
図１９は本実施例８に係る画像処理システムの構成を示すブロック図である。この画像処理システムは画像を記憶する画像記憶装置（画像記憶手段）１８０，１８１と、画像記憶装置１８０にアクセスするためのアドレスポインタ（アクセス手段）１８２と、画像記憶装置１８１にアクセスするためのアドレスポインタ（アクセス手段）１８３と、画像記憶装置１８０に接続されアドレスポインタ１８２に値の設定が可能なプロセッサ１８４及びプロセッサ１８５と、画像記憶装置１８１に接続されアドレスポインタ１８３に値の設定が可能なプロセッサ１８６及びプロセッサ１８７とを有する。プロセッサ１８４，１８５，１８６，１８７は、それぞれは演算部１８８，１８９，１９０，１９１と記憶部１９２，１９３，１９４，１９５を備える。記憶部１９２は、処理対象となる画像の水平サイズＨ、垂直サイズＶ、アドレスポインタptr0,tmp0、処理対象画像の画像記憶装置１８０内でのオフセット位置を表すcnt0、水平方向繰り返し回数ｉ及び垂直方向繰り返し回数ｊ、画像記憶装置１８０が１ラインに保持することのできる画素数と画像記憶装置１８１が１ラインに保持することのできる画素数の加算値Ｗ、Ａ処理対象画像の左端が画像記憶装置１８０の左端に対して何画素ずれているかを表すシフト量SFTA、プロセッサ１８４で実行される条件判定命令の結果を保持するフラグcon0を記憶する場所を有する。記憶部１９３は、処理対象となる画像の水平サイズＨ、垂直サイズＶ、アドレスポインタptr1,tmp1、処理対象画像の画像記憶装置１８０内でのオフセット位置を表すcnt1、水平方向繰り返し回数ｉ及び垂直方向繰り返し回数ｊ、画像記憶装置１８０が１ラインに保持することのできる画素数と画像記憶装置１８１が１ラインに保持することのできる画素数の加算値Ｗ、Ｂ処理対象画像の左端が画像記憶装置１８０の左端に対して何画素ずれているかを表すシフト量SFTB、プロセッサ１８５で実行される条件判定命令の結果を保持するフラグcon1を記憶する場所を有する。記憶部１９４は、処理対象となる画像の水平サイズＨ、垂直サイズＶ、アドレスポインタptr2,tmp2、処理対象画像の画像記憶装置１８１内でのオフセット位置を表すcnt2、水平方向繰り返し回数ｉ及び垂直方向繰り返し回数ｊ、画像記憶装置１８０が１ラインに保持することのできる画素数と画像記憶装置１８１が１ラインに保持することのできる画素数の加算値Ｗ、Ａ処理対象画像の左端が画像記憶装置１８１の左端に対して何画素ずれているかを表すシフト量SFTA、プロセッサ１８６で実行される条件判定命令の結果を保持するフラグcon2を記憶する場所を有する。記憶部１９５は、処理対象となる画像の水平サイズＨ、垂直サイズＶ、アドレスポインタptr3,tmp3、処理対象画像の画像記憶装置１８１内でのオフセット位置を表すcnt3、水平方向繰り返し回数ｉ及び垂直方向繰り返し回数ｊ、画像記憶装置１８０が１ラインに保持することのできる画素数と画像記憶装置１８１が１ラインに保持することのできる画素数の加算値Ｗ、Ｂ処理対象画像の左端が画像記憶装置１８１の左端に対して何画素ずれているかを表すシフト量SFTB、プロセッサ１８７で実行される条件判定命令の結果を保持するフラグcon3を記憶する場所を有する。
【００６３】
図２０，図２１は、Ｗ＝８の画像処理システムにおいて、Ｈ＝２１，Ｖ＝２の２枚の画像から２×２の画像ブロックを抜き出し、画像ブロックの平均を求める処理を行う時の画像記憶装置１８０，１８１へのデータマップ、及びフィルタ処理の手順を示すフローチャートである。なお、ここではSFTA=0、SFTB=1とする。図２１を参照すると、パラメータ初期化ステップ２０１と、アドレスポインタ設定ステップ２０２と、アドレスポインタによるアクセスステップ２０３と、アドレスポインタ設定ステップ２０４と、アドレスポインタによるアクセスステップ２０５と、垂直方向繰り返し回数インクリメントステップ２０６と、垂直方向繰り返し回数判定ステップ２０７と、オフセット位置インクリメントステップ２０８と、アドレスポインタ更新判定ステップ２０９と、アドレスポインタ更新ステップ２１０と、オフセット位置クリアステップ２１１と、更新されたアドレスポインタを設定するステップ２１２と、水平方向繰り返し回数インクリメントステップ２１３と、水平方向繰り返し回数判定ステップ２１４とからなる。
【００６４】
ただし、ステップ２１０及びステップ２１１の処理は、ステップ２０９における条件判定処理の結果生成されるフラグcon0,con1,con2,con3を参照して、フラグが立っていない場合には実行されない。これらの各ステップは、プロセッサ１８４とプロセッサ１８５とプロセッサ１８６とプロセッサ１８７において同時に実行され、図２１の左から順にプロセッサ１８４における処理、プロセッサ１８５における処理、プロセッサ１８６における処理、プロセッサ１８７における処理を表す。
【００６５】
ステップ２０１において、プロセッサ１８４では、Ｗを８に、Ｈを２１に、Ｖを２に、ｉを０に、adr0を０に、tmp0を０に、cnt0を4+SFTAに初期化し、プロセッサ１８５では、Ｗを８に、Ｈを２１に、Ｖを２に、ｉを０に、adr1を１０に、tmp1を１０に、cnt1を4+SFTBに初期化し、プロセッサ１８６では、Ｗを８に、Ｈを２１に、Ｖを２に、ｉを０に、adr2を０に、tmp2を０に、cnt2をSFTAに初期化し、プロセッサ１８７では、Ｗを８に、Ｈを２１に、Ｖを２に、ｉを０に、adr3を１０に、tmp3を１０に、cnt3をSFTBに初期化している。ステップ２０２では、プロセッサ１８４が記憶部１９２内に保持しているアドレスポインタadr0値をアドレスポインタ１８２に設定し、プロセッサ１８６が記憶部１９４内に保持しているアドレスポインタadr2値をアドレスポインタ１８３に設定している。その間、プロセッサ１８５，１８７は演算を行わない。ステップ２０３では、アドレスポインタ１８２，１８３を用いて、画像記憶装置１８０，１８１に同時にアクセスし、画素データを取得する。これにより、Ａ処理対象画像内の画像ブロックを構成する水平１ライン分のデータの取得が可能となる。ステップ２０４では、プロセッサ１８５が記憶部１９３内に保持しているアドレスポインタadr1値をアドレスポインタ１８２に設定し、プロセッサ１８７が記憶部１９５内に保持しているアドレスポインタadr3値をアドレスポインタ１８３に設定している。その間、プロセッサ１８４，１８６は演算を行わない。ステップ２０５では、アドレスポインタ１８２，１８３を用いて、画像記憶装置１８０，１８１に同時にアクセスし、画素データを取得する。これにより、Ｂ処理対象画像内の画像ブロックを構成する水平１ライン分のデータの取得が可能となる。ステップ２０６では、垂直方向繰り返し回数ｊを１インクリメントする。ステップ２０７では、垂直方向繰り返し回数の値がＶ以上かどうかを調べ、Ｖ以上ならばステップ２０８に進み、そうでなければステップ２０２の直前に処理を戻し、ステップ２０２以降の処理を繰り返す。ステップ２０８では、プロセッサ１８４，１８５，１８６，１８７において、次の水平位置処理開始のためにそれぞれオフセット位置cnt0,cnt1,cnt2,cnt3の更新を行う。ここで、２画素演算を４並列で行う本実施例８においては、更新処理は４インクリメントとなる。ステップ２０９では、プロセッサ１８４，１８５，１８６，１８７においてそれぞれオフセット位置cnt0,cnt1,cnt2,cnt3の値がＷ以上かどうかを調べ、Ｗ以上ならばそれぞれの条件フラグcon0,con1,con2,con3を１にし、そうでなければ条件フラグを０にする。ステップ２１０では、プロセッサ１８４，１８５，１８６，１８７においてそれぞれ条件フラグcon0,con1,con2,con3の値を参照し、フラグが１ならばそれぞれが持つアドレスポインタtmp0,tmp1,tmp2,tmp3にＶの値を加算する。ステップ２１１では、プロセッサ１８４，１８５，１８６，１８７においてそれぞれ条件フラグcon0,con1,con2,con3の値を参照し、フラグが１ならばそれぞれが持つオフセット位置cnt0,cnt1,cnt2,cnt3からＷの値を減算する。ステップ２１２では、プロセッサ１８４，１８５，１８６，１８７においてそれぞれのアドレスポインタadr0,adr1,adr2,adr3の値にアドレスポインタtmp0,tmp1,tmp2,tmp3の値を設定する。ステップ２１３では、水平方向繰り返し回数ｉを４インクリメントする。ステップ２１４では、水平方向繰り返し回数の値がＨ−Ｖ＋１以上かどうかを調べ、Ｈ−Ｖ＋１以上ならば処理を終了し、そうでなければステップ２０２の直前に処理を戻し、ステップ２０２以降の処理を繰り返す。
【００６６】
以上の処理において、画像記憶装置１８０，１８１へアクセスするときのアドレスポインタptr0,ptr1、オフセット位置cnt0,cnt1,cnt2,cnt3の値を表８にまとめる。
【００６７】
【表８】
2006139574.tif 000010
【００６８】
水平位置０から３の画像ブロック平均処理において、Ａ処理対象画像の１ライン目を取得する時はptr0=0、ptr1=0、Ｂ処理対象画像の１ライン目を取得する時はptr0=10、ptr1=10、Ａ処理対象画像の２ライン目を取得する時はptr0=1、ptr1=1、Ｂ処理対象画像の２ライン目を取得する時はptr0=11、ptr1=11となっている。水平位置４から７の画像ブロック平均処理において、Ａ処理対象画像の１ライン目を取得する時はptr0=2、ptr1=0、Ｂ処理対象画像の１ライン目を取得する時はptr0=12、ptr1=10となっている。この時必要となる画素はＡ処理対象画像が画素５から９、Ｂ処理対象画像が画素４７から５１であるが、これらのアドレスポインタで画像記憶装置１８０，１８１へアクセスを行えば、必要な画素を全て取得することができる。
【００６９】
このように、一つの画像記憶装置１８０（１８１）に対して、複数のプロセッサ１８４，１８５（１８６，１８７）が対応する構造の画像処理システムにおいて、複数のプロセッサ１８４，１８５（１８６，１８７）を異なる種類の画像を扱うためのアドレスポインタの制御に割り当てることで、複数の画像を効率よく扱うことができる。
【実施例９】
【００７０】
本実施例９は、本発明の画像処理システムを用いて水平フィルタ処理及び処理結果の格納に関するものである。実施例１と比べて、図２におけるプロセッサ１４内の記憶部１６に、アドレスポインタptr0,ptr1の代わりに、処理対象画像を取得するためのロードアドレスポインタldptr、処理結果画像を格納するためのストアアドレスポインタstptr0,stptr1を記憶する場所を有する点が異なる。
【００７１】
図２２は、Ｗ＝８の画像処理システムにおいて、Ｈ＝８，Ｖ＝７の画像に対するタップ数３の水平フィルタ処理において、演算前と演算後の画像記憶装置１０，１１へのデータマップを示したものである。
【００７２】
図２３はフィルタ処理のためのデータ取得とフィルタ処理後の画像の格納を行う一連の手順を示したフローチャートである。図２３を参照すると、パラメータ初期化ステップ２２１と、ロードアドレスポインタによるアクセスステップ２２２と、ロードアドレスポインタ更新ステップ２２３と、ストアアドレスポインタ０更新判定ステップ２２４と、ストアアドレスポインタ０更新ステップ２２５と、オフセット位置０クリアステップ２２６と、ストアアドレスポインタ１更新判定ステップ２２７と、ストアアドレスポインタ１更新ステップ２２８と、オフセット位置１クリアステップ２２９と、ストアアドレスポインタによる画像格納ステップ２３０と、オフセット位置０更新ステップ２３１と、オフセット位置１更新ステップ２３２と、垂直方向繰り返し回数インクリメントステップ２３３と、垂直方向繰り返し回数判定ステップ２３４とからなる。
【００７３】
ステップ２２１では、Ｗを8に、Ｈを8に、Ｖを7に、ｔを3に、ｉ，ｊ，ldptr，cnt1を０に、cnt0を４に、stptr0，stptr1を１０に初期化している。ステップ２２２では、ldptrの値を用いて、画像記憶装置１０，１１に同時にアクセスし、画素データを取得する。ステップ２２３では、ldptrの値を１インクリメントする。ステップ２２４では、オフセット位置cnt0の値がＷ以上かどうかを調べ、Ｗ以上ならばステップ２２５に進み、そうでなければステップ２２７へ進む。ステップ２２５では、ストアアドレスポインタstptr0の値を１インクリメントする。ステップ２２６では、オフセット位置cnt0からＷの値を減算する。ステップ２２７では、オフセット位置cnt1の値がＷ以上かどうかを調べ、Ｗ以上ならばステップ２２８に進み、そうでなければステップ２３０へ進む。ステップ２２８では、ストアアドレスポインタstptr1の値を１インクリメントする。ステップ２２９では、オフセット位置cnt0からＷの値を減算する。ステップ２３０では、ストアアドレスポインタstptr0,stptr1を用いて、画像記憶装置１０，１１に同時にアクセスし、画素データを格納する。ステップ２３１では、次の処理結果画像の格納場所のためのオフセット位置cnt0の更新を行う。本実施例９におけるオフセット位置更新は、１ラインの水平フィルタ処理の結果得られる画素数Ｈ−ｔ＋１の加算となる。ステップ２３２では、次の画像ラインの処理開始のためにオフセット位置cnt1の更新を行う。本ステップの更新処理はステップ２３１と同様である。ステップ２３３では、垂直方向繰り返し回数ｊを１インクリメントする。ステップ２３４では、垂直方向繰り返し回数の値がＶ以上かどうかを調べ、Ｖ以上ならば処理を終了し、そうでなければ、ステップ２２２の直前に処理を戻し、ステップ２２２以降の処理を繰り返す。
【００７４】
以上の処理において、画像記憶装置１０，１１へ水平フィルタ演算後の画像を格納するときのストアアドレスポインタstptr0,stptr1、オフセット位置cnt0,cnt1の値を表９にまとめる。
【００７５】
【表９】
2006139574.tif 000011
【００７６】
垂直位置０の画像ラインの格納を行う時は、stptr0、stptr1とも１０となっている。水平フィルタ演算結果、１ラインの画素数は６となっているので、アドレス１０の位置には、あと２画素格納することが可能となっている。次に、垂直位置１の画像ラインの格納を行う時は、stptr0=11、stptr1=10となっており、アドレス１０の位置の残りの２画素とアドレス１１の位置に４画素格納を行う。
【００７７】
このように、本実施例９によると、データ取得だけでなく、連続データの格納処理においても、その処理効率を大幅に向上させることができる。
【産業上の利用可能性】
【００７８】
本発明は、デジタルカメラやファクシミリ装置等における様々な種類の画像処理のほか、連続するデータを扱う情報処理全般にも応用することが可能である。
【図面の簡単な説明】
【００７９】
【図１】水平フィルタ処理のアルゴリズムを説明する図
【図２】本発明の実施例１及び実施例２及び実施例３及び実施例４及び実施例７及び実施例９における画像処理システムの構成を示すブロック図
【図３】本発明の実施例１における処理対象画像及び画像記憶装置へのデータマップ
【図４】実施例１の指標挿入処理手順を示すフローチャート
【図５】本発明の実施例２における処理対象画像及び画像記憶装置へのデータマップ
【図６】実施例２の指標挿入処理手順を示すフローチャート
【図７】本発明の実施例３における処理対象画像及び画像記憶装置へのデータマップ
【図８】実施例３の指標挿入処理手順を示すフローチャート
【図９】本発明の実施例４における処理対象画像及び画像記憶装置へのデータマップ
【図１０】実施例４の指標挿入処理手順を示すフローチャート
【図１１】本発明の実施例５における画像処理システムの構成を示すブロック図
【図１２】実施例５における処理対象画像及び画像記憶装置へのデータマップ
【図１３】実施例５の指標挿入処理手順を示すフローチャート
【図１４】本発明の実施例６における画像処理システムの構成を示すブロック図
【図１５】実施例６における処理対象画像及び画像記憶装置へのデータマップ
【図１６】実施例６の指標挿入処理手順を示すフローチャート
【図１７】本発明の実施例７における処理対象画像及び画像記憶装置へのデータマップ
【図１８】実施例７の指標挿入処理手順を示すフローチャート
【図１９】本発明の実施例８における画像処理システムの構成を示すブロック図
【図２０】実施例８における処理対象画像及び画像記憶装置へのデータマップ
【図２１】実施例８の指標挿入処理手順を示すフローチャート
【図２２】本発明の実施例９における処理対象画像及び画像記憶装置へのデータマップ
【図２３】実施例９の指標挿入処理手順を示すフローチャート
【図２４】従来の画像処理システムの構成を示すブロック図
【図２５】従来の画像処理システムにおける画像例を示す図
【符号の説明】
【００８０】
１０，１１，８０〜８３，１３０，１３１，１８０，１８１  画像記憶装置（画像記憶手段）
１２，１３，８４〜８７，１３２，１３３，１８２，１８３  アドレスポインタ（アクセス手段）
１４，８８，１３４，１３５，１８４〜１８７  プロセッサ
１５，９０，１３６，１３７，１８８〜１９１  演算部
１６，８９，１３８，１３９，１９２〜１９５  記憶部
【図１】
2006139574.tif 000012
【図２】
2006139574.tif 000013
【図３】
2006139574.tif 000014
【図４】
2006139574.tif 000015
【図５】
2006139574.tif 000016
【図６】
2006139574.tif 000017
【図７】
2006139574.tif 000018
【図８】
2006139574.tif 000019
【図９】
2006139574.tif 000020
【図１０】
2006139574.tif 000021
【図１１】
2006139574.tif 000022
【図１２】
2006139574.tif 000023
【図１３】
2006139574.tif 000024
【図１４】
2006139574.tif 000025
【図１５】
2006139574.tif 000026
【図１６】
2006139574.tif 000027
【図１７】
2006139574.tif 000028
【図１８】
2006139574.tif 000029
【図１９】
2006139574.tif 000030
【図２０】
2006139574.tif 000031
【図２１】
2006139574.tif 000032
【図２２】
2006139574.tif 000033
【図２３】
2006139574.tif 000034
【図２４】
2006139574.tif 000035
【図２５】
2006139574.tif 000036