(57)【要約】【課題】隣接する画像ブロックの重複領域の情報が少ない場合でも、改竄の検出精度を低下させない画像処理装置、方法およびプログラムを提供すること。【解決手段】本発明の画像処理装置は、電子透かしを埋め込むべき画像を複数の画像ブロックに分割し、画像ブロックに含まれる電子透かしの埋め込み対象である画素の偶奇性と、当該画素に隣接する白色の連続画素および黒色の連続画素の数を用いて算出するハッシュ値の偶奇性とを使用して電子透かしを埋め込む。画像処理装置は、第１の画像ブロックに埋め込まれた電子透かしの数が許容数を超えない場合に、第１の画像ブロックのハッシュ値を用いて、第１の画像ブロックに後続する画像ブロックのハッシュ値を算出して電子透かしを埋め込む。【選択図】図１
2013066054.tif 000002
【特許請求の範囲】
【請求項１】
画像に電子透かしを埋め込む画像処理装置であって、前記画像処理装置は、
電子透かしを埋め込むべき画像を複数の画像ブロックに分割する手段と、
前記画像ブロックを構成する画素の数を使用してハッシュ値を算出する手段と、
前記画像ブロックに含まれる電子透かしの埋め込み対象である画素の偶奇性と、前記画素に隣接する白色の連続画素および黒色の連続画素の数を用いて算出するハッシュ値の偶奇性とを使用して電子透かしを埋め込む手段と
を含み、
前記電子透かしを埋め込む手段は、
第１の画像ブロックに埋め込まれた電子透かしの数が許容数を超えない場合に、前記第１の画像ブロックのハッシュ値を用いて、前記第１の画像ブロックに後続する画像ブロックのハッシュ値を算出して電子透かしを埋め込む、画像処理装置。
【請求項２】
前記電子透かしを埋め込む手段は、
対象となる画素の偶奇性と、前記対象となる画素に隣接する白色の連続画素および黒色の連続画素の数を用いて算出するハッシュ値の偶奇性とが相違する場合に、これらの偶奇性が一致するように、前記対象となる画素の数を変更することにより電子透かしを埋め込む、請求項１に記載の画像処理装置。
【請求項３】
前記画像処理装置は、
改竄を検出する対象である画像に含まれる画素の偶奇性と、前記画素に隣接する白色の連続画素および黒色の連続画素の数を用いて算出するハッシュ値の偶奇性とを使用して改竄を検出する画像解析手段をさらに含む、請求項１または２に記載の画像処理装置。
【請求項４】
前記画像解析手段は、
改竄の検出対象である画素の偶奇性と、前記画素に隣接する白色の連続画素および黒色の連続画素の数を用いて算出するハッシュ値の偶奇性とが相違する場合に、改竄がされていると判断する、請求項３に記載の画像処理装置。
【請求項５】
画像に電子透かしを埋め込む画像処理装置が実行する方法であって、前記方法は、前記画像処理装置が、
電子透かしを埋め込むべき画像を複数の画像ブロックに分割するステップと、
前記画像ブロックに含まれる電子透かしの埋め込み対象である画素の偶奇性と、前記画素に隣接する白色の連続画素および黒色の連続画素の数を用いて算出するハッシュ値の偶奇性とを使用して電子透かしを埋め込むステップと
を含み、
前記電子透かしを埋め込むステップは、
第１の画像ブロックに埋め込まれた電子透かしの数が許容数を超えない場合に、前記第１の画像ブロックのハッシュ値を用いて、前記第１の画像ブロックに後続する画像ブロックのハッシュ値を算出して電子透かしを埋め込むステップを含む、方法。
【請求項６】
前記電子透かしを埋め込むステップは、
対象となる画素の偶奇性と、前記対象となる画素に隣接する白色の連続画素および黒色の連続画素の数を用いて算出するハッシュ値の偶奇性とが相違する場合に、これらの偶奇性が一致するように、前記対象となる画素の数を変更することにより電子透かしを埋め込む、請求項５に記載の方法。
【請求項７】
画像を解析する画像処理装置が実行する方法であって、前記方法は、前記画像処理装置が、
電子透かしを埋め込むべき画像を複数の画像ブロックに分割するステップと、
前記画像ブロックに含まれる電子透かしの埋め込み対象である画素の偶奇性と、前記画素に隣接する白色の連続画素および黒色の連続画素の数を用いて算出するハッシュ値の偶奇性とを使用して改竄を検出するステップと
を含む、方法。
【請求項８】
画像処理装置に対して、請求項５〜７のいずれか１項に記載のステップを実行させるためのコンピュータ実行可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子透かし技術に関し、より詳細には、電子透かしを埋め込み、当該電子透かしを用いて画像の改竄を検出する画像処理装置、方法およびプログラムに関する。
【背景技術】
【０００２】
従来、画像の改竄を検出する電子透かしが提案されている。電子透かしとは、画質に影響を与えることなく特定のを画像に埋め込む技術であり、データの改竄の有無や改竄された箇所を検出するために広く利用されている。
【０００３】
このような電子透かし技術の一例として、特許文献１は、デジタルコンテンツに埋め込まれた電子透かしによって改竄を検出する符号生成装置を開示する。この符号生成装置は、対象となるデジタルコンテンツを複数のブロックに分割し、個々のブロック内において独立して電子透かし情報を形成する。そして、分割された個々のブロックの上下左右に隣接するブロックと一部領域を重ね合わせて形成し、個々のブロックの電子透かし情報をブロック間の重複領域によって関係付ける。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１が開示する符号生成装置では、隣接する画像ブロックの重複領域を用いて改竄の検出を行うため、当該重複領域の情報が少ない場合、例えば、改竄の検出対象が２値画像である場合に、隣接する画像ブロックの重複領域を構成する画素が総て白色の画素または黒色の画素のときには、電子透かし情報を埋め込むことができず、改竄の検出精度が低下するという問題があった。
【０００５】
本発明は、上述した従来技術の問題点に鑑みてなされたものであり、隣接する画像ブロックの重複領域の情報が少ない場合でも、改竄の検出精度を低下させない画像処理装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の画像処理装置は、電子透かしを埋め込むべき画像を複数の画像ブロックに分割し、画像ブロックに含まれる電子透かしの埋め込み対象である画素の偶奇性と、当該画素に隣接する白色の連続画素および黒色の連続画素の数を用いて算出するハッシュ値の偶奇性とを使用して電子透かしを埋め込む。画像処理装置は、第１の画像ブロックに埋め込まれた電子透かしの数が許容数を超えない場合に、第１の画像ブロックのハッシュ値を用いて、第１の画像ブロックに後続する画像ブロックのハッシュ値を算出して電子透かしを埋め込む。また、本発明は、電子透かしを埋め込むべき画像を複数の画像ブロックに分割し、画像ブロックに含まれる電子透かしの埋め込み対象である画素の偶奇性と、当該画素に隣接する白色の連続画素および黒色の連続画素の数を用いて算出するハッシュ値の偶奇性とを使用して電子透かしを埋め込む方法およびプログラムを提供する。
【発明の効果】
【０００７】
本発明は、上記構成要件を採用することにより、隣接する画像ブロックの重複領域の情報が少ない場合でも、改竄の検出精度の低下を防止することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の画像処理装置の機能構成を示す図。
【図２】本発明の画像処理装置が実行する電子透かしの生成処理を示すフローチャート。
【図３】本発明の画像処理装置が実行する電子透かしの生成処理を示す概念図。
【図４】本発明の画像処理装置が実行する電子透かしの生成処理を示す概念図。
【図５】本発明の画像処理装置が実行する画像解析処理を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図１は、本発明の画像処理装置の機能構成を示す図である。画像処理装置１００は、電子透かしを埋め込むと共に、当該電子透かしを用いて画像の改竄を検出する画像処理装置である。本発明では、画像処理装置１００として、ＭＦＰ（Multi Function Peripheral）等の画像処理装置やＰＣ等を採用することができる。以下、図１を参照して、画像処理装置１００の機能構成について説明する。
【００１０】
画像処理装置１００は、制御部１０１と、入力部１０２と、インタフェース部１０３と、記憶部１０４とを含んで構成される。
【００１１】
制御部１０１は、画像処理装置１００の処理の全体制御を行う機能手段であり、プロセッサと、ＲＯＭ（Read Only Memory）と、ＲＡＭ（Random Access Memory）とを含んで構成される。プロセッサは、画像処理装置１００が実行する処理を演算する装置であり、ＰＥＮＴＩＵＭ（登録商標）やＡＭＤ  Ａｔｈｌｏｎ（登録商標）等のＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などの種々のプロセッサを採用することができる。ＲＯＭは、ＢＩＯＳ等のブートプログラムなどが保存される不揮発性メモリである。ＲＡＭは、本発明のプログラムを実行するための実行空間を提供する不揮発性メモリである。
【００１２】
画像処理装置１００は、ＷＩＮＤＯＷＳ（登録商標）シリーズ、Ｍａｃ（登録商標）ＯＳ、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）などのオペレーティングシステム（ＯＳ）の管理下でアセンブラ、Ｃ、Ｃ＋＋、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、ＰＥＲＬ、ＲＵＢＹ、ＰＹＴＨＯＮなどのプログラム言語で記述された本発明のプログラムを展開して実行することにより、後述する各機能手段を画像処理装置１００上に実現する。本発明のプログラムは、ＣＤ−ＲＯＭ、ＭＯ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭなどの装置可読な記録媒体に格納してインストールすることができると共に、ネットワークを介してインストールすることができる。
【００１３】
入力部１０２は、キーボードやマウス等の入力装置を制御する機能手段である。入力部１０２は、ユーザが入力装置を利用して入力した情報を受け付け、当該情報を画像処理装置１００のＯＳに提供する。
【００１４】
インタフェース部１０３は、ＵＳＢメモリやメモリカード等のフラッシュメモリなどの可搬型の外部記憶装置を接続するインタフェースである。本実施形態では、インタフェース部１０３として、ＵＳＢポートやメモリカードスロット等の物理インタフェースを採用することができる。また、インタフェース部１０３は、ＬＡＮやインターネット等のネットワークと接続するインタフェースとして構成することもでき、ＬＡＮケーブルコネクタやモジュラーケーブルコネクタ等の物理インタフェースを採用してもよい。
【００１５】
記憶部１０４は、ＳＳＤ（Flash Solid State Drive）やＨＤＤ（Hard Disc Drive）等の大容量の不揮発性メモリであり、本発明のプログラムや画像処理装置１００が処理する画像データ等の様々なデータが保存される。
【００１６】
また、画像処理装置１００は、表示部１０５と、表示制御部１０６と、画像取得部１０７とを含んで構成される。
【００１７】
表示部１０５は、本発明のプログラムが提供するＧＵＩ（Graphical User Interface）や画像処理装置１００のＯＳが提供するＧＵＩを表示する表示装置である。画像処理装置１００としてＭＦＰを採用する実施形態では、表示部１０５として操作パネルを採用することができる。画像処理装置１００としてＰＣを採用する実施形態では、画像処理装置１００に接続可能なディスプレイや画像処理装置１００と一体形成されるディスプレイを表示部１０５として採用することができる。
【００１８】
表示制御部１０６は、表示部１０５に表示する画像を制御する機能手段である。表示制御部１０６は、本発明のプログラムが提供するＧＵＩや画像処理装置１００のＯＳが提供するＧＵＩを表示部１０５に表示させる。
【００１９】
画像取得部１０７は、電子透かしを埋め込む画像や改竄の解析対象の画像を取得する機能手段である。画像取得部１０７は、画像処理装置１００が備えるスキャナ装置または画像処理装置１００に接続されたスキャナ装置から処理対象となる画像を取得することができる。また、画像取得部１０７は、インタフェース部１０３を介して外部接続された記憶装置やネットワーク接続された画像提供サーバから処理対象となる画像を取得することができる。
【００２０】
さらに、画像処理装置１００は、電子透かし生成部１０８と、画像解析部１０９と、ハッシュ変換部１１０と、圧縮部１１１と、伸張部１１２とを含んで構成される。
【００２１】
電子透かし生成部１０８は、電子透かしを生成する機能手段である。電子透かし生成部１０８は、処理対象である２値化された画像データを複数のブロックに分割し、各ブロックを構成する各画素値を利用して電子透かしを埋め込む。なお、電子透かしの生成処理については、図３および図４を参照して詳細に説明する。
【００２２】
画像解析部１０９は、処理対象の画像に含まれる電子透かしを用いて画像が改竄されているか解析する機能手段である。画像解析部１０９は、解析対象である２値化された画像データを複数のブロックに分割し、各ブロックを構成する各画素値を利用して改竄がされているか解析する。
【００２３】
また、画像解析部１０９は、表示制御部１０６を介して解析結果を表示部１０５に表示する。画像解析部１０９は、改竄がされていると判断した場合には、改竄されている画像部分を反転表示した画像を生成し、または黒色で塗り潰した画像を生成するなど、ユーザが当該改竄部分を識別できるような画像を生成して表示部１０５に表示する。
【００２４】
ハッシュ変換部１１０は、ハッシュ関数を用いてハッシュ値を算出する機能手段である。ハッシュ変換部１１０は、電子透かし生成部１０８および画像解析部１０９から呼び出され、ユーザが指定したキーを用いて、電子透かしの生成および解析に利用するハッシュ値を算出する。
【００２５】
圧縮部１１１は、画像データを可逆圧縮する機能手段である。圧縮部１１１は、電子透かし生成部１０８が電子透かしを埋め込んだ画像データをＰＮＧやＧＩＦ等の画像圧縮形式によって圧縮する。
【００２６】
伸張部１１２は、可逆圧縮された画像データを伸張する機能手段である。伸張部１１２は、ＰＮＧやＧＩＦ等の画像圧縮形式によって圧縮された改竄の解析対象である画像データを伸張する。
【００２７】
図２は、本発明の画像処理装置が実行する電子透かしの生成処理を示すフローチャートである。以下、図２を参照して、画像処理装置１００が実行する電子透かしの生成処理について説明する。
【００２８】
図２の処理は、ステップＳ２０１から開始し、電子透かし生成部１０８が、ハッシュ変換部１１０が算出するハッシュ値を代入する変数であるハッシュ変数（ＨａｓｈＮＯ［０］、ＨａｓｈＮＯ［１］）と、電子透かしの数を代入する変数である電子透かしカウンタ（ＷＭ＿ＣＮＴ）とを初期化する。本実施形態では、ハッシュ変数（ＨａｓｈＮＯ［０］、ＨａｓｈＮＯ［１］）を１で初期化し、電子透かしカウンタ（ＷＭ＿ＣＮＴ）を０で初期化する。ステップＳ２０２では、電子透かし生成部１０８は、電子透かしを埋め込むべき画像をｎ×ｍ（ｎ，ｍは任意の整数）ピクセルの画像ブロックに分割する。以降の処理（ステップＳ２０３からステップＳ２１１）は、画像ブロック毎に処理する。
【００２９】
ステップＳ２０３では、電子透かし生成部１０８は、電子透かしカウンタ（ＷＭ＿ＣＮＴ）が示す画像ブロックに埋め込まれている電子透かしの数が、１画像ブロック当たりに埋め込まれる電子透かしの許容数を超えているか否か判断する。電子透かしの数が許容数を超えていない場合には（ｎｏ）、処理をステップＳ２０７に分岐する。本実施形態では、電子透かし許容数は設定ファイル等に記述して記憶部１０４に保存してもよく、または本発明のプログラムに組み込んでもよい。なお、最初の画像ブロックに対する処理では、電子透かしの数が許容数を超えないため、必ずステップＳ２０７に分岐する。
【００３０】
一方、電子透かしの数が許容数を超えている場合には（ｙｅｓ）、処理をステップＳ２０４に分岐する。ステップＳ２０４では、電子透かし生成部１０８は、ハッシュ変数（ＨａｓｈＮＯ［０］）にハッシュ変数（ＨａｓｈＮＯ［１］）の値を代入する。ステップＳ２０５では、電子透かし生成部１０８は、電子透かしカウンタ（ＷＭ＿ＣＮＴ）を０で初期化する。ステップＳ２０６では、電子透かし生成部１０８は、ハッシュ変数（ＨａｓｈＮＯ［１］）を１で初期化する。
【００３１】
ステップＳ２０７では、電子透かし生成部１０８は、ハッシュ変換部１１０を呼び出し、後述するハッシュ関数を用いて処理対象の連続画素のハッシュ値を算出させ、当該ハッシュ値をハッシュ変数（ＨａｓｈＮＯ［０］およびＨａｓｈＮＯ［１］）に代入する。
【００３２】
ステップＳ２０８では、電子透かし生成部１０８は、処理対象の連続画素が電子透かしの埋め込み対象であるか否か判断する。本実施形態では、電子透かし生成部１０８は、処理対象の連続画素の画素値を使用して乱数を生成し、当該乱数のモジュロ値（ｍｏｄ）が特定の値（例えば、０以外の値、または奇数値等）場合に、電子透かしの埋め込み対象ではないと判断する。
【００３３】
処理対象の連続画素が電子透かしの埋め込み対象であると判断した場合には（ｙｅｓ）、処理をステップＳ２０９に分岐する。ステップＳ２０９では、電子透かし生成部１０８は、処理対象の連続画素に対して電子透かしを埋め込む。ステップＳ２１０では、電子透かし生成部１０８は、電子透かしカウンタ（ＷＭ＿ＣＮＴ）をインクリメントする。一方、ステップＳ２０８の判定で処理対象の連続画素が電子透かしの埋め込み対象でないと判断した場合には（ｎｏ）、処理をステップＳ２１１に分岐する。
【００３４】
ステップＳ２１１では、直前のステップＳ２０７〜ステップＳ２１０の処理対象であった連続画素を含む同一の画像ブロック内に未処理の連続画素が存在するか否か判断する。同一の画像ブロック内に未処理の連続画素が存在する場合には（ｙｅｓ）、処理をステップＳ２０７に戻し、未処理の連続画素について、ステップＳ２０７〜ステップＳ２１０の処理を実行する。一方、同一の画像ブロック内に未処理の連続画素が存在しない場合には（ｎｏ）、処理をステップＳ２１２に分岐する。
【００３５】
ステップＳ２１２では、電子透かし生成部１０８は、総ての画像ブロックについて処理が終了したか否か判断する。総ての画像ブロックについて処理が終了していない場合には（ｎｏ）、処理をステップＳ２０３に戻し、未処理の画像ブロックについて、ステップＳ２０３〜ステップＳ２１１の処理を実行する。一方、総ての画像ブロックについて処理が終了した場合には（ｙｅｓ）、処理をステップＳ２１３に分岐する。
【００３６】
ステップＳ２１３では、電子透かし生成部１０８は、電子透かしが埋め込まれた画像を記憶部１０４に保存し、ステップＳ２１４で処理が終了する。本実施形態では、電子透かしが埋め込まれた画像を記憶部１０４に保存するが、他の実施形態では、インタフェース部１０３を介して外部記憶装置や外部サーバに保存してもよい。また、他の実施形態では、電子透かしが埋め込まれた画像を可逆圧縮して記憶部１０４や外部記憶装置、外部サーバに保存してもよい。
【００３７】
図３および４は、本発明の画像処理装置が実行する電子透かしの生成処理を示す概念図である。
【００３８】
図３に示す画像ブロック３００，３０２，３０４，３０６，３０８は、電子透かしを埋め込むべき画像を構成する画像ブロックであり、それぞれＰ×Ｐ個（Ｐは任意の整数）の画素で構成される。画像処理装置１００は、処理対象の画像の左上に位置する画像ブロック３００から画像ブロック３０２，３０４，３０６，３０８の順に処理を実行する。画像処理装置１００は、同一列の画像ブロックの処理が終了すると、下列の画像ブロック（図示せず）に対して処理を実行する。
【００３９】
初めに、画像処理装置１００は、画像ブロック３００に対して電子透かしの埋め込みを行う。画像処理装置１００は、上述したように電子透かしの生成処理の開始時点で、ハッシュ変数（ＨａｓｈＮＯ［０］およびＨａｓｈＮＯ［１］）および電子透かしカウンタ（ＷＭ＿ＣＮＴ）を「０」で初期化する。画像処理装置１００は、３１０に示すように画像ブロック３００の左上から順に、画像ブロック３００に対して電子透かしを埋め込む。図３に示す実施形態では、画像ブロック３００に対して１５の電子透かしが埋め込まれ、電子透かしカウンタ（ＷＭ＿ＣＮＴ）が「１５」となる。
【００４０】
次に、画像処理装置１００は、画像ブロック３０２に対して電子透かしの埋め込みを行う。画像ブロック３０２に対する電子透かしの埋め込みの開始時点で、電子透かしカウンタ（ＷＭ＿ＣＮＴ）の値「１５」が、本実施形態の電子透かし数の許容数である「１２」を超えているため、画像処理装置１００は、ハッシュ変数（ＨａｓｈＮＯ［０］）にハッシュ変数（ＨａｓｈＮＯ［１］）の値を代入すると共に、電子透かしカウンタ（ＷＭ＿ＣＮＴ）を「０」で初期化する。
【００４１】
そして、画像処理装置１００は、画像ブロック３０２に電子透かしを埋め込む。図３に示す実施形態では、画像ブロック３０２に対して１０の電子透かしが埋め込まれ、画像ブロック３０２に対する電子透かしの埋め込みが終了した時点で電子透かしカウンタ（ＷＭ＿ＣＮＴ）が「１０」となる。
【００４２】
次に、画像処理装置１００は、画像ブロック３０４に対して電子透かしの埋め込みを行う。画像ブロック３０４に対する電子透かしの埋め込みの開始時点で、電子透かしカウンタ（ＷＭ＿ＣＮＴ）の値「１０」が、本実施形態の電子透かし数の許容数である「１２」を超えていないため、画像処理装置１００は、ハッシュ変数（ＨａｓｈＮＯ［０］）にハッシュ変数（ＨａｓｈＮＯ［１］）および電子透かしカウンタ（ＷＭ＿ＣＮＴ）の値を変更せずに、画像ブロック３０４に対して電子透かしの埋め込みを行う。図３に示す実施形態では、画像処理装置１００は、画像ブロック３０４に対して電子透かしを埋め込まず、画像ブロック３０２に対する電子透かしの埋め込みが終了した時点で電子透かしカウンタ（ＷＭ＿ＣＮＴ）の値「１０」が維持される。
【００４３】
次に、画像処理装置１００は、画像ブロック３０６に対して電子透かしの埋め込みを行う。画像ブロック３０６に対する電子透かしの埋め込みの開始時点で、電子透かしカウンタ（ＷＭ＿ＣＮＴ）の値「１０」が、本実施形態の電子透かし数の許容数である「１２」を超えていないため、画像処理装置１００は、ハッシュ変数（ＨａｓｈＮＯ［０］）にハッシュ変数（ＨａｓｈＮＯ［１］）および電子透かしカウンタ（ＷＭ＿ＣＮＴ）の値を変更せずに、画像ブロック３０６に対して電子透かしの埋め込みを行う。図３に示す実施形態では、画像処理装置１００は、画像ブロック３０６に対して１２の電子透かしを埋め込むため、画像ブロック３０２に対する電子透かしの埋め込みが終了した時点で電子透かしカウンタ（ＷＭ＿ＣＮＴ）の値「２２」となる。
【００４４】
次に、画像処理装置１００は、画像ブロック３０８に対して電子透かしの埋め込みを行う。画像ブロック３０８に対する電子透かしの埋め込みの開始時点で、電子透かしカウンタ（ＷＭ＿ＣＮＴ）の値「２２」が、本実施形態の電子透かし数の許容数である「１２」を超えているため、画像処理装置１００は、ハッシュ変数（ＨａｓｈＮＯ［０］）にハッシュ変数（ＨａｓｈＮＯ［１］）の値を代入すると共に、電子透かしカウンタ（ＷＭ＿ＣＮＴ）を「０」で初期化する。そして、画像処理装置１００は、画像ブロック３０６で算出したハッシュ値を使用して、画像ブロック３０８に電子透かしの埋め込みを行う。画像処理装置１００は、上述した処理を総ての画像ブロックに対して実行する。
【００４５】
本実施形態では、画像処理装置１００は、下記数式１に示すハッシュ関数を使用して電子透かしを生成する。
【００４６】
【数１】
2013066054.tif 000003
ここで、ｉは０または１の値を取り、上記ハッシュ関数のキーである前ＨａｓｈＮＯ［ｉ］は、ハッシュ変数（ＨａｓｈＮＯ［０］またはＨａｓｈＮＯ［１］）の値を示す。前Ｌｗは、電子透かしの埋め込み対象である連続画素の左前に配置された白色の連続画素（白ラン）の画素の数、すなわち白ランの長さを示す。また、前Ｌｂは、電子透かしの埋め込み対象である連続画素の左側に配置された黒色の連続画素（黒ラン）の画素の数、すなわち黒ランの長さを示す。電子透かしの埋め込みにより、これらの連続画素の数が変更されている場合には、変更後の画素の数を採用する。
【００４７】
さらに、素数は、電子透かしを埋め込むユーザが任意に設定可能な素数であり、生成元は、当該素数に付随する生成元の数値である。なお、解読を困難にするために、大きな数値の素数を採用することが好適である。また、Ｘ（数値）％素数は、当該Ｘを素数で割った余りを示す。当該余り小数点以下は切り捨てされる。他の実施形態では、下記数式２を用いてＸ％素数を代用してもよい。
【００４８】
【数２】
2013066054.tif 000004
ここで、Ｎは割る数値を２Ｎで表現したときの指数を示す。また、Ｍは、（２Ｎ）／（素数）＋０．５で算出される値の小数以下を切り捨てた値を示す。
【００４９】
図４は、電子透かしの埋め込み対象の画像４００を示しており、画像４００は、構成する画像ブロック４０２は、白色の画素群４０４および黒色の画素群４０６，４０８から構成される。黒色の連続画素４１２を電子透かしの埋め込み対象画素とすると、黒色の連続画素（黒ラン）４１０の数が上記数式１の前Ｌｂに相当し、白色の連続画素（白ラン）４１１の数が上記数式１の前Ｌｗに相当する。
【００５０】
図４に示す実施形態では、電子透かしの埋め込み対象である連続画素４１２の左側に位置する黒色の連続画素（黒ラン）４１０は、４２０に示すように８個の黒色の画素（「１」）で構成されるため、前Ｌｂは８となる。また、白色の連続画素（白ラン）４１１は、４２１に示すように４個の白色の画素（「０」）で構成されるため、前Ｌｗは４となる。一方、連続画素４１２は、４２２に示すように４個の黒色の画素（「１」）で構成されるため、その偶奇性は偶である。画像処理装置１００は、数式１を用いて前Ｌｂおよび前Ｌｗとその他のキーを指定してハッシュ値を算出する。そして、画像処理装置１００は、当該ハッシュ値の偶奇性と連続画素４１２の偶奇性を比較し、偶奇性が相違する場合には、これらの偶奇性が一致するように、連続画素４１２の画素の数を増減することにより電子透かしを埋め込む。
【００５１】
本実施形態では、ハッシュ変数（ＨａｓｈＮＯ［０］）をキーとして算出したハッシュ値を２進数で表記した値の最下位ビットの偶奇性と、連続画素４１２の偶奇性とを比較する。他の実施形態では、他のビット値の偶奇性を利用してもよい。さらに、図４に示す実施形態では、電子透かしの埋め込み対象として連続する画素を採用しているが、本発明の画像処理装置１００は、単一の画素を電子透かしの埋め込み対象とすることができる。
【００５２】
図５は、本発明の画像処理装置が実行する画像解析処理を示すフローチャートである。以下、図５を参照して、画像処理装置１００が実行する画像解析処理について説明する。
【００５３】
図５の処理は、ステップＳ５０１から開始し、画像解析部１０９が、ハッシュ変換部１１０が算出するハッシュ値を代入する変数であるハッシュ変数（ＨａｓｈＮＯ［０］、ＨａｓｈＮＯ［１］）と、電子透かしの数を代入する変数である電子透かしカウンタ（ＷＭ＿ＣＮＴ）とを初期化する。本実施形態では、ハッシュ変数（ＨａｓｈＮＯ［０］、ＨａｓｈＮＯ［１］）を１で初期化し、電子透かしカウンタ（ＷＭ＿ＣＮＴ）を０で初期化する。ステップＳ５０２では、画像解析部１０９は、電子透かしを埋め込むべき画像をｎ×ｍ（ｎ，ｍは任意の整数）ピクセルの画像ブロックに分割する。以降の処理（ステップＳ５０３からステップＳ５１１）は、画像ブロック毎に処理する。
【００５４】
ステップＳ５０３では、画像解析部１０９は、電子透かしカウンタ（ＷＭ＿ＣＮＴ）が示す画像ブロックに埋め込まれている電子透かしの数が、１画像ブロック当たりに埋め込まれる電子透かしの許容数を超えているか否か判断する。電子透かしの数が許容数を超えていない場合には（ｎｏ）、処理をステップＳ５０７に分岐する。本実施形態では、電子透かし許容数は設定ファイル等に記述して記憶部１０４に保存してもよく、または本発明のプログラムに組み込んでもよい。なお、最初の画像ブロックに対する処理では、電子透かしの数が許容数を超えないため、必ずステップＳ５０７に分岐する。
【００５５】
一方、電子透かしの数が許容数を超えている場合には（ｙｅｓ）、処理をステップＳ５０４に分岐する。ステップＳ５０４では、画像解析部１０９は、ハッシュ変数（ＨａｓｈＮＯ［０］）にハッシュ変数（ＨａｓｈＮＯ［１］）の値を代入する。ステップＳ５０５では、画像解析部１０９は、電子透かしカウンタ（ＷＭ＿ＣＮＴ）を０で初期化する。ステップＳ５０６では、画像解析部１０９は、ハッシュ変数（ＨａｓｈＮＯ［１］）を１で初期化する。
【００５６】
ステップＳ５０７では、画像解析部１０９は、ハッシュ変換部１１０を呼び出し、後述するハッシュ関数を用いて処理対象の連続画素のハッシュ値を算出させ、当該ハッシュ値をハッシュ変数（ＨａｓｈＮＯ［０］およびＨａｓｈＮＯ［１］）に代入する。
【００５７】
ステップＳ５０８では、画像解析部１０９は、ハッシュ変数（ＨａｓｈＮＯ［０］）の偶奇性が処理対象の連続画素の偶奇性と同一であるか判断することにより、処理対象の連続画素に改竄がなされているか否か判断する。ハッシュ変数（ＨａｓｈＮＯ［０］）の偶奇性が処理対象の連続画素の偶奇性と相違する場合には、改竄がされていると判断し（ｙｅｓ）、処理をステップＳ５０９に分岐する。ステップＳ５０９では、画像解析部１０９は、改竄されている連続画素の識別情報（例えば、当該連続画素の位置座標等）を解析結果として保存する。
【００５８】
一方、ステップＳ５０８の判定でハッシュ変数（ＨａｓｈＮＯ［０］）の偶奇性が処理対象の連続画素の偶奇性と同一である場合には、改竄がされていないと判断し（ｎｏ）、処理をステップＳ５１０に分岐する。ステップＳ５１０では、画像解析部１０９は、電子透かしカウンタ（ＷＭ＿ＣＮＴ）をインクリメントする。
【００５９】
ステップＳ５１１では、直前のステップＳ５０７〜ステップＳ５１０の処理対象であった連続画素を含む同一の画像ブロック内に未処理の連続画素が存在するか否か判断する。同一の画像ブロック内に未処理の連続画素が存在する場合には（ｙｅｓ）、処理をステップＳ５０７に戻し、未処理の連続画素について、ステップＳ５０７〜ステップＳ５１０の処理を実行する。一方、同一の画像ブロック内に未処理の連続画素が存在しない場合には（ｎｏ）、処理をステップＳ５１２に分岐する。
【００６０】
ステップＳ５１２では、画像解析部１０９は、総ての画像ブロックについて処理が終了したか否か判断する。総ての画像ブロックについて処理が終了していない場合には（ｎｏ）、処理をステップＳ５０３に戻し、未処理の画像ブロックについて、ステップＳ５０３〜ステップＳ５１１の処理を実行する。一方、総ての画像ブロックについて処理が終了した場合には（ｙｅｓ）、処理をステップＳ５１３に分岐する。
【００６１】
ステップＳ５１３では、画像解析部１０９は、ユーザが改竄部分を識別可能な画像を生成し、解析結果として表示部１０５に表示し、ステップＳ５１４で処理が終了する。
【００６２】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、本実施形態の構成要素を変更若しくは削除し、または本実施形態の構成要素を他の構成要素を追加するなど、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００６３】
１００…画像処理装置、１０１…制御部、１０２…入力部、１０３…インタフェース部、１０４…記憶部、１０５…表示部、１０６…表示制御部、１０７…画像取得部、１０８…電子透かし生成部、１０９…画像解析部、１１０…ハッシュ変換部、１１１…圧縮部、１１２…伸張部
【先行技術文献】
【特許文献】
【００６４】
【特許文献１】特許第４０３５３８３号
【図１】
2013066054.tif 000005
【図２】
2013066054.tif 000006
【図３】
2013066054.tif 000007
【図４】
2013066054.tif 000008
【図５】
2013066054.tif 000009