(57)【特許請求の範囲】
【請求項１】
入力階調値と出力階調値とがｍビット（ただし、ｍは自然数）である参照データの出力階調値を、ｎ（ただし、ｎはｍ＞ｎを満たす自然数）ビットになるように下位側にビットシフトさせる第１のステップと、
前記第１のステップにおいてビットシフトされたｎビットの出力階調値と当該出力階調値の直前にビットシフトされたｎビットの出力階調値との差分が決められた閾値以上であるか判断する第２のステップと、
前記第２のステップにおいて前記差分が前記閾値以上である旨の判断が決められた回数連続した場合に、前記参照データのｍビットの値を出力階調値として選択し、それ以外の場合に前記ビットシフトされたｎビットの値を出力階調値として選択する第３のステップと
を有することを特徴とする変換テーブルの作成方法。
【請求項２】
多階調の画像データに対して階調補正処理を行う画像処理装置であって、
前記画像データを入力する入力手段と、
入力階調値と、当該入力階調値に対して前記階調補正処理を行った場合の出力階調値との組み合わせを各階調について記述し、決められた第１の階調領域においては、１の入力階調値に対して１の出力階調値を対応付け、前記第１の階調領域と異なる第２の階調領域においては、連続する２以上の入力階調値に対して同一の出力階調値を対応付けた変換テーブルであって、前記入力階調値と前記出力階調値とがｍビット（ただし、ｍは自然数）である参照データの出力階調値を、ｎ（ただし、ｎはｍ＞ｎを満たす自然数）ビットになるように下位側にビットシフトさせ、当該ビットシフトされたｎビットの出力階調値と当該出力階調値の直前にビットシフトされたｎビットの出力階調値との差分が決められた閾値以上であるか判断し、前記差分が前記閾値以上である旨の判断が決められた回数連続した場合に、前記参照データのｍビットの値を出力階調値として選択し、それ以外の場合に前記ビットシフトされたｎビットの値を出力階調値として選択して作成された変換テーブルを記憶する記憶手段と、
前記記憶手段に記憶された変換テーブルを用いて、前記入力手段により入力された画像データに対して前記階調補正処理を行う階調補正手段と、
前記階調補正手段により前記階調補正処理が行われた画像データを出力する出力手段と
を備えることを特徴とする画像処理装置。
【請求項３】
前記変換テーブルの前記第２の階調領域の出力階調値を、その前後の出力階調値を参照して補正する補正手段を備え、
前記階調補正手段は、
前記補正手段により補正された変換テーブルを用いて、前記入力手段により入力された画像データに対して前記階調補正処理を行う
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記変換テーブルの出力階調値に対して、その前後の出力階調値を参照してスムージング処理を行うスムージング処理手段を備え、
前記階調補正手段は、
前記スムージング処理手段によりスムージング処理された変換テーブルを用いて、前記入力手段により入力された画像データに対して前記階調補正処理を行う
ことを特徴とする請求項２に記載の画像処理装置。
【請求項５】
入力される画像データに応じた複数の変換テーブルを備え、
前記階調補正手段は、
入力される画像データに応じて前記複数の変換テーブルから一の変換テーブルを選択し、前記入力手段により入力された画像データに対して当該変換テーブルを用いて前記階調補正処理を行う
ことを特徴とする請求項２に記載の画像処理装置。
【請求項６】
自装置における複数の動作モードに応じた複数の変換テーブルを備え、
前記階調補正手段は、
前記動作モードに応じて前記複数の変換テーブルから一の変換テーブルを選択し、前記入力手段により入力された画像データに対して当該変換テーブルを用いて前記階調補正処理を行う
ことを特徴とする請求項２に記載の画像処理装置。
【請求項７】
コンピュータに階調数がｍ（ただし、ｍは自然数）である画像データに対して階調補正処理を実行させるためのプログラムであって、
前記画像データを入力する入力ステップと、
入力階調値と、当該入力階調値に対して前記階調補正処理を行った場合の出力階調値との組み合わせを各階調について記述し、決められた第１の階調領域においては、１の入力階調値に対して１の出力階調値を対応付け、前記第１の階調領域と異なる第２の階調領域においては、連続する２以上の入力階調値に対して同一の出力階調値を対応付けた変換テーブルであって、前記入力階調値と出力階調値とがｍビット（ただし、ｍは自然数）である参照データの出力階調値を、ｎ（ただし、ｎはｍ＞ｎを満たす自然数）ビットになるように下位側にビットシフトさせ、当該ビットシフトされたｎビットの出力階調値と当該出力階調値の直前にビットシフトされたｎビットの出力階調値との差分が決められた閾値以上であるか判断し、前記差分が前記閾値以上である旨の判断が決められた回数連続した場合に、前記参照データのｍビットの値を出力階調値として選択し、それ以外の場合に前記ビットシフトされたｎビットの値を出力階調値として選択して作成された変換テーブルを用いて、前記入力ステップにおいて入力された画像データに対して前記階調補正処理を行う階調補正ステップと、
前記階調補正ステップにおいて前記階調補正処理が行われた画像データを出力する出力ステップと
を実行させることを特徴とするプログラム。
【請求項８】
コンピュータに変換テーブルを作成させるためのプログラムであって、
入力階調値と出力階調値とがｍビット（ただし、ｍは自然数）である参照データの出力階調値を、ｎ（ただし、ｎはｍ＞ｎを満たす自然数）ビットになるように下位側にビットシフトさせる第１のステップと、
前記第１のステップにおいてビットシフトされたｎビットの出力階調値と当該出力階調値の直前にビットシフトされたｎビットの出力階調値との差分が決められた閾値以上であるか判断する第２のステップと、
前記第２のステップにおいて前記差分が前記閾値以上である旨の判断が決められた回数連続した場合に、前記参照データのｍビットの値を出力階調値として選択し、それ以外の場合に前記ビットシフトされたｎビットの値を出力階調値として選択する第３のステップと
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高階調の画像データに対して行う画像処理に係り、特に、高精細な階調補正を少ない記憶容量で実行するための技術に関する。
【背景技術】
【０００２】
プリンタ等の出力デバイスが高性能化するに伴い、出力する画像の再現性も大幅に向上している。この再現性の向上は、出力階調数の増加によるところが大きい。例えば、出力階調数が８ビット（２５６階調）から１０ビット（１０２４階調）に増加すると、出力階調数は４倍になり、それだけ再現できる色調が増加する。
【０００３】
また、画像の再現性の向上は、階調補正処理によっても達成される（例えば、特許文献１〜５参照）。ここで階調補正処理とは、入力された画像データの階調特性をその画像の種類や出力デバイスの特性に応じて補正することである。このような階調補正処理は、一般に、補正前後の階調値を各ステップについて１対１で対応付けた変換テーブル（ルックアップテーブル等）を用いて行われる。画像処理装置はこのような変換テーブルを複数記憶しており、必要な変換テーブルを読み出して階調補正を行う。
【特許文献１】特公平６−９３７５１号公報
【特許文献２】特開平６−８６０７１号公報
【特許文献３】特開平７−１８４０５４号公報
【特許文献４】特開２００２−１１８７４９号公報
【特許文献５】特開２００２−３４４７６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述のように、画像処理装置は画像の種類等に応じた変換テーブルを記憶する必要があり、より望ましい階調表現を実現するためには、それだけ多くの変換テーブルが必要となる。このような状況においては、出力階調数の増加は変換テーブルを記憶するために必要とする記憶容量の増加に直結する。一般に、階調数はビット単位で増加するので、階調数が２ビット分増加すれば記憶容量は４倍になり、４ビット分増加すれば記憶容量は１６倍にもなる。それゆえ、出力階調数の増加に伴い、画像処理装置のサイズや製造コストが増大するという問題がある。しかしながら、上述した特許文献１〜５に記載された従来の技術においては、出力階調数の増加に伴って生じるこのような問題に対しては、何ら対策が行われていなかった。
【０００５】
本発明は上述した事情に鑑みてなされたものであり、その目的は、必要とする記憶容量の増加を抑えつつ、画像データに対して高精細な階調補正処理を行うことを可能にする技術を提供することにある。
【課題を解決するための手段】
【０００６】
上述の目的を達成するために、本発明は、入力階調値と出力階調値とがｍビット（ただし、ｍは自然数）である参照データの出力階調値を、ｎ（ただし、ｎはｍ＞ｎを満たす自然数）ビットになるように下位側にビットシフトさせる第１のステップと、前記第１のステップにおいてビットシフトされたｎビットの出力階調値と当該出力階調値の直前にビットシフトされたｎビットの出力階調値との差分が決められた閾値以上であるか判断する第２のステップと、前記第２のステップにおいて前記差分が前記閾値以上である旨の判断が決められた回数連続した場合に、前記参照データのｍビットの値を出力階調値として選択し、それ以外の場合に前記ビットシフトされたｎビットの値を出力階調値として選択する第３のステップとを有する変換テーブルの作成方法を提供する。
【０００７】
また、上述の目的を達成するために、本発明は、多階調の画像データに対して階調補正処理を行う画像処理装置であって、前記画像データを入力する入力手段と、入力階調値と、当該入力階調値に対して前記階調補正処理を行った場合の出力階調値との組み合わせを各階調について記述し、決められた第１の階調領域においては、１の入力階調値に対して１の出力階調値を対応付け、前記第１の階調領域と異なる第２の階調領域においては、連続する２以上の入力階調値に対して同一の出力階調値を対応付けた変換テーブルであって、前記入力階調値と出力階調値とがｍビット（ただし、ｍは自然数）である参照データの出力階調値を、ｎ（ただし、ｎはｍ＞ｎを満たす自然数）ビットになるように下位側にビットシフトさせ、当該ビットシフトされたｎビットの出力階調値と当該出力階調値の直前にビットシフトされたｎビットの出力階調値との差分が決められた閾値以上であるか判断し、前記差分が前記閾値以上である旨の判断が決められた回数連続した場合に、前記参照データのｍビットの値を出力階調値として選択し、それ以外の場合に前記ビットシフトされたｎビットの値を出力階調値として選択して作成された変換テーブルを記憶する記憶手段と、前記記憶手段に記憶された変換テーブルを用いて、前記入力手段により入力された画像データに対して前記階調補正処理を行う階調補正手段と、前記階調補正手段により前記階調補正処理が行われた画像データを出力する出力手段とを備える画像処理装置を提供する。
【０００８】
また、本発明に係る画像処理装置は、前記変換テーブルの前記第２の階調領域の出力値を、その前後の出力値を参照して補正する補正手段を備え、前記階調補正手段は、前記補正手段により補正された変換テーブルを用いて、前記入力手段により入力された画像データに対して前記階調補正処理を行う構成であってもよい。
【０００９】
また、本発明に係る画像処理装置は、前記変換テーブルの出力値に対して、その前後の出力値を参照してスムージング処理を行うスムージング処理手段を備え、前記階調補正手段は、前記スムージング処理手段によりスムージング処理された変換テーブルを用いて、前記入力手段により入力された画像データに対して前記階調補正処理を行う構成であってもよい。
【００１０】
また、本発明に係る画像処理装置は、入力される画像データに応じた複数の変換テーブルを備え、前記階調補正手段は、入力される画像データに応じて前記複数の変換テーブルから一の変換テーブルを選択し、前記入力手段により入力された画像データに対して当該変換テーブルを用いて前記階調補正処理を行う構成であってもよい。
【００１１】
また、本発明に係る画像処理装置は、自装置における複数の動作モードに応じた複数の変換テーブルを備え、前記階調補正手段は、前記動作モードに応じて前記複数の変換テーブルから一の変換テーブルを選択し、前記入力手段により入力された画像データに対して当該変換テーブルを用いて前記階調補正処理を行う構成であってもよい。
【００１２】
なお、本発明は、コンピュータにより実行されるプログラムとしても特定される。このプログラムとは、コンピュータに階調数がｍ（ただし、ｍは自然数）である画像データに対して階調補正処理を実行させるためのプログラムであって、前記画像データを入力する入力ステップと、入力階調値と、当該入力階調値に対して前記階調補正処理を行った場合の出力階調値との組み合わせを各階調について記述し、決められた第１の階調領域においては、１の入力階調値に対して１の出力階調値を対応付け、前記第１の階調領域と異なる第２の階調領域においては、連続する２以上の入力階調値に対して同一の出力階調値を対応付けた変換テーブルであって、前記入力階調値と出力階調値とがｍビット（ただし、ｍは自然数）である参照データの出力階調値を、ｎ（ただし、ｎはｍ＞ｎを満たす自然数）ビットになるように下位側にビットシフトさせ、当該ビットシフトされたｎビットの出力階調値と当該出力階調値の直前にビットシフトされたｎビットの出力階調値との差分が決められた閾値以上であるか判断し、前記差分が前記閾値以上である旨の判断が決められた回数連続した場合に、前記参照データのｍビットの値を出力階調値として選択し、それ以外の場合に前記ビットシフトされたｎビットの値を出力階調値として選択して作成された変換テーブルを用いて、前記入力ステップにおいて入力された画像データに対して前記階調補正処理を行う階調補正ステップと、前記階調補正ステップにおいて前記階調補正処理が行われた画像データを出力する出力ステップとを実行させるプログラムである。
また、本発明に係るプログラムは、コンピュータに変換テーブルを作成させるためのプログラムであって、入力階調値と出力階調値とがｍビット（ただし、ｍは自然数）である参照データの出力階調値を、ｎ（ただし、ｎはｍ＞ｎを満たす自然数）ビットになるように下位側にビットシフトさせる第１のステップと、前記第１のステップにおいてビットシフトされたｎビットの出力階調値と当該出力階調値の直前にビットシフトされたｎビットの出力階調値との差分が決められた閾値以上であるか判断する第２のステップと、前記第２のステップにおいて前記差分が前記閾値以上である旨の判断が決められた回数連続した場合に、前記参照データのｍビットの値を出力階調値として選択し、それ以外の場合に前記ビットシフトされたｎビットの値を出力階調値として選択する第３のステップとを実行させるものであってもよい。
【発明の効果】
【００１３】
以上のように、本発明によれば、必要とする記憶容量の増加を抑えつつ、画像データに対して高精細な階調補正処理を行うことが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下においては、本発明に係る好適な実施形態を挙げ、図面を参照しながら説明する。この実施形態においては、画像データは１０ビット（１０２４階調）の画像データであるとする。また、画像データは、後述する画像形成装置に入力される時点においてはＲＧＢ表色系、すなわちＲ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）各色１０ビットの画像データであるとする。つまり、この画像データは、各画素がＲ、Ｇ、Ｂ各色について「０」〜「１０２３」のいずれかの階調値を有している画像データである。この画像データのことを、以下では「ＲＧＢ形式の画像データ」という。
【００１５】
なお、以下の説明において、「階調値」は、画像データの各色成分の明度を示す数値であると定義する。そして、「階調数」は、この階調値がとりうる値の範囲であると定義する。また、階調値および階調数を表現する際には、主として１０進数を用いるが、必要に応じて２進数を用いることがある。以下の説明において、階調値または階調数に関して、特に定めがない記載については、１０進数のことを指しているものとする。
【００１６】
［１．構成］
図１は、本発明の一実施形態である画像形成装置１の全体構成を示したブロック図である。同図に示すように、画像形成装置１は、制御部１１と、記憶部１２と、画像処理部１３と、操作部１４と、通信部１５と、画像出力部１６とを備えている。
【００１７】
制御部１１はＣＰＵ（Central Processing Unit）や、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等を備えた演算装置であり、記憶部１２に記憶されたプログラムを実行して画像形成装置１全体の動作を制御する。記憶部１２はハードディスク等の記憶装置であり、制御部１１が実行するプログラムやそのプログラムの実行に必要なデータを記憶している。
【００１８】
操作部１４はタッチパネルやボタンを備えた入力装置であり、ユーザの入力を受け付ける。ユーザは、操作部１４を介して、画像形成モードの選択や画像形成の開始の指示を行うことができる。ここでいう画像形成モードとは、画像形成装置１においてあらかじめ設定されている動作モードであり、例えば、「文字モード」、「写真モード」といった類のものである。各々の画像形成モードにはそのモードに応じた１次元ルックアップテーブルが存在し、階調補正部１３３は設定されている画像形成モードに応じた階調補正を行うように構成されている。
【００１９】
通信部１５は、図示せぬネットワークを介してコンピュータ等の外部装置とデータの送受信を行うためのインタフェース装置である。画像出力部１６は電子写真方式のプリントエンジン部であり、Ｃ、Ｍ、Ｙ、Ｋ各色のトナーを用いて入力された画像データに応じた画像を形成する。
【００２０】
画像処理部１３は画像処理を行うための専用のＡＳＩＣ（Application Specific Integrated Circuit）やＲＯＭ等を備えた演算装置であり、入力された画像データに対して後述する画像処理を実行して出力する。この画像処理部１３の構成を機能的に示すと、図２のブロック図のようになる。同図に示すように、画像処理部１３は、オブジェクト認識部１３１と、色変換部１３２と、階調補正部１３３と、レイアウト部１３４と、ライブラリ部１３５とを備える。
【００２１】
オブジェクト認識部１３１は、入力された画像データを構成するオブジェクトを認識して分類する。ここでいうオブジェクトとは、例えば、「文字」、「写真」、「グラフ」といった画像の属性のことである。各オブジェクトにはそれぞれに応じた属性を示す情報が付与され、この後の処理はこの情報に基づいて行われる。
【００２２】
色変換部１３２は、ライブラリ部１３５に記憶された３次元ルックアップテーブルを用いて、各オブジェクトのＲ、Ｇ、Ｂ各色の画像データをＣ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロー）各色の画像データに変換し、その後、周知のＵＣＲ（Under Color Removal）処理を施してＫ（ブラック）の画像データを発生させる。すなわち、色変換部１３２は、Ｒ、Ｇ、Ｂ各色の色成分から構成される画像データをＣ、Ｍ、Ｙ、Ｋ各色の色成分から構成される画像データに変換する。なお、以下においては、Ｃ、Ｍ、Ｙ、Ｋ各色の色成分から構成される画像データを「ＣＭＹＫ形式の画像データ」という。
【００２３】
階調補正部１３３は、各オブジェクトのＣＭＹＫ形式の画像データについて、ライブラリ部１３５に記憶された１次元ルックアップテーブルを用いて階調補正を行う。１次元ルックアップテーブルとは、例えば図３、図４のような入出力特性を有するデータの集合である。このテーブルは、階調数に応じたステップ数（すなわち１０２４ステップ）を有しており、各ステップの入力階調値（Ｄｉｎ）に対して固有の出力階調値（Ｄｏｕｔ）が定められている。なお、同図において、ａおよびｂは０≦ａ＜ｂ≦１０２３を満たす自然数であり、ｋおよびｌは１０２３未満の自然数である。
【００２４】
本実施形態の１次元ルックアップテーブルは、図４に示すように、入力階調値Ｄｉｎが「０」〜「ａ−１」、「ｂ＋１」〜「１０２３」である階調領域においては、それぞれの入力値に対して１の出力階調値Ｄｏｕｔを対応付けている一方、入力階調値Ｄｉｎが「ａ」〜「ｂ」である階調領域においては、連続する４の入力値に対して同一の出力階調値Ｄｏｕｔを対応付けている。つまり、入力階調値Ｄｉｎが「ａ」〜「ｂ」である階調領域（以下「特定階調領域」という。）においては、出力階調値Ｄｏｕｔは４ステップ毎に値が変化するようになっている。これは、図３から明らかなように、特定階調領域は、入力階調値Ｄｉｎの変化に伴う出力階調値Ｄｏｕｔの変化がその他の階調領域よりも緩やかであるため、複数の入力値に対して同一の出力値を対応付けても誤差が小さく、無視できるレベルであるからである。
【００２５】
また、本実施形態の１次元ルックアップテーブルは、入力階調値Ｄｉｎが「０」〜「ａ−１」、「ｂ＋１」〜「１０２３」である階調領域の出力階調値Ｄｏｕｔを画像データと同様の階調数、すなわち１０ビットの値として保持している一方、特定階調領域の出力階調値Ｄｏｕｔを８ビットの値として保持している。このようにすることで、１次元ルックアップテーブルのデータ容量を低減することが可能となっている。
【００２６】
入力階調値Ｄｉｎが「０」〜「ａ−１」である階調領域は、いわゆるハイライト領域である。このような領域の階調変化は目立ちやすく、階調数が小さい場合や、１ステップあたりの階調値の変化が大きい場合には、疑似輪郭が発生しやすいという問題がある。同様に、入力階調値Ｄｉｎが「ｂ＋１」〜「１０２３」である階調領域、いわゆるシャドウ領域の階調変化も目立ちやすく、階調数が小さい場合や、１ステップあたりの階調値の変化が大きい場合には、疑似輪郭や階調つぶれが発生する問題がある。そのため、これらの階調領域においては、１の入力値に対して１の出力値を対応付け、高精細な階調表現を維持できるようにしている。
【００２７】
続いて図２の説明に戻る。レイアウト部１３４は、各色について単一の画像データとなるように各オブジェクトの画像データを合成する。このとき、階調補正部１３３は、分類された各オブジェクトが入力された画像データと同一のレイアウトとなるように配置しつつ合成を行う。レイアウト部１３４により合成されたＣＭＹＫ形式の画像データは、画像出力部１６に供給される。
【００２８】
ライブラリ部１３５は、例えばＲＯＭ等の記憶媒体であり、複数のルックアップテーブルを記憶している。ライブラリ部１３５が記憶するデータには、色変換部１３２において用いられる３次元ルックアップテーブルの集合であるパラメータデータセットＤＳ３と、階調補正部１３３において用いられる１次元ルックアップテーブルの集合であるパラメータデータセットＤＳ１とが含まれる。ライブラリ部１３５は、色成分、オブジェクト、画像形成モード等に応じた複数の異なるルックアップテーブルを記憶しており、色変換部１３２および階調補正部１３３は、処理対象のデータに応じたルックアップテーブルをライブラリ部１３５から読み出して用いる。
【００２９】
なお、ライブラリ部１３５は、それぞれの１次元ルックアップテーブルについて、上述した特定階調領域の具体的な位置を示す情報である「位置情報」を記憶している。この位置情報とは、上述の図３、図４の例における「ａ」および「ｂ」のことである。このような位置情報をそれぞれの１次元ルックアップテーブルについて記憶しておくことで、画像処理部１３は１次元ルックアップテーブルのどの領域が特定階調領域であるかを認識することができるようになる。
【００３０】
また、ライブラリ部１３５は、それぞれの１次元ルックアップテーブルについて、１次元ルックアップテーブルの出力階調値の階調数を示す情報である「階調情報」を記憶している。この階調情報とは、特定階調領域の出力階調値の階調数とその他の領域の出力階調値の階調数を示す情報であり、上述の図３、図４の例においては「２５６（すなわち８ビット）」と「１０２４（すなわち１０ビット）」が階調情報である。位置情報および階調情報は、画像処理部１３が後述する階調補正処理において利用する情報である。
【００３１】
［２．動作］
以上の構成のもと、画像形成装置１は外部装置からＲＧＢ形式の画像データを受信し、これを所定のオブジェクトに分類しながらＣＭＹＫ形式に変換したのち、ＣＭＹＫ形式の画像データに基づいて画像を形成する。画像形成を行うときには、画像形成装置１は、操作部１４を介してユーザから画像形成モードを指示される。この際、画像処理部１３においては、階調補正処理が行われる。この階調補正処理は、具体的には以下のようにして行われる。なお、説明の便宜のため、本処理において用いられる１次元ルックアップテーブルのことを、以下では「ＬＵＴ」という。
【００３２】
図５は、画像処理部１３が行う階調補正処理を示したフローチャートである。なお、この階調補正処理は、各色成分の画像データについて行われるものである。同図に沿って説明すると、はじめに画像処理部１３は、処理対象の画像データや指示された画像形成モードを判断し、これらに応じたＬＵＴをライブラリ部１３５から読み出す（ステップＳａ１）。このとき同時に、画像処理部１３は、読み出したＬＵＴに対応する位置情報と階調情報とを読み出す。
【００３３】
ＬＵＴを読み出したら、画像処理部１３は階調情報を参照し、ＬＵＴの特定階調領域の出力階調値が８ビットの値であることを認識した上で、これを１０ビットの値に変換する。具体的には、画像処理部１３は、特定階調領域の出力階調値の下位２ビットに値「１１」を代入し、もとの出力階調値を上位側に２ビット分シフトさせるビットシフト処理を行う（ステップＳａ２）。
【００３４】
このビットシフト処理について、具体的な例を挙げて説明する。例えば、もとの出力階調値が２進数の「１０１０１０１０」、すなわち１０進数の「１７０」であれば、画像処理部１３はこの出力階調値を２進数の「１０１０１０１０１１」、すなわち１０進数の「６８３」に変換する。また、もとの出力階調値が２進数の「１１１１１１１１」、すなわち１０進数の「２５５」であれば、画像処理部１３はこの出力階調値を２進数の「１１１１１１１１１１」、すなわち１０進数の「１０２３」に変換する。
【００３５】
このビットシフト処理が終了すると、ＬＵＴの各出力階調値は１０ビットの値となる。しかしながら、特定階調領域の出力階調値は、上述したように４ステップ毎に値が変化するので、このままでは階調が滑らかに変化しない。そこで、画像処理部１３は、特定階調領域の出力階調値に対して補間処理を行う（ステップＳａ３）。この補間処理の具体的な手法は特に問わないが、例えば直線補間を用いることができる。
【００３６】
この補間処理について、具体的な例を挙げて説明する。例えば、図６（１）に示すように、入力階調値「ｉ」に対する出力階調値が２進数の「１０００００００１１」、すなわち１０進数の「５１５」であり、入力階調値「ｉ＋４」に対する出力階調値が２進数の「１００００００１１１」、すなわち１０進数の「５１９」であれば、画像処理部１３は、入力階調値「ｉ＋１」、「ｉ＋２」、「ｉ＋３」に対して、それぞれ２進数の「１００００００１００（１０進数の「５１６」）」、「１００００００１０１（１０進数の「５１７」）」、「１００００００１１０（１０進数の「５１８」）」という出力階調値を付与する。この結果、図６（２）に示すように、特定階調領域の出力階調値が１ステップ毎に値が変化するようになる。
【００３７】
この補間処理が終了すると、ＬＵＴの出力階調値は１ステップ毎に値が変化するようになるが、上述の補間処理を行っただけでは、特定階調領域における階調変化は滑らかならない。そこで、画像処理部１３は、特定階調領域の各出力階調値を考慮しながら、この領域の階調変化が滑らかになるようにスムージング処理を行う（ステップＳａ４）。このスムージング処理の具体的な手法は特に問わないが、例えば１次元フィルタを用いることができる。
【００３８】
以上のようにしてＬＵＴの特定階調領域のデータを更新したら、続いて画像処理部１３はＬＵＴの特定階調領域とその他の領域とを結合するマージ処理を行う（ステップＳａ５）。このマージ処理に際しては、データの結合部分の階調変化が滑らかになるように、さらにスムージング処理を行う。そして、画像処理部１３は入力された画像データに対してこのＬＵＴを適用し、その階調特性を画像形成モードや画像の種類に合わせたものに変化させ、出力する（ステップＳａ６）。
【００３９】
このような階調補正処理を行うことで、本実施形態の画像形成装置１は、ハイライト領域やシャドウ領域のような階調変化の目立ちやすい階調領域においては高階調のデータを保持しつつ、階調変化の目立ちにくい階調領域、すなわち特定階調領域においては、データ容量を削減して保持した１次元ルックアップテーブルを用いることができる。また、特定階調領域のデータに対して補間処理やスムージング処理を行うことで、より高精細な階調補正処理を行うことができる。そのため、本実施形態の画像形成装置１によれば、１次元ルックアップテーブルを記憶するために必要とする記憶容量を低減させつつ、高精細な階調補正処理を行うことが可能となる。
【００４０】
［３．１次元ルックアップテーブルの作成方法］
以上においては、本発明の特徴をなす１次元ルックアップテーブルを用いた画像形成装置の構成と動作について説明したが、ここでは、上述の１次元ルックアップテーブルの具体的な作成方法について説明する。上述の１次元ルックアップテーブルを作成するに際しては、あらかじめ、所定の入出力特性を有する１次元ルックアップテーブル（以下「参照データ」という。）が必要となる。参照データは上述した１次元ルックアップテーブルと異なり、全ての出力階調値が１０ビットであり、１の入力階調値に対して１の出力階調値が対応付けられているものとする。
【００４１】
なお、上述の実施形態においては、１次元ルックアップテーブルの階調数は、特に特定階調領域においては２５６（８ビット）であるとし、その他の領域においては１０２４（１０ビット）であるとしたが、以下に示す方法はこのような１次元ルックアップテーブルのみに適用されるものではない。そこで、以下においては、これらの値を一般化し、それぞれｍ、ｎとする。つまり、これらの値ｍ、ｎは、上述の実施形態における「階調情報」に相当するものである。ここにおいて、ｍ、ｎは１０進数で表記した場合の値であるとし、参照データの出力階調値に相当する値をｍ、特定階調領域の出力階調値に相当する値をｎとする。また、ｍ、ｎはともに自然数であり、ｍ＞ｎの関係を満たすものとする。
【００４２】
図７は、１次元ルックアップテーブルの作成方法を示したフローチャートである。以下、同図に沿って説明する。なお、以下に示す処理は、例えばコンピュータによって実行され得る。コンピュータは一般的な演算処理や記憶処理を行うことができるものであれば十分であり、特別な構成を必要としない。
【００４３】
１次元ルックアップテーブルを作成する際には、まず、参照データの出力階調値について、下位側にｌｏｇ２（ｍ／ｎ）ビット分シフトさせるビットシフト処理を行う（ステップＳｂ１）。つまり、ｍが「１０２４」、ｎが「２５６」である場合には、出力階調値を２ビット分シフトさせる処理を行う。
【００４４】
このビットシフト処理について、具体的な例を挙げて説明する。例えば、もとの出力階調値が２進数の「１１１１１１１１１１」、すなわち１０進数の「１０２３」であれば、この出力階調値を２進数の「１１１１１１１１」、すなわち１０進数の「２５５」に変換する処理を行う。このとき、もとの出力階調値の下位２ビットは処理後の値に影響を与えないので、例えば、もとの出力階調値が２進数の「１１１１１１１１００」、すなわち１０進数の「１０２０」であっても、処理後の出力階調値は２進数の「１１１１１１１１」、すなわち１０進数の「２５５」に変換される。
【００４５】
なお、説明の便宜のため、以下の説明においては、ビットシフト処理を行う前の出力階調値を「高階調値」といい、ビットシフト処理により算出された出力階調値を「低階調値」という。
【００４６】
次に、ビットシフト処理により算出された低階調値について、直前に算出された低階調値と比較し、これらの差分が決められた閾値以上であるかを判断する（ステップＳｂ２）。この閾値の値は任意であるが、例えば、低階調値の階調数が「２５６」である場合には、「３」程度が適当である。なお、第１回目のビットシフト処理の直後においては、この処理を行うことができないので、この場合は後述するステップＳｂ５の処理に進むものとする。
【００４７】
２つの低階調値を比較したときに、これらの差分が上述の閾値以上であった場合には（ステップＳｂ２；ＹＥＳ）、この低階調値に係るフラグデータ（以下「誤差フラグ」という。）の値を「ＯＦＦ」から「ＯＮ」に切り替える（ステップＳｂ３）。一方、２つの低階調値の差分が上述の閾値未満であった場合には（ステップＳｂ２；ＮＯ）、上述のステップＳｂ３の処理をスキップする。つまり、誤差フラグの値は「ＯＦＦ」のままである。
【００４８】
続いて、上述の誤差フラグの値が連続的に「ＯＮ」となっているか否かを判断する処理を行う（ステップＳｂ４）。このとき、誤差フラグの値が決められた数（例えば「４」）以上連続して「ＯＮ」であった場合には（ステップＳｂ４；ＹＥＳ）、この階調における出力階調値として高階調値を選択する処理を行う（ステップＳｂ５）。一方、このときの誤差フラグの値が「ＯＦＦ」であるか、あるいは「ＯＮ」が連続していても上述した決められた数未満である場合には（ステップＳｂ４；ＮＯ）、この階調における出力階調値として低階調値を選択する処理を行う（ステップＳｂ６）。
【００４９】
これらの処理が終了したら、参照データの全ての階調のデータにおいて上述の処理が行われたか否かを判断する（ステップＳｂ７）。このとき、処理を行っていないデータが存在すれば（ステップＳｂ７；ＮＯ）、そのデータについてステップＳｂ１からの処理を行う一方、全ての階調のデータについて上述の処理を行っていれば（ステップＳｂ７；ＹＥＳ）、ステップＳｂ６において低階調値が選択された階調の位置を示す情報を記憶し（ステップＳｂ８）、１次元ルックアップテーブルを作成する処理を終了させる。なお、ステップＳｂ８において記憶される情報は、上述の実施形態における「位置情報」に相当するものである。例えば、上述の実施形態における特定階調領域のように、低階調値が連続的に選択されている領域においては、その開始位置と終了位置に関する情報のみを位置情報として記憶すればよい。以上の処理を行うことで、階調数が１０ビットである領域と８ビットである領域とを有する１次元ルックアップテーブルを作成することができる。
【００５０】
［４．変形例］
なお、上述した実施形態は本発明の実施の一態様であって、本発明はかかる態様に限定されるものではない。例えば、上述の実施形態においてはいわゆるプリンタの機能を備えた画像形成装置１を用いて説明したが、本発明に係る画像処理装置、すなわち画像形成装置１における画像処理部１３は、プリンタに限らず、スキャナや一般的なコンピュータに搭載することも可能である。また、上述の実施形態においては、階調補正処理は画像処理部１３というハードウェアを用いて実現されているが、本発明は、同様の処理を記述したプログラムをコンピュータに実行させることによっても実現することができる。
【００５１】
また、上述の実施形態においては、１次元ルックアップテーブルの出力階調値は、特定階調領域において８ビット、その他の階調領域において１０ビットであるとしたが、かかる階調数に限定されるものではない。例えば、特定階調領域の階調数を１０ビット、他の階調領域の階調数を１２ビットとしてもよいし、特定階調領域の階調数を８ビット、他の階調領域の階調数を１２ビットとしてもよい。また、特定階調領域において、階調変化が特に少ない領域が存在する場合であれば、特定階調領域をさらに２以上の領域に分割し、階調変化が特に少ない領域の階調数をより少ない値としてもよい。
【図面の簡単な説明】
【００５２】
【図１】本発明の一実施形態である画像形成装置の全体構成を示したブロック図である。
【図２】画像形成装置の画像処理部の機能構成を示したブロック図である。
【図３】１次元ルックアップテーブルを例示した図である。
【図４】１次元ルックアップテーブルを例示した図である。
【図５】画像処理部が行う階調補正処理を示したフローチャートである。
【図６】階調補正処理において行われる処理を説明するための図である。
【図７】１次元ルックアップテーブルの作成方法を示したフローチャートである。
【符号の説明】
【００５３】
１…画像形成装置、１１…制御部、１２…記憶部、１３…画像処理部、１３１…オブジェクト認識部、１３２…色変換部、１３３…階調補正部、１３４…レイアウト部、１３５…ライブラリ部、１４…操作部、１５…通信部、１６…画像出力部
【図１】
0004534943.tif 000002
【図２】
0004534943.tif 000003
【図３】
0004534943.tif 000004
【図４】
0004534943.tif 000005
【図５】
0004534943.tif 000006
【図６】
0004534943.tif 000007
【図７】
0004534943.tif 000008