JP2007049440A - 画像処理装置、画像処理方法、および画像処理プログラム - Google Patents

画像処理装置、画像処理方法、および画像処理プログラム Download PDF

Info

Publication number
JP2007049440A
JP2007049440A JP2005231822A JP2005231822A JP2007049440A JP 2007049440 A JP2007049440 A JP 2007049440A JP 2005231822 A JP2005231822 A JP 2005231822A JP 2005231822 A JP2005231822 A JP 2005231822A JP 2007049440 A JP2007049440 A JP 2007049440A
Authority
JP
Japan
Prior art keywords
data
image
block
embedded
embedding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005231822A
Other languages
English (en)
Inventor
Motohiro Asano
基広 浅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konica Minolta Business Technologies Inc
Original Assignee
Konica Minolta Business Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Konica Minolta Business Technologies Inc filed Critical Konica Minolta Business Technologies Inc
Priority to JP2005231822A priority Critical patent/JP2007049440A/ja
Publication of JP2007049440A publication Critical patent/JP2007049440A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 画像全体に渡ってデータを分散させて埋め込みながら、埋め込みデータ量を可変設定することができ、必要なデータ量を埋め込むことができる、あるいはその埋め込んだデータを精度よく検出することができる画像処理装置、画像処理方法、および画像処理プログラムを提供する。
【解決手段】 埋め込みデータを複数のデータブロックに分割する埋め込みデータ分割手段と、データを埋め込まれる原画像を複数の画像ブロックに分割する画像分割手段と、分割された各画像ブロックに、所定の対応規則に従って、前記複数のデータブロックの何れかを対応づける画像内データブロック配置手段とを有する、データ埋め込み/検出処理を行う画像処理装置、画像処理方法、および画像処理プログラム。
【選択図】 図6

Description

