(57)【要約】  所定時間連続してプロセッサを別の用途に使用するとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる音声復号装置。この装置において、パケット受信部（１０１）は、複数のフレームの各レイヤのパケットを受信するとともに、受信したパケットから符号を取り出す。状態・符号格納部（１０３）は、符号と符号の復号状態とを格納する。レイヤ選択部（１０４）は、復号状態に基づいて、最初に復号すべき符号に対応するフレーム番号とレイヤ番号とを選択する。復号部（１０５）は、選択したフレーム番号及びレイヤ番号の符号を復号する。
2010103855.tif 000002
【特許請求の範囲】
【請求項１】
複数レイヤから構成される音声符号化装置において生成されたそれぞれのレイヤの符号を、複数フレームにわたって受信して格納する受信手段と、
前記それぞれのレイヤの符号を復号する復号手段と、
を具備する音声復号装置であって、
未復号状態の前記それぞれのレイヤの符号のうち、最初に復号を行う符号に対応するフレーム番号とレイヤ番号とを選択する選択手段、
を更に具備し、
前記受信手段は、
前記それぞれのレイヤの符号が未受信であるか未復号であるか復号済みであるかを示す復号状態を更に格納し、更新指示を入力した場合には前記復号状態の更新を行い、
前記選択手段は、
前記受信手段において前記復号状態が格納又は更新された時点で前記復号状態が未復号状態であって、格納又は更新後に最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を、前記復号状態を探索することにより選択するとともに、前記受信手段に対して、前記復号状態の前記更新指示を出力し、
前記復号手段は、
前記フレーム番号及び前記レイヤ番号に対応する符号を復号する、
音声復号装置。
【請求項２】
前記選択手段は、
前記復号状態の探索において、１つのフレームについて、前記復号状態が未復号状態であるレイヤのうち、前記復号状態が復号済みであるレイヤよりも１つ上位に存在するレイヤの符号、又は、前記１つのフレームにおける最下位レイヤの符号を最初に復号を行う符号とし、前記最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を選択し、
前記１つのフレームについて前記選択ができなかった場合には、次のフレームについて探索を継続する、
請求項１記載の音声復号装置。
【請求項３】
フレーム毎に無音区間であるか否かを判定する判定手段と、
前記判定手段における判定結果をフレーム毎に格納する判定結果格納手段と、
を更に具備し、
前記選択手段は、
前記復号状態とともに前記判定結果も用いて前記復号状態の探索を行う、
請求項１記載の音声復号装置。
【請求項４】
前記選択手段は、
前記複数フレームのうち、前記判定結果が無音区間であるフレームをスキップして前記復号状態の探索を行う、
請求項３記載の音声復号装置。
【請求項５】
１つのフレームについて、前記復号手段において前記フレーム番号及び前記レイヤ番号の符号を復号して生成された復号信号と、復号済みの他のレイヤの復号信号とを合成して合成音を生成する合成手段、を更に具備する、
請求項１記載の音声復号装置。
【請求項６】
複数レイヤから構成される音声符号化装置において生成されたそれぞれのレイヤの符号を、複数フレームにわたって受信してメモリに格納する受信ステップと、
前記それぞれのレイヤの符号を復号する復号ステップと、
を具備する音声復号方法であって、
未復号状態の前記それぞれのレイヤの符号のうち、最初に復号を行う符号に対応するフレーム番号とレイヤ番号とを選択する選択ステップ、
を更に具備し、
前記受信ステップは、
前記それぞれのレイヤの符号が未受信であるか未復号であるか復号済みであるかを示す復号状態を更に前記メモリに格納し、更新を指示された場合には前記メモリの前記復号状態の更新を行い、
前記選択ステップは、
前記メモリにおいて前記復号状態が格納又は更新された時点で前記復号状態が未復号状態であって、格納又は更新後に最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を、前記復号状態を探索することにより選択するとともに、前記メモリに対して、前記復号状態の更新を指示し、
前記復号ステップは、
前記フレーム番号及び前記レイヤ番号に対応する符号を復号する、
音声復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声復号装置及び音声復号方法に関し、特に階層構造を持つスケーラブルコーデックに用いられる音声復号装置及び音声復号方法に関する。
【背景技術】
【０００２】
移動体通信においては、伝送帯域の有効利用のために音声または画像のディジタル情報の圧縮符号化が必須である。その中でも携帯電話で広く利用されている音声コーデック（符号化／復号）技術に対する期待は大きく、圧縮率の高い従来の高効率符号化に対して更により高音質の要求が高まっている。【０００３】
また、近年、より効率的であるとともに高品質である音声コーデックとして多層構造を有するスケーラブルコーデックは、ＩＰ（Internet Protocol ）通信網に用いられ、ＩＴＵ−Ｔ（International Telecommunication Union - Telecommunication Standardization Sector）またはＭＰＥＧ（Moving Picture Experts Group）において標準化を検討している。【０００４】
また、２０年前に確立された音声の発声機構をモデル化するとともにベクトル量子化を応用した音声符号化技術の基本方式であるＣＥＬＰ（Code Excited Linear Prediction）、及びオーディオ符号化で用いられてきた変換符号化技術（ＭＰＥＧ標準ＡＣＣやＭＰ３等）により、音声・楽音符号化技術は大きく前進し、高品質の通信及び音楽鑑賞を可能にした。さらに、近年はオールＩＰ化、シームレス化及びブロードバンド化を睨み、音声からオーディオまでをカバーするようなスケーラブルコーデックの開発及び標準化（ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３）も進んでいる。この符号化技術は、伝送する音声の周波数帯域が階層的になっており、また下位層の量子化誤差を上位層で符号化するという構成のコーデックである。【０００５】
特許文献１には、下位層の量子化誤差を上位層で符号化する階層型符号化の基本的発明、及びサンプリング変換を用いて下位層から上位層に向かってより広い周波数帯域の符号化を行う方法について開示されている。また、ＩＴＵ−Ｔでは５層のスケーラブル音声コーデックＧ．７１８が勧告化された（例えば、非特許文献１）。【０００６】
また、スケーラブルコーデックの各レイヤ（層）の符号を伝送する場合、レイヤ毎に異なるパケットで伝送する方法を採ることが考えられる。しかし、通信システムによっては、復号器側において、各フレームの各レイヤのパケットの受信順または受信タイミングが異なってしまう場合がある。しかし、このような場合でも、音声通信においては、復号器において安定して復号音声を出力し続けなければならない。これに対処するためには、揺らぎ吸収バッファを設け、フレームを構成する複数のパケットを揺らぎ吸収バッファに格納することにより、フレームを構成する複数のパケットの到着を待って、全てのパケットが到着した後に同期を取って復号するというアルゴリズムが考えられる。また、この際、フレームのパケットを合成するタイミングが迫っている場合に、見切りでパケットの復号を始め、パケットの到着状態を見ながらパケットが到着した場合に追加で復号し、パケットが到着しなければ諦めて、遅延したパケットは破棄するというアルゴリズムにより連続で復号することが行われる。このような処理においては、「遅延揺らぎ」または「通信揺らぎ」と呼ばれる現象が起こる。特に、音声データの通信に関して、この「揺らぎ」に対処する発明が特許文献２〜５に示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平８−２６３０９６号公報
【特許文献２】特開平１１−４１２８７号公報
【特許文献３】特開２００３−８７３１７号公報
【特許文献４】特開２０００−１５１６９４号公報
【特許文献５】特開２００７−２３５２２１号公報
【非特許文献】
【０００８】
【非特許文献１】ＩＴＵ−Ｔ  Ｇ．７１８規格書、2008年6月
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献２〜特許文献５においては、所定時間の音声信号を１つのパケットを用いて伝送するものであり、上記の「揺らぎ」との関係において、複数のレイヤの各符号の処理についての記載はない。即ち、特許文献２〜特許文献５においては、フレーム毎に全てのレイヤの符号を受信してから一斉に復号するので、全てのレイヤの符号を受信するまで待つ時間が存在し、これにより処理遅延が都度発生するという問題がある。また、見切りで各レイヤの復号を始める場合でも、フレーム毎に各レイヤの符号を受信するまで待つ時間が存在するので、同様に処理遅延が発生するという問題がある。従って、特許文献２〜特許文献５においては、復号器のプロセッサに対して、纏まった時間を必要とする別のプロセスを実行させることはできないという問題がある。【００１０】
また、特許文献２〜特許文献５においては、外部から割り込みが入った際に見切り復号の途中である場合には、見切り復号しているフレームの合成音を出力することは不可能になる。従って、特許文献２〜特許文献５においては、見切り復号の処理を前倒しで行い、合成音を早めに復号しておくことが重要になる。【００１１】
また、従来、携帯端末においては、クロック遅延が頻繁に起こる。クロック遅延とは、送信側のクロックと受信側のクロックとの間のクロックのずれが蓄積して、大きな時間のずれになり、同期が取れなくなる現象である。その場合の対策としては、受信側が進んでいる場合は無音区間に合成音を１フレーム追加し、受信側が遅れている場合は合成音を１フレーム破棄して、破棄したフレームの次のフレームの合成音を出力する。従って、従来の装置においては、復号処理を前倒しで行い、合成音を早めに生成しておき、無音区間のフレームのタイミングを待って、合成音の追加または合成音の破棄を行う必要ある。【００１２】
即ち、従来の装置においては、見切り復号及びクロック遅延に対する対処の何れの場合においても、合成音を早めに生成することが重要であるにも関わらず、処理遅延が生ずることにより、合成音を出力することができなくなるという問題がある。【００１３】
本発明の目的は、できるだけ早く復号処理を行って合成音を早めに生成するので、所定時間連続してプロセッサを別の用途に使用することができるとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる音声復号装置及び音声復号方法を提供することである。
【課題を解決するための手段】
【００１４】
本発明の音声復号装置は、複数レイヤから構成される音声符号化装置において生成されたそれぞれのレイヤの符号を、複数フレームにわたって受信して格納する受信手段と、前記それぞれのレイヤの符号を復号する復号手段と、を具備する音声復号装置であって、未復号状態の前記それぞれのレイヤの符号のうち、最初に復号を行う符号に対応するフレーム番号とレイヤ番号とを選択する選択手段、を更に具備し、前記受信手段は、前記それぞれのレイヤの符号が未受信であるか未復号であるか復号済みであるかを示す復号状態を更に格納し、更新指示を入力した場合には前記復号状態の更新を行い、前記選択手段は、前記受信手段において前記復号状態が格納又は更新された時点で前記復号状態が未復号状態であって、格納又は更新後に最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を、前記復号状態を探索することにより選択するとともに、前記受信手段に対して、前記復号状態の前記更新指示を出力し、前記復号手段は、前記フレーム番号及び前記レイヤ番号に対応する符号を復号するようにした。【００１５】
本発明の音声復号方法は、複数レイヤから構成される音声符号化装置において生成されたそれぞれのレイヤの符号を、複数フレームにわたって受信してメモリに格納する受信ステップと、前記それぞれのレイヤの符号を復号する復号ステップと、を具備する音声復号方法であって、未復号状態の前記それぞれのレイヤの符号のうち、最初に復号を行う符号に対応するフレーム番号とレイヤ番号とを選択する選択ステップ、を更に具備し、前記受信ステップは、前記それぞれのレイヤの符号が未受信であるか未復号であるか復号済みであるかを示す復号状態を更に前記メモリに格納し、更新を指示された場合には前記メモリの前記復号状態の更新を行い、前記選択ステップは、前記メモリにおいて前記復号状態が格納又は更新された時点で前記復号状態が未復号状態であって、格納又は更新後に最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を、前記復号状態を探索することにより選択するとともに、前記メモリに対して、前記復号状態の更新を指示し、前記復号ステップは、前記フレーム番号及び前記レイヤ番号に対応する符号を復号する、ようにした。
【発明の効果】
【００１６】
本発明によれば、できるだけ早く復号処理を行って合成音を早めに生成するので、所定時間連続してプロセッサを別の用途に使用することができるとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態１に係る音声復号装置の構成を示すブロック図
【図２】本発明の実施の形態１に係る復号するフレーム番号とレイヤ番号とを決定する方法を示すフロー図
【図３】本発明の実施の形態１に係る状態マトリクスの一例を示す図
【図４】本発明の実施の形態１に係る符号データマトリクスの一例を示す図
【図５】本発明の実施の形態１に係る合成音マトリクスの一例を示す図
【図６】本発明の実施の形態１に係る合成音マトリクスの一例を示す図
【図７】本発明の実施の形態２に係る音声復号装置の構成を示すブロック図
【図８】本発明の実施の形態２に係る復号するフレーム番号とレイヤ番号とを決定する方法を示すフロー図
【図９】本発明の実施の形態２に係る音声復号装置の復号部の構成を示すブロック図
【図１０】本発明の実施の形態２に係る無音フラグの一例を示す図
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１９】
（実施の形態１）
図１は、本発明の実施の形態１に係る音声復号装置１００の構成を示すブロック図である。音声復号装置１００は、スケーラブルデコーダ（スケーラブル（多層）コーデックの復号器）の一例である。なお、本実施の形態に係る通信システムでは、各フレームは複数のレイヤにより構成されるとともに、レイヤ毎に符号化が実行されて符号が生成され、その符号を格納したパケットが生成される。これにより、スケーラブルコーデックの各レイヤの符号が伝送される。
【００２０】
音声復号装置１００は、パケット受信部１０１と、フレーム番号格納部１０２と、状態・符号格納部１０３と、レイヤ選択部１０４と、復号部１０５と、合成音格納部１０６と、タイマー部１０７と、タイムリミット判定部１０８と、合成音検証部１０９と、補償部１１０と、クロック遅延検出部１１１と、合成部１１２と、スピーカ１１３とから主に構成される。
【００２１】
音声復号装置１００におけるプロセスは、主に４つのプロセス１５０、１６０、１７０、１８０により構成される。また、４つのプロセス１５０、１６０、１７０、１８０は、それぞれ独立に動作する。ただし、優先順位は、プロセス１７０が最も高く、次にプロセス１８０、プロセス１６０と続き、プロセス１５０が最も優先度が低い。同時に複数のプロセスが同一の格納部やメモリにアクセスした場合、前記の優先順位の順番で処理が行われる。以下に、各構成について、詳細に説明する。
【００２２】
パケット受信部１０１は、伝送路からパケットを受け取り、受信したということを示すデータ（ＡＣＫ）を伝送路に送る。また、パケット受信部１０１は、受け取ったパケットを解凍するとともに復号することにより符号を取り出す。すなわち、パケット受信部１０１は、複数のフレームのレイヤ毎のパケットをそれぞれ受信して、受信した、複数のフレームのレイヤ毎の符号を取り出す。この際、パケット受信部１０１は、ビット誤りが検出される等の理由により符号が正常に取り出せない場合にはパケットを破棄し、破棄したフレーム番号及びレイヤ番号のパケットの再送を伝送路にリクエストする。なお、パケット受信部１０１は、再送をリクエストせずに、パケットの取得を諦めてもよい。
【００２３】
また、パケット受信部１０１は、符号を正常に取り出せた場合には、フレーム番号格納部１０２に格納されている基準番号、即ち現在スピーカ１１３から出力されている音声に対応するパケットのフレーム番号を参照して、相対的なフレーム番号を算出する。そして、パケット受信部１０１は、算出したフレーム番号を状態・符号格納部１０３に格納することにより、状態・符号格納部１０３に格納された状態マトリクス及び符号化データマトリクスを変更する。例えば、パケット受信部１０１は、基準番号が「７６１」、受け取った符号のフレーム番号が「７６３」、及び受け取った符号のレイヤ番号が「２」であった場合は、現在合成しているフレーム番号が２つ先のフレーム番号のフレームであるので、相対的なフレーム番号「１」を算出し、レイヤ番号「２」は変更しない。即ち、パケット受信部１０１は、状態・符号格納部１０３から状態マトリクスを取り出し、ｓｔａｔｅ（１，２）の値を、符号が届いたこと（すなわち、パケットを復号済みであり、符号を取り出したこと）を示す「１」にして状態マトリクスに書き込みを行う。そして、パケット受信部１０１は、書き込みした状態マトリクスを状態・符号格納部１０３に再度格納する。また、パケット受信部１０１は、符号データマトリクスを状態・符号格納部１０３から取り出し、ｃｏｄｅ（１，２）に符号を格納する。そして、パケット受信部１０１は、符号を格納した符号データマトリクスを状態・符号格納部１０３に再度格納する。なお、この際、１０ビットで表した場合は、０〜１０２３の値を再帰的に取るので、基準番号が「１０２３」の次は「０、１、２・・・」となることに注意し、時間的な先後を的確に検出するようにする。
【００２４】
また、パケット受信部１０１は、使えないパケットを受信した場合は破棄する。ここで、使えないパケットとは、例えば、上記の例の場合、基準番号が「７６１」、及び受け取った符号のフレーム番号が「７６０」である場合、既に合成が済んでおり、その符号は届くのが遅過ぎたために使い道がない。従って、この場合、パケット受信部１０１は、基準番号以下のフレーム番号の符号は格納せずに破棄する。この処理により以降の復号処理の無駄を省くことができる。なお、使えないパケットは、合成音が作成できないという意味であり、実際には、そのフレーム以後のフレームの復号に必要なフィルタまたは予測に必要な状態（ステート）を作成しておくという使い道がある。この場合、作成した状態は、復号に必要な重要な情報であり、符号が得られた際には状態の作成を行うことが望ましい。
【００２５】
フレーム番号格納部１０２は、合成部１１２から入力した現在スピーカ１１３から出力されている音声に対応するパケットのフレーム番号を格納する。
【００２６】
状態・符号格納部１０３は、各フレームのレイヤ毎の通信状況、および、各フレームのレイヤ毎の符号が復号済みであるか否かを示す状態マトリクスを格納する。状態マトリクスは、状態を表す３段階の数値の２次元マトリクスである。具体的には、「０」はパケットが音声復号装置１００に届いていないことを示し、「１」はパケットが音声復号装置に届いている（つまり、パケット受信部１０１でパケットが復号済みであり符号（符号化情報ともいう）が取り出された）ものの符号（符号化情報）が復号されていないことを示し、「２」は符号（符号化情報）が復号されたことを示す。また、状態・符号格納部１０３は、パケット受信部１０１において受け取った符号を符号データマトリクスとして格納している。なお、状態マトリクス及び符号データマトリクスについては後述する。
【００２７】
レイヤ選択部１０４は、タイマー部１０７において計測する時間を参照するとともに、状態・符号格納部１０３に格納されている状態マトリクスを参照して、次に復号するフレーム番号（相対的なフレーム番号）とレイヤ番号とを決める。そして、レイヤ選択部１０４は、決定したフレーム番号とレイヤ番号とを復号部１０５に通知する。また、レイヤ選択部１０４は、タイムリミット判定部１０８から復号の終了通知を受けた場合に、所定時間（例えば４つのフレーム）内のフレームの復号処理を終了して、次の所定時間内のフレームの復号処理を開始する。また、レイヤ選択部１０４は、新たに復号を開始する際にタイムリミット判定部１０８に復号開始を通知する。また、レイヤ選択部１０４は、合成部１１２から入力する合成音の復号結果を見ながらフレームとレイヤを選択する。なお、復号するフレーム番号とレイヤ番号とを決定する方法については後述する。
【００２８】
復号部１０５は、レイヤ選択部１０４から通知されたフレーム番号とレイヤ番号とを参照して、状態・符号格納部１０３に格納されている符号データマトリクスｃｏｄｅ（ｉ，ｊ）の符号（符号化情報）を所定のアルゴリズム（本実施の形態では、ＩＴＵ−Ｔ標準Ｇ．７１８の復号を行う。アルゴリズムは非特許文献１に記載されているので説明を省略する。）により復号して時系列の合成音ｙｔ、もしくは周波数スペクトルの合成音ｚｆを得る。また、復号部１０５は、フレーム番号を参照して、合成音格納部１０６に格納されている合成音マトリクスｓｙｎ（ｉ，ｔ）またはｓｐｅｃ（ｉ，ｆ）に対して、得られた合成音ｙｔまたはｚｆを書き込む。この処理を（１）式及び（２）式に示す。
【数１】
2010103855.tif 000003
【００２９】
すなわち、復号部１０５は、レイヤ選択部１０４で選択されたフレーム（（１）式および（２）式ではフレーム番号ｉ）において、レイヤ選択部１０４で選択されたレイヤの符号を復号して得られる復号結果（時系列の合成音ｙｔ、もしくは周波数スペクトルの合成音ｚｆ）を、符号が復号済みの他のレイヤの復号結果（合成音マトリクスｓｙｎ（ｉ，ｔ）またはｓｐｅｃ（ｉ，ｆ））と合成して合成音を得る。そして、復号部１０５は、上記処理により合成音を書き込んだ合成音マトリクスｓｙｎ（ｉ，ｔ）またはｓｐｅｃ（ｉ，ｆ）を合成音格納部１０６に再度格納する。そして、復号部１０５は、状態・符号格納部１０３に格納されている状態マトリクスを取り出し、フレーム番号ｉ及びレイヤ番号ｊの値を「１」から「２」に書き換えて、書き換え後の状態マトリクスを状態・符号格納部１０３に再度格納する。これにより、状態マトリクスを参照することにより、フレーム番号ｉ及びレイヤ番号ｊの符号は復号済みであることが判るようになる。また、復号部１０５は、所定時間の復号処理が終了した場合に、タイムリミット判定部１０８に復号終了を通知する。
【００３０】
合成音格納部１０６は、復号が進むにつれて復号部１０５において順次書き換えられる合成音マトリクスを格納する。スケーラブルコーデックではレイヤの合成音を加算したものが最終的な合成音になるので、合成音格納部１０６は、フレーム毎に１つのフレーム長の合成音バッファを有する。ただし、本実施の形態では、時系列の信号と周波数スペクトルの信号とは、バッファを分けて格納する。その理由は、主に上位層で用いられる変換符号化のレイヤでは各レイヤの合成音は周波数スペクトル（例えばＭＤＣＴ（Modified Discrete Cosine Transform）スペクトル）により加算され、最後に逆変換（例えばＩＤＣＴ（Inverse Discrete Cosine Transform））して時系列に直されることが一般的であるからである。なお、合成音マトリクスについては後述する。
【００３１】
タイマー部１０７は、時間を計る機能を持ち、設定された時間を示す数値Ｔを、計測する実時間により０に向かって正確に減らしていく機能を有している。タイマー部１０７の時刻は外部から見ることができるとともに、時間Ｔの再設定もできる。合成音がスピーカ１１３から出力されている間に復号処理が行われるが、タイマー部１０７は、次の合成を行うまでの時間を計る機能を有する。
【００３２】
タイムリミット判定部１０８は、タイマー部１０７が示す数値Ｔを参照して、数値Ｔが下限値Ｔｌｉｍｉｔ以上の場合は復号プロセスを続けてよいので、レイヤ選択部１０４に対してその旨を通知する。即ち、時間下限値Ｔｌｉｍｉｔになるまで復号プロセスを続ける。また、タイムリミット判定部１０８は、数値Ｔが下限値Ｔｌｉｍｉｔ未満の場合には、復号処理の終了をレイヤ選択部１０４に通知する。また、タイムリミット判定部１０８は、レイヤ選択部１０４から復号開始の通知を受けることにより、タイマー部１０７が示す数値Ｔと下限値Ｔｌｉｍｉｔとの比較を開始する。ここで、下限値Ｔｌｉｍｉｔは、予め決められている定数である。タイマー部１０７では、設定された時間が０に向かって減っていくが、この時間がある時間よりも小さくなった場合には復号処理から合成音を生成する処理に移らなければ次の合成音出力に間に合わなくなる。下限値Ｔｌｉｍｉｔは、それを示す定数である。下限値Ｔｌｉｍｉｔは、「（合成音検証部１０９の処理に掛かる時間）＋（補償部１１０において想定される必要な時間の内の最大時間）＋（合成部１１２においてスピーカ１１３に合成音を出力する時間）＋（１つのレイヤの復号に掛かる時間の最大時間）」により求めることができる。
【００３３】
合成音検証部１０９は、状態・符号格納部１０３から状態マトリクスを取り出して次に出力するフレームの状態ｓｔａｔｅ（０，＊）を参照する。また、合成音検証部１０９は、全てが「２」である場合には、復号は全てのレイヤで済んでいるので、合成音格納部１０６から合成音マトリクスｓｙｎ（０，ｔ）またはｓｐｅｃ（０，ｆ）を取り出す。また、合成音検証部１０９は、取り出したｓｐｅｃ（０，ｆ）のスペクトルを逆変換して（例えばＩＤＣＴ）時系列の合成音を得て、得た合成音をｓｙｎ（０，ｔ）に加算し、得られた（ｓｙｎ（０，ｔ）、ｔ＝０−Ｌ）を合成部１１２へ出力する。この前に、合成音検証部１０９は、レイヤ０から上位のレイヤに向かって状態マトリクスの状態を参照する。この際、「２」でないレイヤがあれば、そのレイヤより上位のレイヤは全て符号がないために復号されていないので、復号されていないレイヤの補償処理を行う必要がある可能性がある。ここで、補償処理を行う必要がある場合は、レイヤ０から全部合成音が無かった場合、または、レイヤ２において、周波数スケーラブルのように周波数が変わる場合である。上記の場合に対して、その他の場合は、補償による音質劣化よりも、上位レイヤの符号（符号化情報）が無いことで下位レイヤの符号化歪みを復号できない場合の音質劣化の方が聴感的劣化が少ないという傾向があるため、一般に補償処理は必要なく、そのまま合成音を出力する。合成音検証部１０９は、補償が必要な場合は、合成音（ｓｙｎ（０，ｔ）、ｔ＝０−Ｌ）または（ｓｐｅｃ（０，ｆ），ｆ＝−Ｍ）を補償部１１０へ出力する。
【００３４】
補償部１１０は、合成音検証部１０９から入力した合成音に対して補償処理を行う。なお、符号がない場合の補償処理の具体的な方法は、非特許文献１に記載されているのでその説明を省略する。
【００３５】
クロック遅延検出部１１１は、送信側である図示しない音声符号化装置と受信側である音声復号装置１００との間のクロックのずれの大きさを監視しており、クロックのずれに応じてフラグを設定し、合成部１１２に対してフラグにより指示を送る。具体的には、クロック遅延検出部１１１は、クロックのずれがない場合にはフラグ「０」を送り、クロックのずれが１フレームを超えていないが所定値よりも大きい場合にはフラグ「１」を送り、クロックのずれが１フレームを超えた場合にはフラグ「２」を送る。このように、クロック遅延検出部１１１は、クロックのずれをフラグに切り換えて送り、合成部１１２に対して指示する。
【００３６】
合成部１１２は、合成音検証部１０９から合成音が入力した場合に直ちに合成音をスピーカ１１３の出力用バッファに伝送する。そして、合成部１１２は、１フレーム分の合成を行った後に、全ての状態を１フレーム進める。具体的には、合成部１１２は、フレーム番号格納部１０２に格納されている基準番号に１を加算した数値を求め、求めた数値が上限値を越えている場合には０をフレーム番号格納部１０２に格納し、求めた数値が上限値を超えていない場合には求めた数値をフレーム番号格納部１０２に格納する。また、状態・符号格納部１０３に格納されている状態マトリクスと符号データマトリクス、及び合成音格納部１０６に格納されている合成音マトリクスのメモリシフトと初期化を行う。そして、合成部１１２は、メモリシフトと初期化した状態マトリクスと符号データマトリクスを状態・符号格納部１０３へ再度格納するとともに、メモリシフトと初期化した合成音マトリクスを合成音格納部１０６に再度格納する。メモリシフトと初期化の方法を（３）式に示す。
【数２】
2010103855.tif 000004
【００３７】
また、合成部１１２は、タイマー部１０７の時間Ｔを、スピーカ１１３が１フレームの合成音を出力するのに要する時間に設定し直す。また、合成部１１２は、クロック遅延検出部１１１から送られる信号を常に監視する。また、合成部１１２は、クロック遅延検出部１１１から調整指示が来た場合、合成音をスピーカ１１３の出力用バッファに伝送する前に、出力する合成音のパワを調べる。そして、合成部１１２は、進みすぎ且つ合成音のパワが無音区間と判断した場合（以下「状態１」と記載する）には、無音区間を先にスピーカ１１３に送り、現フレームの合成音をその後に送る。また、合成部１１２は、遅れ且つ合成音のパワが無音区間と判断した場合且つ合成音格納部１０６に２フレーム以上の合成音が既に復号されている場合（以下「状態２」と記載する）には、現フレームの合成音を出さずに破棄し、２番目の合成音をスピーカ１１３に送る。合成部１１２は、状態２の場合には更に１フレーム多くメモリシフトの処理を行う。また、合成部１１２は、クロック遅延検出部１１１から調整指示が来た場合、かつ上記の状態１及び状態２に当てはまらない場合は、状態１または状態２になるまで待ち続け、無音区間が来て対処できるタイミングになった際にフレームの出力を調整する処理を行う。
【００３８】
スピーカ１１３は、出力バッファを２フレーム分持っており、一方をディジタル／アナログ（Ｄ／Ａ）出力しながらもう一方の出力バッファへの入力を待つという機能を有する。なお、出力バッファがフレーム長より少し長い１つのトグルバッファで構成されている場合には、メモリ容量の節約に繋がる。本実施の形態の音声復号装置１００においては、１フレーム分がＤ／Ａ出力される直前にならないと１フレーム分の合成音が補充されないので、これを利用することにより、空いているメモリ容量を節約することができる。
【００３９】
次に、復号するフレーム番号とレイヤ番号を決定する方法について、図２を用いて説明する。図２は、復号するフレーム番号とレイヤ番号を決定する方法を示すフロー図である。
【００４０】
まず、レイヤ選択部１０４は、相対的なフレーム番号０（ｉ＝０）のフレームを選択し（ステップ（以下、ＳＴという）２０１）、相対的なフレーム番号が「３」よりも大きいか否かを判定する（ＳＴ２０２）。レイヤ選択部１０４は、相対的なフレーム番号が「３」よりも大きい場合には（ＳＴ２０２：ＹＥＳ）、ＳＴ２０１に戻る。
【００４１】
一方、レイヤ選択部１０４は、相対的なフレーム番号が「３」よりも大きくない場合には（ＳＴ２０２：ＮＯ）、レイヤ番号０（ｊ＝０）のレイヤを選択し（ＳＴ２０３）、レイヤ番号が「４」よりも大きいか否かを判定する（ＳＴ２０４）。
【００４２】
レイヤ番号が「４」よりも大きい場合には（ＳＴ２０４：ＹＥＳ）、レイヤ選択部１０４は、次のフレームを選択して（ＳＴ２０５）、ＳＴ２０２の判定を行う。
【００４３】
一方、レイヤ番号が「４」よりも大きくない場合には（ＳＴ２０４：ＮＯ）、レイヤ選択部１０４は、状態マトリクスを参照することにより、選択したフレーム番号ｉのレイヤ番号ｊについて、届いているがまだ復号していないことを示す番号「１」があるか否かを判定する（ＳＴ２０６）。ただし、この際、状態マトリクスｓｔａｔｅ（ｉ，ｊ）を参照する直前に、状態・符号格納部１０３の状態マトリクスの内容を必ず読み直す。なお、判定の度に読み直すのは、パケット受信部１０１にパケットが届いた場合に、優先的に処理を行うプロセス１５０のパケット受信部１０１の機能により、状態・符号格納部１０３の状態マトリクスの内容が書き換えられるからである。
【００４４】
番号「１」がある場合には（ＳＴ２０６：ＹＥＳ）、レイヤ選択部１０４は、そのフレーム番号ｉとレイヤ番号ｊを復号部１０５へ出力する。
【００４５】
一方、番号「１」がない場合には（ＳＴ２０６：ＮＯ）、レイヤ選択部１０４は、選択したフレーム番号ｉのレイヤ番号ｊについて、復号済みであることを示す番号「２」を探索して、番号「２」があるか否かを判定する（ＳＴ２０７）。
【００４６】
番号「２」がある場合には（ＳＴ２０７：ＹＥＳ）、レイヤ選択部１０４は、次のレイヤを選択して（ＳＴ２０８）、ＳＴ２０４の判定を行う。
【００４７】
一方、番号「２」がない場合には（ＳＴ２０７：ＮＯ）、レイヤ選択部１０４は、次のフレームを選択して（ＳＴ２０５）、ＳＴ２０２の判定を行う。
【００４８】
このように、レイヤ選択部１０４は、状態マトリクスを参照することにより、フレーム毎に下位層のレイヤから上位層のレイヤに向かって、届いているがまだ復号していないことを示す番号「１」を探索していく。この際、レイヤ選択部１０４は、パケットが届いていないことを示す番号「０」を検出した場合には、それより上位のレイヤを探索しても復号できないので、次のフレームを探索する。すなわち、レイヤ選択部１０４は、各フレームの複数のレイヤのうち、あるレイヤより下位のすべてのレイヤにおいて取り出された符号がすべて復号済みであり（状態マトリクスの番号「２」）かつそのレイヤから上位のレイヤのうち取り出された符号が復号されていないレイヤであって最下位ではない特定のレイヤ（状態マトリクスの番号「１」であるレイヤ）、または、取り出された符号が復号されていない特定の最下位レイヤ（状態マトリクスの番号「１」である最下位レイヤ）、の探索を複数のフレーム毎に行うことにより、前記特定のレイヤまたは前記特定の最下位レイヤ（図２におけるレイヤ番号ｊ）、および、特定の最下位レイヤまたは特定レイヤを含む特定のフレーム（図２におけるフレーム番号ｉ）を選択する。また、レイヤ選択部１０４は、フレームについては、フレーム０から時間の進行方向に向かって探索していく。すなわち、レイヤ選択部１０４は、複数のフレームのうち時刻がより早いフレーム（つまり、フレーム０）から順に前記探索を行う。また、レイヤ選択部１０４は、レイヤの番号がレイヤ数を超えたら次のフレームの探索を始め、フレーム番号がフレーム数を超えたら最初のフレームに戻って探索を続ける。この処理は理論上無限ループになるが、優先的に処理を行っているプロセス１７０のタイマー部１０７における数値Ｔが下限値Ｔｌｉｍｉｔより小さくなった場合、割り込み処理として、次の合成音を出力しなければならない。従って、レイヤ選択部１０４は、タイマー部１０７における数値Ｔが下限値Ｔｌｉｍｉｔより小さいか否かを判定し（ＳＴ２０９）、タイマー部１０７における数値Ｔが下限値Ｔｌｉｍｉｔより小さい場合には、タイムリミット判定部１０８に割り込み処理を通知する。ただし、この割り込み処理では、割り込まれた直後の元のステップには戻らない。その理由は、合成することによりフレームが１つ進むので、合成部１１２の動作により、状態・符号格納部１０３と合成音格納部１０６のメモリ内容が大きく変化してしまうからである。
【００４９】
以上で、復号するフレーム番号とレイヤ番号を決定する方法の説明を終える。
【００５０】
図３は、状態マトリクスの一例を示す図である。
【００５１】
図３において、フレーム０が直近に出力すべき合成音の符号の各レイヤの状態である。フレーム１は、フレーム０の後で出力される合成音の符号の各レイヤの状態である。このように、状態マトリクスは、これから出力する合成音の符号の状態を格納するようになっている。
【００５２】
図４は、符号データマトリクスｃｏｄｅ（ｉ，ｊ）の一例を示す図である。図４は、図３の状態マトリクスの状態の場合において受け取った符号を格納したものである。
【００５３】
図４において、音声復号装置１００にパケットが届いているフレーム及びレイヤには網掛を付しているとともに、音声復号装置１００にパケットが届いていないフレーム及びレイヤは白抜きにしている。これらの符号を復号することにより、合成音（復号音）が得られる。上記において、フレーム０が直近に出力すべき合成音の符号である。フレーム１はフレーム０の後で出力される合成音の符号である。このようにこれから出力する合成音の符号を格納する。
【００５４】
図５及び図６は、合成音マトリクスの一例を示す図である。図５は、図４の符号データマトリクスの状態の場合における合成音マトリクスｓｙｎ（ｉ，ｔ）を示す図である。また、図６は、図４の符号データマトリクスの状態の場合における合成音マトリクスｓｐｅｃ（ｉ，ｆ）を示す図である。
【００５５】
図５及び図６において、フレーム２は、レイヤ０の符号がまだ届いていないので合成音がなく、フレーム３は、符号は届いているがまだ復号されていないので合成音がない。フレーム０及びフレーム１は、レイヤ０の符号が復号されているので合成音が存在する。ここで、フレーム０が直近に出力すべき合成音である。フレーム１はフレーム０の後で出力される合成音であり、このようにこれから出力する合成音を格納するようになっている。即ち、本実施の形態においては、直近に出力するフレーム０のみならず、フレーム０の次に出力するフレーム１の合成音を復号することができる。なお、スピーカ１１３は、全てのプロセスの間、１フレーム長の合成音を出力し続けている。
【００５６】
このように、本実施の形態によれば、できるだけ早く復号処理を行って合成音を早めに生成するので、所定時間連続してプロセッサを別の用途に使用することができるとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる。
【００５７】
（実施の形態２）
本実施の形態では、音声復号装置は、さらに、各フレームが無音区間であるか否かを判定し、無音区間であるか否かに応じて、復号すべきフレームおよびレイヤを選択する。
【００５８】
図７は、本実施の形態に係る音声復号装置２００の構成を示すブロック図である。なお、図７に示す音声復号装置２００は、実施の形態１に示した音声復号装置１００（図１）と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
【００５９】
無音フラグ格納部２０１は、復号が進むにつれて復号部２０３において作成される無音フラグを格納する。ここで、無音フラグｓｆｌａｇ（ｉ）は、フレーム番号ｉのフレームの状態を表す３段階の数値である。具体的には、「０」はレイヤ２まで符号（符号化情報）が復号されていないことを示し、「１」はレイヤ２まで符号（符号化情報）が復号され、かつ、合成音が有音であるか無音であるかの判定（以下、有音／無音判定という）の判定結果が有音であることを示し、「２」はレイヤ２まで符号（符号化情報）が復号され、かつ、合成音の有音／無音判定の判定結果が無音であることを示す。
【００６０】
レイヤ選択部２０２は、実施の形態１のレイヤ選択部１０４と同様にしてタイマー部１０７において計測する時間を参照するとともに、状態・符号格納部１０３に格納されている状態マトリクス及び無音フラグ格納部２０１に格納されている無音フラグを参照して、次に復号するフレーム番号（相対的なフレーム番号）とレイヤ番号とを決める。そして、レイヤ選択部２０２は、決定したフレーム番号とレイヤ番号とを復号部２０３に通知する。なお、レイヤ選択部２０２における、復号するフレーム番号とレイヤ番号とを決定する方法については後述する。
【００６１】
復号部２０３は、実施の形態１の復号部１０５と同様にして、レイヤ選択部２０２から通知されたフレーム番号とレイヤ番号とを参照して、状態・符号格納部１０３に格納されている符号データマトリクスｃｏｄｅ（ｉ，ｊ）の符号（符号化情報）を所定のアルゴリズム（本実施の形態では、ＩＴＵ−Ｔ標準Ｇ．７１８の復号を行う。アルゴリズムは非特許文献１に記載されているので説明を省略する。）により復号して時系列の合成音ｙｔ、もしくは周波数スペクトルの合成音ｚｆを得る。また、復号部２０３は、実施の形態１と同様にして、フレーム番号を参照して、合成音格納部１０６に格納されている合成音マトリクスｓｙｎ（ｉ，ｔ）またはｓｐｅｃ（ｉ，ｆ）に対して、（１）式及び（２）式に従って、得られた合成音ｙｔまたはｚｆを書き込む。
【００６２】
なお、本実施の形態では、一例としてＩＴＵ−Ｔ標準Ｇ．７１８の５層（レイヤ０〜レイヤ４）のスケーラブルコーデックを用いる。この場合、レイヤ２は、合成音が狭帯域から広帯域に変化するレイヤであるとともに、合成音が時系列から周波数スペクトルに変化するレイヤでもある。従って、復号部２０３は、レイヤ０，１までの合成音を、時系列の合成音マトリクスであるｓｙｎ（ｉ，ｔ）に書き込み、レイヤ２〜４までの合成音を、周波数スペクトルの合成音マトリクスであるｓｐｅｃ（ｉ，ｆ）に書き込む。また、レイヤ２の合成音が書き込まれる際には、マトリクスのメモリはクリアされている。また、レイヤ２以上の最終的な合成音は、ＩＭＤＣＴ（Inverse Modified Discrete Cosine Transform）によって、周波数スペクトルｓｐｅｃ（ｉ，ｆ）を時系列に変換し、変換後の合成音を、時系列の合成音マトリクスｓｙｎ（ｉ，ｔ）に加算することにより算出される。
【００６３】
そして、復号部２０３は、上記処理により合成音を書き込んだ合成音マトリクスｓｙｎ（ｉ，ｔ）またはｓｐｅｃ（ｉ，ｆ）を合成音格納部１０６に再度格納する。そして、復号部２０３は、状態・符号格納部１０３に格納されている状態マトリクスを取り出し、フレーム番号ｉ及びレイヤ番号ｊの値を「１」から「２」に書き換えて、書き換え後の状態マトリクスを状態・符号格納部１０３に再度格納する。これにより、状態マトリクスを参照することにより、フレーム番号ｉ及びレイヤ番号ｊの符号は復号済みであることが判るようになる。
【００６４】
また、復号部２０３は、復号された符号のレイヤ番号ｊが「２」である場合、フレーム番号ｉのフレームが無音区間であるか否かを判定する（合成音の有音／無音判定を行う）。そして、復号部２０３は、フレーム番号ｉの合成音に対する有音／無音判定の判定結果を示す無音フラグｓｆｌａｇ（ｉ）を、無音フラグ格納部２０１に出力する。
【００６５】
ここで、本実施の形態では、一例としてＩＴＵ−Ｔ標準Ｇ．７１８の５層（レイヤ０〜レイヤ４）のスケーラブルコーデックを用いており、レイヤ０，１を狭帯域（２００Ｈｚ〜３．４ｋＨｚ）とし、レイヤ２〜４を広帯域（１０Ｈｚ〜７ｋＨｚ）としている。よって、復号部２０３は、レイヤ０から順に復号していくと、レイヤ２まで復号して初めて広帯域の合成音が得られる。そのため、復号部２０３は、レイヤ２まで復号すれば、そのフレームが有音であるか無音であるかを判定することができる。換言すると、復号部２０３は、レイヤ０，１のみでは、高周波帯域の成分の有無を検出できないので、そのフレームの有音／無音判定を行うことができない。そこで、復号部２０３は、レイヤ２まで復号して得られる合成音、すなわち、時系列の合成音マトリクスｓｙｎ（ｉ，ｔ）および周波数スペクトルの合成音マトリクスｓｐｅｃ（ｉ，ｆ）に基づいて、有音／無音判定を行う。そして、復号部２０３は、判定結果を示す無音フラグをフレーム毎（ここでは、４フレーム（フレーム０〜３））に数値（「０」〜「２」）で表す。なお、復号部２０３における、有音／無音判定処理の詳細については後述する。
【００６６】
合成音検証部２０４は、状態・符号格納部１０３から状態マトリクスを取り出して次に出力するフレームの状態ｓｔａｔｅ（０，＊）を参照する。また、合成音検証部２０４は、フレームの状態ｓｔａｔｅ（０，＊）の全てが「２」である場合には、フレーム番号ｉ＝０における符号（符号化情報）の復号は全てのレイヤで済んでいるので、合成音格納部１０６から合成音マトリクスｓｙｎ（０，ｔ）またはｓｐｅｃ（０，ｆ）を取り出す。また、合成音検証部２０４は、取り出したｓｐｅｃ（０，ｆ）のスペクトルを逆変換して（例えばＩＤＣＴ）時系列の合成音を得て、得た合成音をｓｙｎ（０，ｔ）に加算し、加算結果である合成音（ｓｙｎ（０，ｔ）、ｔ＝０−Ｌ）を合成部２０５へ出力する。この前に、合成音検証部２０４は、レイヤ０から上位のレイヤに向かって状態マトリクスの状態を参照する。この際、状態マトリクスの状態が「２」でないレイヤがあれば、そのレイヤより上位のレイヤは全て符号がないために復号されていないので、復号されていないレイヤの補償処理を行う必要がある可能性がある。ここで、補償処理を行う必要がある場合は、レイヤ０から全部合成音が無かった場合、または、レイヤ２において、周波数スケーラブルのように周波数が変わる場合である。上記の場合に対して、その他の場合は、補償による音質劣化よりも、上位レイヤの符号（符号化情報）が無いことで下位レイヤの符号化歪みを復号できない場合の音質劣化の方が聴感的に劣化が少ないという傾向があるため、一般に補償処理は必要なく、そのまま合成音を出力する。また、無音フラグ格納部２０１に格納されている無音フラグのうち、フレーム番号ｉ＝０（すなわち、次に出力するフレーム）に対応する無音フラグｓｆｌａｇ（０）が「２」の場合、つまり、レイヤ２までの復号が完了しており且つ無音と判定されている場合には、補償部１１０によるレイヤ３，４の補償処理をせずに、合成音検証部２０４は、合成音を合成部２０５に出力する。一方、合成音検証部２０４は、補償が必要な場合は、合成音（ｓｙｎ（０，ｔ）、ｔ＝０−Ｌ）または（ｓｐｅｃ（０，ｆ），ｆ＝−Ｍ）を補償部１１０へ出力する。
【００６７】
合成部２０５は、実施の形態１の合成部１１２と同様にして、合成音検証部２０４から合成音が入力した場合に直ちに合成音をスピーカ１１３の出力用バッファに伝送する。そして、合成部２０５は、１フレーム分の合成を行った後に、全ての状態を１フレーム進める。また、実施の形態１と同様、（３）式に従って、状態・符号格納部１０３に格納されている状態マトリクスと符号データマトリクス、及び合成音格納部１０６に格納されている合成音マトリクスのメモリシフトおよび初期化が行われる。そして、合成部２０５は、メモリシフトおよび初期化が行われた状態マトリクスと符号データマトリクスを状態・符号格納部１０３へ再度格納するとともに、メモリシフトおよび初期化が行われた合成音マトリクスを合成音格納部１０６に再度格納する。さらに、無音フラグ格納部２０１に格納されている無音フラグのメモリシフトおよび初期化が行われる。そして、合成部２０５は、メモリシフトおよび初期化が行われた無音フラグを無音フラグ格納部２０１に再度格納する。無音フラグのメモリシフトおよび初期化の方法を（４）式に示す。
【数３】
2010103855.tif 000005
【００６８】
また、合成部２０５は、実施の形態１の合成部１１２と同様、タイマー部１０７の時間Ｔを、スピーカ１１３が１フレームの合成音を出力するのに要する時間に設定し直す。また、合成部２０５は、クロック遅延検出部１１１から送られる信号を常に監視する。また、合成部２０５は、クロック遅延検出部１１１から調整指示が来た場合、調整指示が「進みすぎ」であり、且つ、無音フラグ格納部２０１からの無音フラグが「２」（無音区間）の場合（以下「状態１」と記載する）には、無音区間を先にスピーカ１１３に送り、現フレームの合成音をその後に送る。また、合成部２０５は、調整指示が「遅れ」であり、且つ、無音フラグ格納部２０１からの無音フラグが「２」の場合、且つ、合成音格納部１０６に２フレーム以上の合成音が既に復号されている場合（以下「状態２」と記載する）には、現フレームの合成音を出さずに破棄し、２番目の合成音をスピーカ１１３に送る。合成部２０５は、状態２の場合には更に１フレーム多くメモリシフトの処理を行う。また、合成部２０５は、クロック遅延検出部１１１から調整指示が来た場合、かつ上記の状態１及び状態２に当てはまらない場合は、状態１または状態２になるまで待ち続け、無音フラグが「２」の区間（無音区間）が来て対処できるタイミングになった際にフレームの出力を調整する処理を行う。
【００６９】
次に、レイヤ選択部２０２における、復号する符号のフレーム番号とレイヤ番号を決定する方法について、図８を用いて説明する。図８は、復号する符号のフレーム番号とレイヤ番号を決定する方法を示すフロー図である。なお、図８において、図２に示すフロー図と同一の処理については同一の符号を付し、説明を省略する。
【００７０】
まず、レイヤ選択部２０２は、相対的なフレーム番号０（ｉ＝０）のフレームを選択し（ＳＴ３０１）、相対的なフレーム番号が「３」よりも大きいか否かを判定する（ＳＴ３０２）。レイヤ選択部２０２は、相対的なフレーム番号が「３」よりも大きい場合には（ＳＴ３０２：ＹＥＳ）、ＳＴ２０１に進む。
【００７１】
一方、レイヤ選択部２０２は、相対的なフレーム番号が「３」よりも大きくない場合には（ＳＴ３０２：ＮＯ）、レイヤ番号０（ｊ＝０）のレイヤを選択する（ＳＴ３０３）。また、レイヤ選択部２０２は、レイヤ番号ｊが「４」よりも大きいか否か、または、レイヤ番号ｊが「２」よりも大きく且つ無音フラグｓｆｌａｇ（ｉ）が「２」であるか否かを判定する（ＳＴ３０４）。ただし、この際、無音フラグｓｆｌａｇ（ｉ）を参照する直前に、無音フラグ格納部２０１の無音フラグの内容を必ず読み直す。なお、判定の度に無音フラグの内容を読み直すのは、最新の無音フラグの内容を用いて判定を行う必要があるためであり、無音フラグ格納部２０１の内容は復号部２０３および合成部２０５により書き換えられている可能性があるからである。
【００７２】
レイヤ番号が「４」よりも大きい場合、または、レイヤ番号ｊが「２」よりも大きく且つ無音フラグｓｆｌａｇ（ｉ）が「２」である場合には（ＳＴ３０４：ＹＥＳ）、レイヤ選択部２０２は、次のフレームを選択して（ＳＴ３０５）、ＳＴ３０２の判定を行う。
【００７３】
一方、レイヤ番号が「４」よりも大きくなく、且つ、レイヤ番号ｊが「２」よりも大きくなく且つ無音フラグｓｆｌａｇ（ｉ）が「２」ではない場合には（ＳＴ３０４：ＮＯ）、レイヤ選択部２０２は、状態マトリクスｓｔａｔｅ（ｉ，ｊ）を参照することにより、選択したフレーム番号ｉのレイヤ番号ｊについて、届いている（すなわち、パケットが復号済みであり符号（符号化情報）を取り出している）がまだ符号（符号化情報）を復号していないことを示す番号「１」があるか否かを判定する（ＳＴ３０６）。ただし、この際、状態マトリクスｓｔａｔｅ（ｉ，ｊ）を参照する直前に、実施の形態１（図２に示すＳＴ２０６及び２０７）と同様にして、状態・符号格納部１０３の状態マトリクスの内容を必ず読み直す。
【００７４】
番号「１」がある場合には（ＳＴ３０６：ＹＥＳ）、レイヤ選択部２０２は、そのフレーム番号ｉとレイヤ番号ｊを復号部２０３へ出力する。
【００７５】
一方、番号「１」がない場合には（ＳＴ３０６：ＮＯ）、レイヤ選択部２０２は、選択したフレーム番号ｉのレイヤ番号ｊについて、復号済みであることを示す番号「２」を探索して、番号「２」があるか否かを判定する（ＳＴ３０７）。
【００７６】
番号「２」がある場合には（ＳＴ３０７：ＹＥＳ）、レイヤ選択部２０２は、次のレイヤを選択して（ＳＴ３０８）、ＳＴ３０４の判定を行う。
【００７７】
一方、番号「２」がない場合には（ＳＴ３０７：ＮＯ）、レイヤ選択部２０２は、次のフレームを選択して（ＳＴ３０５）、ＳＴ３０２の判定を行う。
【００７８】
また、レイヤ選択部２０２は、ＳＴ２０２において、相対的なフレーム番号が「３」よりも大きい場合には（ＳＴ２０２：ＹＥＳ）、ＳＴ３０１に戻る。
【００７９】
このように、レイヤ選択部２０２は、状態マトリクス及び無音フラグを参照することにより、フレーム毎に下位層（下位レイヤ）から上位層（上位レイヤ）に向かって、パケットが届いているがパケットから取り出される符号（符号化情報）をまだ復号していないことを示す番号「１」をｓｔａｔｅ（ｉ，ｊ）において探索していく。この際、レイヤ選択部２０２は、パケットが届いていないことを示す番号「０」を検出した場合には、「０」を検出したフレームではそれより上位のレイヤを探索しても復号できないので、次のフレームを探索する。
【００８０】
また、レイヤ選択部２０２では、復号する符号のフレーム番号およびレイヤ番号を決定するアルゴリズムとして、図８に示すように、近似した構成の２つのアルゴリズム（図８に示すＳＴ３０１〜３０８のアルゴリズム、および、ＳＴ２０１〜２０８のアルゴリズム）を直列に連結している。ここで、図８に示すＳＴ３０１〜３０８では、レイヤ選択部２０２は、探索しているフレームが無音区間であると判定した場合（図８に示すＳＴ３０４：ＹＥＳ）には、そのフレームの探索を中止して次のフレームの探索に移る。すなわち、レイヤ選択部２０２は、レイヤ番号ｊが４より大きくなる場合（そのフレームの全てのレイヤを探索した場合）に加え、レイヤ番号ｊが２より大きく（レイヤ３以上）且つ無音フラグｓｆｌａｇ（ｉ）が「２」（無音区間）である場合にも、そのフレームの探索を中止して次のフレームの探索に移る。すなわち、レイヤ選択部２０２は、複数のフレームのうち、無音フラグｓｆｌａｇ（ｉ）が「２」を示すフレーム（有音／無音判定の判定結果が無音区間であることを示すフレーム）以外のフレームにおいて、状態マトリクスの番号「１」であるレイヤの探索を行う。つまり、レイヤ選択部２０２は、無音フラグｓｆｌａｇ（ｉ）が「２」の場合には、レイヤ３，４の符号に対する復号によって得られる合成音のパワは非常に小さいと判断し、レイヤ３，４の符号に対する復号の必要性は低いと判断する。
【００８１】
一方、図８に示すＳＴ２０１〜２０８では、レイヤ選択部２０２は、ＳＴ３０１〜３０８におけるフレームの探索で復号すべき符号を持つレイヤが見つからなかった場合（図８に示すＳＴ３０２：ＹＥＳ）に、無音フラグｓｆｌａｇ（ｉ）を参照せずに、状態マトリクスｓｔａｔｅ（ｉ，ｊ）のみを参照して、届いているがまだ復号していないことを示す番号「１」を再度探索していく。
【００８２】
つまり、レイヤ選択部２０２は、図８に示すＳＴ３０１〜３０８において無音フラグを参照することで、無音区間であるフレームの上位レイヤ（レイヤ３，４）の符号の復号の優先度を下げて（すなわち、上位レイヤの符号の復号をスキップして）、他のフレームの探索を行う。その後、レイヤ選択部２０２は、復号すべき符号を持つレイヤが見つからない場合には図８に示すＳＴ２０１〜２０８において全てのレイヤについて復号すべき符号を持つレイヤを探索する。
【００８３】
以上で、復号する符号のフレーム番号とレイヤ番号を決定する方法の説明を終える。
【００８４】
次に、復号部２０３における有音／無音判定処理の詳細について説明する。図９は、本実施の形態に係る復号部２０３の内部構成のうち、有音／無音判定処理を行う構成部の構成を示すブロック図である。
【００８５】
図９において、振幅探索部２３１は、合成音格納部１０６から時系列の合成音ｓｙｎ（ｉ，ｔ）および周波数スペクトルの合成音ｓｐｅｃ（ｉ，ｆ）を取り出す。そして、振幅探索部２３１は、合成音ｓｙｎ（ｉ，ｔ）及びｓｐｅｃ（ｉ，ｆ）各々の振幅の最大値を探索する。具体的には、振幅探索部２３１は、合成音ｓｙｎ（ｉ，ｔ）またはｓｐｅｃ（ｉ，ｆ）の各信号値の絶対値を比較することで、合成音ｓｙｎ（ｉ，ｔ）及びｓｐｅｃ（ｉ，ｆ）各々の振幅の最大値を探索する。ここで、ｓｙｎ（ｉ，ｔ）の最大振幅をｍａｘｓｙｎ（ｉ）とし、ｓｐｅｃ（ｉ，ｆ）の最大振幅をｍａｘｓｐｅｃ（ｉ）とする。そして、振幅探索部２３１は、探索結果であるｍａｘｓｙｎ（ｉ）及びｍａｘｓｐｅｃ（ｉ）を比較部２３３に出力する。
【００８６】
定数格納部２３２は、合成音ｓｙｎ（ｉ，ｔ）及びｓｐｅｃ（ｉ，ｆ）各々に対する定数を格納する。ここで、ｓｙｎ（ｉ，ｔ）に対する定数をＭｓｙｎとし、ｓｐｅｃ（ｉ，ｆ）に対する定数をＭｓｐｅｃとする。２つの定数Ｍｓｙｎ及びＭｓｐｅｃは、聴感的に無音と判断できる、十分に小さい値に予め設定されている。
【００８７】
比較部２３３は、振幅探索部２３１から入力されるｍａｘｓｙｎ（ｉ）及びｍａｘｓｐｅｃ（ｉ）と、定数格納部２３２に格納されている定数Ｍｓｙｎ及びＭｓｐｅｃとをそれぞれ比較する。すなわち、比較部２３３は、ｍａｘｓｙｎ（ｉ）とＭｓｙｎとを比較し、ｍａｘｓｐｅｃ（ｉ）とＭｓｐｅｃとを比較する。そして、比較部２３３は、比較の結果、ｍａｘｓｙｎ（ｉ）がＭｓｙｎより小さく、且つ、ｍａｘｓｐｅｃ（ｉ）がＭｓｐｅｃより小さい場合、フレーム番号ｉのフレームを無音と判断し、無音フラグｓｆｌａｇ（ｉ）として「２」を生成する。一方、比較部２３３は、上記以外の場合、フレーム番号ｉのフレームを有音と判断し、無音フラグｓｆｌａｇ（ｉ）として「１」を生成する。そして、比較部２３３は、生成した無音フラグｓｆｌａｇ（ｉ）を無音フラグ格納部２０１に出力する。
【００８８】
このように、復号部２０３は、あるフレームの全ての合成音が予め設定された振幅（定数）よりも小さい場合のみ、そのフレームが無音であると判定する。換言すると、復号部２０３は、あるフレームのいずれか１つの合成音でも予め設定された振幅（定数）以上の場合には、そのフレームが有音であると判定する。また、復号部２０３は、時系列の合成音ｓｙｎ（ｉ，ｔ）及び周波数スペクトルの合成音ｓｐｅｃ（ｉ，ｆ）の有音／無音判定を個別に行い、双方が無音であると判定した場合のみ、フレーム番号ｉのフレームが無音であると判定する。換言すると、復号部２０３は、時系列の合成音ｓｙｎ（ｉ，ｔ）及び周波数スペクトルの合成音ｓｐｅｃ（ｉ，ｆ）のうちいずれか１つでも有音であると判定した場合には、フレーム番号ｉのフレームが有音であると判定する。
【００８９】
このように、音声復号装置２００は、復号部２０３におけるレイヤ２の復号時に得られる無音フラグを用いることで、レイヤ３，４の符号（符号化情報）の重要性を推定する。具体的には、音声復号装置２００は、無音フラグが無音区間を示す場合（「２」の場合）、レイヤ３，４の符号の重要性が小さいと推定する。これは、スケーラブルコーデックでは、下位レイヤの符号化誤差（符号化歪み）が上位レイヤで符号化されるため、パワの期待値は上位レイヤほどより小さくなるためである。すなわち、レイヤ２の復号時に無音区間と判定されたフレームでは、レイヤ２よりも上位レイヤであるレイヤ３，４の符号（符号化情報）を復号して得られる合成音を下位レイヤの合成音と加算しても、加算結果も無音区間であると判定される可能性が高くなる。よって、音声復号装置２００は、無音フラグが「２」（すなわち無音区間）であるフレームのレイヤ３，４の符号に対する復号の優先度を下げる（すなわち、レイヤ３，４の符号に対する復号をスキップする）ことで、スケーラブルコーデックの復号を効率良く行うことができる。
【００９０】
図１０は、無音フラグｓｆｌａｇ（ｉ）の一例を示す図である。図１０は、図３に示す状態マトリクスの状態及び図４に示す符号データマトリクスの状態の場合において、無音フラグ格納部２０１に格納されている無音フラグである。
【００９１】
図１０に示すフレーム０では、図３に示すようにレイヤ２の符号まで復号されているので有音／無音判定が行われている。図１０では、フレーム０は音声が有音であることを示す「１」となる。一方、図１０に示すフレーム１〜３については、図３に示すようにレイヤ２以降の符号が復号されていないので、有音／無音判定が行われていない。よって、図１０では、フレーム１〜３はレイヤ２以降の符号が復号されていないことを示す「０」となる。
【００９２】
このようにして、本実施の形態では、音声復号装置は、実施の形態１と同様にして、復号すべき符号を持つレイヤの探索の際、各フレームにおいてパケットが届いていないレイヤよりも上位レイヤの探索を行わずに、次のフレームを探索する。さらに、音声復号装置は、復号すべき符号を持つレイヤの探索の際、各フレームのあるレイヤにおいて無音区間であると判定された場合にはそのレイヤよりも上位のレイヤの探索を行わずに、次のフレームを探索する。よって、本実施の形態によれば、実施の形態１よりもさらに、できるだけ早く復号処理を行って合成音を早めに生成するので、所定時間連続してプロセッサを別の用途に使用することができるとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる。
【００９３】
以上、本発明の各実施の形態について説明した。
【００９４】
なお、上記の実施の形態において、４つのフレーム及び５つのレイヤの符号を復号する場合について説明したが、本発明はこれに限らず、様々なレイヤ数のスケーラブルコーデックに適用することができる。例えば、ＩＴＵ−Ｔ標準Ｇ．７２９．１のスケーラブルコーデックは１２層のレイヤで構成されているので、上記の実施の形態において、その仕様に合わせることもできる。即ち、本発明はレイヤ数に依存しない。またフレーム数もシステムの都合で様々に変更してもよい。多くのフレーム分の符号データマトリクスを使うと、パケットがバラバラに届いてもそのフレーム数分の余裕があるので、送られた符号データを全て使って高品質の復号がなされる確率は上がるとともに、パケットが無駄にならない。システムの性能により、パケットの処理遅延を極力少なくする必要がある場合には、フレーム数を調整して遅延を少なくすればよい。即ち、本発明はフレーム数には依存しない。
【００９５】
また、上記の実施の形態において、５つのレイヤを全部使用したが、本発明はこれに限らず、音声復号装置において使用するレイヤの最大数を決めて、最大数のレイヤの符号の復号結果を合成して生成した合成音を出力するという仕様でも本発明は有効である。その場合、パケット受信部１０１において、不要な上位層のレイヤのパケットを破棄してもよい。即ち、本発明は、音声復号装置と音声符号化装置とのレイヤ数の違いには依存しない。
【００９６】
また、上記の実施の形態において、合成部１１２（または、合成部２０５）の機能により、状態・符号格納部１０３及び合成音格納部１０６に格納されるマトリクスのアップデートの際にメモリシフトを行った。しかし、本発明はこれに限らず、各マトリクスのメモリをフレームに対してサイクリックに使用して、メモリシフトを行わない構成でも良い。これにより、メモリシフトの演算量を節約することができる。
【００９７】
また、上記の実施の形態において、各レイヤのパケットが異なる順番により送られるという場合について開示したが、本発明はこれに限らず、いくつかのレイヤの符号が纏まって伝送される場合でも本発明は有効である。この場合には、状態・符号格納部１０３及び合成音格納部１０６に格納されるマトリクスをまとめて読み書きすればよいからである。また、まとめて読み書きしなくても、まとめて１つのレイヤの符号として扱うこともできる。即ち、本発明は、伝送されるパケットのレイヤ数には依存しない。
【００９８】
また、上記の実施の形態において、パケットが合成に間に合わなかった場合、または、例えばレイヤ０、１のパケットが届いて、レイヤ２のパケットが届かず、レイヤ３、４のパケットが届いている場合、レイヤ３、４のパケットの復号結果は合成には使用できない場合について説明した。しかし、本発明はこれに限らず、レイヤ３、４のパケットの復号結果を以降のフレームの復号の際に使用するフィルタまたは予測の状態の作成に用いることができる。これにより、以降のフレームの復号性能を確保することができる。
【００９９】
また、上記実施の形態では、音声復号装置が、複数のフレームのうち時刻がより早いフレーム（つまり、フレーム番号がより小さいフレーム）から順に、状態マトリクスの番号「１」であるレイヤの探索を行う場合について説明した。しかし、本発明では、音声復号装置は、フレーム番号順に関わらずフレームを選択してもよい。
【０１００】
また、上記の実施の形態の説明は、本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。本発明は、音声復号装置を有するシステムであればどのような場合にも適用することができる。
【０１０１】
また、上記の実施の形態において説明した音声復号装置は、移動体通信システムにおける通信端末装置および基地局装置に搭載することが可能であり、これにより上記と同様の作用効果を有する通信端末装置、基地局装置、および移動体通信システムを提供することができる。
【０１０２】
また、上記の実施の形態においては、ハードウェアで構成する場合を例に説明したが、本発明はこれに限らず、ソフトウェアで実現することも可能である。例えば、本発明に係るアルゴリズムをプログラミング言語によって記述し、このプログラムをメモリに記憶しておいて情報処理手段によって実行させることにより、本発明に係る音声復号装置等と同様の機能を実現することができる。
【０１０３】
また、上記実施の形態の各機能ブロックは、典型的には集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されても良いし、一部または全てを含むように１チップ化されても良い。ここで、ＬＳＩは、集積度の違いによって、ＩＣ、システムＬＳＩ、スーパーＬＳＩまたはウルトラＬＳＩ等と呼称されることもある。
【０１０４】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現しても良い。ＬＳＩ製造後に、プログラム化することが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続もしくは設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１０５】
さらに、半導体技術の進歩または派生する別技術により、ＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
【０１０６】
２００９年３月１３日出願の特願２００９−０６０７９２および２００９年７月１５日出願の特願２００９−１６６７９６の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。
【産業上の利用可能性】
【０１０７】
本発明にかかる音声復号装置は、特に階層構造を持つスケーラブルコーデックに適用するのに好適である。
【図１】
2010103855.tif 000006
【図２】
2010103855.tif 000007
【図３】
2010103855.tif 000008
【図４】
2010103855.tif 000009
【図５】
2010103855.tif 000010
【図６】
2010103855.tif 000011
【図７】
2010103855.tif 000012
【図８】
2010103855.tif 000013
【図９】
2010103855.tif 000014
【図１０】
2010103855.tif 000015
【手続補正書】
【提出日】平成23年6月8日(2011.6.8)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声復号装置及び音声復号方法に関し、特に階層構造を持つスケーラブルコーデックに用いられる音声復号装置及び音声復号方法に関する。
【背景技術】
【０００２】
移動体通信においては、伝送帯域の有効利用のために音声または画像のディジタル情報の圧縮符号化が必須である。その中でも携帯電話で広く利用されている音声コーデック（符号化／復号）技術に対する期待は大きく、圧縮率の高い従来の高効率符号化に対して更により高音質の要求が高まっている。
【０００３】
また、近年、より効率的であるとともに高品質である音声コーデックとして多層構造を有するスケーラブルコーデックは、ＩＰ（Internet Protocol ）通信網に用いられ、ＩＴＵ−Ｔ（International Telecommunication Union - Telecommunication Standardization Sector）またはＭＰＥＧ（Moving Picture Experts Group）において標準化を検討している。
【０００４】
また、２０年前に確立された音声の発声機構をモデル化するとともにベクトル量子化を応用した音声符号化技術の基本方式であるＣＥＬＰ（Code Excited Linear Prediction）、及びオーディオ符号化で用いられてきた変換符号化技術（ＭＰＥＧ標準ＡＣＣやＭＰ３等）により、音声・楽音符号化技術は大きく前進し、高品質の通信及び音楽鑑賞を可能にした。さらに、近年はオールＩＰ化、シームレス化及びブロードバンド化を睨み、音声からオーディオまでをカバーするようなスケーラブルコーデックの開発及び標準化（ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３）も進んでいる。この符号化技術は、伝送する音声の周波数帯域が階層的になっており、また下位層の量子化誤差を上位層で符号化するという構成のコーデックである。
【０００５】
特許文献１には、下位層の量子化誤差を上位層で符号化する階層型符号化の基本的発明、及びサンプリング変換を用いて下位層から上位層に向かってより広い周波数帯域の符号化を行う方法について開示されている。また、ＩＴＵ−Ｔでは５層のスケーラブル音声コーデックＧ．７１８が勧告化された（例えば、非特許文献１）。
【０００６】
また、スケーラブルコーデックの各レイヤ（層）の符号を伝送する場合、レイヤ毎に異なるパケットで伝送する方法を採ることが考えられる。しかし、通信システムによっては、復号器側において、各フレームの各レイヤのパケットの受信順または受信タイミングが異なってしまう場合がある。しかし、このような場合でも、音声通信においては、復号器において安定して復号音声を出力し続けなければならない。これに対処するためには、揺らぎ吸収バッファを設け、フレームを構成する複数のパケットを揺らぎ吸収バッファに格納することにより、フレームを構成する複数のパケットの到着を待って、全てのパケットが到着した後に同期を取って復号するというアルゴリズムが考えられる。また、この際、フレームのパケットを合成するタイミングが迫っている場合に、見切りでパケットの復号を始め、パケットの到着状態を見ながらパケットが到着した場合に追加で復号し、パケットが到着しなければ諦めて、遅延したパケットは破棄するというアルゴリズムにより連続で復号することが行われる。このような処理においては、「遅延揺らぎ」または「通信揺らぎ」と呼ばれる現象が起こる。特に、音声データの通信に関して、この「揺らぎ」に対処する発明が特許文献２〜５に示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平８−２６３０９６号公報
【特許文献２】特開平１１−４１２８７号公報
【特許文献３】特開２００３−８７３１７号公報
【特許文献４】特開２０００−１５１６９４号公報
【特許文献５】特開２００７−２３５２２１号公報
【非特許文献】
【０００８】
【非特許文献１】ＩＴＵ−Ｔ  Ｇ．７１８規格書、2008年6月
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献２〜特許文献５においては、所定時間の音声信号を１つのパケットを用いて伝送するものであり、上記の「揺らぎ」との関係において、複数のレイヤの各符号の処理についての記載はない。即ち、特許文献２〜特許文献５においては、フレーム毎に全てのレイヤの符号を受信してから一斉に復号するので、全てのレイヤの符号を受信するまで待つ時間が存在し、これにより処理遅延が都度発生するという問題がある。また、見切りで各レイヤの復号を始める場合でも、フレーム毎に各レイヤの符号を受信するまで待つ時間が存在するので、同様に処理遅延が発生するという問題がある。従って、特許文献２〜特許文献５においては、復号器のプロセッサに対して、纏まった時間を必要とする別のプロセスを実行させることはできないという問題がある。
【００１０】
また、特許文献２〜特許文献５においては、外部から割り込みが入った際に見切り復号の途中である場合には、見切り復号しているフレームの合成音を出力することは不可能になる。従って、特許文献２〜特許文献５においては、見切り復号の処理を前倒しで行い、合成音を早めに復号しておくことが重要になる。
【００１１】
また、従来、携帯端末においては、クロック遅延が頻繁に起こる。クロック遅延とは、送信側のクロックと受信側のクロックとの間のクロックのずれが蓄積して、大きな時間のずれになり、同期が取れなくなる現象である。その場合の対策としては、受信側が進んでいる場合は無音区間に合成音を１フレーム追加し、受信側が遅れている場合は合成音を１フレーム破棄して、破棄したフレームの次のフレームの合成音を出力する。従って、従来の装置においては、復号処理を前倒しで行い、合成音を早めに生成しておき、無音区間のフレームのタイミングを待って、合成音の追加または合成音の破棄を行う必要ある。
【００１２】
即ち、従来の装置においては、見切り復号及びクロック遅延に対する対処の何れの場合においても、合成音を早めに生成することが重要であるにも関わらず、処理遅延が生ずることにより、合成音を出力することができなくなるという問題がある。
【００１３】
本発明の目的は、できるだけ早く復号処理を行って合成音を早めに生成するので、所定時間連続してプロセッサを別の用途に使用することができるとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる音声復号装置及び音声復号方法を提供することである。
【課題を解決するための手段】
【００１４】
本発明の音声復号装置は、複数レイヤから構成される音声符号化装置において生成されたそれぞれのレイヤの符号を、複数フレームにわたって受信して格納する受信手段と、前記それぞれのレイヤの符号を復号する復号手段と、を具備する音声復号装置であって、未復号状態の前記それぞれのレイヤの符号のうち、最初に復号を行う符号に対応するフレーム番号とレイヤ番号とを選択する選択手段、を更に具備し、前記受信手段は、前記それぞ
れのレイヤの符号が未受信であるか未復号であるか復号済みであるかを示す復号状態を更に格納し、更新指示を入力した場合には前記復号状態の更新を行い、前記選択手段は、前記受信手段において前記復号状態が格納又は更新された時点で前記復号状態が未復号状態であって、格納又は更新後に最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を、前記復号状態を探索することにより選択するとともに、前記受信手段に対して、前記復号状態の前記更新指示を出力し、前記復号手段は、前記フレーム番号及び前記レイヤ番号に対応する符号を復号するようにした。
【００１５】
本発明の音声復号方法は、複数レイヤから構成される音声符号化装置において生成されたそれぞれのレイヤの符号を、複数フレームにわたって受信してメモリに格納する受信ステップと、前記それぞれのレイヤの符号を復号する復号ステップと、を具備する音声復号方法であって、未復号状態の前記それぞれのレイヤの符号のうち、最初に復号を行う符号に対応するフレーム番号とレイヤ番号とを選択する選択ステップ、を更に具備し、前記受信ステップは、前記それぞれのレイヤの符号が未受信であるか未復号であるか復号済みであるかを示す復号状態を更に前記メモリに格納し、更新を指示された場合には前記メモリの前記復号状態の更新を行い、前記選択ステップは、前記メモリにおいて前記復号状態が格納又は更新された時点で前記復号状態が未復号状態であって、格納又は更新後に最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を、前記復号状態を探索することにより選択するとともに、前記メモリに対して、前記復号状態の更新を指示し、前記復号ステップは、前記フレーム番号及び前記レイヤ番号に対応する符号を復号する、ようにした。
【発明の効果】
【００１６】
本発明によれば、できるだけ早く復号処理を行って合成音を早めに生成するので、所定時間連続してプロセッサを別の用途に使用することができるとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態１に係る音声復号装置の構成を示すブロック図
【図２】本発明の実施の形態１に係る復号するフレーム番号とレイヤ番号とを決定する方法を示すフロー図
【図３】本発明の実施の形態１に係る状態マトリクスの一例を示す図
【図４】本発明の実施の形態１に係る符号データマトリクスの一例を示す図
【図５】本発明の実施の形態１に係る合成音マトリクスの一例を示す図
【図６】本発明の実施の形態１に係る合成音マトリクスの一例を示す図
【図７】本発明の実施の形態２に係る音声復号装置の構成を示すブロック図
【図８】本発明の実施の形態２に係る復号するフレーム番号とレイヤ番号とを決定する方法を示すフロー図
【図９】本発明の実施の形態２に係る音声復号装置の復号部の構成を示すブロック図
【図１０】本発明の実施の形態２に係る無音フラグの一例を示す図
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１９】
（実施の形態１）
図１は、本発明の実施の形態１に係る音声復号装置１００の構成を示すブロック図である。音声復号装置１００は、スケーラブルデコーダ（スケーラブル（多層）コーデックの復号器）の一例である。なお、本実施の形態に係る通信システムでは、各フレームは複数のレイヤにより構成されるとともに、レイヤ毎に符号化が実行されて符号が生成され、その符号を格納したパケットが生成される。これにより、スケーラブルコーデックの各レイ
ヤの符号が伝送される。
【００２０】
音声復号装置１００は、パケット受信部１０１と、フレーム番号格納部１０２と、状態・符号格納部１０３と、レイヤ選択部１０４と、復号部１０５と、合成音格納部１０６と、タイマー部１０７と、タイムリミット判定部１０８と、合成音検証部１０９と、補償部１１０と、クロック遅延検出部１１１と、合成部１１２と、スピーカ１１３とから主に構成される。
【００２１】
音声復号装置１００におけるプロセスは、主に４つのプロセス１５０、１６０、１７０、１８０により構成される。また、４つのプロセス１５０、１６０、１７０、１８０は、それぞれ独立に動作する。ただし、優先順位は、プロセス１７０が最も高く、次にプロセス１８０、プロセス１６０と続き、プロセス１５０が最も優先度が低い。同時に複数のプロセスが同一の格納部やメモリにアクセスした場合、前記の優先順位の順番で処理が行われる。以下に、各構成について、詳細に説明する。
【００２２】
パケット受信部１０１は、伝送路からパケットを受け取り、受信したということを示すデータ（ＡＣＫ）を伝送路に送る。また、パケット受信部１０１は、受け取ったパケットを解凍するとともに復号することにより符号を取り出す。すなわち、パケット受信部１０１は、複数のフレームのレイヤ毎のパケットをそれぞれ受信して、受信した、複数のフレームのレイヤ毎の符号を取り出す。この際、パケット受信部１０１は、ビット誤りが検出される等の理由により符号が正常に取り出せない場合にはパケットを破棄し、破棄したフレーム番号及びレイヤ番号のパケットの再送を伝送路にリクエストする。なお、パケット受信部１０１は、再送をリクエストせずに、パケットの取得を諦めてもよい。
【００２３】
また、パケット受信部１０１は、符号を正常に取り出せた場合には、フレーム番号格納部１０２に格納されている基準番号、即ち現在スピーカ１１３から出力されている音声に対応するパケットのフレーム番号を参照して、相対的なフレーム番号を算出する。そして、パケット受信部１０１は、算出したフレーム番号を状態・符号格納部１０３に格納することにより、状態・符号格納部１０３に格納された状態マトリクス及び符号化データマトリクスを変更する。例えば、パケット受信部１０１は、基準番号が「７６１」、受け取った符号のフレーム番号が「７６３」、及び受け取った符号のレイヤ番号が「２」であった場合は、現在合成しているフレーム番号が２つ先のフレーム番号のフレームであるので、相対的なフレーム番号「１」を算出し、レイヤ番号「２」は変更しない。即ち、パケット受信部１０１は、状態・符号格納部１０３から状態マトリクスを取り出し、ｓｔａｔｅ（１，２）の値を、符号が届いたこと（すなわち、パケットを復号済みであり、符号を取り出したこと）を示す「１」にして状態マトリクスに書き込みを行う。そして、パケット受信部１０１は、書き込みした状態マトリクスを状態・符号格納部１０３に再度格納する。また、パケット受信部１０１は、符号データマトリクスを状態・符号格納部１０３から取り出し、ｃｏｄｅ（１，２）に符号を格納する。そして、パケット受信部１０１は、符号を格納した符号データマトリクスを状態・符号格納部１０３に再度格納する。なお、この際、１０ビットで表した場合は、０〜１０２３の値を再帰的に取るので、基準番号が「１０２３」の次は「０、１、２・・・」となることに注意し、時間的な先後を的確に検出するようにする。
【００２４】
また、パケット受信部１０１は、使えないパケットを受信した場合は破棄する。ここで、使えないパケットとは、例えば、上記の例の場合、基準番号が「７６１」、及び受け取った符号のフレーム番号が「７６０」である場合、既に合成が済んでおり、その符号は届くのが遅過ぎたために使い道がない。従って、この場合、パケット受信部１０１は、基準番号以下のフレーム番号の符号は格納せずに破棄する。この処理により以降の復号処理の無駄を省くことができる。なお、使えないパケットは、合成音が作成できないという意味
であり、実際には、そのフレーム以後のフレームの復号に必要なフィルタまたは予測に必要な状態（ステート）を作成しておくという使い道がある。この場合、作成した状態は、復号に必要な重要な情報であり、符号が得られた際には状態の作成を行うことが望ましい。
【００２５】
フレーム番号格納部１０２は、合成部１１２から入力した現在スピーカ１１３から出力されている音声に対応するパケットのフレーム番号を格納する。
【００２６】
状態・符号格納部１０３は、各フレームのレイヤ毎の通信状況、および、各フレームのレイヤ毎の符号が復号済みであるか否かを示す状態マトリクスを格納する。状態マトリクスは、状態を表す３段階の数値の２次元マトリクスである。具体的には、「０」はパケットが音声復号装置１００に届いていないことを示し、「１」はパケットが音声復号装置に届いている（つまり、パケット受信部１０１でパケットが復号済みであり符号（符号化情報ともいう）が取り出された）ものの符号（符号化情報）が復号されていないことを示し、「２」は符号（符号化情報）が復号されたことを示す。また、状態・符号格納部１０３は、パケット受信部１０１において受け取った符号を符号データマトリクスとして格納している。なお、状態マトリクス及び符号データマトリクスについては後述する。
【００２７】
レイヤ選択部１０４は、タイマー部１０７において計測する時間を参照するとともに、状態・符号格納部１０３に格納されている状態マトリクスを参照して、次に復号するフレーム番号（相対的なフレーム番号）とレイヤ番号とを決める。そして、レイヤ選択部１０４は、決定したフレーム番号とレイヤ番号とを復号部１０５に通知する。また、レイヤ選択部１０４は、タイムリミット判定部１０８から復号の終了通知を受けた場合に、所定時間（例えば４つのフレーム）内のフレームの復号処理を終了して、次の所定時間内のフレームの復号処理を開始する。また、レイヤ選択部１０４は、新たに復号を開始する際にタイムリミット判定部１０８に復号開始を通知する。また、レイヤ選択部１０４は、合成部１１２から入力する合成音の復号結果を見ながらフレームとレイヤを選択する。なお、復号するフレーム番号とレイヤ番号とを決定する方法については後述する。
【００２８】
復号部１０５は、レイヤ選択部１０４から通知されたフレーム番号とレイヤ番号とを参照して、状態・符号格納部１０３に格納されている符号データマトリクスｃｏｄｅ（ｉ，ｊ）の符号（符号化情報）を所定のアルゴリズム（本実施の形態では、ＩＴＵ−Ｔ標準Ｇ．７１８の復号を行う。アルゴリズムは非特許文献１に記載されているので説明を省略する。）により復号して時系列の合成音ｙｔ、もしくは周波数スペクトルの合成音ｚｆを得る。また、復号部１０５は、フレーム番号を参照して、合成音格納部１０６に格納されている合成音マトリクスｓｙｎ（ｉ，ｔ）またはｓｐｅｃ（ｉ，ｆ）に対して、得られた合成音ｙｔまたはｚｆを書き込む。この処理を（１）式及び（２）式に示す。
【数１】
2010103855.tif 000016
【００２９】
すなわち、復号部１０５は、レイヤ選択部１０４で選択されたフレーム（（１）式および（２）式ではフレーム番号ｉ）において、レイヤ選択部１０４で選択されたレイヤの符
号を復号して得られる復号結果（時系列の合成音ｙｔ、もしくは周波数スペクトルの合成音ｚｆ）を、符号が復号済みの他のレイヤの復号結果（合成音マトリクスｓｙｎ（ｉ，ｔ）またはｓｐｅｃ（ｉ，ｆ））と合成して合成音を得る。そして、復号部１０５は、上記処理により合成音を書き込んだ合成音マトリクスｓｙｎ（ｉ，ｔ）またはｓｐｅｃ（ｉ，ｆ）を合成音格納部１０６に再度格納する。そして、復号部１０５は、状態・符号格納部１０３に格納されている状態マトリクスを取り出し、フレーム番号ｉ及びレイヤ番号ｊの値を「１」から「２」に書き換えて、書き換え後の状態マトリクスを状態・符号格納部１０３に再度格納する。これにより、状態マトリクスを参照することにより、フレーム番号ｉ及びレイヤ番号ｊの符号は復号済みであることが判るようになる。また、復号部１０５は、所定時間の復号処理が終了した場合に、タイムリミット判定部１０８に復号終了を通知する。
【００３０】
合成音格納部１０６は、復号が進むにつれて復号部１０５において順次書き換えられる合成音マトリクスを格納する。スケーラブルコーデックではレイヤの合成音を加算したものが最終的な合成音になるので、合成音格納部１０６は、フレーム毎に１つのフレーム長の合成音バッファを有する。ただし、本実施の形態では、時系列の信号と周波数スペクトルの信号とは、バッファを分けて格納する。その理由は、主に上位層で用いられる変換符号化のレイヤでは各レイヤの合成音は周波数スペクトル（例えばＭＤＣＴ（Modified Discrete Cosine Transform）スペクトル）により加算され、最後に逆変換（例えばＩＤＣＴ（Inverse Discrete Cosine Transform））して時系列に直されることが一般的であるからである。なお、合成音マトリクスについては後述する。
【００３１】
タイマー部１０７は、時間を計る機能を持ち、設定された時間を示す数値Ｔを、計測する実時間により０に向かって正確に減らしていく機能を有している。タイマー部１０７の時刻は外部から見ることができるとともに、時間Ｔの再設定もできる。合成音がスピーカ１１３から出力されている間に復号処理が行われるが、タイマー部１０７は、次の合成を行うまでの時間を計る機能を有する。
【００３２】
タイムリミット判定部１０８は、タイマー部１０７が示す数値Ｔを参照して、数値Ｔが下限値Ｔｌｉｍｉｔ以上の場合は復号プロセスを続けてよいので、レイヤ選択部１０４に対してその旨を通知する。即ち、時間下限値Ｔｌｉｍｉｔになるまで復号プロセスを続ける。また、タイムリミット判定部１０８は、数値Ｔが下限値Ｔｌｉｍｉｔ未満の場合には、復号処理の終了をレイヤ選択部１０４に通知する。また、タイムリミット判定部１０８は、レイヤ選択部１０４から復号開始の通知を受けることにより、タイマー部１０７が示す数値Ｔと下限値Ｔｌｉｍｉｔとの比較を開始する。ここで、下限値Ｔｌｉｍｉｔは、予め決められている定数である。タイマー部１０７では、設定された時間が０に向かって減っていくが、この時間がある時間よりも小さくなった場合には復号処理から合成音を生成する処理に移らなければ次の合成音出力に間に合わなくなる。下限値Ｔｌｉｍｉｔは、それを示す定数である。下限値Ｔｌｉｍｉｔは、「（合成音検証部１０９の処理に掛かる時間）＋（補償部１１０において想定される必要な時間の内の最大時間）＋（合成部１１２においてスピーカ１１３に合成音を出力する時間）＋（１つのレイヤの復号に掛かる時間の最大時間）」により求めることができる。
【００３３】
合成音検証部１０９は、状態・符号格納部１０３から状態マトリクスを取り出して次に出力するフレームの状態ｓｔａｔｅ（０，＊）を参照する。また、合成音検証部１０９は、全てが「２」である場合には、復号は全てのレイヤで済んでいるので、合成音格納部１０６から合成音マトリクスｓｙｎ（０，ｔ）またはｓｐｅｃ（０，ｆ）を取り出す。また、合成音検証部１０９は、取り出したｓｐｅｃ（０，ｆ）のスペクトルを逆変換して（例えばＩＤＣＴ）時系列の合成音を得て、得た合成音をｓｙｎ（０，ｔ）に加算し、得られた（ｓｙｎ（０，ｔ）、ｔ＝０−Ｌ）を合成部１１２へ出力する。この前に、合成音検証
部１０９は、レイヤ０から上位のレイヤに向かって状態マトリクスの状態を参照する。この際、「２」でないレイヤがあれば、そのレイヤより上位のレイヤは全て符号がないために復号されていないので、復号されていないレイヤの補償処理を行う必要がある可能性がある。ここで、補償処理を行う必要がある場合は、レイヤ０から全部合成音が無かった場合、または、レイヤ２において、周波数スケーラブルのように周波数が変わる場合である。上記の場合に対して、その他の場合は、補償による音質劣化よりも、上位レイヤの符号（符号化情報）が無いことで下位レイヤの符号化歪みを復号できない場合の音質劣化の方が聴感的劣化が少ないという傾向があるため、一般に補償処理は必要なく、そのまま合成音を出力する。合成音検証部１０９は、補償が必要な場合は、合成音（ｓｙｎ（０，ｔ）、ｔ＝０−Ｌ）または（ｓｐｅｃ（０，ｆ），ｆ＝−Ｍ）を補償部１１０へ出力する。
【００３４】
補償部１１０は、合成音検証部１０９から入力した合成音に対して補償処理を行う。なお、符号がない場合の補償処理の具体的な方法は、非特許文献１に記載されているのでその説明を省略する。
【００３５】
クロック遅延検出部１１１は、送信側である図示しない音声符号化装置と受信側である音声復号装置１００との間のクロックのずれの大きさを監視しており、クロックのずれに応じてフラグを設定し、合成部１１２に対してフラグにより指示を送る。具体的には、クロック遅延検出部１１１は、クロックのずれがない場合にはフラグ「０」を送り、クロックのずれが１フレームを超えていないが所定値よりも大きい場合にはフラグ「１」を送り、クロックのずれが１フレームを超えた場合にはフラグ「２」を送る。このように、クロック遅延検出部１１１は、クロックのずれをフラグに切り換えて送り、合成部１１２に対して指示する。
【００３６】
合成部１１２は、合成音検証部１０９から合成音が入力した場合に直ちに合成音をスピーカ１１３の出力用バッファに伝送する。そして、合成部１１２は、１フレーム分の合成を行った後に、全ての状態を１フレーム進める。具体的には、合成部１１２は、フレーム番号格納部１０２に格納されている基準番号に１を加算した数値を求め、求めた数値が上限値を越えている場合には０をフレーム番号格納部１０２に格納し、求めた数値が上限値を超えていない場合には求めた数値をフレーム番号格納部１０２に格納する。また、状態・符号格納部１０３に格納されている状態マトリクスと符号データマトリクス、及び合成音格納部１０６に格納されている合成音マトリクスのメモリシフトと初期化を行う。そして、合成部１１２は、メモリシフトと初期化した状態マトリクスと符号データマトリクスを状態・符号格納部１０３へ再度格納するとともに、メモリシフトと初期化した合成音マトリクスを合成音格納部１０６に再度格納する。メモリシフトと初期化の方法を（３）式に示す。
【数２】
2010103855.tif 000017
【００３７】
また、合成部１１２は、タイマー部１０７の時間Ｔを、スピーカ１１３が１フレームの合成音を出力するのに要する時間に設定し直す。また、合成部１１２は、クロック遅延検出部１１１から送られる信号を常に監視する。また、合成部１１２は、クロック遅延検出部１１１から調整指示が来た場合、合成音をスピーカ１１３の出力用バッファに伝送する前に、出力する合成音のパワを調べる。そして、合成部１１２は、進みすぎ且つ合成音のパワが無音区間と判断した場合（以下「状態１」と記載する）には、無音区間を先にスピーカ１１３に送り、現フレームの合成音をその後に送る。また、合成部１１２は、遅れ且つ合成音のパワが無音区間と判断した場合且つ合成音格納部１０６に２フレーム以上の合成音が既に復号されている場合（以下「状態２」と記載する）には、現フレームの合成音を出さずに破棄し、２番目の合成音をスピーカ１１３に送る。合成部１１２は、状態２の場合には更に１フレーム多くメモリシフトの処理を行う。また、合成部１１２は、クロック遅延検出部１１１から調整指示が来た場合、かつ上記の状態１及び状態２に当てはまらない場合は、状態１または状態２になるまで待ち続け、無音区間が来て対処できるタイミングになった際にフレームの出力を調整する処理を行う。
【００３８】
スピーカ１１３は、出力バッファを２フレーム分持っており、一方をディジタル／アナログ（Ｄ／Ａ）出力しながらもう一方の出力バッファへの入力を待つという機能を有する。なお、出力バッファがフレーム長より少し長い１つのトグルバッファで構成されている場合には、メモリ容量の節約に繋がる。本実施の形態の音声復号装置１００においては、１フレーム分がＤ／Ａ出力される直前にならないと１フレーム分の合成音が補充されないので、これを利用することにより、空いているメモリ容量を節約することができる。
【００３９】
次に、復号するフレーム番号とレイヤ番号を決定する方法について、図２を用いて説明する。図２は、復号するフレーム番号とレイヤ番号を決定する方法を示すフロー図である。
【００４０】
まず、レイヤ選択部１０４は、相対的なフレーム番号０（ｉ＝０）のフレームを選択し（ステップ（以下、ＳＴという）２０１）、相対的なフレーム番号が「３」よりも大きいか否かを判定する（ＳＴ２０２）。レイヤ選択部１０４は、相対的なフレーム番号が「３」よりも大きい場合には（ＳＴ２０２：ＹＥＳ）、ＳＴ２０１に戻る。
【００４１】
一方、レイヤ選択部１０４は、相対的なフレーム番号が「３」よりも大きくない場合には（ＳＴ２０２：ＮＯ）、レイヤ番号０（ｊ＝０）のレイヤを選択し（ＳＴ２０３）、レイヤ番号が「４」よりも大きいか否かを判定する（ＳＴ２０４）。
【００４２】
レイヤ番号が「４」よりも大きい場合には（ＳＴ２０４：ＹＥＳ）、レイヤ選択部１０４は、次のフレームを選択して（ＳＴ２０５）、ＳＴ２０２の判定を行う。
【００４３】
一方、レイヤ番号が「４」よりも大きくない場合には（ＳＴ２０４：ＮＯ）、レイヤ選択部１０４は、状態マトリクスを参照することにより、選択したフレーム番号ｉのレイヤ番号ｊについて、届いているがまだ復号していないことを示す番号「１」があるか否かを判定する（ＳＴ２０６）。ただし、この際、状態マトリクスｓｔａｔｅ（ｉ，ｊ）を参照する直前に、状態・符号格納部１０３の状態マトリクスの内容を必ず読み直す。なお、判定の度に読み直すのは、パケット受信部１０１にパケットが届いた場合に、優先的に処理を行うプロセス１５０のパケット受信部１０１の機能により、状態・符号格納部１０３の状態マトリクスの内容が書き換えられるからである。
【００４４】
番号「１」がある場合には（ＳＴ２０６：ＹＥＳ）、レイヤ選択部１０４は、そのフレーム番号ｉとレイヤ番号ｊを復号部１０５へ出力する。
【００４５】
一方、番号「１」がない場合には（ＳＴ２０６：ＮＯ）、レイヤ選択部１０４は、選択したフレーム番号ｉのレイヤ番号ｊについて、復号済みであることを示す番号「２」を探索して、番号「２」があるか否かを判定する（ＳＴ２０７）。
【００４６】
番号「２」がある場合には（ＳＴ２０７：ＹＥＳ）、レイヤ選択部１０４は、次のレイヤを選択して（ＳＴ２０８）、ＳＴ２０４の判定を行う。
【００４７】
一方、番号「２」がない場合には（ＳＴ２０７：ＮＯ）、レイヤ選択部１０４は、次のフレームを選択して（ＳＴ２０５）、ＳＴ２０２の判定を行う。
【００４８】
このように、レイヤ選択部１０４は、状態マトリクスを参照することにより、フレーム毎に下位層のレイヤから上位層のレイヤに向かって、届いているがまだ復号していないことを示す番号「１」を探索していく。この際、レイヤ選択部１０４は、パケットが届いていないことを示す番号「０」を検出した場合には、それより上位のレイヤを探索しても復号できないので、次のフレームを探索する。すなわち、レイヤ選択部１０４は、各フレームの複数のレイヤのうち、あるレイヤより下位のすべてのレイヤにおいて取り出された符号がすべて復号済みであり（状態マトリクスの番号「２」）かつそのレイヤから上位のレイヤのうち取り出された符号が復号されていないレイヤであって最下位ではない特定のレイヤ（状態マトリクスの番号「１」であるレイヤ）、または、取り出された符号が復号されていない特定の最下位レイヤ（状態マトリクスの番号「１」である最下位レイヤ）、の探索を複数のフレーム毎に行うことにより、前記特定のレイヤまたは前記特定の最下位レイヤ（図２におけるレイヤ番号ｊ）、および、特定の最下位レイヤまたは特定レイヤを含む特定のフレーム（図２におけるフレーム番号ｉ）を選択する。また、レイヤ選択部１０４は、フレームについては、フレーム０から時間の進行方向に向かって探索していく。すなわち、レイヤ選択部１０４は、複数のフレームのうち時刻がより早いフレーム（つまり、フレーム０）から順に前記探索を行う。また、レイヤ選択部１０４は、レイヤの番号がレイヤ数を超えたら次のフレームの探索を始め、フレーム番号がフレーム数を超えたら最初のフレームに戻って探索を続ける。この処理は理論上無限ループになるが、優先的に処理を行っているプロセス１７０のタイマー部１０７における数値Ｔが下限値Ｔｌｉｍｉｔより小さくなった場合、割り込み処理として、次の合成音を出力しなければならない。従って、レイヤ選択部１０４は、タイマー部１０７における数値Ｔが下限値Ｔｌｉｍｉｔより小さいか否かを判定し（ＳＴ２０９）、タイマー部１０７における数値Ｔが下限値Ｔｌｉｍｉｔより小さい場合には、タイムリミット判定部１０８に割り込み処理を通知する。ただし、この割り込み処理では、割り込まれた直後の元のステップには戻らない。その理由は、合成することによりフレームが１つ進むので、合成部１１２の動作により、状態・符号格納部１０３と合成音格納部１０６のメモリ内容が大きく変化してしまうからである。
【００４９】
以上で、復号するフレーム番号とレイヤ番号を決定する方法の説明を終える。
【００５０】
図３は、状態マトリクスの一例を示す図である。
【００５１】
図３において、フレーム０が直近に出力すべき合成音の符号の各レイヤの状態である。フレーム１は、フレーム０の後で出力される合成音の符号の各レイヤの状態である。このように、状態マトリクスは、これから出力する合成音の符号の状態を格納するようになっている。
【００５２】
図４は、符号データマトリクスｃｏｄｅ（ｉ，ｊ）の一例を示す図である。図４は、図３の状態マトリクスの状態の場合において受け取った符号を格納したものである。
【００５３】
図４において、音声復号装置１００にパケットが届いているフレーム及びレイヤには網掛を付しているとともに、音声復号装置１００にパケットが届いていないフレーム及びレイヤは白抜きにしている。これらの符号を復号することにより、合成音（復号音）が得られる。上記において、フレーム０が直近に出力すべき合成音の符号である。フレーム１はフレーム０の後で出力される合成音の符号である。このようにこれから出力する合成音の符号を格納する。
【００５４】
図５及び図６は、合成音マトリクスの一例を示す図である。図５は、図４の符号データマトリクスの状態の場合における合成音マトリクスｓｙｎ（ｉ，ｔ）を示す図である。また、図６は、図４の符号データマトリクスの状態の場合における合成音マトリクスｓｐｅｃ（ｉ，ｆ）を示す図である。
【００５５】
図５及び図６において、フレーム２は、レイヤ０の符号がまだ届いていないので合成音がなく、フレーム３は、符号は届いているがまだ復号されていないので合成音がない。フレーム０及びフレーム１は、レイヤ０の符号が復号されているので合成音が存在する。ここで、フレーム０が直近に出力すべき合成音である。フレーム１はフレーム０の後で出力される合成音であり、このようにこれから出力する合成音を格納するようになっている。即ち、本実施の形態においては、直近に出力するフレーム０のみならず、フレーム０の次に出力するフレーム１の合成音を復号することができる。なお、スピーカ１１３は、全てのプロセスの間、１フレーム長の合成音を出力し続けている。
【００５６】
このように、本実施の形態によれば、できるだけ早く復号処理を行って合成音を早めに生成するので、所定時間連続してプロセッサを別の用途に使用することができるとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる。
【００５７】
（実施の形態２）
本実施の形態では、音声復号装置は、さらに、各フレームが無音区間であるか否かを判定し、無音区間であるか否かに応じて、復号すべきフレームおよびレイヤを選択する。
【００５８】
図７は、本実施の形態に係る音声復号装置２００の構成を示すブロック図である。なお、図７に示す音声復号装置２００は、実施の形態１に示した音声復号装置１００（図１）と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
【００５９】
無音フラグ格納部２０１は、復号が進むにつれて復号部２０３において作成される無音フラグを格納する。ここで、無音フラグｓｆｌａｇ（ｉ）は、フレーム番号ｉのフレームの状態を表す３段階の数値である。具体的には、「０」はレイヤ２まで符号（符号化情報）が復号されていないことを示し、「１」はレイヤ２まで符号（符号化情報）が復号され、かつ、合成音が有音であるか無音であるかの判定（以下、有音／無音判定という）の判定結果が有音であることを示し、「２」はレイヤ２まで符号（符号化情報）が復号され、かつ、合成音の有音／無音判定の判定結果が無音であることを示す。
【００６０】
レイヤ選択部２０２は、実施の形態１のレイヤ選択部１０４と同様にしてタイマー部１０７において計測する時間を参照するとともに、状態・符号格納部１０３に格納されている状態マトリクス及び無音フラグ格納部２０１に格納されている無音フラグを参照して、次に復号するフレーム番号（相対的なフレーム番号）とレイヤ番号とを決める。そして、レイヤ選択部２０２は、決定したフレーム番号とレイヤ番号とを復号部２０３に通知する。なお、レイヤ選択部２０２における、復号するフレーム番号とレイヤ番号とを決定する方法については後述する。
【００６１】
復号部２０３は、実施の形態１の復号部１０５と同様にして、レイヤ選択部２０２から通知されたフレーム番号とレイヤ番号とを参照して、状態・符号格納部１０３に格納されている符号データマトリクスｃｏｄｅ（ｉ，ｊ）の符号（符号化情報）を所定のアルゴリズム（本実施の形態では、ＩＴＵ−Ｔ標準Ｇ．７１８の復号を行う。アルゴリズムは非特許文献１に記載されているので説明を省略する。）により復号して時系列の合成音ｙｔ、もしくは周波数スペクトルの合成音ｚｆを得る。また、復号部２０３は、実施の形態１と同様にして、フレーム番号を参照して、合成音格納部１０６に格納されている合成音マトリクスｓｙｎ（ｉ，ｔ）またはｓｐｅｃ（ｉ，ｆ）に対して、（１）式及び（２）式に従って、得られた合成音ｙｔまたはｚｆを書き込む。
【００６２】
なお、本実施の形態では、一例としてＩＴＵ−Ｔ標準Ｇ．７１８の５層（レイヤ０〜レイヤ４）のスケーラブルコーデックを用いる。この場合、レイヤ２は、合成音が狭帯域から広帯域に変化するレイヤであるとともに、合成音が時系列から周波数スペクトルに変化するレイヤでもある。従って、復号部２０３は、レイヤ０，１までの合成音を、時系列の合成音マトリクスであるｓｙｎ（ｉ，ｔ）に書き込み、レイヤ２〜４までの合成音を、周波数スペクトルの合成音マトリクスであるｓｐｅｃ（ｉ，ｆ）に書き込む。また、レイヤ２の合成音が書き込まれる際には、マトリクスのメモリはクリアされている。また、レイヤ２以上の最終的な合成音は、ＩＭＤＣＴ（Inverse Modified Discrete Cosine Transform）によって、周波数スペクトルｓｐｅｃ（ｉ，ｆ）を時系列に変換し、変換後の合成音を、時系列の合成音マトリクスｓｙｎ（ｉ，ｔ）に加算することにより算出される。
【００６３】
そして、復号部２０３は、上記処理により合成音を書き込んだ合成音マトリクスｓｙｎ（ｉ，ｔ）またはｓｐｅｃ（ｉ，ｆ）を合成音格納部１０６に再度格納する。そして、復号部２０３は、状態・符号格納部１０３に格納されている状態マトリクスを取り出し、フレーム番号ｉ及びレイヤ番号ｊの値を「１」から「２」に書き換えて、書き換え後の状態マトリクスを状態・符号格納部１０３に再度格納する。これにより、状態マトリクスを参照することにより、フレーム番号ｉ及びレイヤ番号ｊの符号は復号済みであることが判るようになる。
【００６４】
また、復号部２０３は、復号された符号のレイヤ番号ｊが「２」である場合、フレーム番号ｉのフレームが無音区間であるか否かを判定する（合成音の有音／無音判定を行う）。そして、復号部２０３は、フレーム番号ｉの合成音に対する有音／無音判定の判定結果を示す無音フラグｓｆｌａｇ（ｉ）を、無音フラグ格納部２０１に出力する。
【００６５】
ここで、本実施の形態では、一例としてＩＴＵ−Ｔ標準Ｇ．７１８の５層（レイヤ０〜レイヤ４）のスケーラブルコーデックを用いており、レイヤ０，１を狭帯域（２００Ｈｚ〜３．４ｋＨｚ）とし、レイヤ２〜４を広帯域（１０Ｈｚ〜７ｋＨｚ）としている。よって、復号部２０３は、レイヤ０から順に復号していくと、レイヤ２まで復号して初めて広帯域の合成音が得られる。そのため、復号部２０３は、レイヤ２まで復号すれば、そのフレームが有音であるか無音であるかを判定することができる。換言すると、復号部２０３は、レイヤ０，１のみでは、高周波帯域の成分の有無を検出できないので、そのフレームの有音／無音判定を行うことができない。そこで、復号部２０３は、レイヤ２まで復号して得られる合成音、すなわち、時系列の合成音マトリクスｓｙｎ（ｉ，ｔ）および周波数スペクトルの合成音マトリクスｓｐｅｃ（ｉ，ｆ）に基づいて、有音／無音判定を行う。そして、復号部２０３は、判定結果を示す無音フラグをフレーム毎（ここでは、４フレーム（フレーム０〜３））に数値（「０」〜「２」）で表す。なお、復号部２０３における、有音／無音判定処理の詳細については後述する。
【００６６】
合成音検証部２０４は、状態・符号格納部１０３から状態マトリクスを取り出して次に
出力するフレームの状態ｓｔａｔｅ（０，＊）を参照する。また、合成音検証部２０４は、フレームの状態ｓｔａｔｅ（０，＊）の全てが「２」である場合には、フレーム番号ｉ＝０における符号（符号化情報）の復号は全てのレイヤで済んでいるので、合成音格納部１０６から合成音マトリクスｓｙｎ（０，ｔ）またはｓｐｅｃ（０，ｆ）を取り出す。また、合成音検証部２０４は、取り出したｓｐｅｃ（０，ｆ）のスペクトルを逆変換して（例えばＩＤＣＴ）時系列の合成音を得て、得た合成音をｓｙｎ（０，ｔ）に加算し、加算結果である合成音（ｓｙｎ（０，ｔ）、ｔ＝０−Ｌ）を合成部２０５へ出力する。この前に、合成音検証部２０４は、レイヤ０から上位のレイヤに向かって状態マトリクスの状態を参照する。この際、状態マトリクスの状態が「２」でないレイヤがあれば、そのレイヤより上位のレイヤは全て符号がないために復号されていないので、復号されていないレイヤの補償処理を行う必要がある可能性がある。ここで、補償処理を行う必要がある場合は、レイヤ０から全部合成音が無かった場合、または、レイヤ２において、周波数スケーラブルのように周波数が変わる場合である。上記の場合に対して、その他の場合は、補償による音質劣化よりも、上位レイヤの符号（符号化情報）が無いことで下位レイヤの符号化歪みを復号できない場合の音質劣化の方が聴感的に劣化が少ないという傾向があるため、一般に補償処理は必要なく、そのまま合成音を出力する。また、無音フラグ格納部２０１に格納されている無音フラグのうち、フレーム番号ｉ＝０（すなわち、次に出力するフレーム）に対応する無音フラグｓｆｌａｇ（０）が「２」の場合、つまり、レイヤ２までの復号が完了しており且つ無音と判定されている場合には、補償部１１０によるレイヤ３，４の補償処理をせずに、合成音検証部２０４は、合成音を合成部２０５に出力する。一方、合成音検証部２０４は、補償が必要な場合は、合成音（ｓｙｎ（０，ｔ）、ｔ＝０−Ｌ）または（ｓｐｅｃ（０，ｆ），ｆ＝−Ｍ）を補償部１１０へ出力する。
【００６７】
合成部２０５は、実施の形態１の合成部１１２と同様にして、合成音検証部２０４から合成音が入力した場合に直ちに合成音をスピーカ１１３の出力用バッファに伝送する。そして、合成部２０５は、１フレーム分の合成を行った後に、全ての状態を１フレーム進める。また、実施の形態１と同様、（３）式に従って、状態・符号格納部１０３に格納されている状態マトリクスと符号データマトリクス、及び合成音格納部１０６に格納されている合成音マトリクスのメモリシフトおよび初期化が行われる。そして、合成部２０５は、メモリシフトおよび初期化が行われた状態マトリクスと符号データマトリクスを状態・符号格納部１０３へ再度格納するとともに、メモリシフトおよび初期化が行われた合成音マトリクスを合成音格納部１０６に再度格納する。さらに、無音フラグ格納部２０１に格納されている無音フラグのメモリシフトおよび初期化が行われる。そして、合成部２０５は、メモリシフトおよび初期化が行われた無音フラグを無音フラグ格納部２０１に再度格納する。無音フラグのメモリシフトおよび初期化の方法を（４）式に示す。
【数３】
2010103855.tif 000018
【００６８】
また、合成部２０５は、実施の形態１の合成部１１２と同様、タイマー部１０７の時間Ｔを、スピーカ１１３が１フレームの合成音を出力するのに要する時間に設定し直す。また、合成部２０５は、クロック遅延検出部１１１から送られる信号を常に監視する。また、合成部２０５は、クロック遅延検出部１１１から調整指示が来た場合、調整指示が「進みすぎ」であり、且つ、無音フラグ格納部２０１からの無音フラグが「２」（無音区間）の場合（以下「状態１」と記載する）には、無音区間を先にスピーカ１１３に送り、現フレームの合成音をその後に送る。また、合成部２０５は、調整指示が「遅れ」であり、且つ、無音フラグ格納部２０１からの無音フラグが「２」の場合、且つ、合成音格納部１０６に２フレーム以上の合成音が既に復号されている場合（以下「状態２」と記載する）に
は、現フレームの合成音を出さずに破棄し、２番目の合成音をスピーカ１１３に送る。合成部２０５は、状態２の場合には更に１フレーム多くメモリシフトの処理を行う。また、合成部２０５は、クロック遅延検出部１１１から調整指示が来た場合、かつ上記の状態１及び状態２に当てはまらない場合は、状態１または状態２になるまで待ち続け、無音フラグが「２」の区間（無音区間）が来て対処できるタイミングになった際にフレームの出力を調整する処理を行う。
【００６９】
次に、レイヤ選択部２０２における、復号する符号のフレーム番号とレイヤ番号を決定する方法について、図８を用いて説明する。図８は、復号する符号のフレーム番号とレイヤ番号を決定する方法を示すフロー図である。なお、図８において、図２に示すフロー図と同一の処理については同一の符号を付し、説明を省略する。
【００７０】
まず、レイヤ選択部２０２は、相対的なフレーム番号０（ｉ＝０）のフレームを選択し（ＳＴ３０１）、相対的なフレーム番号が「３」よりも大きいか否かを判定する（ＳＴ３０２）。レイヤ選択部２０２は、相対的なフレーム番号が「３」よりも大きい場合には（ＳＴ３０２：ＹＥＳ）、ＳＴ２０１に進む。
【００７１】
一方、レイヤ選択部２０２は、相対的なフレーム番号が「３」よりも大きくない場合には（ＳＴ３０２：ＮＯ）、レイヤ番号０（ｊ＝０）のレイヤを選択する（ＳＴ３０３）。また、レイヤ選択部２０２は、レイヤ番号ｊが「４」よりも大きいか否か、または、レイヤ番号ｊが「２」よりも大きく且つ無音フラグｓｆｌａｇ（ｉ）が「２」であるか否かを判定する（ＳＴ３０４）。ただし、この際、無音フラグｓｆｌａｇ（ｉ）を参照する直前に、無音フラグ格納部２０１の無音フラグの内容を必ず読み直す。なお、判定の度に無音フラグの内容を読み直すのは、最新の無音フラグの内容を用いて判定を行う必要があるためであり、無音フラグ格納部２０１の内容は復号部２０３および合成部２０５により書き換えられている可能性があるからである。
【００７２】
レイヤ番号が「４」よりも大きい場合、または、レイヤ番号ｊが「２」よりも大きく且つ無音フラグｓｆｌａｇ（ｉ）が「２」である場合には（ＳＴ３０４：ＹＥＳ）、レイヤ選択部２０２は、次のフレームを選択して（ＳＴ３０５）、ＳＴ３０２の判定を行う。
【００７３】
一方、レイヤ番号が「４」よりも大きくなく、且つ、レイヤ番号ｊが「２」よりも大きくなく且つ無音フラグｓｆｌａｇ（ｉ）が「２」ではない場合には（ＳＴ３０４：ＮＯ）、レイヤ選択部２０２は、状態マトリクスｓｔａｔｅ（ｉ，ｊ）を参照することにより、選択したフレーム番号ｉのレイヤ番号ｊについて、届いている（すなわち、パケットが復号済みであり符号（符号化情報）を取り出している）がまだ符号（符号化情報）を復号していないことを示す番号「１」があるか否かを判定する（ＳＴ３０６）。ただし、この際、状態マトリクスｓｔａｔｅ（ｉ，ｊ）を参照する直前に、実施の形態１（図２に示すＳＴ２０６及び２０７）と同様にして、状態・符号格納部１０３の状態マトリクスの内容を必ず読み直す。
【００７４】
番号「１」がある場合には（ＳＴ３０６：ＹＥＳ）、レイヤ選択部２０２は、そのフレーム番号ｉとレイヤ番号ｊを復号部２０３へ出力する。
【００７５】
一方、番号「１」がない場合には（ＳＴ３０６：ＮＯ）、レイヤ選択部２０２は、選択したフレーム番号ｉのレイヤ番号ｊについて、復号済みであることを示す番号「２」を探索して、番号「２」があるか否かを判定する（ＳＴ３０７）。
【００７６】
番号「２」がある場合には（ＳＴ３０７：ＹＥＳ）、レイヤ選択部２０２は、次のレイヤを選択して（ＳＴ３０８）、ＳＴ３０４の判定を行う。
【００７７】
一方、番号「２」がない場合には（ＳＴ３０７：ＮＯ）、レイヤ選択部２０２は、次のフレームを選択して（ＳＴ３０５）、ＳＴ３０２の判定を行う。
【００７８】
また、レイヤ選択部２０２は、ＳＴ２０２において、相対的なフレーム番号が「３」よりも大きい場合には（ＳＴ２０２：ＹＥＳ）、ＳＴ３０１に戻る。
【００７９】
このように、レイヤ選択部２０２は、状態マトリクス及び無音フラグを参照することにより、フレーム毎に下位層（下位レイヤ）から上位層（上位レイヤ）に向かって、パケットが届いているがパケットから取り出される符号（符号化情報）をまだ復号していないことを示す番号「１」をｓｔａｔｅ（ｉ，ｊ）において探索していく。この際、レイヤ選択部２０２は、パケットが届いていないことを示す番号「０」を検出した場合には、「０」を検出したフレームではそれより上位のレイヤを探索しても復号できないので、次のフレームを探索する。
【００８０】
また、レイヤ選択部２０２では、復号する符号のフレーム番号およびレイヤ番号を決定するアルゴリズムとして、図８に示すように、近似した構成の２つのアルゴリズム（図８に示すＳＴ３０１〜３０８のアルゴリズム、および、ＳＴ２０１〜２０８のアルゴリズム）を直列に連結している。ここで、図８に示すＳＴ３０１〜３０８では、レイヤ選択部２０２は、探索しているフレームが無音区間であると判定した場合（図８に示すＳＴ３０４：ＹＥＳ）には、そのフレームの探索を中止して次のフレームの探索に移る。すなわち、レイヤ選択部２０２は、レイヤ番号ｊが４より大きくなる場合（そのフレームの全てのレイヤを探索した場合）に加え、レイヤ番号ｊが２より大きく（レイヤ３以上）且つ無音フラグｓｆｌａｇ（ｉ）が「２」（無音区間）である場合にも、そのフレームの探索を中止して次のフレームの探索に移る。すなわち、レイヤ選択部２０２は、複数のフレームのうち、無音フラグｓｆｌａｇ（ｉ）が「２」を示すフレーム（有音／無音判定の判定結果が無音区間であることを示すフレーム）以外のフレームにおいて、状態マトリクスの番号「１」であるレイヤの探索を行う。つまり、レイヤ選択部２０２は、無音フラグｓｆｌａｇ（ｉ）が「２」の場合には、レイヤ３，４の符号に対する復号によって得られる合成音のパワは非常に小さいと判断し、レイヤ３，４の符号に対する復号の必要性は低いと判断する。
【００８１】
一方、図８に示すＳＴ２０１〜２０８では、レイヤ選択部２０２は、ＳＴ３０１〜３０８におけるフレームの探索で復号すべき符号を持つレイヤが見つからなかった場合（図８に示すＳＴ３０２：ＹＥＳ）に、無音フラグｓｆｌａｇ（ｉ）を参照せずに、状態マトリクスｓｔａｔｅ（ｉ，ｊ）のみを参照して、届いているがまだ復号していないことを示す番号「１」を再度探索していく。
【００８２】
つまり、レイヤ選択部２０２は、図８に示すＳＴ３０１〜３０８において無音フラグを参照することで、無音区間であるフレームの上位レイヤ（レイヤ３，４）の符号の復号の優先度を下げて（すなわち、上位レイヤの符号の復号をスキップして）、他のフレームの探索を行う。その後、レイヤ選択部２０２は、復号すべき符号を持つレイヤが見つからない場合には図８に示すＳＴ２０１〜２０８において全てのレイヤについて復号すべき符号を持つレイヤを探索する。
【００８３】
以上で、復号する符号のフレーム番号とレイヤ番号を決定する方法の説明を終える。
【００８４】
次に、復号部２０３における有音／無音判定処理の詳細について説明する。図９は、本実施の形態に係る復号部２０３の内部構成のうち、有音／無音判定処理を行う構成部の構成を示すブロック図である。
【００８５】
図９において、振幅探索部２３１は、合成音格納部１０６から時系列の合成音ｓｙｎ（ｉ，ｔ）および周波数スペクトルの合成音ｓｐｅｃ（ｉ，ｆ）を取り出す。そして、振幅探索部２３１は、合成音ｓｙｎ（ｉ，ｔ）及びｓｐｅｃ（ｉ，ｆ）各々の振幅の最大値を探索する。具体的には、振幅探索部２３１は、合成音ｓｙｎ（ｉ，ｔ）またはｓｐｅｃ（ｉ，ｆ）の各信号値の絶対値を比較することで、合成音ｓｙｎ（ｉ，ｔ）及びｓｐｅｃ（ｉ，ｆ）各々の振幅の最大値を探索する。ここで、ｓｙｎ（ｉ，ｔ）の最大振幅をｍａｘｓｙｎ（ｉ）とし、ｓｐｅｃ（ｉ，ｆ）の最大振幅をｍａｘｓｐｅｃ（ｉ）とする。そして、振幅探索部２３１は、探索結果であるｍａｘｓｙｎ（ｉ）及びｍａｘｓｐｅｃ（ｉ）を比較部２３３に出力する。
【００８６】
定数格納部２３２は、合成音ｓｙｎ（ｉ，ｔ）及びｓｐｅｃ（ｉ，ｆ）各々に対する定数を格納する。ここで、ｓｙｎ（ｉ，ｔ）に対する定数をＭｓｙｎとし、ｓｐｅｃ（ｉ，ｆ）に対する定数をＭｓｐｅｃとする。２つの定数Ｍｓｙｎ及びＭｓｐｅｃは、聴感的に無音と判断できる、十分に小さい値に予め設定されている。
【００８７】
比較部２３３は、振幅探索部２３１から入力されるｍａｘｓｙｎ（ｉ）及びｍａｘｓｐｅｃ（ｉ）と、定数格納部２３２に格納されている定数Ｍｓｙｎ及びＭｓｐｅｃとをそれぞれ比較する。すなわち、比較部２３３は、ｍａｘｓｙｎ（ｉ）とＭｓｙｎとを比較し、ｍａｘｓｐｅｃ（ｉ）とＭｓｐｅｃとを比較する。そして、比較部２３３は、比較の結果、ｍａｘｓｙｎ（ｉ）がＭｓｙｎより小さく、且つ、ｍａｘｓｐｅｃ（ｉ）がＭｓｐｅｃより小さい場合、フレーム番号ｉのフレームを無音と判断し、無音フラグｓｆｌａｇ（ｉ）として「２」を生成する。一方、比較部２３３は、上記以外の場合、フレーム番号ｉのフレームを有音と判断し、無音フラグｓｆｌａｇ（ｉ）として「１」を生成する。そして、比較部２３３は、生成した無音フラグｓｆｌａｇ（ｉ）を無音フラグ格納部２０１に出力する。
【００８８】
このように、復号部２０３は、あるフレームの全ての合成音が予め設定された振幅（定数）よりも小さい場合のみ、そのフレームが無音であると判定する。換言すると、復号部２０３は、あるフレームのいずれか１つの合成音でも予め設定された振幅（定数）以上の場合には、そのフレームが有音であると判定する。また、復号部２０３は、時系列の合成音ｓｙｎ（ｉ，ｔ）及び周波数スペクトルの合成音ｓｐｅｃ（ｉ，ｆ）の有音／無音判定を個別に行い、双方が無音であると判定した場合のみ、フレーム番号ｉのフレームが無音であると判定する。換言すると、復号部２０３は、時系列の合成音ｓｙｎ（ｉ，ｔ）及び周波数スペクトルの合成音ｓｐｅｃ（ｉ，ｆ）のうちいずれか１つでも有音であると判定した場合には、フレーム番号ｉのフレームが有音であると判定する。
【００８９】
このように、音声復号装置２００は、復号部２０３におけるレイヤ２の復号時に得られる無音フラグを用いることで、レイヤ３，４の符号（符号化情報）の重要性を推定する。具体的には、音声復号装置２００は、無音フラグが無音区間を示す場合（「２」の場合）、レイヤ３，４の符号の重要性が小さいと推定する。これは、スケーラブルコーデックでは、下位レイヤの符号化誤差（符号化歪み）が上位レイヤで符号化されるため、パワの期待値は上位レイヤほどより小さくなるためである。すなわち、レイヤ２の復号時に無音区間と判定されたフレームでは、レイヤ２よりも上位レイヤであるレイヤ３，４の符号（符号化情報）を復号して得られる合成音を下位レイヤの合成音と加算しても、加算結果も無音区間であると判定される可能性が高くなる。よって、音声復号装置２００は、無音フラグが「２」（すなわち無音区間）であるフレームのレイヤ３，４の符号に対する復号の優先度を下げる（すなわち、レイヤ３，４の符号に対する復号をスキップする）ことで、スケーラブルコーデックの復号を効率良く行うことができる。
【００９０】
図１０は、無音フラグｓｆｌａｇ（ｉ）の一例を示す図である。図１０は、図３に示す状態マトリクスの状態及び図４に示す符号データマトリクスの状態の場合において、無音フラグ格納部２０１に格納されている無音フラグである。
【００９１】
図１０に示すフレーム０では、図３に示すようにレイヤ２の符号まで復号されているので有音／無音判定が行われている。図１０では、フレーム０は音声が有音であることを示す「１」となる。一方、図１０に示すフレーム１〜３については、図３に示すようにレイヤ２以降の符号が復号されていないので、有音／無音判定が行われていない。よって、図１０では、フレーム１〜３はレイヤ２以降の符号が復号されていないことを示す「０」となる。
【００９２】
このようにして、本実施の形態では、音声復号装置は、実施の形態１と同様にして、復号すべき符号を持つレイヤの探索の際、各フレームにおいてパケットが届いていないレイヤよりも上位レイヤの探索を行わずに、次のフレームを探索する。さらに、音声復号装置は、復号すべき符号を持つレイヤの探索の際、各フレームのあるレイヤにおいて無音区間であると判定された場合にはそのレイヤよりも上位のレイヤの探索を行わずに、次のフレームを探索する。よって、本実施の形態によれば、実施の形態１よりもさらに、できるだけ早く復号処理を行って合成音を早めに生成するので、所定時間連続してプロセッサを別の用途に使用することができるとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる。
【００９３】
以上、本発明の各実施の形態について説明した。
【００９４】
なお、上記の実施の形態において、４つのフレーム及び５つのレイヤの符号を復号する場合について説明したが、本発明はこれに限らず、様々なレイヤ数のスケーラブルコーデックに適用することができる。例えば、ＩＴＵ−Ｔ標準Ｇ．７２９．１のスケーラブルコーデックは１２層のレイヤで構成されているので、上記の実施の形態において、その仕様に合わせることもできる。即ち、本発明はレイヤ数に依存しない。またフレーム数もシステムの都合で様々に変更してもよい。多くのフレーム分の符号データマトリクスを使うと、パケットがバラバラに届いてもそのフレーム数分の余裕があるので、送られた符号データを全て使って高品質の復号がなされる確率は上がるとともに、パケットが無駄にならない。システムの性能により、パケットの処理遅延を極力少なくする必要がある場合には、フレーム数を調整して遅延を少なくすればよい。即ち、本発明はフレーム数には依存しない。
【００９５】
また、上記の実施の形態において、５つのレイヤを全部使用したが、本発明はこれに限らず、音声復号装置において使用するレイヤの最大数を決めて、最大数のレイヤの符号の復号結果を合成して生成した合成音を出力するという仕様でも本発明は有効である。その場合、パケット受信部１０１において、不要な上位層のレイヤのパケットを破棄してもよい。即ち、本発明は、音声復号装置と音声符号化装置とのレイヤ数の違いには依存しない。
【００９６】
また、上記の実施の形態において、合成部１１２（または、合成部２０５）の機能により、状態・符号格納部１０３及び合成音格納部１０６に格納されるマトリクスのアップデートの際にメモリシフトを行った。しかし、本発明はこれに限らず、各マトリクスのメモリをフレームに対してサイクリックに使用して、メモリシフトを行わない構成でも良い。これにより、メモリシフトの演算量を節約することができる。
【００９７】
また、上記の実施の形態において、各レイヤのパケットが異なる順番により送られるという場合について開示したが、本発明はこれに限らず、いくつかのレイヤの符号が纏まっ
て伝送される場合でも本発明は有効である。この場合には、状態・符号格納部１０３及び合成音格納部１０６に格納されるマトリクスをまとめて読み書きすればよいからである。また、まとめて読み書きしなくても、まとめて１つのレイヤの符号として扱うこともできる。即ち、本発明は、伝送されるパケットのレイヤ数には依存しない。
【００９８】
また、上記の実施の形態において、パケットが合成に間に合わなかった場合、または、例えばレイヤ０、１のパケットが届いて、レイヤ２のパケットが届かず、レイヤ３、４のパケットが届いている場合、レイヤ３、４のパケットの復号結果は合成には使用できない場合について説明した。しかし、本発明はこれに限らず、レイヤ３、４のパケットの復号結果を以降のフレームの復号の際に使用するフィルタまたは予測の状態の作成に用いることができる。これにより、以降のフレームの復号性能を確保することができる。
【００９９】
また、上記実施の形態では、音声復号装置が、複数のフレームのうち時刻がより早いフレーム（つまり、フレーム番号がより小さいフレーム）から順に、状態マトリクスの番号「１」であるレイヤの探索を行う場合について説明した。しかし、本発明では、音声復号装置は、フレーム番号順に関わらずフレームを選択してもよい。
【０１００】
また、上記の実施の形態の説明は、本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。本発明は、音声復号装置を有するシステムであればどのような場合にも適用することができる。
【０１０１】
また、上記の実施の形態において説明した音声復号装置は、移動体通信システムにおける通信端末装置および基地局装置に搭載することが可能であり、これにより上記と同様の作用効果を有する通信端末装置、基地局装置、および移動体通信システムを提供することができる。
【０１０２】
また、上記の実施の形態においては、ハードウェアで構成する場合を例に説明したが、本発明はこれに限らず、ソフトウェアで実現することも可能である。例えば、本発明に係るアルゴリズムをプログラミング言語によって記述し、このプログラムをメモリに記憶しておいて情報処理手段によって実行させることにより、本発明に係る音声復号装置等と同様の機能を実現することができる。
【０１０３】
また、上記実施の形態の各機能ブロックは、典型的には集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されても良いし、一部または全てを含むように１チップ化されても良い。ここで、ＬＳＩは、集積度の違いによって、ＩＣ、システムＬＳＩ、スーパーＬＳＩまたはウルトラＬＳＩ等と呼称されることもある。
【０１０４】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現しても良い。ＬＳＩ製造後に、プログラム化することが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続もしくは設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１０５】
さらに、半導体技術の進歩または派生する別技術により、ＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
【０１０６】
２００９年３月１３日出願の特願２００９−０６０７９２および２００９年７月１５日出願の特願２００９−１６６７９６の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。
【産業上の利用可能性】
【０１０７】
本発明にかかる音声復号装置は、特に階層構造を持つスケーラブルコーデックに適用するのに好適である。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数レイヤから構成される音声符号化装置において生成されたそれぞれのレイヤの符号を、複数フレームにわたって受信して格納する受信手段と、
前記それぞれのレイヤの符号を復号する復号手段と、
を具備する音声復号装置であって、
未復号状態の前記それぞれのレイヤの符号のうち、最初に復号を行う符号に対応するフレーム番号とレイヤ番号とを選択する選択手段、
を更に具備し、
前記受信手段は、
前記それぞれのレイヤの符号が未受信であるか未復号であるか復号済みであるかを示す復号状態を更に格納し、更新指示を入力した場合には前記復号状態の更新を行い、
前記選択手段は、
前記受信手段において前記復号状態が格納又は更新された時点で前記復号状態が未復号状態であって、格納又は更新後に最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を、前記復号状態を探索することにより選択するとともに、前記受信手段に対して、前記復号状態の前記更新指示を出力し、
前記復号手段は、
前記フレーム番号及び前記レイヤ番号に対応する符号を復号する、
音声復号装置。
【請求項２】
前記選択手段は、
前記復号状態の探索において、１つのフレームについて、前記復号状態が未復号状態であるレイヤのうち、前記復号状態が復号済みであるレイヤよりも１つ上位に存在するレイヤの符号、又は、前記１つのフレームにおける最下位レイヤの符号を最初に復号を行う符号とし、前記最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を選択し、
前記１つのフレームについて前記選択ができなかった場合には、次のフレームについて探索を継続する、
請求項１記載の音声復号装置。
【請求項３】
フレーム毎に無音区間であるか否かを判定する判定手段と、
前記判定手段における判定結果をフレーム毎に格納する判定結果格納手段と、
を更に具備し、
前記選択手段は、
前記復号状態とともに前記判定結果も用いて前記復号状態の探索を行う、
請求項１記載の音声復号装置。
【請求項４】
前記選択手段は、
前記複数フレームのうち、前記判定結果が無音区間であるフレームをスキップして前記復号状態の探索を行う、
請求項３記載の音声復号装置。
【請求項５】
１つのフレームについて、前記復号手段において前記フレーム番号及び前記レイヤ番号の符号を復号して生成された復号信号と、復号済みの他のレイヤの復号信号とを合成して合成音を生成する合成手段、を更に具備する、
請求項１記載の音声復号装置。
【請求項６】
複数レイヤから構成される音声符号化装置において生成されたそれぞれのレイヤの符号を、複数フレームにわたって受信してメモリに格納する受信ステップと、
前記それぞれのレイヤの符号を復号する復号ステップと、
を具備する音声復号方法であって、
未復号状態の前記それぞれのレイヤの符号のうち、最初に復号を行う符号に対応するフレーム番号とレイヤ番号とを選択する選択ステップ、
を更に具備し、
前記受信ステップは、
前記それぞれのレイヤの符号が未受信であるか未復号であるか復号済みであるかを示す復号状態を更に前記メモリに格納し、更新を指示された場合には前記メモリの前記復号状態の更新を行い、
前記選択ステップは、
前記メモリにおいて前記復号状態が格納又は更新された時点で前記復号状態が未復号状態であって、格納又は更新後に最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を、前記復号状態を探索することにより選択するとともに、前記メモリに対して、前記復号状態の更新を指示し、
前記復号ステップは、
前記フレーム番号及び前記レイヤ番号に対応する符号を復号する、
音声復号方法。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2010103855.tif 000019
【図２】
2010103855.tif 000020
【図３】
2010103855.tif 000021
【図４】
2010103855.tif 000022
【図５】
2010103855.tif 000023
【図６】
2010103855.tif 000024
【図７】
2010103855.tif 000025
【図８】
2010103855.tif 000026
【図９】
2010103855.tif 000027
【図１０】
2010103855.tif 000028
【国際調査報告】
2010103855.tif 000029
2010103855.tif 000030
2010103855.tif 000031