(57)【要約】      （修正有）【課題】同一ファイル内に保存されている、ＬＤＲ画像の編集によるＬＤＲ画像とＨＤＲ情報とのある程度の不整合を許容しつつ、比較的大きな不整合のみを検出することを可能にする。【解決手段】入力したＨＤＲ画像から、ＬＤＲ画像と、当該ＬＤＲ画像と前記ＨＤＲ画像との差を表す差分情報とを生成する。そして、生成されたＬＤＲ画像を符号化する。そして、ＬＤＲ画像の局所的な特徴を表すデータで構成される情報を、ＬＤＲメタデータとして算出する。そして、装置は、ＬＤＲ画像用のファイル構造における主符号化データ格納領域に前記符号化手段で生成されたＬＤＲ画像の符号化データを格納し、差分情報及びＬＤＲメタデータについては、そのファイル構造における、ＬＤＲ画像用の復号装置では非参照領域として定義されたマーカ内に格納することで、ＨＤＲ符号化ファイルを生成する。【選択図】図４
2015035798.tif 000002
【特許請求の範囲】
【請求項１】
ＨＤＲ画像を符号化する画像符号化装置であって、
符号化対象のＨＤＲ画像を入力する入力手段と、
入力したＨＤＲ画像から、ＬＤＲ画像と、当該ＬＤＲ画像と前記ＨＤＲ画像との差を表す差分情報とを生成する生成手段と、
該生成手段で生成されたＬＤＲ画像を符号化する符号化手段と、
前記ＬＤＲ画像の特徴を表すデータで構成される情報を、ＬＤＲメタデータとして算出する算出手段と、
ＬＤＲ画像用のファイル構造における主符号化データ格納領域に前記符号化手段で生成されたＬＤＲ画像の符号化データを格納し、前記差分情報及び前記ＬＤＲメタデータについては、前記ファイル構造における、ＬＤＲ画像用の復号装置では非参照領域として定義されたマーカ内に格納することで、ＨＤＲ符号化ファイルを生成するファイル生成手段と、
を有することを特徴とする画像符号化装置。
【請求項２】
前記符号化手段は、前記差分情報をも符号化することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
更に、前記ＬＤＲ画像からハッシュ値を算出する手段を有し、
前記ファイル生成手段は、前記ハッシュ値も前記マーカ内に格納することを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項４】
前記算出手段は、
前記ＬＤＲ画像中のｎ×ｍ画素から１つの代表画素を生成することで、当該代表画素からＬＤＲ縮小画像を生成する縮小手段を有し、
前記符号化手段は、前記ＬＤＲ縮小画像をも符号化し、
前記ファイル生成手段は、前記ＬＤＲ縮小画像の符号化データを、前記ＬＤＲメタデータとして前記マーカ内に格納して、前記ＨＤＲ符号化ファイルを生成する
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像符号化装置。
【請求項５】
前記算出手段は、前記ＬＤＲ縮小画像の各画素がエッジ画素であるか否かを表すエッジ画像を前記ＬＤＲメタデータとして生成する手段を含むことを特徴とする請求項４に記載の画像符号化装置。
【請求項６】
前記算出手段は、前記ＨＤＲ画像のダイナミックレンジを予め設定された分割数で分割し、各分割区間に対応する前記ＬＤＲ画像の各画素値の対応区間に番号を付し、前記ＬＤＲ画像の画素値を前記対応区間の番号で置き換えたマップ画像を前記ＬＤＲメタデータとして生成する手段を含むことを特徴とする請求項４又は５に記載の画像符号化装置。
【請求項７】
ＨＤＲ符号化ファイルを復号する画像復号装置であって、
ＨＤＲ符号化ファイルの中の、ＬＤＲ画像用のファイル構造における主符号化データ格納領域に格納されたＬＤＲ画像の符号化データを復号する復号手段と、
前記ファイル構造における、ＬＤＲ画像用の復号装置では非参照領域として定義されたマーカ内から、前記ＬＤＲ画像とＨＤＲ画像との差を表す差分情報とＬＤＲメタデータとを抽出する抽出手段と、
前記復号手段で復号したＬＤＲ画像から、前記ＬＤＲメタデータを生成する生成手段と、
該生成手段で生成されたメタデータと前記抽出手段で抽出したメタデータとを用いて、前記復号手段が復号した前記ＬＤＲ画像がオリジナルのＬＤＲ画像から編集されている状態を特定する特定手段と、
該特定の結果に基づいて、前記復号手段が復号した前記ＬＤＲ画像と差分情報からＨＤＲ画像を生成、出力するか、前記復号手段が復号した前記ＬＤＲ画像を出力するかを選択させる出力制御手段と
を有することを特徴とする画像復号装置。
【請求項８】
前記マーカ内にハッシュ値が格納されている場合には当該ハッシュ値を抽出し、前記復号手段で復号したＬＤＲ画像からハッシュ値を算出し、両者を比較し、一致した場合には前記判定手段による判定処理を省略し、前記復号手段で復号したＬＤＲ画像はオリジナルのＬＤＲ画像のままであると判定する手段を更に有することを特徴とする請求項７に記載の画像復号装置。
【請求項９】
前記特定手段は、
前記マーカ内よりＬＤＲ縮小画像の符号化データを抽出、復号し、
前記復号手段で復号したＬＤＲ画像からＬＤＲ縮小画像を生成し、
復号したＬＤＲ縮小画像と、縮小して得たＬＤＲ縮小画像の画素値どうしの差が予め設定された許容値以下であるか否かを判定し、
前記許容値以下である場合に、前記復号手段で得られたＬＤＲ画像に対しては予め設定された許容範囲内の編集がなされているものと判定する
ことを特徴とする請求項７又は８に記載の画像復号装置。
【請求項１０】
前記特定手段は、
前記マーカ内よりエッジ画像を抽出し、
前記復号手段で復号したＬＤＲ画像からエッジ画像を生成し、
抽出したエッジ画像と、生成したエッジ画像の画素値どうしが一致しているか否かを判定し、
一致していると判定した場合に、前記復号手段で得られたＬＤＲ画像に対しては予め設定された許容範囲内の編集がなされているものと判定する
ことを特徴とする請求項７乃至９のいずれか１項に記載の画像復号装置。
【請求項１１】
前記特定手段は、
前記マーカ内よりマップ画像を抽出し、
前記復号手段で復号したＬＤＲ画像から、ＨＤＲ画像のダイナミックレンジを予め設定された分割数で分割し、各分割区間に対応する前記ＬＤＲ画像の各画素値の対応区間に番号を付し、前記ＬＤＲ画像の画素値を前記対応区間の番号で置き換えたマップ画像を前記ＬＤＲメタデータとして生成し、
抽出したマップ画像と、生成したマップ画像の画素値どうしが一致しているか否かを判定し、
一致していると判定した場合に、前記復号手段で得られたＬＤＲ画像に対しては予め設定された許容範囲内の編集がなされているものと判定する
ことを特徴とする請求項７乃至１０のいずれか１項に記載の画像復号装置。
【請求項１２】
更に、前記特定の結果に基づいて、前記復号手段が復号した前記ＬＤＲ画像と差分情報からＨＤＲ画像を生成、出力するか、前記復号手段が復号した前記ＬＤＲ画像を出力するかをユーザに選択させる表示を行わせる表示制御手段を有することと特徴とする請求項７に記載の画像復号装置。
【請求項１３】
ＨＤＲ画像を符号化する画像符号化装置の制御方法であって、
入力手段が、符号化対象のＨＤＲ画像を入力する入力工程と、
生成手段が、入力したＨＤＲ画像から、ＬＤＲ画像と、当該ＬＤＲ画像と前記ＨＤＲ画像との差を表す差分情報とを生成する生成工程と、
符号化手段が、該生成工程で生成されたＬＤＲ画像を符号化する符号化工程と、
算出手段が、前記ＬＤＲ画像の特徴を表すデータで構成される情報を、ＬＤＲメタデータとして算出する算出工程と、
ファイル生成手段が、
ＬＤＲ画像用のファイル構造における主符号化データ格納領域に前記符号化手段で生成されたＬＤＲ画像の符号化データを格納し、前記差分情報及び前記ＬＤＲメタデータについては、前記ファイル構造における、ＬＤＲ画像用の復号装置では非参照領域として定義されたマーカ内に格納することで、ＨＤＲ符号化ファイルを生成するファイル生成工程と、
を有することを特徴とする画像符号化装置の制御方法。
【請求項１４】
ＨＤＲ符号化ファイルを復号する画像復号装置の制御方法であって、
復号手段が、ＨＤＲ符号化ファイルの中の、ＬＤＲ画像用のファイル構造における主符号化データ格納領域に格納されたＬＤＲ画像の符号化データを復号する復号工程と、
抽出手段が、前記ファイル構造における、ＬＤＲ画像用の復号装置では非参照領域として定義されたマーカ内から、前記ＬＤＲ画像とＨＤＲ画像との差を表す差分情報とＬＤＲメタデータとを抽出する抽出工程と、
生成手段が、前記復号工程で復号したＬＤＲ画像から、前記ＬＤＲメタデータを生成する生成工程と、
特定手段が、該生成工程で生成されたメタデータと前記抽出工程で抽出したメタデータとを用いて、前記復号工程が復号した前記ＬＤＲ画像がオリジナルのＬＤＲ画像から編集されている状態を特定する特定工程と、
出力制御手段が、該特定の結果に基づいて、前記復号工程が復号した前記ＬＤＲ画像と差分情報からＨＤＲ画像を生成、出力するか、前記復号工程が復号した前記ＬＤＲ画像を出力するかを選択させる出力制御工程と
を有することを特徴とする画像復号装置の制御方法。
【請求項１５】
コンピュータに読み込ませ実行させることで、前記コンピュータに、請求項１３に記載の画像符号化装置の制御方法の各工程を実行させるためのプログラム。
【請求項１６】
コンピュータに読み込ませ実行させることで、前記コンピュータに、請求項１４に記載の画像復号装置の制御方法の各工程を実行させるためのプログラム。
【請求項１７】
ＨＤＲ画像を編集する画像処理装置であって、
編集対象のＨＤＲ画像の符号データを入力する入力手段と、
前記符号データに含まれるＬＤＲ画像の符号データを抽出して復号することで、当該ＬＤＲ画像を生成するＬＤＲ復号手段と、
前記符号データに含まれ、ＬＤＲと組み合わせてＨＤＲ画像を復元するために必要なＨＤＲ拡張データを特定する特定手段と、
ＬＤＲ画像の編集内容に応じて、前記ＨＤＲ拡張データを削除するかどうかを判断する判断手段と、
該判断手段により前記ＨＤＲ拡張データを削除すると判断した場合に、当該ＨＤＲ拡張データを削除する削除手段と
を有することを特徴とする画像処理装置。
【請求項１８】
ＨＤＲ画像を編集する画像処理装置の制御方法であって、
入力手段が、編集対象のＨＤＲ画像の符号データを入力する入力工程と、
ＬＤＲ復号手段が、前記符号データに含まれるＬＤＲ画像の符号データを抽出して復号することで、当該ＬＤＲ画像を生成するＬＤＲ復号工程と、
特定手段が、前記符号データに含まれ、ＬＤＲと組み合わせてＨＤＲ画像を復元するために必要なＨＤＲ拡張データを特定する特定工程と、
判断手段が、ＬＤＲ画像の編集内容に応じて、前記ＨＤＲ拡張データを削除するかどうかを判断する判断工程と、
削除手段が、該判断工程により前記ＨＤＲ拡張データを削除すると判断した場合に、当該ＨＤＲ拡張データを削除する削除工程と
を有することを特徴とする画像処理装置の制御方法。
【請求項１９】
コンピュータに読み込ませ実行させることで、前記コンピュータに、請求項１８に記載の画像処理装置の制御方法の各工程を実行させるためのプログラム。
【請求項２０】
請求項１５、１６、１９のいずれか１項に記載のプログラムを格納した、コンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像の符号化技術に関するものである。
【背景技術】
【０００２】
現在、静止画像データが様々な形式で流通しており、その代表的な形式がＪＰＥＧ圧縮形式である。ＪＰＥＧ圧縮形式の画像は、デジタルカメラの出力ファイルとしても利用されており、ウェブブラウザを始め、ＪＰＥＧ圧縮画像を扱うことができる様々なソフトウェアが存在する。ＪＰＥＧ圧縮される静止画像は１コンポーネント当り８ビットである。そのため、１コンポーネント当り２５６階調までしか再現できない。
【０００３】
一方、人間の視覚は１：１００００までのコントラスト比を認識できるため、従来のＪＰＥＧ画像の階調表現では実際の見た目と大きな差ができる。そこで、１コンポーネント当り３２ビット程度のデータを持つ高ダイナミックレンジ画像（ＨＤＲ画像）が注目されている。
【０００４】
１コンポーネント当り３２ビットのデータを持つＨＤＲ画像を、従来のＪＰＥＧビューアで見ることができるような技術が、特許文献１に開示されている。ＨＤＲ画像を８［ビット／コンポーネント］の低いダイナミックレンジ画像（ＬＤＲ画像）にトーンマッピングし、ＪＰＥＧ圧縮する。そして、原画であるＨＤＲ画像と、ＬＤＲ画像の比率を別途ＨＤＲ情報として作成し、ＨＤＲ情報とＬＤＲ画像のＪＰＥＧ符号データを、１つのファイルに保存するという方法である。ＨＤＲ情報を保存する場所は、ＪＰＥＧのアプリケーションマーカ（ＡＰＰマーカ）内である（図１（ａ）参照）。一般的なＪＰＥＧビューアは、サポートしないＡＰＰマーカを無視してデコードする。そのため、たとえば、ＡＰＰ１１を、ＨＤＲ情報を保存しているマーカとして認識できないＪＰＥＧビューアが図１（ａ）のデータを受け取ると、ＬＤＲ画像１０２のみをデコードし表示する。一方、ＡＰＰ１１にＨＤＲ情報が保存されていることを認識できるＨＤＲ画像ビューアは、ＬＤＲ画像１０２とＡＰＰマーカ内の情報１０１を組み合わせて、元のＨＤＲ画像をデコードし表示できる、という仕組みである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００７−５３４２３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、ＪＰＥＧビューアが画像の編集機能を持っている場合を考える。編集画像を保存する場合、ビューア自身が認識できないメタデータをそのまま保存するソフトウェアも数多く存在する。メタデータをそのまま保存することで、その画像を作成した機器との互換性を保つことが可能となるからである。
【０００７】
例えば、特許文献１で開示された方法でＨＤＲ画像データを保存したファイルを、画像編集機能を持つＪＰＥＧビューアがＬＤＲ画像のみを復号、編集し、認識できないＡＰＰマーカ内のＨＤＲ情報と共に、編集後の画像を符号化し、保存する場合を考える。この場合、ＡＰＰマーカ内のＨＤＲ情報と、ＬＤＲ画像の整合性が失われてしまう。
【０００８】
画像データが編集されたことを検知する方法として、ハッシュの利用が考えられる。たとえば、監視カメラなどでは、画像改ざん検出データとしてＳＨＡ−１によるハッシュ値などが使用されている。
【０００９】
ＨＤＲ画像としてデコードした場合、ＨＤＲ情報とＬＤＲ画像の不整合による画質劣化の度合いは、ＬＤＲ画像への編集内容によって異なる。
【００１０】
たとえば、切り抜きや拡大、９０度回転などのように、サイズやアスペクト比が元画像のものとは異なってしまうような編集であれば、ＨＤＲ情報をＬＤＲ画像に重ねることすら困難である。上下反転や左右反転など、画像内のオブジェクトの位置が異なるような編集の場合には、ゴーストのような不自然なオブジェクトや模様が現れてしまい、元のＨＤＲ画像とは大きく異なってしまう。また、ＬＤＲ画像のモノクロ化やセピア画像への変更など、画像全体の色相が変わるような編集の場合には、画像全体に不自然な色づきが発生してしまい、ＨＤＲ画像としての価値が大きく損なわれる。これらの編集による不整合は、ＨＤＲ画像としてデコードした場合の影響が非常に大きく、ＨＤＲ画像を表示することによる価値があまりなくなってしまうと言える。
【００１１】
一方、エッジ部分のシャープネスやぼかしなどの、画像の局所領域に対する編集による不整合は、ＨＤＲ画像としてデコードした場合エッジ部分がボケるなどの影響があるものの、その画質劣化はＨＤＲ画像の価値を大きく損ねるものではない。ＨＤＲ画像の作成方法の一つに、狭いダイナミックレンジで、明るさを変えて撮影した複数枚の画像を重ね合わせることで、ＨＤＲ画像とする方法がある。そのような場合、複数枚の画像のエッジがぴったり重なることが少ないため、一般に、エッジ部分をぼかす処理を加える。つまり、ＬＤＲ画像とＨＤＲ情報の不整合によってエッジ部分がボケたとしても、ＨＤＲ画像としての価値は大きく損なわれない。ゴミ取りも、また、画像の局所領域に対する編集の一つである。ゴミ取りとは、撮像面に付着したゴミが撮影画像に写りこむことで生じる黒い小さい点を、周囲の色で埋めることで除去する画像処理である。この場合も、ＬＤＲ画像でゴミを除去した点に対して、ＨＤＲ情報を重ねることで多少の色づきが残るものの、元のＨＤＲ画像において存在していたゴミがうっすら認識できる程度である。これもまた、ＨＤＲ画像としての価値を大きく損ねるような不整合ではないと言える。
【００１２】
また、ノイズ除去などの、半径の小さいフィルタを使った画像全体へのぼかし処理による不整合も、ＨＤＲ画像としての画値を大きく損ねるような影響はない。ノイズ除去後のＬＤＲ画像に、ＨＤＲ情報を重ねることで、除去したはずのノイズがうっすら見えてしまうものの、元のＨＤＲ画像にも存在していたノイズであり、影響はほとんどないと言える。あるいは、Ｑパラメータの変更など、圧縮条件のみの変更であれば、ＨＤＲ画像としてデコードした場合にはほとんど影響がない。
【００１３】
このようにＬＤＲ画像への編集内容によってその影響が様々である。
【００１４】
本発明は上記に鑑みてなされたものであり、ＬＤＲ画像の編集によるＬＤＲ画像とＨＤＲ情報との不整合の検出技術を提供する。
【課題を解決するための手段】
【００１５】
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
ＨＤＲ画像を符号化する画像符号化装置であって、
符号化対象のＨＤＲ画像を入力する入力手段と、
入力したＨＤＲ画像から、ＬＤＲ画像と、当該ＬＤＲ画像と前記ＨＤＲ画像との差を表す差分情報とを生成する生成手段と、
該生成手段で生成されたＬＤＲ画像を符号化する符号化手段と、
前記ＬＤＲ画像の特徴を表すデータで構成される情報を、ＬＤＲメタデータとして算出する算出手段と、
ＬＤＲ画像用のファイル構造における主符号化データ格納領域に前記符号化手段で生成されたＬＤＲ画像の符号化データを格納し、前記差分情報及び前記ＬＤＲメタデータについては、前記ファイル構造における、ＬＤＲ画像用の復号装置では非参照領域として定義されたマーカ内に格納することで、ＨＤＲ符号化ファイルを生成するファイル生成手段とを有する。
【発明の効果】
【００１６】
本発明によれば、同一ファイル内に保存されている、ＬＤＲ画像の編集によるＬＤＲ画像とＨＤＲ情報との不整合の検出が可能となる。その結果、ＬＤＲ画像が編集されているかもしれない符号化ファイルを受信した復号器は復号画像を適切に取り扱うことが可能となる。
【図面の簡単な説明】
【００１７】
【図１】ＨＤＲ情報およびＬＤＲメタデータの保存位置の図。
【図２】画像処理システムのブロック図。
【図３】ＨＤＲ画像符号化装置のブロック図。
【図４】ＨＤＲファイル生成フローの図。
【図５】ＬＤＲメタデータ生成フローの図。
【図６】マップ画像生成フローの図。
【図７】トーンカーブとその分割の図。
【図８】ＨＤＲファイルの生成・出力フローの図。
【図９】ＬＤＲメタデータ出力フローの図。
【図１０】ＬＤＲメタデータの出力フォーマットを説明する図。
【図１１】ＨＤＲ画像復号装置のブロック図。
【図１２】ＨＤＲ画像表示フローの図。
【図１３】ＨＤＲ表示判定フローの図。
【図１４】不整合レベル検出フローの図。
【図１５】縮小画像による不整合レベルの判定フローの図。
【図１６】エッジ画像による不整合レベルの判定フローの図。
【図１７】マップ画像による不整合レベルの判定フローの図。
【図１８】ダイアログ表示の例を説明する図。
【図１９】ＨＤＲ表示判定フローの図。
【図２０】ＬＤＲメタデータ比較フローの図。
【図２１】ＬＤＲ画像の編集フローの図。
【図２２】ＨＤＲ画像ファイルの編集フローの図。
【発明を実施するための形態】
【００１８】
以下、添付図面に従って本発明に係る実施の形態を詳細に説明する。
【００１９】
［第１の実施形態］
図２は、本実施形態を実現するシステムの概略を示した図である。このシステムは、ＨＤＲ画像の符号化装置２０１、ＬＤＲ画像用の編集装置２０２、ＨＤＲ画像を復元可能な復号装置２０３を含み、それぞれネットワークを介して接続されているものとする。ＨＤＲ符号化装置２０１は、例えば不図示の撮像デバイスより入力したＨＤＲ画像データから、ＬＤＲ画像２０８を生成する。そして、ＨＤＲ符号化装置２０１は、ＬＤＲ画像２０８から、ＨＤＲ画像を生成するための情報であるＨＤＲ情報を生成する。そして、ＨＤＲ符号化装置２０１は、さらにＬＤＲ画像のメタデータ２０７を作成し、それらを符号化して、１つのファイルに格納したＨＤＲ符号化ファイル２０４を生成・出力する。出力されたＨＤＲ符号化ファイル２０４はネットワークを介して、ＬＤＲ画像の編集装置２０２へ送信される。ＬＤＲ画像編集装置２０２は、ＬＤＲ画像２０８を復号・編集し、ＪＰＥＧで再符号化する。その際、ＬＤＲ画像編集装置２０２が認識できなかったＡＰＰマーカ（もしくは非参照領域）に格納されたＨＤＲ情報２０６とＬＤＲ画像のメタデータ２０７は、編集後のＬＤＲ画像２０９のＡＰＰマーカにそのままコピーする。そして、ＨＤＲ情報２０６とＬＤＲ画像のメタデータ２０７、編集後のＬＤＲ画像２０９を１つのファイルに格納した、ＬＤＲ画像編集済みのＨＤＲファイル２０５を出力する。ＬＤＲ画像編集済みのＨＤＲファイル２０５はネットワークを介して、ＨＤＲ画像の復号装置２０３に受信される。
【００２０】
本実施形態における符号化対象のＨＤＲ画像データは、１９２０×１０８０画素のＲＧＢカラーデータとし、各コンポーネント（色）は１６ビットの実数値として説明する。但し、ＲＧＢ以外のコンポーネントの構成（例えばグレー）でも構わず、色空間の種類，コンポーネントの個数は問わない。また、１成分のビット数も１６ビットに限らず、１２ビットや３２ビットなど、８ビットを超えるビット数であれば、何ビットでもよい。また、実数値だけに限定されず、１６ビットの整数値などでもよい。つまり、ＨＤＲのコントラスト比を表現できれば、入力画像の形式はどのようなものでもよい。
【００２１】
＜ＨＤＲ画像のエンコード側：ＬＤＲ画像のメタデータ作成方法＞
まず、本実施形態では、ＨＤＲ画像の符号化装置２０１におけるＨＤＲファイル２０４の作成方法について説明する。
【００２２】
図３は、本実施形態におけるＨＤＲ画像の符号化装置２０１のブロック図である。同図で、３０１は装置全体の制御を司るＣＰＵであり、各構成の処理の全てに関わる。３０２は入力部であり、ユーザからの指示を入力する部分であり、キーボードやマウスなどのポインティングシステムを含む。３０３はＬＤＲ情報生成部、３０４はＬＤＲ画像生成部、３０５はＪＰＥＧコーデック部であり、１コンポーネント当り８ｂｉｔの非圧縮画像データをＪＰＥＧ符号データに変換したり、ＪＰＥＧ符号データを復号し非圧縮画像データに変換する。３０６はＬＤＲ画像の特徴を表すメタデータを生成するメタデータ生成部である。３０７は表示部であり、通常は液晶ディスプレイなどが用いられる。３０８はメモリであり、ＲＯＭやＲＡＭを含み、処理に必要なプログラム、データ、作業領域などをＣＰＵ３０１に提供する。３０９は通信Ｉ／Ｆ部である。３１０は蓄積部であり、画像データ、プログラムなどを蓄積する部分で、通常はハードディスクなどが用いられる。また、以降のフローチャートの処理に必要な制御プログラムは、蓄積部３１０に格納されているか、メモリ３０８のＲＯＭに格納されているものとする。蓄積部３１０に格納されている場合は、一旦メモリ３０８内のＲＡＭに読み込まれてから実行される。３１１は、符号化対象のＨＤＲ画像を入力する入力部である。入力源は撮像部とするが、ＨＤＲ画像を格納した記憶媒体でも良く、その種類は問わない。なお、システム構成については、上記以外にも様々な構成要素が存在するが、本発明の主眼ではないので、その説明は省略する。
【００２３】
本実施形態の符号化装置２０１によるＨＤＲ画像データからＬＤＲ画像２０８とＨＤＲ情報２０６に分ける方法について説明する。ＨＤＲ画像データに対してトーンマッピングというダイナミックレンジを圧縮する処理を行い、８ビットの低ダイナミックレンジ（ＬＤＲ）の画像データを生成する。ＬＤＲ画像は、１コンポーネント８ビットと等価の画像であるので、ＪＰＥＧ圧縮することで、ＬＤＲ画像の符号データを生成できる。そして、ＬＤＲ画像データをＨＤＲ画像データに戻す上で必要となるＨＤＲ情報を生成し、符号化する。さらに、ＬＤＲ画像の符号データからＬＤＲ画像データのメタデータ（ＬＤＲメタデータ）を生成し、符号化する。その後、それぞれの符号データから最終的に出力するＨＤＲファイルを生成する。
【００２４】
ＨＤＲ情報の生成方法としては、主に２つの方法が考えられる。１つ目は、ＬＤＲ画像データとＨＤＲ画像データの差分情報を利用する方法である。ＬＤＲ画像のＪＰＥＧ符号データを一旦復号し、逆トーンマップ処理を行い、疑似的にＨＤＲ画像データを復号する。その上で、オリジナルのＨＤＲ画像データと、ＬＤＲ画像から疑似的に作成されたＨＤＲ画像の差分を取り、差分データをＨＤＲ情報として符号化する方法である。逆トーンマップ処理とは、ＬＤＲ画像のダイナミックレンジを拡張する処理である。２つ目は、ＨＤＲ画像データとＬＤＲ画像データの輝度成分比（Ｙレシオ）を利用する方法である。Ｙレシオを使って、ＬＤＲ画像データをＨＤＲのレンジに戻して、オリジナルのＨＤＲ画像データとの色差成分の差分を生成する。そして、Ｙレシオと色差成分を８ビット化してＪＰＥＧ符号化する方法である。
【００２５】
本実施形態では、説明を簡単にするために、１つ目の差分情報を利用する方法でＨＤＲ情報を生成するものとする。ただし、２つ目の輝度成分比を利用する方法でＨＤＲ情報を生成しても構わない。
【００２６】
図４は、符号化装置２０１のＣＰＵ３０１が実行するＨＤＲファイル生成処理のフローを示したフローチャートである。以下、図４を用いて、本実施形態におけるＨＤＲファイル生成処理を説明する。
【００２７】
ステップＳ４０１では、ＨＤＲ画像入力部３１１から符号化対象のＨＤＲ画像データを入力する。ステップＳ４０２では、ステップＳ４０１で入力されたＨＤＲ画像データに対して、ＲＧＢデータをＹＣｂＣｒに変換し、メモリ３０８から取得したトーンカーブを用いて、トーンマッピング処理を行う。したがって、元のＨＤＲ画像と同じ１９２０ｘ１０８０画素のＬＤＲ画像データが生成される。トーンマッピング処理とは、ＨＤＲ画像を所定のダイナミックレンジに圧縮する処理である。トーンマッピング処理は、人間の視覚特性や表示デバイス特性を考慮した手法など様々な手法が提案されている。本実施形態においては、トーンマッピングにより、１コンポーネント当り８ビットの整数値（０〜２５５）のＬＤＲ画像を生成するものとし、どのような手法を用いてもよい。ステップＳ４０３では、ステップＳ４０２で作成されたＬＤＲ画像をＪＰＥＧコーデック部３０５によって符号化する。ステップＳ４０４では、ステップＳ４０３で作成されたＬＤＲ画像のＪＰＥＧ符号データを、ＪＰＥＧコーデック部３０５によって復号する。ステップＳ４０５では、ステップＳ４０１で入力されたＨＤＲ画像データと、ステップＳ４０４で復号されたＬＤＲ画像データからＨＤＲ情報を生成する。すなわち、ステップＳ４０２で使用したトーンカーブを用いて、復号されたＬＤＲ画像に逆トーンマップ処理を行い、ダイナミックレンジを拡張し、疑似的なＨＤＲ画像データ（以下、ＨＤＲ復号画像データという）を生成する。そして、ステップＳ４０１で入力されたＨＤＲ画像データと、ＬＤＲ画像に逆トーンマップ処理を行って作成したＨＤＲ復号画像データの差分を算出し、トーンマップ処理に使用したトーンカーブの情報などと共にＨＤＲ情報とする。ステップＳ４０６ではステップＳ４０５で生成されたＨＤＲ情報の中の差分データを８［ビット／コンポーネント］のデータに変換し、ＪＰＥＧコーデック部３０５によって符号化する。ステップＳ４０７では、ＬＤＲ復号画像データからＬＤＲ画像のメタデータを生成する。この生成方法については、後に、図５のフローを用いて詳しく説明する。ステップＳ４０８では、ステップＳ４０３、ステップＳ４０６、ステップＳ４０７のそれぞれで生成されたデータからＨＤＲファイルを生成し、出力する。ＨＤＲファイルの出力方法については、後に図８のフローを使って、詳しく説明する。
【００２８】
＜ＬＤＲ画像のメタデータ生成の説明＞
次に、図５のフローチャートに従って、ステップＳ４０７のＬＤＲメタデータ生成処理について説明する。なお、以下の説明で、ハッシュ値を生成するか否かなどのメタデータの生成の判定処理があるが、これらは画像符号化装置２０１が符号化に先立ち、不図示のＵＩにてユーザが選択するものとして説明する。
【００２９】
ステップＳ５０１では、ＬＤＲメタデータとしてハッシュ値を生成するかどうか判断する。生成する場合にはステップＳ５０２へ進み、そうでなければステップＳ５０３へ進む。ＬＤＲメタデータとして何を生成するのかは、ソフトウェアが予め利用目的などから決めておいても良いし、ユーザからの指示で決めても良い。本実施形態では、ユーザによって、すべての種類のＬＤＲメタデータを生成し、格納するという指示が入力されているものとする。したがって、ステップＳ５０２へ進む。ステップＳ５０２は、ステップＳ４０３で作成されたＬＤＲ符号データから予め決められたハッシュ関数を用いてハッシュ値を算出する。ハッシュ関数とは、例えばＳＨＡ−１などの関数であり、入力データに基づいて固定長の擬似乱数であるハッシュ値を生成する演算関数である。ハッシュ関数には様々なものが提案されているが、どのような関数を用いても構わない。本実施形態では、ＳＨＡ−１を用いているものとする。また、ハッシュ値を算出時には、ステップＳ４０４で生成されたＬＤＲ復号画像データよりも、復号される前のＬＤＲ符号データを用いる方が好ましい。ＬＤＲ符号データは非可逆圧縮であるＪＰＥＧ符号であり、復号するＣＰＵの種類によって、その演算精度の違いにより復号結果の画素値が全て一致するとは限らないからである。次に、ステップＳ５０３ではハッシュ値以外のＬＤＲメタデータを生成するかどうか判断する。生成する場合には、ステップＳ５０４へ進み、そうでなければ、このフローを終了する。本実施形態ではステップＳ５０４へ進む。
【００３０】
ステップＳ５０４ではＬＤＲ画像の縮小比Ｎを取得する。縮小比Ｎは予め決められた値でも良いし、ユーザによって指定される情報から算出しても良い。本実施形態では、予めＮ＝８と決められているものとする。ステップＳ５０５では、ステップＳ５０４で取得した縮小比ＮとステップＳ４０４で得られたＬＤＲ復号画像から、ＬＤＲ復号画像の縮小画像（ＬＤＲ縮小画像）を作成する。具体的には、ＬＤＲ復号画像をＮ×Ｎ画素で構成されるブロックに分割し、各ブロックの平均画素値をそのブロックの代表画素とすることで縮小画像を作成する。なお、実施形態では、Ｎ×Ｎと正方を示しているが、水平、垂直方向の縮小比を独立して設定できるものとしてＬＤＲ画像中のｎ×ｍ画素から代表画素を求めてもよい。
【００３１】
本実施形態の場合、１９２０×１０８０画素から、８×８画素のブロック毎に平均値を求めるので、２４０×１３５画素の縮小画像（以下、ＬＤＲ縮小画像という）が得られる。ステップＳ５０６では、ＬＤＲメタデータとしてエッジ画像を生成するか判断する。生成する場合にはステップＳ５０７へ進み、そうでなければ、ステップＳ５０８へ進む。本実施形態では、ステップＳ５０７へ進む。ステップＳ５０７では、ステップＳ５０５で作成したＬＤＲ縮小画像からエッジ画像を作成する。具体的には、Ｙ，Ｃｂ，Ｃｒの各コンポーネントごとにｓｏｂｅｌフィルタによるエッジ検出を行い、各画素のエッジ強度を求める。エッジ強度が予め決められた閾値（本実施形態では３２）以上であればエッジ画素として１、閾値未満であればエッジ以外の画素として０をそれぞれ１ビットで出力する。本実施形態の場合、縮小画像のサイズが２４０×１３５画素であるので、１コンポーネント当り４０５０［バイト］（＝２４０ｘ１３５＝３２４００［ビット］）のマップ画像が作成される。次に、ステップＳ５０８では、ＬＤＲメタデータとしてマップ画像を生成するか判断し、生成する場合にはステップＳ５０９へ進み、そうでなければ、このフローを終了する。ステップＳ５０９では、ステップＳ５０５で作成されたＬＤＲ縮小画像からマップ情報を作成し、このフローを終了する。
【００３２】
次に、図６を用いて、ステップＳ５０９の、ＬＤＲ縮小画像からマップ情報を作成する方法について説明する。ステップＳ６０１では、ステップＳ４０２のトーンマップ処理で使用されたトーンカーブを取得する。本実施形態では、トーンカーブは、Ｙ、Ｃｂ、Ｃｒのそれぞれのコンポーネントに対して設定されているものとする。本実施形態では、Ｙコンポーネントに対して、図７（ａ）のようなトーンカーブが得られたものとする。Ｃｂ、Ｃｒも同様にトーンカーブが得られるが、説明を簡単にするために、Ｙコンポーネントのみを図に示す。ステップＳ６０２では、トーンカーブの分割数Ｔを取得する。本実施形態では、分割数Ｔは予め決められており、４とする。ステップＳ６０３では、トーンカーブのＨＤＲデータの値をステップＳ６０２で得られたＴで分割し、トーンカーブを分割する。図７（ａ）の場合、０〜６５５３５（＝２16−１）の範囲であるＨＤＲデータをＴ＝４等分し、０〜１６３８３、１６３８４〜３２７６７、３２７６８〜４９１５１、４９１５２〜６５５３５の４つの分割区間（範囲）を得る。そして、それぞれの分割区間に対応して、ＬＤＲデータの範囲も４つの対応区間に分割する。図７（ｂ）はＨＤＲデータを４等分したときの、それぞれの境界位置に対するＬＤＲデータの値との関係を示している。図示から、トーンカーブは、以下のように分割される。
分割番号０＜ＨＤＲ範囲：０〜１６３８３ ＬＤＲ範囲：０〜１８１＞
分割番号１＜ＨＤＲ範囲：１６３８４〜３２７６７ ＬＤＲ範囲：１８２〜２１７＞
分割番号２＜ＨＤＲ範囲：３２７６８〜４９１５１ ＬＤＲ範囲：２１８〜２３５＞
分割番号３＜ＨＤＲ範囲：４９１５２〜６５５３５ ＬＤＲ範囲：２３６〜２５５＞
次に、ステップＳ６０４では、ステップＳ５０５で作成されたＬＤＲ画像の各画素を、ステップＳ６０３で分割されたトーンカーブの分割番号にマッピングし、マップ画像を作成する。分割番号は０乃至３であるので、１画素当たり２ビットで表現できる。本実施形態の場合、ＬＤＲ画像の注目画素におけるＹコンポーネント値が０〜１８１であれば、その画素のＹのマップ情報は２ビットの００になる。同様に、Ｙコンポーネント値が１８２〜２１７であれば、マップ情報は２ビットの０１に、Ｙコンポーネント値が２１８〜２３５であれば、マップ情報は２ビットの１０に、Ｙコンポーネント値が２３６〜２５５であれば、マップ情報は２ビットの１１となる。Ｃｂ，Ｃｒコンポーネントも同様の対応付けを行うことで、１画素当り３つの分割番号の計６ビットの情報からなるマップ画像が作成され、このフローを終了する。
【００３３】
本実施形態の場合、縮小画像のサイズが２４０×１３５画素であるので、２４３００バイト（＝２４０ｘ１３５ｘ６＝１９４４００［ビット］）のマップ画像が作成される。また、本実施形態では、分割数Ｔ＝４個の状態を表せるビット数が２であったので、００〜１１でマップ情報を表しているが、分割数Ｔの値によってそのビット数が変わることは言うまでも無い。すなわち、分割数Ｔ＝２であれば、１ビットで十分であり、分割数Ｔ＝５〜８であれば、３ビット必要になる。
【００３４】
本実施形態におけるステップＳ４０８でのＨＤＲファイルの生成処理を図８を用いて説明する。ステップＳ８０１では、ＨＤＲファイルのＳＯＩマーカを出力する。ステップＳ８０２では、ＡＰＰマーカ内にＨＤＲ情報を出力する。本実施形態では、図１（ｂ）に示すようにＡＰＰ１１に出力するものとする。ステップＳ８０３では、ステップＳ８０２でＨＤＲ情報を出力したＡＰＰマーカ内に、ＬＤＲメタデータを出力する。このＬＤＲメタデータの出力方法については、後に図９を用いて説明する。ステップＳ８０４では、ＪＰＥＧ圧縮されたＬＤＲ画像のＪＰＥＧ必須マーカを出力する。ＪＰＥＧ必須マーカとは、量子化テーブルの情報を格納したＤＱＴマーカ、色情報に関する情報を格納したＳＯＦマーカ、ハフマンテーブル定義を格納したＤＨＴマーカなどであり、ＪＰＥＧデコード時に必要な情報を格納したマーカである。これらについては、既知の技術であるので、ここでの詳しい説明は割愛する。ステップＳ８０５では、ステップＳ４０３で作成されたＬＤＲ画像のＪＰＥＧ符号列を、ＪＰＥＧ符号化のファイル構造の主符号化データ格納領域に格納し、出力する。ステップＳ８０６では、ＨＤＲファイルの終了を示すＥＯＩマーカを出力して、このフローを終了する。
【００３５】
次に、図９を用いて、ＬＤＲメタデータ出力方法について説明する。ステップＳ９０１では、これから出力するＬＤＲメタデータの数を、ステップＳ８０２で出力したＨＤＲ情報に続けて出力する。本実施形態の場合、値「４」が出力される。ステップＳ９０２では、ステップＳ５０４で取得したＬＤＲ画像の縮小比「Ｎ」を１バイトで出力する。本実施形態の場合、縮小比Ｎ＝８なので、０ｘ０８（ＨＥＸ）を出力する。図５のフローで、ハッシュ値以外のＬＤＲメタデータを生成していない場合には、ＬＤＲ縮小比としてＮ＝０を出力する。ステップＳ９０３では、ＬＤＲメタデータとしてハッシュ値の出力があるかどうかを判断する。ハッシュ値が出力される場合には、ステップＳ９０４へ進み、そうでなければ、ステップＳ９０６へ進む。本実施形態の場合、ハッシュ値の出力があるため、ステップＳ９０４へ進む。ステップＳ９０４では、ハッシュ値のメタデータＩＤとそのデータサイズを出力する。本実施形態の場合、メタデータのそれぞれの種類に対して、図１０（ｃ）のようなＩＤが割り振られているものとする。従って、ＩＤとして、０ｘ００（ＨＥＸ）が出力される。また、そのデータサイズとしてステップＳ５０２で生成したハッシュ情報のデータサイズを出力する。ステップＳ９０５では、ステップＳ５０２で生成されたハッシュ情報を出力する。ステップＳ９０６では、ＬＤＲメタデータとしてＬＤＲの縮小画像の出力があるかどうかを判断する。ＬＤＲ縮小画像が出力される場合には、ステップＳ９０７へ進み、そうでなければステップＳ９１０へ進む。本実施形態では、ＬＤＲ縮小画像の出力があるため、ステップＳ９０７へ進む。ステップＳ９０７では、ＬＤＲ縮小画像をステップＳ５０５で作成されたＬＤＲ縮小画像をＪＰＥＧ圧縮し、その符号量Ｂｓを取得する。ステップＳ９０８では、ＬＤＲ縮小画像のメタデータＩＤ（本実施形態では、０ｘ０１）と、ステップＳ９０７で取得した符号量Ｂｓをそれぞれ出力する。ステップＳ９０９では、ステップＳ９０７で作成したＬＤＲ縮小画像のＪＰＥＧデータを出力する。
【００３６】
ステップＳ９１０では、ＬＤＲメタデータとしてエッジ画像の出力があるかどうかを判断する。エッジ画像が出力される場合には、ステップＳ９１１へ進み、そうでなければステップＳ９１３へ進む。本実施形態の場合、エッジ画像の出力があるため、ステップＳ９１１へ進む。ステップＳ９１１では、エッジ画像のメタデータＩＤ（本実施形態では０ｘ０２）と、ステップＳ５０５で作成したエッジ画像のデータサイズバイトの値をそれぞれ出力する。本実施形態では、エッジ画像のバイト数として１２１５０［バイト］（＝４０５０［バイト／コンポーネント］ｘ３［コンポーネント］）が出力される。ステップＳ９１２では、ステップＳ５０５で作成したエッジ画像を出力する。ステップＳ９１３では、ＬＤＲメタデータとしてマップ画像の出力があるかどうかを判断する。マップ画像が出力される場合には、ステップＳ９１４へ進み、そうでなければ、このフローを終了する。本実施形態では、マップ画像の出力があるので、ステップＳ９１４へ進む。ステップＳ９１４では、マップ画像のメタデータＩＤ（本実施形態では０ｘ０３）と、ステップＳ６０４で作成したマップ画像のバイト数＋１バイトの値を出力する。本実施形態の場合、マップ画像のバイト数は２４３００［バイト］であったため、２４３０１の値が出力される。ステップＳ９１５では、トーンカーブの分割数Ｔを１バイトで出力し、続けて、ステップＳ６０４で作成されたマップ画像を出力し、このフローを終了する。本実施形態では、トーンカーブの分割数Ｔとして０ｘ０４（ＨＥＸ）を出力した後に、２４３００［バイト］のマップ画像が出力される。
【００３７】
図１０（ａ）に本実施形態で出力されるＬＤＲメタデータの出力フォーマットを示す。また、図１０（ａ）の各構造の内容を図１０（ｂ）に示す。ＬＤＲメタデータが保存されていることを示すパラメータＩＤは、４バイトで構成され、文字列“ｌｄｍｄ”、１６進表示で０ｘ６Ｃ６４、６Ｄ６４であるとする。図１０（ａ）におけるＭｉｄ，Ｍｓｉｚｅ，Ｍｃｏｎｔｅｎｔｓの３パラメータは、１つのＬＤＲメタデータに対して１セット出力される。したがって、パラメータＭＮに記載された数のセットがＭＮの後に続く。
【００３８】
本実施形態で出力されるＨＤＲファイルの構成を図１（ｂ）に示す。ＪＰＥＧファイルの１つのＡＰＰマーカ（本実施形態ではＡＰＰ１１）内に、ＨＤＲ情報にアペンドするようにＬＤＲメタデータが格納される。したがって、ＨＤＲ情報と、ＨＤＲ情報が作成された時のＬＤＲ画像から作成したＬＤＲメタデータが、ＨＤＲ拡張データとして一緒に流通することになり、ＬＤＲ画像のみが編集されたことを容易に検出できる。ＬＤＲメタデータの縮小画像と同じようなサムネイル画像が、ＥＸＩＦ情報としてＡＰＰ１に保存されている（図１（ｅ）参照）。ＥＸＩＦデータ（ＡＰＰ１マーカ）を認識できるＬＤＲ編集装置２０２は、ＬＤＲ画像を編集した際に、ＥＸＩＦデータのサムネイル画像を編集後のＬＤＲ画像に合わせて変更する可能性がある。しかし、ＨＤＲ情報を認識できない場合には、ＨＤＲ情報内のＬＤＲメタデータとしての縮小画像を書き換えることはない。したがって、ＨＤＲ情報が作成された時のＬＤＲ画像の情報を、ＨＤＲ情報と共に、ＨＤＲ拡張データとして保存することは非常に有効である。
【００３９】
また、ＬＤＲメタデータとして、ＬＤＲ符号データの復号画像を縮小した画像をメタデータとして持つことで、ある程度の許容範囲を持って、ＬＤＲ画像とＨＤＲ情報の不整合を検出できる。すなわち、Ｎ×Ｎ画素の平均値を用いているため、縮小率Ｎ以下のフィルタ半径によるぼかしや、ノイズ除去、シャープネス、ゴミ取りなどが行われても縮小画像に対しては影響がない。さらに、圧縮パラメータの変更などによる僅かな画素値の変動も、縮小画像には大きな影響を与えない。しかし、画像全体に対するγ補正など、色を変更するような処理の場合には、縮小画像にも影響があるため、処理の前後でＬＤＲ縮小画像は異なる。
【００４０】
また、ＬＤＲメタデータとして、Ｎ×Ｎ画素の平均値から構成されるＬＤＲ縮小画像を使ってエッジ画像を作成するため、ノイズなどの影響がない。そのため、Ｓｏｂｅｌフィルタなどの非常に簡易なエッジ検出フィルタでも、容易にエッジ画像を得ることができる。さらに、閾値を使って、エッジ強度を２値化することで、ＬＤＲメタデータとしての情報量を小さくできる。エッジ情報のみを保存するため、画像全体に対するγ補正など、物体の形状は変化しない処理が行われても、エッジ画像には影響が無い。ＬＤＲ縮小画像に影響がほとんど無いような処理は、エッジ画像に対しても影響がないことは言うまでも無い。
【００４１】
さらに、ＬＤＲメタデータとして、トーンカーブをＴ分割した画素値の範囲を縮小画像の各画素に当てはめたマップ画像を作成するため、より大まかな情報のメタデータが作成できる。画素値のレベルが、トーンカーブの画素値範囲を越えない程度の画像処理であれば、歪曲補正のようなものでも影響がない。マップ画像に影響を与えるような画像処理は、Ｎ×Ｎ［画素］領域よりも大きいオブジェクトの挿入や削除や、モノクロ変換、セピア変換と言った処理に代表される画像の色相を変更するような色変換である。なお、ＬＤＲ縮小画像やエッジ画像に影響を及ぼさない処理は、マップ画像に対しても影響を及ぼさないことは言うまでもない。
【００４２】
本実施形態の方法を使えば、編集の種類によって影響が異なる複数種類のメタデータを、１つのＬＤＲ縮小画像から容易に作成できる。なお、エッジ画像、マップ画像は可逆圧縮符号化を行うことが望ましい。
【００４３】
［第１の実施形態の変形例］
上記第１の実施形態では、１つのＡＰＰマーカ内にＨＤＲ情報とＬＤＲメタデータの両方を格納する方法について説明した。ＡＰＰマーカは、その仕様上、２バイトで表現できるデータ長しか許されない。したがって、画像サイズが大きい場合やＬＤＲメタデータを作成する際の縮小比Ｎが小さい場合には、ＨＤＲ情報とＬＤＲメタデータの両方を１つのＡＰＰマーカ内に収めることができないことが考えられる。そこで、ＨＤＲ情報と同じＡＰＰマーカを持つ複数の領域に、ＬＤＲメタデータを分割して保存しても良い。
【００４４】
このように保存した場合のＨＤＲファイルの構造を図１（ｃ）に示す。図１（ｃ）では、ＨＤＲ情報、ＬＤＲメタデータは共に、ＡＰＰ１１マーカに保存されている例を示している。この場合、ＨＤＲ情報とＬＤＲメタデータが同一のＡＰＰマーカを使い、ＡＰＰ１１を示す０ｘＦＦＥＢ，２バイトで構成されるＡＰＰマーカのデータ長の後に、続けて、図１０（ａ）に示すデータを格納する。したがって、ＡＰＰ１１マーカのデータ長の後ろに、文字列’ｌｄｍｄ’が保存されていれば、ＨＤＲ情報ではなく、ＬＤＲメタデータが格納されている、と判断できる。
【００４５】
また、ＬＤＲメタデータ情報を、メタデータの種類に応じて複数に分けても良い。例えば、本実施形態の４つのＬＤＲメタデータ情報を、パラメータＭＮ＝１である、４つのＡＰＰマーカに保存しても構わない。
【００４６】
さらに、ＬＤＲメタデータ情報の意味的な区切りではなく、データの途中で分割しても良い。たとえば、ＡＰＰマーカには６５５３６［Ｂｙｔｅ］までのデータを格納できるので、ＨＤＲ情報とＬＤＲメタデータの総和が６５５３６［Ｂｙｔｅ］になる単位で機械的に分割しても構わない。このように保存したＨＤＲファイルの構造を図１（ｄ）に示す。この場合、同一のＡＰＰマーカ内のデータは、ファイルの先頭から順につながっているものとして読み出すことで、図１（ｂ）と全く同じデータを得ることができる。
【００４７】
このようにＬＤＲメタデータ情報の格納場所を分割することで、各ＬＤＲメタデータのデータサイズが大きい場合でも、ＨＤＲ情報と共に保存することができる。
【００４８】
さらに、ＬＤＲメタデータをＨＤＲ情報と同じＡＰＰマーカに格納することで、ＨＤＲ情報を認識できない機器によるＬＤＲメタデータの扱いが、ＨＤＲ情報と同様になり、両者が一緒に流通する可能性が高くなる。
【００４９】
［第２の実施形態］
次に、図２のＨＤＲ画像の復号装置２０３が、受信したファイルに入っている、ＨＤＲ情報とＬＤＲ情報の不整合を検出する処理を第２の実施形態として説明する。また、本実施形態では、ＨＤＲ画像の復号装置２０３は、第１の実施形態の方法で作成されたＨＤＲファイル２０５を受信したものとする。また、ＨＤＲファイル２０５には、ＬＤＲメタデータとして、ハッシュ値、縮小画像、エッジ画像、マップ画像の全てのデータが入っているものとする。
【００５０】
図１１は、本実施形態におけるＨＤＲ画像の復号装置２０３のブロック図である。同図で、図３のＨＤＲ画像符号化装置２０１と同じ構成のものには、同じ番号を付与し、ここでの説明は割愛する。３０２は入力部であり、ユーザからの指示や、ＨＤＲ符号化ファイルを含むＪＰＥＧファイルなどを入力する部分である。３０６は、ファイルから抽出したＬＤＲ符号データから、ＬＤＲ画像のメタデータを生成するＬＤＲメタデータ生成部である。１１０１はＨＤＲ画像生成部であり、入力部３０２から入力されたＨＤＲファイルを解析し、ＬＤＲ画像とＨＤＲ情報からＨＤＲ画像を生成（抽出）する部分である。１１０２は不整合検出部であり、入力部３０２から入力されたＨＤＲファイルを解析し、ＨＤＲファイル内のＬＤＲ画像メタデータと、３０６で生成されたＬＤＲ画像のメタデータとを比較し、ＨＤＲ情報とＬＤＲ画像の不整合を検出する。この不整合検出方法については、後に図１２を使って説明する。３０７は表示部であり、通常は液晶ディスプレイなどが用いられる。３０８はメモリであり、ＲＯＭやＲＡＭを含み、処理に必要なプログラム、データ、作業領域などをＣＰＵ３０１に提供する。３０９は通信Ｉ／Ｆ部である。３１０は蓄積部であり、画像データ、プログラムなどを蓄積する部分で、通常はハードディスクなどが用いられる。また、以降のフローチャートの処理に必要な制御プログラムは、蓄積部３１０に格納されているか、メモリ３０８のＲＯＭに格納されているものとする。蓄積部３１０に格納されている場合は、一旦メモリ３０８内のＲＡＭに読み込まれてから実行される。なお、システム構成については、上記以外にも様々な構成要素が存在するが、本発明の主眼ではないので、その説明は省略する。
【００５１】
図１２は、復号装置２０３のＣＰＵ３０１が実行するＨＤＲファイルの復号、並びに、ＨＤＲ画像を表示するフローの図である。以下、図１２を用いて、本実施形態におけるＨＤＲ画像を表示するための処理を説明する。
【００５２】
ステップＳ１２０１では、表示対象のＪＰＥＧファイルを取得する。本実施形態では、ＬＤＲ画像の編集装置２０２から送られてきた、ＨＤＲファイル２０５を表示対象のＪＰＥＧファイルとして取得したものとする。ステップＳ１２０２では、ステップＳ１２０１で取得したＪＥＰＧファイルのＪＰＥＧ符号データを復号し、ＬＤＲ画像を取得する。本実施形態では、ＨＤＲファイル２０５内のＬＤＲ画像２０９の復号画像が得られる。ステップＳ１２０３では、ステップＳ１２０１で取得したＪＰＥＧファイルがＨＤＲファイルであるかどうか判断する。つまり、ＪＰＥＧファイルを解析し、ＨＤＲ情報が格納されているＡＰＰマーカが存在すればＨＤＲファイルと判断し、ステップＳ１２０４へ進み、そうでなければ、ＨＤＲファイルではないと判断し、ステップＳ１２０７へ進む。本実施形態の場合、ＡＰＰ１１マーカが存在するのでＨＤＲファイルであると判断する。ステップＳ１２０４では、ＨＤＲ情報とＬＤＲ画像の不整合を検出し、ＨＤＲ画像の表示判定を行う。この処理については、後に図１３を用いて説明する。ステップＳ１２０５では、ステップＳ１２０４で得られた判定を元に、ＨＤＲ画像を表示するかどうかを決定する（表示制御もしくは出力制御）。表示する場合には、ステップＳ１２０６へ進み、表示しない場合にはステップＳ１２０７へ進む。ステップＳ１２０６では、ステップＳ１２０２で取得したＬＤＲ画像に逆トーンマップ処理を行い、逆トーンマップされた画像とＨＤＲ情報を使ってＨＤＲ画像を復号する。そして、その復号されたＨＤＲ画像を表示する。ステップＳ１２０７では、ステップＳ１２０２で得られたＬＤＲ画像をそのまま表示する。
【００５３】
次に、図１３のフローを用いて、ＨＤＲ画像の表示判定フローの説明をする。また、以降のフローで第１の実施形態と同様の動作をするステップには、第１の実施形態で用いたフローと同じ番号を付与し、ここでの説明は割愛する。
【００５４】
ステップＳ１３０１では、ＨＤＲ情報から差分情報を取得する。ステップＳ１３０１では、ステップＳ１３０１で取得した差分情報からＨＤＲ情報の垂直、水平方向のサイズ（画素数）を取得する。差分情報はＪＰＥＧ圧縮されているため、ＪＰＥＧデータのフレームヘッダ内の値を参照することで、ＨＤＲ情報の垂直、水平方向のサイズを取得できる。本実施形態では、水平方向１９２０画素、垂直方向１０８０画素である。ステップＳ１３０３では、ＬＤＲ画像の水平、垂直方向のサイズを取得する。本実施形態では、ＬＤＲ画像もまたＪＰＥＧ圧縮されているため、同様にフレームヘッダ内の値を参照することで、垂直、水平方向のサイズを取得できる。本実施形態では、水平方向１９２０画素、垂直方向１０８０画素であったとする。ステップＳ１３０４では、ステップＳ１３０２とステップＳ１３０３のそれぞれで取得した水平、垂直方向のサイズが一致するかどうかを判定する。一致していなければ、ＨＤＲファイルの流通の過程で、ＬＤＲ画像のみが編集され、画像サイズが変わってしまったと判断できる。一致していれば、ステップＳ１３０５へ進み、一致していなければ、ステップＳ１３１４へ進む。本実施形態の場合、一致しているので、ステップＳ１３０５へ進む。
【００５５】
ステップＳ１３０５では、ＨＤＲファイル内にＬＤＲメタデータがあるかどうかを判定する。ＬＤＲメタデータがあれば、ステップＳ１３０６へ進み、ＬＤＲ画像とＨＤＲ情報の不整合の検出を行う。ＬＤＲメタデータがなければ、不整合の検出を行うことができないため、ステップＳ１３０９へ進み、ＨＤＲ画像を表示する決定をして、このフローを終了する。ただし、この場合には、ＨＤＲ画像を表示した際に、画質劣化が起こらない保証はない。
【００５６】
本実施形態の場合、ＨＤＲ情報の後に、識別子“ｌｄｍｄ”から始まる図１０（ａ）のデータがあるかどうかで判断でき、ＬＤＲメタデータがあると判断できたものとし、ステップＳ１３０６へ進む。ステップＳ１３０６では、ＬＤＲメタデータにハッシュ値があるかどうかを判断する。具体的には、図１０（ａ）の構造に従ってＬＤＲメタデータを解釈し、メタデータＩＤを示すパラメータＭｉｄ＝０ｘ００の値があれば、ハッシュ値があると判断できる。ハッシュ値があればステップＳ１３０７へ進み、ハッシュ値がなければステップＳ１３１０へ進む。次に、ステップＳ１３０７では、ＬＤＲメタデータからハッシュ値を取得する。具体的には、ステップＳ１３０６で読み取ったＭｉｄ＝０ｘ００に続く２バイトのデータＭｓｉｚｅを読み込む。そして、Ｍｓｉｚｅに記載されたバイト数分、Ｍｃｏｎｔｅｎｔｓを読み込むことで、ＬＤＲメタデータのハッシュ値を取得できる。ステップＳ５０２では、ＨＤＲファイル内のＬＤＲ符号データ２０９からハッシュ値を算出する。ハッシュ値の算出方法は第１の実施形態と同様の方法であるので、ここでの説明は割愛する。ステップＳ１３０８では、ステップＳ１３０７で取得したハッシュ値と、ステップＳ５０２で算出されたハッシュ値を比較する。ハッシュ値が一致すれば、ＨＤＲ情報を作成した時のＬＤＲ符号データと同一であることが確認できる。すなわち、ＬＤＲ画像には編集がなされていないと判定できるため、ステップＳ１３０９へ進む。ハッシュ値が不一致の場合には、ＬＤＲ画像に編集が行われたと判断し、ステップＳ１３１０以降の不整合検出に進む。ステップＳ１３０９では表示画像をＨＤＲ画像にすることと決定し、このフローを終了する。
【００５７】
本実施形態では、ステップＳ１３０８でハッシュ値が一致しなかったものとし、ステップＳ１３１０へ進む。ステップＳ１３１０では、ＬＤＲ画像とＨＤＲ情報の不整合のレベルを検出する。不整合のレベル検出方法については、図１４を用いて、後に詳しく説明する。本実施形態では、不整合のレベルは１〜４の数値で表され、値が大きいほど不整合の度合いが大きい。また、不整合レベルを判定できなかった場合には、不整合レベル−１で表される。ステップＳ１３１１では、ステップＳ１３１０の結果、不整合が大きいか否かを判断する。本実施形態では、不整合レベルが最大値４であるかどうかで判断する。不整合レベルが４であれば、不整合のレベルが大きいと判断し、ステップＳ１３１４へ進む。ステップＳ１３１４では、ＬＤＲ画像とＨＤＲ情報の不整合が大きく、ＨＤＲ情報を保持する価値が無いと判断し、ＨＤＲ情報とＬＤＲメタデータをＨＤＲファイルから削除する。その後、ステップＳ１３１５へ進み、表示画像をＬＤＲ画像にすることと決定し、このフローを終了する。
【００５８】
ステップＳ１３１０で取得された不整合レベルが４未満であれば、不整合は大きくなかったと判断し、ステップＳ１３１２へ進む。ステップＳ１３１２では、不整合の許容レベルを取得する。本実施形態では、ＬＤＲ画像とＨＤＲ情報に不整合があることをユーザに通知（たとえば表示画面に「不整合あり」と表示する）し、ユーザの指示によって不整合の許容レベルが決定され、その値を取得するものとする。ステップＳ１３１３では、ステップＳ１３１２で取得した許容レベルと、ステップＳ１３１０で取得した不整合レベルを比較する。不整合レベルが許容レベル以下であれば、検出された不整合の程度は、ＨＤＲ画像表示に差し支えない、と判断し、ステップＳ１３０９へ進む。ステップＳ１３０９では表示画像をＨＤＲ画像にすることと決定し、このフローを終了する。ステップＳ１３１３で、不整合レベルが許容レベルより大きければ、ＬＤＲ画像とＨＤＲ情報を組み合わせてＨＤＲ画像表示するのは、適切ではない、と判断し、ステップＳ１３１５へ進む。ステップＳ１３１５では、表示画像をＬＤＲ画像にすることと決定し、このフローを終了する。
【００５９】
次に、ステップＳ１３１０の不整合のレベルを検出する方法について、図１４のフローを使って説明する。ステップＳ１４０１では、不整合レベルに−１を代入し、初期化する。ステップＳ１４０２では、ＬＤＲ画像の縮小比Ｎを取得する。これは、図１０（ａ）の構造に従ってＬＤＲメタデータを解釈し、パラメータＭｒの値を読むことで取得できる。ステップＳ１４０３では、ハッシュ値以外のＬＤＲメタデータがＨＤＲファイルの中に入っているかどうかを検出する。これは、ステップＳ１４０２で取得した縮小比Ｎがゼロ以外の値であれば、ハッシュ値以外のＬＤＲメタデータがあると判断できる。縮小比Ｎがゼロであれば、ＬＤＲメタデータとして保存されているのは、ハッシュ値のみであると判断できる。ハッシュ値以外のメタデータがあればステップＳ５０５へ進む。なければ、不整合レベルを検出できないため、不整合レベルを判定できなかったとし、不整合レベルが初期値−１のまま、このフローを終了する。ステップＳ５０５では、ステップＳ１２０２で復号したＬＤＲ画像を、ステップＳ１４０２で取得した縮小比Ｎで縮小した画像（ＬＤＲ縮小画像）を作成する。ＬＤＲ縮小画像の作成方法については、第１の実施形態と同様であるので、ここでの説明は割愛する。ステップＳ１４０４では、ステップＳ５０５で作成した縮小画像による不整合レベルの判定を行う。この判定方法については、後に、図１５を用いて説明する。次に、ステップＳ１４０５では、ステップＳ１４０４で判定された不整合レベルが、１であるかを判断する。不整合レベル＝１は、縮小画像が一致したことを示している。不整合レベルが１であれば、不整合レベルが決定したものとし、このフローを終了する。１以外であれば、縮小画像は一致せず、不整合レベルが確定していないため、ステップＳ１４０６へ進む。ステップＳ１４０６では、エッジ画像による不整合レベルの判定を行う。この判定方法については、後に、図１６を用いて説明する。次に、ステップＳ１４０７では、ステップＳ１４０６で判定された不整合レベルが２であるかどうかを判断する。不整合レベル＝２はエッジ画像が一致したことを示しており、不整合レベルが確定したものとして、このフローを終了する。不整合レベルが２以外であれば、エッジ画像は一致せず、不整合レベルが確定していないため、ステップＳ１４０８へ進む。ステップＳ１４０８ではマップ画像による不整合レベルの判定を行い、このフローを終了する。ステップＳ１４０８の判定方法については、後に、図１７を用いて説明する。
【００６０】
次に、図１５のフローを用いて、縮小画像による不整合レベルの判定方法（ステップＳ１４０４）について説明する。ステップＳ１５０１では、ＬＤＲメタデータに縮小画像があるかどうかを調べる。これは、図１０（ａ）の構造に従ってＬＤＲメタデータを解釈し、メタデータＩＤを示すパラメータＭｉｄが０ｘ０１であるものがあれば、縮小画像があると判断できる。縮小画像があればステップＳ１５０２へ進む。縮小画像がなければ、縮小画像による不整合レベルの判定はできないため、不整合レベル＝−１のまま、このフローを終了する。ステップＳ１５０２では、ＬＤＲメタデータからＪＰＥＧ圧縮された縮小画像を取得し、復号する。ステップＳ１５０３では、画素値差分の許容値Ｄを取得する。これは、ＬＤＲメタデータに含まれる縮小画像も、ＨＤＲファイル内のＬＤＲ画像も共に、非可逆圧縮であるＪＰＥＧ圧縮方式で符号化された結果をデコードして、作成しているためである。そのため、画像自体には何の処理も行わず、ＬＤＲ画像のみ再圧縮しただけであっても、再圧縮前後で画素値が変わってしまう。そのため、縮小画像であっても完全一致しないことがあるため、画素値差分に許容値を持たせる。本実施形態では、許容値Ｄは予め決められた「６」であるものとする。ステップＳ１５０４では、ステップＳ１５０２で復号したＬＤＲメタデータの縮小画像と、図１４のステップＳ５０５で作成したＬＤＲ縮小画像の各画素に対して、色成分ごとに差分を求める。そして、すべての差分値がステップＳ１５０２で取得した閾値Ｄで示す許容範囲内であれば、２つの縮小画像は一致したものと判断し、ステップＳ１５０５へ進む。差分値が閾値Ｄを超えるものが１つでも存在する場合には、２つの縮小画像は一致しなかったと判断し、ステップＳ１５０６へ進む。ステップＳ１５０５では、ハッシュ値は一致しなかったが、縮小画像は一致したことを示す値１を不整合レベルに代入し、このフローを終了する。ステップＳ１５０６では、縮小画像は一致しなかったため、不整合レベルは２以上であると確定する。そのため、不整合レベルに２を代入し、このフローを終了する。
【００６１】
次に、図１６のフローを用いて、エッジ画像による不整合レベルの判定方法（ステップＳ１４０６）について説明する。ステップＳ１６０１では、ＬＤＲメタデータにエッジ画像があるかどうかを調べる。これは、図１０（ａ）の構造に従ってＬＤＲメタデータを解釈し、メタデータＩＤを示すパラメータＭｉｄが０ｘ０２であるものがあれば、エッジ画像があると判断できる。エッジ画像があればステップＳ１６０２へ進む。エッジ画像がなければ、エッジ画像による不整合の判定はできないため、不整合の値を変えずにこのフローを終了する。ステップＳ１６０２では、ＬＤＲメタデータからエッジ画像を取得する。ＬＤＲメタデータからエッジ画像を取得するためには、パラメータＭｉｄに続く２バイトのパラメータＭｓｉｚｅの値を読む。その後、パラメータＭｓｉｚｅに続くデータをＭｓｉｚｅで読み取った値のバイト数読むことで、エッジ画像を得られる。本実施形態では、Ｍｓｉｚｅ＝１２１５０であったとし、Ｍｓｉｚｅパラメータに続く１２１５０［バイト］のデータをエッジ画像として取得する。ステップＳ５０７では、図１４のステップＳ５０５で作成したＬＤＲ縮小画像からエッジ画像を作成する。エッジ画像の作成方法は、第１の実施形態と同様の方法であるので、ここでの説明は割愛する。ステップＳ１６０３では、ステップＳ１６０２で取得したエッジ画像と、ステップＳ５０７で作成したエッジ画像を比較する。一致していれば、ステップＳ１６０４へ進み、不一致であれば、ステップＳ１６０５へ進む。本実施形態の場合、２つのエッジ画像の１２１５０［バイト］のデータをバイトコンペアし、すべて一致していれば、ステップＳ１６０４へ進み、１つでも不一致のバイトがあればステップＳ１６０５へ進む。ステップＳ１６０４では、ハッシュ値や縮小画像は一致しなかったが、エッジ画像は一致したことを示す値２を不整合レベルに代入し、このフローを終了する。ステップＳ１６０５では、エッジ画像が一致しなかったため、不整合レベルは３以上であることが確定する。そのため、不整合レベルに３を代入して、このフローを終了する。
【００６２】
次に、図１７のフローを用いて、マップ画像による不整合レベル判定方法（ステップＳ１４０８）について説明する。ステップＳ１７０１では、ＬＤＲメタデータにエッジ画像があるかどうかを調べる。これは、図１０（ａ）の構造に従ってＬＤＲメタデータを解釈し、メタデータＩＤを示すパラメータＭｉｄが０ｘ０３であるものがあれば、マップ画像があると判断できる。マップ画像があれば、ステップＳ１７０２へ進む。マップ画像がなければ、マップ画像による不整合の判定はできないため、不整合の値を変えずにこのフローを終了する。ステップＳ１７０２では、ＬＤＲメタデータからマップ画像を取得する。ＬＤＲメタデータからトーンカーブの分割数Ｔを取得する。分割数ＴはＭｃｏｎｔｅｎｔｓの先頭１バイトに格納されている。したがって、パラメータＭｉｄに続く２バイトのパラメータＭｓｉｚｅの値を読み、Ｍｓｉｚｅに続く１バイトを読むことで、分割数Ｔが取得できる。本実施形態では、Ｍｓｉｚｅから読み取れるバイト数は、２４３０１であったとする。したがって、Ｍｃｏｎｔｅｎｔｓの先頭１バイトが分割数Ｔであり、その後に続く２４３００［バイト］がマップ画像である。ステップＳ１７０３では、ＬＤＲメタデータからマップ画像を取得する。ステップＳ５０３では、図１４のステップＳ５０５で作成したＬＤＲ縮小画像と、ステップＳ１７０２で取得したトーンカーブの分割数Ｔからマップ画像を作成する。マップ画像の作成方法は、第１の実施形態と同様の方法であるので、ここでの説明は割愛する。ステップＳ１７０４では、直前のステップＳ５０９で作成したマップ画像と、ステップＳ１７０３で取得したマップ画像を比較し、一致していればステップＳ１７０５へ進み、そうでなければ、ステップＳ１７０６へ進む。マップ画像の比較も、エッジ画像の比較と同様に、両者をバイトコンペアすればよい。ステップＳ１７０５では、マップ画像のみ一致したことを示す値３を不整合レベルに代入し、このフローを終了する。ステップＳ１７０６では、マップ画像ですら不一致であったことを示す値４を不整合レベルに代入し、このフローを終了する。
【００６３】
本実施形態の不整合検出方法を用いれば、どのＬＤＲメタデータまでが一致したのかを知ることができる。ＬＤＲメタデータでは検出できる編集のレベルがそれぞれ異なるため、不整合が検出されたとしても、ＨＤＲ画像の使用目的に応じて、ＨＤＲ画像表示とＬＤＲ画像表示を選択することができる。
【００６４】
また、マップ情報が一致しない状態はＨＤＲ情報とＬＤＲ画像の不整合が著しく、ＨＤＲ表示は不可能であると判断できる。つまり、メタデータとしてのＨＤＲ情報の価値の判断を行い、ＨＤＲ情報の保存・削除の判定が容易に行える。そのため、ＨＤＲ情報の削除を容易に判断でき、ファイルサイズを小さくすることができる。
【００６５】
なお、縮小画像の不一致、エッジ画像の不一致、マップ画像の不一致の箇所は、いずれもＬＤＲ縮小画像のサイズ内の画素位置で検出できる。不一致であると判定した水平、垂直の画素位置それぞれをＮ倍すれば、ＬＤＲ画像の不一致箇所を特定できる。そこで、ユーザの操作に応じて、縮小画像の不一致箇所、エッジ画像の不一致箇所、マップ画像の不一致箇所を表すマークを、ＬＤＲ画像に重畳表示させても良い。
【００６６】
［第２の実施形態の変形例］
本実施形態では、不整合の許容レベルと検出された不整合レベルを用いて、ＨＤＲ画像表示、ＬＤＲ画像表示、あるいはＨＤＲ情報の削除の３種類を自動で選択した。しかし、不整合レベルをユーザに提示して、上記３種類の動作のいずれかをユーザに選択させても良い。
【００６７】
たとえば、ハッシュ値が一致した場合には、第２の実施形態で説明したのと同様に、ユーザに通知せずにＨＤＲ表示を行う。ハッシュ値が一致せず、他のＬＤＲメタデータによる不整合が検出できない場合、すなわち不整合レベルが−１の場合には、たとえば、図１８（ａ）のようなダイアログを表示し、ＨＤＲ表示の有無をユーザに選択させ、その選択に応じた処理を行う。
【００６８】
ハッシュ値が一致せず、ＬＤＲメタデータの縮小画像が一致した場合、すなわち、不整合レベルが１の場合には、たとえば、図１８（ｂ）のようなダイアログを表示し、ＨＤＲ表示の有無をユーザに選択させる。
【００６９】
ＬＤＲメタデータの縮小画像が一致しない、またはＬＤＲメタデータのエッジ画像が一致した場合、すなわち不整合レベルが２の場合には、たとえば、図１８（ｃ）のようなダイアログを表示し、ＨＤＲ表示の有無をユーザに選択させる。
【００７０】
ＬＤＲメタデータのエッジ画像が一致しない、またはＬＤＲメタデータのマップ画像が一致した場合、すなわち不整合レベルが３の場合には、たとえば、図１８（ｄ）のようなダイアログを表示し、ＨＤＲ表示の有無をユーザに選択させる。
【００７１】
ＬＤＲメタデータのマップ画像が一致しない場合、すなわち不整合レベルが４の場合には、たとえば、図１８（ｅ）のようなダイアログを表示し、ＨＤＲ情報を削除するか否かをユーザに選択させる。
【００７２】
［第３の実施形態］
上記第２の実施形態では、すべてのＬＤＲメタデータが入っているＨＤＲファイルを受信し、ＨＤＲ情報とＬＤＲ画像の不整合が検出された場合に、不整合の許容レベルを決定し、ＨＤＲで表示するかＬＤＲで表示するかを決定した。
【００７３】
しかし、ＨＤＲ画像の符号化装置２０１が、ＬＤＲ画像への編集がノイズ除去などのフィルタ半径の小さい画像処理までであれば、ＨＤＲ表示を許可したい場合には、ＬＤＲメタデータとして、縮小画像のみを生成することが考えられる。つまり、１つのＬＤＲメタデータしか含まれていない場合には、そのＬＤＲメタデータにより不整合が検出された場合には、ＬＤＲ画像を表示し、不整合が検出されなければＨＤＲ画像を表示すればよい。
【００７４】
本第３の実施形態では、ＬＤＲメタデータが１種類だけ保存されているＨＤＲファイルを受信した、ＨＤＲ画像復号装置２０３の動作を、図１９を用いて説明する。なお、第１、第２の実施形態と同様の動作をするステップには、同番号を付与し、詳しい説明は割愛する。
【００７５】
ステップＳ１３０１〜ステップＳ１３０４は、第２の実施形態のＨＤＲ表示判定フローと同様の動作をする。ステップＳ１３０４でＨＤＲ情報とＬＤＲ画像の水平、垂直方向のサイズが一致しなければ、ステップＳ１３１４へ進む。ステップＳ１３１４では、第２の実施形態と同様にＨＤＲ情報とＬＤＲメタデータを、ＨＤＲファイルから削除する。その後、ステップＳ１３１５へ進み、表示画像としてＬＤＲ画像を選択し、このフローを終了する。ステップＳ１３０４で、水平、垂直方向のサイズが一致すれば、ステップＳ１９０１へ進む。ステップＳ１９０１では、ＬＤＲメタデータをＨＤＲファイル内のＪＰＥＧ圧縮されたＬＤＲ画像と比較する。この比較方法については、後に図２０を用いて、詳しく説明する。ステップＳ１９０１では、比較結果として、一致または不一致のいずれかの値が出力される。ステップＳ１９０２では、ステップＳ１９０１の結果から、ＬＤＲメタデータが一致したかどうかを判定する。すなわち、ステップＳ１９０１の出力結果が一致であれば、ステップＳ１３０９へ進み、不一致であれば、ステップＳ１３１４へ進む。ステップＳ１３１４へ進んだ場合は、上述のようにステップＳ１３１５へと進み、このフローを終了する。ステップＳ１３０９へ進んだ場合は、表示画像としてＨＤＲ画像を選択し、このフローを終了する。
【００７６】
次に、図２０を用いて、ＬＤＲメタデータの比較方法について説明する。ステップＳ２００１では、ＨＤＲファイル内にＬＤＲメタデータの情報から、ＬＤＲ縮小比率ＮとメタデータＩＤを取得する。すなわち、ＨＤＲ情報を解析し、図１０（ａ）のフォーマットに従ってデータを読み、パラメータＭｒとＭｉｄからそれぞれＬＤＲ縮小比率ＮとメタデータＩＤを取得する。ステップＳ２００２では、ステップＳ２００１で取得した、メタデータＩＤがハッシュ値を表しているかを判断する。本実施形態の場合、Ｍｉｄ＝０ｘ００であればハッシュ値であったと判断し、ステップＳ１３０７、ステップＳ５０２、ステップＳ１３０８と進み、ＬＤＲメタデータのハッシュ値と、ＬＤＲ符号データから生成されたハッシュ値が一致するかどうかを調べる。それぞれのステップの動作は、第１、第２の実施形態で説明しているので、ここでの詳しい説明は割愛する。ステップＳ１３０８でハッシュ値が一致していれば、ステップＳ２００３へ進み、比較結果として一致を出力し、このフローを終了する。ステップＳ１３０８でハッシュ値が一致しなければ、ステップＳ２００４へ進み、比較結果として不一致を出力し、このフローを終了する。
【００７７】
ステップＳ２００２で、Ｍｉｄがハッシュ値以外であれば、ステップＳ５０５へ進む。ステップＳ５０５では、ステップＳ２００１で取得したＬＤＲ縮小比と、ＨＤＲファイル内のＬＤＲ画像を使って、ＬＤＲ縮小画像を作成する。ステップＳ２００５では、ステップＳ２００１で取得したメタデータＩＤが、縮小画像を表しているかを判断する。本実施形態の場合、Ｍｉｄ＝０ｘ０１であれば縮小画像を表していると判断し、ステップＳ１５０２へ進む。Ｍｉｄが縮小画像でなければ、ステップＳ２００６へ進む。ステップＳ１５０２〜ステップＳ１５０４は、第２の実施形態と同様の動作であるので、ここでの説明は割愛する。ステップＳ１５０４で縮小画像の各画素の差が閾値Ｄで示す許容値以下であれば、縮小画像は一致したものとして、ステップＳ２００３へ進む。そうでなければ、縮小結果は一致しなかったものとして、ステップＳ２００４へ進む。
【００７８】
ステップＳ２００６では、ステップＳ２００１で取得したメタデータＩＤが、エッジ画像を表しているかを判断する。エッジ画像で表していれば、ステップＳ１６０２へ進み、そうでなければ、ステップＳ１７０２へ進む。ステップＳ１６０２へ進むと、ステップＳ５０７、ステップＳ１６０３と進み、ＬＤＲメタデータのエッジ画像と、ＨＤＲファイル内のＬＤＲ画像から作成されたエッジ画像が一致するかどうかを判断する。この動作については、第１、第２の実施形態で説明した動作と同様である。ステップＳ１６０３で、エッジ画像が一致したと判断すれば、ステップＳ２００３へ進み、一致しないと判断すれば、ステップＳ２００４へ進む。
【００７９】
ステップＳ２００６からステップＳ１７０２へ進んだ場合、ＬＤＲメタデータはマップ画像であると特定できる。ステップＳ１７０２、ステップＳ１７０３、ステップＳ５０９、ステップＳ１７０４と進み、ＬＤＲメタデータとしてのマップ画像と、ＨＤＲファイル内のＬＤＲ画像から作成されたマップ画像が一致するかどうかを判断する。一致する場合は、ステップＳ２００３へ進み、一致しない場合は、ステップＳ２００４へ進む。
【００８０】
以上、本第３の実施形態のように、ＬＤＲメタデータが１種類しか無い場合には、不整合の検出レベルをＨＤＲ画像生成装置が決定していると言える。つまり、そのＬＤＲメタデータが一致しない場合には、ＨＤＲ画像ではなく、ＬＤＲ画像を表示するべきであると判断できる。したがって、ＬＤＲメタデータが一致しない場合には、ＨＤＲ情報の価値がないものと容易に推測できるため、ＨＤＲ情報をファイルから削除し、ファイルサイズを小さくすることができる。
【００８１】
また、本実施形態では、ＨＤＲファイル内にある１種類のＬＤＲメタデータによって不整合を検出したか、しないかで自動的に、ＬＤＲ表示とＨＤＲ表示を切り替えたが、第２の実施形態の変形例のように、ダイアログ表示しても良い。ＨＤＲファイル内にある１種類のＬＤＲメタデータが不一致であることは、ＨＤＲ作成者の不整合の許容レベルを超えているため、ＨＤＲ表示されることがない。したがって、ＬＤＲメタデータによって不整合を検出した場合、図１８（ｆ）のようなダイアログを表示し、ＨＤＲ情報を削除することをユーザに選択させても良い。もちろん、第２の実施形態の変形例で示したように、不整合レベルに応じたダイアログ（図１８（ａ）〜（ｅ））を表示しても良い。
【００８２】
［第４の実施形態］
第１乃至３の実施形態では、ＬＤＲ画像の編集装置２０２はＨＤＲデータを解釈できず、ＬＤＲ画像のみを編集する例を示した。その結果により生じる編集後のＬＤＲ画像２０９とＨＤＲ情報２０６の不整合を、ＨＤＲ画像の復号装置２０３が検出し、ＨＤＲ情報２０６の破棄を決定・実行していた。
【００８３】
本第４の実施形態では、ＬＤＲ画像の編集装置２０２が、ＨＤＲ情報を認識できるが、ＬＤＲ画像しか編集できない場合について説明する。本実施形態のＬＤＲ画像の編集装置２０２は、ＬＤＲ画像の編集内容に応じて、ＨＤＲ情報との不整合レベルを判定し、ＨＤＲ情報を削除するか否かを判断する。
【００８４】
図２１は、本実施形態におけるＬＤＲ画像編集処理のフローを示したフローチャートである。以下、図２１を用いて、本実施形態におけるＬＤＲ画像編集処理を説明する。また、以降のフローで第１乃至第３の実施形態と同様の動作をするステップには、第１乃至第３の実施形態で用いたフローと同じ番号を付与し、ここでの説明は割愛する。
【００８５】
ステップＳ２１０１では、編集対象のＨＤＲファイルを取得する。本実施形態では、ネットワークを介して、ＨＤＲファイルを取得したものとする。ステップＳ２１０２では、ＨＤＲファイルのフォーマットを解釈することで、ＬＤＲ画像のＪＰＥＧ符号データを取得する。ステップＳ１２０２では、ステップ２１０１で取得したＪＰＥＧ符号データを復号し、ＬＤＲ画像を取得する。ステップＳ１２０７では、ステップＳ２１０２で復号したＬＤＲ画像を表示する。ステップＳ２１０３では、ＬＤＲ画像の編集方法を選択する。本実施形態では、画像全体に対するシャープネス処理、ノイズ除去、エッジ保存型平滑化処理の３つの編集処理を選択できるものとする。エッジ保存型平滑化処理の処理方法は、バイラテラルを始め、様々な方法が提案されている。どの方法を用いてもよいが、本実施形態では、バイラテラルフィルタを用いるものとする。そして、ユーザがキーボードやマウスなどのポインティングシステムなどの入力部３０２から編集方法とその強度を指示する。ステップＳ２１０４では、ステップＳ１２０２で復号したＬＤＲ画像に対して、ステップＳ２１０３で選択された編集方法によって、編集を行う。ステップＳ２１０５では、ステップＳ２１０４で行った編集処理が、編集後のＬＤＲ画像と、ファイル内に保存されているＨＤＲ情報との不整合が大きくなるような編集であったか判定する。本実施形態では、シャープネス処理とノイズ除去は、その強度によらず、不整合が大きくなるような編集ではないと判断される。エッジ保存型平滑化処理は、その保存するエッジ強度が予め決められた値未満であれば、不整合が小さい編集と判断され、エッジ強度が予め決められた値以上であれば、不整合が大きい編集と判断されるものとする。保存するエッジ強度がある程度より強い場合には、一種の減色処理のようになり、ＣＧや油絵のような画像になるためである。なお、不整合の大小の判定のためのテーブル（編集種類そのものが不整合を起こすもの、エッジ強調等の編集項目における編集する程度で不整合が発生する場合にはその不整合と見なせる閾値）を用意しておき、それに基づき判定するものとする。ステップＳ２１０５にて不整合が大きい編集と判断された場合には、ステップＳ１３１４へ進み、そうでなければ、ステップＳ２１０６に進む。ステップ１３１４では、ＨＤＲ情報と、ＬＤＲメタデータを削除する。実施形態では、ＨＤＲファイル内に格納されていたＡＰＰ１１マーカをすべて削除することで、ＨＤＲ情報を削除できる。また、ＡＰＰ１１マーカをすべて削除すると、ＨＤＲ情報と共に、一緒に保存されているＬＤＲメタデータも同時に削除されることになる。そして、ステップＳ２１０６にてファイルとして保存し、本処理を終える。一方、ステップＳ２１０５でＮｏの判定された場合、ステップＳ１３１４の処理はスキップするので、ＨＤＲ情報、ＬＤＲメタデータは維持されたまま、編集後の画像をＪＰＥＧデータとして１つのファイルとして保存することになる。
【００８６】
本実施形態のＬＤＲ画像編集装置は、ＨＤＲ情報の存在を認識できるが、その編集まではできないものである。このＬＤＲ画像編集装置が、ＬＤＲ画像のみを編集した後に、それに付随するＨＤＲ情報との不整合を判定する。そして、もしＨＤＲ情報と編集後のＬＤＲの不整合が、ある程度大きいと判断されると、他装置に符号化データを出力する前に、ＨＤＲ情報の部分を削除する。これによれば、たとえ編集後のファイルを受信した他装置（復号装置２０３）がＬＤＲメタデータを利用した前述の各種制御を行う必要がなくなる。
【００８７】
［第５の実施形態］
上記第４の実施形態では、ＬＤＲ画像の編集装置２０２が、ＨＤＲ情報の存在を認識はできるが、ＬＤＲ画像しか編集できない場合について説明したが、本発明はこれに限らない。例えば、ＨＤＲ情報の存在を認識でき、かつ編集もできるが、何等かの理由でＬＤＲしか編集しない場合などにも適用できる。具体的には、モバイル端末上で省電力モードで動作しており、ＬＤＲ画像の表示・編集しかできない場合などが想定される。図２２は、そのような場合の編集処理のフローを示したフローチャートである。以下、図２２を用いて、本第５の実施形態におけるＬＤＲ画像の編集処理を説明する。
【００８８】
また、以降のフローで第４の実施形態と同様の動作をするステップには、第4の実施形態で用いたフローと同じ番号を付与し、ここでの説明は割愛する。
【００８９】
ステップＳ２１０１では、ＨＤＲファイルを取得する。ステップＳ２１０２ではＨＤＲファイルからＬＤＲ画像のＪＰＥＧ符号データを抽出する。ステップＳ１２０２では、ステップＳ２１０２で抽出したＪＰＥＧ符号データを復号し、ＬＤＲ画像を取得する。ステップＳ２２０１では、ＬＤＲ画像のみを編集するかどうかを判断する。本実施形態の場合、省電力モードで動作している場合には、ＬＤＲ画像のみを編集すると判断し、ステップＳ２１０７へ進む。省電力モードではない通常モードで動作している場合には、ＬＤＲ画像ではなくＨＤＲ画像を編集すると判断し、ステップＳ１２０６へ進む。ステップＳ２１０７からステップＳ１３１４までは第４の実施形態４と同様の動作であるので、ここでの説明は割愛する。ステップＳ２２０１からステップＳ１２０６へ進むと、ＬＤＲ画像に逆トーンマップ処理を行い、逆トーンマップされた画像と、ＨＤＲ情報を使ってＨＤＲ画像を復号し、表示する。ステップＳ２２０２では、ＨＤＲ画像の編集方法を選択する。本実施形態では、ＨＤＲ画像全体に対するシャープネス処理、ノイズ除去、エッジ保存型平滑化処理、ガンマ補正処理、歪曲補正の５つの編集処理を選択できるものとする。そして、ユーザがキーボードやマウスなどのポインティングシステムなどの入力部３０２から編集方法とその強度やパラメータを指示する。ステップＳ２２０３では、ＨＤＲ画像に対して、ステップＳ２２０２で選択された編集方法で編集する。ステップＳ２２０４では、ステップＳ２２０３から得られる編集後のＨＤＲ画像からＨＤＲファイルを生成する。ステップＳ２２０４の処理は図４の処理フローと同一であるので、ここでの説明は割愛する。最後に、ステップＳ２２０５にて、編集結果としてファイルとして記憶媒体上に保存し、本処理を終える。
【００９０】
［第６の実施形態］
上記第５の実施形態では、省電力モードの際に編集方法やその強度によってＨＤＲ情報を削除するかどうかを判定したが、ＨＤＲ情報を削除する必要性が無くなるように、編集方法を固定することも有効である。例えば省電力モードの際には、ＨＤＲ情報を削除する必要がない編集方法として、シャープネス処理とノイズ除去しか選択できないようにしても良い。
【００９１】
上記ＬＤＲ画像の表示・編集しかできない場合として、省電力モードを例として説明したが、本発明はこれに限らない。例えば、メモリ上にＨＤＲ画像用の容量が確保できない場合など、その他の都合によりＬＤＲ画像だけで表示・編集する事例にも適用可能であることは言うまでもない。
【００９２】
［その他の変形例］
本実施形態では、縮小画像作成時にＮ×Ｎ［画素］の平均値を１画素としたが、Ｎ×Ｎ画素の画素値の中の中央値でも良い。中央値を用いると、ＬＤＲ縮小画像の作成にかかる時間は短縮できる。この場合は、フィルタ処理により変更された画素値が、中央値付近の値であると、縮小画像がフィルタ処理前と多少変わってしまうため、不整合レベル判定時には、画素値許容度を平均値の場合よりも緩やかにする必要がある。
【００９３】
Ｎ×Ｎ画素のブロックから１画素の値を算出する方法が複数あっても良く、その場合には、ＬＤＲメタデータの情報にその算出方法の識別子も出力するべきである。識別子の出力場所は、縮小画像の符号データの先頭（Ｍｃｏｎｔｅｎｔｓの先頭）でも良いし、あるいは、メタデータＩＤの上位４ｂｉｔを使用するなど、Ｍｉｄに含めても良い。
【００９４】
本実施形態では、エッジ画像作成時により注目画素を重視するｓｏｂｅｌフィルタを用いていたが、より簡易なＰｒｅｗｉｔｔフィルタを予め決められたエッジ検出フィルタとしても良い。また、使用できるエッジ検出フィルタが複数あっても良く、その場合には、ＬＤＲメタデータの情報にエッジ検出フィルタの識別子も出力するべきである。識別子の出力場所は、エッジ画像の符号データの先頭（Ｍｃｏｎｔｅｎｔｓの先頭）でも良いし、あるいは、メタデータＩＤの上位４ｂｉｔを使用するなど、Ｍｉｄに含めても良い。
【００９５】
本実施形態では、ＬＤＲメタデータであるエッジ画像やマップ画像を、圧縮せずにＨＤＲファイルに保存したが、これらのデータを圧縮してから保存しても良い。ＬＤＲメタデータを圧縮することでＬＤＲメタデータの生成や読み出しに時間がかかってしまうが、ＬＤＲメタデータのデータサイズを小さくすることができる。なお、圧縮方式としては、ランレングス符号化など可逆圧縮方式の方が好ましい。また、エッジ画像やマップ画像の圧縮方式が複数ある場合、どの圧縮方式で圧縮したのかを一意に示す識別子を出力するべきである。識別子の出力場所は、エッジ画像の符号データの先頭（Ｍｃｏｎｔｅｎｔｓの先頭）でも良いし、あるいは、メタデータＩＤの上位４ｂｉｔを使用するなどＭｉｄに含めても良い。
【００９６】
ＬＤＲ画像メタデータとしてＬＤＲ画像の縮小画像を使用する場合、ＬＤＲメタデータの符号化方式としてＬＤＲ画像と同じ符号化方式であるＪＰＥＧを使用することで、符号化および復号時に１つの圧縮方式のみをサポートすれば良い。
【００９７】
ＬＤＲ画像メタデータとして、ＬＤＲ画像の縮小画像を圧縮する際には、ＪＰＥＧ２０００符号化方式を使っても良い。ＪＰＥＧ２０００符号化方式を使う場合、ＨＤＲ画像符号化装置および復号装置は、ＬＤＲ画像の符号化方式であるＪＰＥＧと、ＬＤＲ画像メタデータの符号化方式であるＪＰＥＧ２０００の両方をサポートする必要がある。しかし、復号側で不整合の検出に利用する解像度レベルを選択することができる。たとえば、縮小率Ｎ＝８のＬＤＲ縮小画像を２つの解像度レベル０、１を持つＪＰＥＧ２０００符号化データにした場合を考える。低解像度レベル０の復号結果は、縮小率Ｎ＝１６の画像サイズと同じであるため、フィルタ半径が１６以下の編集処理は検出できない。一方、高解像度レベル１の復号結果は、縮小率Ｎ＝８の画像サイズと同じであるため、フィルタ半径８以下の編集処理は検出できないが、フィルタ半径が８より大きい編集処理は検出できる。つまり、低解像度レベルの復号結果を用いて不整合の検出を行えば、縮小率Ｎよりも大きいフィルタ半径による編集も、不整合として検出しなくなる。このように、復号側で不整合の検出レベルを変更することが容易になる。
【００９８】
なお、本実施形態では、ＨＤＲ情報とＬＤＲ画像のメタデータをＡＰＰ１１マーカ内に格納する例を示したが、格納先のＡＰＰマーカはＡＰＰ１１に限られるものではない。ＬＤＲメタデータの格納先は、ＨＤＲ情報と同じＡＰＰマーカであれば良い。
【００９９】
また、本実施形態では、ＬＤＲ符号データの同一性を検証するメタデータとしてハッシュ値を用いたが、ＬＤＲ符号データの一部とそのデータの位置（符号データ先頭からのオフセット値）でも良い。ＬＤＲ符号データは非可逆圧縮方式のＪＰＥＧ符号化方式を用いている。そのため、再圧縮前後で符号データが変化するため、符号データの一部とそのオフセットという簡易なデータであっても、符号データの同一性を検証できる。
【０１００】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015035798.tif 000003
【図２】
2015035798.tif 000004
【図３】
2015035798.tif 000005
【図４】
2015035798.tif 000006
【図５】
2015035798.tif 000007
【図６】
2015035798.tif 000008
【図７】
2015035798.tif 000009
【図８】
2015035798.tif 000010
【図９】
2015035798.tif 000011
【図１０】
2015035798.tif 000012
【図１１】
2015035798.tif 000013
【図１２】
2015035798.tif 000014
【図１３】
2015035798.tif 000015
【図１４】
2015035798.tif 000016
【図１５】
2015035798.tif 000017
【図１６】
2015035798.tif 000018
【図１７】
2015035798.tif 000019
【図１８】
2015035798.tif 000020
【図１９】
2015035798.tif 000021
【図２０】
2015035798.tif 000022
【図２１】
2015035798.tif 000023
【図２２】
2015035798.tif 000024