この発明は画像処理装置、画像処理方法、および画像処理プログラムに関し、特に、画像へのデータの埋め込みや検出を行なうことができる画像処理装置、画像処理方法、および画像処理プログラムに関する。
情報のデジタル化の進展とともに、電子透かしなどに代表されるデータ埋め込みの技術が一般化し、近年では、印刷物などのアナログ画像媒体にも適用されるようになってきている。印刷物に対するデータの埋め込みは、電子データの場合と異なり、画像プリント時や画像読み取り時に埋め込み信号の劣化が大きく、様々な対策手法が検討されている。
印刷物に対するデータ埋め込みの代表的な方法としては、プリント時に、文書画像などに地紋のような形でドットを配置し、一見すると背景模様のように見えながら、そのドット配置(ドットパターン)にデータが埋め込まれており、スキャナなどで前記文書画像を読みとった際に、文書画像とともに再現された前記ドットパターンを検出し、埋め込まれたデータを抽出するという技術がある(例えば、特許文献1および2参照)。
これらのドットパターンを用いるデータの埋め込み、検出の技術は、文書画像のような印刷物の場合により適した手法であり、埋め込み、検出の効率を高め、その精度も向上させた。
しかしながら、文書画像には、その画像の一部だけが利用されたり、画像の一部の画質劣化があったりして、読み取り、検出のできない画像領域が発生する可能性がある。また読み取りが可能であっても、画質劣化などで検出誤りの発生する可能性が依然としてある。
画像において検出に有効でない領域があっても、埋め込んだデータを検出できるように、画像全体をブロックに分割して、画像全体に渡り、各ブロックにデータを分散するような形でデータを埋め込む技術が提案されている(例えば、特許文献3参照)。これにより画像の一部に読み取りできない領域があっても、他の箇所から読み取りが可能になる。
またデータを誤り訂正符号を用いて符号化し、検出時に誤り訂正ができるような形で埋め込む技術も提案されている(例えば、特許文献4参照)。これにより何ビットかの検出誤りが発生しても、その誤りを判断して修正することが可能となった。
しかしながら、誤り訂正符号を利用することは、検出力を向上する代わりに埋め込み可能なデータ量を減少させることになる。また、画像中に読み取りに使用できない領域が発生した場合には、誤り訂正符号も役には立たない。画像をブロックに分割して、データを分散して埋め込む方法も、読み取りを確実にはするものの、同じデータを各ブロックに繰り返し埋め込むため、埋め込み可能なデータ量は制約を受ける。
またどちらの場合も、埋め込んだデータを検出するためには、埋め込むデータ量を予め固定する必要がある。あるいは別途データ量に関する情報を検出する側に伝達する手段を必要とする。すなわち、埋め込み時に埋め込みデータ量を任意に可変とすることが困難であり、対策が求められる。
特開2003−101762号公報 特開2004−128845号公報 特開2000−59610号公報 特開2002−218207号公報
上記のように、埋め込みデータの読み取り、検出を確実にするため、埋め込みデータ量を減らしすぎず、画像全体に渡って、データが埋め込まれるようにし、また埋め込みデータ量を任意に設定できるような、画像へのデータ埋め込み方法が求められている。
本発明の目的は、上記課題を解決し、画像全体に渡ってデータを分散させて埋め込みながら、埋め込みデータ量を可変設定することができ、必要なデータ量を埋め込むことができる、あるいはその埋め込んだデータを精度よく検出することができる画像処理装置、画像処理方法、および画像処理プログラムを提供することである。
上記の課題を解決するために、本発明は以下の特徴を有するものである。
(1)
画像情報にデータを埋め込み、データ埋め込み画像を作成するデータ埋め込み手段を有する画像処理装置において、前記埋め込みデータを複数のデータブロックに分割し、分割された各データブロックに、当該データブロックを特定するデータを付与する埋め込みデータ分割手段と、前記埋め込みデータ分割手段で分割された各データブロックのサイズに応じて、データを埋め込まれる原画像を複数の画像ブロックに分割する画像分割手段と、前記画像分割手段で分割された複数の画像ブロックそれぞれに、所定の対応規則に従って、前記複数のデータブロックの何れかを対応づける画像内データブロック配置手段と、を有することを特徴とする画像処理装置。
(2)
前記データ埋め込み手段は、前記画像分割手段で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置手段により二次元的な対応規則で対応づけられた前記データブロックを、前記埋め込みデータ分割手段で付与された当該データブロックを特定するデータと共に埋め込み処理し、データ埋め込み画像を作成することを特徴とする前記(1)に記載の画像処理装置。
(3)
前記データ埋め込み手段は、前記画像分割手段で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置手段で対応づけられた前記データブロックに付与された当該データブロックを特定するデータを、各々の対応する画像ブロック内の複数箇所に埋め込み処理することを特徴とする前記(1)または(2)に記載の画像処理装置。
(4)
前記データ埋め込み手段は、前記画像分割手段で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置手段で対応づけられた前記データブロックが、埋め込まれたデータの最初もしくは最後のデータブロックであることを示すデータを、各々の対応する画像ブロック内に埋め込み処理することを特徴とする前記(1)乃至(3)の何れか1項に記載の画像処理装置。
(5)
前記データ埋め込み手段は、前記画像分割手段で分割された各画像ブロックそれぞれに対して、その画像ブロック内の特定の位置に、隣接する他の画像ブロックとの境界位置を示すデータを埋め込み処理することを特徴とする前記(1)乃至(4)の何れか1項に記載の画像処理装置。
(6)
前記データ埋め込み手段は、前記画像分割手段で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置手段で対応づけられた前記データブロックに付与された当該データブロックを特定するデータを、誤り訂正符号により符号化して埋め込み処理することを特徴とする前記(1)乃至(5)の何れか1項に記載の画像処理装置。
(7)
前記データ埋め込み手段は、前記画像分割手段で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置手段で対応づけられた前記データブロックを埋め込み処理する際に、前記データブロックに付与された当該データブロックを特定するデータ以外のデータには、誤り訂正符号による符号化を行うことなく埋め込み処理することを特徴とする前記(1)乃至(6)の何れか1項に記載の画像処理装置。
(8)
前記(1)乃至(7)の何れか1項に記載の画像処理装置により作成されたデータ埋め込み画像、あるいは当該データ埋め込み画像に対して印刷、読み取りの処理を経た画像から、埋め込まれたデータを検出し、復元するデータ検出手段を有することを特徴とする画像処理装置。
(9)
前記データ検出手段は、対象となる画像から、前記画像分割手段で分割された各画像ブロックを検出し、各画像ブロックそれぞれに対して、対応するデータブロックを、前記埋め込みデータ分割手段で付与されたデータブロックを特定するデータにより特定し、各データブロックそれぞれに対して埋め込まれたデータを検出処理し、埋め込みデータを復元することを特徴とする前記(8)に記載の画像処理装置。
(10)
前記データ検出手段は、検出された各画像ブロックそれぞれに対して、対応する前記データブロックを特定するデータを検出処理するときは、前記画像内データブロック配置手段で用いられた所定の対応規則に基づき、周辺の他の画像ブロックでの検出結果に基づいて検出処理することを特徴とする前記(8)または(9)に記載の画像処理装置。
(11)
前記データ検出手段は、検出された各画像ブロックそれぞれに対して、対応する前記データブロックを特定するデータが誤り訂正符号により符号化されていた場合、誤り検出処理を行い、誤りありと判定された場合には対応する前記データブロックを特定するデータとは見なさないことを特徴とする前記(10)に記載の画像処理装置。
(12)
画像情報にデータを埋め込み、データ埋め込み画像を作成するデータ埋め込み工程を有する画像処理方法において、前記埋め込みデータを複数のデータブロックに分割し、分割された各データブロックに、当該ブロックを特定するデータを付与する埋め込みデータ分割工程と、前記埋め込みデータ分割工程で分割された各データブロックのサイズに応じて、データを埋め込まれる原画像を、複数の画像ブロックに分割する画像分割工程と、前記画像分割工程で分割された複数の画像ブロックそれぞれに、所定の対応規則に従って、前記複数のデータブロックの何れかを対応づける画像内データブロック配置工程と、を有することを特徴とする画像処理方法。
(13)
前記データ埋め込み工程は、前記画像分割工程で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置工程により二次元的な対応規則で対応づけられた前記データブロックを、前記埋め込みデータ分割工程で付与された当該データブロックを特定するデータと共に埋め込み処理し、データ埋め込み画像を作成することを特徴とする前記(12)に記載の画像処理方法。
(14)
前記データ埋め込み工程は、前記画像分割工程で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置工程で対応づけられた前記データブロックに付与された当該データブロックを特定するデータを、各々の対応する画像ブロック内の複数箇所に埋め込み処理することを特徴とする前記(12)または(13)に記載の画像処理方法。
(15)
前記データ埋め込み工程は、前記画像分割工程で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置工程で対応づけられた前記データブロックが、埋め込まれたデータの最初もしくは最後のデータブロックであることを示すデータを、各々の対応する画像ブロック内に埋め込み処理することを特徴とする前記(12)乃至(14)の何れか1項に記載の画像処理方法。
(16)
前記データ埋め込み工程は、前記画像分割工程で分割された各画像ブロックそれぞれに対して、その画像ブロック内の特定の位置に、隣接する他の画像ブロックとの境界位置を示すデータを埋め込み処理することを特徴とする前記(12)乃至(15)の何れか1項に記載の画像処理方法。
(17)
前記データ埋め込み工程は、前記画像分割工程で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置工程で対応づけられた前記データブロックに付与された当該データブロックを特定するデータを、誤り訂正符号により符号化して埋め込み処理することを特徴とする前記(12)乃至(16)の何れか1項に記載の画像処理方法。
(18)
前記データ埋め込み工程は、前記画像分割工程で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置工程で対応づけられた前記データブロックを埋め込み処理する際に、前記データブロックに付与された当該データブロックを特定するデータ以外のデータには、誤り訂正符号による符号化を行うことなく埋め込み処理することを特徴とする前記(12)乃至(17)の何れか1項に記載の画像処理方法。
(19)
前記(12)乃至(18)の何れか1項に記載の画像処理方法により作成されたデータ埋め込み画像、あるいは当該データ埋め込み画像に対して印刷、読み取りの処理を経た画像から、埋め込まれたデータを検出し、復元するデータ検出工程を有することを特徴とする画像処理方法。
(20)
前記データ検出工程は、対象となる画像から、前記画像分割工程で分割された各画像ブロックを検出し、各画像ブロックそれぞれに対して、対応するデータブロックを、前記埋め込みデータ分割工程で付与されたデータブロックを特定するデータにより特定し、各データブロックそれぞれに対して埋め込まれたデータを検出処理し、埋め込みデータを復元することを特徴とする前記(19)に記載の画像処理方法。
(21)
前記データ検出工程は、検出された各画像ブロックそれぞれに対して、対応する前記データブロックを特定するデータを検出処理するときは、前記画像内データブロック配置工程で用いられた所定の対応規則に基づき、周辺の他の画像ブロックでの検出結果に基づいて検出処理することを特徴とする前記(19)または(20)に記載の画像処理方法。
(22)
前記データ検出工程は、検出された各画像ブロックそれぞれに対して、対応する前記データブロックを特定するデータが誤り訂正符号により符号化されていた場合、誤り検出処理を行い、誤りありと判定された場合には対応する前記データブロックを特定するデータとは見なさないことを特徴とする前記(21)に記載の画像処理方法。
(23)
前記(12)乃至(22)の何れか1項に記載の画像処理方法をコンピュータに実行させることを特徴とする画像処理プログラム。
本発明によれば、画像をブロックに分割し、それぞれの画像ブロックに、やはり分割したデータブロックを所定の規則に従って対応付け、画像全体に渡ってデータを分散させて埋め込み処理を行うことにより、画像の一部欠損にも強いデータ検出が可能で、なおかつデータの冗長性を保持できるので、誤り訂正符号などの必要性がなく、データ検出を確実にするためのデータ量抑制が少なく、必要なデータ量を埋め込み、検出することができる画像処理装置、画像処理方法、および画像処理プログラムを提供することができる。
さらに本発明によれば、所定の規則に従って分割したデータを対応づけているため、埋め込みデータ量を可変設定しても、埋め込まれた情報からデータ量を検出でき、埋め込みデータ全体の復元が容易な、データ量可変対応の埋め込み、検出のできる画像処理装置、画像処理方法、および画像処理プログラムを提供することができる。
本発明は、例えばスキャナやカメラなどの画像読み取り装置、複写機、多機能型のプリンタ(以下、MFPと称する)などの画像入出力機能を有する画像形成装置などに実施可能である。またそれらの画像入出力装置と接続されたパーソナルコンピュータなどのプログラムを用いた画像データ処理機能を有する装置においても実施可能である。
(実施形態例1)
図1を用いて、パーソナルコンピュータ(以下、PCと称する)を用いた画像処理装置を例にして、本発明の第1の実施の形態例を説明する。図1は、第1の実施の形態例における画像処理装置の構成を示すブロック図である。
図を参照して画像処理装置は、PC(パーソナルコンピュータ)301と、表示装置として動作するモニタ303と、ユーザの入力装置として動作するマウス305およびキーボード307と、データやプログラムを記憶する外部記憶装置309と、画像などを出力するプリンタ311と、原稿から画像を読取るスキャナ313とから構成される。
PC301内のメモリには、ドット埋め込み処理ソフト301aと、ドット検出処理ソフト301bのいずれかあるいは両方が記録されており、これらソフトウェア(プログラム)に従いコンピュータが動作する。本実施形態例では、ドット埋め込み処理ソフト301aと、ドット検出処理ソフト301bの両方がPC301内のメモリに記録されているものとしている。
図2は、図1のPC301の内部をより詳細に説明する図である。
図を参照してPC301内には、入出力インタフェイス403と、CPUおよびメモリ405と、記憶装置401とが含まれる。
記憶装置401内には、OS(Operating System)409と、演算処理部407とが含まれている。なお記憶装置401の一部は、外部記憶装置としてもよい。
キーボード307やマウス305からのユーザ指示421、およびスキャナ313からのスキャン画像427は、入出力インタフェイス403を介して、PC301に入力される。また、PC301から入出力インタフェイス403を介してモニタ303やプリンタ311にデータが送られることにより、画像データ表示423やプリント画像425の出力が実行される。
(埋め込み/検出処理の概略フロー)
図3(a)には、上記装置においてドット埋め込み処理ソフト301aに従い処理されるドット埋め込み処理の概略フローを示す。図3(b)には、同じくドット検出処理ソフト301bに従い処理されるドット検出処理の概略フローを示す。図3(a)および(b)を用いて、埋め込み/検出処理の概略を説明する。詳細は後述する。
図3(a)におけるドット埋め込み処理の開始時点で、データを埋め込まれる文書画像などの画像データ11が入力されている。一方では、次のステップS11でその画像データ11に埋め込むべき埋め込みデータ12が用意されている。ステップS11では、埋め込みデータ12がブロックに分割処理される。併せてそれに対応するよう画像データ11の方もブロックに分割されている。
次のステップS12では、画像データのブロックごとに、対応する埋め込みデータブロックのデータが、ドットパターンとして打たれていく。すなわち、文書画像にドットパターンが地模様のようになって付加されていく。これがステップS13でプリントされて埋め込み処理の終了時点では、印刷物13となって出力される。
図3(b)のドット検出処理では、これとは逆に、ステップS14で印刷物13をスキャナなどで読み取る。次のステップS15では、読み取った画像データに対して、付加されたドットパターンを検出し、元のビットデータに戻す。さらにステップS16で、各ブロックのデータを総合して元の埋め込みデータを復元処理し、復元された埋め込みデータ14が得られて検出処理を終了する。
図4は、上記の埋め込み処理によりドットが埋め込まれた印刷物13の具体例を示す図である。印刷物13において、背景が全体的にグレーがかって見えている領域15があるが、これがドットパターンを埋め込んだ領域であり、実は小さなドットが小さな間隔で数多くほぼ全面に打たれているのである。
(埋め込み/検出処理の機能構成)
図5の埋め込み/検出処理の機能構成ブロック図を用いて、上記のドット埋め込み/検出処理に関わる機能構成を説明する。
101は画像入力部であり、埋め込みデータ12が埋め込まれる画像データ11を入力する。あるいはデータを検出すべき印刷物13を画像入力する。例えばスキャナ313やその他PCに接続された一般入力装置や通信回線などにより入力される。102は埋め込みデータ12の入力部であり、埋め込みデータがキーボード307やマウス305のユーザ指示421などにより、入力される。
103は入力された画像データ11を画像ブロックに分割処理する画像分割処理部であり、画像分割手段として機能する。104は入力された埋め込みデータ12をデータブロックに分割処理する埋め込みデータ分割処理部であり、埋め込みデータ分割手段として機能する。
105は画像内データブロック配置処理部であり、分割された各画像ブロックに同じく分割された各データブロックを所定の規則に従い対応付ける処理を行う。画像内データブロック配置手段として機能する。
106は、各画像ブロックごとに所定のデータブロックのデータをドットパターンとして埋め込んでいくデータ埋め込み処理部であり、データ埋め込み手段として機能する。107は、各画像ブロックからドットパターンを検出することでデータブロックのデータを読み取り、埋め込みデータを復元するデータ検出処理部であり、データ検出手段として機能する。
103から106の各処理部は、それぞれドット埋め込み処理ソフト301aの一部がPC記憶装置401の処理演算部407において動作するものである。107のデータ検出処理部はドット検出処理ソフト301bが、同じくPC記憶装置401の処理演算部407において動作するものである。
108は、埋め込み処理中の画像データの一時記憶など、処理に必要な情報記憶を行うメモリであり、記憶装置401により記憶される。109は出力部であり、埋め込み処理や検出処理の結果などを出力する。例えばプリンタ311やモニタ303などにより、データを埋め込んだ印刷物13や復元された埋め込みデータ14などが出力される。
110は制御部であり、上記の各処理部の処理全体を制御する。PC301におけるCPU/メモリ405がこの制御を実行する。
(データ埋め込み処理例1)
図6はデータ埋め込み処理例の各工程を示すフローチャートである。図6を用いて、データ埋め込み処理の一例の詳細な流れを説明する。また適時、図5も参照する。
データ埋め込み処理が開始されると、まず画像データと埋め込みデータが入力される。
ステップS101はデータ入力工程であり、埋め込みデータ入力部102が埋め込みデータを入力し、メモリ108に一時記憶する。同じくステップS102は画像入力工程であり、画像入力部101がデータを埋め込まれる文書画像などの画像データを入力し、同じくメモリ108に一時記憶する。
ステップS103は、埋め込みデータのデータ長に基づき、適切なブロック数に埋め込みデータを分割する。データ埋め込み処理例1では1画像ブロック当たり6バイト埋め込みの処理を設定する。例えば、埋め込みデータ長が66バイトであれば11のブロックに埋め込みデータを分割し、1データブロックを6バイト長にする。これで1画像ブロック毎に1データブロックを対応させ、埋め込むことができる。
ステップS104では、ステップS103で設定したブロックサイズ(この場合6バイト)に従ってデータを分割していく。
ステップS105では、ステップS104で分割した各データブロックにデータブロック番号(以後、単にブロック番号ともいう)を付与していく。このデータブロック番号は、そのデータブロックを特定するデータとして用いる。すなわち、そのデータブロックが、分割する前の埋め込みデータのどの部分に相当するかを特定するものであり、その目的を達成できるならば必ずしも番号である必要はない。
ここでは埋め込みデータの最初の6バイトを0ブロック目の番号0とし、最後の6バイトを10ブロック目の番号10とするように順番に番号を振り、ブロック番号とした。ブロック番号は1バイトで表現し、データブロックに付け加えた。すなわち、1データブロック当たりデータ6バイトに対し、ブロック番号1バイトが増えたことになる。
以上のステップS103、S104、S105が協働して埋め込みデータ分割工程として機能することになる。これらのステップは、埋め込みデータ分割処理部104によって実行される。
図8を用いて上述の埋め込みデータ分割工程を説明する。図8は66バイトの埋め込みデータをバイト単位で並べ、11ブロックに分割した様子を図示したものである。
図8において、21の埋め込みデータ例は、1行が6バイトで1ブロックを示し、11行分で11ブロックである。22のブロック番号は、埋め込みデータ1ブロック(1行)に対して1つずつ、0から10までの番号を振ってある。
66バイトの埋め込みデータの最初の1バイトは、8ビットの二進数データ11010011を211(左上)と表現している。その右が2バイト目で5である。さらに右へ行き、6バイト目が4で、ここまでが最初のブロック、すなわちブロック番号0のデータブロックとなる。ブロック番号0が1バイトデータとして付与される。つまりデータとしては8ビットの00000000が付加される。
同様にして次の行の6バイト分データがブロック番号1のデータブロックとなる。以下同様で、最終的には最終行の94に始まり、45に終わる6バイト分のデータがブロック番号10の最終ブロック、すなわち11番目のデータブロックとなる。そしてブロック番号データとして10、すなわち8ビットの00001010が付加される。
このそれぞれの6バイトデータ(+ブロック番号1バイト)が、埋め込みの単位となり、後述の画像ブロックにドットパターンとして埋め込まれる。
図6に戻り、次に画像分割工程について説明する。
ステップS106では、画像をブロックに分割するために、ブロックサイズを決定する。これは分割された埋め込みデータのデータブロックサイズと対応していなければならない。この場合、分割された埋め込みデータが各6バイトであり、さらにそれに付与されるデータ量も考慮して1画像ブロック当たり8バイトが埋め込みできるような設定とする。
後述するが、1ビット埋め込むのに16画素×16画素のドットパターンを使用するとすれば、8バイトでは16画素×16画素の64倍、例えば128画素×128画素の画像ブロックサイズとなる。
ステップS107では、ステップS106で設定した画像ブロックサイズ(この場合、128画素×128画素)に従って、画像全体をブロック分割していく。
以上のステップS106、107が協働して画像分割工程として機能することになる。これらのステップは、画像分割処理部103によって実行される。
次のステップS108は、画像内データブロック配置工程である。画像内データブロック配置処理部105が以下の工程を実行する。
画像が分割された各画像ブロックごとに、分割されたデータブロックを対応づけていく。データブロックはこの場合11ブロックであり、画像ブロック数の方が圧倒的に多い。これを利用して埋め込みに繰り返し冗長性を持たせる。しかも、あるデータブロックが繰り返し埋め込まれるのみならず、できる限り画像全体に渡って分散されるように埋め込まれることが望ましい。これにより画像の一部で埋め込みデータが検出できないという事態が生じても、画像の他の箇所で検出できる可能性を大きくすることができる。
上記の目的を達するために、各画像ブロックに対して、所定の規則に従って各データブロックを対応づけることができる。その配置の仕方は様々なバリエーションが考えられるが、図9を用いてその一例を説明する。
図9は、画像が画像ブロックに分割されており、その各画像ブロックに対して、埋め込むデータブロックのブロック番号を対応させた様子を図示したものである。
図9において、例えば画像領域31は6×10個の桝目からなり、画像ブロック例32が示すように、1つの桝目が1画像ブロックを表している(但し、図9は例示であり、実際の画像では画像ブロック数は遙かに多くなる)。
各画像ブロックの桝目内の数値が、その画像ブロックに対応するデータブロックのブロック番号を示す。ここでの各画像ブロックに対するブロック番号の対応させ方を規定するのは、次のような規則である。
(1)左上の最初の画像ブロックに対しては、ブロック番号0を初期値として与える。
(2)画像ブロックを右に進むと、ブロック番号は1増える。但し、総ブロック数を超えないように、総ブロック数で割った余りをブロック番号とする。
(3)画像ブロックを下に進むと、ブロック番号は5増える。但し、総ブロック数を超えないように、総ブロック数で割った余りをブロック番号とする。
実際、図9で画像ブロックを右へ進むとブロック番号は1ずつ増えており、10の次は0となっている。また、画像ブロックを下へたどるとブロック番号は5ずつ増えていき、例えば10の次は4であり、15を11で割った余りになっている。
このように左右方向と上下方向、二次元的に相関を持つように、画像ブロックとブロック番号は対応づけられており、データが分割されバラバラに分散されているように見えながら、ブロック番号を基にして、一部が定まれば全体が定まるようになっている。しかも、同じブロック番号の同じデータブロックが全体に分散され、繰り返し埋め込まれるような配置となっている。
このことから、冗長による検出誤り防止と画像の一部欠損に対する耐性向上、ブロック番号の付与とその検出誤り対策によりデータが分割されていても一意的に復元可能、などの効果が生み出される。
またブロック番号を付与してこういった二次元的配置を行うことで、データ長が変更されても、その情報もこの配置から読み取ることができ、予めデータ長に関する情報を得ておく必要はない。データ長の任意可変性を有するという効果もある。
図6に戻り、次のステップS109は、データ埋め込み工程である。データ埋め込み処理部106がこの工程を実行する。
各画像ブロックごとに、ステップS108で対応付けられた各データブロックのデータをドットパターン化し、各画像ブロック内のどの位置に配置するかを定め、ドットパターンの配列という形で画像に付加し、埋め込み画像を作成する。これらの処理の詳細は後述する。
次いでステップS110では、埋め込み画像出力工程であり、出力部109が、ステップS109で作成された埋め込み画像を、例えばプリントして印刷物にするといった形で出力する。これでデータ埋め込み処理は終了する。
図7を用いて、上記ステップS109のデータ埋め込み工程の詳細な流れを説明する。図7は、画像ブロックごとでの対応データブロック埋め込みの各工程を示すフローチャートである。
ステップS201では、処理対象となる画像ブロックを設定する。後のステップS209での判定に応じて、処理対象となる画像ブロックは更新されていくのである。
ステップS202では、ステップS201で設定した画像ブロックに対して、対応するデータブロック番号をメモリ108から参照する。これにより、必要時にそのブロック番号のデータブロックを引き出してくることができる。
ステップS203では、データを構成する各ビットの信号を1ビット毎にドットパターン化する、そのドットパターンをメモリ108から参照しておく。参照して、各ビットをすぐにパターンに変換できるよう用意しておくのは、3つのドットパターンである。
図10には、使用するドットパターンの実例を示す。何れも16画素×16画素のパターンであり、パターンの境界を示す各パターンに共通の黒のドットと、その信号(パターン)に特有の位置にある黒のドット、そして背景となる白(ドットのない部分)からなる。図10(a)から(c)は、パターンの境界をわかりやすくするため、16画素×16画素のパターンより少し大きめに図示している。
図10(a)はビット0を表すドットパターンであり、b0がこの信号に特有の位置にあるドットである。図10(b)はビット1を表すドットパターンであり、b1がこの信号に特有の位置にあるドットである。ビット0とビット1の違いは、このb0とb1、どちらの位置にドットがあるかによるものである。
図10(c)は特殊データと呼称している。d0、d1がこの信号に特有の位置にあるドットである。特殊データは、ビット0やビット1といったデータを表すものではなく、画像ブロック内のある特定の位置に配置することにより、分割された画像ブロックの境界の位置を特定するためのものである。
画像ブロックとデータブロックは対応づけられており、データブロックを一つの単位として取り出すためには、各画像ブロック領域を特定する必要がある。後述するようにこの特殊データがその主たる手がかりであり、通常のデータと区別できるように異なったパターンを用いている。
以下のステップS204からステップS208にかけて、画像ブロック内にデータの埋め込み、すなわちドットパターンに変換して画像データに付加していく処理を行う。画像ブロック内にどのようにデータを配置していくかをまず説明する。
図11は、128画素×128画素の画像ブロック内に16画素×16画素のドットパターンで表されるデータをどのように配置していくかを示した図である。
図11においては、例えば画像ブロック例32aは8×8個の桝目からなり、ドットパターン例33が示すように、1つの桝目が1つのドットパターンを表している。従って画像ブロック例32aは、左右方向に8パターン、上下方向に8パターンの、64パターンからなる。
画像ブロック内の64パターンの配列を、上から順に見ると、最初の段は、特殊データ、未使用部分そしてフラグからなる。
特殊データは、上述したように画像ブロックの境界を示すためのものである。左上の角に位置づけている。
右上にはフラグを位置づけている。フラグはデータブロックの総数、つまり最終のデータブロック番号を知るためのものであり、最終のデータブロックの場合にはビット1を、それ以外の場合にはビット0を入れる。これにより最終のデータブロック番号をより確実に知ることができ、近接する画像ブロックでのデータブロック番号から、読み取りにくかった画像ブロックのデータブロック番号を、データブロック配置の二次元的相関を利用して検出することがやりやすくなる。
画像ブロックの2段目の8パターンはブロック番号を表す。これは既に述べたようにこの画像ブロックに対応するデータブロックの元の埋め込みデータでの位置を特定するデータであり、この画像ブロック内に存在することに意味があり、埋め込みデータ本体のように画像全体に分散させることはできない。従ってブロック番号をより確実に検出するための手だては考えておく必要がある。
後述するように、ブロック番号のみは誤り訂正符号を利用することも考えられるし、上記のように、近接する画像ブロックでのデータブロック番号から、読み取りにくかった画像ブロックのデータブロック番号を、データブロック配置の二次元的相関を利用して検出することも必要であろう。
3段目以下、8段目までが、データブロックの本体部分6バイトが当てられる部分である。6段、すなわち48パターン分に6バイト、すなわち48ビットのデータが、図に示すような配置でドットパターンに変換して当てはめられることになる。
図12に、図8に示した埋め込みデータのブロック番号0、すなわち最初のデータブロックのデータを画像ブロック32aに対応させて配置し、当てはめた例を示す。
左上に画像ブロックの境界を示す特殊データ、そして未使用である6個のビット0、右上にはフラグとして、最終ブロックではないのでビット0が入っている。2段目にはブロック番号が0であるので、すべてビット0が入る。3段目には1バイト目のデータ、すなわち211を示す11010011の各ビットが、そして各段同様にして、最下段には6バイト目、すなわち4を示す00000100の各ビットが、それぞれ対応するドットパターンに変換されて埋め込まれることになる。
図13には、同じく図8に示した埋め込みデータのブロック番号10、すなわち最後のデータブロックのデータを画像ブロック32aに対応させて配置し、当てはめた例を示す。
図12のブロック番号0の場合とデータの内容は異なるが、その配置は同様である。右上のフラグについては、最終ブロックであるのでビット1が入る。2段目にはブロック番号が10であるので、00001010の各ビットが入る。3段目以降に最終ブロックの各データが入るのも同様である。
図7に戻り、ステップS201で設定した処理対象の画像ブロックに対し、以下のステップS204からステップS208の工程で、対応するデータブロックの各ビットデータが順次埋め込まれる。画像ブロック内の配置は上述の通りである。ステップS202で参照したデータブロックの各ビットデータを、それぞれステップS203で参照したドットパターンに変換し、画像ブロック内の所定の位置に順次埋め込むという処理を行う。
ステップS204では、上記特殊データをパターン化して埋め込む。
ステップS205では、未使用ビットをパターン化して埋め込む。
ステップS206では、フラグデータをパターン化して埋め込む。
ステップS207では、ブロック番号データをパターン化して埋め込む。
ステップS208では、データブロック本体の埋め込みデータ6バイト分をパターン化して埋め込む。
以上で設定した画像ブロックに対するドットパターン埋め込みは終了する。
次にステップS209では、画像分割された全画像ブロックに対してステップS201からステップS208のドットパターン埋め込み処理を終了したかどうかを判定する。
まだ未処理の画像ブロックが残っている場合(ステップS209:NO)は、ステップS201へ戻り、処理対象の画像ブロックを更新し、新たな画像ブロックの設定でステップS202以下を実行する。これらの操作は、ステップS209で全画像ブロックの処理を終えたと判定されるまで繰り返される。
全画像ブロックに対して処理を終了した場合(ステップS209:YES)は、画像ブロックごとのデータ埋め込み処理は終了であり、データ埋め込み画像の作成を終えたことになる。図6のステップS109が終了したことになるので、図6の次のステップS110、すなわちデータ埋め込み画像を出力する工程へ進めばよい。
(データ埋め込み処理例2)
データ埋め込み処理の別の例を、同じく図6を用いて説明する。図6はデータ埋め込み処理例の各工程を示すフローチャートであり、この処理の流れはデータ埋め込み処理例1(以下、処理例1と称する)と同様である。詳細な流れの違いを以下に説明する。
データ埋め込み処理が開始されると、まず画像データと埋め込みデータが入力されるのは処理例1と同様であり、ステップS101とステップS102の説明は省略する。
ステップS103は、埋め込みデータのデータ長に基づき、適切なブロック数に埋め込みデータを分割する。データ埋め込み処理例2では1画像ブロック当たり28バイト埋め込みの処理を設定する。例えば、埋め込みデータ長が308バイトであれば11のブロックに埋め込みデータを分割し、1データブロックを28バイト長にする。これで1画像ブロック毎に1データブロックを対応させ、埋め込むことができる。
ステップS104では、ステップS103で設定したデータブロックサイズ(この場合28バイト)に従ってデータを分割していく。
ステップS105では、ステップS104で分割した各データブロックにデータブロック番号を付与していくのは処理例1と同様である。ここでは埋め込みデータの最初の28バイトを0ブロック目の番号0とし、最後の28バイトを10ブロック目の番号10とするように順番に番号を振り、ブロック番号とした。
この処理例が処理例1と異なる点として、ブロック番号の検出力を向上するため、画像ブロックのサイズを大きく取っていることを利用して、1画像ブロック内の二箇所に、異なる配置で繰り返しブロック番号を埋め込む処理を行っている。
また併せて、ブロック番号を上位4ビットと下位4ビットに分割し、それぞれ誤り訂正符号により符号化する処理を行っている。4ビットに分割したのは、4ビットを7ビット化するタイプの誤り訂正符号により符号化するためである。それにより上位4ビットと下位4ビットはそれぞれ7ビットになり、各々二回ずつ埋め込まれるため、合計28ビットがブロック番号データとして28バイトのデータブロック本体に付け加わることになる。具体的な画像ブロック内での配置は後述する。
誤り訂正符号による符号化の方式は、公知の様々な方法が知られている。それらの任意の方式を用いることが可能であるが、この処理例では図14に示すような巡回ハミング方式の誤り訂正符号化を採っている。
図14においては、16通りの4ビット情報に対して、それぞれが符号化され、7ビットの誤り訂正可能な符号化データが得られる対応関係を示している。例えば、4ビットの0000を誤り訂正符号化すると7ビットの0000000となる。4ビットの0011であれば7ビットの0011101となる。
符号化の詳細は省略するが、総ビット数が増えているものの、ビット0とビット1の並び方に特定の規則が生ずるように配置されるため、ビットの欠損や読み誤りがあっても、その規則を利用して復元することが可能になる。
処理例1でも説明したように、データブロック番号は、その画像ブロックに埋め込まれたデータブロックを特定するためのデータであり、その画像ブロック内で読みとれなければ意味がないため、特に読み取り誤りの少ないように対策しなければならない。後述の二次元的な画像内データブロック配置の規則を用いた復元を用いればよいが、さらに補強するため、こういった画像ブロック内での繰り返し埋め込みや誤り訂正符号化を用いてもよい。
以上のステップS103、104、105が協働して埋め込みデータ分割工程として機能することになるのは処理例1と同様である。これらのステップは、埋め込みデータ分割処理部104によって実行される。
ステップS106では、画像をブロックに分割するために、ブロックサイズを決定する。これも処理例1と同様であるが、異なる点として、分割された埋め込みデータが各28バイトであり、さらにそれに付与されるブロック番号などのデータ量も考慮して1画像ブロック当たり32バイトが埋め込みできるような設定としている。
1ビット埋め込むのに16画素×16画素のドットパターンを使用するのは同じなので、32バイトでは16画素×16画素の256倍、例えば256画素×256画素の画像ブロックサイズとなる。
ステップS107では、ステップS106で設定した画像ブロックサイズ(この場合、256画素×256画素)に従って、画像全体をブロック分割していく。
以上のステップS106、107が協働して画像分割工程として機能することになるのも処理例1と同様である。これらのステップは、画像分割処理部103によって実行される。
次のステップS108は、画像内データブロック配置工程である。画像内データブロック配置処理部105が以下の工程を実行する。
この工程も処理例1と同様であるが、再度、以下にその目的と概略を述べる。
画像が分割された各画像ブロックごとに、分割されたデータブロックを対応づけていく。これを利用して埋め込みに繰り返し冗長性を持たせる。しかも、あるデータブロックが繰り返し埋め込まれるのみならず、できる限り画像全体に渡って分散されるように埋め込まれることが望ましい。これにより画像の一部で埋め込みデータが検出できないという事態が生じても、画像の他の箇所で検出できる可能性を大きくすることができる。
上記の目的を達するために、各画像ブロックに対して、所定の規則に従って各データブロックを対応づけることができる。その配置の仕方は様々なバリエーションが考えられる。
処理例1で図9を用いてその一例を説明したが、同じ説明を適用することができる。すなわち、図9に対してブロック番号の対応させ方を規定するのは、次のような規則である。
(1)左上の最初の画像ブロックに対しては、ブロック番号0を初期値として与える。
(2)画像ブロックを右に進むと、ブロック番号は1増える。但し、総ブロック数を超えないように、総ブロック数で割った余りをブロック番号とする。
(3)画像ブロックを下に進むと、ブロック番号は5増える。但し、総ブロック数を超えないように、総ブロック数で割った余りをブロック番号とする。
このように左右方向と上下方向、二次元的に相関を持つように画像ブロックとブロック番号は対応づけられており、データが分割されバラバラに分散されているように見えながら、ブロック番号を基にして、一部が定まれば全体が定まるようになっている。しかも、同じブロック番号の同じデータブロックが全体に分散され、繰り返し埋め込まれるような配置となっている。
このことから、冗長による検出誤り防止と画像の一部欠損に対する耐性向上、ブロック番号の付与とその検出誤り対策によりデータが分割されていても一意的に復元可能、などの効果が生み出される。
またブロック番号を付与してこういった二次元的配置を行うことで、データ長が変更されても、その情報もこの配置から読み取ることができ、予めデータ長に関する情報を得ておく必要はない。データ長の任意可変性を有するという効果もある。
次のステップS109は、データ埋め込み工程である。データ埋め込み処理部106が以下の工程を実行する。
各画像ブロックごとに、ステップS108で対応付けられた各データブロックのデータをドットパターン化し、各画像ブロック内のどの位置に配置するかを定め、ドットパターンの配列という形で画像に付加し、埋め込み画像を作成するのは、処理例1と同様であるが、その詳細については異なる。この工程の詳細は後述する。
次いでステップS110では、埋め込み画像出力工程であり、出力部109が、ステップS109で作成された埋め込み画像を、例えばプリントして印刷物にするといった形で出力するのは、処理例1と同様である。これでデータ埋め込み処理は終了する。
図7を用いて、上記ステップS109のデータ埋め込み工程の詳細な流れを説明する。図7は、画像ブロックごとの対応データブロック埋め込みの各工程を示すフローチャートである。
ステップS201からステップS203については、処理例1と同様であり、説明を省略する。
図10を用いて説明した、使用するドットパターンの実例(ビット0を表すドットパターン、ビット1を表すドットパターン、特殊データと呼称するドットパターン)についても同様である。
引き続くステップS204からステップS207にかけて、画像ブロック内にデータの埋め込み、すなわちドットパターンに変換して画像データに付加していく処理を行う。画像ブロック内にどのようにデータを配置していくかについては、処理例1とは異なるので、以下に具体的に説明する。
図15は、256画素×256画素の画像ブロック内に16画素×16画素のドットパターンで表されるデータをどのように配置していくかを示した図である。
図15においては、例えば画像ブロック例32bは16×16個の桝目からなり、ドットパターン例33が示すように、1つの桝目が1つのドットパターンを表している。従って画像ブロック例32bは、左右方向に16パターン、上下方向に16パターンの、256パターンからなる。
配置されているデータは、処理例1と同様に、特殊データ、フラグ、ブロック番号データ、データブロックの本体データである。ただし、本体データは28バイトであり、ブロック番号データは、誤り訂正符号化と繰り返し埋め込みを含めて28ビットである。
特殊データは、画像ブロックの境界を示すためのものであり、処理例1と同様に左上の角に位置づけている。フラグはデータブロックの総数、つまり最終のデータブロック番号を知るためのものであり、右上の角に位置づけているのも同様である。
フラグには、最終のデータブロックの場合にはビット1を、それ以外の場合にはビット0を入れる。これにより最終のデータブロック番号をより確実に知ることができ、近接する画像ブロックでのブロック番号から、読み取りにくかった画像ブロックのブロック番号を、データブロック配置の二次元的相関を利用して検出することがやりやすくなる。
特殊データとフラグの間の14パターン分には本体データの27バイト目と28バイト目を入れている。28バイト目が2ビット足りない分は2段目の右端の余った2ビット分に入れている。
画像ブロックの2段目の内14パターンにはブロック番号を入れている。これは既に述べたようにこの画像ブロックに対応するデータブロックの元の埋め込みデータでの位置を特定するデータであり、この画像ブロック内に存在することに意味があり、データのように画像全体に分散させることはできない。従ってブロック番号を誤りなく検出するために、ここでは誤り訂正符号化を行ったうえ、9段目にも繰り返し同じデータを入れている。
誤り訂正符号の利用については、前述したように巡回ハミング方式を用いて、上位4ビット、下位4ビットをそれぞれ7ビットに符号化し、計14ビットを2段目に入れている。もちろん、誤り訂正符号化の有無にかかわらず、近接する画像ブロックでのブロック番号から、読み取りにくかった画像ブロックのブロック番号を、データブロック配置の二次元的相関を利用して検出することも併せて行えばよい。
3段目以下、8段目までは、データブロックの本体部分12バイトが当てられる部分である。各段にそれぞれ2バイト分で6段、すなわち96パターン分に1バイト目から12バイト目、すなわち96ビットのデータがドットパターンに変換して当てはめられることになる。
9段目には、再びブロック番号データを入れている。つまり、2段目と同じデータを繰り返し入れているのである。但し、上位ビットデータと下位ビットデータの順序は入れ替えている。また余った2ビット分は未使用としてビット0を入れている。
10段目から最後の16段目までは、再びデータブロックの本体部分14バイト分が当てられる。同様にして、各段にそれぞれ2バイト分で7段、すなわち112パターン分に13バイト目から26バイト目、すなわち112ビットのデータがドットパターンに変換して当てはめられることになる。
図7に戻ると、ステップS201で設定した処理対象の画像ブロックに対し、以下のステップS204からステップS208の工程で、対応するデータブロックの各ビットデータが順次埋め込まれる。但し、画像ブロック内の配置は上述の通りであり、処理例1とは異なっている。
ステップS204では、上記特殊データをパターン化して埋め込む。
ステップS205では、未使用ビットをパターン化して埋め込む。
ステップS206では、フラグデータをパターン化して埋め込む。
ステップS207では、ブロック番号データをパターン化して埋め込む。但し、ブロック番号は誤り訂正符号化されており、異なる配置で複数回埋め込まれる。
ステップS208では、データブロック本体の埋め込みデータ28バイト分をパターン化して埋め込む。
以上で設定した画像ブロックに対するドットパターン埋め込みは終了する。
次にステップS209では、画像分割された全画像ブロックに対してステップS201からステップS208のドットパターン埋め込み処理を終了したかどうかを判定する。
まだ未処理の画像ブロックが残っている場合(ステップS209:NO)は、ステップS201へ戻り、処理対象の画像ブロックを更新し、新たな画像ブロックの設定でステップS202以下を実行する。これらの操作は、ステップS209で全画像ブロックの処理を終えたと判定されるまで繰り返される。これらは処理例1と同様である。
全画像ブロックに対して処理を終了した場合(ステップS209:YES)は、画像ブロックごとのデータ埋め込み処理は終了であり、データ埋め込み画像の作成を終えたことになる。図6のステップS109が終了したことになるので、図6の次のステップS110、すなわちデータ埋め込み画像を出力する工程へ進めばよい。
(データ検出処理例)
図16、図17を用いて、埋め込みデータ検出処理の一例を説明する。図16は、データ検出処理例の各工程を示すフローチャートである。図17は、図16のステップS303の工程の詳細な流れを示すフローチャートである。これらの処理の流れはデータ埋め込み処理例1および処理例2に共通して適用できる。
データ検出処理が開始されると、まずデータ埋め込み画像の画像データが入力される。
ステップS301は、データ埋め込み画像入力工程であり、画像入力部101がデータを埋め込まれた文書画像などの画像データを入力し、メモリ108に一時記憶する。
ステップS302は、各画像ブロックの領域を特定する工程であり、ドットパターンを読み取りながら、そこに含まれている特殊データをパターンマッチングを行うことで検索し、特殊データの位置を元にして、画像ブロックの境界を特定していく。
ステップS303は、画像ブロックごとのデータ検出工程であり、ステップS302で特定した画像ブロックごとに、読み取ったドットパターンをデータ化していき、各画像ブロックのデータ検出を行う。データ検出の詳細は後述する。
ステップS304は、データブロックを特定する工程であり、各画像ブロックのブロック番号を検出し、それに基づき検出データのデータブロックとしての位置づけを決定する。ここでブロック番号の検出に伴い、画像内データブロック配置の二次元的な相関関係を用いて、読み取りの誤りなどを補正する。また誤り訂正符号化を行っている場合はその復元処理も行う。
ステップS305は、埋め込みデータを復元する工程であり、ステップS304で各画像ブロックから検出したデータを総合して、埋め込みデータを復元する。
データ検出処理部107が、ステップS302からステップS305の工程を実行する。
ステップS306は、埋め込みデータ出力工程であり、出力部109が、ステップS305で得られた埋め込みデータを、例えばモニタに表示するとか、あるいはメモリに記憶して用途に応じた参照が可能な状態にする。これでデータ検出処理は終了する。
図17を用いて、上記ステップS303のデータ検出工程の詳細な流れを説明する。図17は、画像ブロックごとの対応データブロック検出の各工程を示すフローチャートである。
ステップS401では、処理対象となる画像ブロックを設定する。後のステップS409での判定に応じて、処理対象となる画像ブロックは更新されていくのである。
ステップS402では、ドットパターンを読み取り、特殊データを検知する。このデータは、既に画像ブロックの境界を特定するのに使用している。
ステップS403では、ドットパターンを読み取り、未使用データを検知する。これも使用しないが、データの配置を確立する意味がある。
ステップS404では、ドットパターンを読み取り、フラグを検知する。フラグがビット1であるとそのデータブロックが最終ブロックであり、ブロック番号からデータブロックの総数を知ることができる。これはデータブロック配置の二次元的相関を利用して隣接する画像ブロックのデータブロック番号からブロック番号を特定するのに役に立つ。
ステップS405では、ドットパターンを読み取り、データブロック番号を検出する。検出誤りの補強処理や誤り訂正符号の処理は、後のステップS304(図16)で行う。
ステップS406では、ドットパターンを読み取り、データブロックの本体データを検出する。これも他の画像ブロックでのデータも参照して誤りなどを補正する処理は、後のステップS305(図16)で行う。
以上、設定した画像ブロックでのデータ検出を終えると、ステップS407でブロック番号を元に、データブロックとしての元の埋め込みデータでの位置づけを設定する。
さらにステップS408で対応するデータブロックとしての仮の復元データとして、メモリに記憶しておく。後のステップS305(図16)で検出データを総合して埋め込みデータを復元するためである。
次にステップS409では、全画像ブロックに対してステップS401からステップS408の検出処理を終了したかどうかを判定する。
まだ未処理の画像ブロックが残っている場合(ステップS409:NO)は、ステップS401へ戻り、処理対象の画像ブロックを更新し、新たな画像ブロックの設定でステップS402以下を実行する。これらの操作は、ステップS409で全画像ブロックの処理を終えたと判定されるまで繰り返される。
全画像ブロックに対して処理を終了した場合(ステップS409:YES)は、画像ブロックごとでのデータ検出処理は終了したことになる。図16のステップS303が終了したことになるので、図16の次のステップS304以下、すなわちデータブロックの配置を元に各画像ブロックでの検出データを総合して埋め込みデータを復元し、出力する工程へ進めばよい。
なお、画像全体に分散して埋め込まれたデータブロックの本体データをステップS406にて複数回検出するが、その検出データの各ビットがビット0もしくはビット1と検出された回数をカウントしておき、ステップS305で、多数決により統計的に埋め込みデータを復元することができる。
(実施形態例2)
図18を用いて、MFP(多機能型プリンタ)を用いた画像処理装置を例にして、本発明の第2の実施の形態例を説明する。図18は、第2の実施の形態例における画像処理装置の構成を示すブロック図である。
図を参照して画像処理装置は、MFP本体501と、ユーザの入力操作および表示装置として動作する操作パネル部503と、画像などを出力するプリンタ部511と、原稿から画像を読取るスキャナ部513とから構成される。
MFP本体501内の画像処理H/W(ハードウェア)502には、実施形態例1におけるドット埋め込み処理ソフト301aと、ドット検出処理ソフト301bのいずれかあるいは両方に相当する処理が、回路的に実行可能なようにハードウェア化されており、これらのハード化された画像処理回路に従い埋め込みあるいは検出の処理が実行される。すなわち、画像処理H/W(ハードウェア)502の機能は、実施形態例1におけるPC301の入出力インタフェイス403、CPU/メモリ405、そして記憶装置401の機能に相当する。従って、これらの画像処理H/W(ハードウェア)502に従って、スキャナ513からの埋め込み/検出処理に必要な画像入力や、プリンタ511への埋め込み画像の出力なども行われる。
図3の埋め込み/検出処理の概略フロー、そして図5の埋め込み/検出処理の機能構成ブロック図も、実施形態例1と同様に適用することができる。これらの図を用いて、実施形態例2の場合の埋め込み処理に関わる機能構成を説明する。
画像入力部101は、埋め込みデータ12を埋め込まれる画像データ11を入力する。あるいはデータを検出すべき印刷物13を画像入力する。例えばスキャナ部513やその他MFPに接続された一般入力装置や通信回線などにより入力される。埋め込みデータ入力部102は、埋め込みデータ12が操作パネル部503のユーザ指示や他の入力機器などにより入力される。出力部109は、埋め込み処理や検出処理の結果などを出力する。例えばプリンタ511によりデータを埋め込んだ印刷物13などが出力される。
画像分割手段として機能する画像分割処理部103、埋め込みデータ分割手段として機能する埋め込みデータ分割処理部104、画像内データブロック配置手段として機能する画像内データブロック配置処理部105、データ埋め込み手段として機能するデータ埋め込み処理部106、データ検出手段として機能するデータ検出処理部107、処理に必要な情報記憶を行うメモリ108、そして上記の各処理部の処理全体を制御する制御部110の各処理部は、それぞれ画像処理H/W(ハードウェア)502においてその実行処理がハードウェアとして回路化され、実行されるようになっている。
データ埋め込みと検出の処理の詳細については、実施形態例1で述べた埋め込み/検出の処理例がそのまま適用できるので、ここでは繰り返して説明しない。
(実施形態における効果と実施形態の変更)
上記のような実施形態により、画像をブロックに分割し、それぞれの画像ブロックに、やはり埋め込みデータを分割したデータブロックを、所定の規則に従って対応付け、画像全体に渡ってデータを分散させて埋め込み処理を行うことができる。これにより、画像の一部欠損にも強いデータ検出が可能で、なおかつデータの冗長性を保持できるので、誤り訂正符号などの必要性がなく、データ検出を確実にするためのデータ量抑制が少なく、必要なデータ量を埋め込み、検出することが可能になる。
また、所定の規則に従って分割したデータを対応づけているため、埋め込みデータ量を可変設定しても、埋め込まれた情報からデータ量を検出でき、埋め込みデータ全体の復元が容易な、データ量可変対応の埋め込み、検出が可能になる。
その他にも様々な実施形態の変更が可能である。例えば、画像ブロックとデータブロックの対応規則として任意の方式を採ることができる。二次元的な相関を持たせるような方法だけでも、上述の例以外にも様々に考えられるが、周辺の画像ブロックから当該画像ブロックのデータブロックを特定できるという効果は、同様に得ることができる。
また、複数の画像ブロックに同じデータブロックが繰り返して配置されるという冗長性を利用して、同じデータブロックが画像全体に渡って分散されるような様々な対応関係を考案して、同様の効果を得ることができる。
またデータブロックを特定するデータの確実性を補強するために、フラグデータを埋め込んだり、画像ブロックの境界を特定するために、特殊データを埋め込んだり、といった例も同様の効果を有する他の方法に変更することが可能である。
さらに誤り訂正符号の使用についても、埋め込み、検出の意図に応じて様々な変更が可能である。データブロックを特定するデータのように、その画像ブロックにしか埋め込めない重要なデータについては、誤り訂正符号を使用するとか、画像全体に渡って繰り返し埋め込んだ冗長性のあるデータについては使用しないとか、任意に設定することができる。またデータブロックを特定するデータのように、上記実施例のようなより強力な復元法があれば、誤り訂正符号化を誤り検出に用いるだけで、それによる訂正を行わないことも考えられる。
なお、上述の実施形態例ではプリンタとスキャナの両方が接続された装置を画像処理装置の具体例としてあげたが、プリンタとスキャナとは別体でもよい。この場合、プリンタを備えた画像処理装置によってデータ埋め込み処理の行われた画像のプリントが行なわれ、それにより得られた印刷物を、スキャナを備えた画像処理装置によって読取り、埋め込みデータの検出処理を行なうこととなる。
また、上記実施形態例では埋め込み、検出処理における画像ブロックのサイズ、データ長とデータブロックのサイズ、使用するドットパターンとそのサイズ、埋め込むデータの画像ブロック内の配置、画像ブロックとデータブロックの対応関係などは、すべて例示であり、任意に変更可能である。
なお、上述の実施の形態例として、パーソナルコンピュータを用いた画像処理装置、MFPを用いた画像処理装置を例に挙げたが、装置の形態も任意に変更可能である。また、上記の処理を実行するプログラムとして任意の記録媒体に記録して、当該プログラムの実行可能な様々な装置で使用することもできる。
上記実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
第1の実施形態例における画像処理装置の構成を示すブロック図である。 図1におけるパーソナルコンピュータ301の内部構成を示すブロック図である。 本実施形態例における埋め込み/検出処理の概略フローを示すフローチャートである。 埋め込み処理によりドットが埋め込まれた印刷物の具体例を示す図である。 本実施形態例における埋め込み/検出処理の機能構成を示すブロック図である。 データ埋め込み処理例の各工程を示すフローチャートである。 図6におけるデータ埋め込み工程S109内の各工程を示すフローチャートである。 データ埋め込み処理例1における埋め込みデータとその分割の具体例を示す図である。 分割された画像ブロックと分割されたデータブロックの対応関係の一例を示す図である。 ドット埋め込みに使用するドットパターンの具体例を示す図である。 データ埋め込み処理例1における画像ブロック内のデータ配置を示すブロック内データ配置規則図である。 図11の配置規則に従い、図8の0ブロック目データを画像ブロックに配置した具体例を示すデータ配置図である。 図11の配置規則に従い、図8の10ブロック目データを画像ブロックに配置した具体例を示すデータ配置図である。 データ埋め込み処理例2で用いた巡回ハミング方式の誤り訂正符号の説明図である。 データ埋め込み処理例2における画像ブロック内のデータ配置を示すブロック内データ配置規則図である。 データ検出処理例の各工程を示すフローチャートである。 図16におけるデータ検出工程S303内の各工程を示すフローチャートである。 第2の実施形態例における画像処理装置の構成を示すブロック図である。
符号の説明
11 画像データ
12 埋め込みデータ
13 印刷物
14 (復元された)埋め込みデータ
15 ドットパターンを埋め込んだ画像領域
21 埋め込みデータ例
22 ブロック番号
31 画像領域
32、32a、32b 画像ブロック例
33 ドットパターン例
101 画像入力部
102 埋め込みデータ入力部
103 画像分割処理部
104 埋め込みデータ分割処理部
105 画像内データブロック配置処理部
106 データ埋め込み処理部
107 データ検出処理部
108 メモリ
109 出力部
110 制御部
301 パーソナルコンピュータ(PC)
303 モニタ
305 マウス
307 キーボード
309 外部記憶装置
311 プリンタ
313 スキャナ
401 記憶装置
403 入出力インタフェイス
405 CPU/メモリ
407 処理演算部
409 OS
421 ユーザ指示
423 画像データ表示
425 プリント画像
427 スキャン画像
501 MFP本体
502 画像処理H/W
503 操作パネル部
511 プリンタ部
513 スキャナ部

