(57)【特許請求の範囲】
【請求項１】
符号化したピクチャを伸長させ、関連データをビデオメモリに編成した１個又はそれ以上のバッファ内に格納するステップを有する圧縮ビデオシーケンスのデコーダのビデオメモリ条件を減少させる方法において、
伸長した後で且つそれらをビデオメモリの夫々のバッファ内に格納する前に、（１）圧縮されるべき現在のピクチャを表すＬマトリクスから開始マトリクスＬのピクセル数の半分の２つのサブマトリクスＬ1及びＨ1を構成することによって得られるサブサンプリング用Ｌi及びＨiサブマトリクスのシーケンスを派生し、その場合に、順次増加する数のピクセルを除去し且つＬ1マトリクスのピクセルを補間し且つ開始マトリクスＬから除去した対応するピクセルを逐次減算し且つ単一のピクセルによって構成されるサブマトリクスＬnが得られるまで逐次的なマトリクスＬiを派生させるための開始マトリクスとしてサブマトリクスＬ1を使用してこの手順を繰り返し行うステップ、（２）サブマトリクスＨi-1に対して使用するＱi-1ステップよりも大きなＱiステップで夫々のＬiマトリクスから計算した前記Ｈiサブマトリクスをゼロ復帰量子化器で量子化するステップ、（３）ゼロのみによって構成される全ツリー分岐を識別するためにゼロツリーマーカーを使用して前記マトリクスの値の二進ツリーコーディングを行うステップ、（４）可変長符号化を伴う空間予測技術に従って、最も頻発する記号をハフマンコーディングで符号化し一方最も頻発する記号でない記号を符号化せずにエスケープ記号で先行させるステップ、からなるＣＰＬＶアルゴリズムによりピクチャを再圧縮し、
前記再圧縮したピクチャをブロックの形態で夫々のビデオメモリバッファ内に格納し、
前記再圧縮したピクチャのブロックに関するデータをデコードし、
可変長符号化を伴う前記空間予測技術に従って前記ブロックのデコードしたデータを伸長させる、
ことを特徴とする方法。
【請求項２】
請求項１において、前記マトリクスＬ及びＬiの前記選択したピクセルは、「ｉ」が奇数である場合には偶数行の偶数ピクセル及び奇数行の奇数ピクセルであるか、又は「ｉ」が偶数である場合にはＬi上の奇数行の奇数ピクセルであり、Ｌi-1上に配置されたピクセルに関する行及び列のみをカウントすることを特徴とする方法。
【請求項３】
ビデオデコーダの「コア」外部の夫々のメモリバッファ上で書込み及び読取りを行うためのビデオピクチャ確立のデータのバス及び制御バスとインターフェースするのに適したビデオデコーダであって、メモリ（ＤＲＡＭ）のビットビデオに対する夫々の第一バッファ（ＢＩＴ  ＢＵＦＦＥＲ）内に圧縮したデータを取得し且つ書込むための先入先出（ＦＩＦＯ）種類の第一バッファ、制御回路（ＣＯＮＴＲＯＬＬＥＲ）によって同期されるピクチャの開始コードを検知するための回路（Ｓｔａｒｔ  Ｃｏｄｅ  Ｄｅｔｅｃｔｏｒ）、スクリーン可視化データ（ＯＳＤ）用の双方向メモリバッファ（Ｉ／Ｏ  ＵＮＩＴ）、入力圧縮データのストリーム（ＢＩＴＳＴＲＡＥＭ）の可変長符号化（ＶＬＤ）用のブロック、「ランレングス」デコード用ステージを具備する可変長符号化（ＶＬＤ）用の前記ブロックによってデコードされるデータの伸長用パイプライン（ＰＩＰＥＬＩＮＥ  ＲＬＤ，Ｉ ＱＵＡＮＴ，Ｉ−ＤＣＴ，ＰＲＥＤＩＣＴＯＲ  ＣＯＮＳＴＲＵＣＴＩＯＮ）、逆量子化機能を実現するのに適した回路、逆離散コサイン変換を確立する回路、予測値を発生するネットワーク、可視化ユニットの直前において現在のＢピクチャを変換する回路ブロック（ラスタースキャンするためのマクロブロック）、を有しているビデオデコーダにおいて、
夫々のビデオメモリバッファ内へ書込むためにピクチャに関連するデータを請求項１に記載したＣＰＬＶアルゴリズムに従って再圧縮する回路（ＣＰＬＶエンコーダ）、
前記メモリの夫々のバッファから読取った前記再圧縮したピクチャに関連する前記データをデコードし且つ伸長し前記ピクチャに関連するデコードされ且つ伸長されたデータのストリームを発生する回路（ＣＰＬＶデコーダ）、
を有していることを特徴とするビデオデコーダ。
【請求項４】
請求項３において、前記再圧縮する回路（ＣＰＬＶエンコーダ）が、
ＣＰＬＶ符号化したフレームを格納するフレーム格納メモリ（フレームメモリ）、
非符号化マクロブロックを格納する作業メモリ（作業ＲＡＭ）、
前記作業メモリにおいて前記デコーダによって発生された伸長されたマクロブロックを逐次的に転送する回路（マクロブロック取得）、
前記マクロブロックの分解ブロックを表す値のマトリクスをサブサンプリングする回路であって、複数個の抽出したサブマトリクス（Ｌi）を発生し且つ連続して半分にされる寸法の複数個のエラーマトリクス（Ｈi）を計算し且つ前記エラーマトリクス（Ｈi）の係数を量子化し、それに対してカスケード結合されており且つ可変量子化ステップを有する量子化器（量子化器）によって前記作業メモリへフィードバックされ、前記マクロブロックのデータのブロックを逐次的に処理する回路（ブロック取得）及び第二多重化手段によって前記量子化器へ結合されており「ｉ」偶数（Ｉｎｔｅｒｐ偶数）に対して及び「ｉ」奇数（Ｉｎｔｅｒｐ奇数）に対して前記エラーマトリクス（Ｈi）の係数を計算する第一多重化手段イネーブル／ディスエーブル回路を有している回路、
前記作業メモリ（作業ＲＡＭ）内に格納されているデータをサブサンプリングし且つ量子化したブロックに関して二進ツリーコーディング及びゼロツリーマーキングを逐次的に実施する回路（ゼロツリー）、
前記二進ツリーコーディング及びゼロツリーマーキング（ゼロツリー）を実施する回路に対してカスケード結合されており、前記二進ツリーコーディングしたデータのブロックを符号化し且つその符号化したブロックを前記フレーム格納メモリ（フレームメモリ）内へ転送するハフマン符号化器、
各ハフマン符号化マクロブロックのビット長を計算する回路（長さ計算）によって出力されたデータから最善の量子化ステップを計算する回路（量子化ステップ計算）を具備しており前記量子化器の量子化ステップを規制する手段、
前記ビット長を計算する回路（長さ計算）によって発生される各ハフマン符号化マクロブロックのビット長から前記フレーム格納メモリ（フレームメモリ）内の相次ぐマクロブロックの開始アドレスを計算する回路（アドレス計算）及び前記フレームメモリ内に格納されている全てのマクロブロックの開始アドレスを格納するメモリ（アドレステーブル）を具備しており、前記フレーム格納メモリ（フレームメモリ）内の圧縮されているマクロブロックの開始アドレスを計算し且つ格納する手段、
前記ハフマン符号化器、前記マクロブロックを転送する回路（マクロブロック取得）及び前記フレーム格納メモリ（フレームメモリ）が結合されているデータバス（外部バス）、
を有していることを特徴とするビデオデコーダ。
【請求項５】
請求項３において、前記再圧縮する回路によって発生され且つ格納されている再圧縮された値の伸長及びデコーディングを行う回路（ＣＰＬＶデコーダ）が、
開始アドレスを格納し且つ作業メモリ（作業ＲＡＭ）内のデコードしたデータを転送する前記メモリ（アドレステーブル）において表示されたアドレスに格納されている前記フレーム格納メモリ（フレームメモリ）から読取られた圧縮されたマクロブロックが逐次的に供給されるハフマンデコーディング回路（マクロブロック取得、ハフマンデコーダ、ハフマンテーブル）、
前記ハフマンデコーディング回路及び前記フレーム格納メモリ（フレームメモリ）が結合されているデータバス（外部バス）、
それに対してカスケード結合されており且つ逆量子化器によって前記作業メモリへフィードバックされるピクチャマクロブロックを再生する回路であって、圧縮したマクロブロックを構成する前記作業メモリ（作業ＲＡＭ）内に格納されているデータのマクロブロックの分解である符号化したブロックを逐次的に処理する回路（ブロック取得）、「ｉ」偶数に対する前記抽出されたサブマトリクス（Ｌi）の前記係数を再生（偶数再生）及び「ｉ」奇数に対する前記抽出したサブマトリクス（Ｌi）の前記係数を再生（奇数再生）するブロックをイネーブル／ディスエーブルさせる多重化手段であって、それらの出力が多重化手段によって前記逆量子化器へ結合される多重化手段を具備しているピクチャマクロブロックを再生する回路、
を有していることを特徴とするビデオデコーダ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、大略、ビデオ画像（イメージ）シーケンスの圧縮及びコーディング（符号化）技術に関するものであって、更に詳細には、デコーディングフェーズ期間中にイメージ即ち画像の全体又はその一部を格納することを必要とするビデオデコーダのメモリ条件を減少するためのハードウエア形態で実現することが可能な方法に関するものである。
【０００２】
【従来の技術】
デジタル化したビデオシーケンスの処理におけるＭＰＥＧスタンダードによって確立された重要性のために、本発明方法の実際的な具体例をＭＰＥＧ２準拠システムにおいて実施化した場合について説明するが、本発明方法は異なるスタンダードに基づくデコーダにおいても完全に有効であり且つ効果的に適用可能なものである。
【０００３】
ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅｓ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）スタンダードは、デジタル化したピクチャのシーケンスの圧縮専用の１組のアルゴリズムを定義している。これらの技術は、該シーケンスの時間的及び空間的な冗長性を減少させることに基づいている。空間的及び統計的な冗長性の減少は、量子化、離散コサイン変換（ＤＣＴ）及びハフマンコーディング（符号化）によって単一のイメージ即ち画像を独立的に圧縮させることによって行われ、一方時間的冗長性の減少は、１つのシーケンスの相次ぐピクチャの間に存在する相関を使用して行われる。近似的には、各イメージ即ち画像は、局所的には、そのシーケンスの前の及び／又は後のイメージ（画像）の転移として表現することが可能であるということが可能である。この目的のために、ＭＰＥＧスタンダードは３つの種類のピクチャ、即ちＩ（イントラ符号化フレーム）、Ｐ（予測フレーム）、Ｂ（双方向予測フレーム）として表されるピクチャを使用する。
【０００４】
※Ｉ（イントラ符号化ピクチャ）：時間的な冗長性を包含するフレーム又は半フレーム
※Ｐ（予測ピクチャ）：先行するＩ又はＰ（前に符号化／復号化）に関する時間的な冗長性を取除いたフレーム又は半フレーム
※Ｂ（双方向予測ピクチャ）：先行するＩ及び後行するＰ（又は先行するＰ及び後行するＰ）に関する時間的な冗長性を除去した（両方の場合ともＩ及びＰピクチャは既に符号化／復号化されているものと考えねばならない）のフレーム又は半フレーム。
【０００５】
Ｉピクチャは完全に独立した態様で符号化され、Ｐピクチャはそのシーケンスにおける先行するＩ又はＰピクチャに関して符号化され、ＢピクチャはＩ又はＰ種類の且つビデオシーケンスにおける精密に先行する１つと後行する１つの２つのピクチャに関して符号化されたものである。
【０００６】
典型的なピクチャのシーケンスは、ＩＢＢＰＢＢＰＢＢＩＢ・・・のようなものである。これは、それが観察される順番であるが、Ｐは前のＩ又はＰに関して符号化され且つＢは先行する及び後行のＩ又はＰに関して符号化されるものであるから、デコーダはＢピクチャの前にＰピクチャを受取り且つＰピクチャの前にＩピクチャを受取ることが必要である。従って、これらのピクチャの伝送順はＩＰＢＢＰＢＢＩＢＢ・・・である。
【０００７】
ピクチャは、示された順番で逐次的に符号化器によって確立され、且つその後並び替えられ且つ表示される。Ｂピクチャをデコード即ち復号をするためには、デコーダが「フレームメモリ」と呼ばれる専用のメモリバッファ内にそのＢピクチャが参照する前にデコード即ち復号したＩ又はＰピクチャを格納することが必要であり、このことはかなりのメモリ空間を必要とする。
【０００８】
例えば、欧州のＴＶスタンダードＰＡＬは２５Ｈｚのピクチャ周波数を意図している。デジタル化したピクチャは各々が７２０×５７６ピクセルマトリクスによって構成されているフレームとも呼ばれる。各ピクセルに対して１２ビットを使用する（ルミナンスに対して８ビット及び２つのクロミナンス成分の各々に対する２ビット）グラフィックフォーマットＹＵＶ４：２：０を使用した場合、各フレームは６２２，０８０バイトを必要とし、従ってＭＰＥＧデコーダは、全体として、約１．２４メガバイトのフレームメモリを必要とする。
【０００９】
圧縮アルゴリズムを使用することによってこのメモリ条件を可及的に減少させることが目的である。効率的なフレーム圧縮メカニズムをデコーダ内において実現することにより、ビデオシーケンスの品質の知覚可能な損失なしで、少なくとも５０％であるが、約８０−８５％へ増加させることが可能なメモリの節約を達成することが目標である。
【００１０】
Ｉフレーム内に導入されたエラーは、そのＩフレームを参照して符号化されている次続のＰ及びＢフレームの全てにおいて伝搬するものであるから、圧縮エラーが可及的に小さいものであることが非常に重要である。現在の技術で予測される最良の結果は１２メガビットメモリを使用するものであり、且つかなり複雑なハードウエアアーキテクチャを必要とするという欠点を有している。一方、現在の静止デジタルピクチャを処理する領域においては、その技術水準はＧＩＦスタンダード（Ｇｒａｐｈｉｃ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｏｒｍａｔ）及びＪＰＥＧ（Ｊｏｉｎｔ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）スタンダードによって代表される。コンピュサーブ社が所有するＧＩＦアルゴリズムは２５６以下の色数を有する合成ピクチャのロスレス即ち損失のない圧縮に対して考え出されたものである。オリジナルのデータに包含される情報が損失されることを暗示するものでない場合にその圧縮はロスレス即ち無損失であると言われ、一方その信号の関連性が最も低い部分が意図的に省略される場合の圧縮をロッシー即ち有損失であると言われる。
【００１１】
ＪＰＥＧスタンダードは、又、ユーザによってエラーを検知することが可能でないように圧縮されたピクチャにおけるある詳細を取除くために人間の目の非線形性を利用している。
【００１２】
「合成品」は、ドローイング即ち描画手段等を使用することによって人工的に発生された画定されたピクチャであり、一方「自然」ピクチャは写真の類である。最初のものは急激な色彩勾配によって特性付けられ、一方、典型的に、２番目のものはより消滅的階調を有している。
【００１３】
静止即ち静的なピクチャを圧縮するために使用される別のアルゴリズムは、以後、ＣＰＬＶとしてしばしば参照する可変長符号化を具備する空間的な予測技術に基づくものである。ＣＰＬＶアルゴリズムは有損失又は無損失、自然ピクチャ又は合成ピクチャのいずれの圧縮にも適したものであり、且つ同一の圧縮率の場合に導入するノイズの大きさがより少ないので、ＧＩＦ及びＪＰＥＧアルゴリズムよりもより効率的なものであることが証明されている。
【００１４】
ＣＰＬＶ圧縮は以下の４つの基本的なステップを包含している。
【００１５】
※サブサンプリング（ｓｕｂ−ｓａｍｐｌｉｎｇ）
※量子化（ｑｕａｎｔｉｚａｔｉｏｎ）
※二進ツリーコーディング（ｂｉｎａｒｙ  ｔｒｅｅ  ｃｏｄｉｎｇ）
※ハフマンコーディング（Ｈｕｆｆｍａｎ  ｃｏｄｉｎｇ）
サブサンプリング
Ｌを圧縮すべきピクチャを表すマトリクスとする。このマトリクスをサンプリングして、各々がＬのピクセルの半分である２つのサブマトリクスＬ1及びＨ1を発生する。Ｌ1は奇数行から偶数ピクセルを及び偶数行から奇数ピクセルを除去することによってＬから得られる。サブマトリクスＨ1の要素は、Ｌ1のピクセルを補間し且つ前にＬから除去したピクセルから得られた値を減算することによって得られる。このようにして、Ｈ1のピクセルは予測エラーの有意性を取る。
【００１６】
次いで、Ｌ1から更に２つのサブマトリクスＬ2及びＨ2を得る。Ｌ2は、Ｌ1の偶数行を除去することによって得られ、且つＨ2は上述した如くに計算された予測エラーを表す。
【００１７】
この処理を継続して行い、マトリクスＬnが単一のピクセルを有し更に分解することが不可能になるまで、各Ｌiマトリクスから２つのサブマトリクスＬi+1及びＨi+1を発生する。そのように行って、第一のマトリクスＬを、図２に図示したように、一連のマトリクスＬn，Ｈn-1，Ｈn-2，．．．，Ｈ2，Ｈ1ヘ変換する。上述した変換処理において行われる補間即ち内挿は、多くの異なる態様で行うことが可能である。自然ピクチャ又は合成ピクチャのいずれの場合も、結果の品質と計算の複雑性との間の最善の比を提供する方法は、４個の隣接するピクセルの間での単純な算術平均（双１次補間）、を行うか、又は差が最も小さな２つの対向するピクセルの間の算術平均（線形補間）を行うものである。
【００１８】
量子化
デコーディング即ち復号フェーズにおいて、各マトリクスＬn及びＨnのピクセルを使用して、対応するマトリクスＬn-1のピクセルを発生し、該マトリクスはＨn-1マトリクスと共に使用してＨn-2を発生し且つ以下同様である。各マトリクスＨnは対応するＨn-1マトリクスの要素数の半分を包含しており、且つそれはＬn-1からＬ1へ全てのＬマトリクスを発生するために使用される。このことは、マトリクスＨnよりも一層大きな値でマトリクスＨn-1を量子化する可能性を示唆している。何故ならば、発生されるエラーがデコーディング（復号）プロセス期間中にピクセルの制限される数に影響を与えるからである。
【００１９】
従って、各マトリクスＨiは異なるステップＱiで量子化され、そのステップはＨn-1からＨ1ヘ増加する。各ステップＱiは、ステップＱi-1を１より小さなスケールファクタ即ち倍率によって割算することによって得られる。量子化によって発生することが可能な最も高いエラーに関する理論的考察及び実験結果に基づくヒューリスティック（発見的）考察によれば、低い圧縮率の場合には、最善のスケールファクタ（倍率）はより高い圧縮率の場合よりも一層高いことが示されている。
【００２０】
図３に示したように、入力から出力への伝達関数における「デッドゾーン」、即ち入力値が常にゼロの出力を発生するゾーンを有するために簡単な量子化アルゴリズムを考える（ゼロ復帰量子化器）。ゼロの値の発生は、以下に説明するように、ツリーコーディング（ｔｒｅｅ  ｃｏｄｉｎｇ）において特に重要なものであるから好適である。
【００２１】
量子化は、明らかに、有損失圧縮を発生するものであるが、それはオプションとしてのステップに止まることに注意することが重要である。ピクチャの無損失圧縮が所望される場合には、マトリクスＨの量子化を回避することで必要充分である。
【００２２】
二進ツリーコーディング
Ｈiマトリクスの値は二進ツリー構造で構成することが可能であり、その場合に、Ｈnマトリクスの各ピクセルは、図４に示したように、Ｈn-1の２つのピクセルへ結合されている。このようなデータ構造は、重要な利点を発生するものであり、即ち、適宜のマーカーを使用することによって、ゼロのみから構成されているツリーの全体的な「ブランチ（ｂｒａｎｃｈ）」即ち分岐を特定の値で置換させることが可能であり（従来、「ゼロツリー」と呼ばれている）、従って図５に示したように、ビットストリーム内においてゼロの長いシーケンスを回避することが可能である。そうでない場合には、Ｈの値は予測エラーであり、従って、それらは、典型的に、ゼロに近いか又は等しいものであるという事実に鑑み、ゼロからなるシーケンスが頻繁に発生する。そのようにして、何等の符号化エラーを導入することなしに、圧縮したピクチャの寸法を著しく減少させることが可能である。
【００２３】
二進ツリーコーディングは量子化から著しい利点を派生することが明らかである。Ｈの値の量子化がより多ければ多いほど、それらがゼロとなる蓋然性がより高く、従って「ゼロツリー」マーカーを使用することによって除去することが可能な二進ツリーの全体的な分岐を選別することをより頻繁なものとさせる。
【００２４】
ハフマンコーディング
量子化及びツリーコーディングの後に、そのビットストリームについてハフマンコーディング、即ち可変長のコード即ち符号で各記号を置換させることによってデータフローのエントロピィを最大とさせることを目的とした処理を行い、尚、可変長符号の長さは、置換を行う記号の頻度が高ければ高いほどより短い。確立された目標のためには、各可能な記号に対してハフマンコードを計算することが必要なものではなく、より蓋然性の少ない記号は符号化せずに、次の記号はハフマン符号ではないことをデコーダへ知らせるために特定のエスケープ記号によって先行させることが可能であることがヒューリスティック即ち発見的に証明されている。
【００２５】
ＭＰＥＧ符号化の特性
欧州のＴＶスタンダードＰＡＬ、及びアメリカ合衆国のＮＴＳＣは、ビデオシーケンスのピクチャ（又はフレーム）が２つの独立し且つインターレースされた半ピクチャ（フィールドと呼ばれる）によって構成されることを意図している。このことは、各フレームの偶数行が１つのフィールドに属し、且つ奇数行が別のフィールドに属することを意味している。ＭＰＥＧスタダンードにおいては、各フレームはルミナンスマトリクス（Ｙ）及び２つのクロミナンスマトリクス（Ｕ及びＶ）から構成されている。４：２：０ビデオフォーマットにおいては、各クロミナンスマトリクスはルミナンスマトリクスと比較して半分の寸法を有している。
【００２６】
エスティーマイクロエレクトロニクス社は、ＰＡＬ及びＮＴＳＣへ適用するためのＭＰＥＧ２オーディオ／ビデオデコーダを開発している。その統合した装置は、ＭＰＥＧ２ビデオデコーダとＭＰＥＧ１オーディオデコーダとを包含している。両方のコアは共通のインターフェースを介して１６メガビットの外部ＤＲＡＭへアクセスする。オーディオコアは１３１，０７２ビットのみへアクセスし、一方ビデオコアは該ＤＲＡＭの残りの１６，６４６，１４４ビットへアクセスする。
【００２７】
該ビデオメモリは以下の如くに構成されている。
【００２８】
※ビットバッファ（ｂｉｔ  ｂｕｆｆｅｒ）
ＭＰＥＧスタンダードが１．７５メガビット＋実施した伸長処理の非理想性を考慮するためのエキストラな量（８３５，５８４ビット）に固定する圧縮データバッファ。
【００２９】
※Ｉフレームバッファ（Ｉ−ｆｒａｍｅ  ｂｕｆｆｅｒ）
Ｉピクチャ（イントラピクチャ）の場合、４：２：０フォーマットで伸長。
【００３０】
※Ｐフレームバッファ（Ｐ−ｆｒａｍｅ  ｂｕｆｆｅｒ）
Ｐピクチャ（予測ピクチャ）の場合、４：２：０フォーマットで伸長。
【００３１】
※Ｂフレームバッファ（Ｂ−ｆｒａｍｅ  ｂｕｆｆｅｒ）
Ｂピクチャ（双方向予測ピクチャ）の場合、４：２：０フォーマットで伸長。
その寸法は０．７４０７及び０．６１１１のファクタによって最適化されている。このバッファの存在は、又、デコーディング即ち復号処理の非理想性を考慮する。
【００３２】
４：２：０フォーマットにおける各フレームバッファは以下のようなメモリ空間を占有する。
【００３３】
ＰＡＬスタンダード
ルミナンス（Ｙ）に対し720×576×８    ＝3,317,760ビット
Ｕクロミナンスに対し360×288×８      ＝  829,440ビット
Ｖクロミナンスに対し360×288×８      ＝  829,440ビット
――――――――――――――――――――――――――――
合計Ｙ＋Ｕ＋Ｖ                        ＝4,976,640ビット
ＮＴＳＣスタンダード
ルミナンス（Ｙ）に対し720×480×８    ＝2,764,800ビット
Ｕクロミナンスに対し360×240×８      ＝  619,200ビット
Ｖクロミナンスに対し360×240×８      ＝  619,200ビット
――――――――――――――――――――――――――――
合計Ｙ＋Ｕ＋Ｖ                        ＝4,147,200ビット
従って、最も重たい場合であるＰＡＬの場合における総数は、
１，８３５，００８＋８３５，５８４＋４，９７６，６４０＋４，９７６，６４０＋（４，９７６，６４０＊０，７４０７）＝１６１，３１０，０７０ビット
である。この計算はＢフレームバッファの０．７４０ファクタによる最適化を考慮に入れている。
【００３４】
この装置の更なる最適化は、それらを格納することの必要性なしにオンザフライ即ち処理中にＢピクチャのデコンプレッション（ｄｅｃｏｍｐｒｅｓｓｉｏｎ）即ち伸長を実行し、その場合に、例えばシンクロナス１００ＭＨｚ及びより高い周波数のＳＤＲＡＭ等の高速メモリを使用する。このような最適化は、ビデオメモリ条件を、１，８３５，００８＋８３５，５８４＋４，９７６，６４０＋４，９７６，６４０＝１２，６２３，８７２ビットに更に低下させ、Ｂバッファはオンチップであり、ＭＰＥＧ−２圧縮ストリームで画定された各８×８ブロックのスキャンを、ピクチャ自身の表示処理によって必要とされるピクチャ（フィールド又はフレーム）の各行のものへ変換させることが要求される。このような図６に図示したマクロセルは「マクロブロックからラスタースキャンへの変換器」として指定される。
【００３５】
【発明が解決しようとする課題】
本発明は、以上の点に鑑みなされたものであって、上述した如き従来技術の欠点を解消し、圧縮ビデオピクチャシーケンスのデコーダのビデオメモリ条件を減少させる技術を提供することを目的とする。
【００３６】
【課題を解決するための手段】
本発明によれば、圧縮ビデオピクチャシーケンスのデコーダのビデオメモリ条件を減少させる方法が提供される。本方法によれば、再生されたピクチャの品質が僅かに失われるが、ピクチャの劣化はＴＶスクリーン上に再生されたイメージ即ち画像を観察する場合に検知不可能なものである。何故ならば、その場合に導入されるアーチファクト即ち人工的な効果は比較的高い周波数で分布されているからである。
【００３７】
本発明の基礎となる概念は、デコンプレッション即ち伸長の後であるが外部メモリ内に格納する前に、予測のために参照として使用されるピクチャ（図１に示したように、ＭＰＥＧ−２スタンダードの場合にＩ及びＰピクチャ）の再圧縮を行う場合には、デコーディング（復号）処理によって必要とされるメモリの寸法が著しく減少されるという上の計算から派生する認識である。その後に、これらのピクチャは、メモリから読取られる時にデコンプレッション即ち脱圧縮即ち伸長される。
【００３８】
許容可能なアーチファクト（人工的効果）を導入しながら効果的なものであるためには、このような再圧縮は以下の条件を満足すべきである。
【００３９】
※圧縮されたピクチャによって占有されるメモリ空間の量＋それらの圧縮のために使用される空間は、このような再圧縮を使用することのないデコーダにおいて必要とされる全メモリ空間よりも低いものでなければならない。
【００４０】
※ピクチャの再圧縮は、メモリ条件を減少させることから派生する節約と比較して重要性のある態様で装置コストが影響されることがないように、容易に実現可能な方法で実現せねばならない。
【００４１】
※再生されたピクチャの品質の損失は知覚不可能なものでなければならない。
【００４２】
ＣＰＬＶ圧縮方法は、ビデオシーケンスをデコーディング即ち復号する場合に傑出した柔軟性を提供し、コーディング（符号化）及びデコーディング（復号化）回路の極めて容易な適用性を可能とさせ、可変の圧縮レベルに対しそれらの動作特性を最適化させることを可能とすることが判明した。
【００４３】
圧縮したビデオシーケンスのデコーダのビデオメモリ条件を減少させる本発明方法は、符号化したピクチャを伸長し、ビデオメモリに構成された１つ又はそれ以上のバッファ内に関連データを格納するステップを有しており、
伸長の後で且つそれらをビデオメモリの夫々のバッファ内に格納する前にピクチャをサブサンプリングし且つ再圧縮し、夫々、次第に増加する数のピクセルを除去することにより且つＬ1マトリクスのピクセルを補間し且つ開始マトリクスＬから除去した対応するピクセルの相次ぐ減算及び単一のピクセルによって構成されるサブマトリクスＬnが得られるまで相次ぐマトリクスＬiを派生するためにサブマトリクスＬ1を開始マトリクスとして使用するこの手順を繰り返し行うことによって、開始マトリクスＬのピクセル数の半分の２つのサブマトリクスＬ1及びＨ1を構成することによって得られるサブサンプリング用Ｌi及びＨiサブマトリクスのシーケンスを圧縮すべき現在のピクチャを表すＬマトリクスから派生し、
サブマトリクスＨi-1に対して使用したＱi-1ステップよりも大きなＱiステップで夫々のＬiマトリクスから計算した前記Ｈiサブマトリクスをゼロ復帰量子化器で量子化し、
ゼロのみによって構成される全ツリー分岐を識別するためのゼロツリーマーカーを使用して前記マトリクスの値の二進ツリーコーディングを行い、
可変長符号化を有する空間的予測技術（ＣＰＬＶ）に従って、最も頻発する記号のハフマンコーディングを行い、最も頻発度の低い記号は非符号化のままとし、それらをエスケープ記号で先行させ、
サブサンプリングし、再圧縮し、且つＣＰＬＶ符号化したブロックの形態における前記ピクチャに関連するデータを夫々のビデオメモリバッファ内に格納し、
前記サブサンプリングし且つ再圧縮したピクセルのブロックに関連するデータをデコードし、
前記可変長コーディングを有する空間的予測技術（ＣＰＬＶ）に従って前記ピクセルのブロックのデコードしたデータを伸長させる、
上記各工程を有している。
【００４４】
マトリクスＬ及びＬiの選択したピクセルは、「ｉ」が奇数である場合に奇数行の奇数ピクセル及び偶数行の偶数ピクセルであるか、又は「ｉ」が偶数である場合に、Ｌi上の奇数行の奇数ピクセルであるのかのいずれかとすることが可能であり、Ｌi-1上に配置されたピクセルに関連する行及び列のみをカウントする。
【００４５】
本発明方法は、ビデオデコーダにおいて、夫々のビデオメモリバッファ内に書込むべきピクチャデータの可変長符号化を有する空間的予測技術に基づく再圧縮及び符号化の回路（ＣＰＬＶエンコーダ）及び前記ビデオメモリバッファから読取ったピクチャデータをデコードし且つ伸長させ且つ伸長したデータのストリームを発生させる回路（ＣＰＬＶデコーダ）を有することによりハードウエア形態で実現することが可能である。
【００４６】
該圧縮及び符号化回路（ＣＰＬＶエンコーダ）は、
ＣＰＬＶ符号化フレームを格納するフレーム格納メモリ（フレームメモリ）、
非符号化マクロブロックを格納する作業メモリ（作業ＲＡＭ）及び前記作業メモリにおいて前記デコーダによって発生された伸長されたマクロブロックを順次転送する回路（マクロブロック取得）、
それにカスケード結合されており可変量子化ステップを有する量子化器によって前記作業メモリへフィードバックされる前記作業メモリ内に格納されているマクロブロックのデータからなるブロックをサブサンプリングし且つ量子化する回路であって、前記マクロブロックのデータからなるブロックを順次処理する回路（ブロック取得）及び第二多重化手段によって前記量子化器へ結合されており「ｉ」が偶数（Ｉｎｔｅｒｐ偶数）である及び「ｉ」が奇数（Ｉｎｔｅｒｐ奇数）である場合に前記係数Ｈiを計算する第一多重化手段イネーブル／ディスエーブル回路を有している回路、
前記作業メモリ内に格納されているデータのサブサンプリングし且つ量子化したブロックに関し二進ツリーコーディング及びゼロツリーマーキングを順次実施する回路（ゼロツリー）、
前記二進ツリーコーディングされたデータのブロックを符号化し且つその符号化したブロックを前記フレーム格納メモリ（フレームメモリ）内へ転送する前記回路（ゼロツリー）ヘカスケード結合されているハフマン符号化器、
各ハフマン符号化マクロブロックのビット長を計算する回路（長さ計算）によって出力されたデータから最良の量子化ステップを計算する回路（量子化ステップ計算）を有している前記量子化器の量子化ステップを規制する手段、
前記フレーム格納メモリにおける相次ぐマクロブロックの開始アドレスを各ハフマン符号化マクロブロックのビット長を計算する前記回路（長さ計算）によって出力されるビット長から計算する回路（アドレス計算）及び前記フレームメモリ内に格納されている全てのマクロブロックの開始アドレスを格納するメモリ（アドレステーブル）を有しており、前記フレーム格納メモリにおける圧縮されたマクロブロックの開始アドレスの計算及び格納手段、
前記ハフマン符号化器、前記伸長したマクロブロックの転送回路（マクロブロック取得）及び前記フレーム格納メモリ（フレームメモリ）が結合されているデータバス（外部バス）、
から構成することが可能である。
【００４７】
【発明の実施の態様】
動き補償は、各フレームをマクロブロックと呼ばれる区域に分割することによって局所的に行われ、各マクロブロックは、４個のルミナンスブロックと２個のクロミナンスブロック（クロマフォーマット４：２：０）から構成されており、１つのブロックは各側部が８個のピクセルからなる正方形の区域である。
【００４８】
従って、Ｉ及びＰフレームのマクロブロックからＢフレームを再生するためには、ピクチャの異なるブロックへ独立的にアクセスすることが必要であり、従って、ＣＰＬＶ再圧縮アルゴリズムは、全体的なピクチャに関して動作するものではなく単一構成用ブロックに関して動作するものである。ＭＰＥＧスタンダードに従ってＩ又はＰフレームがデコードされると、ＣＰＬＶ再圧縮コーダー即ち符号化器は、フレームブロックの全てに関して順次動作を行い、それらを、上述した如く、ＣＰＬＶアルゴリズムに従って別々に圧縮する。
【００４９】
ＣＰＬＶコーダー（符号化器）は、パラメータとして、所望の圧縮率を受取り、且つ各ブロックを異なる量子化ステップで符号化し、その場合にそれまで先行するブロックによって要求されたビット数をもとに各ブロックの量子化ステップを決定するフィードバック機構によって理想的なビットレート近くに止まるようにさせる。量子化ステップに関する情報が各ブロックのビットストリーム内に導入され、フレームメモリにおけるそのアドレスはランダムアクセスを可能とするためにアドレステーブル内に格納される。該テーブルはＩ又はＰのいずれかの種類のピクチャを構成するブロック数と同数の位置を包含している。
【００５０】
ＭＰＥＧデコーダ（復号器）がフレームメモリ内に格納されている１つのフレームに属する１つのブロックを必要とする度に、そのブロックのアドレスが該アドレステーブルから抽出され、該ブロックがメモリから読取られ、デコードされ、且つ最終的に、動き補償を介して使用されて、Ｐ又はＢフレームの対応するブロックを発生する。ＣＰＬＶコーダー（符号化器）及びデコーダ（復号化器）の構造については図６及び７を参照して説明する。
【００５１】
再圧縮用ＣＰＬＶ符号化器
機能
主要な符号化ルーチンは、関数ｓｅｌｅｃｔ ｍａｃｒｏｂｌｏｃｋ（）から構成されており、それは１つのピクチャの全てのマクロブロックに対してＣＰＬＶを適用し、該マクロブロックをサブサンプリングし、量子化し、且つ二進ツリーコーディング及びハフマンコーディングを行う。この符号化ルーチンの種々のステップにおける状態を図８に示してあり、一方図９は簡単化したフローチャートを示している。
【００５２】
ｓｅｌｅｃｔ ｍａｃｒｏｂｌｏｃｋ
この関数は、ＭＰＥＧデコーダによってデコードされるＩ又はＰフレームが格納されているメモリのスキャン（走査）を行う。それは、３つの色彩成分の各々に対して、ラスタースキャン順、即ち左側から右側及び上側から下側へ進行し、各マクロブロックを作業メモリ内へ転送し（ｇｅｔ ｍａｃｒｏ（）関数）、そこから、それはＣＰＬＶ符号化器によって処理される。続いて、そのマクロブロックはｗｒｉｔｅ ｍａｃｒｏ（）関数によって作業メモリ内に書込まれる。
【００５３】
この関数は、又、符号化したピクチャの予測長と実際の長さの間の差に依存する量子化ステップの更新を行う。
【００５４】
【数１】
0003696490.tif 000002
【００５５】
ｇｅｔ ｍａｃｒｏ
この関数は全体的なピクチャ（フレーム）を包含しているメインメモリから比較的小さな作業メモリへマクロブロックを転送し、そこでマクロブロックがＣＰＬＶ符号化器によって確立される。
【００５６】
【数２】
0003696490.tif 000003
【００５７】
ｓｅｌｅｃｔ ｂｌｏｃｋ
この関数は各マクロブロックに対してＣＰＬＶアルゴリズムを適用することによって作業メモリ内に格納されているマクロブロックに関して動作を行う。確立されるべきブロックはルミナンス（Ｙ成分）に対して６：４であり且つクロミナンス（Ｕ及びＶ成分）に対して２である。
【００５８】
【数３】
0003696490.tif 000004
【００５９】
ＣＰＬＶ
前述したように、ＣＰＬＶアルゴリズムは一連のサブマトリクスＨｉにおける開始マトリクスを分解する。何故ならば、このようなサブマトリクスを作成する手順は、インデックスｉが偶数であるか又は奇数であるかに依存して異なるからである。該アルゴリズムはｓｔｅｐ ｅｖｅｎ（）及びｓｔｅｐ ｏｄｄ（）と呼ばれる２つの部分に分割されており、これらの２つの関数の各々はサブサンプリング及び量子化をまかなう。
【００６０】
次いで、ＣＰＬＶブロックはゼロツリー（ＺｅｒｏＴｒｅｅ）マーカーを導入することによって二進ツリーコーディングを実施する。
【００６１】
【数４】
0003696490.tif 000005
【００６２】
デコーディング即ち復号を行う場合に、ＣＰＬＶデコーダが量子化前に符号化器によって得られたオリジナルの値ではなくＨiマトリクスの量子化した値のみを廃棄することに注意することが重要である。このことはエラーを発生する場合があるが、それは、符号化器も量子化した値で動作させることによって回避することが可能である。即ち、Ｈiマトリクスが発生される度に、正確にデコーダが行う如く、Ｈiの量子化した値から対応するＬi-1マトリクスを再生させる。そのために、関数ｓｔｅｐ（）は２つの関数Ｌｓｔｅｐ ｏｄｄ（）及びＬｓｔｅｐ ｅｖｅｎ（）を有しており、それらはデコーダに特有のものであり且つＬマトリクスの再生に関与する。同一の理由により、ＣＰＬＶ（）関数における処理サイクルは、最初のステップから最後のステップの代わりに、最後のステップから最初のステップへ逆に進行する。
【００６３】
【数５】
0003696490.tif 000006
【００６４】
Ｈｓｔｅｐ ｅｖｅｎ（）及びＨｓｔｅｐ ｏｄｄ（）関数は作業マトリクスをスキャン即ち走査し、各レベルＨiに対し新たなピクセル値を計算する。
【００６５】
【数６】
0003696490.tif 000007
【００６６】
補間（内挿）のために、最小の絶対差を有する２つの隣接するピクセルが選択される。補間の後に、整数間の割算によって量子化が実施される。
【００６７】
【数７】
0003696490.tif 000008
【００６８】
脱量子化（ｄｅｑｕａｎｔｉｚｅ）関数は、伝達関数のステップにおける中間値を取ることによってエラーを最小とさせる手段を使用する。
【００６９】
【数８】
0003696490.tif 000009
【００７０】
ｚｅｒｏｔｒｅｅ
再帰的関数ｚｅｒｏｔｒｅｅ（）が、該二進ツリーをスキャンし、且つゼロの値によってのみ構成されている分岐を除去するために「ゼロツリー（ＺｅｒｏＴｒｅｅ）」マーカーを挿入することによってそれを「剪定」する。該ツリー構造が明示的に構築されるものでないことに注意することが重要であり、正に、作業メモリ内のツリーのノードの位置が与えられると、同一のマトリクスの内側に２つの子分岐の実際の位置を派生させることを可能とするという簡単な規則が存在している。このような規則は関数ｃｈｉｌｄ（）によって以下の如くに表される。
【００７１】
【数９】
0003696490.tif 000010
【００７２】
ｗｒｉｔｅ ｍａｃｒｏ
この関数はハフマンコードを使用して二進形態でマクロブロックへの書込みを行う。各マクロブロックに対して、使用した量子化ステップの値が、書込まれ、その後に該要素の二進コード（符号）が追従する。更に、該マクロブロックのアドレスが適宜のテーブル内に書込まれ、そのテーブルはフレームメモリへのランダムアクセスを可能とするためにデコーダによって使用される。
【００７３】
【数１０】
0003696490.tif 000011
【００７４】
ｗｒｉｔｅ ｂｌｏｃｋ
ブロックの書込みのために、先ず始めに、［０，０］の位置にピクセルの値を書込むことが必要である。何故ならば、それは二進ツリーに属するものではないからである。その後に、二進ツリーのノードを既に上で検査したｚｅｒｏｔｒｅｅ（）関数と同様な再帰的関数によって書込む。当然に、該ピクセルの実効的な値が書込まれるのではなく、そのハフマン記号が書込まれる。
【００７５】
【数１１】
0003696490.tif 000012
【００７６】
アーキテクチャ
図１０は以下の機能的ブロックから構成されているコーダー即ち符号化器の一般的なアーキテクチャを示している。
【００７７】
「マクロブロック取得」は、外部メモリから順番にマクロブロックを取り且つそれらをコーダー（符号化器）の内部作業メモリ内に格納する。「作業ＲＡＭ」は、各ピクセルが８ビットで符号化されている各々が８×８ピクセルマトリクスである６個のブロックから構成されている非符号化マクロブロックを包含するのに適した寸法の作業メモリである。「ブロック取得」は、１個のマクロブロックを構成している６個のブロックを順番に処理する。これらのブロックは１つずつ作業ＲＡＭから取られ且つＣＰＬＶコーディング（符号化）が行われる。
【００７８】
「ＤＥＭＵＸ」は、各ブロックのピクセルを交互に偶数符号化ステップ及び奇数符号化ステップへ供給し、マトリクスＨiの値を決定するデマルチプレクサである。「Ｉｎｔｅｒｐ偶数」はｉが偶数である場合に係数Ｈiを計算する。「Ｉｎｔｅｒｐ奇数」は、ｉが奇数である場合に係数Ｈiを計算する。「量子化器」は、量子ステップＱでＨiの値を量子化する。
【００７９】
「ゼロツリー」は、全ブロックが量子化された場合に、二進ツリーコーディングを実施し、ゼロ分岐を「ゼロツリー」マーカーで置換させることによってゼロ分岐を除去する。「ハフマン符号器」はハフマン符号化への係数を提供する。「ハフマンテーブル」は計算されたハフマンコードを格納するメモリである。
【００８０】
「フレームメモリ」はＭＰＥＧデコーダのフレームメモリである。「長さ計算」は各マクロブロックのビット長を計算する。「量子化ステップ計算」は符号化されたマクロブロックの長さに依存して、次続のマクロブロックに対する量子化ステップを計算する。「アドレス計算」は、符号化されたマクロブロックの長さに依存して、フレームメモリ内の次続のマクロブロックの開始アドレスを計算する。「アドレステーブル」は、フレームメモリ内に格納されている全てのマクロブロックの開始アドレスを包含している。
【００８１】
ＣＰＬＶデコーダ
機能
ＣＰＬＶデコーダは、コーダー即ち符号化器に関し鏡のような態様で機能し、符号化器から該関数の殆どを継承する。デコーディングルーチンの関数の概略を図１１に示してある。該ルーチンの簡単化したフローチャートを図１２に示してある。
【００８２】
ｓｅｌｅｃｔ ｍａｃｒｏｂｌｏｃｋ
この関数は主要なデコーディングサイクルを構成する。各マクロブロックのアドレスがアドレステーブルａｄｄｒ ｔａｂｌｅから取られ且つｇｅｔ ｍａｃｒｏ（）ブロックへ供給され、それは符号化されたストリームを作業メモリ内に格納し、そこで、後において、それが確立される。ｗｒｉｔｅ ｍａｃｒｏ（）関数が該マクロブロックを外部メモリ内に書込む。
【００８３】
【数１２】
0003696490.tif 000013
【００８４】
ｒｅａｄ ｍａｃｒｏ
この関数はフレームメモリからマクロブロックを読取り、且つハフマンデコーディングを実行した後にそれを作業メモリ内に書込む。最初に、量子化ステップが読取られ且つ格納され、次いで、全ての６個のブロックが順番に読取られる。
【００８５】
【数１３】
0003696490.tif 000014
【００８６】
ｒｅａｄ ｂｌｏｃｋ
この関数はフレームメモリから１個のブロックの読取りを行う。該二進ツリーに属するものではないピクセル［０，０］に対応して最初の値が読取られ、従って、それは符号化されることはない。その後に、再帰的関数ｒｅａｄ ｔｒｅｅ（）が該ブロックの二進ツリーを読取る。
【００８７】
【数１４】
0003696490.tif 000015
【００８８】
ｒｅａｄ ｔｒｅｅ
関数ｒｅａｄ ｔｒｅｅは、再帰的に二進ツリーを読取り、ハフマン記号をデコードする。Ｚｅｒｏ Ｔｒｅｅマーカーが満足される場合には、読取りが停止され、自動的に該ツリーの全体的な分岐がゼロと等しくされる。
【００８９】
【数１５】
0003696490.tif 000016
【００９０】
ｓｅｌｅｃｔ ｂｌｏｃｋ
マクロブロックがフレームメモリから読取られ且つ作業メモリ内に格納されると、逆ＣＰＬＶアルゴリズムが種々のブロックに関して実施される。
【００９１】
【数１６】
0003696490.tif 000017
【００９２】
ｉＣＰＬＶ
ＣＰＬＶデコーディングの関数は殆どコーディング即ち符号化関数と等しく、従ってその擬似コードのみについて報告を行う。
【００９３】
【数１７ａ】
0003696490.tif 000018
【数１７ｂ】
0003696490.tif 000019
ｐｕｔ ｍａｃｒｏ
マクロブロックがデコードされると、それは外部メモリ内に書込まれる。
【００９４】
【数１８】
0003696490.tif 000020
【００９５】
アーキテクチャ
図１３は以下の機能的ブロックから構成されているデコーダの一般的なアーキテクチャを示している。「フレームメモリ」はＣＰＬＶ符号化ピクチャを格納するフレームメモリである。「アドレステーブル」は、フレームメモリ内に格納されている各マクロブロックのアドレスを包含するテーブルである。「マクロブロック取得」は、フレームメモリから順番に圧縮したマクロブロックを取り且つそれらをデコーダの作業メモリ内に格納させる。「ハフマンデコーダ」は各マクロブロックのハフマンデコーディングを実施する。
【００９６】
「ハフマンテーブル」は計算されたハフマンコードを格納するメモリである。
「作業ＲＡＭ」は、各々が８×８ピクセルマトリクスである６個のブロックから構成されている非符号化マクロブロックを包含するのに適した寸法の作業メモリである。「ブロック取得」は圧縮したマクロブロックを構成する６個の符号化ブロックを順次処理する。「再生偶数」はｉが偶数である場合に係数Ｌiを再生する。「再生奇数」は、ｉが奇数である場合に係数Ｌiを再生する。「脱量子化器」はＱステップで脱量子化を行う。
【００９７】
ピクセル当たりＮビットでの圧縮の例
ＩをＭ行及びＮ列のピクセルのマトリクスとして表現されるデジタルピクチャとし、且つＩ（ｙ，ｘ）を数Ｄのビット（二進桁）による整数として表現される行ｙ及び列ｘにおけるピクセルとする。ピクチャＩをＢ×Ｃ寸法（Ｂ行及びＣ列）を有する矩形状のブロックに細分化する。最大の圧縮効率は、Ｂ及びＣがＮの整数ディバイダの間で選択される場合に得られる。究極的な動き補償の後のＢ×Ｃ＝８＊８のピクセルブロックについて検討する。そのブロックがルミナンスブロックであるか又はクロミナンスブロックであるかに拘わらずに各ブロックを互いに独立的に圧縮するものと仮定する。
【００９８】
各マクロブロックは４個の８＊８ルミナンスブロック及び２個の８＊８クロミナンスブロックから構成され、各マクロブロックは次式に等しいビット数で符号化される。
【００９９】
【数１９】
0003696490.tif 000021
【０１００】
各ＰＡＬフレームにおいて、１６２０個のマクロブロックが存在している（ＮＴＳＣ１３５０の場合）。従って、３，０７２×１６２０＝４，９７６，６４０ビットである。
【０１０１】
ＣＰＬＶ再圧縮を考慮することにより、各ルミナンスブロックに対しＮ，Ｐ，Ｑ，Ｒビット／ピクセルを発生し且つ各クロミナンスブロックに対しＳ，Ｔビット／ピクセルを発生することが可能であり、その場合に、これらの値は可変であり且つ本発明のアルゴリズムの実際の使用に従うものである。一般的に、次式が得られる。
【０１０２】
【数２０】
0003696490.tif 000022
【０１０３】
従って、各ＰＡＬフレームは [（Ｎ＋Ｐ＋Ｑ＋Ｒ）＋（Ｓ＋Ｔ）]＊８＊８＊１６２０ビットのメモリ空間を必要とし、そのようにして得られるマクロブロック圧縮率は各ブロックに対する可変量子化ステップの関数によって可変である。
【０１０４】
ＣＰＬＶ再圧縮を有するＭＰＥＧデコーダの例
メモリ減少の限界はビットバッファであると言う事実を考慮に入れ、上の関係式から、１２と前記ビットバッファとの間で構成される任意のメモリ減少値を達成することが可能であり、ビットバッファは、ＭＰＥＧ伸長Ｉ及びＰフレームの上に計算した率での再圧縮を許容することによって、ＭＰＥＧ２スタンダードによって画定される。
【０１０５】
このような結果はＭＰＥＧ伸長の後で且つそれらが外部メモリ内に格納される前にＩ及びＰピクチャを再圧縮することによって達成される。その後に、それらは図６及び７に示したように、外部メモリから読取られると伸長される。この再圧縮は，上述した適応性ＣＰＬＶ技術に従って，Ｉ ＤＣＴ及び動き補償ブロックによって出力される８＊８ブロックに対して適合させることが可能である。従って、メモリ条件は以下の通りとなる。
【０１０６】
【数２１】
0003696490.tif 000023
【０１０７】
図１０及び１３のテーブルにおける位置
図１０及び１３に示したアドレステーブルは、Ｉ又はＰのいずれかの種類のフレームを構成するピクセルの８＊８ブロックと同数の位置を包含している。ＩがＭ行及びＮ列のピクセルからなるマトリクスとして表現されたデジタルピクチャであるとし、且つＩ（ｙ，ｘ）が数Ｄのビット（二進桁）による整数として表現された行ｙ及び列ｘにおけるピクセルであるとする。
【０１０８】
ＩピクチャをＢ×Ｃ矩形状ブロック（Ｂ行及びＣ列）に細分化する。圧縮の最大効率は、Ｂ及びＣがＭ及びＮの整数ディバイダの間で選択される場合に得られる。従って、各Ｉ又はＰフレームに対して｛（Ｍ＊Ｎ）／Ｂ＊Ｃ｝＊６個のブロックが存在している。
【０１０９】
ＣＰＬＶ符号化器におけるテーブル内に格納することが必要なワード数は｛（Ｍ＊Ｎ）／Ｂ＊Ｃ｝＊６であり、各ワードはＡ個のビットである。ＣＰＬＶデコーダのテーブルのワード数は｛（Ｍ＊Ｎ）／Ｂ＊Ｃ｝＊６＊２とすることが可能であり、各ワードはＡ個のビットから構成されている。ファクタ２は動き補償目的のために、Ｉ及びＰの両方のピクチャの部分をアドレスすることを可能とする。
【０１１０】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ制限されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
【図面の簡単な説明】
【図１】  ＭＰＥＧシーケンスにおけるＩ，Ｂ，Ｐフレームの間の関係を示した概略図。
【図２】  ＣＰＬＶエンコーダにおけるオリジナルのピクチャの分解状態を示した概略図。
【図３】  量子化器伝達関数を示した概略図。
【図４】  どのようにして二進ツリーが構築されるかを示した概略図。
【図５】  二進ツリーコーディングにおける「ゼロツリー」マーカーの使用状態を示した概略図。
【図６】  本発明に基づくＣＰＬＶエンコーダ及びＣＰＬＶデコーダを包含するＭＰＥＧビデオデコーダＭＰ＠ＭＬを示した概略ブロック図。
【図７】  ＭＰＥＧデコーダ内のフレームメモリ及びＣＰＬＶコーディング及びデコーディングの使用状態を示した概略図。
【図８】  ＣＰＬＶ符号化ルーチンの概略図。
【図９】  ＣＰＬＶ符号化のフローチャート。
【図１０】  ＣＰＬＶ符号化器の一般的なアーキテクチャを示した概略図。
【図１１】  ＣＰＬＶデコーディングの概略図。
【図１２】  ＣＰＬＶデコーディングのフローチャート。
【図１３】  ＣＰＬＶデコーダの一般的なアーキテクチャを示した概略図。
【図１】
0003696490.tif 000024
【図２】
0003696490.tif 000025
【図３】
0003696490.tif 000026
【図４】
0003696490.tif 000027
【図５】
0003696490.tif 000028
【図６】
0003696490.tif 000029
【図７】
0003696490.tif 000030
【図８】
0003696490.tif 000031
【図９】
0003696490.tif 000032
【図１０】
0003696490.tif 000033
【図１１】
0003696490.tif 000034
【図１２】
0003696490.tif 000035
【図１３】
0003696490.tif 000036