JPH0750831A - 離散余弦変換及びコーディング技術を使用したビデオデータの圧縮及び脱圧縮用システム - Google Patents

離散余弦変換及びコーディング技術を使用したビデオデータの圧縮及び脱圧縮用システム

Info

Publication number
JPH0750831A
JPH0750831A JP3127008A JP12700891A JPH0750831A JP H0750831 A JPH0750831 A JP H0750831A JP 3127008 A JP3127008 A JP 3127008A JP 12700891 A JP12700891 A JP 12700891A JP H0750831 A JPH0750831 A JP H0750831A
Authority
JP
Japan
Prior art keywords
data
cosine transform
discrete cosine
memory
latches
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP3127008A
Other languages
English (en)
Inventor
Alexandre Balkanski
バルカンスキ アレクサンドル
Steve C Purcell
シー. パーセル ステファン
James W Kirkpatrick Jr
ダブリュ. カークパトリック, ジュニア ジェームズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LSI Corp
Original Assignee
C Cube Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US07/494,242 external-priority patent/US5196946A/en
Application filed by C Cube Microsystems Inc filed Critical C Cube Microsystems Inc
Publication of JPH0750831A publication Critical patent/JPH0750831A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Discrete Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)
  • Color Television Systems (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 実時間速度でデータの圧縮・伸長を可能に
し、集積回路チップ形態で実現し小型化を図る。 【構成】 RGB信号フォーマットにおける画素からな
るマトリクスが、クロミナンス成分を選択的にサンプル
し、YUV表示へ変換される。次いで、パイプライン型
アーキテクチャで離散余弦変換(DCT)の処理が行な
われる。量子化ステップは、一組の予め設定したスレッ
シュホールド以下の振幅を有するDCT係数を除去す
る。ビデオ信号は、更に、量子化したマトリクスの要素
をジグザグ態様でコード化することによって圧縮され
る。この表示は、更にホフマンコードによって圧縮され
る。信号の脱圧縮は、実質的に圧縮ステップの逆であ
り、逆離散余弦変換(IDCT)によって実現する。R
GBからYUVへの変換、DCT、量子化、コーディン
グ及びそれらの脱圧縮の場合のものを実現するための回
路が集積回路チップの形態で実現する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータの圧縮及び脱圧縮
に関するものであって、更に詳細には、高品質ビデオ画
像の再生において使用するために格納することが必要な
データ量を減少させる技術に関するものである。
【0002】
【従来の技術】コンピュータに画像及びビデオを格納す
るために、画像及びビデオが採取され且つデジタル化さ
れねばならない。画像採取は、広範囲の人力装置、例え
ばスキャナ及びビデオデジタイザなどによって実施する
ことが可能である。
【0003】デジタル化画像は、大きな二次元アレイの
画像要素乃至は画素(ピクセル)である。該画像の品質
は、その解像度の関数であり、該解像度は水平方向及び
垂直方向の画素数で表わされる。例えば、標準的な64
0×480のディスプレイでは、水平方向において64
0個の画素を有しており且つ垂直方向において480個
の画素を有している。しかしながら、画像の解像度は通
常インチ当りのドット数、即ち「dpi」で表わされ
る。インチ当りのドット数は、文字通り、例えば、モニ
タ又はプリント媒体上での水平方向及び垂直方向の両方
において画像を形成するために使用することが可能なプ
リントの1インチ当りのドット数のことである。より多
くの画素をより小さなディスプレイ区域内にパック、即
ち詰込み、且つより多くの画素がスクリーン上に表示さ
れると、画像の詳細な部分が増加し、且つその画像を格
納するのに必要とされるメモリ量が増加する。
【0004】黒白画像は、黒又は白の何れか、又はオン
又はオフの何れかの画素からなるアレイである。各画素
は、単に1ビットの情報を必要とするに過ぎない。黒白
画素は、しばしば、2レベル画像として呼称される。グ
レイスケール画像は、各画素が通常8ビットの情報を使
用して表わされるものである。従って、表示することが
可能なグレイのシェード数、即ち灰色の度合は、各ビッ
トがオン又はオフの何れかである場合には、8ビットで
得ることが可能な順列数に等しく、即ち2、即ち25
6個のグレイのシェードと等しい。カラー画像において
は、表示可能なカラー数は、三原色、赤、緑及び青の各
々のシェード数とそれらの可能な全ての組合わせによっ
て決定される。カラー画像は画素当り24ビットでフル
カラーで表示される。このことは、三原色の各々に8ビ
ットが割当てられており、単一画素において2×2
×2、即ち1670万個のカラーを表示することが可
能であることを意味している。
【0005】換言すると、2レベル画像とも呼称される
黒白画像は、各々が1ビットの画素からなる二次元アレ
イである。連続的なトーンの画像は、グレイスケール
(中間調)又はカラー画像などがある。グレイスケール
画像は、各画素に8ビットの情報が割当てられており、
256個のグレイのシェード、即ち陰影の度合を表示す
ることが可能な画像である。カラー画像は、画素当り8
ビットとすることが可能であり、その場合256個のカ
ラーに対応し、又は画素当り24ビットとすることが可
能であり、その場合には1670万個のカラーに対応す
る。24ビットカラー画像は、しばしば、真のカラー画
像と呼ばれ、幾つかの座標系の一つにおいて表示するこ
とが可能であって、赤、緑及び青(RGB)成分系が最
も一般的である。コンピュータにおいて画像及びビデオ
を処理する場合の最大の問題は、恐ろしい程の量の格
納、通信及び検索条件である。
【0006】典型的な真のカラー(フルカラー)ビデオ
フレームは、30万個を超える画素から構成されており
(640×480ディスプレイ上での画素数)、各画素
は1670万個のカラー(24ビット)の一つによって
定義され、約100万バイトのメモリが必要とされる。
例えば、NTSCビデオ適用において運動を得るために
は、1分のビデオを格納するために毎秒30個のフレー
ム、即ち2ギガバイトのメモリが必要とされる。同様
に、300dpiでコンピュータ内にスキャンされるフ
ルカラーのスタンダードな静止フレーム画像(8.5×
11インチ)は、25メガバイトを超えるメモリを必要
とする。明らかに、これらの条件は、既存の格納能力範
囲を超えるものである。
【0007】更に、運動、即ち動画を表示するためにデ
ータを検索することが必要な速度は、既存の格納(記
憶)装置の実効転送効率をはるかに超えるものである。
毎秒約1メガバイトの実効ディスク転送速度を仮定した
場合、現在のハードディスクドライブから上述した如く
(3000万バイト/秒)運動即ち動画シーケンスに対
するフルカラービデオを検索することは、30倍ほど速
度が遅すぎ、CD−ROMからの場合には、実効転送速
度が毎秒150キロバイトと仮定した場合、約200倍
遅すぎる。
【0008】従って、高レベルの画像品質を維持したま
までデータセットの寸法を減少させることを目的とした
画像圧縮技術が開発された。
【0009】画像は高レベルの画素と画素との間の相関
を呈するので、画像の空間フーリエ変換に基づく数学的
技術は、画像を表示するのに必要とされるデータ量を著
しく減少することを可能とし、この様な減少は、目がそ
れ程感じない情報を除去することによって達成される。
例えば、人間の目はカラーの詳細部分よりも黒及び白の
詳細部分に対して著しくより感度が高く、従って画像品
質を劣化することなしに画像内の多くのカラー情報を除
去することが可能である。
【0010】画像圧縮には二つのものがあり、即ち損失
性のものと無損失性のものである。無損失性画像圧縮
は、画像データの正確な数学的回復乃至は再生を可能と
する。無損失性圧縮は、画像データを約半分だけ減少さ
せることが可能である。損失性圧縮は、全ての情報を保
存するものではないが、それは、人間の目によって検知
可能な画像品質に影響を与えることなしに、約30倍だ
けデータ量を減少させることが可能である。
【0011】高い圧縮率を得且つ尚且つ高画像品質を維
持するために、計算上込み入ったアルゴリズムが使用さ
れねばならない。更に、この様なアルゴリズムを多くの
適用場面において実時間で稼動することが必要とされ
る。実際に、多くの適用においては以下のことが必要と
される。 (1)動画シーケンスにおけるフレームを処理するため
に1秒の30分の1の実時間スレッシュホールド。 (2)作業の流れを妨害することなしにタスク間で経過
することが可能な1秒以下の人間対話型スレッシュホー
ルド。 1秒の30分の1において1メガバイトのファイルを圧
縮することが可能なプロセサは、25メガバイトのファ
イル(単一カラーの静止フレーム画像)を1秒未満で圧
縮することが可能なプロセサでもあるので、この様なプ
ロセサは広範囲の画像圧縮適用を実現可能なものとす
る。
【0012】この様なプロセサは、更に、高分解能印刷
においても適用可能である。印刷装置においてこの様な
プロセサを設けることは、非圧縮データを送給するため
に必要とされる帯域幅を必要とすることなしにコンピュ
ータからプリンタへ圧縮データを送給することを可能と
するので、その様にして送給された圧縮データは、プリ
ンタ内の経済的に妥当性のある量の局所的メモリ内に入
ることが可能であり、且つ妥当な量の時間内で該プロセ
サ内のデータを脱圧縮することによって印刷を行なうこ
とが可能である。
【0013】特にビデオディスプレイに使用するために
高品質画像を再生するために格納することが必要とされ
るデータ量を減少させるために多数の技術が提案されて
いる。メモリコストが高いために、最小のデータで与え
られた品質の画像を格納するための能力は重要であるば
かりではなく、ビデオディスプレイを使用するコンピュ
ータシステムの有用性を著しく向上させる。この分野に
おいてなされた開発の中で、米国特許第4,302,7
75号、第4,385,363号、第4,394,77
4号、第4,410,916号、第4,698,672
号、第4,704,628号に開示されているWen
Chen博士によってなされた開発がある。ビデオ画像
を再生する場合に使用するデータの格納のための一つの
技術は、データを周波数ドメインへ変換し且つ該周波数
ドメイン内の情報のみを格納することであり、それは、
逆変換が行なわれると、ビデオ画像を再生するための空
間変化信号の許容可能な品質の再生を可能とする。一
方、欧州特許出願第0283715号に記載されている
Herbert Lohscheller博士のものは
データ圧縮を与えるアルゴリズムを記載している。
【0014】上述したデータ送信/受信システムにおけ
る米国特許第4,704,628号は、フレーム内及び
フレーム間変換コーディングを使用している。フレーム
内及びフレーム間変換コーディングにおいて、出力とし
て実際の変換係数を与える代わりに、出力エンコードデ
ータはブロックとブロックとの差値(フレーム内)及び
フレームとフレームとの間の差値(フレーム間)であ
る。実際の係数とする代わりにコーディングの差とする
ことにより送信のために必要な帯域幅が減少されるが、
前のブロック及び前のフレームを格納するための大型の
メモリが圧縮及び脱圧縮処理期間中に必要とされる。こ
の様なシステムは高価であり且つ実施困難であって、特
に、表面積が主要な関心事である集積回路の形態での実
現は困難である。
【0015】米国特許第4,385,363号は、16
画素×16画素ブロックに対する離散余弦変換プロセサ
を記載している。この米国特許に記載される5段パイプ
ライン実施形態は、8画素×8画素ブロックでの動作に
対して容易に使用可能なものではない。更に、Chen
のアルゴリズムは1,4,5段において全体的な入れ替
えを必要とする。
【0016】
【発明が解決しようとする課題】従来技術による努力に
も拘らず、ビデオ画像を再生するために格納されねばな
らない情報はいまだに極めて巨大なものである。従っ
て、特に画像又はデータにおける変化を再生するために
複数個のビデオ画像を順次発生するためにコンピュータ
システムが使用される場合には、かなりのメモリが必要
とされる。更に、従来技術は、実時間でビデオ画像を処
理することが可能なプロセサを提供するものではない。
【0017】
【課題を解決するための手段】本発明は、従来のコンピ
ュータにおいて一般的に設けられている大量記憶媒体の
中に圧縮画像を格納することが可能であるようにビデオ
又は静止画像のデータ圧縮を可能とするデータ圧縮・脱
圧縮システムを提供している。本発明は、更に、
(1)実時間速度で動作するデータ圧縮・脱圧縮システ
ムを提供しており、即ち、1秒当り少なくとも30個の
フレームの真実のカラービデオを圧縮し、且つ1秒以内
でフルカラーのスタンダードな静止フレーム(300d
piにおいて、8.5インチ×11インチ)を圧縮する
ことが可能であり、(2)他のコンピュータ又はビデオ
装置との適合性を可能とするために外部のスタンダード
な装置に接続可能なシステムを提供し、(3)経済性及
び小型化を可能とするために集積回路チップの形態で実
現することが可能なデータ圧縮・脱圧縮システムを提供
している。
【0018】本発明によれば、離散余弦変換(disc
rete cosine transform)を使用
したデータ圧縮・脱圧縮(compression/d
ecompression)システムが提供され、それ
はビデオ画像を表わす空間ドメイン波形の周波数ドメイ
ン表示を発生する。離散余弦変換は、フィルタバンク内
の有限インパルス応答(FIR)デジタルフィルタによ
って実施することが可能である。この場合においては、
逆変換は、格納した周波数ドメイン信号をFIRデジタ
ルフィルタを介して通過させることによってビデオ画像
からなる波形を空間ドメイン内に再生することによって
得ることが可能である。従って、FIRデジタルフィル
タのハードウエア構成における簡単化の利点が実現され
る。本発明に基づくフィルタバンクは、直線的複雑性及
び局所的通信の利点を有している。本システムは、更
に、大きなデータ圧縮比を得るために変換ドメインデー
タのホフマンコーディングを与えている。本システム
は、集積回路として実現することが可能であり、且つ本
発明に基づくデータ圧縮・脱圧縮システム内に設けられ
る業界標準バスを使用してホストコンピュータと通信す
ることが可能である。従って、ハードウエアにおいて新
規な離散余弦変換アルゴリズム、量子化及びコーディン
グステップを結合させることにより、元の画像の高品質
なレプリカを爾後に再生するために最小量のデータが実
時間で格納することが必要とされるに過ぎない。
【0019】
【実施例】画像処理用のデータ圧縮は、(1)与えられ
た画像を表示するために必要とされるビット数において
効率的なコーディング技術を使用することにより、
(2)冗長性を除去することにより、且つ(3)ある品
質レベルの画像再生を達成するのに不必要と思われるデ
ータの部分を除去することによって達成することが可能
である。最初の二つのアプローチは、情報の損失を伴う
ものではないが、3番目のアプローチは「損失性」のも
のである。許容可能な情報損失量は、データの意図され
た適用に依存する。人間によって見るための画像データ
の再生の場合には、画像品質の劣化が認識可能なものと
なるまでかなりの量のデータを取除くことが可能であ
る。
【0020】本発明によれば、データ圧縮は、ホフマン
コーディングを使用することにより、且つ許容可能な画
像再生のためには不必要と思われるデータ部分を除去す
ることによって達成される。カラー及び画像強度におけ
る空間的変動に対する人間の視力の感度は認識科学にお
いてかなり研究されているので、これらの人間の視力特
性は人間が見る場合に意図されている画像のデータ圧縮
のために適用可能である。空間変化に基づいてデータを
減少させるために、周波数ドメインで表示される画像を
表示し且つ操作することがより便利である。
【0021】本発明は、周波数ドメインにおいて入力離
散空間信号のデータ圧縮を行なう。本発明方法は、離散
空間信号を離散余弦変換(Discrete Cosi
neTransform、即ち省略形でDCT)によっ
てそれらの周波数ドメイン表示へ変換する。離散空間信
号は逆離散余弦変換(IDCT)によって回復すること
が可能である。理論 離散空間信号は次式で表わされる信号サンプル値のシー
ケンスとして表示することが可能である。
【0022】 x[n] 但し、n=0,1,...,N−1 x[n]は、空間におけるN個の点におけるN個の信号
サンプル値によって表わされる信号を示している。この
空間信号のN点DCTは次式の如く定義される。
【0023】 であり、且つ であるから、x[n]のDCTを計算する方法が派生さ
れ且つ以下に説明する。
【0024】F1 離散空間信号x[n]を増加するn
方向において1/2サンプルだけシフトさせ且つn=N
の回りにミラー動作させて次式の如く信号x[n]を形
成する。 F3 上に示した式(1)及び(2)のために、x
[n]のDCT、即ちX に得られる。即ち、次式の如くである。
【0025】 従って、以下に示す如く、ステップF3における切捨て
にも拘らず、逆変換は、(3),(4),(5)の情報
を使用してうることが可能である。
【0026】 フィルタ構成 離散余弦変換(DCT)及びその逆変換(即ち、上の理
論セクションにおいてステップF1−F3及びI1−I
3で概略説明した)は、一組の有限インパルス応答(F
IR)デジタルフィルタによって実現することが可能で
ある。上述した理論セクションにおいて説明した如く、
DCT及び同様にIDCTは、それぞれ、ステップF2
及びI2においてDFT又は逆DFTを使用することに
よって得ることが可能である。
【0027】DFT及び同様にその逆変換は次式の形態
を有する連立方程式の系として見ることが可能であるか
ら、 その変換は、k(順方向DFT)又はn(逆DFT)の
各値に対して1個のフィルタを設けた複数個のフィルタ
からなるバンクによって実行されるものと考えることが
可能である。各フィルタのシステム関数(フィルタの単
位サンプル応答のz変換)は一般的に次式の如く書くこ
とが可能である。 (a) 順方向DFTにおけるk番目のフィルタに対す
るH(Z)は次式の如くに表わされる。 又、上式は等価的に次式の如く表わすことが可能であ
る。 上式(P1)は、特に、フィルタのゼロではないl=k
を除いて、π/nだけ半径方向に離隔されたZ面の単位
円上にk番目のフィルタの2N−1個のゼロが存在する
ことを示している。
【0028】(b) 同様に、n番目のフィルタにおけ
る逆DFTに対するシステム関数G(Z)は次式の如
く表わすことが可能である。 この場合にも、1≠nを除いて、半径方向にπ/Nだけ
離隔された単位円上に逆DFT変換におけるn番目のフ
ィルタのゼロが存在することを理解することが可能であ
る。上式P1及びP2の構造は、順方向及び逆方向の両
方のDFTが、適切なスケーリングを有する同一のフィ
ルタバンクで実現することが可能であることを示してい
る(P1及びP2は任意のk=nに対して同一のゼロを
有していることに注意すべきである)。
【0029】上式P1の表示は、FIRフィルタの「反
復」構成を示しており、即ちFIRフィルタは、各々が
j πk/n又はej πn/Nの異なった整数倍数
でのゼロを有する2N−1個の単一点フィルタをカスケ
ード接続することによって形成することが可能である。
例えば、k番目(順方向)又はn番目(逆方向)のフィ
ルタを次式の如くに書直すことが可能である。 尚、Rは1番目のゼロであり、 R=ej πlk/N (順方向DFT) =e−jπln/N (逆方向DFT) 更に、次式の如く表わすことが可能である。 P(z)=Pmk(z)(z−R) 尚、Pmk(z)は、l=k,mを除いて、π/Nだけ
互いに離隔した2N−2個のゼロを持ったFIRフィル
タを示している。ここで、P(z)は2N−2点フィ
ルタPmk(z)とRにおいてゼロを有する単一点フ
ィルタのカスケードとして表わされている。同一の態様
で、P(z)も、2N−3点FIRフィルタPmnk
(z)とR及びRにおいてゼロを有する2点フィル
タのカスケードへ分解することが可能である。Pmnk
(z)は、それ自身が、より低次のFIRフィルタをカ
スケード接続することによって実現することが可能であ
る。FIRフィルタを選択的にグループ化することによ
って図33に示したFIRフィルタツリー1500によ
って16点DFTを実現することが可能である。
【0030】図33に示したフィルタのグループ化は、
DFTを完成するのに必要な中間結果の数を最小とする
ために構成される。フィルタは、システム関数によって
特性付けられ、且つ、そのシステム関数を表わす多項式
の最初の項がNの羃である場合にN次フィルタと呼ばれ
る。図33に示した如く、1番目のフィルタレベルにお
ける二つのフィルタ1501及び1502は8次フィル
タであり、即ちそのシステム関数を表わす羃級数の最初
の項がzの倍数である。2番目のレベルのフィルタに
おける四つのフィルタ1503−1506は4次フィル
タであり、且つ3番目のレベルのフィルタにおける8個
のフィルタ1507−1514は2次フィルタである。
一般的に、N点DFTは、各々がN/2k−1の次数で
ある2個のフィルタを持ったk番目のレベルのフィル
タを有する(1+logN)レベルを使用して、且つ
各フィルタのインパルス応答が奇数又は偶数対称性を有
するようにこの方法によって実現することが可能であ
る。このグループ化方法の下で、演算操作数が最小とさ
れている。なぜならば、多数のフィルタ係数がゼロであ
り、且つ多少の乗算が極めて簡単なものだからである
(例えば、1,−1又は1を整数として、制限した数の
定数cos(πl/n)などが関与する)。これらの特
性は、回路構成を簡単化させている。更に、以下に示す
如く、フィルタの各レベルにおける計算は、前のレベル
の出力データのみが関与するに過ぎず、且つ各フィルタ
はツリー構成におけるノードとして取扱われ、特に各子
供ノードは中間親ノードの出力データのみに依存する。
従って、「親子」関係にないフィルタのデータ出力間に
おいては通信は必要とされることはない。この特性は、
集積回路で実現する場合の面積効率にとって基本的な
「局所的連結性」を得ることを可能とする。このフィル
タツリー1500は以下の特性を有している。
【0031】(1)全てのブランチ(分岐部)が同一数
のゼロを有している。 (2)全てのステージ(段)が同一数のゼロを有してい
る。 これらの特性は、局所的に接続されたフィルタ(「局所
的連結性(localconnectivity)」)
及び二つのデータが供給されねばならない(「ファンア
ウト」)の最大数のフィルタの利点を与えている。以下
に定義する如く局所的連結性の特性は、通信オーバーヘ
ッドを最小とする。ファンアウトが最小であって2であ
ることは、高い空間効率を必要とする集積回路において
小型の具現化を可能としている。
【0032】図33において、各矩形状のブロックは、
個のゼロを持ったフィルタを表わしており、lの値
はブロックの内部に示してある。DCT又はIDCTの
何れが計算されたかに依存して、Wは、ej πK/N
であるか又はe−jπn/Nである。DFTからDCT
を得るためには、ステップF3及びI3において、k≧
N(順方向)又はn≧Nに対してDFT結果はゼロに設
定される。従って、k<N(順方向)及びn<N(逆方
向)に対するDFT結果を発生するこのフィルタツリー
の部分のみが実行されることが必要であるに過ぎない。
必要とされるDFT結果の各々は、図33においてチェ
ックマークが付けられている。
【0033】順方向変換フィルタのシステム関数は図3
4に示してある。入力シーケンスにおいて及びFIRフ
ィルタのシステム関数において対称性があるので、注意
深く中間値をトラッキングし且つ同一値の二重の計算を
除去して、図35の流れ図が得られる。図35は、図3
3に示したフィルタツリー1500における最初の三つ
のステージ(段)の計算に従うことによりこれらのトラ
ッキングステップを示している。ステップF1におい
て、入力シーケンスX[n]は、16点DFTに対する
入力シーケンスx[n]を得るために、n=Nの回りに
ミラー動作されている。従って、x[n]はx[0],
x[1],x[2]...x[7],x[7],x
[6],...x[0]である。このシーケンスは、8
点DCTを計算するために使用される。図35に示した
如く、フィルタ1501はH(Z)=Z+1のシステ
ム関数を有しており、従って最初の8個の出力データa
[0]...a[7]の各々は入力シーケンスの二つの
サンプルの和であり、各サンプルは8単位の「遅れ」離
れており、例えばa[0]=x[0]+x[7]、a
[1]=x[1]+x[6]などである。これらの遅れ
は時間における遅れではなく、空間における距離であ
る。なぜならばx[n]は空間シーケンスだからであ
る。入力シーケンスx[n]の対称性のために、a
[0]...a[7]はほぼn=3 1/2に関して対
称的である。従って、このフィルタ1501を実現する
場合に、最初の四つの値a[0]...a[3]のみが
実際に計算される必要があり、a[4]...a[7]
はそれぞれa[3]...a[1]に対応する値を有し
ている。a[0]...a[3]の計算は、図36に示
したステージ2の最初の四つの値に与えられている。フ
ィルタ1501を実現するための動作を図35に示して
ある。
【0034】同一の手順がフィルタ1502についてと
られている。しかしながら、フィルタ1502は、奇数
対称性を有しており、即ちb[0]=−b[7]、b
[1]=−b[6]などである。以下に説明する実施例
を包含してほとんどの具体例に対して、中間値の代数符
号は、その値が爾後の動作に使用される場合に、後のス
テージ(段)において与えることが可能である。従っ
て、フィルタ1502においては、フィルタ1501に
おける如く、最初の四つの値b[0]...b[3]の
みが実際に計算される必要があるに過ぎない。なぜなら
ば、b[4]...b[7]は、爾後の操作において、
それぞれ、b[3]...b[0]の値の符号を逆にす
ることによって得ることが可能だからである。フィルタ
1502を実現するための動作を図35に示してある。
従って、図36に示したステージ2における下部の四つ
の値は、b[0]...b[3]の値の計算のために与
えられている。従って、前のステージにおいて計算した
値を機械的にトラッキングし、且つ各フィルタの対称性
を注意することによって、フィルタ1503−1514
を実現するために必要とされる動作は、フィルタ150
1及び1502に対して上述したのと同一の態様で決定
され、それから派生される結果は図36に示した流れ図
である。
【0035】最後に、フィルタ1507−1514にお
ける出力の対称性及びフィルタ1515−1530にお
ける対称性のために、必要とされる出力データX
[0]...X[7]は、g[0],h[0],i
[0]...o[0]に、2,−2cos(Π/8),
−2cos(Π/4),−2cos(3Π/8)...
−2cos(7Π/8)をそれぞれ乗算することによっ
て得られる。図37に示した逆変換流れ図は、図36に
示した順方向変換流れ図の代数的動作を逆にすることに
よって得られる。従って、図37におけるステージ2に
おいての中間結果s1−s7は、図36のステージ8に
おいてx(0)−x(7)を得るための代数的動作を逆
にすることによって与えられる。即ち、暫くの間1/2
の係数を無視して考察する。
【0036】s1=X(0)+X(4) s2=X(0)−X(4) s3=X(2)−X(6) s4=X(2)+X(6) s5=X(3)−X(5) s6=X(3)+X(5) s7=X(1)−X(7) s8=X(1)+X(7) 一般的に、1/2のようなスケール用の係数は、無視す
ることが可能である。なぜならば、その様なスケール係
数は出力をスケーリングすることによって考慮すること
が可能だからである。図37のステージ4における中間
結果p1−p7を派生させるために図36のステージ6
における中間結果s1−s7を逆にすることによって同
一のプロセスが繰返し行なわれる。中間結果z1−z
7,y1−y7が同様に派生され、且つ最終値x(0)
−x(7)が派生されるまで、付加的な中間値が派生さ
れる。このプロセスは以下の如く要約することが可能で
ある。
【0037】p1=s1; p2=s2; p3=2・
s3・cos(π/4)−s4;p4=s4; p5=
2・s5・cos(3π/8)−s6;p6=s6;
p7=2・s7・cos(π/8)−s8; p8=s
8;z1=p1+p4; z2=p2+p3; z3=
p2−p3;z4=p1−p4; z5=p7−p5;
z6=p8−p6;z7=p5+p7; z8=p6
+p8;y1=z1; y2=z2; y3=z3;
y4=z4;y5=2・z5・cos(π/4)−z
8;y6=2・Z6・cos(π/4)−z7; y7
=z7; y8=z8;x(0)=y1+y8; x
(1)=y2+y7;x(2)=y3+y6; x
(3)=y4+y5;x(4)=y4−y5; x
(5)=y3−y6;x(6)=y2−y7; x
(7)=y1−y8 計算アルゴリズムの可能なハードウエア構成の品質は、
二つの観点で判断することが可能であり、即ち(1)計
算の複雑性及び(2)通信条件である。本発明によれ
ば、処理能力速度を考慮に入れて、DCTを達成するの
に必要とされる乗算ステップの数によって判断した場合
のDCTの計算複雑性は、次数N(即ち、線形)であ
る。尚、NはDCTにおける点の数である。上述した如
く、該フィルタバンクのツリー構成は、最大のファンア
ウトが2となり、そのことは、全ての通信が「ローカル
(局所的)」のものとすることを可能とする(即ち、デ
ータは元のフィルタ、換言すると、最高次のフィルタか
ら流れ、且つ図33に関して前に説明した如くツリー構
成において親子の関係を有することのないフィルタ間で
の通信は必要ではない)。 本発明の実施例の概観 本発明の実施例は、JPEGスタンダードの「べースラ
イン」アルゴリズムを実行する。図1は、本発明のこの
実施例の機能的ブロック図を示している。この実施例
は、集積回路形態で実現されているが、このアーキテク
チャを実現するためにその他の技術を使用すること、例
えばディスクリートな部品によって構成すること、又は
コンピュータにおけるソフトウエアによって実現するこ
とも可能である。
【0038】データ圧縮期間中(即ち、与えられた画像
を表示するのに必要とされるデータの量を減少させるこ
と)におけるこの実施例の動作は、最初に、図1を参照
して機能的に説明する。図1は、概略ブロック図の形態
で、本発明に基づくデータ圧縮/脱圧縮システムを示し
ている。図1における実施例は、ビデオバスインターフ
ェースユニット102を介してビデオ入力データを発生
する外部装置とインターフェースしている。本発明は実
時間においてビデオ信号の圧縮及び脱圧縮(プレイバッ
ク)を与えるので、同期回路102−1及び113−2
が、外部ビデオ装置(不図示)から及びそれへの同期信
号をそれぞれ受信及び供給するために設けられている。
【0039】ビデオバスインターフェースユニット(V
BIU)102は、データI/Oライン102−2を介
して、2クロック周期毎に、24ビットの入力ビデオ信
号を受付ける。VBIU102は、更に、ユーザのオプ
ションによって、多くのビデオ装置によって使用される
「自然」水平方向のライン毎のビデオデータフォーマッ
トにおいて入力(圧縮)又は出力(脱圧縮)データの一
時的な格納を与える外部メモリバッファと共に使用する
ためのアドレスライン102−3上の13ビットのアド
レスを供給する。圧縮期間中においては、水平方向のラ
イン毎のビデオデータは、バス102−3上にVBIU
102によって発生されるアドレスに従ってI/Oバス
102−2を介してVBIUへ入力するために8×8画
素ブロックとして読込まれる。脱圧縮期間中において
は、この水平方向のライン毎のビデオデータは、水平方
向のライン毎の出力のために、バス102−2上のVB
IU102からの8×8画素ブロック出力を適切なアド
レス位置に書込むことによって外部ビデオ装置へ与えら
れる。再度、VBIU102内のアドレス発生器は、こ
の適切なアドレスを供給する。
【0040】VBIU102は、四つの外部的ビデオデ
ータフォーマット、即ちカラーフォーマット(RGB)
及び三つのルミナンスークロミナンス(YUV)フォー
マットを受付ける。YUVフォーマットは、指定YUV
4:4:4、YUV4:2:2及びYUV4:1:1で
ある。これらの比は、ルミナンス及び二つのクロミナン
ス成分における相対的なサンプリング周波数の比を表わ
している。RGBフォーマットにおいては、各画素は、
三原色赤、緑及び青の各々における画素の強度に対応す
る三つの強度によって表わされる。YUV表示において
は、三つの数字Y,U,Vは、それぞれ、画素のルミナ
ンスインデックス(Y成分)及び二つのクロミナンスイ
ンデックス(Y及びV成分)を表わしている。JPEG
スタンダードにおいては、各々が8×8マトリクスで表
現される64個の画素からなるグループが一度に圧縮又
は脱圧縮される。RGB及びYUV4:4:4フォーマ
ットにおける64個の画素は、物理的なディスプレイ上
において、水平方向及び垂直方向において8×8エリア
を占有する。人間の視覚能力は強度よりもカラー即ち色
に対して感度が低いので、ある適用例においては、YU
V4:2:2及びYUV4:1:1フオーマットのU及
びV成分を与え、U及びVタイプのデータがそれぞれ1
6画素×8画素及び32画素×8画素のエリアに亘って
水平方向に平均化された値として表現されるもので十分
である。空間ドメインにおける8×8マトリクスは、
「画素」マトリクスと呼ばれ、変換ドメインにおけるそ
れに対応する8×8マトリクスは「周波数」マトリクス
と呼ばれる。
【0041】RGB及びYUV4:4:4フォーマット
は入力として受付けられるが、それらは、直ぐに、YU
V4:2:2フォーマットでの表示へ還元される。RG
Bデータは、最初に、RGBデータに関しての一連の演
算処理によってYUV4:4:4へ変換される。U,V
成分における隣の画素を平均化することによって、VB
IU102において、YUV4:4:4データはYUV
4:2:2データへ変換される。この動作は、処理され
るべきデータの量を直ぐに3分の1に減少させる。その
結果、本発明のこの実施例における回路は、YUV4:
2:2及びYUV4:1:1フォーマットを処理するこ
とが必要とされるに過ぎない。前述した如く、JPEG
スタンダードは、「損失性」圧縮アルゴリズムを実行
し、RGB及びYUV4:4:4フォーマットからYU
V4:2:2フォーマットへの変換によって喪失される
ビデオ情報は、JPEGスタンダードの下では問題があ
るものとは考えられない。脱圧縮モードにおいては、圧
縮操作において廃棄されたサンプル値の代わりに平均値
を与えることによってYUV4:4:4フォーマットが
回復される。後述する如く、YUV4:4:4データに
関する一連の演算処理によって、YUV4:4:4フォ
ーマットからRGBフォーマットが回復される。
【0042】VBIUユニット102における処理の結
果、クロック周期当り16ビット(二つの値)で、ビデ
オデータがブロックメモリユニット103へ供給され
る。ブロックメモリユニット103は、同一の画素タイ
プ(Y,U又はV)の8×8ブロック(マトリクス)内
に格納されるべき16ビットビデオデータの入力ストリ
ームに対するバッファである。本発明において実行され
る離散余弦変換(DCT)アルゴリズムは二次元変換で
あり、ビデオ信号データがDCT/IDCTプロセサユ
ニット106を二度通過することを必要とし、即ち各空
間方向(水平方向及び垂直方向)に対して一度ずつ全部
で二度通過することを必要とするので、このバッファス
テップは重要である。ビデオ入力データが一度DCT/
IDCTプロセサユニット106を介して通過した後
に、中間データが得られる。その結果、DCT/IDC
Tプロセサユニット106は、ビデオ入力データと、第
1回目の通過のDCT操作の後の中間結果との間でマル
チプレクス動作、即ち多重化動作を行なわねばならな
い。DCTユニット106内において必要とされるレジ
スタ数を最小とし且つDCTユニット106内の制御信
号を簡単化するために、画素マトリクスの要素が処理さ
れるシーケンスが重要である。
【0043】DCT/IDCTプロセサユニット106
に対しての、入力データ及び二次元DCTの最初の通過
の後の中間データのシーケンス動作は、DCT入力選択
ユニット104によって実施される。DCT入力選択ユ
ニット104は、交互に、所定の順番で、ブロックメモ
リユニット103からの二つの8ビットワードか、又は
DCT行格納ユニット105からの二つの16ビットワ
ードの何れかを選択する。DCT行格納ユニット105
は、二次元DCTを介してのデータの最初の通過の後の
中間結果を有している。DCT入力選択ユニット104
によって選択されたデータは、DCT/IDCTプロセ
サユニット106によって処理される。その結果は、二
次元DCTを完了したデータの場合には、量子化ユニッ
ト108へ送られるか、又は、最初の通過のDCTデー
タの場合には、二次元DCTの2番目の通過のためにD
CT行格納ユニット105を介してリサイクルされる。
このDCT行格納ユニット105か又は量子化ユニット
108の何れかへ供給するデータの分離は、DCT行/
列分離器ユニット107において達成される。DCT操
作の結果は、クロック周期毎に二つの16ビットデータ
を発生する。DCT行/列分離器107における二重バ
ッファ機能構成は、連続的なストリームを供給する。即
ち、16ビット出力データの各クロックサイクル毎の1
6ビットがDCT行/列分離器ユニット107から量子
化ユニット108内に供給される。
【0044】二次元DCTからの出力データは、元の8
×8画素マトリクスの空間周波数係数に対応し、「周波
数」マトリクスと呼ばれる8×8マトリクスとして組織
されている。各画素マトリクスは、二次元DCT処理の
結果として、変換(周波数)ドメインにおいて対応する
周波数マトリクスを有している。周波数マトリクスにお
けるその位置に従って、各要素は、YUV量子化テーブ
ル108−1からとられる対応する量子化定数によって
量子化器108内において乗算される。量子化定数は、
国際的なスタンダード、即ちJPEGから得られ、又
は、現在の一組のデータに関して付与されるべきホスト
コンピュータによって供給されるカスタム化された画像
処理機能から得られる。量子化ユニット108は、行/
列分離器ユニット107からの16ビット入力をYUV
量子化テーブル108−1からの16ビットの量子化定
数と乗算するための16ビット×16ビット乗算器を有
している。その結果は、32ビットの値であり、ビット
31が最大桁ビットであり且つビット0が最小桁ビット
である。この実施例においては、妥当なダイナミックレ
ンジを与え且つより簡単なハードウエア構成とするため
に有意性のあるビットの数を最小とする二重の目的を充
足するために、8個のビットのみが保存される。従っ
て、ビット31乃至16によって表示される数を丸める
ためにビット15の位置に1が加算される。32ビット
の乗算結果のうち8個の最大桁ビット、及び16個の最
小桁ビットは廃棄される。正味の結果は、8ビット値で
あり、それは後述するジグザグユニット109へ送給さ
れる。この量子化ステップは周波数マトリクスの高周波
数成分をゼロにセットする傾向があるので、量子化ユニ
ット108はローパスデジタルフィルタとして作用す
る。DCTアルゴリズムのために、元の画像におけるル
ミナンス(Y)又はクロミナンス(U,V)の低周波数
係数は、それぞれの周波数マトリクスの下位の要素で表
わされる。即ち、要素Aijは、i>m及びj>nの場
合に、水平方向及び垂直方向の両方において、要素A
mnよりも元の画像のより高い周波数係数を表わしてい
る。
【0045】従って、ジグザグユニット109は、各ク
ロック周期毎に8ビットのデータ項目(datum)を
受信する。各データ項目は、8×8周波数マトリクスの
量子化した要素である。データが入ってくると、該デー
タは、各位置が周波数マトリクスの要素を表わす64位
置メモリアレイの位置内に個別的に書込まれる。メモリ
アレイが満杯になると、それは、00位置から開始して
ジグザグの態様で8×8マトリクスの読取りに対応する
態様で読出される(即ち、A00,A10’01’
02’11’20’30’21’12’
03’などの順番である)。量子化ステップはより高い
周波数係数をゼロとする傾向があるので、この8×8周
波数マトリクスの読取り方法は、ゼロとした周波数係数
からなる長いランを発生させる蓋然性が高く、個々の値
のゼロではなくラン長としてゼロからなる長いランを表
示することによってデータシーケンスを圧縮する便利な
方法を与えている。このラン長は、ゼロパッカー/アン
パッカーユニット110においてエンコードされる。
【0046】現在の64個の8ビット値の蓄積を与える
と共にラン長フォーマットにおける前の64個の8ビッ
ト値の同時的な読出しを行なうジグザグユニット109
における二重バッファ機能のために、8ビットデータの
連続的なストリームがゼロパッカー/アンパッカーユニ
ット110へ与えられる。このデータストリームは、D
C−AC−RL−AC−RL...のパターンのフォー
マットでパック、即ち詰込まれる。尚、DC−AC−R
L−AC−RL...は、順番に、DC係数、AC係
数、ゼロのラン、AC係数、ゼロのランなどを表示して
いる。マトリクスAの要素A00はDC係数であり、そ
の他の全てのエントリはAC係数と呼称される。次い
で、このデータストリームは、圧縮データ表示へのエン
コードを行なう次のステップのために、先入れ先出し
(FIFO)メモリアレイ114内に格納される。この
実施例における圧縮データ表示はホフマンコードであ
る。このメモリアレイ114は、一時的な格納を与える
ものであって、その内容は、ホストインターフェース1
13を介してホストコンピュータの支持の下にコーダ/
デコーダユニット111によって検索される。エンコー
ドされるべきデータの格納に加えて、FIFOメモリ1
14は、エンコードを行なうための変換ルックアップテ
ーブルを有している。FIFOメモリ114内の一時的
な格納が必要であるのは、機能ユニット102乃至11
0による入力ビデオ信号(それは、VBIU102へ継
続的に供給され且つそれは実時間で処理されねばならな
い)に関しての前の信号処理ステップと異なり、このコ
ーディングステップは、ホストバスインターフェース1
13を介して本発明の実施例と非同期的に相互作用を行
なう外部ホストコンピュータの制御の下で実行される。
【0047】FIFOメモリ114の書込み及び読出し
は、FIFO/ホフマンコードバス制御器ユニット11
2によって制御される。FIFOメモリ114内へのゼ
ロパック型ビデオデータの読取り及び書込みの制御に加
えて、FIFO/ホフマンコードバス制御器112は、
圧縮期間中はホフマンコード変換テーブルのために且つ
脱圧縮期間中はホフマンデコードテーブルのためにFI
FOメモリ114をアクセスする。ホフマンコードを使
用することは、データ圧縮のJPEGスタンダードに適
合させるためである。JPEGスタンダードを使用する
その他のデータ圧縮装置との適合性を与えることにより
その他のコーディング方法を使用することも可能であ
る。
【0048】FIFO/ホフマンコードバス制御器ユニ
ット112は、ゼロパッカー/アンパッカーユニット1
10からの及びコーダ/デコーダユニット111からの
FIFOメモリ114へのアクセス要求を処理する。デ
ータは、内部バス116を介して、FIFOメモリ11
4内へ転送され且つそれから外部へ転送される。圧縮期
間中にVBIU102を介して入ってくるビデオ信号の
同期的な連続ストリーム又は脱圧縮期間中における対応
する出力同期ストリームを実時間で処理する必要性のた
めに、ゼロパッカー/アンパッカーユニット110は、
常に、コーダ/デコーダユニット111及びホストコン
ピュータからの要求を上回るFIFOメモリ114に対
して常に最高の優先度が与えられている。
【0049】FIFO/ホフマンコードバス制御器ユニ
ット112がFIFOメモリ114からゼロパック型デ
ータを読取ることを要求することの他に、コーダ/デコ
ーダユニット111は、FIFOメモリ114から検索
したホフマンコードテーブルをルックアップすることに
よってゼロパック型データをホフマンコードへ変換す
る。次いで、このホフマンコード化データは、大量記憶
媒体内に格納するために、ホストインターフェース11
3を介してホストコンピュータ(不図示)へ送給され
る。ホストコンピュータは、ホストバス115(図1
2)を介して、量子化器108及びDCTブロックメモ
リ103などを包含するシステムの種々のモジュールと
直接的に通信することが可能である。ホストバス115
は、後にホストバスインターフェース113に関連して
説明するバススタンダードのサブセットを実現する。こ
のホストバス115は、内部バス116と混乱すべきで
はない。内部バス116は、FIFO/ホフマンコード
バス制御器ユニット112の制御下にある。内部バス1
16は、FIFOメモリ114内に格納されているデー
タへのアクセスを与える。
【0050】本実施例のアーキテクチャは、コードに
「パイプライン」型としたプロセサとして説明すること
が可能なタイプのものである。この様なプロセサの顕著
な特徴の一つは、任意の与えられた時間における機能ブ
ロックが、固定した「待ち時間(latency)」関
係、即ち時間遅れによって別の機能ブロックによって処
理されている一組のデータに関係した一組のデータを処
理することである。機能ブロック間に同期を与えるため
に、一組のコンフィギュレーション(形態)レジスタが
与えられている。機能ブロック間において適切な待ち時
間を維持することの他に、これらのコンフィギュレーシ
ョンレジスタはその他のコンフィギュレーション情報を
有している。ビデオ信号の脱圧縮は、圧縮の場合の態様
を実質的に逆にした態様で行なわれる。ビデオバス制御器ユニットの構造及び動作 ビデオバス制御器ユニット102は、例えばデジタル化
出力を有するビデオカメラなどのようなビデオ入力装置
への又はビデオディスプレイへの外部インターフェース
を与える。ビデオバス制御器ユニット102は、更に、
RGB又はYUV4:4:4フォーマットから圧縮期間
中における本発明の実施例での処理に適したYUV4:
2:2フォーマットへの変換を与えると共に、脱圧縮期
間中における出力が要求される場合にRGB又はYUV
4:4:4フォーマットを与える。従って、本発明のこ
の実施例は、多様なビデオ装置へのインターフェースを
可能としている。
【0051】図2は、上述した実施例のビデオバス制御
器ユニット(VBIU)102のブロック図である。前
述した如く、RGB又はYUV4:4:4ビデオ信号
は、デジタル化画像の8画素×8画素エリアを表わす6
4個の24ビット値として本実施例内に入ってくる。各
画素は、三つの成分で表わされ、各成分の値は8ビット
で表現される。RGBフォーマットにおいては、各成分
は三原色のうちの一つの強度を表わす。YUVフォーマ
ットにおいては、Y成分はルミナンスのインデックスを
表わし、且つU及びV成分は二つのクロミナンスインデ
ックスを表わす。選択されたモードに依存して、RGB
又はYUV4:4;4フォーマットにおける入力ビデオ
信号は、VBIU102によって64個の16ビット値
へ減少され、4:4:4YUVビデオデータ及びRGB
データは4:2:2YUVデータへ変換される。入力さ
れる4:2:2及び4:1:1YUVデータは減少され
ない。RGBデータを4:4:4YUVデータへ減少さ
せるプロセスは以下の式に従って行なわれる。
【0052】 Y=0.3253R+0.5794G+0.0954B (ルミナン ス) E1 U=(0.8378B−Y)/2.03 (クロミナンス) E2 V=(1.088R−Y)/1.14 (クロミナンス) E3 4:4:4YUVから4:2:2YUVフォーマットへ
の変換を実行するために、U及びVタイプのデータの相
継ぐ値が平均化され、従って実効的に、U及びVデータ
は、Yデータの周波数の半分においてサンプルされる。
【0053】圧縮モード期間中においては、各画素を表
わす24ビットの外部ビデオデータは、データI/Oバ
ス102−2を介してVBIU102内に入力される。
この24ビットビデオデータは、レジスタ201内にラ
ッチされ、そのラッチされたビデオデータは、マルチプ
レクサ203によって送信されるか、又はRGB/YU
V変換器回路202によってサンプルされる。圧縮モー
ド期間中においては、RGB/YUV変換器回路202
は、24ビットのRGBデータを24ビットのYUV
4:4:4データへ変換する。RGB/YUV変換器回
路202の出力データは、マルチプレクサ203へ送給
される。選択したデータフォーマットに依存して、マル
チプレクサ203は、生の入力データ(4:4:4、
4:2:2又は4:1:1のYUVフォーマットの何れ
か)か、又はRGB/YUV変換器回路202からのY
UV4:4:4フォーマットデータ(RGBフォーマッ
トから変換されたもの)の何れかを選択する。
【0054】圧縮モードの下での入力画素データフォー
マットは次の如くである。RGB及びYUV4:4:4
フォーマットにおいては、画素データは、シーケンス
(R,G,B) (R,G,B)...又は (Y,
U,V) (Y,U,V)...、即ちYUVフォーマ
ットにおいてはY,U又はV及びRGBフォーマットに
おいてはR,G又はBのデータタイプの各々において8
ビットの形態で、二つのクロック周期毎に24ビットの
割合でデータI/Oバス102−2に書込まれる。4:
2:2YUVフォーマットにおいては、画素データは、
シーケンス(Y,U)(Y,V)(Y,U)...の形
態で二つのクロック周期毎に16ビットの割合で書込ま
れる。又、4:1:1YUVフォーマットにおいては、
データは、シーケンス(Y,LSBのU)(Y,MSB
のU)(Y,LSBのV)(Y,MSBのV)(Y,L
SBのU)...の形態で二つのクロック周期毎に12
ビットの割合で書込まれる。尚、MSB及びLSBは、
それぞれ、「最大桁ビット」及び「最小桁ビット」のこ
とである。
【0055】マルチプレクサ203からの出力データは
YUV/DCT変換器ユニット204へ送給され、該変
換器ユニットは、24ビット入力ビデオデータをブロッ
クメモリユニット103用の16ビットフォーマットへ
変換させる。この16ビットブロック格納フォーマット
は、各16ビットデータ(データ項目)が(Y,Y),
(U,U),(V,V)のうちの一つであること、即ち
同一のタイプの二つの8ビットデータが1個の16ビッ
トデータ(データ項目)にパック、即ち詰込まれている
ことを必要とする。
【0056】従って、YUV4:4:4フォーマットデ
ータに対する(Y,U,V)...(Y,U,V)フォ
ーマットは、24ビットのデータシーケンスY0U0V
0,Y1U1V1,Y2U2V2,Y3U3V
3,...Y7U7V7から、16ビットデータシーケ
ンスY0Y1,U01U23,Y2Y3,V01V2
3,Y4Y5などへ再パックされ、尚UmnはU及び
8ビットデータの8ビット平均を示している。YU
V4:2:2表示の下でのU,Vマトリクスの各要素は
平均値であるので、二つの隣り合う画素の水平方向にお
いては、64値8×8マトリクスは、ビデオ画像におけ
る16画素×8画素のエリアから組立てられる。上述し
た如く、YUV4:2:2表示は、YUV4:4:4、
RGB又はYUV4:2:2フォーマットの何れかの入
力データから発生することが可能である。YUV4:
2:2フォーマット用の(Y,U),(Y,V),
(Y,U),(Y,V)...フォーマットは、16ビ
ットデータシーケンスY0U0,Y1V0,Y2U2,
Y3V2,...Y7V6からY0Y1,U0U2,Y
2Y3,V0V2などへ再パックされる。
【0057】同様に、YUV4:1:1フォーマット用
の(Y,LSBのU),(Y,MSBのU),(Y,L
SBのV),(Y,MSBのV)フォーマットは、12
ビットデータシーケンスY0U0L,Y1U0H,Y2
V0L,Y3V0H,Y4U4Lなどから16ビットデ
ータシーケンスY0Y1,Y2Y3,Y4Y5,U0U
4,Y6Y7,V0V4(画像の偶数ライン内の画素に
対して)又は12ビットデータシーケンスY0V0L,
Y1V0H,Y2U0L,Y3U0H,Y4V4
L...から16ビットデータシーケンスY0Y1,Y
2Y3,Y4Y5,V0V4Y6Y7,U0U4(画像
の奇数ライン内の画素に対して)へ再パックされる。
【0058】脱圧縮期間中において、ブロックメモリユ
ニット103からのデータは16ビットワードとしてV
BIU102によって読取られる。ブロックメモリフォ
ーマットデータは、必要に応じて24ビットのRGB、
YUV4:4:4又は16ビットの4:2:2又は12
ビットの4:1:1フォーマットへ変換される。16ビ
ット表示から種々のYUV表示への変換は、DCT/Y
UV変換器205によって行なわれる。RGBデータが
特定された出力フォーマットである場合には、DCT/
YUV変換器205が、RGBフォーマットへの変換の
ためにRGB/YUV変換器202へ24ビットのYU
V4:4:4フォーマットデータを出力する。RGB/
YUV変換器202の出力データか又はDCT/YUV
変換器205の出力データの何れかが、データI/Oバ
ス102−2上へ出力するためにマルチプレクサ208
によって選択される。
【0059】同期発生器102−1内のクロック回路
が、外部ディスプレイによって要求される場合に、ディ
スプレイタイミング信号Hsync及びVsync(水
平同期信号及び垂直同期信号)を発生する。外部メモリ
アドレス発生器207が、必要に応じて、外部ディスプ
レイのバッファメモリ内にビデオデータをローディング
するために、アドレスバス102−3上にアドレスを供
給する。この外部メモリは、圧縮期間中における人力の
ために水平ライン毎の「自然」ビデオデータから8×8
ブロックの画素データへの変換を与えると共に、外部メ
モリアドレス発生器207によって与えられるアドレス
を使用して、脱圧縮期間中において、8×8ブロックの
出力画素データから水平ライン毎の出力画素データへの
変換を与える。従って、外部メモリアドレス発生器20
7は、多様なビデオ装置との適合性を与えている。
【0060】ブロックメモリユニットの構成及び動作 ブロックメモリユニット(BMU)103は、Y,U,
Vのインターリーブした画素データのストリームを、同
一のタイプ(Y,U又はV)の画素データの8×8ブロ
ックへ組立てる。更に、BMU103は、データ圧縮期
間中において、ビデオバスインターフェースユニット
(VBIU)102とDCT入力選択ユニット104と
の間のデータバッファとして作用し、且つ脱圧縮動作期
間中においては、VBIU102とDCT行/列分離器
ユニット107との間のデータバッファとして作用す
る。
【0061】データ圧縮期間中において、VBIU10
2は、4:2:2フォーマットが必要とされる場合各ク
ロック周期毎にYUYV−−−−YUYV−−−一のシ
ーケンスで画素を出力し(各Y,U,Vは2個の画素の
情報を有する1個の16ビットデータである)、又は
4:1:1フォーマットが使用される場合は、YXYX
−−−−YUYV−−−−のシーケンスで出力される。
尚、「−」はVBIU102から出力データがないこと
を示しており、且つ「X」は出力データが「don’t
−care」タイプのものであることを表わしている。
DCT入力選択ユニット104はブロック内の全ての6
4個の画素(8×8マトリクス)がその2相動作期間中
に与えられることを必要とするので、BMU103は、
DCT入力選択ユニット104に対して出力データが与
えられる前に、VBIU102からの同一の種類の64
個の画素からなる完全なマトリクスを蓄積することが可
能でなければならない。
【0062】データ脱圧縮期間中において、逆の動作が
行なわれる。DCT行/列分離器107は、同一の種類
の64個の画素を直列的にBMU103へ出力し、該画
素は、Yタイプの画素の四つの完全なマトリクスとU及
びVの各々のタイプの画素の一つの完全なマトリクスが
蓄積されるまで、BMU103内に一時的に格納され、
従ってVBIU102は、外部ディスプレイ装置へ出力
するために必要とされるビデオデータを再生することが
可能である。
【0063】図3は、BMU103のブロック図を示し
ている。BMU103は、二つの部分、即ち制御回路3
00a及びメモリコア300bから構成されている。メ
モリコア300bは、三つの領域、即ちY_領域311
と、U_領域312と、V_領域313とに分割されて
いる。各領域は、一つの特定のタイプの画素データを格
納し、且つ幾つかの64値のブロックを有することが可
能である。本実施例においては、Y_領域311は、5
個のブロックの容量を有しており、且つY画素のみを収
納している。U_領域312は一つを超えるブロックの
容量を有しているが、2個未満のブロックであって、且
つUタイプの画素のみを収納している。同様に、V_領
域は1個を超えるが2個未満のブロックの容量を有して
おり、且つVタイプの画素のみを収納している。この構
成は、4:1:1フォーマット脱圧縮に対して最適化さ
れており、VBIU102への連続的な出力データスト
リームを可能としながらメモリ書込みを可能とするため
にY,U又はVタイプのデータにおけるエキストラな格
納部を有している。データは各クロック周期に対して二
つの値の割合でブロックメモリユニット103内に転送
されたり又はそれから外部へ転送されるので、メモリ構
成は、同一のアドレスに対しての相継ぐ読取り及び書込
み動作を可能とするアドレスエイリアシングを使用して
構成されている。データはインターリーブした画素フォ
ーマットでVBIU102へ出力されねばならず且つデ
ータは各要素が同一の画素タイプ(Y,U又はV)のマ
トリクスでDCTユニット104−107から到着する
ので、現在出力中のU又はVマトリクス内の対応する要
素がVBIU102へ供給される前に、次のU又はVマ
トリクスの要素が到着する場合がある。この様な時間期
間中において、次のU又はVマトリクスの要素は、出力
中の現在のマトリクスとオーバーラップすることのない
メモリ位置が割当てられる。従って、この様な状態を可
能とするために、U,Vブロックに対して割当てられた
物理的メモリは、必ず1個よりも大きなブロックでなけ
ればならない。実際には、1個のブロックの4分の1の
エキストラな部分が本実施例において取扱われるYUV
4:2:2及びYUV4:1:1データフォーマットの
場合に十分であることが判明している。領域311,3
12及び313の開始アドレスは、それぞれ、0,25
6,320として指定されている。BMU103とVB
IU102との間のデータのやりとりは画素単位である
が、BMU103とDCT入力選択104又はDCT行
/列分離器107との間のやりとりは64値ブロックの
単位である。
【0064】ブロックメモリユニットにおけるメモリアクセスモード 本実施例の別の側面は、メモリコア300bにおけるメ
モリコアアドレスのエイリアシングである。エイリアシ
ングは、同一の物理的メモリ位置に対してポイント、即
ち指向する1個以上の論理アドレスを有する態様であ
る。メモリコアアドレスのエイリアシングは必ずしも本
発明の実施のためのものではないが、アドレスエイリア
シングは、メモリコア300bの物理的寸法を減少させ
且つ二つの64値ブロックによって物理的メモリ位置を
共用することを可能とすることにより顕著なチップ面積
を節約する。この共用について次に説明する。
【0065】圧縮又は脱圧縮動作期間中において、VB
IU102からBMU103を介してDCT入力選択ユ
ニット104へ、又はDCT行/列分離器107からB
MU103を介してVBIU102へそれぞれデータが
流れる。1個のブロックの幾つかの部分は、既に読取ら
れており且つ再度アクセスされることはなく、一方該ブ
ロックの他の部分はこれから読取られるべきものであ
る。従って、既に読取られた1個のブロックの一部を収
納するメモリコア300b内の物理的位置は、そのブロ
ック全体が完全に読取られる前に、書込みが行なわれる
場合がある。この様な態様でメモリ位置の再使用を可能
とするアドレスマッピングの管理は、アドレスエイリア
シング又は「インライン」メモリとして知られている。
本実施例においては、アドレスエイリアシング論理31
0がこの様なマッピングを行なう。一組を構成する6個
のレジスタ304乃至309が、アドレスエイリアシン
グ論理310によって物理的アドレス内にマップされる
データム、即ちデータ項目の論理的アドレスを発生す
る。従って、YWアドレスカウンタ304、UWアドレ
スカウンタ305及びVWアドレスカウンタ306は、
それぞれ、Y_領域311,U_領域312,V_領域
313の領域内への書込み動作のための理論的アドレス
を供給する。同様に、YRアドレスカウンタ307、U
Rアドレスカウンタ308及びVRアドレスカウンタ3
09は、それぞれ、Y_領域311、U_領域312、
V_領域313における読取り動作のための読取り論理
アドレスを供給する。
【0066】BMU103内のアドレス発生論理300
aは、主に、状態カウンタ301と、領域カウンタ30
2と、上述した6個のアドレスカウンタ304乃至30
9とから構成されている。選択されたフォーマット及び
動作モードに依存して、メモリコアアクセスは以下の如
きパターンに従う。 A 4:2:2圧縮シーケンス−YUYVRRRR Y
UYVRRRR B 4:1:1圧縮シーケンス−YXYXRRRR Y
UYVRRRR C 4:2:2脱圧縮シーケンス−WWWWYUYV
WWWWYUYV D 4:1:1脱圧縮シーケンス−WWWWYUYV
WWWWYUYV 尚、圧縮シーケンスにおけるY,U又はVは、VBIU
102からBMU103内にY,U又はVデータが書込
まれることを示している。圧縮シーケンスにおける
「R」は、データム、即ちデータ項目がBMU103か
らDCT入力選択ユニット104へ読取られるべきこと
を示している。脱圧縮モードにおけるY,U又はVは、
Y,U又はVデータム(データ項目)がBMU103か
らVBIU102内に読取られるべきことを示してい
る。脱圧縮シーケンスにおける「W」は、DCT行/列
分離器107からBMU103内にデータム(データ項
目)が書込まれるべきであることを示している。該シー
ケンスは16個のクロック周期毎に繰返すので、BMU
103の動作をシーケンス動作させるためには4ビット
状態カウンタ301で十分である。
【0067】領域カウンタ302は、Y_領域311と
U_領域312とV_領域313のうちでどの領域にお
いて読取り又は書込み動作が行なわれるべきであるかを
示すために使用される。幾つかの動作モードに対するブ
ロックにおける領域カウンタ302出力シーケンスは以
下の如くである。 4:2:2圧縮:YYUV YYUV 4:1:1圧縮:YY−−YYUV 4:2:2脱圧縮:YYUVYYUV 4:1:1脱圧縮:YY−−YYUV
【0068】離散余弦変換ユニット内のデータの流れ 図1に関連して上述した実施例における離散余弦変換
(DCT)機能は五つの機能的ユニットが関与してお
り、即ち、ブロックメモリユニット103と、DCT入
力選択ユニット104と、DCT行格納ユニット105
と、DCT/IDCTプロセサ106と、DCT行/列
分離器107である。DCT機能は、二つのパス(通
過)で実施され、即ち、最初は行方向であり、次いで列
方向である。
【0069】図4は、DCTユニットのデータフロー図
を示している。64値画素マトリクス内の入力ビデオ画
像は、図4において水平方向の行、即ち行0−行7とし
て示した如く、行毎に、DCT/IDCTプロセサ10
6内において一度に二つの値が処理される。この行処理
されたデータは、一度に二つずつの値で、DCT行格納
ユニット105内に一時的に直列的に格納される。次い
で、この行処理されたデータは、二次元DCTの2番目
のパスにおいて列方向co10−co17において処理
するためにDCT/IDCTプロセサ106内に供給さ
れる。DCT行/列分離器107は、この行処理された
データをDCT行格納ユニット105内に供給し、且つ
この2番目のパスの後のデータ(即ち、変換空間におけ
る表示)を量子化ユニット108内に供給する。
【0070】図5は、圧縮モードにおける、DCTユニ
ット103−107(図1)内への4:1:1データ入
力のデータ流れの態様を示している。図5において、時
間軸は左から右へ進行しており、各タイミングマークは
四つのクロック周期を示している。垂直方向において、
図5における図は、「入力データ」及び「DCTデー
タ」としてそれぞれ示した上部部分と下部部分とに分離
されている。入力データ部分は、4:1:1フォーマッ
トの下での入力データストリームを示しており、且つD
CTデータ部分は、DCT/IDCTプロセサユニット
106によって処理されるべきブロックメモリユニット
103からデータが選択されるシーケンスを示してい
る。
【0071】VBIU102に関連して上述した如く、
4:1:1YUVデータフォーマットの下では、Yデー
タが二つのクロック周期毎に8ビットの割合でDCTユ
ニット103−107内に入力され、且つU,Vデータ
は、二つのクロック周期毎に4ビットの割合で入力さ
れ、「don’t−care」タイプのデータはVBI
U102によって該時間のうち50%に亘って送給され
る。従って、64値の8画素×8画素マトリクスの場
合、U及びVマトリクスの各々は512クロック周期を
受取ることを必要とし、同一の時間期間中に、四つの6
4値のYマトリクスがDCTユニット103−107に
おいて受取られる。この512クロック周期の入力デー
タは図5の上部部分に示してある。
【0072】圧縮モード期間中において、上述した如
く、入力データはブロックメモリユニット103におい
て同一のタイプの画素からなる8×8マトリクスの形態
に組立てられる。DCT入力選択ユニット104は、D
CT/IDCTプロセサユニット106内への入力デー
タのために交互にDCT行格納ユニット105及びブロ
ックメモリユニット103を選択する。DCT/IDC
Tプロセサ106内への入力データシーケンスは、「D
CTデータ」とマークを付けて図5の下部部分内に示し
てある。
【0073】図5において、DCT/IDCTプロセサ
ユニット106内に入力される最初のパスのYUVデー
タ(ブロックメモリユニット103から)は、Y_ro
w,U_row,V_rowとして示してあり、DCT
/IDCTプロセサ105内に入力される2番目のパス
のデータ(DCT行格納ユニット105から)はY_c
ol,U_col,V_colとして示してある。40
1bのマークを付けた時間と403bのマークを付けた
時間との間において、DCT/IDCTプロセサユニッ
ト106は最初のパス及び2番目のパスのデータを交互
に処理する。401bから403bの期間中において、
最初のパスのデータと2番目のパスのデータとは、入力
データとDCTユニット103−107において処理さ
れるデータとの間の時間遅延のために、前の64値の画
素マトリクスからのデータである。ブロックメモリユニ
ット103における上述したバッファ機能メカニズムの
ために、図5において401b及び409bとしてマー
クを付けた時間の間に入力される画素データはブロック
メモリユニット103内に格納され、一方最後の512
個のクロック周期内に格納された画素データはDCTユ
ニット104−107において処理される。最後の51
2クロック期間からのデータは、404bとしてマーク
を付けた時間において処理が開始され、且つ次の512
個のクロック周期の最初の128個のクロック周期(4
01b及び403bの間にマークした時間期間と同じ)
の後に完了する。
【0074】403b及び404bのマークの間の時間
期間はDCT/IDCTプロセサ106における「アイ
ドル」である。なぜならば、DCT/IDCTプロセサ
ユニット106におけるパイプラインはYUV4:2:
2データに対して最適化されているからである。YUV
4:1:1タイプのデータはYUV4:2:2タイプの
データ内に含まれるU及びV情報の半分のみを収容する
に過ぎないので、あるクロック周期の期間中において、
DCT/IDCTプロセサユニット106は、64個の
値の完全なマトリクスがブロックメモリユニット103
内に蓄積されるまで、待機せねばならない。実際上、入
力データに関して待機するためにDCT/IDCTプロ
セサユニット106内に特別なメカニズムは設けられて
いない。この期間中におけるDCT/IDCTプロセサ
ユニット106の出力データは、その制御シーケンスに
従ってゼロパッカー/アンパッカーユニット110によ
って単に廃棄される。DCT入力選択ユニット104及
びDCT行/列分離器ユニット107に対する制御機構
については以下に詳細に説明する。
【0075】図6は、圧縮モードの下におけるYUV
4:2:2タイプのデータに対するデータの流れの態様
を示している。この入力データフォーマットの下では、
上述した如く、8ビットU又はVタイプの値が、二つの
クロック周期毎にDCTユニット103−107におい
て受取られ、従って、それは、両方の64個の8ビット
U及びVマトリクスを受取るのに256クロック周期を
必要とする。この256サイクル期間中において、二つ
の64値YマトリクスがDCTユニット103−107
において受取られる。この256クロック周期を図6に
示してある。YUV4:2:2タイプデータの下ではア
イドルサイクルは存在しない。この場合も、ブロックメ
モリユニット103におけるバッファ機能のために、D
CT/IDCTプロセサ106は、最後の256クロッ
ク周期からのデータを処理し、一方現在の入力データは
ブロックメモリユニット103においてバッファされ
る。
【0076】脱圧縮の下では、DCTユニット103−
107への基本的な入力データパターンは、(a)YU
V4:1:1フォーマットの下では、二つの64−16
ビット値Yマトリクスと、それに続く各々が64−16
ビット値のU及びVマトリクスと、次いで二つの64−
16ビット値のYマトリクス、(b)YUV4:2:2
フォーマットの下では、二つの64−16ビット値のY
マトリクスと、それに続く各々が64−16ビット値の
最初のU及びVマトリクスと、次いで二つの64−16
ビット値のYマトリクスと、それに続く2番目のU及び
Vマトリクスである。
【0077】図7は、脱圧縮モードの下でのYUV4:
1:1データフォーマットに対してのデータフローの態
様を示している。脱圧縮動作は実質的に圧縮動作の逆で
あるので、脱圧縮のための入力データストリームは量子
化ユニット108から供給される。従って、DCT入力
選択ユニット104は、DCT行格納ユニット105及
び量子化ユニット108の間において交互に入力データ
を選択する。このデータストリームは外部ディスプレイ
のタイミングと同期せねばならないので、図5において
403b及び404bとしてマークを付けた時間の間の
期間と類似したアイドル期間が存在する。YUV4:
1:1フォーマットの下でのアイドル期間の一例は、図
7における404dと405dとの間の期間である。圧
縮モードの下での_row及び_colの指定の代わり
に、図7は、DCT/IDCTユニット103−107
において処理されるデータは変換(周波数)ドメインに
おける値であることを明らかにするために−1st及び
−2ndの指定を使用している。同様に、図8は、脱圧
縮の下でのYUV4:2:2データフォーマットに対す
るデータの流れの態様を示している。この場合にも、D
CT/IDCTプロセサ106における構成はYUV
4:2:2データに対して最適化されているので、この
入力フォーマットにおけるデータに対してはアイドルサ
イクルは存在しない。
【0078】DCT入力選択ユニットの構成及び動作 DCT入力選択ユニット104について図9乃至11を
参照して次に説明する。DCT入力選択ユニットは、D
CT/IDCTプロセサユニット106内に二つの画素
データのストリームを指向させる。最初の画素データの
ストリームは、圧縮又は脱圧縮の何れが要求されている
かに依存して、DCTブロックメモリユニット103か
又は量子化器108の何れかからの最初のパスの画素デ
ータである。この最初の画素データのストリームは、D
CT又はIDCTの最初のパスとして指定されている。
画素データの2番目のストリームは、DCT行格納ユニ
ット105からのストリームであって、この2番目の画
素データのストリームは、最初のパスのDCT又はID
CTの中間結果を表わしている。この画素データの2番
目のストリームは、DCT又はIDCTの2番目のパス
において更に処理されることを必要とする。DCT又は
IDCTの二つのパスを実行するために同一のDCT/
IDCTプロセサユニット106を有することによっ
て、資源の利用が最大化されている。DCT入力選択ユ
ニット104は、YUV4:2:2フォーマットの下で
アイドルサイクルなしに、DCT/IDCTプロセサユ
ニット106内への連続的な入力データストリームを与
えている。
【0079】図9は、DCT入力選択ユニット104の
概略図である。前述した如く、DCT入力選択ユニット
104は、脱圧縮期間中において、量子化器ユニット1
08及びDCT行格納ユニット105から交互に入力デ
ータをとる。圧縮期間中において、DCT入力選択ユニ
ット104への人力データは、ブロックメモリユニット
103及びDCT行格納ユニット105から交互にとら
れる。
【0080】圧縮期間中において、入力データがブロッ
クメモリユニット103からとられる場合、8ビット入
力データの二つのストリームが518a及び518bの
データバス上に存在する。図9に示した如く、これら二
つのデータのストリームは、次いで、相継いで、4対の
ラッチ(topーbot)、即ち、それぞれ制御信号b
lk_load4、blk_load5、blk_lo
ad6、blk_load7による501c及び505
c、502c及び506c、503c及び507c、5
04c及び508c、のうちの一対のものの中にラッチ
される。各対のラッチは、上部ラッチ及び下部(「bo
t」)をラッチから構成されている。ラッチ対と関連す
る制御信号(例えば、blk_lod7)は、上部及び
下部ラッチの両方にロードする。ラッチ501c乃至5
08cは一時的にデータを格納し、従ってこのことは、
DCTユニット106内に適切にシーケンス動作させる
ことが可能である。
【0081】四つの2対18ビットマルチプレクサ51
2c,513c,514c,515c(ブロックマルチ
プレクサと呼称される)からなる一組の各々が、別の一
組の4個の2対1マルチプレクサ516a,516b,
516c,516d(ブロック/量子化器マルチプレク
サと呼称される)に対する入力として、四つの対のラッ
チ501c−505c,502c−506c,503c
−507c,504c−508cのうちの一つから上部
又は下部出力データム(データ項目)の何れかを選択す
る。ラッチ501c−505c及び502c−506c
の対からブロックマルチプレクサによって選択された出
力データム即ちデータ項目は、「ブロック上部データ」
として指定され、且つラッチ503c−507c及び5
04c−508cの対から選択された出力データは「ブ
ロック下部データ」として指定される。ブロック/量子
化器マルチプレクサ516a−dは16ビット幅であ
り、且つ以下に説明する態様で、ブロックマルチプレク
サ512c乃至515cの出力データと量子化器マルチ
プレクサ511a及び511bとの間で選択を行なう。
【0082】圧縮期間中において、ブロック/量子化器
マルチプレクサ516a−dは、ブロックマルチプレク
サ512c乃至515cの出力データを選択すべくセッ
トされる。なぜならば、量子化器108からの出力がな
いからである。ブロック/量子化器マルチプレクサ51
6a及び516cの出力データは、「ブロック/量子化
器上部データ」として指定され、ブロック上部データ及
び量子化器上部データの間で選択され(後述する如く、
マルチプレクサ511aによって選択される)、ブロッ
ク/量子化器マルチプレクサ516b及び516dの出
力データは「ブロック/量子化器下部データ」として指
定され、ブロック下部データと量子化器下部データとの
間で選択される(後述する如くマルチプレクサ511b
によって選択される)。ブロックマルチプレクサ512
c−515cは各々8ビット幅であるので、ブロックマ
ルチプレクサ512c−515cの各出力データム(デ
ータ項目)の最小桁ビットに対して8個のゼロビットが
付けられて、ブロック/量子化器マルチプレクサ516
a−dにおいて16ビットワードが形成される。この1
6ビットワードの最大桁ビットは、結果的に得られる値
を−215だけオフセットするために反転され、爾後の
計算に対して妥当な適宜の範囲内の値とされる。
【0083】各々が16ビット幅である入力データの二
つのストリームがDCT行格納ユニット105からとら
れる。DCT/IDCTプロセサユニット106へのD
CT行格納ユニット105におけるDCT行データのデ
ータ流れ経路は、上述したDCT/IDCTプロセサユ
ニット106へのブロックメモリ格納ユニット103か
らの入力データのデータ流れ経路と非常に類似してい
る。四つの対のラッチ(topーbot)、即ち501
d−505d,502d−506d,503d−507
d,504d−508dが、それぞれ、制御信号row
_1oad0,row_load1,row_load
2,row−load3によって制御される。一組の四
つの4対1マルチプレクサ512d,513d,514
d,515d(DCT行マルチプレクサと呼称される)
が、信号row_lod0及びrow_lod1によっ
て制御される二つの対(即ち、二つの対501d−50
5d及び502d−506d)から二つのラッチの出力
データ(DCT行上部データと呼称される)を選択し、
且つ信号row−load2及びrow_load3に
よって制御される二つの対(即ち、二つの対503d−
507d及び504d−508d)から二つのラッチの
出力データ(DCT行下部データと呼称される)を選択
する。
【0084】上述した如く、脱圧縮期間中において、D
CT/IDCTプロセサユニット106(図1)内への
データは、DCT行格納ユニット105及び量子化器1
08から交互にとられる。従って、脱圧縮期間中、ブロ
ック/量子化マルチプレクサ516a−dは、ブロック
マルチプレクサではなく量子化マルチプレクサ511a
−bからのデータを選択すべくセットされる。
【0085】16ビットデータの単一のストリームがバ
ス519上を量子化ユニット108(図1)から流れ
る。1個の16ビットのデータム、即ちデータ乃至はデ
ータ項目が、二つのバンク、即ち501a−508a
(バンク0)又は501b−508b(バンク1)に割
当てられた16個のラッチのうちの何れか一つの中にラ
ッチすることが可能であり、尚各ラッチは制御信号lo
ad0−load15のうちの一つによって制御され
る。一組の四つの4対1マルチプレクサ、即ち509a
(量子化器バンク0上部マルチプレクサと呼ばれる)、
510a(量子化器バンク0下部マルチプレクサと呼ば
れる)、509b(量子化器バンク1上部マルチプレク
サと呼ばれる)及び510b(量子化器バンク1下部マ
ルチプレクサと呼ばれる)からなる一組のマルチプレク
サが、四つのデータ項目(各々は、後述する信号に応答
して四つのラッチの別々のグループから供給される)を
選択する。量子化器バンク0上部マルチプレクサ509
aはラッチ501a,502a,505a,506aか
ら一つの出力データム(データ乃至はデータ項目)を選
択する。量子化器バンク0下部マルチプレクサ510a
は、ラッチ503a,504a,507a,508aか
ら一つの出力データム(データ乃至はデータ項目)を選
択する。量子化器バンク1上部マルチプレクサ509b
は、ラッチ501b,502b,505b,506bか
ら一つの出力データム(データ乃至はデータ項目)を選
択する。量子化器バンク1下部マルチプレクサ510b
は、ラッチ503b,504b,507b,508bか
ら一つの出力データム(データ乃至はデータ項目)を選
択する。
【0086】次いで、一組の二つの2対1マルチプレク
サ511a及び511b(量子化器マルチプレクサ)
が、それぞれ、量子化器上部データ項目及び量子化器下
部データ項目を選択する。量子化器上部データ項目は、
量子化器バンク0及びバンク1上部データ項目(マルチ
プレクサ509a及び509bの出力データ)の出力デ
ータ項目から選択され、且つ同様に、量子化器下部デー
タ項目は量子化器バンク0及びバンク1下部データ項目
(マルチプレクサ510a及び510bの出力データ)
のうちの出力データ項目から選択する。量子化器上部及
び下部データ項目は、ブロック/量子化器マルチプレク
サ516a−516dにおいて供給され、該マルチプレ
クサは脱圧縮期間中において量子化器上部及び下部デー
タ項目(マルチプレクサ511a及び511bの出力デ
ータ)を選択すべくセットされる。
【0087】最後に、一組の四つの2対1マルチプレク
サ517a−dは、DCT/IDCTプロセサユニット
106(図1)内への入力データを供給するために、D
CT行上部及び下部データ(マルチプレクサ512d−
515dの出力データ)とブロック/量子化器上部及び
下部データ(マルチプレクサ516a−516dの出力
データ)との間で選択を行なう。マルチプレクサ517
aは、「A」レジスタ上部データ517aを供給するた
めに、一組のブロック/量子化器マルチプレクサ上部デ
ータ516aとDCT行格納上部データ514dとの間
で選択を行ない、マルチプレクサ517cは、「B」レ
ジスタ上部データを供給するために、他の組のブロック
/量子化器マルチプレクサ上部データ516cと行格納
上部データ512dから選択する。これら二組の量子化
器マルチプレクサ上部データ516b及び516d及び
DCT格納下部データ515d及び513dは、それぞ
れ、「A」レジスタ下部データ517b及び「B」レジ
スタ下部データ517dを供給する。
【0088】圧縮期間中のDCT入力選択ユニットの動作 DCT入力選択ユニット104の構成について説明した
ので、DCT入力選択ユニツト104の動作について次
に説明する。図10は、圧縮モード期間中におけるDC
T入力選択ユニット104のデータの流れ及び制御信号
を示している。DCT入力選択ユニット104は、16
個の相継ぐクロック周期によってシーケンス動作される
16個の内部状態を有するものとして見ることが可能で
ある。図10は、16個の内部状態を介しての一つのサ
イクルに対応する16個のクロック周期を示している。
圧縮モードの場合、クロック周期0乃至7に対するDC
Tユニット104−107の内部状態は、クロック周期
8乃至15に対するDCTユニット104−107の内
部状態と同一である。図10は、DCT行格納ユニット
105からの一つの行のデータ及びブロックメモリユニ
ット103からの一つの行の入力データに関してのDC
T入力選択ユニット104(図1)の動作を示してい
る。
【0089】図示した最初の四つのクロック周期(即
ち、クロック周期0,1,2,3)は、DCT行格納ユ
ニット105からラッチ501d−508d内へのバス
518c及び518d上のデータのローディング相であ
る。これらの最初の四つのクロック周期は、又、最後の
四つのクロック周期におけるラッチ501c−508c
内にロードされたブロックメモリユニット103からの
データの処理相である。ラッチ501c−508c内に
格納されたブロックメモリデータの処理は、ブロックメ
モリユニット103からのブロックメモリデータのロー
ディングをクロック周期4乃至7に関連して説明した後
に、クロック周期8乃至11の説明に関連して一例を使
用して以下に説明する。
【0090】最初の四つのクロック周期0−3の期間中
において、DCT行格納ユニット105からの一連のデ
ータが、制御信号row_load0乃至row_lo
ad3の相継ぐ活性化によってラッチ対501d−50
5d,502d−506d,503d−507d,50
4d−508d内に二つの対の状態でY(0),Y
(1)...Y(7)の順番でロードされる。次の四つ
のクロック周期4乃至7において、DCT入力選択ユニ
ット104(図1)は、最後の四つのクロック周期0−
3においてDCT行格納ユニット105からロードされ
たデータをDCT/IDCTプロセサ106へ送給し、
同時に、ブロックメモリユニット103からのデータを
ロードする。マルチプレクサ517a乃至517dは、
ラッチ501d−508d内のDCT行格納データを選
択すべくセットされる。DCT行格納マルチプレクサ5
12d乃至515dは、次の四つのクロック周期におい
て活性化されて、クロック周期4及び5において、要素
Y(2)及びY(5)を選択し、それぞれ、マルチプレ
クサ517a及び517b(「A」レジスタ上部及び下
部マルチプレクサ)の出力データとして出力させ、且つ
Y(1)及びY(6)を、それぞれ、マルチプレクサ5
17c及び517d(「B」レジスタ上部及び下部マル
チプレクサ)の出力データとして出力させる。クロック
周期6及び7において、Y(3)及びY(4)は、それ
ぞれ、マルチプレクサ517a及び517bの出力デー
タとして出力され、且つY(0)及びY(7)は、それ
ぞれ、マルチプレクサ517c及び517dの出力デー
タとして出力される。この時間期間中において、マルチ
プレクサ517a乃至517dは、ラッチ501d−5
08d内のDCT行格納データを選択する。
【0091】クロック周期4乃至7の期間中において、
一連のブロックメモリデータx(0),x(1)...
x(7)が、クロック周期0乃至3の期間中にラッチ5
01d−508d内へのDCT行格納データのラッチ動
作におけるのと同一の態様で、制御信号blk_loa
d4乃至blk_load7によってラッチ501c乃
至508c内にラッチされる。次の四つのクロック周期
8乃至11の期間中において、DCT入力選択ユニット
104が、クロック周期0乃至3の期間中におけるのと
連続して同一の状態にあり、即ち、DCT行格納ユニッ
ト105からローディングを行なうと共に、最後の四つ
のクロック周期4−7期間中にブロックメモリユニット
103からラッチ501c−508c内にロードされた
データx(0)...x(7)をDCT/IDCTプロ
セサユニット106へ送給する。
【0092】クロック周期8乃至11において、マルチ
プレクサ517a乃至517dは、ブロック/量子化器
マルチプレクサ516a乃至516dからのデータを選
択し、該マルチプレクサは、ブロックメモリマルチプレ
クサ512c乃至515cからのデータを選択すべくセ
ットされる。ブロックメモリマルチプレクサ512c乃
至515cは、クロック周期8乃至9の期間中に、x
(2)及びx(5)がそれぞれマルチプレクサ517a
及び517bにおいて与えられ、且つ同一のクロック周
期8乃至9の期間中において、x(1)及びx(6)が
それぞれマルチプレクサ517c及び517dにおいて
与えられるようにセットされる。
【0093】脱圧縮期間中におけるDCT入力選択ユニットの動作 脱圧縮モード期間中におけるDCT入力選択ユニット1
04の動作について図11を参照して次に説明する。図
11は、脱圧縮モード期間中におけるDCT入力選択ユ
ニット104の制御及びデータの流れを示している。上
述した如く、DCT入力選択ユニット104は、16個
の内部状態を有するものと考えることが可能である。図
11に示した如く、16個のクロック周期0乃至15の
期間中において、DCT行格納ユニット105(クロッ
ク周期0−3及び8−11)からの2行のデータ及び量
子化ユニット108からの2列のデータが、DCT/I
DCTプロセサユニット106への入力データとして送
給される(クロック周期0−15)。
【0094】図11に示した如く、16ビットデータの
連続的なストリームが、クロック周期毎に一つのデータ
ム(即ち、データ項目乃至は1個のデータ)の割合で、
DCT入力選択ユニット104へ量子化器ユニット10
8によって供給される。二重バッファ機能メカニズム
は、バンク0(ラッチ501a乃至508a)における
ラッチがロードされている場合に、バンク1(ラッチ5
01b乃至508b)におけるデータがDCT/IDC
Tプロセサユニット106への入力として選択されるこ
とを可能としている。該ラッチは、それぞれ制御信号l
oad0乃至load7によってバンク0内の501a
乃至508aから開始して(クロック周期0乃至7にお
いて)、次いでバンク1へスイッチして制御信号loa
d8乃至load15によってそれぞれのラッチ501
b乃至508bをロードして(クロック周期8乃至1
5)、ローディングされる。クロック周期8乃至11の
期間中、バンク1がロードされる間、バンク0内のデー
タx(0)...x(7)(クロック周期0乃至7の期
間中にロードされている)がDCT/IDCTプロセサ
ユニット106内への入力として選択される。選択の順
番は、図11におけるシーケンス(top−bot)、
即ちクロック周期8におけるx(1)−x(7)、クロ
ック周期9におけるx(3)−x(5)、クロック周期
10におけるx(2)−x(6)、クロック周期11に
おけるx(0),x(4)として示してある。同一の上
部データは、DCT「A」レジスタ上部データ及びDC
T「B」レジスタ上部データの両方において表われる。
「A」及び「B」の下部レジスタに対する下部データも
同一である。図11に示したクロック周期15に続く四
つのクロック周期におけるクロック周期0乃至3の期間
中(図示したクロック周期0乃至3に類似している)、
ラッチ501b乃至508bにおける新たなデータはD
CT/IDCTプロセサユニット106への入力の場合
と類似した順番で選択される。
【0095】DCT行格納ユニット105からのデータ
のローディング及び処理は、圧縮モードにおける場合と
同一のパターンに従い、即ち、四つのクロック周期の期
間中に、501d乃至508dにおけるラッチ対が、ク
ロック周期毎に一対の二つの16ビットデータの割合
で、それぞれ、制御信号row−load0乃至row
_load3によってロードされる。これらのラッチ対
は、501d−505d,502d−506d,503
d−507d,504d−508dである。例えば、ク
ロック周期0乃至3の期間中、該ラッチは、DCT行格
納部からの1行の16ビットデータY(0)...Y
(7)でロードされる。次の四つのクロック周期4乃至
7においては、ラッチ501d乃至508dにおける1
6ビットデータY(0)...Y(7)が、所定のシー
ケンスにおいて(「A」レジスタ上部、「A」レジスタ
下部、「B」レジスタ上部、「B」レジスタ下部)、即
ちクロック周期4において(Y(1),Y(7),Y
(1),Y(7))、クロック周期5において(Y
(3),Y(5),Y(3),Y(5))、クロック周
期6において(Y(2),Y(6),Y(2),Y
(6))、及びクロック周期7において(Y(0),Y
(4),Y(0),Y(4))の順番で、DCT/ID
CTプロセサユニット106への入力として供給され
る。
【0096】クロック周期8乃至15において類似のロ
ーディング及び処理相が与えられる。ラッチ501d乃
至508dにおけるデータ(DCT行格納データ)は、
DCT/IDCTプロセサユニット106への入力のた
めに、量子化器ユニット108からのデータで4クロッ
ク周期毎に交互に選択される。例えば、クロック周期0
乃至3及び8乃至11の期間中、量子化器ユニット10
8からのデータはDCT/IDCTプロセサユニット1
06への入力のために供給され、且つクロック周期4乃
至7の期間中及び12乃至15の期間中においては、D
CT行格納データがDCT/IDCTプロセサユニット
106への入力のために供給される。
【0097】DCT行格納ユニットの構成及び動作 DCT行格納ユニット105(図1)の構成及び動作に
ついて図12乃至14を参照して次に説明する。図12
は、DCT行格納105の概略図である。DCT行格納
ユニット105内の格納は、「偶数」及び「奇数」プレ
ーンとして組織されている二つの32×16ビットスタ
ティックランダムアクセスメモリ(SRAM)アレイ6
09及び610によって実現されている。2対1マルチ
プレクサ611及び612は、メモリアレイ609及び
610の奇数及び偶数プレーンからそれぞれ読取られた
出力データをDCT入力選択ユニット104へ送給す
る。コンフィギュレーション(形態)レジスタ608
は、DCT行/列分離器からの出力をDCT行格納ユニ
ット105と同期させるための待ち時間値(圧縮又は脱
圧縮の何れかに対して)などのようなコンフィギュレー
ション情報を収納しており、従って、コンフィギュレー
ションレジスタ608内のコンフィギュレーション情報
に従って、アドレス発生器607は、SRAMアレイ6
10及び609に対するアドレスのシーケンスを発生す
る。
【0098】メモリアレイ609及び610は、バス1
15(図12)を介してホストコンピュータによって読
取るか又は書込みを行なうことが可能である。2対1マ
ルチプレクサ605,606は、ホストコンピュータが
SRAMアレイ609及び610へのアクセスを要求す
る場合に、バス613上でホストコンピュータによって
与えられる入力アドレスを選択する。DCT行/列分離
器ユニット107からの入力データは、二つの16ビッ
トバス618及び619上をDCT行格納ユニット10
5に到着する。前述した如く、ホストコンピュータは、
SRAMアレイ609及び610内に書込みを行なうこ
とも可能である。ホストコンピュータからのデータは、
16ビットバス619からSRAMアレイ609及び6
10内にラッチされる。一方、一組の2対1マルチプレ
クサ601−604が、バス618,619上のDCT
/IDCTプロセサユニット100からのデータを、以
下に説明するメモリアクセス方法に従って、SRAMア
レイ609又は610の何れかへ書込むべきことをマル
チプレクス動作する。
【0099】二つの16ビット出力データワードがバス
616及び617上に乗せられ、SRAMアレイ610
及び609からの出力データがそれぞれ送信される。2
対1マルチプレクサ611及び612は、バス616又
は617上のデータを選択して、既にDCT入力選択ユ
ニット104に関して説明したDCT/IDCTプロセ
サユニット106において実施されるDCT/IDCT
アルゴリズムによって必要とされる順番で、クロック周
期当り二つの16ビットデータワードをバス626及び
627上に供給する。一方、バス616及び617上の
SRAMアレイ609及び610からの出力データは、
ホストコンピュータ(不図示)の指示の下にバス614
上に出力させることが可能である。ホストコンピュータ
(不図示)は、IEEEスタンダードに記載される如
く、ホストバス115へ接続される。
【0100】DCT行格納ユニットのインラインメモリ 二つの16ビット値がクロック周期当りDCT行格納ユ
ニット105内に書込まれるか又はそれから読出され、
且つDCT又はIDCTの最初のパスのデータがアクセ
スされる順番のために、SRAMアレイ609及び61
0の読取り及び書込みを効率的に行なう方法が与えられ
ており、従って、最後の8×8マトリクスから1列のデ
ータが読取られた後に、入力される8×8マトリクスに
おける1行のデータで同一のメモリ位置内に書込みが行
なわれる。この態様においては、「インライン」メモリ
アクセス方法が実施され、そのことは、同等の二重バッ
ファ機能方法よりも格納領域が50%少なくて済む。
「インライン」メモリの利点を得るために、SRAMア
レイ609及び610は、交互に「水平」及び「垂直」
アクセスパターンの下で書込み及び読取りが行なわれ
る。メモリマップ(「書込みパターン」と呼ばれる)
を、水平及び垂直アクセスパターンのそれぞれの場合に
対して図13及び14に示してある。
【0101】図13は、8×8の最初のパスの結果のマ
トリクスが完全に書込まれているSRAMアレイ609
及び610の内容を示している。例えば、論理的メモリ
位置0の偶数及び奇数部分、即ち0e及び0oは、行X
0のそれぞれの要素X0(0)及びX0(1)を有して
おり、0e及び0oは、それぞれ、Eプレーン(SRA
Mアレイ609)及びOプレーン(SRAMアレイ61
0)内のアドレス0に対応している。それぞれの独立し
た入力及び出力能力のために、Eプレーンデータム(即
ち、データ項目乃至はデータ)及びOプレーンデータム
は、同一のクロック周期期間中に同時的にアクセスする
ことが可能である。SRAMアレイ609及び610の
Eプレーン及びOプレーンの各々においては32個のメ
モリ位置が存在しており、「e」アドレスがEプレーン
内に設けられており、且つ「o」アドレスがOプレーン
内に設けられている。従って、全部で64個のデータワ
ードを奇数及び偶数プレーン全体に格納することが可能
である。
【0102】圧縮期間中においては、「row(行)」
及び「column(例)」の用語は、画素マトリクス
の行及び列のことを意味するが、一方脱圧縮期間中にお
いては、これらの「行」及び「列」の用語は、周波数マ
トリクスの「行」及び「列」のことを意味する。任意の
クロック周期期間中、二つの16ビットデータがDCT
行/列分離器ユニット107からバス618及び619
上に到着するか(入力モード)、又は二つの16ビット
データがバス626及び627を介してDCT入力選択
ユニット104へ移行する(出力モード)。水平アクセ
スパターンの周期乃至は期間は64個のクロック周期か
ら構成されており、その期間中、8個のサイクルが存在
しており、即ち読取りメモリアクセスの四つのクロック
周期の各々と、それに続く書込みメモリアクセスの四つ
のクロック周期である。水平アクセスパターンにおいて
は、圧縮期間中、出力データは、列毎にDCT入力選択
ユニット104へ「水平方向」に供給され、且つ入力デ
ータは、行毎にSRAMアレイ609及び610内に
「水平方向」に書込まれる。脱圧縮期間中においては、
出力データは行毎にDCT入力選択ユニット104へ水
平方向に供給され、且つ入力データは列毎に水平方向に
書込まれる。
【0103】以下の説明は、圧縮期間中のデータの流れ
のみに基づいている。脱圧縮期間中においては、DCT
行格納ユニット105内への入力データは、マトリクス
の列であり、且つDCT入力選択ユニット104内への
出力データはマトリクスの行であるが、水平及び垂直ア
クセスの原理は同一である。図13は、SRAMアレイ
609及び610内に水平方向に完全に書込まれた行X
(0)−X(7)を有する8×8マトリクスXを示して
いる。図13は、前のマトリクスからの最後の二つの1
6ビットデータが読取られ且つ現在のマトリクスX(X
7(6)及びX7(7))の最後の二つの16ビットデ
ータがSRAMアレイ609及び610内に書込まれた
後の時間における所定の時刻におけるSRAMアレイ6
09及び610のマップである。
【0104】二次元DCTの2番目のパスが対の状態で
且つ列の順番でデータが読取られることを必要とするの
で、即ちX0(0)−X1(0),X2(0)−X3
(0),...X6(0)−X7(0),X0(1)−
X1(1)...X6(7)−X7(7)の順番で読取
られることが必要であるので、1列(例えば、X0
(0),X1(0)...X7(0))が読取られた後
に、以前に列X0(0)...X7(0)によって占有
されていたメモリ位置Oe,4o,8e,12
o,...28oは、現在、要素Y0(0)...Y0
(7)を有する入力行Y0を格納するために使用するこ
とが可能である。最初の列X0(0)...X7(0)
が読取られ且つ行Y0(0)...Y0(7)で置換し
た後に、2番目の列X0(1)...X7(1)が読取
られ且つ行Y1(0)...Y1(7)で置換される。
このプロセス即ち処理は、マトリクスAの全てが読取ら
れ且つ図14で示した如く、マトリクスYの全てで置換
されるまで、繰返し行なわれる。この期間中において
は、データは「垂直方向」に読取られ且つ書込まれ、こ
のアクセスパターンは垂直アクセスパターンと呼ばれ
る。マトリクスYの出力は、DCT入力選択ユニット1
04に対する列毎のものである。これらの列はSRAM
アレイ609及び610内において「水平方向」に位置
されているので、行毎の次の入力マトリクスの書込みも
水平方向であり、即ち、水平方向アクセスパターンを構
成する。データが垂直方向に書込まれ且つ水平方向にア
クセスされ且つ又その逆の動作を行なうことを可能とす
るために、各行の最初の要素、例えばX0(0),X1
(0)などは、図13及び14に示した如く、Eプレー
ン及びOプレーン内に交互に書込まれねばならない。な
ぜならば、同一の列内の隣接する16ビットデータは、
同時に対の形でアクセスされねばならないからである。
この様に、「インライン」メモリを実現することによ
り、二重バッファ機能方法と比較して、格納空間が50
%節約される。
【0105】DCT/IDCTプロセサユニットの構成及び動作 DCT/IDCTプロセサユニット106に対する入力
データは、DCT入力選択ユニット104におけるマル
チプレクサ517a乃至517dによって選択される。
DCT/IDCTプロセサ106への入力データは、ラ
ッチ701t及び701b(図15)によってラッチさ
れた四つの16ビットワードである。DCT/IDCT
プロセサユニット106は、圧縮モード期間中において
離散余弦変換即ちDCTを計算し、且つ脱圧縮モード期
間中において、逆離散余弦変換即ちIDCTを計算す
る。
【0106】本発明によれば、DCT及びIDCTアル
ゴリズムは、図16及び19におけるフローチャートに
示した如く、二つの8段(ステージ)のパイプラインと
して実現されている。圧縮期間中において、図16にお
けるフローチャートは、g[0],h[0]...i
[0](図36)が関与する最後の乗算ステップを除い
て、図36におけるものと同一である。量子化ステップ
は乗算が関与するので、DCTの最後の乗算は、量子化
器108における量子化ステップと共に実行されるべく
繰延べされる、即ち、実際に使用される量子化係数は、
デフォルトのJPEGスタンダード量子化係数と二つの
繰延べされたDCT被乗数(DCT/IDCTプロセサ
ユニット106を介しての各パスから一つずつ)との間
の積である。IDCT期間中においては、被乗数は脱量
子化ステップにおいて予備乗算される。この繰延べ乃至
は予備乗算が可能であるのは、DCT期間中において、
1列内の全ての要素が同一のスケールファクタを有して
おり、且つIDCT期間中においては、1行内の全ての
要素が同一のスケールファクタを有しているからであ
る。これらの乗算ステップを量子化ステップまで繰延べ
ることによって、画素当り二つの乗算が節約される。図
16及び19のフローチャートにおいて、入力データは
左から右へ流れる。円はラッチ又はレジスタを示してお
り、且つ左側の円と右側の円とを接続するラインは左側
のラッチ(以前のステージ)から右側のラッチ(次のス
テージ)へのデータム(即ち、データ項目乃至はデー
タ)の流れとして実行される演算操作を示している。左
側のラッチと右側のラッチとを接続するライン上に設け
られた定数は、左側のラッチにおけるデータムの値がそ
のデータムが右側のラッチへ流れる場合に該定数によっ
てスケール(乗算)されることを示しており、そうでな
い場合には、即ち接続ライン上に定数が存在しない場合
には、左側のラッチ上のデータムはスケールされない。
例えば、図16において、ステージ6におけるr3は、
p3を2cos(π/4)でスケールすることによって
派生され、且つr2はp2を1(スケールなし)でスケ
ールすることによって派生される。一つ以上のラインが
それに対して集束するラッチ、及び左側から発生する各
ラインは、各発生元の左側ラッチにおける値の右側ラッ
チにおける和を表わしており、且つそれは該ライン上に
示した符号に基づいている。例えば、図16において
は、y5はx(3)及び−x(4)の和である。
【0107】図16に示した如く、順方向変換(DC
T)アルゴリズムの場合、ステージ1と2との間におい
てシャッフル(混ぜ合わせ)・加算回路網が設けられて
おり、ステージ2における各データム(即ち、データ項
目乃至はデータ)はステージ1からの正確に二つの値を
巻込んでいる。ステージ2及び3の間においては、定数
1又は2cos(π/4)の何れかが関与するスケーリ
ング(拡縮)動作が行なわれる。ステージ4は、スケー
ルなしのステージ3か、又はステージ2における値とス
テージ3における値を必要とするシャッフル・加算の何
れかである。ステージ4及び5の間には別のシャッフル
・加算回路網が設けられており、この場合においても、
ステージ5における各データムは、ステージ4における
正確に二つのデータ項目の結果である。ステージ6は、
ステージ5のスケールしたものであり、スケール用定数
2cos(π/4),2cos(π/8),2cos
(3π/8)及び1が関与する。ステージ7のデータ
は、スケールされたステージ6のデータとステージ5の
データへの参照を必要とする和から構成されている。最
後に、ステージ8とステージ7との間には別のシャッフ
ル・加算回路網が設けられており、ステージ8における
各データムはステージ7における二つのデータ項目の和
の結果である。
【0108】図19に示した如く、本発明によれば、逆
変換(IDCT)に対するアルゴリズムは、ステージ2
及び3におけるスケーリングが付加的な定数2cos
(π/8)及び2cos(3π/8)を巻込み、且つス
テージ4及び7におけるシャッフル・加算結果が二つの
ステージに対する参照を必要とするのではなくそれらの
それぞれの直接的な前のステージからの値を巻込むとい
う点を除いて、順方向変換における8ステージ(段)フ
ローネットワークに密接に従う。従って、上述した差異
を受入れることにより、同一の8ステージ(段)プロセ
サで順方向及び逆方向アルゴリズムを実現することが可
能である。データフローにおけるどのシャッフル・加算
も前のステージからの二つを超える値を関与させるもの
ではないので、これらのアルゴリズムは、シャッフル・
加算操作が必要されるクロスオーバー点を有する二つの
8ステージパイプラインで実現することが可能である。
【0109】図15は、フィルタ実現の説明において上
述した図36及び37におけるフローチャートのハード
ウエアの実現態様を示している。図15に示した二つの
8ステージパイプラインは、圧縮期間中において、以下
の態様で、図34のフィルタツリーを実行する。即ち、
ステージ1及び2の間の動作が第一レベルフィルタ15
01及び1502を実行し、ステージ2−8の間の動作
が第二レベルフィルタ1503−1506を実行し、且
つステージ5−8の間において、第三レベルフィルタ1
507−1514を実行する。上述した如く、フィルタ
1515−1530の各々の動作は、各画素における最
後の乗算ステップに対応している。この最後の乗算ステ
ップは、量子化器108(図1)内において実行され
る。
【0110】DCT/IDCTプロセサユニット106
は、図15の上部部分及び下部部分のそれぞれに示した
二つのデータ経路700a及び700bによって構成さ
れている。例えば、709,711t,722t,72
2b,731t又は733tなどのマルチプレクサを介
して、データを一つのデータ経路から別のデータ経路へ
転送することが可能である。加算器735t及び735
bは、更に、一方のデータ経路からの入力データを他方
のデータ経路内の入力データと結合させる。該データ経
路内の制御信号は、データ独立性であって、図16及び
19に示したDCT又はIDCTアルゴリズムに従って
データの適切なシーケンス動作を与える。図15に示し
たDCT/IDCTプロセサ106における全ての動作
においては16ビットデータが関与する。DCT/ID
CTプロセサユニット106内の加算器は、加算と減算
の両方を実行する。
【0111】2対の16ビット入力データは、最初に、
ラッチ701t(「A」レジスタ)及び701b
(「B」レジスタ)内にラッチされる。加算器702t
及び702bは、A及びBレジスタ内のそれぞれの16
ビットデータを結合させる。「A」及び「B」ラッチの
各々は二つの16ビットデータワードを保持する。A及
びBレジスタは、図16及び19に示したステージ1の
ラッチである。加算器702t及び702bにおける加
算結果は、それぞれ、ラッチ703t及び703b(ス
テージ2のラッチ)内にラッチされる。ラッチ703t
におけるデータム即ちデータ項目は、同時に、ラッチ7
07tによってラッチされ、且つマルチプレクサ704
によって選択されたラッチ705内に格納されている定
数と乗算器706によって乗算される。ラッチ705内
の定数は、1,2cos(π/4),2cos(3π/
8)又は2cos(π/8)の何れかである。この乗算
結果は、ラッチ708t(ステージ3のラッチ)内にラ
ッチされる。
【0112】一方、ラッチ703t内のデータム乃至は
データ項目は、その時にデータ経路700b内へのデー
タムを転送するためにマルチプレクサ709によって選
択されるラッチ707tによってラッチすることが可能
である。2対1マルチプレクサ709は、転送のため
に、ラッチ708t内のデータムを交互に選択すること
が可能である。ラッチ703b内のデータムは、ラッチ
708b(ステージ3のラッチ)内にラッチされる前に
ラッチ707bによって遅延される。このラッチ708
b内のデータムは、マルチプレクサ709によってデー
タ経路700aから選択されたデータムに対して加算器
710において加算され次いでマルチプレクサ711b
を介してラッチ712b内にラッチされるか、又は2対
1マルチプレクサ711tを介してデータ経路700a
内に送給されラッチ712t(ステージ4のラッチ)に
よってラッチされるか、又はマルチプレクサ711bを
介してラッチ712b(ステージ4のラッチ)内に直列
的にラッチされるかの何れかとすることが可能である。
【0113】ラッチ708t内のデータムは、ラッチ7
12t内にラッチされるべくマルチプレクサ711tに
よって選択されるか、又は、上述した如く、マルチプレ
クサ709を介してデータ経路700b内にパスされる
ことが可能である。ラッチ712t及び712b内のデ
ータは、各々、それぞれラッチ714t又は714b内
へ2対1マルチプレクサ713t及び713bによって
選択されるそれぞれの反対のデータ回路700b及び7
00aへ通過することが可能である。一方、ラッチ71
2t及び712b内のデータは、マルチプレクサ713
t及び713bを介してラッチ714t又は714b内
にそれぞれのデータ経路700a及び700b内にラッ
チされることが可能である。データ経路700a内の一
連のラッチ715t乃至720t及びデータ経路700
b内の一連のラッチ715b乃至719bが一時的な格
納のために設けられている。これらのラッチ内のデータ
は、ラッチ719t及び718b内のデータがラッチ7
20t及び719b内に前進する場合に、各クロックサ
イクル毎に一つのラッチ前進され、ラッチ720t及び
719bの内容が廃棄される。データ経路700aにお
いては、5対1マルチプレクサ721tは、加算器72
3tの入力オペランドとして、ラッチ715t乃至71
8t又はラッチ714tからのデータの何れか一つを選
択することが可能である。5対1マルチプレクサ722
tは、データ経路700b内の加算器723b内への入
力オペランドとして、ラッチ714t,716t乃至7
18t又は720tの何れか一つにおけるデータムを選
択することが可能である。同様に、データ経路700b
においては、3対1マルチプレクサ722bは、データ
経路700aにおける加算器723d内への入力オペラ
ンドとして、ラッチ716b,717b,719bから
選択することが可能である。5対1マルチプレクサ72
1bは、加算器723bへの入力オペランドとして、ラ
ッチ715b乃至719bから1個のデータムを選択す
る。
【0114】加算器723t及び723bにおける加算
結果は、それぞれ、ラッチ724t及び724b(ステ
ージ5のラッチ)内にラッチされる。ラッチ724t内
のデータムは、定数1,2cos(π/8),2cos
(3π/8)又は2cos(π/4)の中から4対1マ
ルチプレクサ725によって選択されるラッチ726内
の定数に対して乗算器727によって乗算することが可
能である。一方、ラッチ724t内のデータムは、ラッ
チ728tにおける遅延の後ラッチ730内にラッチす
ることが可能である。その乗算結果は、ラッチ729t
(ステージ6のラッチ)内に格納される。2対1マルチ
プレクサ731tは、ラッチ729t内のデータムか又
はラッチ730内のデータムの何れかを、データ経路7
00b内の加算器732の入力オペランドとしてチャン
ネルさせることが可能である。ラッチ729t内のデー
タムも、2対1マルチプレクサ733tを介してラッチ
734t(ステージ7のラッチ)へ送給させることが可
能である。
【0115】ラッチ724b内のデータムは、ラッチ7
28b内へ通過され、それは、次いで、2対1マルチプ
レクサ731bを介して加算器732へ通過されるか、
又は2対1マルチプレクサ731tによって選択される
データムに対して加算されるか、又はラッチ729b
(ステージ6のラッチ)へ通過される。729b内の該
データムは、2対1マルチプレクサ733tによってデ
ータ経路700aへ通過されるか、又は2対1マルチプ
レクサ731bを介して加算器732へのオペランドと
して通過されるか、又は2対1マルチプレクサ731t
によって選択されるデータムに加算されるか、又は2対
1マルチプレクサ733bを介してラッチ734b(ス
テージ7のラッチ)へ通過させることが可能である。加
算器735t及び735bの各々は、ラッチ734t及
び734b内のデータを加算し、且つその加算結果をそ
れぞれラッチ736t及び736b(両方ともステージ
8のラッチ)へ送給する。ラッチ736t及び736b
内のデータは、ラッチ737t及び737bのそれぞれ
において1クロックの遅延の後、ラッチ738t及び7
38bのそれぞれを介してDCT/IDCTプロセサ1
06から出る。乗算器706及び727の各々は、乗算
を完了するのに二つのクロック周期を必要とする。各乗
算器は、第一クロック周期の終わりに中間値を格納する
ための内部ラッチを有しており、従って入力被乗数は、
該乗算器の入力端子において第一クロック周期の期間中
に安定であることが必要とされるに過ぎない。圧縮及び
脱圧縮の両方の期間において、各四つのクロック周期毎
に、新たな行又は列のデータ(八つの値)が一度に二つ
の値ずつDCT/IDCTプロセサユニット106へ供
給される。従って、DCT/IDCTプロセサユニット
106内の制御信号は四つのクロック周期毎に繰返す。
【0116】圧縮期間中のDCT/IDCTプロセサユニットの動作 DCT/IDCTプロセサユニット106の構成につい
て説明したので、次に、圧縮モードの場合には図16,
17,18を参照し、且つ脱圧縮モードの場合には図1
9,20,21を参照して、実行されるアルゴリズムに
ついて次に説明する。DCT/IDCTプロセサユニッ
ト106は、圧縮期間中においては1行(八つの値)の
画素データに対して一次元離散余弦変換を計算し、且つ
脱圧縮期間の間には、一列(八つの値)の画素データに
対して一次元逆離散余弦変換を計算する。図16は、圧
縮モード期間中における1行の入力データに対するDC
Tアルゴリズムのフローチャート表示である。図17
は、本発明に従って図16に示したDCTアルゴリズム
の実行を示している。図18は、図16に示した如く、
アルゴリズムを実行する場合の制御信号のタイミングを
示している。
【0117】DCT/IDCTプロセサ106(図1)
に入力される入力データは、ブロックメモリユニット1
03から、又はDCT行格納ユニット105の何れかか
ら選択され、何れかの供給源からの1行のデータがDC
T/IDCTプロセサ106へ供給されるシーケンス
は、DCT入力選択ユニット104の説明に関して上述
した。従って、クロック周期0において、要素x(2)
及びx(5)がラッチ701t内にラッチされ、且つ要
素x(1)及びx(6)がラッチ702b内にラッチさ
れる。次のクロック周期1において、y3=x(2)+
x(5)の加算結果、及びy7=x(1)−x(6)の
差が、それぞれ、ラッチ703t及び703b内にラッ
チされる。クロック周期2において、要素x(3)及び
x(4),x(0)及びx(7)がそれぞれラッチ70
1t及び701b内にラッチされる。同時に、データy
3及びy7がラッチ707t及び707b内に前進さ
れ、且つデータy3及びy7が、それぞれ、y6=x
(2)−x(5)の差及びy2=x(1)+x(6)の
和によってラッチ703t及び703bにおいて置換さ
れる。クロック周期3において、データy3及びy7
が、それぞれ、データw3及びw7としてラッチ708
t及び708bへ前進される。同時に、データy6及び
y2がラッチ707t及び707bへ前進される。ラッ
チ703t及び703bは、それぞれ、加算器702t
及び702bにおける演算結果であるy4=x(3)+
x(4)の和及びy8=x(0)−x(7)の差を有し
ている。クロック周期4において、データy4及びy8
がラッチ707t及び707bへ前進し、一方ラッチ7
03t及び703bはy5=x(3)−x(4)の差及
びy1=x(0)+x(7)の和を有している。乗算器
706は、データムy6に対して定数2cos(π/
4)を乗算して、ラッチ708tによってラッチされる
データムw6を形成し、且つデータムy2がw2として
ラッチ708bへ前進する。データムw3は、ラッチ7
12tへ前進し且つz3として再命名化される。同時
に、z7=w7−y6の差がラッチ712b内にラッチ
される。
【0118】注意すべきことであるが、データは継続し
てDCT/IDCTプロセサユニット106内に持込ま
れる。図20と異なり、図17はラッチ701t及び7
01b内に存在するクロック周期4−16に対するデー
タを示していないが、それは読者に対して明確にさせる
ためにその様に図示してある。実際に、四つのクロック
サイクル毎に、新たな行又は列(八つの値)がDCT/
IDCTプロセサ105内に持込まれる。これらの行又
は列は、DCT行格納ユニット105又はブロックメモ
リユニット103の何れかから交互に選択される。例え
ば、クロック周期0−3期間中にDCT/IDCTプロ
セサユニット106内に持込まれるデータがブロックメ
モリユニット103から選択される場合には、クロック
周期4−7期間中にDCT/IDCTプロセサユニット
106内に持込まれるデータはDCT行格納ユニット1
05からのものである。換言すると、パイプラインは常
に満杯状態とされる。
【0119】クロック周期5において、データy5及び
y1がラッチ707t及び707bへ前進し、データy
4及びy8がラッチ708t及び708bへ前進してそ
れぞれw4及びw8となり、データz3及びz7がそれ
ぞれラッチ714t及び714bへ前進し、且つデータ
w6及びw2がそれぞれラッチ712t及び712bへ
前進してz6及びz2となる。クロック周期6におい
て、データz3及びz7がそれぞれラッチ715t及び
715bへ前進し、データz6及びz2がそれぞれラッ
チ714t及び714bへ前進し、データムw4はラッ
チ712tへ前進し且つz4となり、且つz8=w8−
y5が加算器710における減算結果としてラッチ71
2b内にラッチされる。同時に、データムy1がw1と
してラッチ708b内にラッチされ、データムy5が定
数2cos(π/4)との乗算を乗算器706において
完了し且つラッチ708t内にラッチされる。クロック
周期7において、全てのデータはそれらのそれぞれのデ
ータ経路における次のラッチへ前進して、それぞれラッ
チ714t,715t,716tにおけるデータz4,
z6,z3となり、且つそれぞれラッチ714b,71
5b,716bにおけるデータz8,z2,z7とな
る。データw5及びw1は、それぞれ、データz5及び
z1としてラッチ712t及び712bへ前進する。ク
ロック周期8において、全てのデータはそれらのそれぞ
れのデータ経路において一つのラッチ前進し、従ってデ
ータz1乃至z8は各々データ経路700a内の一時的
ラッチ714t乃至720t又はデータ経路700b内
のラッチ714b乃至719bの一つの中に格納され
る。クロック周期9において、マルチプレクサ721t
及び722bが加算器723tの入力へのデータz5及
びz7を選択し、p7=z5+z7の加算結果がラッチ
724t内にラッチされる。同時に、マルチプレクサ7
22t及び721bが加算器723bに対するデータz
6及びz8を選択し、p8=z6+z8の加算結果がラ
ッチ724b内にラッチされる。
【0120】クロック周期10において、データp7及
びp8はそれぞれラッチ728t及び728bへ前進す
るが、乗算器721t,721b,722t,722b
が加算器723t及び723bに対するデータz1,z
2,z3,z4を選択し、従ってp3=z2−z3,p
4=z1−z4の演算結果がそれぞれラッチ724t及
び724b内にラッチされる。クロック周期11におい
て、それぞれp5=z7−z5及びp6=z8−z6の
加算器723t及び723bにおける結果は、ラッチ7
24t及び724b内にラッチされる。同時に、データ
p3及びp4はそれぞれラッチ728t及び728bへ
前進される。データp3は、乗算器727の入力端子に
存在する。データムp7は、クロック周期9において、
乗算器727の入力端子に存在しており、現在、定数2
cos(π/8)との乗算器727における乗算を完了
してデータr7を発生し、そのデータはラッチ729t
内にラッチされる。データムp7のコピーがラッチ73
0へ前進され、一方データムp8がr8としてラッチ7
29bへ前進される。クロック周期12において、加算
器723t及び723bの結果、即ちp1=z1+z4
及びp2=z2+z3がラッチ724t及び724b内
にラッチされる。データムp5及びp6がそれぞれラッ
チ728t及び728bへ前進される。データムp1も
乗算器727の入力端に存在している。データムp3は
ラッチ730へ前進され、一方データムp3は乗算器7
27における定数2cos(π/4)との乗算を完了し
てデータr3を発生し、そのデータはラッチ729t内
にラッチされる。データムp4はr4としてラッチ72
9bへ前進される。同時に、データムr7はs7として
ラッチ734tへ前進される。s8=r8−p7に対応
する加算器732の結果は、ラッチ734bにおいてラ
ッチされる。z5,z4,z6はJラッチ718t,7
19t,720tへ1個のラッチ前進され、一方z1及
びz8はKラッチ718b,719bへ1個のラッチ前
進され、一方z2は喪失される(ラッチ719bからシ
フト出力される場合にz2を受取るために使用可能なラ
ッチは存在しない)。
【0121】クロック周期13において、データp1及
びp2はそれぞれラッチ728t及び728bへ前進さ
れる。データム(データ)p1はクロック周期12にお
いて乗算器727の入力端に存在している。データp5
がラッチ730へ前進され、一方クロック周期11の期
間中に乗算器727の入力端に存在しているデータp5
は乗算器727において定数2cos(3π/8)との
乗算を完了してデータr5を発生し、それはラッチ72
9t内にラッチされる。データp6はr6としてラッチ
729bへ前進される。データr3は、s3としてマル
チプレクサ733tを介してラッチ734tへ前進され
る。加算器732におけるs4=r4−p3の演算結果
はラッチ734b内にラッチされる。最初のDCT出力
データX(1)=s7+s8及びX(7)=s8−s7
はそれぞれ加算器735t及び735bによって供給さ
れ且つそれぞれラッチ736t及び736b内にラッチ
される。データz5及びz4はそれぞれラッチ719t
及び720tへシフトされ、且つデータz1はラッチ7
19bへシフトされ、一方データz8はラッチ719b
外にシフトされて失われる。
【0122】クロック周期14において、ラッチ728
t内のデータp1はラッチ730へ前進され、データp
1はr1として乗算器727を介してラッチ729tへ
前進され、データp2はr2としてラッチ729bへ前
進され、且つデータr5はs5としてラッチ729tか
らラッチ734tへ前進される。ラッチ734bは加算
器732の結果であるs6=r6−p5を保持する。D
CT出力X(2)=s3+s4及びX(6)=s4−s
3がそれぞれラッチ736t及び736b内にラッチさ
れる。クロック周期13のX(1)及びX(7)の結果
はそれぞれラッチ737t及び737bへ前進される。
クロック周期15においてデータr1及びr2はそれぞ
れs1及びs2としてラッチ734t及び734bへ前
進される。DCT出力データX(3)=s5+s6及び
X(5)=s6−s5はそれぞれ加算器735t及び7
35bによって計算され且つそれぞれラッチ736t及
び736bにおいて与えられる。前の結果X(2),X
(6),X(1),X(7)がそれぞれラッチ737
t,737b,738t,738bへ前進される。
【0123】クロック周期16において、この行X
(0)=s1+s2及びX(4)=s1−s2の最後の
結果がそれぞれ加算器735t及び735bによって計
算され、且つそれぞれラッチ736t及び736b内に
ラッチされる。出力X(1)及びX(7)が、X
(0)...X(7)が最初のパスのDCT出力(行デ
ータ)であるか又は2番目のパスのDCT出力(列デー
タ)であるかに依存して、DCT行格納ユニット105
内に格納するか、又は量子化器ユニット108へ送給す
るために、DCT行/列分離器ユニット107の入力端
に与えられる。DCT出力X(3),X(5),X
(2),X(6)がそれぞれラッチ737t,737
b,738t,738bへ前進される。次の三つのクロ
ック周期において、X(2)−X(6),X(3)−X
(5),X(0)−X(4)のそれぞれの対が、DCT
行/列分離器ユニット107内に入力するためにDCT
/IDCTプロセサユニット106の出力データとして
相継いで得られる。図18は、該乗算器に対する制御信
号と該16個のクロック周期の期間中における図15の
アドレスを示している。各制御信号は四つのクロックサ
イクル毎に繰返される。
【0124】脱圧縮期間中におけるDCT/IDCTプロセサの動作 脱圧縮モードにおけるDCT/IDCTプロセサユニッ
ト106の動作について次に図15,19,20を参照
して説明する。クロック周期0において、データX
(1)及びX(7)が「A」及び「B」レジスタのそれ
ぞれの上部及び下部ラッチ(ラッチ701t及び701
b)において供給される。データX(1)及びX(7)
は、上述した如く、量子化器ユニット108又はDCT
行格納ユニット105の何れかからDCT入力選択ユニ
ット104によって選択される。クロック周期1におい
て、データX(3)及びX(5)は、それぞれ、ラッチ
701t及び701bの上部及び下部ラッチの両方にお
いて供給される。同時に、ラッチ703t及び703b
は、それぞれy8=X(1)−X(7)及びy2=X
(1)+X(7)をラッチする。クロック周期2におい
て、データX(2)及びX(6)が、最後の二つのクロ
ック周期0−1からの入力データと同一の態様で、ラッ
チ701t及び701bの上部及び下部ラッチの両方に
供給される。演算結果y8及びy2はラッチ707t及
び707bへ前進しており、且つラッチ703t及び7
03bは加算器702t及び702bからのそれぞれの
演算結果y6=X(3)−X(5)及びy4=X(3)
+X(5)をラッチする。
【0125】クロック周期3において、ラッチ701t
及び701bの上部及び下部ラッチの両方における入力
データはそれぞれX(0)及びX(4)である。演算結
果y7=X(2)−X(6)及びy3=X(2)+X
(6)はラッチ703t及び703bにラッチされる。
同時に、クロック周期1において乗算器706の入力端
に存在していたデータy8は、乗算器706によってw
8として定数2cos(π/8)でスケールされ、且つ
ラッチ708t内にラッチされ、一方データy2は前進
され且つw2としてラッチ708b内に格納される。デ
ータy6はクロック周期3の期間中に乗算器706への
入力として機能した後にラッチ707tへ転送される。
データy4はラッチ707bへ転送される。
【0126】クロック周期4において、w2はz2とし
てラッチ712tへ前進され、且つ加算器710は、w
8からw2を減算してz8を形成し、それはラッチ71
2b内にラッチされる。データy4はw4としてラッチ
708bへ前進され、且つクロック周期2において乗算
器706の入力端に存在しているデータy6は定数2c
os(3π/8)と乗算器706によってスケールされ
てw6を発生し、それはラッチ708t内にラッチされ
る。データy7及びy3はそれぞれラッチ707t及び
707bへ前進される。ラッチ703t及び703bは
それぞれ、演算結果y5=X(0)−X(4)及びy1
=X(0)+X(4)を収容している。データy5は現
在乗算器706へ入力される。
【0127】クロック周期5において、z2及びz8は
ラッチ714t及び714bへ前進され、一方w4は2
対1マルチプレクサ711tを介してデータ経路700
aへクロスオーバーし且つz4としてラッチ712tに
ラッチされる。加算器710はw6からw4を減算し、
その結果はラッチ712bにおいてz6としてラッチさ
れる。同時に、データy7は2cos(π/4)によっ
てスケールされてデータw7となり、次いでラッチ70
8tへ前進される。データy3はw3として前進され且
つラッチ708b内に格納され、且つデータy5及びy
1はそれぞれラッチ707t及び707bへ前進され
る。クロック周期6において、データy5(1でスケー
ルされている)及びy1がそれぞれw5及びw1として
ラッチ708t及び708bへ前進される。データw3
はデータ経路700aへクロスオーバーし且つラッチ7
12tにおいてz3としてラッチされ、且つ加算器71
0はw7からw3を減算してz7を発生し、それはラッ
チ712bにラッチされる。データz6はラッチ712
bからマルチプレクサ713tを介してラッチ714t
へ転送される。データz4はラッチ712tからマルチ
プレクサ713bを介してラッチ714bへ転送され
る。データz2はラッチ714tからラッチ715tへ
前進され、一方データz8はラッチ714bからラッチ
715bへ前進される。クロック周期7において、デー
タw5及びw1はそれぞれz5及びz1としてラッチ7
12t及び712bへ前進され、且つデータz3,z
7,z6,z4,z2,z8はそれぞれラッチ714
t,714b,715t,715b,716t,716
bへ前進される。クロック周期8において、データz
5,z1,z3,z7,z6,z4,z2,z8がそれ
ぞれラッチ714t,714b,715t,715b,
716t,716b,717t,717bへ前進され
る。
【0128】クロック周期9において、データz5,z
1,z3,z7,z6,z4,z2,z8がそれぞれラ
ッチ715t,715b,716t,716b,717
t,717b,718t,718bへ前進される。同時
に、マルチプレクサ721t及び722bがそれぞれデ
ータz2及びz4を加算器723t内へ選択して演算結
果p4=z2−z4を発生し、それはラッチ724t内
にラッチされる。同様に、マルチプレクサ722t及び
721bがそれぞれ加算器723b内へのデータz5及
びz7を選択して演算結果p5=z5−z7を発生し、
その演算結果はラッチ724b内にロードされる。クロ
ック周期10において、マルチプレクサ721t及び7
22bはそれぞれ加算器723t内へのデータz5及び
z7を選択して演算結果p7=z5+z7を発生し、そ
の演算結果はラッチ724t内にロードされる。同時
に、マルチプレクサ722t及び721bはそれぞれ加
算器723b内へのデータz6及びz8を選択して演算
結果p8=z6+z8を発生し、その演算結果は次いで
ラッチ724b内にロードされる。ラッチ724t,7
24bからのデータp4及びp5はそれぞれラッチ72
8t及び728bへ前進される。ラッチ715t−71
8t内のデータz5,z3,z6,z2はそれぞれラッ
チ716t−719tへ1個のラッチ前進される。同様
にデータz1,z7,z4,z8はそれぞれラッチ71
6b−719bへ前進される。
【0129】クロック周期11において、加算器723
t及び723bにおける演算結果p6=z8−z6及び
p3=z1−z3がラッチ724t及び724bにラッ
チされ、そのオペランドz8,z6,z1,z3はそれ
ぞれラッチ722b,721t,721b,722tに
よって選択される。データp7及びp8はそれぞれラッ
チ728t及び728bへ前進される。同時に、クロッ
ク周期9において乗算器727への入力として供給され
たp4は乗算器727によって定数2cos(π/4)
とスケールされ且つラッチ729tにおいてr4として
ラッチされ、且つp5はr5としてラッチ728bから
ラッチ729bへ前進される。ラッチ716t−719
t及び716b−719bにおけるデータの各々は、そ
れぞれラッチ717t−720t及び717b−720
bへ1個のラッチ前進される。ラッチ719bにおける
データz8は廃棄される。クロック周期12において、
データp7及びp8はそれぞれr7及びr8としてラッ
チ729t及び729bへ前進される。データp6及び
p3はそれぞれラッチ728t及び728bへ前進され
る。データr5はs5として乗算器733tを介してラ
ッチ734tへ前進され、r4はデータ経路700bへ
クロスオーバーし且つ加算器732によってr8を減算
してs4を発生し、それはラッチ734bにラッチされ
る。同時に、データz1及びz3がそれぞれマルチプレ
クサ722b及び721tによって加算器723t内へ
選択されて演算結果p1=z1+z3を発生し、その演
算結果はラッチ724t内にラッチされる。同様に、デ
ータz2及びz4がそれぞれ加算器723b内へマルチ
プレクサ722t及び721bによって選択されて演算
結果p2=z2+z4を発生し、その演算結果はラッチ
724b内にラッチされる。
【0130】クロック周期13において、データp1及
びp2はそれぞれラッチ728t及び728bへ前進さ
れる。クロック周期11の期間中乗算器727への入力
として機能としたデータp6は乗算器727によって定
数2cos(π/4)でスケールされ且つラッチ729
tにおいてr6としてラッチされ、且つデータp3はr
3としてラッチ728bからラッチ729bへ前進され
る。データr7及びr8はそれぞれs7及びs8として
ラッチ734t及び734bへ前進される。加算器73
5t及び735bは、クロック周期12においてそれぞ
れラッチ734t及び734b内に存在するs5及びs
4に関して演算を行なってそれぞれのIDC演算結果x
(2)=s4+s5及びx(5)=s5−s4を発生
し、それらの演算結果はそれぞれラッチ736t及び7
36b内にラッチされる。クロック周期14において、
データp1及びp2はr1及びr2としてラッチ729
t及び729bへ前進される。データr6はマルチプレ
クサ731tを介してデータ経路700bへクロスオー
バーし、次いで加算器732によってr2を減算して演
算結果s6を発生し、それはラッチ734bによってラ
ッチされる。データr3はマルチプレクサ733tを介
してデータ経路700aヘクロスオーバーし且つs3と
してラッチ734tによってラッチされる。IDCT演
算結果x(1)=s7+s8及びx(6)=s7−s8
はそれぞれ加算器735t及び735bによって計算さ
れ且つそれぞれラッチ736t及び736b内にラッチ
される。前の演算結果x(2)及びx(5)はそれぞれ
ラッチ737t及び737bへ前進される。
【0131】クロック周期15において、r1及びr2
はs1及びs2としてそれぞれラッチ734t及び73
4bへ前進される。IDCT演算結果x(3)=s3+
s6及びx(4)=s3−s6はそれぞれ加算器735
t及び735bによって計算され且つラッチ736t及
び736bへラッチされる。前の結果x(1),x
(6),x(2),x(5)がラッチ737t,737
b,738t,738bへ前進される。クロック周期1
6において、IDCT演算結果x(0)=s1+s2及
びx(7)=s1−s2はそれぞれ加算器735t及び
735bによって計算され且つラッチ736t及び73
6b内にラッチされる。ラッチ738t及び738b内
のIDCT演算結果x(2)及びx(5)はDCT行/
列分離器ユニット107へラッチされる。次いで、x
(2)及びx(5)は、そのIDCT結果が最初のパス
であるか又は2番目のパスの結果であるかに依存して、
ブロックメモリユニット103か又はDCT行格納ユニ
ット105へDCT行/列分離器によってチャンネル動
作される。IDCT出力対x(1)−x(6),x
(3)−x(4),x(0)−x(7)が次の三つのク
ロック周期においてDCT行/列分離器ユニット107
において得られる。図21は、脱圧縮期間中におけるD
CT/IDCTプロセサ106の加算器及びマルチプレ
クサに対する制御信号を示している。これらの制御信号
も四つのクロックサイクル毎に繰返される。
【0132】DCT行/列分離器ユニット107の構成及び動作 DCT行/列分離器は、DCT/IDCTプロセサ10
6の出力を、圧縮期間中及び脱圧縮期間中の両方におい
て、二つのデータストリームに分離する。一方のデータ
ストリームは、DCT又はIDCTの最初のパスの中間
結果を表わしている。他方のデータストリームはDCT
又はIDCTの2番目のパスの最終結果を表わしてい
る。DCT又はIDCTの最初のパスの中間結果は、一
時的記憶のためにDCT行格納ユニット105内に送給
され且つDCT又はIDCTの2番目のパスのために待
機される。DCT又はIDCTの2番目のパスの最終結
果を収納する他方のストリームは、圧縮又は脱圧縮の何
れが実行されるかに依存して、量子化器108又はDC
Tブロックメモリ103へ送給される。DCT行/列分
離器は、4:2:2データフォーマットに対して最適化
されており、従って各クロック周期毎に16ビットデー
タが量子化器108又はDCTブロックメモリ103へ
送給され、且つ1行又は1列(八つの値)の中間結果が
8個のクロック周期毎に四つのクロック周期において供
給される。
【0133】次に、DCT行/列分離器ユニット(DR
CS)107の構成及び動作について図22,23,2
4を参照して説明する。図22は、DRCS107に対
する概略図を示している。図示した如く、二つの16ビ
ットデータが、DCT/IDCTプロセサユニット10
6内のラッチ738t及び738bを介して、各クロッ
ク周期毎にDRCSユニット107内に供給される。従
って、1行又は1列のデータが四つのクロックサイクル
毎にDCT/IDCTプロセサユニット106によって
供給される。入力データは三つのラッチ対グループ、即
ちDCT行格納ラッチ対(801t,801b−804
t,804b、第一量子化器ラッチ対805t,805
b−808t,808b)又は第二量子化器ラッチ対
(811t,811b−814t,818b)の一つへ
チャンネル動作される。これらのラッチ対の各々は二つ
の16ビットラッチから構成されている。例えば、ラッ
チ対801はラッチ801t及び801bから構成され
ている。DCT行格納ラッチ対801t,801b−8
04t,804bはDCT又はIDCTの第一パスの結
果を保持し、従ってこれらのラッチの内容は二次元DC
T又はIDCTの2番目のパスのためにDCT行格納ユ
ニット105へ送給される。マルチプレクサ809t及
び809bは、DCT行格納ユニット105へ出力する
ために、それぞれラッチ801t−804t及び801
b−804bの中から二つのラッチの内容を選択する。
【0134】一方、第一及び第二量子化器ラッチ対(8
05t及び805b−808t及び808b,811t
及び811b−814t及び814b)内にチャンネル
動作されたデータは、圧縮期間中においては量子化器ユ
ニット108へ送給され又脱圧縮期間中においてはブロ
ックメモリユニット103へ送給される。なぜならば、
この様なデータは二次元DCT又はIDCTを完了して
いるからである。4対1マルチプレクサ810t及び8
10bは、ラッチ805t−808t及び805b−8
08b内に収納されている二つの16ビットデータを選
択する。同様に、4対1マルチプレクサ815t及び8
15bはラッチ811t−814t及び811b−81
4b内に収納されている二つの16ビットデータを選択
する。四つの4対1マルチプレクサ810t,810
b,815t,815bによって選択された四つの16
ビットデータは、再度、量子化器ユニット108へ出力
するために4対1マルチプレクサ816によって選択さ
れる。
【0135】圧縮期間中において、第一及び第二量子化
器ラッチ対(805t及び805b−808t及び80
8b,811t及び811b−814t及び814b)
は量子化器108への連続的な出力16ビットデータス
トリームを供給するための二重バッファ構成を形成す
る。最初の量子化器ラッチ対(805t,805b−8
08t,808b)がロードされると、第二量子化器ラ
ッチ対(811t,811b−814t,814b)が
量子化器ユニット108への出力のために読取られる。
4対1マルチプレクサ810t及び810bは、ラッチ
805t−808t及び805b−808b内に収納さ
れている二つの16ビットデータを選択する。同様に、
4対1マルチプレクサ815t及び815bはラッチ8
11t−814t及び811b−814b内に収納され
ている二つの16ビットデータを選択する。四つの4対
1マルチプレクサ810t−810b,815t,81
5bによって選択された四つの16ビットデータは、再
度、量子化器ユニット108への出力のために4対1マ
ルチプレクサ816によって選択される。しかしなが
ら、脱圧縮期間中において、第二量子化器ラッチユニッ
ト(811t及び811b−814t及び814b)は
使用されない。DCT/IDCTプロセサユニット10
6からの入力データストリームは第一量子化器ラッチ対
(805t,805b−808t,808b)内にラッ
チされる。4対1マルチプレクサ817t及び817b
は、ブロックメモリユニット103への出力のためにク
ロック周期当り二つの16ビットデータを選択する。こ
れらの選択されたデータの各々の最初の12ビットのみ
が有意性があるものと考えられるので、各選択されたデ
ータから四つの最小桁ビットは廃棄される。従って、二
つの12ビットデータがクロック周期毎にブロックメモ
リユニット103へ送給される。
【0136】圧縮期間中におけるDCT行/列分離器ユニットの動作 図23は、圧縮期間中におけるDCT行/列分離器ユニ
ット107(図1)に対するデータフローを示してい
る。クロック周期0−3において、16ビットデータX
(1)−X(7),X(2)−X(6),X(3)−X
(5),X(0)−X(4)の最初のパスのDCT対が
クロック周期当り二つの16ビットデータの割合で、D
CT/IDCTプロセサユニット106内のラッチ73
8t及び738bから相継いで与えられる。図23に示
した如く、クロック周期1−4の期間中において、1対
のデータが、ラッチ801t−804t及び801b−
804bの中の二つのラッチ内へ各クロック周期の終わ
りにおいてラッチ738t及び738bにおいて与えら
れると、別々にラッチされる。従って、その結果、X
(2)及びX(1),X(6)及びX(7),X(0)
及びX(3),X(4)及びX(5)がクロック周期4
の終了までに、それぞれラッチ対801t及び810
b,802t及び802b,803t及び803b,8
04t及び804b内に格納される。
【0137】又、クロック周期0−7の期間中におい
て、前にラッチ対811t,811b−814t,81
4b内にロードされたデータは、クロック周期当り16
ビットデータの割合で第二量子化器ラッチ対811t,
811b−814t,814bから出力される。これら
のデータは、最後の16クロック周期サイクルのクロッ
ク周期12−15及び現在の16クロック周期サイクル
のクロック周期0においてラッチ対811−814内に
ロードされたものである。量子化器ラッチ対805t,
805b−808t,808b及び811t,811b
−814t,814bのローディング及び出力について
以下に説明する。
【0138】クロック周期4−7の期間中、クロック周
期1−4においてロードされたラッチ対801t,80
1b−804t,804b内の最初のパスのデータは、
X(0)−X(1),X(2)−X(3),X(4)−
X(5),X(6)−X(7)の順番で、クロック周期
当り二つの16ビットデータの割合で、DCT行格納ユ
ニット103へ出力される。同時に、2番目のパスの1
6ビットデータ対Y(1)−Y(7),Y(2)−Y
(6),Y(3)−Y(5),Y(0)−Y(4)が、
各クロック周期毎に一対の二つのデータの割合で行/列
分離器107へ転送するためにDCT/IDCTプロセ
サユニット106のラッチ738t及び738bに与え
られる。これらのデータは、クロック周期5−8の期間
中に、第一量子化器ラッチ対805t,805b−80
8t,808b内に相継いで且つ順番にラッチされる。
【0139】クロック周期8−11の期間中、DCT/
IDCTプロセサユニット106から到着するデータZ
(0)−Z(7)は最初のパスのDCTデータである。
これらのデータZ(0)−Z(7)は、クロック周期0
−3期間中のX(0)−X(7)データ及びクロック周
期4−7期間中のY(0)−Y(7)データと同一の順
番で到着する。クロック周期4−7期間中に到着し且つ
クロック周期5−8期間中にラッチ対805t,805
b−808t,808b内にラッチされた2番目のパス
のデータY(0)−Y(7)は、今や、クロック周期当
り16ビットデータの割合で且つクロック周期8で開始
するY(0),Y(1),...Y(7)の順番で、マ
ルチプレクサ810t,810b及びマルチプレクサ8
16によって量子化器ユニット108に対する出力のた
めに個別的に選択される。Y(0)−Y(7)の読出し
は、Y(7)が量子化器108への出力データとして供
給されるクロック周期15まで継続する。
【0140】クロック周期12−15の期間中、DCT
/IDCTプロセサユニット106から到着するデータ
W(0)−W(7)は2番目のパスのデータである。こ
れらのデータW(0)−W(7)は、クロック周期13
−16期間中に第二量子化器ラッチ対811t,811
b−814t,814bへチャンネル動作され、且つデ
ータY(0)−Y(7)に対して上述した如き順番で個
別的にラッチされる。クロック周期12−15の期間
中、クロック周期8−11期間中に受取られ且つクロッ
ク周期9−12期間中にラッチ対801t,801b−
804t,804b内にラッチされたデータZ(0)−
Z(7)がクロック周期4−7の期間中にX(0)−X
(7)に対して説明したのと同一の順番でDCT行格納
ユニット105へ出力される。W(0)−W(7)デー
タは、次の8個のクロック周期(図23におけるクロッ
ク周期16−23に対応する次の16クロック周期サイ
クルにおけるクロック周期0−7)においてマルチプレ
クサ815t,815b,816によって選択される。
DCT/IDCTプロセサ106が1番目のパスデータ
及び2番目のパスデータの一つの行/列を交互に供給す
るので、ラッチ801t及び801b−804t及び8
04b,805t及び805b−808t及び808
b,811t及び811b−814t及び814bは、
8クロックサイクル毎に量子化器108へ連続的な16
ビット出力ストリームを供給しDCT行格納ユニット1
05へ一つの行/列の出力データを供給する二つのパイ
プラインを形成する。DCT行/列分離器ユニット10
7における4:2:2入力データフォーマット条件下に
おいてはアイドル期間は存在しない。
【0141】脱圧縮期間中におけるDCT行/列分離器
ユニットの動作 図24は、脱圧縮期間中におけるDCT行/列分離器ユ
ニット107に対するデータフローを示している。クロ
ック周期0−3の期間中、16ビットの最初のパスのI
DCTデータ対が、クロック周期当り二つの16ビット
データの割合で且つX(2)−X(5),X(1)−X
(6),X(3)−X(4),X(0)−X(7)の順
番でDCT/IDCTプロセサユニット106のラッチ
738t及び738bに与えられる。各データは、ラッ
チ801t−804t及び801b−804bの一つの
中にラッチされるが、その場合、X(0)及びX
(1),X(2)及びX(3),X(4)及びX
(5),X(6)及びX(7)は、クロック周期1−4
の期間中に、ラッチ対801t,801b,804t,
804b内にラッチされる。クロック周期0−3の期間
中、最後の16クロック周期サイクルのクロック周期1
3で開始され且つ現在の16クロック周期サイクルのク
ロック周期0で終了する四つのクロック周期の期間中に
DCT行/列分離器ユニット107内にラッチされた2
番目のパスのIDCTデータは、4対1マルチプレクサ
817t及び817bによってクロック周期当り二つの
12ビットデータの割合でブロックメモリユニット10
3へ出力され、前述した如く16ビットIDCTデータ
の下位四つのビットは切捨てられる。2番目のパスのI
DCTデータのローディング及び転送についてはクロッ
ク周期4−11に関して以下に説明する。
【0142】クロック周期4−7期間中において、ラッ
チ対801t及び801b−804t及び804b内の
最初のパスのIDCTデータは、ラッチ対801t,8
01b−804t,804bの順番に選択されて、クロ
ック周期当り二つの16ビットデータの割合でDCT行
格納ユニット105へ送給される。同時に、16ビット
の2番目のパスのIDCTデータが、Y(2)−Y
(5),Y(1)−Y(6),Y(3)−Y(4),Y
(0)−Y(7)の順番でクロック周期当り二つの16
ビットデータの割合でDCT/IDCTプロセサユニッ
ト106内のラッチ738t及び738bに与えられ
る。これらの16ビットデータ対は、クロック周期5−
8の期間中に、ラッチ対805t及び805b−808
t及び808b内に相継いで順番にラッチされる。クロ
ック周期8−11の期間中、最初のパスのIDCTデー
タZ(0)−Z(7)が、クロック周期0−3の期間中
におけるX(0)−X(7)に対して説明した順番でラ
ッチ738t及び738bに与えられる。データZ
(0)−Z(7)がX(0)−X(7)の場合に説明し
たのと同一の順番でラッチ対801−804内にラッチ
される。同時に、クロック周期5−8期間中にラッチさ
れた2番目のパスのIDCTデータY(0)−Y(7)
が、Y(0)−Y(1),Y(2)−Y(3),Y
(4)−Y(5),Y(6)−Y(7)の順番でクロッ
ク周期当り二つの12ビットデータの割合で4対1マル
チプレクサ817t及び817bにおいて出力される。
【0143】クロック周期12−15の期間中におい
て、最初のパスのIDCTデータZ(0)−Z(7)
が、クロック周期4−7の期間中にX(0)−X(7)
に対して説明した順番でDCT行格納ユニット105へ
出力される。同時に、2番目のパスのIDCTデータW
(0)−W(7)が、クロック周期4−7の期間中にY
(0)−Y(7)に対して説明したのと同一の態様でD
CT/IDCTプロセサ106から到着する。データW
(0)−W(7)は、クロック周期8−11の期間中の
Y(0)−Y(7)に対して説明したのと同一の態様
で、次の四つのクロック周期(次の16クロック周期サ
イクルにおけるクロック周期0−3)においてブロック
メモリユニット103へ出力される。DCT/IDCT
プロセサ106は、最初のパス及び2番目のパスのデー
タの一つの行/列を交互に供給するので、ラッチ801
t及び801b−804t及び804b、及び805t
及び805b−808t及び808bは、DCTブロッ
ク格納ユニット103へ連続的な12ビット出力ストリ
ームを供給し且つ8クロックサイクル毎にDCT行格納
ユニット105へ一つの行/列の出力データを供給する
二つのパイプラインを形成する。4:2:2出力データ
フォーマット条件下では、DCT行/列分離器ユニット
107内にはアイドル期間が存在しない。
【0144】量子化器ユニット108の構成及び動作 次に量子化器ユニット108の構成及び動作について図
25を参照して説明する。量子化器ユニット108は、
周波数マトリクスの各要素に対して乗算を実行する。こ
れは、さらなる圧縮のために周波数マトリクスの種々の
周波数成分(構成要素)をスケールするためのデジタル
信号処理ステップである。図25は量子化器ユニット1
08の概略を示している。圧縮期間中において、16ビ
ットデータのストリームが、バス98を介してDCT行
/列分離器ユニット107から到着する。データは、
又、ホストバス115の一部であるバス926からホス
トコンピュータの制御下でロードさせることが可能であ
る。2対1マルチプレクサ904は、バス918及び9
26の一方からクロック周期当り16ビットのデータを
選択し且つ該データをデータバス927上に送る。脱圧
縮モード期間中においては、8ビットデータがバス91
9を介してジグザグユニット109から到着する。各8
ビットデータは、脱圧縮用の16ビットデータを形成す
るためにバレルシフタ907によってシフトされ且つス
ケールされる。
【0145】圧縮か又は脱圧縮の何れが実行されている
かに従って、2対1マルチプレクサ908は、バレルシ
フタの出力データ(脱圧縮期間中)か、又はバス927
からの出力データ(圧縮期間中)の何れかを選択する。
従って、マルチプレクサ908によって選択され且つバ
ス920上に出力される16ビットデータは、レジスタ
911内にラッチされ、該レジスタは該データを乗算器
912への入力オペランドとして格納する。乗算器91
2への他方の入力オペランドは、レジスタ910内に格
納されており、該レジスタは後に説明するYU_tab
le108−1から読取った量子化(圧縮)又は脱量子
化(脱圧縮)係数を有している。アドレス発生器902
は、データタイプ(Y,U又はV)及び8×8周波数マ
トリクス内の入力データの位置に従って、YU_tab
le108−1から量子化又は脱量子化係数を検索する
ためのアドレスを発生する。同期は、周波数マトリクス
内のDC項(要素0)を外部データ同期信号と同期させ
ることによって達成される。コンフィギュレーションレ
ジスタ901は、VBIU102において受取られるデ
ータフォーマットの情報を供給し、各入力データとの適
切な同期を与える。
【0146】YU_table108−1は64×16
×2スタティックランダムアクセスメモリ(SRAM)
である。即ち、二つの64値量子化又は脱量子化マトリ
クスが、このSRAMアレイ108−1内に収納されて
おり、各要素は16ビット幅である。圧縮期間中、YU
_table108−1はY(ルミナンス)タイプのデ
ータに対する64個の16ビット量子化係数を有すると
共に、UV(クロミナンス)タイプのデータに対し64
個の共通の16ビット量子化係数を有している。同様
に、脱圧縮期間中、YU_table108−1は、Y
タイプのデータに対して64個の16ビット脱量子化係
数を有しており、且つU又はVタイプのデータに対して
64個の16ビット脱量子化係数を有している。各量子
化又は脱量子化係数は、周波数マトリクス内の一つの要
素に特定的に付与され、且つU,Vタイプのデータ(ク
ロミナンス)は、同一の組の量子化又は脱量子化係数を
共用する。YU_table108−1は、ホストバス
115の一部でもあるバス935を介してホストコンピ
ュータによる直接的な読取り/書込みのためにアクセス
することが可能である。本実施例においては、YU_t
able108−1の内容は、圧縮又は脱圧縮動作の開
始前に、ホストコンピュータによってロードされる。例
えば電気的にプログラム可能なリードオンリーメモリ
(EPROM)などのような非揮発性メモリ素子が与え
られる場合、これらのテーブルの永久的なコピーを与え
るようにすることが可能である。リードオンリーメモリ
(ROM)は、そのテーブルが固定的である場合に使用
することが可能である。ホストコンピュータが量子化又
は脱量子化定数をロードすることが可能であるので、ホ
ストコンピュータが量子化及び脱量子化パラメータを調
節することの柔軟性を与えている。量子化及びその他の
フィルタ機能を該量子化定数内に結合させることによ
り、その他のデジタル信号処理目的を達成することも可
能である。しかしながら、量子化テーブルの非揮発性又
は永久的なコピーは、毎日の(ターンキー)動作にとっ
て適している。なぜならば、スタートアップの手順が著
しく簡単化されるからである。ホストバスがYU_ta
ble108−1をアクセスする場合、外部アドレスバ
ス925が7ビットアドレス(Y及びU又はVタイプの
データに対して二つの64係数テーブル内の128個の
エントリの何れかをアドレスする)を有しており、且つ
データバス935は16ビットの量子化又は脱量子化係
数を有している。2対1マルチプレクサ903は、ホス
トコンピュータの要求により、そのメモリアクセスが内
部的に発生されたアドレス(アドレス発生器902によ
って発生)によるものであるか又はバス925(バス1
15の一部でもある)上の外部的に与えられたアドレス
によるかを選択する。
【0147】量子化又は脱量子化係数は、レジスタ90
6内に読込まれる。2対1マルチプレクサ909は、1
6ビット全部が乗算器オペランドレジスタ910へ供給
されるか、又はそのデータの最大桁ビット(ビット1
5)及び二つの最小桁ビット(ビット0及び1)を0に
セットさせるかの何れかを選択する。脱量子化係数(脱
量子化期間中)のビット15乃至13は、更に、バレル
シフタ907へ供給されて、バス919から入力される
オペランドのスケーリングを与える。脱量子化係数にお
けるスケーリングファクタをエンコードすることによ
り、任意の浮動小数点表示における如く、量子化データ
のダイナミックレンジが拡張される。乗算器912は、
オペランドレジスタ910及び911内のオペランドを
乗算し、且つ最大桁ビットを廃棄した後に、ビット30
で開始するレジスタ913内の32ビットの結果の16
個の次の最大桁ビットを保持する。この16個のビット
の表示は、この乗算結果のダイナミックレンジを実質的
に表わすために十分なものであることが経験的に確かめ
られている。本実施例においては、乗算器912は、2
ステージ(段)パイプライン型乗算器として実現されて
おり、従って16ビット乗算演算は二つのクロック周期
で行なわれるが、その結果は各クロック周期において与
えられる。
【0148】結果レジスタ913内の16ビットデータ
は、ホストバス923を介してホストコンピュータによ
って採取することが可能である。結果レジスタ913内
の16ビット結果の13ビットは、丸め及び制限器ユニ
ット914へ供給されて、更に量子化器出力値のレンジ
を制限する。一方、脱圧縮期間中に、結果レジスタ91
3の16ビット結果の全体を、バスドライバ916によ
って増幅した後に、バス922へ供給する。脱圧縮期間
中、画素マトリクスの開始を表わすdata_sync
信号がVBIU102によって与えられる。圧縮期間
中、外部ビデオデータ源は、data−sync信号を
供給する。量子化及び脱量子化係数は、量子化及び脱量
子化動作の開始前に、YU_table108−1内に
ロードされる。コンフィギュレーションレジスタ901
内のインターバル同期カウンタは、data_sync
信号と量子化器108の動作との間の同期を確保するた
めに、YU−table108−1内へのメモリアクセ
スのシーケンス動作を与える。該アクセスのタイミング
は、DCTユニット103−107に関して先に詳細に
説明した如く、入力データフォーマットに依存する。圧
縮期間中、バス918上に入力されるデータ及びYU_
table108−1から読取られる対応する量子化器
係数は、乗算器912に対するオペランドとしてレジス
タ911及び910内に同期的にロードされる。二つの
クロック周期の後、乗算動作からの結果のビット30乃
至15が与えられ且つ結果レジスタ913によってラッ
チされる。
【0149】次いで、丸め・制限器914が丸め(即
ち、切捨て)のために、結果レジスタ913内のデータ
のビット15(ビット31が最大桁ビット)へ1を加算
する。この丸め乃至は切捨て動作の結果得られるデータ
がビット31乃至24において全て「1」又は「0」で
ない場合には、最大又は最小の表示可能な値を超えてい
る。次いで、ビット23乃至16が、該データが正又は
負であるか否かを表わすビット30に依存して、10進
数127又は−127に対応する16進数7f乃至81
へセットされる。そうでない場合には、その結果は許容
されたダイナミックレンジ内のものである。ビット23
乃至16は、8ビット結果として丸め・制限器914に
よって出力され、それはジグザグユニット109へ送給
するためにレジスタ915によってラッチされる。一
方、脱圧縮期間中、レジスタ913内の16ビット結果
は、バス922上をIDCT用のDCT入力選択ユニッ
ト104へその全体が供給される。
【0150】脱圧縮期間中、VBIU102は、同期ユ
ニット102−1(図1)におけるdata−sync
同期信号を供給する。データは、ジグザグユニット10
9からバス919上にクロック周期当り一つのデータの
割合で、8ビットストリームとして入力される。脱量子
化のための適切なスケーリングを実行するために、バレ
ルシフタ907は、最初に、ジグザグユニット109か
ら受取ったデータへ四つのゼロを取付け、次いで最大桁
ビットを四つのビット符号拡張して16ビットの中間結
果を発生する。このことは、ジグザグユニット109か
ら受取ったデータに16を乗算することに等しい。この
セクションにおいて先に説明した如く、脱量子化係数に
おいてエンコードされたスケーリングファクタに従っ
て、この16ビットの中間結果は、次いで、ジグザグユ
ニット109から受取られたデータに対応する16ビッ
ト脱量子化係数のビット15乃至13によって示される
ビット数だけシフトされる。このバレルシフタ907か
らのシフトされた結果は、16×16ビット乗算に対す
るオペランドとしてレジスタ911内にロードされる。
【0151】この16ビット量子化係数は、YU_ta
ble108−1からレジスタ906内に読取られる。
最初の三つのビット15乃至13は、前述した如く、バ
レルシフタ907内の16ビットの中間結果をシフトす
るためのビット数を指示するために使用される。脱量子
化係数の13個のビット12乃至0は、レジスタ911
内のデータへ乗算されるべきレジスタ910内のオペラ
ンドのビット14乃至2を形成している。該乗算器の他
のビット、即ちビット15,1及び0は0にセットされ
る。圧縮の場合における如く、レジスタ910及び91
1内の内容が関与する乗算演算の32ビットの結果のう
ちの16個のビット30乃至15はレジスタ913内に
ロードされる。しかしながら、圧縮の場合と異なり、レ
ジスタ913の16ビット内容は、丸め・制限器ユニッ
ト914による修正なしで、バッファ916を介してバ
ス922上のDCT入力選択ユニット104へ選択され
る。
【0152】ジグザグユニットの構成及び動作 次に、ジグザグユニット109の機能及び動作について
図26を参照して説明する。ジグザグユニット109
は、周波数マトリクス内の要素の順番を、後述するラン
長表示を使用するデータ圧縮の場合に適したフォーマッ
トへ再配列させる。図26は、ジグザグユニット109
の概略図である。圧縮期間中、ジグザグユニット109
は、1個の完全な64個の要素からなるマトリクスが蓄
積されるまで、量子化ユニット108からシーケンシャ
ルな順番(即ち、行毎)における出力を蓄積し、次いで
周波数マトリクスの8ビット要素を「ジグザグ」の順番
で、即ちA00’01’10’02’11’
20’30などのような態様で出力する。この順番
は、量子化プロセスによって発生された周波数マトリク
スのゼロ要素からなる長いランを集めるのに適してい
る。なぜならば、周波数マトリクスにおける多くの高周
波数AC要素は量子化によってゼロにセットされるから
である。脱圧縮期間中、入力8ビットデータは、「ジグ
ザグ」の順番であり、且つジグザグユニット109は、
IDCTのためのシーケンシャルな順番(行毎)におけ
る8ビットのデータストリームに再配列させる。
【0153】ジグザグユニット109における格納部
は、二重バッファ機能を与えるように配列された64×
8SRAMアレイ1000及び1001の二つのバンク
から構成されている。この二重バッファ機能は、4:
2:2タイプの入力データの処理期間中にアイドルサイ
クルを必要とすることがないように、連続的な出力デー
タのストリームがコーダ/デコーダユニット111へ送
給されることを可能としている。64×8ビットSRA
Mの一方のバンクが現在の周波数マトリクスの入力8ビ
ット要素を蓄積するために使用されるので、64×8S
RAMの他方のバンクは、以前に蓄積した周波数マトリ
クスの、圧縮期間中におけるゼロパッカー/アンパッカ
ーユニット110への出力又は脱圧縮期間中における量
子化器ユニット108への出力のために使用される。
【0154】SRAMアレイ1000及び1001は、
バス115上でホストコンピュータからアクセスするこ
とが可能である。バス115の種々の部分は、図26に
おいてバス1021,1022,1023として示して
ある。ホストコンピュータは、バス1023及び102
2上に8ビットアドレスを二つの部分で供給することに
よってSRAMアレイ1000又は1001をアクセス
し、バス1023は5ビット幅であり且つバス1022
は3ビット幅である。初期化の期間中、ホストコンピュ
ータは、更に、二つの待ち時間値をロードし、即ち各々
の値をコンフィギュレーションレジスタ1019及び1
018の各々にロードして、各待ち時間値によって特定
されたクロック周期数が経過した後に、シーケンシャル
動作及びジグザグ動作の両方を開始することをジグザグ
ユニット109が指示するのに必要な同期情報を供給す
る。SRAMアレイ1000及び1001内に書込むか
又はそれから読取られるべきテストデータはバス102
1へ転送される。
【0155】SRAMバンク1000及び1001の各
々へのアドレスは、カウンタ1010及び1011によ
って発生される。7ビットカウンタ1010は、シーケ
ンシャルアドレスを発生し、且つ6ビットカウンタ10
11は「ジグザグ」アドレスを発生する。これらのシー
ケンシャル及びジグザグアドレスは、それぞれレジスタ
1013及び1012内に格納される。レジスタ101
2のビット6は、二重バッファ動作方法の下で入力及び
出力のためにSRAMアレイ1000及び1001から
なる二つのバンクの間でのトグル動作のための制御信号
として使用される。脱圧縮期間中、8ビットデータが、
バス1004上のゼロパッカー/アンパッカーユニット
110から入力される。圧縮期間中、8ビットデータは
バス1005上を量子化器ユニット108から入力され
る。2対1マルチプレクサ1003は、圧縮又は脱圧縮
の何れが実行されているかに従って、入力データを選択
する。前述した如く、データは、更に、外部ホストコン
ピュータから供給することも可能であり、従って、2対
1マルチプレクサ1006は、内部データ(マルチプレ
クサ1003を介してバス1005又は1004から)
又はバス1021上をホストコンピュータからのデータ
の間で選択を行なう。ジグザグユニット109は、圧縮
期間中はゼロパッカー/アンパッカーユニット110に
対して且つ脱圧縮期間中は量子化器ユニット108に対
して、2対1マルチプレクサ1002を介してバス10
24上に8ビットデータを出力する。尚、該マルチプレ
クサは、二重バッファ機能に従ってSRAMアレイ10
00及び1001の出力データの間で交互に選択を行な
う。
【0156】圧縮期間中、量子化器108からの8ビッ
トの入力データはバス1005に到着し且つ各々がレジ
スタ1013内に格納されているメモリアドレス内に格
納される。該アドレスは、入力バッファとして選択され
ているSRAMアレイにおける位置へポイントしている
(以下の説明においては、説明の便宜上、入力のために
SRAMアレイ1000が選択されているものと仮定す
る)。このクロック周期の期間中、SRAM1001は
出力モードにあり、レジスタ1012は、「ジグザグ」
カウンタ1011によって発生される出力に対する現在
のアドレスを収納している。レジスタ1012において
特定されるアドレス内に存在するSRAMアレイ100
1の出力データは、バス1024上に出力されるべく2
対1マルチプレクサ1002によって選択される。
【0157】クロック周期の終わりにおいて、シーケン
シャル入力用の次のアクセスアドレスがマルチプレクサ
1014及び1017を介してレジスタ1013内にロ
ードされる。カウンタ1010は、更に、次のクロック
周期において使用するためにバス1025上に新たな次
のアドレスを発生する。マルチプレクサ1014は、外
部ホストコンピュータによって供給される初期化アドレ
スとカウンタ1010によって発生されるアドレスとの
間で選択を行なう。マルチプレクサ1017は、次のシ
ーケンシャルアドレスと現在のシーケンシャルアドレス
との間での選択を行なう。現在のシーケンシャルアドレ
スは、「halt(停止)」信号がデータフォーマット
(例えば、不活性のビデオ時間)と同期させるために受
取られた場合に選択される。
【0158】各クロック周期の終わりにおいて、次の
「ジグザグ」アドレスが、ジグザグカウンタ1011に
よってバス1026上に新たな次のジグザグアドレスが
発生される間に、マルチプレクサ1016及び1015
を介してレジスタ1012内にロードされる。マルチプ
レクサ1015は、カウンタ1011によって発生され
るアドレスとホストコンピュータによって供給される初
期化アドレスとの間で選択を行なう。マルチプレクサ1
016は、次のジグザグアドレスと現在のジグザグアド
レスとの間で選択を行なう。この現在のジグザグアドレ
スは、データフォーマット(例えば、不活性ビデオ時
間)との同期のために停止信号が受取られる場合に選択
される。脱圧縮期間中のジグザグユニット109の動作
は、圧縮プロセスの場合と反対に、脱圧縮期間中のシー
ケンシャルアクセスが読取りアクセスであり且つジグザ
グアクセスが書込みアクセスである点を除いて、圧縮期
間中のものと類似している。シーケンシャルアクセスの
出力データストリームは、量子化器ユニット108への
出力のためにマルチプレクサ1002によって選択され
る。
【0159】ゼロパッカー/アンパッカーユニットの構成及び動作 次に、ゼロパッカー/アンパッカー(ZPZU)110
(図1)の構成及び動作について図27を参照して説明
する。ZPZU110は、機能的にゼロパッカー及びゼ
ロアンパッカーから構成されている。ゼロパッカーの主
要機能は、ゼロの連続的な値をラン長表示に圧縮するこ
とである。ラン長データを使用することの利点は、周波
数マトリクスにおける多くの値が量子化プロセス期間中
にゼロへ還元されるという事実から発生する格納空間条
件が著しく減少されるということである。ゼロアンパッ
カーは、ゼロパッカーの逆の動作を与える。
【0160】ZPZUユニット110のブロック図を図
27に示してある。図示した如く、ZPZU110は、
状態カウンタ1103、ランカウンタ1102、ZP制
御論理1101、ZUP制御論理1104、マルチプレ
クサ1105から構成されている。状態カウンタ110
3は、例えば圧縮又は脱圧縮などのような動作モードに
関する状態情報を収納しており、且つ周波数マトリクス
における現在の要素の位置の情報を収納している。ジグ
ザグユニット109からのデータは、最初に、ゼロ値に
対してZP制御1101によって検査され、且つそのデ
ータがゼロでない場合にはFIFO手段114内に格納
するためにマルチプレクサ1105を介してFIFO/
ホフマンコードバス制御器ユニット112へ通過され
る。一方、ゼロの値に遭遇した場合には、ランカウンタ
1102が、最初に検知されたゼロに続くゼロの値のカ
ウントを継続し、そのゼロの長さをFIFOメモリ11
4内に格納するためにFIFO/ホフマンコードバス制
御器ユニット112へ出力する。ラン長におけるゼロの
数は、画素マトリクス内に収納されている画像情報に依
存する。その画素マトリクスが収納されている64個の
画素の中でほとんど強度及びカラー変動が発生しない区
域に対応する場合には、この様な変動が大きい区域の場
合よりも一層長いゼロのラン長が予想される。
【0161】脱圧縮期間中、データは、ZUP(ゼロア
ンパッカー)ユニット1104を介してFIFO/ホフ
マンコードバス制御器ユニット112から与えられ次い
でジグザグユニット109へ送給される。脱圧縮相期間
中にラン長が読取られると、そのラン長はゼロからなる
ストリングにアンパックされ、その長さは、読取られた
ラン長に対応し且つそのゼロの出力ストリングはジグザ
グユニット109へ送給される。
【0162】画素タイプ(Y,U又はV)と共に、ゼロ
パッカー/アンパッカーユニット110が取扱う四つの
タイプのデータ、即ちDC,AC,RUN,EOBが存
在しており、その情報は四つのビットにエンコードされ
る。圧縮期間中、ZP制御1101がジグザグユニット
109から任意の周波数マトリクスの最初の要素を受取
ると、それは、その値がゼロであるか否かに拘らず、F
IFOメモリ114内に格納するためにFIFO/ホフ
マンコードバス制御器ユニット112へ直接的に通過さ
れた8ビット値と共にDCデータとしてエンコードされ
る。その後に、周波数マトリクス内の非ゼロ要素がZP
制御1101によって受取られると、それは、8ビット
値と共にACデータとしてエンコードされ且つFIFO
メモリ114内に格納するためにFIFO/ホフマンコ
ードバス制御器ユニット112へ通過される。しかしな
がら、周波数マトリクスのゼロ値要素が受取られると、
ラン長カウンタ1102が、その周波数マトリクスの次
の非ゼロ要素に遭遇するまで、それに続くゼロ要素の数
をカウントすることを開始する。このゼロのカウント値
はラン長(RUN)表示でFIFOメモリ114内に格
納するためにFIFO/ホフマンコードバス制御器ユニ
ット112へ送給される。該周波数マトリクスの残部に
別の非ゼロ要素が存在しない場合には、ラン長の代わり
に、EOB(ブロック終了)コードがFIFO/ホフマ
ンコードバス制御器ユニット112へ出力される。全て
のラン長又はEOBコードが出力された後に、ランカウ
ンタ1102は次のゼロからなるバーストを受取るため
にリセットされる。
【0163】脱圧縮期間中、ZUP制御ユニット110
4は、FIFOメモリ114からのデータを検索するF
IFO/ホフマンコードバス制御器ユニット112から
のエンコードされたデータのストリームを検査する。D
C又はACデータがZUP制御ユニット1104によっ
て遭遇されると、最小桁の8ビットのデータがジグザグ
ユニット109へ通過される。しかしながら、ラン長デ
ータに遭遇した場合には、そのラン長カウントの値がラ
ン長カウンタ1102内にロードされ、該カウンタがゼ
ロに到達するまでデクリメントされる場合にジグザグユ
ニット109へゼロが出力される。EOBデータに遭遇
した場合には、その周波数マトリクスの最後の要素に対
応する64番目の要素が出力されるまで、ZUP制御ユ
ニット1104はその出力において自動的にゼロを挿入
する。
【0164】コーダ/デコーダユニットの構成及び動作 次に、コーダ/デコーダユニット111(図1)の構成
及び動作について図28及び29を参照して説明する。
コーダユニット111aは、ラン長表示におけるデータ
のホフマンコードへのエンコード動作を指示する。デコ
ーダユニット111bはその逆の動作を与える。圧縮期
間中、ゼロパッカー/アンパッカーユニット110から
来るDCTデータの高い圧縮比率を達成するために、コ
ーダ/デコーダユニット111のコーダユニット111
aは、FIFOメモリ114内のゼロパック型DCTデ
ータを可変長ホフマンコード表示への変換を与える。こ
のコーダユニット111aは、そのホフマンコード化D
CTデータをホストバスインターフェースユニット(H
BIU)113へ供給し、該ユニットは、そのホフマン
エンコード化データを外部ホストコンピュータへ送信す
る。脱圧縮期間中、コーダ/デコーダユニット111の
デコーダユニット111bは、HBIU113からホフ
マンコード化データを受取り、且つ脱圧縮動作のために
可変長ホフマンコード化データのゼロパック型表示への
変換を与える。
【0165】コーダユニット 図28はコーダユニット111a(図1)に対する概略
図である。圧縮期間中、読取り制御ユニット1203
は、FIFO/ホフマンコードバス制御器ユニット11
2への「pop−request(ポップ要求)」信号
を活性化し、ホフマンコード化のための次のデータを要
求する。次いで、データ格納ユニット1201は、内部
バス116(図1)から、FIFO/ホフマンコードバ
ス制御器ユニット112からの「pop−acknow
ledge(ポップ−アクノレッジ)」信号を受取った
後に、一時的格納のためにデータ格納ユニット1201
内に「ポップ」したデータを受取る。コーダユニット1
11aは後にFIFO/ホフマンコードバス制御器ユニ
ット112に関連して説明する如く、ゼロパッカー/ア
ンパッカーユニット110へ内部バス116の優先性を
発生せねばならないので、「ポップ−アクノレッジ」信
号がFIFO/ホフマンコードバス制御器ユニット11
2から受取られるまで、ポップ要求は活性された状態の
ままであり、データバス116において該データがデー
タ格納ユニット1201内にラッチされる準備がなされ
ていることを表わす。
【0166】データのエンコード動作は、受取ったデー
タタイプに基づいて行なわれ、エンコーディングのタイ
プはDC、ラン長及びAC対又はEOBである。FIF
O/ホフマンコードバス制御器ユニット112からホフ
マンエンコーディングを検索するために、アドレスユニ
ット1210は、2ビットタイプコード(Y又はC,A
C又はDCの情報のエンコーディング)及び12ビット
オフセットからなる14ビットアドレスを、エンコーデ
ィング方法に従って四つのテーブル(Y_DC,Y_A
C,C_DC,C_AC)の一つの中に供給する。この
エンコーディング方法は、JGEGスタンダードのセク
ション7.3.5において説明されている。この2ビッ
トタイプコードは、そのデータタイプがルミナンスか又
はクロミナンス(Y又はC)であるか否か、及び現在の
データが周波数マトリクス内のAC項であるか又はDC
項であるかを表わす。2ビットデータタイプコードに従
って、四つのテーブル(Y_DC,Y_AC,C_D
C,C_AC)のうちの一つがホフマンコードに対して
サーチされる。最後の周波数マトリクス内の前のDC値
と現在の周波数マトリクス内のDC値の差を使用して、
DC値ホフマンコードをエンコードする(この相継ぐD
C値の差をコーディングする方法は「線形予測」コーデ
ィング方法として知られている)。FIFOメモリ11
4内のホフマンコードテーブルの組織について、FIF
O/ホフマンコードバス制御器ユニット112に関連し
て以下に説明する。「ラン長」ユニット1204は、ゼ
ロパッカー/アンパッカーユニット110から受取った
ゼロパック型表示からラン長値を抽出し、且つ「ACg
roup(ACグループ)」ユニット1206によって
受取られる次のAC値と結合して、ホフマンコードテー
ブルをルックアップするための論理アドレスとして使用
すべきラン長−AC値結合体を形成する。
【0167】内部バス116上にFIFO/ホフマンコ
ードバス制御器ユニット112によって帰還され且つF
IFOメモリ114内のホフマンテーブルから検索され
たホフマンコードは、データ格納ユニット1201によ
って受取られる。コード長ユニット1207は、その帰
還されたホフマンコードを検査して、現在のデータを表
示するために使用されたビット数を決定する。ホフマン
コードは可変長であるので、ホフマンコード化データは
前のホフマンコード化データと連結され且つ16ビット
データが形成されるまで「シフト長」ユニット1209
において蓄積される。「DCfast」ユニット120
5は、最後のDC値を有しており、従って最後のDC値
と現在のDC値との間の差は、線形予測方法の下でDC
差値のエンコーディングを容易とするために容易に決定
することが可能である。16ビットデータが形成される
場合には、コーダ111aは停止し且つホストバスイン
ターフェースユニット113がコーダデータ出力ユニッ
ト1208からの16ビットデータをラッチすることを
要求する。コーダ111aは、そのデータがラッチされ
且つホストバスインターフェースユニット113によっ
てアクノレッジされるまで、停止状態に止どまる。コー
ダ/デコーダユニット111のコーダユニット111a
に対する内部制御信号は、「状態マシン」ユニット12
02によって与えられる。
【0168】デコーダユニット コーダ/デコーダユニット111(図1)のデコーダユ
ニット111bの構成は図29にブロック図で示してあ
る。デコーディング方法は、JPEGによって確立され
ているスタンダードに基づくものであり、且つそのセク
ション7.3.5に説明されている。以下の説明は、デ
コーディングプロセスの概略を説明するものである。脱
圧縮期間中、ホストバスインターフェースユニット(H
BIU)113(図1)からの2ビットデータは、入力
制御ユニット1250におけるデコーダユニットへ供給
される。HBIU113からの「ラン」ビットは、デコ
ーディングを要求し且つバス1405上に2ビットデー
タの準備がなされていることの信号を与える。
【0169】受取られた各2ビットデータはデコーダメ
インブロック1255へ送給され、それはデコーディン
グプロセスを制御する。デコードされたデータは可変長
のものであり、「レベル」データ、ラン長−ACグルー
プ、又はEOBホフマンコードの何れかから構成されて
いる。レベルデータは、正確な振幅ではなく振幅範囲を
エンコードするインデックスである。DC値は固定長
「レベル」データである。ラン長−ACグループは、A
Cグループ部分とラン長部分とから構成されている。ラ
ン長−ACグループのACグループ部分は、3ビットグ
ループ番号を有しており、それは、次続のHBIU11
3からの顕著なレベルデータのビット長に対してレベル
発生器1254においてデコードされる。
【0170】HBIU103からのこの2ビットデータ
の最初のビット又は両方のビットが「レベル」データで
ある場合、即ちAC/DC値の顕著なインデックスであ
る場合、そのデコーディングは、2ビットホフマンコー
ドが受取られるまで、延期される。即ち、2ビットデー
タの最初のビットが「レベル」であり且つその2ビット
データの2番目のビットがホフマンコードである場合、
次の2ビットデータが読取られ、且つデコード動作は最
初の2ビットデータの2番目のビット及び2番目の2ビ
ットデータの最初のビットを使用して進行する。デコー
ディングは、FIFO/ホフマンコードバス制御器ユニ
ット112を使用して、FIFOメモリ114内のホフ
マンデコードテーブルをルックアップすることによって
達成される。テーブルアドレス発生器1261は、FI
FO/ホフマンコードバス制御器ユニット112に対し
て、ルックアップすべきデコーディングテーブル内の次
のエントリに対してFIFOメモリ114内へ12ビッ
トアドレスを供給する。帰還されたホフマンデコードテ
ーブルエントリはテーブルデータバッファ1259内に
格納される。ルックアップされたデータがさらなるデコ
ーディングが必要であることを表わす場合(即ち、「c
ode_done」ビットが「0」にセットされる)、
12ビットデータの10ビットの「次のアドレス」部分
が、HBIU113からの次の2ビットデータ入力と結
合されて、次のホフマンデコードテーブルエントリに対
する12ビットアドレスを発生する。
【0171】ユニット112に対して、ルックアップす
べきデコーディングテーブル内の次のエントリに対して
FIFOメモリ114内へ12ビットアドレスを供給す
る。帰還されたホフマンデコードテーブルエントリはテ
ーブルデータバッファ1259内に格納される。ルック
アップされたデータがさらなるデコーディングが必要で
あることを表わす場合(即ち、「code_done」
ビットが「0」にセットされる)、12ビットデータの
10ビットの「次のアドレス」部分が、HBIU113
からの次の2ビットデータ入力と結合されて、次のホフ
マンデコードテーブルエントリに対する12ビットアド
レスを発生する。
【0172】「code_done」ビットが「1」に
セットされると、それは、現在のデータが5ビットのラ
ン長と3ビットのACグループ番号とを有していること
を表わしている。ホフマンデコードテーブルエントリ
も、「code_odd」ビットを有しており、それ
は、レベルデータを派生するために次の2ビット入力デ
ータにおけるビット順番を決定するためにAC_lev
el順番制御1252によって使用される。ACグルー
プ番号は、AC−levelレジスタ制御1253にお
いて前に受取られたレベルデータの大きさ及びビット長
を決定するために使用される。レベル発生器1254
は、そのレベルデータをとり且つ完全にデコードしたデ
ータを供給し、該データは、FIFO/ホフマンコード
制御器ユニット112とインターフェースするFIFO
書込み制御ユニット1258を介してFIFOメモリ1
14内に書込まれるべく送給される。書込み要求は、信
号「push(プッシュ)」を活性化することによりF
IFO/ホフマンコード制御器ユニット112へ信号が
送られ、該信号は、そのデータが書込まれた後に「FI
FOプッシュイネーブル」信号を活性化することにより
FIFO/ホフマンコード制御器ユニット112によっ
てアクノレッジされる。
【0173】データカウンタ1260は、現在デコード
中のデータタイプ及び位置、即ちデコード中の現在のデ
ータがAC又はDC値であるか否か、レベルが現在計算
中である周波数マトリクスにおける位置、及び現在のブ
ロックがY,U又はV画素タイプのものであるか否か、
を追従するためにデコードされるデータのカウントを維
持する。ラン長レジスタ1286は、ホフマンデコード
テーブルから派生されるラン長のゼロパック型表示を発
生するために使用される。DCレベルは前のDC値と現
在のDC値との間の差をエンコードするので、DC_l
evel発生器1257は、その差値を格納されている
前のDC値へ加算することによって現在のデータを派生
するために実際のレベルを派生する。派生されたDC値
は、次いで、アップデートされ且つ次のDC値を計算す
るためにDC_level発生器1257内に格納され
る。デコードされたDC,AC又はラン長データは、F
IFOデータ書込み制御1258を介してFIFOメモ
リ114内に書込まれる。ゼロパッカー/アンパッカー
ユニット110はバス116(図1)に関して優先度が
与えられねばならないので、デコーダユニット111b
によるデータアクセスは、ゼロパッカー/アンパッカー
ユニット110がバス116上のその読取りアクセスを
終了するまで、停止せねばならない。デコーダメインブ
ロック1255は、HBIUに対してホールド信号を発
生して、FIFO/ホフマンコード制御器112への読
取り/書込みアクセスが許可されるまで、2ビットデー
タの転送をホールドする。
【0174】FIFO/ホフマンコードバス制御器ユニ
ットの構成及び動作 次に、オフチップのFIFOメモリアレイ114と共
に、FIFO/ホフマンコード制御器ユニット112の
構成及び動作について図30及び31を参照して説明す
る。図30に示したFIFO/ホフマンコードバス制御
器ユニット(FIFOC)112は、コーダ/デコーダ
ユニット111、ゼロパッカー/アンパッカーユニット
110、及びホストバスインターフェースユニット11
3とインターフェースする。FIFOC112は、16
K×12SRAMアレイ114(図1)内に実現されて
いるオフチップ先入れ先出し(FIFO)メモリに対し
てのインターフェースを与える。FIFOメモリ114
をオフチップで実現することは、オンチップシリコンの
面積の効率的な使用と制御の複雑性との間の工学上の利
益考慮が関与する設計上の選択である。本発明の別の実
施例は、FIFOメモリ114を実現するためのオンチ
ップSRAMアレイを有している。FIFOメモリ11
4をオンチップとすることにより、データフローの制御
は、FIFOメモリとして二重ポートSRAMアレイを
使用することにより著しく簡単化することが可能であ
る。この二重ポートSRAM構成は、共通内部バス11
6を共用する代わりに、ゼロパッカー/アンパッカーユ
ニット110及びコーダ/デコーダユニット111によ
って独立的なアクセスを行なうことを可能とする。圧縮
期間中、オフチップSRAMアレイ114は、ゼロパッ
カー/アンパッカーユニット110からの二次元DCT
データに対する一時的格納のためのメモリバッファを有
している。更に、該データを更に圧縮されたホフマン表
示へエンコードするために使用されるホフマンコードの
テーブルもこのSRAMアレイ114内に格納されてい
る。脱圧縮期間中、オフチップSRAMアレイ114
は、ゼロパッカー/アンパッカーユニット110におけ
るアンパック動作のための準備としてデコードしたデー
タの一時的格納のためのメモリバッファを有している。
更に、ホフマンコード化DCTデータをデコードするた
めに使用されるテーブルもSRAMアレイ114内に格
納されている。
【0175】SRAMアレイ114に対するメモリマッ
プを図31に示してあり、圧縮用のメモリマップは左側
に示してあり、且つ脱圧縮用のメモリマップは右側に示
してある。この実施例においては、圧縮期間中、アドレ
ス位置(16進数)0000−0FFF(1350
a)、1000−1FFF(1351a)、2000−
21FF(1352a)、2200−23FF(135
3a)がそれぞれホフマンコードテーブル、即ちルミナ
ンス(Y)マトリクスのAC値、クロミナンスマトリク
スのAC値、ルミナンスマトリクスのDC値、及びクロ
ミナンス(U又はV)マトリクスのDC値に対してリザ
ーブされている。その結果、SRAMアレイ114(7
K×12メモリアレイ1354a)の残部は、ゼロパッ
ク型表示データのためにFIFOメモリバッファ135
4aとして割当てられている。脱圧縮期間中、アドレス
0000−03FF(1352b)、0400−07F
F(1350b)、0800−0BFF(1353
b)、0C00−0FFFは、ホフマンコードをデコー
ディングする上で使用されるテーブル、即ちルミナンス
(Y)マトリクスのDC値、ルミナンスマトリクスのA
C値、クロミナンス(U又はV)マトリクスのDC値、
クロミナンスマトリクスのAC値のそれぞれに対してリ
ザーブされている。テーブル用に割当てられている空間
は脱圧縮期間中においてはかなり小さいので、12K×
12エリア1354bがFIFOメモリバッファ135
4bとして与えられる。
【0176】図30は、FIFOCユニット112の概
略図である。SRAMアレイ114は、各々がホストバ
ス115の一部であるバス1313及び1319(それ
ぞれ、アドレス及びデータに対して)を介してホストコ
ンピュータによる読取り又は書込みのために直接的にア
クセスすることが可能である。ホストコンピュータから
の読取り又は書込み要求は、コンフィギュレーションデ
コーダ1307においてデコードされる。アドレス変換
器1306は、SRAMアレイ114の物理的アドレス
に対してバス1313上にホストコンピュータによって
供給される論理アドレスをマップする。バス1313の
ビット9:1と共に、ホストコンピュータは、ホフマン
コーディング及びデコーディングテーブル1350a−
1353a又は1350b−1353b又はFIFOメ
モリバッファ1354a又は1354bをロードするこ
とが可能である。圧縮期間中、12ビットデータがバス
116上をゼロパッカー/アンパッカーユニット110
から到着する。脱圧縮期間中、12ビットデータは、コ
ーダ/デコーダユニット110からバス1319上に到
着する。バス1319もホストバス115の一部であ
る。
【0177】FIFOメモリ114はアクセスを容易と
するために先入れ先出しメモリとして組織化されている
ので、レジスタ1304は、FIFOメモリバッファ1
354a又は1354bから読取り可能な次のデータに
対するメモリアドレスを有しており、且つレジスタ13
05はFIFOメモリバッファ1354a又は1354
b内の書込みのために使用可能な次のメモリ位置に対す
るメモリアドレスを有している。次の読取り及び書込み
アドレスは、それぞれ、アドレスカウンタ1302及び
1303によって発生される。各カウンタは、読取り
(カウンタ1302)又は書込み(カウンタ1303)
が完了した後にインクリメントされる。論理ユニット1
301は、SRAMメモリアレイ114に対する制御信
号及びFIFOCユニット112の動作を与える。アッ
プダウンカウンタ1308は、FIFOメモリバッファ
1354a又は1354bの読取り及び書込みアドレス
限界を有している。FIFOメモリタグユニット130
9は、FIFOメモリバッファが空であるか、満杯であ
るか、4分の1満杯であるか、半分満杯であるか又は4
分の3満杯であるかを表わすステータス信号を供給す
る。アドレスデコードユニット1310は、オフチップ
SRAMアレイ114とインターフェースし且つFIF
Oメモリ114内に読取り及び書込みアドレスを供給す
る。読取られた12ビットデータはバス1318上をS
RAMアレイ114から帰還され、且つ書込まれるべき
12ビットデータはバス1317上でSRAMアレイ1
14へ供給される。バス1317及び1318は一体と
なって図1に示した内部バス116を形成する。
【0178】初期化されると、ホストコンピュータは、
その動作が圧縮であるか又は脱圧縮であるか否かに依存
してホフマンコード又はデコードテーブル1350a−
1353a又は1350b−1353bをロードし、且
つコンフィギュレーション情報をコンフィギュレーショ
ンデコードユニット1307内にロードしてFIFOC
ユニット112を該チップの残部と同期させる。圧縮期
間中、12ビットデータはゼロパッカー/アンパッカー
ユニット110から到着し且つ逐次的にSRAMアレイ
114内に書込まれる。FIFOメモリバッファ135
4aは、入力データがバス1319からラッチされるに
従い充填される。ゼロパッカー/アンパッカーユニット
110からの要求が最高の優先度を有しているので、ゼ
ロパッカー/アンパッカーユニット110からのバス1
16上のデータは自動的に優先性が与えられて、入力デ
ータの喪失を回避するために、コーダ/デコーダ111
を上回ってSRAMアレイ(FIFOメモリ)114に
アクセスする。
【0179】FIFOメモリバッファ1354a内のデ
ータは、「ポップ要求」信号を活性化することにより読
取りを要求するコーダ/デコーダユニット111のコー
ダ111aによってそれらが読取られるに従い、減少す
る。コーダ111aは、更に、バス1315上に読取り
アドレスを供給することにより読取られたデータの値に
従ってホフマンコードテーブルから読取りを要求する。
コーダ/デコーダユニット111は、次いで、外部コン
ピュータにより大量記憶媒体内への格納のために該デー
タをホフマンコードでエンコードする。脱圧縮期間中、
12ビットのデコードされたデータがコーダ/デコーダ
ユニット111のデコーダ111bから到着し「プッシ
ュ」要求を活性化することによりFIFOメモリバッフ
ァ1354b内に格納される。デコーダ111bは、更
に、バス1314上にアドレスを供給することによりホ
フマンデコードテーブルの読取りを要求する。ホフマン
デコードテーブルから読取られたエントリは、デコーダ
111bが外部ホストコンピュータによって供給された
圧縮されているホフマンコード化データをデコードする
ことを可能とする。
【0180】ホストバスインターフェースユニットの構成及び動作 次いで、ホストバスインターフェースユニット(HBI
U)113の構成及び動作について図32を参照して説
明する。図32は、HBIU113のブロック図を示し
ている。このホストバスインターフェースの主要な機能
は、三つのブロック、即ちnu制御ブロック1401、
データ経路ブロック1402、nuステータスブロック
1403の三つのブロックによって実現される。nu制
御ブロック1401は、ホストコンピュータと及びコー
ダ/デコーダユニット111とインターフェースするた
めの制御信号を供給する。該制御信号は、NuBus業
界スタンダードに従っている。データ経路ブロック14
02は、二つの32ビットバス1404(出力)及び1
408(入力)、デコーダユニット111bへの2ビッ
ト出力バス1405、コーダユニット111aへの16
ビット入力バス1211、16ビット双方向コンフィギ
ュレーションバス1406とのインターフェースを与
え、同期及び制御目的のために図1に示した種々のユニ
ット102−112とのインターフェース及びホフマン
コード/デコードテーブルのFIFOメモリ104内へ
のローディング、及び量子化/脱量子化係数の量子化器
ユニット108内へのローディングを与える。データ経
路ブロック1402は、更に、これらのバストランザク
ションに対するハンドシェーク用信号を与える。
【0181】nuステータスブロック1403は、FI
FOメモリ114のステータスをモニタし、且つ出力バ
ス1406の一部であるバス1412内にステータスフ
ラッグの14ビット出力を供給する。nuステータスブ
ロック1403は、更に、例えばDCT行格納ユニット
105内のコンフィギュレーションレジスタ608など
のように該チップを介してコンフィギュレーションレジ
スタをローディングするためのレジスタアドレスを供給
する。グローバルコンフィギュレーション値は5ビット
バス1407上に供給される。これらのコンフィギユレ
ーション値は、例えば圧縮又は脱圧縮、4:1:1又は
4:2:2データフォーマットモードなどの情報を有し
ている。ホストバスインターフェースユニット113
は、ホストコンピュータとの通信のために「NuBu
s」通信スタンダードを実行する。このスタンダード
は、ANSI/IEEEスタンダード1196−198
7に記載されている。
【0182】内部的には、HBIU113はコーダ/デ
コーダユニット111とインターフェースする。圧縮モ
ード期間中、コーダ111aは、一度に16ビットずつ
可変長ホフマンコード化データを送給し、且つHBIU
113は、バス1404上をホストコンピュータに対し
てホフマンコード化32ビットデータ(コーダ111a
からの二つの16ビットデータを有している)を送給す
る。コーダ111aは、ライン1411上の「code
rhold(コーダホールド)」がHBIU113によ
って活性化されない限り、16ビットデータを形成する
ホフマンコードの16ビットセグメントがラッチされる
べくバス1211上でレディ(準備完了)であると、ス
テータス信号「coderreq」1413を活性化さ
せる。コーダ111aは、「coderreq」が活性
化されると、同一のクロック周期内でラッチされるべき
データを予定する。従って、コーダ111aは、クロッ
ク周期の終了において自動的にデータカウントをリセッ
トする。「coderhold」がHBIU113によ
って活性化されると、それは、外部ホストコンピュータ
がHBIU113から最後の32ビットデータをラッチ
しなかったことを信号を送って知らせる。コーダ111
aは、coderreq信号を活性化する次の機会の後
にその16ビットデータがラッチされるまで、エンコー
ディングを停止する。一方、ゼロパッカー/アンパッカ
ーユニット110のデータ出力はFIFOメモリ114
内に蓄積される。
【0183】脱圧縮モード期間中、ホフマンコード化圧
縮データはバス1408上を一度に32ビットずつホス
トコンピュータから送給される。データ経路1402
は、ホストコンピュータ2から受取った32ビットを、
一度に2ビットずつバス1405上をデコーダユニット
111bへ送給する。「ラン」ビット1409は、2ビ
ットデータがバス1405上でレディ(準備完了)であ
ることをデコーダユニット111bへ信号を送って知ら
せる。デコーダ111bが2ビットデータをラッチし且
つ次の2ビットデータに対する準備完了状態を表わす
「decoderhold(デコーダホールド)」ビッ
ト1414を活性化することによりラッチングを信号す
るまで、2ビットデータはバス1405上に残ったまま
である。
【0184】初期化期間中、脱量子化又は量子化係数が
量子化ユニット108(図25)のYU_table1
08−1内にロードされ、且つホフマンコード又はデコ
ードテーブルがSRAMアレイ114内にロードされ
る。「cont」ビット1415は、FIFOCユニッ
ト112が外部SRAMアレイ114へアクセスするこ
とを要求する。該アドレス及びデータはデータ経路ユニ
ット1402において発生される。更に、HBIU11
3からアクセス可能なコンフィギュレーションレジスタ
のシステムを介して、ホストコンピュータが、該チップ
を介しての制御及びステータスレジスタ、該チップを介
してのランダムアクセスメモリアレイ、及び外部SRA
Mアレイ114をモニタし、診断し又はテストすること
が可能である。
【0185】本発明の適用 本発明の適用の一つは、ディスプレイ又はプリンタのロ
ーカルメモリの実現である。ビデオディスプレイ装置
は、通常、ディスプレイのリフレッシュのためにフレー
ムバッファを有している。同種のバッファでページバッ
ファと呼ばれるものがプリントすべき画像を作成するた
めにプリンタにおいて使用されている。上述した如く、
非圧縮画像は、大型のメモリを必要とする。例えば、画
素当り24ビットでの400dpiでのカラープリンタ
(即ち、赤、緑及び青に対する強度の各々に対して8ビ
ット)は、スタンダードな8−1/2×11画像に対し
て48メガバイトの格納を必要とする。必要とされるメ
モリ量は、フレーム又はページバッファ内に圧縮したデ
ータを格納することによって著しく減少させることが可
能である。しかしながら、脱圧縮データは、出力の目的
で必要とされる場合にプリントヘッド又はディスプレイ
へ与えられねばならない。図1に示した実施例のような
上述した本発明は、プリンタにおけるプリント画像の作
成及びディスプレイリフレッシュをサポートするのに十
分な速度でデータの脱圧縮を行なうことを可能としてい
る。
【0186】ディスプレイリフレッシュ用のフレームバ
ッファにおける適用及びプリンタにおけるプリント画像
作成のための本発明の一実施例を図38に示してある。
圧縮した画像データの供給源は、制御器1061からの
指示に基づいてデータ圧縮ユニット1602によって供
給される。制御器1601は、従来のコンピュータ、又
はディスプレイ又はプリンタ用の画像データを供給する
のに適した任意の供給源とすることが可能である。デー
タ圧縮ユニット1602は、図1に示した本発明の実施
例によって実現することが可能である。圧縮されたデー
タは、単純なケーブルとすることが可能な適宜の通信チ
ャンネル1606を介して小さなパケットの状態で(例
えば、上述した如く8画素×8画素ブロック)ディスプ
レイ又はプリンタ制御装置1604へ送給される。圧縮
されていないデータではなく圧縮されているデータが通
信チャンネル1606を介して送給されるので、画像全
体を送給するために必要とされる帯域幅は、圧縮比に等
しい圧縮されたデータは、ディスプレイ又はプリンタ制
御装置1604と関連するメインメモリ1603内に格
納される。圧縮されたデータメモリは表示されるか又は
印刷される画像の物理的局所性にマップされ、即ち、画
像の一部を表わす圧縮されたデータを包含するメモリ位
置は簡単に決定され且つディスプレイ制御器ユニット1
604によってランダムにアクセスすることが可能であ
る。圧縮されたデータは小さなパケットの状態で格納さ
れるので、画像内の小さなエリアに対応する圧縮された
データは、アップデートによって影響されることのない
画像の部分を脱圧縮することなしに、ディスプレイ制御
器ユニット1604によって局所的にアップデートさせ
ることが可能である。このことは、画像に対しての増分
的アップデートを可能とするインテリジェントディスプ
レイ適用にとって特に有用である。
【0187】メインメモリ1603内に格納されている
圧縮されたデータは、ディスプレイ又はプリントの目的
のために必要とされる場合に、ディスプレイ又はプリン
タ制御装置1604の要求によって脱圧縮ユニット16
07によって脱圧縮される。脱圧縮された画像はキャッ
シュメモリ1605内に格納される。スクリーンを写し
出し且つ画像をプリントする物理的プロセスは比較的遅
いプロセスであるので、これらの機能の必要性に対して
供給するために必要とされる脱圧縮型データの帯域幅
は、例えば図1に示した本発明の実施例のような高速脱
圧縮ユニットによって容易に満足させることが可能であ
る。
【0188】フレームバッファ又はページバッファ適用
におけるメモリのコストがプリンタ又はディスプレイの
トータルコストの著しい部分を占めるので、図38に示
した本発明実施例は、著しいコスト的な利点を与えてお
り、且つこれまで技術的に困難であるか又は経済的に実
際的ではないものと思われていた分野への画像処理の適
用を可能としている。
【0189】以上、本発明の具体的実施の態様について
詳細に説明したが、本発明は、これら具体例にのみ限定
されるべきものではなく、本発明の技術的範囲を逸脱す
ることなしに種々の変形が可能であることは勿論であ
る。
【図面の簡単な説明】
【図1】 本発明の一実施例を示したブロック図。
【図2】 図1に示した実施例のビデオバス制御器ユニ
ット102の概略図。
【図3】 図1に示した実施例のブロックメモリユニッ
トのブロック図。
【図4】 図1に示した実施例のユニット103−10
7から構成される離散余弦変換(DCT)ユニットのデ
ータフロー図。
【図5】 圧縮条件下におけるDCTユニットの4:
1:1データフローの説明図。
【図6】 圧縮条件下におけるDCTユニットにおける
4:2:2データフローの説明図。
【図7】 脱圧縮条件下におけるDCTユニットにおけ
る4:1:1データフローの説明図。
【図8】 脱圧縮条件下におけるDCTユニットにおけ
る4:2:2データフローの説明図。
【図9】 図1に示した実施例のDCT入力選択ユニッ
ト104の概略図。
【図10】 クロック相に従っての圧縮条件下における
DCT入力選択ユニット104の制御信号の説明図。
【図11】 クロック相に従った脱圧縮条件下における
DCT入力選択ユニット104の制御信号の説明図。
【図12】 図1に示した実施例のDCT行格納ユニッ
ト105の概略図。
【図13】 図12のDCT行格納ユニット105内の
メモリアレイ609及び610の水平方向書込みパター
ンを示した説明図。
【図14】 図12のDCT行格納ユニット105にお
けるメモリアレイ609及び610の垂直方向書込みパ
ターンを示した説明図。
【図15】 図1に示した実施例のDCT/IDCTプ
ロセサユニット106の概略図。
【図16】 図15のDCT/IDCTプロセサユニッ
ト105における圧縮条件下において使用されるDCT
計算アルゴリズムのフローチャート図。
【図17】 図15のDCT/IDCTプロセサユニッ
ト105における圧縮条件下において使用されるDCT
計算アルゴリズムのデータフロー図。
【図18】 圧縮条件下における図15に示したDCT
/IDCTプロセサユニット105の制御信号の説明
図。
【図19】 図15のDCT/IDCTプロセサユニッ
ト105における脱圧縮条件下において使用されるDC
T計算アルゴリズムのフローチャート図。
【図20】 脱圧縮条件下における図15のDCT/I
DCTプロセサユニット105のデータフロー図。
【図21】 脱圧縮条件下における図15に示したDC
T/IDCTプロセサユニットの制御信号の説明図。
【図22】 図1に示した実施例におけるDCT行/列
分離器ユニット107の概略図。
【図23】 脱圧縮条件下におけるDCT行/列分離器
ユニット107の制御信号の説明図。
【図24】 脱圧縮条件下における図15に示したDC
T行/列分離器ユニット107の制御信号の説明図。
【図25】 図1に示した実施例における量子化器ユニ
ット108の概略図。
【図26】 図1に示した実施例におけるジグザグユニ
ット109の概略図。
【図27】 図1に示した実施例におけるゼロパッカー
/アンパッカーユニット110の概略図。
【図28】 図1に示した実施例におけるコーダ/デコ
ーダユニット111のコーダユニット111aの概略
図。
【図29】 図1に示した実施例におけるコーダ/デコ
ーダユニット111のデコーダユニット111bのブロ
ック図。
【図30】 図1に示した実施例に示したFIFO/ホ
フマンコード制御器ユニット112の概略図。
【図31】 圧縮及び脱圧縮条件下における図1に示し
た好適実施例のFIFOメモリ114のメモリマップの
説明図。
【図32】 図1に示した実施例におけるホストバスイ
ンターフェースユニット113の概略図。
【図33】 16点離散フーリエ変換(DFT)を実行
するために使用されるフィルタツリーの説明図。
【図34】 図33に示したフィルタツリーのシステム
関数を示した説明図。
【図35】 図33におけるフィルタツリーのシステム
関数からFIRデジタルフィルタバンクの代数的演算の
フローダイヤグラム表示を派生するステップを示した説
明図。
【図36】 図35に示した派生から得られるフロー
図。
【図37】 図36のフロー図の代数的演算を逆にする
結果としての逆離散余弦変換のフロー図。
【図38】 本発明によって達成されるデータ圧縮及び
脱圧縮の速度を通信チャンネルを介して圧縮したデータ
のみを送給することにより画像再生を与えるために使用
することが可能な構成を示した説明図。
【符号の説明】
102 ビデオバスインターフェースユニット 103 ブロックメモリユニット 104 DCT入力選択ユニット 105 DCT行格納ユニット 106 DCT/IDCTプロセサユニット 107 DCT行/列分離器ユニット 108 量子化器ユニット 109 ジグザグユニット 110 ゼロパッカー/アンパッカーユニット 111 コーダ/デコーダユニット 112 FIFO/ホフマンコードバス制御器ユニット 113 ホストインターフェース 114 FIFOメモリ 115 ホストバス 116 内部バス
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 H04N 11/04 Z 7337−5C // H03H 17/02 B 8842−5J (72)発明者 ステファン シー. パーセル アメリカ合衆国, カリフォルニア 94040,マウンテン ビュー, プレスト ン ドライブ 365 (72)発明者 ジェームズ ダブリュ. カークパトリッ ク, ジュニア アメリカ合衆国, カリフォルニア 95129,サン ノゼ, ハーラン ドライ ブ 1043

Claims (31)

    【特許請求の範囲】
  1. 【請求項1】 データ圧縮及び脱圧縮用のシステムにお
    いて、デジタル化画像を受信及び送信するビデオインタ
    ーフェース手段、データ圧縮期間中に前記ビデオインタ
    ーフェース手段によって受信したデータに関して二次元
    離散余弦変換を実施し且つ前記二次元離散余弦変換の係
    数を与え且つデータ脱圧縮期間中において二次元逆離散
    余弦変換を行ない且つデジタル化画像として送信するた
    めに前記ビデオインターフェースへ前記二次元逆離散余
    弦変換の係数を出力データとして供給する離散余弦変換
    手段、データ圧縮期間中に前記二次元離散余弦変換の高
    周波数係数を減衰させ且つデータ脱圧縮期間中において
    前記二次元逆離散余弦変換の準備として前記二次元離散
    余弦変換の前記高周波数係数を部分的に回復する量子化
    手段、データ圧縮期間中において前記二次元離散余弦変
    換の係数をシーケンシャルな順番からジグザグの順番へ
    再配列させ且つデータ脱圧縮期間中において前記二次元
    離散余弦変換のジグザグの順番とした係数をジグザグの
    順番からシーケンシャルの順番へ再配列させるジグザグ
    手段、データ圧縮期間中において前記二次元離散余弦変
    換のジグザグの順番とした係数をゼロの係数のランをゼ
    ロの係数のラン長として表わす前記二次元離散余弦変換
    のラン長表示型係数としてパッキングし且つデータ脱圧
    縮期間中において前記二次元離散余弦変換のラン長表示
    型係数を前記二次元離散余弦変換のジグザグの順番とし
    た係数へアンパッキングするデータパッキング・アンパ
    ッキング手段、データ圧縮期間中において前記二次元離
    散余弦変換のラン長表示型係数をホフマンコードへコー
    ディングし且つデータ脱圧縮期間中において前記ホフマ
    ンコードを前記二次元離散余弦変換のラン長表示型係数
    へデコーディングするホフマンコーディング・デコーデ
    ィング手段、データ圧縮期間中において前記ホフマンコ
    ードをホストコンピュータへ送信し且つデータ脱圧縮期
    間中において前記ホフマンコードをホストコンピユータ
    から検索するホストインターフェース手段、を有するこ
    とを特徴とするシステム。
  2. 【請求項2】 請求項1において、前記ビデオインター
    フェース手段が、RGB表示とYUV表示との間でビデ
    オデータを変換するRGB−YUV手段と、データ脱圧
    縮期間中に同期信号を与えるデータ同期手段とを有する
    ことを特徴とするシステム。
  3. 【請求項3】 請求項2において、前記ビデオインター
    フェース手段が、更に、外部ビデオメモリバッファ内に
    ビデオデータを格納するための外部バッファメモリアド
    レスを発生する外部バッファメモリアドレス発生手段を
    有することを特徴とするシステム。
  4. 【請求項4】 請求項1において、前記離散余弦変換手
    段が、データ圧縮期間中において前記ビデオインターフ
    ェース手段によって受信されるデータを格納し且つデー
    タ脱圧縮期間中において前記二次元逆離散余弦変換の出
    力データを格納するブロックメモリ手段、データ圧縮期
    間中において離散余弦変換の係数を与え且つ脱圧縮期間
    中において逆離散余弦変換の係数を与える離散余弦変換
    プロセサ手段、前記二次元離散余弦変換の中間データと
    前記二次元逆離散余弦変換の中間データとを一時的に格
    納する行格納手段、データ圧縮期間中において前記離散
    余弦変換プロセサ手段へ送信するために前記ブロックメ
    モリ手段からのデータと前記行格納手段からの前記二次
    元離散余弦変換の中間データとを交互に受信し且つデー
    タ脱圧縮期間中において前記離散余弦変換プロセサ手段
    へ送信するために前記量子化手段からのデータと前記行
    格納手段からの前記二次元逆離散余弦変換の中間データ
    とを交互に受信するための入力選択手段、データ圧縮期
    間中において前記離散余弦変換の係数から前記二次元離
    散余弦変換の係数と前記二次元離散余弦変換の中間デー
    タとを分離し且つ前記二次元離散余弦変換の係数を前記
    量子化手段へ送信すると共に前記二次元離散余弦変換の
    中間データを前記行格納手段へ送信し且つデータ脱圧縮
    期間中において前記逆離散余弦変換の係数から前記二次
    元逆離散余弦変換の係数と前記二次元逆離散余弦変換の
    中間データとを分離し且つ前記二次元逆離散余弦変換の
    係数を前記ブロックメモリ手段へ送信すると共に前記二
    次元逆離散余弦変換の中間データを前記行格納手段へ送
    信する行/列分離手段、を有することを特徴とするシス
    テム。
  5. 【請求項5】 請求項4において、前記ブロックメモリ
    手段が、Y,U,Vタイプを持ったビデオデータを別々
    に受信すると共に格納するメモリ格納手段と、前記メモ
    リ格納手段内に格納された前記Y,U,Vタイプのビデ
    オデータへの読取り/書込みアクセスのための論理的読
    取り/書込みアドレスを別々に収容する複数個のアドレ
    スカウンタ手段と、格納条件を最小とするためにインラ
    インメモリを実現し且つ前記論理的読取り/書込みアド
    レスを前記メモリ格納手段内に格納されている前記Y,
    U,Vタイプのビデオデータに対する読取り/書込みア
    クセスのための物理的アドレスへ変換するアドレスエイ
    リアシング手段とを有することを特徴とするシステム。
  6. 【請求項6】 請求項4において、前記離散余弦変換プ
    ロセサ手段が、第一、第二、第三、第四データを受信す
    るための第一複数個のラッチと、前記第一及び第二デー
    タの第一和又は差を選択的に計算し且つ前記第三及び第
    四データの第二和又は差を選択的に計算する第一加算手
    段と、前記第一和又は差を第一結果とし且つ前記第二和
    又は差を第二結果として検索し格納し且つ送信するため
    の第二複数個のラッチと、前記第一結果と2cos(π
    /8),2cos(π/4),2cos(3π/8)及
    び1との第一乗算を選択的に実行する第一乗算手段と、
    前記第一乗算の結果を受信し格納し且つ送信すると共に
    前記第二複数個のラッチから前記第二結果を受信し格納
    し且つ送信するための第三複数個のラッチと、前記第一
    乗算の結果と前記第二複数個のラッチ内の第一結果とか
    ら第一多重化データを選択する第一マルチプレクサ手段
    と、前記第一乗算の結果と前記第三複数個のラッチ内の
    第二結果とから第二多重化データを選択するための第二
    マルチプレクサ手段と、前記第一多重化データと前記第
    三複数個のラッチ内に格納されている第二結果との第三
    和又は差を計算する第二加算手段と、前記第三複数個の
    ラッチ内に格納されている第二結果と前記第三和又は差
    から第三多重化データを選択するための第三マルチプレ
    クサ手段と、前記第二多重化データと前記第三多重化デ
    ータとを受信する第四複数個のラッチと、前記第四複数
    個のラッチから第四、第五、第六及び第七多重化データ
    を選択するための複数個のマルチプレクサと、前記第四
    及び第五多重化データの第四和又は差を選択的に与え且
    つ前記第六及び第七多重化データの第五和又は差を選択
    的に与えるための第三加算手段と、前記第四和又は差及
    び前記第五和又は差を受信し且つ格納する第五複数個の
    ラッチと、前記第四和と2cos(π/8),2cos
    (π/4)又は2cos(3π/8)又は1との第二乗
    算を選択的に実行するための第二乗算手段と、前記第二
    乗算の結果及び前記第五和又は差を受信し且つ格納する
    ための第六複数個のラッチと、前記第六複数個のラッチ
    内に格納されている前記第二乗算の結果と前記第四和又
    は差から第八多重化データを選択する第四マルチプレク
    サ手段と、前記第八多重化データと前記第六複数個のラ
    ッチ内に格納されている前記第五和又は差との第六和又
    は差を計算するための第四加算手段と、前記第六複数個
    のラッチ内に格納されている前記第五和又は差から第九
    多重化データを選択するための第五マルチプレクサ手段
    と、前記第六和又は差と前記第六複数個のラッチ内に格
    納されている第五和又は差から第十多重化データを選択
    するための第六マルチプレクサ手段と、前記第九多重化
    データと前記第十多重化データを受信し且つ格納する第
    七複数個のラッチと、前記第九及び第十多重化データの
    第七和を与え且つ前記第九及び第十多重化データの第八
    和又は差を選択的に与える第五加算手段と、前記第七和
    及び前記第八和を受信し且つ格納する第八複数個のラッ
    チとを有することを特徴とするシステム。
  7. 【請求項7】 請求項4において、前記行格納手段が、
    データ圧縮期間中に二次元離散余弦変換の中間データを
    格納すると共にデータ脱圧縮期間中に二次元逆離散余弦
    変換の中間データを格納し一度に一対の前記中間データ
    の読取り及び書込みを行なうことを可能とするメモリ手
    段と、前記一対の中間データを前記メモリ手段に対して
    読取り/書込みアクセス読取り動作及び書込み動作を行
    なうためのアドレスを発生するアドレス発生器手段とを
    有することを特徴とするシステム。
  8. 【請求項8】 請求項7において、前記メモリ手段が、
    前記一対の中間データの第一データを格納するための複
    数個のメモリセルからなる奇数プレーンと、前記一対の
    中間データの第二データを格納するための複数個のメモ
    リセルからなる偶数プレーンとを有することを特徴とす
    るシステム。
  9. 【請求項9】 請求項8において、前記メモリ手段をア
    クセスする方法において、各マトリクスが同数の行及び
    列を有しており且つ同一の寸法の第一及び第二正方形マ
    トリクスを順番に与え、前記マトリクスは行毎に一度に
    二つのエントリが与えられ、前記第一行の書込みの開始
    において前記二つのエントリの最初のものが前記奇数プ
    レーン内に書込まれ且つ前記二つのエントリの2番目の
    ものが前記偶数プレーン内に書込まれるような順番で一
    度に二つのエントリずつで前記第一マトリクスを前記メ
    モリ手段内に書込み、且つ前記順番を第二行の開始にお
    いて逆転させて前記二つのエントリの第一のものを前記
    偶数プレーン内に書込み且つ前記二つのエントリの第二
    のものを前記奇数プレーン内に書込み、前記第一マトリ
    クスが完全に前記メモリ手段内に書込まれるまで前記順
    番を交互に逆にし、前記第一マトリクスの全体が読取ら
    れるまで行毎に一度に二つのエントリずつ前記第一マト
    リクスを読取り且つ前記第一マトリクスの読取りの各二
    つのエントリによって以前占有されていた前記メモリ手
    段のメモリ位置内に行毎に一度に二つのエントリずつ前
    記第二マトリクスを書込み、且つ前記第二マトリクスの
    書込みが前記第一マトリクスの書込みの場合と実質的に
    同一の順番である、上記各ステップを有することを特徴
    とするシステム。
  10. 【請求項10】 N点離散余弦変換を計算するFIRデ
    ジタルフィルタバンクにおいて、N個のFIRデジタル
    フィルタを有しており、そのうちでk番目のFIRデジ
    タルフィルタが次式の形態のシステム関数を有してお
    り、 前記k番目のFIRデジタルフィルタがk=0,1,
    2...,N−1を満足することを特徴とするFIRデ
    ジタルフィルタバンク。
  11. 【請求項11】 請求項10において、前記k番目のフ
    ィルタが、複数個のカスケード接続した対称的FIRデ
    ジタルフィルタを有することを特徴とするFIRデジタ
    ルフィルタバンク。
  12. 【請求項12】 請求項11において、前記k番目のフ
    ィルタの前記複数個のカスケード接続した対称的FIR
    デジタルフィルタの各々がFIRデジタルフィルタの二
    進ツリーのノードであり、前記FIRデジタルフィルタ
    の二進ツリーが前記FIRデジタルフィルタバンクを構
    成していることを特徴とするFIRデジタルフィルタバ
    ンク。
  13. 【請求項13】 請求項12において、前記FIRデジ
    タルフィルタの二進ツリーが1+logN個のレベル
    を有しており、前記1+logN個のレベルのうちの
    m番目のレベルが2個の対称的フィルタを有してお
    り、前記m番目のレベルの対称的フィルタがN/2
    m−1の次数であることを特徴とするFIRデジタルフ
    ィルタバンク。
  14. 【請求項14】 請求項13において、Nの値が8であ
    ることを特徴とするFIRデジタルフィルタバンク。
  15. 【請求項15】 請求項14において、前記FIRデジ
    タルフィルタの二進ツリーが、 システム関数H(z)=z+1及びH(z)=z
    1を持ったFIRフィルタの第一レベル、 システム関数H(z)=z+1、H(z)=z
    1、H(z)=z+2zcos(π/4)+1、H
    (z)=z−2zcos(π/4)+1を持ったF
    IRデジタルフィルタの第二レベル、 H(z)=z+1、H(z)=z−1、H(z)=
    +2zcos(π/4)+1、H(z)=z−2
    zcos(π/4)+1、H(z)=z+2zcos
    (π/8)+1、H(z)=z−2zcos(π/
    8)+1、H(z)=z+2zcos(3π/8)+
    1、H(z)=z−2zcos(3π/8)+1のシ
    ステム関数を持ったFIRデジタルフィルタの第三レベ
    ル、 次式のシステム関数を持ったFIRデジタルフィルタの
    第四レベル、 H(Z)=Z−1/2jπl/16(z−e
    −jπl/8) 但し、l=0,1,・・・7を有することを特徴とする
    FIRデジタルフィルタバンク。
  16. 【請求項16】 シーケンスx[0]...x[7]に
    対する8点離散余弦変換を計算する装置において、 次式によってa[0]...a[3]の量を計算する手
    段、 a[0]=x[0]+x[7]、 a[1]=x[1]+x[6]、 a[2]=x[2]+x[5]、 a[3]=x[3]+x[4]、 次式によってb[0]...b[3]の量を計算する手
    段、 b[0]=x[0]−x[7]、 b[1]=x[1]−x[6]、 b[2]=x[2]−x[5]、 b[3]=x[3]−x[4]、 次式によってc[0]及びc[1]の量を計算する手
    段、 c[0]=a[0]+a[3]、 c[1]=a[1]+a[2]、 次式によってd[0]及びd[1]の量を計算する手
    段、 d[0]=a[0]−a[3]、 d[1]=a[1]−a[2]、 次式によってe[0]及びe[1]の量を計算する手
    段、 e[0]=b[0]+2b[2]cos(π/4)−b
    [3]、 e[1]=b[1]+2b[3]cos(π/4)−b
    [2]、 次式によってf[0]及びf[1]の量を計算する手
    段、 f[0]=b[0]−2b[1]cos(3π/8)−
    b[3]、 f[1]=b[1]−2b[3]cos(3π/8)−
    b[2]、 g[0]=c[0]+c[1]によってg[0]の量を
    計算する手段、 h[0]=c[0]−c[1]によってh[0]の量を
    計算する手段、 i[0]=d[0]+2d[1]cos(π/4)−d
    [1]によってi[0]の量を計算する手段、 j[0]=d[0]−2d[1]cos(π/4)−d
    [1]によってj[0]の量を計算する手段、 1[0]=e[0]+2e[1]cos(π/8)−e
    [1]によって1[0]の量を計算する手段、 m[0]=e[0]−2e[1]cos(π/8)−e
    [1]によってm[0]の量を計算する手段、 n[0]=f[0]+2f[1]cos(3π/8)−
    f[1]によってn[0]の量を計算する手段、 o[0]=c[0]−2f[1]cos(3π/8)−
    f[1]によってo[0]の量を計算する手段、 次式によって離散余弦変換係数X[0]...X[8]
    を計算する手段、 X[0]=j[0]、 X[1]=−2l[0]cos(π/16)、 X[2]=−2i[0]cos(π/8)、 X[3]=−2n[0]cos(3π/16)、 X[4]=−2h[0]cos(π/4)、 X[5]=−2o[0]cos(5π/16)、 X[6]=−2j[0]cos(3π/8)、 X[7]=−2m[0]cos(7π/16)、 を有することを特徴とする装置。
  17. 【請求項17】 シーケンスx[0]...x[7]に
    対する8点離散余弦変換を計算する方法において、 次式によってa[0]...a[3]の量を計算し、 a[0]=x[0]+x[7]、 a[1]=x[1]+x[6]、 a[2]=x[2]+x[5]、 a[3]=x[3]+x[4]、 次式によってb[0]...b[3]の量を計算し、 b[0]=x[0]−x[7]、 b[1]=x[1]−x[6]、 b[2]=x[2]−x[5]、 b[3]=x[3]−x[4]、 次式によってc[0]及びc[1]の量を計算し、 c[0]=a[0]+a[3]、 c[1]=a[1]+a[2]、 次式によってd[0]及びd[1]の量を計算し、 d[0]=a[0]−a[3]、 d[1]=a[1]−a[2]、 次式によってe[0]及びe[1]の量を計算し、 e[0]=b[0]+2b[2]cos(π/4)−b
    [3]、 e[1]=b[1]+2b[3]cos(π/4)−b
    [2]、 次式によってf[0]及びf[1]の量を計算し、 f[0]=b[0]−2b[1]cos(3π/8)−
    b[3]、 f[1]=b[1]−2b[3]cos(3π/8)−
    b[2]、 g[0]=c[0]+c[1]によってg[0]の量を
    計算し、 h[0]=c[0]−c[1]によってh[0]の量を
    計算し、 i[0]=d[0]+2d[1]cos(π/4)−d
    [1]によってi[0]の量を計算し、 j[0]=d[0]−2d[1]cos(π/4)−d
    [1]によってj[0]の量を計算し、 l[0]=e[0]+2e[1]cos(π/8)−e
    [1]によって1[0]の量を計算し、 m[0]=e[0]−2e[1]cos(π/8)−e
    [1]によってm[0]の量を計算し、 n[0]=f[0]+2f[1]cos(3π/8)−
    f[1]によってn[0]の量を計算し、 o[0]=c[0]−2f[1]cos(3π/8)−
    f[1]によってo[0]の量を計算し、且つ次式によ
    って離散余弦変換係数X[0]...X[8]を計算す
    る、 X[0]=j[0]、 X[1]=−2l[0]cos(π/16)、 X[2]=−2i[0]cos(π/8)、 X[3]=−2n[0]cos(3π/16)、 X[4]=−2h[0]cos(π/4)、 X[5]=−2o[0]cos(5π/16)、 X[6]=−2j[0]cos(3π/8)、 X[7]=−2m[0]cos(7π/16)、 を有することを特徴とする方法。
  18. 【請求項18】 請求項1において、前記二次元離散余
    弦変換手段の計算期間中に入力データを格納し且つ二次
    元逆離散余弦変換の計算期間中に出力データを格納する
    ためのブロックメモリ手段、離散余弦変換の係数及び逆
    離散余弦変換の係数を選択的に与えるための個別的な余
    弦変換プロセサ手段、前記二次元離散余弦変換の中間デ
    ータ及び前記二次元逆離散余弦変換の中間データを一時
    的に格納するための行格納手段、前記二次元離散余弦変
    換の計算期間中において前記離散余弦変換プロセサ手段
    へ送信するために前記プロックメモリ手段からのデータ
    と前記行格納手段からの前記二次元離散余弦変換の中間
    データとを交互に受信し且つ前記二次元逆離散余弦変換
    の計算期間中において前記個別的余弦変換プロセサ手段
    へ送信するために入力データと前記行格納手段からの前
    記二次元逆離散余弦変換の中間データとを交互に受信す
    るための入力選択手段、前記二次元離散余弦変換の計算
    期間中において前記離散余弦変換の係数から前記二次元
    離散余弦変換の係数と前記二次元離散余弦変換の中間デ
    ータとを分離し且つ前記二次元離散余弦変換の係数を出
    力データとして送信すると共に前記二次元離散余弦変換
    の中間データを前記行格納手段へ送信し且つ前記二次元
    逆離散余弦変換の計算期間中において前記逆離散余弦変
    換の係数から前記二次元逆離散余弦変換の係数と前記二
    次元逆離散余弦変換の中間データとを分離し且つ前記二
    次元逆離散余弦変換の係数を前記ブロックメモリ手段へ
    送信すると共に前記二次元逆離散余弦変換の中間データ
    を前記行格納手段へ送信するための行/列分離手段、を
    有することを特徴とするシステム。
  19. 【請求項19】 請求項17において、前記離散余弦変
    換プロセサ手段が、第一、第二、第三、第四データを受
    信するための第一複数個のラッチと、前記第一及び第二
    データの第一和又は差を選択的に計算すると共に前記第
    三及び第四データに対する第二和又は差を選択的に計算
    するための第一加算手段と、前記第一和又は差を第一結
    果として且つ前記第二和又は差を第二結果として受信し
    格納し且つ送信するための第二複数個のラッチと、前記
    第一結果と2cos(π/8)、2cos(π/4)、
    2cos(3π/8)、1との第一乗算を選択的に実行
    するための第一乗算手段と、前記第一乗算の結果を受信
    し格納し且つ送信し且つ前記第二複数個のラッチから前
    記第二結果を受信し格納し且つ送信するための第三複数
    個のラッチと、前記第一乗算の結果と前記第二複数個の
    ラッチ内の第一結果とから第一多重化データを選択する
    ための第一マルチプレクサ手段と、前記第一乗算の結果
    と前記第三複数個のラッチ内の第二結果とから第二多重
    化データを選択するための第二マルチプレクサ手段と、
    前記第一多重化データと前記第三複数個のラッチ内に格
    納されている前記第二結果との第三和又は差を計算する
    ための第二加算手段と、前記第三複数個のラッチ内に格
    納されている前記第二結果と前記第三和又は差からの第
    三多重化データを選択するための第三マルチプレクサ手
    段と、前記第二多重化データと前記第三多重化データと
    を受信するための第四複数個のラッチと、前記第四複数
    個のラッチから第四、第五、第六、第七多重化データを
    選択するための複数個のマルチプレクサと、前記第四及
    び第五多重化データの第四和又は差を選択的に与えると
    共に前記第六及び第七多重化データの第五和又は差を選
    択的に与えるための第三加算手段と、前記第四和又は差
    及び前記第五和又は差を受信し且つ格納するための第五
    複数個のラッチと、前記第四和と2cos(π/8)、
    2cos(π/4)、又は2cos(3π/8)又は1
    との第二乗算を選択的に実行するための第二乗算手段
    と、前記第二乗算の結果及び前記第五和又は差を受信し
    且つ格納するための第六複数個のラッチと、前記第六複
    数個のラッチ内に格納された前記第二乗算の結果と前記
    第四和又は差からの第八多重化データを選択するための
    第四マルチプレクサ手段と、前記第八多重化データと前
    記第六複数個のラッチ内に格納されている前記第五和又
    は差の第六和又は差を計算するための第四加算手段と、
    前記第六複数個のラッチ内に格納されている前記第五和
    又は差から第九多重化データを選択するための第五マル
    チプレクサ手段と、前記第六和又は差と前記第六複数個
    のラッチ内に格納されている前記第五和又は差から第十
    多重化データを選択するための第六マルチプレクサ手段
    と、前記第九多重化データと前記第十多重化データとを
    受信し且つ格納するための第七複数個のラッチと、前記
    第九及び第十多重化データの第七和を供給し且つ前記第
    九及び第十多重化データの第八和又は差を選択的に供給
    するための第五加算手段と、前記第七和及び前記第八和
    を受信し且つ格納するための第八複数個のラッチと、を
    有することを特徴とするシステム。
  20. 【請求項20】 請求項17において、前記行格納手段
    が、データ圧縮期間中において二次元離散余弦変換の中
    間データを格納すると共にデータ脱圧縮期間中において
    二次元逆離散余弦変換用の中間データを格納し一度に一
    対の前記中間データの読取り及び書込みを行なうことが
    可能なメモリ手段、前記一対の中間データを前記メモリ
    手段へ読取り/書込みアクセス読取り及び書込み動作を
    行なうためのアドレスを発生するためのアドレス発生手
    段、を有することを特徴とするシステム。
  21. 【請求項21】 請求項20において、前記メモリ手段
    が、前記一対の中間データのうちの第一データを格納す
    るための複数個のメモリセルからなる奇数プレーン、前
    記一対の中間データのうちの第二データを格納するため
    の複数個のメモリセルからなる偶数プレーン、を有する
    ことを特徴とするシステム。
  22. 【請求項22】 請求項21において、前記メモリ手段
    をアクセスする方法が、各マトリクスが同数の行及び列
    を有しており寸法が同一の第一及び第二正方形マトリク
    スを順番に供給し、前記マトリクスは行毎に一度に二つ
    のエントリが与えられ、第一行の書込みの最初において
    前記二つのエントリの第一のものが前記奇数プレーン内
    に書込まれ、且つ前記二つのエントリのうちの第二のも
    のが前記偶数プレーン内に書込まれ、且つ前記順番は前
    記第一行を介して維持され、且つ前記順番は第二行の始
    めにおいて逆にされ、前記二つのエントリの第一のもの
    が前記偶数プレーン内に書込まれ且つ前記二つのエント
    リのうちの第二のものが前記奇数プレーン内に書込ま
    れ、前記順番は前記第一マトリクスが完全に前記メモリ
    手段内に書込まれるまで交互に逆にされるような順番で
    一度に二つのエントリずつで前記第一マトリクスを前記
    メモリ手段内に書込み、前記第一マトリクスの全体が読
    取られるまで行毎に一度に二つのエントリずつ前記第一
    マトリクスを読取り且つ読取られた前記第一マトリクス
    の二つのエントリの各々によって以前占有されていた前
    記メモリ手段のメモリ位置内に行毎に一度に二つのエン
    トリずつ前記第二マトリクスを書込み、且つ前記第二マ
    トリクスの書込みが前記第一マトリクスの書込みの場合
    と実質的に同一である、上記各ステップを有することを
    特徴とするシステム。
  23. 【請求項23】 請求項1において、前記ホフマンコー
    ディング・デコーディング手段が、前記二次元離散余弦
    変換のラン長表示型係数を格納するための先入れ先出し
    メモリ(FIFO)手段、圧縮期間中においてはホフマ
    ンコードエンコード用テーブル及び脱圧縮期間中におい
    てはホフマンコードデコード用テーブルを格納すると共
    に供給するホフマンテーブル手段、前記ホフマンコード
    エンコード用テーブルを使用して前記二次元離散余弦変
    換のラン長表示型係数をホフマンコードへ変換するコー
    ディング手段、前記ホフマンコードデコード用テーブル
    を使用して前記ホフマンコードを前記二次元離散余弦変
    換のラン長表示型係数へ変換するデコーディング手段、
    を有することを特徴とするシステム。
  24. 【請求項24】 請求項23において、前記コーディン
    グ手段が、前記二次元離散余弦変換のラン長表示型係数
    を要求する読取り制御手段、前記ホフマンコードエンコ
    ード用テーブル内のエントリを要求するために前記ホフ
    マンテーブル手段に対する前記二次元離散余弦変換のラ
    ン長表示型係数から構成されるアドレスを供給するコー
    ディングアドレス手段、前記ホフマンコードエンコード
    用テーブル内の前記エントリを出力ホフマンコードとし
    て供給するホフマンコード出力手段、を有することを特
    徴とするシステム。
  25. 【請求項25】 請求項23において、前記デコーディ
    ング手段が、ホフマンコードを受取るためのホフマンコ
    ード受取り手段、前記ホフマンコードデコード用テーブ
    ル内のエントリを要求するために前記ホフマンテーブル
    手段へ前記ホフマンコードか又は次のアドレスの何れか
    から構成されるアドレスを供給するデコーディングアド
    レス手段、前記ホフマンコードデコード用テーブルのエ
    ントリが前記二次元離散余弦変換のラン長表示型係数で
    あるか又は次のアドレスを有しているかを決定するため
    に前記ホフマンコードデコード用テーブルのエントリを
    検査し且つ前記ホフマンコードデコード用テーブルのエ
    ントリが次のアドレスを有する場合には前記デコーディ
    ングアドレス手段へ前記次のアドレスを供給するデコー
    ディング制御手段、前記二次元離散余弦変換の前記ラン
    長表示型係数を出力ホフマンデコード済みデータとして
    供給するホフマンデコード出力手段、を有することを特
    徴とするシステム。
  26. 【請求項26】 固定長データに関してホフマンコーデ
    ィング/デコーディングを実施する装置において、前記
    固定長データを格納するための先入れ先出しメモリ(F
    IFO)手段、エンコーディング期間中においてはホフ
    マンコードエンコード用テーブル及びデコーディング期
    間中においてホフマンコードデコード用テーブルを格納
    し且つ供給するホフマンテーブル手段、前記ホフマンコ
    ードエンコード用テーブルを使用して前記固定長データ
    をホフマンコードへ変換するコーディング手段、前記ホ
    フマンコードデコード用テーブルを使用して前記ホフマ
    ンコードを前記固定長データへ変換するデコーディング
    手段、を有することを特徴とする装置。
  27. 【請求項27】 請求項26において、前記コーディン
    グ手段が、前記固定長データの固定長データ項目を要求
    する読取り制御手段、前記ホフマンコードエンコード用
    テーブル内のエントリを要求するために前記ホフマンテ
    ーブル手段へ前記固定長データ項目から構成されたアド
    レスを供給するコーディングアドレス手段、前記ホフマ
    ンコードエンコード用テーブル内の前記エントリを出力
    ホフマンコードとして供給するホフマンコード出力手
    段、を有することを特徴とする装置。
  28. 【請求項28】 請求項27において、前記デコーディ
    ング手段が、ホフマンコードを受取るためのホフマンコ
    ード受取り手段、前記ホフマンコードデコード用テーブ
    ル内のエントリを要求するために前記ホフマンテーブル
    手段へ前記ホフマンコードか又は次のアドレスから構成
    されたアドレスを供給するデコーディングアドレス手
    段、前記ホフマンコードデコード用テーブルのエントリ
    が次のアドレスを有する固定長データ項目であるか否か
    を決定するために前記ホフマンコードデコード用テーブ
    ルのエントリを検査し且つ前記ホフマンコードデコード
    用テーブルのエントリが次のアドレスを有する場合に前
    記デコード用アドレス手段へ前記次のアドレスを供給す
    るデコーディング制御手段、前記固定長データ項目を出
    力ホフマンデコード済みデータ項目として供給するホフ
    マンデコード出力手段、を有することを特徴とする装
    置。
  29. 【請求項29】 ビデオ出力装置へビデオデータを供給
    する方法において、複数個のブロックの圧縮データにお
    ける前記ビデオ出力装置へ圧縮データを供給し、前記圧
    縮データは画像の物理的エリアヘマップされており、前
    記複数個のブロックの圧縮データは前記画像全体をカバ
    ーしており、前記ビデオ出力装置内の第一メモリ内に前
    記圧縮データを格納し、1ブロックの圧縮データに対し
    て前記第一メモリをアクセスし且つ前記ブロックの圧縮
    データに関して脱圧縮を実行することにより1ブロック
    の脱圧縮データを供給し、前記ブロックの脱圧縮データ
    を第二メモリ内に格納し、前記第二メモリは前記画像の
    一部に対応するブロックの脱圧縮データのみを保持し、
    前記第二メモリ内に格納した脱圧縮データを使用して前
    記画像の前記部分を出力として供給する、上記各ステッ
    プを有することを特徴とする方法。
  30. 【請求項30】 ビデオ出力装置へビデオデータを供給
    する装置において、複数個のブロックの圧縮データとし
    て前記ビデオ出力装置へ圧縮データを供給する手段が設
    けられており、前記圧縮データは画像の物理的エリアヘ
    マップされており、前記複数個のブロックの圧縮データ
    は前記画像全体をカバーしており、前記ビデオ出力装置
    内の第一メモリ内に前記圧縮データを格納する手段が設
    けられており、1ブロックの圧縮データに対して前記第
    一メモリをアクセスすると共に前記ブロックの圧縮デー
    タに関して脱圧縮を実行することにより1ブロックの脱
    圧縮データを供給する手段が設けられており、第二メモ
    リ内に前記ブロックの脱圧縮データを格納する手段が設
    けられており、前記第二メモリは前記画像の一部に対応
    する脱圧縮データのブロックのみを保持するものであ
    り、前記第二メモリ内に格納されている脱圧縮データを
    使用して前記画像の前記部分を出力として供給する手段
    が設けられていることを特徴とする装置。
  31. 【請求項31】 データ圧縮及び脱圧縮方法において、
    デジタル化画像を受信し且つ送信するためのビデオイン
    ターフェース手段を供給し、データ圧縮期間中において
    前記ビデオインターフェース手段によって受信したデー
    タに関して二次元離散余弦変換を実行すると共に前記二
    次元離散余弦変換の係数を与え且つデータ脱圧縮期間中
    において二次元逆離散余弦変換を実行し且つデジタル化
    画像としての送信のために前記ビデオインターフェース
    へ前記二次元逆離散余弦変換の係数を出力データとして
    供給する離散余弦変換手段を供給し、データ圧縮期間中
    において前記二次元離散余弦変換の高周波数係数を減衰
    させると共にデータ脱圧縮期間中において前記二次元逆
    離散余弦変換の準備として前記二次元離散余弦変換の前
    記高周波数係数を部分的に回復させるための量子化手段
    を供給し、データ圧縮期間中において前記二次元離散余
    弦変換の係数をシーケンシャルな順番からジグザグな順
    番へ再配列させ且つデータ脱圧縮期間中において前記二
    次元離散余弦変換の前記ジグザグな順番とした係数をジ
    グザグな順番からシーケンシャルな順番へ再配列させる
    ジグザグ手段を供給し、データ圧縮期間中において前記
    二次元離散余弦変換の前記ジグザグの順番とした係数を
    ゼロ係数のランがゼロ係数のラン長として表わされる前
    記二次元離散余弦変換のラン長表示型係数としてパッキ
    ングすると共にデータ脱圧縮期間中において前記二次元
    離散余弦変換の前記ラン長表示型係数を前記二次元離散
    余弦変換の前記ジグザグの順番とした係数へアンパッキ
    ングするためのデータパッキング・アンパッキング手段
    を供給し、データ圧縮期間中において前記二次元離散余
    弦変換の前記ラン長表示型係数をホフマンコードヘコー
    ディングすると共にデータ脱圧縮期間中において前記ホ
    フマンコードを前記二次元離散余弦変換の前記ラン長表
    示型係数へデコーディングするためのホフマンコーディ
    ング・デコーディング手段を供給し、データ圧縮期間中
    において前記ホフマンコードをホストコンピュータへ送
    信すると共にデータ脱圧縮期間中において前記ホフマン
    コードをホストコンピュータから検索するためのホスト
    インターフェース手段を供給する、上記各ステップを有
    することを特徴とする方法。
JP3127008A 1990-03-14 1991-03-14 離散余弦変換及びコーディング技術を使用したビデオデータの圧縮及び脱圧縮用システム Pending JPH0750831A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US494242 1983-05-13
US07/494,242 US5196946A (en) 1990-03-14 1990-03-14 System for compression and decompression of video data using discrete cosine transform and coding techniques
US49558390A 1990-03-16 1990-03-16
US495583 1990-03-16

Publications (1)

Publication Number Publication Date
JPH0750831A true JPH0750831A (ja) 1995-02-21

Family

ID=27051366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3127008A Pending JPH0750831A (ja) 1990-03-14 1991-03-14 離散余弦変換及びコーディング技術を使用したビデオデータの圧縮及び脱圧縮用システム

Country Status (3)

Country Link
EP (1) EP0447234A3 (ja)
JP (1) JPH0750831A (ja)
CA (1) CA2038131A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005115015A1 (ja) * 2004-05-20 2005-12-01 Matsushita Electric Industrial Co., Ltd. 画像処理装置及びデータ処理方法
US7914898B2 (en) 2003-12-09 2011-03-29 Kabushiki Kaisha Kobe Seiko Sho Resin-coated metal plate for use in perforating printed-wiring board

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5598514A (en) * 1993-08-09 1997-01-28 C-Cube Microsystems Structure and method for a multistandard video encoder/decoder
KR0155784B1 (ko) 1993-12-16 1998-12-15 김광호 영상데이타의 적응형 가변장 부호화/복호화방법
KR100186915B1 (ko) * 1994-07-13 1999-05-01 모리시다 요이치 디지털 부호화 장치 및 디지털 부호 복호화 장치
US5910909A (en) * 1995-08-28 1999-06-08 C-Cube Microsystems, Inc. Non-linear digital filters for interlaced video signals and method thereof
CN111327327A (zh) * 2020-03-20 2020-06-23 许昌泛网信通科技有限公司 一种数据压缩和恢复的方法
CN115348432B (zh) * 2022-08-15 2024-05-07 上海壁仞科技股份有限公司 数据处理方法及装置、图像处理方法、电子设备及介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4302775A (en) * 1978-12-15 1981-11-24 Compression Labs, Inc. Digital video compression system and methods utilizing scene adaptive coding with rate buffer feedback
US4743958A (en) * 1986-10-06 1988-05-10 The Grass Valley Group, Inc. Multiple television standards input selector and convertor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7914898B2 (en) 2003-12-09 2011-03-29 Kabushiki Kaisha Kobe Seiko Sho Resin-coated metal plate for use in perforating printed-wiring board
WO2005115015A1 (ja) * 2004-05-20 2005-12-01 Matsushita Electric Industrial Co., Ltd. 画像処理装置及びデータ処理方法

Also Published As

Publication number Publication date
EP0447234A3 (en) 1993-09-08
EP0447234A2 (en) 1991-09-18
CA2038131A1 (en) 1991-09-15

Similar Documents

Publication Publication Date Title
US5270832A (en) System for compression and decompression of video data using discrete cosine transform and coding techniques
US5196946A (en) System for compression and decompression of video data using discrete cosine transform and coding techniques
US5341318A (en) System for compression and decompression of video data using discrete cosine transform and coding techniques
US5191548A (en) System for compression and decompression of video data using discrete cosine transform and coding techniques
US5253078A (en) System for compression and decompression of video data using discrete cosine transform and coding techniques
CN1146246C (zh) 一种输出固定长度块数据的压缩系统
US5298992A (en) System and method for frame-differencing based video compression/decompression with forward and reverse playback capability
US6285796B1 (en) Pseudo-fixed length image compression scheme
US6134270A (en) Scaled forward and inverse discrete cosine transform and video compression/decompression systems employing the same
US5410352A (en) Image data compressing apparatus
US5619591A (en) Encoding and decoding color image data based on mean luminance and an upper and a lower color value
EP0572262A2 (en) Decoder for compressed video signals
EP0572263A2 (en) Variable length code decoder for video decompression operations
JPH07505513A (ja) 同期フレームを用いてディジタル・ビデオ画像のシーケンスを圧縮および復元するための方法および装置
JP3014896B2 (ja) カラー・イメージ伝送のためのデジタル・イメージ・プロセッサ
KR20210094054A (ko) 데이터 어레이들의 비트 평면 인코딩
JPH11501420A (ja) Jpeg画像圧縮標準を実現するvlsi回路構造体
US5729484A (en) Processes, apparatuses, and systems of encoding and decoding signals using transforms
JP2000500312A (ja) 動きベクトル量子化選択システム
JPH11177985A (ja) 高速の画像圧縮のための方法および装置
JPH0750831A (ja) 離散余弦変換及びコーディング技術を使用したビデオデータの圧縮及び脱圧縮用システム
US20020027515A1 (en) Data stream conversion apparatus and method, variable length coded data stream generation apparatus and method, and camera system
JPH10327407A (ja) Mpegシステムデコーダー及びこれのデータ処理方法
US8068681B2 (en) Method and system for pipelined processing in an integrated embedded image and video accelerator
Wong et al. The compression of a sequence of satellite images based on change detection