JP3408472B2 - ランレングス符号化方法及びランレングス符号化装置 - Google Patents
ランレングス符号化方法及びランレングス符号化装置Info
- Publication number
- JP3408472B2 JP3408472B2 JP27600399A JP27600399A JP3408472B2 JP 3408472 B2 JP3408472 B2 JP 3408472B2 JP 27600399 A JP27600399 A JP 27600399A JP 27600399 A JP27600399 A JP 27600399A JP 3408472 B2 JP3408472 B2 JP 3408472B2
- Authority
- JP
- Japan
- Prior art keywords
- run
- length
- unit
- run length
- bit string
- 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
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
方法及びランレングス符号化装置に関し、特に、ファク
シミリや画像ファイリング装置に用いられ、ランレング
スを所定のランレングス符号に変換するランレングス符
号化方法及びランレングス符号化装置に関する。
報の符号化は、ファクシミリや画像ファイリング装置等
の多種多様な装置において、画像情報の圧縮のために用
いられている。ここでランレングス符号としては、例え
ばファクシミリ通信に広く用いられているモディファイ
ド・ハフマン符号(以下、MH符号と略す)がある。
タの各水平ライン毎の連続する同じ色の画素数(ランレ
ングスと呼ぶ)を、対応するMH符号に置き換えるもの
である。なおMH符号は「白」と「黒」を表すものに分
かれている。
ータで構成され、この水平ラインに図9に示すように白
画素と黒画素が配列されている場合に、最初の白の画素
が5つ連続して続いていると、ランレングス値(RL)
は5なる。この白のランレングス値5を、図10に示す
ランレングス値をランレングス符号に変換するためのラ
ンレングス符号化テーブルを用いて、「1100」とい
う符号に置き換える。
から行い、実際の水平ラインの画像データが黒画素から
始まる場合は、先頭に0個(ランレングス0)の仮想白
画素が存在するものとして、符号は必ず白画素用の符号
から始まるものとする。
て説明する。
る同じ色の画素を1画素ずつ数え上げることにより、画
素色ごとのランレングスを計数し、ランレングスとMH
符号とを対応させたランレングス符号化テーブルを、求
めたランレングスを検索キーとして検索する。このよう
に、ランレングスをMH符号に変換する処理を、画像デ
ータの先頭から最後まで繰り返すことにより、ランレン
グス符号化処理を行っていた。
ハードウェアを用いることにより、高速に処理すること
ができた。しかし、汎用性や、コスト、小型化、処理内
容の変更の容易性等を考慮すれば、このような処理を汎
用のCPUを用いてソフトウェアによる処理で実現する
ことが望ましい。
フトウエアで実現した場合には、ランレングスを計数す
る処理で、読み込んだ画素データを1画素分ずつビット
・シフトして判別するため、演算処理が多くなり処理速
度が遅くなるという問題点があった。
9406号公報に記載の従来のランレングス符号化装置
では、画像データを一定長の単位ビット列(例えば8ビ
ット単位)で読み出し、図7に示すような単位ビット列
と、その単位ビット列のランレングス値列を1対1に対
応させたランレングス変換テーブルを参照することによ
り、読み出したビット列のランレングス値を高速に計数
する方法が提案されている。
ンレングス符号化装置におけるランレングス変換処理の
動作を、図8に示すフローチャートを参照して説明す
る。
おいて、先ずステップSB1で、白か黒かを判別するタ
イプレジスタ、加算レジスタ、計数レジスタなどを初期
化する。
出す画像データが残っているかどうかを判別する。ここ
でデータが残っていない場合は、ステップSB12で、
現在の加算レジスタの値をランレングス値としてランレ
ングス・データ領域に格納した後、ランレングス変換処
理を終了し、まだ読み出す画像データが残っている場合
は、ステップSB3で、画像記憶部から次の単位ビット
列を読み出す。
長の単位ビット列の先頭ビットが、前回タイプレジスタ
に保持された最終ビットと同じであるか否かを判断す
る。先頭ビットがタイプレジスタの値と異なる場合は、
ランレングスが連続しないということであるため、その
時点での加算レジスタの値をランレングス値として確定
し、ステップSB8で、この値をランレングス・データ
領域に格納する。また、次のランレングスの色が変わる
ため、ステップSB9でタイプレジスタの値を反転す
る。さらに、次のランレングス値を計算するために、ス
テップSB10で加算レジスタを0にクリアする。
は、ランレングスの対象の色が変わる時に計算された直
前のランレングスを格納する後処理に相当する。この一
連の処理を終えた後、ステップSB4で先頭ビットがタ
イプレジスタに格納された値と同じと判断された場合と
同様に、次のステップSB5に進む。
ジスタに格納された値と同じであった場合は、ステップ
SB5で今回読み出した単位ビット列の処理に入り、ま
ず、読み出した単位ビット列と同じ単位ビット列をラン
レングス変換テーブルで検索し、図7に示す対応するラ
ンレングス値欄72の中から、未読み出しのランレング
ス値欄72の先頭値を読み出す。なお、ランレングス値
欄72の値は、先頭(左端)から順に1つずつ読み出
す。例えば、図6の画像データの先頭から8ビット「0
0000111」の単位ビット列を読み出し、図7のラ
ンレングス変換テーブルを参照する時に、ランレングス
変換テーブルよりNo.8のランレングス値欄72の左
端にある「5」を読み出す。
SB10の処理を行った後、再びステップSB5にてラ
ンレングス変換テーブルを参照する時には、未読み出し
のランレングス値欄の先頭値は「5」の次の「3」とな
る。
テーブルから読み出したランレングス値を、加算レジス
タと計数レジスタにそれぞれ加算し、続いて計数レジス
タの値が単位ビット列のビット長と同じであるかを判断
し、ステップSB7で、読み出した単位ビット列の全て
のビット分の処理が終了したか判別する。
列のビット長よりも小さい場合は、ランレングス値を確
定するため、ステップSB5,6,8〜10の処理を続
行し、計数レジスタの値が単位ビット列のビット長と同
じ場合は、単位ビット列の全てのビットに対してランレ
ングス値を確定したものと判断し、ステップSB11
で、次に読み出す単位ビット列を計数するため、計数レ
ジスタを0にクリアする。
ステップSB11までを、画像記憶部に読み出す画像デ
ータ無くなるまで繰り返し実行し、読み出す画像データ
が無くなった時点で、ステップSB12において現在の
加算レジスタの値をランレングス値としてランレングス
・データ領域に格納し、ランレングス変換処理を終了す
る。
ングス符号化装置は、ランレングス値を計数するための
ランレングス変換テーブルに必要なメモリ容量が大きい
という問題がある。
を構成する単位ビット列を順次検索して、画像記憶部か
ら読み出した一定長の単位ビット列と一致する単位ビッ
ト列を見いだす方式であるため、全ての単位ビット列を
格納するメモリ領域と、ランレングス値欄72を構成す
るランレングス値を格納するためのメモリ領域の双方の
メモリ領域が必要である。
は、ソフトウエアにてランレングス変換処理を行う場合
に、ランレングス値を読み出す毎に複数回の演算処理を
行う必要があり、処理速度が低下するという問題があ
る。
ビット列に対応するランレングス値の読み出しを1つの
ランレングス値毎に読み出している。
断を、ランレングス値を1つ読み出す毎に、そのランレ
ングス値を加算し結果が単位ビット列のビット長と等し
くなったかどうか判断することで行っている。
るかどうかの判別にタイプレジスタを使用するため、タ
イプレジスタの設定が必要である。
が無い場合でもランレングス値を読み出すたびに加算処
理を行うため、ランレングス変換テーブルからランレン
グス値を読み出す毎に複数回の演算処理を行う必要があ
り、処理が複雑になる。
信速度が低かったため、画像情報の符号化処理の性能は
それほど要求されなかったが、最近データ通信システム
においては、通信速度の向上により符号化処理の高速化
が強く求められるようになってきた。また、最近の通信
システムにおいては、機能の拡張や多くのマルチメディ
ア処理の実現が必要になっており、処理の高速化ととも
にこれらの処理に使用するメモリ容量が増大し、システ
ム全体としてメモリを効率的に使用することが重要とな
っている。
もので、ランレングス変換処理に用いられるランレング
ス変換テーブルのメモリ容量を削減し、メモリ空間を効
率的に使用するとともに、ランレングス変換処理を高速
に実行することができるランレングス符号化方法及びラ
ンレングス符号化装置を提供することを目的としてい
る。
ランレングス符号化方法は、一定長のビット列である単
位ビット列が連続して構成される2値画像データのラン
レングスを、対応する所定の符号に変換するランレング
ス符号化方法において、前記単位ビット列を順次読み出
す第1のステップと、前記2値画像データを構成する前
記単位ビット列のビットパターンをアドレス情報の一部
とするテーブル参照アドレスで指定されるメモリの所定
領域に、複数の前記単位ビット列に対応するランレング
ス値が予め格納されたランレングス変換テーブルを参照
し、前記第1のステップで読み出された前記単位ビット
列を、この単位ビット列に対応するランレングス値から
なる単位ランレングス値列に変換する第2のステップ
と、前記第1のステップで読み出した前記単位ビット列
の先頭ビットが、前記第1のステップで直前に読み出し
た前記単位ビット列の最終ビットと同じか否かを判断す
る第3のステップと、前記単位ビット列の先頭ビット
が、直前に読み出した前記単位ビット列の最終ビットと
同じである場合、前記単位ビット列に対応する前記単位
ランレングス値列の先頭のランレングス値を、直前に読
み出した前記単位ビット列に対応する単位ランレングス
値列の最後のランレングス値に加算する第4のステップ
と、前記単位ビット列の先頭ビットが、直前に読み出し
た前記単位ビット列の最終ビットと異なる場合、前記単
位ビット列に対応する前記単位ランレングス値列の先頭
のランレングス値を、直前に読み出した前記単位ビット
列に対応する単位ランレングス値列の最後のランレング
ス値を格納したランレングス・データ格納手段の記憶領
域とは異なる記憶領域に格納する第5のステップと、前
記ランレングス値列を構成する前記ランレングス値が、
前記ランレングス値列を構成する最後の前記ランレング
ス値の後に格納されている終了データであるか否かを判
定し、前記ランレングス値が前記終了データであるとき
は、前記第5のステップで処理した前記単位ビット列の
次の単位ビット列を前記第2のステップで処理し、前記
ランレングス値が前記終了データでないときは、前記ラ
ンレングス値列を構成する各前記ランレングス値を前記
ランレングス・データ領域に格納する第6のステップ
と、前記ランレングス・データ領域に格納された前記ラ
ンレングス値列を読み出し、前記ランレングス値に対応
したランレングス符号が格納されたランレングス符号化
テーブルを参照して、前記単位ランレングス値列をラン
レングス符号に変換する第7のステップと、を備えるこ
とを特徴とする。
置は、一定長のビット列である単位ビット列が連続して
構成される2値画像データのランレングスを、対応する
所定の符号に変換するランレングス符号化装置におい
て、前記2値画像データを構成する前記単位ビット列の
ビットパターンをアドレス情報の一部とするテーブル参
照アドレスで指定されるメモリの所定領域に、複数の前
記単位ビット列に対応するランレングス値が予め格納さ
れたランレングス変換テーブルと、前記ランレングス値
に対応したランレングス符号が格納されたランレングス
符号化テーブルと、前記ランレングス変換テーブルを参
照し、前記単位ビット列をこの単位ビット列に対応する
ランレングス値からなる単位ランレングス値列に変換
し、この単位ランレングス値列を前記ランレングス符号
化テーブルを参照してランレングス符号に変換する制御
手段と、を備え、 前記単位ビット列のうち、先頭ビット
が1(又は0)である前記単位ビット列の全てのビット
を反転した反転ビット列を用いて前記テーブル参照アド
レスを生成し、前記ランレングス変換テーブルは、前記
単位ビット列のうち先頭ビットが1(又は0)の前記単
位ビット列に対応する前記ランレングス値列のみが格納
されていることを特徴とする。
て図面を参照して説明する。説明は、実施例を用いて具
体的に行う。
像ファイリング装置等、画像を取り扱う多種多様の装置
に適用することができるが、以下では、一例として、フ
ァクシミリへの適用を例にとり本発明に係るランレング
ス符号化方法の実施例について説明する。
グス符号化方法を適用したファクシミリの電気的構成を
示す構成を示すブロック図である。
その情報を符号化して通信回線に送信し、通信回線から
受信した符号データを復号化して印刷を行う装置であ
る。なお、ファクシミリの中には、取り込んだ画像デー
タをそのまま印刷する複写機能を備えているものがある
が、この複写機能についてはこの発明と直接関係しない
ので、以下では特に説明しない。
制御するCPU(中央演算処理装置)1と、CPU1を
動作させるためのプログラム及び画像データ等の情報を
記憶するメモリ2と、原稿から画像データを読み込み電
気的情報に変換し、この情報を蓄積するスキャナ7と、
スキャナ7から蓄積したデータを読み出すスキャナ制御
部6と、画像等を印刷するプリンタ9と、プリンタ9に
データを送るためのプリンタ制御部8と、通信回線10
を通して通信相手との通信手順の調整及びデータの送受
信を行う通信制御部5と、送信先を入力し、また結果を
表示する操作パネル4と、操作パネル4を制御する操作
パネル制御部3とから概略構成されている。
像データをランレングス符号データに符号化する処理
と、ランレングス符号データを画像データに復号化する
処理を所定のプログラムに従い実行する。
画像データを通信回線より通信相手に送る場合は、スキ
ャナ7で読み込んだ画像データはメモリ2に保持され、
メモリ2の画像データをランレングスに変換したのち、
このランレングスをランレングス符号に符号化処理する
ことによりこの画像データを圧縮して、CPU1の制御
の下に、通信制御部5の制御信号によりランレングス符
号データを通信回線に送信する。
受信する場合は、通信回線10より受信したランレング
ス符号データをCPU1の制御の下に、通信制御部5の
制御信号によりメモリ2に保持し、メモリ2に格納され
たランレングス符号データをCPU1の制御の下に、復
号化処理することにより元の画像データに復元し、プリ
ンタ制御部8を通してプリンタ9に送ることにより印刷
を行う。
処理については、従来技術で実現されている公知技術を
用いるが、本発明には直接関係しないので、以下では特
に説明しない。
ングス符号化処理について説明する。
を用いて行われる。図2は、ランレングス符号化処理実
行時のメモリ2の内容を示すメモリマップであり、ファ
クシミリの各処理を制御するプログラム領域11と、符
号化対象の画像データを格納する画像データ領域14
と、画像データの各水平ラインごとのランレングスを生
成する際に用いるランレングス変換テーブルを格納する
ランレングス変換テーブル領域12と、ランレングス変
換処理により算出したランレングス値を格納するランレ
ングス・データ領域15と、ランレングス値をランレン
グス符号に変換する際に用いるランレングス符号化テー
ブルを格納するランレングス符号化テーブル領域13
と、ランレングス符号を格納する符号データ領域16と
を含んで構成される。
変換テーブル領域12及びランレングス符号化テーブル
領域13はROMで構成され、画像データ領域14とラ
ンレングス・データ領域15及び符号データ領域16は
RAMで構成される。
図3に示すように、テーブル参照アドレスの一部である
単位ビット列に対応するランレングス値列が格納された
ランレングス変換テーブルが格納されている。ここで、
一定長の単位ビット列のうち、先頭ビットが0の単位ビ
ット列だけが用いられており、先頭ビットが1の単位ビ
ット列は用いられていない。
8ビットと仮定した場合のランレングス変換テーブルの
一例である。
000」から「11111111」の256種類ある
が、先頭ビットが0の単位ビット列は、「000000
00」から「01111111」の128種類であり、
全単位ビット列の半分である。
て、例えば単位ビット列「00000110」をアドレ
ス情報の一部として持つ「XX0000011000
(b)」(Xは0又は1を表す)のテーブル参照アドレ
スに対応して、ランレングス値列「5,2,1,0」が
格納されている。
0000110」の先頭の0が5個あることを表し、次
の「2」は5個の0の次に1が2個あることを表し、そ
の次の「1」は、2個の1の次に0が1個あることを表
している。さらに最後の「0」は、これで単位ビット列
のランレングスが終わりであることを表している。
は同色の連続する画素数であり、単位ビット列をビット
反転(0を1に、1を0に反転)しても、ランレングス
の構成は同じであるため、単位ビット列の先頭ビットが
1であった場合は、単位ビット列をビット反転して図3
を参照することにより、ランレングス情報を得ることが
できることがわかる。
0」のランレングス値列「7,1」は、この単位ビット
列の各ビットを反転して生成した反転単位ビット列「0
0000001」のランレングス値列「7,1」と同一
である。同様に、他の任意の単位ビット列のランレング
ス値列と、この単位ビット列の各ビットを反転して生成
した反転単位ビット列のランレングス値列は同一になる
という対称性が存在する。
3に格納されたランレングス符号化テーブルは、図10
に示すような従来公知のランレングス符号化方法で用い
られる一般的なランレングスの符号化用テーブルであ
り、ランレングス値によりランレングス符号が参照され
る。本発明には直接関係しないので、ここでは特にその
構成については説明しない。
信処理におけるランレングス符号化処理の手順につい
て、図面を参照して説明する。
としては、図2に示す画像データ領域14に格納された
画像データから、各水平ラインごとのランレングス値を
求めてランレングス・データ領域15に格納し、次に、
ランレングス・データ領域15のランレングス値を、公
知の符号化手法によりランレングス符号に変換する手順
である。
法における画像データのランレングス値を求める処理に
ついて、図4に示すフローチャートを参照して説明す
る。
ータから変換したランレングス値を格納する図2のラン
レングス・データ領域15の先頭を示す先頭ポインタを
指定する。
4に読み出すべき画像データが残っているかどうかを判
別し、画像データが残っていない場合は、ステップSA
11でランレングス変換処理を終了し、画像データがあ
る場合は、ステップSA3で画像データ領域14から一
定長の単位ビット列を読み出す。
ビット列の先頭ビットが「1」か否かを判断し、「1」
である場合はステップSA5で、読み出した単位ビット
列の各ビットをビット反転する。
ット列をアドレス情報の一部とするテーブル参照アドレ
スとランレングス変換テーブルを参照して、単位ビット
列に対応するランレングス値列を一回の処理ステップで
読み出し、このランレングス値列を一時的なメモリ領域
に格納する。
位ビット列の先頭ビットが直前に読み出した単位ビット
列の最終ビットと同じ(同色画素)か否かを判断し、同
色画素であった場合はステップSA8で、読み出したラ
ンレングス値列の先頭のランレングス値を、ランレング
ス・データ領域15に前回格納したランレングス値に対
して加算し、同色画素でない場合はステップSA9で、
ランレングス・データ領域15の先頭ポインタを更新
し、前回格納した領域とは別の領域にランレングス値を
格納する。
列の次のランレングス値が「0」であるか否かを判別
し、「0」でない場合は、再びステップSA9の処理に
戻り、読み出したランレングス値列のランレングス値が
「0」となって終了するまで、ステップSA9とステッ
プSA10の処理を繰り返す。
「0」の場合、ステップSA2に戻り、上記のステップ
SA2からステップSA10の処理を、読み出す画像デ
ータの単位ビット列がなくなるまで繰り返し実行するこ
とによりランレングス変換処理を行う。
データの送信処理におけるランレングス符号化処理の手
順について、具体例を用いて説明する。
図6に示す「白5,黒17,白6,黒2,白2,…」の
画像データ61が格納されている場合は、最初にステッ
プSA1で、図2のランレングス・データ領域15の先
頭を示す先頭ポインタを指定する。
4に画像データが残っているか否かを判別し、図6に示
される画像データが残っているため、ステップSA3で
ビット列62の先頭から8ビットの単位ビット列「00
000111」621が読み出される。
た単位ビット列621の先頭ビットが「1」であるか否
かを判別し、この場合「0」であるため、読み出した単
位ビット列621はそのままビット反転せずに、ステッ
プSA6の処理を行う。
らテーブル参照アドレスを「XX0000011100
(b)」((b)はバイナリデータを表す)として生成
し、図3のランレングス変換テーブルを参照し、単位ビ
ット列621に対応する単位ランレングス値列631が
(5,3,0)として読み出される。ここでの説明から
わかるように、テーブル参照アドレスは、“XX”+単
位ビット列+“00”として構成され、単位ランレング
ス値列631の最後の0は、単位ビット列の最後である
ことを表している。
位ビット列621の先頭ビット「0」が、直前に読み出
した単位ビット列の最終ビットと同じ(同色画素)かど
うかを判断する。ここでは、今回の処理が最初であり、
直前の単位ビット列の最終ビットは設定されていないた
め、初期値として設定されている「0」と比較する。先
頭ビットが同じ「0」であるため、ステップSA8で、
今回読み出した単位ランレングス値列631の先頭のラ
ンレングス値「5」を、前回格納したランレングス・デ
ータ領域15のランレングス値に加算する。
ランレングス・データ領域15の先頭ポインタが示すメ
モリ領域には「0」が格納されており、「0」に「5」
を加算した結果として、ランレングス・データ領域の先
頭値は、図6のランレングス値列64の左端に示すよう
に「5」となる。
グス値列631の次のランレングス値が「0」であるか
どうかを判別し、ここでは次のランレングス値が「3」
であるため、ステップSA9で、ランレングス・データ
領域15のポインタを先頭ポインタから更新し、ランレ
ングス・データ領域15の次の格納領域にランレングス
値「3」を格納する。
ングス値が「0」であるかどうかを判別し、次のランレ
ングス値が「0」であるため、単位ビット列621に対
する単位ランレングス値列631を求める処理を終了す
る。こうして、図5に示すようにテーブル参照アドレス
「XX0000011100(b)」に対応するランレ
ングス値列(5,3)が生成される。
領域14に画像データが残っているか否かを判別し画像
データが残っているため、ステップSA3で単位ビット
列622の各ビット「11111111」が読み出され
る。
ット列622の先頭ビットが「1」であるか否かを判別
し、この場合「1」であるため、ステップSA5で読み
出した単位ビット列622をビット反転する。ビット反
転した単位ビット列「0000000000」よりテー
ブル参照アドレスを「XX0000000000
(b)」として生成し、ステップSA6で図3のランレ
ングス変換テーブルを用いて単位ランレングス値列63
2、すなわち「8,0」が読み出される。
位ビット列622の先頭ビット「1」が、直前に読み出
した単位ビット列621の最終ビットと同じ(同色画
素)か否かを判断する。直前に読み出した単位ビット列
621の最終ビットは同じ「1」であるため、ステップ
SA8で、今回読み出した単位ランレングス値列632
の先頭のランレングス値「8」を、直前に格納したラン
レングス値に加算する。直前に格納したランレングス値
「3」に「8」を加算し、ランレングス値は「11」と
なる。
ス値列632の次のランレングス値が「0」であるかど
うかを判別し、ここでは「0」であるため、ステップS
A2において、画像データ領域14に画像データが残っ
ているか判別したのち、ステップSA3で、次の単位ビ
ット列623、すなわち「11111100」が読み出
される。
ータ61からランレングス値列64、すなわち「5,1
7,6,2,2,…」が求められる。
出すべき単位ビット列がなくなるまで繰り返し実行さ
れ、画像データ61に対応するランレングス値列64が
ランレングス・データ領域15に格納される。
64からランレングス符号に変換する処理については、
例えば特開昭59−117375号公報に開示されてい
る公知の符号化手法を使用するが、この符号化処理につ
いては本発明に直接関係しないため、詳細の説明は省略
する。
ングス符号化方法及びランレングス符号化装置は、メモ
リを効率的に使用することができるため、必要とするメ
モリ容量を大幅に低減することができる。
報に記載のメモリの使用方法と比較して説明する。
は、図7からわかるように、第1に全単位ビット列、す
なわち256種類の単位ビット列に対応するランレング
ス値列のデータを格納していること、第2に全単位ビッ
ト列の全てのデータを格納していることがわかる。
するのに、4ビット×8×256=8192ビット必要
とし、全単位ビット列を格納するのに、8ビット×25
6=2048ビット必要である。従って、合計8192
+2048=10240ビット(1280バイト)必要
とする。
8の構成となっているのは、単位ビット列が8ビットと
仮定しているためである。すなわち、単位ビット列が8
ビットの場合、ランレングス値列を構成するランレング
ス値の個数が最大となるのは、単位ビット列が「010
10101」の場合であり、このときランレングス値列
が「1,1,1,1,1,1,1,1」となることによ
る。
法及びランレングス符号化装置において、ランレングス
変換テーブルは図3に示すように、第1に単位ビット列
からテーブル参照アドレスを生成し、このテーブル参照
アドレスを用いてランレングス変換テーブルを参照する
ため、ランレングス変換テーブル内に単位ビット列のデ
ータを格納しておく必要がないという特徴がある。
「1」であった場合は、単位ビット列の各ビットをビッ
ト反転した反転単位ビット列を生成し、この反転単位ビ
ット列からテーブル参照アドレスを生成してランレング
ス変換テーブルを参照するため、単位ビット列の種類が
前記公報のランレングス符号化装置で必要とした256
の半分(128)に低減するという特徴がある。
リ容量を計算すると、図3より、4ビット×9×128
=4608ビット(576バイト)となる。従って、上
記公報記載のランレングス符号化装置で必要とするメモ
リ容量と比べて、4608/10240=45%とな
り、本発明によるランレングス符号化方法及びランレン
グス符号化装置では、ランレングス変換テーブルのメモ
り容量を従来のランレングス変換テーブルのメモリ容量
の半分以下に低減することができる。
4ビット×9の構成としているのは、本発明ではランレ
ングス値列の最後に「0」を置いているためであり、上
記公報のランレングス変換テーブルで説明したランレン
グス値列を構成するランレングス値の最大個数8に、ラ
ンレングス値列の最後の「0」に対応する1を加えてい
ることによる。
法及びランレングス符号化装置は、従来のランレングス
符号化方法に対し、画像データからランレングス符号を
求めるランレングス変換処理を高速化できるという特徴
がある。
する。
ランレングス符号化装置は、ランレングス変換テーブル
から単位ビット列に対応するランレングス値列の読み出
しを、ランレングス値列を構成するランレングス値を計
数しながら1つずつ読み出すのに対し、本発明によるラ
ンレングス符号化方法及びランレングス符号化装置で
は、単位ビット列に対応する単位ランレングス値列の全
てのランレングス値を一回の処理で読み出す。これによ
り、メモリの読み出し回数が削減される。
置は、単位ビット列に対応する“0”でない通常のラン
レングス値列の終了の判定を、ランレングス値を読み出
す毎にこのランレングス値を計数レジスタで加算し、一
定長のビット数(上記の説明では8ビット)に達したか
どうかで判定している。
法及びランレングス符号化装置において、あらかじめラ
ンレングス値列の後の空領域にランレングス値がないこ
とを示す「0」を格納しておき、ランレングス値列を構
成する次のランレングス値が「0」かどうかでランレン
グス値列の終了判定をしているため、上記公報記載にお
けるランレングス値列の終了判定のように、読み出した
ランレングス値を加算する必要がない。
置は、直前にランレングス値列に変換した単位ビット列
と、今回処理すべき単位ビット列とが連続するかどうか
の判定に、タイプレジスタを使用するため、ランレング
ス値を格納する毎にタイプレジスタの反転処理を行う必
要がある。
に変換した単位ビット列の最終ビットと、読み出した単
位ビット列の先頭ビットを直接比較することにより、直
前の単位ビット列と読み出した単位ビット列が連続する
か否かを判定するため、タイプレジスタの反転処理が必
要ない。
置は、同じ色が連続する場合以外でも、ランレングス変
換テーブルから読み出したランレングス値を加算レジス
タに格納されている値と加算したのち、ランレングス・
データ領域15に格納する。
色が連続する場合以外では、ランレングス変換テーブル
から読み出したランレングス値を、そのままランレング
ス・データ領域15に格納するため、加算レジスタに対
する加算処理やクリア処理が必要ない。
装置と、本発明によるランレングス符号化方法及びラン
レングス符号化装置との処理速度をクロック数単位で具
体的に比較する。
令、演算命令の実行クロック数をそれぞれ18クロッ
ク、3クロック、1クロックとし、単位ビット列を構成
するランレングス値は4つあり、単位ビット列の先頭ビ
ットは直前にランレングス値列に変換した単位ビット列
と同色データ、すなわち単位ビット列の先頭ビットと直
前にランレングス値列に変換した単位ビット列の最終ビ
ットが同一とし、その他の条件は同様であるとする。
ス符号化方法及びランレングス符号化装置は、従来のラ
ンレングス符号化方法に対し、ランレングス変換処理を
大幅に高速化できるという特徴がある。
ファクシミリに適用した例について示したが、これに限
定されず、本発明を画像ファイリング装置等、画像デー
タを取り扱う種々の装置に適用し得る。
ンレングス値列の最後に0を配置したが、0に限らず指
定されたデータであっても良い。
X”+単位ビット列+“00”として構成されるとした
が、N(Nは自然数)ビットの“X”を単位ビット列の
上位ビット側に配置し、Nビットの“0”を単位ビット
列の下位ビット側に配置して構成しても良い。
レングス符号化方法及びランレングス符号化装置は、ラ
ンレングス値を求める際に使用するランレングス変換テ
ーブルのメモリ容量を削減し、メモリ空間を効率的に使
用できる。
ランレングス変換処理を高速化できるという効果があ
る。
したファクシミリの一実施例の電気的構成を示すブロッ
ク図である。
レングス符号化処理時のメモリマップ例を示す図であ
る。
係るランレングス変換テーブルの具体例を示す図であ
る。
動作を説明するためのフローチャートである。
領域に格納されるデータの例を示す図である。
1を一定長ビット(8ビット)から構成される単位ビッ
ト列621〜ずつ読み出し、ランレングス値列64を求
める方法を説明するための図である。
図である。
ングス変換処理の動作を示すフローチャートである。
図である。
グス値と、白画素用及び黒画素用のランレングス符号
(ターミネーティング符号=T符号)との対応表であ
る。
Claims (6)
- 【請求項1】 一定長のビット列である単位ビット列が
連続して構成される2値画像データのランレングスを、
対応する所定の符号に変換するランレングス符号化方法
において、 前記単位ビット列を順次読み出す第1のステップと、 前記2値画像データを構成する前記単位ビット列のビッ
トパターンをアドレス情報の一部とするテーブル参照ア
ドレスで指定されるメモリの所定領域に、複数の前記単
位ビット列に対応するランレングス値が予め格納された
ランレングス変換テーブルを参照し、前記第1のステッ
プで読み出された前記単位ビット列を、この単位ビット
列に対応するランレングス値からなる単位ランレングス
値列に変換する第2のステップと、 前記第1のステップで読み出した前記単位ビット列の先
頭ビットが、前記第1のステップで直前に読み出した前
記単位ビット列の最終ビットと同じか否かを判断する第
3のステップと、 前記単位ビット列の先頭ビットが、直前に読み出した前
記単位ビット列の最終ビットと同じである場合、前記単
位ビット列に対応する前記単位ランレングス値列の先頭
のランレングス値を、直前に読み出した前記単位ビット
列に対応する単位ランレングス値列の最後のランレング
ス値に加算する第4のステップと、 前記単位ビット列の先頭ビットが、直前に読み出した前
記単位ビット列の最終ビットと異なる場合、前記単位ビ
ット列に対応する前記単位ランレングス値列の先頭のラ
ンレングス値を、直前に読み出した前記単位ビット列に
対応する単位ランレングス値列の最後のランレングス値
を格納したランレングス・データ格納手段の記憶領域と
は異なる記憶領域に格納する第5のステップと、 前記ランレングス値列を構成する前記ランレングス値
が、前記ランレングス値列を構成する最後の前記ランレ
ングス値の後に格納されている終了データであるか否か
を判定し、前記ランレングス値が前記終了データである
ときは、前記第5のステップで処理した前記単位ビット
列の次の単位ビット列を前記第2のステップで処理し、
前記ランレングス値が前記終了データでないときは、前
記ランレングス値列を構成する各前記ランレングス値を
前記ランレングス・データ領域に格納する第6のステッ
プと、 前記ランレングス・データ領域に格納された前記ランレ
ングス値列を読み出し、前記ランレングス値に対応した
ランレングス符号が格納されたランレングス符号化テー
ブルを参照して、前記単位ランレングス値列をランレン
グス符号に変換する第7のステップと、を備えることを
特徴とするランレングス符号化方法。 - 【請求項2】 前記第1のステップで読み出した前記単
位ビット列の先頭ビットが1(又は0)であるか否かを
判定し、この判定結果が1(又は0)のときは、前記第
2のステップで読み出した前記単位ビット列の全てのビ
ットを反転した反転単位ビット列で前記テーブル参照ア
ドレスを生成し、前記判定結果が0(又は1)のとき
は、前記単位ビット列をビット反転しないで前記テーブ
ル参照アドレスを生成する第8のステップを有し、 前記第8のステップで生成した前記テーブル参照アドレ
スを用いて、前記第2のステップで前記ランレングス値
列を参照する前記ランレングス変換テーブルは、前記単
位ビット列のうち先頭ビットが1(又は0)の前記単位
ビット列に対応する前記ランレングス値列のみが格納さ
れていることを特徴とする請求項1記載のランレングス
符号化方法。 - 【請求項3】 前記終了データは、0であることを特徴
とする請求項1記載のランレングス符号化方法。 - 【請求項4】 一定長のビット列である単位ビット列が
連続して構成される2値画像データのランレングスを、
対応する所定の符号に変換するランレングス符号化装置
において、 前記2値画像データを構成する前記単位ビット列のビッ
トパターンをアドレス情報の一部とするテーブル参照ア
ドレスで指定されるメモリの所定領域に、複数の前記単
位ビット列に対応するランレングス値が予め格納された
ランレングス変換テーブルと、 前記ランレングス値に対応したランレングス符号が格納
されたランレングス符号化テーブルと、 前記ランレングス変換テーブルを参照し、前記単位ビッ
ト列をこの単位ビット列に対応するランレングス値から
なる単位ランレングス値列に変換し、この単位ランレン
グス値列を前記ランレングス符号化テーブルを参照して
ランレングス符号に変換する制御手段と、を備え、 前記単位ビット列のうち、先頭ビットが1(又は0)で
ある前記単位ビット列の全てのビットを反転した反転ビ
ット列を用いて前記テーブル参照アドレスを生成し、前
記ランレングス変換テーブルは、前記単位ビット列のう
ち先頭ビットが1(又は0)の前記単位ビット列に対応
する前記ランレングス値列のみが格納されていることを
特徴とするラ ンレングス符号化装置。 - 【請求項5】 一定長のビット列である単位ビット列が
連続して構成される2値画像データのランレングスを、
対応する所定の符号に変換するランレングス符号化装置
において、 前記2値画像データを構成する前記単位ビット列のビッ
トパターンをアドレス情報の一部とするテーブル参照ア
ドレスで指定されるメモリの所定領域に、複数の前記単
位ビット列に対応するランレングス値が予め格納された
ランレングス変換テーブルと、 前記ランレングス値に対応したランレングス符号が格納
されたランレングス符号化テーブルと、 前記ランレングス変換テーブルを参照し、前記単位ビッ
ト列をこの単位ビット列に対応するランレングス値から
なる単位ランレングス値列に変換し、この単位ランレン
グス値列を前記ランレングス符号化テーブルを参照して
ランレングス符号に変換する制御手段と、を備え、 前記ランレングス変換テーブルにおいて、前記ランレン
グス値列を構成する前記ランレングス値が最後であるこ
とを示す終了データが、前記ランレングス値列を構成す
る最後の前記ランレングス値の後に格納されていること
を特徴とするランレングス符号化装置。 - 【請求項6】 一定長のビット列である単位ビット列が
連続して構成される2値画像データのランレングスを、
対応する所定の符号に変換するランレングス符号化装置
において、 前記2値画像データを構成する前記単位ビット列のビッ
トパターンをアドレス情報の一部とするテーブル参照ア
ドレスで指定されるメモリの所定領域に、複数 の前記単
位ビット列に対応するランレングス値が予め格納された
ランレングス変換テーブルと、 前記ランレングス値に対応したランレングス符号が格納
されたランレングス符号化テーブルと、 前記ランレングス変換テーブルを参照し、前記単位ビッ
ト列をこの単位ビット列に対応するランレングス値から
なる単位ランレングス値列に変換し、この単位ランレン
グス値列を前記ランレングス符号化テーブルを参照して
ランレングス符号に変換する制御手段と、を備え、 前記2値画像データを格納する画像データ格納手段と、
前記ランレングス符号を格納する符号データ格納手段と
を備えたことを特徴とするランレングス符号化装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27600399A JP3408472B2 (ja) | 1999-09-29 | 1999-09-29 | ランレングス符号化方法及びランレングス符号化装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27600399A JP3408472B2 (ja) | 1999-09-29 | 1999-09-29 | ランレングス符号化方法及びランレングス符号化装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001102937A JP2001102937A (ja) | 2001-04-13 |
JP3408472B2 true JP3408472B2 (ja) | 2003-05-19 |
Family
ID=17563432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27600399A Expired - Fee Related JP3408472B2 (ja) | 1999-09-29 | 1999-09-29 | ランレングス符号化方法及びランレングス符号化装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3408472B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060051812A (ko) | 2004-09-29 | 2006-05-19 | 후지 샤신 필름 가부시기가이샤 | 런 렝스 압축 데이터의 위치 특정 방법 및 장치 |
WO2008066050A1 (en) * | 2006-11-28 | 2008-06-05 | Nec Corporation | Coding apparatus, method, and processor |
JP5636816B2 (ja) | 2010-08-25 | 2014-12-10 | 富士ゼロックス株式会社 | 再構成可能演算回路及びプログラム |
-
1999
- 1999-09-29 JP JP27600399A patent/JP3408472B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001102937A (ja) | 2001-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4791680A (en) | Image data converter | |
JP3108479B2 (ja) | 符号化復号化方法およびその装置 | |
US4688100A (en) | Video data encoding/decoding apparatus | |
JPH07184059A (ja) | ファクシミリデータ符号化装置及び方法 | |
JP2962518B2 (ja) | 画像データの符号化装置 | |
JP3408472B2 (ja) | ランレングス符号化方法及びランレングス符号化装置 | |
JP4164257B2 (ja) | 画像処理装置、画像処理方法、プログラム、及び記憶媒体 | |
JP3619025B2 (ja) | 符号化方法及び符号化装置 | |
JP3676078B2 (ja) | ランレングス符号化方法及び圧縮装置 | |
JP2684887B2 (ja) | 符号化復号化装置 | |
KR900007566B1 (ko) | 화상데이터 변환장치 및 방법 | |
US7072078B2 (en) | Image storage apparatus, image storage method, and storage medium | |
JP2000078415A (ja) | 画像処理システム、画像圧縮装置、および、記録媒体 | |
JPS6364948B2 (ja) | ||
JPH08274947A (ja) | 画像回転方法および画像回転装置 | |
JP3001563B1 (ja) | ランレングス符号化方法、ランレングス符号化装置及びランレングス符号化プログラムを記憶した記憶媒体 | |
JP2001078042A (ja) | 画像伸長処理装置および画像圧縮処理装置 | |
JPS6214579A (ja) | 復号化回路 | |
JPS60251763A (ja) | フアクシミリ情報の拡大縮小回路 | |
JP2965084B2 (ja) | イメージデータ圧縮方法 | |
JP2000350045A (ja) | 符号復号化方法および装置 | |
JPS6364949B2 (ja) | ||
JP2586143B2 (ja) | Mh伸長回路 | |
JPH0965147A (ja) | 画像信号圧縮方法及び装置,画像信号復元方法及び装置,画像信号圧縮・復元方法及び装置,並びにプリンタ装置 | |
JP2522515B2 (ja) | Eolアドレステ―ブル作成回路 |
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: 20030218 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080314 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090314 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100314 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |