(57)【要約】【課題】複数のレイヤで構成される画像の真正性を高精度に保証すると共に、改ざんされた場合には、その改ざんの箇所を特定することが可能な画像生成装置を提供することを目的とする。【解決手段】マスクレイヤを含む複数レイヤから構成されるＭＲＣ方式の画像に対して、複数レイヤのうち、マスクレイヤ以外のレイヤを埋め込みレイヤとして選択し、かつ、埋め込みレイヤ以外の１又は複数のレイヤをハッシュ値抽出レイヤとして選択し、選択されたハッシュ値抽出レイヤのブロック毎にハッシュ値を算出し、算出したハッシュ値を埋め込みレイヤの対応するブロックに電子透かしとして埋め込む。【選択図】        図１
2010074242.tif 000002
【特許請求の範囲】
【請求項１】
マスクレイヤを含む複数のレイヤで構成される画像のうち、前記マスクレイヤ以外のレイヤを、電子透かしを埋め込む埋め込みレイヤとして選択する埋め込みレイヤ選択手段と、
前記埋め込みレイヤ以外の他の１又は複数のレイヤの任意の抽出領域の画素値に基づいて電子透かしを生成する生成手段と、
前記埋め込みレイヤ選択手段で選択された埋め込みレイヤの前記抽出領域に対応する埋め込み領域に、前記生成手段で生成された電子透かしを埋め込む埋め込み手段と、
を備えたことを特徴とする画像生成装置。
【請求項２】
前記埋め込みレイヤ選択手段は、前記マスクレイヤのデータに基づいて、前記埋め込みレイヤを選択することを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記埋め込みレイヤ選択手段は、レイヤを合成する際に参照される画素が最も少ないレイヤを、前記埋め込みレイヤとして選択することを特徴とする請求項２に記載の画像生成装置。
【請求項４】
前記埋め込みレイヤ選択手段は、前記抽出領域毎に前記埋め込みレイヤを選択することを特徴とする請求項１に記載の画像生成装置。
【請求項５】
前記埋め込みレイヤ選択手段は、前記抽出領域毎に、前記マスクレイヤのデータに基づいて、前記埋め込みレイヤを選択することを特徴とする請求項４に記載の画像生成装置。
【請求項６】
前記埋め込みレイヤ選択手段は、前記抽出領域毎に、レイヤを合成する際に参照される画素が最も少ないレイヤを、前記埋め込みレイヤとして選択することを特徴とする請求項５に記載の画像生成装置。
【請求項７】
前記埋め込み手段は、マスクオフを示す画素に対応する、前記埋め込みレイヤの変換係数に電子透かし埋め込みを行うことを特徴とする請求項１から請求項６のいずれか１つに
記載の画像生成装置。
【請求項８】
前記埋め込みレイヤは、ＤＣＴ変換を用いた符号化方式で符号化されることを特徴とする請求項１〜請求項７のいずれか１つに記載の画像生成装置。
【請求項９】
前記埋め込みレイヤは、ウェーブレット変換を用いた符号化方式で符号化されることを特徴とする請求項１〜請求項７のいずれか１つに記載の画像生成装置。
【請求項１０】
前記電子透かしに用いるハッシュ値は、抽出元レイヤの任意の抽出領域に含まれる画素を周波数変換して得られる値から算出することを特徴とする請求項１〜請求項９のいずれか１つに記載の画像生成装置。
【請求項１１】
前記電子透かしに用いるハッシュ値は、レイヤのデータから得られたデータと、タイムスタンプを組み合わせたデータから算出されるハッシュ値を用いることを特徴とする請求項１〜請求項９のいずれか１つに記載の画像生成装置。
【請求項１２】
マスクレイヤを含む複数のレイヤで構成される画像のうち、前記マスクレイヤ以外のレイヤを、電子透かしを埋め込む埋め込みレイヤとして選択する埋め込みレイヤ選択工程と、
前記埋め込みレイヤ以外の他の１又は複数のレイヤの任意の抽出領域の画素値に基づいて電子透かしを生成する生成工程と、
前記埋め込みレイヤ選択工程で選択された埋め込みレイヤの前記抽出領域に対応する埋め込み領域に、前記生成工程で生成された電子透かしを埋め込む埋め込み工程と、
を含むことを特徴とする画像生成方法。
【請求項１３】
請求項１〜請求項１１のいずれか１つに記載の発明の各手段としてコンピュータを機能させることを特徴とするコンピュータが実行可能なプログラム。
【請求項１４】
請求項１３に記載のコンピュータが実行可能なプログラムを格納したことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成装置、画像生成方法、コンピュータが実行可能なプログラム、およびコンピュータが読み取り可能な記録媒体に関し、詳細には、マスクレイヤを含む複数のレイヤで構成される画像に電子透かしを埋め込む画像生成装置、画像生成方法、コンピュータが実行可能なプログラム、およびコンピュータが読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
一般に文書は、文字・線画と画像が混在して構成されるが、こうした混在文書を効率的に符号化するために、文字・線画部分と画像部分とに分離し、各々に対して異なる符号化を施すことが有効である。図１７は、ＭＲＣ（Ｍｉｘｅｄ  Ｒａｓｔｅｒ  Ｃｏｎｔｅｎｔｓ）モデルを説明するための図である。例えば、ＭＲＣ（Ｍｉｘｅｄ  Ｒａｓｔｅｒ  Ｃｏｎｔｅｎｔｓ）モデルと呼ばれる手法は、図１７に示すように、１ページの文書を例えば文字の色情報（前景）、文字領域情報（マスク）、画像情報（背景）といった３つのレイヤに分けて、レイヤごとに符号化を行う方式である。
【０００３】
ＭＲＣモデルを採用する理由は、高圧縮率時の文字・線画の劣化防止が目的である。なぜなら、静止画の代表的な圧縮方式の一つであるＪＰＥＧアルゴリズムでは非可逆過程である量子化を行なうため、伸長された画像は圧縮前の画像データよりも画質が劣化した画像となる。通常、量子化テーブルには圧縮率を稼ぐために高周波成分ほど量子化ステップが粗くなる量子化テーブルが用いられる。そのため、特に文字や線画のように高周波成分を多く含むエッジが存在する部分で、画質の劣化が著しく、また圧縮率も低下していた。ここで文字や線画の部分を可逆圧縮方式などで独立に圧縮することにより、圧縮率を高めつつ画質の劣化を抑えることができる。
【０００４】
こうしたＭＲＣの構成は様々である。例えば、図１８のＭＲＣ構成例１は、一つの背景に対して、複数の文字画像を重ねて構成している。この文字画像は、文字形状と文字色情報の組み合わせから成り、文字形状中の色は単色である。
【０００５】
図１９のＭＲＣ構成例２では、一つの背景に対して、複数の文字形状を現すマスク画像と、文字形状中の色情報を与える一つの前景層を重ねて構成している。重ね合わせ後の画像は、文字形状を表すマスク画像が１の画素について前景層の画素値を使い、マスク画像が０の画素については背景層の画素値を使うことになる。図３では、黒文字と色文字を別にし、合計４層のレイヤで構成しているが、黒文字を別としない３層の構成でも基本概念は同じである。
【０００６】
ところで、近年、セキュリティニーズの高まりに伴い、改ざん検知や情報漏えいを防止する技術が求められている。改ざん検知が行えるようにするためには、一般に画像データからハッシュなどで作られるデータを画像の低影響領域に埋め込めばよい。一般的な方法として、画素値上位ビットのハッシュ値を透かしとして下位ビットに埋め込む方法と、周波数変換後の低周波成分のハッシュ値を変換係数の高周波成分に埋め込む方法である。また、画像をＭＲＣ方式の複数レイヤに分割した場合の真正性保証について考えると、ＭＲＣ方式の電子透かしは、複数レイヤへの分割以前に埋め込むと、分割の過程に存在する量子化処理などで透かしが壊れてしまうため、分割されたレイヤの画像に対して透かしを埋め込む必要がある。
【０００７】
例えば、特許文献１では、ディジタルコンテンツを人間のセンシビティが低い（低影響領域）と高い部分（高影響領域）に分割し、低影響領域を公開鍵で暗号化し、著作情報と高影響領域のハッシュ値とを電子透かしとして埋め込んだ上、秘密鍵で復号化し、次に、高影響領域と透かしを埋め込んだ低影響領域とを合成して透かし入り画像を生成する技術が開示されている。
【０００８】
特許文献１は、単一画像を対象とするものであるため、原画像に電子透かしを埋め込む場合には問題がないが、ＭＲＣ方式の画像の場合、文字領域、背景領域、前景領域に分割してそれぞれ異なる符号化を施すと、例えば、文字レイヤ、背景レイヤともに人間にとって意味のある画像を形成することとなる。そのため、ＭＲＣ方式の画像の場合、各レイヤは独立な画像であるから、特許文献１の方法では、各レイヤ画像に対して電子透かしを独立に埋め込むことになる。この場合、例えば、文字マスクレイヤの画像データを、電子透かしが埋め込まれた状態でそっくり置き換えるような攻撃に曝されてしまうという問題がある。このような攻撃を受けると、文字マスク単体でみると正しい電子透かしが埋め込まれているので改ざん有りとは検出されないが、文字マスクが置き換えられたことで重大な情報の改ざんとなってしまう。また、特許文献１では、ビット層のビット列を連結したデータに電子透かしを埋め込むために、改ざんが行われた箇所を特定することができないという問題がある。
【０００９】
特許文献２では、入力画像に対して所定の多層化手法を行って、複数の部分画像（層の画像）データを生成し、それぞれを符号化して部分画像（層の画像）符号を生成する。それらをまとめて出力符号を生成する。さらに、出力符号に含まれる部分画像（層の画像）符号に対して、所定の粒度で電子署名を行う技術が開示されている。
【００１０】
しかしながら、特許文献２では、著作権保持者の情報や、改ざんの有無を検知することが可能であるが、改ざんの箇所を特定することはできないという問題がある。
【００１１】
【特許文献１】特開２００５−３９６８６号公報
【特許文献２】特開２００７−８１５９６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明の目的は、複数のレイヤで構成される画像の真正性を高精度に保証すると共に、改ざんされた場合には、その改ざんの箇所を特定することが可能な画像生成装置、画像生成方法、コンピュータが実行可能なプログラム、およびコンピュータが読み取り可能な記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するために、本発明は、マスクレイヤを含む複数のレイヤで構成される画像のうち、前記マスクレイヤ以外のレイヤを、電子透かしを埋め込む埋め込みレイヤとして選択する埋め込みレイヤ選択手段と、前記埋め込みレイヤ以外の他の１又は複数のレイヤの任意の抽出領域の画素値に基づいて電子透かしを生成する生成手段と、前記埋め込みレイヤ選択手段で選択された埋め込みレイヤの前記抽出領域に対応する埋め込み領域に、前記電子透かし生成手段で生成された電子透かしを埋め込む埋め込み手段と、を備えたことを特徴とする。
【００１４】
また、上述した課題を解決し、目的を達成するために、本発明は、マスクレイヤを含む複数のレイヤで構成される画像のうち、前記マスクレイヤ以外のレイヤを、電子透かしを埋め込む埋め込みレイヤとして選択する埋め込みレイヤ選択工程と、前記埋め込みレイヤ以外の他の１又は複数のレイヤの任意の抽出領域の画素値に基づいて電子透かしを生成する生成工程と、前記埋め込みレイヤ選択工程で選択された埋め込みレイヤの前記抽出領域に対応する埋め込み領域に、前記生成工程で生成された電子透かしを埋め込む埋め込み工程と、を含むことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、マスクレイヤを含む複数のレイヤで構成される画像のうち、前記マスクレイヤ以外のレイヤを、電子透かしを埋め込む埋め込みレイヤとして選択する埋め込みレイヤ選択手段と、前記埋め込みレイヤ以外の他の１又は複数のレイヤの任意の抽出領域の画素値に基づいて電子透かしを生成する生成手段と、前記埋め込みレイヤ選択手段で選択された埋め込みレイヤの前記抽出領域に対応する埋め込み領域に、前記電子透かし生成手段で生成された電子透かしを埋め込む埋め込み手段とを備えているので、複数のレイヤで構成される画像の真正性を高精度に保証すると共に、画像が改ざんされた場合には、その改ざんの箇所を特定することが可能な画像生成装置を提供することが可能になるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下に、本発明に係る画像生成装置、画像生成方法、コンピュータが実行可能なプログラム、およびコンピュータが読み取り可能な記録媒体を画像処理装置に適用した場合の好適な実施の形態を詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。また、下記実施の形態における構成要素には、当業者が容易に想定できるものまたは実質的に同一のものが含まれる。
（実施の形態１）
【００１７】
図１は、実施の形態１に係る画像処理装置の機能構成例を示す図である。図２は、入力画像を複数レイヤに分割する例を示す図である。図３は、実施の形態１にかかる画像処理装置の全体の処理の概略を説明するためのフローチャートである。図４は、符号化処理の一例を示す図である。実施の形態１では、可逆変換されるマスクレイヤの画素値からハッシュ値を算出し、ＪＰＥＧ圧縮される前景もしくは背景に透かしを埋め込む場合について説明する。
【００１８】
本発明は、図２に示すように、ＭＲＣ構成と呼ばれるような複数のレイヤで構成される画像に対して電子透かしを埋め込む手法に関するものである。既に複数レイヤで構成されている画像を対象としても良いし、ある画像を複数レイヤに分割する処理を同一装置内にもっても構わない。例えば、紙文書をスキャンして複数レイヤ構成の電子文書を作成する場合などである。
【００１９】
実施の形態１に係る画像処理装置１００は、図１に示すように、埋め込みレイヤ選択部１００と、ハッシュ値計算部１０２と、周波数変換部１０３と、電子透かし埋め込み部１０４と、符号化部１０５と、マルチレイヤ文書化部１０６とを備えている。
【００２０】
図１の画像処理装置１００の全体動作の概略を図３は参照して説明する。図３において、埋め込みレイヤ選択部１００は、ＭＲＣ方式の画像のレイヤのうち、マスクレイヤ以外のレイヤを、電子透かしを埋め込む埋め込みレイヤとして選択し、また、１または複数のハッシュ値抽出レイヤを選択する（ステップＳ１）。ハッシュ値計算部１０２は、選択されたハッシュ値抽出レイヤのブロック毎にハッシュ値を算出する（ステップＳ２）。周波数変換部１０３は、埋め込みレイヤを周波数変換し、電子透かし埋め込み部１０４は、周波数変換された埋め込みレイヤの変換係数に、ハッシュ値を電子透かしとして埋め込む（ステップＳ３）。符号化部１０５で符号化が行われた後、マルチレイヤ文書化部１０６は符号化されたマルチレイヤを文書化する（ステップＳ４）。
【００２１】
図１の画像処理装置１００の各部の動作を説明する。埋め込みレイヤ選択部１００は、ＭＲＣフォーマットの入力画像に対して、ＭＲＣを構成するレイヤから電子透かしを埋め込む埋め込みレイヤを選択し、選択した埋め込みレイヤを周波数変換部１０３に出力する。また、埋め込みレイヤ選択部１０１は、ＭＲＣを構成するレイヤからハッシュ値を算出するためのハッシュ値抽出レイヤを選択して、ハッシュ値計算部１０２およびマルチレイヤ文書化部１０６に出力し、また、埋め込みレイヤ選択部１０１は、他のレイヤ（埋め込みレイヤおよびハッシュ値抽出レイヤ以外のレイヤ）をマルチレイヤ文書化部１０６に出力する。なお、埋め込みレイヤおよびハッシュ値抽出レイヤが決まっている場合には、埋め込みレイヤのデータを直接、周波数変換部１０３に出力し、かつ、ハッシュ値抽出レイヤのデータを直接、ハッシュ値計算部１０２に出力する構成とすることで、埋め込みレイヤ選択部１００は不要となる。
【００２２】
ハッシュ値計算部１０２は、電子透かしとして埋め込むハッシュ値を、ハッシュ値抽出レイヤのデータから算出し、算出したハッシュ値を電子透かし埋め込み部１０４に出力する。ここで、ハッシュ値は、単一のレイヤデータまたは複数のレイヤデータから算出することができる。
【００２３】
周波数変換部１０３は、埋め込みレイヤに対して符号化処理を行い、符号化処理した変換係数を電子透かし埋め込み部１０４に出力する。ここで行われる符号化処理は、場合によっては量子化の処理も含む。電子透かしの種類は、標本値に埋め込む電子透かしではなく、周波数成分に埋め込む電子透かしである。埋め込みレイヤが多値の場合には、ＪＰＥＧやＪＰＥＧ２０００などの符号化方式で符号化されることが多い。一般的な符号化処理では、図４に示すように、色変換（Ｓ１１）、周波数変換（Ｓ１２）、量子化（Ｓ１３）、係数整形（Ｓ１４）、エントロピー符号化（Ｓ１５）、コードストリーム化（Ｓ１６）が行われる。非可逆圧縮を使用する場合は、色変換および量子化の過程において情報が切り捨てられるため、符号化前の標本値に電子透かしを埋め込むよりも、周波数変換係数を量子化した後の係数に埋め込む方がよい。
【００２４】
電子透かし埋め込み部１０４は、周波数変換部１０３から入力される変換係数に対して、ハッシュ値計算部１０２で算出されたハッシュ値を入れて加工し、電子透かし入り係数を符号化部１０５に出力する。符号化部１０５は、電子透かし埋め込み部１０４から入力される電子透かし入り係数を、最終的なコードストリームまで符号化して、電子透かし入りレイヤ符号をマルチレイヤ文書化部１０６に出力する。
【００２５】
マルチレイヤ文書化部１０６は、電子透かし入りレイヤ符号、ハッシュ値抽出レイヤ、および非埋め込み非抽出レイヤの全レイヤを用いてマルチレイヤ文書を生成して出力する。例えば、各レイヤのコードストリームに、圧縮方式に関する情報、重ね合わせの情報、およびページの情報を加えてＰＤＦファイルを生成することができる。
【００２６】
図５〜図８を参照して、ハッシュ値計算部１０２におけるハッシュ値の算出の処理を詳細に説明する。図５は、ハッシュ値計算部１０２におけるハッシュ値の算出処理を説明するためのフローチャート、図６は、各レイヤの対応するブロックの一例を説明するための図である。図７、は文字マスクレイヤのブロック分割を説明するための図、図８は、分割されたブロックから入力データの生成を説明するための図である。
【００２７】
ハッシュ値計算部１０２によるハッシュ値の算出処理を図５のフローチャートに従って、図６〜図８を参照して説明する。ハッシュ値算出のために用いるレイヤは、上述したように、単一または複数とすることができる。例えば、黒文字マスク画像と、色文字マスク画像の二つのレイヤからハッシュ値を算出する場合は、それぞれのレイヤの画素値を合成してからハッシュ値を算出することが望ましい。各レイヤについてハッシュ値を計算した後に合成してもよいが、この場合はハッシュ値のビットが増えてしまうためである。
【００２８】
図５において、まず、レイヤを同じサイズのブロックに分割する（ステップＳ２１）。ここで、同じサイズのブロックとは、各レイヤを合成したときに同じ大きさであることをいう。ＭＲＣの構成では、各レイヤの解像度が異なっている場合もあり、図６に示すように、例えば、背景レイヤが１００ｄｐｉの解像度、文字マスクが２００ｄｐｉの解像度、前景レイヤが５０ｄｐｉの解像度という構成が可能である。この場合、文字マスクレイヤにおいて、６４＊６４のサイズのブロックに分割したとすると、背景レイヤは３２＊３２のブロックサイズになり、前景レイヤは１６＊１６のブロックサイズになる。このように、ブロック分割し、各レイヤを合成したときに、同じ位置に同じ大きさで重なるように対応させることにより、あるレイヤのハッシュ値を他のレイヤに埋め込みを施すと、そのレイヤに対する改ざんの位置をブロック単位で検出することが可能となる。
【００２９】
つぎに、各ブロックから画素値を抽出する（ステップＳ２２）。図７において、例えば、白黒二値の文字マスクのレイヤにおいて、Ｌ＊Ｌのサイズに分割されたブロックからハッシュ値を算出する場合には、ブロック内の画素値を連結するとＬ＊Ｌビットのデータになるため、このＬ＊Ｌビットのデータからハッシュ値を計算する。改ざん検知も同様にハッシュ値を算出する処理が必要になるため、画素値を用いる場合は、可逆圧縮を用いたレイヤデータから算出することが望ましい。
【００３０】
続いて、画素値からハッシュ値の算出に使用するビットを抽出する（ステップＳ２３）。例えば、ハッシュ関数の一つであるＳＨＡ−１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）は、「２」の６４乗ビット未満の任意の長さのデータから１６０ビットのハッシュ値を生成する。図８において、ブロックサイズをＬ＊Ｌとすると、ブロック内の全画素値を決まった順番でスキャンすることで、Ｌ＊Ｌビットのビット列を生成することができ、ハッシュ関数の入力となる。ここで、多値データからハッシュ値を算出する場合は、各画素の値をそのまま連結するとビット数が大きくなりすぎてしまう場合がある。かかる場合は、画素値の上位数ビットを使うことで、入力ビット数を減らすことができる。例えば、ブロックサイズがＬ＊Ｌで、画素値が８ビットの場合、各画素の上位６ビットを連結すると合計Ｌ＊Ｌ＊６ビットのビット列を生成できる。
【００３１】
つぎに、各レイヤから抽出したビットを合成する（ステップＳ２４）。ここで、複数のレイヤのデータを用いてハッシュ値を算出する場合には、各レイヤから抽出したビット列を合成したデータをハッシュ関数の入力とする。合成の方法は各種あるが、例えば、ビット数が少ない場合にはそのまま連結してもよく、また、ビット数が多い場合には連結したビット列を間引いて新たなビット列を生成してもよい。
【００３２】
合成したデータに基づいて、ハッシュ値を算出する（ステップＳ２５）。具体的には、生成したビット列をハッシュ関数の入力として、ハッシュ値を算出する。
【００３３】
図９〜図１１を参照して、電子透かし埋め込み部１０４における電子透かしの埋め込み処理について詳細に説明する。図９は、電子透かし埋め込み部１０４の電子透かしの埋め込み処理を説明するためのフローチャート、図１０は量子化後のＤＣＴ係数例を示す図、図１１は複数のＤＣＴ変換ブロックに電子透かしを埋め込む例を示す図である。
【００３４】
電子透かし埋め込み部１０４の電子透かしの埋め込み処理を図９のフローチャートに従って、図１０および図１１を参照しつつ説明する。図９において、まず、レイヤを同じサイズのブロックに分割する（ステップＳ３１）。電子透かしを埋め込むブロックも、上記図５のステップＳ２１と同様に、レイヤを合成した時に同じ位置に同じ大きさでブロックが揃うようにブロックを分割する。埋め込みレイヤの符号化方式が、ＤＣＴ変換などに代表されるブロック変換を使った符号化方式である場合には、ブロック変換のブロックサイズに合わせて、ハッシュ値抽出および透かし埋め込みのブロックサイズを決定するのが望ましい。ここでは、ＪＰＥＧ圧縮するレイヤに透かしを埋め込む場合を例示して説明する。この場合、縦および横について、「８」または「８の倍数」のサイズを選択するのが望ましい。符号化と透かし埋め込みの処理がブロック毎に独立に行うことが可能となるためである。
【００３５】
この後、各ブロック毎に周波数変換を行う（ステップＳ３２）。ここでは、埋め込みレイヤの符号化方式で使われるブロック毎に周波数変換を行う。例えば、ＪＰＥＧで圧縮する場合には、８＊８のブロック毎にＤＣＴ変換を行い、同じく８＊８個の変換係数を得る。ＪＰＥＧ符号化についての詳細はＩＳＯ／ＩＥＣ  ＩＳ  １０９１８  ｜  ＩＴＵ−Ｔ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  Ｔ．８１に記載されているので、その詳細な説明を省略する。
【００３６】
つぎに、変換係数を所定の量子化テーブルを用いて量子化する（ステップＳ３３）。量子化後の（ＤＣＴ）変換係数に、抽出されたハッシュ値を電子透かしとして埋め込む（ステップＳ３４）。図１０に示す量子化後のＤＣＴ係数例のうち、左上の係数がＤＣ係数であり、それ以外のＡＣ係数は右下に並んでいるものほど高周波成分を表す。人間は高周波成分ほど知覚しにくいという性質があるため、右下の方の周波数成分に埋め込む。また画質の劣化をなるべく抑えるため、ＤＣＴ係数の下位ビットにハッシュ値を埋め込む。埋め込みは、ＤＣＴ係数の所定の下位ビットを、埋め込むハッシュ値に置き換えることで行う。また、例えば１６＊１６をハッシュ値算出のブロックサイズとした場合には、図１１に示すように、ＤＣＴ変換の４つのブロックに対して埋め込みを行う。４つのＤＣＴ変換のためのブロックのＡＣ係数の高周波成分に分けて埋め込む。同図の波線部分はハッシュ値を埋め込む領域を示している。１つのブロックに１６個の係数に埋め込むよりも、４つのブロックのそれぞれ４つの係数に埋め込む方が画質劣化を抑えることができる。このように透かしの埋め込み方法は、算出されたハッシュのビット数や、改ざん検知したい画像の粒度などを考慮して決定する。
【００３７】
ＤＣＴ係数をスキャンする（ステップＳ３５）。ＤＣＴ係数のスキャンの順序はＪＰＥＧの場合は、左上から右下に向かったジグザグスキャンを行う。つぎに、スキャン順に並べられた係数をエントロピー符号化する（ステップＳ３６）。ＪＰＥＧの場合はハフマン符号化または算術符号化のいずれかで符号化する。エントロピー符号化の過程では情報は失われないため、エントロピー復号を行った直後に得られる係数は電子透かしを埋め込んだ後の係数である。従って、埋め込んだ高周波成分の下位ビットからハッシュ値を取り出して検証することができる。
【００３８】
画像サイズや画素のビット数、量子化テーブルなどの情報をヘッダとして付与し、コードストリームを生成する（ステップＳ３７）。
【００３９】
上述の方法で電子透かしを埋め込んだ画像の改ざんは、以下の手順で検出することができる。図１２は、改ざん検出の手順を説明するためのフローチャートである。以下のフローチャートの処理は、ソフトウェアまたはハードウェアで画像処理装置に実装することができる。
【００４０】
まず、画像の各レイヤのコードストリームを抽出する（ステップＳ４１）。埋め込みレイヤをエントロピー復号化する（ステップＳ４２）。ハッシュ抽出レイヤの各ブロックを復号し、ハッシュＨ１を算出する（ステップＳ４３）。埋め込みレイヤに対してエントロピー復号して得られた各ブロックの係数からハッシュＨ２を抽出する（ステップＳ４４）。さらに、各ブロック毎に、ハッシュＨ１とハッシュＨ２を比較して、異なっていれば改ざんありと判定する（ステップＳ４５）。このようにして、ハッシュＨ１とハッシュＨ２の異なるブロックを改ざん位置と特定することができる。
【００４１】
以上説明したように、実施の形態１によれば、マスクレイヤを含む複数レイヤから構成されるＭＲＣ方式の画像に対して、複数レイヤのうち、マスクレイヤ以外のレイヤを埋め込みレイヤとして選択し、かつ、埋め込みレイヤ以外のレイヤを、ハッシュ値抽出レイヤを選択し、選択されたハッシュ値抽出レイヤのブロック毎にハッシュ値を算出し、算出したハッシュ値を埋め込みレイヤの対応するブロックに電子透かしとして埋め込むこととしたので、改ざん検知機能はレイヤ画像ごとに独立ではなく、分割されたレイヤのうち任意のレイヤ画像を別のデータで置き換えて組み合わせる攻撃に対して頑健である。また、ハッシュ値を算出した領域に対応した埋め込み領域に電子透かしを埋め込むことで、改ざんされた箇所を特定することが可能となる。
【００４２】
（実施の形態２）
実施の形態２に係る画像処理装置を説明する。実施の形態２に係る画像処理装置は、実施の形態１の画像処理装置において、マスクレイヤから算出したハッシュ値を、前景と背景のレイヤのうち、合成時に参照される画素数の少ないレイヤを埋め込みレイヤとして選択する構成である。
【００４３】
ところで、多くの場合、マスクレイヤのうち文字を表す前景レイヤが使われる画素数は、絵柄を表す背景レイヤが使われる画素数よりも大幅に少ない。このような状況では、前景レイヤの多くの画素値は使用されないので、透かしを埋め込むことで起こる画質の劣化の影響をほとんど受けない。よって、レイヤを合成する際に参照される画素が少ないレイヤを埋め込み先レイヤとして選択すれば、改ざん検知の機能を変えずに、より高画質のＭＲＣ画像を生成できる。
【００４４】
画像がマスクレイヤ、前景レイヤ、および背景レイヤの３つのレイヤから構成される場合、上記図３のステップＳ１の埋め込みレイヤを選択する処理において、マスクレイヤの二値画像において、前景レイヤを参照することを示す画素の数と、背景レイヤを参照することを示す画素の数を比較し、数の少ないレイヤを埋め込みレイヤとして選択する。例えば、ＭＲＣの構成が、前景レイヤ＋マスクレイヤ＋背景レイヤとなっており、背景レイヤの画像に対してマスクレイヤの画素値が「１」の部分のみ前景レイヤの画像を上から重ねてレイヤ合成する場合には、マスクレイヤの画素値が「０」である画素と「１」である画素の総数を比べ、画素値が「１」である画素の数の方が少ない時には、前景レイヤの画像データにハッシュ値を埋め込むことを選択する。他方、画素値が「０」である画素の数が少ない時には、背景レイヤの画像データにハッシュ値を埋め込むことを選択する。
【００４５】
以上説明したように、実施の形態２によれば、埋め込みレイヤは、非マスク画像を表すレイヤのうち、レイヤを合成する際に参照される画素が最も少ないレイヤであることとしたので、改ざん検知の機能を変えずに、より高画質のＭＲＣ画像を生成することが可能となる。
【００４６】
（実施の形態３）
実施の形態３に係る画像処理装置を説明する。図１３は、実施の形態３に係る画像処理装置を説明するためのものであり、領域（ブロック）毎にマスクレイヤのデータに基づいて、埋め込みレイヤを選択する場合を説明するための図である。実施の形態３に係る画像処理装置は、実施の形態１の画像処理装置において、ハッシュ抽出領域毎に、レイヤ合成時に参照される画素値が少ないレイヤを、埋め込みレイヤとして選択する構成である。
【００４７】
図１３において、実施の形態１と同様に、全レイヤを合成した時に同じ大きさ、同じ位置になるように複数のブロックに分割する。全てのブロックに対して、ブロック毎にハッシュ値計算と、埋め込みレイヤの決定を繰り返し行う。あるブロックに対して、文字形状を表すマスクレイヤの画像の該当ブロックに含まれる二値の値（０，１）の総数をそれぞれカウントし、合成時に背景レイヤの画素値を参照する値の総数が多い場合には、前景レイヤに、マスクレイヤの画像から算出したハッシュ値を電子透かしとして埋め込む。
【００４８】
実施の形態３によれば、非マスクレイヤのうち、マスクレイヤの各ブロック毎にレイヤ合成時に参照される画素数が最も少ないレイヤを埋め込みレイヤとして選択することとしたので、改ざん検知の機能を変えずに、より高画質のＭＲＣ画像を生成することが可能となる。
【００４９】
（実施の形態４）
実施の形態４に係る画像処理装置を説明する。実施の形態４に係る画像処理装置は、実施の形態１の画像処理装置において、背景レイヤからハッシュ値を算出し、前景レイヤに埋め込む構成である。
【００５０】
マスクレイヤ、前景レイヤ、および背景レイヤで構成されるＭＲＣ方式の画像において、マスクレイヤでは二値画像を可逆圧縮し、前景レイヤ及び背景レイヤは多値画像を非可逆圧縮する場合を考える。背景レイヤは非可逆圧縮を施すため、画素値からハッシュ値を計算すると、一度圧縮して復号すると画素値は変わっており、改ざんがなされていなくても、改ざん検出のフェーズにおいて算出されるハッシュ値が埋め込みフェーズのものと変わってしまう。
【００５１】
そこで、実施の形態４では、背景レイヤからハッシュ値を算出する場合には画素値をそのまま使用せず、量子化後のＤＣＴ係数を使用する。量子化後のＤＣＴ係数は、低周波成分に有意なデータが固まっているので、低周波成分のデータを使ってハッシュ関数の入力とすることができる。算出されたハッシュ値を埋め込みレイヤに埋め込む処理は実施の形態１と同じである。
【００５２】
実施の形態４によれば、電子透かしに用いるハッシュ値を、ハッシュ値抽出レイヤの任意の抽出領域に含まれる画素を周波数変換して得られる値から算出することとしたので、背景レイヤは非可逆圧縮を施し、当該背景レイヤをハッシュ値抽出レイヤとした場合に、復号後のハッシュ値が埋め込みフェーズのものと変わってしまうことを防止することが可能となる。
【００５３】
（実施の形態５）
実施の形態５に係る画像処理装置を説明する。図１４は、ＪＰＥＧ２０００におけるウェーブレット変換を説明するための図。図１５は、マスクオフに対応するウェーブレット係数の位置を示す図である。図１６はビットプレーン構造を示す図である。
【００５４】
実施の形態５に係る画像処理装置は、実施の形態１の画像処理装置において、ウェーブレット変換を用いた符号化方式で圧縮されるレイヤの、マスクオフの画素に対応する箇所に電子透かしを埋め込む構成である。
【００５５】
ＪＰＥＧ２０００は離散ウェーブレット変換を用いた符号化方式で、符号化処理の流れはおおむね前述した一般的な符号化処理の流れと一致する。ＤＣＴ変換とウェーブレット変換で異なる点は、ＤＣＴ変換で得られる変換係数は、８＊８のブロック内における周波数のみを軸とした成分であったのに対し、ウェーブレット変換は周波数に加えて空間位置も軸とした成分である点である。図１４はウェーブレット変換された際に得られる変換係数の構造を示しており、それぞれの解像度レベルにおいて矩形で区切られた左上の部分が低周波成分を表し、右下の部分が高周波成分を表す。また、矩形内における変換係数の位置は、原画像の位置に対応して並べられる。
【００５６】
そのため、マスクがオフとなり、透かし埋め込みレイヤにおいて、レイヤ合成時に参照されない画素位置に対応するウェーブレット変換係数を特定することができる。すなわち、マスクレイヤの値から、レイヤ合成に使われない変換係数を特定し、直接その変換係数にのみ透かしを埋め込むことが可能となる。これにより、電子透かし埋め込みによる画質の劣化を抑えることができる。図１５に示す例では、網点部分がマスクオフに対応するウェーブレット係数の位置を示している。
【００５７】
また、電子透かし埋め込みを行う際には、高周波成分に埋め込んだ方が画質の劣化が小さいため、例えば右下の矩形部分であるＨＨ成分に埋め込むと良い。さらに、図１６に示すビットプレーン構造におけるＬＳＢに近いほど画質の劣化を小さくできるため、ＬＳＢからハッシュ値のビットを埋め込むのが望ましい。
【００５８】
実施の形態５によれば、マスクレイヤのマスクオフを示す画素に対応する埋め込みレイヤの変換係数に電子透かしを埋め込むこととしたので、電子透かし埋め込みによる画質の劣化を抑えることが可能となる。
【００５９】
（プログラム）
なお、本発明の画像処理装置は、複数の機器（例えば、ホストコンピュータ、インターフェイス機器、スキャナ、プリンタ等）から構成されるシステムに適用しても、１つの機器から構成される装置（ホストコンピュータ等）に適用しても良い。
【００６０】
また、本発明の目的は、上述した画像処理装置の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（または、ＣＰＵ、ＭＰＵ、ＤＳＰ）が記録媒体に格納されたプログラムコードを実行することによっても達成することが可能である。この場合、記録媒体から読み出されたプログラムコード自体が前述した画像処理装置の機能を実現することになり、そのプログラムコードまたはそのプログラムを記憶した記録媒体は本発明を構成することになる。プログラムコードを供給するための記録媒体としては、ＦＤ、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリ、ＲＯＭなどの光記録媒体、磁気記録媒体、光磁気記録媒体、半導体記録媒体を使用することができる。
【００６１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した画像処理装置の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した画像処理装置の機能が実現される場合も含まれること言うまでもない。
【００６２】
また、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した画像処理装置の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００６３】
【図１】実施の形態１に係る画像処理装置の機能構成例を示す図である。
【図２】入力画像を複数レイヤに分割する例を示す図である。
【図３】実施の形態１にかかる画像処理装置の全体の処理の概略を説明するためのフローチャートである。
【図４】符号化処理の一例を示す図である。
【図５】ハッシュ値計算部におけるハッシュ値の算出処理を説明するためのフローチャートである。
【図６】各レイヤの対応するブロックの一例を説明するための図である。
【図７】文字マスクレイヤのブロック分割を説明するための図である。
【図８】分割されたブロックから入力データの生成を説明するための図である。
【図９】電子透かし埋め込み部の電子透かしの埋め込み処理を説明するためのフローチャートである。
【図１０】量子化後のＤＣＴ係数例を示す図である。
【図１１】複数のＤＣＴ変換ブロックに電子透かしを埋め込む例を示す図である。
【図１２】改ざんを検出処理を説明するためのフローチャートである。
【図１３】領域（ブロック）毎にマスクレイヤのデータに基づいて、埋め込みレイヤを選択する場合を説明するための図である。
【図１４】ＪＰＥＧ２０００におけるウェーブレット変換を説明するための図である。
【図１５】マスクオフに対応するウェーブレット係数の位置を示す図である。
【図１６】ビットプレーン構造を示す図である。
【図１７】ＭＲＣ（Ｍｉｘｅｄ  Ｒａｓｔｅｒ  Ｃｏｎｔｅｎｔｓ）モデルを説明するための図である。
【図１８】ＭＲＣの構成例１を説明するための図である。
【図１９】ＭＲＣの構成例２を説明するための図である。
【符号の説明】
【００６４】
１００  画像処理装置
１０１  埋め込みレイヤ選択部
１０２  周波数変換部
１０３  電子透かし埋め込み部
１０４  符号化部
１０５  マルチレイヤ文書化部
【図１】
2010074242.tif 000003
【図２】
2010074242.tif 000004
【図３】
2010074242.tif 000005
【図４】
2010074242.tif 000006
【図５】
2010074242.tif 000007
【図６】
2010074242.tif 000008
【図７】
2010074242.tif 000009
【図８】
2010074242.tif 000010
【図９】
2010074242.tif 000011
【図１０】
2010074242.tif 000012
【図１１】
2010074242.tif 000013
【図１２】
2010074242.tif 000014
【図１３】
2010074242.tif 000015
【図１４】
2010074242.tif 000016
【図１５】
2010074242.tif 000017
【図１６】
2010074242.tif 000018
【図１７】
2010074242.tif 000019
【図１８】
2010074242.tif 000020
【図１９】
2010074242.tif 000021