JP2945324B2 - 圧縮解除装置及びその方法 - Google Patents
圧縮解除装置及びその方法Info
- Publication number
- JP2945324B2 JP2945324B2 JP8173601A JP17360196A JP2945324B2 JP 2945324 B2 JP2945324 B2 JP 2945324B2 JP 8173601 A JP8173601 A JP 8173601A JP 17360196 A JP17360196 A JP 17360196A JP 2945324 B2 JP2945324 B2 JP 2945324B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- codes
- bits
- data
- long horizontal
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
たドキュメント(原稿又は文書)の復元に係り、より詳
細には、CCITT、IBMMR及びTIFFコードを
復号すると共に、各クロックサイクルにおいて一般的に
少なくとも4ビットの圧縮解除されたデータを高速プリ
ントエンジンに供給するために用いられるデコンプレッ
サに関する。
が高まるにつれて、より高速なデコンプレッサへのニー
ズも高まっている。高速なプリントエンジンは、当該プ
リントエンジンによるデータの消耗速度と整合する速度
を有する圧縮解除データのフローを提供するデコンプレ
ッサを必要とする。デコンプレッサがプリントエンジン
より低速である場合、印刷されるドキュメントにギャッ
プが現れる。
変化を示すコードは、デコンプレッサを低速化する。C
CITTの2次元圧縮アルゴリズム、IBMMR及びT
IFFの全てのコードの中で、いくつかのコードは、潜
在的に1ビットのみのデータしか生成することができな
い。これらのコードのシーケンス(順序配列)が、最悪
状態でのパフォーマンス、即ち、カラーの最も頻繁な変
化を生じることになる。これによって、プリントエンジ
ンへのデータのフローが低速化される。
おいて2ビットの圧縮解除されたデータを生成すること
ができるデコンプレッサは提供されている。しかしなが
ら、デコンプレッサの速度を一層高める必要がある。
に4ビットの圧縮解除されたデータを各クロックサイク
ルにおいて提供することによって、CCITT、IBM
MR及びTIFFコードを圧縮解除する速度を高めるこ
とである。以下には、簡単化を目的とするために、CC
ITTコードについて説明されている。しかしながら、
本発明の開示されている実施の形態は、CCITTコー
ドだけでなく、IBMMR及びTIFFコードを圧縮解
除するためにも使用できることに注目されたい。
して、4ビット以上の圧縮解除されたデータを伝送でき
るデコンプレッサが開示されている。
ータを圧縮解除する装置であって、(a)1クロックサ
イクルにおいて一連の所与の数のコードを受け取ると共
にそれらを長水平コード又は非長水平コードへ識別する
手段を備え、前記所与のコード数が、1クロックサイク
ルにおいて生成される圧縮解除データの所望される所与
の最小ビット数に等しく、(b)前記受け取り手段に接
続された並列復号手段を備え、(c)前記受け取り手段
に接続された長コード復号手段を備え、(d)識別され
た長水平コードを前記長コード復号手段へ送り、一つ以
上の非長水平コードから成る一連の非長水平コード内の
識別された非長水平コードを1クロックサイクルにおい
て前記並列復号手段へ送る手段を、前記受け取り手段が
有し、(e)前記並列復号手段が、1クロックサイクル
において受け取られた非長水平コードの各々を1クロッ
クサイクルにおいて並列で復号する複数の復号手段を有
し、(f)デコーダを有する前記複数の復号手段の内の
一つが、一連の非長水平コードの第1のコードを受け取
るように構成及び配列されていると共に、残りの前記複
数の復号手段が、一連の非長水平コード内の残りのコー
ドの全てを受け取るように構成及び配列されており、
(g)前記並列復号手段が、前記並列復号手段によって
受け取られた残りの非長水平コードの各々に対して、残
りのコードのそれぞれに先行する一連の非長水平コード
内のコードによって同一クロックサイクルで生成され得
るビット数の全ての可能な条件に対して、それぞれの残
りのコードを1クロックサイクルで復号し、前記可能な
条件が、1クロックサイクルで生成される圧縮解除され
たデータの所望される所与の最小ビット数より1ビット
少ないビット数までの残りのコードのそれぞれに先行す
る前記一連の非長水平コード内のコードによって生成さ
れ得る最小累積ビット数であり、(h)前記並列復号手
段が、一連の非長水平コードの残りのコードのそれぞれ
に対して指定された数だけのデコーダを有し、その数
は、残りのコードのそれぞれに先行する一連の非長水平
コード内のコードによって生成され得る所望の所与の最
小ビット数までの全ての可能な条件のビット数に等し
く、特定のコードを受け取るための前記指定されたデコ
ーダの数が1より多い時は、前記指定された数のデコー
ダのそれぞれが、可能な条件の内の1つの異なる特定の
条件に対して、同一クロックサイクルにおいてそれぞれ
のコードを復号し、(i)前記並列復号手段に接続され
た非長水平コード圧縮解除データ選択手段を備え、前記
データ選択手段は、i. 前記第1のコードが、少なくと
も所望される所与の最小ビット数の圧縮解除されたデー
タを生成する場合、又は前記第1のコードが一連の非長
水平コード内の唯一のコードである場合、一連の非長水
平コード内の第1のコードの圧縮解除されたデータを選
択し、ii. 前記第1のコードによって生成された圧縮解
除されたデータのビット数が所望された所与の最小ビッ
ト数より少ない場合、及び、第1の二つのコードが、少
なくとも所望された所与の最小ビット数である圧縮解除
されたデータの累積ビット数を生成するか又は第2のコ
ードが一連の非長水平コード内の最後のコードである場
合、一連の非長水平コード内の第1のコードの圧縮解除
されたデータ、及び前記第1のコードの圧縮解除された
データによって生成された実際のビット数に整合する可
能な圧縮解除されたデータの条件に対応する前記非長水
平コード内の第2のコードのための圧縮解除されたデー
タを選択し、iii.第1の二つのコード及び少なくとも所
望される所与の最小ビット数の累積総数を生成する一つ
以上のコードのいずれかによって、第1の二つのコード
によって生成された圧縮解除されたデータの累積ビット
数が、所望される所与の最小ビット数より少ないことが
決定される場合、及び圧縮解除されたデータが選択され
る最後のコードに先行する一連の非長水平コード内のコ
ードによって生成された圧縮解除されたデータの累積ビ
ット数が前記所望された所与の最小ビット数より少ない
か又は選択された最後のコードが一連の非長水平コード
内の最後のコードである場合、一連の非長水平コード内
の第1の二つのコードと、前記一連の非長水平コード内
の第1の二つのコードの圧縮解除されたデータの選択と
同様に第1の二つのコードに続く一連の非長水平コード
内の任意の一つ以上のコードを選択し、(j)前記長コ
ード復号手段へ送られた長コードの圧縮解除されたデー
タを選択するために前記長コード復号手段に接続された
長水平コード圧縮解除データ選択手段を備える圧縮解除
装置である。
タを圧縮解除する方法であって、(a)一連の所与の数
のコードを取り、1クロックサイクルにおいてこれらの
コードを長水平コード又は非長水平コードへ識別するス
テップを備え、(b)一つ以上の非長水平コードから成
る一連の非長水平コードを1クロックサイクルにおいて
並列で復号するステップを備え、一連の非長水平コード
の第1のコードを除いた各コードに対する復号が、一連
の非長コードのコードのそれぞれに先行する一連の非長
水平コード内のコードによって同一クロックサイクルに
おいて生成され得るビット数の全ての可能な条件に対し
て実行され、前記可能な条件が、1クロックサイクルに
おいて生成される圧縮解除されたデータの所望される所
与の最小ビット数より1ビット少ないビット数までの一
連の非長コードの第1のコードを除いた各コードに先行
する前記一連の非長水平コード内のコードによって生成
され得る最小累積ビット数であり、(c)前記第1のコ
ードが少なくとも所望される所与の最小ビット数の圧縮
解除されたデータを生成する場合、又は前記第1のコー
ドが一連の非長水平コード内の唯一のコードである場
合、非長水平コード内の第1のコードの圧縮解除された
データを選択するステップを備え、(d)前記第1のコ
ードによって生成された圧縮解除されたデータのビット
数が所望された所与の最小ビット数より少ない場合、及
び、第1の二つのコードが、少なくとも前記所望された
所与の最小ビット数である圧縮解除されたデータの累積
ビット数を生成するか又は前記第2のコードが一連の非
長水平コード内の最後のコードである場合、一連の非長
水平コード内の第1のコードの圧縮解除されたデータ、
及び前記第1のコードの圧縮解除されたデータによって
生成された実際のビット数に整合する可能な圧縮解除さ
れたデータの条件に対応する前記非長水平コード内の第
2のコードのための圧縮解除されたデータを選択するス
テップを備え、(e)第1の二つのコード及び少なくと
も前記所望される所与の最小ビット数の累積総数を生成
する一つ以上のコードのいずれかによって、第1の二つ
のコードによって生成された圧縮解除されたデータの累
積ビット数が、所望される所与の最小ビット数より少な
いことが決定される場合、及び圧縮解除されたデータが
選択される最後のコードに先行する一連の非長水平コー
ド内のコードによって生成された圧縮解除されたデータ
の累積ビット数が前記所望された所与の最小ビット数よ
り少ないか又は選択された最後のコードが一連の非長水
平コード内の最後コードである場合、一連の非長水平コ
ード内の第1の二つのコードと、一連の非長水平コード
内の第1の二つのコードの圧縮解除されたデータの選択
と同様に第1の二つのコードに続く一連の非長水平コー
ド内の任意の一つ以上のコードを選択するステップを備
える圧縮解除方法である。
る。本発明のデコンプレッサ10において、コード識別
及び変換ブロック12は、32ビットバス14の全体に
対してプロセッサインタフェースから可変長コード(圧
縮画像データ)を受け取る。このコード識別及び変換ブ
ロック12はライン14を介して各クロックサイクルに
おいて32ビットのデータを受け取ると共に、同一クロ
ックサイクルにおいて、一連の4つのコードを識別し、
これらを4つの固定長中間コードへ変換する。また、こ
のコード識別及び変換ブロック12は長水平コードを非
長水平コードから分離する。長水平コードは、4ビット
より多い圧縮解除されたデータを生成する水平コードと
して定義される。PVSHコードと呼ばれる非長水平コ
ードは、パスコード、垂直コード、及び短水平コードを
含む。短水平コードは、4ビット以下の圧縮解除データ
を生成するコードである。
のPVSH中間コードをライン18を介して並列デコー
ダ16へ送る。しかしながら、長水平コードがある場
合、当該コード識別及び変換ブロック12は、この長水
平コードより前にPVSHコードをライン18を介して
並列デコーダ16へ伝送し、この長水平コードとそれに
続くコードを次のクロックサイクルまで保持する。次の
クロックサイクルにおいて、コード識別及び変換ブロッ
ク12は、並列デコーダ16へ中間コードを伝送し、ラ
イン22を介して、LHカウント(長水平カウント)を
長コードデコーダ20へ伝送する。
ーダ16又は長コードデコーダ20のいずれかが、中間
データと、圧縮解除されたデータのビット数に対するカ
ウントと、を生成する。並列デコーダ16からの中間デ
ータはPiデータ(Pidata)(PVSH中間データ)と
呼ばれ、並列デコーダ16からの圧縮解除されたデータ
に対するカウントはPデルタ(Pdelta)(PVSHデル
タ)と呼ばれる。Piデータ及びPデルタは、ライン2
8及び30のそれぞれを介して、並列デコーダ16から
データ拡大ブロック26へ送られる。長コードデコーダ
20からの中間データはLHiデータ(LHidata )(長
水平中間データ)と呼ばれ、長コードデコーダ20から
圧縮解除されたデータのカウントは、LHデルタ(LHde
lta )(長水平デルタ)と呼ばれる。
及び24のそれぞれを介して、長コードデコーダ20か
らデータ拡大ブロック26へ送られる。同一クロックサ
イクルにおいて、データ拡大ブロック26は、並列デコ
ーダ16又は長コードデコーダ20のいずれかから中間
データを拡大して圧縮解除されたデータ36を生成す
る。データ拡大ブロック26は、各クロックサイクルか
ら圧縮解除されたデータを、事前クロックサイクルの圧
縮解除されたデータと連結し、32ビットの圧縮解除さ
れたデータが使用可能となるまでその結果(値)を格納
する。この場合、データ拡大ブロック26は32ビット
の圧縮解除されたデータを伝送する。この圧縮解除され
たデータはライン40を介して先行ラインプロセッサ3
8へ送られる。先行ラインプロセッサ38は、ライン4
2を介して、PVSHコードを圧縮解除するために必要
なデータを、先行ラインから並列デコーダ16へ提供す
る。先行ラインプロセッサ38は、1つの走査ラインの
全てのビットを保持する。
される非圧縮データとそのカウントをライン24及び2
5を介してデータ拡大ブロック26へ伝送する。いくつ
かのコード化システムにおいて、コード化されたデータ
が生データより大きくなった場合、コードは無視され、
生データは非圧縮データとして送られる。従って、デコ
ンプレッサは非圧縮データを認識すると共に、当該非圧
縮データを受け取り、それを変更せずに伝送しなければ
ならない。拡大ブロック26は非圧縮データを受け取
り、それを変更せずに伝送する。
て、その目標は、コード長が1から9ビットまで変化す
る四つのコードを認識することである。図2に関して
は、コードパターン及びそれらのコード長が示されてい
る。例えば、VR3のためのコード長は7ビット、H
(1Wの長さは9ビット、又はパスコードの長さは4ビ
ットである。しかしながら、示されているように、コー
ド長は9ビット以下である。コード表記法"(" は、リー
ディング水平コードを示し、")" は、終端水平コードを
表す。
つのコードの可能性のある組合せは4000件以上もあ
る。この並列の方式によって、非常に大きな複雑なデザ
インが生じることになる。他の方式は、シーケンス(順
序配列)内で四つのコードを識別することである。この
方式において、一つのコードが識別されてシフトされた
後、第2のコードが識別されてシフトされ、次いで第3
のコードが識別されてシフトされ、最後に、第4のコー
ドが識別される。このシーケンシャルな方式によってシ
ーケンシャルな識別及びシフトを介して長いタイミング
遅延が生じることになる。
が取られる。この方式において、二つのコードが同時に
識別され、データはシフトされ、次の二つのコードが同
時に識別される。全ての四つのコードの識別が1クロッ
クサイクル期間で実行される。第1及び第2のコードが
並列で識別され、これらが共にシフトされ、これによ
り、シフトされたデータが第3及び第4のコードを求め
て並列で探索され得る。コードが二つだけが並列で識別
されるにすぎないので、複雑さが軽減される。この方式
においては、シーケンシャルな方式の3つのシフトに比
較して1度のシフトで済む。従って、本発明の方式によ
ってそのタイミングが大きく向上する。
ック12の詳細なブロック図が示されている。コードバ
ッファ50は、各クロックサイクルでライン14を介し
て32ビットのデータを受け取る。受け取られたデータ
は、幅32ビット、奥行き4ビットのコードバッファ5
0内に格納される。コードバッファ50は、各クロック
サイクルで、ライン51、53、54及び55を介し
て、四つの32ビットデータを、位置合わせシフタブロ
ック52へ送る。位置合わせシフターブロック52は、
データを受け取り、ライン56を介して30ビットのデ
ータをPVSHコードコンバータ58、長コードコンバ
ータ60及び非圧縮バッファ62へ送る。位置合わせシ
フタ52は、幅が71ビット、奥行きが4ビットであ
る。この位置合わせシフタブロック52は、シフトせず
に、最初の30ビットを送る。30ビットのデータが送
られる理由は、四つのコードの最大使用可能ビット数が
30ビットだからである。例えば、7ビットを有するコ
ードが三つと9ビットを有するコードが一つで合計ビッ
トが30ビットとなる。従って、各コード上のビット数
によって、四つのコードが30ビットより少ないことも
ある。
の4連続コードが30ビット以下を有してもよいので、
位置合わせ及びシフタブロック52は、非使用ビットを
追跡し、非使用ビットをシフトして入力データと位置合
わせしなければならない。図4に関しては、位置合わせ
シフタ52の一つのローが示されている。位置合わせシ
フタ52内の各レジスタは、71ビット、B0〜B70
を有している。各サイクルにおいて、n個のビットが使
用される場合、位置合わせ及びシフタブロック52は、
n+1ビットをB0へシフトし、n+1ビット以降の全
ての非使用ビットをB0の後に続くビットへシフトす
る。各クロックサイクルにおいて使用されるビット数に
よって、位置合わせ及びシフタブロック52は、コード
バッファ50から新しいビットのセットを取り込む。新
しいビットのセット内のビット数は、先行クロックサイ
クルで使用されたビット数に等しい。従って、ライン5
1、53、54及び55はそれぞれ32ビットバスであ
るので、各クロックサイクルにおいて、位置合わせシフ
タブロック52は、一つのバスか又は二つの連続バスの
いずれかから新しいビットのセットを取り込む。この連
続バスでは、一つのバスがもう一方のパスの後続32ビ
ットを搬送する。
コンバータ58は、PVSHコードを固定長PVSH中
間コードへ変換し、ライン18を介してこれらのコード
を並列デコーダ16(図1)へ送る。長コードコンバー
タ60は、長水平コードに対するLHカウントを生成
し、それをライン22を介して長コードデコータ20へ
送ると共に、ライン64を介してPVSHコードコンバ
ータへ信号を送って、長水平コードが存在するので、P
VSHコードコンバータが並列デコーダ16(図1)へ
無視中間コード(ignore intermediate code)を送らな
ければならないことをPVSHコードコンバータに知ら
せる。
タ58の詳細なブロック図が示される。PVSHコード
コンバータ58は各クロックサイクルで四つのコードを
識別しなければならない。本発明において、一つそして
次のコードから成る二つのコードのあらゆる異なる組合
せを有する2コード識別ルックアップテーブルが生成さ
れた。従って、入力コードからのビットをこれらの組合
せの内の一つと照合させることによって、一度に二つの
コードが識別される。
ブロック70及び72を有している。これらのブロック
70及び72のそれぞれは、2コード識別ルックアップ
テーブルである。これらの2コード識別ブロック70
は、第1の二つのコードを見つけてこれらの二つのコー
ドの総数をライン76を介してシフタ74へ送る。シフ
タ74は、位置合わせ及びシフタ52(図3)から受け
取った30ビットを、第1の二つのコードからのビット
の総数分、シフトする。次いで、シフトされたデータ
は、第3と第4のコードが識別される2コード識別ブロ
ック72へ送られる。2コード識別ブロック70からの
第1の二つのコードがライン80を介してコードコンバ
ータ78へ送られ、2コード識別ブロック72からの二
つのコードがライン84を介してコードコンバータ82
へ送られる。コードコンバータブロック78及び82
は、それぞれ、二つの識別されたコードを二つの固定長
中間コードへ変換する。これによって、二つの中間コー
ドiコードA及びiコードBは、ライン88を介してコ
ードコンバータ78からコードコンバイン86へ送ら
れ、これらの二つの中間コードiコードC及びiコード
Dは、ライン90を介してコードコンバータ82からコ
ードコンバイン86へ送られる。全部で四つの中間コー
ドiコードA、iコードB、iコードC及びiコードD
は、ライン18を介してコードコンバイナ86から送ら
れる。
(図3)の詳細なブロック図が示されている。長コード
コンバータ60は、30ビットのデータを位置合わせ及
びシフタブロック52(図3)から受け取る。長コード
コンバータブロック60は二つのルックアップテーブル
100及び102を有し、一つはホワイトリーディング
コードを示し、他の一つはブラックリーディングコード
を示すと共に、二つのルックアップテーブル104及び
106を有し、この一つがホワイトリーディングコード
を示し、他の一つがブラックリーディングコードを示
す。
タブロック52からライン56を介してブロック10
0、102、104及び106へ送られる。ブロック1
00及び102は、それぞれ、リーディングコードを発
見し、当該リーディングコードのためのカウントを送
る。また、ブロック104及び105は、それぞれ、ト
レーリングコードを発見し、当該トレーリングコードの
ためのカウントを送る。ブロック100、102、10
4及び106は、ライン108、110、112及び1
14のそれぞれへカウントを送る。コードのカラーによ
って、マルチプレクサ(MUX)116は、リーディン
グコードに対してカウント108又は110の内の一つ
の選択し、マルチプレクサ(MUX)118は、トレー
リングコードに対してカウント112又は114の内の
一つを選択する。リーディングコードのためのカウント
はライン122を介してMUX120へ送られ、トレー
リングコードのためのカウントはライン124を介して
MUX120へ送られる。MUX120はライン22を
介してLHカウント(長水平カウント)を長コードデコ
ーダ20(図1)へ送る。
ッファ62がコード同士の間に非圧縮データを格納する
ために使用されている。非圧縮データバッファ62は、
非圧縮データUcデータ24とそのカウントUcデルタ
25を保持し、適時にそれらをデータ拡大ブロック26
へ送る。
CCITTアルゴリズムにおいて使用される規約を理解
しなければならない。図7に関しては、先行ラインデー
タ130の一部と、現在ラインデータ132の対応して
いる部分が示されている。現在ラインデータ132にお
いて、a0はコード化の開始位置を示す。ラインのスタ
ートにおいて、現在ライン上の第1のエレメントの前に
配置された仮想ホワイト位置上にa0がセットされてい
る。現在ライン132のコード化の間、a0の位置は、
先行するコード化モードによって定義される。現在ライ
ン132において、a1は、a0の右に、次のカラー変
化、即ちa0と反対のカラーを示す。また、a2は、a
1の右に、次のカラー変化を示す。先行ライン130に
おいて、b1は、a0の右に、第1のカラー変化即ちa
0と反対のカラーを示すと共に、b2は、b1の右に、
次のカラー変化を示す。
行ラインデータ上のビットへ付与される。先行ラインの
ビット割当ては、開始位置a0に基づく。図8に関して
は、P0は、a0と同じ位置(a0の真上)を有する先
行ライン上のビットであり、P1、P2、P3、P4、
P5、P6、P7及びP8は、ビットP0から始まって
P0の右へ連続するビットである。
ドを並列で復号しなければならない。各コードから圧縮
解除されたデータ長が知られていないため、並列の復号
は複雑になる。例えば、図8に関しては、3ビットの圧
縮解除されたデータを生成するコード例が示されてい
る。この例において、a0は3ビットの圧縮解除された
データを生成したコードの開始位置である。次のコード
a0’の開始位置は、a0から三つ目に位置する。しか
しながら、図9に関しては、第1のコードが2ビットの
データを生成する場合、後に続くコードの開始位置a
0’はa0から2ビット離れている。各コードからの圧
縮解除されたビットの数がわかっていない場合、後に続
くコードのための開始位置を選択するための問題が生じ
る。
る。並列デコーダ16(図1)は、iコードA、iコー
ドB、iコードC及びiコードDを受け取る。iコード
Aは、4ビット以上、3ビット、2ビット又は1ビット
の圧縮解除されたデータのいずれかを生成する。iコー
ドAが4ビット以上を生成する場合、iコードAからの
圧縮解除されたデータが選択され、それに続く中間のコ
ード又は複数のコードからの圧縮解除データは現在クロ
ックサイクルでは無視される。無視された中間コード
は、それに続くクロックサイクル又は複数のクロックサ
イクル上で圧縮解除される。しかしながら、iコードA
が4ビット以下の圧縮解除されたデータを生成する場
合、三つの可能な条件が存在している。iコードAは、
後に続くコードに対する開始位置がa0から一つ目であ
る1ビットを生成する。iコードAは、iコードBの開
始位置がa0から二つ離れている2ビットのデータを生
成してもよい。最後には、iコードAは、iコードBの
開始位置がa0から三つ離れている3ビットのデータを
生成してもよい。これらの結果をあらゆる条件に当ては
めるため、iコードBは三つの異なる開始位置を想定し
ながら、復号される。
ら組合わされた圧縮解除されたデータは、4ビットより
少なくともよい。この場合、iコードA及びiコードB
から圧縮解除されたデータは、その後に続くコード、i
コードC、から圧縮解除されたデータと組合わされなけ
ればならない。iコードAとiコードBの組合わせが4
ビットより少ないデータを生成する場合、二つの可能性
しか存在しない。それらの可能性は、2ビット又は3ビ
ットの圧縮解除されたデータが生成される可能性であ
る。従って、iコードCの開始位置は、a0から2ビッ
ト離れているか又はa0から3ビット離れているかのど
ちらかである。これらの結果をあらゆる条件にあてはめ
るため、iコードCは二つの異なる開始位置を想定して
復号される。
ードCから組み合わされた圧縮解除されたデータが4ビ
ットより少ない圧縮解除されたデータを生成する場合、
これらのデータは3ビットのデータを生成したはずであ
る。この場合、iコードA、iコードB、及びiコード
Cから圧縮解除されたデータは、iコードDの圧縮解除
されたデータと組み合わされる。これによって、デコー
ダDはa0から3ビット離れた開始位置を有している。
6の詳細なブロック図が示されている。並列デコーダ1
6は、7つのデコーダA、B1、B2、B3、C1、C
2及びDを有する。7つのデコーダのうち、iコードA
に対しては一つのデコーダAが提供される。iコードB
に対しては三つのデコーダB1、B2及びB3、iコー
ドCに対してはデコーダC1及びC2、並びにiコード
Dに対してはデコーダDが提供される。デコーダB1
は、iコードAが一つの圧縮解除されたデータのみを生
成したと想定し、デコーダB2はiコードAが2ビット
の圧縮解除されたデータを生成したと想定し、デコーダ
B3は、iコードAが3ビットの圧縮解除されたデータ
を生成したものと想定する。デコーダC1は、iコード
AとiコードBが共に2ビットだけの圧縮解除されたデ
ータを生成したものと想定し、デコーダC2は、iコー
ドAとiコードBが共に3ビットの圧縮解除されたデー
タを生成したものと想定する。最後に、デコーダDは、
iコードA、iコードB及びiコードCが共に3ビット
の圧縮解除されたデータを生成したと想定する。
B1、B2及びB3の内の一つを意味すると共に、用語
「デコーダC」が、デコーダC1及びC2の内の一つを
意味することに注目されたい。
無関係に圧縮解除される。しかしながら、iコードB、
iコードC及びiコードDは、これらの四つの中間コー
ド同士の間のあらゆる可能な条件に対してiコードAと
並列に復号される。iコードAが復号されると、四つの
コード間のすべての可能な条件に対する結果が用意さ
れ、iコードAによって生成される圧縮解除されたデー
タ数によって、圧縮解除されたデータの適切な組合せに
より、最小4ビットの圧縮解除されたデータが、各クロ
ックサイクルにおいて、生成されるのを確実とするため
に選択される。
で全ての可能な条件のテーブルが示されている。このテ
ーブルにおいて、各コラムが各デコーダの圧縮解除され
たデータ長を示している。例えば、条件23は、デコー
ダAが4ビット以上の圧縮解除されたデータを生成した
ことを示している。この条件において、デコーダB、C
及びDからの出力は無視され、デコーダAからの圧縮解
除されたデータが伝送される。デコーダB、C及びDか
らの無視された中間コードは、その後に続くクロックサ
イクル又は複数のクロックサイクル上で圧縮解除され
る。
3ビットのデータを生成したことを示す。この条件にお
いて、デコーダB3の開始位置がデコーダAの開始位置
から3ビット離れているので、デコーダAの結果はデコ
ーダ3の結果と組み合わせられなければならない。図1
1において、+印は非圧縮データがテーブルに示された
数より多いビットを有していることを示す。条件19に
おいては、デコーダ3の結果が1ビット以上を有してい
ることもある。従って、この結果がデコータAの結果と
組み合わされた場合、この組み合わされた結果が4ビッ
ト以上の圧縮解除されたデータとなる。
結果が2ビットであるため、その結果は、開始位置がデ
コーダAの開始位置から2ビット離れた開始位置を有す
るデコーダB2からの結果と組み合わされなければなら
ない。しかしながら、デコーダB2の結果が1ビットに
すぎないので、デコーダAとデコーダB2から組み合わ
された結果は3ビットである。従って、当該デコーダA
とデコーダB2から組み合わされた結果は、デコーダA
の開始位置から3ビット離れた開始位置を有するデコー
ダC2の結果と組み合わせられる。
ドを示し、Pデルタは各クロックサイクルにおいて組み
合わされた圧縮解除されたビットの総計を示す。このテ
ーブルにおけるP及びPデルタの関数は以下により詳細
に記述されている。
はiコードを受け取り、これらは中間データ及び圧縮解
除されたデータ長に対するカウントを生成する。コード
を復号するため、デコーダは各コードに対してa0b1
及びa0b2を有さなくてはならない。各コード長はま
だ知られていないので、iコードB、iコードC及びi
コードDに対してa0b1及びa0b2を見つけること
は上記の想定によって以外は不可能である。従って、コ
ード毎のa0b1及びa0b2は、あらゆる異なる可能
性に対して決定され得る。
に対して、先行ラインから4ビットP0、P1、P2及
びP3の異なる可能性を示す簡単化されたテーブルが示
されている。図12の第1の部分において、a0は0で
あり、先行ラインからの4ビット、P0、P1、P2及
びP3は変更される。示されているように、P0、P
1、P2及びP3同士の間には16個の異なる可能性が
ある。a0は0なので、a0b1及びa0b2は条件毎
に知られている。第2の部分において、a0は1で、先
行ラインからの4ビットP0、P1、P2及びP3は変
化しつつある。このテーブルの二つの異なる部分によっ
て、a0、P0、P1、P2及びP3同士の間の全ての
可能性のある組合せを提供している。従って、a0、P
0、P1、P2及びP3を有すると共にそれらに対する
整合を見つけることによって、この条件のためのa0b
1及びa0b2が定義され得る。
先行ラインの四つのビットP0、P1、P2及びP3の
ために用意されていることに注目されたい。しかしなが
ら、開示されている本発明の実施の形態が各クロックサ
イクルにおいて9ビットの先行ラインデータを必要とす
るので、図12におけるテーブルは、P0、P1、P
2、P3、P4、P5、P6、P7及びP8同士の間で
のあらゆる可能性を提供するために周知の方法によって
拡大されなければならない。このテーブルを9ビットの
先行ラインデータへ拡大することによって、テーブルの
各部分は512通りの条件を有することになる。
ブルが先行ラインプロセッサ38内に格納される。全て
の可能性を使用可能とすることによって、異なるデコー
ダに対してa0b1及びa0b2が提供され得る。しか
しながら、異なるデコーダ毎に開始位置が異なり、先行
ラインデータのビット割当てが各デコーダの開始位置に
基づいていることに注目されたい。異なるデコーダ毎に
開始位置も異なるので、一般項AXB1がa0b1へ割
り当てられ、一般項AXB2がa0b2へ割り当てられ
る。
値(AXB1)及び(AXB2)又は値(AXB1)C
及び(AXB2)Cと、を受け取る。AXは現在ライン
における各デコーダの開始位置を示す。図13に関して
は、デコーダ毎のAXの位置は、以下のように示され
る。デコーダAに対してA0、デコーダB1に対してA
1、デコーダB2に対してA2、B3に対してA3、デ
コーダC2に対してA2、デコーダC3に対してA3、
デコーダDに対してA3。A1はA0の1ビット後ろで
あり、A2はA0の2ビット後ろであり、A3はA0の
3ビット後ろである。
が、CCITTの標準表記のa1とは異なっていること
に注目されたい。この場合、CCITTの標準表記のa
1は現在ラインにおける次のカラーの変化である。しか
しながら、B1及びB2はCCITT標準のb1及びb
2と同じである。
とカラーの第1の変化との間の距離として定義され、A
XB2は先行ラインにおける開始位置とカラーの第2の
変化との間の距離として定義される。(AXB1)C及
び(AXB2)Cは、カラーは例外として、AXB1及
びAXB2と同じである。(AXB1)C及び(AXB
2)Cに関しては、開始位置はAXB1及びAXB2の
開始位置と反対のカラーを有する。
の開始位置と先行ライン上のカラー変化との関係が示さ
れている。図14に関しては、A0はエンコーダAに対
する開始位置であると共に、そのビットのカラーがホワ
イト(0)であるか否かによって、先行ライン上のA0
の右への0から1へのカラー変化がB1を定義し、先行
ライン上のB1の右への1から0へのカラー変化がB2
を定義する。しかしながら、A0のカラーがブラック
(1)である場合、A0右への1から0へのカラー変化
は、先行ライン上のB1を定義し、先行ライン上のB1
右への0から1へのカラー変化はB2を定義する。図1
4の例において、A0のカラーはホワイト(0)であ
る。示されているように、デコーダAは9ビットの先行
ラインデータを使用する。
開始位置である。デコーダAが1ビットのデータを生成
するときのみ、デコーダB1からの結果が使用される。
従って、デコーダB1は開始位置がA0の1ビット後ろ
であると仮定して入力される中間コードを復号すると共
に、パスコードを除く全てのコードがカラー変化を生じ
るので、A0のカラーの反対にカラーを有することにな
る。パスコードの条件は以下に説明される。A1C、A
2C、A3Cが、(AXB1)C又は(AXB2)Cに
おけるAXと同じであることに注目されたい。
ラック(1)である。1が○で囲まれている理由は、A
1Cが仮定であることを区別するためである。デコーダ
Aが1ビットを生成する場合、この仮定は正確でなけれ
ばならない。観察されるように、デコーダB1は8ビッ
トの先行ラインデータを使用する。
に記述された後に、パスコードはより詳細な別の説明を
必要とするので、図15〜図19の記述において当該パ
スコードに対する条件は説明されないことに注目された
い。
値が未知であるのことを示すことに注目されたい。
の開始位置である。デコーダB2からの結果はデコーダ
Aが2ビットのデータを生成する時のみ使用される。従
って、デコーダB2は開始位置がA0の2ビット後ろで
あると仮定する入力中間コードを復号すると共に、パス
コードを除いた全てのコードがカラーの変化を生じるの
で、このA2CはA0のカラーの反対のカラーを有す
る。図16の例においては、A2Cのカラーはブラック
(1)である。1が○で囲まれている理由は、A2Cが
仮定であることを区別するためである。デコーダAが2
ビットを生成する場合、この仮定は正確でなければなら
ない。示されているように、デコーダB2は7ビットの
先行ラインデータを使用する。
の開始位置である。デコーダB3からの結果はデコーダ
Aが3ビットのデータを生成する時のみ使用される。従
って、デコーダB3は開始位置がA0の3ビット後ろで
あると仮定する入力中間コードを復号すると共に、パス
コードを除いた全てのコードがカラーの変化を生じるの
で、このA3Cは、A0のカラーと反対のカラーを有す
る。図17の例においては、A1Cのカラーはブラック
(1)である。1が○で囲まれている理由は、A3Cが
仮定であることを区別するためである。デコーダAが2
ビットを生成する場合、この仮定は正確でなければなら
ない。示されているように、デコーダB3は6ビットの
先行ラインデータを使用する。
開始位置である。デコーダC1からの結果はデコーダA
がデコーダBと共に2ビットのデータを生成する時のみ
使用される。従って、デコーダC1は開始位置がA0の
2ビット後ろであると仮定する入力される中間コードを
復号すると共に、パスコードを除いた全てのコードがカ
ラーの変化を生じ、デコーダA及びBが二つのコードを
復号したので、A2はA0と同じカラーを有する。図1
8の例においては、A2のカラーはホワイト(0)であ
る。0が○で囲まれている理由は、A2が仮定であるこ
とを区別するためである。デコーダA及びBが2ビット
を生成する場合、この仮定は正確でなければならない。
示されているように、デコーダC1は7ビットの先行ラ
インデータを使用する。
開始位置である。デコーダC2からの結果はデコーダA
がデコーダBと共に3ビットのデータを生成する時のみ
使用される。従って、デコーダC2は、開始位置がA0
の3ビット後にあると仮定する入力中間コードを復号す
ると共に、パスコードを除いた全てのコードがカラーの
変化を生じ、デコーダA及びBが二つのコードを復号し
たので、A3はA0と同じカラーを有する。図19の例
においては、A3のカラーはホワイト(0)である。0
が○で囲まれている理由は、A3が仮定であることを区
別するためである。デコーダA及びBが3ビットを生成
する場合、この仮定は正確でなければならない。示され
ているように、デコーダC1は、2ビットだけの現在ラ
インデータ及び6ビットだけの先行ラインデータを使用
する。
A3Cを使用する。デコーダDからの結果は、デコーダ
AがデコーダB及びCと一緒に、3ビットのデータを生
成する時のみ使用される。従って、デコーダDは、開始
位置がA0の3ビット後ろであると仮定する入力中間コ
ードを復号すると共に、パスコードを除いた全てのコー
ドがカラーの変化を生じ、デコーダA、B及びCが三つ
のコードを復号したので、A3はA0のカラーと反対の
カラーを有する。従って、デコーダDの開始位置は、図
17におけるようにブラック(1)である。デコーダD
は、2ビットだけの現在ラインデータ、及び5ビットだ
けの先行ラインデータを使用する。
(AXB2)Cが異なる可能性に対して定義されると、
各コード長が定義され得る。パスコードに対しては、圧
縮解除されたデータ長は、AXB2又は(AXB2)C
に等しい。垂直コードに対して、圧縮解除されたデータ
長は、AXB1プラス中間コードの下位2ビット又は
(AXB1)Cプラス中間コードの下位2ビットに等し
い。最後に、短水平リーディングコードに対して、圧縮
解除されたデータ長は中間短水平リーディングコードの
下位3ビットに等しく、短水平トレーリングコードに対
して、圧縮解除されたデータ長は中間短水平トレーリン
グコードの下位3ビットのに等しい。
1)C及び(AXB2)C、又は中間コードから下位3
ビットを有することによって、PVSHの各中間コード
に対して圧縮解除されたデータ長を提供することができ
る。
開始位置によっては、適切なAXB1、AXB2、(A
XB1)C及び(AXB2)Cが各デコーダへ送られ
る。デコーダAは、コード識別及び変換ブロック12
(図1)から中間コード、iコードA140を受け取
り、先行ラインプロセッサ38(図1)からA0B1、
142及びA0B2、144を受け取る。デコーダA
は、中間コードiコードAから圧縮解除されたデータ長
を生成し、それをデルタA上へ送る。
別及び変換ブロック12(図1)からiコードB146
を受け取り、先行ラインプロセッサ38(図1)から
(AXB1)C及び(AXB2)Cを受け取る。デコー
ダBが反対のカラー(AXB1)及び(AXB2)を受
け取るのは、デコーダAが、カラー変化があったために
次のコードがiコードAと反対のカラーによって復号さ
れなければならないことを示すコードを復号すると、デ
コーダB1、B2及びB3が使われるからである。デコ
ーダB1は、(A1B1)C148及び(A1B2)C
150を受け取る。デコーダB1は、iコードBに対し
て圧縮解除されたデータ長を生成し、iコードBのデー
タ長に1を加算し、その結果をデルタB1へ送る。iコ
ードBからのデータ長に1を加算するのは、デコーダB
1から得られる結果がデコーダAが1ビットを生成した
時のみに使用されるためである。従って、1を加算する
ことによって、デコーダA及びB1によって圧縮解除さ
れたデータの総計がデルタB1へ送られる。
び(A2B2)C154を受け取る。デコーダB2は、
iコードBに対して圧縮解除されたデータ長を生成し、
iコードBに対して圧縮解除されたデータ長に2を加算
し、その結果をデルタB2へ送る。iコードBから圧縮
解除されたデータ長へ2を加算する理由は、デコーダB
2の結果がデコーダAが2ビットを生成した時のみ使用
されるためである。従って、2を加算することによっ
て、デコーダA及びB2によって生成される圧縮解除さ
れたデータの総数がデルタB2へ送られる。
び(A3B2)C158を受け取る。デコーダB3は、
iコードBに対して圧縮解除されたデータ長を生成し、
iコードBに対して圧縮解除されたデータ長に3を加算
し、その結果をデルタB3へ送る。iコードBから圧縮
解除されたデータ長へ3を加算する理由は、デコーダB
2からの結果がデコーダAが3ビットを生成した時のみ
使用されるためである。従って、3を加算することによ
って、デコーダA及びB2によって生成される圧縮解除
されたデータの総数がデルタB3へ送られる。
変換ブロック12(図1)からiコードC160を受け
取り、先行ラインプロセッサ38(図1)からAXB1
及びAXB2を受け取る。デコーダC1及びC2がiコ
ードAのカラーに対してカラーを変更せずにAXB1及
びAXB2を受け取る理由は、デコータA及びBが、A
0からA0と反対のカラーへの変化及びA0の反対カラ
ーからA0へ戻る変化から成る二つのカラー変化を意味
する二つのコードを復号すると、デコーダC1及びC2
が使われるからである。従って、次のコードは、A0の
カラーと同じカラーによって復号されなければならな
い。デコーダC1はA2B1162及びA2B2164
を受け取る。デコーダC1は、iコードCのための圧縮
解除されたデータ長を生成し、当該iコードCのための
圧縮解除データ長に2を加算して、その結果をデルタC
1へ送る。iコードCからの圧縮解除データ長に2を加
算する理由は、デコーダC1からの結果がデコーダA及
びBが共に2ビットのデータを生成する時のみに使用さ
れるからである。従って、2を加算することによって、
デコーダA、B、及びC1によって生成される圧縮解除
されたデータの総数がデルタC1上へ送られる。
3B2 168を受け取る。デコーダC2は、iコード
Cに対して圧縮解除されたデータ長を生成し、iコード
Cに対して圧縮解除されたデータ長に3を加算し、その
結果をデルタC2へ送る。iコードCから圧縮解除され
たデータ長へ3を加算する理由は、デコーダB2の結果
がデコーダA及びBが共に2ビットのデータを生成した
時のみ使用されるためである。従って、2を加算して、
デコーダA、B及びC2によって生成される圧縮解除さ
れたデータの総数がデルタC2へ送られる。
ク12(図1)からiコードD170を受け取り、先行
ラインプロセッサ38(図1)から(AXB1)C及び
(AXB2)Cを受け取る。デコーダDが反対カラー
(AXB1)及び(AXB2)を受け取る理由は、デコ
ータA、B及びCが、A0からA0と反対のカラーへ、
A0の反対カラーからA0へ、及びA0からA0と反対
のカラーへの変更から成る三つのカラー変化を意味する
三つのコードを復号すると、デコーダD3が使用される
からである。従って、iコードDは、A0のカラーと反
対のカラーによって復号されなければならない。デコー
ダDは、iコードDに対して圧縮解除されたデータ長を
生成し、iコードDに対して圧縮解除されたデータ長に
3を加算し、その結果をデルタDへ送る。iコードDか
ら圧縮解除されたデータ長へ3を加算する理由は、デコ
ーダDから得られる結果がデコーダA、B及びCが一緒
に3ビットの圧縮解除されたデータを生成した時のみ使
用されるためである。従って、1を加算することによっ
て、デコーダA、B及びCによって生成される圧縮解除
されたデータの総数がデルタDへ送られる。
コンバータ58がパスコードを受け取る時、このコンバ
ータはパスコードを中間コードへ変換し、このパスコー
ドの中間コードの後に続いて仮中間コードを伝送する。
パスコードの右のコードが中間コードへ変換され、この
コードは仮中間コードの後から送られる。従って、これ
らの中間コードが並列デコーダ16へ送られると、この
パスコードに対する中間コード及びこのパスコードへ続
くコードの中間コードは仮中間コードを常に間に置く。
とパスコードのための中間コードを伝送する理由は、パ
スコードがカラー変化を生じず、これによってパスコー
ドに続くコードが当該パスコードのカラーと同じカラー
を有しているからである。これによって、パスコードと
それに続くコードが二つの連続したデコーダによって復
号されてはならない。
中間コードである場合、当該パスコードに続くコードの
中間コードは、デコーダBがカラー変化を仮定するの
で、このデコーダBによって復号されるべきではない。
本発明において、無視される仮コードはパスコードの中
間コードとこのパスコードに続くコードの中間コードと
の間に挿入されるので、仮コードはデコーダBへ送ら
れ、パスコードに続くコードのための中間コードはデコ
ーダCへ送られる。仮コードを受け取ったデコーダBの
結果は無視され、デコーダAの結果は、パスコードに続
くコードのための中間コードを受け取ったデコーダCの
結果と組み合わせられる。デコーダCはデコーダAの開
始位置のカラーと同じカラー仮定を有しているので、デ
コーダAの結果をデコーダCと組み合わせることによっ
て、パスコードとそれに続くコードに対して正確な復号
が提供される。
きないことに注目されたい。パスコードから圧縮解除さ
れたデータの最小ビット数は2ビットである。従って、
デコーダBを使用しないことによって問題が生じなくな
る。
コードのための中間コードであった場合、デコーダBが
iコードBを受け取り、デコーダCは仮中間コードを受
け取り、デコーダDはパスコードに続くコートのための
中間コードを受け取る。仮コードを受け取ったデコーダ
Cの結果は無視され、デコーダBからの結果が、当該パ
スコードに続くコードのための中間コードを受け取った
デコーダDから得られた結果と組み合わせられる。デコ
ーダDがデコーダBの開始位置のカラーと同じカラー仮
定を有しているので、デコーダBの結果をデコーダDと
組み合わせることによって、パスコードとそれに続くコ
ードのための正確な復号を提供する。ここでまた、パス
コードが1ビットの圧縮解除されたデータを生成するこ
とができないので、デコーダCを使用しないことによっ
て問題が生じなくなる。
生じる度に、そのデコーダからの結果が、第2の後続の
デコーダからの結果と組み合わされる。例えば、条件1
7において、iコードAは、2ビットのデータを生成す
るパスコードの中間コードである。この条件において、
デコーダAからの結果はデコーダC1からの結果と組み
合わされる。しかしながら、条件7においては、iコー
ドAは1ビットの圧縮解除されたデータを生成し、従っ
て、この結果が、デコーダB1からの結果と組み合わせ
られなければならない。この条件では、iコードBは、
たまたま、2ビットの圧縮解除されたデータを生成する
パスコードのための中間コードであるにすぎない。従っ
て、デコーダDがその開始位置において、デコーダB3
の開始位置のカラーと同じカラーの想定(仮定)を有し
ているので、デコーダA及びデコーダB1の結果は、デ
コーダC2よりむしろ、デコーダDの結果と組み合わせ
られなければならない。
のクロックサイクルで生成される圧縮解除されたデータ
のビットの総数である。示されているように、Pデルタ
は、その結果が事前のデコーダの結果と組み合わされる
最後のデコーダから得られる。例えば、条件5において
は、デコーダA及びデコーダB1の結果は、デコーダC
2からの結果と組み合わされる。従って、デルタはデコ
ーダC2から得られる。他の例としては、条件16にお
いて、デコーダA及びC1の結果は、デコーダDからの
結果と組み合わされ、これにより、デルタはデコーダD
から得られる。また、他の例としては、条件23におい
て、デコーダAからの結果が4ビット以上であるので、
このデコーダは、いずれのデコーダの結果と組み合わさ
れずに伝送される。
80、デルタB1 182、デルタB2 184、デル
タB3 186、デルタC1 188、デルタC2 1
90、及びデルタD 192は、全て、ルックアップテ
ーブル200へ送られる。各デルタと共に、そのコード
のカラーも送られることに注目されたい。しかしなが
ら、簡単にするために、各デコーダからのデルタのみが
示されている。ルックアップテーブル200は図11の
データを含む。異なるデコーダからのデルタ同士の間の
異なる条件に基づいて、ルックアップテーブル200
は、適切なPデルタと適切なPiデータを選択する。ル
ックアップテーブル200は、ライン30を介してPデ
ルタを、ライン28を介してPiデータを、データ拡大
ブロック26(図1)へ伝送する。
6からPデルタ30とPiデータ28を受け取ると共に
長コードデコーダ20からLHデルタ30及びLHiデ
ータ32を受け取るデルタ拡大ブロック26は、圧縮解
除されたデータを生成するために受け取られたデルタ
(圧縮解除されたデータのカウント)に基づいて中間デ
ータを拡大しなければならない。
データの生成について調べる必要がある。
ドに対する中間データは、異なる条件に基づいて生成さ
れた。中間データは固定長4ビット(ビット0、ビット
1、ビット2及びビット3)を有していると共に圧縮解
除されたデータを生成するために拡大されなければなら
ない。この中間データは各デコーダ及びカラー変化から
のビット数に基づいている。例えば、条件13において
は、デコーダAからの結果は2ビットであり、デコーダ
B2からの結果も2ビットである。この条件において、
中間データのビット3及びビット2はデコーダAからの
2ビットを示し、従って、ビット3は0を示し、ビット
2は第2のビット上の0から1までのカラー変化を示
す。ビット1は次のデータを介してシフトされた同一カ
ラー(1)を示すと共に、ビット0はカラー変化(0)
を示すデータの終了を示す。
+は「より多い」を示す。従って、条件13において、
デコーダB2が2ビットより多いデータを生成する場
合、中間データは条件13に対して示された中間データ
と同じである。しかしながら、そのデータが拡大される
と、より多いビットの非圧縮データを含む。条件13に
おいて、デコーダB2が2ビットのデータを生成する場
合、中間データが正確な圧縮解除されたデータを含むた
め、当該中間データは拡大されない。しかしながら、デ
コーダB2が2ビット以上のデータを生成する場合、中
間データは拡大されなければならない。この拡大は常に
ビット1で実行される。例えば、条件13において、デ
コーダB2が5ビットのデータを生成する場合、ビット
1は、非圧縮データを生成するために3回反復されなけ
ればならない。
の組合せに使用される最後のデコーダからの結果を除い
て使用される異なるデコーダからの結果に対して正確な
非圧縮データを含む。以下は、簡単化のために、デコー
ダA、B、C及びDの組合せにおける最後のデコーダの
ことを「最後デコーダ」と呼ぶ。最後のデコーダからの
結果は圧縮され、拡大される。最後のデコーダからの結
果を拡大するためには、ビット1ずつ反復するだけで充
分である(Pデルタ−4)。Pデルタはこのクロックサ
イクルに対して圧縮解除されたデータの総数であり、数
4は中間データが有しているビット数を示す。
が5ビットを生成する場合、デルタB2からのPデルタ
は7である。因って、Pデルタ−4=7−4で3とな
る。ビット1が3回反復され、従って、拡大された後で
は、非圧縮データは0111110となる。ビット1が
反復され、これらのビットが、ビット1とビット0の間
に挿入されることに注目されたい(011−111−
0)。
ーダAからの結果は、このコードがパスコードであり、
3ビットを生成したことを示す、3Pである。この結果
は1ビット以上を生成したデコーダC2からの結果と組
み合わせられなければならない。この条件に対する中間
データは0001である。ビット3、ビット2及びビッ
ト1は3ビットのデータを示し、このデータがパスコー
ドからのデータなので、ビット1上でのカラー変化はな
い。デコーダC1が1ビットを生成し、このことは0〜
1のカラー変化を示すビット0によって示される。この
中間データは拡大される必要はない。しかしながら、デ
コーダC2が1ビットより多いデータを生成するなら
ば、中間データは拡大される必要がある。例えば、条件
21において、デコーダC2は2ビットを生成し、中間
データは、Pデルタ−4=(5−4=1)で拡大されな
ければならない。圧縮解除されたデータは00001
(000−0−1となる。
であることに基づいている。しかしながら、a0がブラ
ックである場合、中間データは反転する。
の終了カラーに応じて、中間コードのカラーが後に続く
クロックサイクルにおいて反転される。例えば、a0の
カラーがホワイト(0)であると仮定される第1のクロ
ックサイクル上に条件7が存在している場合、中間コー
ド上の終了カラーは0である。終了カラーがビット0の
カラーであることに注目されたい。第2のクロックサイ
クルにおいて、条件5のような条件が発生する場合、圧
縮解除されたデータが、事前のクロックサイクルからの
終了カラーと同じカラーによってスタートしなければな
らないので、当該中間データは反転される。これによっ
て、この例においては、第2のクロックサイクルにおい
て、条件5に対する中間データは1101から0010
へ反転されなければならない。最後に、第2のクロック
サイクルに対する中間データは0010となる。
いて、条件14が存在すると共に中間データが0111
とされている場合、引き続くクロックサイクルにおい
て、条件19が発生する場合、条件19に対する中間デ
ータは0010から1101へ反転されなければならな
い。従って、この例において、ある特定のクロックサイ
クルに続くクロックサイクルに対する中間コードは11
01となる。
ある時、コード識別及び変換ブロック12はLHカウン
トを長コードデコーダ20へ伝送する。この長コードデ
コーダ20は、マルチプレクサ126から受け取ったL
Hカウントを8で除算し、当該LHカウントがカバーさ
れるまで、LHデルタとして一つのクロックサイクル上
のカウントの各ディビジョンをライン34を介して伝送
し、LHiデータとして適切な中間データをライン32
を介してデータ拡大ブロック26へ送る。LHカウント
をカバーする最後のクロックサイクル上のカウントは8
より少ない。例えば、LHカウントが19である場合、
長コードデコーダ20は第1及び第2のクロックサイク
ル上のカウント8と第3のクロックサイクル上のカウン
ト3を伝送する。これらのカウントはLHデルタ34に
よってデータ拡大ブロック26へ送られる。長コードデ
コーダ20はLHiデータも生成する。LHiデータ
は、長水平コードに対して圧縮解除されたデータを提供
するために拡大の必要がある2ビットの中間データであ
る。
カウントに対して拡大されたLHiデータ(圧縮解除さ
れたデータ)が示されている。LHデルタが8であり、
カウントの残りが以下のクロックサイクルへ送られる場
合、8が伝送されたクロックサイクルに対して、データ
がホワイト又はブラックである場合によって、LHiデ
ータは00又は11である。この場合、LHiデータを
拡大するため、ビット1がカウントのビット数を生成す
るように反復されなければならない。例えば、図20に
おいて、8より少ないカウントは5であるように選択さ
れる。従って、ビット1は3回(LHデルタ−2=5−
2=3)反復され、5ビットの圧縮解除されたデータを
生成するためにビット1とビット0の間に挿入される。
が以下のクロックサイクルへ送られないことを示す8で
ある場合、そのデータがホワイト又はブラックであるか
によって、01又は10がビット1及びビット0へ送ら
れる。この条件において、LHiデータを拡大するため
に、ビット1は6回(LHデルタ−2=8−2=6)反
復され、8ビットの圧縮解除されたデータを生成する。
ら中間データを拡大した後、又は長コードデコーダから
中間コードを拡大した後で、各クロックサイクルの圧縮
解除されたデータを事前のクロックサイクルからの圧縮
解除されたデータと連結し、それらを圧縮解除データが
32ビットになるまで格納し、次いで圧縮解除されたデ
ータとして32ビットを伝送する。
取られた四つのコードの中で識別される時、長水平コー
ドに先行する中間のPVSHコードが並列デコーダ16
(図1)へ送られ、長コードとその後に続くコードが次
のクロックサイクル迄、保持されることに注目された
い。この場合、並列デコーダ16が四つより少ないコー
ドを受け取るので、これらは4ビットより少ない圧縮解
除されたデータを生成する。従って、このクロックサイ
クルにおいては、4ビットより少ない圧縮解除されたデ
ータが伝送される。しかしながら、次のクロックサイク
ルにおいては、第1のコードが長水平コードであるの
で、4ビットより多い圧縮解除されたデータが提供され
る。
クルでの四つのコードの中の第1のコードである時、又
は長水平コードが、現在クロックサイクルで受け取られ
た四つのコードの中の第1のコードとなる現在クロック
サイクル上で復号されるはずの事前のクロックサイクル
から保持される時、当該長水平コードは長コードデコー
ダ20(図1)へ伝送され、無視コードは並列デコーダ
16(図1)へ送られる。並列デコーダ16が無視コー
ドを受け取ると、これらは非起動とされ、長コードデコ
ーダ20だけが長水平コードの圧縮解除されたデータが
4ビットより多い圧縮解除されたデータであるので、一
つの長水平コードを復号する。長水平コードに続くコー
ドは次に復号されるクロックサイクルまで保持される。
長コードデコーダ20はアクティブでないことが更に注
目されよう。
ック26は、非圧縮データUcデータ24及びコード識
別及び変換ブロック12からのカウントUcデータ25
を受け取る。データ拡大ブロック26は非圧縮データU
cデータ24を受け取ると、並列デコーダ16及び長コ
ードデコーダ20を無視し、入力される非圧縮データを
そのまま伝送する。しかしながら、並列デコーダからの
中間データがある時、データ拡大ブロックは並列デコー
ダの中間データを選択し、長コードがある時、データ拡
大ブロックは長コードデコーダから中間データを選択
し、非圧縮データあがある時、非圧縮データを選択す
る。
おいては、並列デコーダ16はアクティブか又は長コー
ドデコーダ20がアクティブか又は非圧縮データがデー
タ拡大ブロック26へ送られるかのいずれかである。非
圧縮データがデータ拡大ブロック26へ送られる時、並
列デコーダ16と長コードデコーダ20はアクティブで
はなくなる。
内で受け取られた四つのコードの中で識別される場合、
非圧縮データに先行するコードはPVSHコードである
場合、これらのコードは長水平コードへ一回で送られ
る、非圧縮データとそれに続くコードは次のクロックサ
イクル又は複数のクロックサイクルまで保持される。非
圧縮データに先行するコードが復号されると、引き続く
クロックサイクルでは、非圧縮データがデータ拡大ブロ
ックへ送られる。非圧縮データがデータ拡大ブロックへ
送られるクロックサイクル期間中、並列デコーダ16及
び長コードデコーダ20はアクティブでなくなる。
取り、この非圧縮データを先行のクロックサイクルから
の圧縮解除されたデータと連結し、32ビットの圧縮解
除されたデータが使用可能となるまでその結果を格納
し、次いで32ビットの圧縮解除されたデータを伝送す
ることに注目されたい。
するために格納される先行ラインプロセッサへ送られ
る。
CCITT、IBMMR及びTIFFコードを1004
00メガビット/秒で圧縮解除することができる。
ータを各クロックサイクルにおいて高速プリントエンジ
ンに供給するために使用されるデコンプレッサを提供す
る。
る。
ック図である。
る。
ク図である。
ク図である。
対応部分を示す図である。
ードの例を示す図である。
ードの例を示す図である。
である。
表である。
の異なる可能性を簡単に示した図表である。
ダAの開始位置を示す図である。
ダB1の開始位置を示す図である。
ダB2の開始位置を示す図である。
ダB3とエンコーダDの開始位置を示す図である。
ダC1の開始位置を示す図である。
ダC2の開始位置を示す図である。
ントに対しての拡大データ(非圧縮データ)を示す図で
ある。
Claims (2)
- 【請求項1】 圧縮された画像データを圧縮解除する装
置であって、 (a)1クロックサイクルにおいて一連の所与の数のコ
ードを受け取ると共にそれらを長水平コード又は非長水
平コードへ識別する手段を備え、前記所与のコード数
が、1クロックサイクルにおいて生成される圧縮解除デ
ータの所望される所与の最小ビット数に等しく、 (b)前記受け取り手段に接続された並列復号手段を備
え、 (c)前記受け取り手段に接続された長コード復号手段
を備え、 (d)識別された長水平コードを前記長コード復号手段
へ送り、一つ以上の非長水平コードから成る一連の非長
水平コード内の識別された非長水平コードを1クロック
サイクルにおいて前記並列復号手段へ送る手段を、前記
受け取り手段が有し、 (e)前記並列復号手段が、1クロックサイクルにおい
て受け取られた非長水平コードの各々を1クロックサイ
クルにおいて並列で復号する複数の復号手段を有し、 (f)デコーダを有する前記複数の復号手段の内の一つ
が、一連の非長水平コードの第1のコードを受け取るよ
うに構成及び配列されていると共に、残りの前記複数の
復号手段が、一連の非長水平コード内の残りのコードの
全てを受け取るように構成及び配列されており、 (g)前記並列復号手段が、前記並列復号手段によって
受け取られた残りの非長水平コードの各々に対して、残
りのコードのそれぞれに先行する一連の非長水平コード
内のコードによって同一クロックサイクルで生成され得
るビット数の全ての可能な条件に対して、それぞれの残
りのコードを1クロックサイクルで復号し、前記可能な
条件が、1クロックサイクルで生成される圧縮解除され
たデータの所望される所与の最小ビット数より1ビット
少ないビット数までの残りのコードのそれぞれに先行す
る前記一連の非長水平コード内のコードによって生成さ
れ得る最小累積ビット数であり、 (h)前記並列復号手段が、一連の非長水平コードの残
りのコードのそれぞれに対して指定された数だけのデコ
ーダを有し、その数は、残りのコードのそれぞれに先行
する一連の非長水平コード内のコードによって生成され
得る所望の所与の最小ビット数までの全ての可能な条件
のビット数に等しく、特定のコードを受け取るための前
記指定されたデコーダの数が1より多い時は、前記指定
された数のデコーダのそれぞれが、可能な条件の内の1
つの異なる特定の条件に対して、同一クロックサイクル
においてそれぞれのコードを復号し、 (i)前記並列復号手段に接続された非長水平コード圧
縮解除データ選択手段を備え、前記データ選択手段は、 i. 前記第1のコードが、少なくとも所望される所与の
最小ビット数の圧縮解除されたデータを生成する場合、
又は前記第1のコードが一連の非長水平コード内の唯一
のコードである場合、一連の非長水平コード内の第1の
コードの圧縮解除されたデータを選択し、 ii. 前記第1のコードによって生成された圧縮解除され
たデータのビット数が所望された所与の最小ビット数よ
り少ない場合、及び、第1の二つのコードが、少なくと
も所望された所与の最小ビット数である圧縮解除された
データの累積ビット数を生成するか又は第2のコードが
一連の非長水平コード内の最後のコードである場合、一
連の非長水平コード内の第1のコードの圧縮解除された
データ、及び前記第1のコードの圧縮解除されたデータ
によって生成された実際のビット数に整合する可能な圧
縮解除されたデータの条件に対応する前記非長水平コー
ド内の第2のコードのための圧縮解除されたデータを選
択し、 iii. 第1の二つのコード及び少なくとも所望される所
与の最小ビット数の累積総数を生成する一つ以上のコー
ドのいずれかによって、第1の二つのコードによって生
成された圧縮解除されたデータの累積ビット数が、所望
される所与の最小ビット数より少ないことが決定される
場合、及び圧縮解除されたデータが選択される最後のコ
ードに先行する一連の非長水平コード内のコードによっ
て生成された圧縮解除されたデータの累積ビット数が前
記所望された所与の最小ビット数より少ないか又は選択
された最後のコードが一連の非長水平コード内の最後の
コードである場合、一連の非長水平コード内の第1の二
つのコードと、前記一連の非長水平コード内の第1の二
つのコードの圧縮解除されたデータの選択と同様に第1
の二つのコードに続く一連の非長水平コード内の任意の
一つ以上のコードを選択し、 (j)前記長コード復号手段へ送られた長コードの圧縮
解除されたデータを選択するために前記長コード復号手
段に接続された長水平コード圧縮解除データ選択手段を
備える圧縮解除装置。 - 【請求項2】 圧縮された画像データを圧縮解除する方
法であって、 (a)一連の所与の数のコードを取り、1クロックサイ
クルにおいてこれらのコードを長水平コード又は非長水
平コードへ識別するステップを備え、 (b)一つ以上の非長水平コードから成る一連の非長水
平コードを1クロックサイクルにおいて並列で復号する
ステップを備え、一連の非長水平コードの第1のコード
を除いた各コードに対する復号が、一連の非長コードの
コードのそれぞれに先行する一連の非長水平コード内の
コードによって同一クロックサイクルにおいて生成され
得るビット数の全ての可能な条件に対して実行され、前
記可能な条件が、1クロックサイクルにおいて生成され
る圧縮解除されたデータの所望される所与の最小ビット
数より1ビット少ないビット数までの一連の非長コード
の第1のコードを除いた各コードに先行する前記一連の
非長水平コード内のコードによって生成され得る最小累
積ビット数であり、 (c)前記第1のコードが少なくとも所望される所与の
最小ビット数の圧縮解除されたデータを生成する場合、
又は前記第1のコードが一連の非長水平コード内の唯一
のコードである場合、非長水平コード内の第1のコード
の圧縮解除されたデータを選択するステップを備え、 (d)前記第1のコードによって生成された圧縮解除さ
れたデータのビット数が所望された所与の最小ビット数
より少ない場合、及び、第1の二つのコードが、少なく
とも前記所望された所与の最小ビット数である圧縮解除
されたデータの累積ビット数を生成するか又は前記第2
のコードが一連の非長水平コード内の最後のコードであ
る場合、一連の非長水平コード内の第1のコードの圧縮
解除されたデータ、及び前記第1のコードの圧縮解除さ
れたデータによって生成された実際のビット数に整合す
る可能な圧縮解除されたデータの条件に対応する前記非
長水平コード内の第2のコードのための圧縮解除された
データを選択するステップを備え、 (e)第1の二つのコード及び少なくとも前記所望され
る所与の最小ビット数の累積総数を生成する一つ以上の
コードのいずれかによって、第1の二つのコードによっ
て生成された圧縮解除されたデータの累積ビット数が、
所望される所与の最小ビット数より少ないことが決定さ
れる場合、及び圧縮解除されたデータが選択される最後
のコードに先行する一連の非長水平コード内のコードに
よって生成された圧縮解除されたデータの累積ビット数
が前記所望された所与の最小ビット数より少ないか又は
選択された最後のコードが一連の非長水平コード内の最
後コードである場合、一連の非長水平コード内の第1の
二つのコードと、一連の非長水平コード内の第1の二つ
のコードの圧縮解除されたデータの選択と同様に第1の
二つのコードに続く一連の非長水平コード内の任意の一
つ以上のコードを選択するステップを備える圧縮解除方
法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US50284195A | 1995-07-11 | 1995-07-11 | |
US50283895A | 1995-07-11 | 1995-07-11 | |
US502841 | 1995-07-11 | ||
US502838 | 1995-07-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0936751A JPH0936751A (ja) | 1997-02-07 |
JP2945324B2 true JP2945324B2 (ja) | 1999-09-06 |
Family
ID=27054296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8173601A Expired - Fee Related JP2945324B2 (ja) | 1995-07-11 | 1996-07-03 | 圧縮解除装置及びその方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0753830B1 (ja) |
JP (1) | JP2945324B2 (ja) |
DE (1) | DE69620506T2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009060444A (ja) * | 2007-08-31 | 2009-03-19 | Canon Inc | 画像復号装置、画像復号方法及び記録装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5826713B2 (ja) * | 1976-06-28 | 1983-06-04 | 日本電信電話株式会社 | 2値信号の逐次境界差分符号化伝送方式 |
US4843632A (en) * | 1986-05-09 | 1989-06-27 | Prodigy Systems Corporation | Compressed image expansion system |
EP0493086B1 (en) * | 1990-12-24 | 1997-05-21 | Xerox Corporation | Data decoding apparatus |
JP2502882B2 (ja) * | 1992-05-07 | 1996-05-29 | 村田機械株式会社 | 画像処理装置 |
-
1996
- 1996-07-03 JP JP8173601A patent/JP2945324B2/ja not_active Expired - Fee Related
- 1996-07-08 EP EP96305032A patent/EP0753830B1/en not_active Expired - Lifetime
- 1996-07-08 DE DE1996620506 patent/DE69620506T2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0936751A (ja) | 1997-02-07 |
DE69620506D1 (de) | 2002-05-16 |
EP0753830B1 (en) | 2002-04-10 |
DE69620506T2 (de) | 2002-10-02 |
EP0753830A2 (en) | 1997-01-15 |
EP0753830A3 (en) | 1997-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0457840B1 (en) | Adaptive data compression apparatus for a tape drive system | |
JP3137270B2 (ja) | 圧縮画像データ復号装置 | |
EP0734126A1 (en) | Two-stage compression with runlength encoding and lempel-ziv encoding | |
JP2986076B2 (ja) | データを圧縮及び圧縮解除するための方法及び装置 | |
JP2766302B2 (ja) | 可変長符号並列解読方法および装置 | |
JP3231855B2 (ja) | データフォーマット変換装置及び方法 | |
JP4094081B2 (ja) | 2進データのダブル・ランレングス符号化の方法および装置 | |
JP3688297B2 (ja) | ビデオ画像カラーエンコーディング | |
JP2007037115A (ja) | デジタルデータを符号化する方法、データセグメントのストリームを符号化する方法、エンコーダ、データのソースを符号化するためのパラレルエンコーダ、符号化データのソースを復号するためのパラレルデコーダ、コード化データを復号する方法、磁気テープドライブ、およびデータのストリームを符号化する方法 | |
JP4057650B2 (ja) | 大ギャップを有するスライド窓データ圧縮システム | |
US20020122599A1 (en) | Image coder/decoder, image coding/decoding method, and storage medium | |
US5960115A (en) | Method for decompressing multiple codes in a single clock cycle | |
US5949909A (en) | Apparatus for decompressing multiple codes in a single clock cycle | |
JP2945324B2 (ja) | 圧縮解除装置及びその方法 | |
JP2001053620A (ja) | 符号化方法及び符号化装置、復号化方法及び復号化装置、記憶媒体 | |
JP3260862B2 (ja) | パラレルデータ伝送装置 | |
JPH0763151B2 (ja) | 可変長符号複号化回路 | |
JPS6341276B2 (ja) | ||
JP3029863B2 (ja) | 圧縮データの復号化装置 | |
JP3212393B2 (ja) | 符号化装置 | |
KR20010058369A (ko) | 코드길이에 따른 허프만 코드 복호장치 및 방법 | |
KR0125126B1 (ko) | 고속 가변길이부호 복호화 장치 | |
JPH084316B2 (ja) | 圧縮符号化データ伸長装置 | |
JPH0380774A (ja) | 復合化回路 | |
JPH01206728A (ja) | 可変長符号化コード復号装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19990615 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080625 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090625 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100625 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110625 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110625 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120625 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130625 Year of fee payment: 14 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |