(54)【発明の名称】改善された同期の概念を使用するウォーターマーク生成器、ウォーターマーク復号器、ウォーターマーク信号を提供する方法、ウォーターマーク済み信号に基づいてバイナリーメッセージデータを提供する方法及びコンピュータプログラム
(58)【調査した分野】(Int.Cl.,DB名)
前記同期挿入器は、前記拡散済み情報表現の異なる時間部分であって、それら異なる時間部分が前記バイナリーメッセージデータの異なるビットを表現している時間部分を、異なる同期拡散シーケンス(a,b,c)と乗算的に結合し、ここで、前記異なる同期拡散シーケンスは、異なるビット拡散シーケンスと結合されるか、又は所与のビット拡散シーケンスの異なるようにスケールされたバージョンと結合されることを特徴とする、請求項2に記載のウォーターマーク生成器。
前記同期挿入器は前記拡散済み情報表現の各時間部分を少なくとも1つの同期拡散シーケンス(a,b,c)と結合し、ここで、前記結合済み情報同期表現の各時間部分が、前記バイナリーメッセージデータの1ビットに基づいておりかつ1つの同期情報を表現するような、複数の値を含むことを特徴とする、請求項1乃至5のいずれか一項に記載のウォーターマーク生成器。
前記情報拡散器は前記バイナリーメッセージデータの前記情報ユニットを第1拡散方向に拡散し、前記ウォーターマーク生成器は前記結合済み情報同期表現の情報ユニットを第2拡散方向に拡散させることを特徴とする、請求項1乃至6のいずれか一項に記載のウォーターマーク生成器。
前記同期挿入器は、前記拡散済み情報表現を前記同期拡散シーケンスと要素毎に乗算的に結合し、前記結合済み情報同期表現を得ることを特徴とする、請求項1乃至7のいずれか一項に記載のウォーターマーク生成器。
ウォーターマーク済み信号(200a,r(t);2510)に基づいてバイナリーメッセージデータ(202a,m;2520)を提供するウォーターマーク復号器(200;2500)であって、
前記ウォーターマーク済み信号の時間−周波数−ドメイン表現(204;2532)を提供する時間−周波数−ドメイン表現提供器(203;2530)と、
前記ウォーターマーク済み信号の前記時間−周波数−ドメイン表現内でウォーターマーク情報の時間的整列を発見する、同期決定器(201;2540)と、
を含み、
前記同期決定器は、前記時間−周波数−ドメイン表現の第1サブセット(1301aa)の値と第1同期逆拡散シーケンス(a)の値とビット逆拡散シーケンス(cf)の値との間で要素毎に乗算した第1の結果値の合計を計算し、更に、前記時間−周波数−ドメイン表現の第2サブセット(1301ab)の値と第2同期逆拡散シーケンス(b)の値と前記ビット逆拡散シーケンス(cf)の値との間で要素毎に乗算した第2の結果値の合計を計算し、
前記同期決定器はさらに、前記第1の結果値の合計(1303aa)と第2の結果値の合計(1303ab)との絶対値を合計することで、前記時間−周波数−ドメイン表現の前記第1及び第2のサブセットの値が前記同期拡散シーケンスと時間的に整列している同期情報を持つ可能性を表す、尤度を取得し、
前記同期決定器はさらに、前記尤度に基づいて前記同期を決定することを特徴とする、ウォーターマーク復号器。
前記同期決定器は、前記時間−周波数−ドメイン表現における前記第1及び第2のサブセットの複数の位置的選択についての尤度を計算し、前記第1及び第2のサブセットの異なる位置的選択に関連する尤度のシーケンスを取得し、
前記同期決定器はさらに、前記尤度のシーケンスと参照シーケンスとをコリレートさせて同期ヒットを決定するか、又は、尤度のある期待されたシーケンスに適応されたマッチ・フィルタで前記尤度のシーケンスをフィルタ処理することで、同期ヒットを決定することを特徴とする、請求項9乃至11のいずれか1項に記載のウォーターマーク復号器。
前記同期決定器は、時間的逆拡散を実行することで、前記時間−周波数−ドメイン表現を取得することを特徴とする、請求項9乃至12のいずれか1項に記載のウォーターマーク復号器。
前記同期決定器は、複数の同期候補ポイントを使用してメッセージを復号化し、更に、復号化されたデータの中に期待される信号語が存在するかどうかを評価して、前記複数の同期候補ポイントから1つの正確な同期ポイントを選択することを特徴とする、請求項9乃至13のいずれか1項に記載のウォーターマーク復号器。
前記同期決定器は、複数の同期候補ポイントを使用してメッセージを復号化し、更に、真偽性のチェックを使用して、前記複数の同期候補ポイントから1つの正確な同期ポイントを選択することを特徴とする、請求項9乃至13のいずれか1項に記載のウォーターマーク復号器。
【発明を実施するための形態】
【0036】
次に、本発明に従う実施の形態を、添付の図面を参照して詳しく説明する。
【0037】
1.
ウォーターマーク生成器
1.1
図24に従うウォーターマーク生成器
本発明に従うウォーターマーク生成器のブロック概略図である
図24を参照しながら、ウォーターマーク生成器2400について説明する。
【0038】
ウォーターマーク生成器2400はバイナリーメッセージデータ2410を受信し、それに基づいてウォーターマーク信号2420を提供する。ウォーターマーク生成器は情報拡散器2430を含み、この情報拡散器2430は、例えばバイナリーメッセージデータ2410の1つのビットである情報ユニットを受け取り、次にその情報ユニットを複数の時間−周波数−ドメイン値へと拡散して、拡散済み情報表現2432を得る。ウォーターマーク生成器2400は同期挿入器2440をさらに含み、この同期挿入器2440は、拡散済み情報表現2432と同期シーケンス2442とを受け取り、その拡散済み情報表現2432を同期シーケンス2442と乗算的に結合して、結合済み情報同期表現2444を得る。ウォーターマーク生成器2400は、結合済み情報同期表現2444に基づいてウォーターマーク信号2420を提供する、ウォーターマーク信号提供器2450をさらに含む。
【0039】
ウォーターマーク生成器2400は後段の第3章においてより詳細に説明する特徴及び機能のいずれかによって補足されても良い。
【0040】
1.2 図26に従うバイナリーメッセージデータに基づいてウォーターマーク信号を提供する方法
本発明に従う方法のフローチャートを示す
図26を参照しながら、バイナリーメッセージデータに基づいてウォーターマーク信号を提供する方法について説明する。
【0041】
図26に示す方法2600は、(例えば1ビットである)情報ユニットを複数の時間−周波数−ドメイン値へと拡散するステップ2610を含み、拡散済み情報表現を得る。方法2600は、その拡散済み情報表現を同期シーケンスと乗算的に結合するステップ2620をさらに含み、結合済み情報同期表現を得る。方法2600は、結合済み情報同期表現に基づいて、ウォーターマーク信号を提供するステップ2630をさらに含む
【0042】
当然ながら、方法2600は、本件出願に係る本発明の装置についての説明にある特徴及び機能のいずれかによって補足されても良い。
【0043】
2.
ウォーターマーク復号化
2.1
図25に従うウォーターマーク復号器
以下に、本発明に従うウォーターマーク復号器のブロック概略図である
図25を参照しながら、ウォーターマーク復号器2500について説明する。ウォーターマーク復号器2500は、ウォーターマーク済み信号2510に基づいてバイナリーメッセージデータ2520を提供するよう構成されている。
【0044】
ウォーターマーク復号器2500は、ウォーターマーク済み信号2510の時間−周波数−ドメイン表現2532を提供するよう構成された、時間−周波数−ドメイン表現提供器2530を含む。この時間−周波数−ドメイン表現提供器2530は、例えば時間ドメインから時間−周波数−ドメインへの変換器またはフィルタバンクを含んでも良い。
【0045】
ウォーターマーク復号器2500は、同期決定器2540をさらに含む。この同期決定器2540は、ウォーターマーク済み信号2510の時間−周波数−ドメイン表現2532内のウォーターマーク情報の時間的整列を発見する。同期決定器2540は、時間−周波数−ドメイン表現2532の第1サブセットの値と第1同期逆拡散シーケンスの値とビット逆拡散シーケンスの値との間で要素毎に乗算した第1の結果値の合計を計算し、かつ時間−周波数−ドメイン表現の第2サブセットの値と第2同期逆拡散シーケンスの値とビット逆拡散シーケンスの値との間で要素毎に乗算した第2の結果値の合計を計算する。同期決定器2540はさらに、第1の結果値の合計と第2の結果値の合計との絶対値を合計し、時間−周波数−ドメイン表現の第1及び第2のサブセットの値が同期拡散シーケンスと時間的に整列する同期情報を持つ可能性を表す、尤度を取得する。ステップ2720は、この尤度に基づいて同期を決定するサブステップ2728をさらに含む。
【0046】
ウォーターマーク復号器2500は、本願明細書におけるウォーターマーク復号化についての説明に記載したいずれかの手段及び機能によって補足されても良い。
【0047】
2.2 図27に従うウォーターマーク済みの信号に基づいてバイナリーメッセージデータを提供する方法
以下に、本発明に従う方法のフローチャートを示す
図27を参照しながら、ウォーターマーク済みの信号に基づいてバイナリーメッセージデータを提供する方法2700について説明する。
【0048】
方法2700は、ウォーターマーク済み信号の時間−周波数−ドメイン表現を提供するステップ2710を含む。方法2700は、ウォーターマーク済み信号の時間−周波数−ドメイン表現内でウォーターマーク情報の時間的整列を発見するステップ2720をさらに含む。この、ウォーターマーク済み信号の時間−周波数−ドメイン表現内でウォーターマーク情報の時間的整列を発見するステップ2720は、時間−周波数−ドメイン表現の第1サブセットの値と第1同期逆拡散シーケンスの(複数の)値とビット逆拡散シーケンスの(複数の)値との間で要素毎に乗算した第1の結果値の合計を計算する、サブステップ2722を含む。ステップ2720は、時間−周波数−ドメイン表現の第2サブセットの値と第2同期逆拡散シーケンスの(複数の)値とビット逆拡散シーケンスの(複数の)値との間で要素毎に乗算した第2の結果値の合計を計算する、サブステップ2724を更に含む。ステップ2720は、第1の結果値の合計と第2の結果値の合計との絶対値を合計するサブステップ2726を含み、時間−周波数−ドメイン表現の第1及び第2のサブセットの値が同期拡散シーケンスと時間的に整列している同期情報を持つ可能性を表す、尤度を取得する。更に、同期決定器は、この尤度に基づいて同期を決定する。
【0049】
この方法2700は、本願明細書におけるウォーターマーク復号化についての説明に記載されたいずれかの特徴及び機能によって補足されても良い。
【0050】
3. システムの説明
以下に、ウォーターマーク挿入器とウォーターマーク復号器とを含む、ウォーターマーク伝送のためのシステムについて説明する。当然ながら、ウォーターマーク挿入器とウォーターマーク復号器とは、互いに独立して使用されても良い。
【0051】
システムの説明については、ここではトップダウンの手法を選択した。まず、符号器と復号器との違いを明確にする。次に、第3.1章から第3.5章において、各処理ブロックを詳細に説明する。
【0052】
システムの基本的な構成は、符号器側を示す
図1と復号器側を示す
図2とに示される。
図1はウォーターマーク挿入器100のブロック概略図を示す。符号器側では、(ウォーターマーク生成器とも呼ばれる)処理ブロック101の中で、聴覚心理処理モジュール102と交換される情報104及び105に基づいて、バイナリーデータ101aからウォーターマーク信号101bが生成される。ブロック102から提供される情報は、典型的にはウォーターマークが非可聴であることを保証する。ウォーターマーク生成器101により生成されたウォーターマークは、次にオーディオ信号106へと加算される。ウォーターマーク済み信号107は、その後伝送され、記憶され又は更なる処理を受けることができる。例えばオーディオ・ビデオ・ファイルのようなマルチメディア・ファイルの場合には、オーディオ・ビデオ同期を失わないように、ビデオストリームに適切な遅延を加える必要がある。マルチチャネル・オーディオ信号の場合には、各チャネルは本願明細書で説明するように分離して処理される。処理ブロックである101(ウォーターマーク生成器)と102(聴覚心理処理モジュール)とについては、第3.1章及び第3.2章においてそれぞれ説明する。
【0053】
復号器側については、ウォーターマーク復号器200のブロック概略図である
図2を参照して説明する。例えばマイクロホンによって録音されたウォーターマーク済み信号200aが、システム200に対して使用可能である。分析モジュールとも呼ばれる第1のブロック203が、(例えばウォーターマーク済みのオーディオ信号である)入力データを時間/周波数ドメインで復調かつ変換し、(それによりウォーターマーク済みのオーディオ信号200aの時間−周波数−ドメイン表現204を取得して)同期モジュール201へと送る。この同期モジュール201は入力信号204を分析し、時間的同期化を実行する。即ち、符号化されたデータの時間的整列(例えば符号化されたウォーターマークデータの時間−周波数−ドメイン表現に関する時間的整列など)を決定する。この情報(例えば結果として得られる同期情報205)はウォーターマーク抽出器202へと送られ、この抽出器202がデータを復号化し、その結果、ウォーターマーク済みのオーディオ信号200aのデータコンテンツを表現するバイナリーデータ202aを出力する。
【0054】
3.1 ウォーターマーク生成器101
図3はウォーターマーク生成器101の詳細を示す。オーディオ信号106の中に隠されるべき(±1として示される)バイナリーデータ101aが、ウォーターマーク生成器101へと入力される。ブロック301はデータ101aを同一長M
pを持つパケットに整える。信号化の目的で、各パケットに対してオーバーヘッド・ビットが(例えば付加される状態で)加えられる。ここでは、M
sがそれらオーバーヘッド・ビットの数を示すことにする。それらの使用方法は第3.5章において詳細に説明する。以下の説明においては、ペイロード・ビットの各パケット及び信号オーバーヘッド・ビットが、ここで云うメッセージであることに留意されたい。
【0055】
長さN
m=M
s+M
pを有する各メッセージ301aは、処理ブロック302即ちチャネル符号器へと送られ、このチャネル符号器は、エラーに対する保護のためのビットを符号化する役割を果たす。このモジュールの可能性のある実施形態として、インターリーバーを伴う畳み込み符号器が挙げられる。この畳み込み符号器の比率が、ウォーターマーキング・システムの対エラー保護の全体的な程度に大きな影響を与える。他方、インターリーバーは、ノイズバーストに対する保護をもたらす。このインターリーバーの操作範囲は1個のメッセージに限定することもできるが、より多数のメッセージに拡大することもできる。ここでは、R
cが符号比率、例えば1/4を示すと仮定する。この場合には、各メッセージについて符号化されたビット数はN
m/R
cとなる。チャネル符号器302は、例えば符号化されたバイナリーメッセージ302aを提供する。
【0056】
次の処理ブロック303は、周波数ドメインで拡散を実行する。十分な信号対雑音比を達成するために、情報(例えばバイナリーメッセージ302a)は、N
f個の注意深く選択されたサブバンドへと拡散されて伝送される。周波数におけるそれらサブバンドの正確な位置は事前に決定され、符号器と復号器との両方に既知となっている。この重要なシステム・パラメータの選択に関する詳細は第3.2.2章において述べる。周波数における拡散は、N
f×1のサイズを持つ拡散シーケンスc
fによって決定される。ブロック303の出力303aはN
f個のビットストリームを持ち、各ビットストリームは各サブバンドに1個ずつ対応している。i番目のビットストリームは、入力ビットを拡散シーケンスc
fのi番目の成分と乗算することで得られる。最も単純な拡散は、ビットストリームを各出力ストリームへとコピーすること、即ち全て1から成る拡散シーケンスを使用することである。
【0057】
ブロック304、即ち同期スキーム挿入器とも呼ばれるブロックは、ビットストリームに対して同期信号を追加する。復号器にはビット及びデータ構造のいずれの時間的整列も既知でないため、即ち、いつメッセージがスタートするかが分からないため、ロバストな同期が重要である。同期信号はそれぞれN
f個のビットのN
s個のシーケンスから成る。シーケンスは要素毎にかつ周期的にビットストリーム(又はビットストリーム303a)に対して乗算される。例えば、ここではa,b,cをN
s=3個の(同期拡散シーケンスとも呼ばれる)同期シーケンスであると仮定する。その場合、ブロック304は、aを第1の拡散ビットに乗算し、bを第2の拡散ビットに乗算し、cを第3の拡散ビットに乗算する。後続のビットに対しては、処理は周期的に反復される。つまり、aを第4のビットに乗算し、bを第5のビットに乗算するという調子で続いてゆく。このようにして、結合された情報−同期情報304aが得られる。(同期拡散シーケンスとも呼ばれる)同期シーケンスは、誤った同期のリスクを最小限にするために注意深く選択される。より詳細な説明を第3.4章で述べる。また、シーケンスa,b,c,...は、同期拡散シーケンスとして考えられても良いことに留意すべきである。
【0058】
ブロック305は時間ドメインで拡散を実行する。入力における各拡散済みのビット、即ち長さN
fのベクトルが時間ドメインでN
t回反復される。周波数における拡散と同様に、ここではN
t×1のサイズを持つ拡散シーケンスc
tを定義する。i番目の時間的反復は、c
tのi番目の成分と乗算される。
【0059】
ブロック302〜305の操作を以下のような数学的表現に置き換えることができる。ここで、1×N
m=R
cのサイズを持つmが符号化済のメッセージであり、ブロック302の出力であると仮定する。その場合、(拡散済みの情報表現Rとして考えられても良い)ブロック303の出力303aは次式で表すことができ、
結合済み情報同期表現Cと考えられても良いブロック304の出力304aは、
となり、ここで、〇はシュール要素毎の積(Schur element-wise product)を示し、
となる。
【0060】
ブロック305の出力305aは、
となり、ここで、◇と上付き文字
Tとは、クロネッカーの積(Kronecker product)と転値(transpose)とをそれぞれ示す。バイナリーデータは±1として表現されることを思い出して頂きたい。
【0061】
ブロック306はビットの差分符号化を実行する。このステップにより、システムは、移動又はローカルな発振器のミスマッチに起因する位相シフトに対するロバスト性が一段と高くなる。この点に関する詳細は、第3.3章で説明する。仮にb(i;j)を、ブロック306の入力におけるi番目の周波数帯域及びj番目の時間ブロックのためのビットであるとした場合、出力ビットb
diff(i;j)は次式で示される。
【0062】
ストリームの開始点において、即ちj=0において、b
diff(i;j−1)は1に設定される。
【0063】
ブロック307は実際の変調を実行する。即ち、その入力に与えられたバイナリー情報306aに基づいてウォーターマーク信号波形を生成する。この点に関しては
図4で詳細に説明する。N
f個の並行入力である401〜40N
fは、異なるサブバンドについてのビットストリームを含む。各サブバンドストリームの各ビットは、ビット成形ブロック(411〜41N
f)によって処理される。これらビット成形ブロックの出力は、時間ドメインの波形である。j番目の時間ブロックのi番目のサブバンドについて生成された波形は、s
i,j(t)で示され、入力ビットb
diff(i;j)に基づいており、次式のように計算される。
ここで、γ(i;j)は聴覚心理処理ユニット102によって提供される重み付けファクタであり、T
bはビットの時間区間であり、g
i(t)はi番目のサブバンドについてのビット形成関数である。ビット形成関数は、次式のコサインを用いて周波数変調されたベースバンド関数g
iT(t)から得られたものであり、
ここで、f
iはi番目のサブバンドの中央周波数であり、上付き文字Tは送信機を表している。ベースバンド関数は各サブバンドについて異なっていても良い。もし同一であると選択された場合には、復号器においてより効果的な構成が可能となる。詳細については、第3.3章を参照されたい。
【0064】
各ビットのためのビット成形は、聴覚心理処理モジュール(102)によって制御される反復的な処理の中で繰り返される。ウォーターマークを非可聴に維持しながらできるだけ大きなエネルギーを割り当てるためには、反復によって重みγ(i;j)を細かく調節することが必要である。第3.2章においてより詳細に説明する。
【0065】
i番目のビット成形フィルタ41iの出力における完全な波形は次式で示される。
【0066】
ビット形成ベースバンド関数g
iT(t)は、T
bよりも格段に大きい時間区間については通常は非ゼロであるが、主エネルギーはそのビット区間内に集中している。
図12aはその一例を示し、2つの隣接するビットについて同一のビット形成ベースバンド関数をプロットしたものである。この図の中では、T
b=40ミリ秒である。T
b及び関数の形状の選択は、システムに対して重大な影響を与える。事実、より長いシンボルは、より狭い周波数応答を提供する。この点は、残響のある環境において特に有利である。事実、そのようなシナリオでは、ウォーターマーク済み信号は、各々が異なる伝播時間によって特徴づけられた複数の伝播経路を介してマイクホンに到達する。結果として得られるチャネルは、強い周波数選択性を示す。時間ドメインの観点では、より長いシンボルは有利である。なぜなら、ビット区間に匹敵する遅延を有するエコーは、積極的な干渉をもたらすからである。つまり、それらは受信された信号エネルギーを増大させる。しかし、長いシンボルには幾分かの欠点も存在する。即ち、長いオーバーラップはシンボル間干渉(ISI)をもたらす可能性もあり、かつオーディオ信号内に隠すことは確実に困難である。そのため、聴覚心理処理モジュールは、長いシンボルに対し、短いシンボルよりも少ないエネルギーしか許可しないであろう。
【0067】
ウォーターマーク信号は、次式のようにビット成形フィルタの全ての出力を合計することで取得される。
【0068】
3.2 聴覚心理処理モジュール102
図5に示すように、聴覚心理処理モジュール102は3つの部分から成る。第1のステップは分析モジュール501であり、時間オーディオ信号を時間/周波数ドメインへと変換する。この分析モジュールは、異なる時間/周波数分解能で並行分析を実行しても良い。この分析モジュールの次に、時間/周波数データは聴覚心理モデル(PAM)502へと送られる。ここでは、ウォーターマーク信号のためのマスキング閾値が聴覚心理的な考察(非特許文献1を参照)に従って計算される。そのマスキング閾値は、各サブバンド及び時間ブロックのためのオーディオ信号の中に隠すことができるエネルギーの量を示す。聴覚心理処理モジュール102の最後のブロックは、振幅計算モジュール503である。このモジュールは、マスキング閾値が満足されるように、即ち埋め込まれたエネルギーがマスキング閾値によって定義されるエネルギー以下になるように、ウォーターマーク信号の生成に使用されるべき振幅ゲインを決定する。
【0069】
3.2.1 時間/周波数分析501
ブロック501は、オーディオ信号の時間/周波数変換をラップされた変換を用いて実行する。多数の時間/周波数分解能が実行されたときに、最高のオーディオ品質が達成される。ラップされた変換の1つの効果的な実施例は短時間フーリエ変換(STFT)であり、これは窓処理された時間ブロックの高速フーリエ変換(FFT)に基づくものである。窓の長さは時間/周波数分解能を決定し、長い窓は低い時間分解能及び高い周波数分解能をもたらし、短い窓は高い時間分解能及び低い周波数分解能をもたらす。他方、窓の形状は周波数漏れなどを決定する。
【0070】
提案システムのために、データを2つの異なる分解能で分析することで、非可聴ウォーターマークが達成される。第1のフィルタバンクは、T
bのホップサイズ、即ちビット長により特徴付けられる。このホップサイズは2つの隣接する時間ブロックの間の時間区間である。窓の長さは略T
bである。この窓の形状はビット成形に使用されたものと同一である必要はなく、また、一般的には人間の聴覚システムをモデルすべきものである点に注意されたい。この問題点に関しては、多数の文献において研究されている。
【0071】
第2のフィルタバンクはより短い窓関数を適用する。スピーチの中にウォーターマークを埋め込む場合には、高い時間的分解能を達成することが特に重要である。なぜなら、その時間的構造は一般的にT
bよりも細かいからである。
【0072】
入力オーディオ信号のサンプリングレートは、それがウォーターマーク信号をエイリアシング無しで記述できる程度に十分に大きい限りは、重要ではない。例えば、もしウォーターマーク信号に含まれる最大周波数成分が6kHzである場合には、時間信号のサンプリングレートは少なくとも12kHzでなければならない。
【0073】
3.2.2 聴覚心理モデル502
聴覚心理モデル502は、マスキング閾値を決定するという役割を持つ。即ち、ウォーターマーク済みのオーディオ信号が元の信号から区別できないように維持しながら、各サブバンド及び時間ブロックのためのオーディオ信号の中に隠すことができる、エネルギーの量を決定する。
【0074】
i番目のサブバンドは、2つの限界、即ちf
i(min)とf
i(max)との間で決定される。サブバンドは、N
f個の中央周波数f
iを定義し、かつi=2,3,...,N
fについて、f
i-1(max)=f
i(min)となるようにすることで決定される。中央周波数の適切な選択は、ツイッカー(Zwicker)により1961年に提案されたバークスケール(Bark scale)により与えられる。サブバンドは、より高い中央周波数に対してはより大きくなる。このシステムの可能性のある一実施例では、適切な方法で配置された1.5〜6kHzの範囲の9個のサブバンドが使用される。
【0075】
後続の処理ステップは、各サブバンド及び各時間ブロックのための各時間/周波数分解能について別々に実行される。処理ステップ801は、スペクトル平滑化を実行する。事実、調性的要素(tonal elements)およびパワースペクトル内のノッチは平滑化する必要がある。これは幾つかの方法で実行可能である。調性値(tonality measure)を計算し、次にその値を使用して適応型の平滑化フィルタを駆動しても良い。代替的に、このブロックのより単純な実施例においては、メディアン状フィルタを使用しても良い。そのメディアンフィルタは、値のベクトルを考慮し、それらのメディアン値を出力する。メディアン状フィルタでは、50%以外の分位点(quantile)に対応する値を選択することができる。フィルタ幅はHzで定義され、低周波数から開始して最高限度の周波数で終了する非線形移動平均として適用される。ステップ801の操作を
図7に示す。
点線の曲線は平滑化の出力を示す。
【0076】
平滑化が一旦実行されると、閾値がブロック802によって周波数マスキングだけを考慮して計算される。この場合にも別の可能性が存在する。1つの方法は、各サブバンドの最小値を用いてマスキングエネルギーE
iを計算する方法である。これはマスキングを効果的に操作する信号の実効エネルギーである。この値から、所定のスケーリングファクタを単純に乗算して、マスクされたエネルギーJ
iを得ることができる。これらのファクタは各サブバンド及び時間/周波数分解能について異なり、経験的な聴覚心理的実験を通して取得される。これらのステップは
図8で示す。
【0077】
ブロック805では、時間マスキングが考慮される。この場合、同一のサブバンドに関する異なる時間ブロックが分析される。マスクされたエネルギーJ
iは、経験的に導出されたポストマスキング・プロファイルに従って修正される。ここで、2つの隣接する時間ブロック、即ちk−1及びkについて考察する。対応するマスクされたエネルギーはJ
i(k−1)及びJ
i(k)である。ポストマスキング・プロファイルは、例えば、マスキングエネルギーE
iがエネルギーJ
iを時刻kでマスクし、エネルギーα・J
iを時刻k+1でマスクできると定義する。この場合、ブロック805は(現在の時間ブロックによりマスクされたエネルギーである)J
i(k)と、(先行する時間ブロックによりマスクされたエネルギーである)α・J
i(k+1)とを比較し、最大値を選択する。ポストマスキング・プロファイルは文献でも紹介されており、経験的な聴覚心理的実験を通して取得されてきた。大きなT
b、即ち20ミリ秒を超えるT
bについては、短時間窓関数を伴う時間/周波数分解能に対してのみポストマスキングが適用されることに注意されたい。
【0078】
要約すれば、ブロック805の出力においては、2つの異なる時間/周波数分解能に関して得られた各サブバンド毎及び時間ブロック毎のマスキング閾値を得る。それらの閾値は、周波数マスキング現象と時間マスキング現象との両方を考慮して取得されてきたものである。ブロック806では、異なる時間/周波数分解能のための閾値が融合される。例えば、1つの実施例の可能性としては、1ビットが割り当てられた時間区間及び周波数区間に対応する全ての閾値をブロック806が考慮し、最小値を選択することが挙げられる。
【0079】
3.2.3 振幅計算ブロック503
図9を参照しながら説明する。ブロック503への入力は、聴覚心理に基づく全ての計算を実行する聴覚心理モデル502から出力された閾値505である。この振幅計算器503においては、その閾値を用いた追加的な計算が実行される。第1に、振幅マッピング901が行われる。このブロックは、(通常はエネルギーとして表現される)マスキング閾値を単に振幅へと変換するだけであり、その振幅は、第3.1章で定義したビット成形関数をスケールするために使用できるものである。その後、振幅適応ブロック902が使用される。このブロックは、ウォーターマーク生成器101の中でビット成形関数を乗算するために使用される振幅γ(i,j)を、マスキング閾値が確実に満たされるように繰り返し適応させる。事実、上述したように、ビット成形関数は、通常はT
bよりも長い時間区間に亘って延びる。従って、点 i,j においてマスキング閾値を満たす正確な振幅γ(i,j)を乗算することが、点 i,j−1 において必ずしも条件を満たすことにはならない。この点は、前エコーが可聴になるため、強いオンセットにおいては特に重大である。回避すべきもう一つの状況は、異なるビットの尾部が不運にも重畳し、可聴のウォーターマークをもたらすことである。そのため、ブロック902はウォーターマーク生成器によって生成された信号を分析し、閾値が満たされたかどうかをチェックする。もし満たされていない場合には、振幅γ(i,j)を適切に修正する。
【0080】
符号器側の説明は以上である。後段では(ウォーターマーク復号器とも呼ばれる)受信器において実行される処理ステップについて説明する。
【0081】
3.3 分析モジュール203
分析モジュール203はウォーターマーク抽出処理の最初のステップ(又はブロック)である。その目的は、ウォーターマーク済みのオーディオ信号200aを、(符号204でも示される)N
f 個のビットストリーム
(各スペクトルサブバンドiについて1個ずつ)へと戻し変換することである。これらには、同期モジュール201及びウォーターマーク抽出器202により、第3.4章及び第3.5章でそれぞれ説明するように、更なる処理が施される。
はソフト・ビットストリームであり、即ち、それらは例えばいかなる実数値をとることもでき、ビットに関する硬判定(hard decision)が未だ行なわれていないことに注意すべきである。
【0082】
分析モジュールは、
図16に示す3つの部分、即ち分析フィルタバンク1600と、振幅正規化ブロック1604と、差分復号化1608とから成る。
【0083】
3.3.1 分析フィルタバンク1600
ウォーターマーク済みのオーディオ信号は、
図10aにその詳細を示す分析フィルタバンク1600によって、時間−周波数−ドメインへと変換される。このフィルタバンクの入力は、受信されたウォーターマーク済みのオーディオ信号r(t)である。その出力は、時刻jにおけるi番目の分枝又はサブバンドのための複素係数b
iAFB(j)である。これらの値は、中央周波数f
i及び時刻j・T
bにおける信号の振幅と位相についての情報を含む。
【0084】
フィルタバンク1600はN
f個の分枝で構成され、各分枝が各スペクトルサブバンドiに対応している。各分枝は、スペクトルサブバンドiについて、同相成分(in-phase component)のための上側サブ分枝と、直交成分(quadrature component)のための下側サブ分枝とに分割される。ウォーターマーク生成器における変調とウォーターマーク済みのオーディオ信号とは純粋に実数値であるが、チャネルと同期の整列ミスとにより導入された変調信号空間(modulation constellation)の回転は受信器においては既知ではないため、受信器における複素値の分析が必要となる。後段においては、フィルタバンクのi番目の分枝について考察する。同相及び直交のサブ分枝を結合することで、複素値のベースバンド信号複素係数b
iAFB(t)を次式のように定義できる。
ここで、*は畳み込みを示し、g
iR(t)はサブバンドiの受信器低域通過フィルタのインパルス応答を示す。通常は、マッチされたフィルタ条件を満たすために、g
iR(t)i(t)は変調器307内のサブバンドiのベースバンドビット形成関数g
iT(t)に等しいが、他のインパルス応答も可能である。
【0085】
レート1=T
bで係数b
iAFB(j)を得るために、連続的な出力b
iAFB(t)をサンプリングしなければならない。もし仮に、正確なタイミングが受信器において既知であったとすれば、レート1=T
bでサンプリングすることで十分だったであろう。しかし、実際にはビット同期は既知ではないために、レートN
os/T
bでサンプリングが実行され、ここで、N
osは分析フィルタバンク・オーバーサンプリング・ファクタである。(例えばN
os=4のように)N
osを十分に大きい値に選択することで、少なくとも1つのサンプリング・サイクルが理想的なビット同期に十分近いことが保証できる。最適なオーバーサンプリング・レイヤは、同期プロセスの途中で決定されるため、オーバーサンプリングされた全てのデータはその時点まで維持される。このプロセスは第3.4章で説明する。
【0086】
i番目の分枝の出力において係数b
iAFB(j,k)を持ち、ここでjはビット番号又は時刻を示し、kはこの1ビット内のオーバーサンプリング位置を示し、k=1,2,...,N
osである。
【0087】
図10bは時間-周波数平面上の係数の位置を示す例示的な全体像である。オーバーサンプリング・ファクタはN
os=2である。長方形の高さ及び幅は、対応する係数b
iAFB(j,k)により表現される信号部分の帯域及び時間区間をそれぞれ示す。
【0088】
もしサブバンド周波数 f
i が所定区間Δfの倍数となるように選択される場合には、分析フィルタバンクは高速フーリエ変換(FFT)を用いて効果的に構成することができる。
【0089】
3.3.2 振幅正規化1604
一般化を損なわずかつ説明を簡素化する目的で、以下においてはビット同期が既知でありかつN
os=1であると仮定する。つまり、正規化ブロック1604の入力においては複素の係数b
iAFB(j)を持つ。受信器においてはチャネル状態の情報が何もない(即ち伝播チャネルが既知でない)ために、等利得合成(equal gain combining: EGC)スキームが使用される。時間および周波数の分散的なチャネルに起因して、送られたビットb
i(j)のエネルギーは、中央周波数f
i及び時刻jの周囲だけではなく、隣接する周波数および時刻においても見つけられる。従って、より精確な重み付けのために、周波数f
i±nΔf における追加的な係数が計算され、係数b
iAFB(j)の正規化のために使用される。もしn=1であるならば、例えば次式となる。
【0090】
n>1についての正規化は、上述の式の単純な拡張である。同様にして、2つ以上の時刻について考慮することで、ソフトビットを正規化することを選択できる。このような正規化が各サブバンドi及び各時刻jについて実行される。EGCの実際の合成は、抽出プロセスにおける更に後のステップにおいて実行される。
【0091】
3.3.3 差分符号化1608
差分符号化ブロック1608には、周波数f
i及び時刻jにおける信号要素の位相についての情報を含む、振幅正規化された複素係数b
inorm(j)が入力される。ビットは送信機において差分符号化されているため、ここでは逆の操作が実行されなければならない。ソフトビット
は、まず2つの連続する係数の位相における差異を計算し、次に、その実数部分を取ることで得られる。
【0092】
伝送チャネルは通常、各サブバンドにおいて異なる位相回転を導入するため、この計算は各サブバンドについて個別に実行する必要がある。
【0093】
3.4 同期モジュール201
同期モジュールの役割は、ウォーターマークの時間的同期を見つけることである。符号化済みのデータに対して復号器を同期化する問題は、2つのステップで構成される。第1のステップでは、分析フィルタバンクは符号化済みのデータに対して整列しなければならない。即ち、変調器の中で合成に使用されるビット成形関数g
iT(t)は、分析のために使用されたフィルタg
iR(t)と整列しなければならない。この問題は
図12aに示す。ここでは、分析フィルタは合成フィルタと同一である。図の上方において、3個のビットを示す。簡素化する目的で、これら全3個のビットのための波形はスケールされていない。異なるビットの間の時間的オフセットはT
bである。図の下方は、復号器における同期の問題を表している。即ち、フィルタは異なる時刻で適用可能であるが、しかし、
太線(曲線1299a)で示された位置だけが正確であり、第1のビットを最高の信号対雑音比SNRと信号対干渉比SIRとを用いて抽出することが可能となる。事実、不正確な整列はSNRとSIRとの両方を低下させるおそれがある。ここでは、この第1の整列を「ビット同期」と呼ぶ。一旦ビット整列が達成されたならば、ビットは最適に抽出される。しかし、メッセージを正確に復号化するためには、どのビットにおいて新たなメッセージがスタートするかについて知ることが必要となる。この問題については
図12bにおいて示し、メッセージ同期と呼ぶ。復号化されたビットのストリームの中では、
太い矢印(位置1299b)で示されたスタート位置だけが正確であり、k番目のメッセージを復号化することが可能である。
【0094】
先に、メッセージ同期についてだけ説明する。同期署名は、第3.1章で説明したように、ウォーターマーク内に連続的かつ周期的に埋め込まれた、所定の順序のN
s個のシーケンスで構成される。同期モジュールは、同期シーケンスの時間的整列を回復(retrieve)することができる。サイズN
sに基づいて、
図12cと
図12dにそれぞれ示す2つの操作モードを区別することができる。
【0095】
全体メッセージ同期モード(
図12c)においては、N
s=N
m/R
cである。この図では、簡素化するために、N
s=N
m/R
c=6であって、時間的拡散はなし、即ちN
t=1であると仮定する。使用される同期署名は、説明のためにメッセージの下方に示す。現実には、第3.1章で説明したように、それらメッセージは符号化されたビットと周波数拡散シーケンスとに基づいて変調される。このモードでは、同期署名の周期長はメッセージの周期長と同一である。そのため、同期モジュールは、同期署名の時間的整列を見つけることで、各メッセージの開始を確認することができる。新たな同期署名が同期ヒットとしてスタートする時間的位置に注目されたい。同期ヒットは、次にウォーターマーク抽出器202へと送られる。
【0096】
可能性のある第2のモードとしての部分的メッセージ同期モードを
図12bに示す。この場合には、N
s<N
m=R
cである。この図では、N
s=3であると仮定する。即ち、3個の同期シーケンスが各メッセージについて2回繰り返される。メッセージの周期長は同期署名の周期長の倍数である必要はない点に注意されたい。この操作モードにおいては、全ての同期ヒットがメッセージの開始に対応する訳ではない。同期モジュールはヒット間を区別する手段を持たず、この役割はウォーターマーク抽出器202に委ねられる。
【0097】
同期モジュールの処理ブロックは
図11aと
図11bに示す。同期モジュールは、同期署名コリレータ1201の出力1201aを分析することで、ビット同期および(全体または部分的な)メッセージ同期を一度に実行する。時間/周波数ドメインのデータ204は分析モジュールによって提供される。ビット同期はまだ有効ではないため、第3.3章で説明したように、ブロック203はファクタN
osを用いてデータをオーバーサンプリングする。入力データを
図12eに示す。この例においては、N
os=4、N
t=2、N
s=3であると仮定する。換言すれば、同期署名は(a,b,cで示す)3個のシーケンスから成る。この場合には、拡散シーケンスc
t=[1 1]
Tを用いた時間拡散は、時間ドメインで各ビットを単純に2回ずつ繰り返す。正確な同期ヒットは矢印で示され、各同期署名の開始に対応する。同期署名の周期は、N
t・N
os・N
s=N
sblであり、例えば2・4・3=24である。同期署名の周期により、同期署名コリレータ(1201)は任意に時間軸をブロックへと分割する。このブロックはサーチブロックと呼ばれ、サイズはN
sblであり、その下付き文字がサーチブロックの長さを表している。
図12fに示すように、各サーチブロックは、1つの同期ヒットを含まなければならない(又は典型的に含んでいる)。N
sbl個のビットの各々が同期ヒットの候補である。ブロック1201の役割は、各ブロックの各候補ビットについて尤度を計算することである。この情報1201aは、次に同期ヒットを演算するブロック1204へと送られる。
【0098】
3.4.1 同期署名コリレータ1201
N
sbl個の同期位置の候補の各々について、同期署名コリレータが尤度を計算する。その尤度が大きければ大きい程、(ビット同期と部分又は全体メッセージ同期との両方の)時間的整列が見つかった可能性が高くなる。この処理ステップを
図12gで示す。
【0099】
このようにして、異なる選択位置に関する尤度のシーケンス1201aを得ることができる。
【0100】
ブロック1301は時間的逆拡散を実行する。即ち、N
t個の各ビットを時間拡散シーケンスc
tと乗算し、その後それらを合計する。これはN
f個の周波数帯域の各々について実行される。
図13aに一例を示す。前述した例と同一のパラメータを使用する。即ち、N
os=4、N
t=2、N
s=3である。同期位置の候補には印をつけてある。そのビットから、N
osのオフセットを用いてN
t・N
sがブロック1301で取得され、更にシーケンスc
tを用いて時間逆拡散され、その結果、N
s個のビットが残される。
【0101】
ブロック1302では、ビットは要素毎にN
s個の拡散シーケンスと乗算される(
図13bを参照)。
【0102】
ブロック1303では、周波数逆拡散が実行される。つまり、各ビットが拡散シーケンスc
fと乗算され、その後、周波数に沿って合計される。
【0103】
このとき、仮に同期位置が正確であったとすると、N
s個の復号化されたビットを得るであろう。そのビットは受信器には知られていないので、ブロック1304は、N
s個の値と合計との絶対値を取ることで、尤度を計算する。
【0104】
ブロック1304の出力は、原則的には同期署名を探求する非干渉性コリレータの出力となる。事実、小さなN
sを選択した場合、即ち部分的メッセージ同期モードを選択した場合、互いに直交する同期シーケンス(例えばa,b,c)を使用することが可能となる。そうすることで、コリレータが署名と正確に整列していない場合、その出力が非常に小さくなり、理想的にはゼロとなる。全体的なメッセージ同期モードを使用する場合、できるだけ多数の直交同期シーケンスを使用し、次にそれらが使用された順序を注意深く選択することで、署名を作成することが望ましい。この場合、拡散シーケンスを良好な自己相関関数で探求するときと同じ理論を適用できる。コリレータが僅かに整列ミス状態であるときは、コリレータの出力は理想的な場合であってもゼロではなくなるが、しかしいずれにしても、分析フィルタが信号エネルギーを最適状態では獲得できないため、完全な整列状態に比べて小さくなるであろう。
【0105】
3.4.2 同期ヒットの計算1204
このブロックは同期署名コリレータの出力を分析し、同期位置がどこにあるのかを決定する。このシステムがT
b/4までのミス整列に対して相当にロバストであり、T
bが通常は約40ミリ秒であることから、ブロック1201の出力を時間に亘って積分し、より安定的な同期を達成することが可能である。この実施例として可能性のあるものは、時間に沿って適用され、インパルス応答を指数関数的に減衰させる、IIR(無限インパルス応答)フィルタである。代替的に、伝統的なFIR移動平均フィルタも使用できる。平均化が一旦実行されると、異なるN
t・N
sに沿った第2のコリレーション(「異なる選択位置」)が実行される。実際には、同期関数の自己相関関数が既知であるという情報を活用する。これが、最尤推定量(Maximun Likelihood estimator)に対応する。この考え方を
図13cに示す。この曲線は、時間積分後のブロック1201の出力を示す。同期ヒットを決定するための1つの可能性のある方法は、この関数の最大値を見つけることである。
図13dには、
図13cと同じ関数を細線で示し、同期署名の自己相関関数でフィルタ処理された関数を太線で示す。この場合、最大値がより明確化され、同期ヒットの位置が明確になる。2つの方法の結果は高いSNRの状況下では相当に類似しているが、低いSNRの状況下では第2の方法が格段に良好である。同期ヒットが発見された後は、ウォーターマーク抽出器202へと送られ、そこでデータが復号化される。
【0106】
本発明の幾つかの実施形態では、ロバストな同期信号を得るために、短い同期署名を用いた部分的メッセージ同期モードで同期が実行される。そのため、多くの復号化を実行する必要があり、また偽陽性(false positive) のメッセージ検出を冒すリスクが高まってしまう。これを防止するため、本発明の幾つかの実施形態では、信号化シーケンスをより低いビットレートを持つメッセージの中に挿入しても良い。
【0107】
この手法は、メッセージよりも短い同期署名から起こる問題に対する解決法であり、強化された同期についてこれまで説明した。この場合、復号器は新たなメッセージがどこでスタートするかが分からず、複数の同期ポイントにおいて復号化しようと試みる。真正なメッセージと偽陽性のメッセージとを区別するため、本発明の幾つかの実施例においては、ある信号語を使用する(即ち、既知の制御シーケンスを埋め込むためにペイロードが犠牲となる)。幾つかの実施例においては、真正なメッセージと偽陽性のメッセージとの間を区別するために、(代替的又は追加的に)真偽性(plausibility)チェックが使用される。
【0108】
3.5 ウォーターマーク抽出器202
ウォーターマーク抽出器202を構成する部分について
図14を参照しながら説明する。この抽出器は2つの入力、即ちブロック203からの入力204とブロック201からの入力205とを持つ。同期モジュール201(第3.4章を参照)は同期タイムスタンプ、即ち候補メッセージがスタートする時間ドメインの位置を提供する。この点については、第3.4章でより詳細に説明している。他方、分析フィルタバンク・ブロック203は、復号化される準備が整ったデータを時間/周波数ドメインで提供する。
【0109】
第1の処理ステップであるデータ選択ブロック1501は、復号化されるべき候補メッセージとして認識される部分を入力204から選択する。図
15はこの過程を図式的に示す。入力204は実数値のN
f個のストリームで構成される。時間的整列は復号器には事前に知られていないため、分析ブロック203は1/T
bHzよりも高いレートで周波数分析(オーバーサンプリング)を実行する。図
15ではオーバーサンプリング・ファクタを4とした。即ち、サイズN
f×1の4個のベクトルがT
b秒毎に出力される。同期ブロック201が候補メッセージを認識したときに、同期ブロック201は候補メッセージのスタート点を示すタイムスタンプ205を交付する。選択ブロック1501は復号化に必要な情報、即ちサイズN
f×N
m/R
cの行列を選択する。この行列1501aは更なる処理のためにブロック1502へと送られる。
【0110】
ブロック1502,1503,1504は、第3.4章で説明したブロック1301,1302,1303と同じ操作を実行する。
【0111】
本発明の代替的な実施形態では、復号化されるべきデータもまた同期モジュールから提供させることで、ブロック1502〜1504の計算を省略している。概念上、それは些細なことである。実装の観点から見れば、それはバッファがどのように実現されるかという問題に過ぎない。一般的には、計算を再度実行することで、より小さなバッファを使用することができる。
【0112】
チャネル復号器1505はブロック302の逆の操作を実行する。もし、このモジュールの可能性のある実施例のチャネル符号器がインターリーバを伴う畳み込み符号器で構成されている場合には、チャネル復号器はデ・インターリービング及び畳み込み復号化を、例えば公知のビタビ・アルゴリズムなどを用いて実行する。このブロックの出力において、N
mビット、即ち候補メッセージを得る。
【0113】
ブロック1506、即ち信号化および真偽性のチェックブロックは、入力された候補メッセージが実際にメッセージか否かを決定する。これを実行するためには、様々な方法が可能である。
【0114】
基本的な考え方は、(CRCシーケンスのような)信号語を使用して真正なメッセージと偽のメッセージとの間を区別することである。しかしこれは、ペイロードとして使用可能なビット数を減少させてしまう。代替的に、真偽性のチェックを使用できる。もし、例えばメッセージがタイムスタンプを含んでいる場合には、連続的なメッセージは連続的なタイムスタンプを持っているはずである。もし、復号化されたメッセージが不正確な順序のタイムスタンプを持っている場合には、それを除外することができる。
【0115】
メッセージが正確に検出されてきた場合には、システムは、ルックアヘッド及び/又はルックバックの機能を適用するよう選択しても良い。このとき、ビット同期とメッセージ同期との両方が達成されたと推定する。ユーザーがザッピングしていないと想定して、システムは時間的に「ルックバック」し、(もしまだ復号化されていない場合には)過去のメッセージを同じ同期ポイントを用いて復号化しようと試みる(ルックバックの手法)。この手法は、システムの開始時において特に有用である。さらに、悪い条件下では、同期を達成するために2個のメッセージが必要となるかもしれない。その場合には、1番目のメッセージにはチャンスがない。ルックバックを選択することで、バック同期のみに起因して受信されてこなかった「良好な」メッセージを救うことができる。ルックアヘッドも同様であるが、将来に関して有益である。現時点でメッセージがあれば、次のメッセージがどこにあるべきかが分かり、いずれかの方法でそれを復号化しようと試みることができる。
【0116】
3.6 同期の詳細
ペイロードを符号化するために、例えばビタビ・アルゴリズムを使用しても良い。
図18aは、ペイロード1810と、ビタビ終端シーケンス1820と、ビタビ符号化済みペイロード1830と、ビタビ符号化済みペイロードの反復符号化されたバージョン1840とを図式的に示す。例えば、ペイロード長は34ビットであり、ビタビ終端シーケンスは6ビットを含んでも良い。もし、例えば1/7のビタビ符号レートを使用した場合、ビタビ符号化済みペイロードは(34+6)*7=280個のビットを含むことになる。更に、1/2の反復符号化を使用すれば、ビタビ符号化済みペイロード1830の反復符号化されたバージョン1840は、280*2=560個のビットを含むことになる。この例では、42.66ミリ秒のビット時間区間を考慮すれば、メッセージ長は23.9秒となる。この信号は、
図18bに示す周波数スペクトルによって表されるような、例えば1.5〜6kHzの(例えば臨界帯域に従って配置された)9個のサブキャリアを用いて埋め込んでも良い。代替的に、0〜20kHzの周波数範囲内の他の個数(例えば4,6,12,15又は2〜20の間の数)のサブキャリアが使用されても良い。
【0117】
図19は、ABC同期とも呼ばれる同期についての基本概念1900の概略図を示す。この図は、符号化されていないメッセージ1910と、符号化されたメッセージ1920と、同期シーケンス1930と、その同期を複数のメッセージ1920へと相互連続的に適用した様子を示す。
【0118】
(
図19〜
図23に示す)この同期概念の説明において言及する同期シーケンスは、前述した同期署名と同一であっても良い。
【0119】
更に、
図20は同期シーケンスとのコリレートによって発見される同期の概略図を示す。もし同期シーケンス1930がメッセージよりも短い場合には、2つ以上の同期ポイント1940(又は整列時間ブロック)が1つのメッセージ内で発見されても良い。
図20に示す例においては、各メッセージ内に4個の同期ポイントが発見される。更に、発見された各同期について、ビタビ復号器(ビタビ復号化シーケンス)がスタートされても良い。このようにして、各同期ポイント1940について、
図21に示すようなメッセージ2110が取得されても良い。
【0120】
これらのメッセージに基づいて、
図22に示すように、CRCシーケンス(サイクル冗長性チェックシーケンス)及び/又は真偽性チェックを使用して、真正なメッセージ2210が識別されても良い。
【0121】
CRC検出(サイクル冗長性チェック検出)は、偽陽性のメッセージから真正のメッセージを識別するために既知のシーケンスを使用しても良い。
図23は、ペイロードの終端に追加されたCRCシーケンスの例を示す。
【0122】
偽陽性(誤った同期ポイントに基づいて生成されたメッセージ)の確率は、CRCシーケンスの長さと、スタートされたビタビ復号器の数(1つのメッセージ内の同期ポイントの数)とに基づいても良い。偽陽性の確率を増大させずにペイロード長を増大させるために、真偽性が利用されても良く(真偽性テスト)、同期シーケンス(同期署名)の長さが増大されても良い。
【0123】
4. 概念及び利点
以下に、上述したシステムの幾つかの態様であって革新的であると考えられるものについて説明する。また、それらの態様と現状の技術との関係についても説明する。
【0124】
4.1 連続的な同期
幾つかの実施形態は連続的な同期を可能にする。ここでは同期署名とも呼ぶ同期信号は、伝送及び受信側の両方にとって既知である(同期拡散シーケンスとも呼ばれる)シーケンスとの乗算によって、連続的かつデータに並行して埋め込まれる。
【0125】
幾つかの従来システムでは、(データに使用されたものとは異なる)特別なシンボルを使用するが、本発明に従う幾つかの実施形態ではそのような特別なシンボルは使用しない。他の従来の方法では、データと時間的に乗算されたビットの既知のシーケンス(プリアンブル)を埋め込むか、又はデータと周波数的に乗算された信号を埋め込む方法を含む。
【0126】
しかし、同期のために専用のサブバンドを使用することは望ましくないことが分かっている。なぜなら、そのような周波数においてはチャネルがノッチを持ち、同期を実現不可能にすることがあるからである。このように、プリアンブル又は特別なシンボルがデータと時間的に乗算されるような方法に比べると、本発明の方法は、(例えば動きに基づく)同期におけるトラックチェンジを連続的に許可するという点で有利である。
【0127】
更に、ウォーターマーク信号のエネルギーは、(例えば拡散された情報表現の中へウォーターマークを乗算的に導入することなどによって)変化しない。また、同期は聴覚心理モデル及びデータレートから独立して指定できる。同期署名の時間長は、同期のロバスト性を決定するものであるが、データレートから完全に独立して自在に指定することができる。
【0128】
他の従来方法では、データとコード乗算された同期シーケンスを埋め込むことを含む。このような従来の方法と比較した場合、本発明の方法は、データのエネルギーがコリレーションの計算における干渉ファクタを表すものではないという利点があり、更なるロバスト性をもたらす。加えて、コード乗算を使用すると、同期に使用可能な直交シーケンスの幾つかはデータに必要となるため、その数が減少する。
【0129】
要約すれば、本発明の連続的な同期の手法は従来の概念に比べて多数の利点をもたらすと言える。
【0130】
しかし、本発明に従う幾つかの実施形態においては、異なる同期概念を適用しても良い。
【0131】
4.2 2次元拡散
本発明が提案するシステムの幾つかの実施形態では、時間と周波数との両方のドメインにおける拡散、即ち2次元拡散(略称は2D拡散)を実行する。この方法は、例えば時間ドメインにおいて冗長性を追加することでビット誤差レートを更に減少できるために、1Dシステムよりも有利であることが分かってきた。
【0132】
しかし、本発明に従う幾つかの実施形態においては、異なる拡散概念を適用しても良い。
【0133】
4.3 差分符号化および差分復号化
本発明に従う幾つかの実施形態では、移動又はローカルな発振器の周波数ミスマッチに対する(従来システムと比べた場合の)ロバスト性が、差分変調によってもたらされる。事実、ドップラー効果(移動)及び周波数のミスマッチは、BPSK(バイナリー位相シフト・キーイング)信号空間(constellation)(換言すればビットの複素平面における回転)をもたらす。幾つかの実施形態においては、そのようなBPSK信号空間(又は他の適切な変調信号空間)の回転の有害な影響は、差分符号化または差分復号化を用いて防止される。
【0134】
しかし、本発明の幾つかの実施形態においては、他の符号化概念または復号化概念を適用しても良い。また、幾つかの場合には、差分符号化が省略されても良い。
【0135】
4.4 ビット成形
本発明の幾つかの実施形態においては、ビット成形によってシステム性能が有意に向上する。なぜなら、ビット成形に適応したフィルタを使用することで、検出の信頼性が向上するからである。
【0136】
幾つかの実施形態に従えば、ウォーターマーキングに関してビット成形を使用することで、ウォーターマーキング処理の信頼性が向上する。ビット成形関数がビット区間よりも長い場合には、特に良好な結果が得られることが判明してきた。
【0137】
しかし、本発明の幾つかの実施形態においては、異なるビット成形概念を適用しても良い。また、ある場合には、ビット成形が省略されても良い。
【0138】
4.5 聴覚心理モデル(PAM)とフィルタバンク(FB)合成との間の双方向性
本発明の幾つかの実施形態においては、ビットに乗算される振幅を微調整するために、聴覚心理モデルと変調器とが相互に作用する。
【0139】
しかし、実施形態によっては、この相互作用が省略されても良い。
【0140】
4.6 ルックアヘッド及びルックバックの特徴
幾つかの実施形態においては、所謂「ルックバック」及び「ルックアヘッド」の手法が適用される。
【0141】
以下に、これらの概念について簡単に説明する。メッセージが正確に復号化されたとき、同期が達成されたと推定される。ユーザーがザッピングしていないと想定して、幾つかの実施形態では、時間におけるルックバックが実行され、(もしまだ復号化されていない場合には)過去のメッセージを同じ同期ポイントを用いて復号化しようと試みる(ルックバックの手法)。この手法はシステムがスタートする時に特に有用である。
【0142】
悪い条件下では、同期を達成するために2個のメッセージが必要となるかもしれない。その場合には、従来のシステムでは1番目のメッセージにはチャンスがない。本発明の幾つかの実施形態で使用されるルックバックを選択することで、バック同期だけでは受信されなかった「良好な」メッセージを救う(復号化する)ことが可能となる。
【0143】
ルックアヘッドも同様であるが、将来において役に立つ。現時点でメッセージを有していれば、次のメッセージがどこにあるべきかを知ることができ、何らかの方法でそれを復号化しようと試みることができる。従って、オーバーラップしているメッセージを復号化することができる。
【0144】
しかし、本発明の幾つかの実施形態においては、このルックアヘッドの特徴及び/又はルックバックの特徴も省略されても良い。
【0145】
4.7 優位な同期ロバスト性
本発明の幾つかの実施形態においては、ロバストな同期信号を得るために、短い同期署名を用いた部分メッセージ同期モードで同期が実行される。そのため、多くの復号化が実行されなければならなくなり、また偽陽性のメッセージ検出を冒すリスクが高まってしまう。これを防止するため、本発明の幾つかの実施形態では、より低いビットレートを持つメッセージの中に信号化シーケンスを挿入しても良い。
【0146】
しかし、本発明に従う幾つかの実施形態においては、同期のロバスト性を高める他の概念を適用しても良い。また、幾つかの例においては、同期のロバスト性を高める概念を使用することが省略されても良い。
【0147】
4.8 他の優位点
以下に、背景技術との比較における、上述したシステムの他の一般的な優位点について説明する。
1. 計算上の低い複雑度
2. 良好な聴覚心理モデルに基づく良好なオーディオ品質
3. 狭帯域マルチキャリア信号に基づいた残響環境における良好なロバスト性
4. SNR推定が省略される実施形態もある。この場合、特に低いSNR環境においてより良好なロバスト性が得られる。
【0148】
本発明に従う幾つかの実施形態は、例えば8Hzの非常に狭い帯域を使用する従来システムよりも、以下の理由で優位である。
1. 8Hzの帯域(又は同様の非常に狭い帯域)は非常に長い時間シンボルを必要とする。なぜなら、聴覚心理モデルはシンボルを非可聴とするためのエネルギーを非常に僅かしか許可しないからである。
2. 8Hz(又は同様の非常に狭い帯域)は、経時的に変化するドップラースペクトルに対してシンボルを敏感にする。従って、そのような狭帯域システムは、例えば腕時計の中などに実装された場合に、一般的に十分良好とは云えない。
【0149】
本発明に従う幾つかの実施形態は、他の技術に比べて以下の理由で優位である。
1. エコーを導入する技術は、残響室の中では完全に失敗となる。反対に、本発明の幾つかの実施形態では、エコーの導入を防止できる。
2. 例えば時間と周波数との両方における2次元拡散が使用されるような、上述した本発明のシステムの実施形態と比較すれば、時間拡散だけを使用する技術では、メッセージ持続時間が長くなる。
【0150】
本発明に従う幾つかの実施形態は、特許文献1に開示されたシステムに比べて優位である。なぜなら、特許文献1に従うシステムの以下に記載する欠点の1つ又は複数が克服されているからである。
・ 特許文献1に従う復号器の複雑度は非常に高く、長さ2Nで、N=128であるフィルタが使用されている。
・ 特許文献1に従うシステムは、長いメッセージ持続時間を持つ。
・ 特許文献1に従うシステムでは、比較的高い拡散ゲイン(例えば128)を用いた時間ドメインでの拡散だけである。
・ 特許文献1に従うシステムでは、信号は時間ドメインで生成され、スペクトルドメインへと変換され、重み付けされ、時間ドメインへと逆変換され、オーディオへと重畳される。そのため、システムが非常に複雑となる。
【0151】
5. アプリケーション
本発明は、デジタルデータを隠すためにオーディオ信号を修正する方法と、この情報を回復できる対応する復号器とを含み、修正されたオーディオ信号の知覚品質が、元のオーディオ信号の知覚品質と区別できないものである。
【0152】
本発明の可能性のあるアプリケーションの例を以下に示す。
1. 放送モニタリング: 例えばステーションや時間に関する情報を含むウォーターマークが、ラジオ番組やテレビ番組のオーディオ信号の中に隠されている。テスト被験者が身につけた小型装置の中に組み込まれた復号器が、そのウォーターマークを回復することができる。このようにして、広告業者にとって価値のある情報、即ち誰がどの番組をいつ見たのかという情報を収集する。
2. 監査(Auditing):ウォーターマークが例えば広告などに隠される。所定のステーションの伝送状況を自動的にモニターすることで、いつその広告が放送されたかを正確に知ることができる。同様の方法で、異なるラジオの番組スケジュールについての統計的情報、例えば所定の楽曲がどのくらいの頻度で演奏されたかなどの情報を取り出すことができる。
3. メタデータの埋め込み:本発明が提案する方法は、楽曲又は番組についてのデジタル情報、例えば楽曲の名前や作者または番組の持続時間などを隠すために使用できる。
【0153】
6. 代替的な構成
本発明の幾つかの態様を装置の文脈において説明してきたが、これらの態様は対応する方法の説明をも表すものであり、そこではブロックまたは装置が、方法の各段階または方法の各段階の特徴に相当することが明らかである。同様に、方法の各段階の文脈において説明した態様は、対応する装置の対応するブロック若しくは項目又は特徴の説明をも表すものである。上述した方法ステップの幾つか又は全ては、例えばマイクロプロセッサ、プログラム可能なコンピュータ又は電子的回路のような、ハードウエア装置(又はその使用)によって実行されても良い。幾つかの実施形態では、重要な方法ステップの1つ又は複数がそのような装置によって実行されても良い。
【0154】
本発明の符号化済みのウォーターマーク信号またはウォーターマークが埋め込まれたオーディオ信号は、デジタル記憶媒体に記憶することも、又はインターネットのような無線伝送媒体若しくは有線伝送媒体などの伝送媒体を介して伝送することもできる。
【0155】
所定の構成要件にも依るが、本発明の実施形態は、ハードウエア又はソフトウエアにおいて構成可能である。この構成は、その中に格納される電子的に読み取り可能な制御信号を有し、本発明の各方法が実行されるようにプログラム可能なコンピュータシステムと協働する(又は協働可能な)、デジタル記憶媒体、例えばフレキシブルディスク,DVD,ブルーレイ,CD,ROM,PROM,EPROM,EEPROM,フラッシュメモリなどを使用して実行することができる。従って、そのデジタル記憶媒体はコンピュータ読み取り可能であっても良い
【0156】
本発明に従う実施形態の幾つかは、上述した方法の1つを実行するようプログラム可能なコンピュータシステムと協働可能で、電子的に読み取り可能な制御信号を有するデータキャリアを含んでも良い。
【0157】
一般的に、本発明の実施例は、コンピュータプログラム製品として構成することができ、このプログラムコードは当該コンピュータプログラム製品がコンピュータ上で作動するときに、本発明の方法の1つを実行するよう作動する。そのプログラムコードは例えば機械読み取り可能なキャリアに記憶されても良い。
【0158】
本発明の他の実施形態は、上述した方法の1つを実行するための、機械読み取り可能なキャリアに記憶されたコンピュータプログラムを含む。
【0159】
換言すれば、本発明の方法のある実施形態は、そのコンピュータプログラムがコンピュータ上で作動するときに、上述した方法の1つを実行するためのプログラムコードを有する、コンピュータプログラムである。
【0160】
本発明の他の実施形態は、上述した方法の1つを実行するために記憶されたプログラムコードを含む、データキャリア(又はデジタル記憶媒体又はコンピュータ読み取り可能な媒体)である。当該データキャリア、デジタル記憶媒体又は記録済みの媒体は、典型的には実体を有し、非遷移体である。
【0161】
本発明の他の実施形態は、上述した方法の1つを実行するためのコンピュータプログラムを表現するデータストリーム又は信号シーケンスである。そのデータストリーム又は信号シーケンスは、例えばインターネットを介するデータ通信接続を介して伝送されるように構成されても良い。
【0162】
他の実施形態は、上述した方法の1つを実行するように構成又は適用された、例えばコンピュータ又はプログラム可能な論理デバイスのような処理手段を含む。
【0163】
他の実施形態は、上述した方法の1つを実行するためのコンピュータプログラムをインストールされたコンピュータを含む。
【0164】
幾つかの実施形態においては、(例えば書換え可能ゲートアレイのような)プログラム可能な論理デバイスが、上述した方法の幾つか又は全ての機能を実行するために使用されても良い。幾つかの実施形態では、書換え可能ゲートアレイは、上述した方法の1つを実行するためにマイクロプロセッサと協働しても良い。一般的に、そのような方法は、好適には、任意のハードウエア装置によって実行される
【0165】
上述した実施の形態は、本発明の原理を単に例示的に示したにすぎない。本願明細書に記載した構成及び詳細について、修正及び変更が可能であることは、当業者にとって明らかである。従って、本発明は、本願明細書に実施形態の説明及び解説として提示した具体的詳細によって限定されるものではなく、添付した特許請求の範囲によってのみ限定されるべきである。