(57)【要約】異なる定量化方法をサポートするデータストリームを相互コード化するのに使用可能なビデオデータを相互コード化する方法が開示されている。
2006518954.tif 000002
【特許請求の範囲】
【請求項１】
定量化された圧縮データを備える第１のタイプの第１のＭＰＥＧ(Motion Pictures Expert Group)データを受けるステップと、
前記第１のＭＰＥＧデータが所定の基準を満たすかを決定するステップと、
前記第１のＭＰＥＧデータが前記所定の基準を満たす時に前記圧縮データをスケーリングするステップと、を備える方法。
【請求項２】
前記第１のＭＰＥＧデータを受けるステップは、ＭＰＥＧ２データである前記第１のＭＰＥＧデータを備える請求項１に記載の方法。
【請求項３】
前記スケーリングするステップは、前記第１のＭＰＥＧデータが前記所定の基準を満たす時に第２のタイプの第２のＭＰＥＧデータを発生させるように、前記圧縮データをスケーリングすることを備える請求項１に記載の方法。
【請求項４】
前記第１のＭＰＥＧデータを受けるステップは、ＭＰＥＧ２データである前記第１のＭＰＥＧデータを備える請求項３に記載の方法。
【請求項５】
前記第２のＭＰＥＧデータを受けることは、ＭＰＥＧ４データである前記第２のＭＰＥＧデータを備える請求項４に記載の方法。
【請求項６】
決定するステップは、８に等しいＭＰＥＧ２データのＤＣ定量化スカラーである前記所定の基準を備える請求項５に記載の方法。
【請求項７】
前記スケーリングするステップは、４による前記圧縮データのスケーリングを備える請求項６に記載の方法。
【請求項８】
スケーリングするステップは、３による前記圧縮データのスケーリングを備える請求項６に記載の方法。
【請求項９】
スケーリングするステップは、２による前記圧縮データのスケーリングを備える請求項６に記載の方法。
【請求項１０】
スケーリングするステップは、１による前記圧縮データのスケーリングを備える請求項６に記載の方法。
【請求項１１】
スケーリングするステップは、４又はそれより小さい正の整数であるスケールファクタを決定することを備える請求項６に記載の方法。
【請求項１２】
決定するステップは、８に等しいＭＰＥＧ２データのＤＣ定量化スカラーである前記所定の基準を備える請求項１に記載の方法。
【請求項１３】
スケーリングするステップは、４又はそれより小さい正の整数であるスケールファクタを決定することを備える請求項１２に記載の方法。
【請求項１４】
スケーリングするステップは、前記圧縮データを得るように、前記第１のＭＰＥＧデータを逆定量化することを備える請求項１３に記載の方法。
【請求項１５】
スケーリングするステップは、スケール化したデータを得るように、前記圧縮データを前記スケールファクタによりスケーリングすることを備える請求項１４に記載の方法。
【請求項１６】
スケーリングするステップは、第２タイプのＭＰＥＧのＡＣ定量化スカラーを使用して前記スケール化されたデータをエンコードすることを備える請求項１５に記載の方法。
【請求項１７】
エンコーディングは、前記第１タイプで、前記第１のＭＰＥＧデータに関係するＭＰＥＧのＡＣ定量化スカラーを備え、該ＡＣ定量化スカラーは前記ＭＰＥＧのＡＣ定量化スカラーにより除されると前記定量化ファクタに等しい、請求項１６に記載の方法。
【請求項１８】
定量化された圧縮データを備える第１のＭＰＥＧデータのためのＡＣ定量化ファクタを決定するステップと、
第２のＭＰＥＧデータのためのＡＣ定量化ファクタを決定するステップと、を備え、
前記第２のＭＰＥＧデータのための前記ＡＣ定量化ファクタにより除された前記第１のＭＰＥＧデータのための前記ＡＣ定量化ファクタは、４より小さいか等しい整数である方法。
【請求項１９】
スケール化された圧縮データを得るために、前記整数により前記圧縮されたデータをスケーリングすることを備える請求項１８に記載の方法。
【請求項２０】
前記第２のＭＰＥＧデータのための前記ＡＣ定量化ファクタに基づいて前記スケール化された圧縮データをエンコードすることを備える請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
「ビデオデータの相互コード化のための方法及びシステム」という名称で、少なくとも一人の発明者が共通で、本願と同じ２００３年２月２４日が出願日で、代理人の整理番号が１４５９−０３００５８０である出願番号XX/XXX.XXXを有する出願中の関係出願が存在する。
【０００２】
「ビデオデータの相互コード化のための方法及びシステム」という名称で、少なくとも一人の発明者が共通で、本願と同じ２００３年２月２４日が出願日で、代理人の整理番号が１４５９−０３００４７０である出願番号XX/XXX.XXXを有する出願中の関係出願が存在する。
【背景技術】
【０００３】
デジタルビデオの使用は、これまでも増加しており、デジタルデータ処理及びデータりスピードの向上に従って増加し続けることが期待されている。１つの特徴を有するデジタルビデオストリームから異なる特徴を有するデジタルビデオストリームへのデジタルビデオの変形は、一般にビデオ相互コード化と呼ばれる。異なる特徴の例は、異なる量子化値により影響されるような、プロトコル（例えばＭＰＥＧ１及びＭＰＥＧ２）及びデータレートを有する。相互コード化の時に１つのビデオストリームのビデオ情報のすべてが維持される時、異ビデオストリームの無損失相互コード化が発生したという。無損失相互コード化を発生させるためには、第２のビデオストリームに対して利用可能な帯域幅が元のビデオストリーム内に存在するデータをサポートするのに十分であることが必要である。
【０００４】
現在、プロトコル間の無損失ビデオ相互コード化は、第１のプロトコルを有する第１のビデオストリームをデコードして翻訳データ（画像データ）を発生し、続いて翻訳データをエンコードして第２のプロトコルを有する第２のビデオストリームを発生させることにより達成される。翻訳データを使用するコード化は、コンピュータ言語的には大きなプロセスである。従って、相互コード化のシステム及び／又は方法は、相互コード化に必要な処理要求が少なく及び／又は無損失の相互コード化が実行できるものが有用である。
【発明の開示】
【０００５】
本発明は、概略的にはビデオデータの処理に関係する。
【発明を実施するための最良の形態】
【０００６】
説明の簡素化及び明瞭化のために、図に示される要素は、必ずしも尺度に従って描かれてはいない。例えば、要素のいくつかの大きさは、明瞭化のために他の要素に対して誇張されている。本発明の他の利点、特徴及び特性、方法も同様に、構造の関係する要素の動作及び機能、及び部品の組み合わせ及び製造の経済性は、図面を参照した以下の説明及び特許請求の範囲を考慮することにより明らかになるであろう。図面のすべては明細書の一部を形成し、同じ参照符号は各図の対応する部分を示す。
【０００７】
ビデオデータを相互コード化する特別な方法がデータを相互コード化するシステムと一緒に開示される。ビデオデータを相互コード化する１つの方法は、モーションベクトルと差モーションベクトルを有する２重主マクロブロックについて、その２つのフィールドごとにモーションベクトルを発生させる。相互コード化の他の方法は、Ｂフレームを後方に予測するのに使用されてきたスキップされたＰ−マクロブロックをゼロのモーションベクトルを有するＰ−マクロブロックで置き換えることを含む。相互コード化の他の方法は、スキップされたＰ−マクロブロックを、一緒の位置ではないそのスキップされたＰ−マクロブロックの同一フレームのマクロブロックからのモーションベクトルを有するマクロブロックで置き換えることを含む。開放（オープン）ループ相互コード化器及び閉鎖（クローズド）ループ相互コード化器を有するシステムが更に開示されている。ビデオプロトコルの間でスカラー方法で無損失の定量化を実現する方法及びシステムも開示されている。図２から図１３は本発明の各種の態様をより上手に記載している。
【０００８】
図１は、説明を明確にするために、ここで使用される用語を特定するのに使用される。特に、図１は、ビデオフレームのグループを表すデータの５個のフレーム１０２−１０６を示す。ＭＰＥＧ２及びＭＰＥＧ４として知られるプロトコルのような多くのエンコードプロトコルは、隣接するフレームの冗長な画像部分を利用することによりビデオデータを圧縮する。ＭＰＥＧは、Motion Picture Experts Groupの頭字語である。参照番号（１０２−１０６）の連続した順番は、フレーム１０２−１０６のグループがデコードに利用される必要のあることの順番を示す。例えば、フレーム１０２は、フレーム１０３がデコードされるようになる前にデコーダで利用される必要があり、フレーム１０３は、フレーム１０４がデコードされるようになる前にデコーダで利用される必要があるなどである。
【０００９】
フレーム１０２はイントラフレーム（Ｉフレーム）であり、フレーム１０３、１０４及び１０６は前方予測フレーム（Ｐフレーム）であり、フレーム１０５は両方向予測フレーム（Ｂフレーム）である。フレームのそれぞれは、更にフレームのタイプ（Ｉ、Ｐ又はＢ）、及び他のフレームに対する特別なフレームの表示順を示す整数の添え字を有するフレーム識別子により表される。従って、Ｂ３のフレーム１０５は、たとえＰ４のフレーム１０４がＢ３のフレーム１０５より前にデコーダにより必要とされても、Ｐ４のフレーム１０４の前に表示される。
【００１０】
ビデオデータの各フレーム１０２−１０６は、複数のマクロブロックを備える。フレーム内の各マクロブロックは対応する画像位置を有し、もしあれば画像を表すそのデータが表示される。説明のために、図１は画像位置００から９９までを特定するフレームテンプレート１００を表す。従って、画像位置２２は画像位置２１及び２３に水平方向に直接隣接するスクリーン位置を有する。フレームの特別なマクロブロックを議論する時には、フレーム識別子（Ｉ１、Ｐ２、Ｐ４、Ｂ３、Ｐ５）が、スラッシュ”／”の後に画像位置番号を付加することにより更に変形される。従って、Ｐ４のフレーム１０４の画像位置２２に関係するマクロブロックは、マクロブロックＰ４／２２  １０４として表され、画像位置２２に隣接するＰ４のフレーム１０４内の画像位置２３に関係するマクロブロックは、Ｐ４／２３  １０４として表される。特別なフレーム又はマクロブロックに付加される接頭辞及び添え字情報は、ここでは必要なものとして議論される。
【００１１】
図２は、ＭＰＥＧ２データストリームのようなデータストリーム１０９に基づいた第１のマクロブロックを、ＭＰＥＧ４データストリームのような異なるプロトコルを有するデータストリーム１１０に基づいたマクロブロックに変換することのグラフィック表現を示す。特に、ＭＰＥＧ２ストリーム部分１０９は、Ｉフレーム１１６とそれに続くＰフレーム１１７を含む。マクロブロック位置は図２に関しては考慮されていないことが注目される。データストリーム１０９のフレーム１１６及び１１７の括弧内に含まれる構文は、フレーム１１６及び１１７の各マクロブロックは上側フィールドデータ及び下側フィールドデータを含み、それらはそれぞれ奇数及び偶数フィールドとしても参照されることを示している。特に、構文ＩＯ及びＩＥは、Ｉフレームの奇数画像フィールドテクスチャ及び偶数画像フィールドテクスチャをそれぞれ示し、ＰＯ及びＰＥは、Ｐフレームの奇数フィールドテクスチャ又は予測のデータ、及び偶数フィールドテクスチャ又は予測のデータをそれぞれ示し、ＭＶｏ及びＭＶｅは、Ｐフレームの奇数フィールドモーションベクトル及び偶数フィールドモーションベクトルをそれぞれ示す。
【００１２】
ＭＰＥＧ２エンコードの特別なモードは、２重主モードとして知られている。２重主モードエンコーディングにより、データのＰマクロブロックに関係する奇数又は偶数のフィールドモーションベクトルの一方は、非差モーションベクトル、すなわち直接モーションベクトルに対してｄＭＶで示される差モーションベクトルである。差モーションベクトルは、同一フレームの他方のフィールドの非差モーションベクトルと組み合わせて、図２においてｃＭＶで示される算出モーションベクトルを発生する。図２を参照すると、Ｐフレーム１１７は、奇数フィールドに対してモーションベクトル（ＭＶｏ）を、偶数フィールドに対して差モーションベクトル（ｄＭＶｅ）を有する。
【００１３】
２重主モードは、ＭＰＥＧ４プロトコルによってサポートされていない。従って、本発明の特別な実施例によれば、ＭＰＥＧ２データストリーム１０９は、ＭＰＥＧ４準拠であるように変形される。本発明の１つの実施例によれば、ＭＰＥＧ２ストリーム１０９は、差モーションベクトル（ｄＭＶｅ）を有する２重主モードを使用してエンコードされており、Ｐフレーム１１２を有するＭＰＥＧ４準拠のストリーム１１０に変換されるように示され、それは２つの予測フィールド（ＰＯ、ＰＥ）及び２つのそれぞれのモーションベクトル（ＭＶｏ，ｃＭＶｅ）を有する。
【００１４】
図２に示すように、ＭＰＥＧ４ストリーム１１０は、ＭＰＥＧ２のＰフレーム１１７の偶数フィールドに関係するｄＭＶｅである差モーションベクトルが算出モーションベクトルｃＭＶｅで置き換えられるという点で、ＭＰＥＧ２ストリーム１０９とは異なる。等式１１５で表されるように、算出モーションベクトルｃＭＶｅは、マクロブロック内の他のフィールドのモーションベクトル、この例では奇数フィールドモーションベクトルと差モーションベクトル（ｄＭＶｅ）により表される値との組み合わせに基づいて決定される。差モーションベクトルをこのように算出したモーションベクトルで置き換えることにより、ＭＰＥＧ４準拠のマクロブロックが無損失方法で生成される。
【００１５】
ＭＰＥＧ４によりサポートされていない動作のほかのＭＰＥＧ２モードは、同じ位置のＰマクロブロックのスキッピングを取り扱う。ＭＰＥＧ２とＭＰＥＧ４の両方のプロトコルは、マクロブロックのスキッピング、すなわちテクスチャ又はモーションベクトルの無いマクロブロックのスキッピングを可能にするが、ＭＰＥＧ２では画像を予測する同じ位置のＢマクロブロックに沿って使用されるＰフレームマクロブロックのスキッピングが許される。しかしながら、ＭＰＥＧ４ではＰマクロブロックがスキップされる時、Ｂマクロブロックは同様にスキップされる。これは図３及び図４を参照するとより理解できる。
【００１６】
図３を参照すると、特別なマクロブロック１２１−１２４が、ＭＰＥＧ２ストリーム１２０の一部を表すように示される。データストリーム１２０は、一般的には連続して受けられるフレームデータの特別な画像位置を表す。説明の目的で、マクロブロック１２１−１２３は、その参照番号１２１−１２４で示された順番で受けられる。従って、図３に関しては、マクロブロックは次のＩ１−Ｐ２−Ｐ４−Ｂ３の順番で受けられる。
【００１７】
図３に示したＭＰＥＧ２ストリーム１２０の部分は、フレーム識別子Ｉ１に関係するＩマクロブロック１２１、フレーム識別子Ｐ２及びＰ４にそれぞれ関係する２つのＰマクロブロック１２２及び１２３、及びフレーム識別子Ｂ３に関係するＢマクロブロック１２４を有する。マクロブロックのタイプ１２１−１２４の各フレーム識別子の整数の添え字は、各フレームの表示順を示す。例えば、マクロブロックＩ１はマクロブロックＰ２の前に表示され、マクロブロックＰ２はマクロブロックＢ３の前に表示され、マクロブロックＢ３はマクロブロックＰ４の前に表示される。ストリーム１２０のマクロブロックを有するフレームデータの受け順は、Ｂフレームが使用される時の表示順とかならずしも同一でないことが適当である。スラッシュ（／）及びフレーム参照符号に続く数字のインジケータは、マクロブロックの表示位置を示す。
【００１８】
図３のＰとＢは、表示位置を特定する数値インジケータを伴う括弧内に参照符号ＭＶにより示されるモーションベクトルを有する。例えば、ＭＶ２はＰ２フレームに関係するモーションベクトルである。マクロブロックＰ２／２２に対してのような”ｓ”の接頭辞を有するマクロブロックは、スキップされたマクロブロックであり、それは実際にはテクスチャ又はベクトルデータを有さない。スキップされたマクロブロックｓＰ２／２２は前にデコードされたマクロブロックであり、マクロブロックＢ３／２２  １２４はＰ４／２２  １２３に対して予測されるので、ストリーム１２０は、必要な定量化スケーリングが一旦実行された時には、ＭＰＥＧ４内で有効でもあるＭＰＥＧ２プロトコルを含む。
【００１９】
図４を参照すると、ストリーム１４０のスキップされたＰマクロブロックＰ４／２２  １４３は、テクスチャ及び／又はモーションベクトルを有するＢマクロブロックＢ３／２２  １４４でコード化される。ＭＰＥＧ２コード化の間、ｓＰ４／２２  １４３のスキップされたマクロブロックデータは同じ位置のマクロブロックＰ２／２２  １４２に関係する翻訳データから予測され、マクロブロックＢ３／２２  １４４は、Ｐ４／２２  １４３の予測されたデータ及びマクロブロックＢ３／２２  １４４の予測誤差及びモーションベクトルを使用して翻訳される。しかしながら、ＭＰＥＧ４は、Ｂマクロブロックに続いて表示される前にデコードされた一緒に配置されたＰマクロブロックがスキップされ、マクロブロックＢ３／２２  １４４のいかなるデータのエンコードも禁止されている時には、Ｂマクロブロックがスキップされることを要求する。図４は、変換されたＭＰＥＧ４ストリーム１５０内でＢマクロブロックＢ３／２２  １４４をスキップすることにより、ＭＰＥＧ２ストリームをＭＰＥＧ４ストリームに変換するための無損失オプションを示す。しかしながら、ストリーム１４０のマクロブロックＢ３／２２に関係するデータは使用されないので、ストリーム１５０内でのＢ３／２２マクロブロックのスキップはＭＰＥＧ２ストリームに対して損失のある解法になる。
【００２０】
図５は、スキップされたＰフレームを有するＭＰＥＧ２ストリームの無損失のＭＰＥＧ２からＭＰＥＧ４への相互コード化の解法を提供し、スキップされたＰフレームは同じ位置のＢフレームにより使用されるＰフレームに基づいて予測されるＢフレームの後に表示される。特に、スキップされたＭＰＥＧ２マクロブロックｓＰ４／２２  １６３は、関係するテクスチャ及びモーションベクトルを有するＭＰＥＧ４ストリーム１７０内でエンコードされる。１つの実施例では、関係するテクスチャは、ストリーム１６０内のスキップされたマクロブロックＰ４／２２  １６３の予測されたテクスチャである。ＭＰＥＧ２マクロブロックｐ４／２２（Ｐ１６０．０）は、そこではｐ１６０指示器がマクロブロックＰ４／２２がストリーム１６０からのスキップされたフレームＳＰ４  １６３のデコードされたテクスチャデータを含むことを示しており、前にデコードされた同じ位置のマクロブロックＰ２／２２  １７２からのテクスチャデータと同じであることが注目される。マクロブロックＰ４／２２  １７３の括弧内の値”０”は、モーションベクトルがゼロであることを示す。この方法では、ＭＰＥＧ２ストリーム１６０のＢ３／２２（ＭＶ３）に関係するデータは、複製可能であり、ＭＰＥＧ４ストリーム１７０内で使用されて無損失相互コード化を実現する。
【００２１】
図６は、ＭＰＥＧ２ストリーム１８０がＭＰＥＧ４ストリーム２００に変換されるのを示す。特に、ストリーム１８０はＢフレームＢ３の一部であるスキップされたマクロブロックｓＢ３／２２  １８４を示す。ＭＰＥＧ４はＭＰＥＧ２が取り扱う方法ではスキップされたＢマクロブロックを取り扱わないので、無損失変換を可能にするには調和が必要である。図６に示すように、ｓＢ３／２２  １８４はＢ３／２２（０，ＭＶ［Ｂ３／２１］）を有するＭＰＥＧ４ストリームに置き換えられ、そこでは予測誤差データはゼロにセットされ、モーションベクトルは、デコードされるマクロブロックと同じ位置でないＢフレームＢ３のマクロブロックのモーションベクトルに等しいようにセットされる。例えば、同一フレームの前のマクロブロックＢ３／２１（図示せず）のモーションベクトルが使用される。もしマクロブロックが、Ｂフレームシーケンスの最初の位置、すなわちＢ３／００が相互コード化されるならば、ゼロ（０）のモーションベクトルが使用できる。これは、スキップされたＢマクロブロックにより提供される新しいデータがなく、Ｂマクロブロックがそれ以上予測で使用されないため、無損失相互コード化である。
【００２２】
図７は、異なる量子化方法をサポートするデータストリームを相互コード化するのに使用できる方法を示す。図７に示した実施例は、ＭＰＥＧ２に準拠したモードからＭＰＥＧ４に準拠したモードにデータを再量子化する。特に、図７の方法は、データストリームをデコード及びエンコードすること無しにスカラー方法で実現できる。
【００２３】
ＭＰＥＧ４は、２つの量子化方法の使用を可能にする。１つの方法は、ＭＰＥＧ４ワールドによるＭＰＥＧ２モードとして知られており、他方はＭＰＥＧ４、すなわちＭＰＥＧ４モードとして知られている。ＭＰＥＧ４モードで使用されるデフォルト量子化マトリクスは、ＭＰＥＧ２モードで使用される量子化方法とは異なるが、ＭＰＥＧ４ではＭＰＥＧ２と同様に特別なマトリクスを送ることが可能である。ＭＰＥＧ２モードとＭＰＥＧ４モードの間の主な違いは、イントラブロック内のＤＣサンプルが処理される方法からきている。
【００２４】
特に、イントラブロック内でＤＣサンプルを処理するのにＭＰＥＧ２で使用される量子化ステップは、レンジ｛８，１６，３２｝内にあり、ＡＣサンプルを計量するのに使用される量子化ステップに依存しない。これはＭＰＥＧ４モードの場合にはそうではなく、ＤＣ量子化ステップは、ＡＣ量子化値が４より大きい時には区分的に線形な方法でＡＣ量子化ステップに従って変化する。ＡＣサンプルの量子化に対するＤＣサンプルの使用におけるこの差は、イントラフレームに基づいてすべてのそれに続くフレーム（画像のグループ）に誤差を伝達するイントラフレームの無損失相互コード化を妨げることがあり得る。
【００２５】
ＭＰＥＧ２からＭＰＥＧ４への無損失相互コード化の１つの方法は、図７のフロー図によって示され、ＭＰＥＧ２量子化スケールが８に等しい時に使用することができる。
【００２６】
ステップ６０２では、ＭＰＥＧ２データのＤＣ量子化スカラーの値（ＤＣ−Ｑ−ＳＣＡＬＥ２）が決定される。ステップ１０１１では、ＤＣ−Ｑ−ＳＣＡＬＥ２が８に等しいかの決定が行われる。もしそうであれば、ＭＰＥＧ４ＡＣ量子化スカラー（ＡＣ−Ｑ−ＳＣＡＬＥ４）は、ＭＰＥＧ４ＤＣルックアップテーブルにより許されたように、１、２、３、又は４の１つの値を有するように使用できる。もしそうでなければ、図７のスカラー方法はＭＰＥＧ２データストリームを再量子化するのに使用できない。
【００２７】
ステップ６０３では、ＡＣ−Ｑ−ＳＣＡＬＥ４が、（ＡＣ−Ｑ−ＳＣＡＬＥ２）／（ＡＣ−Ｑ−ＳＣＡＬＥ４）＝ＡであるようなＡＣ−Ｑ−ＳＣＡＬＥ４の値を選択することにより決定され、ここでＡＣ−Ｑ−ＳＣＡＬＥ２はＭＰＥＧ２データのＡＣ量子化スカラーであり、Ａは１、２、３、及び４の１つの値に等しい。Ａの値が最大になるようにＡＣ−Ｑ−ＳＣＡＬＥ４を選択することにより、より大きな圧縮が相互コード化ストリームに対して実現できる。
【００２８】
ステップ６０４では、ＭＰＥＧ２ＡＣ要素Ｆ’’［ｕ］［ｖ］が逆定量化されて、Ｆ［ｕ］［ｖ］が得られる。
【００２９】
ステップ６０５では、逆定量化値Ｆ［ｕ］［ｖ］がＡ（Ｆ［ｕ］［ｖ］＊Ａ）でスケール化（乗じて）されてＦｓ［ｕ］［ｖ］が得られる。
【００３０】
ステップ６０６では、スケール化された値Ｆｓ［ｕ］［ｖ］が、ステップ６０３で決定されたＡＣ−Ｑ−ＳＣＡＬＥ４値を使用してエンコードされ、値ＡＣ−Ｑ−ＳＣＡＬＥ４はＭＰＥＧ４データストリームにおけるのと同様にエンコードされる。
【００３１】
図１０に示す方法は、ＭＰＥＧ２からＭＰＥＧ４への定量化されたマクロブロックデータの無損失相互コード化を可能にし、そこではＭＰＥＧ４エンコードが利用される。この場合、ＭＰＥＧ４イントラブロックエンコードによる使用における量子化スケールは５より小さく維持でき、ＭＰＥＧ４に相互コード化される各マクロブロックの量子化値が無損失相互コード化を維持するように調整されるのを可能にする。
【００３２】
図８は、本発明の特別な実施例のシステムを示す。図８は、クローズドループ相互コード化器７１０と、オープンループ相互コード化器７１２と、制御モジュール７１４と、入力選択スイッチ１０２と、出力選択スイッチ７０２とを備えるシステム７００を示す。
【００３３】
動作においては、デジタルビデオデータを備える入力ストリームは、システム１００により受けられる。デジタルビデオデータは、一般的に各種のＭＰＥＧ仕様により特定されるビデオデータのようなフレームベースビデオデータを含むが、他の専用及び標準のビデオデータプロトコルが同様に受けられるのが適当である。
【００３４】
制御モジュール７１４は、入力ストリームから制御スイッチ１０２及び７０２への情報を監視して、クローズドループ相互コード化器７１０及びオープンループ相互コード化器７１２の動作を制御する。更に、制御モジュール７１４は、スイッチ７０２を制御して、入力ストリームに対して相互コード化された出力ストリームを提供する。一般に、制御モジュール７１４は、クローズドループ相互コード化器７１０及びオープンループ相互コード化器７１２の一方が出力データストリームを提供するのを可能にする。更に、制御モジュール７１４は、出力データ源として、クローズドループ相互コード化器７１０及びオープンループ相互コード化器７１２の一方を選択し、相互コード化を制御するように動作する。１つの実施例では、出力の選択を行うことになるスイッチ機能は、スイッチ７０２のような実際のスイッチを制御することにより実現される。別の実施例では、スイッチ機能は、クローズドループ相互コード化器７１０及びオープンループ相互コード化器７１２の出力の一方を有効にして相互コード化器の一方のみが出力ストリームを提供するようにすることで実現される。
【００３５】
クローズドループ相互コード化器は、相互コード化されたデータフレームの発生に続いて、相互コード化されたデータフレームが、相互コード化器のエンコーダ部分に、相互コード化されたデータフレームに基づいてデコードされた参照フレームを提供するようにデコードされる。オープンループ相互コード化器では、相互コード化されたデータフレームは、参照フレームを相互コード化器に提供するようにはデコードされない。
【００３６】
１つの実施例では、制御モジュール７１４は、受けたマクロブロックの相互コード化が１に近い（すなわちデータ低減無し）データレートのスケーリング（すなわちデータ低減）になる時に、クローズドループ相互コード化器７１０を選択してフレームデータのマクロブロックを相互コード化し、受けたフレームに対するいかなる参照フレームもオープンループモード内でエンコードされる。１つの実施例では、オープンループ相互コード化器は、無損失の相互コード化が入力データの無損失相互コード化を実行するのに使用できる時に、使用される。例えば、図２、３、５、６、又は７で説明した無損失技術の１つを使用できる。他の実施例では、図４の技術のような損失のある技術がシステム７００を使用して実現できる。
【００３７】
図９は、オープンループ相互コード化器７２とクローズドループ相互コード化器７１０の間の選択方法を示す。
【００３８】
ステップ８０１では、相互コード化されるデータを受ける。１つの実施例では、この受けたデータは、ビデオデータのフレームと関係する。ステップ８０４では、データが、システムの正確な値に基づいた近似的に１のデータ低減スケーリングを行うかの決定がなされる。例えば、システムは、データが０．８から１．２のような特別なレンジ内にスケール化する（大きさを変える）と決定された時に、プログラム可能又は固定の方法で、ステップ８０６を実行するようにプリセットできる。そうでなければ、制御はステップ８１０に進み、そこでクローズドループ相互コード化器７１０が選択される。
【００３９】
実行される相互コード化が１に近くないデータレートのスケーリング（すなわち、データレートにおいて例えば縮小などの大きな変化）を有する時、新しい量子化がエンコード動作の間に実行される必要がある。この再量子化ステップは、クローズドループ相互コード化器７１２のような損失のある相互コード化器により実行される。損失のある相互コード化が参照フレームに対して行われた時、情報の損失は参照フレームを使用して続けて予測されたどのようなフレームにも伝播される。この損失のある相互コード化による伝播誤差を避ける必要があると、クローズドループ相互コード化器を使用するという結果になる。
【００４０】
ステップ８０６では、相互コード化されるデータが損失のあるプロセス（すなわちクローズドループ相互コード化器７１０）によりコード化された参照フレーム自体に依存しているかが決定される。決定の１つの方法は、もし参照フレーム自体に損失があれば、相互コード化器７１０及び／又は７１２に損失のある又は無損失の相互コード化が使用されたかを示すフラグを相互コード化されたフレームに付加し、制御モジュール７１４がこのフラグを監視する。一般に、このフラグは、相互コード化器にステップ８０６で使用される「状態（オープン／又はクローズ）」を提供する内部フラグである。これにより、相互コード化器が前に相互コード化されたフレームがどのように相互コード化されたかを知るのを可能にする。もし参照フレームが損失のあるモードでエンコードされたか、又は現在のフレームが損失のあるモードでエンコードされることを意図されているか、例えばスケーリングが大きいと考えられるならば、クローズドループ相互コード化（損失のあるモード）が選択され、そうでなければ制御はステップ８０８に進み、オープンループ相互コード化（無損失）が選択される。
【００４１】
図１０は、図８の相互コード化器の特別な実施の詳細を示す。図１０の相互コード化器は、クローズドループ相互コード化器と、複数のオープンループ相互コード化器経路により表される複数のオープンループ相互コード化器とを、備える。特別な実施例は、図１０に示した１つ以上のオープンループ相互コード化器経路を含むのが適当である。オープンループ相互コード化器からの選択は、要素９０１−９０３、９２１及び９３１により制御され、それは図８の制御モジュール７１４を少なくとも部分的に表す。
【００４２】
図１０のクローズドループ相互コード化器は、制御要素９０１、９０２及び９２３、デコーダ９０５、デコーダ参照フレーム９１０、エンコーダ９１５、クローズドループデコーダ９２３、及びエンコーダ参照フレーム９０８を有するデータ経路を形成する要素により表される。マクロブロック又はフレームはクローズドループデコーダに送られた時に、デコードされた参照フレームを生成するようにデコードされて、デコーダ参照フレーム９１０に記憶される。典型的には、データは、逆定量化モジュール、逆変形モジュール、及び逆モーション補償モジュールを使用して従来の方法でデコードされる。デコーダ参照フレームを発生するように付加的なモジュール、すなわち異なるモジュールが使用されるのが適当である。一旦フレームがデコードされると、それは、デコーダ参照フレーム９１０メモリ、又は別の経路９０２を通って、エンコードのためにエンコーダ９１５に送られる。
【００４３】
典型的には、データは、モーション補償モジュール、（ディスクリートコサイン変形モジュールのような）変形モジュール、及び定量化モジュールを使用して従来の方法でエンコードされる。デコーダ参照フレームを発生するように付加的なモジュール、すなわち異なるモジュールが使用されるのが適当である。一旦フレームがエンコードされると、それは、制御要素９０３を通して出力ストリームに提供され、制御要素９２３を通してクローズドループデコーダ９２５に提供される。典型的には、新しくエンコードされたデータは、逆定量化モジュール、逆変形モジュール、及び逆モーション補償モジュールを使用してクローズドループデコーダ９２５により従来の方法でデコードされる。デコーダ参照フレームを発生するように付加的なモジュール、すなわち異なるモジュールが使用されるのが適当である。一旦新しくエンコードされたフレームがデコードされると、それは、エンコーダ９１５によって使用されるためにエンコーダ参照フレーム９１０に記憶される。
【００４４】
図１０は、複数のオープンループ相互コード化器を表す。１つ以上のオープンループ相互コード化器は、本発明に従って実現できる。１つの実施例では、単一オープンループ相互コード化器は、制御要素９０１、９０３、デコーダ９０５及びエンコーダ９１５を有するデータ経路により実現される。この実施例では、入力ストリームからのマクロブロック又はフレームは、デコーダ９０５が参照フレームを発生するのに提供することにより相互コード化される。続いて、デコードされた参照フレームは、データを出力ストリームに提供するようにエンコードされる。１つの実施例では、相互コード化されるデータが無損失の方法で相互コード化される時にオープンループ相互コード化器が選択され、それによりエンコードに続くデータのデコードの必要を低減する。これはエンコードされる元の参照フレームが実質的に同じデータを含むからである。
【００４５】
オープンループ相互コード化器の他の例が、制御要素９０１及び９０３、及び定量化スカラー２９０を有するデータ経路により示される。１つの実施例では、入力データをＭＰＥＧ２フォーマットからＭＰＥＧ４フォーマットにスケーリングするために図７を参照して議論したように、入力ストリームのマクロブロック又はフレームがプロトコル変換のために定量化スケーリングを必要とする時に、量子化スカラー２９０が使用される。一旦相互コード化されると（例えば、異なるプロトコルに準拠するように大きさが変えられると）データは出力ストリームに提供される。受けたデータが続くデコードステップで利用可能であることを保証するために、データは参照フレームデコーダ部分９０５にも提供され、参照フレームはデコーダ参照フレーム位置９１０に記憶される。更に、量子化スカラー２９０により実行されるスケーリング機能は、説明した第１の相互コード化器によっても実行可能であることが適当である。しかし、第１の相互コード化器は、量子化スカラー２９０の使用より多くの処理資源を必要とするので、より複雑である。従って、量子化の使用は、より効率的な相互コード化器の実現になるように、より少ない処理資源で行えることを必要とする。
【００４６】
他のオープンループ相互コード化器は、制御要素９０１、オープンループプロトコル相互コード化器９２２、定量化スカラー２９０、及び制御要素９２３を有するデータ経路により表される。オープンループ相互コード化器９２２に送られた入力ストリームデータは、図２から６を参照して説明した方法を使用して発見的手法で相互コード化でき、必要に従って量子化スカラーに提供される。この方法では、入力データを相互コード化するのに必要な処理資源の量が低減される。オープンループプロトコル相互コード化器は、デコーダ９０５及びエンコーダ９１５とは別に実現されるように示している。しかしながら、他の実施例では、オープンループプロトコル相互コード化器の機能は、デコーダ９０５又はエンコーダ９１５の一方又は両方の一部として実現される。例えば、入力ストリームからのマクロブロックは、制御モジュール９０２により、逆変形の前に、デコーダ９０５により逆定量化されてエンコーダ９１５に提供され、それによりデータが発見的手法で変形されるのを可能にする。エンコーダ９１５内におけるオープンループプロトコル相互コード化器９２２のような発見的手法の変形は、量子化の前にデータを相互コード化するのに使用される。一旦発見的手法で変形されると、一般的には量子化モジュール９１６によりデータは量子化され、出力ストリームに提供される。他の実施例では、入力データは逆量子化される必要はなく、代わりに発見的手法で変形されたデータが、出力ストリームに提供される前に量子化モジュール２９０（接続を図示せず）に送られる。図１０のシステムの動作の特別な実施例は、図１１から１３の方法に基づくのがより適当である。
【００４７】
図１１のステップ８２０では、データレートのスケーリング基準を満たすかが決定される。１つの実施例では、データレートスケールファクタが実質的に１に近い時には、システムすなわちユーザによりあらかじめ定義されたように、それは維持され、基準を満たし、制御はステップ８２２に進む。そうでなければ、もし大きなデータレートスケーリングが実行されるならば、例えばより小さいデータレートがサポートされる必要がある時でデータの損失になる時には、制御はステップ８５１に進み、評価されるデータは相互コード化のためにクローズドループエンコーダに送られ、エンコーダ参照フレームがクローズドループデコーダ９１５により発生される。
【００４８】
ステップ８２２では、評価されるマクロブロック又はフレームデータが、損失のある方法で相互コード化された参照フレームに依存しているかが決定される。もしそうであれば、ステップ８５１に進み、現在のデータが損失のある参照データを使用したクローズドループ相互コード化により相互コード化することができる。そうでなければ、ステップ８２４に進む。
【００４９】
ステップ８２４では、現在のマクロブロックが図２を参照して議論した２重主モードを使用してエンコードされたかが決定される。もしそうであれば、ステップ８５２に進み、マクロブロックは相互コード化のためにオープンループ相互コード化器に送られ、そうでなければステップ８２６に進む。図１０の特別なシステムに関しては、ステップ８５２のオープンループ相互コード化器は発見的手法の相互コード化のオープンループ相互コード化器であり、又はデコーダ９０５及びエンコーダ９１５を有するオープンループ相互コード化器であることが適当である。発見的手法の変形が実行される場合、データは典型的にはステップ８５３に送られ、マクロブロックは、必要があれば続きの参照フレームのデコードで使用するための参照フレームを発生するようにデコードされる。
【００５０】
ステップ８２６では、相互コード化されるデータの関係するフレームタイプを特定する決定が行われる。もしＢタイプのデータが相互コード化されるならば、図１２に進む。もしＰタイプのデータが相互コード化されるならば、図１３に進む。もしＩタイプのデータが相互コード化されるならば、ステップ８５３から８５４に進む。
【００５１】
ステップ８５３では、Ｉタイプのフレームが相互コード化のためにオープンループ相互コード化器に送られる。１つの実施例では、量子化スカラー２９０のような量子化スカラーは、データを相互コード化するのに使用されるオープンループ相互コード化器である。他のオープンループ相互コード化器も使用可能であることが適当である。更に、Ｉフレームデータはステップ８５４でデコーダ９０５のような参照フレームデコーダに送られ、現在のＩフレームを参照するそれに続くフレームのデコードを容易にする。
【００５２】
ステップ８２６でＢタイプのデータに出会うと、図１２のステップ８２８に進む。ステップ８２８では、評価されるＢマクロブロックがスキップされたかが決定される。もしそうであれば、ステップ８５４に進み、スキップされたマクロブロックすなわちスキップされたマクロブロックの印しが相互コード化のためのオープンループ相互コード化器に提供される。オープンループ相互コード化器は、プロトコル間の相互コード化が実行されそしてスキップされたＢマクロブロックを特定するための構文が両方のプロトコルに対して同一であるようにするいかなる実際のデータ変形を実行する必要もない。
【００５３】
もしＢマクロブロックがスキップされていないと、ステップ８３０に進み、Ｂマクロブロックが、それ自体がスキップしたデータとして受けた参照データに依存するかが決定される。Ｂマクロブロックがスキップした参照データに依存しない時には、ステップ８５５に進み、マクロブロック情報はオープンループ量子化スカラー２９０のようなオープンループ定量化に送られる。そうでなければ、ステップ８３２に進む。
【００５４】
ステップ８３２では、Ｂマクロブロックが依存しているスキップされた参照データが次に表示される参照データ、例えば、評価されるスキップされたＢフレームに対して表示されるかが決定される。実行される相互コード化がＭＰＥＧ２からＭＰＥＧ４であれば、これはＭＰＥＧ４では有効でなく、スキップされた参照フレーム、すなわちスキップされた参照フレームの指示は、相互コード化のためにオープンループ相互コード化器に送られる。１つの実施例では、オープンループプロトコル相互コード化器９２２は、図４又は図５の方法に従って、スキップされたＢフレームを相互コード化するのに使用できる。他の実施例では、デコーダ９０５を含むオープンループ相互コード化器９０５及びエンコーダ９１５が使用できる。
【００５５】
もしＢマクロブロックが次に表示される参照データに依存しなければ、ステップ８５５に進み、スキップされたＢマクロブロックの指示が、図１０のオープンループ相互コード化器９２２のようなオープンループ相互コード化器に提供される。
【００５６】
オープンループ相互コード化が使用される場合には、Ｂマクロブロックはデコードされるようには示されていないことが注目される。これは、そのデコードを、Ｂフレームが参照フレームとして使用されず、次のフレームのデコードをサポートする必要がないようにするためである。
【００５７】
図１３は、図１１のステップ８２６でＰフレームに関係するデータが相互コード化されるかを決定する時に使用されるフローチャートを示す。ステップ８３８では、評価されるＰマクロブロックがスキップされたかの決定が行われる。もしそうでなければ、ステップ８５７から８５８に進む。ステップ８５７では、スキップされたマクロブロックの指示が、相互コード化のためにオープンループ量子化スカラーのようなオープンループ相互コード化器に提供される。オープンループ相互コード化器は、プロトコル間の相互コード化が実行されてスキップされたＰマクロブロックの構文が両方のプロトコルで同一であるようにされる実際のどのようなデータ変形も実行する必要のないことが適当である。ステップ８５８では、スキップされたマクロブロックの指示は、デコーダ９０５のような参照デコーダに提供される。
【００５８】
もしＢマクロブロックがスキップされていれば、ステップ８４０に進み、ＰマクロブロックがＢマクロブロックの参照フレームの一部であるかの決定が行われる。もしそうでなければ、ステップ８５７と８５８に進む。それ以外であれば、ステップ８４２に進み、評価されるＰデータが実質的にＢフレームを再構成するための表示参照データであるかが決定される。もしそうでなければ、相互コード化のためにステップ８５７から８５８に進む。
【００５９】
もしＰマクロブロックがＢフレームの参照データでＢフレームに対して続いて表示されるならば、ステップ８５９に進み、Ｐデータは相互コード化のためにオープンループ相互コード化器に送られる。
【００６０】
本出願における各種の機能及び構成要素は、データプロセッサのような情報処理装置又は複数の処理デバイスを使用して実現できる。そのようなデータプロセッサは、マイクロプロセッサ、マイクロコントローラ、マイクロコンピュータ、デジタルシグナルプロセッサ、ステートマシーン、論理回路、及び／又は動作インストラクションに基づいて又は所定の方法でデジタル情報を取り扱うどのようなデバイスでもよい。一般的に、ブロック図で表現される各種の機能及びシステムは、これまでに挙げた実現技術の１つ以上を使用してこの技術分野の通常の技能を有するものが容易に実現できる。インストラクションを発行するデータプロセッサが使用される時、インストラクションはメモリに記憶される。そのようなメモリは単一メモリデバイス又は複数のメモリデバイスであればよい。そのようなメモリデバイスは、読み出し専用メモリ、ランダムアクセスメモリ、磁気テープメモリ、フロッピィディスクメモリ、ハードドライブメモリ、外部テープ、及び／又はデジタル情報を記憶できるどのようなデバイスでもよい。データプロセッサがステートマシーン又は論理回路を介してその機能の１つ以上を実現する時には、対応するインストラクションを記憶するメモリは、ステートマシーン及び／又は論理回路を有する回路内に組み込まれるか、又は機能は組み合わせ論理を使用して実行されるため不必要である。このような情報取り扱い装置は、コンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、ハンドヘルドコンピュータ装置、ケーブルセットトップボックス、セルラー電話のようなインターネットケーブル装置などのシステム又はシステムの一部である。
【００６１】
これまでの図面の詳細な説明では、付属の図面を参照したが、それは本発明の一部に過ぎず、本発明を実現した特別な実施例を説明するために示されたものである。これらの実施例は、当業者が本発明を実施するのに十分詳細に記載されており、本発明の精神の範囲を逸脱せずに他の実施例が利用でき、論理的、機械的及び電気的な変更が行えることが理解できるであろう。当業者が本発明を実行するのにかならずしも必要ない詳細を説明するのを避けるために、説明は当業者に知られている情報は割愛した。更に、当業者は、発明の示唆を実現する多くのほかの異なる実施例を容易に作ることができるであろう。従って、本発明はこれまで説明した特定の形式に限定することを意図したものではなく、逆に本発明の精神及び範囲内に当然含まれる変形例、変更、等価物をカバーすることを意図している。例えば、本発明は、特にＭＰＥＧ２及びＭＰＥＧ４に言及している。本発明は、その多くが１つ以上のＭＰＥＧプロトコルの変形であるほかのプロトコルにも適用可能であることに注意されるべきである。従って、これまでの詳細な説明は限定する意図でなされておらず、本発明の範囲は添付の請求範囲によってのみ規定される。
【図面の簡単な説明】
【００６２】
【図１】図１は、従来技術でのビデオデータの表現を示す。
【図２】図２は、本発明に従って相互コード化されるビデオストリームを示す。
【図３】図３は、本発明に従って相互コード化されるビデオストリームを示す。
【図４】図４は、本発明に従って相互コード化されるビデオストリームを示す。
【図５】図５は、本発明に従って相互コード化されるビデオストリームを示す。
【図６】図６は、本発明に従って相互コード化されるビデオストリームを示す。
【図７】図７は、本発明による量子化の方法を示す。
【図８】図８は、本発明によるシステムを、ブロック図の形で示す。
【図９】図９は、本発明による方法を示す。
【図１０】図１０は、本発明によるシステムを、ブロック図の形で示す。
【図１１】図１１は、本発明による方法を、フロー図の形で示す。
【図１２】図１２は、本発明による方法を、フロー図の形で示す。
【図１３】図１３は、本発明による方法を、フロー図の形で示す。
【図１】
2006518954.tif 000003
【図２】
2006518954.tif 000004
【図３】
2006518954.tif 000005
【図４】
2006518954.tif 000006
【図５】
2006518954.tif 000007
【図６】
2006518954.tif 000008
【図７】
2006518954.tif 000009
【図８】
2006518954.tif 000010
【図９】
2006518954.tif 000011
【図１０】
2006518954.tif 000012
【図１１】
2006518954.tif 000013
【図１２】
2006518954.tif 000014
【図１３】
2006518954.tif 000015
【国際調査報告】
2006518954.tif 000016
2006518954.tif 000017
2006518954.tif 000018