(57)【要約】【課題】画像処理装置の処理速度を高速化すること。【解決手段】画像処理装置は、複数の画素それぞれに対応する入力データを格納するための入力メモリ領域と、出力データを格納するための出力メモリ領域と、処理対象画素の入力データおよび処理対象画素に対して所定画素数前の画素の入力データを入力メモリ領域から読出して比較する比較手段（Ｓ０２）と、比較の結果両入力データが一致するとされたとき（Ｓ０３でＹＥＳ）、処理対象画素に対して所定画素数前の出力データを出力メモリ領域から読出して（Ｓ０４）、対象画素の出力データとして出力メモリ領域に格納する格納手段（Ｓ０５）とを備える。【選択図】　　　　図４
2004040391.tif 000002
【特許請求の範囲】
【請求項１】
複数の画像それぞれに対応する入力データを順に格納するための入力メモリと、
出力データを順に格納するための出力メモリと、
対象画素の入力データおよび前記対象画素に対して所定画素数前の画素の入力データを前記入力メモリから読出して比較する比較手段と、
前記比較手段による比較の結果両入力データが一致するとされたとき、対象画素に対して所定画素数前の出力データを前記出力メモリから読出して、対象画素の出力データとして前記出力メモリに格納する格納手段とを備えた、画像処理装置。
【請求項２】
前記格納手段は、前記比較手段による比較の結果両入力データが一致しないとされたとき、対象画素の入力データに対して所定の演算を行なって得た結果を対象画素の出力データとして格納する、請求項１に記載の画像処理装置。
【請求項３】
前記入力メモリと前記出力メモリとは共通のメモリ領域を使用しており、
前記格納手段は、前記対象画素に対して所定画素数以上前の画素の入力データが格納されていた領域に、対象画素の出力データを格納する、請求項１に記載の画像処理装置。
【請求項４】
対象画素が複数の入力データからなるブロックで定義され、前記比較手段は、ブロック単位で比較する、請求項１に記載の画像処理装置。
【請求項５】
前記所定の演算は、入力データに対する色変換処理である、請求項２に記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、画像処理装置に関し、特に、画像情報を高速に処理する画像処理装置に関する。
【０００２】
【従来の技術】
従来、紙などに印刷された写真や文字などを読取り、電子データに変換するイメージスキャナやデジタルスチルカメラ等の画像読取装置が知られている。これらの画像読取り装置で電子データとして取り込まれた画像データをディスプレイに表示したりプリンタで印刷する際に、ディスプレイまたはプリンタで出力するのに適した画像処理が画像データに施される。この画像処理としては、色変換処理、トーンカーブ変更処理、量子化処理、マスク処理などが知られている。また、コンピュータで作成されたカラーの文書や画像データをプリンタで印刷する際にも同様の画像処理が必要である。
【０００３】
これらの画像データは、一般的に冗長性を持ち、隣接する画素のデータは同じ値となることが多い。得られた画像データに対して上述の画像処理を行なう場合、入力データが同じであれば出力データも同じとなる。このため、同じ値の画像データが連続している場合には、同じ出力データが出力されるにも係わらず、同じ画像処理が繰返えされることになる。この点に注目して、特開平６−５２２７４号公報には、先に入力された画素データと、その画素データについて画像処理を施した結果得られる出力データとをそれぞれ１画素分保持する記憶手段を有しており、後に入力された画素データと先に入力された画素データとが同じ場合には、記憶手段に保持されている出力データを後に入力された画素データの画像処理部の出力データとして出力する画像処理装置が記載されている。
【０００４】
【発明が解決しようとする課題】
しかしながら、特開平６−５２２７４号公報に記載の画像処理装置は、先に入力された画素データと後に入力された画素データとを比較するために、先に入力された画素データを記憶しておくためのメモリが必要となる。また、先に入力された画素データと後に入力された画素データとが同じ場合に、先に入力された画素データに対して画像処理を施した結果得られる出力データを記憶しておくためのメモリが必要となる。さらに、入力されたデータを一時記憶するために、入力されたデータをメモリに記憶する処理、メモリに記憶された先に入力された画素データに対して画像処理を施した結果得られる出力データを記憶する処理が必要となるため、実行される処理が多くなり、処理の高速化には限界があった。
【０００５】
この発明は上述の問題点を解決するためになされたもので、この発明の目的の１つは、処理速度を高速化した画像処理装置を提供することである。
【０００６】
この発明の他の目的は、メモリコストを削減した画像処理装置を提供することである。
【０００７】
【課題を解決するための手段】
上述の目的を達成するためにこの発明のある局面によれば、画像処理装置は、複数の画像それぞれに対応する入力データを順に格納するための入力メモリと、出力データを順に格納するための出力メモリと、対象画素の入力データおよび対象画素に対して所定画素数前の画素の入力データを入力メモリから読出して比較する比較手段と、比較手段による比較の結果両入力データが一致するとされたとき、対象画素に対して所定画素数前の出力データを出力メモリから読出して、対象画素の出力データとして出力メモリに格納する格納手段とを備える。
【０００８】
この発明に従えば、対象画素の入力データおよび全対象画素に対して所定画素数内の画素の入力データが入力メモリから読出されて比較され、比較の結果両入力データが一致するとされたとき、対象画素に対して所定画素数前の出力データが出力メモリから読出されて、対象画素の出力データとして出力メモリに格納される。入力データが一致する場合には出力データも一致する。このため、入力データから出力データを生成する必要がなく、不必要な処理を実行する必要がない。その結果、処理速度を高速化した画像処理装置を提供することができる。
【０００９】
好ましくは、格納手段は、比較手段による比較の結果両入力データが一致しないとされたとき、対象画素の入力データに対して所定の演算を行なって得た結果を対象画素の出力データとして格納する。
【００１０】
この発明に従えば、比較の結果両入力データが一致しないとされたとき、対象画素の入力データに対して所定の演算を行なって得た結果が対象画素の出力データとして格納される。このため、すべての入力データに対応する出力データを出力メモリに確実に格納することができる。
【００１１】
好ましくは、入力メモリと出力メモリとは共通のメモリ領域を使用しており、格納手段は、対象画素に対して所定画素数以上前の画素の入力データが格納されていた領域に、対象画素の出力データを格納する。
【００１２】
この発明に従えば、入力メモリと出力メモリとが共通のメモリ領域を使用するため、メモリ領域を有効に活用することができ、メモリコストを削減した画像処理装置を提供することができる。また、対象画素に対して所定画素数以上前の画素の入力データが格納されていた領域に対象画素の出力データが格納されるので、処理前の入力データが失われることなく出力データを格納することができる。
【００１３】
好ましくは対象画素が複数の入力データからなるブロックで定義され、比較手段は、ブロック単位で比較する。
【００１４】
この発明に従えば、対象画素が複数の入力データからなるブロックで定義され、入力データがブロック単位で比較される。このため、画素が複数の入力データからなるブロックで定義されている場合でも、ブロック単位で出力データが出力メモリに格納される。その結果、たとえば、ベイヤ画像等の入力データであっても、処理速度を高速化することができる。
【００１５】
好ましくは、所定の演算は、入力データに対する色変換処理である。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【００１７】
図１は、本発明の実施の形態の１つにおける画像処理装置の外観図である。図１を参照して、この画像処理装置１０は、コンピュータ１００と、ディスプレイ１０２と、イメージスキャナ１０３と、プリンタ１０４と、キーボード１０６と、マウス１０８とを含む。
【００１８】
図２は、本実施の形態における画像処理装置１０の構成図である。図２に示されるようにこの画像処理装置１０は、それぞれバス１２６に接続されたＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１１６と、オペレーティングシステムのブートアッププログラムなどを記憶したＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）１１８と、プログラム実行中のデータを記憶するためのＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）１２０と、ＣＰＵ１１６で実行するための画像処理プログラムや画像データなどを不揮発的に記憶するためのハードディスク１１４と、このコンピュータ１００をネットワーク１３２に接続するためのネットワークインターフェイス１３０と、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ　Ｄｉｓｃ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）ドライブ１１０とを含んでいる。ＣＤ−ＲＯＭドライブ１１０にはＣＤ−ＲＯＭ１２２が装着される。ＦＤドライブ１１２にはＦＤ１２４が装着される。
【００１９】
この画像処理装置１０では、主に画像処理装置１０で実行するためのプログラムがハードディスク１１４に記録され、記録されたプログラムがＣＰＵ１１６により実行される。一般的にこうしたプログラムは、ＣＤ−ＲＯＭ１２２またはＦＤ１２４などの記録媒体に格納されて流通し、ＣＤ−ＲＯＭドライブ１１０またはＦＤドライブ１１２などにより記録媒体から読取られてハードディスク１１４に一旦格納される。さらにハードディスク１１４からＲＡＭ１２０に読出されてＣＰＵ１１６により実行される。
【００２０】
なお、記録媒体としては、ＣＤ−ＲＯＭ１２２、ＦＤ１２４、ハードディスク１１４に限られず、磁気テープ、カセットテープ、光ディスク（ＭＯ（ＭａｇｎｅｔｉｃＯｐｔｉｃａｌ　Ｄｉｓｃ）／ＭＤ（Ｍｉｎｉ　Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ　Ｖｅｒｓａｔｉｌｅ　Ｄｉｓｃ））、ＩＣカード（メモリカードを含む）、光カード、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュＲＯＭなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。ここでプログラムとは、ＣＰＵ１１６により直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む概念である。
【００２１】
なお、図１および図２に示したコンピュータ自体の動作は周知であるのでここではその詳細な説明は繰返さない。
【００２２】
また、図１および図２において、画像処理装置１０を、プリンタ１０４およびイメージスキャナ１０３を含む構成としたが、プリンタ１０４およびイメージスキャナ１０３を画像処理装置１０とは別個に設け、プリンタ１０４およびイメージスキャナ１０３をネットワーク１３２に接続する構成としてもよい。この場合、イメージスキャナ１０３で読込まれた画像データは、ネットワーク１３２を介してコンピュータ１００のネットワークインターフェイス１３０により受信され、ＲＡＭ１２０に記憶される。また、ＲＡＭ１２０に記憶された画像データは、ネットワークインターフェイス１３０より、ネットワーク１３２を介してプリンタ１０４に送信され、プリンタ１０４で印刷される。
【００２３】
さらに、本実施の形態においては、画像を入力する装置としてイメージスキャナ１０３を例に説明するが、イメージスキャナ１０３に限られず、デジタルスチルカメラ等の電子データとして画像情報を取込むことが可能な装置であれば、適用可能である。
【００２４】
図３は、本実施の形態における画像処理装置の機能を示す機能ブロック図である。ＦＤ１２４またはＣＤ−ＲＯＭ１２２に記憶された画像処理プログラムがＦＤドライブ１１２またはＣＤ−ＲＯＭドライブ１１０により読取られて、ＣＰＵ１１６で実行されることにより、ＣＰＵ１１６には、色変換処理部１１６Ａが構成される。
【００２５】
また、ＲＡＭ１２０は、入力メモリ領域１２０Ａと出力メモリ領域１２０Ｂとを含む。入力メモリ領域１２０Ａには、イメージスキャナ１０３で読込まれた画像データが、入力データとして記憶される。画像データは、複数の画素それぞれのデータが、画素の配列順に並んだデータである。画素のデータは、１つの画素について、１つまたは複数のデータからなる。画像データがモノクロ画像の場合には、１つのデータで構成される。画像データがカラーの場合には、赤（Ｒ）、緑（Ｇ）、青（Ｂ）の３つのデータ、または、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）の４つのデータで構成される。ここでは、画素のデータを構成するデータの数をチャンネル数で表現する。たとえば、画素のデータがＲＧＢの３つのデータで構成される場合には、３チャンネルのデータと言い、ＣＭＹＫの４つのデータで構成される場合には４チャンネルのデータと言う。
【００２６】
出力メモリ領域１２０Ｂには、色変換処理部１１６Ａで画像処理された画像データが出力データとして記憶される。出力データとしての画像データは、入力データとしての画像データと同様に、複数の画素それぞれのデータが画素の配列順に並んだデータである。
【００２７】
図４は、本実施の形態における画像処理装置１０の色変換処理部１１６Ａで実行される画像処理の流れを示すフローチャートである。ここでは、色変換処理部で、ＲＧＢの３チャンネルの画像データをＣＭＹＫの４チャンネルの画像データに変換する処理を例に説明する。この場合、ＲＧＢの３チャンネルの画像データが、入力データとして入力メモリ領域１２０Ａに記憶されている。すなわち、１番目の画素のデータとしてのＲＧＢの３つのデータ、２番目の画素のデータとしてのＲＧＢの３つのデータの順に、画素の数のデータが入力メモリ領域に記憶されている。色変換処理部１１６Ａでは、ＲＧＢのデータからなる画素のデータをＣＭＹＫのデータからなる画素のデータに変換する。そして、４チャンネルの画像データが出力データとして出力メモリ領域１２０Ｂに記憶される。すなわち１番目の画素のデータとしてのＣＭＹＫの４つのデータ、２番目の画素のデータとしてのＣＭＹＫの４つのデータの順に、画素の数のデータが出力メモリ領域１２０Ｂに記憶される。
【００２８】
図４を参照して、まず、処理の対象となる画素のデータが、画像の先端のデータであるか否かが判断される（ステップＳ０１）。処理対象の画素のデータとは、後述する色変換処理の対象となる画素のデータであり、入力メモリ領域１２０Ａに記憶されている画像データに含まれる画素のデータである。上述したとおり、画像データは、複数の画素それぞれのデータが画素の配列の順に並ぶデータであった。したがって、最初の順番の画素のデータであるか否かがステップＳ０１では判断されることになる。処理対象の画素のデータが、画像データの先端であるとされた場合にはステップＳ０７に進み、そうでない場合にはステップＳ０２へ進む。
【００２９】
色変換処理部１１６Ａは、処理対象となる画素のデータが記憶されている入力メモリ領域１２０Ａのアドレスを示すポインタを用いて、処理対象となる画素のデータを特定する。以下、入力メモリ領域のアドレスを示すポインタを入力ポインタという。ここでは、入力メモリ領域１２０Ａに記憶されている入力データを、３チャンネルの画像データとしてため、次の処理の対象となる画素のデータを特定するためには、ポインタ値を３つ進めることになる。
【００３０】
また、色変換処理部１１６Ａは、色変換された画素のデータが記憶されている出力メモリ領域１２０Ｂのアドレスを示すポインタを用いて、色変換処理がされた画素のデータを記憶する領域を特定する。以下、出力メモリ領域１２０Ｂのアドレスを示すポインタを出力ポインタという。ここでは、出力メモリ領域１２０Ｂに記憶される出力データを、４チャンネルの画像データとしているため、次の画素のデータを記憶するためには、出力ポインタに４を加算することになる。
【００３１】
したがって、処理対象の画素のデータは、入力ポインタで示されるアドレスのＲのデータと、入力ポインタに１を加算した値で示されるアドレスのＧのデータと、入力ポインタに２を加算した値で示されるアドレスのＢのデータである。
【００３２】
ステップＳ０７では、処理対象の画素のデータに対して色変換処理を実行する。そして、色変換された出力データを出力メモリ領域１２０Ｂに記憶し（ステップＳ０８）、その後、ステップＳ０６に進む。色変換処理が実行された画素のデータは、ＣＭＹＫの４つのデータであった。ＣＭＹＫの４つのデータは、出力ポインタで示されるアドレスにＣのデータが記憶され、出力ポインタに１を加算した値で示されるアドレスにＭのデータが記憶され、出力ポインタに２を加算した値で示されるアドレスにＹのデータが記憶され、出力ポインタに３を加算した値で示されるアドレスにＫのデータが記憶される。
【００３３】
一方、ステップＳ０２では、処理対象の画素のデータと１つ前の画素のデータとを比較する。ここでは、入力画像データが３チャンネルの画像データとしているため、次の３つの比較が行なわれる。（１）入力ポインタで示されるアドレスのＲのデータと入力ポインタから３を減算した値で示されるアドレスのＲのデータとの比較、（２）入力ポインタに１を加算した値で示されるアドレスのＧのデータと入力ポインタから２を減算した値で示されるアドレスのＧのデータとの比較、（３）入力ポインタに２を加算した値で示されるアドレスのＢのデータと入力ポインタから１を減算した値で示されるアドレスのＢのデータとの比較である。
【００３４】
次のステップＳ０３では、比較の結果、処理対象の画素のデータと１つ前の画素のデータとが一致するか否かが判断される。一致するとされた場合にはステップＳ０４に進み、そうでない場合にはステップＳ０７に進む。処理対象の画素のデータと１つ前の画素のデータとが一致するか否かは、上述の３つの比較すべてにおいて一致するとされた場合に、処理対象の画素のデータと１つ前の画素のデータとが一致すると判断される。
【００３５】
次のステップＳ０４では、出力メモリ領域１２０Ｂから１つ前の画素のデータが読出される。１つ前の画素のデータは、出力ポインタから４を減算した値で示されるアドレスのＣのデータと、出力ポインタから３を減算した値で示されるアドレスのＭのデータと、出力ポインタから２を減算した値で示されるアドレスのＹのデータと、出力ポインタから１を減算した値で示されるアドレスのＫのデータである。
【００３６】
読出された１つ前の画素のデータが、出力メモリ領域に格納される（ステップＳ０５）。すなわち、出力ポインタで示されるアドレスに、出力ポインタから４を減算した値で示されるアドレスのＣのデータが格納され、出力ポインタに１を加算した値で示されるアドレスに出力ポインタから３を減算した値で示されるアドレスのＭのデータが格納され、出力ポインタに２を加算した値で示されるアドレスに出力ポインタから２を減算した値で示されるアドレスのＹのデータが格納され、出力ポインタに３を加算した値で示されるアドレスに出力ポインタから１を減算した値で示されるアドレスのＫのデータが格納される。
【００３７】
そして、次のステップＳ０６では、処理対象の画素のデータを次の画素のデータとするために、入力ポインタが１画素分進められる。すなわち、入力ポインタが３を加算した値に更新される。これと同様に、出力メモリ領域１２０Ｂに格納する画素のデータを次の画素のデータとするために出力ポインタが１画素分進められる。すなわち、出力ポインタが４加算した値に更新される。
【００３８】
次のステップＳ０９では、処理対象の画素のデータが、画像データの終端か否かが判断される。画像データの終端とは、最後の画素のデータを意味する。処理対象の画素のデータが、画像データの終端と判断された場合には処理を終了し、そうでない場合にはステップＳ０２へ戻る。
【００３９】
図５は、本実施の形態における画像処理装置１０の色変換処理部１１６Ａで実行される画像処理を説明するための模式図である。図５（Ａ）は、入力メモリ領域１２０Ａに記憶されている画像データの一部を示す。図５（Ｂ）に、出力メモリ領域１２０Ｂに記憶されている画像データの一部を示す。図５（Ａ）および図５（Ｂ）では、色変換処理が実行された画素のデータをハッチングで示している。ハッチングされていない画素のデータは、色変換処理が未だに施されていない画素のデータを示している。
【００４０】
図５（Ａ）を参照して、入力メモリ領域において、入力ポインタは、処理対象の画素のデータ１４１のＲのデータが格納されている領域のアドレスを示している。したがって、処理対象の画素のデータ１４１は、入力ポインタで示されるアドレスのＲのデータと、入力ポインタに１を加算して値で示されるアドレスのＧのデータと、入力ポインタに２を加算した値で示されるアドレスのＢのデータとで構成されることになる。また、処理対象の画素のデータ１４１の１つ前の画素のデータ１４１Ａは、入力ポインタから３を減算した値で示されるアドレスのＲのデータと、入力ポインタから２を減算した値で示されるアドレスのＧのデータと、入力ポインタから１を減算した値で示されるアドレスのＢのデータとで構成される。
【００４１】
図５（Ｂ）を参照して、出力メモリ領域１２０Ｂにおいて、出力ポインタは、画素のデータ１４２のＣのデータが格納されている領域のアドレスを示している。出力メモリ領域１２０Ｂには、４チャンネルの画素のデータが記憶される。したがって、画素のデータ１４２は、出力ポインタで示されるアドレスのＣのデータと、出力ポインタに１を加算した値で示されるアドレスのＭのデータと、出力ポインタに２を加算した値で示されるアドレスのＹのデータと、出力ポインタに３を加算した値で示されるアドレスのＫのデータとで構成されることになる。出力メモリ領域１２０Ｂにおいて、画素のデータ１４２の１つ前の画素のデータは、出力ポインタから４を減算した値で示されるアドレスのＣのデータと、出力ポインタから３を減算した値で示されるアドレスのＭのデータと、出力ポインタから２を減算した値で示されるアドレスのＹのデータと、出力ポインタから１を減算した値で示されるアドレスのＫのデータとで構成される。
【００４２】
入力メモリ領域１２０Ａに記憶された処理対象の画素のデータ１４１と、１つ前の画素のデータ１４１Ａとの比較においては、（１）処理対象の画素のデータ１４１のＲのデータと、１つ前の画素のデータ１４１ＡのＲのデータとの比較と、（２）処理対象の画素のデータ１４１のＧのデータと、１つ前の画素のデータ１４１ＡのＧのデータとの比較と、（３）処理対象の画素のデータ１４１のＢのデータと、１つ前の画素のデータ１４１ＡのＢのデータとの比較がされる。
【００４３】
処理対象の画素のデータ１４１と、１つ前の画素のデータ１４１Ａとが一致するか否かは、それぞれの比較において、Ｒのデータが一致し、かつ、Ｇのデータが一致し、かつ、Ｂのデータが一致する３つの条件が成立した場合に、処理対象の画素のデータ１４１と１つ前の画素のデータ１４１Ａとが一致するとされる。一致する場合には、出力メモリ領域１２０Ｂにおいて、画素のデータ１４２には、１つ前の画素のデータ１４２ＡのＣＭＹＫの値がコピーして格納される。すなわち、（１）出力ポインタで示されるアドレスに、出力ポインタから４を減算した値で示されるアドレスのＣのデータがコピーして格納され、（２）出力ポインタに１を加算した値で示されるアドレスに、出力ポインタから３を減算した値で示されるアドレスのＭのデータがコピーして格納され、（３）出力ポインタに２を加算した値で示されるアドレスに、出力ポインタから２を減算した値で示されるアドレスのＹのデータがコピーして格納され、（４）出力ポインタに３を加算した値で示されるアドレスに出力ポインタから１を減算した値で示されるアドレスのＫのデータがコピーして格納される。
【００４４】
一方、処理対象の画素のデータ１４１と１つ前の画素のデータ１４１Ａとが一致しないとされた場合には、処理対象の画素のデータ１４１のＲＧＢのデータに対して色変換処理が実行され、ＣＭＹＫのデータが出力メモリ領域１２０Ｂの画素のデータ１４２として格納される。
【００４５】
このように、本実施の形態における画像処理装置１０においては、入力メモリ領域１２０Ａに記憶された入力データとしての画像データについて、画素の配列の順に色変換処理を行なう際に、処理対象の画素のデータと１つ前の画素のデータとが等しい場合には、処理対象の画素のデータに対して色変換処理を実行することなく、出力メモリ領域１２０Ｂに記憶されている１つ前の画素のデータを読出して処理対象の画素のデータに対応する出力データとして出力メモリ領域１２０Ｂに格納するようにしている。その結果、色変換処理を実行する回数が減少するため、画像データに対して色変換処理を実行する時間を短くすることができる。特に、画像データは冗長性があるため、同じ画素のデータが連続して配列されることが多い。このため、色変換処理を実行する回数を大幅に減らすことが可能となる。また、入力メモリ領域１２０Ａに記憶された入力データの画素を特定するために入力ポインタを用い、出力メモリ領域１２０Ｂに記憶された出力データを特定するために出力ポインタを用いている。このため、処理対象の画素のデータと１つ前の画素のデータを比較する際に、１つ前の画素のデータを別のメモリに記憶する必要がなく、また、そのような別のメモリに記憶するためのステップを設ける必要がないため、メモリコストを下げることができるとともに、処理をより高速化することができる。
【００４６】
＜色変換処理の第１の変形例＞
上述した画像処理装置における色変換処理は、ＲＧＢの３チャンネルの画像データをＣＭＹＫの４チャンネルの画像データに変換する例を説明した。第１の変形例においては、この色変換処理を、Ｌ＊ａ＊ｂの３チャンネルの画像データを、明度のみからなるブラック（Ｋ）の画像データに変換する処理としている。
【００４７】
図６は、本実施の形態における画像処理装置１０の色変換処理部１１６Ａで実行される変形された画像処理を説明するための模式図である。図６（Ａ）は、入力メモリ領域１２０Ａに記憶されている画像データの一部を示す。図６（Ｂ）に、出力メモリ領域１２０Ｂに記憶されている画像データの一部を示す。図６（Ａ）および図６（Ｂ）では、色変換処理が実行された画素のデータをハッチングで示している。ハッチングされていない画素のデータは、色変換処理が未だに施されていない画素のデータを示している。
【００４８】
図６（Ａ）を参照して、入力ポインタは、処理対象の画素のデータ１４１のＬが格納されている領域のアドレスを示す。したがって、処理対象の画素の次の画素のデータが格納されている領域のアドレスは、入力ポインタに３を加算した値で示され、処理対象の画素の１つ前の画素のデータが格納されている領域のアドレスは、入力ポインタから３を減算した値で示される。
【００４９】
図６（Ｂ）を参照して、出力ポインタは、処理対象の画素のデータ１４１に対応する画素のデータ１４２が格納される領域のアドレスを示す。出力画像メモリ領域において、画素のデータ１４２の次の画素のデータが格納される領域のアドレスは、出力ポインタに１を加算した値で示され、画素のデータ１４２の１つ前の画素のデータが格納されている領域のアドレスは、出力ポインタから１を減算した値で示される。
【００５０】
入力メモリ領域１２０Ａに記憶されている処理対象の画素のデータ１４１と１つ前の画素のデータ１４１Ａとを比較する際には、Ｌ値についてのみ比較が行なわれ、＊ａ値および＊ｂ値については比較されない。したがって、入力ポインタで示されるアドレスのＬ値と、入力ポインタから２減算した値で示されるアドレスのＬ値とが比較される。
【００５１】
比較の結果、２つの値が一致する場合には、出力メモリ領域の１つ前の画素のデータ１４２Ａがコピーされて画素のデータ１４２として出力メモリ領域１２０Ｂに記憶される。すなわち、出力ポインタで示されるアドレスに、出力ポインタから１減算した値で示されるアドレスに格納されているＫ値がコピーされて格納される。
【００５２】
一方、処理対象の画素のデータ１４１のＬ値と１つ前の画素のデータ１４１ＡのＬ値とが一致しない場合には、処理対象の画素のデータ１４１のＬ値、＊ａ値および＊ｂ値を用いて色変換処理が実行される。そして、算出されたＫ値が、出力ポインタで示されるアドレスに格納される。
【００５３】
このように、第１の変形例においては、Ｌ＊ａ＊ｂの３チャンネルの画像データをグレースケールの１チャンネルの画像データに変換する色変換処理において、入力データとしての３チャンネルの画像データのうちＬ値のみを比較するようにしたので、処理をさらに高速化することができる。
【００５４】
＜色変換処理の第２の変形例＞
色変換処理の第２の変形例は、色変換処理に加えて量子化処理を実行するようにしたものである。量子化処理とは、画素それぞれのデータが、たとえば８ビットで表わされている場合に、下位の数ビット（たとえば４ビット）を切捨て、上位ビット（たとえば４ビット）のみを有効なデータとする処理である。
【００５５】
下位ビットが異なり上位ビットが同じ２つの入力データに色変換処理および量子化処理を施して得られる出力データは、同じ値となる。このため第２の変形例においては、入力メモリ領域１２０Ａに記憶されている処理対象の画素のデータ１４１と、１つ前の画素のデータ１４１Ａとを比較する際に、上位ビットのみを比較する。そして、上位ビットが一致するとされた場合には、処理対象の画素のデータに色変換処理および量子化処理を施すことなく、出力メモリ領域１２０Ｂに記憶されている１つ前の画素のデータをコピーして、処理対象の画素のデータに対応する出力データとして格納する。
【００５６】
このため第２の変形例によれば、比較する２つのデータのビット数を減らすことができるので、色変換処理および量子化処理を高速に実行することが可能となる。
【００５７】
＜色変換処理の第３の変形例＞
これまで説明した画像処理装置においては、入力メモリ領域１２０Ａに記憶される画像データは、画素のデータが１以上のチャンネルのデータが規則的に配列したデータであった。たとえば、画像データは、Ｒのデータ、Ｇのデータ、Ｂのデータの順に配列したデータであった。第３の変形例における画像処理装置においては、入力メモリ領域１２０Ａに記憶される画像データを、ベイヤ配列の画像（以下「ベイヤ画像」という）データとしたものである。
【００５８】
図７は、ベイヤ画像データにおける処理対象ブロックと比較の対象となる１つ前のブロックとを示す第１の図である。図７（Ａ）を参照して、入力メモリ領域１２０Ａに、処理対象となるブロック１５１が点線で示される。本実施の形態においては、ベイヤ画像データにおけるブロックを、３×３のデータで構成されるブロックとしている。すなわち、１ブロックに９個のデータが含まれる。ベイヤ画像の場合には、Ｒ，Ｇ，Ｂのそれぞれのデータが、図７（Ａ）に示すように配列されるので、処理対象ブロック１５１と比較の対象となる１つ前のブロック１５１Ａは、処理対象ブロック１５１より左方向に２つのデータ分ずれることになる。
【００５９】
図７（Ｂ）は、入力メモリ領域１２０Ａより処理対象ブロック１５１を抽出した図であり、図７（Ｃ）は、入力メモリ領域１２０Ａより処理対象ブロックと比較の対象となる１つ前のブロック１５１Ａを抽出した図である。処理対象ブロック１５１と、処理対象ブロックと比較の対象となる１つ前のブロック１５１Ａとは、Ｒ，Ｇ，Ｂの各データが同じ位置に配列されている。したがって、処理対象ブロック１５１と、処理対象ブロックと比較の対象となる１つ前のブロック１５１Ａとを比較する場合には、同じ位置に配置された各データを比較することになる。
【００６０】
たとえば、処理対象ブロックの左上のＲのデータと、１つ前のブロック１５１Ａの左上のＲのデータとが比較される。すべての位置におけるデータが一致するとされた場合には、処理対象ブロックと比較の対象となる１つ前のブロックとが一致するものと判断される。
【００６１】
図８は、ベイヤ配列の画像データにおける処理対象ブロックと比較の対象となる１つ前のブロックとを示す第２の図である。図８（Ａ）を参照して、入力メモリ領域１２０Ａに処理対象ブロック１５１が点線で示され、処理対象ブロックと比較の対象となる１つ前のブロック１５１Ａが実線で示されている。図８（Ｂ）は、入力メモリ領域１２０Ａから処理対象ブロック１５１を抽出した図であり、図８（Ｃ）は、入力メモリ領域１２０Ａから比較の対象となる１つ前のブロック１５１Ａを抽出した図である。
【００６２】
図７（Ａ）における処理対象ブロック１５１と、図８（Ａ）における処理対象ブロック１５１とを比較すると、図７（Ａ）に示す処理対象ブロック１５１が１データ分だけ右方向にずれている。また、図８（Ｂ）に示す処理対象ブロック１５１と、図７（Ｂ）に示す処理対象ブロック１５１とを比較すると、Ｒ，Ｇ，Ｂのそれぞれのデータの配置が異なっている。しかしながら、図８（Ｂ）に示す処理対象ブロック１５１と、図８（Ｃ）に示す比較の対象となる１つ前のブロック１５１Ａとを比較すると、Ｒ，Ｇ，Ｂの各データの配置が同じである。したがって、図８に示す処理対象ブロック１５１と比較の対象となる１つ前のブロック１５１Ａとを比較する場合に、同じ位置に配置されたデータが比較される。
【００６３】
このように、処理対象ブロックと比較の対象となるブロックは、処理対象ブロックより右方向に２データ分ずれたブロックとなる。
【００６４】
ここでは、入力ポインタが処理対象ブロックの左上の位置を示す場合について説明する。入力ポインタをＰとし、処理対象ブロックの各データの位置をｉ行ｊ列とし、入力される画像データの列数（横方向の配列数）をＬとすると、処理対象ブロックのｉ行ｊ列のポインタＰ（ｉ，ｊ）は、次式（１）で示される。
【００６５】
Ｐ（ｉ，ｊ）＝Ｐ＋ｊ＋ｉＬ　（０≦ｉ≦２，０≦ｊ≦２）　…　（１）
そして、ｉ行ｊ列のデータと比較の対象となるデータが格納されている領域のアドレスを示すポインタは、ポインタＰ（ｉ，ｊ）から２を減算した値となる。
【００６６】
第３の変形例における画像処理装置１０においては、処理対象ブロック１５１に含まれるＲ，Ｇ，Ｂの９つのデータから、Ｒ，Ｇ，Ｂの３つのデータが出力されることになる。出力されたデータは、Ｒ，Ｇ，Ｂの順に出力メモリ領域１２０Ｂに記憶される。
【００６７】
図９は、第３の変形例における画像処理装置１０の色変換処理部１１６Ａで実行される画像処理を説明するための模式図である。図９（Ａ）は入力メモリ領域１２０Ａに記憶される入力データの一部を示し、図９（Ｂ）は出力メモリ領域１２０Ｂに記憶される出力データの一部を示す。図９（Ｂ）において、処理対象ブロック１５１に含まれる９つのデータと、処理対象ブロックの比較の対象となるブロック１５１Ａの９のつデータが示されている。処理対象ブロック１５１と１つ前のブロック１５１Ａとにおいて、対応する各位置に配置されたデータが比較される。対応する各位置に配置されたデータのすべてが一致するとされた場合には、処理対象ブロック１５１と１つ前のブロック１５１Ａとが一致すると判断される。そして、処理対象ブロック１５１と１つ前のブロック１５１Ａとが一致すると判断された場合には、１つ前のブロック１５１Ａに対応する出力データ１６１Ａがコピーされて処理対象ブロック１５１に対応する出力データ１６１として出力メモリ領域１２０Ｂに格納される。
【００６８】
一方、処理対象ブロック１５１と１つ前のブロック１５１Ａとが一致しないとされた場合には、処理対象ブロック１５１に含まれる９つのデータに基づき、色変換処理が実行されて、ＲＧＢの３つのデータからなる出力データ１６１が出力メモリ領域１２０Ｂに格納される。
【００６９】
以上説明したように、第３の変形例における画像処理装置においては、入力メモリ領域１２０Ａに記憶されたベイヤ画像データを、画素のデータがＲＧＢの３チャンネルの出力データに変換するようにした。この場合、入力データは、ブロック単位に比較され、比較の対象となった両ブロックが一致するか否かが判断される。そして、一致するとされた場合には、既に処理が実行されて出力メモリ領域１２０Ｂに記憶されている比較の対象となったブロック１５１Ａに対応する出力データ１６１Ａがコピーされて、処理対象ブロック１５１に対応する出力データとして出力メモリ領域１２０Ｂに記憶される。このため、処理対象ブロックに対して色変換処理を実行する必要がないので、色変換処理を高速で実行することができる。
【００７０】
＜色変換処理の第４の変形例＞
これまで説明した画像処理装置１０においては、ＲＡＭ１２０に入力メモリ領域１２０Ａと出力メモリ領域１２０Ｂとを別々に設けた。第４の変形例における画像処理装置１０においては、入力メモリ領域１２０Ａと出力メモリ領域１２０Ｂとが互いに共通の領域を含むようにした。この場合、入力メモリ領域１２０Ａと出力メモリ領域１２０Ｂとを別々に設ける必要がないので、使用するメモリ領域を少なくすることができる。
【００７１】
第４の変形例における画像処理装置においては、入力メモリ領域１２０Ａに記憶されている入力データのうち、処理済の入力データに出力データを上書きするものである。このため、入力データのチャンネル数が出力データのチャンネル数よりも大きい場合に適用することができる。換言すれば、色変換処理後に出力データが入力データより小さくなる場合である。この場合、入力データのうち最初に処理するいくつかの画素のデータについては、それらが記憶されている領域に出力データを上書きすることができない。このため、出力メモリ領域は、最初に処理するいくつかの画素データに色変換処理を施して出力される出力データを記憶するための領域として、入力メモリ領域とは別の領域を含むことになる。ただし、この領域は、入力メモリ領域に比較してきわめて小さな領域とすることで十分である。
【００７２】
図１０は、第４の変形例における画像処理装置１０の色変換処理部１１６Ａで実行される画像処理を説明するための第１の模式図である。図１０（Ａ）は、ＲＡＭ１２０に記憶された入力データの一部を示している。ここでは、入力データを、ＣＭＹＫの４チャンネルの画像データとし、出力データをＲＧＢの３チャンネルの画像データとしている。入力データのチャンネル数が出力データのチャンネル数よりも大きい。
【００７３】
図１０（Ｂ）は、色変換処理が実行されている最中のＲＡＭ１２０に記憶される入力データと出力データとを示している。処理対象画素のデータ１５１と、１つ前の画素のデータ１５１Ａとが比較される。比較の結果、処理対象画素のデータ１５１と１つ前の画素のデータ１５１Ａとが一致するとされた場合には、１つ前の画素のデータ１５１Ａに対応する出力データ１６１Ａがコピーされて、１つ前の画素のデータ１５１Ａが記憶されていた領域のうち、前から３つの領域１７１に格納される。この場合、１つ前の画素データ１５１ＡのＣ，Ｍ，Ｙの各データが記憶されていた領域に、１つ前の画素のデータ１５１Ａに対応する出力データ１６１ＡのＲ，Ｇ，Ｂのデータがそれぞれ格納されることになる。
【００７４】
このため、１つ前の画素データ１５１Ａが失われることになるが、既に、出力データ１６１Ａが格納されていること、処理対象画素のデータ１５１との比較が終了していることから、１つ前の画素のデータ１５１Ａをその後用いる必要がない。
【００７５】
また、入力データとしての画像データに余白等の不要な部分が含まれており、その不要な部分を切り捨てる等の処理をする場合に、切り捨てられたデータが記憶されていた領域に変換後のデータを記憶するようにすれば、変換後のデータが格納される領域のアドレスと変換前のデータが格納される領域のアドレスとに差が生じる。この場合、変換前の入力データが変換後の出力データによって上書きされることがない。入力データとしての画像データに余白等の不要な部分が含まれており、その不要な部分を切り捨てる等の処理をする場合にも、第４の変形例における画像処理装置の色変換処理部で実行される画像処理を適用することができる。
【００７６】
図１１は、第４の変形例における画像処理装置１０で実行される画像処理を説明するための第２の模式図である。図１１（Ａ）は、ＲＡＭ１２０に記憶される画像データの一部を示す図である。ＲＡＭ１２０に記憶される画像データのうち不要な領域１８０が切り捨て領域として決定されると、切り捨て領域１８０以外の領域について色変換処理が実行される。
【００７７】
図１０（Ｂ）は、色変換処理が実行されている最中のＲＡＭ１２０に記憶される入力データおよび出力データを模式的に示す図である。処理対象の画素のデータ１５１より１つ前の画素のデータ１５１Ａに対応する出力データ１６１Ａは、切り捨て領域とされた領域１８０に記憶されている。そして、処理対象の画素のデータ１５１とその１つ前の画素のデータ１５１Ａとが比較され、比較の結果両データが一致するとされた場合には、１つ前の画素のデータ１５１Ａに対応する出力データ１６１Ａがコピーされて、処理対象の画素のデータ１５１に対応する出力データ１６１として記憶される。
【００７８】
この処理が繰返して実行されると、そのうちに切り捨て領域１８０以外の入力データが記憶されていた領域に出力データが上書きされる。出力データが上書きされる時点では、上書きされて失われる入力データに対する処理が既に終了している。
【００７９】
このように、切り捨て領域を有効に利用することにより、入力メモリ領域１２０Ａと出力メモリ領域１２０Ｂとを共有することが可能となる。
【００８０】
また、図１１に示す色変換処理においては、入力データをＲＧＢの３チャンネルの画像データとし、出力データをＬ＊ａ＊ｂの３チャンネルの画像データとしている。このように、入力データと出力データとがチャンネル数が同じ画像データであっても、切り捨て領域を有効に利用することにより、入力メモリ領域と出力メモリ領域とを共有することができる。
【００８１】
なお、本実施の形態においては、処理対象画素と比較する画素のデータを、１つ前の画素のデータとしたが、１つの前の画素のデータとすることなく、複数画素数前の画素のデータと比較するようにしてもよい。
【００８２】
また、本実施の形態においては、画像処理装置で実行する処理を色変換処理を例に説明したが、画像処理はこれに限られることなく、入力データの値が同じ場合に処理後の出力データが同じとなる処理に適用することができる。
【００８３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【図１】本発明の実施の形態の１つにおける画像処理装置の外観図である。
【図２】本実施の形態における画像処理装置の構成図である。
【図３】本実施の形態における画像処理装置の機能を示す機能ブロック図である。
【図４】本実施の形態における画像処理装置の色変換処理部で実行される画像処理の流れを示すフローチャートである。
【図５】本実施の形態における画像処理装置の色変換処理部で実行される画像処理を説明するための模式図である。
【図６】本実施の形態における画像処理装置の色変換処理部で実行される変形された画像処理を説明するための模式図である。
【図７】ベイヤ画像データにおける処理対象ブロックと比較の対象となる１つ前のブロックとを示す第１の図である。
【図８】ベイヤ画像データにおける処理対象ブロックと比較の対象となる１つ前のブロックとを示す第２の図である。
【図９】第３の変形例における画像処理装置の色変換処理部で実行される画像処理を説明するための模式図である。
【図１０】第４の変形例における画像処理装置の色変換処理部で実行される画像処理を説明するための第１の模式図である。
【図１１】第４の変形例における画像処理装置の色変換処理部で実行される画像処理を説明するための第２の模式図である。
【符号の説明】
１０　画像処理装置、１００　コンピュータ、１０２　ディスプレイ、１０３イメージスキャナ、１０４　プリンタ、１０６　キーボード、１０８　マウス、１１０　ＣＤ−ＲＯＭドライブ、１１２　ＦＤドライブ、１１４　ハードディスク、１１６Ａ　色変換処理部、１２０Ｂ　出力メモリ領域、１２０Ａ　入力メモリ領域、１２６　バス、１３０　ネットワークインターフェイス。
【図１】
2004040391.tif 000003
【図２】
2004040391.tif 000004
【図３】
2004040391.tif 000005
【図４】
2004040391.tif 000006
【図５】
2004040391.tif 000007
【図６】
2004040391.tif 000008
【図７】
2004040391.tif 000009
【図８】
2004040391.tif 000010
【図９】
2004040391.tif 000011
【図１０】
2004040391.tif 000012
【図１１】
2004040391.tif 000013