JP3865203B2 - 画像圧縮装置、画像形成装置、画像圧縮方法及び記録媒体 - Google Patents

画像圧縮装置、画像形成装置、画像圧縮方法及び記録媒体 Download PDF

Info

Publication number
JP3865203B2
JP3865203B2 JP2001126558A JP2001126558A JP3865203B2 JP 3865203 B2 JP3865203 B2 JP 3865203B2 JP 2001126558 A JP2001126558 A JP 2001126558A JP 2001126558 A JP2001126558 A JP 2001126558A JP 3865203 B2 JP3865203 B2 JP 3865203B2
Authority
JP
Japan
Prior art keywords
run length
code
run
length
processing
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
Application number
JP2001126558A
Other languages
English (en)
Other versions
JP2002320093A (ja
JP2002320093A5 (ja
Inventor
尚人 白石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2001126558A priority Critical patent/JP3865203B2/ja
Priority to US10/127,553 priority patent/US6915017B2/en
Publication of JP2002320093A publication Critical patent/JP2002320093A/ja
Priority to US11/135,523 priority patent/US7483586B2/en
Publication of JP2002320093A5 publication Critical patent/JP2002320093A5/ja
Application granted granted Critical
Publication of JP3865203B2 publication Critical patent/JP3865203B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • H04N1/413Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
    • H04N1/419Systems 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像データの圧縮/伸長技術に係り、特に、プリンタやデジタル複写機などの画像形成装置において、フレームバッファ容量を節約するための省メモリ機構に最適な画像圧縮/伸長装置に関する。
【0002】
【従来の技術】
画像データを保持するためのメモリ量を低減したり、画像データの送信時間を短縮したりする目的で、画像データの圧縮技術が利用されている。
【0003】
2値画像を圧縮する方法として、1次元圧縮のラン長(ランレングス)符号化、ファクシミリなどに使用されるMH符号化、2次元圧縮方式の国際標準であるJBIG(Joint Bi-level Image experts Group)が広く知られている。また、MH符号化の改方式として、MH符号化を行う時に、直前の白及び黒のラン長(ランレングス)を格納し、ある色のラン長が直前のラン長に一致する場合に所定の反復符号を生成することにより、圧縮率、処理スピードを改善する方式が特開平9-65147公報に開示されている。
【0004】
しかし、以上の符号化方式は、特定の画像に対しては高い圧縮率が達成できるものの、色が短い周期で頻繁に変化するような画像データに対しは十分な圧縮率を得ることは困難であった。
【0005】
また、JBIGは、エントロピー符号化に算術符号器であるQM_コーダーを使用しているため、コンテキストメモリやコンテキストを作成するためのラインメモリなどのハードウエアコストが嵩み、また、高速化が難しいという問題点もある。
【0006】
また、特開平9-65147公報に開示された符号化方式は、ラン長が一致したときの符号語のデータ量が、一致しないときの符号語のデータ量に比べて十分に少ない場合にのみ圧縮率が向上するものである。しかし、反復符号により短い符号語を割り当てることは、相対的に一致しないラン長の符号語を長くすることになるため、色が短い周期で頻繁に変化するような画像データに対しては十分な圧縮率を持つ符号セットを得ることが困難であるという問題がある。また、同公報に記載された実施例によれば符号セットはMH符号に類似するものであるため、複数ビットを並列処理しようとすると大きなゲート数が必要となってしまうため、並列処理による高速性を期待することが困難である。
【0007】
この問題点を解決する技術として、画像データを走査して得られる色毎の交互のラン長の数値列を、所定の符号列に変換して出力する符号化方法が特開平2000−217005公報に開示されている。この符号化方法では、所定のラン長数を入力した時に、そのラン長が同色の直前のラン長に一致する場合を一致事象と設定し、一致しない場合を不一致事象と設定し、一致事象が連続する数を反復数と設定し、一致事象または一致事象の連続が発生した場合には反復数に対応する反復数符号を生成し、不一致事象が発生した場合にはラン長の値を示す符号を生成する。
【0008】
また、ラン長符号を圧縮、伸長する方式として特開平7−236065公報に述べられているように、1クロックごとに1ビットを比較し、ラン長をカウントアップする方式や、特開平7−236065公報に述べられているように、同じラン値のマッチングにより高速化する方式が知られている。
【0009】
しかし、以上の方式は、画像データによっては符号化されたデータが、データ以上のサイズに膨張することがある。このため、これらの画像圧縮装置を有するシステムは、最悪の圧縮率の場合、つまり圧縮によりデータ量が膨張する場合を考慮したメモリを備えなければならず、メモリコストが増大し、また、メモリアクセスの増加により処理スピードが低下するという問題があった。
【0010】
このようなデータ量の膨張を防ぐため、特開平5−183760公報、特開平7−264417公報に記載されているように、ラインごとに、符号化されたデータと、データのサイズを比較し、データのサイズを超えた場合には、データをメモリに格納する方式が知られている。ライン単位ではなく、ブロック単位で、符号化されたデータがデータ以上のサイズになったことを判断すると、データをメモリに格納することにより、圧縮によるデータ量の膨張を防ぐ方式が特開平9−248943公報、特開平10−117289公報などに開示されている。
【0011】
しかし、このような方式は、ライン単位又はブロック単位で、データと圧縮後のデータを格納するためのラインメモリ又はブロックメモリを必要とし、メモリコストが増加するという問題がある。また、各ラインごと、各ブロックごとに、区切って画像圧縮を行わねばならず、数ラインに渡る空欄もラインごとに初期的なデータ+そのデータの長さなどの符号データとなるため、圧縮率の低下を招くという問題もある。
【0012】
【発明が解決しようとする課題】
本発明の目的は、余分なラインメモリやブロックメモリを必要とすることなく、かつ、圧縮率の低下を招くことなく、データ量の膨張を回避し、効率的な画像圧縮処理が可能な画像圧縮装置及び方法と、同画像圧縮装置又は方法による符号化データの効率的な伸長処理が可能な画像伸長装置及び方法を提供することにある。また、本発明のもう1つの目的は、画像の圧縮/伸長処理に必要なメモリ量、画像の符号データの蓄積に必要なメモリ量を削減できるプリンタ、デジタル複写機などの画像形成装置を提供することにある。
【0013】
【課題を解決するための手段】
上記目的を達成するため、請求項1記載の発明は、画像データを圧縮する画像圧縮装置であって、
画像データの連続した複数ビットの単位(以下、この単位を画像パターンと記す)及びそれに続く少なくとも1のビットが順次入力され、入力された各画像パターン内で閉じるラン長を算出する処理を行う第1の処理手段と、
前記第1の処理手段により算出されたラン長に基づき、繰り返しのないラン長と、繰り返しのあるラン長及びその繰り返し数を求める処理を行う第2の処理手段と、
前記第2の処理手段により求められたラン長及びラン長の繰り返し数に対する符号化処理を、画像パターンに対応したワード毎に行う第3の処理手段と、
前記第2の処理手段により求められたラン長及びラン長の繰り返し数に基づいて、前記第3の処理手段によって符号化されるワードの符号長を算出し、算出した符号長が所定の閾値を超えるか否かの判定を行う第4の処理手段とを有し、
前記第3の処理手段は、前記第4の処理手段によって符号長が前記閾値を超えないと判定されたワードに対する符号化処理では、該ワードにおけるラン長をランレングス符号により、ラン長の繰り返し数を反復符号により、それぞれ符号化するが、前記第4の処理手段によって符号長が前記閾値を超えると判定されたワードに対する符号化処理ではパス符号化を行う、ことを特徴とする。
【0014】
請求項2記載の発明は、画像データを圧縮する画像圧縮装置であって、
画像データの連続した複数ビットの単位(以下、この単位を画像パターンと記す)及びそれに続く少なくとも1のビットが順次入力され、入力された各画像パターン内で閉じるラン長を算出する処理を行う第1の処理手段と、
前記第1の処理手段により算出されたラン長に基づき、繰り返しのないラン長と、繰り返しのあるラン長及びその繰り返し数を求める処理を行う第2の処理手段と、
前記第2の処理手段により求められたラン長及びラン長の繰り返し数に対する符号化処理を、画像パターンに対応したワード毎に行う第3の処理手段と、
前記第2の処理手段により求められたラン長及びラン長の繰り返し数に基づいて、前記第3の処理手段によって符号化されるワードの符号長を算出し、算出した符号長が所定の閾値を超えるか否かの判定を行う第4の処理手段とを有し、
前記第3の処理手段は、前記第4の処理手段によって符号長が前記閾値を超えないと判定されたワードに対する符号化処理では、該ワードにおけるラン長をランレングス符号により、ラン長の繰り返し数を反復符号により、それぞれ符号化するが、前記第4の処理手段によって符号長が前記閾値を超えると判定されたワードに対する符号化処理ではパス符号化を行い、
前記第1の処理手段は、入力された画像パターン内で閉じないラン長を累積加算する手段を備えることにより、複数の画像パターンにまたがるラン長を算出する、ことを特徴する。
【0015】
請求項3記載の発明は、請求項1又は2記載の発明に係る画像圧縮装置であって、
前記第4の処理手段は、前記第2の処理手段により求められたラン長及びラン長の繰り返し数に基づき算出した、前記第3の処理手段によって符号化されるワードの符号長を、該ワードにおいて閉じていない途中のラン長及びラン長の繰り返し数の符号の分を含めるように補正する手段を有し、該補正する手段によって補正後の符号長が前記閾値を超えるか否かの判定を行うことを特徴とする。
【0016】
請求項4記載の発明は、請求項3記載の発明に係る画像圧縮装置であって、
さらに、前記第 1 の処理手段によって算出されたラン長に基づき、前記第3の処理手段によって符号化されるワードの次のワードでパス符号化が行なわれるか否かの判定を行う第5の処理手段を有し、
前記第4の処理手段における前記補正する手段による符号長の補正量が、前記第5の処理手段による判定結果に応じて制御される、ことを特徴とする。
【0017】
請求項5記載の発明は、画像形成装置であって、
画像データを圧縮する請求項1、2、3又は4記載の発明に係る画像圧縮装置と、
前記画像圧縮装置により圧縮された符号データを記憶する記憶手段と、
前記記憶手段に記憶されている符号データを伸長する画像伸長手段と、
前記画像伸長手段により伸長された画像データを作像する作像手段とを有することを特徴とする。
【0018】
請求項6記載の発明は、画像データを圧縮する画像圧縮方法であって、
画像データの連続した複数ビットの単位(以下、この単位を画像パターンと記す)及びそれに続く少なくとも1のビットが順次入力され、入力された各画像パターン内で閉じるラン長を算出する処理を行う第1の処理工程と、
前記第1の処理工程により算出されたラン長に基づき、繰り返しのないラン長と、繰り返しのあるラン長及びその繰り返し数を求める処理を行う第2の処理工程と、
前記第2の処理工程により求められたラン長及びラン長の繰り返し数に対する符号化処理を、画像パターンに対応したワード毎に行う第3の処理工程と、
前記第2の処理工程により求められたラン長及びラン長の繰り返し数に基づいて、前記第3の処理工程によって符号化されるワードの符号長を算出し、算出した符号長が所定の 閾値を超えるか否かの判定を行う第4の処理工程とを有し、
前記第3の処理工程は、前記第4の処理工程によって符号長が前記閾値を超えないと判定されたワードに対する符号化処理では、該ワードにおけるラン長をランレングス符号により、ラン長の繰り返し数を反復符号により、それぞれ符号化するが、前記第4の処理工程によって符号長が前記閾値を超えると判定されたワードに対する符号化処理ではパス符号化を行う、ことを特徴とする。
【0019】
請求項7記載の発明は、画像データを圧縮する画像圧縮方法であって、
画像データの連続した複数ビットの単位(以下、この単位を画像パターンと記す)及びそれに続く少なくとも1のビットが順次入力され、入力された各画像パターン内で閉じるラン長を算出する処理を行う第1の処理工程と、
前記第1の処理工程により算出されたラン長に基づき、繰り返しのないラン長と、繰り返しのあるラン長及びその繰り返し数を求める処理を行う第2の処理工程と、
前記第2の処理工程により求められたラン長及びラン長の繰り返し数に対する符号化処理を、画像パターンに対応したワード毎に行う第3の処理工程と、
前記第2の処理工程により求められたラン長及びラン長の繰り返し数に基づいて、前記第3の処理工程によって符号化されるワードの符号長を算出し、算出した符号長が所定の閾値を超えるか否かの判定を行う第4の処理工程とを有し、
前記第3の処理工程は、前記第4の処理工程によって符号長が前記閾値を超えないと判定されたワードに対する符号化処理では、該ワードにおけるラン長をランレングス符号により、ラン長の繰り返し数を反復符号により、それぞれ符号化するが、前記第4の処理工程によって符号長が前記閾値を超えると判定されたワードに対する符号化処理ではパス符号化を行い、
前記第1の処理工程は、入力された画像パターン内で閉じないラン長を累積加算する工程を含むことにより、複数の画像パターンにまたがるラン長を算出することを特徴する。
【0020】
請求項8記載の発明は、請求項6又は7記載の発明に係る画像圧縮方法であって、
前記第4の処理工程は、前記第2の処理工程により求められたラン長及びラン長の繰り返し数に基づき算出した、前記第3の処理工程によって符号化されるワードの符号長を、該ワードにおいて閉じていない途中のラン長及びラン長の繰り返し数の符号の分を含めるように補正する工程を含み、該補正する工程によって補正後の符号長が前記閾値を超えるか否かの判定を行うことを特徴とする。
【0021】
請求項9記載の発明は、請求項8記載の発明に係る画像圧縮方法であって、
さらに、前記第 1 の処理工程によって算出されたラン長に基づき、前記第3の処理工程によって符号化されるワードの次のワードでパス符号化が行なわれるか否かの判定を行う第5の処理工程を有し、
前記第4の処理工程における前記補正する工程による符号長の補正量が、前記第5の処理工程による判定結果に応じて制御される、ことを特徴とする。
【0022】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態を説明する。ここでは、本発明を多色画像形成装置に適用した例について説明する。
【0023】
《多色画像形成装置の概略構成》
図1は、本発明を実施した多色画像形成装置の全体的構成の一例を示す概略断面図である。
【0024】
この多色画像形成装置において、1は像担持体としてのベルト状の感光体であり、この感光体1は回転ローラ2,3により回動可能に支持され、各回転ローラ2,3の駆動により矢示A方向に回動される。感光体1の外周部には、帯電手段としての帯電装置4,除電ランプL,感光体1用のクリーニングブレード15Aが配置されている。帯電装置4の下流位置には、光書込手段としてのレーザ書き込みユニット5より発せられるレーザ光が照射される光書き込み部がある。
【0025】
この光書き込み部より下流位置に、複数の現像ユニット(現像手段)が切り換え自在に支持された多色現像装置6が配置されている。この多色現像装置6は、収容するトナーの色毎に、イエロー現像ユニット,マゼンダ現像ユニット,シアン現像ユニットを備えている。多色現像装置6の上部には、黒色トナーを収容したブラック現像ユニット7が備えられている。
【0026】
これら各現像ユニットのいずれか1つが対応する色の現像タイミングに同期し、現像可能な位置に移動する。多色現像装置6は、円周上120度の回転によっていずれかの現像ユニットを選択する機能を有している。そして、これらの現像ユニットが稼動するときには、ブラック現像ユニット7は感光体1より離間した位置に移動する。その移動は、カム45の回転により行なわれる。
【0027】
レーザ書き込みユニット5は、図示しないレーザ光源から複数色の画像形成信号(書き込み情報)に応じたレーザ光を順次発生させ、ポリゴンモータ5Aによって回転させられるポリゴンミラー5Bを用いて、そのレーザ光を周期的に偏向させ、fθレンズ5C及びミラー5Dなどを経て、帯電された感光体1の表面を走査し、その表面に静電潜像を形成させる。
【0028】
感光体1の表面に形成される静電潜像は、対応する現像ユニットからのトナーによって現像され、トナー画像が形成・保持される。中間転写ベルト10は、感光体1に隣接しており、回転ローラ11,12により矢示B方向に回動可能に支持されている。感光体1上のトナー画像は、中間転写ベルト10の裏側にある転写ブラシ(第1の転写手段)13により、中間転写ベルト10の表面に転写される。
【0029】
感光体1の表面は、1色毎にクリーニングブレード15Aによりクリーニングされ、所定色のトナー画像が形成される。そして、その都度、中間転写ベルト10の1回動毎に、中間転写ベルト10の表面の同じ位置に感光体1上のトナー画像が転写されるとこにより、中間転写ベルト10上に複数色のトナー画像が重ね合わせられて保持される。その後、そのトナー画像は用紙やプラスチック等の記録媒体に転写される。
【0030】
用紙への転写に際しては、給紙装置(給紙カセット)17に収納されている用紙が給紙ローラ18によって繰り出されて搬送ローラ19により搬送され、レジストローラ対20に付き当てられた状態で一旦停止させられた後、トナー画像の転写位置が正しくなるようにタイミングがとられて中間転写ベルト10と転写ローラ(第2の転写手段)14のニップに再搬送される。そして、その用紙は転写ローラ14の作用により中間転写ベルト10上の複数色のトナー画像が一括転写された後、定着装置50に送られ、そこでトナー像が定着された後、排紙ローラ対51により本体フレーム9の上部の排紙スタック部52に排出される。
【0031】
中間転写ベルト10には、回転ローラ11の部位に中間転写ベルト10用のクリーニング装置16が設けられ、クリーニングブレード16Aがクリーニングブレード接離用アーム16Cを介して接離自在の構成となっている。このクリーニングブレード16Aは、感光体1からトナー画像を受け取る工程では中間転写ベルト10から離れ、中間転写ベルト10より用紙にトナー画像が転写された後に接触し、用紙にトナー画像が転写された後の残留トナーをかきとる。
【0032】
感光体1用のクリーニングブレード及び中間転写ベルト10用のクリーニングブレード16Aによってかきとられた廃トナーは、回収容器15に収納される。この回収容器15は適宜交換される。中間転写ベルト10用のクリーニング装置16の内部に設けられたオーガ16Bが、クリーニングブレード16Aでかきとられた廃トナーを搬送し、図示しない搬送手段で回収容器15に送られる。
【0033】
感光体1,帯電装置4,中間転写ベルト10,クリーニング装置16,用紙搬送路を形成する搬送ガイド30などは、ユニット化されたプロセスカートリッジ31に一体的に組み込まれ、寿命到来時に交換できるように構成されている。プロセスカートリッジ31のほかに、多色現像装置6,ブラック現像ユニット7なども寿命到来時に交換するが、その交換やジャム紙の処理を容易にするため、本体の一部の前フレーム8は支軸9Aを中心に開閉可能に回動できる構造としてある。
【0034】
多色画像形成装置の内部には電装・制御装置60も収納され、その上方には、機内の温度過昇防止のために排風するファン58が備えられている。また、プロセスカートリッジ31の上方には、給紙装置(給紙カセット)17とは別に比較的小規模な給紙装置59が備えられている。なお、この実施形態では、中間転写体として中間転写ベルト10を使用したが、これに限らず、例えば中間転写ドラムを使用することもできる。
【0035】
《電装・制御装置60》
前記多色画像形成装置の電装・制御装置60について説明する。図2は、電装・制御装置の構成の一例を示すブロック図である。
【0036】
図2において、101は主にメモリ110を操作をするメモリアクセラレータである。このメモリアクセラレータ101は、CPU108の制御下で、ネットワークを介してホストコンピュータから画像データを受け取り、その符号化などの処理を行い、結果データをメモリ110へ転送し、また、取り込んだ画像データをプリンタエンジンコントローラ112へ転送してプリンタエンジン113でプリントアウトさせる等の動作を行う。この様な動作の際に、各ホストとの通信、メモリ110の制御、パネル115から操作された情報の入力、プリンタエンジンコントローラ112などの周辺機器とのバスコントロールなどを行う。メモリ110は、画像データとその符号データ、CPU108のプログラムなどの格納に利用される。
【0037】
メモリアクセラレータ101は、バス116に接続されたパネルコントローラ114、プリンタエンジンコントローラ112、その他図示しない周辺機器のコントローラとのバス調停を行うバスコントローラ102と、メモリ110と内部の各種コントローラ間の調停を行うメモリアービター103と、各種のプログラムや文字などのフォント情報を格納しているROM105などのインターフェースであるローカルインターフェース(I/F)104と、CPU108とのインターフェースであるCPUインターフェース107と、メモリ110のアクセス制御を行うメモリコントローラ109と、ネットワークとの通信の制御を行う通信コントローラ111と、メモリ110などから取り込んだ画像データ/符号データの圧縮/伸長を行うための本発明による画像圧縮/伸長装置106と、メモリアービター103に接続された各コントローラ間のダイレクトメモリアクセス(DMA)を行うDMAコントローラ117などから構成される。パネル115は、ユーザが多色画像形成装置に対し操作指示などを入力するために利用される。
【0038】
圧縮/伸長装置106は、圧縮処理のための画像圧縮装置106eと伸長処理のための画像伸長装置106dからなる複合装置である。ただし、画像圧縮装置106eと画像伸長装置106dのハードウェアが必ずしも完全に独立している必要はなく、一部のハードウェアが圧縮処理と伸長処理に共用されるような構成とすることも可能であることは当然である。
【00392】
《画像圧縮装置106e》
以下、本発明の画像圧縮装置106eの一実施例について説明するが、その構成の説明に先立って、符号フォーマットと符号化例について説明する。
【0040】
本実施例においては、図11に示すような4ビットごとのフォーマットの符号を出力する(ただし、符号のフォーマットは、これに限られるものではなく、何ビットごとでも良い)。図11に示すように9種類の符号形式がある。L〜L3はラン長(ランレングス)を表すランレングス符号であり、N1〜N3は繰り返し数を表す反復符号である。P0,P1はパス(PASS)符号である。本発明においては、最悪圧縮時の符号量の膨張を抑制するため、符号化しようとするワードにおいて、符号量が所定の閾値を越えたるときには、パス(PASS)符号化を行い、ランレングス符号、反復符号に代えてPASS符号を生成する。
【0041】
ランレングス符号のL1符号は、4ビット幅であり、1から8までのラン長を表現する。ただし、L1符号の表す数値はラン長から1を引いた値である。L2符号は8ビット幅であり、9から40までのラン長を表現する。ただし、L2符号の下位5ビットの表す数値は、ラン長から9を引いた値である。L3符号は4の倍数ビット(8ビット以上)のビット幅であり、F0〜Fnを連接して表される数値は、ラン長から40を引いた値である。
【0042】
反復符号のN1符号は4ビット幅であり、繰り返し数1を表す。N2符号は4ビット幅であり、繰り返し数2を表す。N3符号は、8ビット以上の4の倍数ビットのビット幅であり、F0〜Fnを連接して表される数値は、繰り返し数から4を引いた値である。繰り返し数3は、N1符号とN2符号の組み合わせによって符号化される(その符号量はN3符号による最低符号量と同じである)。
【0043】
PASS符号のP0,P1符号は、12ビット幅であり、その5ビット目から8ビット目に8ビット画像データの上位4ビット(LEFT)、9ビット目から12ビット目に8ビット画像データの下位4ビット(RIGHT)が格納される。
【0044】
PASS符号化の例を図12及び図13に示し説明する。本発明では、ラン長とその繰り返し数を符号化するが、符号量の膨張を防止するため、各ワードにおける符号量(符号長)が所定の閾値(PASS符号化閾値)を越えた場合にPASS符号を生成する。この例では、PASS符号化閾値は8ビットデータの1.5倍としている。
【0045】
例1では、4番目のワードの符号量が6である。これは、1つの符号は4ビットであるため6×4=24ビットであり、8ビットデータの3倍の符号量となるので、下段のようにPASS符号化され、符号量は3に抑えられる。
【0046】
例2は、PASS符号化するワードをラン長がまたいだ例である。この例でも、4番目のワードの符号量が5であり、これは20ビットで8ビットデータの2.5倍の符号量となるため、下段のようにPASS符号化される。この時、前のラン長がPASS符号により切断され、前のワードでは新たなラン長”3”が生成される。
【0047】
例3は、PASS符号化するワードを繰り返しがまたいだ例である。この例でも、4番目のワードの符号量が4であり、これは16ビットで8ビットデータの2.0倍の符号量となるため下段のようにPASS符号化される。この時、前の繰り返しがPASS符号により切断され、前のワードでは新たな繰り返し数”5”が生成される。
【0048】
例4は、PASS符号化するワードより繰り返しが生成された例である。この例でも、4番目のワードの符号量が5であり、これは20ビット8ビットデータの2.5倍の符号量となるため、下段のようにPASS符号化される。この時、前のランレングスがPASS符号により切断され、前のワードでは新たな繰り返し数”5”が生成される。
【0049】
図3を参照する。図3は、画像圧縮装置106eの全体構成を示すブロック図である。図3において、202は画像読み込み部であり、メモリ110より、並列処理されるビット数単位で画像データ(2値画像データ)を読み込む。本実施例の画像圧縮装置106eは、8ビット単位で並列処理するので、画像読み込み部202は8ビット単位で画像データを読み込む。本明細書においては、8ビットの画像データを画像パターンもしくは単にパターンとも呼ぶ。なお、カラー画像データを扱う場合には、各色版ごとに別々に処理される。
【0050】
203はラン長処理装置であり、画像読み込み部202により読み込まれた画像データを、ラン長(ランレングス)、すなわち0値のラン又は1値のランの長さに変換する。
【0051】
204はNEXTワードチェック処理装置であり、次のワードの符号長や、また全て繰り返しであるかなどの条件を求め、今のワードのPASS符号化の判定における緩和信号を求める。
【0052】
205はPASS判定&繰り返し処理装置であり、ラン長処理装置203より転送されるラン長の繰り返しを計算し、複数の繰り返し数とラン長を求め、求めたラン長と繰り返し数から符号長を求め、その符号長をPASS符号化閾値と比較することによりPASS符号化判定を行う。この時に、NEXTワードチェック処理装置204からPASS判定の緩和信号を受け取り、それをPASS符号化判定に反映させる。そして、判定結果と、実データと、求めた複数のラン長と繰り返し数を符号化処理装置206へ転送する。符号化処理装置206は、PASS判定&繰り返し処理装置205より転送されるラン長と繰り返し数を符号化する。207は符号書き込み部であり、符号化処理装置206より出力される符号データをメモリ110に書き込む。
【0053】
以下、画像圧縮装置106eを構成する前記各ブロックについて詳細に説明する。ただし、前述のように、8ビット並列に処理する場合である。
【0054】
《画像圧縮装置の画像読み込み部202》
図4は、画像読み込み部202のブロック図である。図4において、211はメモリ110より読み込んだ8ビットの画像データを格納するレジスタである。212はレジスタ211にパイプライン接続されたレジスタである。レジスタ212に格納されたデータが現在処理されるデータであり、IDOT[7:0]としてラン長処理装置203に入力される。レジスタ211に格納されたデータは次に処理されるデータであり、そのMSB(次のデータの最初のビット)がNDOTとしてラン長処理装置203へ入力される。213はメモリ110の読み出しアドレスを生成するアドレス生成器である。
【0055】
《画像圧縮装置のラン長処理装置203》
図5はラン長処理装置203のブロック図である。このラン長処理装置203は、画像読み込み部202から入力される8ビットの画像パターン(IDOT)と次のパターンの最初のビット(NDOT)に基づいて、2つのランカウント221,222により、IDOTの上位4ビット(IDOT[7:4])と下位4ビット(IDOT[3:0])のそれぞれごとに、複数のラン長と、そのラン長が有効か否か(閉じているか否か)を示すマスク値と、次に繰り越されるラン長をそれぞれ求め、それらラン長を、Leftラン値生成装置223及びRightラン値生成装置224により、8ビットでの8個のラン長の位置へ修正し、さらに、ラン値合成装置226により、同じ位置のラン長を加算して1組の8個のラン長を求める。さらに、加算器227,228からなる累積加算処理装置で、処理対象のパターン(IDOT)での最初のラン長(RUN7)に今まで繰り越されたラン長を加算するか、続けて繰り越すかを判断することにより、閉じた複数のラン長とマスク値を生成する。以下、各部について詳細に説明する。
【0056】
ランカウント221は、現在処理対象となっている8ビットの画像パターンの上位4ビット(IDOT)と、下位4ビットの最初の1ビット(NDOTとして)を受け取り、最大4個のラン長(LRUN3〜LRUN0)と、それら各ラン長が有効か(閉じているか)無効かを示すフラグであるマスク値(LDMASK3〜LDMASK0)を出力する。また、図中では省略されているが、次に繰り越されるラン長(LRUNX)と、4ビット(IDOT)全てが0又は1で、かつ、下位の最初のビット(NDOT)が、それと同じ値であるときに1となるフラグ(LAFL)を出力する。
【0057】
ランカウント222は、現在処理対象となっている8ビットの画像パターンの下位4ビット(IDOT)と、次の画像パターンの最上位の1ビット(NDOTとして)を受け取り、最大4個のラン長(RRUN3〜RRUN0)と、それら各ラン長が有効か無効かを示すフラグであるマスク値(RDMASK3〜RDMASK0)を出力する。また、図中では省略されているが、次に繰り越されるラン長(RRUNX)と、4ビット(IDOT)全てが0又は1で、かつ、次の画像パターンの最上位ビット(NDOT)が、それと同じ値であるときに1となるフラグ(RAFL)を出力する。
【0058】
各ランカウント221,222の処理フローを図15及び図16に示す。このフローチャートはランカウント221,222に共通しているため、ラン長、フラグは、その先頭の文字L,Rが除かれた形で表記されている。
【0059】
各ランカウントは、IDOTの4ビットが”0000”であり、かつ、NDOTの1ビットが”0”であるか判定し(ステップS1)、条件が成立するときにはラン長RUN3〜RUN0=x(xは符号を出力しないことを意味する、以下同様)、マスク値DMASK3〜DMASK0=0(無効)、フラグAFL=1、繰り越されるラン長RUNX=4を出力し(ステップS2)、現在の4ビットに対する処理を終了(リターン)する。
【0060】
ステップS1で条件が不成立のときには、IDOTの4ビットが”0001”で、かつ、NDOTの1ビットが”1”であるか判定する(ステップS3)。条件が成立したときには、ラン長RUN3=3、RUN2〜RUN0=x、マスク値DMASK3=1、DMASK2〜DMASK0=0、繰り越されるラン長RUNX=1、フラグAFL=0に設定し(ステップS4)、処理を終了する。条件が不成立ならばステップS5に進み、条件判定を行う。以下、図示の条件判定が条件成立まで順に行われ、成立した条件に対応した処理がなされる。なお、条件の判定順は図示した順に限定されない。
【0061】
図5に戻り説明を続ける。Leftラン値生成装置223は、ランカウント221からのラン長LRUN3〜LRUN0、マスク値LDMASK3〜LDMASK0、繰り越されるラン長LRUNX(不図示)及びフラグLAFL(不図示)、並びに、ランカウント222からのマスク値RDMASK3〜RDMASK0及びフラグRAFL(不図示)を受け取り、8ビット長での最大8個のラン長の場合の位置を計算し、最大8個のラン長RUN7L〜RUN0Lと繰り越されるラン長RUNLX(不図示)を求め出力する。
【0062】
Rightラン値生成装置224は、同様に、ランカウント222からのラン長RRUN3〜RRUN0、マスク値RDMASK3〜RDMASK0、繰り越されるラン長RRUNX(不図示)及びフラグRAFL(不図示)、並びに、ランカウント221からのマスク値LDMASK3〜LDMASK0及びフラグLAFL(不図示)を受け取り、8ビット長での最大8個のラン長の場合の位置を計算し、最大8個のラン長RUN7RL〜RUN0Rと繰り越されるラン長RUNRX(不図示)を求めて出力する。また、フラグLAFL,RAFLが共に”1”のときに”1”、それ以外では”0”となるフラグAFL(不図示)も出力する。
【0063】
Rightラン値生成装置224の処理フローを図19及び図20に示す。フラグRAFLとフラグLAFLが共に”1”であるか判定する(ステップS201)。つまり8ビットの画像パターンがオール”0”又は”1”であるか判定する。
【0064】
この条件が成立するならば、ラン長RUN7R=8、RUN6R〜RUN0R=0、繰りされるラン長RUNRX=RRUNX、フラグAFL=1をそれぞれ出力し(ステップS202)、現在の画像パターンの処理を終了(リターン)する。つまり、ラン長は終端していないため、そのラン長(つまり全ビット数の8)をRUNRXに設定する。
【0065】
ステップS201の条件が不成立ならば、ラン長のマスク値LDMASK3〜LDMASK0=0、かつ、RDMASK3=1、かつ、RDMASK2〜RDMASK0=0であるか判定する(ステップS203)。つまり、上位4ビット(LEFT)にラン長が存在せず、下位4ビット(RIGHT)に1つのラン長が存在することを判定する。
【0066】
この条件が成立するならば、ラン長RUN7R=RRUN3、RUN6R〜RUN0R=0、繰り返されるラン長RUNRX=RRUNX、フラグAFL=0をそれぞれ出力し(ステップS204)、現在の画像パターンの処理を終了(リターン)する。つまり、RIGHTに存在する1つのラン長をRUN7Rに設定し、終端していない途中のラン長の値をRUNRXに設定する。
【0067】
ステップS203の条件が不成立ならば、ステップS205で、LEFTにラン長が存在せず、RIGHTに2つのラン長が存在するか判定する。この条件が成立するならば、ステップS206で、その2つのラン長を設定し、RUNRXに終端していない途中のラン長を設定する。
【0068】
ステップS205の条件が成立しないならば、ステップS207で、LEFTにラン長が存在せず、RIGHTに3つのラン長が存在するか判定する。この条件が成立するならば、ステップS208で、その3つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0069】
ステップS207の条件が不成立ならば、ステップS209で、LEFTにラン長が存在せず、RIGHTに4つのラン長が存在するか判定する。この条件が成立するならば、ステップS210で、その4つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0070】
ステップS209の条件が不成立ならば、ステップS211で、LEFTにラン長が1つ存在し、RIGHTにラン長が存在しないか判定する。この条件が成立するならば、ステップS212で、その1つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0071】
ステップS211の条件が不成立ならば、ステップS213で、LEFTにラン長が1つ存在し、RIGHTに1つのラン長が存在することを判定する。この条件が成立するならば、ステップS214で、その1つのラン長を1つおいた位置に設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0072】
ステップS213の条件が不成立ならば、ステップS215で、LEFTにラン長が1つ存在し、RIGHTに2つのラン長が存在するか判定する。この条件が成立するならば、ステップS216で、その2つのラン長を1つおいた位置に設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0073】
ステップS215の条件が不成立ならば、ステップS217で、LEFTにラン長が1つ存在し、RIGHTに3つのラン長が存在するか判定する。この条件が成立するならば、ステップS218で、1つおいた位置に、その3つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0074】
ステップS217の条件が不成立ならば、ステップS219で、LEFTにラン長が1つ存在し、RIGHTに4つのラン長が存在するか判定する。この条件が成立するならば、ステップS220で、1つおいた位置に、その4つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0075】
ステップS219の条件が不成立ならば、ステップS221で、LEFTにラン長が2つ存在し、RIGHTにラン長が存在しないか判定する。この条件が成立するならば、ステップS222で、RUNRXに終端していない途中のラン長の値を設定する。
【0076】
ステップS221の条件が不成立ならば、ステップS223で、LEFTにラン長が2つ存在し、RIGHTに1つのラン長が存在することを判定し、この条件が成立するならば、ステップS224で、2つおいた位置に、その1つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0077】
ステップS223の条件が不成立ならば、ステップS225で、LEFTにラン長が2つ存在し、RIGHTに2つのラン長が存在するか判定し、その条件が成立するならば、ステップS226で、2つおいた位置に、その2つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0078】
ステップS225の条件が不成立ならば、ステップS227で、LEFTにラン長が2つ存在し、RIGHTに3つのラン長が存在するか判定し、この条件が成立するならば、ステップS228で、2つおいた位置に、その3つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0079】
ステップS227の条件が不成立ならば、ステップS229で、LEFTにラン長が2つ存在し、RIGHTに4つのラン長が存在するか判定する。この条件が成立するならば、ステップS230で、2つおいた位置に、その4つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0080】
ステップS229の条件が不成立ならば、ステップS231で、LEFTにラン長が3つ存在し、RIGHTにラン長が存在しないか判定する。この条件が成立するならば、ステップS232で、RUNRXに終端していない途中のラン長の値を設定する。
【0081】
ステップS231の条件が不成立ならば、ステップS233で、LEFTにラン長が3つ存在し、RIGHTに1つのラン長が存在するか判定する。この条件が成立するならば、ステップS234で、3つおいた位置に、その1つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0082】
ステップS233の条件が不成立ならば、ステップS235で、LEFTにラン長が3つ存在し、RIGHTに2つのラン長が存在するか判定し、この条件が成立するならば、ステップS236で、3つおいた位置に、その2つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0083】
ステップS235の条件が不成立ならば、ステップS237で、LEFTにラン長が3つ存在し、RIGHTに3つのラン長が存在するか判定する。この条件が成立するならば、ステップS238で、3つおいた位置に、その3つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0084】
ステップS237の条件が不成立ならはせ、ステップS239で、LEFTにラン長が3つ存在し、RIGHTに4つのラン長が存在するか判定する。この条件が成立するならば、ステップS240で、3つおいた位置に、その4つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0085】
ステップS239の条件が不成立ならば、ステップS241で、LEFTにラン長が4つ存在し、RIGHTにラン長が存在しないか判定する。この条件が成立するならば、ステップS242で、RUNRXに終端していない途中のラン長の値を設定する。
【0086】
ステップS241の条件が不成立ならば、ステップS243で、LEFTにラン長が4つ存在し、RIGHTに1つのラン長が存在するか判定する。この条件が成立するならば、ステップS244で、4つおいた位置に、その1つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0087】
ステップS243の条件が不成立ならば、ステップS245で、LEFTにラン長が4つ存在し、RIGHTに2つのラン長が存在するか判定する。この条件が成立するならば、ステップS246で、4つおいた位置に、その2つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0088】
ステップS245の条件が不成立ならば、ステップS247で、LEFTにラン長が4つ存在し、RIGHTに3つのラン長が存在するか判定する。この条件が成立するならば、ステップS248で、4つおいた位置に、その3つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0089】
ステップS247の条件が不成立ならば、ステップS249で、LEFTにラン長が4つ存在し、RIGHTに4つのラン長が存在することを判定する。この条件が成立するならば、ステップS250で、4つおいた位置に、その4つのラン長を設定し、RUNRXに終端していない途中のラン長の値を設定する。
【0090】
Leftラン値生成装置223の処理内容をフローチャートとして図21に示す。フラグRAFL,LAFLが共に”1”であるか判定する(ステップS301)。つまり、現在処理対象の8ビット画像パターンがオール”0”又はオール”1”であるかの判定を行う。ステップ301の条件が成立したときには、つまり、上位4ビット(LEFT)には終端するラン長がないときには、ラン長RUN7L〜RUN0L=0、繰り返されるラン長RUNLX=0をそれぞれ出力し(ステップS302)、現在の画像パターンの処理を終了(リターン)する。なお、この4ビットのラン長4がRUNLXに設定されないのは、そのラン長がRightラン値生成装置224で処理されるためである。
【0091】
ステップS301の条件が不成立ならば、ラン長のマスク値LDMAX3〜LDMAX0=0であるか判定する(ステップS303)。条件成立ならば、上位4ビット(LEFT)には終端するラン長がないので、ラン長RUN7L〜RUN0L=0、繰り返されるラン長RUNLX=0をそれぞれ出力し(ステップS304)、現在の画像パターンの処理を終了(リターン)する。
【0092】
ステップS303の条件が不成立ならば、マスク値LDMASK3=1かつLDMASK2〜LDMASK0=0かつRDMASK3〜RDMASK0=0であるか判定する(ステップS305)。つまり、上位4ビット(LEFT)に1つのラン長が存在し、下位4ビット(RIGHT)に終端するラン長が存在しないことを判定している。この条件が成立するならば、ラン長RUN7L=LRUN3、RUN6L=LRUNX、RUN5L〜RUN0L=0、繰り越されるラン長RUNLX=LRUNXをそれぞれ出力し(ステップS306)、処理を終了する。
【0093】
ステップS305の条件が不成立の場合には、ステップS307で、LEFTに1つのラン長が存在し、RIGHTに終端するラン長が1つ以上存在することを判定する。この条件が成立したときには、ステップS308で、1つのラン長を設定し、かつ2つ目のラン長にLEFTの終端していない途中のラン長の値を設定する。
【0094】
ステップS307の条件が不成立ならば、ステップS309で、LEFTに2つのラン長が存在し、RIGHTに終端するラン長が存在しないことを判定する。この条件が成立するならば、ステップS310で、その2つのラン長を設定し、継続するラン長をRUNLXに設定する。
【0095】
ステップS309の条件が不成立ならば、ステップS311で、LEFTに2つのラン長が存在し、RIGHTに終端するラン長が1つ以上存在することか判定する。この条件が成立するならば、ステップS312で、その2つのラン長を設定し、かつ、3つ目のラン長にLEFTの終端していない途中のラン長を設定する。
【0096】
ステップS311の条件が不成立ならば、ステップS313で、LEFTに3つのラン長が存在し、RIGHTに終端するラン長が存在しないことを判定する。この条件が成立するならば、ステップS314で、その3つのラン長を設定し、継続するラン長をRUNLXに設定する。
【0097】
ステップS313の条件が不成立ならば、ステップS315で、LEFTに3つのラン長が存在し、RIGHTに終端するラン長が1つ以上存在することを判定する。この条件が成立するならば、ステップS316で、その3つのラン長を設定し、かつ、4つ目のラン長にLEFTの終端していない途中のラン長の値を設定する。
【0098】
ステップS315の条件が不成立ならば、ステップS317で、LEFTに1つのラン長が存在し、RIGHTに終端するラン長が存在しないことを判定する。この条件が成立するならば、ステップS318で、その1つのラン長を設定し、継続するラン長をRUNLXに設定する。
【0099】
ステップS317の条件が不成立ならば、ステップS319で、LEFTに4つのラン長が存在し、RIGHTに終端するラン長が1つ以上存在することを判定する。この条件が成立するならば、ステップS320で、その4つのラン長を設定し、かつ、5つ目のラン長にLEFTの終端していない途中のラン長の値を設定する。
【0100】
図5に戻って説明する。225はマスク値合成装置であり、ランカウント221からのマスク値LDMASK3〜LDMASK0と、ランカウント222からのマスク値RDMASK3〜RDMASK0とを合成し、8ビット長での8個のマスク値DMASK7〜DMASK0を求める。このマスク値合成装置225には、ランカウント221,222から出力されるフラグLAFL,RAFL(不図示)も入力される。
【0101】
このマスク値合成装置225の処理内容をフローチャートとして図17及び図18に示す。フラグRAFL,LAFLが共に”1”であるか判定し(ステップS101)、条件成立ならばマスク値DMASK7〜DMASK0=0を出力し(ステップS102)、処理を終了する。条件不成立ならば、LDMASK3=0かつRDMASK2=0であるか判定し(ステップS103)、条件成立ならばDMASK7=1、DMASK6〜DMASK0=0を出力し(ステップS104)、処理を終了する。条件不成立ならば、図示の条件判定が条件成立まで順に行われ、成立した条件に対応した処理がなされる。なお、条件の判定順は図示した順に限定されない。
【0102】
再び図5において、ラン値合成装置226は、Leftラン値生成装置223からの最大8個のラン長RUN7L〜RUN0L、繰り越されるラン長RUNXL(不図示)と、Rightラン値生成装置224からの最大8個のラン長RUN7R〜RUN0R、繰りされるラン長RUNXR(不図示)とから、最大8個のラン長RUN7〜RUN0、繰り越されるラン長RUNXを生成する。このラン長の合成とは、図22のフローチャートに示すように、対応したラン長同士を単純に加算する処理である。合成されたラン長RUN6〜RUN0はRRUN6〜RRUN0としてレジスタ229に格納されるとともに、CRUN6〜CRUN0としてNEXTワードチェック処理装置204へ送られる。合成されたラン長RUN7と、繰り越されるラン長RUNXは累積加算処理装置の加算器227,228の一方の入力へそれぞれ与えられる。Rightラン値生成装置224より出力されたフラグAFLは加算器228に制御入力として与えられる。
【0103】
加算器228は、フラグAFLが”1”の場合に、繰り越されるラン長RUNXとレジスタ229に格納されている今までの繰越しラン長の合計RBRUN7を加算し、その結果を繰越しラン長の合計としてレジスタ229に格納する。フラグAFLが”0”の場合には、加算器228を通じて、繰り越されるラン長RUNXが今までの繰越しラン長の合計RBRUN7としてレジスタ229に格納される。
【0104】
加算器227は、最初のランRUN7と今まで繰越しラン長の合計RBRUN7を加算し、今まで繰越しラン長を考慮したラン長を求める。この加算結果は、ラン長RRUN7としてレジスタ229に格納されるとともに、CRUN7としてNEXTワードチェック処理装置204へ送られる。現在の処理対象の画像パターンの8ビットIDOT、マスク値合成装置225により合成されたマスク値DMASK7〜DMASK0も、それぞれODOT、RDMASK7〜RDMASK0としてレジスタ2229に格納される。レジスタ229の内容は、PASS判定&繰り返し処理装置205へ送られる。
【0105】
図14に、ラン長処理装置203の処理例を示し説明する。図14の最上段は処理されるデータであり、白丸は”0”、黒丸は”1”を表す。このように2値の画像データは、8ビット毎にラン長処理装置203に取り込まれ並列に処理される。
【0106】
1)は1つ目の画像パターンの処理であり、8ビットの画像パターンを上位4ビット(LEFT)、下位4ビット(RIGHT)に分割し処理を進める。LEFTの4ビットでは、ランカウント221により3つのラン長”2”,”1”,”1”が求められ、RIGHTの4ビットでは、ランカウント222により1つのラン長”2”が求められる。LEFTのラン長はLeftラン値生成装置223により8個のラン長に展開され、RIGHTのラン長はRightラン値生成装置224により8個のラン長に展開される。RIGHTのラン長はLEFTのラン長分ずらして作成する。次にラン値合成装置226により、LEFT、RIGHTのラン長が加算されて8個のラン長(RUNLENMGS)が生成される。
【0107】
2)は2つ目の画像パターンの処理であり、LEFTでは1つのラン長”5”が、RIGHTでは0個のラン長が求められる。次にLeftラン値生成装置223によりLEFTの8個のラン長に、Rightラン長生成装置224によりRIGHTの8個のラン長に、展開される。RIGHTのラン長はLEFTのラン長分ずらして作成する。次にラン値合成装置226によりLEFT、RIGHTのラン長が加算され、8個のラン長が生成される。この例では、1つ前のRIGHTで求められた余りのラン長が今回のLEFTで閉じる。
【0108】
3)は3つ目の画像パターンの処理であり、LEFTでは0個のラン長が、RIGHTでは1個のラン長”11”が求められる。次にLeftラン値生成装置223によりLEFTの8個のラン長に、Rightラン値生成装置224によりRIGHTの8個のラン長に、それぞれ展開される。RIGHTのラン長はLEFTのラン長分ずらして8個のラン長を作成する。次にラン値合成装置226によりLEFT、RIGHTのラン長が加算され、8個のラン長が生成される。この例では、1つ前のRIGHTで求めた余りのラン長が今回のLEFTをとおしRIGHTで閉じる。
【0109】
《NEXTワードチェック処理装置204》
図6は、NEXTワードチェック処理装置204のブロック図である。このNEXTワードチェック処理装置204は、現在符号化中のワードの次のワードがすべて繰り返しであるかを判定する。この判定のために最大8個のラン長を受け取り、有効のラン長が、それぞれ2つ前のラン長と全て一致する場合に、その出力であるRELAXFLを”1”にすることにより、PASS判定&繰り返し処理装置205内のPASS判定装置のPSS判定の緩和を制御する。以下、NEXTワードチェック処理装置204の各部について説明する。
【0110】
図6において、231は比較器であり、符号化するワードの最後から2番目のラン長WCRF2と次のワードでの1番目のラン長CRUN7とを比較し、一致するか判定する。AND回路232、OR回路233及びインバータ234により、CDMASK7の値が”1”の場合に、比較器231の判定出力がAND回路264に送られ、CDMASK7の値が”0”場合は”1”がAND回路264へ送られる。
【0111】
235は比較器であり、符号化するワードの最後から1番目のラン長WCRF1と次のワードでの2番目のラン長CRUN6とを比較し、一致するか判定する。AND回路236、OR回路237及びインバータ238により、CDMASK6が”1”の場合は比較器235の判定出力がAND回路264に送られ、CDMASK6が”0”の場合は”1”がAND回路264に送られる。
【0112】
239は比較器であり、符号化するワードの次のワードでの3番目のラン長CRUN5と1番目のラン長CRUN7を比較し、一致するか判定する。AND回路240、OR回路241及びインバータ242により、CDMASK5が”1”の場合は比較器239の判定出力がAND回路264に送られ、CDMASK5が”0”の場合は”1”がAND回路264に送られる。
【0113】
同様に、次のワードの4番目のラン長CRUN4、5番目のラン長CRUN3、6番目のラン長CRUN2、7番目のラン長CRUN1、8番目のラン長CRUN0についても、対応した比較器243,247,251,255,259によって比較され、その比較結果は対応したCDMASK4,CDMASK3,CDMASK2,CDMASK1,CDMASK0が”1”のときにAND回路264に送られる(”1”のとき”1”が送られる)。なお、244,248,252,256,260はAND回路、245,249,253,257,261はOR回路、246,250,254,258,262はインバータである。
【0114】
263はOR回路であり、8個のラン長のマスク値であるCDMASK7〜CDMASK0の論理和をとり、もし、8個のラン長の1つも有効でない場合にAND回路264に”0”を送る。AND回路264は、その全ての入力信号が”1”の場合に、その出力RELAXFLを”1”とする。このRELAXFLはPASS判定&繰り返し処理装置205の内部のPASS判定装置(後述)へ送られる。
【0115】
《画像圧縮装置のPASS判定&繰り返し処理装置205》
図7は、PASS判定&繰り返し処理装置205のブロック図である。このPASS判定&繰り返し処理装置205は、ラン長処理装置203で求めた複数のラン長と前パターンの後ろから2番目、1番目のラン長から、複数のラン長の繰り返し数を求める。処理の流れとしては、繰り返しフラグ生成装置271において、ラン長処理装置203で求めた複数のラン長と前パターンの後ろから2番目、1番目のラン長から各ラン長を比較し、ラン長処理装置203で求めた複数のラン長が、それぞれ2つ前のラン長と等しいかどうか判断して繰り返しフラグRFL7〜RFL0)を生成し、繰り返し数生成装置272において、繰り返しフラグRFL7〜RFL0のパターンと今までの繰り返し数REPから、今までの繰り返し数をどのように継続するか判断し、かつ新しい繰り返し数を計算し、複数の繰り返し数WREP7〜WREP0と、次のパターンへの繰り返し数WREPを求める。
【0116】
以下、PASS判定&繰り返し処理装置205の各部について説明する。
【0117】
繰り返しフラグ生成装置271は、ラン長処理装置203からの複数のラン長、そのマスク値、前パターンの2つ前のラン長と1つ前のラン長を受け取り、ラン長処理装置203からの各ラン長が2つ前のラン長と一致するか比較判定して繰り返しフラグRFL3〜RFL0を生成する。処理内容の詳細については、図25を参照して後述する。繰り返し数生成装置272は、繰り返しフラグ生成装置271からの繰り返しフラグRFL3〜RFL0と、今までの繰り返し数(REP)を受け取り、複数の繰り返し数を生成する。処理内容の詳細は、図24、図30乃至図32を参照して後述する。
【0118】
空き領域削除装置273は、繰り返し数生成装置272から受け取った複数の繰り返し数と複数のラン長から、繰り返し数生成装置272により繰り返しと判断され何も情報の入っていない(繰り返し数が0)部分をシフトし、WREP7、WWRUN7寄りに繰り返し数とラン長をつめる。
【0119】
274はPASS判定装置であり、空き領域削除装置273からの最大4個のラン長と最大4個の繰り返し数を受け取り、符号長を計算し、かつ、現在カウント途中のラン長BRUN7と、現在カウント途中の繰り返し数REP0と、NEXTワードチェック処理装置204からのPASS判定緩和信号であるRELAXFLを受け取り、符号長補正処理を行い、求めた符号長をPASS符号化の閾値と比較し、閾値より大きい場合にはPASS符号化フラグであるPASSFLを”1”にする。内部構成の詳細及び処理内容の詳細については、図8及び図33乃至図35を参照して後述する。
【0120】
275はマルチプレクサ(MUX)であり、PASSFLが”1”であれば、現在符号化しているワードの1つ前の途中のラン長と途中の繰り返し数とPASSFLをレジスタ276へ、つまり符号化処理装置206へ送る。また、PASSFLが”0”であれば、現在のワードの最大4個のラン長と最大4個の繰り返し数をレジスタ276へ、つまり符号化処理装置206へ送る。
【0121】
277はNEXTラン長生成装置であり、次に入力するパターンの繰り返しフラグの生成のために、今回入力したパターンの後ろから2番目のラン長と後ろから1番目のラン長を求める(処理内容の詳細は図27を参照して後述する)。このラン長はレジスタ278に格納され、次のパターンが入力した時に繰り返しフラグ生成装置271で利用される。
【0122】
このPASS判定&繰り返し処理装置205における繰り返し処理の例を図23により説明する。図23の最上段は処理される画像データであり、白丸は”0”、黒丸は”1”を意味する。この画像データは8ビット単位で並列に処理される。
1)は、1番目の8ビットを並列処理し、繰り返しを求める例である。OUTは、PASS判定&繰り返し処理装置205の出力であるDMASK,REP,RUNの項目番号を示す。DMASKは8つのランの有効フラグとしてのマスク値であり、”1”が有効であり、その項目にラン長、もしくは繰り返し数がある。REPは、繰り返し数であり、”0”はその項目が繰り返しではなくラン長であることを示す。RUNは、ラン長である。WORKは、PASS判定&繰り返し処理装置205の内部の主要信号であるRFL,WREPの項目番号を示す。RFLは、繰り返しフラグ生成装置271から出力される繰り返しフラグであり、その項目がラン長であれば0、繰り返しであれば1を、何もなければ2を示す。WREPは、繰り返し数生成装置272から出力される繰り返し数である。RF1は前回の最後のラン長であり、RF2はその前のラン長である。ここでは、最初の処理であるため、RF2、RF1は初期値0に設定されている(ラン長の0は有り得ない数値)。この例では、3つのラン長”3”,”2”,”2”があるが、繰り返しはない。
【0123】
2)は2つ目の8ビットの処理であり、5つのラン長”2”,”2”,”2”,”2”,”1”が入力されている。ここではまず、最初の”2”のラン長は、RF2の数値と一致し繰り返と認識され、つぎの”2”のラン長もRF1の数値と一致し繰り返と認識され、つぎの”2”のラン長も2つ前のラン長”2”と一致し繰り返と認識され、つぎの”2”のラン長も2つ前のラン長”2”と一致し繰り返と認識される。そのため、繰り返しフラグRFLは、7,6,5,4の項目において”1”となっている。3の項目は”0”であり、この繰り返しは、終端していることを示している。そのため、WREPに、終端した位置項目4で繰り返し数”4”を示している。つぎに、WREPは、項目7,6,5の空白が存在するので、空き領域削除装置273により、項目7,6,5の空白を削除して3つずらし、OUTのREPとRUNのようなる。この空き領域削除処理は、このように空白が生じた場合に、その空白を削除して詰めることにより、次の処理装置へ転送するときのフォーマットの規則を守るようにする。これにより、次工程の処理装置は単純なフォーマットでデータを受け取れるため、ハードウエアのゲート数を減らし、処理スピードの向上を図ることができる。
【0124】
3)は3つ目の8ビットの処理であり、6つのラン長”1”,”1”,”1”,”2”,”1”,”2”が入力されている。ここでは最初のラン長”1”はRF2と一致せずラン長と認識されるが、つぎのラン長”1”はRF1と一致し繰り返しと認識される。つぎのラン長”1”は2つ前のラン長”1”と一致し繰り返しと認識され、つぎのラン長”2”は2つ前のラン長”1”と比較され数値が一致しない為に繰り返しとは認識されない。そのため、繰り返しフラグRFLは6,5の項目において”1”となっている。4の項目は”0”であり、この繰り返しは終端していることを示している。そのため、WREPに、終端した位置項目5で繰り返し数”2”を示している。つぎのラン長”1”は2つ前のラン長”1”と一致し繰り返しと認識され、つぎのラン長”2”は2つ前のラン長”2”と一致し繰り返しと認識され、繰り返しフラグRFLは3,2の項目において”1”となっている。しかし、1の項目は”2”であり、この繰り返しはまだ継続していることを示している。そのため、WREPには繰り返し数が出力されない。
【0125】
図25に、繰り返しフラグ生成装置271の処理フローを示す。図25において、ステップS501でマスク値DMASK7が1であるか判定し、0であれば対応するラン長がないのでステップS503で繰り返しフラグRFL7に2を設定する。DMASK7が1であれば、ラン長が存在するため、ステップS502でRUN7と前パターンの後ろから2番目のラン長RF2と比較し、一致すればステップS505で繰り返しフラグRFL7に1を設定する。一致しなければ、ステップS505で繰り返しフラグRFL7に0を設定する。以下、DMASK6〜DMASK0、RUN6〜RUN0、RFL6〜RFL0について、同様の判定と、判定結果に応じた設定を行う。
【0126】
図24に繰り返し数生成装置272の処理フローを示す。また、図24中の繰り返し数REPの生成ステップS467の処理フローを図30乃至図32に示す。
【0127】
まず、図30から説明する。繰り返しフラグから複数の繰り返し数を求める処理である。繰り返し数は、それぞれの位置で繰り返しが途絶えた点で繰り返し数となる。
【0128】
ステップS401,S402,S403で、8ビット目の繰り返し数を求める。繰り返しフラグRF7が0であれば繰り返しフラグ生成装置271での比較結果が一致しないため、今までの繰り返し数を清算し、ステップS403で繰り返し数WREP7に今までの繰り返し数REPを代入する。RF7が1であれば、繰り返しが継続しているためステップS402で繰り返し数WREP7を0にする。
【0129】
ステップS404,S405,S406で、7ビット目の繰り返し数を求める。ステップS404で、繰り返しフラグRFL7が1、かつRFL6が0であると判定されると、ステップS406で繰り返し数WREP6に、今までの繰り返し数REPと今回の繰り返し数1(RFL7=1であるため)を加算した値を設定する。ステップS404で条件が成立しなければ、ステップS405で、繰り返し数WREP6を0にする。
【0130】
6ビット目の繰り返し数をステップS407〜S411で求め、5ビット目の繰り返し数をステップS412〜S418で求め、4ビット目の繰り返し数をステップS419〜S427で求め、3ビット目の繰り返し数をステップS428〜S438で求め、2ビット目の繰り返し数をステップS439〜S451で求め、1ビット目の繰り返し数をステップS452〜S466で求める。そして、ステップS467で、次のワードへ繰り越す繰り返し数REPを求める処理を行う。このステップS467の処理内容は、図30乃至図32のフローチャートに示す通りである。
【0131】
図30において、ステップS901で繰り返しフラグRFL7が2であるか判定する。FL7が2ならば、1番優先順位の高いラン長の値が決まらないため、ステップS905で今までの繰り返し数REPを保持する。
【0132】
RFL7が2でなければ、ステップS902で、繰り返しフラグRFL7が0、かつ、RFL6が2であるか判定する。この条件が成立するときには、1番優先順位の高いラン長は繰り返しではなく、それ以降にラン長はないため、ステップS906で繰り返し数REPを0に設定する。
【0133】
ステップS902の条件が成立しないときには、ステップS903で、繰り返しフラグRFL7が1、かつ、RFL6が2であるか判定する。この条件が成立するならば、1番優先順位の高いラン長は繰り返しであり、それ以降にラン長はないため、ステップS907で今までの繰り返し数REPに今回の繰り返し数1を加算した値を繰り返し数REPに設定する。
【0134】
ステップS903の条件が不成立ならば、ステップ904で、繰り返しフラグRFL6が0、かつ、RFL5が2であるか判定する。この条件が成立するならば、繰り返しフラグRFL7がどのような値でも、有効な終端(ここではRFL5が2であるためRFL6が終端)が0であれば、次パターンへ継続される繰り返し数は0になる。よって、ステップS908で繰り返し数REPに0を設定する。
【0135】
以下同様に、全ての組み合わせについて判定を行い、判定結果に従った繰り返し数の設定を行う。
【0136】
図27に、NEXTランレングス生成装置277の処理フローを示す。図27において、ステップS601で、優先順位の最も高いマスク値DMASK7が1であるか判定する。1でなければ(0である)、このパターンに閉じたラン長はないため、ステップS605で、前パターンの後ろから2番目、1番目をそのまま継続する。すなわち、WRF2にRF2の値を代入し、WRF1にRF1の値を代入する。
【0137】
DMASK7が1であり、ステップS602でDMASK6が1でない(0である)と判定された場合は、1つのみラン長が存在するため、ステップS606で後ろから2つ前のラン長WRF1にRUN7の値を代入し、後ろから1つ前のラン長WRF2に前パターンの後ろから1番目のRF1を代入する。
【0138】
DMASK6が1であり、ステップS603でDMASK5が1でないと判定された場合は、ラン長が2つだけ存在するため、ステップS607で、後ろから2つ前のラン長WRF1にRUN6の値を代入し、後ろから1つ前のラン長WRF2にRUN7の値を代入する。
【0139】
DMASK6が1であり、ステップS604でDMASK4が1でないと判定された場合は、ラン長が3つだけ存在するため、ステップS608で、後ろから2つ前のラン長WRF1にRUN5の値を代入し、後ろから1つ前のラン長WRF2にRUN6の値を代入する。
【0140】
DMASK4が1であり、ステップS609でDMASK3が1でないと判定された場合は、ラン長が4つだけ存在するため、ステップS613で、後ろから2つ前のラン長WRF1にRUN4の値を代入し、後ろから1つ前のラン長WRF2にRUN5の値を代入する。
【0141】
DMASK3が1であり、ステップS610でDMASK2が1でないと判定された場合は、ラン長が5つだけ存在するため、ステップS614で、後ろから2つ前のラン長にRUN3の値を代入し、後ろから1つ前のラン長にRUN4の値を代入する。
【0142】
DMASK2が1であり、ステップS611で、DMASK1が1でないと判定された場合には、ラン長が6つだけ存在するため、ステップS615で、後ろから2つ前のラン長にRUN2の値を代入し、後ろから1つ前のラン長にRUN3の値を代入する。
【0143】
DMASK1が1であり、ステップS612でDMASK0が1でないと判定されたならば、ラン長が7つだけ存在するため、ステップS616で、後ろから2つ前のラン長にRUN1の値を、後ろから1つ前のラン長にRUN2の値を代入する。
【0144】
ステップS612でDMASK0が1であると判定されたならば、ラン長が8つだけ存在するため、ステップS617で、後ろから2つ前のラン長にRUN0の値を代入し、後ろから1つ前のラン長にRUN1の値を代入する。
【0145】
図8は、PASS判定装置274のブロック図である。図8において、281は符号長処理装置であり、受け取った最大4個のラン長WWRUN3〜WWRUN0と、最大4個の繰り返し数WWREP3〜WWREP0と、それらラン長及び繰り返し数の有効フラグREPFL3〜REPFL0と、オーバーフラグOVERFL(ラン長、繰り返し数が4を越えた場合、符号長を調べるまでもなくオーバーしていることを示すフラグ)を受け取り、符号長を計算する。
【0146】
282は符号長補正装置282であり、符号長処理装置281で求められた符号長に、今符号化しているワードの、閉じていない途中のラン長BRUN7と途中の繰り返し数REP0と、NEXTワードチェック処理装置204からの抑制緩和フラグRELAXFLを受け取り、符号長の補正を行う。この符号長補正において、今符号化しているワード(この例では8ビット)において、閉じていない途中のラン長や、閉じていない途中の繰り返し数は、次のワードがPASS符号化であれば、ワードの境界で切られ(図12の例2、図13の例3と例4を参照)、途中のラン長、途中の繰り返しが閉じたラン長、閉じた繰り返しへ変化する。このため、次のワードの符号長を調べてPASS符号化するか否かを判断する必要があるが、これには次から次へと先のワードがPASS符号化するかを調べる必要があり、際限がない。そこで、基本的に次のワードはPASS符号化すると考え、閉じていない途中のラン長、途中の繰り返し数も符号長に加える符号長補正を行う。しかし、NEXTワードチェック処理装置204により、次のワードが、そのワード境界で区切った中でPASS符号にならないことを調べることにより、抑制緩和フラグRELAXFLを生成し、このフラグにより、この符号長補正装置282の符号長補正を緩和させることができる。この例では、NEXTワードチェック処理装置204は、次のワードが全て繰り返しであるか調べ、繰り返しである場合には次のワードはPASS符号化しないと判断し、抑制緩和フラグRELAXFLを生成している。
【0147】
283はPASSフラグ生成装置であり、求められた符号長をPASS符号へ変換するか否かの判定のための所定の閾値と比較し、符号長がこの閾値以上であればPASS符号化フラグPASSFLを”1”とする。
【0148】
図33に符号長処理装置281の処理フローを示す。図33において、ステップS1101で、最初のラン長WWRUN3及び繰り返し数WWREP3が有効であるか調べるため、それらの有効フラグREPFL3の判定を行う。有効であれば、ステップS1102〜S1106の処理に進む。
【0149】
ステップS1102で、最初の繰り返し数WWREP3を2以上と判定したときには、ステップS1106で符号フォーマット(図11参照)に基づき、繰り返し数の符号長2とラン長の符号長1を加えた3を符号長PCNTに設定する。この時、ラン長、繰り返し数は、一度に並列処理されるビット数である8ビットを基準に、8以上のラン長も数値の8のラン長と同じ符号長で考える。
【0150】
ステップS1103で、繰り返し数WWREP3が1であると判定された場合には、ステップS1105で、符号フォーマット(図11参照)に基づき、繰り返し数の符号長1とラン長の符号長の1を加えた2を符号長に設定する。
【0151】
ステップS1103で、繰り返し数が0と判定されたときには、ステップS1104で、ラン長の符号長1を符号長とする。
【0152】
次に、ステップS1107で、次のラン長WWRUN2及び繰り返し数WWREP2が有効であるか調べるため、それらの有効フラグREPFL2の判定を行う。有効であれば、ステップS1108〜S1112の処理に進む。
【0153】
ステップS1108で繰り返し数が2以上であると判定したならば、ステップS1112の処理を行い、符号フォーマットに基づき、繰り返し数の符号長2とラン長の符号長1を加えた3を符号長PCNTに加える。
【0154】
ステップS1109で繰り返し数が1であると判定された場合には、ステップS1111の処理を行い、符号フォーマットに基づき、繰り返し数の符号長1とラン長の符号長の1を加えた2を符号長に加える。
【0155】
ステップS1109で繰り返し数が0と判定されたときには、ステップS1110でラン長の符号長1を符号長に加える。
【0156】
次に、ステップS1113で、次のラン長WWRUN1及び繰り返し数WWREP1が有効であるか調べるために、それらの有効フラグREPFL1の判定を行う。有効であれば、ステップS1114〜S1118の処理に進む。
【0157】
ステップS1114で繰り返し数WWREP1が2以上であると判定されたときには、ステップS1118の処理を行い、符号フォーマットに基づき、繰り返し数の符号長2とラン長の符号長1を加えた3を符号長PCNTに加える。
【0158】
ステップS1115で繰り返し数が1であると判定された場合には、ステップS1117の処理を行い、符号フォーマットに基づき、繰り返し数の符号長1とラン長の符号長1を加えた2を符号長に加える。
【0159】
ステップS1116で繰り返し数が0と判定された場合には、ラン長の符号長1を符号長に加える。
【0160】
次に、ステップS1119で、次のラン長WWRUN0及び繰り返し数WWREP0が有効であるか調べるため、それらの有効フラグREPFL0の判定を行う。有効であれば、ステップS1120〜s1124の処理に進む。
【0161】
ステップS1120で繰り返し数WWREP0が2以上であると判定したときには、ステップS1124の処理を行い、符号フォーマットに基づき、繰り返し数の符号長を2とラン長の符号長の1を加えた3を符号長に加える。
【0162】
ステップS1121で繰り返し数WWREP0が1であると判定された場合、ステップS1123で、繰り返し数の符号長1とラン長の符号長1を加えた2を符号長に加える。
【0163】
ステップS1121で繰り返し数が0と判定されたときには、ステップS1122でラン長の符号長1を符号長に加える。
【0164】
図34に符号長補正装置282の処理フローを示す。図34において、最初のステップS1201で抑制緩和フラグが”1”であるかを判定し、”1”でなければ、ステップS1204に進む。ステップS1204で、途中の繰り返し数REPが2以上であると判定したならば、ステップS1208の処理を行い、符号フォーマット(図11参照)に基づき、繰り返し数の符号長2とラン長の符号長1を加えた3を符号長PCNTに加える。この時、ラン長、繰り返しは一度に並列処理されるビット数である8ビットを基準に、8以上のラン長も8のラン長と同じ符号長で考える。ステップS1205で途中の繰り返し数が1であると判定された場合には、ステップS1207で、符号フォーマットに基づき、繰り返し数の符号長1とラン長の符号長1を加えた2を符号長に加える。ステップS1206で途中のラン長が0以上であると判定したときには、ステップS1209で、ランレングスの符号長の1を符号長に加える。また、抑制緩和フラグRELAXFLが”1”の場合、ステップS1202で途中のラン長又は途中の繰り返し数が0以上であると判定したときに、ステップS1203で符号長に1を加える。
【0165】
図35に、PASSフラグ生成装置283の処理フローを示す。図35において、ステップS1251で符号長PCNTがPASS符号化閾値より大きいと判定したときに、ステップS1253でフラグPASSFLを”1”に設定する。そうでないと判定したときには、フラグPASSFLを”0”に設定する。
【0166】
《画像圧縮装置の符号化処理装置206》
図9は、符号化処理装置206の入出力信号を示す。この符号化処理装置206は、最大4個のラン長RUN3〜RUN0、繰り返し数REP3〜REP0と、それらのマスク値DMASK3〜DMASK0を受け取り、前述のように図11に示す4ビットごとのフォーマットの符号CODEを出力する(ただし、符号のフォーマットは、これに限られるものではなく、何ビットごとでも良いことは前述のとおりである)。
【0167】
図26に、この符号化処理装置206の全体的な処理フローを示す。図示のように、4つのラン長、繰り返し数が0より大きいか調べ(ステップS551,S553,S555,S557)、0より大きいラン長、繰り返し数を符号化する(ステップS552,S554,S556,S558)。
【0168】
図10は、符号化処理装置206の内部構成を示すブロック図である。図10において、291は符号化装置であり、ラン長RUN3と繰り返し数REP3の符号化を行う。この符号化装置291は、その詳細については図28に示した処理フローに沿って説明するが、PASS符号化時に、前のワードの途中のラン長と途中の繰り返し数を符号化する。繰り返し数の符号WCODEOUT3Rとその符号長RCLENG3、ラン長の符号WCODEOUT3Nとその符号長NCLENG3を出力する。
【0169】
292は符号化装置であり、ラン長RUN2と繰り返し数REP2の符号化を行う。この符号化装置291は、その詳細については図29の処理フローに沿って説明するが、PASS符号化時、今のワードのDOT値をPASS符号として符号化する。繰り返し+ラン長の符号WCODEOUT2と、その符号長CLENG2を出力する。この符号化装置292には、ラン長RUN2、繰り返し数REP2のほかに、フラグPASSFL、DOT値も入力される。
【0170】
293は符号化装置であり、ラン長RUN1と繰り返し数REP1の符号化を行い、繰り返し+ラン長の符号WCODEOUT1とその符号長CLENG1を出力する。この符号化装置293の処理フローを図28に示す。
【0171】
294は符号化装置であり、ラン長RUN0と繰り返し数REP0の符号化を行い、繰り返し+ラン長の符号WCODEOUT0とその符号長CLENG0を出力する。この符号化装置294の処理フローを図28に示す。
【0172】
295は符号長計算装置であり、各位置の符号を合わせ込むために、各位置の符号の長さWCLENG3R,WCLENG3X,WCLENG2X,CLENG1Xを計算して符号位置合わせ装置296,297,298,299へ送り、また、合計の符号長CLENGOXをレジスタ301へ送る。
【0173】
符号位置合わせ装置296は、符号化装置291から出力された符号WCODEOUT3Nを、WCLENG3X(=RCLENG3)だけずらしてOR装置300へ転送する。符号位置合わせ装置297は、符号化装置292から出力された符号WCODEOUT2をCLENG3X(=RCLENG3+NCLENG3)だけずらしてOR装置300へ転送する。符号位置合わせ装置298は、符号化装置293から出力された符号WCODEOUT1を、CLENG2X(=RCLENG3+NCLENG3+CLENG2)だけずらしてOR装置300へ転送する。符号位置合わせ装置299は、符号化装置294から出力された符号WCODEOUT0を、CLENG1X(=RCLENG3+NCLENG3+CLENG2+CLENG1)だけずらしてOR装置300へ転送する。
【0174】
OR装置は、符号化装置291より出力される繰り返し数の符号WCODEOUT3R、符号位置合わせ装置296,297,298,299により位置合わせ後の符号をOR演算してレジスタ301へ転送する。レジスタ301には最大4個の符号を1つにした符号と、その符号の有効長が格納される。このレジスタ301の内容が符号化書き込み装置207へ転送される。
【0175】
図28に示した符号化装置291,292,294の処理フローについて説明する。なお、このフローチャート中の”CODE=”は、符号としてDMA転送もしくはメモリ110などの記憶装置への書き出しを意味する。
【0176】
図28において、ステップS700でラン長が0でないと判定されたならば、ステップS701でラン長が8以下であるは調べる。ラン長が8以下であると判定されたならば、ステップS702で、ラン長から1を引き算した値を符号とする。
【0177】
ステップS703で、ラン長が9以上で40以下であると判定され、ステップS704でラン長が24以下であると判定された場合には、ステップS707で、ヘッダとして4ビットの”1010”を付加し、次にラン長から11を差し引いた値を符号とする。ステップS704でラン長が25以上であると判定された場合には、ステップS706で、ヘッダとして4ビットの”1011”を付加し、次にラン長から11を差し引いた値を符号とする。
【0178】
ステップS703でラン長が41以上であると判定された場合には、ステップS705でヘッダーとして4ビットの”1100”を付加し、ステップS708〜S715により、4ビットのデータの4ビット目を終端フラグとする数値表現により、符号長を小さく表現する。
【0179】
ステップS700でラン長が0であると判定された場合、ステップS716で繰り返し数REPが1であると判定されたならば、ステップS717で符号を13とする。ステップS718で繰り返し数REPが2であると判定されたならば、ステップS717で14を符号とする。ステップS720で繰り返し数REPが3であると判定されたならば、ステップS721で、13、14を符号とする。ステップS722で繰り返し数REPが4であると判定されたならば、ステップS723で、14,14を符号とする。繰り返し数REPが5以上の場合には、ステップS724でヘッダーとして4ビットの”1111”を付加し、ステップS725〜S732により、4ビットのデータの4ビット目を終端フラグとする数値表現により、符号長を小さく表現する。
【0180】
図29に示した符号化装置292の処理フローについて説明する。なお、このフローチャート中の”CODE=”は、符号としてDMA転送もしくはメモリ110などの記憶装置への書き出しを意味する。
【0181】
図29において、ステップ800で、フラグPASSFLが”1”であると判定した場合には、ステップS801〜S804のPASS符号化処理を行う。すなわち、次のワードのMSBにより、ヘッダを求め、もしMSBが”1”であればヘッダーを9、”0”であればヘッダを8とする。そして、ステップS804で、符号化するワードをそのまま符号として貼り付ける。
【0182】
フラグPASSFLが”0”であると判定された場合、ステップS705でラン長が0でないと判定されたならば、ステップS806でラン長は8以下であるか調べられる。ラン長が8以下であると判定されたならば、ステップS807で、ラン長から1を引き算した値を符号とする。
【0183】
ステップS708でラン長が9以上、40以下であると判定された場合には、ステップ809によりラン長が24以下と判定されたならば、ステップS812で、ヘッダとして4ビットの”1010”を付加し、次にラン長から11を引き算した値を符号とする。ステップS809でラン長が27以上と判定されたときには、ステップS811で、4ビットの”1011”をヘッダーとして付加し、次にラン長から11を引き算した値を符号とする。
【0184】
ステップ808でラン長が41以上であると判定された場合は、ステップS810で、ヘッダーとして4ビットの”1100”を付加し、ステップS813〜S820により、4ビットのデータの4ビット目を終端フラグとする数値表現により、符号長を小さく表現する。
【0185】
ラン長が0であると判定された場合、ステップS821で繰り返し数REPが1であると判定されたならば、ステップS822で13を符号とする。ステップS823で繰り返し数REPが2であると判定されたならば、ステップS824で14を符号とする。ステップS825で繰り返し数REPが3であると範囲されたらば、ステップS826で13、14を符号とする。ステップS827により繰り返し数REPが4であると判定されたならば、ステップS828で14,14を符号とする。繰り返し数REPが5以上の場合、ステップS829で、ヘッダーとして4ビットの”1111”を付加し、ステップS830〜S837で、4ビットのデータの4ビット目を終端フラグとする数値表現により、符号長を小さく表現する。
【0186】
以上の説明から明らかなように、特許請求の範囲に記載の第1の処理手段(第1の処理工程)はラン長処理装置203に対応し、第2の処理手段(第2の処理工程)は PASS 判定&繰り返し処理装置205の一部に対応し、第3の処理手段(第3の処理工程)は符号化処理装置206に対応し、第4の処理手段(第4の処理工程)は PASS &繰り返し処理装置205内の PASS 判定装置274に対応する。第4の処理手段に含まれる補正する手段(第4の処理工程に含まれる補正する工程)はPASS判定装置274内の符号長補正装置292(図8)に対応する。第5の処理手段(第5の処理工程)は NEXT ワードチェック処理装置204に対応する。
【0187】
以上の説明においては、8ビット単位で処理したが、それに限定されない。例えば16ビット単位で処理するのであれば、4ビットごとに処理するランカウントを4つ使用したり、8ビットごとに処理するランカウントを2つ使用したり、あるいは、16ビットごとに処理するランカウントを1つ使用するなどが可能である。
【0188】
《画像伸長装置106d》
以下、本発明の画像伸長装置106dの一実施例について説明する。この画像伸長装置106dは、以上に説明した本発明の画像圧縮装置106eにより圧縮された画像の符号データから元の画像を復元する処理を行う。
【0189】
図36は、画像伸長装置106dの全体構成を示すブロック図である。図36において、402は符号読み込み部であり、メモリ110から符号データを読み込む。403は符号解釈処理装置であり、符号読み込み部402で読み込まれた符号を解釈し、ラン長(0値の長さと1値の長さ)又は繰り返し数に変換してラン長処理部404へ転送する。ラン長処理装置404は、符号解釈処理装置403からラン長と繰り返し数を取り込み、繰り返し数分のラン長へ展開し、必要なだけのラン長をDOT化処理装置405へ転送する。DOT化処理装置405は、転送されたラン長をDOT化し(画像データに展開する)、画像書き込み部406へ送る。画像書き込み部406は、その復号された画像データをメモリ110に書き込む。
【0190】
以下、画像伸長装置106dの前記各ブロックを詳細に説明する。ここで説明する実施例は、8ビットごとに画像データを並列処理する例である。
【0191】
《画像伸長装置の符号読み込み部402》
図37は、符号読み込み部402のブロック図である。図37において、411及び412は読み込まれた符号データを一時的に格納するためのレジスタ、414は符号データを読み込むためのアドレスを発生するアドレス生成部である。読み込まれる符号データは、図11に示したフォーマットの符号である。413はシフタである。このシフタは、符号解釈処理装置403から通知される消費した符号長(CODELENG)に従って、4ビット符号を順次シフトしながら符号解釈処理装置403へ転送する。また、この符号読み込み部402は、ラン長処理装置404又はDOT化処理装置405のFIFO(後述)がフルになったときに、同FIFOからのWAIT信号により符号の読み込みを中止する。
【0192】
《画像伸長装置の符号解釈処理装置403》
図38は、符号解釈処理装置403のブロック図である。この符号解釈処理装置403は、符号読み込み部402から複数の4ビット単位の符号を取り込み、4個のラン長又は繰り返し数と、その数値がラン長か繰り返し数かを示す複数のフラグを求める。
【0193】
処理の流れは次の通りである。6個の符号解析装置421〜426により、図11に示したフォーマットの符号を解析し、この時、1つの符号解析装置は最大符号長の符号を読めるようにする(図11のフォーマットでは最大符号長は4ビットコードが8個である)。各符号解析装置は、1つの4ビットコードごとにずらして符号を解析し、ラン長又は繰り返し数(GWWCOL)、ラン長であるか繰り返し数かを示すフラグ(NFL)、有効/無効を示すフラグ(CMDFL)、PASS符号か否かを示すフラグ(PASSFL)、PASS符号時の次のラン長の色情報(NCOL)を出力する。もちろん、符号解析装置は、符号のバウンダリーに合っているものと合っていないものとがあるため、それを有効フラグ生成装置427より判断する。この有効フラグ生成装置427は、6個の符号解析装置から出力される符号長(CLENG)の値から、それぞれの符号解析装置の解析結果が有効か否かを判断し、有効/無効を示すフラグ(CMDFL)を生成し、空き領域削除装置429及び有効データ数生成装置428に与える。有効データ数生成装置428は、フラグ(CMDF)を長さ(WMLENG)に変換する。空き領域削除装置429は、それぞれの符号解析装置が出力するラン長又は繰り返し数(GWWCOL)と、それがラン長であるか繰り返し数かを示すフラグ(NFL)、PASS符号か否かを示すフラグ(PASSFL)、PASS符号時の次のラン長の色情報(NCOL)を受け取り、その各GWWCOLの有効を示すフラグ(CMDFL)に基づいて、後処理を小さなハードウエアで処理することが可能となるように、無効のデータを削除し、最大3個のラン長もしくは繰り返しを求めるための空き領域削除処理を行う。空き領域削除処理後のラン長又は繰り返し数(WWCOL)と、ラン長であるか繰り返し数であるかを示すフラグ(NFL)、PASS符号を示すフラグ(PASSFL),PASS符号時の次のラン長の色情報(NCOL)、有効データ数(MLENG)はレジスタ430を介してラン長処理装置404へ転送される。また、図38には示されていないが、解析された合計の符号長つまり消費した符号長(CODELENG)が有効フラグ生成装置427で求められ、符号読み込み部402のシフタ413へ転送される。
【0194】
以下、各部を説明する。符号解析装置421,422,423,424,425,426は、図11のフォーマットの符号を解析し、ラン長、又は繰り返し数とラン長(GWWCOL)、繰り返し数か否かを示すフラグ(NFL)、処理した符号長(CLENG)、PASS符号フラグ(PASSFL),PASS符号時の次のラン長の色情報(NCOL)を出力する。この時、1つの符号解析装置は最大符号長の符号を読めるようにする(図11のフォーマットでは最大符号長は4ビットコードが8個である)。各符号解析装置は、1つの4BITコードごとにずらして符号を解析する。
【0195】
有効フラグ生成装置427は、符号解析装置421〜426から処理した符号長(CLENG)を受け取り、解析結果の有効無効を判断する。符号解析装置421が正しい位置にあり正しい符号の解析を行い、処理した符号長が1であれば、符号解析装置422は有効であるが、それ以上であれば無効である。符号解析装置421の処理した符号長と符号解析装置422の処理した符号長(無効であれば0)を加えた数が1又は2であれば、符号解析装置423は有効であり、それ以外であれば無効である。符号解析装置421の処理した符号長と、符号解析装置422の処理した符号長(無効であれば0)と、符号解析装置423の処理した符号長(無効であれば0)を加えた数が1、2又は3であれば、符号解析装置424は有効であり、それ以外であれば無効である。同様にして、他の符号解析装置245,246の解析結果の有効/無効を判断する。図43に有効フラグ生成装置427の処理フローを示す。
【0196】
有効データ数生成装置428は、有効フラグ生成装置427からの有効フラグを長さ(MLENG)に変換する。図44に有効データ数生成装置の処理フローを示す。
【0197】
空き領域削除装置429は、符号解析装置421〜426から受け取った複数の繰り返し数又はラン長(GWWCOL)と、有効フラグ生成装置427から受け取った有効/無効フラグ(CMDFL)に基づき、何も情報の入っていない部分をシフトし、繰り返し数又はラン長を詰める処理を行う。図45に空き領域削除装置429の処理フローを示す。
【0198】
この符号解釈処理装置403の処理例を図39に示し説明する。図39において、GWWCOLは符号解析装置(421〜426)が解析した符号のラン長又は繰り返し数であり、CLENGは解析した符号の長さ、NFLはGWWCOLの数値がラン長か繰り返しかを示すフラグである。CMDFLは有効フラグ生成装置427が求めた各符号解析装置の解析結果の有効を示すフラグである。MWCOLは最終的に求めたラン長又は繰り返し数であり、MNFLはラン長か繰り返しかを示すフラグである。CODELENGは、有効フラグ生成装置427によって求められる、解析された符号の数である。MLENGは出力されたラン長又は繰り返し数の数である。
【0199】
図39に示した最初の処理は符号”2”,”1”,”E”,”E”,”0”,”0”,”E”,”1”,”2”,”0”,”0”を受け取り解析する処理である。この処理において、1番目の符号解析装置421は”2”,”1”,”E”,”E”,”0”,”0”,”E”,”1”,”2”,”0”,”0”の符号を受け取り、ラン長3と解析する。この符号数は1である。
【0200】
2番目の符号解析装置422は”1”,”E”,”E”,”0”,”0”,”E”,”1”,”2”の符号を受け取り、ラン長2と解析する。この符号数は1である。
【0201】
3番目の符号解析装置423は”E”,”E”,”0”,”0”,”E”,”1”,”2”,”0”の符号を受け取り、繰り返し4と解析する。この符号数は2である。
【0202】
4番目の符号解析装置424は”E”,”0”,”0”,”E”,”1”,”2”,”0”,”0”の符号を受け取り、繰り返し2と解析する。この符号数は1である。5番目、6番目の符号解析装置425,426も同様であるが、図中省略されている(以下同様)。
【0203】
次に、有効フラグ生成装置427で、各符号解析装置421〜426から得た符号数から、各符号解析装置が解析したラン長又は繰り返し数の有効性を判断する。この例では、3番目の符号解析装置423が求めたラン長/繰り返し数の符号数は2であるため、4番目の符号解析装置424が解析した符号は、符号の先頭ではないことが分かる。したがって、4番目の符号解析装置424のCMDFL3を無効としている。そして、ここで消費した符号の数は4である。
【0204】
次の処理は符号”1”,”E”,”E”,”0”,”0”,”E”,”1”,”2”,”0”,”0”,”2”を受け取り解析する処理である。この処理において、1番目の符号解析装置421は”1”,”E”,”E”,”0”,”0”,”E”,”1”,”2”の符号を受け取り、ラン長2と解析する。この符号数は1である。
【0205】
2番目の符号解析装置422は”E”,”E”,”0”,”0”,”E”,”1”,”2”、”0”の符号を受け取り、繰り返し数4と解析する。この符号数は2である。
【0206】
3番目の符号解析装置423は”E”,”0”,”0”,”E”,”1”,”2”,”0”,”0”の符号を受け取り、繰り返し2と解析する。この符号数は1である。
【0207】
4番目の符号解析装置424は”0”,”0”,”E”,”1”,”2”,”0”,”0”,”2”の符号を受け取り、ラン長1と解析する。この符号数は1である。
【0208】
次に有効フラグ生成装置427で、各符号解析装置421〜426から得た符号数から、各符号解析装置が解析したラン長/繰り返し数の有効性を判断する。この例では、2番目の符号解析装置423が求めたラン長/繰り返し数の符号数は2であるため、3番目の符号解析装置423が解析した符号は、符号の先頭ではないことが分かる。したがって、3番目の符号解析装置423のCMDFL2を無効としている。
【0209】
そして、得られたラン長/繰り返し数に空欄が存在するため、空き領域削除装置429により空欄を削除し、つぎの処理装置へ送るデータフォーマットを単純化する。ここで消費した符号の数は4である。
【0210】
次に、各符号解析装置421〜426の処理フローを図42に示し、説明する。ここに示した処理フローは、図11に示したフォーマットの符号を復号化するための処理フローである。各符号解析装置は、入力された符号の順番に基づき、符号を解釈していく。
【0211】
ステップS2201で、最初の符号(CODE0)がPASS符号の”8”(1000)又は”9”(1001)であるか判定する。
【0212】
PASS符号であれば、ステップS2202でPASS符号が”8”か判定する。PASS符号が”8”であれば、そのPASS符号の次のラン長は”0”で始まるため、ステップ2203で、PASS符号時の次のラン長の色情報を格納するNCOLを”0”に設定する。PASS符号が”9”であれば、次のラン長は”1”で始まるため、ステップS2204でNCOLを”1”に設定する。そして、ステップS2205で、求めたラン長もしくは繰り返し数を格納するGWWCOLに、次の符号CODE1,CODE2を画像データとして格納し、また、GWWCOLがPASS符号による画像データであることを示すPASSFLを”1”に設定し、CLENGに消費した符号の長さ”3”を格納する。
【0213】
ステップS2202でPASS符号でないと判定した場合には、ステップS2206でPASSFLを”0”に設定する。
【0214】
次にステップS2207で、CODE0が8より小さいと判定した場合は、短いラン長符号であるため、ステップS2208でGWWCOLにCODE1+1の値を格納し、消費した符号数CLENGに”1”を設定し、ラン長か繰り返し数かを示すNFLをラン長を示す”1”に設定する。
【0215】
ステップS2207で8以上と判定した場合には、ステップS2209でCODE0が”12”(1100)であるか判定する。”12”であると判定したならば、長いラン長の符号であるため、図11のフォーマットに基づき、ステップS2210〜S2215でラン長を求める。
【0216】
ステップS2209で”12”ではないと判定された場合、ステップS2216でCODE0が”6”(101)であるか判定し、そうならば、中度のラン長の符号であるため、ステップS2217でラン長を求める。
【0217】
また、ステップS2218又はS2220でCODE0が”13”(1101)又は”14”(1110)であると判定した場合には、小さい繰り返し数の反復符号であるため、ステップS2219又はS2221で繰り返し値を求め、ラン長か繰り返しかを示すNFLを繰り返しを示す”0”に設定する。
【0218】
また、ステップS2222でCODE0が”15”(1111)であると判定した場合には、大きい繰り返し数の反復符号であるため、ステップS2223〜S2228で繰り返し数を求め、またフラグ設定を行う。
【0219】
《画像伸長装置のラン長処理装置404》
図40は、画像伸長装置106dのラン長処理装置404のブロック図である。このラン長処理装置404は、符号解釈処理装置403から、複数のラン長又は繰り返し数WWCOLとその数MLENG、ラン長か繰り返し数かを示す複数のフラグWNFL、PASS符号を示すフラグPASFL、PASS符号時の次のラン長の色情報NCOLを受け取り、毎クロックごとに、8ビットの復号パターンを生成するのに必要な最大8個のラン長(RRUN7〜RRUN0)を生成し、DOT化処理装置405へ送ることができる。以下、ラン長処理装置404を構成する各部について説明する。
【0220】
441はFIFOであり、符号解釈処理装置403から転送される複数のラン長又は繰り返し数と、その数、それがラン長か繰り返し数かを示す複数のフラグなどを受け取り、順次、格納していく。そして、ラン長生成装置444から受け取る消費したデータ数REPSHの分だけ格納データをシフトして、3つのラン長又は繰り返し数GWWcolと、ラン長か繰り返し数かを示す複数のフラグNFLを基準ラン長生成装置442と繰り返し数生成装置443へ出力する。
【0221】
基準ラン長生成装置442は、FIFO441から複数のラン長又は繰り返し数と、ラン長か繰り返し数かを示す複数のフラグを受け取り、また、ラン長生成装置444から前回の最終ラン長
RWWCOL00,RWWCOL01を受け取り、繰り返し処理を行いやすい以下のようなフォーマットへ変換する。
【0222】
例えば、ラン長生成装置444から受け取った前回の最終ラン長=5、FIFO441から受け取った4つのラン長=3,2,7、 繰り返し/ラン長フラグ=0,0,1(3番目が繰り返し)の場合、基準ラン長生成装置442の出力は次のようになる。
【0223】
WWCOL 0 1 2
カラー 0:3 3 3
1:5 2 2
【0224】
これをラン長生成装置444で以下のように繰り返し処理を行う。
【0225】
WWCOL 0 1 2 3 4 5 6 7 8
カラー 0:3 3 3 3 3 3 3 3 3
1:5 2 2 2 2 2 2 2 2
【0226】
画像は白黒のラン長の繰り返しであり、ラン長は白のものと、黒のもがあり、ラン長の次のカラーが例えば”0”から始まる場合、カラー0、WWCOL0=3、次にカラー1、WWCOL1=2、カラー0、WWCOL2=3、カラー1、WWCOL3=2、カラー0、WWCOL4=3のように、すなわち、3,2,3,2,3,2,3,2,3....のように千鳥にサーチすることで、ラン長のみに変換できる。
【0227】
ここでは、ラン長、繰り返し情報からラン長のみの情報へ変換しやすい、以下のレベルまで行う。
【0228】
WWCOL 0 1 2
カラー 0:3 3 3
1:5 2 2
【0229】
基準ラン長生成装置442の処理フローを図47に示す。
【0230】
繰り返し数生成装置443は、FIFO441から複数のラン長又は繰り返し数と、ラン長か繰り返し数かを示す複数のフラグを受け取り、繰り返し情報WREPを作成する。この繰り返し数生成装置443の処理フローを図48に示す。
【0231】
ラン長生成装置444は、基準ラン長生成装置442に関連して述べたように、基準ラン長生成装置442から、繰り返し処理の行いやすい、黒と白のラン長の情報を受け取り、また、繰り返し数生成装置443から繰り返し情報を受け取り、ラン長を展開する。例えば、
WWCOL 0 1 2
カラー 0:3 3 3
1:5 2 2
WREP :1 1 7
の場合、
WWCOL 0 1 2 3 4 5 6 7 8
カラー 0:3 3 3 3 3 3 3 3 3
1:5 2 2 2 2 2 2 2 2
のように展開し、ラン長のみの情報を3,2,3,2,3,2,3,2,3....のように求める。
【0232】
そして、ここでは8ドットを繰り返す図67に示すような全ての繰り返しのパターン、3つのラン長のみからなる図68のようなパターンから、入力されたデータの繰り返しパターンを認識し、上記の例のようにラン長を展開し、8個のランを埋めるに十分な数のデータ数をREPSHとしてFIFO441へ返し、また、そのランの数WRUNLENGとラン長と、8個のランを埋めて余った、最後の途中繰り返し数をレジスタ445へ送る。
【0233】
WNREPの補足を行う。例えば、以下のような例では、
WWCOL 0 1 2 3 4 5 6 7 8
カラー 0:3 3 3 3 3 3 3 3 3
1:5 2 2 2 2 2 2 2 2
以下の8個のランで十分なため、繰り返しのWREP2の4つの繰り返しは途中の2までの繰り返ししか使用せず、残りの2個の繰り返しはNREPに保持される。このように残りの繰り返しがある場合、それはフラグWNREPFLを立て繰り返し数生成装置443へ送られ、次の1番目の繰り返し数として使用される。
【0234】
WWCOL 0 1 2
カラー 0:3 3 3
1:5 2 2
【0235】
このラン長生成装置444の処理フローを図49乃至図57に示す。
【0236】
《画像伸長装置のDOT化処理装置405》
図41は画像伸長装置106dのDOT化処理装置405のブロック図である。このDOT化処理装置405は、FIFO451、DOT化装置452、TOATALラン長生成装置453、シフト値生成装置454、差分生成装置455、RUN0生成装置456から構成される。
【0237】
DOT化処理装置405において、DOT化装置452で、FIFO451から8個のラン長を受け取り、ラン長のDOT化を行う。その8個のラン長のどこで8ドットを満たすかを判断するため、TOTALラン長生成装置453により、8個のランのそれぞれの位置でのラン長の合計を求める。シフト値生成装置454により、8ドットを満たすラン長の位置をみつけ、FIFO451へ消費したラン長の数を知らせて次の8ドットのためのシフトをさせる。8個のラン長のどれかが8ドットを満たした時の余りを持つ場合、その余りのラン長を求めるため、差分生成装置455で、TOTALラン長生成装置453からの8個の合計ラン長と値の8値からの差を求める。RUN0生成装置456で、実際に使用したランの値をシフト生成装置454から受け取ってRUN0を選択し、それをFIFO451へ送る。以上の処理を1クロックで行うことにより、毎クロックごとに8個の画素を復号化することができる。
【0238】
次に、各部をより詳細に説明する。FIFO451は、ラン長処理装置404から8個のラン長と、そのラン長の有効数RUNLENGなどを受け取り、順次格納し、DOT化装置452とTOTALラン長生成装置453へ8個のラン長などを送る。また、8個のラン長のいずれかがが8ドットを満たした時の余りを持つ場合に、DOT化装置452より、フラグSTAで余りが有ることを通知され、シフト生成装置454より、消費したラン長の数を通知され、RUN0生成装置456より、その余りのラン長を通知される。FIFO451は、余りがあることを通知されると、通知された余りのラン値RUN0を次の最初のラン値として、指定されたシフトを行うことにより次のデータを出力する。
【0239】
DOT化装置452は、FIFO451から8個のラン値などを受け取り、8個のドットを埋める8個のランの組み合わせ全てを認識し、その最初から幾つかのランを使用して8ドットを埋め込むことにより、8個のドットを生成する。もし、8個のラン長のどれかが、8ドットを満たした時に余りを持つ場合、フラグSTAにて余りがあることをFIFO451へ知らせる。
【0240】
このDOT化装置452の処理フローを図58に示す。また、図58中のステップS3304の詳細内容を図60に、ステップS305の詳細内容を図61に、ステップS3308の詳細内容を図62に、ステップS3309の詳細内容を図63に、ステップS3306の詳細内容を図59に、それぞれ示す。
【0241】
図58において、ステップS3301で、最初のPASSフラグであるPASSFL0の値が”1”であると判定したならば、PASS処理を行う。すなわち、ステップS3302で、最初のラン長値の8ビットを画像データとして出力する。次に、ステップS3310で、次のラン長の値をPASS符号の次のドットのMSB値であるNCOLの最初の値NCOL0に設定する。
【0242】
ステップS3301でPASSFL0の値が”1”でないと判定した場合には、ステップS3303でラン長の色値が”1”であるか判定する。”1”ならば、ステップS3305の処理を実行するが、”0”ならばステップS3304の処理を実行する。ステップS3304では、画像データの最初の4ビットを、図60に示すように、各ラン長の値から求める。ステップS3305では、画像データの最初の4ビットを、図61に示すように、各ラン長の値から求める。
【0243】
次に、ステップS3306で、図59に示すように、最大8個のラン長から次の4ビットへ引き続く4つのラン長を求める。
【0244】
次に、ステップS3307で、次の4ビットのラン長の最初の色値が”1”であるか判定し、”1”ならばステップS3308を実行し、”0”であればステップS3307の処理を実行する。ステップS3308では、次の4ビットの画像データを、図62に示すように、残りのラン長の値から求める。ステップS3309では、次の4ビットの画像データを、図63に示すように、残りのラン長の値から求める。
【0245】
TOTALラン長生成装置453は、8個のラン長(WRUN0〜WRUN7)のどこで8ドットを満たすかを判断するため、8個のランのそれぞれの位置でのラン長の合計ACWRUN0,ACWRUN1,ACWRUN2,ACWRUN3,ACWRUN4,ACWRUN5,ACWRUN6,ACWRUN7を求める。
ここで、
ACWRUN0=WRUN0(ラン長1と等しい)
ACWRUN1=WRUN0+WRUN1(ラン長1とラン長2の合計)
ACWRUN2=WRUN0+WRUN1+WRUN2(ラン長1とラン長2とラン長3の合計)
ACWRUN3=WRUN0+WRUN1+WRUN2+WRUN3
ACWRUN4=WRUN0+WRUN1+WRUN2+WRUN3+WRUN4
ACWRUN5=WRUN0+WRUN1+WRUN2+WRUN3+WRUN4+WRUN5
ACWRUN6=WRUN0+WRUN1+WRUN2+WRUN3+WRUN4+WRUN5+WRUN6
ACWRUN7=WRUN0+WRUN1+WRUN2+WRUN3+WRUN4+WRUN5+WRUN6+WRUN7
である。
【0246】
このTOATALラン長生成装置453の処理フローを図66に示す。
【0247】
シフト値生成装置454は、8ドットを満たすラン長の位置をみつけるため、TOTALラン長生成装置453から受け取った8個の合計のラン長を最初から優先させて8値以上となる位置をみつけ、それをFIFO451及びRUN0生成装置456へ知らせる。このシフト値生成装置453の処理フローを図65に示す。
【0248】
差分生成装置455は、8個のラン長のどれかが、8ドットを満たした時に余りを持つ場合、その余りのラン長を求めるため、TOTALラン長生成装置453より受け取った8個の合計ラン長と各ラン長までのトータル値の8値からの差を求め、得られた余りのラン長をFIFO451へ知らせる。この差分生成装置455の処理フローを図64に示す。
【0249】
RUN0生成装置456は、実際に使用したランの値をシフト生成装置454から受け取り、それに基づいて、差分生成装置455より受け取った8個の点での余り値の値を選択し、それを最後のラン長の余りRUN0としてFIFO451へ送る。このRUN0生成装置456の処理フローを図46に示す。
【0250】
なお、8ビット並列処理の例を説明したが、これ以外のビット数の並列処理も同様に考えることができる。
【0251】
また、以上に説明した本発明の画像圧縮方法及び画像伸長方法は、コンピュータソフトウェアにより実施することも可能である。そのためのプログラムと、同プログラムを記録したコンピュータ読み取り可能な記録媒体も本発明に包含されることは当然である。
【0252】
【発明の効果】
以上の説明から明らかなように、(1)請求項1乃至記載の画像圧縮装置及び請求項6乃至9記載の画像圧縮方法においては、符号化しようとするワードごとにデータ量の膨張を判断し、膨張する場合にパス符号化を行うことにより、符号化によるデータ量の膨張を確実に回避することができ、また、従来技術におけるような余分なラインメモリやブロックメモリを必要とせず、また、ラインごとに又はブロックごとに区切って画像圧縮を行う構成ではないため高い圧縮率で画像圧縮を行うことができ、また、並列処理により、動作クロックの周波数をそれほど上げなくとも高速の画像圧縮を行うことができる。(2)さらに、請求項2記載の画像圧縮装置においては、並列処理ビット数を越えるラン長とその繰り返し数も求めることができるため、長いラン長を効率よく符号化し、一層の圧縮率向上を達成できる。(3)さらに請求項3,4記載の画像圧縮装置及び請求項8,9記載の画像圧縮方法においては、無用なパス符号化を行うことによる圧縮率の低下を回避することができる。(4)請求項5記載の画像形成装置においては、画像圧縮/伸長処理のために余分なラインメモリやブロックメモリが不要であり、圧縮処理によるデータ量の膨張も回避されかつ高い圧縮率での圧縮が可能であるため、符号データの蓄積のためのメモリ量も削減することができ、したがって全体として省メモリ化が可能であり、また、高速な圧縮/伸長処理が可能であるため、画像データの圧縮蓄積にかかる時間の短縮、及び、符号データの伸長・画像形成にかかる時間の短縮を図ることができる等々の効果を得られる。
【図面の簡単な説明】
【図1】 本発明を実施した多色画像形成装置の全体的構成の一例を示す概略断面図である。
【図2】 多色画像形成装置の電装・制御装置の構成の一例を示すブロック図である。
【図3】 画像圧縮装置の全体構成を示すブロック図である。
【図4】 画像圧縮装置の画像読み込み部のブロック図である。
【図5】 画像圧縮装置のラン長処理装置のブロック図である。
【図6】 画像圧縮装置のNEXTワードチェック処理装置のブロック図である。
【図7】 画像圧縮装置のPASS判定&繰り返し処理装置のブロック図である。
【図8】 画像圧縮装置のPASS判定&繰り返し処理装置内のPASS判定装置のブロック図である。
【図9】 画像圧縮装置の符号化処理装置の入出力信号を示す図である。
【図10】 画像圧縮装置の符号化処理装置のブロック図である。
【図11】 画像圧縮装置の符号フォーマットを示す図である。
【図12】 画像圧縮装置のPASS符号化の説明図である。
【図13】 画像圧縮装置のPASS符号化の説明図である。
【図14】 画像圧縮装置のラン長処理装置の処理例の説明図である。
【図15】 画像圧縮装置のラン長処理装置内のランカウントの処理フローを示すフローチャートである。
【図16】 画像圧縮装置のラン長処理装置内のランカウントの処理フローを示すフローチャートである。
【図17】 画像圧縮装置のラン長処理装置内のマスク値合成装置の処理フローを示すフローチャートである。
【図18】 画像圧縮装置のラン長処理装置内のマスク値合成装置の処理フローを示すフローチャートである。
【図19】 画像圧縮装置のラン長処理装置内のRightラン値生成装置の処理フローを示すフローチャートである。
【図20】 画像圧縮装置のラン長処理装置内のRightラン値生成装置の処理フローを示すフローチャートである。
【図21】 画像圧縮装置のラン長処理装置内のLeftラン値生成装置の処理フローを示すフローチャートである。
【図22】 画像圧縮装置のラン長処理装置内のラン値合成装置の処理フローを示すフローチャートである。
【図23】 画像圧縮装置における繰り返し処理の説明図である。
【図24】 画像圧縮装置のPASS判定&繰り返し処理装置内の繰り返し数生成装置の処理フ
ローを示すフローチャートである。
【図25】 画像圧縮装置のPASS判定&繰り返し処理装置内の繰り返しフラグ生成装置の処理フローを示すフローチャートである。
【図26】 画像圧縮装置の符号化処理装置206の全体的な処理フローを示すフローチャートである。
【図27】 画像圧縮装置のPASS判定&繰り返し処理装置内のNEXTランレングス生成装置の
処理フローを示すフローチャートである。
【図28】 画像圧縮装置の符号化処理装置内の符号化装置の処理フローを示すフローチャートである。
【図29】 画像圧縮装置の符号化処理装置内の符号化装置の処理フローを示すフローチャートである。
【図30】 画像圧縮装置のPASS判定&繰り返し処理装置内の繰り返し数生成装置の処理フローを示すフローチャートである。
【図31】 画像圧縮装置のPASS判定&繰り返し処理装置内の繰り返し数生成装置の処理フローを示すフローチャートである。
【図32】 画像圧縮装置のPASS判定&繰り返し処理装置内の繰り返し数生成装置の処理フローを示すフローチャートである。
【図33】 画像圧縮装置のPASS判定装置内の符号長処理装置の処理フローを示すフローチャートである。
【図34】 画像圧縮装置のPASS判定装置内の符号長補正装置の処理フローを示すフローチャートである。
【図35】 画像圧縮装置のPASS判定装置内のPASSフラグ生成装置の処理フローを示すフローチャートである。
【図36】 画像伸長装置の全体構成を示すブロック図である。
【図37】 画像伸長装置の符号読み込み部のブロック図である。
【図38】 画像伸長装置の符号解釈処理装置のブロック図である。
【図39】 画像伸長装置の符号解釈処理装置の処理例の説明図である。
【図40】 画像伸長装置のラン長処理装置のブロック図である。
【図41】 画像伸長装置のDOT化処理装置のブロック図である。
【図42】 画像伸長装置の符号解釈処理装置内の符号解析装置の処理フローを示すフローチャートである。
【図43】 画像伸長装置の符号解釈処理装置内の有効フラグ生成装置の処理フローを示すフローチャートである。
【図44】 画像伸長装置の符号解釈処理装置内の有効データ数生成装置の処理フローを示すフローチャートである。
【図45】 画像伸長装置の符号解釈処理装置内の空き領域削除装置の処理フローを示すフローチャートである。
【図46】 画像伸長装置のDOT化処理装置内のRUN0生成装置の処理フローを示すフローチャートである。
【図47】 画像伸長装置のラン長処理装置内の基準ラン長生成装置の処理フローを示すフローチャートである。
【図48】 画像伸長装置のラン長処理装置内の繰り返し数生成装置の処理フローを示すフローチャートである。
【図49】 画像伸長装置のラン長処理装置内のラン長生成装置の処理フローを示すフローチャートである。
【図50】 画像伸長装置のラン長処理装置内のラン長生成装置の処理フローを示すフローチャートである。
【図51】 画像伸長装置のラン長処理装置内のラン長生成装置の処理フローを示すフローチャートである。
【図52】 画像伸長装置のラン長処理装置内のラン長生成装置の処理フローを示すフローチャートである。
【図53】 画像伸長装置のラン長処理装置内のラン長生成装置の処理フローを示すフローチャートである。
【図54】 画像伸長装置のラン長処理装置内のラン長生成装置の処理フローを示すフローチャートである。
【図55】 画像伸長装置のラン長処理装置内のラン長生成装置の処理フローを示すフローチャートである。
【図56】 画像伸長装置のラン長処理装置内のラン長生成装置の処理フローを示すフローチャートである。
【図57】 画像伸長装置のラン長処理装置内のラン長生成装置の処理フローを示すフローチャートである。
【図58】 画像伸長装置のDOT化処理装置内のDOT化装置の処理フローを示すフローチャートである。
【図59】 画像伸長装置のDOT化処理装置内のDOT化装置の処理フローを示すフローチャートである。
【図60】 画像伸長装置のDOT化処理装置内のDOT化装置の処理フローを示すフローチャートである。
【図61】 画像伸長装置のDOT化処理装置内のDOT化装置の処理フローを示すフローチャートである。
【図62】 画像伸長装置のDOT化処理装置内のDOT化装置の処理フローを示すフローチャートである。
【図63】 画像伸長装置のDOT化処理装置内のDOT化装置の処理フローを示すフローチャートである。
【図64】 画像伸長装置のDOT化処理装置内の差分生成装置455の処理フローを示すフローチャートである。
【図65】 画像伸長装置のDOT化処理装置内のシフト値生成装置の処理フローを示すフローチャートである。
【図66】 画像伸長装置のDOT化処理装置内のTOATALラン長生成装置の処理フローを示すフローチャートである。
【図67】 繰り返しパターンを示す図である。
【図68】 繰り返しパターンを示す図である。
【符号の説明】
106e 画像圧縮装置
106d 画像伸長装置
202 画像読み込み部
203 ラン長処理装置
204 NEXTワードチェック処理装置
205 PASS判定&繰り返し処理装置
206 符号化処理装置
207 符号書き込み部
213 アドレス生成部
211,212 レジスタ
221,222 ランカウント
223 Leftラン値生成装置
224 Rightラン値生成装置
225 マスク値合成装置
226 ラン値合成装置
227,228 加算器
229 レジスタ
271 繰り返しフラグ生成装置
272 繰り返し数生成装置
273 空き領域削除装置
274 PASS判定装置
275 マルチプレクサ
276 レジスタ
277 NEXTランレングス生成装置
278 レジスタ
281 符号長処理装置
282 符号長補正装置
283 PASSフラグ生成装置
291〜294 符号化装置
295 符号長計算装置
296〜299 符号位置合わせ装置
300 OR回路
301 レジスタ
402 符号読み込み部
403 符号解釈処理装置
404 ラン長処理装置
405 DOT化処理装置
406 画像書き込み部
414 アドレス生成部
411,412 レジスタ
413 シフタ
421〜426 符号解析装置
427 有効フラグ生成装置
428 有効データ数生成装置
429 空き領域削減装置
430 レジスタ
441 FIFO
442 基準ラン長生成装置
443 繰り返し数生成装置
444 ラン長生成装置
445 レジスタ
451 FIFO
452 DOT化装置
453 Totalラン長生成装置
454 シフト値生成装置
455 差分生成装置
456 RUN0生成装置

