(57)【特許請求の範囲】
【請求項１】
データを走査して得られる色毎に交互のランレングス数値列を入力し、所定の符号列に変換して出力する符号化方法であって、
所定のランレングス数値を入力した時に前記ランレングス数値の値が同色の直前のランレングス数値に一致する場合を一致事象と設定すると共に一致しない事象を不一致事象と設定し、一致事象が連続する数を反復数と設定し、前記一致事象または一致事象の連続が発生した場合には前記反復数に対応する反復数符号を生成し、前記不一致事象が発生した場合には前記ランレングス数値の値を示す符号を生成することを特徴とするデータ符号化方法。
【請求項２】
前記一致事象または一致事象の連続に対して前記反復数に対応する符号を生成し、前記不一致事象に対して前記ランレングス数値の値を示す符号を生成するための制御内容には、前記反復数を記憶するための反復数記憶手段に初期値を格納する初期化段階と、前記一致事象の発生に対応して前記反復数記憶手段に格納された前記反復数の値を増加させる増加段階と、該時点における前記不一致事象の発生に対応して前記反復数記憶手段に格納された前記反復数の値が初期値でない場合には、前記反復数の値を示す符号を出力した後に前記反復数記憶手段に格納された前記反復数の値を初期値に戻し、前記反復数が初期値である時点で前記ランレングス数値の値を示す符号を生成する符号生成段階と、対象データの符号化が終了するまで、前記増加段階および前記符号生成段階を繰り返す繰り返し段階と、符号化の対象となるデータの符号化が終了した時点で、前記反復数の値が初期値でない場合には、前記反復数の値を示す符号を出力する符号出力段階とを有することを特徴とする請求項１に記載のデータ符号化方法。
【請求項３】
前記一致事象及び不一致事象を識別する制御は、色数分のランレングス数値を記憶・参照するためのランレングス値記憶手段Ａ及びランレングス値記憶手段Ｌに所定の初期値を格納する初期化段階と、所定の前記ランレングス数値が前記各ランレングス値記憶手段Ｌに入力された時点で、前記ランレングス数値と前記ランレングス値記憶手段Ａに格納された値とが一致する場合が一致事象であり、一致しない場合が不一致事象であると識別する識別段階と、前記識別段階の後、次のランレングス値入力より以前の時点において、前記ランレングス値記憶手段Ａに前記ランレングス値記憶手段Ｌの値を格納した後、前記ランレングス値記憶手段Ｌに前記所定のランレングス数値の値を格納する段階とを備えたことを特徴とする請求項１または請求項２に記載のデータ符号化方法。
【請求項４】
前記一致事象及び不一致事象を識別する制御の初期化段階において、前記ランレングス値記憶手段Ａにランレングスの測定を開始するときの対象色とは異なる色で始まる場合を意味する初期値を設定することを特徴とする請求項３に記載のデータ符号化方法。
【請求項５】
データを走査して得られる色毎に交互のランレングス数値列を入力し、所定の符号列に変換して出力する符号化装置であって、
所定のランレングス数値を入力し記憶するランレングス値記憶手段Ｌと、前記ランレングス数値と同色の直前のランレングス数値を記憶するランレングス値記憶手段Ａと、前記ランレングス数値の値が同色の直前のランレングス数値に一致するか否かを判別する判別手段と、前記ランレングス数値の値が同色の直前のランレングス値に一致する場合に該一致が反復する反復数を記憶する反復数記憶手段と、前記反復数を示す符号を生成する反復数符号生成手段と、前記ランレングス数値の値が同色の直前のランレングス値に一致しない場合には前記ランレングス数値の値を示す符号を生成するランレングス符号生成手段とを具備することを特徴とするデータ符号化装置。
【請求項６】
前記不一致事象に対応して前記ランレングス数値の値を示す符号を生成し、前記一致事象または一致事象の連続に対応する前記反復数に対応して符号を生成するデータ符号化装置であって、
反復数を記憶する反復数記憶手段と、前記一致事象の発生のたびに前記反復数の値を増加させる反復数演算手段と、前記不一致事象の発生に際し、該不一致事象の発生時点における前記反復数の値が初期値でない場合には、前記反復数の値を示す符号を出力した後に反復数の値を初期値に戻し、反復数が初期値である時点で前記ランレングス数値の値を示す符号を生成するランレングス符号生成手段と、符号化の対象となるデータの符号化が終了するまで前記各手段の動作を繰り返す制御を行う制御手段と、対象データの符号化が終了となった時点で前記反復数の値が初期値でない場合に、前記反復数の値を示す符号を出力する反復数符号生成手段とを備えたことを特徴とする請求項５記載のデータ符号化装置。
【請求項７】
前記ランレングス数値を入力し記憶するランレングス値記憶手段Ｌと、前記ランレングス数値と同色の直前のランレングス数値を記憶するランレングス値記憶手段Ａと、反復数を記憶する反復数記憶手段とは、マイクロプロセッサの汎用レジスタにより構成されることを特徴とする請求項５または６に記載のデータ符号化装置。
【請求項８】
請求項１から請求項４までの何れか１項に記載されたデータ符号化方法を画像形成装置に適用したことを特徴とする画像データ記録システム。
【請求項９】
請求項８に記載された画像形成装置が、プリンタであることを特徴とする画像データ記録システム。
【請求項１０】
請求項１から請求項４までの何れか１項に記載のデータ符号化方法を用いて生成された符号列データを走査して得られる符号列を入力し、色毎に交互のランレングス数値列に復号して出力するデータ復号方法であって、
入力した符号列が前記ランレングス符号生成手段により生成された符号である場合には、前記符号が表わすランレングス数値を出力し、入力した符号列が前記反復数符号生成手段により生成された符号である場合には、同色の直前のランレングス数値を反復数符号が表わす反復数の個数分出力することを特徴とするデータ復号方法。
【請求項１１】
請求項１０に記載のデータ復号方法において、色数分のランレングス数値を記憶・参照するための複号側ランレングス値記憶手段Ａ及び復号側ランレングス値記憶手段Ｌに符号化時と同じ初期値を格納する初期化段階と、所定の符号を入力・復号して前記符号が示す数値とその属性を得る段階と、前記符号が示す数値の属性が前記ランレングス符号である場合には、前記符号が示す数値をランレングス数値として出力し、前記複号側ランレングス値記憶手段Ａに前記復号側ランレングス値記憶手段Ｌの内容を格納した後、前記復号側ランレングス値記憶手段Ｌに前記ランレングス数値を格納する段階と、前記符号が示す数値の属性が前記反復符号である場合には、前記反復数を記憶・参照するための反復数記憶手段に前記反復数の値を格納し、前記反復数の値が初期値となるまで、前記複号側ランレングス値記憶手段Ａに記憶された数値をランレングス数値として出力し、前記複号側ランレングス値記憶手段Ａに前記復号側ランレングス値記憶手段Ｌに記憶された値を格納した後、前記復号側ランレングス値記憶手段Ｌに前記ランレングス数値または前記複号側ランレングス値記憶手段Ａに記憶された値を格納し、前記反復数記憶手段に記憶された値を所定値減じる処理を繰り返す段階と、復号化の対象となる符号列のデータが終了するまで、前記所定の符号単位を入力・復号して前記符号が示す数値とその属性を得る段階から前記反復数の値を所定値減じる処理を繰り返す段階までを繰り返す段階とを有することを特徴とするデータ復号方法。
【請求項１２】
請求項１１に記載のデータ復号方法を用いたデータ復号装置であって、
入力した符号列を符号単位毎に記憶する符号列記憶手段と、前記符号単位の符号が前記ランレングス符号である場合には、前記ランレングス符号が表わすランレングス数値を生成するランレングス値生成手段と、入力した符号単位が前記反復数符号である場合には、前記複号側ランレングス値記憶手段Ａに記憶された同色の直前のランレングス数値を前記符号が表わす反復数の個数分出力するランレングス値出力手段とを備えたことを特徴とするデータ復号装置。
【請求項１３】
請求項１２に記載のデータ復号装置において、色数分のランレングス数値を記憶・参照するための前記複号側ランレングス値記憶手段Ａ及び復号側ランレングス値記憶手段Ｌと、所定の符号単位を入力・復号して前記符号が示す数値とその属性を得る復号数値・属性判別手段と、前記復号数値・属性判別手段にて復号された数値の属性が前記ランレングス符号である場合には、前記数値をランレングス数値として出力し、前記復号数値・属性判別手段にて復号された数値の属性が前記反復数符号である場合には、前記反復数の値が初期値となるまで、前記複号側ランレングス値記憶手段Ａに記憶された値をランレングス数値として出力するランレングス値生成手段と、前記復号数値・属性判別手段にて復号された数値の属性が前記反復数符号である場合には、前記数値を格納し記憶する復号側反復数記憶手段と、前記復号側反復数記憶手段に記憶された反復数の値を減じる処理を反復数に対応して繰り返す反復数演算手段と、前記各記憶手段に符号化時と同じ初期値を格納する制御、前記複号側ランレングス値記憶手段Ａに前記復号側ランレングス値記憶手段Ｌに記憶された値を格納させた後に前記復号側ランレングス値記憶手段Ｌに前記ランレングス数値または前記複号側ランレングス値記憶手段Ａに記憶された値を格納させる制御、復号化の対象となる符号列のデータが終了するまで前記反復数演算手段に繰り返し動作させる制御を行う制御手段とを備えたことを特徴とするデータ復号装置。
【請求項１４】
ランレングス数値を入力し記憶する復号側ランレングス値記憶手段Ｌと、前記ランレングス数値と同色の直前のランレングス数値を記憶する複号側ランレングス値記憶手段Ａと、反復数を記憶する反復数記憶手段とは、マイクロプロセッサの汎用レジスタにより構成されることを特徴とする請求項１２または１３に記載のデータ復号装置。
【請求項１５】
前記データ符号化方法により符号化される第１の符号は、４ビット幅を有し、前記４ビットの数値が１０未満であることにより識別され、前記数値に１を加算した値がランレングス数値に対応する前記符号の一形式であり、
第２の符号は８ビット幅を有し、符号列において先行する上位４ビットの値が１０以上の所定値であることにより識別され、下位５ビットの値に１１を加算した値がランレングス数値に対応する前記ランレングス符号の一形式であり、
第３の符号は少なくとも８ビット幅で４の倍数となるビット幅を有し、符号列において先行する上位４ビットの値が１０以上の所定値であることにより識別され、該４ビットに続く各４ビットについて、その４ビットの値において８以上の数値が検出されるまで各４ビットの下位３ビットを上位に向かって連接した数値に４３を加算した値がランレングス数値に対応する前記符号の一形式であり、
第４の符号は４ビット幅を有し、該４ビットの数値が１０以上の所定値であることにより識別され、前記反復数が１であることに対応する前記符号の一形式であり、
第５の符号は４ビット幅を有し、該４ビットの数値が１０以上の所定値であることにより識別され、前記反復数が２であることに対応する前記符号の一形式であり、
第６の符号は少なくとも８ビット幅で４の倍数となるビット幅を有し、符号列において先行する上位４ビットの値が１０以上の所定値であることにより識別され、該４ビットに続く各４ビットについて、その４ビットの値において８以上の数値が検出されるまで各４ビットの下位３ビットを上位に向かって連接した数値に４を加算した値が前記反復数に対応する前記反復数符号の一形式であることを特徴とする請求項１から請求項４までの何れか１項に記載のデータ符号化方法。
【請求項１６】
前記データ復号方法により復号される第１の符号は４ビット幅を有し、前記４ビットの数値が１０未満であることにより識別され、前記数値に１を加算した値がランレングス数値に対応する前記符号の一形式であり、
第２の符号は８ビット幅を有し、符号列において先行する上位４ビットの値が１０以上の所定値であることにより識別され、下位５ビットの値に１１を加算した値がランレングス数値に対応する前記ランレングス符号の一形式であり、
第３の符号は少なくとも８ビット幅で４の倍数となるビット幅を有し、符号列において先行する上位４ビットの値が１０以上の所定値であることにより識別され、該４ビットに続く各４ビットについて、その４ビットの値において８以上の数値が検出されるまで各４ビットの下位３ビットを上位に向かって連接した数値に４３を加算した値がランレングス数値に対応する前記符号の一形式であり、
第４の符号は４ビット幅を有し、該４ビットの数値が１０以上の所定値であることにより識別され、前記反復数が１であることに対応する前記符号の一形式であり、
第５の符号は４ビット幅を有し、該４ビットの数値が１０以上の所定値であることにより識別され、前記反復数が２であることに対応する前記符号の一形式であり、
第６の符号は少なくとも８ビット幅で４の倍数となるビット幅を有し、符号列において先行する上位４ビットの値が１０以上の所定値であることにより識別され、該４ビットに続く各４ビットについて、その４ビットの値において８以上の数値が検出されるまで各４ビットの下位３ビットを上位に向かって連接した数値に４を加算した値が前記反復数に対応する前記反復数符号の一形式であることを特徴とする請求項１０または請求項１１に記載のデータ復号方法。
【請求項１７】
前記第１の符号から第６までの符号を生成する符号化手段を備えたことを特徴とする請求項５または６に記載のデータ符号化装置。
【請求項１８】
前記第１の符号から第６までの符号を復号する復号手段を備えたことを特徴とする請求項１２または１３に記載のデータ復号装置。
【請求項１９】
請求項１０、請求項１１または請求項１５の何れか１項に記載されたデータ復号方法を画像形成装置に適用したことを特徴とする画像データ記録システム。
【請求項２０】
請求項１９に記載された画像形成装置はプリンタであることを特徴とする画像データ記録システム。
【請求項２１】
請求項１から請求項４、または請求項１５の何れか１項に記載されたデータ符号化方法をコンピュータに実行させるプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項２２】
請求項１０、請求項１１または請求項１７の何れか１項に記載されたデータ復号方法をコンピュータに実行させるプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばプリンタ装置に画像データを格納する際に使用されるデータの圧縮伸張に用いる符号化及び復号方法及び装置に関し、特に、プリンタ等でフレームバッファ容量を節約する、所謂省メモリ機構に最適な符号化及び復号方法及び装置、システムならびに記録媒体に関するものである。
【０００２】
【従来の技術】
近年、レーザービームプリンタ等の印刷装置では、印刷のための画像データを圧縮即ち符号化して一時的に蓄積し、伸張即ち復号しながら実際の印刷を行うことで必要なメモリを削減する、いわゆる省メモリ技術が広く用いられている。このような省メモリ技術の基本的な目的は必要なメモリ量を削減することによるコストダウンであるので、この圧縮伸張のために複雑な専用ハードウェアを備えることは好ましくなく、従って、装置の制御を司るマイクロプロセッサにこれらの圧縮伸張処理をソフトウェア的に行わせしめることが広く行われている。
この画像データ圧縮の方式及び装置に関しては、既に多数の技術が開示されている。一般的に、二次元静止画像を圧縮対象とする場合には、副走査方向のデータ相関を加味して圧縮を行う二次元圧縮や算術符号を用いる予測符号化方式を用いることで高い圧縮率を得られることがよく知られている。しかし、それらの方式をマイクロプロセッサでソフトウェア的に実行させると処理速度が遅く、印刷の解像度や速度が年々向上する中で省メモリ機構に適応することは困難となってきており、従って、圧縮伸長をマイクロプロセッサに実行させるような場合には、一次元圧縮と称される比較的単純な方式を用いることが普通である。
【０００３】
斯かる従来の一次元圧縮に関しては、ランレングス圧縮やファクシミリ装置等に用いられるＭＨ符号が広く知られている。これらの方式は、コンピュータ処理による擬似中間調画像のように色（白黒）が短い周期（ラン）で頻繁に変化するような画像データに対しては十分な圧縮率が得られないという欠点があることが既に知られている訳であるが、特に近年、パーソナルコンピュータやネットワークの進歩によりイメージデータを印刷する機会が増大しているため、これらの方式を省メモリ機構に採用することは困難な状況になってきている。
又、二次元圧縮方式、予測符号化方式、ＭＨ符号方式等においては、ラインバッファ、確率テーブル、符号テーブルといった比較的大きな容量の参照手段が必要であるという欠点が存在することにも注意が必要である。例えば、１２００ｄｐｉ（ドット／インチ）の解像度、２５ｐｐｍ（ページ／分）の印刷速度であれば画素周波数は１００ＭＨｚを超えるのが一般的である。このような周波数で前記のような参照手段を含む符号化・復号のハードウェア回路を動作させることは非常に困難であり、これを克服するため、回路を並列化することにより低い周波数で動作させるという技法が用いられる訳であるが、テーブル等も含めて並列化する必要があることから、大規模な回路となり、コストアップとなるという欠点が存在することになる。
【０００４】
前記のように色が短い周期で頻繁に変化するような画像データに対する圧縮率を改善するために、画像データやランレングスの繰り返し性を検出するという特徴を備えた符号化技術も知られている。
例えば特許第２６８３５０６号公報には白ワードの長さと黒ワードの長さを両方記述可能な制御ワードを使用することで白ワードと黒ワードが比較的短い周期で規則的に現れるイメージデータを効率的に圧縮する方法及び装置が開示されている。この方式ではあるワード長（バイト）を規定し、全てが白であるデータ単位を白ワード、全てが白でないものを黒ワードとして扱い、それらの繰り返し出現数、黒ワードの内容、制御語等をワード長単位で符号化しているので、符号化及び復号に際して特別な符号テーブルを必要とせずまたワード長単位で処理できるのでマイクロプロセッサで処理しても十分な処理性能を期待できるという点で優れている。しかし、ワード列単位で繰り返し性を検出しているので、対象とする画像データに含まれる繰り返しの周期とワード長とが一致するか倍数となっている場合にのみ高い圧縮率が実現されることになり、一般的な画像データに対して十分な圧縮率が得られないという欠点が存在する。
【０００５】
又、特開平９−６５１４７公報には白及び黒の各々についてランレングス値を記憶し、ある色のランレングス値が同色の直前のランレングス値に一致する場合に所定の反復符号を生成することで圧縮率及び処理速度を改善する方法及び装置が開示されている。色毎にランレングス値を記憶し、現在の値と直前の値を比較した場合の一致する可能性は比較的高いと考えられる。しかし、明らかに、ラン長の一致が発生した時に生成される反復符号が一致しなかった場合に符号化される符号語に比べて十分に少ないデータ量である場合にのみ圧縮率が向上するものであり、より短い符号語を反復符号に割り当てることは相対的に一致しないラン長の符号語を長くするので、色が短い周期で頻繁に変化するような画像データに対しては十分な圧縮率を持つ符号セットを得ることが困難であるという欠点が存在する。同明細書の実施例によるならば、符号セットはＭＨ符号に類似するものであり、マイクロプロセッサによる処理ではランレングス符号方式のような高速性を期待することは困難であり、また、ランレングス値を記憶するための記憶手段が色に対応して設けられているので、ランレングス値の比較や格納に際して、色に応じて参照・格納先を選択する処理が必要となりマイクロプロセッサによる高速処理の妨げになるという欠点も存在する。
【０００６】
【発明が解決しようとする課題】
前述した従来のかかる画像符号化及び復号方法及び装置においては、特定の画像に対しては高圧縮率が達成できるものの、色が短い周期で頻繁に変化するような画像データに対しては十分な圧縮率を得ることが困難であるという問題点があった。
そこで本発明の課題は、このような問題点を解決するものである。即ち、近年多用の一途をたどっている色が短い周期で頻繁に変化するような画像データに対しても、省メモリで十分な圧縮率が確保できるデータ符号化方法／復号方法、データ符号化装置／復号装置、及び、そのデータ符号化方法／復号方法を用いた画像データ記録システムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
前記目的を達成するために、本発明の請求項１記載のデータ符号化方法は、データを走査して得られる色毎に交互のランレングス数値列を入力し、所定の符号列に変換して出力する符号化方法であって、所定のランレングス数値を入力した時に前記ランレングス数値の値が同色の直前のランレングス数値に一致する場合を一致事象と設定すると共に一致しない事象を不一致事象と設定し、一致事象が連続する数を反復数と設定し、前記一致事象または一致事象の連続が発生した場合には前記反復数に対応する反復数符号を生成し、前記不一致事象が発生した場合には前記ランレングス数値の値を示す符号を生成することを特徴とする。
請求項２の本発明は、請求項１に記載のデータ符号化方法において、前記一致事象または一致事象の連続に対して前記反復数に対応する符号を生成し、前記不一致事象に対して前記ランレングス数値の値を示す符号を生成するための制御内容には、前記反復数を記憶するための反復数記憶手段に初期値を格納する初期化段階と、前記一致事象の発生に対応して前記反復数記憶手段に格納された前記反復数の値を増加させる増加段階と、該時点における前記不一致事象の発生に対応して前記反復数記憶手段に格納された前記反復数の値が初期値でない場合には、前記反復数の値を示す符号を出力した後に前記反復数記憶手段に格納された前記反復数の値を初期値に戻し、前記反復数が初期値である時点で前記ランレングス数値の値を示す符号を生成する符号生成段階と、対象データの符号化が終了するまで、前記増加段階および前記符号生成段階を繰り返す繰り返し段階と、符号化の対象となるデータの符号化が終了した時点で、前記反復数の値が初期値でない場合には、前記反復数の値を示す符号を出力する符号出力段階とを有することを特徴とする。
【０００８】
請求項３の本発明は、請求項１または請求項２に記載のデータ符号化方法において、前記一致事象及び不一致事象を識別する制御は、色数分のランレングス数値を記憶・参照するためのランレングス値記憶手段Ａ及びランレングス値記憶手段Ｌに所定の初期値を格納する初期化段階と、所定の前記ランレングス数値が前記各ランレングス値記憶手段Ｌに入力された時点で、前記ランレングス数値と前記ランレングス値記憶手段Ａに格納された値とが一致する場合が一致事象であり、一致しない場合が不一致事象であると識別する識別段階と、前記識別段階の後、次のランレングス値入力より以前の時点において、前記ランレングス値記憶手段Ａに前記ランレングス値記憶手段Ｌの値を格納した後、前記ランレングス値記憶手段Ｌに前記所定のランレングス数値の値を格納する段階とを備えたことを特徴とする。
請求項４の本発明は、請求項３に記載のデータ符号化方法において、前記一致事象及び不一致事象を識別する制御の初期化段階において、前記ランレングス値記憶手段Ａにランレングスの測定を開始するときの対象色とは異なる色で始まる場合を意味する初期値を設定することを特徴とする。
【０００９】
請求項５記載の本発明のデータ符号化装置は、データを走査して得られる色毎に交互のランレングス数値列を入力し、所定の符号列に変換して出力する符号化装置であって、所定のランレングス数値を入力し記憶するランレングス値記憶手段Ｌと、前記ランレングス数値と同色の直前のランレングス数値を記憶するランレングス値記憶手段Ａと、前記ランレングス数値の値が同色の直前のランレングス数値に一致するか否かを判別する判別手段と、前記ランレングス数値の値が同色の直前のランレングス値に一致する場合に該一致が反復する反復数を記憶する反復数記憶手段と、前記反復数を示す符号を生成する反復数符号生成手段と、前記ランレングス数値の値が同色の直前のランレングス値に一致しない場合には前記ランレングス数値の値を示す符号を生成するランレングス符号生成手段とを具備することを特徴とする。
請求項６の本発明は、請求項５記載のデータ符号化装置において、前記不一致事象に対応して前記ランレングス数値の値を示す符号を生成し、前記一致事象または一致事象の連続に対応する前記反復数に対応して符号を生成するデータ符号化装置であって、反復数を記憶する反復数記憶手段と、前記一致事象の発生のたびに前記反復数の値を増加させる反復数演算手段と、前記不一致事象の発生に際し、該不一致事象の発生時点における前記反復数の値が初期値でない場合には、前記反復数の値を示す符号を出力した後に反復数の値を初期値に戻し、反復数が初期値である時点で前記ランレングス数値の値を示す符号を生成するランレングス符号生成手段と、符号化の対象となるデータの符号化が終了するまで前記各手段の動作を繰り返す制御を行う制御手段と、対象データの符号化が終了となった時点で前記反復数の値が初期値でない場合に、前記反復数の値を示す符号を出力する反復数符号生成手段とを備えたことを特徴とする。
【００１０】
請求項７の本発明は、請求項５または６に記載のデータ符号化装置において、前記ランレングス数値を入力し記憶するランレングス値記憶手段Ｌと、前記ランレングス数値と同色の直前のランレングス数値を記憶するランレングス値記憶手段Ａと、反復数を記憶する反復数記憶手段とは、マイクロプロセッサの汎用レジスタにより構成されることを特徴とする。
請求項８記載の本発明の画像データ記録システムは、請求項１から請求項４までの何れか１項に記載されたデータ符号化方法を画像形成装置に適用したことを特徴とする。
請求項９記載の本発明の画像データ記録システムは、請求項８に記載された画像形成装置が、プリンタであることを特徴とする。
請求項１０記載の本発明のデータ復号方法は、請求項１から請求項４までの何れか１項に記載のデータ符号化方法を用いて生成された符号列データを走査して得られる符号列を入力し、色毎に交互のランレングス数値列に復号して出力するデータ復号方法であって、入力した符号列が前記ランレングス符号生成手段により生成された符号である場合には、前記符号が表わすランレングス数値を出力し、入力した符号列が前記反復数符号生成手段により生成された符号である場合には、同色の直前のランレングス数値を反復数符号が表わす反復数の個数分出力することを特徴とする。
【００１１】
請求項１１の本発明は、請求項１０に記載のデータ復号方法において、色数分のランレングス数値を記憶・参照するための複号側ランレングス値記憶手段Ａ及び復号側ランレングス値記憶手段Ｌに符号化時と同じ初期値を格納する初期化段階と、所定の符号を入力・復号して前記符号が示す数値とその属性を得る段階と、前記符号が示す数値の属性が前記ランレングス符号である場合には、前記符号が示す数値をランレングス数値として出力し、前記複号側ランレングス値記憶手段Ａに前記復号側ランレングス値記憶手段Ｌの内容を格納した後、前記復号側ランレングス値記憶手段Ｌに前記ランレングス数値を格納する段階と、前記符号が示す数値の属性が前記反復符号である場合には、前記反復数を記憶・参照するための反復数記憶手段に前記反復数の値を格納し、前記反復数の値が初期値となるまで、前記複号側ランレングス値記憶手段Ａに記憶された数値をランレングス数値として出力し、前記複号側ランレングス値記憶手段Ａに前記復号側ランレングス値記憶手段Ｌに記憶された値を格納した後、前記復号側ランレングス値記憶手段Ｌに前記ランレングス数値または前記複号側ランレングス値記憶手段Ａに記憶された値を格納し、前記反復数記憶手段に記憶された値を所定値減じる処理を繰り返す段階と、復号化の対象となる符号列のデータが終了するまで、前記所定の符号単位を入力・復号して前記符号が示す数値とその属性を得る段階から前記反復数の値を所定値減じる処理を繰り返す段階までを繰り返す段階とを有することを特徴とする。
請求項１２記載の本発明のデータ復号装置は、請求項１１に記載のデータ復号方法を用いたデータ復号装置であって、入力した符号列を符号単位毎に記憶する符号列記憶手段と、前記符号単位の符号が前記ランレングス符号である場合には、前記ランレングス符号が表わすランレングス数値を生成するランレングス値生成手段と、入力した符号単位が前記反復数符号である場合には、前記複号側ランレングス値記憶手段Ａに記憶された同色の直前のランレングス数値を前記符号が表わす反復数の個数分出力するランレングス値出力手段とを備えたことを特徴とする。
【００１２】
請求項１３の本発明は、請求項１２に記載のデータ復号装置において、色数分のランレングス数値を記憶・参照するための前記複号側ランレングス値記憶手段Ａ及び復号側ランレングス値記憶手段Ｌと、所定の符号単位を入力・復号して前記符号が示す数値とその属性を得る復号数値・属性判別手段と、前記復号数値・属性判別手段にて復号された数値の属性が前記ランレングス符号である場合には、前記数値をランレングス数値として出力し、前記復号数値・属性判別手段にて復号された数値の属性が前記反復数符号である場合には、前記反復数の値が初期値となるまで、前記複号側ランレングス値記憶手段Ａに記憶された値をランレングス数値として出力するランレングス値生成手段と、前記復号数値・属性判別手段にて復号された数値の属性が前記反復数符号である場合には、前記数値を格納し記憶する復号側反復数記憶手段と、前記復号側反復数記憶手段に記憶された反復数の値を減じる処理を反復数に対応して繰り返す反復数演算手段と、前記各記憶手段に符号化時と同じ初期値を格納する制御、前記複号側ランレングス値記憶手段Ａに前記復号側ランレングス値記憶手段Ｌに記憶された値を格納させた後に前記復号側ランレングス値記憶手段Ｌに前記ランレングス数値または前記複号側ランレングス値記憶手段Ａに記憶された値を格納させる制御、復号化の対象となる符号列のデータが終了するまで前記反復数演算手段に繰り返し動作させる制御を行う制御手段とを備えたことを特徴とする。
請求項１４の本発明は、請求項１２または１３に記載のデータ復号装置において、ランレングス数値を入力し記憶する復号側ランレングス値記憶手段Ｌと、前記ランレングス数値と同色の直前のランレングス数値を記憶する複号側ランレングス値記憶手段Ａと、反復数を記憶する反復数記憶手段とは、マイクロプロセッサの汎用レジスタにより構成されることを特徴とする。
【００１３】
請求項１５の本発明は、請求項１から請求項４までの何れか１項に記載のデータ符号化方法において、前記データ符号化方法により符号化される第１の符号は、４ビット幅を有し、前記４ビットの数値が１０未満であることにより識別され、前記数値に１を加算した値がランレングス数値に対応する前記符号の一形式であり、第２の符号は８ビット幅を有し、符号列において先行する上位４ビットの値が１０以上の所定値であることにより識別され、下位５ビットの値に１１を加算した値がランレングス数値に対応する前記ランレングス符号の一形式であり、第３の符号は少なくとも８ビット幅で４の倍数となるビット幅を有し、符号列において先行する上位４ビットの値が１０以上の所定値であることにより識別され、該４ビットに続く各４ビットについて、その４ビットの値において８以上の数値が検出されるまで各４ビットの下位３ビットを上位に向かって連接した数値に４３を加算した値がランレングス数値に対応する前記符号の一形式であり、第４の符号は４ビット幅を有し、該４ビットの数値が１０以上の所定値であることにより識別され、前記反復数が１であることに対応する前記符号の一形式であり、第５の符号は４ビット幅を有し、該４ビットの数値が１０以上の所定値であることにより識別され、前記反復数が２であることに対応する前記符号の一形式であり、第６の符号は少なくとも８ビット幅で４の倍数となるビット幅を有し、符号列において先行する上位４ビットの値が１０以上の所定値であることにより識別され、該４ビットに続く各４ビットについて、その４ビットの値において８以上の数値が検出されるまで各４ビットの下位３ビットを上位に向かって連接した数値に４を加算した値が前記反復数に対応する前記反復数符号の一形式であることを特徴とする。
【００１４】
請求項１６の本発明は、請求項１０または請求項１１に記載のデータ復号方法において、前記データ復号方法により復号される第１の符号は４ビット幅を有し、前記４ビットの数値が１０未満であることにより識別され、前記数値に１を加算した値がランレングス数値に対応する前記符号の一形式であり、第２の符号は８ビット幅を有し、符号列において先行する上位４ビットの値が１０以上の所定値であることにより識別され、下位５ビットの値に１１を加算した値がランレングス数値に対応する前記ランレングス符号の一形式であり、第３の符号は少なくとも８ビット幅で４の倍数となるビット幅を有し、符号列において先行する上位４ビットの値が１０以上の所定値であることにより識別され、該４ビットに続く各４ビットについて、その４ビットの値において８以上の数値が検出されるまで各４ビットの下位３ビットを上位に向かって連接した数値に４３を加算した値がランレングス数値に対応する前記符号の一形式であり、第４の符号は４ビット幅を有し、該４ビットの数値が１０以上の所定値であることにより識別され、前記反復数が１であることに対応する前記符号の一形式であり、第５の符号は４ビット幅を有し、該４ビットの数値が１０以上の所定値であることにより識別され、前記反復数が２であることに対応する前記符号の一形式であり、第６の符号は少なくとも８ビット幅で４の倍数となるビット幅を有し、符号列において先行する上位４ビットの値が１０以上の所定値であることにより識別され、該４ビットに続く各４ビットについて、その４ビットの値において８以上の数値が検出されるまで各４ビットの下位３ビットを上位に向かって連接した数値に４を加算した値が前記反復数に対応する前記反復数符号の一形式であることを特徴とする。
【００１５】
請求項１７の本発明は、請求項５または６に記載のデータ符号化装置において、前記第１の符号から第６までの符号を生成する符号化手段を備えたことを特徴とする。
請求項１８の本発明は、請求項１２または１３に記載のデータ復号装置において、前記第１の符号から第６までの符号を復号する復号手段を備えたことを特徴とする。
請求項１９記載の本発明の画像データ記録システムは、請求項１０、請求項１１または請求項１５の何れか１項に記載されたデータ復号方法を画像形成装置に適用したことを特徴とする。
請求項２０記載の本発明の画像データ記録システムは、請求項１９に記載された画像形成装置がプリンタであることを特徴とする。
請求項２１記載の本発明のコンピュータ読み取り可能な記録媒体は、請求項１から請求項４、または請求項１５の何れか１項に記載されたデータ符号化方法をコンピュータに実行させるプログラムを記録したことを特徴とする。
請求項２２記載の本発明のコンピュータ読み取り可能な記録媒体は、請求項１０、請求項１１または請求項１７の何れか１項に記載されたデータ復号方法をコンピュータに実行させるプログラムを記録したことを特徴とする。
【００１６】
前記のように構成されたデータの符号化方法は、請求項１によれば、生成される符号数を削減し、コンピュータ処理による擬似中間調画像のように色が短い周期で頻繁に変化するような画像データに対しても十分に高い圧縮率を得ることできる符号化方法を提供することができる。
前記のように構成されたデータの符号化方法は、請求項２によれば、前記制御をマイクロプロセッサによるソフトウェア処理で行うことによって十分高い処理速度を期待することが可能となるよう、代入、加算、及び、比較・分岐といった簡素な制御で実現することができる符号化方法を提供することができる。
前記のように構成されたデータの符号化方法は、請求項３によれば、前記制御をマイクロプロセッサによるソフトウェア処理で行っても十分高い処理速度を期待することが可能となるよう、色に基づく判断・分岐が不要で、且つ、代入、及び、比較・分岐といった簡素な制御で実現する画像データの符号化方法を提供することができる。
【００１７】
前記のように構成されたデータの符号化方法は、請求項４によれば、ランレングス数値が０であることを表現する符号を不要とし、従って、より高い圧縮率を有する符号セットを利用可能とする符号化方法を提供することができる。
前記のように構成されたデータの符号化装置は、請求項５によれば、より高い圧縮率が達成可能な画像データの符号化装置を提供することができる。
前記のように構成されたデータの符号化装置は、請求項６によれば、前記制御をマイクロプロセッサによるソフトウェア処理で行っても十分高い処理速度を期待することが可能となるよう代入、減算、及び、比較・分岐といった簡素な制御で実現でき、処理が単純となり極めて高速な画像データの符号化装置を提供することができる。
前記のように構成されたデータの符号化装置は、請求項７によれば、極めて高い処理速度を期待することが可能な画像データの符号化装置を提供することができる。
前記のように構成されたデータ記録システムは、請求項８によれば、種々の場合に適応することが可能な画像データの符号化方法を用いるデータ記録システムを提供することができる。
【００１８】
前記のように構成された画像形成装置は、請求項９によればプリンタであり、よって高速で且つ省メモリ対応可能なプリンタを提供することができる。
前記のように構成されたデータの復号方法は、請求項１０によれば、迅速で且つ省メモリーが達成できるデータ復号方法を提供することができる。
前記のように構成されたデータの復号方法は、請求項１１によれば、省メモリーで且つ迅速な画像データ復号方法を提供できる。
前記のように構成されたデータの復号装置は、請求項１２によれば、省メモリーで且つ迅速な画像データ復号が可能な復号装置を提供することができる。
前記のように構成されたデータの復号装置は、請求項１３によれば、迅速なデータ復号が可能で且つ省メモリーのデータ復号装置を提供することができる。
前記のように構成されたデータの復号装置は、請求項１４に記載した通り、処理速度の高いデータ処理が可能であるとともにプロセッサに内在するメモリと兼用することができ、省メモリのデータ復号装置を提供することができる。
【００１９】
前記のように構成されたデータの符号化方法は、請求項１５に記載した通り、符号化生成に際して特殊なテーブル参照を必要とせず、それらの処理を代入、加減算、シフト、論理積、及び、比較・分岐といった簡素な制御で実現できる符号セットを導入するので、該制御をマイクロプロセッサによるソフトウェア処理で行っても十分高い処理速度を期待することが可能な画像データの符号化方法を提供することができる。更に、導入する各符号は処理を容易にハードウェア化できるよう４ビットまたはその倍数の符号長を有するものであり、ハードウェア処理とソフトウェア処理を組み合わせるようにすることで、同一の符号化方法を幅広い性能レンジに適応させることが可能である画像データの符号化方法を提供することができる。
前記のように構成されたデータの符号化及び復号方法は、請求項１６に記載した通り、数値復号に際して特殊なテーブル参照を必要とせず、それらの処理を代入、加減算、シフト、論理積、及び、比較・分岐といった簡素な制御で実現できる符号セットを導入するので、該制御をマイクロプロセッサによるソフトウェア処理で行っても十分高い処理速度を期待することが可能な画像データの復号方法を提供することができる。更に、導入する各符号は処理を容易にハードウェア化できるよう４ビットまたはその倍数の符号長を有するものであり、ハードウェア処理とソフトウェア処理を組み合わせるようにすることで、同一の復号方法を幅広い性能レンジに適応させることが可能である画像データの復号方法を提供することができる。
【００２０】
前記のように構成されたデータの符号化装置は、請求項１７に記載した通り、画像の符号化において極めて効率的なデータ処理を行う符号化装置を提供することができる。
前記のように構成されたデータの復号装置は、請求項１８に記載した通り、画像の復号において極めて効率的なデータ処理を行う復号装置を提供することができる。
前記のように構成されたデータ記録システムは、請求項１９に記載した通り、擬似中間調のような色の交番の激しい画像にも適切に対応できる画像データ記録システムを提供することができる。
前記のように構成された画像形成装置は、請求項２０に記載した通り、請擬似中間調のような色の交番の激しい画像にも適切に対応できる画像形成装置が提供できる。
請求項２１、２２に記載のコンピュータ読み取り可能な記録媒体は、記録媒体を利用することでコンピュータによってプログラムを読み取り可能とし、プログラムを実行することができる。
【００２１】
【発明の実施の形態】
本発明の実施の形態を図面を参照しつつて詳細に説明する。
図１は本発明の基本的な原理を説明するための図である。以下に述べる原理は本発明の全ての請求項に共通するものであり、コンピュータ処理による擬似中間調画像のように色が短い周期で頻繁に変化するような画像データに対しても十分に高い圧縮率を得ることを意図して発案されている。
図１では、圧縮の対象となる画像データが６ドットの白で始まり、次に３ドットの黒、云々と続く場合を例としている。ランレングス数値の計測を白から始める場合、画像データを走査して得られる色毎に交互のランレングス数値列は図の“ランレングスＬ”に示すような値となり、この値が符号化装置に順次入力されるものとする。
前記ランレングス数値Ｌの値が同色の直前のランレングス数値に一致する場合を一致事象Ｐ（以下事象Ｐと称する）、一致しない場合を不一致事象Ｑ（以下事象Ｑと称する）とし、事象Ｐが連続する数を反復数Ｎ（Ｎ≧１）とする。各ランレングス数値Ｌに対して、事象Ｐとなるか、或いは、事象Ｑとなるかを同図の“事象”の欄に示してある。また、各事象Ｐに対する前記反復数Ｎがどのような値をなるかを同図の“反復数Ｎ”欄に示してある。厳密には、画像データの最初の白の６ドットと最初の黒の３ドットには同色の直前のランレングス数値が存在しないため、何らかの方式定義を与えないと前記事象の判断を行うことができない訳であるが、ここでは単純に両者を事象Ｑと仮定する。
【００２２】
本発明では、前記事象Ｑに対しては前記ランレングス数値Ｌの値を示すＬ符号を生成し、前記事象Ｐまたは事象Ｐの連続に対しては前記反復数Ｎに対応するＮ符号を生成する。生成される符号がＬ符号となるか、或いは、Ｎ符号となるかを同図の“符号”欄に示してある。同図から、容易に判断できるように、計１０個のランレングス数値Ｌの数値入力に対して生成される符号は計６個となり、符号数の低下が可能となることがわかる。
前記の原理が意図した効果を奏するためには、事象Ｐが発生する確率と事象Ｐが連続する確率が十分に高いものである必要のあることは容易に理解できる。本願発明者の観測によれば、通常の文字原稿における事象Ｐの発生確率は１５％程度、事象Ｐが連続する確率は２５％程度に過ぎないが、これらをＭＨ符号で圧縮すると９０％程度の圧縮率が得られる。しかし、網掛け、円グラフのようなパターングラフィックス、あるいは写真イメージのような擬似中間調の画像等で色が短い周期で頻繁に変化するような要素が増えるに従って、事象Ｐの発生確率及び事象Ｐが連続する確率が著しく向上し、逆に、ＭＨ符号による圧縮率は著しく低下する傾向のあることが観測された。ＭＨ符号による圧縮率が３８％と観測中最も低かった画像データにおける事象Ｐの発生確率は９４％、事象Ｐが連続する確率は９９％であった。言い換えるならば、元々高い圧縮率を期待できる画像データについては圧縮率の著しい改善は期待できないが、圧縮率の低さが問題となるような画像データに対して圧縮率の著しい改善が見込まれる訳であり、これは少なくとも１ページ分の画像データを圧縮できるメモリ容量がコストを支配する主要な要因となる省メモリ機構にとって非常に好適な性質と言える。
【００２３】
図２は本発明による符号化装置及び復号装置を画像形成装置に適用した一実施例を示す構成図である。図２には本件発明が適用される周知のプリンタ装置１が示されている。パーソナルコンピュータ等のホストマシーン２からの画像データがホストＩ／Ｆ３を介してコントローラー４に入力される。この際の画像データの一例が前出の図１に示されたランレングス数値Ｌに該当する。５はオペレーショナルパネル、６はパネルＩ／Ｆ、７はフオントＲＯＭ、８はＮＶ−ＲＡＭ、９はオプションＲＡＭ、１０はプリンタエンジン１１にデータを送り込む際のエンジンＩ／Ｆである。１２は、例えばＦＤやＩＣカードもしくはネットワーク上から導入される記録媒体１３に書き込まれたプログラムをプリンタ装置１に導入するための入力装置である。１４はプログラムＲＯＭ、１５はＲＡＭ、１６は制御手段としてのＣＰＵであり、このプログラムＲＯＭ１４、ＲＡＭ１５、ＣＰＵ１６により、本発明の最も主要な特徴部分である符号化装置１７及び復号装置１８が構成されており、この部分を図上黒太枠で囲んである。
【００２４】
本実施例の符号化装置および復号装置を、図３の（ａ）及び（ｂ）に示す。
図３（ａ）は本件発明の符号化装置の内部構成であり、１９はランレングス記憶手段Ａ、２０はランレングス記憶手段Ｂ、２１はランレングス記憶手段Ｌ、２２は判別手段、２３は反復数記憶手段及び演算手段、２４はランレングス符号生成手段、２５は反復数符号生成手段、２６は符号化手段である。この構成の動作に関しては、図４等を用いて以降に説明する。
図３（ｂ）は、前出の符号化方法及び装置により符号化された符号列を復号する方法及び装置に関するものである。３０は復号側ランレングス記憶手段Ａ、３１は復号側ランレングス記憶手段Ｂ、２７は復号にあたり、符号列の数値と属性とを判別する復号数値・属性判別手段と記憶するための復号数値・属性記憶手段を含む復号数値・属性判別記憶手段であり、２８は復号手段、２９は復号側ランレングス値記憶手段Ｌ及び復号側ランレングス値出力手段を含むランレングス値生成手段、３２は復号側反復数記憶手段及び復号側演算手段である。この構成に関する動作も、図４等を用いて以降に説明する。
【００２５】
図４は本発明による符号化方法の一実施例を示すフロー図である。
本図は、請求項１の実施例でもあるが、同時に、請求項２記載の符号生成に関する各段階、及び、請求項３より請求項４記載の事象識別に関する各段階を含むものとする。
まず、同図に用いられている記号について説明する。
Ａ及びＢは、色数分のランレングス数値を記憶・参照するための一時記憶である。
Ｃは、初期化段階において前記Ａ及びＢに代入される定数を意味する。
Ｌは、画像データを走査して得られるランレングス数値を記憶・参照するための一時記憶である。
Ｎは、前記反復数、即ち、前記事象Ｐの連続する数を記憶・参照するための一時記憶である。
本実施例をソフトウェアで構成する場合には、前記Ａ、Ｂ、Ｌ、及び、Ｎは適切な一時記憶手段を用いればよいが、特にマイクロプロセッサの汎用レジスタを用いることが処理速度向上の観点から好ましい。また、前記定数Ｃと制御の各段階はプログラム即ち命令コードとして適切な記憶手段を用いればよい。
【００２６】
以下、図４の各段階に沿って本実施例の動作を説明する。
符号化開始により、まず、ステップ１０においてＡ及びＢに所定の定数Ｃを、Ｎに“０”を代入する。本実施例ではＡ及びＢに同一の値Ｃを代入しているが、ＡとＢに対して別個の値を代入しても構わない。次に、ステップ１１において１個のランレングス数値を取得し、Ｌに格納する。次に、ステップ１２においてＡとランレングス数値Ｌの値を比較し、一致する場合にはステップ１６へ、不一致である場合にはステップ１３へと分岐する。この判断は、前記事象Ｐ及び事象Ｑの識別に相当する。
ＡとＬが一致した場合、つまり事象Ｐの場合、ステップ１６では反復数Ｎの値を“１”増加させる。この処理は事象Ｐが発生した場合には反復数Ｎを表わすＮ符号を生成するためにＮを計数するとともに、符号生成を保留していることに他ならない。
ＡとＬが不一致であった場合、つまり事象Ｑの場合には、先ず、ステップ１３においてＮと“０”とを比較し、Ｎが“０”でない場合、即ち符号生成を保留されている場合には、ステップ１４においてその時点でのＮ値に対応するＮ符号を生成し、ステップ１５においてＮの値を“０”に戻すことで保留状態を解消する。ステップ１５の次、または、先のステップ１３でＮが“０”であった場合、即ち、符号生成保留のない時点で、ステップ１７においてその時点でのＬ値に対応するＬ符号を生成する。
【００２７】
事象Ｐまたは事象Ｑに対応する前記の処理の次に、ステップ１８において、Ａの内容をその時点でのＢの値に更新し、Ｂの値をその時点でのＬの値に更新する。
次に、ステップ１９により全対象画像データに対する処理が終了したか否かを判断し、画像データが残されている場合には前記ステップ１１に分岐して前記ステップ１８に至る制御を繰り返し、画像データが終了した時点でステップ２０へと進む。
ステップ２０においてＮと“０”とを比較し、Ｎが“０”でない場合、即ち符号生成を保留されている場合には、ステップ２１においてその時点でのＮ値に対応するＮ符号を生成して保留状態を解消する。ステップ２１の次、または、先のステップ２０でＮが“０”であった場合、即ち、符号生成保留のない時点で符号化処理を完了する。
以上の説明により、本実施例によるならば、簡素な制御のみで、事象Ｑに対してはランレングス数値Ｌを示すＬ符号が生成され、事象Ｐまたは事象Ｐの連続に対しては反復数Ｎに対応するＮ符号が生成され得ることが理解できる。特に、事象Ｐ及び事象Ｑの判断に際しては、前記Ａ及びＢの一時記憶を色に特定して設けるのではなく、ステップ１８から明らかなように、色とは無関係に順送りする手法を用いているので、ステップ１８及びステップ１２において色に基づく判断が不要となっており高速処理に寄与できる。
【００２８】
前記図１に関する説明においては、第１のランレングス数値と第２のランレングス数値には同色の直前のランレングス数値が存在しないため、何らかの方式定義を与えないと事象の判断を行うことができないことを述べたが、本実施例においては、フロー図を追跡すれば容易に理解できるように、第１のランレングス数値については前記Ａの初期値と、第２のランレングス数値については前記Ｂの初期値との比較が行われ、一致する場合が事象Ｐ、一致しない場合が事象Ｑとなることがわかる。
請求項４記載の発明は、前記Ａの初期値として“０”を代入するものである。該内容を本実施例に適用するならば、前記の説明から明らかなように、第１のランレングス数値が“０”である場合に事象Ｐが発生するという特徴を得ることが可能となる。一般的に少なくとも１ドット以上の画像データを走査して色毎に交互のランレングス数値を生成する場合、ランレングス数値が“０”となるのは、白から測定を始めて画像が黒から始まる場合と、黒から測定を始めて画像が白から始まる場合のみであり、測定開始色を定めればいずれか一方となることがわかる。それ以降のランレングス数値は“１”以上の値を持つので、“０”なる値の発生頻度は非常に低いことがわかる。そこで、この“０”というランレングス数値を事象ＰとみなしてＮ符号で符号化させると、Ｌ符号において“０”なる値を表現する必要がなくなるという特徴を得ることができる。後述する符号セットは実際に、“０”を表現するＬ符号を定義しないものである。
【００２９】
なお、以上の説明では、ステップ１１に示すランレングス測定及びこれに関連するステップ１９に示すデータ終了判断の手順、及び、ステップ１４、ステップ１７、及び、ステップ２１に示す符号生成に関する詳細な制御手順は省略してある。ランレングス測定及びこれに関連するデータ終了判断に関しては、当業者にとっては十分公知の技術であるため省略するものとする。符号生成に関する制御手順を示すためには、先に具体的符号セットを定義する必要があるため、後述するものとする。
図５は本発明による復号方法の一実施例を示すフロー図である。
まず、同図に用いられている記号について説明する。Ａ及びＢは、色数分のランレングス数値を記憶・参照するための一時記憶である。Ｃは、初期化段階において前記Ａ及びＢに代入される定数である。Ｌは、画像データを走査して得られるランレングス数値を記憶・参照するための一時記憶である。Ｎは、前記反復数、即ち、前記事象Ｐの連続する数を記憶・参照するための一時記憶である。Ｗは、符号単位から復号した数値を記憶・参照するための一時記憶である。Ｖは、前記Ｗの内容がランレングス数値（Ｖ＝０）であるか反復数（Ｖ＝１）であるかを示すフラグ情報のための一時記憶である。
前出の符号化方法の場合と同様に、本実施例をソフトウェアで構成する場合には、前記Ａ、Ｂ、Ｌ、及び、Ｎは適切な一時記憶手段を用いればよいが、特にマイクロプロセッサの汎用レジスタを用いることが処理速度向上の観点から好ましい。また、前記定数Ｃと制御の各段階はプログラム、即ち命令コードとして適切な記憶手段を用いればよい。
【００３０】
以下、同図の各段階に沿って本実施例の動作を説明する。
復号開始により、まず、ステップ３０においてＡ及びＢに所定の定数Ｃを代入する。正しい復号が行われるためには、各々に代入される定数は符号化において同名の一時記憶に代入される値と一致するものである必要がある。次に、ステップ３１において一個の符号単位を読み出し、復号して、Ｗに復号した数値を、該数値の属性、即ち反復数か否かをＶに格納する。次に、ステップ３２において該Ｖの値を用いて数値Ｗの属性を判定し、ランレングス数値であれば（Ｖ＝０）処理３８へ、反復数であれば（Ｖ＝１）ステップ３３へと分岐する。ランレングス数値が得られた場合には、まず、ステップ３８において前記Ｗの値をＬに代入してランレングス数値として出力し、ステップ３９においてＡの値をその時点でのＢの値に更新し、Ｂの値をその時点でのＬの値に更新し、ステップ４０へと進む。
反復数が得られた場合には、まず、ステップ３３において前記Ｗの値をＮに格納し、次にステップ３４においてその時点でのＡの値をＬに代入してランレングス数値として出力し、次にステップ３５においてＡの値をその時点でのＢの値に更新し、Ｂの値をその時点でのＬの値に更新し、次にステップ３６においてＮの値を“１”減じ、次にステップ３７においてＮの値を検査してＮが“０”となるまでステップ３４よりステップ３６までを繰り返し、Ｎが“０”となった時点でステップ４０へと進む。
【００３１】
次に、ステップ４０により全対象符号列に対する処理が終了したか否かを判断し、符号データが残されている場合には前記ステップ３１に分岐してステップ４０に至る制御を繰り返し、符号データが終了した時点で復号処理を終了する。
以上の説明により、本実施例によるならば、簡素な制御のみで、前記Ｌ符号とＮ符号とで構成される符号列データから元のランレングス数値列が生成され得ることが理解できる。
但し、本実施例は具体的な数値復号手段を特定しないものであるため、最適の状態とはなっていない点に注意が必要である。即ち、該手段と本実施例を組み合わせて一連の処理とするならば、前記ＷやＶといった一時記憶を経由する必然性がないためである。
以上の説明では、ステップ３４、ステップ３８に示すランレングス数値出力を画像データに戻すための及びこれに関連するステップ４０に示すデータ終了判断の手順、及び、ステップ３１に関する詳細な制御手順は省略してある。前記描画手段及びこれに関連するデータ終了判断は、当業者にとっては十分公知の技術であるため省略するものとする。数値復号手段に関する制御手順を示すためには、先に具体的符号セットを定義する必要があるが、これについては後述するものとする。
【００３２】
図６は、本発明の符号化・復号方法に用いる符号セットの一実施例を示す図である。本実施例の符号セットは、図に示すように、６形式の符号単位から構成される。第１の符号形式Ｌ１より第３の符号形式Ｌ３まではランレングス数値を表わすＬ符号であり、第４の符号形式Ｎ１より第６の符号形式Ｎ３までは反復数を表わすＮ符号である。
第１の符号形式Ｌ１は４ビット幅を有し、該４ビットの数値が“１０”未満であることにより識別され、該数値に“１”を加算した値がランレングス数値Ｌに対応する。
第２の符号形式Ｌ２は８ビット幅を有し、符号列において先行する上位４ビットの値が“１１”または“１２”であることにより識別され、下位５ビットの値に“１１”を加算した値がランレングス数値Ｌに対応する。
第３の符号形式Ｌ３は少なくとも８ビット幅で４の倍数となるビット幅を有し、符号列において先行する上位４ビットの値が“１２”であることにより識別され、該４ビットに続く各４ビットについて、その４ビットの値において“８”以上の数値が検出されるまで各４ビットの下位３ビットを上位に向かって連接、即ちつなぎ合わせをした数値に“４３”を加算した値がランレングス数値Ｌに対応する。
【００３３】
第３の符号形式Ｌ３の右端に記載した数式、即ちＬ＝｛Ｆｎ，…，Ｆ１，Ｆ０｝＋４３は、代表的なハードウェア記述言語であるヴェリログ（Verilog;米国Ｃａｄｅｎｃｅ社の登録商標）の表現を用いたもので括弧の内部で、カンマで区切られたＦｎ等の各要素を記述された順序で連接し１個の数値とすることを意味するものである。
第４の符号形式Ｎ１は４ビット幅を有し、該４ビットの数値が“１３”であることにより識別され、前記反復数Ｎが“１”であることに対応する。
第５の符号形式Ｎ２は４ビット幅を有し、該４ビットの数値が“１４”であることにより識別され、前記反復数Ｎが“２”であることに対応する。
第６の符号形式Ｎ３は少なくとも８ビット幅で４の倍数となるビット幅を有し、符号列において先行する上位４ビットの値が“１５”であることにより識別され、該４ビットに続く各４ビットについて、その４ビットの値において“８”以上の数値が検出されるまで各４ビットの下位３ビットを上位に向かって連接、即ちつなぎ合わせした数値に“４”を加算した値が前記反復数Ｎに対応する。第６の符号形式Ｎ３の右端に記載した数式、即ちＮ＝｛Ｆｎ，…，Ｆ１，Ｆ０｝＋４は、代表的なハードウェア記述言語である例えばヴェリログ（Verilog;米国Ｃａｄｅｎｃｅ社の登録商標）の表現を用いたもので括弧の内部で、カンマで区切られたＦｎ等の各要素を記述された順序で連接し１個の数値とすることを意味するものである。
【００３４】
反復数Ｎが“３”に対応する符号は明示されていないが、Ｎ１符号（Ｎ＝１）とＮ２符号（Ｎ＝２）を組み合わせて用いるものとする。これらの組み合わせで構成される符号量は８ビットであり、Ｎ３形式の符号の最低符号量と同じとなり、この組み合わせ表現を用いることで、ある符号量を持つＮ３符号が対応する値域を上げることが可能となるためである。
また、ランレングス数値が“０”となる符号もまた明示されていないが、この問題は請求項４に記載した発明を用いて、その符号自体を不要とすることが好適である。但し、本実施例の符号形式は表現可能な値域を原理的に制約するものではなく、Ｌ３符号やＮ３符号を用いるならば任意の整数を表現できるという特徴が存在する点に注意されたい。なぜならば、数値を復号するための処理に用いられる一時記憶は有限のビット幅を有するものであり、一方、Ｌ３符号やＮ３符号の長さには制限がないので、連接と加算による処理の結果が桁上がりにより“０”や負数となるような符号を生成することができるからである。
【００３５】
本願発明者の観測によるならば、本実施例の符号セットを用いた符号化により非常に優れた圧縮率が観測された。文字のみの画像データについてはＭＨ方式とほぼ同等の圧縮率が観測され、擬似中間調画像のように色が短い周期で頻繁に変化するような画像データについてはＭＨ方式に比べて著しく高い圧縮率が観測された。先に述べたように、ＭＨ符号による圧縮率が観測中最も低かった画像データの圧縮率は３８％であったが、本方式により９２％に改善された。
前記に具体的符号セットの実施例を導入したことで、以下、この符号セットの使用を前提に、符号化方法に関するＬ符号生成方法の実施例、Ｎ符号生成方法の実施例、及び、復号方法に関して数値復号方法の実施例を順次説明する。
【００３６】
図７は前記事象Ｑに呼応してランレングス符号を生成する制御の実施例を示すフロー図である。
これは前出の図４のステップ１７を具体化したものであり、入力である一個のランレングス数値Ｌを前記図６に記載した符号セットのＬ１〜Ｌ３形式のいずれか一つに変換する。同図において、“Ｋ（ｎ）←Ｘ；”なる代入式は、“Ｘ”の下位“ｎ”ビットを符号として出力することを意味するものとする。また、“Ｗ”は前記Ｌ３符号を生成する処理に用いる一時記憶である。
Ｌ符号生成処理が開始されると、即ち、ある一個のランレングス数値Ｌが入力されると、まず、ステップ５０において、該ランレングス数値Ｌが“１０”以下であるか否かを判断し、“１０”以下である場合には、ステップ５１において、該ランレングス数値Ｌから“１”を減じた値の下位４ビットを符号として出力し、符号生成処理を終了する。生成される符号は４ビット幅で、この減算の結果、その値は“１０”未満であり、その値に“１”を加えたものがランレングス数値Ｌを表わすことから、前記Ｌ１符号に他ならないことがわかる。
前記ステップ５０において、ランレングス数値Ｌが“１１”以上の値であると判断される場合には、次にステップ５２においてランレングス数値Ｌが“４２”以下であるか否かが判断され、“４２”以下である場合には、ステップ５３において、該ランレングス数値Ｌに“１４９”を加えた値の下位８ビットを符号として出力し、符号生成処理を終了する。ランレングス数値Ｌと符号値を対応づける代入式“Ｋ（８）←Ｌ＋１４９”を、“Ｋ（８）←Ｌ−１１＋１６０”と展開すれば、これが前記Ｌ２符号に他ならないことが容易に理解できる。ランレングス数値Ｌは“１１≦Ｌ≦４２”の値域を有するので“０≦Ｌ−１１≦３１”となり前記Ｌ２符号の数値部Ｆ、即ち下位５ビットに相当し、“１６０”を２進数表現するならば“１０１０００００”であって、上位３ビットが符号固有の定数に相当する。
【００３７】
前記ステップ５２において、ランレングス数値Ｌが“４３”以上の数値であると判断された場合には、まず、ステップ５４において“１２”なる数値を４ビットの符号として出力する。“１２”を２進数表現するならば“１１００”であり、これは、前記Ｌ３符号開始を識別するための定数に他ならない。次に、ステップ５５において、Ｗにランレングス数値Ｌから“４３”を減じた数値を代入する。以下、このＷの値を用いて、Ｌ３符号の数値部を生成する制御は、まず、ステップ５６においてＷの値が“８”未満であるか否かを判断し、“８”以上である場合にはステップ５７において該Ｗ値と定数“７”とのビット毎の論理積をとった値の下位４ビットを符号として出力し、次にステップ５８において該Ｗの値を下位側、即ち右に３ビットシフトした値で更新し、前記ステップ５６においてＷの値が“８”未満となるまで、これらステップ５７及びステップ５８を繰り返し、前記ステップ５６においてＷの値が“８”未満となった時点で、ステップ５９においてＷに定数“８”を加えた値の下位４ビットを符号として出力して符号生成処理を終了するという各段階を含む。定数“７”を２進数表現すれば“０１１１”であり、ステップ５７において生成される符号は常に“８”未満の数値となり、以降にＷの数値断片を表わす符号が連続することを明示し、一方、定数“８”を２進数表現すれば“１０００”であり、ステップ５９において生成される符号は常に“８”以上の数値となり、該符号が数値部の最後のものであることを明示する訳である。
【００３８】
図８は前記事象Ｐまたは事象Ｐの連続に呼応して前記反復数に対応するＮ符号を生成する制御の実施例を示すフロー図である。
これは、前出の図４のステップ１４及びステップ２１を具体化したものであり、入力である一個の反復数Ｎを前記図６に示した符号セットのＮ１〜Ｎ３形式のいずれか一つに変換する。
図７同様、同図において、“Ｋ（ｎ）←Ｘ；”なる代入式は、“Ｘ”の下位“ｎ”ビットを符号として出力することを意味するものとする。また、“Ｗ”は前記Ｎ３符号を生成する処理に用いる一時記憶である。
Ｎ符号生成処理が開始されると、即ち、ある一個の反復数Ｎが入力されると、まず、ステップ６０において該Ｎ値が“３”未満であるか否かを判断し、“３”未満、即ちＮが“１”または“２”である場合には、ステップ６１において、該Ｎ値に“１２”を加えた値の下位４ビットを符号として出力し、符号生成処理を終了する。生成される符号は４ビット幅で、Ｎの値が“１”である場合には“１３”、Ｎの値が“２”である場合には“１４”となり、それぞれ、前記Ｎ１符号及びＮ２符号に他ならないことがわかる。
前記ステップ６０において、ランレングス数値Ｌが“３”以上の値であると判断される場合には、次にステップ６２においてＮ値が“３”であるか否かが判断され、“３”である場合には、ステップ６３において、定数“２２２”の下位８ビットを符号として出力し、符号生成処理を終了する。定数“２２２”を２進数表現するならば“１１０１１１１０”であり、これは、前記Ｎ１“１１０１”（Ｎ＝１）符号と前記Ｎ２符号“１１１０”（Ｎ＝２）とを連接したものであり、前記のように、Ｎの値が“３”であることに対応する。原理的にＮ２符号が上位でＮ１符号が下位であっても構わず、従って、ステップ６３において用いられる定数は“２３７”即ち２進数の“１１１０１１０１”であっても構わない。
【００３９】
前記ステップ６２において、ランレングス数値Ｌが“４”以上の数値である場合には、まず、ステップ６４において“１５”なる数値を４ビットの符号として出力する。“１５”を２進数表現するならば“１１１１”であり、これは、前記Ｎ３符号開始を識別するための定数に他ならない。次に、ステップ６５において、ＷにＮ値から“４”を減じた数値を代入する。以下、このＷの値を用いて、Ｎ３符号の数値部を生成する制御は、まず、ステップ６６においてＷの値が“８”未満であるか否かを判断し、“８”以上である場合にはステップ６７において該Ｗ値と定数“７”とのビット毎の論理積をとった値の下位４ビットを符号として出力し、次にステップ６８において該Ｗの値を下位側即ち右に３ビットシフトした値で更新し、前記ステップ６６においてＷの値が“８”未満となるまで、これらステップ６７及びステップ６８を繰り返し、前記ステップ６６においてＷの値が“８”未満となった時点で、ステップ６９においてＷに定数“８”を加えた値の下位４ビットを符号として出力して符号生成処理を終了するという各段階を含む。定数“７”を２進数表現すれば“０１１１”であり、ステップ５７において生成される符号は常に“８”未満の数値となり、以降にＷの数値断片を表わす符号が連続することを明示し、一方、定数“８”を２進数表現すれば“１０００”であり、ステップ６９において生成される符号は常に“８”以上の数値となり、該符号が数値部の最後のものであることを明示する訳である。
【００４０】
図９は前記符号化方法により生成された符号列データから一個の符号単位を入力し、ランレングス数値または反復数値に復号する制御の実施例を示すフロー図である。
これは、前出の図５のステップ３１を具体化したものであり、入力である一個の符号単位から、復号した数値Ｗと該Ｗの内容がランレングス数値（Ｖ＝０）であるか反復数（Ｖ＝１）であるかを示すフラグ情報Ｖを出力する。
同図において、“Ｋ←符号入力；”なる代入式は、一時記憶Ｋの下位４ビットに順次符号列データの４ビットが代入され、Ｋの持つビット幅に応じて、その上位には“０”が補充されるものを意味する。なお、“Ｕ”はＬ３符号またはＮ３符号の数値復元に用いられる一時記憶である。
数値復号の処理が開始されると、まず、ステップ７０において符号の最初の４ビットを入力しＫに代入する。次に、ステップ７１において、該Ｋ値が“１３”未満であるか否かを判別する。前記図６から明らかなように、この判別は数値復元を行う対象符号がランレングス数値（Ｋ≦１２）であるか、反復数値（Ｋ＞１２）であるかを識別するものである。
前記ステップ７１でＫが“１３”未満である場合、即ち、符号がランレングス数値である場合には、まず、ステップ７２においてフラグＶに“０”を格納し、以降に復号する値Ｗがランレングス数値であることを示す。次に、ステップ７３において前記Ｋ値が“１０”未満であるか否かを判別する。Ｋ値が“１０”未満であれば、前記Ｌ１符号であることが確定するので、ステップ７４においてＷにＫ値に“１”を加えた値を代入して数値復号処理を終了する。前記ステップ７３において、Ｋが１０以上の値を示す場合には、ステップ７５において、前記Ｋ値が“１２”であるか否かを判別する。Ｋ値が“１２”でない場合には、前記Ｌ２符号であることが確定するので、ステップ７６において、Ｋを左に４ビットシフトした値をＷに代入し、次の符号４ビット分をＫに読み取って、該Ｗに該Ｋを加えた値から定数“１４９”を減じた値をＷに代入して数値復号処理を終了する。Ｌ２符号に関するこれらの処理は、８ビット符号の値から定数“１４９”を減じた値を復号値とするものであり、符号化においてランレングス数値に定数“１４９”を加えた値を符号とした図６のステップ５３の逆操作となっていることが容易に理解できる。前記ステップ７５においてＫ値が“１２”である場合には、前記Ｌ３符号であることが確定するので、まず、ステップ７７において一時記憶Ｕに定数“４３”を格納する。この数値は以降の数値部から得られる数値をランレングス数値に復号するために加算されるべきオフセット値であり、符号化において数値部の符号化に先立って、ランレングス数値から定数“４３”を減じた図６のステップ５５の逆操作を行うためのものである。以下、数値部を復号するための制御は、まず、ステップ８２においてＷに“０”を格納し、次に、ステップ８３において次の符号４ビット分をＫに読み取り、次にステップ８４においてＫの値が“８”未満であるか否かを判断し、“８”未満である場合にはステップ８５においてＷ値に該Ｋ値を加算し、次にステップ８６において該Ｗの値を上位側、即ち左に３ビットシフトした値で更新し、前記ステップ８４においてＫの値が“８”未満となるまで、これらステップ８３よりステップ８６までを繰り返し、前記ステップ８４においてＫの値が“８”以上となった時点で、ステップ８７においてＷにＫを加算し、定数“８”を減じ、更に前記Ｕ値を加算した値をＷに代入して数値復号処理を終了する。
【００４１】
一方、前記ステップ７１でＫが“１３”以上である場合、即ち、符号が反復数である場合には、まず、ステップ７８においてフラグＶに“１”を格納し、以降に復号する値Ｗが反復数であることを示す。次に、ステップ７９において前記Ｋ値が“１５”であるか否かを判別する。Ｋ値が“１５”に一致しない場合には、前記Ｎ１符号または前記Ｎ２符号であることが確定するので、ステップ８０において、ＷにＫ値から“１２”を減じた値を代入して数値復号処理を終了する。これにより、入力した符号がＮ１（“１３”）である場合には“１”、Ｎ２（“１４”）である場合には“２”なる反復数が復号されることは容易に理解できる。また、先のステップ７９において前記Ｋ値が“１５”である場合には、前記Ｎ３符号であることが確定するので、ステップ８１において一時記憶Ｕに“４”を代入し、以下、Ｌ３符号に関して前記に説明したステップ８２よりステップ８７に至る制御を用いて数値を復号し、Ｗに代入して数値復号処理を終了する。
前記の数値復号制御の実施例は、先に図５を用いて説明した復号方法との関連で、復号した数値Ｗと該Ｗの内容がランレングス数値（Ｖ＝０）であるか反復数値（Ｖ＝１）であるかを示すフラグ情報Ｖを出力するよう構成した。しかし、先にも述べたように、復号制御と数値復号制御とを分離する必然性はなく、一体化することがむしろ当然である。同様の事柄は、図４を用いて説明した符号化手順と、図７及び図８を用いて説明した符号生成手順についても当てはまる。
一体化する場合には、前記のような入出力の方法をとる必然性はなく、より簡素な手順に組み替えることが可能である。但し、最終的にどのような手順とするのが最適であるかは、その実施形態によるところが大きく、また当業者にとっては容易に最適化できるものであるので詳細な実施例は省略するものとする。
以上の実施例で、本発明による符号化及び復号方法の制御手順を説明した訳であるが、以下、図を用いて具体的な符号化及び復号の動作例を説明する。
【００４２】
図１０は、本発明による符号化の動作例を説明するための図である。同図に示すように、圧縮の対象となる画像データが３ドットの黒で始まり、次に４１ドットの白、云々と続く場合を例としている。ランレングスの計測は白から始めるものとする。図１０には、１０個のランレングス数値が示してあるが、計測を白から始めるため、最初に入力されるランレングス数値は“０”となり、以後、図示した１０個の数値が続くため、合計１１個のランレングス数値が入力されることになる。
１０個のランレングス数値を示した図の下の表は、符号化の動作をステップ順に説明する表である。表形式の部分において、“段階”欄は符号化のステップを“Ｓ１”より“Ｓ１２”までのステップで説明するための記号を示す欄である。“Ｓ１”より“Ｓ１１”の各段階は、前記合計１１個のランレングス数値が入力された時点に相当し、“Ｓ１２”は符号化終了時点に相当する。“Ｌ”欄は前記“Ｓ１”より“Ｓ１１”の各時点で入力されたランレングス数値を表わし、“Ｂ”欄は前記“Ｓ１”より“Ｓ１１”の各時点での前記一時記憶Ｂの内容を表わし、“Ａ”欄は前記“Ｓ１”より“Ｓ１１”の各時点での前記一時記憶Ａの内容を表わし、“Ｌ＝Ａ”欄は前記“Ｓ１”より“Ｓ１１”の各時点で“Ｌ＝Ａ”が成立するか否かを表わし、成立する場合である（ＹＥＳ）が前記事象Ｐの発生を、不成立の場合である（ＮＯ）が前記事象Ｑの発生に相当し、“Ｎ”欄は前記“Ｓ１”より“Ｓ１１”の各時点での前記一時記憶Ｎの内容を表わし、“符号生成”欄は、次の段階に至るまでに生成する符号の内容を表わし、“符号（１６進）”欄は生成される符号を１６進数で表わしたものである。
【００４３】
前記にも説明したように、段階Ｓ１より段階Ｓ１１において入力されるＬ値は“０”、“３”、“４１”、云々と表に示す値となる。Ａ及びＢには初期値“０”が代入されており、各段階を移行する間に、ＡにＢの値が、ＢにＬの値が代入されるので、段階Ｓ１より段階Ｓ１１におけるＡ及びＢの値は表に示す値となる。
段階Ｓ２、段階Ｓ３、及び段階９においてはＬとＡとが不一致となり事象Ｑが発生するが、段階Ｓ１２を除くその他の段階では一致して事象Ｐが発生する。
事象Ｐの発生する各段階では、符号を発生せず、反復数Ｎの値を“１”増加させるが、その値は次の段階に反映されている。例えば段階Ｓ１において検出される事象Ｐの処理結果として、符号生成は行われず、段階Ｓ２においてＮ＝１が反映されるのみとなる。また、段階Ｓ４より段階Ｓ８までのように事象Ｐが５個連続する場合には、該当期間において符号生成は行われず、段階Ｓ９においてＮ＝５が反映されるのみとなる。
【００４４】
最初に事象Ｑが発生する段階Ｓ２では、Ｎの値が“１”であるため、まず、Ｎ１符号（‘Ｄ’）が生成され、Ｎに“０”が代入され、次に“Ｌ＝３”を表わすＬ１符号（‘２’）が生成される。
次に事象Ｑが発生する段階Ｓ３では、Ｎの値が“０”に戻っているため、“Ｌ＝４１”を表わすＬ２符号（‘ＢＥ’）のみが生成される。
次に事象Ｑが発生する段階Ｓ９では、Ｎの値が“５”であるため、まず、“Ｎ＝５”を表わすＮ３符号（‘Ｆ９’）が生成され、Ｎに“０”が代入され、次に“Ｌ＝４４３”を表わすＬ３符号（‘Ｃ０２Ｅ’）が生成される。
段階Ｓ１０及び段階Ｓ１１において２個のランレングス数値が入力されるが、ともに事象Ｐが発生し、符号生成を保留したまま入力完了となる。
入力完了となった段階Ｓ１２においては、Ｎの値が“２”となっているため、“Ｎ＝２”を表わすＮ２符号（‘Ｅ’）が生成され、符号化完了となる。
【００４５】
図１１は本発明によるＬ３符号生成の動作例を説明するための図である。前記、図１０の段階Ｓ９の例に合わせて、“Ｌ＝４４３”なるランレングス数値を‘Ｃ０２Ｅ’（１６進数）なる符号に符号化する例を図６の符号生成制御の各段階に対応して説明するものである。表形式の部分において、“段階”欄は符号生成のステップを“Ｔ１”より“Ｔ１０”までのステップで説明するための記号を示す欄であり、括弧内に示す数字は図６において括弧書きされているステップ記号に対応する。
“Ｗの値”欄は各ステップにおける一時記憶Ｗの値を２進数と１０進数で示す欄である。“Ｗ＜８の判定”欄は、図７のステップ５６の判定結果を示す欄である。“符号生成（１６進数）”欄は、該当する段階で生成される符号を１６進数で示す欄である。符号化処理が開始されると、Ｌ＞４２であるため、まず、段階Ｔ１においてＬ３符号を識別する定数である‘Ｃ’（１６進数）を４ビットの符号として出力する。次に段階Ｔ２において“Ｌ−４３”即ち“４００”なる値をＷに代入する。次に、段階Ｔ３では、“Ｗ≧８”であるため、続く段階Ｔ４においてＷと定数“７”の論理積の下位４ビット即ち‘０’（１６進数）を符号として出力し、続く段階Ｔ５においてＷを右に３ビット分シフトした値即ち“５０”でＷを更新する。
次に、段階Ｔ６では、“Ｗ≧８”であるため、続く段階Ｔ７においてＷと定数“７”の論理積の下位４ビット即ち‘２’（１６進数）を符号として出力し、続く段階Ｔ８においてＷを右に３ビット分シフトした値即ち“６”でＷを更新する。
次に、段階Ｔ９では、“Ｗ＜８”であるため、続く段階Ｔ１０においてＷに“８”を加えた値の下位４ビット即ち‘Ｅ’（１６進数）を符号として出力し、符号化を完了する。
【００４６】
図１２は、データ復号の動作例を説明するための図である。
前記図１２による符号化の動作例の結果として出力される符号列データを順次入力して、色毎に交互のランレングス値数列を出力する場合を例に説明するものである。表形式の部分において、“段階”欄は復号のステップを“Ｙ１”より“Ｙ１４”までのステップで説明するための記号を示し、“符号入力（１６進）”欄は、該当する段階で入力される符号を１６進数で示し、“Ｌ”欄はランレングス数値を表わし、“Ｎ”欄は各時点における反復数の一時記憶Ｎの値を表わし、“Ｂ”欄は各時点における前記一時記憶Ｂの値を表わし、“Ａ”欄は各時点における前記一時記憶Ａの値を表わす。
復号が開始されると、Ａ及びＢに初期値として“０”が代入される。次に、段階Ｙ１において、符号‘Ｄ’を読み込み、これはＮ１符号であるので、Ｎに該符号の復号値である“１”を代入する。入力されたのが反復数であるため、次に、段階Ｙ２において、ＬにＡの値を代入してランレングス数値として出力し、ＮをＮから“１”減じた値で、ＡをＢの値で、ＢをＬの値で夫々更新する。Ｎが“０”となったため、次に、段階Ｙ３において、符号‘２’を読み込み、これはＬ１符号であるので、Ｌに該符号の復号値である“３”を代入してランレングス数値として出力し、ＡをＢの値で、ＢをＬの値で夫々更新する。
【００４７】
次に、段階Ｙ４において、符号‘ＢＥ’を読み込み、これはＬ２符号であるので、Ｌに該符号の復号値である“４１”を代入してランレングス数値として出力し、ＡをＢの値で、ＢをＬの値で夫々更新する。次に、段階Ｙ５において、符号‘Ｆ９’を読み込み、これはＮ３符号であるので、Ｎに該符号の復号値である“５”を代入する。次に、段階Ｙ６より段階Ｙ１０において、ＬにＡの値を代入してランレングス数値として出力し、ＮをＮから“１”減じた値で、ＡをＢの値で、ＢをＬの値で夫々更新する段階を、Ｎが“０”となるまで計５回分繰り返す。次に、段階Ｙ１１において、符号‘Ｃ０２Ｅ’を読み込み、これはＬ３符号であるので、Ｌに該符号の復号値である“４４３”を代入してランレングス数値として出力し、ＡをＢの値で、ＢをＬの値で夫々更新する。
入力されたのが反復数であるため、次に、段階Ｙ１２において、符号‘Ｅ’を読み込み、これはＮ２符号であるので、Ｎに該符号の復号値である“２”を代入する。
入力されたのが反復数であるため、次に、段階Ｙ１３より段階Ｙ１４において、ＬにＡの値を代入してランレングス数値として出力し、ＮをＮから“１”減じた値で、ＡをＢの値で、ＢをＬの値で夫々更新する段階を、Ｎが“０”となるまで計２回分繰り返す。
表の“Ｌ”欄を見れば明らかに、以上の動作により、図１２の例で符号化処理に入力された計１１個のランレングス数値が順次復号されていることがわかる。
【００４８】
【発明の効果】
本発明は、以上説明したように構成されているので、
請求項１によれば、生成される符号数を削減し、コンピュータ処理による擬似中間調画像のように色が短い周期で頻繁に変化するような画像データに対しても十分に高い圧縮率を得ることできる符号化方法を提供することができた。
請求項２によれば、記制御をマイクロプロセッサによるソフトウェア処理で行うことによって十分高い処理速度を期待することが可能となるよう、代入、加算、及び、比較・分岐といった簡素な制御で実現することができる符号化方法を提供することができた。
請求項３によれば、前記制御をマイクロプロセッサによるソフトウェア処理で行っても十分高い処理速度を期待することが可能となるよう、色に基づく判断・分岐が不要で、且つ、代入、及び、比較・分岐といった簡素な制御で実現する画像データの符号化方法を提供することができた。
請求項４によれば、ランレングス数値が０であることを表現する符号を不要とし、従って、より高い圧縮率を有する符号セットを利用可能とする符号化方法を提供することができた。
【００４９】
請求項５によれば、より高い圧縮率が達成可能な画像データの符号化装置を提供することができた。
請求項６によれば、前記制御をマイクロプロセッサによるソフトウェア処理で行っても十分高い処理速度を期待することが可能となるよう代入、減算、及び、比較・分岐といった簡素な制御で実現でき、処理が単純となり極めて高速な画像データの符号化装置を提供することができた。
請求項７によれば、極めて高い処理速度を期待することが可能な画像データの符号化装置を提供することができた。
請求項８によれば、種々の場合に適応することが可能な画像データの符号化方法を用いるデータ記録システムを提供することができた。
請求項９によれば、高速で且つ省メモリ対応可能なプリンタを提供することができた。
【００５０】
請求項１０によれば、迅速で且つ省メモリーが達成できるデータ復号方法を提供することができた。
請求項１１によれば、省メモリーで且つ迅速な画像データ復号方法を提供できた。
請求項１２によれば、省メモリーで且つ迅速な画像データ復号が可能な復号装置を提供することができた。
請求項１３によれば、迅速なデータ復号が可能で且つ省メモリーのデータ復号装置を提供することができた。
請求項１４によれば、処理速度の高いデータ処理が可能であるとともにプロセッサに内在するメモリと兼用することができ、省メモリのデータ復号装置を提供することができた。
請求項１５によれば、符号化生成に際して特殊なテーブル参照を必要とせず、それらの処理を代入、加減算、シフト、論理積、及び、比較・分岐といった簡素な制御で実現できる符号セットを導入するので、該制御をマイクロプロセッサによるソフトウェア処理で行っても十分高い処理速度を期待することが可能な画像データの符号化方法を提供することができる。更に、導入する各符号は処理を容易にハードウェア化できるよう４ビットまたはその倍数の符号長を有するものであり、ハードウェア処理とソフトウェア処理を組み合わせるようにすることで、同一の符号化方法を幅広い性能レンジに適応させることが可能である画像データの符号化方法を提供することができた。
【００５１】
請求項１６によれば、数値復号に際して特殊なテーブル参照を必要とせず、それらの処理を代入、加減算、シフト、論理積、及び、比較・分岐といった簡素な制御で実現できる符号セットを導入するので、該制御をマイクロプロセッサによるソフトウェア処理で行っても十分高い処理速度を期待することが可能な画像データの復号方法を提供することができる。更に、導入する各符号は処理を容易にハードウェア化できるよう４ビットまたはその倍数の符号長を有するものであり、ハードウェア処理とソフトウェア処理を組み合わせるようにすることで、同一の復号方法を幅広い性能レンジに適応させることが可能である画像データの復号方法を提供することができた。
請求項１７によれば、画像の符号化において極めて効率的なデータ処理が行える画像データ符号化装置が提供することができた。
請求項１８によれば、画像の復号において極めて効率的なデータ処理が行える画像データ復号装置が提供することができた。
請求項１９によれば、擬似中間調のような色の交番の激しい画像にも適切に対応できる画像データ記録システムを提供することができた。
請求項２０によれば、擬似中間調のような色の交番の激しい画像にも適切に対応できる画像形成装置が提供できた。
請求項２１、２２によれば、該記録媒体を利用することでコンピュータによってプログラムを読み取り可能とし、プログラムを実行することができた。
【図面の簡単な説明】
【図１】本発明の基本的な原理を説明するための説明図である。
【図２】本発明による符号化装置及び復号装置を画像形成装置に適用した一実施例を示す構成図である。
【図３】（ａ）及び（ｂ）は本発明の符号化装置及び復号装置を示す説明図である。
【図４】本発明による符号化方法の一実施例を示すフローチャート図である。
【図５】本発明による復号方法の一実施例を示すフローチャート図である。
【図６】本発明の符号化・復号方法に用いる符号セットの一実施例を示す図である。
【図７】本発明の、事象Ｑに呼応してランレングス符号を生成する制御の実施例を示すフローチャート図である。
【図８】本発明の、事象Ｐまたは事象Ｐの連続に呼応して前記反復数に対応するＮ符号を生成する制御の実施例を示すフローチャート図である。
【図９】本発明に係る符号化方法により生成された符号列データから一個の符号単位を入力し、ランレングス数値または反復数値に復号する制御の実施例を示すフローチャート図である。
【図１０】本発明による符号化の動作例を説明するための説明図である。
【図１１】本発明によるＬ３符号生成の動作例を説明するための説明図である。
【図１２】本発明によるデータ復号の動作例を説明するための説明図である。
【符号の説明】
１  プリンタ装置、２  ホストマシーン、３  ホストＩ／Ｆ、４  コントローラー、５  オペレーショナルパネル、６  パネルＩ／Ｆ、７  フォントＲＯＭ、８ＮＶ−ＲＡＭ、９  オプションＲＡＭ、１０  エンジンＩ／Ｆ、１１  プリンタエンジン、１２  入力装置、１３  記録媒体、１４  プログラムＲＯＭ、１５ＲＡＭ、１６  ＣＰＵ、１７  符号化装置、１８  復号装置、１９  ランレングス記憶手段Ａ、２０  ランレングス記憶手段Ｂ、２１  ランレングス記憶手段Ｌ、２２  判別手段、２３  反復数記憶・演算手段、２４  ランレングス符号生成手段、２５  反復数符号生成手段、２６  符号化手段、２７  復号数値・属性判別記憶手段、２８  復号手段、２９  ランレングス数値生成手段
【図１】
0003842914.tif 000002
【図２】
0003842914.tif 000003
【図３】
0003842914.tif 000004
【図４】
0003842914.tif 000005
【図５】
0003842914.tif 000006
【図６】
0003842914.tif 000007
【図７】
0003842914.tif 000008
【図８】
0003842914.tif 000009
【図９】
0003842914.tif 000010
【図１０】
0003842914.tif 000011
【図１１】
0003842914.tif 000012
【図１２】
0003842914.tif 000013