JP2787146B2 - データ圧縮伸長装置 - Google Patents
データ圧縮伸長装置Info
- Publication number
- JP2787146B2 JP2787146B2 JP60093280A JP9328085A JP2787146B2 JP 2787146 B2 JP2787146 B2 JP 2787146B2 JP 60093280 A JP60093280 A JP 60093280A JP 9328085 A JP9328085 A JP 9328085A JP 2787146 B2 JP2787146 B2 JP 2787146B2
- Authority
- JP
- Japan
- Prior art keywords
- compression
- bit
- run length
- data
- time
- 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 - Lifetime
Links
Description
【発明の詳細な説明】
〔概要〕
本発明は、イメージ・データをMH(Modified Huffma
n)符号化方式で圧縮する際、Nビット処理(Nは例え
ば16)を行い得るようにすると共に、MH符号化方式によ
って圧縮されたデータを伸長してイメージ・データを生
成する際Nビット処理を行い得るようにした装置を提供
するものである。 〔従来の技術〕 第6図は従来のMH符号化方式によるイメージ・データ
の圧縮方式の概要を示す図である。第6図において、1
はソース・、データ・バッファ、2は宛先データ・バッ
ファ、3は並列直列変換用シフトレジスタ、4は黒白フ
リップ・フロップ、5はEOR(排他的論理和)回路、6
は直列−並列変換用シフトレジスタ、7はMHコード発生
部、8はラン長カウンタをそれぞれ示している。 ソース・データバッファ1からのデータの読み出しは
例えば16ビット単位で行われる。読み出された並列デー
タは並列−直列変換用シフトレジスタ3によって直列デ
ータに変換される。並列−直列変換用シフトレジスタ3
から出力されるビットが黒の場合には黒白フリップ・フ
ロップ4がセットされる。EOR回路5は黒白フリップ・
フロップ4の出力と並列−直列変換用シフトレジスタ3
からの出力とが不一致の場合には論理「1」の変換点信
号を出力する。 ラン長カウンタ8は、並列−直列変換用シフトレジス
タ3から出力されるビットの数をカウントするものであ
り、「1」の変化点信号が出力されると、ラン長カウン
タ8の値はMHコード発生部7に送られ、ラン長カウンタ
8の値は0とされる。 MHコード発生部7は、ラン長カウンタ8からのラン長
と、黒白フリップ・フロップ4からの黒または白情報と
によって定まるMH符号を作成し、これを1ビットずつ出
力する。直列−並列変換用シフトレジスタ6は、直列デ
ータを並列データに変換し、16ビットの並列データが組
み立てられると、これを宛先データ・バッファ2に格納
する。 第7図は従来のMHコードの伸長方式を示す図である。
第7図において、9はMHコード検出部、10は黒白フリッ
プ・フロップをそれぞれ示している。なお、第6図と同
一符号は同一物を示している。 ソース・データ・バッファ1から読み出されたデータ
は並列−直列変換用シフトレジスタ3によって直列デー
タに変換される。並列−直列変換用シフトレジスタ3か
ら1ビットずつ出力されるデータはMHコード検出部9に
入力される。MHコード検出部9は、MHコードの検出を行
い、対応するラン長を出力すると共にターミネート符号
か或いはメークアップ符号かを示す情報を出力する。ラ
ン長はラン長カウンタ8に書き込まれ、ターミネート符
号が検出される度に黒白フリップ・フロップ10は反転さ
れる。 黒白フリップ・フロップ10の値が黒の場合にはラン長
カウンタ8の値に等しい数の黒ビットが直列−並列変換
用シフトレジスタ6に送られ、黒白フリップ・フロップ
10の値が白の場合にはラン長カウンタ8の値に等しい数
の白ビットが直列−並列変換用シフトレジスタ6に送ら
れる。直列−並列変換用シフトレジスタ6は直列データ
を並列データに変換し、16ビットのデータが組み立てら
れると、そのデータは宛先データ・バッファ2に格納さ
れる。 第6図および第7図に示した従来のデータ圧縮伸長方
式は、常にビット単位の処理を行っているので、データ
の圧縮/伸長に非常に時間がかかると言う欠点を有して
いる。 〔発明の目的〕 本発明は、上記の考察に基づくものであって、MH符号
化方式によるイメージ・データの圧縮を高速に行い得る
と共に、この種の圧縮データの伸長を高速に行い得る装
置を提供することを目的としている。 〔目的を達成するための手段〕 第1図は本発明の概要を示す図である。特許請求の範
囲第1項の発明は、 イメージ・データをモディファイド・ハフマン符号に
圧縮する圧縮処理を行うと共に、モディファイド・ハフ
マン符号をイメージ・データに伸長する伸長処理を行う
データ圧縮伸長装置であって、 圧縮処理時および伸長処理時に動作し、メモリ70から
読み出されたNビット(Nは1より大)の並列データを
直列データに変換する並列−直列変換用シフトレジスタ
71と、 圧縮処理時に動作し、並列−直列変換用シフトレジス
タ71の出力が入力される圧縮時黒白フリップ・フロップ
72と、 圧縮処理時に動作し、メモリ70から読み出されたNビ
ットの並列データの各ビット値が全て圧縮時黒白フリッ
プ・フロップ72の出力値と同じ場合には、圧縮時Nビッ
ト処理要求を出力する圧縮時高速処理手段73と、 圧縮処理時に動作し、圧縮時黒白フリップ・フロップ
72の入力と圧縮時黒白フリップ・フロップ72の出力が不
一致か否かを調べる一致/不一致検出回路74と、 圧縮処理時および伸長処理時に動作し、圧縮処理時に
おいては黒ラン又は白ランの長さを計数し、伸長処理時
においてはモディファイド・ハフマン符号に対応する黒
ラン又は白ランの長さがロードされるラン長カウンタ77
と、 圧縮処理時に動作し、一致/不一致回路74が不一致を
検出した時に圧縮時黒白フリップ・フロップ72の出力値
及びラン長カウンタ77の値に基づいてモディファイド・
ハフマン符号を生成するモディファイド・ハフマン符号
発生部76と、 伸長処理時に動作し、並列−直列変換用シフトレジス
タ71の出力が入力され、モディファイド・ハフマン符号
が検出された時に当該モディファイド・ハフマン符号に
対応するラン長をラン長カウンタ77にロードするモディ
ファイド・ハフマン符号検出部78と、 伸長処理時に動作し、ラン長カウンタ77のラン長が黒
ランに関するものか白ランに関するものかを示す伸長時
黒白フリップ・フロップ79と、 圧縮処理時及び伸長処理時に動作し、圧縮処理時には
モディファイド・ハフマン符号発生部76から出力される
直列データが入力され、伸長処理時にはラン長カウンタ
77で示されるビット長を持つと共に各ビットが伸長時黒
白フリップ・フロップ79の示す値を持つビット列が入力
される並列入力可能な直列−並列変換用シフトレジスタ
75と を具備し、 圧縮処理時において、圧縮時Nビット処理要求が出力
された場合には、ラン長カウンタ77のラン長をNだけ増
加させると共にメモリ70に対してデータ読出し要求を送
り、圧縮時Nビット処理要求が出力されない場合には、
メモリ70から読み出されたNビットの並列データを並列
−直列変換用シフトレジスタ71にロードしてシフト動作
を行わせ、シフト動作が行われる度にラン長カウンタ77
のラン長を1ずつ増加させる ことを特徴とするものである。 特許請求の範囲第2項の発明は、 イメージ・データをモディファイド・ハフマン符号に
圧縮する圧縮処理を行うと共に、モディファイド・ハフ
マン符号をイメージ・データに伸長する伸長処理を行う
データ圧縮伸長装置であって、 圧縮処理時および伸長処理時に動作し、メモリ70から
読み出されたNビット(Nは1より大)の並列データを
直列データに変換する並列−直列変換用シフトレジスタ
71と、 圧縮処理時に動作し、並列−直列変換用シフトレジス
タ71の出力が入力される圧縮時黒白フリップ・フロップ
72と、 圧縮処理時に動作し、メモリ70から読み出されたNビ
ットの並列データの各ビット値が全て圧縮時黒白フリッ
プ・フロップ72の出力値と同じ場合には、圧縮時Nビッ
ト処理要求を出力する圧縮時高速処理手段73と、 圧縮処理時に動作し、圧縮時黒白フリップ・フロップ
72の入力と圧縮時黒白フリップ・フロップ72の出力が不
一致か否かを調べる一致/不一致検出回路74と、 圧縮処理時および伸長処理時に動作し、圧縮処理時に
おいては黒ラン又は白ランの長さを計数し、伸長処理時
においてはモディファイド・ハフマン符号に対応する黒
ラン又は白ランの長さがロードされるラン長カウンタ77
と、 圧縮処理時に動作し、一致/不一致回路74が不一致を
検出した時に圧縮時黒白フリップ・フロップ72の出力値
及びラン長カウンタ77の値に基づいてモディファイド・
ハフマン符号を生成するモディファイド・ハフマン符号
発生部76と、 伸長処理時に動作し、並列−直列変換用シフトレジス
タ71の出力が入力され、モディファイド・ハフマン符号
が検出された時に当該モディファイド・ハフマン符号に
対応するラン長をラン長カウンタ77にロードするモディ
ファイド・ハフマン符号検出部78と、 伸長処理時に動作し、ラン長カウンタ77のラン長が黒
ランに関するものか白ランに関するものかを示す伸長時
黒白フリップ・フロップ79と、 圧縮処理時及び伸長処理時に動作し、圧縮処理時には
モディファイド・ハフマン符号発生部76から出力される
直列データが入力され、伸長処理時にはラン長カウンタ
77で示されるビット長を持つと共に各ビットが伸長時黒
白フリップ・フロップの示す値を持つビット列が入力さ
れる並列入力可能な直列−並列変換用シフトレジスタ75
と、 伸長処理時に動作し、直列−並列変換用シフトレジス
タ75のデータがメモリ70に書き込まれる時にラン長カウ
ンタ77のラン長がN以上の場合には、伸長時Nビット処
理要求を出力する伸長時高速処理手段80と を具備し、 圧縮処理時において、圧縮時Nビット処理要求が出力
された場合には、ラン長カウンタ77のラン長をNだけ増
加させると共にメモリ70に対してデータ続出し要求を送
り、圧縮時Nビット処理要求が出力されない場合には、
メモリ70から読み出されたNビットの並列データを並列
−直列変換用シフトレジスタ71にロードしてシフト動作
を行わせ、シフト動作が行われる度にラン長カウンタ77
のラン長を1ずつ増加させ、 伸長処理時において、伸長時Nビット処理要求が出力
された場合には、伸長時黒白フリップ・フロップ79の示
す値を持つNビットのデータを直列−並列変換用シフト
レジスタ75に並列入力すると共にラン長カウンタ77の示
すラン長をNだけ減少させ、次いでメモリ70に対してデ
ータ書込み要求を送り、伸長時Nビット処理要求が出力
されない場合には、伸長時黒白フリップ・フロップ79の
示す値を持つ1ビットのデータをシフト・クロックに同
期して直列−並列変換用シフトレジスタに直列入力さ
せ、1ビットのデータが入力される度にラン長カウンタ
77のラン長を1ずつ減少させる ことを特徴とするものである。 〔発明の実施例〕 《データ圧縮伸長装置の概要》 第2図は本発明によるデータ圧縮伸長装置の実施例の
概要を示す図である。第2図において、11はソース・デ
ータ・バッファ、12は宛先データ・バッファ、13はソー
ス・アドレス・カウンタ、14は宛先アドレス・カウン
タ、15と16はセレクタ、17と18はラッチ、19はシフト論
理回路、20はMH圧縮/伸長論理部、21はソース長カウン
タ、22は宛先長カウンタ、23はライン長レジスタ、24は
ライン長カウンタ、25はコマンド・レジスタ、26はコン
トロール・レジスタ、27はシーケンサ部、28は並列−直
列変換用レジスタ、29はMHコード発生/検出部、30は直
列−並列変換用シフトレジスタ、31ないし35は3ステー
ト・ゲートをそれぞれ示している。 ソース・データ・バッファ11は、中央処理装置(図示
せず)から転送された圧縮又は伸長前のデータを格納す
る。RAMの容量は1.5MByte標準であり、ソース・アドレ
ス・カウンタ13とソース長カウンタ21により、先頭アド
レスとバイト数を任意に設定できる。宛先データ・バッ
ファ12は、中央処理装置へ転送すべき圧縮又は伸長後の
データを格納する。宛先アドレス・カウンタ14と宛先長
カウンタ22により、先頭アドレスとバイト数を任意に設
定できる。ソース・アドレス・カウンタ13は、ソース・
データ・バッファ11のアドレスを指定する22ビットのア
ップ・カウンタであり、中央処理装置およびMH圧縮/伸
長論理部20がソース・データ・バッファ11をアクセスす
る時に自動的にアップされる。宛先アドレス・カウンタ
14は宛先データ・バッファのアドレスを指定する22ビッ
トのアップ・カウンタであり、中央処理装置及びMH圧縮
伸長論理部20が宛先データ・バッファ12をアクセスする
時に自動的にアップされる。ソース長カウンタ21は、ソ
ース・データ・バッファ11に格納されるデータのバイト
長を指定する22ビットのダウン・カウンタであり、MH圧
縮/伸長論理部20がソース・データ・バッファ11をアク
セスする時に自動的にダウンされ、“0"になるとシーケ
ンサ部27の判断により、ソース要求割込みが発生する。
宛先長カウンタ22は、宛先データ・バッファ12に格納さ
れたデータのバイト長を指定する22ビットのダウン・カ
ウンタであり、MH圧縮/伸長論理部20が宛先データ・バ
ッファ12をアクセスする時に自動的にダウンされ、“0"
になるとシーケンサ部27の判断により、ディスティネー
ション要求割込みが発生する。ライン長レジスタ23は、
圧縮前又は伸長後の画像データの1ライン長(ビット
数)を示す16ビットのレジスタであり、中央処理装置に
よってセットされる。ライン長カウンタ24は、現在処理
中のラインの残り長さ(ビット数)を示すダウン・カウ
ンタであり、1ライン処理前にシーケンサ部27によりラ
イン長レジスタ23の内容がロードされ、画像データのビ
ットに対応してカウント・ダウンされる。コマンド・レ
ジスタ25及びコントロール・レジスタ26は、処理内容を
指定するレジスタであり、中央処理装置によってセット
される。シフト論理回路19は、8ビット×8のデータを
90度および270度回転させるロジックであり、中央処理
装置によりリード/ライトされる。MH圧縮/伸長論理部
20は、中央処理装置によりライトされたソースデータを
圧縮/伸長して宛先データ・バッファ12にその結果を格
納するブロックである。詳細は後述する。シーケンサ部
27は、2K×16ビットのシーケンサを核として構成され、
以下の機能を持つ。 ・コマンド/コントロールの解析 ・MH圧縮/伸長論理部のイニシャライズおよび起動 ・ソース・エンプティ処理 ・ディスティネーションFu11処理 ・伸長時のEOL処理およびライン処理イニシャライズ ・圧縮時のEOL送出およびRTC処理 ・エラー検出およびエラー処理 ・ステータス送出および中央処理装置への割込み要求 《MH圧縮/伸長論理部の構成》 第3図はMH圧縮伸長論理部の1実施例構成を示す図で
ある。MH圧縮/伸長論理部20は、ソース・データ・バッ
ファ11からロードされた16ビットの圧縮/伸長データを
1ビットずつシフトさせ、MH変換後に逆に直列−並列シ
フトして宛先データ・バッファ12に格納する回路であ
る。基本クロックは135nsである。 第3図において、41は圧縮16ビット処理回路、42は16
進カウンタ、43はフリップ・フロップ、44は並列−直列
変換用シフトレジスタ、45はフリップ・フロップ、46は
EOR回路、47はフリップ・フロップ、48は2560検出回
路、49はフリップ・フロップ、50はフリップ・フロッ
プ、51はデータ伸長ROM、52はフリップ・フロップ、53
はラン長カウンタ、54はフリップ・フロップ、55はフリ
ップ・フロップ、56はデータ圧縮ROM、57はフリップ・
フロップ、58は伸長16ビット処理回路、59はフリップ・
フロップ、60はセレクタ、61は直列−並列変換用シフト
レジスタ、62は16進カウンタ、63はフリップ・フロッ
プ、64はRAM優先順位決定回路をそれぞれ示している。
なお、並列−直列変換用シフトレジスタ44と28(第2
図)は同一物であり、直列−並列変換用シフトレジスタ
61と30(第2図)は同一物である。 圧縮16ビット処理回路41は、圧縮時にソース・データ
・バッファ11よりロードしたデータが全て“0"か“1"で
且つフリップ・フロップ45の出力と同じ値の時には16ビ
ットを一度に処理して高速化を図る回路であり、ラン長
カウンタ53を16アップさせ、ライン長カウンタ24を16ダ
ウンさせた後、次のソース・データを要求するものであ
る。 16進カウンタ42は、並列−直列シフトレジスタ44のシ
フト数をカウントする16進アップ・カウンタである。フ
リップ・フロップ43は、16進カウンタ42が16をカウント
した時にソース・データ要求信号iNH1を出力する。な
お、信号iNH1はソース・エンプティ時にはシーケンサ部
27によりマスクされる。並列−直列変換用シフトレジス
タ44は、ソース・データ・バッファ11からの読出しデー
タ(16ビット)を直列データに変換するものである。 フリップ・フロップ45,EOR回路46およびフリップ・フ
ロップ47は、変化点検出回路を構成している。変化点検
出回路45〜47は、圧縮時に並列−直列変換用シフトレジ
スタと同期して動作し、黒ランから白ランに変化した点
または白ランから黒ランに変化した点を検出するもので
ある。変化点が検出されると、*MHRQ信号が出力され、
後述する圧縮データ発生部へのロード要求が行われる。
なお、信号*MHRQ出力中は、並列−直列変換用シフトレ
ジスタ44のシフト動作はストップする。2560検出回路48
は、圧縮時にラン長カウンタ値が2560に達すると、メー
クアップ(MakeUp)コードの作成要求を行う。ラン長カ
ウンタ53の値がフリップ・フロップ55にロードされた
後、ラン長カウンタ53はクリアされる。 フリップ・フロップ49,フリップ・フロップ50および
データ伸長ROM51はMHコード検出部を構成している。デ
ータ伸長ROM51はP−ROMから構成されている。MHコード
検出部49〜51は、伸長時に並列−直列変換用シフトレジ
スタ44と同期動作し、並列−直列変換用シフトレジスタ
44の出力をフリップ・フロップ49とデータ伸長ROM51で
構成される一種のシーケンサで判断してMHコードを検出
する回路である。フリップ・フロップ50は、ターミネー
ト符号検出によりその状態が反転するものであり、その
信号はBLCK2となる。なお、ROM51は2K×16ビットで構成
され、その出力は次のジャンプ・アドレスを示してお
り、MHコードが検出されると、そのラン長,ターミネー
トかメークアップかを示す信号およびBUSY1要求信号を
出力する。また、EOL検出時はEOLビットがオンして1ラ
イン終了を知らせる。エラー・コード検出時にはERROR
とEOLの両方がオンする。信号BUSY2は、伸長時のラン長
カウンタ53の状態を示す信号であり、ROM51の出力がラ
ン長カウンタ53にロードされるとオンし、ラン長カウン
タ53からキャリーが出るとオフされ、レディ状態にな
る。 ラン長カウンタ53は、直列接続された2個の64進アッ
プ・カウンタから構成されており、圧縮時は変化点まで
のビット数をカウントし、伸長時はラン長の補数がロー
ドされ、直列−並列変換用シフトレジスタ61と同期して
カウント・アップする。 フリップ・フロップ54,フリップ・フロップ55及びデ
ータ圧縮ROM56は、MHコード発生部を構成している。デ
ータ圧縮ROM56はP−ROMから構成されている。MHコード
発生部54〜56は一種のシーケンサ構造をしており、圧縮
時にはラン長カウンタ53からのデータ,ターミネートか
メークアップかの区別信号および白/黒信号がフリップ
・フロップ54,55にロードされる。フリップ・フロップ5
4はロード時にクリアされ、ROM56の出力を次期ジャンプ
・アドレスとしてシーケンス動作を行い、その度に1ビ
ットずつMH圧縮コードをセレクタ60を通して直列−並列
変換用レジスタ61にデータをシリアル転送する。転送が
終了するとBUSY1要求信号を出力して1個のMHコード処
理を終了する。ROM56は、2K×8ビットのものをターミ
ネート用とメークアップ用にそれぞれ1個ずつ使用して
いる。 フリップ・フロップ57は、信号BUSY1を出力する。伸
長時にはMHコード検出部49〜51によりコード検出が行わ
れた時には信号BUSY1はオンし、ラン長カウンタ53への
ロード要求を行い、ロード後にクリアされて、次のコー
ド検出が開始される。圧縮時には、ラン長カウンタ53か
らMHコード発生部54〜56へのロード時に信号BUSY1はオ
フし、コード送出終了後にオンして、MHコード発生部54
がレディ状態であることを報告する。 伸長16ビット処理回路58は、伸長時の高速化を計る回
路であり、宛先データ・バッファへの書込みが行われる
ときに、ラン長カウンタ53の値がキャリーまで16ビット
以上残っている時に動作し、WT16E信号を出力する。WT1
6E信号が出力されると、ラン長カウンタ53とライン長カ
ウンタ24とは16ビット単位で処理され、その度にディス
ティネーション・ライト要求を示す信号iNH3がオンされ
る。 フリップ・フロップ59は、信号BLCK3を出力する。伸
長時にラン長カウンタ53へラン長がロードされる時に信
号BLCK2がフリップ・フロップ59にロードされ、直列−
並列変換用シフトレジスタ61へ白ならば“0"、黒ならば
“1"を送出する。 セレクタ60は、直列−並列変換用シフトレジスタ61へ
送出されるシリアル・データをセレクトする。伸長時は
信号BLCK3、圧縮時はROM56の出力がセレクトされる。ま
た、EOLとRTC送出の際にはシーケンサ部27の出力がセレ
クトされる。 直列−並列変換用シフトレジスタ61は、宛先データ・
バッファ12へ送出するデータを16ビットのバウンダリに
揃えるためのシフトレジスタであり、セレクタ60からの
シリアル・データをパラレル・データに変換する。な
お、伸長16ビット処理回路58が動作した際には信号BLCK
3の値が16ビットのロード入力となり、シフトレジスタ6
1の並列データをa11“0"あるいはa11“1"にする。 16進カウンタ62は、16進のアップ・カウンタであり、
直列−並列変換用シフトレジスタ61のシフト数をカウン
トする。フリップ・フロップ63は、信号iNH3(宛先デー
タ・ライト要求信号)を出力するものであり、16進カウ
ンタ62が16を数えた時に信号iNH3が出力され、宛先デー
タ・バッファ12に対するライト要求が行われる。なお、
信号iNH3は、シーケンサ部27の出力によりマスク可能で
ある。 MH変換時に、ソース・データ要求信号iNH1と宛先デー
タ・ライト要求信号iNH3とRAMリフレッシュ要求信号の
三者が競合するが、RAM優先順位決定回路64がそれらの
優先順位を決定する。また、中央処理装置によるRAMア
クセス時にはCPU要求信号とリフレッシュ要求が競合す
るが、RAM優先順位決定回路64はそれらの優先順位も決
定する。なお、優先順位は次の通りである。 中央処理装置アクセス時 1.中央処理装置の要求 2.リフレッシュ要求 MH圧縮時 1.ソース・データの要求 2.宛先データのライト要求 3.リフレッシュ要求 MH伸長時 1.宛先データのライト要求 2.ソース・データ要求 3.リフレッシュ要求 《MH圧縮処理》 次にMH圧縮処理について説明する。圧縮時には、符号
41,42,43,44,45,46,47,48,53,54,55,56,57,60,61,62,6
3,64の部分が動作する。 まず、中央処理装置によりソース・データ・バッファ
11にイメージ・データがライトされ、各種レジスタがセ
ットされた後でコントロール・レジスタ26のコマンド・
スタート・ビットがオンされることにより、圧縮処理が
開始される。コマンド・スタート・ビットはシーケンサ
部27により検出され、FirstかOnly PartitionならばMH
圧縮部のイニシャライズを行い、第1ライン目先頭のEO
Lを直列−並列変換用シフトレジスタ61に送出後、信号i
NH1のマスクを解除する。なお、Firstとは画面を分割し
て送る場合に最初の分割部分を送ることを意味してお
り、Only Partitionとは画面を送る場合に分割せずに
送ることを意味している。 上記の処理が終了したあと、ソース・データ要求信号
が出力され、第1バイト目および第2バイト目の16ビッ
トのデータが並列−直列変換用シフトレジスタ44へロー
ドされ、ロード後に1ビットずつシフト動作して変化点
をサーチする。並列−直列変換用シフトレジスタ44が16
ビットシフトしたことを16進カウンタ42でカウントする
と、再び信号iNH1が出力され、それ以後は同様にロード
→シフト動作を繰り返して、変化点を検出していく。 並列−直列変換用シフトレジスタ44と符号42,43,45,4
7,53の部分とは同期しており、変化点までのビット数を
ラン長カウンタ53でカウントして変化点が検出される
と、MHコード発生部54〜56へラン長,ターミネートかメ
ークアップかを示す信号,白/黒情報をロードする。 このときラン長が64ビット以上であれば最初に上位6
ビットをロードし、信号BUSY1がオフ状態になり、それ
によりMHコード発生部54〜56が動作開始を行い、1クロ
ック毎に1ビットずつ直列−並列変換用シフトレジスタ
61へ圧縮データ(メークアップ・コード)を送出してい
き、最終データ送出後、BUSY1はオンされる。 メークアップ・コードの送出が終了すると信号BUSY1
が再びオフされて、次にラン長カウンタ53の下位6ビッ
トがMHコード発生部54〜56にロードされ、同様にしてタ
ーミネート・コードが直列−変換用シフトレジスタ61へ
送出される。 直列−並列シフトレジスタ61が16ビットシフト動作を
行うと、フリップ・プロップ63により信号iNH3が出力さ
れ、直列−並列変換用シフトレジスタ61によって組み立
てられた16ビットの並列データが宛先データ・バッファ
12にライトされる。 変化点検回路45〜47は、ラン長カウンタ53の下位6ビ
ットがMHコード発生部54〜56にロードされた時点で再び
動作を開始する。即ち、この時点では、並列−直例変換
用シフトレジスタ44と直列−並列変換用シフトレジスタ
61とは、同時動作することになる。 以上の様に圧縮処理は連続的に動作していくが、やが
てライン長カウンタ24の値が“0"になり、1ラインの終
了を報告する信号が出力される。この信号が出力される
と、直列−並列変換用シフトレジスタ61および変化点検
出回路45〜47は動作を停止して、制御をシーケンサ部27
へ渡す。シーケンサ部27は、ラン長カウンタ53に残って
いる最後のラン長を処理するために強制的にフリップ・
フロップ47をオンして変化点を発生させて最終ラン長を
直列−並列変換用シフトレジスタ61に転送する。そし
て、動作終了確認後に信号iNH3を監視しながらEOLを直
列−並列変換用シフトレジスタ61へ送出して1ライン処
理が完了する。 次に直列−並列変換用シフトレジスタ61に残っている
フィラ・ビット分をシフトさせて2ライン目の先頭をバ
イト・バウンダリに合わせた後、ライン長カウンタ23に
ライン長をロードすることにより再びライン処理が開始
される。 以後、次々にラインが処理されていくが、ソース・エ
ンプティ(ソース・データ・バッファが空)やディステ
ィネーションFu11(宛先データ・バッファが一杯)が生
じた際には、その都度リード動作を停止させてシーケン
サ部27に制御を渡す。シーケンサ部27は、完全にリード
動作が停止したことを確認後、ステータス・バイトをセ
ットして中央処理装置に割込みをかける。中央処理装置
は、割込み要因を判断した後、ディスティネーション要
求であれば、ディスティネーション・データを読み出し
た後、新しいアドレスとバイト数をセットして最後にコ
マンド・スタート・ビットをオンする。また、ソース要
求であればソース・データを送出後にアドレスやバイト
数,Partition等をセットし、しかる後にコマンド・スタ
ート・ビットをオンする。シーケンサ部27は、このスタ
ート・ビットを検出後、ソース・エンプティ・フラグ或
いはディスティネーションFu11フラグをオフすることに
より、中断されていた処理を続行させる。そして、Last
あるいはOnly Partitionのソース・エンプティが発生
すると、最後にシーケンサ部27はRTCを送出し、エンド
要求割込みを上げて圧縮処理は終了する。 ラン長が2560を越える場合が考えられるが、このとき
はラン長が2560に達した時点でラン長カウンタ53の上位
6ビットをフリップ・フロップ55へロード後、2560検出
回路48およびラン長カウンタ53の上位ビットをクリアす
る。これにより、MHコード発生部54〜56からメークアッ
プ符号が送出され、また同時にラン長の残りがカウント
される。そして、再び2560に達すれば以上の動作を繰り
返し、変化点が検出された時点で通常のメークアップ/
ターミネート処理を行う。 また、このようにラン長の長い(16ビット以上)場合
は圧縮16ビット処理回路41が動作して圧縮の高速化を行
っている。即ち、圧縮16ビット処理回路41が動作する
と、ラン長カウンタ53の値は16だけカウント・アップさ
れ、また、ライン長カウンタ24は16だけカウント・ダウ
ンする。これにより、ビット処理の場合に比して、圧縮
処理効率を5倍程度向上させることが出来る。 最後にエラー処理についてであるが、圧縮時のエラー
はLastおよびOnly Partitionでソース・エンプティが
発生した場合にライン長がFULLでなかった場合、言い換
えれば、ライン処理途中でソース・エンプティが発生し
た場合のみである。この時は残りのラインにダミーをつ
めて圧縮するが、シーケンサ部27の命令により強制的に
ラインをFu11にした後にフリップ・フロップ47をオンに
してRTC処理を行っている。 《MH伸長処理》 MH伸長時の処理について説明する。伸長時には、符号
42,43,44,49,50,51,52,53,57,58,59,60,61,62,63,64の
部分が動作する。 まず、中央処理装置によりソース・データ・バッファ
11に圧縮データがセットされ、各種レジスタがセットさ
れた後でコントロール・レジスタのコマンド・スタート
・ビットがオンされることにより伸長処理が開始され
る。コマンド・スタート・ビットはシーケンサ部27によ
り検出され、FirstかOnly PartitionならばMH伸長部の
イニシヤライズを行い、信号iNH1のマスクを解除する。 これにより、ソース・データ要求信号が出力され、第
1バイト目および第2バイト目のデータが並列−直列変
換用シフトレジスタ44にロードされる。ロード後に並列
−直列変換用シフトレジスタ44と16進カウンタ42とは同
期動作するが、フリップ・フロップ49とROM51は一種の
シーケンサとなっており、並列−直列変換用シフトレジ
スタ44からのシリアル・データを分岐条件として次々に
分岐していき、MHコードを検出した時点でシフト動作を
ストップさせ、フリップ・フロップ57をオンしてラン長
カウンタ53へのロード要求信号を出力する。そのときの
ROM51の出力は分岐アドレスではなく、6ビットのラン
長の補数、2ビットのメークアップ/ターミネート区別
信号およびフリップ・フロップ57への論理「1」信号で
ある。 フリップ・フロップ52からの信号BUSY2はラン長カウ
ンタ53の状態を示しており、オフ状態の時に信号BUSY1
が来ると、要求を受け付けて信号BUSY2はオン状態とな
る。これにより信号BUSY1はオフされ、フリップ・フロ
ップ49がクリアされ、そして信号BLCK2はターミネート
符号をラン長カウンタ53にロード後、白/黒反転され
て、次のコード検出動作が始まる。 並列−直列変換用シフトレジスタ44が16ビットシフト
動作を行うと、次のデータを要求する信号iNH1が出力さ
れ、並列−直列変換用シフトレジスタ44に次の圧縮デー
タがロードされ、これ以後は同様な動作を繰り返す。一
方、信号BUSY2がオンになる時点でROM51の出力がラン長
カウンタ53にロードされるが、もしメークアップ符号な
らば上位6ビットへ、ターミネート符号ならば、下位6
ビットヘラン長の補数がロードされる。尚、補数は例え
ばラン長が0であれば「111111」、ラン長が1であれば
「111110」となる。 ロード後はラン長カウンタ53、直列−並列シフトレジ
スタ61および16進カウンタ62は同期動作して、ラン長カ
ウンタ53と同時にロードされた白/黒状態を示すフリッ
プ・フロップ59の出力を伸長データとして直列−並列変
換用シフトレジスタ61へ転送する。直列−並列変換用シ
フトレジスタ61が16ビットシフト動作を行うと、フリッ
プ・フロップ63よりiNH3が出力され、宛先データ・バッ
ファ12にデータを格納後、再びシフト動作を続行する。
やがて、ラン長カウンタ53からキャリーが出力され、1
個のMHコードの伸長が終了してフリップ・フロップ52か
らの信号BUSY2がオフされる。このときにフリップ・フ
ロップ57の出力する信号BUSY1がオンしておれば次のラ
ン長をロードする。 また、iNH3の信号がオン時にライン長カウンタ53の残
りのカウント数が16を越える場合には高速化のために伸
長16ビット処理回路58がオンして、全てのビットがフリ
ップ・フロップ59の値を持つ16ビットの並列データを直
列−並列変換用レジスタ61にロードした後、ラン長カウ
ンタ53を16アップさせ、ライン長カウンタ24を16ダウン
させ、フリップ・フロップ63からの信号iNH3をオンす
る。そして、ラン長カウンタ53のラン長の残りカウント
数が16未満になると、通常の1ビット処理を行ってい
る。 以上のように次々とMHコードの検出と伸長とが行われ
るが、ラインレングスFu11時およびEOLコードが検出さ
れた時点でハードウェアを停止させ、シーケンサ部27に
制御を渡す。シーケンサ部27は、EOLフラグとラインレ
ングスFu11が同時に発生すれば正常に1ライン伸長が終
了したと判断して、1ラインのバウンダリに合わせるた
め直列−並列変換用シフトレジスタ61に“0"を埋める。
そして、次のラインに備えるためにラインのイニシャラ
イズを行い、最後にライン長レジスタ23の値をライン長
カウンタ24にロードすることにより、次ラインの伸長が
始まる。 もし、EOLが検出された時にラインレングスがFu11に
なっていないならば、エラーと判断して、残りのビット
に“0"を埋めた後、次のラインに備える。また、逆にラ
インレングスがFu11になった時にEOLが検出されないな
らば、この場合もエラーと判断して、EOLを検出するた
めに符号49,50,57,58,59の部分をクリアする。そして、
EOLが見つかるまで何度もクリア動作を続ける。検出さ
れれば1ライン処理を終了する。その他の場合として、
1ラインの途中でエラー・コードが検出された時には上
記と同様にクリア動作を行い、そのコードを無視して、
次のデータを白として伸長動作を続ける。 このように次々とライン処理を進行していくが、ソー
ス・エンプティやディスティネーションFu11が検出され
た時にはその都度ハードウェアを停止させてシーケンサ
部27に制御を渡す。その外は圧縮処理と同様であり、La
stあるいはOnly Partitionのソースエンプティが発生
した時点で伸長処理を終了するが、最後のRTCが検出さ
れないときはエラーとし、ライン長Fu11でなければ“0"
を埋めて終了する。 《タイミング・チャート》 第4図は圧縮タイミングを示す図である。第4図の信
号について説明する。 (1)CK1,CK2,CK4 タイミング基本クロック(周期135ns)のクロックで
あり、45nsずつずれた信号である。 (2)PSLD シフトレジスタ44にソース・データ・バッファからデ
ータ・ロードをイネーブルする信号である。 (3)RDSFT シフトレジスタ44の入力クロックであり、PLSDがある
時はロード動作を行う。PLSDがないときは1ビットずつ
シフト動作を行い、本信号と同期してラン長カウンタ53
もカウント・アップされる。 (4)iNH1 ソースデータを要求する信号であり、シフトレジスタ
44がシフト時や圧縮/伸長動作を停止させるときはオフ
となる。 (5)CHNG EOR回路46の出力信号であり、シフトレジスタが1ビ
ットシフトした時に変化点を検出した場合に出力される
信号である。次のクロックでフリップ・フロップ47にラ
ッチされ、MHRQ信号と*MHRQ信号を出力する。 (6)BLACK1 シフトレジスタ44の出力信号を1クロック遅らせたも
のであり、一つ前のデータを記憶するものである。 この信号は圧縮16ビット処理回路41の入力に接続され
ており、次のPSLD信号が来た時点、即ち新しいソースデ
ータがきた時点でそのデータがBLACK1と全て同じなら
ば、圧縮16ビット処理を要求する信号RD16Eを出力す
る。 (7)BUSY1 MHコード発生部54〜56の状態を示す信号であり、LOW
のときMHコード発生部が動作中であることを示す。変化
点検出後、ラン長カウンタ53の値をフリップ・フロップ
55にロードした時にLOWとなる。カウント数が64を越え
た場合はメークアップ符号生成を行い、シフトレジスタ
61に1ビットずつ送出後、いったんHIGHになる。同様
に、ターミネート符号生成時はLOWになり、送出後、HIG
Hになり、ラン長カウンタは次の圧縮データのカウンタ
がイネーブルになる。 (8)FFLD フリップ・フロップ55へのイネーブル信号であり、基
本クロックとANDをとって、フリップ・フロップ55への
入力クロックFLDCKを生成する。 (9)RQOFF メークアップ符号送出中であることを示す。 (10) FLDCK フリップ・フロップ55への入力クロックであり、ラン
長カウンタのカウンタ値(メークアップ,ターミネー
ト)をロードする信号である。 (11) FFLD0〜5 フリップ・フロップ55の出力である。 (12) CMP0〜3 圧縮ROM56の出力であり、フリップ・フロップ54に入
力され、次の圧縮ROMのアドレスを示すデータである。
本データと同時に圧縮データが1ビットずつ生成され、
セレクタ60に入力される。 (13) COMCK フリップ・フロップ54の入力クロックである。本信号
に同期して、1ビットずつ圧縮データが生成される。 (14) *MUCLR ラン長カウンタの上位6ビットのクリア信号である。
フリップ・フロップ55へのロード後、ラン長カウンタは
クリアされる。 (15) *TMCLR ラン長カウンタの下位6ビットのクリア信号である。
フリップ・フロップ55へロード後、ラン長カウンタはク
リアされる。 (16) RD16E 圧縮時に16ビット処理を要求する信号である。(上記
(6)を参照)。本信号出力時、RDSFTの1クロック
で、ラン長カウンタが16カウントアップさせる。(下位
4ビットをそのままにして下位5ビット以上をカウント
アップさせる) (17) WTSFT シフトレジスタ61の入力クロックである。圧縮された
データを本クロックにより1ビットずつシフトレジスタ
に格納する。 (18) iNH3 16進カウンタが16をカウントした時点、即ちシフトレ
ジスタ61が一杯になった時点でHIGHになり、宛先データ
・バッファ12への書込みを要求する。 (19) ライン長CK ライン長カウンタ24をカウントアップするクロックで
ある。RDSFTと同期してカウンタをアップさせる。 第4図は、長さが64以上の白ランと,それに続く長さ
が32以上の黒ランを圧縮する場合のタイミング・チャー
トである。なお、従来の例を先に説明し、あとで本発明
の16ビット処理を説明するために、白ランの圧縮の際に
は16ビット処理が行われないとしている。また、白ラン
と黒ランの境界は2バイトバウンダリ(境界)上にある
と仮定している。 信号PSLDがオンのときに幅狭のクロックRDSFTが生成
されると、ソース・データ・バッファから読み出された
16ビットの平列データ(すべて白ビットと仮定)は並列
−直列変換用シフトレジスタ44にロードされる。その
後、シフトクロックRDSFTが生成される度に並列−直列
変換用シフトレジスタ44はシフトされる。並列データが
並列−直列変換用シフトレジスタ44にロードされた後、
16個のシフトクロックRDSFTが生成されると、信号iNH1
がオン(高レベル)になり、次のデータの読出しをソー
ス・データ・バッファに対して要求する。 次の並列データがソース・データ・バッファから読み
出され、並列−直列変換用シフトレジスタ44にロードさ
れる。この並列データは全て黒ビットから構成されてい
ると仮定している。そうすると、信号CHNGがオンする。
信号CHNGはEOR回路46の出力である。信号CHNGがオンす
ると、フリップ・フロップ47の出力がオンし、信号MHRQ
がオンする。なお、フリップ・フロップ47はクロックCK
1の立ち下がりで入力を取り込み、フリップ・フロップ4
5はシフトクロックRDSFTの立ち上りで入力を取り込む。 信号MHRQがオンすると、白ランの圧縮(MHコードへの
変換)が開始される。MHコード発生部自体は公知である
ので、圧縮については簡単に説明する。先ず、ラン長カ
ウンタ53の上位6ビット部分がフリップ・フロップ55に
ロードされ、ラン長カウンタ53の上位6ビット部分がク
リアされ、メークアップ符号が1ビットずつ送出され
る。メークアップ符号の送出が終了すると、ラン長カウ
ンタ53の下位6ビット部分がフリップ・フロップ55にロ
ードされ、ラン長カウンタ53の下位6ビット部分がクリ
アされ、ターミネート符号が1ビットずつ送出される。
ラン長カウンタ53の下位6ビット部分がクリアされる
と、信号がMRQがオフされる。 信号MRQがオフされると、再びシフトクロックRDSFTの
生成が開始される。16個のシフトクロックRDSFTが生成
されると、信号iNH1がオンし、次のデータをソース・デ
ータ・バッファに対して要求する。ソース・データ・バ
ッファから送られて来た並列データは並列−直列変換用
シフトレジスタ44にロードする。ロードされると、信号
iNH1はオフされる。この並列データが並列直列変換用レ
ジスタ44にロードされたときは、ソース・データ・バッ
ファからの並列データの各ビットの値は黒であり、フリ
ップ・フロップ45の出力も黒であるので、信号RD16Eが
オンする。信号RD16Eがオンになると、上記の並列デー
タをロードした直後に生成されるシフトクロックRDSFT
によってラン長カウンタは16だけカウント・アップさ
れ、ライン長カウンタは16だけカウント・ダウンされ、
信号iNH1がオンされる。 第5図は伸長タイミング・チャートである。第5図の
信号について説明する。 (1)CK2,CK1,CK4,PSLD,iNH1,iNH3,ライン長CKは圧縮
と同一信号である。 (2)RDSFT シフトレジスタ44の入力クロックであり、PSLDがある
時、ロード動作を行う。PSLDがない時は、1ビットずつ
シフト動作を行う。 (3)EXPCK 上記RDSFT信号とPSLD(LOW)のANDをとったものであ
り、フリップ・フロップ49の入力クロックである。本信
号に基づき、1ビットずつ圧縮データのデコードが行わ
れる。 (4)EXP0〜A 伸長ROM51の出力である。EXPCKに同期してコード検出
が行われ、検出するまでフリップ・フロップ49の次の入
力を送出する。 (5)BUSY1 上記(4)でコード検出が完了した時点でオン(高レ
ベル)となり、ラン長カウンタへのロードを要求する。
ラン長カウンタへロード完了後LOWになる。 (6)BUSY2 ラン長カウンタの値の数だけシフトレジスタ61に白ま
たは黒をつめるのを要求する信号である。カウントが終
了した時点でLOWになる。 (7)RUNLD コード検出を終了した時点で、ラン長カウンタ53に伸
長カウント数をロードするのをイネーブルにする信号で
ある。 (8)RUNCK ラン長カウンタの入力クロックである。RUNLDがイネ
ーブルの時はロードを行い、ディセーブルの時はラン長
にロードされた数だけカウントする信号である。 (9)BLCK2 現在、デコードしている符号が黒か白かを示す信号で
ある。1で黒コードをデコードしていることを示す。行
の最初は白からスタートする。 (10)*BWCHG フリップ・フロップ50の入力クロックであり、ターミ
ネート符号を検出し、ラン長カウンタにデータをロード
した時点でBLCK2を反転させ、次の伸長データの色を設
定する。 (11)WTSFT シフトレジスタ61のシフトクロックであり、ラン長カ
ウンタの値分だけシフトさせる信号である。 (12)WT16E 伸長時、16ビット処理をイネーブルにする信号であ
る。上記(11)の信号により通常は1ビットずつラン長
カウンタの分だけシフトさせているが、シフトレジスタ
61の内容を宛先データ・バッファに格納した後、まだラ
ン長カウンタの値が16以上残っている場合に、本信号は
イネーブルになる。本信号が1の時、ラン長カウンタの
残数を1クロックのRUNCLKで16減算させ、シフトレジス
タの全ビットにBLCK3の値をロードさせ、iNH3をイネー
ブルにする。宛先データ・バッファに格納後、ラン長カ
ウンタの残数が15以下になった時点で、本信号はディセ
ーブルになり、以降はWTSFTに同期して、通常通り1ビ
ットずつシフト動作とラン長カウンタと残数の減算を行
う。 (13)*TMLD 1つのコード検出を行った際、ターミネート符号であ
れば、本信号がオンになり、ラン長カウンタの下位6ビ
ットにロードする。 (14)*MULD 一つのコード検出を行った際、メークアップ符号であ
れば、本信号がオンになり、ラン長カウンタの上位6ビ
ットにロードする。 (15)BLCK3 ラン長カウンタに入力される色が黒か白かを示し、1
で黒を示す。ラン長カウンタへのロード時にフリップ・
フロップ59にBLACK2の値がロードされる。 第5図は、長さ4の白ランに対応するMH符号と、長さ
19の黒ランに対応するMH符号とを伸長する場合のタイミ
ング・チャートである。 なお、実際には長さ4の白ランに対応するMH符号は4
ビット構成であり、長さ19の黒ランに対応するMH符号は
11ビット構成であるが、説明を簡単にするために、長さ
4の白ランに対応するMH符号を3ビット構成、長さ19の
黒ランに対応するMH符号も3ビット構成としている。 信号PSLDがオンのときに幅狭のクロックRDSFTが生成
されると、ソース・データ・バッファから送られてきた
並列データは並列−直列変換用レジスタ44にロードされ
る。ロード後のシフトクロックRDSFTに同期して並列−
直列変換用シフトレジスタ44からデータが1ビットずつ
読み出され、フリップ・フロップ49に送られる。 フリップ・フロップ49は、クロックEXPCKに同期し
て、送られてきた直列データを1ビットずつ取り込む。
3ビットのデータがフリップ・フロップ49に取り込まれ
た時にMH符号が検出され、信号BUSY1がオンされる。こ
の時、信号BUSY2がオフであったとすると、信号RUNLDが
オンされ、クロックRUNCKの生成が開始される。信号RUN
LDがオンのときにクロックRUNCKが生成されると、検出
されたMH符号に対応するラン長がラン長カウンタ53にロ
ードされる。 検出されたMH符号は長さ4の白ランに対応するもので
あるので、このMH符号はターミネート符号である。ター
ミネート符号がラン長カウンタ53にロードされる時に
は、フリップ・フロップ50の値がフリップ・フロップ59
に移され、フリップ・フロップ50は反転される。この結
果、フリップ・フロップ59の出力(BLCK3)は白とな
り、フリップ・フロップ50の出力(BLCK2)は黒とな
る。 検出されたMH符号に対応するラン長(この場合は4)
がラン長カウンタ53にロードされた後、信号RUNLDはオ
フされる。信号RUNLDがオフの状態の下では、クロックR
UNCKに同期して、ラン長カウンタ53のラン長は1ずつ減
少される。また、信号RUNLDがオフした後、クロックRUN
CKと同期したクロックWTSFTが生成され、クロックWTSFT
が生成される度に、信号BLCK3で示される値のビット
(白ビット)が1個ずつ直列−並列変換用レジスタ61に
書き込まれる。4個の白ビットが直列−並列変換用レジ
スタ61に書き込まれると、クロックRUNCKの生成は停止
させられ、信号BUSY2はオフされる。同様に、クロックW
ESFTの生成も停止させられる。 最初のMH符号に対応する値がラン長カウンタ53にロー
ドされた後、次のMH符号(この場合は長さ19の黒ランに
対応するMH符号)の検出が行われる。次のMH符号が検出
されると、検出されたMH符号に対応するラン長(この場
合は19)がラン長カウンタ53にロードされる。 検出されたMH符号は長さ19の黒ランに対応するもので
あるので、このMH符号はターミネート符号である。ター
ミネート符号がラン長カウンタ53にロードされる時に
は、フリップ・フロップ50の値がフリップ・フロップ59
に移され、フリップ・フロップ50は反転される。この結
果、フリップ・フロップ59の出力(BLCK3)は黒とな
り、フリップ・フロップ50の出力(BLCK2)は白とな
る。 検出されたMH符号に対応するラン長(この場合は19)
がラン長カウンタ53にロードされた後、クロックRUNCK
に同期してラン長カウンタ53が示すラン長は1ずつ減少
される。また、クロックWTSFTが生成される度に信号BLC
K3で示される値のビット(黒ビット)が1個ずつ直列−
並列変換用レジスタ61に書き込まれる。 図示の例では、先頭の1個の黒ビットが直列−並列変
換用レジスタ61に書き込まれた時に、16進カウンタ62が
16を計数したと仮定している。16進カウンタ62が16を計
数すると、信号iNH3がオンする。信号iNH3は宛先データ
・バッファに対する書込み要求信号である。信号iNH3が
オンになった時のラン長カウンタ53が示すラン長は18で
あり、16以上であるので、信号WT16Eはオンする。 信号WT16Eがオンになると、書込み要求に対応する書
込みが終了した後、全ビットがBLCK3の値を持つ16ビッ
トが直列−並列変換用レジスタ61に並列入力され、ラン
長カウンタ53が示すラン長は16だけ減らされ、ライン長
カウンタ24も16だけ減らされ、次いで信号iNH3が再びオ
ンされる。 〔発明の効果〕 以上の説明から明らかなように、本発明は特に全体的
にラン長の大きいパターン処理に有効であり、本発明に
よれば従来方式に比べて数倍の速さで圧縮および伸長を
実現することが出来る。
n)符号化方式で圧縮する際、Nビット処理(Nは例え
ば16)を行い得るようにすると共に、MH符号化方式によ
って圧縮されたデータを伸長してイメージ・データを生
成する際Nビット処理を行い得るようにした装置を提供
するものである。 〔従来の技術〕 第6図は従来のMH符号化方式によるイメージ・データ
の圧縮方式の概要を示す図である。第6図において、1
はソース・、データ・バッファ、2は宛先データ・バッ
ファ、3は並列直列変換用シフトレジスタ、4は黒白フ
リップ・フロップ、5はEOR(排他的論理和)回路、6
は直列−並列変換用シフトレジスタ、7はMHコード発生
部、8はラン長カウンタをそれぞれ示している。 ソース・データバッファ1からのデータの読み出しは
例えば16ビット単位で行われる。読み出された並列デー
タは並列−直列変換用シフトレジスタ3によって直列デ
ータに変換される。並列−直列変換用シフトレジスタ3
から出力されるビットが黒の場合には黒白フリップ・フ
ロップ4がセットされる。EOR回路5は黒白フリップ・
フロップ4の出力と並列−直列変換用シフトレジスタ3
からの出力とが不一致の場合には論理「1」の変換点信
号を出力する。 ラン長カウンタ8は、並列−直列変換用シフトレジス
タ3から出力されるビットの数をカウントするものであ
り、「1」の変化点信号が出力されると、ラン長カウン
タ8の値はMHコード発生部7に送られ、ラン長カウンタ
8の値は0とされる。 MHコード発生部7は、ラン長カウンタ8からのラン長
と、黒白フリップ・フロップ4からの黒または白情報と
によって定まるMH符号を作成し、これを1ビットずつ出
力する。直列−並列変換用シフトレジスタ6は、直列デ
ータを並列データに変換し、16ビットの並列データが組
み立てられると、これを宛先データ・バッファ2に格納
する。 第7図は従来のMHコードの伸長方式を示す図である。
第7図において、9はMHコード検出部、10は黒白フリッ
プ・フロップをそれぞれ示している。なお、第6図と同
一符号は同一物を示している。 ソース・データ・バッファ1から読み出されたデータ
は並列−直列変換用シフトレジスタ3によって直列デー
タに変換される。並列−直列変換用シフトレジスタ3か
ら1ビットずつ出力されるデータはMHコード検出部9に
入力される。MHコード検出部9は、MHコードの検出を行
い、対応するラン長を出力すると共にターミネート符号
か或いはメークアップ符号かを示す情報を出力する。ラ
ン長はラン長カウンタ8に書き込まれ、ターミネート符
号が検出される度に黒白フリップ・フロップ10は反転さ
れる。 黒白フリップ・フロップ10の値が黒の場合にはラン長
カウンタ8の値に等しい数の黒ビットが直列−並列変換
用シフトレジスタ6に送られ、黒白フリップ・フロップ
10の値が白の場合にはラン長カウンタ8の値に等しい数
の白ビットが直列−並列変換用シフトレジスタ6に送ら
れる。直列−並列変換用シフトレジスタ6は直列データ
を並列データに変換し、16ビットのデータが組み立てら
れると、そのデータは宛先データ・バッファ2に格納さ
れる。 第6図および第7図に示した従来のデータ圧縮伸長方
式は、常にビット単位の処理を行っているので、データ
の圧縮/伸長に非常に時間がかかると言う欠点を有して
いる。 〔発明の目的〕 本発明は、上記の考察に基づくものであって、MH符号
化方式によるイメージ・データの圧縮を高速に行い得る
と共に、この種の圧縮データの伸長を高速に行い得る装
置を提供することを目的としている。 〔目的を達成するための手段〕 第1図は本発明の概要を示す図である。特許請求の範
囲第1項の発明は、 イメージ・データをモディファイド・ハフマン符号に
圧縮する圧縮処理を行うと共に、モディファイド・ハフ
マン符号をイメージ・データに伸長する伸長処理を行う
データ圧縮伸長装置であって、 圧縮処理時および伸長処理時に動作し、メモリ70から
読み出されたNビット(Nは1より大)の並列データを
直列データに変換する並列−直列変換用シフトレジスタ
71と、 圧縮処理時に動作し、並列−直列変換用シフトレジス
タ71の出力が入力される圧縮時黒白フリップ・フロップ
72と、 圧縮処理時に動作し、メモリ70から読み出されたNビ
ットの並列データの各ビット値が全て圧縮時黒白フリッ
プ・フロップ72の出力値と同じ場合には、圧縮時Nビッ
ト処理要求を出力する圧縮時高速処理手段73と、 圧縮処理時に動作し、圧縮時黒白フリップ・フロップ
72の入力と圧縮時黒白フリップ・フロップ72の出力が不
一致か否かを調べる一致/不一致検出回路74と、 圧縮処理時および伸長処理時に動作し、圧縮処理時に
おいては黒ラン又は白ランの長さを計数し、伸長処理時
においてはモディファイド・ハフマン符号に対応する黒
ラン又は白ランの長さがロードされるラン長カウンタ77
と、 圧縮処理時に動作し、一致/不一致回路74が不一致を
検出した時に圧縮時黒白フリップ・フロップ72の出力値
及びラン長カウンタ77の値に基づいてモディファイド・
ハフマン符号を生成するモディファイド・ハフマン符号
発生部76と、 伸長処理時に動作し、並列−直列変換用シフトレジス
タ71の出力が入力され、モディファイド・ハフマン符号
が検出された時に当該モディファイド・ハフマン符号に
対応するラン長をラン長カウンタ77にロードするモディ
ファイド・ハフマン符号検出部78と、 伸長処理時に動作し、ラン長カウンタ77のラン長が黒
ランに関するものか白ランに関するものかを示す伸長時
黒白フリップ・フロップ79と、 圧縮処理時及び伸長処理時に動作し、圧縮処理時には
モディファイド・ハフマン符号発生部76から出力される
直列データが入力され、伸長処理時にはラン長カウンタ
77で示されるビット長を持つと共に各ビットが伸長時黒
白フリップ・フロップ79の示す値を持つビット列が入力
される並列入力可能な直列−並列変換用シフトレジスタ
75と を具備し、 圧縮処理時において、圧縮時Nビット処理要求が出力
された場合には、ラン長カウンタ77のラン長をNだけ増
加させると共にメモリ70に対してデータ読出し要求を送
り、圧縮時Nビット処理要求が出力されない場合には、
メモリ70から読み出されたNビットの並列データを並列
−直列変換用シフトレジスタ71にロードしてシフト動作
を行わせ、シフト動作が行われる度にラン長カウンタ77
のラン長を1ずつ増加させる ことを特徴とするものである。 特許請求の範囲第2項の発明は、 イメージ・データをモディファイド・ハフマン符号に
圧縮する圧縮処理を行うと共に、モディファイド・ハフ
マン符号をイメージ・データに伸長する伸長処理を行う
データ圧縮伸長装置であって、 圧縮処理時および伸長処理時に動作し、メモリ70から
読み出されたNビット(Nは1より大)の並列データを
直列データに変換する並列−直列変換用シフトレジスタ
71と、 圧縮処理時に動作し、並列−直列変換用シフトレジス
タ71の出力が入力される圧縮時黒白フリップ・フロップ
72と、 圧縮処理時に動作し、メモリ70から読み出されたNビ
ットの並列データの各ビット値が全て圧縮時黒白フリッ
プ・フロップ72の出力値と同じ場合には、圧縮時Nビッ
ト処理要求を出力する圧縮時高速処理手段73と、 圧縮処理時に動作し、圧縮時黒白フリップ・フロップ
72の入力と圧縮時黒白フリップ・フロップ72の出力が不
一致か否かを調べる一致/不一致検出回路74と、 圧縮処理時および伸長処理時に動作し、圧縮処理時に
おいては黒ラン又は白ランの長さを計数し、伸長処理時
においてはモディファイド・ハフマン符号に対応する黒
ラン又は白ランの長さがロードされるラン長カウンタ77
と、 圧縮処理時に動作し、一致/不一致回路74が不一致を
検出した時に圧縮時黒白フリップ・フロップ72の出力値
及びラン長カウンタ77の値に基づいてモディファイド・
ハフマン符号を生成するモディファイド・ハフマン符号
発生部76と、 伸長処理時に動作し、並列−直列変換用シフトレジス
タ71の出力が入力され、モディファイド・ハフマン符号
が検出された時に当該モディファイド・ハフマン符号に
対応するラン長をラン長カウンタ77にロードするモディ
ファイド・ハフマン符号検出部78と、 伸長処理時に動作し、ラン長カウンタ77のラン長が黒
ランに関するものか白ランに関するものかを示す伸長時
黒白フリップ・フロップ79と、 圧縮処理時及び伸長処理時に動作し、圧縮処理時には
モディファイド・ハフマン符号発生部76から出力される
直列データが入力され、伸長処理時にはラン長カウンタ
77で示されるビット長を持つと共に各ビットが伸長時黒
白フリップ・フロップの示す値を持つビット列が入力さ
れる並列入力可能な直列−並列変換用シフトレジスタ75
と、 伸長処理時に動作し、直列−並列変換用シフトレジス
タ75のデータがメモリ70に書き込まれる時にラン長カウ
ンタ77のラン長がN以上の場合には、伸長時Nビット処
理要求を出力する伸長時高速処理手段80と を具備し、 圧縮処理時において、圧縮時Nビット処理要求が出力
された場合には、ラン長カウンタ77のラン長をNだけ増
加させると共にメモリ70に対してデータ続出し要求を送
り、圧縮時Nビット処理要求が出力されない場合には、
メモリ70から読み出されたNビットの並列データを並列
−直列変換用シフトレジスタ71にロードしてシフト動作
を行わせ、シフト動作が行われる度にラン長カウンタ77
のラン長を1ずつ増加させ、 伸長処理時において、伸長時Nビット処理要求が出力
された場合には、伸長時黒白フリップ・フロップ79の示
す値を持つNビットのデータを直列−並列変換用シフト
レジスタ75に並列入力すると共にラン長カウンタ77の示
すラン長をNだけ減少させ、次いでメモリ70に対してデ
ータ書込み要求を送り、伸長時Nビット処理要求が出力
されない場合には、伸長時黒白フリップ・フロップ79の
示す値を持つ1ビットのデータをシフト・クロックに同
期して直列−並列変換用シフトレジスタに直列入力さ
せ、1ビットのデータが入力される度にラン長カウンタ
77のラン長を1ずつ減少させる ことを特徴とするものである。 〔発明の実施例〕 《データ圧縮伸長装置の概要》 第2図は本発明によるデータ圧縮伸長装置の実施例の
概要を示す図である。第2図において、11はソース・デ
ータ・バッファ、12は宛先データ・バッファ、13はソー
ス・アドレス・カウンタ、14は宛先アドレス・カウン
タ、15と16はセレクタ、17と18はラッチ、19はシフト論
理回路、20はMH圧縮/伸長論理部、21はソース長カウン
タ、22は宛先長カウンタ、23はライン長レジスタ、24は
ライン長カウンタ、25はコマンド・レジスタ、26はコン
トロール・レジスタ、27はシーケンサ部、28は並列−直
列変換用レジスタ、29はMHコード発生/検出部、30は直
列−並列変換用シフトレジスタ、31ないし35は3ステー
ト・ゲートをそれぞれ示している。 ソース・データ・バッファ11は、中央処理装置(図示
せず)から転送された圧縮又は伸長前のデータを格納す
る。RAMの容量は1.5MByte標準であり、ソース・アドレ
ス・カウンタ13とソース長カウンタ21により、先頭アド
レスとバイト数を任意に設定できる。宛先データ・バッ
ファ12は、中央処理装置へ転送すべき圧縮又は伸長後の
データを格納する。宛先アドレス・カウンタ14と宛先長
カウンタ22により、先頭アドレスとバイト数を任意に設
定できる。ソース・アドレス・カウンタ13は、ソース・
データ・バッファ11のアドレスを指定する22ビットのア
ップ・カウンタであり、中央処理装置およびMH圧縮/伸
長論理部20がソース・データ・バッファ11をアクセスす
る時に自動的にアップされる。宛先アドレス・カウンタ
14は宛先データ・バッファのアドレスを指定する22ビッ
トのアップ・カウンタであり、中央処理装置及びMH圧縮
伸長論理部20が宛先データ・バッファ12をアクセスする
時に自動的にアップされる。ソース長カウンタ21は、ソ
ース・データ・バッファ11に格納されるデータのバイト
長を指定する22ビットのダウン・カウンタであり、MH圧
縮/伸長論理部20がソース・データ・バッファ11をアク
セスする時に自動的にダウンされ、“0"になるとシーケ
ンサ部27の判断により、ソース要求割込みが発生する。
宛先長カウンタ22は、宛先データ・バッファ12に格納さ
れたデータのバイト長を指定する22ビットのダウン・カ
ウンタであり、MH圧縮/伸長論理部20が宛先データ・バ
ッファ12をアクセスする時に自動的にダウンされ、“0"
になるとシーケンサ部27の判断により、ディスティネー
ション要求割込みが発生する。ライン長レジスタ23は、
圧縮前又は伸長後の画像データの1ライン長(ビット
数)を示す16ビットのレジスタであり、中央処理装置に
よってセットされる。ライン長カウンタ24は、現在処理
中のラインの残り長さ(ビット数)を示すダウン・カウ
ンタであり、1ライン処理前にシーケンサ部27によりラ
イン長レジスタ23の内容がロードされ、画像データのビ
ットに対応してカウント・ダウンされる。コマンド・レ
ジスタ25及びコントロール・レジスタ26は、処理内容を
指定するレジスタであり、中央処理装置によってセット
される。シフト論理回路19は、8ビット×8のデータを
90度および270度回転させるロジックであり、中央処理
装置によりリード/ライトされる。MH圧縮/伸長論理部
20は、中央処理装置によりライトされたソースデータを
圧縮/伸長して宛先データ・バッファ12にその結果を格
納するブロックである。詳細は後述する。シーケンサ部
27は、2K×16ビットのシーケンサを核として構成され、
以下の機能を持つ。 ・コマンド/コントロールの解析 ・MH圧縮/伸長論理部のイニシャライズおよび起動 ・ソース・エンプティ処理 ・ディスティネーションFu11処理 ・伸長時のEOL処理およびライン処理イニシャライズ ・圧縮時のEOL送出およびRTC処理 ・エラー検出およびエラー処理 ・ステータス送出および中央処理装置への割込み要求 《MH圧縮/伸長論理部の構成》 第3図はMH圧縮伸長論理部の1実施例構成を示す図で
ある。MH圧縮/伸長論理部20は、ソース・データ・バッ
ファ11からロードされた16ビットの圧縮/伸長データを
1ビットずつシフトさせ、MH変換後に逆に直列−並列シ
フトして宛先データ・バッファ12に格納する回路であ
る。基本クロックは135nsである。 第3図において、41は圧縮16ビット処理回路、42は16
進カウンタ、43はフリップ・フロップ、44は並列−直列
変換用シフトレジスタ、45はフリップ・フロップ、46は
EOR回路、47はフリップ・フロップ、48は2560検出回
路、49はフリップ・フロップ、50はフリップ・フロッ
プ、51はデータ伸長ROM、52はフリップ・フロップ、53
はラン長カウンタ、54はフリップ・フロップ、55はフリ
ップ・フロップ、56はデータ圧縮ROM、57はフリップ・
フロップ、58は伸長16ビット処理回路、59はフリップ・
フロップ、60はセレクタ、61は直列−並列変換用シフト
レジスタ、62は16進カウンタ、63はフリップ・フロッ
プ、64はRAM優先順位決定回路をそれぞれ示している。
なお、並列−直列変換用シフトレジスタ44と28(第2
図)は同一物であり、直列−並列変換用シフトレジスタ
61と30(第2図)は同一物である。 圧縮16ビット処理回路41は、圧縮時にソース・データ
・バッファ11よりロードしたデータが全て“0"か“1"で
且つフリップ・フロップ45の出力と同じ値の時には16ビ
ットを一度に処理して高速化を図る回路であり、ラン長
カウンタ53を16アップさせ、ライン長カウンタ24を16ダ
ウンさせた後、次のソース・データを要求するものであ
る。 16進カウンタ42は、並列−直列シフトレジスタ44のシ
フト数をカウントする16進アップ・カウンタである。フ
リップ・フロップ43は、16進カウンタ42が16をカウント
した時にソース・データ要求信号iNH1を出力する。な
お、信号iNH1はソース・エンプティ時にはシーケンサ部
27によりマスクされる。並列−直列変換用シフトレジス
タ44は、ソース・データ・バッファ11からの読出しデー
タ(16ビット)を直列データに変換するものである。 フリップ・フロップ45,EOR回路46およびフリップ・フ
ロップ47は、変化点検出回路を構成している。変化点検
出回路45〜47は、圧縮時に並列−直列変換用シフトレジ
スタと同期して動作し、黒ランから白ランに変化した点
または白ランから黒ランに変化した点を検出するもので
ある。変化点が検出されると、*MHRQ信号が出力され、
後述する圧縮データ発生部へのロード要求が行われる。
なお、信号*MHRQ出力中は、並列−直列変換用シフトレ
ジスタ44のシフト動作はストップする。2560検出回路48
は、圧縮時にラン長カウンタ値が2560に達すると、メー
クアップ(MakeUp)コードの作成要求を行う。ラン長カ
ウンタ53の値がフリップ・フロップ55にロードされた
後、ラン長カウンタ53はクリアされる。 フリップ・フロップ49,フリップ・フロップ50および
データ伸長ROM51はMHコード検出部を構成している。デ
ータ伸長ROM51はP−ROMから構成されている。MHコード
検出部49〜51は、伸長時に並列−直列変換用シフトレジ
スタ44と同期動作し、並列−直列変換用シフトレジスタ
44の出力をフリップ・フロップ49とデータ伸長ROM51で
構成される一種のシーケンサで判断してMHコードを検出
する回路である。フリップ・フロップ50は、ターミネー
ト符号検出によりその状態が反転するものであり、その
信号はBLCK2となる。なお、ROM51は2K×16ビットで構成
され、その出力は次のジャンプ・アドレスを示してお
り、MHコードが検出されると、そのラン長,ターミネー
トかメークアップかを示す信号およびBUSY1要求信号を
出力する。また、EOL検出時はEOLビットがオンして1ラ
イン終了を知らせる。エラー・コード検出時にはERROR
とEOLの両方がオンする。信号BUSY2は、伸長時のラン長
カウンタ53の状態を示す信号であり、ROM51の出力がラ
ン長カウンタ53にロードされるとオンし、ラン長カウン
タ53からキャリーが出るとオフされ、レディ状態にな
る。 ラン長カウンタ53は、直列接続された2個の64進アッ
プ・カウンタから構成されており、圧縮時は変化点まで
のビット数をカウントし、伸長時はラン長の補数がロー
ドされ、直列−並列変換用シフトレジスタ61と同期して
カウント・アップする。 フリップ・フロップ54,フリップ・フロップ55及びデ
ータ圧縮ROM56は、MHコード発生部を構成している。デ
ータ圧縮ROM56はP−ROMから構成されている。MHコード
発生部54〜56は一種のシーケンサ構造をしており、圧縮
時にはラン長カウンタ53からのデータ,ターミネートか
メークアップかの区別信号および白/黒信号がフリップ
・フロップ54,55にロードされる。フリップ・フロップ5
4はロード時にクリアされ、ROM56の出力を次期ジャンプ
・アドレスとしてシーケンス動作を行い、その度に1ビ
ットずつMH圧縮コードをセレクタ60を通して直列−並列
変換用レジスタ61にデータをシリアル転送する。転送が
終了するとBUSY1要求信号を出力して1個のMHコード処
理を終了する。ROM56は、2K×8ビットのものをターミ
ネート用とメークアップ用にそれぞれ1個ずつ使用して
いる。 フリップ・フロップ57は、信号BUSY1を出力する。伸
長時にはMHコード検出部49〜51によりコード検出が行わ
れた時には信号BUSY1はオンし、ラン長カウンタ53への
ロード要求を行い、ロード後にクリアされて、次のコー
ド検出が開始される。圧縮時には、ラン長カウンタ53か
らMHコード発生部54〜56へのロード時に信号BUSY1はオ
フし、コード送出終了後にオンして、MHコード発生部54
がレディ状態であることを報告する。 伸長16ビット処理回路58は、伸長時の高速化を計る回
路であり、宛先データ・バッファへの書込みが行われる
ときに、ラン長カウンタ53の値がキャリーまで16ビット
以上残っている時に動作し、WT16E信号を出力する。WT1
6E信号が出力されると、ラン長カウンタ53とライン長カ
ウンタ24とは16ビット単位で処理され、その度にディス
ティネーション・ライト要求を示す信号iNH3がオンされ
る。 フリップ・フロップ59は、信号BLCK3を出力する。伸
長時にラン長カウンタ53へラン長がロードされる時に信
号BLCK2がフリップ・フロップ59にロードされ、直列−
並列変換用シフトレジスタ61へ白ならば“0"、黒ならば
“1"を送出する。 セレクタ60は、直列−並列変換用シフトレジスタ61へ
送出されるシリアル・データをセレクトする。伸長時は
信号BLCK3、圧縮時はROM56の出力がセレクトされる。ま
た、EOLとRTC送出の際にはシーケンサ部27の出力がセレ
クトされる。 直列−並列変換用シフトレジスタ61は、宛先データ・
バッファ12へ送出するデータを16ビットのバウンダリに
揃えるためのシフトレジスタであり、セレクタ60からの
シリアル・データをパラレル・データに変換する。な
お、伸長16ビット処理回路58が動作した際には信号BLCK
3の値が16ビットのロード入力となり、シフトレジスタ6
1の並列データをa11“0"あるいはa11“1"にする。 16進カウンタ62は、16進のアップ・カウンタであり、
直列−並列変換用シフトレジスタ61のシフト数をカウン
トする。フリップ・フロップ63は、信号iNH3(宛先デー
タ・ライト要求信号)を出力するものであり、16進カウ
ンタ62が16を数えた時に信号iNH3が出力され、宛先デー
タ・バッファ12に対するライト要求が行われる。なお、
信号iNH3は、シーケンサ部27の出力によりマスク可能で
ある。 MH変換時に、ソース・データ要求信号iNH1と宛先デー
タ・ライト要求信号iNH3とRAMリフレッシュ要求信号の
三者が競合するが、RAM優先順位決定回路64がそれらの
優先順位を決定する。また、中央処理装置によるRAMア
クセス時にはCPU要求信号とリフレッシュ要求が競合す
るが、RAM優先順位決定回路64はそれらの優先順位も決
定する。なお、優先順位は次の通りである。 中央処理装置アクセス時 1.中央処理装置の要求 2.リフレッシュ要求 MH圧縮時 1.ソース・データの要求 2.宛先データのライト要求 3.リフレッシュ要求 MH伸長時 1.宛先データのライト要求 2.ソース・データ要求 3.リフレッシュ要求 《MH圧縮処理》 次にMH圧縮処理について説明する。圧縮時には、符号
41,42,43,44,45,46,47,48,53,54,55,56,57,60,61,62,6
3,64の部分が動作する。 まず、中央処理装置によりソース・データ・バッファ
11にイメージ・データがライトされ、各種レジスタがセ
ットされた後でコントロール・レジスタ26のコマンド・
スタート・ビットがオンされることにより、圧縮処理が
開始される。コマンド・スタート・ビットはシーケンサ
部27により検出され、FirstかOnly PartitionならばMH
圧縮部のイニシャライズを行い、第1ライン目先頭のEO
Lを直列−並列変換用シフトレジスタ61に送出後、信号i
NH1のマスクを解除する。なお、Firstとは画面を分割し
て送る場合に最初の分割部分を送ることを意味してお
り、Only Partitionとは画面を送る場合に分割せずに
送ることを意味している。 上記の処理が終了したあと、ソース・データ要求信号
が出力され、第1バイト目および第2バイト目の16ビッ
トのデータが並列−直列変換用シフトレジスタ44へロー
ドされ、ロード後に1ビットずつシフト動作して変化点
をサーチする。並列−直列変換用シフトレジスタ44が16
ビットシフトしたことを16進カウンタ42でカウントする
と、再び信号iNH1が出力され、それ以後は同様にロード
→シフト動作を繰り返して、変化点を検出していく。 並列−直列変換用シフトレジスタ44と符号42,43,45,4
7,53の部分とは同期しており、変化点までのビット数を
ラン長カウンタ53でカウントして変化点が検出される
と、MHコード発生部54〜56へラン長,ターミネートかメ
ークアップかを示す信号,白/黒情報をロードする。 このときラン長が64ビット以上であれば最初に上位6
ビットをロードし、信号BUSY1がオフ状態になり、それ
によりMHコード発生部54〜56が動作開始を行い、1クロ
ック毎に1ビットずつ直列−並列変換用シフトレジスタ
61へ圧縮データ(メークアップ・コード)を送出してい
き、最終データ送出後、BUSY1はオンされる。 メークアップ・コードの送出が終了すると信号BUSY1
が再びオフされて、次にラン長カウンタ53の下位6ビッ
トがMHコード発生部54〜56にロードされ、同様にしてタ
ーミネート・コードが直列−変換用シフトレジスタ61へ
送出される。 直列−並列シフトレジスタ61が16ビットシフト動作を
行うと、フリップ・プロップ63により信号iNH3が出力さ
れ、直列−並列変換用シフトレジスタ61によって組み立
てられた16ビットの並列データが宛先データ・バッファ
12にライトされる。 変化点検回路45〜47は、ラン長カウンタ53の下位6ビ
ットがMHコード発生部54〜56にロードされた時点で再び
動作を開始する。即ち、この時点では、並列−直例変換
用シフトレジスタ44と直列−並列変換用シフトレジスタ
61とは、同時動作することになる。 以上の様に圧縮処理は連続的に動作していくが、やが
てライン長カウンタ24の値が“0"になり、1ラインの終
了を報告する信号が出力される。この信号が出力される
と、直列−並列変換用シフトレジスタ61および変化点検
出回路45〜47は動作を停止して、制御をシーケンサ部27
へ渡す。シーケンサ部27は、ラン長カウンタ53に残って
いる最後のラン長を処理するために強制的にフリップ・
フロップ47をオンして変化点を発生させて最終ラン長を
直列−並列変換用シフトレジスタ61に転送する。そし
て、動作終了確認後に信号iNH3を監視しながらEOLを直
列−並列変換用シフトレジスタ61へ送出して1ライン処
理が完了する。 次に直列−並列変換用シフトレジスタ61に残っている
フィラ・ビット分をシフトさせて2ライン目の先頭をバ
イト・バウンダリに合わせた後、ライン長カウンタ23に
ライン長をロードすることにより再びライン処理が開始
される。 以後、次々にラインが処理されていくが、ソース・エ
ンプティ(ソース・データ・バッファが空)やディステ
ィネーションFu11(宛先データ・バッファが一杯)が生
じた際には、その都度リード動作を停止させてシーケン
サ部27に制御を渡す。シーケンサ部27は、完全にリード
動作が停止したことを確認後、ステータス・バイトをセ
ットして中央処理装置に割込みをかける。中央処理装置
は、割込み要因を判断した後、ディスティネーション要
求であれば、ディスティネーション・データを読み出し
た後、新しいアドレスとバイト数をセットして最後にコ
マンド・スタート・ビットをオンする。また、ソース要
求であればソース・データを送出後にアドレスやバイト
数,Partition等をセットし、しかる後にコマンド・スタ
ート・ビットをオンする。シーケンサ部27は、このスタ
ート・ビットを検出後、ソース・エンプティ・フラグ或
いはディスティネーションFu11フラグをオフすることに
より、中断されていた処理を続行させる。そして、Last
あるいはOnly Partitionのソース・エンプティが発生
すると、最後にシーケンサ部27はRTCを送出し、エンド
要求割込みを上げて圧縮処理は終了する。 ラン長が2560を越える場合が考えられるが、このとき
はラン長が2560に達した時点でラン長カウンタ53の上位
6ビットをフリップ・フロップ55へロード後、2560検出
回路48およびラン長カウンタ53の上位ビットをクリアす
る。これにより、MHコード発生部54〜56からメークアッ
プ符号が送出され、また同時にラン長の残りがカウント
される。そして、再び2560に達すれば以上の動作を繰り
返し、変化点が検出された時点で通常のメークアップ/
ターミネート処理を行う。 また、このようにラン長の長い(16ビット以上)場合
は圧縮16ビット処理回路41が動作して圧縮の高速化を行
っている。即ち、圧縮16ビット処理回路41が動作する
と、ラン長カウンタ53の値は16だけカウント・アップさ
れ、また、ライン長カウンタ24は16だけカウント・ダウ
ンする。これにより、ビット処理の場合に比して、圧縮
処理効率を5倍程度向上させることが出来る。 最後にエラー処理についてであるが、圧縮時のエラー
はLastおよびOnly Partitionでソース・エンプティが
発生した場合にライン長がFULLでなかった場合、言い換
えれば、ライン処理途中でソース・エンプティが発生し
た場合のみである。この時は残りのラインにダミーをつ
めて圧縮するが、シーケンサ部27の命令により強制的に
ラインをFu11にした後にフリップ・フロップ47をオンに
してRTC処理を行っている。 《MH伸長処理》 MH伸長時の処理について説明する。伸長時には、符号
42,43,44,49,50,51,52,53,57,58,59,60,61,62,63,64の
部分が動作する。 まず、中央処理装置によりソース・データ・バッファ
11に圧縮データがセットされ、各種レジスタがセットさ
れた後でコントロール・レジスタのコマンド・スタート
・ビットがオンされることにより伸長処理が開始され
る。コマンド・スタート・ビットはシーケンサ部27によ
り検出され、FirstかOnly PartitionならばMH伸長部の
イニシヤライズを行い、信号iNH1のマスクを解除する。 これにより、ソース・データ要求信号が出力され、第
1バイト目および第2バイト目のデータが並列−直列変
換用シフトレジスタ44にロードされる。ロード後に並列
−直列変換用シフトレジスタ44と16進カウンタ42とは同
期動作するが、フリップ・フロップ49とROM51は一種の
シーケンサとなっており、並列−直列変換用シフトレジ
スタ44からのシリアル・データを分岐条件として次々に
分岐していき、MHコードを検出した時点でシフト動作を
ストップさせ、フリップ・フロップ57をオンしてラン長
カウンタ53へのロード要求信号を出力する。そのときの
ROM51の出力は分岐アドレスではなく、6ビットのラン
長の補数、2ビットのメークアップ/ターミネート区別
信号およびフリップ・フロップ57への論理「1」信号で
ある。 フリップ・フロップ52からの信号BUSY2はラン長カウ
ンタ53の状態を示しており、オフ状態の時に信号BUSY1
が来ると、要求を受け付けて信号BUSY2はオン状態とな
る。これにより信号BUSY1はオフされ、フリップ・フロ
ップ49がクリアされ、そして信号BLCK2はターミネート
符号をラン長カウンタ53にロード後、白/黒反転され
て、次のコード検出動作が始まる。 並列−直列変換用シフトレジスタ44が16ビットシフト
動作を行うと、次のデータを要求する信号iNH1が出力さ
れ、並列−直列変換用シフトレジスタ44に次の圧縮デー
タがロードされ、これ以後は同様な動作を繰り返す。一
方、信号BUSY2がオンになる時点でROM51の出力がラン長
カウンタ53にロードされるが、もしメークアップ符号な
らば上位6ビットへ、ターミネート符号ならば、下位6
ビットヘラン長の補数がロードされる。尚、補数は例え
ばラン長が0であれば「111111」、ラン長が1であれば
「111110」となる。 ロード後はラン長カウンタ53、直列−並列シフトレジ
スタ61および16進カウンタ62は同期動作して、ラン長カ
ウンタ53と同時にロードされた白/黒状態を示すフリッ
プ・フロップ59の出力を伸長データとして直列−並列変
換用シフトレジスタ61へ転送する。直列−並列変換用シ
フトレジスタ61が16ビットシフト動作を行うと、フリッ
プ・フロップ63よりiNH3が出力され、宛先データ・バッ
ファ12にデータを格納後、再びシフト動作を続行する。
やがて、ラン長カウンタ53からキャリーが出力され、1
個のMHコードの伸長が終了してフリップ・フロップ52か
らの信号BUSY2がオフされる。このときにフリップ・フ
ロップ57の出力する信号BUSY1がオンしておれば次のラ
ン長をロードする。 また、iNH3の信号がオン時にライン長カウンタ53の残
りのカウント数が16を越える場合には高速化のために伸
長16ビット処理回路58がオンして、全てのビットがフリ
ップ・フロップ59の値を持つ16ビットの並列データを直
列−並列変換用レジスタ61にロードした後、ラン長カウ
ンタ53を16アップさせ、ライン長カウンタ24を16ダウン
させ、フリップ・フロップ63からの信号iNH3をオンす
る。そして、ラン長カウンタ53のラン長の残りカウント
数が16未満になると、通常の1ビット処理を行ってい
る。 以上のように次々とMHコードの検出と伸長とが行われ
るが、ラインレングスFu11時およびEOLコードが検出さ
れた時点でハードウェアを停止させ、シーケンサ部27に
制御を渡す。シーケンサ部27は、EOLフラグとラインレ
ングスFu11が同時に発生すれば正常に1ライン伸長が終
了したと判断して、1ラインのバウンダリに合わせるた
め直列−並列変換用シフトレジスタ61に“0"を埋める。
そして、次のラインに備えるためにラインのイニシャラ
イズを行い、最後にライン長レジスタ23の値をライン長
カウンタ24にロードすることにより、次ラインの伸長が
始まる。 もし、EOLが検出された時にラインレングスがFu11に
なっていないならば、エラーと判断して、残りのビット
に“0"を埋めた後、次のラインに備える。また、逆にラ
インレングスがFu11になった時にEOLが検出されないな
らば、この場合もエラーと判断して、EOLを検出するた
めに符号49,50,57,58,59の部分をクリアする。そして、
EOLが見つかるまで何度もクリア動作を続ける。検出さ
れれば1ライン処理を終了する。その他の場合として、
1ラインの途中でエラー・コードが検出された時には上
記と同様にクリア動作を行い、そのコードを無視して、
次のデータを白として伸長動作を続ける。 このように次々とライン処理を進行していくが、ソー
ス・エンプティやディスティネーションFu11が検出され
た時にはその都度ハードウェアを停止させてシーケンサ
部27に制御を渡す。その外は圧縮処理と同様であり、La
stあるいはOnly Partitionのソースエンプティが発生
した時点で伸長処理を終了するが、最後のRTCが検出さ
れないときはエラーとし、ライン長Fu11でなければ“0"
を埋めて終了する。 《タイミング・チャート》 第4図は圧縮タイミングを示す図である。第4図の信
号について説明する。 (1)CK1,CK2,CK4 タイミング基本クロック(周期135ns)のクロックで
あり、45nsずつずれた信号である。 (2)PSLD シフトレジスタ44にソース・データ・バッファからデ
ータ・ロードをイネーブルする信号である。 (3)RDSFT シフトレジスタ44の入力クロックであり、PLSDがある
時はロード動作を行う。PLSDがないときは1ビットずつ
シフト動作を行い、本信号と同期してラン長カウンタ53
もカウント・アップされる。 (4)iNH1 ソースデータを要求する信号であり、シフトレジスタ
44がシフト時や圧縮/伸長動作を停止させるときはオフ
となる。 (5)CHNG EOR回路46の出力信号であり、シフトレジスタが1ビ
ットシフトした時に変化点を検出した場合に出力される
信号である。次のクロックでフリップ・フロップ47にラ
ッチされ、MHRQ信号と*MHRQ信号を出力する。 (6)BLACK1 シフトレジスタ44の出力信号を1クロック遅らせたも
のであり、一つ前のデータを記憶するものである。 この信号は圧縮16ビット処理回路41の入力に接続され
ており、次のPSLD信号が来た時点、即ち新しいソースデ
ータがきた時点でそのデータがBLACK1と全て同じなら
ば、圧縮16ビット処理を要求する信号RD16Eを出力す
る。 (7)BUSY1 MHコード発生部54〜56の状態を示す信号であり、LOW
のときMHコード発生部が動作中であることを示す。変化
点検出後、ラン長カウンタ53の値をフリップ・フロップ
55にロードした時にLOWとなる。カウント数が64を越え
た場合はメークアップ符号生成を行い、シフトレジスタ
61に1ビットずつ送出後、いったんHIGHになる。同様
に、ターミネート符号生成時はLOWになり、送出後、HIG
Hになり、ラン長カウンタは次の圧縮データのカウンタ
がイネーブルになる。 (8)FFLD フリップ・フロップ55へのイネーブル信号であり、基
本クロックとANDをとって、フリップ・フロップ55への
入力クロックFLDCKを生成する。 (9)RQOFF メークアップ符号送出中であることを示す。 (10) FLDCK フリップ・フロップ55への入力クロックであり、ラン
長カウンタのカウンタ値(メークアップ,ターミネー
ト)をロードする信号である。 (11) FFLD0〜5 フリップ・フロップ55の出力である。 (12) CMP0〜3 圧縮ROM56の出力であり、フリップ・フロップ54に入
力され、次の圧縮ROMのアドレスを示すデータである。
本データと同時に圧縮データが1ビットずつ生成され、
セレクタ60に入力される。 (13) COMCK フリップ・フロップ54の入力クロックである。本信号
に同期して、1ビットずつ圧縮データが生成される。 (14) *MUCLR ラン長カウンタの上位6ビットのクリア信号である。
フリップ・フロップ55へのロード後、ラン長カウンタは
クリアされる。 (15) *TMCLR ラン長カウンタの下位6ビットのクリア信号である。
フリップ・フロップ55へロード後、ラン長カウンタはク
リアされる。 (16) RD16E 圧縮時に16ビット処理を要求する信号である。(上記
(6)を参照)。本信号出力時、RDSFTの1クロック
で、ラン長カウンタが16カウントアップさせる。(下位
4ビットをそのままにして下位5ビット以上をカウント
アップさせる) (17) WTSFT シフトレジスタ61の入力クロックである。圧縮された
データを本クロックにより1ビットずつシフトレジスタ
に格納する。 (18) iNH3 16進カウンタが16をカウントした時点、即ちシフトレ
ジスタ61が一杯になった時点でHIGHになり、宛先データ
・バッファ12への書込みを要求する。 (19) ライン長CK ライン長カウンタ24をカウントアップするクロックで
ある。RDSFTと同期してカウンタをアップさせる。 第4図は、長さが64以上の白ランと,それに続く長さ
が32以上の黒ランを圧縮する場合のタイミング・チャー
トである。なお、従来の例を先に説明し、あとで本発明
の16ビット処理を説明するために、白ランの圧縮の際に
は16ビット処理が行われないとしている。また、白ラン
と黒ランの境界は2バイトバウンダリ(境界)上にある
と仮定している。 信号PSLDがオンのときに幅狭のクロックRDSFTが生成
されると、ソース・データ・バッファから読み出された
16ビットの平列データ(すべて白ビットと仮定)は並列
−直列変換用シフトレジスタ44にロードされる。その
後、シフトクロックRDSFTが生成される度に並列−直列
変換用シフトレジスタ44はシフトされる。並列データが
並列−直列変換用シフトレジスタ44にロードされた後、
16個のシフトクロックRDSFTが生成されると、信号iNH1
がオン(高レベル)になり、次のデータの読出しをソー
ス・データ・バッファに対して要求する。 次の並列データがソース・データ・バッファから読み
出され、並列−直列変換用シフトレジスタ44にロードさ
れる。この並列データは全て黒ビットから構成されてい
ると仮定している。そうすると、信号CHNGがオンする。
信号CHNGはEOR回路46の出力である。信号CHNGがオンす
ると、フリップ・フロップ47の出力がオンし、信号MHRQ
がオンする。なお、フリップ・フロップ47はクロックCK
1の立ち下がりで入力を取り込み、フリップ・フロップ4
5はシフトクロックRDSFTの立ち上りで入力を取り込む。 信号MHRQがオンすると、白ランの圧縮(MHコードへの
変換)が開始される。MHコード発生部自体は公知である
ので、圧縮については簡単に説明する。先ず、ラン長カ
ウンタ53の上位6ビット部分がフリップ・フロップ55に
ロードされ、ラン長カウンタ53の上位6ビット部分がク
リアされ、メークアップ符号が1ビットずつ送出され
る。メークアップ符号の送出が終了すると、ラン長カウ
ンタ53の下位6ビット部分がフリップ・フロップ55にロ
ードされ、ラン長カウンタ53の下位6ビット部分がクリ
アされ、ターミネート符号が1ビットずつ送出される。
ラン長カウンタ53の下位6ビット部分がクリアされる
と、信号がMRQがオフされる。 信号MRQがオフされると、再びシフトクロックRDSFTの
生成が開始される。16個のシフトクロックRDSFTが生成
されると、信号iNH1がオンし、次のデータをソース・デ
ータ・バッファに対して要求する。ソース・データ・バ
ッファから送られて来た並列データは並列−直列変換用
シフトレジスタ44にロードする。ロードされると、信号
iNH1はオフされる。この並列データが並列直列変換用レ
ジスタ44にロードされたときは、ソース・データ・バッ
ファからの並列データの各ビットの値は黒であり、フリ
ップ・フロップ45の出力も黒であるので、信号RD16Eが
オンする。信号RD16Eがオンになると、上記の並列デー
タをロードした直後に生成されるシフトクロックRDSFT
によってラン長カウンタは16だけカウント・アップさ
れ、ライン長カウンタは16だけカウント・ダウンされ、
信号iNH1がオンされる。 第5図は伸長タイミング・チャートである。第5図の
信号について説明する。 (1)CK2,CK1,CK4,PSLD,iNH1,iNH3,ライン長CKは圧縮
と同一信号である。 (2)RDSFT シフトレジスタ44の入力クロックであり、PSLDがある
時、ロード動作を行う。PSLDがない時は、1ビットずつ
シフト動作を行う。 (3)EXPCK 上記RDSFT信号とPSLD(LOW)のANDをとったものであ
り、フリップ・フロップ49の入力クロックである。本信
号に基づき、1ビットずつ圧縮データのデコードが行わ
れる。 (4)EXP0〜A 伸長ROM51の出力である。EXPCKに同期してコード検出
が行われ、検出するまでフリップ・フロップ49の次の入
力を送出する。 (5)BUSY1 上記(4)でコード検出が完了した時点でオン(高レ
ベル)となり、ラン長カウンタへのロードを要求する。
ラン長カウンタへロード完了後LOWになる。 (6)BUSY2 ラン長カウンタの値の数だけシフトレジスタ61に白ま
たは黒をつめるのを要求する信号である。カウントが終
了した時点でLOWになる。 (7)RUNLD コード検出を終了した時点で、ラン長カウンタ53に伸
長カウント数をロードするのをイネーブルにする信号で
ある。 (8)RUNCK ラン長カウンタの入力クロックである。RUNLDがイネ
ーブルの時はロードを行い、ディセーブルの時はラン長
にロードされた数だけカウントする信号である。 (9)BLCK2 現在、デコードしている符号が黒か白かを示す信号で
ある。1で黒コードをデコードしていることを示す。行
の最初は白からスタートする。 (10)*BWCHG フリップ・フロップ50の入力クロックであり、ターミ
ネート符号を検出し、ラン長カウンタにデータをロード
した時点でBLCK2を反転させ、次の伸長データの色を設
定する。 (11)WTSFT シフトレジスタ61のシフトクロックであり、ラン長カ
ウンタの値分だけシフトさせる信号である。 (12)WT16E 伸長時、16ビット処理をイネーブルにする信号であ
る。上記(11)の信号により通常は1ビットずつラン長
カウンタの分だけシフトさせているが、シフトレジスタ
61の内容を宛先データ・バッファに格納した後、まだラ
ン長カウンタの値が16以上残っている場合に、本信号は
イネーブルになる。本信号が1の時、ラン長カウンタの
残数を1クロックのRUNCLKで16減算させ、シフトレジス
タの全ビットにBLCK3の値をロードさせ、iNH3をイネー
ブルにする。宛先データ・バッファに格納後、ラン長カ
ウンタの残数が15以下になった時点で、本信号はディセ
ーブルになり、以降はWTSFTに同期して、通常通り1ビ
ットずつシフト動作とラン長カウンタと残数の減算を行
う。 (13)*TMLD 1つのコード検出を行った際、ターミネート符号であ
れば、本信号がオンになり、ラン長カウンタの下位6ビ
ットにロードする。 (14)*MULD 一つのコード検出を行った際、メークアップ符号であ
れば、本信号がオンになり、ラン長カウンタの上位6ビ
ットにロードする。 (15)BLCK3 ラン長カウンタに入力される色が黒か白かを示し、1
で黒を示す。ラン長カウンタへのロード時にフリップ・
フロップ59にBLACK2の値がロードされる。 第5図は、長さ4の白ランに対応するMH符号と、長さ
19の黒ランに対応するMH符号とを伸長する場合のタイミ
ング・チャートである。 なお、実際には長さ4の白ランに対応するMH符号は4
ビット構成であり、長さ19の黒ランに対応するMH符号は
11ビット構成であるが、説明を簡単にするために、長さ
4の白ランに対応するMH符号を3ビット構成、長さ19の
黒ランに対応するMH符号も3ビット構成としている。 信号PSLDがオンのときに幅狭のクロックRDSFTが生成
されると、ソース・データ・バッファから送られてきた
並列データは並列−直列変換用レジスタ44にロードされ
る。ロード後のシフトクロックRDSFTに同期して並列−
直列変換用シフトレジスタ44からデータが1ビットずつ
読み出され、フリップ・フロップ49に送られる。 フリップ・フロップ49は、クロックEXPCKに同期し
て、送られてきた直列データを1ビットずつ取り込む。
3ビットのデータがフリップ・フロップ49に取り込まれ
た時にMH符号が検出され、信号BUSY1がオンされる。こ
の時、信号BUSY2がオフであったとすると、信号RUNLDが
オンされ、クロックRUNCKの生成が開始される。信号RUN
LDがオンのときにクロックRUNCKが生成されると、検出
されたMH符号に対応するラン長がラン長カウンタ53にロ
ードされる。 検出されたMH符号は長さ4の白ランに対応するもので
あるので、このMH符号はターミネート符号である。ター
ミネート符号がラン長カウンタ53にロードされる時に
は、フリップ・フロップ50の値がフリップ・フロップ59
に移され、フリップ・フロップ50は反転される。この結
果、フリップ・フロップ59の出力(BLCK3)は白とな
り、フリップ・フロップ50の出力(BLCK2)は黒とな
る。 検出されたMH符号に対応するラン長(この場合は4)
がラン長カウンタ53にロードされた後、信号RUNLDはオ
フされる。信号RUNLDがオフの状態の下では、クロックR
UNCKに同期して、ラン長カウンタ53のラン長は1ずつ減
少される。また、信号RUNLDがオフした後、クロックRUN
CKと同期したクロックWTSFTが生成され、クロックWTSFT
が生成される度に、信号BLCK3で示される値のビット
(白ビット)が1個ずつ直列−並列変換用レジスタ61に
書き込まれる。4個の白ビットが直列−並列変換用レジ
スタ61に書き込まれると、クロックRUNCKの生成は停止
させられ、信号BUSY2はオフされる。同様に、クロックW
ESFTの生成も停止させられる。 最初のMH符号に対応する値がラン長カウンタ53にロー
ドされた後、次のMH符号(この場合は長さ19の黒ランに
対応するMH符号)の検出が行われる。次のMH符号が検出
されると、検出されたMH符号に対応するラン長(この場
合は19)がラン長カウンタ53にロードされる。 検出されたMH符号は長さ19の黒ランに対応するもので
あるので、このMH符号はターミネート符号である。ター
ミネート符号がラン長カウンタ53にロードされる時に
は、フリップ・フロップ50の値がフリップ・フロップ59
に移され、フリップ・フロップ50は反転される。この結
果、フリップ・フロップ59の出力(BLCK3)は黒とな
り、フリップ・フロップ50の出力(BLCK2)は白とな
る。 検出されたMH符号に対応するラン長(この場合は19)
がラン長カウンタ53にロードされた後、クロックRUNCK
に同期してラン長カウンタ53が示すラン長は1ずつ減少
される。また、クロックWTSFTが生成される度に信号BLC
K3で示される値のビット(黒ビット)が1個ずつ直列−
並列変換用レジスタ61に書き込まれる。 図示の例では、先頭の1個の黒ビットが直列−並列変
換用レジスタ61に書き込まれた時に、16進カウンタ62が
16を計数したと仮定している。16進カウンタ62が16を計
数すると、信号iNH3がオンする。信号iNH3は宛先データ
・バッファに対する書込み要求信号である。信号iNH3が
オンになった時のラン長カウンタ53が示すラン長は18で
あり、16以上であるので、信号WT16Eはオンする。 信号WT16Eがオンになると、書込み要求に対応する書
込みが終了した後、全ビットがBLCK3の値を持つ16ビッ
トが直列−並列変換用レジスタ61に並列入力され、ラン
長カウンタ53が示すラン長は16だけ減らされ、ライン長
カウンタ24も16だけ減らされ、次いで信号iNH3が再びオ
ンされる。 〔発明の効果〕 以上の説明から明らかなように、本発明は特に全体的
にラン長の大きいパターン処理に有効であり、本発明に
よれば従来方式に比べて数倍の速さで圧縮および伸長を
実現することが出来る。
【図面の簡単な説明】
第1図は本発明の概要を示す図、第2図は本発明による
データ圧縮伸長装置の実施例の概要を示す図、第3図は
MH圧縮/伸長論理部の1実施例構成を示す図、第4図は
圧縮タイミングを示す図、第5図は伸長タイミングを示
す図、第6図は従来のMH符号化方式によるイメージ・デ
ータの圧縮方式の概要を示す図、第7図は従来のMHコー
ドの伸長方式を示す図である。 11……ソース・データ・バッファ、12……宛先データ・
バッファ、13……ソース・アドレス・カウンタ、14……
宛先アドレス・カウンタ、15と16……セレクタ、17と18
……ラッチ、19……シフト論理回路、20……MH圧縮/伸
長論理部、21……ソース長カウンタ、22……宛先長カウ
ンタ、23……ライン長レジスタ、24……ライン長カウン
タ、25……コマンド・レジスタ、26……コントロール・
レジスタ、27……シーケンサ部、28……並列−直列変換
用シフトレジスタ、29……MHコード発生/検出部、30…
…直列−並列変換用シフトレジスタ、31〜35……3ステ
ート・ゲート、41……圧縮16ビット処理回路、42……16
進カウンタ、43……フリップ・フロップ、44……並列−
直列変換用シフトレジスタ、45……フリップ・フロッ
プ、46……EOR回路、47……フリップ・フロップ、48…
…2560検出回路、49……フリップ・フロップ、50……フ
ロップ・フロップ、51……データ伸長ROM、52……フリ
ップ・フロップ、53……ラン長カウンタ、54……フリッ
プ・フロップ、55……フリップ・フロップ、56……デー
タ圧縮ROM、57……フリップ・フロップ、58……伸長16
ビット処理回路、59……フリップ・フロップ、60……セ
レクタ、61……直列−並列変換用シフトレジスタ、62…
…16進カウンタ、63……フリップ・フロップ、64……RA
M優先順位決定回路。
データ圧縮伸長装置の実施例の概要を示す図、第3図は
MH圧縮/伸長論理部の1実施例構成を示す図、第4図は
圧縮タイミングを示す図、第5図は伸長タイミングを示
す図、第6図は従来のMH符号化方式によるイメージ・デ
ータの圧縮方式の概要を示す図、第7図は従来のMHコー
ドの伸長方式を示す図である。 11……ソース・データ・バッファ、12……宛先データ・
バッファ、13……ソース・アドレス・カウンタ、14……
宛先アドレス・カウンタ、15と16……セレクタ、17と18
……ラッチ、19……シフト論理回路、20……MH圧縮/伸
長論理部、21……ソース長カウンタ、22……宛先長カウ
ンタ、23……ライン長レジスタ、24……ライン長カウン
タ、25……コマンド・レジスタ、26……コントロール・
レジスタ、27……シーケンサ部、28……並列−直列変換
用シフトレジスタ、29……MHコード発生/検出部、30…
…直列−並列変換用シフトレジスタ、31〜35……3ステ
ート・ゲート、41……圧縮16ビット処理回路、42……16
進カウンタ、43……フリップ・フロップ、44……並列−
直列変換用シフトレジスタ、45……フリップ・フロッ
プ、46……EOR回路、47……フリップ・フロップ、48…
…2560検出回路、49……フリップ・フロップ、50……フ
ロップ・フロップ、51……データ伸長ROM、52……フリ
ップ・フロップ、53……ラン長カウンタ、54……フリッ
プ・フロップ、55……フリップ・フロップ、56……デー
タ圧縮ROM、57……フリップ・フロップ、58……伸長16
ビット処理回路、59……フリップ・フロップ、60……セ
レクタ、61……直列−並列変換用シフトレジスタ、62…
…16進カウンタ、63……フリップ・フロップ、64……RA
M優先順位決定回路。
─────────────────────────────────────────────────────
フロントページの続き
(56)参考文献 特開 昭57−197961(JP,A)
特開 昭59−126368(JP,A)
特開 昭59−58971(JP,A)
特開 昭56−10774(JP,A)
特開 昭58−121867(JP,A)
特開 昭55−136753(JP,A)
特開 昭58−121866(JP,A)
実開 昭57−188464(JP,U)
Claims (1)
- (57)【特許請求の範囲】 1.イメージ・データをモディファイド・ハフマン符号
に圧縮する圧縮処理を行うと共に、モディファイド・ハ
フマン符号をイメージ・データに伸長する伸長処理を行
うデータ圧縮伸長装置であって、 圧縮処理時および伸長処理時に動作し、メモリから読み
出されたNビット(Nは1より大)の並列データを直列
データに変換する並列−直列変換用シフトレジスタと、 圧縮処理時に動作し、並列−直列変換用シフトレジスタ
の出力が入力される圧縮時黒白フリップ・フロップと、 圧縮処理時に動作し、メモリから読み出されたNビット
の並列データの各ビット値が全て圧縮時黒白フリップ・
フロップの出力値と同じ場合には、圧縮時Nビット処理
要求を出力する圧縮時高速処理手段と、 圧縮処理時に動作し、圧縮時黒白フリップ・フロップの
入力と圧縮時黒白フリップ・フロップの出力が不一致か
否かを調べる一致/不一致検出回路と、 圧縮処理時および伸長処理時に動作し、圧縮処理時にお
いては黒ラン又は白ランの長さを計数し、伸長処理時に
おいてはモディファイド・ハフマン符号に対応する黒ラ
ン又は白ランの長さがロードされるラン長カウンタと、 圧縮処理時に動作し、一致/不一致回路が不一致を検出
した時に圧縮時黒白フリップ・フロップの出力値及びラ
ン長カウンタの値に基づいてモディファイド・ハフマン
符号を生成するモディファイド・ハフマン符号発生部
と、 伸長処理時に動作し、並列−直列変換用シフトレジスタ
の出力が入力され、モディファイド・ハフマン符号が検
出された時に当該モディファイド・ハフマン符号に対応
するラン長をラン長カウンタにロードするモディファイ
ド・ハフマン符号検出部と、 伸長処理時に動作し、ラン長カウンタのラン長が黒ラン
に関するものか白ランに関するものか示す伸長時黒白フ
リップ・フロップと、 圧縮処理時及び伸長処理時に動作し、圧縮処理時にはモ
ディファイド・ハフマン符号発生部から出力される直列
データが入力され、伸長処理時にはラン長カウンタで示
されるビット長を持つと共に各ビットが伸長時黒白フリ
ップ・フロップの示す値を持つビット列が入力される並
列入力可能な直列−並列変換用シフトレジスタと を具備し、 圧縮処理時において、圧縮時Nビット処理要求が出力さ
れた場合には、ラン長カウンタのラン長をNだけ増加さ
せると共にメモリに対してデータ読出し要求を送り、圧
縮時Nビット処理要求が出力されない場合には、メモリ
から読み出されたNビットの並列データを並列−直列変
換用シフトレジスタにロードしてシフト動作を行わせ、
シフト動作が行われる度にラン長カウンタのラン長を1
ずつ増加させる ことを特徴とするデータ圧縮伸長装置。 2.イメージ・データをモディファイド・ハフマン符号
に圧縮する圧縮処理を行うと共に、モディファイド・ハ
フマン符号をイメージ・データに伸長する伸長処理を行
うデータ圧縮伸長装置であって、 圧縮処理時および伸長処理時に動作し、メモリから読み
出されたNビット(Nは1よい大)の並列データを直列
データに変換する並列−直列変換用シフトレジスタと、 圧縮処理時に動作し、並列−直列変換用シフトレジスタ
の出力が入力される圧縮時黒白フリップ・フロップと、 圧縮処理時に動作し、メモリから読み出されたNビット
の並列データの各ビット値が全て圧縮時黒白フリップ・
フロップの出力値と同じ場合には、圧縮時Nビット処理
要求を出力する圧縮時高速処理手段と、 圧縮処理時に動作し、圧縮時黒白フリップ・フロップの
入力と圧縮時黒白フリップ・フロップの出力が不一致か
否かを調べる一致/不一致検出回路と、 圧縮処理時および伸長処理時に動作し、圧縮処理時にお
いては黒ラン又は白ランの長さを計数し、伸長処理時に
おいてはモディファイド・ハフマン符号に対応する黒ラ
ン又は白ランの長さがロードされるラン長カウンタと、 圧縮処理時に動作し、一致/不一致回路が不一致を検出
した時に圧縮時黒白フリップ・フロップの出力値及びラ
ン長カウンタの値に基づいてモディファイド・ハフマン
符号を生成するモディファイド・ハフマン符号発生部
と、 伸長処理時に動作し、並列−直列変換用シフトレジスタ
の出力が入力され、モディファイド・ハフマン符号が検
出された時に当該モディファイド・ハフマン符号に対応
するラン長をラン長カウンタにロードするモディファイ
ド・ハフマン符号検出部と、 伸長処理時に動作し、ラン長カウンタのラン長が黒ラン
に関するものか白ランに関するものか示す伸長時黒白フ
リップ・フロップと、 圧縮処理時及び伸長処理時に動作し、圧縮処理時にはモ
ディファイド・ハフマン符号発生部から出力される直列
データが入力され、伸長処理時にはラン長カウンタで示
されるビット長を持つと共に各ビットが伸長時黒白フリ
ップ・フロップの示す値を持つビット列が入力される並
列入力可能な直列−並列変換用シフトレジスタと、 伸長処理時に動作し、直列−並列変換用シフトレジスタ
のデータがメモリに書き込まれる時にラン長カウンタの
ラン長がN以上の場合には、伸長時Nビット処理要求を
出力する伸長時高速処理手段と を具備し、 圧縮処理時において、圧縮時Nビット処理要求が出力さ
れた場合には、ラン長カウンタのラン長をNだけ増加さ
せると共に上記メモリに対してデータ読出し要求を送
り、圧縮時Nビット処理要求が出力されない場合には、
メモリから読み出されたNビットの並列データを並列−
直列変換用シフトレジスタにロードしてシフト動作を行
わせ、シフト動作が行われる度にラン長カウンタのラン
長を1ずつ増加させ、 伸長処理時において、伸長時Nビット処理要求が出力さ
れた場合には、伸長時黒白フリップ・フロップの示す値
を持つNビットのデータを直列−並列変換用シフトレジ
スタに並列入力すると共にラン長カウンタの示すラン長
をNだけ減少させ、次いでメモリに対してデータ書込み
要求を送り、伸長時Nビット処理要求が出力されない場
合には、伸長時黒白フリップ・フロップの示す値を持つ
1ビットのデータをシフト・クロックに同期して直列−
並列変換用シフトレジスタに直列入力させ、1ビットの
データが入力される度にラン長カウンタのラン長を1ず
つ減少させる ことを特徴とするデータ圧縮伸長装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60093280A JP2787146B2 (ja) | 1985-04-30 | 1985-04-30 | データ圧縮伸長装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60093280A JP2787146B2 (ja) | 1985-04-30 | 1985-04-30 | データ圧縮伸長装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS61252766A JPS61252766A (ja) | 1986-11-10 |
JP2787146B2 true JP2787146B2 (ja) | 1998-08-13 |
Family
ID=14078018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP60093280A Expired - Lifetime JP2787146B2 (ja) | 1985-04-30 | 1985-04-30 | データ圧縮伸長装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2787146B2 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57197961A (en) * | 1981-03-11 | 1982-12-04 | Fujitsu Ltd | Conversion system for image data |
JPS58121867A (ja) * | 1982-01-14 | 1983-07-20 | Nec Corp | ランレングス復号化装置 |
JPS58121866A (ja) * | 1982-01-14 | 1983-07-20 | Nec Corp | ランレングス復号化装置 |
JPS59126368A (ja) * | 1983-01-10 | 1984-07-20 | Hitachi Ltd | 符号化復号化装置 |
-
1985
- 1985-04-30 JP JP60093280A patent/JP2787146B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPS61252766A (ja) | 1986-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2986076B2 (ja) | データを圧縮及び圧縮解除するための方法及び装置 | |
JP2915568B2 (ja) | テープドライブシステムのための適応データ圧縮装置 | |
JPH0799812B2 (ja) | 信号符号化装置および信号復号化装置、並びに信号符号化復号化装置 | |
CZ289508B6 (cs) | Způsob a zařízení pro vytváření kódovaného obrazového signálu a zařízení pro zobrazování obrazového signálu | |
US5309156A (en) | Variable-length code decoding device | |
JPH0713898A (ja) | 半導体集積回路装置 | |
JP2787146B2 (ja) | データ圧縮伸長装置 | |
US4789852A (en) | Method and apparatus for converting data in a binary format | |
US4551706A (en) | Apparatus for decoding run-length encoded data | |
JP3195427B2 (ja) | データ変換/逆変換装置 | |
JPH04298164A (ja) | ファクシミリ装置用データ圧縮/解凍回路 | |
EP0499225B1 (en) | Variable-length code decoding device | |
JP2536490B2 (ja) | ランレングス符号化装置 | |
JPS60253372A (ja) | 画信号符号化方式 | |
JPH0569342B2 (ja) | ||
JP2548272B2 (ja) | 可変長符号化コード復号装置 | |
JP3054787B2 (ja) | 可変長符号の復号装置 | |
JPS6148305B2 (ja) | ||
JPH07236065A (ja) | 二値画像圧縮装置 | |
JP2590840B2 (ja) | ランレングス符号化装置 | |
JP3028122U (ja) | ランレングス符号の並列処理装置 | |
JP3053191B2 (ja) | 画像圧縮符号化装置 | |
JPH01101739A (ja) | データ圧縮方法及びその復元方法 | |
JPS59156073A (ja) | デ−タ復号装置 | |
JPH0260373A (ja) | ファクシミリ装置の符号化回路 |