JPH0537794A - 符号化および復号化方法 - Google Patents
符号化および復号化方法Info
- Publication number
- JPH0537794A JPH0537794A JP3192919A JP19291991A JPH0537794A JP H0537794 A JPH0537794 A JP H0537794A JP 3192919 A JP3192919 A JP 3192919A JP 19291991 A JP19291991 A JP 19291991A JP H0537794 A JPH0537794 A JP H0537794A
- Authority
- JP
- Japan
- Prior art keywords
- code
- run length
- line
- integrated
- change point
- 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.)
- Granted
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
- H04N1/411—Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
- H04N1/413—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
- H04N1/419—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information in which encoding of the length of a succession of picture-elements of the same value along a scanning line is the only encoding step
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (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)
- Image Processing (AREA)
Abstract
換を中間コードとしての積算ランレングスを用いて行
う。また原稿サイズの縮小、拡大を積算ランレングスに
倍率を乗じて行う。
Description
符号化および復号化方法に関する。
で読み取られた生データ(NCデータ,Non −Coded Fo
rmat)を圧縮する場合、および受信したMH(Modified
Huffman Format )データあるいはMR(Modified Rea
d Format)データを伸張する場合には、NCデータを一
括してMHデータあるいはMRデータに変換、または、
MHデータあるいはMRデータからNCデータに復元す
るようにしていた。このような符号化・復号化は、専用
の符号・復号化LSIを用いて行ったり、またはファク
シミリ装置のCPUを用いて汎用の算術演算/論理演算
により行われていた。
取られた原稿の画情報は、画素が1ビットに対応するビ
ット列として1ライン単位でメモリ上に書き込まれる。
これらの画情報の解像度変換(例えば、B4サイズの原
稿をA4サイズに縮小)を行う場合には、1ライン毎の
ビット列から予め定められた間隔(6,7,7,6ビッ
ト毎)で間引く(縮小の場合)などの処理を行ってい
た。
SIを用いる場合、そのLSI自身が必要になるのみな
らず、その外付けLSIを制御しなければならず、デー
タの受け渡しに際して、割り込み/DMA(Direct Mem
ory Access)/ポーリングなどの手段を必要とし、ファ
クシミリ装置のCPUの負担が増大していた。また汎用
の算術演算/論理演算による場合には、ファクシミリ装
置のCPUの負担が軽いものしかデータの圧縮/伸張を
行うことができなかった。
ビット列に対する間引き処理等の操作が発生し、解像度
変換に係わる処理が煩雑となっていた。ファクシミリ装
置が受信電文を記憶することのできるメモリ機の場合、
メモリに蓄えられているMRコードを再度NCデータに
戻してこの解像度変換処理を行う必要があった。
もので、NCデータ、MHデータ、MRデータの相互変
換を中間コードとしての積算ランレングスを用いて行
い、専用の符号・復号化ハードウェアを用いない符号化
および復号化方法を提供することを目的とする。
め、本発明は、1ラインの生データを1ラインの始から
白黒の変化点ごとに変化点の直前の画素の色と変化点直
前の画素までの積算値で定義する積算ランレングスを求
め、この積算ランレングスよりMHコードに変換するも
のである。
から白黒の変化点ごとに変化点の直前の画素の色と変化
点直前までの画素の積算値で定義する積算ランレングス
を求め、この積算ランレングスよりMRコードに変換す
ることを特徴とするものである。
1ラインの始から白黒の変化点ごとに変化点直前の画素
の色と変化点直前の画素までの積算値で定義する積算ラ
ンレングスに変換し、この積算ランレングスを生データ
に変換するものである。
1ラインの始から白黒の変化点ごとに変化点直前の画素
の色と変化点直前の画素までの積算値で定義する積算ラ
ンレングスに変換し、この積算ランレングスを生データ
に変換するものである。
1ラインの始から白黒の変化点ごとに変化点直前の画素
の色と変化点直前の画素までの積算値で定義する積算ラ
ンレングスに変換し、この積算ランレングスをMRコー
ドに変換するものである。
1ラインの始から白黒の変化点ごとに変化点直前の画素
の色と変化点直前の画素までの積算値で定義する積算ラ
ンレングスに変換し、この積算ランレングスをMHコー
ドに変換するものである。
拡大・縮小を行うものである。
後、前記積算ランレングスに変換するものである。
後、前記積算ランレングスに変換するものである。
グスに変換する際、1ラインの画素数を超えた場合は、
そのラインはエラーとし、次のラインは前のデータを3
画素戻した画素を次のラインのスタート画素として変換
を行うものである。
グスに変換する際、1ラインの画素数を超えた場合は、
そのラインはエラーとし、次のラインは前のデータを3
画素戻した画素を次のラインのスタート画素として変換
を行うものである。
に変換する場合、変化点モードとして水平モードが選択
された後、a0 となる積算ランレングスの値に対し参照
ラインの変化点b1 を前の変化点b1 の次の積算ランレ
ングスの位置より順次所定数の積算ランレングスの位置
をサーチし、見つからない時はバイナリーサーチにより
検出するものである。
またはMRコードに変換するに際し、または、MHコー
ドまたはMRコードを前記積算ランレングスに変換する
に際し、または、前記積算ランレングスに倍数を乗じ拡
大・縮小するに際し、または、MHコードまたはMRコ
ードよりEOLを検出後、前記積算ランレングスに変換
するに際し、所定ステップで割り込みに対応できるよう
にしたものである。
変換を中間コードとして積算ランレングスを用いて行
う。このためMHコードより積算ランレングスへの変
換、積算ランレングスよりMHコードへの変換、MRコ
ードより積算ランレングスへの変換、積算ランレングス
よりMRコードへの変換、NCコードより積算ランレン
グスへの変換、積算ランレングスよりNCコードへの変
換を行う6種類の専用命令を作成することにより、符号
化・復号化処理をソフトウエアで実行できる。この専用
命令をマイクロプログラムで実行することにより符号・
復号化の処理を高速に実施でき、専用の符号・復号化L
SIを省略することが可能となる。
とにより、画像の縮小や拡大が容易にできる。
を検出後、積算ランレングスに変換することにより、E
OLの検出を効果的に行うことができる。
レングスに変換する際、1ラインの画素数を超えた場
合、そのラインはエラーとし、次のラインは前のデータ
を3画素戻した画素を次のラインのスタート画素として
変換を行うと、エラーが次のラインまで波及しない。こ
れはCCITTの勧告T.4のターミネイティング符号
表によると×××000の形式をしており下3桁を見る
と0が3桁以上続く、白ランレングス又は黒ランレング
スはないので、3画素分戻すことにより、次のラインの
EOLから正しい変換が行えるようになる。
換する場合、変化点モードとして水平モードが選択され
た後、a0 となる積算ランレングスの値に対し参照ライ
ンの変化点b1 を前の変化点b1 の次の積算ランレング
スの位置より順次所定数の積算ランレングスの位置をサ
ーチし、見つからないときはバイナリーサーチを行うこ
とにより、多くの場合、最初の順次に行う所定数の積算
ランレングスの位置より検出でき、これで見つからない
場合、バイナリーサーチを行うことにより、効果的なサ
ーチを行うことができる。
Rコード、NCコードとの変換、積算ランレングスに倍
数を乗ずる処理、EOLの検出処理の所定ステップで割
り込みに対応できるようにすることにより、割り込みに
迅速に対応できる。
する。図1は符号・復号化命令の関係を示す図である。
NCはNon −Formatでスキャナより読み込まれた画像デ
ータ、いわゆる生データを表す。RLは積算ランレング
スを示し、Run −Length Format である。MH,MRは
それぞれCCITTのT.4勧告のMHコード,MRコ
ードである。NC2RLはNCコードよりRLへの変換
を示し、MH2RLも同様にMHコードよりRLへの変
換を示す。RESCNVはRLに倍率を乗じて解像度を
変換することを示し、B4よりA4への矢印はB4サイ
ズの原稿よりA4サイズの原稿への変換を示す。またメ
モリ付きファクシミリ装置の場合、メモリにはMRコー
ドで格納されることを示す。このように中間コードRL
を介してNCコード,MHコード,MRコード間の変換
が行われる。
Cより生成する場合の説明図である。生データは白画素
列、黒画素列が交互に並んだデータである。RLは生デ
ータの1ラインの最初に白画素がないときはこれを0と
して必ず最初は白画素より始め、生データの3黒画素を
黒3とし、次の2白画素は積算して白5と表す。1ライ
ンの最後は終了コードとして8000を記入する。
各CODEC(符号・復号化)命令のパラメータテーブ
ルはマイクロRAMにセットされ、各CODEC命令実
行時に参照されるCODEC用変換テーブルはユーザR
OMに配置される。ランレングステーブルはユーザRA
Mに配置される。これにより、1ライン分の生データを
読み込んでNC2RLを行い、RL2MHまたはRL2
MRを行いMH/MRデータバッファに格納する操作を
繰り返して符号化を行う。
す。ユーザRAMのMH/MRデータバッファに格納さ
れたデータを1ライン分の生データに変換する操作を繰
り返して復号化を行う。
作成する。ランレングステーブルとは図2で示すよう
に、積算ランレングスの集まりである。 ステップ(2)でB4サイズからA4サイズへ変換した
ランレングステーブルを作成し、 ステップ(3)でKパラメータによりMH/MRに分岐
する。KパラメータはT.4勧告の値である。 ステップ(4)でEOL+タグビットをアプリケーショ
ンプログラムでセットし、 ステップ(5)でランレングステーブルからMHコード
を作成し、又は、 ステップ(6)でランレングステーブルからMRコード
を作成し、 ステップ(7)で0−Fi11をアプリケーションプログ
ラムで付加する。 ステップ(8)でRTC(制御復帰符号)をアプリケー
ションプログラムで付加する。
チする。 ステップ(2)でタグビットをチェックする。タグビッ
トが1のときは次のラインはMHコード、0のときはM
Rコードである。 ステップ(3)でMHコードをランレングステーブルに
変換する。 ステップ(4)でMRコードをランレングステーブルに
変換する。 ステップ(5)でランレングステーブルを生データに変
換する。
9は原稿送信時のフロー図である。図7〜図9は図5の
詳細説明図である。
指示されると、相手機に発呼し、制御信号の送信を行う
(S1,S2,S3)。
示す。(a)はスキャナーによって読み込まれた生デー
タが各アドレスNC ADRに1バイトで格納される状
態を表し、TOTALは1ラインのビット数を示す。
(b)は積算ランレングスRLが各アドレスRL AD
Rに2バイトで格納されている状態を示す。(c)はR
Lを作成するためのワークエリアCHKBITで2バイ
トよりなり、図15に示すRLの格納形式と同じである。
トし(S4a)、積算ランレングスの先頭アドレスをセ
ットし(S4b)、1ラインのビット数をセットし(S
4c)、CHKBITを00にセット(S4d)する。
RLの先頭は必ず白ビットとするので図10(c)のCO
LORは0である。次にNC2RLの変換を行うが(S
5)、詳細は後述する。
ェックし(S6,S7)、1次元(MH)である場合に
は、符号化ラインの積算ランレングスの先頭アドレスを
セットし(S8a)、又RL2MHにより変換されて生
成されるMHコードの符号化データの先頭アドレスをセ
ットし(S8b)、RL2MHの変換のワークエリアC
HKBITEをS4dと同様に00にセットする。次に
EOLとタグビット1を付加し(S9)、後述するRL
2MH変換をする(S10) 。
7)、参照ラインの積算ランレングスの先頭アドレスを
セットし(S11a)、符号化ラインの積算ランレングスの
先頭アドレスをセット(S11b)する。また、MRコー
ドを生成する格納エリアの符号化データの先頭アドレス
をセットし(S11c)、CHKBITEをS4dと同様
に00にセットする(S11d)。また、MRコードに符
号化するときのa0 ,a2 ,b0 のワークエリアA0,
A2,B0をそれぞれ00にセットする(S11e)。次
にEOLとタグビット0を付加し(S12) 、後述するR
L2MR変換を行い(S13) 、0フィル(Fill) の付加
を行う(S14) 。
づつ符号化を行い1頁が終了すると(S15) 、制御復帰
符号RTCを付加し(S16) 、制御信号送受信を行い
(S17) 、回線を断とする(S18) 。
説明する。図11〜図13は図6の詳細を示す。図11におい
て、着信があり (S20) 、回線が接続されると(S21)
、制御信号の送・受信が行われる(S22) 。受信した
データの先頭アドレスをセットし (S23a)、1ライン
の最初のデータであるか否かを示す1バイトワークエリ
アfirst を00にセットする(S23b)。次にEOLを
サーチする後述するEOLSRCを行う(S24) 。
次元(MR)とし(S25) 、MR2RL変換を行うた
め、参照ラインの積算ランレングスの先頭アドレスをセ
ットし(S26a)、復号化ラインの積算ランレングスの
先頭アドレスをセットし(S26b)、復号化するライン
の受信データの先頭アドレスをセットする(S26c)。
各ワークエリアfirst ,CHKBITD,A0,B0を
00にセットし(S26d)、後述するMR2RL変換を
行う。またタグビットが1であれば1次元(MH)とし
(S25) 、復号化ラインの積算ランレングスの先頭アド
レスをセットし(S28a)、復号化するラインの受信デ
ータ先頭アドレスをセットし(S28b)、ワークエリア
first ,CHKBITDに00を代入(S28c)して初
期化し、後述するMH2RL変換をする(S29) 。
生したかチェックし(S30)、発生していればエラー復
旧処理を行う(S31)。
を示す図である。1ラインが1728ビットよりなる場合、
最後のデータ0111(T.4ターミネイティング符号
で白2)が0011に化けた場合、ラインの終わりにつ
くEOLの先頭000と合わさると、0011000は
ターミネイティング符号で白28を表す。この場合、白2
であれば1728ビットになるが白28となると1754ビットと
なり1ラインのビット数を超える。そこでエラーと判断
される。この場合、次のラインのEOLの先頭3つの0
が取られた後から、つまり000000001から変換
作業を行うと、EOLが検出できず、このラインもエラ
ーが波及してしまう。そこでこのようなときは3ビット
戻して、つまりEOLの先頭から次のラインの処理をす
ればよい。この3ビットというのは、ターミネイティン
グ表をみると後半に0が続くコードは、000と3つ続
く場合が最も多く0が続く場合なので、これに基づき決
めたものである。
の先頭に2つ目のEOLが検知されたか判断し(S32)
、検知されれば連続ページがあるか判断し、あればS2
2に戻り(S33) 、なければ終了する。先頭で2つ目の
EOLが検出されなければ次の処理に移行する。
Cの準備として、積算ランレングスの先頭アドレスをセ
ットし(S34a)、生データの先頭アドレスをセットし
(S34b)、ワークエリアCHKBITDを00とし
(S34c)、RL2NC変換を行い(S35)、終了後次
のラインの処理に移る。
した変換処理の詳細を説明する。まず、生データNCを
積算ランレングスRLに変換するNC2RLについて説
明する。図15はランレングステーブルコードを示す。
(a)で示すように積算ランレングスコードRLは2バ
イトで構成され、Lengthは図2で説明したように積算の
形式を採用している。MSBは(b)で示す終了コード
以外は0、LSBは白画素が0、黒画素が1であり、L
SBの左隣のビットは常に0とする。中間の13ビットで
Lengthを表し、0〜8191の範囲を表示できる。(c)は
具体例を示し、黒が864 ビット次に白が864 ビットで1
ラインを構成している生データのランレングステーブル
を示す。
分の生データを1Byteづつリードし、変化点を検出しな
がら、1ライン分のランレングステーブル(RL)を生
成する。
1ライン分の終了コードとして8000を格納する。
むと終了する。割り込みは、生データ1Byte読み込む毎
にサンプルする。
す。図16において生データの積算ランレングスへの変換
処理が指示されると、本処理が終了したときに次のプロ
グラムに移るようプログラムカウンタをインクリメント
し(S40)、スキャナーで読み取られ図10(a)に示す
ようにバッファメモリに記憶されている先頭NC AD
Rから1バイトの生データをリードし(S41) 、次のリ
ードに備えNC ADRをインクリメントする(S4
2)。
するテーブルを示す。(a)はリードされる生データ8
ビットが表す256 の状態をアドレス付けしたもので、
(b)はこのアドレスに対応する白ビット列、黒ビット
列の組み合わせを示す。(b)において右側は(a)に
示す8ビットの白ビット列、黒ビット列の構成を示し、
中央欄の数字は白ビット列、黒ビット列がいくつ含まれ
ているかを示す。例えば、アドレス1の場合、8ビット
のうち黒ビットが1個の黒ビット列が1個、白ビットが
7個の白ビット列1個からなり、合計2個のビット列か
ら構成されていることを示す。この白ビット列、黒ビッ
ト列を仮ランレングスと称する。生データ1バイトに対
応する仮ランレングスのコード列をこの表により得る
(S43)。
ンレングスコード列の先頭仮ランレングスコードをリー
ドし(S44)、図7のステップS4dのCHKBITに
格納されているデータと同色かチェックする。これは同
色であれば前の生データの8ビット目を構成要素として
いる仮ランレングスと先頭の仮ランレングスは同じもの
の続きであることを意味し、色が異なれば、前の生デー
タの8ビット目が積算ランレングスRLの終わりである
ことを示す。故に色が異なった時は既に格納されている
CHKBITのデータを積算ランレングスとしてRL
ADRに書き込み(S46) 、次の積算ランレングスを書
き込めるようRL ADRをインクリメントしておく
(S47)。
るデータと図19表より作成した仮ランレングスコードは
続いたものなのでこの仮ランレングスコードを加算する
(S48)。
タaと仮ランレングスコードbとの加算、減算を示す。
加算した場合は、加算値はn1 +n2 になり0ビット目
に示される色はb、つまり仮ランレングスコードの色と
なる。また減算した場合減算値はn1 −n2 になり、色
はaつまりCHKBITに格納されているデータの色と
なる。仮ランレングスコード列が図19のアドレス85のよ
うに多くある場合は、仮ランレングスコード列1つごと
に積算ランレングスRLが作成されてゆく。このため、
仮ランレングスコード列の最後のランレングスコードを
リードしたかチェックし(S49)、まだ最後に達しなけ
ればCHKBITに格納されているS48で得られた積算
ランレングスをRL ADRに書き込み(S50)、次の
RL ADRを用意し(S51)、次の仮ランレングスコ
ード列を読み出し(S52)、S48でCHKBITのデー
タと加算して積算ランレングスRLを作成してゆく。
納したCHKBITの値が図7のS4cで設定した1ラ
インのビット数に達したかチェックし(S53)、達して
いればこの1ライン最後のRLが格納されたCHKBI
Tの内容をRL ADRに書き込み(S54)、次のRL
の書き込みに備えRL ADRをインクリメント(S5
5)、終了コードを書き込む(S56)。
れば、次の生データ1バイトを読みに行く前に、割り込
みがかかってないかチェックし(S57)、割り込みがか
かっていれば、まだ1ラインの処理が終わっていないた
め次のプログラムに進めないので、図16のS40でインク
リメントしたプログラムカウンタを元に戻す(S58)。
て説明する。RL2MH変換は、1ライン分の積算ラン
レングスコードRLを変換テーブルを参照してMHコー
ドに変換する。1ラインの総ビット数分のRLを読み込
むと終了する。割り込みは、1変化点の積算ランレング
スを処理する毎にサンプルする。
フロー図を示す。積算ランレングスRLをMHコードに
変換する指示がなされると、次のプログラムが実施でき
るようプログラムカウンタをインクリメントし(S6
0)、図8のS8aでセットしたRL ADRから積算ラ
ンレングスコードRLをリードしてワークエリアNOW
RLにセットし(S61)、次のアドレスRL ADR
にインクリメントしておく(S62)。図19で説明した仮
ランレングスコード、つまり図2に示す生データの黒
3,白2などをカレントRLコードと称しCUR RL
で表す。このCUR RLはあるRLとその1つ前のR
Lの差として求まる。つまりNOW RLより1つ前の
RLが入っている図8のS8cで定義したCHKBIT
Eを差し引いた値として求まる(S63)。そしてCHK
BITEをNOW RLで更新しておく(S64)。
あるか判断し(S65)、白のときは、T.4のターミネ
イティング符号のみで表せるか(64未満) 、それ以上で
メークアップ符号も必要となるか判断する(S66)。64
以上の場合、メークアップ符号を求めるため、64の何倍
となっているかをiの値としてカウントする(S67〜S
70)。
は、CUR RLに64を加え、ターミネイティングテー
ブルが読めるようにする(S71)。
メイクアップテーブルを示す。MHコードはLSBfirs
t になっているのでT.4に示す表の値と逆順の数値と
なっている。有効ビット数はMHコードを16ビットで表
した場合、有効なビット数を示す。(b)に示す白メイ
クアップテーブルから図22のS70のi番目のMHコード
をリードして、図8のS8bでセットしたMH ADR
の位置に書き込む。本実施例はMHCODを8ビット単
位でアドレス付けして取り扱うことにしたので、8ビッ
トごとにMHCODを区切る。このため、MHコードが
8ビット以上となったかチェックし(S73)、8以上の
ときは8ビット分のMHCODをMH ADRに書き込み
(S74)、次のアドレスにインクリメントする(S7
5)。
た場合、または、図23の処理が終了した場合CUR R
Lから図29の(a)に示す白ターミネイティングテーブ
ルよりMHコードを読みMHCODにセットする(S7
6)。MHコードが8ビット以上になっていれば(S7
7)、8ビット分をMH ADRに書き込み(S78)、
MH ADRをインクリメントする(S79)。
RLが黒だった場合で、内容は図22〜図24とほぼ同じ
であり、図30は黒ターミネイティングテーブル(a)、
黒ターミネイティングテーブル(b)を示す。
ラインのビット数に達したか否かチェックし(S80)、
達した場合は、残っているMHCODをMH ADRに
書き込んで(S81)、1ラインの処理を終了する。また
S80で1ラインに達していないときは、割り込みがある
かチェックし(S82)、あればプログラムカウンタを戻
す(S83)。
する。RL2MR変換は、1ライン分の符号化ライン
(RL)と参照ラインの積算ランレングスコード(R
L)を比較して、MRコードに変換する。1ライン総ビ
ット数分のランレングスコードを読み込むと終了する。
割り込みは、各モード(垂直モード,水平モード,パス
モード)単位の符号化処理終了ごとにサンプルする。
ある。図31において、RL2MR変換指示が出ると、終
了後、次のプログラムに進めるようにプログラムカウン
タをインクリメントし(S90)、MRコードへの符号化
を行うに必要なa0 ,a1 ,b1 ,b2 をセットする
(S91〜S94)。なお、これらのセットの詳細は後述す
る。
ためa1 >b2 をチェックし(S95) 、パスモードであ
ればパスモード符号化をしMRCODにセットし(S9
6)、次にa0 をb2 の直下に置く(S97)。MRコー
ドが8ビット以上となれば(S98)、MRCODを図8
のS11cでセットしたMR ADRに書き込み(S99)、
MR ADRをインクリメントする(S100 )。
ない場合は、垂直モードか否かチェックし(S101 )、
垂直モードであれば垂直モードにより符号化してMRC
ODにセットし(S102 )、この後a0 をa1 の上に置
く(S103 )。また、垂直モードでなければ、水平モー
ドなのでa2 をセットし(S104 )、水平モードで符号
化してMRCODにセットする(S105 )。この後a2
が新しい起点画素a0となるため、a0 をa2 の上に置
く(S106 )。MRコードが8ビット以上であれば(S
107 ) 、8ビット分をMR ADRに書き込み(S108
) 、MR ADRをインクリメントする(S109 )。
1ラインのビット数に達したかチェックし(S110 ) 、
達したら残りのMRCODをMR ADRに書き込み
(S111 )、終了する。また、1ラインのビット数に達
しない時は、割り込みがかかっているか否かチェックし
(S112 )、かかっていれば、図31のS90でインクリメ
ントしたプログラムカウンタを元に戻す(S113 ) 。
す。まず、図8のS11bでセットした符号化ラインのR
L2 ADRからRLコードを読み出し(S114 ) 、この
RLコードをa0 とし(S115 ) 、RL2 ADRをイ
ンクリメントする(S116) 。
ラインのRL2 ADRからRLコードを読み出し(S
117 ) 、これをa1 とし(S118 ) 、RL2 ADRを
インクリメントする(S119 ) 。
である。なおb1 が決まればb2 は図35に示すa0 とa
1 の関係と同様にして容易にセットできる。
チェックし(S120 ) 、水平モードでなければ、図8の
S11aでセットした参照ラインのアドレスRL1 AD
RからRLコードを読み出し(S121 ) 、RL1 AD
Rをインクリメントし(S122 ) 、この読み出したRL
コードがa0 より大きく(S123 )、かつa0 と異なる
色であれば(S124 )、このRLコードをb1 とする
(S125 ) 。
モードである場合は、前回の参照ラインのRLコードか
ら順次4つのRLコードまでを取り出し、これがb1 に
なるか調べる。この4回のトライでb1 を検索できる可
能性は大きいが、見つからない時はバイナリサーチを行
う。
インのRL1 ADRからRLコードをリードし(S12
7 ) 、このRLコードがa0 より大きいかチェックし
(S128 )、小さい場合は、次のRLコードを読み出し
すためRL1 ADRをインクリメントし(S129 ) 、
iを1回減少させる(S130 , S131 )。4回繰り返し
てもa0 <RLコードが成立しなければバイナリサーチ
を行うためiを8にセットする(S132 ) 。8とする理
由は、1ラインのビット数を2048=8×28 とすると8
回バイナリサーチすることにより最大8個の変化点に対
象を絞り込むことができ、この8個の変化点を順次チェ
ックすれば必ずb1 が検出できるからである。
DRと積算ランレングステーブル(図10(b)に示すテ
ーブル)の最終アドレスRL1 ENDとの間の半分の
位置のアドレスをとりこれをRL1B ADRとおく
(S133 ) 。次にこのアドレスRL1B ADRのRL
コードを読み出し(S134 ) 、このRLコードがa0 よ
り大きいか調べ(S135 ) 、大きければ、RL1B A
DRとRL1 ADRの差は8以内か調べ(S136 ) 、
8より大きければ、iを1つ減じ(S137 ) 、S135 ,
S136 , S138 から出られるようになるまでバイナリサ
ーチを繰り返す(S134 〜S139 ) 。
ドがa0 より大きくない場合を示し、RL1 ENDと
RL1B ADRとの差が8より大きい場合は、バイナリ
サーチの回数iを減じ(S141 )、S140 で出られるか
iが0となるまでバイナリサーチを続ける(S140 〜S
144 )。
決定するフローである。S145 は対象範囲が8個の変化
点以内に絞られた場合でRL1B ADRを参照ライン
アドレスRL1 ADRにおきかえ、このアドレスのR
Lコードを読み出し(S146)、a0 <RLコードが成
立しなければ(S147 ) 、RL1 ADRをインクリメ
ントし(S148 ) 、S147 がYESとなるまで繰り返
す。a0 <RLコードが成立した時(S128 , S147 )
、a0 とRLコードが異なる色か調べ(S149)、同じ
であればS148 へ行き、異なればb1 が確定するのでR
Lコードをb1 とし(S150 ) 、RL1 ADRをイン
クリメントする(S151 ) 。
細の説明を行う。図11のS24のEOLSRCはEOL符
号を検索する操作である。
縮データ)からEOLを捜し、タグビットを通知する。
EOLを検出すると終了する。割り込みは、データバッ
ファから8ビットリードする毎にサンプルする。
受信された符号化データにおけるEOL信号の検知が指
示されると、プログラムカウンタをインクリメントし
(S160 ) 、図11のS23bでセットした1 ラインの先頭
ビットであるか否かを示すfirst が0か否かチェックし
(S161 ) 、0であれば先頭ビットであるので、受信デ
ータの0ビットをカウントするカウンタBITCNTを
0に設定し、EOLの0を11ビット検出したかを示すフ
ラグW11DETをoff にし(S162 ) 、first を1に
セットする(S163 ) 。次に図11のS23aでセットした
DT ADRから受信データ1バイトをリードし(S16
4 )、DT ADRをインクリメントする(S165 ) 。
を1ビットづつ右シフトして(S166 ) 、ビットを1つ
づつ取り出し0か否か調べ(S167 ) 、0であればフラ
グW11DETが11ビットの0を検出したかをチェッ
クし(S168 ) 、検出していなければBITCNTカウ
ンタを1つインクリメントし(S169 ) 、BITCNT
=11であるかを調べ(S170 ) 、カウンタが11となっ
たらフラグW11DETをonする(S171 ) 。そして受
信データ1バイト分シフトしたか調べ(S172) 、達し
ていなければS166 へ戻る(S172 ) 。
11DETがonであるか調べ(S173 )、onしてなけれ
ば、EOLでないとしてカウンタBITCNTを0にす
る(S174 )。S172 で8回シフトしたなら割り込みが
あるか調べ(S175 ) 、あれば、プログラムカウンタを
デクリメントする(S176 ) 。
がonしEOLを検出した後のフローで、次にMRモード
であるかMHモードか調べ(S177 ) 、MRモードであ
れば8回シフトしたか確認し(S178 ) 、シフトしてい
れば、次の受信データをDT ADRから1バイトリード
し(S179 ) 、DT ADRをインクリメントし(S18
0 ) 、次にデータを1ビットシフトする(S181 ) 。こ
れはEOLの後に続く1ビットによって、このビットが
1であれば1次元符号(MH)、0であれば2次元符号
(MR)を判断する操作である。S182 でシフトして取
り出したビットが0であればタグビットは2次元を示し
(S183 ) 、1であればタグビットは1次元を示す(S
184 ) 。
明する。MH2RL変換は受信したMHコードを変換テ
ーブルを参照して1ライン分の積算ランレングスコード
RLに変換する。1ライン総ビット数分のMHコードを
読み込むと終了する。割り込みは1変化点の積算ランレ
ングスを出力するたびにサンプルする。
ある。図44において、MHコードをRLに変換する命令
が出されるとこのプログラム終了後、次のプログラムが
実行できるようプログラムカウンタをインクリメントし
(S190 ) 、図12のS28bでセットしたMH ADRか
ら1バイトリードし(S191 ) 、このデータが白か黒か
判定する(S192 ) 。
グスコード(仮RLコード)へ変換するテーブルの1例
である。MHコードは最大12ビットで表現することがで
きる。(a)において8ビット以内で表されるMHコー
ドには、それに対応する仮RLコードが記載される。有
効ビット数は8ビットのうちMHコードとしての有効な
ビット数を表す。有効ビット数00のものは(b)のテ
ーブルに接続している。(b)のテーブルはMHコード
が4ビットであり、(b)に示すテーブルは全部で10種
類ある。この(a),(b)のテーブルにより白MHコ
ードは仮RLコードに変換可能である。なお、MHコー
ドはLBS First で記載してある。なお、有効ビット
数80は未定義符号である。
ドへ変換するテーブルである。黒MHコードは最大13ビ
ットで表現することができる。テーブル(a),(b)
共MHコードは8ビットである。(a)で有効ビット数
00には(b)のテーブルが接続する。(b)で有効ビ
ット数80は未定義符号である。図47, 図48の仮RLコ
ードは図2に示す生データの黒3,白2などである。
場合、図47に示す白MH→RL変換テーブルでMHコー
ドが8ビット以上連続しているか調べ(S193 ) 、連続
していれば、MHコードを8ビット捨てて、MH AD
Rから次の4ビットをリードする(S194 ) 。
れば、図48の黒MH→RL変換テーブルでMHコードが
5ビット以上連続しているか調べ(S195 ) 、連続して
いればMHコードを5ビット捨てて、MH ADRから
次の5ビットをリードして8ビットにする(S196 ) 。
次に未定義符号となっているか調べ(S197 ) 、未定義
符号でなければ、変換テーブルの有効ビット数分のMH
コードを捨て(S198) 、変換テーブルから仮RLコー
ドを読み出し(S199 ) 、図12のS28cでセットしたワ
ークエリアのCH1KBITDに仮RLコードを加算し
てCH1KBITDを更新する(S200 ) 。
12のS28aでセットしたRL ADRに書き込み(S20
1 ) 、RL ADRをインクリメントする(S201 ) 。
次のRLコードは当然色が変わるのでカラーチェンジを
行い(S203 ) 、次に1ラインのビット数に達したかを
調べ(S203 ) 、達すれば終了する。達しなければCH
KBITDが1ラインのビット数を超えたか調べ(S20
4 )、超えていればエラーとしてエラーコードをセット
する(S207 ) 。
れば割り込みがあるか調べ(S205) 、あればプログラ
ムカウンタをデクリメントする(S206 ) 。
いて説明する。MR2RL変換は、1ライン分の復号化
ライン(MR)と参照ラインの積算ランレングスコード
RLを比較して、1ライン分の積算ランレングスコード
RLに変換する。1ライン総ビット数分のMRコードを
読み込むと終了する。割り込みは、各モード(垂直モー
ド,水平モード,パスモード)単位の復号化処理終了ご
とにサンプルする。
ある。図49において、MR2RL変換命令が出される
と、プログラムカウンタをインクリメントし(S210 )
、図12のS26cでセットしたMR ADRから受信デ
ータのMRコードをリードし(S211 ) 、RL2MR変
換時と同じ方法でb1 をセットする(S212 ) 。次にM
Rコードが未定義符号かチェックし(S213 ) 、未定義
符号ならエラーとなる。
4 ) 、パスモードであれば、b2 をセットし(S215 )
、b2 とa0 との差を求めてこれをKRLコードとお
き(S216 ) 、図12のS26dで設けたワークエリアCH
KBITDとKRLコードを加算してCHKBITDを
更新し(S217 ) 、次にa0 にb2 をセットする(S21
8 ) 。
でなければ、垂直モードであるか否か調べ(S219 ) 、
垂直モードであればS212 でセットしたb1 を基点にR
Lコードを作成する(S220 ) 。このRLコードをCH
KBITDにセットし(S221 ) 、このCHKBITD
を図12のS26cでセットしたRL ADRに書き込み
(S222 ) 、RL ADRをインクリメントし(S223
) 、カラーを変更する(S224 ) 。
と判別されると、a0 とa1 の仮RLコードを作成する
(S225 ) 。水平モードはMH2RL変換と同じなので
図47、図48に示す変換テーブルを使用して仮RLコード
を作成する。次にこの仮RLをCHKBITDに加算し
てCHKBITDを更新し(S226 ) 、CHKBITD
の内容をRL ADRに書き込み(S227 ) 、RL A
DRをインクリメントする(S228 ) 。
に仮RLコードを作成し、この仮RLコードをCHKB
ITDに加算してCHKBITDを更新し(S230 ) 、
CHKBITDの内容をRL ADRに書き込んで(S
231 ) 、RL ADRをインクリメントする。次にa0
にCHKBITDをセットする(S233 ) 。垂直モード
ならCHKBITDはa1 に、水平モードならa2 にな
っている。
たか調べ(S234 ) 、達していれば終了し、達していな
ければCHKBITDが1ラインのビット数を超えたか
調べ(S235 ) 、超えていればエラーコードをセットし
(S238 ) 、超えていなければ割り込みがあるか調べ
(S236 ) 、あればプログラムカウンタをデクリメント
する(S237) 。
ついて説明する。RL2NC変換は1ライン分の積算ラ
ンレングスコードRLを生データNCに変換する。図2
に示すようにランレングステーブルから終了コード(80
00)を読み込むと終了する。割り込みは、ランレングス
テーブルから生データ16ビット分以上の積算ランレング
スを読み込むたびにサンプルする。
ると、この命令終了後、次のプログラムを実行できるよ
うプログラムカウンタをインクリメントし(S240 ) 、
1ラインの最初のデータであることを示すフラグfirst
が0か否かチェックし(S241 )、0であれば先頭ビッ
トであるので、積算ランレングスを格納するワークエリ
アPRESUMを00にし(S242 ) 、変換する生デー
タNCDATを16ビットづつアドレス付けして取り出す
が、16ビットになるか否かをカウントするカウンタPC
OUNTを00とし(S243 ) 、次にfirst を01に設
定する(S244) 。図13のS34aでセットしたRL A
DRから積算ランレングスデータをリードし(S245 )
、RL ADRを次のリードに備えてインクリメント
し(S246) 、終了コードか確認し(S247 ) 、1ライ
ンが黒ビットから始まる場合、その前に、1ラインは必
ず白ランレングスから始めるという形式にするため白ビ
ット0として入れた白0ランレングスか否かをチェック
し、そうであれば、その次のデータから実質的な処理を
行う(S248 ) 。
レングスから、その前にリードした積算ランレングスを
引き、これをカウンタCCOUNTで計数する(S249
) 。このCCOUNT値は仮ランレングスであり、図
2の生データの黒3,白2等を表す。S245 でリードし
た積算ランレングスをPRESUMに格納して次回の処
理の準備をしておく(S250) 。次にPCOUNTとC
COUNTの合計値が16ビット以上となっているか調べ
(S251 ) 、16ビット未満のときは、S245でリードし
た積算ランレングスが白か黒かを調べ(S252 ) 、白の
場合はCARRYに0を入れ(S253 ) 、黒の場合はC
ARRYに1を入れる(S254 ) 。
である。積算ランレングスRL, CCOUNT, PCO
UNT,CARRY,NCDATを示す。CAARYと
は、NCDATの前に設けられた1ビットの領域でRL
が白ならば0、黒ならば1を入れ、PCOUNT+CC
OUNTの値が16ビット未満の時は、CCOUNTの数
だけNCDATにビットをシフトする働きをする。の
場合、RLは白なのでCARRYは0、CCOUNTは
1なので0を1ビットシフトする。の場合はCCOU
NTが3なので3ビット0をシフトする。図56に戻り上
述のようにNCDATをCCOUNT分シフトし(S25
5 ) 、PCOUNTをPCOUNT+CCOUNTで更
新する(S256 ) 。
きは(S251) 、図57において、S245 でリードしたR
Lが白か黒か調べ(S257 ) 、白の時はCARRYに0
を(S258 ) 、黒の場合はCARRYに1を入れ(S25
9 ) 、(16−PCOUNT)分CARRYの値をNCD
ATへシフトし(S260 ) 、NC ADRにこのNCDA
Tの値を書き込み、NC ADRをインクリメントする
(S262 ) 。図59において、の場合、PCOUNT+
CCOUNT=3+14=17>16となる。それ故16−3=
13ビット分CARRYに入った黒ビット1をシフトす
る。
数するカウンタiに0を設定し(S263 ) 、(PCOU
NT+CCOUNT−16)をワークエリアWORKに格
納し(S264 ) 、WORKが0か調べ(S265 ) 、0で
ないなら16以上かを調べ(S267 ) 、WORKが16の単
位をいくつ有するかをカウンタiで計数する(S267,
S268 )。これによりWORKの値は16未満になったの
で、この値でPCOUNTを更新し(S269 ) 、S257
で行った白か黒かの判定を繰り返し(S270 )、白であ
ればNCDAT16ビット全て0、黒であれば16ビットを
全て1とする。カウンタiが0であればNCDATの値
をこのままにしておき、iが1以上であれば、その数だ
けNCDATに全ビット0又は1としたものをNC A
DRをインクリメントしながら作成する(S274 ) 。
OUNT+CCOUNTは3+14=17>16となってい
る。このためS272 の場合に相当し、16ビット1である
NCDATが作成されている。そしてPCOUNTはS
269 で1に更新されている。この場合、16ビット1のデ
ータのうち左端の1ビットのみ有効で、これより右側の
15ビットの1はDON’T CAREとする。このよう
な状態でに示す白RL20が入ってくるとCCOUNT
は白3となりCARRYは0で3ビットシフトされ、先
のPCOUNTにある1ビットの左側からの4ビットが
有効となり、これより右側の12ビットの1はDON’T
CAREとすることにより、NCDATの中は正しい
生データに変換されてゆく。
し(S275 ) 、終了すれば終わりとし、終了してなけれ
ば割り込みがあるか調べ(S276 ) 、あればプログラム
カウンタをデクリメントし(S277 )、なければS245
へ戻り次のデータを読み込む。
4原稿がメモリにMRコードで蓄積され、A4でMHコ
ードの通信能力を有する相手機に送信する場合につき説
明する。
示す。図60において、オペレータによって送信が指示さ
れると、スキャナーで原稿が読み取られ、DRAM上に
符号化して記憶される。メモリへの蓄積が終了し、発呼
され(S300 ) 、相手機との間で回線が接続されると
(S301) 、制御信号が送受信され通信モードが決定さ
れる(S302 ) 。次にメモリに蓄積された送信データの
先頭アドレスがセットされ(S303 ) 、同時に1ライン
の先頭ビットであるか否かを示すフラグfirst が00に
セットされる(S304 ) 。次に図41〜図43で説明したE
OLSRCによりEOLを検出する(S305 ) 。
トが1のときは1次元(MH)データと判断され(S30
6 ) 、MHである場合は、RAM上に復号化する復号化
ラインの積算ランレングスRLの先頭アドレスをセット
し(S307 a) 、復号化するラインの送信データ先頭ア
ドレスをセットし(S307 b) 、first 、ワークエリア
であるCHKBITDを00にセット(S307 c) す
る。
により積算ランレングスRLに変換する(S308 ) 。ま
たS306 でタグビットが0の場合、2次元(MR)なの
で、参照ラインの積算ランレングスの先頭アドレスをセ
ットし(S309 a) 、復号化ラインの積算ランレングス
の先頭アドレスの先頭アドレスをセットし(S309 b)
、復号化するラインの送信データの先頭アドレスをセ
ットし(S309 c) 、first 、CHKBITDおよびa
0 ,b0 を00にセットする(S309 d) 。次に図49〜
図54で説明したMR2RL変換を行いRLを得る(S31
0 ) 。MH2RLまたはMR2RLの変換は1ライン単
位で行われる。1ラインの復号化処理が終了すると、復
号化処理を行ったデータの先頭に2つ目のEOLが検知
されたか否か判断し(S311 ) 、検知されれば終了信号
であるのでRTCを送り出し(S312 ) 、制御信号送信
(S313 ) 、回線断(S314 ) を行う。
) 、図62に示すRESCNV処理に入る。RESCN
V処理は線密度変換を行う処理で詳細は後述する。この
処理を行う準備として変換前の積算ランレングスの先頭
アドレスをセットし(S315 ) 、変換後の積算ランレン
グスの先頭アドレスをセットし(S316 ) 、変換倍率n
(例えば、1728ビット/2048ビット) をセットし(S31
7 ) 、first フラグを00にセットし(S318 ) 、変換
後の1ラインのビット数をセットし(S319 ) 、RES
CNV変換をする(S320 ) 。
に変換されるための処理が行われ、線密度変換された積
算ランレングスの先頭アドレスをセットし(S321 ) 、
MH符号化データの先頭アドレスをセットし(S322
)、CH1KBITEを00にセットし(S323 ) 、E
OLを付加して(S324 ) 、図21〜図28で説明したRL
2MH変換を行い(S325 ) 、0フィル付加して(S32
6 ) 送信する。
SCNV変換は積算ランレングスコードRLの拡大・縮
小(例えば、A3→A4,B4→A4など)を行う。入
力RLの終了コードを読み込むか、または出力RLが1
ライン総ビット数に達すると終了する。割り込みは、1
変化点あたりの積算ランレングスコードRLを出力する
ごとにサンプルする。
変換処理が指示されると、プログラムカウンタをインク
リメントする(S330 ) 。1ラインの先頭ビットか否か
を示すフラグfirst が0となっているか調べ(S331 )
、先頭ビットであれば、乗算処理したビット数の最新
のものを格納するワークエリアPRESUMを0にセッ
トし(S332 ) 、図15(a)に示すLSBのカラービッ
トを0(白)にセットし(S333 ) 、first を01にセ
ット(S334 ) する。図62のS315 でセットされたRL
1 ADRから積算ランレングスコードをリードし(S
335 ) 、RL1 ADRをインクリメントし(S336 ) 、
読み出したRLビット数に図62のS317で設定した変換
倍率nをかける乗算処理を行う(S337 ) 。乗算した結
果の少数点以下の数は切り捨てられる。この結果、前の
RLの乗算結果と現在のRLの乗算結果が同じ値になる
ことがあるのでこれをチェックし(S338) 、同じであ
ればS335 に戻る。
ングスの色はS333 のCOLORと同じ色か調べる(S
339 ) 。色が同じ場合とは、例えば、白RL10と黒RL
11がS338 で小数点以下を省略すると同じ値となり、次
の白RL20を読み出してきたとき、白RL10と白RL20
が同じ色となるときである。この場合、黒RL11のデー
タは省略されることになるので、白RL10にnを乗じた
値を書き込む予定だったアドレスに白RL20にnを乗じ
た値を書き込むようにする。このためRL2 ADRのア
ドレスデクリメントを行う(S340 ) 。次に乗算結果を
PRESUMにセットし(S341 ) 、S335でリードし
たRLの色をCOLORにセットし(S342 ) 、図62の
S316 でセットしたRL2 ADRに乗算結果の積算ラ
ンレングスコードを書き込み(S343 ) 、RL2 AD
Rをインクリメントする(S344 ) 。次にPRESUM
に現在セットされているビット数と図62のS319 でセッ
トした1ラインのビット数とが同じになったか比較し
(S345 ) 、同じとなれば終了コードを書き込み(S34
6 ) 、同じでなければ、割り込みがかかっているか調べ
(S347 ) 、かかっていればプログラムカウンタをデク
リメント処理する(S348 ) 。割り込みがかかってなけ
れば図64のS335 に戻る。
の原稿をA4サイズに変換した場合の積算ランレングス
テーブルを示した図である。
は、中間コードとしての積算ランレングスを用いること
により、生データ、MHコード、MRコード間の変換を
行うことにより、ソフトウェアで符号化・復号化を高速
に実施することができる。さらにこの中間コードに倍率
を乗ずることにより原稿サイズの変換を容易に行うこと
もできる。また、変換処理ステップの適当位置に割り込
みが入るようにしたので、割り込み要求に適切に対応す
ることができる。
る図
およびCHKBITDのホーマット図
フロー図 その1
フロー図 その2
フロー図 その3
ル
ー図 その1
ー図 その2
ー図 その3
ー図 その4
ー図 その5
ー図 その6
ー図 その7
ー図 その8
ー図 その1
ー図 その2
ー図 その3
ー図 その4
ー図 その5
ー図 その6
ー図 その7
ー図 その8
ー図 その9
ー図 その10
ー図 その1
ー図 その2
ー図 その3
ーブル
ーブル
ー図 その1
ー図 その2
ー図 その3
ー図 その4
ー図 その5
ー図 その6
図 その1
図 その2
図 その3
図 その4
を示す図
1
2
す図
Claims (13)
- 【請求項1】 1ラインの生データを1ラインの始から
白黒の変化点ごとに変化点の直前の画素の色と変化点直
前の画素までの積算値で定義する積算ランレングスを求
め、この積算ランレングスよりMHコードに変換するこ
とを特徴とする符号化方法。 - 【請求項2】 1ラインの生データを1ラインの始から
白黒の変化点ごとに変化点の直前の画素の色と変化点直
前までの画素の積算値で定義する積算ランレングスを求
め、この積算ランレングスよりMRコードに変換するこ
とを特徴とする符号化方法。 - 【請求項3】 MHコードを1ラインの生データを1ラ
インの始から白黒の変化点ごとに変化点直前の画素の色
と変化点直前の画素までの積算値で定義する積算ランレ
ングスに変換し、この積算ランレングスを生データに変
換することを特徴とする復号化方法。 - 【請求項4】 MRコードを1ラインの生データを1ラ
インの始から白黒の変化点ごとに変化点直前の画素の色
と変化点直前の画素までの積算値で定義する積算ランレ
ングスに変換し、この積算ランレングスを生データに変
換することを特徴とする復号化方法。 - 【請求項5】 MHコードを1ラインの生データを1ラ
インの始から白黒の変化点ごとに変化点直前の画素の色
と変化点直前の画素までの積算値で定義する積算ランレ
ングスに変換し、この積算ランレングスをMRコードに
変換することを特徴とする符号化または復号化方法。 - 【請求項6】 MRコードを1ラインの生データを1ラ
インの始から白黒の変化点ごとに変化点直前の画素の色
と変化点直前の画素までの積算値で定義する積算ランレ
ングスに変換し、この積算ランレングスをMHコードに
変換することを特徴とする符号化または復号化方法。 - 【請求項7】 前記積算ランレングスに倍率を乗じ拡大
・縮小を行うことを特徴とする請求項1〜6いずれかに
記載の符号化または復号化方法。 - 【請求項8】 前記MHコードよりEOLを検出後、前
記積算ランレングスに変換することを特徴とする請求項
3記載の復号化方法。 - 【請求項9】 前記MRコードよりEOLを検出後、前
記積算ランレングスに変換することを特徴とする請求項
4記載の復号化方法。 - 【請求項10】 前記MHコードを前記積算ランレングス
に変換する際、1ラインの画素数を超えた場合は、その
ラインはエラーとし、次のラインは前のデータを3画素
戻した画素を次のラインのスタート画素として変換を行
うことを特徴とする請求項3記載の復号化方法。 - 【請求項11】 前記MRコードを前記積算ランレングス
に変換する際、1ラインの画素数を超えた場合は、その
ラインはエラーとし、次のラインは前のデータを3画素
戻した画素を次のラインのスタート画素として変換を行
うことを特徴とする請求項4記載の復号化方法。 - 【請求項12】 前記積算ランレングスをMRコードに変
換する場合、変化点モードとして水平モードが選択され
た後、a0 となる積算ランレングスの値に対し参照ライ
ンの変化点b1 を前の変化点b1 の次の積算ランレング
スの位置より順次所定数の積算ランレングスの位置をサ
ーチし、見つからない時はバイナリーサーチにより検出
することを特徴とする請求項2記載の符号化方法。 - 【請求項13】 前記積算ランレングスをMHコードまた
はMRコードに変換するに際し、または、MHコードま
たはMRコードを前記積算ランレングスに変換するに際
し、または、前記積算ランレングスに倍数を乗じ拡大・
縮小するに際し、または、MHコードまたはMRコード
よりEOLを検出後、前記積算ランレングスに変換する
に際し、所定ステップで割り込みに対応できるようにし
たことを特徴とする請求項1〜9のいずれかに記載の符
号化または復号化方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3192919A JP2912736B2 (ja) | 1991-08-01 | 1991-08-01 | 符号化および復号化方法 |
DE69222711T DE69222711T2 (de) | 1991-08-01 | 1992-07-31 | Kodier- und Dekodierverfahren zur Verwendung in Faksimilegeräten |
EP92307027A EP0526249B1 (en) | 1991-08-01 | 1992-07-31 | Encoding and decoding methods for use in facsimile machines |
US08/556,571 US5587798A (en) | 1991-08-01 | 1995-11-13 | Encoding and decoding methods for use in facsimile |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3192919A JP2912736B2 (ja) | 1991-08-01 | 1991-08-01 | 符号化および復号化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0537794A true JPH0537794A (ja) | 1993-02-12 |
JP2912736B2 JP2912736B2 (ja) | 1999-06-28 |
Family
ID=16299164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3192919A Expired - Fee Related JP2912736B2 (ja) | 1991-08-01 | 1991-08-01 | 符号化および復号化方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5587798A (ja) |
EP (1) | EP0526249B1 (ja) |
JP (1) | JP2912736B2 (ja) |
DE (1) | DE69222711T2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3083001B2 (ja) * | 1992-07-31 | 2000-09-04 | キヤノン株式会社 | 画像通信装置 |
US5926576A (en) * | 1994-03-30 | 1999-07-20 | Newton; Dale C. | Imaging method and system concatenating image data values to form an integer, partition the integer, and arithmetically encode bit position counts of the integer |
JP3619025B2 (ja) * | 1998-09-18 | 2005-02-09 | キヤノン株式会社 | 符号化方法及び符号化装置 |
US7203373B2 (en) * | 2001-10-30 | 2007-04-10 | Texas Instruments Incorporated | Image and video coding with redundant run-length-level-last codewords removed |
US20050185852A1 (en) * | 2004-02-20 | 2005-08-25 | Jiliang Song | Method and apparatus to generate complex borders |
JP5190458B2 (ja) * | 2007-09-26 | 2013-04-24 | パナソニック株式会社 | データ処理装置及び方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56116367A (en) * | 1980-02-18 | 1981-09-12 | Nippon Telegr & Teleph Corp <Ntt> | Code conversion system for facsimile signal |
JPS56116369A (en) * | 1980-02-18 | 1981-09-12 | Nippon Telegr & Teleph Corp <Ntt> | Code conversion system for facsimile signal |
JPS6051370A (ja) * | 1983-08-31 | 1985-03-22 | Oki Electric Ind Co Ltd | 画像情報符号化処理装置 |
JPS60251763A (ja) * | 1984-05-28 | 1985-12-12 | Nec Corp | フアクシミリ情報の拡大縮小回路 |
JPS6214578A (ja) * | 1985-07-11 | 1987-01-23 | Nec Corp | フアクシミリ信号の符号変換方式 |
JPS62195979A (ja) * | 1986-02-24 | 1987-08-29 | Mitsubishi Electric Corp | フアクシミリ符号変換装置 |
JPS63250278A (ja) * | 1987-04-06 | 1988-10-18 | Matsushita Graphic Commun Syst Inc | 画像情報符号化方法 |
JPH01248874A (ja) * | 1988-03-30 | 1989-10-04 | Matsushita Graphic Commun Syst Inc | 画像情報処理方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4688100A (en) * | 1984-10-08 | 1987-08-18 | Canon Kabushiki Kaisha | Video data encoding/decoding apparatus |
DE3585939D1 (de) * | 1984-10-24 | 1992-06-04 | Ibm | Verfahren zur bildvergroesserung von in laufdarstellungsform gespeicherten bildern. |
GB2172464B (en) * | 1985-01-31 | 1989-02-01 | Canon Kk | Image transmission apparatus |
-
1991
- 1991-08-01 JP JP3192919A patent/JP2912736B2/ja not_active Expired - Fee Related
-
1992
- 1992-07-31 DE DE69222711T patent/DE69222711T2/de not_active Expired - Fee Related
- 1992-07-31 EP EP92307027A patent/EP0526249B1/en not_active Expired - Lifetime
-
1995
- 1995-11-13 US US08/556,571 patent/US5587798A/en not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56116367A (en) * | 1980-02-18 | 1981-09-12 | Nippon Telegr & Teleph Corp <Ntt> | Code conversion system for facsimile signal |
JPS56116369A (en) * | 1980-02-18 | 1981-09-12 | Nippon Telegr & Teleph Corp <Ntt> | Code conversion system for facsimile signal |
JPS6051370A (ja) * | 1983-08-31 | 1985-03-22 | Oki Electric Ind Co Ltd | 画像情報符号化処理装置 |
JPS60251763A (ja) * | 1984-05-28 | 1985-12-12 | Nec Corp | フアクシミリ情報の拡大縮小回路 |
JPS6214578A (ja) * | 1985-07-11 | 1987-01-23 | Nec Corp | フアクシミリ信号の符号変換方式 |
JPS62195979A (ja) * | 1986-02-24 | 1987-08-29 | Mitsubishi Electric Corp | フアクシミリ符号変換装置 |
JPS63250278A (ja) * | 1987-04-06 | 1988-10-18 | Matsushita Graphic Commun Syst Inc | 画像情報符号化方法 |
JPH01248874A (ja) * | 1988-03-30 | 1989-10-04 | Matsushita Graphic Commun Syst Inc | 画像情報処理方法 |
Also Published As
Publication number | Publication date |
---|---|
US5587798A (en) | 1996-12-24 |
EP0526249B1 (en) | 1997-10-15 |
DE69222711T2 (de) | 1998-03-26 |
EP0526249A3 (ja) | 1994-03-02 |
EP0526249A2 (en) | 1993-02-03 |
JP2912736B2 (ja) | 1999-06-28 |
DE69222711D1 (de) | 1997-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4800441A (en) | Binary data compression and expansion processing apparatus | |
EP0558313B1 (en) | Image processing apparatus | |
JP2000031832A (ja) | デ―タ圧縮方法、圧縮デ―タ解凍方法、圧縮デ―タ伝送方法及びその装置 | |
JP2912736B2 (ja) | 符号化および復号化方法 | |
EP0559376B1 (en) | Image processing apparatus | |
JPH07184059A (ja) | ファクシミリデータ符号化装置及び方法 | |
CN112287638B (zh) | 一种数字展示方法及装置 | |
JP3123792B2 (ja) | 算術符号を用いる符号化装置および復号化装置 | |
KR100739110B1 (ko) | 이진영상 고속 압축방법 | |
EP0506405A2 (en) | Image transmission method, and apparatus therefor | |
JPS62195979A (ja) | フアクシミリ符号変換装置 | |
JPH06217110A (ja) | 画像変換方法 | |
JP3408472B2 (ja) | ランレングス符号化方法及びランレングス符号化装置 | |
JP3123795B2 (ja) | 算術符号を用いる符号化装置および復号化装置 | |
JP2003143416A (ja) | データ伸長処理方法およびデータ伸長処理装置 | |
JP3123791B2 (ja) | 算術符号を用いる符号化装置および復号化装置 | |
JPH0834433B2 (ja) | 符号化装置及び符号化方法 | |
JPH0537785A (ja) | 限定ビツト画像の符号化方法 | |
KR900007566B1 (ko) | 화상데이터 변환장치 및 방법 | |
JP2965084B2 (ja) | イメージデータ圧縮方法 | |
JPH09121286A (ja) | 画像データの圧縮方法及び装置 | |
JP3146092B2 (ja) | 符号化装置及び復号化装置 | |
US20040130733A1 (en) | Image formation apparatus, image formation method, and program | |
JPH0812691B2 (ja) | 圧縮されたイメージを圧縮解除されたグレイ・レベルの縮小イメージに変換する方法 | |
JPH01248874A (ja) | 画像情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080409 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090409 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090409 Year of fee payment: 10 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090409 Year of fee payment: 10 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |