(57)【特許請求の範囲】
【請求項１】
ｎビット（ｎは２以上の整数）の入力信号をｍビット（ｍは２以上の整数）の出力信号に変換して出力する信号処理装置であって、
記憶手段から閾値を読み込み、前記入力信号と前記閾値とを比較し、当該比較結果に応じて、ｘビット（ｘは１以上の整数であり、さらにｍ＞ｘを満たす）の出力信号を決定する第１の出力ビット決定手段と、
前記入力信号に応じて、（ｍ−ｘ）ビットの出力信号を決定する第２の出力ビット決定手段と、
前記第１の出力ビット決定手段により決定された前記ｘビットの出力信号と、前記第２の出力ビット決定手段により決定された前記（ｍ−ｘ）ビットの出力信号とを結合する結合手段とを有し、
前記閾値は、前記入力信号から前記出力信号に変換するための所定の補正関数を用いて、前記入力信号の階調値を変化させていって前記出力信号に変換した際に、前記ｘビットの出力信号が変化するときの前記入力信号の階調値であることを特徴とする信号処理装置。
【請求項２】
前記第１の出力ビット決定手段は、前記ｘビットの出力信号と、前記ｘビットの出力信号を取得するためのアドレス値とが一致する場合、前記アドレス値を前記ｘビットの出力信号として決定することを特徴とする請求項１に記載の信号処理装置。
【請求項３】
ｎビット（ｎは２以上の整数）の入力信号をｍビット（ｍは２以上の整数）の出力信号に変換して出力する信号処理装置であって、
記憶手段から閾値を読み込み、前記入力信号のうちの（ｎ−ｓ）ビット（ｓは１以上の整数であり、さらにｎ＞ｓを満たす）の入力信号と前記閾値とを比較し、当該比較結果に応じて、ｘビット（ｘは１以上の整数であり、さらにｍ＞ｘを満たす）の出力信号を決定する第１の出力ビット決定手段と、
前記（ｎ−ｓ）ビットの入力信号に対して所定の階調値を加算する加算手段と、
前記（ｎ−ｓ）ビットの入力信号に応じて、第１の（ｍ−ｘ）ビットの出力信号を決定するとともに、前記加算手段により前記所定の階調値が加算された前記（ｎ−ｓ）ビットの入力信号に応じて、第２の（ｍ−ｘ）ビットの出力信号を決定する第２の出力ビット決定手段と、
前記ｘビットの出力信号と前記第１の（ｍ−ｘ）ビットの出力信号とを結合する第１の結合手段と、
前記ｘビットの出力信号と前記第２の（ｍ−ｘ）ビットの出力信号とを結合する第２の結合手段と、
前記入力信号のうちのｓビットの入力信号を所定の時間だけ遅延させる遅延手段と、
前記第１の結合手段により結合されたｍビットの出力信号と、前記第２の結合手段により結合されたｍビットの出力信号と、前記遅延手段により遅延された前記ｓビットの入力信号とに基づいて、ｍビットの出力信号を出力する出力手段とを有し、
前記閾値は、前記入力信号から前記出力信号に変換するための所定の補正関数を用いて、前記入力信号の階調値を変化させていって前記出力信号に変換した際に、前記ｘビットの出力信号が変化するときの前記入力信号の階調値であることを特徴とする信号処理装置。
【請求項４】
前記閾値に応じた前記ｘビットの出力信号を記憶する出力ビット記憶手段を更に有し、前記第１の出力ビット決定手段は、前記出力ビット記憶手段に記憶される情報に基づいて前記ｘビットの出力信号を決定することを特徴とする請求項３に記載の信号処理装置。
【請求項５】
前記第１の出力ビット決定手段は、前記入力信号と前記閾値が同一の値である場合、互いに異なる第１のｘビットの出力信号と第２のｘビットの出力信号を決定し、
前記第１のｘビットの出力信号は、前記第１の結合手段において結合され、
前記第２のｘビットの出力信号は、前記第２の結合手段において結合されることを特徴とする請求項３に記載の信号処理装置。
【請求項６】
ｎビット（ｎは２以上の整数）の入力信号をｍビット（ｍは２以上の整数）の出力信号に変換して出力する信号処理方法であって、
記憶手段から閾値を読み込み、前記入力信号と前記閾値とを比較し、当該比較結果に応じて、ｘビット（ｘは１以上の整数であり、さらにｍ＞ｘを満たす）の出力信号を決定する第１の出力ビット決定ステップと、
前記入力信号に応じて、（ｍ−ｘ）ビットの出力信号を決定する第２の出力ビット決定ステップと、
前記第１の出力ビット決定ステップにより決定された前記ｘビットの出力信号と、前記第２の出力ビット決定ステップにより決定された前記（ｍ−ｘ）ビットの出力信号とを結合する結合ステップとを含み、
前記閾値は、前記入力信号から前記出力信号に変換するための所定の補正関数を用いて、前記入力信号の階調値を変化させていって前記出力信号に変換した際に、前記ｘビットの出力信号が変化するときの前記入力信号の階調値であることを特徴とする信号処理方法。
【請求項７】
ｎビット（ｎは２以上の整数）の入力信号をｍビット（ｍは２以上の整数）の出力信号に変換して出力する信号処理方法であって、
記憶手段から閾値を読み込み、前記入力信号のうちの（ｎ−ｓ）ビット（ｓは１以上の整数であり、さらにｎ＞ｓを満たす）の入力信号と前記閾値とを比較し、当該比較結果に応じて、ｘビット（ｘは１以上の整数であり、さらにｍ＞ｘを満たす）の出力信号を決定する第１の出力ビット決定ステップと、
前記（ｎ−ｓ）ビットの入力信号に対して所定の階調値を加算する加算ステップと、
前記（ｎ−ｓ）ビットの入力信号に応じて、第１の（ｍ−ｘ）ビットの出力信号を決定するとともに、前記加算ステップにより前記所定の階調値が加算された前記（ｎ−ｓ）ビットの入力信号に応じて、第２の（ｍ−ｘ）ビットの出力信号を決定する第２の出力ビット決定ステップと、
前記ｘビットの出力信号と前記第１の（ｍ−ｘ）ビットの出力信号とを結合する第１の結合ステップと、
前記ｘビットの出力信号と前記第２の（ｍ−ｘ）ビットの出力信号とを結合する第２の結合ステップと、
前記入力信号のうちのｓビットの入力信号を所定の時間だけ遅延させる遅延ステップと、
前記第１の結合ステップにより結合されたｍビットの出力信号と、前記第２の結合ステップにより結合されたｍビットの出力信号と、前記遅延ステップにより遅延された前記ｓビットの入力信号とに基づいて、ｍビットの出力信号を出力する出力ステップとを含み、
前記閾値は、前記入力信号から前記出力信号に変換するための所定の補正関数を用いて、前記入力信号の階調値を変化させていって前記出力信号に変換した際に、前記ｘビットの出力信号が変化するときの前記入力信号の階調値であることを特徴とする信号処理方法。
【請求項８】
ｎビット（ｎは２以上の整数）の入力信号をｍビット（ｍは２以上の整数）の出力信号に変換して出力する信号処理方法をコンピュータに実行させるためのプログラムであって、
記憶手段から閾値を読み込み、前記入力信号と前記閾値とを比較し、当該比較結果に応じて、ｘビット（ｘは１以上の整数であり、さらにｍ＞ｘを満たす）の出力信号を決定する第１の出力ビット決定ステップと、
前記入力信号に応じて、（ｍ−ｘ）ビットの出力信号を決定する第２の出力ビット決定ステップと、
前記第１の出力ビット決定ステップにより決定された前記ｘビットの出力信号と、前記第２の出力ビット決定ステップにより決定された前記（ｍ−ｘ）ビットの出力信号とを結合する結合ステップとをコンピュータに実行させ、
前記閾値は、前記入力信号から前記出力信号に変換するための所定の補正関数を用いて、前記入力信号の階調値を変化させていって前記出力信号に変換した際に、前記ｘビットの出力信号が変化するときの前記入力信号の階調値であることを特徴とするプログラム。
【請求項９】
ｎビット（ｎは２以上の整数）の入力信号をｍビット（ｍは２以上の整数）の出力信号に変換して出力する信号処理方法をコンピュータに実行させるためのプログラムであって、
記憶手段から閾値を読み込み、前記入力信号のうちの（ｎ−ｓ）ビット（ｓは１以上の整数であり、さらにｎ＞ｓを満たす）の入力信号と前記閾値とを比較し、当該比較結果に応じて、ｘビット（ｘは１以上の整数であり、さらにｍ＞ｘを満たす）の出力信号を決定する第１の出力ビット決定ステップと、
前記（ｎ−ｓ）ビットの入力信号に対して所定の階調値を加算する加算ステップと、
前記（ｎ−ｓ）ビットの入力信号に応じて、第１の（ｍ−ｘ）ビットの出力信号を決定するとともに、前記加算ステップにより前記所定の階調値が加算された前記（ｎ−ｓ）ビットの入力信号に応じて、第２の（ｍ−ｘ）ビットの出力信号を決定する第２の出力ビット決定ステップと、
前記ｘビットの出力信号と前記第１の（ｍ−ｘ）ビットの出力信号とを結合する第１の結合ステップと、
前記ｘビットの出力信号と前記第２の（ｍ−ｘ）ビットの出力信号とを結合する第２の結合ステップと、
前記入力信号のうちのｓビットの入力信号を所定の時間だけ遅延させる遅延ステップと、
前記第１の結合ステップにより結合されたｍビットの出力信号と、前記第２の結合ステップにより結合されたｍビットの出力信号と、前記遅延ステップにより遅延された前記ｓビットの入力信号とに基づいて、ｍビットの出力信号を出力する出力ステップとをコンピュータに実行させ、
前記閾値は、前記入力信号から前記出力信号に変換するための所定の補正関数を用いて、前記入力信号の階調値を変化させていって前記出力信号に変換した際に、前記ｘビットの出力信号が変化するときの前記入力信号の階調値であることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ｎビット（ｎは２以上の整数）の入力信号をｍビット（ｍは２以上の整数）の出力信号に変換して出力するための技術に関するものである。
【背景技術】
【０００２】
近年、テレビジョン、携帯電話、ＰＤＡ等の画像表示装置として、ＣＲＴをはじめ、液晶ディスプレイ、プラズマディスプレイ、ＦＥＤディスプレイ、有機ＥＬディスプレイ等が実用化されている。
【０００３】
これら種々の画像表示装置では、入力信号に対して様々な信号処理が施され、各画像表示装置に適した出力信号に変換された後に表示が行なわれる。代表的な信号処理として、例えばガンマ変換がある。ガンマ変換とは、各画像表示装置が固有に持つ非線形なガンマ特性を考慮して、所望の表示輝度が得られるように、入力信号の信号レベルを補正して出力する処理である。
【０００４】
また、例えばテレビジョン信号は、一般的にＣＲＴにおける表示を前提としたガンマ変換が既に施された信号である。そのため、テレビジョン信号を入力とした画像表示装置では、逆ガンマ変換によってガンマ特性を打ち消し、各画像表示装置の表示素子への印加電圧と表示輝度とが直線的な比例関係を持つように補正した後に、種々の信号処理を行うことがある。以下、上記ガンマ変換及び上記逆ガンマ変換をまとめてガンマ変換と称す。ガンマ変換では、補正曲線を変化させることによって、明るさやコントラストを調整することも行なわれる。
【０００５】
一方、このような特に非線形な変換処理をディジタル処理で実現する場合、入力信号に対応する出力値を全てルックアップテーブル（以下、ＬＵＴと称す）に記憶し、変換する方式がある（以下、ＬＵＴ方式と称す）。ＬＵＴ方式の変換処理は、所望の出力値を得ることができる一方で、入力信号のビット数をｎとしたとき、２のｎ乗個のアドレスをもつメモリが必要となり、入力信号のビット数が１ビット増加すると、メモリ容量は２倍必要となる。また、近年ディジタル処理の高ビット化に伴って、変換処理後の出力信号のビット数も増加し、必要なメモリ容量はさらに増加する。
【０００６】
これに対して、第１の方法として、ＬＵＴと補間演算とを組み合わせることによって、メモリ容量を低減する方法が知られている（例えば、特許文献１参照）。また、第２の方法として、補正関数が比較的なだらかな場合、隣接する変換結果の差分値も比較的小さな値になることから、差分値をＬＵＴに記憶し、入力信号に応じて必要な差分値を加算等することで出力値を得る方法が知られている。この方法によると、差分値が小さな値である場合、ＬＵＴの容量を低減することができる。例えば特許文献２では、ＬＵＴに記憶するデータの持ち方をさらに工夫し、高速な演算処理を実現する技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−１２０３６６号公報
【特許文献２】特開２０００−１４８４４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、第１の方法は、補間処理による近似を行なっているため、ＬＵＴ方式と比較して精度の高い変換結果を得ることは難しいという課題があった。また、第２の方法は、補正関数の特性によって差分値が異なってくるため、必要なメモリ容量も異なってくる。例えば、補正関数の特性を適宜変更する場合、想定される差分値の最大ビット幅をメモリ容量として確保する必要が生じるため、メモリ容量を低減することが難しいという課題があった。
【０００９】
そこで、本発明の目的は、メモリ容量を低減しながらも精度の高い変換結果を得ることにある。
【課題を解決するための手段】
【００１０】
本発明の信号処理装置の第１の例は、ｎビット（ｎは２以上の整数）の入力信号をｍビット（ｍは２以上の整数）の出力信号に変換して出力する信号処理装置であって、記憶手段から閾値を読み込み、前記入力信号と前記閾値とを比較し、当該比較結果に応じて、ｘビット（ｘは１以上の整数であり、さらにｍ＞ｘを満たす）の出力信号を決定する第１の出力ビット決定手段と、前記入力信号に応じて、（ｍ−ｘ）ビットの出力信号を決定する第２の出力ビット決定手段と、前記第１の出力ビット決定手段により決定された前記ｘビットの出力信号と、前記第２の出力ビット決定手段により決定された前記（ｍ−ｘ）ビットの出力信号とを結合する結合手段とを有し、前記閾値は、前記入力信号から前記出力信号に変換するための所定の補正関数を用いて、前記入力信号の階調値を変化させていって前記出力信号に変換した際に、前記ｘビットの出力信号が変化するときの前記入力信号の階調値であることを特徴とする。
本発明の信号処理装置の第２の例は、ｎビット（ｎは２以上の整数）の入力信号をｍビット（ｍは２以上の整数）の出力信号に変換して出力する信号処理装置であって、記憶手段から閾値を読み込み、前記入力信号のうちの（ｎ−ｓ）ビット（ｓは１以上の整数であり、さらにｎ＞ｓを満たす）の入力信号と前記閾値とを比較し、当該比較結果に応じて、ｘビット（ｘは１以上の整数であり、さらにｍ＞ｘを満たす）の出力信号を決定する第１の出力ビット決定手段と、前記（ｎ−ｓ）ビットの入力信号に対して所定の階調値を加算する加算手段と、前記（ｎ−ｓ）ビットの入力信号に応じて、第１の（ｍ−ｘ）ビットの出力信号を決定するとともに、前記加算手段により前記所定の階調値が加算された前記（ｎ−ｓ）ビットの入力信号に応じて、第２の（ｍ−ｘ）ビットの出力信号を決定する第２の出力ビット決定手段と、前記ｘビットの出力信号と前記第１の（ｍ−ｘ）ビットの出力信号とを結合する第１の結合手段と、前記ｘビットの出力信号と前記第２の（ｍ−ｘ）ビットの出力信号とを結合する第２の結合手段と、前記入力信号のうちのｓビットの入力信号を所定の時間だけ遅延させる遅延手段と、前記第１の結合手段により結合されたｍビットの出力信号と、前記第２の結合手段により結合されたｍビットの出力信号と、前記遅延手段により遅延された前記ｓビットの入力信号とに基づいて、ｍビットの出力信号を出力する出力手段とを有し、前記閾値は、前記入力信号から前記出力信号に変換するための所定の補正関数を用いて、前記入力信号の階調値を変化させていって前記出力信号に変換した際に、前記ｘビットの出力信号が変化するときの前記入力信号の階調値であることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、メモリ容量を低減しながらも精度の高い変換結果を得ることが可能になる。また、種々の補正関数の実装が可能になる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態に係る信号処理装置の構成を示す図である。
【図２】本発明の第１の実施形態で使用する補正関数の一例を示す図である。
【図３】本発明の第１の実施形態に係る信号処理装置における第１の出力ビット記憶部の一例を説明するための図である。
【図４】本発明の第１の実施形態に係る信号処理装置の処理の一例を示すフローチャートである。
【図５】本発明の第１の実施形態において使用する補正関数の他の例を示す図である。
【図６】本発明の第１の実施形態に係る信号処理装置における第１の出力ビット記憶部の一例を説明するための図である。
【図７】本発明の第２の実施形態で使用する補正関数の一例を示す図である。
【図８】本発明の第２の実施形態に係る信号処理装置の第１の出力ビット記憶部の他の例を説明するための図である。
【図９】本発明の第２の実施形態に係る信号処理装置の処理の一例を示すフローチャートである。
【図１０】本発明の第２の実施形態で使用する補正関数の他の例を示す図である。
【図１１】本発明の第２の実施形態に係る信号処理装置の第１の出力ビット記憶部の他の例を説明するための図である。
【図１２】本発明の第３の実施形態に係る信号処理装置の構成を示す図である。
【図１３】本発明の第３の実施形態で使用する補正関数の一例を示す図である。
【図１４】本発明の第４の実施形態に係る信号処理装置の構成を示す図である。
【図１５】本発明の第４の実施形態の第１の出力ビット決定部における処理の一例を示すフローチャートである。
【図１６】本発明の第５の実施形態に係る信号処理装置の構成を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。但し、本発明を適用可能な範囲は、以下の実施形態に限定されるものではない。
【００１４】
先ず、本発明の第１の実施形態について説明する。図１は、本発明の第１の実施形態に係る信号処理装置の構成を示す図であり、ｎビット（ｎは２以上の整数）の入力信号をｍビット（ｍは２以上の整数）の出力信号に変換して出力する信号処理装置を示している。１００は閾値記憶部である。１０１は第１の出力ビット記憶部である。１０２は第２の出力ビット決定部である。１０３は第１の出力ビット決定部である。１０４はビット結合部である。入力信号、出力信号とは、例えば画像信号における各画素のＲＧＢ毎の階調値であったり、電圧値であったりする。以下、ｎビット（ｎは２以上の整数）の入力階調値をｍビット（ｍは２以上の整数）の出力階調値に変換するものとして説明を行う。また、第１の出力ビット決定部１０３で決定する出力ビット及び第２の出力ビット決定部１０２で決定する出力ビットは、出力階調値ｍビット中のどのビットに対応していてもよい。同様に、第１の出力ビット決定部１０３への入力ビット及び第２の出力ビット決定部１０２への入力ビットは、入力階調値ｎビット中のどのビットに対応していてもよい。本実施形態では、出力階調値の上位ｘビット（ｘは１以上の整数であり、さらにｍ＞ｘを満たす）を、第１の出力ビット決定部１０３で決定し、出力階調値の下位（ｍ−ｘ）ビットを、第２の出力ビット決定部１０２で決定するものとして説明する。
【００１５】
閾値記憶部１００は、閾値を記憶するためのＬＵＴである。出力階調値の上位ｘビットは、入力階調値と閾値との階調値の比較によって決定される。ここでは、入力階調値が最小値から最大値まで最小ステップ階調ずつ増加したときに、出力階調値の上位ｘビットが変化するときの直前の入力階調値を閾値とする。例えばｘ＝２（ｘは出力階調値の上位ｘビットを示す）であって、入力階調値の取り得る範囲が１２ビット精度の０（ｄ）から４０９５（ｄ）であったとする。入力階調値を０（ｄ）から４０９５（ｄ）まで１階調ずつ増加していき、例えば入力階調値が６１２（ｄ）から６１３（ｄ）へ変化したときに、出力階調値の上位２ビットが“００”（２進数表記）から“０１”に変化したとすると、入力階調値の６１２（ｄ）が閾値の１つとなる。
【００１６】
第１の出力ビット記憶部１０１は、例えばＬＵＴで構成されており、閾値に応じた出力階調値の上位ｘビットが記憶されている。第１の出力ビット記憶部１０１の詳細は後述する。第１の出力ビット決定部１０３は、入力信号、閾値記憶部１００、第１の出力ビット記憶部１０１及びビット結合部１０４と接続されており、入力階調値と閾値との大小関係に基づいて、第１の出力ビット記憶部１０１からの出力値を１つ選択する。選択した出力値は、ビット結合部１０４へ出力される。第２の出力ビット決定部１０２は、補正関数に基づいて、入力階調値に対応した出力階調値の下位（ｍ−ｘ）ビットを選択し、ビット結合部１０４へ出力する。入力階調値に対応した出力階調値の下位（ｍ−ｘ）ビットは、第２の出力ビット決定部１０２に含まれる例えばＬＵＴに記憶されている。
【００１７】
ビット結合部１０４は、第１の出力ビット決定部１０３からの出力値（ｘビット）を上位ビットとして、また第２の出力ビット決定部１０２からの出力値（（ｍ−ｘ）ビット）を下位ビットとして結合し、ｍビットの結合結果を出力信号として出力する。なお、閾値記憶部１００は、記憶手段の適用例となる構成である。第１の出力ビット決定部１０３は、第１の出力ビット決定手段の適用例となる構成である。第２の出力ビット決定部１０２は、第２の出力ビット決定手段の適用例となる構成である。ビット結合部１０４は、結合手段の適用例となる構成である。
【００１８】
図２は、第１の実施形態で使用する補正関数の一例を示す図である。横軸は入力階調値を示しており、縦軸は出力階調値を示している。以下、図２に示す補正関数を用いて変換を行うものとして、第１の実施形態に係る信号処理装置を詳細に説明する。また、以下の説明では、ｘ＝２としている。
【００１９】
図２に示す補正関数では、入力階調値が最小値から最大値まで最小ステップ階調ずつ増加したときに、出力階調値の上位２ビットが変化する箇所が３箇所存在する。即ち、“００”（２進数表記）から“０１”、“０１”から“１０”、“１０”から“１１”の計３箇所存在する。ここで、３箇所それぞれの出力階調値を図２に示すようにＡ、Ｂ、Ｃとする。Ａ、Ｂ、Ｃそれぞれの階調値上位２ビットは“００”、“０１”、“１０”となる。
【００２０】
一方、出力階調値Ａ、Ｂ、Ｃそれぞれに対応する入力階調値を、図２に示すようにａ、ｂ、ｃとすると、入力階調値ａ、ｂ、ｃが閾値となる。また、入力階調値をＩｎとすると、Ｉｎ≦ａの場合は出力階調値の上位２ビットが“００”となる。同様にａ＜Ｉｎ≦ｂの場合は“０１”となる。ｂ＜Ｉｎ≦ｃの場合は“１０”となる。ｃ＜Ｉｎの場合は“１１”となる。このとき、第１の出力ビット記憶部１０１は、出力階調値の上位２ビットである“００”、“０１”、“１０”、“１１”がそれぞれ順にアドレス値０、1、２、３として記憶されている。
【００２１】
図３は、第１の実施形態に係る信号処理装置における第１の出力ビット記憶部１０１の一例を説明するための図であり、図２に示す補正関数を適用した場合の第１の出力ビット記憶部１０１に格納されたアドレス値とデータ値との関係を示している。アドレス値０は、Ｉｎ≦ａの出力階調値の上位２ビット“００”に対応している。同様に、アドレス値１は、ａ＜Ｉｎ≦ｂの出力階調値の上位２ビット“０１”に対応している。アドレス値２は、ｂ＜Ｉｎ≦ｃの出力階調値の上位２ビット“１０”に対応している。アドレス値３は、ｃ＜Ｉｎの出力階調値の上位２ビット“１１”に対応している。
【００２２】
第１の出力ビット決定部１０３は、入力階調値と閾値との大小関係に基づいて、第１の出力ビット記憶部１０１からの出力値を１つ選択し、ビット結合部１０４へ出力する。具体的には、入力階調値をＩｎとすると、Ｉｎ≦ａの場合、第１の出力ビット決定部１０３はアドレス値０の出力値を選択して出力する。ａ＜Ｉｎ≦ｂの場合、第１の出力ビット決定部１０３はアドレス値１の出力値を選択して出力する。ｂ＜Ｉｎ≦ｃの場合、第１の出力ビット決定部１０３はアドレス値２の出力値を選択して出力する。ｃ＜Ｉｎの場合、第１の出力ビット決定部１０３はアドレス値３の出力値を選択して出力する。例えば、ｂ＜Ｉｎ≦ｃの場合、第１の出力ビット決定部１０３はアドレス値２に対応した出力値“１０”を選択し、ビット結合部１０４へ出力する。
【００２３】
第２の出力ビット決定部１０２には、図２に示す補正関数に基づいて、入力階調値に対応した出力階調値の下位（ｍ−２）ビットが記憶されている。第２の出力ビット決定部１０２は、入力階調値に対応した出力階調値の下位（ｍ−２）ビットを選択し、ビット結合部１０４へ出力する。
【００２４】
ビット結合部１０４は、第１の出力ビット決定部１０３からの出力値（２ビット）を上位ビットとして、また、第２の出力ビット決定部１０２からの出力値（（ｍ−２）ビット）を下位ビットとして結合し、ｍビットの結合結果を出力する。例えばｘ＝２、ｍ＝１２とする。第１の出力ビット決定部１０３の出力値が “１０”であったとして、第２の出力ビット決定部１０２の出力値が“０１１０１１０１０１”であったとすると、ビット結合部１０４の結合結果は、“１００１１０１１０１０１”となる。結合結果が出力信号として出力される。
【００２５】
図４は、本発明の第１の実施形態に係る信号処理装置の処理の一例を示すフローチャートであり、閾値が３箇所（ａ、ｂ、ｃ）の場合の処理を示している。先ず、第１の出力ビット決定部１０３は、閾値記憶部１００に記憶される閾値（ａ、ｂ、ｃ）を読み出す（ステップＳ４０１）。第１の出力ビット決定部１０３は、入力階調値と閾値との大小関係がＩｎ≦ａであるか否かを判定する（ステップＳ４０２）。入力階調値と閾値との大小関係がＩｎ≦ａである場合、第１の出力ビット決定部１０３はアドレス値０の出力値を選択する（ステップＳ４０３）。なお、上述したとおり、アドレス値０にはＩｎ≦ａにおける出力階調値の上位２ビット“００”が格納されている。一方、入力階調値と閾値との大小関係がＩｎ≦ａではない場合、第１の出力ビット決定部１０３は、入力階調値と閾値との大小関係がａ＜Ｉｎ≦ｂであるか否かを判定する（ステップＳ４０４）。入力階調値と閾値との大小関係がａ＜Ｉｎ≦ｂである場合、第１の出力ビット決定部１０３はアドレス値１の出力値を選択する（ステップＳ４０５）。なお、上述したとおり、アドレス値１にはａ＜Ｉｎ≦ｂにおける出力階調値の上位２ビット“０１”が格納されている。一方、入力階調値と閾値との大小関係がａ＜Ｉｎ≦ｂではない場合、第１の出力ビット決定部１０３は入力階調値と閾値との大小関係がｂ＜Ｉｎ≦ｃであるか否かを判定する（ステップＳ４０６）。入力階調値と閾値との大小関係がｂ＜Ｉｎ≦ｃである場合、第１の出力ビット決定部１０３はアドレス値２の出力値を選択する（ステップＳ４０７）。なお、上述したとおり、アドレス値２にはｂ＜Ｉｎ≦ｃにおける出力階調値の上位２ビット“１０”が格納されている。一方、入力階調値と閾値との大小関係がｂ＜Ｉｎ≦ｃではない場合、即ち入力階調値と閾値との大小関係がｃ＜Ｉｎである場合、第１の出力ビット決定部１０３はアドレス値３の出力値を選択する（ステップＳ４０８）。なお、上述したとおり、アドレス値３にはｃ＜Ｉｎにおける出力階調値の上位２ビット“１１”が格納されている。第１の出力ビット決定部１０３は、ステップＳ４０３、Ｓ４０５、Ｓ４０７又はＳ４０８で選択した出力値をビット結合部１０４に出力する。ビット結合部１０４は第１の出力ビット決定部１０３から出力された出力値を一旦格納する（ステップＳ４０９）。
【００２６】
上述したとおり、第２の出力ビット決定部１０２には、入力階調値に対応した出力階調値の下位ビットが記憶されている。第２の出力ビット決定部１０２は、入力階調値に対応した出力値を１つ選択する（ステップＳ４１０）。第２の出力ビット決定部１０２は選択した出力値をビット結合部１０４に出力する。ビット結合部１０４は、第２の出力ビット結合部１０２から出力された出力値を一旦格納する（ステップＳ４１１）。
【００２７】
ビット結合部１０４は、ステップＳ４０９で格納した第１の出力ビット決定部１０３からの出力値を上位ビットとして、また、ステップＳ４１１で格納した第２の出力ビット決定部１０２からの出力値を下位ビットとして結合する（ステップＳ４１２）。そして、ビット結合部１０４は、結合結果を出力信号として出力する。
【００２８】
以上、本発明の第１の実施形態に係る信号処理装置について図２に示す補正関数を例に説明した。図２に示す補正関数は、ｘ＝２とすると、上述したとおり、閾値は３箇所存在する。同様に閾値が３箇所の補正関数であれば、閾値記憶部１００、第１の出力ビット記憶部１０１及び第２の出力ビット決定部１０２のＬＵＴに格納されているデータ値を変更することによって、補正関数の種類の変更に対応することができる。
【００２９】
以下、図５及び図６を用いて補正関数の種類の変更方法について説明する。図５は、第１の実施形態において使用する補正関数の他の例を示す図である。横軸は入力階調値を示しており、縦軸は出力階調値を示している。図６は、第１の実施形態に係る信号処理装置における第１の出力ビット記憶部１０１の他の例を説明するための図であり、図５に示す補正関数を適用した場合の第１の出力ビット記憶部１０１に格納されたアドレス値とデータ値との関係を示している。
【００３０】
ｘ＝２とすると、図５に示す補正関数では、入力階調値が最小値から最大値まで最小ステップ階調ずつ増加したときに、出力階調値の上位２ビットが変化する箇所が３箇所存在する。即ち、“１１”（２進数表記）から“１０”、“１０”から“０１”、“０１”から“００”の計３箇所存在する。ここで、３箇所それぞれの階調値を図５に示すようにＡ´、Ｂ´、Ｃ´とする。なお、Ａ´、Ｂ´、Ｃ´それぞれの階調値上位２ビットは“１１”、“１０”、“０１”となる。一方、出力階調値Ａ´、Ｂ´、Ｃ´それぞれに対応する入力階調値を、図５に示すようにａ´、ｂ´、ｃ´とすると、入力階調値ａ´、ｂ´、ｃ´が閾値となる。入力階調値ａ´、ｂ´、ｃ´は、閾値記憶部１００に格納される。
【００３１】
また、入力階調値をＩｎとすると、Ｉｎ≦ａ´の場合は出力階調値の上位２ビットが“１１”となる。同様にａ´＜Ｉｎ≦ｂ´の場合は“１０”となる。ｂ´＜Ｉｎ≦ｃ´の場合は“０１”となる。ｃ´＜Ｉｎの場合は“００”となる。このとき、第１の出力ビット記憶部１０１には、図６に示すとおり、Ｉｎ≦ａ´に対応する出力階調値の上位２ビット“１１”がアドレス値０として記憶される。同様に、ａ´＜Ｉｎ≦ｂ´に対応する出力階調値の上位２ビット“１０”がアドレス値１として記憶される。ｂ´＜Ｉｎ≦ｃ´に対応する出力階調値の上位２ビット“０１”がアドレス値２として記憶される。ｃ´＜Ｉｎに対応する出力階調値の上位２ビット“００”がアドレス値３として記憶される。さらに、第２の出力ビット決定部１０２には、図５に示す補正関数に基づいて、入力階調値に対応した出力階調値の下位（ｍ−２）ビットが記憶される。
【００３２】
以上、図５及び図６を用いて説明したように、閾値記憶部１００に格納される閾値と、第１の出力ビット記憶部１０１に格納された出力階調値の上位ビットと、第２の出力ビット決定部１０２に格納された出力階調値の下位ビットとを変更することで、種々の補正関数を実装することができる。
【００３３】
次に、本実施形態において必要となるＬＵＴのメモリ容量について説明する。閾値の数を（（２のｘ乗）−１）とすると、本実施形態において必要となるＬＵＴのメモリ容量は、閾値記憶部１００では、［ｎ×（（２のｘ乗）−１）］ビットとなる。第１の出力ビット記憶部１０１で必要となるＬＵＴのメモリ容量は、［ｘ×（２のｘ乗）］ビットとなる。第２の出力ビット決定部１０２で必要となるＬＵＴのメモリ容量は、［（ｍ−ｘ）×（２のｎ乗）］ビットとなる。
【００３４】
本実施形態では、補間といった関数の精度をおとす処理は行なっていないため、例えばＬＵＴ方式と比較をして同等の変換精度を達成することができる。では、ＬＵＴ方式と比較して、ＬＵＴのメモリ容量に着目し、メモリ容量の低減効果について説明する。
【００３５】
ＬＵＴ方式で１２ビットの入力階調値を１６ビットの出力階調値に変換して出力処理する補正関数を実装した場合、必要となるＬＵＴのメモリ容量は、１６×（２の１２乗）＝６５５３６ビットとなる。一方、同じ補正関数を本実施形態において実装した場合、ｎ＝１２、ｍ＝１６において、例えばｘ＝４とすると、閾値記憶部１００で必要となるＬＵＴのメモリ容量は、［１２×（（２の４乗）−１）＝１８０］ビットとなる。第１の出力ビット記憶部１０１で必要となるＬＵＴのメモリ容量は、［４×（２の４乗）＝６４］ビットとなる。第２の出力ビット決定部１０２で必要となるＬＵＴのメモリ容量は、［（１６−４）×（２の１２乗）＝４９１５２］ビットとなる。以上３つのＬＵＴを合算すると、４９３９６ビットとなり、ＬＵＴ方式と比較してメモリ容量を低減できる。
【００３６】
上述したように、本実施形態によれば、メモリ容量を低減しながらも、ＬＵＴ方式と同等の精度の高い変換結果を得ることが可能となる。また、ＬＵＴのデータ値を変更するだけで種々の補正関数の実装が可能となる。
【００３７】
なお、本実施形態では、出力階調値の上位ｘビット（ｘは１以上の整数であり、さらにｍ＞ｘを満たす）を第１の出力ビット決定部１０３で決定し、出力階調値の下位（ｍ−ｘ）ビットを第２の出力ビット決定部１０２で決定するものとして説明した。但し、第１の出力ビット決定部１０３で決定する出力ビット及び第２の出力ビット決定部１０２で決定する出力ビットは、出力階調値ｍビット中のどのビットに対応していてもよい。また、閾値の決め方についても上述の限りではなく、どのような方法であってもよい。本実施形態では、補正関数の一例に対して、出力階調値の上位ｘビットを決定する際に必要な閾値の数が極力少なくなるような閾値の決め方を示した。
【００３８】
次に、本発明の第２の実施形態について説明する。第１の実施形態では、ｘ＝２であって閾値が３箇所の場合の補正関数例を用いて補正関数の変更方法について説明したが、ｘ＝２であって閾値が４箇所以上の場合の補正関数であってもよい。また、補正関数の閾値が例えば回路上で予め用意した閾値数よりも少ない場合であっても、ＬＵＴのデータ値を変更するだけで実装できる。本実施形態では、ｘ＝２であって閾値が５箇所の場合について説明する。さらに同じ構成を用いて、閾値が４箇所以下の補正関数に変更する場合について説明する。なお、本実施形態の構成は第１の実施形態と同じである。
【００３９】
図７は、本発明の第２の実施形態で使用する補正関数の一例を示す図である。横軸は入力階調値を示しており、縦軸は出力階調値を示している。また、図８は、本実施形態に係る信号処理装置の第１の出力ビット記憶部１０１の一例を説明するための図であり、図７に示す補正関数を適用した場合の第１の出力ビット記憶部１０１に格納されたアドレス値とデータ値との関係を示している。
【００４０】
図７に示す補正関数では、入力階調値が最小値から最大値まで最小ステップ階調ずつ増加したときに、出力階調値の上位２ビットが変化する箇所が５箇所存在する。即ち、“１１”（２進数表記）から“１０”、“１０”から“０１”、“０１”から“１０”、“１０”から“０１”、“０１”から“００”の計５箇所存在する。第１の実施形態と同様に、それぞれに対応する入力階調値を、図７に示すようにｄ、ｅ、ｆ、ｇ、ｈとすると、入力階調値ｄ、ｅ、ｆ、ｇ、ｈが閾値となる。
【００４１】
また、入力階調値をＩｎとすると、Ｉｎ≦ｄの場合は出力階調値の上位２ビットが“１１”となり、同様にｄ＜Ｉｎ≦ｅの場合は“１０”、ｅ＜Ｉｎ≦ｆの場合は“０１”、ｆ＜Ｉｎ≦ｇの場合は“１０”、ｇ＜Ｉｎ≦ｈの場合は“０１”、ｈ＜Ｉｎの場合は“００”となる。
【００４２】
第１の出力ビット記憶部１０１には、図８に示すとおり、Ｉｎ≦ｄに対応する出力階調値の上位２ビット“１１”がアドレス値０として記憶される。同様に、“１０”、“０１”、“１０”、“０１”、“００”がそれぞれアドレス値１、２、３、４、５として記憶される。
【００４３】
図９は、本発明の第２の実施形態に係る信号処理装置の処理の一例を示すフローチャートである。先ず、第１の出力ビット決定部１０３は、閾値記憶部１００に記憶された閾値（ｄ、ｅ、ｆ、ｇ、ｈ）を読み出す（ステップＳ９０１）。第１の出力ビット決定部１０３は、入力階調値と閾値との大小関係がＩｎ≦ｄであるか否かを判定する（ステップＳ９０２）。入力階調値と閾値との大小関係がＩｎ≦ｄである場合、第１の出力ビット決定部１０３はアドレス値０の出力値を選択する（ステップＳ９０３）。なお、上述したとおり、アドレス値０にはＩｎ≦ｄにおける出力階調値の上位２ビット“１１”が格納されている。一方、入力階調値と閾値との大小関係がＩｎ≦ｄではない場合、第１の出力ビット決定部１０３は、入力階調値と閾値との大小関係がｄ＜Ｉｎ≦ｅであるか否かを判定する（ステップＳ９０４）。入力階調値と閾値との大小関係がｄ＜Ｉｎ≦ｅである場合、第１の出力ビット決定部１０３はアドレス値１の出力値を選択する（ステップＳ９０５）。なお、上述したとおり、アドレス値１にはｄ＜Ｉｎ≦ｅにおける出力階調値の上位２ビット“１０”が格納されている。一方、入力階調値と閾値との大小関係がｄ＜Ｉｎ≦ｅではない場合、第１の出力ビット決定部１０３は、入力階調値と閾値との大小関係がｅ＜Ｉｎ≦ｆであるか否かを判定する（ステップＳ９０６）。入力階調値と閾値との大小関係がｅ＜Ｉｎ≦ｆである場合、第１の出力ビット決定部１０３はアドレス値２の出力値を選択する（ステップＳ９０７）。なお、上述したとおり、アドレス値２にはｅ＜Ｉｎ≦ｆにおける出力階調値の上位２ビット“０１”が格納されている。一方、入力階調値と閾値との大小関係がｅ＜Ｉｎ≦ｆではない場合、第１の出力ビット決定部１０３は、入力階調値と閾値との大小関係がｆ＜Ｉｎ≦ｇであるか否かを判定する（ステップＳ９０８）。入力階調値と閾値との大小関係がｆ＜Ｉｎ≦ｇである場合、第１の出力ビット決定部１０３はアドレス値３の出力値を選択する（ステップＳ９０９）。なお、上述したとおり、アドレス値３にはｆ＜Ｉｎ≦ｇにおける出力階調値の上位２ビット“１０”が格納されている。一方、入力階調値と閾値との大小関係がｆ＜Ｉｎ≦ｇではない場合、第１の出力ビット決定部１０３は、入力階調値と閾値との大小関係がｇ＜Ｉｎ≦ｈであるか否かを判定する（ステップＳ９１０）。入力階調値と閾値との大小関係がｇ＜Ｉｎ≦ｈである場合、第１の出力ビット決定部１０３はアドレス値４の出力値を選択する（ステップＳ９１１）。なお、上述したとおり、アドレス値４にはｇ＜Ｉｎ≦ｈにおける出力階調値の上位２ビット“０１”が格納されている。一方、入力階調値と閾値との大小関係がｇ＜Ｉｎ≦ｈではない場合、即ち、入力階調値と閾値との大小関係がｈ＜Ｉｎである場合、第１の出力ビット決定部１０３はアドレス値５の出力値を選択する（ステップＳ９１２）。なお、上述したとおり、アドレス値５にはｈ＜Ｉｎにおける出力階調値の上位２ビット“００”が格納されている。
【００４４】
上述したとおり、第２の出力ビット決定部１０２は、入力階調値に対応した出力階調値の下位ビットが記憶されている。第２の出力ビット決定部１０２は、入力階調値に対応した出力値を１つ選択する（ステップＳ９１４）。第２の出力ビット決定部１０２は選択した出力値をビット結合部１０４に出力する。ビット結合部１０４は、第２の出力ビット結合部１０２から出力された出力値を一旦格納する（ステップＳ９１５）。
【００４５】
ビット結合部１０４は、ステップＳ９１３で格納された第１の出力ビット決定部１０３から出力値を上位ビットとして、また、ステップＳ９１５で格納された第２の出力ビット決定部１０２からの出力値を下位ビットとして結合する（ステップＳ９１６）。そして、ビット結合部１０４は、結合結果を出力信号として出力する。
【００４６】
以上、ｘ＝２であって、且つ閾値が５箇所の場合について、図７〜図９を用いて説明をした。第１の実施形態では、閾値が３箇所の補正関数であれば、ＬＵＴに格納されているデータ値を変更することによって、補正関数の種類の変更ができることを説明した。本実施形態でも同様に、閾値が５箇所の補正関数であれば、閾値記憶部１００、第１の出力ビット記憶部１０１及び第２の出力ビット決定部１０２のＬＵＴに格納されているデータ値を変更することによって、補正関数の種類の変更に対応することができる。
【００４７】
次に、閾値が５箇所の場合の本構成を用いて、閾値が４箇所以下の補正関数を実装する場合について説明をする。本構成において、閾値が４箇所以下の補正関数を実装する場合も、閾値記憶部１００、第１の出力ビット記憶部１０１及び第２の出力ビット決定部１０２のＬＵＴに格納されているデータ値を変更することによって、補正関数の種類の変更に対応することができる。ｘ＝２、閾値が３箇所の補正関数を適用するとして、以下詳細に説明する。
【００４８】
図１０は、第２の実施形態で使用する補正関数の他の例を示す図である。横軸は入力階調値を示しており、縦軸は出力階調値を示している。また、図１１は、第２の実施形態に係る信号処理装置の第１の出力ビット記憶部１０１の他の例を説明するための図であり、図１０に示す補正関数を適用した場合の第１の出力ビット記憶部１０１に格納されたアドレス値とデータ値との関係を示している。
【００４９】
図１０において、閾値ｄ、ｅ、ｆは、入力階調値が最小値から最大値まで最小ステップ階調ずつ増加したときに、出力階調値の上位２ビットが変化する箇所の入力階調値を閾値とする。閾値ｇ、ｈについては、閾値ｆと同じ値に設定する。アドレス値０は、Ｉｎ≦ｄの場合の出力階調値の上位２ビットである“００”となる。アドレス値１は、ｄ＜Ｉｎ≦ｅの場合の出力階調値の上位２ビット“０１”となる。アドレス値２は、ｅ＜Ｉｎ≦ｆの場合の出力階調値の上位２ビット“１０”となる。また、アドレス値５は、ｈ＜Ｉｎの場合の出力階調値の上位２ビット“１１”となる。図１１ではアドレス値３及びアドレス値４に出力階調値の上位２ビット“１１”を格納しているが、これはどのような値であってもよく、設定しなくてもよい。図９のフローチャートに示す処理では、ステップＳ９０８及びＳ９１０の条件は、入力階調値がどのようなものであれ常に条件を満たさないことになる。
【００５０】
第２の出力ビット決定部１０２は、補正関数に基づいて、入力階調値に対応した出力階調値の下位（ｍ−ｘ）ビットを格納する。以上、補正関数の閾値が、例えば回路上で予め用意した閾値数よりも少ない場合の実装方法について説明した。ここでは閾値ｇ、ｈを閾値ｆと同一の値として説明したが、閾値ｇとｈには入力階調値の最大値を与えてもよい。この場合は、アドレス値３に対してｆ＜Ｉｎ≦ｇの場合の出力階調値の上位２ビットである“１１”を格納し、アドレス値４とアドレス値５はどのような値であってもよく、設定しなくてもよい。
【００５１】
本実施形態によれば、第１の実施形態と同じく、メモリ容量を低減しながらも精度の高い変換結果を得ることが可能となる。また、例えば回路上で予め閾値を多く準備しておくことで、さらに種々の補正関数の実装が可能となる。
【００５２】
次に、本発明の第３の実施形態について説明する。ガンマ（ガンマ＝２．２）変換等、入力階調に対して単調増加又は単調減少な出力値を得る補正関数を実装する場合は、より簡単な構成を用いて実装が可能である。
【００５３】
図１２は、本発明の第３の実施形態に係る信号処理装置の構成を示す図であって、ｎビット（ｎは２以上の整数）の入力信号をｍビット（ｍは２以上の整数）の出力信号に変換して出力する信号処理装置を示している。１００は閾値記憶部である。１０２は第２の出力ビット決定部である。１０３は第１の出力ビット決定部である。１０４はビット結合部である。第１の出力ビット決定部１０３は、入力信号、閾値記憶部１００及びビット結合部１０４と接続されており、入力階調値と閾値との大小関係に基づいてｘビットのアドレス値を生成し、生成したアドレス値をビット結合部１０４へ出力する。
【００５４】
図１３は、第３の実施形態で使用する補正関数の一例を示す図である。横軸は入力階調値を示しており、縦軸は出力階調値を示している。また、入力階調値に対して出力階調値が単調増加な補正関数を示している。
【００５５】
図１３に示すような単調増加な関数においては、第１の出力ビット決定部１０３で生成されるアドレス値そのものを出力値として扱うことができるため、アドレス値を出力値自体とすればよい。つまり、ｘ＝２としたとき、第１の出力ビット決定部１０３は、Ｉｎ≦ａの場合はアドレス値０を生成し、同様にａ＜Ｉｎ≦ｂの場合はアドレス値１、ｂ＜Ｉｎ≦ｃの場合はアドレス値２、ｃ＜Ｉｎの場合はアドレス値３を生成する。生成したアドレス値を２ビットの出力値としてビット結合部１０４へ出力する。
【００５６】
ガンマ変換やコントラスト変換等、一般的には単調増加な関数しか補正関数として適用しない場合がある。この場合は、第１の実施形態における第１の出力ビット記憶部１０１は必要なく、第１の出力ビット決定部１０３において生成したアドレス値をそのまま出力すればよい。単調減少な関数しか補正関数として適用しない場合も同様で、第１の出力ビット決定部１０３は、Ｉｎ≦ａの場合はアドレス値３を生成すればよく、ａ＜Ｉｎ≦ｂの場合はアドレス値２、ｂ＜Ｉｎ≦ｃの場合はアドレス値１、ｃ＜Ｉｎの場合はアドレス値０を生成すればよい。
【００５７】
また、例えば図５に示す補正関数のように単調減少ではない関数であっても、第１の出力ビット決定部１０３において生成したアドレス値と出力階調値の上位２ビットのデータ値とが一致する関数については、同様に適用できる。
【００５８】
本実施形態によれば、例えば単調増加な関数のように、第１の出力ビット決定部１０３において生成したアドレス値と出力階調値の上位２ビットのデータ値とが一致する関数を適用する場合、第１の出力ビット記憶部１０１が不要となる。従って、第１の実施形態と比較して、さらにメモリ容量の低減が可能となる。
【００５９】
次に、本発明の第４の実施形態について説明する。本実施形態では、ガンマ（ガンマ＝２．２）変換等に代表される、入力階調に対して単調増加な出力値を得る関数を補正関数として、補間処理を施した場合の構成について説明する。補間処理を適用することで、各ＬＵＴのメモリ容量をさらに低減することが可能となる。
【００６０】
図１４は、第４の実施形態に係る信号処理装置の構成を示す図であり、ｎビット（ｎは２以上の整数）の入力信号をｍビット（ｍは２以上の整数）の出力信号に変換して出力する信号処理装置を示している。１４００は閾値記憶部である。１４０１は加算部である。１４０２は第１の出力ビット決定部である。１４０３は第２の出力ビット決定部である。１４０４は第１のビット結合部である。１４０５は第２のビット結合部である。１４０６はＤＬ部である。１４０７は補間処理部である。入力信号、出力信号とは、例えば画像信号における各画素のＲＧＢ毎の階調値であったり、電圧値であったりする。
【００６１】
以下、ｎビット（ｎは２以上の整数）の入力階調値をｍビット（ｍは２以上の整数）の出力階調値に変換するものとして説明を行う。なお、説明中のｘは出力階調値の上位ｘビットを示し、１以上の整数であり、さらにｍ＞ｘを満たす。また、説明中のｓは入力階調値の下位ｓビットを示し、１以上の整数であり、さらにｎ＞ｓを満たす。
【００６２】
ｎビットの入力階調値のうち、下位ｓビットはＤＬ部１４０６にて所定の遅延時間だけ遅延され、補間処理部１４０７へ入力される。入力階調値の上位（ｎ−ｓ）ビットは、（ｎ−ｓ）ビットの入力信号として、加算部１４０１、第１の出力ビット決定部１４０２及び第２の出力ビット決定部１４０３へ入力される。ここで、第２の出力ビット決定部１４０３へ入力される入力階調値の上位（ｎ−ｓ）ビットの信号を“第１の下位ビットアドレス”と称すこととする。
【００６３】
加算部１４０１は、入力信号に最小ステップ階調の“１”を加算し、第２の出力ビット決定部１４０３へ出力する。なお、加算部１４０１における入力信号が（ｎ−ｓ）ビット精度において最大階調値の場合は、加算は行なわずに、入力信号をそのまま出力する。ここで、加算部１４０１からの（ｎ−ｓ）ビットの出力信号を“第２の下位ビットアドレス”と称すこととする。
【００６４】
第２の出力ビット決定部１４０３には、補正関数に基づいて、ｎビットの入力階調値の上位（ｎ−ｓ）ビットに対応した出力階調値の下位（ｍ−ｘ）ビットが、例えばＬＵＴに記憶されている。第２の出力ビット決定部１４０３に含まれるＬＵＴは、２つのアドレス入力に対して、各アドレスに対応した２つのデータを出力する。２つのアドレス入力とは、“第１の下位ビットアドレス”及び“第２の下位ビットアドレス”である。第２の出力ビット決定部１４０３は、“第１の下位ビットアドレス”に対応する出力データ（以下、
“第１の下位ビット”（図１４のＬ１）と称す）を第１のビット結合部１４０４へ出力する。また、第２の出力ビット決定部１４０３は、“第２の下位ビットアドレス”に対応する出力データ（以下、“第２の下位ビット”（図１４のＬ２）と称す）を第２のビット結合部１４０５へ出力する。
【００６５】
ここで、第２の出力ビット決定部１４０３に含まれるＬＵＴは、２つのアドレス入力に対して各アドレスに対応した２つのデータを出力する、所謂２入力２出力ＬＵＴとした。但し、ＬＵＴを参照する２つのアドレスが常に偶数値と奇数値であることに着目し、１入力１出力ＬＵＴを２つ（偶数アドレス用のＬＵＴと奇数アドレス用のＬＵＴ）を用いてもよい。
【００６６】
閾値記憶部１４００は、閾値を記憶するためのＬＵＴである。本実施形態の閾値とは、ｎビットの入力階調値の上位（ｎ−ｓ）ビットが最小値から最大値まで最小ステップ階調ずつ増加したときに、ｍビットの出力階調値の上位ｘビットが変化するときの、直前の入力階調値の上位（ｎ−ｓ）ビットを示す。
【００６７】
例えばｘ＝２、ｎ＝１５、ｓ＝３とする。１５ビットの入力階調値の上位１２ビットを、１２ビットの入力信号として、０（ｄ）から４０９５（ｄ）まで１階調ずつ増加していく。例えば、入力階調値の上位１２ビットが、６１２（ｄ）から６１３（ｄ）へ変化したときに、出力階調値の上位２ビットが“００”から“０１”に変化したとすると、６１２（ｄ）が閾値の１つとなる。閾値記憶部１４００は、閾値を第１の出力ビット決定部１４０２へ出力する。
【００６８】
第１の出力ビット決定部１４０２は、入力階調値の上位（ｎ−ｓ）ビットと閾値との大小関係に基づいて、ｘビットの２つの出力値を決定する。以下、この２つの出力値を"第１の上位ビット”（図１４のＭ１）と“第２の上位ビット”（図１４のＭ２）と称す。そして、第１の出力ビット決定部１４０２は、“第１の上位ビット”を第１のビット結合部１４０４へ出力し、“第２の上位ビット”を第２のビット結合部１４０５へ出力する。第１の出力ビット決定部１４０２の詳細は後述する。
【００６９】
第１のビット結合部１４０４は、“第１の上位ビット”を上位ビットとして、また“第１の下位ビット”を下位ビットとして結合し、ｍビットの結合結果を補間処理部１４０７へ出力する。第１のビット結合部１４０４における結合結果を“第１の補間データ”と称す。
【００７０】
第２のビット結合部１４０５は、“第２の上位ビット”を上位ビットとして、また“第２の下位ビット”を下位ビットとして結合し、ｍビットの結合結果を補間処理部１４０７へ出力する。第２のビット結合部１４０５における結合結果を、“第２の補間データ”と称す。
【００７１】
補間処理部１４０７は、“第１の補間データ”、“第２の補間データ”及びＤＬ部１４０６の出力値に基づいてｍビットの出力階調値を決定する。例えばｓ＝３として、ＤＬ部１４０６の出力値を“Ｓ”（１０進数とする）、“第１の補間データ”を“data１”、“第２の補間データ”を“data２”としたとき、出力階調値０ｔは、次式で表わされる。
０ｔ＝（data１×（８−Ｓ）／８）＋（data２×Ｓ／８）
上記の式は、“data１”と“data２”の間を２のｓ乗個に分割し、線形補間を用いて出力階調値を決定した例であって、どのような補間方法を用いてもよい。なお、加算部１４０１は、加算手段の適用例となる構成である。ＤＬ部１４０６は、遅延手段の適用例となる構成である。補間処理部１４０７は、出力手段の適用例となる構成である。第１のビット結合部１４０４は、第１の結合手段の適用例となる構成である。第２のビット結合部１４０５は、第２の結合手段の適用例となる構成である。
【００７２】
図１５は、第４の実施形態の第１の出力ビット決定部１４０２における処理の一例を示すフローチャートである。図１５を用いて、第１の出力ビット決定部１４０２の処理について説明する。なお、ｘ＝２として、図１３に示すように単調増加な関数において閾値をａ、ｂ、ｃとする。先ず、第１の出力ビット決定部１４０２は、閾値記憶部１４００より閾値ａ、ｂ、ｃを読み出す（ステップＳ１５０１）。第１の出力ビット決定部１４０２へ入力される（ｎ−ｓ）ビットの入力階調値をＩｎとすると、第１の出力ビット決定部１４０２は、入力階調値と閾値との大小関係がＩｎ＜ａであるか否かを判定する（ステップＳ１５０２）。入力階調値と閾値との大小関係がＩｎ＜ａである場合、第１の出力ビット決定部１４０２は、“第１の上位ビット”を“００”、“第２の上位ビット”を“００”として出力する（ステップＳ１５０３）。一方、入力階調値と閾値との大小関係がＩｎ＜ａではない場合、第１の出力ビット決定部１４０２は、入力階調値と閾値との大小関係がＩｎ＝ａであるか否かを判定する（ステップＳ１５０４）。入力階調値と閾値との大小関係がＩｎ＝ａである場合、第１の出力ビット決定部１４０２は、“第１の上位ビット”を“００”、“第２の上位ビット”を“０１”として出力する（ステップＳ１５０５）。一方、入力階調値と閾値との大小関係がＩｎ＝ａではない場合、第１の出力ビット決定部１４０２は、入力階調値と閾値との大小関係がａ＜Ｉｎ＜ｂであるか否かを判定する（ステップＳ１５０６）。入力階調値と閾値との大小関係がａ＜Ｉｎ＜ｂである場合、第１の出力ビット決定部１４０２は、“第１の上位ビット”を“０１”、“第２の上位ビット”を“０１”として出力する（ステップＳ１５０７）。一方、入力階調値と閾値との大小関係がａ＜Ｉｎ＜ｂではない場合、第１の出力ビット決定部１４０２は、入力階調値と閾値との大小関係がＩｎ＝ｂであるか否かを判定する（ステップＳ１５０８）。入力階調値と閾値との大小関係がＩｎ＝ｂである場合、第１の出力ビット決定部１４０２は、“第１の上位ビット”を“０１”、“第２の上位ビット”を“１０”として出力する（ステップＳ１５０９）。一方、入力階調値と閾値との大小関係がＩｎ＝ｂではない場合、第１の出力ビット決定部１４０２は、入力階調値と閾値との大小関係がｂ＜Ｉｎ＜ｃであるか否かを判定する（ステップＳ１５１０）。入力階調値と閾値との大小関係がｂ＜Ｉｎ＜ｃである場合、第１の出力ビット決定部１４０２は、“第１の上位ビット”を“１０”、“第２の上位ビット”を“１０“として出力する（ステップＳ１５１１）。一方、入力階調値と閾値との大小関係がｂ＜Ｉｎ＜ｃではない場合、第１の出力ビット決定部１４０２は、入力階調値と閾値との大小関係がＩｎ＝ｃであるか否かを判定する（ステップＳ１５１２）。入力階調値と閾値との大小関係がＩｎ＝ｃである場合、第１の出力ビット決定部１４０２は、“第１の上位ビット”を“１０”、“第２の上位ビット”を“１１”として出力する（ステップＳ１５１３）。一方、入力階調値と閾値との大小関係がＩｎ＝ｃではない場合、即ちｃ＜Ｉｎである場合、第１の出力ビット決定部１４０２は、“第１の上位ビット”を“１１”、“第２の上位ビット”を“１１”として出力する（ステップＳ１５１４）。以上が第１の出力ビット決定部１４０２が“第１の上位ビット”及び“第２の上位ビット”を決定するまでの処理の流れである。
【００７３】
上述したとおり、本実施形態では、“data１”と“data２”との間を２のｓ乗個に分割し、補間処理を行うことによって、出力階調値を求めている。閾値記憶部１４００の出力ビット数は（ｎ−ｓ）ビットで表わすことができるため、ｓの値が大きくなることで、ＬＵＴの出力ビット数を低減できる。また、第２の出力ビット決定部１４０３のアドレス数は、（２の（ｎ−ｓ））乗で表すことができるため、ｓの値が大きくなることで、第２の出力ビット決定部１４０３に含まれるＬＵＴのアドレス数を低減できる。
【００７４】
本実施形態では、単調増加な関数を補正関数として適用する場合を前提としているが、これに限ったものではなく、例えば単調減少な補正関数であったり、例えば図５に示す補正関数であったりしてもよい。図５に示す補正関数の場合は、第１の出力ビット決定部１４０２において、Ｉｎ＜ａ´の場合は、“第１の上位ビット”を“１１”、“第２の上位ビット”を“１１”とする。Ｉｎ＝ａ´の場合は、“第１の上位ビット”を“１１”、“第２の上位ビット”を“１０”とする。ａ´＜Ｉｎ＜ｂ´＝の場合は、“第１の上位ビット”を“１０”、“第２の上位ビット”を“１０”とする。Ｉｎ＝ｂ´の場合は、“第１の上位ビット”を“１０”、“第２の上位ビット”を“０１”とする。ｂ´＜Ｉｎ＜ｃ´＝の場合は、“第１の上位ビット”を“０１”、“第２の上位ビット”を“０１”とする。Ｉｎ＝ｃ´の場合は、“第１の上位ビット”を“０１”、“第２の上位ビット”を“００”とする。ｃ´＜Ｉｎの場合は、“第１の上位ビット”を“００”、“第２の上位ビット”を“００”とする。本実施形態によれば、閾値記憶部１４００と第２の出力ビット決定部１４０３とのメモリ容量を低減することができる。
【００７５】
次に、本発明の第５の実施形態について説明する。図１６は、本発明の第５の実施形態に係る信号処理装置の構成を示す図であり、ｎビット（ｎは２以上の整数）の入力信号をｍビット（ｍは２以上の整数）の出力信号に変換して出力する信号処理装置を示している。
【００７６】
１６００は第１の出力ビット記憶部である。基本的な構成は第４の実施形態と同じであるが、第１の出力ビット決定部１４０２に第１の出力ビット記憶部１６００が接続されている。第１の出力ビット記憶部１６００は、例えば２入力２出力のＬＵＴで構成されており、閾値に応じた出力階調値の上位ｘビットが記憶されている。本実施形態の閾値とは、第４の実施形態で説明したとおりである。閾値を３箇所として、第１の出力ビット決定部１４０２の説明をする。
【００７７】
第１の出力ビット決定部１４０２は、第４の実施形態で説明した“第１の上位ビット”と“第２の上位ビット”をアドレス値として、第１の出力ビット記憶部１６００の出力値を選択する。選択した出力値はそれぞれ、第１のビット結合部１４０４と第２のビット結合部１４０５へ出力される。
【００７８】
本実施形態によれば、第４の実施形態と同様に、閾値記憶部１４００と第２の出力ビット決定部１４０３とのメモリ容量を低減することができる。また、閾値に応じた任意な出力階調値の上位ｘビットをＬＵＴに記憶できるため、ＬＵＴのデータ値を変更するだけで、単調増加や単調減少な関数に限らず、種々の補正関数の実装が可能となる。
【００７９】
以上、第１〜第５の実施形態について説明をしたが、上述した実施形態において、本発明の要旨を逸脱しない範囲内で種々の変更を行なってもよい。
【００８０】
特にｘ＝２として複数の補正関数を例に説明を行ったが、ｘは１以上の整数であり、さらにｍ＞ｘを満たせばどのようなものでもよく、また補正関数もどのようなものであってもよい。同様に、ｎ、ｓ、ｍについても各条件を満たせばどのような値であってもよい。また、例えばｘ＝０、ｓ＝０とし、ビット結合部において切替手段を設けることによって、ＬＵＴ方式との切替実装が可能である。その場合は第２の出力ビット決定部１４０３のＬＵＴのみ使用する。
【００８１】
また、各実施形態では、出力階調値の上位を、第１の出力ビット決定部１０２で決定し、出力階調値の下位（ｍ−ｘ）ビットを、第２の出力ビット決定部１０３で決定するものとして説明したがこれに限らない。上述したが、第１の出力ビット決定部１０２で決定する出力ビット及び第２の出力ビット決定部１０３で決定する出力ビットは出力階調値ｍビット中のどのビットに対応していてもよい。
【００８２】
同様に、第１の出力ビット決定部１０２への入力ビット及び第２の出力ビット決定部１０３への入力ビットは入力階調値ｎビット中のどのビットに対応していてもよい。また、閾値の決め方についても上述の限りではなく、どのような方法であってもよい。特に第１の出力ビット記憶部１６００のメモリ容量が低減するようなものであるとよい。
【００８３】
上述したように、本実施形態によれば、メモリ容量を低減しながらも精度の高い変換結果を得ることが可能となる。また、ＬＵＴのデータ値を変更するだけで、種々の補正関数の実装が可能となる。
【００８４】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００８５】
１００、１４００：閾値記憶部、１０１：第１の出力ビット記憶部、１０２、１４０３：第２の出力ビット決定部、１０３、１４０２：第１の出力ビット決定部、１０４：ビット結合部、１４０４：第１のビット結合部、１４０５：第２のビット結合部、１４０６：ＤＬ部、１４０７：補間処理部、１６００：第１の出力ビット記憶部
【図１】
0005528096.tif 000002
【図２】
0005528096.tif 000003
【図３】
0005528096.tif 000004
【図４】
0005528096.tif 000005
【図５】
0005528096.tif 000006
【図６】
0005528096.tif 000007
【図７】
0005528096.tif 000008
【図８】
0005528096.tif 000009
【図９】
0005528096.tif 000010
【図１０】
0005528096.tif 000011
【図１１】
0005528096.tif 000012
【図１２】
0005528096.tif 000013
【図１３】
0005528096.tif 000014
【図１４】
0005528096.tif 000015
【図１５】
0005528096.tif 000016
【図１６】
0005528096.tif 000017