(57)【要約】【課題】プログラム実装量及びメモリ容量を小さくでき、どのような環境にも適した処理を行うことができる画像処理装置及びプログラムを提供する。【解決手段】処理内容に応じて予め定められた最小処理単位の画像データを画像処理する最小単位処理プログラム４４、４６と、最小単位処理プログラムの画像処理を繰り返させる繰り返し処理プログラム５４、５６と、繰り返し処理プログラムを用いて最小単位処理プログラム４４、４６の画像処理を繰り返して処理対象の全画像データに対し所定の画像処理を行う。【選択図】図６
2007293517.tif 000002
【特許請求の範囲】
【請求項１】
処理内容に応じて予め定められた最小処理単位の画像データを画像処理する最小単位処理手段と、
前記最小単位処理手段の画像処理を繰り返させる繰り返し手段と、
前記繰り返し手段を用いて前記最小単位処理手段の画像処理を繰り返して処理対象の全画像データに対し画像処理を行う画像処理手段と、
を含む画像処理装置。
【請求項２】
前記繰り返し手段は、前記画像データが表す画像において、前記最小処理単位の種別に応じて予め定められた方向に該最小単位処理手段の画像処理を繰り返させる請求項１記載の画像処理装置。
【請求項３】
前記画像処理手段は、複数の繰り返し手段を合成した合成繰り返し手段を用いて異なる複数の最小単位処理手段の画像処理を予め定められた処理順に繰り返すことにより、前記画像データ全体に対し異なる複数の画像処理を連続して行う請求項１または請求項２記載の画像処理装置。
【請求項４】
前記合成繰り返し手段を、前記複数の繰り返し手段のうち画像処理を同一方向に繰り返させる繰り返し手段を１つにまとめて合成した請求項３記載の画像処理装置。
【請求項５】
前記合成繰り返し手段を、所定の評価関数値に応じた合成方法で合成した請求項４に記載の画像処理装置。
【請求項６】
前記評価関数値を、画像処理を実行する画像処理装置の処理実行資源および環境に応じて予め定めた請求項５に記載の画像処理装置。
【請求項７】
コンピュータを、
処理内容に応じて予め定められた最小処理単位の画像データを画像処理する最小単位処理手段、
前記最小単位処理手段の画像処理を繰り返させる繰り返し手段、
及び、前記繰り返し手段を用いて前記最小単位処理手段の画像処理を繰り返して処理対象の全画像データに対し画像処理を行う画像処理手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理を行う画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
画像データに対して画像処理を施す場合、各画像処理プログラムで実行可能な最大の処理単位は、画像処理種別だけでなく、ＣＰＵ、ＲＡＭ、ＨＤＤや、ＯＳなどのプログラム実行環境に依存する。例えば、ＲＡＭの容量が小さい環境で面単位で処理を行おうとすると、仮想記憶手段でスワップアウトが多発して非常に低速になってしまうため、ライン単位処理をすることが一般的である。逆にＲＡＭがふんだんにある環境では処理のループ回数を少なくでき高速な面単位処理をすることが一般的である。
【０００３】
従って、従来は、画像処理種別及びプログラム実行環境に応じた処理単位で動作するようにプログラムを開発して実装していた。
【０００４】
なお、複数の画像処理を多重処理する場合に、パイプライン処理によりメモリを効率的に管理しオーバーヘッドを低減させることができるパイプライン化画像処理システムが提案されている。
【特許文献１】特開平７−１０５０２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、複数の環境で最適な処理を行おうとすると、個別の環境に適したプログラムを実装する必要がある。そのため、実装量が膨大になり実装ミス(所謂バグ)も発生しやすくなる。こうした問題は、上記パイプライン化画像処理システムでは解決できない。
【０００６】
本発明は上述した問題を解決するためになされたものであり、プログラム実装量及びメモリ容量を小さくでき、どのような環境にも適した処理を行うことができる画像処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の画像処理装置は、処理内容に応じて予め定められた最小処理単位の画像データを画像処理する最小単位処理手段と、前記最小単位処理手段の画像処理を繰り返させる繰り返し手段と、前記繰り返し手段を用いて前記最小単位処理手段の画像処理を繰り返して処理対象の全画像データに対し画像処理を行う画像処理手段と、を含んで構成されている。
【０００８】
このように、最小単位処理手段と繰り返し手段とを分離し、繰り返し手段を用いて最小単位処理手段の画像処理を繰り返して処理対象の全画像データに対し画像処理を行うようにしたため、プログラム実装量及びメモリ容量を小さくでき、どのような環境にも適した処理を行うことができる。
【０００９】
なお、最小処理単位は、その画像処理を実現するために必要な最小単位であって、例えば、色変換処理であれば画素、フィルタ処理であればフィルタ行列の大きさの画素ブロックとなる。
【００１０】
また、最小単位処理手段の実装は画像処理装置の性能や環境の違いに依存せず、また、繰り返し手段の実装も、通常は最小単位処理手段の処理を横方向に繰り返すライン処理ループなど典型的なものをいくつか用意するだけで済むため、実装量を非常に少なくすることができ、バグも少なくすることができる。
【００１１】
なお、前記繰り返し手段は、前記画像データが表す画像において、前記最小処理単位の種別に応じて予め定められた方向に該最小単位処理手段の画像処理を繰り返させるものである。
【００１２】
また、前記画像処理手段は、複数の繰り返し手段を合成した合成繰り返し手段を用いて異なる複数の最小単位処理手段の画像処理を予め定められた処理順に繰り返すことにより、前記画像データ全体に対し異なる複数の画像処理を連続して行うことができる。また、前記合成繰り返し手段を、前記複数の繰り返し手段のうち画像処理を同一方向に繰り返させる繰り返し手段を１つにまとめて合成したものとすることができる。
【００１３】
また、前記合成繰り返し手段を、所定の評価関数値に応じた合成方法で合成したものとすることができる。なお、この前記評価関数値を、画像処理を実行する画像処理装置の処理実行資源および環境に応じて予め定めておくことができる。
【００１４】
また、本発明のプログラムは、コンピュータを、処理内容に応じて予め定められた最小処理単位の画像データを画像処理する最小単位処理手段、前記最小単位処理手段の画像処理を繰り返させる繰り返し手段、及び、前記繰り返し手段を用いて前記最小単位処理手段の画像処理を繰り返して処理対象の全画像データに対し画像処理を行う画像処理手段として機能させるためのプログラムである。
【００１５】
本発明のプログラムも、本発明の画像処理装置と同様に作用するため、プログラム実装量及びメモリ容量を小さくでき、どのような環境にも適した処理を行うことができることができる。
【発明の効果】
【００１６】
以上説明したように、本発明によれば、プログラム実装量及びメモリ容量を小さくでき、どのような環境にも適した処理を行うことができる、という優れた効果を奏する。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。
【００１８】
図１は、本実施の形態に係る画像処理装置の概略構成を示したブロック図である。同図に示すように、この画像処理装置１０は、ＣＰＵ１２，ＲＯＭ１４、ＲＡＭ１６を含んでおり、各々は相互にコマンドやデータ等の授受が可能なようにバス１８を介して接続されている。
【００１９】
ＲＯＭ１４には、画像処理装置１０の起動時に必要な起動プログラムの他、後述するソースプログラムをコンパイルするコンパイラのプログラムが記憶されている。ＲＡＭ１６は、画像処理等の各種処理実行時にワークメモリとして使用される。ＣＰＵ１２は、ＲＯＭ１４或いは後述するＨＤＤ３０に記憶されているプログラムを実行する。
【００２０】
バス１８には、ディスプレイコントローラ２０が接続されており、ＣＰＵ１２はディスプレイコントローラ２０を介してディスプレイ２２に対する表示制御を行う。
【００２１】
さらに、バス１８には、キーボードコントローラ２４が接続されており、ＣＰＵ１２はキーボードコントローラ２４を介してキーボード２６の操作による入力結果を得ることができる。
【００２２】
また、バス１８には、ハードディスク（ＨＤＤ）コントローラ２８が接続されいる。ＨＤＤコントローラ２８は、ＨＤＤ３０に対するデータの読み書きを制御するコントローラである。ＨＤＤ３０は、ソースプログラムを記憶するソースプログラム記憶領域３２、ソースプログラムで呼び出されるライブラリ関数を記憶するためのライブラリ記憶領域３４、ソースプログラムをコンパイルした後の実行形式のプログラムを記憶するための実行形式プログラム記憶領域３６を含んで構成されている。ＣＰＵ１２は、実行形式プログラム記憶領域３６に記憶されている実行形式プログラムを実行することにより、各種制御や画像処理等を行う。また、図示は省略するが、ＨＤＤ３０には、画像データを記憶するための領域も確保されている。
【００２３】
図２は、ソースプログラム記憶領域３２に記憶されているソースプログラムの一例を示した図である。同図に示すように、ソースプログラム記憶領域３２に記憶されているソースプログラムには、処理対象の全画像データに対して所定の画像処理を実行するためのメインプログラムである画像処理メインプログラム４０、４２が含まれている。
【００２４】
画像処理メインプログラム４０は、横方向１ライン分の画像データに対して色空間変換処理を行うときに実行される実行形式プログラムのソースプログラムである。
【００２５】
また、画像処理メインプログラム４２は、面単位で画像データを色変換処理する色空間変換処理および面単位で画像データを最近傍法により横２倍に拡大する横整数倍拡大処理という異なる２つの画像処理を連続して行うときに実行される実行形式プログラムのソースプログラムである。
【００２６】
また、ソースプログラム記憶領域３２には、メインプログラムでインライン関数（後述）として定義される色空間変換処理プログラム４４、画素横整数倍拡大処理プログラム４６、画素縦整数倍拡大処理プログラム４８、フィルタ処理プログラム５０、９０度回転処理プログラム５２、横方向繰り返し処理プログラム５４、及び縦方向繰り返し処理プログラム５６も記憶されている。
【００２７】
ここで、色空間変換処理プログラム４４、画素横整数倍拡大処理プログラム４６、画素縦整数倍拡大処理プログラム４８、フィルタ処理プログラム５０、及び９０度回転処理プログラム５２は、各プログラムの処理内容に応じて予め定められた最小処理単位の画像データを画像処理する。なお、ここでいう最小処理単位とは、その処理に最低限必要な最小単位であって、処理に１画素必要な場合には、その処理単位は１画素となり、ｎ画素必要な場合には、その処理単位はｎ画素となる。以下、各画像処理プログラムと各処理単位について詳しく説明する。
【００２８】
色空間変換処理プログラム４４は、１画素分の画像データを入力して色空間をＲＧＢ色空間からグレー色空間に変換して出力する。すなわち、色空間変換処理プログラム４４の処理単位は１画素である。
【００２９】
また、画素横整数倍拡大処理プログラム４６は、倍率をＭとすると、入力画素１画素に対して該入力画素と同じ画素値を有する横方向に並んだＭ組の画素を出力する。画素横整数倍拡大処理プログラム４６の処理単位は、色空間変換処理プログラム４４と同様に１画素である。
【００３０】
また、画素縦整数倍拡大処理プログラム４８は、倍率をＮとすると、入力画素１画素に対して該入力画素と同じ画素値を有する縦方向に並んだＮ組の画素を出力する。画素縦整数倍拡大処理プログラム４８の処理単位は、色空間変換処理プログラム４４と同様に１画素である。
【００３１】
フィルタ処理プログラム５０は、メディアンフィルタ等を用いて画像に含まれるノイズを除去する。このようにフィルタを使用するため、フィルタ処理プログラム５０の処理単位は使用するフィルタ行列の大きさだけの画素ブロックとなる。
【００３２】
９０度回転処理プログラム５２は、画像を９０度回転するためのプログラムである。ここで９０度回転処理プログラム５２は、１画素ずつｘとｙの座標値を変換していくため、処理単位は、１画素座標となる。
【００３３】
なお、色空間変換処理プログラム４４、画素横整数倍拡大処理プログラム４６、画素縦整数倍拡大処理プログラム４８、フィルタ処理プログラム５０、及び９０度回転処理プログラム５２のように、実行可能な最小処理単位を画像処理する画像処理プログラムの各々を最小画像処理プログラムと総称する。
【００３４】
また、横方向繰り返し処理プログラム５４、および縦方向繰り返し処理プログラム５６は、上記最小画像処理プログラムを繰り返して実行させるためのプログラムである。
【００３５】
具体的には、横方向繰り返し処理プログラム５４は、最小画像処理プログラムの処理を横方向に横画素数分繰り返させる。また、縦方向繰り返し処理プログラム５６は、最小画像処理プログラムの処理を横方向に縦画素数分繰り返させる。
【００３６】
本実施の形態において、これらメインプログラム、最小画像処理プログラム、および繰り返し処理プログラムは、Ｃ＋＋言語で記述されているものとする。メインプログラムである前述の画像処理メインプログラム４０、４２には、上記最小画像処理プログラム及び繰り返し処理プログラムがインライン関数として宣言されている。インライン関数は、メインプログラムのコンパイル時にインライン展開される。メインプログラム（より正確にはメインプログラムの実行形式プログラム）の実行により、インライン関数として宣言された複数のプログラムが組み合わされて実行され、最終的に処理対象の全画像データに対し所定の画像処理を施すことができる。
【００３７】
ここで、具体的な例を挙げて説明する。まず、横方向１ライン分の画像データに対して色空間変換処理を実行する場合のプログラムの構築について説明する。
【００３８】
図３は、色空間変換処理プログラム４４及び横方向繰り返し処理プログラム５４を用い、横方向１ライン分の画像データに対して色空間変換処理を実行する場合のメインプログラムとしての画像処理メインプログラム４０のソースコードの一例を示した図である。なお、ここでは、色空間変換処理プログラム４４を「RGBToGray.hpp」と定義し、横方向繰り返し処理プログラム５４を「XRepeat.hpp」と定義する。
【００３９】
図３に示すように、画像処理メインプログラム４０のインクルード宣言部分１００には、色空間変換処理プログラム「RGBToGray.hpp」、及び横方向繰り返し処理プログラム「XRepeat.hpp」がインクルードされている。これにより、コンパイル時には、プログラム本文で該宣言された関数がインライン関数として定義されて使用されている部分にインライン展開され、オブジェクトファイルが生成される。
【００４０】
図４は、色空間変換処理プログラム４４のソースコードの一例を示した図である。
【００４１】
図４に示すように、色空間変換処理プログラム（RGBToGray.hpp）４４のインクルード宣言部分１１０には、プログラム本文で使用されるクラスの定義がインクルードされている。プログラム本文１１２には、該宣言されたクラスが使用され、一組のＲ、Ｇ、Ｂ値で構成される入力画素（プログラム上では、Ｒ値がval[0]、Ｇ値がval[1]、Ｂ値がval[2]に代入される）を、グレー値の出力画素（out[0]）に変換する１画素入力１画素出力の色空間変換処理アルゴリズムが記述されている。
【００４２】
図５は、横方向繰り返し処理プログラム５４のソースコードの一例を示した図である。
【００４３】
図５に示すように、繰り返し処理プログラム（XRepeat.hpp）５４のインクルード宣言部分１２０には、プログラム本文で使用される配列クラスがインクルードされ、プログラム本文の前半部分１２２には、テンプレートクラスが定義されている。更に、この前半部分１２２では、１単位処理オブジェクトとしてクラスが宣言され、入力単位型及び出力単位型が定義されている。また、後半部分１２４では、横方向（Ｘ方向）に１単位分の処理を横画素数分繰り返してスキャンラインを処理する繰り返し処理が記述されている。
【００４４】
図３の画像処理メインプログラム４０では、上記インクルード宣言部分１００の後に、プログラム本文が記述されている。プログラム本文は、ＲＧＢ値の画素を横画素数分バッファリングするＲＧＢラインとグレー値に変換された画素を横画素数分バッファリングするグレーラインを定義した命令コード１０２と、１ライン分のデータを読み込むための命令を記述した命令コード１０４（命令コードの図示は省略）と、色空間変換処理プログラム（RGBToGray.hpp）４４で宣言されたクラスのインスタンスを取得する命令コード１０６と、横方向繰り返し処理プログラム（XRepeat.hpp）５４をテンプレートとして用い、命令コード１０６で実体化されたＲＧＢ画素をグレー画素へ変換するインスタンスを横方向（Ｘ方向）に横画素数分繰り返すためのインスタンスを取得する命令コード１０８と、ＲＧＢラインからグレーラインへの変換処理を実行する命令コード１１０とを含んで構成されている。
【００４５】
すなわち、画像処理メインプログラム４０は、色空間変換処理を１画素単位で処理する色空間変換処理プログラム４４を横方向繰り返し処理プログラム５４により横画素数分繰り返して実行させることにより、横方向１ライン分の画像データに色空間変換処理を施す。画像処理メインプログラム４０のコンパイル時には、該プログラムに含まれるインライン関数が展開されてオブジェクトファイルが生成される。そして、最終的に外部オブジェクトファイルとリンクした実行形式のプログラムが生成される。この実行形式のプログラムをＣＰＵ１２が実行することにより、横方向１ライン分の画像データに対して色空間変換処理を施すことができる。
【００４６】
なお、図６（Ａ）に示すように、色空間変換処理プログラム４４の最小処理単位の色空間変換処理を横方向に繰り返す横方向繰り返し処理プログラム５４を、縦方向繰り返し処理プログラム５６を用いて縦方向に繰り返すことにより、面単位で画像データに色空間変換処理を施すことができる。具体的なソースプログラムの図示は省略するが、上記と同様に縦方向繰り返し処理プログラム５６を画像処理メインプログラム４０のインクルード宣言部分１００に追加して宣言し、ＲＧＢ画素をグレー画素へ変換する変換処理を横方向繰り返し処理プログラム５４により横方向（Ｘ方向）に横画素数分繰り返すための命令コード１０８の後に、該横方向繰り返し処理プログラム５４による繰り返し処理を縦方向（Ｙ方向）に縦画素数分繰り返すための命令コードを新たに追加することにより、最終的に面単位で画像データ全体の色空間変換処理を実行するプログラムを構築できる。
【００４７】
また、一組のＲ、Ｇ、Ｂ値で構成される入力画素の値をPixelで表し、色空間変換処理プログラム４４を関数fc、横方向繰り返し処理プログラム５４を関数fpx、および縦方向繰り返し処理プログラム５６を関数fxyで表した場合、面単位の色空間変換処理は以下のような関数式（１）で表すことができる。
【００４８】
色空間変換処理 := fxy(fpx(fc(Pixel)))    ・・・（１）
次に、面単位で画像データを色変換処理する色空間変換処理、および面単位で画像データを最近傍法により横２倍に拡大する横整数倍拡大処理の２つの画像処理を連続して行う場合のプログラム構築を例に挙げて説明する。なお、ここでは、図６のブロック図を参照しながら説明し、ソースコードの図示は省略する。
【００４９】
まず、２つの処理を別々に構築する場合を考える。
【００５０】
色空間変換処理のためのプログラムは、上述と同様に構築できるため、説明を省略する。
【００５１】
画素横整数倍拡大処理のためのプログラムは、画素横整数倍拡大処理プログラム４６、横方向繰り返し処理プログラム５４、及び縦方向繰り返し処理プログラム５６を用いて構築する。具体的には、この画素横整数倍拡大処理プログラム４６の処理を横方向繰り返し処理プログラム５４により横方向に横画素数分繰り返して実行させ、更にこの横方向繰り返し処理プログラム５４の繰り返し処理を縦方向繰り返し処理プログラム５６で縦方向に縦画素数分繰り返して実行させるように、面単位の画素横整数倍拡大処理のメインプログラムを構築する（図６（Ｂ）参照）。
【００５２】
なお、一組の入力画素の値をPixelで表し、画素横整数倍拡大処理プログラム４６を関数fsx、横方向繰り返し処理プログラム５４を関数fpx、および縦方向繰り返し処理プログラム５６を関数fxyで表した場合、面単位の画素横整数倍拡大処理は以下のような関数式で表すことができる。
横拡大処理 := fxy(fpx(fsx(Pixel)))      ・・・（２）
これら２つの処理を連続して実行する場合には、上記関数（１）及び（２）を連結してメインプログラムを構築する。ただし、単純な連結では色空間変換処理結果である面単位の中間画像データを一時的にＲＡＭ１６に記憶しなければならない。しかしながら、画像処理装置１０のＲＡＭ１６の容量が小さい場合には、これは困難である。従って、（１）及び（２）の両関数式に共通している繰り返し処理を１つにまとめて合成し、下記（３）の関数式で表されるメインプログラム（画像処理メインプログラム４２）を構築する。
(色空間変換処理×横拡大処理) := fxy(fpx(fsx(fc(Pixel))))      ・・・（３）
これを図示したものが、図６（Ｃ）である。同図に示すように、まず、色空間変換処理を行い、色空間変換処理後の画素について画素横整数倍拡大処理を行うようにし、これを横方向に繰り返す横方向繰り返し処理を行い、更にこの横方向繰り返し処理を縦方向に繰り返す縦方向繰り返し処理を行うことにより、面単位の色空間変換処理および面単位の横整数倍拡大処理という異なる２つの画像処理を連続して行うことができる。
【００５３】
なお、このとき、上述したように、各最小画像処理プログラム及び各繰り返し処理プログラムを、メインプログラムでその処理順そのままにインライン関数やテンプレートで定義すれば、コンパイラによるコンパイル時に自動的に上記（３）の形式に最適化されるため、実装量を減らすことができると共に、中間結果を一時的に保存するために必要なメモリ容量も削減でき、更にこれにより処理速度を向上させることができる。
【００５４】
更に、連続して実行される画像処理が逆変換の場合、例えば横２倍拡大後に横１／２縮小する場合など、処理プログラムが連結されて最適化されると、処理が削除でき効果が高い。
【００５５】
なお、複数の最小画像処理プログラムを繰り返して実行させるための繰り返し処理プログラムを合成する場合であって、その合成方法が複数パターン存在する場合には、画像処理装置１０の処理実行資源及び環境に応じて評価関数値を予め定めておき、コンパイル時に該評価関数値に応じた合成方法が選択されるようにしてもよい。
【００５６】
例えば、ワークメモリとして使用されるメモリの容量が大きい場合には、評価関数値を高く、逆に容量が小さい場合には評価関数値を低く設定しておくことができる。
【００５７】
また、合成方法については、以下のような複数のパターンが考えられる。
【００５８】
例えば、色空間変換処理と拡大処理とを画像全体に施す場合、色空間変換処理、拡大処理、横方向繰り返し処理、縦方向繰り返し処理、の順番で合成し、ワークメモリ量を低減させることを優先する合成方法がある。
【００５９】
また、空間変換処理後に横方向繰り返し処理を合成し、また、拡大処理後に横方向繰り返し処理を合成し、該２つの合成された処理を順次縦方向繰り返し処理することで、ワークメモリと処理速度のバランスを取りやすい合成方法などもある。
【００６０】
合成方法の選択方法については、以下のような方法を採用することができる。
【００６１】
予め設定されている評価関数値を引数としてコンパイルを実行させ、評価関数値に応じてコンパイラ自身が合成方法を選択することができる。この場合には、評価関数値に応じて最適な合成方法を選択するための機能を予めコンパイラに設けておく。
【００６２】
また、以下の選択方法も採用することができる。複数の合成方法が全てインライン展開されるようにメインプログラムを作成すると共に、評価関数値に応じてどの合成方法を選択して実行するかを決めるソースコードをメインプログラムに含ませて作成する。そして、メインプログラム実行時には、評価関数値を引数としてメインプログラムを実行させ、メインプログラム実行中に評価関数値に応じて最適な合成方法を選択して実行する。
【００６３】
なお、上記実施の形態では、色空間変換処理、横拡大処理を例に挙げて説明したが、これに限定されず、例えばフィルタ処理や９０度回転処理等、他の画像処理についても、同様に各々の画像処理に対応した最小画像処理プログラムを繰り返し処理プログラムを用いて繰り返して実行させ、処理対象の全画像データについて画像処理を行うことができる。
【００６４】
なお、最小画像処理プログラムの処理単位に応じて、繰り返し処理の方向が定められるようにしてもよい。例えば、色空間変換処理では１画素単位で処理されるが、１画素単位で処理する場合には、横方向に順に繰り返し処理を行い、且つ該横方向の繰り返し処理を縦方向に行うように繰り返し処理プログラムを組み合わせて用いるように定めてもよい。
【００６５】
以上説明したように、最小画像処理プログラム及び最小画像処理プログラムを繰り返して実行させるための繰り返し処理プログラムをメインプログラムで組み合わせて記述し、ＣＰＵで該プログラムの実行形式プログラムを実行させるようにしたため、プログラム実装量及びメモリ容量を小さくでき、どのような環境にも適した処理を行うことができる。
【図面の簡単な説明】
【００６６】
【図１】実施の形態に係る画像処理装置の概略構成を示したブロック図である。
【図２】ソースプログラム記憶領域に記憶されているソースプログラムの一例を示した図である。
【図３】横方向１ライン分の画像データに対して色空間変換処理を実行する場合のメインプログラムとしての画像処理メインプログラムのソースコードの一例を示した図である。
【図４】色空間変換処理プログラムのソースコードの一例を示した図である。
【図５】横方向繰り返し処理プログラムのソースコードの一例を示した図である。
【図６】（Ａ）は、面単位の色空間変換処理を実行する画像処理メインプログラムで定義された色空間変換処理プログラム、横方向繰り返し処理プログラム、および縦方向繰り返し処理プログラムの関係を示した図であり、（Ｂ）は、面単位の横拡大変換処理を実行する画像処理メインプログラムで定義された横拡大処理プログラム、横方向繰り返し処理プログラム、および縦方向繰り返し処理プログラムの関係を示した図であり、（Ｃ）は、面単位の色空間変換処理及び横拡大変換処理を連続して実行する場合であって、繰り返し処理の共通部分をまとめて合成した場合の各プログラムの関係を示した図である。
【符号の説明】
【００６７】
１０  画像処理装置
１２  ＣＰＵ
１４  ＲＯＭ
１６  ＲＡＭ
３０  ＨＤＤ
３２  ソースプログラム記憶領域
３４  ライブラリ記憶領域
３６  実行形式プログラム記憶領域
４０、４２  画像処理メインプログラム
４４  色空間変換処理プログラム
４６  画素横整数倍拡大処理プログラム
４８  画素縦整数倍拡大処理プログラム
【図１】
2007293517.tif 000003
【図２】
2007293517.tif 000004
【図３】
2007293517.tif 000005
【図４】
2007293517.tif 000006
【図５】
2007293517.tif 000007
【図６】
2007293517.tif 000008