(57)【特許請求の範囲】
【請求項１】
オーディオ信号およびビデオ信号の少なくとも一方を符号化するエンコーダにおいて、
所定の時間間隔で信号を入力する入力手段と、
前記入力した信号の内容に応じて処理時間が決まる第１の処理を行う第１の処理手段と、
前記信号を入力したときから、前記第１の処理が終了するまでの時間を測定し、当該測定された時間と所定の基準時間とを比較する時間検出手段と、
前記第１の処理結果を用いて、第２の処理または当該第２の処理より処理時間の短い第３の処理を、選択指示に応じて選択的に行う第２の処理手段と、
前記時間検出手段の比較結果に基づいて、前記所定の時間間隔内に前記入力した信号についてのエンコード処理が終了するように、前記第２の処理および前記第３の処理のどちらか一方を選択し、その選択指示を前記第２の処理手段に出力する選択手段と
を有するエンコーダ。
【請求項２】
前記選択手段は、前記測定された時間が前記基準時間を越えているときに、前記第３の処理を選択し、前記測定された時間が前記基準時間以下であるときに、前記第２の処理を選択することを示す選択指示を前記第２の処理手段に出力する請求項１に記載のエンコーダ。
【請求項３】
前記入力手段は、オーディオ信号を入力し、
前記第１の処理手段は、心理聴覚モデルを用いて、所定の周波数領域についてのマスキングレベルの算出処理を行い、
前記第２の処理手段は、前記算出されたマスキングレベルを、所定の周波数幅で前記周波数領域を分割して得られた複数のサブバンドブロックのそれぞれに対応する複数のデータに変換する処理を行う
請求項１に記載のエンコーダ。
【請求項４】
オーディオ信号およびビデオ信号の少なくとも一方を符号化するエンコード処理方法において、
所定の時間間隔で信号を入力し、
前記入力した信号の内容に応じて処理時間が決まる第１の処理を行い、
前記信号を入力したときから、前記第１の処理が終了するまでの時間を測定し、当該測定された時間と所定の基準時間とを比較し、
前記比較結果に基づいて、前記所定の時間間隔内に前記入力した信号についてのエンコード処理が終了するように、第２の処理および当該第２の処理より処理時間の短い第３の処理を選択的に行う
エンコード処理方法。
【請求項５】
前記測定された時間が前記基準時間を越えているときに、前記第３の処理を行い、前記測定された時間が前記基準時間以下であるときに、前記第２の処理を行う請求項４に記載のエンコード処理方法。
【請求項６】
オーディオ信号を入力し、
前記第１の処理は、心理聴覚モデルを用いて、所定の周波数領域についてのマスキングレベルの算出処理であり、
前記第２の処理は、前記算出されたマスキングレベルを、所定の周波数幅で前記周波数領域を分割して得られた複数のサブバンドブロックのそれぞれに対応する複数のデータに変換する処理である
請求項４に記載のエンコード処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オーディオ信号およびビデオ信号を符号化するエンコーダおよびその方法に関する。
【０００２】
【従来の技術】
オーディオ信号のエンコーダ
デジタルオーディオ信号のデータ量を削減するために、サブバンド符号化方式を採用したＭＰＥＧオーディオが知られている。このＭＰＥＧオーディオは、オーディオ信号に含まれる周波数が周波数軸方向に偏在するという性質を利用して冗長な情報を削減するもので、ＭＰＥＧビデオと組み合わせることによって高能率のマルチメディア情報の圧縮を実現することができる。そのため、近年、ＭＰＥＧオーディオによって符号化（エンコード）されたデータを、記録、伝送および処理する機器が増えている。
【０００３】
図１はＭＰＥＧオーディオのエンコーダおよびデコーダの構成図、図１３は図１に示すエンコーダにおける従来の処理のフローチャートである。
例えば、ＭＰＥＧオーディオ・レイア１では、３８４サンプルを処理単位（符号長）としている。
図１および図１３に示すように、ＭＰＥＧオーディオ・レイア１では、オーディオデータの入力を示す割り込みが発生し（Ｓ９０）、３８４サンプリング分のオーディオデータＳ０が入力されると（Ｓ９１）、分割フィルタ２を構成する３２個のバンドパスフィルタ３によって、オーディオデータＳ０の全帯域が３２個の等間隔の周波数幅に分割され、それぞれの信号が元のサンプリング周波数の１／３２の周波数でサブサンプリングされ符号化される（Ｓ９２）。これによって、オーディオデータＳ０は、３２個のサブバンドブロックに分割され、各サブバンドブロックは１２個のサンプリングで構成される。
【０００４】
次に、処理部４において、各サブバンドブロックＳ３に含まれるデータの最大値を検出し、その最大値を６ビットにコード化したものをスケールファクタとする（Ｓ９３）。そして、各サブバンドブロックのスケールファクタの大きさから、各サブバンドブロックの量子化ビット数を決定する（Ｓ９５）。このとき、各サブバンドブロックに割り当てられるビット数は、単純にスケールファクタの大きさによるのではなく、例えば人間の聴覚の特性を利用した、心理聴覚モデル（Ｓ９４）を用いて決定される。
次に、各サブバンドブロックを、スケールファクタによって正規化した後に、量子化部５において、割り当てられた量子化ビット数（アロケーション）によって量子化する（Ｓ９６）。符号の圧縮率は、量子化の際にトータルで何ビット割り当てるかによって決定する。
【０００５】
次に、このようにして計算された量子化ビット数、スケールファクタ、量子化されたサブバンドデータおよびエンコードの条件（ヘッダ）を、所定の順にならべ（Ｓ９７）、ビットストリームＳ１として出力する（Ｓ９８）。
【０００６】
ところで、上述した従来のエンコーダでは、リアルタイムに処理を行うためには、図２に示すステップＳ１の実行開始タイミングを示す割り込みトリガーの発生時間間隔よりも、ステップＳ１〜ステップＳ８の処理時間の合計の方が短くなっている必要がある。すなわち、次のデータを入力する前に、前回入力したデータについての処理を全て終了している必要がある。
【０００７】
ビデオ信号のエンコーダ
デジタルビデオ信号のデータの符号化を行うエンコーダでは、例えば、ビデオフレーム単位でＤＣＴ符号化を行う。このとき、最小画素ブロックを８×８画素（ピクセル）とする。このＤＣＴ符号化は、例えば、１ビデオフレームのデータを８個のブロックに分割し、この８個のブロックを符号化を行う単位（グループ）とする。
このとき、各グループの情報量は、入力されたビデオ信号によって異なる。そこで、各グループの情報量をそれぞれ計算し、各グループを符号化する際のビット割り当て量を決定する（図８に示すターゲットサーチ処理）。尚、各グループの情報量は、簡易的なエンコードを行うことで計算できる。次に、その割り当てられたビット量に応じて、各グループの処理が実行される。
【０００８】
図８は、デジタルビデオ信号のエンコード処理を実行例である。エンコーダは、図８（Ａ）に示すビデオフレーム信号に基づいてデータを入力し、各グループを符号化する際のビット割り当て量を決定する。この処理に必要な時間の最大値は既知であるとする。次に、図８（Ｂ）に示すグループパルス信号に基づいて、各グループの処理を実行する。このとき、各グループのビット量（ターゲットビットレート）が異なるため、図８（Ｄ）に示すように、各グループについての処理時間はそれぞれ異なる。エンコード処理のリアルタイム性を確保するには、各グループの処理時間が図８（Ｂ）に示すグループパルスの間隔より短くなければならない。尚、グループパルスの間隔を一定にしたのは、全てのグループの処理を同様に扱いたいためである。
【０００９】
図１４は、上記各グループの符号化処理を示すフローチャートである。
尚、図１４に示す処理を行う以前に、各グループのターゲットビットレートは決定されている。
図１４に示す各グループの符号化処理では、データを入力し（Ｓ１０１）、この入力したデータをＤＣＴ処理してＤＣＴ係数を生成する（Ｓ１０２）。次に、ターゲットビットレート以下で最もターゲットビットレートに近い量子化レベル（数）を求める（Ｓ１０３〜Ｓ１０７）。このステップＳ１０３〜Ｓ１０７のループ処理は、各グループに含まれる全てのデータについて行うのではなく、サンプルとして代表的なものを選び、そのサンプルについて行う。
【００１０】
また、ステップＳ１０３〜Ｓ１０７のループ処理は、例えば、予め規定された複数の量子化レベルＱ（Ｎ）（０≦Ｎ≦Ｎｍａｘ）の全ての量子化レベルを順に用いて符号量見積もりを行う。そして、このなかで、ターゲットビットレート以下で最もターゲットビットレートに近い量子化レベルを求める。
ステップＳ１０５で行われる可変長符号化（ＶＬＣ）処理は、量子化後の固定ビット長のデータを可変長符号化することでデータ量を削減するもので、例えばランレングス符号化処理およびハフマン符号化処理などが用いられる。このステップＳ１０５の処理時間は、入力データによって変動する。これは、入力データによってターゲットビットレートが決まり、このターゲットビットレートによって量子化レベルが決まるためである。
【００１１】
尚、図１５（Ａ）にデータの情報量と量子化レベルの関係を示し、図１５（Ｂ）にデータの情報量と処理時間との関係を示す。
図１５（Ａ），（Ｂ）から、量子化レベルを粗くするほど、データの情報量は減り、そのデータについての処理時間も短くなる。すなわち、量子化レベルを粗くすると、処理結果の精度は低くなるが、可変長符号化（ＶＬＣ）された結果のデータ量が少なくなることから処理時間を短縮化できる。
【００１２】
【発明が解決しようとする課題】
オーディオ信号のエンコーダ
ところで、図１３に示すステップＳ４の心理聴覚モデルの計算は、入力されるオーディオデータの特性によって処理時間が大きく変動する。従って、上述した従来のエンコーダでは、リアルタイム性を確保するために、心理聴覚モデルの計算において最も時間がかかるとき、すなわち、ステップＳ４の処理時間の最大値となるときを基準として、処理内容を決定している。従って、エンコーダの処理速度を上げるには、心理聴覚モデルとして計算精度は低いが処理時間の短いものを採用しなければならない。
しかしながら、このように計算精度の低い心理聴覚モデルを一律に用いると、実際に入力されたオーディオデータの特性によっては、処理時間との関係でもっと計算精度の高い心理聴覚モデルを用いることできるものに対しても計算精度の低い心理聴覚モデルを用いることになり、効率的とは言えない。
【００１３】
ビデオ信号のエンコーダ
また、上述した従来のビデオ信号のエンコーダでは、入力されたビデオ信号によって、図１４に示す可変長符号化処理（Ｓ１０５）の処理時間が変動することから、入力されたビデオ信号によっては、リアルタイム性が損なわれてしまうことがあった。
【００１４】
本発明は、上述した従来技術に鑑みてなされ、リアルタイム性を確保しながら、計算精度を最大限高めることができるエンコーダおよびエンコード処理方法を提供することを目的とする。
【００１５】
【課題を解決するための手段】
上述した従来技術の問題点を解決し、上述した目的を達成するために、本発明のエンコーダは、オーディオ信号およびビデオ信号の少なくとも一方を符号化するエンコーダであって、所定の時間間隔で信号を入力する入力手段と、前記入力した信号の内容に応じて処理時間が決まる第１の処理を行う第１の処理手段と、前記信号を入力したときから、前記第１の処理が終了するまでの時間を測定し、当該測定された時間と所定の基準時間とを比較する時間検出手段と、前記第１の処理結果を用いて、第２の処理または当該第２の処理より処理時間の短い第３の処理を、選択指示に応じて選択的に行う第２の処理手段と、前記時間検出手段の比較結果に基づいて、前記所定の時間間隔内に前記入力した信号についてのエンコード処理が終了するように、前記第２の処理および前記第３の処理のどちらか一方を選択し、その選択指示を前記第２の処理手段に出力する選択手段とを有する。
【００１６】
本発明のエンコーダでは、例えば、第２の処理として処理時間は長いが高精度な結果を得られる処理が用いられ、第３の処理として処理時間は短いが低精度な結果しか得られない処理が用いられる。そして、入力した信号によって処理時間が変動する第１の処理を行い、前記信号を入力したときから前記第１の処理を終了するまでの時間から、第２の処理および第３の処理のいずれを選択するかを判断する。このとき、第３の処理として、前記第１の処理において最長の処理時間を要した場合でも、リアルタイム性を実現できるような処理を用いることで、リアルタイム性が損なわれることを防止できる。また、第１の処理における処理時間が短い場合には、高精度な第２の処理を行うことで、システムの能力範囲で効率的に、処理結果の精度を上げることができる。
【００１７】
また、本発明のエンコード処理方法は、オーディオ信号およびビデオ信号の少なくとも一方を符号化するエンコード処理方法であって、所定の時間間隔で信号を入力し、前記入力した信号の内容に応じて処理時間が決まる第１の処理を行い、前記信号を入力したときから、前記第１の処理が終了するまでの時間を測定し、当該測定された時間と所定の基準時間とを比較し、前記比較結果に基づいて、前記所定の時間間隔内に前記入力した信号についてのエンコード処理が終了するように、第２の処理および当該第２の処理より処理時間の短い第３の処理を選択的に行う。
【００１８】
【発明の実施の形態】
以下、本発明の実施形態に係わるエンコーダおよびエンコード処理方法について説明する。
第１実施形態
図１は、本実施形態のエンコーダおよびデコーダの構成図である。
すなわち、本実施形態のエンコーダは、従来のエンコーダと同様の構成を有する。但し、本実施形態のエンコーダにおける処理は、従来のエンコーダと異なる。
図３は、図１に示す本実施形態のエンコーダ２０の実現例である。
図３に示すように、エンコーダ２０は、ＤＳＰ２１を用いて図１に示す構成を実現する。
図３に示すように、エンコーダ２０は、ＤＳＰ２１、タイミングパルス発生回路２２、プログラムＲＯＭ２３、外部ＲＡＭ２４、出力用ＦＩＦＯ回路２５、アドレスバス２６およびデータバス２７を有する。
アドレスバス２６には、ＤＳＰ２１、プログラムＲＯＭ２３、外部ＲＡＭ２４および出力用ＦＩＦＯ回路２５が接続してある。データバス２７には、同様に、ＤＳＰ２１、プログラムＲＯＭ２３、外部ＲＡＭ２４および出力用ＦＩＦＯ回路２５が接続してある。
【００１９】
ＤＳＰ２１は、クロック信号（ＣＬＯＣＫ）、入力データおよびＦＳ信号を入力する。
ここで、クロック信号は５０ＭＨｚの信号である。ＦＳ信号は、サンプリング周波数を示すクロック信号である。
ＤＳＰ２１は、５０ＭＨｚのクロック信号を基準として動作し、タイミングパルス発生回路２２から外部割り込み信号Ｓ２１を入力した時に、図２に示すエンコード処理のプロセスを実行する。タイミングパルス発生回路２２は、ＦＳ信号に基づいて、３８４サンプリング分の時間間隔のパルスを用いて外部割り込み信号Ｓ２１を生成する。
図４は、図３に示すＤＳＰ２１の内部構成図である。
図４に示すように、ＤＳＰ２１は、プログラムカウンタ５１、命令メモリ５２、インストラクションレジスタ５３、コントローラ５４、アドレス演算部５５、レジスタ群５６、データメモリ５７，５８、タイマー５９、シリアルポート６０、データバス６１、アドレスバス６２および演算部６３を有し、一般的なＤＳＰの構成をしている。
【００２０】
以下、図１に示す構成を実現した図３に示すエンコーダ２０におけるエンコード処理について図２を参照しながら説明する。
ステップＳ０：タイミングパルス発生回路２２のタイマーにおいて、ＦＳ信号に基づいて、カウントダウンまたはカウントアップが行われ、カウント値が所定の値になったときに外部割り込み信号Ｓ２１のレベルが切り換わり、割り込みが発生する。この割り込み発生によって、タイミングパルス発生回路２２のタイマーの値は例えば０にリセットされ、その後、カウントを開始する。ここで、外部割り込み信号Ｓ２１のレベルが切り換わるのは、カウントアップが行われる場合には、例えば、カウント値が３８３になったときである。
エンコーダ２０では、タイミングパルス発生回路２２のタイマーによるカウント処理は、エンコード処理とは独立して行われることから、エンコード処理時間には影響を及ぼさない。
【００２１】
ステップＳ１：エンコーダ２０は、３８４サンプリング分のオーディオデータを入力する。
ステップＳ２：エンコーダ２０は、入力したオーディオデータの全帯域を３２の等間隔の周波数幅に分割し、それぞれの信号を元のサンプリング周波数の１／３２でサブサンプリングし符号化する。これによって、オーディオデータは、３２個のサブバンドブロックに分割され、各サブバンドブロックは１２個のサンプリングで構成される。
【００２２】
ステップＳ３：エンコーダ２０は、ステップＳ２で算出した各サブバンドブロックに含まれるデータの最大絶対値を検出し、その最大絶対値を６ビットにコード化したものをスケールファクタとする。例えば、図５（Ａ）に示す例では、サブバンドブロックＳＵＢ＿ｎに含まれる１２個のサンプリングデータＳｎ（０）〜Ｓｎ（１１）のうち、Ｓｎ（６）の値が最大絶対値として検出され、それを６ビットコード化したものがスケールファクタとなる。
【００２３】
ステップＳ４：エンコーダ２０は、心理聴覚モデルの計算を行う。ステップＳ４の処理は、ステップＳ４１〜Ｓ４４の処理で構成される。
ステップＳ４１：エンコーダ２０は、マスキングレベルを計算する。
先ず、図６（Ａ）に示すように、入力したオーディオデータに対して、５１２ポイントのＦＦＴ処理を行い、振幅スペクトラムを求める。次に、各周波数成分から、人の聴覚モデルを用いて、ノイズがマスクされるレベルを計算する。これによって、例えば図６（Ｂ）に示すようなマスキングパターンが計算される。
【００２４】
ここで、マスキングパターンは、特定の音についての人間の聴覚の検知限界が、同時に聞いている他の音によって大きく変化することを利用して、入力したオーディオデータのうち、人間の聴覚によって検知されない成分をマスクして情報量を削減するために用いられる。すなわち、マスキングパターンで規定されるレベル以下の周波数成分は人の聴覚で知覚されないことから、このマスキングパターンのレベルを越えた周波数成分にのみビットを割り当てる。
このステップＳ４１の処理時間は、入力されるオーディオデータの特性に大きく影響される。例えば、多くの周波数成分が含まれるようなオーディオデータについて処理を行う場合には、考慮すべきマスキングレベルが多くなり、処理時間は長くなる。
【００２５】
ステップＳ４２：エンコーダ２０は、タイマーのカウント値をチェックし、そのカウント値と所定の基準値とを比較し、カウント値の方が大きい場合には、ステップＳ４３の処理を実行し、カウント値の方が小さい場合には、ステップＳ４４の処理を実行する。
【００２６】
ステップＳ４３：エンコーダ２０は、単精度演算によって、マスキングレベルの変換処理を行う。ここで、単精度演算は、精度は低いが処理時間の短い演算である。
マスキングレベルの変換処理は、図６（Ｃ）に示すように、ステップＳ４１で得られた全周波数領域のマスキングパターンを、３２個のサブバンドブロック領域のそれぞれについてのノイズマスキングレベルで構成されるパターンに変換する。この変換を行うための計算精度およびアルゴリズムは、後に行われるステップＳ５のビット割り当てを変動させることから、音質に大きな影響を及ぼす。
【００２７】
ステップＳ４４：エンコーダ２０は、倍精度演算によって、マスキングレベルの変換処理を行う。ここで、倍精度演算は、精度は高いが処理時間の長い演算である。
【００２８】
ステップＳ５：ステップＳ４で求めた各サブバンドブロック領域のノイズマスキングレベルの大きさから、各サブバンドブロック領域の量子化ビット数を決定する。この量子化では、トータルで何ビットを割り当てるかは、符号の圧縮率によって変化する。例えば、各サブバンドブロック領域に割り当てるビット数を下から上に積み上げていくようなアルゴリズムを採用した場合には、全てのビットが割り当てられるまで、ループ処理が行われる。処理時間は、トータルビット数に依存する。また、処理時間は、入力されたオーディオデータによっても、割り当てられるパターンが変化するために変動する。
【００２９】
ステップＳ６：エンコーダ２０において、各サブバンドブロック領域のデータは、スケールファクタによって正規化された後に、その倍率がスケールファクタとして符号化され、ステップＳ５で割り当てられた量子化ビット数によって量子化される。このときの処理時間は一定である。
【００３０】
ステップＳ７：エンコーダ２０は、ステップＳ６で符号化されたデータを、図５（Ｃ）に示すように、所定のフォーマットのデータ列７０に並べ、エンコード結果とする。このときの処理時間は一定である。データ列７０は、ヘッダ領域７１、アロケーション領域７２、スケールファクタ領域７３およびデータ領域７４で構成される。このときの処理時間は一定である。
【００３１】
ステップＳ８：エンコーダ２０は、ステップＳ７で求めたエンコード結果を、ビットストリームとして、図３に示す出力用ＦＩＦＯ回路２５に書込む。このときの処理時間は一定である。
【００３２】
次に、エンコーダ２０における処理のタイミングを説明する。
図７（Ａ）は、３８４ＦＳ間隔の割り込みパルスであり、立ち下がりエッジで割り込み処理が発生する。図７（Ｂ）は、エンコーダ２０の内部のタイマーのカウント値で、割り込み発生時に０にリセットされ、ＦＳ信号に基づいてカウントアップして、０から３８３の値をとる。
図７（Ｃ）〜（Ｆ）は、エンコーダ２０のプロセスの流れを示している。ステップＳ４５は、図２に示すステップＳ４３，４４のマスキングレベルの変換に対応する処理である。図７（Ｃ），（Ｄ）は、入力によって図２に示すステップＳ４１のマスキングレベルの計算の処理時間が変動することを示してる。
図７（Ｄ）は、ステップＳ４１の処理時間が最も長い場合を示しており、リアルタイム処理を実現するには、ステップＳ８の処理が、次の割り込みパルスが発生するまでに終了している必要がある。
【００３３】
図７（Ｅ）は、ステップＳ４５の計算精度を上げて音質を向上させようとした場合であり、この処理では、ステップＳ４１の処理時間が最も長い場合には、ステップＳ８の処理が、次の割り込みパルス発生までに完了せず、リアルタイム性を実現できない。
図７（Ｆ）は、本実施形態のエンコーダ２０の場合であり、ステップＳ４５の処理を開始する前に、図７（Ｂ）に示すカウント値を参照し、図２に示すステップＳ４４，４５の処理を適応的に切り換えて行う。ここでは、ステップＳ４４の処理を行う場合を示している。
このようにすることで、システムとしてのリアルタイム性を損なうことなく、音質を向上させることができる。
【００３４】
以上説明したように、本実施形態のエンコーダ２０によれば、リアルタイム性を確保しつつ、オーディオデータの特性に応じて、処理能力を効率的に発揮した高精度な処理を実現することができる。そのため、高い音質を得ることができる。
【００３５】
第２実施形態
本実施形態のエンコーダは、デジタルビデオ信号のエンコード処理を行うものである。
例えば、ビデオフレーム単位でＤＣＴ符号化を行う。このとき、最小画素ブロックを８×８画素（ピクセル）とする。このＤＣＴ符号化は、例えば、１ビデオフレームのデータを８個のブロックに分割し、この８個のブロックを符号化を行う単位（グループ）とする。
このとき、各グループの情報量は、入力されたビデオ信号によって変動する。そこで、各グループの情報量をそれぞれ計算し、各グループを符号化する際のビット割り当て量を決定する（図８（Ｃ）に示すターゲットサーチ処理）。各グループの情報量は、簡易的なエンコードを行うことで計算できる。次に、その割り当てられたビット量に合わせて、各グループの処理が実行される。
【００３６】
本実施形態のエンコーダのエンコード処理は、前述した従来のエンコーダのエンコード処理と同様に図８に示される。
すなわち、本実施形態のエンコーダは、図８（Ａ）に示すビデオフレーム信号に基づいてデータを入力し、各グループを符号化する際のビット割り当て量を決定する。この処理に必要な時間の最大値は既知であるとする。次に、図８（Ｂ）に示すグループパルス信号に基づいて、各グループの処理を実行する。このとき、各グループのビット量（ターゲットビットレート）が異なるため、図８（Ｄ）に示すように、処理時間がそれぞれ異なる。エンコード処理のリアルタイム性を確保するには、各グループの処理時間が図８（Ｂ）に示すグループパルスの間隔より短くなければならない。グループパルスの間隔を一定にしたのは、全てのグループの処理時間を図８（Ｃ）に示すように一定にし、これらを同様に扱うためである。
【００３７】
図９は、本実施形態のエンコーダのエンコード処理を示すフローチャートである。
すなわち、本実施形態のエンコーダは、符号化を行う単位であるグループの番号を示すＭを０に初期化し（Ｓ１０）、データを入力する（Ｓ１１）。そして、このデータを８個のブロックに分割し、グループを作成する（Ｓ１２）。次に、各グループの情報量をそれぞれ計算し（Ｓ１３）、各グループに割り当てるビット量であるターゲットビットレートを決定する（Ｓ１４）。
次に、ステップＳ１４で求めたターゲットビットレートを用いて、全てのグループについて符号化処理を順に行い（Ｓ１５〜Ｓ１７）、その結果を出力する（Ｓ１８）。
【００３８】
図１０は、図９に示すグループの符号化処理（Ｓ１６）のフローチャートである。
図１０に示すように、グループの符号化処理（Ｓ１６）では、タイマーが示す時間Ｔｍをリセットし（Ｓ２０）、量子化レベルＱを規定するＮを０にセットする（Ｓ２１）。
次に、データを入力し（Ｓ２２）、この入力したデータをＤＣＴ処理してＤＣＴ係数を生成する（Ｓ２３）。
次に、ターゲットビットレート以下で最もターゲットビットレートに近い量子化レベル（数）を求める（Ｓ２４〜Ｓ２８）。このステップＳ２４〜Ｓ２８のループ処理は、グループに含まれる全てのデータについて行うのではなく、サンプルとして代表的なものを選び、そのサンプルについて行う。
【００３９】
また、ステップＳ２４〜Ｓ２８のループ処理は、例えば、予め規定された複数の量子化レベルＱ（Ｎ）（０≦Ｎ≦Ｎｍａｘ）の量子化レベルを、Ｑ（０）からＱ（Ｎｍａｘ）を順に用いて符号量見積もりを行う。このとき、Ｎの大きいＱほど、量子化レベルが粗い。
そして、タイマーが、規定時間Ｔｍａｘになったときに、全ての量子化レベルＱ（Ｎ）を用いた処理を完了していない場合には、既に処理が完了したＱ（Ｎ）のうち、ターゲットビットレート以下で最もターゲットビットレートに近いものを求める。
すなわち、本実施形態のエンコーダは、従来のエンコーダと異なり、規定時間ＴｍａｘになったときにステップＳ２４〜Ｓ２８のループ処理を強制的に終了する。
このとき、規定時間Ｔｍａｘは、下記式（１）で定められる。
【数１】
Ｔｍａｘ＝Ｇｐ＿ｔｉｍｅ−Ｔｖ（Ｑ）−Ｔｑｕａｎｔ        （１）
【００４０】
上記式（１）において、Ｇｐ＿ｔｉｍｅは、各グループの処理に割り当てられている時間を示す。Ｔｖ（Ｑ）は、次にループ処理を行うときに用いる量子化レベルによって、可変長符号化処理（Ｓ３０）を行った場合に必要となる時間を示す。Ｔｑｕａｎｔは、量子化処理に必要な時間を示し、量子化レベルとは無関係に一定値である。
【００４１】
ステップＳ２６，Ｓ３０で行われる可変長符号化（ＶＬＣ）処理は、量子化後の固定ビット長のデータを可変長符号化することでデータ量を削減するもので、例えばランレングス符号化処理およびハフマン符号化処理などが用いられる。このステップＳ２６，３０の処理時間は、入力データによって変動する。すなわち、入力データによってターゲットビットレートが決まり、このターゲットビットレートによって量子化レベルが決まるためである。
【００４２】
以上説明したように、本実施形態のビデオ信号のエンコーダによれば、入力データによって変動する図１０に示すステップＳ２４〜Ｓ２８のループ処理が、規定時間内に強制的に終了することから、リアルタイム性を確実に実現することができる。このとき、データ量の少ないデータについては、予め規定された複数の量子化レベルの全てについて、かかるループ処理が行われることから高精度な処理結果を得ることができる。
【００４３】
本発明の上述した実施形態には限定されない。例えば、上述した第１実施形態では、図２に示すステップＳ４３で単精度で演算を行い、ステップＳ４４で倍精度で演算を行う場合について例示したが、本発明は、例えば、ステップＳ４３とステップＳ４４とで、精度のみならずアルゴリズム自体が異なるものを採用するようにしてもよい。
【００４４】
また、上述した第２実施形態では、図１０に示すステップＳ２４〜Ｓ２８においては、量子化レベルをＱ（０）からＱ（Ｎｍａｘ）に順に切り換えることで、細かい量子化レベルから粗い量子化レベルに切り換えて処理を行った。但し、本発明は、次のようにしてステップＳ２４〜Ｓ２８の処理を行ってもよい。すなわち、図１１に示すように、例えば、Ｎｍａｘが「１０」の場合に、量子化レベルの中心値であるＱ（５）を用いて処理を行い（図１１（Ａ））、ターゲットビットレートより小さいことから、量子化レベルを１つ下げて量子化レベルＱ（４）を用いて処理を行う（図１１（Ｂ））。次に、これでも、ターゲットビットレートより小さいことから、さらに量子化レベルを１つ下げて量子化レベルＱ（３）を用いて処理を行う（図１１（Ｃ））。このとき、ターゲットビットレートを越えていることから、量子化レベルＱ（３）が最適なレベルであると判断する（図１１（Ｄ））。
【００４５】
また、上述した実施形態では、オーディオ信号およびビデオ信号のエンコーダについて例示したが本発明は、信号に応じて処理時間が変動するプロセスを含むものであれば、他の信号を処理するエンコーダにも適用できる。
図１２は、本発明の概念図である。
図１２に示すように、本発明は、割り込みが発生すると（Ｓ３０）、データ入力が開始すると共にタイマーがリセットされる（Ｓ３１）。次に、入力されたデータによって処理時間が変動する処理を行い（３２）、その処理終了後に、タイマーの値が規定値より大きいか否かが判断され（Ｓ３３）、大きいと判断された場合には処理時間の短い低精度な処理が行われ（Ｓ３４）、一方、小さいと判断された場合には処理時間の長い高精度な処理が行われる（Ｓ３５）。そして、処理結果が出力され（Ｓ３６）、割り込み待機状態になる（Ｓ３７）。
【００４６】
【発明の効果】
以上説明したように、本発明のエンコーダおよびエンコード処理方法によれば、リアルタイム性を確保しつつ、オーディオ信号およびビデオ信号の少なくとも一方の特性に応じて、処理能力を効率的に発揮した高精度な処理を実現することができる。
【図面の簡単な説明】
【図１】図１は、本発明の第１実施形態のエンコーダの構成図である。
【図２】図２は、本発明の第１実施形態のエンコーダの処理を示すフローチャートである。
【図３】図３は、図１に示すエンコーダを実現する回路構成図である。
【図４】図４は、図３に示すＤＳＰの回路構成図である
【図５】図５は、図２に示すスケールファクタの計算、ビット割り当ての計算、量子化およびデータパッキング処理を説明するための図である。
【図６】図６は、図２に示す心理聴覚モデルの計算を説明するための図である。
【図７】図７は、本発明の第１実施形態のエンコーダの処理タイミングを説明するための図である。
【図８】図８は、本発明の第２実施形態のエンコーダの処理タイミングを説明するための図である。
【図９】図９は、本発明の第２実施形態のエンコーダの処理のフローチャートである。
【図１０】図１０は、図９に示すグループの符号化処理（Ｓ１６）のフローチャートである。
【図１１】図１０に示す処理を説明するための図である。
【図１２】本発明のエンコーダの概念を説明するためのフローチャートである。
【図１３】オーディオデータを符号化する従来のエンコーダの処理を示すフローチャートである。
【図１４】ビデオデータを符号化する従来のエンコーダの処理を示すフローチャートである。
【図１５】データを量子化する際におけるデータの情報量と量子化レベルとの関係を示す図である。
【符号の説明】
２…分割フィルタ、３，１２…バンドパスフィルタ、４，１０…処理部、５…量子化部、６…出力部、８…入力部、９…逆量子化部、２０…エンコーダ、２１…ＤＳＰ、２２…タイミングパルス発生回路、２３…プログラムＲＯＭ、２４…外部ＲＡＭ、２５…出力用ＦＩＦＯ回路、２６…アドレスバス、２７…データバス、５１…プログラムカウンタ、５２…命令メモリ、５３…インストラクションレジスタ、５４…コントローラ、５５…アドレス演算部、５６…レジスタ群、５７…データメモリ、５８…バックアップユニット、５９…タイマー、６０…シリアルポート、６１…データバス、６２…アドレスバス、６３…演算部
【図１】
0003640104.tif 000002
【図２】
0003640104.tif 000003
【図３】
0003640104.tif 000004
【図４】
0003640104.tif 000005
【図５】
0003640104.tif 000006
【図６】
0003640104.tif 000007
【図７】
0003640104.tif 000008
【図８】
0003640104.tif 000009
【図９】
0003640104.tif 000010
【図１０】
0003640104.tif 000011
【図１１】
0003640104.tif 000012
【図１２】
0003640104.tif 000013
【図１３】
0003640104.tif 000014
【図１４】
0003640104.tif 000015
【図１５】
0003640104.tif 000016