Claims (23)

  1. 画像情報にデータを埋め込み、データ埋め込み画像を作成するデータ埋め込み手段を有する画像処理装置において、
    埋め込みデータを複数のデータブロックに分割し、分割された各データブロックに、当該データブロックを特定するデータを付与する埋め込みデータ分割手段と、
    前記埋め込みデータ分割手段で分割された各データブロックのサイズに応じて、データを埋め込まれる原画像を複数の画像ブロックに分割する画像分割手段と、
    前記画像分割手段で分割された複数の画像ブロックそれぞれに、所定の対応規則に従って、前記複数のデータブロックの何れかを対応づける画像内データブロック配置手段と、
    を有することを特徴とする画像処理装置。
  2. 前記データ埋め込み手段は、
    前記画像分割手段で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置手段により二次元的な対応規則で対応づけられた前記データブロックを、前記埋め込みデータ分割手段で付与された当該データブロックを特定するデータと共に埋め込み処理し、データ埋め込み画像を作成する
    ことを特徴とする請求項1に記載の画像処理装置。
  3. 前記データ埋め込み手段は、
    前記画像分割手段で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置手段で対応づけられた前記データブロックに付与された当該データブロックを特定するデータを、各々の対応する画像ブロック内の複数箇所に埋め込み処理する
    ことを特徴とする請求項1または2に記載の画像処理装置。
  4. 前記データ埋め込み手段は、
    前記画像分割手段で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置手段で対応づけられた前記データブロックが、埋め込まれたデータの最初もしくは最後のデータブロックであることを示すデータを、各々の対応する画像ブロック内に埋め込み処理する
    ことを特徴とする請求項1乃至3の何れか1項に記載の画像処理装置。
  5. 前記データ埋め込み手段は、
    前記画像分割手段で分割された各画像ブロックそれぞれに対して、その画像ブロック内の特定の位置に、隣接する他の画像ブロックとの境界位置を示すデータを埋め込み処理する
    ことを特徴とする請求項1乃至4の何れか1項に記載の画像処理装置。
  6. 前記データ埋め込み手段は、
    前記画像分割手段で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置手段で対応づけられた前記データブロックに付与された当該データブロックを特定するデータを、誤り訂正符号により符号化して埋め込み処理する
    ことを特徴とする請求項1乃至5の何れか1項に記載の画像処理装置。
  7. 前記データ埋め込み手段は、
    前記画像分割手段で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置手段で対応づけられた前記データブロックを埋め込み処理する際に、前記データブロックに付与された当該データブロックを特定するデータ以外のデータには、誤り訂正符号による符号化を行うことなく埋め込み処理する
    ことを特徴とする請求項1乃至6の何れか1項に記載の画像処理装置。
  8. 請求項1乃至7の何れか1項に記載の画像処理装置により作成されたデータ埋め込み画像、あるいは当該データ埋め込み画像に対して印刷、読み取りの処理を経た画像から、埋め込まれたデータを検出し、復元するデータ検出手段を有することを特徴とする画像処理装置。
  9. 前記データ検出手段は、
    対象となる画像から、前記画像分割手段で分割された各画像ブロックを検出し、各画像ブロックそれぞれに対して、対応するデータブロックを、前記埋め込みデータ分割手段で付与されたデータブロックを特定するデータにより特定し、各データブロックそれぞれに対して埋め込まれたデータを検出処理し、埋め込みデータを復元する
    ことを特徴とする請求項8に記載の画像処理装置。
  10. 前記データ検出手段は、
    検出された各画像ブロックそれぞれに対して、対応する前記データブロックを特定するデータを検出処理するときは、前記画像内データブロック配置手段で用いられた所定の対応規則に基づき、周辺の他の画像ブロックでの検出結果に基づいて検出処理する
    ことを特徴とする請求項8または9に記載の画像処理装置。
  11. 前記データ検出手段は、
    検出された各画像ブロックそれぞれに対して、対応する前記データブロックを特定するデータが誤り訂正符号により符号化されていた場合、誤り検出処理を行い、誤りありと判定された場合には対応する前記データブロックを特定するデータとは見なさない
    ことを特徴とする請求項10に記載の画像処理装置。
  12. 画像情報にデータを埋め込み、データ埋め込み画像を作成するデータ埋め込み工程を有する画像処理方法において、
    埋め込みデータを複数のデータブロックに分割し、分割された各データブロックに、当該ブロックを特定するデータを付与する埋め込みデータ分割工程と、
    前記埋め込みデータ分割工程で分割された各データブロックのサイズに応じて、データを埋め込まれる原画像を、複数の画像ブロックに分割する画像分割工程と、
    前記画像分割工程で分割された複数の画像ブロックそれぞれに、所定の対応規則に従って、前記複数のデータブロックの何れかを対応づける画像内データブロック配置工程と、
    を有することを特徴とする画像処理方法。
  13. 前記データ埋め込み工程は、
    前記画像分割工程で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置工程により二次元的な対応規則で対応づけられた前記データブロックを、前記埋め込みデータ分割工程で付与された当該データブロックを特定するデータと共に埋め込み処理し、データ埋め込み画像を作成する
    ことを特徴とする請求項12に記載の画像処理方法。
  14. 前記データ埋め込み工程は、
    前記画像分割工程で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置工程で対応づけられた前記データブロックに付与された当該データブロックを特定するデータを、各々の対応する画像ブロック内の複数箇所に埋め込み処理する
    ことを特徴とする請求項12または13に記載の画像処理方法。
  15. 前記データ埋め込み工程は、
    前記画像分割工程で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置工程で対応づけられた前記データブロックが、埋め込まれたデータの最初もしくは最後のデータブロックであることを示すデータを、各々の対応する画像ブロック内に埋め込み処理する
    ことを特徴とする請求項12乃至14の何れか1項に記載の画像処理方法。
  16. 前記データ埋め込み工程は、
    前記画像分割工程で分割された各画像ブロックそれぞれに対して、その画像ブロック内の特定の位置に、隣接する他の画像ブロックとの境界位置を示すデータを埋め込み処理する
    ことを特徴とする請求項12乃至15の何れか1項に記載の画像処理方法。
  17. 前記データ埋め込み工程は、
    前記画像分割工程で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置工程で対応づけられた前記データブロックに付与された当該データブロックを特定するデータを、誤り訂正符号により符号化して埋め込み処理する
    ことを特徴とする請求項12乃至16の何れか1項に記載の画像処理方法。
  18. 前記データ埋め込み工程は、
    前記画像分割工程で分割された各画像ブロックそれぞれに対して、前記画像内データブロック配置工程で対応づけられた前記データブロックを埋め込み処理する際に、前記データブロックに付与された当該データブロックを特定するデータ以外のデータには、誤り訂正符号による符号化を行うことなく埋め込み処理する
    ことを特徴とする請求項12乃至17の何れか1項に記載の画像処理方法。
  19. 請求項12乃至18の何れか1項に記載の画像処理方法により作成されたデータ埋め込み画像、あるいは当該データ埋め込み画像に対して印刷、読み取りの処理を経た画像から、埋め込まれたデータを検出し、復元するデータ検出工程を有することを特徴とする画像処理方法。
  20. 前記データ検出工程は、
    対象となる画像から、前記画像分割工程で分割された各画像ブロックを検出し、各画像ブロックそれぞれに対して、対応するデータブロックを、前記埋め込みデータ分割工程で付与されたデータブロックを特定するデータにより特定し、各データブロックそれぞれに対して埋め込まれたデータを検出処理し、埋め込みデータを復元する
    ことを特徴とする請求項19に記載の画像処理方法。
  21. 前記データ検出工程は、
    検出された各画像ブロックそれぞれに対して、対応する前記データブロックを特定するデータを検出処理するときは、前記画像内データブロック配置工程で用いられた所定の対応規則に基づき、周辺の他の画像ブロックでの検出結果に基づいて検出処理する
    ことを特徴とする請求項19または20に記載の画像処理方法。
  22. 前記データ検出工程は、
    検出された各画像ブロックそれぞれに対して、対応する前記データブロックを特定するデータが誤り訂正符号により符号化されていた場合、誤り検出処理を行い、誤りありと判定された場合には対応する前記データブロックを特定するデータとは見なさない
    ことを特徴とする請求項21に記載の画像処理方法。
  23. 請求項12乃至22の何れか1項に記載の画像処理方法をコンピュータに実行させることを特徴とする画像処理プログラム。
