JP2010262117A - 情報処理装置、情報処理方法、プログラム及び記憶媒体 - Google Patents
情報処理装置、情報処理方法、プログラム及び記憶媒体 Download PDFInfo
- Publication number
- JP2010262117A JP2010262117A JP2009112293A JP2009112293A JP2010262117A JP 2010262117 A JP2010262117 A JP 2010262117A JP 2009112293 A JP2009112293 A JP 2009112293A JP 2009112293 A JP2009112293 A JP 2009112293A JP 2010262117 A JP2010262117 A JP 2010262117A
- Authority
- JP
- Japan
- Prior art keywords
- information
- character
- embedded
- value
- document
- 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
【課題】文書に埋め込み可能な情報量を犠牲にすることなく、抽出した情報における異常値を検出できる方法で、電子透かしを埋め込む。
【解決手段】入力文書を取得する。埋込数値の集合を示す埋込情報を取得する。数値列を同期情報として取得する。同期情報と埋込情報とを組み合わせて、各々の隣接する文字間の間隔の差分値を示す差分情報を生成する。入力文書中の隣接する文字間の間隔の差分値が、差分情報の対応する値となるように、隣接する文字間を構成する文字のうち後端の文字を移動して、埋込文書を生成する。埋込文書を出力する。
【選択図】図10
【解決手段】入力文書を取得する。埋込数値の集合を示す埋込情報を取得する。数値列を同期情報として取得する。同期情報と埋込情報とを組み合わせて、各々の隣接する文字間の間隔の差分値を示す差分情報を生成する。入力文書中の隣接する文字間の間隔の差分値が、差分情報の対応する値となるように、隣接する文字間を構成する文字のうち後端の文字を移動して、埋込文書を生成する。埋込文書を出力する。
【選択図】図10
Description
本発明は、電子透かし埋め込み技術及び抽出技術に関する。
文書に追跡情報や複写制御等の情報を持たせるため、文書に電子透かしによって透かし情報を埋め込む手法が提案されている。その一方法として、文字間隔を変化させる方法がある。文字間隔を利用して埋め込んだ電子透かしを読み取る場合には、文字の外接矩形を検出し、外接矩形の間隔を文字間隔とする。しかし、コピー等によって文書に対してノイズが加わる等の理由で、1文字毎に外接矩形を切り出せず、データを正しく抽出できないことがある。特許文献1ではその対策として、同期ビットとデータとを組み合わせた透かし情報を埋め込むことにより、データの開始位置とデータの終了位置を検出できるようにしている。データの開始位置と終了位置との間のデータ長が指定値とは異なる場合、その区間のデータが異常値を持つことを知ることができる。
従来技術のように、文字間の空白長を操作し、同期ビットを埋め込んで、データの開始位置と終了位置とを検出して異常値を検出できるようにした方法では、データを埋め込める場所が減少し、埋め込める情報量が少なくなるという問題があった。
本発明は、文書に埋め込み可能な情報量を犠牲にすることなく、抽出した情報における異常値を検出できる方法で、電子透かしを埋め込む方法を提供する。
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。すなわち、
文書中の文字間隔を変化させて埋込情報を埋め込む情報処理装置であって、
入力文書を取得する手段と、
埋込数値の集合を示す埋込情報を取得する手段と、
数値列を同期情報として取得する同期情報取得手段と、
前記同期情報と前記埋込情報とを組み合わせて、各々の隣接する文字間の間隔の差分値を示す差分情報を生成する計算手段と、
前記入力文書中の隣接する文字間の間隔の差分値が、前記差分情報の対応する値となるように、前記隣接する文字間を構成する文字のうち後端の文字を移動して、埋込文書を生成する移動手段と、
前記埋込文書を出力する出力手段とを備えることを特徴とする。
文書中の文字間隔を変化させて埋込情報を埋め込む情報処理装置であって、
入力文書を取得する手段と、
埋込数値の集合を示す埋込情報を取得する手段と、
数値列を同期情報として取得する同期情報取得手段と、
前記同期情報と前記埋込情報とを組み合わせて、各々の隣接する文字間の間隔の差分値を示す差分情報を生成する計算手段と、
前記入力文書中の隣接する文字間の間隔の差分値が、前記差分情報の対応する値となるように、前記隣接する文字間を構成する文字のうち後端の文字を移動して、埋込文書を生成する移動手段と、
前記埋込文書を出力する出力手段とを備えることを特徴とする。
本発明によれば、文書に埋め込み可能な情報量を犠牲にすることなく、抽出した情報における異常値を検出できる方法で、電子透かしを埋め込むことができる。
以下、本発明の実施例を図面に基づいて説明する。ただし、発明の範囲は以下の実施例に限定されるものではない。
<第1の実施形態>
以下、図面を参照して、本発明の第1の実施形態に係る透かし情報抽出・埋め込み装置について説明する。
[透かし情報埋め込み方法]
本実施形態では、同期ビットに相当する役割を果たすものとして同期波形を導入し、この同期波形を文字間隔差分値の絶対値(間隔差分絶対値と呼ぶ)を操作することで文書中に埋め込むことにする。同期波形については後述する。同期波形を構成するビット数はデータブロック長に依存する。データブロック長は透かし情報の検出率の目標値により定まるパラメーターであり、誤り訂正符号を透かし情報に含めるのなら、通常は誤り訂正符号の符号長となる。埋め込みたい透かし情報をデータブロック単位に分割する例を図4に示す。透かし情報は、データブロック(部分情報)を複数個有する。同期波形を導入することにより、抽出した透かし情報における異常値を検出することができる。しかしながら本実施形態ではそれにとどまらず、同期波形に従ってデータブロックを正しい長さに修復できる。
以下、図面を参照して、本発明の第1の実施形態に係る透かし情報抽出・埋め込み装置について説明する。
[透かし情報埋め込み方法]
本実施形態では、同期ビットに相当する役割を果たすものとして同期波形を導入し、この同期波形を文字間隔差分値の絶対値(間隔差分絶対値と呼ぶ)を操作することで文書中に埋め込むことにする。同期波形については後述する。同期波形を構成するビット数はデータブロック長に依存する。データブロック長は透かし情報の検出率の目標値により定まるパラメーターであり、誤り訂正符号を透かし情報に含めるのなら、通常は誤り訂正符号の符号長となる。埋め込みたい透かし情報をデータブロック単位に分割する例を図4に示す。透かし情報は、データブロック(部分情報)を複数個有する。同期波形を導入することにより、抽出した透かし情報における異常値を検出することができる。しかしながら本実施形態ではそれにとどまらず、同期波形に従ってデータブロックを正しい長さに修復できる。
文字間隔を操作して電子透かしを埋め込む一つの方法として次の方法がある。すなわち、文書中に含まれる文字間隔を、2つの文字間隔からなる組にグループ化する。1つの組に含まれる2つの文字間隔について、1つ目の文字間隔と2つ目の文字間隔との差の正負を用いて透かし情報を埋め込む。この方法に対しても、上記の同期波形技術を導入することができる。しかしながら本実施形態では他の方法で文字間隔を操作して電子透かしを埋め込むこととする。すなわち、本実施形態ではグループ化を行わず、例えば3つの連続する文字間隔について1つ目と2つ目の文字間隔の差と、2つ目と3つ目の文字間隔の差との双方を用いてより高密度に透かし情報を埋め込む。
連続する文字間隔の差(間隔差分と呼ぶ)の正負を利用して文字間隔を埋め込む本実施形態の方法の概略についてまず述べる。図10に、本実施形態の方法に従って8文字からなる文字列に透かし情報を埋め込んだ例を示す。図10には8文字の文字矩形が示されており、それぞれの文字矩形の間隔は順に11,19,25,21,18,20,18である。連続する文字矩形の間隔の差を算出すると、順に+8,+6,−4,−3,+2,−2となる。文字矩形の間隔の差が正の時は埋め込まれている情報は「1」であり、負の時は「0」である。すなわち、この8文字からなる文字列に埋め込まれている情報は「110010」となる。透かし情報を埋め込む際は、透かし情報から間隔差分の符号を決定し、決定した符号に従って文字矩形の間隔を決定して、決定した間隔となるように文字を移動すればよい。すなわち、第1の文字間と第2の文字間とについて、第1の文字間隔と第2の文字間隔との差が決定した符号に従う第1の差分値となるように、第1の文字間隔と第2の文字間隔とを決定する。また、第2の文字間と第3の文字間とについて、第2の文字間隔と第3の文字間隔との差が決定した符号に従う第2の差分値となるように、第2の文字間隔と第3の文字間隔とを決定する。具体的な方法については後述する。もちろん間隔差分が負の時に「1」、正の時に「0」を埋め込んでもよい。間隔差分値の単位としては例えば0.1mm単位等の実際の長さに基づいた単位であればよい。間隔差分値はpixel単位であってもよいが、透かし情報埋め込み文書を印刷する場合、透かし情報埋め込み装置の出力解像度(dpi)と透かし情報抽出装置の読取解像度(dpi)とが同一である必要がある。
間隔差分を利用して透かし情報を埋め込む場合、埋め込む透かし情報の「0」「1」の出現確率に偏りがあると、適切に文字間隔を配分することができなくなる。例えば、図16のように透かし情報が全て「0」の場合、文字間隔が単調減少して不自然な文書となってしまう。そこで、透かし情報をそのまま直接上記の規則で埋め込むことはせずに、いったんランダム化処理を行って「0」と「1」の出現確率をほぼ等しくしてから埋め込むことにする。
[装置構成]
図1は、本実施形態に係る透かし情報埋め込み装置を説明するための概念図である。文書解析部102は、入力部101が取得した文書100(入力文書)の文書解析を行って文書中(入力文書中)の文字の大きさ及び位置情報を認識する。間隔差分絶対値決定部103は、同期波形に基づいて文字間隔の差分値の絶対値を決定する。ランダム化部105は、透かし情報104(埋込情報)を取得し、鍵を用いてランダム化する。符号付間隔差分値決定部106は、間隔差分絶対値決定部103が決定した間隔差分絶対値とランダム化部105がランダム化した透かし情報とから符号付間隔差分値を決定する。文字移動部107は、符号付間隔差分値決定部106が決定した符号付間隔差分値に基づいて文字の配置を決定する。出力部108は、透かし情報埋め込み文書109を出力する。
図1は、本実施形態に係る透かし情報埋め込み装置を説明するための概念図である。文書解析部102は、入力部101が取得した文書100(入力文書)の文書解析を行って文書中(入力文書中)の文字の大きさ及び位置情報を認識する。間隔差分絶対値決定部103は、同期波形に基づいて文字間隔の差分値の絶対値を決定する。ランダム化部105は、透かし情報104(埋込情報)を取得し、鍵を用いてランダム化する。符号付間隔差分値決定部106は、間隔差分絶対値決定部103が決定した間隔差分絶対値とランダム化部105がランダム化した透かし情報とから符号付間隔差分値を決定する。文字移動部107は、符号付間隔差分値決定部106が決定した符号付間隔差分値に基づいて文字の配置を決定する。出力部108は、透かし情報埋め込み文書109を出力する。
図2は、本実施形態に係る透かし情報抽出装置を説明するための概念図である。文書解析部202は、入力部201が取得した透かし情報埋め込み文書109内の文書解析を行って文字の大きさ及び位置情報を認識する。参照間隔差分絶対値決定部203は、データブロックを識別するために使用する参照間隔差分絶対値を決定する。透かし抽出部204は、参照間隔差分絶対値決定部203が決定した参照間隔差分絶対値と文書解析部202が認識した文字間隔とを用いてランダム化透かし情報を抽出する。透かし情報復元部205は、透かし情報埋め込み装置のランダム化部105と共通の鍵を用いて、ランダム化透かし情報から透かし情報206を復元して出力する。
[透かし情報埋め込み処理]
まず、上述した構成による透かし情報埋め込み装置の動作手順について説明する。図3は本実施形態に係る透かし情報埋め込み装置の動作手順を説明するフローチャートである。
まず、上述した構成による透かし情報埋め込み装置の動作手順について説明する。図3は本実施形態に係る透かし情報埋め込み装置の動作手順を説明するフローチャートである。
[文書入力処理]
まず入力部101は、透かし情報の埋め込み対象となる文書100を取得し、文書解析部102に入力する(ステップS301)。入力部101は例えばスキャナであって、紙文書をスキャンして取得してもよい。また、入力部101は例えばDVDドライブ等の入出力装置であって、本実施形態に係る透かし情報埋め込み装置とは独立のスキャナが取得して生成したビットマップ等の画像を文書100として取得してもよい。さらに、文書100はアプリケーションプログラム固有の形式、テキスト等などをはじめとする種々の電子データが記憶媒体に格納されたものでもよいし、これらの電子データを画像処理ソフトなどによって変換した画像でもよい。
まず入力部101は、透かし情報の埋め込み対象となる文書100を取得し、文書解析部102に入力する(ステップS301)。入力部101は例えばスキャナであって、紙文書をスキャンして取得してもよい。また、入力部101は例えばDVDドライブ等の入出力装置であって、本実施形態に係る透かし情報埋め込み装置とは独立のスキャナが取得して生成したビットマップ等の画像を文書100として取得してもよい。さらに、文書100はアプリケーションプログラム固有の形式、テキスト等などをはじめとする種々の電子データが記憶媒体に格納されたものでもよいし、これらの電子データを画像処理ソフトなどによって変換した画像でもよい。
[文書解析処理]
文書解析部102は、文書100に含まれる文字の位置を検出し、文字間隔の算出を行う(ステップS302)。文字の位置検出及び間隔の算出は、文字の外接矩形を検出する等の通常の方法で行えばよい。例えば横書き文書の画像を処理する場合は、文書画像の各画素値を垂直座標軸に対して射影し、空白部分を探索して行分割を行う。その後、行単位で文書画像を水平座標軸に対して射影し、空白部分を探索して文字単位に分割して文字の外接矩形を抽出する。また、文書が電子データの場合は、電子データのフォーマットを解析して文字間隔を算出してもよい。例えば、ページ記述言語の一つであるPostscriptの場合は、[56 47 45…]のように、文字の描画位置のオフセット値が指定されており、文字間隔を算出することが可能である。
文書解析部102は、文書100に含まれる文字の位置を検出し、文字間隔の算出を行う(ステップS302)。文字の位置検出及び間隔の算出は、文字の外接矩形を検出する等の通常の方法で行えばよい。例えば横書き文書の画像を処理する場合は、文書画像の各画素値を垂直座標軸に対して射影し、空白部分を探索して行分割を行う。その後、行単位で文書画像を水平座標軸に対して射影し、空白部分を探索して文字単位に分割して文字の外接矩形を抽出する。また、文書が電子データの場合は、電子データのフォーマットを解析して文字間隔を算出してもよい。例えば、ページ記述言語の一つであるPostscriptの場合は、[56 47 45…]のように、文字の描画位置のオフセット値が指定されており、文字間隔を算出することが可能である。
[透かし情報ランダム化処理]
ランダム化部105は、透かし情報104を取得してランダム化処理を行う(ステップS303)。透かし情報104は埋込数値の集合である。ステップS303では、透かし情報をランダム化透かし情報へと変換するが、この変換方法はランダム化透かし情報から透かし情報への逆変換が可能であり、ランダム化透かし情報中で「0」と「1」との個数に偏りが生じなければ何でもよい。本実施形態では例として、排他的論理和を使用する暗号学的方法を説明する。ただし暗号学的方法を用いる必要はなく、例えばgzipなどの可逆圧縮アルゴリズムを用いても同様の効果を得ることができる。
ランダム化部105は、透かし情報104を取得してランダム化処理を行う(ステップS303)。透かし情報104は埋込数値の集合である。ステップS303では、透かし情報をランダム化透かし情報へと変換するが、この変換方法はランダム化透かし情報から透かし情報への逆変換が可能であり、ランダム化透かし情報中で「0」と「1」との個数に偏りが生じなければ何でもよい。本実施形態では例として、排他的論理和を使用する暗号学的方法を説明する。ただし暗号学的方法を用いる必要はなく、例えばgzipなどの可逆圧縮アルゴリズムを用いても同様の効果を得ることができる。
まず、あらかじめ用意した固有鍵をシードとする疑似乱数を生成し、鍵ストリームとする(ステップS303a)。次に、鍵ストリームと透かし情報104との論理演算を行う、例えば排他的論理和をとることにより、ランダム化透かし情報を生成する(ステップS303b)。図5にステップS303bで行われる処理例を示した。ここで述べたような透かし情報からランダム化透かし情報を得る方法は、平文を透かし情報、出力する暗号文をランダム化透かし情報として、AES−CTRモードなどのストリーム暗号を用いることによっても実現できる。ストリーム暗号では、暗号文のランダム性は平文のビット値分布によらず、鍵ストリームのランダム性のみに依存する。したがって、鍵ストリームが「0」と「1」とが偏り無く分布する二値データである場合、透かし情報の内容によらずに、「0」「1」の出現確率がほぼ同じとなるランダム化透かし情報が得られる。また、標準的なストリーム暗号を用いる限り、ランダム化透かし情報内で部分的に「0」又は「1」が連続してしまい、文字間隔が部分的に単調減少あるいは単調増加してしまう確率も抑えられる。
[間隔差分絶対値決定]
間隔差分絶対値決定部103は、文字間隔差分絶対値を決定する(ステップS304)。文字間隔差分絶対値により、以下で述べる同期波形を表現する。図6に詳細なフローチャートを示す。ステップS304の処理は、全て間隔差分絶対値決定部103が行う。
間隔差分絶対値決定部103は、文字間隔差分絶対値を決定する(ステップS304)。文字間隔差分絶対値により、以下で述べる同期波形を表現する。図6に詳細なフローチャートを示す。ステップS304の処理は、全て間隔差分絶対値決定部103が行う。
まず、処理対象行を選択する(ステップS304a)。ステップS302での文書解析結果に従って、文書100の1行目から順番に選択していけばよい。次に、ステップS304aで選択した行について、隣接する文字間隔値の差を取って文字間隔差分値の絶対値を算出する(ステップS304b)。文字間隔の各々は、ステップS302で既に取得している。例えば、選択行の文字間隔が「11,19,25,21,18,20,18」であるときを考える。この場合、文字間隔差分値はそれぞれ「8(19−11),6(25−19),−4(21−25),−3(18−21),2(20−18),−2(18−20)」となる。このように、隣接する文字間隔の差が文字間隔差分値である。この値の絶対値が間隔差分絶対値、すなわち「8,6,4,3,2,2」である。
次に、選択行の間隔差分絶対値の分布から最大間隔差分絶対値を決定し(ステップS304c)、さらに最小間隔差分絶対値を決定する(ステップS304d)。この最大及び最小間隔差分絶対値の範囲内に、透かし情報埋め込み後の文字間隔差分絶対値が入るようにする。最大間隔差分絶対値及び最小間隔差分絶対値の決定方法は自由である。例えば、最大間隔差分絶対値は、選択行の間隔差分絶対値のうち最も大きい値としてもよく、この場合透かし情報埋め込み文書の文字間隔差分を文書100の文字間隔差分よりも小さくでき、不自然な文書となることを防ぐことができる。また、最小間隔差分絶対値を小さくしすぎると最も小さい正の間隔差分と最も大きい負の間隔差分とが近くなりすぎる。本実施形態では間隔差分の正負を用いて透かし情報を埋め込むので、このことは読み取り時の誤りの増加につながる。このため、最小間隔差分絶対値を、例えば透かし情報埋め込み装置が出力する透かし情報埋め込み文書の画像解像度に従い、間隔差分の正負を正しく読み取ることが可能なように決めてもよい。さらには、最大間隔差分絶対値及び最小間隔差分絶対値は固定値でもよく、この場合ステップ304bの処理も必要ない。
以上で求めた最大間隔差分絶対値・最小間隔差分絶対値及びあらかじめ定めた同期波形から埋め込み後の間隔差分絶対値を決定する(ステップS304e)。決定方法は以下の通りである。同期波形は、図7(a)のように、データブロック長や具体的な文字間隔差分値によらない形式で保持されている。同期波形は、少なくとも番号tに対して間隔差分絶対値sを与えるものであればよい。例えば、図7(a)の同期波形はt,T,A,mに関するsの関数であって、以下の式で表される。
s = -4(A - m)/T * t + A [0≦t<T/4]
s = 16(A - m)/3T * (t - T/4) + m [T/4≦t<7T/16]
s = -8(A - m)/T * (t - T/2) + (A + m)/2 [7T/16≦t<T/2]
s = 8(A - m)/T * (t - T/2) + (A + m)/2 [T/2≦t<9T/16]
s = -8(A - m)/T * (t - 9T/16) + A [9T/16≦t<11T/16]
s = 8(A - m)/T * (t - 3T/4) + (A + m)/2 [11T/16≦t<3T/4]
s = -8(A - m)/T * (t - 3T/4) + (A + m)/2 [3T/4≦t<13T/16]
s = 16(A - m)/3T * (t - T) + A [13T/16≦t<T]
この同期波形を、t=番号、T=データブロック長、A=最大間隔差分絶対値,m=最小間隔差分絶対値となるように対応付ける。データブロック長は前述の通り透かし情報の目標検出率に基づいて決められる。データブロック長は、透かし情報104に関連付けられたデータとして間隔差分絶対値決定部103が取得すればよい。また、間隔差分絶対値決定部103がユーザの指示を取得してもよい。
s = -4(A - m)/T * t + A [0≦t<T/4]
s = 16(A - m)/3T * (t - T/4) + m [T/4≦t<7T/16]
s = -8(A - m)/T * (t - T/2) + (A + m)/2 [7T/16≦t<T/2]
s = 8(A - m)/T * (t - T/2) + (A + m)/2 [T/2≦t<9T/16]
s = -8(A - m)/T * (t - 9T/16) + A [9T/16≦t<11T/16]
s = 8(A - m)/T * (t - 3T/4) + (A + m)/2 [11T/16≦t<3T/4]
s = -8(A - m)/T * (t - 3T/4) + (A + m)/2 [3T/4≦t<13T/16]
s = 16(A - m)/3T * (t - T) + A [13T/16≦t<T]
この同期波形を、t=番号、T=データブロック長、A=最大間隔差分絶対値,m=最小間隔差分絶対値となるように対応付ける。データブロック長は前述の通り透かし情報の目標検出率に基づいて決められる。データブロック長は、透かし情報104に関連付けられたデータとして間隔差分絶対値決定部103が取得すればよい。また、間隔差分絶対値決定部103がユーザの指示を取得してもよい。
そして、t=0,1,2,…,T−1を同期波形に代入し、得られた写像であるs0,s1,s2,…,sT−1の小数点以下を四捨五入した値を同期数列(同期情報)とする(同期情報取得)。図7(a)の同期数列について、最大間隔差分絶対値A=8、最小間隔差分絶対値m=2、データブロック長T=31を割り当てる場合、得られる同期数列の各値は図7(b)の黒丸に対応する。すなわち、Nビットからなるデータブロックを用いる場合には、N個の数値を持つ同期数列を用意する。
最後に、同期数列の値を文字間隔差分絶対値として割り当てる。1行目を処理している場合は、1番目の文字間隔差分絶対値としてs0を、2番目としてs1を、3番目としてs2を、それぞれ順番に割り当てる。同期数列の最後の値sT−1を割り当てても、まだ絶対値を割り当てていない文字間隔差分が処理行に存在する場合は、残りの文字間隔差分に対して再びs0から順番に同期数列を割り当てていく。処理行の全ての文字間隔差分に同期数列を割り当てたら、最後に割り当てた同期数列の値siについて、iの値を記憶しておく。ループして次の処理対象行を選択し、戻ってきたステップS304eで新たな同期数列を決定した後には、1番目の文字間隔差分絶対値として同期数列のi+1番目(i+1番目が存在しない場合は0番目)から順番に値を割り当てていく。次に、処理した行が最終行か判定し(ステップS304f)、YESならステップS305に進み、NoならステップS304aに戻る。
本実施形態では、ある行の最後の文字間隔差分に割り当てた同期数列の番号を記憶しておき、次の行の最初の文字間隔差分に次の番号から割り当てていく。しかしながら、番号を記憶せずに、次の行の最初の文字間隔差分には同期数列の1番目を割り当てるようにしてもよい。
同期波形としては間隔差分絶対値として正の値を返す関数なら何でも使うことができ、例えば三角関数を含む式でもよい。ただし、あまりにも1周期での増減が少ない同期波形を用いると、埋め込んだ同期波形を検出することが困難になる。そのため、同期波形としての使用に適さないことに注意すべきである。また、透かし情報埋め込み装置が用いる同期波形と、透かし情報抽出装置が用いる同期波形とが同じである必要がある。透かし情報埋込装置と透かし情報抽出装置とは同じ方法で同期数列を決定する。しかし、例えば文書に基づいて計算した最大文字間隔差分絶対値から同期数列を算出する場合、最大文字間隔差分絶対値が同一でないと、算出された同期数列も異なるものとなる。すなわち、入力文書100と透かし情報埋め込み文書109との各行の最大文字間隔差分絶対値は等しいことが好ましい。言い換えると、透かし情報埋め込みの前後で各行の最大文字間隔差分絶対値が変わらない同期波形を用いることが好ましい。例えば、1行の文字間隔差分数がデータブロック長よりも大きく、かつ同期数列中の何れかの数が最大文字間隔差分絶対値であればよい。もちろん、同期数列が最大文字間隔差分絶対値等の文書から求まるパラメータに依存しないならば、例えば図7(a)の同期波形においてAとmが固定値ならば、この問題は生じない。
[符号付間隔差分値決定]
符号付間隔差分値決定部106は、間隔差分絶対値決定部103が求めた間隔差分絶対値に符号を付けて、符号付間隔差分値(差分情報)を生成する(ステップS305)。符号は、ランダム化部105が求めたランダム化透かし情報に基づいて決定する。符号付け規則としては、ランダム化透かし情報が「1」なら符号を正とし、「0」なら符号を負とすればよい。例えば図10に示すように、間隔差分絶対値が8,6,4,3,2,2であり、ランダム化透かし情報が「110010」である場合を考える。この場合、ランダム化透かし情報が示す符号は「++−−+−」であり、この符号を間隔差分絶対値に付けて「+8,+6,−4,−3,+2,−2」とする。ステップS304で取得した間隔差分値絶対値の数がランダム化透かし情報の長さより多い場合は、ランダム化透かし情報を繰り返して間隔差分値に対応付けてもよい。また、ステップS304で取得した間隔差分値絶対値の数がランダム化透かし情報の長さより短い場合には、透かし情報が長すぎることをユーザに対して通知して処理を中止するようにしてもよい。
符号付間隔差分値決定部106は、間隔差分絶対値決定部103が求めた間隔差分絶対値に符号を付けて、符号付間隔差分値(差分情報)を生成する(ステップS305)。符号は、ランダム化部105が求めたランダム化透かし情報に基づいて決定する。符号付け規則としては、ランダム化透かし情報が「1」なら符号を正とし、「0」なら符号を負とすればよい。例えば図10に示すように、間隔差分絶対値が8,6,4,3,2,2であり、ランダム化透かし情報が「110010」である場合を考える。この場合、ランダム化透かし情報が示す符号は「++−−+−」であり、この符号を間隔差分絶対値に付けて「+8,+6,−4,−3,+2,−2」とする。ステップS304で取得した間隔差分値絶対値の数がランダム化透かし情報の長さより多い場合は、ランダム化透かし情報を繰り返して間隔差分値に対応付けてもよい。また、ステップS304で取得した間隔差分値絶対値の数がランダム化透かし情報の長さより短い場合には、透かし情報が長すぎることをユーザに対して通知して処理を中止するようにしてもよい。
[文字矩形移動]
次に、文字移動部107は、符号付間隔差分値決定部106が求めた符号付間隔差分値に基づいて文字間隔を決定し、文書100上の文字を移動する(ステップS306)。図8は処理の詳細を示すフローチャートである。まず処理行を選択する(ステップS306a)。例えば、文書中の1行目から順次選択すればよい。次に文書解析部102が求めた文字間隔情報を利用して、1行に存在する各文字間隔の平均値を求める(ステップS306b)。次に、透かし情報を埋め込んだ後の各文字間隔を決定する(ステップS306c)。具体的には、処理行における最初の文字間隔をその平均値とし、残りの文字間隔は直前の文字間隔に符号付間隔差分値を足すことによって順次求めるればよい。例えば符号付間隔差分値が図10のように8,6,−4,−3,2,−2と決定されたとし、1行の文字間隔の平均値が11だったとする。すると文字間隔は、11,19(11+8),25(19+6),21(25−4),18(21−3),20(18+2),18(20−2)となる。
次に、文字移動部107は、符号付間隔差分値決定部106が求めた符号付間隔差分値に基づいて文字間隔を決定し、文書100上の文字を移動する(ステップS306)。図8は処理の詳細を示すフローチャートである。まず処理行を選択する(ステップS306a)。例えば、文書中の1行目から順次選択すればよい。次に文書解析部102が求めた文字間隔情報を利用して、1行に存在する各文字間隔の平均値を求める(ステップS306b)。次に、透かし情報を埋め込んだ後の各文字間隔を決定する(ステップS306c)。具体的には、処理行における最初の文字間隔をその平均値とし、残りの文字間隔は直前の文字間隔に符号付間隔差分値を足すことによって順次求めるればよい。例えば符号付間隔差分値が図10のように8,6,−4,−3,2,−2と決定されたとし、1行の文字間隔の平均値が11だったとする。すると文字間隔は、11,19(11+8),25(19+6),21(25−4),18(21−3),20(18+2),18(20−2)となる。
こうしてステップS306cで決定した文字間隔となるように、ステップS306aで選択した行の文字を移動する(ステップS306d)。具体的には、ある文字間隔について、前の文字間隔との差が対応する文字間隔差分値となるように、その文字間隔を構成する後端の文字を移動して配置すればよい。次にステップS306aで選択した行が最終行か判定し(ステップS306e)、YESならステップS307に進み、NOならステップS306aに戻って次の行を選択する。
ステップS306cで求めた文字間隔の合計値が、埋め込み前の文字間隔の合計値と異なる場合、各文字間隔差分絶対値が表す同期波形を大きく変化させない範囲で、埋め込み前の文字間隔の合計値と等しくなるように文字間隔を変更してもよい。
[文書生成]
出力部108は、文字移動部107が文字を移動した文書(埋込文書)の画像を、透かし情報埋め込み文書109として出力する(ステップS307)。出力としては印刷しても記憶装置等に画像データとして記憶してもよく、また、ネットワーク等を介して他の端末等に送信してもよい。
出力部108は、文字移動部107が文字を移動した文書(埋込文書)の画像を、透かし情報埋め込み文書109として出力する(ステップS307)。出力としては印刷しても記憶装置等に画像データとして記憶してもよく、また、ネットワーク等を介して他の端末等に送信してもよい。
[透かし情報抽出処理]
続けて、上述した構成による透かし情報抽出装置の動作手順について説明する。図9は本実施形態に係る透かし情報抽出装置の動作手順を説明するフローチャートである。まず入力部201は、透かし情報埋め込み装置が生成した透かし情報埋め込み文書109を検証画像として取得し、文書解析部202に入力する(ステップS901)。入力部201は例えばスキャナであって、紙媒体の透かし情報埋め込み文書109をスキャンして取得してもよい。また、入力部201は例えばDVDドライブ等の入出力装置であって、ビットマップ等の画像を透かし情報埋め込み文書109として取得してもよい。さらに、透かし情報埋め込み文書109は記憶媒体に格納されたものでもよい。次に文書解析部202が、透かし情報埋め込み時と同様に透かし情報埋込文書109中(埋込文書中)の文書解析を行って文字間隔を求める(ステップS902)。
続けて、上述した構成による透かし情報抽出装置の動作手順について説明する。図9は本実施形態に係る透かし情報抽出装置の動作手順を説明するフローチャートである。まず入力部201は、透かし情報埋め込み装置が生成した透かし情報埋め込み文書109を検証画像として取得し、文書解析部202に入力する(ステップS901)。入力部201は例えばスキャナであって、紙媒体の透かし情報埋め込み文書109をスキャンして取得してもよい。また、入力部201は例えばDVDドライブ等の入出力装置であって、ビットマップ等の画像を透かし情報埋め込み文書109として取得してもよい。さらに、透かし情報埋め込み文書109は記憶媒体に格納されたものでもよい。次に文書解析部202が、透かし情報埋め込み時と同様に透かし情報埋込文書109中(埋込文書中)の文書解析を行って文字間隔を求める(ステップS902)。
次に、参照間隔差分絶対値決定部203で、文書解析部202が得た文字間隔情報(読取情報)に基づいて、参照間隔差分絶対値を決定する(ステップS903)。このステップは埋め込み時に行った、間隔差分値の分布に基づいて同期波形から間隔差分絶対値を決定した処理(ステップS304)とほぼ同じである。異なる点は、求めた間隔差分絶対値を次の透かし抽出部でデータブロックの同期に用いるための参照間隔差分絶対値として用いる点である。
続けて、透かし抽出部204がランダム化透かし情報抽出を行う(ステップS904)。ステップS904の詳細は図11を用いて説明する。まず透かし抽出部204は処理行を選択する(ステップS904a)。先頭行から順に選択していけばよい。次に、文書解析部202が取得した文字間隔情報を用い、隣接する文字間隔値の差を取って間隔差分値を算出する(ステップS904b)。次に、参照間隔差分絶対値決定部203が求めた参照間隔差分絶対値と比較し、食い違いが生じたら修正を行う(ステップS904c)。ステップS904cの詳細については後述する。
次に、透かし抽出部S904は間隔差分値の正負を判定する(ステップS904d)。例えば図10に示すように間隔差分値が8,6,−4,−3,2,−2の順に並んでいれば、間隔差分値の正負は「++−−+−」である。本実施形態では「+」に「1」を、「−」に「0」を対応付けるから、この場合「110010」のビット列が得られる。ステップS904dで決定したビット列は適切なバッファに順番に格納する。バッファは透かし抽出部204が有していても、その他の場所にあってもよい。
次に、ステップS904aで選択した行が最終行か判定し(ステップS904e)、YESならステップS905に進み、NoならステップS904aに戻る。ステップS904が終了すると、バッファにはランダム化透かし情報が格納されている。
[透かし情報復元部]
そして透かし情報復元部205は、透かし抽出部204が取得したランダム化透かし情報から透かし情報を復元し、復元した透かし情報(抽出情報)を出力する(ステップS905)。ステップS905では、透かし情報埋め込み時のステップS303とほぼ同じ処理を行う。ステップS905aで用いる固有鍵は、ステップS303で用いた固有鍵と同じであり、同じ鍵ストリームを生成する。ステップS905がステップS303とは異なる点は、ステップS905bにおいてランダム化透かし情報を入力して透かし情報を出力する点である。本実施形態ではランダム化透かし情報の生成に排他的論理和を用いているため、ランダム化透かし情報と鍵ストリームとに排他的論理和計算を行うことで、元の透かし情報を生成することができる。ランダム化に可逆圧縮アルゴリズムを用いた場合は、埋め込み装置と抽出装置で使用するアルゴリズムを共通にすれば同様の効果が得られる。
そして透かし情報復元部205は、透かし抽出部204が取得したランダム化透かし情報から透かし情報を復元し、復元した透かし情報(抽出情報)を出力する(ステップS905)。ステップS905では、透かし情報埋め込み時のステップS303とほぼ同じ処理を行う。ステップS905aで用いる固有鍵は、ステップS303で用いた固有鍵と同じであり、同じ鍵ストリームを生成する。ステップS905がステップS303とは異なる点は、ステップS905bにおいてランダム化透かし情報を入力して透かし情報を出力する点である。本実施形態ではランダム化透かし情報の生成に排他的論理和を用いているため、ランダム化透かし情報と鍵ストリームとに排他的論理和計算を行うことで、元の透かし情報を生成することができる。ランダム化に可逆圧縮アルゴリズムを用いた場合は、埋め込み装置と抽出装置で使用するアルゴリズムを共通にすれば同様の効果が得られる。
以上、本発明の、透かし情報埋め込み装置及び透かし情報抽出装置の処理手順を説明した。
[修正処理]
ステップS904cの修正処理についてここで詳しく説明する。図13に示すように、コピーなどの影響でノイズが加わり、文字矩形の抽出に誤りが生じた場合、参照間隔差分絶対値と間隔差分値の間に食い違いが生じる。図13(a)のように、文字矩形が、埋め込み時と比べて一つ減少した場合、2つの文字間隔差分値が1つになる。また、1つの文字を2つの文字として認識してしまい、文字矩形が一つ増加した場合は1つの文字間隔差分値が2つになる。いずれの場合も値はまったく異なる値になるが、その後に続く値は参照間隔差分絶対値通りに回復する。
ステップS904cの修正処理についてここで詳しく説明する。図13に示すように、コピーなどの影響でノイズが加わり、文字矩形の抽出に誤りが生じた場合、参照間隔差分絶対値と間隔差分値の間に食い違いが生じる。図13(a)のように、文字矩形が、埋め込み時と比べて一つ減少した場合、2つの文字間隔差分値が1つになる。また、1つの文字を2つの文字として認識してしまい、文字矩形が一つ増加した場合は1つの文字間隔差分値が2つになる。いずれの場合も値はまったく異なる値になるが、その後に続く値は参照間隔差分絶対値通りに回復する。
この比較ステップにおいては、読み取った文字間隔差分絶対値と参照間隔差分絶対値とが一致していない場所を特定し、参照間隔差分絶対値を用いてデータを修正する。その際の正負の符号は任意でよい。例えば、読み取った間隔差分値「8,6,−4,−1,−2」と参照間隔差分絶対値「8,6,4,3,2,2」とを比較する。差分絶対値が合わないところを*印で表すと、間隔差分値は「8,6,−4,*,*,−2」と判定できる。*印の部分を参照間隔差分絶対値を用いて修正する。正負の符号は任意でよいので、例えば修正後の間隔差分値を「8,6,−4,3,−2,2」と決定すればよい。このことにより、正しく読み取ることができずにビットが増え又は減ってしまったデータブロックについて、正しいビット数に戻すことができる。データブロック長は固定なので、この処理によってデータブロックの開始位置と終了位置とを検出することができる。さらに、そのデータブロック中で読み取ることができなかったビットの数と位置も検出することができる。この時、修正を行ったビットがどれであるかを示すデータを出力してもよい。
ここでは*で示した箇所以外は完全に間隔差分絶対値が一致したが、プリント・スキャンを経た文書画像の場合、完全に一致するとは限らない。そこで、一致状態にあると判定する許容範囲を設けることもできる。ここで重要なのは、許容範囲を大きくしすぎると修正すべき部分を一致していると判定してしまう問題が生じる可能性があるということである。そこで、一致度にスコアを導入し、個々の間隔差分絶対値の一致度スコアの累積値が閾値を超えるか否かで、読み取った間隔差分絶対値と参照間隔差分絶対値とが一致しているか否かを判定することが可能である。
上の処理を示したのが図12のフローチャートである。このステップS904cの処理は、全て透かし情報復元部205が行う。初期化処理として、参照間隔差分絶対値へのポインタPr1,Pr2を共に参照波形の先頭の1つ前、すなわち参照間隔差分絶対値の先頭の1つ前にセットする。参照間隔差分絶対値の先頭とは、埋め込み方法に依存するが、本実施形態の埋め込み方法を用いた場合には前の行で最後にポインタPr1が示した参照間隔差分絶対値の1つ後を示す。また、間隔差分絶対値へのポインタPa1,Pa2を共に行頭の1つ前、すなわち間隔差分絶対値の先頭の1つ前にセットする。(ステップS904c−1)。まず、ポインタPa1とPa2とを1つずつ進め、進めた後のPa1(=Pa2)が指し示す間隔差分絶対値を選択する。また、ポインタPa1とPa2とを1つずつ進め、進めた後のPr1(=Pr2)が指し示す参照間隔差分絶対値を選択する(ステップS904c−2)。次に、Pa1(=Pa2)が指し示す間隔差分絶対値と、Pr1(=Pr2)が指し示す参照間隔差分絶対値とを用いて、下記に示すスコアを算出する(ステップS904c−3)。
(スコア) = |(参照間隔差分絶対値) − (間隔差分絶対値)| /A
ここで、スコアの判定のために許容度Aを導入する。許容度Aは、固定値でも解像度等の文書画像から得られるパラメータでもよく、例えば最大間隔差分絶対値に設定すればよい。次に、スコアが所定の値(たとえば1/2)以上、すなわち許容度の範囲を越えて異なっているかを判定する(ステップS904c−4)。もし異なっている場合(YES)はステップS904c−5に進む。もしスコアが所定の値以下、すなわち許容度の範囲内で一致する場合(NO)はステップS904c−9に進む。
ここで、スコアの判定のために許容度Aを導入する。許容度Aは、固定値でも解像度等の文書画像から得られるパラメータでもよく、例えば最大間隔差分絶対値に設定すればよい。次に、スコアが所定の値(たとえば1/2)以上、すなわち許容度の範囲を越えて異なっているかを判定する(ステップS904c−4)。もし異なっている場合(YES)はステップS904c−5に進む。もしスコアが所定の値以下、すなわち許容度の範囲内で一致する場合(NO)はステップS904c−9に進む。
ステップS904c−5においては、Pr1を1つ進め、Pr1が示す参照間隔差分絶対値とPa1が示す間隔差分絶対値とが許容度の範囲内で一致するまでPa1を1つずつ進める。一致しているか否かの判定はステップS904c−4と同様に行う。さらに、一致するまでのPa1の増加量を記憶する。3個以上の文字を1つの文字として(1つの文字矩形として)認識してしまう可能性は低いため、Pa1をあらかじめ定められた数、例えば3つ進めても一致しない場合、Pa1の増加量を0としてステップS904c−6に進んでもよい。次に、Pa2を1つ進め、Pr2が示す参照間隔差分絶対値とPa2が示す間隔差分絶対値とが許容度の範囲内で一致するまでPr2を1つずつ進める。一致しているか否かの判定はステップS904c−4と同様に行う。Pr2をあらかじめ定められた数、例えば3つ進めても一致しない場合、ステップS904c−5と同様にPr2の増加量を0としてもよい。さらに、一致するまでのPr2の増加量を記憶する。(ステップS904c−6)。文字矩形の数が増加する読み取り誤りが起きている時の、ステップS904c−5におけるポインタの動きの例を図13(b)に示した。また、文字矩形の数が減少する読み取り誤りが起きている時の、ステップS904c−6におけるポインタの動きの例を図13(c)に示した。
次に、Pa1の増加量>Pr2の増加量ならば文字矩形の数が増加していると判断し、Pa1の値をPa2の値としてセットし、Pr1の値をPr2の値としてセットする。Pa1の増加量<Pr2の増加量ならば文字矩形の数が減少していると判断し、Pa2の値をPa1の値としてセットし、Pr2の値をPr1の値としてセットする(ステップS904c−7)。次に、増加・減少の判断結果およびポインタ値を用いて参照波形に基づいて修正を行う(ステップS904c−8)。文字矩形の数が増加している場合には、Pa1の増加量は誤っている値の数に等しい。すなわち、Pa1の増加量をnとすると、Pa1が示す間隔差分絶対値のn個前の値から、Pa1が示す間隔差分絶対値の1つ前の値までは誤っていると判断される。この場合、透かし情報埋め込み文書を正しく読み込んでいればこれらの値の代わりに1つの間隔差分絶対値が存在するはずである。よって、誤っている値を削除し、適当な値を挿入すればよい。例えば、Pr1が示す参照間隔差分絶対値の1つ前の値を挿入すればよい。また、文字矩形の数が減少している場合には、誤っている値の数は1つであると判定される。この場合、Pr2の増加量をnとすると、Pa2が示す間隔差分絶対値の1つ前の値を削除し、n個の適当な値を代わりに挿入すればよい。適当な値としては、例えばPr2が示す参照間隔差分絶対値のn個前の値から、Pr2が示す参照間隔差分絶対値の1つ前の値までを用いればよい。次に、Pa1(=Pa2)が指し示す間隔差分絶対値が選択した行の末尾であるか判定し(ステップS904c−9)、YESであれば次のステップS904dに進み、NOであればステップS904c−2に戻る。
ステップS904c−8においてPa1の増加量=Pr2の増加量となることは通常はないが、その場合にはそのままステップS904c−9に進んでもよいし、ユーザに警告を発して処理を終了してもよい。また、Pa1の増加量とPr2の増加量とがともに0となった場合には、ステップS904c−5及びステップS904c−6の処理を、Pr1とPa2とをさらに1つずつ進めておこなってもよい。ステップS904c−5及びステップS904c−6の処理においてPa1又はPr2を増加させている時に行の末端に到達してしまった時は、次行の間隔差分絶対値及び参照間隔差分絶対値を計算してからさらに比較を進めてもよい。さらには、ポインタは、透かし情報復元部205が有するメモリ、又は外部のメモリに格納しておけばよい。ステップS904cでは修正処理を行うが、修正箇所、すなわち抽出した透かし情報のうち誤りが存在する箇所をユーザに通知することが好ましい。また、食い違いを発見した際にユーザに警告を発して処理を終了するようにしてもよい。これだけで誤りを検出するという目的は達成できる。
<第2の実施形態>
第1の実施形態の埋め込み規則では、透かし情報が0,1の2値で構成されていることを前提としていた。本実施形態では、多値で構成された透かし情報を埋め込む。例えば図14のように、埋め込む情報を0から7までの8値とする。埋め込む透かし情報に応じて間隔差分絶対値の十の位の数値及び符号を決定し、同期波形は間隔差分絶対値の一の位を使用して埋め込む。
第1の実施形態の埋め込み規則では、透かし情報が0,1の2値で構成されていることを前提としていた。本実施形態では、多値で構成された透かし情報を埋め込む。例えば図14のように、埋め込む情報を0から7までの8値とする。埋め込む透かし情報に応じて間隔差分絶対値の十の位の数値及び符号を決定し、同期波形は間隔差分絶対値の一の位を使用して埋め込む。
例えば図14(b)のように「353343」を埋め込む場合、図14(a)の符号表に従うと「−2,+5,−3,−3,+2,−2」との数値列が得られる。図14(a)の符号表においては、埋め込む情報に対して2つの数値の何れを選択してもよい。例えば、情報「7」に対しては「+9」を選択しても「+8」を選択してもよい。絶対値が小さい方を選択する、又は文字間隔の総和の埋め込み前後での変化が小さくなるように選択する、等の選択方法が考えられる。第1の実施形態の方法に従って同期波形から決定した同期数列、例えば「8,9,7,2,9,9」を一の位として組み合わせると、符号付間隔差分値として「−28,+59,−37,−32,+29,−28」が得られる。この符号付間隔差分値を、第1の実施形態と同様に連続する文字矩形の間隔の差の正負を利用して埋め込めばよい。透かし情報抽出装置は、読み取った符号と十の位の数値とから、図14(a)の符号表を用いて埋め込んだ情報を得ることができる。本実施形態の場合も、埋め込む情報において0から3(間隔差分値の符号が負)と4から7(間隔差分値の符号が正)との分布に偏りがあると文書が不自然になるため、ランダム化が必要である。
図14(a)のように、符号付間隔差分値の符号及び十の位として−1,0,+1を使用しないことで、透かし情報抽出装置が情報「3」と「4」とを読み間違える可能性を減らすことができる。また、例えば図14の例において、情報「5」に対しては設定する文字間隔差分値が+45〜+54の間に入るように決め、+40〜+44及び+55〜+59は埋め込み時には使わないようにすることで、さらに耐性を高めることができる。符号表をさらに複雑にし、解像度を上げることにより、さらに複雑な多値情報を埋め込むことができる。
<第3の実施形態>
図15は、本実施形態に係る透かし情報抽出・埋め込み装置の電気的構成を説明するための図である。なお、透かし情報抽出・埋め込み装置の実現に当たっては、図15に示される全ての機能を使用することは必須ではない。
図15は、本実施形態に係る透かし情報抽出・埋め込み装置の電気的構成を説明するための図である。なお、透かし情報抽出・埋め込み装置の実現に当たっては、図15に示される全ての機能を使用することは必須ではない。
図15において、コンピュータ1501は、一般に普及しているパーソナルコンピュータであり、スキャナ等の画像入力装置1517が読み取った画像を入力し、編集や保管を行うことが可能である。また、画像入力装置1517が得た画像をプリンタ1516から印刷することができる。なお、ユーザからの各種指示等は、マウス1513、キーボード1514からの入力操作により行われる。
コンピュータ1501の内部では、バス1507により後述する各ブロックが接続され、種々のデータの受け渡しが可能である。図15において、CPU1502は、コンピュータ1501内部の各ブロックの動作を制御し、あるいは内部に記憶されたコンピュータプログラムを実行することができる。主記憶装置1503は、CPU1502において行われる処理のために、一時的にプログラムや処理対象の画像データを格納しておく装置である。ハードディスク(HDD)1504は、主記憶装置1503等に転送されるプログラムや画像データをあらかじめ格納したり、処理後の画像データを保存することのできる装置である。
インタフェース(I/F)1515は、原稿やフィルム等を読み取って、画像データを生成する画像入力装置1517と接続され、画像入力装置1517で得られた画像データを入力することのできるI/Fである。インタフェース(I/F)1508は、画像データを印刷するプリンタ1516と接続され、印刷する画像データをプリンタ1516に送信することのできるI/Fである。
CDドライブ1509は、外部記憶媒体の一つであるCD(CD−R/CD−RW)に記憶されたデータを読み込んだり、あるいは書き出すことができる装置である。FDDドライブ1511は、CDドライブ1509と同様にFDDからの読み込みや、FDDへの書き出しをすることができる装置である。DVDドライブ1510は、FDDドライブ1511と同様に、DVDからの読み込みや、DVDへの書き出しをすることができる装置である。尚、CD、FDD、DVD等に画像編集用のプログラム、あるいはプリンタドライバが記憶されている場合には、これらプログラムをHDD1504上にインストールし、必要に応じて主記憶装置1503に転送されるようになっている。
インタフェース(I/F)1512は、マウス1513やキーボード1514からの入力指示を受け付けるために、これらと接続されるI/Fである。また、モニタ1506は、透かし情報の抽出処理結果や処理過程を表示することのできる表示装置である。さらに、ビデオコントローラ1505は、表示データをモニタ1506に送信するための装置である。なお、本発明は、複数の機器(例えば、ホストコンピュータ、インタフェース機器、リーダ、プリンタ等)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置等)に適用してもよい。
本実施形態に係る動作手順は、例えば以下のようにして達成される。すなわち、図15に示す情報処理装置において、例えばマウス1513やキーボード1514からの入力指示により、CPU1502等が、HDD1504等のコンピュータ読取可能な記録媒体から主記憶装置1503等のメモリにプログラムをロードする。そして、メモリ上のプログラムをCPU1502等が実行する。この時、モニタ1506により実行状況や、その結果をモニタすることも可能である。
<その他の実施形態>
本発明は同期波形を用いて透かし情報を埋め込む方法に関するものである。さらに埋め込み可能な情報量を増やす目的で、文字間隔のグループ化を行わず、例えば3つの文字間隔について1つ目と2つ目の文字間隔の差と、2つ目と3つ目の文字間隔の差との双方を用いてより高密度に透かし情報を埋め込む方法を採用した。しかしながら、後者の高密度に透かし情報を埋め込む方法は、同期波形を用いずに透かし情報を埋め込む場合にも適用可能である。例えば、文字間隔の差をkに固定し、「1」を埋め込む場合は文字間隔差分値を+kに、「0」を埋め込む場合は文字間隔差分値を−kにすればよい。
本発明は同期波形を用いて透かし情報を埋め込む方法に関するものである。さらに埋め込み可能な情報量を増やす目的で、文字間隔のグループ化を行わず、例えば3つの文字間隔について1つ目と2つ目の文字間隔の差と、2つ目と3つ目の文字間隔の差との双方を用いてより高密度に透かし情報を埋め込む方法を採用した。しかしながら、後者の高密度に透かし情報を埋め込む方法は、同期波形を用いずに透かし情報を埋め込む場合にも適用可能である。例えば、文字間隔の差をkに固定し、「1」を埋め込む場合は文字間隔差分値を+kに、「0」を埋め込む場合は文字間隔差分値を−kにすればよい。
先述の通り、文字間隔を2つの文字間隔の組にグループ化してから、グループ内の文字間隔を操作する方法にも、本発明の同期波形を導入することができる。この場合文字矩形を正しく認識できないと、正しく認識できなかった位置以降ではグループ化する文字間隔の組もずれてしまう。正しく認識できなかったと判定された位置から文字間隔のグループ化をやり直してから同期波形との比較を続けることで、上述の実施形態の方法に従って抽出したデータが異常であることを検出するとともにデータを補正することができる。
Claims (11)
- 文書中の文字間隔を変化させて埋込情報を埋め込む情報処理装置であって、
入力文書を取得する手段と、
埋込数値の集合を示す埋込情報を取得する手段と、
数値列を同期情報として取得する同期情報取得手段と、
前記同期情報と前記埋込情報とを組み合わせて、各々の隣接する文字間の間隔の差分値を示す差分情報を生成する計算手段と、
前記入力文書中の隣接する文字間の間隔の差分値が、前記差分情報の対応する値となるように、前記隣接する文字間を構成する文字のうち後端の文字を移動して、埋込文書を生成する移動手段と、
前記埋込文書を出力する出力手段とを備えることを特徴とする情報処理装置。 - 前記計算手段は、前記同期情報の各値に対して、前記埋込情報の対応する値に従って符号を付した値を、前記差分情報の値とすることを特徴とする、請求項1に記載の情報処理装置。
- 前記埋込情報は、N個の前記埋込数値で表される部分情報を、複数個有し、
前記同期情報取得手段は、N個の数値を有する数値列を同期情報として取得することを特徴とする、請求項1又は2に記載の情報処理装置。 - 前記移動手段は、
前記入力文書から、連続する第1の文字間の間隔、第2の文字間の間隔及び第3の文字間の間隔を選択し、
前記差分情報から、前記第1の文字間の間隔と前記第2の文字間の間隔との差に対応する第1の差分値と、前記第2の文字間の間隔と前記第3の文字間の間隔との差に対応する第2の差分値とを選択し、
前記第1の文字間の間隔と前記第2の文字間の間隔との差が前記第1の差分値となるように、前記第2の文字間を構成する文字のうち後端の文字を移動し、
さらに前記第2の文字間の間隔と前記第3の文字間の間隔との差が前記第2の差分値となるように、前記第3の文字間を構成する文字のうち後端の文字を移動することを特徴とする、請求項1乃至3の何れか1項に記載の画像処理装置。 - 前記計算手段は、
前記埋込情報の各値を可逆に変換する手段と、
前記同期情報と前記変換した埋込情報とを組み合わせて、前記差分情報を生成する生成手段とを備えることを特徴とする、請求項1乃至4の何れか1項に記載の画像処理装置。 - 前記計算手段は0と1とが偏り無く分布する二値データである鍵ストリームを取得する手段をさらに備え、前記生成手段は、前記埋込情報と前記鍵ストリームとの間で論理演算を行うことにより当該埋込情報を変換することを特徴とする、請求項5に記載の画像処理装置。
- 請求項1乃至6の何れか1項に記載の情報処理装置が生成した埋込文書から情報を抽出する情報処理装置であって、
前記埋込文書を取得する手段と、
前記計算手段が用いた前記同期情報を取得する手段と、
前記埋込文書中の連続する文字間の間隔の差分値を読み取り、読取情報として取得する手段と、
前記同期情報と前記読取情報の値とを比較して誤りを検出し、誤りを示す誤り情報を出力する手段と、
前記読取情報から抽出情報を抽出する抽出手段と、
前記抽出情報を出力する手段とを備えることを特徴とする情報処理装置。 - 前記抽出手段は、前記読取情報に含まれる値を前記誤り情報を用いて修正し、前記修正した読取情報から前記抽出情報を抽出することを特徴とする、請求項7に記載の情報処理装置。
- 文書中の文字間隔を変化させて埋込情報を埋め込む情報処理装置が行う情報処理方法であって、
入力文書を取得する工程と、
埋込数値の集合を示す埋込情報を取得する工程と、
数値列を同期情報として取得する同期情報取得工程と、
前記同期情報と前記埋込情報とを組み合わせて、各々の隣接する文字間の間隔の差分値を示す差分情報を生成する計算工程と、
前記入力文書中の隣接する文字間の間隔の差分値が、前記差分情報の対応する値となるように、前記隣接する文字間を構成する文字のうち後端の文字を移動して、埋込文書を生成する移動工程と、
前記埋込文書を出力する出力工程とを備えることを特徴とする情報処理方法。 - コンピュータを、請求項1乃至8の何れか1項に記載の画像処理装置が有する各手段として動作させるためのコンピュータプログラム。
- 請求項10に記載のコンピュータプログラムを格納した、コンピュータが読取可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009112293A JP2010262117A (ja) | 2009-05-01 | 2009-05-01 | 情報処理装置、情報処理方法、プログラム及び記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009112293A JP2010262117A (ja) | 2009-05-01 | 2009-05-01 | 情報処理装置、情報処理方法、プログラム及び記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010262117A true JP2010262117A (ja) | 2010-11-18 |
Family
ID=43360232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009112293A Withdrawn JP2010262117A (ja) | 2009-05-01 | 2009-05-01 | 情報処理装置、情報処理方法、プログラム及び記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010262117A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019035850A (ja) * | 2017-08-15 | 2019-03-07 | 公立大学法人会津大学 | 秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム |
-
2009
- 2009-05-01 JP JP2009112293A patent/JP2010262117A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019035850A (ja) * | 2017-08-15 | 2019-03-07 | 公立大学法人会津大学 | 秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム |
JP7143973B2 (ja) | 2017-08-15 | 2022-09-29 | 公立大学法人会津大学 | 秘密データの隠蔽方法、これを実施するプログラム、及び秘密データ通信システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4310288B2 (ja) | 画像処理装置及びその方法、プログラム並びに記憶媒体 | |
JP2006345017A (ja) | 画像処理方法および画像処理装置および画像処理プログラムおよび記録媒体 | |
JP2006050551A (ja) | 画像処理装置及びその方法、並びにプログラム及び記憶媒体 | |
JP2007179111A (ja) | コードパターン、印刷物、画像生成装置、画像処理装置、画像生成方法及び情報特定方法 | |
JP2010262558A (ja) | 情報表現画像、印刷物、画像処理装置及び画像処理プログラム | |
JP4532331B2 (ja) | 情報埋め込み装置、情報抽出装置、情報埋め込み方法、情報抽出方法、情報埋め込みプログラム、及び情報抽出プログラム | |
JP2009188965A (ja) | 情報識別装置、情報識別方法、プログラム及び記録媒体 | |
JP2010262117A (ja) | 情報処理装置、情報処理方法、プログラム及び記憶媒体 | |
JP2009177618A (ja) | 検出方法および検出装置 | |
US8504901B2 (en) | Apparatus, method, and computer program product for detecting embedded information | |
JP5867790B2 (ja) | 画像処理装置 | |
JP4469301B2 (ja) | 情報埋め込み装置、印刷用媒体、および、情報読み取り装置 | |
CN1326383C (zh) | 图像处理设备和方法 | |
JP4871793B2 (ja) | 情報処理装置及びその方法 | |
JP2004363990A (ja) | 画像改ざん検知装置およびその保存データの復元方法 | |
JP2008085579A (ja) | 情報埋め込み装置、情報読み取り装置、情報埋め込み方法、情報読み取り方法、およびコンピュータプログラム | |
JP2008079278A (ja) | 画像処理装置、画像処理方法およびそのコンピュータ・プログラム | |
JP2004247883A (ja) | 画像処理方法 | |
JP2002232679A (ja) | 画像処理方法及び装置及びコンピュータプログラム及び記憶媒体 | |
JP2006025409A (ja) | 画像処理装置及び画像処理方法 | |
JP5592234B2 (ja) | 二次元コード生成装置、二次元コード読取装置、二次元コード、二次元コード生成方法、二次元コード読取方法及びプログラム | |
JP4575873B2 (ja) | 画像処理装置 | |
JP2007150606A (ja) | 文書処理装置および文書処理方法 | |
JP2007183514A (ja) | 情報処理装置及びプログラム | |
JP2007174181A (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: 20120703 |