(57)【要約】【課題】データを符号化する際に生じるバッファのオーバーフローを防止する。【解決手段】第１〜第３バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、第１〜第３バッファにそれぞれ設定された第１〜第３最大量を超えたとき、符号化処理は停止する。第１〜第３バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、第１〜第３バッファに第１〜第３最大量より小さくそれぞれ設定された第１〜第３基準量を下回ったとき、符号化処理は再開する。これにより、第１および第２バッファのオーバーフローを防止できる。第１および第２バッファにおいて、読み出されていないデータの上書きを防止できるため、多重化データが正常に生成されなくなることを防止できる。すなわち、誤った多重化データが出力されることを防止できる。【選択図】      図２
2004297666.tif 000002
【特許請求の範囲】
【請求項１】
動画像データを第１規格に従って符号化して動画像符号化データを生成し、
前記動画像符号化データを第１バッファに書き込み、
音声データを第２規格に従って符号化して音声符号化データを生成し、
前記音声符号化データを第２バッファに書き込み、
前記第１および第２バッファから読み出したデータ同士を第３規格に従って所定のタイミングで多重化して多重化データを生成し、
前記多重化データを第３バッファに書き込み、
前記第３バッファに書き込まれた多重化データを外部要求に応答して出力するデータ符号化方法において、
前記第１〜第３バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、前記第１〜第３バッファにそれぞれ設定された第１〜第３最大量を超えたとき、符号化処理を停止し、
前記第１〜第３バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、前記第１〜第３バッファに前記第１〜第３最大量より小さくそれぞれ設定された第１〜第３基準量を下回ったとき、符号化処理を再開することを特徴とするデータ符号化方法。
【請求項２】
請求項１記載のデータ符号化方法において、
前記第１バッファの容量は、符号化処理を停止してから前記動画像データの符号化が実際に停止するまでの間に前記第１バッファに書き込まれる最大のデータ量と前記第１最大量との和以上であり、
前記第２バッファの容量は、符号化処理を停止してから前記音声データの符号化が実際に停止するまでの間に前記第２バッファに書き込まれる最大のデータ量と前記第２最大量との和以上であり、
前記第３バッファの容量は、符号化処理を停止してから前記動画像データと前記音声データとの符号化が実際に停止するまでの間に前記第３バッファに書き込まれる最大のデータ量と前記第３最大量との和以上であることを特徴とするデータ符号化方法。
【請求項３】
動画像データを第１規格に従って符号化して動画像符号化データを生成し、
前記動画像符号化データを第１バッファに書き込み、
音声データを第２規格に従って符号化して音声符号化データを生成し、
前記音声符号化データを第２バッファに書き込み、
前記第１および第２バッファから読み出したデータ同士を第３規格に従って所定のタイミングで多重化して多重化データを生成し、
前記多重化データを第３バッファに書き込み、
前記第３バッファに書き込まれた多重化データを外部要求に応答して出力するデータ符号化方法において、
前記第３バッファに記憶されているデータ量が、前記第３バッファに設定された第３最大量を超え、かつ前記第１および第２バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、前記第１および第２バッファにそれぞれ設定された第１および第２最大量を超えたときに、前記第３バッファにおいて、読み出されていない多重化データのうち古い多重化データから順に、新たに生成された多重化データを上書きすることを特徴とするデータ符号化方法。
【請求項４】
動画像データを第１規格に従って符号化して動画像符号化データを生成し、
前記動画像符号化データを第１バッファに書き込み、
音声データを第２規格に従って符号化して音声符号化データを生成し、
前記音声符号化データを第２バッファに書き込み、
前記第１および第２バッファから読み出したデータ同士を第３規格に従って所定のタイミングで多重化して多重化データを生成し、
前記多重化データを第３バッファに書き込み、
前記第３バッファに書き込まれた多重化データを外部要求に応答して出力するデータ符号化方法において、
前記第３バッファに記憶されているデータ量が、前記第３バッファに設定された第３最大量を超え、かつ前記第１バッファに記憶されているデータ量が、前記第１バッファに設定された第１最大量を超えたときに、
前記第１バッファにおいて、読み出されていない動画像符号化データのうち古い動画像符号化データから順に、新しく生成された動画像符号化データを上書きし、
前記第３バッファに記憶されているデータ量が、前記第３バッファに設定された第３最大量を超え、かつ前記第２バッファに記憶されているデータ量が、前記第２バッファに設定された第２最大量を超えたときに、
前記第２バッファにおいて、読み出されていない音声符号化データのうち古い音声符号化データから順に、新しく生成された音声符号化データを上書きすることを特徴とするデータ符号化方法。
【請求項５】
請求項１、請求項３または請求項４のいずれか一項記載のデータ符号化方法において、
前記第１〜第３規格は、ＭＰＥＧ規格であることを特徴とするデータ符号化方法。
【請求項６】
動画像データを第１規格に従って符号化し、動画像符号化データとして出力する動画像エンコーダと、
前記動画像符号化データが書き込まれる第１バッファと、
音声データを第２規格に従って符号化し、音声符号化データとして出力する音声エンコーダと、
前記音声符号化データが書き込まれる第２バッファと、
前記第１および第２バッファから読み出したデータ同士を第３規格に従って所定のタイミングで多重化し、多重化データとして出力するマルチプレクサと、
前記多重化データが書き込まれ、書き込まれた多重化データを外部要求に応答して出力する第３バッファと、
符号化および多重化を制御する制御部とを備え、
前記制御部は、
前記第１〜第３バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、前記第１〜第３バッファにそれぞれ設定された第１〜第３最大量を超えたとき、符号化の停止を前記動画像エンコーダおよび前記音声エンコーダに要求し、
前記第１〜第３バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、前記第１〜第３バッファに前記第１〜第３最大量より小さくそれぞれ設定された第１〜第３基準量を下回ったとき、符号化の再開を前記動画像エンコーダおよび前記音声エンコーダに要求することを特徴とするデータ符号化装置。
【請求項７】
請求項６記載のデータ符号化装置において、
前記第１バッファの容量は、前記制御部が符号化の停止を要求してから前記動画像データの符号化が実際に停止するまでの間に前記第１バッファに書き込まれる最大のデータ量と前記第１最大量との和以上であり、
前記第２バッファの容量は、前記制御部が符号化の停止を要求してから前記音声データの符号化が実際に停止するまでの間に前記第２バッファに書き込まれる最大のデータ量と前記第２最大量との和以上であり、
前記第３バッファの容量は、前記制御部が符号化の停止を要求してから前記動画像データと前記音声データとの符号化が実際に停止するまでの間に前記第３バッファに書き込まれる最大のデータ量と前記第３最大量との和以上であることを特徴とするデータ符号化装置。
【請求項８】
動画像データを第１規格に従って符号化し、動画像符号化データとして出力する動画像エンコーダと、
前記動画像符号化データが書き込まれる第１バッファと、
音声データを第２規格に従って符号化し、音声符号化データとして出力する音声エンコーダと、
前記音声符号化データが書き込まれる第２バッファと、
前記第１および第２バッファから読み出したデータ同士を第３規格に従って所定のタイミングで多重化し、多重化データとして出力するマルチプレクサと、
前記多重化データが書き込まれ、書き込まれた多重化データを外部要求に応答して出力する第３バッファと、
符号化および多重化を制御する制御部とを備え、
前記制御部は、
前記第３バッファに記憶されているデータ量が、前記第３バッファに設定された第３最大量を超え、かつ前記第１および第２バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、前記第１および第２バッファにそれぞれ設定された第１および第２最大量を超えたときに、前記マルチプレクサに、前記第３バッファにおいて、読み出されていない多重化データのうち古い多重化データから順に、新たに生成された多重化データを上書きさせることを特徴とするデータ符号化装置。
【請求項９】
動画像データを第１規格に従って符号化し、動画像符号化データとして出力する動画像エンコーダと、
前記動画像符号化データが書き込まれる第１バッファと、
音声データを第２規格に従って符号化し、音声符号化データとして出力する音声エンコーダと、
前記音声符号化データが書き込まれる第２バッファと、
前記第１および第２バッファから読み出したデータ同士を第３規格に従って所定のタイミングで多重化し、多重化データとして出力するマルチプレクサと、
前記多重化データが書き込まれ、書き込まれた多重化データを外部要求に応答して出力する第３バッファと、
符号化および多重化を制御する制御部とを備え、
前記制御部は、
前記第３バッファに記憶されているデータ量が、前記第３バッファに設定された第３最大量を超え、かつ前記第１バッファに記憶されているデータ量が、前記第１バッファに設定された第１最大量を超えたときに、
前記動画像エンコーダに、前記第１バッファにおいて、読み出されていない動画像符号化データのうち古い動画像符号化データから順に、新しく生成された動画像符号化データを上書きさせ、
前記第３バッファに記憶されているデータ量が、前記第３バッファに設定された第３最大量を超え、かつ前記第２バッファに記憶されているデータ量が、前記第２バッファに設定された第２最大量を超えたときに、
前記音声エンコーダに、前記第２バッファにおいて、読み出されていない音声符号化データのうち古い音声符号化データから順に、新しく生成された音声符号化データを上書きさせることを特徴とするデータ符号化装置。
【請求項１０】
請求項６、請求項８または請求項９のいずれか一項記載のデータ符号化装置において、
前記第１〜第３規格は、ＭＰＥＧ規格であることを特徴とするデータ符号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動画像データおよび音声データをＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）規格に従って符号化するデータ符号化方法およびデータ符号化装置に関する。
【０００２】
【従来の技術】
近時、動画像データおよび音声データをＭＰＥＧ規格に従って符号化し、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）やハードディスクなどの記録メディアに記録するビデオレコーダの開発が進んでいる。
ビデオレコーダに搭載されるデータ符号化ＬＳＩは、例えば、動画像データおよび音声データをＭＰＥＧ規格に従って符号化（エンコード）するＭＰＥＧエンコーダを有している。ＭＰＥＧエンコーダは、ビデオエンコーダ、ビデオ用リングバッファ、オーディオエンコーダ、オーディオ用リングバッファ、マルチプレクサ、およびシステム用リングバッファを有している。
【０００３】
ビデオエンコーダは、ＩＴＵ−Ｒ６５６形式の動画像データをＭＰＥＧ２ビデオＭＰ＠ＭＬ形式でエンコードし、ＰＥＳ（Ｐａｃｋｅｔｉｚｅｄ  Ｅｌｅｍｅｎｔａｒｙ  Ｓｔｒｅａｍ）形式のデータとしてビデオ用リングバッファに書き込む。
オーディオエンコーダは、Ｉ２Ｓ形式の音声データをＭＰＥＧ１オーディオＬａｙｅｒ２形式でエンコードし、ＰＥＳ形式のデータとしてオーディオ用リングバッファに書き込む。
【０００４】
マルチプレクサは、ビデオ用リングバッファおよびオーディオ用リングバッファから読み出したＰＥＳ形式のデータ同士を所定のタイミングで多重化（マルチプレクス）し、ＭＰＥＧ２システムＰＳ形式のデータストリームとしてシステム用リングバッファに書き込む。なお、マルチプレクサは、新たに多重化して生成するデータストリームを第３バッファに書き込める場合にのみ、多重化を実施する。
【０００５】
システム用リングバッファは、外部デバイスから供給されるストリーム出力要求信号の活性化に応答して、同期クロック、ストリーム出力許可信号などと共に、８ビットのパラレルデータストリームを外部デバイスに出力する。
また、ＭＥＰＧ規格に従って符号化されたデータを復号化（再生）するＭＰＥＧデコーダにおいて、逆方向再生を実現するためのリングバッファ制御方法が提案されている（例えば、特許文献１、２参照）。
【０００６】
【特許文献１】
特開平８−１３０７１５号公報
【特許文献２】
特開平８−２２３５３８号公報
【０００７】
【発明が解決しようとする課題】
前述のようなデータ符号化ＬＳＩでは、ストリーム出力要求信号の非活性化期間が長い場合、システム用リングバッファからデータストリームが出力されないため、システム用リングバッファにデータストリームが蓄積され続ける。これにより、マルチプレクサは、新たに多重化して生成するデータストリームを第３バッファに書き込めないと判定し、多重化を停止する場合がある。ビデオ用リングバッファおよびオーディオ用リングバッファからデータが読み出されないため、ビデオ用リングバッファおよびオーディオ用リングバッファにもデータが蓄積され続ける。
【０００８】
このため、ビデオ用リングバッファおよびオーディオ用リングバッファの少なくともいずれかがオーバーフローしてしまう場合がある。すなわち、ビデオ用リングバッファおよびオーディオ用リングバッファの少なくともいずれかにおいて、読み出されていないデータに新たに生成されたデータが上書きされてしまう。この結果、マルチプレクサは、多重化するタイミングや多重化するビデオ用リングバッファのデータおよびオーディオ用リングバッファのデータの位置を認識できなくなってしまう。この結果、マルチプレクサは、データストリームを正常に生成できなくなってしまう。すなわち、誤ったデータストリームがシステム用リングバッファから出力されてしまう。
【０００９】
本発明の目的は、ビデオ用リングバッファおよびオーディオ用リングバッファのオーバーフローを防止することにある。本発明の別の目的は、誤ったデータストリームが出力されることを防止することにある。
【００１０】
【課題を解決するための手段】
請求項１のデータ符号化方法および請求項５のデータ符号化装置では、まず、動画像データが第１規格に従って符号化されることで動画像符号化データが生成される。動画像符号化データは、第１バッファに書き込まれる。また、音声データが第２規格に従って符号化されることで音声符号化データが生成される。音声符号化データは、第２バッファに書き込まれる。次に、第１および第２バッファから読み出されたデータ同士が第３規格に従って所定のタイミングで多重化されることで、多重化データが生成される。多重化データは、第３バッファに書き込まれる。そして、第３バッファに書き込まれた多重化データが外部要求に応答して出力される。以上のような処理を実施する際に、第１〜第３バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、第１〜第３バッファにそれぞれ設定された第１〜第３最大量を超えたとき、符号化処理は停止する。第１〜第３バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、第１〜第３基準量を下回ったとき、符号化処理は再開する。第１〜第３基準量は、第１〜第３バッファに第１〜第３最大量より小さくそれぞれ設定されている。
【００１１】
本発明が適用されるデータ符号化装置では、前述のように生成された動画像符号化データを出力する動画像エンコーダと、第１バッファと、前述のように生成された音声符号化データを出力する音声エンコーダと、第２バッファと、前述のように生成された多重化データを出力するマルチプレクサと、書き込まれた多重化データを外部要求に応答して出力する第３バッファと、符号化および多重化を前述のように制御する制御部とを有している。
【００１２】
第１〜第３バッファにそれぞれ記憶されているデータ量の少なくともいずれかが第１〜第３最大量を超えたときに、符号化処理を停止するため、第１および第２バッファのオーバーフローを防止できる。第１および第２バッファにおいて、読み出されていないデータが上書きされることを防止できるため、多重化データが正常に生成されなくなることを防止できる。すなわち、誤った多重化データが出力されることを防止できる。
【００１３】
請求項２のデータ符号化方法および請求項７のデータ符号化装置では、第１バッファの容量は、符号化処理を停止してから動画像データの符号化が実際に停止するまでの間に第１バッファに書き込まれる最大のデータ量と第１最大量との和以上である。第２バッファの容量は、符号化処理を停止してから音声データの符号化が実際に停止するまでの間に第２バッファに書き込まれる最大のデータ量と第２最大量との和以上である。第３バッファの容量は、符号化処理を停止してから動画像データと音声データとの符号化が実際に停止するまでの間に第３バッファに書き込まれる最大のデータ量と第３最大量との和以上である。
【００１４】
このため、符号化処理を停止してから動画像データの符号化が実際に停止するまでの間に生成された動画像符号化データを第１バッファに確実に書き込むことができる。また、符号化処理を停止してから音声データの符号化が実際に停止するまでの間に生成された音声符号化データを第２バッファに確実に書き込むことができる。同様に、符号化処理を停止してから動画像データおよび音声データの符号化が実際に停止するまでの間に生成された多重化データを第３バッファに確実に書き込むことができる。この結果、符号化処理を停止した後に、第１〜第３バッファにデータが書き込まれる場合でも、第１および第２バッファのオーバーフローを防止できる。
【００１５】
請求項３のデータ符号化方法および請求項８のデータ符号化装置では、第３バッファに記憶されているデータ量が、第３バッファに設定された第３最大量を超え、かつ前記第１および第２バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、第１および第２バッファにそれぞれ設定された第１および第２最大量を超えたときに、第３バッファにおいて、読み出されていない多重化データのうち古い多重化データから順に、新たに生成された多重化データを上書きする。
【００１６】
第３バッファにおいて多重化データの上書きを許可することで、第３バッファに記憶されているデータ量が第３最大量を超えた後にも、多重化は継続される。すなわち、第１および第２バッファは、第３バッファに記憶されているデータ量が第３最大量を超えた後にも、データを出力し続けることができる。このため、第１および第２バッファのオーバーフローを防止できる。第１および第２バッファにおいて、読み出されていないデータが上書きされることを防止できるため、多重化データが正常に生成されなくなることを防止できる。すなわち、誤った多重化データが出力されることを防止できる。
【００１７】
第３バッファにおいて多重化データの上書きを実施することで、第３バッファから出力される多重化データの連続性は、一時的に失われる。しかしながら、第３バッファには、正常な多重化データが書き込まれているため、外部要求が所定のレートで発生するようになった場合、特別な制御をすることなく、第３バッファから多重化データをそのまま出力することができる。
【００１８】
請求項４のデータ符号化方法および請求項９のデータ符号化装置では、第３バッファに記憶されているデータ量が、第３バッファに設定された第３最大量を超え、かつ第１バッファに記憶されているデータ量が、第１バッファに設定された第１最大量を超えたときに、第１バッファにおいて、読み出されていない動画像符号化データのうち古い動画像符号化データから順に、新しく生成された動画像符号化データを上書きする。第３バッファに記憶されているデータ量が、第３バッファに設定された第３最大量を超え、かつ第２バッファに記憶されているデータ量が、第２バッファに設定された第２最大量を超えたときに、第２バッファにおいて、読み出されていない音声符号化データのうち古い音声符号化データから順に、新しく生成された音声符号化データを上書きする。
【００１９】
第１バッファ（または第２バッファ）において動画像符号化データ（または音声符号化データ）の上書きを許可することで、第１バッファ（または第２バッファ）に記憶されているデータ量が第１最大量（または第２最大量）を超えた後にも、動画像データ（または音声データ）の符号化を継続できる。
また、例えば、動画像符号化データ（または音声符号化データ）の一部が上書きにより消去されたときに、この動画像符号化データ（または音声符号化データ）に対応する音声符号化データ（または動画像符号化データ）も消去する。これにより、第１または第２バッファにおいてデータの上書きを実施しても、マルチプレクサは、多重化する動画像符号化データおよび音声符号化データを正しく認識できる。この結果、第１および第２バッファのオーバーフローを防止した場合と同様に、多重化データが正常に生成されなくなることを防止できる。すなわち、誤った多重化データが出力されることを防止できる。
【００２０】
請求項５のデータ符号化方法および請求項１０のデータ符号化装置では、第１〜第３規格は、ＭＰＥＧ規格である。
ＭＰＥＧ規格は、動画像データおよび音声データの符号化に用いる規格の主流となっている。このため、本発明を、ＭＰＥＧ規格に基づいたデータ符号化を利用する様々な用途に適用できる。
【００２１】
【発明の実施の形態】
以下、図面を用いて本発明の実施形態を説明する。
図１は、本発明の第１の実施形態を示している。この実施形態は、請求項１、請求項２、請求項５、請求項６、請求項７および請求項１０に対応している。本発明は、ビデオレコーディングシステムＳＹＳのデータ変換ＬＳＩ２０に適用される。
ビデオレコーディングシステムＳＹＳは、システムコントローラ１０、ＲＯＭ１２、ＲＡＭ１４、データ変換ＬＳＩ２０、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）コントローラ３０、パーソナルコンピュータ４０、システムバスＳＹＳＢおよびユニバーサルシリアルバスＵＳＢから構成されている。システムコントローラ１０、ＲＯＭ１２、ＲＡＭ１４、データ変換ＬＳＩ２０、およびＵＳＢコントローラ３０は、例えば、ビデオレコーディングシステムを構成する基板に搭載されている。
【００２２】
システムコントローラ１０は、ＲＯＭ１２に記録されているプログラムに従って各部を制御するとともに、各種演算処理を実行する。
ＲＡＭ１４は、システムコントローラ１０が実行対象とするプログラムや、演算処理中のデータを一時的に記憶する。バスＳＹＳＢは、システムコントローラ１０、ＲＯＭ１２、ＲＡＭ１４、データ変換ＬＳＩ２０、ＵＳＢコントローラ３０を相互に接続し、これらの間でデータの授受を可能にする。
【００２３】
データ変換ＬＳＩ２０は、ＩＴＵ−Ｒ６５６形式の動画像データＶＤＩとＩ２Ｓ形式の音声データＡＤＩとをデータ変換し、ＭＰＥＧ２システムＰＳ形式のデータストリームＳＯをＵＳＢ３０コントローラに出力する。データ変換ＬＳＩ２０は、ＵＳＢコントローラ３０から供給されるＭＰＥＧ２システムＰＳ形式のデータストリームＳＩをデータ変換し、ＩＴＵ−Ｒ６５６形式の動画像データＶＤＯとＩ２Ｓ形式の音声データＡＤＯとを出力する。データ変換ＬＳＩ２０の詳細については、図２で説明する。
【００２４】
ＵＳＢ３０コントローラは、バスＵＳＢのインタフェースとして機能し、データ変換ＬＳＩ２０から供給されるデータストリームをパーソナルコンピュータ４０に出力するとともに、パーソナルコンピュータ４０から供給されるデータストリームをデータ変換ＬＳＩ２０に出力する。パーソナルコンピュータ４０は、バスＵＳＢを介して、ＵＳＢコントローラ３０との間でデータストリームを授受する。
【００２５】
図２は、第１の実施形態におけるデータ変換ＬＳＩ２０の一例を示している。
データ変換ＬＳＩ２０は、ＣＰＵ２０ａ（制御部）、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）２０ｂ、インタフェース回路２０ｃ、ＭＰＥＧエンコーダＥＮＣ、ＭＰＥＧデコーダＤＥＣ、および内部バスＩＮＴＢを有している。
システムコントローラ１０は、バスＳＹＳＢを介して、ＲＯＭ１２に格納されているデータ変換ＬＳＩ２０用のファームウェアを取得し、ＲＡＭ１４の所定の領域に格納する。ＣＰＵ２０ａは、このようにしてＲＡＭ１４に格納されたファームウェアに従って動作する。ＤＭＡＣ２０ｂは、ＣＰＵ２０ａを介さずにデータをＲＡＭ１４との間で直接授受する。インタフェース回路２０ｃは、主に、ＲＡＭ１４との間でデータを授受する際のインタフェースとして機能する。バスＩＮＴＢは、ＣＰＵ２０ａ、ＤＭＡＣ２０ｂ、インタフェース回路２０ｃ、ＭＰＥＧエンコーダＥＮＣ内のリングバッファ（ビデオ用リングバッファＢＵＦ１、オーディオ用リングバッファＢＵＦ２、システム用リングバッファＢＵＦ３）、ＭＰＥＧデコーダＤＥＣ内のリングバッファ（図示せず）を相互に接続し、これらの間でデータの授受を可能にする。
【００２６】
ＭＰＥＧエンコーダＥＮＣは、ビデオエンコーダＶＥＮＣ（動画像エンコーダ）、ビデオ用リングバッファＢＵＦ１（第１バッファ）、オーディオエンコーダＡＥＮＣ（音声エンコーダ）、オーディオ用リングバッファＢＵＦ２（第２バッファ）、マルチプレクサＭＰＸ、およびシステム用リングバッファＢＵＦ３（第３バッファ）を有している。
【００２７】
ビデオエンコーダＶＥＮＣは、ＩＴＵ−Ｒ６５６形式の動画像データＶＤＩをＭＰＥＧ２ビデオＭＰ＠ＭＬ形式でエンコードし、ＰＥＳ形式のデータ（動画像符号化データ）としてビデオ用リングバッファＢＵＦ１に書き込む。
オーディオエンコーダＡＥＮＣは、Ｉ２Ｓ形式の音声データＡＤＩをＭＰＥＧ１オーディオＬａｙｅｒ２形式でエンコードし、ＰＥＳ形式のデータ（音声符号化データ）としてオーディオ用リングバッファＢＵＦ２に書き込む。
【００２８】
マルチプレクサＭＰＸは、ビデオ用リングバッファＢＵＦ１およびオーディオ用リングバッファＢＵＦ２から読み出したＰＥＳ形式のデータ同士を所定のタイミングでマルチプレクスし、ＭＰＥＧ２システムＰＳ形式のデータストリーム（多重化データ）としてシステム用リングバッファＢＵＦ３に書き込む。なお、マルチプレクサＭＰＸは、新たに多重化して生成するデータストリームをシステム用リングバッファＢＵＦ３に書き込める場合にのみ、多重化を実施する。
【００２９】
システム用リングバッファＢＵＦ３は、ＵＳＢコントローラ３０から供給されるストリーム出力要求信号ＲＥＱの活性化に応答して、同期クロックＣＬＫ、ストリーム出力許可信号ＥＮおよび８ビットのパラレルデータストリームＳＯをＵＳＢコントローラ３０に出力する。
なお、ビデオ用リングバッファＢＵＦ１、オーディオ用リングバッファＢＵＦ２およびシステム用リングバッファＢＵＦ３は、読み出し要求に応答して、記憶しているデータを最初に書き込まれたデータから順に出力する。すなわち、ビデオ用リングバッファＢＵＦ１、オーディオ用リングバッファＢＵＦ２およびシステム用リングバッファＢＵＦ３は、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）形式のバッファとして動作する。
【００３０】
ＭＰＥＧデコーダＤＥＣは、ＵＳＢコントローラ３０から供給されるＭＰＥＧ２システムＰＳ形式のデータストリームＳＩをデコード処理し、ＩＴＵ−Ｒ６５６形式の動画像データＶＤＯとＩ２Ｓ形式の音声データＡＤＯとを出力する。
図３は、第１の実施形態におけるＭＰＥＧエンコーダＥＮＣのバッファ制御処理の動作を示している。
【００３１】
バッファ制御処理は、ＣＰＵ２０ａがＲＡＭ１４に格納されたファームウェアに従って動作することで実施される。
ＣＰＵ２０ａは、以下のような動作を、動画像データＶＤＩおよび音声データＡＶＩに対するエンコード処理の実施中に繰り返す。
ステップＳ１１０において、ＣＰＵ２０ａは、ビデオ用リングバッファＢＵＦ１、オーディオ用リングバッファＢＵＦ２およびシステム用リングバッファＢＵＦ３にそれぞれ記憶されているデータ量Ｄ１、Ｄ２、Ｄ３を監視する。例えば、ビデオ用リングバッファＢＵＦ１は、書き込みポインタと読み出しポインタとを有し、ＣＰＵ２０ａは、ＤＭＡＣ２０ｂにより転送された書き込みポインタの値と読み出しポインタの値とを用いてデータ量Ｄ１を算出する。ＣＰＵ２０ａは、データ量Ｄ２、Ｄ３も同様に算出する。
【００３２】
データ量Ｄ１がビデオ用リングバッファＢＵＦ１に設定された第１最大量Ｍ１を超えた場合、またはデータ量Ｄ２がオーディオ用リングバッファＢＵＦ２に設定された第２最大量Ｍ２を超えた場合、またはデータ量Ｄ３がシステム用リングバッファＢＵＦ３に設定された第３最大量Ｍ３を超えた場合、処理はステップＳ１２０に移行する。この条件が満たされない場合、ＣＰＵ２０ａは、データ量Ｄ１、Ｄ２、Ｄ３の監視を継続する。
【００３３】
ステップＳ１２０において、ＣＰＵ２０ａは、符号化処理を停止する、すなわち符号化の停止をビデオエンコーダＶＥＮＣおよびオーディオエンコーダＡＥＮＣにそれぞれ要求する。このため、ビデオ用リングバッファＢＵＦ１およびオーディオ用リングバッファＢＵＦ２のオーバーフローが防止される。この後、処理はステップＳ１３０に移行する。
【００３４】
なお、ビデオ用リングバッファＢＵＦ１の容量は、ＣＰＵ２０ａが符号化の停止を要求してから動画像データＶＤＩの符号化が実際に停止するまでの間にビデオ用リングバッファＢＵＦ１に書き込まれる最大のデータ量と第１最大量Ｍ１との和以上である。例えば、ビデオリング用バッファＢＵＦ１の容量、およびＣＰＵ２０ａが符号化の停止を要求してから動画像データＶＤＩの符号化が実際に停止するまでの間にビデオ用リングバッファＢＵＦ１に書き込まれる最大のデータ量は、それぞれ２５６ｋｂｙｔｅ、２７ｋｂｙｔｅである。すなわち、第１最大量が２２９ｋｂｙｔｅ以下に予め設定されることで、ビデオ用リングバッファＢＵＦ１のオーバーフローが確実に回避される。
【００３５】
また、オーディオ用リングバッファＢＵＦ２の容量は、ＣＰＵ２０ａが符号化の停止を要求してから音声データＡＤＩの符号化が実際に停止するまでの間にオーディオ用リングバッファＢＵＦ２に書き込まれる最大のデータ量と第２最大量Ｍ２との和以上である。
同様に、システム用リングバッファＢＵＦ３の容量は、ＣＰＵ２０ａが符号化の停止を要求してから動画像データＶＤＩと音声データＡＤＩとの符号化が実際に停止するまでの間にシステム用リングバッファＢＵＦ３に書き込まれる最大のデータ量と第３最大量Ｍ３との和以上である。
【００３６】
ステップＳ１３０において、ＣＰＵ２０ａは、データ量Ｄ１、Ｄ２、Ｄ３を再び監視する。データ量Ｄ１、Ｄ２、Ｄ３のすべてが、第１基準量Ｂ１、第２基準量Ｂ２、第３基準量Ｂ３をそれぞれ下回った場合、処理はステップＳ１４０に移行する。ここで、第１基準量Ｂ１、第２基準量Ｂ２、第３基準量Ｂ３は、ビデオ用リングバッファＢＵＦ１、オーディオ用リングバッファＢＵＦ２およびシステム用リングバッファＢＵＦ３に第１最大量Ｍ１、第２最大量Ｍ２、第３最大量Ｍ３より小さくそれぞれ設定されている。この条件が満たされない場合、ＣＰＵ２０ａは、データ量Ｄ１、Ｄ２、Ｄ３の監視を継続する。
【００３７】
ステップＳ１４０において、ＣＰＵ２０ａは、符号化処理を再開する、すなわち符号化の再開をビデオエンコーダＶＥＮＣおよびオーディオエンコーダＡＥＮＣにそれぞれ要求する。これにより、ビデオ用リングバッファＢＵＦ１およびオーディオ用リングバッファＢＵＦ２のオーバーフローを回避するための処理は、完了する。
【００３８】
以上、第１の実施形態では、次の効果が得られる。
データ量Ｄ１、Ｄ２、Ｄ３の少なくともいずれかが第１最大量Ｍ１、第２最大量Ｍ２、第３最大量Ｍ３を超えたときに、符号化処理を停止するため、ビデオ用リングバッファＢＵＦ１およびオーディオ用リングバッファＢＵＦ２のオーバーフローを防止できる。ビデオ用リングバッファＢＵＦ１およびオーディオ用リングバッファＢＵＦ２において、読み出されていないデータが上書きされることを防止できるため、データストリームが正常に生成されなくなることを防止できる。すなわち、誤ったデータストリームが出力されることを防止できる。
【００３９】
ＣＰＵ２０ａが符号化の停止を要求した後に生成されたデータを、ビデオ用リングバッファＢＵＦ１、オーディオ用リングバッファＢＵＦ２およびシステム用リングバッファＢＵＦ３に、確実にそれぞれ書き込むことができる。このため、ＣＰＵ２０ａが符号化の停止を要求した後に、ビデオ用リングバッファＢＵＦ１、オーディオ用リングバッファＢＵＦ２およびシステム用リングバッファＢＵＦ３にデータが書き込まれる場合でも、ビデオ用リングバッファＢＵＦ１およびオーディオ用リングバッファＢＵＦ２のオーバーフローを防止できる。
【００４０】
図４は、第２の実施形態におけるＭＰＥＧエンコーダＥＮＣのバッファ制御処理の動作を示している。この実施形態は、請求項３、請求項５、請求項８および請求項１０に対応している。この実施形態のビデオレコーディングシステムは、ＲＯＭ１２に格納されているデータ変換ＬＳＩ２０用のファームウェアが異なることを除き、第１の実施形態（図１）と同一である。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、詳細な説明は省略する。
【００４１】
バッファ制御処理は、第１の実施形態と同様に、ＣＰＵ２０ａがＲＡＭ１４に格納されたファームウェアに従って動作することで実施される。
ＣＰＵ２０ａは、以下のような動作を、動画像データＶＤＩおよび音声データＡＤＩに対するエンコード処理の実施中に繰り返す。
ステップＳ２１０において、ＣＰＵ２０ａは、データ量Ｄ１、Ｄ２、Ｄ３を監視する。データ量Ｄ３が第３最大量Ｍ３を超え、かつデータ量Ｄ１が第１最大量Ｍ１を超えた場合、またはデータ量Ｄ３が第３最大量Ｍ３を超え、かつデータ量Ｄ２が第２最大量Ｍ２を超えた場合、処理はステップＳ２２０に移行する。この条件が満たされない場合、ＣＰＵ２０ａは、データ量Ｄ１、Ｄ２、Ｄ３の監視を継続する。
【００４２】
ステップＳ２２０において、ＣＰＵ２０ａは、マルチプレクサＭＰＸに、システム用リングバッファＢＵＦ３のデータ上書きを要求する。マルチプレクサＭＰＸは、システム用リングバッファＢＵＦ３において、読み出されていないデータストリームのうち古いデータストリームから順に、新たに生成されたデータストリームを上書きする。
【００４３】
システム用リングバッファＢＵＦ３においてデータストリームの上書きを許可することで、データ量Ｄ３が第３最大量Ｍ３を超えた後にも、マルチプレクサＭＰＸは動作し続ける。すなわち、ビデオ用リングバッファＢＵＦ１およびオーディオ用リングバッファＢＵＦ２は、データ量Ｄ３が第３最大量Ｍ３を超えた後にも、データを出力し続ける。このため、ビデオ用リングバッファＢＵＦ１およびオーディオ用リングバッファＢＵＦ２のオーバーフローが防止される。これにより、ビデオ用リングバッファＢＵＦ１およびオーディオ用リングバッファＢＵＦ２のオーバーフローを回避するための処理は、完了する。
【００４４】
以上、第２の実施形態では、第１の実施形態と同様の効果が得られる。さらに、システム用リングバッファＢＵＦ３においてデータストリームの上書きを実施することで、システム用リングバッファＢＵＦ３から出力されるデータストリームＳＯの連続性は、一時的に失われる。しかしながら、システム用リングバッファＢＵＦ３には、正常なデータストリームが書き込まれている。このため、ストリーム出力要求信号ＲＥＱが所定のレートで活性化されるようになった場合、特別な制御をすることなく、システム用リングバッファＢＵＦ３からデータストリームをそのまま出力できる。
【００４５】
図５は、第３の実施形態におけるＭＰＥＧエンコーダＥＮＣのバッファ制御処理の動作を示している。この実施形態は、請求項４、請求項５、請求項９および請求項１０に対応している。この実施形態のビデオレコーディングシステムは、ＲＯＭ１２に格納されているデータ変換ＬＳＩ２０用のファームウェアが異なることを除き、第１の実施形態（図１）と同一である。第１の実施形態で説明した要素と同一の要素については、同一の符号を付し、詳細な説明は省略する。
【００４６】
バッファ制御処理は、第１の実施形態と同様に、ＣＰＵ２０ａがＲＡＭ１４に格納されたファームウェアに従って動作することで実施される。
ＣＰＵ２０ａは、以下のような動作を、動画像データＶＤＩおよび音声データＡＤＩに対するエンコード処理の実施中に繰り返す。
ステップＳ３１０において、ＣＰＵ２０ａは、データ量Ｄ１、Ｄ３を監視する。データ量Ｄ３が第３最大量Ｍ３を超え、かつデータ量Ｄ１が第１最大量Ｍ１を超えた場合、処理はステップＳ３２０に移行する。この条件を満たさない場合、処理はステップＳ３３０に移行する。
【００４７】
ステップＳ３２０において、ＣＰＵ２０ａは、ビデオエンコーダＶＥＮＣに、ビデオ用リングバッファＢＵＦ１のデータ上書きを要求する。ビデオエンコーダＶＥＮＣは、ビデオ用リングバッファＢＵＦ１において、読み出されていないデータのうち古いデータから順に、新しく生成されたデータを上書きする。ＣＰＵ２０ａは、上書きにより消去されたビデオ用リングバッファＢＵＦ１のデータに対応するオーディオ用リングバッファＢＵＦ２のデータを消去する。
【００４８】
ビデオ用リングバッファＢＵＦ１のデータの一部が上書きにより消去されたときに、このデータに対応するオーディオ用リングバッファＢＵＦ２のデータも消去される。このため、ビデオ用リングバッファＢＵＦ１においてデータの上書きを実施しても、ビデオ用リングバッファＢＵＦ１から出力されるデータおよびオーディオ用リングバッファＢＵＦ２から出力されるデータは、対応がとれている。従って、マルチプレクサＭＰＸは、多重化するビデオ用リングバッファＢＵＦ１のデータおよびオーディオ用リングバッファＢＵＦ２のデータを正しく認識する。この結果、ビデオ用リングバッファＢＵＦ１およびオーディオ用リングバッファＢＵＦ２のオーバーフローを防止した場合と同様に、データストリームが正常に生成されなくなることが防止される。これにより、データストリームが正常に生成されなくなることを回避するための処理は、完了する。
【００４９】
ステップＳ３３０において、ＣＰＵ２０ａは、データ量Ｄ２、Ｄ３を監視する。データ量Ｄ３が第３最大量Ｍ３を超え、かつデータ量Ｄ２が第２最大量Ｍ２を超えた場合、処理はステップＳ３４０に移行する。この条件を満たさない場合、処理はステップＳ３１０に移行する。
ステップＳ３４０において、ＣＰＵ２０ａは、オーディオエンコーダＡＥＮＣに、オーディオ用リングバッファＢＵＦ２のデータ上書きを要求する。オーディオエンコーダＡＥＮＣは、オーディオ用リングバッファＢＵＦ２において、読み出されていないデータのうち古いデータから順に、新しく生成されたデータを上書きする。ＣＰＵ２０ａは、上書きにより消去されたオーディオ用リングバッファＢＵＦ２のデータに対応するビデオ用リングバッファＢＵＦ１のデータを消去する。
【００５０】
オーディオ用リングバッファＢＵＦ２のデータの一部が上書きにより消去されたときに、このデータに対応するビデオ用リングバッファＢＵＦ１のデータも消去される。このため、オーディオ用リングバッファＢＵＦ２においてデータの上書きを実施しても、ビデオ用リングバッファＢＵＦ１から出力されるデータおよびオーディオ用リングバッファＢＵＦ２から出力されるデータは、対応がとれている。従って、マルチプレクサＭＰＸは、多重化するビデオ用リングバッファＢＵＦ１のデータおよびオーディオ用リングバッファＢＵＦ２のデータを正しく認識する。この結果、ビデオ用リングバッファＢＵＦ１およびオーディオ用リングバッファＢＵＦ２のオーバーフローを防止した場合と同様に、データストリームが正常に生成されなくなることが防止される。これにより、データストリームが正常に生成されなくなることを回避するための処理は、完了する。
【００５１】
以上、第３の実施形態では、第１の実施形態と同様の効果が得られる。
なお、第１の実施形態では、データ量Ｄ１、Ｄ２、Ｄ３のすべてが、第１基準量Ｂ１、第２基準量Ｂ２、第３基準量Ｂ３をそれぞれ下回った場合、符号化処理が再開される例について述べた。本発明は、かかる実施形態に限定されるものではない。例えば、図６に示すように、データ量Ｄ１、Ｄ２の両方が、第１基準量Ｂ１、第２基準量Ｂ２をそれぞれ下回った場合、符号化処理が再開されてもよい。なお、符号化処理の再開条件は、データ量Ｄ１、Ｄ３の両方が、第１基準量Ｂ１、第３基準量Ｂ３をそれぞれ下回った場合、またはデータ量Ｄ２、Ｄ３の両方が、第２基準量Ｂ２、第３基準量Ｂ３をそれぞれ下回った場合であってもよい。
【００５２】
また、例えば、図７に示すように、データ量Ｄ３が、第３基準量Ｂ３を下回った場合、符号化処理が再開されてもよい。なお、符号化処理の再開条件は、データ量Ｄ１が、第１基準量Ｂ１を下回った場合、またはデータ量Ｄ２が、第２基準量Ｂ２を下回った場合であってもよい。
第１〜第３の実施形態では、データストリームがＵＳＢコントローラ３０およびバスＵＳＢを介して授受される例について述べた。本発明は、かかる実施形態に限定されるものではない。例えば、データストリームは、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスコントローラおよびＰＣＩバスを介して授受されてもよい。
【００５３】
第１〜第３の実施形態では、本発明をＭＰＥＧエンコーダＥＮＣおよびＭＰＥＧデコーダＤＥＣが共に搭載されたＬＳＩに適用した例について述べた。本発明は、かかる実施形態に限定されるものではない。例えば、本発明をＭＰＥＧエンコーダ専用のＬＳＩに適用してもよい。
第１〜第３の実施形態では、システムコントローラ１０、ＲＯＭ１２、ＲＡＭ１４、データ変換ＬＳＩ２０、およびＵＳＢコントローラ３０が個別のチップとして形成された例について述べた。本発明は、かかる実施形態に限定されるものではない。例えば、システムコントローラ１０、ＲＯＭ１２、ＲＡＭ１４、データ変換ＬＳＩ２０、およびＵＳＢコントローラ３０は、１チップで形成されてもよい。
【００５４】
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）  動画像データを第１規格に従って符号化して動画像符号化データを生成し、
前記動画像符号化データを第１バッファに書き込み、
音声データを第２規格に従って符号化して音声符号化データを生成し、
前記音声符号化データを第２バッファに書き込み、
前記第１および第２バッファから読み出したデータ同士を第３規格に従って所定のタイミングで多重化して多重化データを生成し、
前記多重化データを第３バッファに書き込み、
前記第３バッファに書き込まれた多重化データを外部要求に応答して出力するデータ符号化方法において、
前記第１〜第３バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、前記第１〜第３バッファにそれぞれ設定された第１〜第３最大量を超えたとき、符号化処理を停止し、
前記第１〜第３バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、前記第１〜第３バッファに前記第１〜第３最大量より小さくそれぞれ設定された第１〜第３基準量を下回ったとき、符号化処理を再開することを特徴とするデータ符号化方法。
【００５５】
（付記２）  付記１記載のデータ符号化方法において、
前記第１バッファの容量は、符号化処理を停止してから前記動画像データの符号化が実際に停止するまでの間に前記第１バッファに書き込まれる最大のデータ量と前記第１最大量との和以上であり、
前記第２バッファの容量は、符号化処理を停止してから前記音声データの符号化が実際に停止するまでの間に前記第２バッファに書き込まれる最大のデータ量と前記第２最大量との和以上であり、
前記第３バッファの容量は、符号化処理を停止してから前記動画像データと前記音声データとの符号化が実際に停止するまでの間に前記第３バッファに書き込まれる最大のデータ量と前記第３最大量との和以上であることを特徴とするデータ符号化方法。
【００５６】
（付記３）  動画像データを第１規格に従って符号化して動画像符号化データを生成し、
前記動画像符号化データを第１バッファに書き込み、
音声データを第２規格に従って符号化して音声符号化データを生成し、
前記音声符号化データを第２バッファに書き込み、
前記第１および第２バッファから読み出したデータ同士を第３規格に従って所定のタイミングで多重化して多重化データを生成し、
前記多重化データを第３バッファに書き込み、
前記第３バッファに書き込まれた多重化データを外部要求に応答して出力するデータ符号化方法において、
前記第３バッファに記憶されているデータ量が、前記第３バッファに設定された第３最大量を超え、かつ前記第１および第２バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、前記第１および第２バッファにそれぞれ設定された第１および第２最大量を超えたときに、前記第３バッファにおいて、読み出されていない多重化データのうち古い多重化データから順に、新たに生成された多重化データを上書きすることを特徴とするデータ符号化方法。
【００５７】
（付記４）  動画像データを第１規格に従って符号化して動画像符号化データを生成し、
前記動画像符号化データを第１バッファに書き込み、
音声データを第２規格に従って符号化して音声符号化データを生成し、
前記音声符号化データを第２バッファに書き込み、
前記第１および第２バッファから読み出したデータ同士を第３規格に従って所定のタイミングで多重化して多重化データを生成し、
前記多重化データを第３バッファに書き込み、
前記第３バッファに書き込まれた多重化データを外部要求に応答して出力するデータ符号化方法において、
前記第３バッファに記憶されているデータ量が、前記第３バッファに設定された第３最大量を超え、かつ前記第１バッファに記憶されているデータ量が、前記第１バッファに設定された第１最大量を超えたときに、
前記第１バッファにおいて、読み出されていない動画像符号化データのうち古い動画像符号化データから順に、新しく生成された動画像符号化データを上書きし、
前記第３バッファに記憶されているデータ量が、前記第３バッファに設定された第３最大量を超え、かつ前記第２バッファに記憶されているデータ量が、前記第２バッファに設定された第２最大量を超えたときに、
前記第２バッファにおいて、読み出されていない音声符号化データのうち古い音声符号化データから順に、新しく生成された音声符号化データを上書きすることを特徴とするデータ符号化方法。
【００５８】
（付記５）  付記４記載のデータ符号化方法において、
前記新しく生成された動画像符号化データを上書きした場合に、上書きにより消去された動画像符号化データに対応する前記第２バッファの音声符号化データを消去し、
前記新しく生成された音声符号化データを上書きした場合に、上書きにより消去された音声符号化データに対応する前記第１バッファの動画像符号化データを消去することを特徴とするデータ符号化方法。
【００５９】
（付記６）  付記１、付記３または付記４のいずれか一項記載のデータ符号化方法において、
前記第１〜第３規格は、ＭＰＥＧ規格であることを特徴とするデータ符号化方法。
（付記７）  動画像データを第１規格に従って符号化し、動画像符号化データとして出力する動画像エンコーダと、
前記動画像符号化データが書き込まれる第１バッファと、
音声データを第２規格に従って符号化し、音声符号化データとして出力する音声エンコーダと、
前記音声符号化データが書き込まれる第２バッファと、
前記第１および第２バッファから読み出したデータ同士を第３規格に従って所定のタイミングで多重化し、多重化データとして出力するマルチプレクサと、
前記多重化データが書き込まれ、書き込まれた多重化データを外部要求に応答して出力する第３バッファと、
符号化および多重化を制御する制御部とを備え、
前記制御部は、
前記第１〜第３バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、前記第１〜第３バッファにそれぞれ設定された第１〜第３最大量を超えたとき、符号化の停止を前記動画像エンコーダおよび前記音声エンコーダに要求し、
前記第１〜第３バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、前記第１〜第３バッファに前記第１〜第３最大量より小さくそれぞれ設定された第１〜第３基準量を下回ったとき、符号化の再開を前記動画像エンコーダおよび前記音声エンコーダに要求することを特徴とするデータ符号化装置。
【００６０】
（付記８）  付記７記載のデータ符号化装置において、
前記第１バッファの容量は、前記制御部が符号化の停止を要求してから前記動画像データの符号化が実際に停止するまでの間に前記第１バッファに書き込まれる最大のデータ量と前記第１最大量との和以上であり、
前記第２バッファの容量は、前記制御部が符号化の停止を要求してから前記音声データの符号化が実際に停止するまでの間に前記第２バッファに書き込まれる最大のデータ量と前記第２最大量との和以上であり、
前記第３バッファの容量は、前記制御部が符号化の停止を要求してから前記動画像データと前記音声データとの符号化が実際に停止するまでの間に前記第３バッファに書き込まれる最大のデータ量と前記第３最大量との和以上であることを特徴とするデータ符号化装置。
【００６１】
（付記９）  動画像データを第１規格に従って符号化し、動画像符号化データとして出力する動画像エンコーダと、
前記動画像符号化データが書き込まれる第１バッファと、
音声データを第２規格に従って符号化し、音声符号化データとして出力する音声エンコーダと、
前記音声符号化データが書き込まれる第２バッファと、
前記第１および第２バッファから読み出したデータ同士を第３規格に従って所定のタイミングで多重化し、多重化データとして出力するマルチプレクサと、
前記多重化データが書き込まれ、書き込まれた多重化データを外部要求に応答して出力する第３バッファと、
符号化および多重化を制御する制御部とを備え、
前記制御部は、
前記第３バッファに記憶されているデータ量が、前記第３バッファに設定された第３最大量を超え、かつ前記第１および第２バッファにそれぞれ記憶されているデータ量の少なくともいずれかが、前記第１および第２バッファにそれぞれ設定された第１および第２最大量を超えたときに、前記マルチプレクサに、前記第３バッファにおいて、読み出されていない多重化データのうち古い多重化データから順に、新たに生成された多重化データを上書きさせることを特徴とするデータ符号化装置。
【００６２】
（付記１０）  動画像データを第１規格に従って符号化し、動画像符号化データとして出力する動画像エンコーダと、
前記動画像符号化データが書き込まれる第１バッファと、
音声データを第２規格に従って符号化し、音声符号化データとして出力する音声エンコーダと、
前記音声符号化データが書き込まれる第２バッファと、
前記第１および第２バッファから読み出したデータ同士を第３規格に従って所定のタイミングで多重化し、多重化データとして出力するマルチプレクサと、
前記多重化データが書き込まれ、書き込まれた多重化データを外部要求に応答して出力する第３バッファと、
符号化および多重化を制御する制御部とを備え、
前記制御部は、
前記第３バッファに記憶されているデータ量が、前記第３バッファに設定された第３最大量を超え、かつ前記第１バッファに記憶されているデータ量が、前記第１バッファに設定された第１最大量を超えたときに、
前記動画像エンコーダに、前記第１バッファにおいて、読み出されていない動画像符号化データのうち古い動画像符号化データから順に、新しく生成された動画像符号化データを上書きさせ、
前記第３バッファに記憶されているデータ量が、前記第３バッファに設定された第３最大量を超え、かつ前記第２バッファに記憶されているデータ量が、前記第２バッファに設定された第２最大量を超えたときに、
前記音声エンコーダに、前記第２バッファにおいて、読み出されていない音声符号化データのうち古い音声符号化データから順に、新しく生成された音声符号化データを上書きさせることを特徴とするデータ符号化装置。
【００６３】
（付記１１）  付記１０記載のデータ符号化装置において、
前記制御部は、
前記動画像エンコーダに、前記新しく生成された動画像符号化データを上書きさせた場合に、上書きにより消去された動画像符号化データに対応する前記第２バッファの音声符号化データを消去し、
前記音声エンコーダに、前記新しく生成された音声符号化データを上書きさせた場合に、上書きにより消去された音声符号化データに対応する前記第１バッファの動画像符号化データを消去することを特徴とするデータ符号化装置。
【００６４】
（付記１２）  付記７、付記９または付記１０のいずれか一項記載のデータ符号化装置において、
前記第１〜第３規格は、ＭＰＥＧ規格であることを特徴とするデータ符号化装置。
以上、本発明について詳細に説明してきたが、前述の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【００６５】
【発明の効果】
請求項１のデータ符号化方法および請求項６のデータ符号化装置では、第１および第２バッファのオーバーフローを防止できる。このため、誤った多重化データが出力されることを防止できる。
請求項２のデータ符号化方法および請求項７のデータ符号化装置では、符号化処理を停止した後に生成されたデータを、第１〜第３バッファに確実にそれぞれ書き込むことができる。このため、符号化処理を停止した後に、第１〜第３バッファにデータが書き込まれる場合でも、第１および第２バッファのオーバーフローを防止できる。
【００６６】
請求項３のデータ符号化方法および請求項８のデータ符号化装置では、第１および第２バッファのオーバーフローを防止できる。このため、誤った多重化データが出力されることを防止できる。外部要求が所定のレートで発生するようになった場合、特別な制御をすることなく、第３バッファから多重化データをそのまま出力することができる。
【００６７】
請求項４のデータ符号化方法および請求項９のデータ符号化装置では、第１または第２バッファにおいてデータの上書きを実施しても、マルチプレクサは、多重化する動画像符号化データおよび音声符号化データを正しく認識できる。このため、第１および第２バッファのオーバーフローを防止した場合と同様に、誤った多重化データが出力されることを防止できる。
【００６８】
請求項５のデータ符号化方法および請求項１０のデータ符号化装置では、本発明を、ＭＰＥＧ規格に基づいたデータ符号化を利用する様々な用途に適用できる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態を示す構成図である。
【図２】第１の実施形態におけるデータ変換ＬＳＩの一例を示すブロック図である。
【図３】第１の実施形態におけるＭＰＥＧエンコーダのバッファ制御処理の動作を示すフローチャートである。
【図４】本発明の第２の実施形態を示すフローチャートである。
【図５】本発明の第３の実施形態を示すフローチャートである。
【図６】ＭＰＥＧエンコーダのバッファ制御処理の第４の動作例を示すフローチャートである。
【図７】ＭＰＥＧエンコーダのバッファ制御処理の第５の動作例を示すフローチャートである。
【符号の説明】
１０  システムコントローラ
１２  ＲＯＭ
１４  ＲＡＭ
２０  データ変換ＬＳＩ
２０ａ  ＣＰＵ
２０ｂ  ＤＭＡＣ
２０ｃ  インタフェース回路
３０  ＵＳＢコントローラ
４０  パーソナルコンピュータ
ＳＹＳ    ビデオレコーディングシステム
ＤＥＣ    ＭＰＥＧデコーダ
ＥＮＣ    ＭＰＥＧエンコーダ
ＶＤＩ、ＶＤＯ    動画像データ
ＡＤＩ、ＡＤＯ    音声データ
ＶＥＮＣ  ビデオエンコーダ
ＡＥＮＣ  オーディオエンコーダ
ＢＵＦ１  ビデオ用リングバッファ
ＢＵＦ２  オーディオ用リングバッファ
ＢＵＦ３  システム用リングバッファ
ＳＩ、ＳＯ  データストリーム
ＳＹＳＢ  システムバス
ＵＳＢ    ユニバーサルシリアルバス
ＩＮＴＢ  内部バス
【図１】
2004297666.tif 000003
【図２】
2004297666.tif 000004
【図３】
2004297666.tif 000005
【図４】
2004297666.tif 000006
【図５】
2004297666.tif 000007
【図６】
2004297666.tif 000008
【図７】
2004297666.tif 000009