JP2005231822A 2005-08-10 2005-08-10 画像処理装置、画像処理方法、および画像処理プログラム Pending JP2007049440A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005231822A JP2007049440A (ja) 2005-08-10 2005-08-10 画像処理装置、画像処理方法、および画像処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005231822A JP2007049440A (ja) 2005-08-10 2005-08-10 画像処理装置、画像処理方法、および画像処理プログラム

Publications (1)

Publication Number Publication Date
JP2007049440A true JP2007049440A (ja) 2007-02-22

Family

ID=37851909

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005231822A Pending JP2007049440A (ja) 2005-08-10 2005-08-10 画像処理装置、画像処理方法、および画像処理プログラム

Country Status (1)

Country Link
JP (1) JP2007049440A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008111375A1 (ja) * 2007-03-14 2008-09-18 Konica Minolta Business Technologies, Inc. 画像処理装置、画像処理方法およびそのプログラム
JP2009044726A (ja) * 2007-07-18 2009-02-26 Ricoh Co Ltd 情報処理装置、情報処理方法、及びプログラム
JP2009177618A (ja) * 2008-01-25 2009-08-06 Konica Minolta Business Technologies Inc 検出方法および検出装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008111375A1 (ja) * 2007-03-14 2008-09-18 Konica Minolta Business Technologies, Inc. 画像処理装置、画像処理方法およびそのプログラム
JPWO2008111375A1 (ja) * 2007-03-14 2010-06-24 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置、画像処理方法およびそのプログラム
JP4862942B2 (ja) * 2007-03-14 2012-01-25 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置、画像処理方法およびそのプログラム
US8270033B2 (en) 2007-03-14 2012-09-18 Konica Minolta Business Technologies, Inc. Generating embed-image by dividing embed-information into blocks and generating an information pattern and positioning pattern
JP2009044726A (ja) * 2007-07-18 2009-02-26 Ricoh Co Ltd 情報処理装置、情報処理方法、及びプログラム
JP2009177618A (ja) * 2008-01-25 2009-08-06 Konica Minolta Business Technologies Inc 検出方法および検出装置

