(57)【要約】一定精度を有する整数演算回路によって演算する透かし検出器（１２−１８）のような、デジタル信号プロセッサである。各処理ステップ（乗算、加算）は、ビット数（語長）を増大させる。例えば、バタフライ構造を有する高速フーリエ変換（１２）では、複数の前記処理ステップが実施される必要がある。実用的な実施化において、前記処理ステップは、所与の語長（例えばＮ）を有する単一の整数演算回路によって、再帰的に実施される。各ステップの後、前記信号の語長は、丸める、打ち切る、又は他の何らかの高性能な形態の量子化によって、前記所与の語長Ｎまで短くされる。量子化エラーを防止するために、前記信号は、プリプロセッサ（１９）によって前処理され、これは、語長を短くし、後続処理に対して不変である。これは、前記プリプロセッサが、無限大の精度で演算した場合に、後続処理に何の効果も与えないことを意味する。前記のようなプリプロセッサが、有限の精度で演算した場合に、これは、量子化ノイズを減少する。【特許請求の範囲】
【請求項１】
所与の語長を有するデジタル信号プロセッサを使用して信号を処理する方法であって、前記方法は、前記信号を、プリプロセッサを使用して前処理するステップを有し、前記プロセッサは、前記語長を短くし、前記デジタル信号プロセッサによって実施される前記処理に対して不変である演算を実施する方法。
【請求項２】
前記デジタル信号プロセッサによって実施される前記処理が、透かし検出であって、前記プリプロセッサが、ハイパスフィルタである、請求項1に記載の方法。
【請求項３】
一連のサンプル値を有する信号サンプルの形態で受信される信号を処理する方法であって、前記方法が、前記信号をフィルタリングし、興味のない所与の帯域内の前記一連の信号サンプル値を減少し、前記フィルタリングされた信号を、整数演算を使用してデジタル的に処理をするステップを有する方法。
【請求項４】
デジタル信号プロセッサであって、
―  一連のサンプル値を有する整数信号サンプルの形態で、信号を受信する入力手段；
―  興味のない帯域内の前記一連の信号サンプル値を減少する、フィルタリング手段；及び
―  整数演算を使用して、前記フィルタリングされた信号をデジタル的に処理するデジタル信号処理回路；
を有する、デジタル信号プロセッサ。
【請求項５】
前記デジタル信号処理回路が、前記信号を周波数係数に変換する変換回路を有する、請求項４に記載のプロセッサ。
【請求項６】
相関回路が、前記信号と所定の透かしパターンとの間の複数のシフトに関する相関関係を計算するフーリエ変換回路を含む、請求項４に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所与の語長を有するデジタルプロセッサを使用して信号を処理する方法及び装置に関する。
【背景技術】
【０００２】
高速フーリエ変換（ＦＦＴ）、畳み込み、及び離散コサイン変換（ＤＣＴ）等のような一般的なデジタル信号処理（ＤＳＰ）演算は、しばしば、このようなアルゴリズムにおいて使用される変数に対して広いダイナミックレンジを要することが知られている。このことは、固定小数点演算よりはむしろ浮動小数点演算を使用する実施化につながっている、なぜなら前者は、等しい語長で、より大きい丸めノイズ（ｒｏｕｎｄｉｎｇ  ｎｏｉｓｅ）を生じるからである。まず、一方での整数又は固定小数点演算と、他方での浮動小数点演算との間の区別を思い出してみよう。
【０００３】
我々の目的は、コンピュータのメモリ若しくはレジスタ、又はデジタル回路内で、数を、２進数（「０」及び「１」）の形態で表現することにある。前記２進数の形態の離散的性質のため、有限集合の数を表現することができるのみであって、他の全ての数は、表現可能な値の１つに「丸められる（ｒｏｕｎｄｅｄ）」又は「打ち切られる（ｔｒｕｎｃａｔｅｄ）」ので、量子化ノイズを生じる。議論のために、−１．０と１．０との間の数に焦点をあて、この値域内の数を表現するのに１６ビットが利用可能であるとする。
―  固定小数点数の場合、表現可能な数の全ては、ｎ・２−１５の形をとり、ここで、ｎは、値域［−２１５…２１５−１］内の整数である。表現可能な数は、均等に間隔をあけている。表現可能な数の最小値に対する最大値の比であるダイナミックレンジは、
【数１】
2005532001.tif 000002
である。
―  浮動小数点数の場合、表現可能な数の全ては、ｓ・（０．５＋ｍ／２ａ＋１）×２ｅ−ｂの形をとり、ここで、ｍはａビット整数であって、（０．５＋ｍ／２ａ＋１）は「仮数（ｍａｎｔｉｓｓａ）」と呼ばれ、明らかに０．５と１との間にある。ｓは、１ビットの「符号（ｓｉｇｎ）」であって、ｅは「指数」と呼ばれ、（１５−ａ）ビット数であって、ｂは指数バイアスである。７ビット仮数及び８ビット指数を例にとる。値域０．５…1（集合ｅ＝ｂ）は、１／２５６ずつ隔てて１２８の表現可能な数を含む。同様に、値域０．２５…1（集合ｅ＝ｂ−１）は、１／５１２ずつ隔てて、１２８の表現可能な数を含む、…等である。表現可能な数が、一緒により近くにパックされるほど、対数関数的に、より密に０に到達するということがわかる。指数バイアスｂが、この準対数目盛の原点を設定する。この例では、ダイナミックレンジは、
【数２】
2005532001.tif 000003
である。
【０００４】
浮動小数点数は、広いダイナミックレンジと、表現可能な数の局所的に一様な分布との間のトレードオフである。これは、多くの関連する計算において、小さい数を小さい粒度によって表示し、大きい数を大きい粒度によって表示する必要があるという発想と、上手く噛み合っている。別の言い方をすれば、即ち浮動小数点表現は、ほぼ対数関数的である「数の自然分布」に、より一層、整合する。このような訳で、実際に、浮動小数点式の計算は、ほとんどいつも、同一の大きさ（ビット数）の語を有する固定小数点式の計算よりも、ずっと正確な結果を与える。
【０００５】
浮動小数点数の重大な欠点は、加算及び乗算等を実施するために複雑なハードウェアが必要であることにある。例えば、浮動小数点式の加算の場合、両方のオペランドが、同じ指数に規格化されなければならず、次いで、通常の加算が実施され、最後に該指数の再スケーリングが実施される。従って、ソフトウェアにおいて、浮動小数点式の演算は、大抵、非常に遅い。
【０００６】
透かし検出の場合、ＦＦＴのようなＤＳＰ演算は、正確に起こるべきであって、例えば、透かしは、コンテンツ（大抵は最後の有効ビット）内に入念に隠されているので、信号プロセッサは、これを見失わないように注意して処理しなくてはならない。しかしながら、コピー保護又は透写アプリケーションにおける透かしの場合は、コストが重大な問題となっており、例えば、これは店舗において高い値段を保証することができるフィーチャではない。透かし検出器の製造者は、精度を制御するのに２つの選択を有しており、該２つの選択とは、
―  相対的に高いハードウェアのコスト（即ちソフトウェアに対する高いＣＰＵ容量）による、浮動小数点式の実施化の使用；
―  固定小数点式の実施化の使用、しかし、上述の精度に関する記載を考慮すれば、整数実施化に関して、浮動小数点式の場合よりも、非常に長い語を使用することを強いられる。これは、多くのメモリワードが記憶される必要があって、従って多くのメモリの帯域幅が必要である場合に、コストを跳ね上げさせる；
である。
【０００７】
国際特許出願公開第ＷＯ９９／４５７０７号の出願人が、透かし埋め込みシステム（以下、ＪＡＷＳと称する）を記載しているが、本発明は、特に、前記システムに利用可能である。透かし（典型的には擬似ランダムノイズ系列又はパターン）は、空間信号ドメイン内の動きビデオ信号に付加される。複雑性の理由のために、同一の透かしが、前記ビデオ信号の全ての画像（フィールド又はフレーム）内に埋め込まれる。前記複雑性を更に低減するために、小さい透かしパターンが、前記画像じゅうに、タイルのように並べられる。典型的なタイルの大きさは、１２８×１２８ピクセルである。
【０００８】
多くの透かし手法にあるように、前記透かし検出方法は、疑わしい信号と擬似ランダムノイズ系列にとの相関を取ることに基づく。前記相関関係が、所与のしきい値を超えている場合、透かしが、存在すると考えられている。ＪＡＷＳ透かし検出器において、複数の画像のタイルは、１２８×１２８バッファにたたみ込まれる（ｆｏｌｄ）。次いで、検出は、前記バッファのコンテンツと、前記小さい透かしパターンとの相関を取ることによって、実施される。
【０００９】
図１は、透かし検出処理の信号処理ステップを示している。１２８×１２８たたみこみバッファ（ｆｏｌｄ  ｂｕｆｆｅｒ）１１のコンテンツが、２次元ＦＦＴ１２に供給される。対称位相のみに整合されたフィルタリング（Symmetrical Phase Only Matched Filtering :SPOMF）ステップ１３において、周波数係数の位相が、抽出され、続いて、検出されるべき透かし１５の周波数ドメイン表現との相関を取られる。この相関を取る処理の結果に、逆ＦＦＴ演算１６を施し、相関値の２次元アレイを得る。このアレイ内に著しいピークが発見される場合（１７ａ）、前記コンテンツには、透かしが入れられているとみなされる。オプションとして、進歩的には、前記コンテンツは、同一の透かしの空間的にシフトされたバージョンによっても、透かしを入れられる。この場合、更なるピークが、検索される（１７ｂ）。これらの相対的な位置が、埋め込まれたペイロードを表現し、これは、ペイロード検出器１８によってデコードされる。
【００１０】
ＪＡＷＳのようなアルゴリズムの場合、メモリが最大のコスト要因であるので、１７ビットの語（８ビット仮数、８ビット指数）による浮動小数点式実施化が、最初に開発された。例えば、２次元ＦＦＴステップ１２において、整数を使用したい場合、１７ビットの浮動小数点式実施化と同様の精度を得るには、（ビデオコンテンツに依存して）約２０…２４ビットが必要である。
【００１１】
前記明細書から、整数ＦＦＴに関して語長を短くする助けとなることができる多くの方法が、知られており、該方法は、例えば、
―  階調ビットの挿入（信号処理ステップが、ｋビットだけダイナミックレンジを拡大すると期待される場合に、入力を、ｋビットだけ右側にシフトさせる）。Ｎ＝２ｎ点に対するＦＦＴは、ダイナミックレンジを、（最悪の場合）Ｎだけ拡大するので、ｎ階調ビットの必要とされる挿入は、Ｎという因数による入力の事前分割と同様である；及び
―  ブロック浮動小数点の使用。ブロック浮動小数点は、実際には、（例えば１６ビットの）固定小数点であって、該固定小数点は、異なる領域の数（例えば、［-１…１］、［−１／４…１／４］又は［−８…８］）を、必要なダイナミックレンジに依存して、処理ステップの異なる段において表現する。例えば、ＦＦＴにおいて、１６ビットの変数を表現するための新しい領域を、ｎ段の全ての段の後に、選択する；
等である。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
これらの方法は、有用であるが、一般的に、これらは、まだ量子化ノイズを非常に多く生じるので、例えば、強固な透かし検出を可能にすることができない。
【００１３】
本発明の公開の目的の１つは、固定小数点式実施化を、浮動小数点式実施化よりも、決して長くない語によって信号処理を実行するように使用することが、どのようにして可能であるかを示すことにある。
【課題を解決するための手段】
【００１４】
本発明によれば、前記信号は、プリプロセッサによって前処理され、これは、前記語長を短くし、後続処理に対して不変である。「不変である」という表現は、前記プリプロセッサが、無限大の精度で演算した場合、後続処理に何の効果も与えないことを意味する。
【００１５】
本発明によって、前記のようなプリプロセッサが、有限の精度で演算する場合、量子化ノイズを低減することが達成される。
【発明を実施するための最良の形態】
【００１６】
有利な実施例は、添付の従属請求項に規定されている。
【００１７】
多くのアプリケーションの場合、信号処理ステップに対する入力信号の統計が、よく知られている。例えば、図１に示した透かし検出器の場合、ビデオコンテンツは、低い水平及び垂直周波数に強いピークを有する。これは、図２に示されており、ここで左側の図は、折りたたみバッファ１１の典型的なコンテンツ（ここでは、折りたたまれたビデオの１秒）を示しており、右側の図は、ＦＦＴ１２の出力におけるスペクトルの強度プロットを示している。ゼロ周波数は、前記図の中央にある。水平及び垂直ＤＣ周波数は、ＦＦＴ１２に溢れを生じさせる。再スケーリングによって溢れを防止したとしても、量子化ノイズを生じる。この量子化ノイズは、最終的に、前記透かしを不明瞭にする。
【００１８】
本発明によれば、先ず、（ハイパス）フィルタを、ＦＦＴの入力に適用することで、大きい振幅を有する低周波数を抑圧し、これによって、必要なダイナミックレンジを減少することが好ましい。実際には、前記フィルタは、透かしのエネルギのほとんどを含む周波数を強調し、前記エネルギ領域内に最小の量子化ノイズを生じるように選択されるべきである。
【００１９】
図３は、本発明によるＪＡＷＳ透かし検出アーキテクチャのブロック図を示している。前記図は、図１と同様であるが、プリフィルタ１９を含み、２次元ＦＦＴ１２におけるダイナミックレンジ／溢れ／量子化ノイズの問題を低減する。
【００２０】
例えば、折りたたみバッファ１１のコンテンツ（図２内の左側の図）は、２次元ＦＦＴに入力される前に、前記２次元フィルタ：
【数３】
2005532001.tif 000004
によってフィルタリングされる。この結果が、図４に示されている。この図４において、左側の図は、プリフィルタリングを有さないＦＦＴ１２の出力の２次元電力密度スペクトルを示している。垂直軸は、電力が２の位置にある。係数の大半を表現するのに、約２１ビットのダイナミックレンジが必要であることは明らかである。右側の図は、上述のフィルタを使用する、プリフィルタリングを有するＦＦＴの出力を示している。前記必要なダイナミックレンジは、約８ビットまで減少されている。前記２つの２次元スペクトルは、ｘ＋ｙ＝０によって与えられる平面上に射影されている。
【００２１】
前記プリフィルタリングのステップが、（中間の）結果を表すのに必要なダイナミックレンジを大幅な減少することは、明らかである。実際には、１６ビットのブロック浮動小数点変数を、前記アルゴリズムの残り全体と組み合わせると、ピーク信頼度は、３２ビット浮動小数点式実施化とほとんど、区別ができない。図５は、前記透かし検出の信頼性を、ビデオ系列に対する時間の関数として示しており、これらは、３２ビット浮動小数点式検出器によって１回処理されたもの（実線５１）、及び１６ビット整数検出器によって１回処理されたもの（破線５２）である。
【００２２】
規格化ステップ（２次元ＦＦＴ１２の直後のＳＰＯＭＦの位相抽出１３）のために、入力フィルタの効果は、パージされる。即ち、無限大の精度の変数を有する前記プリフィルタは、何も効果を有さない（この効果は、ＳＰＯＭＦによって除去される）けれども、これは、固定小数点式実施化に対して、量子化ノイズを著しく減少する。
【００２３】
従って、プリフィルタリングの利点は、
―  整数専用ソフトウェアに対する、安い整数専用ハードウェア／小さいＣＰＵ容量；
―  整数専用ＤＳＰ上の実施化を可能にする。今日使用されているＤＳＰの巨大な大部分、及び確かに低級市場において利用可能である前記専用ＤＳＰは、整数プロセッサである。浮動小数点式ＤＳＰは、非常に価格が高い；
―  メモリ消費を減少する（ＪＡＷＳに対して１６分の１ないし１８分の１）；及び
―  メモリ帯域幅要件を、著しく減少する；
ことである。一部の実施者は、ＪＡＷＳシステムが要する７２キロバイトのＲＡＭを、チップの基盤に埋め込まず、むしろ、（ＤＶＤ−ＲＯＭドライブ内の５１２キロバイトのドライブバッファからのように）７２キロバイトの外部ＤＲＡＭメモリチップを再使用する。メモリデータバスは、通常、１６ビット又は３２ビットの幅を有するので、１８ビットの転送は、必要以上のバスを渡って動くのに、約（３２／１８）倍以上のデータを要する。これは、特に、メモリ帯域幅が重んじられている高速（１６×）ＤＶＤ−ＲＯＭドライブにおいて問題がある。
【００２４】
本発明は、ＪＡＷＳ透かしの分野における研究から持ち上がったものではあるが、当該方法は、他の透かし方法、又は実際に信号処理に、全般的に、利益を与えるのに十分に一般的であることを理解されたい。例として、図６は、２パターンＡ（６１）及びＢ（６２）の間の（循環的な）相関関係を、周波数ドメインにおける乗算（６７）を実施することによって計算する装置を示している。本発明によれば、適切に選択されたプリフィルタＦ（６３）及びＧ（６４）が使用され、これらは、各後続ＦＦＴ６５及び６６における量子化ノイズを制御するように、各パターンＡ及びＢの統計的振る舞いに適合化されている。（周波数成分をスケーリングする）前記フィルタの効果は、逆ＦＦＴ６９が適用される前に、ポストフィルタ６８によって取り消される。よくあることであるが、パターンＢが固定されている場合、前記ポストフィルタリングのステップは、パターンＢのプリフィルタリング及びＦＦＴと組み合わせされることもできる。
【００２５】
他の例としては、Jaap Haitsma、 Ton Kalker 及び Job Oostveenによる論文「Robust Audio Hashing for Content Identification」（presented at the Content-Based Multimedia Indexing conference 2001, Brescia, Italy）に記載されている指紋技術を参照いただきたい。この技術では、音声信号の「指紋」が、一連の周波数帯域内の電力スペクトルを分割し、周波数に関して及び時間に関しての両方で、これらの帯域間の違いを符号化することによって、少数のビットで、発生される。従って、得られる指紋は、ＭＰ３圧縮、ノイズ付加、又はオールパスフィルタ等のような、大幅な信号の歪みに対して、強固である。典型的には、考えられている周波数帯域は、３００Ｈｚから３ｋＨｚまでの幅をカバーする。
【００２６】
前記電力スペクトルは、ＦＦＴを、前記ダウンサンプリングされウィンドウ化された入力信号に適用することによって得られる。浮動小数点アルゴリズムが使用されている限りは、これは、正に優れている。しかしながら、かなり頻繁に、前記電力スペクトルは、ＤＣの近くにピークを含み、これは、興味のある周波数帯域内の値よりもずっと高い。この結果、小さいダイナミックレンジを有する整数ＦＦＴが使用される場合、前記周波数帯域に過度の量子化ノイズを生じる。明らかに、これは、前記指紋内の疑わしいビット誤りに、直ちになり得て、該疑わしいビット誤りは、実際の信号の歪みによって生じるものではなく、前記実施化の欠点によって生じるものである。解決策は、ハイパスフィルタを、前記ＦＦＴを実施するより前に入力信号に適用することによって、前記ＤＣピークを除去すること、又は代替的には、興味のある周波数のみを選択するバンドパスフィルタを適用することである。
【００２７】
本発明は、以下のようにまとめることができる。整数演算回路によって演算するデジタル信号プロセッサは、一定の精度を持っている。各処理ステップ（乗算、加算）は、ビット数（語長）を増加させる。例えば、バタフライ構造を有する高速フーリエ変換では、複数の前記処理ステップが実施される必要がある。実用的な実施化においては、前記処理ステップは、所与の語長（例えばＮ）を有する単一の整数演算回路によって、再帰的に実施される。各ステップの後、前記信号の語長は、丸める、打ち切る、又は他の何らかの高性能な形態の量子化によって、前記所与の語長Ｎまで短くされる。量子化エラーを防止する明白な方法は、入力信号をスケールダウンすることである。しかしながら、この結果、量子化エラーが既に入力信号内に持ち込まれる。透かし検出のような処理の場合、これは、入力信号の最後の有効ビットが、透かしが埋め込まれる位置を正確に構成しているので、致命的である。
【００２８】
本発明によれば、信号は、プリプロセッサによって前処理され、これは、語長を短くし、後続処理に関して不変である。「不変である」という表現は、プリプロセッサが、無限大の精度で演算した場合、後続の処理に何の効果も与えないということを意味する。前記のようなプリプロセッサが、有限の精度で演算する場合、これは、量子化ノイズを減少する。ＪＡＷＳ透かし検出処理を参照して上述した前記ハイパスプリフィルタは、該フィルタが、ゼロ位相フィルタであって、検出されるべきである透かしは、フーリエ係数の位相によって運ばれるので、この状態を実現している。
【図面の簡単な説明】
【００２９】
【図１】ＪＡＷＳシステムを使用して透かし検出を実施するために関係する信号処理ステップを説明するブロック図を示している。
【図２】図１に記載のＪＡＷＳ透かし検出システムの演算を説明している図を示している。
【図３】本発明によるプリフィルタを含むＪＡＷＳ透かし検出アーキテクチャのブロック図を示している。
【図４】プリフィルタリングを有さない場合（左）、及び本発明によるプリフィルタリングを有する場合（右）の２次元ＦＦＴの出力の電力スペクトル密度を示している。
【図５】プリフィルタリングを有さない場合、及び本発明によるプリフィルタリングを有する場合の透かし検出の信頼性を説明する図を示している。
【図６】入力のダイナミックレンジを圧縮するプリフィルタと、前記プリフィルタの効果を取り消すポストフィルタとを使用する循環的な相関関係を実施するアルゴリズムを説明するブロック図を示している。
【図１】
2005532001.tif 000005
【図２】
2005532001.tif 000006
【図３】
2005532001.tif 000007
【図４】
2005532001.tif 000008
【図５】
2005532001.tif 000009
【図６】
2005532001.tif 000010