JP2007068103A - Mpeg符号化装置 - Google Patents
Mpeg符号化装置 Download PDFInfo
- Publication number
- JP2007068103A JP2007068103A JP2005254727A JP2005254727A JP2007068103A JP 2007068103 A JP2007068103 A JP 2007068103A JP 2005254727 A JP2005254727 A JP 2005254727A JP 2005254727 A JP2005254727 A JP 2005254727A JP 2007068103 A JP2007068103 A JP 2007068103A
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- video
- audio
- stream
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】ビデオESとオーディオESのビットレートが大きく異なる場合でも、オーディオESバッファやビデオESバッファを破綻させることなく、ビデオとオーディオの同期が取れた多重ストリームを生成できるMPEG符号化装置を提供する。
【解決手段】ビデオESのビットレートがオーディオESのビットレートよりも遥かに大きい場合において、オーディオESバッファ26がオーバー・フローしそうになると、オーディオESバッファ26からオーディオ・ストリーム・バッファ32へのビデオESのDMA転送が実行され、オーディオ・ストリーム・バッファ32内のオーディオESが破棄された場合(新たなオーディオESで上書きされた場合)、オーディオESの次の多重化タイミングが未来へ移動することになるが、新たな次のオーディオES多重化タイミングまでに新たに増えた期間の先頭までのビデオESを破棄する。
【選択図】 図1
【解決手段】ビデオESのビットレートがオーディオESのビットレートよりも遥かに大きい場合において、オーディオESバッファ26がオーバー・フローしそうになると、オーディオESバッファ26からオーディオ・ストリーム・バッファ32へのビデオESのDMA転送が実行され、オーディオ・ストリーム・バッファ32内のオーディオESが破棄された場合(新たなオーディオESで上書きされた場合)、オーディオESの次の多重化タイミングが未来へ移動することになるが、新たな次のオーディオES多重化タイミングまでに新たに増えた期間の先頭までのビデオESを破棄する。
【選択図】 図1
Description
本発明は、ビデオ信号とオーディオ信号を符号化、多重化してMPEG(Moving Picture Experts Group)規格の多重ストリームを生成するMPEG符号化装置に関する。
図13は従来のMPEG符号化装置の一例を後段システムと共に示す図である。図13中、1は従来のMPEG符号化装置の一例、2は後段システムである。従来のMPEG符号化装置1は、LSI(large scale integrated circuit)で構成されるものであり、ビデオ信号とオーディオ信号を入力し、これらビデオ信号とオーディオ信号を符号化、多重化してMPEG規格の多重ストリームを生成、保持するものである。後段システム2は、MPEG符号化装置1にリクエスト信号REQを与えて、MPEG符号化装置1が生成して保持する多重ストリームを取り出して記録、再生を行うものである。
MPEG符号化装置1は、ビデオ符号化器(VENC)3と、ビデオES(エレメンタリ・ストリーム)バッファ(VES Buf)4と、オーディオ符号化器(AENC)5と、オーディオES(エレメンタリ・ストリーム)バッファ(AES Buf)6と、多重化器(MUX)7と、多重ストリーム・バッファ(MUX Buf)8と、CPU(central processing unit)9を有している。
ビデオ符号化器3は、ビデオ信号をMPEG方式で符号化してビデオESを出力するものである。ビデオESバッファ4は、ビデオ符号化器3が出力するビデオESを格納するものである。オーディオ符号化器5は、オーディオ信号をMPEG方式で符号化してオーディオESを出力するものである。オーディオESバッファ6は、オーディオ符号化器5が出力するオーディオESを格納するものである。多重化器7は、ビデオESとオーディオESとを多重化して多重ストリームを生成するものである。多重ストリーム・バッファ8は、多重化器7が出力する多重ストリームを格納するものである。CPU9は各種制御を行うものである。
また、多重化器7は、ビデオ・ストリーム・バッファ(V Buf)10と、オーディオ・ストリーム・バッファ(A Buf)11と、スイッチ回路12を有している。ビデオ・ストリーム・バッファ10は、ビデオESバッファ4からDMA(direct memory access)転送されてくるビデオESを多重化のために格納するものである。オーディオ・ストリーム・バッファ11は、オーディオESバッファ6からDMA転送されてくるオーディオESを多重化のために格納するものである。スイッチ回路12は、多重化のタイミングを計って、システムレイヤを付加してビデオESとオーディオESとを多重化して多重ストリームを生成するものである。
また、CPU9は、ソフトウエアによりビデオ・ストリーム・バッファ(V Buf)容量監視部13およびオーディオ・ストリーム・バッファ(A Buf)容量監視部14として機能するようにされている。ビデオ・ストリーム・バッファ容量監視部13は、ビデオ・ストリーム・バッファ10におけるビデオESの占有量を監視するものである。オーディオ・ストリーム・バッファ容量監視部14は、オーディオ・ストリーム・バッファ11におけるオーディオESの占有量を監視するものである。
図14はビデオ符号化器3がビデオESを発生した場合の処理を示すフローチャートである。MPEG符号化装置1では、ビデオ符号化器3がビデオESを発生すると、ビデオ・ストリーム・バッファ10に空きがあるか否かが判断され(ステップN1−1)、空きがある場合には、ビデオESバッファ4からビデオ・ストリーム・バッファ10へのビデオESのDMA転送が実行される(ステップN1−2)。この結果、ビデオESバッファ4におけるビデオESの占有量は低下する。
図15はオーディオ符号化器5がオーディオESを発生した場合の処理を示すフローチャートである。MPEG符号化装置1では、オーディオ符号化器5がオーディオESを発生すると、オーディオ・ストリーム・バッファ11に空きがあるか否かが判断され(ステップN2−1)、空きがある場合には、オーディオESバッファ6からオーディオ・ストリーム・バッファ11へのオーディオESのDMA転送が実行される(ステップN2−2)。この結果、オーディオESバッファ6におけるオーディオESの占有量は低下する。
即ち、MPEG符号化装置1においては、ビデオ信号は、ビデオ符号化器3でビデオESに符号化されて、一旦、ビデオESバッファ4に格納され、ビデオ・ストリーム・バッファ10に空きがあると、ビデオESバッファ4からビデオ・ストリーム・バッファ10へのビデオESのDMA転送が実行される。
また、オーディオ信号は、オーディオ符号化器5でオーディオESに符号化されて、一旦、オーディオESバッファ6に格納され、オーディオ・ストリーム・バッファ11に空きがあると、オーディオESバッファ6からオーディオ・ストリーム・バッファ11へのオーディオESのDMA転送が実行される。
そして、ビデオ・ストリーム・バッファ10に格納されたビデオESと、オーディオ・ストリーム・バッファ11に格納されたオーディオESは、スイッチ回路12で多重化され、スイッチ回路12が出力する多重ストリームは、多重ストリーム・バッファ8に格納される。
ここで、例えば、後段システム2がLAN(local area network)のように速度が保障できないようなシステムであり、後段システム2のMPEG符号化装置1からの多重ストリームの取り出しの速度が変動して遅くなると、MPEG符号化装置1においては、ストリーム・バッファ4、6、8、10、11がオーバー・フローしてしまう場合がある。
これに対処する方法として、外部ホストがMPEG符号化装置1内のストリーム・バッファ4、6、8、10、11のオーバー・フローを検出し、MPEG符号化装置1による符号化を停止する方法や、MPEG符号化装置1が自らストリーム・バッファ4、6、8、10、11のオーバー・フローを検出し、符号化を自動的に停止する方法がある。
しかしながら、これらの方法だと、後段システム2のストリーム取り出し速度が回復したときは、MPEG符号化装置1による符号化が再開されることになるが、この場合、ストリームが別ストリームになってしまうという問題点がある。また、MPEG符号化装置1での符号化を再開するタイミングを決定するには、後段システム2がストリーム取り出し速度を回復したかどうかを検出しなければならないという問題点もある。
これらの問題点を解消するものとして、図16に示すような参考例のMPEG符号化装置15を考えることができる。MPEG符号化装置15は、MPEG符号化装置1を改良し、CPU9をソフトウエアによりビデオESバッファ(VES Buf)容量監視部16およびオーディオESバッファ(AES Buf)容量監視部17としても機能するようにしたものである。ビデオESバッファ容量監視部16は、ビデオESバッファ4におけるビデオESの占有量を監視するものである。オーディオESバッファ容量監視部17は、オーディオESバッファ6におけるオーディオESの占有量を監視するものである。
図17はMPEG符号化装置15においてビデオ符号化器3がビデオESを発生した場合の処理を示すフローチャートである。MPEG符号化装置15では、ビデオ符号化器3がビデオESを発生すると、ビデオ・ストリーム・バッファ10に空きがあるか否かが判断され(ステップN3−1)、空きがある場合には、ビデオESバッファ4からビデオ・ストリーム・バッファ10へのビデオESのDMA転送が実行される(ステップN3−2)。この結果、ビデオESバッファ4におけるビデオESの占有量が低下する。
これに対して、ステップN3−1において、ビデオ・ストリーム・バッファ10に空きがないと判断された場合には、ビデオESバッファ4におけるビデオESの占有量(図では、[VES Buf4]と記載している)が予め決定されている閾値S1よりも大きいか否かが判断され(ステップN3−3)、大きい場合には、ビデオESバッファ4からビデオ・ストリーム・バッファ10へのビデオESのDMA転送が実行され、ビデオ・ストリーム・バッファ10の上書きが行われる(ステップN3−4)。この結果、ビデオESバッファ4におけるビデオESの占有量が低下する。
図18はMPEG符号化装置15においてオーディオ符号化器5がオーディオESを発生した場合の処理を示すフローチャートである。MPEG符号化装置15では、オーディオ符号化器5がビデオESを発生すると、オーディオ・ストリーム・バッファ11に空きがあるか否かが判断され(ステップN4−1)、空きがある場合には、オーディオESバッファ6からオーディオ・ストリーム・バッファ11へのオーディオESのDMA転送が実行される(ステップN4−2)。この結果、オーディオESバッファ6におけるオーディオESの占有量が低下する。
これに対して、ステップN4−1において、オーディオ・ストリーム・バッファ11に空きがないと判断された場合には、オーディオESバッファ6におけるオーディオESの占有量(図では、[AES Buf6]と記載している)が予め決定されている閾値S2よりも大きいか否かが判断され(ステップN4−3)、大きい場合には、オーディオESバッファ6からオーディオ・ストリーム・バッファ11へのオーディオESのDMA転送が実行され、オーディオ・ストリーム・バッファ11の上書きが行われる(ステップN4−4)。この結果、オーディオESバッファ6におけるオーディオESの占有量が低下する。
このように、MPEG符号化装置15では、ビデオESバッファ4およびビデオ・ストリーム・バッファ10を監視し、ビデオ・ストリーム・バッファ10に空きがなくとも、ビデオESバッファ4におけるビデオESの占有量[VES Buf4]が閾値S1を越えたところで、ビデオESバッファ4からビデオ・ストリーム・バッファ10へのビデオESのDMA転送を実行し、ビデオ・ストリーム・バッファ10に上書きを行うとしている。
したがって、例えば、ビデオESのビットレートがオーディオESのビットレートよりも遥かに小さく、ビデオESバッファ4およびビデオ・ストリーム・バッファ10の容量を小さく設計した場合において、後段システム2のストリーム取り出し速度が変動して遅くなることにより多重化を行うことができなくなり、ビデオ・ストリーム・バッファ10に空きがなくなった場合においても、ビデオESバッファ4、ビデオ・ストリーム・バッファ10および多重ストリーム・バッファ8でのオーバー・フローを防ぐことができる。
また、MPEG符号化装置15では、オーディオESバッファ6およびオーディオ・ストリーム・バッファ11を監視し、オーディオ・ストリーム・バッファ11に空きがなくとも、オーディオESバッファ6におけるオーディオESの占有量[AES Buf6]が閾値S2を越えたところで、オーディオESバッファ6からオーディオ・ストリーム・バッファ11へのオーディオESのDMA転送を行い、オーディオ・ストリーム・バッファ11に上書きを行うとしている。
したがって、例えば、ビデオESのビットレートがオーディオESのビットレートよりも遥かに大きく、オーディオESバッファ6およびオーディオ・ストリーム・バッファ11の容量を小さく設計した場合において、後段システム2のストリーム取り出し速度が変動して遅くなることにより多重化を行うことができなくなり、オーディオ・ストリーム・バッファ11に空きがなくなった場合においても、オーディオESバッファ6、オーディオ・ストリーム・バッファ11および多重ストリーム・バッファ8でのオーバー・フローを防ぐことができる。
特開2003−46949号公報
特開2001−352521号公報
図19および図20はMPEG符号化装置15が有する問題点を説明するための図であり、多重化器7におけるオーディオES多重化タイミングおよびビデオES多重化タイミングをSTC(System Time Clock)を時間軸として示している。図19中、「次」は次の多重化タイミングを示し、「その次」は「次」の次の多重化タイミングを示している。
近年、ビデオの高画質化により、MPEG映像としてHD(High Definition)映像を扱うようになり、それに伴って、ビデオESのビットレートが高くなっているが、HD映像をMPEG画像として扱う場合、ビデオESおよびオーディオESの多重化順序は、同一時刻のPTS(Presentation Time Stamp)をもつフレームでは、図19(A)に示すように、ビデオESの方が先になる。これは、「GOP(Group of Pictures)がIPB各ピクチャを含む場合は、リオーダディレイを考慮する」、「VBV_delayを考慮する」、「そもそもビデオESのビットレートがオーディオESに比べかなり大きい」という理由による。
また、オーディオ信号の符号化では、ビデオ信号の符号化の場合のようにリオーダディレイがなく、オーディオ信号の符号化処理はシンプルなため、オーディオESの生成には、ビデオESの生成よりも時間がかからず、生成されたオーディオESがオーディオESバッファ6に送られる時刻は早い。この結果、オーディオESは、生成が早いが、多重化タイミングは遅いということになる。なお、オーディオESのビットレートは低いため、オーディオESバッファ6のサイズは小さくされる。
ところで、HD映像のようなデータ量の大きなビデオESを多重化すると、実時間上、ビデオESの多重化処理に時間がかかり、STCは、なかなか進まない状態になり、図19(A)に示すように、オーディオESはM期間多重化を待たされることになる。この場合、オーディオESは実時間上均一に出力され続けるため、オーディオESバッファ6におけるオーディオESの占有量[AES Buf6]が上昇していくことになる。
そして、オーディオESバッファ6におけるオーディオESの占有量[AES Buf6]が閾値S2を越えると、オーディオESバッファ6からオーディオ・ストリーム・バッファ11へのオーディオESのDMA転送が実行され、オーディオ・ストリーム・バッファ11の上書きにより、オーディオ・ストリーム・バッファ11上でオーディオESの一部が消滅し、図19(B)に示すように、予定されていた「次」のオーディオES多重化タイミングは消滅し、「その次」のオーディオES多重化タイミングが「次」のオーディオES多重化タイミングとなることにより、オーディオESの次の多重化タイミングは、未来方向へ進む。
このように、オーディオESバッファ6からオーディオ・ストリーム・バッファ11へのオーディオESのDMA転送が実行されると、一旦は、オーディオESバッファ6におけるオーディオESの占有量[AES Buf6]は低下するが、次のオーディオES多重化タイミングまでに、多重化すべきビデオESは、図19(B)に示すN期間の部分だけ、新たに増えることになる。
このようにして新たに増えたN期間のビデオESを多重化処理していると、実時間上の時間がかかるため、オーディオESバッファ6におけるオーディオESの占有量[AES Buf6]は、再び増加することになる。そして、オーディオESバッファ6におけるオーディオESの占有量[AES Buf6]が閾値S2を越えると、再び、オーディオESバッファ6からオーディオ・ストリーム・バッファ11へのオーディオESのDMA転送が実行され,オーディオESの次の多重化タイミングは、再び、未来方向へ進むことになる。
このような処理が繰り返されると、オーディオESの次の多重化タイミングにいつまでもSTCが追いつけなくなり、オーディオESを多重化することができなくなり、多重ストリーム・バッファ8から出力される最終的なストリームは、ビデオのみでオーディオのないストリームになってしまうという問題点がある。
また、近年、携帯電話の普及により、伝送レートが非常に低い伝送路においてもビデオデータを伝送したいという要求が高まっているが、携帯電話では、画面サイズが小さいため、ビデオ品質として、それほど高いものが求められていないため、MPEGストリームで伝送する場合には、ビデオESのビットレートは低くて良く、また、リソース節約のため、ビデオESバッファ4およびビデオ・ストリーム・バッファ10は、できるだけ小さくする必要がある。そこで、ビデオESを生成するのに、フレームレートを落とすなど、データ量を極端に小さくし、オーディオにリニアPCMなどの高レートのものを使うと、多重化タイミングは、これまで説明したものと逆に、オーディオの方が頻繁になる。
即ち、携帯電話において、ビデオESを生成するのに、フレームレートを落とすなど、データ量を極端に小さくし、オーディオにリニアPCMなどの高レートのものを使うと、実時間上、オーディオESの多重化処理に時間がかかり、STCは、なかなか進まない状態になり、図20(A)に示すように、ビデオESは、MM期間多重化を待たされることになる。この場合、ビデオESは出力され続けるため、ビデオESバッファ4におけるビデオESの占有量[VES Buf4]が上昇していくことになる。
そして、ビデオESバッファ4におけるビデオESの占有量[VES Buf4]が閾値S1を越えると、ビデオESバッファ4からビデオ・ストリーム・バッファ10へのビデオESのDMA転送が実行され、ビデオ・ストリーム・バッファ10の上書きにより、ビデオ・ストリーム・バッファ10上でビデオESの一部が消滅し、図20(B)に示すように、予定されていた「次」のビデオES多重化タイミングは消滅し、「その次」のビデオES多重化タイミングが「次」のビデオES多重化タイミングになることにより、ビデオESの次の多重化タイミングは、未来方向へ進む。
このように、ビデオESバッファ4からビデオ・ストリーム・バッファ10へのビデオESのDMA転送が実行されると、一旦は、ビデオESバッファ4におけるビデオESの占有量[VES Buf4]は低下するが、次のビデオES多重化タイミングまでに多重化すべきオーディオESは、図20(B)に示すNN期間の部分だけ、新たに増えることになる。
このようにして新たに増えたNN期間のオーディオESを多重化処理していると、実時間上の時間がかかるため、ビデオESバッファ4におけるビデオESの占有量[VES Buf4]は,再び増加することになる。そして、ビデオESバッファ4におけるビデオESの占有量[VES Buf4]が閾値S1を越えると、再び、ビデオESバッファ4からビデオ・ストリーム・バッファ10へのビデオESのDMA転送が実行され,ビデオESの次の多重化タイミングは、再び、未来方向へ進むことになる。
このような処理が繰り返されると、ビデオESの次の多重化タイミングにいつまでもSTCが追いつけなくなり、ビデオESを多重化することができなくなり、多重ストリーム・バッファ8から出力される最終的なストリームは、オーディオのみでビデオのないストリームとなってしまうという問題点がある。
本発明は、かかる点に鑑み、ビデオESとオーディオESのビットレートが大きく異なる場合であっても、オーディオの無いストリームやビデオの無いストリームを生成することはなく、ビデオESとオーディオESの同期が取れた多重ストリームを生成することができるようにしたMPEG符号化装置を提供することを目的とする。
本発明は、ビデオ符号化器が出力するビデオ・ストリームを格納する第1のバッファと、オーディオ符号化器が出力するオーディオ・ストリームを格納する第2のバッファと、第1のバッファに格納されたビデオ・ストリームが転送される第3のバッファと、第2のバッファに格納されたオーディオ・ストリームが転送される第4のバッファと、第3のバッファに格納されたビデオ・ストリームと第4のバッファに格納されたオーディオ・ストリームとを多重化した多重ストリームを格納する第5のバッファを有するMPEG符号化装置において、一方の状態にある場合において、第1のバッファにおけるビデオ・ストリームの占有量が第1の閾値を越えた場合には他方の状態に遷移し、他方の状態にある場合において、第1のバッファにおけるビデオ・ストリームの占有量が第1の閾値より小さい第2の閾値未満となった場合には一方の状態に遷移する第1のステート・マシンと、一方の状態にある場合において、第2のバッファにおけるオーディオ・ストリームの占有量が第3の閾値を越えた場合には他方の状態に遷移し、他方の状態にある場合において、第2のバッファにおけるオーディオ・ストリームの占有量が第3の閾値より小さい第4の閾値未満となった場合には一方の状態に遷移する第2のステート・マシンを有するというものである。
本発明によれば、第1のステート・マシンは、一方の状態にある場合において、第1のバッファにおけるビデオ・ストリームの占有量が第1の閾値を越えた場合には他方の状態に遷移し、他方の状態にある場合において、第1のバッファにおけるビデオ・ストリームの占有量が第1の閾値より小さい第2の閾値未満となった場合には一方の状態に遷移する。また、第2のステート・マシンは、一方の状態にある場合において、第2のバッファにおけるオーディオ・ストリームの占有量が第3の閾値を越えた場合には他方の状態に遷移し、他方の状態にある場合において、第2のバッファにおけるオーディオ・ストリームの占有量が第3の閾値より小さい第4の閾値未満となった場合には一方の状態に遷移する。そこで、第1、第2のステート・マシンの状態に基づいて一定の処理を行うことにより、ビデオ・ストリームとオーディオ・ストリームのビットレートが大きく異なる場合であっても、オーディオの無いストリームやビデオの無いストリームを生成することなく、ビデオ・ストリームとオーディオ・ストリームの同期が取れた多重ストリームを生成することができる。
図1は本発明の一実施形態のMPEG符号化装置を後段システムと共に示す図である。図1中、21は本発明の一実施形態のMPEG符号化装置、22は後段システムである。本発明の一実施形態のMPEG符号化装置21は、LSIで構成されるものであり、ビデオ信号とオーディオ信号を入力し、これらビデオ信号とオーディオ信号を符号化、多重化してMPEG規格の多重ストリームを生成、保持するものである。後段システム22は、MPEG符号化装置21にリクエスト信号REQを与えて、MPEG符号化装置21が生成して保持する多重ストリームを取り出して記憶、再生するものである。
本発明の一実施形態のMPEG符号化装置21は、ビデオ符号化器(VENC)23と、ビデオESバッファ(VES Buf)24と、オーディオ符号化器(AENC)25と、オーディオESバッファ(AES Buf)26と、多重化器(MUX)27と、多重ストリーム・バッファ(MUX Buf)28と、CPU29と、ソフトウエア格納部30を有している。
ビデオ符号化器23は、ビデオ信号をMPEG方式で符号化してビデオESを出力するものである。ビデオESバッファ24は、ビデオ符号化器23が出力するビデオESを格納するものである。オーディオ符号化器25は、オーディオ信号をMPEG方式で符号化してオーディオESを出力するものである。オーディオESバッファ26は、オーディオ符号化器25が出力するオーディオESを格納するものである。
多重化器27は、ビデオESとオーディオESを多重化した多重ストリームを生成するものである。多重ストリーム・バッファ28は、多重化器27が出力する多重ストリームを格納するものである。CPU29は、各種制御を行うものである。ソフトウエア格納部30は、CPU29に必要なソフトウエアを格納するものである。
また、多重化器27は、ビデオ・ストリーム・バッファ31と、オーディオ・ストリーム・バッファ32と、スイッチ回路33を有している。ビデオ・ストリーム・バッファ31は、ビデオESバッファ24からDMA転送されてくるビデオESを多重化のために格納するものである。オーディオ・ストリーム・バッファ32は、オーディオESバッファ26からDMA転送されてくるオーディオESを多重化のために格納するものである。スイッチ回路33は、多重化のタイミングを計って、システムレイヤを付加してビデオESとオーディオESとを多重化して多重ストリームを生成するものである。
また、CPU29は、ソフトウエア格納部30に格納されているソフトウエアによりビデオESバッファ(VES Buf)容量監視部34、オーディオESバッファ(AES Buf)容量監視部35、ビデオ・ストリーム・バッファ(V Buf)容量監視部36およびオーディオ・ストリーム・バッファ(A Buf)容量監視部37として機能するように構成されている。
ビデオESバッファ容量監視部34は、ビデオESバッファ24におけるビデオESの占有量を監視するものである。オーディオESバッファ容量監視部35は、オーディオESバッファ26におけるオーディオESの占有量を監視するものである。ビデオ・ストリーム・バッファ容量監視部36は、ビデオ・ストリーム・バッファ31におけるビデオESの占有量を監視するものである。オーディオ・ストリーム・バッファ容量監視部37は、オーディオ・ストリーム・バッファ32におけるオーディオESの占有量を監視するものである。
また、ソフトウエア格納部30は、ビデオESバッファ(VES Buf)容量監視プログラム38、オーディオESバッファ(AES Buf)容量監視プログラム39、ビデオ・ストリーム・バッファ(V Buf)容量監視プログラム40、オーディオ・ストリーム・バッファ(A Buf)容量監視プログラム41、ビデオESバッファ(VES Buf)ステート・マシン42およびオーディオESバッファ(AES Buf)ステート・マシン43などを格納している。
ビデオESバッファ容量監視プログラム38は、CPU29をビデオESバッファ容量監視部34として機能させるものである。オーディオESバッファ容量監視プログラム39は、CPU29をオーディオESバッファ容量監視部35として機能させるものである。ビデオ・ストリーム・バッファ容量監視プログラム40は、CPU29をビデオ・ストリーム・バッファ容量監視部36として機能させるものである。オーディオ・ストリーム・バッファ容量監視プログラム41は、CPU29をオーディオ・ストリーム・バッファ容量監視部37として機能させるものである。
ビデオESバッファ・ステート・マシン42は、状態としてNormalとAlmost Overのいずれかを取るものであり、ビデオESバッファ24におけるビデオESの占有量の所定の変化に対応して、CPU29によりNormal又はAlmost Overのいずれかの状態に遷移させられるものである。
オーディオESバッファ・ステート・マシン43は、状態としてNormalとAlmost Overのいずれかを取るものであり、オーディオESバッファ26におけるオーディオESの占有量の所定の変化に対応して、CPU29によりNormal又はAlmost Overのいずれかの状態に遷移させられるものである。
図2はビデオESバッファ24に設定される閾値を示す図である。本発明の一実施形態のMPEG符号化装置21においては、ビデオESバッファ・ステート・マシン42の状態変化の基準となるビデオESバッファ24におけるビデオESの占有量が閾値として設定される。本例では、ビデオESバッファ24に対して閾値S1と閾値S1_low(<S1)が設定される。
図3はビデオESバッファ・ステート・マシン42の状態変化を示す図である。ビデオESバッファ・ステート・マシン42は、Almost Overの状態にある場合において、ビデオESバッファ24におけるビデオESの占有量(図では、[VES Buf24]と記載している)が閾値S1_low未満になると、CPU29により状態をNormalとされ、この状態において、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]が閾値S1を越えると、CPU29により状態をAlmost Overとされる。
図4はオーディオESバッファ26に設定される閾値を示す図である。本発明の一実施形態のMPEG符号化装置21においては、オーディオESバッファ・ステート・マシン43の状態変化の基準となるオーディオESバッファ26におけるオーディオESの占有量が閾値として設定される。本例では、オーディオESバッファ26に対して、閾値S2と閾値S2_low(<S2)が設定される。
図5はオーディオESバッファ・ステート・マシン43の状態変化を示す図である。オーディオESバッファ・ステート・マシン43は、Almost Overの状態にある場合において、オーディオESバッファ26におけるオーディオESの占有量(図では、[AES Buf26]と記載している)が閾値S2_low未満になると、CPU29により状態をNormalとされ、この状態において、オーディオESバッファ26におけるオーディオESの占有量[AES Buf26]が閾値S2を越えると、CPU29により状態をAlmost Overとされる。
図6および図7はビデオ符号化器23がビデオESを発生した場合の処理を分図して示すフローチャートである。即ち、本発明の一実施形態のMPEG符号化装置21では、ビデオ符号器23がビデオESを発生すると、CPU29によりビデオESバッファ・ステート・マシン42の状態がNormalであるか否かが判断され(ステップP1)、Normalである場合には、CPU29によりビデオ・ストリーム・バッファ31に空きがあるか否かが判断され(ステップP2)、空きがある場合には、ビデオESバッファ24からビデオ・ストリーム・バッファ31へのビデオESのDMA転送が実行される(ステップP3)。この結果、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]は低下する。
これに対して、ステップP2において、ビデオ・ストリーム・バッファ31に空きがないと判断された場合には、CPU29によりビデオESバッファ24におけるビデオESの占有量[VES Buf24]が閾値S1を越えているか否かが判断され(ステップP4)、越えている場合には、CPU29によりビデオESバッファ・ステート・マシン42の状態がAlmost Overにされ(ステップP5)、ビデオESバッファ24からビデオ・ストリーム・バッファ31へのビデオESのDMA転送が実行され、ビデオ・ストリーム・バッファ31が上書きされる(ステップP6)。この結果、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]は低下し、かつ、次のビデオES多重化タイミングが先へ移動する。
また、ステップP1において、ビデオESバッファ・ステート・マシン42の状態がNormalでなく、Almost Overの状態と判断された場合には、CPU29によりビデオESバッファ24におけるビデオESの占有量[VES Buf24]が閾値S1未満であるか否かが判断され(ステップP7)、閾値S1未満である場合には、次のビデオESがピクチャ先頭であるか否かが判断され(ステップP8)、ピクチャ先頭である場合には、CPU29によりビデオ・ストリーム・バッファ31に空きがあるか否かが判断され(ステップP9)、空きがある場合には、CPU29によりビデオESバッファ・ステート・マシン42の状態がNormalにされる(ステップP10)。
これに対して、ステップP8において、次のビデオESがピクチャ先頭でないと判断された場合には、CPU29によりビデオESバッファ24におけるビデオESの占有量[VES Buf24]が閾値S1_low未満であるか否かが判断され(ステップP11)、閾値S1_low未満である場合には、CPU29によりビデオESバッファ・ステート・マシン42の状態がNormalにされる(ステップP12)。
また、ステップP11において、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]が閾値S1_low未満でないと判断された場合には、ビデオESバッファ24からビデオ・ストリーム・バッファ31へのビデオESのDMA転送が実行され、ビデオ・ストリーム・バッファ31が上書きされる(ステップP13)。この結果、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]は低下し、かつ、次のビデオES多重化タイミングが先へ移動する。
また、ステップP7において、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]が閾値S1未満でないと判断された場合には、ビデオESバッファ24からビデオ・ストリーム・バッファ31へのビデオESのDMA転送が実行され、ビデオ・ストリーム・バッファ31が上書きされる(ステップP13)。この結果、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]は低下し、かつ、次のビデオES多重化タイミングが先へ移動する。
図8および図9はオーディオ符号化器25がオーディオESを発生した場合の処理を分図して示すフローチャートである。即ち、本発明の一実施形態のMPEG符号化装置21においては、オーディオ符号化器25がオーディオESを発生すると、CPU29により、オーディオESバッファ・ステート・マシン43の状態がNormalであるか否かが判断され(ステップQ1)、Normalである場合には、CPU29によりオーディオ・ストリーム・バッファ32に空きがあるか否かが判断され(ステップQ2)、空きがある場合には、オーディオESバッファ26からオーディオ・ストリーム・バッファ32へのオーディオESのDMA転送が実行される(ステップQ3)。この結果、オーディオESバッファ26におけるオーディオESの占有量[AES Buf26]は低下する。
これに対して、ステップQ2において、オーディオ・ストリーム・バッファ32に空きがないと判断された場合には、CPU29によりオーディオESバッファ26におけるオーディオESの占有量[AES Buf26]が閾値S2を越えているか否かが判断され(ステップQ4)、閾値S2を越えている場合には、CPU29によりオーディオESバッファ・ステート・マシン43の状態がAlmost Overにされ(ステップQ5)、オーディオESバッファ26からオーディオ・ストリーム・バッファ32へのオーディオESのDMA転送が実行され、オーディオ・ストリーム・バッファ32が上書きされる(ステップQ6)。この結果、オーディオESバッファ26におけるオーディオESの占有量[AES Buf26]は低下し、かつ、次のオーディオES多重化タイミングが先へ移動する。
また、ステップQ1において、オーディオESバッファ・ステート・マシン43の状態がNormalでなく、Almost Overであると判断された場合には、CPU29によりオーディオESバッファ26におけるオーディオESの占有量[AES Buf26]が閾値S2_low未満であるか否かが判断され(ステップQ7)、閾値S2_low未満である場合には、CPU29によりオーディオESバッファ・ステート・マシン43の状態がNormalにされる(ステップQ8)。
これに対して、ステップQ7において、オーディオESバッファ26におけるオーディオESの占有量が閾値S2_low未満でないと判断された場合には、オーディオESバッファ26からオーディオ・ストリーム・バッファ32へのオーディオESのDMA転送が実行され、オーディオ・ストリーム・バッファ32が上書きされる(ステップQ9)。この結果、オーディオESバッファ26におけるオーディオESの占有量[AES Buf26]は低下し、かつ、次のオーディオES多重化タイミングが先へ移動する。
図10は多重化器27でのビデオ・ストリーム・バッファ31およびオーディオ・ストリーム・バッファ32の調整方法を示すフローチャート、図11および図12は多重化器27でのビデオ・ストリーム・バッファ31およびオーディオ・ストリーム・バッファ32の調整方法を説明するための図である。
図11および図12は多重化器27でのオーディオES多重化タイミングおよびビデオES多重化タイミングをSTCを時間軸として示しており、図11はビデオESのビットレートがオーディオESのビットレートより遥かに大きく、オーディオESバッファ26およびオーディオ・ストリーム・バッファ32の容量を小さく設計した場合、図12はビデオESのビットレートがオーディオESのビットレートよりも遥かに小さく、ビデオESバッファ24およびビデオ・ストリーム・バッファ31の容量を小さく設計した場合である。図11および図12において、「次」は次の多重化タイミングを示し、「その次」は「次」の次の多重化タイミングを示している。
ここで、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]が閾値S1を越えることなく、ビデオ符号化器23におけるビデオ符号化が進むと共に、オーディオESバッファ26におけるオーディオESの占有量[AES Buf26]が閾値S2を越えることなく、オーディオ符号化器25におけるオーディオ符号化が進む場合には、図11に示すN期間の先頭STCおよび図12に示すNN期間の先頭STCは、それぞれ0にセットされている。これは、N期間の先頭STC<現在STC、および、NN期間の先頭STC<現在STCとすることで、次のビデオES多重化タイミングおよび次のオーディオ多重化タイミングが先へ移動していないことを示す。
ところが、図8に示すステップQ6又は図9に示すステップQ9でオーディオESバッファ26からオーディオ・ストリーム・バッファ32へのオーディオESのDMA転送が実行された場合、次のオーディオES多重化タイミングが先へ移動することになる。図11に示す場合、次のオーディオES多重化タイミングは、N期間先へ移動することになる。この場合には、N期間先頭STCがセットされ、N期間先頭STC>現在STCという状態となる。
また、図6に示すステップP6又は図7に示すステップP13でビデオESバッファ24からビデオ・ストリーム・バッファ31へのビデオESのDMA転送が実行された場合、次のビデオES多重化タイミングが先へ移動することになる。図12に示す場合、次のビデオES多重化タイミングは、NN期間先へ移動することになる。この場合には、NN期間先頭STCがセットされ、NN期間先頭STC>現在STCという状態となる。
そこで、多重化器27では、N期間先頭STC>現在STCであるか否かが判断される(ステップW1)。そして、N期間先頭STC>現在STCである場合には、ビデオ・ストリーム・バッファ31のポインタを進めて、図11に示すように、ビデオ・ストリーム・バッファ31内で、現在STCからN期間先頭STCまでのM期間分のビデオESを破棄する(ステップW2)。
これによって、STCは、一気に、N期間の先頭のビデオESの多重化タイミングまで進むことになり、STCが次のオーディオの多重化タイミングに追いつけないという事態は発生しない。即ち、ビデオESのビットレートがオーディオESのビットレートよりも遥かに大きく、オーディオESバッファ26およびオーディオ・ストリーム・バッファ32の容量を小さく設計した場合において、オーディオESバッファ26からオーディオ・ストリーム・バッファ32へのオーディオESのDMA転送が実行され、オーディオ・ストリーム・バッファ32が上書きされた場合においても、ビデオとオーディオの同期が維持される。
また、多重化器27では、NN期間先頭STC>現在STCであるか否かが判断される(ステップW3)。そして、NN期間先頭STC>現在STCである場合には、オーディオ・ストリーム・バッファ32のポインタを進めて、図12に示すように、オーディオ・ストリーム・バッファ32内で、現在STCからNN期間先頭STCまでのMM期間分のオーディオESを破棄する(ステップW4)。
これによって、STCは、一気に、NN期間の先頭のオーディオESの多重化タイミングまで進むことになり、STCが次のビデオESの多重化タイミングに追いつけないという事態は発生しない。即ち、ビデオESのビットレートがオーディオESのビットレートより遥かに小さく、ビデオESバッファ24およびビデオ・ストリーム・バッファ31の容量を小さく設計した場合において、ビデオESバッファ24からビデオ・ストリーム・バッファ31へのビデオESのDMA転送が実行され、ビデオ・ストリーム・バッファ31が上書きされた場合においても、ビデオとオーディオの同期が維持される。
ここで、本発明の一実施形態のMPEG符号化装置21においてビデオ符号化器23がビデオESを発生した場合の処理を整理すると、以下のようになる。(1)ビデオESバッファ・ステート・マシン42の状態がNormalで(ステップP1でYESの場合)、ビデオ・ストリーム・バッファ31に空きがある場合(ステップP2でYESの場合)には、ビデオESバッファ24からビデオ・ストリーム・バッファ31へのビデオESのDMA転送が実行される(ステップP3)。この結果、ビデオESバッファ24におけるビデオESの占有量は低下する。
(2)ビデオESバッファ・ステート・マシン42の状態がNormalで(ステップP1でYESの場合)、ビデオ・ストリーム・バッファ31に空きがなく(ステップP2でNOの場合)、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]が閾値S1を越えている場合(ステップP4でYESの場合)には、ビデオESバッファ・ステート・マシン42の状態がAlmost Overにされ(ステップP5)、ビデオESバッファ24からビデオ・ストリーム・バッファ31へのビデオESのDMA転送が実行され、ビデオ・ストリーム・バッファ31が上書きされる(ステップP6)。
この結果、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]は低下し、かつ、次のビデオES多重化タイミングが先へ移動する。この場合は、次のビデオES多重化タイミングまでに新たに増えた期間(図12に示すNN期間)の先頭までのオーディオESが破棄され(ステップW4)、ビデオとオーディオの同期が維持される。
(3)ビデオESバッファ・ステート・マシン42の状態がNormalでなく(ステップP1でNOの場合)、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]が閾値S1未満であり(ステップP7でYESの場合)、次のビデオESがピクチャ先頭であり(ステップP8でYESの場合)、ビデオ・ストリーム・バッファ31に空きがある場合(ステップP9でYESの場合)には、ビデオESバッファ・ステート・マシン42の状態はNormalにされる(ステップP10)。この結果、ピクチャ先頭からのデータが消滅する確率を減らすことができ、これにより、デコード時、再生画像の乱れを防ぐ確率を上げることができる。
なお、ピクチャ先頭の場合に、ビデオESバッファ24におけるビデオESの占有量を閾値S1_low未満とする処理を行わず、ビデオESバッファ・ステート・マシン42の状態をNormalにできる理由は、ピクチャ先頭(ピクチャヘッダ等)は、データの生成間隔が1ピクチャ分あるので、どのような映像をいれようとも、ストリームとしてピクチャ先頭ばかり連続ということはないからであり、また、万が一、ピクチャ先頭ばかりが連続するとしても、それは、ビデオES自体のデータ量が極端に小さい場合なので、ビデオESバッファ24がオーバー・フローするようなことは起こりえないからである。
(4)ビデオESバッファ・ステート・マシン42の状態がNormalでなく(ステップP1でNOの場合)、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]が閾値S1未満で(ステップP7でYESの場合)、次のビデオESがピクチャ先頭でなく(ステップP8でNOの場合)、ビデオESバッファ24におけるビデオESの占有量が閾値S1_low未満である場合(ステップP11でYESの場合)には、ビデオESバッファ・ステート・マシン42の状態はNormalにされる(ステップP12)。
(5)ビデオESバッファ・ステート・マシン42の状態がNormalでなく(ステップP1でNOの場合)、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]が閾値S1未満で(ステップP7でYESの場合)、次のビデオESがピクチャ先頭でなく(ステップP8でNOの場合)、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]が閾値S1_low未満でない場合(ステップP11でNOの場合)には、ビデオESバッファ24からビデオ・ストリーム・バッファ31へのビデオESのDMA転送が実行され、ビデオ・ストリーム・バッファ31が上書きされる(ステップP13)。
この結果、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]は低下し、かつ、次のビデオES多重化タイミングが先へ移動する。この場合は、次のビデオES多重化タイミングまでに新たに増えた期間(図12に示すNN期間)の先頭までのオーディオESが破棄され(ステップW4)、ビデオとオーディオの同期が維持される。
(6)ビデオESバッファ・ステート・マシン42の状態がNormalでなく(ステップP1でNOの場合)、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]が閾値S1未満でない場合(ステップP7でNOの場合)には、ビデオESバッファ24からビデオ・ストリーム・バッファ31へのビデオESのDMA転送が実行され、ビデオ・ストリーム・バッファ31が上書きされる(ステップP13)。
この結果、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]は低下し、かつ、次のビデオES多重化タイミングが先へ移動する。この場合は、次のビデオES多重化タイミングまでに新たに増えた期間(図12に示すNN期間)の先頭までのオーディオESが破棄され(ステップW4)、ビデオとオーディオの同期が維持される。
なお、ビデオESバッファ24からビデオ・ストリーム・バッファ31へのDMA転送のキックタイミングの判断機会は、以下の3つである。(A1)ビデオ符号化器23でビデオESが生成され、ビデオESバッファ24に新たにビデオESが入ったとき。(A2)ビデオESバッファ24からビデオ・ストリーム・バッファ31へのDMA転送が完了したとき。(A3)ビデオESの多重化によりビデオ・ストリーム・バッファ31におけるビデオESの占有量が減ったとき。
これら3つのケースのうち、ビデオESバッファ24がオーバー・フローする可能性があるのは、(A1)のケースだけである。そこで、本発明の一実施形態のMPEG符号化装置21では、(A1)のケースに対して、図6および図7に示すように処理を進めることで、ビデオESバッファ24でオーバー・フローが起こらないようにしている。
また、本発明の一実施形態のMPEG符号化装置21においてオーディオ符号化器25がオーディオESを発生した場合の処理を整理すると、以下のようになる。(7)オーディオESバッファ・ステート・マシン43の状態がNormalであり(ステップQ1でYESの場合)、オーディオ・ストリーム・バッファ32に空きがある場合(ステップQ2でYESの場合)には、オーディオESバッファ26からオーディオ・ストリーム・バッファ32へのオーディオESのDMA転送が実行される(ステップQ3)。この結果、オーディオESバッファ26におけるオーディオESの占有量は低下する。
(8)オーディオESバッファ・ステート・マシン43の状態がNormalであり(ステップQ1でYESの場合)、オーディオ・ストリーム・バッファ32に空きがなく(ステップQ2でNOの場合)、オーディオESバッファ26におけるオーディオESの占有量[AES Buf26]が閾値S2を越えている場合(ステップQ4でYES場合)には、オーディオESバッファ・ステート・マシン43の状態がAlmost Overにされ(ステップQ5)、オーディオESバッファ26からオーディオ・ストリーム・バッファ32へのオーディオESのDMA転送が実行され、オーディオ・ストリーム・バッファ32が上書きされる(ステップQ6)。
この結果、オーディオESバッファ26におけるオーディオESの占有量[AES Buf26]は低下し、かつ、次のオーディオES多重化タイミングが先へ移動する。この場合は、次のオーディオES多重化タイミングまでに新たに増えた期間(図11に示すN期間)の先頭までのビデオESが破棄され(ステップW2)、ビデオとオーディオの同期が維持される。
(9)オーディオESバッファ・ステート・マシン43の状態がNormalでなく(ステップQ1でNOの場合)、オーディオESバッファ26におけるオーディオESの占有量[AES Buf26]が閾値S2_low未満である場合(ステップQ7でYESの場合)には、オーディオESバッファ・ステート・マシン43の状態がNormalにされる(ステップQ8)。
(10)オーディオESバッファ・ステート・マシン43の状態がNormalでなく(ステップQ1でNOの場合)、オーディオESバッファ26におけるオーディオESの占有量[AES Buf26]が閾値S2_low未満でない場合(ステップQ7でNOの場合)には、オーディオESバッファ26からオーディオ・ストリーム・バッファ32へのオーディオESのDMA転送が実行され、、オーディオ・ストリーム・バッファ32が上書きされる(ステップQ9)。
この結果、オーディオESバッファ26におけるオーディオESの占有量[AES Buf26]は低下し、かつ、次のオーディオES多重化タイミングが先へ移動する。この場合は、次のオーディオES多重化タイミングまでに新たに増えた期間(図11に示すN期間)の先頭までのビデオESが破棄され(ステップW2)、ビデオとオーディオの同期が維持される。
なお、オーディオESバッファ26からオーディオ・ストリーム・バッファ32へのDMA転送のキックタイミングの判断機会は、以下の3つである。(B1)オーディオ符号化器25でオーディオESが生成され、オーディオESバッファ26に新たにオーディオESが入ったとき。(B2)オーディオESバッファ26からオーディオ・ストリーム・バッファ32へのDMA転送が完了したとき。(B3)オーディオESの多重化によりオーディオ・ストリーム・バッファ32におけるオーディオESの占有量が減ったとき。
これら3つのケースのうち、オーディオESバッファ26がオーバー・フローする可能性があるのは、(B1)のケースだけである。そこで、本発明の一実施形態のMPEG符号化装置21では、(B1)のケースに対して、図8および図9に示すように処理を進めることで、オーディオESバッファ26でオーバー・フローが起こらないようにしている。
以上のように、本発明の一実施形態のMPEG符号化装置21においては、ビデオESバッファ24がオーバー・フローを起こさないように、ビデオESバッファ24からビデオ・ストリーム・バッファ31へのビデオESのDMA転送を実行するとしている。また、オーディオESバッファ26がオーバー・フローを起こさないように、オーディオESバッファ26からオーディオ・ストリーム・バッファ32へのオーディオESのDMA転送を実行するとしている。
そして、ビデオESのビットレートがオーディオESのビットレートより遥かに大きい場合には、ビデオESの多重化に時間がかかり、オーディオESバッファ26からオーディオ・ストリーム・バッファ32へのオーディオESのDMA転送が実行される場合が発生するが、この場合には、次のオーディオES多重化タイミングまでに新たに増えた期間の先頭までのビデオESを破棄するとし、ビデオとオーディオの同期が維持されるようにしている。
逆に、ビデオESのビットレートがオーディオESのビットレートより遥かに小さい場合には、オーディオESの多重化に時間がかかり、ビデオESバッファ24からビデオ・ストリーム・バッファ31へのビデオESのDMA転送が実行される場合が発生するが、この場合には、次のビデオES多重化タイミングまでに新たに増えた期間の先頭までのオーディオESを破棄するとし、ビデオとオーディオの同期が維持されるようにしている。
したがって、本発明の一実施形態のMPEG符号化装置21によれば、ビデオESとオーディオESのビットレートが大きく異なる場合であっても、オーディオの無いストリームやビデオの無いストリームを生成することなく、ビデオとオーディオの同期が取れた多重ストリームを生成することができる。
また、ビデオESバッファ・ステート・マシン42の状態がNormalでなく、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]が閾値S1未満である場合において、ビデオ符号化器23が発生したビデオESがピクチャ先頭の場合には、ビデオESバッファ24におけるビデオESの占有量[VES Buf24]を閾値S1_low未満とする処理を行わず、ビデオESバッファ・ステート・マシン42の状態をNormalにするようにしているので、ピクチャ先頭からのデータが消滅する確率を減らすことができ、これにより、デコード時、再生画像の乱れを防ぐ確率を上げることができる。
ここで、本発明のMPEG符号化装置を整理すると、本発明のMPEG符号化装置には、少なくとも、以下のMPEG符号化装置が含まれる。
(付記1)ビデオ符号化器が出力するビデオ・ストリームを格納する第1のバッファと、オーディオ符号化器が出力するオーディオ・ストリームを格納する第2のバッファと、前記第1のバッファに格納されたビデオ・ストリームが転送される第3のバッファと、前記第2のバッファに格納されたオーディオ・ストリームが転送される第4のバッファと、前記第3のバッファに格納されたビデオ・ストリームと前記第4のバッファに格納されたオーディオ・ストリームとを多重化した多重ストリームが格納される第5のバッファを有するMPEG符号化装置において、一方の状態にある場合において、前記第1のバッファにおけるビデオ・ストリームの占有量が第1の閾値を越えた場合には他方の状態に遷移し、前記他方の状態にある場合において、前記第1のバッファにおけるビデオ・ストリームの占有量が前記第1の閾値より小さい第2の閾値未満となった場合には前記一方の状態に遷移する第1のステート・マシンと、一方の状態にある場合において、前記第2のバッファにおけるオーディオ・ストリームの占有量が第3の閾値を越えた場合には他方の状態に遷移し、前記他方の状態にある場合において、前記第2のバッファにおけるオーディオ・ストリームの占有量が前記第3の閾値より小さい第4の閾値未満となった場合には前記一方の状態に遷移する第2のステート・マシンを有することを特徴とするMPEG符号化装置。
(付記2)前記第1のステート・マシンが前記一方の状態にあり、前記第3のバッファに空きがある場合には、前記第1のバッファから前記第3のバッファにビデオ・ストリームのDMA転送を実行することを特徴とする付記1記載のMPEG符号化装置。
(付記3)前記第1のステート・マシンが前記一方の状態にあり、前記第3のバッファに空きがなく、前記第1のバッファにおけるビデオ・ストリームの占有量が前記第1の閾値を越えている場合には、前記第1のステート・マシンを前記他方の状態とし、前記第1のバッファから前記第3のバッファへのビデオ・ストリームのDMA転送を実行することを特徴とする付記1記載のMPEG符号化装置。
(付記4)前記第1のステート・マシンが前記他方の状態にあり、前記第1のバッファにおけるビデオ・ストリームの占有量が前記第1の閾値未満であり、次のビデオ・ストリームがピクチャ先頭であり、前記第3のバッファに空きがある場合には、前記第1のステート・マシンを前記一方の状態とすることを特徴とする付記1記載のMPEG符号化装置。
(付記5)前記第1のステート・マシンが前記他方の状態にあり、前記第1のバッファにおけるビデオ・ストリームの占有量が前記第1の閾値未満であり、次のビデオ・ストリームがピクチャ先頭でなく、前記第1のバッファにおけるビデオ・ストリームの占有量が前記第2の閾値未満の場合には、前記第1のステート・マシンを前記一方の状態とすることを特徴とする付記1記載のMPEG符号化装置。
(付記6)前記第1のステート・マシンが前記他方の状態にあり、前記第1のバッファにおけるビデオ・ストリームの占有量が前記第1の閾値未満であり、次のビデオ・ストリームがピクチャ先頭でなく、前記第1のバッファにおけるビデオ・ストリームの占有量が前記第2の閾値未満でない場合には、前記第1のバッファから前記第3のバッファにビデオ・ストリームのDMA転送を実行することを特徴とする付記1記載のMPEG符号化装置。
(付記7)前記第1のステート・マシンが前記他方の状態にあり、前記第1のバッファにおけるビデオ・ストリームの占有量が前記第1の閾値未満でない場合には、前記第1のバッファから前記第3のバッファへのビデオ・ストリームのDMA転送を実行することを特徴とする付記1記載のMPEG符号化装置。
(付記8)前記第2のステート・マシンが前記一方の状態にあり、前記第4のバッファに空きがある場合には、前記第2のバッファから前記第4のバッファへのオーディオ・ストリームのDMA転送を実行することを特徴とする付記1記載のMPEG符号化装置。
(付記9)前記第2のステート・マシンが前記一方の状態にあり、前記第4のバッファに空きがなく、前記第2のバッファにおけるオーディオ・ストリームの占有量が前記第3の閾値を越えている場合には、前記第2のステート・マシンを前記他方の状態とし、前記第2のバッファから前記第4のバッファへのオーディオ・ストリームのDMA転送を実行することを特徴とする付記1記載のMPEG符号化装置。
(付記10)前記第2のステート・マシンが前記他方の状態にあり、前記第2のバッファにおけるオーディオ・ストリームの占有量が前記第4の閾値未満の場合には、前記第2のステート・マシンを前記一方の状態とすることを特徴とする付記1記載のMPEG符号化装置。
(付記11)前記第2のステート・マシンが前記他方の状態にあり、前記第2のバッファにおけるオーディオ・ストリームの占有量が前記第4の閾値未満でない場合には、前記第2のバッファから前記第4のバッファへのオーディオ・ストリームのDMA転送を実行することを特徴とする付記1記載のMPEG符号化装置。
(付記12)前記第3のバッファ内で、次のビデオ多重化タイミングまでに新たに増えた期間の先頭までのオーディオ・ストリームを破棄することを特徴とする付記2、3、6又は7記載のMPEG符号化装置。
(付記13)前記第4のバッファ内で、次のオーディオ多重化タイミングまでに新たに増えた期間の先頭までのビデオ・ストリームを破棄することを特徴とする付記9又は11記載のMPEG符号化装置。
1…従来のMPEG符号化装置の一例
2…後段システム
3…ビデオ符号化器
4…ビデオ・エレメンタリ・ストリーム・バッファ
5…オーディオ符号化器
6…オーディオ・エレメンタリ・ストリーム・バッファ
7…多重化器
8…多重ストリーム・バッファ
9…CPU
10…ビデオ・ストリーム・バッファ
11…オーディオ・ストリーム・バッファ
12…スイッチ回路
13…ビデオ・ストリーム・バッファ容量監視部
14…オーディオ・ストリーム・バッファ容量監視部
15…参考例のMPEG符号化装置
16…ビデオ・エレメンタリ・ストリーム・バッファ容量監視部
17…オーディオ・エレメンタリ・ストリーム・バッファ容量監視部
21…本発明の一実施形態のMPEG符号化装置
22…後段システム
23…ビデオ符号化器
24…ビデオ・エレメンタリ・ストリーム・バッファ
25…オーディオ符号化器
26…オーディオ・エレメンタリ・ストリーム・バッファ
27…多重化器
28…多重ストリーム・バッファ
29…CPU
30…ソフトウエア格納部
31…ビデオ・ストリーム・バッファ
32…オーディオ・ストリーム・バッファ
33…スイッチ回路
34…ビデオESバッファ容量監視部
35…オーディオESバッファ容量監視部
36…ビデオ・ストリーム・バッファ容量監視部
37…オーディオ・ストリーム・バッファ容量監視部
38…ビデオESバッファ容量監視プログラム
39…オーディオESバッファ容量監視プログラム
40…ビデオ・ストリーム・バッファ容量監視プログラム
41…オーディオ・ストリーム・バッファ容量監視プログラム
42…ビデオESバッファ・ステート・マシン
43…オーディオESバッファ・ステート・マシン
2…後段システム
3…ビデオ符号化器
4…ビデオ・エレメンタリ・ストリーム・バッファ
5…オーディオ符号化器
6…オーディオ・エレメンタリ・ストリーム・バッファ
7…多重化器
8…多重ストリーム・バッファ
9…CPU
10…ビデオ・ストリーム・バッファ
11…オーディオ・ストリーム・バッファ
12…スイッチ回路
13…ビデオ・ストリーム・バッファ容量監視部
14…オーディオ・ストリーム・バッファ容量監視部
15…参考例のMPEG符号化装置
16…ビデオ・エレメンタリ・ストリーム・バッファ容量監視部
17…オーディオ・エレメンタリ・ストリーム・バッファ容量監視部
21…本発明の一実施形態のMPEG符号化装置
22…後段システム
23…ビデオ符号化器
24…ビデオ・エレメンタリ・ストリーム・バッファ
25…オーディオ符号化器
26…オーディオ・エレメンタリ・ストリーム・バッファ
27…多重化器
28…多重ストリーム・バッファ
29…CPU
30…ソフトウエア格納部
31…ビデオ・ストリーム・バッファ
32…オーディオ・ストリーム・バッファ
33…スイッチ回路
34…ビデオESバッファ容量監視部
35…オーディオESバッファ容量監視部
36…ビデオ・ストリーム・バッファ容量監視部
37…オーディオ・ストリーム・バッファ容量監視部
38…ビデオESバッファ容量監視プログラム
39…オーディオESバッファ容量監視プログラム
40…ビデオ・ストリーム・バッファ容量監視プログラム
41…オーディオ・ストリーム・バッファ容量監視プログラム
42…ビデオESバッファ・ステート・マシン
43…オーディオESバッファ・ステート・マシン
Claims (5)
- ビデオ符号化器が出力するビデオ・ストリームを格納する第1のバッファと、
オーディオ符号化器が出力するオーディオ・ストリームを格納する第2のバッファと、
前記第1のバッファに格納されたビデオ・ストリームが転送される第3のバッファと、
前記第2のバッファに格納されたオーディオ・ストリームが転送される第4のバッファと、
前記第3のバッファに格納されたビデオ・ストリームと前記第4のバッファに格納されたオーディオ・ストリームとを多重化した多重ストリームを格納する第5のバッファを有するMPEG符号化装置において、
一方の状態にある場合において、前記第1のバッファにおけるビデオ・ストリームの占有量が第1の閾値を越えた場合には他方の状態に遷移し、前記他方の状態にある場合において、前記第1のバッファにおけるビデオ・ストリームの占有量が前記第1の閾値より小さい第2の閾値未満となった場合には前記一方の状態に遷移する第1のステート・マシンと、
一方の状態にある場合において、前記第2のバッファにおけるオーディオ・ストリームの占有量が第3の閾値を越えた場合には他方の状態に遷移し、前記他方の状態にある場合において、前記第2のバッファにおけるオーディオ・ストリームの占有量が前記第3の閾値より小さい第4の閾値未満となった場合には前記一方の状態に遷移する第2のステート・マシンを有する
ことを特徴とするMPEG符号化装置。 - 前記第1のステート・マシンが前記一方の状態にあり、前記第3のバッファに空きがなく、前記第1のバッファにおけるビデオ・ストリームの占有量が前記第1の閾値を越えている場合には、前記第1のステート・マシンを前記他方の状態とし、前記第1のバッファから前記第3のバッファへのビデオ・ストリームのDMA転送を実行する
ことを特徴とする請求項1記載のMPEG符号化装置。 - 前記第1のステート・マシンが前記他方の状態にあり、前記第1のバッファにおけるビデオ・ストリームの占有量が前記第1の閾値未満でない場合には、前記第1のバッファから前記第3のバッファへのビデオ・ストリームのDMA転送を実行する
ことを特徴とする請求項1記載のMPEG符号化装置。 - 前記第2のステート・マシンが前記一方の状態にあり、前記第4のバッファに空きがなく、前記第2のバッファにおけるオーディオ・ストリームの占有量が前記第3の閾値を越えている場合には、前記第2のステート・マシンを前記他方の状態とし、前記第2のバッファから前記第4のバッファへのオーディオ・ストリームのDMA転送を実行する
ことを特徴とする請求項1記載のMPEG符号化装置。 - 前記第2のステート・マシンが前記他方の状態にあり、前記第2のバッファにおけるオーディオ・ストリームの占有量が前記第4の閾値未満でない場合には、前記第2のバッファから前記第4のバッファへのオーディオ・ストリームのDMA転送を実行する
ことを特徴とする請求項1記載のMPEG符号化装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005254727A JP2007068103A (ja) | 2005-09-02 | 2005-09-02 | Mpeg符号化装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005254727A JP2007068103A (ja) | 2005-09-02 | 2005-09-02 | Mpeg符号化装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007068103A true JP2007068103A (ja) | 2007-03-15 |
Family
ID=37929709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005254727A Withdrawn JP2007068103A (ja) | 2005-09-02 | 2005-09-02 | Mpeg符号化装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007068103A (ja) |
-
2005
- 2005-09-02 JP JP2005254727A patent/JP2007068103A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3698376B2 (ja) | 同期再生装置 | |
US7412149B2 (en) | Trick mode generation in video streaming | |
US20080198930A1 (en) | Image information transmission system, image information transmitting apparatus, image information receiving apparatus, image information transmission method, image information transmitting method, and image information receiving method | |
JP3633884B2 (ja) | 再生画像伝送装置 | |
JP3438223B2 (ja) | 多重化装置および多重化方法、並びに伝送装置および伝送方法 | |
JP2005123789A (ja) | Av同期システム | |
JP3828053B2 (ja) | 受信されたマルチメディアデータを保存するバッファの容量を可変できるマルチメディアデータ復元装置及び方法 | |
JP4715306B2 (ja) | ストリーム制御装置、ストリーム再生方法、映像記録再生システム | |
US20100211706A1 (en) | Buffer control device, buffer control method, and program | |
US8229270B2 (en) | Method and apparatus for compensating audio/video synchronization | |
KR100864009B1 (ko) | 오디오/비디오 동기화 방법 | |
JP4464255B2 (ja) | ビデオ信号多重化装置、ビデオ信号多重化方法及び映像再生装置 | |
JP5046907B2 (ja) | 記録装置、その制御方法、プログラム | |
JP2006148679A (ja) | データ処理装置 | |
JP2007068103A (ja) | Mpeg符号化装置 | |
JP4850041B2 (ja) | 映像再生システム、映像再生の同期方法および映像再生端末 | |
JP4900945B2 (ja) | 記録装置、及び記録方法 | |
JP3882688B2 (ja) | 画像音声同期化装置 | |
JP5168105B2 (ja) | 音声再生装置、及び音声再生方法 | |
JP4867872B2 (ja) | 画像処理装置、この画像処理装置の制御方法、及び、プログラム | |
JP3705231B2 (ja) | トランスポートストリーム・スプライサー | |
JP3773892B2 (ja) | デジタル記録再生装置 | |
JP2011035578A (ja) | 送信装置、受信装置及び伝送システム | |
JP2005341248A (ja) | ネットワーク型映像送信装置、ネットワーク型映像受信装置 | |
JP2006054728A (ja) | データ復号装置及びデータ復号方法、並びにデータ再生装置及びデータ再生方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20081104 |