(57)【特許請求の範囲】
【請求項１】
元画像データにウォータマークを埋め込むウォータマーク符号化方法において、
(a) 前記元画像データを、スペクトルデータへの変換と量子化とを含む画像圧縮を通じて、圧縮されない原画像の形式から圧縮画像データの形式へと変換する工程と、
(b) 前記圧縮画像データの形式で前記元画像データを保管する工程と、
(c) 前記量子化の逆演算としての逆量子化を含む画像伸張を通じて、前記元画像データを、前記圧縮画像データの形式からスペクトルデータへと変換する工程と、
(d) 前記工程(c)で得られたスペクトルデータにウォータマークを重ね合わせる工程と、
(e) 前記工程(d)でウォータマークが重ね合わされた前記スペクトルデータを、前記量子化を含む画像圧縮を通じて、前記圧縮画像データの形式へと変換する工程と、
(f) 前記工程(e)で変換して得られた前記圧縮画像データを配信する工程と、を備え、
前記工程(d)が、
(d-1) 前記工程(c)で得られた前記スペクトルデータに、符号がランダムな揺らぎを重ね合わせる工程と、
(d-2) 前記工程(d-1)でランダムな揺らぎが重ね合わされた前記スペクトルデータに対して、前記量子化で用いられるスケーリング係数よりも値の大きいスケーリング係数を用いて、量子化を行うことによって、量子化係数を得る工程と、
(d-3) 前記スペクトルデータを構成し、前記量子化係数としてゼロでない値を与えるスペクトル成分の中から、前記ウォータマークの埋め込み対象を選択する工程と、
(d-4) 前記工程(d-3)で選択された前記スペクトル成分の前記揺らぎが重ね合わせられる以前の値に、前記ウォータマークを重ね合わせる工程と、
を備えるウォータマーク符号化方法。
【請求項２】
元画像データにウォータマークを埋め込むウォータマーク符号化方法において、
(a) 前記元画像データを、スペクトルデータへの変換と量子化とを含む画像圧縮を通じて、圧縮されない原画像の形式から圧縮画像データの形式へと変換する工程と、
(b) 前記圧縮画像データの形式で前記元画像データを保管する工程と、
(c) 前記量子化の逆演算としての逆量子化を含む画像伸張を通じて、前記元画像データを、前記圧縮画像データの形式からスペクトルデータへと変換する工程と、
(d) 前記工程(c)で得られたスペクトルデータにウォータマークを重ね合わせる工程と、
(e) 前記工程(d)でウォータマークが重ね合わされた前記スペクトルデータを、前記量子化を含む画像圧縮を通じて、前記圧縮画像データの形式へと変換する工程と、
(f) 前記工程(e)で変換して得られた前記圧縮画像データを配信する工程と、を備え、
前記工程(d)が、
(d-1) 重ね合わせるべき前記ウォータマークの振幅を、前記量子化で用いられる量子化ステップの１／２倍よりも大きい値に設定する工程、を備えるウォータマーク符号化方法。
【請求項３】
請求項２に記載のウォータマーク符号化方法において、
前記工程(d)が、
(d-2) あらかじめ設定された所定の定数Ｌ（≦１／２）に対して、前記工程(d-1)において設定される前記振幅が、量子化テーブルの値のＬ倍よりも小さいときには、前記振幅を、量子化テーブルの値の所定の定数Ｋ（Ｌ≦Ｋ≦１／２）倍の値に設定する工程、をさらに備えるウォータマーク符号化方法。
【請求項４】
採取された画像データからウォータマークを取り出すウォータマーク復号化方法において、
(A) 請求項１ないし請求項３のいずれかのウォータマーク符号化方法の工程(b)によって保管された元画像データに対して、前記工程(c)と同一の工程を実行することにより、スペクトルデータを得る工程と、
(B) 採取された前記画像データを、スペクトルデータへ変換する工程と、
(C) 前記工程(A)および(B)で得られた二つのスペクトルデータの差分を演算することによって、前記ウォータマークを、前記工程(B)で得られた前記スペクトルデータから取り出す工程と、を備えるウォータマーク復号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ウォータマーク（電子透かし）の符号化方法および復号化方法に関し、特に、保管すべき元画像データのデータ量（信号量）を低減するための改良に関する。
【０００２】
【従来の技術】
ウォータマーク技術は、画像を表現するデータ（信号）である画像データに、著作権や購入者の情報を、ユーザに感知されないような形態で埋め込むことによって、違法コピーなどの二次利用を防ぐ技術である。著作権を有する画像データの配信元は、ウォータマークを埋め込む前の画像データ、すなわち、元画像データを保管しておき、違法コピーの疑いのある画像データを市中より採取した際に、これを元画像データと比較することによって、ウォータマークを取り出し、さらに、著作権情報等へと復号化する。配信元は、復号化された情報にもとづいて、購入者の割り出し等を行う。
【０００３】
図１０および図１１は、それぞれ、従来行われているウォータマークの符号化方法および復号化方法の処理手順を示すフローチャートである。また、図１２は、これらの処理における、画像形式の推移を示すタイミングチャートである。これらの処理は、配信元（あるいは、配信元によってオーソライズされた者）によって、実行される。
【０００４】
従来のウォータマーク符号化方法では、圧縮されていない原画像の形式を有する元画像データが、例えばJPEGなどの画像圧縮技術にもとづいて圧縮される。それによって、画像データが、圧縮画像データの形式で配信される。この圧縮の過程の中で、ウォータマークの埋め込みが行われる。一方、上述した元画像データは、原画像の形式で保管される。
【０００５】
ウォータマーク符号化方法を、図１０および図１２に沿って説明すると、原画像としての元画像データは、例えば、JPEGの圧縮処理の一過程であるDCT変換によって、スペクトルデータ（空間スペクトルデータ）SPCへと変換される（ステップＳ５１）。スペクトルデータは、多数のスペクトル成分を、その構成要素として含んでいる。著作権情報等が符号化されたウォータマークの埋め込みが、このスペクトルデータSPCに対して実行される（ステップＳ５２）。スペクトルデータSPCは、原画像を、スペクトル成分の組すなわち空間周波数成分の組へと、展開することによって得られ、DCT変換はそのような展開の代表例である。
【０００６】
つづいて、ウォータマークを含むスペクトルデータSPCは、量子化およびVLC符号化（可変長符号化）を通じて、VLC符号（可変長符号）へと変換される（ステップＳ５３）。そして、このVLC符号の形式、すなわち、圧縮画像データの形式で、画像データが流通業者等を通じて、市場へと配信される（ステップＳ５４）。また、元画像データは、原画像の形式のままで、配信元に保管される（ステップＳ５５）。
【０００７】
つぎに、従来のウォータマーク復号化方法を、図１１および図１２に沿って説明する。市中で採取された画像データは、VLC符号の形式であることもあり、あるいは、原画像の形式であることも有り得る。いずれの形式で採取されても、画像データは、スペクトルデータSPC’へと変換される（ステップＳ６１）。
【０００８】
例えば、採取された画像データがVLC符号の形式であれば、VLC符号化の逆演算であるVLC復号化、および、量子化の逆演算である逆量子化を通じて、スペクトルデータSPC’へと変換される。採取された画像データが、原画像の形式であれば、DCT変換を通じて、スペクトルデータSPC’へと変換される。
【０００９】
ステップＳ６１を通じて得られたスペクトルデータSPC’は、ウォータマークを含んでいるために、図１０に示したスペクトルデータSPCとは値が異なる。これら双方の差分を算出することによって、スペクトルデータSPC’に埋め込まれているウォータマークの取り出しが行われる（ステップＳ６２）。つぎに、取り出されたウォータマークの復号化が行われ（ステップＳ６３）、それによって、著作権情報等が読み出される。
【００１０】
なお、採取された画像データは、一般には、配信直後の画像データのままではなく、様々な画像処理を経由していることも有り得る。このため、採取された画像データには、これらの画像処理に由来するノイズが混入している可能性がある。このノイズも、図１０のスペクトルデータSPCと図１１のスペクトルデータSPC’との間の偏差の要因となる。
【００１１】
ウォータマークの取り出しにおけるノイズの悪影響を除くために、図１０のウォータマークの埋め込みの過程（ステップＳ５２）では、１枚の画像の中に、ウォータマークが反復して埋め込まれ、取り出しの過程（ステップＳ６２）では、反復するウォータマークの平均を算出することによって、ＳＮ比を高めるという方法が採用されている。
【００１２】
あるいは、ウォータマークの埋め込みの過程（ステップＳ５２）で、誤り訂正符号をウォータマークの中に含めておき、取り出しの過程（ステップＳ６２）で、復号誤りを検出および訂正することによって、取り出されるウォータマークの信頼性を高めるという方法が採られている。いずれの方法においても、ステップＳ６３では、信頼性の有無が判断され、信頼性有りと判定されたときに、著作権情報等が出力される。
【００１３】
【発明が解決しようとする課題】
しかしながら、従来の方法では、元画像データが、原画像の形式で保管されるために、通常において多数種類の元画像データを保管する必要がある配信元では、保管すべき元画像データの総データ量が大規模になるという問題点があった。データ量が大きくなると、保管や取り扱いの上で不便であり、また、必要なコストも高くなる。
【００１４】
この発明は、従来の方法における上記した問題点を解消するためになされたもので、保管すべき元画像データのデータ量を節減し得るウォータマーク符号化方法および復号化方法を提供することを目的とする。
【００１５】
【課題を解決するための手段】
第１の発明の方法は、元画像データにウォータマークを埋め込むウォータマーク符号化方法において、(a)前記元画像データを、スペクトルデータへの変換と量子化とを含む画像圧縮を通じて、圧縮されない原画像の形式から圧縮画像データの形式へと変換する工程と、(b)前記圧縮画像データの形式で前記元画像データを保管する工程と、(c)前記量子化の逆演算としての逆量子化を含む画像伸張を通じて、前記元画像データを、前記圧縮画像データの形式からスペクトルデータへと変換する工程と、(d)前記工程(c)で得られたスペクトルデータにウォータマークを重ね合わせる工程と、(e)前記工程(d)でウォータマークが重ね合わされた前記スペクトルデータを、前記量子化を含む画像圧縮を通じて、前記圧縮画像データの形式へと変換する工程と、(f)前記工程(e)で変換して得られた前記圧縮画像データを配信する工程と、を備えている。
しかも、前記工程(d)が、(d-1)前記工程(c)で得られた前記スペクトルデータに、符号がランダムな揺らぎを重ね合わせる工程と、(d-2)前記工程(d-1)でランダムな揺らぎが重ね合わされた前記スペクトルデータに対して、前記量子化で用いられるスケーリング係数よりも値の大きいスケーリング係数を用いて、量子化を行うことによって、量子化係数を得る工程と、(d-3)前記スペクトルデータを構成し、前記量子化係数としてゼロでない値を与えるスペクトル成分の中から、前記ウォータマークの埋め込み対象を選択する工程と、(d-4)前記工程(d-3)で選択された前記スペクトル成分の前記揺らぎが重ね合わせられる以前の値に、前記ウォータマークを重ね合わせる工程と、を備えている。
【００１６】
第２の発明の方法は、元画像データにウォータマークを埋め込むウォータマーク符号化方法において、(a)前記元画像データを、スペクトルデータへの変換と量子化とを含む画像圧縮を通じて、圧縮されない原画像の形式から圧縮画像データの形式へと変換する工程と、(b)前記圧縮画像データの形式で前記元画像データを保管する工程と、(c)前記量子化の逆演算としての逆量子化を含む画像伸張を通じて、前記元画像データを、前記圧縮画像データの形式からスペクトルデータへと変換する工程と、(d)前記工程(c)で得られたスペクトルデータにウォータマークを重ね合わせる工程と、(e)前記工程(d)でウォータマークが重ね合わされた前記スペクトルデータを、前記量子化を含む画像圧縮を通じて、前記圧縮画像データの形式へと変換する工程と、(f)前記工程(e)で変換して得られた前記圧縮画像データを配信する工程と、を備えている。
しかも、前記工程(d)が、(d-1)重ね合わせるべき前記ウォータマークの振幅を、前記量子化で用いられる量子化ステップの１／２倍よりも大きい値に設定する工程、を備えている。
【００１７】
第３の発明の方法は、第２の発明のウォータマーク符号化方法において、前記工程(d)が、(d-2)あらかじめ設定された所定の定数Ｌ（≦１／２）に対して、前記工程(d-1)において設定される前記振幅が、量子化テーブルの値のＬ倍よりも小さいときには、前記振幅を、量子化テーブルの値の所定の定数Ｋ（Ｌ≦Ｋ≦１／２）倍の値に設定する工程、をさらに備えている。
【００１８】
第４の発明の方法は、採取された画像データからウォータマークを取り出すウォータマーク復号化方法において、(A)第１ないし第３のいずれかのウォータマーク符号化方法の工程(b)によって保管された元画像データに対して、前記工程(c)と同一の工程を実行することにより、スペクトルデータを得る工程と、(B)採取された前記画像データを、スペクトルデータへ変換する工程と、(C)前記工程(A)および(B)で得られた二つのスペクトルデータの差分を演算することによって、前記ウォータマークを、前記工程(B)で得られた前記スペクトルデータから取り出す工程と、を備えている。
【００１９】
【発明の実施の形態】
＜1.符号化方法および復号化方法の概略手順＞
保管すべき元画像データのデータ量を節減するために、本発明の好ましい実施の形態では、原画像の形式ではなく、VLC符号の形式、すなわち、圧縮画像データの形式で、元画像データが保管される。図１および図２は、それぞれ、この実施の形態のウォータマークの符号化方法および復号化方法の処理手順を示すフローチャートである。また、図３は、これらの処理にともなう画像形式の推移を示すタイミングチャートである。これらの処理は、配信元（あるいは、配信元によってオーソライズされた者）によって、実行される。これらの図１〜図３は、それぞれ、従来の方法を示した図１０〜図１２に対比される。
【００２０】
実施例のウォータマーク符号化方法を、図１および図３に沿って説明すると、原画像としての元画像データは、例えば、JPEGにもとづいて画像圧縮され、VLC符号、すなわち、圧縮画像データへと変換される（ステップＳ１）。元画像データは、このVLC符号の形式で保管される（ステップＳ２）。すなわち、元画像データは、データ量の小さい画像形式で保管される。その結果、保管すべき元画像データのデータ量が節減されるので、従来のウォータマーク符号化方法における問題が、緩和ないし解消される。
【００２１】
元画像データへウォータマークを埋め込むためには、まず、VLC符号の形式を有する元画像データに対して、VLC復号化、および、逆量子化が施され、それらを通じて、スペクトルデータSPCへと画像伸張される（ステップＳ３）。つぎに、符号化された著作権情報等を含むウォータマークが、このスペクトルデータSPCに対して埋め込まれる（ステップＳ４）。
【００２２】
つづいて、ウォータマークを含むスペクトルデータSPCは、量子化およびVLC符号化を通じて、VLC符号へと変換される（ステップＳ５）。そして、このVLC符号の形式、すなわち、圧縮画像データの形式で、画像データが流通業者等を通じて、市場へと配信される（ステップＳ６）。
【００２３】
つぎに、図１０の方法に対応するウォータマーク復号化方法を、図２および図３に沿って説明する。市中で採取された画像データは、従来と同様に、VLC符号の形式であることもあり、あるいは、原画像の形式であることも有り得る。いずれの形式で採取されても、画像データは、スペクトルデータSPC’へと変換される（ステップＳ１１）。
【００２４】
つぎに、VLC符号の形式の元画像データに、VLC復号化、および、逆量子化が施され、それらを通じて、スペクトルデータSPCが得られる（ステップＳ１２）。この処理は、ステップＳ３における処理と同一に行われる。ステップＳ１１を通じて得られたスペクトルデータSPC’は、ウォータマークを含んでいるために、ステップＳ１２で得られたスペクトルデータSPCとは値が異なる。
【００２５】
これら双方の差分を算出することによって、スペクトルデータSPC’に埋め込まれているウォータマークの取り出しが行われる（ステップＳ１３）。つぎに、取り出されたウォータマークの復号化が行われ（ステップＳ１４）、それによって、著作権情報等が読み出される。ステップＳ１１，Ｓ１３，Ｓ１４の処理は、それぞれ、従来のステップＳ６１，Ｓ６２，Ｓ６３（図１１）と同様に行われる。このため、これらの処理についての詳細な説明は略する。
【００２６】
＜2.符号化方法における改良すべき課題＞
以上の方法によって、保管すべき元画像データのデータ量が過大であるという、実用化の際に生じる問題点は、緩和ないし解消される。しかしながら、ウォータマークを埋め込む処理（ステップＳ４）が、従来のステップＳ５２（図１０）と同一の形態で実行されるならば、画質が著しく劣化する、または、復号正解率が劣化するという、新たな問題点が発生する。ここでは、この問題点について説明する。
【００２７】
画質が劣化するという問題の発生要因は、１画面の画像の中で、ウォータマークを埋め込む位置を決定する過程の中にあり、復号正解率が低下するという問題の発生要因は、埋め込むべきウォータマークの振幅を決定する過程の中に存在する。いずれの過程も、ステップＳ４の処理の中に含まれる。
【００２８】
画像データにJPEGなどの圧縮処理を施す際には、１画面を分割してなるブロックを単位として、DCT変換、量子化、および、VLC符号等の処理が行われる。その逆の演算においても同様である。各ブロックは、例えば、８×８画素、あるいは、１６×１６画素などで構成される。
【００２９】
ウォータマークを埋め込む位置として、これらの複数のブロックの中で、ある条件を満たす特定ブロック（一般には複数）が選ばれ、さらに、選ばれたブロックの中の、特定のスペクトル成分が選ばれる。スペクトル成分は、スペクトルデータの構成要素であり、スペクトル成分の組によってスペクトルデータが構成されている。このように、選択される「ウォータマークを埋め込む位置」は、画面上の空間的な位置と、スペクトルにおける位置との双方を含んでいる。
【００３０】
より具体的には、特定のスペクトル成分として、例えば、空間周波数が最も低い４個のＡＣ成分（ＡＣ低域４成分）が選択される。様々なスペクトル成分の中で、低域成分が、画像の品質に最も大きく影響するために、フィルタリング等の画像処理によって、画像の品質を劣化させることなく、ウォータマークを除去することが困難だからである。すなわち、ウォータマークの強度（取り去り難さ）を高めるためである。
【００３１】
特定ブロックとしては、例えば、上記のＡＣ低域４成分の各々の振幅が、ある程度大きく、しかも、高周波数成分が、ある程度大きいブロックが選択される。ＡＣ４成分の振幅が大きいという条件は、ウォータマークを埋め込んだ後の量子化による、ウォータマークの消滅を防ぐとともに、視覚上、ウォータマークを目立ち難くするために設定される。高周波成分が、ある程度大きいという条件は、ウォータマークを、さらに目立ち難くするためである。
【００３２】
ウォータマークを埋め込む位置として選択される特定ブロックおよび特定スペクトル成分に関する、これらの条件自体は、従来周知である。これらの３条件の中で、ＡＣ４成分の振幅が大きいという条件は、より具体的には、大きめに設定されたスケーリング係数SCを用いて仮の量子化を行ったときに、得られる量子化係数Ｑがゼロにならないという条件に置き換えて、判断が行われる。「大きめ」とは、VLC符号を最終的に得るために実行される量子化処理に用いられるスケーリング係数SCよりも、幾分（例えば、１だけ）大きいことを意味する。
【００３３】
スケーリング係数SCとは、量子化ステップを規定する因子の一つである。JPEGなどの画像圧縮のアルゴリズムでは、すべてのブロックに共通ではあるが、スペクトル成分ごとに個別の値を有するように、アルゴリズム自体によって準備された量子化テーブルTBの値に、１つのブロックに属するすべてのスペクトル成分に共通するスケーリング係数SCを乗じることによって、量子化の幅（粗さ）に相当する量子化ステップΔが与えられる。すなわち、
Δ＝SC×TB    ・・・・(数式1)
で与えられる。スケーリング係数SCの大きさは、圧縮して得られるVLC符号のデータ量などに応じて、適宜、適切な値に設定される。
【００３４】
上記したように、大きめに設定されたスケーリング係数SCを用いて量子化を行うことによって、ＡＣ低域４成分の量子化係数Ｑの値がゼロであるか否かが判定される。このとき、ウォータマークの埋め込み対象とされるスペクトルデータSPCは、図３に示されるように、原画像から直接に変換されて得られたものではなく、VLC符号への変換と、その後の逆変換とを通じて得られたものである。
【００３５】
すなわち、ウォータマークの埋め込み対象とされるスペクトルデータSPCは、図３の点線で示される経路Ａに沿った画像圧縮および画像伸張を通じて得られている。量子化処理は、不可逆的な処理であり、量子化とその後の逆量子化とが、同一の量子化ステップΔを用いて実行されても、スペクトルデータSPCは、量子化以前のスペクトルデータSPCと同一には再生されない。すなわち、経路Ａは不可逆となる。
【００３６】
このため、例えば、スケーリング係数SC＝１を用いて、経路Ａに沿って量子化および逆量子化が施されて得られたスペクトルデータSPCに、スケーリング係数SC＝２で量子化を施したときには、スペクトル成分とその量子化係数Ｑとの間の関係は、図４のグラフにおいて、点線で描かれることとなる。図４において、横軸Ｘは、スペクトル成分の値を表している。図４のグラフには、経路Ａを経ることなく、原画像から直接に得られたスペクトルデータSPCに対して、スケーリング係数SC＝１、および、SC＝２で量子化を施したときの、スペクトル成分Ｘと量子化係数Ｑの関係も、同時に示されている。
【００３７】
図４が示すように、スケーリング係数SC＝１で量子化が一旦施されているスペクトルデータSPCと、そうでないスペクトルデータSPCとの間で、スケーリング係数SC＝２で量子化して得られる量子化係数Ｑの値に、偏差が現れる。このことは、双方のスペクトルデータSPCの間で、ウォータマークを埋め込むべき位置に、偏差が現れることを意味する。この偏差によって、ウォータマークによる画像の歪が視覚上目立ってしまうという問題が、引き起こされる。
【００３８】
正解率が低下するという問題の要因は、図５によって説明される。ウォータマークの埋め込みの対象とされるスペクトルデータSPCは、量子化および逆量子化という処理をすでに経ているので、各スペクトル成分Ｘは、図５の白丸で示されるように、量子化ステップΔの整数倍の値しか取り得ない。ウォータマークが埋め込まれた後には、同じ大きさの量子化ステップΔを用いて量子化が行われるので、ウォータマークの振幅の大きさを、適切に選択しなければ、量子化の後には、ウォータマークが残らないこととなる。それが、復号正解率の劣化という問題を生起することとなる。
【００３９】
なお、図５における折れ線は、量子化を経ていないスペクトル成分Ｘと量子化係数Ｑとの間の関係を示している。実施の形態のウォータマーク符号化方法では、以下に説明するように、これらの問題を解消するように、ウォータマークの埋め込み処理（ステップＳ４）が実行される。
【００４０】
＜3.ウォータマーク埋め込み処理＞
図６は、ウォータマークを埋め込む処理（ステップＳ４）の内部フローを示すフローチャートである。この処理では、処理の対象として、スペクトルデータSPCの輝度成分Ysp、スケーリング係数SC、ウォータマークWM、および、乱数PNが供給される。輝度成分Yspは、スペクトルデータSPCを構成する各スペクトル成分に含まれる三要素の一つである。乱数PNとして、＋１、または、−１のいずれかの値（言い換えると、正または負の符号）が、ランダムに供給される。なお、以下のフローチャートにおいて、各ステップの中に描かれる数式に含まれる左向きの矢印は、右辺の値が左辺の変数へ代入されることを表現している。
【００４１】
処理が開始されると、ステップＳ２１において、変数δへ、乱数PNを符号とする微小な数値が付与される。例えば、
δ＝PN×１０-3    ・・・・(数式2)
で変数δが定義される。そして、新たな変数Ytmとして、
Ytm＝Ysp＋δ    ・・・・(数式3)
が定義される。すなわち、輝度成分Yspに変数δに相当する揺らぎが付加され、これを仮の輝度成分とすべく、変数Ytmが導入される。
【００４２】
つぎに、ステップＳ２２〜Ｓ２６の処理が、ブロックごとに反復的に実行される。ステップＳ２２では、揺らぎδを含んだ輝度成分Yspに相当する変数Ytmに量子化が施され、さらに、逆量子化が施される。すなわち、量子化係数Ｑが、
Ｑ＝round（Ytm／（TB×２））    ・・・・(数式4)
にもとづいて算出される。その後、この量子化係数Ｑに対して、
Qsp＝Ｑ×（TB×２）    ・・・・(数式5)
にもとづく逆量子化が施され、逆量子化係数としてのスペクトルデータQspが得られる。
【００４３】
ここでは、図１のステップＳ１およびＳ５で行われる量子化の際に用いられるスケーリング係数SCが、一例として、SC=1であると仮定している。このため、数式(4),(5)では、スケーリング係数SCが、”１”よりも一段階大きい”２”に設定されている。数式(4),(5)で得られる２個の変数Ｑ，Qspが、つぎのステップＳ２３の判定に用いられる。
【００４４】
数式(4)で得られる量子化係数Ｑは、輝度成分Yspそのものではなく、揺らぎ（ノイズ）δが重ね合わされた変数Ytmにもとづいて、算出された値である。このため、輝度成分Yspと量子化係数Ｑとの間の関係は、図７に示すように、揺らぎの向き、すなわち、変数δの符号に応じて、二通りに分散する。そして分散の中心には、量子化を経ることなく、原画像から直接に変換して得られた輝度成分Yspとその量子化係数Ｑとの間の関係（一点鎖線で示される）が位置する。
【００４５】
したがって、ランダムな揺らぎ（ランダムノイズ）を含んだ変数Ytmの量子化係数Ｑは、平均的に、量子化を経ていない輝度成分Yspの量子化係数Ｑと一致する。このため、上述した画質の劣化の問題が解消されることとなる。
【００４６】
ステップＳ２３では、ウォータマークの埋め込み位置の決定が行われる。そして、決定された位置ごとに識別番号INDが付与される。ステップＳ２３の内部フローは、図８のフローチャートで表される。ステップＳ２３では、量子化係数ＱおよびスペクトルデータQspが処理対象とされ、識別番号INDが出力される。すなわち、ステップＳ３１において、識別番号INDを付与すべき、特定ブロックの特定スペクトル成分として、つぎの３条件が設定される：
スペクトル成分がＡＣ低域４成分に属すること  ・・・・(条件1)
量子化係数Ｑがゼロでないこと  ・・・・(条件2)
スペクトルデータQspのＡＣ成分の絶対値の総和が、一定数（例えば、200）以上であること  ・・・・(条件3)。
【００４７】
これらの条件は、先に述べた、特定ブロックおよび特定スペクトル成分に関する条件を、具体的に表現したものとなっている。ステップＳ３１の処理が終了すると、選択された識別番号INDが出力され、ステップＳ２３の処理が完了する。その後、処理は、図６のステップＳ２４へと移行する。
【００４８】
ステップＳ２４では、識別番号INDが、ウォータマークWMを埋め込むのに十分な個数に達しているか否かが判定される。より具体的には、ウォータマークを構成する各ビットが、２個以上含まれているか否かが判定される。判定の結果が、「No」であれば、ステップＳ２５において、その旨のメッセージが出力される。その後、処理は終了されても良く、また、継続されても良い。判定の結果が、逆に「Yes」であれば、ステップＳ２６において、ウォータマークの振幅が決定される。決定された振幅の値は、新たな変数WMsへ付与される。
【００４９】
図９は、ステップＳ２６の内部フローを示すフローチャートである。この処理は、スケーリング係数SCを処理対象とし、ウォータマークの振幅WMsを出力する。はじめに、ステップＳ４１において、スケーリング係数SCが、１よりもわずかに小さい値（例えば、1/1.1）よりも小さいか否かが判定される。判定の結果が、「Yes」であれば、ステップＳ４２において、仮の変数WMsの値が、
WMs＝0.5    ・・・・(数式6)
で与えられる。一方、判定の結果が、「No」であれば、ステップＳ４３において、仮の変数WMsの値が、
WMs＝（SC／2）×1.1    ・・・・(数式7)
で与えられる。
【００５０】
つぎに、ステップＳ４４において、出力すべき最終的な変数WMsの値が、
WMs＝WMs×TB    ・・・・(数式8)
で与えられる。数式８の等式は、数学的な等式概念とは異なっており、その等号は、フローチャートの中の数式で用いられる左向き矢印と同義である。
【００５１】
数式８で与えられた変数WMsは、後述するステップＳ２９において、埋め込むべきウォータマークの振幅として取り扱われる。すなわち、ステップＳ２６の処理は、スペクトルデータSPCが図５の白丸で示される不連続な値しか取り得ないことを踏まえて、ウォータマークの振幅として、量子化ステップΔ（＝SC×TB）の1/2倍よりは幾分大きい値が与えられることを意味している。これによって、量子化にともなってウォータマークWMが消滅するという恐れは解消され、復号正解率の劣化という問題も発生しなくなる。
【００５２】
なお、数式７で算出される仮の変数WMsの値が、0.5以下であれば、ウォータマークの埋め込みに由来する画像の歪は、経験上、視覚では捉えられないことが、多数のシミュレーション実験を通じて判明した。このため、仮の変数WMsの値が、本来において0.5以下になるときには、強制的に、0.5の値に固定される（ステップＳ４１，Ｓ４２）。
【００５３】
視覚上、画像の歪が把握されない範囲内で、できるだけウォータマークの振幅を大きくしておくことが、ウォータマークの強度を高める上で、有益であるからである。仮の変数WMsの値が、0.5であることは、最終的に出力される振幅WMsが、
WMs＝0.5×TB    ・・・・(数式9)
であることと等価である。
【００５４】
一般には、
0 ＜L ≦0.5    ・・・・(数式10)
で与えられる定数Lを設定しておき、数式７で算出される仮の変数WMsの値が、
WMs ＜ L    ・・・・(数式11)
となるときには、強制的に、定数Lの値に固定されてもよい。仮の変数WMsの値が、Lであることは、最終的に出力される振幅WMsが、
WMs＝L×TB    ・・・・(数式12)
であることと等価である。様々な定数L（≦0.5）の値の中で、L＝0.5は、ウォータマークの強度が最大となる点で、もっとも望ましい形態であるといえる。
【００５５】
さらに一般的には、数式11の条件が成立するときに、仮の変数WMsが、
L≦K≦0.5    ・・・・(数式13)
で与えられる定数Kに設定されてもよい。仮の変数WMsの値が、Kであることは、最終的に出力される振幅WMsが、
WMs＝K×TB    ・・・・(数式14)
であることと等価である。
【００５６】
ステップＳ４４の処理が終了すると、算出された振幅WMsが出力され、ステップＳ２６の処理が完了する。その後、処理は、図６のステップＳ２７へと移行する。
【００５７】
ステップＳ２７では、ウォータマークWMを構成する二値データが、"0"と"1"で表現される形式から、"-1"と"1"とで表現される形式へと変換される。さらに、ウォータマークWMが、識別番号INDごとに複製される。つぎに、ステップＳ２８において、ウォータマークWMに乱数PNが乗ぜられる。つづくステップＳ２９では、ウォータマークWMに、ステップＳ２６で算出された振幅WMsが乗ぜられる。これによって、埋め込みの対象とされる最終的なウォータマークWMが得られる。
【００５８】
つぎに、ステップＳ３０の処理が、識別番号INDごとに反復的に実行される。ステップＳ３０では、識別番号INDごとに、輝度成分YspへウォータマークWMが重ね合わされ、ウォータマーク埋め込み後の輝度成分Ysp'が得られる。すべての識別番号INDに対して、ウォータマークの埋め込みが行われると、ステップＳ４は終了し、処理は、ステップＳ５（図１）へと移行する。なお、ステップＳ２４，Ｓ２７〜Ｓ３０の処理は、従来のウォータマーク符号化方法（図１０）において周知であるため、これらについての詳細な説明は略する。
【００５９】
【発明の効果】
第１の発明の方法では、元画像データが、データ量の小さい圧縮画像の形式で保管されるので、通常において多数種類の元画像データを保管する必要がある配信元において、保管すべき元画像データのデータ量が節減される。すなわち、元画像データの保管のための配信元の負担が軽減される。しかも、ウォータマークの埋め込み対象となり得るスペクトル成分を探索するのに、ランダムな揺らぎがスペクトルデータに付与され、その上で、工程(a),(e)よりも大きめの量子化ステップで量子化がなされ、それによって得られる量子化係数の値がゼロにならないスペクトル成分が探し出される。
【００６０】
このため、不可逆な過程である工程(a)と工程(c)で得られる二つのスペクトルデータの間に現れる偏差に由来する画質の劣化が抑制される。また、ウォータマークの埋め込みは、揺らぎが重ね合わされる前のスペクトル成分に対して行われるので、揺らぎの影響は、配信される画像データには残らない。
【００６１】
第２の発明の方法では、元画像データが、データ量の小さい圧縮画像の形式で保管されるので、通常において多数種類の元画像データを保管する必要がある配信元において、保管すべき元画像データのデータ量が節減される。すなわち、元画像データの保管のための配信元の負担が軽減される。しかも、重ね合わせられるウォータマークの振幅が、工程(a)および(e)の量子化で用いられる量子化ステップの１／２倍よりも大きい値に設定されるので、埋め込まれたウォータマークが量子化後に消滅するという不都合を、回避することができる。それによって、復号正解率の低下という問題の発生も回避される。
【００６２】
第３の発明の方法では、重ね合わせられるウォータマークの振幅が、量子化テーブルの値の定数Ｌ（≦１／２）倍を下回らないように設定される。これによって、視覚上、画像の歪が認識されない範囲内で、ウォータマークの強度が高められる。
【００６３】
第４の発明の方法では、採取された画像データが、第１ないし第３の発明の方法で符号化された後に配信された画像データの違法コピーであるか否かの判定を行うことができる。
【図面の簡単な説明】
【図１】  実施の形態のウォータマーク符号化方法の流れ図である。
【図２】  実施の形態のウォータマーク復号化方法の流れ図である。
【図３】  図１および図２の手順のタイミングチャートである。
【図４】  復号正解率の低下の第１の要因を説明するグラフである。
【図５】  復号正解率の低下の第２の要因を説明するグラフである。
【図６】  図１のステップＳ４の内部フローを示す流れ図である。
【図７】  第１の要因が解消される理由を説明するグラフである。
【図８】  図６のステップＳ２３の内部フローを示すグラフである。
【図９】  図６のステップＳ２６の内部フローを示すグラフである。
【図１０】  従来のウォータマーク符号化方法の流れ図である。
【図１１】  従来のウォータマーク復号化方法の流れ図である。
【図１２】  図１０および図１１の手順のタイミングチャートである。
【符号の説明】
δ  揺らぎ
Δ  量子化ステップ
Ｑ  量子化係数
SPC，SPC'  スペクトルデータ
SC  スケーリング係数
TB  量子化テーブル
WM  ウォータマーク
【図１】
0003722995.tif 000002
【図２】
0003722995.tif 000003
【図３】
0003722995.tif 000004
【図４】
0003722995.tif 000005
【図５】
0003722995.tif 000006
【図６】
0003722995.tif 000007
【図７】
0003722995.tif 000008
【図８】
0003722995.tif 000009
【図９】
0003722995.tif 000010
【図１０】
0003722995.tif 000011
【図１１】
0003722995.tif 000012
【図１２】
0003722995.tif 000013