(57)【要約】【課題】  正規乱数の分散を制御した後、該正規乱数を整数化して画像データに加算することにより、演算精度を向上させる。【解決手段】  正規乱数生成部にて生成された正規分布特性の正規乱数がゲイン制御部に入力され、ゲイン制御部にてその正規乱数の分散を制御して出力する際に、その正規乱数の整数化を分散制御後に行うことにより、演算精度を向上させることができる。【選択図】      図１
2006222682.tif 000002
【特許請求の範囲】
【請求項１】
入力された画像データを中間調処理して出力する画像処理装置における乱数加算装置であって、
正規分布特性の正規乱数を生成する正規乱数生成手段と、
前記正規乱数の分散を制御するための分散制御手段と、
前記分散制御手段で制御された正規乱数を整数化し、入力された画像データに加算する加算手段とを有することを特徴とする乱数加算装置。
【請求項２】
前記分散制御手段は、前記正規乱数を任意の分散の正規分布特性に変更することを特徴とする請求項１記載の乱数生成装置。
【請求項３】
前記分散制御手段は、時系列的に変化する入力画像値に対して適応的に前記正規乱数の分散を制御することを特徴とする請求項１記載の乱数生成装置。
【請求項４】
前記分散制御手段は、複数の設定値群によって前記適応的な分散制御の特性を変更することを特徴とする請求項１乃至請求項３の何れか一項に記載の乱数生成装置。
【請求項５】
入力された画像データを中間調処理して出力する画像処理装置における乱数加算方法であって、
正規分布特性の正規乱数を生成する正規乱数生成工程と、
前記正規乱数の分散を制御するための分散制御工程と、
前記分散制御工程で制御された正規乱数を整数化し、入力された画像データに加算する加算工程とを有することを特徴とする乱数加算方法。
【請求項６】
請求項５記載の乱数生成方法をコンピュータに実行させるためのプログラム。
【請求項７】
請求項６記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された画像データを中間調処理して出力する画像処理装置における乱数加算技術に関する。
【背景技術】
【０００２】
従来、カラー複写機やカラープリンタおいては、カラーイメージスキャナ等の原稿画像を読み取る画像読取装置やコンピュータから入力された画像信号に対して、Ｌｏｇ変換、ＣＭＹＫへの色空間変換やプリンタエンジンの特性に合わせたガンマ変換が行われた後、誤差拡散処理などの擬似中間調処理が行われている。通常、この擬似中間調処理においては、量子化雑音によるモアレを目立ちにくくするために、意図的に画像データに正規乱数値を小雑音として加算する乱数加算処理が行われている（例えば、特許文献１参照）。
【０００３】
図１を用いて入力された画像データに乱数を加算する乱数加算処理の概要について説明する。
【０００４】
図１は、一般的な乱数加算回路の構成の一例を示す図である。図１において、１０１は正規乱数生成部であり、正規乱数を生成する。１０２はゲイン制御部であり、正規乱数に対するゲインを制御する。尚、このゲイン制御部１０２の詳細については更に後述する。１０３は乱数加算の対象となる画像データの入力端子Ｄinである。１０４は加算器であり、入力された画像データに正規乱数を加算する。１０５はリミッタであり、乱数加算後の画像データの最大値及び最小値を制限する。１０６は乱数加算後の画像データを出力するための出力端子Ｄoutである。
【０００５】
次に、乱数加算回路の動作について説明する。まず、正規乱数生成部１０１において、正規乱数の生成が行われる。正規乱数の生成方法としては、通常、複数の一様乱数を加算して正規乱数を生成するという「中心極限定理」が用いられている。例えば、ｍビットの一様乱数を１２個用いる場合、一様乱数をｕk（k=0〜11）とすると、生成される正規乱数ｘは次式で算出される。
【０００６】
【数１】
2006222682.tif 000003
【０００７】
図２は、正規乱数ｘのビットイメージを示す図である。整数部は４ビットであり、その最上位ビット（ＭＳＢ）は符号ビットである。ここで、整数部は２の補数表現を用いれば、−６（１０１０）〜６（０１１０）の値をとる。また、小数部はｍビットである。このとき、正規乱数ｘの標準偏差σは「１」となる。
【０００８】
そして、正規乱数ｘがゲイン制御部１０２に入力されてゲイン制御が行われる。ゲイン制御後の出力は正規乱数ｘtargetとして出力される。ここで、ゲイン制御部１０２では、後述するように、所望の標準偏差σtargetへのスケーリングと、入力画像端子Ｄinからの画像入力信号のレベルに応じて適応的な振幅制御を行う。また、入力画像データは整数値であるため、正規乱数ｘtargetもこの時点で整数化されている。
【０００９】
その後、加算器１０４で、入力端子Ｄinより入力された画像データと正規乱数ｘtargetとの加算が行われ、加算器１０４からの出力がリミッタ１０５で画像データの最大値及び最小値が制限される。例えば、入力画像データが１０ビット（０〜１０２３）で、出力画像データも同様な範囲に収めたい場合、加算器１０４の出力が０以下であれば、「０」にクリッピングされ、また、１０２３以上であれば、「１０２３」にクリッピングされる。そして、リミッタ１０５の出力が乱数加算後の画像データとして出力端子Ｄoutから出力される。
【００１０】
次に、図１に示したゲイン制御部１０２の詳細について説明する。図３は、ゲイン制御部１０２の詳細な構成を示す図である。図３において、３０１は入力端子であり、図１に示す正規乱数生成部１０１から正規乱数ｘを入力する。３０２はσスケーリング部であり、所望の標準偏差σtargetへのスケーリングを行う。３０３は振幅制御部であり、σスケーリング部３０２から出力された正規乱数ｘ’に対して振幅制御を行う。３０４は入力端子であり、振幅制御部３０３に入力画像データＤinを入力する。３０５は出力端子であり、正規乱数ｘtargetを出力する。
【００１１】
次に、ゲイン制御部１０２の動作について説明する。まず、σスケーリング部３０２の動作を説明する。図４は、σスケーリング部３０２の動作概念を説明するための図である。４０１は正規乱数ｘの分布であり、４０２は正規乱数ｘ’の分布である。このように、正規乱数ｘの標準偏差σをσスケーリング部３０２でσtargetに変更することにより正規分布特性の変更を行う。
【００１２】
具体的には、正規乱数ｘに対して、標準偏差σtargetを乗算し、その結果を整数化することにより、スケーリングを行う。ここで、σtargetはＣＰＵバス等を通して設定されるレジスタ設定値で、任意の値に設定できるようにσtarget=ａv/ｂv（ａv，ｂvは整数）として、ａv，ｂvが夫々独立したレジスタに設定される。σtargetの小数点以下のビット数をｐ（ｐは整数）とすると、標準偏差ｘの小数点以下のビット数はｍビットであるため、標準偏差ｘ’は次式で算出される。
【００１３】
【数２】
2006222682.tif 000004
【００１４】
尚、「＞＞」は、右方向の算術シフト（符号ビットを保存しながらのシフト）演算子である。
【００１５】
次に、σスケーリング部３０２の出力である正規乱数ｘ’に対して、振幅制御部３０３にて図５に示すような入力画像の濃度Ｄinに適応的な振幅制御を行う。図５に示すｎ1，ｎ3，Ｍ1，Ｍ2はＣＰＵバス等を通して設定されるレジスタ設定値であり、次式の関係が成り立っている。
【００１６】
【数３】
2006222682.tif 000005
【００１７】
そして、振幅制御後の正規乱数ｘtargetは次式により算出される。ここで、S0はビット精度であり、同時に正規乱数ｘtargetの整数化も行っている。
【００１８】
【数４】
2006222682.tif 000006
【００１９】
次に、振幅制御部３０３の動作を説明する。図６は、振幅制御部３０３の動作概念を説明するための図である。６０１はｎ1＜Ｄin≦ｎ2の場合の正規乱数ｘtargetの分布を示しており、標準偏差ΔＤ1*σtarget/Ｍ1であり、０＜ΔＤ1/Ｍ1≦１であるため、正規乱数ｘ’より分散の小さい分布になっている。また６０２はｎ2＜Ｄin≦ｎ3の場合の正規乱数ｘtargetの分布を示しており、標準偏差はσtargetのままである。そして６０３はｎ3＜Ｄin≦ｎ4の場合の正規乱数ｘtargetの分布を示しており、標準偏差ΔＤ2*σtarget/Ｍ2であり、０＜ΔＤ2/Ｍ2≦１であるため、６０１と同様に、正規乱数ｘ’より分散の小さい分布になっている。
【００２０】
以上説明した処理により、正規乱数ｘtargetが算出され、出力端子３０５より出力される。
【特許文献１】特開2004-229133号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかしながら、上記従来例の乱数加算回路では、ゲイン制御部１０２のσスケーリング部３０２における正規乱数ｘ’の整数化で生じる丸め誤差と、振幅制御部３０３における正規乱数ｘtargetの整数化で生じる丸め誤差とにより、所望の正規分布特性に対して誤差が生じていた。
【００２２】
本発明は、上記課題を解決するためになされたもので、正規乱数の分散を制御した後、該正規乱数を整数化して画像データに加算することにより、演算精度を向上させることを目的とする。
【課題を解決するための手段】
【００２３】
本発明は、入力された画像データを中間調処理して出力する画像処理装置における乱数加算装置であって、正規分布特性の正規乱数を生成する正規乱数生成手段と、前記正規乱数の分散を制御するための分散制御手段と、前記分散制御手段で制御された正規乱数を整数化し、入力された画像データに加算する加算手段とを有することを特徴とする。
【００２４】
また、本発明は、入力された画像データを中間調処理して出力する画像処理装置における乱数加算方法であって、正規分布特性の正規乱数を生成する正規乱数生成工程と、前記正規乱数の分散を制御するための分散制御工程と、前記分散制御工程で制御された正規乱数を整数化し、入力された画像データに加算する加算工程とを有することを特徴とする。
【発明の効果】
【００２５】
本発明によれば、正規乱数の分散を制御した後、該正規乱数を整数化して画像データに加算することにより、演算精度を向上させることができる。
【発明を実施するための最良の形態】
【００２６】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００２７】
［第１の実施形態］
第１の実施形態におけるゲイン制御部では、次式によって正規乱数ｘtargetを算出するものである。尚、使用している記号は前述した従来例で説明したものと同一であり、その説明は省略する。
【００２８】
【数５】
2006222682.tif 000007
【００２９】
式１に示すように、図３に示したσスケーリング部３０２における正規乱数ｘ’の整数化と、振幅制御部３０３における正規乱数ｘtargetの整数化とにおけるシフト演算を最終項でまとめて行っている。
【００３０】
即ち、ｎ1＜Ｄin≦ｎ2又はｎ3＜Ｄin≦ｎ4の場合には２m+p+S0、ｎ2＜Ｄin≦ｎ3の場合には２m+pによるシフト演算としてまとめ、σスケーリングや振幅制御における乗算後にシフト演算を行うことにより、従来のゲイン制御部で生じていた丸め誤差を削減するものである。
【００３１】
また、各演算式の分子に、ｎ1＜Ｄin≦ｎ2又はｎ3＜Ｄin≦ｎ4の場合には２m+p+S0-1を加算し、ｎ2＜Ｄin≦ｎ3の場合には２m+p-1を加算することにより、それぞれ除算結果が四捨五入された結果になっている。
【００３２】
ここで、図７を用いて、上記式１の演算を実現する第１の実施形態におけるゲイン制御部の構成について説明する。
【００３３】
図７は、第１の実施形態におけるゲイン制御部の構成の一例を示すブロック図である。図７に示すａv，ｂv，Ｍ1，Ｍ2，ｎ1，ｎ3は不図示のＣＰＵバスなどからレジスタ設定値として入力されるデータである。ｘは不図示の正規乱数生成部から入力される正規乱数であり、Ｄinは乱数が加算される前の入力画像データである。ｘtargetは第１の実施形態におけるゲイン制御部から出力される正規乱数である。
【００３４】
sel_areaは不図示の他のブロックで生成された振幅制御を行うためのエリア選択信号であり、以下のように定義されている。
【００３５】
【数６】
2006222682.tif 000008
【００３６】
また、７０１、７０２はエリア選択信号sel_areaで選択される４to１セレクタであり、以下のように動作する。
【００３７】
sel_area＝０の時、端子０入力を選択して出力
sel_area＝１の時、端子１入力を選択して出力
sel_area＝２の時、端子２入力を選択して出力
sel_area＝３の時、端子３入力を選択して出力
７０３〜７０６は乗算器である。７１０は画像データＤinからｎ1を減算する減算器である。７１１はｎ3とＭ2の加算値から画像データＤinを減算する演算器である。７１２はシフタであり、エリア選択信号sel_areaに従って以下のように算術シフトを行う。
【００３８】
sel_area＝２の時、(m+p-1)ビット右に算術シフト
sel_areaが２以外の場合は、(m+p+S0-1)ビット右に算術シフト
７１３は条件付加減算器であり、以下のように入力値の符号によって処理を切り替える。
【００３９】
入力値が０以上の時、１を加算
入力値が０未満の時、１を減算
７１４は１ビットシフタであり、１ビット右に算術シフトを行う。
【００４０】
次に、第１の実施形態におけるゲイン制御部の動作を説明する。まず乗算器７０３にはレジスタ値ａvと1/ｂvが入力され、その演算結果が乗算器７０４に出力される。セレクタ７０１の入力端子０には値「０」が、入力端子１にはレジスタ値1/Ｍ1が、入力端子２には値「１」が、入力端子３にはレジスタ値1/Ｍ2がそれぞれ入力されており、エリア選択信号sel_areaの設定値により選択されて乗算器７０４に出力される。そして、乗算器７０４にて乗算器７０３の出力とセレクタ７０１の出力との乗算が行われ、その結果が乗算器７０５に出力される。その後、乗算器７０５にて正規乱数ｘと、乗算器７０４の出力との乗算が行われ、その結果が乗算器７０６に出力される。
【００４１】
一方、減算器７１０では画像データＤinとレジスタ値ｎ1の減算が行われ、その結果であるΔＤ1がセレクタ７０２の入力端子１に出力される。また、演算器７１１では、レジスタ値ｎ3とレジスタ値Ｍ2の加算と、画像データＤinの減算とが行われ、その結果であるΔＤ2がセレクタ７０２の入力端子３に出力される。尚、セレクタ７０２の入力端子０には値「０」が、入力端子２には値「１」が入力されている。
【００４２】
セレクタ７０２でエリア選択信号sel_areaに従って入力端子０〜３の何れかが選択され、選択された入力端子のデータが乗算器７０６に出力される。そして、乗算器７０６にて乗算器７０５の出力とセレクタ７０２の出力との乗算が行われ、その結果がシフタ７１２に出力される。
【００４３】
その後、シフタ７１２において、エリア選択信号sel_areaによる制御により、σスケーリング部３０２における正規乱数ｘ’の整数化と、振幅制御部３０３における正規乱数ｘtargetの整数化とが行われ、その結果が、条件付加減算器７１３に出力される。この条件付加減算器７１３では、シフタ７１２の出力の符号を評価し、加算又は減算を行い、その結果を１ビットシフタ７１４に出力する。そして、１ビットシフタ７１４にて右方向の１ビット算術シフトが行われ、正規乱数ｘtargetとして出力される。
【００４４】
尚、条件付加減算器７１３及び１ビットシフタ７１４による動作は、正規乱数ｘtargetを算出する際の四捨五入の動作に対応している。
【００４５】
上述したように、第１の実施形態によれば、正規乱数に対するゲイン制御の演算精度を向上させることができる。
【００４６】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態について詳細に説明する。
【００４７】
第２の実施形態におけるゲイン制御部では、次式によって正規乱数ｘtargetを算出するものである。尚、使用している記号は前述した従来例で説明したものと同一であり、その説明は省略する。
【００４８】
【数７】
2006222682.tif 000009
【００４９】
この式２では、標準偏差σtarget=ａv（ａv整数）として、σtargetを整数に限定している。また、振幅制御部３０３で行っていたＭ1又はＭ2での除算を、それぞれｍ1ビット又はｍ2ビットの右方向の算術シフトにすることにより、処理の簡素化を図っている。
【００５０】
これにより、ｐビット及びS0ビットの右方向の算術シフトが排除されている。そして、第１の実施形態と同様に、図３に示したσスケーリング部３０２における正規乱数ｘ’の整数化と、振幅制御部３０３における正規乱数ｘtargetの整数化は全て、シフト演算として、ｎ1＜Ｄin≦ｎ2の場合には２m+m1、ｎ2＜Ｄin≦ｎ3の場合には２m、ｎ3＜Ｄin≦ｎ4の場合には、２m+m2によるシフト演算としてまとめ、σスケーリングや振幅制御における乗算後に行うことにより、従来のゲイン制御部で生じていた丸め誤差を削減するものである。
【００５１】
また、各演算式の分子に、ｎ1＜Ｄin≦ｎ2の場合には２m+m1-1、ｎ2＜Ｄin≦ｎ3の場合には２m-1、ｎ3＜Ｄin≦ｎ4の場合には２m+m2-1を加算することにより、それぞれの除算結果が、四捨五入された結果になっている。
【００５２】
ここで、図８を用いて、上記式２の演算を実現する第２の実施形態におけるゲイン制御部の構成について説明する。
【００５３】
図８は、第２の実施形態におけるゲイン制御部の構成の一例を示すブロック図である。尚、第１の実施形態で用いた図７と同一な機能に関しては同一の符号を付し、その説明は省略する。
【００５４】
図８において、８０１はシフタであり、エリア選択信号sel_areaに従って以下のように算術シフトを行う。
【００５５】
sel_area=1の時、(m+m1-1)ビット右に算術シフト
sel_area=2の時、(m-1)ビット右に算術シフト
sel_areaが1及び2以外の場合は、(m+m2-1)ビット右に算術シフト
次に、第２の実施形態におけるゲイン制御部の動作を説明する。まず乗算器７０５にてレジスタ値ａvと正規乱数ｘの乗算が行われ、その結果が乗算器７０６に出力される。
【００５６】
一方、減算器７１０では画像データＤinとレジスタ値ｎ1の減算が行われ、その結果であるΔＤ1がセレクタ７０２の入力端子１に出力される。また、演算器７１１では、レジスタ値ｎ3とレジスタ値Ｍ2の加算と、画像データＤinの減算とが行われ、その結果であるΔＤ2がセレクタ７０２の入力端子３に出力される。
【００５７】
第１の実施形態と同様に、セレクタ７０２の入力端子０には値「０」が、入力端子１にはΔＤ1が、入力端子２には値「１」が、入力端子３にはΔＤ2がそれぞれ入力されており、エリア選択信号sel_areaによって選択された入力が乗算器７０６に出力される。そして、乗算器７０６にて乗算器７０５の出力とセレクタ７０２の出力との乗算が行われ、その結果がシフタ８０１に出力される。
【００５８】
その後、シフタ８０１において、エリア選択信号sel_areaによる制御により、σスケーリング部３０２における正規乱数ｘ’の整数化と、振幅制御部３０３における正規乱数ｘtargetの整数化とが行われ、その結果が、条件付加減算器７１３に出力される。これ以降の動作は、図７を用いて説明した第１の実施形態と同一である。
【００５９】
以上説明したように、σスケーリング部における正規乱数ｘ’の整数化と、振幅制御部における正規乱数ｘtargetの整数化とを、σスケーリング部や振幅制御部における乗算後にまとめて除算又はシフト演算を行うことにより、ゲイン制御部で生じていた丸め誤差を削減することが可能となる。
【００６０】
尚、式１又は式２でσスケーリング部におけるレジスタ値ｂvでの除算を1/ｂvを乗算とｐビットのシフト演算で行い、また振幅制御部におけるレジスタ値Ｍ1及びＭ2での除算を、それぞれ1/Ｍ1の乗算とS0ビットのシフト及び1/Ｍ2の乗算とS0ビットのシフトで行っているが、これらを除算のみで、σスケーリング部や振幅制御部における乗算後にまとめて行った場合でも本発明が適応できることは言うまでもない。
【００６１】
本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００６２】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００６３】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００６４】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００６５】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６６】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００６７】
【図１】一般的な乱数加算回路の構成の一例を示す図である。
【図２】正規乱数ｘのビットイメージを示す図である。
【図３】ゲイン制御部１０２の詳細な構成を示す図である。
【図４】σスケーリング部３０２の動作概念を説明するための図である。
【図５】入力画像の濃度Ｄinに適応的な振幅制御を示す図である。
【図６】振幅制御部３０３の動作概念を説明するための図である。
【図７】第１の実施形態におけるゲイン制御部の構成の一例を示すブロック図である。
【図８】第２の実施形態におけるゲイン制御部の構成の一例を示すブロック図である。
【図１】
2006222682.tif 000010
【図２】
2006222682.tif 000011
【図３】
2006222682.tif 000012
【図４】
2006222682.tif 000013
【図５】
2006222682.tif 000014
【図６】
2006222682.tif 000015
【図７】
2006222682.tif 000016
【図８】
2006222682.tif 000017