しかしながら、符号化段階でパケットロス遮蔽を実現する方法、たとえば、特許文献1の技術においては、現時点で広く普及している符号化方法を変更する必要があると言う問題がある。
また、通信段階でパケットロス遮蔽を実現する方法、たとえば、特許文献2の技術においても、現時点で広く普及している通信方法を変更する必要があると言う問題がある。また、しばしば起こるバースト誤りに対応するためには、データのインターリーブなどによる遅延の発生や、非常の多くの誤り訂正符号の付加による通信データ量の増大を引き起こすと言う問題がある。
なお、本発明はデータ再生装置およびデータ再生方法の発明であり、再生段階でパケット遮蔽を実現しようとするものであるため、これら特許文献1、特許文献2の技術は直接関係するものではない。
一方、再生段階でパケットロス遮蔽を実現する技術、たとえば、非特許文献1の技術においては、欠落直前の同じ波形を繰り返し用いることにより、再生されるデータが人工的な感じを与えると言う問題がある。これは、再生済みデータを記憶するためのメモリ量を少なくするという要求、また、計算量を少なくするという要求に起因するものである。
これに対し、同じく再生段階でパケットロス遮蔽を実現する技術としての特許文献3は、このメモリ量、計算量の削減についての要求への対処よりも、再生される音の自然さを目指したものである。
これは、直前の同一の周期信号を繰り返し用いると言うような人工的なことをせず、テンプレートに類似する部分を再生済み区間の中からパタンマッチングにより検索し、類似した部分が発見された場合は、それに連続するデータを用いて欠落した部分を補償するという方法を採用することによって、再生音の自然さの実現を可能としたものである。
しかし、この特許文献3の技術は高品質な再生音を得ることができるものの、ある程度大きなメモリ中に再生済みデータを記録し、その中から、欠落部分を補償し得るデータを見つける動作を行うものであることから、メモリ量もある程度の大きさが必要である。また、メモリに保存されている再生済み区間について逐次的にパタンマッチングして行くため、計算負荷も当然のことながら大きいものとなる。なお、メモリに保存されている再生済み区間が長いほど、欠落部分を補償し得るに適したデータを見つけ易くなるが、その分だけ計算量は多くなる。
確かに、最近ではメモリICの小型かつ大容量化などが実現されており、このことを考えれば、メモリ量に対する制限は大きな問題ではないが、長い再生済みデータ区間に対する逐次的なパタンマッチング処理は大きな計算量を必要とし、より高速で高性能なCPUなどを必要とする。また、それは同時に大きな電力を要求することになる。したがって、大きな計算量は供給可能な電力量に制限のある電池駆動などの携帯機器においては大きな問題となる。
本発明は、少ない演算量でパケットロスによるデータ欠落の補償を可能とすることで、供給可能な電力量やCPUの処理の能力の制限が大きい携帯用機器に最適なデータ再生装置およびデータ再生方法を提供することを目的とする。
(1)本発明のデータ再生装置は、データ欠落を検出するデータ欠落検出手段と、このデータ欠落検出手段によりデータ欠落が検出されると、このデータ欠落によって生じたデータ欠落区間の直前に存在する所定区間の波形をキーデータとし、再生済みデータ中の前記キーデータに対応する波形位置を指示する波形位置指示手段と、この波形位置指示手段で指示される前記再生済みデータ中の波形位置の波形と前記キーデータとの類似度を求め、求められた類似度に基づいて前記再生済みデータ中に前記キーデータに対する類似波形が存在するか否かを判定する類似波形判定手段と、この類似波形判定手段により類似波形が存在すると判定された場合は、その類似波形に続く所定区間の波形で前記データ欠落区間を補償するデータ補償手段とを含むことを特徴としている。
このように、データ欠落した区間の直前の波形をキーデータとし、そのキーデータに対応する波形が再生済みデータのどの波形位置にあるかの見当をつけて、その見当をつけた再生済みデータの波形位置の波形との類似度を求めるようにしているので、類似度を求める際、キーデータを再生済みデータの全区間に渡って、サンプリング点ごとにずらしながら逐次的な類似度計算を行う必要がなくなり、類似度を求めるための計算量を大幅に削減することができる。これによって、供給電力量やCPUの処理能力に大きな制限のある携帯機器などに適したパケットロス遮蔽を実現することができる。
(2)前記(1)におけるデータ再生装置において、前記波形位置指示手段は、前記再生済みデータの波形位置を各エントリごとに記憶する波形位置記憶手段と、前記キーデータを前記波形位置記憶手段のエントリに対応するインデクス値に変換するインデクス値変換手段とを有している。
この波形位置指示手段は、いわゆるハッシュ法の考え方を用いたものであり、波形位置記憶手段はハッシュ表に対応し、インデクス変換手段はハッシュ関数に対応するものである。このようなハッシュ法の考え方を採用することによって、キーデータに対応する波形が再生済みデータの位置のどの波形位置に対応するかの見当をつけることができる。これによって、キーデータに類似する波形が再生済みデータ中のどこにあるかを見つける場合、キーデータと対応つけられた再生済みデータ中の波形との類似度を求めればよいので、再生済みデータの全区間に渡ってサンプリング点ごとにずらして逐次的に行う場合に比べて、演算量を大幅に削減することができる。
(3)前記(1)または(2)記載のデータ再生装置において、前記波形位置指示手段で指示される前記再生済みデータ中の波形位置の波形と前記キーデータとの類似度を求める際は、前記再生済みデータ中の波形位置の波形を含む所定長さの区間と前記キーデータを含む所定長さの区間との類似度を求めることが好ましい。
これによって、より適切な類似度を求めることができ、求められた類似度に基づいて類似波形が存在すると判定された場合、その類似波形に続く所定区間の波形を用いて前記データ欠落区間を補償することで、データ欠落区間を適切に補償することができる。
(4)前記(1)から(3)のいずれかのデータ再生装置において、前記データ欠落区間の直前に存在する所定区間の波形に近似した少なくとも1つの近似波形を生成する近似波形生成手段を設け、前記データ欠落区間の直前に存在する所定区間の波形に加えて前記近似波形生成手段で生成された近似波形をキーデータとして用いることが好ましい。
このように、再生済みデータから所定区間ごとに切り出された切り出し波形だけではなく、この切り出された波形に近似する少なくとも1つの近似波形もキーデータとして用いるようにしている。これによって、再生済みデータの中からデータ欠落した区間直前の波形と類似する波形を検索する際、検索漏れを少なくすることができ、データ欠落区間の補償処理を効率よく高速に行うことができる。
(5)前記(4)のデータ再生装置において、前記データ欠落区間の直前に存在する所定区間の波形に加えて前記近似波形生成手段で生成された近似波形をキーデータとして用いる場合、これらそれぞれのキーデータに対して前記波形位置指示手段で指示される前記再生済みデータ中の波形と前記それぞれのキーデータとの類似度を求め、求められたそれぞれの類似度のうち最大の類似度が得られた前記再生済みデータ中の波形を類似波形としている。
これによって、データ欠落した区間直前の波形と最も類似した波形を見つけることができ、その波形に続く波形を補償データとすることで、データ欠落区間を適切な波形で補償することができる。
(6)本発明のデータ再生方法は、データ欠落を検出するデータ欠落間検出ステップと、このデータ欠落検出ステップによりデータ欠落が検出されると、このデータ欠落によって生じたデータ欠落区間の直前に存在する所定区間の波形をキーデータとし、再生済みデータ中の前記キーデータに対応する波形位置を指示する波形位置指示ステップと、この波形位置指示ステップで指示される前記再生済みデータ中の波形位置の波形と前記キーデータとの類似度を求め、求められた類似度に基づいて前記再生済みデータ中に前記キーデータに対する類似波形が存在するか否かを判定する類似度判定ステップと、この類似波形判定手段により類似波形が存在すると判定された場合は、その類似波形に続く所定区間の波形で前記データ欠落区間を補償するデータ補償ステップとを含むことを特徴としている。
これによっても前述の(1)と同様の効果が得られる。また、この(6)に記載のデータ再生方法においても、前記波形位置指示ステップで指示される前記再生済みデータ中の波形位置の波形と前記キーデータとの類似度を求める際は、前記再生済みデータ中の波形位置の波形を含む所定長さの区間と前記キーデータを含む所定長さの区間との類似度を求めることが好ましい。
また、この(6)に記載のデータ再生方法において、前記データ欠落区間の直前に存在する所定区間の波形に加えてその波形に近似した近似波形をキーデータとして用いることもできる。さらに、前記近似波形をキーデータとして用いる場合、これらそれぞれのキーデータに対して前記波形位置指示ステップで指示される前記再生済みデータ中の波形と前記それぞれのキーデータとの類似度を求め、求められたそれぞれの類似度のうち最大の類似度が得られた前記再生済みデータ中の波形を類似波形とする。
本発明の他方のデータ再生装置法は、データ欠落を検出するデータ欠落検出手段と、このデータ欠落検出手段によりデータ欠落が検出されると、このデータ欠落によって生じたデータ欠落区間の直前に存在する所定区間の周波数特性と再生済みデータの各区間の周波数特性との類似度を求め、求められた類似度に基づいて前記再生済みデータ中に前記データ欠落区間の直前に存在する所定区間の波形と類似する類似波形が存在するか否かを判定する類似波形判定手段と、この類似波形判定手段により類似波形が存在するとされた場合は、その類似波形に続く所定区間の波形で前記データ欠落区間を補償するデータ補償手段とを含むことを特徴としている。
これは前述の(1)の発明に対し、データ欠落区間直前の所定区間のデータと再生済みデータのある位置のデータとの類似度を求める際、それぞれの周波数特性の類似度を求めるものである。
このように、周波数特性を求める単位としては、音声データの場合、たとえば、10ミリ秒から30ミリ秒(80サンプルから240サンプル)程度というように比較的長い時間である。このため、処理対象となる再生済みデータの全区間について類似度判定処理を行っても、類似度判定処理に必要な演算量は、携帯機器などに用いられる処理能力の低いCPUでも十分対応することができる。
また、処理対象となる再生済みデータの全区間に対して類似度を求めることで、切り出された波形に最も類似した波形を逃すことなく取得することができ、それによって、より一層、適切なデータ欠落区間の補償が可能となる。
(8)本発明の他方のデータ再生方法は、データ欠落を検出するデータ欠落検出ステップと、このデータ欠落検出ステップによりデータ欠落が検出されると、このデータ欠落によって生じたデータ欠落区間の直前に存在する所定区間の周波数特性と再生済みデータの各区間の周波数特性との類似度を求め、求められた類似度に基づいて前記再生済みデータ中に前記データ欠落区間の直前に存在する所定区間の波形と類似する類似波形が存在するか否かを判定する類似波形判定ステップと、この類似波形判定ステップにより類似波形が存在するとされた場合は、その類似波形に続く所定区間の波形で前記データ欠落区間を補償するデータ補償ステップとを含むことを特徴としている。
これによっても(7)と同様の効果を得ることができる。
〔実施形態1〕
図1から図8は本発明の実施形態1を説明するものである。以下にこれらの図を用いて、本発明の実施形態1を詳細に説明する。
図1は本発明のデータ再生装置の実施形態1のブロック図である。また、図2は実施形態1の動作を示すフローチャートである。また、この実施形態1および後に説明する実施形態2では音声データを再生する場合を例にとって説明する。なお、以下では音声データを単にデータという。
データ受信手段1により受信されたデータは、データ復号化手段2と、データ欠落検出手段3に送られる。このデータ欠落検出手段3でデータ欠落(以下ではパケットロスという)が検出されなければ、データ復号化手段2により復号化されたデータは、データ補償手段4の構成要素の1つである補償データ挿入手段41を通過(補償データ挿入処理がなされずにそのまま通過)してデータ出力手段5に送られてこのデータ出力手段5から出力される。
また、このデータ出力手段5から出力される出力データは再生済みデータ更新手段6と波形位置更新手段7に送られ、再生済みデータ更新手段6によって再生済みデータ記憶手段8の記憶内容が更新され、波形位置更新手段7によって波形位置指示手段9の構成要素の1つである波形位置記憶手段91の記憶内容が更新される。この再生済みデータ記憶手段8と波形位置記憶手段91の更新処理については後述する。
一方、データ欠落検出手段3でパケットロスが検出された場合は、図2に示すステップS2以降の処理がなされる。すなわち、図2において、パケットロスが検出されたか否かの判断において(ステップS1)、パケットロスが検出されると、処理対象となっている受信データからそのパケットロスによるデータ欠落区間(パケットロス区間という)の直前に存在する所定区間の波形が、データ切り出し手段10により切り出される(ステップS2)。
そして、この切り出された波形に基づいて、近似波形生成手段11は、その切り出された波形に近似する少なくとも1つの近似波形を生成する(ステップS3)。このステップS2の波形の切り出しと、ステップS3の近似波形生成の処理について図3により説明する。
図3において、(A)に示すような受信データにおける図示のハッチングを施した区間がパケットロス区間であるとすると、このパケットロス区間の直前の所定区間(図中の太線Cで示す)の波形がデータ切り出し手段10により切り出される。
近似波形生成手段11は、この切り出された波形D1に基づいて少なくとも1つの近似波形を生成する。なお、この図3の例では3つの近似波形D11,D12,D13(図示、破線で示される波形は切り出された波形D1を示している)が生成された例が示されている。
このように、近似波形生成手段11で生成された複数の近似波形とデータ切り出し手段10で切り出された波形は、図1に示すように、キーデータとして波形位置指示手段9の構成要素の1つであるインデクス変換手段92に与えられる。
波形位置指示手段9は、入力された個々のキーデータに対し、再生済みデータ記憶手段8に記憶されている再生済みデータ中の個々のキーデータに対応する波形位置を指示するものである。
すなわち、波形位置記憶手段91の各エントリのデータは、再生済みデータ記憶手段8に記憶された再生済みデータの波形位置を指し示すものであり、インデクス変換手段92は、入力された個々のキーデータに対し、波形位置記憶手段91のエントリに対応するインデクス値に変換するもので、これらインデクス変換手段92と波形位置記憶手段によって、あるキーデータに対応する波形が再生済みデータ中のどの波形位置に存在するかを指示するデータを得ることができる。
これはハッシュ法と同等の考え方であり、インデクス変換手段92はハッシュ関数に対応するもので、個々のキーデータを構成する信号列に対するハッシュ値を求めるのと同じ考えである。また、波形位置記憶手段91はハッシュ表であるといえる。この処理を図4によって具体的に説明する。
図4に示す各種波形素片は、再生済みデータ記憶手段8に記憶されている再生済みデータから可能な限り切り出されたもので、これら各波形素片をキーデータとする。そして、これらキーデータはインデクス変換手段92によりインデクス値が計算され、このインデクス値により選択される波形位置記憶手段91のエントリには再生済みデータ記憶手段8に記憶されている再生済みデータの波形位置を指し示すデータ(波形位置指示データという)が記述されている。
たとえば、キーデータDaはインデクス変換手段92によってインデクス値が計算され、そのインデクス値によって波形位置記憶手段91のエントリEmが選択されたとする。この波形位置記憶手段91のエントリEmには再生済みデータ記憶手段8中の対応する波形位置を指し示す波形位置指示データが記述されており、この波形位置指示データによって、キーデータDaは再生済みデータ記憶手段8のある位置(たとえばPmの位置)の波形に対応つけることができる。
ただし、キーデータとなる各波形の取り得る波形の種類よりも、波形位置記憶手段91のエントリ数の方が少ないのが一般的であり、個々のキーデータと波形位置記憶手段91のそれぞれのエントリは1対1の対応とならないため、複数のキーデータ間で波形位置記憶手段91のエントリが重複する場合が生じる。このため、個々のキーデータに対して波形位置記憶手段91により指し示される波形位置指示データがそのキーデータに対して適正な波形位置とならない場合もある。
これはハッシュ表の衝突と同じことである。たとえば、図4において、キーデータDbがインデクス変換手段92によって波形位置記憶手段91のエントリEnに対応するインデクスに変換されたとする。
この波形位置記憶手段91のエントリEnに記述された再生済みデータ記憶手段8中の波形位置を指し示す波形位置指示データは、図示の破線で示すように、再生済みデータ記憶手段8のたとえばPnの波形位置である。したがって、キーデータDbはこの波形位置Pnに対応つけられる。しかし、これはキーデータDbに対して適切なインデクスに変換できなかった例、つまり、ハッシュ表の衝突が起こった場合であり、この例では、波形位置記憶手段91によって指し示される波形位置Pnの波形はキーデータDbとは明らかに異なった波形である。
なお、キーデータとなる波形の長さは、5から6サンプル程度が望ましい。つまり、長すぎる波形は、より多くの波形を同一のインデクスへ変換する確率が高くなり、その結果、衝突の確率も高くなるからである。逆に短すぎる波形は、のちに説明する類似度判定により、波形全体としての類似性が小さくなる確率が高くなるからである。
図1および図2に説明が戻る。すでに説明したように、データ欠落検出手段3によりパケットロスが検出されることによって(ステップS1)、データ切り出し手段10によりパケットロス区間直前の所定区間の波形が切り出され(ステップS2)、この切り出された波形から近似波形の生成がなされると(ステップS3)、次の処理として、ステップS4〜S6のループ処理、すなわち、インデクス変換手段92と波形位置記憶手段91を用いた各キーデータの再生済みデータへの対応付け処理(図4参照)と、対応つけられた各再生済みデータ中の波形と各キーデータとの類似度計算処理が行われる。
具体的には、図3で説明したように、切り出された波形D1と複数(この実施形態では3つ)の近似波形D11,D12,D13のうち1つを選択し、その選択された1つのキーデータに対し、波形位置記憶手段91のエントリに対応するインデクス値をインデクス変換手段92が計算し(ステップS5)、そのインデクス値により選択される波形位置記憶手段91のエントリに記述された波形位置指示データで指示される再生済みデータの波形位置の波形(類似度計算対象波形という)と当該キーデータとの類似度を計算してその類似度を記憶する(ステップS6)。
そして、処理対象のすべてのキーデータ(切り出された波形D1とその波形D1に基づいて生成された近似波形D11,D12,D13)について処理が終了したかを判定し(ステップS4)、処理が終了していなければ、次のキーデータについてステップS5,S6の処理を行う。
また、すべてのキーデータについて処理が終了していれば、ステップS6で求められた各キーデータに対する類似度のうち、最大の類似度を選択する(ステップS7)。そして、ステップS7で得られた最大の類似度が所定値以上かを判定する(ステップS8)。この判定の結果、最大の類似度が所定値以上であれば、その最大の類似度を有する類似度計算対象波形を類似波形とし、その類似波形に続く所定区間の再生済みデータをパケットロス区間を補償し得る補償データ区間として順次切り出し、その切り出された補償データ区間をパケットロス区間に順次コピーすることでパケットロス区間を補償する(ステップS9)。
一方、ステップS8において、最大の類似度が所定値未満であると判定された場合は、パケットロス区間を同程度のパワーを持つ雑音で埋める(ステップS10)。また、このパケットロス区間を無音として処理することも可能である。
なお、上述のステップS6からステップS8の処理は類似波形判定手段12が行うもので、ステップS9とステップS10はデータ補償手段4の補償データ生成手段42と補償データ挿入手段41が行うものである。なお、類似波形判定手段12が類似度計算を行う場合、その類似度計算を行うデータの長さは、キーデータの長さと同じである必要はない。
ところで、類似波形判定手段12が行う類似度の計算は、
のような自乗誤差を基本としたものが考えられる。ここで、Xiはキーデータを構成する要素とし、Yiは再生済みデータ中の類似度計算対象波形を構成する要素とする。なお、(1)式においては、振幅の影響を除外するために、振幅の正規化を行っている。この(1)式は誤差を表すものであるため、求められたErr(誤差)の値が小さいほど、データは類似していると言うことになる。
この(1)式の自乗を展開し、定数項を除外し、符号を反転させると、以下の式を得る。
この(2)式は(1)式と異なり、求められた値(Sim)が大きいほど誤差が小さいと言うことでなる。つまり、この(2)式のSimは類似度を表すものであり、この実施形態1では、この(2)式を類似度を求める式として用いる。また、この(2)式における分母のXiの自乗の項は類似度判定における定数となるので、
のような式を用いることも可能である。さらに、分母のYiの自乗の項は、キーデータに依存しない定数となるため、予め計算しておくことも可能である。
類似波形判定手段12は、上述の(2)式または(3)式によって得られた類似度に基づいて、最大の類似度が得られた区間がどこであるかの判定をおこなうとともに、その最大の類似度が所定値以上か否かを判定する。
また、補償データ生成手段42は、類似波形判定手段12からの判定結果、すなわち、最大の類似度が得られた類似波形が再生済みデータ中のどこであるかの判定結果と、その最大の類似度が所定値以上か否かの判定結果を受け取る。そして、最大の類似度が所定値以上である場合には、その最大の類似度を有する類似波形に続く所定区間の波形を、パケットロス区間を補償し得る補償データ区間とし、その補償データ区間の波形に対して振幅調整を行うといった補償データ生成処理を行う。
補償データ生成手段42によってこのような補償データ生成処理がなされると、補償データ挿入手段41は、補償データ生成手段42によって生成された補償データをパケットロス区間にコピーする。
図5は類似波形判定手段12が行う類似波形定処理、図6は類似波形判定結果に基づいてデータ補償手段4(補償データ生成手段42と補償データ挿入手段41)が行うパケットロス区間の補償処理を説明するものである。なお、ここでは、キーデータは、データ切り出し手段10によってパケットロス区間の直前から切り出された所定区間の波形のみとした場合の説明とする。すなわち、この切り出された波形から生成される近似波形については考えないものとする。
まず、図5において、データ切り出し手段10によってパケットロス区間の直前から所定区間Cの波形の切り出しを行い、その切り出された波形D1をキーデータとする。そして、インデクス変換手段92と波形位置記憶手段91により、そのキーデータ(ここではキーデータD1とする)が再生済みデータ記憶手段8に記憶されている再生済みデータ中のどの波形位置に対応するかを示す波形位置指示データを得る。この図5の例では、キーデータD1は再生済みデータ記憶手段8に記憶されている再生済みデータの波形位置P1に対応する例が示されている。
そして、再生済みデータにおける波形位置P1に対応する波形(類似度計算対象波形)と切り出された波形(キーデータD1)との類似度を上述の(2)式または(3)式によって求める。
なお、この類似度を求める際は、上述したように、類似度を計算するデータの時間的な長さは、キーデータD1の長さとする必要はない。この図5の例では、キーデータD1より長い区間T1がキーデータD1側と類似度計算対象波形側それぞれに類似度判定区間として設定されている。
このように、類似度判定区間T1の設定がなされると、それぞれの類似度判定区間T1の類似度を上述の(2)式または(3)式によって求める。
この類似度判定処理は、実際には、切り出された波形(キーデータD1)だけではなく、図3で説明したように、この切り出された波形から近似波形生成手段11で生成された複数の近似波形に対しても行われる。すなわち、近似波形生成手段11で生成された複数の近似波形に対して、再生済みデータの中からそれぞれに類似度計算対象波形を求めて、これら複数の近似波形とそれに対応した類似度計算対象波形との間で類似度判定処理が行われる。
そして、切り出された波形(キーデータD1)とその近似波形に対して求められたそれれの類似度の中から最大の類似度を判定し、さらに、その最大の類似度が所定位置以上であるかの判定を行うが(図2のステップS7,S8参照)、この図5では、切り出された波形だけを考えている。
したがって、この切り出された波形(キーデータD1)とそれに対応する類似度計算対象波形の類似度、すなわち、キーデータD1側の類似度判定区間T1と類似度計算対象波形側の類似度判定区間T1の類似度が所定値以上であるか否かの判定がなされるものとする。そして、その判定の結果、求められた類似度が所定値以上であったとする。
一方、図6は図5で説明した類似波形判定結果に基づくパケットロス区間の補償処理を説明するものである。この場合、類似波形判定手段に12よって、類似度計算対象波形を含む類似度判定区間T1の類似度が所定値以上であると判定されている。
したがって、その類似度判定区間T1の波形を類似波形として、この類似波形に続く波形を必要な長さだけ補償データ生成手段42が順次切出し、補償データ挿入手段41がパケットロス区間へ順次コピーすることにより、パケットロス区間を補償する。ただし、図6では省略しているが、前述したように、このコピーに際し、補償データ生成手段42において振幅を調整する必要がある。
また仮に、類似度判定処理において、類似した区間が発見されなかった場合、すなわち、最大の類似度が所定値以上でなかった場合は、図7に示すように、パケットロス区間を同程度のパワーを持つ雑音で埋める。また、この区間を無音として処理することも可能である。
以上のようにしてパケットロス区間の補償が行える。このようなパケットロス区間の補償がなされると、そのパケットロス区間の補償された出力データがデータ出力手段5から出力される。そして、この出力データによって、再生済みデータ記憶手段8が再生済みデータ更新手段6によって更新され、また、波形位置記憶手段91の記憶内容が波形位置更新手段7によって更新される。これらの更新処理手順を図8に示す。
この図8におけるステップS21の出力データにより再生済みデータ記憶手段8の記憶内容を更新する処理は、データ出力手段5からの出力データを単純に再生済みデータに付加する処理、あるいは、その出力データでそれまでの再生済みデータを上書きする処理である。
また、ステップS22以降の処理は、波形位置記憶手段91の更新処理であり、まずは、データ出力手段5からの出力データにより生成可能な全てのキーデータを生成する(ステップS22)。そして、ステップS23〜S25のループ処理を行う。
このループ処理は、生成された1つのキーデータに対応するインデクス値を計算し(ステップS24)、そのインデクス位置に対応する波形位置記憶手段91のエントリに記述されたデータ(再生済みデータ記憶手段中の波形位置を指し示す波形位置指示データ)を上述のステップS21で更新された再生済みデータの当該キーデータの位置を示すデータに更新する(ステップS25)という処理を、ステップS22で生成されたすべてのキーデータについて行うものである。
このようにして、再生済みデータ記憶手段8と波形位置記憶手段91が更新されると、次の復号化処理対象となる受信データについては、この更新された再生済みデータ記憶手段8の記憶内容と波形位置記憶手段91の記憶内容が用いられる。なお、これら再生済みデータ記憶手段8と波形位置記憶手段91は、データ出力手段5から出力データが出力されることによって、この図8の処理手順にしたがって逐次それぞれの記憶内容が更新される。
以上より明らかであるように、この実施形態1によれば、類似波形を得るための処理として、特許文献1に示す技術のような大量のパタンマッチング処理を必要とせず、近似波形生成手段11が生成する近似波形の数をNとすると、パケットロス区間の直前から切り出された波形を加えたN+1回のパタンマッチングしか必要としない。これは、再生済みデータ記憶手段8が記憶する再生済みデータの長さによらない定数回となる。このことは、波形位置記憶手段91のエントリ数も含め、メモリサイズを非常に大きくすることが可能であるということであり、それにより、パケットロス区間を補償するための類似波形の発見確率を、演算量を増やさずに高めることを可能にするものである。
〔実施形態2〕
図9は本願の実施形態2のブロック図である。また、図10はその処理の概略のフローチャートである。
この実施形態2においては、類似度の判定に周波数特性を用いることが実施形態1と異なっている。図9に示す構成において、実施形態1の構成(図1参照)における近似波形生成手段11、波形位置指示手段9(インデクス変換手段92、波形位置記憶手段91)、波形位置更新手段7は不要となり、その代わりとして、周波数特性計算手段21、周波数特性更新手段22、周波数特性記憶手段23が設けられている。その他、この図9において、図1と同一符号を付した構成要素は図1と同じものである。
なお、類似波形判定手段12は、前述の実施形態1では、波形位置指示手段9で指示される再生済みデータ中の波形とキーデータとの類似度を求め、求められた類似度に基づいて再生済みデータ中に当該キーデータに対する類似波形が存在するか否かを判定するものであったが、この実施形態2では、パケットロス区間の直前に存在する所定区間の周波数特性と再生済みデータの各区間の周波数特性との類似度を求め、求められた類似度に基づいて再生済みデータ中にパケットロス区間直前の所定区間に類似する類似波形が存在するか否かを判定するものである。
データ切り出し手段10は、実施形態1と同様、データ欠落検出手段3によりパケットロスが検出されると、パケットロス区間直前の所定区間の波形を切り出すものであるが、この実施形態2では、切り出された波形から周波数特性を求めるものであるので、切り出される波形の長さは、データ復号化手段により復号化されるデータが周波数特性のパラメタを含むものであるならば、その処理単位の長さと等しくすることが望ましい。
たとえば、音声データであるならば、10ミリ秒から30ミリ秒、つまり、80サンプルから240サンプル程度の長さが用いられることが多い。このように、データ復号化手段が復号化処理を行う単位データ長さと周波数特性を求める単位長さとを同じにすれば、このデータ復号化手段が復号化過程で計算する周波数特性データを流用することが可能となる。
また類似波形判定手段12が周波数特性同士の類似判定を行う際に用いるパラメタは、復号化手段の多くがその中間段階として線形予測係数(LPC係数)を求めるため、それを用いたLPCケプストラム係数を用いることが望ましい。
このLPC係数、あるいは、LPCケプストラム係数を用いた類似度判定においては、波形の振幅、つまりパワーに係わる項が独立した係数として分離されているため、実施形態1のように、振幅差を考慮した比較を行わなくともよいと言う優位性がある。つまり、実施形態1で用いた(1)式、(2)式、(3)式において示したような自乗和の平方根のような正規化の処理は不要であり、以下の式を用いることができる。
ここで、Xiはデータ切り出し手段10によってパケットロス区間直前から切り出された所定区間の波形の周波数特性であり、Yiは再生済みデータ中の所定区間の類似度計算対象波形の周波数特性である。なお、この(4)式の第2項は予め計算しておくことも可能である。
なお、携帯端末などの無線通信に一般的に用いられている分析合成系(CELP系)の音声符号化技術においては、その復号化過程において、周波数特性が計算されるため、周波数特性を求めることは大きな負荷とはならない。
図10はこの実施形態2の処理手順を説明するフローチャートである。図10において、パケットロスを検出したか否かを判定し(ステップS31)、パケットロスが検出されなければ、このパケットロス補償処理は行われないのでその時点でこのパケットロス補償処理は終了する。この場合は、図1におけるデータ復号化手段による通常の復号化処理に入る。
一方、パケットロスが検出されると、データ切り出し手段10によって受信データから所定長さの波形が切り出され(ステップS32)、切り出された波形の周波数特性を求める(ステップS33)。
次に、ステップS34,S35により、切り出された波形の周波数特性と再生済みデータの全区間について周波数特性の類似度を計算し、求められたそれぞれの類似度を記憶する。
これは、再生済みデータにおける未チェック区間を1つ選択し、その選択した未チェック区間を類似度計算対象区間として、その類似度計算対象区間の周波数特性を周波数特性記憶手段23から読み出し、この読み出された周波数特性と、切り出された所定区間の波形の周波数特性の類似度を(4)式により計算し、求められた類似度を記憶して行く処理であり、この処理を再生済みデータの全区間について行う。
このステップS34,S35の処理によって得られたそれぞれの類似度の中から、最大の類似度を選択し(ステップS36)、その最大の類似度が所定値以上であるか否かを判定する(ステップS37)。この判定の結果、最大の類似度が所定値以上であれば、その最大の類似度を有する類似度計算対象区間を類似波形とし、その類似波形に続く所定区間の再生済みデータをパケットロス区間を補償し得る補償データ区間として順次切り出し、その切り出された補償データ区間をパケットロス区間に順次コピーすることでパケットロス区間を補償する(ステップS38)。
一方、ステップS37による判定の結果、最大の類似度が所定値未満であれば、パケットロス区間を同程度のパワーを有する雑音で埋める(ステップS39)。
以上説明したようにこの実施形態2では、パケットロスが検出された場合は、そのパケットロス区間の直前の所定区間の波形に対応する周波数特性と再生済みデータのそれぞれの区間に対応する周波数特性との類似度を、再生済みデ−タの全区間について計算する。
このように、この実施形態2では、周波数特性同士の類似度の計算は、再生済みデータ記憶手段8に記憶されている再生済みデータの全区間について行うことになるが、前述したように、周波数特性は、音声データであれば、10ミリ秒から30ミリ秒単位(80サンプルから240サンプル単位)というように、長い区間ごとに求められている。このため、再生済みデータ記憶手段8に記憶されている再生済みデータの全区間について、それぞれの区間ごとに周波数特性同士の類似度判定処理を行っても、その類似度判定処理に必要な演算量はそれほど多くはなく、供給可能な電力量やCPUの処理能力に大きな制限のある携帯機器であっても十分対応できるものとなる。
また、処理対象となる再生済みデータの全区間に対して類似度を求めることで、切り出された波形に最も類似した波形を逃すことなく取得することができ、それによって、より一層、適切なデータ欠落区間の補償が可能となる。
なお、この実施形態2においても、データ出力手段5からの出力データに基づいて、再生済みデータ記憶手段8の記憶内容が再生済みデータ更新手段によって更新される。同様に、データ出力手段5からの出力データに基づいて、周波数特性記憶手段23の記憶内容が周波数特性更新手段によって更新される。
3 データ欠落検出手段、4 データ補償手段、9 波形位置指示手段、10 データ切り出し手段、11 近似波形生成手段、12 類似波形判定手段、41 補償データ挿入手段、42 補償データ生成手段、91 波形位置記憶手段、92 インデクス変換手段、D1 切り出された波形、D11,D12,D13 近似波形、T1 類似度判定区間