(57)【特許請求の範囲】
【請求項１】
１枚の画像データを構成するラスターデータが１枚目からＮ枚目（Ｎは２以上の整数）まで順次入力される入力領域と、当該１枚目からＮ枚目のラスターデータが前記入力領域から順次シフトされて格納される辞書領域と、を有する記憶部と、
前記ラスターデータを、前記入力領域に入力し、前記辞書領域内のいずれかの位置から連続しているデータ列に一致する部分列を圧縮して圧縮データを生成するとともに、当該ラスターデータを前記辞書領域にシフトする圧縮制御部と、を備え、
前記圧縮制御部は、
前記Ｎ枚目のラスターデータの先頭部分列を圧縮する場合には、前記１枚目からＮ−１枚目のラスターデータのうちのいずれかの先頭部分列を前記辞書領域に格納して用いる、
ことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記圧縮制御部は、
前記ラスターデータの先頭部分列を圧縮する場合には、白色を表す輝度値０のデータ列を前記辞書領域に格納して用いる、
ことを特徴とする画像処理装置。
【請求項３】
請求項１又は２に記載の画像処理装置であって、
前記圧縮制御部は、
前記１枚目のラスターデータの先頭部分列を圧縮する場合には、白色を表す輝度値０のデータ列を前記辞書領域に格納して用い、
２枚目から前記Ｎ枚目のラスターデータの先頭部分列を圧縮する場合には、前記１枚目から前記Ｎ−１枚目のラスターデータのうちのいずれかの先頭部分列を前記辞書領域に格納して用いる、
ことを特徴とする画像処理装置。
【請求項４】
請求項２又は３に記載の画像処理装置であって、
前記記憶部は、
前記圧縮制御部によって処理されたラスターデータの先頭部分列を保持しておくための記憶領域を有している、
ことを特徴とする画像処理装置。
【請求項５】
請求項２乃至４のいずれか１項に記載の画像処理装置であって、
前記入力領域には、テキストを内容とするラスターデータが入力され、
前記圧縮制御部は、
前記Ｎ枚目のラスターデータが前記テキストを内容とするラスターデータである場合には、白色を表す輝度値０のデータ列を前記辞書領域に格納し、前記Ｎ枚目のラスターデータがイメージを内容とするラスターデータである場合には、前記１枚目から前記Ｎ−１枚目のラスターデータのうちのいずれかの先頭部分列を前記辞書領域に格納する、
ことを特徴とする画像処理装置。
【請求項６】
１枚の画像データを構成するラスターデータが１枚目からＮ枚目（Ｎは２以上の整数）まで順次入力される入力領域と、当該１枚目からＮ枚目のラスターデータが前記入力領域から順次シフトされて格納される辞書領域と、を有する記憶部と、
前記ラスターデータを、前記入力領域に入力し、前記辞書領域内のいずれかの位置から連続しているデータ列に一致する部分列を圧縮して圧縮データを生成するとともに、当該ラスターデータを前記辞書領域にシフトする圧縮制御部と、
前記圧縮制御部で圧縮された圧縮データを解凍する解凍処理部と、を備え、
前記圧縮制御部は、
前記Ｎ番目のラスターデータの先頭部分列を圧縮するときに、白色を表す輝度値０のデータ列を前記辞書領域に格納して当該ラスターデータを圧縮したか、前記１枚目からＮ−１枚目のラスターデータのうちのいずれかの先頭部分列を前記辞書領域に格納して当該ラスターデータを圧縮したか、を少なくとも識別する識別情報を前記記憶部に登録又は前記Ｎ番目のラスターデータに格納し、
前記解凍処理部は、
前記圧縮制御部によって登録された前記識別情報に基づいて、圧縮データの解凍方法を切り替える、
ことを特徴とする画像処理装置。
【請求項７】
画像処理装置における画像処理方法であって、
前記画像処理装置は、
１枚の画像データを構成するラスターデータが１枚目からＮ枚目（Ｎは２以上の整数）まで順次入力される入力領域と、当該１枚目からＮ枚目のラスターデータが前記入力領域から順次シフトされて格納される辞書領域とを有する記憶部を備えており、
前記ラスターデータを前記入力領域に入力する入力ステップと、
前記入力ステップで入力されたラスターデータについて、前記辞書領域内のいずれかの位置から連続しているデータ列に一致する部分列を圧縮して圧縮データを生成する圧縮ステップと、
前記入力領域のラスターデータを前記辞書領域にシフトするシフトステップと、を行い、
前記圧縮ステップでは、
前記Ｎ枚目のラスターデータの先頭部分列を圧縮する場合には、前記１枚目からＮ−１枚目のラスターデータのうちのいずれかの先頭部分列を前記辞書領域に格納して用いる、
ことを特徴とする画像処理方法。
【請求項８】
画像処理装置における画像処理方法であって、
前記画像処理装置は、
１枚の画像データを構成するラスターデータが１枚目からＮ枚目（Ｎは２以上の整数）まで順次入力される入力領域と、当該１枚目からＮ枚目のラスターデータが前記入力領域から順次シフトされて格納される辞書領域と、を有する記憶部を備えており、
前記ラスターデータを前記入力領域に入力するステップと、
前記入力ステップで入力されたラスターデータについて、前記辞書領域内のいずれかの位置から連続しているデータ列に一致する部分列を圧縮して圧縮データを生成する圧縮ステップと、
前記入力領域のラスターデータを前記辞書領域にシフトするシフトステップと、
前記圧縮ステップで圧縮された圧縮データを解凍する解凍ステップと、を行い、
前記圧縮制御ステップでは、
前記Ｎ番目のラスターデータの先頭部分列を圧縮するときに、白色を表す輝度値０のデータ列を前記辞書領域に格納して当該ラスターデータを圧縮したか、前記１枚目からＮ−１枚目のラスターデータのうちのいずれかの先頭部分列を前記辞書領域に格納して当該ラスターデータを圧縮したか、を少なくとも識別する識別情報を前記記憶部に登録又は前記Ｎ番目のラスターデータに格納し、
前記解凍ステップでは、
前記圧縮ステップで登録された前記識別情報に基づいて、圧縮データの解凍方法を切り替える、
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、および、画像処理方法に関する。
【背景技術】
【０００２】
データ圧縮の技術として、ＬＺ（Zip-Lempel）方式による符号化が知られている（例えば、非特許文献１）。
【０００３】
ＬＺ方式では、繰り返し出現するデータ列を符号化することによって圧縮を行う。データ列が繰り返し出現したか否かの判断については、出現したデータ列を辞書に登録し、その辞書を参照することによって行う。
【先行技術文献】
【特許文献】
【０００４】
【非特許文献１】宗像清治、「Zip-Lempelのデータ圧縮法」、情報処理、Vol.26, No.1, 1985
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、圧縮対象のデータの先頭部分を圧縮する場合には、辞書にデータが未登録のため、圧縮率が低い。
【０００６】
本発明は、圧縮対象のデータ（印刷対象のラスターデータなど）の先頭部分を、ＬＺ方式によって圧縮する場合において、圧縮率を従来よりも高める技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するための本願発明は、画像処理装置であって、１枚の画像データを構成するラスターデータが１枚目からＮ枚目（Ｎは２以上の整数）まで順次入力される入力領域と、当該１枚目からＮ枚目のラスターデータが前記入力領域から順次シフトされて格納される辞書領域と、を有する記憶部と、前記ラスターデータを、前記入力領域に入力し、前記辞書領域内のいずれかの位置から連続しているデータ列に一致する部分列を圧縮して圧縮データを生成するとともに、当該ラスターデータを前記辞書領域にシフトする圧縮制御部と、を備え、前記圧縮制御部は、前記Ｎ枚目のラスターデータの先頭部分列を圧縮する場合には、前記１枚目からＮ−１枚目のラスターデータのうちのいずれかの先頭部分列を前記辞書領域に格納して用いる。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１の実施形態に係る画像処理装置の概略構成の一例を示すブロック図である。
【図２】（Ａ）は、ラスターデータが入力データ領域に入力された時点のデータ列の例を示す図である。（Ｂ）〜（Ｈ）は、ラスターデータを入力データ領域から辞書領域にシフトする過程におけるデータ列の例を示す図である。
【図３】第１の実施形態に係る圧縮処理を説明するためのフローチャートである。
【図４】第１の実施形態に係る圧縮処理において、シフトされるラスターデータの概要を示す図である。（Ａ）は、ステップＳ１０１、Ｓ１０２の処理が完了した時点における、入力データ領域および辞書領域に格納されているデータを示す図である。（Ｂ）は、固定値のデータ列の一部が辞書領域に残っている期間における、入力データ領域および辞書領域に格納されているデータを示す図である。（Ｃ）は、固定値のデータ列が辞書領域に残っていない期間における、入力データ領域および辞書領域に格納されているデータを示す図である。（Ｄ）は、ステップＳ１０７の処理が完了した時点における、入力データ領域および辞書領域に格納されているデータを示す図である。
【図５】第２の実施形態に係る画像処理装置の概略構成の一例を示すブロック図である。
【図６】第２の実施形態に係る圧縮処理において、シフトされるラスターデータの概要を示す図である。（Ａ）は、ステップＳ１０１、Ｓ１０２の処理が完了した時点における、入力データ領域および辞書領域に格納されているデータを示す図である。（Ｂ）は、圧縮処理されたことのあるラスターデータの先頭部分列の一部が辞書領域に残っている期間における、入力データ領域および辞書領域に格納されているデータを示す図である。（Ｃ）は、圧縮処理されたことのあるラスターデータの先頭部分列が辞書領域に残っていない期間における、入力データ領域および辞書領域に格納されているデータを示す図である。（Ｄ）は、ステップＳ１０７の処理が完了した時点における、入力データ領域および辞書領域に格納されているデータを示す図である。
【図７】解凍テーブルの概略データ構造の一例を示す図である。
【発明を実施するための形態】
【０００９】
（第１の実施形態）
以下、本発明の実施形態の一例を図面を参照して説明する。
【００１０】
図１は、本発明の第１の実施形態に係る画像処理装置１００の概略構成の一例を示すブロック図である。図示するように、画像処理装置１００は、画像データ（例えば、印刷対象のラスターデータ）を、ＬＺ方式によって圧縮する装置として機能する。画像処理装置１００は、図示するように、ＣＰＵ１１０と、ＲＡＭ１２０と、ＲＯＭ１３０と、圧縮回路１４０と、解凍回路１５０と、を備えている。もちろん、画像処理装置１００の構成は上記に限られない。例えば、印刷を実行する印刷エンジンや、各種インターフェイスなどを備える構成としてもよい。また、圧縮回路１４０と解凍回路１５０を、それぞれ別個の画像処理装置１００に備える構成としてもよい。
【００１１】
ＣＰＵ１１０は、他のユニットを制御して画像処理装置１００の各種機能を実現する演算装置である。ＣＰＵ１１０は、ＲＯＭ１３０などのメモリーに格納された所定のプログラムをＲＡＭ１２０にロードして実行することにより各種機能を実現する。
【００１２】
ＣＰＵ１１０は、圧縮対象の画像データを圧縮回路１４０に転送し、圧縮回路１４０で圧縮されたデータ（以下では「圧縮データ」とよぶ）を、メモリー（例えば、ＲＡＭ１２０やＲＯＭ１３０）に格納する。また、ＣＰＵ１１０は、圧縮データを解凍回路１５０に転送し、解凍回路１５０で解凍されたデータを、メモリー（例えば、ＲＡＭ１２０やＲＯＭ１３０）に格納する。
【００１３】
ＲＡＭ１２０は、各種プログラム、データなどを一時的に格納し、ＣＰＵ１１０による演算時のワークメモリーとして使用される。
【００１４】
ＲＯＭ１３０は、ＦｌａｓｈＲＯＭ等の書き換え可能な記憶媒体であり、各種プログラムを格納する。例えば、ＲＯＭ１３０は、圧縮回路１４０や解凍回路１５０を制御するためのプログラムなどを格納する。
【００１５】
圧縮回路１４０は、画像データ（例えば、ラスターデータ）を、ＬＺ方式によって圧縮する。例えば、圧縮回路１４０は、図示するように、記憶部１４１と、制御部１４２と、を備える。
【００１６】
記憶部１４１は、画像データの符号化（圧縮）処理に用いられる記憶媒体である。記憶部１４１は、図示するように、入力データ領域４１１と、辞書領域４１２と、を有する。
【００１７】
入力データ領域４１１には、圧縮回路１４０に入力された画像データが格納される。なお、入力データ領域４１１に印刷対象のラスターデータが格納される場合には、ラスターデータごとに格納される。
【００１８】
辞書領域４１２には、符号化（圧縮）処理において既に出現したデータ列（入力データ領域４１１に入力されたデータ列）が登録される。また、ラスターデータの先頭部分列について圧縮が行われる場合、辞書領域４１２には、固定値のデータ列（例えば、全ビットが「０」であるデータ列、すなわち各画素が白色を表す輝度値「０」であるデータ列）が登録される。なお、ラスターデータの先頭部分列とは、ラスターデータの先頭位置から所定長（辞書領域４１２に登録可能な最大のデータ幅）のデータ列を指す。
【００１９】
制御部１４２は、ＣＰＵ１１０からの指示に基づいて、圧縮回路１４０における圧縮処理の制御を行う。
【００２０】
例えば、制御部１４２は、メモリー（ＲＡＭ１２０やＲＯＭ１３０）などから転送された画像データについて、ラスターデータごとに入力データ領域４１１に入力する。ただし、ラスターデータを構成する全てのデータが入力データ領域４１１に格納できない場合には、ラスターデータの一部を入力データ領域４１１に入力してもよい。
【００２１】
ここで、制御部１４２は、上述した固定値のデータ列を、辞書領域４１２に登録しておく。
【００２２】
それから、制御部１４２は、以下に説明する、「検索処理」、「圧縮データ生成処理」、「シフト処理」を、入力データ領域４１１に入力されたラスターデータに対して繰り返し行うことにより、ラスターデータの圧縮を行う。
【００２３】
＜検索処理＞
制御部１４２は、辞書領域（入力データ領域４１１まで連続しているデータ列を含む）４１２を参照して、ラスターデータ（一部あるいは全部）と最も長く連続して一致するデータ列を検索する。すなわち、制御部１４２は、入力データ領域４１１の先頭位置から最も長く連続して一致するデータ列を、辞書領域４１２から検索する。
【００２４】
＜圧縮データ生成処理＞
制御部１４２は、連続して一致するデータ列が存在する場合には、そのデータ列を圧縮して圧縮データを生成する。圧縮データの生成方法としては、例えば、［一致するデータ列の先頭位置を特定する値，一致するデータ列のデータ長を示す値］のように符号化（圧縮）する。もちろん、圧縮データの生成方法については、これ以外の方法を用いてもよい。一方、制御部１４２は、連続して一致するデータ列が存在しない場合（或いは、連続して一致するデータ列が所定長以下の場合）には、圧縮を行わない。
【００２５】
＜シフト処理＞
それから、制御部１４２は、ラスターデータ（入力データ領域４１１に格納されているデータ列）を、圧縮データの生成に用いられたデータ列分（圧縮していない場合には、所定単位のデータ列分）、辞書領域４１２にシフトする。なお、制御部１４２は、ラスターデータのシフトとともに、辞書領域４１２に登録されているデータ列についても同様にシフトする。こうして、辞書領域４１２には、入力データ領域４１２に入力されたラスターデータが登録され、それ以降の検索処理では、ラスターデータに繰り返し出現するデータ列を検索できる。
【００２６】
以上の「検索処理」、「圧縮データ生成処理」、「シフト処理」を繰り返すことにより、制御部１４２は、ラスターデータの先頭部分列について、辞書領域４１２に登録しておいた固定値のデータ列に一致する部分を圧縮できる。また、ラスターデータの先頭部分列以外については、従来通り、ラスターデータに繰り返し出現するデータ列を圧縮できる。
【００２７】
また、制御部１４２は、生成された圧縮データを圧縮回路１４０から出力する。
【００２８】
図２は、圧縮回路１４０で行われる上記の圧縮処理について具体的なデータ列を用いて説明するための図である。
【００２９】
図２（Ａ）は、ラスターデータが入力データ領域４１１に入力された時点のデータ列の例を示す図である。図２（Ｂ）〜（Ｈ）は、ラスターデータを入力データ領域４１１から辞書領域４１２にシフトする過程におけるデータ列の例を示す図である。
【００３０】
図２（Ａ）に示すように、制御部１４２は、メモリー（ＲＡＭ１２０やＲＯＭ１３０）から転送されたラスターデータを、入力データ領域４１１に入力する。これとともに、制御部１４２は、固定値のデータ列を、辞書領域４１２に登録する。なお、図には、辞書領域４１２に登録されるデータ（初期値）を「＊」で示しているが、本実施形態では、「０」などの固定値が辞書領域４１２に登録される。
【００３１】
そして、制御部１４２は、入力データ領域４１１の先頭位置（図示する例では左端の「０」の位置）から最も長く連続して一致するデータ列を、辞書領域４１２から検索する。
【００３２】
ここで、制御部１４２は、連続して一致するデータ列が存在しない場合（或いは、連続して一致するデータ列が所定長以下の場合）には、圧縮を行わず、図２（Ｂ）に示すように、ラスターデータを辞書領域４１２にシフトする。これとともに、制御部１４２は、圧縮されずに辞書領域４１２にシフトされるデータ列「０」を、出力データとして出力する。
【００３３】
図示する例では、図２（Ａ）から（Ｅ）まで、連続して一致するデータ列が存在しないため、制御部１４２は、「検索処理」、「シフト処理」を繰り返して、辞書領域４１２にシフトしたデータ列「０」「１」「２」「３」「４」を、そのまま出力データとして出力している。
【００３４】
図２（Ｆ）に示す段階までラスターデータがシフトすると、入力データ領域４１１の先頭位置（図示する例では左端の「０」の位置）から最も長く連続して一致するデータ列（点線下線の「０１２３」）が辞書領域４１２に存在する（実線下線の「０１２３」）。この場合、制御部１４２は、連続して一致するデータ列「０１２３」を圧縮して圧縮データ［５，４］を生成する。なお、配列の第１引数「５」は、一致するデータ列の先頭位置を特定する値であり、入力データ領域４１１の先頭位置から５文字手前（左）の位置であることを示す値である。また、配列の第２の引数「４」は、一致するデータ列のデータ長を示す値である。圧縮データを生成後、制御部１４２は、図２（Ｇ）に示すように、ラスターデータを、圧縮データの生成に用いられたデータ列分（図示する例では４文字）シフトするとともに、圧縮データを出力データとして出力する。
【００３５】
図２（Ｇ）に示す段階までラスターデータがシフトすると、入力データ領域４１１の先頭位置（図示する例では左端の「０」の位置）から最も長く連続して一致するデータ列（点線下線の「０１２３４０１２３０１２３４０１２３」）が、辞書領域４１２から入力データ領域４１１にわたって存在する（実線下線の「０１２３４０１２３０１２３４０１２３」）。このように、制御部１４２は、辞書領域４１２内のいずれかの位置を始点としていれば、入力データ領域４１１まで連続して一致するデータ列についても検索対象とする。そして、制御部１４２は、連続して一致するデータ列を圧縮して圧縮データ［９，１８］を生成する。
【００３６】
それから、制御部１４２は、図２（Ｈ）に示すように、ラスターデータを、圧縮データの生成に用いられたデータ列分（図示する例では１８文字）シフトするとともに、圧縮データ［９，１８］を出力データとして出力する。
【００３７】
以上のように、圧縮回路１４０における圧縮処理では、入力データ領域４１１にラスターデータが存在しなくなるまで「検索処理」、「圧縮データ生成処理」、「シフト処理」が繰り返し実行される。そして、印刷対象の画像データは、圧縮回路１４０でラスターデータごとに圧縮される。
【００３８】
図１に戻り説明する。解凍回路１５０は、圧縮回路１４０によって生成（圧縮）された圧縮データを解凍する。なお、解凍回路１５０は、圧縮回路１４０で行われた圧縮の方式に対応する解凍方式によって圧縮データを解凍する。例えば、解凍回路１５０は、ラスターデータの先頭部分列について圧縮が行われる場合に固定値のデータ列が辞書領域１４２に登録されたことがＣＰＵ１１０から通知されると、その固定値のデータ列を用いて圧縮データを解凍する。
【００３９】
本実施形態が適用された画像処理装置１００は、以上のような構成からなる。ただし、画像処理装置１００の構成はこれに限定されない。例えば、画像処理装置１００は、さらに、印刷機能を有するプリンター、コピー機能を有する複写機、画像のスキャン機能を有するスキャナー装置、ファクシミリ機能などを有する複合機などであってもよい。
【００４０】
また、上記した各構成要素は、画像処理装置１００の構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。画像処理装置１００の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、１つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【００４１】
次に、上記構成からなる画像処理装置１００の特徴的な動作について説明する。
【００４２】
図３は、本実施形態の圧縮回路１４０が実行する圧縮処理を説明するためのフローチャートである。なお、図４は、圧縮処理（本フロー）において、シフトされるラスターデータの概要を示す図である。
【００４３】
圧縮回路１４０の制御部１４２は、例えば、メモリー（ＲＡＭ１２０やＲＯＭ１３０）からラスターデータが転送されるタイミングで、本フローを開始する。
【００４４】
本フローを開始すると、制御部１４２は、辞書領域４１２に固定値のデータ列を登録する（ステップＳ１０１）。これとともに、制御部１４２は、メモリーから転送されたラスターデータを、入力データ領域４１１に入力する（ステップＳ１０２）。
【００４５】
図４（Ａ）は、ステップＳ１０１、Ｓ１０２の処理が完了した時点における、入力データ領域４１１および辞書領域４１２に格納されているデータを示す図である。図示するように、ステップＳ１０１、Ｓ１０２の処理が完了した時点では、入力データ領域４１１には、ラスターデータが入力（格納）されており、辞書領域４１２には、固定値のデータ列（斜線部分）が登録（格納）されている。
【００４６】
次に、制御部１４２は、上述した「検索処理」を実行して、入力データ領域４１１の先頭位置から最も長く連続して一致するデータ列が、辞書領域４１２に有るか否か判別する（ステップＳ１０３）。
【００４７】
制御部１４２は、連続して一致するデータ列が辞書領域４１２に有ると判定した場合には（ステップＳ１０３；Ｙｅｓ）、上述した「圧縮データ生成処理」を実行して、ラスターデータ（辞書領域４１２に登録されているデータと一致する部分）を圧縮して圧縮データを生成する（ステップＳ１０４）。
【００４８】
一方、制御部１４２は、ステップＳ１０３において、連続して一致するデータ列が辞書領域４１２に無いと判定した場合には（ステップＳ１０３；Ｎｏ）、ステップＳ１０４の「圧縮データ生成処理」を実行せずに、処理をステップＳ１０５に移行する。
【００４９】
処理がステップＳ１０５に移行すると、制御部１４２は、出力データを出力する（ステップＳ１０５）。具体的には、制御部１４２は、ステップＳ１０４で圧縮データが生成された場合には、生成された圧縮データを出力する。一方、ステップＳ１０４で圧縮データが生成されていない場合には、入力データ領域４１１の先頭位置のデータを出力する。
【００５０】
これとともに、制御部１４２は、上述した「シフト処理」を実行して、入力データ領域４１１のラスターデータを辞書領域４１２にシフトする（ステップＳ１０６）。具体的には、制御部１４２は、ステップＳ１０４で圧縮データが生成された場合には、圧縮データの生成に用いられたデータ列分、ラスターデータをシフトする。一方、ステップＳ１０４で圧縮データが生成されていない場合には、所定単位のデータ列分（例えば、１文字）、ラスターデータをシフトする。
【００５１】
それから、制御部１４２は、入力データ領域４１１内に有効データ（すなわち、未処理のラスターデータ）が有るか否か判別する（ステップＳ１０７）。
【００５２】
制御部１４２は、入力データ領域４１１内に有効データが有る場合には（ステップＳ１０７；Ｙｅｓ）、処理をステップＳ１０３に戻し、入力データ領域４１１に有効データが存在しなくなるまで、ステップＳ１０３からステップＳ１０７までの処理を繰り返し実行する。
【００５３】
図４（Ｂ）は、辞書領域４１２に固定値のデータ列（斜線部分）の一部が残っている期間における、入力データ領域４１１および辞書領域４１２に格納されているデータを示す図である。上記ステップＳ１０３からステップＳ１０７の処理が繰り返し実行されて、ラスターデータは、図４（Ａ）に示す位置から図４（Ｂ）に示す位置までシフトされる。
【００５４】
図示するように、辞書領域４１２に固定値のデータ列が残っている場合（すなわち、ラスターデータの先頭部分列を圧縮する場合）、上記ステップＳ１０３の検索処理では、固定値のデータ列（全部、又は、一部）が検索対象に含まれる。通常、印刷対象の画像データには余白が設けられるため、ラスターデータの先頭部分列は白色を表す輝度値「０」であることが多い。これを考慮して、本実施形態では、ラスターデータの先頭部分列を圧縮する場合に、各画素が白色を表す輝度値「０」である固定値のデータ列を辞書領域１４２に登録している（ステップＳ１０１）。そのため、ラスターデータの先頭部分列を圧縮する場合には、入力データ領域４１１に格納されているデータ列と、辞書領域４１２に登録されているデータ列が一致している確率が高くなる。その結果、ラスターデータの先頭部分列についての圧縮率を従来より高めることができる。
【００５５】
また、図４（Ｃ）は、辞書領域４１２に固定値のデータ列（斜線部分）の一部が残っていない期間における、入力データ領域４１１および辞書領域４１２に格納されているデータを示す図である。上記ステップＳ１０３からステップＳ１０７の処理が繰り返し実行されて、ラスターデータは、図４（Ｂ）に示す位置から図４（Ｃ）に示す位置までシフトされる。
【００５６】
図示するように、辞書領域４１２に固定値のデータ列が残っていない場合（すなわち、ラスターデータの先頭部分列以外を圧縮する場合）、上記ステップＳ１０３の検索処理では、ラスターデータ自身（圧縮処理において既に出現したデータ列）が検索対象となる。これにより、本来のＬＺ方式による符号化（圧縮）が可能となる。
【００５７】
そして、制御部１４２は、入力データ領域４１１内に有効データが無くなると（ステップＳ１０７；Ｎｏ）、１ラスター分（１枚）のラスターデータについて圧縮処理が完了したとみなして、本フローを終了する。
【００５８】
図４（Ｄ）は、ステップＳ１０７の処理が完了した時点における、入力データ領域４１１および辞書領域４１２に格納されているデータを示す図である。図示するように、ステップＳ１０７の処理が完了した時点で、１ラスター分のラスターデータについて圧縮処理が完了されており、入力データ領域４１１内には有効データが存在しない。
【００５９】
以上のような圧縮処理を画像処理装置１００で行うことによって、ＬＺ方式による圧縮処理において、ラスターデータの先頭部分列についての圧縮率を従来より高めることができる。
【００６０】
なお、上記したフロー（圧縮処理）の各処理単位は、画像処理装置１００を理解容易にするために、主な処理内容に応じて分割したものである。処理ステップの分類の仕方やその名称によって、本願発明が制限されることはない。画像処理装置１００が行う処理は、さらに多くの処理ステップに分割することもできる。また、１つの処理ステップが、さらに多くの処理を実行してもよい。
【００６１】
また、ラスターデータの先頭部分列を圧縮する場合に辞書領域４１２に登録する固定値のデータ列は、白色を表す輝度値「０」のデータ列でなくてもよく、画像処理装置１００で頻繁に圧縮される画像データに応じて、他の固定値のデータ列に変更してもよい。
【００６２】
（第２の実施形態）
図５は、本発明の第２の実施形態に係る画像処理装置１００の概略構成の一例を示すブロック図である。
【００６３】
本実施形態と上記第１の実施形態との違いは、圧縮回路１４０の記憶部１４２に登録領域４１３を設けている点である（太線）。上記第１の実施形態と同じ構成については、詳細な説明を省略する。
【００６４】
登録領域４１３は、制御部１４２で圧縮処理されたことのあるラスターデータの先頭部分列を保持するための記憶領域である。
【００６５】
一般的に、連続して圧縮処理される各ラスターデータ（１枚の画像データを構成する各ラスターデータ）は、似通った画像である可能性が高い。すなわち、連続して圧縮処理される各ラスターデータの先頭部分は、同一の輝度値からなるデータ列である確率が高い。これを考慮して、本実施形態では、圧縮処理されたことのあるラスターデータの先頭部分列を登録領域４１３に登録しておく。
【００６６】
そして、制御部１４２は、各ラスターデータを圧縮する場合において、登録領域４１３に登録されているデータ列（すなわち、以前に処理されたラスターデータの先頭部分列）を辞書領域４１２に登録して、圧縮処理を行う。
【００６７】
なお、登録領域４１３に登録しておくラスターデータの先頭部分列は、（１）１枚目のラスターデータ（画像データを構成する最初のラスターデータ）の先頭部分列でもよいし、（２）直前に処理されたラスターデータの先頭部分列でもよい。
【００６８】
＜（１）の場合＞
１枚目のラスターデータの先頭部分列を登録領域４１３に登録しておく場合には、制御部１４２は、１枚目のラスターデータの圧縮処理を完了したタイミングで、そのラスターデータの先頭部分列を登録領域４１３に登録する。この場合、制御部１４２は、２枚目以降のラスターデータを圧縮する場合において、登録領域４１３に登録されているデータ列（すなわち、１枚目のラスターデータの先頭部分列）を辞書領域４１２に登録して、圧縮処理を行う。
【００６９】
＜（２）の場合＞
また、直前に処理されたラスターデータの先頭部分列を登録領域４１３に登録しておく場合には、制御部１４２は、各ラスターデータの圧縮処理を行うたびに、処理したラスターデータの先頭部分列を登録領域４１３に登録する。この場合にも、制御部１４２は、２枚目以降のラスターデータを圧縮する場合において、登録領域４１３に登録されているデータ列（例えば、３枚目のラスターデータを圧縮する場合には、２枚目のラスターデータの先頭部分列）を辞書領域４１２に登録して、圧縮処理を行う。
【００７０】
また、制御部１４２は、１枚目のラスターデータ（画像データを構成する最初のラスターデータ）に対して圧縮処理を行う場合には、上記第１の実施形態の圧縮処理を実行してもよい。すなわち、制御部１４２は、１枚目のラスターデータに対して圧縮処理を行う場合には、登録領域４１３に登録されているデータを用いずに、辞書領域４１２に固定値のデータ列を登録して、圧縮処理を行う。この場合においても、２枚目以降のラスターデータを圧縮する場合には、制御部１４２は、登録領域４１３に登録されているデータ列（１枚目のラスターデータの先頭部分列や、直前に処理されたラスターデータの先頭部分列）を辞書領域４１２に登録して、圧縮処理を行う。
【００７１】
また、本実施形態の解凍回路１５０も、上記第１の実施形態の解凍回路１５０と同様に、圧縮回路１４０で行われた圧縮の方式に対応する解凍方式によって圧縮データを解凍する。例えば、解凍回路１５０は、ラスターデータの先頭部分列について圧縮が行われる場合において、圧縮処理されたことのあるラスターデータの先頭部分列が辞書領域１４２に登録されたことがＣＰＵ１１０から通知されると、その圧縮処理されたことのあるラスターデータの先頭部分列を用いて圧縮データを解凍する。
【００７２】
次に、上記構成からなる本実施形態に係る画像処理装置１００の特徴的な動作について説明する。
【００７３】
本実施形態の圧縮回路１４０が実行する圧縮処理は、上記第１の実施形態の圧縮処理（図３に示すフローチャート）とほぼ同じであるため、以下には、上記第１の実施形態の圧縮処理と相違する点についてのみ説明する。
【００７４】
本実施形態の圧縮処理では、図３のステップＳ１０１の処理が上記第１の実施形態と異なる。
【００７５】
本実施形態のステップＳ１０１では、制御部１４２は、辞書領域４１２に、圧縮処理されたことのあるラスターデータの先頭部分列を登録する（ステップＳ１０１）。具体的には、制御部１４２は、登録領域４１３に登録されているデータ列を、辞書領域４１２に登録する。
【００７６】
図６（Ａ）は、本実施形態のステップＳ１０１、Ｓ１０２の処理が完了した時点における、入力データ領域４１１および辞書領域４１２に格納されているデータを示す図である。図示するように、ステップＳ１０１、Ｓ１０２の処理が完了した時点では、入力データ領域４１１には、ラスターデータが入力（格納）されており、辞書領域４１２には、圧縮処理されたことのあるラスターデータの先頭部分列（斜線部分）が登録（格納）されている。
【００７７】
そして、図６（Ｂ）は、圧縮処理されたことのあるラスターデータの先頭部分列（斜線部分）の一部が辞書領域１４２に残っている期間における、入力データ領域４１１および辞書領域４１２に格納されているデータを示す図である。図３に示すステップＳ１０３からステップＳ１０７の処理が繰り返し実行されて、ラスターデータは、図６（Ａ）に示す位置から図６（Ｂ）に示す位置までシフトされる。
【００７８】
図示するように、圧縮処理されたことのあるラスターデータの先頭部分列が辞書領域１４２に残っている場合（すなわち、ラスターデータの先頭部分列を圧縮する場合）、図３に示すステップＳ１０３の検索処理では、圧縮処理されたことのあるラスターデータの先頭部分列（全部、又は、一部）が検索対象に含まれる。そして、上述したように、連続して圧縮処理される各ラスターデータの先頭部分は、同一の輝度値からなるデータ列である確率が高い。これを考慮して、本実施形態では、圧縮処理されたことのあるラスターデータの先頭部分列を登録領域４１３に登録している（ステップＳ１０１）。そのため、ラスターデータの先頭部分列を圧縮する場合には、入力データ領域４１１に格納されているデータ列と、辞書領域４１２に登録されているデータ列が一致している確率が高くなる。その結果、ラスターデータの先頭部分列についての圧縮率を従来より高めることができる。
【００７９】
また、図６（Ｃ）は、圧縮処理されたことのあるラスターデータの先頭部分列（斜線部分）の一部が辞書領域１４２に残っていない期間における、入力データ領域４１１および辞書領域４１２に格納されているデータを示す図である。図３に示すステップＳ１０３からステップＳ１０７の処理が繰り返し実行されて、ラスターデータは、図６（Ｂ）に示す位置から図６（Ｃ）に示す位置までシフトされる。
【００８０】
図示するように、圧縮処理されたことのあるラスターデータの先頭部分列（斜線部分）が辞書領域１４２に残っていない場合（すなわち、ラスターデータの先頭部分列以外を圧縮する場合）、図３に示すステップＳ１０３の検索処理では、ラスターデータ自身（圧縮処理において既に出現したデータ列）が検索対象となる。これにより、本来のＬＺ方式による符号化（圧縮）が可能となる。
【００８１】
また、図６（Ｄ）は、図３に示すステップＳ１０７の処理が完了した時点における、入力データ領域４１１および辞書領域４１２に格納されているデータを示す図である。図示するように、ステップＳ１０７の処理が完了した時点で、１ラスター分のラスターデータについて圧縮処理が完了されており、入力データ領域４１１内には有効データが存在しない。
【００８２】
なお、圧縮処理されたことのあるラスターデータの先頭部分列として、１枚目のラスターデータの先頭部分列を登録領域４１３に登録しておく場合には、制御部１４２は、１枚目のラスターデータに対して上記の圧縮処理を完了するタイミングで（ステップＳ１０７；Ｎｏ）、１枚目のラスターデータの先頭部分列を登録領域４１３に登録する。そして、２枚目以降のラスターデータに対して上記の圧縮処理を完了する場合には（ステップＳ１０７；Ｎｏ）、登録領域４１３への登録を行わない。
【００８３】
また、圧縮処理されたことのあるラスターデータの先頭部分列として、直前に処理されたラスターデータの先頭部分列を登録領域４１３に登録しておく場合には、制御部１４２は、各ラスターデータに対して上記の圧縮処理を完了するタイミングで（ステップＳ１０７；Ｎｏ）、本フローに従い圧縮処理されたラスターデータの先頭部分列を登録領域４１３に登録する。
【００８４】
以上のような圧縮処理を画像処理装置１００で行うことによって、ＬＺ方式による圧縮処理において、ラスターデータの先頭部分列についての圧縮率を従来より高めることができる。また、１枚目のラスターデータ（画像データを構成する最初のラスターデータ）に対して上記第１の実施形態の圧縮処理を適用し、２枚目以降のラスターデータに対して本実施形態の圧縮処理を適用する場合には、ラスターデータの先頭部分列についての圧縮率をさらに高めることができる。
【００８５】
なお、上記したフロー（圧縮処理）の各処理単位は、画像処理装置１００を理解容易にするために、主な処理内容に応じて分割したものである。処理ステップの分類の仕方やその名称によって、本願発明が制限されることはない。画像処理装置１００が行う処理は、さらに多くの処理ステップに分割することもできる。また、１つの処理ステップが、さらに多くの処理を実行してもよい。
【００８６】
また、上記の各実施形態は、本発明の要旨を例示することを意図し、本発明を限定するものではない。多くの代替物、修正、変形例は当業者にとって明らかである。
【００８７】
例えば、上記の各実施形態では、解凍回路１５０は、圧縮回路１４０で行われた圧縮の方式に対応する解凍方式によって圧縮データを解凍する。すなわち、上記第１の実施形態では、解凍回路１５０は、固定値のデータ列を用いて圧縮データを解凍する。また、上記第２の実施形態では、解凍回路１５０は、圧縮処理されたことのあるラスターデータの先頭部分列を用いて圧縮データを解凍する。
【００８８】
これをさらに応用し、本発明は、ラスターデータ（ラスターデータの属性）ごとに異なる圧縮方式を用いてもよく、例えば、上記第２の実施形態でも述べた通り、１枚目のラスターデータに対して上記第１の実施形態の圧縮処理を適用し、２枚目以降のラスターデータに対して上記第２の実施形態の圧縮処理（登録領域４１３のデータ列を用いた圧縮処理）を適用してもよい。もちろん、奇数枚目のラスターデータに対して上記第１の実施形態の圧縮処理を適用し、偶数枚目のラスターデータに対して上記第２の実施形態の圧縮処理を適用する、といった変形や、ラスターデータの内容（テキスト、イメージ）に基づきラスターデータの圧縮方式を切り替える、といった変形なども可能である。
【００８９】
ラスターデータの内容に基づき圧縮方式を切り替える場合についてより詳細に説明すると、ラスターデータがテキストデータである場合には、上記第１の実施形態の圧縮処理を適用し、ラスターデータがイメージデータである場合には、上記第２の実施形態の圧縮処理を適用する。テキストデータには一般的に余白など白画素が多く、また、連続して圧縮処理されるイメージデータは似通っている画素（同一の輝度値である画素など）が多い。そのため、ラスターデータの先頭部分列を圧縮する場合に、入力データ領域４１１に格納されているデータ列と、辞書領域４１２に登録されているデータ列が一致している確率が高くなる。こうして、ラスターデータの先頭部分列について圧縮率をより高めることができる。
【００９０】
図７は、ラスターデータごとに異なる圧縮方式が用いられる場合において、解凍回路１５０側で圧縮方式に対応する解凍方式を適切に選択するための解凍テーブル３００の概略データ構造の一例を示す図である。なお、解凍テーブル３００は、解凍回路１５０に格納されていてもよいし、解凍回路１５０が読み出し可能なようにメモリー（ＲＯＭ１３０など）に格納されていてもよい。
【００９１】
図示するように、解凍テーブル３００は、圧縮方式３１０ごとのレコード３３０からなる。各レコード３３０には、圧縮方式３１０、辞書情報３２０と、が対応付けられている。
【００９２】
圧縮方式３１０は、ラスターデータの圧縮に用いた圧縮方式を識別するデータである。例えば、圧縮方式３１０は、上記第１の実施形態に係る圧縮処理（固定値のデータ列を辞書領域４１２に格納してラスターデータを圧縮する処理）の圧縮方式を示すデータ「方式１」や、上記第２の実施形態の圧縮処理（圧縮処理されたことのあるラスターデータの先頭部分列を辞書領域４１２に格納して圧縮する処理）の圧縮方式を示すデータ「方式２」などからなる。
【００９３】
辞書情報３２０は、圧縮データの解凍に用いる情報を示すデータである。例えば、辞書情報３２０は、固定値のデータ列（上記第１の実施形態で辞書領域４１２に登録されるデータ列）を用いて解凍すべきであることを示すデータ「固定値」や、圧縮処理されたことのあるラスターデータの先頭部分列（上記第２の実施形態で登録領域４１３に登録されるデータ列）を用いて解凍すべきであることを示すデータ「登録領域のデータ」などからなる。
【００９４】
以上のような解凍テーブル３００を用いて、解凍回路１５０は圧縮データを解凍する。具体的には、解凍回路１５０は、ＣＰＵ１１０から、ラスターデータの圧縮に用いた圧縮方式が通知されると、解凍テーブル３００を参照し、通知された圧縮方式に対応する圧縮方式３１０を特定する。そして、解凍回路１５０は、特定した圧縮方式３１０に対応付けられている辞書情報３２０を特定して、解凍方式（固定値のデータ列を用いる解凍方式、圧縮処理されたことのあるラスターデータの先頭部分列を用いる解凍方式）を決定する。それから、解凍回路１５０は、決定された解凍方式（辞書情報３２０で特定されるデータ列を用いる解凍）によって、圧縮データの解凍を行う。
【００９５】
こうすることにより、画像処理装置１００は、ラスターデータごとに異なる圧縮方式および解凍方式を用いて、圧縮、解凍ができるようになる。そして、ラスターデータの属性（画像データ内における位置や、データ内容）に応じて圧縮方式、解凍方式を切り替えることできるため、より効率良く、ラスターデータの先頭部分列について圧縮率を高めることができる。
【００９６】
また、圧縮回路１４０の制御部１４２は、ラスターデータの圧縮に用いた圧縮方式を、圧縮データ（ラスターデータ）の先頭部分にヘッダーとして格納するようにしてもよい。この場合、解凍回路１５０は、解凍時に、メモリー（ＲＡＭ１２０やＲＯＭ１３０）から圧縮データを読み出し、ヘッダーを参照することによって、圧縮に用いられた圧縮方式を特定する。このようにすれば、解凍回路１５０は、各圧縮データの圧縮方式に対応する解凍方式を適切に選択できる。
【００９７】
また、制御部１４２は、圧縮データの生成とともに、ラスターデータを識別するラスター番号と、圧縮に用いた圧縮方式と、を対応させた対応テーブルを作成し、画像データに付加しておいてもよい。この場合、解凍回路１５０は、解凍時に、メモリー（ＲＡＭ１２０やＲＯＭ１３０）から画像データを読み出し、対応テーブルを参照することによって、画像データを構成する各圧縮データの圧縮方式を特定する。このようにしても、解凍回路１５０は、各圧縮データの圧縮方式に対応する解凍方式を適切に選択できる。
【符号の説明】
【００９８】
１００・・・画像処理装置、１１０・・・ＣＰＵ、１２０・・・ＲＡＭ、１３０・・・ＲＯＭ、１４０・・・圧縮回路、１４１・・・記憶部、１４２・・・制御部、３００・・・解凍テーブル、３１０・・・解凍方式、３２０・・・辞書情報、３３０・・・レコード、４１１・・・入力データ領域、４１２・・・辞書領域、４１３・・・登録領域
【図１】
0005521501.tif 000002
【図２】
0005521501.tif 000003
【図３】
0005521501.tif 000004
【図４】
0005521501.tif 000005
【図５】
0005521501.tif 000006
【図６】
0005521501.tif 000007
【図７】
0005521501.tif 000008