以下、本発明の実施形態について図面を参照して詳細に説明する。
(1.本発明の基本概念)
まず、本発明の基本概念について、特許文献8、9に記載の発明と比較して説明する。本発明、特許文献8、9に記載の発明は、いずれも音響信号から所定数(例えば4096個)のサンプルを1音響フレームとして抽出し、この音響フレームに対して、周波数変換の後、その低周波成分の状態を、埋め込むべき付加情報の値に応じて変更するものである。図1に、従来の手法による低周波成分の状態を1音響フレーム単位で示す。図1に示す各音響フレームにおいて、横軸は時間方向、縦軸は周波数方向を示している。また、網掛けされた部分は、低周波成分が存在している部分を示し、網掛けが濃いほど成分強度が強いことを示している。
特許文献8、9に記載の発明については、図1(a)(e)に示すような原状態の低周波成分に対して、符号0を埋め込む場合、L-ch(左チャンネル)の信号の低周波成分を全て除去し、除去した成分と同等の成分をR-ch(右チャンネル)の信号の低周波成分に加算して図1(b)(f)に示すような状態に変更するのは同じである。
特許文献8に記載の発明では、低周波成分のうちより高い成分とより低い成分の分布により埋め込む符号の区別を行う。したがって、符号1を埋め込む場合、図1(c)に示すように、L-chの信号のより高い低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号のより低い低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。符号2を埋め込む場合は、図1(d)に示すように、L-chの信号のより低い低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号のより高い低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。
特許文献9に記載の発明では、低周波成分のうち時間的に前部(過去)の成分と後部(未来)の成分の分布により埋め込む符号の区別を行う。したがって、符号1を埋め込む場合、図1(g)に示すように、L-chの信号の後部の低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号の前部の低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。符号2を埋め込む場合は、図1(h)に示すように、L-chの信号の前部の低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号の後部の低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。
特許文献8に記載の発明では、図1(b)〜(d)に示すような3つの状態に低周波成分を変更することにより、情報の埋め込みを行い、特許文献9に記載の発明では、図1(f)〜(h)に示すような3つの状態に低周波成分を変更することにより、情報の埋め込みを行っている。3つの状態のうち、1つは、埋め込むべき付加情報を構成するワード間の区切りやエラー処理等に用いるものであるので、実質埋め込むことができるのは2つの状態、すなわち、1ビットに相当する。したがって、特許文献8、9に記載の発明では、1音響フレームに対して1ビットの情報が埋め込み可能となる。
図2に、本発明第1の実施形態による低周波成分の状態を1音響フレーム単位で示す。図2に示す各音響フレームにおいても、横軸は時間方向、縦軸は周波数方向を示している。本発明では、特許文献8、9に記載の発明のそれぞれの特徴を組み合わせ低周波成分のうちより高い成分とより低い成分の分布と、低周波成分のうち時間的に前部の成分と後部の成分の分布を組み合わせて埋め込む符号の区別を行う。
本発明第1の実施形態においても、図2(a)に示すような原状態の低周波成分に対して、符号0を埋め込む場合、L-chの信号の低周波成分を全て除去し、除去した成分と同等の成分をR-chの信号の低周波成分に加算して図2(b)に示すような状態に変更するのは、特許文献8、9に記載の発明と同じである。なお、図2においては、図1と異なり、縦軸の周波数方向が5つに区分されているが、これは、最下部にギャップ領域を設けたためである。このギャップ領域は、抽出対象であるL-chの信号においては、常に成分が除去され、除去された成分と同等の成分がR-chの信号の低周波成分に加算される。最下部にギャップ領域を設けることにより、埋め込み可能な低周波成分の上限を高くすることができる。さらに、5つに区分された低周波成分のうち最上部と上から3番目にもギャップ領域を設けている。上から2番目は上位低周波領域であり、上から4番目は下位低周波領域である。図2(b)に示すように、上位低周波領域の前部におけるスペクトルをSP1U、上位低周波領域の後部におけるスペクトルをSP3U、下位低周波領域の前部におけるスペクトルをSP1D、下位低周波領域の後部におけるスペクトルをSP3Dで表現することとする。また、直流成分すなわち周波数0からスペクトルSP1DおよびSP3Dの下限周波数F1までのギャップ領域をG1DおよびG3D、スペクトルSP1DおよびSP3Dの上限周波数とスペクトルSP1UおよびSP3Uの下限周波数までのギャップ領域をG1MおよびG3M、スペクトルSP1UおよびSP3Uの上限周波数からF2までのギャップ領域をG1UおよびG3Uで表現することとする。
本発明で、符号1を埋め込む場合、図2(c)に示すように、L-chの信号の後部の低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号の前部の低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。符号2を埋め込む場合は、図2(d)に示すように、L-chの信号の前部の低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号の後部の低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。
符号3を埋め込む場合、図2(e)に示すように、L-chの信号の前部のより高い低周波成分と後部のより低い低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号の前部のより低い低周波成分と後部のより高い低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。符号4を埋め込む場合は、図2(f)に示すように、L-chの信号の前部のより低い低周波成分と後部のより高い低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号の前部のより高い低周波成分と後部のより低い低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。
本発明第1の実施形態では、図2(b)〜(f)に示すような5つの状態に低周波成分を変更することにより、情報の埋め込みを行っている。5つの状態のうち、1つは、埋め込むべき付加情報を構成するワード間の区切りやエラー処理等に用いるものであるので、実質埋め込むことができるのは4つの状態、すなわち、2ビットに相当する。したがって、本発明では、1音響フレームに対して2ビットの情報が埋め込み可能となる。
(1.2.音響信号に対する情報の埋め込み装置)
図3は、本発明に係る音響信号に対する情報の埋め込み装置の構成を示す機能ブロック図である。図3において、10は音響フレーム読込手段、20は周波数変換手段、30は低周波成分変更手段、40は周波数逆変換手段、50は改変音響フレーム出力手段、60は記憶手段、61は音響信号記憶部、62は付加情報記憶部、63は改変音響信号記憶部、70は付加情報読込手段である。なお、図3に示す装置は、ステレオ音響信号、モノラル音響信号の両方に対応可能であるが、ここでは、ステレオ音響信号に対して処理を行う場合について説明していく。
音響フレーム読込手段10は、付加情報の埋め込み対象とする元のステレオ音響信号の各チャンネルから所定数のサンプルを1フレームとして読み込む機能を有している。周波数変換手段20は、音響フレーム読込手段10が読み込んだ音響信号のフレームをフーリエ変換等により周波数変換してフレームスペクトルを生成する機能を有している。低周波成分変更手段30は、生成されたフレームスペクトルから2つの所定周波数範囲に相当するスペクトル集合を2セット抽出し、付加情報記憶部62から抽出した付加情報に基づいて、低周波強度データのスペクトル集合間比率を変更する機能を有している。周波数逆変換手段40は、変更された低周波強度データを含む複数のフレームスペクトルに対して周波数逆変換を行うことにより、改変音響フレームを生成する機能を有している。改変音響フレーム出力手段50は、生成された改変音響フレームを順次出力する機能を有している。記憶手段60は、付加情報を埋め込む対象とするステレオ音響信号を記憶した音響信号記憶部61と、ビット配列として構成され、ステレオ音響信号に埋め込まれる付加情報を記憶した付加情報記憶部62と、付加情報埋め込み後の改変音響信号を記憶する改変音響信号記憶部63を有しており、その他処理に必要な各種情報を記憶するものである。付加情報読込手段70は、付加情報記憶部62から付加情報を抽出する機能を有している。なお、付加情報とは、音響情報に付加して埋め込むべき情報であり、タイトルやアーティスト名等の属性情報、および属性情報以外の他の情報を含むものである。図3に示した各構成手段は、現実にはコンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。
(1.3.埋め込み装置の処理動作)
次に、図3に示した音響信号に対する情報の埋め込み装置の第1の実施形態について説明する。ここでは、音響信号として、L(左)、R(右)の2チャンネルを有するステレオ音響信号に対して処理を行う場合について説明していく。音響フレーム読込手段10は、音響信号記憶部61に記憶されたステレオ音響信号の左右の各チャンネルから、それぞれ所定数のサンプルを1音響フレームとして読み込む。音響フレーム読込手段10が読み込む1音響フレームのサンプル数は、適宜設定することができるが、サンプリング周波数が44.1kHzの場合、4096サンプル程度とすることが望ましい。したがって、音響フレーム読込手段10は、左チャンネル、右チャンネルについてそれぞれ4096サンプルずつ、順次音響フレームとして読み込んでいくことになる。
音響フレームとしては、AタイプとBタイプが存在する。Aタイプの音響フレーム、Bタイプの音響フレームは、それぞれ同タイプの先行する音響フレームの最後のサンプルの次のサンプルを先頭サンプルとして設定される。そして、AタイプとBタイプの音響フレームは互いに所定数(本実施形態では2048)のサンプルを重複して設定される。例えば、Aタイプの音響フレームを先頭からA1、A2、A3…とし、Bタイプの音響フレームを先頭からB1、B2、B3…とすると、A1はサンプル1〜4096、A2はサンプル4097〜8192、A3はサンプル8193〜12288、B1はサンプル2049〜6144、B2はサンプル6145〜10240、B3はサンプル10241〜14336となる。なお、AタイプとBタイプは相対的なものであるので、どちらが先であっても良い。すなわち、上記とは逆にA1がサンプル2049〜6144、A2がサンプル6145〜10240、A3がサンプル10241〜14336、B1がサンプル1〜4096、B2がサンプル4097〜8192、B3がサンプル8193〜12288であっても良い。
周波数変換手段20は、音響フレーム読込手段10が読み込んだ音響フレームに対して、周波数変換を行って、その音響フレームのスペクトルであるフレームスペクトルを得る。具体的には、窓関数を利用して周波数変換を行う。周波数変換としては、フーリエ変換、ウェーブレット変換その他公知の種々の手法を用いることができる。本実施形態では、フーリエ変換を用いた場合を例にとって説明する。
一般に、所定の信号に対してフーリエ変換を行う場合、信号を所定の長さに区切って行う必要があるが、この場合、所定長さの信号に対してそのままフーリエ変換を行うと、擬似高調波成分が発生する。そこで、一般にフーリエ変換を行う場合には、ハニング窓と呼ばれる窓関数を用いて、信号の値を変化させた後、変化後の値に対してフーリエ変換を実行する。
本発明では、擬似高調波成分の発生を防止するためだけではなく、特許文献9に記載の発明と同様、一つの音響フレームから、情報を埋め込むための複数の状態を作り出すため、複数の窓関数を用意し、一つの音響フレームに対して、各窓関数を利用してフーリエ変換を行い、複数のスペクトルを得る。複数の窓関数として、特許文献9に示すものと同一のものを用いても本発明による効果は得られるが、より良い効果を得るため、本発明では、図4(b)〜(d)に示したような第1窓関数W(1,i)、第2窓関数W(2,i)、第3窓関数W(3,i)を用意し、抽出側で認識し易いようにした。第1窓関数W(1,i)は、音響フレームの前部を抽出するためのものであり、図4(b)に示すように前部の所定のサンプル番号iの位置において、最大値1をとり、後部においては、最小値0をとるように設定されている。どのサンプル番号の場合に最大値をとるかについては、窓関数W(1,i)の設計によって異なってくるが、本実施形態では、後述する〔数式1〕で定義される。窓関数W(1,i)を乗じることにより、図4(a)に示すような音響フレームの信号波形は、図4(f)に示すように、前部に信号成分が残り、後部の信号成分が削除されたものとなり、これがフーリエ変換対象となる。
また、第2窓関数W(2,i)は、音響フレームの中央部を抽出するためのものであり、図4(c)に示すように、中央部の所定のサンプル番号iの位置において、最大値1をとり、前部、後部においては、最小値0をとるように設定されている。どのサンプル番号の場合に最大値をとるかについては、窓関数W(2,i)の設計によって異なってくるが、本実施形態では、後述する〔数式2〕で定義される。窓関数W(2,i)を乗じることにより、図4(a)に示すような音響フレームの信号波形は、図4(g)に示すように、中央部に信号成分が残り、前部と後部の信号成分が除去されたものとなり、これがフーリエ変換対象となる。
また、第3窓関数W(3,i)は、音響フレームの後部を抽出するためのものであり、図4(d)に示すように、前部においては最小値0をとり、後部の所定のサンプル番号iの位置において、最大値1をとるように設定されている。どのサンプル番号の場合に最大値をとるかについては、窓関数W(3,i)の設計によって異なってくるが、本実施形態では、後述する〔数式3〕で定義される。窓関数W(3,i)を乗じることにより、図4(a)に示すような音響フレームの信号波形は、図4(h)に示すように、前部の信号成分が除去され、後部に信号成分が残ったものとなり、これがフーリエ変換対象となる。このように前部、中央部、後部を抽出した後、フーリエ変換を実行するため、前部、中央部、後部に対応したスペクトルが得られることになる。1つの音響フレームにビット値を埋め込むためには、本来、前部と後部の2つに分けられれば良いのであるが、抽出側においては、必ずしも、信号を同期して読み込むことができるとは限らず、したがって、前部と後部をはっきりと区別するため、本発明では、埋め込み時に中央部の信号成分を常に削除し、前部と後部を時間的に分離することとしている(ただし、抽出時は前部と後部だけを解析すればよく、中央部は無視してよい)。本発明において用いる窓関数は、窓関数W(1,i)と窓関数W(3,i)が左右非対称であるため、抽出時において、埋め込まれていた情報の誤認識が起こりにくくなる。
また、本発明では、音響フレームを重複させて読み込み、奇数フレーム(または偶数フレーム)については、窓関数W(1,i)、W(2,i)、W(3,i)を用い、偶数フレーム(または奇数フレーム)については、図4(e)に示したような窓関数W(4,i)を用いるようにした。
なお、本発明においては、音響フレームは重複して読み込まれる。すなわち、奇数番目の音響フレームと偶数番目の音響フレームは、所定数のサンプルを重複して読み込む。上記のように、奇数フレームと偶数フレームでは、用いられる窓関数が異なるが、奇数フレームと偶数フレームは単に奇数か偶数かの違いだけであるため、どちらに対して処理をどちらの処理を行っても良い。したがって、本明細書では、奇数フレーム、偶数フレームの一方をAタイプフレーム、他方をBタイプフレームと呼ぶことにする。本実施形態では、奇数フレームをAタイプフレーム、偶数フレームをBタイプフレームとして説明するが、逆に偶数フレームをAタイプフレーム、奇数フレームをBタイプフレームとしても良い。
本実施形態では、窓関数W(1,i)〜W(4,i)は、以下の〔数式1〕〜〔数式4〕で定義される。なお、図4において、横軸は時間軸(i)である。iは、後述するように、各音響フレーム内のN個のサンプルに付した通し番号であるため時刻tに比例している。また、図4(a)(f)(g)(h)(i)において縦軸は信号の振幅値(レベル)を示す。図4(b)〜(e)において縦軸は窓関数W(1,i)、W(2,i)、W(3,i)、W(4,i)の値を示しており、W(1,i)、W(2,i)、W(3,i)、W(4,i)の最大値はいずれも1である。
〔数式1〕
i≦3N/8のとき、W(1,i)=0.5−0.5cos(8πi/(3N))
3N/8<i≦N/2のとき、W(1,i)=0.5−0.5cos(8π(i−N/4)/N)
i>N/2のとき、W(1,i)=0.0
〔数式2〕
i≦3N/8のとき、W(2,i)=0.0
3N/8<i≦N/2のとき、W(2,i)=0.5−0.5cos(8π(i−3N/8)/N)
N/2<i≦3N/4のとき、W(2,i)=0.5−0.5cos(4π(i−N/4)/N)
i>3N/4のとき、W(2,i)=0.0
〔数式3〕
i≦N/2のとき、W(3,i)=0.0
i>N/2のとき、W(3,i)=0.5−0.5cos(4π(i−N/2)/N)
〔数式4〕
i≦N/4のとき、W(4,i)=0.0
N/4<i≦N/2のとき、W(4,i)=0.5−0.5cos(4π(i−N/4)/N)
N/2<i≦7N/8のとき、W(4,i)=0.5−0.5cos(8π(i−N/8)/(3N))
i>7N/8のとき、W(4,i)=0.0
なお、図4および上記〔数式1〕〜〔数式4〕から明らかなように、窓関数W(1,i)とW(3,i)は、互いに非対称な形状である。これは、後述する抽出側において、両者の識別を容易にするためである。また、窓関数W(1,i)、W(2,i)、W(3,i)は、iが所定の値のときに最大値1をとり、iがその他の値をとる場合には、iの値に応じて単調増加、または単調減少する窓関数を分割したものであるため、窓関数W(1,i)とW(3,i)が定まると、窓関数W(2,i)も必然的に定まる。このため、窓関数W(2,i)は左右非対称の形状となっている。
本発明においては、奇数フレームと偶数フレームを、所定サンプルずつ重複して読み込むため、情報の埋め込みを行った後、音響信号に復元する際に、窓関数を乗じた奇数フレームと、窓関数を乗じた偶数フレームの重複サンプルを加算した場合に、ほぼ元の値に戻るようにしなければならない。このため、窓関数W(4,i)の形状は、窓関数W(1,i)、W(2,i)、W(3,i)の値に応じて必然的に定まる。すなわち、奇数フレームと偶数フレームの重複部分において、窓関数W(1,i)、W(2,i)、W(3,i)、W(4,i)を加算すると、全区間固定値1になるように定義されている。
周波数変換手段20が、Aタイプの音響フレームに対してフーリエ変換を行う場合は、左チャンネル信号Xl(i)、右チャンネル信号Xr(i)(i=0,…,N−1)に対して、3つの窓関数W(1,i)、W(2,i)、W(3,i)を用いて、以下の〔数式5〕に従った処理を行い、左チャンネルに対応する変換データの実部Al(1,j)、Al(2,j)、Al(3,j)、虚部Bl(1,j)、Bl(2,j)、Bl(3,j)、右チャンネルに対応する変換データの実部Ar(1,j)、Ar(2,j)、Ar(3,j)、虚部Br(1,j)、Br(2,j)、Br(3,j)を得る。なお、窓関数W(1,i)、W(2,i)、W(3,i)は、それぞれ音響フレームの前部(先頭)付近、中央付近、後部付近において値が大きくなる関数となっている。
〔数式5〕
Al(1,j)=Σi=0,…,N-1W(1,i)・Xl(i)・cos(2πij/N)
Bl(1,j)=Σi=0,…,N-1W(1,i)・Xl(i)・sin(2πij/N)
Al(2,j)=Σi=0,…,N-1W(2,i)・Xl(i)・cos(2πij/N)
Bl(2,j)=Σi=0,…,N-1W(2,i)・Xl(i)・sin(2πij/N)
Al(3,j)=Σi=0,…,N-1W(3,i)・Xl(i)・cos(2πij/N)
Bl(3,j)=Σi=0,…,N-1W(3,i)・Xl(i)・sin(2πij/N)
Ar(1,j)=Σi=0,…,N-1W(1,i)・Xr(i)・cos(2πij/N)
Br(1,j)=Σi=0,…,N-1W(1,i)・Xr(i)・sin(2πij/N)
Ar(2,j)=Σi=0,…,N-1W(2,i)・Xr(i)・cos(2πij/N)
Br(2,j)=Σi=0,…,N-1W(2,i)・Xr(i)・sin(2πij/N)
Ar(3,j)=Σi=0,…,N-1W(3,i)・Xr(i)・cos(2πij/N)
Br(3,j)=Σi=0,…,N-1W(3,i)・Xr(i)・sin(2πij/N)
周波数変換手段20が、Bタイプの音響フレームに対してフーリエ変換を行う場合は、左チャンネル信号Xl(i)、右チャンネル信号Xr(i)(i=0,…,N−1)に対して、窓関数W(4,i)を用いて、以下の〔数式6〕に従った処理を行い、左チャンネルに対応する変換データの実部Al(4,j)、虚部Bl(4,j)、右チャンネルに対応する変換データの実部Ar(4,j)、虚部Br(4,j)を得る。
〔数式6〕
Al(4,j)=Σi=0,…,N-1W(4,i)・Xl(i)・cos(2πij/N)
Bl(4,j)=Σi=0,…,N-1W(4,i)・Xl(i)・sin(2πij/N)
Ar(4,j)=Σi=0,…,N-1W(4,i)・Xr(i)・cos(2πij/N)
Br(4,j)=Σi=0,…,N-1W(4,i)・Xr(i)・sin(2πij/N)
上記〔数式5〕〔数式6〕において、iは、各音響フレーム内のN個のサンプルに付した通し番号であり、i=0,1,2,…N−1の整数値をとる。また、jは周波数の値について、値の小さなものから順に付した通し番号であり、iと同様にj=0,1,2,…N/2−1の整数値をとる。サンプリング周波数が44.1kHz、N=4096の場合、jの値が1つ異なると、周波数が10.8Hz異なることになる。
上記〔数式5〕〔数式6〕に従った処理を実行することにより、各音響フレームの信号成分を周波数に対応した成分であるスペクトルで表現されたフレームスペクトルが得られる。続いて、低周波成分変更手段30が、生成されたフレームスペクトルから3つの所定周波数範囲のスペクトル集合を抽出する。人間の聴覚は、200〜300Hz程度までの低周波成分については、方向性を感知しにくくなっていることが知られている(コロナ社1990年10月30日発行「音響工学講座1.基礎音響工学、日本音響学会編」p247図9・26参照)。したがって、特許文献7〜9に記載の発明においては、低周波成分を200〜300Hz程度以下としていた。しかし、本出願人による研究の結果、最低周波数帯における成分を削除した場合は、400Hz付近においても方向性を感知しにくくなることがわかった。そこで、本実施形態では、0〜150Hz付近の最低周波数帯の成分を除去し、150〜400Hz程度の低周波数帯に情報を埋め込むことにしている。さらに、本実施形態では、埋め込み対象とする低周波数帯を比較的高い低周波数帯と比較的低い低周波数帯に分けて、それぞれに対して加工を行うようにしている。
ここで、本発明の処理による周波数成分全体の状況を図5に示す。図5において、上下方向は周波数方向であり、j=2047は22.05kHzに対応している。図5(a)は特許文献9に示した従来方式、図5(b)は本発明による方式を示す。図5(b)は、最低周波数帯をj=0〜14(0〜約150Hz)、埋め込み対象とする低周波数帯のうち比較的高い低周波数帯をj=27〜35(約290〜380Hz)、埋め込み対象とする低周波数帯のうち比較的低い低周波数帯をj=15〜23(約160〜250Hz)とした場合を示している。また、網掛けの濃さは、信号成分の強度を概念的に示したものである。従来方式も本発明もj=40(従来はj=30)以上の高周波成分に対しては、変更を加えず、原音を維持する点については同じである。また、原音部との境を明確にするために、数成分(本実施形態では、j=36〜39の4成分)を左(L)信号から右(R)信号に移動させているのも、従来方式と同じである。
本発明が従来方式と異なるのは、従来方式がj=0を原音維持とし、j=1〜29の成分を原則左(L)信号から右(R)信号に移動させ、j=1〜26の成分に対しては付加情報に応じて選択的に右(R)信号から左(L)信号に移動させることにより、j=1〜26を埋め込み領域としているのに対して、本発明ではj=0〜39の成分を原則左(L)信号から右(R)信号に移動させ、j=15〜23、27〜35の成分に対しては付加情報に応じて選択的に右(R)信号から左(L)信号に移動させることにより、j=15〜35を埋め込み領域としている点である。なお、図5中のj=15〜23、27〜35の領域については、埋め込まれる情報により、LRのどちらかに成分が移動されることを示している。
低周波成分変更手段30は、Aタイプの音響フレームについて、付加情報読込手段70が読み込んだビット値に応じて、低周波成分の割合を変更する処理を行う。本発明では、付加情報を2ビットずつ読み込み、1音響フレームに対して2ビットの情報を埋め込む。埋め込まれる2ビットの値は、“00”“01”“10”“11”の4通りがある。本実施形態では、これらを値1〜値4と定義する。そして、低周波成分変更手段30は、読み込んだ値1〜値4に応じて、低周波成分を状態1〜状態4のいずれかに変更する。具体的には、まず、低周波成分変更手段30は、上記〔数式5〕により求めた左チャンネルの実部Al(1,j)、Al(3,j)、虚部Bl(1,j)、Bl(3,j)、右チャンネルの実部Ar(1,j)、Ar(3,j)、虚部Br(1,j)、Br(3,j)を利用して、以下の〔数式7〕により、合算値E1〜E4を算出する。
〔数式7〕
E1=Σj=m,m+P-4{Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}+Σj=m+p,m+2P-4{Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}
E2=Σj=m,m+P-4{Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}+Σj=m+p,m+2P-4{Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}
E3=Σj=m,m+P-4{Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}+Σj=m+p,m+2P-4{Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}
E4=Σj=m,m+P-4{Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}+Σj=m+p,m+2P-4{Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}
上記〔数式7〕において、mは低周波数帯の下限の成分の番号、Mは低周波数帯の上限の成分の番号であり、P=(M−m)/2である。なお、Pが整数にならない場合、切捨て処理を行う。m=15、M=40と設定すると、P=12となり、図5に例示したスケールと同じになる。上記〔数式7〕により算出されたE1〜E4は音響フレームの所定の範囲におけるスペクトル集合の成分強度の合算値を示すことになる。続いて、この合算値E1〜E4がレベル下限値Lev以上であるかどうかの判定を行う。レベル下限値Levは、音響信号Xl(i)、Xr(i)の振幅最大値が1に正規化されており、M=40に設定されている場合、0.5に設定する。このLev=0.5という値は、経験的にアナログ変換への耐性が維持できるレベルであり、低周波成分が少ない場合は適宜下げることになるが、その場合は、アナログ変換により検出精度も低下することになる。
合算値E1〜E4がレベル下限値Lev以上であるかどうかを判断するのは、信号の強度が小さいと、信号を変化させても、その変化を抽出側で検出することができないためである。すなわち、各低周波スペクトル成分を十分な大きさとすることができるかどうかを判断することになる。
E1がレベル下限値Levより大きく、埋め込むべき2ビットが“値1”である場合、以下の〔数式8〕に従った処理を実行することにより、低周波成分の状態を“状態1”、すなわち、図2(c)に示したような状態に変更する。
〔数式8〕
j=m〜m+P−4、m+P〜m+2P−4の各成分に対して
Al´(3,j)=0
Bl´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Ar´(1,j)=0
Br´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Al´(1,j)=Al(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
上記〔数式8〕においては、j=m〜m+P−4、m+P〜m+2P−4において、Al´(3,j)、Bl´(3,j)を共に0としている。これは、図2(c)の上段に示すように、L-chにおいて、SP3U、SP3D内の各成分を0にすることを示しているが、“状態1”はSP1U、SP1Dとの差を明確にすることができれば十分であるため、必ずしも0にする必要はなく、小さな値であれば良い。E2がレベル下限値Levより大きく、埋め込むべき2ビットが“値2”である場合は、以下の〔数式9〕に従った処理を実行することにより、低周波成分の状態を“状態2” 、すなわち、図2(d)に示したような状態に変更する。
〔数式9〕
j=m〜m+P−4、m+P〜m+2P−4の各成分に対して
Al´(1,j)=0
Bl´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Ar´(3,j)=0
Br´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Al´(3,j)=Al(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
上記〔数式9〕においては、j=m〜m+P−4、m+P〜m+2P−4において、Al´(1,j)、Bl´(1,j)を共に0としている。これは、図2(d)の上段に示すように、L-chにおいて、SP1U、SP1D内の各成分を0にすることを示しているが、“状態2”はSP3U、SP3Dとの差を明確にすることができれば十分であるため、必ずしも0にする必要はなく、小さな値であれば良い。E3がレベル下限値Levより大きく、埋め込むべき2ビットが“値3”である場合、以下の〔数式10〕に従った処理を実行することにより、低周波成分の状態を“状態3” 、すなわち、図2(e)に示したような状態に変更する。
〔数式10〕
j=m〜m+P−4の各成分に対して
Al´(3,j)=0
Bl´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
j=m+P〜m+2P−4の各成分に対して
Al´(1,j)=0
Bl´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
j=m〜m+P−4の各成分に対して
Ar´(1,j)=0
Br´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Al´(1,j)=Al(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
j=m+P〜m+2P−4の各成分に対して
Ar´(3,j)=0
Br´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Al´(3,j)=Al(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
上記〔数式10〕においては、j=m〜m+P−4においてAl´(3,j)、Bl´(3,j)を共に0とし、j=m+P〜m+2P−4においてAl´(1,j)、Bl´(1,j)を共に0としている。これは、図2(e)の上段に示すように、L-chにおいて、SP3D、SP1U内の各成分を0にすることを示しているが、“状態3”はSP3U、SP1Dとの差を明確にすることができれば十分であるため、必ずしも0にする必要はなく、小さな値であれば良い。E4がレベル下限値Levより大きく、埋め込むべき2ビットが“値4”である場合、以下の〔数式11〕に従った処理を実行することにより、低周波成分の状態を“状態4” 、すなわち、図2(f)に示したような状態に変更する。
〔数式11〕
j=m〜m+P−4の各成分に対して
Al´(1,j)=0
Bl´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
j=m+P〜m+2P−4の各成分に対して
Al´(3,j)=0
Bl´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
j=m〜m+P−4の各成分に対して
Ar´(3,j)=0
Br´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Al´(3,j)=Al(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
j=m+P〜m+2P−4の各成分に対して
Ar´(1,j)=0
Br´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Al´(1,j)=Al(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
上記〔数式11〕においては、j=m〜m+P−4においてAl´(1,j)、Bl´(1,j)を共に0とし、j=m+P〜m+2P−4においてAl´(3,j)、Bl´(3,j)を共に0としている。これは、図2(f)の上段に示すように、L-chにおいて、SP1D、SP3U内の各成分を0にすることを示しているが、“状態4”はSP3D、SP1Uとの差を明確にすることができれば十分であるため、必ずしも0にする必要はなく、小さな値であれば良い。上記〔数式8〕〜〔数式11〕に従った処理を実行し、低周波成分の状態を“状態1”〜“状態4”に変更した場合、いずれの場合であっても、さらに以下の〔数式12〕に従った処理を実行し、最低周波数帯におけるギャップ領域G1D、G3D、上位低周波数帯と下位低周波数帯の間にギャップ領域G1M、G3M、上位低周波数帯の高周波側にギャップ領域G1U、G3Uを設ける。
〔数式12〕
j=0〜m−1、m+P−3〜m+P−1、m+2P−3〜M−1の各成分に対して
Al´(1,j)=0
Bl´(1,j)=0
Al´(3,j)=0
Bl´(3,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
j=0〜M−1の各成分に対して
Al´(2,j)=0
Bl´(2,j)=0
E(2,j)={Al(2,j)2+Bl(2,j)2+Ar(2,j)2+Br(2,j)2}1/2
Ar´(2,j)=Ar(2,j)・E(2,j)/{Ar(2,j)2+Br(2,j)2}1/2
Br´(2,j)=Br(2,j)・E(2,j)/{Ar(2,j)2+Br(2,j)2}1/2
付加情報は、ビット値であるため、どこから開始してどこで終了するのかを示す区切りを表現することが必要となる。また、埋め込まれる側の低周波成分の強度が小さすぎると、信号を変化させても、その変化を抽出側で検出することができない。そこで、このような場合には、情報が埋め込まれている音響フレームとの違いを明確にするため、以下の〔数式13〕に従った処理を実行し、その低周波成分を除去する。この状態を“状態0”と呼ぶことにする。これは、図2(b)に示すような状態である。
〔数式13〕
j=0〜M−1の各成分に対して
Al´(1,j)=0
Bl´(1,j)=0
Al´(2,j)=0
Bl´(2,j)=0
Al´(3,j)=0
Bl´(3,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
E(2,j)={Al(2,j)2+Bl(2,j)2+Ar(2,j)2+Br(2,j)2}1/2
Ar´(2,j)=Ar(2,j)・E(2,j)/{Ar(2,j)2+Br(2,j)2}1/2
Br´(2,j)=Br(2,j)・E(2,j)/{Ar(2,j)2+Br(2,j)2}1/2
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
上記のように、Aタイプの音響フレームに対しては、埋め込むべきビット値に応じて、低周波成分の変更を行う必要があるため、低周波成分変更手段30は、上記〔数式8〕〜〔数式13〕に従った処理を実行する。ところが、Bタイプの音響フレームは、Aタイプの音響フレームのみの場合に生じる両端部分の不連続性を防止するために用いられるものであるので、ビット値に応じて低周波成分の変更を行う必要はない。そこで、低周波成分変更手段30は、Bタイプの音響フレームについては、以下の〔数式14〕に従った処理を実行し、常に左信号の低周波成分を除去する。
〔数式14〕
j=0〜M−1の各成分に対して
Al´(4,j)=0
Bl´(4,j)=0
E(4,j)={Al(4,j)2+Bl(4,j)2+Ar(4,j)2+Br(4,j)2}1/2
Ar´(4,j)=Ar(4,j)・E(4,j)/{Ar(4,j)2+Br(4,j)2}1/2
Br´(4,j)=Br(4,j)・E(4,j)/{Ar(4,j)2+Br(4,j)2}1/2
周波数逆変換手段40は、上記のようにして、低周波成分の状態が変更されたフレームスペクトルを周波数逆変換して改変音響フレームを得る処理を行う。この周波数逆変換は、当然のことながら、周波数変換手段20が実行した手法に対応していることが必要となる。本実施形態では、周波数変換手段20において、フーリエ変換を施しているため、周波数逆変換手段40は、フーリエ逆変換を実行することになる。
具体的には、Aタイプの音響フレームに対しては、周波数逆変換手段40は、上記〔数式8〕〜〔数式13〕のいずれかにより得られたスペクトルの左チャンネルの実部Al´(1,j)等、虚部Bl´(1,j)等、右チャンネルの実部Ar´(1,j)等、虚部Br´(1,j)等を用いて、以下の〔数式15〕に従った処理を行い、Xl´(i)、Xr´(i)を算出する。なお、上記〔数式8〕〜〔数式13〕において改変されていない周波数成分については、Al´(1,j)等として、元の周波数成分であるAl(1,j)等を用いる。
〔数式15〕
Xl´(i)=1/N・{ΣjAl´(1,j)・cos(2πij/N)−ΣjBl´(1,j)・sin(2πij/N)}+1/N・{ΣjAl´(2,j)・cos(2πij/N)−ΣjBl´(2,j)・sin(2πij/N)}+1/N・{ΣjAl´(3,j)・cos(2πij/N)−ΣjBl´(3,j)・sin(2πij/N)}+Xlp(i+N/2)
Xr´(i)=1/N・{ΣjAr´(1,j)・cos(2πij/N)−ΣjBr´(1,j)・sin(2πij/N)}+1/N・{ΣjAr´(2,j)・cos(2πij/N)−ΣjBr´(2,j)・sin(2πij/N)}+1/N・{ΣjAr´(3,j)・cos(2πij/N)−ΣjBr´(3,j)・sin(2πij/N)}+Xrp(i+N/2)
上記〔数式15〕においては、式が繁雑になるのを防ぐため、Σj=0,…,N-1をΣjとして示している。上記〔数式15〕における第1式の“+Xlp(i+N/2)”、第2式の“+Xrp(i+N/2)”の項は、直前に改変された改変音響フレームのデータXlp(i)、Xrp(i)が存在する場合に、時間軸上N/2サンプル分重複することを考慮して加算するためのものである。上記〔数式15〕によりAタイプの改変音響フレームの左チャンネルの各サンプルXl´(i)、右チャンネルの各サンプルXr´(i)、が得られることになる。
Bタイプの音響フレームに対しては、周波数逆変換手段40は、上記〔数式14〕により得られたスペクトルの左チャンネルの実部Al´(4,j)、虚部Bl´(4,j)、右チャンネルの実部Ar´(4,j)、虚部Br´(4,j)を用いて、以下の〔数式16〕に従った処理を行い、Xl´(i)、Xr´(i)を算出する。なお、上記〔数式14〕において改変されていない周波数成分については、以下の〔数式16〕においてはAl´(4,j)、Bl´(4,j)、Ar´(4,j)、Br´(4,j)として、元の値であるAl(4,j)、Bl(4,j)、Ar(4,j)、Br(4,j)を用いる。
〔数式16〕
Xl´(i)=1/N・{ΣjAl´(4,j)・cos(2πij/N)−ΣjBl´(4,j)・sin(2πij/N)}+Xlp(i+N/2)
Xr´(i)=1/N・{ΣjAr´(4,j)・cos(2πij/N)−ΣjBr´(4,j)・sin(2πij/N)}+Xrp(i+N/2)
上記〔数式16〕によりBタイプの改変音響フレームの左チャンネルの各サンプルXl´(i)、右チャンネルの各サンプルXr´(i)、が得られることになる。
改変音響フレーム出力手段50は、周波数逆変換手段40の処理により得られたAタイプの改変音響フレーム、Bタイプの改変音響フレームを順次出力ファイルに出力する。
次に、図3に示した音響信号に対する情報の埋め込み装置の処理の全体的な流れを、図6のフローチャートに従って説明する。図3に示した装置を構成する各構成要素は、連携して図6に従った処理を実行する。図6は、付加情報1ワード分の処理に対応したものとなっている。1ワードとしては、任意のビット数に設定することができるが、通常1バイト(8ビット)に設定する。
また、情報の埋め込みは、Aタイプの音響フレームに対して行われるので、図6は、Aタイプの音響フレームについての説明となっている。Bタイプの音響フレームについては、Aタイプの音響フレームと並行して、音響フレーム読込手段10により読み込まれ、窓関数W(4,i)を利用して周波数変換手段20により周波数変換された後、低周波成分変更手段30により低周波成分が除去され、周波数逆変換手段40により周波数逆変換された後、改変音響フレーム出力手段50により出力される。
図6においては、まず、付加情報読込手段70は、付加情報記憶部62から付加情報を1ワード単位で読み込む(S101)。具体的には、音響信号に対する情報の埋め込み装置として用いられるコンピュータ内のレジスタに1ワード読み込むことになる。
続いて、モードを区切りモードに設定する(S102)。モードは区切りモードと、ビットモードの2種類が存在する。区切りモードは1ワード単位の区切りにおける処理を行うモードを示し、ビットモードは1ワードに含まれる2ビットの値に基づいた処理を行うモードを示している。付加情報記憶部62から1ワード読み込んだ場合には、その直後に必ず区切りモードに設定されることになる。
続いて、音響フレーム読込手段10が、音響信号記憶部61に記憶されたステレオ音響信号の左右の各チャンネルから、それぞれ所定数のサンプルを1音響フレームとして読み込む(S104)。
モードが区切りモードである場合、左(L)チャンネル信号において、低周波成分を“状態0”とする処理を行う(S106)。具体的には、周波数変換手段20が、読み込んだ音響フレームに対して周波数変換を行って、その音響フレームのスペクトルであるフレームスペクトルを得た後、低周波成分変更手段30が、上記〔数式13〕に従った処理を実行することになる。
モードがビットモードである場合は、周波数変換手段20および低周波成分変更手段30が、音響フレームの低周波成分の状態を“状態1”〜“状態4”のいずれかに変更する処理を行う(S105)。具体的には、まず、周波数変換手段20が、読み込んだ音響フレームに対して、周波数変換を行って、その音響フレームのスペクトルであるフレームスペクトルを得る。すなわち、各音響フレームについて、3つの窓関数W(1,i)、W(2,i)、W(3,i)を用いて、上記〔数式5〕に従った処理を行うことになる。
続いて、低周波成分変更手段30が、上記〔数式7〕によりE1〜E4を算出する。そして、付加情報読込手段70から受け取った値1〜値4に応じて上記〔数式8〕〜〔数式11〕に従った処理を実行し、低周波成分の状態を“状態1”〜“状態4”のいずれかに変更する。
S105において、“状態1”〜“状態4”のいずれにも変更することができない場合は、低周波成分を“状態0”とする処理を行う(S106)。具体的には、上記〔数式13〕に従った処理を実行することになる。“状態1”〜“状態4” のいずれにも変更することができない場合とは、埋め込むべき値に対応する合算値のいずれかが、レベル下限値Lev以下となっている場合である。例えば、値1を埋め込む場合、E1がレベル下限値Levより大きい必要があるため、E1がLev以下である場合は、S106に進むことになる。
上記〔数式13〕に従った処理を実行することにより、左チャンネルのフレームスペクトルの低周波数成分は、上位低周波領域前部のスペクトルSP1U、上位低周波領域後部のスペクトルSP3U、下位低周波領域前部のスペクトルSP1D、下位低周波領域後部のスペクトルSP3D全てにおいて、“0” で同一となる。この“状態0”のパターンは、付加情報の先頭位置(区切り)を示す情報か、または前述の合算値E1〜E4が下限値Lev以下であることにより、当該フレームに2ビットの値の記録が行なわれなかったことを示す情報となる。なお、上記〔数式13〕においては、j=0〜M−1の各成分に対してAl´(j)=Bl´(j)=0としているが、抽出側において、“状態1”〜“状態4”のいずれでもないことを認識可能とすることを目的としているため、十分小さな値であれば、必ずしも0とする必要はない。また、必ずしも4つのスペクトル成分の値が同一である必要はなく、差が小さければ良い。
次に、周波数逆変換手段40が、上記S105、S106の処理により各低周波成分のスペクトル集合間の割合が変更されたフレームスペクトルを周波数逆変換して改変音響フレームを得る処理を行う(S107)。この周波数逆変換は、当然のことながら、周波数変換手段20がS105において実行した手法に対応していることが必要となる。本実施形態では、周波数変換手段20において、フーリエ逆変換を施しているため、周波数逆変換手段40は、フーリエ逆変換を実行することになる。具体的には、上記〔数式8〕〜〔数式13〕のいずれかにより得られたスペクトルの左チャンネルの実部Al´(1,j)等、虚部Bl´(1,j)等、右チャンネルの実部Ar´(1,j)等、虚部Br´(1,j)等を用いて、上記〔数式15〕に従った処理を行い、Xl´(i)、Xr´(i)を算出する。
改変音響フレーム出力手段50は、得られた改変音響フレームを順次出力ファイルに出力する。こうして1つの音響フレームに対する処理を終えたら、モードの判定を行い(S108)、モードが区切りモードである場合は、モードをビットモードに設定した後(S109)、音響フレーム読込手段10が、音響フレームを読み込む(S104)。一方、モードがビットモードである場合は、低周波成分変更手段30が付加情報のビット配列中の次の2ビットを読み込む(S103)。以上のような処理を音響信号の両チャンネルの全サンプルに渡って実行していく。すなわち、所定数のサンプルを音響フレームとして読み込み、音響信号から読み込むべき音響フレームがなくなったら(S104)、処理を終了する。なお、S101において読み込んだ1ワードのデータの各ビットに対応する処理を終えた場合、S103からS101に戻り、付加情報の次のワードを読み込み処理をすることになる。付加情報の全ワードに対して処理が終了した場合は、付加情報の先頭ワードに戻って処理を行う。この結果、全ての音響フレームに対して処理を行った全ての改変音響フレームが出力ファイルに記録されて、改変音響信号として得られる。得られた改変音響信号は、記憶手段60内の改変音響信号記憶部63に出力され、記憶される。
以上の処理による左チャンネル信号の変化の様子について、1音響フレームに1ビットを埋め込む従来の手法と比較して説明する。図7に、従来の手法によるビット埋め込みの手順を示す。図7において、図面左右方向は、時間軸方向である。また、図中多数存在する矩形は、改変音響フレームの第1成分、第2成分の存在(削除されていないこと)を示している。図7の例では、固定長8ビットの連続する4ワードの付加情報を埋め込む場合を示している。図7に示すように、最初に区切りを示す情報が埋め込まれた後は、ビット値を示す情報が埋め込まれる。低周波成分が小さいために埋め込みができないフレームが存在しない場合には、連続して1ワード分の8ビットが埋め込まれ、その後、再び、区切りを示す情報が埋め込まれ、続いて、ビット値を示す情報が埋め込まれる。低周波成分が小さいために埋め込みができないフレームが存在した場合には、図7に示す3ワード目のように、2ビット目の後、区切りを示す情報が埋め込まれ、その後、3ビット目から埋め込まれる。
これに対して、本発明では、1音響フレームに2ビットを埋め込むため、より多くの情報を埋め込むことができる。図8に、本発明によるビット埋め込みの手順を示す。図8において、第1成分と第2成分を結ぶ破線は、音響フレーム長を示しており、矩形は、改変音響フレームの第1成分、第2成分の存在を示している。図8の例でも、固定長8ビットの連続する4ワードの付加情報を埋め込む場合を示している。図8に示すように、最初に区切りを示す情報が埋め込まれた後は、2ビットの値を示す情報が埋め込まれる。低周波成分が小さいために埋め込みができないフレームが存在しない場合には、連続して1ワード分の8ビットが埋め込まれ、その後、再び、区切りを示す情報が埋め込まれ、続いて、2ビットの値を示す情報が埋め込まれる。低周波成分が小さいために埋め込みができないフレームが存在した場合には、図8に示す4ワード目のように、2ビット目の後、区切りを示す情報が埋め込まれるが、その後、3ビット目から埋め込まれる。なお、本実施形態で、低周波成分が小さいために埋め込みができないフレームが存在した場合とは、上記〔数式7〕により算出された合算値E1〜E4のうち埋め込むべき値に対応するものが、レベル下限値Lev以下となる音響フレームが存在する場合を示している。
図7、図8は、従来手法と、本発明における処理の一例であるが、図7に示すように、従来の手法では、36個の音響フレームを利用して30ビットしか埋め込むことができないのに対し、本発明の手法では、33個の音響フレームを利用して46ビット埋め込むことができ、埋め込み効率が高まる。
なお、本実施形態では、付加情報の1ワードを1バイトとした場合について説明したが、抽出側と取り決めがある限り、付加情報の1ワードを任意のビット数単位で記録することが可能である。
上記のようにして得られた改変音響信号の左チャンネルのうち、付加情報が埋め込まれている部分については、低周波成分は、上記状態0〜状態4の5通りの分布しかないことになる。しかし、高周波成分については、元の音響信号のままであるので、制作者の設定に基づいた種々な分布になる。また、上記の例で示したように、ステレオ音響信号を利用した場合には、左チャンネルにおいて変化させられた低周波成分は、上記〔数式8〕〜〔数式14〕の処理からも明らかなように、必ず右チャンネルの低周波成分に付加されている。したがって、右チャンネルが左チャンネルにおいて削除された成分を補っているため、両チャンネル全体として見ると、信号の劣化がない。人間の聴覚は、高周波成分については、方向性を感知し易いが、低周波成分については、方向性を感知しにくくなっている。したがって、低周波成分が一方に偏っていても、聴いている人にとっては、通常の音響信号と変わりなく聴こえることになる。
(1.4.音響信号からの情報の抽出装置)
次に、本発明に係る音響信号からの情報の抽出装置について説明する。図9は、本発明に係る音響信号からの情報の抽出装置の一実施形態を示す構成図である。図9において、100は音響信号入力手段、110は基準フレーム獲得手段、120は位相変更フレーム設定手段、130は周波数変換手段、140は符号判定パラメータ算出手段、150は符号出力手段、160は付加情報抽出手段、170は音響フレーム保持手段である。
音響信号入力手段100は、流れている音声をデジタル音響信号として取得し、入力する機能を有している。現実には、マイクロフォンおよびA/D変換器により実現される。マイクロフォンとしては、低周波成分が検出可能なものであれば、モノラル無指向性のものであっても、ステレオ指向性のものであっても使用可能である。ステレオ指向性のものであっても一方のチャンネルだけ利用すれば良い。また、図3に示した装置で情報の埋め込みを行った場合には、特別精度の高いものでなく、一般的な精度のマイクロフォンを用いても情報の抽出が可能となる。基準フレーム獲得手段110は、入力されたデジタルのモノラル音響信号(あるいはステレオ音響信号の1チャンネル)から所定数のサンプルで構成される音響フレームを基準フレームとして読み込む機能を有している。位相変更フレーム設定手段120は、基準フレームと所定サンプルずつ移動させることにより位相を変更した音響フレームを位相変更フレームとして設定する機能を有している。周波数変換手段130は、図3に示した周波数変換手段20と同様の機能を有している。
符号判定パラメータ算出手段140は、生成されたフレームスペクトルから所定の周波数以下に相当する各低周波強度データを抽出し、各成分に対応した各低周波強度データの合算値EC1〜EC4を以下の〔数式17〕に基づいて算出し、この合算値EC1〜EC4を符号判定パラメータとし、この符号判定パラメータEC1〜EC4の比率等に基づいて、所定の状態であると判断する機能を有している。以下の〔数式17〕は上記〔数式7〕において右チャンネル成分を削除したもので、抽出時には右チャンネル成分を参照しないためである。
〔数式17〕
EC1=Σj=m,…,m+P-4{Al(1,j)2+Bl(1,j)2}+Σj=m+P,…,m+2P-4{Al(1,j)2+Bl(1,j)2}
EC2=Σj=m,…,m+P-4{Al(3,j)2+Bl(3,j)2}+Σj=m+P,…,m+2P-4{Al(3,j)2+Bl(3,j)2}
EC3=Σj=m,…,m+P-4{Al(1,j)2+Bl(1,j)2}+Σj=m+P,…,m+2P-4{Al(3,j)2+Bl(3,j)2}
EC4=Σj=m,…,m+P-4{Al(3,j)2+Bl(3,j)2}+Σj=m+P,…,m+2P-4{Al(1,j)2+Bl(1,j)2}
符号出力手段150は、1つの基準フレームに対応する音響フレーム(基準フレームおよび位相変更フレーム)の中から最適な位相であると判断されるものを判断し、その音響フレームの状態に対応する符号を出力する機能を有している。付加情報抽出手段160は、符号出力手段150により出力された符号の集合である5値配列を、所定の規則により変換して意味のある付加情報として抽出する機能を有している。音響フレーム保持手段170は、連続する2個の基準フレームを保持可能なバッファメモリである。図9に示した各構成手段は、現実には情報処理機能を有する小型のコンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。特に、本発明の目的をより簡易に達成するためには、携帯型端末装置をハードウェアとして用いることが望ましい。
(1.5.抽出装置の処理動作)
次に、図9に示した音響信号からの情報の抽出装置の処理動作について図10のフローチャートに従って説明する。まず、本装置では、平均符号レベルHL1、HL2、HL3、HL4、位相判定テーブルS(p)、非符号カウンタNnを初期化する(S200)。これらについて説明する。平均符号レベルHL1〜HL4は、2ビットの値が埋め込まれていたと判断される音響フレーム(以下、有効フレームと呼ぶことにする)についての、上記〔数式17〕で算出される低周波成分の合算値EC1〜EC4の平均値、すなわち、過去の有効フレームにおける合算値EC1〜EC4の平均値で与えられるものであり、初期値は、0.1に設定されている。位相判定テーブルS(p)は、位相を判定するためのテーブルであり、pは0〜5の整数値をとる。初期値はS(p)=0に設定されている。非符号カウンタNnは、信号レベルが低く、非符号(区切り又は埋め込みエラーを示す情報と同一)であると判断されるフレーム数のカウンタであり、初期状態では、Nn=0に設定される。
このように、初期値が設定されている状態で、利用者が流れている音楽について、その楽曲名等の属性情報を知りたいと思った場合、まず、抽出装置に対して、抽出装置としての起動の指示を行う。これは、例えば、抽出装置を携帯電話機等の携帯端末で実現している場合は、所定のボタンを操作することにより実行できる。抽出装置は、指示が入力されると、音響信号入力手段100が、流れている音楽を録音し、デジタル化してデジタル音響信号として入力する。具体的には、無指向性マイクロフォン(または指向性マイクロフォンの一方のチャンネル)から入力される音声を、A/D変換器によりデジタル化する処理を行うことになる。
続いて、基準フレーム獲得手段110が、音響信号入力手段100から入力された音響信号から、所定数のサンプルで構成される音響フレームを基準フレームとして抽出する(S201)。具体的には、基準フレームを抽出して音響フレーム保持手段170に読み込むことになる。基準フレーム獲得手段110が基準フレームとして読み込む1音響フレームのサンプル数は、図3に示した音響フレーム読込手段10で設定されたものと同一にする必要がある。したがって、本実施形態の場合、基準フレーム獲得手段110は、4096サンプルずつ、順次基準フレームとして読み込んでいくことになる。音響フレーム保持手段170には、上述のように2個の基準フレームが格納可能となっており、新しい基準フレームが読み込まれると、古い基準フレームを破棄するようになっている。したがって、音響フレーム保持手段170には、常に基準フレーム2個分(連続する8192サンプル)が格納されていることになる。
埋め込み装置で処理する音響フレームは、先頭から途切れることなく隣接して設定される基準フレームと、この基準フレームと位相を変更した位相変更フレームとに分けることができる。基準フレームについては、最初の基準フレームをサンプル番号1からサンプル番号4096までを設定したら、次の基準フレームは、サンプル番号4097からサンプル番号8192、さらに次の基準フレームは、サンプル番号8193からサンプル番号12288、というように途切れることなく設定される。そして、各基準フレームについて、1/6フレーム(約683サンプル)ずつ移動した5個の位相変更フレームを設定する。例えば、最初の基準フレームについては、サンプル番号683、1366、2049、2732、3413から始まる4096のサンプルで構成される5個の位相変更フレームが設定されることになる。続いて、周波数変換手段130、符号判定パラメータ算出手段140が、読み込んだ各音響フレームから、埋め込まれている情報を判定し、対応する符号を出力する(S202)。出力される符号の形式は、埋め込み側の2ビットの値に対応する値1〜値4の4値、および値0の計5値の形式となる。
ここで、ステップS202の符号判定処理の詳細を図11のフローチャートに従って説明する。まず、周波数変換手段130が、読み込んだ各音響フレームに対して、周波数変換を行ってフレームスペクトルを得る(S401)。この処理は、図3に示した周波数変換手段20における処理と同様である。ただし、抽出に用いるのは、左チャンネルだけであるので、上記〔数式5〕に従った処理を行い、左チャンネルに対応する変換データの実部Al(1,j)等、虚部Bl(1,j)等を得る。
上記周波数変換手段130における処理により、周波数に対応した成分であるスペクトルで表現されたフレームスペクトルが得られる。続いて、符号判定パラメータ算出手段140は、平均符号レベルHL1〜HL4の算出を行う(S402)。具体的には、過去“状態1”であると判断された音響フレームについての合算値EC1の積算値であるv1を、過去“状態1”であると判断された音響フレームの数であるn1で除算することによりHL1を算出し、過去“状態2”であると判断された音響フレームについての合算値EC2の積算値であるv2を、過去“状態2”であると判断された音響フレームの数であるn2で除算することによりHL2を算出し、過去“状態3”であると判断された音響フレームについての合算値EC3の積算値であるv3を、過去“状態3”であると判断された音響フレームの数であるn3で除算することによりHL3を算出し、過去“状態4”であると判断された音響フレームについての合算値EC4の積算値であるv4を、過去“状態4”であると判断された音響フレームの数であるn4で除算することによりHL4を算出する。したがって、平均符号レベルHL1〜HL4は、過去対応する状態であると判断された音響フレームの低周波強度データの合算値の平均値となる。
続いて、符号判定パラメータ算出手段140は、候補符号テーブルの初期化を行う(S403)。候補符号テーブルは、1つの基準フレームおよび5個の位相変更フレームを特定する0〜5の位相番号および、この6個の音響フレームの状態から得られる5値の符号を記録するものである。
続いて、符号判定パラメータ算出手段140は、合算値EC1〜合算値EC4を用いて、低周波成分の状態がどのような状態であるか、すなわち、2ビットの値としてどのような値が埋め込まれていたかを判断する処理を行う(S404)。具体的には、以下の4群の判定処理を実行し、各群における全ての条件を満たす場合に、対応する状態であったと判断し、対応する2ビットの値を出力する。
EC1>0.001・HL1かつEC1>2・EC2かつEC1>EC3かつEC1>EC4の場合、“状態1”であると判断し、値1を出力する。
EC2>0.001・HL2かつEC2>2・EC1かつEC2>EC3かつEC2>EC4の場合、“状態2”であると判断し、値2を出力する。
EC3>0.001・HL3かつEC3>2・EC4かつEC3>EC1かつEC3>EC2の場合、“状態3”であると判断し、値3を出力する。
EC4>0.001・HL4かつEC4>2・EC3かつEC4>EC1かつEC4>EC2の場合、“状態4”であると判断し、値4を出力する。
上記各群は、比較的厳しい判定を行うものであるが、上記各群のいずれも満たさない場合は、符号判定パラメータ算出手段140は、上記各群の先頭2つの条件のみの判定処理を実行し、状態を判断し、対応する2ビットの値を出力する。すなわち、以下の各群における判定処理を実行することになる。
EC1>0.001・HL1かつEC1>2・EC2の場合、“状態1”であると判断し、値1を出力する。
EC2>0.001・HL2かつEC2>2・EC1の場合、“状態2”であると判断し、値2を出力する。
EC3>0.001・HL3かつEC3>2・EC4の場合、“状態3”であると判断し、値3を出力する。
EC4>0.001・HL4かつEC4>2・EC3の場合、“状態4”であると判断し、値4を出力する。
符号判定パラメータ算出手段140は、各音響フレーム単位で、上記判定結果に応じて値1〜値4のいずれかを出力する(S407)。上記いずれの群の条件も満たさない場合は、“状態0”であると判断し、値0を出力する(S408)。
この“状態0”は、合算値E1〜E4が下限値Lev以下であることにより、当該フレームに2ビットの値の記録が行なわれなかったことを示す埋め込みエラーを示す場合と、ワードの区切りを示す場合とがある。“状態0”がワードの区切りを示すか否かは、後述するようにビットカウンタが8以上に達しているかどうかで判断する。
また、上記判定の結果、値1〜値4のいずれかを出力した場合には、さらに、以下の〔数式18〕に従って位相判定テーブルS(p)の更新を行う(S409)。
〔数式18〕
“状態1”であると判断し、値1を出力した場合、S(p)←S(p)+EC1
“状態2”であると判断し、値2を出力した場合、S(p)←S(p)+EC2
“状態3”であると判断し、値3を出力した場合、S(p)←S(p)+EC3
“状態4”であると判断し、値4を出力した場合、S(p)←S(p)+EC4
続いて、符号判定パラメータ算出手段140は、候補符号テーブルに、最適位相となる候補を保存する(S410)。具体的には、位相判定テーブルに記録されているS(p)の値が最大となる位相番号pの値、前記S407、S408により判定された5値のいずれかの符号、その音響フレームについての上記〔数式17〕に従った処理を実行することにより算出した、低周波数成分に対応する各EC1〜EC4の値を最適位相の候補として候補符号テーブルに保存する。
続いて、全ての位相番号pに対応する処理を終えたかどうかを判定する(S411)。これは、ある基準フレームに対して全ての位相変更フレームの処理を行ったかどうかを判定している。本実施形態では、pが0〜5までの値をとるので、6回分処理していない場合は、処理していた音響フレームから所定サンプル数ずらして、位相の異なる音響フレームを設定し、S404に戻って処理を繰り返す。なお、p=0の場合が基準フレームであり、p=1〜5の場合が位相変更フレームである。全ての位相番号pに対応する処理を終えた場合は、候補保存テーブルに記録されている位相番号pに対応する位相が最適位相であると判定し、候補保存テーブルに記録されている符号を出力する(S412)。
再び図10のフローチャートに戻って説明する。S202による処理の結果、値1〜値4に相当する符号が出力された場合には、平均符号レベルのパラメータの更新処理を行う(S203)。具体的には、平均符号レベルHL1〜HL4算出の際の分子となる積算値v1〜v4にそれぞれ合算値EC1〜EC4を加算して積算値v1〜v4を更新し、分母となるフレーム数n1〜n4にそれぞれ1を加算してフレーム数n1〜n4を更新することにより行う。n1〜n4はあらかじめ設定したnmax(例えば100)を超えないように設定する。
続いて、非符号カウンタの初期化処理を行う(S204)。具体的には、上記S200の初期化処理における処理と同様、非符号カウンタNn=0と設定する。さらに、出力された値に対応する2ビットをバッファに保存する(S205)。次に、ビットカウンタを“2”だけカウントアップする(S206)。
一方、S202による処理の結果、値0が出力された場合には、非符号カウンタのカウントアップ処理を行う(S207)。具体的には、非符号カウンタNnの値に1を加算する。そして、非符号カウンタNnの値がnmax以上である場合は、S200に戻って初期化処理を行う。非符号カウンタNnの値がnmax未満である場合は、ビットカウンタが8以上であるかどうかを判断し、8未満である場合は、値0は、ワードの区切りではなく埋め込みエラーを示す符号と判断し、現在のビットカウンタ値を維持してS201に戻って符号抽出処理を継続する。ビットカウンタが8以上である場合は、値0は、ワードの区切りを示すと判断できるので、バッファに記録された1ワード分のデータを、付加情報抽出手段160が出力する(S208)。そして、ビットカウンタを0に初期化する(S209)。図10に示す処理を各基準フレームに対して実行することにより、付加情報が抽出されることになる。S201において全ての基準フレームが抽出されたと判断された場合には、処理を終了する。
上記S208の処理において、付加情報抽出手段160は、まず、符号判定パラメータ算出手段140により出力された値のうち、値0を区切り位置として、その次の値を先頭と仮定して、各値に対応する2ビットの値に対応させて、ビット配列を作成する。続いて、値0を抽出した際に、ビット配列のビットカウンタが8未満であれば、値0は埋め込みエラーを示すものと判断し、現状のビットカウンタの値を維持してビット配列の作成を継続する。ビット配列のビットカウンタが丁度8または8を超えていれば、値0はワード(1バイト)の区切りを示すものと判断し、ビット配列の最後の8ビットを、所定の規則により変換して意味のある付加情報として抽出する。ここで、8ビットを超える場合は、データの抽出処理を開始する直後に発生しやすく、値0を先頭と誤判断してビットカウンタを初期化した場合に発生する。所定の規則としては、情報を埋め込む者が意図した情報が受け取った者に認識可能な状態とできるものであれば、さまざまな規則が適用できるが、本実施形態では、文字情報として認識するための規則としている。すなわち、付加情報抽出手段160は、符号判定パラメータ算出手段140が判定し、符号出力手段150から出力される符号を1バイト(8ビット)単位で認識し、これを設定されたコード体系に従って文字情報を認識する。このようにして得られた文字情報は、表示装置(図示省略)の画面に表示出力される。
従って、埋め込み装置により音響信号に、その楽曲の曲名やアーチスト等の属性情報を文字情報として埋め込んでおけば、利用者は、その音楽が流れているのを聞いて、その曲名やアーチストを知りたいと思ったときに、抽出装置として機能する自身の携帯端末に所定の操作を行えば、自身の携帯端末の画面に曲名やアーチスト等の属性情報が文字情報として表示されることになる。
(1.6.位相補正処理について)
上記のように、抽出時には、埋め込み時に埋め込んだ音響フレームに対応して、音響信号を読み込むことができるとは限らない。そこで、音響フレームの位相をずらして複数通り(本実施形態では6通り)で読み込み、その中で最適な位相を決定し、その位相で特定される音響フレームに対応する符号を出力することにしている。例えば、6通りで読み込む場合、先頭の音響フレームは、本来サンプル番号1〜4096のサンプルであるが、サンプル番号1、683、1366、2049、2732、3413から始まる4096のサンプルで構成される6個の各音響フレームに対して処理を行い、最適な音響フレームに対応する符号を出力することになる。この位相補正処理は、S403、S409、S410、S411、S412における処理を中心として行われることになる。
(1.7.下限閾値補正処理について)
信号レベルが小さい場合には、窓成分の強度の大小が判定できず、抽出側で誤判断することが多くなる。そこで、合算値EC1〜EC4が所定の閾値以下のフレームについては、無効なフレームであると判断するようにしているが、この際の閾値を過去の有効フレームについての低周波強度の積算値を利用して補正する処理を行っている。このように閾値を変動させることにより、信号レベルが変動しても無効なフレームであるか、有効なフレームであるかを正確に判断することが可能となる。この下限閾値補正処理は、S402、S203における処理を中心として行われることになる。
(1.8.モノラル音響信号の場合)
上記実施形態においては、埋め込み装置、抽出装置のいずれにおいても、左右のチャンネルを有するステレオ音響信号の左チャンネル信号に付加情報を埋め込む場合を例にとって説明したが、逆に右チャンネル信号に付加情報を埋め込むようにしても良い。本発明は、左右の特性には無関係だからである。また、1つのチャンネルしかないモノラル音響信号に対して処理を行う場合は、上記実施形態において、左チャンネル信号に対して行った処理を行うことになる。本発明は、1つのチャンネル信号に対して付加情報を埋め込み、また抽出を行うので、モノラル音響信号であってもステレオ音響信号であっても同様に行うことができる。
(1.9.信号成分が小さくても情報の埋め込みを可能とする手法)
ここまで、説明してきた処理においては、上記E1〜E4が所定の大きさより大きいことが必要となり、上記E1〜E4が所定の大きさ以下の場合には、情報の埋め込みを行うことができない。そこで、以下、上記E1〜E4が所定の大きさ以下であっても、信号の埋め込みを可能とする手法について説明する。
この場合、図3に示した埋め込み装置における情報の埋め込み処理は、図6のフローチャートに従って行われるが、合算値E1〜E4がレベル下限値Lev以下となることがなくなるため、S105における周波数変換処理において低周波成分変更手段30がレベルの判定を行わない。これは、この処理では、信号レベルが小さくても強制的に情報を埋め込むこととしているため、情報の埋め込みが不可能な信号レベルが小さい部分が存在するかどうかを判断し、区切りモードに設定する必要がないからである。
したがって、S105における状態1〜状態4に設定する処理としては、まず、以下の〔数式19〕に従って算出される固定値Vを、低周波成分の強度として設定する。
〔数式19〕
V={0.5・Lev/(2P−6)}1/2
そして、状態1とする場合は、上記〔数式8〕に従った処理を実行した後、以下の〔数式20〕に従った処理を実行する。
〔数式20〕
j=m〜m+P−4、m+P〜m+2P−4の各成分に対して
Al´(1,j)=Al(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
状態2とする場合は、上記〔数式9〕に従った処理を実行した後、以下の〔数式21〕に従った処理を実行する。
〔数式21〕
j=m〜m+P−4、m+P〜m+2P−4の各成分に対して
Al´(3,j)=Al(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
状態3とする場合は、上記〔数式10〕に従った処理を実行した後、以下の〔数式22〕に従った処理を実行する。
〔数式22〕
j=m〜m+P−4の各成分に対して
Al´(1,j)=Al(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
j=m+P〜m+2P−4の各成分に対して
Al´(3,j)=Al(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
状態4とする場合は、上記〔数式11〕に従った処理を実行した後、以下の〔数式23〕に従った処理を実行する。
〔数式23〕
j=m〜m+P−4の各成分に対して
Al´(3,j)=Al(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
j=m+P〜m+2P−4の各成分に対して
Al´(1,j)=Al(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
上記のように、周波数成分が小さい場合に情報を埋め込んだ場合であっても、抽出側の、音響信号からの情報の抽出装置の構成は図9と同一であり、処理動作は図10のフローチャートに従ったものと同一である。
(2.第2の実施形態)
ここからは、第2の実施形態について説明する。第1の実施形態では、図2に示したように、音響フレームの低周波成分を4つの状態に変更し、2ビットの情報を埋め込むようにしたが、第2の実施形態では、図12に示すように、音響フレームの低周波成分を8つの状態に変更し、3ビットの情報を埋め込むことを特徴とする。
図12に示す各音響フレームにおいても、図2と同様、横軸は時間方向、縦軸は周波数方向を示している。また、網掛けされた部分は、低周波成分が存在している部分を示し、網掛けが濃いほど成分強度が強いことを示している。第2の実施形態において、図12(a)に示すような原状態の低周波成分に対して、符号0を埋め込む場合、L-chの信号の低周波成分を全て除去し、除去した成分と同等の成分をR-chの信号の低周波成分に加算して図12(b)に示すような状態に変更する。図12においても、図2と同様、縦軸の周波数方向において、周波数領域が5つに区分されている。
本実施形態で、符号1を埋め込む場合、図12(c)に示すように、L-chの信号の後部の低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号の前部の低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。符号2を埋め込む場合は、図12(d)に示すように、L-chの信号の前部の低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号の後部の低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。
符号3を埋め込む場合、図12(e)に示すように、L-chの信号の前部の上位低周波領域の成分である上位低周波成分と、後部の下位低周波領域の成分である下位低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号の前部の下位低周波成分と後部の上位低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。符号4を埋め込む場合は、図12(f)に示すように、L-chの信号の前部の下位低周波成分と後部の上位低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号の前部の上位低周波成分と後部の下位低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。
符号5を埋め込む場合、図12(g)に示すように、L-chの信号の前部の上位低周波成分と、後部の低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号の前部の下位低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。符号6を埋め込む場合は、図12(h)に示すように、L-chの信号の前部の低周波成分と後部の上位低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号の後部の下位低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。
符号7を埋め込む場合、図12(i)に示すように、L-chの信号の前部の低周波成分と、後部の下位低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号の後部の上位低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。符号8を埋め込む場合は、図12(j)に示すように、L-chの信号の前部の下位低周波成分と後部の低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号の前部の上位低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。
本実施形態では、図12(b)〜(j)に示すような9つの状態に低周波成分を変更することにより、情報の埋め込みを行っている。9つの状態のうち、1つは、埋め込むことができない状態におけるエラー処理に用いるものであるので、実質埋め込むことができるのは8つの状態、すなわち、3ビットに相当する。
(2.1.埋め込み装置)
第2の実施形態においても、装置構成は図3に示したものと同様であるが、主に低周波成分変更手段30の内容が異なっている。具体的には、低周波成分変更手段30は、Aタイプの音響フレームについて、付加情報読込手段70が読み込んだビット値に応じて、低周波成分の割合を変更する処理を行うが、第2の実施形態では、ビット配列を3ビットずつ読み込み、1音響フレームに対して3ビットの情報を埋め込む。埋め込まれる3ビットの値は、“000”“001”“010”“011” “100”“101”“110”“111”の8通りがある。第2の実施形態では、これらを値1〜値8と定義する。この際、“000”〜“111”の8通りのうち、いずれを値1〜値8と定義しても良い。抽出側において、埋め込み側で埋め込まれた3ビットの配列が特定できれば良いためである。したがって、この定義は、埋め込み側と抽出側で一致している必要がある。
そして、低周波成分変更手段30は、この値1〜値8に応じて、低周波成分を状態1〜状態8のいずれかに変更する。具体的には、まず、低周波成分変更手段30は、上記〔数式5〕により求めた左チャンネルの実部Al(1,j)、Al(3,j)、虚部Bl(1,j)、Bl(3,j)、右チャンネルの実部Ar(1,j)、Ar(3,j)、虚部Br(1,j)、Br(3,j)を利用して、以下の〔数式24〕により、合算値E1〜E4を算出する。この合算値E1〜E4は、第1の実施形態におけるものとは異なっている。なお、E1〜E6、EC1〜EC6、HL1〜HL16等の各変数は、各実施形態で独立しており、同一名の変数であっても、算出手法が異なる。ただし、本明細書で用いられる数式については、明細書全体を通じて統一されている。
〔数式24〕
E1=Σj=m,m+P-4{Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}
E2=Σj=m,m+P-4{Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}
E3=Σj=m+p,m+2P-4{Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}
E4=Σj=m+p,m+2P-4{Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}
上記〔数式24〕において、mは低周波数帯の下限の成分の番号、Mは低周波数帯の上限の成分の番号であり、P=(M−m)/2である。なお、Pが整数にならない場合、切捨て処理を行う。m=15、M=40と設定すると、P=12となり、図5に例示したスケールと同じになる。上記〔数式24〕により算出されたE1〜E4は音響フレームの所定の範囲におけるスペクトル集合の成分強度の合算値を示すことになる。続いて、この合算値E1〜E4がレベル下限値Levより大きいかどうかの判定を行う。レベル下限値Levは、音響信号Xl(i)、Xr(i)の振幅最大値が1に正規化されており、M=40に設定されている場合、0.25に設定する。このLev=0.25という値は、経験的にアナログ変換への耐性が維持できるレベルであり、低周波成分が少ない場合は適宜下げることになるが、その場合は、アナログ変換により検出精度も低下することになる。
合算値E1〜E4がレベル下限値Levより大きいかどうかを判断するのは、信号の強度が小さいと、信号を変化させても、その変化を抽出側で検出することができないためである。すなわち、各低周波スペクトル成分を十分な大きさとすることができるかどうかを判断することになる。
E1およびE3が共にレベル下限値Levより大きく、埋め込むべき情報が“値1”である場合、以下の〔数式25〕に従った処理を実行することにより、低周波成分の状態を“状態1”、すなわち、図12(c)に示したような状態に変更する。
〔数式25〕
j=m〜m+P−4、m+P〜m+2P−4の各成分に対して
Al´(3,j)=0
Bl´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Ar´(1,j)=0
Br´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Al´(1,j)=Al(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
上記〔数式25〕においては、j=m〜m+P−4、m+P〜m+2P−4において、Al´(3,j)、Bl´(3,j)を共に0としている。これは、図12(c)の上段に示すように、L-chにおいて、SP3U、SP3D内の各成分を0にすることを示しているが、“状態1”はSP1U、SP1Dとの差を明確にすることができれば十分であるため、必ずしも0にする必要はなく、小さな値であれば良い。
E2およびE4が共にレベル下限値Levより大きく、埋め込むべき情報が“値2”である場合は、以下の〔数式26〕に従った処理を実行することにより、低周波成分の状態を“状態2” 、すなわち、図12(d)に示したような状態に変更する。
〔数式26〕
j=m〜m+P−4、m+P〜m+2P−4の各成分に対して
Al´(1,j)=0
Bl´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Ar´(3,j)=0
Br´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Al´(3,j)=Al(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
上記〔数式26〕においては、j=m〜m+P−4、m+P〜m+2P−4において、Al´(1,j)、Bl´(1,j)を共に0としている。これは、図12(d)の上段に示すように、L-chにおいて、SP1U、SP1D内の各成分を0にすることを示しているが、“状態2”はSP3U、SP3Dとの差を明確にすることができれば十分であるため、必ずしも0にする必要はなく、小さな値であれば良い。
E1およびE4が共にレベル下限値Levより大きく、埋め込むべき情報が“値3”である場合、以下の〔数式27〕に従った処理を実行することにより、低周波成分の状態を“状態3” 、すなわち、図12(e)に示したような状態に変更する。
〔数式27〕
j=m〜m+P−4の各成分に対して
Al´(3,j)=0
Bl´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
j=m+P〜m+2P−4の各成分に対して
Al´(1,j)=0
Bl´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
j=m〜m+P−4の各成分に対して
Ar´(1,j)=0
Br´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Al´(1,j)=Al(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
j=m+P〜m+2P−4の各成分に対して
Ar´(3,j)=0
Br´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Al´(3,j)=Al(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
上記〔数式27〕においては、j=m〜m+P−4においてAl´(3,j)、Bl´(3,j)を共に0とし、j=m+P〜m+2P−4においてAl´(1,j)、Bl´(1,j)を共に0としている。これは、図12(e)の上段に示すように、L-chにおいて、SP3D、SP1U内の各成分を0にすることを示しているが、“状態3”はSP3U、SP1Dとの差を明確にすることができれば十分であるため、必ずしも0にする必要はなく、小さな値であれば良い。
E2およびE3が共にレベル下限値Levより大きく、埋め込むべき情報が“値4”である場合、以下の〔数式28〕に従った処理を実行することにより、低周波成分の状態を“状態4” 、すなわち、図12(f)に示したような状態に変更する。
〔数式28〕
j=m〜m+P−4の各成分に対して
Al´(1,j)=0
Bl´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
j=m+P〜m+2P−4の各成分に対して
Al´(3,j)=0
Bl´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
j=m〜m+P−4の各成分に対して
Ar´(3,j)=0
Br´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Al´(3,j)=Al(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
j=m+P〜m+2P−4の各成分に対して
Ar´(1,j)=0
Br´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Al´(1,j)=Al(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
上記〔数式28〕においては、j=m〜m+P−4においてAl´(1,j)、Bl´(1,j)を共に0とし、j=m+P〜m+2P−4においてAl´(3,j)、Bl´(3,j)を共に0としている。これは、図12(f)の上段に示すように、L-chにおいて、SP1D、SP3U内の各成分を0にすることを示しているが、“状態4”はSP3D、SP1Uとの差を明確にすることができれば十分であるため、必ずしも0にする必要はなく、小さな値であれば良い。
E1がレベル下限値Levより大きく、埋め込むべき情報が“値5”である場合、以下の〔数式29〕に従った処理を実行することにより、低周波成分の状態を“状態5” 、すなわち、図12(g)に示したような状態に変更する。
〔数式29〕
j=m+P〜m+2P−4の各成分に対して
Al´(1,j)=0
Bl´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
j=m〜m+P−4、m+P〜m+2P−4の各成分に対して
Al´(3,j)=0
Bl´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
j=m〜m+P−4の各成分に対して
Ar´(1,j)=0
Br´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Al´(1,j)=Al(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
上記〔数式29〕においては、j=m+P〜m+2P−4においてAl´(1,j)、Bl´(1,j)を共に0とし、j=m〜m+P−4、m+P〜m+2P−4においてAl´(3,j)、Bl´(3,j)を共に0としている。これは、図12(g)の上段に示すように、L-chにおいて、SP1U、SP3U、SP3D内の各成分を0にすることを示しているが、“状態5”はSP1Dとの差を明確にすることができれば十分であるため、必ずしも0にする必要はなく、小さな値であれば良い。
E2がレベル下限値Levより大きく、埋め込むべき情報が“値6”である場合、以下の〔数式30〕に従った処理を実行することにより、低周波成分の状態を“状態6” 、すなわち、図12(h)に示したような状態に変更する。
〔数式30〕
j=m〜m+P−4、m+P〜m+2P−4の各成分に対して
Al´(1,j)=0
Bl´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
j=m+P〜m+2P−4の各成分に対して
Al´(3,j)=0
Bl´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
j=m〜m+P−4の各成分に対して
Ar´(3,j)=0
Br´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Al´(3,j)=Al(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
上記〔数式30〕においては、j=m〜m+P−4、m+P〜m+2P−4においてAl´(1,j)、Bl´(1,j)を共に0とし、j=m+P〜m+2P−4においてAl´(3,j)、Bl´(3,j)を共に0としている。これは、図12(h)の上段に示すように、L-chにおいて、SP1U、SP3U、SP1D内の各成分を0にすることを示しているが、“状態6”はSP3Dとの差を明確にすることができれば十分であるため、必ずしも0にする必要はなく、小さな値であれば良い。
E4がレベル下限値Levより大きく、埋め込むべき情報が“値7”である場合、以下の〔数式31〕に従った処理を実行することにより、低周波成分の状態を“状態7” 、すなわち、図12(i)に示したような状態に変更する。
〔数式31〕
j=m〜m+P−4、m+P〜m+2P−4の各成分に対して
Al´(1,j)=0
Bl´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
j=m〜m+P−4の各成分に対して
Al´(3,j)=0
Bl´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
j=m+P〜m+2P−4の各成分に対して
Ar´(3,j)=0
Br´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Al´(3,j)=Al(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
上記〔数式31〕においては、j=m〜m+P−4、m+P〜m+2P−4においてAl´(1,j)、Bl´(1,j)を共に0とし、j=m〜m+P−4においてAl´(3,j)、Bl´(3,j)を共に0としている。これは、図12(i)の上段に示すように、L-chにおいて、SP1U、SP1D、SP3D内の各成分を0にすることを示しているが、“状態7”はSP3Uとの差を明確にすることができれば十分であるため、必ずしも0にする必要はなく、小さな値であれば良い。
E3がレベル下限値Levより大きく、埋め込むべき情報が“値8”である場合、以下の〔数式32〕に従った処理を実行することにより、低周波成分の状態を“状態8” 、すなわち、図12(j)に示したような状態に変更する。
〔数式32〕
j=m〜m+P−4の各成分に対して
Al´(1,j)=0
Bl´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
j=m〜m+P−4、m+P〜m+2P−4の各成分に対して
Al´(3,j)=0
Bl´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
j=m+P〜m+2P−4の各成分に対して
Ar´(1,j)=0
Br´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Al´(1,j)=Al(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
上記〔数式32〕においては、j=m〜m+P−4においてAl´(1,j)、Bl´(1,j)を共に0とし、j=m〜m+P−4、m+P〜m+2P−4においてAl´(3,j)、Bl´(3,j)を共に0としている。これは、図12(j)の上段に示すように、L-chにおいて、SP1D、SP3U、SP3D内の各成分を0にすることを示しているが、“状態8”はSP1Uとの差を明確にすることができれば十分であるため、必ずしも0にする必要はなく、小さな値であれば良い。
上記〔数式25〕〜〔数式32〕に従った処理を実行し、低周波成分の状態を“状態1”〜“状態8”に変更した場合、いずれの場合であっても、さらに第1の実施形態と同様、上記〔数式12〕に従った処理を実行し、最低周波数帯におけるギャップ領域G1D、G3D、上位低周波数帯と下位低周波数帯の間にギャップ領域G1M、G3M、上位低周波数帯の高周波側にギャップ領域G1U、G3Uを設ける。
第2の実施形態においても、ワード間の区切りとする場合、埋め込まれる側の低周波成分の強度が小さすぎる場合には、第1の実施形態と同様、上記〔数式13〕に従った処理を実行し、その低周波成分を除去し、状態を“状態0”に変更する。これは、図12(b)に示すような状態である。
Bタイプの音響フレームについては、低周波成分変更手段30は、第1の実施形態と同様、上記〔数式14〕に従った処理を実行し、常にその低周波成分を除去する。
続いて、周波数逆変換手段40は、第1の実施形態と同様、低周波成分の状態が変更されたフレームスペクトルを周波数逆変換して改変音響フレームを得る処理を行う。
具体的には、Aタイプの音響フレームに対しては、周波数逆変換手段40は、上記〔数式25〕〜〔数式32〕、〔数式13〕のいずれかにより得られたスペクトルの左チャンネルの実部Al´(1,j)等、虚部Bl´(1,j)等、右チャンネルの実部Ar´(1,j)等、虚部Br´(1,j)等を用いて、第1の実施形態と同様、上記〔数式15〕に従った処理を行い、Xl´(i)、Xr´(i)を算出する。なお、上記〔数式25〕〜〔数式32〕、〔数式13〕において改変されていない周波数成分については、Al´(1,j)等として、元の周波数成分であるAl(1,j)等を用いる。
Bタイプの音響フレームに対しては、周波数逆変換手段40は、上記〔数式14〕により得られたスペクトルの左チャンネルの実部Al´(4,j)、虚部Bl´(4,j)、右チャンネルの実部Ar´(4,j)、虚部Br´(4,j)を用いて、第1の実施形態と同様、上記〔数式16〕に従った処理を行い、Xl´(i)、Xr´(i)を算出する。
改変音響フレーム出力手段50は、周波数逆変換手段40の処理により得られたAタイプの改変音響フレーム、Bタイプの改変音響フレームを順次出力ファイルに出力する。
次に、第2の実施形態における音響信号に対する情報の埋め込み装置の処理の全体的な流れを、図13のフローチャートに示す。図13において、図6と同一の部分は、図6と同一または類似の処理を行うものである。図13において、図6と大きく異なるのは、S110の部分であり、第2の実施形態では、低周波成分変更手段30が、レジスタに保持された1ワードから2ビットを読み込む処理を行った後、読み込む2ビットが末端2ビットでない場合は、さらにもう1ビット読み込む処理を行う。すなわち、この場合、レジスタから3ビット読み込むことになる。すなわち、本実施形態では、1ワードとしてレジスタに8ビットが保持されているため、3ビット、3ビット、2ビットの順に読み込まれる。末端の2ビット以外では、3ビット読み込む方が効率が良いため、末端2ビットであるかどうかを判断し、そうでない場合は、さらに1ビット読み込んで3ビット読み込みとしているのである。
続いて、音響フレーム読込手段10が、音響信号記憶部61に記憶されたステレオ音響信号の左右の各チャンネルから、それぞれ所定数のサンプルを1音響フレームとして読み込む(S104)。
モードが区切りモードである場合、左(L)チャンネル信号において、低周波成分を“状態0”とする処理を行う(S106)。具体的には、周波数変換手段20が、読み込んだ音響フレームに対して周波数変換を行って、その音響フレームのスペクトルであるフレームスペクトルを得た後、低周波成分変更手段30が、上記〔数式13〕に従った処理を実行することになる。
モードがビットモードである場合は、周波数変換手段20および低周波成分変更手段30が、音響フレームの低周波成分の状態を“状態1”〜“状態8”のいずれかに変更する処理を行う(S105)。具体的には、まず、周波数変換手段20が、読み込んだ音響フレームに対して、周波数変換を行って、その音響フレームのスペクトルであるフレームスペクトルを得る。すなわち、各音響フレームについて、3つの窓関数W(1,i)、W(2,i)、W(3,i)を用いて、上記〔数式5〕に従った処理を行うことになる。
続いて、低周波成分変更手段30が、上記〔数式24〕によりE1〜E4を算出する。そして、付加情報読込手段70から受け取った値1〜値8に応じて上記〔数式25〕〜〔数式32〕に従った処理を実行し、低周波成分の状態を“状態1”〜“状態8”のいずれかに変更する。
S105において、“状態1”〜“状態8”のいずれにも変更することができない場合は、低周波成分を“状態0”とする処理を行う(S106)。具体的には、上記〔数式13〕に従った処理を実行することになる。“状態1”〜“状態8” のいずれにも変更することができない場合とは、埋め込むべき値に対応する合算値のいずれかが、レベル下限値Lev以下となっている場合である。例えば、値1を埋め込む場合、E1およびE3が共にレベル下限値Levより大きい必要があるため、E1、E3のいずれかがLev以下である場合は、S106に進むことになる。
上記〔数式13〕に従った処理を実行することにより、左チャンネルのフレームスペクトルの低周波数成分は、上位低周波領域前部のスペクトルSP1U、上位低周波領域後部のスペクトルSP3U、下位低周波領域前部のスペクトルSP1D、下位低周波領域後部のスペクトルSP3D全てにおいて、“0” で同一となる。この“状態0”のパターンは、付加情報の先頭位置(区切り)を示す情報か、または前述の合算値E1〜E4が下限値Lev以下であることにより、当該フレームに3ビットまたは2ビットの値の記録が行なわれなかったことを示す情報となる。なお、上記〔数式13〕においては、j=0〜M−1の各成分に対してAl´(j)=Bl´(j)=0としているが、抽出側において、“状態1”〜“状態8”のいずれでもないことを認識可能とすることを目的としているため、十分小さな値であれば、必ずしも0とする必要はない。また、必ずしも4つのスペクトル成分の値が同一である必要はなく、差が小さければ良い。
次に、周波数逆変換手段40が、上記S105、S106の処理により各低周波成分のスペクトル集合間の割合が変更されたフレームスペクトルを周波数逆変換して改変音響フレームを得る処理を行う(S107)。この周波数逆変換は、当然のことながら、周波数変換手段20がS105において実行した手法に対応していることが必要となる。本実施形態では、周波数変換手段20において、フーリエ逆変換を施しているため、周波数逆変換手段40は、フーリエ逆変換を実行することになる。具体的には、上記〔数式25〕〜〔数式32〕〔数式12〕〔数式13〕のいずれかにより得られたスペクトルの左チャンネルの実部Al´(1,j)等、虚部Bl´(1,j)等、右チャンネルの実部Ar´(1,j)等、虚部Br´(1,j)等を用いて、上記〔数式15〕に従った処理を行い、Xl´(i)、Xr´(i)を算出する。
改変音響フレーム出力手段50は、得られた改変音響フレームを順次出力ファイルに出力する。こうして1つの音響フレームに対する処理を終えたら、モードの判定を行い(S108)、モードが区切りモードである場合は、モードをビットモードに設定した後(S109)、音響フレーム読込手段10が、音響フレームを読み込む(S104)。一方、モードがビットモードである場合は、低周波成分変更手段30が付加情報のビット配列中の次の2ビットを読み込む(S103)。以上のような処理を音響信号の両チャンネルの全サンプルに渡って実行していく。すなわち、所定数のサンプルを音響フレームとして読み込み、音響信号から読み込むべき音響フレームがなくなったら(S104)、処理を終了する。なお、S101において読み込んだ1ワードのデータの各ビットに対応する処理を終えた場合、S103からS101に戻り、付加情報の次のワードを読み込み処理をすることになる。付加情報の全ワードに対して処理が終了した場合は、付加情報の先頭ワードに戻って処理を行う。この結果、全ての音響フレームに対して処理を行った全ての改変音響フレームが出力ファイルに記録されて、改変音響信号として得られる。得られた改変音響信号は、記憶手段60内の改変音響信号記憶部63に出力され、記憶される。
(2.2.抽出装置)
第2の実施形態においても、装置構成は図9に示したものと同様であるが、主に符号判定パラメータ算出手段140の内容が異なっている。具体的には、符号判定パラメータ算出手段140は、生成されたフレームスペクトルから所定の周波数以下に相当する各低周波強度データを抽出し、各成分に対応した各低周波強度データの合算値EC1〜EC4を以下の〔数式33〕に基づいて算出し、この合算値EC1〜EC4を符号判定パラメータとし、この符号判定パラメータEC1〜EC4の比率等に基づいて、所定の状態であると判断する機能を有している。以下の〔数式33〕は上記〔数式24〕において右チャンネル成分を削除したものとなっている。
〔数式33〕
EC1=Σj=m,…,m+P-4{Al(1,j)2+Bl(1,j)2}
EC2=Σj=m,…,m+P-4{Al(3,j)2+Bl(3,j)2}
EC3=Σj=m+P,…,m+2P-4{Al(1,j)2+Bl(1,j)2}
EC4=Σj=m+P,…,m+2P-4{Al(3,j)2+Bl(3,j)2}
次に、第2の実施形態における音響信号からの情報の抽出装置の処理の全体的な流れについて説明する。第2の実施形態においても、基本的な流れは、図10に示したフローチャートと同じである。しかし、第2の実施形態では、値1〜値8が出力されるため、各ステップにおいて実行される処理が若干異なっている。
まず、本装置では、平均符号レベルHL1〜HL8、位相判定テーブルS(p)、非符号カウンタNnを初期化する(S200)。平均符号レベルHL1〜HL16の初期値は、第1の実施形態と同様、0.1に設定されている。位相判定テーブルS(p)、非符号カウンタNnについても第1の実施形態と同様である。
利用者が抽出装置に対して、抽出装置としての起動の指示を行うと、音響信号入力手段100が、流れている音楽を録音し、デジタル化してデジタル音響信号として入力する。続いて、基準フレーム獲得手段110が、音響信号入力手段100から入力された音響信号から、所定数のサンプルで構成される音響フレームを基準フレームとして抽出する(S201)。
続いて、周波数変換手段130、符号判定パラメータ算出手段140が、読み込んだ各音響フレームから、埋め込まれている情報を判定し、対応する符号を出力する(S202)。出力される情報の形式は、付加情報が埋め込まれる場合に対応する値1〜値8の8値、および値0の計9値の形式となる。
ステップS202の符号判定処理の詳細については、図11のフローチャートと同様となる。まず、周波数変換手段130が、第1の実施形態と同様、周波数変換を行った後(S401)、符号判定パラメータ算出手段140は、平均符号レベルHL1〜HL8の算出を行う(S402)。具体的には、過去“状態1”であると判断された音響フレームについての合算値EC1と合算値EC3の和の積算値であるv1を、過去“状態1”であると判断された音響フレームの数であるn1で除算することによりHL1を算出し、過去“状態2”であると判断された音響フレームについての合算値EC2と合算値EC4の和の積算値であるv2を、過去“状態2”であると判断された音響フレームの数であるn2で除算することによりHL2を算出し、過去“状態3”であると判断された音響フレームについての合算値EC1と合算値EC4の和の積算値であるv3を、過去“状態3”であると判断された音響フレームの数であるn3で除算することによりHL3を算出し、過去“状態4”であると判断された音響フレームについての合算値EC2と合算値EC3の和の積算値であるv4を、過去“状態4”であると判断された音響フレームの数であるn4で除算することによりHL4を算出する。
さらに、過去“状態5”であると判断された音響フレームについての合算値EC1の2倍の積算値であるv5を、過去“状態5”であると判断された音響フレームの数であるn5で除算することによりHL5を算出し、過去“状態6”であると判断された音響フレームについての合算値EC2の2倍の積算値であるv6を、過去“状態6”であると判断された音響フレームの数であるn6で除算することによりHL6を算出し、過去“状態7”であると判断された音響フレームについての合算値EC3の2倍の積算値であるv7を、過去“状態7”であると判断された音響フレームの数であるn7で除算することによりHL7を算出し、過去“状態8”であると判断された音響フレームについての合算値EC4の2倍の積算値であるv8を、過去“状態8”であると判断された音響フレームの数であるn8で除算することによりHL8を算出する。したがって、平均符号レベルHL1〜HL4は、過去対応する状態であると判断された音響フレームの低周波強度データの合算値の平均値となる。平均符号レベルHL5〜HL8は、過去対応する状態であると判断された音響フレームの低周波強度データの合算値の2倍の平均値となる。
続いて、符号判定パラメータ算出手段140は、候補符号テーブルの初期化を行う(S403)。候補符号テーブルは、1つの基準フレームおよび5個の位相変更フレームを特定する0〜5の位相番号および、この6個の音響フレームの状態から得られる9値の符号を記録するものである。
続いて、符号判定パラメータ算出手段140は、合算値EC1〜合算値EC4を用いて、低周波成分の状態がどのような状態であるか、すなわち、3ビットまたは2ビットの値としてどのような値が埋め込まれていたかを判断する処理を行う(S404)。具体的には、まず、以下の4群の判定処理を実行し、各群における全ての条件を満たす場合に、対応する状態であったと判断し、対応する値を出力する。
EC1>0.0005・HL1、かつEC3>0.0005・HL3、かつEC1>2・EC2、かつEC3>2・EC4の場合、“状態1”であると判断し、値1を出力する。
EC2>0.0005・HL2、かつEC4>0.0005・HL4、かつEC2>2・EC1、かつEC4>2・EC3の場合、“状態2”であると判断し、値2を出力する。
EC1>0.0005・HL1、かつEC4>0.0005・HL4、かつEC1>2・EC2、かつEC4>2・EC3の場合、“状態3”であると判断し、値3を出力する。
EC2>0.0005・HL2、かつEC3>0.0005・HL3、かつEC2>2・EC1、かつEC3>2・EC4の場合、“状態4”であると判断し、値4を出力する。
上記各群のいずれも満たさない場合は、符号判定パラメータ算出手段140は、さらに以下の各群における判定処理を実行して状態を判断し、対応する値を出力する。
EC1>0.0005・HL1、かつEC1>2・EC2、かつEC1>EC3、かつEC1>EC4の場合、“状態5”であると判断し、値5を出力する。
EC2>0.0005・HL2、かつEC2>2・EC1、かつEC2>EC3、かつEC2>EC4の場合、“状態6”であると判断し、値6を出力する。
EC4>0.0005・HL4、かつEC4>2・EC3、かつEC4>EC1、かつEC4>EC2の場合、“状態7”であると判断し、値7を出力する。
EC3>0.0005・HL3、かつEC3>2・EC4、かつEC3>EC1、かつEC3>EC2の場合、“状態8”であると判断し、値8を出力する。
符号判定パラメータ算出手段140は、各音響フレーム単位で、上記判定結果に応じて値1〜値8のいずれかを出力する(S407)。上記いずれの群の条件も満たさない場合は、“状態0”であると判断し、値0を出力する(S408)。この“状態0”は、合算値E1〜E4が下限値Lev以下であることにより、当該フレームに値1〜値8の記録が行なわれなかったことを示す埋め込みエラーを示す場合と、ワードの区切りを示す場合とがある。“状態0”がワードの区切りを示すか否かは、後述するようにビットカウンタが8以上に達しているかどうかで判断する。
また、上記判定の結果、値1〜値8のいずれかを出力した場合には、さらに、以下の〔数式34〕に従って位相判定テーブルS(p)の更新を行う(S409)。
〔数式34〕
“状態1”であると判断し、値1を出力した場合、S(p)←S(p)+EC1+EC3
“状態2”であると判断し、値2を出力した場合、S(p)←S(p)+EC2+EC4
“状態3”であると判断し、値3を出力した場合、S(p)←S(p)+EC1+EC4
“状態4”であると判断し、値4を出力した場合、S(p)←S(p)+EC2+EC3
“状態5”であると判断し、値5を出力した場合、S(p)←S(p)+2・EC1
“状態6”であると判断し、値6を出力した場合、S(p)←S(p)+2・EC2
“状態7”であると判断し、値7を出力した場合、S(p)←S(p)+2・EC4
“状態8”であると判断し、値8を出力した場合、S(p)←S(p)+2・EC3
続いて、符号判定パラメータ算出手段140は、候補符号テーブルに、最適位相となる候補を保存する(S410)。具体的には、位相判定テーブルに記録されているS(p)の値が最大となる位相番号pの値、前記S407、S408により判定された9値のいずれかの符号、その音響フレームについての上記〔数式33〕に従った処理を実行することにより算出した、低周波数成分に対応するEC1+EC3、EC2+EC4、EC1+EC4、EC2+EC3、2・EC1、2・EC2、2・EC4、2・EC3のいずれかを最適位相の候補として候補符号テーブルに保存する。
続いて、全ての位相番号pに対応する処理を終えたかどうかを判定する(S411)。これは、ある基準フレームに対して全ての位相変更フレームの処理を行ったかどうかを判定している。本実施形態では、pが0〜5までの値をとるので、6回分処理していない場合は、処理していた音響フレームから所定サンプル数ずらして、位相の異なる音響フレームを設定し、S404に戻って処理を繰り返す。なお、p=0の場合が基準フレームであり、p=1〜5の場合が位相変更フレームである。全ての位相番号pに対応する処理を終えた場合は、候補保存テーブルに記録されている位相番号pに対応する位相が最適位相であると判定し、候補保存テーブルに記録されている符号を出力する(S412)。
再び図10のフローチャートに戻って説明する。S202による処理の結果、値1〜値8に相当する符号が出力された場合には、平均符号レベルのパラメータの更新処理を行う(S203)。具体的には、平均符号レベルHL1〜HL8算出の際の分子となる積算値v1〜v8に、それぞれEC1+EC3、EC2+EC4、EC1+EC4、EC2+EC3、2・EC1、2・EC2、2・EC4、2・EC3のいずれかを加算して積算値v1〜v8を更新し、分母となるフレーム数n1〜n8にそれぞれ1を加算してフレーム数n1〜n8を更新することにより行う。n1〜n8はあらかじめ設定したnmax(例えば100)を超えないように設定する。
続いて、非符号カウンタの初期化処理を行う(S204)。具体的には、上記S200の初期化処理における処理と同様、非符号カウンタNn=0と設定する。さらに、出力された値に対応する3ビットをバッファに保存する(S205)。次に、ビットカウンタを“3”だけカウントアップする(S206)。そして、S200の戻り、初期化処理を行う。
一方、S202による処理の結果、値0が出力された場合には、非符号カウンタのカウントアップ処理を行う(S207)。具体的には、非符号カウンタNnの値に1を加算する。そして、非符号カウンタNnの値がnmax以上である場合は、S200に戻って初期化処理を行う。非符号カウンタNnの値がnmax未満である場合は、ビットカウンタが8以上であるかどうかを判断し、8未満である場合は、値0は、ワードの区切りではなく埋め込みエラーを示す符号と判断し、現在のビットカウンタ値を維持してS201に戻って符号抽出処理を継続する。ビットカウンタが8以上である場合は、値0は、ワードの区切りを示すと判断できるので、バッファに記録された1ワード分のデータを、付加情報抽出手段160が出力する(S208)。そして、ビットカウンタを0に初期化する(S209)。図10に示す処理を各基準フレームに対して実行することにより、付加情報が抽出されることになる。S201において全ての基準フレームが抽出されたと判断された場合には、処理を終了する。
上記S208の処理において、付加情報抽出手段160は、まず、符号判定パラメータ算出手段140により出力された値のうち、値0を区切り位置として、その次の値を先頭と仮定して、各値に対応する3ビットまたは2ビットの値に対応させて、ビット配列を作成する。続いて、値0を抽出した際に、ビット配列のビットカウンタが8未満であれば、値0は埋め込みエラーを示すものと判断し、現状のビットカウンタの値を維持してビット配列の作成を継続する。ビット配列のビットカウンタが8以上であれば、値0はワード(1バイト)の区切りを示すものと判断し、ビット配列の最後の8ビットを、所定の規則により変換して意味のある付加情報として抽出する。ここで、8ビットを超える場合は、データの抽出処理を開始する直後に発生しやすく、値0を先頭と誤判断してビットカウンタを初期化した場合に発生する。所定の規則としては、情報を埋め込む者が意図した情報が受け取った者に認識可能な状態とできるものであれば、さまざまな規則が適用できるが、本実施形態では、文字情報として認識するための規則としている。すなわち、付加情報抽出手段160は、符号判定パラメータ算出手段140が判定し、符号出力手段150から出力される符号を1バイト(8ビット)単位で認識し、これを設定されたコード体系に従って文字情報を認識する。このようにして得られた文字情報は、表示装置(図示省略)の画面に表示出力される。
(2.3.信号成分が小さくても情報の埋め込みを可能とする手法)
ここまで、説明してきた処理においては、上記E1〜E4が所定値より大きいことが必要となり、上記E1〜E4が所定値以下の場合には、情報の埋め込みを行うことができない。そこで、元の信号の低周波成分が小さくても、信号の埋め込みを可能とする手法について説明する。
この場合、図3に示した埋め込み装置における情報の埋め込み処理は、図13のフローチャートに従って行われるが、E1〜E4がレベル下限値Lev以下となることがなくなるため、S105において低周波成分変更手段30がレベルの判定を行わない。これは、この処理では、信号レベルが小さくても強制的に情報を埋め込むこととしているため、情報の埋め込みが不可能な信号レベルが小さい部分が存在するかどうかを判断する必要がないからである。
したがって、S105における状態1〜状態8に設定する処理としては、まず、以下の〔数式35〕に従って算出される固定値Vを、低周波成分の強度として設定する。
〔数式35〕
V={0.5・Lev/(2P−6)}1/2
そして、状態1とする場合は、上記〔数式25〕に従った処理を実行した後、以下の〔数式36〕に従った処理を実行する。
〔数式36〕
j=m〜m+P−4、m+P〜m+2P−4の各成分に対して
Al´(1,j)=Al(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
状態2とする場合は、上記〔数式26〕に従った処理を実行した後、以下の〔数式37〕に従った処理を実行する。
〔数式37〕
j=m〜m+P−4、m+P〜m+2P−4の各成分に対して
Al´(3,j)=Al(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
状態3とする場合は、上記〔数式27〕に従った処理を実行した後、以下の〔数式38〕に従った処理を実行する。
〔数式38〕
j=m〜m+P−4の各成分に対して
Al´(1,j)=Al(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
j=m+P〜m+2P−4の各成分に対して
Al´(3,j)=Al(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
状態4とする場合は、上記〔数式28〕に従った処理を実行した後、以下の〔数式39〕に従った処理を実行する。
〔数式39〕
j=m〜m+P−4の各成分に対して
Al´(3,j)=Al(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
j=m+P〜m+2P−4の各成分に対して
Al´(1,j)=Al(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
状態5とする場合は、上記〔数式29〕に従った処理を実行した後、以下の〔数式41〕に従った処理を実行する。
〔数式40〕
j=m〜m+P−4の各成分に対して
Al´(1,j)=Al(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
状態6とする場合は、上記〔数式30〕に従った処理を実行した後、以下の〔数式41〕に従った処理を実行する。
〔数式41〕
j=m〜m+P−4の各成分に対して
Al´(3,j)=Al(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
状態7とする場合は、上記〔数式31〕に従った処理を実行した後、以下の〔数式42〕に従った処理を実行する。
〔数式42〕
j=m+P〜m+2P−4の各成分に対して
Al´(3,j)=Al(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
状態8とする場合は、上記〔数式32〕に従った処理を実行した後、以下の〔数式43〕に従った処理を実行する。
〔数式43〕
j=m+P〜m+2P−4の各成分に対して
Al´(1,j)=Al(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
〔数式36〕〜〔数式43〕により算出されたAl´、Bl´の値を、上記〔数式7〕におけるAl、Blに代えて用いると、E1〜E4=Levとなるため、S105において、Levとの大小関係の判断を行う必要が不要となる。
(3.第3の実施形態)
ここからは、第3の実施形態について説明する。第1の実施形態では、図2に示したように、音響フレームの低周波成分を4つの状態に変更し、2ビットの情報を埋め込むようにしたが、第3の実施形態では、図14、図15に示すように、音響フレームの低周波成分を16の状態に変更し、4ビットの情報を埋め込むことを特徴とする。
図14、図15に示す各音響フレームにおいても、図2と同様、横軸は時間方向、縦軸は周波数方向を示している。また、網掛けされた部分は、低周波成分が存在している部分を示し、網掛けが濃いほど成分強度が強いことを示している。第3の実施形態において、図14(a)に示すような原状態の低周波成分に対して、符号0を埋め込む場合、L-chの信号の低周波成分を全て除去し、除去した成分と同等の成分をR-chの信号の低周波成分に加算して図14(b)に示すような状態に変更する。図14、図15においては、縦軸の周波数方向において、周波数領域が7つに区分されている。これは、第1、第2の実施形態が上位低周波成分と下位低周波成分を利用して状態の変更を行うのに対して、第3の実施形態ではさらに中位低周波成分を利用して状態の変更を行うものであり、これにともなってギャップ領域も1つ増えるためである。すなわち、7つに区分された低周波成分のうち最上部と上から3番目、5番目、7番目がギャップ領域であり、上から2番目は上位低周波領域であり、上から4番目は中位低周波領域、上から6番目は下位低周波領域である。図14(b)に示すように、中位低周波領域の前部におけるスペクトルをSP1M、中位低周波領域の後部におけるスペクトルをSP3Mで表現することとする。また、スペクトルSP1MおよびSP3Mの上限周波数とスペクトルSP1UおよびSP3Uの下限周波数までのギャップ領域をG1M1およびG3M1、スペクトルSP1MおよびSP3Mの下限周波数とスペクトルSP1DおよびSP3Dの上限周波数までのギャップ領域をG1M2およびG3M2で表現することとする。
本実施形態で、符号1を埋め込む場合、図14(c)に示すように、L-chの信号の前部の上位低周波成分と中位低周波成分、後部の下位低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号の前部の下位低周波成分と後部の上位低周波成分と中位低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。符号2を埋め込む場合は、図14(d)に示すように、L-chの信号の前部の上位低周波成分と下位低周波成分、後部の中位低周波成分を除去し、除去した成分と同等の成分をR-chの信号に加算し、逆に、R-chの信号の前部の中位低周波成分、後部の上位低周波成分と下位低周波成分を除去し、除去した成分と同等の成分をL-chの信号に加算する。
符号3〜符号16を埋め込む場合も、同様にして、各領域の低周波成分の強度を図14(e)〜(j)、図15(a)〜(h)に示すように変更する処理を行う。
第3の実施形態では、図14(b)〜(j)、図15(a)〜(h)に示すような17個の状態に低周波成分を変更することにより、情報の埋め込みを行っている。17個の状態のうち、1つは、埋め込むことができない状態におけるエラー処理に用いるものであるので、実質埋め込むことができるのは16個の状態、すなわち、4ビットに相当する。
(3.1.埋め込み装置)
第3の実施形態においても、装置構成は図3に示したものと同様であるが、主に低周波成分変更手段30の内容が異なっている。具体的には、低周波成分変更手段30は、Aタイプの音響フレームについて、付加情報読込手段70が作成したビット配列に応じて、低周波成分の割合を変更する処理を行うが、第3の実施形態では、ビット配列を4ビットずつ読み込み、1音響フレームに対して4ビットの情報を埋め込む。埋め込まれる4ビットの値は、“0000”“0001”“0010”“0011” “0100”“0101”“0110”“0111” “1000”“1001”“1010”“1011” “1100”“1101”“1110”“1111”の16通りがある。第3の実施形態では、これらを値1〜値16と定義する。この際、“0000”〜“1111”の16通りのうち、いずれを値1〜値16と定義しても良い。抽出側において、埋め込み側で埋め込まれた4ビットの配列が特定できれば良いためである。したがって、この定義は、埋め込み側と抽出側で一致している必要がある。
そして、低周波成分変更手段30は、この値1〜値16に応じて、低周波成分を状態1〜状態16のいずれかに変更する。具体的には、まず、低周波成分変更手段30は、上記〔数式5〕により求めた左チャンネルの実部Al(1,j)、Al(3,j)、虚部Bl(1,j)、Bl(3,j)、右チャンネルの実部Ar(1,j)、Ar(3,j)、虚部Br(1,j)、Br(3,j)を利用して、以下の〔数式44〕により、合算値E1〜E6を算出する。この合算値E1〜E6は、第1の実施形態におけるものとは異なっている。上述のように、E1〜E6、EC1〜EC6、HL1〜HL16等の各変数は、各実施形態で独立しており、同一名の変数であっても、算出手法が異なる。ただし、本明細書で用いられる数式については、明細書全体を通じて統一されている。
〔数式44〕
E1=Σj=m,m+P-2{Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}
E2=Σj=m,m+P-2{Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}
E3=Σj=m+p,m+2P-2{Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}
E4=Σj=m+p,m+2P-2{Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}
E5=Σj=m+2p,m+3P-2{Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}
E6=Σj=m+2p,m+3P-2{Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}
上記〔数式44〕において、mは低周波数帯の下限の成分の番号、Mは低周波数帯の上限の成分の番号であり、P=(M−m)/3である。なお、Pが整数にならない場合、切捨て処理を行う。m=15、M=40と設定すると、P=8となる。上記〔数式44〕により算出されたE1〜E6は音響フレームの所定の範囲におけるスペクトル集合の成分強度の合算値を示すことになる。続いて、この合算値E1〜E6がレベル下限値Levより大きいかどうかの判定を行う。レベル下限値Levは、音響信号Xl(i)、Xr(i)の振幅最大値が1に正規化されており、M=40に設定されている場合、0.25に設定する。
E1、E4、E6がいずれもレベル下限値Levより大きく、埋め込むべき情報が“値1”である場合、以下の〔数式45〕に従った処理を実行することにより、低周波成分の状態を“状態1”、すなわち、図14(c)に示したような状態に変更する。ここで、E1、E4、E6がいずれもレベル下限値Levより大きいことを条件とするのは、E1、E4、E6は、それぞれ前部の下位低周波成分の強度、後部の中位低周波成分の強度、後部の下位低周波成分の強度に対応しており、図14(c)に示すように、“状態1”とする場合は、これらに所定の強度が必要とされるためである。
〔数式45〕
j=m〜m+P−2の各成分に対して
Al´(3,j)=0
Bl´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Ar´(1,j)=0
Br´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Al´(1,j)=Al(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・E(1,j)/{Al(1,j)2+Bl(1,j)2}1/2
j=m+P〜m+2P−2、m+2P〜m+3P−2の各成分に対して
Al´(1,j)=0
Bl´(1,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Ar´(3,j)=0
Br´(3,j)=0
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Al´(3,j)=Al(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・E(3,j)/{Al(3,j)2+Bl(3,j)2}1/2
上記〔数式45〕においては、j=m〜m+P−2においてAl´(3,j)、Bl´(3,j)を共に0とし、j=m+P〜m+2P−2、m+2P〜m+3P−2においてAl´(1,j)、Bl´(1,j)を共に0としている。これは、図14(c)の上段に示すように、L-chにおいて、SP3D、SP1U、SP1M内の各成分を0にすることを示しているが、“状態1”はSP1D、SP3U、SP3Mとの差を明確にすることができれば十分であるため、必ずしも0にする必要はなく、小さな値であれば良い。
同様にして、“値2”〜“値16”を埋め込む場合も、上記〔数式45〕と同様の規則に従った別の数式を実行することにより、低周波成分の状態を“状態2”〜“状態16”、すなわち、図14(d)〜(j)、図15(a)〜(h)に示したような状態に変更する。
上記のような処理を実行し、低周波成分の状態を“状態1”〜“状態16”に変更した場合、いずれの場合であっても、さらに以下の〔数式46〕に従った処理を実行し、最低周波数帯におけるギャップ領域G1D、G3D、中位低周波数帯と下位低周波数帯の間にギャップ領域G1M2、G3M2、上位低周波数帯と中位低周波数帯の間にギャップ領域G1M2、G3M2、上位低周波数帯の高周波側にギャップ領域G1U、G3Uを設ける。また、L-chにおいて時間的に中央となる部分については、全て除去する。
〔数式46〕
j=0〜m−1、m+P−1、m+2P−1、m+3P−1〜M−1の各成分に対して
Al´(1,j)=0
Bl´(1,j)=0
Al´(3,j)=0
Bl´(3,j)=0
E(1,j)={Al(1,j)2+Bl(1,j)2+Ar(1,j)2+Br(1,j)2}1/2
Ar´(1,j)=Ar(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
Br´(1,j)=Br(1,j)・E(1,j)/{Ar(1,j)2+Br(1,j)2}1/2
E(3,j)={Al(3,j)2+Bl(3,j)2+Ar(3,j)2+Br(3,j)2}1/2
Ar´(3,j)=Ar(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
Br´(3,j)=Br(3,j)・E(3,j)/{Ar(3,j)2+Br(3,j)2}1/2
j=0〜M−1の各成分に対して
Al´(2,j)=0
Bl´(2,j)=0
E(2,j)={Al(2,j)2+Bl(2,j)2+Ar(2,j)2+Br(2,j)2}1/2
Ar´(2,j)=Ar(2,j)・E(2,j)/{Ar(2,j)2+Br(2,j)2}1/2
Br´(2,j)=Br(2,j)・E(2,j)/{Ar(2,j)2+Br(2,j)2}1/2
埋め込まれる側の低周波成分の強度が小さすぎると、信号を変化させても、その変化を抽出側で検出することができない。そこで、このような場合には、付加情報が埋め込まれている音響フレームとの違いを明確にするため、上記〔数式13〕に従った処理を実行し、その低周波成分を除去し、“状態0”とする。これは、図14(b)に示すような状態である。
また、第3の実施形態においても第1、第2の実施形態と同様、低周波成分変更手段30は、Bタイプの音響フレームについては、上記〔数式14〕に従った処理を実行し、常にその低周波成分を除去する。低周波成分変更手段30により上記のような処理が行われたら、周波数逆変換手段40、改変音響フレーム出力手段50については、第1、第2の実施形態と同様の処理が行われる。
次に、第3の実施形態における音響信号に対する情報の埋め込み装置の処理の全体的な流れについて説明する。第3の実施形態においても、基本的な流れは、図10に示したフローチャートと同じである。しかし、第3の実施形態では、値1〜値16が出力されるため、各ステップにおいて実行される処理が若干異なっている。特に第1の実施形態と異なるのは、S103、105の部分である。第3の実施形態では、低周波成分変更手段30が、レジスタに保持された1ワードから4ビットを読み込む処理を行う(S103)。すなわち、第3の実施形態では、1ワードとしてレジスタに8ビットが保持されているため、常に4ビットずつ読み込まれる。
S104において音響フレーム読込手段10が音響フレームを読み込んだ後、周波数変換手段20および低周波成分変更手段30が、音響フレームの低周波成分の状態を“状態1”〜“状態16”のいずれかに変更する処理を行う(S105)。まず、第1の実施形態と同様、周波数変換手段20が、音響フレームに対して窓関数W(1,i)、W(2,i)、W(3,i)を用いて、上記〔数式5〕に従った処理を行って、フレームスペクトルを得る。
続いて、低周波成分変更手段30は、上記〔数式44〕によりE1〜E6を算出する。そして、付加情報読込手段70から受け取った値1〜値16に応じて上記〔数式45〕、または〔数式45〕と同様の規則に従った別の数式に従った処理を実行し、低周波成分の状態を“状態1”〜“状態16”のいずれかに変更する。
S105において、“状態1”〜“状態16”のいずれにも変更することができない場合は、低周波成分を“状態0”とする処理を行う(S106)。具体的には、上記〔数式13〕に従った処理を実行することになる。“状態1”〜“状態16” のいずれにも変更することができない場合とは、埋め込むべき値に対応する合算値のいずれかが、レベル下限値Lev以下となっている場合である。例えば、値1を埋め込む場合、E1、E4、E6がいずれもレベル下限値Levより大きい必要があるため、E1、E4、E6のいずれかがLev以下である場合は、S106に進むことになる。
上記〔数式13〕に従った処理を実行することにより、左チャンネルのフレームスペクトルの低周波数成分は、上位低周波領域前部のスペクトルSP1U、上位低周波領域後部のスペクトルSP3U、下位低周波領域前部のスペクトルSP1D、下位低周波領域後部のスペクトルSP3D全てにおいて、“0” で同一となる。なお、上記〔数式13〕においては、j=0〜M−1の各成分に対してAl´(j)=Bl´(j)=0としているが、抽出側において、“状態1”〜“状態16”のいずれでもないことを認識可能とすることを目的としているため、十分小さな値であれば、必ずしも0とする必要はない。また、必ずしも4つのスペクトル成分の値が同一である必要はなく、差が小さければ良い。
次に、第1、第2の実施形態と同様、周波数逆変換手段40が、上記S105、S106の処理により各窓成分のスペクトル集合間の割合が変更されたフレームスペクトルを周波数逆変換して改変音響フレームを得る処理を行う(S107)。
改変音響フレーム出力手段50は、得られた改変音響フレームを順次出力ファイルに出力する。こうして1つの音響フレームに対する処理を終えたら、状態0に設定した場合には、音響フレーム読込手段10が、次の音響フレームを読み込む(S104)。一方、状態1〜状態16のいずれかに設定した場合には、低周波成分変更手段30がビット配列中の次の4ビットを読み込む(S102)。以上のような処理を音響信号の両チャンネルの全サンプルに渡って実行していく。
(3.2.抽出装置)
第3の実施形態においても、装置構成は図9に示したものと同様であるが、主に符号判定パラメータ算出手段140の内容が異なっている。具体的には、符号判定パラメータ算出手段140は、生成されたフレームスペクトルから所定の周波数以下に相当する各低周波強度データを抽出し、各成分に対応した各低周波強度データの合算値EC1〜EC6を以下の〔数式47〕に基づいて算出し、この合算値EC1〜EC6を符号判定パラメータとし、この符号判定パラメータEC1〜EC6の比率等に基づいて、所定の状態であると判断する機能を有している。以下の〔数式47〕は上記〔数式44〕において右チャンネル成分を削除したものとなっている。
〔数式47〕
EC1=Σj=m,…,m+P-2{Al(1,j)2+Bl(1,j)2}
EC2=Σj=m,…,m+P-2{Al(3,j)2+Bl(3,j)2}
EC3=Σj=m+P,…,m+2P-2{Al(1,j)2+Bl(1,j)2}
EC4=Σj=m+P,…,m+2P-2{Al(3,j)2+Bl(3,j)2}
EC5=Σj=m+2P,…,m+3P-2{Al(1,j)2+Bl(1,j)2}
EC6=Σj=m+2P,…,m+3P-2{Al(3,j)2+Bl(3,j)2}
次に、第3の実施形態における音響信号からの情報の抽出装置の処理の全体的な流れについて説明する。第3の実施形態においても、基本的な流れは、図10に示したフローチャートと同じである。しかし、各ステップにおいて実行される処理が若干異なっている。
まず、本実施形態では、平均符号レベルHL1〜HL16、位相判定テーブルS(p)、非符号カウンタNnを初期化する(S200)。平均符号レベルHL1〜HL16の初期値は、第1、第2の実施形態と同様、0.1に設定されている。位相判定テーブルS(p)、非符号カウンタNnについても第1、第2の実施形態と同様である。
利用者が抽出装置に対して、抽出装置としての起動の指示を行うと、音響信号入力手段100が、流れている音楽を録音し、デジタル化してデジタル音響信号として入力する。続いて、基準フレーム獲得手段110が、音響信号入力手段100から入力された音響信号から、所定数のサンプルで構成される音響フレームを基準フレームとして抽出する(S201)。
続いて、周波数変換手段130、符号判定パラメータ算出手段140が、読み込んだ各音響フレームから、埋め込まれている情報を判定し、対応する符号を出力する(S202)。出力される情報の形式は、付加情報が埋め込まれる場合に対応する値1〜値16の16値、および値0の計17値の形式となる。
ステップS202の符号判定処理の詳細については、図11のフローチャートと同様となる。まず、周波数変換手段130が、第1の実施形態と同様、周波数変換を行った後(S401)、符号判定パラメータ算出手段140は、平均符号レベルHL1〜HL16の算出を行う(S402)。具体的には、過去“状態k(k=1〜16)”であると判断された音響フレームについてのEGkの積算値であるvkを、過去“状態1”であると判断された音響フレームの数であるnkで除算することによりHLkを算出する。
続いて、符号判定パラメータ算出手段140は、候補符号テーブルの初期化を行う(S403)。候補符号テーブルには、1つの基準フレームおよび5個の位相変更フレームを特定する0〜5の位相番号および、この6個の音響フレームの状態から得られる17値の符号を記録する。
続いて、符号判定パラメータ算出手段140は、合算値EC1〜合算値EC6を用いて、低周波成分の状態がどのような状態であるか、すなわち、4ビットの値としてどのような値が埋め込まれていたかを判断する処理を行う(S404)。具体的には、まず、判断のための総和値EGk(k=1〜16)を以下の〔数式48〕に従って算出し、このうちEGkが最大となるkを求める。
〔数式48〕
EG1=EC1+EC4+EC6 EG2=EC6+EC3+EC6
EG3=EC2+EC4+EC5 EG4=EC1+EC4+EC5
EG5=EC1+EC4+EC5 EG6=EC1+EC3+EC6
EG7=EC1+EC3+EC5 EG8=EC2+EC4+EC6
EG9=EC1+EC2+EC3 EG10=EC1+EC2+EC4
EG11=EC1+EC3+EC4 EG12=EC2+EC3+EC4
EG13=EC3+EC4+EC5 EG14=EC3+EC4+EC6
EG15=EC3+EC5+EC6 EG16=EC4+EC5+EC6
これにより値kが仮決定される。続いて、仮決定されたkの値に応じて以下の16群のうち、いずれかの群の判定処理を実行し、各群における全ての条件を満たす場合に、仮決定されていたkを値kとして出力する(S407)。
k=1の場合、EC1>0.0005・HL1、かつEC4>0.0005・HL4、かつEC6>0.0005・HL6、かつEC1>2・EC2、かつEC4>2・EC3、かつEC6>2・EC5であれば、値1を出力する。
k=2の場合、EC2>0.0005・HL2、かつEC3>0.0005・HL3、かつEC6>0.0005・HL6、かつEC2>2・EC1、かつEC3>2・EC4、かつEC6>2・EC5であれば、値2を出力する。
k=3の場合、EC2>0.0005・HL2、かつEC4>0.0005・HL4、かつEC5>0.0005・HL5、かつEC2>2・EC1、かつEC4>2・EC3、かつEC5>2・EC6であれば、値3を出力する。
k=4の場合、EC2>0.0005・HL2、かつEC3>0.0005・HL3、かつEC5>0.0005・HL5、かつEC2>2・EC1、かつEC3>2・EC4、かつEC5>2・EC6であれば、値4を出力する。
k=5の場合、EC1>0.0005・HL1、かつEC4>0.0005・HL4、かつEC5>0.0005・HL5、かつEC1>2・EC2、かつEC4>2・EC3、かつEC5>2・EC6であれば、値5を出力する。
k=6の場合、EC1>0.0005・HL1、かつEC3>0.0005・HL3、かつEC6>0.0005・HL6、かつEC1>2・EC2、かつEC3>2・EC4、かつEC6>2・EC5であれば、値6を出力する。
k=7の場合、EC1>0.0005・HL1、かつEC3>0.0005・HL3、かつEC5>0.0005・HL5、かつEC1>2・EC2、かつEC3>2・EC4、かつEC5>2・EC6であれば、値7を出力する。
k=8の場合、EC2>0.0005・HL2、かつEC4>0.0005・HL4、かつEC6>0.0005・HL6、かつEC2>2・EC1、かつEC4>2・EC3、かつEC6>2・EC5であれば、値8を出力する。
k=9の場合、EC1>0.0005・HL1、かつEC2>0.0005・HL2、かつEC3>0.0005・HL3、かつEC1>2・EC6、かつEC2>2・EC5、かつEC3>2・EC4であれば、値9を出力する。
k=10の場合、EC1>0.0005・HL1、かつEC2>0.0005・HL2、かつEC4>0.0005・HL4、かつEC1>2・EC6、かつEC2>2・EC5、かつEC4>2・EC3であれば、値10を出力する。
k=11の場合、EC1>0.0005・HL1、かつEC3>0.0005・HL3、かつEC4>0.0005・HL4、かつEC1>2・EC2、かつEC3>2・EC6、かつEC4>2・EC5であれば、値11を出力する。
k=12の場合、EC2>0.0005・HL2、かつEC3>0.0005・HL3、かつEC4>0.0005・HL4、かつEC2>2・EC1、かつEC3>2・EC6、かつEC4>2・EC5であれば、値12を出力する。
k=13の場合、EC3>0.0005・HL3、かつEC4>0.0005・HL4、かつEC5>0.0005・HL5、かつEC3>2・EC2、かつEC4>2・EC1、かつEC5>2・EC6であれば、値13を出力する。
k=14の場合、EC3>0.0005・HL3、かつEC4>0.0005・HL4、かつEC6>0.0005・HL6、かつEC3>2・EC2、かつEC4>2・EC1、かつEC6>2・EC5であれば、値14を出力する。
k=15の場合、EC3>0.0005・HL3、かつEC5>0.0005・HL5、かつEC6>0.0005・HL6、かつEC3>2・EC4、かつEC5>2・EC1、かつEC6>2・EC2であれば、値15を出力する。
k=16の場合、EC4>0.0005・HL4、かつEC5>0.0005・HL5、かつEC6>0.0005・HL6、かつEC4>2・EC3、かつEC5>2・EC2、かつEC6>2・EC1であれば、値16を出力する。
符号判定パラメータ算出手段140は、各音響フレーム単位で、上記判定結果に応じて値1〜値16のいずれかを出力する(S407)。上記いずれの群の条件も満たさない場合は、“状態0”であると判断し、値0を出力する(S408)。
また、上記判定の結果、値1〜値16のいずれかを出力した場合には、さらに、以下の〔数式49〕に従って位相判定テーブルS(p)の更新を行う(S409)。
〔数式49〕
“状態k”であると判断し、値kを出力した場合
S(p)←S(p)+EGk/3
続いて、符号判定パラメータ算出手段140は、候補符号テーブルに、最適位相となる候補を保存し(S410)、全ての位相番号pに対応する処理を終えたかどうかを判定する(S411)。全ての位相番号pに対応する処理を終えた場合は、候補保存テーブルに記録されている位相番号pに対応する位相が最適位相であると判定し、候補保存テーブルに記録されている符号を出力する(S412)。
再び図10のフローチャートに戻って説明する。S202による処理の結果、値1〜値16に相当する符号が出力された場合には、平均符号レベルのパラメータの更新処理を行う(S203)。具体的には、平均符号レベルHL1〜HL16算出の際の分子となる積算値v1〜v16に、それぞれEG1〜EG16を加算して積算値v1〜v16を更新し、分母となるフレーム数n1〜n16にそれぞれ1を加算してフレーム数n1〜n16を更新することにより行う。n1〜n16はあらかじめ設定したnmax(例えば100)を超えないように設定する。
続いて、非符号カウンタの初期化処理を行う(S204)。さらに、出力された値に対応する4ビットをバッファに保存する(S205)。次に、ビットカウンタを“4”だけカウントアップする(S206)。そして、S200の戻り、初期化処理を行う。
一方、S202による処理の結果、値0が出力された場合には、非符号カウンタのカウントアップ処理を行う(S207)。具体的には、非符号カウンタNnの値に1を加算する。そして、非符号カウンタNnの値がnmax以上である場合は、S200に戻って初期化処理を行う。非符号カウンタNnの値がnmax未満である場合は、ビットカウンタが8以上であるかどうかを判断し、8未満である場合は、値0は、ワードの区切りではなく埋め込みエラーを示す符号と判断し、現在のビットカウンタ値を維持してS201に戻って符号抽出処理を継続する。ビットカウンタが8以上である場合は、値0は、ワードの区切りを示すと判断できるので、バッファに記録された1ワード分のデータを、付加情報抽出手段160が出力する(S208)。そして、ビットカウンタを0に初期化する(S209)。図10に示す処理を各基準フレームに対して実行することにより、付加情報が抽出されることになる。S201において全ての基準フレームが抽出されたと判断された場合には、処理を終了する。
上記S208の処理において、付加情報抽出手段160は、まず、符号判定パラメータ算出手段140により出力された値のうち、値0を区切り位置として、その次の値を先頭と仮定して、各値に対応する4ビットの値に対応させて、ビット配列を作成する。続いて、値0を抽出した際に、ビット配列のビットカウンタが8未満であれば、値0は埋め込みエラーを示すものと判断し、現状のビットカウンタの値を維持してビット配列の作成を継続する。ビット配列のビットカウンタが8以上であれば、値0はワード(1バイト)の区切りを示すものと判断し、ビット配列の最後の8ビットを、所定の規則により変換して意味のある付加情報として抽出する。ここで、8ビットを超える場合は、データの抽出処理を開始する直後に発生しやすく、値0を先頭と誤判断してビットカウンタを初期化した場合に発生する。所定の規則としては、情報を埋め込む者が意図した情報が受け取った者に認識可能な状態とできるものであれば、さまざまな規則が適用できるが、本実施形態では、文字情報として認識するための規則としている。すなわち、付加情報抽出手段160は、符号判定パラメータ算出手段140が判定し、符号出力手段150から出力される符号を1バイト(8ビット)単位で認識し、これを設定されたコード体系に従って文字情報を認識する。このようにして得られた文字情報は、表示装置(図示省略)の画面に表示出力される。
(3.3.信号成分が小さくても情報の埋め込みを可能とする手法)
ここまで、説明してきた処理においては、上記E1〜E6が所定値より大きいことが必要となり、上記E1〜E6が所定値以下の場合には、情報の埋め込みを行うことができない。そこで、元の信号の低周波成分が小さくても、信号の埋め込みを可能とする手法について説明する。
この場合、図3に示した埋め込み装置における情報の埋め込み処理は、図11のフローチャートに従って行われるが、E1〜E6がレベル下限値Lev以下となることがなくなるため、S105において低周波成分変更手段30がレベルの判定を行わない。これは、この処理では、信号レベルが小さくても強制的に情報を埋め込むこととしているため、情報の埋め込みが不可能な信号レベルが小さい部分が存在するかどうかを判断する必要がないからである。
したがって、S105における状態1〜状態16に設定する処理としては、まず、以下の〔数式50〕に従って算出される固定値Vを、低周波成分の強度として設定する。
〔数式50〕
V={0.25・Lev/(3P−3)}1/2
そして、状態1とする場合は、上記〔数式45〕に従った処理を実行した後、以下の〔数式51〕に従った処理を実行する。
〔数式51〕
j=m〜m+P−2の各成分に対して
Al´(1,j)=Al(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
Bl´(1,j)=Bl(1,j)・V/{Al(1,j)2+Bl(1,j)2}1/2
j=m+P〜m+2P−2、m+2P〜m+3P−2の各成分に対して
Al´(3,j)=Al(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
Bl´(3,j)=Bl(3,j)・V/{Al(3,j)2+Bl(3,j)2}1/2
状態2〜状態16とする場合についても、〔数式51〕に類似の数式に従った処理を実行する。
(5.その他)
以上、本発明の好適な実施形態について限定したが、本発明は上記実施形態に限定されず、種々の変形が可能である。例えば、上記第1、第2の実施形態では、低周波領域を上位低周波領域と下位低周波領域の2つに分け、4つの周波数成分の状態を変更して4つの状態、8つの状態を生成するようにし、上記第3の実施形態では、低周波領域を上位低周波領域、中位低周波領域、下位低周波領域の3つに分け、6つの周波数成分の状態を変更して16の状態を生成するようにし、各状態に値(符号)を割り当てることにより、情報を埋め込むようにしたが、低周波領域を4以上の低周波領域に分け、8以上の周波数成分の状態を変更してより多数の状態を生成することにより、1音響フレームに5ビット以上の情報を埋め込むようにしても良い。