(57)【要約】【課題】ビデオＥＳとオーディオＥＳのビットレートが大きく異なる場合でも、オーディオＥＳバッファやビデオＥＳバッファを破綻させることなく、ビデオとオーディオの同期が取れた多重ストリームを生成できるＭＰＥＧ符号化装置を提供する。【解決手段】ビデオＥＳのビットレートがオーディオＥＳのビットレートよりも遥かに大きい場合において、オーディオＥＳバッファ２６がオーバー・フローしそうになると、オーディオＥＳバッファ２６からオーディオ・ストリーム・バッファ３２へのビデオＥＳのＤＭＡ転送が実行され、オーディオ・ストリーム・バッファ３２内のオーディオＥＳが破棄された場合（新たなオーディオＥＳで上書きされた場合）、オーディオＥＳの次の多重化タイミングが未来へ移動することになるが、新たな次のオーディオＥＳ多重化タイミングまでに新たに増えた期間の先頭までのビデオＥＳを破棄する。【選択図】          図１
2007068103.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ符号化器が出力するビデオ・ストリームを格納する第１のバッファと、
オーディオ符号化器が出力するオーディオ・ストリームを格納する第２のバッファと、
前記第１のバッファに格納されたビデオ・ストリームが転送される第３のバッファと、
前記第２のバッファに格納されたオーディオ・ストリームが転送される第４のバッファと、
前記第３のバッファに格納されたビデオ・ストリームと前記第４のバッファに格納されたオーディオ・ストリームとを多重化した多重ストリームを格納する第５のバッファを有するＭＰＥＧ符号化装置において、
一方の状態にある場合において、前記第１のバッファにおけるビデオ・ストリームの占有量が第１の閾値を越えた場合には他方の状態に遷移し、前記他方の状態にある場合において、前記第１のバッファにおけるビデオ・ストリームの占有量が前記第１の閾値より小さい第２の閾値未満となった場合には前記一方の状態に遷移する第１のステート・マシンと、
一方の状態にある場合において、前記第２のバッファにおけるオーディオ・ストリームの占有量が第３の閾値を越えた場合には他方の状態に遷移し、前記他方の状態にある場合において、前記第２のバッファにおけるオーディオ・ストリームの占有量が前記第３の閾値より小さい第４の閾値未満となった場合には前記一方の状態に遷移する第２のステート・マシンを有する
ことを特徴とするＭＰＥＧ符号化装置。
【請求項２】
前記第１のステート・マシンが前記一方の状態にあり、前記第３のバッファに空きがなく、前記第１のバッファにおけるビデオ・ストリームの占有量が前記第１の閾値を越えている場合には、前記第１のステート・マシンを前記他方の状態とし、前記第１のバッファから前記第３のバッファへのビデオ・ストリームのＤＭＡ転送を実行する
ことを特徴とする請求項１記載のＭＰＥＧ符号化装置。
【請求項３】
前記第１のステート・マシンが前記他方の状態にあり、前記第１のバッファにおけるビデオ・ストリームの占有量が前記第１の閾値未満でない場合には、前記第１のバッファから前記第３のバッファへのビデオ・ストリームのＤＭＡ転送を実行する
ことを特徴とする請求項１記載のＭＰＥＧ符号化装置。
【請求項４】
前記第２のステート・マシンが前記一方の状態にあり、前記第４のバッファに空きがなく、前記第２のバッファにおけるオーディオ・ストリームの占有量が前記第３の閾値を越えている場合には、前記第２のステート・マシンを前記他方の状態とし、前記第２のバッファから前記第４のバッファへのオーディオ・ストリームのＤＭＡ転送を実行する
ことを特徴とする請求項１記載のＭＰＥＧ符号化装置。
【請求項５】
前記第２のステート・マシンが前記他方の状態にあり、前記第２のバッファにおけるオーディオ・ストリームの占有量が前記第４の閾値未満でない場合には、前記第２のバッファから前記第４のバッファへのオーディオ・ストリームのＤＭＡ転送を実行する
ことを特徴とする請求項１記載のＭＰＥＧ符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ信号とオーディオ信号を符号化、多重化してＭＰＥＧ（Moving Picture Experts Group）規格の多重ストリームを生成するＭＰＥＧ符号化装置に関する。
【背景技術】
【０００２】
図１３は従来のＭＰＥＧ符号化装置の一例を後段システムと共に示す図である。図１３中、１は従来のＭＰＥＧ符号化装置の一例、２は後段システムである。従来のＭＰＥＧ符号化装置１は、ＬＳＩ（large scale integrated circuit）で構成されるものであり、ビデオ信号とオーディオ信号を入力し、これらビデオ信号とオーディオ信号を符号化、多重化してＭＰＥＧ規格の多重ストリームを生成、保持するものである。後段システム２は、ＭＰＥＧ符号化装置１にリクエスト信号ＲＥＱを与えて、ＭＰＥＧ符号化装置１が生成して保持する多重ストリームを取り出して記録、再生を行うものである。
【０００３】
ＭＰＥＧ符号化装置１は、ビデオ符号化器（VENC）３と、ビデオＥＳ（エレメンタリ・ストリーム）バッファ（VES Buf）４と、オーディオ符号化器（AENC）５と、オーディオＥＳ（エレメンタリ・ストリーム）バッファ（AES Buf）６と、多重化器（MUX）７と、多重ストリーム・バッファ（MUX Buf）８と、ＣＰＵ（central processing unit）９を有している。
【０００４】
ビデオ符号化器３は、ビデオ信号をＭＰＥＧ方式で符号化してビデオＥＳを出力するものである。ビデオＥＳバッファ４は、ビデオ符号化器３が出力するビデオＥＳを格納するものである。オーディオ符号化器５は、オーディオ信号をＭＰＥＧ方式で符号化してオーディオＥＳを出力するものである。オーディオＥＳバッファ６は、オーディオ符号化器５が出力するオーディオＥＳを格納するものである。多重化器７は、ビデオＥＳとオーディオＥＳとを多重化して多重ストリームを生成するものである。多重ストリーム・バッファ８は、多重化器７が出力する多重ストリームを格納するものである。ＣＰＵ９は各種制御を行うものである。
【０００５】
また、多重化器７は、ビデオ・ストリーム・バッファ（V Buf）１０と、オーディオ・ストリーム・バッファ（A Buf）１１と、スイッチ回路１２を有している。ビデオ・ストリーム・バッファ１０は、ビデオＥＳバッファ４からＤＭＡ（direct memory access）転送されてくるビデオＥＳを多重化のために格納するものである。オーディオ・ストリーム・バッファ１１は、オーディオＥＳバッファ６からＤＭＡ転送されてくるオーディオＥＳを多重化のために格納するものである。スイッチ回路１２は、多重化のタイミングを計って、システムレイヤを付加してビデオＥＳとオーディオＥＳとを多重化して多重ストリームを生成するものである。
【０００６】
また、ＣＰＵ９は、ソフトウエアによりビデオ・ストリーム・バッファ（V Buf）容量監視部１３およびオーディオ・ストリーム・バッファ（A Buf）容量監視部１４として機能するようにされている。ビデオ・ストリーム・バッファ容量監視部１３は、ビデオ・ストリーム・バッファ１０におけるビデオＥＳの占有量を監視するものである。オーディオ・ストリーム・バッファ容量監視部１４は、オーディオ・ストリーム・バッファ１１におけるオーディオＥＳの占有量を監視するものである。
【０００７】
図１４はビデオ符号化器３がビデオＥＳを発生した場合の処理を示すフローチャートである。ＭＰＥＧ符号化装置１では、ビデオ符号化器３がビデオＥＳを発生すると、ビデオ・ストリーム・バッファ１０に空きがあるか否かが判断され（ステップＮ１−１）、空きがある場合には、ビデオＥＳバッファ４からビデオ・ストリーム・バッファ１０へのビデオＥＳのＤＭＡ転送が実行される（ステップＮ１−２）。この結果、ビデオＥＳバッファ４におけるビデオＥＳの占有量は低下する。
【０００８】
図１５はオーディオ符号化器５がオーディオＥＳを発生した場合の処理を示すフローチャートである。ＭＰＥＧ符号化装置１では、オーディオ符号化器５がオーディオＥＳを発生すると、オーディオ・ストリーム・バッファ１１に空きがあるか否かが判断され（ステップＮ２−１）、空きがある場合には、オーディオＥＳバッファ６からオーディオ・ストリーム・バッファ１１へのオーディオＥＳのＤＭＡ転送が実行される（ステップＮ２−２）。この結果、オーディオＥＳバッファ６におけるオーディオＥＳの占有量は低下する。
【０００９】
即ち、ＭＰＥＧ符号化装置１においては、ビデオ信号は、ビデオ符号化器３でビデオＥＳに符号化されて、一旦、ビデオＥＳバッファ４に格納され、ビデオ・ストリーム・バッファ１０に空きがあると、ビデオＥＳバッファ４からビデオ・ストリーム・バッファ１０へのビデオＥＳのＤＭＡ転送が実行される。
【００１０】
また、オーディオ信号は、オーディオ符号化器５でオーディオＥＳに符号化されて、一旦、オーディオＥＳバッファ６に格納され、オーディオ・ストリーム・バッファ１１に空きがあると、オーディオＥＳバッファ６からオーディオ・ストリーム・バッファ１１へのオーディオＥＳのＤＭＡ転送が実行される。
【００１１】
そして、ビデオ・ストリーム・バッファ１０に格納されたビデオＥＳと、オーディオ・ストリーム・バッファ１１に格納されたオーディオＥＳは、スイッチ回路１２で多重化され、スイッチ回路１２が出力する多重ストリームは、多重ストリーム・バッファ８に格納される。
【００１２】
ここで、例えば、後段システム２がＬＡＮ（local area network）のように速度が保障できないようなシステムであり、後段システム２のＭＰＥＧ符号化装置１からの多重ストリームの取り出しの速度が変動して遅くなると、ＭＰＥＧ符号化装置１においては、ストリーム・バッファ４、６、８、１０、１１がオーバー・フローしてしまう場合がある。
【００１３】
これに対処する方法として、外部ホストがＭＰＥＧ符号化装置１内のストリーム・バッファ４、６、８、１０、１１のオーバー・フローを検出し、ＭＰＥＧ符号化装置１による符号化を停止する方法や、ＭＰＥＧ符号化装置１が自らストリーム・バッファ４、６、８、１０、１１のオーバー・フローを検出し、符号化を自動的に停止する方法がある。
【００１４】
しかしながら、これらの方法だと、後段システム２のストリーム取り出し速度が回復したときは、ＭＰＥＧ符号化装置１による符号化が再開されることになるが、この場合、ストリームが別ストリームになってしまうという問題点がある。また、ＭＰＥＧ符号化装置１での符号化を再開するタイミングを決定するには、後段システム２がストリーム取り出し速度を回復したかどうかを検出しなければならないという問題点もある。
【００１５】
これらの問題点を解消するものとして、図１６に示すような参考例のＭＰＥＧ符号化装置１５を考えることができる。ＭＰＥＧ符号化装置１５は、ＭＰＥＧ符号化装置１を改良し、ＣＰＵ９をソフトウエアによりビデオＥＳバッファ（VES Buf）容量監視部１６およびオーディオＥＳバッファ（AES Buf）容量監視部１７としても機能するようにしたものである。ビデオＥＳバッファ容量監視部１６は、ビデオＥＳバッファ４におけるビデオＥＳの占有量を監視するものである。オーディオＥＳバッファ容量監視部１７は、オーディオＥＳバッファ６におけるオーディオＥＳの占有量を監視するものである。
【００１６】
図１７はＭＰＥＧ符号化装置１５においてビデオ符号化器３がビデオＥＳを発生した場合の処理を示すフローチャートである。ＭＰＥＧ符号化装置１５では、ビデオ符号化器３がビデオＥＳを発生すると、ビデオ・ストリーム・バッファ１０に空きがあるか否かが判断され（ステップＮ３−１）、空きがある場合には、ビデオＥＳバッファ４からビデオ・ストリーム・バッファ１０へのビデオＥＳのＤＭＡ転送が実行される（ステップＮ３−２）。この結果、ビデオＥＳバッファ４におけるビデオＥＳの占有量が低下する。
【００１７】
これに対して、ステップＮ３−１において、ビデオ・ストリーム・バッファ１０に空きがないと判断された場合には、ビデオＥＳバッファ４におけるビデオＥＳの占有量（図では、［VES Buf4］と記載している）が予め決定されている閾値Ｓ１よりも大きいか否かが判断され（ステップＮ３−３）、大きい場合には、ビデオＥＳバッファ４からビデオ・ストリーム・バッファ１０へのビデオＥＳのＤＭＡ転送が実行され、ビデオ・ストリーム・バッファ１０の上書きが行われる（ステップＮ３−４）。この結果、ビデオＥＳバッファ４におけるビデオＥＳの占有量が低下する。
【００１８】
図１８はＭＰＥＧ符号化装置１５においてオーディオ符号化器５がオーディオＥＳを発生した場合の処理を示すフローチャートである。ＭＰＥＧ符号化装置１５では、オーディオ符号化器５がビデオＥＳを発生すると、オーディオ・ストリーム・バッファ１１に空きがあるか否かが判断され（ステップＮ４−１）、空きがある場合には、オーディオＥＳバッファ６からオーディオ・ストリーム・バッファ１１へのオーディオＥＳのＤＭＡ転送が実行される（ステップＮ４−２）。この結果、オーディオＥＳバッファ６におけるオーディオＥＳの占有量が低下する。
【００１９】
これに対して、ステップＮ４−１において、オーディオ・ストリーム・バッファ１１に空きがないと判断された場合には、オーディオＥＳバッファ６におけるオーディオＥＳの占有量（図では、［AES Buf6］と記載している）が予め決定されている閾値Ｓ２よりも大きいか否かが判断され（ステップＮ４−３）、大きい場合には、オーディオＥＳバッファ６からオーディオ・ストリーム・バッファ１１へのオーディオＥＳのＤＭＡ転送が実行され、オーディオ・ストリーム・バッファ１１の上書きが行われる（ステップＮ４−４）。この結果、オーディオＥＳバッファ６におけるオーディオＥＳの占有量が低下する。
【００２０】
このように、ＭＰＥＧ符号化装置１５では、ビデオＥＳバッファ４およびビデオ・ストリーム・バッファ１０を監視し、ビデオ・ストリーム・バッファ１０に空きがなくとも、ビデオＥＳバッファ４におけるビデオＥＳの占有量［VES Buf4］が閾値Ｓ１を越えたところで、ビデオＥＳバッファ４からビデオ・ストリーム・バッファ１０へのビデオＥＳのＤＭＡ転送を実行し、ビデオ・ストリーム・バッファ１０に上書きを行うとしている。
【００２１】
したがって、例えば、ビデオＥＳのビットレートがオーディオＥＳのビットレートよりも遥かに小さく、ビデオＥＳバッファ４およびビデオ・ストリーム・バッファ１０の容量を小さく設計した場合において、後段システム２のストリーム取り出し速度が変動して遅くなることにより多重化を行うことができなくなり、ビデオ・ストリーム・バッファ１０に空きがなくなった場合においても、ビデオＥＳバッファ４、ビデオ・ストリーム・バッファ１０および多重ストリーム・バッファ８でのオーバー・フローを防ぐことができる。
【００２２】
また、ＭＰＥＧ符号化装置１５では、オーディオＥＳバッファ６およびオーディオ・ストリーム・バッファ１１を監視し、オーディオ・ストリーム・バッファ１１に空きがなくとも、オーディオＥＳバッファ６におけるオーディオＥＳの占有量［AES Buf6］が閾値Ｓ２を越えたところで、オーディオＥＳバッファ６からオーディオ・ストリーム・バッファ１１へのオーディオＥＳのＤＭＡ転送を行い、オーディオ・ストリーム・バッファ１１に上書きを行うとしている。
【００２３】
したがって、例えば、ビデオＥＳのビットレートがオーディオＥＳのビットレートよりも遥かに大きく、オーディオＥＳバッファ６およびオーディオ・ストリーム・バッファ１１の容量を小さく設計した場合において、後段システム２のストリーム取り出し速度が変動して遅くなることにより多重化を行うことができなくなり、オーディオ・ストリーム・バッファ１１に空きがなくなった場合においても、オーディオＥＳバッファ６、オーディオ・ストリーム・バッファ１１および多重ストリーム・バッファ８でのオーバー・フローを防ぐことができる。
【特許文献１】特開２００３−４６９４９号公報
【特許文献２】特開２００１−３５２５２１号公報
【発明の開示】
【発明が解決しようとする課題】
【００２４】
図１９および図２０はＭＰＥＧ符号化装置１５が有する問題点を説明するための図であり、多重化器７におけるオーディオＥＳ多重化タイミングおよびビデオＥＳ多重化タイミングをＳＴＣ（System Time Clock）を時間軸として示している。図１９中、「次」は次の多重化タイミングを示し、「その次」は「次」の次の多重化タイミングを示している。
【００２５】
近年、ビデオの高画質化により、ＭＰＥＧ映像としてＨＤ（High Definition）映像を扱うようになり、それに伴って、ビデオＥＳのビットレートが高くなっているが、ＨＤ映像をＭＰＥＧ画像として扱う場合、ビデオＥＳおよびオーディオＥＳの多重化順序は、同一時刻のＰＴＳ（Presentation Time Stamp）をもつフレームでは、図１９(Ａ)に示すように、ビデオＥＳの方が先になる。これは、「ＧＯＰ（Group of Pictures）がＩＰＢ各ピクチャを含む場合は、リオーダディレイを考慮する」、「ＶＢＶ＿delayを考慮する」、「そもそもビデオＥＳのビットレートがオーディオＥＳに比べかなり大きい」という理由による。
【００２６】
また、オーディオ信号の符号化では、ビデオ信号の符号化の場合のようにリオーダディレイがなく、オーディオ信号の符号化処理はシンプルなため、オーディオＥＳの生成には、ビデオＥＳの生成よりも時間がかからず、生成されたオーディオＥＳがオーディオＥＳバッファ６に送られる時刻は早い。この結果、オーディオＥＳは、生成が早いが、多重化タイミングは遅いということになる。なお、オーディオＥＳのビットレートは低いため、オーディオＥＳバッファ６のサイズは小さくされる。
【００２７】
ところで、ＨＤ映像のようなデータ量の大きなビデオＥＳを多重化すると、実時間上、ビデオＥＳの多重化処理に時間がかかり、ＳＴＣは、なかなか進まない状態になり、図１９（Ａ)に示すように、オーディオＥＳはＭ期間多重化を待たされることになる。この場合、オーディオＥＳは実時間上均一に出力され続けるため、オーディオＥＳバッファ６におけるオーディオＥＳの占有量［AES Buf6］が上昇していくことになる。
【００２８】
そして、オーディオＥＳバッファ６におけるオーディオＥＳの占有量［AES Buf6］が閾値Ｓ２を越えると、オーディオＥＳバッファ６からオーディオ・ストリーム・バッファ１１へのオーディオＥＳのＤＭＡ転送が実行され、オーディオ・ストリーム・バッファ１１の上書きにより、オーディオ・ストリーム・バッファ１１上でオーディオＥＳの一部が消滅し、図１９（Ｂ）に示すように、予定されていた「次」のオーディオＥＳ多重化タイミングは消滅し、「その次」のオーディオＥＳ多重化タイミングが「次」のオーディオＥＳ多重化タイミングとなることにより、オーディオＥＳの次の多重化タイミングは、未来方向へ進む。
【００２９】
このように、オーディオＥＳバッファ６からオーディオ・ストリーム・バッファ１１へのオーディオＥＳのＤＭＡ転送が実行されると、一旦は、オーディオＥＳバッファ６におけるオーディオＥＳの占有量［AES Buf6］は低下するが、次のオーディオＥＳ多重化タイミングまでに、多重化すべきビデオＥＳは、図１９（Ｂ）に示すＮ期間の部分だけ、新たに増えることになる。
【００３０】
このようにして新たに増えたＮ期間のビデオＥＳを多重化処理していると、実時間上の時間がかかるため、オーディオＥＳバッファ６におけるオーディオＥＳの占有量［AES Buf6］は、再び増加することになる。そして、オーディオＥＳバッファ６におけるオーディオＥＳの占有量［AES Buf6］が閾値Ｓ２を越えると、再び、オーディオＥＳバッファ６からオーディオ・ストリーム・バッファ１１へのオーディオＥＳのＤＭＡ転送が実行され，オーディオＥＳの次の多重化タイミングは、再び、未来方向へ進むことになる。
【００３１】
このような処理が繰り返されると、オーディオＥＳの次の多重化タイミングにいつまでもＳＴＣが追いつけなくなり、オーディオＥＳを多重化することができなくなり、多重ストリーム・バッファ８から出力される最終的なストリームは、ビデオのみでオーディオのないストリームになってしまうという問題点がある。
【００３２】
また、近年、携帯電話の普及により、伝送レートが非常に低い伝送路においてもビデオデータを伝送したいという要求が高まっているが、携帯電話では、画面サイズが小さいため、ビデオ品質として、それほど高いものが求められていないため、ＭＰＥＧストリームで伝送する場合には、ビデオＥＳのビットレートは低くて良く、また、リソース節約のため、ビデオＥＳバッファ４およびビデオ・ストリーム・バッファ１０は、できるだけ小さくする必要がある。そこで、ビデオＥＳを生成するのに、フレームレートを落とすなど、データ量を極端に小さくし、オーディオにリニアＰＣＭなどの高レートのものを使うと、多重化タイミングは、これまで説明したものと逆に、オーディオの方が頻繁になる。
【００３３】
即ち、携帯電話において、ビデオＥＳを生成するのに、フレームレートを落とすなど、データ量を極端に小さくし、オーディオにリニアＰＣＭなどの高レートのものを使うと、実時間上、オーディオＥＳの多重化処理に時間がかかり、ＳＴＣは、なかなか進まない状態になり、図２０（Ａ)に示すように、ビデオＥＳは、ＭＭ期間多重化を待たされることになる。この場合、ビデオＥＳは出力され続けるため、ビデオＥＳバッファ４におけるビデオＥＳの占有量［VES Buf4］が上昇していくことになる。
【００３４】
そして、ビデオＥＳバッファ４におけるビデオＥＳの占有量［VES Buf4］が閾値Ｓ１を越えると、ビデオＥＳバッファ４からビデオ・ストリーム・バッファ１０へのビデオＥＳのＤＭＡ転送が実行され、ビデオ・ストリーム・バッファ１０の上書きにより、ビデオ・ストリーム・バッファ１０上でビデオＥＳの一部が消滅し、図２０（Ｂ）に示すように、予定されていた「次」のビデオＥＳ多重化タイミングは消滅し、「その次」のビデオＥＳ多重化タイミングが「次」のビデオＥＳ多重化タイミングになることにより、ビデオＥＳの次の多重化タイミングは、未来方向へ進む。
【００３５】
このように、ビデオＥＳバッファ４からビデオ・ストリーム・バッファ１０へのビデオＥＳのＤＭＡ転送が実行されると、一旦は、ビデオＥＳバッファ４におけるビデオＥＳの占有量［VES Buf4］は低下するが、次のビデオＥＳ多重化タイミングまでに多重化すべきオーディオＥＳは、図２０（Ｂ）に示すＮＮ期間の部分だけ、新たに増えることになる。
【００３６】
このようにして新たに増えたＮＮ期間のオーディオＥＳを多重化処理していると、実時間上の時間がかかるため、ビデオＥＳバッファ４におけるビデオＥＳの占有量［VES Buf4］は，再び増加することになる。そして、ビデオＥＳバッファ４におけるビデオＥＳの占有量［VES Buf4］が閾値Ｓ１を越えると、再び、ビデオＥＳバッファ４からビデオ・ストリーム・バッファ１０へのビデオＥＳのＤＭＡ転送が実行され，ビデオＥＳの次の多重化タイミングは、再び、未来方向へ進むことになる。
【００３７】
このような処理が繰り返されると、ビデオＥＳの次の多重化タイミングにいつまでもＳＴＣが追いつけなくなり、ビデオＥＳを多重化することができなくなり、多重ストリーム・バッファ８から出力される最終的なストリームは、オーディオのみでビデオのないストリームとなってしまうという問題点がある。
【００３８】
本発明は、かかる点に鑑み、ビデオＥＳとオーディオＥＳのビットレートが大きく異なる場合であっても、オーディオの無いストリームやビデオの無いストリームを生成することはなく、ビデオＥＳとオーディオＥＳの同期が取れた多重ストリームを生成することができるようにしたＭＰＥＧ符号化装置を提供することを目的とする。
【課題を解決するための手段】
【００３９】
本発明は、ビデオ符号化器が出力するビデオ・ストリームを格納する第１のバッファと、オーディオ符号化器が出力するオーディオ・ストリームを格納する第２のバッファと、第１のバッファに格納されたビデオ・ストリームが転送される第３のバッファと、第２のバッファに格納されたオーディオ・ストリームが転送される第４のバッファと、第３のバッファに格納されたビデオ・ストリームと第４のバッファに格納されたオーディオ・ストリームとを多重化した多重ストリームを格納する第５のバッファを有するＭＰＥＧ符号化装置において、一方の状態にある場合において、第１のバッファにおけるビデオ・ストリームの占有量が第１の閾値を越えた場合には他方の状態に遷移し、他方の状態にある場合において、第１のバッファにおけるビデオ・ストリームの占有量が第１の閾値より小さい第２の閾値未満となった場合には一方の状態に遷移する第１のステート・マシンと、一方の状態にある場合において、第２のバッファにおけるオーディオ・ストリームの占有量が第３の閾値を越えた場合には他方の状態に遷移し、他方の状態にある場合において、第２のバッファにおけるオーディオ・ストリームの占有量が第３の閾値より小さい第４の閾値未満となった場合には一方の状態に遷移する第２のステート・マシンを有するというものである。
【発明の効果】
【００４０】
本発明によれば、第１のステート・マシンは、一方の状態にある場合において、第１のバッファにおけるビデオ・ストリームの占有量が第１の閾値を越えた場合には他方の状態に遷移し、他方の状態にある場合において、第１のバッファにおけるビデオ・ストリームの占有量が第１の閾値より小さい第２の閾値未満となった場合には一方の状態に遷移する。また、第２のステート・マシンは、一方の状態にある場合において、第２のバッファにおけるオーディオ・ストリームの占有量が第３の閾値を越えた場合には他方の状態に遷移し、他方の状態にある場合において、第２のバッファにおけるオーディオ・ストリームの占有量が第３の閾値より小さい第４の閾値未満となった場合には一方の状態に遷移する。そこで、第１、第２のステート・マシンの状態に基づいて一定の処理を行うことにより、ビデオ・ストリームとオーディオ・ストリームのビットレートが大きく異なる場合であっても、オーディオの無いストリームやビデオの無いストリームを生成することなく、ビデオ・ストリームとオーディオ・ストリームの同期が取れた多重ストリームを生成することができる。
【発明を実施するための最良の形態】
【００４１】
図１は本発明の一実施形態のＭＰＥＧ符号化装置を後段システムと共に示す図である。図１中、２１は本発明の一実施形態のＭＰＥＧ符号化装置、２２は後段システムである。本発明の一実施形態のＭＰＥＧ符号化装置２１は、ＬＳＩで構成されるものであり、ビデオ信号とオーディオ信号を入力し、これらビデオ信号とオーディオ信号を符号化、多重化してＭＰＥＧ規格の多重ストリームを生成、保持するものである。後段システム２２は、ＭＰＥＧ符号化装置２１にリクエスト信号ＲＥＱを与えて、ＭＰＥＧ符号化装置２１が生成して保持する多重ストリームを取り出して記憶、再生するものである。
【００４２】
本発明の一実施形態のＭＰＥＧ符号化装置２１は、ビデオ符号化器（VENC）２３と、ビデオＥＳバッファ（VES Buf）２４と、オーディオ符号化器（AENC）２５と、オーディオＥＳバッファ（AES Buf）２６と、多重化器（MUX）２７と、多重ストリーム・バッファ（MUX Buf）２８と、ＣＰＵ２９と、ソフトウエア格納部３０を有している。
【００４３】
ビデオ符号化器２３は、ビデオ信号をＭＰＥＧ方式で符号化してビデオＥＳを出力するものである。ビデオＥＳバッファ２４は、ビデオ符号化器２３が出力するビデオＥＳを格納するものである。オーディオ符号化器２５は、オーディオ信号をＭＰＥＧ方式で符号化してオーディオＥＳを出力するものである。オーディオＥＳバッファ２６は、オーディオ符号化器２５が出力するオーディオＥＳを格納するものである。
【００４４】
多重化器２７は、ビデオＥＳとオーディオＥＳを多重化した多重ストリームを生成するものである。多重ストリーム・バッファ２８は、多重化器２７が出力する多重ストリームを格納するものである。ＣＰＵ２９は、各種制御を行うものである。ソフトウエア格納部３０は、ＣＰＵ２９に必要なソフトウエアを格納するものである。
【００４５】
また、多重化器２７は、ビデオ・ストリーム・バッファ３１と、オーディオ・ストリーム・バッファ３２と、スイッチ回路３３を有している。ビデオ・ストリーム・バッファ３１は、ビデオＥＳバッファ２４からＤＭＡ転送されてくるビデオＥＳを多重化のために格納するものである。オーディオ・ストリーム・バッファ３２は、オーディオＥＳバッファ２６からＤＭＡ転送されてくるオーディオＥＳを多重化のために格納するものである。スイッチ回路３３は、多重化のタイミングを計って、システムレイヤを付加してビデオＥＳとオーディオＥＳとを多重化して多重ストリームを生成するものである。
【００４６】
また、ＣＰＵ２９は、ソフトウエア格納部３０に格納されているソフトウエアによりビデオＥＳバッファ（VES Buf）容量監視部３４、オーディオＥＳバッファ（AES Buf）容量監視部３５、ビデオ・ストリーム・バッファ（V Buf）容量監視部３６およびオーディオ・ストリーム・バッファ（A Buf）容量監視部３７として機能するように構成されている。
【００４７】
ビデオＥＳバッファ容量監視部３４は、ビデオＥＳバッファ２４におけるビデオＥＳの占有量を監視するものである。オーディオＥＳバッファ容量監視部３５は、オーディオＥＳバッファ２６におけるオーディオＥＳの占有量を監視するものである。ビデオ・ストリーム・バッファ容量監視部３６は、ビデオ・ストリーム・バッファ３１におけるビデオＥＳの占有量を監視するものである。オーディオ・ストリーム・バッファ容量監視部３７は、オーディオ・ストリーム・バッファ３２におけるオーディオＥＳの占有量を監視するものである。
【００４８】
また、ソフトウエア格納部３０は、ビデオＥＳバッファ（VES Buf）容量監視プログラム３８、オーディオＥＳバッファ（AES Buf）容量監視プログラム３９、ビデオ・ストリーム・バッファ（V Buf）容量監視プログラム４０、オーディオ・ストリーム・バッファ（A Buf）容量監視プログラム４１、ビデオＥＳバッファ（VES Buf）ステート・マシン４２およびオーディオＥＳバッファ（AES Buf）ステート・マシン４３などを格納している。
【００４９】
ビデオＥＳバッファ容量監視プログラム３８は、ＣＰＵ２９をビデオＥＳバッファ容量監視部３４として機能させるものである。オーディオＥＳバッファ容量監視プログラム３９は、ＣＰＵ２９をオーディオＥＳバッファ容量監視部３５として機能させるものである。ビデオ・ストリーム・バッファ容量監視プログラム４０は、ＣＰＵ２９をビデオ・ストリーム・バッファ容量監視部３６として機能させるものである。オーディオ・ストリーム・バッファ容量監視プログラム４１は、ＣＰＵ２９をオーディオ・ストリーム・バッファ容量監視部３７として機能させるものである。
【００５０】
ビデオＥＳバッファ・ステート・マシン４２は、状態としてNormalとAlmost Overのいずれかを取るものであり、ビデオＥＳバッファ２４におけるビデオＥＳの占有量の所定の変化に対応して、ＣＰＵ２９によりNormal又はAlmost Overのいずれかの状態に遷移させられるものである。
【００５１】
オーディオＥＳバッファ・ステート・マシン４３は、状態としてNormalとAlmost Overのいずれかを取るものであり、オーディオＥＳバッファ２６におけるオーディオＥＳの占有量の所定の変化に対応して、ＣＰＵ２９によりNormal又はAlmost Overのいずれかの状態に遷移させられるものである。
【００５２】
図２はビデオＥＳバッファ２４に設定される閾値を示す図である。本発明の一実施形態のＭＰＥＧ符号化装置２１においては、ビデオＥＳバッファ・ステート・マシン４２の状態変化の基準となるビデオＥＳバッファ２４におけるビデオＥＳの占有量が閾値として設定される。本例では、ビデオＥＳバッファ２４に対して閾値Ｓ１と閾値Ｓ１＿low（＜Ｓ１）が設定される。
【００５３】
図３はビデオＥＳバッファ・ステート・マシン４２の状態変化を示す図である。ビデオＥＳバッファ・ステート・マシン４２は、Almost Overの状態にある場合において、ビデオＥＳバッファ２４におけるビデオＥＳの占有量（図では、［VES Buf24］と記載している）が閾値Ｓ１＿low未満になると、ＣＰＵ２９により状態をNormalとされ、この状態において、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］が閾値Ｓ１を越えると、ＣＰＵ２９により状態をAlmost Overとされる。
【００５４】
図４はオーディオＥＳバッファ２６に設定される閾値を示す図である。本発明の一実施形態のＭＰＥＧ符号化装置２１においては、オーディオＥＳバッファ・ステート・マシン４３の状態変化の基準となるオーディオＥＳバッファ２６におけるオーディオＥＳの占有量が閾値として設定される。本例では、オーディオＥＳバッファ２６に対して、閾値Ｓ２と閾値Ｓ２＿low（＜Ｓ２）が設定される。
【００５５】
図５はオーディオＥＳバッファ・ステート・マシン４３の状態変化を示す図である。オーディオＥＳバッファ・ステート・マシン４３は、Almost Overの状態にある場合において、オーディオＥＳバッファ２６におけるオーディオＥＳの占有量（図では、［AES Buf26］と記載している）が閾値Ｓ２＿low未満になると、ＣＰＵ２９により状態をNormalとされ、この状態において、オーディオＥＳバッファ２６におけるオーディオＥＳの占有量［AES Buf26］が閾値Ｓ２を越えると、ＣＰＵ２９により状態をAlmost Overとされる。
【００５６】
図６および図７はビデオ符号化器２３がビデオＥＳを発生した場合の処理を分図して示すフローチャートである。即ち、本発明の一実施形態のＭＰＥＧ符号化装置２１では、ビデオ符号器２３がビデオＥＳを発生すると、ＣＰＵ２９によりビデオＥＳバッファ・ステート・マシン４２の状態がNormalであるか否かが判断され（ステップＰ１）、Normalである場合には、ＣＰＵ２９によりビデオ・ストリーム・バッファ３１に空きがあるか否かが判断され（ステップＰ２）、空きがある場合には、ビデオＥＳバッファ２４からビデオ・ストリーム・バッファ３１へのビデオＥＳのＤＭＡ転送が実行される（ステップＰ３）。この結果、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］は低下する。
【００５７】
これに対して、ステップＰ２において、ビデオ・ストリーム・バッファ３１に空きがないと判断された場合には、ＣＰＵ２９によりビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］が閾値Ｓ１を越えているか否かが判断され（ステップＰ４）、越えている場合には、ＣＰＵ２９によりビデオＥＳバッファ・ステート・マシン４２の状態がAlmost Overにされ（ステップＰ５）、ビデオＥＳバッファ２４からビデオ・ストリーム・バッファ３１へのビデオＥＳのＤＭＡ転送が実行され、ビデオ・ストリーム・バッファ３１が上書きされる（ステップＰ６）。この結果、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］は低下し、かつ、次のビデオＥＳ多重化タイミングが先へ移動する。
【００５８】
また、ステップＰ１において、ビデオＥＳバッファ・ステート・マシン４２の状態がNormalでなく、Almost Overの状態と判断された場合には、ＣＰＵ２９によりビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］が閾値Ｓ１未満であるか否かが判断され（ステップＰ７）、閾値Ｓ１未満である場合には、次のビデオＥＳがピクチャ先頭であるか否かが判断され（ステップＰ８）、ピクチャ先頭である場合には、ＣＰＵ２９によりビデオ・ストリーム・バッファ３１に空きがあるか否かが判断され（ステップＰ９）、空きがある場合には、ＣＰＵ２９によりビデオＥＳバッファ・ステート・マシン４２の状態がNormalにされる（ステップＰ１０）。
【００５９】
これに対して、ステップＰ８において、次のビデオＥＳがピクチャ先頭でないと判断された場合には、ＣＰＵ２９によりビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］が閾値Ｓ１＿low未満であるか否かが判断され（ステップＰ１１）、閾値Ｓ１＿low未満である場合には、ＣＰＵ２９によりビデオＥＳバッファ・ステート・マシン４２の状態がNormalにされる（ステップＰ１２）。
【００６０】
また、ステップＰ１１において、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］が閾値Ｓ１＿low未満でないと判断された場合には、ビデオＥＳバッファ２４からビデオ・ストリーム・バッファ３１へのビデオＥＳのＤＭＡ転送が実行され、ビデオ・ストリーム・バッファ３１が上書きされる（ステップＰ１３）。この結果、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］は低下し、かつ、次のビデオＥＳ多重化タイミングが先へ移動する。
【００６１】
また、ステップＰ７において、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］が閾値Ｓ１未満でないと判断された場合には、ビデオＥＳバッファ２４からビデオ・ストリーム・バッファ３１へのビデオＥＳのＤＭＡ転送が実行され、ビデオ・ストリーム・バッファ３１が上書きされる（ステップＰ１３）。この結果、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］は低下し、かつ、次のビデオＥＳ多重化タイミングが先へ移動する。
【００６２】
図８および図９はオーディオ符号化器２５がオーディオＥＳを発生した場合の処理を分図して示すフローチャートである。即ち、本発明の一実施形態のＭＰＥＧ符号化装置２１においては、オーディオ符号化器２５がオーディオＥＳを発生すると、ＣＰＵ２９により、オーディオＥＳバッファ・ステート・マシン４３の状態がNormalであるか否かが判断され（ステップＱ１）、Normalである場合には、ＣＰＵ２９によりオーディオ・ストリーム・バッファ３２に空きがあるか否かが判断され（ステップＱ２）、空きがある場合には、オーディオＥＳバッファ２６からオーディオ・ストリーム・バッファ３２へのオーディオＥＳのＤＭＡ転送が実行される（ステップＱ３）。この結果、オーディオＥＳバッファ２６におけるオーディオＥＳの占有量［AES Buf26］は低下する。
【００６３】
これに対して、ステップＱ２において、オーディオ・ストリーム・バッファ３２に空きがないと判断された場合には、ＣＰＵ２９によりオーディオＥＳバッファ２６におけるオーディオＥＳの占有量［AES Buf26］が閾値Ｓ２を越えているか否かが判断され（ステップＱ４）、閾値Ｓ２を越えている場合には、ＣＰＵ２９によりオーディオＥＳバッファ・ステート・マシン４３の状態がAlmost Overにされ（ステップＱ５）、オーディオＥＳバッファ２６からオーディオ・ストリーム・バッファ３２へのオーディオＥＳのＤＭＡ転送が実行され、オーディオ・ストリーム・バッファ３２が上書きされる（ステップＱ６）。この結果、オーディオＥＳバッファ２６におけるオーディオＥＳの占有量［AES Buf26］は低下し、かつ、次のオーディオＥＳ多重化タイミングが先へ移動する。
【００６４】
また、ステップＱ１において、オーディオＥＳバッファ・ステート・マシン４３の状態がNormalでなく、Almost Overであると判断された場合には、ＣＰＵ２９によりオーディオＥＳバッファ２６におけるオーディオＥＳの占有量［AES Buf26］が閾値Ｓ２＿low未満であるか否かが判断され（ステップＱ７）、閾値Ｓ２＿low未満である場合には、ＣＰＵ２９によりオーディオＥＳバッファ・ステート・マシン４３の状態がNormalにされる（ステップＱ８）。
【００６５】
これに対して、ステップＱ７において、オーディオＥＳバッファ２６におけるオーディオＥＳの占有量が閾値Ｓ２＿low未満でないと判断された場合には、オーディオＥＳバッファ２６からオーディオ・ストリーム・バッファ３２へのオーディオＥＳのＤＭＡ転送が実行され、オーディオ・ストリーム・バッファ３２が上書きされる（ステップＱ９）。この結果、オーディオＥＳバッファ２６におけるオーディオＥＳの占有量［AES Buf26］は低下し、かつ、次のオーディオＥＳ多重化タイミングが先へ移動する。
【００６６】
図１０は多重化器２７でのビデオ・ストリーム・バッファ３１およびオーディオ・ストリーム・バッファ３２の調整方法を示すフローチャート、図１１および図１２は多重化器２７でのビデオ・ストリーム・バッファ３１およびオーディオ・ストリーム・バッファ３２の調整方法を説明するための図である。
【００６７】
図１１および図１２は多重化器２７でのオーディオＥＳ多重化タイミングおよびビデオＥＳ多重化タイミングをＳＴＣを時間軸として示しており、図１１はビデオＥＳのビットレートがオーディオＥＳのビットレートより遥かに大きく、オーディオＥＳバッファ２６およびオーディオ・ストリーム・バッファ３２の容量を小さく設計した場合、図１２はビデオＥＳのビットレートがオーディオＥＳのビットレートよりも遥かに小さく、ビデオＥＳバッファ２４およびビデオ・ストリーム・バッファ３１の容量を小さく設計した場合である。図１１および図１２において、「次」は次の多重化タイミングを示し、「その次」は「次」の次の多重化タイミングを示している。
【００６８】
ここで、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］が閾値Ｓ１を越えることなく、ビデオ符号化器２３におけるビデオ符号化が進むと共に、オーディオＥＳバッファ２６におけるオーディオＥＳの占有量［AES Buf26］が閾値Ｓ２を越えることなく、オーディオ符号化器２５におけるオーディオ符号化が進む場合には、図１１に示すＮ期間の先頭ＳＴＣおよび図１２に示すＮＮ期間の先頭ＳＴＣは、それぞれ０にセットされている。これは、Ｎ期間の先頭ＳＴＣ＜現在ＳＴＣ、および、ＮＮ期間の先頭ＳＴＣ＜現在ＳＴＣとすることで、次のビデオＥＳ多重化タイミングおよび次のオーディオ多重化タイミングが先へ移動していないことを示す。
【００６９】
ところが、図８に示すステップＱ６又は図９に示すステップＱ９でオーディオＥＳバッファ２６からオーディオ・ストリーム・バッファ３２へのオーディオＥＳのＤＭＡ転送が実行された場合、次のオーディオＥＳ多重化タイミングが先へ移動することになる。図１１に示す場合、次のオーディオＥＳ多重化タイミングは、Ｎ期間先へ移動することになる。この場合には、Ｎ期間先頭ＳＴＣがセットされ、Ｎ期間先頭ＳＴＣ＞現在ＳＴＣという状態となる。
【００７０】
また、図６に示すステップＰ６又は図７に示すステップＰ１３でビデオＥＳバッファ２４からビデオ・ストリーム・バッファ３１へのビデオＥＳのＤＭＡ転送が実行された場合、次のビデオＥＳ多重化タイミングが先へ移動することになる。図１２に示す場合、次のビデオＥＳ多重化タイミングは、ＮＮ期間先へ移動することになる。この場合には、ＮＮ期間先頭ＳＴＣがセットされ、ＮＮ期間先頭ＳＴＣ＞現在ＳＴＣという状態となる。
【００７１】
そこで、多重化器２７では、Ｎ期間先頭ＳＴＣ＞現在ＳＴＣであるか否かが判断される（ステップＷ１）。そして、Ｎ期間先頭ＳＴＣ＞現在ＳＴＣである場合には、ビデオ・ストリーム・バッファ３１のポインタを進めて、図１１に示すように、ビデオ・ストリーム・バッファ３１内で、現在ＳＴＣからＮ期間先頭ＳＴＣまでのＭ期間分のビデオＥＳを破棄する（ステップＷ２）。
【００７２】
これによって、ＳＴＣは、一気に、Ｎ期間の先頭のビデオＥＳの多重化タイミングまで進むことになり、ＳＴＣが次のオーディオの多重化タイミングに追いつけないという事態は発生しない。即ち、ビデオＥＳのビットレートがオーディオＥＳのビットレートよりも遥かに大きく、オーディオＥＳバッファ２６およびオーディオ・ストリーム・バッファ３２の容量を小さく設計した場合において、オーディオＥＳバッファ２６からオーディオ・ストリーム・バッファ３２へのオーディオＥＳのＤＭＡ転送が実行され、オーディオ・ストリーム・バッファ３２が上書きされた場合においても、ビデオとオーディオの同期が維持される。
【００７３】
また、多重化器２７では、ＮＮ期間先頭ＳＴＣ＞現在ＳＴＣであるか否かが判断される（ステップＷ３）。そして、ＮＮ期間先頭ＳＴＣ＞現在ＳＴＣである場合には、オーディオ・ストリーム・バッファ３２のポインタを進めて、図１２に示すように、オーディオ・ストリーム・バッファ３２内で、現在ＳＴＣからＮＮ期間先頭ＳＴＣまでのＭＭ期間分のオーディオＥＳを破棄する（ステップＷ４）。
【００７４】
これによって、ＳＴＣは、一気に、ＮＮ期間の先頭のオーディオＥＳの多重化タイミングまで進むことになり、ＳＴＣが次のビデオＥＳの多重化タイミングに追いつけないという事態は発生しない。即ち、ビデオＥＳのビットレートがオーディオＥＳのビットレートより遥かに小さく、ビデオＥＳバッファ２４およびビデオ・ストリーム・バッファ３１の容量を小さく設計した場合において、ビデオＥＳバッファ２４からビデオ・ストリーム・バッファ３１へのビデオＥＳのＤＭＡ転送が実行され、ビデオ・ストリーム・バッファ３１が上書きされた場合においても、ビデオとオーディオの同期が維持される。
【００７５】
ここで、本発明の一実施形態のＭＰＥＧ符号化装置２１においてビデオ符号化器２３がビデオＥＳを発生した場合の処理を整理すると、以下のようになる。（１）ビデオＥＳバッファ・ステート・マシン４２の状態がNormalで（ステップＰ１でＹＥＳの場合）、ビデオ・ストリーム・バッファ３１に空きがある場合（ステップＰ２でＹＥＳの場合）には、ビデオＥＳバッファ２４からビデオ・ストリーム・バッファ３１へのビデオＥＳのＤＭＡ転送が実行される（ステップＰ３）。この結果、ビデオＥＳバッファ２４におけるビデオＥＳの占有量は低下する。
【００７６】
（２）ビデオＥＳバッファ・ステート・マシン４２の状態がNormalで（ステップＰ１でＹＥＳの場合）、ビデオ・ストリーム・バッファ３１に空きがなく（ステップＰ２でＮＯの場合）、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］が閾値Ｓ１を越えている場合（ステップＰ４でＹＥＳの場合）には、ビデオＥＳバッファ・ステート・マシン４２の状態がAlmost Overにされ（ステップＰ５）、ビデオＥＳバッファ２４からビデオ・ストリーム・バッファ３１へのビデオＥＳのＤＭＡ転送が実行され、ビデオ・ストリーム・バッファ３１が上書きされる（ステップＰ６）。
【００７７】
この結果、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］は低下し、かつ、次のビデオＥＳ多重化タイミングが先へ移動する。この場合は、次のビデオＥＳ多重化タイミングまでに新たに増えた期間（図１２に示すＮＮ期間）の先頭までのオーディオＥＳが破棄され（ステップＷ４）、ビデオとオーディオの同期が維持される。
【００７８】
（３）ビデオＥＳバッファ・ステート・マシン４２の状態がNormalでなく（ステップＰ１でＮＯの場合）、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］が閾値Ｓ１未満であり（ステップＰ７でＹＥＳの場合）、次のビデオＥＳがピクチャ先頭であり（ステップＰ８でＹＥＳの場合）、ビデオ・ストリーム・バッファ３１に空きがある場合（ステップＰ９でＹＥＳの場合）には、ビデオＥＳバッファ・ステート・マシン４２の状態はNormalにされる（ステップＰ１０）。この結果、ピクチャ先頭からのデータが消滅する確率を減らすことができ、これにより、デコード時、再生画像の乱れを防ぐ確率を上げることができる。
【００７９】
なお、ピクチャ先頭の場合に、ビデオＥＳバッファ２４におけるビデオＥＳの占有量を閾値Ｓ１＿low未満とする処理を行わず、ビデオＥＳバッファ・ステート・マシン４２の状態をNormalにできる理由は、ピクチャ先頭（ピクチャヘッダ等）は、データの生成間隔が１ピクチャ分あるので、どのような映像をいれようとも、ストリームとしてピクチャ先頭ばかり連続ということはないからであり、また、万が一、ピクチャ先頭ばかりが連続するとしても、それは、ビデオＥＳ自体のデータ量が極端に小さい場合なので、ビデオＥＳバッファ２４がオーバー・フローするようなことは起こりえないからである。
【００８０】
（４）ビデオＥＳバッファ・ステート・マシン４２の状態がNormalでなく（ステップＰ１でＮＯの場合）、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］が閾値Ｓ１未満で（ステップＰ７でＹＥＳの場合）、次のビデオＥＳがピクチャ先頭でなく（ステップＰ８でＮＯの場合）、ビデオＥＳバッファ２４におけるビデオＥＳの占有量が閾値Ｓ１＿low未満である場合（ステップＰ１１でＹＥＳの場合）には、ビデオＥＳバッファ・ステート・マシン４２の状態はNormalにされる（ステップＰ１２）。
【００８１】
（５）ビデオＥＳバッファ・ステート・マシン４２の状態がNormalでなく（ステップＰ１でＮＯの場合）、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］が閾値Ｓ１未満で（ステップＰ７でＹＥＳの場合）、次のビデオＥＳがピクチャ先頭でなく（ステップＰ８でＮＯの場合）、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］が閾値Ｓ１＿low未満でない場合（ステップＰ１１でＮＯの場合）には、ビデオＥＳバッファ２４からビデオ・ストリーム・バッファ３１へのビデオＥＳのＤＭＡ転送が実行され、ビデオ・ストリーム・バッファ３１が上書きされる（ステップＰ１３）。
【００８２】
この結果、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］は低下し、かつ、次のビデオＥＳ多重化タイミングが先へ移動する。この場合は、次のビデオＥＳ多重化タイミングまでに新たに増えた期間（図１２に示すＮＮ期間）の先頭までのオーディオＥＳが破棄され（ステップＷ４）、ビデオとオーディオの同期が維持される。
【００８３】
（６）ビデオＥＳバッファ・ステート・マシン４２の状態がNormalでなく（ステップＰ１でＮＯの場合）、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］が閾値Ｓ１未満でない場合（ステップＰ７でＮＯの場合）には、ビデオＥＳバッファ２４からビデオ・ストリーム・バッファ３１へのビデオＥＳのＤＭＡ転送が実行され、ビデオ・ストリーム・バッファ３１が上書きされる（ステップＰ１３）。
【００８４】
この結果、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］は低下し、かつ、次のビデオＥＳ多重化タイミングが先へ移動する。この場合は、次のビデオＥＳ多重化タイミングまでに新たに増えた期間（図１２に示すＮＮ期間）の先頭までのオーディオＥＳが破棄され（ステップＷ４）、ビデオとオーディオの同期が維持される。
【００８５】
なお、ビデオＥＳバッファ２４からビデオ・ストリーム・バッファ３１へのＤＭＡ転送のキックタイミングの判断機会は、以下の３つである。（Ａ１）ビデオ符号化器２３でビデオＥＳが生成され、ビデオＥＳバッファ２４に新たにビデオＥＳが入ったとき。（Ａ２）ビデオＥＳバッファ２４からビデオ・ストリーム・バッファ３１へのＤＭＡ転送が完了したとき。（Ａ３）ビデオＥＳの多重化によりビデオ・ストリーム・バッファ３１におけるビデオＥＳの占有量が減ったとき。
【００８６】
これら３つのケースのうち、ビデオＥＳバッファ２４がオーバー・フローする可能性があるのは、（Ａ１）のケースだけである。そこで、本発明の一実施形態のＭＰＥＧ符号化装置２１では、（Ａ１）のケースに対して、図６および図７に示すように処理を進めることで、ビデオＥＳバッファ２４でオーバー・フローが起こらないようにしている。
【００８７】
また、本発明の一実施形態のＭＰＥＧ符号化装置２１においてオーディオ符号化器２５がオーディオＥＳを発生した場合の処理を整理すると、以下のようになる。（７）オーディオＥＳバッファ・ステート・マシン４３の状態がNormalであり（ステップＱ１でＹＥＳの場合）、オーディオ・ストリーム・バッファ３２に空きがある場合（ステップＱ２でＹＥＳの場合）には、オーディオＥＳバッファ２６からオーディオ・ストリーム・バッファ３２へのオーディオＥＳのＤＭＡ転送が実行される（ステップＱ３）。この結果、オーディオＥＳバッファ２６におけるオーディオＥＳの占有量は低下する。
【００８８】
（８）オーディオＥＳバッファ・ステート・マシン４３の状態がNormalであり（ステップＱ１でＹＥＳの場合）、オーディオ・ストリーム・バッファ３２に空きがなく（ステップＱ２でＮＯの場合）、オーディオＥＳバッファ２６におけるオーディオＥＳの占有量［AES Buf26］が閾値Ｓ２を越えている場合（ステップＱ４でＹＥＳ場合）には、オーディオＥＳバッファ・ステート・マシン４３の状態がAlmost Overにされ（ステップＱ５）、オーディオＥＳバッファ２６からオーディオ・ストリーム・バッファ３２へのオーディオＥＳのＤＭＡ転送が実行され、オーディオ・ストリーム・バッファ３２が上書きされる（ステップＱ６）。
【００８９】
この結果、オーディオＥＳバッファ２６におけるオーディオＥＳの占有量［AES Buf26］は低下し、かつ、次のオーディオＥＳ多重化タイミングが先へ移動する。この場合は、次のオーディオＥＳ多重化タイミングまでに新たに増えた期間（図１１に示すＮ期間）の先頭までのビデオＥＳが破棄され（ステップＷ２）、ビデオとオーディオの同期が維持される。
【００９０】
（９）オーディオＥＳバッファ・ステート・マシン４３の状態がNormalでなく（ステップＱ１でＮＯの場合）、オーディオＥＳバッファ２６におけるオーディオＥＳの占有量［AES Buf26］が閾値Ｓ２＿low未満である場合（ステップＱ７でＹＥＳの場合）には、オーディオＥＳバッファ・ステート・マシン４３の状態がNormalにされる（ステップＱ８）。
【００９１】
（１０）オーディオＥＳバッファ・ステート・マシン４３の状態がNormalでなく（ステップＱ１でＮＯの場合）、オーディオＥＳバッファ２６におけるオーディオＥＳの占有量［AES Buf26］が閾値Ｓ２＿low未満でない場合（ステップＱ７でＮＯの場合）には、オーディオＥＳバッファ２６からオーディオ・ストリーム・バッファ３２へのオーディオＥＳのＤＭＡ転送が実行され、、オーディオ・ストリーム・バッファ３２が上書きされる（ステップＱ９）。
【００９２】
この結果、オーディオＥＳバッファ２６におけるオーディオＥＳの占有量［AES Buf26］は低下し、かつ、次のオーディオＥＳ多重化タイミングが先へ移動する。この場合は、次のオーディオＥＳ多重化タイミングまでに新たに増えた期間（図１１に示すＮ期間）の先頭までのビデオＥＳが破棄され（ステップＷ２）、ビデオとオーディオの同期が維持される。
【００９３】
なお、オーディオＥＳバッファ２６からオーディオ・ストリーム・バッファ３２へのＤＭＡ転送のキックタイミングの判断機会は、以下の３つである。（Ｂ１）オーディオ符号化器２５でオーディオＥＳが生成され、オーディオＥＳバッファ２６に新たにオーディオＥＳが入ったとき。（Ｂ２）オーディオＥＳバッファ２６からオーディオ・ストリーム・バッファ３２へのＤＭＡ転送が完了したとき。（Ｂ３）オーディオＥＳの多重化によりオーディオ・ストリーム・バッファ３２におけるオーディオＥＳの占有量が減ったとき。
【００９４】
これら３つのケースのうち、オーディオＥＳバッファ２６がオーバー・フローする可能性があるのは、（Ｂ１）のケースだけである。そこで、本発明の一実施形態のＭＰＥＧ符号化装置２１では、（Ｂ１）のケースに対して、図８および図９に示すように処理を進めることで、オーディオＥＳバッファ２６でオーバー・フローが起こらないようにしている。
【００９５】
以上のように、本発明の一実施形態のＭＰＥＧ符号化装置２１においては、ビデオＥＳバッファ２４がオーバー・フローを起こさないように、ビデオＥＳバッファ２４からビデオ・ストリーム・バッファ３１へのビデオＥＳのＤＭＡ転送を実行するとしている。また、オーディオＥＳバッファ２６がオーバー・フローを起こさないように、オーディオＥＳバッファ２６からオーディオ・ストリーム・バッファ３２へのオーディオＥＳのＤＭＡ転送を実行するとしている。
【００９６】
そして、ビデオＥＳのビットレートがオーディオＥＳのビットレートより遥かに大きい場合には、ビデオＥＳの多重化に時間がかかり、オーディオＥＳバッファ２６からオーディオ・ストリーム・バッファ３２へのオーディオＥＳのＤＭＡ転送が実行される場合が発生するが、この場合には、次のオーディオＥＳ多重化タイミングまでに新たに増えた期間の先頭までのビデオＥＳを破棄するとし、ビデオとオーディオの同期が維持されるようにしている。
【００９７】
逆に、ビデオＥＳのビットレートがオーディオＥＳのビットレートより遥かに小さい場合には、オーディオＥＳの多重化に時間がかかり、ビデオＥＳバッファ２４からビデオ・ストリーム・バッファ３１へのビデオＥＳのＤＭＡ転送が実行される場合が発生するが、この場合には、次のビデオＥＳ多重化タイミングまでに新たに増えた期間の先頭までのオーディオＥＳを破棄するとし、ビデオとオーディオの同期が維持されるようにしている。
【００９８】
したがって、本発明の一実施形態のＭＰＥＧ符号化装置２１によれば、ビデオＥＳとオーディオＥＳのビットレートが大きく異なる場合であっても、オーディオの無いストリームやビデオの無いストリームを生成することなく、ビデオとオーディオの同期が取れた多重ストリームを生成することができる。
【００９９】
また、ビデオＥＳバッファ・ステート・マシン４２の状態がNormalでなく、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］が閾値Ｓ１未満である場合において、ビデオ符号化器２３が発生したビデオＥＳがピクチャ先頭の場合には、ビデオＥＳバッファ２４におけるビデオＥＳの占有量［VES Buf24］を閾値Ｓ１＿low未満とする処理を行わず、ビデオＥＳバッファ・ステート・マシン４２の状態をNormalにするようにしているので、ピクチャ先頭からのデータが消滅する確率を減らすことができ、これにより、デコード時、再生画像の乱れを防ぐ確率を上げることができる。
【０１００】
ここで、本発明のＭＰＥＧ符号化装置を整理すると、本発明のＭＰＥＧ符号化装置には、少なくとも、以下のＭＰＥＧ符号化装置が含まれる。
【０１０１】
（付記１）ビデオ符号化器が出力するビデオ・ストリームを格納する第１のバッファと、オーディオ符号化器が出力するオーディオ・ストリームを格納する第２のバッファと、前記第１のバッファに格納されたビデオ・ストリームが転送される第３のバッファと、前記第２のバッファに格納されたオーディオ・ストリームが転送される第４のバッファと、前記第３のバッファに格納されたビデオ・ストリームと前記第４のバッファに格納されたオーディオ・ストリームとを多重化した多重ストリームが格納される第５のバッファを有するＭＰＥＧ符号化装置において、一方の状態にある場合において、前記第１のバッファにおけるビデオ・ストリームの占有量が第１の閾値を越えた場合には他方の状態に遷移し、前記他方の状態にある場合において、前記第１のバッファにおけるビデオ・ストリームの占有量が前記第１の閾値より小さい第２の閾値未満となった場合には前記一方の状態に遷移する第１のステート・マシンと、一方の状態にある場合において、前記第２のバッファにおけるオーディオ・ストリームの占有量が第３の閾値を越えた場合には他方の状態に遷移し、前記他方の状態にある場合において、前記第２のバッファにおけるオーディオ・ストリームの占有量が前記第３の閾値より小さい第４の閾値未満となった場合には前記一方の状態に遷移する第２のステート・マシンを有することを特徴とするＭＰＥＧ符号化装置。
【０１０２】
（付記２）前記第１のステート・マシンが前記一方の状態にあり、前記第３のバッファに空きがある場合には、前記第１のバッファから前記第３のバッファにビデオ・ストリームのＤＭＡ転送を実行することを特徴とする付記１記載のＭＰＥＧ符号化装置。
【０１０３】
（付記３）前記第１のステート・マシンが前記一方の状態にあり、前記第３のバッファに空きがなく、前記第１のバッファにおけるビデオ・ストリームの占有量が前記第１の閾値を越えている場合には、前記第１のステート・マシンを前記他方の状態とし、前記第１のバッファから前記第３のバッファへのビデオ・ストリームのＤＭＡ転送を実行することを特徴とする付記１記載のＭＰＥＧ符号化装置。
【０１０４】
（付記４）前記第１のステート・マシンが前記他方の状態にあり、前記第１のバッファにおけるビデオ・ストリームの占有量が前記第１の閾値未満であり、次のビデオ・ストリームがピクチャ先頭であり、前記第３のバッファに空きがある場合には、前記第１のステート・マシンを前記一方の状態とすることを特徴とする付記１記載のＭＰＥＧ符号化装置。
【０１０５】
（付記５）前記第１のステート・マシンが前記他方の状態にあり、前記第１のバッファにおけるビデオ・ストリームの占有量が前記第１の閾値未満であり、次のビデオ・ストリームがピクチャ先頭でなく、前記第１のバッファにおけるビデオ・ストリームの占有量が前記第２の閾値未満の場合には、前記第１のステート・マシンを前記一方の状態とすることを特徴とする付記１記載のＭＰＥＧ符号化装置。
【０１０６】
（付記６）前記第１のステート・マシンが前記他方の状態にあり、前記第１のバッファにおけるビデオ・ストリームの占有量が前記第１の閾値未満であり、次のビデオ・ストリームがピクチャ先頭でなく、前記第１のバッファにおけるビデオ・ストリームの占有量が前記第２の閾値未満でない場合には、前記第１のバッファから前記第３のバッファにビデオ・ストリームのＤＭＡ転送を実行することを特徴とする付記１記載のＭＰＥＧ符号化装置。
【０１０７】
（付記７）前記第１のステート・マシンが前記他方の状態にあり、前記第１のバッファにおけるビデオ・ストリームの占有量が前記第１の閾値未満でない場合には、前記第１のバッファから前記第３のバッファへのビデオ・ストリームのＤＭＡ転送を実行することを特徴とする付記１記載のＭＰＥＧ符号化装置。
【０１０８】
（付記８）前記第２のステート・マシンが前記一方の状態にあり、前記第４のバッファに空きがある場合には、前記第２のバッファから前記第４のバッファへのオーディオ・ストリームのＤＭＡ転送を実行することを特徴とする付記１記載のＭＰＥＧ符号化装置。
【０１０９】
（付記９）前記第２のステート・マシンが前記一方の状態にあり、前記第４のバッファに空きがなく、前記第２のバッファにおけるオーディオ・ストリームの占有量が前記第３の閾値を越えている場合には、前記第２のステート・マシンを前記他方の状態とし、前記第２のバッファから前記第４のバッファへのオーディオ・ストリームのＤＭＡ転送を実行することを特徴とする付記１記載のＭＰＥＧ符号化装置。
【０１１０】
（付記１０）前記第２のステート・マシンが前記他方の状態にあり、前記第２のバッファにおけるオーディオ・ストリームの占有量が前記第４の閾値未満の場合には、前記第２のステート・マシンを前記一方の状態とすることを特徴とする付記１記載のＭＰＥＧ符号化装置。
【０１１１】
（付記１１）前記第２のステート・マシンが前記他方の状態にあり、前記第２のバッファにおけるオーディオ・ストリームの占有量が前記第４の閾値未満でない場合には、前記第２のバッファから前記第４のバッファへのオーディオ・ストリームのＤＭＡ転送を実行することを特徴とする付記１記載のＭＰＥＧ符号化装置。
【０１１２】
（付記１２）前記第３のバッファ内で、次のビデオ多重化タイミングまでに新たに増えた期間の先頭までのオーディオ・ストリームを破棄することを特徴とする付記２、３、６又は７記載のＭＰＥＧ符号化装置。
【０１１３】
（付記１３）前記第４のバッファ内で、次のオーディオ多重化タイミングまでに新たに増えた期間の先頭までのビデオ・ストリームを破棄することを特徴とする付記９又は１１記載のＭＰＥＧ符号化装置。
【図面の簡単な説明】
【０１１４】
【図１】本発明の一実施形態のＭＰＥＧ符号化装置を後段システムと共に示す図である。
【図２】本発明の一実施形態のＭＰＥＧ符号化装置が備えるビデオＥＳバッファに設定される閾値を示す図である。
【図３】本発明の一実施形態のＭＰＥＧ符号化装置が備えるビデオＥＳバッファ・ステート・マシンの状態変化を示す図である。
【図４】本発明の一実施形態のＭＰＥＧ符号化装置が備えるオーディオＥＳバッファに設定される閾値を示す図である。
【図５】本発明の一実施形態のＭＰＥＧ符号化装置が備えるオーディオＥＳバッファ・ステート・マシンの状態変化を示す図である。
【図６】本発明の一実施形態においてビデオ符号化器がビデオＥＳを発生した場合の処理を分図して示すフローチャートである。
【図７】本発明の一実施形態においてビデオ符号化器がビデオＥＳを発生した場合の処理を分図して示すフローチャートである。
【図８】本発明の一実施形態においてオーディオ符号化器がオーディオＥＳを発生した場合の処理を分図して示すフローチャートである。
【図９】本発明の一実施形態においてオーディオ符号化器がオーディオＥＳを発生した場合の処理を分図して示すフローチャートである。
【図１０】本発明の一実施形態が備える多重化器でのビデオ・ストリーム・バッファおよびオーディオ・ストリーム・バッファの調整方法を示すフローチャートである。
【図１１】本発明の一実施形態が備える多重化器でのビデオ・ストリーム・バッファおよびオーディオ・ストリーム・バッファの調整方法を説明するための図である。
【図１２】本発明の一実施形態が備える多重化器でのビデオ・ストリーム・バッファおよびオーディオ・ストリーム・バッファの調整方法を説明するための図である。
【図１３】従来のＭＰＥＧ符号化装置の一例を後段システムと共に示す図である。
【図１４】図１３に示す従来のＭＰＥＧ符号化装置においてビデオ符号化器がビデオＥＳを発生した場合の処理を示すフローチャートである。
【図１５】図１３に示す従来のＭＰＥＧ符号化装置においてオーディオ符号化器がオーディオＥＳを発生した場合の処理を示すフローチャートである。
【図１６】参考例のＭＰＥＧ符号化装置を後段システムと共に示す図である。
【図１７】図１６に示す参考例のＭＰＥＧ符号化装置においてビデオ符号化器がビデオＥＳを発生した場合の処理を示すフローチャートである。
【図１８】図１６に示す参考例のＭＰＥＧ符号化装置においてオーディオ符号化器がオーディオＥＳを発生した場合の処理を示すフローチャートである。
【図１９】図１６に示す参考例のＭＰＥＧ符号化装置が有する問題点を説明するための図である。
【図２０】図１６に示す参考例のＭＰＥＧ符号化装置が有する問題点を説明するための図である。
【符号の説明】
【０１１５】
１…従来のＭＰＥＧ符号化装置の一例
２…後段システム
３…ビデオ符号化器
４…ビデオ・エレメンタリ・ストリーム・バッファ
５…オーディオ符号化器
６…オーディオ・エレメンタリ・ストリーム・バッファ
７…多重化器
８…多重ストリーム・バッファ
９…ＣＰＵ
１０…ビデオ・ストリーム・バッファ
１１…オーディオ・ストリーム・バッファ
１２…スイッチ回路
１３…ビデオ・ストリーム・バッファ容量監視部
１４…オーディオ・ストリーム・バッファ容量監視部
１５…参考例のＭＰＥＧ符号化装置
１６…ビデオ・エレメンタリ・ストリーム・バッファ容量監視部
１７…オーディオ・エレメンタリ・ストリーム・バッファ容量監視部
２１…本発明の一実施形態のＭＰＥＧ符号化装置
２２…後段システム
２３…ビデオ符号化器
２４…ビデオ・エレメンタリ・ストリーム・バッファ
２５…オーディオ符号化器
２６…オーディオ・エレメンタリ・ストリーム・バッファ
２７…多重化器
２８…多重ストリーム・バッファ
２９…ＣＰＵ
３０…ソフトウエア格納部
３１…ビデオ・ストリーム・バッファ
３２…オーディオ・ストリーム・バッファ
３３…スイッチ回路
３４…ビデオＥＳバッファ容量監視部
３５…オーディオＥＳバッファ容量監視部
３６…ビデオ・ストリーム・バッファ容量監視部
３７…オーディオ・ストリーム・バッファ容量監視部
３８…ビデオＥＳバッファ容量監視プログラム
３９…オーディオＥＳバッファ容量監視プログラム
４０…ビデオ・ストリーム・バッファ容量監視プログラム
４１…オーディオ・ストリーム・バッファ容量監視プログラム
４２…ビデオＥＳバッファ・ステート・マシン
４３…オーディオＥＳバッファ・ステート・マシン
【図１】
2007068103.tif 000003
【図２】
2007068103.tif 000004
【図３】
2007068103.tif 000005
【図４】
2007068103.tif 000006
【図５】
2007068103.tif 000007
【図６】
2007068103.tif 000008
【図７】
2007068103.tif 000009
【図８】
2007068103.tif 000010
【図９】
2007068103.tif 000011
【図１０】
2007068103.tif 000012
【図１１】
2007068103.tif 000013
【図１２】
2007068103.tif 000014
【図１３】
2007068103.tif 000015
【図１４】
2007068103.tif 000016
【図１５】
2007068103.tif 000017
【図１６】
2007068103.tif 000018
【図１７】
2007068103.tif 000019
【図１８】
2007068103.tif 000020
【図１９】
2007068103.tif 000021
【図２０】
2007068103.tif 000022