説明

画像処理装置、および、画像処理方法

【課題】圧縮対象のデータの先頭部分を、LZ方式によって圧縮する場合において、圧縮率を従来よりも高める技術を提供する。
【解決手段】画像処理装置100は、圧縮対象のラスターデータが入力される入力領域(411)と、当該ラスターデータが入力領域(411)からシフトされて格納される辞書領域(412)と、を有する記憶部(141)と、ラスターデータを、入力領域(411)に入力し、辞書領域(412)内のいずれかの位置から連続しているデータ列に一致する部分列を圧縮して圧縮データを生成するとともに、当該ラスターデータを辞書領域(412)にシフトする圧縮制御部(142)と、を備え、圧縮制御部(142)は、ラスターデータの先頭部分列を圧縮する場合には、固定値のデータ列を辞書領域(412)に格納して用いる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、および、画像処理方法に関する。
【背景技術】
【0002】
データ圧縮の技術として、LZ(Zip-Lempel)方式による符号化が知られている(例えば、非特許文献1)。
【0003】
LZ方式では、繰り返し出現するデータ列を符号化することによって圧縮を行う。データ列が繰り返し出現したか否かの判断については、出現したデータ列を辞書に登録し、その辞書を参照することによって行う。
【先行技術文献】
【特許文献】
【0004】
【非特許文献1】宗像清治、「Zip-Lempelのデータ圧縮法」、情報処理、Vol.26, No.1, 1985
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、圧縮対象のデータの先頭部分を圧縮する場合には、辞書にデータが未登録のため、圧縮率が低い。
【0006】
本発明は、圧縮対象のデータ(印刷対象のラスターデータなど)の先頭部分を、LZ方式によって圧縮する場合において、圧縮率を従来よりも高める技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するための本願発明は、画像処理装置であって、圧縮対象のラスターデータが入力される入力領域と、当該ラスターデータが前記入力領域からシフトされて格納される辞書領域と、を有する記憶部と、ラスターデータを、前記入力領域に入力し、前記辞書領域内のいずれかの位置から連続しているデータ列に一致する部分列を圧縮して圧縮データを生成するとともに、当該ラスターデータを前記辞書領域にシフトする圧縮制御部と、を備え、前記圧縮制御部は、ラスターデータの先頭部分列を圧縮する場合には、固定値のデータ列を前記辞書領域に格納して用いる。
【図面の簡単な説明】
【0008】
【図1】本発明の第1の実施形態に係る画像処理装置の概略構成の一例を示すブロック図である。
【図2】(A)は、ラスターデータが入力データ領域に入力された時点のデータ列の例を示す図である。(B)〜(H)は、ラスターデータを入力データ領域から辞書領域にシフトする過程におけるデータ列の例を示す図である。
【図3】第1の実施形態に係る圧縮処理を説明するためのフローチャートである。
【図4】第1の実施形態に係る圧縮処理において、シフトされるラスターデータの概要を示す図である。(A)は、ステップS101、S102の処理が完了した時点における、入力データ領域および辞書領域に格納されているデータを示す図である。(B)は、固定値のデータ列の一部が辞書領域に残っている期間における、入力データ領域および辞書領域に格納されているデータを示す図である。(C)は、固定値のデータ列が辞書領域に残っていない期間における、入力データ領域および辞書領域に格納されているデータを示す図である。(D)は、ステップS107の処理が完了した時点における、入力データ領域および辞書領域に格納されているデータを示す図である。
【図5】第2の実施形態に係る画像処理装置の概略構成の一例を示すブロック図である。
【図6】第2の実施形態に係る圧縮処理において、シフトされるラスターデータの概要を示す図である。(A)は、ステップS101、S102の処理が完了した時点における、入力データ領域および辞書領域に格納されているデータを示す図である。(B)は、圧縮処理されたことのあるラスターデータの先頭部分列の一部が辞書領域に残っている期間における、入力データ領域および辞書領域に格納されているデータを示す図である。(C)は、圧縮処理されたことのあるラスターデータの先頭部分列が辞書領域に残っていない期間における、入力データ領域および辞書領域に格納されているデータを示す図である。(D)は、ステップS107の処理が完了した時点における、入力データ領域および辞書領域に格納されているデータを示す図である。
【図7】解凍テーブルの概略データ構造の一例を示す図である。
【発明を実施するための形態】
【0009】
(第1の実施形態)
以下、本発明の実施形態の一例を図面を参照して説明する。
【0010】
図1は、本発明の第1の実施形態に係る画像処理装置100の概略構成の一例を示すブロック図である。図示するように、画像処理装置100は、画像データ(例えば、印刷対象のラスターデータ)を、LZ方式によって圧縮する装置として機能する。画像処理装置100は、図示するように、CPU110と、RAM120と、ROM130と、圧縮回路140と、解凍回路150と、を備えている。もちろん、画像処理装置100の構成は上記に限られない。例えば、印刷を実行する印刷エンジンや、各種インターフェイスなどを備える構成としてもよい。また、圧縮回路140と解凍回路150を、それぞれ別個の画像処理装置100に備える構成としてもよい。
【0011】
CPU110は、他のユニットを制御して画像処理装置100の各種機能を実現する演算装置である。CPU110は、ROM130などのメモリーに格納された所定のプログラムをRAM120にロードして実行することにより各種機能を実現する。
【0012】
CPU110は、圧縮対象の画像データを圧縮回路140に転送し、圧縮回路140で圧縮されたデータ(以下では「圧縮データ」とよぶ)を、メモリー(例えば、RAM120やROM130)に格納する。また、CPU110は、圧縮データを解凍回路150に転送し、解凍回路150で解凍されたデータを、メモリー(例えば、RAM120やROM130)に格納する。
【0013】
RAM120は、各種プログラム、データなどを一時的に格納し、CPU110による演算時のワークメモリーとして使用される。
【0014】
ROM130は、FlashROM等の書き換え可能な記憶媒体であり、各種プログラムを格納する。例えば、ROM130は、圧縮回路140や解凍回路150を制御するためのプログラムなどを格納する。
【0015】
圧縮回路140は、画像データ(例えば、ラスターデータ)を、LZ方式によって圧縮する。例えば、圧縮回路140は、図示するように、記憶部141と、制御部142と、を備える。
【0016】
記憶部141は、画像データの符号化(圧縮)処理に用いられる記憶媒体である。記憶部141は、図示するように、入力データ領域411と、辞書領域412と、を有する。
【0017】
入力データ領域411には、圧縮回路140に入力された画像データが格納される。なお、入力データ領域411に印刷対象のラスターデータが格納される場合には、ラスターデータごとに格納される。
【0018】
辞書領域412には、符号化(圧縮)処理において既に出現したデータ列(入力データ領域411に入力されたデータ列)が登録される。また、ラスターデータの先頭部分列について圧縮が行われる場合、辞書領域412には、固定値のデータ列(例えば、全ビットが「0」であるデータ列、すなわち各画素が白色を表す輝度値「0」であるデータ列)が登録される。なお、ラスターデータの先頭部分列とは、ラスターデータの先頭位置から所定長(辞書領域412に登録可能な最大のデータ幅)のデータ列を指す。
【0019】
制御部142は、CPU110からの指示に基づいて、圧縮回路140における圧縮処理の制御を行う。
【0020】
例えば、制御部142は、メモリー(RAM120やROM130)などから転送された画像データについて、ラスターデータごとに入力データ領域411に入力する。ただし、ラスターデータを構成する全てのデータが入力データ領域411に格納できない場合には、ラスターデータの一部を入力データ領域411に入力してもよい。
【0021】
ここで、制御部142は、上述した固定値のデータ列を、辞書領域412に登録しておく。
【0022】
それから、制御部142は、以下に説明する、「検索処理」、「圧縮データ生成処理」、「シフト処理」を、入力データ領域411に入力されたラスターデータに対して繰り返し行うことにより、ラスターデータの圧縮を行う。
【0023】
<検索処理>
制御部142は、辞書領域(入力データ領域411まで連続しているデータ列を含む)412を参照して、ラスターデータ(一部あるいは全部)と最も長く連続して一致するデータ列を検索する。すなわち、制御部142は、入力データ領域411の先頭位置から最も長く連続して一致するデータ列を、辞書領域412から検索する。
【0024】
<圧縮データ生成処理>
制御部142は、連続して一致するデータ列が存在する場合には、そのデータ列を圧縮して圧縮データを生成する。圧縮データの生成方法としては、例えば、[一致するデータ列の先頭位置を特定する値,一致するデータ列のデータ長を示す値]のように符号化(圧縮)する。もちろん、圧縮データの生成方法については、これ以外の方法を用いてもよい。一方、制御部142は、連続して一致するデータ列が存在しない場合(或いは、連続して一致するデータ列が所定長以下の場合)には、圧縮を行わない。
【0025】
<シフト処理>
それから、制御部142は、ラスターデータ(入力データ領域411に格納されているデータ列)を、圧縮データの生成に用いられたデータ列分(圧縮していない場合には、所定単位のデータ列分)、辞書領域412にシフトする。なお、制御部142は、ラスターデータのシフトとともに、辞書領域412に登録されているデータ列についても同様にシフトする。こうして、辞書領域412には、入力データ領域412に入力されたラスターデータが登録され、それ以降の検索処理では、ラスターデータに繰り返し出現するデータ列を検索できる。
【0026】
以上の「検索処理」、「圧縮データ生成処理」、「シフト処理」を繰り返すことにより、制御部142は、ラスターデータの先頭部分列について、辞書領域412に登録しておいた固定値のデータ列に一致する部分を圧縮できる。また、ラスターデータの先頭部分列以外については、従来通り、ラスターデータに繰り返し出現するデータ列を圧縮できる。
【0027】
また、制御部142は、生成された圧縮データを圧縮回路140から出力する。
【0028】
図2は、圧縮回路140で行われる上記の圧縮処理について具体的なデータ列を用いて説明するための図である。
【0029】
図2(A)は、ラスターデータが入力データ領域411に入力された時点のデータ列の例を示す図である。図2(B)〜(H)は、ラスターデータを入力データ領域411から辞書領域412にシフトする過程におけるデータ列の例を示す図である。
【0030】
図2(A)に示すように、制御部142は、メモリー(RAM120やROM130)から転送されたラスターデータを、入力データ領域411に入力する。これとともに、制御部142は、固定値のデータ列を、辞書領域412に登録する。なお、図には、辞書領域412に登録されるデータ(初期値)を「*」で示しているが、本実施形態では、「0」などの固定値が辞書領域412に登録される。
【0031】
そして、制御部142は、入力データ領域411の先頭位置(図示する例では左端の「0」の位置)から最も長く連続して一致するデータ列を、辞書領域412から検索する。
【0032】
ここで、制御部142は、連続して一致するデータ列が存在しない場合(或いは、連続して一致するデータ列が所定長以下の場合)には、圧縮を行わず、図2(B)に示すように、ラスターデータを辞書領域412にシフトする。これとともに、制御部142は、圧縮されずに辞書領域412にシフトされるデータ列「0」を、出力データとして出力する。
【0033】
図示する例では、図2(A)から(E)まで、連続して一致するデータ列が存在しないため、制御部142は、「検索処理」、「シフト処理」を繰り返して、辞書領域412にシフトしたデータ列「0」「1」「2」「3」「4」を、そのまま出力データとして出力している。
【0034】
図2(F)に示す段階までラスターデータがシフトすると、入力データ領域411の先頭位置(図示する例では左端の「0」の位置)から最も長く連続して一致するデータ列(点線下線の「0123」)が辞書領域412に存在する(実線下線の「0123」)。この場合、制御部142は、連続して一致するデータ列「0123」を圧縮して圧縮データ[5,4]を生成する。なお、配列の第1引数「5」は、一致するデータ列の先頭位置を特定する値であり、入力データ領域411の先頭位置から5文字手前(左)の位置であることを示す値である。また、配列の第2の引数「4」は、一致するデータ列のデータ長を示す値である。圧縮データを生成後、制御部142は、図2(G)に示すように、ラスターデータを、圧縮データの生成に用いられたデータ列分(図示する例では4文字)シフトするとともに、圧縮データを出力データとして出力する。
【0035】
図2(G)に示す段階までラスターデータがシフトすると、入力データ領域411の先頭位置(図示する例では左端の「0」の位置)から最も長く連続して一致するデータ列(点線下線の「012340123012340123」)が、辞書領域412から入力データ領域411にわたって存在する(実線下線の「012340123012340123」)。このように、制御部142は、辞書領域412内のいずれかの位置を始点としていれば、入力データ領域411まで連続して一致するデータ列についても検索対象とする。そして、制御部142は、連続して一致するデータ列を圧縮して圧縮データ[9,18]を生成する。
【0036】
それから、制御部142は、図2(H)に示すように、ラスターデータを、圧縮データの生成に用いられたデータ列分(図示する例では18文字)シフトするとともに、圧縮データ[9,18]を出力データとして出力する。
【0037】
以上のように、圧縮回路140における圧縮処理では、入力データ領域411にラスターデータが存在しなくなるまで「検索処理」、「圧縮データ生成処理」、「シフト処理」が繰り返し実行される。そして、印刷対象の画像データは、圧縮回路140でラスターデータごとに圧縮される。
【0038】
図1に戻り説明する。解凍回路150は、圧縮回路140によって生成(圧縮)された圧縮データを解凍する。なお、解凍回路150は、圧縮回路140で行われた圧縮の方式に対応する解凍方式によって圧縮データを解凍する。例えば、解凍回路150は、ラスターデータの先頭部分列について圧縮が行われる場合に固定値のデータ列が辞書領域142に登録されたことがCPU110から通知されると、その固定値のデータ列を用いて圧縮データを解凍する。
【0039】
本実施形態が適用された画像処理装置100は、以上のような構成からなる。ただし、画像処理装置100の構成はこれに限定されない。例えば、画像処理装置100は、さらに、印刷機能を有するプリンター、コピー機能を有する複写機、画像のスキャン機能を有するスキャナー装置、ファクシミリ機能などを有する複合機などであってもよい。
【0040】
また、上記した各構成要素は、画像処理装置100の構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。画像処理装置100の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、1つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、1つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【0041】
次に、上記構成からなる画像処理装置100の特徴的な動作について説明する。
【0042】
図3は、本実施形態の圧縮回路140が実行する圧縮処理を説明するためのフローチャートである。なお、図4は、圧縮処理(本フロー)において、シフトされるラスターデータの概要を示す図である。
【0043】
圧縮回路140の制御部142は、例えば、メモリー(RAM120やROM130)からラスターデータが転送されるタイミングで、本フローを開始する。
【0044】
本フローを開始すると、制御部142は、辞書領域412に固定値のデータ列を登録する(ステップS101)。これとともに、制御部142は、メモリーから転送されたラスターデータを、入力データ領域411に入力する(ステップS102)。
【0045】
図4(A)は、ステップS101、S102の処理が完了した時点における、入力データ領域411および辞書領域412に格納されているデータを示す図である。図示するように、ステップS101、S102の処理が完了した時点では、入力データ領域411には、ラスターデータが入力(格納)されており、辞書領域412には、固定値のデータ列(斜線部分)が登録(格納)されている。
【0046】
次に、制御部142は、上述した「検索処理」を実行して、入力データ領域411の先頭位置から最も長く連続して一致するデータ列が、辞書領域412に有るか否か判別する(ステップS103)。
【0047】
制御部142は、連続して一致するデータ列が辞書領域412に有ると判定した場合には(ステップS103;Yes)、上述した「圧縮データ生成処理」を実行して、ラスターデータ(辞書領域412に登録されているデータと一致する部分)を圧縮して圧縮データを生成する(ステップS104)。
【0048】
一方、制御部142は、ステップS103において、連続して一致するデータ列が辞書領域412に無いと判定した場合には(ステップS103;No)、ステップS104の「圧縮データ生成処理」を実行せずに、処理をステップS105に移行する。
【0049】
処理がステップS105に移行すると、制御部142は、出力データを出力する(ステップS105)。具体的には、制御部142は、ステップS104で圧縮データが生成された場合には、生成された圧縮データを出力する。一方、ステップS104で圧縮データが生成されていない場合には、入力データ領域411の先頭位置のデータを出力する。
【0050】
これとともに、制御部142は、上述した「シフト処理」を実行して、入力データ領域411のラスターデータを辞書領域412にシフトする(ステップS106)。具体的には、制御部142は、ステップS104で圧縮データが生成された場合には、圧縮データの生成に用いられたデータ列分、ラスターデータをシフトする。一方、ステップS104で圧縮データが生成されていない場合には、所定単位のデータ列分(例えば、1文字)、ラスターデータをシフトする。
【0051】
それから、制御部142は、入力データ領域411内に有効データ(すなわち、未処理のラスターデータ)が有るか否か判別する(ステップS107)。
【0052】
制御部142は、入力データ領域411内に有効データが有る場合には(ステップS107;Yes)、処理をステップS103に戻し、入力データ領域411に有効データが存在しなくなるまで、ステップS103からステップS107までの処理を繰り返し実行する。
【0053】
図4(B)は、辞書領域412に固定値のデータ列(斜線部分)の一部が残っている期間における、入力データ領域411および辞書領域412に格納されているデータを示す図である。上記ステップS103からステップS107の処理が繰り返し実行されて、ラスターデータは、図4(A)に示す位置から図4(B)に示す位置までシフトされる。
【0054】
図示するように、辞書領域412に固定値のデータ列が残っている場合(すなわち、ラスターデータの先頭部分列を圧縮する場合)、上記ステップS103の検索処理では、固定値のデータ列(全部、又は、一部)が検索対象に含まれる。通常、印刷対象の画像データには余白が設けられるため、ラスターデータの先頭部分列は白色を表す輝度値「0」であることが多い。これを考慮して、本実施形態では、ラスターデータの先頭部分列を圧縮する場合に、各画素が白色を表す輝度値「0」である固定値のデータ列を辞書領域142に登録している(ステップS101)。そのため、ラスターデータの先頭部分列を圧縮する場合には、入力データ領域411に格納されているデータ列と、辞書領域412に登録されているデータ列が一致している確率が高くなる。その結果、ラスターデータの先頭部分列についての圧縮率を従来より高めることができる。
【0055】
また、図4(C)は、辞書領域412に固定値のデータ列(斜線部分)の一部が残っていない期間における、入力データ領域411および辞書領域412に格納されているデータを示す図である。上記ステップS103からステップS107の処理が繰り返し実行されて、ラスターデータは、図4(B)に示す位置から図4(C)に示す位置までシフトされる。
【0056】
図示するように、辞書領域412に固定値のデータ列が残っていない場合(すなわち、ラスターデータの先頭部分列以外を圧縮する場合)、上記ステップS103の検索処理では、ラスターデータ自身(圧縮処理において既に出現したデータ列)が検索対象となる。これにより、本来のLZ方式による符号化(圧縮)が可能となる。
【0057】
そして、制御部142は、入力データ領域411内に有効データが無くなると(ステップS107;No)、1ラスター分(1枚)のラスターデータについて圧縮処理が完了したとみなして、本フローを終了する。
【0058】
図4(D)は、ステップS107の処理が完了した時点における、入力データ領域411および辞書領域412に格納されているデータを示す図である。図示するように、ステップS107の処理が完了した時点で、1ラスター分のラスターデータについて圧縮処理が完了されており、入力データ領域411内には有効データが存在しない。
【0059】
以上のような圧縮処理を画像処理装置100で行うことによって、LZ方式による圧縮処理において、ラスターデータの先頭部分列についての圧縮率を従来より高めることができる。
【0060】
なお、上記したフロー(圧縮処理)の各処理単位は、画像処理装置100を理解容易にするために、主な処理内容に応じて分割したものである。処理ステップの分類の仕方やその名称によって、本願発明が制限されることはない。画像処理装置100が行う処理は、さらに多くの処理ステップに分割することもできる。また、1つの処理ステップが、さらに多くの処理を実行してもよい。
【0061】
また、ラスターデータの先頭部分列を圧縮する場合に辞書領域412に登録する固定値のデータ列は、白色を表す輝度値「0」のデータ列でなくてもよく、画像処理装置100で頻繁に圧縮される画像データに応じて、他の固定値のデータ列に変更してもよい。
【0062】
(第2の実施形態)
図5は、本発明の第2の実施形態に係る画像処理装置100の概略構成の一例を示すブロック図である。
【0063】
本実施形態と上記第1の実施形態との違いは、圧縮回路140の記憶部142に登録領域413を設けている点である(太線)。上記第1の実施形態と同じ構成については、詳細な説明を省略する。
【0064】
登録領域413は、制御部142で圧縮処理されたことのあるラスターデータの先頭部分列を保持するための記憶領域である。
【0065】
一般的に、連続して圧縮処理される各ラスターデータ(1枚の画像データを構成する各ラスターデータ)は、似通った画像である可能性が高い。すなわち、連続して圧縮処理される各ラスターデータの先頭部分は、同一の輝度値からなるデータ列である確率が高い。これを考慮して、本実施形態では、圧縮処理されたことのあるラスターデータの先頭部分列を登録領域413に登録しておく。
【0066】
そして、制御部142は、各ラスターデータを圧縮する場合において、登録領域413に登録されているデータ列(すなわち、以前に処理されたラスターデータの先頭部分列)を辞書領域412に登録して、圧縮処理を行う。
【0067】
なお、登録領域413に登録しておくラスターデータの先頭部分列は、(1)1枚目のラスターデータ(画像データを構成する最初のラスターデータ)の先頭部分列でもよいし、(2)直前に処理されたラスターデータの先頭部分列でもよい。
【0068】
<(1)の場合>
1枚目のラスターデータの先頭部分列を登録領域413に登録しておく場合には、制御部142は、1枚目のラスターデータの圧縮処理を完了したタイミングで、そのラスターデータの先頭部分列を登録領域413に登録する。この場合、制御部142は、2枚目以降のラスターデータを圧縮する場合において、登録領域413に登録されているデータ列(すなわち、1枚目のラスターデータの先頭部分列)を辞書領域412に登録して、圧縮処理を行う。
【0069】
<(2)の場合>
また、直前に処理されたラスターデータの先頭部分列を登録領域413に登録しておく場合には、制御部142は、各ラスターデータの圧縮処理を行うたびに、処理したラスターデータの先頭部分列を登録領域413に登録する。この場合にも、制御部142は、2枚目以降のラスターデータを圧縮する場合において、登録領域413に登録されているデータ列(例えば、3枚目のラスターデータを圧縮する場合には、2枚目のラスターデータの先頭部分列)を辞書領域412に登録して、圧縮処理を行う。
【0070】
また、制御部142は、1枚目のラスターデータ(画像データを構成する最初のラスターデータ)に対して圧縮処理を行う場合には、上記第1の実施形態の圧縮処理を実行してもよい。すなわち、制御部142は、1枚目のラスターデータに対して圧縮処理を行う場合には、登録領域413に登録されているデータを用いずに、辞書領域412に固定値のデータ列を登録して、圧縮処理を行う。この場合においても、2枚目以降のラスターデータを圧縮する場合には、制御部142は、登録領域413に登録されているデータ列(1枚目のラスターデータの先頭部分列や、直前に処理されたラスターデータの先頭部分列)を辞書領域412に登録して、圧縮処理を行う。
【0071】
また、本実施形態の解凍回路150も、上記第1の実施形態の解凍回路150と同様に、圧縮回路140で行われた圧縮の方式に対応する解凍方式によって圧縮データを解凍する。例えば、解凍回路150は、ラスターデータの先頭部分列について圧縮が行われる場合において、圧縮処理されたことのあるラスターデータの先頭部分列が辞書領域142に登録されたことがCPU110から通知されると、その圧縮処理されたことのあるラスターデータの先頭部分列を用いて圧縮データを解凍する。
【0072】
次に、上記構成からなる本実施形態に係る画像処理装置100の特徴的な動作について説明する。
【0073】
本実施形態の圧縮回路140が実行する圧縮処理は、上記第1の実施形態の圧縮処理(図3に示すフローチャート)とほぼ同じであるため、以下には、上記第1の実施形態の圧縮処理と相違する点についてのみ説明する。
【0074】
本実施形態の圧縮処理では、図3のステップS101の処理が上記第1の実施形態と異なる。
【0075】
本実施形態のステップS101では、制御部142は、辞書領域412に、圧縮処理されたことのあるラスターデータの先頭部分列を登録する(ステップS101)。具体的には、制御部142は、登録領域413に登録されているデータ列を、辞書領域412に登録する。
【0076】
図6(A)は、本実施形態のステップS101、S102の処理が完了した時点における、入力データ領域411および辞書領域412に格納されているデータを示す図である。図示するように、ステップS101、S102の処理が完了した時点では、入力データ領域411には、ラスターデータが入力(格納)されており、辞書領域412には、圧縮処理されたことのあるラスターデータの先頭部分列(斜線部分)が登録(格納)されている。
【0077】
そして、図6(B)は、圧縮処理されたことのあるラスターデータの先頭部分列(斜線部分)の一部が辞書領域142に残っている期間における、入力データ領域411および辞書領域412に格納されているデータを示す図である。図3に示すステップS103からステップS107の処理が繰り返し実行されて、ラスターデータは、図6(A)に示す位置から図6(B)に示す位置までシフトされる。
【0078】
図示するように、圧縮処理されたことのあるラスターデータの先頭部分列が辞書領域142に残っている場合(すなわち、ラスターデータの先頭部分列を圧縮する場合)、図3に示すステップS103の検索処理では、圧縮処理されたことのあるラスターデータの先頭部分列(全部、又は、一部)が検索対象に含まれる。そして、上述したように、連続して圧縮処理される各ラスターデータの先頭部分は、同一の輝度値からなるデータ列である確率が高い。これを考慮して、本実施形態では、圧縮処理されたことのあるラスターデータの先頭部分列を登録領域413に登録している(ステップS101)。そのため、ラスターデータの先頭部分列を圧縮する場合には、入力データ領域411に格納されているデータ列と、辞書領域412に登録されているデータ列が一致している確率が高くなる。その結果、ラスターデータの先頭部分列についての圧縮率を従来より高めることができる。
【0079】
また、図6(C)は、圧縮処理されたことのあるラスターデータの先頭部分列(斜線部分)の一部が辞書領域142に残っていない期間における、入力データ領域411および辞書領域412に格納されているデータを示す図である。図3に示すステップS103からステップS107の処理が繰り返し実行されて、ラスターデータは、図6(B)に示す位置から図6(C)に示す位置までシフトされる。
【0080】
図示するように、圧縮処理されたことのあるラスターデータの先頭部分列(斜線部分)が辞書領域142に残っていない場合(すなわち、ラスターデータの先頭部分列以外を圧縮する場合)、図3に示すステップS103の検索処理では、ラスターデータ自身(圧縮処理において既に出現したデータ列)が検索対象となる。これにより、本来のLZ方式による符号化(圧縮)が可能となる。
【0081】
また、図6(D)は、図3に示すステップS107の処理が完了した時点における、入力データ領域411および辞書領域412に格納されているデータを示す図である。図示するように、ステップS107の処理が完了した時点で、1ラスター分のラスターデータについて圧縮処理が完了されており、入力データ領域411内には有効データが存在しない。
【0082】
なお、圧縮処理されたことのあるラスターデータの先頭部分列として、1枚目のラスターデータの先頭部分列を登録領域413に登録しておく場合には、制御部142は、1枚目のラスターデータに対して上記の圧縮処理を完了するタイミングで(ステップS107;No)、1枚目のラスターデータの先頭部分列を登録領域413に登録する。そして、2枚目以降のラスターデータに対して上記の圧縮処理を完了する場合には(ステップS107;No)、登録領域413への登録を行わない。
【0083】
また、圧縮処理されたことのあるラスターデータの先頭部分列として、直前に処理されたラスターデータの先頭部分列を登録領域413に登録しておく場合には、制御部142は、各ラスターデータに対して上記の圧縮処理を完了するタイミングで(ステップS107;No)、本フローに従い圧縮処理されたラスターデータの先頭部分列を登録領域413に登録する。
【0084】
以上のような圧縮処理を画像処理装置100で行うことによって、LZ方式による圧縮処理において、ラスターデータの先頭部分列についての圧縮率を従来より高めることができる。また、1枚目のラスターデータ(画像データを構成する最初のラスターデータ)に対して上記第1の実施形態の圧縮処理を適用し、2枚目以降のラスターデータに対して本実施形態の圧縮処理を適用する場合には、ラスターデータの先頭部分列についての圧縮率をさらに高めることができる。
【0085】
なお、上記したフロー(圧縮処理)の各処理単位は、画像処理装置100を理解容易にするために、主な処理内容に応じて分割したものである。処理ステップの分類の仕方やその名称によって、本願発明が制限されることはない。画像処理装置100が行う処理は、さらに多くの処理ステップに分割することもできる。また、1つの処理ステップが、さらに多くの処理を実行してもよい。
【0086】
また、上記の各実施形態は、本発明の要旨を例示することを意図し、本発明を限定するものではない。多くの代替物、修正、変形例は当業者にとって明らかである。
【0087】
例えば、上記の各実施形態では、解凍回路150は、圧縮回路140で行われた圧縮の方式に対応する解凍方式によって圧縮データを解凍する。すなわち、上記第1の実施形態では、解凍回路150は、固定値のデータ列を用いて圧縮データを解凍する。また、上記第2の実施形態では、解凍回路150は、圧縮処理されたことのあるラスターデータの先頭部分列を用いて圧縮データを解凍する。
【0088】
これをさらに応用し、本発明は、ラスターデータ(ラスターデータの属性)ごとに異なる圧縮方式を用いてもよく、例えば、上記第2の実施形態でも述べた通り、1枚目のラスターデータに対して上記第1の実施形態の圧縮処理を適用し、2枚目以降のラスターデータに対して上記第2の実施形態の圧縮処理(登録領域413のデータ列を用いた圧縮処理)を適用してもよい。もちろん、奇数枚目のラスターデータに対して上記第1の実施形態の圧縮処理を適用し、偶数枚目のラスターデータに対して上記第2の実施形態の圧縮処理を適用する、といった変形や、ラスターデータの内容(テキスト、イメージ)に基づきラスターデータの圧縮方式を切り替える、といった変形なども可能である。
【0089】
ラスターデータの内容に基づき圧縮方式を切り替える場合についてより詳細に説明すると、ラスターデータがテキストデータである場合には、上記第1の実施形態の圧縮処理を適用し、ラスターデータがイメージデータである場合には、上記第2の実施形態の圧縮処理を適用する。テキストデータには一般的に余白など白画素が多く、また、連続して圧縮処理されるイメージデータは似通っている画素(同一の輝度値である画素など)が多い。そのため、ラスターデータの先頭部分列を圧縮する場合に、入力データ領域411に格納されているデータ列と、辞書領域412に登録されているデータ列が一致している確率が高くなる。こうして、ラスターデータの先頭部分列について圧縮率をより高めることができる。
【0090】
図7は、ラスターデータごとに異なる圧縮方式が用いられる場合において、解凍回路150側で圧縮方式に対応する解凍方式を適切に選択するための解凍テーブル300の概略データ構造の一例を示す図である。なお、解凍テーブル300は、解凍回路150に格納されていてもよいし、解凍回路150が読み出し可能なようにメモリー(ROM130など)に格納されていてもよい。
【0091】
図示するように、解凍テーブル300は、圧縮方式310ごとのレコード330からなる。各レコード330には、圧縮方式310、辞書情報320と、が対応付けられている。
【0092】
圧縮方式310は、ラスターデータの圧縮に用いた圧縮方式を識別するデータである。例えば、圧縮方式310は、上記第1の実施形態に係る圧縮処理(固定値のデータ列を辞書領域412に格納してラスターデータを圧縮する処理)の圧縮方式を示すデータ「方式1」や、上記第2の実施形態の圧縮処理(圧縮処理されたことのあるラスターデータの先頭部分列を辞書領域412に格納して圧縮する処理)の圧縮方式を示すデータ「方式2」などからなる。
【0093】
辞書情報320は、圧縮データの解凍に用いる情報を示すデータである。例えば、辞書情報320は、固定値のデータ列(上記第1の実施形態で辞書領域412に登録されるデータ列)を用いて解凍すべきであることを示すデータ「固定値」や、圧縮処理されたことのあるラスターデータの先頭部分列(上記第2の実施形態で登録領域413に登録されるデータ列)を用いて解凍すべきであることを示すデータ「登録領域のデータ」などからなる。
【0094】
以上のような解凍テーブル300を用いて、解凍回路150は圧縮データを解凍する。具体的には、解凍回路150は、CPU110から、ラスターデータの圧縮に用いた圧縮方式が通知されると、解凍テーブル300を参照し、通知された圧縮方式に対応する圧縮方式310を特定する。そして、解凍回路150は、特定した圧縮方式310に対応付けられている辞書情報320を特定して、解凍方式(固定値のデータ列を用いる解凍方式、圧縮処理されたことのあるラスターデータの先頭部分列を用いる解凍方式)を決定する。それから、解凍回路150は、決定された解凍方式(辞書情報320で特定されるデータ列を用いる解凍)によって、圧縮データの解凍を行う。
【0095】
こうすることにより、画像処理装置100は、ラスターデータごとに異なる圧縮方式および解凍方式を用いて、圧縮、解凍ができるようになる。そして、ラスターデータの属性(画像データ内における位置や、データ内容)に応じて圧縮方式、解凍方式を切り替えることできるため、より効率良く、ラスターデータの先頭部分列について圧縮率を高めることができる。
【0096】
また、圧縮回路140の制御部142は、ラスターデータの圧縮に用いた圧縮方式を、圧縮データ(ラスターデータ)の先頭部分にヘッダーとして格納するようにしてもよい。この場合、解凍回路150は、解凍時に、メモリー(RAM120やROM130)から圧縮データを読み出し、ヘッダーを参照することによって、圧縮に用いられた圧縮方式を特定する。このようにすれば、解凍回路150は、各圧縮データの圧縮方式に対応する解凍方式を適切に選択できる。
【0097】
また、制御部142は、圧縮データの生成とともに、ラスターデータを識別するラスター番号と、圧縮に用いた圧縮方式と、を対応させた対応テーブルを作成し、画像データに付加しておいてもよい。この場合、解凍回路150は、解凍時に、メモリー(RAM120やROM130)から画像データを読み出し、対応テーブルを参照することによって、画像データを構成する各圧縮データの圧縮方式を特定する。このようにしても、解凍回路150は、各圧縮データの圧縮方式に対応する解凍方式を適切に選択できる。
【符号の説明】
【0098】
100・・・画像処理装置、110・・・CPU、120・・・RAM、130・・・ROM、140・・・圧縮回路、141・・・記憶部、142・・・制御部、300・・・解凍テーブル、310・・・解凍方式、320・・・辞書情報、330・・・レコード、411・・・入力データ領域、412・・・辞書領域、413・・・登録領域

