(57)【特許請求の範囲】
【請求項１】
ページ記述言語により記述された文書データをビットマップデータに展開する展開手段と、
前記文書データを解析することにより、該文書データが展開されるページを構成する各ラインごとに、そのライン上に前記ビットマップデータが展開されたか否かを示すライン情報を生成するライン情報生成手段と、
前記ビットマップデータを記憶する第１記憶手段と、
前記ライン情報を記憶する第２記憶手段と、
前記第１記憶手段に記憶されたビットマップデータを上位ラインから順次読み出し、１画素ごとに圧縮する圧縮手段とを備え、
前記圧縮手段は、圧縮対象となっているラインのライン情報とその直前に圧縮されたラインのライン情報とがともにビットマップデータが展開されていないことを示す場合に、前記圧縮対象となっているラインを前記第１記憶手段から読み出して圧縮する代わりに、前記圧縮対象となっているラインがその直前に圧縮されたラインと一致していることを示す値を出力することを特徴とする画像圧縮装置。
【請求項２】
前記圧縮手段による圧縮は、ＪＢＩＧ圧縮であることを特徴とする請求項１に記載の画像圧縮装置。
【請求項３】
ページ記述言語により記述された文書データをビットマップデータに展開する展開工程と、
前記文書データを解析することにより、該文書データが展開されるページを構成する各ラインごとに、そのライン上に前記ビットマップデータが展開されたか否かを示すライン情報を生成するライン情報生成工程と、
前記ビットマップデータを記憶する第１記憶工程と、
前記ライン情報を記憶する第２記憶工程と、
前記第１記憶工程において記憶されたビットマップデータを上位ラインから順次読み出し、１画素ごとに圧縮する圧縮工程とを備え、
前記圧縮工程は、圧縮対象となっているラインのライン情報とその直前に圧縮されたラインのライン情報とがともにビットマップデータが展開されていないことを示す場合に、前記圧縮対象となっているラインを前記第１記憶手段から読み出して圧縮する代わりに、前記圧縮対象となっているラインがその直前に圧縮されたラインと一致していることを示す値を出力する工程であることを特徴とする画像圧縮方法。
【請求項４】
通信回線により相互に接続された第１の情報処理装置と第２の情報処理装置とを含む情報処理システムであって、
前記第１の情報処理装置は、
ページ記述言語により記述された文書データを作成する作成手段と、
前記作成された文書データを前記第２の情報処理装置に送信する送信手段と
を備え、
前記第２の情報処理装置は、
前記送信手段から送信された前記文書データを受信する受信手段と、
前記受信手段により受信された前記文書データをビットマップデータに展開する展開手段と、
前記文書データを解析することにより、該文書データが展開されるページを構成する各ラインごとに、そのライン上に前記ビットマップデータが展開されたか否かを示すライン情報を生成するライン情報生成手段と、
前記ビットマップデータを記憶する第１記憶手段と、
前記ライン情報を記憶する第２記憶手段と、
前記第１記憶手段に記憶されたビットマップデータを上位ラインから順次読み出し、１画素ごとに圧縮する圧縮手段とを備え、
前記圧縮手段は、圧縮対象となっているラインのライン情報とその直前に圧縮されたラインのライン情報とがともにビットマップデータが展開されていないことを示す場合に、前記圧縮対象となっているラインを前記第１記憶手段から読み出して圧縮する代わりに、前記圧縮対象となっているラインがその直前に圧縮されたラインと一致していることを示す値を出力することを特徴とする情報処理システム。
【請求項５】
通信回線により相互に接続された第１の情報処理装置と第２の情報処理装置とを含む情報処理システムであって、
前記第１の情報処理装置は、
ページ記述言語により記述された文書データを作成する作成手段と、
前記文書データをビットマップデータに展開する展開手段と、
前記文書データを解析することにより、該文書データが展開されるページを構成する各ラインごとに、そのライン上に前記ビットマップデータが展開されたか否かを示すライン情報を生成するライン情報生成手段と、
前記ビットマップデータを記憶する第１記憶手段と、
前記ライン情報を記憶する第２記憶手段と、
前記第１記憶手段に記憶されたビットマップデータを上位ラインから順次読み出し、１画素ごとに圧縮する圧縮手段と、
前記圧縮手段により圧縮されたデータを前記第２の情報処理装置に送信する送信手段と
を備え、
前記第２の情報処理装置は、
前記送信手段により送信された前記圧縮されたデータを受信する受信手段と、
前記受信手段により受信された前記圧縮されたデータについて出力する出力手段と
を備え、
前記圧縮手段は、圧縮対象となっているラインのライン情報とその直前に圧縮されたラインのライン情報とがともにビットマップデータが展開されていないことを示す場合に、前記圧縮対象となっているラインを前記第１記憶手段から読み出して圧縮する代わりに、前記圧縮対象となっているラインがその直前に圧縮されたラインと一致していることを示す値を出力することを特徴とする情報処理システム。
【請求項６】
通信回線により接続された第１の情報処理装置、第２の情報処理装置及び第３の情報処理装置とを含む情報処理システムであって、
前記第１の情報処理装置は、
ページ記述言語により記述された文書データを作成する作成手段と、
前記作成された文書データを前記第２の情報処理装置に送信する第１の送信手段と
を備え、
前記第２の情報処理装置は、
前記第１の送信手段から送信された前記文書データを受信する受信手段と、
前記受信手段により受信された前記文書データをビットマップデータに展開する展開手段と、
前記文書データを解析することにより、該文書データが展開されるページを構成する各ラインごとに、そのライン上に前記ビットマップデータが展開されたか否かを示すライン情報を生成するライン情報生成手段と、
前記ビットマップデータを記憶する第１記憶手段と、
前記ライン情報を記憶する第２記憶手段と、
前記第１記憶手段に記憶されたビットマップデータを上位ラインから順次読み出し、１画素ごとに圧縮する圧縮手段と、
前記圧縮手段により圧縮されたデータを前記第３の情報処理装置に送信する第２の送信手段と
を備え、
前記第３の情報処理装置は、
前記第２の送信手段から送信される前記圧縮されたデータを受信する第２の受信手段と、
前記第２の受信手段により受信された前記圧縮されたデータについて出力する出力手段とを備え、
前記圧縮手段は、圧縮対象となっているラインのライン情報とその直前に圧縮されたラインのライン情報とがともにビットマップデータが展開されていないことを示す場合に、前記圧縮対象となっているラインを前記第１記憶手段から読み出して圧縮する代わりに、前記圧縮対象となっているラインがその直前に圧縮されたラインと一致していることを示す値を出力することを特徴とする情報処理システム。
【請求項７】
請求項１または２に記載の画像圧縮装置を備えたファクシミリ装置。
【請求項８】
請求項１または２に記載の画像圧縮装置を備えたプリンタ。
【請求項９】
請求項１または２に記載の画像圧縮装置を備えたコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は情報の符号化に係り、とりわけ２値で表現された画像データを圧縮するための符号化方法及び情報処理システムに関する。
【０００２】
【従来の技術】
近年ではコンピュータその他に文書を入力し、あるいはそれらの補助のもとに電子データを作成し、プリンタにより紙に印刷することが一般的である。図１はこのような文書処理作成システムの１構成例を示している。図中１０１に示される端末装置からキーボードなどの入力手段１０２により文、図形など文書の構成要素が入力され、１０１にインストールされた文書処理ソフトウェア１０３により、電子的に表現された一まとまりの文書データ１０４として作成される。この文書データ１０４は、１０１にインストールされたプリンタンタドライバによりプリンタ１１０が解釈可能なデータ形式に変換されプリンタ１１０に送られる。
【０００３】
プリンタ用のデータ形式として、ＰＤＬ（ページ記述言語）形式が知られている。プリンタ１１０内のプリンタコントローラ１１１は送られてきたデータを、内蔵するデータ解析装置により解釈し、最終的に印刷データとなるドットパターンに展開する。そして展開したドットパターンデータを順次プリンタエンジン１１２に送り、プリンタエンジン１１２は紙などの媒体にドットパターンデータを印字する。
【０００４】
図２はプリンタ１１０の構成をより詳しく説明する図である。２０１はコンピュータなどのホストとの間で出力文書データ、制御信号などの通信を担うホストＩ／Ｆである。２０３は通信データを蓄えるバッファ及びデータ展開後のドットパターンデータを格納するための記憶装置であり、この例においてはＤＲＡＭを用いている。記憶装置２０３はまたドットパターンデータ展開時の作業用メモリとしても利用される。２０４はＤＲＡＭのリードライトを制御するメモリコントローラである。２０５は出力文書データをドットパターンデータに展開する作業を行うラスタライザである。２０２はホストＩ／Ｆ２０１、メモリコントローラ２０４、ラスタライザ２０５をコントロールする制御装置である。２０８はプリンタエンジン２２０と接続しドットパターンデータをプリントエンジン２２０に送信するエンジンＩ／Ｆであり、２０９は記憶装置２０３からメモリコントローラ２０４を介して展開されたドットパターンデータをＤＭＡによりエンジンＩ／Ｆ２０８に転送するＤＭＡコントローラである。
【０００５】
記憶装置２０３の容量を削減するため、圧縮／伸長装置２１０により、展開の終了したバンドのドットパターンデータは一旦圧縮された後、記憶装置２０３に格納され、該バンドが印字されるタイミングで伸長された後、プリンタエンジン２２０に送信される。
【０００６】
ここで圧縮／伸長装置２１０における圧縮／伸長手段としては様々な方法が適用可能である。例えば、プリンタエンジン２２０がモノクロ画像を印字するものであり２値のドットパターンデータを扱う２値プリンタエンジンであれば、この圧縮／伸長手段として２値データを圧縮／伸長可能な手段を適用できる。
【０００７】
このような２値データ圧縮／伸長手段の標準化方式の一つとして、ＪＢＩＧ（Ｊｏｉｎｔ  Ｂｉ−ｌｅｖｅｌ  Ｉｍａｇｅ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）方式がある。このＪＢＩＧ方式は、算術符号化を採用し、ＭＭＲ方式よりも符号化効率が高く、特にコンピュータで生成された画像データにおいてその傾向が顕著であることが知られている。
【０００８】
ＪＢＩＧ方式を用いた符号器や復号器では、１画素ごとに算術符号化または復号化を行う。
【０００９】
【発明が解決しようとする課題】
このＪＢＩＧ方式の算術符号化及び復号化処理アルゴリズムは、後述するように非常に複雑でかつ、１画素単位で順次処理を行わなければならないため、圧縮／伸長処理のために多くの処理時間を必要とする。
【００１０】
ところで、ＪＢＩＧなどの符号化方法では、処理対象ラインが直前のラインと完全に一致するならば、１画素分の符号化または復号化処理を行えば足りる。
しかし、これを実現するためには、符号化対象ラインと直前ラインとが一致することを何らかの手段により検出しなければならない。一般に、一致を検出するためには、１ライン分のデータを符号器に入力する必要があるが、この符号器へのデータ入力には多くの処理時間が必要となる。従って、メモリ等の高速化を図ったとしても、これが符号化処理時間のボトルネックとなり、結果として処理時間をさほど短縮できないという課題があった。
【００１１】
【課題を解決するための手段】
本発明は上記課題を解決するためになされたものであり、ページ記述言語で記載された文書データをビットマップデータに展開した後、これを圧縮するという工程を備える装置／システムにおいて、この文書データの解析により予め各ライン上にビットマップデータが展開されたか否かを判別して、この解析結果を後段の圧縮処理に利用すること、及びこれにより、圧縮対象となるラインの画像データの読み出し処理、あるいは符号化処理の時間を削減することを主な目的とする。
【００１２】
具体的に、本発明は、ページ記述言語により記述された文書データをビットマップデータに展開する展開手段と、
前記文書データを解析することにより、該文書データが展開されるページを構成する各ラインごとに、そのライン上に前記ビットマップデータが展開されたか否かを示すライン情報を生成するライン情報生成手段と、
前記ビットマップデータを記憶する第１記憶手段と、
前記ライン情報を記憶する第２記憶手段と、
前記第１記憶手段に記憶されたビットマップデータを上位ラインから順次読み出し、１画素ごとに圧縮する圧縮手段とを備え、
前記圧縮手段は、圧縮対象となっているラインのライン情報とその直前に圧縮されたラインのライン情報とがともにビットマップデータが展開されていないことを示す場合に、前記圧縮対象となっているラインを前記第１記憶手段から読み出して圧縮する代わりに、前記圧縮対象となっているラインがその直前に圧縮されたラインと一致していることを示す値を出力することを特徴とする。
【００１３】
また、本発明は、前記圧縮手段による圧縮は、ＪＢＩＧ圧縮であることを特徴とする。
【００１４】
また、本発明は、ページ記述言語により記述された文書データをビットマップデータに展開する展開工程と、
前記文書データを解析することにより、該文書データが展開されるページを構成する各ラインごとに、そのライン上に前記ビットマップデータが展開されたか否かを示すライン情報を生成するライン情報生成工程と、
前記ビットマップデータを記憶する第１記憶工程と、
前記ライン情報を記憶する第２記憶工程と、
前記第１記憶工程において記憶されたビットマップデータを上位ラインから順次読み出し、１画素ごとに圧縮する圧縮工程とを備え、
前記圧縮工程は、圧縮対象となっているラインのライン情報とその直前に圧縮されたラインのライン情報とがともにビットマップデータが展開されていないことを示す場合に、前記圧縮対象となっているラインを前記第１記憶手段から読み出して圧縮する代わりに、前記圧縮対象となっているラインがその直前に圧縮されたラインと一致していることを示す値を出力する工程であることを特徴とする。
【００２５】
また、本発明は、通信回線により相互に接続された第１の情報処理装置と第２の情報処理装置とを含む情報処理システムであって、
前記第１の情報処理装置は、
ページ記述言語により記述された文書データを作成する作成手段と、
前記作成された文書データを前記第２の情報処理装置に送信する送信手段と
を備え、
前記第２の情報処理装置は、
前記送信手段から送信された前記文書データを受信する受信手段と、
前記受信手段により受信された前記文書データをビットマップデータに展開する展開手段と、
前記文書データを解析することにより、該文書データが展開されるページを構成する各ラインごとに、そのライン上に前記ビットマップデータが展開されたか否かを示すライン情報を生成するライン情報生成手段と、
前記ビットマップデータを記憶する第１記憶手段と、
前記ライン情報を記憶する第２記憶手段と、
前記第１記憶手段に記憶されたビットマップデータを上位ラインから順次読み出し、１画素ごとに圧縮する圧縮手段とを備え、
前記圧縮手段は、圧縮対象となっているラインのライン情報とその直前に圧縮されたラインのライン情報とがともにビットマップデータが展開されていないことを示す場合に、前記圧縮対象となっているラインを前記第１記憶手段から読み出して圧縮する代わりに、前記圧縮対象となっているラインがその直前に圧縮されたラインと一致していることを示す値を出力することを特徴とする。
【００２６】
また、本発明は、通信回線により相互に接続された第１の情報処理装置と第２の情報処理装置とを含む情報処理システムであって、
前記第１の情報処理装置は、
ページ記述言語により記述された文書データを作成する作成手段と、
前記文書データをビットマップデータに展開する展開手段と、
前記文書データを解析することにより、該文書データが展開されるページを構成する各ラインごとに、そのライン上に前記ビットマップデータが展開されたか否かを示すライン情報を生成するライン情報生成手段と、
前記ビットマップデータを記憶する第１記憶手段と、
前記ライン情報を記憶する第２記憶手段と、
前記第１記憶手段に記憶されたビットマップデータを上位ラインから順次読み出し、１画素ごとに圧縮する圧縮手段と、
前記圧縮手段により圧縮されたデータを前記第２の情報処理装置に送信する送信手段と
を備え、
前記第２の情報処理装置は、
前記送信手段により送信された前記圧縮されたデータを受信する受信手段と、
前記受信手段により受信された前記圧縮されたデータについて出力する出力手段と
を備え、
前記圧縮手段は、圧縮対象となっているラインのライン情報とその直前に圧縮されたラインのライン情報とがともにビットマップデータが展開されていないことを示す場合に、前記圧縮対象となっているラインを前記第１記憶手段から読み出して圧縮する代わりに、前記圧縮対象となっているラインがその直前に圧縮されたラインと一致していることを示す値を出力することを特徴とする。
【００２７】
また、本発明は、通信回線により接続された第１の情報処理装置、第２の情報処理装置及び第３の情報処理装置とを含む情報処理システムであって、
前記第１の情報処理装置は、
ページ記述言語により記述された文書データを作成する作成手段と、
前記作成された文書データを前記第２の情報処理装置に送信する第１の送信手段と
を備え、
前記第２の情報処理装置は、
前記第１の送信手段から送信された前記文書データを受信する受信手段と、
前記受信手段により受信された前記文書データをビットマップデータに展開する展開手段と、
前記文書データを解析することにより、該文書データが展開されるページを構成する各ラインごとに、そのライン上に前記ビットマップデータが展開されたか否かを示すライン情報を生成するライン情報生成手段と、
前記ビットマップデータを記憶する第１記憶手段と、
前記ライン情報を記憶する第２記憶手段と、
前記第１記憶手段に記憶されたビットマップデータを上位ラインから順次読み出し、１画素ごとに圧縮する圧縮手段と、
前記圧縮手段により圧縮されたデータを前記第３の情報処理装置に送信する第２の送信手段と
を備え、
前記第３の情報処理装置は、
前記第２の送信手段から送信される前記圧縮されたデータを受信する第２の受信手段と、
前記第２の受信手段により受信された前記圧縮されたデータについて出力する出力手段とを備え、
前記圧縮手段は、圧縮対象となっているラインのライン情報とその直前に圧縮されたラインのライン情報とがともにビットマップデータが展開されていないことを示す場合に、前記圧縮対象となっているラインを前記第１記憶手段から読み出して圧縮する代わりに、前記圧縮対象となっているラインがその直前に圧縮されたラインと一致していることを示す値を出力することを特徴とする。
【００２８】
また、本発明は、上記のいずれかに記載の画像圧縮装置を備えたファクシミリ装置である。
【００２９】
また、本発明は、上記のいずれかに記載の画像圧縮装置を備えたプリンタである。
【００３０】
また、本発明は、上記のいずれかに記載の画像圧縮装置を備えたコンピュータである。
【００３２】
【発明の実施の形態】
以下に、本発明の一実施形態を開示する。この実施形態は、いわゆる当業者が本発明を容易に実施できるようにとの目的で提供するものである。従って、特許請求の範囲を意図的に限定するものではない。
【００３３】
本実施形態の概要は、以下の通りである。まず、元情報を複数の情報要素に展開する。なお、元情報は、概念的に複数の領域に分けることができ、各領域は、複数の情報要素から構成される。これはファクシミリでいえば、ページ、ストライプ、ライン及び画素ビットのような関係にあたる。次に、領域ごとに、領域が所定の条件を満たすか否かの判別情報を生成する。情報要素を情報圧縮する際には、まず、領域ごとの判別情報を参照する。判別情報が所定の条件を満たすとの情報である場合には、該領域を単位として符号化を施し、満たさないとの情報である場合には、情報要素を単位として符号化を施す。要するに、事前に前後するラインが類似または共通する場合は、その旨の管理情報を保持しておけば、符号化の際には、データを符号器に入力する前に管理情報を参照するだけで、データ入力を省略できる場合があるため、全体の情報処理時間を短縮できる。
【００３４】
以下、図３〜図８に基づき、本発明の実施形態を説明する。すでに図２に、本実施形態の基礎となる構成を示したが、図３は、より詳細な発明の実施形態である。図２との対比のため、類似または共通する構成要素には図３の符号に’をつけて示している。
【００３５】
図３における本実施形態のラスタライザ２０５’には、新たにライン情報を格納するライン情報記憶手段５０１が付け加えられている。この記憶手段５０１は、メモリ等の記憶装置により構成される。ラスタライザ２０５’は、制御部２０２’により動作に必要なパラメータを設定され、描画機能が起動される。ラスタライザ２０５’の解釈手段２０５ａは、記憶装置２０３’から前記ページ記述言語により記述された文書データを順次読み出し解釈することにより、一連の描画対象リストを生成し、ラスタライザ内の記憶手段２０５ｂに格納する。この描画対象リストは描画要素の形状やページ内での描画位置、背景などの描画属性など、複数のパラメータの組から構成されている。なお、ラスタライザ内に十分な記憶領域がない場合には、前記描画対象リストは再び記憶装置２０３’内に置かれる。
【００３６】
次いでラスタライザ２０５’の展開手段２０５ｃは、前記描画対象リストに従って各描画要素をビットマップに展開し、展開されたビットマップデータを前記パラメータによって指定されたページ上の描画位置に配置する。ここでいう配置とは、描画位置に対応する記憶領域にビットデータを格納することである。なお、記憶領域は記憶装置２０３’内に確保される。このとき各描画要素の大きさ、すなわちビットマップの縦方向のドット数および横方向のドット数が、あらかじめ前記パラメータとして設定されている場合には、ラスタライザ２０５’は、当該パラメータを前述の記憶装置２０３’から読み出す。そうでない場合は、ラスタライザ２０５’は、前記ビットマップに展開した結果から必要なパラメータを演算により求める。
【００３７】
ラスタライザ２０５’の位置演算手段２０５ｄは、ページ記述言語で記述された画像データを解析することで、前記ビットマップに展開された前記描画要素の前記ページ上における相対的な位置を求めることが可能である。概念的には、前記ページが複数の水平方向ラインにより構成されること、描画要素の大きさ、指定されたページ上の位置との情報から、描画要素が前記ページのどのラインに位置するかが求められる。
【００３８】
一方で、ライン情報生成手段２０５ｅは、ライン情報記憶手段５０１内の対応するラインの管理情報としてそのライン上に描画要素が描画されていることを示す印をつける。ここでいう印を付けるとは、例えば、ラインごとに描画ありを１、描画なしを０といった具合で、データとして記憶装置に記憶させることをいう。このデータがライン情報となる。
【００３９】
このようにして前記一連の描画対象リストを展開し、記憶装置２０３’の指定された位置に格納し終えると、前記ライン情報記憶手段５０１内には各ライン上に描画要素が描画されているか否かを示すライン情報も生成されていることになる。なお、このライン情報は、ライン情報記憶手段５０１から、記憶装置２０３’内のライン情報記憶手段５０２に適当なタイミングでコピーされる。次に、上記の処理をよりわかり易くするために、具体的な数値を挙げて説明する。
【００４０】
図４は１ページ上にアルファベット文字列”ＡＢＣ〜ＸＹＺ”が横一列に印字されている典型的な文書の例である。このページは６０００画素×８０００ラインからなるビットマップにより構成されている。従って、このページ上の任意の画素位置は、二次元の座標値（ｘ，ｙ）によって表現できる。ここで、ｘは横方向の画素位置を表し、０から５９９９までの値をとるものとする。また、ｙは縦方向の画素位置を表し、０から７９９９までの値をとるものとする。
【００４１】
図４左上の文字”Ａ”は、前記ページ記述言語においては一つの描画要素として記述されており、これを前記ラスタライザ２０５’によってビットマップに展開した結果が図５であり、横７２画素×縦９６画素の領域に描画される。この描画要素の大きさ７２画素×９６画素はあらかじめ前記ページ記述言語の描画パラメータの一部として記述されている。同様に前記文字”Ａ”の前記ページ内の位置を示す座標値（２００，３００）も前記描画パラメータとして記述されている。この座標値は前記ページにおいて前記文字”Ａ”の占める７２画素×９６画素の矩形領域の最左上画素が置かれる座標の値である。従って前記文字”Ａ”は前記ページ内の座標（２００，３００）−（２７１，３９５）を対角線とする矩形領域内に配置される。
【００４２】
残りの文字”Ｂ”，”Ｃ”〜”Ｘ”，”Ｙ”，”Ｚ”も同様にして配置されるが、各文字とも縦方向の大きさが等しいことから、前記文字列”ＡＢＣ〜ＸＹＺ”は全て縦方向の座標値が３００から３９５までの値をとる矩形内に配置されることになる。前記ラスタライザ２０５’は、一行の文字列を全て展開及び描画し終えた時点で、ライン３００から３９５には描画されていることを示すデータ”１”をライン情報として前記ライン情報記憶手段５０１に記憶する。ライン情報は、図６に示すように、ライン番号と印（フラグ）と対応付けたリスト状のデータとなる。
【００４３】
オフィス文書では、このような横一列の文字列が、一定の間隔を開けて縦方向に並ぶ場合が頻繁に出現する場合がある。このようなとき、一ページのオフィス文書について前記描画対象リストに従い、前記描画要素を展開及び描画した結果、ライン情報記憶手段５０１に保持されるライン情報には、前記描画されていることを示す印のついたラインが連続している部分と前記印のついていないラインが連続している部分とが交互に出現することになる。
【００４４】
上述の例においては前記文字列の縦方向の大きさが全て９６画素であることから、このような文字列が９６ラインの間隔をおいて繰り返し描画されているとすると、９６の連続した前記描画されていることを示す印”１”のついたラインと、９６の連続した前記印のついていないライン”０”の繰り返しとなる。前記ラスタライザ２０５’は展開及び描画が終わった１ページ分のデータとともに、ライン情報記憶手段５０１中に保持されているライン情報を、前記１ページ分のイメージデータの属性データとして共に前記記憶装置２０３’に格納する。
【００４５】
次に、記憶装置２０３’に格納された前記１ページ分のイメージデータは、圧縮／伸長装置２１０’によってＪＢＩＧ圧縮される。ＪＢＩＧ圧縮／伸長装置２１０’は、前記記憶装置２０３’から前記１ページ分のイメージデータを、最左上の画素から順次読み込みながらＪＢＩＧ圧縮を行うわけであるが、その際ラインの左端の画素を読み出すのに先立って、判定手段２１０ａが、記憶手段５０２に格納されたライン情報を読み出す。なお、記憶手段５０２に格納しない構成であれば、記憶手段５０１から読み出すようにしてもよい。このとき判定手段２１０ａは、直前のラインのライン情報とこれからＪＢＩＧ符号化を行おうとしているライン（現行ライン）のライン情報とが、共に”０”であれば、直前のラインも現行ラインも描画されていないので、当該ラインの画素については記憶装置２０３’から読み出すことはせず、ＪＢＩＧ符号化アルゴリズムにおいてＬＮＴＰｙを０、すなわち直前のラインとの一致を示す値として符号化するように符号化手段２１０ｂに指令し、次のラインに移る。
【００４６】
このようにして、ＪＢＩＧ圧縮時に記憶装置２０３’から読み出す画素データを、描画されているラインのデータに限ることができる。前述の例のように、該ページが９６の連続した描画されているラインと、９６の連続した描画されていないラインの繰り返しであった場合、前記ＪＢＩＧ圧縮／伸長装置２１０’が読み込むべきデータ量を半分に減らすことができる。
【００４７】
さらに前記ＪＢＩＧ圧縮／伸長装置２１０’が１クロックあたり１画素の速度でＪＢＩＧ符号化を行い、かつ前ラインとの一致の比較も同じ速さで行う場合は、ＪＢＩＧ符号化に要する時間を１／２に減らすことができる。
【００４８】
ところで、連続する２つの描画されているライン間においても一致する場合もある。その確率は文書においては低いかもしれないが、この場合にも同様に、そのラインのＬＮＴＰｙを１として符号化してもＪＢＩＧのアルゴリズムにおいては正しく復号化できる。
【００４９】
上述の説明では、描画されているラインと全く何も描画されていないラインとを区別する場合についてのみ説明してきたため、オフィス文書で多く見受けられる罫線、枠どり、背景などの縦方向に同一のパターンが繰り返されるパターンが現れた場合には、本実施形態では文字が描画されたラインとの区別はできないのでは懸念されるかもしれない。
【００５０】
しかし、これら罫線、枠どり、背景なども前記描画対象リストの前記描画要素の一部であり、ページ描画中にこれらの情報を抽出することは容易に行える。例えば、図７に示す如く座標（１００、１００）から座標（１００、７８００）まで（すなわち１０１行目から７８０１行目まで）垂直に直線が引かれている場合には、図８に示されるように１０１行目と７８０２行目のみ前記ライン情報記憶手段５０１の保持するライン情報に前記描画されていることを示す印をつけ、その他のラインは印をつけないようにすれば、１０１行目と７８０２行目以外は、先に図６を用いて説明した際の描画されていないラインと同等に、直前のラインと一致しているラインとして扱える。
【００５１】
本発明においては、このようにして可能な限り罫線、枠どり、背景等の影響を取り除くことができる。
【００５２】
本実施形態においては前記ラスタライザ２０５’内に前記ライン情報記憶手段５０１を備えているが、別の場所に具備しても良く、また、前記ライン情報を直接前記記憶装置２０３’に書き出すようにしても良いことは言うまでもない。
【００５３】
本実施形態においては前記ライン情報として描画されているラインに対応する記録領域に印をつける方式を用いているが、描画されているラインを区別できる方法であればどのような手段を用いてもよいことは言うまでもない。
【００５４】
本実施形態においては前記描画要素として文字列を用いているが、もちろんどのような図形データであっても同様に扱えることは言うまでもない。
【００５５】
本実施形態では前記記憶装置２０３’記憶装置内に１ページ分のデータを展開及び描画しているが、もちろん、１ページのデータを部分的に展開及び描画する構成であっても、あるいは複数ページを一度に展開及び描画する構成であってもよい。
【００５６】
本実施形態においては２値画像データの圧縮／伸長方式としてＪＢＩＧを用いているが、前ラインとの比較を行い、一致した場合には一致しない場合に比し符号化を簡略でき、かつ一致した場合であっても一致しない場合と同一方法で符号化を行ったとしても正しく復号化できるようなアルゴリズムの圧縮／伸長方式であれば、同様に適用できることは言うまでもない。
【００５７】
さらに、本実施形態では２値画像の場合について述べているが、カラー画像の場合であっても、各色成分ごとに２値画像と同等の方法で圧縮／伸長を行う場合には、同様に適用できることは言うまでもない。
【００５８】
次に符号処理等の詳細を説明する。図９はＪＢＩＧ方式を用いて画像データを単一レイヤ符号化する際のフローチャートを示したものである。手順ＩＮＩＴＥＮＣが起動されると（９００）と、最初のストライプないし強制的リセットの後の起動であれば、確率推定テーブルの内容をクリアするとともに内部レジスタを初期化する。確率推定テーブルはコンテキストＣＸそれぞれの可能な値に対して１ビットの優勢確率シンボルＭＰＳ（ＣＸ）と７ビットの確率推定状態ＳＴ（ＣＸ）が格納されている。
【００５９】
コンテキストＣＸはテンプレートによって指示される符号化対象画素の周囲に位置する１０個の参照画素の取り得る１０２４通りのパターンのうちの一つである。テンプレートはその参照するライン数により図１０に示す２ラインテンプレート、図１１に示す３ラインテンプレートの２通りを選択できる。図の中で”？”との記号で示される位置は現在の符号化対象画素の位置を示す。
【００６０】
次のステップで現在の符号化対象画素値ＰＩＸ、符号化対象画素に対応するコンテキスト、およびＴＰＶＡＬＵＥを読み込む（３０１）。ここにＴＰＶＡＬＵＥはライン毎に決定される量であり、典型的予測を行う場合、符号化対象画素を含むラインがその直前のラインと一致する、すなわち一つの画素の値も異ならないかどうかを示す値をとる。典型的予測を行わない場合は常に符号化対象画素を含むラインがその直前のラインと一致しないことを示す値をとる。
【００６１】
典型的予測を用いる場合は１ラインの処理を開始する前に図１２に示される疑似画素位置に特別なコンテキストを用いてその情報が符号化される。実際にはＴＰＶＡＬＵＥではなく、ＳＬＮＴＰが符号化される。ここにＳＬＮＴＰは次式により求められる。
【００６２】
ＳＬＮＴＰｙ＝！（ＬＮＴＰｙ  ＸＯＲ  ＬＮＴＰｙ−１）
ここで、ＬＮＴＰｙはｙライン目がｙ−１ライン目と一つの画素でも異なる場合（このときラインｙは”典型的でない”と呼ぶ。）は１、そうでない場合は０をとる。このようにＳＬＮＴＰはＬＮＴＰの変化点で０、ＬＮＴＰの値が連続して変化しない場合はその間で１となる。
【００６３】
このように現在の符号化対象画素を含むラインと直前のラインとの一致を検出するためには図１３に示すように、符号／復号器中に１ライン分のラインメモリを持ち、入力データと直前のラインのデータと逐次比較し、１ラインのデータ入力を終えた後、全ての画素が一致していたかどうかを以って決定する。
【００６４】
次のステップではＴＰＶＡＬＵＥの値を検査する（３０２）。もしＴＰＶＡＬＵＥの値が符号化対象画素を含むラインがその直前のラインと一致していることを示していれば、次のステップを省略する。ＴＰＶＡＬＵＥはライン毎に決定されることから、この場合該処理ライン中の全て画素に対する符号化処理が省略されることになる。
【００６５】
そうでなければ次のステップＥＮＣＯＤＥで符号化対象画素をその画素値ＰＩＸと対応するコンテキストＣＸを用いて算術符号化する（３０３）。
【００６６】
図１４は、ＥＮＣＯＤＥ処理のフローチャートを示したものである。まず現在の符号化対象画素値ＰＩＸとコンテキストＣＸから予測される優勢シンボルＭＰＳとを比較し（９００）、一致した場合はオージェントを保持するＡレジスタに、コンテキストＣＸの現在の状態ＳＴに対応する確率推定値ＬＳＺを与える（９０１）。次にＡレジスタの値と０ｘ８０００を比較し（９０２）、Ａレジスタの値の方が大きければ次の画素の処理に移る。Ａレジスタの値の方が小さければＡレジスタの値とＬＳＺを比較し（９０３）、その結果によりコードレジスタＣの値にＡレジスタの値を加算し、ＡレジスタにＬＳＺの値をロードする（９０４）。次にコンテキストＣＸにおける状態ＳＴをＮＭＰＳに更新する。次いでＡレジスタの値が０ｘ８０００を超えるまでＡレジスタとＣレジスタを左シフトするいわゆる正規化処理を行う（９０５）。この際Ｃレジスタの左端より出力されるビット列が出力符号データとなる。
【００６７】
符号化対象画素値ＰＩＸと優勢シンボルＭＰＳが一致しなかった場合は、オージェントを保持するＡレジスタからコンテキストＣＸの現在の状態ＳＴに対応する確率推定値ＬＳＺを減ずる（９０６）。次にＡレジスタの値とＬＳＺを比較し（９０７）、その結果によりコードレジスタＣの値にＡレジスタの値を加算し、ＡレジスタにＬＳＺの値をロードする（９０８）。次に状態ＳＴが所定の状態である場合には（９０９）、コンテキストＣＸにおける優勢シンボルの値を交換する（９１０）。次にコンテキストＣＸにおける状態ＳＴをＮＬＰＳに更新する。次いでＡレジスタの値が０ｘ８０００を超えるまでＡレジスタとＣレジスタを左シフトするいわゆる正規化処理を行う（９１１）。この場合もＣレジスタの左端より出力されるビット列が出力符号データとなる。
【００６８】
図１５は、ＪＢＩＧ方式を用いて画像データを単一レイヤ復号化する際のフローチャートを示したものである。手順ＩＮＩＴＤＥＣが起動されると（４００）、最初のストライプないし強制的リセットの後であれば確率推定テーブルの内容をクリアするとともに内部レジスタを初期化する。
【００６９】
次に復号化対象画素に対応するコンテキスト、およびＴＰＶＡＬＵＥを読み込む（４０２）。ここにＴＰＶＡＬＵＥは符号化時と同様ライン毎に決定される量であり、典型的予測を行う場合、復号化対象画素を含むラインがその直前のラインと一致する、すなわち一つの画素の値も異ならないかどうかを示す値をとる。典型的予測を用いる場合は図１２に示される疑似画素位置に特別なコンテキストを用いてその情報が符号化されているため、１ラインの復号処理を行う前に予めこの値を復号しておく必要がある。実際には前述のようにＴＰＶＡＬＵＥではなくＳＬＮＴＰが符号化されている。
【００７０】
次のステップではＴＰＶＡＬＵＥの値を検査する（４０３）。もしＴＰＶＡＬＵＥの値が符号化対象画素を含むラインがその直前のラインと一致していることを示していれば、直前のラインの同じ画素位置で復号した画素の値を出力する。ＴＰＶＡＬＵＥはライン毎に決定されることから、この場合該処理ライン中の全て画素に対する復号化処理が省略されることになる。
【００７１】
そうでなければ次のステップＤＥＣＯＤＥで復号化対象画素値ＰＩＸをコンテキストＣＸで算術復号化する（４０４）。その後、手順ＤＥＣＯＤＥが起動され（４０５）、ＤＥＣＯＤＥ（復号）処理が行われる。
【００７２】
図１６は、ＤＥＣＯＤＥ処理のフローチャートを示したものである。  まずオージェントを保持するＡレジスタからコンテキストＣＸの現在の状態ＳＴに対応する確率推定値ＬＳＺを減ずる（１０００）。次にコードレジスタＣの内容とＡレジスタの内容を比較する（１００１）。Ａレジスタの方が大きい場合は、Ａレジスタの値と０ｘ８０００を比較し（１００２）、Ａレジスタの値の方が大きければ復号化対象画素の値ＰＩＸとして優勢シンボルＭＰＳを出力し（１００６）、次の画素の処理に移る。Ａレジスタの値の方が小さければＡレジスタの値とＬＳＺを比較し（１００４）、Ａレジスタの値の方が大きければ復号化対象画素の値ＰＩＸとして優勢シンボルＭＰＳを出力し、コンテキストＣＸにおける状態ＳＴをＮＭＰＳに更新し、次の画素の処理に移る（１００５）。
【００７３】
Ａレジスタの方がＬＳＺより小さければ、ＭＰＳを反転した値をＰＩＸの値として出力し（１００６）、コンテキストＣＸにおける状態ＳＴをＮＬＰＳに更新し（１００９）、必要なら（１００７）、そのコンテキストＣＸにおける優性シンボルの値ＭＰＳを反転し、次の画素の処理に移る（１００８）。次いでＡレジスタの値が０ｘ８０００を超えるまでＡレジスタとＣレジスタを左シフトする正規化処理を行う（１０２０）。
【００７４】
Ａレジスタの方がＣレジスタよりも小さい場合は、Ａレジスタの値とＬＳＺを比較し（１０１０）、Ａレジスタの値の方が大きければ、Ｃレジスタの値からＡレジスタの値を減じ、ＡレジスタにＬＳＺの値をロードする（１０１１）。復号化対象画素の値ＰＩＸとして優勢シンボルＭＰＳの反転を出力し（１０１２）、必要なら（１０１３）、そのコンテキストＣＸにおける優性シンボルの値ＭＰＳを反転し（１０１４）、コンテキストＣＸにおける状態ＳＴをＮＬＰＳに更新し（１０１５）、次の画素の処理に移る。次いでＡレジスタの値が０ｘ８０００を超えるまでＡレジスタとＣレジスタを左シフトする正規化処理を行う（１０１６）。
【００７５】
Ａレジスタの方がＬＳＺより小さければ、Ｃレジスタの値からＡレジスタの値を減じ、ＡレジスタにＬＳＺの値をロードする（１０１７）。優性シンボルＭＰＳをＰＩＸの値として出力し、コンテキストＣＸにおける状態ＳＴをＮＭＰＳに更新し、次の画素の処理に移る（１０１８）。次いでＡレジスタの値が０ｘ８０００を超えるまでＡレジスタとＣレジスタを左シフトする正規化処理を行う（１０１９）。
【００７６】
以上の操作をストライプが終了するまで行う（４０６）。
【他の実施形態】
次に本発明の他の実施形態を説明する。本発明は、複数の機器（例えばホストコンピュータ、インタフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００７７】
図１７は、本発明の他の実施形態をいくつか示している。ＰＣまたはＦＡＸ機器２００１、２００２、２００４、および２００６は、通信回線２００３を通じて相互に接続されているものとする。なお、通信回線２００３は、電話回線、ＬＡＮまたはＷＡＮのいずれであっても良い。もちろん有線または無線のいずれでもよい。各機器には通信回線の種類に応じた接続インタフェースが具備されている。また、通信回線２００３には、必要によりファイルサーバ２００５やネットワークプリンタ２００７が接続されていてもよい。これらの機器にも接続インタフェースが具備されている。
【００７８】
図１８は、図１７中のIまたはIVのケースを示している。IVのケースは、ＪＢＩＧ符号化を行うプリンタまたはＦＡＸ等がＰＣと直接接続されているケースである。Iのケースは、ＰＣまたはＦＡＸが、ネットワークを通じて他のＰＣ、ＦＡＸまたはプリンタ機器等と接続されているケースである。
【００７９】
ＰＣ上で文書が作成され、文書の印刷指示がＰＣの入力装置から入力されると（１８０１）、プリンタドライバは、文書データをページ記述言語に翻訳する（１８０２）。翻訳が終わると、ＰＣとプリンタとの各インタフェースを介して、翻訳語のデータが転送される。翻訳語のデータを受取ったプリンタは、ラスタライザで、画素に展開し（１８０３）、データを解析し、ライン情報を作成する（１８０４）。プリンタの符号化処理部では、現ラインを構成する画素データをメモリから読み取る前に、まず、現ラインのライン情報をメモリから読み取り、画素データの読み取りが省略できるかを判定する（１８０５）。省略が可能なら、直前ラインと同一としてＪＢＩＧ符号化を施す（１８０６）。省略が不可能な場合は、通常どおり、１ライン分の画素を順次読出し（１８０７）、画素ごとにＪＢＩＧ符号化を施す（１８０８）。１ページの符号化が終了すると、プリンタエンジンに印刷データを送り、印刷が行われる（１８０９）。なお、ＰＣに接続されている機器がファクシミリの場合は、ファクシミリの印刷装置から印刷してもよいし、他のファクシミリに伝送してもよい。また、出力とは、表示、送信等の外部への情報伝達方法を意味し、間接的または直接的な出力のいずれであってもよい。
【００８０】
このように、一ライン分の画素データの読込が省略できれば、処理時間が大幅に短縮できる利点がある。これは、現実のデータが、前後のライン間で類似性あるいは共通性が認められる場合がしばしばあることと、符号器への入力の前処理の段階でこの類似性あるいは共通性を検出することは比較的容易で、しかも、この検出処理およびライン情報の作成処理は、全体の処理時間にそれほど影響しにくい処理であることに着目したものである。
【００８１】
図１９は、図１７のIIおよびIIIのケースで、ＰＣ等の機器がサーバに接続されるケースである。このケースでは、ＰＣが文書ファイルを作成し、印刷指示をサーバに送信すると（１９０１）、サーバがページ記述言語に変換して、ネットワーク上のプリンタまたはファクシミリに出力するものである（１８０２）。なお、プリンタ等はサーバに直接接続されていても、もちろん構わない。この場合のサーバには、符号の変換処理を行うための変換エンジンが搭載されることになるが、これらは、ソフトウェア、ＣＰＵ及びメモリ等により実現してもよい。
【００８２】
図２０は、IIおよびIIIのケースで、サーバにてＪＢＩＧ符号化まで処理してしまう実施形態である。これは、サーバでページ記述言語からＪＢＩＧまでの符号変換処理を集中して行うことで、ＪＢＩＧに対応していないＰＣとページ記述言語に対応していないプリンタ機器とを相互に接続可能とするメリットがある。とりわけ、相互に互換性がない機器同士が混在する環境化では、導入の効果が高いと思われる。サーバの構成としては、先に説明したラスタライザ、符号の圧縮／伸長装置等の装置から構成される。
【００８３】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８５】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した図１８から図２０に示すフローチャートに対応するプログラムコードが格納されることになる。もちろん、装置ごとに記憶媒体を個別に用意し、各装置へのプログラムを個別に提供してもよいし、一の記憶媒体に複数のプログラムが記憶されていてもよい。
【００８６】
【発明の効果】
以上説明したように本発明によれば、ページ記述言語で記載された文書データをビットマップデータに展開した後、これを圧縮するという工程を備える装置／システムにおいて、この文書データの解析により予め各ライン上にビットマップデータが展開されたか否かを判別して、この解析結果を後段の圧縮処理に利用することにより、圧縮対象となるラインの画像データの読み出し処理、あるいは符号化処理の時間を削減することができる。
【図面の簡単な説明】
【図１】文書処理作成システムの一構成例を示す図である。
【図２】本実施形態の基礎となるプリンタの構成を示す図である。
【図３】本実施形態のプリンタの構成を説明する図である。
【図４】本実施形態における典型的なオフィス文書の例を示す図である。
【図５】本実施形態において文字”Ａ”をビットマップ展開しページ上に配置する場合を説明する図である。
【図６】本実施形態におけるライン情報を説明する図である。
【図７】本実施形態においてページ内に垂直線が引かれている状態を説明する図である。
【図８】本実施形態においてページ内に垂直線が引かれている場合のライン情報の状態を説明する図である。
【図９】ＪＢＩＧ符号化の際のフローチャートを示す図である。
【図１０】ＪＢＩＧにおける２ラインテンプレートを説明する図である。
【図１１】ＪＢＩＧにおける３ラインテンプレートを説明する図である。
【図１２】ＪＢＩＧにおいて典型的予測を用いる際の仮想画素位置を説明する図である。
【図１３】ライン間一致検出装置を説明する図である。
【図１４】ＪＢＩＧ符号化におけるＥＮＣＯＤＥ処理のフローチャートである。
【図１５】ＪＢＩＧ復号化の際のフローチャートを示す図である。
【図１６】ＪＢＩＧ復号化におけるＤＥＣＯＤＥ処理のフローチャートである。
【図１７】本実施形態におけるネットワーク形態を示す図である。
【図１８】本実施形態におけるフローチャートの一例を示す図である。
【図１９】本実施形態におけるフローチャートの一例を示す図である。
【図２０】本実施形態におけるフローチャートの一例を示す図である。
【符号の説明】
２００’  コンピュータなどのホスト
２０１’  ホストＩ／Ｆ
２０２’  制御装置
２０３’  記憶装置
２０４’  メモリコントローラ
２０５’  ラスタライザ
２０８’  エンジンＩ／Ｆ
２０９’  ＤＭＡコントローラ
２１０’  圧縮／伸長装置
２２０’  プリンタエンジン
５０１  ラスタライザ２０５’に備えられたライン情報記憶手段
５０２  記憶装置２０３’に格納されたライン情報
【図１】
0003624155.tif 000002
【図２】
0003624155.tif 000003
【図３】
0003624155.tif 000004
【図４】
0003624155.tif 000005
【図５】
0003624155.tif 000006
【図６】
0003624155.tif 000007
【図７】
0003624155.tif 000008
【図８】
0003624155.tif 000009
【図９】
0003624155.tif 000010
【図１０】
0003624155.tif 000011
【図１１】
0003624155.tif 000012
【図１２】
0003624155.tif 000013
【図１３】
0003624155.tif 000014
【図１４】
0003624155.tif 000015
【図１５】
0003624155.tif 000016
【図１６】
0003624155.tif 000017
【図１７】
0003624155.tif 000018
【図１８】
0003624155.tif 000019
【図１９】
0003624155.tif 000020
【図２０】
0003624155.tif 000021