(57)【要約】【課題】電子透かしデータの埋め込みによる画質劣化を小さくする透かし埋め込み付きＪＰＥＧ画像データを出力し、その画像データに対する改ざんを検出する。【解決手段】ＪＰＥＧ符号化方法における量子化後に、電子透かしデータに対し、所定の誤り検出符号を使って符号化処理を行い、誤り検出符号データを生成する（Ｓ３０７）。その誤り検出符号データを埋め込む画像コンポーネントを選択する（Ｓ３０８）。選択した画像コンポーネントに含まれるＤＣＴブロックを、１グループに含まれるＤＣＴブロック数が、誤り検出符号化後のビット数と同じ数になるようにグループ分けを行う（Ｓ３０９）。各ＤＣＴブロックに対し、量子化係数の部分集合に基づいて誤り検出符号データを生成し埋め込む（Ｓ３１０）。そして、エントロピー圧縮以降の処理を行い、ＪＰＥＧ画像データを出力する。さらに、そのＪＰＥＧ画像データに対し、誤り検出処理を行う。【選択図】図１
2009124300.tif 000002
【特許請求の範囲】
【請求項１】
記憶部と、入力部と、
該記憶部からデジタル画像データを入力部を使って入力する画像入力手段と、
ＹＣｂＣｒ変換手段と、
ダウンサンプリング手段と、
ＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）手段と、
量子化手段と、
エントロピー圧縮手段と、
ＪＦＩＦ（ＪＰＥＧ  Ｆｉｌｅ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｏｒｍａｔ）形式へ整形する整形手段と、
を備え、該デジタル画像データに対し、該ＹＣｂＣｒ変換手段と、該ダウンサンプリング手段と、該ＤＣＴ手段と、該量子化手段と、を使って、
該デジタル画像データを量子化し、ＤＣＴブロックに含まれる量子化係数を取得し、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）符号化する透かし埋め込み付きＪＰＥＧ符号化装置であって、
前記記憶部から電子透かしデータを入力部を使って入力する透かしデータ入力手段と、
入力された電子透かしデータに対し、所定の誤り検出符号を使って符号化処理を行い、誤り検出符号データを生成する透かしデータ誤り検出符号化手段と、
生成された誤り検出符号データを埋め込む画像コンポーネントをＹ成分，Ｃｂ成分，Ｃｒ成分の中から選択する画像コンポーネント選択手段と、
前記選択した画像コンポーネントに含まれるＤＣＴブロックを、１グループに含まれるＤＣＴブロック数が、誤り検出符号化後のビット数と同じ数になるようにグループ分けを行うＤＣＴブロックグループ分割手段と、
各グループに含まれるＤＣＴブロックに対し、前記量子化係数の低中周波数成分である部分集合に基づいて誤り検出符号データを生成し埋め込む誤り検出符号データ埋め込み手段と、
を備えることを特徴とする透かし埋め込み付きＪＰＥＧ符号化装置。
【請求項２】
請求項１に記載の透かし埋め込み付きＪＰＥＧ符号化装置において、
前記誤り検出符号データ埋め込み手段が、
前記量子化係数から低中周波数成分を選び出すため、左上頂点からの距離を横方向Ｘマス、縦方向Ｙマスとして条件「α＜Ｘ＋Ｙ＜β（α，βは閾値）」を満たす台形状の部分集合を選択する手段と、
前記台形状の部分集合中の値を吟味して絶対値の最大値と次点の値である次点値を特定する絶対値の最大値と次点値選択手段と、
前記誤り検出符号データを構成する各ビットと次点値とに基づいて前記絶対値の最大値を調整する最大値調整手段と、
を備えることを特徴とする透かし埋め込み付きＪＰＥＧ符号化装置。
【請求項３】
請求項２に記載の透かし埋め込み付きＪＰＥＧ符号化装置において、
前記絶対値の最大値と次点値選択手段が、
前記絶対値の最大値が複数個ある場合に、逆ジグザグスキャンの順序で、最初に現れたものを最大値とし、次に現れたものを次点値とし、
該絶対値の最大値が１個で次点値が２個以上ある場合は、逆ジグザグスキャンの順序で、２個以上の次点値のうち最初のものを採用する手段、
を備える
ことを特徴とする透かし埋め込み付きＪＰＥＧ符号化装置。
【請求項４】
請求項２また３に記載の透かし埋め込み付きＪＰＥＧ符号化装置において、
前記最大値調整手段が、
前記誤り検出符号データにおけるビット値「１」を埋め込む場合は、絶対値の最大値から次点値を減じた値が奇数になるように、
該誤り検出符号データにおけるビット値「０」を埋め込む場合は、絶対値の最大値から次点値を減じた値が偶数になるように、
該絶対値の最大値に対し、任意正奇数を減算するか、任意正奇数を加算するか、何もしないかの３つの演算処理から選択する手段、
を備える
ことを特徴とする透かし埋め込み付きＪＰＥＧ符号化装置。
【請求項５】
記憶部と、入力部と、
該記憶部から請求項１乃至４のいずれかに記載の透かし埋め込み付きＪＰＥＧ符号化装置によって、符号化されたＪＰＥＧ画像データを入力部を使って入力する画像入力手段と、
ＪＦＩＦ形式からデータ列へ整形する整形手段と、
エントロピー復号手段と、
逆量子化手段と、
逆ＤＣＴ手段と、
色空間変換手段と、
を備え、該ＪＰＥＧ画像データに対し、ＪＦＩＦ形式からデータ列へ整形する整形手段と、エントロピー復号手段と、を使って、
該ＪＰＥＧ画像データに応じたＤＣＴブロックの量子化係数を取得し、復号する装置に使用する
透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置であって、
前記ＪＰＥＧ画像データの画像コンポーネントをＹ成分，Ｃｂ成分，Ｃｒ成分の中から選択する画像コンポーネント選択手段と、
前記選択した画像コンポーネントに含まれるＤＣＴブロックを、１グループに含まれるＤＣＴブロック数が、誤り検出符号化後のビット数と同じ数になるようにグループ分けを行うＤＣＴブロックグループ分割手段と、
前記各グループの各ＤＣＴブロックについて、誤り検出対象データにおけるビット値「１」もしくは「０」を検出し、誤り検出対象データを出力する誤り検出対象データ検出手段と、
前記出力された誤り検出対象データに対し、請求項１乃至４に記載の透かし埋め込み付きＪＰＥＧ符号化装置で用いた所定の誤り検出符号に基づく誤り検出復号化処理を行い、
その処理結果として、誤りの有無を取得し、
誤りが無ければ、予め埋め込まれた埋め込み透かしデータを取得し、
誤りが有れば、該誤りを含むグループを特定する
誤り検出復号手段と、
を備えることを特徴とする透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置。
【請求項６】
請求項５に記載の透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置において、
前記誤り検出対象データ検出手段が、
前記量子化係数から低中周波数成分を選び出すため、左上頂点からの距離を横方向Ｘマス、縦方向Ｙマスとして条件「α＜Ｘ＋Ｙ＜β（α，βは閾値）」を満たす台形状の部分集合を選択する手段と、
前記台形状の部分集合中の値を吟味して絶対値の最大値と次点の値である次点値を特定する絶対値の最大値と次点値選択手段と、
前記絶対値の最大値から次点値を減算した値が偶数か奇数かをチェックし、
該値が偶数であった場合、誤り検出対象データにおけるビット値「０」を出力し、
該値が奇数であった場合、誤り検出符号データにおけるビット値「１」を出力する手段と、
を備える
ことを特徴とする透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置。
【請求項７】
請求項６に記載の透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置において、
前記絶対値の最大値と次点値選択手段が、
前記絶対値の最大値が複数個ある場合に、逆ジグザグスキャンの順序で、最初に現れたものを最大値とし、次に現れたものを次点値とし、
該絶対値の最大値が１個で次点値が２個以上ある場合は、逆ジグザグスキャンの順序で、２個以上の次点値のうち最初のものを採用する手段、
を備える
ことを特徴とする透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置。
【請求項８】
記憶部と、入力部と、
該記憶部からデジタル画像データを入力部を使って入力する画像入力手段と、
ＹＣｂＣｒ変換手段と、
ダウンサンプリング手段と、
ＤＣＴ手段と、
量子化手段と、
エントロピー圧縮手段と、
ＪＦＩＦ形式へ整形する整形手段と、
を備え、該デジタル画像データに対し、該ＹＣｂＣｒ変換手段と、該ダウンサンプリング手段と、該ＤＣＴ手段と、該量子化手段と、を使って、
該デジタル画像データを量子化し、ＤＣＴブロックに含まれる量子化係数を取得し、ＪＰＥＧ符号化する装置に使用する
透かし埋め込み付きＪＰＥＧ符号化方法であって、
前記記憶部から電子透かしデータを入力部を使って入力する透かしデータ入力ステップと、
入力された電子透かしデータに対し、所定の誤り検出符号を使って符号化処理を行い、誤り検出符号データを生成する透かしデータ誤り検出符号化ステップと、
生成された誤り検出符号データを埋め込む画像コンポーネントをＹ成分，Ｃｂ成分，Ｃｒ成分の中から選択する画像コンポーネント選択ステップと、
前記選択した画像コンポーネントに含まれるＤＣＴブロックを、１グループに含まれるＤＣＴブロック数が、誤り検出符号化後のビット数と同じ数になるようにグループ分けを行うＤＣＴブロックグループ分割ステップと、
各グループに含まれるＤＣＴブロックに対し、前記量子化係数の低中周波数成分である部分集合に基づいて誤り検出符号データを生成し埋め込む誤り検出符号データ埋め込みステップと、
を有することを特徴とする透かし埋め込み付きＪＰＥＧ符号化方法。
【請求項９】
請求項８に記載の透かし埋め込み付きＪＰＥＧ符号化方法において、
前記誤り検出符号データ埋め込みステップが、
前記量子化係数から低中周波数成分を選び出すため、左上頂点からの距離を横方向Ｘマス、縦方向Ｙマスとして条件「α＜Ｘ＋Ｙ＜β（α，βは閾値）」を満たす台形状の部分集合を選択するステップと、
前記台形状の部分集合中の値を吟味して絶対値の最大値と次点の値である次点値を特定する絶対値の最大値と次点値選択ステップと、
前記誤り検出符号データを構成する各ビットと次点値とに基づいて前記絶対値の最大値を調整する最大値調整ステップと、
を有することを特徴とする透かし埋め込み付きＪＰＥＧ符号化方法。
【請求項１０】
請求項９に記載の透かし埋め込み付きＪＰＥＧ符号化方法において、
前記絶対値の最大値と次点値選択ステップが、
前記絶対値の最大値が複数個ある場合に、逆ジグザグスキャンの順序で、最初に現れたものを最大値とし、次に現れたものを次点値とし、
該絶対値の最大値が１個で次点値が２個以上ある場合は、逆ジグザグスキャンの順序で、２個以上の次点値のうち最初のものを採用するステップ、
を有する
ことを特徴とする透かし埋め込み付きＪＰＥＧ符号化方法。
【請求項１１】
請求項９また１０に記載の透かし埋め込み付きＪＰＥＧ符号化方法において、
前記最大値調整ステップが、
前記誤り検出符号データにおけるビット値「１」を埋め込む場合は、絶対値の最大値から次点値を減じた値が奇数になるように、
該誤り検出符号データにおけるビット値「０」を埋め込む場合は、絶対値の最大値から次点値を減じた値が偶数になるように、
該絶対値の最大値に対し、任意正奇数を減算するか、任意正奇数を加算するか、何もしないかの３つの演算処理から選択するステップ、
を有する
ことを特徴とする透かし埋め込み付きＪＰＥＧ符号化方法。
【請求項１２】
記憶部と、入力部と、
該記憶部から請求項１乃至４のいずれかに記載の透かし埋め込み付きＪＰＥＧ符号化装置によって、符号化されたＪＰＥＧ画像データを入力部を使って入力する画像入力手段と、
ＪＦＩＦ形式からデータ列へ整形する整形手段と、
エントロピー復号手段と、
逆量子化手段と、
逆ＤＣＴ手段と、
色空間変換手段と、
を備え、該ＪＰＥＧ画像データに対し、ＪＦＩＦ形式からデータ列へ整形する整形手段と、エントロピー復号手段と、を使って、
該ＪＰＥＧ画像データに応じたＤＣＴブロックの量子化係数を取得し、復号する装置に使用する
透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出方法であって、
前記ＪＰＥＧ画像データの画像コンポーネントをＹ成分，Ｃｂ成分，Ｃｒ成分の中から選択する画像コンポーネント選択ステップと、
前記選択した画像コンポーネントに含まれるＤＣＴブロックを、１グループに含まれるＤＣＴブロック数が、誤り検出符号化後のビット数と同じ数になるようにグループ分けを行うＤＣＴブロックグループ分割ステップと、
前記各グループの各ＤＣＴブロックについて、誤り検出対象データにおけるビット値「１」もしくは「０」を検出し、誤り検出対象データを出力する誤り検出対象データ検出ステップと、
前記出力された誤り検出対象データに対し、請求項１乃至４に記載の透かし埋め込み付きＪＰＥＧ符号化装置で用いた所定の誤り検出符号に基づく誤り検出復号化処理を行い、
その処理結果として、誤りの有無を取得し、
誤りが無ければ、予め埋め込まれた埋め込み透かしデータを取得し、
誤りが有れば、該誤りを含むグループを特定する
誤り検出復号ステップと、
を有することを特徴とする透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出方法。
【請求項１３】
請求項１２に記載の透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出方法において、
前記誤り検出対象データ検出ステップが、
前記量子化係数から低中周波数成分を選び出すため、左上頂点からの距離を横方向Ｘマス、縦方向Ｙマスとして条件「α＜Ｘ＋Ｙ＜β（α，βは閾値）」を満たす台形状の部分集合を選択するステップと、
前記台形状の部分集合中の値を吟味して絶対値の最大値と次点の値である次点値を特定する絶対値の最大値と次点値選択ステップと、
前記絶対値の最大値から次点値を減算した値が偶数か奇数かをチェックし、
該値が偶数であった場合、誤り検出対象データにおけるビット値「０」を出力し、
該値が奇数であった場合、誤り検出符号データにおけるビット値「１」を出力するステップと、
を有する
ことを特徴とする透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出方法。
【請求項１４】
請求項１３に記載の透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出方法において、
前記絶対値の最大値と次点値選択ステップが、
前記絶対値の最大値が複数個ある場合に、逆ジグザグスキャンの順序で、最初に現れたものを最大値とし、次に現れたものを次点値とし、
該絶対値の最大値が１個で次点値が２個以上ある場合は、逆ジグザグスキャンの順序で、２個以上の次点値のうち最初のものを採用するステップ、
を有する
ことを特徴とする透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出方法。
【請求項１５】
コンピュータを請求項１乃至４のいずれかに記載の透かし埋め込み付きＪＰＥＧ符号化装置における各手段として機能させることを特徴とする透かし埋め込み付きＪＰＥＧ符号化プログラム。
【請求項１６】
コンピュータを請求項５乃至７のいずれかに記載の透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置における各手段として機能させることを特徴とする透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出プログラム。
【請求項１７】
請求項１５に記載の透かし埋め込み付きＪＰＥＧ符号化プログラムを記録したことを特徴とする記録媒体。
【請求項１８】
請求項１６に記載の透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出プログラムを記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル画像の改ざんを検出するための電子透かし技術に関するものである。
【背景技術】
【０００２】
近年、デジタルカメラやカメラ付き携帯電話機の普及によって、誰もが手軽にデジタル写真画像を撮影できるようになった。デジタルカメラやカメラ付き携帯電話機によるデジタル画像データの保持方式（以下、単に画像保持方式という）は、その圧縮率の高さと画質のトレードオフ性が良好であるため、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）符号化形式をデファクトスタンダードとしている。一部の機種では、ＪＰＥＧ２０００符号化や非圧縮画像で保持できる画像保持方式を採用のものも存在する。しかし、最も普及している画像保持方式は、ＪＰＥＧ符号化方式である。
【０００３】
例えば、図１４（ａ）が通常のＪＰＥＧ符号化の手順（Ｓ１０１〜Ｓ１０７）を示すフローチャート、図１４（ｂ）がＪＰＥＧ復号化の手順（Ｓ２０１〜Ｓ２０６）を示すフローチャートである。なお、これらの手順は、一般的な手順であるため、説明を省略する。
【０００４】
デジタルカメラ（特に、カメラ付き携帯電話機）は手軽に撮影可能なため、このデジタルカメラを用いて撮影したデジタル画像データを交通事故の証拠としたり、建築現場での工程証明としたり、ゴミ処理場での正しく処理した証明としたりしたいというニーズが知られている。
【０００５】
しかしながら、デジタル画像データは複製や編集が容易であるという特徴を有するために、デジタル画像データに対する改ざんをしていないことを証明することは困難である。例えば、デジタル画像データは、法律上では参考証拠に留まっており、決定的な証拠にはなり得ないという問題も知られている。
【０００６】
デジタル画像データの証拠性を高めるために、デジタル画像データに電子透かしを付加し、電子透かしが壊れずに入っているか否かによって、デジタル画像データの信憑性を高める電子透かし技術（例えば、非特許文献１参照）が提案されている。
【非特許文献１】特許庁、“その他参考情報  ＪＰＥＧ”、［ｏｎｌｉｎｅ］、平成１５（２００３）年３月２８日、特許庁、［平成１９（２００７）年１０月１１日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ.ｊｐｏ.ｇｏ.ｊｐ／ｓｈｉｒｙｏｕ／ｓ＿ｓｏｎｏｔａ／ｈｙｏｕｊｕｎ＿ｇｉｊｕｔｓｕ／ｄｅｎｓｈｉ＿ｓｕｋａｓｈｉ／１＿ａ＿４＿１.ｈｔｍ＞。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述の電子透かし技術は、量子化係数のゼロラン部直前に値の大きな電子透かしデータ（例えば、値が１より大きい（＞１）電子透かしデータ）を埋め込むため、透かし埋め込みによる画質劣化が大きいという問題があった。
【０００８】
本発明は、前記課題に基づいてなされたものであって、電子透かしデータの埋め込みによる画質劣化を小さくする透かし埋め込み付きＪＰＥＧ画像データを出力する透かし埋め込み付きＪＰＥＧ符号化装置，透かし埋め込み付きＪＰＥＧ符号化方法，透かし埋め込み付きＪＰＥＧ符号化プログラム及びそのプログラムを記録した記録媒体、その透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置，透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出方法，透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出プログラム及びそのプログラムを記録した記録媒体を提供することにある。
【課題を解決するための手段】
【０００９】
本発明は、前記課題の解決を図るための電子透かし埋め込み原理を以下に説明する。
【００１０】
デジタル画像データに対する基本的な電子透かし埋め込み方法は、デジタル画像データを８×８サンプリング画素のブロック（ＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）ブロックと呼ぶ）に分けて各々のブロックに１ビットを割り当てて電子透かしデータを符号化したビットを埋め込む方法である。
【００１１】
電子透かしデータのビットは直接ＤＣＴブロックへは対応させずに、一度誤り検出符号化して冗長性を持たせてから対応させる。
【００１２】
デジタル画像データに含まれるＤＣＴブロックの総数は一般に大きい（例えば、ＶＧＡ（Ｖｉｄｅｏ  Ｇｒａｐｈｉｃｓ  Ａｒｒａｙ）画像の輝度成分で４８００個）ため、ＤＣＴブロックをグループに分けて１グループ中で独立に誤り検出符号化する。
【００１３】
ＤＣＴブロック内の量子化係数の変調方法では、量子化係数の絶対値の最大値に−Ｋあるいは０あるいはＫ（なお、Ｋは任意の正奇数）を加える操作によって、次点値との差分の偶奇を調整する。なお、Ｋの絶対値は小さい方が良い。
【００１４】
埋め込み位置の空間周波数を選ぶため、電子透かし埋め込み時に、ＤＣＴブロック内の量子化係数から埋め込む所定の部分集合を抜き出す処理を行っている。なお、美観に影響を与えず、かつ改ざんを効率良く検出するためにはＤＣ（Ｄｉｒｅｃｔ  Ｃｕｒｒｅｎｔ）成分を除く低中周波数部分を選ぶと有利である。
【００１５】
前記課題の解決を図るために、請求項１記載の発明は、記憶部と、入力部と、該記憶部からデジタル画像データを入力部を使って入力する画像入力手段と、ＹＣｂＣｒ変換手段と、ダウンサンプリング手段と、ＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）手段と、量子化手段と、エントロピー圧縮手段と、ＪＦＩＦ（ＪＰＥＧ  Ｆｉｌｅ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｏｒｍａｔ）形式へ整形する整形手段と、を備え、該デジタル画像データに対し、該ＹＣｂＣｒ変換手段と、該ダウンサンプリング手段と、該ＤＣＴ手段と、該量子化手段と、を使って、該デジタル画像データを量子化し、ＤＣＴブロックに含まれる量子化係数を取得し、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）符号化する透かし埋め込み付きＪＰＥＧ符号化装置であって、前記記憶部から電子透かしデータを入力部を使って入力する透かしデータ入力手段と、入力された電子透かしデータに対し、所定の誤り検出符号を使って符号化処理を行い、誤り検出符号データを生成する透かしデータ誤り検出符号化手段と、  生成された誤り検出符号データを埋め込む画像コンポーネントをＹ成分，Ｃｂ成分，Ｃｒ成分の中から選択する画像コンポーネント選択手段と、前記選択した画像コンポーネントに含まれるＤＣＴブロックを、１グループに含まれるＤＣＴブロック数が、誤り検出符号化後のビット数と同じ数になるようにグループ分けを行うＤＣＴブロックグループ分割手段と、各グループに含まれるＤＣＴブロックに対し、前記量子化係数の低中周波数成分である部分集合に基づいて誤り検出符号データを生成し埋め込む誤り検出符号データ埋め込み手段と、を備えることを特徴とする。
【００１６】
請求項２記載の発明は、請求項１に記載の発明において、前記誤り検出符号データ埋め込み手段が、前記量子化係数から低中周波数成分を選び出すため、左上頂点からの距離を横方向Ｘマス、縦方向Ｙマスとして条件「α＜Ｘ＋Ｙ＜β（α，βは閾値）」を満たす台形状の部分集合を選択する手段と、前記台形状の部分集合中の値を吟味して絶対値の最大値と次点の値である次点値を特定する絶対値の最大値と次点値選択手段と、前記誤り検出符号データを構成する各ビットと次点値とに基づいて前記絶対値の最大値を調整する最大値調整手段と、を備えることを特徴とする。
【００１７】
請求項３記載の発明は、請求項２に記載の発明において、前記絶対値の最大値と次点値選択手段が、前記絶対値の最大値が複数個ある場合に、逆ジグザグスキャンの順序で、最初に現れたものを最大値とし、次に現れたものを次点値とし、該絶対値の最大値が１個で次点値が２個以上ある場合は、逆ジグザグスキャンの順序で、２個以上の次点値のうち最初のものを採用する手段、を備えることを特徴とする。
【００１８】
請求項４記載の発明は、請求項２また３に記載の発明において、前記最大値調整手段が、前記誤り検出符号データにおけるビット値「１」を埋め込む場合は、絶対値の最大値から次点値を減じた値が奇数になるように、該誤り検出符号データにおけるビット値「０」を埋め込む場合は、絶対値の最大値から次点値を減じた値が偶数になるように、該絶対値の最大値に対し、任意正奇数を減算するか、任意正奇数を加算するか、何もしないかの３つの演算処理から選択する手段、を備えることを特徴とする。
【００１９】
請求項５記載の発明は、記憶部と、入力部と、該記憶部から請求項１乃至４のいずれかに記載の透かし埋め込み付きＪＰＥＧ符号化装置によって、符号化されたＪＰＥＧ画像データを入力部を使って入力する画像入力手段と、ＪＦＩＦ形式からデータ列へ整形する整形手段と、エントロピー復号手段と、逆量子化手段と、逆ＤＣＴ手段と、色空間変換手段と、を備え、該ＪＰＥＧ画像データに対し、ＪＦＩＦ形式からデータ列へ整形する整形手段と、エントロピー復号手段と、を使って、該ＪＰＥＧ画像データに応じたＤＣＴブロックの量子化係数を取得し、復号する装置に使用する透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置であって、前記ＪＰＥＧ画像データの画像コンポーネントをＹ成分，Ｃｂ成分，Ｃｒ成分の中から選択する画像コンポーネント選択手段と、前記選択した画像コンポーネントに含まれるＤＣＴブロックを、１グループに含まれるＤＣＴブロック数が、誤り検出符号化後のビット数と同じ数になるようにグループ分けを行うＤＣＴブロックグループ分割手段と、前記各グループの各ＤＣＴブロックについて、誤り検出対象データにおけるビット値「１」もしくは「０」を検出し、誤り検出対象データを出力する誤り検出対象データ検出手段と、前記出力された誤り検出対象データに対し、請求項１乃至４に記載の透かし埋め込み付きＪＰＥＧ符号化装置で用いた所定の誤り検出符号に基づく誤り検出復号化処理を行い、その処理結果として、誤りの有無を取得し、誤りが無ければ、予め埋め込まれた埋め込み透かしデータを取得し、誤りが有れば、該誤りを含むグループを特定する誤り検出復号手段と、を備えることを特徴とする。
【００２０】
請求項６記載の発明は、請求項５に記載の発明において、前記誤り検出対象データ検出手段が、前記量子化係数から低中周波数成分を選び出すため、左上頂点からの距離を横方向Ｘマス、縦方向Ｙマスとして条件「α＜Ｘ＋Ｙ＜β（α，βは閾値）」を満たす台形状の部分集合を選択する手段と、前記台形状の部分集合中の値を吟味して絶対値の最大値と次点の値である次点値を特定する絶対値の最大値と次点値選択手段と、前記絶対値の最大値から次点値を減算した値が偶数か奇数かをチェックし、該値が偶数であった場合、誤り検出対象データにおけるビット値「０」を出力し、該値が奇数であった場合、誤り検出符号データにおけるビット値「１」を出力する手段と、を備えることを特徴とする。
【００２１】
請求項７記載の発明は、請求項６に記載の発明において、前記絶対値の最大値と次点値選択手段が、前記絶対値の最大値が複数個ある場合に、逆ジグザグスキャンの順序で、最初に現れたものを最大値とし、次に現れたものを次点値とし、該絶対値の最大値が１個で次点値が２個以上ある場合は、逆ジグザグスキャンの順序で、２個以上の次点値のうち最初のものを採用する手段、を備えることを特徴とする。
【００２２】
請求項８記載の発明は、記憶部と、入力部と、該記憶部からデジタル画像データを入力部を使って入力する画像入力手段と、ＹＣｂＣｒ変換手段と、ダウンサンプリング手段と、ＤＣＴ手段と、量子化手段と、エントロピー圧縮手段と、ＪＦＩＦ形式へ整形する整形手段と、を備え、該デジタル画像データに対し、該ＹＣｂＣｒ変換手段と、該ダウンサンプリング手段と、該ＤＣＴ手段と、該量子化手段と、を使って、該デジタル画像データを量子化し、ＤＣＴブロックに含まれる量子化係数を取得し、ＪＰＥＧ符号化する装置に使用する透かし埋め込み付きＪＰＥＧ符号化方法であって、前記記憶部から電子透かしデータを入力部を使って入力する透かしデータ入力ステップと、入力された電子透かしデータに対し、所定の誤り検出符号を使って符号化処理を行い、誤り検出符号データを生成する透かしデータ誤り検出符号化ステップと、生成された誤り検出符号データを埋め込む画像コンポーネントをＹ成分，Ｃｂ成分，Ｃｒ成分の中から選択する画像コンポーネント選択ステップと、前記選択した画像コンポーネントに含まれるＤＣＴブロックを、１グループに含まれるＤＣＴブロック数が、誤り検出符号化後のビット数と同じ数になるようにグループ分けを行うＤＣＴブロックグループ分割ステップと、各グループに含まれるＤＣＴブロックに対し、前記量子化係数の低中周波数成分である部分集合に基づいて誤り検出符号データを生成し埋め込む誤り検出符号データ埋め込みステップと、を有することを特徴とする。
【００２３】
請求項９記載の発明は、請求項８に記載の発明において、前記誤り検出符号データ埋め込みステップが、前記量子化係数から低中周波数成分を選び出すため、左上頂点からの距離を横方向Ｘマス、縦方向Ｙマスとして条件「α＜Ｘ＋Ｙ＜β（α，βは閾値）」を満たす台形状の部分集合を選択するステップと、前記台形状の部分集合中の値を吟味して絶対値の最大値と次点の値である次点値を特定する絶対値の最大値と次点値選択ステップと、前記誤り検出符号データを構成する各ビットと次点値とに基づいて前記絶対値の最大値を調整する最大値調整ステップと、を有することを特徴とする。
【００２４】
請求項１０記載の発明は、請求項９に記載の発明において、前記絶対値の最大値と次点値選択ステップが、前記絶対値の最大値が複数個ある場合に、逆ジグザグスキャンの順序で、最初に現れたものを最大値とし、次に現れたものを次点値とし、該絶対値の最大値が１個で次点値が２個以上ある場合は、逆ジグザグスキャンの順序で、２個以上の次点値のうち最初のものを採用するステップ、を有することを特徴とする。
【００２５】
請求項１１記載の発明は、請求項９また１０に記載の発明において、前記最大値調整ステップが、前記誤り検出符号データにおけるビット値「１」を埋め込む場合は、絶対値の最大値から次点値を減じた値が奇数になるように、該誤り検出符号データにおけるビット値「０」を埋め込む場合は、絶対値の最大値から次点値を減じた値が偶数になるように、該絶対値の最大値に対し、任意正奇数を減算するか、任意正奇数を加算するか、何もしないかの３つの演算処理から選択するステップ、を有することを特徴とする。
【００２６】
請求項１２記載の発明は、記憶部と、入力部と、該記憶部から請求項１乃至４のいずれかに記載の透かし埋め込み付きＪＰＥＧ符号化装置によって、符号化されたＪＰＥＧ画像データを入力部を使って入力する画像入力手段と、ＪＦＩＦ形式からデータ列へ整形する整形手段と、エントロピー復号手段と、逆量子化手段と、逆ＤＣＴ手段と、色空間変換手段と、を備え、該ＪＰＥＧ画像データに対し、ＪＦＩＦ形式からデータ列へ整形する整形手段と、エントロピー復号手段と、を使って、該ＪＰＥＧ画像データに応じたＤＣＴブロックの量子化係数を取得し、復号する装置に使用する透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出方法であって、前記ＪＰＥＧ画像データの画像コンポーネントをＹ成分，Ｃｂ成分，Ｃｒ成分の中から選択する画像コンポーネント選択ステップと、前記選択した画像コンポーネントに含まれるＤＣＴブロックを、１グループに含まれるＤＣＴブロック数が、誤り検出符号化後のビット数と同じ数になるようにグループ分けを行うＤＣＴブロックグループ分割ステップと、前記各グループの各ＤＣＴブロックについて、誤り検出対象データにおけるビット値「１」もしくは「０」を検出し、誤り検出対象データを出力する誤り検出対象データ検出ステップと、前記出力された誤り検出対象データに対し、請求項１乃至４に記載の透かし埋め込み付きＪＰＥＧ符号化装置で用いた所定の誤り検出符号に基づく誤り検出復号化処理を行い、その処理結果として、誤りの有無を取得し、誤りが無ければ、予め埋め込まれた埋め込み透かしデータを取得し、誤りが有れば、該誤りを含むグループを特定する誤り検出復号ステップと、を有することを特徴とする。
【００２７】
請求項１３記載の発明は、請求項１２に記載の発明において、前記誤り検出対象データ検出ステップが、前記量子化係数から低中周波数成分を選び出すため、左上頂点からの距離を横方向Ｘマス、縦方向Ｙマスとして条件「α＜Ｘ＋Ｙ＜β（α，βは閾値）」を満たす台形状の部分集合を選択するステップと、前記台形状の部分集合中の値を吟味して絶対値の最大値と次点の値である次点値を特定する絶対値の最大値と次点値選択ステップと、前記絶対値の最大値から次点値を減算した値が偶数か奇数かをチェックし、該値が偶数であった場合、誤り検出対象データにおけるビット値「０」を出力し、該値が奇数であった場合、誤り検出符号データにおけるビット値「１」を出力するステップと、を有することを特徴とする。
【００２８】
請求項１４記載の発明は、請求項１３に記載の発明において、前記絶対値の最大値と次点値選択ステップが、前記絶対値の最大値が複数個ある場合に、逆ジグザグスキャンの順序で、最初に現れたものを最大値とし、次に現れたものを次点値とし、該絶対値の最大値が１個で次点値が２個以上ある場合は、逆ジグザグスキャンの順序で、２個以上の次点値のうち最初のものを採用するステップ、を有することを特徴とする。
【００２９】
請求項１５記載の発明は、透かし埋め込み付きＪＰＥＧ符号化プログラムであって、コンピュータを請求項１乃至４のいずれかに記載の透かし埋め込み付きＪＰＥＧ符号化装置における各手段として機能させることを特徴とする。
【００３０】
請求項１６記載の発明は、透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出プログラムであって、コンピュータを請求項５乃至７のいずれかに記載の透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置における各手段として機能させることを特徴とする。
【００３１】
請求項１７記載の発明は、記録媒体であって、請求項１５に記載の透かし埋め込み付きＪＰＥＧ符号化プログラムを記録したことを特徴とする。
【００３２】
請求項１８記載の発明は、記録媒体であって、請求項１６に記載の透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出プログラムを記録したことを特徴とする。
【００３３】
前記請求項１，８に記載の発明は、量子化係数の低中周波数成分を対象にした誤り検出符号データを生成できる。ＤＣＴブロックから構成されたグループを取得できる。
【００３４】
前記請求項２，３，４，９，１０，１１に記載の発明は、ＪＰＥＧ符号化方法における量子化係数に電子透かしデータを埋め込むにあたり、絶対値の最大な量子化係数を選び、与える変分を高々１とすることができる。
【００３５】
前記請求項５，６，７，１２，１３，１４に記載の発明は、請求項１乃至４に記載された埋め込み付きＪＰＥＧ符号化装置から出力された、美観を損ねていない（画質劣化が小さい）透かし埋め込み付きＪＰＥＧ画像データの誤りを取得できる。
【００３６】
前記請求項１５に記載の発明は、請求項１乃至４のいずれかに記載の透かし埋め込み付きＪＰＥＧ符号化装置をコンピュータプログラムとして記載できる。
【００３７】
前記請求項１６に記載の発明は、請求項５乃至７のいずれかに記載の透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置をコンピュータプログラムとして記載できる。
【００３８】
前記請求項１７に記載の発明は、透かし埋め込み付きＪＰＥＧ符号化プログラムを記録媒体に記録できる。
【００３９】
前記請求項１８に記載の発明は、透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出プログラムを記録媒体に記録できる。
【発明の効果】
【００４０】
以上示したように請求項１，８の発明によれば、入力されたデジタル画像データの美観を損ねず（画質劣化を小さくし）に、電子透かしデータを埋め込むことができる。ＤＣＴブロックから構成されたグループに基づいて誤り（改ざん）の位置を特定できる。
【００４１】
請求項２，３，４，９，１０，１１の発明によれば、入力されたデジタル画像データの美観を損ねず（画質劣化を小さくし）に、電子透かしデータを埋め込むことができる。
【００４２】
請求項５，６，７，１２，１３，１４の発明によれば、その誤りを検出した場合、誤っている（即ち、改ざんされている）電子透かしデータを含むグループを特定できる。
【００４３】
請求項１５の発明によれば、透かし埋め込み付きＪＰＥＧ符号化装置としてコンピュータを動作させるコンピュータプログラムを提供できる。
【００４４】
請求項１６の発明によれば、透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置としてコンピュータを動作させるコンピュータプログラムを提供できる。
【００４５】
請求項１７の発明によれば、透かし埋め込み付きＪＰＥＧ符号化プログラムとしてコンピュータを動作させるコンピュータプログラムを記録した記録媒体を提供できる。
【００４６】
請求項１８の発明によれば、透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出プログラムとしてコンピュータを動作させるコンピュータプログラムを記録した記録媒体を提供できる。
【００４７】
これらを以って電子透かし技術分野に貢献できる。
【発明を実施するための最良の形態】
【００４８】
本実施形態における透かし埋め込み付きＪＰＥＧ符号化方法を図１〜図４に基づいて説明する。図１は、透かし埋め込み付きＪＰＥＧ符号化方法のメインフローチャート。図２〜図４は、そのメインフローチャートに対するサブルーチンフローチャートである。なお、本実施形態における透かし埋め込み付きＪＰＥＧ符号化方法をコンピュータなどの装置に実装する場合、予め備えられた記憶部に、該方法で使用する情報もしくはデータを格納し、管理しても良い。
【００４９】
まず、電子透かしデータの埋め込み対象となるデジタル画像データ（例えば、無圧縮のビットマップイメージ形式もしくはラスタイメージ形式のデジタル画像データ）を取得する（画像入力ステップ：Ｓ３０１）。なお、本実施形態における透かし埋め込み付きＪＰＥＧ符号化方法をコンピュータなどの装置に実装する場合、予め備えられた記憶部に格納された電子透かしデータの埋め込み対象となるデジタル画像データを取得し入力する入力部を使って入力しても良いし、予め備えられた通信部から該デジタル画像データを取得し入力する入力部を使って入力しても良い。
【００５０】
次に、通常のＪＰＥＧ符号化の手順（例えば、図１４（ａ）中のステップＳ１０２〜Ｓ１０５）と同じ手順を進める。即ち、ＹＣｂＣｒ変換（Ｓ１０２）とダウンサンプリング（Ｓ１０３）を経て、ＤＣＴ係数の量子化までの手順であって、図１中では、ステップＳ３０２（ＹＣｂＣｒ変換ステップ），Ｓ３０３（ダウンサンプリングステップ），Ｓ３０４（ＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）ステップ），Ｓ３０５（量子化ステップ）を行なう。
【００５１】
なお、量子化ステップ（Ｓ３０５）後は、各ＤＣＴブロック内では６４（＝８×８）個の量子化係数が存在する状態になる。量子化係数は、輝度Ｙ成分（以下、単にＹと記載する），青みＣｂ成分（以下、単にＣｂと記載する），赤みＣｒ成分（以下、単にＣｂと記載する）の画像コンポーネント毎に存在する。前記ダウンサンプリング（Ｓ３０３）の際にはＹ成分よりＣｂ及びＣｒ成分の方を粗くサンプリングする方法が一般的であるため、ＤＣＴブロックの数はＹ成分が最も多くなる。Ｙ，Ｃｂ，Ｃｒのうちいずれであっても、ＤＣＴブロック中が８×８個の量子化係数を含むことには変わりない。
【００５２】
次に、電子透かしデータ（例えば、図１１中の電子透かしデータＤ）を取得する（透かしデータ入力ステップ：Ｓ３０６）。なお、本実施形態における透かし埋め込み付きＪＰＥＧ符号化方法をコンピュータなどの装置に実装する場合、予め備えられた記憶部に格納された電子透かしデータを取得し入力する入力部を使って入力しても良いし、予め備えられた通信部から該電子透かしデータを取得し入力する入力部を使って入力しても良い。
【００５３】
次に、透かしデータ入力ステップ（Ｓ３０６）によって得られた電子透かしデータに対し透かしデータ誤り検出符号化処理を行い、誤り検出符号データを生成する（Ｓ３０７：透かしデータ誤り検出符号化ステップ）。
【００５４】
例えば、電子透かしデータのデータ長を３１ビット（ｂｉｔ）としても良い。この電子透かしデータのデータ長（例えば、３１ビット）は任意に決定可能である。後述する誤り検出符号化により冗長化した結果のビット数が、後述する分割された１グループ内のＤＣＴブロック数を超えない範囲で任意に選び得る。
【００５５】
この透かしデータ誤り検出符号化ステップ（Ｓ３０７）では、誤り検出符号として、例えば、（６４，３１）拡張ＢＣＨ（Ｂｏｓｅ，Ｒａｙ−Ｃｈａｕｄｈｕｒｉ，Ｈｏｃｑｕｅｎｇｈｅｍ)を採用する。この括弧付き表記の意味は、３１ビットのデータを６４ビットに冗長化して符号化し、その符号化アルゴリズムには拡張ＢＣＨを用いるという意味である。括弧内の左項（この例では６４）は誤り検出符号で使える数値であれば任意に選び得る。誤り検出符号は、拡張ＢＣＨに限らずこれ以外を採用しても良い。
【００５６】
次に、電子透かしデータから生成した誤り検出符号データを埋め込む画像コンポーネントをＹ，Ｃｂ，Ｃｒの中から選択する（Ｓ３０８：画像コンポーネント（色成分）選択ステップ）。
【００５７】
なお、画像コンポーネントは、それぞれ単独にひとつ選択しても良いし、任意の２つを選んでも良く、また３つともを選ぶこともできる。ただし、２つ以上を選ぶと使用できるＤＣＴブロックが増える代わりに、ＤＣＴブロックのグループ分けが複雑になってしまう。また、本実施形態における透かし埋め込み付きＪＰＥＧ符号化方法をコンピュータなどの装置に実装する場合、画像コンポーネントは、予め選択してあっても良いし、予め備えられたユーザインタフェース手段（例えば、キーボード装置）を使って選択しても良い。
【００５８】
以下では、説明を容易にするためにＹのみを選ぶこととする。Ｙを選ぶことにより、白黒画像でも対応できるという利点も生じる。他の有効な選び方としてはＣｂのみを選ぶという方法がある。このＣｂのみを選ぶという方法では、人間の視覚は青もしくは黄の変化を知覚しにくいため、目立ちにくいという利点が生じる。
【００５９】
次に、入力されたデジタル画像データに対しＤＣＴブロックグループ分割を行う（Ｓ３０９：ＤＣＴブロックグループ分割ステップ）。より具体的に、ブロック分けの例を図５に基づいて説明する。なお、符号Ｇ’で示すものは、グループＧを詳細化した図である。
【００６０】
選択した画像コンポーネントのサイズ（もしくは入力されたデジタル画像データの画像サイズ）から８×８（＝水平画素数ＢH×垂直画素数ＢV）画素のＤＣＴブロックＢが何個存在するかを計算しておく。例えば、６４０×４８０（＝水平画素数ＰH×垂直画素数ＰV）画素のＶＧＡサイズのデジタル画像データＰでＹ成分を選んだ場合、４８００（＝６４０×４８０／（８×８））個のＤＣＴブロックＢが存在することになる。そして、これらＤＣＴブロックＢを誤り検出符号化後のビット数（上記では６４ビット）ずつのグループＧに分ける。即ち、１グループに含まれるＤＣＴブロック数が、誤り検出符号化後のビット数と同じ数になるようにグループ分けを行う。
【００６１】
グループの分け方は任意で良いが、なるべくブロックが一塊になるように分けた方が、改ざんされた場所の特定が容易である。以下の説明では、４８００個のＤＣＴブロックを６４個ずつのグループに分け、グループ数は７５グループ（＝４８００／６４）となる。
【００６２】
１グループ（例えば、グループＧ’）のサイズは、例えば、１６ＤＣＴブロック×４ＤＣＴブロックすなわち１２８画素×３２画素（＝水平画素数ＧH×垂直画素数ＧV）の矩形タイルとすれば、同じ形のブロックになるため、元画像であるデジタル画像データＰに隙間なく割り当てることができる。
【００６３】
なお、図５中では各グループの形状を等しく設定したが、含まれるＤＣＴブロックの数さえ同じであれば、グループの形状が等しい必要はなく様々なグループ分けの方法が存在し得る。
【００６４】
次に、各グループに含まれる（属する）ＤＣＴブロックに対し、前記量子化係数の部分集合に基づいて誤り検出符号データを生成し埋め込む（Ｓ３１０：各グループに属するＤＣＴブロックへ誤り検出符号データを埋め込みステップ）。ステップＳ３１０を図２のフローチャートに基づいて処理詳細（ＤＣＴブロック内の量子化係数の変調方法）を説明する。なお、以下に説明する処理は、全ＤＣＴブロックに対して処理を行う（Ｓ４０１）。また、以下の説明では、量子化係数（例えば、図６中の量子化係数群Ｑにおける量子化係数）は、８×８の正方形に並んでおり、左上が直流成分であり右下ほど高周波成分を表すものとする。
【００６５】
前記８×８個の量子化係数から低中周波数成分を選び出すため、左上頂点からの距離を横方向Ｘマス、縦方向Ｙマスとして条件「α＜Ｘ＋Ｙ＜β（α，βは閾値）」を満たす台形状の部分集合（例えば、図７中の部分集合ｑ）を選択する（Ｓ４０２：量子化係数部分集合選択ステップ）。例えば、図７中の部分集合ｑは、α＝１，β＝８と設定した場合の部分集合である。なお、以下の説明では、閾値α，βは、ＤＣＴブロックにおける８×８個の量子化係数の中から低周波（左上方向）に偏るように決める値であるため、閾値αは１または２の値となり、閾値βは３，４，５，６，７，８，９のいずれかの値となる。
【００６６】
次に、台形状の部分集合ｑ中の値を吟味して絶対値の最大値（以下、単に最大値という）と次点の値である次点値（以下、単に次点値という）を特定する（Ｓ４０３：絶対値の最大値と次点値選択ステップ）。
【００６７】
ステップＳ４０３では、最大値や次点値が複数個ある場合に、次の方法のように、最大値と次点値を特定する。
【００６８】
同値の最大値がある場合は、逆ジグザグスキャンの順序で、最初に現れたものを最大値とし、次に現れたものを次点値とする。
【００６９】
最大値が１個で次点値が２個以上ある場合は逆ジグザグスキャンの順序で、２個以上の次点値のうち最初のものを採用する。
【００７０】
なお、上述の最大値と次点値を特定する方法の理由は、透かし埋め込みに用いる点をなるべく高周波に持って行き、目立ちにくくするためである。
【００７１】
ステップＳ４０３において、最大値が複数個ある場合に、台形状の部分集合ｑ中の値を吟味して最大値と次点値の値を見つける（選択する）方法を図３中のフローチャートに基づいて詳しく説明する。
【００７２】
まず、最大値候補Ｍ１，次点値候補Ｍ２をそれぞれ０に設定する（Ｓ５０１）。
【００７３】
次に、図８中の逆ジグザグスキャン方向Ｒ（即ち、通常のＪＰＥＧのジグザグスキャン方向の逆順）の順序で量子化係数（例えば、量子化係数Ａ）を読み出す（Ｓ５０２）。
【００７４】
量子化係数Ａの絶対値が最大値候補Ｍ１の絶対値より大きい（｜Ａ｜＞｜Ｍ１｜）か否かをチェックする（Ｓ５０３）。量子化係数Ａの絶対値が最大値候補Ｍ１の絶対値より大きい場合は、ステップＳ５０５へ進む。量子化係数Ａの絶対値が最大値候補Ｍ１の絶対値より大きくない場合は、ステップＳ５０４へ進む。
【００７５】
ステップＳ５０５は、最大値候補Ｍ１に量子化係数Ａを設定し、ステップＳ５０７へ進む。
【００７６】
ステップＳ５０４では、量子化係数Ａの絶対値が次点値候補Ｍ２の絶対値より大きい（｜Ａ｜＞｜Ｍ２｜）か否かをチェックする。量子化係数Ａの絶対値が次点値候補Ｍ２の絶対値より大きい場合は、ステップＳ５０６へ進む。量子化係数Ａの絶対値が次点値候補Ｍ２の絶対値より大きくない場合は、ステップＳ５０２へ進む。
【００７７】
ステップＳ５０６は、次点値候補Ｍ２に量子化係数Ａを設定し、ステップＳ５０７へ進む。
【００７８】
ステップＳ５０７は、量子化係数を全スキャンしたか否かをチェックする。全スキャンした場合、当該処理を終了し、最終的な最大値候補Ｍ１を量子化係数の絶対値の最大値Ｍ１（以下、単に最大値Ｍ１という）と見做し、次点値候補Ｍ２を量子化係数の絶対値の次点値Ｍ２（以下、単に次点値Ｍ２という）と見做す。全スキャンしていない場合、ステップＳ５０２へ進む。
【００７９】
次に、埋め込みビット（即ち、誤り検出符号データを構成する各ビット）に基づいて最大値Ｍ１を調整する（Ｓ４０４：埋め込みビットによる最大値Ｍ１の調整ステップ）。埋め込みビットによる最大値Ｍ１の調整ステップ（Ｓ４０４）における埋め込みの方針は、誤り検出符号データにおけるビット値「１」を埋め込む場合は条件「Ｍ１−Ｍ２＝奇数」を満たすように、誤り検出符号データにおけるビット値「０」を埋め込む場合は条件「Ｍ１−Ｍ２＝偶数」を満たすように最大値Ｍ１を調整することである。調整は、任意正奇数を減じる（減算する）か、任意正奇数を加える（加算する）か、何もしないかの３つの演算処理から選択する。なお、任意正奇数は、より小さい値を使う方が、埋め込み後の美観を有利とする。
【００８０】
最終的に埋め込みビットを対応するＤＣＴブロックへ埋め込む。
【００８１】
ステップＳ４０４における埋め込みビットによる最大値Ｍ１の調整処理を図４のフローチャートに基づいて説明する。
【００８２】
まず、最大値Ｍ１から次点値Ｍ２を減算し、その減算結果が偶数か否かをチェックする（Ｓ６０１）。その減算結果が偶数の場合は、ステップＳ６０２へ進む。その減算結果が偶数でない場合は、ステップＳ６０３へ進む。
【００８３】
ステップＳ６０２では、埋め込みビットがビット値「０」か否かをチェックする。埋め込みビットがビット値「０」であった場合、当該処理を終了する。埋め込みビットがビット値「０」でなかった場合、ステップＳ６０４へ進む。
【００８４】
ステップＳ６０３では、埋め込みビットがビット値「０」か否かをチェックする。埋め込みビットがビット値「０」であった場合、ステップＳ６０４へ進む。埋め込みビットがビット値「０」でなかった場合、当該処理を終了する。
【００８５】
ステップＳ６０４では、最大値Ｍ１が０以上か否かをチェックする。最大値Ｍ１が０以上の場合、ステップＳ６０５へ進む。最大値Ｍ１が０以上でなかった場合、ステップＳ６０６へ進む。
【００８６】
ステップＳ６０５は、最大値Ｍ１に任意正奇数Ｋを加算し、その加算した値を最大値Ｍ１と見做し、当該処理を終了する。
【００８７】
ステップＳ６０６は、最大値Ｍ１から任意正奇数Ｋを減算し、その減算した値を最大値Ｍ１と見做し、当該処理を終了する。
【００８８】
図４中のフローチャートにおいて、例えば、ビット値「１」を埋め込みたいときであって、最大値Ｍ１＝１５，次点値Ｍ２＝１４の場合、式「Ｍ１−Ｍ２＝１」で既に奇数であるから何もしない（Ｓ６０１，Ｓ６０３）。
【００８９】
同様に、最大値Ｍ１＝１５、次点値Ｍ２＝１５の場合、式「Ｍ１−Ｍ２＝０」で偶数であるから最大値Ｍ１の正負を吟味し、正であるから最大値Ｍ１に、例えば、１（＝正奇数Ｋ）を加えて、最大値Ｍ１は１６（＝１５＋１）とする（Ｓ６０１，Ｓ６０２，Ｓ６０４，Ｓ６０５）。
【００９０】
他の例としては、ビット値「０」を埋め込みたいときであって、最大値Ｍ１＝−１８，次点値Ｍ２＝１１の場合、式「Ｍ１−Ｍ２＝−２９」で奇数であるから最大値Ｍ１の正負を吟味し、負であるから、例えば、１（＝正奇数Ｋ）を減じて最大値Ｍ１は−１９（＝−１８−１）とする（Ｓ６０１，Ｓ６０３，Ｓ６０４，Ｓ６０６）。
【００９１】
同様に、最大値Ｍ１＝−１８，次点値Ｍ２＝１０の場合、式「Ｍ１−Ｍ２＝−２８」で偶数であるから何もしない（Ｓ６０１，Ｓ６０２）。
【００９２】
以上のように、１グループ内の全ＤＣＴブロックに対応する透かしデータ誤り検出符号化ステップ（Ｓ３０７）によって冗長化した結果（即ち、誤り検出符号データ）における各ビットを上記のように埋め込む。
【００９３】
そして、全てのグループ（上述からの説明により、７５個のグループ）について、図４中のフローチャートと同じ処理を行う。また、埋め込むための誤り検出符号データは、全てのグループで同じものとする。
【００９４】
全てのグループについて誤り検出符号ビットの埋め込み（Ｓ３１０）が終了した場合、残りの処理は、通常のＪＰＥＧ符号化の工程と同じように、エントロピー圧縮ステップ（Ｓ３１１）と所定のＪＦＩＦ（ＪＰＥＧ  Ｆｉｌｅ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｏｒｍａｔ）形式に適合するようデータ整形ステップ（Ｓ３１２：ＪＦＩＦ形式へ整形する整形ステップ）を実行しＪＰＥＧ画像データとして出力する。
【００９５】
次に、本実施形態における透かし埋め込み付きＪＰＥＧ符号化方法によって出力されたＪＰＥＧ画像データ（透かし埋め込み付きＪＰＥＧ画像データ）に対する改ざん検出（即ち、電子透かしの検出）方法を図９，図１０のフローチャートに基づいて説明する。図９は、ＪＰＥＧ画像データに対する改ざんの検出方法のメインフローチャートである。図１０は、そのメインフローチャートに対するサブルーチンフローチャートである。
【００９６】
なお、本実施形態における透かし埋め込み付きＪＰＥＧ符号化方法によって出力された透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出方法において、予め取り決めとして、埋め込みの際に使用したブロック形状，ブロック数，誤り検出符号化方法とそのパラメータは、検出する際も同じ情報を用いるものとする。本実施形態における透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出方法をコンピュータなどの装置に実装する場合、予め備えられた記憶部に、該方法で使用する情報もしくはデータを格納し、管理しても良い。
【００９７】
まず、電子透かしデータを埋め込まれたデジタル画像データ（即ち、透かし埋め込み付きＪＰＥＧ画像データ）を取得する（デジタル画像入力ステップ：Ｓ７０１）。なお、本実施形態における透かし埋め込み付きＪＰＥＧ符号化方法によって出力されたＪＰＥＧ画像データに対する改ざんの検出方法をコンピュータなどの装置に実装する場合、予め備えられた記憶部に格納された電子透かしデータを埋め込まれたデジタル画像データを取得し入力する入力部を使って入力しても良いし、予め備えられた通信部から該電子透かしデータを埋め込まれたデジタル画像データを取得し入力する入力部を使って入力しても良い。
【００９８】
デジタル画像データ入力ステップ（Ｓ７０１）にて入力されたデジタル画像データは、通常のＪＰＥＧ復号化工程であるデータ整形（Ｓ７０２：ＪＦＩＦ形式からデータ列へ整形する整形ステップ）とエントロピー復号ステップ（Ｓ７０３：エントロピー復号ステップ）を経てＤＣＴブロックの量子化係数にまで変換される。
【００９９】
次に、埋め込み時に用いたものと同じ画像コンポーネント選択を行う（Ｓ７０４：色成分選択ステップ）。
【０１００】
次に、埋め込み時に用いたものと同じＤＣＴブロックのグループ分けを行う（Ｓ７０５６：ＤＣＴブロックグループ分割ステップ）。詳細は、上述の図５に関する説明を参照のこと。
【０１０１】
次に、各グループの各ＤＣＴブロックについて、誤り検出対象データにおけるビット値「１」もしくは「０」を検出し、誤り検出対象データを出力する（Ｓ７０６：各グループに属するＤＣＴブロックから誤り検出対象データ検出ステップ）。
【０１０２】
各グループに属するＤＣＴブロックから誤り検出対象データ検出ステップ（Ｓ７０６）の詳細な処理を図１０のフローチャートに基づいて説明する。なお、以下に説明する処理は、全ＤＣＴブロックに対して処理を行う（Ｓ８０１）。
【０１０３】
まず、左上頂点からの距離を横方向Ｘマス、縦方向Ｙマスとして条件「α＜Ｘ＋Ｙ＜β」の台形状の部分集合を選択する（Ｓ８０２：量子化係数部分集合選択ステップ）。なお、選択方法は埋め込み時と同じ（上述の図７に関する説明と同じ）である。
【０１０４】
次に、台形状の部分集合の中の値を吟味して絶対値の最大値（以下、単に最大値という）Ｍ１と次点値（以下、単に次点値という）Ｍ２を選択する（Ｓ８０３）。最大値Ｍ１が複数個ある場合は、埋め込み時と全く同様に、図３に基づいて、最大値Ｍ１，次点値Ｍ２を定める。
【０１０５】
次に、最大値Ｍ１から次点値Ｍ２を減算した値（最大値Ｍ１−次点値Ｍ２）が偶数か奇数かをチェックする（Ｓ８０４）。偶数であった場合、ステップＳ８０５へ進む。奇数であった場合、ステップＳ８０６へ進む。
【０１０６】
ステップＳ８０５では、誤り検出対象データにおけるビット値「０」を出力する。
【０１０７】
ステップＳ８０６では、誤り検出符号データにおけるビット値「１」を出力する。
【０１０８】
上述のように、１グループ内の全てのＤＣＴブロックから出力値（誤り検出対象データ）を検出する（上述の説明において、６４個の出力）。
【０１０９】
この出力値（誤り検出対象データ）に対し、誤り検出復号ステップにて、誤り検出符号として採用した拡張ＢＣＨに基づく誤り検出復号化処理を行う（Ｓ７０７：誤り検出復号ステップ）。
【０１１０】
その誤り検出復号ステップ（Ｓ７０７）の結果として、誤りの有無が得られる。例えば、誤りが無ければ、予め埋め込まれた３１ビットの埋め込み透かしデータが得られる。さらに、誤りが有れば、誤りを含むグループを特定できる。なお、本実施形態におけるＪＰＥＧ画像データに対する改ざんの検出方法をコンピュータなどの装置に実装する場合、誤りの有無、埋め込み透かしデータ、誤りを含むグループを予め備えられた記憶部に格納し、最終的にそれらを表示しても良い。
【０１１１】
全てのグループ（上述の説明に基づき、例えば、７５個）に対して図１０で説明する改ざんの検出方法を行う。
【０１１２】
次に、通常のＪＰＥＧ復号化の手順と同様に各ＤＣＴブロックの量子化係数を逆量子化しＤＣＴ係数に戻し（Ｓ７０８：逆量子化）、そのＤＣＴ係数を逆ＤＣＴを行って（Ｓ７０９：逆ＤＣＴ）画像データに戻す。必要があれば、色空間変換を行って画像データに戻す（Ｓ７１０：色空間変換ステップ）。
【０１１３】
そして、本実施形態におけるＪＰＥＧ画像データに対する改ざんの検出方法をコンピュータなどの装置に実装する場合、誤り検出復号ステップ（Ｓ７０７）において得られた誤りの有無，誤りグループ，埋め込み透かしデータを用いて、以下のように改ざんの有無と改ざん場所が判明するように、予め備えられた提示部を使って表示しても良い（Ｓ７１１：誤り発生箇所重畳表示ステップ）。
【０１１４】
例えば、図１１中の透かし埋め込み付きＪＰＥＧ画像データＰ1のように、全てのグループ（例えば、図１１中のグループＧ11〜Ｇ15，Ｇ21〜Ｇ25，Ｇ31〜Ｇ35）から誤りが検出されず、かつ、透かしデータ（例えば、図１１中の電子透かしデータＤ）が埋め込み時と同じだった場合は、その透かし埋め込み付きＪＰＥＧ画像データＰ1は透かし埋め込み後から改ざんされていないとみなすことができる。
【０１１５】
また、図１２中の透かし埋め込み付きＪＰＥＧ画像データＰ2のように、誤りが検出されたグループ（例えば、図１２中のグループＧ32）内の電子透かしデータは、原本（埋め込まれた電子透かしデータ）とは異なっているため、ＪＰＥＧ画像データＰ2が改ざんされていることが判る。即ち、図１２中では、グループＧ32を構成するＤＣＴブロックが占めるエリア内のどこかに改ざん可能性がある。
【０１１６】
また、図１３中の透かし埋め込み付きＪＰＥＧ画像データＰ3のように、誤りが検出されないグループで、かつ、誤り検出復号ステップ（Ｓ７０７）で得られた透かしデータと埋め込まれていた電子透かしデータ（原本）を比較し異なる場合は、そのグループ（図１３中のＪＰＥＧ画像データＰ3のグループＧ32）が、改ざんされていることが判る。即ち、図１３中では、グループＧ32内を構成するＤＣＴブロックが占めるエリア内のどこかに改ざん可能性がある。
【０１１７】
また、改ざんの検出時に埋め込み時の透かしデータが分からない場合も考えられる。この場合は多数決により埋め込み透かしデータを推定できる。つまり、得られた透かし埋め込みデータのうち最も出現頻度の大きいものを埋め込み時の透かしデータとみなすのである。
【０１１８】
なお、誤り箇所（すなわち、改ざん箇所）を表現する場合は、図１２に示すようにＪＰＥＧ復号化された画像データに、改ざんされたグループの位置をあらわす目印（例えば、目立つように色を変えて重畳）表示すると、改ざんされた箇所が分かりやすい。
【０１１９】
本実施形態における各ステップを手段（例えば、コンピュータプログラムにおける手段）として構成し、透かし埋め込み付きＪＰＥＧ符号化装置及び透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置を実装しても良い。なお、それらの装置は、各ステップで必要とされる情報を格納する記憶部（例えば、メモリやハードディスクドライブ装置），各部を制御する制御部（例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）），通信装置や入出力装置を含み、データを入力する入力部，データを出力する出力部を備えているものとする。透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置は、誤り箇所を表示するための提示部（例えば、ディスプレイ装置）を備えていても良い。
【０１２０】
例えば、図１中のステップＳ３０１〜Ｓ３１２の各ステップを手段として構成し、透かし埋め込み付きＪＰＥＧ符号化装置を実装しても良い。また、図９中のステップＳ７０１〜Ｓ７１１の各ステップを手段として構成し、透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置を実装しても良い。
【０１２１】
また、図１中のステップＳ３０１〜Ｓ３０５，Ｓ３１１〜Ｓ３１２は、既存のＪＰＥＧ符号化方法と同じため、既に実装された手段と考えても良い。即ち、ステップＳ３０６〜Ｓ３１０は、ステップＳ３０１〜Ｓ３０５，Ｓ３１１〜Ｓ３１２にそれぞれ対応する手段を（直接もしくは間接的に）使用する方法と考えられる。
【０１２２】
同様に、図９中のステップＳ７０１〜Ｓ７０３，Ｓ７０８〜Ｓ７１０は、既存のＪＰＥＧ復号化方法と同じため、既に実装された手段と考えても良い。即ち、ステップＳ７０４〜Ｓ７０７は、ステップＳ７０１〜Ｓ７０３，Ｓ７０８〜Ｓ７１０にそれぞれ対応する手段を（直接もしくは間接的に）使用する方法と考えられる。
【０１２３】
また、本実施形態の透かし埋め込み付きＪＰＥＧ符号化装置及び透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置における各部（もしくは各手段）の一部もしくは全部の機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータを用いて実行して本発明を実現することができること、本実施形態の透かし埋め込み付きＪＰＥＧ符号化方法及び透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出方法（手順）をコンピュータのプログラムで構成し、そのプログラムをコンピュータに実行させることができることは言うまでもなく、コンピュータでその機能を実現するためのプログラムを、そのコンピュータが読み取り可能な記録媒体（記憶媒体）、例えばＦＤ（Ｆｌｏｐｐｙ（登録商標）  Ｄｉｓｋ）や、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｋ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、メモリカード、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、リムーバブルディスクなどに記録して、保存したり、配布したりすることが可能である。また、上記のプログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【０１２４】
さらに、本実施形態の透かし埋め込み付きＪＰＥＧ符号化装置及び透かし埋め込み付きＪＰＥＧ画像データに対する改ざん検出装置に関する方法を記述したコンピュータプログラムを、その方法に必要とされる入出力データを格納したメモリや外部記憶部等にアクセスするように実装してもよい。
【０１２５】
以上のように、本実施形態によれば、誤り検出符号を用いることによって、何も埋め込んでいないのに偶然埋め込んだことと同じ結果が得られることを防ぎ、および復号時に元の電子透かしデータを知ることなく誤り（改ざん）の有無を知る、という２つのメリットを得られる。
【０１２６】
また、本実施形態のように、ＤＣＴブロックをグループに分けて１グループ中で独立に誤り検出符号化することによって、誤りがあった場合はその誤りが含まれるグループを特定でき、誤り（即ち、改ざん）の場所を知るというメリットが得られる。
【０１２７】
また、本実施形態におけるＤＣＴブロック内の量子化係数の変調方法の利点は、元々値の大きい係数に小変分のみを与えるため、量子化係数の変化が少なく、埋め込み後の美観に影響を与え難い点である。ＤＣＴブロック内の量子化係数を変調する方式は、上述の電子透かし技術（例えば、非特許文献１）のものも含めて複数知られているが、いずれも変調による量子化係数の変化が大きく、美観的には不利となる。
【０１２８】
以上、本発明の実施形態について説明したが、本発明は説明した実施形態に限定されるものでなく、各請求項に記載した範囲において各種の変形を行うことが可能である。
【０１２９】
例えば、本実施形態では、誤り検出符号として、拡張ＢＣＨを用いたが、例えば、ターボ符号を用いても良い。
【図面の簡単な説明】
【０１３０】
【図１】本実施形態における透かし埋め込み付きＪＰＥＧ符号化方法のメインフローチャート。
【図２】各グループに属するＤＣＴブロックへ誤り検出符号データを埋め込みステップの詳細な処理を説明するフローチャート。
【図３】量子化係数における台形状の部分集合中の絶対値の最大値と次点値を選択する方法示すフローチャート。
【図４】埋め込みビットによる最大値Ｍ１の調整処理を示すフローチャート。
【図５】ＤＣＴブロックグループ分割の一例を示す図。
【図６】量子化係数の一例を示す図。
【図７】量子化係数における台形状の部分集合の一例を示す図。
【図８】量子化係数を読み出す方向を示す図。
【図９】本実施形態における透かし埋め込み付きＪＰＥＧ符号化方法によって出力されたＪＰＥＧ画像データに対する改ざんの検出（即ち、電子透かしの検出）方法のメインフローチャート。
【図１０】各グループに属するＤＣＴブロックから誤り検出対象データを検出する処理を示すフローチャート。
【図１１】改ざんの発見されなかった透かし埋め込み付きＪＰＥＧ画像データの一例を示す図。
【図１２】改ざんの発見された透かし埋め込み付きＪＰＥＧ画像データの例１を示す図。
【図１３】改ざんの発見された透かし埋め込み付きＪＰＥＧ画像データの例２を示す図
【図１４】通常のＪＰＥＧ符号化及び復号化の手順を示すフローチャートであって、図１４（ａ）は通常のＪＰＥＧ符号化の手順を示すフローチャート、図１４（ｂ）がＪＰＥＧ復号化の手順を示すフローチャート。
【符号の説明】
【０１３１】
Ｂ…ＤＣＴブロック
ＢH…ＤＣＴブロックの水平画素数
ＢV…ＤＣＴブロックの垂直画素数
Ｄ…電子透かしデータ
Ｇ，Ｇ’，Ｇ11〜Ｇ15，Ｇ21〜Ｇ25，Ｇ31〜Ｇ35…グループ
ＧH…グループの水平画素数
ＧV…グループの垂直画素数
Ｐ…デジタル画像データ
Ｐ1，Ｐ2，Ｐ3…透かし埋め込み付きＪＰＥＧ画像データ
ＰH…デジタル画像データの水平画素数
ＰV…デジタル画像データの垂直画素数
Ｑ…量子化係数群
ｑ…量子化係数による台形状の部分集合
Ｒ…逆ジグザグスキャン方向
【図１】
2009124300.tif 000003
【図２】
2009124300.tif 000004
【図３】
2009124300.tif 000005
【図４】
2009124300.tif 000006
【図５】
2009124300.tif 000007
【図６】
2009124300.tif 000008
【図７】
2009124300.tif 000009
【図８】
2009124300.tif 000010
【図９】
2009124300.tif 000011
【図１０】
2009124300.tif 000012
【図１１】
2009124300.tif 000013
【図１２】
2009124300.tif 000014
【図１３】
2009124300.tif 000015
【図１４】
2009124300.tif 000016