JP2021034771A - 電子透かし埋め込み及び検出方法 - Google Patents
電子透かし埋め込み及び検出方法 Download PDFInfo
- Publication number
- JP2021034771A JP2021034771A JP2019149648A JP2019149648A JP2021034771A JP 2021034771 A JP2021034771 A JP 2021034771A JP 2019149648 A JP2019149648 A JP 2019149648A JP 2019149648 A JP2019149648 A JP 2019149648A JP 2021034771 A JP2021034771 A JP 2021034771A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- embedded
- information
- code
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims description 12
- 238000012937 correction Methods 0.000 claims abstract description 49
- 238000000034 method Methods 0.000 claims abstract description 31
- 238000001228 spectrum Methods 0.000 claims description 11
- 230000008707 rearrangement Effects 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000003595 spectral effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 17
- 238000000605 extraction Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 10
- 238000009792 diffusion process Methods 0.000 description 6
- 208000011580 syndromic disease Diseases 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 230000007423 decrease Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 101100269850 Caenorhabditis elegans mask-1 gene Proteins 0.000 description 1
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- RRLHMJHRFMHVNM-BQVXCWBNSA-N [(2s,3r,6r)-6-[5-[5-hydroxy-3-(4-hydroxyphenyl)-4-oxochromen-7-yl]oxypentoxy]-2-methyl-3,6-dihydro-2h-pyran-3-yl] acetate Chemical compound C1=C[C@@H](OC(C)=O)[C@H](C)O[C@H]1OCCCCCOC1=CC(O)=C2C(=O)C(C=3C=CC(O)=CC=3)=COC2=C1 RRLHMJHRFMHVNM-BQVXCWBNSA-N 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 229930183489 erectone Natural products 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000033458 reproduction Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 230000009967 tasteless effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
【課題】画像に透かし情報を埋め込むブロック型の多値の電子透かし法で、バーストエラーに強い電子透かしを得る。【解決手段】画像データをブロックに分割し、ブロックごとに多値の透かし情報を埋め込む。埋め込みパターンは、180/N度ずつ回転したN個のパターンで、その系列が、ハミング距離が1となるグレイコードに対応するように構成し、埋め込む符号列をcodewordの並び替えをすることにより、バースト誤りを多数のcodewordのブロックへ拡散し、誤り訂正性能を向上することが出来る。【選択図】図5
Description
本発明は,デジタル画像データに各種情報を透かし情報として埋め込む電子透かしにおいて、画像をブロックに分割し、各ブロックに多値の透かしを埋め込み、誤抽出を低減・補正し検出精度を向上させる方法に関するものである。
現在のデジタル情報社会において,情報の複製により多くの人が情報を共有することが可能となり,社会が大きく発展してきた。しかし,その利便性が,他人の著作物を違法に複製し流通させることにより,著作権侵害などの事件が起きるようになった。画像においては,近年のデジタルカメラやプリンタの高画質化により,原画と寸分も違わぬ複製が容易に得られるようになり,著作権を侵害した違反コピーだけでなく,紙幣や有価証券等の偽造行為という悪質な犯罪行為を助長させる結果となっている。
そのような状況の中で,画像情報の中に情報を埋め込み,著作権を保護したり、違法複写に警告を与えたりする不可視の電子透かし(Digital Watermark)技術が発展してきた。例えば、著作権保護では、文書や画像の著作物の中に著作権の有無や著作権者名、その連絡先、利用条件、関連するURLなどを埋め込み、利用者に注意を喚起するのみならず、不正利用された場合には、その追跡を可能とする。著作権の管理/保護、ならびに不正複写の監視など、セキュリティ対策として欠くことのできない技術として確立しつつある。
また、情報を埋め込まれた画像をカメラやスキャナで読み取り、埋め込み情報を抽出する“アノテーション”としての電子透かしの応用が注目されている。例えば、商品の写真の中に商品に関するメタデータを透かしとして埋め込み、スマートフォンなどで画像を撮影や観察するとき、その商品に関する各種情報を得たり関連するURLに誘導するアプリケーションがある。二次元バーコードと同じような用途が考えられるが、二次元バーコードと異なり、画像中に埋め込まれるため余分のスペースを必要としないし、魅力的な画像を使用した場合,感性に訴えるため誘導・誘因力が強くなるなどの効果がある。
これらの電子透かしは、頑強で簡単に消失あるいは除去できないものでなければならない。画像の編集加工や簡単な操作で透かし情報を除去や消去ができるならば、著作権保護の場合は不正使用して追跡や監視の目から逃れることができるし、アノテーション応用では、誤検出は社会的な影響が大きい。このため様々な攻撃に対して耐性を強化する必要がある。
また、これらの用途では、印刷画像や、表示画像から電子透かしが抽出できることが好ましい。印刷画像や表示画像から埋め込み情報を抽出するためにはスキャナーやカメラで画像を読み取る必要があり、これら読み取り装置の応答特性の他、画像の汚れや照明ムラ、画像の歪などがあるため、これらに対しても正しく抽出できるためにはさらに頑強な透かし技術が必要である。すなわち超高耐性の電子透かし法が必要となる。
通常、耐性を強化するためには、電子透かしを画像データの深層に埋め込む、つまり、埋め込みの強度(gain) を大きくして埋め込む必要がある。これは、原画像に対してダメージが増大し、画質が大幅に劣化するという弊害をもたらす。つまり、画質と耐性とはお互いにトレードオフの関係にあり、一方を良くすると他方が悪くなる。
また、耐性を強化すると埋め込み可能な情報量は減少する。抽出時の誤判定(抽出誤り)を修正・改善させるため同じ情報を繰り返し埋め込み、多数決や信頼度の高い情報を選択する方法や、エラー訂正符号を同時に埋め込むことにより、耐性を高め正確な情報を抽出できるようになる。しかしながら、これらの方法は埋め込む情報量を増大させ本来埋め込まれるべき透かし情報は減少する。つまり、耐性と埋め込み情報量も、トレードオフの関係にある。
このように、画質、耐性、埋め込み量は、それぞれがトレードオフの関係にあり、これらをすべて同時に満たすことは一般に困難である。そこで、これらを解決する電子透かし法として、特許文献1、2に示される多値のグリーンノイズパターンを画像データに埋め込む手法(以降、多値グリーンノイズ拡散法と呼ぶ)を、以前、提案した。
グリーンノイズパターンは,そのスペクトルが特定の帯域fmax〜fminに閉じ込められ、その主周波数は、人の視覚特性で認識できにくい周波数帯に設定できる。このため、電子透かしに用いた場合、埋め込み画像を明視の距離で観察した場合、グリーンノイズによるドットパターンは低い応答性を示し認識されにくい。つまり埋め込み強度(gain)を上げて編集・加工に強靭にしてもアーティファクトが視認されにくく,高画質性が保たれたまま高耐性を保持でき、印刷耐性も得ることが可能である。
「多値」のグリーンノイズ拡散法では、ブロック毎に多値情報を埋め込み、埋め込み容量を増大させる。例えば、四値の場合は二値の2倍の容量が、八値の場合は4倍の容量が得られる。かかる多値化を実現するためには、画像をR×Rのブロックに分割し、例えば、四値の場合、透かし情報ビット列から2ビットの情報を取り出し、2ビットの情報(00,01,10,11)に対応した4つの異なるドットパターンを用意してブロック毎に埋め込む。八値の場合は、3ビットの情報を取り出し、3ビットの情報(000,001,010,011,100,101,110,111)に対応した8つの異なるドットパターンを用意して埋め込む。
かかるグリーンノイズ拡散法を用いた場合、埋め込む原画像の空間周波数が高い場合は、埋め込み信頼度が低く、高圧縮時の耐性が低下する。空間周波数が低い場合でも、印刷画像が汚れている場合や、表示画像に反射光が混入している場合などにおいて、埋め込まれた透かし情報が抽出できなかったり、誤検出されたりすることがあり、正しい情報が得られない。かかる誤検出は多値レベルが大きくなるほど顕著になり、間違った埋め込み情報を受け取ることになり大きな問題となる。このため埋め込まれた情報が正確に抽出できるようにすることが必要である。
河村尚登、岩村恵市:"多値グリーンノイズ拡散法による高耐性電子透かし"、画像電子学会年次大会予稿、R1-2、(2019)
そこで、電子透かし法において、埋め込まれた情報が様々な環境や状況でも埋め込まれた情報が正確に抽出できるようにすることが必要である。すなわち、読み取り装置の応答特性が低い場合や、画像の汚れや読み取り時の照明ムラや画像歪などがある場合でも、常に正確に埋め込み情報が抽出できるようにすることが必要である。
さらに、これらの誤抽出はバースト的に生じることが多い。画像中に空間周波数の高い領域が局所的に存在すると、その領域の埋め込みの信頼度が低いため、エラーが生じやすい。例えば、空を背景に梢や細かい被写体がある場合、被写体の空間周波数がグリーンノイズの主周波数に接近した場合バーストエラーが生じやすくなる。このため、バーストエラーに対して埋め込み情報が正確に得られる様にすることが必要である。すなわち、電子透かし法において抽出時の誤判定を低減し、バーストエラーに対して訂正可能な電子透かし法を得ることが課題である。
かかる課題を解決するために、本発明は、多値のグリーンノイズパターンのコードをグレイコード化することにより誤抽出を軽減する。そして、埋め込み情報を誤り訂正符号を用いたビット列にすることにより、誤抽出を訂正し、前述の課題を解決することが出来る。
グレイコードは、ハミング距離が1のコード系列で、後述の多値データの誤抽出のビット数を低減することが出来る。また、誤り訂正符号は、情報ビットに検査ビットを付加することにより誤りを訂正するもので、二次元バーコードやCD/BD記録など多くの画像機器・装置に用いられている。検査ビットは冗長ビットとも呼ばれ、誤りを修正する目的で付加するため全体のビット列は長くなる。一般に、多数の誤りを訂正するためには、冗長ビットを多くとる必要がある。しかしながら、ブロック型の電子透かし技術では、埋め込める情報量は画像サイズで限定され、容量も二次元バーコードの様に多くは取れないため、誤り訂正符号の冗長ビットはできる限り少なくし、埋め込み情報量の減少を抑える必要がある。
以上の課題を解決するために、画像データをR画素×R画素(Rは2のべき乗)からなるブロックに分割し、それぞれのブロックにR画素×R画素からなるN個(N=2^m ただしmは自然数)の異なるドットパターンpi(i=0,1,2,…,N-1)を用いて透かし情報を埋め込む電子透かし法において、ドットパターンpiはそのスペクトル分布が楕円リング形状となるグリーンノイズ特性を示し、かつ、その主軸方向が180/N度ずつ回転したパターンで、その系列が、ハミング距離が1となるグレイコードに対応するように構成し、
埋め込む文字情報は、文字列をビット列に展開した後,誤り訂正符号の付加とビット列の再配列を行い、新たなビット列を構成し、透かし情報の埋め込みは、ブロック毎にビット列からmビットずつ取り出し、このビットに対応するドットパターンを選択し、ドットパターンの輝度値に埋め込み強度(gain)を乗じて画像データに重畳して書き込み、
透かし情報の抽出は、透かしの埋め込まれた画像データをR画素×R画素のブロックに分割し、ブロック毎にスペクトルパターンを求め、識別器によりN個のドットパターンの中から最も近いものを識別し、ビット列の配列を元に戻した後、誤り訂正を行い、埋め込まれたmビットの情報を抽出する。
埋め込む文字情報は、文字列をビット列に展開した後,誤り訂正符号の付加とビット列の再配列を行い、新たなビット列を構成し、透かし情報の埋め込みは、ブロック毎にビット列からmビットずつ取り出し、このビットに対応するドットパターンを選択し、ドットパターンの輝度値に埋め込み強度(gain)を乗じて画像データに重畳して書き込み、
透かし情報の抽出は、透かしの埋め込まれた画像データをR画素×R画素のブロックに分割し、ブロック毎にスペクトルパターンを求め、識別器によりN個のドットパターンの中から最も近いものを識別し、ビット列の配列を元に戻した後、誤り訂正を行い、埋め込まれたmビットの情報を抽出する。
かかる誤り訂正符号によるビット列の変換および再配列は、ビット列に展開した文字列をkビット毎に区切り、訂正符号方式によりsビットの検出符号を付加し、検出ビットを加えたk+sビットをcodewordとしてcodeword列を生成し、かかるcodeword列の異なる複数のcodewordから取り出したビットで新たなビット列を構成し、mビット単位で透かし埋め込みを行うことにより、透かし埋め込みブロックの連続した誤りに対して訂正が可能となる。
本発明により、情報の抽出時の誤りビットの低減と、誤りビットの訂正が可能である。埋め込む原画像の空間周波数が高い場合や、埋め込まれた画像を高圧縮した場合、汚れた印刷画像などからの読み取る場合などにおいて、埋め込まれた透かし情報が正しく抽出できなくなることを回避する。また、表示画像からの抽出の場合、外光や反射光により透かし情報が正確に抽出が出来なくなることも回避する。
図1は本発明の情報埋め込みと抽出のための電子透かしシステムの構成図である。配信者のコンピュータ3には、配信画像データが、例えばハードディスクなどのデータメモリ7に保管されている。画像データは、プログラムメモリ6にある画像処理プログラムにより、CPU11,ROM4,RAM5などを用いて画像処理され、モニター8に表示される。コンピュータ3にはスキャナー/カメラ1、プリンタ2が接続され、処理された画像はプリンタから出力し、またスキャナー/カメラ1から画像読み取りができる。かかる画像処理は大きなサイズの画像を取り扱う場合,演算負荷が増大するため,並列処理を行うことや、GPUなどの高速化を図るための処理ボードが入っている場合もある。
画像中に機密情報や著作権情報を埋め込むためには、キーボード9から、例えば、暗号化された機密情報,著作権者の名前や日付、URLなどの文字情報を入れるが、埋め込む文字数は、多い程用途が広がるが、少なくとも32文字以上は必要となる。これはASCIIコードの文字で埋め込むとして32バイト(256ビット)が必要となる。
図2は、著作権のある画像の売買の一つの運用形態を示すもので,インターネット配信の処理手順を示すものである。透かし情報を埋め込まれた画像は、配信者あるいは著作権者16のコンピュータからインターネット12により配信される(13)。それを見た購入希望者17は、購入希望を配信者に連絡する(14)。所定の手続き後、配信者は透かしの埋め込みと除去のための秘密鍵を配信する(15)。購入者は、配信者との契約に基づき、送付された画像の埋め込まれた電子透かしを除去し、画像の編集加工を行うことができる。
購入者は、さらに編集加工された画像データを、2次著作者として自己の著作情報やURLなどの情報をこの秘密鍵を用いて埋め込むことができる。これらの透かし情報を埋め込まれた画像は、電子データあるいは印刷物として公開され市場に流通し様々な利用がされる。
その画像を見た第三者は、透かし抽出ソフトにより、この画像に著作権があることを確認できる。透かし抽出ソフトウェアには秘密性はなく、例えば,配信者や著作権者のホームページなどから自由にダウンロードできるようにして広く公開し、だれでも使用できる。第三者はこれにより画像の所有者や著作権情報、連絡先などを知ることができるため、不正使用の防止・警告にもなる。
一方、著作権者や二次著作権者は、その透かしにより、著作物としての画像データの追跡と監視を行うことが可能である。もし、第三者が不正に使用した場合、著作権者や二次著作権者は、監視ソフトウェアにより画像から透かし情報を読みだし、自己の著作物であること、さらに第三者が無断で使用している場合には摘発が可能となる。印刷物の場合は,印刷データをスキャナーやカメラで読み取り、電子データ化し埋め込まれた情報を読み出すことができる。
また、前述のアノテーションとしての電子透かしは、埋め込まれた画像をスマートフォンのカメラなどで撮影して情報を抽出し、専用アプリケーションにより、関連する情報を表示したり、アプリケーション特有の動作を行う。用途としては2次元バーコードと同じような使われ方をするが、バーコードのような無味乾燥のパターンと違い、意味のある画像に埋め込まれるため、利用者を誘導する力が強い。
また、各種イベントなどの電子チケットでは、不当な価格などでの転売を防ぐため、購入者のID(例えば、名前、生年月日、マイナンバーなどの個人を特定する情報)を埋め込み、第三者のなりすましを防ぐことがある。この場合、埋め込み情報をより正確な抽出が要求される。
透かし除去や再書き込みは、専用の鍵を用いて行われる。この鍵は埋め込む画像ごとに1対1で対応する。このため、著作権者は悪用されないように画像ごとに異なる鍵を用いるので、この鍵を用いて他の画像の透かしを除去することはできない。鍵の紛失や第三者による結託攻撃による鍵の取得が起きても、その被害は該当する1枚の画像のみで、他の画像に対しては透かし除去はできない。透かし読み出しのソフトウェアは、鍵が異なっても共通に使える。また。鍵の発行はほぼ無限に行えるため,同じ鍵となる確率は極めて低い。このようなことから極めてセキュアな方式であるといえる。
以下、実施例に沿って詳しく説明する。まず本発明に用いられるグリーンノイズ特性を示すドットパターンの生成について図3に沿って説明する.
今,マトリックスサイズをR画素×R画素 ( R=2^m ここで^はべき乗)として,その中に1画素サイズの黒ドットを埋め込むとする。黒ドットの面積率をg(0≦g≦1:g =1が全黒,g =0 が全白)とする。点(x,y)におけるドットパターンを p(x,y)として、g=1/2のグリーンノイズ特性を示すドットパターンを以下の様にして求める。
(工程1) まず,疑似乱数発生器により、ランダムドットp(x,y)を生成する(20)。
(工程2) p(x,y)に二次元フーリエ変換を行いスペクトルP(u,v)を得る(21)。
ここで、(x,y)は空間座標、(u,v)は空間周波数座標を表す。
g=0.5 の場合、(R^2)/2個のランダムドット(初期状態はホワイトノイズ)
を発生させ、p(x,y)とする.この時,疑似乱数発生器のSEED値を
変えることにより初期状態を変更可能である。
(工程3) P(u,v)にフィルタD(u,v)を掛けて新たなP'(u,v)を得る(22)。すなわち、
P’(u,v)=P(u,v)*D(u,v)
(工程4) P'(u,v)に逆フーリエ変換を行い多値の点プロファイルp'(x,y)を得る(23)。
(工程5)誤差関数e(x,y)=p'(x,y)-p(x,y)を求め(24),各画素位置での誤差の
大きい順に白,黒反転する(25)。
(工程6)工程2から工程5までの操作を誤差が許容量以内になるまで繰り返し,
最終的にg=1/2のドットパターンを得る。
今,マトリックスサイズをR画素×R画素 ( R=2^m ここで^はべき乗)として,その中に1画素サイズの黒ドットを埋め込むとする。黒ドットの面積率をg(0≦g≦1:g =1が全黒,g =0 が全白)とする。点(x,y)におけるドットパターンを p(x,y)として、g=1/2のグリーンノイズ特性を示すドットパターンを以下の様にして求める。
(工程1) まず,疑似乱数発生器により、ランダムドットp(x,y)を生成する(20)。
(工程2) p(x,y)に二次元フーリエ変換を行いスペクトルP(u,v)を得る(21)。
ここで、(x,y)は空間座標、(u,v)は空間周波数座標を表す。
g=0.5 の場合、(R^2)/2個のランダムドット(初期状態はホワイトノイズ)
を発生させ、p(x,y)とする.この時,疑似乱数発生器のSEED値を
変えることにより初期状態を変更可能である。
(工程3) P(u,v)にフィルタD(u,v)を掛けて新たなP'(u,v)を得る(22)。すなわち、
P’(u,v)=P(u,v)*D(u,v)
(工程4) P'(u,v)に逆フーリエ変換を行い多値の点プロファイルp'(x,y)を得る(23)。
(工程5)誤差関数e(x,y)=p'(x,y)-p(x,y)を求め(24),各画素位置での誤差の
大きい順に白,黒反転する(25)。
(工程6)工程2から工程5までの操作を誤差が許容量以内になるまで繰り返し,
最終的にg=1/2のドットパターンを得る。
ここで、フィルタD(u,v)のパターンの設定について説明する。今、D(u,v)が円形のリングパターンで、その最大ラジアル周波数をfmax、最小ラジアル周波数をfminであるとする。g=1/2での平均的ドット間隔による周波数f0は,
f0=√g・fn=√(1/2)・fn
で与えられ,fmax及びfminはf0を基準として,
a=(fmax-f0)/fn
b=(fmin-f0)/fn
として、パラメータ(a,b)を定義する。ここで,fnはナイキスト周波数を示す。かかる(a,b)を変えてクラスターサイズの異なるドットパターンを得ることができる。
f0=√g・fn=√(1/2)・fn
で与えられ,fmax及びfminはf0を基準として,
a=(fmax-f0)/fn
b=(fmin-f0)/fn
として、パラメータ(a,b)を定義する。ここで,fnはナイキスト周波数を示す。かかる(a,b)を変えてクラスターサイズの異なるドットパターンを得ることができる。
多値の透かし埋め込みのためには複数のパターンが必要である。例えば、四値の場合、埋め込み2ビット(00,01,10,11)に対応した4種類のパターンが必要である。そのためフィルタD(u,v)のパターンが楕円リングパターンで、45°づつ回転した4つのパターンとなるようにする。八値の場合は、埋め込み3ビット(000,001,010,011,100,101,110,111)に対応した8種類のパターンが必要である。そのためフィルタD(u,v)のパターンが楕円リングパターンで、22.5°づつ回転した8つのパターンとなるようにする。図4はフィルタパターンを模式的に示すもので、楕円リングの短軸の最小値をfmin、最大値をfmaxとし、長軸の最小値をβ・fmin、最大値をβ・fmaxとする。ここで、βは倍率を表す。
図4に、四値の場合の、45°づつ回転した4つのフィルタ(フィルタ0、フィルタ1、フィルタ2、フィルタ3)の形状を示す。八値の場合は22.5°づつ回転したものとなる。図で黒領域は0、白領域は1を表す。
図5(a)は四値の場合のコード系列の付与を示したものである。各パターンへのコード系列は、ハミング距離が1となるグレイコード系列となるようにする。すなわち0°のものを2ビットの(00)に対応するフィルタパターン、それを45°回転したものをビット(01)、90°回転したものをビット(11)、135°回転したものをビット(10)にそれぞれ対応するものとする。同図(b)は八値の場合で、正立したものを3ビットの(000)に対応するフィルタパターン、それを22.5°回転したものをビット(001)、45°回転したものをビット(011)、67.5°回転したものをビット(010)、90°回転したものをビット(110)、112.5°回転したものをビット(111)、135°回転したものをビット(101)、157.5°回転したものをビット(100)にそれぞれ対応するものとする。
図6に、四値のフィルタD(u,v)を用いて、前述の工程を経て作成されたパターンおよびスペクトルを示す。パターン0は2ビットの埋め込み情報(00)に対応し、パターン1は(01)、パターン2は(11)、パターン3は(10)にそれぞれ対応する。
続いて、画像データへの透かし埋め込み手法について説明する。透かし情報の埋め込みは、赤(R),緑(G)、青(B)からなるカラー画像データの青(B)データに埋め込むか、あるいは、輝度、色差信号となる(Y,Cb,Cr)信号に変換し,輝度(Y)データに埋め込むことが考えられる。電子データでのみ透かし情報を取り扱う場合は、青(B)に埋め込むのがもっとも視覚的には認識されにくく理想的である。印刷画像やモニター画像をカメラやスキャナーで読み取るような応用を考えた場合は、青(B)データ(印刷時はイエロー)は精度よく色分離することが難しいため、輝度(Y)データを用いる。
続いて、図7のフローに沿って処理手順を説明する。簡単にするため、四値の場合で説明する。まず、埋め込み情報をビット列に変換する(20)。例えば、埋め込みたい情報が“1234567890abcdef”となるASCII16文字をビット列に展開すると、wm=“0011000000110001…”となる128ビット列となる。続いて、このビット列にに誤り訂正符号としての検出ビットを付与し、データ列を更新し新たな埋め込みビット列をwm(i)とする。誤り訂正符号を組み込む詳細は後述する。
次に、画像データをR画素×R画素のブロックに分割する(21)。これはドットパターンのサイズと同じサイズにする必要がある。ブロックサイズとしては、64画素×64画素を用いると高精度に抽出できるが、多くの情報を埋め込みたい場合は32画素×32画素をブロックサイズとすると、4倍の情報の埋め込みが可能となる。
埋め込み作業はブロック単位で行われる。n番目のブロックに埋め込むとして(23)、まず、n=1からスタートする(22)。埋め込み透かし情報を先頭から連続した2ビットを取り出し、これをb=(wm(i),wm(i+1)) とする。
bの値により埋め込むパターンを選択する(24)。b=(00)の場合はパターン0を用いて埋め込む(25a)。同様に、b=(01)の場合はパターン1を用いて埋め込む(25b)。b=(11)の場合はパターン2を用いて埋め込む(25c)。b=(10)の場合はパターン3を用いて埋め込む(25d)。
かかる透かし情報の埋め込みは実空間(画素空間)で行う。今、画像データをimg(x,y),埋め込み強度をgain、透かしの埋め込まれた画像データをw(x,y)とすると、
w(x,y)=img(x,y)+gain・pi(x,y) (i=0,1,2,3)
ただし、 b=(00) の時 pi=p0 :パターン0
b=(01) の時 pi=p1 :パターン1
b=(11) の時 pi=p2 :パターン2
b=(10) の時 pi=p3 :パターン3
となる。piは(1,0)の二値であるが,平均輝度を保存するため(1/2,-1/2)とする。埋め込んだ結果、画素データがダイナミックレンジを超えてオーバーフローやアンダーフローが生じることがあるため、あらかじめ画像データに以下の線形変換を施した画像img'(x,y)にて行うこともある。
img'(x,y)=(1-gain)・img(x,y)+gain/2
この処理は後述の透かし情報を完全に除去する場合には必須であるが、除去を必要としない場合や、オーバーフローやアンダーフローの頻度が低い場合は省略しても構わない。全ブロックが終了かを判断し(26)、終了でない場合は次のブロックへ移る(27)。
w(x,y)=img(x,y)+gain・pi(x,y) (i=0,1,2,3)
ただし、 b=(00) の時 pi=p0 :パターン0
b=(01) の時 pi=p1 :パターン1
b=(11) の時 pi=p2 :パターン2
b=(10) の時 pi=p3 :パターン3
となる。piは(1,0)の二値であるが,平均輝度を保存するため(1/2,-1/2)とする。埋め込んだ結果、画素データがダイナミックレンジを超えてオーバーフローやアンダーフローが生じることがあるため、あらかじめ画像データに以下の線形変換を施した画像img'(x,y)にて行うこともある。
img'(x,y)=(1-gain)・img(x,y)+gain/2
この処理は後述の透かし情報を完全に除去する場合には必須であるが、除去を必要としない場合や、オーバーフローやアンダーフローの頻度が低い場合は省略しても構わない。全ブロックが終了かを判断し(26)、終了でない場合は次のブロックへ移る(27)。
以上のようにして、埋め込みビット列wm(i)をすべて埋め込む。埋め込みブロック数が埋め込みビット数より多い場合は、繰り返し埋め込むことで信頼度を高めることができる。この場合は文字列の先頭を示す区切りマーカが必要である。
続いて、透かし情報の抽出について図8のフローに沿って説明する。抽出作業は、埋め込み時と同様R画素×R画素のブロックに分割し(30)、ブロック単位で行われる。n番目のブロックから抽出するものとして、n=1からスタートする(31)。n番目のブロックからR画素×R画素の画像を取り出しFFT(高速フーリエ変換)を行い、スペクトル情報Wnに変換する(32)。続いて、ヒストグラムイコライゼーションによる規格化を行う(33)。これは、ブロック毎に輝度が異なるため、コントラストを向上させて識別精度を向上させることと、後述の信頼度を各ブロックで平等に評価するための規格化を図るためである。続いて後述のパターンの識別を行い(40)、識別パターンから埋め込み情報の2ビットデータを抽出する(34)。ブロックがすべて終わったか否かを判断し(35)、終了していない場合はnをn+1として次のブロックへ移る(36)。終了した場合は全ビットを取り出して、元の文字情報を復元する(37)。誤り訂正符号を用いた文字情報復元の詳細は後述する。
図9はパターン識別処理(40)の処理フローを示す。ブロック内のスペクトル情報Wnは、用意されたマスクパターンとのマッチングを行い、その出力Qiを求める(41)。マスクパターンは図10に示すようにフィルタパターンと同じで、45°づつ回転したマスク0(M0)、マスク1(M1)、マスク2(M2)、マスク3(M3)の4つが用意されている。
図9に戻って、i番目のマスクをMiとして、Wnとのマッチングの出力Qiは、
Qi=(1/Zi)ΣMi・Wn (i=0,1,2,3)
ただし, Zi=ΣMi
として求められる(42)。ここで、Σはブロック内の各画素(この場合は空間周波数に対応)について行われる。その結果、各マスクに対応した出力(Q0,Q1,Q2,Q3)が得られる。この4つの出力のうち最も大きいものをQmaxとして、
Qmax=Q0 の特、b=00
Qmax=Q1 の特、b=01
Qmax=Q2 の特、b=11
Qmax=Q3 の特、b=10
となる2ビットの透かし情報bを得る(43および44a、44b、 44c、 44d)。
図9に戻って、i番目のマスクをMiとして、Wnとのマッチングの出力Qiは、
Qi=(1/Zi)ΣMi・Wn (i=0,1,2,3)
ただし, Zi=ΣMi
として求められる(42)。ここで、Σはブロック内の各画素(この場合は空間周波数に対応)について行われる。その結果、各マスクに対応した出力(Q0,Q1,Q2,Q3)が得られる。この4つの出力のうち最も大きいものをQmaxとして、
Qmax=Q0 の特、b=00
Qmax=Q1 の特、b=01
Qmax=Q2 の特、b=11
Qmax=Q3 の特、b=10
となる2ビットの透かし情報bを得る(43および44a、44b、 44c、 44d)。
次に、Qmaxの次に大きな出力をQnextとすると、信頼度relは
rel=Qmax-Qnext
で表される。すなわちQnextがQmaxに非常に近い値の場合は誤判定の確率が高く、QmaxとQnextとの差が大きい程信頼性は高い。この差を信頼度の指標とすることができる。以上のようにして、2ビットの埋め込み情報bと信頼度relが求まる。
rel=Qmax-Qnext
で表される。すなわちQnextがQmaxに非常に近い値の場合は誤判定の確率が高く、QmaxとQnextとの差が大きい程信頼性は高い。この差を信頼度の指標とすることができる。以上のようにして、2ビットの埋め込み情報bと信頼度relが求まる。
次に誤り訂正符号について説明する。
ブロック型の電子透かし法では、埋め込み容量はブロックの数に比例する。例えば512画素×512画素の画像において、32画素×32画素のブロックで埋め込む場合(R=32)、ブロック数は256ブロックで、二値の場合256ビットの情報埋め込みが可能である。これはASCII文字では32文字に相当する。4値の場合は64文字埋め込みが可能である。電子透かしを利用した様々な用途を考えた場合、前述のように、実用上32文字以上が必要である。ここで,512画素×512画素の画像で、32文字が確実に(エラーなく)抽出できることが実用面からの目標となる。
ブロック型の電子透かし法では、埋め込み容量はブロックの数に比例する。例えば512画素×512画素の画像において、32画素×32画素のブロックで埋め込む場合(R=32)、ブロック数は256ブロックで、二値の場合256ビットの情報埋め込みが可能である。これはASCII文字では32文字に相当する。4値の場合は64文字埋め込みが可能である。電子透かしを利用した様々な用途を考えた場合、前述のように、実用上32文字以上が必要である。ここで,512画素×512画素の画像で、32文字が確実に(エラーなく)抽出できることが実用面からの目標となる。
誤り訂正符号ビットを入れると透かし情報は減少する。訂正符号が透かし情報の符号長より多くなると、32文字が確保できなってしまう。冗長ビットが多い程、誤り訂正性能は向上するが、反面、埋め込みデータの容量が減少する。このため、誤り訂正符号は、比較的少ない(codeword中1〜2ビットの)誤りが訂正できる方式を用いることにする。
誤りが生じるのは、主にパターン識別の判定時でのエラーに基づく。例えば、八値の場合、図11(a)に示す22.5°方向に向いた(001)の3ビットを埋め込んだパターンを抽出する時、エラーによりその位置から±22.5°回転した隣のパターン(b)の(000)あるいは(c)の(011)として検出することが多い。この時パターンの符号順がグレイコードになって居れば1ビットの誤りとして、誤り訂正法を用いることにより訂正が可能である。もし、グレイコードではなく、通常のバイナリーコード順で有れば(000),(001),(010),…となり、(001)を(010)と誤検出すると2ビットの誤りが生じてしまう。グレイコードは隣り合うコードのハミング距離が1であるため、1ビットの誤り訂正で済む。
エラー訂正符号は、ハミング符号、CRC符号、BCH符号RS(リード・ソロモン)符号、畳み込み符号など可能であるが、訂正符号ビット長が透かしビットを超えないように設定する。一例として、ハミング(n,k)符号で説明する。(n,k)の意味は、kビットの情報ビットに冗長ビットを付加し、全体の符号長がnビットであることを意味する。ここでk=4、n=7の場合について説明する。(7,4)符号は4ビットの情報ビットに3ビットの訂正符号(検査ビット)を組み込み7ビットの符号長として、1ビットの誤りを訂正することが出来る。
今、図12に示すように、8ビットの埋め込みデータ(c0,c1,c2,c3,c4,c5,c6,c7)を上位4ビットと下位4ビットに分割し、(c0,c1,c2,c3)および(c4,c5,c6,c7)の長さ4のベクトルとし、wordと呼ぶことにする。ハミング符号は、図13に示される行列Gをwordにかけて、長さ7のベクトル(これをcodewordと呼ぶことにする)を得る。
codeword = word・G =(c0,c1,c2,c3)・G
=(c0,c1,c2,c3,e1,e2,e3)
同様に、下位4ビットに関しても以下のようになる。
codeword =(c4,c5,c6,c7,e4,e5,e6)
この計算では、2を法とする加算が行われる。
codeword = word・G =(c0,c1,c2,c3)・G
=(c0,c1,c2,c3,e1,e2,e3)
同様に、下位4ビットに関しても以下のようになる。
codeword =(c4,c5,c6,c7,e4,e5,e6)
この計算では、2を法とする加算が行われる。
ハミング(7,4)符号により、文字列“1234…”の符号化結果を図14に示す。ASCII文字の“1”は、バイナリーでは“00110001”であり、上位4ビット(c0,c1,c2,c3)は“0011”、下位4ビット(c4,c5,c6,c7)は“0001”となる。これを、前述の式で検査ビットを求めると、(e0,e1,e2)=(001), (e3,e4,e5)=(111)となる。同様に、文字“2”,“3”,“4”…も検査ビットを求めることが出来る。
図15はこのようにして、文字列1文字目、2文字目、3文字目…に、誤り訂正符号(検査ビット)を挿入しcodeword(0),codeword(1),…を以下のように得る。
(c0,c1,c2,c3,e0,e1,e2),(c4,c5,c6,c7,e3,e4,e5),…
(c0,c1,c2,c3,e0,e1,e2),(c4,c5,c6,c7,e3,e4,e5),…
この符号列を透かし情報として2ビット単位で画像に埋め込むものとすると、埋め込みビット列は以下のようになる。
wm=(c0,c1),(c2,c3),(e0,e1),(e2,c4),(c5,c6),(c7,e3),(e4,e5)…
wm=(c0,c1),(c2,c3),(e0,e1),(e2,c4),(c5,c6),(c7,e3),(e4,e5)…
ここで、1ブロックからの抽出データに誤りが生じたとする。例えば(c0,c1)が誤りで、他のブロックからは正しく抽出できたとすると、グレイコードを利用しているため、ハミング(7,4)符号では1ビットの誤りとして定性可能である。
通常は、誤りの発生頻度は低いため1ビットの訂正で充分であるが、gainを小さな値にして埋め込んだ場合や、汚れや傷が主事た場合には、誤りの発生頻度は大きくなり、複数ブロックに連続して誤り、すなわちバーストエラーが発生する。
図16は、連続2ブロックに誤りが発生した場合で、(c0,c1)の他に(c2,c3)のブロックにも誤りが生じた場合、codeword内に2ビットの誤りが生じるため、ハミング(7,4)符号では誤りが訂正できない。そこで、図17に示すように、codeword(0)=(c0,c1,c2,c3,e0,e1,e2)、およびcodeword(1)=(c4,c5,c6,c7,e3,e4,e5),codeword(2)=(c0',c1',c2',c3',e0',e1',e2'),codeword(3)=(c4',c5',c6',c7',e3',e4',e5')を用いて、配列を変えた1次元配列とする。すなわち、まずcodeword(0)〜codeword(3)から、1ビットずつ持ってきて、以下の1次元配列に変換する。
1次元配列: c0,c4,c0',c4',c1,c5,c1',c5',c2,c6,c2',c6',c3,c7,c3',c7',e0,e3,e0',e3',e1,e4,e1',e4',e2,e5,e2', e5'…
そのうえで2ビットずつ区切った埋め込みビットwmを以下のように得る。
wm=(c0,c4),(c0',c4'),(c1,c5),(c1',c5'),(c2,c6),(c2',c6'),(c3,c7),(c3',c7'),(e0,e3),(e0',e3'),(e1,e4),(e1',e4'),(e2,e5),(e2',e5')…
とする。
1次元配列: c0,c4,c0',c4',c1,c5,c1',c5',c2,c6,c2',c6',c3,c7,c3',c7',e0,e3,e0',e3',e1,e4,e1',e4',e2,e5,e2', e5'…
そのうえで2ビットずつ区切った埋め込みビットwmを以下のように得る。
wm=(c0,c4),(c0',c4'),(c1,c5),(c1',c5'),(c2,c6),(c2',c6'),(c3,c7),(c3',c7'),(e0,e3),(e0',e3'),(e1,e4),(e1',e4'),(e2,e5),(e2',e5')…
とする。
ここで、図18に示すように、(c0,c4),(c0',c4')の連続2ブロックに誤りがあり,他のブロックは正しく抽出できたとすると、codeword(0),codeword(1),codeword(2),codeword(3)には、それぞれ誤りが1ビットのみであり、ハミング(7,4)符号で誤り訂正が可能なことが分かる。すなわち、連続2ブロックの誤り訂正が可能となる。
図19は連続3ブロックに誤りがある場合の誤り訂正を示したものである。6個のcodewordを用いて、1ビットずつ並び替え、下記の1次元配列を得る。
1次元配列:c0,c4,c0',c4',c0'',c4'',c1,c5,c1',c5',c1'',c5'',c2,c6,c2'.c6',c2'',c6'',c3,c7,c3',c7',c3'',c7'',e0,e3,e0',e3',e0'',e3'',e1,e4,e1',e4',e1'',e4''……
1次元配列:c0,c4,c0',c4',c0'',c4'',c1,c5,c1',c5',c1'',c5'',c2,c6,c2'.c6',c2'',c6'',c3,c7,c3',c7',c3'',c7'',e0,e3,e0',e3',e0'',e3'',e1,e4,e1',e4',e1'',e4''……
かかる1次元配列を2ビット毎に区切り透かし情報とする。すなわち、
wm=(c0,c4),(c0',c4'),(c0'',c4''),(c1,c5),(c1',c5'),(c1'',c5''),(c2,c6),(c2'.c6'),(c2'',c6''),(c3,c7),(c3',c7'),(c3'',c7''),(e0,e3),(e0',e3'),(e0'',e3''),(e1,e4),(e1',e4'),(e1'',e4''),……
として2ビット単位で埋め込む。連続3ブロックに誤りが生じても(ここでは、そのほかに誤りはないものと仮定している)、それらは異なるcodewordに振り分けられ、一つのcodeword内では1ビットの誤りしかなく、ハミング(7,4)符号で誤り訂正が可能である。
wm=(c0,c4),(c0',c4'),(c0'',c4''),(c1,c5),(c1',c5'),(c1'',c5''),(c2,c6),(c2'.c6'),(c2'',c6''),(c3,c7),(c3',c7'),(c3'',c7''),(e0,e3),(e0',e3'),(e0'',e3''),(e1,e4),(e1',e4'),(e1'',e4''),……
として2ビット単位で埋め込む。連続3ブロックに誤りが生じても(ここでは、そのほかに誤りはないものと仮定している)、それらは異なるcodewordに振り分けられ、一つのcodeword内では1ビットの誤りしかなく、ハミング(7,4)符号で誤り訂正が可能である。
一般に、bビットの誤りが訂正できる誤り訂正符号でM個のブロックに対するバースト誤りを訂正できるようにするためには、2×M/b個以上のcodewordが必要となる。ハミング(7,4)符号では1ビットの誤り訂正であるため、2ブロック連続のバースト誤り訂正には4codeword, 3ブロック連続のバースト誤りには6codeword必要である。
続いて、誤検出による訂正法である復号処理について説明する。図20は、まず抽出された透かし情報の配列状態を元に戻し、以下のcodeword(0),codeword(1),…を求める。
codeword(0)=(c0,c1,c2,c3,e0,e1,e2)
codeword(1)=(c4,c5,c6,c7,e3,e4,e5)…
続いて、codeword毎に、図21に示される7行3列の行列Hを乗じて、
Syndrome=(c0,c1,c2,c3,e0,e1,e2)・H
=(s0,s1,s2)
となる3ビットのsyndromeを得る。ここで、si(i=0,1,2)は2を法とする数値である。syndromeは誤りがない場合は0で、誤りがある場合はその位置を2進数で表す。そこで、
S=s0×2^2+s1×2^1+s2
となるビットに1を加え、2を法とする値に変換する。これはその位置のビットを反転させることを意味する。このようにして訂正された符号列wordは以下のようになる。
word=(c0,c1,c2,c3),(c4,c5,c6,c7),(c0',c1',c2',c3'),(c4',c5',c6',c7'),…
codeword(0)=(c0,c1,c2,c3,e0,e1,e2)
codeword(1)=(c4,c5,c6,c7,e3,e4,e5)…
続いて、codeword毎に、図21に示される7行3列の行列Hを乗じて、
Syndrome=(c0,c1,c2,c3,e0,e1,e2)・H
=(s0,s1,s2)
となる3ビットのsyndromeを得る。ここで、si(i=0,1,2)は2を法とする数値である。syndromeは誤りがない場合は0で、誤りがある場合はその位置を2進数で表す。そこで、
S=s0×2^2+s1×2^1+s2
となるビットに1を加え、2を法とする値に変換する。これはその位置のビットを反転させることを意味する。このようにして訂正された符号列wordは以下のようになる。
word=(c0,c1,c2,c3),(c4,c5,c6,c7),(c0',c1',c2',c3'),(c4',c5',c6',c7'),…
以上のようにして、連続したブロックに誤りがあっても、ハミング(7,4)符号にて無事訂正が可能である。512画素×512画素の画像データはブロックサイズR=32では256ブロックあり、各ブロックに2ビット埋め込むと全部で512ビット埋め込み可能である。ハミング(7,4)符号を行うと、ASCIIコードの1文字が14ビット必要なため、埋め込み可能な文字数は36文字になり、目標とする32文字以上が達成されている。
次に、より訂正能力の高い誤り訂正符号の場合を示す。一例としてBCH(15,7)符号を説明する。BCH符号は巡回符号の一種であり,ブロック長や誤り訂正能力を目的に応じてカスタマイズできる。BCH(15,7)符号では、長さ7のビット列に長さ8 の検出ビット列を付け加え、全体で長さ 15のビット列を送信する。15 ビット中 2ビットのビット反転があったとしても訂正可能とするものである。ASCIIコードでは最上位ビット(MSB)は常に0であるため、下位7ビットにBCH(15,7)符号を適用する。以下具体的な例を説明する。
今、文字列“h…”を埋め込む場合で説明する。“h”=(01101000)であるので、word=(1101000),…とする。検査ビットを付与すると、
codeword=(110100010000001),…となる。次に、図22に示されるように、4つの連続ブロックからの誤り訂正が可能とするため、2M/bより、4つのcodewordから1ビットずつ取り出し新たな配列に変える。その後、順次2ビットずつ取り出し透かしデータとして埋め込む。
codeword(0)=c0,c1,c2,c3,c4,c5,c6,e0,e1,e2,e3,e4,e5,e6,e7
codeword(1)=c0',c1',c2',c3',c4',c5',c6',e0',e1',e2',e3',e4',e5',e6',e7'
codeword(2)=c0'',c1'',c2'',c3'',c4'',c5'',c6'',e0'',e1'',e2'',e3'',e4'',e5'',e6'',e7''
codeword(3)=c0''',c1''',c2''',c3''',…
として、上位ビットから1ビットずつ取り出し、1次元配列のビット列を作った後、埋め込み用として2ビット毎に区切り、wmとして、画像に埋め込む。
wm=(c0,c0'),(c0'',c0'''),(c1,c1'),(c1'',c1'''),(c2,c2'),(c2'',c2'''),…
codeword=(110100010000001),…となる。次に、図22に示されるように、4つの連続ブロックからの誤り訂正が可能とするため、2M/bより、4つのcodewordから1ビットずつ取り出し新たな配列に変える。その後、順次2ビットずつ取り出し透かしデータとして埋め込む。
codeword(0)=c0,c1,c2,c3,c4,c5,c6,e0,e1,e2,e3,e4,e5,e6,e7
codeword(1)=c0',c1',c2',c3',c4',c5',c6',e0',e1',e2',e3',e4',e5',e6',e7'
codeword(2)=c0'',c1'',c2'',c3'',c4'',c5'',c6'',e0'',e1'',e2'',e3'',e4'',e5'',e6'',e7''
codeword(3)=c0''',c1''',c2''',c3''',…
として、上位ビットから1ビットずつ取り出し、1次元配列のビット列を作った後、埋め込み用として2ビット毎に区切り、wmとして、画像に埋め込む。
wm=(c0,c0'),(c0'',c0'''),(c1,c1'),(c1'',c1'''),(c2,c2'),(c2'',c2'''),…
以上のようにして埋め込むことにより、連続4ブロックのバーストエラーに対して訂正が可能となる。さらにcodeword(0)〜codeword(7)の8つのcodewordから配列変更することにより連続8ブロックのバーストエラーに対して訂正が可能である。
透かしデータの抽出は、まず埋め込まれた画像からビット抽出を行う。得られたビット配列を、前述と逆の方法で元の配列に戻し、codeword単位で切り出す。もし、codeword(0)が、下から4ビット目と10ビット目に誤りがあるとすると、codeword(0)'=(110101010001001) として得られる。ハミング符号の場合と同じようにsndromeを求め、syndromeが0の場合は誤りがない判定し、非0の場合は同様に誤りの生じた箇所を特定できる。今の場合、syndromeから下から4ビット目と10ビット目に誤りがあると判定され、そのビットをビット反転し、正しいビット列を得ることが出来る。
かかるBCH(15,7)符号では、512画素×512画素の画像データに対して、埋め込み可能な文字数は32文字でハミング(7,4)符号よりは透かし情報が多少減少するが、目標値の32文字は達成されている。ハミング符号の場合より、より長いバースト誤りに対して訂正が可能である。
以上のようにして、codewordの並び替えをすることにより、バースト誤りのように局在する誤りを、多数のcodewordのブロックへ拡散することが出来、誤りの空間分布が均一化する。その結果、各codewordでの誤り訂正機能が有効に働き、全体としての訂正効率が向上する。
一般にエラー訂正のシステムはエラー発生確率で異なる。エラーが一定の発生確率の場合、電子透かしを一定の平均信頼度で埋め込んだとするとバーストエラーが生じた場合は他の個所でのエラーは少なくなる。電子透かしの利用でエラーが発生するのは、通常、通信路や、外乱ノイズ等による影響はなく、画像の特性そのものに起因することが多い。すなわち、画像の空間周波数の分布に依存し、ランダムに発生するよりは、空間周波数の高い箇所にバースト的に発生する。ビット列の再配列はこの考えに基づいたもので、冗長ビットの少ない誤り訂正符号を用いて、できる限り多くの透かし情報を埋め込むことができる手法が優位となる。
図23はこの効果を実験で確認したもので有る。512×512のLENNA画像に、(a)はgain=0.1875で36文字埋めたもので、スペクトル特性は明瞭な楕円形状を成し、高い信頼度で36文字が正確に抽出できている。一方、(b)はgain=0.0390の低いgainでハミング(7,4)符号を用いて埋め込んだものである。スペクトル特性は不明瞭で抽出エラーが生じているが、誤り訂正により、36文字が正確に抽出できた。
以上、本発明の多値のグリーンノイズ拡散法による電子透かしにグレイコードと誤り訂正符号を用いて、正確で高精度な透かしの抽出が可能となったものである。グリーンノイズ拡散法はグリーンノイズ特性を示すドットパターンを埋め込むため,視認されにくく,高画質が保持される。そのため強く埋め込んでも画質劣化が目立たず、印刷画像にも対応が可能で、画像の編集や加工などの攻撃に対して強い耐性がある。グレイコードと誤り訂正符号を用いているため、外乱にも強く、正確に情報抽出が可能のため、印刷画像と電子データとのリンクによるさまざまなアプリケーションに有効である。
1はスキャナー、2はプリンタ、3はコンピュータシステム、4はROM, 5はRAM,6はプログラムメモリ、7はデータメモリ、8はモニター、9はキーボード、10は通信機能、11はCPU、12はインターネット、 13は画像データの配信、14は購入希望の連絡、15は秘密鍵の送付、16は著作権者のコンピュータ、17は購入者のコンピュータを表す。
Claims (2)
- 画像データをR画素×R画素(Rは2のべき乗)からなるブロックに分割し、それぞれのブロックにR画素×R画素からなるN個(N=2^m ただしmは自然数)の異なるドットパターンpi(i=0,1,2,…,N-1)を用いて透かし情報を埋め込む電子透かし法において、
ドットパターンpiはそのスペクトル分布が楕円リング形状となるグリーンノイズ特性を示し、かつ、その主軸方向が180/N度ずつ回転したパターンで、その系列が、ハミング距離が1となるグレイコードに対応するように構成し、
埋め込む文字情報は、文字列をビット列に展開した後,誤り訂正符号の付加とビット列の再配列を行い、新たなビット列を構成し、
透かし情報の埋め込みは、ブロック毎にビット列からmビットずつ取り出し、このビットに対応するドットパターンを選択し、ドットパターンの輝度値に埋め込み強度(gain)を乗じて画像データに重畳して書き込み、
透かし情報の抽出は、透かしの埋め込まれた画像データをR画素×R画素のブロックに分割し、ブロック毎にスペクトルパターンを求め、識別器によりN個のドットパターンの中から最も近いものを識別し、ビット列の配列を元に戻した後、誤り訂正を行い、埋め込まれたmビットの情報を抽出することを特徴とする電子透かし法。 - 前記誤り訂正符号によるビット列の変換および再配列は、ビット列に展開した文字列をkビット毎に区切り、訂正符号方式によりsビットの検出符号を付加し、検出ビットを加えたk+sビットをcodewordとしてcodeword列を生成し、かかるcodeword列の異なる複数のcodewordから取り出したビットで新たなビット列を構成し、かかるビット列からmビット単位で透かし埋め込みを行うことにより、透かし埋め込みブロックの連続した誤りに対して訂正が可能となることを特徴とする請求項1に記載の電子透かし法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019149648A JP2021034771A (ja) | 2019-08-19 | 2019-08-19 | 電子透かし埋め込み及び検出方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019149648A JP2021034771A (ja) | 2019-08-19 | 2019-08-19 | 電子透かし埋め込み及び検出方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021034771A true JP2021034771A (ja) | 2021-03-01 |
Family
ID=74677933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019149648A Pending JP2021034771A (ja) | 2019-08-19 | 2019-08-19 | 電子透かし埋め込み及び検出方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021034771A (ja) |
-
2019
- 2019-08-19 JP JP2019149648A patent/JP2021034771A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108537049B (zh) | 一种基于二值图像的自适应隐写算法 | |
Qi et al. | A robust content-based digital image watermarking scheme | |
US6473516B1 (en) | Large capacity steganography | |
Wang et al. | A majority-voting based watermarking scheme for color image tamper detection and recovery | |
US6807634B1 (en) | Watermarks for customer identification | |
Hadmi et al. | Perceptual image hashing | |
EP1949667A1 (en) | Marking images of text with speckle patterns | |
CN107846530A (zh) | 数字水印算法 | |
Hadmi et al. | A robust and secure perceptual hashing system based on a quantization step analysis | |
Hussan et al. | Hash-based image watermarking technique for tamper detection and localization | |
Hernández-Joaquín et al. | A secure DWT-based dual watermarking scheme for image authentication and copyright protection | |
WO2020237881A1 (zh) | 加注防伪信息的方法、装置、计算机设备及存储介质 | |
Singh et al. | An efficient self-embedding fragile watermarking scheme for image authentication with two chances for recovery capability | |
WO2000033282A1 (en) | Combining multiple messages with different characteristics for watermarking | |
Marçal et al. | A steganographic method for digital images robust to RS steganalysis | |
CN103258314A (zh) | 一种隐形编码嵌入和检测的方法 | |
JP2021034771A (ja) | 電子透かし埋め込み及び検出方法 | |
JP7207627B2 (ja) | 高耐性電子透かし法 | |
JP2018182471A (ja) | 電子透かし装置および方法 | |
CN101799869B (zh) | 一种隐形编码检测方法 | |
JP2018201134A (ja) | 電子透かし装置および方法 | |
JP2018207247A (ja) | 電子透かし装置および方法 | |
Khalaf et al. | Segmenting and hiding data randomly based on index channel | |
Hong et al. | An AMBTC authentication scheme with recoverability using matrix encoding and side match | |
Kang et al. | Watermarking based on the difference of discrete cosine transform coefficients and an error-correcting code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220805 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230802 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230911 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20240326 |