(57)【要約】ビデオ・データをランレングス符号化するための新規かつ改善された方法および装置（５００）。これらの技術は、デジタル・ビデオのアプリケーションに特に適し、それらのアプリケーションでは、ビデオ・デコーダ（５３４）への入力が、ランレングスおよびアンプリチュード（５１８）を決定するために作成される。実施は、Ｄｉｇｉｔａｌ　Ｖｉｄｅｏ　Ｓｔａｎｄａｒｄに詳述される規格など、様々なアルゴリズムを圧縮システム（５００）に統合する広範に使用されている画像圧縮規格に適する。
2004501531.tif 000002
【特許請求の範囲】
【請求項１】
ランレングス符号化ビデオ・データのためのビデオ・エンコーダであって、
ビデオ・データを受信し、量子化係数の選択された一群に基いてレングス情報を供給するように構成されたレングス決定エンコーダと、
前記レングス決定エンコーダに結合され、レングス情報を受信し、最もよく適合する複数の量子化係数を選択するように構成されたスマート・エンコーダと、
前記スマート・エンコーダに結合され、複数の最もよく適合する量子化係数を受信し、前記ビデオ・データをランレングス符号化するように構成された符号決定エンコーダと
を含むビデオ・エンコーダ。
【請求項２】
前記量子化係数の選択された一群がＤＶ規格に沿っている請求項１に記載のビデオ・エンコーダ。
【請求項３】
前記量子化係数の選択された一群が約０、３、７、１１、１５である請求項１に記載のビデオ・エンコーダ。
【請求項４】
前記ビデオ・データを保存するための複数の記憶コンポーネントをさらに含む請求項１に記載のビデオ・エンコーダ。
【請求項５】
前記複数の記憶コンポーネントが後方および前方のメモリ・バッファとして機能するように構成された請求項４に記載のビデオ・データ。
【請求項６】
前記レングス決定エンコーダが、前記ビデオ・データの各マクロ・ブロックについて５つのレングスを供給する請求項１に記載のビデオ・エンコーダ。
【請求項７】
前記スマート・エンコーダが、前記ビデオ・データの各ビデオ・セグメントについて５つの量子化係数を選択する請求項１に記載のビデオ・エンコーダ。
【請求項８】
前記符号決定エンコーダに結合され、前記ビデオ・データをビットストリームに配置するように構成された符号パッキング・ブロックをさらに含む請求項１に記載のビデオ・エンコーダ。
【請求項９】
前記符号パッキング・ブロックが前記スマート・エンコーダにさらに結合され、前記スマート・エンコーダが前記ビデオ・データについての情報を前記符号パッキング・ブロックに供給する請求項８に記載のビデオ・エンコーダ。
【請求項１０】
ＤＣＴブロックに結合され、前記ビデオ・データ、および、前記ビデオ・データに選択されたＤＣＴ型を適用するＤＣＴブロックに適用するためにＤＣＴ型を選択するように構成されたＤＣＴ型決定ブロックをさらに含む請求項１に記載のビデオ・エンコーダ。
【請求項１１】
ＤＣＴ型が、２×４×８ＤＣＴおよび８×８ＤＣＴを含む一群から選択される請求項１０に記載のビデオ・エンコーダ。
【請求項１２】
ビデオ・データをランレングス符号化するためのビデオ・エンコーダであって、
前記ビデオ・データを受信し、量子化係数の選択された一群に基いてレングス情報を供給するように構成されたレングス決定エンコーダと、
前記レングス決定エンコーダに結合され、レングス情報を受信し、最もよく適合する複数の量子化係数を選択するように構成されたスマート・エンコーダと、
前記スマート・エンコーダに結合され、複数の最もよく適合する量子化係数を受信し、前記ビデオ・データをランレングス符号化するように構成された符号決定エンコーダと、
前記ビデオ・データを保存するために、前記レングス決定エンコーダ、前記スマート・エンコーダ、前記符号決定エンコーダの少なくとも１つに結合される複数の記憶コンポーネントと、
前記符号決定エンコーダに結合され、前記ビデオ・データをビットストリーム内に配置するよう構成される符号パッキング・ブロックと
を含むビデオ・エンコーダ。
【請求項１３】
複数のＤＣＴ係数を含むビデオ・データを符号化する方法であって、
ビデオ・データの２つのＤＣＴ係数を同時に解析するステップと、
解析されている２つのＤＣＴ係数に対するランレングスを決定するステップと、
前記ランレングスを保存するステップと、
前記２つのＤＣＴ係数の双方がゼロの値を有する場合、前記ランレングスを２だけ増加させるステップと、
前記第１のＤＣＴ係数が０の値を有し、前記第２のＤＣＴ係数が１の値を有する場合、１においてランレングスを開始するステップと、
前記第２のＤＣＴ係数が０の値を有し、前記第１のＤＣＴ係数が１の値を有する場合、ランレングスを１だけ漸増させるステップと、
前記２つのＤＣＴ係数の双方が１の値を有する場合、ランレングスをゼロに設定するステップとを含む方法。
【請求項１４】
保存ブロックがＥＯＢ位置を保存する請求項１３に記載の方法。
【請求項１５】
前記保存ブロックが、前記ビデオ・データのビデオ・セグメントの各ブロックについて、ＤＣＴ型およびクラス数の少なくとも１つを保存する請求項１４に記載の方法。
【請求項１６】
前記保存ブロックが、所望の量子化係数に関する情報を保存する請求項１４に記載の方法。
【請求項１７】
複数のテーブルからレングス符号を調べる方法であって、
入力データを受信するステップと、
前記入力データを量子化するステップと、
前記量子化された入力データのラン・カウントとアンプリチュードに基いて、レングス情報を供給することができる大型ＶＬＣレングス・テーブルを供給するステップと、
前記量子化された入力データの有効なラン・カウントとアンプリチュードの双方が前記量子化された入力データに対して供給できる場合、前記大型ＶＬＣレングス・テーブルからレングス符号を調べるステップと、
前記量子化された入力データのラン・カウントに基いて、レングス情報を供給できるランＶＬＣレングス・テーブルを供給するステップと、
前記量子化された入力データの有効なラン・カウントのみを、前記量子化された入力データに対して供給することができる場合、前記ランＶＬＣレングス・テーブルからレングス符号を調べるステップと、
前記量子化された入力データのアンプリチュードに基いて、レングス情報を供給することができるアンプリチュードＶＬＣレングス・テーブルを供給するステップと、
前記量子化された入力データの有効なアンプリチュードのみを、前記量子化された入力データに対して供給できる場合、前記アンプリチュードＶＬＣレングス・テーブルからレングス符号を調べるステップと、
前記アンプリチュードＶＬＣレングス・テーブルから調べられた前記レングス符号と前記ランＶＬＣレングス・テーブルとを組み合わせるステップと、
前記量子化された入力データの有効なラン・カウントとアンプリチュードの双方が、前記量子化された入力データに対して供給することができるかどうかに基いて最後のレングス符号を供給するステップとを含む方法。
【請求項１８】
組み合わせ行為が、前記アンプリチュードＶＬＣレングス・テーブルおよび前記ランＶＬＣレングス・テーブルから調べられたレングス符号を加算するステップを含む請求項１７に記載の方法。
【請求項１９】
直流成分について前記最後のレングス符号を訂正するステップをさらに含む請求項１７に記載の方法。
【請求項２０】
前記量子化の行為が、量子化テーブルからの値に基いて行われる請求項１７に記載の方法。
【発明の詳細な説明】
【０００１】
（関連出願への相互参照）
本出願は、１９９８年３月６日出願の米国仮特許出願第６０／０７７，０５４号から優先権を主張する１９９９年３月５日出願の米国特許出願第０９／２６３，４４２号から優先権を主張する１９９９年１０月１９日出願の米国特許出願第０９／４２１，４２５号からの優先権を主張する。すべての目的について、すべてその全体を参照により本明細書に組み込む。
【０００２】
（発明の背景）
本発明は、画像処理の分野に関する。より詳細には、本発明は、ビデオ・データをランレングス符号化するための方法および装置に関する。これらの技術は、ビデオ・エンコーダへの入力がランレングス符号化されるデジタル・ビデオ（ＤＶ）応用例に特に適する。本発明の実施は、その全体を参照により本明細書に含むＤＶ規格（ＤＶ−ＳＤまたは「Ｂｌｕｅ　Ｂｏｏｋ」）に詳述されている規格などの圧縮システムに様々なアルゴリズムを統合する広範に使用されている画像圧縮規格に適する。
【０００３】
従来のビデオ圧縮方式では、ビデオ・エンコーダは、離散コサイン変換（ＤＣＴ）を適用して各ビデオ・ブロックのＤＣＴ係数データを周波数領域係数に変換する。どのビデオ・ブロックも、一般にＤＣＴ係数の８×８ブロックで構成される。圧縮比を増大するために、すべての係数は、特定の重み付け量子化数で重み付けされる。重み付けの後、係数の多くはゼロに切り捨てられ、および／または、係数のダイナミック・レンジは低減される。これで圧縮比を改善する。
【０００４】
特に、ランレングス符号化において、圧縮するために、画像の反復的性質が利用される。ランレングス符号化は、同じ値の「ラン（連続）数」を検出し、画像を符号化し、「連続の長さ」および「値」（または、アンプリチュード）のシーケンスを提供する。したがって、ランレングス符号化はエラーのない（すなわち、損失のない）圧縮である。重み付け段階が係数の多くのをゼロに切り捨て、および／または、係数のダイナミック・レンジが低減されるため、ランレングス符号化のラン計数が増加することにより、圧縮比を大幅に増大することができる。これは、エンドオブブロック（ＥＯＢ）トークンの終わりにゼロを置き換えることができる。通常、圧縮比は、３から２０の範囲である。
【０００５】
ＤＶシステムにおいては状況が異なる。圧縮比は５：１付近と予想され、これは、過剰な切り捨てが不要であることを意味する。一定した比を維持するために、圧縮比は、ビデオ・セグメントのレベルに制限される。各ビデオ・セグメントは５つのマクロ・ブロックから構成され、各マクロ・ブロックは４つの８×８のＹブロック、１つの８×８のＵブロック、および、１つの８×８のＶブロックを含む。各ビデオ・セグメントのすべての３０個のブロックのための符号化ビットストリームを保存するための固定された量のデータがある場合、この方式は、さらに良好な符号化の結果を達成するために、いくつかのブロックがより長いビットストリームを使用することができる。同時に、いくつかのブロックは、短いビットストリームを使用して、適切に良好な品質を維持することができる。全体的に、高い圧縮比および高い品質の双方が同時に達成されることが期待される。
【０００６】
したがって、望ましいのは、変化を続ける風景などの様々なタイプのビデオ・データに対して、許容できる圧縮のレベルを提供する技術である。さらに、このタイプの技術は、集積回路に実装された時に、空間の効率的な使用を提供するべきである。また、実装は、画像の品質を維持するために、許容できるレベルの計算の正確さを提供するべきである。
【０００７】
（発明の概要）
本発明は、ビデオ・データを効率的かつ正確に圧縮するための方法および装置を提供することによって、従来技術に関連する問題を解決する。一実施態様において、ビデオ・データをランレングス符号化するためのビデオ・エンコーダが提供される。このビデオ・エンコーダはレングス決定コーダおよび符号決定コーダを含む。このレングス決定コーダは、ビデオ・データを受信するように構成することができ、選択された一群の量子化係数に基いて、レングス情報を提供することができる。符号決定コーダは、最もよく適合する複数の量子化係数を受信し、ビデオ・データをランレングス符号化するように構成することができる。
【０００８】
他の実施態様において、符号決定コーダおよびレングス決定コーダは、スマート・エンコーダに結合することができる。このスマート・エンコーダは、レングス情報を受信し、最もよく適合する複数の量子化係数を選択するように構成することができる。
【０００９】
さらに他の実施態様において、選択された一群の量子化係数は、ＤＶ規格に沿って選択される。
【００１０】
さらに他の実施態様において、ビデオ・データを符号化する方法が開示される。ビデオ・データは、複数のＤＣＴ係数を含む。この方法は、ビデオ・データの２つのＤＣＴ係数を同時に解析するステップ、解析されている２つのＤＣＴ係数に対するランレングスを決定するステップ、および、そのランレングスを保存するステップを含む。２つのＤＣＴ係数の双方がゼロの値を有している場合、ランレングスは２だけ増加される。最初のＤＣＴ係数がゼロの値を有し、第２のＤＣＴ係数が１の値を有している場合、ランレングスは１で再開始される。第２のＤＣＴ係数がゼロの値を有し、第１のＤＣＴ係数が１の値を有している場合、ランレングスは１だけ漸増される。代案として、２つのＤＣＴ係数の双方が１の値を有している場合、ランレングスはゼロに設定される。
【００１１】
別の実施態様において、複数のテーブルからレングス符号を調べる方法が開示される。この方法は、入力データを受信するステップ、入力データを量子化するステップ、および、量子化された入力データのラン計数およびアンプリチュードに基くレングス情報を提供することが可能な大型ＶＬＣレングス・テーブルを提供するステップを含む。量子化された入力データに対して、量子化された入力データの有効なラン計数およびアンプリチュードの双方を提供することができる場合、レングス符号は、大型ＶＬＣレングス・テーブルから調べられる。この方法は、量子化された入力データのラン計数に基いて、レングス情報を提供することができるランＶＬＣレングス・テーブルをさらに提供する。量子化された入力データに対して、量子化された入力データの有効なラン計数のみが提供できる場合、レングス符号はランＶＬＣレングス・テーブルから調べられる。この方法は、量子化された入力データのアンプリチュードに基いてレングス情報を提供することができるアンプリチュードＶＬＣレングス・テーブルを提供するステップも含む。量子化された入力データに対して、量子化入力データの有効なアンプリチュードのみが提供できる場合、レングス符号はアンプリチュードＶＬＣレングス・テーブルから調べられる。この方法は、アンプリチュードＶＬＣレングス・テーブルから調べられたレングス符号とランＶＬＣレングス・テーブルとを組み合わせるステップを付加的に含む。この方法は、量子化された入力データに対して、量子化された入力データの有効なラン計数およびアンプリチュードの双方を提供することができるかどうかに基いて、最終的なレングス符号を提供する。
【００１２】
本発明のさらに他の実施態様において、革新的な２ＤＣＴ係数走査技術、および、ＥＯＢ位置を保存するための（比較的小さな）スクラッチ・メモリが提供される。この２ＤＣＴ係数走査方式は、性能を最大２倍に引き上げる。小さな方のＤＣＴ係数値がゼロである時、性能の２倍の増大が維持される。小さなスクラッチ・メモリ（例えば、３０×３３ビットＲＡＭメモリ）は、各ブロックのＤＣＴタイプ（１ビット）およびクラス数（２ビット）を１つのビデオ・セグメントに保存するために使用することができる。
【００１３】
本発明のこれらの、および、他の実施形態、並びに、その長所および特徴について、以下の文面および添付の図面とともにさらに詳細に説明する。
【００１４】
（特定の実施形態の説明）
以下の説明において、ランレングス符号化についての好ましい実施形態を参照して本発明を説明する。さらに詳細には、本発明の特定の特徴を例示する例を説明する。しかし、本発明は、いかなる特定の特徴に限定せず、本明細書に説明する実施形態にも限定しない。したがって、以下の実施形態の説明は、限定ではなく例示を目的としている。同様に、特定の図面に現われ、その前の図面に紹介した要素は、もともと使用していた同じ参照番号で参照する。
【００１５】
図１は、本発明によるシステム３００の簡略化ブロック・ダイヤグラムを示す。ブロック３０１は、アナログ・データをＤＶフォーマット・データに、および、その逆に変換する。アナログ・データはアナログ・ノード３０２に入力され、そこから出力される。ＤＶデータは、ＤＶノード３０８に入力され、そこから出力される。アナログ信号は、ケーブルＴＶ、アナログ・カムコーダ、ビデオ・カセット・レコーダ、および、他のアナログ信号源のための信号を含む。ＤＶフォーマット・データは、デジタルＤＶカムコーダ、デジタル・ビデオ・エディタ、他のＤＶフォーマット装置、および、ＰＣ内のメモリ、セット・トップ・ボックス、ＷｅｂＴＶ（登録商標）などの他の形態の記憶装置のためのＤＶフォーマット・データを含む。
【００１６】
アナログ・データをＤＶフォーマットに変換する時、Ａ／Ｄ変換器３０４は、アナログ・ノード３０２に受信されたアナログ・データをデジタル・データに変換する。続いて、Ａ／Ｄ変換器３０４からのデジタル・データは、符号化および／または圧縮のために、符号化圧縮ブロック３０６に入力される。続いて、符号化／圧縮されたデータはＤＶフォーマットでＤＶノード３０８から出力される。
【００１７】
ＤＶフォーマット・データをアナログ・データに変換する時、ＤＶフォーマット・データは、ＤＶノード３０８からブロック３０１に入力される。続いて、ＶＤフォーマット・データは、符号化圧縮ブロック３０６によって復号化および／または圧縮解凍される。続いて、復号化／圧縮解凍されたデータが、Ｄ／Ａ変換器３１０によって受信される。Ｄ／Ａ変換器３１０は、デジタル・データをアナログに変換し、続いて、アナログ・ノード３０２においてアナログ・データを出力する。代案として、ブロック３０４および３１０は、同じチップまたは２つの別のチップに集積することができる。
【００１８】
図２はシステム４００を示す。システム４００は、図１のブロック３０１の詳細図である。アナログ・ビデオ・データは、アナログ・ビデオ・ノード４０２で受信される。続いて、受信されたデータは、Ａ／Ｄ変換器４０４に供給され、Ａ／Ｄ変換器４０４は、アナログ・ビデオ・データをデジタル・フォーマットに変換する。Ａ／Ｄ変換器４０４からのデジタル化されたデータは、ビデオ・プロセッサ４０５に供給され、ビデオ・プロセッサ４０５は、デジタル化されたビデオ・データにビデオ処理を行う。アナログ・ビデオ・ノード４０２にアナログ・ビデオ・データを出力する時、Ｄ／Ａ変換器４０６が、ビデオ・プロセッサ４０５からのデジタル・アナログ・ビデオ・データをアナログ・ビデオ・データに変換する。
【００１９】
音声データは、アナログ音声ノード４０８にアナログ・フォーマットで受信される。アナログ音声データは音声変換器４１０に供給される。音声変換器４１０は、アナログ音声データをデジタル・フォーマットに、および、その逆に変換することができる。音声変換器４１０は、Ｐｈｉｌｉｐｓ　Ｅｌｅｃｔｒｏｎｉｃｓ（登録商標）ＵＤＡ１３４４または他の適する音声変換器チップであってよい。音声変換器４１０は、音声プロセッサ４１２に結合される。音声プロセッサ４１２はデジタル音声信号を処理する。音声プロセッサ４１２は、Ｔｅｘａｓ　Ｉｎｓｔｒｕｍｅｎｔｓ（登録商標）から市販されているデジタル信号プロセッサ（ＤＳＰ）などのいかなる適する音声処理チップであってよい。多重化器４１４は、ビデオ・プロセッサ４０５および音声プロセッサ４１２から／へのデータを多重化する。多重化器４１４は、リンク・チップ４１６に結合される。リンク・チップ４１６は、好ましくは、純粋なデジタル・チップであり、Ａｐｐｌｅ　Ｃｏｍｐｕｔｅｒ，Ｉｎｃ．（登録商標）によって本来設計された１３９４規格に沿った通信のためのリンク層を提供する。現在、１３９４規格は、１００メガビット／秒（Ｍｂ／ｓｅｃ）、２００、４００、または、８００Ｍｂ／ｓｅｃの帯域幅を提供することができる。Ｔｅｘａｓ　Ｉｎｓｔｒｕｍｅｎｔｓ（登録商標）ＴＳＢ１２ＬＶ４２、および、Ｐｈｉｌｌｉｐｓ　Ｅｌｅｃｔｒｏｎｉｃｓ（登録商標）ＰＤＩ１３９４Ｌ２１などの他の銘柄のリンク・チップも使用することができる。リンク・チップ４１６は、物理層４１８に結合され、物理層４１８は、１３９４規格に沿った接続を提供する。物理層４１８はケーブル４２０に結合され、ケーブル４２０も、規格１３９４に沿って設計される。ケーブル４２０は、光ケーブルであってよい。
【００２０】
図２にメモリ４２２が図示されている。メモリ４２２は、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、拡張型出力ＤＲＡＭ（ＥＤＯ　ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、ビデオＲＡＭ（ＶＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）などのいかなるタイプの記憶装置であってよい。メモリ４２２は、ビデオ・プロセッサ４０５および音声プロセッサ４１２によって行われる機能などの、ブロック４２４内で行われる機能のための記憶装置を含む、システム４００内のデバイスのための記憶装置である。付加的に、システム４００のいくつかの要素は、それら自身のローカル・メモリを有することができる。
【００２１】
図３はシステム５００を示す。システム５００は、図１の符号化圧縮ブロック３０６のさらに詳細なブロック・ダイヤグラムである。デジタル・ビデオ・データは、ビデオ・ノード５０２に受信される。受信されたデジタル・ビデオ・データは、好ましくは、輝度（Ｙ）に対して４バイトのデータ、赤色（ＣＲ）に対して２バイトのデータ、および、青色（ＣＢ）に対して２バイトのデータからなる４：２：２フォーマットである。デジタル・ビデオ・データは、Ｐｈｉｌｌｉｐｓ　Ｅｌｅｃｔｒｏｎｉｃｓ（登録商標）ＳＡＡ７１１２などのいかなるビデオ復号器チップによっても供給することができる。ビデオ・フィルタ５０４は、ビデオ・ノード５０２に受信されるデジタル・ビデオ・データにフィルタリング・オペレーションを行う。フィルタリング・オペレーションは、ＮＴＳＣまたはＰＡＬテレビジョン・システム規格のためのフィルタリングを含むことができる。例えば、ＮＴＳＣについて、４：２：２フォーマット・データは、４：１：１フォーマットにフィルタリングすることができる。ＰＡＬについて、４：２：２フォーマット・データは、４：２：０フォーマット・データにフィルタリングすることができる。ビデオ・フィルタ５０４による他のフィルタリング・オペレーションは、雑音を取り除くための水平および垂直フィルタリングを含むことができる。ビデオ・フィルタ５０４からのフィルタリングされたビデオ・データは、メモリ５０６に保存することができる。ビデオ・データは、メモリ５０６にさらに効率的にビデオ・データを保存するために、ビデオ・シャッフル・ブロック５０７によって配置することができる。メモリ５０６は、音声ノード５０８において受信されるデジタル音声データも保存することができる。音声シャッフル・ブロック５０９は、メモリ５０６内でさらに効率的に音声データを配置することができる。メモリ５０６は、ＤＲＡＭ、ＥＤＯ　ＤＲＡＭ、ＳＤＲＡＭ、ＶＲＡＭ、ＳＲＡＭなどのいかなるタイプの記憶装置であってもよい。メモリ５０６は、システム５００内のデバイスに対して記憶を提供する。さらに、システム５００のいくつかの要素は、それら自身のローカル・メモリを有することができる。
【００２２】
メモリ５０６に保存されるビデオ・データは、（ＤＣＴが離散コサイン変換される）ＤＣＴ型決定ブロック５１０によって検索することができる。ＤＣＴ型決定ブロック５１０は、８×８または２×４×８型ＤＣＴを、検索されたビデオ・データに行うべきかどうかを決定することができる。続いて、検索されたビデオ・データはＤＣＴブロック５１２に供給される。ＤＣＴブロック５１２は検索されたデータに離散コサイン変換を行うように構成されている。ＤＣＴブロック５１２は、ＤＣＴ決定ブロック５１０によって下されたＤＣＴ型決定に従って、検索されたデータにＤＣＴオペレーションを行う。ＤＣＴブロック５１２からの変換されたデータは、メモリ・バッファ５１４ａ〜ｂおよび５１６ａ〜ｂに保存される。メモリ・バッファ５１４ａ〜ｂは同一でもよい。同様に、メモリ・バッファ５１６ａ〜ｂも同一でもよい。メモリ・バッファ５１４ａ〜ｂは、好ましくは、１キロ×２０ビットのデータを保存する。メモリ・バッファ５１６ａ〜ｂは、好ましくは、６４×１０ビットのデータを保存する。このような構成は、メモリ・バッファ５１４ａ〜ｂの各々に１つのビデオ・セグメントを保存させる。上述のように、各ビデオ・セグメントは５つのマクロ・ブロックを含み、各マクロ・ブロックは６ブロックの８×８ＤＣＴ係数を含む。同じく、このような構成は、メモリ・バッファ５１６ａ〜ｂが、８×８ブロックのＤＣＴ変換されたデータを各々保存することができる。メモリ・バッファ５１４ａ〜ｂおよび５１６ａ〜ｂは、後方および前方メモリ・バッファとして機能する、すなわち、１つのメモリ・バッファが満たされるたびに、入ってきたデータは他のメモリ・バッファに保存される。同様に、データが１つのメモリから読み出された時、他のメモリ・バッファが満たされる。例えば、メモリ・バッファ５１６ａ〜ｂに関して、ゼロ番目の８×８ブロックがメモリ・バッファ５１６ａに保存されている場合、８×８ブロック・データの１番目のブロックは、メモリ・バッファ５１６ｂに保存される。同様に、２番目の８×８ブロックはメモリ・バッファ５１６ａに保存され、３番目の８×８ブロックのデータはメモリ・バッファ５１６ｂに保存される。メモリ・バッファ５１６ａ〜ｂに保存された８×８ブロックは、レングス決定ビデオ・エンコーダ５１８に入力される。レングス決定ビデオ・エンコーダ５１８は、ＤＣＴブロック５１２によって変換された周波数領域ＤＣＴ係数情報を受信する。
【００２３】
他のタイプの圧縮技術とは対照的に、ＤＶビデオ符号化は、ビデオ圧縮比を約５：１に維持するのに役立てるために、少数の動的に調整されたパラメータが組み込まれている。これらのパラメータは、ＤＣＴ型（８×８または２×４×８）、クラス数（０、１、２、および、３）、量子化またはＱ係数（０〜１５）、および、量子化係数の限定された選択（２のべき乗、実施を簡略化）を含む。これらのパラメータは、（ＤＣＴの前の）空間領域情報および（ＤＣＴの後の）周波数領域情報の双方に関連する。ほとんど一定の圧縮比という要件は、いかなる実際の圧縮が行われる前に、適切な圧縮係数を決定することによって維持することができる。例えば、レングス決定ビデオ・エンコーダ５１８は、可変レングス符号化（ＶＬＣ）に必要なレングス情報を決定する。
【００２４】
可能なＱ係数（「Ｑ数」としても知られる）は１６個ある。レングス決定ビデオ・エンコーダ５１８は、１６個の可能なＱ係数のうちの５個に基いて、メモリ・バッファ５１６ａ〜ｂから受信されたデータについてのレングス情報を決定する。１６個の可能なＱ数の５個のみを選択する理由は、計算および圧縮の数を低減するためである。レングス決定ビデオ・エンコーダ５１８は、Ｑ数の各々に対してレングスを計算し、続いて、このレングスは、符号化テーブルから符号化されたレングスを調べるために使用される。好ましくは、使用される５個のＱ数は、さらに動的な値の範囲を提供するために、０、３、７、１１、１５である。
【００２５】
レングス決定の後、データは、スマート・エンコーダ５２０に入力される。スマート・エンコーダ５２０は、８×８の各ブロックに対するレングス決定に基いて、どのＱ係数が最良の圧縮をするかを決定する。選択されたＱ数は、メモリ・バッファ５１４ａ〜ｂに保存されたビデオ・セグメントへの適用のために、圧縮ブロック５２２に供給される。圧縮ブロック５２２は、可変レングス符号化のために、符号決定ビデオ・エンコーダも含むことができる。スマート・エンコーダ５２０は、符号パッキング・ブロック５２４に情報も提供することができる。このような情報は、例えば、レングス情報、選択されたＱ数、クラス数、ＤＣＴ型などを含む。レングス情報は、各マクロ・ブロックに保存されたデータのレングスについてのデータを含む。符号パッキング・ブロック５２４は、圧縮ブロック５２２から圧縮されたデータを、および、スマート・エンコーダ５２０からマクロ・ブロック・レングス情報を受信する。符号パッキング・ブロック５２４は、ビットストリーム内に効率的にビデオ・データを配置する。符号パッキング・ブロック５２４は、システム多重化器５２６に結合される。システム多重化器５２６は、メモリ５０６から音声データを、および、ヘッダ・ブロック５２８からヘッダ情報も受信する。音声情報は、音声ノード５０８、および、音声オーバーレイ、エディタなどの他の音声源からでもよい。ヘッダ情報は、システムの外部から入力することもできる。例えば、クロース・キャプション、Ｔｅｌｅ−ｔｅｘｔ、または、異なった言語の字幕などの外部情報は、外部入力５３０から受信することができる。
【００２６】
システム多重化器５２６は、適切な順序でリアルタイムのデータを再作成するために、タイミングの考慮に基いて外出データを配置する。システム多重化器５２６の出力は、ホスト・バッファ５３２に結合される。ホスト・バッファ５３２は、ホスト・バス５３４に結合される。ホスト・バッファ５３２は、データがホスト・バス５３４に供給される前に、これがバッファされることを確実にする。このような構成は、例えば、ホスト・バスがビジー状態である場合、データが失われないことを確実にする。符号パッキング・ブロック５２４は、（図示しない）メモリ・バッファ５１４ａ〜ｂと同じメモリ・バッファの組を介して、システム多重化器５２６に結合される。このようなメモリ・バッファは同じ構成を有する、すなわち、１つがデータを受信する間に他の１つが読み出される。これらのメモリ・バッファのサイズは、好ましくは、各々３８５バイトである。システム多重化器ユニット５３６は、適切な順序でリアルタイムのデータ・フローを再作成するために、タイミングの考慮に基いて、システム多重化器５２６に制御データを供給する。したがって、音声ノード５０８で受信されたデジタル音声データ、および、ビデオ・ノード５０２で受信されたデジタル・ビデオ・データは、システム５００によってＤＶフォーマット・データに変換され、ノード５３４に出力される。
【００２７】
図４は、ホスト・ノード６０２に受信されたＤＶデータを、デジタル音声ノード６０３およびデジタル・ビデオ・ノード６０４からそれぞれ出力するデジタルの音声データおよびビデオ・データに変換するためのシステム６００の簡略化ブロック・ダイヤグラムを示す。ホスト・ノード６０２からのＤＶデータは、ホスト・バッファ６０６によって受信される。ホスト・バッファ６０６はＤＶフォーマット・データをバッファし、このデータをデマルチプレクサ６０８に供給する。デマルチプレクサ６０８は、ホスト・バッファ６０６から受信されたＤＶデータを多重分離し、ヘッダ・データをヘッダ・ブロック６１０に、音声データをメモリ６１２に、および、ビデオ・データをアンパッキング・ブロック６１３に供給する。ヘッダ・データは、クロース・キャプション、Ｔｅｌｅ−ｔｅｘｔ、異なった言語の字幕、および、ＤＶフォーマット・データに埋め込まれた他のデータなどの情報とすることができる。メモリ６１２は、ＤＲＡＭ、ＥＤＯ　ＤＲＡＭ、ＳＤＲＡＭ、ＶＲＡＭ、ＳＲＡＭなどのいかなるタイプの記憶装置であってもよい。メモリ６１２は、システム６００内のデバイスのための記憶装置も提供することができる。さらに、システム６００のいくつかの要素は、それら自身のローカル・メモリを有することができる。
【００２８】
アンパッキング・ブロック６１３は、ビットストリーム・データを、各ビデオ・ブロックのためのビットストリームに変換し、これらのデータのアンパック・ブロックをビデオ・デコーダ６２４に供給するように構成され。ビデオ・デコーダ６２４は、１６ビットのデータを受信し、ビットストリームを個々のＤＣＴ係数値に復号する。ビデオ・デコーダ６２４は可変レングス・デコーダ６１４および逆量子化ブロック６１６を含む。可変レングス・デコーダ６１４は、可変レングス復号化技術に従ってＤＶビデオ・データを復号する。可変レングス・デコーダ６１４の出力は、埋め込まれた逆量子化係数に従って、ＤＶビットストリームを逆量子化する逆量子化ブロック６１６に結合される。逆量子化ブロック６１６は、逆量子化されたビットストリームに逆離散コサイン変換を行うように構成された逆ＤＣＴ（ＩＤＣＴ）ブロック６１８に結合される。ＩＤＣＴオペレーションは、データを周波数領域から空間領域に変換する。代案となる本発明の実施形態において、（図示しない）２つのメモリ・バッファは、逆量子化ブロック６１６とＩＤＣＴブロック６１８との間に結合することができる。そのような実施形態において、メモリ・バッファは、各々が１キロ×２０の保存容量を有するＲＡＭである。続いて、空間領域ビデオ・データは、メモリ６１２に保存される。ビデオ・シャフリング・ブロック６２０は、メモリ６１２から保存されているビデオ・データを検索し、必要である場合、ビデオ・データを適切な順序に配置する。ビデオ・シャフリング・ブロック６２０は、検索されたビデオ・データに補間およびフィルタリングなどのオペレーションを行う。例えば、ビデオ・シャフリング・ブロック６２０は、４：１：１フォーマットのビデオ・データを４：２：２フォーマットのビデオ・データに変換する７−タップ水平フィルタを行うことができる。同様に、３−タップ垂直フィルタは、ビデオ・データを４：２：０から４：２：２に変換するためのビデオ・シャフリング・ブロック６２０によって行うことができる。続いて、ビデオ・シャフリング・ブロック６２０の出力は、アナログ・フォーマットに変換することができる。この段階において、Ｐｈｉｌｌｉｐｓ　Ｅｌｅｃｔｒｏｎｉｃｓ（登録商標）ＳＡＡ７１２１などのチップは、変換オペレーションを行うために使用することができる。
【００２９】
同様に、音声シャフリング・ブロック６２２は、メモリ６１２から保存されている音声データを検索し、必要である場合、音声データを適切な順番に配置する。音声シャフリング・ブロック６２２は、検索された音声データに補間およびフィルタリングなどのオペレーションも行うことができる。続いて、音声シャフリング・ブロック６２２の出力は、アナログ・フォーマットに変換することができる。この段階において、Ｐｈｉｌｌｉｐｓ　Ｅｌｅｃｔｒｏｎｉｃｓ（登録商標）ＵＤＡ１３４４などのチップは、変換オペレーションを行うために使用することができる。
【００３０】
図３についてさらに検討すると、スマート・エンコーダ５２０は、各ビデオ・セグメントのブロック内のデータの特徴に従って、重み付け数を動的に調整するように構成することができる。それらの重み付け数（Ｗｎ）は、ＤＣＴ型（８×８または２×４×８）、ブロック数（０、１、２、および、３）、係数位置（Ｐ（Ｉ，ｊ））、および／または、量子化数（Ｑｎ）に応じて選択することができる。使用するＤＣＴのタイプは、フィールド相関の結果（すなわち、各ブロックに存在する高周波成分の量の決定）に従って決定することができ、ＤＣＴ変換が行われた後に、ブロック・クラスは、ＡＣ係数の範囲によって決定することができる。したがって、それらの２つの変数は、ＤＣＴ変換が終了した時点で既に知ることができる。ＤＶ規格において、係数位置は可変ではなく、そのため、スマート・エンコーダ５２０のために操作できる唯一の変数は、量子化数（Ｑｎ）である。
【００３１】
既に検討したように、量子化数は、０から１５の範囲を持つ指数であってもよい。通常、Ｑｎ＝０はより小さな重み付け係数（ゼロに近い）になり、Ｑｎ＝１５は１に近い重み付け係数になる。スマート・エンコーダ５２０は、重み付け係数が符号化ビットストリームのレングスにどのようにして影響を及ぼすかを知る前に、最良の選択を行うことはできない。２つの方法のうちの１つを使用することができる。第一に、ランレングスエンコーダ（ＲＬＥ）がそれまでに作成した各ビットストリームを記憶し、１つを選択すること。第二に、ランレングス符号化すること（ＲＬＥ）は２回実行することができ、第１の実行はレングスを作成し、第２の実行は符号化された実際のビットストリームを作成する。
【００３２】
すべての可能な結果を記憶する第１の方法は、ハードウエア実装において費用効果がよくないことが多い。例えば、予測できない長いビットストリームは保存される必要があり、これは、多重の４７．５キロビットのメモリを含むことを必要とする。したがって、この方法は、第２の方法を含む応用例より多くのメモリ容量を必要とする。第２の方法は、各ブロックに対する各可能なＱｎに対するレングスのみを保存するだけでよいので、特定の状況においてはより有益なものになる。後者の例として、わずか１．５キロビットのメモリが必要であり、ここで、１．５キロビットは、（３０総ブロック）×（５つのＱ数）×（各ブロックに対するレングスを保存するための１０ビット）の結果である。
【００３３】
第２の方法の２つのパス、すなわち、ランを区別するために、本明細書では最初のパスがレングス決定エンコーダ（ＬＤＣ：ｌｅｎｇｔｈ−ｄｅｃｉｓｉｏｎ ｃｏｄｅｒ）といい、本明細書では第２のパスが符号決定エンコーダ（ＣＤＣ：ｃｏｄｅ−ｄｅｃｉｓｉｏｎ ｃｏｄｅｒ）という。本発明による一実施形態において、図３の、ＬＤＣはレングス決定ビデオ・エンコーダ５１８によって行うことができ、ＣＤＣは圧縮ブロック５２２によって行うことができる。
【００３４】
２−パス方式は、ビデオ・パイプラインに関連するメモリ使用法の問題を起こすことがある。この問題は、図５に関してさらに検討する。図５は、最上部に、ＤＣＴモジュールおよびＬＤＣモジュールを含む第１段を示す。ＤＶ規格にしたがってクラス数を拾い上げるように構成することができるクラス数決定ブロック５５０が示されている。クラス数情報は、ＤＣＴブロック５１２によって開始されるか、または、代わりに、ビデオ・データとともにパスされることがある。メモリ・ブロック５５２ａ〜ｃに関して、ＶＳ（ｉ）は、この段がｉ番目のビデオ・セグメントに働きかけていることを示す。同様に、ｂｌｋ（ｎ）は、モジュールがｎ番目のブロックに働きかけていることを示す。「＋１」および「−１」は、それぞれ、その次とその前を示す。メモリ・ブロック５５２ａ〜ｃは、メモリ・ブロック５１４ａ〜ｂと同じになるように選択することができる。
【００３５】
一実施形態において、クロックが約２７メガヘルツである通常の実行モードにおいて、各ビデオ・セグメントを処理するために、約３，２５０サイクルの持続時間があってもよい。特定の瞬間に、ＤＣＴブロック５１２がブロック（ｎ）に働きかけ、ＬＤＣ（レングス決定ビデオ・エンコーダ５１８）がブロック（ｎ−１）に働きかけるｉ番目のビデオ・セグメントに、第１段が働きかけることが分かる。すべてのＤＣＴ係数は、メモリ・ブロック５５２ａ〜ｃ並びにメモリ・ブロック５１６ａ〜ｂに書き込むことができる。同時に、スマート・エンコーダ５２０は、ＬＤＣ５１８によって作成されたレングスを取扱い、どの組み合わせが最もよく適合するかを決定することができる。ＣＤＣ５５４は、スマート・エンコーダの出力に基いて、ビデオ・セグメント（ｉ−２）のためのＤＣＴ係数を符号化し、ビットストリームを、例えば、１６ビットの単語群にパックするために、符号パッキング・モジュール５２４に送る。符号パッキング・モジュール５２４は、その出力を、圧縮されたビデオ・データを出力するホスト・インターフェイス５５８に供給する。
【００３６】
上記に検討したように、ＬＤＣによるオペレーションの重複を低減するために、プリセットされた５つの量子化数（例えば、０、３、７、１１、１５）が選択される。ＬＤＣは、これらの５つのＱｎを使用して符号化ビットストリーム・レングスを計算するのみである。したがって、スマート・エンコーダは、これらの５つの数から、各ブロックに対してＱｎを拾うのみである。もちろん、異なった数の可能なＱｎも、本発明の実施において使用することができる。可能なＱｎの数は、例えば、費用の問題および利用可能な集積回路の面積に依存することがある。
【００３７】
スマート・エンコーダ５２０は、量子化数の最良の選択を決定するために、比較的大きな数のサイクル（例えば、約１，０００サイクル）を必要とすることがあり、ＣＤＣモジュールは、ＤＣＴ係数を介して走査するために、ＤＣＴ係数の数×Ｑｎ×ビット／位置（例えば、６４×５×６＝１，９２０）サイクルを下回らない数を必要とする。当業者は、スマート・エンコーダ５２０が、１つのビデオ・パイプライン段で、および、ＣＤＣが、例えば、図３に示す圧縮ブロック５２２を備えた他の段で実施することができることを理解するであろう。この構成は、これが、ＤＣＴ係数を保存するだけのために、他の大型メモリ・バッファ（上記の例に対して１９．２キロビット）の使用を必要とするため、さらに改良することができる。
【００３８】
一実施形態において、追加の大型バッファに対する必要性を排除するために、第２および第３のビデオ・セグメント段は、例えば、図６に示すように１つの段に組み合わせることができる。スマート・エンコーダ５２０およびＣＤＣ５５４のためのサイクルの総数が、既に３，０００サイクルに近づきつつあり、符号パッキングモジュール５２４が、圧縮されたデータを送り出すために、不確定（かつ可能に長い）待ちサイクルを扱う必要が未だにあるため、ＣＤＣモジュール５５４は、費用効果の大きい方法で加速することができる。
【００３９】
革新的な２−ＤＣＴ係数走査技術、および、ＥＯＢ位置を保存するための（比較的小さな）スクラッチ・メモリ５５６を設けることができる。２−ＤＣＴ係数走査方式は、性能を最大２倍にまで引き上げる。低いＤＣＴ係数値がゼロの時、この性能の２倍の増大が維持される。小さなスクラッチ・メモリ（例えば、上記の例のための３０×３３ビットＲＡＭメモリ）は、１つのビデオ・セグメントの各ブロックのＤＣＴ型（１ビット）およびクラス数（２ビット）を保存するために使用することができる。残りの３０ビットは、所定の５つのＱｎのケースに対する位置（各６ビット）である。これは、そのような情報が、ビデオ・セグメントの各ブロックに対して保存されることを可能にする（マクロ・ブロック当り６ブロック、および、ビデオ・セグメント当り５つのマクロ・ブロック）。したがって、この情報は、その後の段に対して利用可能とすることができる。ＣＤＣモジュール５５４は、それが、いかなるブロックのＥＯＢ位置に達した後、ＡＣ係数を走査することをスキップすることができる。
【００４０】
２−ＤＣＴ係数走査方式は、以下のように動作することができる。ＤＣＴ係数は、ＤＣＴ係数の現在のストリングのランレングスを決定するために、一時に２つ解析される。ランのＤＣＴ係数の数が増加するに従い、係数が維持される（ランレングス）。単一のＤＣＴ係数がある時点で検査される時、ランレングスは増加する、または、ランが停止したと示される（これは、続いて、新しいランを開始する）。同時に２つが取られた時、４つの可能性が存在する。これらの４つの可能性を以下の表１に示す。
【表１】
2004501531.tif 000003
【００４１】
したがって、可能な各組み合わせは、ランレングス・カウンタに適切な変更を行うこと、および／または、与えられたランレングスを保存することによって、容易に取扱うことができる。さらに、これが比較的単純な解決策であるため、回路の複雑さを大幅に増大させることなく、性能を引き上げることができる。
【００４２】
ＤＣＴ係数のさらに大きな数（例えば、４、８、１６など）が同時に解析できる一方、これは、解析されているＤＣＴ係数のブロック内に含まれるＤＣＴ係数のランを有する可能性のために、そのような回路の複雑さを増大する。しかし、２つのＤＣＴ係数のみが同時に取られる時、そのようなランは可能性が低い。
【００４３】
本明細書に説明するその後の２つの技術は、組み合わされることによって、著しく改善された性能を提供する。そのような方式を使用するため、ＣＤＣのために使用されるサイクルは、他の方法で必要とされる量のほとんど半分にまで効果的に低減することができる。他の恩恵は、効率、および、係数のための別個のメモリの欠如によるエリアの必要量の低減を含む。
【００４４】
図７は、図３のレングス決定ビデオ・エンコーダ５１８のさらに詳細な例示的実施形態であるパイプライン１７００を示す。初めの２つの段（０および１）はＤＣＴ係数情報内で読み取る一方、第２の段は、１６の可能なＱ数のうちの５つに基いて入力を量子化する。５つのＱ数のみを選択する理由は、計算および比較の数を１６５＝２１０４８５７６から５５＝３１２５に低減するためである。その結果、Ｑ数の各々に対してレングスを計算するための５つの個々のパスがある。第３の段は、量子化されたゼロでない数が到着する前に入ってくるゼロの数を検査する。第４の段において、符号化テーブルから値を調べることによって、符号化されたレングスが決定される。（ラン、アンプリチュード）が正常な範囲内に該当しなければ、第５の段は、新しいレングスを得るために、（ラン−１、０）および（０、アンプリチュード）の組み合わせのための他の２つのテーブルを提供する。続いて、すべての数は第６の段で合計され、Ｑ数決定モジュールに送られる。
【００４５】
さらに詳細には、図７のパイプライン１７００は、ブロック１７０２で８×８のビデオ・データのブロックを受信する。メモリ・ブロック１７０４は、６４×１０ビットのデータを保存する。メモリ・ブロック１７０４は、１０ビットの広さの接続を介してレジスタ１７０６に結合される。続いて、量子化器１７０８は、レジスタ１７０６から受信された各ＤＣＴ係数にＱ数を適用する。上記に説明したように、図３のスマート・エンコーダ５２０は、最適なＱ数を選択し、それらをレジスタ１７１０に供給することができる。レジスタ１７１０は、選択されたＱ数を量子化器１７０８に供給する量子化器テーブル１７１２に結合される。量子化器テーブル１７１２は、以下のテーブル２〜５のいずれかであってよい。テーブル２〜５は、ＤＶ規格に沿って値を提供する。例えば、適切なＱ数、クラス、エリアが供給されると、シフト・ビットの数に基いて、分割オペレーションを行うことができる。量子化器１７０８は、ＤＣＴ係数値をＱ数で分割する（すなわち、各々のケースに対して与えられたシフト・ビットの数でＤＣＴ係数値をシフトする）。量子化器１７０８は、量子化器１７０８によって出力された値がゼロであるかどうかを検査するように構成されたゼロ検査ブロック１７１４にその出力を供給する。ゼロ検査ブロック１７１４は、与えられた１０ビットＤＣＴ係数に対して、すべてのビットを検査する。ゼロ検査ブロック１７１４の出力は、ゼロ・カウンタ１７１８に出力を供給するレジスタ１７１６に供給される。ゼロ・カウンタ１７１８は、検出された各ゼロに対して漸増するように構成される。ゼロ・カウンタ１７１８は、カウント信号の終わりをレジスタ１７２０に供給する一方、ラン・カウントをレジスタ１７２２に供給する。ゼロでない値に製造した時、カウント信号の終わりが供給され、この点において、ラン・カウントは、レジスタ１７２２に供給される。
【表２】
2004501531.tif 000004
【表３】
2004501531.tif 000005
【表４】
2004501531.tif 000006
【表５】
2004501531.tif 000007
【００４６】
量子化器１７０８は、レジスタ１７２４および１７２６に除されたＤＣＴ係数値も供給する。レジスタの出力１７２０、１７２２、および、１７２６は、ＶＬＣレングス・テーブル１７２８に供給される。ＶＬＣレングス・テーブル１７２８は、例えば、以下の表６から値を調べることができる。ＶＬＣレングス・テーブル１７２８は、選択されたブロックのランとアンプリチュードに基いて、適切な値を調べ、そのレングス情報をレジスタ１７３０に、および、その空間ケースをレジスタ１７３２に供給する。空間ケースは、テーブル値が使用されているかどうかを示すことができる。
【表６】
2004501531.tif 000008
【００４７】
レジスタ１７２２は、同様に、出力をレジスタ１７３６に供給するラン−１ブロック１７３４にラン・カウント値を供給する。レジスタ１７３６の出力は、与えられたラン−１およびゼロのアンプリチュードに対して値を調べるように構成された（ラン−１、０）に対するＶＬＣレングス・テーブル・ブロック１７３８に供給する。ブロック１７３８のために使用されるテーブルは、例えば、以下の表７であってよい。
【表７】
2004501531.tif 000009
【００４８】
同時に、（アンプリチュードの値を含む）レジスタ１７２６の出力は、レジスタ１７４０に、続いて、（０、アンプリチュード）ブロック１７４２に対するＶＬＣレングス・テーブルに供給することができる。ＶＬＣブロック１７４２のために使用されるテーブルは、例えば、以下の表８であってもよい。（ラン−１、０）に対するＶＬＣレングス・テーブルのブロック１７３８と（０、アンプリチュード）に対するＶＬＣレングス・テーブル１７４２の双方の出力は、加算器１７４４に供給される。
【表８】
2004501531.tif 000010
【００４９】
段５において、レジスタ１７３２の出力（すなわち、空間ケース）はレジスタ１７４８に供給され、選択信号として多重化器１７４６にパスされる。多重化器１７４６は、レジスタ１７５０および１７５２をそれぞれ介して加算器１７４４およびレジスタ１７３０からの入力も受信する。したがって、多重化器１７５４は、ビッグ・テーブルが使用されたかどうか、または、（ラン−１、０）および（０、アンプリチュード）のテーブルが組み合わされたかどうかに基いて、正確なレングスを選択するように構成される。多重化器１７４６の出力は、フィードバック信号１７５６とともに加算器１７５４に供給される。加算器１７５４は、制御信号として図３のＤＣＴブロック５１２から直流信号を受信する多重化器１７５８に結合される。多重化器１７５８は、各ブロックに対する直流レングス値（すなわち、各ブロックの第１のＤＣＴ係数）である入力として１２の値を受信する。直流信号は、直流入力に対する正確なレングス値が、第１のＤＣＴ係数のために考慮されることを確認する。多重化器１７５８の出力は、レジスタ１７６０に供給され、続いて、与えられたＱ数のためにレングス値を計算するために、加算器１７５４にフィードバックされる。
【００５０】
レジスタ１７１０は、同じく、レジスタ１７６２にも結合され、レジスタ１７６２は、今度は、検査ＥＯＢブロック１７６４に結合され、ゼロ検査ブロック１７１４からゼロ検査結果を受信するためにレジスタ１７１６にも結合される。検査ＥＯＢブロック１７６４は、次のデータのブロックのためのパイプライン１７００を構成するために、適切な制御を提供するために、ＥＯＢ信号に対して検査するよう構成される。レジスタ１７６６は、検査ＥＯＢブロック１７６４の出力を受信し、それを残りの回路に渡す。
【００５１】
図８は、例えば、図３の圧縮ブロック５２２内に実装することができる符号決定モジュールのさらに詳細な実施形態を示す。パイプライン１８００は、選択されたＱ数に対して、レングスおよび符号単語の双方を決定する。パイプライン１８００は、同じく、個々の符号単語を１６ビット単語に切り捨て、１６ビット単語は、続いて、符合パッキング・ブロック５２４に送られる。パイプライン１８００の第１段のオペレーションは、パイプライン１７００の０番目および１番目の段と同じである。唯一の主な差は、パイプライン１８００が、１つのＤＣＴ係数よりも図３のメモリ・バッファ５１４ａ〜ｂから、一時に２つのＤＣＴ係数値を読み出すことである。これは、符号化プロセスの速度を潜在的に２倍に引き上げることができる。
【００５２】
さらに詳細には、データはレジスタ１８０２に供給され、続いて、量子化テーブル１８０６に結合される量子化器１８０４に供給される。量子化器１８０４は、ゼロの有無を検査するように構成されたゼロ検査ブロック１８０８に結合される。量子化器１８０４は、レジスタ１８１２にアンプリチュード値を供給するレジスタ１８１０にも結合される。ゼロ検査ブロックの出力はレジスタ１８１４に結合され、レジスタ１８１４は、今度は、ゼロ・カウンタ１８１６に結合される。ゼロ・カウンタ１８１６は、２つの出力を、それぞれラン・カウント・レジスタ１８１８およびカウントレジスタ１８２０の終わりに供給する。段３の後、レジスタ１８１２、１８１８、および、１８２０の出力は、ＶＬＣ符号テーブル１８２２に供給され、ＶＬＣ符号テーブル１８２２は、その符号およびレングス出力をレジスタ１８２４に、および、その空間ケースをレジスタ１８２６に供給する。同時に、ゼロ・カウンタ１８１６およびレジスタ１８１８の出力はラン−１ブロック１８２８に供給され、ラン−１ブロック１８２８は、今度は、レジスタ１８３０に結合される。（０、アンプリチュード）ブロック１８３２に対するＶＬＣ符号テーブルは、レジスタ１８３４からアンプリチュード値を受信し、レジスタ１８３４は、ブロック１８３２の出力をレジスタ１８１２から受信する。同様に、（ラン−１、０）に対するＶＬＣ符号テーブルのブロック１８３６は、レジスタ１８３０を介して、ラン−１ブロック１８２８の出力を受信する。再び、レジスタ１８２６からの空間ケース信号は、レングスおよび符号情報がビッグ・テーブルから得られていたかどうか、または、（ラン−１、０）および（０、アンプリチュード）のテーブルが両方の値を得るために組み合わされているかどうかを示す。
【００５３】
段５において、図８に示すように、ＶＬＣ符号テーブル１８３２および１８３６の出力は、レジスタ１８２４および１８２６の出力とともに、２つの多重化器１８３８および１８４０に供給される。多重化器１８３８は、符号情報を取り扱うように構成することができ、多重化器１８４０は、レングス情報を取り扱うように構成することができる。多重化器１８３８および１８４０の出力は、レジスタ１８４４，１８４６、および、１８４８を介して符号単語連鎖ユニット１８４２に供給される。最後に、符号単語連鎖ユニット１８４２の出力は、レジスタ１８５０、１８５２、および、１８５４を介して符号パッキング・ブロック５２４に供給される。
【００５４】
図９は、図８の符号単語連鎖ユニット１８４２の一部に対するさらに詳細なブロック・ダイヤグラムを示す。二重バレル・シフタ構成９００は、ノード９０１にその入力を受信する。２つのバレル・シフタ９０２および９０４は、ノード９０１から入力を受信する。シフタ９０２は、最新データの制御を続ける右整列した記憶デバイスとして使用することができる。シフタ９０４は、古いデータを保持する左整列した記憶デバイスとして使用することができる。バレル・シフタ９０２および９０４は、２つのレジスタ９０６および９０８に結合され、ノード９１０においてビットストリーム出力を供給する。
【００５５】
したがって、本発明の技術は、デジタルで符号化された画像の効率的な圧縮および圧縮解凍を可能にするために、集積回路内でいつでも実施することができる一方、最低限の集積回路面積を費やす。本発明の技術は、デジタル・ビデオ規格（「Ｂｌｕｅ　Ｂｏｏｋ」またはＤＶ−ＳＤ規格）を遵守する。これらの技術は、Ｉｎｔｅｒｎａｔｉｏｎａｌ　Ｓｔａｎｄａｒｄｓ　Ｏｒｇａｎｉｚａｔｉｏｎ（ＩＳＯ）Ｊｏｉｎｔ　Ｐｈｏｔｏｇｒａｐｈｉｃ　Ｅｘｐｅｒｔｓ　Ｇｒｏｕｐ（ＪＰＥＧ）規格、ＩＳＯ　ＤＩＳ　１０９１８−１などの他の規格を実施するシステムにおいても使用することができ、ＩＳＯ　ＤＩＳ　１０９１８−２に記載されるＪＰＥＧ遵守である。これらの規格は、その全体が参照として本明細書に含まれる。さらに、本発明の技術は、同じく全体が参照として本明細書に含まれるＷ．Ｂ．ＰｅｎｎｅｂａｋｅｒおよびＪ．Ｌ．Ｍｉｔｃｈｅｌｌによる「ＪＰＥＧ　Ｓｔｉｌｌ　Ｉｍａｇｅ　Ｄａｔａ　Ｃｏｍｐｒｅｓｓｉｏｎ　Ｓｔａｎｄａｒｄ」に概略されるものなどのＪＰＥＧ画像圧縮／圧縮解凍システムの枠組み内で理解することができる。
【００５６】
代わりに、本発明の技術は、コンピュータ・システムにおいて実装することができる。例えば、図５〜８のシステムは、周辺コンポーネント相互接続（ＰＣＩ）カードに実装することができる。ＰＣＩカードは、パソコンのＰＣＩバスに取り付けることができる。同様に、ＮＵＢＵＳ、ＩＳＡ、ＥＩＳＡ、Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ（ＵＳＢ）、１３９４バス、および、Ａｃｃｅｌｅｒａｔｅｄ　Ｇｒａｐｈｉｃｓ　Ｐｏｒｔ（ＡＧＰ）などの他のバス技術も、利用することができる。同様に、本発明の技術は、Ｉｎｔｅｌ（登録商標）ＣｏｒｐｏｒａｔｉｏｎのＭＭＸ（登録商標）技術、Ａｄｖａｎｃｅ　Ｍｉｃｒｏ　Ｄｅｖｉｃｅ，（登録商標）Ｉｎｃ．の３ＤＮｏｗ！（登録商標）技術、および、それらの同等物によって提供されるキャッシュ、新しいインストラクション・セット、および、信号インストラクション多重データ（ＳＩＭＤ）ツールなどの利用可能なルーチンおよび機能を利用することによって実装することができる。加えて、（添付資料Ｂに詳述されるものなどの）本発明の技術が、ＤＣＴ変換に関して検討されてはいても、ウエーブレット変換およびベクトル量子化などの他のタイプの変換も利用することができる。したがって、本発明の範囲の理解のために、特許請求の範囲の従属項を参照すべきである。
【００５７】
同様に、本発明の特定の好ましい実施形態について完全に説明したが、本発明による潜在性の予測を実施する他の多くの同等または代案となる方法は、当業者には明らかである。このようなビットストリームを採用する他の信号処理アプリケーションは、本発明からの恩恵を受ける。同様に、図面に示す実施は、本発明の方法を利用するために設計することができる多くの可能なアーキテクチャの１つに過ぎない。これらの同等物および代案、および、その他は、本発明の範囲内に含まれることを意図される。
【図面の簡単な説明】
【図１】
本発明によるシステム３００の簡略化ブロック・ダイヤグラムである。
【図２】
図１のブロック３０１のさらに詳細な図である。
【図３】
図１の符号化圧縮ブロック３０６のさらに詳細なブロック・ダイヤグラムである。
【図４】
ＤＶデータをデジタル・データに変換するためのシステムの簡略化ブロック・ダイヤグラムである。
【図５】
３つのビデオ・セグメント段階を必要とする符号化パイプラインのブロック・ダイヤグラムである。
【図６】
２つのビデオ・セグメント段階を必要とする符号化パイプラインのブロック・ダイヤグラムである。
【図７】
図３のレングス決定ビデオ・エンコーダ５１８のさらに詳細な例示的実施形態であるパイプライン１７００を示す図である。
【図８】
例えば図３の圧縮ブロック５２２内に実施することができる符号決定モジュールのさらに詳細な実施形態を示す図である。
【図９】
図８の符号ワード連鎖ユニット１８４２の部分についてのさらに詳細なブロック・ダイヤグラムである。
【図１】
2004501531.tif 000011
【図２】
2004501531.tif 000012
【図３】
2004501531.tif 000013
【図４】
2004501531.tif 000014
【図５】
2004501531.tif 000015
【図６】
2004501531.tif 000016
【図７】
2004501531.tif 000017
【図８】
2004501531.tif 000018
【図９】
2004501531.tif 000019
【国際公開パンフレット】
2004501531.tif 000020
2004501531.tif 000021
2004501531.tif 000022
2004501531.tif 000023
2004501531.tif 000024
2004501531.tif 000025
2004501531.tif 000026
2004501531.tif 000027
2004501531.tif 000028
2004501531.tif 000029
2004501531.tif 000030
2004501531.tif 000031
2004501531.tif 000032
2004501531.tif 000033
2004501531.tif 000034
2004501531.tif 000035
2004501531.tif 000036
2004501531.tif 000037
2004501531.tif 000038
2004501531.tif 000039
2004501531.tif 000040
2004501531.tif 000041
2004501531.tif 000042
2004501531.tif 000043
2004501531.tif 000044
2004501531.tif 000045
2004501531.tif 000046
2004501531.tif 000047
2004501531.tif 000048
2004501531.tif 000049
2004501531.tif 000050
2004501531.tif 000051
2004501531.tif 000052
2004501531.tif 000053
2004501531.tif 000054
2004501531.tif 000055
【国際調査報告】
2004501531.tif 000056