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