はじめに、本発明の実施形態を説明する前に、本発明の課題を、ISO/IEC 18477−2に準拠したHDR画像の符号化処理に触れた上で、具体的かつ詳細に説明する。
図1は、ISO/IEC 18477−2に準拠したHDR画像の符号化処理を説明するための図である。なお、処理の詳細はISO/IEC 18477−2に記載されていることから、ここでは本発明に関係する内容を説明する。
ISO/IEC 18477−2に準拠したHDR画像の符号化処理として、先ず、入力されたHDR画像をLDR画像にトーンマッピング(画像変換)し、さらに、そのLDR画像をJPEG圧縮し、JPEG符号データを生成するまでの処理を説明する。
画像符号化装置は、HDR画像101が入力されると、HDR画像101をトーンマッピング部102により、1コンポーネントあたり0−255の256階調の線形色空間のLDR画像(即ち、線形LDR画像)に変換する。画像符号化装置は、線形LDR画像を、色変換部115により線形色空間からsRGB色空間に変換した後、RGB/YCC変換部116及びサブサンプリング部117において各々、処理を実行する。さらにJPEG圧縮部118において、JPEG圧縮処理を実行する。これにより、LDR画像をJPEG圧縮したLDR符号データが生成される。
次に、HDR補助データの生成について説明する。画像符号化装置は、HDR画像101からY算出部103により輝度成分(Y成分。図1のY_hdr)を算出する。画像符号化装置は、トーンマッピング部102で生成された線形LDR画像からもY算出部105により輝度成分(Y成分。図1のY_ldr)を算出し、さらにノイズ付加部106により、各輝度成分にノイズを付加する。
そして、画像符号化装置は、輝度比算出部107において、HDRのY成分を、ノイズを付加したLDRのY成分で除算することで、輝度成分の比率(Y_ratio)を算出する。但し、ここで算出される輝度成分の比率(Y_ratio)は、8ビットオーバーのデータである。そこで、画像符号化装置は、Log変換部108によりlog変換後(Y_log)、線形量子化部109により、その最大値と最小値の範囲で線形量子化を実行し、0−255の範囲の整数値にマッピング(Y_xt)する(8ビット整数化)。そして、この8ビット整数化された輝度成分の比率(Y_xt)は、HDR補助データのY成分(輝度成分)として、JPEG圧縮部114に入力される。
また、輝度比算出部107において算出された輝度成分の比率(Y_ratio)は、HDR画像101のRGBと共に、RGBスケール変換部104に入力される。画像符号化装置は、RGBスケール変換部104により、入力されたHDR画像101のRGB画素値を、輝度成分の比率(Y_ratio)でスケール変換する(HDR_div)。
そして、スケール変換されたHDR画像101のRGB画素値(HDR_div)は、トーンマッピング部102から出力される線形LDR画像と共に、差分取得部110に入力される。画像符号化装置は、差分取得部110により、入力されたHDR画像101のRGB画素値(HDR_div)と、線形LDR画像のRGB値との差分(Dif_RGB)を取得する。
さらに、画像符号化装置は、色差算出部111により色差成分(CC_hdr)を算出する。但し、色差算出部111により算出される色差成分もまた、8ビットオーバーのデータである。そこで、画像符号化装置は、色差正規化部112により色差成分(CC_hdr)をLDRの輝度成分(Y_ldr)で正規化し(CC_norm)、色差線形量子化部113によりその最大値と最小値の間で線形量子化(CC_xt)する。即ち、8ビット整数化する(8ビットのデータレベルにする)。そして、この8ビット整数化された色差成分(CC_xt)は、HDR補助データの色差成分として、JPEG圧縮部114に入力される。
画像符号化装置は、JPEG圧縮部114において、線形量子化部109より入力された8ビット整数化された輝度成分の比率と、色差線形量子化部113より入力された8ビット整数化された色差成分からHDR補助データのJPEG符号データを生成する。
上述の処理を実行することで、LDRのJPEG符号データと、HDR補助データのJPEG符号データが生成される。画像符号化装置は、HDR符号化ファイル生成手段としての出力部119により、両符号データと、LDR画像からHDR画像へ伸長するために必要な情報と共に、1つのJPEGファイルを生成し、JPEG XTデータ120として出力する。なお、LDR画像からHDR画像へ伸長するために必要な情報とは、例えば、輝度成分の比率の対数値の最大値と最小値等である。
以上、ISO/IEC 18477−2に準拠したHDR画像の符号化処理に関して説明したが、次に、このISO/IEC 18477−2に準拠したHDR画像の符号化処理を踏まえ、上述の背景技術で説明した課題を詳述する。
ISO/IEC 18477−2に準拠したHDR画像の符号化処理に関して、上述のように、線形量子化部109において、輝度成分の比率をlog変換した後、その最大値と最小値の範囲で線形量子化(輝度比量子化)を実行している。そのため、HDRの輝度レンジが広い場合には、その量子化誤差が大きくなる。加えて、8ビット整数化された輝度成分の比率は、JPEG圧縮部114におけるJPEG符号化の過程でDCT後に量子化されることから、ここでも量子化誤差が発生することになる。
結果、HDR補助データを復号(デコード)することで取得される輝度成分の比率(Y_ratio)は、著しく劣化することになる。さらに、8ビット整数化された色差成分をHDRのデータ範囲に引き延ばす上で、復号された輝度成分の比率(Y_ratio)を用いることから、輝度成分の比率の量子化誤差は、色差成分を劣化させる要因にもなる。
このように、ISO/IEC 18477−2に準拠したHDR画像の符号化処理で生成されたHDR補助データを用いて復号されるHDR画像は、劣化が著しくなる。特に、画像を視る際に注目する、人物の顔、主被写体、人間の視覚特性が敏感な低輝度領域であって、かつエッジの少ない領域等では、その劣化がより著しくなる。ここで、輝度成分の比率(Y_ratio)の量子化誤差を小さくする方法として、量子化誤差を小さくするような最適なルックアップテーブルを計算する方法も検討されるが、その計算には非常に時間がかかることになる。
また、この場合において、ダイナミックレンジ拡張補償データを導入した場合であっても(特許文献1)、上述のように、より多くの処理負荷がかかり、また、原画像のHDR画像と復号したHDR画像の両方の画像を格納するメモリも必要とされる。即ち、使用メモリ量および処理負荷が増大することになる。
以下、これらの問題点(課題)を踏まえ、図面を参照しながら、本発明の実施形態に関して、詳細に説明する。以下の実施形態は、特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明される特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
なお、本実施形態において、符号化対象とするHDR画像データは1920x1080[画素]のRGBカラーデータとし、また、各コンポーネント(色)は16ビットの実数値として説明する。但し、RGB以外のコンポーネントの構成(例えば、グレー等)でも構わず、色空間の種類、コンポーネントの個数は問われることはない。
また、1成分のビット数も16ビットに限定されず、8ビットを超えるビット数(例えば、12ビット等)であれば、何ビットでもよい。加えて、1成分のビット数は実数値だけに限定されず、16ビットの整数値等でもよい。つまり、HDRのコントラスト比を表現することができれば、入力画像の形式はどのようなものであってもよい。
[実施形態1]
<輝度成分の比率の補助データの付加情報の有無を外部より設定>
本実施形態では、ISO/IEC 18477−2で規定されているHDR補助データの生成方法を前提に、HDR補助データを生成する。即ち、画像符号化装置は、先ずHDR画像データとLDR画像データの輝度成分比(輝度比情報)を生成し、次にその輝度比情報を用いて、元のHDR画像データと、HDRのレンジに引き延ばしたLDR画像の色差成分の差分(色差補助情報)を生成する。そして、輝度比情報と色差補助情報を8ビット整数化して、JPEG符号化する。但し、本実施形態では、HDR補助データの輝度成分の付加情報を生成する。
図2は本発明の第1の実施形態に係る画像符号化装置の機能ブロック図であり、図2において、ISO/IEC 18477−2との相違点に着目して説明する。図2に示すように、本発明の第1の実施形態に係る画像符号化装置は、図1に示す機能に加えて、特徴値取得部221、領域判定部222、JPEG復号部223、差分取得部224、差分データ圧縮部225を備える。
特徴値取得部221は、輝度成分の比率の対数の最大値(Max_log)と最小値(Min_log)を特徴値として取得する。領域判定部222は、領域特定手段として機能し、処理対象とするマクロブロックが付加情報を生成する領域内にあるか否かを判定する。JPEG復号部223は、逆量子化、逆DCT等の処理を実行することで、補助データの輝度成分を簡易的に復号する。差分取得部224は、付加情報を生成する領域の輝度成分の比率の対数値と、JPEG復号部223により補助データの輝度成分を復号した結果との差分を、輝度比補正情報(付加情報)として取得する。差分データ圧縮部225は、輝度比補正情報を量子化し、さらにJPEG圧縮する。なお、JPEG復号部223、差分取得部224は、補正情報算出手段として機能する。
図3は、本発明の第1の実施形態に係る画像符号化装置のハードウェア構成図である。図3において、CPU(Central Processing Unit)301は、画像符号化装置全体を制御する中央演算装置である。CPU301は、メモリ303に読み込まれた各種プログラムを実行することにより、後述のシーケンスの各ステップの処理を実行する各処理部として機能する。CPU301は、例えば、HDR補助データの生成、LDR画像の生成、HDR情報に対する付加情報の生成等の処理を実行する。
入力部302は、ユーザからの指示(例えば、付加情報を生成する領域の指定等)やHDR画像データ等を入力する装置であり、キーボードやマウス等のポインティングシステムが含まれる。メモリ303は、ROM(Read Only Memory)やRAM(Random Access Memory)を含み、処理に必要なプログラム、データ、作業領域等をCPU301に提供する。表示部304は、液晶ディスプレイ等の表示装置である。
記憶部305は、例えば、ハードディスク等であり、画像データ、プログラム等を記憶する記憶装置である。なお、後述のフローチャートの各ステップの処理に必要な制御プログラムは、記憶部305、又はメモリ303のROMに記憶されているものとする。ここで、制御プログラムが記憶部305に記憶されている場合は、一旦メモリ303のRAMに読み込まれてから実行される。また、ハードウェアの構成に関して、上記以外にも様々な構成要素が存在するが、本発明の主旨ではないので、ここではその説明を省略する。
次に、図4を用いて、画像符号化装置に入力されたHDR画像データから、LDR画像とHDR補助データを生成し、各々を圧縮する処理に関して説明する。なお、ISO/IEC 18477−2で規定されている処理と同様の処理に関しては、図4では、その説明を省略する。
画像符号化装置は、入力部302において、符号化対象とするHDR画像データを受信する(S401)。画像符号化装置は、トーンマッピング部202により、ステップS401で入力されたHDR画像データに対して、メモリ303から取得したトーンカーブを用いてトーンマッピング処理を実行し、線形LDR画像データを生成する(S402)。そして、生成された線形LDR画像データを、メモリ303に記憶する。
画像符号化装置は、線形LDR画像データをメモリ303に記憶すると、サブサンプリング条件や量子化パラメータ等のLDR画像の符号化条件を取得する(S403)。
次に、画像符号化装置は、ステップS402で取得した線形LDR画像に対して、ISO/IEC10918に規定された方法で、JPEG圧縮形式で圧縮するまでの処理を実行する(S404)。具体的には、ステップS402で取得した線形LDR画像に対して、先ず、色変換部215によりsRGB色空間に変換し、次に、RGB/YCC変換部216によるRGB/YCC変換と、サブサンプリング部217によるサブサンプリングを実行する。そして、画像符号化装置は、サブサンプリングの実行後に、JPEG圧縮部218によりステップS403で取得した符号化条件に従って、DCT、量子化、エントロピー符号化を実行することで、線形LDR画像をJPEG圧縮する。
画像符号化装置は、HDR補助データ生成条件を取得する(S405)。即ち、画像符号化装置は、HDR補助データのJPEG圧縮パラメータ(例えば、サブサンプリング方法、量子化パラメータ等)、及びHDR補助データに対する付加情報を生成する領域数を取得する。
なお、本実施形態において、付加情報を生成する領域は、ユーザにより入力部302(例えば、マウス等)を用いて、矩形領域として指定(設定)される。また、ここで、ユーザによる指定がなければ、画像符号化装置は、付加情報を生成する領域数をゼロと認識する。
画像符号化装置は、付加情報の生成の有無を判定する(S406)。具体的には、画像符号化装置は、ステップS405において取得した付加情報を生成する領域数がゼロであるか否かを判定する。そして、画像符号化装置は、付加情報を生成する領域数がゼロであると判定すると(即ち、当該HDR画像に対して付加情報を生成しないと判定すると)(S406 No)、処理をステップS413に移行させる。ステップS413において、画像符号化装置は、付加情報フラグ(Flag)に0を設定し、さらに、処理をステップS409に移行させる。
一方、画像符号化装置は、付加情報を生成する領域数が1以上であると判定すると(即ち、当該HDR画像に対して付加情報を生成する必要があると判定すると)(S406 Yes)、処理をステップS407に移行させる。ステップS407において、画像符号化装置は、付加情報フラグ(Flag)に1を設定し、さらに、処理をステップS408に移行させる。
画像符号化装置は、付加情報フラグ(Flag)に1を設定すると、付加情報作成用データを取得する(S408)。なお、画像符号化装置は、付加情報作成用データとして、付加情報を生成する各領域の左上座標、幅、高さ、及び付加情報の圧縮条件を取得する。
次に、画像符号化装置は、HDR補助データを生成する(S409)。なお、HDR補助データの生成方法に関しては、図5を用いて後述する。画像符号化装置は、ISO/IEC 18477−1で規定されている方法で、ステップS409で生成したHDR補助データをファイルに出力する(S410)。より詳細には、HDR補助データをJPEGのAPP11マーカ内に出力する。
画像符号化装置は、HDR補助データを出力すると、付加情報フラグ(Flag)を参照し、付加情報フラグ(Flag)が1であれば、処理をステップS412に移行させる。ステップS412において、画像符号化装置は、付加情報を出力する。本実施形態において、図25(b)に示すように、APP11マーカ内において、HDR補助データの直後に、付加情報を出力する。画像符号化装置は、次に、ステップS404で生成したLDR画像のJPEGデータを、ISO/IEC 18477−1で規定されている方法で出力する(S414)。
また、画像符号化装置は、付加情報フラグ(Flag)が0であれば、付加情報の出力は不要であることから、処理をステップS414に移行させる。ステップS414において、画像符号化装置は、ステップS404で生成したLDR画像のJPEGデータを、ISO/IEC 18477−1に規定されている方法で、HDR符号化ファイルとして出力する。
次に、図4のステップS409のHDR補助データの生成処理に関して、図5を用いて説明する。図5は、HDR補助データの生成処理の流れを示すフローチャートである。なお、ISO/IEC 18477−2で規定されている処理と同様の処理に関しては、図5では、その説明を省略する。
画像符号化装置は、HDR画像の輝度値(Y_hdr)を取得する(S501)。画像符号化装置は、次に、ステップS402で生成した線形LDR画像データをメモリ303から取得する(S502)。画像符号化装置は、ステップS502で取得した線形LDR画像の各画素において輝度値(Y_ldr)を算出する(S503)。なお、輝度値の計算には、ISO/IEC18477−1のMultiple Component Decorrelationにより定義されている変換式を適用する。
画像符号化装置は、ステップS501で取得したHDR画像の輝度値(Y_hdr)と、ステップS503で取得した線形LDR画像の輝度値(Y_ldr)を用いて、全画素における輝度成分の比率(Y_ratio)を算出する(S504)。画像符号化装置は、HDR画像のRGBデータの画素値を、ステップS504で算出した輝度成分の比率(Y_ratio)で除算し、スケール変換したRGBデータ(HDR_div)を算出する(S505)。
画像符号化装置は、ステップS505においてスケール変換したRGBデータ(HDR_div)と、LDR画像のRGB画素値の差分を算出し、HDR補助データの色差成分(CC_hdr)を算出する(S506)。
画像符号化装置は、HDR補助データの色差成分(CC_hdr)をステップS503で算出した線形LDR画像の輝度値(Y_ldr)で正規化し、色差補助情報(CC_norm)を取得する(S507)。画像符号化装置は、色差補助情報(CC_norm)を取得すると、全ての画素の色差補助情報(CC_norm)の値から、最大値Max_CC(Max_CbとMax_Cr)と最小値Min_CC(Min_CbとMin_Cr)を取得する(S508)。画像符号化装置は、色差補助情報(CC_norm)を色差補助情報の最大値(Max_CC)と最小値(Min_CC)の範囲で色差量子化し、8ビット化した色差補助情報(CC_xt)を取得する(S509)。
画像符号化装置は、次に、ステップS504で取得した輝度成分の比率(Y_ratio)の対数値(Y_log)を算出する(S510)。画像符号化装置は、付加情報フラグ(Flag)を参照し、付加情報の生成が必要かどうかを判定する(S511)。画像符号化装置は、付加情報フラグ(Flag)が1であれば、付加情報の生成が必要であると判定し、ステップS512に処理を移行させる。なお、画像符号化装置は、付加情報フラグ(Flag)が0であれば、付加情報の生成は不要と判定し(即ち、ステップS512の処理を省略し)、ステップS513に処理を移行させる。
ステップS512において、画像符号化装置は、ステップS408で取得した付加情報作成用データから、付加情報生成領域を特定し、その輝度成分の比率の対数値(ROI_Y_log)をメモリ上に保存する。
画像符号化装置は、輝度成分の比率の対数値(Y_log)に関して、全ての画素の最大値(Max_log)と最小値(Min_log)を取得する(S513)。そして、ステップS514において、画像符号化装置は、輝度成分の比率の対数の最大値(Max_log)と最小値(Min_log)の範囲で輝度成分の比率の対数値を量子化し、8ビット化した輝度成分の比率の対数値(Y_xt)を取得する。さらに、ステップS515において、画像符号化装置は、HDR補助データのJPEG圧縮と付加情報の生成に関する処理を実行する。
続いて、図6を用いて、ステップS515のHDR補助データのJPEG圧縮と付加情報の生成に関する処理を、より詳細に説明する。即ち、図6では、ステップS514で生成した8ビット化した輝度成分の比率の対数値(Y_xt)と、ステップS509で取得した8ビット化した色差補助情報(CC_xt)をHDR補助データとして、JPEG圧縮し、付加情報を生成する。
画像符号化装置は、8ビット化した輝度成分の比率の対数値(Y_xt)をマクロブロックMBに分割して、マクロブロック単位で取得する(S601)。画像符号化装置は、マクロブロック単位(復号単位)で取得した8ビット化した輝度成分の比率の対数値(Y_xt)に対してDCT(Discrete Cosine Transform)を実行し(S602)、DCT係数を取得する。画像符号化装置は、ステップS403で取得したHDR補助データの量子化パラメータに従って、ステップS602で取得したDCT係数を量子化する(S603)。
次に、画像符号化装置は、処理対象としているマクロブロックMBが付加情報生成領域内に位置するか否かを判定する(S604)。画像符号化装置は、処理対象としているマクロブロックMBが付加情報生成領域内に位置すると判定するとステップS605に処理を移行させ、以後の処理で付加情報を生成する。一方、処理対象としているマクロブロックMBが付加情報生成領域内に位置しないと判定するとステップS608に処理を移行させる。なお、付加情報生成領域が設定されていない場合、即ち、付加情報フラグ(Flag)が0の場合も、同様に、ステップS608に処理を移行させる。
画像符号化装置は、ステップS603において量子化されたマクロブロック単位のDCT係数を逆量子化し、さらに逆DCTを実行した結果(DecYxt)を取得する(S605)。画像符号化装置は、ステップS605で取得した逆DCTの実行結果を、輝度成分の比率の対数の最大値(Max_log)と最小値(Min_log)の範囲で逆量子化し、ビット深度を拡大した結果(ROI_DecYlog)を取得する(S606)。このように、ステップS605及びS606の処理を実行することで、付加情報生成領域内に位置するマクロブロックMBを対象に、補助データの輝度成分を簡易的に復号した結果を取得する。また、ここでは、量子化されたビット数より大きい、8ビットオーバーのデータレベル(データビット長)で復号される。画像符号化装置は、ステップS512で保存した線形量子化前の輝度成分の比率の対数値(ROI_Y_log)と、ビット深度を拡大した結果(ROI_DecYlog)の差分(DifYlog)を取得し、輝度比補正情報として保存する(S607)。
画像符号化装置は、次に、マクロブロック単位で、ステップS603で量子化されたDCT係数をエントロピー符号化する(S608)。画像符号化装置は、補助データの輝度成分の全てのマクロブロックMBに関して、エントロピー符号化が終了したか否かを判定する(S609)。判定の結果、未だ処理がなされていないマクロブロックMBがある場合(S609 No)、画像符号化装置は、ステップS601に処理を返し、次のマクロブロックMBを対象にステップS601からステップS608までの処理を実行する。
画像符号化装置は、補助データの輝度成分の全てのマクロブロックMBに対する処理が終了すると(S609 Yes)、処理をステップS610に移行し、以後の処理で色差成分の圧縮処理を実行する。画像符号化装置は、ステップS403で取得したHDR補助データのサブサンプリング条件に従って、8ビット化した色差補助情報(CC_xt)をサブサンプリングする(S610)。画像符号化装置は、8ビット化した色差補助情報(CC_xt)をマクロブロックMBcに分割して、マクロブロック単位で取得する(S611)。
画像符号化装置は、マクロブロック単位で取得した8ビット化した色差補助情報(CC_xt)に対して、DCTを実行し(S612)、DCT係数を取得する。画像符号化装置は、ステップS403で取得したHDR補助データの量子化パラメータに従ってステップS612で取得したDCT係数を量子化し(S613)、さらに、量子化したDCT係数をエントロピー符号化する(S614)。
画像符号化装置は、8ビット化した色差補助情報(CC_xt)の全てのマクロブロックMBcに関して、エントロピー符号化が終了したか否かを判定する(S615)。判定の結果、未だ処理がなされていないマクロブロックMBcがある場合(S615 No)、画像符号化装置は、ステップS611に処理を返し、次のマクロブロックMBcを対象にステップS611からステップS614までの処理を実行する。
画像復号装置は、8ビット化した色差補助情報(CC_xt)の全てのマクロブロックMBcに対する処理が終了すると(S615 Yes)、処理をステップS616に移行させる。ステップS616において、画像復号装置は、付加情報生成フラグ(Flag)を参照し、付加情報生成フラグ(Flag)が1であれば(S616 Yes)、処理をステップS617に移行させ、付加情報の圧縮処理を実行する(S617)。また、付加情報生成フラグ(Flag)が1でなければ(S616 No)、付加情報の圧縮処理を実行することなく、図6に示す処理を終了する。
続いて、図7を用いて、ステップS617の付加情報の圧縮処理に関して、より詳細に説明する。画像符号化装置は、ステップS607で保存した輝度比補正情報(DifYlog)を量子化し、8ビット整数化(DifYlog_8bit)する(S701)。画像符号化装置は、次に付加情報を生成する領域数Nを取得し(S702)、さらに領域のカウンタkにゼロを代入することで、領域のカウンタkを初期化する(S703)。なお、領域番号は、各々の領域の左上の座標を基準に、画像の左上からラスター順に付与されるものとする。したがって、例えば、図9(a)に示すように、3つの領域901〜903が付加情報を生成する領域として設定されている場合、それぞれ領域番号を「0」、「1」、「2」とする。
画像符号化装置は、領域番号kの8ビット整数化された輝度比補正情報(DifYlog_8bit)を取得する(S704)。画像符号化装置は、ステップS704で取得した8ビット整数化された輝度比補正情報を、ステップS408で取得した付加情報作成用データで、その領域の幅と高さの画像サイズの、1色の画像としてJPEG圧縮する(S705)。
画像符号化装置は、領域のカウンタkに1を加算する(S706)。画像符号化装置は、領域のカウンタkに1を加算すると(即ち、カウントアップすると)、領域のカウンタkと領域数Nが同じ値であるか否かを判定する(S707)。そして、領域のカウンタkと領域数Nが同じ値であれば(S707 Yes)、画像符号化装置は、全ての領域に関して付加情報の圧縮処理が終了したものとして、図7に示す処理を終了する。また、領域のカウンタkと領域数Nが同じ値でなければ(S707 No)、画像符号化装置は、処理をステップS704に返し、次の領域の付加情報の圧縮処理を実行する。
次に、図4のステップS412の付加情報の出力処理に関して、図8を用いて説明する。本実施形態では、図25(b)のように、HDR補助データと同じAPP11マーカ内において、HDR補助データに続けて付加情報を出力する。
符号化装置は、HDR補助データのEOIマーカの後ろに、付加情報を生成した領域数Nを出力する(S801)。なお、本実施形態において、領域数は1バイトで記載するものとする。画像符号化装置は、付加情報を生成する領域数をカウントするカウンタkにゼロを代入することで、領域のカウンタkを初期化する(S802)。
符号化装置は、次に領域番号kの符号量S(k)を取得する(S803)。なお、ここで、符号量S(k)とは、ステップS705で生成された、SOIマーカからEOIマーカで終了するJPEG圧縮データの符号量である。また、本実施形態において、符号量は2バイトで記載するものとする。
符号化装置は、領域番号kの符号量S(k)を取得すると、領域番号kに続いて、符号量S(k)を出力する(S805)。符号化装置は、ステップS705で生成された、領域番号kのJPEG圧縮されたデータを出力する(S806)。画像符号化装置は、領域のカウンタkに1を加算する(S807)。画像符号化装置は、領域のカウンタkに1を加算すると(即ち、カウントアップすると)、領域のカウンタkと領域数Nが同じ値であるか否かを判定する(S808)。そして、領域のカウンタkと領域数Nが同じ値であれば(S808 Yes)、画像符号化装置は、全ての領域に関して付加情報の出力処理が終了したものとして、図8に示す処理を終了する。また、領域のカウンタkと領域数Nが同じ値でなければ(S808 No)、画像符号化装置は、処理をステップS803に返し、次の領域の付加情報の出力処理を実行する。
以上のように、本実施形態では、ユーザが指定した1又は複数の領域に対して、復号後のHDR画像の画質を向上させる付加情報を生成することができる。また、付加情報を生成する領域のみ、HDR補助データを復号することから、付加情報生成のための処理負荷、使用メモリ量、及び処理時間を最小限に抑えることができる。
また、HDR補助データの劣化度合いを補正するデータを付加情報としていることから、付加情報を生成する過程で、圧縮したLDR画像のデコードは必要ない。そのため、付加情報の生成処理と、LDR画像の圧縮処理は独立に実行することができる。即ち、両方の処理を並列に実行することができ、延いては処理時間の短縮を見込むことができる。加えて、付加情報は、HDR補助データの輝度成分の量子化前後の差分値であることから、生成する上での処理負荷も大幅に軽くすることができる。
その他、付加情報によって補正される、HDR補助データの輝度成分(Y_ratio)は、HDR補助データの色差成分の復号(図2のRGBスケール変換部204によるスケール変換を戻す工程)においても用いることができる。そのため、色差成分のデコード画質も向上させることができる。また、付加情報の圧縮形式もJPEG圧縮形式であることから、JPEGデコード機能を有するJPEG XTのデコーダだけで、HDR画像の画質を向上させることができる。
[実施形態2]
<輝度成分の比率の補助データの付加情報をJPEG圧縮形式以外の圧縮形式で圧縮>
上述のように、実施形態1では、図6のステップS617において、付加情報をJPEG圧縮形式で圧縮した。このように、JPEG圧縮形式で圧縮する場合、JPEG XTのデコーダがあれば付加情報を復号できるが、8ビットを超える付加情報をステップS701で8ビットに量子化するため、付加情報の劣化も大きくなる可能性がある。
そこで、本実施形態では、8ビットを超えるデータを扱える、JPEG 2000を用いて圧縮する。なお、本実施形態において、実施形態1と異なるのは、図6のステップS617の付加情報の圧縮処理と、図4のステップS412の付加情報の出力処理である。
先ず、本実施形態における付加情報の圧縮処理に関して、図10を用いて説明する。なお、図10に示す処理に関して、実施形態1の図7と同様の処理は、ここでの詳細な説明は省略する。具体的には、図10のステップS1001、S1003、S1008、S1009は、図7のステップS702、S703、S706、S707に各々、対応している。
符号化装置は、付加情報を生成する領域数Nを取得する(S1001)。符号化装置は、領域数Nを取得すると、付加情報作成用データから付加情報のビット数Bを取得する(S1002)。本実施形態において、符号化装置は、ユーザにより設定された付加情報の精度に応じて、B=9〜38(JPEG2000で扱える最大ビット数)のいずれかの値を取得できる。そして、このビット数が大きいほど、付加情報の劣化は小さくなる。
符号化装置は、次に、領域のカウンタkを初期化し(S1003)、領域番号kの輝度比補正情報(DifYlog)を取得する(S1004)。符号化装置は、ステップS1004で取得した領域番号kの輝度比補正情報(DifYlog)の最小値と最大値を取得する(S1005)。
符号化装置は、輝度比補正情報(DifYlog)を、ステップS1005で取得した最小値と最大値の間で線形量子化し、さらにステップS1002で取得したビット数Bに応じて、Bビットの整数値(DifYlog_B)に変換する(S1006)。符号化装置は、ステップS1006で取得した輝度比補正情報のBビット整数値(DifYlog_B)をJPEG2000で圧縮する(S1007)。
画像符号化装置は、領域のカウンタkに1を加算する(S1008)。画像符号化装置は、領域のカウンタkに1を加算すると(即ち、カウントアップすると)、領域のカウンタkと領域数Nが同じ値であるか否かを判定する(S1009)。
そして、領域のカウンタkと領域数Nが同じ値であれば(S1009 Yes)、画像符号化装置は、全ての領域に関して付加情報の圧縮処理が終了したものとして、図10に示す処理を終了する。また、領域のカウンタkと領域数Nが同じ値でなければ(S1009 No)、画像符号化装置は、処理をステップS1004に返し、次の領域の付加情報の圧縮処理を実行する。
次に、本実施形態における付加情報の出力処理に関して、図11を用いて説明する。なお、図11に示す処理に関して、実施形態1の図8と同様の処理は、ここでの詳細な説明は省略する。具体的には、図11のステップS1101、S1102、S1103、S1104、S1106、S1108、S1109は、図8のステップS801、S802、S803、S804、S805、S807、S808に各々、対応している。
符号化装置は、付加情報を生成する領域数Nを出力する(S1101)。符号化装置は、領域数Nを出力すると、領域のカウンタkを初期化し(S1102)、さらに領域番号kの符号量S(k)を取得する(S1103)。
符号化装置は、次に、領域番号kの位置情報を出力し(S1104)、線形量子化に用いた最小値と最大値を出力する(S1105)。即ち、ステップS1005で取得した最小値と最大値を出力する。
符号化装置は、さらに、領域番号kの符号量S(k)を出力し(S1106)、領域番号kの付加情報のJPEG2000データを出力する(S1107)。即ち、符号化装置は、ステップS1007で生成した符号データのSOCマーカからEOCマーカまでを出力する。
画像符号化装置は、領域のカウンタkに1を加算する(S1108)。画像符号化装置は、領域のカウンタkに1を加算すると(即ち、カウントアップすると)、領域のカウンタkと領域数Nが同じ値であるか否かを判定する(S1109)。そして、領域のカウンタkと領域数Nが同じ値であれば(S1109 Yes)、画像符号化装置は、全ての領域に関して付加情報の出力処理が終了したものとして、図11に示す処理を終了する。また、領域のカウンタkと領域数Nが同じ値でなければ(S1109 No)、画像符号化装置は、処理をステップS1103に返し、次の領域の付加情報の出力処理を実行する。
本実施形態では、付加情報の符号化(エンコード)/復号(デコード)に、JPEG XTのデコーダの他にJPEG2000のデコーダも必要になるが、付加情報の精度は高くなり、付加情報で補正したHDR画像の画質はさらに良くなる。また、本実施形態では、圧縮形式としてJPEG2000を用いたが、8ビットオーバーのデータを圧縮できる圧縮形式であれば、本実施形態と同様の効果を得ることができる。
[実施形態3]
<補助データの色差成分に関する付加情報も生成>
実施形態1では、HDR補助データの輝度成分に対してのみ補助データを生成した。これにより、色差成分の復号(デコード)時に、即ち、補助データの色差成分をHDRに戻す時に、その精度が良くなり、デコード結果も改善される。しかしながら、色差成分に関して、線形量子化(即ち、8ビット整数化)、またJPEG圧縮(より詳しくは、DCT係数の量子化)を行なっていることから、それによる劣化を軽減することができない。
そこで、本実施形態では、色差成分についても付加情報を生成する。図12は、本発明の第3の実施形態に係る画像符号化装置の機能ブロック図であり、図12において、第1の実施形態との相違点に着目して説明する。図12に示すように、本発明の第3の実施形態に係る画像符号化装置は、図2に示す機能(即ち、特徴値取得部1221、領域判定部1222、差分取得部1224)に加えて、JPEG復号部1223、差分取得部1226、差分データ圧縮部1225を備える。
JPEG復号部1223は、逆量子化、逆DCT等の処理を実行することで、補助データの輝度成分以外に色差成分についても簡易的に復号する。差分取得部1226は、付加情報を生成する領域の色差補助情報と、JPEG復号部1223により補助データの色差成分を復号した結果との差分を、色差補正情報として取得する。差分データ圧縮部1225は、輝度比補正情報以外に、色差補正情報についても、量子化し、さらにJPEG圧縮する。
次に、本実施形態において、画像符号化装置に入力されたHDR画像データから、LDR画像とHDR補助データを生成し、各々を圧縮する処理に関して説明する。なお、本実施形態において、実施形態1と異なるのは図4のステップS409のHDR補助データの生成処理であり、その他の処理は実施形態1と同様の処理であることから、ここではその説明を省略する。
そこで、先ず、図13を用いて、本実施形態におけるHDR補助データの生成処理に関して説明する。なお、図13に示す処理に関して、実施形態1の図5と同様の処理は、ここでの詳細な説明は省略する。
具体的には、図13のステップS1301からステップS1308までの処理は、実施形態1の図5のステップS501からステップS508までの処理と同様の処理である。本実施形態において、ステップS1308の次に、ステップS1309(図5のステップS510)に処理を移行させ、輝度成分の比率(Y_ratio)の対数値(Y_log)を取得する(S1309)。
画像符号化装置は、次に、付加情報フラグ(Flag)を参照し、付加情報の生成が必要かどうかを判定する(S1310)。画像符号化装置は、付加情報フラグ(Flag)が1であれば、付加情報の生成が必要であると判定し、ステップS1311に処理を移行させる。なお、画像符号化装置は、付加情報フラグ(Flag)が0であれば、付加情報の生成は不要と判定し(即ち、ステップS1311及びS1312の処理を省略し)、ステップS1313に処理を移行させる。
ステップS1311において、画像符号化装置は、ステップS1307で取得した画像全体の色差補助情報(CC_norm)から、付加情報を生成する領域の色差補助情報(ROI_CCnorm)を保存する(S1311)。画像符号化装置は、次に、付加情報を生成する領域の輝度成分の比率の対数値(ROI_Y_log)を実施形態1と同様に保存する(S1312)。
画像符号化装置は、ステップS1308で取得した色差補助情報(CC_norm)の最大値(Max_CC)と最小値(Min_CC)の範囲で、色差補助情報を量子化し、8ビット整数化された色差補助情報(CC_xt)を取得する(S1313)。画像符号化装置は、輝度成分の比率の対数値(Y_log)の最大値(Max_log)と最小値(Min_log)を取得する(S1314)。そして、画像符号化装置は、輝度成分の比率の対数値(Y_log)を最大値(Max_log)と最小値(Min_log)の範囲で量子化し、8ビット整数化された輝度成分の比率の対数値(Y_xt)を取得する(S1315)。画像符号化装置は、HDR補助データをJPEG圧縮し、さらに輝度成分と色差成分の付加情報を生成する(S1316)。
続いて、図14を用いて、ステップS1316のHDR補助データのJPEG圧縮と付加情報の生成に関する処理を、より詳細に説明する。なお、図14に示す処理に関して、実施形態1の図6と同様の処理は、ここでの詳細な説明は省略する。
具体的には、図14のステップS1401からステップS1413までの処理は、実施形態1の図6のステップS601からステップS613までの処理と同様の処理である。本実施形態において、ステップS1413の次に、ステップS1414に処理を移行させ、処理対象としているマクロブロックMBcが付加情報作成領域内に位置するか否かを判定する(S1414)。なお、この判定処理において、マクロブロックMBcはサブサンプリングされた結果であることから、サブサンプリング処理の実行前の画素位置が、ステップS408で取得した付加情報生成領域に含まれるか否かを判定する
そして、マクロブロックMBcが付加情報生成領域内であれば、画像符号化装置は、処理をステップS1415に移行させ、色差成分の付加情報を生成する。画像符号化装置は、マクロブロックが付加情報生成領域内にない場合、又はマクロブロックが付加情報生成領域内にある場合であって、色差成分の付加情報を生成すると(S1415)、量子化したDCT係数をエントロピー符号化する(S1416)。
画像符号化装置は、8ビット整数化した色差補助情報(CC_xt)の全てのマクロブロックMBcに関して、エントロピー符号化が終了したか否かを判定する(S1417)。判定の結果、未だ処理がなされていないマクロブロックMBcがある場合(S1417 No)、画像符号化装置は、ステップS1411に処理を返し、次のマクロブロックMBcを対象にステップS1411からステップS1416までの処理を実行する。
画像符号化装置は、8ビット整数化した色差補助情報(CC_xt)の全てのマクロブロックMBcに対する処理が終了すると(S1417 Yes)、処理をステップS1418に移行させる。ステップS1418において、画像符号化装置は、付加情報生成フラグ(Flag)を参照し、付加情報生成フラグ(Flag)が1であれば(S1418 Yes)、処理をステップS1419に移行させ、付加情報の圧縮処理を実行する(S1419)。また、付加情報生成フラグ(Flag)が1でなければ(S1418 No)、付加情報の圧縮処理を実行することなく、図14に示す処理を終了する。
続いて、図15を用いて、ステップS1415の色差成分の付加情報の生成処理に関して、より詳細に説明する。なお、色差成分の付加情報の生成処理は、輝度成分の付加情報の生成処理(即ち、図6のステップS605からステップS607までの処理)とおおよそ同様の処理である。
画像符号化装置は、処理対象としているマクロブロックMBcのDCT係数を逆量子化し、さらに逆DCTを実行した結果(DecCCxt)を取得する(S1501)。画像符号化装置は、ステップS1501で取得した逆DCTの実行結果(DecCCxt)を、色差補助情報の最大値(Max_CC)と最小値(Min_CC)の範囲で逆量子化し、ビット深度を拡大した結果(ROI_DecCC)を取得する(S1502)。
ステップS1311で保存した付加情報生成領域の色差補助情報(ROI_CCnorm)と、ステップS1502で取得したビット深度を拡大した結果(ROI_DecCC)との差分(DifDecCC)を色差補正情報として保存する(S1502)。このように、各付加情報生成領域の輝度成分の比率(Y_ratio)を修正するための付加情報と、色差補助情報(CC_norm)を修正するための付加情報が生成される。
次に、本実施形態における付加情報の圧縮処理(即ち、図14のステップS1419の処理)に関して、図16を用いて説明する。なお、実施形態1では輝度成分一色のJPEG圧縮データを生成したが、本実施形態では、YCC3色のJPEG圧縮データを生成し、保存する。また、図16に示す処理に関して、実施形態1の図7と同様の処理は、ここでの詳細な説明は省略する。具体的には、図16のステップS1601、S1603、S1604、S1607、S1608は、図7のステップS701、S702、S703、S706、S707に各々、対応している。
画像符号化装置は、輝度比補正情報(DifYlog)を量子化し、8ビット整数化したデータ(DifYlog_8bit)を取得する(S1601)。画像符号化装置は、色差補正情報(DifDecCC)を量子化し、8ビット整数化したデータ(DifDecCC_8bit)を取得する(S1602)。
画像符号化装置は、次に、付加情報生成領域の数Nを取得する(S1603)。画像符号化装置は、付加情報を生成する領域数をカウントするカウンタkにゼロを代入することで、領域のカウンタkを初期化する(S1604)。
画像符号化装置は、ステップS1601及びステップS1602で取得したデータから、領域番号kに該当するデータ(DifYlog_8bit及びDifDecCC_8bit)をデータ(DifYCC(k))として抜き出す(S1605)。画像符号化装置は、ステップS1605で取得したデータ(DifYCC(k))をJPEG圧縮する(S1606)。
画像符号化装置は、領域のカウンタkに1を加算する(S1607)。画像符号化装置は、領域のカウンタkに1を加算すると(即ち、カウントアップすると)、領域のカウンタkと領域数Nが同じ値であるか否かを判定する(S1608)。そして、領域のカウンタkと領域数Nが同じ値であれば(S1608 Yes)、画像符号化装置は、全ての領域に関して付加情報の圧縮処理が終了したものとして、図16に示す処理を終了する。また、領域のカウンタkと領域数Nが同じ値でなければ(S1608 No)、画像符号化装置は、処理をステップS1605に返し、次の領域の付加情報の圧縮処理を実行する。これらの処理を実行することで、全ての付加情報を作成する領域に対して、補助データの輝度成分と色差成分に対する付加情報データの圧縮処理が終了する。
本実施形態のように、色差成分についても付加情報を生成することで、HDR補助データの色差成分の復号結果が、劣化前の値に近付くため、復号したHDR画像の劣化をさらに低減することができる。また、本実施形態では、付加情報をJPEG圧縮形式で圧縮しているが、実施形態2と同様に、付加情報を、8ビットオーバーのデータを圧縮できる圧縮方式で圧縮することもできる。
[実施形態4]
<HDRの輝度情報から付加情報の生成領域を自動で設定>
実施形態1乃至3では、付加情報を生成する領域を、ユーザが入力部302のマウス等を用いることで、矩形領域として設定した。但し、付加情報を生成する領域の有無、及びその位置を自動で判定し、付加情報を生成する領域を設定することもできる。
そこで、本実施形態では、HDRの輝度情報とエッジ情報から付加情報を生成する領域を自動で設定する。具体的には、本実施形態において、ある一定の面積(即ち、連続した領域)を有し、エッジの少ない低輝度領域(即ち、所定の輝度値以下の領域)を付加情報生成領域として自動検出する。これは、人間の視覚感度が低輝度領域においてより敏感であることと、エッジの少ない平坦な領域では劣化の度合いが目立ちやすいことの2つの理由を考慮したものである。
次に、図17を用いて、付加情報の生成領域を自動で設定する場合のHDR画像の圧縮処理の手順を説明する。なお、図17に示す処理に関して、実施形態1の図4と同様の処理は、ここでの詳細な説明は省略する。具体的には、ステップS1706の処理が実施形態1と異なっており、ステップS1706において、即ち、ステップS1705(ステップS405)とステップS1706(ステップS406)の間で、付加情報生成領域をHDR画像から判定(検出)する。その他、ステップS1706以外の処理は、実施形態1の図4に示す処理と同様である。
続いて、図17のステップS1706の処理に関して、図18を用いて詳細に説明する。画像符号化装置は、HDRの輝度画像(Y_hdr)を生成する(S1801)。なお、HDRの輝度画像(Y_hdr)は、実施形態1のHDR補助データ生成フロー(図5)における、ステップS501と同様の処理で生成することができる。また、本実施形態において、ステップS1801で輝度画像(Y_hdr)を生成した場合には、ステップS501で輝度値を算出する必要はなく、ここでの結果をそのまま取得することができる。
画像符号化装置は、ステップS1801で取得した輝度画像(Y_hdr)を、JPEGのマクロブロックと同サイズの8x8画素を最小単位として、領域分割し、その領域数N_rを取得する(S1802)。領域を分割する方法に関して、本発明の主旨ではないことから、どのような方法を用いても構わない。なお、本実施形態では、ヒストグラムを生成し、そのピーク値を分離することで、領域を分割するものとする。また、分割された領域には、各領域の左上画素値を基準にラスター順で0から順に番号が付されるものとする。
画像符号化装置は、次に、付加情報を生成する領域の最小面積を示す画素数(minP)を取得する(S1803)。本実施形態において、付加情報を生成する領域の最小面積を示す画素数(minP)を、画像全体の1割の大きさとして計算する。したがって、例えば、HDR画像のサイズが5184x3456画素である場合、その1割、つまり、5184x3456/10=1791590画素が、付加情報を生成する領域の最小面積を示す画素数(minP)として取得される。
画像符号化装置は、低輝度の判定に用いる、輝度値の閾値(TH_Y)を取得する(S1804)。本実施形態の場合、処理対象とするHDR画像全体の輝度範囲のうち、低輝度側4分の1の輝度範囲にある画素を低輝度画素と判定するものとする。即ち、輝度値の閾値(TH_Y)は、(最小輝度値+輝度範囲/4)として計算される。次に、画像符号化装置は、付加情報生成領域のカウンタnumRを初期化し(S1805)、さらに分割した領域のカウンタcntを初期化する(S1806)。
画像符号化装置は、cnt番目の分割領域A(cnt)を取得し(S1807)、分割領域A(cnt)の代表輝度値(AY)と面積(AS)を取得する(S1808)。本実施形態において、各領域のヒストグラムのピーク値を有する輝度値を代表輝度値とする。画像符号化装置は、領域A(cnt)の代表輝度値(AY)が閾値(TH_Y)未満(即ち、所定の輝度値未満)であり、かつ、面積(AS)が最小画素数(minP)以上であるという条件を満たすか否かを判定する(S1809)。そして、この条件を満たす場合には、処理をステップS1810に移行させ、また、この条件を満たさない場合には(即ち、領域A(cnt)は付加情報作成領域ではない場合には)、処理をステップS1813に移行させる。
画像符号化装置は、処理をステップS1810に移行させると、領域A(cnt)が平坦な領域であるか否かを判定する(S1810)。なお、本実施形態では、領域A(cnt)内のエッジの密度を用いることで、領域A(cnt)が平坦な領域であるか否かを判定する。即ち、画像符号化装置は、水平、垂直エッジ数をカウントし、それらの値を各々、領域A(cnt)の幅、高さで除算し、その結果が所定の値より小さければ平坦と判定し、そうでなければ平坦ではないと判定する。
そして、領域A(cnt)が平坦と判定された場合、画像符号化装置は、領域A(cnt)を付加情報生成領域と判定し、処理をステップS1811に移行させる。また、領域A(cnt)が平坦と判定されなかった場合、画像符号化装置は、領域A(cnt)を付加情報生成領域ではないと判定し、処理をステップS1813に移行させる。
領域A(cnt)が平坦と判定された場合(即ち、領域A(cnt)が付加情報生成領域と判定された場合)、画像符号化装置は、付加情報生成領域のカウンタnumRをカウントアップする(S1811)。画像符号化装置は、付加情報生成領域のカウンタnumRをカウントアップすると、領域A(cnt)に含まれる矩形領域情報を生成し、さらに付加情報を生成する領域数を更新する(S1812)。なお、ステップS1812の処理に関しては、図19を用いて後述する。
画像符号化装置は、分割した領域のカウンタcntをカウントアップし(S1813)、分割した領域のカウンタcntと、分割した領域数(N_r)とを比較する(S1814)。そして、分割した領域のカウンタcntと分割した領域数(N_r)とが同じ値であれば(S1814 Yes)、全ての分割領域において、付加情報生成領域の検出(判定)は終了したものとして、処理をステップS1815に移行させる。また、分割した領域のカウンタcntと分割した領域数(N_r)とが同じ値でなければ(S1814 No)、ステップS1807に処理を返す。画像符号化装置は、付加情報生成領域の数Nに、付加情報生成領域のカウンタnumRを代入し、図18に示す処理を終了する。
続いて、図19を用いて、ステップS1812における領域A(cnt)に含まれる矩形領域情報の生成処理と付加情報を生成する領域数の更新処理をより詳細に説明する。画像符号化装置は、領域A(cnt)を矩形領域に分割する(S1901)。複合長方形領域を長方形(即ち、矩形領域)に分割する方法は、種々提案されており、どのような方法を用いてもよい。本実施形態では、領域の輪郭の水平線、垂直線をすべて検出し、それらで分割するものとする。したがって、例えば、図9(b)に示されるように、領域904は4つの矩形(905、906、907、908)に分割されることになる。
画像符号化装置は、ステップS1901において分割した数(即ち、分割数D)を取得する(S1902)。なお、図9(b)に示す例では、分割数Dは「4」となる。画像符号化装置は、分割数をカウントするカウンタcntDにゼロを代入することで、分割数のカウンタcntDを初期化する(S1903)。
画像符号化装置は、分割された領域(即ち、カウンタcntDに対応する領域)における左上座標と、その幅と高さを保存する(S1904)。なお、分割された領域の処理順序は、左上の座標のラスター順に実行される。したがって、図9(b)に示される例では、905、906、907、908の順に処理が実行される。
画像符号化装置は、次に、カウンタcntDをカウントアップし(S1905)、分割数をカウントするカウンタcntDと分割数Dが同じ値であるか否かを判定する(S1906)。そして、分割数をカウントするカウンタcntDと分割数Dが同じ値であれば(S1906 Yes)、画像符号化装置は、処理をステップS1907に移行させ、また同じ値でなければ、処理をステップS1904に返す。
画像符号化装置は、付加情報作成領域用のカウンタnumRに、ステップS1801の矩形分割により増加した領域数(D−1)を加算し(S1907)、図19に示す処理を終了する。
本実施形態で説明したように、付加情報を付与するのが効果的な領域を自動で選択することができる。なお、本実施形態において、各領域が低輝度であるか否かの判定に用いる代表輝度値として、各領域のヒストグラムのピーク値を有する輝度値を採用したが、各領域の平均輝度値又は各領域の輝度値の中央値を用いることもできる。
[実施形態5]
<HDRの顔検出結果から付加情報の生成領域を自動で設定>
実施形態4では、輝度値が閾値未満であって、かつ最小画素数以上の平坦な領域に対して付加情報を生成したが、顔検出結果を用いて付加情報を生成してもよい。この場合、実施形態4と異なるのは、図17のステップS1706で示される、HDR画像から付加情報生成領域を検出する処理である。そこで、図20を用いて、本実施形態における付加情報生成領域を検出する処理を示す。なお、図20に示す処理に関して、実施形態4の図17と同様の処理は、ここでの詳細な説明は省略する。具体的には、図20のステップS2003、S2006は、図17のステップS1806、S1813に各々、対応している。
画像符号化装置は、既存の顔領域検出手段を用いて、HDR画像から顔領域を検出する(S2001)。画像符号化装置は、ステップS2001において検出した顔領域の数FNを取得する(S2002)。画像符号化装置は、顔領域のカウンタcntを初期化する(S2003)。
画像符号化装置は、次に、cnt番目の顔領域F(cnt)を取得し(S2004)、その取得した顔領域F(cnt)の左上座標と、その幅と高さを保存する(S2005)。画像符号化装置は、顔領域のカウンタcntをカウントアップし(S2006)、顔領域のカウンタcntと、HDR画像において検出した顔領域の数FNが同じ値であるか否かを判定する(S2007)。
そして、顔領域のカウンタcntと、HDR画像において検出した顔領域の数FNが同じ値であれば(S2007 Yes)、画像符号化装置は、付加情報の生成領域の数に検出された顔領域の数FNを代入し、図20に示す処理を終了する。また、顔領域のカウンタcntと、HDR画像において検出した顔領域の数FNが同じ値でなければ、処理をステップS2004に返す。
本実施形態によれば、人が着目しやすい顔領域に関して、その明るさ(輝度値)に関わらず、付加情報を生成することができる。また、実施形態4と組み合わせることで、付加情報を生成する顔領域を限定することもできる。なお、その場合、付加情報が生成されない顔領域も生じるが、人間の視覚感度が低いことから、その顔領域の付加情報を削除することで、ファイルに出力される付加情報を小さくすることができる。その他、実施形態2と同様に、付加情報を、8ビットオーバーのデータを圧縮できる圧縮方式で圧縮することもできる。
[実施形態6]
<輝度成分の比率の対数値の範囲で付加情報の生成有無を判定>
本実施形態では、輝度成分の比率の対数値を線形量子化することによる劣化の度合いに着目する。即ち、本実施形態では、図5に示すHDR補助データの生成処理のステップS513で取得される、輝度成分の比率の対数値(Y_log)に関して、全ての画素の最大値と最小値の差が大きい場合のみ、付加情報を生成する。したがって、実施形態1では、付加情報生成用データの取得処理をHDR補助データの生成処理の前に実行することができたが、本実施形態では、HDR補助データの生成時に、付加情報生成用データの取得処理を実行する。
以下、図21を用いて、輝度成分の比率の対数値の範囲で付加情報の生成有無を判定する場合のHDR画像の圧縮処理の手順を説明する。なお、図21に示す処理に関して、実施形態1の図4と同様の処理は、ここでの詳細な説明は省略する。具体的には、ステップS2106以外の処理は、実施形態1の図4に示す処理と同様である。即ち、図21のステップS2101からS2105までの処理は、実施形態1の図4のステップS401からS405までの処理と同様の処理である。
そして、ステップS2106において、画像符号化装置は、HDR補助データの生成処理を実行する。このステップS2106における処理で、付加情報の生成有無の判定処理と、付加情報生成領域の検出処理を実行する。ステップS2106のHDR補助データの生成処理を実行すると、画像符号化装置は、処理をステップS2017に移行させ、以後の処理(即ち、ステップS410からS414までの処理と同様の処理)を実行する。
続いて、図21のステップS2106の処理(即ち、HDR補助データの生成処理)に関して、図22を用いて説明する。なお、図22に示す処理に関して、実施形態1の図5と同様の処理は、ここでの詳細な説明は省略する。具体的には、ステップS2212以外の処理は、実施形態1の図5に示す対応する処理と同様である。即ち、図22のステップS2201からS2211までの処理は、実施形態1の図5のステップS501からS510までの処理及びステップS513の処理と同様の処理である。
画像符号化装置は、輝度成分の比率の対数値(Y_log)に関して、全ての画素の最大値(Max_log)と最小値(Min_log)を取得すると(S2211)、付加情報領域生成の判定及び検出処理を実行する(S2212)。ステップS2212の付加情報領域生成の判定及び検出処理を実行すると、画像符号化装置は、処理をステップS2213に移行させ、輝度成分の比率の対数値(Y_log)を量子化し、8ビット整数化された輝度成分の比率(Y_xt)を取得する。さらに、ステップS2214において、HDR補助データのJPEG圧縮処理と付加情報生成処理を実行し、図22に示す処理を終了する。
続いて、図22のステップS2212の処理(即ち、付加情報領域生成の判定及び検出処理)に関して、図23を用いて詳細に説明する。画像符号化装置は、付加情報の生成条件となる輝度差Lを取得する(S2301)。画像符号化装置は、輝度差Lを取得すると、ステップS2211で取得した輝度成分の比率の対数値(Y_log)の最大値(Max_log)と最小値(Min_log)の差分値と比較する(S2302)。即ち、輝度差比較を処理として実行する。そして、その差分値が輝度差Lよりも大きければ、画像符号化装置は、付加情報を生成すると判定し、処理をステップS2303に移行させ、また輝度差Lよりも小さければ、付加情報を生成する必要がないと判定し、処理をステップS2304に移行させる。
ステップS2303において、画像符号化装置は、付加情報フラグ(Flag)に1を代入する。そして、付加情報フラグ(Flag)に1を代入すると、画像符号化装置は、HDR画像から付加情報の生成領域を検出する(S2305)。なお、本実施形態では、実施形態4と同様の方法で付加情報の生成領域を検出することとし、その後に、図23に示す処理を終了する。また、処理をステップS2304に移行した場合、画像符号化装置は、付加情報フラグ(Flag)に0を代入し、図23に示す処理を終了する。
本実施形態によれば、輝度成分の比率の対数値(Y_log)の量子化(即ち、8ビット整数化)による誤差が大きいと判定された場合にのみ、付加情報を生成することができる。また、本実施形態において、付加情報の生成にあたり、実施形態4と同様の方法で付加情報を生成するように説明したが、実施形態5のように顔検出の結果を用いて付加情報を生成するようにしてもよい。
[実施形態7]
<量子化による誤差のみを付加情報として生成>
実施形態1から6では、HDR補助データの圧縮誤差として、量子化(即ち、8ビット整数化)による誤差と、その後のJPEG圧縮による誤差を考慮し、これらの誤差を補正するための情報を付加情報として生成した。但し、これらの誤差のうち、量子化(即ち、8ビット整数化)による誤差の方が、復号(デコード)した画像の画質劣化に及ぼす影響が大きいと言える。
そこで、本実施形態では、量子化による誤差のみを付加情報として記憶する方法に関して、説明する。なお、本実施形態において、実施形態1と同様に、付加情報を生成する領域は、ユーザにより入力部302を用いて設定されるものとして説明するが、例えば、実施形態4のように、入力されたHDRから付加情報を生成する領域を自動で検出してもよい。
本実施形態において、実施形態1と異なる処理は、図5におけるステップS515の処理(即ち、HDR補助データのJPEG圧縮と付加情報の生成に関する処理)である。より詳細には、HDR補助データの輝度成分(Y成分)の逆量子化及び逆DCTが不要になることと、処理の順序が変更されることである。本実施形態におけるHDR補助データのJPEG圧縮と付加情報の生成に関する処理に関して、図24を用いて説明する。なお、図24に示す処理に関して、処理自体は実施形態1の図6と同様であることから、ここでは、各処理の詳細な説明は省略し、主に各処理の順序を説明する。
画像符号化装置は、8ビット整数化された輝度成分の比率の対数値(Y_xt)のマクロブロックMBを取得する(S2401)。画像符号化装置は、取得したマクロブロックMBが付加情報生成領域内にあるか否かを判定する(S2402)。画像符号化装置は、マクロブロックMBが付加情報生成領域内にあると判定した場合、処理をステップS2403に移行させ、マクロブロックMBが付加情報生成領域内にないと判定した場合、処理をステップS2404に移行させる。
画像符号化装置は、付加情報を生成する領域の輝度成分の比率の対数値(ROI_Y_log)と、量子化された輝度成分の比率を逆量子化した結果(ROI_DecYlog)との差分を、輝度比補正情報(DifYlog)として保存する(S2403)。
画像符号化装置は、輝度比補正情報(DifYlog)を保存すると、マクロブロックMBにDCTを実行し(S2404)、DCT係数を取得する。画像符号化装置は、取得したDCT係数に対して、量子化を実行する(S2405)。画像符号化装置は、量子化されたDCT係数をエントロピー符号化する(S2406)。
画像符号化装置は、8ビット整数化された輝度成分の比率(Y_xt)の全てのマクロブロックMBに対して、圧縮処理が終了したか否かを判定する。判定の結果、圧縮処理が終了していなければ、画像符号化装置は、処理をステップS2401に返し、圧縮処理が終了していれば、処理をステップS2408に移行させる。なお、ステップS2408からS2415までの処理は、図6のステップS610からS617までの処理と、その処理内容及び処理順序が同じであることから、ここでの説明は省略する。
本実施形態によれば、逆量子化、逆DCTの処理を実行しないことから、実施形態1よりも軽い負荷で付加情報を生成することができる。なお、実施形態1と実施形態7は、JPEG補助データのJPEG圧縮パラメータによって切り替えることもできる。例えば、HDR補助データのJPEG圧縮時のQファクタが大きい場合、即ち、量子化ステップが細かい場合、HDR補助データのJPEG圧縮による劣化は、小さいと判断することができる。この場合、実施形態5に示した方法及び手段を適用し、8ビット整数化の量子化誤差のみを保存すればよい。逆に、HDR補助データのJPEG圧縮時の量子化ステップが粗い場合は、実施形態1に示した方法及び手段を適用し、8ビット整数化の量子化誤差とJPEG圧縮時の量子化誤差の双方を付加情報として保存すればよい。また、本実施形態において、実施形態1と同様に、付加情報をJPEG圧縮形式で圧縮しているが、実施形態2と同様に、付加情報を、8ビットオーバーのデータを圧縮できる圧縮方式で圧縮することもできる。
以上、説明したように、上述の実施形態に係る画像符号化装置によれば、処理負荷及び使用メモリ量を軽減した上で、復号したHDR画像の画質を向上させることである。
なお、HDR画像が、カメラ等の撮像装置により撮像された画像である場合、付加情報を生成する領域の自動検出に、カメラのオートフォーカス位置を含む領域を用いることもできる。
また、実施形態4乃至実施形態7において、輝度成分の比率(Y_ratio)に関する付加情報の生成処理を示したが、実施形態3に示されるように色差成分の付加情報を生成することもできる。
加えて、上述の実施形態では、説明を簡略化するために、付加情報の圧縮方式を固定して説明した。しかしながら、付加情報の圧縮方式は、付加情報の精度やデータサイズから選択することもできる。そして、その場合、付加情報の出力時に、符号化方式の識別番号を出力すればよい。
その他、付加情報の生成が必要か否かに関して、HDR補助データの圧縮パラメータの一つである量子化パラメータから判定することもできる。即ち、量子化が粗い場合には、HDR補助データの劣化が大きいと判断し、付加情報の生成が必要と判定することができる。
また、本実施形態において、付加情報を、図25(b)に示されるように、JPEG XTのHDR補助データが格納されている記憶領域(即ち、APP11マーカ)において、HDR補助データに続けて出力していた。しかしながら、例えば、図25(c)に示されるように、別のAPP11マーカを1つ以上生成し、そのAPPマーカ内に出力することもできる。さらに、各マーカのデータ長は、2バイトで表現できるバイト数に制限される。そのため、付加情報のデータサイズが大きい場合には、図25(d)に示されるように、複数のAPP11マーカに分割して出力することもできる。
最後に、補足として、上述の実施形態に係る画像符号化装置により符号化されたHDR画像データ(即ち、JPEG XTデータ)を復号する画像復号装置について説明する。また、ここでは、主にISO/IEC 18477−2との相違点に着目して説明する。
図26に示される画像復号装置は、JPEG XTデータ2601から、そのデータ構成を踏まえ、JPEG圧縮されたLDR画像と、HDR補助データ及び付加情報(重要領域データ)とに分離して抽出する。
画像復号装置は、JPEG圧縮されたLDR画像に関して、JPEG復号部2603にてJPEG復号した後に、アップサンプリング部(2604)及びYCC/RGB変換部(2605)において各々、処理を実行する。さらに、画像復号装置は、逆色変換部(2606)により、sRGB色空間から線形色空間に変換する。そして、その線形色空間に変換されたLDR画像に、逆トーンマッピングを施す(2617)ことで、HDR画像を生成する。
他方、画像復号装置は、HDR補助データと、付加情報とにデータを分離し(2607)、さらにHDR補助データをJPEG復号(2609)する。そして、そのJPEG復号されたHDR補助データのうち、色差補助情報に関して、画像復号装置は、逆量子化し(2613)、さらに生成されたHDR画像より算出された輝度成分でスケール変換する(2614)。その後に、YCC/RGB変換し(2615)、生成されたHDR画像に加算する。
また、JPEG復号されたHDR補助データのうち、輝度成分に関して、画像復号装置は、JPEG復号(2608)した付加情報(即ち、輝度比補正情報)で補正し、さらに逆量子化を実行する(2611)。そして、その逆量子化した結果を、色差補助情報が加算されたHDR画像に掛け合わせる(2612)ことで、HDR画像に輝度補正を施す。これにより、画質を向上させたHDR画像を生成することができる。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。