(57)【要約】【課題】  復号したＬＤＲ画像の解析に従い、ＬＤＲ画像を復号結果として出力するか、ＨＤＲ差分符号化データを復号してＨＤＲ画像として出力すべきかの判定を自動化する。【解決手段】  ＬＤＲ画像復号部１０３は、ＨＤＲ画像符号化データを入力すると、その中のＬＤＲ画像符号化データを復号する。ＨＤＲ差分復号判定部１０５は、復号したＬＤＲ画像データの輝度成分の分布から、前記ＨＤＲ差分符号化データの復号の要否を判定する。判定の結果が要を示している場合には、ＨＤＲ差分符号化データを復号し、この復号結果とＬＤＲ画像からＨＤＲ画像を生成する。また、判定の結果が否を示している場合には、ＬＤＲ画像を復号結果として出力する。【選択図】  図１
2015019287.tif 000002
【特許請求の範囲】
【請求項１】
ＬＤＲ画像を表すＬＤＲ画像符号化データ及び前記ＬＤＲ画像とＨＤＲ画像の差分データを表すＨＤＲ差分符号化データを含むＨＤＲ画像符号化データを復号する画像復号装置であって、
ＨＤＲ画像符号化データを入力する入力手段と、
入力したＨＤＲ画像符号化データにおけるＬＤＲ画像符号化データを復号し、ＬＤＲ画像を生成する第１の復号手段と、
復号したＬＤＲ画像データの輝度成分の分布から、前記ＨＤＲ差分符号化データの復号の要否を判定手段と、
該判定手段の判定の結果が要を示している場合、前記ＨＤＲ差分符号化データを復号し、当該復号結果と前記ＬＤＲ画像からＨＤＲ画像を生成する第２の復号手段と、
前記判定手段の判定の結果が否を示している場合には、前記第１の復号手段で得られた前記ＬＤＲ画像を復号結果として出力し、前記判定手段の判定の結果が要を示している場合には、前記第２の復号手段で得られたＨＤＲ画像を復号結果として出力する出力手段と
を有することを特徴とする画像復号装置。
【請求項２】
前記判定手段は、
前記ＬＤＲ画像の画素毎の輝度成分値を算出する手段と、
白飛びを判定するための第１の閾値以上の輝度成分を持つ画素数と、黒潰れを判定するための第２の閾値以下の輝度成分値を持つ画素数との和を求める手段と、
当該和の前記ＬＤＲ画像の総画素数に対する割合が予め設定した割合とを比較する手段とを含み、
前記和の前記ＬＤＲ画像の総画素数に対する割合が前記予め設定した割合を上回ったとき、前記ＨＤＲ差分符号化データの復号を要と判定し、それ以外の場合には否と判定することを特徴とする請求項１に記載の画像復号装置。
【請求項３】
前記判定手段は、
前記ＬＤＲ画像の画素毎の輝度成分値を算出する手段と、
白飛びを判定するための第１の閾値、並びに、黒潰れを判定するための第２の閾値を用い、着目画素が白飛び又は黒潰れのいずれかに属しているか、又は、いずれにも属していないかを判定する手段と、
白飛び又は黒潰れに属する画素が連続する領域の画素数が、前記ＬＤＲ画像の画素数で求まる閾値を上回るとき、前記ＨＤＲ差分符号化データの復号を要と判定し、それ以外の場合には否と判定することを特徴とする請求項１に記載の画像復号装置。
【請求項４】
表示装置の表示領域に含まれる画素数と取得する取得手段と、
復号対象画像の画素数と、前記取得手段で取得した画素数とを比較する比較手段とを有し、
前記比較手段の結果に基づいて、前記輝度成分の分布に基づく判定を行うか否かを切り替える
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像復号装置。
【請求項５】
前記判定手段は、
前記ＬＤＲ画像の画素数が前記取得手段で取得した画素数を上回った場合に前記輝度成分の分布に基づく判定を行い、
前記ＬＤＲ画像の画素数が前記取得手段で取得した画素数以下の場合には、前記ＨＤＲ差分符号化データの復号を要として判定する
ことを特徴とする請求項４に記載の画像復号装置。
【請求項６】
前記判定手段は、
前記ＬＤＲ画像の画素数が前記取得手段で取得した画素数を上回った場合に前記輝度成分の分布に基づく判定を行い、
前記ＬＤＲ画像の画素数が前記取得手段で取得した画素数以下の場合には、前記ＨＤＲ差分符号化データの復号を否として判定する
ことを特徴とする請求項４に記載の画像復号装置。
【請求項７】
前記判定手段は、
前記ＬＤＲ画像の画素数が前記取得手段で取得した画素数を上回った場合に前記ＨＤＲ差分符号化データの復号を否として判定し、
前記ＬＤＲ画像の画素数が前記取得手段で取得した画素数以下の場合には、前記輝度成分の分布に基づく判定を行う
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像復号装置。
【請求項８】
前記ＨＤＲ差分符号化データは、予め設定された複数の画素で表されるブロック単位に復号可能な構造である場合、前記第２の復号手段は、前記白飛び又は黒潰れに属する画素が連続する領域を包含するブロックを復号することを特徴とする請求項３に記載の画像復号装置。
【請求項９】
ＬＤＲ画像を表すＬＤＲ画像符号化データ及び前記ＬＤＲ画像とＨＤＲ画像の差分データを表すＨＤＲ差分符号化データを含むＨＤＲ画像符号化データを復号する画像復号装置であって、
ＨＤＲ画像符号化データを入力する入力手段と、
入力したＨＤＲ画像符号化データにおけるＬＤＲ画像符号化データを復号し、ＬＤＲ画像を生成する第１の復号手段と、
該第１の復号手段で得られたＬＤＲ画像中の隣接する画素間の輝度差が予め設定された閾値より大きい位置を特定する第１の特定手段と、
該第１の復号手段で得られたＬＤＲ画像から予め設定された間隔でサンプリングし、当該サンプリングした画素で構成される縮小ＬＤＲ画像中の隣接する画素間の輝度差が予め設定された前記閾値より大きい位置を特定する第２の特定手段と、
前記第１、第２の特定手段で特定されたそれぞれの画素位置から、前記ＨＤＲ差分符号化データの復号の要否を判定手段と、
該判定手段の判定の結果が要を示している場合、前記ＨＤＲ差分符号化データを復号し、当該復号結果と前記ＬＤＲ画像からＨＤＲ画像を生成する第２の復号手段と、
前記判定手段の判定の結果が否を示している場合には、前記第１の復号手段で得られた前記ＬＤＲ画像を復号結果として出力し、前記判定手段の判定の結果が要を示している場合には、前記第２の復号手段で得られたＨＤＲ画像を復号結果として出力する出力手段と
を有することを特徴とする画像復号装置。
【請求項１０】
ＬＤＲ画像を表すＬＤＲ画像符号化データ及び前記ＬＤＲ画像とＨＤＲ画像の差分データを表すＨＤＲ差分符号化データを含むＨＤＲ画像符号化データを復号する画像復号装置であって、
ＨＤＲ画像符号化データを入力する入力手段と、
表示装置の表示領域に含まれる画素数と取得する取得手段と、
復号対象画像の画素数と、前記取得手段で取得した画素数とを比較する比較手段とを有し、
入力したＨＤＲ画像符号化データにおけるＬＤＲ画像符号化データを復号し、ＬＤＲ画像を生成する第１の復号手段と、
前記比較手段の結果に基づいて、前記ＨＤＲ差分符号化データの復号の要否を判定する判定手段と、
該判定手段の判定の結果が要を示している場合、前記ＨＤＲ差分符号化データを復号し、当該復号結果と前記ＬＤＲ画像からＨＤＲ画像を生成する第２の復号手段と、
前記判定手段の判定の結果が否を示している場合には、前記第１の復号手段で得られた前記ＬＤＲ画像を復号結果として出力し、前記判定手段の判定の結果が要を示している場合には、前記第２の復号手段で得られたＨＤＲ画像を復号結果として出力する出力手段と
を有することを特徴とする画像復号装置。
【請求項１１】
ＬＤＲ画像を表すＬＤＲ画像符号化データ及び前記ＬＤＲ画像とＨＤＲ画像の差分データを表すＨＤＲ差分符号化データを含むＨＤＲ画像符号化データを復号する画像復号装置の制御方法であって、
入力手段が、ＨＤＲ画像符号化データを入力する入力工程と、
第１の復号手段が、入力したＨＤＲ画像符号化データにおけるＬＤＲ画像符号化データを復号し、ＬＤＲ画像を生成する第１の復号工程と、
判定手段が、復号したＬＤＲ画像データの輝度成分の分布から、前記ＨＤＲ差分符号化データの復号の要否を判定工程と、
第２の復号手段が、前記判定工程の判定の結果が要を示している場合、前記ＨＤＲ差分符号化データを復号し、当該復号結果と前記ＬＤＲ画像からＨＤＲ画像を生成する第２の復号工程と、
出力手段が、前記判定工程の判定の結果が否を示している場合には、前記第１の復号工程で得られた前記ＬＤＲ画像を復号結果として出力し、前記判定工程の判定の結果が要を示している場合には、前記第２の復号工程で得られたＨＤＲ画像を復号結果として出力する出力工程と
を有することを特徴とする画像復号装置の制御方法。
【請求項１２】
ＬＤＲ画像を表すＬＤＲ画像符号化データ及び前記ＬＤＲ画像とＨＤＲ画像の差分データを表すＨＤＲ差分符号化データを含むＨＤＲ画像符号化データを復号する画像復号装置の制御方法であって、
入力手段が、ＨＤＲ画像符号化データを入力する入力工程と、
第１の復号手段が、入力したＨＤＲ画像符号化データにおけるＬＤＲ画像符号化データを復号し、ＬＤＲ画像を生成する第１の復号工程と、
第１の特定手段が、前記第１の復号工程で得られたＬＤＲ画像中の隣接する画素間の輝度差が予め設定された閾値より大きい位置を特定する第１の特定工程と、
第２の特定手段が、前記第１の復号工程で得られたＬＤＲ画像から予め設定された間隔でサンプリングし、当該サンプリングした画素で構成される縮小ＬＤＲ画像中の隣接する画素間の輝度差が予め設定された前記閾値より大きい位置を特定する第２の特定工程と、
判定手段が、前記第１、第２の特定工程で特定されたそれぞれの画素位置から、前記ＨＤＲ差分符号化データの復号の要否を判定工程と、
第２の復号手段が、前記判定工程の判定の結果が要を示している場合、前記ＨＤＲ差分符号化データを復号し、当該復号結果と前記ＬＤＲ画像からＨＤＲ画像を生成する第２の復号工程と、
出力手段が、前記判定工程の判定の結果が否を示している場合には、前記第１の復号工程で得られた前記ＬＤＲ画像を復号結果として出力し、前記判定工程の判定の結果が要を示している場合には、前記第２の復号工程で得られたＨＤＲ画像を復号結果として出力する出力工程と
を有することを特徴とする画像復号装置の制御方法。
【請求項１３】
コンピュータに読み込ませ実行させることで、前記コンピュータに、請求項１１又は１２に記載の画像復号装置の制御方法に記載の各工程を実行させるためのプログラム。
【請求項１４】
請求項１３に記載のプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化画像データを復号する技術に関するものである。
【背景技術】
【０００２】
近年、ＨＤＲと呼ばれる画像が注目されている。ＨＤＲはＨｉｇｈ  Ｄｙｎａｍｉｃ  Ｒａｎｇｅの略であり、高ダイナミックレンジ性を有する画像、もしくはそのような画像の表現方法を指している。通常のビットマップやＪＰＥＧなどに代表されるＬＤＲ（Ｌｏｗ  Ｄｙｎａｍｉｃ  Ｒａｎｇｅ）の画像は、１画素ＲＧＢそれぞれ８ビット、２５６階調で表現されるが、ＨＤＲはそれらをはるかにしのぐ階調を持つ。
【０００３】
ＨＤＲの画像の符号化方法は種々提案されている。特許文献１，２は一例であり、ＨＤＲの画像からＬＤＲの画像を生成して、ＬＤＲの画像をＪＰＥＧ符号化する。そして、ＬＤＲのＪＰＥＧ符号列のアプリケーションマーカーセグメントに、ＬＤＲからＨＤＲに戻すための差分情報を保存する。この符号化方法の良い点は、従来のＪＰＥＧビューアでＬＤＲの画像を復号表示できることである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００７−５３４２３８号公報
【特許文献２】特開２０１１−１９３５１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＨＤＲ画像をディスプレイで表示する際には、それが如何なる画像であってもＬＤＲの画像、および、ＨＤＲに戻すための差分情報を復号することになる。しかしながら、画像の表示サイズが小さく、解像度の低い画像を生成する場合には、差分情報を復号しても良好な画質を望めない可能性が高い。にも関わらず、差分情報を復号するには、それ相応の処理時間がかかる。それ故、差分情報を復号するか否かを適応的に切り替えることが望ましいが、その切り替えにかかる方法は確立されていない。本発明はこの問題を解決するためになされたものである。
【課題を解決するための手段】
【０００６】
この課題を解決するため、例えば本発明の画像復号装置は以下の構成を備える。すなわち、
ＬＤＲ画像を表すＬＤＲ画像符号化データ及び前記ＬＤＲ画像とＨＤＲ画像の差分データを表すＨＤＲ差分符号化データを含むＨＤＲ画像符号化データを復号する画像復号装置であって、
ＨＤＲ画像符号化データを入力する入力手段と、
入力したＨＤＲ画像符号化データにおけるＬＤＲ画像符号化データを復号し、ＬＤＲ画像を生成する第１の復号手段と、
復号したＬＤＲ画像データの輝度成分の分布から、前記ＨＤＲ差分符号化データの復号の要否を判定手段と、
該判定手段の判定の結果が要を示している場合、前記ＨＤＲ差分符号化データを復号し、当該復号結果と前記ＬＤＲ画像からＨＤＲ画像を生成する第２の復号手段と、
前記判定手段の判定の結果が否を示している場合には、前記第１の復号手段で得られた前記ＬＤＲ画像を復号結果として出力し、前記判定手段の判定の結果が要を示している場合には、前記第２の復号手段で得られたＨＤＲ画像を復号結果として出力する出力手段とを有する。
【発明の効果】
【０００７】
本発明によれば、復号したＬＤＲ画像の解析に従い、ＬＤＲ画像を復号結果として出力するか、ＨＤＲ差分符号化データを復号してＨＤＲ画像として出力すべきかの判定を自動化することが可能になる。
【図面の簡単な説明】
【０００８】
【図１】本発明における画像復号装置を構成するブロック図。
【図２】第１実施形態における画像復号装置のフローチャート。
【図３】第１実施形態におけるＨＤＲ差分復号判定部１０５のフローチャート。
【図４】第１実施形態におけるＬＤＲ画像の輝度値のヒストグラムの例、
【図５】ＳＮとＰＤ先頭アドレスの対応表を示す図。
【図６】ＨＤＲ画像符号化データのデータ構成図。
【図７】８ビット整数化されたＹレシオの数値例を示す図。
【図８】第３実施形態におけるＨＤＲ差分復号判定部１０５のフローチャート。
【図９】第３実施形態におけるＨｆｌａｇ分布図の例を示す図。
【図１０】ＨＤＲ差分復号部１０７を構成するブロック図。
【図１１】ＨＤＲ差分復号部１０７のフローチャート。
【図１２】第１実施形態における画像符号化装置を構成と処理手順を示す図。
【図１３】ＨＤＲ差分データ符号化部１２０４を構成するブロック図。
【図１４】ＨＤＲ差分データ符号化部１２０４のフローチャート。
【図１５】第４実施形態におけるＨＤＲ差分復号判定部１０５のフローチャート。
【図１６】第４実施形態における復号対象エリアの例を示す図。
【図１７】ＨＤＲ画像復号部１０７のフローチャート。
【図１８】第１実施形態における符号列解析部１２０３のフローチャート。
【図１９】表示部１０８の処理を説明する図。
【図２０】実施形態の画像復号装置をコンピュータによって実現する場合のコンピュータのブロック構成図。
【図２１】第６の実施形態におけるＨＤＲ差分復号判定部１０５のフローチャート。
【図２２】第６の実施形態における疑似輪郭の発生する画像例を示す図。
【図２３】第２の実施形態における画像復号装置のフローチャート。
【発明を実施するための形態】
【０００９】
以下、添付図面に従って本発明に係る実施の形態を詳細に説明する。
【００１０】
［第１の実施形態］
本実施形態における符号化方法は、ＨＤＲ画像データに対してトーンマッピングというダイナミックレンジを圧縮する処理を行い、８ビットの低ダイナミックレンジのＬＤＲ画像データを生成し、ＪＰＥＧ符号化をする。そして、ＬＤＲ画像データをＨＤＲ画像データに戻す上で必要となるＨＤＲ差分データを生成した後、ＨＤＲ差分データを符号化する。最終的に出力する符号化データ（ＨＤＲ画像符号化データ）は、ＬＤＲ画像のＪＰＥＧデータとＨＤＲ差分データの符号化データ（ＨＤＲ差分符号化データ）となる。ＨＤＲ差分データの生成・符号化の方法はいくつかあるが、本実施形態においては、ＨＤＲ差分データの生成・符号化方式として以下の方式について説明する。ＨＤＲ画像データと、ＨＤＲ画像データをトーンマッピングして生成したＬＤＲ画像データの輝度成分比（Ｙレシオ）を取る。Ｙレシオを使って、ＬＤＲ画像データをＨＤＲのレンジに戻して、オリジナルのＨＤＲ画像データとの色差成分の差分を生成する。そして、Ｙレシオと色差成分を８ビット化してＪＰＥＧ符号化する方法である。以上の方法で生成・符号化されたＨＤＲ画像符号化データについて、本実施形態では、元の画像よりも低解像度でディスプレイ表示する場合において、ＨＤＲ差分データを復号すべきか、復号する必要がないかの判断の方法を示す。
【００１１】
本実施形態に係る復号装置の説明の前に、本実施形態においてＨＤＲ画像の符号化について説明しておく。ここでは、符号化対象のＨＤＲ画像データは、ＲＧＢカラーデータとし、各コンポーネント（色）は１６ビットの実数値として説明する。但し、ＲＧＢ以外のコンポーネントの構成（例えばグレー）でも構わず、色空間の種類、コンポーネントの個数は問わない。また、１成分のビット数も１６ビットに限らず、３２ビットなど、１６ビットを超えるビット数でもよい。また、実数値だけに限定されず、１６ビットの整数値などでもよい。つまり、ＨＤＲのコントラスト比を表現できれば、入力画像の形式はどのようなものでもよい。
【００１２】
図１２（ａ）はＨＤＲ画像の符号化装置のブロック構成図である。同図において、１２０１は入力部、１２０２は装置全体の制御を司るＣＰＵ、１２０３はＬＤＲ画像生成部、１２０４はＨＤＲ差分データ符号化部、１２０５はＬＤＲ画像符号化部、１２０６はバッファＡ、１２０７は符号列生成部、２０８は出力部である。同図（ｂ）、画像符号化装置の処理フローを示したフローチャートである。以下、図１２（ａ），（ｂ）を用いて、本実施形態における符号化装置の処理を説明する。
【００１３】
入力部１２０１から符号化対象のＨＤＲ画像が入力されると（ステップＳ１３０１）、入力されたＨＤＲ画像はＬＤＲ画像生成部１２０３に供給されるとともに、ＨＤＲ画像のコピーがバッファＡ１２０６へ格納される。ＬＤＲ画像生成部１２０３は、ＨＤＲ画像の入力を受けると、トーンマッピング処理により、ＬＤＲ（Ｌｏｗ  Ｄｙｎａｍｉｃ  Ｒａｎｇｅ）画像を生成する（ステップＳ１３０２）。トーンマッピング処理とは、ＨＤＲ画像を所定のダイナミックレンジに圧縮する処理のことであり、ＨＤＲ画像を通常のディスプレイで表示する場合等では不可欠な処理である。トーンマッピングについては、様々な処理が提案されており、人間の視覚特性や表示デバイス特性を考慮した手法が主流となっている。本実施形態においては、トーンマッピングにより８ビットの整数値（０〜２５５）のＬＤＲ画像を生成するものとし、どのような手法を用いてもよい。生成されたＬＤＲ画像はＬＤＲ画像符号化部１２０５へ出力され、そのコピーがバッファＡ１２０６に格納される。また、ＬＤＲ画像生成部１２０３は、ＬＤＲ画像をＨＤＲレンジの画像に戻すための逆トーンマッピング情報も、バッファＡ１２０６へ格納する。この情報は、ＲＧＢ各色のコンポーネント値０〜２５５が、ＨＤＲレンジではどの値にマッピングされるかを示すものである。ＬＤＲ画像符号化部１２０５は、ＬＤＲ画像をＪＰＥＧ符号化方式（ＩＳＯ／ＩＥＣ１０９１８−１，  ＩＴＵ−Ｔ  Ｔ．８１）により圧縮する（ステップＳ１３０３）。ＪＰＥＧ符号化方式の圧縮方式については、公知技術であり、説明を割愛する。ＬＤＲ画像のＪＰＥＧ圧縮データは、符号列生成部１２０７へ出力される。
【００１４】
ステップＳ１３０３の処理が終了すると、復号時にＬＤＲ画像をＨＤＲ画像へ戻すために必要となるＨＤＲ差分データの符号化を行う（ステップＳ１３０４）。この処理はＨＤＲ差分データ符号化部１２０４が、バッファＡ１２０６に格納されているＨＤＲ画像データ、ＬＤＲ画像データ、逆トーンマッピング情報に基づき実行する。ＨＤＲ差分データは、入力のＨＤＲ画像と同じ水平、垂直の画素数で、コンポーネント数は３、各コンポーネントは８ビットの整数値（０〜２５５）を持つ。ＨＤＲ差分データの具体的な符号化方法は後程説明することとする。符号列生成部１２０７は、ＬＤＲ画像のＪＰＥＧ圧縮データとＨＤＲ差分符号化データから、ＨＤＲ画像の符号列（ＨＤＲ画像符号化データ）を生成する（ステップＳ１３０５）。ＨＤＲ画像符号化データの生成方法の概略は、ＬＤＲ画像のＪＰＥＧ圧縮データのヘッダ内に、通常のＪＰＥＧデコーダは読み飛ばす領域を設けて、その中にＨＤＲ差分符号化データと付随する情報（付随情報）を挿入する。このような構成にする理由は、従来のＪＰＥＧデコーダには、ＬＤＲ画像の復号表示を可能とさせるためである。
【００１５】
図６（ａ）は、ＨＤＲ画像符号化データの全体構成であり、ＳＯＩはＪＰＥＧ圧縮データの先頭を示すマーカーである。ヘッダには、ＬＤＲ画像の圧縮条件（量子化パラメータ、ハフマン符号化テーブル等）や画像の水平、垂直方向のサイズ、ビット深さなどの情報が格納される。さらに、ヘッダ内の「ＨＤＲ差分データ符号化情報」の領域に、ＨＤＲ差分符号化データと付随情報が格納される。圧縮データ列には、ＬＤＲ画像の圧縮データが格納され、ＥＯＩはＪＰＥＧ圧縮データの後尾であることを示すマーカーである。「ＨＤＲ差分データ符号化情報」領域には、ＨＤＲ差分符号化データと付随情報が個別に、ＡＰＰ１１マーカーでくくられる領域（ＡＰＰ１１のアプリケーションマーカーセグメント）へ格納される。ＪＰＥＧの規格では、デコーダにとって不要なアプリケーションマーカーセグメントを読み飛ばすことが決められている。アプリケーションマーカーセグメントは、最大長が６５５３５ｂｙｔｅとされている。ＨＤＲ差分符号化データは、この最大長を超える場合もある。そのようなときには、ＨＤＲ差分符号化データを複数に分割して、それぞれを個別のアプリケーションマーカーセグメントへ格納する。つまり、アプリケーションマーカーセグメントは最低でも２つあり、ＨＤＲ差分符号化データのサイズに応じて、３つ、４つと増えていく。図６（ｂ）は、アプリケーションマーカーセグメントのシンタックスを示している。同図において、ｍａｒｋｅｒにはＡＰＰ１１を示すマーカーコード０ｘＦＦＥＢを記す。ｌｅｎにはアプリケーションマーカーセグメントのサイズが記される。ＣＩ（Ｃｏｍｍｏｎ  Ｉｄｅｎｔｉｆｉｅｒ）には、固定的に”ＪＰ”のコードが記述される。ＴＢ（Ｔｙｐｅ  ｏｆ  Ｂｏｘ）にはアプリケーションマーカーセグメントに格納されている情報の種別、つまり、ＨＤＲ差分符号化データ／付随情報のいずれかを示すシグナルが格納される。“０”であれば付随情報、“１”であればＨＤＲ差分符号化データである。上述の通り、アプリケーションマーカーセグメントのサイズには上限があるので、ＨＤＲ差分符号化データは複数に分割される可能性がある。このため、復号時には、分割されたデータを正しい順番に並べる必要があり、ＳＮ（Ｓｅｑｕｅｎｃｅ  Ｎｕｍｂｅｒ）には、通し番号が記される。なお、ＴＢ＝０の場合には、ＳＮ＝０のみが記される。Ｐａｙｌｏａｄ  Ｄａｔａ（ＰＤ）には、ＨＤＲ差分符号化データもしくは付随情報のデータ列が記される。付随情報は、ＨＤＲ差分符号化データにおける輝度，色差に関する、圧縮前の最大値と最小値である。この最大値と最小値については、ＨＤＲ差分の符号化方法の説明で触れる。なお、全てのＡＰＰ１１アプリケーションマーカーセグメントは、ヘッダ中に連続して配置されるものとする。
【００１６】
さて、ＨＤＲ差分符号化データの生成が終了すると、出力部１２０８から装置外部へ出力される（ステップＳ１３０６）。出力先は、ネットワーク、記憶媒体などで良く、その種類は問わない。
【００１７】
続いて、ＨＤＲ差分データ符号化部１２０４の処理の説明に移る。図１３はＨＤＲ差分データ符号化部１２０４を構成するブロック図である。同図において、１４０１は輝度成分比算出部、１４０２は対数変換部、１４０３はバッファＢ、１４０４は最大値／最小値導出部Ａ、１４０５は整数化部Ａ、１４０６はバッファＤ、１４０７は入力画像除算部である。さらに、１４０８はＬＤＲ相当画像／ＬＤＲ画像差分算出部、１４０９は色変換部、１４１０はノーマライズ部、１４１１はバッファＣ、１４１２は最大値／最小値導出部Ｂ、１４１３は整数化部Ｂ、１４１４はバッファＥである。まず、詳細な説明に入る前に、ＨＤＲ差分データ符号化部１２０４の処理概要について述べる。処理が開始すると、ＨＤＲ画像とＬＤＲ画像それぞれの輝度成分の比（Ｙレシオ）、つまりＨＤＲ輝度成分値／ＬＤＲ輝度成分値を、画素毎に求める。そして、その輝度成分比を用いて、ＨＤＲ画像のＲＧＢ各コンポーネントに対して除算を行い、疑似的にＬＤＲ相当のダイナミックレンジを持つ画像（以下、ＬＤＲ相当画像という）を生成する。さらに、ＬＤＲ画像とＬＤＲ相当画像の間で、各画素におけるＲＧＢ各コンポーネントの差分を求める。その差分データに対してＹＣｂＣｒ変換を行い、Ｃｂ差分、Ｃｒ差分を生成する。そして、ＹレシオとＣｂ差分、Ｃｒ差分を、１枚の画像を構成するコンポーネントと見立てて、ＬＤＲ画像符号化部１２０５へ出力する。
【００１８】
図１４は、図１３のＨＤＲ差分データ符号化部１２０４の処理を示すフローチャートである。以下、図１３、図１４を用いて、ＨＤＲ差分データ符号化部１２０４の処理を説明する。処理が開始されると、輝度成分比算出部１４０１は、バッファＡ１２０６からＨＤＲ画像とＬＤＲ画像を取得する。そして、以下の式に従い、ＨＤＲ画像の輝度成分Ｙ＿ｈｄｒ、ＬＤＲ画像の輝度成分Ｙ＿ｌｄｒ、Ｙレシオ（Ｒａｔｉｏ）を算出する（ステップＳ１５０１）。
Ｙ＿ｈｄｒ＝０．２９９＊Ｒ＿ｈｄｒ＋０．５８７＊Ｇ＿ｈｄｒ＋０．１１４＊Ｂ＿ｈｄｒ
Ｙ＿ｌｄｒ＝０．２９９＊Ｒ＿ｌｄｒ＋０．５８７＊Ｇ＿ｌｄｒ＋０．１１４＊Ｂ＿ｌｄｒ
Ｒａｔｉｏ＝Ｙ＿ｈｄｒ／Ｙ＿ｌｄｒ
【００１９】
算出されたＹレシオは、バッファＥ１４１４へ出力される。対数変換部１４０２は、バッファＥ１４１４からＹレシオを取得し、対数変換（底は２）する（ステップＳ１５０２）。Ｙレシオは、最終的にＪＰＥＧ符号化されるため、８ビットの整数（０〜２５５）に表現される必要がある。Ｙレシオはダイナミックレンジが非常に広いので、対数変換をせずに８ビットの整数化を行うと、小さなＹレシオの変化がつぶされてしまい、微妙な輝度変化が失われる。一方で、Ｙレシオの対数表現に対して８ビットの整数化を行うと、小さな輝度の変化を保てる。そのため、Ｙレシオを対数変換する。その理由は次のとおりである。対数軸で見たＹレシオの変化（Δ）には、０近傍では緩やか、０から離れるに従い大きくなっていく特性がある。また、対数表現にすることでＹレシオのダイナミックレンジは小さくなる。すなわち、対数表現を８ビット整数化することで、Δが緩やかに変化しているＹレシオ軸上の範囲は、細かくサンプリングされる。結果として、小さな輝度変化を再現できる。一例を挙げる。画像全体で見て、Ｙレシオが１〜２５５００であったとした場合、そのまま８ビットの整数化を行ってしまうと、８ビット表現における１の変化は、Ｙレシオにおける１００の変化に相当する。つまり、Ｙレシオは１，  １００，  ２００，  ．．．，  ２５５００の値を取る。一方で、図７のとおり、Ｙレシオの対数値は０〜１４．６３８２１であり、８ビットの整数値に対応するＹレシオの対数値とＹレシオは、図７に示したとおりである。同図のとおり、Ｙレシオを対数で表現することで、８ビット整数値で見て０に近い値では、Ｙレシオを細かくサンプリングできており、対数変換を導入することで微妙な輝度変化を保てることがわかる。
【００２０】
各画素の対数変換されたＹレシオ（ＬｏｇＹレシオ）は、バッファＢ１４０３へいったん格納されていく。画像全体のＬｏｇＹレシオが揃うと、最大値／最小値導出部Ａ１４０４において、ＬｏｇＹレシオの最大値と最小値（Ｍａｘ＿ＬｏｇＹｒａｔｉｏ，  Ｍｉｎ＿ＬｏｇＹｒａｔｉｏ）が算出される（ステップＳ１５０３）。算出されたＭａｘ＿ＬｏｇＹｒａｔｉｏとＭｉｎ＿ＬｏｇＹｒａｔｉｏは、整数化部Ａ１４０５へ出力される。整数化部Ａ１４０５は、Ｍａｘ＿ＬｏｇＹｒａｔｉｏとＭｉｎ＿ＬｏｇＹｒａｔｉｏを基に、バッファＢ１４０３に格納されているＬｏｇＹレシオを８ビット化し（ステップＳ１５０３）、バッファＤ１４０６へ出力する。また、Ｍａｘ＿ＬｏｇＹｒａｔｉｏとＭｉｎ＿ＬｏｇＹｒａｔｉｏは、復号時に８ビット整数を元のレンジの実数表現へ戻す際に使うので、符号列のヘッダに格納する必要がある。そのため、最大値／最小値導出部Ａ１４０４は、バッファＡ１２０６へ、これら２つの値を出力する。
【００２１】
ここまでの処理が終わると、次に、復号側がＬＤＲ画像とＹレシオからＨＤＲ画像を戻すのに必要なデータを生成する。具体的には、ＬＤＲ画像とＹレシオだけでは、輝度成分のみしか元に戻せないので、ＨＤＲ画像の色差成分を戻すために必要となるデータを算出する。入力画像除算部１４０７はバッファＡ１２０６に格納されているＨＤＲ画像に対して、バッファＥ１４１４に格納されているＹレシオで除算を行い、ＬＤＲ相当画像を生成する（ステップＳ１５０５）。この除算は、入力ＨＤＲ画像のＲＧＢ配列に対して行う。ＬＤＲ相当画像／ＬＤＲ画像差分算出部１４０８は、ＬＤＲ相当画像とバッファＡ１２０６のＬＤＲ画像で、各画素のＲＧＢ値の差分を求める（ステップＳ１５０６）。色変換部１４０９は、ステップＳ１５０６で生成された差分に対して色変換を行い、色差差分を生成する（ステップＳ１５０７）。この色変換は以下のとおりである。
Ｃｂ＿ｅ＝−０．１６８７＊Ｒ＿ｅ  −  ０．３３１３＊Ｇ＿ｅ  ＋  ０．５＊Ｂ＿ｅ
Ｃｒ＿ｅ＝０．５＊Ｒ  −  ０．４１８７＊Ｇ＿ｅ  −  ０．０８１３＊Ｂ＿ｅ
上記式で、Ｒ＿ｅ，Ｇ＿ｅ，Ｂ＿ｅはステップＳ１５０６にて算出された差分である。また、輝度成分のＹ＿ｅを算出していない。これは、除算で用いたＹレシオはＲａｔｉｏ＝Ｙ＿ｈｄｒ／Ｙ＿ｌｄｒであり、除算結果のＬＤＲ相当画像の輝度成分はＹ＿ｌｄｒとなっていて、差分値は０となるからである。数式で証明すると以下のとおりである。
Ｙ＿ｅ＝０．２９９＊Ｒ＿ｅ＋０．５８７＊Ｇ＿ｅ＋０．１１４＊Ｂ＿ｅ
＝０．２９９＊（Ｒ＿ｌｄｒ’−Ｒ＿ｌｄｒ）＋０．５８７＊（Ｇ＿ｌｄｒ’−Ｇ＿ｌｄｒ）＋０．１１４＊（Ｂ＿ｌｄｒ’−Ｂ＿ｌｄｒ）
＝０．２９９＊Ｒ＿ｌｄｒ’＋０．５８７＊Ｇ＿ｌｄｒ’＋０．１１４＊Ｂ＿ｌｄｒ’−（０．２９９＊Ｒ＿ｌｄｒ＋０．５８７＊Ｇ＿ｌｄｒ＋０．１１４＊Ｂ＿ｌｄｒ）      ＝０．２９９＊（Ｒ＿ｈｄｒ／Ｒａｔｉｏ）＋０．５８７＊（Ｇ＿ｈｄｒ／Ｒａｔｉｏ）＋０．１１４＊（Ｂ＿ｈｄｒ／Ｒａｔｉｏ）
−（０．２９９＊Ｒ＿ｌｄｒ＋０．５８７＊Ｇ＿ｌｄｒ＋０．１１４＊Ｂ＿ｌｄｒ）
＝Ｙ＿ｈｄｒ／Ｒａｔｉｏ  −  Ｙ＿ｌｄｒ  ＝  ０
【００２２】
ステップＳ１５０７の色変換が終了すると、ノーマライズ部１４１０によりＣｂ＿ｅ，Ｃｒ＿ｅをＹ＿ｌｄｒでノーマライズし（ステップＳ１５０８）、バッファＣ１４１１へ出力する。
Ｃｂ＿ｅ  ＝  Ｃｂ＿ｅ  ／  Ｙ＿ｌｄｒ
Ｃｒ＿ｅ  ＝  Ｃｒ＿ｅ  ／  Ｙ＿ｌｄｒ
【００２３】
最大値／最小値導出部Ｂ１４１２は、バッファＣ１４１１に保存されているＣｂ＿ｅ，Ｃｒ＿ｅそれぞれの最大値（Ｍａｘ＿Ｃｂ＿ｅ，Ｍａｘ＿Ｃｒ＿ｅ）と最小値（Ｍｉｎ＿Ｃｂ＿ｅ，Ｍｉｎ＿Ｃｒ＿ｅ）を導出する（ステップＳ５０９）。算出された最大値，最小値は整数化部Ｂ１４１３へ出力する。整数化部Ｂ１４１３は、Ｍａｘ＿Ｃｂ＿ｅ，Ｍａｘ＿Ｃｒ＿ｅ，  Ｍｉｎ＿Ｃｂ＿ｅ，Ｍｉｎ＿Ｃｒ＿ｅを基に、バッファＣ１４１１に格納されているＣｂ＿ｅ，Ｃｒ＿ｅを８ビット化し（ステップＳ１５１０）、バッファＤ１４０６へ出力する。また、Ｍａｘ＿Ｃｂ＿ｅ，  Ｍａｘ＿Ｃｒ＿ｅ，  Ｍｉｎ＿Ｃｂ＿ｅ，  Ｍｉｎ＿Ｃｒ＿ｅは、復号時に８ビット整数を元のレンジの実数表現へ戻す際に使うので、符号列のヘッダに格納する必要がある。そのため、最大値／最小値導出部Ｂ１４１２は、バッファＡ１２０６へ、これら２つの値を出力する。
【００２４】
バッファＤ１４０６にＬｏｇＹレシオとＣｂ＿ｅ，Ｃｒ＿ｅそれぞれの８ビット整数データが揃うと、これを１枚の画像（差分画像）と見立てて差分画像符号化を行う。本実施形態では、差分画像符号化はＪＰＥＧ符号化であり、ＬＤＲ画像符号化部１２０５へ出力する。ＬＤＲ画像符号化部１２０５が生成したＪＰＥＧ符号列を、ＨＤＲ差分符号化データとして、符号列生成部１２０７へ出力する（ステップＳ１５１１）。
【００２５】
以上、実施形態における前提となる画像符号化装置の構成とその処理内容を説明した。続いて、実施形態における画像復号装置の説明を行う。図１は、本実施形態に係る画像復号装置のブロック構成図である。画像復号装置は、入力部１０１、ＣＰＵ１０２、ＬＤＲ画像復号部２０３、表示解像度取得部１０４、ＨＤＲ差分復号判定部１０５、バッファ１０６、ＨＤＲ差分解析部１０９、ＨＤＲ差分復号部１０７、表示部１０８を有する。なお、図示において、１００は信号線（バス）である。係る構成において、表示解像度に応じてＨＤＲ差分符号化データを復号するか否かを切り替える方法について、以下に説明を行う。
【００２６】
本実施形態における復号対象のＨＤＲ画像符号化データは、上記方法により符号化されたＨＤＲ差分符号化データを保持するＨＤＲ画像符号化データとする。ただし、本実施形態において入力の符号化データは、ＨＤＲ画像を符号化したものであり、ＬＤＲ画像データとＨＤＲ差分符号化データを個別に符号化し、別々に復号可能な形式で保持していればよく、その内容は上記説明の方法に限らない。
【００２７】
図２は、図１の画像復号装置の処理手順を示すフローチャートである。以下、図１、図２を用いて、本実施形態における復号装置の具体的な処理の流れを説明する。
【００２８】
入力部１０１からＨＤＲ画像符号化データが入力されると、そのＨＤＲ画像符号化データはバッファ１０６に一旦格納される（ステップＳ２０１）。ＬＤＲ画像復号部は、バッファ１０６に格納されているＨＤＲ画像符号化データ中のＬＤＲ画像符号化データ（実施形態では、ＪＰＥＧ符号化データ）を復号して、ＬＤＲ画像データを再生する（ステップＳ２０２）。復号して生成されたＬＤＲ画像データは、信号線１００を介し、バッファ１０６へ格納される。ステップＳ２０２と同時に、表示解像度取得部１０４において、装置外部から入力された画像表示領域のピクセル数（表示解像度）を取得する（ステップＳ２０３）。ＨＤＲ差分復号判定部１０５において、ＨＤＲ差分符号化データを復号する必要があるか否かの判定を行う（ステップＳ２０４）。ここで「ＨＤＲ差分を復号する必要のある画像」について、以下に定義する。
【００２９】
ＨＤＲ差分として保持している情報は、高ダイナミックレンジを利用して、コントラストを再現するための情報である。つまり、ＬＤＲは１コンポーネントあたり２５６階調しか表現できないため、２５６階調では表現できない範囲のコントラストを表現することが目的である。例えば、写真中の他の領域に比べ非常に明るい部分や非常に暗い部分に対して、ＨＤＲであればコントラストが表現可能である。ＬＤＲ画像では、非常に明るい部分は、白（ＲＧＢで２５５，２５５，２５５）で表現するしかなく、白飛びと呼ばれる現象が起こる。また、非常に暗い部分では、黒（ＲＧＢで０，０，０）で表現するしかなく、黒潰れと呼ばれる現象が起こる。この、白飛びや黒潰れの箇所について、ＨＤＲ差分の情報が必要であると言える。以下に、白飛びや黒潰れが存在するか否かの判定方法について説明する。
【００３０】
図３は、ＨＤＲ差分符号化データ復号判定（ステップＳ２０４）の具体的な処理の流れを示すフローチャートである。
【００３１】
ＬＤＲ画像データ入力（ステップＳ３０１）は、バッファ１０６に格納されている復号済みのＬＤＲ画像データを、信号線１００を介してＨＤＲ差分復号判定部１０５へ入力する。表示解像度取得部１０４により取得した表示画像領域のピクセル数が、入力されたＬＤＲ画像のピクセル数（画像解像度）よりも少ない場合には、ＬＤＲ画像を出力解像度に解像度変換する（縮小画像生成）。これは、以下に説明する判定処理の時間を短縮するためであり、必ず解像度変換を行わなければならないというものではない。入力されたＬＤＲ画像について輝度成分Ｙ＿ｌｄｒを式（１）により算出する（ステップＳ３０２）。このとき、ＬＤＲ画像のＲ，Ｇ，Ｂ値をＲ＿ｌｄｒ，Ｇ＿ｌｄｒ，Ｂ＿ｌｄｒとする。
Ｙ＿ｌｄｒ＝０．２９９＊Ｒ＿ｌｄｒ＋０．５８７＊Ｇ＿ｌｄｒ＋０．１１４＊Ｂ＿ｌｄｒ・・・（１）
【００３２】
ＬＤＲ画像の輝度成分Ｙ＿ｌｄｒを画素毎に算出し、算出した輝度成分Ｙ＿ｌｄｒの値の出現頻度をカウントし、ＬＤＲ画像に対するＹ＿ｌｄｒのヒストグラムを生成する（ステップＳ３０３）。生成したヒストグラムから、極めて白に近い輝度値の出現頻度と極めて黒に近い輝度値の出現頻度を算出することで、白飛びや黒潰れ領域を判定する。たとえば、極めて白に近い輝度値（白を含む）を２５５〜２４０とし、極めて黒に近い輝度値（黒を含む）を０〜１５（輝度値が１５以下）とすると、Ｙ＿ｌｄｒが０〜１５、２４０〜２５５の出現頻度の和（Ｔｐｉｘ）を算出する（ステップＳ３０４）。一般的には、白飛びや黒潰れと言うと、前述したように、階調が表現できる範囲を超えてしまい、２５５や０の値になっている現象を表す。しかしながら、本実施形態において処理対象とするＬＤＲ画像データは、ＨＤＲ画像データからトーンマッピングを行って生成した画像であり、ある程度明るい個所や暗い箇所の階調を再現している画像であると言える。そのため、本実施形態において白飛び又は黒潰れ領域と呼ぶ領域については、極めて白に近い領域または、極めて黒に近い領域のことを表現するものとする。続いて、画像表示領域のピクセル数Ｄｐｉｘと、出現頻度の和Ｔｐｉｘを比較する（ステップＳ３０５）。画像表示領域のピクセル数Ｄｐｉｘに対して、Ｔｐｉｘがある程度多ければ（Ｙｅｓ）、白飛びや黒潰れ領域が画像に対して広範囲に存在すると判断でき、ＨＤＲ差分を復号する必要がある（ステップＳ３０６）といえる。一方、Ｔｐｉｘが画像表示領域のピクセル数に対して少なければ（Ｎｏ）、白飛びや黒潰れ領域がないか、もしくは小さな領域のため、ＨＤＲ差分は復号する必要がない（ステップＳ３０７）と判断できる。本実施形態では、例えば、Ｔｐｉｘが、Ｄｐｉｘ×１／２以下（Ｔｐｉｘが全体の５０％以下）の場合には、ＨＤＲ差分符号化データを復号しない。一方、Ｄｐｉｘ×１／２よりも、Ｔｐｉｘが大きければＨＤＲ差分符号化データを復号し、ＨＤＲ画像を出力するものとする。具体的には、画像表示領域のピクセル数Ｄｐｉｘが２５６×２５６で図４のような頻度分布を持つ画像の場合について、以下に説明する。図４の輝度成分Ｙ＿ｌｄｒ０〜１５の出現頻度の和が３５，０００ピクセル、２４０〜２５５の出現頻度の和が５，０００ピクセルである。この場合、Ｔｐｉｘは４０，０００となり、Ｄｐｉｘ×１／２＝３２，７６８と比較して大きな値となるため、ＨＤＲ画像を復号する必要があると判定される。
【００３３】
ここで、白飛びや黒潰れ領域として判定するＬＤＲ画像の輝度成分の範囲や、画像表示領域のピクセル数に対する比率に関しては、この値に限るものではない。画像表示領域のピクセル数によって、白飛びや黒潰れ領域の表示される面積が変わってくるため、ＨＤＲ差分を復号するか否かの判定に用いる閾値は画像表示領域のピクセル数に応じて変更すべきである。たとえば、画像表示領域のピクセル数が２５６×２５６のときに閾値を画像表示領域のピクセル数の１／２にした場合、画像表示領域のピクセル数が５１２×５１２のときには、表示面積としては４倍になるため、閾値を画像表示領域のピクセル数の１／８とする。逆に、画像表示領域のピクセル数が１２８×１２８のときには、表示面積としては１／４となるため、閾値を設けず必ずＨＤＲ差分は復号する必要がないと判定しても構わない。つまり、画像表示領域のサイズに応じて、ＨＤＲ差分符号化データの復号する／しないのための閾値を可変にしても構わない。この場合には、例えば、画像表示領域のサイズに従って上記の１／２や１／８などの乗算係数を算出する関数やテーブルを設ければよい。
【００３４】
以上の方法により、ＨＤＲ差分を復号する必要があると判定された場合（ＹＥＳ）は、ＨＤＲ差分解析部１０９により、ＨＤＲ差分符号化データの解析を行う（ステップＳ２０６）。ＨＤＲ差分符号化データの解析後、ＨＤＲ画像復号部１０７により、ＨＤＲ差分符号化データを復号する（ステップＳ２０７）。そして、復号したＨＤＲ差分データとすでに復号済みのＬＤＲ画像データからＨＤＲ画像データを生成し（ステップＳ２０８）、表示部１０８によりＨＤＲ画像データを表示する（ステップＳ２０９）。一方、ＨＤＲ差分を復号する必要がないと判定された場合（ＮＯ）には、ＬＤＲ画像復号部１０３により復号済みのＬＤＲ画像データを表示部１０８により表示する（ステップＳ２１０）。
【００３５】
次に、ＨＤＲ差分解析部１０９の処理について説明する。ＨＤＲ差分解析部１０９は、信号線１００を介し、バッファ１０６に格納されているＨＤＲ画像符号化データが入力される。入力されたＨＤＲ画像符号化データ中のＨＤＲ差分符号化データの解析を行う。具体的には、図６（ｂ）に示したアプリケーションマーカセグメントを解析する。この処理フローは図１８に示した通りである。すなわち、ステップＳ２００１で、変数の初期化を行う。具体的には、ＨＤＲ差分符号化データの分割数を示す変数ｎｕｍ＿ｐａｒｔ＿ｃｏｄｅをゼロにセットする処理である。次に１バイト取得し変数Ｘ１へ代入し（ステップ２００２）、さらに１バイト取得してＸ２へ代入する（ステップ２００３）。Ｘ１，Ｘ２は、復号装置内部において定義される変数である。Ｘ１とＸ２を連結して得られるコード（ｃｏｄｅ（Ｘ１＋Ｘ２））が”０ｘＦＦＥＢ”であるかを確認する（ステップ２００４）。ただし、説明を簡単にするため、マーカコード以外に”０ｘＦＦＥＢ”が存在しないものとする。図１８のフローでは”０ｘＦＦＥＢ”以外のマーカコードの検出について明記していないが、他のマーカコードの検出も行い、検出されたマーカセグメント内の”０ｘＦＦＥＢ”はマーカコードとして検出しなければよい。ステップＳ２００４での判定の結果、ｃｏｄｅ（Ｘ１＋Ｘ２）が”０ｘＦＦＥＢ”でなければ（Ｎｏ）、処理をステップＳ２０１７へ移し、ｎｕｍ＿ｐａｒｔ＿ｃｏｄｅ＞０であるか否かの判定を行う。ｎｕｍ＿ｐａｒｔ＿ｃｏｄｅ＞０でない場合（Ｎｏ）、Ｘ１へＸ２を代入し（ステップＳ２００５）、処理をＳ２００３へ戻す。ｎｕｍ＿ｐａｒｔ＿ｃｏｄｅ＞０である場合（Ｙｅｓ）には、既にＡＰＰ１１マーカセグメントの解析は終了していると判断できるため、ＨＤＲ差分解析部１０９の処理を終える。一方で、ｃｏｄｅ（Ｘ１＋Ｘ２）が”０ｘＦＦＥＢ”であれば、ｌｅｎを取得し（ステップＳ２００６）、ＣＩを取得する（ステップＳ２００７）。取得したＣＩが“ＪＰ”でない場合（ステップＳ２００８でＮｏ）、ｎｕｍ＿ｐａｒｔ＿ｃｏｄｅ＞０が成り立つか判定する（ステップＳ２０１７）。ｎｕｍ＿ｐａｒｔ＿ｃｏｄｅ＝０の場合（Ｎｏ）は、ポインタを解析中のアプリケーションマーカーセグメントの最後尾へ移動させ（ステップＳ２００９）、処理をステップＳ２００２へ戻す。既にｎｕｍ＿ｐａｒｔ＿ｃｏｄｅがインクリメントされている状態（Ｙｅｓ）であれば、処理を終了する。図６（ｂ）に示しているとおり、ｍａｒｋｅｒ，ｌｅｎ，ＣＩの格納領域サイズはそれぞれ２バイトであるので、最後尾はｌｅｎ−６バイト先である。一方で、ＣＩが“ＪＰ”である場合（ステップＳ２００８でＹｅｓ）、解析中のアプリケーションマーカーセグメントは、本実施形態で処理すべきもの（ＡＰＰ１１ＪＰセグメント）であるとわかる。ＣＩの次にはＴＢがあるためＴＢを取得する（ステップＳ２０１０）。ＴＢ＝０である場合（ステップＳ２０１１でＹｅｓ）、ＰＤには付属情報が格納されており、ＳＮを読み飛ばすためにポインタを２バイト移動させ（ステップＳ２０１２）、ＰＤを解析する。（ステップＳ２０１３）。ＰＤサイズは、解析中のＡＰＰ１１ＪＰセグメントの先頭からのオフセットとｌｅｎから確認できる。符号化方法の説明で示したとおり、ＰＤには輝度，色差に関する、ＪＰＥＧ符号化前の最大値と最小値が格納されている。ステップＳ２０１１でＴＢ＝１の場合、ＰＤにはＨＤＲ差分符号化データが格納されており、ＳＮを取得し（ステップＳ２０１４）、ＰＤの先頭位置（ポインタ）を取得する（ステップＳ２０１５）。その上で、図５に示したとおり、ＳＮと各ＰＤの先頭ポインタとサイズがセットで記憶される。その後、ｎｕｍ＿ｐａｒｔ＿ｃｏｄｅはインクリメントされ、Ｓ２０１６に処理を進める。Ｓ２０１６では、ポインタを解析中のマーカセグメントの終端に移動し、処理をステップＳ２００２へ戻す。ステップＳ２００２〜ステップＳ２０１７の処理を最後のＡＰＰ１１ＪＰセグメントまで繰り返し行う。ステップＳ２０１７においてｎｕｍ＿ｐａｒｔ＿ｃｏｄｅ＞０の場合（Ｙｅｓ）には全てのＡＰＰ１１ＪＰセグメントの解析を終了しているため、ＨＤＲ差分解析部１０９の処理を終える。
【００３６】
上記ＨＤＲ差分符号化データの解析結果は、信号線１００を介し、バッファ１０６へ格納される。続いて、ＨＤＲ差分復号部１０７の処理について説明する。
【００３７】
図１０はＨＤＲ差分復号部１０７を構成するブロック図である。同図において、１００１は入力部、１００２はＪＰＥＧ復号部、１００３は色差成分実数化部、１００４は逆色変換部、１００５はバッファＧ、１００６はＬｏｇＹレシオ実数化部である。さらに、１００７は指数変換部、１００８はＲＧＢ差分加算部、１００９はＹレシオ乗算部、１０１０は出力部、１０１１は逆ノーマライズ部である。図１１は、図１０のＨＤＲ差分復号部１０７の処理フローを示したフローチャートである。以下、図１０、図１１を用いて、ＨＤＲ差分復号部１０７の処理を説明する。
【００３８】
まず、バッファ１０６へ格納されているＨＤＲ差分符号化データの解析結果から、ＨＤＲ差分符号化データの輝度，色差に関する、圧縮前の最大値と最小値を取得する。つまり、Ｍａｘ＿Ｃｂ＿ｅ，Ｍａｘ＿Ｃｒ＿ｅ，  Ｍｉｎ＿Ｃｂ＿ｅ，Ｍｉｎ＿Ｃｒ＿ｅ，  Ｍａｘ＿ＬｏｇＹｒａｔｉｏ，  Ｍｉｎ＿ＬｏｇＹｒａｔｉｏを取得する。さらに、ＨＤＲ差分符号化データであるＪＰＥＧ符号列も取得する（ステップＳ１１０１）。取得されたデータは、バッファＧ１００５へ格納される。ＪＰＥＧ復号部１００２は、バッファＧ１００５内のＨＤＲ差分符号化データを復号し、バッファＧ１００５へ保存する（ステップＳ１１０２）。復号データは、ＬｏｇＹレシオとＣｂ＿ｅ，Ｃｒ＿ｅから構成される画像データである。ＨＤＲ差分符号化の説明で示したとおり、ＬｏｇＹレシオの指数値（Ｙレシオ）をＬＤＲ画像データに乗算することで、ＨＤＲ画像データの輝度成分を復元できる。つまり、ＬｏｇＹレシオはＬＤＲ画像データから、ＨＤＲ画像データの輝度成分を戻すために必要な値である。しかし、ＬＤＲ画像データはそもそも、ＨＤＲ画像データのトーンマッピング処理で得られた画像であり、ＹレシオをＬＤＲ画像データに乗算しても、色差成分を復元できない。Ｃｂ＿ｅ，Ｃｒ＿ｅは、この乗算で色差成分を復元できるようにするための補正値である。色差成分実数化部１００３は、Ｃｂ＿ｅ，Ｃｒ＿ｅの８ビット整数値をＭａｘ＿Ｃｂ＿ｅ，Ｍａｘ＿Ｃｒ＿ｅ，  Ｍｉｎ＿Ｃｂ＿ｅ，Ｍｉｎ＿Ｃｒ＿ｅを用いて、実数化させる（ステップＳ１１０３）。具体的には、復号後のＣｂ＿ｅ／Ｃｒ＿ｅの０〜２５５の各値を、Ｍｉｎ＿Ｃｂ＿ｅ〜Ｍａｘ＿Ｃｂ＿ｅ／  Ｍｉｎ＿Ｃｒ＿ｅ〜Ｍａｘ＿Ｃｒ＿ｅへマッピングさせる処理である。次いで、逆ノーマライズ部１０１１において、以下の処理を行う（ステップＳ１１０４）。
Ｃｂ＿ｅ  ＝  Ｃｂ＿ｅ  ＊  Ｙ＿ｌｄｒ
Ｃｒ＿ｅ  ＝  Ｃｒ＿ｅ  ＊  Ｙ＿ｌｄｒ
ただし、Ｙ＿ｌｄｒは、バッファＧ１００５に格納してあるＬＤＲ画像の輝度成分であり、ＬＤＲ画像のＲ，Ｇ，Ｂ値をＲ＿ｌｄｒ，Ｇ＿ｌｄｒ，Ｂ＿ｌｄｒとしたとき、以下のとおり算出される。
Ｙ＿ｌｄｒ＝０．２９９＊Ｒ＿ｌｄｒ＋０．５８７＊Ｇ＿ｌｄｒ＋０．１１４＊Ｂ＿ｌｄｒ
【００３９】
次に、逆色変換部１００４においてＣｂ＿ｅ，Ｃｒ＿ｅを逆色変換される（ステップＳ１１０５）。具体的には、逆色変換により生成されるＲ，Ｇ，Ｂ値をＲ＿ｅ，Ｇ＿ｅ，Ｂ＿ｅとしたとき、以下の変換を行う。
Ｒ＿ｅ  ＝  １．４０２＊Ｃｒ
Ｇ＿ｅ  ＝  −０．３４４１４＊Ｃｂ  −  ０．７１４１４＊Ｃｒ
Ｂ＿ｅ  ＝  １．７７２＊Ｃｂ
上記の逆色変換の結果はＲＧＢ差分加算部１００８に出力される。
【００４０】
ＲＧＢ差分加算部１００８は、Ｒ＿ｅ，Ｇ＿ｅ，Ｂ＿ｅをＬＤＲ画像の各画素のＲＧＢ値に加算し（ステップＳ１１０６）、Ｙレシオ乗算部１００９へ出力する。続いて、復号処理は、色差成分から輝度成分へ移る。ＬｏｇＹレシオ実数化部１００６において、ＬｏｇＹレシオの実数化が行われる（ステップＳ１１０７）。この処理は、色差成分実数化部１００３と同様な処理であり、Ｍａｘ＿ＬｏｇＹｒａｔｉｏ，Ｍｉｎ＿ＬｏｇＹｒａｔｉｏを用いて、８ビット整数値のＬｏｇＹレシオを実数へ変換する。得られた実数値は、指数変換部１００７において、指数変換（２＾ＬｏｇＹレシオ）され（ステップＳ１１０８）、Ｙレシオ乗算部１００９へ出力される。Ｙレシオ乗算部１００９は、ＲＧＢ値を補正したＬＤＲ画像データに対してＹレシオを乗算して（ステップＳ１１０９）、ＨＤＲ画像データを得る。出力部１０１０は、前述のとおり復号・構成したＨＤＲ画像データを出力する（ステップＳ１１１０）。
【００４１】
出力したＨＤＲ画像データは、表示部１０８において、表示デバイスによって表示される。このとき、表示解像度取得部１０４で取得した出力解像度が、画像データの解像度と異なる場合には、解像度変換を行ったうえで表示される。表示部１０８の具体的な処理の流れについて図１９により以下に説明を行う。同図において、楕円は画像の状態を表し、四角は処理を表すものとする。また、同図の点線内は符号化処理での画像の状態と処理を表すものとする。まず、表示デバイスがＬＤＲ（８ｂｉｔ表示）の場合について図１９（ａ），（ｂ）を用いて説明する。ＨＤＲ画像をＬＤＲ表示する場合には、必ずトーンマッピングの処理を行うことになる。本実施形態における、ＬＤＲ画像を表示する場合の処理を図１９（ａ）に示し、ＨＤＲ画像を表示する場合の処理を図１９（ｂ）に示す。符号化処理時には、ＨＤＲ画像データが入力され、ＨＤＲ画像のトーンマッピングＴＭ１が行われる（同図、点線内）。図１９（ａ）の例では、ＬＤＲ画像を表示するため、符号化時にＴＭ１により生成されたＬＤＲ画像データを表示することになる。図１９（ｂ）の例では、ＨＤＲ画像を表示するため、復号して得たＬＤＲ画像データとＨＤＲ差分データを用いて逆ＴＭ１によりＨＤＲ画像を得る。再生されたＨＤＲ画像に対して、ＴＭ２によってＬＤＲのサムネイル画像を生成し、表示する。ここで、トーンマッピングＴＭ２の手法に関しては、出力デバイスに依存した手法を用いるものとする。図１９（ｂ）に示すように、ＨＤＲ画像を再生する場合とは、ＬＤＲ画像に白飛びや黒潰れ領域のようにＨＤＲ差分が必要な領域が存在する場合である。そのため、表示デバイスがＬＤＲであっても、ＨＤＲ画像を表示デバイスに依存したトーンマッピング処理を行って表示する方が良いと言える。  次に、表示デバイスがＨＤＲ（９ｂｉｔ以上）の場合について説明する。本実施形態における、ＬＤＲ画像を表示する場合は、表示デバイスがＬＤＲの場合と同様の処理であり、図１９（ａ）に示す。ＨＤＲ画像を表示する場合の処理は図１９（ｃ）に示す。図１９（ａ）については先に説明しているため、ここでは図１９（ｃ）について説明する。表示デバイスがＨＤＲであり、ＨＤＲ画像を表示する場合には、復号したＨＤＲ画像データを表示する。この場合、ＨＤＲ（９ｂｉｔ以上）でコントラストを再現できるため、図１９（ａ）のようにＬＤＲ画像を縮小したサムネイルを表示するのと比較して、高画質であることは明らかである。
【００４２】
なお、等倍表示やサムネイル表示を行う際に、ＬＤＲ画像のＪＰＥＧファイル中にサムネイルを保持している場合には、まず保持しているサムネイルを表示させておいてもよい。その場合、ＨＤＲ差分を復号後に、表示しておいたＪＰＥＧファイル中のサムネイルと、復号したＨＤＲ画像データの置き換えを行えばよい。また、ＨＤＲ差分を復号すると判定された画像の場合、表示の際、ＬＤＲ画像を表示するよりも表示に時間がかかる。そのため、まずＬＤＲ画像を表示しておき、ＨＤＲ画像が表示されるまでの間、待機中であることがわかるようなマークを表示中の画像付近に表示しておく。ＨＤＲ差分が復号され、ＨＤＲ画像データ生成が完了した時点で、ＬＤＲ画像をＨＤＲ画像に置き換え、待機中のマークも非表示にする。この処理により、表示中の画像がさらに高画質になることが明確になる。
【００４３】
以上、説明したように本実施形態によれば、画像中のＨＤＲ差分が必要と判定された領域の比率に応じて、ＨＤＲ差分データの復号要否を切り替えることが可能である。どの画像に対してもＨＤＲ差分を復号する場合には、８ｂｉｔ画像データのＪＰＥＧ符号化データを２枚分復号するのと同じだけ復号処理時間がかかることになる。本実施形態によれば、ＬＤＲ画像でコントラストが再現できていない、白飛びや黒潰れ領域が検出された場合にのみＨＤＲ差分を復号するため、復号処理時間を短縮することが可能となる。
【００４４】
＜変形例の説明＞
上記実施形態では図１の構成に基づいて説明したが、上記実施形態と同等の処理をパーソナルコンピュータ（ＰＣ）等で実行するコンピュータプログラム（ソフトウェア）でもって実現させても構わない。
【００４５】
図２０はソフトウェアで実現する場合の装置（ＰＣ等）の基本構成を示す図である。
【００４６】
図中、２２０１はＣＰＵで、ＲＡＭ２２０２やＲＯＭ２２０３に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、後述する画像符号化処理、復号処理を実行する。２２０２はＲＡＭで、外部記憶装置２２０７や記憶媒体ドライブ２２０８、若しくはＩ／Ｆ２２０９を介して外部装置からダウンロードされたプログラムやデータを記憶するため、及び、ＣＰＵ２２０１が各種の処理を実行する際のワークエリアとして使用される。図１に示されるバッファ１０６等も、このＲＡＭ２２０２に確保されるものである。２２０３はＲＯＭで、ブートプログラムや本装置の設定プログラムやデータを格納する。２２０４、２２０５は夫々キーボード、マウス等のポインティングデバイスで、ＣＰＵ２２０１に対して各種の指示を入力することができる。２２０６は表示装置で、ＣＲＴや液晶画面などにより構成されており、画像や文字などの情報を表示することができる。２２０７は外部記憶装置で、ハードディスクドライブ装置等の大容量情報記憶装置である。ここにＯＳや後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象画像の符号化データなどが保存されており、ＣＰＵ２２０１による制御によって、これらのプログラムやデータはＲＡＭ２２０２上の所定のエリアにロードされる。２２０８は記憶媒体ドライブで、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されたプログラムやデータを読み出してＲＡＭ２２０２や外部記憶装置２２０７に出力するものである。なお、この記憶媒体に画像復号処理の為のプログラム、復号対象の画像の符号化データなどを記録しておいても良い。その場合、記憶媒体ドライブ２２０８は、ＣＰＵ２２０１による制御によって、これらのプログラムやデータをＲＡＭ２２０２上の所定のエリアにロードする。２２０９はＩ／Ｆで、このＩ／Ｆ２２０９によって外部装置を本装置に接続し、本装置と外部装置との間でデータ通信を可能にするものである。例えは符号化対象の画像データや、復号対象の画像の符号化データなどを本装置のＲＡＭ２２０２や外部記憶装置２２０７、あるいは記憶媒体ドライブ２２０８に入力することもできる。２２１０は上述の各部を繋ぐバスである。
【００４７】
上記構成において、ソフトウェアでもって第１の実施形態と同様の処理を実現する場合、ＣＰＵは図１に示した各処理部に相当する機能を、ソフトウェア上の関数、サブルーチン等で実現することになる。各処理部の処理内容については既に説明した図２に示す手順に従えば良い。
【００４８】
［第２の実施形態］
上記第１の実施形態では、表示領域のピクセル数が復号画像データのピクセル数と同じであっても、異なっている場合であっても、ＨＤＲ差分の復号要否の判定を行う方法について説明を行った。本第２の実施形態では、画像表示領域のピクセル数が復号画像データと同じピクセル数（等倍表示）である場合と、等倍以外（縮小又は拡大表示）の場合でＨＤＲ差分の復号要否の判定を行うか否かを切り替える方法について説明する。
【００４９】
たとえば、等倍表示の場合には必ずＨＤＲ画像を表示し、縮小画像の場合には、ＨＤＲ表現が必要な領域の表示面積が狭くなるため、ＨＤＲ差分の復号要否を判定する。この場合の例について、以下に説明を行う。
【００５０】
本第２の実施形態に係る、ＨＤＲ差分復号判定部１０３の処理流れを示すフローチャートを図２３に示す。第１の実施形態と同じ処理については同じ番号を付し、詳細な説明は省略する。第１の実施形態と異なる点は、表示解像度の取得（ステップＳ２０３）後、復号画像データの解像度と表示解像度の比較を行う（ステップＳ２５０１）点である。復号画像データの解像度と比較して、表示解像度の方が低い場合（ＹＥＳ）には、ＨＤＲ差分符号化データの復号判定（ステップＳ２０４）へ処理を移す。つまり、復号した画像データの画素数が、画像表示領域の画素数以下の場合にＨＤＲ差分符号化データの復号判定を行う。一方、表示解像度が復号画像データと同じか、もしくは高い場合（ＮＯ）には、ＨＤＲ差分符号化データの解析（ステップＳ２０６）へ処理を移し、ＨＤＲ差分符号化データの復号処理を行う。このように、表示解像度の判定部を設けることで、解像度によって、復号要否の判定を行うか否かを切り替えることが可能となる。
【００５１】
なお、上記フローチャートでは、縮小表示の場合にのみＨＤＲ復号要否の判定を行い、それ以外の場合には、必ずＨＤＲ差分の復号を行う方法について説明したが、ＨＤＲ差分の復号を行う基準を変更しても構わない。例えば、ＨＤＲ符号化データ中のＬＤＲ画像データは、符号化の際に、ＨＤＲ画像からトーンマッピングして生成された画像のため、等倍表示で表示する際には、ＬＤＲ表示で構わないという考え方もある。そのため、等倍表示の際はＨＤＲ差分を復号する必要はなく、どんな画像でもＬＤＲ画像を表示するとしてもよい。また、サムネイルなどのかなり縮小倍率の高い場合には、表示サイズが小さいこと、表示にかかる処理時間を短くしたいことから、ＨＤＲ差分を復号せず、どんな画像でもＬＤＲ画像を表示するとしてもよい。この考え方では、等倍や拡大表示の場合には、表示サイズが大きく、表示にかかる時間もある程度かかって良いと考えられるため、ＨＤＲ差分の復号要否を判定する。他の例として、縮小表示の場合にはＬＤＲ画像を表示し、それ以外の場合にはＨＤＲ差分データを復号し、ＨＤＲ画像を表示すると決めてしまってもよい。こうすることで、縮小表示の場合の処理時間が短縮でき、さらに画像データを解析してＨＤＲ復号要否を判定する必要がなくなる。このように、復号画像データのピクセル数と、画像表示領域のピクセル数の大小関係によってＨＤＲ差分の復号要否を切り替えることで、ユーザにとって適切な画像データ表示をしつつ、復号処理の時間短縮が可能となる。
【００５２】
［第３の実施形態］
第１の実施形態では、白飛びや黒潰れ領域の比率に基づいてＨＤＲ差分データを復号するか否かの判定を行った。本第３の実施形態では、白飛びや黒潰れ領域の面積に応じてＨＤＲ差分を復号するか否かを判定する方法について説明を行う。
【００５３】
図８は、本実施形態における、ＨＤＲ差分復号判定部１０５の具体的な処理の流れについて示したフローチャートである。図３に示した第１の実施形態と同じ処理については、同じ番号を付し、その詳細な説明については省略する。第１の実施形態と異なる点についてのみ、以下に説明を行う。
【００５４】
まず、入力されたＬＤＲ画像データの各画素について、輝度成分Ｙ＿ｌｄｒを算出する。続いて算出したＹ＿ｌｄｒが極めて白に近い値（白を含む）であるか、または、極めて黒に近い値（黒を含む）であるかの判定を行う（ステップＳ８０２）。本実施形態においても、輝度成分が第１の閾値以上（実施形態では第１の閾値＝２４０）の２５５〜２４０の輝度成分値を極めて白い値（極白）とし、輝度成分が第２の閾値以下（第２の閾値＝１５）の輝度成分０〜１５の値を極めて黒い値（極黒）とする。着目画素ｎの輝度成分が極白または極黒と判定された場合（Ｙｅｓ）には、白飛び黒潰れ領域の画素であることを示すため、Ｈｆｌａｇ（ｎ）を１とする（ステップＳ８０３）。このときｎは着目画素の位置を示す。ｎは画素数のカウンタであり、ｎの最大値は入力された画像データの「総画素数−１」である。着目画素Ｘに対するフラグＨｆｌａｇ（ｎ）を設定後、着目画素が画像データの最終画素であるか否かの判定を行う（ステップＳ８０５）。着目画素が最終画素でなければ（Ｎｏ）、Ｓ８０６にてｎを１だけ増加し、処理をＳ３０２へ戻し、ステップＳ８０２からステップＳ８０５の処理を繰り返す。一方、着目画素が最終画素である場合（Ｙｅｓ）には、ステップＳ８０７へ処理を移す。ステップＳ８０７は、Ｈｆｌａｇ（ｎ）を参照して、白飛びエリアまたは黒潰れエリアを検出する（ステップＳ８０７）。検出の方法は、画像の左上画素からラスタースキャン順に捜査し、注目画素位置の上下左右にＨｆｌａｇ＝１が存在する場合には、同じエリアＨａｒｅａ（ｍ）として連結する。たとえば、図９（ａ）に示すようなＨｆｌａｇの分布の場合、画像上部のＨｆｌａｇ＝１の連続する領域をＨａｒｅａ（０）とする。Ｈａｒｅａ（０）には、このエリアを構成する画素数７２を入力する。また、図９（ａ）の画像下部のＨｆｌａｇ＝１の連続する領域はＨａｒｅａ（１）と設定される。この領域を構成する画素数は１８０なので、Ｈａｒｅａ（１）＝１８０である。
【００５５】
続いて、検出された各エリアＨａｒｅａ（ｍ）について、入力画像データの画素数Ｄｐｉｘと比較を行う。ステップＳ８０８では、Ｈａｒｅａ（０）から順に比較を行うため、ｍ＝０に初期化を行う。ステップＳ８０９において、Ｄｐｉｘに対してＨａｒｅａ（ｍ）がある程度の大きさを持つか否かの判定を行う。本実施形態においては、Ｈａｒｅａ（ｍ）がＤｐｉｘ×１／４よりも大きいか否かの判定を行うものとする。Ｄｐｉｘ×１／４とＨａｒｅａ（ｍ）を比較した結果、Ｈａｒｅａ（ｍ）の方が大きい場合（Ｙｅｓ）には、ステップＳ３０７へ処理を移行する。一方、Ｈａｒｅａ（ｍ）がＤｐｉｘ×１／４以下であると判定された場合（Ｎｏ）には、処理をステップＳ８１０へ移行し、着目エリアが最終エリアであるか否がの判定を行う（ステップＳ８１０）。最終エリアでない場合（Ｎｏ）は、次のエリアの判定処理に移り（ステップＳ８１１）、ステップＳ８０９〜ステップＳ８１１の処理を繰り返す。着目エリアが最終エリアである場合（Ｙｅｓ）は、処理をステップＳ３０９へと移行する。Ｈａｒｅａ（ｍ）のうち、１つでもＤｐｉｘ×１／４よりも大きいと判定された領域がある場合には、ＨＤＲ差分を復号する必要があると判定される（ステップＳ３０７）。すべてのエリアがＤｐｉｘ×１／４以下であった場合には、処理をステップＳ３０９へと移行する。この場合、どのエリアもＨＤＲ差分符号化データの復号は必要ないものと判断されている。よって、ＨＤＲ差分は復号しない（ステップＳ３０９）。各エリアの判定処理について、以下に具体的な例を示す。図９（ａ）の場合、入力画像データの画素数Ｄｐｉｘ＝３６×１２＝４３２であり、Ｄｐｉｘ×１／４＝１０８となる。Ｈａｒｅａ（０）＝７２であり、Ｄｐｉｘ×１／４に満たないため、次のエリアの判定処理へ移行する。次に、Ｈａｒｅａ（１）に注目すると、Ｈａｒｅａ（１）＝１８０であり、Ｄｐｉｘ×１／４＜Ｈａｒｅａ（１）が成立する。そのため、この画像についてはＨＤＲ差分符号化データを復号する必要があると判定される。また、図９（ｂ）について同じ判定を行った場合、Ｄｐｉｘ×１／４＝１０８であり、画像データ内のすべてのエリアＨａｒｅａ（０）〜（１２）のうち、１０８を超えるエリアは存在しない。そのため、この画像については、ＨＤＲ差分符号化データを復号する必要はないと判断される。
【００５６】
以上の処理によれば、入力画像中に存在する白飛び領域や黒潰れ領域がある程度の大きさを持った領域でなければ、ＨＤＲ差分符号化データは復号されない。これにより、入力解像度よりも出力解像度が小さい場合に、高コントラストが必要な場合にのみＨＤＲ差分を復号することが可能となり、復号時間の短縮を実現できる。
【００５７】
［第４の実施形態］
上記、第１、第３の実施形態においては、ＨＤＲ画像符号化データは、１つのＬＤＲ画像符号化データと１つのＨＤＲ差分符号化データによって構成されている場合の例について説明を行った。この場合、画像の一部が白飛び又は黒潰れ領域である場合でも、ＨＤＲ差分の復号要否を画像全面について判定することしかできなかった。本第４の実施形態においては、ＨＤＲ差分符号化データが適当なサイズのブロック単位に部分的に復号可能な形式である場合に、画像の一部分に対してＨＤＲ差分符号化データの復号要否を切り替える方法について説明を行う。
【００５８】
本実施形態におけるＨＤＲ差分符号化データは、ＨＤＲ差分データをＪＰＥＧ符号化する際に、リスタートインターバルを有効にして符号化するものとする。ある一定間隔でＭＣＵ（Ｍｉｎｉｍｕｍ  Ｃｏｄｅｄ  Ｕｎｉｔ）の間にリスタートマーカを挿入し、リスタートマーカの間のＭＣＵ（インターバル）を独立して符号化する処理である。具体的には、リスタートインターバルを無効として符号化する場合、ＭＣＵ単位に符号化を行うものの、ＤＣ成分については、直前のＭＣＵのＤＣ係数を予測値として、符号化対象のＤＣとの差分を符号化する。そのため、直前のＭＣＵが復号されなければ、次のＭＣＵが正しく復号できない。そのため、部分的に復号することは不可能である。リスタートインターバルが有効の場合には、各インターバルの最初（リスタートマーカ直後のＭＣＵ）に、ＤＣ係数の予測値を初期化するため、インターバルの単位で独立に復号することが可能となる。
【００５９】
図６（ｃ）に、リスタートインターバルが有効な場合のＪＰＥＧ符号化データの構造を示す。リスタートインターバルが有効な場合には、ヘッダ中にリスタートインターバル定義セグメントである、ＤＲＩセグメントが存在する。ＤＲＩセグメントには、リスタートマーカを挿入する間隔としてＭＣＵの数が格納される。この値が０の場合は、ＤＲＩが存在しても、リスタートマーカは挿入されない。画像符号化データ中には、インターバル毎にリスタートマーカが挿入される。リスタートマーカはＲＳＴ０〜ＲＳＴ７の８種類存在し、ＲＳＴ０→ＲＳＴ１→ＲＳＴ２・・・と順番に挿入される。ＲＳＴ７の次にはＲＳＴ０に戻り、これを最後まで繰り返す。
【００６０】
ＨＤＲ差分符号化データ中のＪＰＥＧ符号化データが、上記の構成で生成されたデータであれば、ＨＤＲ差分符号化データを部分的に復号可能となる。
【００６１】
図１５は、本第３の実施形態における、ＨＤＲ差分復号判定部１０５の具体的な処理の流れについて示したフローチャートである。図８に示した第２の実施形態と同じ処理については、同じ番号を付し、その詳細な説明については省略する。第２の実施形態と異なる点についてのみ以下に説明を行う。
【００６２】
ステップＳ８０７にて検出された白飛び又は黒潰れエリアＨａｒｅａ（ｍ）と表示解像度のピクセル数Ｄｐｉｘとの比較結果を示すフラグＡｆｌａｇを、０で初期化する（ステップＳ１７０１）。続いて、ステップＳ８０９において、着目エリアＨａｒｅａ（ｍ）の復号要否の判定を行う。着目エリアＨａｒｅａ（ｍ）がＤｐｉｘ×１／４よりも大きい場合（Ｙｅｓ）、Ａｆｌａｇを１に更新し（ステップＳ１７０２）、Ｈａｒｅａ（ｍ）を包含するようなＭＣＵの指定を行う（ステップＳ１７０４）。一方、Ｈａｒｅａ（ｍ）がＤｐｉｘ×１／４以下の場合（Ｎｏ）には、Ａｆｌａｇの更新は行わない（ステップＳ１７０３）。本実施形態においては、部分的に復号できるため、全てのＨａｒｅａに対してステップＳ８０９の判定を行うものとする。全エリアに対して判定が終了した段階で、Ａｆｌａｇ＝１であるか否かの判定（ステップＳ１７０５）を行う。判定の結果、Ａｆｌａｇ＝１の場合（Ｙｅｓ）は、ＨＤＲ差分を復号するため、ＨＤＲ差分の復号対象となるＭＣＵの位置情報を出力する（ステップＳ１７０６）。Ａｆｌａｇ＝０の場合（Ｎｏ）は、全エリアがＨＤＲ差分を復号する必要のないエリアであると判定されたこととなり、処理を終了する。
【００６３】
図１６（ａ）乃至（ｃ）に、ＨＤＲ差分を復号する必要のあるエリアが検出された画像データの例を示す。各図内の通し番号がふってある矩形ブロックはＭＣＵを示す。また、同図の太枠で囲まれた斜線のエリア１８００がＨＤＲ差分の復号が必要なエリアを示す。図１６（ａ）は、リスタートインターバルが２でＨＤＲ差分のＪＰＥＧ符号化が行われたＨＤＲ差分符号化データが入力であった場合の例を示す。同図において、エリア１８００を包含し、独立して復号可能なＭＣＵは太枠１８０１の範囲内のＭＣＵである。そのため、太枠内のＭＣＵ（指定されたＭＣＵ）が復号可能なような情報を出力する。出力する情報は、復号対象となる各インターバルの先頭ポインタを出力するなど、指定されたＭＣＵが特定できるような情報であればよい。また、図１８（ａ）と同じエリア１８００がＨＤＲ差分復号対象として検出された場合でも、リスタートインターバルが４と設定されている場合には、図１８（ｂ）で示す太枠で囲まれたエリア１８０２の中のＭＣＵについて、ＨＤＲ差分の復号を行うことになる。例えば、図１８（ｂ）のエリア１８０２を復号する場合には、画像の先頭のＭＣＵ（図中のＭＣＵ０）から、４８番目に位置するＭＣＵ（図中のＭＣＵ４７）までをＨＤＲ差分復号対象ＭＣＵとなる。そのため、出力する情報としては、復号対象エリアが矩形であることと、復号開始位置となるＭＣＵの番号「０」と復号する最終位置となるＭＣＵの番号「４７」を出力すればよい。また、図１８（ｃ）に示すように、復号する必要のあるエリアが複数検出された場合で、復号対象のＭＣＵが重複するような例について説明する。図１８（ｃ）は、リスタートインターバルが４に設定されており、復号する必要のあるエリアとして、１８００と１８０３の２つが検出されている。この場合、復号対象となるＭＣＵは太枠１８０２内のＭＣＵと、点線１８０４内のＭＣＵである。このとき、ＭＣＵ２０〜２３、２８〜３１、３６〜３９、４４〜４７は重複している。図１５のフローチャートの処理中、ステップＳ１７０１では、各エリアに対して処理を行っている。そのため、指定ＭＣＵとしては重複しているＭＣＵについても指定を行うが、ステップＳ１７０３において、指定されたＭＣＵの中で重複するものがあれば、２回目以降に指定されたＭＣＵについては出力しないこととする。こうすることで、ＨＤＲ差分の復号処理を同じＭＣＵに対して行われることはない。
【００６４】
ＨＤＲ差分復号判定部１０５により、ＨＤＲ差分を復号する必要のあるエリアが１つでも存在すると判定された場合には、ＨＤＲ画像復号部１０７により、ＨＤＲ差分の復号処理を行う。図１７は、本実施形態におけるＨＤＲ画像復号部１０７の処理の流れを示すフローチャートである。まず、復号対象として指定されたＭＣＵを取得する（ステップＳ１９０１）。続いて、取得したＭＣＵのＨＤＲ差分符号化データを復号する（ステップＳ１９０２）。このとき、ＨＤＲ差分のＪＰＥＧ符号化データの復号処理についても、符号化と同様に、リスタートマーカ直後のＭＣＵではＤＣ係数の予測値を初期化し、復号を行う。
【００６５】
入力された全ＭＣＵに対してＨＤＲ差分符号化データの復号処理を終えると、ＨＤＲ画像の生成の処理に移る（ステップＳ１９０３）。ＨＤＲ画像の生成は、第１の実施形態と同様の方法で行えばよい。ただし、本実施形態においては、ＨＤＲ差分データが画像に対して部分的にしか存在しないことになる。そのため、ＨＤＲ画像データの生成方法については注意が必要となる。たとえば、ＬＤＲ画像データについてもＨＤＲ差分符号化データと同様に、リスタートインターバルを有効にして符号化してある場合について説明する。この場合、ＨＤＲ差分のインターバルと１対１で対応していれば、対応しているＬＤＲ画像データとＨＤＲ差分からＨＤＲ画像の生成を行い、ＬＤＲ画像の領域とＨＤＲ画像の領域が混在する画像を生成する。ＬＤＲ画像が１枚の画像データとして存在する場合には、ＨＤＲ差分を復号していない領域については、ＨＤＲ差分が０の領域であるというデータを付加して、画像１枚分のＨＤＲ差分データを生成し、それを用いてＨＤＲ画像データを生成すればよい。生成したＨＤＲ画像データを出力し（ステップＳ１９０４）、ＨＤＲ画像復号部１０７の処理を終了する。
【００６６】
以上の方法によれば、ＨＤＲ差分符号化データの部分復号が可能なため、ＨＤＲ差分が部分的にしか必要でない画像に対して、復号の処理時間を短縮することができる。
【００６７】
［第５の実施形態］
第１乃至第４の実施形態において、白飛びや黒潰れ領域に基づいてＨＤＲ差分の復号要否の判定を行った。本第５の実施形態では、白飛びや黒潰れ領域ではなく、ＬＤＲ縮小画像の疑似輪郭の発生状況に基づいてＨＤＲ差分の復号要否を判定する方法について説明する。本実施形態におけるＨＤＲ差分復号判定部１０５の処理の流れを図２１に示す。図３と同じ処理については同じ番号を付し、本実施形態においては詳細な説明は省略する。以下、図３と異なる処理について説明を行う。
【００６８】
まず、復号したＬＤＲ画像を入力し（ステップＳ３０１）、輝度成分値Ｙ＿ｌｄｒを算出する（ステップＳ３０２）。輝度成分Ｙ＿ｌｄｒから、ＬＤＲ画像中の輝度値の変化量の大きな箇所を検出する（ステップＳ２３０１）。検出の方法はどんな方法を用いてもよいが、例えば、着目画素の輝度値と、その隣接する８近傍画素の輝度値の差分値（輝度差）をそれぞれ求める。求めた画素間の差分値のうち、一番大きな差分値を閾値と比較して、閾値よりも大きな値の場合には、着目画素位置における輝度変化量が大きいと判定する。着目画素位置において輝度値の変化量が大きいと判定された場合には、その位置が特定できるような情報を保持しておくものとする。簡単には、変化が大きいと判定された画素位置では“１”、それ以外では“０”の値を持つ２値画像を生成することである。入力のＬＤＲ画像全面について、輝度変化検出の処理を終了すると、処理をステップＳ２３０２へ移行する。ステップＳ２３０２では、ＬＤＲ画像を出力解像度に縮小する。このとき、処理を簡易にするために、一定間隔で画素を間引く（サブサンプリングする）ことで、縮小画像生成を行うものとする。続いて生成した縮小ＬＤＲ画像について、ステップＳ２３０１と同様の方法で輝度値の変化量の大きな箇所を検出する（ステップＳ２３０３）。縮小ＬＤＲ画像中の輝度変化の検出結果と、元の解像度のＬＤＲ画像の輝度変化の検出結果を比較することで、縮小画像に疑似輪郭が発生しているか否かを判定する（ステップＳ２３０４）。具体的には、元の解像度で輝度変化が大きいと検出されなかった領域であって、縮小画像において輝度変化が大きいと検出された箇所について、疑似輪郭が発生していると判断する。疑似輪郭が発生していると判断された場合（Ｙｅｓ）には、サムネイル画像の画質向上のため、ＨＤＲ差分を復号する必要があるとして決定する（ステップＳ３０６）。一方、疑似輪郭が発生していないと判断された場合（Ｎｏ）には、ＨＤＲ差分を復号する必要はないとして決定する（ステップＳ３０７）。なお、ここでは疑似輪郭の有無で判定したが、疑似輪郭が発生すると判定された画素数の全画素数に対する割合が、予め設定された閾値を上回ったときＨＤＲ差分を復号するとしてもよい。
【００６９】
図２２（ａ）、（ｂ）に具体的な例を示す。同図は山並に太陽が沈む風景画像と捉えていただきたい。図２２（ａ）に示す画像を入力とした場合に、輝度変化の大きい箇所を検出する。その結果、画像中央の白いエリアの境界と、画像の下半分の黒い領域の境界が輝度変化の大きな箇所として検出される。図２２（ａ）を縮小した画像を図２２（ｂ）に示す。図２２（ｂ）について輝度変化の大きい箇所を検出した場合には、図２２（ａ）の画像で検出された箇所の他に、境界線２４０１、２４０２、２４０３が検出される。この場合、図２２（ａ）に示した縮小前の画像では検出されず、図２２（ｂ）に示した縮小画像で検出される輝度変化の大きな箇所が存在するため、疑似輪郭が発生していると判断される。そのため、図２２（ａ）はＨＤＲ差分符号化データを復号する必要がある画像であるとして決定する。
【００７０】
ＬＤＲ画像データを縮小することで、疑似輪郭が発生するような画像の場合にも、ＨＤＲ差分を復号することで、より滑らかな階調表現が可能となるため、疑似輪郭の発生が抑制できる。
【００７１】
［その他の実施形態］
第１の実施形態において、１つのＨＤＲ差分の符号化方法を示したが、これに限られることはない。例えば、ＨＤＲ差分データ符号化時に、ＬＤＲ画像のＪＰＥＧデータをローカルデコードし、逆トーンマップ処理を行い、ＨＤＲ画像データを復号する。その上で、ＨＤＲ画像データのオリジナルと復号結果の差分を取り、差分データ（単純差分データ）を符号化する方法を用いても構わない。
【００７２】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015019287.tif 000003
【図２】
2015019287.tif 000004
【図３】
2015019287.tif 000005
【図４】
2015019287.tif 000006
【図５】
2015019287.tif 000007
【図６】
2015019287.tif 000008
【図７】
2015019287.tif 000009
【図８】
2015019287.tif 000010
【図９】
2015019287.tif 000011
【図１０】
2015019287.tif 000012
【図１１】
2015019287.tif 000013
【図１２】
2015019287.tif 000014
【図１３】
2015019287.tif 000015
【図１４】
2015019287.tif 000016
【図１５】
2015019287.tif 000017
【図１６】
2015019287.tif 000018
【図１７】
2015019287.tif 000019
【図１８】
2015019287.tif 000020
【図１９】
2015019287.tif 000021
【図２０】
2015019287.tif 000022
【図２１】
2015019287.tif 000023
【図２３】
2015019287.tif 000024
【図２２】
2015019287.tif 000025