Claims (10)

  1. 画像データの連続した複数ビットの単位(以下、この単位を画像パターンと記す)及びそれに続く少なくとも1のビットが順次入力され、入力された各画像パターン内で閉じるラン長を算出する処理を行う第1の処理手段と、
    前記第1の処理手段により算出されたラン長に基づき、繰り返しのないラン長と、繰り返しのあるラン長及びその繰り返し数を求める処理を行う第2の処理手段と、
    前記第2の処理手段により求められたラン長及びラン長の繰り返し数に対する符号化処理を、画像パターンに対応したワード毎に行う第3の処理手段と、
    前記第2の処理手段により求められたラン長及びラン長の繰り返し数に基づいて、前記第3の処理手段によって符号化されるワードの符号長を算出し、算出した符号長が所定の閾値を超えるか否かの判定を行う第4の処理手段とを有し、
    前記第3の処理手段は、前記第4の処理手段によって符号長が前記閾値を超えないと判定されたワードに対する符号化処理では、該ワードにおけるラン長をランレングス符号により、ラン長の繰り返し数を反復符号により、それぞれ符号化するが、前記第4の処理手段によって符号長が前記閾値を超えると判定されたワードに対する符号化処理ではパス符号化を行う、
    ことを特徴とする画像圧縮装置。
  2. 画像データの連続した複数ビットの単位(以下、この単位を画像パターンと記す)及びそれに続く少なくとも1のビットが順次入力され、入力された各画像パターン内で閉じるラン長を算出する処理を行う第1の処理手段と、
    前記第1の処理手段により算出されたラン長に基づき、繰り返しのないラン長と、繰り返しのあるラン長及びその繰り返し数を求める処理を行う第2の処理手段と、
    前記第2の処理手段により求められたラン長及びラン長の繰り返し数に対する符号化処理を、画像パターンに対応したワード毎に行う第3の処理手段と、
    前記第2の処理手段により求められたラン長及びラン長の繰り返し数に基づいて、前記第3の処理手段によって符号化されるワードの符号長を算出し、算出した符号長が所定の閾値を超えるか否かの判定を行う第4の処理手段とを有し、
    前記第3の処理手段は、前記第4の処理手段によって符号長が前記閾値を超えないと判定されたワードに対する符号化処理では、該ワードにおけるラン長をランレングス符号により、ラン長の繰り返し数を反復符号により、それぞれ符号化するが、前記第4の処理手段によって符号長が前記閾値を超えると判定されたワードに対する符号化処理ではパス符号化を行い、
    前記第1の処理手段は、入力された画像パターン内で閉じないラン長を累積加算する手段を備えることにより、複数の画像パターンにまたがるラン長を算出する、
    ことを特徴する画像圧縮装置。
  3. 前記第4の処理手段は、前記第2の処理手段により求められたラン長及びラン長の繰り返し数に基づき算出した、前記第3の処理手段によって符号化されるワードの符号長を、該ワードにおいて閉じていない途中のラン長及びラン長の繰り返し数の符号の分を含めるように補正する手段を有し、該補正する手段によって補正後の符号長が前記閾値を超えるか否かの判定を行うことを特徴とする請求項 1 又は2記載の画像圧縮装置。
  4. さらに、前記第 1 の処理手段によって算出されたラン長に基づき、前記第3の処理手段によって符号化されるワードの次のワードでパス符号化が行なわれるか否かの判定を行う第5の処理手段を有し、
    前記第4の処理手段における前記補正する手段による符号長の補正量が、前記第5の処理手段による判定結果に応じて制御される、
    ことを特徴とする請求項3記載の画像圧縮装置。
  5. 画像データを圧縮する請求項1、2、3又は4記載の画像圧縮装置と
    前記画像圧縮装置により圧縮された符号データを記憶する記憶手段と、
    前記記憶手段に記憶されている符号データを伸長する画像伸長手段と、
    前記画像伸長手段により伸長された画像データを作像する作像手段とを有することを特徴とする画像形成装置。
  6. 画像データの連続した複数ビットの単位(以下、この単位を画像パターンと記す)及びそれに続く少なくとも1のビットが順次入力され、入力された各画像パターン内で閉じるラン長を算出する処理を行う第1の処理工程と、
    前記第1の処理工程により算出されたラン長に基づき、繰り返しのないラン長と、繰り返しのあるラン長及びその繰り返し数を求める処理を行う第2の処理工程と、
    前記第2の処理工程により求められたラン長及びラン長の繰り返し数に対する符号化処理を、画像パターンに対応したワード毎に行う第3の処理工程と、
    前記第2の処理工程により求められたラン長及びラン長の繰り返し数に基づいて、前記第3の処理工程によって符号化されるワードの符号長を算出し、算出した符号長が所定の閾値を超えるか否かの判定を行う第4の処理工程とを有し、
    前記第3の処理工程は、前記第4の処理工程によって符号長が前記閾値を超えないと判定されたワードに対する符号化処理では、該ワードにおけるラン長をランレングス符号により、ラン長の繰り返し数を反復符号により、それぞれ符号化するが、前記第4の処理工程によって符号長が前記閾値を超えると判定されたワードに対する符号化処理ではパス符号化を行う、
    ことを特徴とする画像圧縮方法。
  7. 画像データの連続した複数ビットの単位(以下、この単位を画像パターンと記す)及びそれに続く少なくとも1のビットが順次入力され、入力された各画像パターン内で閉じるラン長を算出する処理を行う第1の処理工程と、
    前記第1の処理工程により算出されたラン長に基づき、繰り返しのないラン長と、繰り返しのあるラン長及びその繰り返し数を求める処理を行う第2の処理工程と、
    前記第2の処理工程により求められたラン長及びラン長の繰り返し数に対する符号化処理を、画像パターンに対応したワード毎に行う第3の処理工程と、
    前記第2の処理工程により求められたラン長及びラン長の繰り返し数に基づいて、前記第3の処理工程によって符号化されるワードの符号長を算出し、算出した符号長が所定の閾値を超えるか否かの判定を行う第4の処理工程とを有し、
    前記第3の処理工程は、前記第4の処理工程によって符号長が前記閾値を超えないと判定されたワードに対する符号化処理では、該ワードにおけるラン長をランレングス符号により、ラン長の繰り返し数を反復符号により、それぞれ符号化するが、前記第4の処理工程によって符号長が前記閾値を超えると判定されたワードに対する符号化処理ではパス符号化を行い、
    前記第1の処理工程は、入力された画像パターン内で閉じないラン長を累積加算する工程を含むことにより、複数の画像パターンにまたがるラン長を算出する、
    ことを特徴する画像圧縮方法。
  8. 前記第4の処理工程は、前記第2の処理工程により求められたラン長及びラン長の繰り返し数に基づき算出した、前記第3の処理工程によって符号化されるワードの符号長を、該ワードにおいて閉じていない途中のラン長及びラン長の繰り返し数の符号の分を含めるように補正する工程を含み、該補正する工程によって補正後の符号長が前記閾値を超えるか否かの判定を行うことを特徴とする請求項6又は7記載の画像圧縮方法。
  9. さらに、前記第 1 の処理工程によって算出されたラン長に基づき、前記第3の処理工程によって符号化されるワードの次のワードでパス符号化が行なわれるか否かの判定を行う第5の処理工程を有し、
    前記第4の処理工程における前記補正する工程による符号長の補正量が、前記第5の処理工程による判定結果に応じて制御される、
    ことを特徴とする請求項8記載の画像圧縮方法。
  10. コンピュータが読み取り可能な記録媒体であって、請求項6又は7記載の画像圧縮方法の各処理工程をコンピュータに実行させるためのプログラムが記録されたことを特徴とする記録媒体。
