JPH07236064A - ランレングス符号復号装置 - Google Patents
ランレングス符号復号装置Info
- Publication number
- JPH07236064A JPH07236064A JP5141594A JP5141594A JPH07236064A JP H07236064 A JPH07236064 A JP H07236064A JP 5141594 A JP5141594 A JP 5141594A JP 5141594 A JP5141594 A JP 5141594A JP H07236064 A JPH07236064 A JP H07236064A
- Authority
- JP
- Japan
- Prior art keywords
- run length
- bit pattern
- data
- code
- run
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Image Processing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
(57)【要約】
【目的】 バイト単位でビットパターンのランが続くよ
うなデータを効率良く復号化することができるランレン
グス符号復号装置を提供することを目的とする。 【構成】 ランレングス符号を保持する符号データ保持
部と、ランレングス符号を復号する符号データ復号部
と、ランレングス符号を復号したものを保持する復号デ
ータ保持部と、指定されたメモリ領域の内容を指定され
た場所へ高速に転送するDMACとを設けたことによ
り、CPUと並行動作してランレングス符号の復号を行
なうようにした。
うなデータを効率良く復号化することができるランレン
グス符号復号装置を提供することを目的とする。 【構成】 ランレングス符号を保持する符号データ保持
部と、ランレングス符号を復号する符号データ復号部
と、ランレングス符号を復号したものを保持する復号デ
ータ保持部と、指定されたメモリ領域の内容を指定され
た場所へ高速に転送するDMACとを設けたことによ
り、CPUと並行動作してランレングス符号の復号を行
なうようにした。
Description
【0001】
【産業上の利用分野】本発明は、バイト単位のランレン
グス符号を復号するためのランレングス符号復号装置に
関するものである。
グス符号を復号するためのランレングス符号復号装置に
関するものである。
【0002】
【従来の技術】従来より、例えばファクシミリ伝送等に
おけるデータ圧縮の1方法として、データのビットの
0、1のランの長さを符号化するランレングス符号化法
が知られている。
おけるデータ圧縮の1方法として、データのビットの
0、1のランの長さを符号化するランレングス符号化法
が知られている。
【0003】
【発明が解決しようとする課題】しかしながら、カラー
画像のようにバイト単位でビットパターンのランが続く
ようなデータでは、ビット単位のランレングス符号化が
必ずしも効率の良い手法であるとは言えない。
画像のようにバイト単位でビットパターンのランが続く
ようなデータでは、ビット単位のランレングス符号化が
必ずしも効率の良い手法であるとは言えない。
【0004】このため、バイト単位のビットパターンと
そのラン長を符号化するための効率の良い符号化および
復号化手段が必要となる。
そのラン長を符号化するための効率の良い符号化および
復号化手段が必要となる。
【0005】そこで、本発明は、バイト単位でビットパ
ターンのランが続くデータを効率良く復号化することが
できるランレングス符号復号装置を提供することを目的
とする。
ターンのランが続くデータを効率良く復号化することが
できるランレングス符号復号装置を提供することを目的
とする。
【0006】
【課題を解決するための手段】本発明のランレングス符
号復号装置では、ランレングス符号を保持する符号デー
タ保持手段と、ランレングス符号を復号する符号データ
復号手段と、ランレングス符号を復号したものを保持す
る復号データ保持手段と、指定されたメモリ領域の内容
を指定された場所へ高速に転送するDMACとを設けた
ことにより、CPUと並行動作してランレングス符号の
復号を行なうようにした。
号復号装置では、ランレングス符号を保持する符号デー
タ保持手段と、ランレングス符号を復号する符号データ
復号手段と、ランレングス符号を復号したものを保持す
る復号データ保持手段と、指定されたメモリ領域の内容
を指定された場所へ高速に転送するDMACとを設けた
ことにより、CPUと並行動作してランレングス符号の
復号を行なうようにした。
【0007】また、コンピュータなどの他の装置と通信
する手段を設けることで、データ通信時にランレングス
符号化圧縮したデータを使用できるようにした。
する手段を設けることで、データ通信時にランレングス
符号化圧縮したデータを使用できるようにした。
【0008】
【実施例】図1は、本発明の第1実施例によるランレン
グス符号復号装置の基本構成を示すブロック図である。
グス符号復号装置の基本構成を示すブロック図である。
【0009】図示のように、このランレングス符号復号
装置は、本装置全体を制御するためのCPU1−1と、
メモリを高速に転送するDMAC1−2と、ランレング
ス符号の復号処理のプログラム等を記憶し、CPU1−
1を動作させるためのRAM等の記憶装置1−3と、他
の装置との通信を行なうためのI/Oポート1−4とを
有するものである。
装置は、本装置全体を制御するためのCPU1−1と、
メモリを高速に転送するDMAC1−2と、ランレング
ス符号の復号処理のプログラム等を記憶し、CPU1−
1を動作させるためのRAM等の記憶装置1−3と、他
の装置との通信を行なうためのI/Oポート1−4とを
有するものである。
【0010】次に、本発明の第1実施例を図2および図
3に基づいて説明する。
3に基づいて説明する。
【0011】図2は、バイト単位のランレングス符号化
とその復号の概念を示す説明図である。
とその復号の概念を示す説明図である。
【0012】図示の例では、10101010という1
バイト(8bits)のビットパターンが200回連続
する様子(計200バイトのデータ)を示している。こ
の時、単純にビット単位にランレングス符号化しても、
ほとんどデータの圧縮は望めないが、ビットパターンと
そのラン長を示す符号に変換する符号化を行えば、2バ
イト(ビットパターン1バイト+ラン長符号1バイト)
になる。以下、特にことわりのない限り、文中のランレ
ングス符号という用語は、バイト単位のビットパターン
とそのラン長が符号化されているものを意味することと
する。
バイト(8bits)のビットパターンが200回連続
する様子(計200バイトのデータ)を示している。こ
の時、単純にビット単位にランレングス符号化しても、
ほとんどデータの圧縮は望めないが、ビットパターンと
そのラン長を示す符号に変換する符号化を行えば、2バ
イト(ビットパターン1バイト+ラン長符号1バイト)
になる。以下、特にことわりのない限り、文中のランレ
ングス符号という用語は、バイト単位のビットパターン
とそのラン長が符号化されているものを意味することと
する。
【0013】図3は、図2で示したようなランレングス
符号の集合が与えられた時の復号の手順を示したフロー
チャートである。
符号の集合が与えられた時の復号の手順を示したフロー
チャートである。
【0014】この復号の手順は、まずステップ3−1で
復号後のデータの記憶場所を確保するなどの初期設定を
行ない、ステップ3−2の符号データの受信状態に入
る。そして、ランレングス符号データを受信すると、ス
テップ3−3において、そのヘッダ情報等から符号デー
タのデータ長(バイト数)、データ中に含まれるビット
パターンのサイズ(バイト数)を調べ記憶する。
復号後のデータの記憶場所を確保するなどの初期設定を
行ない、ステップ3−2の符号データの受信状態に入
る。そして、ランレングス符号データを受信すると、ス
テップ3−3において、そのヘッダ情報等から符号デー
タのデータ長(バイト数)、データ中に含まれるビット
パターンのサイズ(バイト数)を調べ記憶する。
【0015】次に、ステップ3−4において、符号デー
タの先頭からバイト列を取り出して解析し、ビットパタ
ーンとそのラン長を取り出す。この時、符号データの先
頭を示すポインタは、取り出したバイト列のサイズだけ
自動的に進む。
タの先頭からバイト列を取り出して解析し、ビットパタ
ーンとそのラン長を取り出す。この時、符号データの先
頭を示すポインタは、取り出したバイト列のサイズだけ
自動的に進む。
【0016】この時点でビットパターンのサイズとラン
長から、展開時のデータ量が計算できるので、格納場所
に格納するだけの容量があるかどうかを判断することが
できる。そして、容量が不足するならば、記憶領域を追
加確保するなどの何らかの処理を行なわなければならな
い。
長から、展開時のデータ量が計算できるので、格納場所
に格納するだけの容量があるかどうかを判断することが
できる。そして、容量が不足するならば、記憶領域を追
加確保するなどの何らかの処理を行なわなければならな
い。
【0017】次に、ステップ3−5で現在の格納番地が
示す場所にステップ3−4で得たビットパターンを格納
する。この時、ビットパターンのサイズが大きければ、
DMAC1−2に転送させるようにすれば効率が良い。
示す場所にステップ3−4で得たビットパターンを格納
する。この時、ビットパターンのサイズが大きければ、
DMAC1−2に転送させるようにすれば効率が良い。
【0018】また、このビットパターンがテーブル等の
アドレスを示し、実際にはテーブルに格納されたビット
パターンのランを発生させるような場合には、符号から
得たビットパターンを使って一旦テーブルを引き、その
結果得られたビットパターンを転送する。
アドレスを示し、実際にはテーブルに格納されたビット
パターンのランを発生させるような場合には、符号から
得たビットパターンを使って一旦テーブルを引き、その
結果得られたビットパターンを転送する。
【0019】ただし、この場合、ステップ3−7やステ
ップ3−9でのビットパターンサイズは符号中のビット
パターンではなく、ステップ3−8で実際に転送したビ
ットパターンのサイズとなる。
ップ3−9でのビットパターンサイズは符号中のビット
パターンではなく、ステップ3−8で実際に転送したビ
ットパターンのサイズとなる。
【0020】次に、ステップ3−6では、ビットパター
ンのラン長が1より長いかどうかを調べる。ここでラン
長が1ならば、すでに転送が終了しているので、次の符
号の処理に移る。また、ラン長が1よりも大きければ、
ステップ3−7でDMAC1−2の設定(転送元アドレ
ス、転送データサイズ、転送先アドレス、転送回数等)
を行ない、ステップ3−8でDMAC1−2によるビッ
トパターンの転送を行なう。
ンのラン長が1より長いかどうかを調べる。ここでラン
長が1ならば、すでに転送が終了しているので、次の符
号の処理に移る。また、ラン長が1よりも大きければ、
ステップ3−7でDMAC1−2の設定(転送元アドレ
ス、転送データサイズ、転送先アドレス、転送回数等)
を行ない、ステップ3−8でDMAC1−2によるビッ
トパターンの転送を行なう。
【0021】なお、ビットパターンのサイズが一連の符
号中で不変ならば、ステップ3−7で毎回転送データサ
イズを設定するのではなく、ステップ3−3においてD
MAC1−2に予め転送データサイズをセットしておく
方が効率が良い。また、ステップ3−8においてDMA
C1−2とCPU1−1が並列して動作するように設計
されていれば、この間CPU1−1は他の処理を行なっ
たり、次のステップへ進むことが可能である。
号中で不変ならば、ステップ3−7で毎回転送データサ
イズを設定するのではなく、ステップ3−3においてD
MAC1−2に予め転送データサイズをセットしておく
方が効率が良い。また、ステップ3−8においてDMA
C1−2とCPU1−1が並列して動作するように設計
されていれば、この間CPU1−1は他の処理を行なっ
たり、次のステップへ進むことが可能である。
【0022】CPU1−1が次のステップへ進むなら
ば、次回ステップ3−7に到達した時点で先にDMAC
1−2に任せておいた転送が継続中かどうかを判断し、
継続中ならば転送終了を待つようにすれば良い。そし
て、データ転送が終了したならば、ステップ3−9で諸
設定を行ない、ステップ3−10で未処理のデータがあ
るかどうかを判断する。この時、未処理の符号データが
あれば、ステップ3−4へ戻り、前記の処理を符号デー
タが終了するまで繰り返す。
ば、次回ステップ3−7に到達した時点で先にDMAC
1−2に任せておいた転送が継続中かどうかを判断し、
継続中ならば転送終了を待つようにすれば良い。そし
て、データ転送が終了したならば、ステップ3−9で諸
設定を行ない、ステップ3−10で未処理のデータがあ
るかどうかを判断する。この時、未処理の符号データが
あれば、ステップ3−4へ戻り、前記の処理を符号デー
タが終了するまで繰り返す。
【0023】次に、本発明の第2実施例を図4から図6
に基づいて説明する。
に基づいて説明する。
【0024】図4は、この第2実施例の基本構成を示す
ブロック図である。
ブロック図である。
【0025】この実施例は、ランレングス符号を効率良
く復号するために、複数のDMAC(4−2、4−3、
4−4)を設けたことを特徴とする。
く復号するために、複数のDMAC(4−2、4−3、
4−4)を設けたことを特徴とする。
【0026】図5は、本実施例の動作の手順を示したフ
ローチャートである。基本的な動作の手順は第1実施例
と同じであるが、ステップ5−7、5−8、5−9でC
PU4−1は、動作していないDMACを探し出し、そ
れにビットパターンの転送を依頼し(5−10)、転送
作業(5−11)の終了を待つことなく、次のステップ
へ進む。なお、各DMACは、それぞれ並列動作し、符
号の復号が並列処理される。
ローチャートである。基本的な動作の手順は第1実施例
と同じであるが、ステップ5−7、5−8、5−9でC
PU4−1は、動作していないDMACを探し出し、そ
れにビットパターンの転送を依頼し(5−10)、転送
作業(5−11)の終了を待つことなく、次のステップ
へ進む。なお、各DMACは、それぞれ並列動作し、符
号の復号が並列処理される。
【0027】一方、CPU4−1には、常にどの場所へ
復号したデータを格納するかがわかっており、符号を得
た順と復号を依頼する順さえ同じであれば、復号が終了
する順がどうなっても全く問題はない。そして、データ
が終了した時に、ステップ5−14、5−15で全ての
DMACで転送が終了するのを待つ。
復号したデータを格納するかがわかっており、符号を得
た順と復号を依頼する順さえ同じであれば、復号が終了
する順がどうなっても全く問題はない。そして、データ
が終了した時に、ステップ5−14、5−15で全ての
DMACで転送が終了するのを待つ。
【0028】また、ランレングス符号化されたデータを
復号し、かつ復号されたデータを繰り返し複写するよう
なデータを作成する場合、各DMACを復号処理に使う
ものとデータの複写処理に使うものに振り分けて利用す
ることもできる。この様子を示したのが図6である。こ
れはランレングス符号圧縮されたカラーイメージプリン
タのテストパターンをページメモリ全面へ繰り返し展開
する場合などに有効である。
復号し、かつ復号されたデータを繰り返し複写するよう
なデータを作成する場合、各DMACを復号処理に使う
ものとデータの複写処理に使うものに振り分けて利用す
ることもできる。この様子を示したのが図6である。こ
れはランレングス符号圧縮されたカラーイメージプリン
タのテストパターンをページメモリ全面へ繰り返し展開
する場合などに有効である。
【0029】なお、本実施例では、複数のDMACを並
列に動作するように構成しているが、複数のCPUが並
列動作するシステムで、いくつかのCPUを本実施例で
のDMACの代わりとして用いることもできる。
列に動作するように構成しているが、複数のCPUが並
列動作するシステムで、いくつかのCPUを本実施例で
のDMACの代わりとして用いることもできる。
【0030】
【発明の効果】以上説明したように、本発明によれば、
CPUと並列動作によりランレングス符号の復号を行な
うようにすることで、非力なCPUを使っても効率の良
いランレングス符号の復号ができるようになる。
CPUと並列動作によりランレングス符号の復号を行な
うようにすることで、非力なCPUを使っても効率の良
いランレングス符号の復号ができるようになる。
【0031】また、データ通信時にランレグス符号化圧
縮したデータを使用できるようにしたことで、本装置を
組み込んだ機器に対し、効率の良いデータ通信ができる
ようになる。
縮したデータを使用できるようにしたことで、本装置を
組み込んだ機器に対し、効率の良いデータ通信ができる
ようになる。
【図1】本発明の第1実施例による基本構成を示すブロ
ック図である。
ック図である。
【図2】バイト単位のランレングス符号化とその復号の
概念を示す説明図である。
概念を示す説明図である。
【図3】上記第1実施例の動作を示すフローチャートで
ある。
ある。
【図4】本発明の第2実施例による基本構成を示すブロ
ック図である。
ック図である。
【図5】上記第2実施例の動作を示すフローチャートで
ある。
ある。
【図6】上記第2実施例における複数のDMACによる
符号の復号と複写の様子を示す説明図である。
符号の復号と複写の様子を示す説明図である。
1−1、4−1…CPU、 1−2、4−2、4−3、4−4…DMAC、 1−3、4−5…記憶装置、 1−4、4−6…I/Oポート。
Claims (2)
- 【請求項1】 ランレングス符号を保持する符号データ
保持手段と、ランレングス符号を復号する符号データ復
号手段と、ランレングス符号を復号したものを保持する
復号データ保持手段と、指定されたメモリ領域の内容を
指定された場所へ高速に転送するダイレクトメモリアク
セスコントローラとを設けたことを特徴とするランレン
グス符号復号装置。 - 【請求項2】 請求項1において、 他の処理装置と通信する通信手段を設けたことを特徴と
するランレングス符号復号装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5141594A JPH07236064A (ja) | 1994-02-24 | 1994-02-24 | ランレングス符号復号装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5141594A JPH07236064A (ja) | 1994-02-24 | 1994-02-24 | ランレングス符号復号装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07236064A true JPH07236064A (ja) | 1995-09-05 |
Family
ID=12886304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5141594A Pending JPH07236064A (ja) | 1994-02-24 | 1994-02-24 | ランレングス符号復号装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH07236064A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006172107A (ja) * | 2004-12-15 | 2006-06-29 | Sharp Corp | データ処理装置 |
CN111384960A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 解码方法、处理器、解码装置及存储介质 |
-
1994
- 1994-02-24 JP JP5141594A patent/JPH07236064A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006172107A (ja) * | 2004-12-15 | 2006-06-29 | Sharp Corp | データ処理装置 |
JP4560398B2 (ja) * | 2004-12-15 | 2010-10-13 | シャープ株式会社 | データ処理回路 |
CN111384960A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 解码方法、处理器、解码装置及存储介质 |
CN111384960B (zh) * | 2018-12-28 | 2022-05-10 | 上海寒武纪信息科技有限公司 | 解码方法、处理器、解码装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3059520B2 (ja) | データ処理装置及びファクシミリ装置 | |
JPH02300840A (ja) | データの転送方法及びシステム | |
US6871274B2 (en) | Instruction code conversion apparatus creating an instruction code including a second code converted from a first code | |
JPH07236064A (ja) | ランレングス符号復号装置 | |
JP3156379B2 (ja) | 印刷データの圧縮方法 | |
JPH04293106A (ja) | 数値制御装置のリモート診断装置 | |
JPH09246988A (ja) | 復号装置及びその方法 | |
JPS59189751A (ja) | デ−タ伝送制御方式 | |
JPH01209169A (ja) | ページプリンタ印刷制御装置 | |
JP2001358593A (ja) | データ転送装置及びその方法 | |
JPS5953579B2 (ja) | 文字圧縮装置 | |
JP2689020B2 (ja) | 符号伸長方法及び描画装置 | |
JPH0486126A (ja) | データ圧縮装置 | |
JPH09146732A (ja) | プリンタドライバおよび印刷システム | |
JPH09300732A (ja) | 印刷制御装置 | |
JPH02287682A (ja) | ビットマップ画像データ保存装置 | |
JPH07144441A (ja) | 画像出力装置 | |
JP2006128944A (ja) | 情報処理装置及び情報処理方法、画像形成装置、プログラム、記憶媒体、印刷システム | |
JPH1188193A (ja) | バイトランレングス伸張装置、及びその方法 | |
JPH0444156A (ja) | 転送データ生成装置 | |
JPH0437370A (ja) | データ圧縮装置 | |
JPS61154275A (ja) | デ−タ解析方式 | |
JPH09240077A (ja) | 画像出力装置 | |
JPS63187873A (ja) | 制御復帰符号生成転送方法 | |
JPH0522609A (ja) | 二値画像データ切出し方式 |