(57)【特許請求の範囲】
【請求項１】
情報信号により表されるマテリアルにウォータマークを付加するウォータマーク付加方法において、
上記情報信号の、デジタル表現された変換係数を導出するステップと、
上記変換係数を変更及びエントロピー符号化することで上記マテリアルに上記ウォータマークを付加するステップとを有し、
上記変換係数の少なくとも幾つかは、可逆的なアルゴリズムに基づいて変更され、該変更は、エントロピー符号化されたビットのビット数を変更せず、
上記可逆的なアルゴリズムは、上記変換係数の順列からなる複数のグループのうち、エントロピー符号化されたビットのビット数を増加させないような２つ以上のグループが存在するか否かを判定して、当該２つ以上のグループから擬似乱数の値に基づいて入れ換えるべきグループを判定し、当該変換係数のグループを変更するものであることを特徴とするウォータマーク付加方法。
【請求項２】
上記可逆的なアルゴリズムは、
複数の上記変換係数毎に、各変換係数が要素として含まれ、上記導出された変換係数と同様の大きさの複数の変換係数からなる集合を定義し、
ある集合内の変更する要素を、その集合内の他の要素と入れ換えるものであることを特徴とする請求項１記載のウォータマーク付加方法。
【請求項３】
上記変更は、データを表すのではないことを特徴とする請求項１又は２記載のウォータマーク付加方法。
【請求項４】
上記変換係数は、量子化されることを特徴とする請求項１乃至３のいずれか１項記載のウォータマーク付加方法。
【請求項５】
上記変更は、上記マテリアルにおいて知覚可能であることを特徴とする請求項１乃至４のいずれか１項記載のウォータマーク付加方法。
【請求項６】
Ｘだけ変更する値Ｎ１の変換係数を、その集合内の値Ｎ２を有する他の要素と入れ換える場合、｜Ｎ１−Ｎ２｜＝Ｘであり、該Ｘは、可逆的なアルゴリズムに基づいて選択された擬似乱数の値であることを特徴とする請求項２記載のウォータマーク付加方法。
【請求項７】
上記集合は、最大値と最小値が約２Ｘ異なる要素を含むことを特徴とする請求項６記載のウォータマーク付加方法。
【請求項８】
上記Ｘは、擬似乱数ＲＮ１の値の比率Ｐ（０≦Ｐ≦１）に依存し、該比率Ｐは、Ｌ／Ｍの値に等しく、該Ｌは、所定の選択されたレベルを表し、該Ｍは、レベルＬの最大許容値に等しいことを特徴とする請求項６又は７記載のウォータマーク付加方法。
【請求項９】
上記Ｘは、擬似乱数ＲＮ２の値に基づいて変化することを特徴とする請求項８記載のウォータマーク付加方法。
【請求項１０】
上記変換係数は、その大きさグループを示すグループコードと、該大きさグループにおける該変換係数の位置を示すインデックスコードとを有し、該変換係数は、該インデックスコードを、上記可逆的なアルゴリズムにおける擬似乱数の値に基づいて選択される同じグループの他のインデックスコードで置き換えることにより、入れ換えられることを特徴とする請求項１記載のウォータマーク付加方法。
【請求項１１】
上記導出するステップは、供給されたデジタル表現されたマテリアルのサンプルを変換して、上記変換係数を導出し、該変換係数を量子化することを特徴とする請求項１乃至１０のいずれか１項記載のウォータマーク付加方法。
【請求項１２】
上記導出するステップは、上記変換係数を表すエントロピー符号化されたビットストリームが供給され、該変換係数を表すコードを該ビットストリームから抽出することを特徴とする請求項１乃至１０のいずれか１項記載のウォータマーク付加方法。
【請求項１３】
ウォータマークを付加するマテリアルの一部分又は複数部分を選択するステップを更に有することを特徴とする請求項１乃至１２のいずれか１項記載のウォータマーク付加方法。
【請求項１４】
ウォータマークを付加するマテリアルの一部分又は複数部分のビットマップを記憶し、該ビットマップに基づいて、該ウォータマークを付加するマテリアルの一部分又は複数部分を選択することを特徴とする請求項１３記載のウォータマーク付加方法。
【請求項１５】
ウォータマークを付加するマテリアルの一部分又は複数部分のビットマップを記憶し、該ビットマップに基づいて、該ウォータマークを付加するマテリアルの一部分又は複数部分を選択し、該ビットマップは、上記レベルＬの値を１つ以上の値を記憶することを特徴とする請求項８記載のウォータマーク付加方法。
【請求項１６】
上記ビットマップは、上記マテリアルの異なる部分に対して、異なる値のレベルＬの値を記憶することを特徴とする請求項１５記載のウォータマーク付加方法。
【請求項１７】
上記変換係数は、複数のブロックにグループ化され、上記選択するステップは、デジタル表現を変更する変換係数のブロックを選択することを特徴とする請求項１３乃至１６のいずれか１項記載のウォータマーク付加方法。
【請求項１８】
上記複数のブロックは、それぞれＤＣ係数とＡＣ係数を有し、上記選択するステップは、幾つかのブロックにおける変更するＡＣ係数と他のブロックにおける変更するＤＣ係数を選択することを特徴とする請求項１７記載のウォータマーク付加方法。
【請求項１９】
上記ＤＣ係数は、上記ＡＣ係数と異なる方法で変更されることを特徴とする請求項１８記載のウォータマーク付加方法。
【請求項２０】
上記変換係数は、ＤＣＴ係数であることを特徴とする請求項１乃至１９のいずれか１記載のウォータマーク付加方法。
【請求項２１】
コンピュータにロードされたときに、該コンピュータに請求項１乃至２０のいずれか１項記載のウォータマーク付加方法の各ステップを実行させるためのコンピュータにより実行可能なプログラム。
【請求項２２】
請求項１記載のウォータマーク付加方法によりマテリアルを表す情報信号に付加されたウォータマークを除去するウォータマーク除去方法において、
デジタル表現され、エントロピー符号化された変換係数を導出するステップと、
上記変換係数を表すコードを抽出し、該コードに可逆的なアルゴリズムの逆のアルゴリズムを適用するステップとを有し、
上記マテリアルにウォータマークを付加する際に、上記変換係数の順列からなる複数のグループのうち、エントロピー符号化されたビットのビット数を増加させないような２つ以上のグループが存在するか否かを判定して、当該２つ以上のグループから擬似乱数の値に基づいて入れ換えるべきグループを判定し、当該変換係数のグループを変更する上記可逆的なアルゴリズムによって、該変換係数のグループが変更されており、
上記コードに可逆的なアルゴリズムの逆のアルゴリズムを適用するステップでは、上記複数のグループのうち、エントロピー符号化されたビットのビット数を増加させないような２つ以上のグループが存在するか否かを判定して、当該２つ以上のグループから擬似乱数の値に基づいて入れ換えるべきグループを判定することを特徴とするウォータマーク除去方法。
【請求項２３】
上記マテリアルにウォータマークを付加する際に、複数の上記変換係数毎に、変換係数が要素として含まれ、上記導出された変換係数と同様の大きさの複数の変換係数からなる集合を定義し、ある集合内の変更する要素を、その集合内の他の要素と入れ換える上記可逆的なアルゴリズムによって、変換係数の少なくとも幾つかは、変更されており、
上記コードに可逆的なアルゴリズムの逆のアルゴリズムを適用するステップでは、
変更された各変換係数毎に、変換係数が要素として含まれる同様の大きさの変換係数からなる集合を定義し、
変更されていない値に復元される集合の要素を、上記マテリアルにウォータマークを付加する際に用いられた上記可逆的なアルゴリズムの逆のアルゴリズムに基づいて、その集合内の他の要素と入れ換えることを特徴とする請求項２２記載のウォータマーク除去方法。
【請求項２４】
上記変換係数は、量子化変換係数であることを特徴とする請求項２２又は２３記載のウォータマーク除去方法。
【請求項２５】
上記擬似乱数は、キーから導出されることを特徴とする請求項２２記載のウォータマーク除去方法。
【請求項２６】
Ｘだけ変更する値Ｎ１の変換係数を、その集合内の値Ｎ２を有する他の要素と入れ換える場合、｜Ｎ１−Ｎ２｜＝Ｘであり、該Ｘは、可逆的なアルゴリズムに基づいて選択された擬似乱数の値であることを特徴とする請求項２３記載のウォータマーク除去方法。
【請求項２７】
上記集合は、最大値と最小値が約２Ｘ異なる要素を含むことを特徴とする請求項２６記載のウォータマーク除去方法。
【請求項２８】
上記Ｘは、擬似乱数ＲＮ１の値の比率Ｐ（０≦Ｐ≦１）に依存し、該比率Ｐは、Ｌ／Ｍの値に等しく、該Ｌは、所定の選択されたレベルを表し、該Ｍは、レベルＬの最大許容値に等しいことを特徴とする請求項２６又は２７記載のウォータマーク除去方法。
【請求項２９】
上記Ｘは、擬似乱数ＲＮ２の値に基づいて変化することを特徴とする請求項２８記載のウォータマーク除去方法。
【請求項３０】
上記変換係数は、その大きさグループを示すグループコードと、該大きさグループにおける該変換係数の位置を示すインデックスコードとを有し、該変換係数は、該インデックスコードを、上記可逆的なアルゴリズムにおける擬似乱数の値に基づいて選択される同じグループの他のインデックスコードで置き換えることにより、入れ換えられることを特徴とする請求項２２記載のウォータマーク除去方法。
【請求項３１】
各変換係数毎に、変更された変換係数を示すデータを参照してウォータマークが付加されたか否かを判定し、変更された変換係数を変更のために選択するステップを更に有する請求項２２乃至３０のいずれか１項記載のウォータマーク除去方法。
【請求項３２】
上記データは、ビットマップであることを特徴とする請求項３１記載のウォータマーク除去方法。
【請求項３３】
各変換係数毎に、変更された変換係数を示すビットマップを参照してウォータマークが付加されたか否かを判定し、変更された変換係数を変更のために選択するステップを更に有し、
上記ビットマップは、上記レベルＬの１つ以上の値を記憶していることを特徴とする請求項２８記載のウォータマーク除去方法。
【請求項３４】
上記ビットマップは、上記マテリアルの異なる部分に対して、異なる値のレベルＬを記憶していることを特徴とする請求項３３記載のウォータマーク除去方法。
【請求項３５】
上記変換係数は、複数のブロックにグループ化され、上記選択するステップは、デジタル表現が変更された変換係数のブロックを選択することを特徴とする請求項３１乃至３４のいずれか１項記載のウォータマーク除去方法。
【請求項３６】
上記複数のブロックは、それぞれＤＣ係数とＡＣ係数を有し、上記選択するステップは、幾つかのブロックにおける変更されたＡＣ係数と他のブロックにおける変更されたＤＣ係数を選択することを特徴とする請求項３５記載のウォータマーク除去方法。
【請求項３７】
上記ＤＣ係数は、上記ＡＣ係数と異なる方法で変更されていることを特徴とする請求項３６記載のウォータマーク除去方法。
【請求項３８】
上記変換係数は、ＤＣＴ係数であることを特徴とする請求項２２乃至３７のいずれか１記載のウォータマーク除去方法。
【請求項３９】
上記ウォータマークを除去するのに必要な逆の変更データをデータキャリアからダウンロードするステップを更に有する請求項２９乃至３８のいずれか１記載のウォータマーク除去方法。
【請求項４０】
コンピュータにロードされたときに、該コンピュータに請求項２２乃至３９のいずれか１項記載のウォータマーク除去方法の各ステップを実行させるためのコンピュータにより実行可能なプログラム。
【請求項４１】
情報信号により表されるマテリアルにウォータマークを付加するウォータマーク付加装置において、
上記情報信号の、デジタル表現された変換係数を導出し、該変換係数を変更及びエントロピー符号化することで上記マテリアルに上記ウォータマークを付加するプロセッサを備え、
上記プロセッサは、上記変換係数の少なくとも幾つかを、可逆的なアルゴリズムに基づいて変更し、該変更は、エントロピー符号化されたビットのビット数を変更せず、
上記可逆的なアルゴリズムは、上記変換係数の順列からなる複数のグループのうち、エントロピー符号化されたビットのビット数を増加させないような２つ以上のグループが存在するか否かを判定して、当該２つ以上のグループから擬似乱数の値に基づいて入れ換えるべきグループを判定し、当該変換係数のグループを変更するものであることを特徴とするウォータマーク付加装置。
【請求項４２】
上記可逆的なアルゴリズムは、
複数の上記変換係数毎に、変換係数が要素として含まれ、上記導出された変換係数と同様の大きさの複数の変換係数からなる集合を定義し、
ある集合内の変更する要素を、その集合内の他の要素と入れ換えるものであることを特徴とする請求項４１記載のウォータマーク付加装置。
【請求項４３】
上記プロセッサは、
上記情報信号から導出される、デジタル表現された変換係数を導出する変換プロセッサと、
上記デジタル表現された変換係数を変更し、エントロピー符号化する変更プロセッサとを備えることを特徴とする請求項４１又は４２記載のウォータマーク付加装置。
【請求項４４】
上記プロセッサは、上記マテリアルにおいて知覚可能な変更を行うことを特徴とする請求項４１又は４３記載のウォータマーク付加装置。
【請求項４５】
Ｘだけ変更する値Ｎ１の変換係数を、その集合内の値Ｎ２を有する他の要素と入れ換える場合、｜Ｎ１−Ｎ２｜＝Ｘであり、該Ｘは、可逆的なアルゴリズムに従って選択された擬似乱数の値であることを特徴とする請求項４２記載のウォータマーク付加装置。
【請求項４６】
上記集合は、最大値と最小値が約２Ｘ異なる要素を含むことを特徴とする請求項４５記載のウォータマーク付加装置。
【請求項４７】
上記Ｘは、擬似乱数ＲＮ１の値の比率Ｐ（０≦Ｐ≦１）に依存し、該比率Ｐは、Ｌ／Ｍの値に等しく、該Ｌは、所定の選択されたレベルを表し、該Ｍは、レベルＬの最大許容値に等しいことを特徴とする請求項４５又は４６記載のウォータマーク付加装置。
【請求項４８】
上記Ｘは、擬似乱数ＲＮ２の値に基づいて変化することを特徴とする請求項４７記載のウォータマーク付加装置。
【請求項４９】
上記変換係数は、その大きさグループを示すグループコードと、該大きさグループにおける該変換係数の位置を示すインデックスコードとを有し、該デジタル表現は、該インデックスコードを、上記可逆的なアルゴリズムにおける擬似乱数の値に基づいて選択される同じグループの他のインデックスコードで置き換えることにより、入れ換えられることを特徴とする請求項４１記載のウォータマーク付加装置。
【請求項５０】
上記プロセッサは、供給されるデジタル表現されたマテリアルのサンプルを変換して、上記変換係数を導出し、該変換係数を量子化するように動作することを特徴とする請求項４１乃至４９のいずれか１項記載のウォータマーク付加装置。
【請求項５１】
上記プロセッサは、上記変換係数を表すエントロピー符号化されたビットストリームが供給され、該変換係数を表すコードを該ビットストリームから抽出するように動作することを特徴とする請求項４１乃至４９のいずれか１項記載のウォータマーク付加装置。
【請求項５２】
上記プロセッサは、ウォータマークを付加するマテリアルの一部分又は複数部分を選択することを特徴とする請求項４１乃至５１のいずれか１項記載のウォータマーク付加装置。
【請求項５３】
上記プロセッサは、ウォータマークを付加するマテリアルの一部分又は複数部分のビットマップを記憶し、該ビットマップに基づいて、該ウォータマークを付加するマテリアルの一部分又は複数部分を選択することを特徴とする請求項５２記載のウォータマーク付加装置。
【請求項５４】
上記プロセッサは、ウォータマークを付加するマテリアルの一部分又は複数部分のビットマップを記憶し、該ビットマップに基づいて、該ウォータマークを付加するマテリアルの一部分又は複数部分を選択し、該ビットマップは、上記レベルＬの１つ以上の値を記憶することを特徴とする請求項４７記載のウォータマーク付加装置。
【請求項５５】
上記ビットマップは、上記マテリアルの異なる部分に対して、異なる値のレベルＬを記憶することを特徴とする請求項５４記載のウォータマーク付加装置。
【請求項５６】
上記プロセッサは、上記変換係数を複数のブロックにグループ化し、デジタル表現を変更する変換係数のブロックを選択することを特徴とする請求項５２乃至５５のいずれか１記載のウォータマーク付加装置。
【請求項５７】
上記複数のブロックはそれぞれＤＣ係数とＡＣ係数を有し、
上記変更プロセッサは、幾つかのブロックにおける変更するＡＣ係数と他のブロックにおける変更するＤＣ係数を選択することを特徴とする請求項５６記載のウォータマーク付加装置。
【請求項５８】
上記ＤＣ係数は、上記ＡＣ係数と異なる方法で変更されることを特徴とする請求項５７記載のウォータマーク付加装置。
【請求項５９】
上記プロセッサは、ＤＣＴ係数を生成することを特徴とする請求項４１乃至５８のいずれか１項記載のウォータマーク付加装置。
【請求項６０】
コンピュータにロードされたときに、該コンピュータを請求項４１乃至５９のいずれか１項記載のウォータマーク付加装置の各プロセッサとして機能させるためのコンピュータにより実行可能なプログラム。
【請求項６１】
請求項４１記載のウォータマーク付加装置によりマテリアルに付加されたウォータマークを除去するウォータマーク除去装置において、
上記ウォータマークが付加されたマテリアルの、デジタル表現され、エントロピー符号化された変換係数を表すビットストリームを導出し、該ビットストリームから該変換係数を表すコードをビットストリームから抽出するデコーダと、
上記コードに可逆的なアルゴリズムの逆のアルゴリズムを適用する逆変更プロセッサとを備え、
上記マテリアルにウォータマークを付加する際に、上記変換係数の順列からなる複数のグループのうち、エントロピー符号化されたビットのビット数を増加させないような２つ以上のグループが存在するか否かを判定して、当該２つ以上のグループから擬似乱数の値に基づいて入れ換えるべきグループを判定し、当該変換係数のグループを変更する上記可逆的なアルゴリズムによって、該変換係数のグループが変更されており、
上記逆変更プロセッサは、上記複数のグループのうち、エントロピー符号化されたビットのビット数を増加させないような２つ以上のグループが存在するか否かを判定して、当該２つ以上のグループから擬似乱数の値に基づいて入れ換えるべきグループを判定することを特徴とするウォータマーク除去装置。
【請求項６２】
上記マテリアルにウォータマークを付加する際に、複数の上記変換係数毎に、変換係数が要素として含まれ、上記導出された変換係数と同様の大きさの複数の変換係数からなる集合を定義し、ある集合内の変更する要素を、その集合内の他の要素と入れ換える上記可逆的なアルゴリズムによって、変換係数の少なくともいくつかは、変更されており、
上記逆変更プロセッサは、変更された各変換係数毎に、変換係数が要素として含まれる同様の大きさの変換係数からなる集合を定義し、
変更されていない値に復元される集合の要素を、上記マテリアルにウォータマークを付加する際に用いられた上記可逆的なアルゴリズムの逆のアルゴリズムに基づいて、その集合内の他の要素と入れ換えることを特徴とする請求項６１記載のウォータマーク除去装置。
【請求項６３】
上記擬似乱数は、キーから導出されることを特徴とする請求項６１記載のウォータマーク除去装置。
【請求項６４】
Ｘだけ変更する値Ｎ１の変換係数を、その集合内の値Ｎ２を有する他の要素と入れ換える場合、｜Ｎ１−Ｎ２｜＝Ｘであり、該Ｘは、上記可逆的なアルゴリズムに基づいて選択された擬似乱数の値であることを特徴とする請求項６２記載のウォータマーク除去装置。
【請求項６５】
上記集合は、最大値と最小値が約２Ｘ分だけ異なる要素を含むことを特徴とする請求項６４記載のウォータマーク除去装置。
【請求項６６】
上記Ｘは、擬似乱数ＲＮ１の値の比率Ｐ（０≦Ｐ≦１）に依存し、該比率Ｐは、Ｌ／Ｍの値に等しく、該Ｌは、所定の選択されたレベルを表し、該Ｍは、レベルＬの最大許容値に等しいことを特徴とする請求項６４又は６５記載のウォータマーク除去装置。
【請求項６７】
上記Ｘは、擬似乱数ＲＮ２の値に基づいて変化することを特徴とする請求項６６記載のウォータマーク除去装置。
【請求項６８】
上記変換係数は、その大きさグループを示すグループコードと、該大きさグループにおける該変換係数の位置を示すインデックスコードとを有し、該変換係数は、該インデックスコードを、上記可逆的なアルゴリズムにおける擬似乱数の値に基づいて選択される同じグループの他のインデックスコードで置き換えることにより、入れ換えられることを特徴とする請求項６１記載のウォータマーク除去装置。
【請求項６９】
上記逆変更プロセッサは、各変換係数毎に、変更された変換係数を示すデータを参照してウォータマークが付加されたか否かを判定し、変更された変換係数を変更のために選択するように動作することを特徴とする請求項６１乃至６８いずれか１項記載のウォータマーク除去装置。
【請求項７０】
上記データは、ビットマップであることを特徴とする請求項６９記載のウォータマーク除去装置。
【請求項７１】
上記逆変換プロセッサは、各変換係数毎に、変更された変換係数を示すビットマップを参照してウォータマークが付加されたか否かを判定し、変更された変換係数を変更のために選択し、該ビットマップは、上記レベルＬの１つ以上の値を記憶していることを特徴とする請求項６６記載のウォータマーク除去装置。
【請求項７２】
上記ビットマップは、上記マテリアルの異なる部分に対して、異なる値のレベルＬを記憶していることを特徴とする請求項７１記載のウォータマーク除去装置。
【請求項７３】
上記逆変更プロセッサは、上記変換係数を複数のブロックにグループ化し、デジタル表現が変更された変換係数のブロックを選択することを特徴とする請求項６９乃至７２のいずれか１項記載のウォータマーク除去装置。
【請求項７４】
上記複数のブロックは、それぞれＤＣ係数とＡＣ係数を有し、上記逆変更プロセッサは、幾つかのブロックにおける変更されたＡＣ係数と他のブロックにおける変更されたＤＣ係数を選択することを特徴とする請求項７３記載のウォータマーク除去装置。
【請求項７５】
上記ＤＣ係数は、上記ＡＣ係数と異なる方法で変更されていることを特徴とする請求項７４記載のウォータマーク除去装置。
【請求項７６】
上記変換係数は、ＤＣＴ係数であることを特徴とする請求項６１乃至７５のいずれか１項記載のウォータマーク除去装置。
【請求項７７】
ウォータマークを付加するマテリアルにおける位置を定義するテンプレートと、ウォータマークを付加するのに必要な他のデータを記憶するデータキャリアを更に備える請求項４１乃至５９のいずれか１項記載のウォータマーク付加装置。
【請求項７８】
マテリアルにおいてウォータマークを付加する位置を定義するテンプレートと、当該付加されたウォータマークを除去するのに必要な他のデータを記憶するデータキャリアを更に備える請求項６１乃至７６のいずれか１に記載のウォータマーク除去装置。
【請求項７９】
上記他のデータは、擬似乱数を生成するための少なくとも１つのセキュリティキーを含むことを特徴とする請求項７８記載のウォータマーク除去装置。
【請求項８０】
上記他のデータは、少なくとも、擬似乱数の値の限界に関するデータを含むことを特徴とする請求項７８記載のウォータマーク除去装置。
【請求項８１】
上記他のデータは、変更の大きさに関するデータを含むことを特徴とする請求項７８又は８０記載のウォータマーク除去装置。
【請求項８２】
請求項４１乃至５９のいずれか１項記載のウォータマーク付加装置を備えるカメラ／レコーダ。
【請求項８３】
請求項４１乃至５９のいずれか１項記載のウォータマーク付加装置と、
請求項６１乃至７６のいずれか１項記載のウォータマーク除去装置とを備えるシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マテリアルの変更に関する。本発明の好ましい実施の形態は、マテリアルの知覚可能な変更に関する。
【０００２】
ここで用いる「マテリアル」とは、画像マテリアル、オーディオマテリアル、データマテリアルのうちの少なくとも１つ以上を含む情報信号により表される情報マテリアルを意味する。画像マテリアルは、静止画像と動画像に対して包括的なものであり、画像を表すビデオ及び他の形式の情報信号を含んでいる。
【０００３】
【従来の技術】
マテリアルにウォータマークを埋め込むことが知られいる。データをウォータマークとしてマテリアルに埋め込むことができる。ウォータマークは、知覚可能又は知覚不可能なものであってもよい。本発明の実施の形態では知覚可能なウォータマークを使用する。
【０００４】
また、画像を空間領域から変換領域、例えばウェーブレット領域に変換し、ウェーブレット係数を変更することによってウォータマークを埋め込むことにより、画像にウォータマークを埋め込むことが知られている。そして、ウォータマークが埋め込まれた変換領域の画像を空間領域に逆変換する。この技術については、例えば、Hisashi Inoue, et al., "An image watermarking method based on the wavelet transform," IEEE, 0-7803-5467-2/99に記載されている。
【０００５】
米国特許第ＵＳ−Ａ−５８０９１３９号（Girod et al.）は、既に圧縮符号化されたビデオマテリアル（以下、単に圧縮ビデオともいう）に、不可視のウォータマークを埋め込むことが開示されている。ＭＰＥＧ２規格により圧縮符号化されたビデオをエントロピー復号及び逆量子化して、ＤＣＴ係数を得る。空間領域のウォータマークをＤＣＴ変換領域に変換し、ＤＣＴ変換されたウォータマークを、ＤＣＴ変換されたビデオのＤＣＴ係数（以下、単に係数ともいう）に加算する。ウォータマークを加算しても、圧縮ビデオのビットレートを維持するために、様々な処理を行う。０でない係数のみを変更する。また、ＤＣＴ符号化され、ウォータマークが埋め込まれた係数のビット数を、ウォータマークが埋め込まれる前の係数のビット数（＋前の符号化処理で保存されたあらゆる余分なスペアビットのビット数）と比較する。コントローラは、ウォータマークが埋め込まれたビットストリームと、ウォータマークが埋め込まれていない元のビットストリームのどちらかを選択して出力するかを制御する。ウォータマークが埋め込まれずにエントロピー符号化された係数がｎ０ビットを使用し、ウォータマークが埋め込まれた後、エントロピー符号化された係数がｎ１ビットを使用する場合、利用可能なスペアビットのビット数をｎ３とすると、ｎ１≦ｎ０＋ｎ３のときは、ウォータマークが埋め込まれた係数を出力する。ウォータマークは、ビデオ復号器によって検出することができるが、ウォータマーク埋込アルゴリズムを逆にすることによっては、ウォータマークが埋め込まれたビデオを元のビデオに戻すことはできない。
【０００６】
国際特許出願第ＷＯ９９／１０８３７号（Digimarc）には、例えばＭＰＥＧ２規格を用いて画像を圧縮符号化し、ＤＣＴ係数を変更してウォータマークを埋め込むビデオ画像のウォータマーク埋込方法が開示されている。係数を変更することによるビットレートの増加量から、係数を変更することによるビットレートの減少量を減じた量を表す数値を一定の値に保つことにより、ビットレートを維持する。累積された数値が変化し、正又は負の限界値を超えた場合、それ以上の係数の変更は行わない。ウォータマークは、ビデオ復号器によって検出することができるが、ウォータマーク埋込アルゴリズムを逆にすることによっては、ウォータマークが埋め込まれたビデオを元のビデオに戻すことはできない。
【０００７】
米国特許第ＵＳ−Ａ−５８０９１３９号及び国際特許出願第ＷＯ９９／１０８３７号のいずれも、ビットレートを監視して、特定の限界値に達した場合、ウォータマークの埋込を停止する手段が必要である。米国特許第ＵＳ−Ａ−５８０９１３９号及び国際特許出願第ＷＯ９９／１０８３７号の場合、画像内におけるウォータマークの分布は、ランダム分布となる。これらは、メッセージを表すデータを画像に埋め込む、不可逆的な且つ知覚不可能なウォータマークを提案すること目的としている。
【０００８】
【発明が解決しようとする課題】
マテリアル、特に画像を圧縮符号化することが知られている。また、マテリアルにデータを加えてマテリアルを変更した後、圧縮符号化すると、その圧縮符号化は、通常、効率的ではない。圧縮マテリアルを表すビットのビット数の変化を最小限に抑えて、伸長マテリアル内における知覚可能なマテリアルの変更、例えば画像内における可視的な変更を行うように、圧縮マテリアルを生成することが望ましい。好ましくは、既に圧縮符号化されたマテリアルとこれから圧縮符号化されるマテリアルの両方に容易に適用することができるという意味において、マテリアルを変更することが望ましい。
【０００９】
【課題を解決するための手段】
上述の課題を解決するために、本発明に係るマテリアルの変更方法は、情報信号により表されるマテリアルを変更するマテリアルの変更方法において、情報信号の変換係数のデジタル表現を導出するステップと、デジタル表現を変更及びエントロピー符号化するステップとを有し、デジタル表現の少なくとも幾つかは、可逆的なアルゴリズムに基づいて変更され、この変更はエントロピー符号化されたビットのビット数を変更せず、可逆的なアルゴリズムは、エントロピー符号化されたビットのビット数を増加させないようなデジタル表現のグループの入換えが１つ以上存在するか否かを判定して、入れ換えるグループ又は入れ換えないグループを擬似乱数の値に基づいて選択することにより、このデジタル表現のグループを変更するものであることを特徴とする。
また、本発明に係るマテリアルの変更方法は、情報信号により表されるマテリアルを変更するマテリアルの変更方法において、情報信号の変換係数のデジタル表現を導出するステップと、デジタル表現を変更及びエントロピー符号化するステップとを有し、デジタル表現の少なくとも幾つかは、可逆的なアルゴリズムに基づいて変更され、この変更はエントロピー符号化されたビットのビット数を変更せず、可逆的なアルゴリズムは、各デジタル表現毎に、デジタル表現が要素として含まれる同様の大きさのデジタル表現からなる集合を定義し、ある集合内の変更する要素を、所定の入換えアルゴリズムに基づいて、その集合内の他の要素と入れ換えるものであることを特徴とする。
【００１０】
「エントロピー符号化されたビットのビット数を変更しない」とは、エントロピー符号化された変更のないマテリアルのビット数に対して、ビット数の少量の増減があり、好ましくはビット数は変化しないという意味である。
【００１１】
「擬似ランダム的な変更」は、キーから導出された擬似乱数に基づいて、変換係数又は変換係数のグループのビットを暗号化（encrypting）、置換（transposing）又は入れ換える（permuting）ことによって行うことができる。
【００１２】
このマテリアルの変換方法は、変換係数に適用されるので、圧縮マテリアルと非圧縮マテリアルの両方に容易に適用可能である。これは、変換係数を表すコードを含んだビットストリームを有する圧縮マテリアルについて特に有利である。変更を行う前に、エントロピー符号化されたビットストリームからコードを抽出するだけでよいからである。可逆的なアルゴリズムに基づいて変更を行うことにより、上述のようなGirod及びDigimarcによる従来の提案では不可能であった変更の除去と元のマテリアルの復元を行うことができる。
【００１３】
本発明の幾つかの実施の形態では、所定の入換えアルゴリズムに基づいて、デジタル表現の値を他の値で入れ換えることにより変更を行う。入れ換えられる値を適切に選択することにより、このような入換えで、エントロピー符号化されたビットのビット数を変更せずにマテリアルを変更することができる。好ましくは、ビット数は増加しない。しかし、状況によってはビット数の少量の増減がある場合もある。
【００１４】
マテリアルの圧縮符号化を行う本発明の一実施の形態においては、変更と圧縮符号化を組み合わせることにより、圧縮符号化が変更に悪影響を与えることはない。また、使用ビット数を変更しないことにより、圧縮符号化及び変更が行われたマテリアルのバンド幅（データレート）は変化しない。
【００１５】
可逆的なアルゴリズムを用いることにより、変更マテリアルが、変更された圧縮符号化データを不可逆的に変更するような方法で処理又は変更されたのでない限り、変更の除去と元のマテリアルの復元が可能である。
【００１６】
また、本発明は、上述の実施の形態の方法を使う装置を提供する。
【００１７】
本発明に係る変更の除去方法は、上述のマテリアルの変更方法によりマテリアルを表す情報信号に行われた変更を除去する変更の除去方法において、変換係数のエントロピー符号化されたデジタル表現を導出するステップと、デジタル表現を表すコードを抽出し、このコードに可逆的なアルゴリズムの逆のアルゴリズムを適用するステップとを有し、マテリアルに変更を加える際に、エントロピー符号化されたビットのビット数を増加させないようなデジタル表現のグループの入換えが１つ以上存在するか否かを判定して、入れ換えるグループ又は入れ換えないグループを擬似乱数の値に基づいて選択する可逆的なアルゴリズムによって、このデジタル表現のグループが変更されており、コードに可逆的なアルゴリズムの逆のアルゴリズムを適用するステップでは、エントロピー符号化されたビットのビット数を増加させないようなデジタル表現のグループの入換えが１つ以上存在するか否かを判定して、入れ換えられたグループ又は入れ換えられていないグループを擬似乱数の値に基づいて選択することを特徴とする。
また、本発明に係る変更の除去方法は、上述のマテリアルの変更方法によりマテリアルを表す情報信号に行われた変更を除去する変更の除去方法において、変換係数のエントロピー符号化されたデジタル表現を導出するステップと、デジタル表現を表すコードを抽出し、このコードに可逆的なアルゴリズムの逆のアルゴリズムを適用するステップとを有し、マテリアルに変更を加える際に、各デジタル表現毎に、デジタル表現が要素として含まれる同様の大きさのデジタル表現からなる集合を定義し、ある集合内の変更する要素を、所定の入換えアルゴリズムに基づいて、その集合内の他の要素と入れ換える可逆的なアルゴリズムによって、デジタル表現の少なくとも幾つかは、変更されており、コードに可逆的なアルゴリズムの逆のアルゴリズムを適用するステップでは、変更された各デジタル表現毎に、デジタル表現が要素として含まれる同様の大きさのデジタル表現からなる集合を定義し、変更されていない値に復元される集合の要素を、マテリアルに変更を加える際に用いられた所定の入換えアルゴリズムの逆のアルゴリズムに基づいて、その集合内の他の要素と入れ換えることを特徴とする。
【００１８】
また、本発明は、コンピュータ上で動作するときに、上述の他の実施の形態の方法の各ステップを実行するためのコンピュータプログラムを提供する。
【００１９】
また、本発明は、上述の他の実施の形態の方法を使う装置を提供する。
【００２０】
本発明の実施の形態では、メッセージを表すデータをマテリアルに埋め込むのではないことが、以下の説明からわかる。実施の形態では、ビットマップに応じて、選択された変換係数又は変換係数ブロックを変更する。ビットマップはパターンを表していてもよい。しかし、ビットマップにより示される位置で行われた変更は、理解可能なデータを表すものではない。
【００２１】
【発明の実施の形態】
本発明をより理解するために、以下、図面を参照して説明する。
【００２２】
概要
以下に説明する本発明の実施の形態では、ウォータマークと称する変更を画像に加える。図１３は、本発明の実施の形態により生成されたウォータマークが埋め込まれた画像の具体例である。以下の説明から明らかなように、図１３に示す変更の全体的な効果は、分かり易い形状のパターン（ＳＯＮＹ）であるが、変更自体は、データを表すものではない。更に、パターン自体は、理解可能なものである必要はない。
【００２３】
エンコーダ（図１）
図１は、エンコーダの構成を示すブロック図である。図１のエンコーダは、例えば、画像圧縮装置を含むる高精細度カメラ／レコーダである。エンコーダは、カラーアナログ画像ソース１と、既知の４：２：２フォーマットに従って画像をサンプリングするアナログ／デジタル変換器及びプロセッサ２とを備える。画像の１フレームの輝度成分は、図２のａに示すように、各ラインが１９２０サンプルからなる１０８０ラインを有している。アナログ／デジタル変換器及びプロセッサ２は、画像をフィルタリングし、３：１：１のサブサンプル画像を出力する。輝度（Ｙ）成分は、図２のｂに示すように、各ラインが１４４０サンプルからなる１０８０ラインを有する。デマルチプレクサ３は、奇数サンプルと偶数サンプルを別々の奇数チャンネルと偶数チャンネルに分離する。したがって、図２のｃに示すように、偶数Ｙサンプルのフレームは、各ラインが７２０サンプルからなる１０８０ラインを有する。奇数Ｙサンプルのフレームも同じである。
【００２４】
この具体例では、エンコーダは、カメラ／レコーダの一部である。後述するＤＣＴブロックに対応した奇数及び偶数のＹサンプルのブロックは、シャフリングプロセッサ４ｏ、４ｅにおいて、既知のシャフリングアルゴリズムに基づいてシャフリングされる。奇数及び偶数のＹサンプルは、既知の方法により、ビデオテープの別々のトラックに記録される。シャフリングは、当該技術分野で良く知られているように、ビデオテープから再生される画像に対してテープの欠陥の影響を最小限にするために行われる。また、シャフリングは、シャトル再生を向上させるためにも用いられる。シャフリングは、本発明の本質的な部分ではない。
【００２５】
シャフリングされた奇数及び偶数のＹサンプルからなる各フレーム（以下、奇数フレーム、偶数フレームという）は、空間領域の画像を表している。奇数フレーム及び偶数フレームは、それぞれＤＣＴ変換器５ｏ、５ｅによりＤＣＴ変換領域に変換される。奇数又は偶数のＹサンプルの各変換フレームは、図２のｄに示すように、９０×１３５個のＤＣＴブロックからなり、各ＤＣＴブロックは、図２のｅに示すように、８×８個のＤＣＴ係数からなる。各ＤＣＴブロックは、図２のｅにおいてＤＣで示す１つのＤＣ係数と、図２のｅにおいてＡＣで一具体例を示す６３個のＡＣ係数とを有する。
【００２６】
ＤＣＴ係数は、量子化器６ｏ、６ｅで量子化され、この量子化は、周知の方法で制御値Ｑにより制御される。ウォータマークの埋込を行わない場合、量子化ＤＣＴ係数の奇数及び偶数フレームは、エントロピーエンコーダ８ｏ、８ｅで周知の方法によりエントロピー符号化される。この具体例におけるエントロピー符号化は、ハフマン符号を用いた符号化である。量子化され、エントロピー符号化された係数は、この具体例では、周知の方法でビデオテープに記録される。なお、ビデオテープは、図１では示していない。記録は、他の記録媒体、例えばディスクに行うこともできる。
【００２７】
量子化ＤＣＴ係数の変更によるウォータマークの埋込
エンコーダの奇数及び偶数チャンネルは、量子化輝度（Ｙ）のＤＣＴ係数を変更してウォータマークを埋め込む変更プロセッサ７ｏ、７ｅを備えている。以下、これらの変更プロセッサ７ｏ、７ｅは同じ動作をするので、変更プロセッサ７として説明する。以下の説明では、一具体例として、量子化ＤＣＴ係数はｎビットで表され、ｎは８〜１４の範囲であるとする。すなわち、ＤＣ係数は８〜１４ビットを有し、ＡＣ係数は１４ビットを有している。説明を簡単にするために、以下ではｎビットという。
【００２８】
ウォータマークの形状
図３Ａ及び図１３に示すウォータマークの形状は、変更プロセッサ７のフレームメモリ９Ａに記憶されているビットマップによって定義される。ビットマップには、ウォータマークを埋め込むために変更されるＤＣＴブロックを選択するデータが含まれている。例えば、フレームメモリ９Ａ上のある位置のビットの値が０は、画像中の対応する位置のＤＣＴブロックは変更されないことを示し、ビットの値が１は、変更するために選択されたＤＣＴブロックを示している。
【００２９】
好ましい実施の形態においては、このようなフレームメモリ９Ａが２つある。１つは、ＡＣ係数を変更するＤＣＴブロックを選択するためのものであり、もう１つは、ＤＣ係数を変更するＤＣＴブロックを選択するためのものである。最も好ましいのは、２つのフレームメモリによる選択が独立して行われることである。以下、フレームメモリ９Ａをテンプレートメモリ９Ａとも呼ぶ。以下の説明では、ＤＣ係数をＡＣ係数とは異なる方法で処理するものとする。また、他の実施の形態では、ウォータマークを埋め込むために、ＤＣ係数のみを変更する場合を説明する。更なる他の実施の形態では、ウォータマークを埋め込むために、ＡＣ係数のみを変更する場合を説明する。
【００３０】
説明及び図面を簡単にするために、図３Ａ及び図３Ｂに示すビットマップでは、デジタルサンプルは、シャフリングされていないものとする。
【００３１】
ＤＣ係数の処理（図４及び図５）
変更プロセッサ７は、図３Ｂに示すような変更関数メモリ９Ｂを有し、この変更関数メモリ９Ｂは、ＤＣテンプレートメモリ９Ａ内のビットマップにより選択される各ＤＣＴブロックのＤＣ係数に対する変更値Ｃを記憶している。
【００３２】
変更値Ｃは、図４に示すように、変更プロセッサ７により以下のように計算される。
【００３３】
ステップＳ１において、図３ＡのＤＣテンプレートを生成する。図３Ａに示すように、ウォータマークの異なる部分について異なるレベルＬを指定してもよい。レベルＬは、８ビットにより定義され、したがって、範囲０〜２５５内の値を有する。図３Ａにおいては、レベルＬは、例えばＤＣテンプレートの異なる部分に対して５と１２７の値を有している。レベルＬは、ＤＣテンプレートメモリ９Ａに記憶してもよい。
【００３４】
ステップＳ２において、キーＫｅｙ１に基づいて、擬似乱数ＲＮ１を発生する。擬似乱数ＲＮ１は、最小値≦ＲＮ１≦最大値の所定の範囲、例えば１００≦ＲＮ１≦１０００に制限される。（ＤＣテンプレートで示すように）ＤＣ係数の値を変更するそれぞれのＤＣＴブロックに対して、新たな擬似乱数ＲＮ１を発生する。
【００３５】
ステップＳ３において、変更値Ｃを、
Ｃ＝（Ｌ／Ｍ）・ＲＮ１
により計算する。ここで、Ｍは、レベルＬが取りうる最大値であり、この実施の形態では、Ｍ＝２５５である。変更値Ｃは、変更関数メモリ９Ｂに記憶される。
【００３６】
偶数サンプルの変更プロセッサ７ｅと奇数サンプルの変更プロセッサ７ｏのいずれにおいても同じ処理が行われる。なお、奇数チャンネルと偶数チャンネルに適用される量子化スケールは、異なっていてもよい。したがって、偶数サンプルと奇数サンプルとでは異なる変更を行うことができる。これにより、ストライプの画像が生成される。ストライプの画像が不要な場合、ステップＳ４の処理を行う。なお、ステップＳ４の処理は、本発明に対しては本質的ではない。
【００３７】
ステップＳ１〜ステップＳ３は、画像の圧縮符号化及びウォータマークの埋込の前に行ってもよい。ステップＳ４による変更値Ｃの調整は、圧縮符号化処理中に奇数及び偶数サンプルに適用される特定の量子化スケールに依存するので、圧縮符号化処理中に行われる。
【００３８】
ステップＳ４において、デジタルの変更値Ｃを以下のように調整して、調整値Ｃ＾を生成する。
Ｃ＾＝Ｃ＞＞（１３−Ｂ）
ここで、Ｂは、量子化後のＤＣ係数の大きさを特定するのに必要なビット数であり、＞＞は、この場合、（（１３−Ｂ）ビットの）右シフトを意味する。変更は、奇数及び偶数チャンネルの両方で行われ、両チャンネルに対して略同じ変更が行われる。奇数トラックＢｏと偶数トラックＢｅとでＢの値が異なる場合もある。１３は、符号ビットが１ビットである符号付きの１４ビットの大きさを表すビット数である。
【００３９】
そして、ステップＳ５において、量子化ＤＣ係数を、可逆的なアルゴリズムに基づいて、調整値Ｃ＾により調整する。量子化ＤＣ係数のそれぞれは、ｎビットを有する。ここで、ビット数ｎは、ＤＣ係数毎に異なっていてもよい。変更は、いずれのＤＣ係数についてもビット数ｎが変化しないような変更である。
【００４０】
図５は、ＤＣ係数の値の変更に対する好ましいアルゴリズム（アルゴリズム１）を説明するための図である。一具体例として、調整値Ｃ＾は１０であり、ビット数ｎは８ビットであり、ＤＣ係数は、−１２８〜＋１２７の範囲の値を有しているものとする。範囲の一番下（ボトム）である−１２８から開始して、値の範囲を、２×１０の範囲の各セクションに分割する。図５は、セクション−１２８〜−１０９、−１０８〜−８９、・・・〜＋１１１を示している。全範囲は、２×１０の範囲のセクションの整数倍に分割できない。したがって、トップ（一番上の）セクションの範囲は、＋１１２〜＋１２７である。
【００４１】
このアルゴリズムは、セクションの上半分の値と下半分の値とを入れ換えることにより機能する。したがって、−１２８〜−１１９の値は、−１１８〜−１０９の値と入れ換わる。調整値Ｃ＾＝１０による調整の前にＤＣ係数の元の値が−１１８である場合、調整値Ｃ＾による調整後は−１２８に置き換えられる。また、他の具体例として、元の値が−１０７である場合、調整後は−９７となる。トップセクション＋１１２〜＋１２７では、同じ処理を行うが、セクションを半分にすると、＋１１２〜＋１１９と＋１２０〜＋１２７となり、図５に示すように入れ換えが行われる。
【００４２】
上述の具体例では、範囲のボトム（−１２８）から開始して、全範囲をセクションに分割した。この分割を範囲のトップ（＋１２７）から開始してもよい。好ましい実施の形態においては、キーＫｅｙ２に基づいて擬似ランダム的に発生されたビットＰＲＢの値に従って、分割をトップ又はボトムから開始する。ビットＰＲＢは、各ＤＣ係数毎に擬似ランダム的に変化する。ビットＰＲＢの値は、好ましくは変更値Ｃとともに変更関数メモリ９Ｂに記憶される。
【００４３】
量子化器Ｑにより量子化ＤＣ係数が生成されると、変更プロセッサ７は、量子化ＤＣ係数に適用可能な変更値Ｃの値と、ビットＰＲＢの値とを変更関数メモリ９Ｂから決定する。変更プロセッサ７は、変更値Ｃの値を調整値Ｃ＾に調整する。量子化ＤＣ係数の値は、調整値Ｃ＾及びアルゴリズムに基づいて調整される。図５を例を用いると、量子化ＤＣ係数の元の値が−９６である場合、−１０６に置き換えられる。
【００４４】
簡単に言うと、係数を表すそれぞれｎビットの各数は１集合の各要素であり、そのうちの１つの数を、可逆的なアルゴリズムに基づいて選択される同じ集合の他の要素と入れ換えることにより変更を行う。図５に示すように、数Ｎ１をＸ分だけ変更する場合、集合の他の要素Ｎ２と入れ換える。ここで、｜Ｎ１−Ｎ２｜＝Ｘであるが、範囲の一端では、Ｘ未満の変更のみが可能である。
【００４５】
上述の説明から、ビット数は変化しないことがわかる。
【００４６】
ステップＳ１７、ステップＳ１８において、上述の説明を静止画の１フレームに適用してもよい。ビデオクリップに多数のフレームがあるビデオの場合、変更関数メモリ９Ｂに記憶されている変更値Ｃ及びビットＰＲＢを、ビデオクリップの全てのフレームに適用する。しかしながら、安全性を高めるために、キーＫｅｙ５に基づく擬似乱数ＲＮ２からなる微少な変動を、各フレームの変更値Ｃに加算する。微少な変動は、ビット数が増加しないように選択される。ステップＳ３において、変更関数メモリ９Ｂが設定され、ビデオクリップに対して固定とされる。微少な変動は、小さい擬似乱数、例えば−５０≦ＮＲ２≦５０であり、ステップＳ４の直前に変更値Ｃに加算される。各変更値Ｃは、擬似乱数ＲＮ２の新たな値を得る。擬似乱数ＲＮ２を発生するビットＰＲＢＳは、フレーム毎にリセットされないので、異なるフレームは、擬似乱数ＲＮ２の異なるシーケンスを有する。
【００４７】
ＡＣ係数の処理（図６〜図９）
ステップＳ６において、ＡＣテンプレートを生成する。ＡＣテンプレートにおけるビットマップは、ＡＣ係数を変更するＤＣＴブロックを選択するものである。
【００４８】
ステップＳ６１において、ＡＣ係数を変更する場合、その値を調べる。０ならば値を変更しない。そうでなければ変更する。
【００４９】
ステップＳ７、ステップＳ８、ステップＳ９において、選択されたＤＣＴブロックのＡＣ係数を閾値Ｔｓと比較する。ＡＣ係数の絶対値が閾値Ｔｓより小さい場合、その符号を変更することができる。絶対値が閾値Ｔｓより大きい場合、符号を変更してはならない。ＡＣ係数の符号の変更を禁止することは、本発明にとって本質的ではないが、値が大きい係数の符号を変更すると、不都合なウォータマークが生成されることになる。
【００５０】
ステップＳ１０において、可逆的なアルゴリズム（アルゴリズム２）及びキーＫｅｙ３に基づいて、ＡＣ係数を表す値を変更する。
【００５１】
図７は、可逆的なアルゴリズム（.アルゴリズム２）の具体例を示すものである。このアルゴリズムは、エントロピー符号化の前の量子化ＡＣ係数に対して用いられる。
【００５２】
表１は、ハフマン符号化テーブルであり、この説明の終わりに添付してある。ＡＣ係数の値は、可変長コードＶＬＣと固定長コードＦＬＣによって表される。可変長コードＶＬＣは、ＡＣ係数がどのグループにあるかを特定する。固定長コードＦＬＣは、グループ内のどの値がＡＣ係数に等しいかを示すインデックスである。
【００５３】
ステップＳ１１において、ＡＣ係数がどのグループにあるかを決定する。
【００５４】
ステップＳ１１１において、グループ内のＡＣ係数のインデックスを決定する。
【００５５】
ステップＳ１２において、インデックスに、キーＫｅｙ３に基づく擬似乱数ＲＮ３を加算することにより、ＡＣテンプレートにより選択されたＤＣＴブロック内のＡＣ係数の固定長コードＦＬＣを変更する。ビット数が変化しないことを保障するために、和を「ラップラアウンド（wraps round）」する。例えば、固定長コードＦＬＣが１１０で、擬似乱数ＲＮ３が０１０の場合、和は、１０００ではなく、０００にラップアラウンドされる。ステップＳ７及びステップＳ９に示すように、符号を変更しない場合、ＡＣ係数の符号を保存するために、ラップアラウンドを行う。
【００５６】
ステップＳ１２１において、新たなインデックスにより示される値にＡＣ係数の値を設定する。
【００５７】
図８は、可逆的なアルゴリズムの他の具体例を示すものである。このアルゴリズムは、ステップＳ１２がステップＳ１３に置き換えられること除いて図７と同様に機能する。
【００５８】
ステップＳ１３において、可逆的な暗号コード及びキーＫｅｙ３’に基づいて、固定長コードＦＬＣを暗号化する。ビット数は変化しない。
【００５９】
図７及び図８は、同じ大きさグループ内の、あるＡＣ係数の値を他の値に変更することに関する。
【００６０】
図９は、ＡＣ係数の順序を変更するための可逆的なアルゴリズムを示すものである。これは図７又は図８のアルゴリズムとともに用いてもよい。
【００６１】
ステップＳ１４において、ＡＣ係数のシーケンスをエントロピー符号化するためのビット数を決定する。
【００６２】
ステップＳ１５において、変更プロセッサ７は、エントロピー符号化により生成されるビット数を変更しないＡＣ係数の順序の入換えを見つける。
【００６３】
ステップＳ１６において、ＡＣ係数の順序の入換えが見つかると、順序を変更するか否かを決定する。この決定は、キーＫｅｙ４によって定義される擬似乱数ＰＲＢ２の値に依存する。この具体例では、この数は、１ビットのみである。
【００６４】
ステップＳ１５の変形例として、変更プロセッサ７は、エントロピー符号化により生成されるビット数を変更しないようなＡＣ係数の順序の入換えを、２つ以上見つける。これらの入換えには、元のＡＣ係数の順序も含まれるが、これらを識別のために番号を付す。ステップＳ１６において、擬似乱数ＰＲＢ２に基づいて、入換えのうちの１つを選択する。
【００６５】
処理の変形例として、ＤＣＴブロック内のＡＣ係数を変更のために選択する。このようなＤＣＴブロックでは、全てのＡＣ係数を変更するのではない。この選択は、所定の固定的な選択であってよく、また、可変的な選択であってもよい。この選択は、キーに基づく擬似乱数であってもよい。
【００６６】
ウォータマークが埋め込まれた空間領域の画像の生成
圧縮符号化され、ウォータマークが埋め込まれた画像は、圧縮形式でテープに記録することができる。画像を見るためには、伸長しなければならない。
【００６７】
図１１は、デコーダの「奇数」チャンネルのみを示す図である。「偶数」チャンネルについても同様である。圧縮画像をエントロピーデコーダ１８で復号し、逆量子化１６で逆量化し、及び逆ＤＣＴ変換器１５で空間領域に変換する。その結果得られる空間領域のサンプルをデシャフリング器１４でデシャフリングし、奇数及び偶数サンプルをマルチプレクサ１３で多重化して、ウォータマークが埋め込まれた空間領域の画像を生成する。そして、多重化されたサンプルを逆フィルタ１２で逆フィルタリングし、４：２：２フォーマットの画像を生成する。図１３に示す画像は、このような画像の具体例である。
【００６８】
なお、図１１に示すウォータマーク除去プロセッサ１７は、ウォータマークが埋め込まれた画像を見るためにバイパス１９によってバイパスされている。
【００６９】
ウォータマークの除去
データキャリア（図１０）
ウォータマークを除去するために、デコーダは以下の除去データを有していなければならない。
【００７０】
すなわち、ＡＣ及びＤＣテンプレート、レベルＬ、擬似乱数ＲＮ１の最大値及び最小値、擬似乱数及びビットＰＲＢＳを発生するためのキーＫｅｙ１、Ｋｅｙ２、Ｋｅｙ３、Ｋｅｙ４、Ｋｅｙ５、アルゴリズム１、２、閾値Ｔｓである。キーＫｅｙ１、Ｋｅｙ２、Ｋｅｙ３、Ｋｅｙ４、Ｋｅｙ５は、エンコーダで生成されるので、予め決まっていない。
【００７１】
この好ましい実施の形態では、除去データは、好ましくは、安全にデータキャリアに記憶されている。最も好ましくは、キャリアは、スマートカードＳＣである。エンコーダの変更プロセッサ７ｅ、７ｏは、除去データをスマートカードＳＣにダウンロードするためのインタフェースを備えている。
【００７２】
デコーダのウォータマーク除去プロセッサ１７も、スマートカードＳＣから除去データを読み出すための同様のインタフェースを備えている。
【００７３】
ＤＣ係数からの変更の除去
図４及び図１１に示すように、ウォータマーク除去プロセッサ１７は、スマートカードＳＣから、ＤＣテンプレート、キーＫｅｙ１、擬似乱数ＲＮ１の範囲の限界値をダウンロードする。
【００７４】
ステップＳ１において、スマートカードＳＣからＤＣテンプレート及びレベルＬを読み出すことができる。
【００７５】
ステップＳ２において、ウォータマーク除去プロセッサ１７は、キーＫｅｙ１及び限界値から擬似乱数ＲＮ１を再生する。
【００７６】
ステップＳ３において、ＤＣテンプレート、レベルＬ、擬似乱数ＲＮ１から変更値Ｃを計算して、図３Ｂに示すような変更関数メモリに記憶する。
【００７７】
ステップＳ４において、記憶した変更値Ｃを調整して、調整値Ｃ＾を算出する。
【００７８】
ステップＳ５において、キーＫｅｙ２から再生された擬似乱数のビットＰＲＢ１に関して、アルゴリズムを逆することにより、ＤＣ係数を元の値に復元する。
【００７９】
ステップＳ１７、ステップＳ１８において、各ビデオクリップに対して、キーＫｅｙ５から擬似乱数ＲＮ２を再生して、変更値Ｃから減算する。
【００８０】
ＡＣ係数の復元（図１２）
【００８１】
ステップＳ６’において、スマートカードＳＣからＡＣテンプレートをダウンロードする。
【００８２】
ステップＳ６１’において、ＡＣ係数が変更されている場合、ＡＣ係数を調べ、値が０か否かを判定する。値が０でないならば、エンコーダで変更されているので、デコーダでも変更される。
【００８３】
ステップＳ１０’において、キーＫｅｙ３に関して、アルゴリズムを逆にすることにより、ＡＣ係数を元の値に復元する。
【００８４】
ステップＳ７’〜ステップＳ９’において、ＡＣ係数の値を、スマートカードＳＣからダウンロードした閾値Ｔｓと比較する。これにより、ウォータマーク除去プロセッサ１７は、どのＡＣ係数に符号の変更があったかを判定することができる。
【００８５】
図７及び図８に示すＡＣ係数の変更処理と同様に、ウォータマーク除去プロセッサ１７は、ステップＳ１１、Ｓ１１１を行う。
【００８６】
図７に示すステップＳ１２と同様に、ウォータマーク除去プロセッサ１７は、キーＫｅｙ３から擬似乱数ＲＮ３を再生して、インデックスから減算する。
【００８７】
図８に示すステップＳ１３と同様に、ウォータマーク除去プロセッサ１７は、キーＫｅｙ３’を用いて暗号を復号する。
【００８８】
図９に示すステップＳ１４に対応して、ウォータマーク除去プロセッサ１７は、ＡＣ係数のシーケンスをエントロピー符号化するために決定されたビット数を判定する。
【００９０】
ステップＳ１５に対応して、ウォータマーク除去プロセッサ１７は、エントロピー符号化を行うのに必要なビット数を変更しないＡＣ係数の順序の入換えを見つける。
【００９１】
ステップＳ１６と同様に、ウォータマーク除去プロセッサ１７は、そのような入換えが見つかると、変更処理において順序の変更が決定されたことが分かる。この決定は、キーＫｅｙ４によって定義される擬似乱数ＰＲＢ２の値に依存する。
【００９２】
擬似乱数ＰＲＢ２は、ＡＣ係数のシーケンスが変更されているか否かを示す。変更されている場合、その変更を戻す。
【００９３】
安全性
ウォータマークを埋め込むのに用いられるアルゴリズムは、多くの異なるユーザに対して共通であってもよい。安全性は、
ａ）ユーザにより選択され、発生されたキーＫｅｙ１、Ｋｅｙ２、Ｋｅｙ３、Ｋｅｙ４、Ｋｅｙ５、
ｂ）ユーザにより選択されたレベルＬ、
ｃ）ユーザにより選択された擬似乱数ＲＮ１の限界値
により得られる。
【００９４】
符号を変える閾値も、ユーザにより選択可能なので、ある程度の安全性を得ることができる。
【００９５】
ＤＣ及びＡＣテンプレートは、可視的なウォータマークを画像に付した場合、テンプレートが画像において少なくとも部分的に可視であるので、安全ではない。
【００９６】
スマートカードＳＣは、安全にデータを記憶するように物理的及び論理的に設計されている。
【００９７】
関連システム及び方法
ここで説明した方法及び装置を、係属中の出願００２９８５１．３、代理人ファイルＰ／１０４０６，Ｉ−００−１５３に開示される方法及びシステムとともに用いてもよい。その開示内容については、引用することにより、本願に援用されるものとする。
【００９８】
【表１】
0004484409.tif 000002
【００９９】
表１において：
１．  （ｘ  ｔｏ  ｙ）＊０、＋／−１は、「ｘ」〜「ｙ」個の０値の係数の後に＋１又は−１の係数が続くことを意味する。
２．  （ｘ  ｔｏ  ｙ）＊０は、「ｘ」〜「ｙ」個の０値の係数である。
【０１００】
既に圧縮符号化されたビデオに対するウォータマークの埋込
上述の説明は、マテリアルの圧縮符号化処理中にビデオにウォータマークを埋め込むものである。既に圧縮符号化されたウォータマークがないマテリアルも利用可能であるが、ウォータマークを埋め込むことが望ましい。図１４は、ソース７１からの圧縮ビデオを処理する、本発明に係る装置の具体例を説明するためのフローチャートである。ソース７１は、ビデオテーププレーヤ又はプレーヤ／レコーダ、ディスクプレーヤ又はプレーヤ／レコーダ、サーバ、あるいは、他のいずれのソースであってもよい。説明を簡単にするとともに上述の説明との一貫性を保つために、図１に示すような装置によりビデオが圧縮符号化されていることを前提とするが、変更プロセッサ７ｅ、７ｏは省略されている。したがって、圧縮ビデオにはウォータマークは埋め込まれていない。
【０１０１】
この実施の形態において、圧縮ビデオは、上述した表１にある符号化に従って符号化されたデータである。ステップＳ７２において、データを解析器により解析して、
１）各コードを抽出する。０でないＡＣ係数は、それぞれ表１に示すように、＜ＶＬＣ＞＜ＦＬＣ＞の形式を有している。ＤＣ係数は、ｎビットにおける生のデータとしてエントロピー符号化される。
２）コードが表す図３のビットマップにおける位置を決定する。
３）ＤＣ係数の量子化レベル等、他の情報を決定する。
【０１０２】
エントロピー符号化されたビットストリームは、周知の方法で構成されたデータストリームであり、このデータストリームから、周知の方法でコードを識別することが可能である。コードの順序と画像位置との関係は、知られている。
【０１０３】
ステップＳ７４において、比較器は、コード位置をテンプレートメモリ７３に記憶されているビットマップと比較して、コードを変更する必要があるか否かを判定する。
【０１０４】
コードを変更する必要がある場合、ステップＳ７５において、コードがＡＣ係数を表すのかＤＣ係数を表すのかを判定する。コードがＡＣ係数を表す場合、ステップＳ７８において、上述の図６〜図９の方法のいずれかを用いる。コードがＤＣ係数を表す場合、ステップＳ７９において、上述の図５の方法を用いる。
【０１０５】
全てのコード、すなわち、変更されたコードと変更されていないコードが、例えばビデオテープレコーダ等のストレージ装置７６に格納される。変更されていないコードは、ステップＳ７７において、遅延器を介してストレージ装置７６に送られる。遅延器は、変更されたコードの処理遅延を補償して、図７及び図８の具体例においてコードの順序が変化しないようにする。
【０１０６】
圧縮ビットストリームが必要な場合、圧縮ビットストリームを更に処理しないでストレージ装置７６に格納する。圧縮符号化されていないビットストリームが必要な場合、圧縮ビットストリームを伸長してから格納する。
【０１０７】
既に圧縮符号化されたビデオにウォータマークを埋め込む処理は、ビデオの伸長を必要としないので有利である。すなわち、逆量子化や逆変換処理が不要である。
【０１０８】
ウォータマークの除去
図１４に示す方法の逆を行うことにより、ウォータマークの除去と元のビデオの再生を行うことができる。ステップＳ７２において、ソース７１からのデータを解析器で解析して、
ａ）各コードを抽出する。０でないＡＣ係数は、それぞれ表１に示すように、＜ＶＬＣ＞＜ＦＬＣ＞の形式を有している。ＤＣ係数は、ｎビットにおける生のデータとしてエントロピー符号化されている。
ｂ）コードが表す図３のビットマップにおける位置を決定する。
ｃ）ＤＣ係数の量子化レベル等、他の情報を決定する。
【０１０９】
エントロピー符号化されたビットストリームは、周知の方法で構成されたデータストリームであり、このデータストリームから、周知の方法でコードを識別することが可能である。コードの順序と画像位置との関係は、知られている。
【０１１０】
ステップＳ７４において、比較器は、コード位置をテンプレートメモリ７３に記憶されているビットマップと比較して、埋込中にコードが変更された否かを判定する。コードが変更されている場合、ステップＳ７５において、コードがＡＣ係数を表すのかＤＣ係数を表すのかを判定する。コードがＡＣ係数を表す場合、上述の図１２及び図７〜図９の方法のいずれかを用いて変更を除去する。コードがＤＣ係数を表す場合、上述の図５の方法を用いて除去する。
【０１１１】
全てのコード、すなわち、変更されたコードと変更されていないコードが、例えばビデオテープレコーダ等のストレージ装置７６に格納される。変更されていないコードは、遅延器７７を介してストレージ装置７６に送られる。遅延器７７は、変更されたコードの処理遅延を補償して、図７及び図８の具体例においてコードの順序が変化しないようにする。
【０１１２】
圧縮ビットストリームが必要な場合、圧縮ビットストリームを更に処理しないでストレージ装置７６に格納する。圧縮符号化されていないビットストリームが必要な場合、圧縮ビットストリームを伸長してから格納する。
【０１１３】
変形例
以上、本発明を、テープに記録された情報信号を磁気テープに記録する具体例を参照して説明したが、例えばディスク状記録媒体や固体メモリ等、他の記録媒体を使用することもできる。
【０１１４】
図１〜図１４の具体例では、圧縮符号化方式の一具体例によりビデオを圧縮符号化したが、本発明は、そのような具体例に限定されるものではない。
【０１１５】
本発明を、ＨＤＣＡＭ、ＭＰＥＧ、ＪＰＥＧ、モーションＪＰＥＧ、ＤＶ等の他の圧縮符号化方式にも適用することもできる。
【０１１６】
図１〜図１３の具体例では、ウォータマークは画像空間で固定されており、図４の具体例の擬似乱数ＲＮ２によるビデオの微少変動以外は変化がない。しかしながら、本発明は、これに限定されるものではない。ウォータマークは、ビデオシーケンスの時間によって画像空間で移動してもよい。一方法としては、異なる位置にウォータマークを定義する複数のビットマップ（ここではテンプレートとも呼ぶ）を設けて、これらビットマップを連続して使用する。また、異なるビットマップは異なるレベルＬを定義することもできる。これについては、図４のステップＳ１において説明している。ウォータマークの可視性レベルは、時間によって変化する。
【０１１７】
本発明を適用することができる圧縮符号化方式の具体例としてＪＰＥＧを挙げた。本発明の各具体例は、圧縮情報信号を表すのに用いられるビット数を、ウォータマークを埋め込まない同じ情報信号と比較して増加させないで、ウォータマークを圧縮デジタル情報信号に埋め込むことを目的としている。本発明の各具体例をＪＰＥＧに適用した場合、ビット数に微小な変化が生じることもある。これは、ＪＰＥＧでは、本発明の各具体例を適用することにより偶然生成される所定の制御特性を使用するからである。これが発生すると、ＪＰＥＧアルゴリズムは、自動的に追加のバイトを加えて問題を回避する。その結果、ビット数の増減が生じることもある。また、特に、ディスクや他の非テープ状媒体に格納する場合、変更をより可視的にするためのビット数の微少増加は、許容可能である。
【０１１８】
上述の説明は、ビデオについてであるが、本発明は、ビデオに限定されるものではない。本発明をオーディオ、静止画、他の情報信号に適用することもできる。
【図面の簡単な説明】
【図１】  本発明の実施の形態であるエンコーダの構成を示すブロック図である。
【図２】  図１に示すエンコーダの処理により画像がどのように変化するのかを説明する図である。
【図３Ａ】  図１に示すエンコーダのフレームメモリの内容を概略的に示す図である。
【図３Ｂ】  図１に示すエンコーダのフレームメモリの内容を概略的に示す図である。
【図４】  ＤＣ変換係数の処理を説明するフローチャートである。
【図５】  ＤＣ係数の値の量子化を説明するための図である。
【図６】  ＡＣ変換係数の処理を説明するフローチャートである。
【図７】  ＡＣ変換係数の処理を説明するフローチャートである。
【図８】  ＡＣ変換係数の処理を説明するフローチャートである。
【図９】  ＡＣ変換係数の処理を説明するフローチャートである。
【図１０】  スマートカードＳＣの構成を示すブロック図である。
【図１１】  本発明の実施の形態であるデコーダの構成を示すブロック図である。
【図１２】  ＡＣ係数の値の復元を説明するための図６に対応したフローチャートである。
【図１３】  本発明により生成されたウォータマークが埋め込まれた画像の一具体例を示す図である。
【図１４】  圧縮ビデオソースからのビデオを処理するための本発明に係る装置の具体例を示すフローチャートである。
【図１】
0004484409.tif 000003
【図２】
0004484409.tif 000004
【図３Ａ】
0004484409.tif 000005
【図３Ｂ】
0004484409.tif 000006
【図４】
0004484409.tif 000007
【図５】
0004484409.tif 000008
【図６】
0004484409.tif 000009
【図７】
0004484409.tif 000010
【図８】
0004484409.tif 000011
【図９】
0004484409.tif 000012
【図１０】
0004484409.tif 000013
【図１１】
0004484409.tif 000014
【図１２】
0004484409.tif 000015
【図１３】
0004484409.tif 000016
【図１４】
0004484409.tif 000017