Similar Documents

Publication Publication Date Title
US8363890B2 (en) Image processing apparatus, image processing method and non-transitory computer-readable medium
US7106884B2 (en) Digital watermark embedding apparatus for document, digital watermark extraction apparatus for document, and their control method
JP4269861B2 (ja) 印刷物処理システム,透かし入り文書印刷装置,透かし入り文書読み取り装置,印刷物処理方法,情報読み取り装置,および情報読み取り方法
EP1367811B1 (en) Method of detecting changes occurring in image editing
US7660020B2 (en) Method and apparatus for controlling image processing for extraction assured embedding, and recording medium storing program product
US7532738B2 (en) Print medium quality adjustment system, inspection watermark medium output device for outputting watermark medium to undergo inspection, watermark quality inspection device, adjusted watermark medium output device, print medium quality adjustment method and inspection watermark medium to undergo inspection
EP2518685A1 (en) Method and apparatus for embedding a watermark image in a host image
JP4532331B2 (ja) 情報埋め込み装置、情報抽出装置、情報埋め込み方法、情報抽出方法、情報埋め込みプログラム、及び情報抽出プログラム
JP2007049440A (ja) 画像処理装置、画像処理方法、および画像処理プログラム
JP4893643B2 (ja) 検出方法および検出装置
JP2007143123A (ja) 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体
JP3774651B2 (ja) 画像処理装置及び方法並びにコンピュータプログラム及び記録媒体
US8005256B2 (en) Image generation apparatus and recording medium
JP2004363990A (ja) 画像改ざん検知装置およびその保存データの復元方法
JP2006025409A (ja) 画像処理装置及び画像処理方法
JP2008085579A (ja) 情報埋め込み装置、情報読み取り装置、情報埋め込み方法、情報読み取り方法、およびコンピュータプログラム
US8886567B2 (en) Image processing apparatus, image forming apparatus, and computer-readable recording medium storing image processing program
JP4552822B2 (ja) 画像処理装置、画像処理方法、および画像処理プログラム
JP4862942B2 (ja) 画像処理装置、画像処理方法およびそのプログラム
US7889884B2 (en) Image processing apparatus and method
JP4784531B2 (ja) 画像処理方法,および,画像処理装置
JP2009141525A (ja) 画像処理装置及び画像処理方法
JP4625406B2 (ja) 情報埋め込み装置、情報抽出装置、情報埋め込み方法、情報抽出方法、情報埋め込みプログラム、情報抽出プログラム、及び、情報記憶媒体
JP4635814B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP5102160B2 (ja) 画像処理装置、画像処理システム、画像処理方法、および画像処理プログラム