JP2005020436A - 画像処理装置及び画像形成装置 - Google Patents
画像処理装置及び画像形成装置 Download PDFInfo
- Publication number
- JP2005020436A JP2005020436A JP2003183218A JP2003183218A JP2005020436A JP 2005020436 A JP2005020436 A JP 2005020436A JP 2003183218 A JP2003183218 A JP 2003183218A JP 2003183218 A JP2003183218 A JP 2003183218A JP 2005020436 A JP2005020436 A JP 2005020436A
- Authority
- JP
- Japan
- Prior art keywords
- image
- data
- image data
- code
- digital watermark
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】指定した箇所の複写時の劣化を防止する。
【解決手段】ホストコンピュータにおいて実行されるドライバは、まず劣化防止箇所が指定されると、そのして箇所のオブジェクトについてPDLデータを生成し(1303)、そのデータが、画像データに埋め込み可能であるか判定する(1304)。埋め込み可能であれば、画像全体について印刷用のビットマップデータを生成し、そのデータにPDLデータを電子透かし情報として埋め込む(1305)。そして生成された印刷所の画像データをプリンタに送信して印刷させる。一方、その印刷物を複写する場合、複写装置において電子透かしを抽出し、抽出されたデータをPDLデータとして解釈実行する。そして、生成された画像データを元の画像データに合成し、それを印刷出力する。
【選択図】図13
【解決手段】ホストコンピュータにおいて実行されるドライバは、まず劣化防止箇所が指定されると、そのして箇所のオブジェクトについてPDLデータを生成し(1303)、そのデータが、画像データに埋め込み可能であるか判定する(1304)。埋め込み可能であれば、画像全体について印刷用のビットマップデータを生成し、そのデータにPDLデータを電子透かし情報として埋め込む(1305)。そして生成された印刷所の画像データをプリンタに送信して印刷させる。一方、その印刷物を複写する場合、複写装置において電子透かしを抽出し、抽出されたデータをPDLデータとして解釈実行する。そして、生成された画像データを元の画像データに合成し、それを印刷出力する。
【選択図】図13
Description
【0001】
【発明の属する技術分野】
本発明は、例えばページ記述言語等が埋め込まれた画像を出力し、あるいは、ページ記述言語等が埋め込まれた画像から画像を生成する画像処理装置に関する。
【0002】
【従来の技術】
電子透かし(デジタルウォーターマーク)と呼ばれる、画像の中へのデータを埋め込みことが可能な既知の技術がある。電子透かしとは“不可視の”電子透かしとも呼ばれ、オリジナルの画像データに、人間の視覚では殆ど認識できないレベルのオリジナル画像データからの変化として所望のデータを埋め込む技術である。そして、電子透かしは、画像データに埋め込まれているか否かをその埋め込み方法に応じた方法で判定することができ、埋め込まれている場合には埋め込まれたデータを抽出することもできる。
【0003】
電子透かしは、電子透かしが埋め込まれた画像データそのものから抽出できるのみならず、その画像データを印刷物に固定した場合にも、固定された画像を読み取って画像データを再生することで、その存在の判定及び抽出が可能である。
【0004】
【特許文献1】特開2001−119562号公報
【0005】
【発明が解決しようとする課題】
ところで、コンピュータシステム等により生成された画像データを、印刷装置により用紙等に画像を形成した印刷物として出力した場合、その印刷物を原稿としてイメージスキャナや複写機等により画像として読み取って複写すると、複写された画像の品質は原稿の品質よりも劣化する。
【0006】
このような複写による画像品質の劣化は多くの場合大きな問題にはならない。しかしながら、複写物を原稿とする複写を重ねれば画質の劣化により文字等の判読が困難な程度にいたる場合もある。あるいは、コンピュータ等による文字認識を目的としている場合、画質の劣化は直ちに認識率の低下をもたらす。さらに、文書中の署名や会社名といった特定の箇所については、複写物についてもできるだけ高品質で出力することが望ましい。
【0007】
本発明は上記従来例に鑑みて成されたもので、電子透かし技術を利用することで、大規模なシステムを用いることなく複写による画像品質の劣化を防止することができる画像処理装置及び画像形成装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
上記目的を達成するため、本発明の画像処理装置は以下の構成を有する。
【0009】
出力対象画像のドットデータを生成する画像データ生成手段と、
前記ドットデータに、画像データの少なくとも一部に対応するコードデータを埋め込むコード埋め込み手段と、
前記コード埋め込み手段により埋め込まれたドットデータを出力手段により画像として出力させる手段とを備える。
【0010】
更に好ましくは、前記コード埋め込み手段は、前記出力対象画像のうち、指定されたオブジェクトを記述するページ記述言語で記述されたコードデータを生成し、そのコードデータを前記ドットデータに埋め込む。
【0011】
あるいは、本発明の画像処理装置は、入力画像データから、該画像データに埋め込まれたコードデータの抽出を試みるコード抽出手段と、
前記抽出手段によりコードデータが抽出された場合、抽出されたコードデータに基づいて画像データを生成し、該画像データと、前記入力画像データとを合成する合成手段とを備える。
【0012】
更に好ましくは、前記合成手段は、前記コードデータをページ記述言語として解釈して画像データを生成し、該画像データに対応する画像が、前記入力画像データに対応する画像上で前記コードデータにより指定された位置に配置されるように、前記コードデータから生成された画像データと前記入力画像データとを合成する。
【0013】
更に好ましくは、本発明の画像形成装置は、上記画像処理装置と、
前記画像処理装置により合成された画像データを画像として出力するための画像形成手段と
を備える。
【0014】
更に好ましくは、画像を画像データとして読み取る読み取り手段を更に備え、前記読み取り手段により読み取られた画像データを前記画像処理装置の入力画像データとする。
【0015】
【発明の実施の形態】
[第1実施形態]
本発明の第1の実施形態として、図12に示した、コンピュータ1201およびそれに接続されたプリンタ1203、複写機を有するシステムについて説明する。プリンタ1203は、コンピュータ1201から受信した印刷データに基づいて印刷出力を行う。また、そのプリンタ1203により印刷された文書を複写するための複写機1204も本実施形態のシステムの一部を構成する。この複写機1204はコンピュータ1201と接続されている必要はない。しかしながら、複写機1204とプリンタ1203とを兼ねるデバイス、たとえばディジタル複合機(以下単に複合機と呼ぶ。)と呼ばれるデバイスであれば、このプリンタと複写機の機能を1台で実現できる。その場合には、本実施形態のシステムを構成する装置は、コンピュータとその複合機で十分である。複合機は、コンピュータに接続されたプリントしての機能、画像スキャナで原稿を読み取りそれをプリンタにより出力する複写機としての機能、画像スキャナで読み取った画像をコンピュータに送信する機能、電話回線に接続されてファクシミリ送信やファクシミリ受信の機能等を遂行することができる。
【0016】
図16はコンピュータ1201及びプリンタ1203を接続したシステムのブロック図である。図16において、ホストコンピュータ1201では、CPU1601によりRAM1602に記憶された文書処理プログラムを実行して図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行し、また、プリンタドライバプログラムを実行して、作成された文書データ等に含まれるオブジェクトをプリンタで解釈可能なPDLで表された形式に変換する。また、後述する手順を実行して、電子透かし埋め込み処理を行う。CPU1は、このほかシステムバス4に接続される各デバイスを統括的に制御する。キーボードコントローラ(KBC)1605は、キーボード1609や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)1606は、CRTディスプレイ1610の表示を制御する。ディスクコントローラ(DKC)1607は、ブートプログラム、文書処理等の種々のアプリケーション、プリンタドライバプログラム等を記憶するハードディスク(HD)やフロッピー(登録商標)ディスク(FD)等の外部メモリ11とのアクセスを制御する。プリンタコントローラ(PRTC)1608は、所定の双方向インターフェース(双方向I/F)1202を介してプリンタ1203に接続されて、プリンタ1203との通信制御処理を実行する。
【0017】
プリンタ1203においては、プリンタCPU1612は、ROM1613あるいはRAM1619に記憶された制御プログラム等に記憶された制御プログラム等に基づいてシステムバス1615に接続される各種のデバイスとのアクセスを統括的に制御し、印刷部I/F1616を介して接続される印刷部(プリンタエンジン)1617に出力情報としての画像信号を出力する。CPU1612は双方向I/F1202を介してホストコンピュータ1201との通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ1201に通知可能に構成されている。RAM1619はCPU1612の主メモリ、ワークエリア等として機能するRAMである。入力部1618はホストコンピュータ1201と双方向インターフェース1202を介して印刷状態情報などのステータス情報などの交信を制御し、プリンタ内の情報等をホストコンピュータ1201に通知可能に構成されている。メモリコントローラ(MC)1620は、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等を記憶するハードディスク(HD)、フロッピー(登録商標)ディスク(FD)等の外部メモリ1614とのアクセスを制御する。操作部1012は、表示パネルやキーボードを含んでおり、オペレータへの情報の提供や、オペレータからの指示の入力を行わせる。
【0018】
なお複写機1204は、図16のコンピュータ1201の代わりに画像スキャナを接続して入力部1618から読み込まれた画像データを入力する構成としたものと考えることができるため、図示は省略する。
【0019】
このような構成において、本実施形態のシステムでは以下のような機能を遂行する。
【0020】
<本実施形態のシステムの概略機能>
本実施形態にかかるコンピュータ1201により実行される、プリンタを制御するドライバプログラムは、接続されたプリンタにより印刷させる印刷データをビットマップ形式で生成し、ページ記述言語(PDL)で記述された、指定されたオブジェクトを表すPDLコードを、その印刷データに電子透かしとして一定の手順で埋め込んで、印刷ジョブとしてプリンタ1203に送信する。それをコンピュータ1201から受信したプリンタ1203は受信したデータに応じた画像を印刷する。
【0021】
一方、そのようにして印刷された画像は、複写機1204の画像スキャナにより読み取られると、コンピュータ1201により埋め込まれた電子透かしの有無が判定され、電子透かしが含まれていればそれを抽出して抽出されたコードをPDLで記述されたコマンド及びパラメータとして解釈して実行する。その結果得られる画像データは、画像スキャナにより読み取られた画像データに上書きするなどして合成され、複写機1204によって印刷出力される。
【0022】
まず電子透かしの埋め込みおよび抽出の技術について説明する。
【0023】
[電子透かし埋め込み処理部]
図1は、本実施形態のプリンタドライバプログラムの備える電子透かし処理に関する機能ブロック(電子透かし処理部)を示す図である。プリンタドライバの電子透かし処理部は、機能上は、画像入力部101、埋め込み情報入力部102、鍵情報入力部103、電子透かし生成部104、電子透かし埋め込み部105、画像出力部106を有する。上記各部はそれぞれの処理に必要な機能を概念的なものとして捉えたものであり、たとえば個々のソフトウエアモジュールに相当する。なお、ここで説明する埋め込み処理はハードウエア処理により実現されても良い。なお以下の説明においてメモリとは、コンピュータ1201のRAM1602などであり、画像データや埋め込まれる付加情報、また作業に利用される領域がメモリに割り当てられる。また、以下の説明では各ブロックの出力データが次のブロックの入力データとなるものとして記載されているが、データは共通のメモリに格納され、各機能ブロックはそのメモリに出力を書き込み、次のブロックはその内容を参照することでデータの入出力を実現することもできる。
【0024】
(画像入力部)
まず、画像入力部101の機能について説明する。画像入力部101には電子透かしの埋め込み対象となる画像を表す画像データIが入力される。この画像データIは、文書処理アプリケーションで作成された文書データ等を電子透かしの埋め込み処理の対象となるビットマップデータに変換したものである。ビットマップデータは、たとえば1画素をRGBそれぞれ8ビットで表現したフルカラー画像データや、1画素を8ビット階調で表現したモノクロ画像データなどである。その画像データIは画像入力部101から出力され、電子透かし埋め込み部105に入力され、電子透かしが埋め込まれる単位毎、たとえば1ページのシート上に形成される画像データごとにメモリに記憶される。画像入力部101が、このビットマップデータを生成する機能を有していても良い。
【0025】
なお以降の説明では、説明を簡単にするために、画像データIはモノクロの多値画像を表現しているものとするが、本発明はこのような場合には限定されない。例えばカラー画像データ等の複数の色成分からなる画像データに対して電子透かしを埋め込むならば、その複数の色成分である例えばRGB成分、或いは輝度、色差成分の夫々を上記モノクロの多値画像として扱う様にし、各成分に対して電子透かしを埋め込めばよい。この場合には、モノクロ多値画像へ電子透かしを埋め込む場合と比較して、約3倍のデータ量を埋め込むことが可能となる。
【0026】
(埋め込み情報入力部)
次に、埋め込み情報入力部102の機能について説明する。埋め込み情報入力部102には、画像データIに電子透かしとして埋め込むべきバイナリデータ列が入力される。そのバイナリデータ列は埋め込み情報入力部102から出力され、電子透かし生成部104に入力されてメモリに記憶される。以下、埋め込まれるバイナリデータ列を付加情報Infと呼ぶ。付加情報Infは、“0”または“1”の何れかを表すビットの組み合わせによって構成される情報である。この付加情報infは、画像データIの著作者を特定する著作権情報を表していたり、画像データIの利用者を特定する利用者情報を表していたりする。本実施形態では、付加情報infは、PDLで記述した印刷すべきオブジェクトのコードデータである。後述する手順でプリンタドライバによって生成されたPDLコードは、同じくプリンタドライバにより実現される埋め込み情報入力部102により電子透かし処理部に入力される。すなわち、生成されたPDLコードを付加情報infとしてメモリの所定のアドレスに記憶する。
【0027】
なお、付加情報Infは、その付加情報Infが容易に悪用されない様に暗号化されていても良い。付加情報Infは、この付加情報Infが電子透かしとして埋め込まれた画像データIに対して、悪意を持った人間により、付加情報Infが画像データIから抽出できない様に内容変更(以下攻撃と呼ぶ)が施された場合にも、正しくその付加情報Infを抽出できる様に、誤り訂正符号化が施されても良い。ただし、本実施形態では、付加情報infについて暗号化や誤り訂正符号化は行わない。なお上記攻撃には故意によらない攻撃も有る。例えば、一般的な画像処理(非可逆圧縮、輝度補正、幾何変換、フィルタリングなど)が、結果として電子透かしを除去してしまうことも有り、この場合も攻撃であると言える。このような暗号化および誤り訂正符号化などの処理の詳細は公知であるので本明細における詳しい説明は省略する。以降では、nビットで表現される付加情報を埋め込む例について詳しく説明する。
【0028】
(鍵情報入力部)
次に、鍵情報入力部103の機能について説明する。鍵情報入力部103には付加情報Infの埋め込みおよび抽出に必要な鍵情報kが入力されてハードディスクやRAM等のメモリに格納される。入力は、コンピュータ1201のキーボード等によりオペレータから入力されたり、あるいは、コンピュータにより自動生成することもできる。その鍵情報kは鍵情報入力部103から出力されて電子透かし生成部104に入力される。
【0029】
ここで鍵情報kとはL(正数)ビットで表される実数である。L=8の正数として表現する場合には、“01010101”が鍵情報kの一例であり、例えば、正の整数として表現する場合には“85”として与えられる。鍵情報kは、後述する擬似乱数発生部202で実行される擬似乱数発生処理に初期値として与えられる。電子透かし埋め込み処理部および後述する電子透かし抽出処理部において共通の鍵情報kを使用した場合に限り、電子透かしとして埋め込まれている付加情報Infを正しく抽出することが可能である。即ち、鍵情報kを所有している利用者だけが付加情報Infを正しく抽出することができる。
【0030】
(電子透かし生成部)
次に、電子透かし生成部104の機能について説明する。電子透かし生成部104には埋め込み情報入力部102から付加情報Inf、及び鍵情報入力部103から鍵情報kが入力され、入力され記憶された付加情報Infと鍵情報kとに基づいて電子透かしwが生成され、生成された電子透かしwが出力される。生成された電子透かしwはこれもメモリに記憶される。
【0031】
<電子透かしの生成処理>
電子透かし生成部104の機能の詳細について図2を用いて説明する。図2に示すように、電子透かし生成部104は基本行列生成部201、擬似乱数発生部202、及び擬似乱数割り当て部203から構成される。
【0032】
まずはじめに基本行列生成部201の機能について説明する。基本行列生成部201では、基本行列mが生成される。生成された基本行列mは出力され、擬似乱数割り当て部203に入力される。ここで基本行列mとは付加情報Infを構成する各ビットの位置と、前記各ビットが埋め込まれる画像データI上の画素位置を対応付けるために用いられる行列である。
【0033】
ここでは、基本行列生成部201は複数の基本行列を選択的に利用することが可能である。そしてどの基本行列を用いるかは、その時の目的/状況に応じて変化させる必要が有り、本発明ではこれら基本行列の切り替えにより最適な電子透かし(付加情報Inf)の埋めこみが可能である。
【0034】
基本行列mの具体例を図3に示す。行列301は16ビットから構成される付加情報Infを埋め込む場合に用いられる基本行列mの一例を示したものである。行列301に示す様に16ビットの付加情報Infを埋め込むために、例えば4×4の基本行列mが用いられ、更に1から16の数字が基本行列内の各要素に割り当てられている。
【0035】
図3から分かる様に、この説明では、基本行列m内の要素の値と付加情報Infのビット位置が対応付けられるものとする。具体的には、基本行列m内の要素の値が“1”の位置に付加情報Infのビット位置“1”のビット情報(最上位ビット)を埋め込み、同様に、基本行列m内の要素の値が“2”の位置に付加情報Infのビット位置“2”のビット情報(最上位ビットの次のビット)を埋め込む。基本行列mは、メモリ1602やハードディスク1611に予め用意されている。
【0036】
次に、擬似乱数発生部202の機能について説明する。擬似乱数発生部202には、鍵情報入力部103から鍵情報kが入力され、鍵情報kを元に擬似乱数列rが生成される。鍵情報kは擬似乱数を発生させる場合の初期値として用いる値であり、予め本実施形態の電子透かし処理に用いるものとして定められた値がハードディスク1611等に保存されている。鍵情報kを初期値として生成された擬似乱数列rは擬似乱数割り当て部203に入力される。ここで擬似乱数列rとは、{−1,1}の範囲に含まれる一様分布に従う実数列である。生成される擬似乱数は初期値によって異なる系列となる。即ち、第1の鍵情報を用いて生成した第1の擬似乱数列と、第1の鍵情報とは異なる第2の鍵情報を用いて生成した第2の擬似乱数列は異なるが、第1の鍵情報と同一の第2の鍵情報を用いて生成した第2の擬似乱数列は、第1の擬似乱数列と同一である。擬似乱数列rを生成する方法は公知の技術であるので詳細な説明は省略する。生成された擬似乱数列rは擬似乱数割り当て部203に出力される。
【0037】
次に、擬似乱数割り当て部203の機能について説明する。擬似乱数割り当て部203には、基本行列mと付加情報inf、擬似乱数列rとが入力される。そして、付加情報infの値を参照して、擬似乱数列rの各要素を基本行列mの所定の要素が配置された位置に割り当てて、電子透かしwを生成する。以降では、基本行列mの所定の要素に乱数列が割り当てられた行列を電子透かしwと呼ぶ。擬似乱数割り当て部203からは生成された電子透かしwが出力される。
【0038】
具体的には、少なくとも埋め込まれるビット数までカウントできるカウンタ変数をメモリに用意する。また、基本行列mに相当する大きさの行列が格納できる領域をメモリに確保する。なお、基本行列mの要素をm(i,j)、生成される電子透かしの要素をw(i,j)で表し、カウンタ変数をcで表す。また、付加情報infのi桁目をinf(i)、擬似乱数列rの第i番目の要素をr(i)と表す。これらはすべてメモリ上に割り当てられた対応するロケーションを表す。そのロケーションに格納された内容はvを名前の前に付して表す。たとえばカウンタ変数cの値はvcであり、付加情報inf(i)の値はvinf(i)である。また、擬似乱数列を生成する際には、r(1)については、初期値として鍵情報kを用いて乱数生成の処理を実行することで生成する。r(2)以降は、乱数生成の処理を実行することで順次乱数系列を生成させる。
【0039】
まずカウンタ変数cの値vcとして1をセットする。そのカウンタ変数cの値vcにより基本行列mを走査する。基本行列mにおいて要素の値がカウンタ変数cの値と等しくなるもの、すなわちvm(i,j)=vcなる要素m(i,j)が見つかれば、その要素m(i,j)に対応する配列wの要素w(i,j)に、擬似乱数列rの第vc番目の要素r(vc)の値vr(vc)を格納する。ただしその際、付加情報infの第vc番目の要素inf(vc)を参照し、その値vinf(vc)が0であれば、値vr(vc)の符号を反転した値−vr(vc)を格納する。vcを値とする要素は基本行列mには複数含まれている場合もあるので(後述する。)、以上の手順を基本行列m全体について行う。
【0040】
以上の手順を、カウンタ変数vの値vcに1加算して繰り返す。そして、カウンタ変数cの値が、付加情報infの要素数に達するまで繰り返す。たとえば付加情報infが16ビットであれば、カウンタ変数cに1加算する毎に上記手順を実行し、値16について上記処理を完了したならば、電子透かしwが完成する。
【0041】
<電子透かし生成方法の変形例>
次に、行列301からの埋めこみ方法の変形例について説明する。
【0042】
図3の行列302は8ビットから構成される付加情報Infを埋め込む場合に用いられる基本行列の他の一例を示したものである。行列302に示す基本行列は基本行列301の全要素のうち、1から8までの値を持つ要素だけを用いたものである。値を持たない要素の部分には付加情報Infを埋め込まない。値を持たない要素の部分には、たとえば0や、付加情報infの桁数(要素数)を越える数値を埋め込んでおく。行列302の様に付加情報Infを表す各ビットの埋めこみ位置を散らすことにより、基本行列301を用いて生成した電子透かしよりも、電子透かし(付加情報Inf)の埋めこみによる画像の変化(画質劣化)を認識しずらい電子透かしを生成できる。
【0043】
図3の行列303は、行列302と同様に8ビットから構成される付加情報Infを埋め込む場合に用いられる基本行列mの一例を示したものである。行列302と行列303は夫々8ビットの付加情報Infを埋め込むことが可能な基本行列mであるが、行列302は全画素の50%にあたる画素を付加情報Infの埋め込みに用いているのに対して、行列303では全画素(100%)を付加情報Infの埋め込みに用いられる。即ち、1ビット埋め込むために行列302では基本行列中の1画素を用いているのに対して、行列303では基本行列中の2画素を用いて付加情報Infの1ビットを埋め込んでいる。行列303の様に、付加情報Infを表す各ビットを埋めこむ回数を増やすことにより、電子透かしが埋め込まれた画像に攻撃が加えられた場合には、行列301や行列302よりも、その電子透かし(付加情報Inf)を確実に抽出できる(攻撃耐性が有る)ことになる。
【0044】
ここで、全画素中で電子透かしの埋め込みのために使用する画素の割合を、以降では充填率と呼ぶことにする。行列301を用いた場合充填率は100%、行列302を用いた場合は充填率50%、行列303を用いた場合は充填率100%である。
【0045】
図3の行列304は、行列303を用いた場合と同様に全画素を付加情報Infの埋め込みに用いている。即ち、充填率は100%である。しかしながら、行列303は8ビットの付加情報Infを埋め込むのに対して、行列304を用いた場合には4ビットの付加情報Infしか埋め込まない。よって、1ビット埋め込むために行列303では基本行列中の2画素を用いているのに対して、行列304では基本行列中の4画素を用いて付加情報Infの1ビットを埋め込んでいる。行列304の様に、付加情報Infを表す各ビットを埋めこむ回数を増やすことにより、電子透かしが埋め込まれた画像に攻撃が加えられた場合には、行列301や行列302や行列303よりも、その電子透かし(付加情報Inf)を確実に抽出できる(攻撃耐性が有る)ことになる。ただし、攻撃耐性が非常に有る代わりに、埋め込む付加情報Infの情報量は4ビットとなり、行列301や行列302や行列303よりも少ない。
【0046】
次に、上述した4つの例を表にまとめたものを示す。
このように、基本行列mをどのような構成にするかによって、充填率と1ビットを埋め込むのに使用する画素数と埋め込み可能な情報量を選択的に設定することができる。上記表1では、充填率は主に電子透かしを埋め込んだ画像の画質に影響するパラメータであり、1ビットを埋め込むために使用する画素数は主に攻撃に対する耐性に影響するパラメータである。充填率を大きくすると電子透かしを埋め込んだ画像の質の劣化は大きくなり、1ビット埋め込むために使用する画素数を多くすると攻撃に対する耐性は強くなる。以上から分かる様に、電子透かしを実現する際には、埋めこみ対象の画質と電子透かしの攻撃に対する耐性と埋め込める付加情報Infの情報量がトレードオフの関係にある。
【0047】
本発明においては、上述した複数種類の基本行列mを適応的に選択することによって、電子透かしの耐性と画質と情報量を制御、及び設定することが可能である。
【0048】
<電子透かし生成処理の例>
ここで、擬似乱数列rの各要素を基本行列mの所定の要素に割り当てる前述した処理の詳細について例を用いて説明する。
【0049】
まず、例として図3に示した基本行列304を用いる。前述したように基本行列304を用いることにより4ビットの情報を埋め込み可能である。
【0050】
まずはじめに、基本行列304に示す基本行列内の各要素のうち、値として“1”を持つ要素をラスタースキャン順にスキャンして、順に擬似乱数列rの各要素を割り当てる。割り当てる際には、付加情報Infに応じて付加情報Infのビットが“1”の時は擬似乱数列rの要素をそのまま割り当て、一方で付加情報Infのビットが“0”の時は擬似乱数列rの要素に“−1”をかけた値を割り当てる。
【0051】
次に、値として“2”をもつ要素において同様の処理を実行する。以上の処理を、値としてn(埋め込みビット数)を持つ要素までに対して実行する。以上の示した例によって生成された電子透かしwの一例を図4に示す。電子透かし401は擬似乱数列rとしてr={0.7,−0.6、−0.9,0.8}という実数列、付加情報Infとして“1001”という4ビットの情報を用いた場合の例である。
【0052】
こうして生成された電子透かしwは電子透かし生成部104の出力として出力され、電子透かし埋め込み部105に入力される。
【0053】
尚、以上では説明のために16ビット、8ビット及び4ビットの付加情報を埋め込むために4×4の基本行列を用いたが、本発明はこれに限らず、1ビット埋め込むために更に多くの画素を利用し、より大きなサイズの基本行列を用いる場合も本発明の範疇に含む。より大きなサイズの基本行列を用いた場合には、擬似乱数列もより長い実数列を用いることになる。実際には、説明に用いたような4要素から構成される乱数列では、後述する電子透かし抽出処理が正しく動作しない可能性がある。具体的には、付加情報Infが埋め込まれているにも関わらず、集積画像cと電子透かしw1、w2、…、wnとの相関係数が小さくなる可能性がある。よって、例えば64ビットの付加情報を埋め込むために充填率50%において256×256の基本行列を用いるような構成とする。この場合、1ビット埋め込むために512画素使用することになる。本実施形態では、付加情報infとしてPDLで記述されたコードが画像に埋め込まれる。そこで、予想される埋め込むべきデータ量から逆に基本行列のスケール(あるいは充填率も)を決定するのが望ましい。たとえば充填率50パーセントとすれば、埋め込むべきPDLコードのサイズがpビットであれば、32√p×32√p程度のサイズの基本行列が必要とされる。PDLデータのサイズは、記述するオブジェクトが文字列であればその文字数に応じてサイズがある程度決まるので、埋め込める文字列の長さを基準として基本行列のサイズを決定することもできる。
【0054】
(電子透かし埋め込み部)
次に、電子透かし埋め込み部105の機能について説明する。電子透かし埋め込み部105では、画像データI及び電子透かしwが入力され、画像データIに電子透かしwが埋め込まれ、電子透かしwが埋め込まれた画像データI’が出力される。
【0055】
電子透かし埋め込み部105の処理の詳細について説明する。電子透かし埋め込み部105では、
I’(i,j)=I(i,j)+a×w(i,j) … (式1)
という式に従って、電子透かしの埋め込み処理が実行される。ここで、I’(i,j)は電子透かしが埋め込まれた画像データの画素、I(i,j)は電子透かしが埋め込まれる前の画像データの画素、w(i,j)は電子透かしの要素、i及びjはそれぞれ画像I、I’の画素位置及び電子透かしwの要素の位置(x座標及びy座標)を表すパラメータ、定数aは電子透かしの強度を設定するパラメータである。ただし、画像データは、電子透かしwと同一サイズ(縦横の画素数が基本行列に対応するサイズ)の互いに重ならないブロックに分割され、式1はその個々のブロックについての演算を示す。このブロックを、以下マクロブロックと呼ぶ。
【0056】
この処理は、画像入力部101により入力されてメモリに記憶された画像データについて、電子透かしwのサイズに対応したマクロブロック毎に、当該マクロブロックの内容I(i,j)とメモリに記憶された定数aおよび電子透かしw(i,j)とを参照して式1右辺の演算を実行し、それを画像データの当該マクロブロックI(i,j)に格納(あるいはマクロブロックに対応するあらたなメモリ領域I’(i,j)に格納)することで実行される。画像データがラスタイメージであれば、マクロブロックにおけるアドレスiは着目マクロブロックの各ラインにおける先頭から末尾までの範囲となり、アドレスjは着目マクロブロックの先頭ラインから末尾ラインまでの範囲となる。さらに、ひとつのマクロブロックについて式1の処理を終えたなら、次のマクロブロックについても同様の処理を行いつつ、画像データの全領域について式1の演算処理を施す。
【0057】
例えば、定数aの値としては“10”程度の値が選択可能である。定数aの値を大きく設定することによって耐性の強い電子透かしを埋め込むことが可能であるが、画質劣化が大きくなる。一方で、定数aの値を小さく設定することによって電子透かしの耐性は弱くなるが、画質劣化は小さくすることが可能である。前述した基本行列mの構成と同様に、定数aの値を適当に設定することにより、電子透かしの攻撃に対する耐性と電子透かしを埋め込んだ後の画像の画質のバランスを設定することが可能である。
【0058】
式1に示した電子透かし埋め込み処理の具体例として、4×4の基本行列mを用いた場合の例を図5に示す。図5において行列501は式1における画像データのマクロブロックI’、行列502は画像データのマクロブロックI、行列503は電子透かしwを表す。図5に示すように、式1の演算は行列内の各要素に対して実行される。
【0059】
以上、式1(図5)に示した演算処理は実際には入力された画像データIの全体に対して繰り返し実行される。例えば、入力された画像データIが24×24画素から構成されている場合の例を図6に示す。図6に示すように、入力された画像データIは4×4画素から構成される互いに重ならないマクロブロックに分割され、分割された夫々のマクロブロックに対して式1(図5)に示した演算処理が繰り返し実行される。
【0060】
全てのマクロブロックに対して繰り返し電子透かしの埋め込み処理を実行することにより、結果的に画像全体に電子透かしを埋め込むことが可能である。更に、1つのマクロブロックにはnビットから構成される付加情報Infの全体が埋め込まれている。このことから、少なくともマクロブロックが1つあれば埋め込んだ付加情報Infを抽出することができる。即ち、埋め込んだ付加情報Infを抽出するために画像データIの全体を必要とはせず、画像データIの一部(少なくともひとつのマクロブロック)があれば十分である。
【0061】
このように画像データIの一部から電子透かしを完全に抽出可能であることを「切り取り耐性がある」と呼ぶ。マクロブロック単位の電子透かし埋め込み処理を画像全体に繰り返し実行することにより、電子透かしに切り取り耐性を持たせることが可能である。こうして電子透かし埋め込み部105により生成された電子透かし埋め込み済み画像I’は、画像出力部106を通じて、電子透かしの埋め込み処理部の最終的な出力として出力される。
【0062】
本実施形態においては、出力された画像データI’はいったんメモリ等に格納されて、プリンタ1203により解釈実行可能なPDLデータ等に変換する処理が施されて、プリンタ1203に対して出力される。
【0063】
[電子透かし抽出処理部]
次に、以上で述べた電子透かしの埋め込み処理部によって埋め込まれた電子透かしを抽出する方法について説明する。以下、図7を用いて本発明に適用される電子透かしの抽出処理部(機能)を説明する。電子透かし処理部は、本実施形態においては複写機1204に実装されている。機能上は、抽出処理部は、画像入力部701、鍵情報入力部702、電子透かし生成部703、電子透かし抽出部704、電子透かし出力部705を有する。上記各部はそれぞれの処理に必要な機能を概念的なものとして捉えたものであり、たとえば個々のソフトウエアモジュールに相当する。なお、ここで説明する埋め込み処理はハードウエア処理により実現されても良い。なお以下の説明においてメモリとは、コンピュータ1612(複写機の構成についても、画像スキャナ部の他は図16のプリンタの構成を参照する。)のRAM1619などであり、画像データや埋め込まれる付加情報、また作業に利用される領域がRAM1619等のメモリに割り当てられる。また、以下の説明では各ブロックの出力データが次のブロックの入力データとなるものとして記載されているが、データは共通のメモリに格納され、各機能ブロックはそのメモリに出力を書き込み、次のブロックはその内容を参照することでデータの入出力を実現することもできる。
【0064】
(画像入力部)
まず、画像入力部701の機能について説明する。画像入力部701には電子透かしが埋め込まれている可能性がある画像データI”が入力される。複写機1204においては、画像入力部701は画像を読み取って対応する画像データを生成する画像スキャナと考えることができる。
【0065】
画像入力部701の出力は電子透かし抽出部704に入力される。入力された画像データI”はいったんメモリに格納される。尚、画像入力部701によって入力される画像データI”は、前述した電子透かしの埋め込み処理部によって電子透かしが埋め込まれた画像データI’に限定されることはない。もちろん、電子透かしが埋め込まれた画像データI’である場合もあるが、画像データI’が攻撃された画像であっても良い。更に、電子透かしが埋め込まれていない画像データIであっても良い。電子透かし抽出部では、別途入力される抽出パターンを用いて、後述する電子透かしの抽出処理が行われる。
【0066】
(鍵情報入力部)
次に、鍵情報入力部702の機能について説明する。鍵情報入力部702において電子透かしを抽出するための鍵情報kが入力され、その出力は抽出パターン生成部703に入力される。ここで、入力される鍵情報kは、前述した電子透かしの埋め込み処理部における鍵情報入力部103によって入力されたものと同一のものでなければならない。異なる鍵情報が入力された場合には正しく付加情報を抽出することは出来ない。即ち、正しい鍵情報kを有する利用者だけが正しい付加情報Inf’を抽出することが可能である。
【0067】
具体的には、鍵情報入力部702は、操作部1012などから入力された鍵情報をたとえばハードディスクやROMあるいはRAM等にを格納し、格納された鍵情報を読み出して抽出パターン生成部703に渡す。また、複写機1204がコンピュータ1201に接続されている場合には、コンピュータ1201から通信により獲得することもできる。これは、プリンタドライバによる電子透かし埋め込み処理により埋め込まれた電子透かしを画像から抽出するためには、鍵情報kは、電子透かし生成部104が用いた鍵情報kと同一の鍵情報kを抽出時にも用いる必要があるためである。
【0068】
(抽出パターン生成部)
次に、抽出パターン生成部703の機能について説明する。抽出パターン生成部703には鍵情報入力部702から鍵情報kが入力され(あるいは記憶された鍵情報を読み)、入力された鍵情報kに基づいて抽出パターンが生成され、その抽出パターンが出力され、メモリに記憶される。
【0069】
抽出パターン生成部703の処理の機能の詳細について図8を用いて説明する。図8に示すように、抽出パターン生成部703は基本行列生成部801、擬似乱数発生部802、及び擬似乱数割り当て部803から構成される。
【0070】
ここで、基本行列生成部801は前述した電子透かし生成部104の基本行列生成部201と、更に擬似乱数発生部802は擬似乱数発生部202と同じ動作であるので詳細な説明は省略する。但し、基本行列生成部801において生成される基本行列と基本行列生成部201において生成される基本行列は同一のものでなければ正しく付加情報を抽出することはできない。
【0071】
次に、擬似乱数割り当て部803の機能の詳細について説明する。擬似乱数割り当て部803には基本行列mと擬似乱数列rが入力され、擬似乱数列rの各要素が基本行列mの所定の要素に割り当てられる。ここで、前述した電子透かし生成部104(図2)で用いられた擬似乱数割り当て部203との違いは、擬似乱数割り当て部203においては出力される電子透かしwは一つであったのに対して、擬似乱数割り当て部803からは埋め込み情報量の数(本発明ではn個)だけ抽出パターン出力されることである。
【0072】
具体的には、少なくとも埋め込まれるビット数までカウントできるカウンタ変数をメモリに用意する。また、基本行列mに相当する大きさの行列を、抽出しようとする電子透かしとして埋め込まれている付加情報infの桁(ビット)の数だけ格納できる領域をメモリに確保する。なお、基本行列mの要素をm(i,j)、生成される抽出パターンの要素をw(k,i,j)で表し、カウンタ変数をc1,c2で表す。i,jは行列の各要素の位置を表し、kは生成される抽出パターンの番号(1≦k≦n)を表す。また、擬似乱数列rの第i番目の要素をr(i)と表す。これらはすべてメモリ上に割り当てられた対応するロケーションを表す。そのロケーションに格納された内容はvを名前の前に付して表す。たとえばカウンタ変数c1の値はvc1である。
【0073】
(1)まずカウンタ変数c1の値vc1として1をセットする。
(2)カウンタ変数c2の値vc2として1をセットする。
(3)そのカウンタ変数c1の値vc1により基本行列mを走査する。基本行列mにおいて要素の値がカウンタ変数c1の値と等しくなるもの、すなわちvm(i,j)=vc1なる要素m(i,j)が見つかれば、その要素m(i,j)に対応する第vc1番目の配列wにおける位置(i,j)の要素、すなわちw(vc1,i,j)に、擬似乱数列rの第vc2番目の要素r(vc2)の値vr(vc2)を格納する。
(4)そして、カウンタ変数c2の値vc2に1を加算し、(3)からの処理、すなわち基本行列mの値vc1による走査を繰返し行う。この場合、走査は続きから行われる。この手順を基本行列m全体について走査が終了するまで繰り返す。
(5)値vc1について基本行列m全体の走査が終了したなら、カウンタ変数c1の値vc1に1を加算し、(2)からの処理を繰返し行う。これを、カウンタ変数c1の値が1〜nについて繰り返して行う。以上の手順により、n個の抽出パターンw1〜wnが完成し、メモリ上に生成される。なおw1などと表記する場合の添付数字は、上記抽出パターンのインデックスkに相当する。
【0074】
なお、擬似乱数列を生成する際には、r(1)については、初期値として鍵情報kを用いて乱数生成の処理を実行することで生成する。r(2)以降は、乱数生成の処理を実行することで順次乱数系列を生成させる。
【0075】
<抽出パターン生成処理の例>
ここで、擬似乱数列rの各要素を基本行列mの所定の要素に割り当てる機能の詳細について例を用いて説明する。基本行列mの例として図3に示した基本行列304を用いる。基本行列304を用いた場合、4ビットの付加情報を埋め込み可能であり、擬似乱数割り当て部803からは4個の抽出パターンw1、w2、w3、w4が出力される。
【0076】
まずはじめに、基本行列304の各要素のうち、値として“1”を持つ要素をラスタースキャン順にスキャンして、順に擬似乱数列rの各要素を割り当てる。基本行列304の各要素のうち、値として“1”を持つ要素全てに擬似乱数列rの各要素の割り当てが終了したら、擬似乱数列rを割り当てた行列を抽出パターンw1として生成する。図9に抽出パターンの例を示す。抽出パターンw1(901)は擬似乱数列rとしてr={0.7,−0.6、−0.9,0.8}という実数列を用いた場合の例である。以上の処理を、基本行列304の各要素のうち、値として“2”、“3”、“4”を持つ要素全てに対して実行し、夫々抽出パターンw2(902)、抽出パターンw3(903)、抽出パターンw4(904)として生成する。こうして生成された抽出パターンw1、w2、w3、w4を合わせると、各要素の値は、電子透かしの埋め込み処理部で用いられた電子透かしwの対応する要素の絶対値に等しくなる。生成された抽出パターンw1、w2、w3、w4は抽出パターン生成部703から出力され、電子透かし抽出部704に入力される。
【0077】
(電子透かし抽出部)
次に、電子透かし抽出部704の機能について説明する。電子透かし抽出部704では、画像データI’及び抽出パターンw1、w2、…、wnが入力され、抽出パターンw1、w2、…、wnを用いて画像データI’から付加情報Inf’を抽出し、抽出された付加情報Inf’を出力する。ここで、望ましくは抽出された付加情報Inf’は埋め込んだ付加情報Infに等しい。しかしながら、電子透かしを埋め込んだ画像データI’が種々の攻撃を受けている場合には必ずしも付加情報Infと付加情報Inf’は一致しない。
【0078】
電子透かし抽出部704の機能の詳細について説明する。電子透かし抽出部704では、入力された画像データI’から生成された集積画像cと抽出パターンw1、w2、…、wnとの相互相関が夫々計算される。ここで、集積画像cとは、入力された画像データI”をマクロブロックの大きさ(基本行列の大きさ)の互いに重ならないブロックに分割し、分割された夫々のブロックの要素(画素)の値の平均値を算出し、その平均値を要素とする行列(画像データ)である。
【0079】
集積画像cについて図10に示した具体例を用いて説明する。図10は4×4画素の抽出パターンと24×24画素の画像I”が入力された場合の集積画像cの例である。図10において、画像データ1001は、24×24画素の画像データI”が4×4画素の互いに重ならないブロックに分割された例を示す。図10に示す例の場合、36個のブロックに分割されている。この36個のブロックのにおいて、対応する位置にある要素の値の平均値を求め、その平均値を要素とする行列が集積画像c1002である。すなわち、メモリに格納された画像データIをマクロブロックに対応するn個のブロックに分割し、そのk番目のブロックIB(k)の位置(i,j)の要素をIB(k,i,j)とすれば、集積画像の各要素は、c(i,j)=ΣIB(k,i,j)/nで与えられる。ここでΣはkについて1〜nまでの総和を意味する。
【0080】
こうして生成された集積画像cと抽出パターンw1、w2、…、wnとの相互相関が各々計算される。相関係数を計算する具体的な方法について、集積画像cと抽出パターンwnの相関係数を計算する場合の例を用いて説明する。
相関係数は、集積画像cと抽出パターンwnの類似度を測定する統計量であり、
ρn=(c’T・w’n)/|c’T|・|w’n| … (式2)
と表される。ここで、c’及びwn’はそれぞれ、集積画像cおよび抽出パターンwnの各要素から、それぞれの行列の要素の平均値を引いた値を要素とする行列である。cTは行列cの転置行列である。ρnは−1から+1の値の範囲の値をとる。集積画像cと抽出パターンwnが正の相関が強い時にρnは+1に近づき、一方で集積画像cと抽出パターンwnが負の相関が強い時にρnは−1に近づく。ここで「正の相関が強い」とは、「集積画像cが大きいほど抽出パターンwnが大きくなる」という関係のことであり、「負の相関が強い」とは「集積画像cが大きいほど抽出パターンwnが小さくなる」という関係のことである。また、集積画像cと抽出パターンwnが無相関の時には、ρnは0となる。
【0081】
こうして算出した相互相関の結果によって、入力された画像データI”に付加情報Inf’が電子透かしとして埋め込まれているか否か、更に、埋め込まれている場合には付加情報Inf’を構成する各ビットが1であるか0であるかを判定する。
【0082】
集積画像cと抽出パターンw1、w2、…、wnとの相関係数ρ1、ρ2、…、ρnを夫々算出し、算出された相互相関の結果が0に近い場合には「付加情報が埋め込まれていない」、相互相関の結果が0から離れた正数の場合には「ビット1」、相互相関の結果が0から離れた負数の場合には「ビット0」であると夫々判断する。0に近いか否かは、あらかじめ定めたしきい値を基準として判定される。すなわち、第i番目の抽出パターンwiについての相関係数ρiとしきい値th1およびth2とを比較し、以下の通り判定される。ここでth1は一定値以下の負数であるか否かを判定するためのしきい値であり、th2は一定値以上の正数であるか否かを判定するためのしきい値である。
(1)th1<ρi<th2の場合、抽出しようとする付加情報の第iビットは埋め込まれていない。
(2)th1≧ρiの場合、抽出しようとする付加情報の第iビットは0である。
(3)th2≦ρiの場合、抽出しようとする付加情報の第iビットは1である。
【0083】
なお、付加情報が埋め込まれていないと判定された桁(ビット)と、埋め込まれていると判定されたビットとが混在している場合には、たとえばしきい値th1を一定値増加させ、th2を一定し減少させてから、再度判定を行うなどしてもよい。その結果全てのビットが埋め込まれていると判定されたなら、そのビット列を付加情報の値と決定し、埋め込まれていないと判定されるビットが残るのであれば、付加情報は埋め込まれていないものと判定してもよい。
【0084】
以上説明した相互相関を求めることは、集積画像cと抽出パターンw1、w2、…、wnの夫々が、どれくらい類似しているかを評価することに等しい。即ち、前述した電子透かしの埋め込み処理部によって、画像データI”(集積画像c)の中に抽出パターンw1、w2、…、wnが埋め込まれている場合には、これらは比較的類似しており、この類似の度合いが相互相関値として算出される。更に、ビット”1”が埋め込まれている場合(抽出パターンw1、w2、…、wnが加えられている場合)には相互相関値は正となり、一方で、ビット”0”が埋め込まれている場合(抽出パターンw1、w2、…、wnが減じられている場合)には相互相関値は負になる。
【0085】
具体例として、図11に前述した4ビットの付加情報“1001”が埋め込まれた画像データI”(集積画像c)からw1、w2、w3、w4を用いて電子透かしを抽出する例を示す。
【0086】
まず、集積画像cと4つの抽出パターンw1、w2,w3、w4(4ビットの付加情報Inf’に対応)との相互相関値が夫々算出される。入力された画像データI’(集積画像c)に付加情報Inf’が埋め込まれている場合には、相関係数は夫々”1、−1、−1,1”と算出され、このことから付加情報Inf’は“1001”と判定でき、最終的に4ビットの付加情報Inf’を抽出することが可能である。
【0087】
こうして抽出されたnビットから構成される付加情報Inf’は電子透かし出力部705を通じて出力される。この際に、前述した電子透かしの埋め込み処理部において、付加情報Infが埋め込まれる時に、誤り訂正符号化処理や暗号化処理が施されている場合には、夫々誤り訂正復号処理や暗号復号処理が実行される。得られた情報が最終的に抽出されたバイナリデータ列(付加情報Inf’)として出力される。
【0088】
この手法では、印刷物に対して、800ピクセル×600ピクセル程度の多値画像に128ビット程度のデータを埋め込むことが知られており、他にもさまざまな既知の埋め込み手法が存在する。800×600程度のサイズは、画素密度を600dpiとすれば、実寸にして35ミリ×25ミリ程度のサイズとなる。埋め込めるデータ量は単純にそのサイズに比例するものとすれば、A4サイズ(210ミリ×290ミリ)の画像であれば、限られた長さの文字列オブジェクトを定義したPDLコードを埋め込むためには十分な容量がある。なお、この容量は基本行列によって決定されるため、使用される基本行列が決定された時点で予め知ることができる。そのため、付加情報のデータ量とその容量とを埋め込み処理の前に比較することができる。
【0089】
<本実施形態におけるプリンタドライバにおける出力処理>
次に、添付の図面を参照して本発明に係る一実施形態を説明する。
【0090】
図13は本実施形態におけるコンピュータシステムにより提供される、ページ記述言語が埋め込まれた画像データを生成するためのシーケンスを示すフローチャートである。この処理プログラムはコンピュータシステム1201上で提供され、一般的にはドライバソフトウェアと呼ばれる、印刷装置専用の出力ソフトウェアで実現される。ドライバソフトウェアは各種のアプリケーションへ印刷機能を提供しており、さまざまな設定が可能であり印刷装置特有のページ記述言語を生成し、印刷装置へ出力することで印刷を実現している。
【0091】
次に図13を参照してドライバソフトウエアがプリンタ1203に送信する印刷データを生成する処理手順を述べる。
【0092】
ページ記述言語が埋め込まれた画像データを生成するために、まずユーザが印刷設定を行うことで画像劣化を防止したい箇所を指定させる(1301)。
【0093】
この指定は、たとえば画像のプレビュー表示をユーザが見て、そのプレビュー画面上において、ポインティングデバイス等により所望の箇所を指摘することで行われる。プレビュー表示機能は文書処理などのアプリケーションプログラムには備えられているが、その画像上で位置を指定するための機能は通常有していない。そこで、アプリケーションプログラムに、プレビュー画面上で位置を指定させる機能と、指定された位置をプリンタドライバに渡すための機能を設けることでこれを実現できる。あるいは、プリンタドライバは通常種々の設定をユーザに行わせるためのユーザインターフェースを備えているので、その機能のひとつとしてプレビュー表示機能を設け、そのプレビュー画面上で位置を指定させることもできる。この場合、アプリケーションは無関係なので劣化防止位置を指定できるか否かはアプリケーションに依存しない。劣化防止箇所が指定された場合には、指定された旨のフラグおよび指定された箇所(位置あるいは範囲)を記憶する。
【0094】
印刷開始等の指示が入力された場合、劣化防止箇所が指定されているか否か、ステップ1301で記憶したフラグを基準として判定する(1302)。
【0095】
ユーザが劣化防止範囲を指定していない場合は、一般的な印刷と同様に画像データを生成し(1307)、印刷装置へデータを出力する(1306)。
【0096】
一方、劣化防止箇所が指定されている場合には、次に、ドライバソフトウェアにおいて、劣化防止箇所として指定された箇所について、ページ記述言語(PDL:Page Description Language)を用いたPDLコードデータを生成する(1303)。この際、指定された箇所を含むオブジェクトがPDL化される。たとえば、指定された箇所に文字オブジェクトが含まれていれば、その文字がPDLデータに変換される。もちろん、そのオブジェクトが配置される位置等もPDLデータには含まれる。
【0097】
なお、この段階でPDL化するオブジェクトの種類に制限を設けることもできる。たとえば、指定された箇所に含まれる文字オブジェクトのみをPDLコードへの変換の対象とすることもステップ1303において実現できる。もちろん、グラフィクスオブジェクトのみをPDL化したり、あるいは文字及びグラフィクスをPDL化の対象とすることもできる。ビットマップデータをPDL化の対象とすることも可能ではあるが、その場合には変換後のデータ量を減少させるために、圧縮処理を施してから、圧縮されたデータをPDL化の対象とする等の方法を講じることが望ましい。
【0098】
そして、生成されたデータが、ページ全体を印刷した際にその画像中に埋め込むことができるサイズかどうかを判定する(1304)。この判定は前述したように、基本行列としてどのような行列が用いられるかによって決定される埋め込み可能なデータ容量を基準として行える。
【0099】
ステップ1304における判定の結果、生成されたページ記述言語のデータサイズが埋め込むことができない場合は、印刷不可能の旨をユーザへ通知し、再度ユーザに印刷の設定を促す。
【0100】
一方、判定の結果、ページ記述言語のデータサイズが埋め込むことができる場合は、ページ記述言語を埋め込んだ、ページ記述言語で表現した画像データを生成する(1305)。そのためにまず印刷対象の画像全体をビットマップデータとして展開する。そして、前述した付加情報infとしてステップ1303で生成されたPDLコードデータを、画像データIとして展開されたビットマップデータを、図1の埋め込み情報入力部102および画像入力部101それぞれに渡すことで、図1の埋め込み処理部によりPDLコードデータの画像データへの埋め込みが実行される。図1の各ブロックは、本実施例においてはソフトウエアモジュールとして実現されているので、埋め込み情報入力部102および画像入力部101へのデータの引き渡しは、たとえば各データのアドレスの引き渡し等により実現できる。
【0101】
そして印刷装置へ生成した画像データを出力する(1306)。画像データの出力に際しては、電子透かしが埋め込まれた画像データ全体についてプリンタ1203が解釈実行可能なPDLデータに変換されてからプリンタ1203に送信される。その際、画像データに埋め込まれたページ記述言語は画像の中のイメージの一部となっているため、プリンタ1203は電子透かしが埋め込まれていない通常の画像データとして印刷を行うことが可能である。
【0102】
<本実施形態における複写機における複写処理>
図14は本実施形態における印刷装置1203あるいは複写機1204により提供される、印刷装置1203から出力された画像を、複写機1204の画像読み取り部から読み取り、読み取られた画像からページ記述言語を抽出し、抽出されたページ記述言語を解釈し画像を生成し、読み取られた画像データと編集(合成)して出力を行う処理シーケンスを示すフローチャートである。
【0103】
まず、画像を複写機1204に装着されている画像読み取り部から読み取る(1401)。複写機1204はページ記述言語のコードデータが電子透かしとして含まれるかどうかを読み取った画像から判断を行い(1402)、ページ記述言語が含まれない場合は何もしない。ページ記述言語のコードデータが電子透かしとして含まれているか否かの判定及び抽出は、上述した「電子透かし抽出処理部」について説明した通りの手順で行われる。すなわち、読み込んだ画像データを図7の画像入力部701に画像データI”として引き渡すことで、電子透かし抽出処理部により電子透かしの判定及び抽出が行われる。
【0104】
ページ記述言語が含まれておりそれが抽出された場合は、ページ記述言語を解釈して印刷用データを生成する(1403)。ただし、解釈できないコードが含まれている場合(たとえば実行中に文法エラーが生じる場合など)には、抽出されたコードに誤りがあるか、あるいは偶然にも本発明とは無関係な目的のために挿入された電子透かしが抽出された場合であると考えられるので、印刷用データの生成は行わない。
【0105】
その後、画像読み取り部からステップ1401で読み取った画像から印刷用データ(ビットマップデータ)を生成し(1404)、埋め込まれたページ記述言語から生成した印刷用データがあれば、それを読み取った画像から生成した印刷用データへ上書きすることで、最終的な印刷用データを作成する(1405)。もちろん、上書きはページ記述言語で定義されたオブジェクトの位置にされる。そして印刷用データを用いて画像形成を行う(1406)。
【0106】
以上の手順により、電子透かしとして埋め込まれたPDLデータを元に画像データを生成し、それを電子透かしが埋め込まれた画像データに上書き合成することで、指定された部分あるいはオブジェクトについては、複写による画質の劣化を防止することができる。
【0107】
[第1実施形態の変形例]
なお、図13の手順は、印刷装置において行うこともできる。その場合には、印刷装置はコンピュータからPDLデータで記述されたコードである印刷データを受信するとともに、出力画像に埋め込まれるコードがそのPDLのコードのうちどの部分であるかの指定も受信する。印刷装置は、受信した印刷データをプリントエンジンで出力可能な形式の2値あるいは多値のドットデータに変換し、変換されたドットデータに、指定されたPDLのコード(2進コード)を、上述した電子透かしの方法を用いて埋め込む。
【0108】
このほか、複製禁止の旨の文字列に相当するPDLコードを電子透かしとして文書に埋め込み、複製時にそれを文書に上書きして複製物であることを明示することもできる。
【0109】
また、ファクシミリ送信に際しても本発明のPDLコードの埋め込みを行うことができる。ファクシミリ受信した場合には、一端ファクシミリデータをメモリ上で復号し、そこから上述した電子透かしの判定及び抽出を行う。そして、コードが抽出されたなら、そのコードをPDLとして解釈し、生成された画像を複合されたファクシミリ画像に合成して出力する。
【0110】
ファクシミリ画像は一般に複写された文書に比べて画像品質の劣化の程度が著しいいため、一層本発明の効果が発揮される。そして、特筆すべきは、このようにしてPDLが埋め込まれたデータであっても画像としては通常の画像と変わりなく処理できるために、特に本発明にかかる機能を備えたファクシミリ装置を送受信の相手としていなくとも、通常のファクシミリ通信と変わるところなく通信を行うことができる。
【0111】
また、図14のステップ1403においてPDLデータから画像データを生成する際に、文字やグラフィクスオブジェクトについては、指定された線の幅よりも若干太くした線の画像データを生成することで、上書き位置の多少の位置ずれや、元の画像における境界線の劣化等をより改善する効果を得ることができる。
【0112】
[第2実施形態]
図15は本実施形態における印刷装置により提供される、印刷装置から出力された画像を前記印刷装置の画像読み取り部から読み取り、読み取られた画像からページ記述言語を抽出し、抽出されたページ記述言語を解釈し画像を生成し、読み取られた画像データと編集し出力を行うシーケンスを示すフローチャートである。
【0113】
この手順も図14と同様複写機により実行されるプログラムである。
【0114】
まず、ページ記述言語が埋め込まれた画像を印刷装置1203あるいは複写機1204に装着されている画像読み取り部から読み取る(1501)。印刷装置はページ記述言語が含まれるかどうかを読み取った画像から判断を行い(1502)、ページ記述言語が含まれない場合は何もしない。ページ記述言語が含まれた場合は、ページ記述言語を解釈し印刷用データを生成する(1503)。印刷装置1203あるいは1204が複数のプロセスの並行処理が可能な装置である場合、ステップ1502の処理と並行して、画像読み取り部から1501で読み取った画像から印刷用データを生成し(1504)、埋め込まれたページ記述言語から生成した印刷用データがあれば、それを読み取った画像から生成した印刷用データへ上書きすることで、最終的な印刷用データを作成する(1505)。そして印刷用データを用いて出力を行う(1506)。
【0115】
以上のように、本実施形態においても第1実施形態と同様に、コンピュータシステムから印刷装置へ出力を行う際に、画像劣化を防ぐ必要のある箇所をあらかじめ指定して印刷を行わせることを可能とし、指定された箇所の情報を画像へ埋め込むことが可能な大きさで表現し、印刷物を再度印刷装置の画像読み取り部より読み取り印刷を行う場合に、指定された箇所の画像の劣化を防ぎ、しかも大規模なシステムを必要としない画像処理システムを提供できるる。
【0116】
くわえて、本実施形態では、処理の一部を並列実行するために、印刷出力が開始されるまでの時間が短縮される。
【0117】
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
【0118】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
【0119】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0120】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0121】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0122】
【発明の効果】
以上のように、本発明によれば、コンピュータシステムから印刷装置へ出力を行う際に、画像劣化を防ぐ必要のある箇所をあらかじめ指定し、指定された箇所の画像をコード化して出力画像に埋め込むことが可能となり、印刷物を画像読み取り部より読み取り印刷を行うなどして複写する場合に発生する画像劣化を、指定された箇所については防止できる。
【図面の簡単な説明】
【図1】本発明における電子透かしの埋め込み処理の一例を説明するブロック図
【図2】本発明における電子透かし生成部の一例を説明するブロック図
【図3】本発明における基本行列の一例を示す図
【図4】本発明における電子透かしの一例を示す図
【図5】本発明における電子透かし埋め込み演算の一例を示す図
【図6】本発明におけるマクロブロックの一例を示す図
【図7】本発明における電子透かしの抽出処理の一例を説明するブロック図
【図8】本発明における抽出パターン生成部の一例を示す図
【図9】本発明における抽出パターンの一例を示す図
【図10】本発明における集積画像を用いた電子透かしの抽出の一例を説明する図
【図11】本発明における集積画像を用いた電子透かしの抽出演算の一例を説明する図
【図12】本発明における実施形態の一例を示すブロック図
【図13】本発明における実施形態の一例を示すフローチャート
【図14】本発明における実施形態の一例を示すフローチャート
【図15】本発明における実施形態の一例を示すフローチャート
【図16】本発明におけるシステム構成を示すブロック図
【符号の説明】
1201 ホストコンピュータ
1202 ネットワーク
1203 画像読み取り部を有する印刷装置
1204 画像読み取り部を有する印刷装置
【発明の属する技術分野】
本発明は、例えばページ記述言語等が埋め込まれた画像を出力し、あるいは、ページ記述言語等が埋め込まれた画像から画像を生成する画像処理装置に関する。
【0002】
【従来の技術】
電子透かし(デジタルウォーターマーク)と呼ばれる、画像の中へのデータを埋め込みことが可能な既知の技術がある。電子透かしとは“不可視の”電子透かしとも呼ばれ、オリジナルの画像データに、人間の視覚では殆ど認識できないレベルのオリジナル画像データからの変化として所望のデータを埋め込む技術である。そして、電子透かしは、画像データに埋め込まれているか否かをその埋め込み方法に応じた方法で判定することができ、埋め込まれている場合には埋め込まれたデータを抽出することもできる。
【0003】
電子透かしは、電子透かしが埋め込まれた画像データそのものから抽出できるのみならず、その画像データを印刷物に固定した場合にも、固定された画像を読み取って画像データを再生することで、その存在の判定及び抽出が可能である。
【0004】
【特許文献1】特開2001−119562号公報
【0005】
【発明が解決しようとする課題】
ところで、コンピュータシステム等により生成された画像データを、印刷装置により用紙等に画像を形成した印刷物として出力した場合、その印刷物を原稿としてイメージスキャナや複写機等により画像として読み取って複写すると、複写された画像の品質は原稿の品質よりも劣化する。
【0006】
このような複写による画像品質の劣化は多くの場合大きな問題にはならない。しかしながら、複写物を原稿とする複写を重ねれば画質の劣化により文字等の判読が困難な程度にいたる場合もある。あるいは、コンピュータ等による文字認識を目的としている場合、画質の劣化は直ちに認識率の低下をもたらす。さらに、文書中の署名や会社名といった特定の箇所については、複写物についてもできるだけ高品質で出力することが望ましい。
【0007】
本発明は上記従来例に鑑みて成されたもので、電子透かし技術を利用することで、大規模なシステムを用いることなく複写による画像品質の劣化を防止することができる画像処理装置及び画像形成装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
上記目的を達成するため、本発明の画像処理装置は以下の構成を有する。
【0009】
出力対象画像のドットデータを生成する画像データ生成手段と、
前記ドットデータに、画像データの少なくとも一部に対応するコードデータを埋め込むコード埋め込み手段と、
前記コード埋め込み手段により埋め込まれたドットデータを出力手段により画像として出力させる手段とを備える。
【0010】
更に好ましくは、前記コード埋め込み手段は、前記出力対象画像のうち、指定されたオブジェクトを記述するページ記述言語で記述されたコードデータを生成し、そのコードデータを前記ドットデータに埋め込む。
【0011】
あるいは、本発明の画像処理装置は、入力画像データから、該画像データに埋め込まれたコードデータの抽出を試みるコード抽出手段と、
前記抽出手段によりコードデータが抽出された場合、抽出されたコードデータに基づいて画像データを生成し、該画像データと、前記入力画像データとを合成する合成手段とを備える。
【0012】
更に好ましくは、前記合成手段は、前記コードデータをページ記述言語として解釈して画像データを生成し、該画像データに対応する画像が、前記入力画像データに対応する画像上で前記コードデータにより指定された位置に配置されるように、前記コードデータから生成された画像データと前記入力画像データとを合成する。
【0013】
更に好ましくは、本発明の画像形成装置は、上記画像処理装置と、
前記画像処理装置により合成された画像データを画像として出力するための画像形成手段と
を備える。
【0014】
更に好ましくは、画像を画像データとして読み取る読み取り手段を更に備え、前記読み取り手段により読み取られた画像データを前記画像処理装置の入力画像データとする。
【0015】
【発明の実施の形態】
[第1実施形態]
本発明の第1の実施形態として、図12に示した、コンピュータ1201およびそれに接続されたプリンタ1203、複写機を有するシステムについて説明する。プリンタ1203は、コンピュータ1201から受信した印刷データに基づいて印刷出力を行う。また、そのプリンタ1203により印刷された文書を複写するための複写機1204も本実施形態のシステムの一部を構成する。この複写機1204はコンピュータ1201と接続されている必要はない。しかしながら、複写機1204とプリンタ1203とを兼ねるデバイス、たとえばディジタル複合機(以下単に複合機と呼ぶ。)と呼ばれるデバイスであれば、このプリンタと複写機の機能を1台で実現できる。その場合には、本実施形態のシステムを構成する装置は、コンピュータとその複合機で十分である。複合機は、コンピュータに接続されたプリントしての機能、画像スキャナで原稿を読み取りそれをプリンタにより出力する複写機としての機能、画像スキャナで読み取った画像をコンピュータに送信する機能、電話回線に接続されてファクシミリ送信やファクシミリ受信の機能等を遂行することができる。
【0016】
図16はコンピュータ1201及びプリンタ1203を接続したシステムのブロック図である。図16において、ホストコンピュータ1201では、CPU1601によりRAM1602に記憶された文書処理プログラムを実行して図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行し、また、プリンタドライバプログラムを実行して、作成された文書データ等に含まれるオブジェクトをプリンタで解釈可能なPDLで表された形式に変換する。また、後述する手順を実行して、電子透かし埋め込み処理を行う。CPU1は、このほかシステムバス4に接続される各デバイスを統括的に制御する。キーボードコントローラ(KBC)1605は、キーボード1609や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)1606は、CRTディスプレイ1610の表示を制御する。ディスクコントローラ(DKC)1607は、ブートプログラム、文書処理等の種々のアプリケーション、プリンタドライバプログラム等を記憶するハードディスク(HD)やフロッピー(登録商標)ディスク(FD)等の外部メモリ11とのアクセスを制御する。プリンタコントローラ(PRTC)1608は、所定の双方向インターフェース(双方向I/F)1202を介してプリンタ1203に接続されて、プリンタ1203との通信制御処理を実行する。
【0017】
プリンタ1203においては、プリンタCPU1612は、ROM1613あるいはRAM1619に記憶された制御プログラム等に記憶された制御プログラム等に基づいてシステムバス1615に接続される各種のデバイスとのアクセスを統括的に制御し、印刷部I/F1616を介して接続される印刷部(プリンタエンジン)1617に出力情報としての画像信号を出力する。CPU1612は双方向I/F1202を介してホストコンピュータ1201との通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ1201に通知可能に構成されている。RAM1619はCPU1612の主メモリ、ワークエリア等として機能するRAMである。入力部1618はホストコンピュータ1201と双方向インターフェース1202を介して印刷状態情報などのステータス情報などの交信を制御し、プリンタ内の情報等をホストコンピュータ1201に通知可能に構成されている。メモリコントローラ(MC)1620は、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等を記憶するハードディスク(HD)、フロッピー(登録商標)ディスク(FD)等の外部メモリ1614とのアクセスを制御する。操作部1012は、表示パネルやキーボードを含んでおり、オペレータへの情報の提供や、オペレータからの指示の入力を行わせる。
【0018】
なお複写機1204は、図16のコンピュータ1201の代わりに画像スキャナを接続して入力部1618から読み込まれた画像データを入力する構成としたものと考えることができるため、図示は省略する。
【0019】
このような構成において、本実施形態のシステムでは以下のような機能を遂行する。
【0020】
<本実施形態のシステムの概略機能>
本実施形態にかかるコンピュータ1201により実行される、プリンタを制御するドライバプログラムは、接続されたプリンタにより印刷させる印刷データをビットマップ形式で生成し、ページ記述言語(PDL)で記述された、指定されたオブジェクトを表すPDLコードを、その印刷データに電子透かしとして一定の手順で埋め込んで、印刷ジョブとしてプリンタ1203に送信する。それをコンピュータ1201から受信したプリンタ1203は受信したデータに応じた画像を印刷する。
【0021】
一方、そのようにして印刷された画像は、複写機1204の画像スキャナにより読み取られると、コンピュータ1201により埋め込まれた電子透かしの有無が判定され、電子透かしが含まれていればそれを抽出して抽出されたコードをPDLで記述されたコマンド及びパラメータとして解釈して実行する。その結果得られる画像データは、画像スキャナにより読み取られた画像データに上書きするなどして合成され、複写機1204によって印刷出力される。
【0022】
まず電子透かしの埋め込みおよび抽出の技術について説明する。
【0023】
[電子透かし埋め込み処理部]
図1は、本実施形態のプリンタドライバプログラムの備える電子透かし処理に関する機能ブロック(電子透かし処理部)を示す図である。プリンタドライバの電子透かし処理部は、機能上は、画像入力部101、埋め込み情報入力部102、鍵情報入力部103、電子透かし生成部104、電子透かし埋め込み部105、画像出力部106を有する。上記各部はそれぞれの処理に必要な機能を概念的なものとして捉えたものであり、たとえば個々のソフトウエアモジュールに相当する。なお、ここで説明する埋め込み処理はハードウエア処理により実現されても良い。なお以下の説明においてメモリとは、コンピュータ1201のRAM1602などであり、画像データや埋め込まれる付加情報、また作業に利用される領域がメモリに割り当てられる。また、以下の説明では各ブロックの出力データが次のブロックの入力データとなるものとして記載されているが、データは共通のメモリに格納され、各機能ブロックはそのメモリに出力を書き込み、次のブロックはその内容を参照することでデータの入出力を実現することもできる。
【0024】
(画像入力部)
まず、画像入力部101の機能について説明する。画像入力部101には電子透かしの埋め込み対象となる画像を表す画像データIが入力される。この画像データIは、文書処理アプリケーションで作成された文書データ等を電子透かしの埋め込み処理の対象となるビットマップデータに変換したものである。ビットマップデータは、たとえば1画素をRGBそれぞれ8ビットで表現したフルカラー画像データや、1画素を8ビット階調で表現したモノクロ画像データなどである。その画像データIは画像入力部101から出力され、電子透かし埋め込み部105に入力され、電子透かしが埋め込まれる単位毎、たとえば1ページのシート上に形成される画像データごとにメモリに記憶される。画像入力部101が、このビットマップデータを生成する機能を有していても良い。
【0025】
なお以降の説明では、説明を簡単にするために、画像データIはモノクロの多値画像を表現しているものとするが、本発明はこのような場合には限定されない。例えばカラー画像データ等の複数の色成分からなる画像データに対して電子透かしを埋め込むならば、その複数の色成分である例えばRGB成分、或いは輝度、色差成分の夫々を上記モノクロの多値画像として扱う様にし、各成分に対して電子透かしを埋め込めばよい。この場合には、モノクロ多値画像へ電子透かしを埋め込む場合と比較して、約3倍のデータ量を埋め込むことが可能となる。
【0026】
(埋め込み情報入力部)
次に、埋め込み情報入力部102の機能について説明する。埋め込み情報入力部102には、画像データIに電子透かしとして埋め込むべきバイナリデータ列が入力される。そのバイナリデータ列は埋め込み情報入力部102から出力され、電子透かし生成部104に入力されてメモリに記憶される。以下、埋め込まれるバイナリデータ列を付加情報Infと呼ぶ。付加情報Infは、“0”または“1”の何れかを表すビットの組み合わせによって構成される情報である。この付加情報infは、画像データIの著作者を特定する著作権情報を表していたり、画像データIの利用者を特定する利用者情報を表していたりする。本実施形態では、付加情報infは、PDLで記述した印刷すべきオブジェクトのコードデータである。後述する手順でプリンタドライバによって生成されたPDLコードは、同じくプリンタドライバにより実現される埋め込み情報入力部102により電子透かし処理部に入力される。すなわち、生成されたPDLコードを付加情報infとしてメモリの所定のアドレスに記憶する。
【0027】
なお、付加情報Infは、その付加情報Infが容易に悪用されない様に暗号化されていても良い。付加情報Infは、この付加情報Infが電子透かしとして埋め込まれた画像データIに対して、悪意を持った人間により、付加情報Infが画像データIから抽出できない様に内容変更(以下攻撃と呼ぶ)が施された場合にも、正しくその付加情報Infを抽出できる様に、誤り訂正符号化が施されても良い。ただし、本実施形態では、付加情報infについて暗号化や誤り訂正符号化は行わない。なお上記攻撃には故意によらない攻撃も有る。例えば、一般的な画像処理(非可逆圧縮、輝度補正、幾何変換、フィルタリングなど)が、結果として電子透かしを除去してしまうことも有り、この場合も攻撃であると言える。このような暗号化および誤り訂正符号化などの処理の詳細は公知であるので本明細における詳しい説明は省略する。以降では、nビットで表現される付加情報を埋め込む例について詳しく説明する。
【0028】
(鍵情報入力部)
次に、鍵情報入力部103の機能について説明する。鍵情報入力部103には付加情報Infの埋め込みおよび抽出に必要な鍵情報kが入力されてハードディスクやRAM等のメモリに格納される。入力は、コンピュータ1201のキーボード等によりオペレータから入力されたり、あるいは、コンピュータにより自動生成することもできる。その鍵情報kは鍵情報入力部103から出力されて電子透かし生成部104に入力される。
【0029】
ここで鍵情報kとはL(正数)ビットで表される実数である。L=8の正数として表現する場合には、“01010101”が鍵情報kの一例であり、例えば、正の整数として表現する場合には“85”として与えられる。鍵情報kは、後述する擬似乱数発生部202で実行される擬似乱数発生処理に初期値として与えられる。電子透かし埋め込み処理部および後述する電子透かし抽出処理部において共通の鍵情報kを使用した場合に限り、電子透かしとして埋め込まれている付加情報Infを正しく抽出することが可能である。即ち、鍵情報kを所有している利用者だけが付加情報Infを正しく抽出することができる。
【0030】
(電子透かし生成部)
次に、電子透かし生成部104の機能について説明する。電子透かし生成部104には埋め込み情報入力部102から付加情報Inf、及び鍵情報入力部103から鍵情報kが入力され、入力され記憶された付加情報Infと鍵情報kとに基づいて電子透かしwが生成され、生成された電子透かしwが出力される。生成された電子透かしwはこれもメモリに記憶される。
【0031】
<電子透かしの生成処理>
電子透かし生成部104の機能の詳細について図2を用いて説明する。図2に示すように、電子透かし生成部104は基本行列生成部201、擬似乱数発生部202、及び擬似乱数割り当て部203から構成される。
【0032】
まずはじめに基本行列生成部201の機能について説明する。基本行列生成部201では、基本行列mが生成される。生成された基本行列mは出力され、擬似乱数割り当て部203に入力される。ここで基本行列mとは付加情報Infを構成する各ビットの位置と、前記各ビットが埋め込まれる画像データI上の画素位置を対応付けるために用いられる行列である。
【0033】
ここでは、基本行列生成部201は複数の基本行列を選択的に利用することが可能である。そしてどの基本行列を用いるかは、その時の目的/状況に応じて変化させる必要が有り、本発明ではこれら基本行列の切り替えにより最適な電子透かし(付加情報Inf)の埋めこみが可能である。
【0034】
基本行列mの具体例を図3に示す。行列301は16ビットから構成される付加情報Infを埋め込む場合に用いられる基本行列mの一例を示したものである。行列301に示す様に16ビットの付加情報Infを埋め込むために、例えば4×4の基本行列mが用いられ、更に1から16の数字が基本行列内の各要素に割り当てられている。
【0035】
図3から分かる様に、この説明では、基本行列m内の要素の値と付加情報Infのビット位置が対応付けられるものとする。具体的には、基本行列m内の要素の値が“1”の位置に付加情報Infのビット位置“1”のビット情報(最上位ビット)を埋め込み、同様に、基本行列m内の要素の値が“2”の位置に付加情報Infのビット位置“2”のビット情報(最上位ビットの次のビット)を埋め込む。基本行列mは、メモリ1602やハードディスク1611に予め用意されている。
【0036】
次に、擬似乱数発生部202の機能について説明する。擬似乱数発生部202には、鍵情報入力部103から鍵情報kが入力され、鍵情報kを元に擬似乱数列rが生成される。鍵情報kは擬似乱数を発生させる場合の初期値として用いる値であり、予め本実施形態の電子透かし処理に用いるものとして定められた値がハードディスク1611等に保存されている。鍵情報kを初期値として生成された擬似乱数列rは擬似乱数割り当て部203に入力される。ここで擬似乱数列rとは、{−1,1}の範囲に含まれる一様分布に従う実数列である。生成される擬似乱数は初期値によって異なる系列となる。即ち、第1の鍵情報を用いて生成した第1の擬似乱数列と、第1の鍵情報とは異なる第2の鍵情報を用いて生成した第2の擬似乱数列は異なるが、第1の鍵情報と同一の第2の鍵情報を用いて生成した第2の擬似乱数列は、第1の擬似乱数列と同一である。擬似乱数列rを生成する方法は公知の技術であるので詳細な説明は省略する。生成された擬似乱数列rは擬似乱数割り当て部203に出力される。
【0037】
次に、擬似乱数割り当て部203の機能について説明する。擬似乱数割り当て部203には、基本行列mと付加情報inf、擬似乱数列rとが入力される。そして、付加情報infの値を参照して、擬似乱数列rの各要素を基本行列mの所定の要素が配置された位置に割り当てて、電子透かしwを生成する。以降では、基本行列mの所定の要素に乱数列が割り当てられた行列を電子透かしwと呼ぶ。擬似乱数割り当て部203からは生成された電子透かしwが出力される。
【0038】
具体的には、少なくとも埋め込まれるビット数までカウントできるカウンタ変数をメモリに用意する。また、基本行列mに相当する大きさの行列が格納できる領域をメモリに確保する。なお、基本行列mの要素をm(i,j)、生成される電子透かしの要素をw(i,j)で表し、カウンタ変数をcで表す。また、付加情報infのi桁目をinf(i)、擬似乱数列rの第i番目の要素をr(i)と表す。これらはすべてメモリ上に割り当てられた対応するロケーションを表す。そのロケーションに格納された内容はvを名前の前に付して表す。たとえばカウンタ変数cの値はvcであり、付加情報inf(i)の値はvinf(i)である。また、擬似乱数列を生成する際には、r(1)については、初期値として鍵情報kを用いて乱数生成の処理を実行することで生成する。r(2)以降は、乱数生成の処理を実行することで順次乱数系列を生成させる。
【0039】
まずカウンタ変数cの値vcとして1をセットする。そのカウンタ変数cの値vcにより基本行列mを走査する。基本行列mにおいて要素の値がカウンタ変数cの値と等しくなるもの、すなわちvm(i,j)=vcなる要素m(i,j)が見つかれば、その要素m(i,j)に対応する配列wの要素w(i,j)に、擬似乱数列rの第vc番目の要素r(vc)の値vr(vc)を格納する。ただしその際、付加情報infの第vc番目の要素inf(vc)を参照し、その値vinf(vc)が0であれば、値vr(vc)の符号を反転した値−vr(vc)を格納する。vcを値とする要素は基本行列mには複数含まれている場合もあるので(後述する。)、以上の手順を基本行列m全体について行う。
【0040】
以上の手順を、カウンタ変数vの値vcに1加算して繰り返す。そして、カウンタ変数cの値が、付加情報infの要素数に達するまで繰り返す。たとえば付加情報infが16ビットであれば、カウンタ変数cに1加算する毎に上記手順を実行し、値16について上記処理を完了したならば、電子透かしwが完成する。
【0041】
<電子透かし生成方法の変形例>
次に、行列301からの埋めこみ方法の変形例について説明する。
【0042】
図3の行列302は8ビットから構成される付加情報Infを埋め込む場合に用いられる基本行列の他の一例を示したものである。行列302に示す基本行列は基本行列301の全要素のうち、1から8までの値を持つ要素だけを用いたものである。値を持たない要素の部分には付加情報Infを埋め込まない。値を持たない要素の部分には、たとえば0や、付加情報infの桁数(要素数)を越える数値を埋め込んでおく。行列302の様に付加情報Infを表す各ビットの埋めこみ位置を散らすことにより、基本行列301を用いて生成した電子透かしよりも、電子透かし(付加情報Inf)の埋めこみによる画像の変化(画質劣化)を認識しずらい電子透かしを生成できる。
【0043】
図3の行列303は、行列302と同様に8ビットから構成される付加情報Infを埋め込む場合に用いられる基本行列mの一例を示したものである。行列302と行列303は夫々8ビットの付加情報Infを埋め込むことが可能な基本行列mであるが、行列302は全画素の50%にあたる画素を付加情報Infの埋め込みに用いているのに対して、行列303では全画素(100%)を付加情報Infの埋め込みに用いられる。即ち、1ビット埋め込むために行列302では基本行列中の1画素を用いているのに対して、行列303では基本行列中の2画素を用いて付加情報Infの1ビットを埋め込んでいる。行列303の様に、付加情報Infを表す各ビットを埋めこむ回数を増やすことにより、電子透かしが埋め込まれた画像に攻撃が加えられた場合には、行列301や行列302よりも、その電子透かし(付加情報Inf)を確実に抽出できる(攻撃耐性が有る)ことになる。
【0044】
ここで、全画素中で電子透かしの埋め込みのために使用する画素の割合を、以降では充填率と呼ぶことにする。行列301を用いた場合充填率は100%、行列302を用いた場合は充填率50%、行列303を用いた場合は充填率100%である。
【0045】
図3の行列304は、行列303を用いた場合と同様に全画素を付加情報Infの埋め込みに用いている。即ち、充填率は100%である。しかしながら、行列303は8ビットの付加情報Infを埋め込むのに対して、行列304を用いた場合には4ビットの付加情報Infしか埋め込まない。よって、1ビット埋め込むために行列303では基本行列中の2画素を用いているのに対して、行列304では基本行列中の4画素を用いて付加情報Infの1ビットを埋め込んでいる。行列304の様に、付加情報Infを表す各ビットを埋めこむ回数を増やすことにより、電子透かしが埋め込まれた画像に攻撃が加えられた場合には、行列301や行列302や行列303よりも、その電子透かし(付加情報Inf)を確実に抽出できる(攻撃耐性が有る)ことになる。ただし、攻撃耐性が非常に有る代わりに、埋め込む付加情報Infの情報量は4ビットとなり、行列301や行列302や行列303よりも少ない。
【0046】
次に、上述した4つの例を表にまとめたものを示す。
このように、基本行列mをどのような構成にするかによって、充填率と1ビットを埋め込むのに使用する画素数と埋め込み可能な情報量を選択的に設定することができる。上記表1では、充填率は主に電子透かしを埋め込んだ画像の画質に影響するパラメータであり、1ビットを埋め込むために使用する画素数は主に攻撃に対する耐性に影響するパラメータである。充填率を大きくすると電子透かしを埋め込んだ画像の質の劣化は大きくなり、1ビット埋め込むために使用する画素数を多くすると攻撃に対する耐性は強くなる。以上から分かる様に、電子透かしを実現する際には、埋めこみ対象の画質と電子透かしの攻撃に対する耐性と埋め込める付加情報Infの情報量がトレードオフの関係にある。
【0047】
本発明においては、上述した複数種類の基本行列mを適応的に選択することによって、電子透かしの耐性と画質と情報量を制御、及び設定することが可能である。
【0048】
<電子透かし生成処理の例>
ここで、擬似乱数列rの各要素を基本行列mの所定の要素に割り当てる前述した処理の詳細について例を用いて説明する。
【0049】
まず、例として図3に示した基本行列304を用いる。前述したように基本行列304を用いることにより4ビットの情報を埋め込み可能である。
【0050】
まずはじめに、基本行列304に示す基本行列内の各要素のうち、値として“1”を持つ要素をラスタースキャン順にスキャンして、順に擬似乱数列rの各要素を割り当てる。割り当てる際には、付加情報Infに応じて付加情報Infのビットが“1”の時は擬似乱数列rの要素をそのまま割り当て、一方で付加情報Infのビットが“0”の時は擬似乱数列rの要素に“−1”をかけた値を割り当てる。
【0051】
次に、値として“2”をもつ要素において同様の処理を実行する。以上の処理を、値としてn(埋め込みビット数)を持つ要素までに対して実行する。以上の示した例によって生成された電子透かしwの一例を図4に示す。電子透かし401は擬似乱数列rとしてr={0.7,−0.6、−0.9,0.8}という実数列、付加情報Infとして“1001”という4ビットの情報を用いた場合の例である。
【0052】
こうして生成された電子透かしwは電子透かし生成部104の出力として出力され、電子透かし埋め込み部105に入力される。
【0053】
尚、以上では説明のために16ビット、8ビット及び4ビットの付加情報を埋め込むために4×4の基本行列を用いたが、本発明はこれに限らず、1ビット埋め込むために更に多くの画素を利用し、より大きなサイズの基本行列を用いる場合も本発明の範疇に含む。より大きなサイズの基本行列を用いた場合には、擬似乱数列もより長い実数列を用いることになる。実際には、説明に用いたような4要素から構成される乱数列では、後述する電子透かし抽出処理が正しく動作しない可能性がある。具体的には、付加情報Infが埋め込まれているにも関わらず、集積画像cと電子透かしw1、w2、…、wnとの相関係数が小さくなる可能性がある。よって、例えば64ビットの付加情報を埋め込むために充填率50%において256×256の基本行列を用いるような構成とする。この場合、1ビット埋め込むために512画素使用することになる。本実施形態では、付加情報infとしてPDLで記述されたコードが画像に埋め込まれる。そこで、予想される埋め込むべきデータ量から逆に基本行列のスケール(あるいは充填率も)を決定するのが望ましい。たとえば充填率50パーセントとすれば、埋め込むべきPDLコードのサイズがpビットであれば、32√p×32√p程度のサイズの基本行列が必要とされる。PDLデータのサイズは、記述するオブジェクトが文字列であればその文字数に応じてサイズがある程度決まるので、埋め込める文字列の長さを基準として基本行列のサイズを決定することもできる。
【0054】
(電子透かし埋め込み部)
次に、電子透かし埋め込み部105の機能について説明する。電子透かし埋め込み部105では、画像データI及び電子透かしwが入力され、画像データIに電子透かしwが埋め込まれ、電子透かしwが埋め込まれた画像データI’が出力される。
【0055】
電子透かし埋め込み部105の処理の詳細について説明する。電子透かし埋め込み部105では、
I’(i,j)=I(i,j)+a×w(i,j) … (式1)
という式に従って、電子透かしの埋め込み処理が実行される。ここで、I’(i,j)は電子透かしが埋め込まれた画像データの画素、I(i,j)は電子透かしが埋め込まれる前の画像データの画素、w(i,j)は電子透かしの要素、i及びjはそれぞれ画像I、I’の画素位置及び電子透かしwの要素の位置(x座標及びy座標)を表すパラメータ、定数aは電子透かしの強度を設定するパラメータである。ただし、画像データは、電子透かしwと同一サイズ(縦横の画素数が基本行列に対応するサイズ)の互いに重ならないブロックに分割され、式1はその個々のブロックについての演算を示す。このブロックを、以下マクロブロックと呼ぶ。
【0056】
この処理は、画像入力部101により入力されてメモリに記憶された画像データについて、電子透かしwのサイズに対応したマクロブロック毎に、当該マクロブロックの内容I(i,j)とメモリに記憶された定数aおよび電子透かしw(i,j)とを参照して式1右辺の演算を実行し、それを画像データの当該マクロブロックI(i,j)に格納(あるいはマクロブロックに対応するあらたなメモリ領域I’(i,j)に格納)することで実行される。画像データがラスタイメージであれば、マクロブロックにおけるアドレスiは着目マクロブロックの各ラインにおける先頭から末尾までの範囲となり、アドレスjは着目マクロブロックの先頭ラインから末尾ラインまでの範囲となる。さらに、ひとつのマクロブロックについて式1の処理を終えたなら、次のマクロブロックについても同様の処理を行いつつ、画像データの全領域について式1の演算処理を施す。
【0057】
例えば、定数aの値としては“10”程度の値が選択可能である。定数aの値を大きく設定することによって耐性の強い電子透かしを埋め込むことが可能であるが、画質劣化が大きくなる。一方で、定数aの値を小さく設定することによって電子透かしの耐性は弱くなるが、画質劣化は小さくすることが可能である。前述した基本行列mの構成と同様に、定数aの値を適当に設定することにより、電子透かしの攻撃に対する耐性と電子透かしを埋め込んだ後の画像の画質のバランスを設定することが可能である。
【0058】
式1に示した電子透かし埋め込み処理の具体例として、4×4の基本行列mを用いた場合の例を図5に示す。図5において行列501は式1における画像データのマクロブロックI’、行列502は画像データのマクロブロックI、行列503は電子透かしwを表す。図5に示すように、式1の演算は行列内の各要素に対して実行される。
【0059】
以上、式1(図5)に示した演算処理は実際には入力された画像データIの全体に対して繰り返し実行される。例えば、入力された画像データIが24×24画素から構成されている場合の例を図6に示す。図6に示すように、入力された画像データIは4×4画素から構成される互いに重ならないマクロブロックに分割され、分割された夫々のマクロブロックに対して式1(図5)に示した演算処理が繰り返し実行される。
【0060】
全てのマクロブロックに対して繰り返し電子透かしの埋め込み処理を実行することにより、結果的に画像全体に電子透かしを埋め込むことが可能である。更に、1つのマクロブロックにはnビットから構成される付加情報Infの全体が埋め込まれている。このことから、少なくともマクロブロックが1つあれば埋め込んだ付加情報Infを抽出することができる。即ち、埋め込んだ付加情報Infを抽出するために画像データIの全体を必要とはせず、画像データIの一部(少なくともひとつのマクロブロック)があれば十分である。
【0061】
このように画像データIの一部から電子透かしを完全に抽出可能であることを「切り取り耐性がある」と呼ぶ。マクロブロック単位の電子透かし埋め込み処理を画像全体に繰り返し実行することにより、電子透かしに切り取り耐性を持たせることが可能である。こうして電子透かし埋め込み部105により生成された電子透かし埋め込み済み画像I’は、画像出力部106を通じて、電子透かしの埋め込み処理部の最終的な出力として出力される。
【0062】
本実施形態においては、出力された画像データI’はいったんメモリ等に格納されて、プリンタ1203により解釈実行可能なPDLデータ等に変換する処理が施されて、プリンタ1203に対して出力される。
【0063】
[電子透かし抽出処理部]
次に、以上で述べた電子透かしの埋め込み処理部によって埋め込まれた電子透かしを抽出する方法について説明する。以下、図7を用いて本発明に適用される電子透かしの抽出処理部(機能)を説明する。電子透かし処理部は、本実施形態においては複写機1204に実装されている。機能上は、抽出処理部は、画像入力部701、鍵情報入力部702、電子透かし生成部703、電子透かし抽出部704、電子透かし出力部705を有する。上記各部はそれぞれの処理に必要な機能を概念的なものとして捉えたものであり、たとえば個々のソフトウエアモジュールに相当する。なお、ここで説明する埋め込み処理はハードウエア処理により実現されても良い。なお以下の説明においてメモリとは、コンピュータ1612(複写機の構成についても、画像スキャナ部の他は図16のプリンタの構成を参照する。)のRAM1619などであり、画像データや埋め込まれる付加情報、また作業に利用される領域がRAM1619等のメモリに割り当てられる。また、以下の説明では各ブロックの出力データが次のブロックの入力データとなるものとして記載されているが、データは共通のメモリに格納され、各機能ブロックはそのメモリに出力を書き込み、次のブロックはその内容を参照することでデータの入出力を実現することもできる。
【0064】
(画像入力部)
まず、画像入力部701の機能について説明する。画像入力部701には電子透かしが埋め込まれている可能性がある画像データI”が入力される。複写機1204においては、画像入力部701は画像を読み取って対応する画像データを生成する画像スキャナと考えることができる。
【0065】
画像入力部701の出力は電子透かし抽出部704に入力される。入力された画像データI”はいったんメモリに格納される。尚、画像入力部701によって入力される画像データI”は、前述した電子透かしの埋め込み処理部によって電子透かしが埋め込まれた画像データI’に限定されることはない。もちろん、電子透かしが埋め込まれた画像データI’である場合もあるが、画像データI’が攻撃された画像であっても良い。更に、電子透かしが埋め込まれていない画像データIであっても良い。電子透かし抽出部では、別途入力される抽出パターンを用いて、後述する電子透かしの抽出処理が行われる。
【0066】
(鍵情報入力部)
次に、鍵情報入力部702の機能について説明する。鍵情報入力部702において電子透かしを抽出するための鍵情報kが入力され、その出力は抽出パターン生成部703に入力される。ここで、入力される鍵情報kは、前述した電子透かしの埋め込み処理部における鍵情報入力部103によって入力されたものと同一のものでなければならない。異なる鍵情報が入力された場合には正しく付加情報を抽出することは出来ない。即ち、正しい鍵情報kを有する利用者だけが正しい付加情報Inf’を抽出することが可能である。
【0067】
具体的には、鍵情報入力部702は、操作部1012などから入力された鍵情報をたとえばハードディスクやROMあるいはRAM等にを格納し、格納された鍵情報を読み出して抽出パターン生成部703に渡す。また、複写機1204がコンピュータ1201に接続されている場合には、コンピュータ1201から通信により獲得することもできる。これは、プリンタドライバによる電子透かし埋め込み処理により埋め込まれた電子透かしを画像から抽出するためには、鍵情報kは、電子透かし生成部104が用いた鍵情報kと同一の鍵情報kを抽出時にも用いる必要があるためである。
【0068】
(抽出パターン生成部)
次に、抽出パターン生成部703の機能について説明する。抽出パターン生成部703には鍵情報入力部702から鍵情報kが入力され(あるいは記憶された鍵情報を読み)、入力された鍵情報kに基づいて抽出パターンが生成され、その抽出パターンが出力され、メモリに記憶される。
【0069】
抽出パターン生成部703の処理の機能の詳細について図8を用いて説明する。図8に示すように、抽出パターン生成部703は基本行列生成部801、擬似乱数発生部802、及び擬似乱数割り当て部803から構成される。
【0070】
ここで、基本行列生成部801は前述した電子透かし生成部104の基本行列生成部201と、更に擬似乱数発生部802は擬似乱数発生部202と同じ動作であるので詳細な説明は省略する。但し、基本行列生成部801において生成される基本行列と基本行列生成部201において生成される基本行列は同一のものでなければ正しく付加情報を抽出することはできない。
【0071】
次に、擬似乱数割り当て部803の機能の詳細について説明する。擬似乱数割り当て部803には基本行列mと擬似乱数列rが入力され、擬似乱数列rの各要素が基本行列mの所定の要素に割り当てられる。ここで、前述した電子透かし生成部104(図2)で用いられた擬似乱数割り当て部203との違いは、擬似乱数割り当て部203においては出力される電子透かしwは一つであったのに対して、擬似乱数割り当て部803からは埋め込み情報量の数(本発明ではn個)だけ抽出パターン出力されることである。
【0072】
具体的には、少なくとも埋め込まれるビット数までカウントできるカウンタ変数をメモリに用意する。また、基本行列mに相当する大きさの行列を、抽出しようとする電子透かしとして埋め込まれている付加情報infの桁(ビット)の数だけ格納できる領域をメモリに確保する。なお、基本行列mの要素をm(i,j)、生成される抽出パターンの要素をw(k,i,j)で表し、カウンタ変数をc1,c2で表す。i,jは行列の各要素の位置を表し、kは生成される抽出パターンの番号(1≦k≦n)を表す。また、擬似乱数列rの第i番目の要素をr(i)と表す。これらはすべてメモリ上に割り当てられた対応するロケーションを表す。そのロケーションに格納された内容はvを名前の前に付して表す。たとえばカウンタ変数c1の値はvc1である。
【0073】
(1)まずカウンタ変数c1の値vc1として1をセットする。
(2)カウンタ変数c2の値vc2として1をセットする。
(3)そのカウンタ変数c1の値vc1により基本行列mを走査する。基本行列mにおいて要素の値がカウンタ変数c1の値と等しくなるもの、すなわちvm(i,j)=vc1なる要素m(i,j)が見つかれば、その要素m(i,j)に対応する第vc1番目の配列wにおける位置(i,j)の要素、すなわちw(vc1,i,j)に、擬似乱数列rの第vc2番目の要素r(vc2)の値vr(vc2)を格納する。
(4)そして、カウンタ変数c2の値vc2に1を加算し、(3)からの処理、すなわち基本行列mの値vc1による走査を繰返し行う。この場合、走査は続きから行われる。この手順を基本行列m全体について走査が終了するまで繰り返す。
(5)値vc1について基本行列m全体の走査が終了したなら、カウンタ変数c1の値vc1に1を加算し、(2)からの処理を繰返し行う。これを、カウンタ変数c1の値が1〜nについて繰り返して行う。以上の手順により、n個の抽出パターンw1〜wnが完成し、メモリ上に生成される。なおw1などと表記する場合の添付数字は、上記抽出パターンのインデックスkに相当する。
【0074】
なお、擬似乱数列を生成する際には、r(1)については、初期値として鍵情報kを用いて乱数生成の処理を実行することで生成する。r(2)以降は、乱数生成の処理を実行することで順次乱数系列を生成させる。
【0075】
<抽出パターン生成処理の例>
ここで、擬似乱数列rの各要素を基本行列mの所定の要素に割り当てる機能の詳細について例を用いて説明する。基本行列mの例として図3に示した基本行列304を用いる。基本行列304を用いた場合、4ビットの付加情報を埋め込み可能であり、擬似乱数割り当て部803からは4個の抽出パターンw1、w2、w3、w4が出力される。
【0076】
まずはじめに、基本行列304の各要素のうち、値として“1”を持つ要素をラスタースキャン順にスキャンして、順に擬似乱数列rの各要素を割り当てる。基本行列304の各要素のうち、値として“1”を持つ要素全てに擬似乱数列rの各要素の割り当てが終了したら、擬似乱数列rを割り当てた行列を抽出パターンw1として生成する。図9に抽出パターンの例を示す。抽出パターンw1(901)は擬似乱数列rとしてr={0.7,−0.6、−0.9,0.8}という実数列を用いた場合の例である。以上の処理を、基本行列304の各要素のうち、値として“2”、“3”、“4”を持つ要素全てに対して実行し、夫々抽出パターンw2(902)、抽出パターンw3(903)、抽出パターンw4(904)として生成する。こうして生成された抽出パターンw1、w2、w3、w4を合わせると、各要素の値は、電子透かしの埋め込み処理部で用いられた電子透かしwの対応する要素の絶対値に等しくなる。生成された抽出パターンw1、w2、w3、w4は抽出パターン生成部703から出力され、電子透かし抽出部704に入力される。
【0077】
(電子透かし抽出部)
次に、電子透かし抽出部704の機能について説明する。電子透かし抽出部704では、画像データI’及び抽出パターンw1、w2、…、wnが入力され、抽出パターンw1、w2、…、wnを用いて画像データI’から付加情報Inf’を抽出し、抽出された付加情報Inf’を出力する。ここで、望ましくは抽出された付加情報Inf’は埋め込んだ付加情報Infに等しい。しかしながら、電子透かしを埋め込んだ画像データI’が種々の攻撃を受けている場合には必ずしも付加情報Infと付加情報Inf’は一致しない。
【0078】
電子透かし抽出部704の機能の詳細について説明する。電子透かし抽出部704では、入力された画像データI’から生成された集積画像cと抽出パターンw1、w2、…、wnとの相互相関が夫々計算される。ここで、集積画像cとは、入力された画像データI”をマクロブロックの大きさ(基本行列の大きさ)の互いに重ならないブロックに分割し、分割された夫々のブロックの要素(画素)の値の平均値を算出し、その平均値を要素とする行列(画像データ)である。
【0079】
集積画像cについて図10に示した具体例を用いて説明する。図10は4×4画素の抽出パターンと24×24画素の画像I”が入力された場合の集積画像cの例である。図10において、画像データ1001は、24×24画素の画像データI”が4×4画素の互いに重ならないブロックに分割された例を示す。図10に示す例の場合、36個のブロックに分割されている。この36個のブロックのにおいて、対応する位置にある要素の値の平均値を求め、その平均値を要素とする行列が集積画像c1002である。すなわち、メモリに格納された画像データIをマクロブロックに対応するn個のブロックに分割し、そのk番目のブロックIB(k)の位置(i,j)の要素をIB(k,i,j)とすれば、集積画像の各要素は、c(i,j)=ΣIB(k,i,j)/nで与えられる。ここでΣはkについて1〜nまでの総和を意味する。
【0080】
こうして生成された集積画像cと抽出パターンw1、w2、…、wnとの相互相関が各々計算される。相関係数を計算する具体的な方法について、集積画像cと抽出パターンwnの相関係数を計算する場合の例を用いて説明する。
相関係数は、集積画像cと抽出パターンwnの類似度を測定する統計量であり、
ρn=(c’T・w’n)/|c’T|・|w’n| … (式2)
と表される。ここで、c’及びwn’はそれぞれ、集積画像cおよび抽出パターンwnの各要素から、それぞれの行列の要素の平均値を引いた値を要素とする行列である。cTは行列cの転置行列である。ρnは−1から+1の値の範囲の値をとる。集積画像cと抽出パターンwnが正の相関が強い時にρnは+1に近づき、一方で集積画像cと抽出パターンwnが負の相関が強い時にρnは−1に近づく。ここで「正の相関が強い」とは、「集積画像cが大きいほど抽出パターンwnが大きくなる」という関係のことであり、「負の相関が強い」とは「集積画像cが大きいほど抽出パターンwnが小さくなる」という関係のことである。また、集積画像cと抽出パターンwnが無相関の時には、ρnは0となる。
【0081】
こうして算出した相互相関の結果によって、入力された画像データI”に付加情報Inf’が電子透かしとして埋め込まれているか否か、更に、埋め込まれている場合には付加情報Inf’を構成する各ビットが1であるか0であるかを判定する。
【0082】
集積画像cと抽出パターンw1、w2、…、wnとの相関係数ρ1、ρ2、…、ρnを夫々算出し、算出された相互相関の結果が0に近い場合には「付加情報が埋め込まれていない」、相互相関の結果が0から離れた正数の場合には「ビット1」、相互相関の結果が0から離れた負数の場合には「ビット0」であると夫々判断する。0に近いか否かは、あらかじめ定めたしきい値を基準として判定される。すなわち、第i番目の抽出パターンwiについての相関係数ρiとしきい値th1およびth2とを比較し、以下の通り判定される。ここでth1は一定値以下の負数であるか否かを判定するためのしきい値であり、th2は一定値以上の正数であるか否かを判定するためのしきい値である。
(1)th1<ρi<th2の場合、抽出しようとする付加情報の第iビットは埋め込まれていない。
(2)th1≧ρiの場合、抽出しようとする付加情報の第iビットは0である。
(3)th2≦ρiの場合、抽出しようとする付加情報の第iビットは1である。
【0083】
なお、付加情報が埋め込まれていないと判定された桁(ビット)と、埋め込まれていると判定されたビットとが混在している場合には、たとえばしきい値th1を一定値増加させ、th2を一定し減少させてから、再度判定を行うなどしてもよい。その結果全てのビットが埋め込まれていると判定されたなら、そのビット列を付加情報の値と決定し、埋め込まれていないと判定されるビットが残るのであれば、付加情報は埋め込まれていないものと判定してもよい。
【0084】
以上説明した相互相関を求めることは、集積画像cと抽出パターンw1、w2、…、wnの夫々が、どれくらい類似しているかを評価することに等しい。即ち、前述した電子透かしの埋め込み処理部によって、画像データI”(集積画像c)の中に抽出パターンw1、w2、…、wnが埋め込まれている場合には、これらは比較的類似しており、この類似の度合いが相互相関値として算出される。更に、ビット”1”が埋め込まれている場合(抽出パターンw1、w2、…、wnが加えられている場合)には相互相関値は正となり、一方で、ビット”0”が埋め込まれている場合(抽出パターンw1、w2、…、wnが減じられている場合)には相互相関値は負になる。
【0085】
具体例として、図11に前述した4ビットの付加情報“1001”が埋め込まれた画像データI”(集積画像c)からw1、w2、w3、w4を用いて電子透かしを抽出する例を示す。
【0086】
まず、集積画像cと4つの抽出パターンw1、w2,w3、w4(4ビットの付加情報Inf’に対応)との相互相関値が夫々算出される。入力された画像データI’(集積画像c)に付加情報Inf’が埋め込まれている場合には、相関係数は夫々”1、−1、−1,1”と算出され、このことから付加情報Inf’は“1001”と判定でき、最終的に4ビットの付加情報Inf’を抽出することが可能である。
【0087】
こうして抽出されたnビットから構成される付加情報Inf’は電子透かし出力部705を通じて出力される。この際に、前述した電子透かしの埋め込み処理部において、付加情報Infが埋め込まれる時に、誤り訂正符号化処理や暗号化処理が施されている場合には、夫々誤り訂正復号処理や暗号復号処理が実行される。得られた情報が最終的に抽出されたバイナリデータ列(付加情報Inf’)として出力される。
【0088】
この手法では、印刷物に対して、800ピクセル×600ピクセル程度の多値画像に128ビット程度のデータを埋め込むことが知られており、他にもさまざまな既知の埋め込み手法が存在する。800×600程度のサイズは、画素密度を600dpiとすれば、実寸にして35ミリ×25ミリ程度のサイズとなる。埋め込めるデータ量は単純にそのサイズに比例するものとすれば、A4サイズ(210ミリ×290ミリ)の画像であれば、限られた長さの文字列オブジェクトを定義したPDLコードを埋め込むためには十分な容量がある。なお、この容量は基本行列によって決定されるため、使用される基本行列が決定された時点で予め知ることができる。そのため、付加情報のデータ量とその容量とを埋め込み処理の前に比較することができる。
【0089】
<本実施形態におけるプリンタドライバにおける出力処理>
次に、添付の図面を参照して本発明に係る一実施形態を説明する。
【0090】
図13は本実施形態におけるコンピュータシステムにより提供される、ページ記述言語が埋め込まれた画像データを生成するためのシーケンスを示すフローチャートである。この処理プログラムはコンピュータシステム1201上で提供され、一般的にはドライバソフトウェアと呼ばれる、印刷装置専用の出力ソフトウェアで実現される。ドライバソフトウェアは各種のアプリケーションへ印刷機能を提供しており、さまざまな設定が可能であり印刷装置特有のページ記述言語を生成し、印刷装置へ出力することで印刷を実現している。
【0091】
次に図13を参照してドライバソフトウエアがプリンタ1203に送信する印刷データを生成する処理手順を述べる。
【0092】
ページ記述言語が埋め込まれた画像データを生成するために、まずユーザが印刷設定を行うことで画像劣化を防止したい箇所を指定させる(1301)。
【0093】
この指定は、たとえば画像のプレビュー表示をユーザが見て、そのプレビュー画面上において、ポインティングデバイス等により所望の箇所を指摘することで行われる。プレビュー表示機能は文書処理などのアプリケーションプログラムには備えられているが、その画像上で位置を指定するための機能は通常有していない。そこで、アプリケーションプログラムに、プレビュー画面上で位置を指定させる機能と、指定された位置をプリンタドライバに渡すための機能を設けることでこれを実現できる。あるいは、プリンタドライバは通常種々の設定をユーザに行わせるためのユーザインターフェースを備えているので、その機能のひとつとしてプレビュー表示機能を設け、そのプレビュー画面上で位置を指定させることもできる。この場合、アプリケーションは無関係なので劣化防止位置を指定できるか否かはアプリケーションに依存しない。劣化防止箇所が指定された場合には、指定された旨のフラグおよび指定された箇所(位置あるいは範囲)を記憶する。
【0094】
印刷開始等の指示が入力された場合、劣化防止箇所が指定されているか否か、ステップ1301で記憶したフラグを基準として判定する(1302)。
【0095】
ユーザが劣化防止範囲を指定していない場合は、一般的な印刷と同様に画像データを生成し(1307)、印刷装置へデータを出力する(1306)。
【0096】
一方、劣化防止箇所が指定されている場合には、次に、ドライバソフトウェアにおいて、劣化防止箇所として指定された箇所について、ページ記述言語(PDL:Page Description Language)を用いたPDLコードデータを生成する(1303)。この際、指定された箇所を含むオブジェクトがPDL化される。たとえば、指定された箇所に文字オブジェクトが含まれていれば、その文字がPDLデータに変換される。もちろん、そのオブジェクトが配置される位置等もPDLデータには含まれる。
【0097】
なお、この段階でPDL化するオブジェクトの種類に制限を設けることもできる。たとえば、指定された箇所に含まれる文字オブジェクトのみをPDLコードへの変換の対象とすることもステップ1303において実現できる。もちろん、グラフィクスオブジェクトのみをPDL化したり、あるいは文字及びグラフィクスをPDL化の対象とすることもできる。ビットマップデータをPDL化の対象とすることも可能ではあるが、その場合には変換後のデータ量を減少させるために、圧縮処理を施してから、圧縮されたデータをPDL化の対象とする等の方法を講じることが望ましい。
【0098】
そして、生成されたデータが、ページ全体を印刷した際にその画像中に埋め込むことができるサイズかどうかを判定する(1304)。この判定は前述したように、基本行列としてどのような行列が用いられるかによって決定される埋め込み可能なデータ容量を基準として行える。
【0099】
ステップ1304における判定の結果、生成されたページ記述言語のデータサイズが埋め込むことができない場合は、印刷不可能の旨をユーザへ通知し、再度ユーザに印刷の設定を促す。
【0100】
一方、判定の結果、ページ記述言語のデータサイズが埋め込むことができる場合は、ページ記述言語を埋め込んだ、ページ記述言語で表現した画像データを生成する(1305)。そのためにまず印刷対象の画像全体をビットマップデータとして展開する。そして、前述した付加情報infとしてステップ1303で生成されたPDLコードデータを、画像データIとして展開されたビットマップデータを、図1の埋め込み情報入力部102および画像入力部101それぞれに渡すことで、図1の埋め込み処理部によりPDLコードデータの画像データへの埋め込みが実行される。図1の各ブロックは、本実施例においてはソフトウエアモジュールとして実現されているので、埋め込み情報入力部102および画像入力部101へのデータの引き渡しは、たとえば各データのアドレスの引き渡し等により実現できる。
【0101】
そして印刷装置へ生成した画像データを出力する(1306)。画像データの出力に際しては、電子透かしが埋め込まれた画像データ全体についてプリンタ1203が解釈実行可能なPDLデータに変換されてからプリンタ1203に送信される。その際、画像データに埋め込まれたページ記述言語は画像の中のイメージの一部となっているため、プリンタ1203は電子透かしが埋め込まれていない通常の画像データとして印刷を行うことが可能である。
【0102】
<本実施形態における複写機における複写処理>
図14は本実施形態における印刷装置1203あるいは複写機1204により提供される、印刷装置1203から出力された画像を、複写機1204の画像読み取り部から読み取り、読み取られた画像からページ記述言語を抽出し、抽出されたページ記述言語を解釈し画像を生成し、読み取られた画像データと編集(合成)して出力を行う処理シーケンスを示すフローチャートである。
【0103】
まず、画像を複写機1204に装着されている画像読み取り部から読み取る(1401)。複写機1204はページ記述言語のコードデータが電子透かしとして含まれるかどうかを読み取った画像から判断を行い(1402)、ページ記述言語が含まれない場合は何もしない。ページ記述言語のコードデータが電子透かしとして含まれているか否かの判定及び抽出は、上述した「電子透かし抽出処理部」について説明した通りの手順で行われる。すなわち、読み込んだ画像データを図7の画像入力部701に画像データI”として引き渡すことで、電子透かし抽出処理部により電子透かしの判定及び抽出が行われる。
【0104】
ページ記述言語が含まれておりそれが抽出された場合は、ページ記述言語を解釈して印刷用データを生成する(1403)。ただし、解釈できないコードが含まれている場合(たとえば実行中に文法エラーが生じる場合など)には、抽出されたコードに誤りがあるか、あるいは偶然にも本発明とは無関係な目的のために挿入された電子透かしが抽出された場合であると考えられるので、印刷用データの生成は行わない。
【0105】
その後、画像読み取り部からステップ1401で読み取った画像から印刷用データ(ビットマップデータ)を生成し(1404)、埋め込まれたページ記述言語から生成した印刷用データがあれば、それを読み取った画像から生成した印刷用データへ上書きすることで、最終的な印刷用データを作成する(1405)。もちろん、上書きはページ記述言語で定義されたオブジェクトの位置にされる。そして印刷用データを用いて画像形成を行う(1406)。
【0106】
以上の手順により、電子透かしとして埋め込まれたPDLデータを元に画像データを生成し、それを電子透かしが埋め込まれた画像データに上書き合成することで、指定された部分あるいはオブジェクトについては、複写による画質の劣化を防止することができる。
【0107】
[第1実施形態の変形例]
なお、図13の手順は、印刷装置において行うこともできる。その場合には、印刷装置はコンピュータからPDLデータで記述されたコードである印刷データを受信するとともに、出力画像に埋め込まれるコードがそのPDLのコードのうちどの部分であるかの指定も受信する。印刷装置は、受信した印刷データをプリントエンジンで出力可能な形式の2値あるいは多値のドットデータに変換し、変換されたドットデータに、指定されたPDLのコード(2進コード)を、上述した電子透かしの方法を用いて埋め込む。
【0108】
このほか、複製禁止の旨の文字列に相当するPDLコードを電子透かしとして文書に埋め込み、複製時にそれを文書に上書きして複製物であることを明示することもできる。
【0109】
また、ファクシミリ送信に際しても本発明のPDLコードの埋め込みを行うことができる。ファクシミリ受信した場合には、一端ファクシミリデータをメモリ上で復号し、そこから上述した電子透かしの判定及び抽出を行う。そして、コードが抽出されたなら、そのコードをPDLとして解釈し、生成された画像を複合されたファクシミリ画像に合成して出力する。
【0110】
ファクシミリ画像は一般に複写された文書に比べて画像品質の劣化の程度が著しいいため、一層本発明の効果が発揮される。そして、特筆すべきは、このようにしてPDLが埋め込まれたデータであっても画像としては通常の画像と変わりなく処理できるために、特に本発明にかかる機能を備えたファクシミリ装置を送受信の相手としていなくとも、通常のファクシミリ通信と変わるところなく通信を行うことができる。
【0111】
また、図14のステップ1403においてPDLデータから画像データを生成する際に、文字やグラフィクスオブジェクトについては、指定された線の幅よりも若干太くした線の画像データを生成することで、上書き位置の多少の位置ずれや、元の画像における境界線の劣化等をより改善する効果を得ることができる。
【0112】
[第2実施形態]
図15は本実施形態における印刷装置により提供される、印刷装置から出力された画像を前記印刷装置の画像読み取り部から読み取り、読み取られた画像からページ記述言語を抽出し、抽出されたページ記述言語を解釈し画像を生成し、読み取られた画像データと編集し出力を行うシーケンスを示すフローチャートである。
【0113】
この手順も図14と同様複写機により実行されるプログラムである。
【0114】
まず、ページ記述言語が埋め込まれた画像を印刷装置1203あるいは複写機1204に装着されている画像読み取り部から読み取る(1501)。印刷装置はページ記述言語が含まれるかどうかを読み取った画像から判断を行い(1502)、ページ記述言語が含まれない場合は何もしない。ページ記述言語が含まれた場合は、ページ記述言語を解釈し印刷用データを生成する(1503)。印刷装置1203あるいは1204が複数のプロセスの並行処理が可能な装置である場合、ステップ1502の処理と並行して、画像読み取り部から1501で読み取った画像から印刷用データを生成し(1504)、埋め込まれたページ記述言語から生成した印刷用データがあれば、それを読み取った画像から生成した印刷用データへ上書きすることで、最終的な印刷用データを作成する(1505)。そして印刷用データを用いて出力を行う(1506)。
【0115】
以上のように、本実施形態においても第1実施形態と同様に、コンピュータシステムから印刷装置へ出力を行う際に、画像劣化を防ぐ必要のある箇所をあらかじめ指定して印刷を行わせることを可能とし、指定された箇所の情報を画像へ埋め込むことが可能な大きさで表現し、印刷物を再度印刷装置の画像読み取り部より読み取り印刷を行う場合に、指定された箇所の画像の劣化を防ぎ、しかも大規模なシステムを必要としない画像処理システムを提供できるる。
【0116】
くわえて、本実施形態では、処理の一部を並列実行するために、印刷出力が開始されるまでの時間が短縮される。
【0117】
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
【0118】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
【0119】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0120】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0121】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0122】
【発明の効果】
以上のように、本発明によれば、コンピュータシステムから印刷装置へ出力を行う際に、画像劣化を防ぐ必要のある箇所をあらかじめ指定し、指定された箇所の画像をコード化して出力画像に埋め込むことが可能となり、印刷物を画像読み取り部より読み取り印刷を行うなどして複写する場合に発生する画像劣化を、指定された箇所については防止できる。
【図面の簡単な説明】
【図1】本発明における電子透かしの埋め込み処理の一例を説明するブロック図
【図2】本発明における電子透かし生成部の一例を説明するブロック図
【図3】本発明における基本行列の一例を示す図
【図4】本発明における電子透かしの一例を示す図
【図5】本発明における電子透かし埋め込み演算の一例を示す図
【図6】本発明におけるマクロブロックの一例を示す図
【図7】本発明における電子透かしの抽出処理の一例を説明するブロック図
【図8】本発明における抽出パターン生成部の一例を示す図
【図9】本発明における抽出パターンの一例を示す図
【図10】本発明における集積画像を用いた電子透かしの抽出の一例を説明する図
【図11】本発明における集積画像を用いた電子透かしの抽出演算の一例を説明する図
【図12】本発明における実施形態の一例を示すブロック図
【図13】本発明における実施形態の一例を示すフローチャート
【図14】本発明における実施形態の一例を示すフローチャート
【図15】本発明における実施形態の一例を示すフローチャート
【図16】本発明におけるシステム構成を示すブロック図
【符号の説明】
1201 ホストコンピュータ
1202 ネットワーク
1203 画像読み取り部を有する印刷装置
1204 画像読み取り部を有する印刷装置
Claims (10)
- 出力対象画像のドットデータを生成する画像データ生成手段と、
前記ドットデータに、画像データの少なくとも一部に対応するコードデータを埋め込むコード埋め込み手段と、
前記コード埋め込み手段により埋め込まれたドットデータを出力手段により画像として出力させる手段と
を備えることを特徴とする画像処理装置。 - 前記コード埋め込み手段は、前記出力対象画像のうち、指定されたオブジェクトを記述するページ記述言語で記述されたコードデータを生成し、そのコードデータを前記ドットデータに埋め込むことを特徴とする請求項1に記載の画像処理装置。
- 入力画像データから、該画像データに埋め込まれたコードデータの抽出を試みるコード抽出手段と、
前記抽出手段によりコードデータが抽出された場合、抽出されたコードデータに基づいて画像データを生成し、該画像データと、前記入力画像データとを合成する合成手段と
を備えることを特徴とする画像処理装置。 - 前記合成手段は、前記コードデータをページ記述言語として解釈して画像データを生成し、該画像データに対応する画像が、前記入力画像データに対応する画像上で前記コードデータにより指定された位置に配置されるように、前記コードデータから生成された画像データと前記入力画像データとを合成することを特徴とする請求項3に記載の画像処理装置。
- 請求項3または4に記載の画像処理装置と、
前記画像処理装置により合成された画像データを画像として出力するための画像形成手段と
を備えることを特徴とする画像形成装置。 - 画像を画像データとして読み取る読み取り手段を更に備え、前記読み取り手段により読み取られた画像データを前記画像処理装置の入力画像データとすることを特徴とする請求項5に記載の画像形成装置。
- 出力対象画像のドットデータを生成する画像データ生成工程と、
前記ドットデータに、画像データの少なくとも一部に対応するコードデータを埋め込むコード埋め込み工程と、
前記コード埋め込み工程により埋め込まれたドットデータを出力手段により画像として出力させる工程と
を備えることを特徴とする画像処理方法。 - 入力画像データから、該画像データに埋め込まれたコードデータの抽出を試みるコード抽出工程と、
前記抽出工程によりコードデータが抽出された場合、抽出されたコードデータに基づいて画像データを生成し、該画像データと、前記入力画像データとを合成する合成工程と
を備えることを特徴とする画像処理方法。 - コンピュータにより実行することで、請求項1乃至6のいずれか1項に記載の画像処理装置を実現させるためのコンピュータプログラム。
- 請求項9に記載のプログラムを記録したことを特徴とするコンピュータ可読の記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003183218A JP2005020436A (ja) | 2003-06-26 | 2003-06-26 | 画像処理装置及び画像形成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003183218A JP2005020436A (ja) | 2003-06-26 | 2003-06-26 | 画像処理装置及び画像形成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005020436A true JP2005020436A (ja) | 2005-01-20 |
Family
ID=34183386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003183218A Withdrawn JP2005020436A (ja) | 2003-06-26 | 2003-06-26 | 画像処理装置及び画像形成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005020436A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006345017A (ja) * | 2005-06-07 | 2006-12-21 | Ricoh Co Ltd | 画像処理方法および画像処理装置および画像処理プログラムおよび記録媒体 |
WO2007062554A1 (fr) | 2005-12-01 | 2007-06-07 | Peking University Founder Group Co. Ltd | Procede et dispositif d'incorporation de filigrane numerique dans un document textuel et de detection dudit filigrane numerique |
JP2007325195A (ja) * | 2006-06-05 | 2007-12-13 | Fuji Xerox Co Ltd | 画像形成装置および複製方法 |
-
2003
- 2003-06-26 JP JP2003183218A patent/JP2005020436A/ja not_active Withdrawn
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006345017A (ja) * | 2005-06-07 | 2006-12-21 | Ricoh Co Ltd | 画像処理方法および画像処理装置および画像処理プログラムおよび記録媒体 |
US7660020B2 (en) | 2005-06-07 | 2010-02-09 | Ricoh Company, Ltd. | Method and apparatus for controlling image processing for extraction assured embedding, and recording medium storing program product |
JP4532349B2 (ja) * | 2005-06-07 | 2010-08-25 | 株式会社リコー | 画像処理方法および画像処理装置および画像処理プログラムおよび記録媒体 |
WO2007062554A1 (fr) | 2005-12-01 | 2007-06-07 | Peking University Founder Group Co. Ltd | Procede et dispositif d'incorporation de filigrane numerique dans un document textuel et de detection dudit filigrane numerique |
EP1956823A1 (en) * | 2005-12-01 | 2008-08-13 | Beijing Founder Electronics Co., Ltd. | A method and device for embedding digital watermark into a text document and detecting it |
EP1956823A4 (en) * | 2005-12-01 | 2008-11-12 | Beijing Founder Electronics Co | METHOD AND DEVICE FOR INCORPORATING DIGITAL FILIGRANE IN A TEXTUAL DOCUMENT AND DETECTION OF THE DIGITAL FILIGRANE |
US8107129B2 (en) | 2005-12-01 | 2012-01-31 | Peking University Founder Group Co., Ltd. | Methods and apparatus for embedding and detecting digital watermarks in a text document |
JP2007325195A (ja) * | 2006-06-05 | 2007-12-13 | Fuji Xerox Co Ltd | 画像形成装置および複製方法 |
JP4692398B2 (ja) * | 2006-06-05 | 2011-06-01 | 富士ゼロックス株式会社 | 画像形成装置および複製方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7536026B2 (en) | Image processing apparatus and method | |
US7187781B2 (en) | Information processing device and method for processing picture data and digital watermark information | |
JP4136731B2 (ja) | 情報処理方法及び装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体 | |
US20050025333A1 (en) | Method of watermarking for binary images | |
JP2004320448A (ja) | 画像処理装置、画像処理システム、およびコンピュータが実行するためのプログラム | |
JP2009017129A (ja) | 画像処理装置、画像処理方法、そのプログラム及び記憶媒体 | |
US8081793B2 (en) | Electronic watermarking method and apparatus for color image data | |
US8064103B2 (en) | Information processing apparatus and method | |
JP2003174556A (ja) | 画像処理装置及び画像処理方法 | |
JP5014062B2 (ja) | 画像処理装置及び画像処理の制御方法及びプログラム及び記憶媒体 | |
US8411313B2 (en) | Image forming apparatus and image reading method for reading an untargeted page of an original | |
US8054509B2 (en) | Image processing apparatus, image processing method, and image processing program | |
US7911649B2 (en) | Image outputting apparatus and control method thereof with output of color copy despite setting for black and white copy | |
JP4208901B2 (ja) | 情報処理装置、画像処理装置、それらの装置の制御方法、プログラム、及びコンピュータ可読の記憶媒体 | |
JP2008048367A (ja) | 許可媒体、画像形成装置、画像形成システム及びプログラム | |
JP2005020436A (ja) | 画像処理装置及び画像形成装置 | |
US8654404B2 (en) | Image processing apparatus, image processing method and memory medium | |
JP2007043656A (ja) | 濃度決定方法及び画像形成装置及び画像処理システム | |
JP2007312049A (ja) | 情報埋込処理システム、付加情報埋込装置、付加情報復元装置 | |
JP2007166510A (ja) | 画像処理装置、画像処理装置の制御方法、プログラム、及び記憶媒体 | |
JP2006270433A (ja) | 画像処理方法 | |
JP3586147B2 (ja) | 画像処理装置、方法およびその処理を実行するプログラムを記憶する記憶媒体 | |
JP2002064700A (ja) | 電子透かし合成方法、電子透かし検出方法、およびそれらの装置、ならびに印刷物 | |
JP2010171598A (ja) | 画像処理装置 | |
JP2007235392A (ja) | 画像処理装置、画像処理方法、プログラム、及び媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060905 |