(57)【特許請求の範囲】
【請求項１】
一連の非符号化情報フレームを圧縮符号化して、フレーム・グループ（ＧＯＦ）内に一連の符号化情報フレームを生成するシステム内における方法であり、前記ＧＯＦは複数のサブＧＯＦを備え、前記サブＧＯＦは少なくとも一つのアンカーフレームおよび一つ以上の非アンカーフレームを備え、前記アンカーフレームはイントラ符号化フレーム（Ｉフレーム）又は前方予測フレーム（Ｐフレーム）の何れかであり、前記非アンカーフレームは双方向予測フレーム（Ｂフレーム）である、当該方法であって、
一つ以上のエンコーダによって、前記ＧＯＦ内の前記アンカーフレームになる予定の前記非符号化情報フレームを、前記Ｉフレームと前記Ｐフレームの両方として、符号化する工程と、
前記一連の非符号化情報フレーム内のインターフレーム情報の不連続点に対応して、前記情報の不連続点の後の１つ目のアンカーフレームとして、前記符号化されたＩフレームを選択し、前記情報の不連続点の前の１つ目のアンカーフレームとして、前記符号化されたＰフレームを選択する工程と、
を備える方法。
【請求項２】
前記符号化する工程は、
前記ＧＯＦ内で前記Ｐフレームとして符号化される予定の非符号化情報フレームを、前記Ｉフレームおよび前記Ｐフレームの両方として符号化する工程であって、前記エンコーダのうち第１のエンコーダによって、前記Ｐフレームとして符号化される予定の非符号化情報フレームを、前記Ｉフレームとして符号化し、前記エンコーダのうち第２のエンコーダによって、前記Ｐフレームとして符号化される予定の非符号化情報フレームを、前記Ｐフレームとして符号化する、当該工程、を含み、
前記選択する工程は、
前記生成された一連の符号化情報フレーム内に含まれる予定の各符号化されたＰフレームとして、前記符号化されたＰフレームに対応する前記符号化されたＩフレームを選択する工程、を含む、
請求項１に記載の方法。
【請求項３】
前記符号化する工程および前記選択する工程は、
前記ＧＯＦ内で前記Ｉフレームになる予定の各非符号化情報フレームを格納する工程と、
前記ＧＯＦ内で前記アンカーフレームになる予定の非符号化情報フレームを、前記Ｉフレームおよび前記Ｐフレームの両方として符号化する工程であって、前記エンコーダのうち第１のエンコーダによって、前記Ｐフレームとして符号化される予定の非符号化情報フレームを、前記Ｉフレームとして符号化し、前記エンコーダのうち第２のエンコーダによって、前記Ｐフレームとして符号化される予定の非符号化情報フレームを、前記Ｐフレームとして符号化する、当該工程と、
情報の不連続点がない場合に、前記ＧＯＦに含ませるために、第１のアンカーフレームとして、前記符号化されたＩフレームおよび前記符号化されたＰフレームのうち、前記符号化されたＩフレームを選択し、前記第１のアンカーフレームの次のアンカーフレームとして、前記符号化されたＩフレームおよび前記符号化されたＰフレームのうち、前記符号化されたＰフレームを選択する工程と、
情報の不連続点がある場合に、前記格納された非符号化情報フレームを用いて予測されるＰフレームとして、前記情報の不連続点の前の前記１つ目のアンカーフレームを符号化し、前記生成された一連の符号化情報フレームに含ませるために、前記符号化されたＰフレームを選択する工程と、
情報の不連続点がある場合に、前記Ｉフレームとして、前記情報の不連続点の後の前記１つ目のアンカーフレームを符号化し、前記生成された一連の符号化情報フレームに含ませるために、前記符号化されたＩフレームを選択する工程と、
を含む請求項１に記載の方法。
【請求項４】
前記方法は、
前記一連の非符号化情報フレームの各サブＧＯＦを遅延させて、前記一連の非符号化情報フレームの符号化の前に、前記情報の不連続点を検出する工程をさらに備え、
前記符号化する工程は、
前記情報の不連続点に対応して前記ＧＯＦを再定義して、前記一連の非符号化情報フレームを符号化する工程を含む、
請求項１に記載の方法。
【請求項５】
一連の非符号化情報フレームを圧縮符号化して、フレーム・グループ（ＧＯＦ）内に一連の符号化情報フレームを生成するシステム内における方法であり、前記ＧＯＦは複数のサブＧＯＦを備え、前記サブＧＯＦはアンカーフレームと一つ以上の非アンカーフレームを備え、前記非アンカーフレームは前記アンカーフレームに基づく予測情報を含む、当該方法であって、
第１の符号化モジュールによって、前記一連の情報フレームのサブＧＯＦを符号化して前記サブＧＯＦ内に第１の一連の符号化情報フレームを生成する工程であって、前記アンカーフレームの各々がＰフレームを備える、当該工程と、
第２の符号化モジュールによって、前記サブＧＯＦを符号化して前記サブＧＯＦ内に第２の一連の符号化情報フレームを生成する工程であって、前記アンカーフレームの各々はＩフレームを備える、当該工程と、
情報の不連続点が前記サブＧＯＦ内に存在するかどうかを確かめる工程と、
情報の不連続点が前記サブＧＯＦ内に存在する場合、前記第２の符号化モジュールによって生成された前記第２の一連の符号化情報フレームを出力する工程と、
情報の不連続点が前記サブＧＯＦ内に存在しない場合、前記第１の符号化モジュールによって生成された前記第１の一連の符号化情報フレームを出力する工程と
を備える方法。
【請求項６】
一連の情報フレームを圧縮符号化して、フレーム・グループ（ＧＯＦ）内に一連の符号化情報フレームを生成するシステムで使う装置であり、各ＧＯＦは複数のサブＧＯＦを備え、各サブＧＯＦはアンカーフレームと一つ以上の非アンカーフレームを備え、前記非アンカーフレームは前記アンカーフレームに基づく予測情報を含む、当該装置であって、
前記ＧＯＦ内で前記一連の情報フレームを符号化して第１の一連の符号化情報フレームを生成する第１の符号化モジュールであって、前記アンカーフレームの各々はＰフレームを備える、当該第１の符号化モジュールと、
前記第１の符号化モジュールによって生成されたサブＧＯＦを格納する第１のバッファと、
前記ＧＯＦ内で前記一連の情報フレームを符号化して第２の一連の符号化情報フレームを生成する第２の符号化モジュールであって、前記アンカーフレームの各々はＩフレームを備える、当該第２の符号化モジュールと、
前記第２の符号化モジュールによって生成されたサブＧＯＦを格納する第２のバッファと、
を備え、
情報の不連続点が前記一連の情報フレームに存在しないことが確かめられたときの第１の動作モードでは、前記第１のバッファに格納された前記サブＧＯＦが出力され、
情報の不連続点が前記一連の情報フレームに存在することが確かめられたときの第２の動作モードでは、前記第２のバッファに格納された前記サブＧＯＦが出力される、装置。
【請求項７】
フレーム・グループ（ＧＯＦ）内で一連の非符号化情報フレームを圧縮符号化して一連の符号化情報フレームを生成する第１のエンコーダであって、前記ＧＯＦは複数のサブＧＯＦを備え、前記サブＧＯＦは少なくとも一つのアンカーフレームおよび一つ以上の非アンカーフレームを備え、前記アンカーフレームは前方予測フレーム（Ｐフレーム）であり、前記非アンカーフレームは双方向予測フレーム（Ｂフレーム）である、当該第１のエンコーダと、
前記ＧＯＦ内でＰフレームとして符号化される予定のフレームを、Ｉフレームとして符号化する第２のエンコーダと、
前記一連の非符号化情報フレーム内のインターフレーム情報の不連続点の存在を確認するコントローラと、
前記コントローラから前記確認内容を受信し、当該確認内容に対し、前記情報の不連続点の後の１つ目のアンカーフレームとして、前記第２のエンコーダによる符号化で得られたＩフレームを選択し、前記情報の不連続点の前の１つ目のアンカーフレームとしてＰフレームを選択するセレクタと、
を備える装置。
【請求項８】
前記装置は、
前記Ｉフレームとして符号化される予定の各非符号化情報フレームを格納し、前記Ｉフレームに対し時間的に先行するアンカーフレームであってＰフレームへの置換を予測するために用いられる当該アンカーフレームを格納するメモリ、をさらに備える、
請求項７に記載の装置。
【請求項９】
前記装置は、
前記一連の非符号化情報フレームの各サブＧＯＦを遅延させるバッファをさらに備え、
前記コントローラは、前記バッファの入力点に与えられた前記一連の非符号化情報フレームを検査し、もし前記検査された情報フレームが情報の不連続点を含むならば、前記コントローラは、前記第１のエンコーダで使われた前記サブＧＯＦの前記アンカーフレームを修正する
請求項７に記載の装置。
【発明の詳細な説明】
【０００１】
本出願は、１９９８年に４月に出願された米国仮出願第６０／０８０５３６号の優先権の利益を主張する。
【０００２】
本発明は一般的な通信システムに関する。特に、本発明は情報ストリームの不連続性の兆候に対応して情報ストリームを適応的に符号化する方法とそれに付随する装置に関する。
【０００３】
【開示の背景】
通信システムのうちの幾つかでは、利用可能帯域を効果的に使うために、転送されるデータを圧縮する。例えば、動画エキスパートグループ（ＭＰＥＧ）は、デジタルデータ転送システムに関する幾つかの規格を公表している。ＭＰＥＧ−１として周知の第１の規格はＩＳＯ／ＩＥＣ規格１１１７２と呼ばれ、本件の援用文献である。ＭＰＥＧ−２として周知の第２の規格はＩＳＯ／ＩＥＣ規格１３８１８と呼ばれ、本件の援用文献である。先端テレビシステム委員会（ＡＴＳＣ）のデジタルテレビ規格書Ａ／５３には圧縮されたデジタル映像システムについての説明があり、本件の援用文献である。
【０００４】
上で引用された規格には、固定長、もしくは、可変長のデジタル通信システムを用いた、映像、音声、または、その他の情報の圧縮と伝送に適したデータ処理と操作技術に関して記述されている。特に、上で引用された規格とその他の“ＭＰＥＧ準拠”の規格と技術は、内部フレーム符号化技術（ランレングス符号化、ハフマン符号化等）と内部フレーム符号化技術（前方向と後方向の予測符号化、動き補償等）を使って映像情報を圧縮する。特に、映像処理システムの場合、ＭＰＥＧとＭＰＥＧ準拠の映像処理システムは、フレーム内動き補償符号化やフレーム間動き補償符号化を使って、もしくは、使わないで、映像フレームを予測ベースの縮符号化するものとして特徴づけられる。
【０００５】
典型的なＭＰＥＧエンコーダでは、複数の映像フレームを含む受信された映像ストリームは、前もって定義されたピクチャ・グループ（ＧＯＰ）構成に基づいて符号化される。即ち、受信された映像ストリームは符号化され、例えば、イントラ符号化フレーム（Ｉフレーム）と、それに続く一つ以上の前方向予測符号化フレーム（Ｐフレーム）と双方向（即ち、前方向と後方向）予測フレーム（Ｂフレーム）を備えるＧＯＰが生成される。受信された映像ストリームの場面が変化する場合、新たな場面の第１のフレームは前のアンカーフレームとかなり異なっていてもよい。従って、エンコーダは、第１のフレーム内で非常に大きな割合を占めるマクロブロックをイントラ符号化する必要がある。この状況では、エンコーダは典型的にはそのフレームをアンカーフレームとして符号化する。これにより、前もって定義されたＧＯＰ構成内の後続フレームが予測される。
【０００６】
残念ながら、もし新たなアンカーフレームがＰフレームとして符号化される対象とされたなら、そのイントラ符号化はエンコーダによって利用されるレート制御（ＲＣ）予測に影響を与える。いかにＲＣが行われるかによって、これはＰフレーム自体の符号化の質と、Ｐフレームの後に符号化される幾つかのフレームの質に影響を与えることがある。特に、前のアンカーフレームがＩフレームであったときが最も影響が大きいと考えられる。
【０００７】
さらに、もし場面変化後の第１のアンカーフレームがＩフレームでなく、ほとんど、もしくは、全体がイントラ符号化されたマクロブロックをもつＰフレームと断定されたなら、場面変化の始めの近辺では、ランダムアクセス（即ち、独立した復号化の可能性）はうまくいかない。従って、ランダムアクセスを行うために、Ｐフレームが予定されていようとＢフレームが予定されていようとにかかわらず、幾つかのエンコーダで場面変化後の第１のフレームをＩフレームとして単純に符号化する。また、このエンコーダの動作はＲＣ動作に影響を与える。
【０００８】
従って、符号化の質を維持し、符号化されたストリームに対するランダムアクセスを場面変化点近辺で行うために、ＭＰＥＧ準拠のエンコーダの処理を受信された映像ストリームでの場面変化領域に適用する方法とそれに付随する装置を提供することによって上述の問題に取り組むことが望ましいと考えられる。より一般的には、符号化の質を維持し、符号化されたストリームに対するランダムアクセスを情報の不連続点近辺で行うために、ＭＰＥＧ準拠のエンコーダの処理を、受信されたいかなる種類の情報ストリーム内の情報の不連続領域に適用する方法とそれに付随する装置を提供することが望ましいと考えられる。
【０００９】
【発明の概要】
本発明は、バッファ利用パラメータに悪影響を与えることなく、情報の不連続点近辺で符号化する質を維持し、また、結果として符号化されたストリームに対するランダムアクセスを行うことができるように、受信情報ストリーム内の情報の不連続領域に合わせてＭＰＥＧ準拠のエンコーダの動作を修正する方法とそれに伴う装置を備える。具体的には、情報の不連続領域に先行するＩフレームを備えるアンカーフレームをＰフレームとして符号化する一方で、情報の不連続領域の次のアンカーフレームをＩフレームとして符号化する。
【００１０】
具体的には、一連の非符号化情報フレームを圧縮符号化してフレーム・グループ（ＧＯＦ）情報構成に実質的に基づく一連の符号化情報フレームを生成するシステム内で、各ＧＯＦは少なくとも一つのサブＧＯＦを備え、各サブＧＯＦは少なくとも一つのアンカーフレームを備え、各アンカーフレームはイントラ符号化フレーム（Ｉフレーム）と前方予測フレーム（Ｐフレーム）のうちの一つを備える。本発明の方法は、前記一連の非符号化情報フレーム内のインターフレーム情報の不連続領域に対応して、前記情報の不連続領域の次の第１のアンカーフレームはＩフレームを備え、また、前記情報の不連続領域に先行する第１のアンカーフレームはＰフレームを備えるように前記ＧＯＦ情報構成を修正する工程を備える。
【００１１】
【詳細な説明】
添付の図面と共に以下の詳細な説明を考慮することにより本発明の教唆を容易に理解することができる。
【００１２】
本発明は、フレーム・グループ（ＧＯＦ）やピクチャ・グループ（ＧＯＰ）のデータ構造に名目上従う符号化出力情報ストリームＯＵＴを生成するために入力情報ストリームを符号化するＭＰＥＧ準拠の符号化システムの枠内で説明される。各ＧＯＦ／ＧＯＰデータ構造は、最大の大きさがＭ個のフレームである複数のサブＧＯＦまたはサブＧＯＰのデータ構造で構成されたＮ個のフレームを備える。各サブＧＯＦ／ＧＯＰは、各アンカーフレーム（例えば、Ｉフレーム、もしくは、Ｐフレーム）と、オプションとして一つ以上の非アンカーフレーム（例えば、Ｂフレーム）を備える。入力された情報ストリームＩＮ内のフレーム間の情報の不連続性に対応して、本発明では、不連続な情報の後の第１のアンカーフレームがＩフレームを備え、また、不連続な情報に先行する第１のアンカーフレームがＰフレームを備えるように符号化出力情報ストリームを修正する。
【００１３】
図１には、本発明に係るＭＰＥＧ準拠の符号化システム１００が示されている。具体的には、図１は、第１の符号化モジュール１０１、第２の符号化モジュール、コントローラ１０３、セレクタ１０４、出力バッファ１６０を備えるＭＰＥＧ準拠の符号化システム１００を示す。ＭＰＥＧ準拠の符号化システム１００は、複数の非圧縮情報フレーム、例えば、映像情報ストリームを構成する一連の画像を備える入力情報ストリームＩＮを受信して符号化し、符号化された出力情報ストリームＯＵＴを生成する。
【００１４】
第１の符号化モジュール１０１は入力情報ストリームＩＮを受信して符号化し、フレーム・グループ（ＧＯＦ）やピクチャ・グループ（ＧＯＰ）のデータ構造に部分的に従う第１の符号化情報ストリームＳ１０１を生成する。第１の符号化情報ストリームＳ１０１は、ＧＯＦやＧＯＰのデータ構造に部分的に従う。何故なら、フレームがＧＯＦ／ＧＯＰデータ構造に基づくイントラ符号化されたフレーム（Ｉフレーム）になるように予定されていたとしても、第１の符号化モジュール１０１は、前方向予測符号化されたフレーム（Ｐフレーム）として各アンカーフレームを符号化するからである。従って、第１の符号化情報ストリームＳ１０１は、Ｐフレームをアンカーフレームとして備えるサブＧＯＰ、もしくは、サブＧＯＦを備える。第１の符号化情報ストリームＳ１０１は、サブＧＯＦ／ＧＯＰバッファでバッファされた後、セレクタ１０４の第１の入力点に入る。
【００１５】
第２の符号化モジュール１０２は入力情報ストリームＩＮを受信して符号化し、イントラ符号化されたアンカーフレームのみを備える第２の符号化情報ストリームＳ１０２を生成する。具体的には、フレームが、第１の符号化モジュール１０１によって用いられるＧＯＦ／ＧＯＰのデータ構造に基づくＰフレームとなる予定であっても、第２の符号化モジュール１０２は、各アンカーフレームをイントラ符号化フレーム（Ｉフレーム）として符号化する。このフレームは双方向符号化フレームと呼ばれる。何故なら、それはＩフレームとして第２の符号化モジュール１０２によって符号化され、また、Ｐフレームとして第１の符号化モジュール１０１によって符号化されるからである。従って、第２の符号化情報ストリームＳ１０２はイントラ符号化されたアンカーフレームだけを備える。第２の符号化情報ストリームＳ１０２はサブＧＯＦ／ＧＯＰバッファでバッファされた後、セレクタ１０４の第２の入力点に入る。さらに、以下で説明するが、第２のエンコーダ１０２によって符号化された各フレームは再生（即ち、復号化）され、第１の符号化モジュール１０１の動き予測領域での使用に適する基準アンカーフレームを提供する。
【００１６】
出力バッファ１６０は、最も遠くにあるデコーダバッファのバッファ利用レベルを示すレート制御信号ＲＣを生成する。レート制御信号ＲＣは第１の符号化モジュール１０１と第２の符号化モジュール１０２に与えられる。符号化モジュールはレート制御信号を利用してそれぞれの符号化工程の量子化パラメータを選ぶことにより、出力信号Ｓ１０１、Ｓ１０２のそれぞれのビットレートを制御して、最も遠くにあるデコーダバッファでのバッファオーバフローやアンダーフローを避けることができる。
【００１７】
コントローラ１０３はセレクタ１０４の制御入力点に接続され、第１の符号化モジュール１０１と第２の符号化モジュール１０２をそれぞれ制御するための第１の符号化制御信号Ｃ１と第２の符号化制御信号Ｃ２を生成する。コントローラ１０３は、通常、連続動作モードで動作する。ここで、出力バッファに供給された情報ストリームは定義されたＧＯＦ／ＧＯＰデータ構造に従う。例えば，供給された情報ストリーム内のＩフレーム型の連続アンカーフレームの発生を防ぐために、コントローラ１０３は、例えば、場面変化やその他の情報ストリームが不連続となる事象があると不連続動作モードに入る。不連続動作モードでは、コントローラ１０３は第１の（一時的）アンカーフレームをＩフレームからＰフレームに変える。これは可能である。何故ならば、上述したように、各アンカーフレームはＩフレームとＰフレームとして双方向符号化されるからである。このような情報の不連続な部分を検出するために、コントローラ１０３は少なくとも一つの入力情報ストリームＩＮと第２の符号化モジュール１０２からのモード決定指示信号ＭＤを受信する。情報の不連続な部分の検出については以下で説明される。簡単に言うと、イントラ符号化する（インター符号化や予測符号化ではなく）ために、閾値より大きな数のマクロブロックが選択される。符号化される情報フレームは本来、アンカーフレームとは十分に異なり、これに基づく予測によって場面の変化等の不連続な情報領域があると推定する。
【００１８】
第１の符号化モジュール１０１は、加算器１５５、モード決定モジュール１０５Ｐ、離散コサイン変換（ＤＣＴ）モジュール１１０Ｐ、量子化（Ｑ）モジュール、可変長符号化（ＶＬＣ）モジュール１２０Ｐ、逆量子化（Ｑ-1）１２５Ｐ、逆離散コサイン変換（ＤＣＴ-1）モジュール１３０Ｐ、減算器１５６、バッファ１３５Ｐ、レート制御モジュール１４０Ｐ、動き補償モジュール１４５Ｐ、動き推定モジュール１５０Ｐ、アンカーフレーム記憶モジュール１７０を備える。第２の符号化モジュール１０２は複数のモジュールを備えるが、当業者であれば様々なモジュールによって実行される機能を、図１に示されるような別々のモジュールに分ける必要がないことがわかっている。例えば、動き補償モジュール１４５Ｐ，逆量子化モジュール１２５Ｐ，逆ＤＣＴモジュール１３０Ｐを備えるモジュール集合は、一般的に、“組み込みデコーダ”として周知のものである。
【００１９】
映像情報ストリームを備える入力情報ストリームＩＮの場合、デジタイズされ、また、例えばＭＰＥＧ規格に基づく輝度と２つの色差信号（Ｙ，Ｃr，Ｃb）で表される入力信号経路ＩＮ上の一連の画像が映像情報ストリームで表わされる。さらに、これらの信号は複数のレイヤー（シーケンス、ピクチャ・グループ、ピクチャ、スライス、マクロブロック、ブロック）に分割されて、各ピクチャ（フレーム）が複数のマクロブロックによって表される。各マクロブロックは、四つ（４）の輝度ブロック、一つのＣrブロック，一つＣbブロックを備え、ブロックとは八個の（８）サンプルアレイによって八（８）個のものとして定義される。ブロック単位にピクチャを分割することにより、２つの連続するピクチャ間での変化を識別する能力を改善し、また、小振幅の変換係数を削除することによって画像圧縮を改善する（以下で説明される）。デジタイズされた信号は、適切な窓と解像度と入力フォーマットを選択するためのフォーマット変換等の前処理が選択的に行われる。
【００２０】
減算器１５５は、信号経路ＩＮ上の入力マクロブロックから信号経路ＰＦ上の予測マクロブロックを減算して、剰余信号（本技術分野では、単に剰余、もしくは、剰余マクロブロックとも呼ばれる）を生成する。
【００２１】
モード決定モジュール１０５Ｐは、減算器１５５から剰余マクロブロック（即ち、予測マクロブロック）を、また、信号経路ＩＮから入力マクロブロックを受信する。もし予測マクロブロックが入力マクロブロックに実質的に類似しているなら（即ち、剰余が比較的小さく、非常に少ないビットを用いて簡単に符号化できる）、モード決定モジュール１０５Ｐはインター符号化のために減算器１５５から剰余信号を選択する。即ち、マクロブロックは、動き補償されたマクロブロック、即ち、動ベクトルとそれに関連する剰余として符号化される。しかしながら、もし予測マクロブロックと入力マクロブロック間の差、即ち、剰余が大きければ、剰余を符号化することは困難である。結論としては、動き補償剰余マクロブロックを符号化するのではなく入力マクロブロックを直接符号化することによって、システムはより効率的に動作することができる。
【００２２】
上の選択工程は符号化モードの選択処理として知られている。入力マクロブロックの符号化はイントラ符号化と呼ばれ、剰余の符号化はインター符号化と呼ばれる。これら２つのモード間での選択は、イントラ−インター決定（ＩＩＤ）として知られている。典型的には、まず、剰余マクロブロックの分散（ＶａｒＲ）と入力マクロブロック（ＶａｒＩ）の分散を計算することによってＩＩＤが計算される。符号化の決定はこれらの値に基づいてなされる。この決定を行うために使用できる幾つかの機能がある。例えば、最も簡単な機能を用いて、もしＶａｒＲがＶａｒＩより小さいなら、ＩＩＤはインターモードを選択する。逆に、ＶａｒＩがＶａｒＲより小さければ、ＩＩＤはイントラモードを選択する。
【００２３】
オプションとして、モード決定モジュール１０５Ｐは、情報ストリームの不連続な領域があるかないかを示す出力信号ＭＤを供給する。例えば、本発明の一つの実施形態では、出力信号ＭＤは、ＩＩＤ工程によってイントラ符号化マクロブロックとして選択された特定の情報フレーム内のマクロブロックの数を示す。特定の情報フレーム内に非常に多くのイントラ符号化マクロブロックがあることは、情報フレームが前の情報フレームと実質的に異なることを示している。この実質的な違いは情報の不連続さ、例えば、入力映像情報ストリームの場面カットや場面変化等によることがある。場面カットを示す一つのフレーム内の所定数のイントラ符号化マクロブロックを越える逸脱を示すことができるようにコントローラを調整することができる。コントローラの動作については、以下で図２と図３を用いてより詳細に説明される。
【００２４】
次に、選択されたブロック（即ち、入力マクロブロックや剰余マクロブロック）は離散コサイン変換（ＤＣＴ）モジュール１１０Ｐに与えられる。ＤＣＴモジュール１１０Ｐは、受信されたマクロブロックの各ブロックに離散コサイン変換を施して、例えば、八つ（８）のブロックのＤＣＴ係数によって八（８）個の集合を生成する。ＤＣＴベースの処理、即ち、サブバンド分解により、次の量子化工程で重要となる心理視覚的評価基準を効果的に使うことができる。八個のブロックの大きさによる八がＭＰＥＧ準拠の圧縮システムで一般的に使われているが、いかなる大きさのブロック、あるいは、マクロブロックも処理できるようにＤＣＴモジュールを適応させることができることに注目すべきである。ＤＣＴモジュール１１０Ｐによって生成されたＤＣＴ係数は量子化モジュール１１５Ｐに与えられる。
【００２５】
量子化モジュール１１５Ｐは受信されたＤＣＴ係数を量子化して、量子化された出力ブロックを生成する。量子化処理では、整数値になるように適切に丸められた量子化値の集合でＤＣＴ係数を割ることによって、ＤＣＴ係数を表す正確さを下げる。基底関数の可視度の評価基準を使って、各ＤＣＴ係数に対して個々に量子化値を設定することができる（視覚的重み付け量子化として知られる）。即ち、量子化値は、所定の基底関数の可視度、即ち、人間の目によって正確に検出可能な係数振幅に対する閾値に対応する。この値を使ってＤＣＴ係数を量子化することによって、ＤＣＴ係数の多くは値“ゼロ”に変換されるので、画像圧縮効率が改良される。量子化処理は基本的な処理であり、視覚的に高い質を達成し、エンコーダの出力を所定のビットレート（レート制御）に合わせるように制御するために重要な道具である。様々な量子化値を各ＤＣＴ係数に適用できるので、“量子化マトリクス”が基準テーブル、例えば、輝度量子化テーブルやクロミナンス量子化テーブルとして一般的に確立される。従って、エンコーダは、変換されたブロックの各周波数係数をどのように量子化するのかを確定する量子化マトリクスを選択する。
【００２６】
レート制御モジュール１４０Ｐは、ＤＣＴ係数を量子化するために使われる量子化スケール（ステップサイズ）を制御したり、出力バッファ１６０によって生成されたレート制御信号ＲＣに対応してシステムによって符号化されるＤＣＴ係数の数を制御する。出力バッファ１６０によって生成されたレート制御信号ＲＣは出力バッファ１６０の使用レベルを示す。レート制御モジュール１４０Ｐの主な処理は出力バッファ１６０の満杯度、即ち、使用レベルを管理することであり、これにより伝送経路に一定の出力ビットレートを与えることができる。各画像や一連の画像に依存して符号化レートは大きく変化することがあるが、一定のビットレートが維持されなければならない。
【００２７】
レート制御モジュール１４０Ｐは、符号化レートを制御しながら映像全体の質を維持するように各フレームに対する量子化スケールを選択することによって、第１の符号化モジュール１０１の出力ビットレートを調整する。即ち、一連のピクチャ全体に渡って視覚的な質を均一に保ちながらピクチャに対する目標のビットレートを達成するように、各フレームに対する量子化スケールが選択される。この方法では、出力情報ストリームＯＵＴの伝送後にデコーダ側（例えば、不図示の受信器や目標の記憶デバイス内）でバッファオーバフローやアンダーフローを発生させないようにレート制御モジュール１４０Ｐが動作する。
【００２８】
オプションとして、レート制御モジュール１４０Ｐは、バッファ１３５Ｐの使用レベルを示すレート制御信号ＲＣ１に応答することができる。前述したように、バッファ１３５Ｐを使って、例えば、ＧＯＦ／ＧＯＰデータ構造のアンカーフレーム（即ち、Ｉフレーム、もしくは、Ｐフレーム）と複数の非アンカーフレーム（即ち、Ｂフレーム）を備える、少なくとも一つの符号化されたサブＧＯＦ／ＧＯＰを保持する。従って、もしバッファ１３５Ｐの容量に制限があると、レート制御モジュール１４０Ｐはバッファ１３５Ｐがオーバフローしないことを保証しなければならない。
【００２９】
レート制御モジュール１４０Ｐのその他の重要な動作は、エンコーダで生成されたビットストリームによりデコーダの入力バッファをオーバフロー、もしくは、アンダーフローさせないことを保証することである。オーバフローとアンダーフローの制御は、仮想的なバッファをエンコーダ内に設けて、それを監視することによって達成される。この仮想バッファは映像バッファ検証器（ＶＢＶ）として知られている。デコーダの入力バッファのビット制御を適切に行うことを保証するために、エンコーダのレート制御処理により、各ピクチャと各ピクチャを構成する複数画素の各マクロブロックに対してビット割り当て数（ここでは、ビット集合とも呼ばれる）を決める。各ビット集合内の各複数ビットを使ってビットブロックとピクチャ全体を符号化することにより、ＶＢＶはオーバフローやアンダーフローすることがなくなる。ＶＢＶはデコーダの入力バッファの動作を反映するものなので、もしＶＢＶがオーバフローやアンダーフローしないなら、デコーダの入力バッファではアンダーフローもオーバフローも発生しない。
【００３０】
このバッファ制御を行うために、レート制御器は映像の符号化に際して、現在のピクチャは前のピクチャにある程度似ているという基準の仮定をおく。もしこの仮定が正しいなら、ピクチャの画素ブロックは符号化技術によって動き補償され、この補償後は非常に少数のビットの符号化が必要となる。ピクチャの符号化で必要な実際のビット数がピクチャに割り当てられた目標ビット数に近い限り、即ち、実際に使われるビット数がピクチャに対するビット割り当て数以内である限りこの方法は非常にうまくいく。
【００３１】
量子化モジュール１１５Ｐによって生成された量子化ＤＣＴ係数（例えば、８ｘ８の量子化ＤＣＴ係数ブロック）は、可変長符号化（ＶＬＣ）モジュールに与えられる。ここで、量子化係数の二次元ブロックは“ジグザグ”の順序でスキャンされ、一次元の量子化ＤＣＴ係数列に変換される。このジグザグスキャンの順序は、ＤＣＴ係数が最低の空間周波数から最大の空間周波数へ概ね連続する順序である。次に、可変長（ＶＬＣ）モジュール１２０は可変長符号化とランレングス符号化を使って、マクロブロックに対する量子化ＤＣＴ係数列と副次的情報の全てを符号化する。
【００３２】
動きの予測と補償を行うために、第１の符号化モジュール１０１は、符号化されたアンカーフレームを基準フレームとして使うために生成する。具体的には、量子化モジュール１１５Ｐによって生成された量子化ＤＣＴ係数（例えば、８ｘ８の量子化係数ブロック）は、逆量子化（Ｑ-1）モジュール１２５Ｐに与えられる。ここで、各マクロブロックは逆量子化処理がなされる。結果としての逆量子化ＤＣＴ係数（例えば、８ｘ８の逆量子化ＤＣＴ係数ブロック）が逆ＤＣＴ（ＤＣＴ-1）モジュール１３０Ｐに与えられる。ここで、各マクロブロックは逆ＤＣＴ処理がなされて、復号化された誤差信号が生成される。ＤＣＴ-1モジュール１３０Ｐで生成された誤差信号は加算器１５６に入力される。
【００３３】
動き推定モジュール１５０Ｐは入力情報ストリームＩＮと記憶されたアンカーフレーム情報ストリームＡＯＵＴを受信する。この記憶されたアンカーフレーム情報ストリームＡＯＵＴは、第２の符号化モジュール１０１から供給された入力アンカーフレーム情報ストリームＡＩＮを格納するアンカーフレーム記憶モジュール１７０から出力されるが、以下で詳細に説明される。手短に言えば、記憶されたアンカーフレーム情報ストリームＡＯＵＴは、現在、第２の符号化モジュール１０２（と第１の符号化モジュール１０１）によって符号化されたＧＯＦあるいはＧＯＰのイントラ符号化第１情報ストリームＡＯＵＴが復号化されたものを表す。
【００３４】
動き推定モジュール１５０Ｐは、入力情報ストリームＩＮと記憶されたアンカーフレーム情報ストリームＡＯＵＴを使って動ベクトルを推定する。動ベクトルは二次元ベクトルであり、動き補償の際に使われ、現在のピクチャ内のブロックの座標位置から基準フレーム内の座標までのオフセット値を供給する。基準フレームは、前方向予測符号化フレーム（Ｐフレーム）、もしくは、双方向（即ち、前方向と後方向）予測フレーム（Ｂフレーム）でよい。動ベクトルを使って経路に伝送される情報量を減らすことによって画像圧縮を大幅に改善することができる。何故ならば、現在のフレームと基準フレーム間の変化分だけが符号化されて伝送されるからである。動ベクトルは動き補償モジュール１４５ＰとＶＬＣモジュール１２０Ｐに与えられる。
【００３５】
動き補償モジュール１４５Ｐは受信された動ベクトルを利用して、サンプル値の予測効率を改善する。予測誤差を生成するために使われた、復号化された前のサンプル値を含む過去や将来の基準フレームに対するオフセット値を与える動ベクトルを使った予測が動き補償には必要である。即ち、動き補償モジュール１５０Ｐは前に復号化されたフレームと動きフレームを使って現在のフレームの推定値を生成する。さらに、当業者であれば、動き推定モジュールと動き補償モジュールによって実行された処理を複合モジュール、例えば、一つのブロック動き補償器で実行できることがわかっている。
【００３６】
所定のマクロブロックに対する動き補償予測を行う前に、符号化モードを選択する必要がある。符号化モード決定する分野では、ＭＰＥＧ規格とＭＰＥＧ準拠の規格として複数の様々なマクロブロック符号化モードが提供されている。具体的には、ＭＰＥＧ−２では、イントラモード、非動き補償モード（非ＭＣ）、フレーム／フィールド／デュアルプライム動き補償インターモード、前方向／後方向／平均インターモード、フィールド／フレームＤＣＴモードを含むマクロブロック符号化モードがある。
【００３７】
符号化モードが選択されると、動き補償モジュール１４５Ｐは、過去や将来の基準ピクチャに基づくブロック内容の経路ＰＦ上に動き補償された予測フレーム（例えば、予測画像）を生成する。減算器１５５では、経路ＰＦ上のこの動き補償された予測フレームを現在のマクロブロック内の入力情報フレームＩＮ（例えば、映像イメージ）から減算して、誤差信号、即ち、予測剰余信号を生成する。予測剰余信号を生成することにより、映像イメージから冗長な情報を効果的に除去することができる。上述されたように、予測剰余信号は、別の処理を行うモード決定モジュール１０５Ｐに与えられる。
【００３８】
ＶＬＣエンコーダ１２０Ｐによって生成されたＶＬＣデータストリームは、例えば、ＧＯＦ／ＧＯＰデータ構造の少なくとも一つの符号化されたサブＧＯＦ／ＧＯＰを保持する“先入れ先出し”（ＦＩＦＯ）バッファ等のバッファ１３５Ｐで受信される。バッファ１３５Ｐに格納されたＶＬＣデータストリームは、セレクタ１０４を介して、例えば、ＦＩＦＯバッファ等の出力バッファ１６０に与えられる。
【００３９】
様々な種類のピクチャと可変長符号化を用いた結果、出力バッファ１６０のビットレートの全てが可変となる。即ち、各フレームを符号化するために使われるビット数は様々である。出力情報ストリームＯＵＴを、例えば、記憶媒体や遠距離通信経路等に供給するための固定レートの経路を備えるアプリケーションでは、出力バッファ１６０を使ってビットレートを平滑するためにエンコーダの出力をその経路に合わせる。従って、ＦＩＦＯバッファ１６０の出力信号ＯＵＴは、入力情報ストリームＩＮが圧縮されたものである。
【００４０】
第２の符号化モジュール１０２は、離散コサイン変換（ＤＣＴ）モジュール１１０Ｉ、量子化（Ｑ）モジュール１１５Ｉ、可変長符号化（ＶＬＣ）モジュール１２０Ｉ、逆量子化（Ｑ-1）モジュール、逆離散コサイン変換（ＤＣＴ-1）モジュール１３０１Ｉ、バッファ１３５Ｉ、レート制御モジュール１４０Ｉを備える。第２の符号化モジュール内に含まれる様々なモジュールは相互に接続され、第１の符号化モジュール１０１について上述された方法と実質的に同じように動作する。従って、２つの符号化モジュール間の差のみについて詳細に説明する。２つの符号化モジュール間での主な違いは、第２の符号化モジュール１０２では、アンカーフレームとして符号化される予定のＧＯＦ／ＧＯＰデータ構造の入力情報フレームだけを符号化することである。対照的に、第１の符号化モジュール１０１はＧＯＦ／ＧＯＰデータ構造の入力情報フレームの全てを符号化する。
【００４１】
コントローラ１０３は、図１で示すＭＰＥＧ準拠のエンコーダを幾つかの動作モード、即ち、連続動作モードと不連続動作モードのうちの一つで動作する。コントローラ１０３は連続動作モードで通常動作する。ここで、出力バッファに与えられる情報ストリームは定義されたＧＯＦ／ＧＯＰデータ構造に従う。例えば、供給された情報ストリーム内で連続するＩフレーム型アンカーフレームを生成させないために、例えば、場面変化やその他の情報ストリームが不連続となる等の事象がおこるとコントローラ１０３は不連続動作モードに入る。不連続動作モードでは、コントローラ１０３は第１の（一時的）アンカーフレームをＩフレームからＰフレームに変える。各アンカーフレームは、上述したようにＩフレームとＰフレームの両方として双方向符号化されているため、このことが可能となる。コントローラ１０３の動作は、図１と図２について以下で詳細に説明される。
【００４２】
入力情報ストリームＩＮ内に情報の不連続領域がある、例えば、入力映像ストリーム内に場面変化や“場面カット”があることがわかると、コントローラ１０３は不連続動作モードに入る。連続動作モードでは、スイッチ１０４の出力点にＧＯＦ／ＧＯＰデータ構造に従う情報ストリームを生成させるため、第１のエンコーダ出力ストリームＳ１０１と第２のエンコーダ出力ストリームＳ１０２を選択するように、コントローラ１０３はセレクタ１０４を制御する。具体的には、コントローラ１０３は、形成されるＧＯＦあるいはＧＯＰの第１のフレームとして、ＧＯＦあるいはＧＯＰの第１のフレームに関連して形成される第２のエンコーダ出力ストリームＳ１０２内のＩフレームを選択するようスイッチ１０４を制御する。従って、Ｉフレーム型の双方向符号化フレームが選択される。次に、コントローラ１０３は、形成されるＧＯＦあるいはＧＯＰの残りのフレームとして、ＧＯＦあるいはＧＯＰの残りのフレームに関連するアンカーフレームと非アンカーフレームを選択するようにセレクタ１０４を制御する。この処理は、コントローラ１０３が不連続動作モードに入るまで各ＧＯＦあるいはＧＯＰに対して繰り返される。
【００４３】
不連続動作モードでは、コントローラ１０３は、新たなＧＯＦあるいはＧＯＰ情報構成の先頭から一つのサブＧＯＦ／ＧＯＰ内に不連続があるかどうか調べる。もしこれが本当ではないなら（即ち、前のアンカーフレームがＰフレームであるため、新たなサブＧＯＦ／ＧＯＰの第１フレームではない）、コントローラ１０３は、情報の不連続が発生した後のＩフレームとしてアンカーフレームを符号化することによって新たなサブＧＯＦ／ＧＯＰを開始させる。しかしながら、もし予定されたＩフレームの一つのサブＧＯＦ／ＧＯＰに不連続が発生すると、コントローラ１０３は、Ｐフレーム型の双方向符号化された前のアンカーフレームがそれに関連する非アンカーフレーム（即ち、サブＧＯＦ／ＧＯＰのＢフレーム）に対応して選択されるようにセレクタ１０４を制御する。次に、コントローラ１０３は、情報ディスクの連続領域の直後のＩフレーム型の双方向符号化アンカーフレームが選択されるようにセレクタ１０４を制御する。実際は、新たなＧＯＦ／ＧＯＰの予定された第１サブＧＯＦ／ＧＯＰが、前のＧＯＦ／ＧＯＰ情報構成の最後のサブＧＯＦ／ＧＯＰに形成され、また、新たなＧＯＦ／ＧＯＰ情報構成では、不連続後のアンカーフレームが第１のフレームとして始まる。
【００４４】
【表１】
0004373609.tif 000002
【００４５】
表１は本発明を理解するのに役立つ情報を示す。表１の第１行は、本発明に提供される複数の入力情報フレーム、例えば、映像フレームの各々と関連するフレーム番号（即ち、１−１８）を結びつけるものである。表１の第２行は、第１行の入力映像フレームの各々に関連する場面番号（即ち、１−２）を示す。１１番目のフレーム後の場面１から場面２への場面番号の遷移に注目することは重要である。
【００４６】
表１の第３行は入力映像フレーム（即ち、ＩＢＢＰＢＢＰＢＢ．．．）を符号化するために使われる所望のＧＯＦ／ＧＯＰデータ構造を示す。この所望のＧＯＦ／ＧＯＰデータ構造は、出力バッファ１６０から例えば伝送経路に供給される出力情報ストリームＯＵＴ向けの構造である。図１に示された模範的なＧＯＦ／ＧＯＰデータ構造は例示するためだけのものであり、ＧＯＦ／ＧＯＰデータ構造を用いて本発明を実施することができることに注目すべきである。
【００４７】
第４行は、図１に示されるＭＰＥＧ準拠のエンコーダの第１の符号化モジュール１０１の出力情報ストリームＳ１０１を示す。上述したように、第１の符号化モジュール１０１は入力情報ストリームＩＮを受信し符号化して、フレーム・グループ（ＧＯＦ）、もしくは、ピクチャ・グループ（ＧＯＰ）のデータ構造、例えば、表１の第３行に示されたＧＯＦ／ＧＯＰデータ構造に部分的に従う第１の符号化情報ストリームＳ１０１を生成する。第１の符号化情報ストリームＳ１０１は、ＧＯＦもしくはＧＯＰのデータ構造に部分的に従う。何故ならば、アンカーフレームがＧＯＦ／ＧＯＰデータ構造のＩフレームになる予定であったとしても、第１の符号化モジュール１０１は全てのアンカーフレームをＰフレームとして符号化するからである。従って、第１の符号化情報ストリームＳ１０１は、Ｐフレームをアンカーフレームとして備えるサブＧＯＦ、もしくは、サブＧＯＰを備える。
【００４８】
第５行は、図１に示されたＭＰＥＧ準拠のエンコーダの第２の符号化モジュール１０２の出力情報ストリームＳ１０２を示す。上述されたように、第２の符号化モジュール１０２は入力情報ストリームＩＮを受信し符号化して、イントラ符号化されたアンカーフレームだけを備える第２の符号化情報ストリームＳ１０２を生成する。具体的には、フレームが、符号化モジュール１０１で利用されるＧＯＰ／ＧＯＰデータ構造に従うＰフレームになる予定であっても、第２の符号化モジュール１０２はアンカーフレームの全てをイントラ符号化フレーム（Ｉフレーム）として符号化する。従って、第２の符号化情報ストリームＳ１０２はイントラ符号化アンカーフレームだけを備える。
【００４９】
第６行は、図１のＭＰＥＧ準拠のエンコーダの出力バッファ１６０から供給された出力情報ストリームＯＵＴを示す。具体的には、第６行は、第１の場面（フレーム１１）と第２の場面（フレーム１２）からの変化に対応してＧＯＦ／ＧＯＰデータ構造になされた修正を示す。
第３行で定義されたＧＯＦ／ＧＯＰ構造を参照すると、フレーム１３はＰフレームとして符号化される予定となっている。しかしながら、新たな場面がフレーム１２から始まるので、場面変化領域の次の第１のサブＧＯＰ／ＧＯＰの第１のアンカーフレームはＩフレームとして符号化される。フレーム１０（双方向符号化アンカーフレーム）は、既にＩフレームとして予定されているので、コントローラによってＰフレーム型のフレーム１０が出力用に選択され、他方、Ｉフレーム型のフレーム１３が出力用に選択される。このように、近接する２つのＩフレーム（即ち、フレーム１０と１３）を出力するような好ましくない状態が回避される。
【００５０】
第７行は、図１に示されたＭＰＥＧ準拠のエンコーダの出力バッファ１６０から供給された別の出力情報ストリームＯＵＴを示す。具体的には、第７行は、第１の場面（フレーム１１）と第２の場面（フレーム１２）からの変化に対応してＧＯＰ／ＧＯＰデータ構造に対してなされた修正を示す。ここで、新たな場面（即ち、フレーム１２）の第１のフレームは、第６行で示される新たな場面の第１のアンカーフレーム（即ち、フレーム１３）ではなく、Ｉフレームとして符号化される。
【００５１】
図２は、図１に示されるＭＰＥＧ準拠のエンコーダでの使用に適する適応的フレーム切り替えルーチン２００のフロー図を示す。具体的には、コントローラ１０３内の制御ルーチンとして、即ち、図１のＭＰＥＧ準拠のエンコーダ１００の複数の協力的なモジュール間での論理処理として、図２のルーチン２００を実行することができる。アンカーフレームをＩフレームとＰフレームの両方（即ち、双方向符号化フレーム）に同時に符号化する符号化システムで、ルーチン２００は適応的フレームの切り替えを行う。
【００５２】
図２のルーチン２００は、変数ＬＡＳＴ＿ＩＮＴＲＡを０に設定するステップ２０５から始まる。次に、ルーチン２００はステップ２１０に進む。ここでは、符号化される受信した入力情報フレームがＧＯＰ／ＧＯＰデータ構造のＩフレームとして符号化される予定であるかどうかについて質問される。もしステップ２１０の質問に対する答えは肯定的であれば、ルーチン２００はステップ２１５へ進む。
【００５３】
ステップ２１５では、受信されたフレームをＩフレームとして符号化し、符号化されたＩフレームを第１のバッファ（即ち、バッファ＿Ｉ）に格納する。次に、ルーチン２００はステップ２２０へ進む。ここでは、受信されたフレームをＰフレームとして符号化し、符号化されたＰフレームを第２のバッファ（即ち、バッファ＿Ｐ）に格納する。ルーチン２００は次にステップ２２５に進む。ここでは、変数ＬＡＳＴ＿ＩＮＴＲＡが１に設定される。次に、ルーチン２００はステップ２１０へ進む。
【００５４】
もしステップ２１０での質問に対する答えが否定的であれば、ルーチン２００はステップ２３０へ進む。ステップ２３０では、受信されたフレームがＢフレームに符号化される予定になっているかどうかについて質問される。もしステップ２３０での質問に対する答えが肯定的であれば、ルーチン２００はステップ２３５へ進む。ここでは、変数ＬＡＳＴ−ＩＮＴＲＡが１であるかどうかについて質問される。もしステップ２３５での質問に対する答えが肯定的であれば、ルーチン２００はステップ２４０へ進む。ここでは、受信フレームがＢフレームとして符号化され、符号化されたＢフレームが第３のバッファ（即ち、バッファ＿Ｂ）に格納される。次に、ルーチン２００はステップ２１０へ進む。もしステップ２３５での質問に対する答えが否定的であれば、ルーチン２００はステップ２４５へ進む。ここでは、受信フレームをＢフレームとして符号化し、符号化されたＢフレームを出力バッファに送る。次に、ルーチン２００はステップ２１０へ進む。
【００５５】
第１のバッファ（即ち、バッファ＿Ｉ）、第２のバッファ（即ち、バッファ＿Ｐ）、第３のバッファ（即ち、バッファ＿Ｂ）は、特有のメモリモジュール、もしくは、そのメモリモジュールの一部、あるいは、例えば、コントローラ１０３の内部メモリ、または、エンコーダ出力バッファの一部を含むその他の入手可能なメモリを備えてもよいことに注目すべきである。本開示による教唆を受ける当業者にとって、本発明を様々なメモリ構成に適するように修正することは簡単なことであり、また、様々なメモリの位置によって本発明の実施が影響を受けることはない。
【００５６】
もしステップ２３０での質問の答えが否定的であれば、ルーチン２００はステップ２５０は進む。ここでは、情報の不連続領域（例えば、入力映像ストリーム内での場面変化領域）が検出されたかどうかについて質問される。もしステップ２５０での質問に対する答えが肯定的であれば、ルーチン２００はステップ２７２へ進む。ここでは、変数ＬＡＳＴ＿ＩＮＴＲＡが１に設定されているかどうか質問される。もしステップ２７２での質問に対する答えが否定的であれば、ルーチン２００はステップ２７４へ進む。ここでは、受信フレームがＩフレームとして符号化され、符号化されたＩフレームは出力バッファに送られる。次に、ルーチン２００はステップ２１０へ進む。
【００５７】
もしステップ２７２での質問に対する答えが肯定的であれば、ルーチン２００はステップ２７６へ進む。ここでは、第２のバッファ（即ち、バッファ＿Ｐ）の内容が出力バッファに送られる。次に、ルーチン２００はステップ２７８に進む。ここでは、第３のバッファ（例えば、バッファ＿Ｂ）の内容が出力バッファに送られ、そして、ステップ２８０に進む。ここでは、受信フレームがＩフレームとして符号化され、符号化されたＩフレームは出力バッファに送られる。次に、ルーチン２００はステップ２８２に進む。ここでは、変数ＬＡＳＴ＿ＩＮＴＲＡが０に設定される。次に、ルーチン２００がステップ２１０に進む。
【００５８】
もしステップ２５０の質問に対する答えが否定的であれば、ルーチン２００はステップ２５５へ進む。ここでは、変数ＬＡＳＴ＿ＩＮＴＲＡが１に設定されているかどうかについて質問される。もしステップ２５５での質問に対する答えが否定的であれば、ルーチン２００はステップ２６０へ進む。ここでは、受信フレームがＰフレームとして符号化され、符号化されたＰフレームは出力バッファに送られる。次に、ルーチン２００はステップ２１０に進む。
【００５９】
もしステップ２５５での質問に対する答えが肯定的であれば、ルーチン２００はステップ２６２へ進む。ここでは、変数ＬＡＳＴ＿ＩＮＴＲＡが０に設定される。次に、ルーチン２００はステップ２６４へ進む。ここでは、第１のバッファ（即ち、バッファ＿Ｉ）の内容が出力バッファに送られ、そして、ステップ２６８へ進む。ここでは、第３のバッファ（即ち、ＢＵＦＦＥＲ＿Ｂ）の内容が出力バッファに送られる。次に、ルーチン２００はステップ２７０に進み、受信フレームがＰフレームとして符号化され、符号化されたＰフレームが出力バッファに送られる。次に、ルーチン２００はステップ２１０に進む。
【００６０】
上述のフロールーチンは、本発明に係る方法の模範的な実施形態を示す。具体的には、上述のルーチンは、受信したアンカーフレームをＩフレームとＰフレームの両方に同時に符号化する処理を示す。符号化（即ち、圧縮された）情報フレームを格納するためだけに第１、第２、第３の出力バッファが使用されることに注目することは重要である。従って、増大する処理に対する必要条件を犠牲にして、システムでのメモリに対する必要条件が減る。このシステムで追加された処理（例えば、第２の符号化モジュールを追加すること）にかかるコストは、メモリにかかる費用の低下分の差し引き勘定以上になる可能性があることを本発明者はわかっている。
【００６１】
本発明の上述の実施形態では、第２の符号化モジュール１０２はアンカーフレームの全てをＩフレームとして符号化する。また、ＧＯＦ／ＧＯＰデータ構造のＰフレームとして符号化される予定のフレームだけをＩフレームとして符号化するように第２の符号化モジュール１０２を制御できることに注目すべきである。即ち、本発明の別の実施形態では、第１の符号化モジュール１０１は、ＧＯＰ／ＧＯＰデータ構造に基づくＩフレーム、Ｐフレーム、Ｂフレームとして入力フレームを符号化する。同時に、第２の符号化モジュール１０２は、ＧＯＰ／ＧＯＰデータ構造のＰフレームとして符号化される予定のフレームだけをＩフレームとして符号化する。
【００６２】
本発明に係るこの別の実施形態では、連続動作モードでは、コントローラ１０３だけにより、第１の符号化モジュールの出力ストリームＳ１０１を出力バッファ１６０に供給させることができること以外は、コントローラ１０３は上述された方法と実質的に同様に動作する。これは、第１の符号化モジュール１０１の出力ストリームＳ１０１がＧＯＦ／ＧＯＰデータ構造に従って適切に符号化されるからである。不連続動作モードでは、第１の符号化モジュールの出力ストリームＳ１０ｌ内のＰフレームをＩフレームに置き換える必要があるとき、コントローラ１０３によって、第２の符号化モジュール１０２の出力ストリームＳ１０２が出力バッファ１６０に与えられる。
【００６３】
図３は、本発明に係るＭＰＥＧ準拠の符号化システム３００の実施形態を示す。具体的には、図３は、符号化モジュール１０１、コントローラ１０３、出力バッファ１６０を備えるＭＰＥＧ準拠の符号化システム３００を示す。ＭＰＥＧ準拠の符号化システム３００は、複数の非圧縮情報フレーム、例えば、映像情報ストリームを構成する一連の画像を備える入力情報ストリームＩＮを受信し、符号化することで、符号化された出力情報ストリームＯＵＴを生成する。
【００６４】
符号化モジュール１０１は、入力情報ストリームＩＮを受信し符号化することで、フレーム・グループ（ＧＯＦ）、もしくは、ピクチャ・グループ（ＧＯＰ）のデータ構造に実質的に従う符号化情報ストリームＳ１０１を生成する。第１の符号化情報ストリームＳ１０１は、サブＧＯＦ／ＧＯＰバッファ１３５Ｐでバッファされ、出力バッファに与えられる。サブＧＯＰ／ＧＯＰバッファ１３５Ｐに格納された符号化フレームは、コントローラ１０３によって修正することができるが、このことは以下で説明される。符号化モジュール１０１は様々な要素を含むが、それらは、図１について上述された第１の符号化モジュール１０１の対応する構成要素と実質的に同じように動作する。そのため、様々な要素の中で動作が異なるものだけを以下で説明する。具体的には、符号化モジュール１０１は、加算器１５５、ノード決定モジュール１０５Ｐ、離散コサイン変換（ＤＣＴ）モジュール１１０Ｐ、量子化（Ｑ）モジュール１１５Ｐ、可変長符号化（ＶＬＣ）モジュール１２０Ｐ、逆量子化器（Ｑ−Ｉ）１２５Ｐ、逆離散コサイン変換（ＤＣＴ−Ｉ）モジュール１３０Ｐ、減算器１５６、バッファ１３５Ｐ、レート制御モジュール１４０Ｐ、動き補償モジュール１４５Ｐ、動き推定モジュール１５０Ｐ、アンカーフレーム記憶モジュール１７０を備える。
【００６５】
図３の符号化モジュール１０１と図１の第１の符号化モジュール１０１の主な違いは、逆ＤＣＴモジュール１３０Ｐの出力（即ち、最後のアンカーフレーム）がアンカーフレーム記憶モジュール１７０に格納され、動ベクトルを推定する動き推定モジュール１５０Ｐに与えられることである（図１の第２の符号化モジュールからの非符号化Ｉフレームではない）。さらに、ＧＯＦ／ＧＯＰ構造のＩフレームになる予定の符号化されていない各フレームはアンカーフレーム記憶モジュール１７０に格納される。従って、アンカーフレーム記憶モジュールは、符号化されていない最後のＩフレームと最後のＩフレームに先行する再生されたアンカーフレームを含む。このように、Ｐフレームとして再符号化されるＩフレーム（即ち、そのように予定された符号化Ｉフレーム）の場合、（符号化されていないＩフレームの他に）Ｉフレームに先行する再生されたアンカーフレームを使って、符号化されたＩフレームに対するＰフレームの置換えを予測する。
【００６６】
出力バッファ１６０は、図１の出力バッファ１６０と実質的に同じように動作する。出力バッファ１６０は、最も遠くにあるデコーダバッファのバッファ利用レベルを示すレート制御信号ＲＣを生成する。例えば、量子化パラメータを修正するためにレート制御信号を用いる符号化モジュール１０１にレート制御信号ＲＣを与えて出力情報ストリームＯＵＴのビットレートを制御することで、最も遠くにあるデコーダバッファでのバッファ・オーバフローやアンダーフローを避けることができる。
【００６７】
コントローラ１０３は符号化モジュール１０１を制御するエンコーダ制御信号Ｃ１を生成して、入力情報ストリームＩＮと、符号化モジュール１０１からのモード決定指示信号ＭＤのうちの少なくとも一つを受信する。図３のコントローラ１０３は、図１について上述された方法で情報の不連続領域を検出する。また、図３のコントローラ１０３が連続モードと不連続モードのうちの一方で動作しても２つの動作モードでの最終結果は同じ（ＧＯＦ／ＧＯＰデータ構造を適用したとき）であるが、これらのモードでのコントローラ１０３の動作は図１のコントローラ１０３の動作とはわずかに異なる。
【００６８】
連続動作モードでは、図３の符号化モジュール１０１は入力情報ストリームＩＮを上述の方法で符号化して、符号化情報ストリームＳ１０１を生成する。符号化情報ストリームは、出力バッファに供給される前に、一時的バッファ（サブＧＯＦ／ＧＯＰバッファ１３５Ｐ）に格納される。
情報の不連続領域を検出すると、コントローラ１０３は不連続動作モードに入る。もし最後の符号化アンカーフレームをＰフレームとして再符号化する（即ち、現在予定されているＰフレームをＩフレームとして符号化する）ことが適当と考えられるならば、最後の符号化アンカーフレーム（Ｉフレームと推定される）の符号化前のものがアンカー記憶モジュール１７０から検索され、次に、非符号化Ｉフレーム（アンカー記憶モジュールにも格納される）に一時的に先行する再生されたアンカーフレームを使ってＰフレームとして符号化される。従って、図３のＭＰＥＧ準拠のエンコーダは、前に符号化されたＩフレームをＰフレームとして、"オンデマンド"で再符号化する。
図４は、図３に示すＭＰＥＧ準拠のエンコーダでの使用に適した適応的フレーム切り替えルーチン４００のフロー図を示す。具体的には、コントローラ１０３内の制御ルーチンとして、即ち、図３のＭＰＥＧ準拠のエンコーダ３００の協力的なモジュール間の論理処理として図４のルーチン４００を実施することができる。必要に応じてＩフレームかＰフレームのいずれか一方でアンカーフレームをオンデマンドで符号化する符号化システム内で、ルーチン４００は適応的なフレーム切り替えを行う。
【００６９】
ルーチン４００はステップ４０２に進み、変数ＬＡＳＴ＿ＩＮＴＲＡを０に設定する。次に、ルーチン４００はステップ４０４へ進み、受信した情報フレームが（ＧＯＦ／ＧＯＰデータ構造に従う）Ｉフレームとして符号化される予定であるかどうかについて質問される。もしステップ４０４での質問に対する答えが肯定的であれば、ルーチン４００はステップ４０６に進む。ここでは、受信フレームがＩフレームとして符号化され、符号化されたＩフレームが第１のバッファ（即ち、バッファ＿Ｉ）に格納される。次に、ルーチン４００はステップ４０８へ進み、変数ＬＡＳＴ＿ＩＮＴＲＡが１に設定される。次に、ルーチン４００はステップ４１０に進み、受信フレームと前に再生された基準フレーム（即ち、アンカーフレーム）が非符号化バッファ（例えば、アンカー記憶モジュール１７０）に格納される。次に、ルーチン４００はステップ４０４に進む。
【００７０】
もしステップ  ４０４での質問に対する答えが否定的であれば、ルーチン４００はステップ  ４１２に進む。ここでは、受信フレームがＢフレームとして符号化されるよう予定されているかどうかについて質問される。もしステップ  ４１２での質問が肯定的であれば、ルーチン４００はステップ  ４１４に進む。ここでは、変数ＬＡＳＴ＿ＩＮＴＡが１であるかどうかについて質問される。もしステップ４１４での質問に対する答えが肯定的であれば、ルーチン４００はステップ４１６へ進む。ここでは、受信フレームがＢフレームとして符号化され、符号化されたＢフレームは第２のバッファ（即ち、バッファ＿Ｂ）に格納される。次に、ルーチン４００はステップ４０４に進む。もしステップ４１４の質問に対する答えが否定的であれば、ルーチン４００はステップ４１８に進む。ここでは、受信フレームがＢフレームとして符号化され、符号化されたＢフレームは出力バッファに送られる。次に、ルーチン４００はステップ４０４に進む。
【００７１】
もしステップ４１２での質問に対する答えが否定的であれば、ルーチン４００はステップ４２０に進む。ここでは、情報の不連続領域（例えば、場面変化の領域）が検出されたかどうかについて質問される。
【００７２】
もしステップ４２０での質問に対する答えが肯定的であれば、ルーチン４００はステップ４２２へ進む。ここでは、変数ＬＡＳＴ＿ＩＮＴＲＡが１であるかどうかについて質問される。もしステップ４２２での質問に対する答えが否定的であれば、ルーチン４００はステップ４２４へ進む。ここでは、受信フレームがＩフレームとして符号化され、符号化されたＩフレームは出力バッファに供給される。次に、ルーチン４００はステップ４０４に進む。
【００７３】
もしステップ４２２での質問に対する答えが肯定的であれば、ルーチン４００はステップ４２６に進む。ここでは、前に格納された基準フレームが  Ｐフレームとして再符号化され、符号化された  Ｐフレーム出力  バッファに供給される。次に、ルーチン  ４００はステップ４２８に進む。ここでは、第２のバッファ（即ち、バッファ＿Ｂ）の内容が出力バッファに供給される。次に、ルーチン４００はステップ４３０へ進み、受信フレームがＩフレームとして符号化され、符号化されたＩフレームは出力バッファに供給される。次に、ルーチン４００はステップ４３２に進み、変数ＬＡＳＴ＿ＩＮＴＲＡが０に設定され、次に、ステップ４０４へ進む。
【００７４】
もしステップ４２０での質問に対する答えが否定的であれば、ルーチンはステップ４３４に進む。ここでは、変数ＬＡＳＴ＿ＩＮＴＲＡが１であるかどうかについて質問される。もしステップ４３４での質問に対する答えが否定的であれば、ルーチン４００はステップ４３６へ進む。ここでは、受信フレームはＰフレームとして符号化され、符号化されたＰフレームは出力バッファに送られる。次にルーチン４００はステップ４０４へ進む。
【００７５】
もしステップ４３４での質問に対する答えが肯定的であれば、ルーチン４００はステップ４３８に進む。ここでは、第１のバッファ（バッファ＿Ｉ）の内容が出力バッファに供給され、次にステップ４４０に進む。ここでは、第２のバッファ（バッファ＿Ｂ）の内容が出力バッファに供給される。次に、ルーチン４００は４４４に進む。ここでは、受信フレームはＰフレームとして符号化され、符号化されたＰフレームは出力バッファに供給される。次に、ルーチン４００はステップ４４６に進み、変数ＬＡＳＴ＿ＩＮＴＲＡが０に設定され、次に、ステップ４０４に進む。図４のルーチン４００はより多くのメモリ資源を必要とし、また、図２のルーチン２００より少ない処理資源を必要とする傾向があること以外は、図４の適応的フレーム切り替えルーチンは図２の適応的フレーム切り替えルーチン２００と実質的に同じ処理を実行する。これは、図４のルーチン４００では、ＧＯＰもしくはＧＯＰの第１のフレームとなるように予定される非符号化（即ち、非圧縮の）情報フレームと、その前の再生されたアンカーフレームを記憶する必要があるからである。
【００７６】
図５は、本発明に係るＭＰＥＧ準拠の符号化システム５００の一実施形態を示す。具体的には、図５は、フレーム遅延モジュール５１０、符号化モジュール１０１、コントローラ１０３、出力バッファ１６０を備えるＭＰＥＧ準拠の符号化システム５００を示す。ＭＰＥＧ準拠の符号化システム  ５００は、複数の非圧縮情報フレーム、例えば、映像情報ストリームを構成する一連の画像を備える入力情報ストリームＩＮを受信し符号化して、符号化出力情報ストリームＯＵＴを生成する。図５のＭＰＥＧ準拠の符号化システム５００は、図３について上述されたＭＰＥＧ準拠の符号化システム３００と実質的に同様であるので、２つのシステムの違いだけについて詳細に説明する。
【００７７】
図５のＭＰＥＧ準拠の符号化システム５００では、Ｍフレーム遅延モジュール５１０、例えば、“先入れ先出し”（ＦＩＦＯ）バッファは入力情報ストリームＩＮを受信し、遅延された入力情報ストリームＩＮをエンコーダ１０１に供給する。上述したように、ＧＯＦ／ＧＯＰデータ構造は、最大の大きさのＭフレームをもつ複数のサブＧＯＦ、もしくは、サブＧＯＰのデータ構造で構成されるＮフレームを備える。従って、Ｍフレーム遅延モジュール５１０は、ＧＯＦ／ＧＯＰデータ構造に基づく少なくとも一つのサブＧＯＦ／ＧＯＰを保持することができる。
【００７８】
符号化モジュール１０１は、遅延された入力情報ストリームＩＮを受信し、符号化して、フレーム・グループ（ＧＯＦ）、もしくは、ピクチャ・グループ（ＧＯＰ）のデータ構造に実質的に従う符号化情報ストリームＳ１０１を生成する。第１の符号化情報ストリームＳ１０１は出力バッファ１６０に供給される。符号化モジュール１０１は、図１と図３について上述された第１の符号化モジュール１０１の対応する構成要素と実質的に同様に動作する様々な要素を含む。そのため、それらの様々な要素の動作のうち異なっている点だけを以下で詳細に説明する。具体的には、符号化モジュール１０は、加算器１５５、モード決定モジュール１０５Ｐ、離散コサイン変換（ＤＣＴ）モジュール１１０Ｐ、量子化（Ｑ）モジュール１１５Ｐ、可変長符号化（ＶＬＣ）モジュール１２０Ｐ、逆量子化器（Ｑ-1）１２５Ｐ、逆離散コサイン変換（ＤＣＴ-1）モジュール１３０Ｐ、減算器１５６、レート制御モジュール１４０Ｐ、動き補償モジュール１４５Ｐ、動き推定モジュール１５０Ｐ、アンカーフレーム記憶モジュール１７０を備える。
【００７９】
図５の符号化モジュール１０１と図３の符号化モジュール１０１の主な違いは、図５の符号化モジュール１０１が図３の符号化モジュール１０１内に示されたバッファ１３５（それに関連する選択的なレート制御信号ＲＣ１も）を含まないことである。さらに、図５の符号化モジュール１０１のアンカーフレーム記憶モジュール１７０は、図３の符号化モジュール１０１に示されているように、ＧＯＦ／ＧＯＰ構造に基づくＧＯＦ、もしくは、ＧＯＰ（即ち、Ｉフレーム）の第１のフレームとなる予定の非符号化情報フレームを格納しない。最後に、図５の符号化モジュール１０１のモード決定モジュール１０５Ｐは、図３の符号化モジュール  １０１で示されているように、オプションとしてのモード決定信号  ＭＤ１をコントローラに供給しない。
出力バッファ  １６０は、図  ３の出力バッファ１６０と実質的に同様に動作する。出力バッファ１６０は、最も遠くにあるデコーダバッファのバッファ利用レベルを示すレート制御信号  ＲＣを生成する。レート制御信号ＲＣは符号化モジュール１０１に供給される。ここで、符号化モジュール１０１はこのレート制御信号ＲＣを使って、例えば、量子化パラメータを修正する。これにより、出力情報ストリームＯＵＴのビットレートが制御されて、最も遠くにあるデコーダバッファでのバッファ・オーバフローやアンダーフローの発生を避けることができる。
【００８０】
コントローラ１０３は、符号化モジュール１０１を制御するためのエンコーダ制御信号Ｃ１を生成する。コントローラ１０３は、入力情報ストリームＩＮを受信して、その情報ストリーム内で情報の不連続領域を検出する。（非遅延の）入力情報ストリームＩＮ内で情報の不連続領域が検出されると、コントローラ１０３は、連続する２つのサブＧＯＦ／ＧＯＰの符号化フレーム・グループの両方にＩフレームが含まれないように、エンコーダによって使われるＧＯＦ／ＧＯＰデータ構造を動的に修正する。
【００８１】
図５のコントローラ１０３の動作を示すために、Ｍフレーム遅延モジュール５１０に入る入力情報ストリームＩＮのサブＧＯＦ／ＧＯＰに情報の不連続領域が含まれる場合について考える。コントローラ１０３は入力ストリームを監視することで、遅延入力情報ストリームＩＮをエンコーダ１０１が受信する前に、情報の不連続領域を検出する。コントローラ１０３は、情報の不連続領域を含むサブＧＯＦ／ＧＯＰのアンカーフレームをＰフレームとして符号化するようエンコーダ１０１を制御する。また、コントローラ１０３は、情報の不連続領域（例えば、新たな場面の第１の映像フレーム）の次の第１のフレーム、もしくは、次のサブＧＯＰ／ＧＯＰのアンカーフレームをＩフレームとして符号化するようエンコーダ１０１を制御する。
【００８２】
サブＧＯＦ／ＧＯＰがエンコーダ１０１に供給される前に、コントローラ１０３は各サブＧＯＰ／ＧＯＰを検査するので、コントローラ１０３は検査されたサブＧＯＰ／ＧＯＰを符号化するための最も適した方法を確定することができる。即ち、コントローラは、符号化される予定の次のサブＧＯＦ／ＧＯＰに関する情報を制御信号Ｃ１を介してレート制御モジュール１４０Ｐに与える。従って、レートコントローラ１４０Ｐのバッファ利用予測が改善されるので、エンコーダ１０１の符号化の機能が改善される（例えば、ビット集合安全マージンを減らすことができるので、多くのビットを各フレームに割り付けることによって質の高いの符号化を行うことができる）。
【００８３】
特定のサブＧＯＦ／ＧＯＰで発生した予期せぬ場面変化の効果をＧＯＦ、もしくは、ＧＯＰ全体に波及させることにより、特定のサブＧＯＦ／ＧＯＰで起こっていた品質の低下を最小限にすることができることに注目すべきである。さらに、視覚的忠実度の維持については、場面の最後のサブＧＯＦ／ＧＯＰの重要性はおそらく場面の第１のサブＧＯＦ／ＧＯＰよりも低いので、現在の場面の最後のサブＧＯＦ／ＧＯＰに割り当てられたビットを減らすことができる。このため、次のサブＧＯＦ／ＧＯＰに対するビット割付け量を増やすことができるので、新たな場面のＩフレームの品質を改善することができる。
【００８４】
図５のエンコーダ１０１が、（図１では）常に２度、もしくは、（図３では）時々２度ではなく、一度だけ各アンカーフレームを符号化することに注目することは重要である。
【００８５】
図６は、図１もしくは図３のいずれか一方で示されたＭＰＥＧ準拠のエンコーダでの使用に適したコントローラ１０３を示す。コントローラ１０３は、同時に符号化する適応的フレーム切り替えルーチン２００や"オンデマンド"で符号化
する適応的フレーム切り替えルーチン４００を記憶するメモリ１０３−８はもとより、マイクロプロセッサ１０３−４を備える。マイクロプロセッサ１０３−４は、ソフトウエアルーチンの実行を支援する回路はもとより、電源、クロック回路、キャッシュメモリ等の従来の支援回路と協調動作する。そのため、ここではソフトウエア処理として説明される処理工程のうちの幾つかはハードウエア、例えば、様々な処理を実行するマイクロプロセッサ１０３−４と協調動作する回路で実行することが考えられる。また、コントローラ１０３は、様々な符号化モジュール（１０１と１０２）とセレクタ（１０４）間のインターフェイスを構成する入力／出力回路１０３−２を備える。本発明に係る適応的フレーム切り替えとそれに関連する制御処理を実行するようプログラムされている汎用コンピュータとしてコントローラ１０３が示されているが、特定用途向け集積回路（ＡＳＩＣ）のハードウエアで本発明を実施してもよい。そのため、（例えば、図２と図４について）ここで述べられる処理は、ソフトウエア、ハードウエア、もしくは、その組み合わせで等価的に実行されるものとして広く解釈されるべきである。
【００８６】
本発明のコントローラ１０３を使って、図２と図４で述べられた制御ルーチンを実行することができる。しかしながら、また、コントローラ１０３を使って、図１、図３、図５のＭＰＥＧ準拠のエンコーダを全体的にソフトウエアで実施できることに注目すべきである。そのため、図６には、入力情報ストリームＩＮを受信して、出力情報ストリームＯＵＴを生成するコントローラ１０３を示す。そのソフトウエアを使うことにより、コントローラ１０３は図１、図３、図５のＭＰＥＧ準拠のエンコーダについて上述した処理を実行する。
【００８７】
例えば、図３のエンコーダ１０１のバッファ１３５Ｐに符号化フレームを"リンクリスト"の形態で格納してもよいに注目すべきである。即ち、格納された符号化フレームの各々を、例えば、一連の符号化フレーム内での次の符号化フレームを識別するポインタ変数に関連づけることができる。この方法で、Ｐフレームの代わりにＩフレームを選択してエンコーダ出力ストリームＳ１０１に入れる処理には、非選択フレームの“リンクをはずし”、選択フレームを“リンク”する処理が含まれる。即ち、非リンクのフレームに先行する符号化フレームのポインタを作って、リンクされたフレームをポイントする。同様に、リンクされたフレームに関するポインタを作って、非リンクのフレームの次のフレームをポイントする。
【００８８】
本発明はＧＯＦ／ＧＯＰ構造のビット集合を有益に使うことで、情報ストリームの最後のサブＧＯＰ／ＧＯＰをイントラ符号化する際にそのビット集合を無駄にすることがなくなる。さらに、本発明は、狭い間隔のイントラ符号化情報フレーム（例えば、連続する２つのＩフレーム）によって引き起こされるデコーダバッファのオーバフロー状態が実質的に発生しないように動作する。さらに、双方向符号化情報フレームの情報の質、例えば、映像情報の質は、ＩフレームとＰフレームの両方にとってほとんど同じであると見なせることに注目すべきである。従って、ＧＯＰ／ＧＯＰの質の向上に加えて、ＧＯＦ／ＧＯＰの各フレームで認識可能な情報の劣化が起こるとはない。
【００８９】
本発明は、コンピュータで実行されるプロセスと、そのプロセスを実行する装置によって実施することができる。また、本発明は、有形の媒体、例えば、フロッピーディスク媒体、ＣＤ−ＲＯＭ、ハードドライブ、その他のコンピュータ読み出し可能記憶媒体で実現されるコンピュータプログラムコードで実施することができる。ここで、コンピュータプログラムコードがコンピュータにロードされて実行されるとき、そのコンピュータは本発明を実施する装置になる。また、本発明は、例えば記憶媒体に格納されコンピュータにロードされて実行されるか、または、電線や、ファイバー光学や電磁放射に基づくケーブル等の特定の伝送媒体を介して送信されるコンピュータプログラムコードの形態で実施することができる。ここで、コンピュータプログラムコードがコンピュータにロードされ実行されるとき、そのコンピュータは本発明を実施する装置となる。汎用マイクロプロセッサで実行するときは、コンピュータプログラムコードセグメントが特定の論理回路を生成するマイクロプロセッサを構成する。
【００９０】
本発明の教唆を具体化する様々な実施形態がここで詳述されたが、  当業者であれば、その教唆を具体化するために修正されたその他の多くの実施形態を簡単に考案することができる。
【図面の簡単な説明】
【図１】  図１は本発明によるＭＰＥＧ準拠の符号化システム１００を示す。
【図２】  図２は、図１で示されたＭＰＥＧ準拠のエンコーダでの使用に適した適応的フレーム切り替えルーチン２００のフロー図を示す。
【図３】  図３は、本発明によるＭＰＥＧ準拠の符号化システム１００の実施形態を示す。
【図４】  図４は、図３に示されたＭＰＥＧ準拠のエンコーダでの使用に適した適応的フレーム切り替えルーチン４００のフロー図を示す。
【図５】  図５は、本発明に係るＭＰＥＧ準拠の符号化システム５００の実施形態を示す。
【図６】  図６は、図１、図３、図５で示されたＭＰＥＧ準拠のエンコーダでの使用に適したコントローラを示す。
理解を容易にするために、複数の図に共通の同じ要素を示すことができるところには同じ参照番号を使っている。
【図１】
0004373609.tif 000003
【図２】
0004373609.tif 000004
【図３】
0004373609.tif 000005
【図４】
0004373609.tif 000006
【図５】
0004373609.tif 000007
【図６】
0004373609.tif 000008