JP2001126558A 2001-04-24 2001-04-24 画像圧縮装置、画像形成装置、画像圧縮方法及び記録媒体 Expired - Fee Related JP3865203B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2001126558A JP3865203B2 (ja) 2001-04-24 2001-04-24 画像圧縮装置、画像形成装置、画像圧縮方法及び記録媒体
US10/127,553 US6915017B2 (en) 2001-04-24 2002-04-23 Image compression apparatus, image expansion apparatus, image forming apparatus, image compression method, image expansion method and storage medium
US11/135,523 US7483586B2 (en) 2001-04-24 2005-05-24 Image compression apparatus, image expansion apparatus, image forming apparatus, image compression method, image expansion method and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001126558A JP3865203B2 (ja) 2001-04-24 2001-04-24 画像圧縮装置、画像形成装置、画像圧縮方法及び記録媒体

Publications (3)

Publication Number Publication Date
JP2002320093A JP2002320093A (ja) 2002-10-31
JP2002320093A5 JP2002320093A5 (ja) 2006-05-25
JP3865203B2 true JP3865203B2 (ja) 2007-01-10

Family

ID=18975572

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001126558A Expired - Fee Related JP3865203B2 (ja) 2001-04-24 2001-04-24 画像圧縮装置、画像形成装置、画像圧縮方法及び記録媒体