【特許請求の範囲】
【請求項1】
圧縮対象のラスターデータが入力される入力領域と、当該ラスターデータが前記入力領域からシフトされて格納される辞書領域と、を有する記憶部と、
ラスターデータを、前記入力領域に入力し、前記辞書領域内のいずれかの位置から連続しているデータ列に一致する部分列を圧縮して圧縮データを生成するとともに、当該ラスターデータを前記辞書領域にシフトする圧縮制御部と、を備え、
前記圧縮制御部は、
ラスターデータの先頭部分列を圧縮する場合には、固定値のデータ列を前記辞書領域に格納して用いる、
ことを特徴とする画像処理装置。
【請求項2】
請求項1に記載の画像処理装置であって、
前記圧縮制御部は、
ラスターデータの先頭部分列を圧縮する場合には、それ以前に処理されたラスターデータの先頭部分列を前記辞書領域に格納して用いる、
ことを特徴とする画像処理装置。
【請求項3】
請求項1又は2に記載の画像処理装置であって、
前記圧縮制御部は、
複数枚のラスターデータが連続して前記入力領域に入力される場合において、
1枚目に前記入力領域に入力されたラスターデータの先頭部分列を圧縮する場合には、固定値のデータ列を前記辞書領域に格納して用い、
2枚目以降に前記入力領域に入力された各ラスターデータの先頭部分列を圧縮する場合には、それ以前に処理されたラスターデータの先頭部分列を前記辞書領域に格納して用いる、
ことを特徴とする画像処理装置。
【請求項4】
請求項2又は3に記載の画像処理装置であって、
前記記憶部は、
前記圧縮制御部によって処理されたラスターデータの先頭部分列を保持しておくための記憶領域を有している、
ことを特徴とする画像処理装置。
【請求項5】
請求項2乃至4のいずれか1項に記載の画像処理装置であって、
前記圧縮制御部は、
固定値のデータ列を前記辞書領域に格納するか、以前に処理されたラスターデータの先頭部分列を前記辞書領域に格納するか、を前記入力領域に入力されるラスターデータの属性に応じて切り替える、
ことを特徴とする画像処理装置。
【請求項6】
圧縮対象のラスターデータが入力される入力領域と、当該ラスターデータが前記入力領域からシフトされて格納される辞書領域と、を有する記憶部と、
画像データを、前記入力領域に入力し、前記辞書領域内のいずれかの位置から連続しているデータ列に一致する部分列を圧縮して圧縮データを生成するとともに、当該ラスターデータを前記辞書領域にシフトする圧縮制御部と、
前記圧縮制御部で圧縮された圧縮データを解凍する解凍処理部と、を備え、
前記圧縮制御部は、
固定値のデータ列を前記辞書領域に格納してラスターデータを圧縮したか、以前に処理されたラスターデータの先頭部分列を前記辞書領域に格納してラスターデータを圧縮したか、を少なくとも識別する識別情報を登録し、
前記解凍処理部は、
前記圧縮制御部によって登録された前記識別情報に基づいて、圧縮データの解凍方法を切り替える、
ことを特徴とする画像処理装置。
【請求項7】
画像処理装置における画像処理方法であって、
前記画像処理装置は、
圧縮対象のラスターデータが入力される入力領域と、当該ラスターデータが前記入力領域からシフトされて格納される辞書領域と、を有する記憶部を備えており、
ラスターデータを前記入力領域に入力する入力ステップと、
前記入力ステップで入力されたラスターデータについて、前記辞書領域内のいずれかの位置から連続しているデータ列に一致する部分列を圧縮して圧縮データを生成する圧縮ステップと、
前記入力領域のラスターデータを前記辞書領域にシフトするシフトステップと、を行い、
前記入力ステップでは、
ラスターデータの先頭部分列を圧縮する場合には、固定値のデータ列を前記辞書領域に格納して用いる、
ことを特徴とする画像処理方法。
【請求項8】
画像処理装置における画像処理方法であって、
前記画像処理装置は、
圧縮対象のラスターデータが入力される入力領域と、当該ラスターデータが前記入力領域からシフトされて格納される辞書領域と、を有する記憶部を備えており、
ラスターデータを前記入力領域に入力するステップと、
前記入力ステップで入力された画像データについて、前記辞書領域内のいずれかの位置から連続しているデータ列に一致する部分列を圧縮して圧縮データを生成する圧縮ステップと、
前記入力領域のラスターデータを前記辞書領域にシフトするシフトステップと、
前記圧縮ステップで圧縮された圧縮データを解凍する解凍ステップと、を行い、
前記圧縮制御ステップでは、
固定値のデータ列を前記辞書領域に格納してラスターデータを圧縮したか、以前に処理されたラスターデータの先頭部分列を前記辞書領域に格納してラスターデータを圧縮したか、を少なくとも識別する識別情報を登録し、
前記解凍ステップでは、
前記圧縮ステップで登録された前記識別情報に基づいて、圧縮データの解凍方法を切り替える、
ことを特徴とする画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−101271(P2011−101271A)
【公開日】平成23年5月19日(2011.5.19)
【国際特許分類】
【出願番号】特願2009−255746(P2009−255746)
【出願日】平成21年11月9日(2009.11.9)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】