(57)【特許請求の範囲】
【請求項１】
負値の画像データを含む画像に画像処理を施す画像処理装置であって、
前記負値の画像データを含む画像に非線形変換処理を施して、負値の画像データを含まない画像に変換する変換部と、
前記負値の画像データを含まない画像に所定の画像処理を施す画像処理部と、
前記画像処理が施された後の、前記負値の画像データを含まない画像に前記非線形変換処理の逆変換処理を施して、前記画像処理が施された後の、前記負値の画像データを含む画像に逆変換する逆変換部とを備え、
前記変換部は、前記画像データの所定値を境界として、該画像データが所定値よりも小さい場合と所定値以上の場合とで異なる第１および第２の関数を用いて前記非線形変換処理を施すものであって、前記第１および第２の関数は、出力値が前記境界で連続するものであることを特徴とする画像処理装置。
【請求項２】
前記画像データの所定値は０であって、前記変換部は、前記画像データが負値の場合と負値ではない場合とで異なる第１および第２の関数を用いて前記非線形変換処理を施すものであることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１の関数は、前記負値の画像データがマイナス無限大方向に減少するに従い前記出力値の変化の傾きが小さくなる関数であることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記第２の関数は、前記負値ではない画像データを対数に変換する関数であることを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
前記負値の画像データを含む画像の画像データの値をｘ、該ｘに加えるオフセット値をｏｆｆｓｅｔとして、前記第１の関数は、（−ｘ）＾０．５−Ｌｏｇ10（ｏｆｆｓｅｔ）であり、前記第２の関数は、−Ｌｏｇ10（ｘ＋ｏｆｆｓｅｔ）であることを特徴とする請求項２〜４のいずれか一項に記載の画像処理装置。
【請求項６】
前記画像処理部は、前記負値の画像データを含まない画像に前記画像処理として階調変換を施すものである請求項１〜５のいずれか一項に記載の画像処理装置。
【請求項７】
前記画像処理部は、ルックアップテーブルを用いて前記画像処理を施すものである請求項１〜６のいずれか一項に記載の画像処理装置。
【請求項８】
前記ルックアップテーブルは、入力値に対応する出力値が定義された既存のルックアップテーブルから作成されるものであって、前記入力値および出力値を対数変換し、該対数変換された入力値の最小値と最大値との間を等間隔に線形補間して所定の範囲の整数値に割り当て、該等間隔に割り当てられた入力値の前後の対数変換された入力値に対応する２つの対数変換された出力値の間を等間隔に線形補間して、前記等間隔に割り当てられた入力値に対応する出力値を求めることにより作成されるものである請求項７に記載の画像処理装置。
【請求項９】
前記画像処理部は、演算式を用いて前記画像処理を施すものである請求項１〜６のいずれか一項に記載の画像処理装置。
【請求項１０】
当該画像処理装置は、シーン基準の画像色空間で定義される画像に画像処理を施すものである請求項１〜９のいずれか一項に記載の画像処理装置。
【請求項１１】
負値の画像データを含む画像に画像処理を施す画像処理方法であって、
前記負値の画像データを含む画像に非線形変換処理を施して、負値の画像データを含まない画像に変換する変換ステップと、
前記負値の画像データを含まない画像に所定の画像処理を施す画像処理ステップと、
前記画像処理が施された後の、前記負値の画像データを含まない画像に前記非線形変換処理の逆変換処理を施して、前記画像処理が施された後の、前記負値の画像データを含む画像に逆変換する逆変換ステップとを含み、
前記変換ステップは、前記画像データの所定値を境界として、該画像データが所定値よりも小さい場合と所定値以上の場合とで異なる第１および第２の関数を用いて前記非線形変換処理を施し、前記第１および第２の関数は、出力値が前記境界で連続することを特徴とする画像処理方法。
【請求項１２】
ルックアップテーブルを用いて前記画像処理を施す請求項１１に記載の画像処理方法。
【請求項１３】
前記ルックアップテーブルは、入力値に対応する出力値が定義された既存のルックアップテーブルから作成されるものであって、前記入力値および出力値を対数変換し、該対数変換された入力値の最小値と最大値との間を等間隔に線形補間して所定の範囲の整数値に割り当て、該等間隔に割り当てられた入力値の前後の対数変換された入力値に対応する２つの対数変換された出力値の間を等間隔に線形補間して、前記等間隔に割り当てられた入力値に対応する出力値を求めることにより作成される請求項１２に記載の画像処理方法。
【請求項１４】
演算式を用いて前記画像処理を施す請求項１１に記載の画像処理方法。
【請求項１５】
請求項１１〜１４のいずれか一項に記載の画像処理方法の各ステップをコンピュータに実行させるためのプログラム。
【請求項１６】
請求項１１〜１４のいずれか一項に記載の画像処理方法の各ステップをコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負値（マイナス）の画像データを含む広ダイナミックレンジ画像に画像処理を施す画像処理装置、画像処理方法およびプログラムに関するものである。
【背景技術】
【０００２】
撮影物体、情景の正確な色情報を持つ、シーン基準（scene-referred）の画像表現は、正確な色の再現の目的や、カラーマネージメントにおける撮影画像の基準として用いられている。例えば、米映画アカデミー協会（ＡＭＰＡＳ）では、映画製作におけるカラーマネージメントの中で、非特許文献１に記載されたシーン基準の広ダイナミックレンジ画像色空間（ＡＣＥＳ）を定義し、様々なカメラで撮影された映像の色を一致させる基準としている。
【０００３】
ＡＣＥＳの色空間は、前述のように非常に広いダイナミックレンジを有し、画素の画像データが浮動小数で表現されている。階調変換、画像変換等の画像処理の際には、この広いダイナミックレンジの画像データを入力として扱う必要がある。
【０００４】
画像の階調変換を行う方法として、例えば、演算式を使う方法、ＬＵＴ（ルックアップテーブル）を使う方法等がある。演算式を使う方法は、計算式が複雑になるため、任意の階調特性を表現する事が困難である。
【０００５】
これに対し、ＬＵＴは離散的ではあるが、任意の値を設定できるため、任意特性を表現可能であり、一般的に広く用いられている。ＬＵＴは、特定の離散的な入力値に対応する出力値を記述したテーブルである。その種類には以下の表１に示すタイプＡおよび表２に示すタイプＢの２種類の形態がある。図８は、表１および表２に対応するＬＵＴの入力値と出力値との関係を表すグラフである。
【０００６】
【表１】
0005815386.tif 000002
【０００７】
【表２】
0005815386.tif 000003
【０００８】
タイプＡのＬＵＴは、表１に示すように、ＬＵＴに設定されている入力値（設定入力値）の間隔が任意であり、任意の入力値に対する出力値は、その入力値を挟み込む（任意の入力値の前後の）２つの設定入力値から補間演算によって求められる。
【０００９】
タイプＢのＬＵＴは、表２に示すように、入力値の間隔が等間隔であり、任意の入力値に対する出力値はタイプＡ同様、その入力値を挟み込む、２つの設定入力値から補間演算によって求められる場合と、任意の入力値を入力値間隔で丸め込んで（例えば、入力値を四捨五入して）、一致する設定入力値の出力値を使用する場合がある。タイプＢのＬＵＴは、いずれも出力値のデータ参照が入力値からアドレス計算ででき、非常に簡単であるため、一般的に広く用いられている。
【００１０】
このタイプＢのＬＵＴは前述の表２から分かるように、広い範囲のデータを扱うためにはデータ数が膨大になる。広ダイナミックレンジ画像を対象とする場合には、屋外の太陽光が１００００ｃｄ／ｍ2以上、月明りがおよそ０．０１ｃｄ／ｍ2であり、ダイナミックレンジで６（＝Ｌｏｇ10（１００００／０．０１））ある。通常、ＬＵＴの入力は等間隔ステップの値であるが、前記ダイナミックレンジをカバーするには、１０6＝１００００００個の入力値が必要となる上、暗い領域では分解能が粗くなるという問題がある。
【００１１】
人間の明るさに対する知覚がＬｏｇ関数の関係を持つ（Weber-Fechner's Law）事から、輝度リニアな画像データをＬｏｇ変換した後にＬＵＴを施す方法が用いられる。例えば、ダイナミックレンジ６の範囲をＬｏｇ10＝０．０１の間隔で持つＬＵＴは、６００個の入力値となる。この場合、ＬＵＴの入力値の個数が、前述の真数の場合と比較して非常に少なくてすむ事から、入力値の個数をある程度増やして分解能を上げる事が可能となり、暗い領域の分解能を確保しつつ、高輝度までをカバーする事ができる。
【００１２】
しかしながら、Ｌｏｇ変換は、入力が０の場合に無限大、負の場合には演算不能となり、負の画像データが取り扱えなくなる。画像データは通常０以上の正の値である事がこれまでほとんどであったため、問題では無かった。しかしながら、シーン基準の画像データの場合、カメラで撮影された画像データをシーン基準の色に変換する必要があり、この演算の結果として負の値が発生する事がある。この負の値をＬｏｇ変換の前に単純にクリップする方法が考えられるが、画像が不自然になる上に、情報が欠落してしまう。
【００１３】
ここで、本発明に関連性のある先行技術文献として、特許文献１，２がある。
【００１４】
特許文献１には、広ＤＲ（ダイナミックレンジ）画像の輝度を対数変換し、対数変換された画像の輝度をトーンカーブに相当するＬＵＴに基づいて補正し、ＬＵＴで補正された画像の階調をディスプレイが表示可能な階調の範囲に圧縮した後、階調が圧縮された画像の輝度を対数逆変換して、階調が圧縮された画像の輝度として出力する画像処理装置が記載されている。
【００１５】
特許文献２には、デジタル画像のコントラストを、非線形変換関数ｑ（ｘ）により強調する方法が記載されている。また、同文献には、負の値ｘ＜０に対処するために、変換関数を負の領域で、ｑ（ｘ）＝−ｑ（−ｘ）に拡張することが記載されている。また、同文献には、変換関数ｑ（ｘ）として、指数関数項と線形項とを組み合わせたものが記載されている。
【００１６】
しかし、特許文献１では、負値の画像データを扱うことができない。一方、特許文献２はコントラスト強調処理に関するものであって、広ダイナミックレンジ画像の階調処理に関するものではないし、画像を対数変換するものでもない。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００４−２２１６４４号公報
【特許文献２】特開２００３−２８３９２７号公報
【非特許文献】
【００１８】
【非特許文献１】Specification S-2008-001, Academy Color Encoding Specification (ACES), The Academy of Motion Picture Arts and Sciences, Science and Technology Council, Image Interchange Framework Subcommittee, Version 1.0, August 12, 2008
【発明の概要】
【発明が解決しようとする課題】
【００１９】
本発明の第１の目的は、負値の画像データを含む画像に画像処理を施すことができる画像処理装置、画像処理方法およびプログラムを提供することにある。
また、本発明の第２の目的は、上記第１の目的に加えて、負値の画像データを含む画像であっても、人間の知覚能に適したスケールでの分解能を確保しつつ画像処理を施すことができる画像処理装置、画像処理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００２０】
上記目的を達成するために、本発明は、負値の画像データを含む画像に画像処理を施す画像処理装置であって、
前記負値の画像データを含む画像に非線形変換処理を施して、負値の画像データを含まない画像に変換する変換部と、
前記負値の画像データを含まない画像に所定の画像処理を施す画像処理部と、
前記画像処理が施された後の、前記負値の画像データを含まない画像に前記非線形変換処理の逆変換処理を施して、前記画像処理が施された後の、前記負値の画像データを含む画像に逆変換する逆変換部とを備え、
前記変換部は、前記画像データの所定値を境界として、該画像データが所定値よりも小さい場合と所定値以上の場合とで異なる第１および第２の関数を用いて前記非線形変換処理を施すものであって、前記第１および第２の関数は、出力値が前記境界で連続するものであることを特徴とする画像処理装置を提供するものである。
【００２２】
また、前記画像データの所定値は０であって、前記変換部は、前記画像データが負値の場合と負値ではない場合とで異なる第１および第２の関数を用いて前記非線形変換処理を施すものであることが好ましい。
【００２３】
また、前記第１の関数は、前記負値の画像データがマイナス無限大方向に減少するに従い前記出力値の変化の傾きが小さくなる関数であることが好ましい。
【００２４】
また、前記第２の関数は、前記負値ではない画像データを対数に変換する関数であることが好ましい。
【００２５】
また、前記負値の画像データを含む画像の画像データの値をｘ、該ｘに加えるオフセット値をｏｆｆｓｅｔとして、前記第１の関数は、（−ｘ）＾０．５−Ｌｏｇ10（ｏｆｆｓｅｔ）であり、前記第２の関数は、−Ｌｏｇ10（ｘ＋ｏｆｆｓｅｔ）であることが好ましい。
【００２６】
また、前記画像処理部は、前記負値の画像データを含まない画像に前記画像処理として階調変換を施すものであることが好ましい。
【００２７】
また、前記画像処理部は、ルックアップテーブルを用いて前記画像処理を施すものであることが好ましい。
【００２８】
また、前記ルックアップテーブルは、入力値に対応する出力値が定義された既存のルックアップテーブルから作成されるものであって、前記入力値および出力値を対数変換し、該対数変換された入力値の最小値と最大値との間を等間隔に線形補間して所定の範囲の整数値に割り当て、該等間隔に割り当てられた入力値の前後の対数変換された入力値に対応する２つの対数変換された出力値の間を等間隔に線形補間して、前記等間隔に割り当てられた入力値に対応する出力値を求めることにより作成されるものであることが好ましい。
【００２９】
また、前記画像処理部は、演算式を用いて前記画像処理を施すものであることが好ましい。
【００３０】
また、当該画像処理装置は、シーン基準の画像色空間で定義される画像に画像処理を施すものであることが好ましい。
【００３１】
また、本発明は、負値の画像データを含む画像に画像処理を施す画像処理方法であって、
前記負値の画像データを含む画像に非線形変換処理を施して、負値の画像データを含まない画像に変換する変換ステップと、
前記負値の画像データを含まない画像に所定の画像処理を施す画像処理ステップと、
前記画像処理が施された後の、前記負値の画像データを含まない画像に前記非線形変換処理の逆変換処理を施して、前記画像処理が施された後の、前記負値の画像データを含む画像に逆変換する逆変換ステップとを含み、
前記変換ステップは、前記画像データの所定値を境界として、該画像データが所定値よりも小さい場合と所定値以上の場合とで異なる第１および第２の関数を用いて前記非線形変換処理を施し、前記第１および第２の関数は、出力値が前記境界で連続することを特徴とする画像処理方法を提供する。
【００３２】
ここで、ルックアップテーブルを用いて前記画像処理を施すことが好ましい。
【００３３】
また、前記ルックアップテーブルは、入力値に対応する出力値が定義された既存のルックアップテーブルから作成されるものであって、前記入力値および出力値を対数変換し、該対数変換された入力値の最小値と最大値との間を等間隔に線形補間して所定の範囲の整数値に割り当て、該等間隔に割り当てられた入力値の前後の対数変換された入力値に対応する２つの対数変換された出力値の間を等間隔に線形補間して、前記等間隔に割り当てられた入力値に対応する出力値を求めることにより作成されることが好ましい。
【００３４】
また、演算式を用いて前記画像処理を施すことが好ましい。
【００３５】
また、本発明は、上記に記載の画像処理方法の各ステップをコンピュータに実行させるためのプログラムを提供する。
【００３６】
また、本発明は、上記に記載の画像処理方法の各ステップをコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
【発明の効果】
【００３７】
本発明によれば、負値の画像データを含む画像を負値の画像データを含まない画像に変換することにより、負値の画像データを含む画像であっても、画像処理を施すことができる。また、本発明によれば、例えば、画像データが負値の場合と負値ではない場合とで異なる関数を用いて画像に非線形変換処理を施すことにより、人間の知覚能に適したスケールでの分解能を確保しつつ画像に画像処理を施すことができる。
【図面の簡単な説明】
【００３８】
【図１】本発明の画像処理装置の構成を表す一実施形態のブロック図である。
【図２】図１に示す画像処理装置の作用を表すフローチャートである。
【図３】表５に対応するＬＵＴの入力値と出力値との関係を表すグラフである。
【図４】図３に示すＬＵＴをカスタムＬｏｇ変換した後のＬＵＴのカスタムＬｏｇ入力値とカスタムＬｏｇ出力値との関係を表すグラフである。
【図５】図３および図４に示すＬＵＴを用いて画像を階調変換する様子を表す概念図である。
【図６】カスタムＬｏｇ変換関数の入力値のＬｏｇ変換値と出力値との関係を表すグラフである。
【図７】カスタムＬｏｇ変換関数の入力値と出力値との関係を表すグラフである。
【図８】表１および表２に対応するＬＵＴの入力値と出力値との関係を表すグラフである。
【発明を実施するための形態】
【００３９】
以下に、添付の図面に示す好適実施形態に基づいて、本発明の画像処理装置、画像処理方法およびプログラムを詳細に説明する。
【００４０】
図１は、本発明の画像処理装置の構成を表す一実施形態のブロック図である。同図に示す画像処理装置１０は、負値の画像データを含む画像に対して画像処理を施すものであって、非線形変換部１２と、ＬＵＴ１４と、逆変換部１６とによって構成されている。
【００４１】
非線形変換部１２は、負値の画像データ（デジタル画像データ）を含む画像（入力画像）に非線形変換処理、例えば、Ｌｏｇ変換（対数変換）、指数変換などの非線形変換処理を施して、負値の画像データを含まない画像に変換する。
【００４２】
ＬＵＴ１４は、本発明の画像処理部であって、非線形変換部１２により変換された負値の画像データを含まない画像に所定の画像処理、例えば、階調変換、画像変換などの画像処理を施して、画像処理が施された後の、負値の画像データを含まない画像を出力する。
【００４３】
ＬＵＴ１４は、画像データの１入力に対して１出力を行う１次元のＬＵＴでもよいし、例えば、ＲＧＢ（赤緑青）の３色の画像データに対応する３入力に対して３出力を行う３次元のＬＵＴでもよい。
【００４４】
逆変換部１６は、ＬＵＴ１４により画像処理が施された後の、負値の画像データを含まない画像に非線形変換部１２の非線形変換処理の逆変換処理を施して、画像処理が施された後の、負値の画像データを含む画像（出力画像）に逆変換して出力する。
【００４５】
次に、図２に示すフローチャートを参照して、画像処理装置１０の作用を説明する。
【００４６】
画像処理装置１０には、負値の画像データを含む画像が入力される。負値の画像データを含む画像は、非線形変換部１２により非線形変換処理が施されて、負値の画像データを含まない画像に変換される（ステップＳ１２）。負値の画像データを含まない画像は、ＬＵＴ１４により画像処理が施され（ステップＳ１４）、逆変換部１６により非線形変換処理の逆変換処理が施されて、画像処理が施された後の、負値の画像データを含む画像に逆変換されて出力される（ステップＳ１６）。
【００４７】
画像処理装置１０では、負値の画像データを含む画像を負値の画像データを含まない画像に変換することにより、負値の画像データを含む画像であっても、画像処理を施すことができる。
【００４８】
以下、画像処理装置１０について具体的に説明する。
まず、非線形変換部１２において、負値の画像データを含む画像に非線形変換処理を施すカスタムＬｏｇ変換について説明する。
【００４９】
通常のＬｏｇ変換では、入力値（真数）ｘが０の場合の出力値（対数）はマイナス無限大であり、入力値ｘが負値の場合の出力値は計算不能となる。これに対し、カスタムＬｏｇ変換の一例として、入力値ｘにあるオフセット値ｏｆｆｓｅｔを加えたものをＬｏｇ変換する事により、入力値ｘ＝−オフセット値ｏｆｆｓｅｔまでの演算を可能にすることができる。以下の表３に入力値ｘに対して、オフセット値ｏｆｆｓｅｔとして１、０．０１を加えた場合の例を示す。
【００５０】
【表３】
0005815386.tif 000004
【００５１】
表３の第１列（左端の列）は、非線形変換部１２への入力値（真数）ｘであり、画像データのピクセル値（画素値）に相当する。この例では、-０．９９９９９から１０００までの値を有する画像データを入力することを想定している。
【００５２】
第２列は、−Ｌｏｇ10（ｘ＋１）で表される関数を用いて、入力値ｘにオフセット値ｏｆｆｓｅｔ＝１を加えた場合のカスタムＬｏｇ変換の演算結果を示している。Ｌｏｇの前のマイナス符号は、演算結果が濃度と同じ符号になる様に合わせたものである。カスタムＬｏｇ変換の演算結果は、ＬＵＴ１４の入力値となるため、本例では１２ビット（１２ｂｉｔ）のＬＵＴを使用する事を想定し、カスタムＬｏｇ変換の出力範囲である−３〜５を量子化して０〜４０９５に割り当てる。
【００５３】
第３列は、ＬＵＴ１４への入力値を示している。第３列を見ると、第１列の非線形変換部１２への入力値ｘが０．００１から０の範囲にわたって、第３列のＬＵＴ１４への入力値は全て１５３５になっており、このカスタムＬｏｇ変換では非線形変換部１２への入力値ｘが０．００１以下の分解能が無い事を示している。従って、このカスタムＬｏｇ変換では、０．００１から０までの値（画像の暗い、濃度の高い領域）の画像データが表現できない事になる。
【００５４】
第４列は、オフセット値ｏｆｆｓｅｔ＝０．０１とした場合のカスタムＬｏｇ変換の演算結果であり、第５列は、同様にカスタムＬｏｇ変換の出力範囲である−３〜７を量子化して０〜４０９５に割り当てた場合の値を示している。この場合、−０．０１から１０００までの値を有する画像データを入力することを想定しており、０．００００１以下の分解能が無い事を示している。従って、このカスタムＬｏｇ変換では、０．０００１から０までの値の画像データが表現できない事になる。
【００５５】
この様に、入力値ｘに所定のオフセット値ｏｆｆｓｅｔを加えるカスタムＬｏｇ変換では、オフセット値ｏｆｆｓｅｔを大きくすれば、処理可能な画像データの負値のレンジ（範囲）を広げる事ができるが、画像の暗い濃度の高い領域において出力値の分解能が悪くなり、その部分の画質が劣化することになる。
【００５６】
この問題を解決して、処理可能な画像データの負値の範囲を広げ、なおかつ、所望の出力値の分解能が得られるように、画像処理装置１０では、非線形変換部１２が、例えば、画像データの“０”を境界として、画像データが負値の場合と負値ではない場合とで異なる第１および第２の関数を用いて、画像データが負値の場合と負値ではない場合とで異なる非線形変換処理を施す。
【００５７】
ここで、第１の関数と第２の関数は、両者の出力値が境界で連続するものであれば何ら制限はない。第１および第２の関数の出力値が境界で連続するとは、言い換えると、第１の関数の境界における出力値と第２の関数の境界における出力値が不連続ではないことを意味する。さらに言えば、第１の関数の境界における出力値と第２の関数の境界における出力値は、必要とする出力値の分解能の値以上に離れていないことが望ましい。
【００５８】
以下、“０”を境界として、非線形変換部１２への入力値ｘが負値の場合には、第１の関数として、（−ｘ）＾０．５−Ｌｏｇ10（ｏｆｆｓｅｔ）、負値ではない場合には、第２の関数として、−Ｌｏｇ（ｘ+ｏｆｆｓｅｔ）用いる場合を説明する。
【００５９】
この場合、第１および第２の関数の境界における出力値は共に、−Ｌｏｇ10（ｏｆｆｓｅｔ）となって一致する。つまり、第１および第２の関数の出力値は連続する。画像データが負値の場合は、（−ｘ）＾０．５−Ｌｏｇ10（ｏｆｆｓｅｔ）で処理されるので、オフセット値ｏｆｆｓｅｔを、所望の分解能が得られる程度に小さな値にする事ができる。オフセット値ｏｆｆｓｅｔ＝０．０００００１とした場合の例を表４に示す。
【００６０】
【表４】
0005815386.tif 000005
【００６１】
この例のように、画像データが負値の場合と負値ではない場合とで異なる第１および第２の関数を用いて非線形変換処理を施すことにより、画像データの負値はマイナス無限大まで扱うことができるが、表４では−０．９９９９９〜１０００の範囲の値を受け付け可能とし、Ｌｏｇ変換の出力を１２ビットのＬＵＴの０〜４０９５の整数値に割り付けている。表４の結果から、０．００００１と０の間の暗い側の分解能も確保出来ている事がわかる。
【００６２】
次に、この入力値ｘが負値の場合と負値ではない場合とで異なる関数を使用するカスタムＬｏｇ変換を使うために、既存のＬＵＴから、本発明に係るＬＵＴを作成（変更）する方法について説明する。
【００６３】
例えば、非特許文献１に記載されているようなシーン基準の画像色空間で定義される、負値の画像データを含む広ダイナミックレンジ画像の階調特性を変更するために、ＬＵＴが輝度（真数）スケールで定義されているとする。表５に階調変換用のＬＵＴの一例を示す。この階調変換用ＬＵＴは、図３のグラフに示すように、入力値として、−１〜１０００までのレンジの画像データが入力されると、出力値として、入力値に対応する−０．０１〜１の画像データを出力するものである。
【００６４】
【表５】
0005815386.tif 000006
【００６５】
表５に示す階調変換用ＬＵＴは、入力間隔を不均等とすることで必要な領域に必要な精度を割り当てている。これを、入力間隔が等間隔のＬＵＴで処理できるようにカスタムＬｏｇ変換を適用することを考える。この場合、ＬＵＴへの入力値及び出力値ともに、Ｌｏｇ変換された後の値とすればよいので、図４のグラフに示すように、表５のＬＵＴの入力値、出力値ともにＬｏｇ変換を行う。Ｌｏｇ変換後の階調変換用ＬＵＴを表６に示す。
【００６６】
【表６】
0005815386.tif 000007
【００６７】
表６の第３列が入力値に対応するカスタムＬｏｇ変換後の入力値、第４列が出力値に対応するカスタムＬｏｇ変換後の出力値である。
【００６８】
例えば、１２ビットのＬＵＴを作成する場合、アドレス計算できるように、カスタムＬｏｇ変換後の入力値のレンジである−３〜７（最小値〜最大値）の間を等間隔に線形補間して１２ビットのＬＵＴの０〜４０９５の入力値（整数値）に割り当てる。出力値は通常浮動少数で表現する事が出来るので、表６の第４列のカスタムＬｏｇ出力値を元に、等間隔に割り当てられた入力値の前後のＬｏｇ変換された入力値に対応する２つのＬｏｇ変換された出力値の間を等間隔に線形補間して求める。作成したＬＵＴを表７に示す。
【００６９】
【表７】
0005815386.tif 000008
【００７０】
このようにして作成したＬＵＴとカスタムＬｏｇ変換関数を使って画像処理（階調変換）を行う計算の流れを図５に示す。
【００７１】
画像の入力値に対して、まず、下記カスタムＬｏｇ変換関数を用いてカスタムＬｏｇ変換の演算を行う。このカスタムＬｏｇ変換関数の計算式には、カスタムＬｏｇ変換の出力値の範囲である−３〜７を０〜４０９５に割り当てる計算が含まれている。
【００７２】
カスタムＬｏｇ変換関数
（−Ｌｏｇ10（ｘ＋０．０００００１）＋３）／（７＋３）＊４０９５）；ｘ≧０
（（−ｘ）＾０．５−Ｌｏｇ10（０．０００００１）＋３）／（７＋３）＊４０９５；ｘ＜０
【００７３】
続いて、カスタムＬｏｇ変換の出力値はＬＵＴに入力され、階調変換後のカスタムＬｏｇ変換の値がＬＵＴの出力値から得られる。
【００７４】
最後に、ＬＵＴの出力値は、下記カスタムｕｎＬｏｇ変換関数を用いてカスタムＬｏｇ変換の逆変換であるカスタムｕｎＬｏｇ変換の計算により、真数（輝度）に戻される。この結果は、同図上側の真数のＬＵＴを用いて計算された結果と同じになる。
【００７５】
カスタムｕｎＬｏｇ変換関数
１０．０ｘ−０．０００００１；ｘ＜−Ｌｏｇ10（０．０００００１）
（ｘ＋Ｌｏｇ10（０．０００００１））2.0；ｘ≧−Ｌｏｇ10（０．０００００１）
【００７６】
これにより、入力値が等間隔で、かつ膨大なサイズを必要としない、人間の知覚能に適したスケールでの分解能を確保したＬＵＴで、負の値が扱える真数ＬＵＴと同じ結果を得る事が出来る。同図上側の真数のＬＵＴを用いて計算を行うと、膨大なサイズのテーブルが必要になる。これに対して、同図下側の本発明に係るカスタムＬｏｇ変換関数、ＬＵＴ、カスタムｕｎＬｏｇ変換関数を用いて計算を行うと、例えば、上記例では１２ビットという少ないＬＵＴで同じ計算結果を得ることができる。
【００７７】
次に、Ｌｏｇ変換の分解能について説明する。
【００７８】
図６は、カスタムＬｏｇ変換関数の入力値のＬｏｇ変換値と出力値との関係を表すグラフである。このグラフの横軸はカスタムＬｏｇ変換関数の入力値ｘのＬｏｇ変換値（Ｌｏｇ10（ｘ））、縦軸はカスタムＬｏｇ変換関数の出力値である。このグラフは、カスタムＬｏｇ変換関数の入力値ｘの入力レンジを、表３に示す入力値ｘ（真数）である０．００００１〜１０００までの範囲のリニアな値のＬｏｇ変換値としたものである。
【００７９】
このグラフには、入力値ｘのオフセット値ｏｆｆｓｅｔとして、１．０、０．０１、０．０００１を加えるカスタムＬｏｇ変換関数である、−Ｌｏｇ10（ｘ＋１．０）、−Ｌｏｇ10（ｘ＋０．０１）、−Ｌｏｇ10（ｘ＋０．０００１）の出力値と、オフセット値ｏｆｆｓｅｔが０．０００００１で、さらに、入力値ｘが負値の場合と負値ではない場合とで異なる関数を使用するカスタムＬｏｇ変換関数である、−Ｌｏｇ10（ｘ＋０．０００００１）；ｘ≧０，（−ｘ）＾０．５；ｘ＜０の出力値が示されている。
【００８０】
所定のオフセット値ｏｆｆｓｅｔを加えるカスタムＬｏｇ変換の場合、オフセット値ｏｆｆｓｅｔを大きくするに従って処理可能な負値のレンジを大きくすることができるが、このグラフに示すように、出力値の上限値が小さくなる。例えば、オフセット値ｏｆｆｓｅｔが１．０の場合の出力値の上限値は入力値ｘが０の場合であり、−Ｌｏｇ10（１．０）＝０である。また、オフセット値ｏｆｆｓｅｔが０．０１の出力値の上限も同様に入力値ｘが０の場合であり、−Ｌｏｇ10（０．０１）≒２である。
【００８１】
このように、所定のオフセット値ｏｆｆｓｅｔを加えるカスタムＬｏｇ変換の場合、オフセット値ｏｆｆｓｅｔに応じて出力値の上限値、つまり、分解能が決定される。表３に示すように、例えば、オフセット値ｏｆｆｓｅｔが１．０の場合、Ｌｏｇ10（ｘ）が２以上の出力値が同じ値となり、入力値ｘが０．０１以下の場合に出力値の分解能がなくなる。同様に、オフセット値ｏｆｆｓｅｔが０．０１の場合、Ｌｏｇ10（ｘ）が４以上の出力値が同じ値となり、入力値ｘが０．００１以下の場合に出力値の分解能がなくなる。
【００８２】
つまり、所定のオフセット値ｏｆｆｓｅｔを加えるカスタムＬｏｇ変換の場合、オフセット値ｏｆｆｓｅｔを小さくするに従って、より小さな値まで出力値の分解能を確保することができるため、出力値の分解能を確保するためにはオフセット値ｏｆｆｓｅｔを小さくすることが望まれる。しかし、所定のオフセット値ｏｆｆｓｅｔを加えるカスタムＬｏｇ変換の場合、オフセット値ｏｆｆｓｅｔを小さくするに従って、処理可能な負値のレンジが小さくなるという矛盾がある。
【００８３】
これに対し、入力値ｘが負値の場合と負値ではない場合とで異なる関数を使用するカスタムＬｏｇ変換関数の場合、図６のグラフに示すように、入力値ｘに対して出力値が１次関数的に上昇する。例えば、入力値ｘのＬｏｇ変換値が１，２，３，４，５と大きくなると、これに応じて出力値も１，２，３，４，５と大きくなる。そのため、入力値ｘがどのような値であっても出力値の分解能がなくなることはなく、最大限に確保することができる。
【００８４】
入力値ｘが負値の場合と負値ではない場合とで異なる関数を使用するカスタムＬｏｇ変換関数の場合も同様に、オフセット値ｏｆｆｓｅｔを小さくするに従って、より小さな値まで出力値の分解能を確保することができるため、オフセット値ｏｆｆｓｅｔを小さくすることが望まれる。その一方で、入力値ｘが負値の場合には、入力値ｘが負値ではない場合とは異なる関数を使用することにより、処理可能な負値のレンジを拡大することができる。本実施形態の場合、処理可能な負値のレンジは無限大である。
【００８５】
つまり、入力値ｘが負値の場合と負値ではない場合とで異なる関数を使用する場合のカスタムＬｏｇ変換関数の場合、オフセット値ｏｆｆｓｅｔを小さくすることにより出力値の分解能を確保しつつ、処理可能な負値のレンジを無限大とすることができる。
【００８６】
次に、入力値ｘが負値の場合と負値ではない場合とで異なる関数を使用する場合のカスタムＬｏｇ変換関数について説明する。
【００８７】
図７は、カスタムＬｏｇ変換関数の入力値と出力値との関係を表すグラフである。このグラフの横軸はカスタムＬｏｇ変換関数の入力値ｘ、縦軸はカスタムＬｏｇ変換関数の出力値である。このグラフは、カスタムＬｏｇ変換関数の入力値ｘが、表３に示す入力値ｘ（真数）である−０．９９９９９〜１０００までの範囲のリニアな値のうちの−０．９９９９９９〜２までの範囲を表したものである。
【００８８】
このグラフには、Ｌｏｇ変換関数である、Ｌｏｇ10（ｘ）の出力値と、入力値ｘのオフセット値ｏｆｆｓｅｔとして、０．１、１を加えるカスタムＬｏｇ変換関数である、−Ｌｏｇ10（ｘ＋０．０１）、−Ｌｏｇ10（ｘ＋１．０）の出力値と、オフセット値ｏｆｆｓｅｔが０．０００００１で、さらに、入力値ｘが負値の場合と負値ではない場合とで異なる関数を使用するカスタムＬｏｇ変換関数である、−Ｌｏｇ10（ｘ＋０．０００００１）；ｘ≧０，（−ｘ）＾０．５＋６；ｘ＜０の出力値が示されている。
【００８９】
このグラフに示すように、Ｌｏｇ関数のＬｏｇ10（ｘ）の場合、入力値ｘの負値が扱えない。カスタムＬｏｇ変換関数の−Ｌｏｇ10（ｘ＋０．１）、−Ｌｏｇ10（ｘ＋１）の場合、それぞれ、入力値ｘの負値が０．１、１までしか扱えないし、前述のように、出力値の分解能も不十分である。これに対し、カスタムＬｏｇ変換関数の−Ｌｏｇ10（ｘ＋０．０００００１）；ｘ≧０，（−ｘ）＾０．５＋６；ｘ＜０の場合、入力値ｘの負値が無制限に扱えるし、出力値の分解能も十分であることが分かる。
【００９０】
なお、実施形態では、画像データの“０”を境界として、画像データが負値の場合と負値ではない場合とで異なる関数を使用して非線形変換処理を施しているが、本発明はこれに限定されず、画像データの所定値を境界として、画像データが所定値よりも小さい場合と所定値以上の場合とで異なる第１および第２の関数を用いて非線形変換処理を施してもよい。
【００９１】
また、第１および第２の関数は、前述のように、両者の出力値が連続していれば何ら制限はないが、第１の関数は、例えば、負値の画像データがマイナス無限大方向に減少するに従い出力値の変化の傾きが小さくなる関数であることが望ましい。一方、第２の関数は、例えば、負値ではない画像データを対数に変換する関数であることが望ましい。また、関数の演算結果が濃度と同じ符号になるように出力値を反転してもよいし、しなくてもよい。
【００９２】
また、ＬＵＴは、階調変換に限らず、負値の画像データを含まない画像に対して各種の画像処理を施すものが利用できる。また、本発明の画像処理部として、ＬＵＴではなく、演算式を使用することもできる。さらに、画像処理装置は、非特許文献１に記載されているようなシーン基準の画像色空間で定義される広ダイナミックレンジ画像に画像処理を施す場合などに好適なものであるが、本発明はこれに限定されず、負値の画像データを含む各種画像の画像処理に適用可能である。
【００９３】
また、本発明は、画像処理装置で実施される画像処理方法の各ステップをコンピュータに実行させるためのプログラム、もしくは、このプログラムを記録したコンピュータ読み取り可能な記録媒体として実現することもできる。
【００９４】
本発明は、基本的に以上のようなものである。
以上、本発明について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【符号の説明】
【００９５】
１０  画像処理装置
１２  非線形変換部
１４  ＬＵＴ
１６  逆変換部
【図１】
0005815386.tif 000009
【図２】
0005815386.tif 000010
【図３】
0005815386.tif 000011
【図４】
0005815386.tif 000012
【図５】
0005815386.tif 000013
【図６】
0005815386.tif 000014
【図７】
0005815386.tif 000015
【図８】
0005815386.tif 000016