(57)【要約】【課題】ヒストグラムデータの生成時間を短縮する。【解決手段】ヒストグラム生成装置５は、フラグレジスタ２２の処理対象の画素の値に対応したビットが「０」のときは、対応したビットに「１」をセットするとともに、ヒストグラムメモリ２１の処理対象の画素の値に対応したアドレスに初期値を書き込む初期値設定ユニット３５ｂと、フラグレジスタ２２の処理対象の画素の値に対応したビットが「１」のときは、ヒストグラムメモリ２１の処理対象の画素の値に対応したアドレスのデータを更新する更新ユニット３６と、ヒストグラムメモリ２１の内容を出力するときは、フラグレジスタ２２の更新されていない値が「０」のビットに対応するアドレスのデータをゼロとして出力する出力ユニット３８と、フラグレジスタ２２のすべてのビットを「０」にセットするリセットユニット３２ｃとを有する。【選択図】図２
2013218539.tif 000002
【特許請求の範囲】
【請求項１】
フラグレジスタの複数のビットのうち、処理対象のデータの値に対応したビットが第１の値のときは、前記対応したビットに第２の値をセットするとともに、ヒストグラムメモリの前記処理対象のデータの値に対応したアドレスに初期値を書き込む手段と、
前記フラグレジスタの前記処理対象のデータの値に対応したビットが前記第２の値のときは、前記ヒストグラムメモリの前記処理対象のデータの値に対応したアドレスのデータを更新する手段と、
前記ヒストグラムメモリの内容を出力するときは、前記フラグレジスタの前記第１の値のビットに対応するアドレスのデータをゼロとして出力する手段と、
前記フラグレジスタのすべてのビットを前記第１の値にセットする手段と、を有するヒストグラム生成装置。
【請求項２】
請求項１において、
前記出力する手段は、前記ヒストグラムメモリの内容を出力する前に、前記フラグレジスタの前記第１の値のビットに対応するアドレスにゼロを書き込む手段を含む、ヒストグラム生成装置。
【請求項３】
請求項１において、
前記出力する手段は、前記ヒストグラムメモリの内容を出力する際に、前記フラグレジスタの前記第１の値のビットに対応するアドレスのデータとしてゼロを出力する手段を含む、ヒストグラム生成装置。
【請求項４】
請求項１ないし３のいずれかにおいて、前記セットする手段は、前記フラグレジスタをゼロクリアする手段を含む、ヒストグラム生成装置。
【請求項５】
請求項１ないし４に記載のヒストグラム生成装置と、
前記ヒストグラム生成装置に、前記処理対象のデータとなる複数の画素を含む画像データを供給し、前記画像データのヒストグラムデータを取得する手段と、
前記ヒストグラムデータに基づき前記画像データを補正する手段とを有する、画像処理装置。
【請求項６】
ヒストグラムメモリと、フラグレジスタと、前記ヒストグラムメモリに対する入出力を制御する制御ユニットとを有する装置の制御方法であって、
前記フラグレジスタの複数のビットのうち、処理対象のデータの値に対応したビットが第１の値のときは、前記対応したビットに第２の値をセットするとともに、前記ヒストグラムメモリの前記処理対象のデータの値に対応したアドレスに初期値を書き込むことと、
前記フラグレジスタの前記処理対象のデータの値に対応したビットが前記第２の値のときは、前記ヒストグラムメモリの前記処理対象のデータの値に対応したアドレスのデータを更新することと、
前記ヒストグラムメモリの内容を出力するときは、前記フラグレジスタの前記第１の値のビットに対応するアドレスのデータをゼロとして出力することと、
前記フラグレジスタのすべてのビットを前記第１の値にセットすることとを有する、制御方法。
【請求項７】
請求項６において、
前記出力することは、前記ヒストグラムメモリの内容を出力する前に、前記フラグレジスタの前記第１の値のビットに対応するアドレスにゼロを書き込むことを含む、制御方法。
【請求項８】
請求項６において、
前記出力することは、前記ヒストグラムメモリの内容を出力する際に、前記フラグレジスタの前記第１の値のビットに対応するアドレスのデータとしてゼロを出力することを含む、制御方法。
【請求項９】
請求項６ないし８のいずれかにおいて、前記セットすることは、前記フラグレジスタをゼロクリアすることを含む、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画素などの処理対象のデータの値を集計するヒストグラムを生成するヒストグラム生成装置に関するものである。
【背景技術】
【０００２】
特許文献１には、測定データをヒストグラム表示用データに変換する際に簡単な回路構成でありながら高速の動作を可能とするデータ表示装置を実現することが記載されている。このデータ表示装置は、測定データメモリと、前記測定データメモリからのデータを読みだすためのアドレスを出力するアドレスカウンタと、前記測定データメモリからのデータを表示範囲であるか否かを判定する比較器と、前記比較器からの信号で、測定データを格納するレジスタと、前記レジスタのデータをヒストグラムにおける刻み幅で除算する除算器と、前記除算器からの出力をアドレスとするヒストグラムメモリと、前記比較器からの信号で、前記ヒストグラムメモリの該当アドレスおけるデータをインクリメント加算する加算器と、前記ヒストグラムメモリからのデータをヒストグラム表示する表示装置を設けたことを特徴とする。
【０００３】
特許文献２には、ヒストグラムデータの取得処理にともなうＣＰＵの負荷を軽減し、かつヒストグラム取得処理速度を向上させ得る画像処理装置を提供することが記載されている。この画像処理装置は、サブサンプリング画像データを構成する各画素の階調データをメモリのアドレスとして、同一の階調が登場する度に、メモリの当該アドレスに格納されている登場回数に任意の数を加減算してヒストグラムデータを生成するヒストグラムデータ取得部を備えている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−１１３５６号公報
【特許文献２】特開２００７−６７５７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
プリンタなどに含まれる画像処理回路において、画像の濃淡の調整や鮮明化の補正のための１つの手段として画像データのヒストグラムを作ることが行われる。したがって、画像処理速度を向上するためには、ヒストグラムを高速で生成できることが重要である。
【課題を解決するための手段】
【０００６】
本発明の一態様は、フラグレジスタの複数のビットのうち、処理対象のデータの値に対応したビットが第１の値のときは、対応したビットに第２の値をセットするとともに、ヒストグラムメモリのデータのうち、処理対象のデータの値に対応したアドレスに初期値を書き込む手段と、フラグレジスタの処理対象のデータの値に対応したビットが第２の値のときは、ヒストグラムメモリの処理対象のデータの値に対応したアドレスのデータを更新する手段と、ヒストグラムメモリの内容を出力するときは、フラグレジスタの第１の値のビットに対応するアドレスのデータをゼロとして出力する手段と、フラグレジスタのすべてのビットを第１の値にセットする手段とを有するヒストグラム生成装置である。処理対象のデータの典型的なものは画素の値である。
【０００７】
このヒストグラム生成装置は、ヒストグラムメモリの各アドレスをクリアする必要がない。通常のメモリでは、１クロックで１アドレスへのアクセスなので、すべてのアドレスをクリアするには、メモリアドレス分のクロック数を必要とする。このため、ヒストグラムメモリをリセットするために多大な時間を要する。このヒストグラム生成装置においてはヒストグラムメモリのクリアが不要なので、ヒストグラムをより高速で生成できる。さらに、リセット機能のないメモリをヒストグラムメモリとして利用できるので、低コストのヒストグラム生成装置を提供できる。
【０００８】
アクセスされていないヒストグラムメモリのアドレスのデータをゼロで出力する手段の１つは、ヒストグラムメモリの内容を出力する前に、フラグレジスタの第１の値のビットに対応するアドレスにゼロを書き込む手段である。出力する手段は、ヒストグラムメモリの内容を出力する際に、フラグレジスタの第１の値のビットに対応するアドレスのデータとしてゼロを出力する手段であってもよい。ヒストグラムメモリにアクセスする時間を短縮できる。
【０００９】
フラグレジスタをリセットする第１の値は、ハイバリュー（“ＦＦ”）などであってもよく、セットする手段は、フラグレジスタをゼロクリアする手段を含んでいてもよい。フラグレジスタにイミディエイト値としてゼロを入力することによりフラグレジスタをリセットでき、ヒストグラムメモリにアクセスせずにヒストグラムメモリをリセットできる。
【００１０】
本発明の異なる態様の１つは、上記ヒストグラム生成装置と、ヒストグラム生成装置に、処理対象のデータとなる複数の画素を含む画像データを供給し、画像データのヒストグラムデータを取得する手段と、ヒストグラムデータに基づき画像データを補正する手段とを有する画像処理装置である。画像データに含まれる複数の画素の値のヒストグラムを比較的短時間に得られるので、ヒストグラムを用いた画像データの補正を短時間で行うことが可能となる。ヒストグラムを用いた補正の典型的なものは、画像の明るさや色の分布を広げることにより、より明るく、鮮やかな色の画像を生成するものである。
【００１１】
本発明の他の異なる態様の１つは、ヒストグラムメモリと、フラグレジスタと、ヒストグラムメモリに対する入出力を制御する制御ユニットとを有する装置の制御方法である。この制御方法は、以下のステップを含む。
１．フラグレジスタの複数のビットのうち、処理対象のデータの値に対応したビットが第１の値のときは、対応したビットに第２の値をセットするとともに、ヒストグラムメモリの処理対象のデータの値に対応したアドレスに初期値を書き込むこと。
２．フラグレジスタの処理対象のデータの値に対応したビットが第２の値のときは、ヒストグラムメモリの処理対象のデータの値に対応したアドレスのデータを更新すること。
３．ヒストグラムメモリの内容を出力するときは、フラグレジスタの第１の値のビットに対応するアドレスのデータをゼロとして出力すること。
４．フラグレジスタのすべてのビットを第１の値にセットすること。
【００１２】
この制御方法により、ヒストグラムメモリを初期化せずにヒストグラムを生成することができるので、ヒストグラムの生成に要する時間を短縮できる。
【００１３】
出力するステップでは、ヒストグラムメモリの内容を出力する前に、フラグレジスタの第１の値のビットに対応するアドレスにゼロを書き込んでもよく、ヒストグラムメモリの内容を出力する際に、フラグレジスタの第１の値のビットに対応するアドレスのデータとしてゼロを出力してもよい。
【図面の簡単な説明】
【００１４】
【図１】画像データを補正して印刷するプリンタの概要を示す図。
【図２】ヒストグラム生成ユニットの構成を示すブロック図。
【図３】ヒストグラムを生成する処理の概要を示すフローチャート。
【図４】ヒストグラムメモリのデータを更新する過程を示す図。
【図５】ヒストグラム生成ユニットの異なる例を示すブロック図。
【発明を実施するための形態】
【００１５】
図１に、入力された画像データを印刷する装置（プリンタ、複合機）の概要を示している。この装置（プリンタ）１は、記録用紙（記録媒体）に画像、文字などの情報（画像データ）を印刷する印刷機構（プリンタメカ）２と、印刷機構２を制御する機能を含むプリンタコントローラ３とを含む。プリンタコントローラ３は、ＬＳＩあるいはＡＳＩＣなどの集積回路装置で実現されてもよく、マザーボードなどの他のハードウェアにより実現されてもよい。この装置１は、プリンタとしての機能を単独で提供するものであってもよく、スキャナーなどの機能を含めた複合機であってもよい。
【００１６】
プリンタコントローラ３は、プリンタメカ２を制御する印刷制御ユニット４と、プリンタコントローラ３の全体の制御や画像処理などを行うＣＰＵ６と、ＣＰＵ６を制御するためのプログラムやデータを格納するとともに、画像データを一時的に保管するメモリ７と、画像データなどの情報を外部機器との間で送受信するインタフェースユニット（Ｉ／Ｆユニット）８とを含む。Ｉ／Ｆユニット８の一例は、ＵＳＢインタフェース、ＬＡＮインタフェース、ＵＡＲＴインタフェース、ＩＥＥＥ１２８４インタフェースなどである。プリンタコントローラ３はさらにヒストグラム生成ユニット５を含み、これら印刷制御ユニット４、ヒストグラム生成ユニット５、メモリ７、およびＩ／Ｆユニット８は、内部バス９を介してＣＰＵ６に接続されている。
【００１７】
ＣＰＵ６は、メモリ７に格納されているプログラムをダウンロードすることにより各種の機能を提供する。本例のＣＰＵ６は、処理対象のデータとなる複数の画素を含む画像データ１１を供給し、画像データ１１のヒストグラムデータ１２を取得する機能６ａと、ヒストグラムデータ１２に基づき画像データ１１を補正して印刷する機能６ｂとを含む。この機能６ｂは、ヒストグラムデータ１２に基づき画像データ１１の明るさの分布を判断し、画像データ１１に含まれている画素の値を補正する。たとえば、ヒストグラムデータ１２の分布が輝度の低い方に偏っていれば暗すぎる画像であり、ヒストグラムが拡張したり平坦化するように画像データを補正することにより明るい画像に補正できる。ヒストグラムデータ１２が集中している場合はコントラストの低い画像であり、ヒストグラムが拡張したり平坦化するように画像データを補正することによりコントラストを改善できる。
【００１８】
図２に、ヒストグラム生成ユニット５の構成をブロック図により示している。ヒストグラム生成ユニット５は、画像データ１１を構成する画素の値（階調値）をアドレスＡｄとして画像データ１１に含まれる画素値のヒストグラム（分布）を保持するヒストグラムメモリ２１に対しデータを入出力するメモリインタフェース５１と、ヒストグラムメモリ２１のアドレス数、すなわち、画素値の最大階調数に対応するビット長を備えるフラグレジスタ（インデックスフラグ）２２に対しデータを入出力するレジスタインタフェース５２とを有する。
【００１９】
ヒストグラムメモリ２１は、ヒストグラム生成ユニット５に内蔵されていてもよく、メモリインタフェース５１を介して内部バス９で接続されているメモリ（システムメモリ）７の一部に確保されていてもよい。フラグレジスタ２２も、ヒストグラム生成ユニット５に内蔵されていてもよく、ＣＰＵ６のレジスタのいずれかを割り当ててもよい。
【００２０】
ヒストグラムメモリ２１に、たとえば、１つの画素が８ビットデータ、すなわち２５６階調の画像データ１１のヒストグラムを生成するときは、２８個（２５６個）のアドレスが必要となる。また、フラグレジスタ２２のビット長も２５６ビットとなる。
【００２１】
メモリインタフェース５１は、データ入力５１ｄ、アドレス入力５１ａおよびデータ出力５１ｅをサポートする。レジスタインタフェース５２は、ビット単位のデータ入力５２ｄ、ビット単位でアクセスするためのアドレス入力５２ａ、ビット単位のデータ出力５２ｅ、レジスタ単位のデータ入出力５２ｆをサポートする。
【００２２】
ヒストグラム生成ユニット５は、さらに、データ入力制御ユニット３１と、データ出力制御ユニット３２とを含む。データ入力制御ユニット３１は、画像データ１１を受信し、画像データ１１に含まれる画素の値（画素データ）１３を分離するデータ処理ユニット３１ａと、画素データ１３の画素値をアドレスＡｄ１として出力する第１のアドレス生成ユニット３１ｂとを含む。
【００２３】
データ出力制御ユニット３２は、ヒストグラムメモリ２１からヒストグラムデータ１２を出力するためにヒストグラムメモリ２１の有効な全てのアドレスＡｄ２を出力する第２のアドレス生成ユニット３２ａと、入出力を切り替える入出力切替制御ユニット３２ｂと、フラグレジスタ２２をリセットするリセットユニット３２ｃとを含む。リセットユニット３２ｃは、レジスタ単位のデータ入出力５２ｆに「０」（イミディエイトの０）を入力してフラグレジスタ２２をゼロクリアする。
【００２４】
入出力切替制御ユニット３２ｂは、画像データ１１に含まれている画素データ１３を分析中の場合は、アドレスセレクタ３３を制御して第１のアドレス生成ユニット３１ｂのアドレスＡｄ１をヒストグラムメモリ２１およびフラグレジスタ２２にアクセスするアドレスＡｄとして選択する。これにより、画素データ１３の値に対応する、ヒストグラムメモリ２１およびフラグレジスタ２２のアドレスのデータにアクセスできる。画像データ１１に含まれている画素データ１３が終了すると、入出力切替制御ユニット３２ｂは、アドレスセレクタ３３を制御して第２のアドレス生成ユニット３２ａのアドレスＡｄ２をヒストグラムメモリ２１およびフラグレジスタ２２にアクセスするアドレスＡｄとして選択する。これにより、ヒストグラムメモリ２１に格納されたデータに順番にアクセスでき、ヒストグラムデータ１２を出力できる。
【００２５】
ヒストグラム生成ユニット５は、さらに、処理対象の画素データ１３の値に対応したアドレスＡｄのヒストグラムメモリ２１のデータを初期値にセットする初期化ユニット３５と、処理対象の画素データ１３の値に対応したアドレスＡｄのヒストグラムメモリ２１のデータを更新する更新ユニット３６とを含む。初期化ユニット３５は、フラグレジスタ２２の複数のビットのうち、処理対象の画素データ１３の値（アドレスＡｄ）に対応したビットの値１４が「０」（第１の値）のときは、レジスタインタフェース５２のデータ入力５２ｄに「１」を送信し、フラグレジスタ２２のアドレスＡｄのビットに「１」（第２の値）をセットし、ビットの値を「０」から「１」（第２の値）に更新するフラグ設定ユニット３５ａと、ヒストグラムメモリ２１の処理対象の画素データ１３の値のアドレスＡｄに初期値を書き込む初期値設定ユニット３５ｂと、フラグレジスタ２２のアドレスＡｄの値１４が「０」のときに初期値設定ユニット３５ｂの出力がメモリインタフェース５１のデータ入力５１ｄに供給されるように選択する入力データセレクタ３７とを含む。この例では、初期値設定ユニット３５ｂは、その画素データ１３の値（画素値）が初めて現れたことを示す「１」を初期値としてセットする。同じ画素値が連続した場合に、連続して検出された個数を初期値としてセットできるようにしてもよい。
【００２６】
更新ユニット３６は、フラグレジスタ２２の処理対象の画素データ１３の値に対応した（アドレスＡｄの）ビットの値１４が「１」（第２の値）のときは、処理対象の画素データ１３の値のアドレスＡｄをメモリインタフェース５１のアドレス入力５１ａに供給したときに、データ出力５１ｅに表れた値に１を加算する加算ユニット３６ａと、フラグレジスタ２２のアドレスＡｄのビットの値１４が「１」のときに加算ユニット３６ａの出力がメモリインタフェース５１のデータ入力５１ｄに供給されるように選択する入力データセレクタ３７とを含む。更新ユニット３６により、ヒストグラムメモリ２１のアドレスＡｄの値は１つアップする（インクリメントされる）。
【００２７】
ヒストグラム生成ユニット５は、さらに、ヒストグラムメモリ２１の内容を出力する出力ユニット３８を含む。出力ユニット３８は、フラグレジスタ２２の「０」（第１の値）のビットに対応するアドレスＡｄのデータを、ヒストグラムメモリ２１のアドレスＡｄのデータの値に関わらずゼロとして出力する。この出力ユニット３８は、ゼロを出力するゼロ出力ユニット３８ａと、フラグレジスタ２２の「０」（第１の値）のビットに対応するアドレスＡｄのデータについては、ヒストグラムメモリ２１の内容ではなく、ゼロ出力ユニット３８ａの出力「０」を選択する出力セレクタ３９とを含む。
【００２８】
このヒストグラム生成ユニット５においては、画素データ１３の値に対応したアドレスＡｄのフラグレジスタ２２のビットが「０」の場合は、初期化ユニット３５により、ヒストグラムメモリ２１のアドレスＡｄのデータを初期値にセットする。さらに、出力ユニット３８により、フラグレジスタ２２のアドレスＡｄのビットが「０」から「１」に更新されていない場合は、ヒストグラムメモリ２１のアドレスＡｄに格納されているデータの内容に関わらず、ヒストグラムメモリ２１のアドレスＡｄのデータとしてゼロを出力する。したがって、ヒストグラムメモリ２１を初期化（メモリクリア、リセット）せずに、ヒストグラムメモリ２１に画像データ１１の画素データ１３の値の分布を蓄積できる。このため、ヒストグラムメモリ２１をクリアしなくても、処理対象の画像データ１１のヒストグラムを生成し、出力できる。
【００２９】
ヒストグラムメモリ２１をクリアする場合、通常は１アドレスへのアクセスには１クロックが必要となる。このため、メモリを全てクリアするためにはアドレス分のクロック数を必要とする。このヒストグラム生成ユニット５においては、ヒストグラムメモリ２１をクリアする代わりに、リセットユニット３２ｃにより、フラグレジスタ２２をゼロクリアすればよく、１クロックで実質的にヒストグラムメモリ２１をクリアしたのと同じ状態にリセットできる。
【００３０】
また、このヒストグラム生成ユニット５においては、フラグレジスタ２２をリセットできれば良いので、リセット機能のないメモリをヒストグラムメモリ２１として利用できる。したがって、ヒストグラム生成ユニット５が、低コストのメモリを内蔵してもよく、メインメモリ（システムメモリ）７の一部をヒストグラムメモリ２１として利用することも可能となる。
【００３１】
図３に、ヒストグラム生成ユニット５の処理の概要をフローチャートで示している。ステップ６１において、画像データ１１がＣＰＵ６から供給されると、ステップ６２においてリセットユニット３２ｃがフラグレジスタ２２をゼロクリアする。ステップ６３において、第１のアドレス生成ユニット３１ｂが画素データ１３の値に相当するアドレスＡｄ１を出力する。フラグレジスタ２２はレジスタインタフェース５２を介してアクセスされ、ヒストグラムメモリ２１はメモリインタフェース５１を介してアクセスされる。ステップ６４において、フラグレジスタ２２のアドレスＡｄのビットが「０」、すなわち、リセットされた状態で更新されていなければ、ステップ６５において、フラグ設定ユニット３５ａがアドレスＡｄのビットを「１」に更新し、初期化ユニット３５が初期値設定ユニット３５ｂを用いてヒストグラムメモリ２１のアドレスＡｄに初期値「１」を書き込む。
【００３２】
ステップ６４において、フラグレジスタ２２のアドレスＡｄのビットが「１」、すなわち更新されていれば、ステップ６６において、更新ユニット３６がヒストグラムメモリ２１のアドレスＡｄのデータをインクリメントする。
【００３３】
ステップ６７において、画像データ１１に含まれている全ての画素データ１３についての分布がヒストグラムメモリ２１に蓄積されると、ステップ６８において、出力ユニット３８がヒストグラムメモリ２１からヒストグラムデータ１２を出力する。この際、フラグレジスタ２２のアドレスＡｄのビットが更新されていなければ、ヒストグラムメモリ２１のアドレスＡｄのデータは強制的にゼロとして出力される。
【００３４】
図４に、ヒストグラムメモリ２１のデータが更新される様子を模式的に示している。以下では、画像データ１１に含まれる画素データ１３の階調値を５個とし、それぞれの階調値に対応するアドレスをアドレスＡｄ＃１〜Ａｄ＃５とする。したがって、フラグレジスタ２２のビット長は５個であり、ヒストグラムメモリ２１のアドレス数も５個である。
【００３５】
図４（ａ）において、フラグレジスタ２２はゼロクリア（リセット）されるが、ヒストグラムメモリ２１はリセットされない（図３のステップ６２参照）。図４（ｂ）において、処理対象の画像データ１１に階調値が「２」の画素データ１３が含まれていると、フラグレジスタ２２のアドレスＡｄ＃２のビットが更新され、ヒストグラムメモリ２１のアドレスＡｄ＃２に初期値「１」が書き込まれる（図３のステップ６５参照）。
【００３６】
これらの処理を繰り返し、図４（ｃ）に示すように、フラグレジスタ２２のアドレスＡｄ＃１以外のビットは更新された状態で画像データ１１に含まれている画素データ１３の分析が終了したとする。図４（ｄ）は、ヒストグラム生成ユニット５から出力されるヒストグラムデータ１２を示している。ヒストグラムメモリ２１のアドレスＡｄ＃１の値は「５」であるが、フラグレジスタ２２のアドレスＡｄ＃１は「０」で更新されていない。したがって、画像データ１１に階調値が「１」の画素データ１３は含まれていない。ヒストグラムデータ１２としては、フラグレジスタ２２のアドレスＡｄ＃１が「０」なので、ヒストグラムメモリ２１のアドレスＡｄ＃１のデータではなく、「０」が出力される。
【００３７】
図５に、ヒストグラム生成ユニット５の異なる例を示している。このヒストグラム生成ユニット５は、初期化ユニット３５および更新ユニット３６と並列に配置された出力ユニット３８を含む。出力ユニット３８は、ゼロ出力ユニット３８ｂを含み、入力データセレクタ３７によりメモリインタフェース５１のデータ入力５１ｄに「０」を選択的に出力してヒストグラムメモリ２１の所定のアドレスＡｄのデータに「０」を入力できるようにしている。
【００３８】
さらに具体的には、図３のステップ６８において、ヒストグラムデータ１２を出力する際に、事前に第２のアドレス生成ユニット３２ａが出力用のアドレスＡｄ２を生成し、ヒストグラムメモリ２１およびフラグレジスタ２２にアクセスする。フラグレジスタ２２のアドレスＡｄ２のビットが更新されずに「０」であれば、出力ユニット３８を用いて、そのアドレスＡｄ２のヒストグラムメモリ２１のデータに「０」を書き込み、アドレスＡｄ２のヒストグラムメモリ２１のデータをゼロクリアする。したがって、ヒストグラムメモリ２１に、ヒストグラムデータ１２が生成され、その後、フラグレジスタ２２がリセットされても事前に生成されたヒストグラムデータ１２をヒストグラムメモリ２１から出力できる。
【００３９】
なお、上記においては、フラグレジスタ２２のビットの値として、第１の値を「０」、第２の値を「１」として説明したが、第１の値と第２の値とが逆であってもよい。また、第１の値がハイバリュー「ＦＦ」などの他の値であってもよい。
【００４０】
さらに、本実施形態においては、画像データの画素の値を処理対象としてヒストグラムを生成する場合について説明を行ったが、画素の値に限らず、他のヒスグラムの生成を行う処理に対しても本発明を適用できる。
【符号の説明】
【００４１】
１  プリンタシステム
５  ヒストグラム生成ユニット
２１  ヒストグラムメモリ
２２  フラグレジスタ
【図１】
2013218539.tif 000003
【図２】
2013218539.tif 000004
【図３】
2013218539.tif 000005
【図４】
2013218539.tif 000006
【図５】
2013218539.tif 000007