Country Status (2)

Country Link
US (2) US6915017B2 (ja)
JP (1) JP3865203B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8150152B2 (en) 2007-08-31 2012-04-03 Ricoh Company, Ltd. Device and method for encoding image data

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4134659B2 (ja) * 2002-09-30 2008-08-20 ブラザー工業株式会社 画像形成装置及び画像形成方法
JP4133369B2 (ja) * 2003-01-27 2008-08-13 株式会社リコー 画像処理装置、方法及びプログラム
JP2005208575A (ja) * 2003-12-26 2005-08-04 Ricoh Co Ltd 画像処理装置、画像処理方法、およびその方法をコンピュータで実行するプログラム
JP2006174407A (ja) * 2004-11-16 2006-06-29 Sharp Corp 画像形成装置,画像形成方法及び画像形成プログラム
JP5135724B2 (ja) * 2005-08-11 2013-02-06 セイコーエプソン株式会社 画像表示装置の色評価方法
JP4950007B2 (ja) * 2007-11-17 2012-06-13 株式会社リコー 画像処理装置及びこれを備えた画像形成装置、並びに、画像処理方法
JP5509957B2 (ja) * 2010-03-18 2014-06-04 株式会社リコー 画像処理装置および画像処理方法、ならびに、画像形成装置
JP5545012B2 (ja) 2010-05-07 2014-07-09 株式会社リコー 画像処理装置および画像処理方法
JP5499894B2 (ja) 2010-05-14 2014-05-21 株式会社リコー 画像処理装置および画像処理方法
JP2012129778A (ja) 2010-12-15 2012-07-05 Ricoh Co Ltd 画像処理装置および画像処理方法
JP5768524B2 (ja) 2011-06-20 2015-08-26 株式会社リコー 画像処理装置、画像処理方法およびプログラム
JP2013084224A (ja) 2011-10-12 2013-05-09 Ricoh Co Ltd 画像処理装置
JP5862267B2 (ja) 2011-12-14 2016-02-16 株式会社リコー 画像処理装置および画像処理方法、ならびに、画像形成装置
JP6044292B2 (ja) 2012-11-16 2016-12-14 株式会社リコー データ処理装置、データ処理方法
JP6221637B2 (ja) 2013-02-19 2017-11-01 株式会社リコー 画像処理装置および画像処理方法、ならびに、画像形成装置
JP6252225B2 (ja) 2014-02-17 2017-12-27 株式会社リコー 画像処理装置、画像処理方法及び画像形成装置
JP6821924B2 (ja) 2016-03-02 2021-01-27 株式会社リコー 画像処理装置、画像処理方法
JP7040058B2 (ja) 2018-01-31 2022-03-23 株式会社リコー 符号化装置
JP2021175049A (ja) 2020-04-22 2021-11-01 株式会社リコー 情報処理装置、情報処理方法、及びプログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4509194A (en) * 1982-09-09 1985-04-02 Minnesota Mining And Manufacturing Company Apparatus for producing a code word
US4800441A (en) * 1986-02-28 1989-01-24 Kabushiki Kaisha Toshiba Binary data compression and expansion processing apparatus
US4843632A (en) * 1986-05-09 1989-06-27 Prodigy Systems Corporation Compressed image expansion system
US4809081A (en) * 1987-06-10 1989-02-28 Gould Inc. Method and apparatus for decompressing encoded data
JPS63314073A (ja) 1987-06-17 1988-12-22 Mitsubishi Electric Corp ディジタル画像符号化方式
US5170445A (en) * 1987-08-04 1992-12-08 Brooktree Corporation Document decompressing system
DE69125763T2 (de) * 1990-07-03 1997-09-25 Canon Kk Bildverarbeitungsgerät
JPH05183760A (ja) 1991-12-26 1993-07-23 Nec Corp 二値画像圧縮装置、二値画像圧縮伝送方法
JPH07236065A (ja) 1993-12-27 1995-09-05 Casio Comput Co Ltd 二値画像圧縮装置
JPH07264417A (ja) 1994-03-18 1995-10-13 Oki Electric Ind Co Ltd 画像符号化方法
JPH07298064A (ja) 1994-04-26 1995-11-10 Tec Corp パターンデータのデータ圧縮方法
JP3433276B2 (ja) 1995-08-18 2003-08-04 富士通株式会社 画像信号圧縮方法及び装置,画像信号復元方法及び装置,画像信号圧縮・復元方法及び装置,並びにプリンタ装置
JPH09248943A (ja) 1996-03-15 1997-09-22 Ricoh Co Ltd ページプリンタにおけるデータ圧縮方法
JPH10117289A (ja) 1996-10-11 1998-05-06 Nikon Corp カラー画像形成システム及びその色合わせ方法
JP3842914B2 (ja) 1999-01-20 2006-11-08 株式会社リコー データ符号化方法/復号方法、データ符号化装置/復号装置、及び、そのデータ符号化方法/復号方法を用いた画像データ記録システム
US6778709B1 (en) * 1999-03-12 2004-08-17 Hewlett-Packard Development Company, L.P. Embedded block coding with optimized truncation
US6658159B1 (en) * 2000-03-17 2003-12-02 Hewlett-Packard Development Company, L.P. Block entropy coding in embedded block coding with optimized truncation image compression

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8150152B2 (en) 2007-08-31 2012-04-03 Ricoh Company, Ltd. Device and method for encoding image data

