JPWO2010103855A1 - 音声復号装置及び音声復号方法 - Google Patents
音声復号装置及び音声復号方法 Download PDFInfo
- Publication number
- JPWO2010103855A1 JPWO2010103855A1 JP2011503738A JP2011503738A JPWO2010103855A1 JP WO2010103855 A1 JPWO2010103855 A1 JP WO2010103855A1 JP 2011503738 A JP2011503738 A JP 2011503738A JP 2011503738 A JP2011503738 A JP 2011503738A JP WO2010103855 A1 JPWO2010103855 A1 JP WO2010103855A1
- Authority
- JP
- Japan
- Prior art keywords
- layer
- decoding
- frame
- code
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 125
- 230000002194 synthesizing effect Effects 0.000 claims description 14
- 239000000284 extract Substances 0.000 abstract description 19
- 239000011159 matrix material Substances 0.000 description 178
- 230000015572 biosynthetic process Effects 0.000 description 56
- 238000003786 synthesis reaction Methods 0.000 description 56
- 238000012545 processing Methods 0.000 description 46
- 238000001228 spectrum Methods 0.000 description 30
- 238000012795 verification Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 24
- 239000000872 buffer Substances 0.000 description 22
- 238000004891 communication Methods 0.000 description 20
- 238000001514 detection method Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 10
- 230000003111 delayed effect Effects 0.000 description 10
- 230000006866 deterioration Effects 0.000 description 10
- 230000010354 integration Effects 0.000 description 6
- 238000010295 mobile communication Methods 0.000 description 6
- 238000013139 quantization Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000001131 transforming effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000010485 coping Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/167—Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/0212—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/18—Vocoders using multiple modes
- G10L19/24—Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
所定時間連続してプロセッサを別の用途に使用するとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる音声復号装置。この装置において、パケット受信部(101)は、複数のフレームの各レイヤのパケットを受信するとともに、受信したパケットから符号を取り出す。状態・符号格納部(103)は、符号と符号の復号状態とを格納する。レイヤ選択部(104)は、復号状態に基づいて、最初に復号すべき符号に対応するフレーム番号とレイヤ番号とを選択する。復号部(105)は、選択したフレーム番号及びレイヤ番号の符号を復号する。
Description
本発明は、音声復号装置及び音声復号方法に関し、特に階層構造を持つスケーラブルコーデックに用いられる音声復号装置及び音声復号方法に関する。
移動体通信においては、伝送帯域の有効利用のために音声または画像のディジタル情報の圧縮符号化が必須である。その中でも携帯電話で広く利用されている音声コーデック(符号化/復号)技術に対する期待は大きく、圧縮率の高い従来の高効率符号化に対して更により高音質の要求が高まっている。
また、近年、より効率的であるとともに高品質である音声コーデックとして多層構造を有するスケーラブルコーデックは、IP(Internet Protocol )通信網に用いられ、ITU−T(International Telecommunication Union - Telecommunication Standardization Sector)またはMPEG(Moving Picture Experts Group)において標準化を検討している。
また、20年前に確立された音声の発声機構をモデル化するとともにベクトル量子化を応用した音声符号化技術の基本方式であるCELP(Code Excited Linear Prediction)、及びオーディオ符号化で用いられてきた変換符号化技術(MPEG標準ACCやMP3等)により、音声・楽音符号化技術は大きく前進し、高品質の通信及び音楽鑑賞を可能にした。さらに、近年はオールIP化、シームレス化及びブロードバンド化を睨み、音声からオーディオまでをカバーするようなスケーラブルコーデックの開発及び標準化(ITU−T SG16 WP3)も進んでいる。この符号化技術は、伝送する音声の周波数帯域が階層的になっており、また下位層の量子化誤差を上位層で符号化するという構成のコーデックである。
特許文献1には、下位層の量子化誤差を上位層で符号化する階層型符号化の基本的発明、及びサンプリング変換を用いて下位層から上位層に向かってより広い周波数帯域の符号化を行う方法について開示されている。また、ITU−Tでは5層のスケーラブル音声コーデックG.718が勧告化された(例えば、非特許文献1)。
また、スケーラブルコーデックの各レイヤ(層)の符号を伝送する場合、レイヤ毎に異なるパケットで伝送する方法を採ることが考えられる。しかし、通信システムによっては、復号器側において、各フレームの各レイヤのパケットの受信順または受信タイミングが異なってしまう場合がある。しかし、このような場合でも、音声通信においては、復号器において安定して復号音声を出力し続けなければならない。これに対処するためには、揺らぎ吸収バッファを設け、フレームを構成する複数のパケットを揺らぎ吸収バッファに格納することにより、フレームを構成する複数のパケットの到着を待って、全てのパケットが到着した後に同期を取って復号するというアルゴリズムが考えられる。また、この際、フレームのパケットを合成するタイミングが迫っている場合に、見切りでパケットの復号を始め、パケットの到着状態を見ながらパケットが到着した場合に追加で復号し、パケットが到着しなければ諦めて、遅延したパケットは破棄するというアルゴリズムにより連続で復号することが行われる。このような処理においては、「遅延揺らぎ」または「通信揺らぎ」と呼ばれる現象が起こる。特に、音声データの通信に関して、この「揺らぎ」に対処する発明が特許文献2〜5に示されている。
ITU−T G.718規格書、2008年6月
しかしながら、特許文献2〜特許文献5においては、所定時間の音声信号を1つのパケットを用いて伝送するものであり、上記の「揺らぎ」との関係において、複数のレイヤの各符号の処理についての記載はない。即ち、特許文献2〜特許文献5においては、フレーム毎に全てのレイヤの符号を受信してから一斉に復号するので、全てのレイヤの符号を受信するまで待つ時間が存在し、これにより処理遅延が都度発生するという問題がある。また、見切りで各レイヤの復号を始める場合でも、フレーム毎に各レイヤの符号を受信するまで待つ時間が存在するので、同様に処理遅延が発生するという問題がある。従って、特許文献2〜特許文献5においては、復号器のプロセッサに対して、纏まった時間を必要とする別のプロセスを実行させることはできないという問題がある。
また、特許文献2〜特許文献5においては、外部から割り込みが入った際に見切り復号の途中である場合には、見切り復号しているフレームの合成音を出力することは不可能になる。従って、特許文献2〜特許文献5においては、見切り復号の処理を前倒しで行い、合成音を早めに復号しておくことが重要になる。
また、従来、携帯端末においては、クロック遅延が頻繁に起こる。クロック遅延とは、送信側のクロックと受信側のクロックとの間のクロックのずれが蓄積して、大きな時間のずれになり、同期が取れなくなる現象である。その場合の対策としては、受信側が進んでいる場合は無音区間に合成音を1フレーム追加し、受信側が遅れている場合は合成音を1フレーム破棄して、破棄したフレームの次のフレームの合成音を出力する。従って、従来の装置においては、復号処理を前倒しで行い、合成音を早めに生成しておき、無音区間のフレームのタイミングを待って、合成音の追加または合成音の破棄を行う必要ある。
即ち、従来の装置においては、見切り復号及びクロック遅延に対する対処の何れの場合においても、合成音を早めに生成することが重要であるにも関わらず、処理遅延が生ずることにより、合成音を出力することができなくなるという問題がある。
本発明の目的は、できるだけ早く復号処理を行って合成音を早めに生成するので、所定時間連続してプロセッサを別の用途に使用することができるとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる音声復号装置及び音声復号方法を提供することである。
本発明の音声復号装置は、複数レイヤから構成される音声符号化装置において生成されたそれぞれのレイヤの符号を、複数フレームにわたって受信して格納する受信手段と、前記それぞれのレイヤの符号を復号する復号手段と、を具備する音声復号装置であって、未復号状態の前記それぞれのレイヤの符号のうち、最初に復号を行う符号に対応するフレーム番号とレイヤ番号とを選択する選択手段、を更に具備し、前記受信手段は、前記それぞれのレイヤの符号が未受信であるか未復号であるか復号済みであるかを示す復号状態を更に格納し、更新指示を入力した場合には前記復号状態の更新を行い、前記選択手段は、前記受信手段において前記復号状態が格納又は更新された時点で前記復号状態が未復号状態であって、格納又は更新後に最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を、前記復号状態を探索することにより選択するとともに、前記受信手段に対して、前記復号状態の前記更新指示を出力し、前記復号手段は、前記フレーム番号及び前記レイヤ番号に対応する符号を復号するようにした。
本発明の音声復号方法は、複数レイヤから構成される音声符号化装置において生成されたそれぞれのレイヤの符号を、複数フレームにわたって受信してメモリに格納する受信ステップと、前記それぞれのレイヤの符号を復号する復号ステップと、を具備する音声復号方法であって、未復号状態の前記それぞれのレイヤの符号のうち、最初に復号を行う符号に対応するフレーム番号とレイヤ番号とを選択する選択ステップ、を更に具備し、前記受信ステップは、前記それぞれのレイヤの符号が未受信であるか未復号であるか復号済みであるかを示す復号状態を更に前記メモリに格納し、更新を指示された場合には前記メモリの前記復号状態の更新を行い、前記選択ステップは、前記メモリにおいて前記復号状態が格納又は更新された時点で前記復号状態が未復号状態であって、格納又は更新後に最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を、前記復号状態を探索することにより選択するとともに、前記メモリに対して、前記復号状態の更新を指示し、前記復号ステップは、前記フレーム番号及び前記レイヤ番号に対応する符号を復号する、ようにした。
本発明によれば、できるだけ早く復号処理を行って合成音を早めに生成するので、所定時間連続してプロセッサを別の用途に使用することができるとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる。
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(実施の形態1)
図1は、本発明の実施の形態1に係る音声復号装置100の構成を示すブロック図である。音声復号装置100は、スケーラブルデコーダ(スケーラブル(多層)コーデックの復号器)の一例である。なお、本実施の形態に係る通信システムでは、各フレームは複数のレイヤにより構成されるとともに、レイヤ毎に符号化が実行されて符号が生成され、その符号を格納したパケットが生成される。これにより、スケーラブルコーデックの各レイヤの符号が伝送される。
図1は、本発明の実施の形態1に係る音声復号装置100の構成を示すブロック図である。音声復号装置100は、スケーラブルデコーダ(スケーラブル(多層)コーデックの復号器)の一例である。なお、本実施の形態に係る通信システムでは、各フレームは複数のレイヤにより構成されるとともに、レイヤ毎に符号化が実行されて符号が生成され、その符号を格納したパケットが生成される。これにより、スケーラブルコーデックの各レイヤの符号が伝送される。
音声復号装置100は、パケット受信部101と、フレーム番号格納部102と、状態・符号格納部103と、レイヤ選択部104と、復号部105と、合成音格納部106と、タイマー部107と、タイムリミット判定部108と、合成音検証部109と、補償部110と、クロック遅延検出部111と、合成部112と、スピーカ113とから主に構成される。
音声復号装置100におけるプロセスは、主に4つのプロセス150、160、170、180により構成される。また、4つのプロセス150、160、170、180は、それぞれ独立に動作する。ただし、優先順位は、プロセス170が最も高く、次にプロセス180、プロセス160と続き、プロセス150が最も優先度が低い。同時に複数のプロセスが同一の格納部やメモリにアクセスした場合、前記の優先順位の順番で処理が行われる。以下に、各構成について、詳細に説明する。
パケット受信部101は、伝送路からパケットを受け取り、受信したということを示すデータ(ACK)を伝送路に送る。また、パケット受信部101は、受け取ったパケットを解凍するとともに復号することにより符号を取り出す。すなわち、パケット受信部101は、複数のフレームのレイヤ毎のパケットをそれぞれ受信して、受信した、複数のフレームのレイヤ毎の符号を取り出す。この際、パケット受信部101は、ビット誤りが検出される等の理由により符号が正常に取り出せない場合にはパケットを破棄し、破棄したフレーム番号及びレイヤ番号のパケットの再送を伝送路にリクエストする。なお、パケット受信部101は、再送をリクエストせずに、パケットの取得を諦めてもよい。
また、パケット受信部101は、符号を正常に取り出せた場合には、フレーム番号格納部102に格納されている基準番号、即ち現在スピーカ113から出力されている音声に対応するパケットのフレーム番号を参照して、相対的なフレーム番号を算出する。そして、パケット受信部101は、算出したフレーム番号を状態・符号格納部103に格納することにより、状態・符号格納部103に格納された状態マトリクス及び符号化データマトリクスを変更する。例えば、パケット受信部101は、基準番号が「761」、受け取った符号のフレーム番号が「763」、及び受け取った符号のレイヤ番号が「2」であった場合は、現在合成しているフレーム番号が2つ先のフレーム番号のフレームであるので、相対的なフレーム番号「1」を算出し、レイヤ番号「2」は変更しない。即ち、パケット受信部101は、状態・符号格納部103から状態マトリクスを取り出し、state(1,2)の値を、符号が届いたこと(すなわち、パケットを復号済みであり、符号を取り出したこと)を示す「1」にして状態マトリクスに書き込みを行う。そして、パケット受信部101は、書き込みした状態マトリクスを状態・符号格納部103に再度格納する。また、パケット受信部101は、符号データマトリクスを状態・符号格納部103から取り出し、code(1,2)に符号を格納する。そして、パケット受信部101は、符号を格納した符号データマトリクスを状態・符号格納部103に再度格納する。なお、この際、10ビットで表した場合は、0〜1023の値を再帰的に取るので、基準番号が「1023」の次は「0、1、2・・・」となることに注意し、時間的な先後を的確に検出するようにする。
また、パケット受信部101は、使えないパケットを受信した場合は破棄する。ここで、使えないパケットとは、例えば、上記の例の場合、基準番号が「761」、及び受け取った符号のフレーム番号が「760」である場合、既に合成が済んでおり、その符号は届くのが遅過ぎたために使い道がない。従って、この場合、パケット受信部101は、基準番号以下のフレーム番号の符号は格納せずに破棄する。この処理により以降の復号処理の無駄を省くことができる。なお、使えないパケットは、合成音が作成できないという意味であり、実際には、そのフレーム以後のフレームの復号に必要なフィルタまたは予測に必要な状態(ステート)を作成しておくという使い道がある。この場合、作成した状態は、復号に必要な重要な情報であり、符号が得られた際には状態の作成を行うことが望ましい。
フレーム番号格納部102は、合成部112から入力した現在スピーカ113から出力されている音声に対応するパケットのフレーム番号を格納する。
状態・符号格納部103は、各フレームのレイヤ毎の通信状況、および、各フレームのレイヤ毎の符号が復号済みであるか否かを示す状態マトリクスを格納する。状態マトリクスは、状態を表す3段階の数値の2次元マトリクスである。具体的には、「0」はパケットが音声復号装置100に届いていないことを示し、「1」はパケットが音声復号装置に届いている(つまり、パケット受信部101でパケットが復号済みであり符号(符号化情報ともいう)が取り出された)ものの符号(符号化情報)が復号されていないことを示し、「2」は符号(符号化情報)が復号されたことを示す。また、状態・符号格納部103は、パケット受信部101において受け取った符号を符号データマトリクスとして格納している。なお、状態マトリクス及び符号データマトリクスについては後述する。
レイヤ選択部104は、タイマー部107において計測する時間を参照するとともに、状態・符号格納部103に格納されている状態マトリクスを参照して、次に復号するフレーム番号(相対的なフレーム番号)とレイヤ番号とを決める。そして、レイヤ選択部104は、決定したフレーム番号とレイヤ番号とを復号部105に通知する。また、レイヤ選択部104は、タイムリミット判定部108から復号の終了通知を受けた場合に、所定時間(例えば4つのフレーム)内のフレームの復号処理を終了して、次の所定時間内のフレームの復号処理を開始する。また、レイヤ選択部104は、新たに復号を開始する際にタイムリミット判定部108に復号開始を通知する。また、レイヤ選択部104は、合成部112から入力する合成音の復号結果を見ながらフレームとレイヤを選択する。なお、復号するフレーム番号とレイヤ番号とを決定する方法については後述する。
復号部105は、レイヤ選択部104から通知されたフレーム番号とレイヤ番号とを参照して、状態・符号格納部103に格納されている符号データマトリクスcode(i,j)の符号(符号化情報)を所定のアルゴリズム(本実施の形態では、ITU−T標準G.718の復号を行う。アルゴリズムは非特許文献1に記載されているので説明を省略する。)により復号して時系列の合成音yt、もしくは周波数スペクトルの合成音zfを得る。また、復号部105は、フレーム番号を参照して、合成音格納部106に格納されている合成音マトリクスsyn(i,t)またはspec(i,f)に対して、得られた合成音ytまたはzfを書き込む。この処理を(1)式及び(2)式に示す。
すなわち、復号部105は、レイヤ選択部104で選択されたフレーム((1)式および(2)式ではフレーム番号i)において、レイヤ選択部104で選択されたレイヤの符号を復号して得られる復号結果(時系列の合成音yt、もしくは周波数スペクトルの合成音zf)を、符号が復号済みの他のレイヤの復号結果(合成音マトリクスsyn(i,t)またはspec(i,f))と合成して合成音を得る。そして、復号部105は、上記処理により合成音を書き込んだ合成音マトリクスsyn(i,t)またはspec(i,f)を合成音格納部106に再度格納する。そして、復号部105は、状態・符号格納部103に格納されている状態マトリクスを取り出し、フレーム番号i及びレイヤ番号jの値を「1」から「2」に書き換えて、書き換え後の状態マトリクスを状態・符号格納部103に再度格納する。これにより、状態マトリクスを参照することにより、フレーム番号i及びレイヤ番号jの符号は復号済みであることが判るようになる。また、復号部105は、所定時間の復号処理が終了した場合に、タイムリミット判定部108に復号終了を通知する。
合成音格納部106は、復号が進むにつれて復号部105において順次書き換えられる合成音マトリクスを格納する。スケーラブルコーデックではレイヤの合成音を加算したものが最終的な合成音になるので、合成音格納部106は、フレーム毎に1つのフレーム長の合成音バッファを有する。ただし、本実施の形態では、時系列の信号と周波数スペクトルの信号とは、バッファを分けて格納する。その理由は、主に上位層で用いられる変換符号化のレイヤでは各レイヤの合成音は周波数スペクトル(例えばMDCT(Modified Discrete Cosine Transform)スペクトル)により加算され、最後に逆変換(例えばIDCT(Inverse Discrete Cosine Transform))して時系列に直されることが一般的であるからである。なお、合成音マトリクスについては後述する。
タイマー部107は、時間を計る機能を持ち、設定された時間を示す数値Tを、計測する実時間により0に向かって正確に減らしていく機能を有している。タイマー部107の時刻は外部から見ることができるとともに、時間Tの再設定もできる。合成音がスピーカ113から出力されている間に復号処理が行われるが、タイマー部107は、次の合成を行うまでの時間を計る機能を有する。
タイムリミット判定部108は、タイマー部107が示す数値Tを参照して、数値Tが下限値Tlimit以上の場合は復号プロセスを続けてよいので、レイヤ選択部104に対してその旨を通知する。即ち、時間下限値Tlimitになるまで復号プロセスを続ける。また、タイムリミット判定部108は、数値Tが下限値Tlimit未満の場合には、復号処理の終了をレイヤ選択部104に通知する。また、タイムリミット判定部108は、レイヤ選択部104から復号開始の通知を受けることにより、タイマー部107が示す数値Tと下限値Tlimitとの比較を開始する。ここで、下限値Tlimitは、予め決められている定数である。タイマー部107では、設定された時間が0に向かって減っていくが、この時間がある時間よりも小さくなった場合には復号処理から合成音を生成する処理に移らなければ次の合成音出力に間に合わなくなる。下限値Tlimitは、それを示す定数である。下限値Tlimitは、「(合成音検証部109の処理に掛かる時間)+(補償部110において想定される必要な時間の内の最大時間)+(合成部112においてスピーカ113に合成音を出力する時間)+(1つのレイヤの復号に掛かる時間の最大時間)」により求めることができる。
合成音検証部109は、状態・符号格納部103から状態マトリクスを取り出して次に出力するフレームの状態state(0,*)を参照する。また、合成音検証部109は、全てが「2」である場合には、復号は全てのレイヤで済んでいるので、合成音格納部106から合成音マトリクスsyn(0,t)またはspec(0,f)を取り出す。また、合成音検証部109は、取り出したspec(0,f)のスペクトルを逆変換して(例えばIDCT)時系列の合成音を得て、得た合成音をsyn(0,t)に加算し、得られた(syn(0,t)、t=0−L)を合成部112へ出力する。この前に、合成音検証部109は、レイヤ0から上位のレイヤに向かって状態マトリクスの状態を参照する。この際、「2」でないレイヤがあれば、そのレイヤより上位のレイヤは全て符号がないために復号されていないので、復号されていないレイヤの補償処理を行う必要がある可能性がある。ここで、補償処理を行う必要がある場合は、レイヤ0から全部合成音が無かった場合、または、レイヤ2において、周波数スケーラブルのように周波数が変わる場合である。上記の場合に対して、その他の場合は、補償による音質劣化よりも、上位レイヤの符号(符号化情報)が無いことで下位レイヤの符号化歪みを復号できない場合の音質劣化の方が聴感的劣化が少ないという傾向があるため、一般に補償処理は必要なく、そのまま合成音を出力する。合成音検証部109は、補償が必要な場合は、合成音(syn(0,t)、t=0−L)または(spec(0,f),f=−M)を補償部110へ出力する。
補償部110は、合成音検証部109から入力した合成音に対して補償処理を行う。なお、符号がない場合の補償処理の具体的な方法は、非特許文献1に記載されているのでその説明を省略する。
クロック遅延検出部111は、送信側である図示しない音声符号化装置と受信側である音声復号装置100との間のクロックのずれの大きさを監視しており、クロックのずれに応じてフラグを設定し、合成部112に対してフラグにより指示を送る。具体的には、クロック遅延検出部111は、クロックのずれがない場合にはフラグ「0」を送り、クロックのずれが1フレームを超えていないが所定値よりも大きい場合にはフラグ「1」を送り、クロックのずれが1フレームを超えた場合にはフラグ「2」を送る。このように、クロック遅延検出部111は、クロックのずれをフラグに切り換えて送り、合成部112に対して指示する。
合成部112は、合成音検証部109から合成音が入力した場合に直ちに合成音をスピーカ113の出力用バッファに伝送する。そして、合成部112は、1フレーム分の合成を行った後に、全ての状態を1フレーム進める。具体的には、合成部112は、フレーム番号格納部102に格納されている基準番号に1を加算した数値を求め、求めた数値が上限値を越えている場合には0をフレーム番号格納部102に格納し、求めた数値が上限値を超えていない場合には求めた数値をフレーム番号格納部102に格納する。また、状態・符号格納部103に格納されている状態マトリクスと符号データマトリクス、及び合成音格納部106に格納されている合成音マトリクスのメモリシフトと初期化を行う。そして、合成部112は、メモリシフトと初期化した状態マトリクスと符号データマトリクスを状態・符号格納部103へ再度格納するとともに、メモリシフトと初期化した合成音マトリクスを合成音格納部106に再度格納する。メモリシフトと初期化の方法を(3)式に示す。
また、合成部112は、タイマー部107の時間Tを、スピーカ113が1フレームの合成音を出力するのに要する時間に設定し直す。また、合成部112は、クロック遅延検出部111から送られる信号を常に監視する。また、合成部112は、クロック遅延検出部111から調整指示が来た場合、合成音をスピーカ113の出力用バッファに伝送する前に、出力する合成音のパワを調べる。そして、合成部112は、進みすぎ且つ合成音のパワが無音区間と判断した場合(以下「状態1」と記載する)には、無音区間を先にスピーカ113に送り、現フレームの合成音をその後に送る。また、合成部112は、遅れ且つ合成音のパワが無音区間と判断した場合且つ合成音格納部106に2フレーム以上の合成音が既に復号されている場合(以下「状態2」と記載する)には、現フレームの合成音を出さずに破棄し、2番目の合成音をスピーカ113に送る。合成部112は、状態2の場合には更に1フレーム多くメモリシフトの処理を行う。また、合成部112は、クロック遅延検出部111から調整指示が来た場合、かつ上記の状態1及び状態2に当てはまらない場合は、状態1または状態2になるまで待ち続け、無音区間が来て対処できるタイミングになった際にフレームの出力を調整する処理を行う。
スピーカ113は、出力バッファを2フレーム分持っており、一方をディジタル/アナログ(D/A)出力しながらもう一方の出力バッファへの入力を待つという機能を有する。なお、出力バッファがフレーム長より少し長い1つのトグルバッファで構成されている場合には、メモリ容量の節約に繋がる。本実施の形態の音声復号装置100においては、1フレーム分がD/A出力される直前にならないと1フレーム分の合成音が補充されないので、これを利用することにより、空いているメモリ容量を節約することができる。
次に、復号するフレーム番号とレイヤ番号を決定する方法について、図2を用いて説明する。図2は、復号するフレーム番号とレイヤ番号を決定する方法を示すフロー図である。
まず、レイヤ選択部104は、相対的なフレーム番号0(i=0)のフレームを選択し(ステップ(以下、STという)201)、相対的なフレーム番号が「3」よりも大きいか否かを判定する(ST202)。レイヤ選択部104は、相対的なフレーム番号が「3」よりも大きい場合には(ST202:YES)、ST201に戻る。
一方、レイヤ選択部104は、相対的なフレーム番号が「3」よりも大きくない場合には(ST202:NO)、レイヤ番号0(j=0)のレイヤを選択し(ST203)、レイヤ番号が「4」よりも大きいか否かを判定する(ST204)。
レイヤ番号が「4」よりも大きい場合には(ST204:YES)、レイヤ選択部104は、次のフレームを選択して(ST205)、ST202の判定を行う。
一方、レイヤ番号が「4」よりも大きくない場合には(ST204:NO)、レイヤ選択部104は、状態マトリクスを参照することにより、選択したフレーム番号iのレイヤ番号jについて、届いているがまだ復号していないことを示す番号「1」があるか否かを判定する(ST206)。ただし、この際、状態マトリクスstate(i,j)を参照する直前に、状態・符号格納部103の状態マトリクスの内容を必ず読み直す。なお、判定の度に読み直すのは、パケット受信部101にパケットが届いた場合に、優先的に処理を行うプロセス150のパケット受信部101の機能により、状態・符号格納部103の状態マトリクスの内容が書き換えられるからである。
番号「1」がある場合には(ST206:YES)、レイヤ選択部104は、そのフレーム番号iとレイヤ番号jを復号部105へ出力する。
一方、番号「1」がない場合には(ST206:NO)、レイヤ選択部104は、選択したフレーム番号iのレイヤ番号jについて、復号済みであることを示す番号「2」を探索して、番号「2」があるか否かを判定する(ST207)。
番号「2」がある場合には(ST207:YES)、レイヤ選択部104は、次のレイヤを選択して(ST208)、ST204の判定を行う。
一方、番号「2」がない場合には(ST207:NO)、レイヤ選択部104は、次のフレームを選択して(ST205)、ST202の判定を行う。
このように、レイヤ選択部104は、状態マトリクスを参照することにより、フレーム毎に下位層のレイヤから上位層のレイヤに向かって、届いているがまだ復号していないことを示す番号「1」を探索していく。この際、レイヤ選択部104は、パケットが届いていないことを示す番号「0」を検出した場合には、それより上位のレイヤを探索しても復号できないので、次のフレームを探索する。すなわち、レイヤ選択部104は、各フレームの複数のレイヤのうち、あるレイヤより下位のすべてのレイヤにおいて取り出された符号がすべて復号済みであり(状態マトリクスの番号「2」)かつそのレイヤから上位のレイヤのうち取り出された符号が復号されていないレイヤであって最下位ではない特定のレイヤ(状態マトリクスの番号「1」であるレイヤ)、または、取り出された符号が復号されていない特定の最下位レイヤ(状態マトリクスの番号「1」である最下位レイヤ)、の探索を複数のフレーム毎に行うことにより、前記特定のレイヤまたは前記特定の最下位レイヤ(図2におけるレイヤ番号j)、および、特定の最下位レイヤまたは特定レイヤを含む特定のフレーム(図2におけるフレーム番号i)を選択する。また、レイヤ選択部104は、フレームについては、フレーム0から時間の進行方向に向かって探索していく。すなわち、レイヤ選択部104は、複数のフレームのうち時刻がより早いフレーム(つまり、フレーム0)から順に前記探索を行う。また、レイヤ選択部104は、レイヤの番号がレイヤ数を超えたら次のフレームの探索を始め、フレーム番号がフレーム数を超えたら最初のフレームに戻って探索を続ける。この処理は理論上無限ループになるが、優先的に処理を行っているプロセス170のタイマー部107における数値Tが下限値Tlimitより小さくなった場合、割り込み処理として、次の合成音を出力しなければならない。従って、レイヤ選択部104は、タイマー部107における数値Tが下限値Tlimitより小さいか否かを判定し(ST209)、タイマー部107における数値Tが下限値Tlimitより小さい場合には、タイムリミット判定部108に割り込み処理を通知する。ただし、この割り込み処理では、割り込まれた直後の元のステップには戻らない。その理由は、合成することによりフレームが1つ進むので、合成部112の動作により、状態・符号格納部103と合成音格納部106のメモリ内容が大きく変化してしまうからである。
以上で、復号するフレーム番号とレイヤ番号を決定する方法の説明を終える。
図3は、状態マトリクスの一例を示す図である。
図3において、フレーム0が直近に出力すべき合成音の符号の各レイヤの状態である。フレーム1は、フレーム0の後で出力される合成音の符号の各レイヤの状態である。このように、状態マトリクスは、これから出力する合成音の符号の状態を格納するようになっている。
図4は、符号データマトリクスcode(i,j)の一例を示す図である。図4は、図3の状態マトリクスの状態の場合において受け取った符号を格納したものである。
図4において、音声復号装置100にパケットが届いているフレーム及びレイヤには網掛を付しているとともに、音声復号装置100にパケットが届いていないフレーム及びレイヤは白抜きにしている。これらの符号を復号することにより、合成音(復号音)が得られる。上記において、フレーム0が直近に出力すべき合成音の符号である。フレーム1はフレーム0の後で出力される合成音の符号である。このようにこれから出力する合成音の符号を格納する。
図5及び図6は、合成音マトリクスの一例を示す図である。図5は、図4の符号データマトリクスの状態の場合における合成音マトリクスsyn(i,t)を示す図である。また、図6は、図4の符号データマトリクスの状態の場合における合成音マトリクスspec(i,f)を示す図である。
図5及び図6において、フレーム2は、レイヤ0の符号がまだ届いていないので合成音がなく、フレーム3は、符号は届いているがまだ復号されていないので合成音がない。フレーム0及びフレーム1は、レイヤ0の符号が復号されているので合成音が存在する。ここで、フレーム0が直近に出力すべき合成音である。フレーム1はフレーム0の後で出力される合成音であり、このようにこれから出力する合成音を格納するようになっている。即ち、本実施の形態においては、直近に出力するフレーム0のみならず、フレーム0の次に出力するフレーム1の合成音を復号することができる。なお、スピーカ113は、全てのプロセスの間、1フレーム長の合成音を出力し続けている。
このように、本実施の形態によれば、できるだけ早く復号処理を行って合成音を早めに生成するので、所定時間連続してプロセッサを別の用途に使用することができるとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる。
(実施の形態2)
本実施の形態では、音声復号装置は、さらに、各フレームが無音区間であるか否かを判定し、無音区間であるか否かに応じて、復号すべきフレームおよびレイヤを選択する。
本実施の形態では、音声復号装置は、さらに、各フレームが無音区間であるか否かを判定し、無音区間であるか否かに応じて、復号すべきフレームおよびレイヤを選択する。
図7は、本実施の形態に係る音声復号装置200の構成を示すブロック図である。なお、図7に示す音声復号装置200は、実施の形態1に示した音声復号装置100(図1)と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
無音フラグ格納部201は、復号が進むにつれて復号部203において作成される無音フラグを格納する。ここで、無音フラグsflag(i)は、フレーム番号iのフレームの状態を表す3段階の数値である。具体的には、「0」はレイヤ2まで符号(符号化情報)が復号されていないことを示し、「1」はレイヤ2まで符号(符号化情報)が復号され、かつ、合成音が有音であるか無音であるかの判定(以下、有音/無音判定という)の判定結果が有音であることを示し、「2」はレイヤ2まで符号(符号化情報)が復号され、かつ、合成音の有音/無音判定の判定結果が無音であることを示す。
レイヤ選択部202は、実施の形態1のレイヤ選択部104と同様にしてタイマー部107において計測する時間を参照するとともに、状態・符号格納部103に格納されている状態マトリクス及び無音フラグ格納部201に格納されている無音フラグを参照して、次に復号するフレーム番号(相対的なフレーム番号)とレイヤ番号とを決める。そして、レイヤ選択部202は、決定したフレーム番号とレイヤ番号とを復号部203に通知する。なお、レイヤ選択部202における、復号するフレーム番号とレイヤ番号とを決定する方法については後述する。
復号部203は、実施の形態1の復号部105と同様にして、レイヤ選択部202から通知されたフレーム番号とレイヤ番号とを参照して、状態・符号格納部103に格納されている符号データマトリクスcode(i,j)の符号(符号化情報)を所定のアルゴリズム(本実施の形態では、ITU−T標準G.718の復号を行う。アルゴリズムは非特許文献1に記載されているので説明を省略する。)により復号して時系列の合成音yt、もしくは周波数スペクトルの合成音zfを得る。また、復号部203は、実施の形態1と同様にして、フレーム番号を参照して、合成音格納部106に格納されている合成音マトリクスsyn(i,t)またはspec(i,f)に対して、(1)式及び(2)式に従って、得られた合成音ytまたはzfを書き込む。
なお、本実施の形態では、一例としてITU−T標準G.718の5層(レイヤ0〜レイヤ4)のスケーラブルコーデックを用いる。この場合、レイヤ2は、合成音が狭帯域から広帯域に変化するレイヤであるとともに、合成音が時系列から周波数スペクトルに変化するレイヤでもある。従って、復号部203は、レイヤ0,1までの合成音を、時系列の合成音マトリクスであるsyn(i,t)に書き込み、レイヤ2〜4までの合成音を、周波数スペクトルの合成音マトリクスであるspec(i,f)に書き込む。また、レイヤ2の合成音が書き込まれる際には、マトリクスのメモリはクリアされている。また、レイヤ2以上の最終的な合成音は、IMDCT(Inverse Modified Discrete Cosine Transform)によって、周波数スペクトルspec(i,f)を時系列に変換し、変換後の合成音を、時系列の合成音マトリクスsyn(i,t)に加算することにより算出される。
そして、復号部203は、上記処理により合成音を書き込んだ合成音マトリクスsyn(i,t)またはspec(i,f)を合成音格納部106に再度格納する。そして、復号部203は、状態・符号格納部103に格納されている状態マトリクスを取り出し、フレーム番号i及びレイヤ番号jの値を「1」から「2」に書き換えて、書き換え後の状態マトリクスを状態・符号格納部103に再度格納する。これにより、状態マトリクスを参照することにより、フレーム番号i及びレイヤ番号jの符号は復号済みであることが判るようになる。
また、復号部203は、復号された符号のレイヤ番号jが「2」である場合、フレーム番号iのフレームが無音区間であるか否かを判定する(合成音の有音/無音判定を行う)。そして、復号部203は、フレーム番号iの合成音に対する有音/無音判定の判定結果を示す無音フラグsflag(i)を、無音フラグ格納部201に出力する。
ここで、本実施の形態では、一例としてITU−T標準G.718の5層(レイヤ0〜レイヤ4)のスケーラブルコーデックを用いており、レイヤ0,1を狭帯域(200Hz〜3.4kHz)とし、レイヤ2〜4を広帯域(10Hz〜7kHz)としている。よって、復号部203は、レイヤ0から順に復号していくと、レイヤ2まで復号して初めて広帯域の合成音が得られる。そのため、復号部203は、レイヤ2まで復号すれば、そのフレームが有音であるか無音であるかを判定することができる。換言すると、復号部203は、レイヤ0,1のみでは、高周波帯域の成分の有無を検出できないので、そのフレームの有音/無音判定を行うことができない。そこで、復号部203は、レイヤ2まで復号して得られる合成音、すなわち、時系列の合成音マトリクスsyn(i,t)および周波数スペクトルの合成音マトリクスspec(i,f)に基づいて、有音/無音判定を行う。そして、復号部203は、判定結果を示す無音フラグをフレーム毎(ここでは、4フレーム(フレーム0〜3))に数値(「0」〜「2」)で表す。なお、復号部203における、有音/無音判定処理の詳細については後述する。
合成音検証部204は、状態・符号格納部103から状態マトリクスを取り出して次に出力するフレームの状態state(0,*)を参照する。また、合成音検証部204は、フレームの状態state(0,*)の全てが「2」である場合には、フレーム番号i=0における符号(符号化情報)の復号は全てのレイヤで済んでいるので、合成音格納部106から合成音マトリクスsyn(0,t)またはspec(0,f)を取り出す。また、合成音検証部204は、取り出したspec(0,f)のスペクトルを逆変換して(例えばIDCT)時系列の合成音を得て、得た合成音をsyn(0,t)に加算し、加算結果である合成音(syn(0,t)、t=0−L)を合成部205へ出力する。この前に、合成音検証部204は、レイヤ0から上位のレイヤに向かって状態マトリクスの状態を参照する。この際、状態マトリクスの状態が「2」でないレイヤがあれば、そのレイヤより上位のレイヤは全て符号がないために復号されていないので、復号されていないレイヤの補償処理を行う必要がある可能性がある。ここで、補償処理を行う必要がある場合は、レイヤ0から全部合成音が無かった場合、または、レイヤ2において、周波数スケーラブルのように周波数が変わる場合である。上記の場合に対して、その他の場合は、補償による音質劣化よりも、上位レイヤの符号(符号化情報)が無いことで下位レイヤの符号化歪みを復号できない場合の音質劣化の方が聴感的に劣化が少ないという傾向があるため、一般に補償処理は必要なく、そのまま合成音を出力する。また、無音フラグ格納部201に格納されている無音フラグのうち、フレーム番号i=0(すなわち、次に出力するフレーム)に対応する無音フラグsflag(0)が「2」の場合、つまり、レイヤ2までの復号が完了しており且つ無音と判定されている場合には、補償部110によるレイヤ3,4の補償処理をせずに、合成音検証部204は、合成音を合成部205に出力する。一方、合成音検証部204は、補償が必要な場合は、合成音(syn(0,t)、t=0−L)または(spec(0,f),f=−M)を補償部110へ出力する。
合成部205は、実施の形態1の合成部112と同様にして、合成音検証部204から合成音が入力した場合に直ちに合成音をスピーカ113の出力用バッファに伝送する。そして、合成部205は、1フレーム分の合成を行った後に、全ての状態を1フレーム進める。また、実施の形態1と同様、(3)式に従って、状態・符号格納部103に格納されている状態マトリクスと符号データマトリクス、及び合成音格納部106に格納されている合成音マトリクスのメモリシフトおよび初期化が行われる。そして、合成部205は、メモリシフトおよび初期化が行われた状態マトリクスと符号データマトリクスを状態・符号格納部103へ再度格納するとともに、メモリシフトおよび初期化が行われた合成音マトリクスを合成音格納部106に再度格納する。さらに、無音フラグ格納部201に格納されている無音フラグのメモリシフトおよび初期化が行われる。そして、合成部205は、メモリシフトおよび初期化が行われた無音フラグを無音フラグ格納部201に再度格納する。無音フラグのメモリシフトおよび初期化の方法を(4)式に示す。
また、合成部205は、実施の形態1の合成部112と同様、タイマー部107の時間Tを、スピーカ113が1フレームの合成音を出力するのに要する時間に設定し直す。また、合成部205は、クロック遅延検出部111から送られる信号を常に監視する。また、合成部205は、クロック遅延検出部111から調整指示が来た場合、調整指示が「進みすぎ」であり、且つ、無音フラグ格納部201からの無音フラグが「2」(無音区間)の場合(以下「状態1」と記載する)には、無音区間を先にスピーカ113に送り、現フレームの合成音をその後に送る。また、合成部205は、調整指示が「遅れ」であり、且つ、無音フラグ格納部201からの無音フラグが「2」の場合、且つ、合成音格納部106に2フレーム以上の合成音が既に復号されている場合(以下「状態2」と記載する)には、現フレームの合成音を出さずに破棄し、2番目の合成音をスピーカ113に送る。合成部205は、状態2の場合には更に1フレーム多くメモリシフトの処理を行う。また、合成部205は、クロック遅延検出部111から調整指示が来た場合、かつ上記の状態1及び状態2に当てはまらない場合は、状態1または状態2になるまで待ち続け、無音フラグが「2」の区間(無音区間)が来て対処できるタイミングになった際にフレームの出力を調整する処理を行う。
次に、レイヤ選択部202における、復号する符号のフレーム番号とレイヤ番号を決定する方法について、図8を用いて説明する。図8は、復号する符号のフレーム番号とレイヤ番号を決定する方法を示すフロー図である。なお、図8において、図2に示すフロー図と同一の処理については同一の符号を付し、説明を省略する。
まず、レイヤ選択部202は、相対的なフレーム番号0(i=0)のフレームを選択し(ST301)、相対的なフレーム番号が「3」よりも大きいか否かを判定する(ST302)。レイヤ選択部202は、相対的なフレーム番号が「3」よりも大きい場合には(ST302:YES)、ST201に進む。
一方、レイヤ選択部202は、相対的なフレーム番号が「3」よりも大きくない場合には(ST302:NO)、レイヤ番号0(j=0)のレイヤを選択する(ST303)。また、レイヤ選択部202は、レイヤ番号jが「4」よりも大きいか否か、または、レイヤ番号jが「2」よりも大きく且つ無音フラグsflag(i)が「2」であるか否かを判定する(ST304)。ただし、この際、無音フラグsflag(i)を参照する直前に、無音フラグ格納部201の無音フラグの内容を必ず読み直す。なお、判定の度に無音フラグの内容を読み直すのは、最新の無音フラグの内容を用いて判定を行う必要があるためであり、無音フラグ格納部201の内容は復号部203および合成部205により書き換えられている可能性があるからである。
レイヤ番号が「4」よりも大きい場合、または、レイヤ番号jが「2」よりも大きく且つ無音フラグsflag(i)が「2」である場合には(ST304:YES)、レイヤ選択部202は、次のフレームを選択して(ST305)、ST302の判定を行う。
一方、レイヤ番号が「4」よりも大きくなく、且つ、レイヤ番号jが「2」よりも大きくなく且つ無音フラグsflag(i)が「2」ではない場合には(ST304:NO)、レイヤ選択部202は、状態マトリクスstate(i,j)を参照することにより、選択したフレーム番号iのレイヤ番号jについて、届いている(すなわち、パケットが復号済みであり符号(符号化情報)を取り出している)がまだ符号(符号化情報)を復号していないことを示す番号「1」があるか否かを判定する(ST306)。ただし、この際、状態マトリクスstate(i,j)を参照する直前に、実施の形態1(図2に示すST206及び207)と同様にして、状態・符号格納部103の状態マトリクスの内容を必ず読み直す。
番号「1」がある場合には(ST306:YES)、レイヤ選択部202は、そのフレーム番号iとレイヤ番号jを復号部203へ出力する。
一方、番号「1」がない場合には(ST306:NO)、レイヤ選択部202は、選択したフレーム番号iのレイヤ番号jについて、復号済みであることを示す番号「2」を探索して、番号「2」があるか否かを判定する(ST307)。
番号「2」がある場合には(ST307:YES)、レイヤ選択部202は、次のレイヤを選択して(ST308)、ST304の判定を行う。
一方、番号「2」がない場合には(ST307:NO)、レイヤ選択部202は、次のフレームを選択して(ST305)、ST302の判定を行う。
また、レイヤ選択部202は、ST202において、相対的なフレーム番号が「3」よりも大きい場合には(ST202:YES)、ST301に戻る。
このように、レイヤ選択部202は、状態マトリクス及び無音フラグを参照することにより、フレーム毎に下位層(下位レイヤ)から上位層(上位レイヤ)に向かって、パケットが届いているがパケットから取り出される符号(符号化情報)をまだ復号していないことを示す番号「1」をstate(i,j)において探索していく。この際、レイヤ選択部202は、パケットが届いていないことを示す番号「0」を検出した場合には、「0」を検出したフレームではそれより上位のレイヤを探索しても復号できないので、次のフレームを探索する。
また、レイヤ選択部202では、復号する符号のフレーム番号およびレイヤ番号を決定するアルゴリズムとして、図8に示すように、近似した構成の2つのアルゴリズム(図8に示すST301〜308のアルゴリズム、および、ST201〜208のアルゴリズム)を直列に連結している。ここで、図8に示すST301〜308では、レイヤ選択部202は、探索しているフレームが無音区間であると判定した場合(図8に示すST304:YES)には、そのフレームの探索を中止して次のフレームの探索に移る。すなわち、レイヤ選択部202は、レイヤ番号jが4より大きくなる場合(そのフレームの全てのレイヤを探索した場合)に加え、レイヤ番号jが2より大きく(レイヤ3以上)且つ無音フラグsflag(i)が「2」(無音区間)である場合にも、そのフレームの探索を中止して次のフレームの探索に移る。すなわち、レイヤ選択部202は、複数のフレームのうち、無音フラグsflag(i)が「2」を示すフレーム(有音/無音判定の判定結果が無音区間であることを示すフレーム)以外のフレームにおいて、状態マトリクスの番号「1」であるレイヤの探索を行う。つまり、レイヤ選択部202は、無音フラグsflag(i)が「2」の場合には、レイヤ3,4の符号に対する復号によって得られる合成音のパワは非常に小さいと判断し、レイヤ3,4の符号に対する復号の必要性は低いと判断する。
一方、図8に示すST201〜208では、レイヤ選択部202は、ST301〜308におけるフレームの探索で復号すべき符号を持つレイヤが見つからなかった場合(図8に示すST302:YES)に、無音フラグsflag(i)を参照せずに、状態マトリクスstate(i,j)のみを参照して、届いているがまだ復号していないことを示す番号「1」を再度探索していく。
つまり、レイヤ選択部202は、図8に示すST301〜308において無音フラグを参照することで、無音区間であるフレームの上位レイヤ(レイヤ3,4)の符号の復号の優先度を下げて(すなわち、上位レイヤの符号の復号をスキップして)、他のフレームの探索を行う。その後、レイヤ選択部202は、復号すべき符号を持つレイヤが見つからない場合には図8に示すST201〜208において全てのレイヤについて復号すべき符号を持つレイヤを探索する。
以上で、復号する符号のフレーム番号とレイヤ番号を決定する方法の説明を終える。
次に、復号部203における有音/無音判定処理の詳細について説明する。図9は、本実施の形態に係る復号部203の内部構成のうち、有音/無音判定処理を行う構成部の構成を示すブロック図である。
図9において、振幅探索部231は、合成音格納部106から時系列の合成音syn(i,t)および周波数スペクトルの合成音spec(i,f)を取り出す。そして、振幅探索部231は、合成音syn(i,t)及びspec(i,f)各々の振幅の最大値を探索する。具体的には、振幅探索部231は、合成音syn(i,t)またはspec(i,f)の各信号値の絶対値を比較することで、合成音syn(i,t)及びspec(i,f)各々の振幅の最大値を探索する。ここで、syn(i,t)の最大振幅をmaxsyn(i)とし、spec(i,f)の最大振幅をmaxspec(i)とする。そして、振幅探索部231は、探索結果であるmaxsyn(i)及びmaxspec(i)を比較部233に出力する。
定数格納部232は、合成音syn(i,t)及びspec(i,f)各々に対する定数を格納する。ここで、syn(i,t)に対する定数をMsynとし、spec(i,f)に対する定数をMspecとする。2つの定数Msyn及びMspecは、聴感的に無音と判断できる、十分に小さい値に予め設定されている。
比較部233は、振幅探索部231から入力されるmaxsyn(i)及びmaxspec(i)と、定数格納部232に格納されている定数Msyn及びMspecとをそれぞれ比較する。すなわち、比較部233は、maxsyn(i)とMsynとを比較し、maxspec(i)とMspecとを比較する。そして、比較部233は、比較の結果、maxsyn(i)がMsynより小さく、且つ、maxspec(i)がMspecより小さい場合、フレーム番号iのフレームを無音と判断し、無音フラグsflag(i)として「2」を生成する。一方、比較部233は、上記以外の場合、フレーム番号iのフレームを有音と判断し、無音フラグsflag(i)として「1」を生成する。そして、比較部233は、生成した無音フラグsflag(i)を無音フラグ格納部201に出力する。
このように、復号部203は、あるフレームの全ての合成音が予め設定された振幅(定数)よりも小さい場合のみ、そのフレームが無音であると判定する。換言すると、復号部203は、あるフレームのいずれか1つの合成音でも予め設定された振幅(定数)以上の場合には、そのフレームが有音であると判定する。また、復号部203は、時系列の合成音syn(i,t)及び周波数スペクトルの合成音spec(i,f)の有音/無音判定を個別に行い、双方が無音であると判定した場合のみ、フレーム番号iのフレームが無音であると判定する。換言すると、復号部203は、時系列の合成音syn(i,t)及び周波数スペクトルの合成音spec(i,f)のうちいずれか1つでも有音であると判定した場合には、フレーム番号iのフレームが有音であると判定する。
このように、音声復号装置200は、復号部203におけるレイヤ2の復号時に得られる無音フラグを用いることで、レイヤ3,4の符号(符号化情報)の重要性を推定する。具体的には、音声復号装置200は、無音フラグが無音区間を示す場合(「2」の場合)、レイヤ3,4の符号の重要性が小さいと推定する。これは、スケーラブルコーデックでは、下位レイヤの符号化誤差(符号化歪み)が上位レイヤで符号化されるため、パワの期待値は上位レイヤほどより小さくなるためである。すなわち、レイヤ2の復号時に無音区間と判定されたフレームでは、レイヤ2よりも上位レイヤであるレイヤ3,4の符号(符号化情報)を復号して得られる合成音を下位レイヤの合成音と加算しても、加算結果も無音区間であると判定される可能性が高くなる。よって、音声復号装置200は、無音フラグが「2」(すなわち無音区間)であるフレームのレイヤ3,4の符号に対する復号の優先度を下げる(すなわち、レイヤ3,4の符号に対する復号をスキップする)ことで、スケーラブルコーデックの復号を効率良く行うことができる。
図10は、無音フラグsflag(i)の一例を示す図である。図10は、図3に示す状態マトリクスの状態及び図4に示す符号データマトリクスの状態の場合において、無音フラグ格納部201に格納されている無音フラグである。
図10に示すフレーム0では、図3に示すようにレイヤ2の符号まで復号されているので有音/無音判定が行われている。図10では、フレーム0は音声が有音であることを示す「1」となる。一方、図10に示すフレーム1〜3については、図3に示すようにレイヤ2以降の符号が復号されていないので、有音/無音判定が行われていない。よって、図10では、フレーム1〜3はレイヤ2以降の符号が復号されていないことを示す「0」となる。
このようにして、本実施の形態では、音声復号装置は、実施の形態1と同様にして、復号すべき符号を持つレイヤの探索の際、各フレームにおいてパケットが届いていないレイヤよりも上位レイヤの探索を行わずに、次のフレームを探索する。さらに、音声復号装置は、復号すべき符号を持つレイヤの探索の際、各フレームのあるレイヤにおいて無音区間であると判定された場合にはそのレイヤよりも上位のレイヤの探索を行わずに、次のフレームを探索する。よって、本実施の形態によれば、実施の形態1よりもさらに、できるだけ早く復号処理を行って合成音を早めに生成するので、所定時間連続してプロセッサを別の用途に使用することができるとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる。
以上、本発明の各実施の形態について説明した。
なお、上記の実施の形態において、4つのフレーム及び5つのレイヤの符号を復号する場合について説明したが、本発明はこれに限らず、様々なレイヤ数のスケーラブルコーデックに適用することができる。例えば、ITU−T標準G.729.1のスケーラブルコーデックは12層のレイヤで構成されているので、上記の実施の形態において、その仕様に合わせることもできる。即ち、本発明はレイヤ数に依存しない。またフレーム数もシステムの都合で様々に変更してもよい。多くのフレーム分の符号データマトリクスを使うと、パケットがバラバラに届いてもそのフレーム数分の余裕があるので、送られた符号データを全て使って高品質の復号がなされる確率は上がるとともに、パケットが無駄にならない。システムの性能により、パケットの処理遅延を極力少なくする必要がある場合には、フレーム数を調整して遅延を少なくすればよい。即ち、本発明はフレーム数には依存しない。
また、上記の実施の形態において、5つのレイヤを全部使用したが、本発明はこれに限らず、音声復号装置において使用するレイヤの最大数を決めて、最大数のレイヤの符号の復号結果を合成して生成した合成音を出力するという仕様でも本発明は有効である。その場合、パケット受信部101において、不要な上位層のレイヤのパケットを破棄してもよい。即ち、本発明は、音声復号装置と音声符号化装置とのレイヤ数の違いには依存しない。
また、上記の実施の形態において、合成部112(または、合成部205)の機能により、状態・符号格納部103及び合成音格納部106に格納されるマトリクスのアップデートの際にメモリシフトを行った。しかし、本発明はこれに限らず、各マトリクスのメモリをフレームに対してサイクリックに使用して、メモリシフトを行わない構成でも良い。これにより、メモリシフトの演算量を節約することができる。
また、上記の実施の形態において、各レイヤのパケットが異なる順番により送られるという場合について開示したが、本発明はこれに限らず、いくつかのレイヤの符号が纏まって伝送される場合でも本発明は有効である。この場合には、状態・符号格納部103及び合成音格納部106に格納されるマトリクスをまとめて読み書きすればよいからである。また、まとめて読み書きしなくても、まとめて1つのレイヤの符号として扱うこともできる。即ち、本発明は、伝送されるパケットのレイヤ数には依存しない。
また、上記の実施の形態において、パケットが合成に間に合わなかった場合、または、例えばレイヤ0、1のパケットが届いて、レイヤ2のパケットが届かず、レイヤ3、4のパケットが届いている場合、レイヤ3、4のパケットの復号結果は合成には使用できない場合について説明した。しかし、本発明はこれに限らず、レイヤ3、4のパケットの復号結果を以降のフレームの復号の際に使用するフィルタまたは予測の状態の作成に用いることができる。これにより、以降のフレームの復号性能を確保することができる。
また、上記実施の形態では、音声復号装置が、複数のフレームのうち時刻がより早いフレーム(つまり、フレーム番号がより小さいフレーム)から順に、状態マトリクスの番号「1」であるレイヤの探索を行う場合について説明した。しかし、本発明では、音声復号装置は、フレーム番号順に関わらずフレームを選択してもよい。
また、上記の実施の形態の説明は、本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。本発明は、音声復号装置を有するシステムであればどのような場合にも適用することができる。
また、上記の実施の形態において説明した音声復号装置は、移動体通信システムにおける通信端末装置および基地局装置に搭載することが可能であり、これにより上記と同様の作用効果を有する通信端末装置、基地局装置、および移動体通信システムを提供することができる。
また、上記の実施の形態においては、ハードウェアで構成する場合を例に説明したが、本発明はこれに限らず、ソフトウェアで実現することも可能である。例えば、本発明に係るアルゴリズムをプログラミング言語によって記述し、このプログラムをメモリに記憶しておいて情報処理手段によって実行させることにより、本発明に係る音声復号装置等と同様の機能を実現することができる。
また、上記実施の形態の各機能ブロックは、典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部または全てを含むように1チップ化されても良い。ここで、LSIは、集積度の違いによって、IC、システムLSI、スーパーLSIまたはウルトラLSI等と呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラム化することが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続もしくは設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらに、半導体技術の進歩または派生する別技術により、LSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
2009年3月13日出願の特願2009−060792および2009年7月15日出願の特願2009−166796の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。
本発明にかかる音声復号装置は、特に階層構造を持つスケーラブルコーデックに適用するのに好適である。
本発明は、音声復号装置及び音声復号方法に関し、特に階層構造を持つスケーラブルコーデックに用いられる音声復号装置及び音声復号方法に関する。
移動体通信においては、伝送帯域の有効利用のために音声または画像のディジタル情報の圧縮符号化が必須である。その中でも携帯電話で広く利用されている音声コーデック(符号化/復号)技術に対する期待は大きく、圧縮率の高い従来の高効率符号化に対して更により高音質の要求が高まっている。
また、近年、より効率的であるとともに高品質である音声コーデックとして多層構造を有するスケーラブルコーデックは、IP(Internet Protocol )通信網に用いられ、ITU−T(International Telecommunication Union - Telecommunication Standardization Sector)またはMPEG(Moving Picture Experts Group)において標準化を検討している。
また、20年前に確立された音声の発声機構をモデル化するとともにベクトル量子化を応用した音声符号化技術の基本方式であるCELP(Code Excited Linear Prediction)、及びオーディオ符号化で用いられてきた変換符号化技術(MPEG標準ACCやMP3等)により、音声・楽音符号化技術は大きく前進し、高品質の通信及び音楽鑑賞を可能にした。さらに、近年はオールIP化、シームレス化及びブロードバンド化を睨み、音声からオーディオまでをカバーするようなスケーラブルコーデックの開発及び標準化(ITU−T SG16 WP3)も進んでいる。この符号化技術は、伝送する音声の周波数帯域が階層的になっており、また下位層の量子化誤差を上位層で符号化するという構成のコーデックである。
特許文献1には、下位層の量子化誤差を上位層で符号化する階層型符号化の基本的発明、及びサンプリング変換を用いて下位層から上位層に向かってより広い周波数帯域の符号化を行う方法について開示されている。また、ITU−Tでは5層のスケーラブル音声コーデックG.718が勧告化された(例えば、非特許文献1)。
また、スケーラブルコーデックの各レイヤ(層)の符号を伝送する場合、レイヤ毎に異なるパケットで伝送する方法を採ることが考えられる。しかし、通信システムによっては、復号器側において、各フレームの各レイヤのパケットの受信順または受信タイミングが異なってしまう場合がある。しかし、このような場合でも、音声通信においては、復号器において安定して復号音声を出力し続けなければならない。これに対処するためには、揺らぎ吸収バッファを設け、フレームを構成する複数のパケットを揺らぎ吸収バッファに格納することにより、フレームを構成する複数のパケットの到着を待って、全てのパケットが到着した後に同期を取って復号するというアルゴリズムが考えられる。また、この際、フレームのパケットを合成するタイミングが迫っている場合に、見切りでパケットの復号を始め、パケットの到着状態を見ながらパケットが到着した場合に追加で復号し、パケットが到着しなければ諦めて、遅延したパケットは破棄するというアルゴリズムにより連続で復号することが行われる。このような処理においては、「遅延揺らぎ」または「通信揺らぎ」と呼ばれる現象が起こる。特に、音声データの通信に関して、この「揺らぎ」に対処する発明が特許文献2〜5に示されている。
ITU−T G.718規格書、2008年6月
しかしながら、特許文献2〜特許文献5においては、所定時間の音声信号を1つのパケットを用いて伝送するものであり、上記の「揺らぎ」との関係において、複数のレイヤの各符号の処理についての記載はない。即ち、特許文献2〜特許文献5においては、フレーム毎に全てのレイヤの符号を受信してから一斉に復号するので、全てのレイヤの符号を受信するまで待つ時間が存在し、これにより処理遅延が都度発生するという問題がある。また、見切りで各レイヤの復号を始める場合でも、フレーム毎に各レイヤの符号を受信するまで待つ時間が存在するので、同様に処理遅延が発生するという問題がある。従って、特許文献2〜特許文献5においては、復号器のプロセッサに対して、纏まった時間を必要とする別のプロセスを実行させることはできないという問題がある。
また、特許文献2〜特許文献5においては、外部から割り込みが入った際に見切り復号の途中である場合には、見切り復号しているフレームの合成音を出力することは不可能になる。従って、特許文献2〜特許文献5においては、見切り復号の処理を前倒しで行い、合成音を早めに復号しておくことが重要になる。
また、従来、携帯端末においては、クロック遅延が頻繁に起こる。クロック遅延とは、送信側のクロックと受信側のクロックとの間のクロックのずれが蓄積して、大きな時間のずれになり、同期が取れなくなる現象である。その場合の対策としては、受信側が進んでいる場合は無音区間に合成音を1フレーム追加し、受信側が遅れている場合は合成音を1フレーム破棄して、破棄したフレームの次のフレームの合成音を出力する。従って、従来の装置においては、復号処理を前倒しで行い、合成音を早めに生成しておき、無音区間のフレームのタイミングを待って、合成音の追加または合成音の破棄を行う必要ある。
即ち、従来の装置においては、見切り復号及びクロック遅延に対する対処の何れの場合においても、合成音を早めに生成することが重要であるにも関わらず、処理遅延が生ずることにより、合成音を出力することができなくなるという問題がある。
本発明の目的は、できるだけ早く復号処理を行って合成音を早めに生成するので、所定時間連続してプロセッサを別の用途に使用することができるとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる音声復号装置及び音声復号方法を提供することである。
本発明の音声復号装置は、複数レイヤから構成される音声符号化装置において生成されたそれぞれのレイヤの符号を、複数フレームにわたって受信して格納する受信手段と、前記それぞれのレイヤの符号を復号する復号手段と、を具備する音声復号装置であって、未復号状態の前記それぞれのレイヤの符号のうち、最初に復号を行う符号に対応するフレーム番号とレイヤ番号とを選択する選択手段、を更に具備し、前記受信手段は、前記それぞ
れのレイヤの符号が未受信であるか未復号であるか復号済みであるかを示す復号状態を更に格納し、更新指示を入力した場合には前記復号状態の更新を行い、前記選択手段は、前記受信手段において前記復号状態が格納又は更新された時点で前記復号状態が未復号状態であって、格納又は更新後に最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を、前記復号状態を探索することにより選択するとともに、前記受信手段に対して、前記復号状態の前記更新指示を出力し、前記復号手段は、前記フレーム番号及び前記レイヤ番号に対応する符号を復号するようにした。
れのレイヤの符号が未受信であるか未復号であるか復号済みであるかを示す復号状態を更に格納し、更新指示を入力した場合には前記復号状態の更新を行い、前記選択手段は、前記受信手段において前記復号状態が格納又は更新された時点で前記復号状態が未復号状態であって、格納又は更新後に最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を、前記復号状態を探索することにより選択するとともに、前記受信手段に対して、前記復号状態の前記更新指示を出力し、前記復号手段は、前記フレーム番号及び前記レイヤ番号に対応する符号を復号するようにした。
本発明の音声復号方法は、複数レイヤから構成される音声符号化装置において生成されたそれぞれのレイヤの符号を、複数フレームにわたって受信してメモリに格納する受信ステップと、前記それぞれのレイヤの符号を復号する復号ステップと、を具備する音声復号方法であって、未復号状態の前記それぞれのレイヤの符号のうち、最初に復号を行う符号に対応するフレーム番号とレイヤ番号とを選択する選択ステップ、を更に具備し、前記受信ステップは、前記それぞれのレイヤの符号が未受信であるか未復号であるか復号済みであるかを示す復号状態を更に前記メモリに格納し、更新を指示された場合には前記メモリの前記復号状態の更新を行い、前記選択ステップは、前記メモリにおいて前記復号状態が格納又は更新された時点で前記復号状態が未復号状態であって、格納又は更新後に最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を、前記復号状態を探索することにより選択するとともに、前記メモリに対して、前記復号状態の更新を指示し、前記復号ステップは、前記フレーム番号及び前記レイヤ番号に対応する符号を復号する、ようにした。
本発明によれば、できるだけ早く復号処理を行って合成音を早めに生成するので、所定時間連続してプロセッサを別の用途に使用することができるとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる。
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(実施の形態1)
図1は、本発明の実施の形態1に係る音声復号装置100の構成を示すブロック図である。音声復号装置100は、スケーラブルデコーダ(スケーラブル(多層)コーデックの復号器)の一例である。なお、本実施の形態に係る通信システムでは、各フレームは複数のレイヤにより構成されるとともに、レイヤ毎に符号化が実行されて符号が生成され、その符号を格納したパケットが生成される。これにより、スケーラブルコーデックの各レイ
ヤの符号が伝送される。
図1は、本発明の実施の形態1に係る音声復号装置100の構成を示すブロック図である。音声復号装置100は、スケーラブルデコーダ(スケーラブル(多層)コーデックの復号器)の一例である。なお、本実施の形態に係る通信システムでは、各フレームは複数のレイヤにより構成されるとともに、レイヤ毎に符号化が実行されて符号が生成され、その符号を格納したパケットが生成される。これにより、スケーラブルコーデックの各レイ
ヤの符号が伝送される。
音声復号装置100は、パケット受信部101と、フレーム番号格納部102と、状態・符号格納部103と、レイヤ選択部104と、復号部105と、合成音格納部106と、タイマー部107と、タイムリミット判定部108と、合成音検証部109と、補償部110と、クロック遅延検出部111と、合成部112と、スピーカ113とから主に構成される。
音声復号装置100におけるプロセスは、主に4つのプロセス150、160、170、180により構成される。また、4つのプロセス150、160、170、180は、それぞれ独立に動作する。ただし、優先順位は、プロセス170が最も高く、次にプロセス180、プロセス160と続き、プロセス150が最も優先度が低い。同時に複数のプロセスが同一の格納部やメモリにアクセスした場合、前記の優先順位の順番で処理が行われる。以下に、各構成について、詳細に説明する。
パケット受信部101は、伝送路からパケットを受け取り、受信したということを示すデータ(ACK)を伝送路に送る。また、パケット受信部101は、受け取ったパケットを解凍するとともに復号することにより符号を取り出す。すなわち、パケット受信部101は、複数のフレームのレイヤ毎のパケットをそれぞれ受信して、受信した、複数のフレームのレイヤ毎の符号を取り出す。この際、パケット受信部101は、ビット誤りが検出される等の理由により符号が正常に取り出せない場合にはパケットを破棄し、破棄したフレーム番号及びレイヤ番号のパケットの再送を伝送路にリクエストする。なお、パケット受信部101は、再送をリクエストせずに、パケットの取得を諦めてもよい。
また、パケット受信部101は、符号を正常に取り出せた場合には、フレーム番号格納部102に格納されている基準番号、即ち現在スピーカ113から出力されている音声に対応するパケットのフレーム番号を参照して、相対的なフレーム番号を算出する。そして、パケット受信部101は、算出したフレーム番号を状態・符号格納部103に格納することにより、状態・符号格納部103に格納された状態マトリクス及び符号化データマトリクスを変更する。例えば、パケット受信部101は、基準番号が「761」、受け取った符号のフレーム番号が「763」、及び受け取った符号のレイヤ番号が「2」であった場合は、現在合成しているフレーム番号が2つ先のフレーム番号のフレームであるので、相対的なフレーム番号「1」を算出し、レイヤ番号「2」は変更しない。即ち、パケット受信部101は、状態・符号格納部103から状態マトリクスを取り出し、state(1,2)の値を、符号が届いたこと(すなわち、パケットを復号済みであり、符号を取り出したこと)を示す「1」にして状態マトリクスに書き込みを行う。そして、パケット受信部101は、書き込みした状態マトリクスを状態・符号格納部103に再度格納する。また、パケット受信部101は、符号データマトリクスを状態・符号格納部103から取り出し、code(1,2)に符号を格納する。そして、パケット受信部101は、符号を格納した符号データマトリクスを状態・符号格納部103に再度格納する。なお、この際、10ビットで表した場合は、0〜1023の値を再帰的に取るので、基準番号が「1023」の次は「0、1、2・・・」となることに注意し、時間的な先後を的確に検出するようにする。
また、パケット受信部101は、使えないパケットを受信した場合は破棄する。ここで、使えないパケットとは、例えば、上記の例の場合、基準番号が「761」、及び受け取った符号のフレーム番号が「760」である場合、既に合成が済んでおり、その符号は届くのが遅過ぎたために使い道がない。従って、この場合、パケット受信部101は、基準番号以下のフレーム番号の符号は格納せずに破棄する。この処理により以降の復号処理の無駄を省くことができる。なお、使えないパケットは、合成音が作成できないという意味
であり、実際には、そのフレーム以後のフレームの復号に必要なフィルタまたは予測に必要な状態(ステート)を作成しておくという使い道がある。この場合、作成した状態は、復号に必要な重要な情報であり、符号が得られた際には状態の作成を行うことが望ましい。
であり、実際には、そのフレーム以後のフレームの復号に必要なフィルタまたは予測に必要な状態(ステート)を作成しておくという使い道がある。この場合、作成した状態は、復号に必要な重要な情報であり、符号が得られた際には状態の作成を行うことが望ましい。
フレーム番号格納部102は、合成部112から入力した現在スピーカ113から出力されている音声に対応するパケットのフレーム番号を格納する。
状態・符号格納部103は、各フレームのレイヤ毎の通信状況、および、各フレームのレイヤ毎の符号が復号済みであるか否かを示す状態マトリクスを格納する。状態マトリクスは、状態を表す3段階の数値の2次元マトリクスである。具体的には、「0」はパケットが音声復号装置100に届いていないことを示し、「1」はパケットが音声復号装置に届いている(つまり、パケット受信部101でパケットが復号済みであり符号(符号化情報ともいう)が取り出された)ものの符号(符号化情報)が復号されていないことを示し、「2」は符号(符号化情報)が復号されたことを示す。また、状態・符号格納部103は、パケット受信部101において受け取った符号を符号データマトリクスとして格納している。なお、状態マトリクス及び符号データマトリクスについては後述する。
レイヤ選択部104は、タイマー部107において計測する時間を参照するとともに、状態・符号格納部103に格納されている状態マトリクスを参照して、次に復号するフレーム番号(相対的なフレーム番号)とレイヤ番号とを決める。そして、レイヤ選択部104は、決定したフレーム番号とレイヤ番号とを復号部105に通知する。また、レイヤ選択部104は、タイムリミット判定部108から復号の終了通知を受けた場合に、所定時間(例えば4つのフレーム)内のフレームの復号処理を終了して、次の所定時間内のフレームの復号処理を開始する。また、レイヤ選択部104は、新たに復号を開始する際にタイムリミット判定部108に復号開始を通知する。また、レイヤ選択部104は、合成部112から入力する合成音の復号結果を見ながらフレームとレイヤを選択する。なお、復号するフレーム番号とレイヤ番号とを決定する方法については後述する。
復号部105は、レイヤ選択部104から通知されたフレーム番号とレイヤ番号とを参照して、状態・符号格納部103に格納されている符号データマトリクスcode(i,j)の符号(符号化情報)を所定のアルゴリズム(本実施の形態では、ITU−T標準G.718の復号を行う。アルゴリズムは非特許文献1に記載されているので説明を省略する。)により復号して時系列の合成音yt、もしくは周波数スペクトルの合成音zfを得る。また、復号部105は、フレーム番号を参照して、合成音格納部106に格納されている合成音マトリクスsyn(i,t)またはspec(i,f)に対して、得られた合成音ytまたはzfを書き込む。この処理を(1)式及び(2)式に示す。
すなわち、復号部105は、レイヤ選択部104で選択されたフレーム((1)式および(2)式ではフレーム番号i)において、レイヤ選択部104で選択されたレイヤの符
号を復号して得られる復号結果(時系列の合成音yt、もしくは周波数スペクトルの合成音zf)を、符号が復号済みの他のレイヤの復号結果(合成音マトリクスsyn(i,t)またはspec(i,f))と合成して合成音を得る。そして、復号部105は、上記処理により合成音を書き込んだ合成音マトリクスsyn(i,t)またはspec(i,f)を合成音格納部106に再度格納する。そして、復号部105は、状態・符号格納部103に格納されている状態マトリクスを取り出し、フレーム番号i及びレイヤ番号jの値を「1」から「2」に書き換えて、書き換え後の状態マトリクスを状態・符号格納部103に再度格納する。これにより、状態マトリクスを参照することにより、フレーム番号i及びレイヤ番号jの符号は復号済みであることが判るようになる。また、復号部105は、所定時間の復号処理が終了した場合に、タイムリミット判定部108に復号終了を通知する。
号を復号して得られる復号結果(時系列の合成音yt、もしくは周波数スペクトルの合成音zf)を、符号が復号済みの他のレイヤの復号結果(合成音マトリクスsyn(i,t)またはspec(i,f))と合成して合成音を得る。そして、復号部105は、上記処理により合成音を書き込んだ合成音マトリクスsyn(i,t)またはspec(i,f)を合成音格納部106に再度格納する。そして、復号部105は、状態・符号格納部103に格納されている状態マトリクスを取り出し、フレーム番号i及びレイヤ番号jの値を「1」から「2」に書き換えて、書き換え後の状態マトリクスを状態・符号格納部103に再度格納する。これにより、状態マトリクスを参照することにより、フレーム番号i及びレイヤ番号jの符号は復号済みであることが判るようになる。また、復号部105は、所定時間の復号処理が終了した場合に、タイムリミット判定部108に復号終了を通知する。
合成音格納部106は、復号が進むにつれて復号部105において順次書き換えられる合成音マトリクスを格納する。スケーラブルコーデックではレイヤの合成音を加算したものが最終的な合成音になるので、合成音格納部106は、フレーム毎に1つのフレーム長の合成音バッファを有する。ただし、本実施の形態では、時系列の信号と周波数スペクトルの信号とは、バッファを分けて格納する。その理由は、主に上位層で用いられる変換符号化のレイヤでは各レイヤの合成音は周波数スペクトル(例えばMDCT(Modified Discrete Cosine Transform)スペクトル)により加算され、最後に逆変換(例えばIDCT(Inverse Discrete Cosine Transform))して時系列に直されることが一般的であるからである。なお、合成音マトリクスについては後述する。
タイマー部107は、時間を計る機能を持ち、設定された時間を示す数値Tを、計測する実時間により0に向かって正確に減らしていく機能を有している。タイマー部107の時刻は外部から見ることができるとともに、時間Tの再設定もできる。合成音がスピーカ113から出力されている間に復号処理が行われるが、タイマー部107は、次の合成を行うまでの時間を計る機能を有する。
タイムリミット判定部108は、タイマー部107が示す数値Tを参照して、数値Tが下限値Tlimit以上の場合は復号プロセスを続けてよいので、レイヤ選択部104に対してその旨を通知する。即ち、時間下限値Tlimitになるまで復号プロセスを続ける。また、タイムリミット判定部108は、数値Tが下限値Tlimit未満の場合には、復号処理の終了をレイヤ選択部104に通知する。また、タイムリミット判定部108は、レイヤ選択部104から復号開始の通知を受けることにより、タイマー部107が示す数値Tと下限値Tlimitとの比較を開始する。ここで、下限値Tlimitは、予め決められている定数である。タイマー部107では、設定された時間が0に向かって減っていくが、この時間がある時間よりも小さくなった場合には復号処理から合成音を生成する処理に移らなければ次の合成音出力に間に合わなくなる。下限値Tlimitは、それを示す定数である。下限値Tlimitは、「(合成音検証部109の処理に掛かる時間)+(補償部110において想定される必要な時間の内の最大時間)+(合成部112においてスピーカ113に合成音を出力する時間)+(1つのレイヤの復号に掛かる時間の最大時間)」により求めることができる。
合成音検証部109は、状態・符号格納部103から状態マトリクスを取り出して次に出力するフレームの状態state(0,*)を参照する。また、合成音検証部109は、全てが「2」である場合には、復号は全てのレイヤで済んでいるので、合成音格納部106から合成音マトリクスsyn(0,t)またはspec(0,f)を取り出す。また、合成音検証部109は、取り出したspec(0,f)のスペクトルを逆変換して(例えばIDCT)時系列の合成音を得て、得た合成音をsyn(0,t)に加算し、得られた(syn(0,t)、t=0−L)を合成部112へ出力する。この前に、合成音検証
部109は、レイヤ0から上位のレイヤに向かって状態マトリクスの状態を参照する。この際、「2」でないレイヤがあれば、そのレイヤより上位のレイヤは全て符号がないために復号されていないので、復号されていないレイヤの補償処理を行う必要がある可能性がある。ここで、補償処理を行う必要がある場合は、レイヤ0から全部合成音が無かった場合、または、レイヤ2において、周波数スケーラブルのように周波数が変わる場合である。上記の場合に対して、その他の場合は、補償による音質劣化よりも、上位レイヤの符号(符号化情報)が無いことで下位レイヤの符号化歪みを復号できない場合の音質劣化の方が聴感的劣化が少ないという傾向があるため、一般に補償処理は必要なく、そのまま合成音を出力する。合成音検証部109は、補償が必要な場合は、合成音(syn(0,t)、t=0−L)または(spec(0,f),f=−M)を補償部110へ出力する。
部109は、レイヤ0から上位のレイヤに向かって状態マトリクスの状態を参照する。この際、「2」でないレイヤがあれば、そのレイヤより上位のレイヤは全て符号がないために復号されていないので、復号されていないレイヤの補償処理を行う必要がある可能性がある。ここで、補償処理を行う必要がある場合は、レイヤ0から全部合成音が無かった場合、または、レイヤ2において、周波数スケーラブルのように周波数が変わる場合である。上記の場合に対して、その他の場合は、補償による音質劣化よりも、上位レイヤの符号(符号化情報)が無いことで下位レイヤの符号化歪みを復号できない場合の音質劣化の方が聴感的劣化が少ないという傾向があるため、一般に補償処理は必要なく、そのまま合成音を出力する。合成音検証部109は、補償が必要な場合は、合成音(syn(0,t)、t=0−L)または(spec(0,f),f=−M)を補償部110へ出力する。
補償部110は、合成音検証部109から入力した合成音に対して補償処理を行う。なお、符号がない場合の補償処理の具体的な方法は、非特許文献1に記載されているのでその説明を省略する。
クロック遅延検出部111は、送信側である図示しない音声符号化装置と受信側である音声復号装置100との間のクロックのずれの大きさを監視しており、クロックのずれに応じてフラグを設定し、合成部112に対してフラグにより指示を送る。具体的には、クロック遅延検出部111は、クロックのずれがない場合にはフラグ「0」を送り、クロックのずれが1フレームを超えていないが所定値よりも大きい場合にはフラグ「1」を送り、クロックのずれが1フレームを超えた場合にはフラグ「2」を送る。このように、クロック遅延検出部111は、クロックのずれをフラグに切り換えて送り、合成部112に対して指示する。
合成部112は、合成音検証部109から合成音が入力した場合に直ちに合成音をスピーカ113の出力用バッファに伝送する。そして、合成部112は、1フレーム分の合成を行った後に、全ての状態を1フレーム進める。具体的には、合成部112は、フレーム番号格納部102に格納されている基準番号に1を加算した数値を求め、求めた数値が上限値を越えている場合には0をフレーム番号格納部102に格納し、求めた数値が上限値を超えていない場合には求めた数値をフレーム番号格納部102に格納する。また、状態・符号格納部103に格納されている状態マトリクスと符号データマトリクス、及び合成音格納部106に格納されている合成音マトリクスのメモリシフトと初期化を行う。そして、合成部112は、メモリシフトと初期化した状態マトリクスと符号データマトリクスを状態・符号格納部103へ再度格納するとともに、メモリシフトと初期化した合成音マトリクスを合成音格納部106に再度格納する。メモリシフトと初期化の方法を(3)式に示す。
また、合成部112は、タイマー部107の時間Tを、スピーカ113が1フレームの合成音を出力するのに要する時間に設定し直す。また、合成部112は、クロック遅延検出部111から送られる信号を常に監視する。また、合成部112は、クロック遅延検出部111から調整指示が来た場合、合成音をスピーカ113の出力用バッファに伝送する前に、出力する合成音のパワを調べる。そして、合成部112は、進みすぎ且つ合成音のパワが無音区間と判断した場合(以下「状態1」と記載する)には、無音区間を先にスピーカ113に送り、現フレームの合成音をその後に送る。また、合成部112は、遅れ且つ合成音のパワが無音区間と判断した場合且つ合成音格納部106に2フレーム以上の合成音が既に復号されている場合(以下「状態2」と記載する)には、現フレームの合成音を出さずに破棄し、2番目の合成音をスピーカ113に送る。合成部112は、状態2の場合には更に1フレーム多くメモリシフトの処理を行う。また、合成部112は、クロック遅延検出部111から調整指示が来た場合、かつ上記の状態1及び状態2に当てはまらない場合は、状態1または状態2になるまで待ち続け、無音区間が来て対処できるタイミングになった際にフレームの出力を調整する処理を行う。
スピーカ113は、出力バッファを2フレーム分持っており、一方をディジタル/アナログ(D/A)出力しながらもう一方の出力バッファへの入力を待つという機能を有する。なお、出力バッファがフレーム長より少し長い1つのトグルバッファで構成されている場合には、メモリ容量の節約に繋がる。本実施の形態の音声復号装置100においては、1フレーム分がD/A出力される直前にならないと1フレーム分の合成音が補充されないので、これを利用することにより、空いているメモリ容量を節約することができる。
次に、復号するフレーム番号とレイヤ番号を決定する方法について、図2を用いて説明する。図2は、復号するフレーム番号とレイヤ番号を決定する方法を示すフロー図である。
まず、レイヤ選択部104は、相対的なフレーム番号0(i=0)のフレームを選択し(ステップ(以下、STという)201)、相対的なフレーム番号が「3」よりも大きいか否かを判定する(ST202)。レイヤ選択部104は、相対的なフレーム番号が「3」よりも大きい場合には(ST202:YES)、ST201に戻る。
一方、レイヤ選択部104は、相対的なフレーム番号が「3」よりも大きくない場合には(ST202:NO)、レイヤ番号0(j=0)のレイヤを選択し(ST203)、レイヤ番号が「4」よりも大きいか否かを判定する(ST204)。
レイヤ番号が「4」よりも大きい場合には(ST204:YES)、レイヤ選択部104は、次のフレームを選択して(ST205)、ST202の判定を行う。
一方、レイヤ番号が「4」よりも大きくない場合には(ST204:NO)、レイヤ選択部104は、状態マトリクスを参照することにより、選択したフレーム番号iのレイヤ番号jについて、届いているがまだ復号していないことを示す番号「1」があるか否かを判定する(ST206)。ただし、この際、状態マトリクスstate(i,j)を参照する直前に、状態・符号格納部103の状態マトリクスの内容を必ず読み直す。なお、判定の度に読み直すのは、パケット受信部101にパケットが届いた場合に、優先的に処理を行うプロセス150のパケット受信部101の機能により、状態・符号格納部103の状態マトリクスの内容が書き換えられるからである。
番号「1」がある場合には(ST206:YES)、レイヤ選択部104は、そのフレーム番号iとレイヤ番号jを復号部105へ出力する。
一方、番号「1」がない場合には(ST206:NO)、レイヤ選択部104は、選択したフレーム番号iのレイヤ番号jについて、復号済みであることを示す番号「2」を探索して、番号「2」があるか否かを判定する(ST207)。
番号「2」がある場合には(ST207:YES)、レイヤ選択部104は、次のレイヤを選択して(ST208)、ST204の判定を行う。
一方、番号「2」がない場合には(ST207:NO)、レイヤ選択部104は、次のフレームを選択して(ST205)、ST202の判定を行う。
このように、レイヤ選択部104は、状態マトリクスを参照することにより、フレーム毎に下位層のレイヤから上位層のレイヤに向かって、届いているがまだ復号していないことを示す番号「1」を探索していく。この際、レイヤ選択部104は、パケットが届いていないことを示す番号「0」を検出した場合には、それより上位のレイヤを探索しても復号できないので、次のフレームを探索する。すなわち、レイヤ選択部104は、各フレームの複数のレイヤのうち、あるレイヤより下位のすべてのレイヤにおいて取り出された符号がすべて復号済みであり(状態マトリクスの番号「2」)かつそのレイヤから上位のレイヤのうち取り出された符号が復号されていないレイヤであって最下位ではない特定のレイヤ(状態マトリクスの番号「1」であるレイヤ)、または、取り出された符号が復号されていない特定の最下位レイヤ(状態マトリクスの番号「1」である最下位レイヤ)、の探索を複数のフレーム毎に行うことにより、前記特定のレイヤまたは前記特定の最下位レイヤ(図2におけるレイヤ番号j)、および、特定の最下位レイヤまたは特定レイヤを含む特定のフレーム(図2におけるフレーム番号i)を選択する。また、レイヤ選択部104は、フレームについては、フレーム0から時間の進行方向に向かって探索していく。すなわち、レイヤ選択部104は、複数のフレームのうち時刻がより早いフレーム(つまり、フレーム0)から順に前記探索を行う。また、レイヤ選択部104は、レイヤの番号がレイヤ数を超えたら次のフレームの探索を始め、フレーム番号がフレーム数を超えたら最初のフレームに戻って探索を続ける。この処理は理論上無限ループになるが、優先的に処理を行っているプロセス170のタイマー部107における数値Tが下限値Tlimitより小さくなった場合、割り込み処理として、次の合成音を出力しなければならない。従って、レイヤ選択部104は、タイマー部107における数値Tが下限値Tlimitより小さいか否かを判定し(ST209)、タイマー部107における数値Tが下限値Tlimitより小さい場合には、タイムリミット判定部108に割り込み処理を通知する。ただし、この割り込み処理では、割り込まれた直後の元のステップには戻らない。その理由は、合成することによりフレームが1つ進むので、合成部112の動作により、状態・符号格納部103と合成音格納部106のメモリ内容が大きく変化してしまうからである。
以上で、復号するフレーム番号とレイヤ番号を決定する方法の説明を終える。
図3は、状態マトリクスの一例を示す図である。
図3において、フレーム0が直近に出力すべき合成音の符号の各レイヤの状態である。フレーム1は、フレーム0の後で出力される合成音の符号の各レイヤの状態である。このように、状態マトリクスは、これから出力する合成音の符号の状態を格納するようになっている。
図4は、符号データマトリクスcode(i,j)の一例を示す図である。図4は、図3の状態マトリクスの状態の場合において受け取った符号を格納したものである。
図4において、音声復号装置100にパケットが届いているフレーム及びレイヤには網掛を付しているとともに、音声復号装置100にパケットが届いていないフレーム及びレイヤは白抜きにしている。これらの符号を復号することにより、合成音(復号音)が得られる。上記において、フレーム0が直近に出力すべき合成音の符号である。フレーム1はフレーム0の後で出力される合成音の符号である。このようにこれから出力する合成音の符号を格納する。
図5及び図6は、合成音マトリクスの一例を示す図である。図5は、図4の符号データマトリクスの状態の場合における合成音マトリクスsyn(i,t)を示す図である。また、図6は、図4の符号データマトリクスの状態の場合における合成音マトリクスspec(i,f)を示す図である。
図5及び図6において、フレーム2は、レイヤ0の符号がまだ届いていないので合成音がなく、フレーム3は、符号は届いているがまだ復号されていないので合成音がない。フレーム0及びフレーム1は、レイヤ0の符号が復号されているので合成音が存在する。ここで、フレーム0が直近に出力すべき合成音である。フレーム1はフレーム0の後で出力される合成音であり、このようにこれから出力する合成音を格納するようになっている。即ち、本実施の形態においては、直近に出力するフレーム0のみならず、フレーム0の次に出力するフレーム1の合成音を復号することができる。なお、スピーカ113は、全てのプロセスの間、1フレーム長の合成音を出力し続けている。
このように、本実施の形態によれば、できるだけ早く復号処理を行って合成音を早めに生成するので、所定時間連続してプロセッサを別の用途に使用することができるとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる。
(実施の形態2)
本実施の形態では、音声復号装置は、さらに、各フレームが無音区間であるか否かを判定し、無音区間であるか否かに応じて、復号すべきフレームおよびレイヤを選択する。
本実施の形態では、音声復号装置は、さらに、各フレームが無音区間であるか否かを判定し、無音区間であるか否かに応じて、復号すべきフレームおよびレイヤを選択する。
図7は、本実施の形態に係る音声復号装置200の構成を示すブロック図である。なお、図7に示す音声復号装置200は、実施の形態1に示した音声復号装置100(図1)と同様の基本的構成を有しており、同一の構成要素には同一の符号を付し、その説明を省略する。
無音フラグ格納部201は、復号が進むにつれて復号部203において作成される無音フラグを格納する。ここで、無音フラグsflag(i)は、フレーム番号iのフレームの状態を表す3段階の数値である。具体的には、「0」はレイヤ2まで符号(符号化情報)が復号されていないことを示し、「1」はレイヤ2まで符号(符号化情報)が復号され、かつ、合成音が有音であるか無音であるかの判定(以下、有音/無音判定という)の判定結果が有音であることを示し、「2」はレイヤ2まで符号(符号化情報)が復号され、かつ、合成音の有音/無音判定の判定結果が無音であることを示す。
レイヤ選択部202は、実施の形態1のレイヤ選択部104と同様にしてタイマー部107において計測する時間を参照するとともに、状態・符号格納部103に格納されている状態マトリクス及び無音フラグ格納部201に格納されている無音フラグを参照して、次に復号するフレーム番号(相対的なフレーム番号)とレイヤ番号とを決める。そして、レイヤ選択部202は、決定したフレーム番号とレイヤ番号とを復号部203に通知する。なお、レイヤ選択部202における、復号するフレーム番号とレイヤ番号とを決定する方法については後述する。
復号部203は、実施の形態1の復号部105と同様にして、レイヤ選択部202から通知されたフレーム番号とレイヤ番号とを参照して、状態・符号格納部103に格納されている符号データマトリクスcode(i,j)の符号(符号化情報)を所定のアルゴリズム(本実施の形態では、ITU−T標準G.718の復号を行う。アルゴリズムは非特許文献1に記載されているので説明を省略する。)により復号して時系列の合成音yt、もしくは周波数スペクトルの合成音zfを得る。また、復号部203は、実施の形態1と同様にして、フレーム番号を参照して、合成音格納部106に格納されている合成音マトリクスsyn(i,t)またはspec(i,f)に対して、(1)式及び(2)式に従って、得られた合成音ytまたはzfを書き込む。
なお、本実施の形態では、一例としてITU−T標準G.718の5層(レイヤ0〜レイヤ4)のスケーラブルコーデックを用いる。この場合、レイヤ2は、合成音が狭帯域から広帯域に変化するレイヤであるとともに、合成音が時系列から周波数スペクトルに変化するレイヤでもある。従って、復号部203は、レイヤ0,1までの合成音を、時系列の合成音マトリクスであるsyn(i,t)に書き込み、レイヤ2〜4までの合成音を、周波数スペクトルの合成音マトリクスであるspec(i,f)に書き込む。また、レイヤ2の合成音が書き込まれる際には、マトリクスのメモリはクリアされている。また、レイヤ2以上の最終的な合成音は、IMDCT(Inverse Modified Discrete Cosine Transform)によって、周波数スペクトルspec(i,f)を時系列に変換し、変換後の合成音を、時系列の合成音マトリクスsyn(i,t)に加算することにより算出される。
そして、復号部203は、上記処理により合成音を書き込んだ合成音マトリクスsyn(i,t)またはspec(i,f)を合成音格納部106に再度格納する。そして、復号部203は、状態・符号格納部103に格納されている状態マトリクスを取り出し、フレーム番号i及びレイヤ番号jの値を「1」から「2」に書き換えて、書き換え後の状態マトリクスを状態・符号格納部103に再度格納する。これにより、状態マトリクスを参照することにより、フレーム番号i及びレイヤ番号jの符号は復号済みであることが判るようになる。
また、復号部203は、復号された符号のレイヤ番号jが「2」である場合、フレーム番号iのフレームが無音区間であるか否かを判定する(合成音の有音/無音判定を行う)。そして、復号部203は、フレーム番号iの合成音に対する有音/無音判定の判定結果を示す無音フラグsflag(i)を、無音フラグ格納部201に出力する。
ここで、本実施の形態では、一例としてITU−T標準G.718の5層(レイヤ0〜レイヤ4)のスケーラブルコーデックを用いており、レイヤ0,1を狭帯域(200Hz〜3.4kHz)とし、レイヤ2〜4を広帯域(10Hz〜7kHz)としている。よって、復号部203は、レイヤ0から順に復号していくと、レイヤ2まで復号して初めて広帯域の合成音が得られる。そのため、復号部203は、レイヤ2まで復号すれば、そのフレームが有音であるか無音であるかを判定することができる。換言すると、復号部203は、レイヤ0,1のみでは、高周波帯域の成分の有無を検出できないので、そのフレームの有音/無音判定を行うことができない。そこで、復号部203は、レイヤ2まで復号して得られる合成音、すなわち、時系列の合成音マトリクスsyn(i,t)および周波数スペクトルの合成音マトリクスspec(i,f)に基づいて、有音/無音判定を行う。そして、復号部203は、判定結果を示す無音フラグをフレーム毎(ここでは、4フレーム(フレーム0〜3))に数値(「0」〜「2」)で表す。なお、復号部203における、有音/無音判定処理の詳細については後述する。
合成音検証部204は、状態・符号格納部103から状態マトリクスを取り出して次に
出力するフレームの状態state(0,*)を参照する。また、合成音検証部204は、フレームの状態state(0,*)の全てが「2」である場合には、フレーム番号i=0における符号(符号化情報)の復号は全てのレイヤで済んでいるので、合成音格納部106から合成音マトリクスsyn(0,t)またはspec(0,f)を取り出す。また、合成音検証部204は、取り出したspec(0,f)のスペクトルを逆変換して(例えばIDCT)時系列の合成音を得て、得た合成音をsyn(0,t)に加算し、加算結果である合成音(syn(0,t)、t=0−L)を合成部205へ出力する。この前に、合成音検証部204は、レイヤ0から上位のレイヤに向かって状態マトリクスの状態を参照する。この際、状態マトリクスの状態が「2」でないレイヤがあれば、そのレイヤより上位のレイヤは全て符号がないために復号されていないので、復号されていないレイヤの補償処理を行う必要がある可能性がある。ここで、補償処理を行う必要がある場合は、レイヤ0から全部合成音が無かった場合、または、レイヤ2において、周波数スケーラブルのように周波数が変わる場合である。上記の場合に対して、その他の場合は、補償による音質劣化よりも、上位レイヤの符号(符号化情報)が無いことで下位レイヤの符号化歪みを復号できない場合の音質劣化の方が聴感的に劣化が少ないという傾向があるため、一般に補償処理は必要なく、そのまま合成音を出力する。また、無音フラグ格納部201に格納されている無音フラグのうち、フレーム番号i=0(すなわち、次に出力するフレーム)に対応する無音フラグsflag(0)が「2」の場合、つまり、レイヤ2までの復号が完了しており且つ無音と判定されている場合には、補償部110によるレイヤ3,4の補償処理をせずに、合成音検証部204は、合成音を合成部205に出力する。一方、合成音検証部204は、補償が必要な場合は、合成音(syn(0,t)、t=0−L)または(spec(0,f),f=−M)を補償部110へ出力する。
出力するフレームの状態state(0,*)を参照する。また、合成音検証部204は、フレームの状態state(0,*)の全てが「2」である場合には、フレーム番号i=0における符号(符号化情報)の復号は全てのレイヤで済んでいるので、合成音格納部106から合成音マトリクスsyn(0,t)またはspec(0,f)を取り出す。また、合成音検証部204は、取り出したspec(0,f)のスペクトルを逆変換して(例えばIDCT)時系列の合成音を得て、得た合成音をsyn(0,t)に加算し、加算結果である合成音(syn(0,t)、t=0−L)を合成部205へ出力する。この前に、合成音検証部204は、レイヤ0から上位のレイヤに向かって状態マトリクスの状態を参照する。この際、状態マトリクスの状態が「2」でないレイヤがあれば、そのレイヤより上位のレイヤは全て符号がないために復号されていないので、復号されていないレイヤの補償処理を行う必要がある可能性がある。ここで、補償処理を行う必要がある場合は、レイヤ0から全部合成音が無かった場合、または、レイヤ2において、周波数スケーラブルのように周波数が変わる場合である。上記の場合に対して、その他の場合は、補償による音質劣化よりも、上位レイヤの符号(符号化情報)が無いことで下位レイヤの符号化歪みを復号できない場合の音質劣化の方が聴感的に劣化が少ないという傾向があるため、一般に補償処理は必要なく、そのまま合成音を出力する。また、無音フラグ格納部201に格納されている無音フラグのうち、フレーム番号i=0(すなわち、次に出力するフレーム)に対応する無音フラグsflag(0)が「2」の場合、つまり、レイヤ2までの復号が完了しており且つ無音と判定されている場合には、補償部110によるレイヤ3,4の補償処理をせずに、合成音検証部204は、合成音を合成部205に出力する。一方、合成音検証部204は、補償が必要な場合は、合成音(syn(0,t)、t=0−L)または(spec(0,f),f=−M)を補償部110へ出力する。
合成部205は、実施の形態1の合成部112と同様にして、合成音検証部204から合成音が入力した場合に直ちに合成音をスピーカ113の出力用バッファに伝送する。そして、合成部205は、1フレーム分の合成を行った後に、全ての状態を1フレーム進める。また、実施の形態1と同様、(3)式に従って、状態・符号格納部103に格納されている状態マトリクスと符号データマトリクス、及び合成音格納部106に格納されている合成音マトリクスのメモリシフトおよび初期化が行われる。そして、合成部205は、メモリシフトおよび初期化が行われた状態マトリクスと符号データマトリクスを状態・符号格納部103へ再度格納するとともに、メモリシフトおよび初期化が行われた合成音マトリクスを合成音格納部106に再度格納する。さらに、無音フラグ格納部201に格納されている無音フラグのメモリシフトおよび初期化が行われる。そして、合成部205は、メモリシフトおよび初期化が行われた無音フラグを無音フラグ格納部201に再度格納する。無音フラグのメモリシフトおよび初期化の方法を(4)式に示す。
また、合成部205は、実施の形態1の合成部112と同様、タイマー部107の時間Tを、スピーカ113が1フレームの合成音を出力するのに要する時間に設定し直す。また、合成部205は、クロック遅延検出部111から送られる信号を常に監視する。また、合成部205は、クロック遅延検出部111から調整指示が来た場合、調整指示が「進みすぎ」であり、且つ、無音フラグ格納部201からの無音フラグが「2」(無音区間)の場合(以下「状態1」と記載する)には、無音区間を先にスピーカ113に送り、現フレームの合成音をその後に送る。また、合成部205は、調整指示が「遅れ」であり、且つ、無音フラグ格納部201からの無音フラグが「2」の場合、且つ、合成音格納部106に2フレーム以上の合成音が既に復号されている場合(以下「状態2」と記載する)に
は、現フレームの合成音を出さずに破棄し、2番目の合成音をスピーカ113に送る。合成部205は、状態2の場合には更に1フレーム多くメモリシフトの処理を行う。また、合成部205は、クロック遅延検出部111から調整指示が来た場合、かつ上記の状態1及び状態2に当てはまらない場合は、状態1または状態2になるまで待ち続け、無音フラグが「2」の区間(無音区間)が来て対処できるタイミングになった際にフレームの出力を調整する処理を行う。
は、現フレームの合成音を出さずに破棄し、2番目の合成音をスピーカ113に送る。合成部205は、状態2の場合には更に1フレーム多くメモリシフトの処理を行う。また、合成部205は、クロック遅延検出部111から調整指示が来た場合、かつ上記の状態1及び状態2に当てはまらない場合は、状態1または状態2になるまで待ち続け、無音フラグが「2」の区間(無音区間)が来て対処できるタイミングになった際にフレームの出力を調整する処理を行う。
次に、レイヤ選択部202における、復号する符号のフレーム番号とレイヤ番号を決定する方法について、図8を用いて説明する。図8は、復号する符号のフレーム番号とレイヤ番号を決定する方法を示すフロー図である。なお、図8において、図2に示すフロー図と同一の処理については同一の符号を付し、説明を省略する。
まず、レイヤ選択部202は、相対的なフレーム番号0(i=0)のフレームを選択し(ST301)、相対的なフレーム番号が「3」よりも大きいか否かを判定する(ST302)。レイヤ選択部202は、相対的なフレーム番号が「3」よりも大きい場合には(ST302:YES)、ST201に進む。
一方、レイヤ選択部202は、相対的なフレーム番号が「3」よりも大きくない場合には(ST302:NO)、レイヤ番号0(j=0)のレイヤを選択する(ST303)。また、レイヤ選択部202は、レイヤ番号jが「4」よりも大きいか否か、または、レイヤ番号jが「2」よりも大きく且つ無音フラグsflag(i)が「2」であるか否かを判定する(ST304)。ただし、この際、無音フラグsflag(i)を参照する直前に、無音フラグ格納部201の無音フラグの内容を必ず読み直す。なお、判定の度に無音フラグの内容を読み直すのは、最新の無音フラグの内容を用いて判定を行う必要があるためであり、無音フラグ格納部201の内容は復号部203および合成部205により書き換えられている可能性があるからである。
レイヤ番号が「4」よりも大きい場合、または、レイヤ番号jが「2」よりも大きく且つ無音フラグsflag(i)が「2」である場合には(ST304:YES)、レイヤ選択部202は、次のフレームを選択して(ST305)、ST302の判定を行う。
一方、レイヤ番号が「4」よりも大きくなく、且つ、レイヤ番号jが「2」よりも大きくなく且つ無音フラグsflag(i)が「2」ではない場合には(ST304:NO)、レイヤ選択部202は、状態マトリクスstate(i,j)を参照することにより、選択したフレーム番号iのレイヤ番号jについて、届いている(すなわち、パケットが復号済みであり符号(符号化情報)を取り出している)がまだ符号(符号化情報)を復号していないことを示す番号「1」があるか否かを判定する(ST306)。ただし、この際、状態マトリクスstate(i,j)を参照する直前に、実施の形態1(図2に示すST206及び207)と同様にして、状態・符号格納部103の状態マトリクスの内容を必ず読み直す。
番号「1」がある場合には(ST306:YES)、レイヤ選択部202は、そのフレーム番号iとレイヤ番号jを復号部203へ出力する。
一方、番号「1」がない場合には(ST306:NO)、レイヤ選択部202は、選択したフレーム番号iのレイヤ番号jについて、復号済みであることを示す番号「2」を探索して、番号「2」があるか否かを判定する(ST307)。
番号「2」がある場合には(ST307:YES)、レイヤ選択部202は、次のレイヤを選択して(ST308)、ST304の判定を行う。
一方、番号「2」がない場合には(ST307:NO)、レイヤ選択部202は、次のフレームを選択して(ST305)、ST302の判定を行う。
また、レイヤ選択部202は、ST202において、相対的なフレーム番号が「3」よりも大きい場合には(ST202:YES)、ST301に戻る。
このように、レイヤ選択部202は、状態マトリクス及び無音フラグを参照することにより、フレーム毎に下位層(下位レイヤ)から上位層(上位レイヤ)に向かって、パケットが届いているがパケットから取り出される符号(符号化情報)をまだ復号していないことを示す番号「1」をstate(i,j)において探索していく。この際、レイヤ選択部202は、パケットが届いていないことを示す番号「0」を検出した場合には、「0」を検出したフレームではそれより上位のレイヤを探索しても復号できないので、次のフレームを探索する。
また、レイヤ選択部202では、復号する符号のフレーム番号およびレイヤ番号を決定するアルゴリズムとして、図8に示すように、近似した構成の2つのアルゴリズム(図8に示すST301〜308のアルゴリズム、および、ST201〜208のアルゴリズム)を直列に連結している。ここで、図8に示すST301〜308では、レイヤ選択部202は、探索しているフレームが無音区間であると判定した場合(図8に示すST304:YES)には、そのフレームの探索を中止して次のフレームの探索に移る。すなわち、レイヤ選択部202は、レイヤ番号jが4より大きくなる場合(そのフレームの全てのレイヤを探索した場合)に加え、レイヤ番号jが2より大きく(レイヤ3以上)且つ無音フラグsflag(i)が「2」(無音区間)である場合にも、そのフレームの探索を中止して次のフレームの探索に移る。すなわち、レイヤ選択部202は、複数のフレームのうち、無音フラグsflag(i)が「2」を示すフレーム(有音/無音判定の判定結果が無音区間であることを示すフレーム)以外のフレームにおいて、状態マトリクスの番号「1」であるレイヤの探索を行う。つまり、レイヤ選択部202は、無音フラグsflag(i)が「2」の場合には、レイヤ3,4の符号に対する復号によって得られる合成音のパワは非常に小さいと判断し、レイヤ3,4の符号に対する復号の必要性は低いと判断する。
一方、図8に示すST201〜208では、レイヤ選択部202は、ST301〜308におけるフレームの探索で復号すべき符号を持つレイヤが見つからなかった場合(図8に示すST302:YES)に、無音フラグsflag(i)を参照せずに、状態マトリクスstate(i,j)のみを参照して、届いているがまだ復号していないことを示す番号「1」を再度探索していく。
つまり、レイヤ選択部202は、図8に示すST301〜308において無音フラグを参照することで、無音区間であるフレームの上位レイヤ(レイヤ3,4)の符号の復号の優先度を下げて(すなわち、上位レイヤの符号の復号をスキップして)、他のフレームの探索を行う。その後、レイヤ選択部202は、復号すべき符号を持つレイヤが見つからない場合には図8に示すST201〜208において全てのレイヤについて復号すべき符号を持つレイヤを探索する。
以上で、復号する符号のフレーム番号とレイヤ番号を決定する方法の説明を終える。
次に、復号部203における有音/無音判定処理の詳細について説明する。図9は、本実施の形態に係る復号部203の内部構成のうち、有音/無音判定処理を行う構成部の構成を示すブロック図である。
図9において、振幅探索部231は、合成音格納部106から時系列の合成音syn(i,t)および周波数スペクトルの合成音spec(i,f)を取り出す。そして、振幅探索部231は、合成音syn(i,t)及びspec(i,f)各々の振幅の最大値を探索する。具体的には、振幅探索部231は、合成音syn(i,t)またはspec(i,f)の各信号値の絶対値を比較することで、合成音syn(i,t)及びspec(i,f)各々の振幅の最大値を探索する。ここで、syn(i,t)の最大振幅をmaxsyn(i)とし、spec(i,f)の最大振幅をmaxspec(i)とする。そして、振幅探索部231は、探索結果であるmaxsyn(i)及びmaxspec(i)を比較部233に出力する。
定数格納部232は、合成音syn(i,t)及びspec(i,f)各々に対する定数を格納する。ここで、syn(i,t)に対する定数をMsynとし、spec(i,f)に対する定数をMspecとする。2つの定数Msyn及びMspecは、聴感的に無音と判断できる、十分に小さい値に予め設定されている。
比較部233は、振幅探索部231から入力されるmaxsyn(i)及びmaxspec(i)と、定数格納部232に格納されている定数Msyn及びMspecとをそれぞれ比較する。すなわち、比較部233は、maxsyn(i)とMsynとを比較し、maxspec(i)とMspecとを比較する。そして、比較部233は、比較の結果、maxsyn(i)がMsynより小さく、且つ、maxspec(i)がMspecより小さい場合、フレーム番号iのフレームを無音と判断し、無音フラグsflag(i)として「2」を生成する。一方、比較部233は、上記以外の場合、フレーム番号iのフレームを有音と判断し、無音フラグsflag(i)として「1」を生成する。そして、比較部233は、生成した無音フラグsflag(i)を無音フラグ格納部201に出力する。
このように、復号部203は、あるフレームの全ての合成音が予め設定された振幅(定数)よりも小さい場合のみ、そのフレームが無音であると判定する。換言すると、復号部203は、あるフレームのいずれか1つの合成音でも予め設定された振幅(定数)以上の場合には、そのフレームが有音であると判定する。また、復号部203は、時系列の合成音syn(i,t)及び周波数スペクトルの合成音spec(i,f)の有音/無音判定を個別に行い、双方が無音であると判定した場合のみ、フレーム番号iのフレームが無音であると判定する。換言すると、復号部203は、時系列の合成音syn(i,t)及び周波数スペクトルの合成音spec(i,f)のうちいずれか1つでも有音であると判定した場合には、フレーム番号iのフレームが有音であると判定する。
このように、音声復号装置200は、復号部203におけるレイヤ2の復号時に得られる無音フラグを用いることで、レイヤ3,4の符号(符号化情報)の重要性を推定する。具体的には、音声復号装置200は、無音フラグが無音区間を示す場合(「2」の場合)、レイヤ3,4の符号の重要性が小さいと推定する。これは、スケーラブルコーデックでは、下位レイヤの符号化誤差(符号化歪み)が上位レイヤで符号化されるため、パワの期待値は上位レイヤほどより小さくなるためである。すなわち、レイヤ2の復号時に無音区間と判定されたフレームでは、レイヤ2よりも上位レイヤであるレイヤ3,4の符号(符号化情報)を復号して得られる合成音を下位レイヤの合成音と加算しても、加算結果も無音区間であると判定される可能性が高くなる。よって、音声復号装置200は、無音フラグが「2」(すなわち無音区間)であるフレームのレイヤ3,4の符号に対する復号の優先度を下げる(すなわち、レイヤ3,4の符号に対する復号をスキップする)ことで、スケーラブルコーデックの復号を効率良く行うことができる。
図10は、無音フラグsflag(i)の一例を示す図である。図10は、図3に示す状態マトリクスの状態及び図4に示す符号データマトリクスの状態の場合において、無音フラグ格納部201に格納されている無音フラグである。
図10に示すフレーム0では、図3に示すようにレイヤ2の符号まで復号されているので有音/無音判定が行われている。図10では、フレーム0は音声が有音であることを示す「1」となる。一方、図10に示すフレーム1〜3については、図3に示すようにレイヤ2以降の符号が復号されていないので、有音/無音判定が行われていない。よって、図10では、フレーム1〜3はレイヤ2以降の符号が復号されていないことを示す「0」となる。
このようにして、本実施の形態では、音声復号装置は、実施の形態1と同様にして、復号すべき符号を持つレイヤの探索の際、各フレームにおいてパケットが届いていないレイヤよりも上位レイヤの探索を行わずに、次のフレームを探索する。さらに、音声復号装置は、復号すべき符号を持つレイヤの探索の際、各フレームのあるレイヤにおいて無音区間であると判定された場合にはそのレイヤよりも上位のレイヤの探索を行わずに、次のフレームを探索する。よって、本実施の形態によれば、実施の形態1よりもさらに、できるだけ早く復号処理を行って合成音を早めに生成するので、所定時間連続してプロセッサを別の用途に使用することができるとともに、緊急の割り込みによりプロセッサを他の用途に使用されても合成音を途切れずに生成することができる。
以上、本発明の各実施の形態について説明した。
なお、上記の実施の形態において、4つのフレーム及び5つのレイヤの符号を復号する場合について説明したが、本発明はこれに限らず、様々なレイヤ数のスケーラブルコーデックに適用することができる。例えば、ITU−T標準G.729.1のスケーラブルコーデックは12層のレイヤで構成されているので、上記の実施の形態において、その仕様に合わせることもできる。即ち、本発明はレイヤ数に依存しない。またフレーム数もシステムの都合で様々に変更してもよい。多くのフレーム分の符号データマトリクスを使うと、パケットがバラバラに届いてもそのフレーム数分の余裕があるので、送られた符号データを全て使って高品質の復号がなされる確率は上がるとともに、パケットが無駄にならない。システムの性能により、パケットの処理遅延を極力少なくする必要がある場合には、フレーム数を調整して遅延を少なくすればよい。即ち、本発明はフレーム数には依存しない。
また、上記の実施の形態において、5つのレイヤを全部使用したが、本発明はこれに限らず、音声復号装置において使用するレイヤの最大数を決めて、最大数のレイヤの符号の復号結果を合成して生成した合成音を出力するという仕様でも本発明は有効である。その場合、パケット受信部101において、不要な上位層のレイヤのパケットを破棄してもよい。即ち、本発明は、音声復号装置と音声符号化装置とのレイヤ数の違いには依存しない。
また、上記の実施の形態において、合成部112(または、合成部205)の機能により、状態・符号格納部103及び合成音格納部106に格納されるマトリクスのアップデートの際にメモリシフトを行った。しかし、本発明はこれに限らず、各マトリクスのメモリをフレームに対してサイクリックに使用して、メモリシフトを行わない構成でも良い。これにより、メモリシフトの演算量を節約することができる。
また、上記の実施の形態において、各レイヤのパケットが異なる順番により送られるという場合について開示したが、本発明はこれに限らず、いくつかのレイヤの符号が纏まっ
て伝送される場合でも本発明は有効である。この場合には、状態・符号格納部103及び合成音格納部106に格納されるマトリクスをまとめて読み書きすればよいからである。また、まとめて読み書きしなくても、まとめて1つのレイヤの符号として扱うこともできる。即ち、本発明は、伝送されるパケットのレイヤ数には依存しない。
て伝送される場合でも本発明は有効である。この場合には、状態・符号格納部103及び合成音格納部106に格納されるマトリクスをまとめて読み書きすればよいからである。また、まとめて読み書きしなくても、まとめて1つのレイヤの符号として扱うこともできる。即ち、本発明は、伝送されるパケットのレイヤ数には依存しない。
また、上記の実施の形態において、パケットが合成に間に合わなかった場合、または、例えばレイヤ0、1のパケットが届いて、レイヤ2のパケットが届かず、レイヤ3、4のパケットが届いている場合、レイヤ3、4のパケットの復号結果は合成には使用できない場合について説明した。しかし、本発明はこれに限らず、レイヤ3、4のパケットの復号結果を以降のフレームの復号の際に使用するフィルタまたは予測の状態の作成に用いることができる。これにより、以降のフレームの復号性能を確保することができる。
また、上記実施の形態では、音声復号装置が、複数のフレームのうち時刻がより早いフレーム(つまり、フレーム番号がより小さいフレーム)から順に、状態マトリクスの番号「1」であるレイヤの探索を行う場合について説明した。しかし、本発明では、音声復号装置は、フレーム番号順に関わらずフレームを選択してもよい。
また、上記の実施の形態の説明は、本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。本発明は、音声復号装置を有するシステムであればどのような場合にも適用することができる。
また、上記の実施の形態において説明した音声復号装置は、移動体通信システムにおける通信端末装置および基地局装置に搭載することが可能であり、これにより上記と同様の作用効果を有する通信端末装置、基地局装置、および移動体通信システムを提供することができる。
また、上記の実施の形態においては、ハードウェアで構成する場合を例に説明したが、本発明はこれに限らず、ソフトウェアで実現することも可能である。例えば、本発明に係るアルゴリズムをプログラミング言語によって記述し、このプログラムをメモリに記憶しておいて情報処理手段によって実行させることにより、本発明に係る音声復号装置等と同様の機能を実現することができる。
また、上記実施の形態の各機能ブロックは、典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部または全てを含むように1チップ化されても良い。ここで、LSIは、集積度の違いによって、IC、システムLSI、スーパーLSIまたはウルトラLSI等と呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラム化することが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続もしくは設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらに、半導体技術の進歩または派生する別技術により、LSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
2009年3月13日出願の特願2009−060792および2009年7月15日出願の特願2009−166796の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。
本発明にかかる音声復号装置は、特に階層構造を持つスケーラブルコーデックに適用するのに好適である。
Claims (6)
- 複数レイヤから構成される音声符号化装置において生成されたそれぞれのレイヤの符号を、複数フレームにわたって受信して格納する受信手段と、
前記それぞれのレイヤの符号を復号する復号手段と、
を具備する音声復号装置であって、
未復号状態の前記それぞれのレイヤの符号のうち、最初に復号を行う符号に対応するフレーム番号とレイヤ番号とを選択する選択手段、
を更に具備し、
前記受信手段は、
前記それぞれのレイヤの符号が未受信であるか未復号であるか復号済みであるかを示す復号状態を更に格納し、更新指示を入力した場合には前記復号状態の更新を行い、
前記選択手段は、
前記受信手段において前記復号状態が格納又は更新された時点で前記復号状態が未復号状態であって、格納又は更新後に最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を、前記復号状態を探索することにより選択するとともに、前記受信手段に対して、前記復号状態の前記更新指示を出力し、
前記復号手段は、
前記フレーム番号及び前記レイヤ番号に対応する符号を復号する、
音声復号装置。 - 前記選択手段は、
前記復号状態の探索において、1つのフレームについて、前記復号状態が未復号状態であるレイヤのうち、前記復号状態が復号済みであるレイヤよりも1つ上位に存在するレイヤの符号、又は、前記1つのフレームにおける最下位レイヤの符号を最初に復号を行う符号とし、前記最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を選択し、
前記1つのフレームについて前記選択ができなかった場合には、次のフレームについて探索を継続する、
請求項1記載の音声復号装置。 - フレーム毎に無音区間であるか否かを判定する判定手段と、
前記判定手段における判定結果をフレーム毎に格納する判定結果格納手段と、
を更に具備し、
前記選択手段は、
前記復号状態とともに前記判定結果も用いて前記復号状態の探索を行う、
請求項1記載の音声復号装置。 - 前記選択手段は、
前記複数フレームのうち、前記判定結果が無音区間であるフレームをスキップして前記復号状態の探索を行う、
請求項3記載の音声復号装置。 - 1つのフレームについて、前記復号手段において前記フレーム番号及び前記レイヤ番号の符号を復号して生成された復号信号と、復号済みの他のレイヤの復号信号とを合成して合成音を生成する合成手段、を更に具備する、
請求項1記載の音声復号装置。 - 複数レイヤから構成される音声符号化装置において生成されたそれぞれのレイヤの符号を、複数フレームにわたって受信してメモリに格納する受信ステップと、
前記それぞれのレイヤの符号を復号する復号ステップと、
を具備する音声復号方法であって、
未復号状態の前記それぞれのレイヤの符号のうち、最初に復号を行う符号に対応するフレーム番号とレイヤ番号とを選択する選択ステップ、
を更に具備し、
前記受信ステップは、
前記それぞれのレイヤの符号が未受信であるか未復号であるか復号済みであるかを示す復号状態を更に前記メモリに格納し、更新を指示された場合には前記メモリの前記復号状態の更新を行い、
前記選択ステップは、
前記メモリにおいて前記復号状態が格納又は更新された時点で前記復号状態が未復号状態であって、格納又は更新後に最初に復号を行う符号に対応する前記フレーム番号及び前記レイヤ番号を、前記復号状態を探索することにより選択するとともに、前記メモリに対して、前記復号状態の更新を指示し、
前記復号ステップは、
前記フレーム番号及び前記レイヤ番号に対応する符号を復号する、
音声復号方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009060792 | 2009-03-13 | ||
JP2009060792 | 2009-03-13 | ||
JP2009166796 | 2009-07-15 | ||
JP2009166796 | 2009-07-15 | ||
PCT/JP2010/001793 WO2010103855A1 (ja) | 2009-03-13 | 2010-03-12 | 音声復号装置及び音声復号方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2010103855A1 true JPWO2010103855A1 (ja) | 2012-09-13 |
Family
ID=42728151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011503738A Pending JPWO2010103855A1 (ja) | 2009-03-13 | 2010-03-12 | 音声復号装置及び音声復号方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20120041761A1 (ja) |
EP (1) | EP2407962A1 (ja) |
JP (1) | JPWO2010103855A1 (ja) |
CN (1) | CN102349102A (ja) |
WO (1) | WO2010103855A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9021327B2 (en) * | 2013-02-19 | 2015-04-28 | Harris Corporation | Dynamic packet redundancy for a free space optical communication link |
JP2014230159A (ja) * | 2013-05-23 | 2014-12-08 | 株式会社メガチップス | 画像処理装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3139602B2 (ja) | 1995-03-24 | 2001-03-05 | 日本電信電話株式会社 | 音響信号符号化方法及び復号化方法 |
JP3481087B2 (ja) | 1997-07-22 | 2003-12-22 | 沖電気工業株式会社 | 音声通信ゆらぎ吸収方法 |
KR100335611B1 (ko) * | 1997-11-20 | 2002-10-09 | 삼성전자 주식회사 | 비트율 조절이 가능한 스테레오 오디오 부호화/복호화 방법 및 장치 |
JP3917767B2 (ja) | 1998-11-05 | 2007-05-23 | 日立情報通信エンジニアリング株式会社 | 音声ゆらぎ補正制御方法、並びに音声再生装置および音声中継装置 |
JP2001100791A (ja) * | 1999-09-28 | 2001-04-13 | Sanyo Electric Co Ltd | 復号方法、コンピュータにそれを実行させるためのプログラムを記録した記憶媒体および復号装置 |
DE60130180T2 (de) * | 2000-04-14 | 2008-05-15 | Sony Corp. | Verfahren zur kodierung und dekodierung, aufzeichnungsmedium und programm |
JP3636348B2 (ja) | 2001-09-12 | 2005-04-06 | 日本電気株式会社 | 音声パケット遅延揺らぎ吸収装置及び吸収方法 |
JP3942523B2 (ja) * | 2002-10-17 | 2007-07-11 | 日本電信電話株式会社 | ディジタル信号符号化方法、復号化方法、符号器、復号器及びこれらのプログラム |
US20070282607A1 (en) * | 2004-04-28 | 2007-12-06 | Otodio Limited | System For Distributing A Text Document |
JPWO2005106848A1 (ja) * | 2004-04-30 | 2007-12-13 | 松下電器産業株式会社 | スケーラブル復号化装置および拡張レイヤ消失隠蔽方法 |
JP2007235221A (ja) | 2006-02-27 | 2007-09-13 | Fujitsu Ltd | 揺らぎ吸収バッファ装置 |
JP2009060792A (ja) | 2007-09-04 | 2009-03-26 | Fujifilm Corp | 錠剤またはカプセル剤の食品。 |
JP2009166796A (ja) | 2008-01-21 | 2009-07-30 | Mazda Motor Corp | 車両のサスペンション装置 |
-
2010
- 2010-03-12 WO PCT/JP2010/001793 patent/WO2010103855A1/ja active Application Filing
- 2010-03-12 EP EP10750611A patent/EP2407962A1/en not_active Withdrawn
- 2010-03-12 US US13/255,982 patent/US20120041761A1/en not_active Abandoned
- 2010-03-12 JP JP2011503738A patent/JPWO2010103855A1/ja active Pending
- 2010-03-12 CN CN201080011371XA patent/CN102349102A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN102349102A (zh) | 2012-02-08 |
WO2010103855A1 (ja) | 2010-09-16 |
EP2407962A1 (en) | 2012-01-18 |
US20120041761A1 (en) | 2012-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7805297B2 (en) | Classification-based frame loss concealment for audio signals | |
JP5072835B2 (ja) | 堅牢なデコーダ | |
US7996217B2 (en) | Method for adaptive codebook pitch-lag computation in audio transcoders | |
US10636432B2 (en) | Method for predicting high frequency band signal, encoding device, and decoding device | |
US10607621B2 (en) | Method for predicting bandwidth extension frequency band signal, and decoding device | |
JP6553025B2 (ja) | 冗長フレーム情報を通信するシステムおよび方法 | |
RU2408089C9 (ru) | Декодирование кодированных с предсказанием данных с использованием адаптации буфера | |
JPWO2006025313A1 (ja) | 音声符号化装置、音声復号化装置、通信装置及び音声符号化方法 | |
JPWO2007116809A1 (ja) | ステレオ音声符号化装置、ステレオ音声復号装置、およびこれらの方法 | |
US20140088974A1 (en) | Apparatus and method for audio frame loss recovery | |
BR122020015614B1 (pt) | Método e dispositivo para interpolar parâmetros de filtro de predição linear em um quadro de processamento de sinal sonoro atual seguindo um quadro de processamento de sinal sonoro anterior | |
US8055499B2 (en) | Transmitter and receiver for speech coding and decoding by using additional bit allocation method | |
JP2003501675A (ja) | 時間同期波形補間によるピッチプロトタイプ波形からの音声を合成するための音声合成方法および音声合成装置 | |
EP1617417A1 (en) | Voice coding/decoding method and apparatus | |
JP3464371B2 (ja) | 不連続伝送中に快適雑音を発生させる改善された方法 | |
WO2010103855A1 (ja) | 音声復号装置及び音声復号方法 | |
JPWO2006009075A1 (ja) | 音声符号化装置および音声符号化方法 | |
WO2009122757A1 (ja) | ステレオ信号変換装置、ステレオ信号逆変換装置およびこれらの方法 | |
JP5098458B2 (ja) | 音声符号化装置、音声符号化方法、及び、プログラム | |
JPH1168578A (ja) | 音声圧縮伸長方法及びその装置 | |
JP2005173215A (ja) | 音声認識システム |