【発明の詳細な説明】
データ組込み方法
発明の分野
本発明は、一般には数値データのデジタル操作に、そして特に外部データを既
存のデータフィールドに組込む方法に関するものである。こ本発明は米国エネル
ギー省によって裁定された契約No.W−7405−ENG−36のもとで政府援助でなされ
たものである。政府は本発明に関してある一定の権利を所有する。
デジタル形式でデータを用いることにより世界中の通信に革命が起きている。
このデジタル通信の多くは、線路、マイクロ波及び光学繊維媒体を介して行われ
ている。最近では、データは、陸地、海を渡ったり、衛星間で完全に伝送され得
る。軌道を回っている衛星により地球上の任意の二点間で又は宇宙空間内で実質
的に通信を行うことができる。
多くの場合、一次データに加えて特殊な二次データを伝送するのが有利であり
得る。二次データはテレビジョン番組の字幕表示、写真と組合さった認定情報又
はファクシミリ伝送での変換情報の伝送に関するものであり得る。このような技
術は一次データの出所及び信憑性を照合するデジタル標示として使用するのにも
適している。
デジタル形式のデータは、広帯域通信チャンネルを用いて通常の仕方で伝送さ
れる。デジタル形式での通信は、絶対データ忠実度を提供するエラー修正ソフト
ウエア及
びハードウエアプロトコルによって大いに容易となる。これらの通信システムに
よって、一つの場所から伝送されたデジタルビット流は他の不変の場所で確実に
受信される。
しかしながら、ほとんどのデジタルデータソースは冗長な情報及び固有ノイズ
を含んでいる。一例としては、写真、電子アートのオリジナルワーク、又はデジ
タル化したビデオ信号を走査することによって発生されたデジタルイメージがあ
る。このようなイメージの走査又はデジタル発生プロセスにおいては、デジタル
表現にノイズが導入される。加えて、写真イメージ及び確認カードのようなイメ
ージソースには、フィルムの粒状構造、光学収差、及び対象物の動きにより生じ
るノイズが含まれている。アートワークはブラシ行程、画生地、芸術家ライセン
スによって導入されるノイズを含んでいる。
デジタル強度の任意の特定の数値がイメージの多くの異なった部分に存在して
いるので、デジタルイメージデータに冗長は固有のものである。例えば、木、空
、人または他の物体のイメージには所与グレーレベルが存在し得る。任意のデジ
タルイメージにおいては、同一又は同様な数値画素すなわち画素値は種々のイメ
ージ内容を表し得る。このことは、イメージの種々の部分における出現頻度及び
同様な数値をもつ画素がイメージの出現又は画素値の統計上の出現頻度を顕著に
変えることなく自由に交換され得ることを意味している。
また、デジタル情報を表す数値の流れに同じ値が一度以上存在する時には、ほ
とんどの形式のデジタル情報に冗長が生じる。二色すなわち白黒FAXイメージの
場合、ノイズは黒又は白画素値の有無から成る。黒及び白BITMAP(登録商標)フ
ォーマットに走査されたドキュメントは連続した黒(1)及び白(0)値のラン
を含んでいる。これらのイメージにおけるノイズは、画素ランの長さを変動させ
ることになる。同じ値のランは種々の列における黒及び白イメージの多くの部分
に存在する。これにより、本発明はファクシミリ伝送にも応用できる。
デジタルデータにノイズ及び冗長画素情報が存在していることにより、デジタ
ルデータのノイズ成分に付加的な情報をはめ込むプロセスが可能となる。最近の
デジタル通信システムの忠実度により、はめ込まれた情報は受信機への伝送中保
存され、受信機で取り出され得る。このようにして情報を組込むことは、伝送に
ひつような帯域幅を増大させない。その理由は、はめ込まれたデータがホストデ
ータのノイズ成分に存在するからである。認証されてない者によって検知される
ことなしに、元のデータの冗長ノイズ成分に意義のある新たな情報を伝送するこ
とができる。
従って、本発明の目的はデジタル情報が実質的に変化されないようにデジタル
情報流れにデータを組込む装置及び方法を提供することにある。
本発明の別の目的は、認証されてない者が通常のデジ
タルデータに組込まれた情報にアクセスするのを阻止する装置及び方法を提供す
ることにある。
本発明の別の目的、利点及び新規な特徴は一部以下の説明から明らかとなり、
また一部は以下の記載を考察することにより当業者に明らかとなり、あるいは発
明の実施によって理解され得る。本発明の目的及び利点は、特に請求の範囲に定
義した装置及び組合わせによって実現、達成され得る。
発明の背景
本発明の別の目的、利点及び新規な特徴は一部以下の説明から明らかとなり、
また一部は以下の記載を考察することにより当業者に明らかとなり、あるいは発
明の実施によって理解され得る。本発明の目的及び利点は、特に請求の範囲に定
義した装置及び組合わせによって実現、達成され得る。
発明の概要
本発明の目的に従って、数値をもつ複数の要素から成りかつノイズ成分を含ん
だホストデータのデジタル表示を形成すること;一連のビットの形態の補助デー
タのデジタル表示を形成すること;ホストデータのデジタル表示のノイズ成分を
評価すること;ホストデータの要素をノイズ成分と比較して上記ノイズ成分の値
以下異なる数値をもつホスト要素のペアを決めること;要素の個々の
値を上記要素のペアからの実質的に等しい値と交換して、補助データのビットの
シーケンスに相応した補助データの個々のビット値を組み込むこと、及びホスト
データに組込まれた補助データをもつホストデータをファイルとして出力するこ
とから成るホストデータに補助データを組み込む方法が提供される。
さらに、本発明の目的に従って、組込まれた補助データを表し、ホストデータ
を確認できるビットシーケンスをホストデータから取り出すこと;ノイズ成分の
値以下異なりかつ補助データのビット値に相応するホストデータ・要素ペアを分
析すること;ペア値に相応した補助データビットシーケンスを特定すること;及
び補助データをファイルとして取り出すことから成るノイズ成分を含んだホスト
データから組込まれた補助データを取り出す方法が提供される。
図面の簡単な説明
以下、添付図面及び明細書の説明により本発明の実施例について説明し、本発
明の本質について説明する。
第1図は、組み込み、及びホストからのデータの取り出しに用いられる方法を
説明するブロック図である。
第2図は、近似値を有するホストデータペアを決定し、RGB構成要素をHS
I構成要素に変換するために用いられるコンピュータコードのリストの一部であ
る。
第3図は、重複したホストデータペアを除去するため
に用いられるコンピュータコードのリストの一部である。
第4図は、トゥルーカラー画像のために、ホストデータヒストグラムにおける
組み込み効果を最小限に抑える、ホストデータペアの出現頻度(frequency of oc
currence)における制約条件を導入するためのコンピュータコードのリストの一
部である。
第5図は、ヘッダ情報、補助ビットストリーム、及びホストデータファイルに
おけるデータを処理するために必要な重要情報を含む補助データをホストデータ
に実際の組み込むことを可能にするコンピュータコードのリストの一部である。
第6図は、二色ファクシミリホストデータの画素列におけるラン長を解析する
コンピュータコードのリストの一部である。
第7図は、パケットスタートデータ列における第1画素を同一カラム数でスタ
ートさせるためのコンピュータコードのリストの一部である。列における第1画
素の場所は、データパケットのスタートにフラグ付けする。
第8図は、ファクシミリ伝送のような二色ホスト画像にデータを組み込むコン
ピュータコードのリストの一部である。
詳細な説明
本発明は、伝送や画像の意味や内容を実物のように認識することなしに、デジ
タル伝送又は画像にデータを組
み込むことを可能にする。これは、デジタルホストデータを所望の組込情報又は
移植情報に従って、一括して再順序付けする本発明の技術により可能にされる。
ホストデータ画像例は、マイクロソフト(商標)のBITMAP(商標)(.B
MP)フォーマットにより表され、結果の画像は、容易に認識できる情報を持た
ない組込補助情報を含む。
マイクロソフト(商標)のBITMAP(商標)画像フォーマットは、トゥル
ーカラー、カラーパレット、階調表示、又は白黒表示における画像をサポートす
るパブリックドメインフォーマットである。トゥルーカラー画像は、画素要素毎
に24ビットを有し、画素要素の各バイトが、赤、緑、青(RGB)カラー成分
の強度を表す。カラーパレット画像は、許可RGB値のテーブルを含む。カラー
パレットにおける画素値は、このテーブルに対するインデックスである。階調表
示画像は、画素値の数値強度を与える。白黒表示は、二つの予想画素値の一方に
0又は1を割り当てる。本発明は、以下の説明を参照することによってBITM
AP(商標)画像形式に関連して理解され得る。
最も感覚的に得られる情報がデジタル形式で表示される時になって、ビデオで
あろうと、写真であろうと、実験測量であろうと、又はファクシミリ伝送であろ
うと、デジタルデータは、ノイズ及び外部情報を伝達するために操作され得る冗
長情報を本質的に備えている。本発明
の使用を通して、外部情報は、データの許容及び可能受信器によって容易に抽出
され得る。
デジタル画像データにおける冗長は、画像の多数の異なる部分にデジタル強度
の特有の数値が存在する時に生じる。木、空、雲、人々、及び他の対象物の表現
に一定の階調表示が存在するので、冗長は画像内に普通に発見される。デジタル
画像におけるノイズの存在は、映像要素や画素の数値がわずかに変化することを
許容する。8ビットのデジタルデータに対する、画素数値範囲は、0〜255で
ある。同じ又は近似した数値を持つ複数の画素が画像内容の種類を表す時、画像
の種々の位置における多数の値が、自由に相互交換され得る。特別な画素値の発
生の画像出現及び統計的頻度は、数値が近い画素の空間位置の相互交換による影
響を若干受ける。
本発明は、オリジナルデジタルデータ(以下の説明で「ホスト」データとして
参照する)を用いて、第一にホストデータをデジタル形式に変換し、必要に応じ
て、その後、画像を発生する画素数値の確率密度を示す画像ヒストグラムを生成
する。画像において特有の画素値が発生する回数は、数値に対してプロットされ
る。8ビットデジタルデータに対する画素値範囲は0〜255である。もちろん
、画像におけるノイズのレベルはデータ源に依存し、写真、アートワーク、デジ
タルオーディオ、ビデオ、及びファクシミリ伝送の中で種々のノイズレベルが当
然生じると思われる。
ホストデータへの補助データの実際の組み込みは、3つの行程から成り、基本
的なステップは第1図に説明されている。第1に、ホストデータのノイズ成分の
評価が決められ、かつ、ホストデータにおける数値のペアを認識するために、ホ
ストデータ数値のヒストグラムの分析との組合せに用いられる。前記ホストデー
タにおける数値のペアは、ほぼ同じ統計的頻度で出現し、ノイズ成分の値より小
さい差がある。第2に、ペア値の出現位置を調節して、補助情報のビットストリ
ームを組み込む。第3に、ホストデータにおいて認識された数値のペアを用いて
、組込データの取り出し対するキーを生成する。
組込データの取り出しは、この処理を反転させる。組込位相で画像中に配置さ
れたキーは、組込補助情報を含むペア値を指定する。取り出しは、公開されたペ
ア値を用いて、キーの中に与えられたペア値を有する画素の位置に従って補助デ
ータを再生成することから成る。キーデータは始めに、ヘッダ情報を取り出すた
めに使用される。ヘッダ情報は、補助データのファイル長及びファイル名を決め
、キーを有効にする。組込情報を含む画像が変更されたら、ヘッダ情報はデータ
を正確に取り出さない。しかし、取り出しが成功すると、出力ファイルにおける
補助データを正確に再生成する。
本発明によるデータ組込の原理は、付加されるべき外部データの値を記号化す
るために、一定のホストデータ値の再配列を必要とする。本発明を説明するに当
たって、
各ホストデータサンプルに対して0〜255ビットの間の範囲の値を有する8ビ
ットのバイナリ情報によって表されるホストデータセットについて考察される。
さらに、信号Sに対するノイズ値Nは、N=±S/10によって与えられるか、
又は信号値の約10%で与えられる。多数のデータに対して、ノイズ成分は、こ
の説明で10%値を使用するように、一定の値又は割合によって近似され得る。
ホストデータにおける二つの値di及びdjは、次式10の関係が成り立つ場合
、ノイズ値の範囲内に入る。
|di−dj|=ε≦N ……10
一定の値diの出現頻度又はヒストグラム値は、f(di)で表される。式1
0の条件に合ったデータ値、及び出現頻度f(di)−f(dj)<δ(ここで
δは統計的同等に課される公差である)でホストデータにおいて出現するデータ
値は、組込に使用する候補となる。値di及びdjは一対のデータ値Pkを構成
する。ホストデータセットの中にはk=0,1,2,…Npのようなペアがあり
、各ペアに対する組込ビットMkの総数は次式20で与えられる。
ここで、i及びjの総量は各データ値に対するデータセットf(di)及びf
(dj)の中の出現頻度の限界まで及ぶ。
ここでは、第2図を参照する。第2図には、コンピュータコードのリストの一
部がC言語で印字されている。式10におけるホストデータ画素ペア値di及び
djの決定は、第2図にリストアップされたコードを通して実行される。第2図
では、これら8ビット値は、カラーパレットテーブルのインデックスとして説明
されている。従って、式10に示された比較は、パレットの対応する色間の比較
のために必要とされる。カラーパレットへの記入は、赤、緑、青(RGB)色成
分値であり、各々0〜255の範囲内にある。
BITMAP(商標)画像に使用されるフォーマットで補足情報が必要な場合
、二つの資料が参照されるべきである。一方の資料は、1994年にニューヨー
ク州で発行されたJ.Levine著の「Programming for Graphics Files」(J.Wiliey
& Sons)という本である。他方の使用は、1994年発行の「Dr.Dobb's Journal
,Vol 19」の第18頁の、M.Luse著の「The BMP Fromat」という技術論文である
。
第2図におけるコードフラグメントは、パレットの色の数を超えるループを有
するライン1から始まる。ループインデックスiは、式10によって確立した条
件を満たすカラー入力のペアを認識するための連続した全ての
他の入力に対する各パレットカラーをテストするために使用される。iループに
おいて認識された各カラーは、その後、他のインデックスjを使用するライン1
6から始まる第2ループによってパレットにおける全て他のカラーに対してテス
トされる。ライン7は色の代わりに階調に対するパレットを有する画像の調節を
提供している。幾つかの階調フォーマットが同様に16カラーテーブルを含んで
いるとはいえ、階調画像のために、RGB成分は、各パレット入力に対して同一
になる。
式10に示された比較は、赤、緑、青(RGB)カラー成分値を、対応する色
調、彩度、及び強度(HSI)カラー成分に変換することによって得られる。ラ
イン12では、分離ルーチンrgbhis()を使用して、この変換を達成する。ライン
20は、jループにおけるRGBカラー成分値を、HSIデータ構造成分に変換
し、ライン21は、HSIシステムにおける色差を形成する。その後、ライン2
4は式10で必要とされるテストを実行する。色差が固定ノイズ値(第2図のリ
ストにおけるCOLOR_NOISE=10)より小さい場合、強度差のテストを行い、二つの
パレット入力がノイズ値より小さい差として許容できるかどうかを決める。候補
ペア値としての入力を受け入れる前に、二つの付加的制約が課せられる。第1に
、テスト値(i−ループ)と、全ての他の値(j−ループ)との間の最小色差に
する色の差分が必要とされる。第2に、選択されたペアの数(k)は、画素の単
一
列内に供給されるべきペア値キーのために、画像における画素の列のカラムの数
の半分より小さくなければならない。これは、アルゴリズミック制約であり、本
発明では必要とされない。
データ構築アレイpair[]は、候補ペア(i,j)の値、及びそれらの総合出現頻度
Mkを保持するために使用される。画像が階調表示パレットの場合、ライン35
のテストが、強制的に二つのパレット入力の強度のみを比較するために使用され
る。階調表示画像は、カラーパレットを構成するためのRGB−HSI変換を必
要としない。
彩度は、通常カラー画像の中では目立たないので、本発明の組込方法は、カラ
ーパレット入力の彩度成分の差を無視する。色調成分及び強度成分だけは、パレ
ットペア値を決定するために固定ノイズ限界の範囲に収まるよう制約される。
第2図にリストアップされたコードによって見つけられた画素ペア値は、通常
、冗長値を含む。同じ画素値iは幾つかの異なるペア結合で見つけられる。画素
値の各ペアの組合せが唯一である必要があるために、多重ペアは、同じパレット
入力を含み得ないので、幾つかのペアを除去する必要がある。式10の条件を当
てはめることによって得られるペアの数は、ライン51の変数no_pairsに記憶さ
れる。
第3図を参照すると、リストアップされたコードフラグメントにより分離ルー
チンによって重複ペアを消去す
る方法が説明されている。第1に、画像のヒストグラムを用いて、上記式20で
必要な時に各ペアにおける出現の総数が計算される。ライン1は、各ペアに対す
る値Mkを計算するために使用されるi−ループが示されている。次に、ペアは
、ライン5の”pair[].countデータ構築項”のオーダを減少させるに従って記憶
される。それより下のラインにおける重複の消去は、頻度値Mkの最も大きい総
数を有するペアPkを保持する。ライン10及びそれ以下のラインは、このコー
ドフラグメントによって見つけられた唯一の画素ペアを使用するホストデータ内
に組み込まれ得るバイトの総数を計算する。
値Mkのオーダを減少させるペア値の割り出すことにより、特有の補助データ
ストリームを組み込むために必要なペアの数を最小限に抑えられる。しかし、ペ
ア値をランダムなオーダで配置すると、組込データの安全は非常に高くなる。ペ
ア値オーダのランダム化は本発明の一部である。
これは、整数インデックス”pts[k].i,k=0,1,2,……,no_pairs”及びpts[k].
gamma=δ0,δ1,……δx,……δno_pairs,(ここで、δX値はランダムである
。)”に対するエントリを有するデータ構造を計算することによってペア値をラ
ンダムオーダに再整列することで達成される。昇オーダにランダム値を入れるた
めにデータ構造pts[]を分類することで、インデックス値はランダムにされる。
ランダムインデックス値は、上記したように計
算されたペア値と共に使用され、ランダムペア値オーダリングを与えるためのテ
ーブルを再オーダする。
パレットフォーマット画像用に記述されたアルゴリズムは、出現頻度の特性を
考慮せずに、画素値を操作することを許容する。ここで、第4図を参照すると、
図面には他のコードフラグメントがリストアップされている。このコードフラグ
メントでは、トゥルーカラー画像のために、ホストデータヒストグラムにおける
組込効果を最小限に抑える制約が出現頻度に導入されている。
トゥルーカラー画像は、赤、緑、及び青画像成分の各々の個々の8ビット階層
表示画像から成る。トゥルーカラー画像はカラーパレットを持たない。三つの8
ビット構成要素の予想組合せは、ほぼ1600万色を与える。本発明は、各RG
B色成分画像を個々に処理することにより、トゥルーカラー画像にデータを組み
込む。従って、合成画像色上への組み込みの効果は、個々の色の強度成分のノイ
ズ値の範囲内にある。
第4図では、ライン2からスタートするip−ループは色水準(ip=0,1,2 for
R,G,B)を参照している。各数値(0〜255)の出現頻度は、ライン7における
数量ip*256によってオフセットされる色水準ヒストグラムアレイ hist_vaues[]
によって与えられる。変数fvalue[]は、色成分ipに対するフローティングポイン
トヒストグラム値を保持する。ライン11は、出現頻度にほとんど同じに選択さ
れたペアを制約するためのループを
開始する。ノイズ限界の範囲内の画素強度RANGEは、統計的頻度の比較のために
選択される。統計的一致に対する公差δは、ライン17で5%に固定される。こ
の公差は、個々のアプリケーションに合わせて調整され得る。
全ての予想値のノイズの制約及び統計的頻度に対するテストをした後、見つけ
られたペアが、ライン27で記憶され、重複ペアは除去され、ライン31で開始
インデックスが増大され、探索が続けられる。再び、ペアの最大数は、i及びj
ペア値が画像列における画素の数の半分より小さくなければならないアルゴリズ
ミック制約によりセットされる。パレットフォーマット画像を用いる時、発明の
安全はペア値エントリのランダム化を含む。
統計学的制約を適用することにより、補助データの組み込みのホスト画像効果
は最小限に抑えられる。公差δが0にセットされた場合、選択された各ペアは、
強度分離におけるノイズ値より小さく、同じ統計的頻度を正確に発生させるデー
タ値を含む。第4図のコードフラグメントのように公差をδ=5%にセットする
ことにより、頻度が近い画素ペアを容認することが可能になり、同時に、ホスト
データの統計的特性のほとんどを保ったままにすることが可能になる。同じ出現
頻度を正確に要求することにより少数のペアが見つけられ得る。
一組のホストデータヘ補助データを実際に組み込むことは、冗長数値の出現の
オーダを再配置することから成る。分析により見つけられたホストデータ値のペ
アは、
ホストデータ内への補助データのビットストリームを記号化するために使用され
る画素値となる。組み込みに用いられる数値はホストデータ内で既に発生してい
る値であることを理解することが重要である。本発明の組込方法は、ホストデー
タ内の数値の数又は数量を変更しない。
本発明の組込方法では、ホストデータは連続的に処理される。ホストデータを
通る始めの行程で、各値を検査し、かつ、画素ペア値の組合せに対するテストを
行う。ホストデータ中のマッチングした値はデータ構造値pair[k].i(k=0,1,2,
……Np)に初期化される。このステップは、ホストBITMAP(商標)画像(
第1図)を、補助データ内のゼロに対応するペア値に初期化する。補助データを
通る第2パスは、組み込むべきデータの連続ビットを検査し、ホストデータ成分
のペア値を、組み込むべき補助ビット値に従って値i及びjにセットする。組み
込まれるビットストリームがランダムな場合、組込処理が終了した後、ホストデ
ータペア値i及びjは、ホスト画像中に同じ頻度で出現する。
第5図は、ヘッダ情報中のデータを処理するために必要な重要情報、補助ビッ
トストリーム、及びホストデータファイルを算入する組み込みを実際に行うコー
ドフラグメントを説明している。ライン1〜12は、メモリの割り当てを行い、
変数を初期化する。組み込むべきヘッダ及びビットストリームデータは、「デー
タ画像(data-image)」で示され、アレイdata-row[]中に記憶
される。ホストデータは「画像データ(image-data)」で示される。
インデックスliは、ライン12で始まるループで使用され、データ画像中の
バイト位置をカウントする。ヘッダ情報がデータ画像バイトループの前に組み込
まれているので、ループはli=512で始まる。ライン14は、ヘッダ情報を
有するdata_row[]をロードするためのテストを含む。ライン20はデータ画像フ
ァイルからのバイトtape5を有するdata-row[]をロードするためのテストを含む
。
ライン30は、データ画像バイトの範囲内のビットに対するループをスタート
する。変数bitindex=(0,1,2,……,7)は、変数d_inrowによってインデックスされ
たデータ画像バイトdata_row[d_inrow]の範囲内のビット位置をカウントする。
変数ljはホスト画像中にバイト(画素)をインデックスする。変数inrowは画像
データバッファimage_row[inrow]をインデックスする。ライン32は、組み込ま
れたデータ(画素の完全な列)の画像データファイルへの出力をテストし、ライ
ン40は、画像データを通るパスの実現をテストする。各画素ペアpair[k](k=0
,1,2,…,Np)に対して一つの画像データのパスが形成される。
ライン47では、ペアインデックスは増大される。組み込みに使用されるホス
トデータ画素の作業ペア値を保持するために、仮ペアデータ構造変数pvalueが用
いら
れる。ライン60は、画像データバッファimage_rowを新たにする。
組み込みテストはライン72で行われる。画像データバッフアimage_row[inro
w]の内容が、ゼロのデータ画像ビットを表すペア値に等しい場合、変更はなされ
ず、画像データ値はpvalue.iを保持する。しかし、ビットストリーム値が1の場
合、画像データ値は、pvalue.jと等しくなるまで変化される。ライン84は、画
像データ値が組み込まれたペア値pvalue.iと等しくない場合をテストする。この
場合、データ画像がまだ組み込まれてないので、ビットインデックス変数は減少
され、画像データインデックスは、次のホストデータ値を検査するために増大さ
れる。
組込データの取り出しは、補助データ画像ビットストリームを組み込むために
用いられる処理を逆にすることによって行われる。組込画像データセットのヒス
トグラム分析は、個々の統計的頻度が組込処理によってチャージされない場合の
み、取り出しに対する候補ペアを明らかにする。第2図〜第5図のリストでは、
統計学的頻度は、組込処理によって僅かにチャージされる。組み込みに使用され
るペアテーブルは、オリジナル画像データを分析することによって再形成される
が、通常、組み込まれた画像データからは正確には再現できない。
加えて、上述のように、本発明は、ペア値のオーダをランダムにし、それによ
り、ペア値オーダを予め知るこ
となしに、組込データを抽出するために必要な分析の量を非常に増大させる。
前述のように、組み込みのために選択された、順序つけされたペアは、画像デ
ータからデータ画像を取り出すための「キー」を構成する。第2図から第5図に
示されたリストは、どのようにして組込分析がホストデータ内のノイズ成分の統
計的特性を数値のペアのテーブルまで減少させるかを示している。キーペアは組
込データの取り出しのために必要とされるが、それらは組込処理が終了した後の
ホストデータの分析によって生成される。しかし、キーはオリジナル、即ち、変
更されていないホストデータから再生成され得る。従って、データ組み込みは、
一回限りの暗号化手法(one-time-pad encryption)と似ており、組込ビットスト
リームに対する非常に高い安全性を提供する。
公知のペアテーブルによって、取り出しは画素値を連続的にテストして、ヘッ
ダ情報及びデータ画像に対する出力ビットストリームを再生成することから成る
。本発明では、ペアテーブルは取り出し処理に利用できるホスト画像データにイ
ンサートされる。任意に、本発明は、ペアテーブルを取り去り、それを分離ファ
イルに記憶させることができる。特に、ペアテーブルは、少数のバイトからおそ
らく100バイトの範囲でサイズが変動する。最大制限テーブルサイズは画素に
おける列長の半分に制限される。ペアテーブルを外すと、組込データは、オリ
ジナルホスト画像データが使用できない間は確保される。従って、組込方法は、
一回限りの暗号化手法に近い安全性を与える。
ペアテーブルを保護する別の方法は、キーを除去し、公開鍵アルゴリズム又は
他の暗号化処理を用いて暗号化することである。本発明は、暗号化したキーをホ
スト画像データの中に置くことを許容する。
ホストの中に組み込まれた補助データは、ビットストリームを暗号化するため
に使用される画素値の統計的出現頻度を僅かに変更する。圧縮又は暗号化された
組込データは優秀な疑似ランダム補助ビットストリームである。従って、疑似ラ
ンダム特性を有する組込補助データは、組込ペアの中の値の平均出現頻度の変化
を最小限に抑える。圧縮又は暗号化されていない組込キャラクタデータは、本発
明により提供された安全性を著しく低下させる。
組込データの存在は、組込画像データの分析によっては簡単には見つけられな
い。暗号化方法として見た時、データ組込は画像データを有するデータ画像を巻
き込む。組み込まれたオリジナルデータ画像ビットストリームは平文を表す。ホ
ストと組込データとの組合せは、ホストのノイズ構成要素中に暗号文を植え込む
。しかし、ホスト搬送情報の内容及び意味を本発明によって保護しているので、
暗号文の存在は明らかにされない。本発明によるデータ組込はエンクリプション
とはことなり、明らかな暗号文を生成しない。
これらなじみのない文言「平文」及び「暗号文」は、例えば、1994年にニ
ューヨーク州ニューヨーク市のC.J.Wiley&Sonsから出版されたB
.シュナイアー著の「Applied Cryptography Protocols,Algorithms,and Sour
ce Code」が参照され得る。この参照文献はここに含まれる。
上述したように、本発明は、補助データをファクシミリ(FAX)データに組
み込むのに有用である。画像ホストデータへの補助情報の組込に関する前の説明
では、ノイズ成分は画素データの数値中の不安定要素から、又、カラーパレット
のカラーの値の不安定要素から発生する。
ファクシミリ送信機は実際、白黒BITMAP(商標)データから成る画像で
あり、即ち、画像画素からのデータは、各々白と黒を示すバイナリ値(0,1)であ
り、また、ノイズ効果はデータに画素の付加するか、又はデータから画素を除去
する。本発明は、その結果、ファクシミリ白黒BITMAP(商標)画像を2色
BITMAP(商標)になるように処理する。
一般的な事務用ファックス装置は走査とデジタルハードウェアとソフトウェア
の組み合わせであり、電話回線を介して画像が送信することが必要とされる。画
像は、特別なモデムプロトコールを利用して送信され、その特徴は多くの情報源
に利用される。その様な情報源において、EXPモデムの使用説明書(UM,1993)
には、ラップトップコンピュータに利用のため設計されたファックス
(データ)モデムが示されている。ファックス送信機は、コンピューターの間に
設置され、デジタル通信機であり、データは従ってデータの組み込みに適してい
る。
画像に組み込む事に関して以前に検討されていたように、処理手段を組み込ん
でいるファックスは二つの段階、分析と組み込みをさせる。2色BITMAP(
商標)ファックスの場合、画像ノイズは、画像から黒の画素の付加または、取り
除きのいずれかができる。このため、画素のように連続するラン長は変化し得る
。
走査プロセスは、二色BITMAP(商標)画像で連続する黒画素のランによ
る、情報源コピーの黒ラインを示している。走査解像度と白黒BITMAP(商
標)フォーマットのための原データの変換が不確実なため、ランの画素数は少な
くとも±1の間で確実ではない/の誤差がある。
二色BITMAP(商標)データに組み込む供給データは、ここでは例えば連
続的な画素のラン実数値または、ヒストグラム実数値の統計的な頻度を検出する
ためのBITMAP(商標)を分析することから成る。本発明の組み込みプロセ
スは、補助データのビットストリームの内容に関する、(0,+1)画素のラン長を変
える。組み込みに適したホストデータはどれも、ファックス送信機用のサイズに
拡大、縮小する二色BITMAP(商標)画像である。ファックス送信機のハー
ドコピーは、二色BITMAP(商標)の発生が走査され得または、画像は
コンピューターのファックスプリンタードライブソフトウェアの使用によって作
られ得る。
ファックス組み込みプロセスは、画素の各列でラン長の分析から開始する。こ
のステップの実行は、第6図にコードフラグメントによって示されている。ルー
チンrowstatas()への引数は、画素毎に1バイトで、1または0のいずれかの値
から成る、列を成すポインタへの画素データであり、データ列の(画素)列の数
の、統計的な頻度のアレイに対するポインタ、及び内部プログラムオプション用
のフラグである。オプションフラグは、組み込まれる補助ビットストリームのブ
ロックまたは、パケットの大きさである。オプションフラグはライン9でテスト
され、ルーチンpocket_col()はポジティブオプションフラグ用に利用される。po
cket_col()ルーチンは第7図に一覧されており、データ列の第1画素が同じ列数
で起動を確実にする。列状の第1画素の配置は、更に下記されるように、データ
パケットの起動にフラグ付けする。
ライン12はループを開始して、データ列内の画素の実行を調べる。定義値MI
NRUNとMAXRUNとの間の実行はループによって調べられる。jループ、ライン15
のテストは、画素の実行を位置づけ、変数kを実行開始のインデックスにセット
する。ライン21のテストは、列の長さよりも短い長さiを有する画素のブロッ
クのみを選択する。ライン22のループは画素実行を移動させて、一
時的にアレイblock[]に記憶させる。
ライン24、25におけるテストは、iループの現在値によって要求されるも
の以外の実行長さを有するブロックを拒否する。組込体系は組込をするために長
さiのブロックを選択して、画素を追加して長さi+1を作成する。これにより実行
が、組込補助情報のビットストリームに従ってiまたはi+1の非ゼロ画素値のど
ちらかを有することができる。変数block[]アレイ内に記憶された実行が少なく
とも2つのゼロで終了しなければ、長さi+1の実行とコードがNEXTに分岐して次
に見つかった実行を調べるため、これは受け入れられない。
ライン28は、実行内の画素の数を数えるためにループを開始する。数えられ
た画素の数は、ライン31内の画素により増加され、追加された画素が実行長さ
をi+1と同じ長さにするようにアカウントする。ライン33は、選択された実行
が正確な長さを有することを確実にするテストを有している。実行長さインデッ
クスiのhistogram[]アレイは、実行の出現頻度を記録するべく増加される。実行
のデータ列バイトは位置付けされた実行を識別するために使用するレターコード
と共に、ライン36のループによりフラグ付けされる。このフラグ付け技術は、
組込コードがビットストリームの組込のために使用される実行を容易に識別する
。このルーチンからの出口において、データ列バイトはビットストリームを組込
むために使用できる画素位置を識別するレターコー
ドと共にフラグ付けされた実行を有する。復帰値は、データ列に位置付けされた
実行の数である。ゼロの復帰は、MINRUNとMAXRUNの定義された限界内の実行を表
示しない。
ファックスモデムプロトコルは速度を強調するので、エラー訂正を含まない。
このためファックス伝送は、電話線の質と伝送の速度によって、ドロップアウト
、衝撃ノイズ、失われたデータを必要とする。組込を成功させるために、本発明
は画像データの或る部分の可能損失を考慮しなければならない。この達成には、
ヘッダと補助データを組込むためにモデムブロックプロトコルの変化が使用され
る。ブロックまたはパケットに組込まれたデータと共に2色の画像が伝送媒質と
して扱われ、パケットスタートフラグとパリティーチェックを提供する。同一カ
ラムの第一画素を有する画像列により、パケットスタートの信号が送られる。パ
ケットは、ブロック内のビットの数が抽出されると終了する。また、崩壊したパ
ケットの場合は、パケットスタートフラグが行内に位置づけされると終了する。
パリティーのチェックサムとパケット順序数は、パケット内のデータと共に組込
まれる。この方法に従えば、ファックス伝送のエラーは組込データのいくらか(
全部ではない)を損失する可能性がある。
伝送エラーのために損失したデータの量は、ソース画像の画素の密度、ドロッ
プアウトの長さに依存する。パケット1つにつき20バイト使用すると、標準テ
キストの伝送内の大きなドロップアウトが、損失データの1つ
またはそれ以上のパケットになる。一般に発明が成功するかどうかは、ファック
スされたホスト画像情報の明視性による。
次に図7を参照すると、各パケットのスタートをフラグ付けする二色BITMAP(
商標)ラインをイニシャライズするために必要なステップのリストが示されてい
る。二色画像の各ラインは、非ゼロ値始めを同一カラム(パケットスタート)ま
たは奇数カラム(パケット継続)内に有している。
図7に示すように、ライン4はデータ列内の画素数にわたってループを開始す
る。ファックス画像においてゼロ(0)画素値は黒スペースを表し、一(1)画
素値は白スペースを表す。ライン5は列のデータ内の第一黒スペースを位置付け
る。変数packet_sizeが正である場合、カラムインデックスが同一になるべくテ
ストされ、画素が白スペースにされる。変数packet_sizeが負である場合は、ル
ーチンが、変更することなくデータ列フラグのインジケータへと復帰する。変数
packet_sizeがゼロより大きい場合、第一データ列要素が白スペースとしてフラ
グ付けされる。ライン11は継続列を表示する、変数packet_size=0であるケー
スを処理する。継続列の場合には、第一データ列要素は黒スペースにされる。ラ
イン17〜20のサブルーチンにより戻された値は、調べられた画素列の性質を
表す。
図8に示すコードフラグメントは、二色BITMAP(商標)
ファックス画像への補助データ組込を提供する。一列内の画素は、ランの長さを
表示するために分析され、レターコードと共にフラグ付けされたデータ列の内容
を調べることにより、上述のような方法で処理される。ライン1〜49は、二色
BITMAP(商標)内の画素インデックスljにわたる大きなループ(図示せず)の一
部である。ライン1〜26は二色BITMAP(商標)からの画素の一列の解読をし、
ライン1の変数nrow内の画像の列数を記憶する。画素値ビットはデコードされ、
ライン12〜36内のimage_row[]アレイに拡張される。image_row[]アレイは1
バイトにつき1値(0または1)として記憶された画素値を有している。
ライン28は、パケットインデックスを列に戻すためのpacket_col()ルーチン
を使用する。ライン28においてjが0の場合には、列はパケットスタート列で
あり、jが1である場合には、列は継続列である。ライン29はrowstats()ルー
チンを使って実行長さレターフラグをラインバッファの画素に割当てる。復帰値
iは画像列に位置する複数の実行を与える。ライン31、37、41では整合性
テストが実施される。インデックスkpはデータパケット内の画素列数を供給する
。kpが0の場合は、ラインはパケットスタートインデックスでなければならず、
kp>0の場合は、ラインは継続行でなければならない。ライン49は二色画像デー
タの列の解読とプリプロセスの処理を完了する。
データ構築アレイpair[]は、(i)のライン長さ、増加した実行長さ(i+1)、二
色BITMAP(商標)画像内の実行の総数を含有する。ライン51から始まるループ
内のインデックスkは、組込まれた実行長さのためのインデックスである。イン
デックスinrowは画像列バッファ内の画素を数え、変数bitindexは、ビットスト
リームバイトにおけるビット位置インデックスである。
しかし、本発明はコンピューターハードウェアによって内部的に処理する、走
査/プリントファックス機械を提供する。補助的に取り込まれたデータはホスト
データの走査後に入れられるが、以前は送信されていた。補助的に取り込まれた
データは、データが受信された後引き出されるが、印刷される前である。
ラン長は元の値(i,i+1)から変化させないので、二色画像取り込みのキーは、
取り込まれた画像の分析によって復帰させ得る。利用される値の順序は、画像の
実数値の頻度に依存する。パレットカラー画像の例として、組み込みに利用され
るペアの順序と値に対するキーはファックスに差し込まれる。しかし、キーは厳
密には必要とされない、なぜなら特に定義された値MINRUNとMAXRUNの情報が、取
り込まれた画像ラン長の統計値を再計算させるからである。実際問題として、フ
ァックスモデム接続リンクの送信エラーが、画像の統計的な特性を変更する、新
しいラン長が取り入れられ得、ペア順序が分からないので、キーが必要とされる
。
たとえファックスの組み込みが、パレットカラー画像に取り入れる補助データよ
り幾分確実でなくとも、なおデータの取り込み二色BITMAPは一回きりの暗
号化に近似であると考えるられ得る。
前記の本発明の望ましい実施例は、図示、記載を目的としていた。それは本発
明を開示した型式に厳密に限定または、徹底させるものではなく、前教示で明ら
かに多くの修正または、変更が可能であることは理解される。実施例は本発明の
主要部分と、その実用的な応用例を説明するために、最適な説明をするために選
択、記載される。それによって他の方法を、本発明の様々な実施例を最適に利用
する技術分野に、役立たせることができ、様々な修正によって、考察された特殊
な利用方法に適合させる。それは、本発明の観点を後記の請求の範囲によって、
定義される。DETAILED DESCRIPTION OF THE INVENTION
Data embedding method
Field of the invention
The present invention relates generally to digital manipulation of numerical data, and in particular to external data.
And how to incorporate them into existing data fields. This invention is based on
Made with government support under Contract No. W-7405-ENG-36 awarded by the Department of Energy
It is a thing. The government has certain rights in the invention.
The use of data in digital form is revolutionizing communications around the world.
Much of this digital communication takes place over lines, microwaves and fiber optic media.
ing. These days, data can be transmitted entirely across land, sea, or between satellites.
You. Between any two points on the earth or in space by a satellite in orbit
Communication can be performed.
In many cases, it is advantageous to transmit special secondary data in addition to the primary data.
obtain. Secondary data can include subtitles for television programs, certification information combined with photos, or
May relate to the transmission of conversion information in facsimile transmission. Such techniques
Is also used as a digital sign to verify the origin and authenticity of primary data.
Are suitable.
Data in digital form is transmitted in the usual manner using a broadband communication channel.
It is. Communication in digital format is error correction software that provides absolute data fidelity
Wear and
And hardware protocols make this much easier. These communication systems
Thus, the digital bit stream transmitted from one place is guaranteed to be constant in another place.
Received.
However, most digital data sources have redundant information and inherent noise.
Includes Examples include photography, electronic art original work, or digital
Digital image generated by scanning the video signal
You. In such image scanning or digital generation processes, digital
Noise is introduced into the expression. In addition, images such as photo images and confirmation cards
Source is caused by film grain structure, optical aberrations, and object movement.
Noise. Artwork is brush stroke, painting fabric, artist license
Noise introduced by the source.
Any particular numerical value of digital intensity exists in many different parts of the image
Therefore, redundancy is inherent in digital image data. For example, tree, sky
, A given gray level may be present in an image of a person or other object. Any desi
In digital images, the same or similar numerical pixels, i.e., pixel values,
Page content. This is due to the frequency of appearance in various parts of the image and
Pixels with similar values significantly increase the appearance of images or the statistical appearance of pixel values.
It means that they can be exchanged freely without change.
Also, when the same value exists more than once in the flow of numerical values representing digital information,
Most forms of digital information are redundant. Two color or black and white fax image
In that case, the noise consists of the presence or absence of a black or white pixel value. Black and white BITMAP (registered trademark)
A document scanned in a format is a run of consecutive black (1) and white (0) values.
Includes Noise in these images fluctuates the length of the pixel run
Will be. Runs of the same value will result in many parts of the black and white image in different columns
Exists. Thus, the present invention can be applied to facsimile transmission.
Due to the presence of noise and redundant pixel information in digital data,
A process of embedding additional information in the noise component of the data. Recent
Due to the fidelity of the digital communication system, the embedded information is preserved during transmission to the receiver.
And can be retrieved at the receiver. Incorporating information in this way can
Do not increase bandwidth requirements. The reason is that the embedded data is
This is because it exists in the noise component of the data. Detected by unauthorized person
Transmission of meaningful new information to the redundant noise component of the original data without
Can be.
Therefore, it is an object of the present invention to provide a digital
It is to provide an apparatus and a method for incorporating data into an information stream.
Another object of the present invention is to provide an unauthenticated person with a normal digital
Apparatus and method for preventing access to information embedded in total data
It is to be.
Other objects, advantages and novel features of the invention will be in part apparent from the description below.
Also, some will become apparent or apparent to those skilled in the art from a consideration of the following description.
It can be understood by practice of the description. The objects and advantages of the invention are set forth with particularity in the appended claims.
It can be realized and achieved by the defined devices and combinations.
Background of the Invention
Other objects, advantages and novel features of the invention will be in part apparent from the description below.
Also, some will become apparent or apparent to those skilled in the art from a consideration of the following description.
It can be understood by practice of the description. The objects and advantages of the invention are set forth with particularity in the appended claims.
It can be realized and achieved by the defined devices and combinations.
Summary of the Invention
According to the object of the present invention, it is composed of a plurality of elements having numerical values and includes a noise component.
Forming a digital representation of host data; auxiliary data in the form of a series of bits
Forming a digital representation of the data; noise components of the digital representation of the host data
Evaluating; the value of the noise component by comparing the host data element with the noise component
Determine pairs of host elements with different numbers below;
Swapping the value with a substantially equal value from the above pair of elements,
Incorporating the individual bit values of the auxiliary data corresponding to the sequence and the host
Output host data with auxiliary data embedded in the data as a file
A method is provided for incorporating auxiliary data into host data consisting of:
Furthermore, according to the object of the present invention, it represents embedded auxiliary data,
Extracting a bit sequence from the host data that can confirm the noise component;
Host data / element pairs that differ by less than
Analyzing; identifying an auxiliary data bit sequence corresponding to the pair value; and
That contains noise components that consist of extracting data and auxiliary data as a file
A method is provided for retrieving embedded auxiliary data from data.
BRIEF DESCRIPTION OF THE FIGURES
Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings and the description of the present specification.
The essence of Ming will be described.
FIG. 1 illustrates the method used for embedding and retrieving data from the host.
It is a block diagram explaining.
FIG. 2 determines a host data pair having an approximate value, and converts the RGB components to HS.
Part of a list of computer code used to convert
You.
FIG. 3 shows how to remove duplicate host data pairs.
Here is part of the list of computer codes used for
FIG. 4 shows the relationship between the true color image and the host data histogram.
Frequency of occurrence of host data pairs to minimize embedding effects
one of a list of computer codes to introduce constraints in
Department.
FIG. 5 shows header information, auxiliary bit stream, and host data file.
Ancillary data containing important information necessary to process the data in the host data
Here is part of a list of computer code that allows you to actually incorporate it into:
FIG. 6 shows an analysis of a run length in a pixel column of two-color facsimile host data.
Part of a computer code listing.
FIG. 7 shows a case where the first pixel in the packet start data string is scanned with the same number of columns.
Here is a part of a list of computer code to be run. The first stroke in the row
The raw location flags the start of the data packet.
FIG. 8 shows a computer that incorporates data into a two-color host image such as a facsimile transmission.
Part of a list of pewter codes.
Detailed description
The present invention enables digital transmission without recognizing the meaning and contents of transmission and images as if they were real objects.
Data transmission or image data
To be able to This converts the digital host data to the desired embedded information or
This is enabled by the technique of the present invention which reorders the batch according to the transplant information.
An example of the host data image is BITMAP (trademark) (.B) of Microsoft (trademark).
MP) format and the resulting image has easily recognizable information
Including no embedded auxiliary information.
Microsoft's BITMAP ™ image format is
-Supports images in color, color palette, gradation display, or black and white display
Public domain format. True color images are pixel-by-pixel
Has 24 bits, and each byte of the pixel element is a red, green, blue (RGB) color component.
Represents the intensity of The color palette image includes a table of permitted RGB values. Color
The pixel value in the palette is an index for this table. Gradation table
The display image gives the numerical intensity of the pixel value. Black-and-white display is indicated by one of the two expected pixel values.
Assign 0 or 1. The invention will be described in more detail with reference to BITM
It can be understood in connection with the AP ™ image format.
When the most intuitive information is displayed in digital form,
Whether it is a photograph, a photograph, an experimental survey, or a facsimile transmission
Digital data can be manipulated to convey noise and external information.
It essentially has long information. The present invention
Through the use of external information, data is easily extracted by the receiver and possible receiver
Can be done.
Redundancy in digital image data means that digital intensity
Occurs when a unique numerical value of exists. Representation of trees, sky, clouds, people, and other objects
Redundancy is commonly found in images because there is a constant gray scale representation in the image. Digital
The presence of noise in the image indicates that the numerical values of video elements and pixels change slightly.
Allow. The pixel value range for 8-bit digital data is 0 to 255.
is there. When multiple pixels with the same or similar numerical values represent the type of image content, the image
Can be freely interchanged at various positions in Generate special pixel values
The raw image appearance and statistical frequency are determined by the interchange of spatial positions of pixels with similar numerical values.
Somewhat affected.
The present invention relates to original digital data (referred to below as "host" data).
First, convert the host data to digital format and use it if necessary
And then generate an image histogram showing the probability density of the pixel values that generate the image
I do. The number of times a unique pixel value occurs in the image is plotted against the numerical value.
You. The pixel value range for 8-bit digital data is 0 to 255. of course
The level of noise in the image depends on the data source,
Various noise levels in audio, video, and facsimile transmissions
It seems to occur.
The actual incorporation of auxiliary data into host data consists of three steps,
The typical steps are illustrated in FIG. First, the noise component of the host data
In order to determine the evaluation and recognize the numerical value pairs in the host data,
It is used in combination with the analysis of the histogram of the numerical value of the strike data. The host data
Data pairs appear at approximately the same statistical frequency and are smaller than the noise component values.
There is a difference. Second, the bit stream of the auxiliary information is adjusted by adjusting the appearance position of the pair value.
Embed the game. Third, using the pair of numerical values recognized in the host data
, A key for extracting embedded data is generated.
Retrieving the embedded data reverses this process. Placed in the image with built-in phase
The specified key specifies a pair value including the embedded auxiliary information. Take out the published page
The auxiliary data according to the position of the pixel having the given pair value in the key using the
Regenerating the data. First, the key information is extracted from the header information.
Used for The header information determines the file length and file name of the auxiliary data.
Activate the key. If the image containing the embedded information is changed, the header information
Do not take out correctly. However, if the extraction is successful,
Regenerate auxiliary data exactly.
The principle of data embedding according to the invention encodes the value of the external data to be added.
Requires a certain rearrangement of host data values. In describing the present invention,
Just
8 bits with values ranging between 0 and 255 bits for each host data sample
Consider the host dataset represented by the binary information of the data set.
Further, the noise value N for the signal S is given by N = ± S / 10,
Or about 10% of the signal value. For many data, the noise component is
Can be approximated by a constant value or percentage, such as using a 10% value in the description of.
When the two values di and dj in the host data satisfy the following equation (10)
, Within the range of noise values.
| Di-dj | = ε ≦ N 10
The appearance frequency or histogram value of the constant value di is represented by f (di). Equation 1
0 and the appearance frequency f (di) −f (dj) <δ (where
δ is the tolerance that is imposed statistically equivalent) and appears in the host data
The value is a candidate for use in embedding. Values di and dj form a pair of data values Pk
I do. There are pairs such as k = 0, 1, 2, ... Np in the host dataset
, The total number of embedded bits Mk for each pair is given by the following equation (20).
Here, the total amount of i and j is the data set f (di) and f for each data value.
It reaches the limit of the appearance frequency in (dj).
Here, reference is made to FIG. FIG. 2 shows a list of computer codes.
The part is printed in C language. The host data pixel pair values di and
The determination of dj is performed through the code listed in FIG. Fig. 2
Now, these 8-bit values are explained as the index of the color palette table.
Have been. Thus, the comparison shown in Equation 10 is a comparison between corresponding colors in the palette.
Needed for Fill in the color palette with red, green and blue (RGB) colors
Minute values, each in the range of 0-255.
If you need additional information in the format used for BITMAP ™ images
, Two materials should be referenced. One source is New York in 1994.
J. issued in Kenya Levine's `` Programming for Graphics Files '' (J. Wiliey
& Sons). The other use is described in "Dr. Dobb's Journal
, Vol 19, page 18, M. Luse's "The BMP Fromat" technical paper
.
The code fragment in FIG. 2 has a loop that exceeds the number of colors in the palette.
Starting from line 1 The loop index i is defined as
All consecutive color input pairs
Used to test each palette color against other inputs. i loop
Each color identified in the above is then applied to line 1 using the other index j.
Test for all other colors in the palette by a second loop starting at 6.
Is Line 7 adjusts the image with a palette for gradation instead of color
providing. Some tone formats also include 16 color tables
However, due to the gradation image, the RGB components are the same for each palette input.
become.
The comparison shown in Equation 10 compares the red, green, blue (RGB) color component values with the corresponding color
Tone, Saturation, and Intensity (HSI) obtained by converting to color components. La
In step 12, the conversion is accomplished using the separation routine rgbhis (). line
20 converts the RGB color component values in the j loop into HSI data structure components
The line 21 forms a color difference in the HSI system. Then line 2
4 performs the tests required by equation 10. The color difference is a fixed noise value (see Fig. 2).
If COLOR_NOISE = 10) is less than the
Determines whether the palette entry is acceptable as a difference that is less than the noise value. Candidate
Before accepting input as a pair value, two additional constraints are imposed. First
, The minimum color difference between the test value (i-loop) and all other values (j-loop)
Color difference is required. Second, the number of selected pairs (k) is the number of pixels
one
Number of columns in the pixel column in the image for the pair value key to be provided in the column
Must be less than half. This is an algorithmic constraint,
Not required in the invention.
The data construction array pair [] contains the values of the candidate pair (i, j) and their total appearance frequency
Used to hold Mk. If the image is a gradation display palette, line 35
Test is used to forcefully compare only the strength of the two palette inputs
You. A gradation display image requires RGB-HSI conversion for forming a color palette.
No need.
Since the saturation is usually inconspicuous in a color image, the embedding method of the present invention
-Ignore the difference in chroma components of palette input. Only the color and intensity components
Are constrained to fall within a fixed noise limit for determining the pair-value.
The pixel pair value found by the code listed in FIG.
, Including redundant values. The same pixel value i is found in several different pair combinations. Pixel
Multiple pairs must be in the same palette, because each pair of value combinations must be unique.
Some pairs need to be removed because they cannot contain inputs. Equation 10
The number of pairs obtained by fitting is stored in the variable no_pairs on line 51.
It is.
Referring to FIG. 3, the separation rules are shown by the listed code fragments.
Eliminate duplicate pairs with chin
Is described. First, using the histogram of the image,
The total number of occurrences in each pair is calculated when needed. Line 1 is for each pair
The i-loop used to calculate the value Mk is shown. Next, the pair
, Line 5 "pair []. as the order of the "count data construction term" is reduced
Is done. The elimination of duplication in the lines below it is the largest total frequency value Mk.
A pair Pk having a number is held. Line 10 and the lines below it are
In the host data using the only pixel pair found by the fragment
Calculate the total number of bytes that can be embedded in.
By determining a pair value that reduces the order of the value Mk, the specific auxiliary data
The number of pairs required to incorporate the stream is minimized. However,
If the values are arranged in random order, the security of the embedded data becomes very high. Pe
A-value order randomization is part of the present invention.
This is the integer index “pts [k]. i, k = 0,1,2, ..., no_pairs ”and pts [k].
gamma = δ0, δ1, ... δx, ... δno_pairs, (where the δX value is random
. )) To calculate the data structure with an entry for
Achieved by rearranging to random order. Add random value to ascending order
By classifying the data structure pts [] in order to make the index values random.
The random index value is calculated as described above.
Used with computed pair values to provide random pair value ordering.
Reorder the cables.
Algorithms described for palette format images use characteristics of frequency of appearance.
Allows manipulation of pixel values without consideration. Here, referring to FIG.
The drawing lists other code fragments. This code flag
In the host data histogram for true color images
Constraints that minimize the built-in effects have been introduced into the frequency of appearance.
A truecolor image is an individual 8-bit hierarchy of each of the red, green, and blue image components
It consists of a display image. True color images do not have a color palette. Three eight
The expected combination of bit components gives approximately 16 million colors. The present invention relates to each RG
By processing the B color component images individually, the data is combined into a true color image.
Put in. Therefore, the effect of embedding on the composite image color is due to the noise of the individual color intensity components.
Value is within the range.
In FIG. 4, the ip-loop starting from line 2 has a color level (ip = 0,1,2 for
R, G, B). The appearance frequency of each numerical value (0 to 255)
Color level histogram array hist_vaues [] offset by quantity ip * 256
Given by The variable fvalue [] is the floating point for the color component ip
Hold the histogram value. Line 11 is selected to be almost identical in appearance frequency
Loop to constrain the pair
Start. Pixel intensities RANGE within the noise limits are used for statistical frequency comparison.
Selected. The tolerance δ for the statistical match is fixed at line 17 at 5%. This
Can be tailored to individual applications.
After testing all expected values for noise constraints and statistical frequencies, find
The resulting pair is stored at line 27, duplicate pairs are removed, and starts at line 31.
The index is increased and the search continues. Again, the maximum number of pairs is i and j
Algorithms whose pair values must be less than half the number of pixels in the image sequence
Set by Mick constraint. When using palette format images,
Security involves randomization of pair value entries.
Built-in host image effects of auxiliary data by applying statistical constraints
Is minimized. If the tolerance δ is set to 0, each selected pair
Data that is smaller than the noise value in the intensity separation and that exactly generates the same statistical frequency
Data values. Set the tolerance to δ = 5% as in the code fragment of FIG.
This allows for more frequent pixel pairs, while
Most of the statistical properties of the data can be kept. Same appearance
By requesting the frequency exactly, a small number of pairs can be found.
The actual incorporation of auxiliary data into a set of host data is
And rearranging the order. The host data values found by the analysis.
A
Used to encode the bit stream of auxiliary data into host data
Pixel value. The values used for embedding have already occurred in the host data.
It is important to understand that The embedding method of the present invention
Do not change the number or quantity of numerical values in the data.
In the embedding method of the present invention, the host data is processed continuously. Host data
In the first pass, check each value and test for pixel pair value combinations.
Do. The matched value in the host data is the data structure value pair [k]. i (k = 0,1,2,
…… Np) is initialized. This step is based on the host BITMAP ™ image (
FIG. 1) is initialized to a pair value corresponding to zero in the auxiliary data. Ancillary data
The second pass through examines successive bits of data to be incorporated and includes a host data component.
Are set to the values i and j according to the auxiliary bit value to be incorporated. Braid
If the bit stream to be input is random, the host
The data pair values i and j appear at the same frequency in the host image.
FIG. 5 shows important information and auxiliary bits necessary for processing data in the header information.
Code that actually incorporates stream and host data files.
Defragmentation is explained. Lines 1 to 12 allocate memory,
Initialize variables. The header and bitstream data to be included
Data-image] and stored in the array data-row []
Is done. The host data is indicated by “image data (image-data)”.
The index li is used in the loop starting at line 12 and in the data image
Count byte position. Header information is included before the data image byte loop
The loop starts at li = 512. Line 14 contains header information
Includes a test to load data_row []. Line 20 is the data image file.
Includes test to load data-row [] with byte tape5 from file
.
Line 30 starts a loop for bits within the data image byte
I do. The variable bitindex = (0,1,2, ……, 7) is indexed by the variable d_inrow
The bit position within the range of the data image byte data_row [d_inrow] is counted.
The variable lj indexes bytes (pixels) in the host image. The variable inrow is the image
Index the data buffer image_row [inrow]. Line 32 is incorporated
Test the output of the captured data (a complete column of pixels) to an image data file and write
The application 40 tests the realization of a path through the image data. Each pixel pair pair [k] (k = 0
, 1, 2,..., Np), one image data path is formed.
At line 47, the pair index is incremented. Host used for embedding
The temporary pair data structure variable pvalue is used to hold the working pair value of the
Ira
It is. Line 60 refreshes the image data buffer image_row.
The built-in test is performed on line 72. Image data buffer image_row [inro
If the contents of [w] are equal to the pair value representing zero data image bits, the change is made.
Image data value is pvalue. Hold i. However, if the bitstream value is 1,
The image data value is pvalue. It is changed until it becomes equal to j. Line 84 is an image
A pair value pvalue incorporating the image data value. Test if not equal to i. this
In this case, the bit index variable is reduced because the data image has not yet been incorporated
And the image data index is increased to examine the next host data value.
It is.
Embedded data retrieval is used to embed the auxiliary data image bitstream.
This is done by reversing the processing used. Hiss of embedded image dataset
Togram analysis is performed when individual statistical frequencies are not charged by built-in processing.
To identify candidate pairs for retrieval. In the list of FIG. 2 to FIG.
The statistical frequency is slightly charged by the embedding process. Used for embedding
Pair table is recreated by analyzing the original image data
However, it cannot usually be accurately reproduced from embedded image data.
In addition, as described above, the present invention randomizes the order of the pair values, thereby
Know the pair value order in advance.
At the same time, the amount of analysis required to extract the embedded data is greatly increased.
As previously mentioned, the ordered pairs selected for embedding are
A "key" for extracting a data image from the data. From Figure 2 to Figure 5
The provided list shows how embedded analysis can help to summarize the noise components in the host data.
Indicates whether the instrumental characteristic is reduced to a table of pairs of numbers. Key pair
Are required for the retrieval of embedded data, but they are
Generated by analysis of host data. However, the key is the original,
It can be regenerated from host data that has not been changed. Therefore, data embedding is
Similar to one-time-pad encryption, with built-in bitstream
Provides very high security against reams.
With a well-known pair table, the retrieval continuously tests the pixel values and
Regenerating an output bit stream for the data information and the data image
. In the present invention, the pair table stores the host image data that can be used for the extraction process.
Is inserted. Optionally, the present invention removes the pair table and
Can be stored in the file. In particular, the pair table starts with a small number of bytes.
The size fluctuates within a range of 100 bytes. Maximum limit table size in pixels
Is limited to half the column length. If you remove the pair table, the embedded data will be
It is secured while the original host image data cannot be used. Therefore, the embedding method is
Provides security close to one-time encryption.
Another way to protect the pair table is to remove the key and use a public key algorithm or
That is, encryption is performed using another encryption process. The present invention uses the encrypted key
It is allowed to be placed in the strike image data.
Ancillary data embedded in the host to encrypt the bitstream
Slightly change the statistical frequency of pixel values used for Compressed or encrypted
The embedded data is an excellent pseudo-random auxiliary bitstream. Therefore, the pseudo la
Embedded ancillary data with random characteristics is the change in the average occurrence frequency of the values in the embedded pair.
Minimize. Embedded character data that is not compressed or encrypted
Significantly reduces the security provided by Ming.
The presence of embedded data is not easily found by analyzing embedded image data.
No. When viewed as an encryption method, data embedding involves wrapping a data image with image data.
Get in. The embedded original data image bitstream represents plaintext. E
Combination of text and embedded data implants ciphertext in noise component of host
. However, since the content and meaning of the host transport information are protected by the present invention,
The existence of the ciphertext is not revealed. Data embedding according to the invention is encryption
Unlike that, it does not generate clear ciphertext.
These unfamiliar words “plaintext” and “ciphertext” were, for example, introduced in 1994.
C. of New York City, New York J. B published by Wiley & Sons
. Schneier's Applied Cryptography Protocols, Algorithms, and Sour
ce Code "may be referred to. This reference is included here.
As described above, the present invention combines auxiliary data into facsimile (FAX) data.
Useful for infiltration. Previous description of incorporating auxiliary information into image host data
Then, the noise component is derived from the unstable element in the numerical value of the pixel data,
Arises from the unstable component of the color value of.
The facsimile transmitter is actually an image consisting of black and white BITMAP ™ data.
Yes, that is, the data from the image pixels are binary values (0, 1) indicating white and black, respectively.
Noise effects can add pixels to the data or remove pixels from the data
I do. The present invention consequently converts facsimile black and white BITMAP ™ images to two colors.
Process to become BITMAP ™.
Typical office fax machines are scanning and digital hardware and software
It is required that the image be transmitted via a telephone line. Picture
The image is transmitted using a special modem protocol, a feature of many sources.
Used for For such information sources, EXP Modem User's Manual (UM, 1993)
Fax designed for use in laptop computers
A (data) modem is shown. Fax transmitter between computers
Installed and digital communicator, the data is therefore suitable for embedding data
You.
Incorporate processing means as previously considered for embedding in images
Fax has two phases, analysis and embedding. Two-color BITMAP (
(Trademark) fax, the image noise is the addition or removal of black pixels from the image.
Except one can do. For this reason, a continuous run length like a pixel can vary.
.
The scanning process consists of a run of consecutive black pixels in a two-color BITMAP ™ image.
The black line of the source copy is shown. Scan resolution and black and white BITMAP (quote
The number of pixels in a run is small because the conversion of the original data for
There is an error of at least within ± 1.
The supply data to be incorporated into the two-color BITMAP ™ data is, for example,
Detects the statistical value of real pixel run values or histogram real values
Analyzing BITMAP ™ for The embedded process of the present invention
Changes the run length of (0, + 1) pixels for the content of the bit stream of auxiliary data.
I can. Any host data suitable for embedding is sized for the fax transmitter
It is a two-color BITMAP ™ image that is scaled up and down. Fax transmitter
The copy can be scanned for the generation of the two-color BITMAP ™ or the image can be
Created by using a computer fax printer drive software
Can be
The fax embedding process starts with a run length analysis for each column of pixels. This
The execution of this step is illustrated by the code fragment in FIG. Roux
The argument to chin rowstatas () is one byte per pixel, either 1 or 0
, Which is pixel data to a pointer forming a column, and the number of (pixel) columns in the data column.
Pointers to statistical frequency arrays, and internal program options
Flag. The option flags indicate the bits of the auxiliary bitstream to be embedded.
Lock or packet size. Option flag tested on line 9
The routine pocket_col () is used for the positive option flag. po
The cket_col () routine is listed in FIG. 7, where the first pixel of the data column has the same number of columns.
To ensure startup. The arrangement of the first pixels in the column is determined by the data as described further below.
Flag the start of a packet.
Line 12 begins the loop and examines the performance of the pixels in the sequence. Definition value MI
Execution between NRUN and MAXRUN is examined by a loop. j loop, line 15
Test locates the execution of a pixel and sets the variable k to the index of the start of execution
I do. The test on line 21 is a block of pixels having a length i shorter than the column length.
Select only The loop on line 22 shifts pixel execution to one
Sometimes it is stored in the array block [].
The test on lines 24, 25 is required by the current value of the i-loop
Reject blocks with execution lengths other than The embedding system is long for embedding
Select the block i and add pixels to create a length i + 1. Execute this
Is the non-zero pixel value of i or i + 1 according to the embedded auxiliary information bit stream.
Can have flicker. Less execution stored in variable block [] array
If neither ends with two zeros, the execution of the length i + 1 and the code branches to NEXT and the next
This is not acceptable because it examines the run found in.
Line 28 initiates a loop to count the number of pixels in the run. Counted
The number of pixels added is increased by the pixels in line 31 and the added pixels are run length
Account to be the same length as i + 1. Line 33 is the selected execution
Has a test to ensure that it has the correct length. Run length index
The histogram [] array of box i is incremented to record the frequency of execution. Run
The data string byte is a letter code used to identify the positioned execution
At the same time, it is flagged by the loop of line 36. This flagging technique
Embedded code easily identifies the implementation used for bitstream embedding
. On exit from this routine, the data stream bytes incorporate the bit stream.
Letter code to identify pixel locations that can be used
Has execution flagged with the code. Return value located in data string
Number of runs. Return of zero indicates execution within defined limits of MINRUN and MAXRUN.
Not shown.
The fax modem protocol emphasizes speed and does not include error correction.
For this reason, fax transmissions may drop out depending on the quality of the telephone line and the speed of transmission.
Need shock noise, lost data. The present invention for successful integration
Must take into account the possible loss of some part of the image data. To achieve this,
A variant of the modem block protocol is used to incorporate the header and auxiliary data
You. A two-color image, together with the data embedded in the block or packet, is
And provides a packet start flag and parity check. Same
A packet start signal is sent by the image sequence having the first pixel of the ram. Pa
The ket ends when the number of bits in the block has been extracted. In addition, the collapsed
In the case of a packet, the process ends when the packet start flag is positioned in the line.
Parity checksum and packet ordinal are embedded with the data in the packet
I will. According to this method, errors in fax transmissions may result in some embedded data (
But not all).
The amount of data lost due to transmission errors depends on the pixel density of the source image,
Depends on the length of the pullout. If 20 bytes are used per packet, standard text
Large dropouts in Kist transmissions are one of the lost data
Or more packets. Generally, the success of an invention depends on the
Depends on the visibility of the scanned host image information.
Referring now to FIG. 7, a two-color BITMAP (
A list of the steps required to initialize a (trademark) line is provided.
You. Each line of a two-color image must start with a non-zero value in the same column (packet start).
Or in an odd column (packet continuation).
As shown in FIG. 7, line 4 starts a loop over the number of pixels in the data string.
You. In a fax image, a zero (0) pixel value represents a black space and one (1) image
The prime value represents a white space. Line 5 positions the first black space in the column data
You. If the variable packet_size is positive, the column index
The pixel to a white space. If the variable packet_size is negative,
The routine returns to the data string flag indicator without any change. variable
If packet_size is greater than zero, the first data string element is flagged as a white space.
Is attached. Line 11 displays the continuation column, the case where the variable packet_size = 0.
Process. In the case of a continuation column, the first data column element is set to a black space. La
The values returned by the subroutines of steps 17-20 indicate the nature of the examined pixel sequence.
Represent.
The code fragment shown in FIG. 8 is a two-color BITMAP (trademark)
Provides ancillary data incorporation into fax images. Pixels in a row are run lengths
The contents of the data column analyzed for display and flagged with the letter code
Is processed in the manner described above. Lines 1 to 49 are bicolor
One large loop (not shown) over pixel index lj in BITMAP ™
Department. Lines 1-26 decipher a row of pixels from a two-color BITMAP ™,
The number of image columns in the variable nrow of line 1 is stored. The pixel value bits are decoded,
Expands to the image_row [] array in lines 12-36. image_row [] array is 1
It has a pixel value stored as one value (0 or 1) per byte.
Line 28 is a packet_col () routine to return the packet index to a column
Use If j is 0 at line 28, the column is the packet start column
Yes, if j is 1, the column is a continuation column. Line 29 is rowstats ()
The execution length letter flag is assigned to the pixel of the line buffer using the chin. Return value
i gives multiple runs located in the image sequence. Lines 31, 37 and 41 are consistent
A test is performed. Index kp provides the number of pixel columns in the data packet
. If kp is 0, the line must be the packet start index,
If kp> 0, the line must be a continuation line. Line 49 is two-color image data
The decoding of the data sequence and the preprocessing are completed.
The data construction array pair [] shows the line length of (i), the increased execution length (i + 1),
Contains the total number of runs in the color BITMAP ™ image. Loop starting at line 51
Is the index for the embedded run length. Inn
The index inrow counts the pixels in the image sequence buffer, and the variable bitindex
It is a bit position index in the ream byte.
However, the present invention does not
Provide a check / print fax machine. Supplementally captured data is the host
Entered after scanning data, but previously transmitted. Supplementally captured
The data is retrieved after the data is received, but before it is printed.
Since the run length does not change from the original value (i, i + 1), the key for two-color image capture is
It can be restored by analysis of the captured image. The order of the values used is
Depends on the frequency of the real value. Used for embedding as an example of a palette color image
The key for the order and value of the pair is plugged into the fax. But the key is strict
Not strictly required, because the information of specially defined values MINRUN and MAXRUN
This is because the statistical value of the inserted image run length is recalculated. As a practical matter,
A transmission error on the fax modem connection link changes the statistical characteristics of the image, a new
Keys are needed because new run lengths can be introduced and the pair order is not known
.
Even embedding fax is ancillary data to incorporate into palette color images
Even if it is somewhat uncertain, the two-color BITMAP that captures data is still a one-time dark
It can be considered to be an approximation to the encoding.
The foregoing preferred embodiments of the present invention have been illustrated and described. It is
It is not intended to be strictly limited or exhaustive to the type for which the
It is understood that many modifications or changes are possible. Embodiments of the present invention
Select to give the best explanation to explain the main parts and their practical applications.
Selected and described. This makes it possible to optimally utilize other methods and various embodiments of the present invention.
The technical field can be useful and with various modifications,
Adapt to the usage. It describes the aspects of the present invention by the following claims.
Defined.
─────────────────────────────────────────────────────
フロントページの続き
(81)指定国 EP(AT,BE,CH,DE,
DK,ES,FR,GB,GR,IE,IT,LU,M
C,NL,PT,SE),OA(BF,BJ,CF,CG
,CI,CM,GA,GN,ML,MR,NE,SN,
TD,TG),AP(KE,LS,MW,SD,SZ,U
G),AM,AT,AU,BB,BG,BR,BY,C
A,CH,CN,CZ,DE,DK,EE,ES,FI
,GB,GE,HU,IS,JP,KE,KG,KP,
KR,KZ,LK,LR,LT,LU,LV,MD,M
G,MN,MW,MX,NO,NZ,PL,PT,RO
,RU,SD,SE,SG,SI,SK,TJ,TM,
TT,UA,UG,UZ,VN
(72)発明者 ハンデル,テオドール,ジイ.
アメリカ合衆国 ニユーメキシコ 87544,
ブライス アベニユ 316────────────────────────────────────────────────── ───
Continuation of front page
(81) Designated countries EP (AT, BE, CH, DE,
DK, ES, FR, GB, GR, IE, IT, LU, M
C, NL, PT, SE), OA (BF, BJ, CF, CG
, CI, CM, GA, GN, ML, MR, NE, SN,
TD, TG), AP (KE, LS, MW, SD, SZ, U
G), AM, AT, AU, BB, BG, BR, BY, C
A, CH, CN, CZ, DE, DK, EE, ES, FI
, GB, GE, HU, IS, JP, KE, KG, KP,
KR, KZ, LK, LR, LT, LU, LV, MD, M
G, MN, MW, MX, NO, NZ, PL, PT, RO
, RU, SD, SE, SG, SI, SK, TJ, TM,
TT, UA, UG, UZ, VN
(72) Inventor Handel, Theodor, Jii.
United States New Mexico 87544,
Bryce Avenille 316