Also Published As

Publication number Publication date
US20030063813A1 (en) 2003-04-03
JP2002320093A (ja) 2002-10-31
US6915017B2 (en) 2005-07-05
US7483586B2 (en) 2009-01-27
US20050207667A1 (en) 2005-09-22

Similar Documents

Publication Publication Date Title
JP3865203B2 (ja) 画像圧縮装置、画像形成装置、画像圧縮方法及び記録媒体
US7359557B2 (en) Method of and apparatus for encoding, method of and apparatus for decoding, and image forming apparatus
JP3857534B2 (ja) 画像圧縮処理装置
JP5509957B2 (ja) 画像処理装置および画像処理方法、ならびに、画像形成装置
JP3818447B2 (ja) ステッピングモータ駆動の制御装置,原稿スキャナおよび画像形成装置
JP3545174B2 (ja) カラー画像形成装置
JP2007180607A (ja) 画像処理装置および画像処理方法
JP2008023959A (ja) 画像処理装置、画像処理方法、およびプログラム
JP3862146B2 (ja) データ変換装置
JP2007028649A (ja) 画像圧縮処理装置
JP5201040B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP2009302648A (ja) 画像形成システム、画像形成システムの立ち上げ制御方法、及びコンピュータプログラム
JP4253138B2 (ja) 画像形成装置
JP4229744B2 (ja) 画像処理装置、画像処理方法、およびカラー画像形成装置
JP3793050B2 (ja) 倍数演算回路
JP2011019096A (ja) 画像処理装置および画像処理方法
JP2001086305A (ja) 複合型画像処理装置
JP4806606B2 (ja) 画像処理装置及び画像処理方法
KR100300995B1 (ko) 화상인쇄시스템의 인쇄방법
JP4056338B2 (ja) 画像データの圧縮装置及び方法
JP2002014805A (ja) 倍数演算回路
JP2010219777A (ja) 画像処理装置、画像処理方法およびプログラム
JP2004166178A (ja) 2次離散コサイン変換処理装置、画像符号化処理装置、画像符号化方法、プログラムおよび記録媒体
JPH1013641A (ja) 画像処理装置
JPH11215359A (ja) 画像処理装置及び画像処理方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060403

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060821

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060927

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060928

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101013

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111013

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121013

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131013

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees