(57)【要約】【課題】  簡単な処理で処理能力不足から発生する無音期間をなくして聴覚上耳障りな音の発生を抑制する。【解決手段】  転送部１３により送出された転送完了割り込み信号を制御処理部１１が受信した際に、処理可能な圧縮符号化された音声信号があるにも係わらず、記憶部１２が枯渇した場合には、転送部１３による復号されたデータの転送を停止するのではなく、直前のフレームのデータを転送部１３で読み出し、再転送させる。【選択図】  図１
2005284034.tif 000002
【特許請求の範囲】
【請求項１】
圧縮符号化された音声信号を復号する音声復号装置において、
前記圧縮符号化された音声信号を復号する制御処理部と、
復号されたデータをフレームごとに記憶する記憶部と、
前記記憶部から前記データを読み出し転送し、転送が完了した場合にはその旨の割り込み信号を前記制御処理部に送出する転送部と、を有し、
前記制御処理部は、前記割り込み信号の受信時に、処理可能な前記圧縮符号化された音声信号があるにも係わらず前記記憶部が枯渇した場合には、処理能力不足が発生したと判定して直前の前記フレームの前記データを前記転送部で読み出し、再転送させることを特徴とする音声復号装置。
【請求項２】
前記記憶部は２つのバッファからなり、
前記制御処理部は、リードポインタを更新することにより前記データを読み出す前記バッファの切替えを行い、一方の前記バッファの前記データの転送が完了した旨の前記割り込み信号の受信時に、他方の前記バッファが枯渇して処理能力不足が発生した場合には、前記リードポインタを更新しないで前記一方のバッファの前記データを前記転送部に再転送させることを特徴とする請求項１記載の音声復号装置。
【請求項３】
復号処理に要した時間を計測するタイマー回路を更に有し、
前記制御処理部は、前記タイマー回路にて計測した前記復号処理に要した時間を参照して処理能力不足の発生を予測することを特徴とする請求項１記載の音声復号装置。
【請求項４】
前記制御処理部は、処理能力不足が発生すると予測した場合には、次の前記復号処理では、処理を省略した復号処理を行うことを特徴とする請求項３記載の音声復号装置。
【請求項５】
前記制御処理部は前記復号処理の省略として、複数のチャンネルの前記圧縮符号化された音声信号のうち、特定の前記チャンネルの前記圧縮符号化された音声信号のみ前記復号処理を行い、他の前記チャンネルは、前記復号処理を行った特定の前記チャンネルの前記圧縮符号化された音声信号のコピーを使用することを特徴とする請求項４記載の音声復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は音声復号装置に関し、特にＭＰＥＧ（Moving Picture Coding Experts Group）などの高圧縮率の符号化で生成されたオーディオストリームを復号（デコード）する音声復号装置に関する。
【背景技術】
【０００２】
近年、ＤＶＤ（Digital Versatile Disc）プレーヤ、デジタルＴＶ、ＤＶＤレコーダなど、高圧縮率の符号化で生成されたＶｉｄｅｏ／Ａｕｄｉｏのストリームを復号する装置が開発されている。特に、オーディオストリームは、符号化の種類が数多く存在し、より緻密なハードウェアの規模と性能のトレードオフが要求されている。
【０００３】
従来の音声復号装置は、一般的にＤＳＰ（Digital Signal Processor）やＣＰＵ（Central Processing Unit）で動作するソフトと、それを補助するハードウェアで構成される。圧縮符号化されたオーディオストリームは、フレームという一定時間を基準にした単位で処理される。オーディオを圧縮する符号化方式やサンプリングレートによって異なるが、通常２０〜５０ｍｓほどである。
【０００４】
例えば、ＭＰＥＧ２  ＡＡＣ（Advanced Audio Codec）  Ａｕｄｉｏで、２ｃｈ（チャンネル）、サンプリング周波数ｆｓ＝４８ｋＨｚの場合は次のようになる。
１フレーム＝１０２４サンプル／ｃｈ＝１０２４×２ｃｈ×２ｂｙｔｅ＝４０９６ｂｙｔｅ
１フレーム時間＝（１／ｆｓ）×１０２４サンプル＝（１／４８０００）×１０２４ｓａｍｐｌｅ＝２１．３３ｍｓ
図８は、従来の音声復号装置の構成図である。
【０００５】
従来の音声復号装置５００は、オーディオストリームをデコードするＣＰＵ５０１と、ＲＡＭ（Random Access Memory）５１０と、外部からオーディオストリームを入力するストリーム入力回路５０２と、ＲＡＭ５１０に対し、ＤＭＡ（Direct Memory Access）転送を行うストリーム入力ＤＭＡ転送回路５０３と、デコードによって得られたＰＣＭ（Pulse Code Modulation）データをＲＡＭ５１０から読み出し、転送するＰＣＭ出力ＤＭＡ転送回路５０４と、ＰＣＭデータを出力するＰＣＭ出力回路５０５と、を有している。
【０００６】
以下従来の音声復号装置５００の動作を説明する。
オーディオストリームはストリーム入力回路５０２に入力されると、ストリーム入力ＤＭＡ転送回路５０３によって転送され、ＲＡＭ５１０上のＥＳ（Elementary Stream）バッファ５１１ａ、５１１ｂへ格納される。ＥＳバッファ５１１ａ、５１１ｂは、ダブルバッファ構成である。ストリーム入力ＤＭＡ転送回路５０３は、一方のＥＳバッファ５１１ａ、５１１ｂに１ＥＳ分のオーディオストリームが格納されてＤＭＡ転送が完了するごとに、ストリーム入力ＤＭＡ転送完了割り込み信号を送出し、ＣＰＵ５０１へ転送完了を通知する。
【０００７】
ＣＰＵ５０１は、ストリーム入力ＤＭＡ転送完了割り込み信号を受信すると、オーディオストリームを格納するＥＳバッファ５１１ａ、５１１ｂを切替え、１ＥＳ分のオーディオストリームの格納を完了したＥＳバッファ５１１ａ、５１１ｂからはオーディオストリームを読み出す。そしてこれをデコードし、デコードして得られたＰＣＭデータをＰＣＭバッファ５１２ａ、５１２ｂへフレーム単位で随時格納する。なお、ＰＣＭバッファ５１２ａ、５１２ｂもダブルバッファ構成となっている。ＰＣＭ出力ＤＭＡ転送回路５０４は、ＰＣＭバッファ５１２ａ、５１２ｂに格納されたＰＣＭデータをＰＣＭ出力回路５０５に転送する。ＰＣＭ出力ＤＭＡ転送回路５０４は、一方のＰＣＭバッファ５１２ａ、５１２ｂのＤＭＡ転送が完了するごとに、ＰＣＭ出力ＤＭＡ転送完了割り込み信号を送出してＣＰＵ５０１へ転送完了を通知する。なお、ＰＣＭバッファ５１２ａ、５１２ｂのそれぞれにＬ（Ｌｅｆｔ）−ｃｈ用、Ｒ（Ｒｉｇｈｔ）−ｃｈ用のＰＣＭデータが含まれている。
【０００８】
ＣＰＵ５０１は、ＰＣＭ出力ＤＭＡ転送完了割り込み信号を受信すると、ＰＣＭ出力ＤＭＡ転送回路５０４が読み出すＰＣＭバッファ５１２ａ、５１２ｂを切替える。
このようにオーディオストリームの入力やＰＣＭデータの出力といった時間的に制約のある処理はＤＭＡ転送にてＣＰＵ５０１の介在なく行われることが一般的である。
【０００９】
図９は、各バッファのバッファリング関係を示した図である。
ここでは、ストリーム入力ＤＭＡ転送回路５０３によるストリーム入力ＤＭＡ処理、ＣＰＵ５０１によるデコード処理、及びＰＣＭ出力ＤＭＡ転送回路５０４によるＰＣＭ出力ＤＭＡ処理の際の、ＥＳバッファ５１１ａ、５１１ｂ、ＰＣＭバッファ５１２ａ、５１２ｂのバッファリングについて示している。なお、図中では、それぞれダブルバッファ構成であるＥＳバッファ５１１ａ、５１１ｂ、ＰＣＭバッファ５１２ａ、５１２ｂの一方を“Ｂａｎｋ１”、他方を“Ｂａｎｋ２”と示している。また“Ｗ”は書き込み（Ｗｒｉｔｅ）、“Ｒ”は読み出し（Ｒｅａｄ）を示している。
【００１０】
デコード処理が開始されると、まず、ストリーム入力ＤＭＡ転送回路５０３から、１ＥＳ分のオーディオストリームがＢａｎｋ１のＥＳバッファ（ここでは例としてＥＳバッファ５１１ａとする）に書き込まれる。次の期間ではＢａｎｋ１のＥＳバッファ５１１ａに書き込まれた１ＥＳ分のオーディオストリームがＣＰＵ５０１によって読み出されてデコード処理が行われ、Ｂａｎｋ１のＰＣＭバッファ（ここでは例としてＰＣＭバッファ５１２ａとする）に書き込まれる。また、同一期間にＢａｎｋ２のＥＳバッファ５１１ｂにオーディオストリームが書き込まれる。
【００１１】
次の期間Ａにおいては、ストリーム入力ＤＭＡ転送回路５０３は、Ｂａｎｋ１のＥＳバッファ５１１ａにオーディオストリームを書き込む。その同一期間で、ＣＰＵ５０１は、Ｂａｎｋ２のＥＳバッファ５１１ｂからオーディオストリームを読み出し、デコード処理後、Ｂａｎｋ２のＰＣＭバッファ５１２ｂへ書き込んでいる。さらにＰＣＭ出力ＤＭＡ転送回路５０４は、Ｂａｎｋ１のＰＣＭバッファ５１１ａからＰＣＭデータを読み出し、ＰＣＭ出力回路５０５に転送する。このように、ダブルバッファを構成することで、オーディオストリームの入力、デコード、ＰＣＭの出力が絶え間なく処理されることになる。ＣＰＵ５０１が、この１フレーム時間（例えば、２１．３３ｍｓ）ごとに、オーディオストリームをデコードできない場合は、いずれＰＣＭバッファ５１２ａ、５１２ｂは枯渇する。
【００１２】
以下、従来の音声復号装置５００における割り込み処理を説明する。
図１０は、従来の音声復号装置における割り込み処理を示すフローチャートである。
ここでは、説明を簡素化するためにストリーム入力ＤＭＡ処理に関する部分は省略している。
【００１３】
まず、ＣＰＵ５０１は、ＰＣＭ出力ＤＭＡ転送完了割り込みか否かを判断し（ステップＳ５０）、ＰＣＭ出力ＤＭＡ転送完了割り込みでなければ割り込み処理を終了（リターン）し、ＰＣＭ出力ＤＭＡ転送割り込みであった場合には、ＰＣＭ出力ＤＭＡ転送完了割り込み信号をクリアし（ステップＳ５１）、ＰＣＭバッファ５１２ａ、５１２ｂのリードポインタを更新（−）する（ステップＳ５２）。具体的には読み出すＰＣＭバッファ５１２ａ、５１２ｂを切替える。次にＣＰＵ５０１は、読み出すＰＣＭバッファ５１２ａ、５１２ｂが空か否かを判定し、空でなければＰＣＭ出力ＤＭＡ転送を再起動し（ステップＳ５４）、割り込み処理を終了（リターン）する。ＰＣＭバッファ５１２ａ、５１２ｂが空と判定された場合には、ステップＳ５５の処理に進む。
【００１４】
ＰＣＭバッファ５１２ａ、５１２ｂが空と判定された場合には、ＣＰＵ５０１はＥＳバッファ５１１ａ、５１１ｂに１ＥＳ以上のストリームが存在するか否かを判定する（ステップＳ５５）。ここで、１ＥＳ以上あれば、ＣＰＵ５０１が処理能力不足であることを示す処理能力不足エラーフラグを１にセットし（ステップＳ５６）、１ＥＳ以上無ければ、ＣＰＵ５０１の処理能力不足ではなくストリームが枯渇しているので、処理能力不足エラーフラグを変更しない。そして、ＰＣＭバッファ５１２ａ、５１２ｂにデータが格納されるまで、ＤＭＡ転送を一旦停止するためにＰＣＭ出力ＤＭＡ起動済みフラグを０にセットし（ステップＳ５７）、割り込み処理を終了（リターン）する。
【００１５】
このように、従来の音声復号装置５００は、ＰＣＭバッファ５１２ａ、５１２ｂがＣＰＵ５０１の処理能力不足で枯渇した場合、ＤＭＡ転送を一旦停止して、ＰＣＭバッファ５１２ａ、５１２ｂにデータが格納されるまで待つという制御をＣＰＵ５０１が行っていた。その結果、ＰＣＭ出力回路５０５からは、０が出力されミュート（無音）されていた。
【００１６】
一方、デコードの際に、訂正不能な誤りがあった場合には、そのフレームのデータを捨てて単にミュートするのではなく、フレームリピートメモリによって、直前の正しいフレームのデータを繰り返し、ノイズの目立たない帯域分割信号を出力する技術が、特許文献１、２に開示されている。
【特許文献１】特開平７−８７０３１号公報
【特許文献２】特開平７−２２１７１３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかし、処理能力不足でいくらかの無音期間が発生した場合には、これは「ブツブツ」というような聴覚上、耳障りな音が発生するという問題があった。
また、処理能力不足が発生しないように十分にマージンをとると、動作周波数の増加や回路規模増大の問題がある。符号化方式と符号化されるデータによっても異なるが、デコード時間にばらつきが生じる可能性がある。もし、あまり起こりえないある特定の組み合わせのみで処理時間が増大することがわかっていても動作周波数や回路規模をこれに合わせる必要があった。
【００１８】
本発明はこのような点に鑑みてなされたものであり、簡単な処理で、処理能力不足から発生する無音期間をなくして聴覚上耳障りな音の発生を抑制する音声復号装置を提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明では上記問題を解決するために、圧縮符号化された音声信号を復号する音声復号装置において、図１に示すように、圧縮符号化された音声信号を復号する制御処理部１１と、復号されたデータをフレームごとに記憶する記憶部１２と、記憶部１２から復号されたデータを読み出し転送し、転送が完了した場合にはその旨の割り込み信号（転送完了割り込み信号）を制御処理部１１に送出する転送部１３と、を有し、制御処理部１１は、転送完了割り込み信号の受信時に、処理可能な圧縮符号化された音声信号があるにも係わらず記憶部１２が枯渇した場合には、処理能力不足が発生したと判定して直前のフレームの復号されたデータを転送部１３で読み出し、再転送させることを特徴とする音声復号装置１０が提供される。
【００２０】
上記の構成によれば、転送部１３により送出された転送完了割り込み信号を制御処理部１１が受信した際に、処理可能な圧縮符号化された音声信号があるにも係わらず、記憶部１２が枯渇した場合には、転送部１３による復号されたデータの転送を停止するのではなく、直前のフレームの復号されたデータを転送部１３で読み出し、再転送させる。
【発明の効果】
【００２１】
本発明は、転送部により送出された転送完了割り込み信号を制御処理部が受信した際に、処理可能な圧縮符号化された音声信号があるにも係わらず、記憶部が枯渇した場合には、転送部による復号されたデータの転送を停止するのではなく、直前のフレームの復号されたデータを転送部で読み出し、再転送させるので、簡単な処理で、処理能力不足から発生する無音期間をなくして聴覚上耳障りな音の発生を抑制することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図１は、本発明の実施の形態の音声復号装置の原理を説明する図である。
本発明の実施の形態の音声復号装置１０は、制御処理部１１と、記憶部１２と、転送部１３と、出力部１４とを有する。
【００２３】
制御処理部１１は、圧縮符号化された音声信号を復号してフレーム単位で記憶部１２に格納する。そして、転送部１３により送出される転送完了割り込み信号の受信時に、次のフレームの復号されたデータを転送部１３に読み出させて転送させる。
【００２４】
記憶部１２は、制御処理部１１で圧縮符号化された音声信号をデコードして得られたデータをフレームごとに記憶する。
転送部１３は、記憶部１２から復号されたデータを読み出して出力部１４に転送し、転送が完了した場合にはその旨の割り込み信号（転送完了割り込み信号）を制御処理部１１に送出する。
【００２５】
出力部１４は、転送部１３を介して転送されたデータを出力する。
以下、音声復号装置１０の動作を説明する。
圧縮符号化された音声信号が入力されると、制御処理部１１は、これをフレーム単位で復号して随時記憶部１２に格納する。転送部１３は、記憶部１２に格納されたデータを随時読み出して、出力部１４に転送して出力させる。転送部１３は、１フレーム分のデータの転送が完了した場合に、制御処理部１１に転送完了割り込み信号を送出する。これを受けた制御処理部１１は次のフレームのデータを転送部１３に読み出させて転送させる。具体的には、リードポインタを更新して、次のフレームを転送部１３にリードさせるためのアドレスを設定する。
【００２６】
ここで、制御処理部１１は、転送完了割り込み信号の受信時に、処理可能な圧縮符号化された音声信号があるにも係わらず記憶部１２が枯渇した場合、つまり、デコードが間に合わず、記憶部１２に、転送部１３が読み出すべき次のフレームがなくなった場合、処理能力不足が発生したと判定して直前のフレームのデータを転送部１３に転送させて、出力部１４から出力する。具体的には、処理能力不足が発生したときにはリードポインタを更新せず、同じフレームのデータを繰り返して転送させるようにする（詳細は後述する）。
【００２７】
このように、処理能力不足により記憶部１２が枯渇した場合には、転送部１３によるデータの転送を停止するのではなく、直前のフレームのデータを転送部１３に転送させる。これにより、無音期間をなくして聴覚上耳障りな音の発生を抑制することができる。
【００２８】
以下、本発明の実施の形態の詳細を説明する。
図２は、本発明の実施の形態の音声復号装置のハードウェア構成を示す図である。
図のように、音声復号装置１００は、オーディオストリームをデコードするＣＰＵ１０１と、ＲＡＭ１１０と、外部からオーディオストリームを入力するストリーム入力回路１０２と、ＲＡＭ１１０に対し、ＤＭＡ転送を行うストリーム入力ＤＭＡ転送回路１０３と、デコードによって得られたＰＣＭデータをＲＡＭ１１０から読み出し、転送するＰＣＭ出力ＤＭＡ転送回路１０４と、ＰＣＭデータを出力するＰＣＭ出力回路１０５と、デコード処理に要した時間などを計測するタイマー回路１０６を有している。
【００２９】
ＲＡＭ１１０は、さらに、オーディオストリームを格納するＥＳバッファ１１１ａ、１１１ｂと、デコードして得られたＰＣＭデータを格納するＰＣＭバッファ１１２ａ、１１２ｂと、タイマー回路１０６により計測した時間を保持する時間計測データ領域１１３と、後述する処理能力不足破綻回避切替えパラメータを保持する処理能力不足破綻回避切替えパラメータ保持領域１１４と、を有する。
【００３０】
ＥＳバッファ１１１ａ、１１１ｂは、ダブルバッファ構成であり、一方のバッファにオーディオストリームを書き込む際に、他方のバッファから予め格納したオーディオストリームをＣＰＵ１０１で読み出すことができる。また、ＰＣＭバッファ１１２ａ、１１２ｂも、ダブルバッファ構成であり、一方のバッファに復号して得られたＰＣＭデータを格納する際に、他方のバッファからは、ＰＣＭ出力ＤＭＡ転送回路１０４により予め格納されたＰＣＭデータの読み出しが可能なようになっている（図９で示したバッファリングを参照）。なお、ＰＣＭバッファ１１２ａ、１１２ｂのそれぞれに、Ｌ−ｃｈ用、Ｒ−ｃｈ用のＰＣＭデータが格納される。また、ＣＰＵ１０１によりリードポインタを更新（−）することによって、読み出すバッファが切替わる。
【００３１】
このように、ダブルバッファを構成することで、オーディオストリームの入力、デコード、ＰＣＭデータの出力が絶え間なく処理されることになる。
なお、図２の音声復号装置１００において、ＣＰＵ１０１は、図１の制御処理部１１に相当する機能を果たし、ＰＣＭバッファ１１２ａ、１１２ｂは記憶部１２、ＰＣＭ出力ＤＭＡ転送回路１０４は転送部１３、ＰＣＭ出力回路１０５は出力部１４にそれぞれ相当する機能を実現する。
【００３２】
また、ＣＰＵ１０１は、タイマー回路１０６にて計測した復号処理に要した時間を、時間計測データ領域１１３より参照して、処理能力不足が発生するか否かを予測する機能を有している（詳細は後述する）。タイマー回路１０６を用いた処理能力不足発生の予測機能を用いるか用いないかは、処理能力不足破綻回避切替えパラメータ保持領域１１４に格納された処理能力不足破綻回避切替えパラメータ（以下単にパラメータと称する）により決定する。このパラメータは、音声復号装置１００のＣＰＵ１０１が行うのではなく、例えば、図示しない外部ホストＣＰＵの制御のもと設定する。
【００３３】
以下、音声復号装置１００の動作の概略を説明する。
オーディオストリームは、ストリーム入力回路１０２に入力されると、ストリーム入力ＤＭＡ転送回路１０３によって転送され、ＲＡＭ１１０上のＥＳバッファ１１１ａ、１１１ｂへ格納される。ストリーム入力ＤＭＡ転送回路１０３は、ＥＳバッファ１１１ａ、１１１ｂの一方に１ＥＳ分のオーディオストリームが格納されてＤＭＡ転送が完了するごとに、ストリーム入力ＤＭＡ転送完了割り込み信号によってＣＰＵ１０１へ転送完了を通知する。ストリーム入力ＤＭＡ転送完了割り込み信号を受信すると、ＣＰＵ１０１は、ＥＳバッファ１１１ａ、１１１ｂの他方を指定してオーディオストリームの入力を継続させる。
【００３４】
ＣＰＵ１０１は、ストリーム入力ＤＭＡ転送完了割り込み信号を受信すると、オーディオストリームを格納するＥＳバッファ１１１ａ、１１１ｂを切替え、１ＥＳ分のオーディオストリームの格納を完了したＥＳバッファ１１１ａ、１１１ｂからはオーディオストリームを読み出す。そしてこれをデコードし、そのデコードして得られたＰＣＭデータをＰＣＭバッファ１１２ａ、１１２ｂへフレーム単位で随時格納する。ＰＣＭ出力ＤＭＡ転送回路１０４は、ＰＣＭバッファ１１２ａ、１１２ｂに格納されたＰＣＭデータをＰＣＭ出力回路１０５に転送する。ＰＣＭ出力ＤＭＡ転送回路１０４は、一方のＰＣＭバッファ１１２ａ、１１２ｂのＤＭＡ転送が完了するごとに、ＰＣＭ出力ＤＭＡ転送完了割り込み信号を送出して、ＣＰＵ１０１へ転送完了を通知する。
【００３５】
ＣＰＵ１０１は、ＰＣＭ出力ＤＭＡ転送完了割り込み信号を受信すると、ＰＣＭ出力ＤＭＡ転送回路１０４が読み出すＰＣＭバッファ１１２ａ、１１２ｂを切替える。
以下、ＰＣＭバッファ１１２ａ、１１２ｂが枯渇することによる無音期間の発生を防止する、本発明の実施の形態の音声復号装置１００における割り込み処理の詳細を説明する。
【００３６】
図３は、本発明の実施の形態の音声復号装置における割り込み処理を示すフローチャートである。
ここでは、説明を簡素化するためにストリーム入力ＤＭＡ処理に関する部分は省略している。
【００３７】
まず、ＣＰＵ１０１は、ＰＣＭ出力ＤＭＡ転送完了割り込みか否かを判断し（ステップＳ１０）、ＰＣＭ出力ＤＭＡ転送完了割り込みでなければ割り込み処理を終了（リターン）し、ＰＣＭ出力ＤＭＡ転送完了割り込みであった場合には、まずＰＣＭ出力ＤＭＡ転送完了割り込み信号をクリアする（ステップＳ１１）。その後ＣＰＵ１０１は、次に読み出すＰＣＭバッファ１１２ａ、１１２ｂが空か否かを判定し、空でなければＰＣＭバッファ１１２ａ、１１２ｂのリードポインタを更新（−）する（ステップＳ１３）。具体的には読み出すＰＣＭバッファ１１２ａ、１１２ｂを切替える。そしてＰＣＭ出力ＤＭＡ転送を再起動し（ステップＳ１４）、割り込み処理を終了（リターン）する。一方、ＰＣＭバッファ１１２ａ、１１２ｂが空と判定された場合には、ステップＳ１５の処理に進む。
【００３８】
次に読み出す方のＰＣＭバッファ１１２ａ、１１２ｂが空と判定された場合には、ＣＰＵ１０１はＥＳバッファ１１１ａ、１１１ｂに１ＥＳ以上のストリームが存在するか否かを判定する（ステップＳ１５）。ここで、１ＥＳ以上あれば、ＣＰＵ１０１が処理能力不足となっていることになるが、本発明の実施の形態では、ＤＭＡ転送を停止するのではなく、ステップＳ１４に進みＰＣＭ出力ＤＭＡ転送を再起動する。この場合は、リードポインタを更新していないので、同じ側のＰＣＭバッファ１１２ａ、１１２ｂからＰＣＭデータが繰り返して読み出されることになる。１ＥＳ以上無ければ、ＣＰＵ１０１の処理能力不足ではなくストリームが枯渇している状態であるので、再び、ＰＣＭ出力ＤＭＡ転送完了割り込み信号が入力されても、読み出す側のＰＣＭバッファ１１２ａ、１１２ｂにデータが格納されるまで、ＤＭＡ転送を一旦停止するためにＰＣＭ出力ＤＭＡ起動済みフラグを０にセットし（ステップＳ１６）、割り込み処理を終了（リターン）する。
【００３９】
図４は、割り込み処理により出力されるＰＣＭ出力波形を示し、（Ａ）が従来の音声復号装置によるＰＣＭ出力波形、（Ｂ）が本発明の実施の形態の音声復号装置によるＰＣＭ出力波形を示す図である。
【００４０】
Ｌ−ｃｈとＲ−ｃｈの両方のＰＣＭ出力波形を示している。また、Ｆ１、Ｆ２、…、Ｆ５はフレーム期間を示している。
図４（Ａ）で示す従来の音声復号装置によるＰＣＭ出力波形では、Ｆ４のフレーム期間でＣＰＵの処理能力不足が発生して、ＤＭＡ転送を停止し、無音期間とした場合を示している。この例では、１フレーム時間だけ無音期間となった場合について示しているが、このＰＣＭバッファにＰＣＭデータが満たされるまではこの期間が続く。これにより、従来の音声復号装置では、この無音期間により、「ブツブツ」いうような聴覚上耳障りな音が発生する問題がある。
【００４１】
一方、図４（Ｂ）で示す本発明の実施の形態の音声復号装置によるＰＣＭ出力波形では、Ｆ４のフレーム期間で、ＰＣＭバッファ１１２ａ、１１２ｂがＣＰＵ１０１の処理能力不足で枯渇した場合でも、ＰＣＭバッファ１１２ａ、１１２ｂのリードポインタを更新せずにＤＭＡ転送を再起動し、直前のＦ３のフレーム期間のフレームを繰り返して出力するように制御するので、無音期間を作らず、聴覚上耳障りな音の発生を抑える効果がある。
【００４２】
次に、ＣＰＵ１０１の処理能力不足によるＰＣＭバッファ１１２ａ、１１２ｂの枯渇の発生を抑制するための、音声復号装置１００における処理について説明する。つまり、処理能力不足破綻回避切替えパラメータ保持領域１１４に格納されたパラメータにより、タイマー回路１０６を用いた処理能力不足発生の予測機能を用いるように設定されている場合の処理である。
【００４３】
図５、図６は、ＣＰＵの処理能力不足によるＰＣＭバッファの枯渇の発生を抑制する際の音声復号装置の処理を示すフローチャートである。
ここで示す処理は、音声復号装置１００のメイン処理の部分であり、前述した各割り込み信号がＣＰＵ１０１に入力されることによって、適宜、割り込み処理が実行される。なお、このメイン処理のフローチャートでは、コマンド指示などは省略されている。
【００４４】
ＣＰＵ１０１は処理を開始すると、まず初期化処理を行う（ステップＳ２０）。その後、各タスクの処理を行う。タスクとはＣＰＵが行う処理の単位であり、オーディオストリームの入力を行うタスク（ストリーム入力ＤＭＡ転送起動）、デコード処理を行うデコード処理タスク、デコードで得られたＰＣＭデータをＰＣＭバッファ１１２ａ、１１２ｂへ格納する後処理タスク（アッテネーションやフィルタ処理も必要に応じて行われる）に分担される。各タスクに突入するには、その前でステートをチェックする。また各タスクの開始前後でタイマー回路１０６によって時間計測が行われる。各タスクの開始でリセットし、タスクの終了時にその計測値が読み取られ、ＲＡＭ１１０の時間計測データ領域１１３に逐次格納される。
【００４５】
具体的には、図５、図６のフローチャートのように、まず、ステートがＥＳバッファ入力か否かを判定する（ステップＳ２１）。ステートがＥＳバッファ入力であれば、ＥＳバッファ１１１ａ、１１１ｂに書き込む空きがあるか判定したのち（ステップＳ２２）、空きがある場合にはストリーム入力ＤＭＡ転送起動を行い、オーディオストリームの入力のタスクを行う（ステップＳ２３）。ステートがＥＳバッファ入力でない場合やＥＳバッファ１１１ａ、１１１ｂに書き込む空きがない場合には、ステップＳ２４の処理に進む。
【００４６】
ステップＳ２４の処理では、ステートがデコード処理か否かを判定する。ステートがデコード処理である場合には、ＥＳバッファ１１１ａ、１１１ｂに１ＥＳ以上のオーディオストリームが格納されているか判定したのち（ステップＳ２５）、１ＥＳ以上ある場合にはデコード処理タスクを行う（ステップＳ２６）。ステートがデコード処理でない場合やＥＳバッファ１１１ａ、１１１ｂに１ＥＳ以上ない場合には、ステップＳ２７の処理に進む。
【００４７】
ステップＳ２７の処理では、ステートが後処理か否かを判定する。ステートが後処理である場合には、ＰＣＭバッファ１１２ａ、１１２ｂにＰＣＭデータを書き込む空きがあるか判定する（ステップＳ２８）。ステートが後処理でない場合やＰＣＭバッファ１１２ａ、１１２ｂに書き込む空きがない場合には、ステップＳ３２の処理に進む。ＰＣＭデータを書き込む空きがある場合には、ステップＳ２９の処理に進む。
【００４８】
ステップＳ２９の処理では、ＣＰＵ１０１は、時間計測データ領域１１３を参照して、タスクの合計時間（デコード処理までに要した時間）が、１フレーム時間（例えば、ＭＰＥＧ２  ＡＡＣ  Ａｕｄｉｏで、２ｃｈ、ｆｓ＝４８ｋＨｚのサンプリング周波数の場合は２１．３３ｍｓ）を上回り、かつＰＣＭバッファ１１２ａ、１１２ｂの残容量が１以下（残容量≦１）であるか否かを判定する。ここで残容量が１とは、ダブルバッファ構成であるＰＣＭバッファ１１２ａ、１１２ｂの一方しかＰＣＭデータが満たされていないことをいう。タスクの合計時間が、１フレーム時間を上回り（すなわち、ＣＰＵ１０１の処理能力不足の状態である）かつ、残容量が１以下の場合には、ＰＣＭバッファ１１２ａ、１１２ｂがもうすぐ枯渇すると判断される。なお、両方のＰＣＭ１１２ａ、１１２ｂにＰＣＭデータが満たされた場合には残容量は２となり、両方とも枯渇している状態の場合には残容量は０となる。
【００４９】
ステップＳ２９の処理でタスクの合計時間が１フレーム時間を上回り、かつＰＣＭバッファ１１２ａ、１１２ｂの残容量が１以下であると判定された場合には、次回のデコード処理タスク（ステップＳ２６）において、省略したデコード処理を行うためにデコード省略フラグを１にセットしたのち（ステップＳ３０）、後処理タスクを行う（ステップＳ３１）。ステップＳ２９の処理で、タスクの合計時間が１フレーム時間内であるか、ＰＣＭバッファ１１２ａ、１１２ｂの残容量が１を上回っている場合には、デコード省略フラグを１にセットせずにステップＳ３１の処理を行う。
【００５０】
ステップＳ３１の後処理タスクを終えると、ＰＣＭ出力ＤＭＡ起動済みフラグが０で、かつＰＣＭバッファ１１２ａ、１１２ｂの残容量が１以上であるか否か判定し（ステップＳ３２）、ＰＣＭ出力ＤＭＡ起動済みフラグが０で、かつＰＣＭバッファ１１２ａ、１１２ｂの残容量が１以上である場合には、ＰＣＭ出力ＤＭＡ転送起動処理を行い（ステップＳ３３）、ステップＳ２１からの処理を繰り返し、そうでなければ、ＰＣＭ出力ＤＭＡ転送を起動せずに、ステップＳ２１からの処理を繰り返す。このステップＳ３３の処理は、最初のＤＭＡ転送をメイン処理から行うための処理である。ＤＭＡ転送は、このステップＳ３３により一旦起動したら、図３で示したように割り込み処理により再起動する。
【００５１】
図７は、デコード処理の一例を示すフローチャートである。
ここでは、図５のステップＳ２６の処理におけるデコード処理タスクの一例を示している。
【００５２】
デコード処理タスクを開始すると、まず、ＣＰＵ１０１はＬ−ｃｈのデコード処理を行う（ステップＳ４０）。次に、デコード省略フラグが１か否かの判定を行う（ステップＳ４１）。デコード省略フラグが１でない場合には、デコード処理を省略する必要がないので、通常通り、Ｒ−ｃｈのデコード処理を行い（ステップＳ４２）、デコード処理タスクを終了する。一方、デコード省略フラグが１である場合、デコード処理を省略する必要があるので、Ｒ−ｃｈに、ステップＳ４０の処理で得られたＬ−ｃｈのデコード結果をコピーしてＲ−ｃｈのデコード処理を省略する（ステップＳ４３）。その後、デコード省略フラグを０にセットし（ステップＳ４４）、デコード処理タスクを終える。
【００５３】
このように、タイマー回路１０６でＰＣＭバッファ１１２ａ、１１２ｂへ書き込む直前で、ＰＣＭバッファ１１２ａ、１１２ｂがＣＰＵ１０１の処理能力不足で枯渇する可能性があると判断した場合に、次のデコード処理の際に、デコード処理を省略して少ない時間で行うようにするので、処理能力不足によるＰＣＭバッファ１１２ａ、１１２ｂの枯渇を回避することができる。
【００５４】
また、各タスクの時間を計測することで、デコード処理に時間を要した原因を特定して、対策を立てることもできる。例えば、タスクの処理順番を入れ替えることや外部ホストＣＰＵへのフレーム番号などの通知処理を省略するなどが考えられる。
【００５５】
なお、上記では、タイマー回路１０６を用いて処理能力不足を予測して無音期間を回避する処理を行うかを、処理能力不足破綻回避切替えパラメータ保持領域１１４に格納されたパラメータにより設定するとしたが、ＣＰＵ１０１がタイマー回路１０６で計測した各タスクの時間計測データをもとに、上記の処理を行うか否かをフレーム単位で自動的に選択するようにしてもよい。
【００５６】
なお、上記では割り込み処理は、図３で示した処理としたが、図５、図６のように、処理能力不足によるＰＣＭバッファ１１２ａ、１１２ｂの枯渇を回避するメイン処理を行う場合には、図１０に示した従来の割り込み処理を行ってもよい。
【産業上の利用可能性】
【００５７】
本発明は、例えば、ＤＶＤプレーヤ、デジタルＴＶなど、高圧縮率の符号化で生成されたＶｉｄｅｏ／Ａｕｄｉｏのストリームを復号する装置に適用される。
（付記１）  圧縮符号化された音声信号を復号する音声復号装置において、
前記圧縮符号化された音声信号を復号する制御処理部と、
復号されたデータをフレームごとに記憶する記憶部と、
前記記憶部から前記データを読み出し転送し、転送が完了した場合にはその旨の割り込み信号を前記制御処理部に送出する転送部と、を有し、
前記制御処理部は、前記割り込み信号の受信時に、処理可能な前記圧縮符号化された音声信号があるにも係わらず前記記憶部が枯渇した場合には、処理能力不足が発生したと判定して直前の前記フレームの前記データを前記転送部で読み出し、再転送させることを特徴とする音声復号装置。
【００５８】
（付記２）  前記記憶部は２つのバッファからなり、
前記制御処理部は、リードポインタを更新することにより前記データを読み出す前記バッファの切替えを行い、一方の前記バッファの前記データの転送が完了した旨の前記割り込み信号の受信時に、他方の前記バッファが枯渇して処理能力不足が発生した場合には、前記リードポインタを更新しないで前記一方のバッファの前記データを前記転送部に再転送させることを特徴とする付記１記載の音声復号装置。
【００５９】
（付記３）  復号処理に要した時間を計測するタイマー回路を更に有し、
前記制御処理部は、前記タイマー回路にて計測した前記復号処理に要した時間を参照して処理能力不足の発生を予測することを特徴とする付記１記載の音声復号装置。
【００６０】
（付記４）  前記制御処理部は、処理能力不足が発生すると予測した場合には、次の前記復号処理では、処理を省略した前記復号処理を行うことを特徴とする付記３記載の音声復号装置。
【００６１】
（付記５）  前記制御処理部は前記復号処理の省略として、複数のチャンネルの前記圧縮符号化された音声信号のうち、特定の前記チャンネルの前記圧縮符号化された音声信号のみ前記復号処理を行い、他の前記チャンネルは、前記復号処理を行った特定の前記チャンネルの前記圧縮符号化された音声信号のコピーを使用することを特徴とする付記４記載の音声復号装置。
【００６２】
（付記６）  処理能力不足の発生の予測処理を行うか否かを設定するパラメータを格納するパラメータ格納部を有し、
前記制御処理部は、前記パラメータに応じて前記予測処理を行うか否かを決定することを特徴とする付記３記載の音声復号装置。
【００６３】
（付記７）  前記制御処理部は、前記タイマー回路にて計測した複数のタスクの処理時間に応じて、処理能力不足の発生の予測処理を行うか否かを前記フレーム単位で選択することを特徴とする付記３記載の音声復号装置。
【００６４】
（付記８）  圧縮符号化された音声信号を復号する音声復号装置において、
前記圧縮符号化された音声信号を復号する制御処理部と、
復号処理に要した時間を計測するタイマー回路と、を有し、
前記制御処理部は、前記タイマー回路にて計測した前記復号処理に要した時間を参照して処理能力不足の発生を予測することを特徴とする音声復号装置。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施の形態の音声復号装置の原理を説明する図である。
【図２】本発明の実施の形態の音声復号装置のハードウェア構成を示す図である。
【図３】本発明の実施の形態の音声復号装置における割り込み処理を示すフローチャートである。
【図４】割り込み処理により出力されるＰＣＭ出力波形を示し、（Ａ）が従来の音声復号装置によるＰＣＭ出力波形、（Ｂ）が本発明の実施の形態の音声復号装置によるＰＣＭ出力波形を示す図である。
【図５】ＣＰＵの処理能力不足によるＰＣＭバッファの枯渇の発生を抑制する際の音声復号装置の処理を示すフローチャートである（その１）。
【図６】ＣＰＵの処理能力不足によるＰＣＭバッファの枯渇の発生を抑制する際の音声復号装置の処理を示すフローチャートである（その２）。
【図７】デコード処理の一例を示すフローチャートである。
【図８】従来の音声復号装置の構成図である。
【図９】各バッファのバッファリング関係を示した図である。
【図１０】従来の音声復号装置における割り込み処理を示すフローチャートである。
【符号の説明】
【００６６】
１０  音声復号装置
１１  制御処理部
１２  記憶部
１３  転送部
１４  出力部
【図１】
2005284034.tif 000003
【図２】
2005284034.tif 000004
【図３】
2005284034.tif 000005
【図４】
2005284034.tif 000006
【図５】
2005284034.tif 000007
【図６】
2005284034.tif 000008
【図７】
2005284034.tif 000009
【図８】
2005284034.tif 000010
【図９】
2005284034.tif 000011
【図１０】
2005284034.tif 000012