(57)【特許請求の範囲】
【請求項１】
画像データからＮ画素（Ｎは２以上の整数）のデータを取り出し、前記取り出したＮ画素のデータを、それぞれに少なくとも１画素が含まれるようにｋ個（２≦ｋ≦Ｎ）の分割データに分割し、前記ｋ個の分割データの各々に含まれる画素数に対応する変換テーブルであって、該画素数のデータを、１画素当たりのビット数を変換するビット数変換処理及び色空間変換処理の少なくとも一方を含む変換処理により１個のデータに変換する変換テーブルを用いて、前記ｋ個の分割データの各々を１個のデータに変換する分割変換手段と、
前記分割変換手段により変換されたｋ個のデータを、前記画像データから取り出したＮ画素のデータが１／Ｎの縮小率で縮小された１画素の出力データになるように合成する合成手段と、
を含む画像処理装置。
【請求項２】
画像データからα×Ｎ（αは１以上の整数）画素のデータを取り出し、前記取り出したα×Ｎ画素のデータを前記変換処理によりα画素のデータに変換する変換テーブルを用いて、前記取り出したα×Ｎ画素のデータをα画素のデータに変換する非分割変換手段と、
前記非分割変換手段で用いられる変換テーブルの前記αを１としたときのテーブル容量を前記縮小率及び前記変換処理の内容を規定する処理条件に基づいて求め、該求めたテーブル容量が予め定められた閾値未満であれば、αの値を、前記非分割変換手段で用いられる変換テーブルのテーブル容量が閾値を超えない範囲内で最大となる値に設定して、前記非分割変換手段により画像データが１／Ｎの縮小率で縮小され前記変換処理されるように制御し、前記テーブル容量が前記閾値以上であれば、前記分割変換手段及び前記合成手段により画像データが１／Ｎの縮小率で縮小され前記変換処理されるように制御する制御手段と、
を更に含む請求項１に記載の画像処理装置。
【請求項３】
前記分割変換手段及び前記非分割変換手段は、前記変換処理として、少なくとも色空間変換処理及び面順次形式から点順次形式に変換する面点変換処理を行い、
前記分割変換手段は、画像データから色空間変換処理前の色空間の各チャンネル毎のＮ画素のデータを取り出し、該取り出した各チャンネル毎のデータの各々をｋ個に分割し、該ｋ個に分割された各チャンネル毎のデータの各々を連結してｋ個の分割データを生成し、前記ｋ個の分割データの各々に含まれる画素数に対応する変換テーブルであって、該画素数のデータを前記少なくとも色空間変換処理後の色空間の各チャンネルのデータが連続する１個のデータに変換する変換テーブルを用いて、前記ｋ個の分割データの各々を変換し、
前記非分割変換手段は、画像データから色空間変換処理前の色空間の各チャンネル毎のα×Ｎ画素のデータを取り出し、該取り出した各チャンネル毎のデータの各々を連結して、該連結データを少なくとも色空間変換処理後の色空間の各チャンネルのデータが連続する１画素分のデータがα画素連続するデータに変換する変換テーブルを用いて、前記取り出したα×Ｎ個の画素のデータをα個の画素のデータへ変換する
請求項２に記載の画像処理装置。
【請求項４】
前記分割変換手段及び前記非分割変換手段は、前記変換処理として、少なくとも色空間変換処理を行い、色空間変換処理前の色空間がＣＭＹＫ色空間である場合には、変換テーブルによる変換処理前に、Ｋ成分をＣ成分、Ｍ成分、及びＹ成分の各々に重畳する
請求項２に記載の画像処理装置。
【請求項５】
コンピュータを、
画像データからＮ画素（Ｎは２以上の整数）のデータを取り出し、前記取り出したＮ画素のデータを、それぞれに少なくとも１画素が含まれるようにｋ個（２≦ｋ≦Ｎ）の分割データに分割し、前記ｋ個の分割データの各々に含まれる画素数に対応する変換テーブルであって、該画素数のデータを、１画素当たりのビット数を変換するビット数変換処理及び色空間変換処理の少なくとも一方を含む変換処理により１個のデータに変換する変換テーブルを用いて、前記ｋ個の分割データの各々を１個のデータに変換する分割変換手段、及び
前記分割変換手段により変換されたｋ個のデータを、前記画像データから取り出したＮ画素のデータが１／Ｎの縮小率で縮小された１画素の出力データになるように合成する合成手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、ルックアップテーブル技術を使用することによって高分解能二階調データファイルをより低い分解能の連続階調データファイルへ変換する技術が開示されている。
【０００３】
また特許文献２には、二値画像データを隣接する複数画素単位でブロックに分割し、分割された画素ブロックを該画素ブロック中の黒画素又は白画素の配置や存在比を重み付けした階調テーブルと比較して階調を決定し、表示手段上の一画素として表示する技術が開示されている。
【０００４】
また特許文献３には、画像入力部から所定の画素数の画素データを抽出する抽出手段と、抽出された画素データで表される数値の大きさに応じた、所定画素数より少ない画素数の画素データに変換する変換手段とが設けられた表示装置が開示されている。
【０００５】
また特許文献４には、Ｎ階調で表現された画像データを複数の画素単位で入力し、入力された画像データの複数の画素を一括してＭ階調に変換し、Ｍ階調に階調変換された画像データを複数の画素単位で出力する画像処理装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−２６３０４４号公報
【特許文献２】特開平０３−２８９２６７号公報
【特許文献３】特開平０６−１０２８５８号公報
【特許文献４】特許第３０６１２３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、画像データを縮小し、ビット数変換処理及び色空間変換処理の少なくとも一方を行う際に用いられる変換テーブルの容量を抑えることができる画像処理装置及びプログラムを得ることを目的とする。
【課題を解決するための手段】
【０００８】
請求項１の発明は、画像データからＮ画素（Ｎは２以上の整数）のデータを取り出し、前記取り出したＮ画素のデータを、それぞれに少なくとも１画素が含まれるようにｋ個（２≦ｋ≦Ｎ）の分割データに分割し、前記ｋ個の分割データの各々に含まれる画素数に対応する変換テーブルであって、該画素数のデータを、１画素当たりのビット数を変換するビット数変換処理及び色空間変換処理の少なくとも一方を含む変換処理により１個のデータに変換する変換テーブルを用いて、前記ｋ個の分割データの各々を１個のデータに変換する分割変換手段と、前記分割変換手段により変換されたｋ個のデータを、前記画像データから取り出したＮ画素のデータが１／Ｎの縮小率で縮小された１画素の出力データになるように合成する合成手段と、を含む画像処理装置である。
【０００９】
請求項２の発明は、請求項１に記載の画像処理装置に、画像データからα×Ｎ（αは１以上の整数）画素のデータを取り出し、前記取り出したα×Ｎ画素のデータを前記変換処理によりα画素のデータに変換する変換テーブルを用いて、前記取り出したα×Ｎ画素のデータをα画素のデータに変換する非分割変換手段と、前記非分割変換手段で用いられる変換テーブルの前記αを１としたときのテーブル容量を前記縮小率及び前記変換処理の内容を規定する処理条件に基づいて求め、該求めたテーブル容量が予め定められた閾値未満であれば、αの値を、前記非分割変換手段で用いられる変換テーブルのテーブル容量が閾値を超えない範囲内で最大となる値に設定して、前記非分割変換手段により画像データが１／Ｎの縮小率で縮小され前記変換処理されるように制御し、前記テーブル容量が前記閾値以上であれば、前記分割変換手段及び前記合成手段により画像データが１／Ｎの縮小率で縮小され前記変換処理されるように制御する制御手段と、を更に設けた画像処理装置である。
【００１０】
請求項３の発明は、請求項２に記載の画像処理装置において、前記分割変換手段及び前記非分割変換手段は、前記変換処理として、少なくとも色空間変換処理及び面順次形式から点順次形式に変換する面点変換処理を行い、前記分割変換手段は、画像データから色空間変換処理前の色空間の各チャンネル毎のＮ画素のデータを取り出し、該取り出した各チャンネル毎のデータの各々をｋ個に分割し、該ｋ個に分割された各チャンネル毎のデータの各々を連結してｋ個の分割データを生成し、前記ｋ個の分割データの各々に含まれる画素数に対応する変換テーブルであって、該画素数のデータを前記少なくとも色空間変換処理後の色空間の各チャンネルのデータが連続する１画素のデータに変換する変換テーブルを用いて、前記ｋ個の分割データの各々を変換し、前記非分割変換手段は、画像データから色空間変換処理前の色空間の各チャンネル毎のα×Ｎ画素のデータを取り出し、該取り出した各チャンネル毎のデータの各々を連結して、該連結データを少なくとも色空間変換処理後の色空間の各チャンネルのデータが連続する１画素分のデータがα画素連続するデータに変換する変換テーブルを用いて、前記取り出したα×Ｎ個の画素のデータをα個の画素のデータへ変換するものである。
【００１１】
請求項４の発明は、請求項２に記載の画像処理装置において、前記第１変換手段及び第２変換手段は、前記変換処理として、少なくとも色空間変換処理を行い、色空間変換処理前の色空間がＣＭＹＫ色空間である場合には、変換テーブルによる変換処理前に、Ｋ成分をＣ成分、Ｍ成分、及びＹ成分の各々に重畳するものである。
【００１２】
請求項５の発明は、コンピュータを、画像データからＮ画素（Ｎは２以上の整数）のデータを取り出し、前記取り出したＮ画素のデータを、それぞれに少なくとも１画素が含まれるようにｋ個（２≦ｋ≦Ｎ）の分割データに分割し、前記ｋ個の分割データの各々に含まれる画素数に対応する変換テーブルであって、該画素数のデータを、１画素当たりのビット数を変換するビット数変換処理及び色空間変換処理の少なくとも一方を含む変換処理により１個のデータに変換する変換テーブルを用いて、前記ｋ個の分割データの各々を１個のデータに変換する分割変換手段、及び前記分割変換手段により変換されたｋ個のデータを、前記画像データから取り出したＮ画素のデータが１／Ｎの縮小率で縮小された１画素の出力データになるように合成する合成手段、として機能させるためのプログラムである。
【発明の効果】
【００１３】
請求項１記載の発明は、画像データを縮小し、ビット数変換処理及び色空間変換処理の少なくとも一方を行う際に用いられる変換テーブルの容量を抑えることができる。
【００１４】
請求項２記載の発明は、画像データを縮小し、ビット数変換処理及び色空間変換処理の少なくとも一方を行う際に用いられる変換テーブルの容量を抑えることができる。
【００１５】
請求項３記載の発明は、テーブル容量を増やさずに、変換テーブルを用いて面点変換処理ができる。
【００１６】
請求項４記載の発明は、変換テーブルによる変換前にＫ成分をＣＭＹ成分に重畳しない場合に比べて、テーブル容量を小さくすることができる。
【００１７】
請求項５記載の発明は、画像データを縮小し、ビット数変換処理及び色空間変換処理の少なくとも一方を行う際に用いられる変換テーブルの容量を抑えることができる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態に係る画像処理装置の概略構成図である。
【図２】実施の形態に係る画像処理装置の機能構成図である。
【図３】第１変換部による処理の概要を説明する説明図である。
【図４】第２変換部による処理の概要を説明する説明図である。
【図５】選択処理ルーチンの流れを示すフローチャートである。
【図６】第１変換部による処理の一例を説明する説明図である。
【図７】第２変換部による処理の一例を説明する説明図である。
【図８】第２変換部による処理の他の例を説明する説明図である。
【図９】変換テーブルの生成方法を説明する説明図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して実施の形態の一例を詳細に説明する。図１には本実施の形態に係る画像処理装置１０が示されている。画像処理装置１０には、画像処理装置１０の各部の動作を制御する装置制御部１２と、画像を入力する画像入力部１４と、画像を出力する画像出力部１６と、操作パネル１８とが設けられており、これらはバス２０を介して互いに接続されている。
【００２０】
画像入力部１４は、例えば、セットされた読取対象の文書(例えば紙原稿)を光学的に読み取って画像データを取得するスキャナ装置としてもよいし、ＣＤ−ＲＯＭやＵＳＢメモリ等の可搬型メモリから画像データを取得するインタフェース、或いは外部装置からネットワーク等を介して画像データを取得する通信手段であってもよい。
【００２１】
なお、本実施の形態では、画像入力部１４に入力された画像データは、縮小処理及び変換処理等の画像処理が施されて画像出力部１６に入力される。
【００２２】
画像出力部１６は、例えば、入力された画像データが表す画像を記録用紙上に形成する画像形成装置であってもよいし、該画像データが表す画像をＬＣＤ等の表示画面に表示することにより画像を出力する表示装置であってもよい。
【００２３】
操作パネル１８は、操作画面を表示するための表示部、及びテンキーやタッチパネル等から成り利用者による操作を受付ける操作受付部が設けられている。
【００２４】
装置制御部１２はマイクロコンピュータ等から成り、ＣＰＵ１２Ａ、メモリ１２Ｂ、ＨＤＤ(Hard Disk Drive)やフラッシュメモリ等から成る不揮発性の記憶部１２Ｃが設けられている。記憶部１２Ｃには、前述した変換処理プログラム、及び変換処理プログラムを実行するためのプラットフォームとして機能するオペレーティング・システム(ＯＳ)のプログラムが各々記憶されている。
【００２５】
図２は、本実施の形態に係る画像処理装置１０の機能構成図である。図２において、図１と同一の符号を付した構成要素は同一の構成要素であるため、説明を省略する。
【００２６】
図２の機能構成図に示すように、画像処理装置１０は、画像入力部１４、画像出力部１６、及び操作パネル１８の他に、処理制御部３０、第１変換部３２、及び第２変換部４０を備えている。第１変換部３２及び第２変換部４０では、いずれにおいても変換テーブルを用いた処理が行われるが、本実施の形態では、第１変換部３２で用いられる変換テーブルを第１変換テーブル３６と呼称し、第２変換部４０で用いられる変換テーブルを第２変換テーブル４４と呼称して区別して説明する。処理制御部３０は、第１変換部３２及び第２変換部４０のいずれかに対して、縮小処理の縮小率及び変換処理の内容を規定する処理条件を示す処理パラメータと、画像入力部１４から入力された画像データとを入力して、処理パラメータにより規定される画像処理を行わせる。以下では、第１変換部３２又は第２変換部４０に入力される画像処理前の画像データを入力画像データと呼称する。処理制御部３０、第１変換部３２、及び第２変換部４０は、装置制御部１２のＣＰＵ１２Ａが、変換処理プログラムを実行することにより実現される。
【００２７】
第１変換部３２は、第１テーブル値生成部３４、第１変換テーブル３６、及び第１変換処理部３８を備えており、入力画像データに対して縮小処理及び変換処理を行って出力する。本実施の形態では、該変換処理には、ビット数変換処理、色空間変換処理、及び面点変換処理が含まれる。
【００２８】
縮小処理は、本実施の形態では、画像データを主走査方向（画像の水平方向）に平均値法で且つ１／Ｎ（ここでは、Ｎは自然数である）の縮小率で縮小する処理をいう。すなわち、本実施の形態では、サンプリングして（画素を間引く）縮小するのではなく、縮小元の複数の画素データから平均値などの演算処理を行って縮小する。また、ビット数変換処理は、１画素当たりのビット数を変換する処理であり、入力ビット数Ｂｉを出力ビット数Ｂｏに変換する処理をいう。なお、例えば、１ビットの画像データから８ビットの画像データに変換することを、２階調の画像データを２５６階調の画像データに変換すると言い換えても良い。
【００２９】
色空間変換処理は、周知の色空間変換処理であって、この色空間変換処理によりチャンネル数も入力チャンネル数Ｃｉから出力チャンネル数Ｃｏへ変換される。例えば、ＹＭＣＫ色空間からＹＣｂＣｒ色空間に変換すると、４チャンネルから３チャンネルに変換されることになる。なお、後述するように、Ｋ成分をＣＭＹ各成分に重畳させてから変換処理する場合には、ＣＭＹＫ４チャンネルを、まずＫ成分をＣＭＹ成分に重畳してＣＭＹ３チャンネルにした後、ＹＣｂＣｒ３チャンネルへ変換する。
【００３０】
面点変換処理は、面順次形式の画像データを点順次形式の画像データに変換する処理をいう。
【００３１】
第１テーブル値生成部３４は、処理制御部３０から入力された処理パラメータに基づいて、第１変換処理部３８が用いる第１変換テーブル３６のテーブル値を求めて、この値を第１変換テーブル３６に設定する。
【００３２】
より具体的には、第１テーブル値生成部３４は、処理制御部３０から入力された処理パラメータ（Ｎ，Ｂｉ，Ｂｏ，入出力色空間の種類，第１変換テーブル３６により一括で変換する画素数を規定するパラメータα（αは１以上の整数））に基づいて、α×Ｎ×Ｂｉ×Ｃｉビット（＝α×Ｎ画素分のビット数）の入力値と、該入力値をＢｉからＢｏへのビット数変換及び色空間変換処理（色空間変換処理はチャンネル数ＣｉからＣｏへ変換するチャネル数変換処理も伴う）を行った結果としての、α×Ｂｏ×Ｃｏビット（＝α画素分のビット数）の出力値とを対応付けた変換テーブルのテーブル値を生成し、第１変換テーブル３６に設定する。
【００３３】
第１変換処理部３８は、図３に示すように、入力画像データからα×Ｎ画素のデータを取り出し、第１変換テーブル３６を用いて、α×Ｎ画素のデータをα画素のデータに変換して出力する。言い換えれば、第１変換テーブル３６からα×Ｎ画素の入力画像データに相当する入力値に対応する出力値を取得して出力する。これを入力画像データの全ての画素が処理されるまで繰り返し、１／Ｎの縮小率で縮小されビット数変換などの変換処理がされた画像データを出力する。
【００３４】
より具体的には、第１変換処理部３８は、入力画像データが点順次形式の場合には該入力画像データを先頭から順に、α×Ｎ×Ｂｉ×Ｃｉビット（α×Ｎ画素のデータ）のデータを取り出して第１変換テーブル３６を用いて、該取り出したデータに相当する入力値に対応した出力値（α×Ｂｏ×Ｃｏビットのデータ、すなわち、α画素のデータ）を出力する。また、入力画像データが面順次形式の場合には、まず、入力画像データを構成する各チャンネル毎の画像データのそれぞれからα×Ｎ×Ｂｉビットのデータを読み出し、それらを連結して（α×Ｎ×Ｂｉ）×Ｃｉビットのデータにしてから上記点順次の場合と同じように第１変換テーブル３６を用いて処理する。この場合、第１テーブル値生成部３４は、面順次形式の入力チャンネル毎のデータを連結した入力値と、点順次形式のデータの出力値とを対応付ける変換テーブルのテーブル値を生成する。
【００３５】
更に、色空間変換処理がＣＭＹＫ色空間から別の色空間に変換するものである場合には、第１変換処理部３８は、まずＫ成分をＣＭＹ成分に重畳してから、第１変換テーブル３６による変換処理を行う。重畳方法は、例えば、Ｂｉ＝１の場合にはＯＲ処理で、それ以外の場合には任意のＵＣＲ（Under Color Removal：下色除去）演算やその演算と同等なテーブル処理により行う。後者の場合、例えば、Ｋを上限値制限しながらＣＭＹに加算するようにしてもよいし、Ｋ／Ｃ、Ｋ／Ｍ、Ｋ／Ｙをそれぞれ入力値とする重畳用のテーブルを作って重畳処理するようにしてもよい。なお、これら重畳方法は一般的な技術であるため、ここでは、これ以上の説明は省略する。
【００３６】
なお、第１変換処理部３８は、後述する第２変換処理部４６の分割変換処理部４６Ａとは異なり、α×Ｎ画素のデータを取り出した場合は、該取り出したデータを分割することなく、１つの変換テーブルで変換して出力するため、以下では、第１変換処理部３８を非分割変換処理部と呼称する場合もある。
【００３７】
第２変換部４０は、第２テーブル値生成部４２、第２変換テーブル４４、及び第２変換処理部４６を備えており、入力画像データに対して上記縮小処理及び変換処理を行って出力する。
【００３８】
第２テーブル値生成部４２は、処理制御部３０から入力された処理パラメータに基づいて第２変換処理部４６が変換処理に用いる第２変換テーブル４４のテーブル値を求めて、第２変換テーブル４４を設定する。第２変換テーブル４４は、１つで足りる場合もあるし、複数必要な場合もある。
【００３９】
より具体的には、第２テーブル値生成部４２は、処理制御部３０から入力された処理パラメータ（Ｎ，Ｂｉ，Ｂｏ，入出力色空間の種類，出力１画素の分割処理数ｋ（ｋは２以上Ｎ以下の整数））に基づいて、１画素分の出力画像データを求めるために必要なＮ画素分の入力画像データを、それぞれが少なくとも１画素が含まれるようにｋ個の分割データに分割したときの、各ｋ個の分割データの各々に含まれる画素数に対応する第２変換テーブル４４のテーブル値の各々を生成する。各分割データに含まれる画素数は同じであっても、異なっていても良い。また、後述するように、第２変換部４０では、１個以上ｋ個以下の変換テーブルが用いられるが、本実施の形態では、第２変換部４０で用いられる変換テーブルの各々を第２変換テーブル４４と呼称する。第２テーブル値生成部４２は、第２変換テーブル４４の各々について、対応する分割データに含まれる画素数分のビット数を入力値とし、入力値にＢｉからＢｏへのビット数変換及び色空間変換処理を行った結果としての１画素分のデータを出力値とするテーブル値を生成する。
【００４０】
第２変換処理部４６は、分割変換処理部４６Ａ及び合成部４６Ｂを備えている。分割変換処理部４６Ａは、図４に示すように、入力画像データからＮ画素分のデータを取り出し、これをｋ個に分割した分割データの各々について、第２変換テーブル４４を用いて１画素のデータに変換し、合成部４６Ｂは、変換されたデータの各々を、１／Ｎの縮小率で縮小された１画素のデータとなるように合成して出力する。第２変換処理部４６は、分割変換処理部４６Ａ及び合成部４６Ｂによる処理を、入力画像データの全ての画素が処理されるまで繰り返し、１／Ｎの縮小率で縮小されビット数変換などの変換処理がされた画像データを出力する。このように第２変換テーブル４４によって変換して１個のデータを分割データ毎に生成し、これらを合成して最終的に１画素のデータを生成するが、ここでは第２変換テーブル４４による変換後合成前の各データも合成後の１画素のデータとビット数が変わらないため、変換後合成前のデータの各々についても１画素のデータと呼称する。
【００４１】
ここで、第２変換処理部４６の処理を具体的に説明する。第２変換処理部４６の分割変換処理部４６Ａは、入力画像データが点順次形式の場合には該入力画像データを先頭から順に、Ｎ×Ｂｉ×Ｃｉビット（Ｎ画素のデータ）を取り出し、このデータをｋ個に分割（分割は、それぞれが１画素以上となるように分割する。また、１画素のビット列の途中では分割しない、下記面順次形式でも同様）したときの各分割データのそれぞれについて第２変換テーブル４４の対応する第２変換テーブル４４から、該分割データに相当する入力値に対応する出力値を取得し、合成部４６Ｂは、これらｋ個の出力値を合成して、１画素分の画像データ（Ｂｏ×Ｃｏビット）として出力する。また、入力画像データが面順次形式の場合には、まず、入力画像データを構成する各チャンネル毎の画像データのそれぞれからＮ×Ｂｉをｋ個に分割したときの各ビット列を読み出し、各チャンネル毎のビット列を連結したデータを分割データとして、上記点順次の場合と同じように第２変換テーブル４４を用いて処理する。この場合、第２テーブル値生成部４２は、面順次形式の入力チャンネル毎のデータが連結された入力値と、点順次形式の出力値とが対応付けられた第２変換テーブル４４のテーブル値を生成する。
【００４２】
なお、色空間変換処理がＣＭＹＫ色空間から別の色空間に変換するものである場合には、第２変換処理部４６の分割変換処理部４６Ａは、第１変換処理部３８と同様に、まずＫ成分をＣＭＹ成分に重畳し、ＣＭＹ色空間から出力色空間へ変換する。
【００４３】
なお、ここでは、第１変換部３２及び第２変換部４０が行う画像処理のうちの変換処理には、ビット数変換処理、色空間変換処理、及び面点変換処理が含まれる例について説明したが、これに限定されない。
【００４４】
例えば、変換処理としてビット数変換処理のみを行う場合には、処理パラメータとして入出力チャンネル数Ｃｉ及びＣｏは省略される。この場合において、第１変換部３２の第１テーブル値生成部３４は、α×Ｎ×Ｂｉビットの入力値と、該入力値をＢｉからＢｏへのビット数変換を行った結果としての、α×Ｂｏビットの出力値とを対応付けたテーブル値を生成して第１変換テーブル３６に設定し、第１変換処理部３８は、入力画像データからα×Ｎ×Ｂｉビット（＝α×Ｎ画素）のデータを取り出して、これを第１変換テーブル３６を用いて変換してα×Ｂｏビット（＝α画素）のデータを出力することにより、１／Ｎの縮小率の縮小処理及びＢｉからＢｏへのビット数変換処理を行う。また、第２変換部４０においては、第２テーブル値生成部４２は、各ｋ個の分割データの各々に含まれる画素数に対応する第２変換テーブル４４のテーブル値の各々について、対応する分割データに含まれる画素数分のビット数を入力値とし、入力値にＢｉからＢｏへのビット数変換を行った結果としての１画素分のデータを出力値とするテーブル値を生成して第２変換テーブル４４の各々に設定し、第２変換処理部４６は、入力画像データからＮ画素分のデータを取り出し、これをｋ個に分割した分割データの各々について、第２変換テーブル４４を用いて１画素のデータに変換し、変換された値の各々を合成して１画素分の画像データを出力する。
【００４５】
また、変換処理として色空間変換処理のみを行う場合も、上記と同様に処理すればよい。
【００４６】
次に、第２変換処理部４６の合成部４６Ｂで行われる合成方法についてより詳しく説明する。合成方法は、第２変換テーブル４４の生成方法に応じて異なる。例えば、第２変換テーブル４４の各出力値が、各分割データの画素数に応じた寄与率が既に乗算されている１画素のデータである場合には、第２変換テーブル４４により変換されたｋ個のデータを加算するだけでよい。しかしながら、第２変換テーブル４４の各出力値が、各分割データの画素数に応じた寄与率が乗算されていない１画素のデータである場合には、これら各ｋ個のデータに該寄与率を乗算して加算する必要がある。
【００４７】
ここで、図４を参照しながら、寄与率について具体的に説明する。例えば、縮小率が１／５で、ｋ＝２の場合、画素数Ｎ（＝５）を、Ｎ１＝３、Ｎ２＝２に分割することができる。従って、分割データＤ１の画素数をＮ１（＝３）とし、分割データＤ２の画素数をＮ２（＝２）とすることができる。このように、各分割データの画素数が異なるため、ここでは、各分割データの画素数に応じた第２変換テーブルＴ１、Ｔ2が生成される。
【００４８】
ここで、画素数Ｎ１（＝３）の分割データＤ１に対応する第２変換テーブル４４を第２変換テーブルＴ１と呼称し、画素数Ｎ２（＝２）の分割データＤ２に対応する第２変換テーブル４４を第２変換テーブルＴ２と呼称する。この２つの第２変換テーブルＴ１、Ｔ２の生成方法は、以下の通りである。入力３画素の各画素毎のデータを加算して３で除算することにより、１画素分のデータを生成し、更に寄与率（重み付け）３／５を乗算して出力値とすることで、第２変換テーブルＴ１が生成される。また、入力２画素の各画素毎のデータを加算して２で除算することにより１画素分のデータを生成し、更に寄与率２／５を乗算して出力値とすることで、第２変換テーブルＴ２が生成される。
【００４９】
ここで、仮に、第２変換テーブルＴ１に、入力３画素の各画素毎のデータを加算して３で除算したデータに対して、更に寄与率３／５を乗算したものが出力値として設定されおり、第２変換テーブルＴ２に、入力２画素の各画素毎のデータを加算して２で除算したデータに対して、更に寄与率２／５を乗算したものが出力値として設定されていれば、分割データＤ１、Ｄ２を各々に対応する第２変換テーブルＴ１、第２変換テーブルＴ２により変換されて得られた２つのデータを加算するだけで、入力Ｎ画素が１／５の縮小率で縮小された１画素のデータを得ることができる。このように、寄与率が乗算された出力値がテーブル値として設定されている場合の合成方法（合成方法１と呼称する）は、下記の数式（１）で表せる。
【００５０】
【数１】
0005887809.tif 000002
【００５１】
ここで、Ｐは、合成（加算）結果である１画素のデータ、Ｐｎは、１〜ｋ番目までの分割データＤ１〜Ｄｋを第２変換テーブル４４により変換して得られたデータである
【００５２】
一方、第２変換テーブル４４に、寄与率が乗算されていない出力値が設定されている場合（前述した例では、第２変換テーブルＴ１に、入力３画素の各画素毎のデータを加算して３で除算したデータが出力値として設定されおり、第２変換テーブルＴ２に、入力２画素の各画素毎のデータを加算して２で除算したデータが出力値として設定されている場合）には、分割データＤ１〜Ｄｋを第２変換テーブル４４により変換して得られたデータＰ１〜Ｐｋをそのまま加算するのではなく、該データＰ１〜Ｐｋの各々に寄与率を乗算したものを加算する。この場合の合成方法（合成方法２と呼称する）は、下記の数式（２）で表せる。
【００５３】
【数２】
0005887809.tif 000003
【００５４】
ここで、Ｎｎ／Ｎは寄与率を表わす。なお、ｋ個の分割データについて、寄与率の各々が等しい場合（例えば、ｋ＝２ので、各分割データの画素数の各々が等しい場合には、各々の寄与率は１／２となる）には、第２変換テーブル４４により変換されたｋ個のデータＰ１〜Ｐｋを加算した後に、１／２を乗算（すなわち、２で除算）するようにしてもよい。
【００５５】
また、上記では、第２変換テーブル４４に、分割データの各画素毎のデータを加算して分割データの画素数で除算したものに寄与率を乗算した（或いは乗算しない）データを出力値とするテーブル値が設定される例について説明したが、これに限定されない。例えば、分割データの各画素毎のデータを加算した１画素分のデータであって、分割データの画素数で除算もせず寄与率も乗算しないデータを出力値とするテーブル値が設定されていてもよい。この場合には、合成方法が上記と異なる。具体的には、第２変換処理部４６は、第２変換テーブル４４を用いて変換されて得られたｋ個のデータの各々を加算して１／Ｎを乗算し、主走査方向に１／Ｎの縮小率で縮小された１画素のデータを求める。この場合の合成方法（合成方法３と呼称する）は、下記の数式（３）で表せる。
【００５６】
【数３】
0005887809.tif 000004
【００５７】
このように、第２変換テーブル４４のテーブル値の生成方法に応じて、合成方法が異なる。
【００５８】
ところで、第２変換テーブル４４はｋ個用意してもよいし、場合によっては、それよりも少なくすることもできる。例えば、分割数ｋがＮの約数の場合、Ｎ画素のデータをｋ個の分割データに分割したときの分割データの各々に含まれる画素数は、Ｎをｋで除算（Ｎ／ｋ）したときの商と同じ画素数とすることができる。この場合は、分割データに含まれる画素数に対応した少なくとも１つの変換テーブルを第２変換部４０で用いる第２変換テーブル４４として用意すればよい。なお、第２変換テーブル４４としては、１つの変換テーブルを用意し、共通に使用してもよく、２〜ｋ個の変換テーブルを用意し、このうちの少なくとも１つの変換テーブルを共通に使用してもよい。
【００５９】
一方、分割数ｋがＮの約数でない場合、Ｎ画素のデータをｋ個の分割データに分割したときの１つの分割データには、Ｎをｋで除算したときの余りと同じ個数の画素が含まれ、残りの分割データの各々に商と同じ画素数が含まれるようにすることができる。この場合は、商と同じ画素数に対応した第２変換テーブル４４、及び余りと同じ画素数に対応した第２変換テーブル４４の少なくとも２つの第２変換テーブル４４を用意する必要がある。商と同じ画素数が含まれる分割データが複数生じた場合には、商と同じ画素数が含まれる分割データに対しては、上記の分割数ｋがＮの約数の場合と同様に、１つの変換テーブルを用意して共通に使用しても良く、２〜ｋ個の変換テーブルを用意し、少なくとも１つの変換テーブルを共通に使用してもよい。
【００６０】
なお、変換テーブルのテーブル値の生成方法についての具体例は後述する。
【００６１】
次に、処理制御部３０について説明する。処理制御部３０は、処理パラメータ（Ｎ，Ｂｉ，Ｂｏ，Ｃｉ，Ｃｏ）から定まる第１変換テーブル３６の容量から、第１変換部３２及び第２変換部４０のどちらで画像データを画像処理するかを選択し、選択した変換部に対して処理パラメータ、及び画像データを入力して画像処理を開始させる。ここで、処理制御部３０により行われる選択処理ルーチンについて説明する。図５は、選択処理ルーチンの流れを示すフローチャートである。
【００６２】
まず、ステップ１００において、以下の数式（４）から第１変換部３２で用いられる第１変換テーブル３６のサイズ（テーブル容量）Ｔｓ（本実施の形態ではＴｓの単位はバイトとするが、ビットであってもよい）を計算する。ここでは、第１変換部３２で変換処理する際に用いられる変換テーブルのテーブル容量をα＝１として計算する。
【００６３】
Ｔｓ＝（α×Ｂｏ×Ｃｏ／８）×２＾（α×Ｎ×Ｂｉ×Ｃｉ）      ・・・（４）
ここで、「＾」は、べき乗の記号であり、２＾（α×Ｎ×Ｂｉ×Ｃｉ）は、２の（α×Ｎ×Ｂｉ×Ｃｉ）乗を示す。
【００６４】
ここで、縮小率１／Ｎ、入力ビット数Ｂｉ及び出力ビット数Ｂｏは操作パネル１８から利用者により予め指定され、入力チャンネル数Ｃｉ及び出力チャンネル数Ｃｏは、操作パネル１８から予め指定された入出力色空間の種類により特定されるものである。なお、これら処理パラメータの少なくとも１つが画像処理装置１０に予め設定されていてもよい。
【００６５】
次に、ステップ１０２では、上記計算したテーブル容量Ｔｓと予め定められた閾値とを比較し、Ｔｓが閾値未満であれば、画像処理させる変換部として、第１変換部３２を選択し、第１変換部３２に入力する処理パラメータの１つであるαを求めるため、ステップ１０４以降の処理を行う。ステップ１０４では、α＝２に設定し、ステップ１０６で、テーブル容量Ｔｓを上記数式（４）を用いて再計算する。
【００６６】
ステップ１０８では、再計算したテーブル容量Ｔｓが上記閾値未満であれば、αに１を加算して、ステップ１０６に戻り、上記処理を繰り返す。また、ステップ１０８において、再計算したテーブル容量Ｔｓが閾値以上となった場合には、ステップ１１２で、αから１を減算してテーブル容量Ｔｓが閾値以上となる１つ前のαに戻し、このαの値を第１変換部３２に入力される処理パラメータの出力画素数αの値として設定する。すなわち、ステップ１０４〜ステップ１１２により、テーブル容量Ｔｓが閾値未満となるαの中で最大のαの値が求められる。
【００６７】
そして、ステップ１１４において、第１変換部３２でテーブル値生成及び変換処理が行われるように、第１変換部３２に対して処理パラメータ（Ｎ，Ｂｉ，Ｂｏ，入出力色空間の種類，α）及び画像データを入力する。
【００６８】
一方、ステップ１０２において、テーブル容量Ｔｓが閾値以上となった場合には、画像処理させる変換部として第２変換部４０を選択し、第２変換部４０に入力する処理パラメータの１つであるｋを求めるため、ステップ１２０以降の処理を行う。ステップ１２０では、まず、ｋ＝２に設定し、ステップ１２２で、画素数Ｎをｋ個の分割画素数に分割する。
【００６９】
ここで、分割方法の一例を説明する。１番目からｋ−１番目までの分割画素数Ｎ１〜Ｎｋ−１は、以下の数式（５）で表わされるように、Ｎをｋで除算することにより求める。ここでは、除算結果は、小数点以下切り捨てとするが、切り上げでもよい。
【００７０】
Ｎ１＝Ｎ２＝Ｎ３・・・Ｎｋ−１＝Ｎ／ｋ      ・・・（５）
【００７１】
次に、ｋ番目の分割画素数Ｎｋについては、以下の数式（６）により求める。
【００７２】
Ｎｋ＝Ｎ−（Ｎ１＋Ｎ２＋・・・Ｎｋ−１）      ・・・（６）
【００７３】
ここで具体例を挙げると、ｋ＝２である場合には、Ｎ１＋Ｎ２＝ＮとなるようにＮをＮ１，Ｎ２の２つに分割する。具体的には、Ｎ１＝Ｎ／２（切り捨て）、Ｎ２＝Ｎ−Ｎ１としてもよい。また、Ｎ１＝Ｎ／２（切り上げ），Ｎ２＝Ｎ−Ｎ１でも良い。
【００７４】
また、分割の方法は、上記例に限定されず、Ｎ１〜Ｎｋのそれぞれが異なる画素数となるように分割してもよい。いずれの場合であっても、Ｎ＝Ｎ１＋Ｎ２＋Ｎ３・・・Ｎｋとなり、且つ各々が整数となるように分割する。また、分割画素数Ｎ１〜Ｎｋの各々が、１画素以上となるように分割する。
【００７５】
ステップ１２４では、テーブル容量Ｔｓを再計算する。ここでは、第２変換部４０で用いられる第２変換テーブル４４の総テーブル容量を計算する。ｋ個の分割データに対応する第２変換テーブル４４の各々を互いに異なるテーブルとする場合には、以下の数式（７）によりテーブル容量が計算される。
【００７６】
【数４】
0005887809.tif 000005
【００７７】
なお、画素数が等しい分割データについては共通の第２変換テーブル４４を用いることができる。例えば、前述の分割方法の一例として説明した分割方法でＮを分割した場合において、Ｎ１〜ＮＫが等しい場合（すなわち、Ｎがｋで割り切れる場合）には、本実施の形態では、第２変換テーブル４４は１つですむ。従って、以下の数式（８）を用いてＴｓを計算する。
【００７８】
Ｔｓ＝（Ｂｏ×Ｃｏ／８）×２＾（（Ｎ／Ｋ）×Ｂｉ×Ｃｉ）      ・・・（８）
【００７９】
なお、Ｎ１〜ＮＫが等しい場合であっても、互いに異なる第２変換テーブル４４を生成するようにしてもよい。例えば、Ｎ＝８で、Ｎ１＝Ｎ２＝４として２つの分割データについて共通の第２変換テーブル４４を用いて変換して得られたデータを合成すると、偶数値のデータしか得られないことがある。そこで、例えば、２種類の第２変換テーブル４４を生成し、一方の第２変換テーブル４４の出力値については、寄与率で乗算する際に小数点以下切り捨てで処理して求め、他方の第２変換テーブル４４の出力値については、寄与率で乗算する際に小数点以下切り上げで処理して求める等、２種類の第２変換テーブル４４を生成するようにしてもよい。
【００８０】
また、前述の分割方法の一例として説明した分割方法でＮを分割した場合において、Ｎ１〜Ｎｋ−１と、Ｎｋとが異なる場合には、本実施の形態では、以下の数式（９）を用いてテーブル容量Ｔｓを再計算する。
【００８１】
【数５】
0005887809.tif 000006
【００８２】
すなわち、ここでは、Ｎ１〜Ｎｋ−１に対応する分割データに対して用いる第２変換テーブル４４を共通の第２変換テーブル４４とし、当該第２変換テーブル４４のテーブル容量と、Ｎｋに対応する分割データに対して用いる第２変換テーブル４４のテーブル容量との合計値を、全体のテーブル容量Ｔｓとして計算している。
【００８３】
ステップ１２６では、再計算したテーブル容量Ｔｓが閾値以上であれば、ｋに１を加算して、ステップ１２２に戻り、上記処理を繰り返す。また、ステップ１２６において、再計算したテーブル容量Ｔｓが閾値未満となった場合には、このときのｋの値を第２変換部４０に入力される処理パラメータのｋの値として設定する。そして、ステップ１３０において、第２変換部４０でテーブル値生成及び縮小・変換処理が行われるように、第２変換部４０に対して処理パラメータ（Ｎ，Ｂｉ，Ｂｏ，入出力色空間の種類，ｋ）及び画像データを入力する。
【００８４】
なお、ここでは、変換処理として、ビット数変換、及び色空間変換を行う場合のテーブル容量Ｔｓを計算する例について説明したが、例えば、変換処理において、色空間変換を行わない場合には、色空間変換を行わない場合のテーブル容量Ｔｓを計算する。この場合、数式（４）に代えて、以下の数式（１０）を用いる。
【００８５】
Ｔｓ＝（α×Ｂｏ／８）×２＾（α×Ｎ×Ｂｉ）      ・・・（１０）
【００８６】
また、数式（７）に代えて、以下の数式（１１）を用いる。
【００８７】
【数６】
0005887809.tif 000007
【００８８】
また、数式（９）に代えて、以下の数式（１２）を用いる。
【００８９】
【数７】
0005887809.tif 000008
【００９０】
また、ビット数変換は行わず、色空間変換を行う場合には、上記（１０）〜（１２）の式において、ＢｏをＣｏに置き換え、ＢｉをＣｉに置き換えた式を用いればよい。また、変換テーブルにより、面点変換処理はテーブル容量には影響しないため、テーブル容量の計算において考慮しなくてもよい。
【００９１】
次に、具体的な例を挙げて、変換部の選択、及び処理パラメータ（α及びｋ）の計算方法について説明する。
【００９２】
（具体例１）
【００９３】
縮小率：１／２、入力画像データの階調数：２（１ビット）、出力画像データの階調数：２５６（８ビット）、入力色空間：ＣＭＹＫ、出力色空間：ＹＣｂＣｒ、の場合には、処理パラメータは、（Ｎ，Ｂｉ，Ｂｏ，Ｃｉ，Ｃｏ）＝（２，１，８，３，３）となる。なお、ここでは、ＣＭＹＫにおけるＫをＣＭＹに重畳してＣｉ＝３にして処理するようにしている。
【００９４】
α＝１として数式（４）で計算されたテーブル容量Ｔｓが閾値未満であれば、第１変換部３２が選択されるが、α＝２としても、第１変換テーブル３６のテーブル容量は、α×Ｎ×Ｂｉ×Ｃｉ＝１２ビット入力で、かつα×Ｂｏ×Ｃｏ＝４８ビット出力であるため、テーブル容量は２４ＫＢとなり、十分小さい。この値が閾値より小さく、且つα＝３の場合のテーブル容量が閾値以上の場合には、α＝２として処理パラメータが設定される。
【００９５】
（具体例２）
【００９６】
縮小率：１／８、入力画像データの階調数：２（１ビット）、出力画像データの階調数：２５６（８ビット）、入力色空間：ＣＭＹＫ、出力色空間：ＹＣｂＣｒ、の場合には、処理パラメータは（Ｎ，Ｂｉ，Ｂｏ，Ｃｉ，Ｃｏ）＝（８，１，８，３，３）となる。ＣＭＹＫにおけるＫの処理は、上記と同様である。
【００９７】
α＝１として数式（４）で計算されたテーブル容量は、（２４ビット入力／３バイト出力＝）４８ＭＢとなる。これが閾値以上であれば、テーブル容量としては大きすぎるため、第２変換部４０を選択する。
【００９８】
第２変換部４０を選択する場合には、ｋの値を計算する必要があるが、ｋ＝２として数式（７）によりテーブル容量を再計算（この場合には、２つの分割データが１つの変換テーブルを共通に用いるものとする）すると、第２変換テーブル４４は、Ｎ×Ｂｉ×Ｃｉ／ｋ＝１２ビット入力かつＢｏ×Ｃｏ＝２４ビット出力で、テーブル容量＝１２ＫＢとなり、十分に小さい。ｋ＝２とした場合に計算されたテーブル容量が閾値より小さい場合には、ｋ＝２として処理パラメータが設定される。
【００９９】
（具体例３）
【０１００】
縮小率：１／６、入力画像データの階調数：１６（４ビット）、出力画像データの階調数：２５６（８ビット）、入力色空間：Ｇｒｅｙ、出力色空間：Ｇｒｅｙ、の場合には、処理パラメータは、（Ｎ，Ｂｉ，Ｂｏ，Ｃｉ，Ｃｏ）＝（６，４，８，１，１）となる。
【０１０１】
α＝１として数式（４）で計算されたテーブル容量は、第１変換テーブル３６は、α×Ｎ×Ｂｉ×Ｃｉ＝２４ビット入力かつα×Ｂｏ×Ｃｏ＝８ビット出力で、テーブル容量＝１６ＭＢとなる。
【０１０２】
仮に、装置に１６ＭＢの変換テーブルを記憶するために十分なメモリ容量があり、速度優先である場合には、大きな閾値を設定して第１変換部３２が選択されるようにする。一方、使用可能なメモリ容量が少ない場合には、速度を犠牲にして、第２変換部４０が選択されるように、小さな閾値を設定する。なお、ｋ＝２とした場合に生成される第２変換テーブル４４は、テーブル容量＝４ＫＢとなり、十分小さい。
【０１０３】
すなわち、例えば、メモリ容量の削減より速度を優先したい第１の場合には、閾値を大きくし、速度を犠牲にしてメモリ容量の削減を優先させたい第２の場合には、第１の場合よりも閾値を小さくするようにしてもよい。
【０１０４】
次に、図６を参照して、第１変換部３２による処理の具体例を説明する。図６では、第１変換部３２に、処理パラメータとして、（Ｎ，Ｂｉ，Ｂｏ，入出力色空間の種類，α）＝（２，１，８，ＣＭＹＫ→ＹＣｂＣｒ，２）が入力された場合を例に挙げる。この場合、第１変換テーブル３６により一括で変換処理される出力画素数は２画素（α画素）であり、１／２の縮小率で平均値縮小が行われるため、出力２画素を一度の変換処理で生成するためには、４画素分の入力画像データが必要となる。更にまた、なお、入出力色空間の種類は、入力側がＣＭＹＫ、出力側がＹＣｂＣｒであるため、Ｃｉ＝３（ＫをＣＭＹ成分に重畳する）、Ｃｏ＝３となる。
【０１０５】
従って、第１テーブル値生成部３４は、図６の（４）に示すように、入力値（入力インデックスともいう）が、４画素×１ビット×３チャンネル＝１２ビットであり、出力値は、２画素×８ビット×３チャンネル＝６バイトの第１変換テーブル３６を生成する。なお、ここでは、変換処理としてビット数変換、及び色空間変換の他、面順次形式の入力画像データを点順次形式の出力画像データに変換する面点変換も行うため、これらの変換を行うための変換テーブルが生成される。
【０１０６】
第１変換処理部３８は、図６の（１）に示すように、入力画像データが、１画素が２階調（１ビット）で表わされたＣＭＹＫ色空間の面順次形式の画像データである場合に、まず、（２）に示すように、Ｋ成分をＣＭＹの各成分に重畳する。ここでは、Ｋ成分とＣＭＹ各色成分とのＯＲ処理を行うことにより、Ｋ成分を重畳するようにしている。続いて、第１変換処理部３８は、（３）に示すように、Ｃ成分４画素、Ｍ成分４画素、Ｙ成分４画素の各画像データをＣＭＹの順に連結させて１２ビットのデータを生成する。そして、第１変換処理部３８は、（４）に示す第１変換テーブル３６から、当該生成した１２ビットのデータに相当する入力値に対応して記憶された出力値を取得する。取得した６バイトの出力値は（５）に示すように、画像出力部１６に出力される。
【０１０７】
次に、図７を参照して、第２変換部４０による処理の具体例を説明する。図７では、第２変換部４０に、処理パラメータとして、（Ｎ，Ｂｉ，Ｂｏ，入出力色空間の種類，ｋ）＝（８，１，８，ＣＭＹＫ→ＹＣｂＣｒ，２）が入力された場合を例に挙げる。この場合、１／８の縮小率で平均値縮小を行うにあたり、出力１画素を生成するためには、８画素分の入力画像データが必要となるが、第２変換部４０では、入力画像データを分割して各々の分割データについて個別に変換し、これらを合成して１画素分の出力画像データを得るため、ここでは、ｋ＝２であることから、８画素／２＝４画素分の入力画像データを第２変換テーブル４４により一括して変換処理するようにしている。一方、入出力色空間の種類は、入力側がＣＭＹＫ、出力側がＹＣｂＣｒであるため、Ｃｉ＝３（ＫをＣＭＹ成分に重畳する）、Ｃｏ＝３となる。
【０１０８】
従って、第２テーブル値生成部４２は、図７の（５）に示すように、入力インデックスが、４画素×１ビット×３チャンネル＝１２ビットであり、出力値は、１画素×８ビット×３チャンネル＝３バイトの変換テーブルが生成される。また、この例では、各分割データについて共通の第２変換テーブル４４を使用して変換するため、第２変換テーブル４４として１つの変換テーブルが生成される。なお、ここでは、変換処理として、ビット数変換、及び色空間変換の他、面点変換も行うため、これら全ての変換を行うための第２変換テーブル４４が生成される。また、第２変換テーブル４４の出力値を寄与率に応じた値とする場合には、第２変換テーブル４４の出力値が１／２の寄与率となるように生成される。
【０１０９】
第２変換処理部４６は、図７の（１）に示すように、入力画像データの１画素が２階調（１ビット）で表わされたＣＭＹＫ色空間の面順次形式の画像データである場合に、まず、（２）に示すように、Ｋ成分をＣＭＹの各成分に重畳する。ここでも、Ｋ成分とＣＭＹ各色成分とのＯＲ処理を行うことにより、Ｋ成分を重畳するようにしている。続いて、第２変換処理部４６は、ＣＭＹの各色成分の連続する８画素分の入力画像データを２個に分割した分割データを生成する。具体的には、該８画素分の入力画像データのうち前半４画素について、（３）に示すように、Ｃ成分４画素、Ｍ成分４画素、Ｙ成分４画素の各ビット列をＣＭＹの順に連結させて１２ビットの分割データを生成すると共に、後半４画素についても、（４）に示すように、Ｃ成分４画素、Ｍ成分４画素、Ｙ成分４画素の各ビット列を連結させて１２ビットの分割データを生成する。
【０１１０】
そして、第２変換処理部４６は、図７の（５）に示す第２変換テーブル４４から、上記生成した前半部分１２ビットの分割データに相当する入力値に対応して記憶された出力値を取得すると共に、上記生成した後半部分１２ビットの分割データに対応して記憶された出力値を取得し、（６）に示すように、取得した３バイトの出力値の各々を合成し、該合成して得られた１画素分の出力画像データを（７）に示すように、画像出力部１６に出力する。
【０１１１】
なお、第２変換処理部４６で面点変換処理が行われない場合、例えば入力画像データが点順次形式であって、出力画像データも点順次式である場合には、上述した連結処理は不要であり、８画素分の入力画像データの先頭から４画素毎に画像データを読み出し、読み出された画像データ（分割データ）の各々について第２変換テーブル４４を用いて変換処理すればよい。この場合、当然ながら、第２変換テーブル４４は、点順次形式の入力値から点順次形式の出力値に変換するための変換テーブルとなる。なお、第１変換処理部３８において面点変換処理が行われない場合も同様に、上記連結処理せずに、第１変換テーブル３６による変換を行って出力すればよい。
【０１１２】
次に、図８を参照して、第２変換部４０による処理の他の具体例を説明する。この例では、２種類の第２変換テーブル４４が生成される。
【０１１３】
図８では、第２変換部４０に、処理パラメータとして、（Ｎ，Ｂｉ，Ｂｏ，入出力色空間の種類，ｋ）＝（５，２，８，ＣＭＹＫ→ＹＣｂＣｒ，３）が入力された場合を例に挙げる。この場合、１／５の縮小率で平均値縮小を行うにあたり、出力１画素を生成するためには、５画素分の入力画像データが必要となるが、この例では、出力１画素の分割処理数３であることから、５画素分の入力画像データを２画素、２画素、１画素の分割データにそれぞれ分割し、各々に対応する第２変換テーブル４４で各々を一括して変換処理し、これを合成して１画素分の出力値を得る。ここで、２画素の分割データの各々については、共通の変換テーブルを用いることとすると、２画素の分割データに対応する第２変換テーブル４４（以下、第２変換テーブルＡ）、及び１画素の分割データに対応する第２変換テーブル４４（以下、第２変換テーブルＢ）を生成する必要がある。なお、入出力色空間の種類は、入力側がＣＭＹＫ、出力側がＹＣｂＣｒであるため、Ｃｉ＝３（ＫをＣＭＹ成分に重畳する）、Ｃｏ＝３となる。
【０１１４】
従って、第２テーブル値生成部４２により、図８の（６）に示すように、入力インデックスが（２画素×２ビット×３チャンネル）＝１２ビットであり、出力値は（１画素×８ビット×３チャンネル）＝３バイトの第２変換テーブルＡが生成されると共に、図８の（７）に示すように、入力インデックスが（１画素×２ビット×３チャンネル）＝６ビットであり、出力値は（１画素×８ビット×３チャンネル）＝３バイトの第２変換テーブルＢが生成される。
【０１１５】
なお、ここでは、変換処理として、ビット数変換、色空間変換の他、面点変換も行うため、これら全ての変換を行うための第２変換テーブルＡ，Ｂが生成される。また、第２変換テーブルＡ，Ｂの各出力値を寄与率に応じた値とする場合には、第２変換テーブルＡの出力値が２／５の寄与率となるように生成され、第２変換テーブルＢの出力値は１／５の寄与率となるように生成される。
【０１１６】
第２変換処理部４６は、図８の（１）に示すように、入力画像データが、１画素が４階調（２ビット）で表わされたＣＭＹＫ色空間の面順次形式の画像データである場合に、まず、（２）に示すように、Ｋ成分をＣＭＹの各成分に重畳する。ここでは、Ｋ成分とＣＭＹ各色成分との２ビット加算処理（但し、１１を超えたら１１）を行うことにより、Ｋ成分を重畳するようにしている。続いて、第２変換処理部４６は、ＣＭＹの各色成分毎の連続する５画素分の入力画像データを３個に分割した分割データを生成する。具体的には、５画素分の入力画像データのうち、（３）に示すように、Ｃ成分、Ｍ成分、Ｙ成分の各々の先頭から２画素分のビット列をＣＭＹの順に連結させて１２ビットの分割データ（以下、データａ）を生成し、それに続く２画素分のビット列についても同様に連結させて、（４）に示すように１２ビットの分割データを生成し（以下、データｂ）、それに続く１画素分のビット列についても同様に連結させて、（５）に示すように、６ビットの分割データ（以下、データｃ）を生成する。
【０１１７】
そして、第２変換処理部４６は、図８の（６）に示す第２変換テーブルＡを参照して、上記生成したデータａに相当する入力値に対応して記憶された出力値を取得すると共に、上記生成したデータｂに相当する入力値に対応して記憶された出力値を取得し、（７）に示す第２変換テーブルＢを参照して、上記生成したデータｃに相当する入力値に対応して記憶された出力値を取得する。そして、（８）に示すように、取得された３つの出力値の各々を合成し、該合成して得られた１画素分の出力画像データを（９）に示すように、画像出力部１６に出力する。
【０１１８】
次に、第２テーブル値生成部４２による第２変換テーブル４４の生成処理の一例について図９を参照しながら説明する。ここでは、図７と同様に、第２変換部４０に、処理パラメータとして、（Ｎ，Ｂｉ，Ｂｏ，入出力色空間の種類，ｋ）＝（８，１，８，ＣＭＹＫ→ＹＣｂＣｒ，２）が入力された場合を例に挙げる（図９（Ａ）も参照。）。
【０１１９】
前述したように、１／８の縮小率で平均値縮小を行うため、出力１画素を生成するためには、８画素分の入力画像データが必要となるが、変換処理においては、８画素分の入力画像データを２分割して各々個別に変換し、これらを合成して１画素分の出力画像データを得るため、１２ビットの入力インデックス、３バイトの出力値の第２変換テーブル４４を生成する。この第２変換テーブル４４を生成するときの生成プログラム（擬似コード）の一例を図９（Ｂ）に示す。
【０１２０】
１２ビットの入力値は、０から４０９５までの値を取り得る。従って、０〜４０９５までの各々の入力値に対応した出力値を求める必要がある。そこで、図９（Ｂ）の符号５０を付した部分では、入力値を示す変数ｉを０から４０９５まで変化させ、以下の処理を各ｉについて繰り返させている。
【０１２１】
続く符号５２で示した部分は、入力値ｉに含まれるＣＭＹの各成分毎の１の数をカウントして２５５を乗算し（ビット数変換）、これを４で除算する処理を行っている。
【０１２２】
以下、Ｃ成分についての演算式、
in_c=255*((i & 0xf00)の中の画素値１の数(Cyan))/4
を、符号５２で示した３つの演算式を代表して説明する。
【０１２３】
図７を参照して説明したように、この変換処理では、Ｃ成分４画素、Ｍ成分４画素、Ｙ成分４画素の各入力画像データをＣＭＹの順に連結させて１２ビットのデータを生成して変換テーブルにより変換処理を行う。従って、１２ビットのデータの先頭４ビットはＣ成分、それに続く４ビットはＭ成分、最後の４ビットはＹ成分となる。そこで、１２ビットの「ｉ」と、先頭４ビットが１で続く８ビットが０の「０ｘｆ００」（１６進数表示）とのＡＮＤをとる（ｉ＆０ｘｆ００）ことにより、Ｃ成分のみがそのままの形で得られ、Ｍ成分、Ｙ成分にあたる後半８ビットは全て０になる。そしてＣ成分４ビット中の「１」の数をカウントし、これに２５５を乗算している。これは、１ビット（２階調）を８ビット（２５６階調）に変換する場合、２階調における「０」は、２５６階調では「０」に相当し、２階調における「１」は、２５６階調の「２５５」に相当することによる。
【０１２４】
更に上記演算式では、２階調の値を２５６階調に変換した後、４で除算している。これは、前述したように、ＣＭＹ各色成分毎に４画素分を１度に処理するようにしており、縮小率１／８での平均値縮小を実現するため、ここで１／４している。
【０１２５】
符号５２に示した、Ｍ成分（in_m)、Ｙ成分(in_y)についての演算式も、ｉとＡＮＤをとる値が異なるのみであり、上記と同様であるため、説明を省略する。
【０１２６】
次に符号５４で示した行では、関数cmy2ycbcr()を用いてCMY色空間からYCbCr色空間への変換を行う。この関数は、色空間の定義により規定される一般的な変換式、或いはデバイスの色再現に合わせて修正した変換方式（変換式や多次元テーブル処理など）である。なお、符号５２で求めたin_c、in_m、in_yが、関数cmy2ycbcrに与えられる情報であり、該情報を上記変換式等により変換して求められたＹ成分、Ｃｂ成分、Ｃｒ成分の各々の値がout_y（Ｙ成分）、out_cb（Ｃｂ成分）、out_cr（Ｃｒ成分）にセットされる。
【０１２７】
符号５６で示した３行では、関数cmy2ycbcr()で求めたout_y、out_cb、out_crの各々を２で除算（寄与率１／２を乗算）した値を、tableという名称の２次元配列に格納している。
【０１２８】
以上説明したように、第２変換テーブル４４の入力インデックスｉ（０〜４０９５）の各々の出力値を求めて、二次元配列に格納することにより、第２変換テーブル４４（のテーブル値）が生成される。こうして求めたテーブル値の第２変換テーブル４４を用いる場合には、合成部４６Ｂは、前述した合成方法１で合成する。
【０１２９】
上記では、主走査方向に１／８の縮小を行う場合に、１／４（符号５２）及び１／２（符号５６）の乗算処理を行って出力値を求める例について説明したが、図９（Ｃ）の擬似コードに示すように、これら除算処理を行わずに出力値を求め、第２変換テーブル４４を生成するようにしてもよい。
【０１３０】
この場合、図９（Ｃ）における変換プログラムの関数 cmy2ycbcr()では、値域/定義域がそれぞれ（0〜255ではなく）0〜255*4であるものとして変換を行う。また、table[i][0]、table[i][1]、table[i][2]はそれぞれ、少なくとも上記定義域の値が格納できるようにビット数（すなわち、各配列要素のサイズ、容量）を広げて確保して、上記処理の値を格納する。こうして求めたテーブル値の第２変換テーブル４４を用いる場合には、合成部４６Ｂは、前述した合成方法３で合成する。すなわち、合成部４６Ｂは、第２変換テーブル４４により変換されて得られたデータを加算し、これを８で除算して、最終的な１画素分の出力画像データを生成する。
【０１３１】
また、符号５２部分における各演算式で１／４の乗算は行い、符号５６部分における各演算式で１／２の乗算は行わずに第２変換テーブル４４を生成してもよい。この場合には、第２変換処理部４６は、このように生成された変換テーブルを用いて変換された２つのデータに１／２を乗算して加算することにより、最終的な１画素分の出力画像データを生成する。或いは、この例では、寄与率が全て等しいため、第２変換テーブル４４による変換処理後のデータの各々を加算してから１／２を乗算してもよい。すなわち、この場合には、前述した合成方法２で合成される。
【０１３２】
なお、副走査方向についても１／Ｎｙの縮小率で平均値縮小したい場合などは、以下のように処理する。
【０１３３】
図９（Ｂ）に示す処理プログラムで第２変換テーブル４４を生成した場合には、該生成した第２変換テーブル４４により変換されて得られたデータを加算し、更にそれら加算値を副走査方向にＮｙライン分加算し、該加算して得られた結果をＮｙで除算する。
【０１３４】
また、図９（Ｃ）に示す処理プログラムで第２変換テーブル４４を生成した場合には、該生成した第２変換テーブル４４により変換されて得られたデータを加算し、更にそれら加算値を副走査方向にＮｙライン分加算し、該加算して得られた結果をＮ（＝８）×Ｎｙで除算する。
【０１３５】
なお、第１テーブル値生成部３４の変換テーブルの生成方法については、α×Ｎ画素分の入力値と、第１変換処理部３８で行われる変換処理後のα×１画素分の出力値とが対応付けられた変換テーブルを生成すればよいため、ここでは詳細な説明を省略する。
【０１３６】
ところで、上記実施の形態では、第１変換部３２及び第２変換部４０により縮小処理及び変換処理が行われ、該変換処理には、ビット数変換（階調変換）、面点変換、及び色空間変換が含まれる例について説明したが、これに限定されるものではなく、変換処理には、ビット数変換（階調変換）及び色空間変換の少なくとも一方が含まれていればよい。
【０１３７】
また、上記実施の形態では、入力画像データが面順次形式の画像データである場合を例に挙げて説明したが、例えば、色空間の各チャンネル毎に互いに異なるファイルで構成された画像データであってもよい。このようにチャンネル毎に複数のファイルで構成された入力画像データであっても、面順次形式と同等のデータとして取り扱われ、上記と同様に点順次形式に変換して出力される。
【０１３８】
また、上記実施の形態では、処理制御部３０が変換部を選択して変換処理させる例について説明したが、第１変換部３２を設けずに、第２変換部４０だけで変換処理させるように構成してもよい。この場合には、処理制御部３０は、ステップ１２０からステップ１３０までの処理を行って、ｋの値を求め、第２変換部４０に対して処理パラメータを入力するようにする。また、この場合において、縮小率等を固定とする場合には、その都度第２変換テーブル４４を生成する必要がないため、第２テーブル値生成部４２を設けず、第２変換テーブル４４を予め生成し装置に設定しておく（すなわち、第２変換テーブル４４を固定とする）ようにしてもよい。
【０１３９】
また、上記実施の形態では、画像入力部１４から入力された画像データに変換処理を施して画像出力部１６に出力する例について説明したが、これに限定されるものではなく、例えば、既に画像処理装置１０内に設けられた記憶装置に記憶されている画像データに変換処理を施すものであってもよい。また変換処理後の出力先も画像出力部１６に限定されるものではなく、例えば、画像処理装置１０内に設けられた記憶装置に出力して記憶させるようにしてもよいし、通信手段を介して接続された他の装置に出力するようにしてもよい。
【０１４０】
本実施の形態で説明した画像処理装置１０を、例えば、デジタルカメラやスキャナなどから入力された入力画像に対して、サムネイル（画像を縮小して表現した画像のこと）を生成して表示する際に適用してもよいし、また、コンピュータ上のフォルダや、デスクトップ等に、画像データや文書データを示すアイコンをサムネイルで表示する際に適用してもよい。また、上記画像処理装置１０をコピー、プリント、スキャン、ファックス等の複数の機能を有する複合機とし、セキュリティ確保のためにどのような文書が処理されたかを縮小イメージとして蓄積或いは表示する場合に、ログ画像の生成処理に適用するようにしてもよい。更にまた、印刷用に網がけされた画像を確認する表示装置において、高解像度かつ２階調の印刷用画像から（全体を確認するための）低解像度かつ多階調（２階調より多い階調数）の縮小画像を生成する装置として適用してもよい。
【０１４１】
更にまた、サーバなどに大量に格納された（高解像度の）画像を、端末上で複数毎まとめてサムネイル表示するような場合に、サーバでサムネイル生成する処理に適用してもよい。
【０１４２】
また、上記では画像処理装置の変換処理プログラムの一例としてのプログラムが装置制御部１２の記憶部１２Ｃに追加記憶される態様を説明したが、本発明に係る画像処理装置の変換処理プログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体に記録されている形態で提供することも可能である。また、上記実施の形態では、処理制御部３０、第１変換部３２、及び第２変換部４０をＣＰＵがプログラムを実行することにより実現する例について説明したが、ハードウェアにより実現するようにしてもよい。
【符号の説明】
【０１４３】
１０  画像処理装置
１２  装置制御部
１２Ａ  ＣＰＵ
１２Ｂ  メモリ
１２Ｃ  記憶部
１４  画像入力部
１６  画像出力部
１８  操作パネル
２０  バス
３０  処理制御部
３２  第１変換部
３４  第１テーブル値生成部
３６  第１変換テーブル
３８  第１変換処理部（非分割変換処理部）
４０  第２変換部
４２  第２テーブル値生成部
４４  第２変換テーブル
４６  第２変換処理部
４６Ａ  分割変換処理部
４６Ｂ  合成部
【図１】
0005887809.tif 000009
【図２】
0005887809.tif 000010
【図３】
0005887809.tif 000011
【図４】
0005887809.tif 000012
【図５】
0005887809.tif 000013
【図６】
0005887809.tif 000014
【図７】
0005887809.tif 000015
【図８】
0005887809.tif 000016
【図９】
0005887809.tif 000017