(57)【要約】【課題】同一アルゴリズムが２５６回以上繰り返されるデータの圧縮、伸長処理を行う。【解決手段】本発明は、非連続データの圧縮処理を行う非連続圧縮アルゴリズムにより初回の圧縮処理を行い、それ以降の圧縮処理を、連続データの圧縮処理を行う連続圧縮アルゴリズムと前記非連続圧縮アルゴリズムとを切り換えて行うデータ圧縮システム１であって、連続圧縮回数算定手段６がカウントしたデータの圧縮処理の反復回数又は非連続圧縮回数算定手段８がカウントしたデータの圧縮処理の反復回数のいずれかの回数が２５５回となった場合に、前回の圧縮処理で使用した圧縮アルゴリズムの種類に拘らず、非連続圧縮アルゴリズムを使用してデータの圧縮処理を行うと共に、連続データ圧縮回数算定手段６及び非連続データ圧縮回数算定手段８による各カウント数をそれぞれリセットする圧縮処理初期化手段１０とを備えていることを特徴とする。【選択図】図３
2007194998.tif 000002
【特許請求の範囲】
【請求項１】
非連続データの圧縮処理を行う非連続圧縮アルゴリズムにより初回の圧縮処理を行い、それ以降の圧縮処理を、連続データの圧縮処理を行う連続圧縮アルゴリズムと前記非連続圧縮アルゴリズムとを切り換えて行うデータ圧縮システムであって、
前回の圧縮アルゴリズムが前記非連続圧縮アルゴリズムであった場合に、前記連続圧縮アルゴリズムを使用してデータの圧縮処理を行う連続データ圧縮手段と、
該連続データ圧縮手段による前記データの圧縮処理の反復回数をカウントする連続データ圧縮回数算定手段と、
前回の圧縮アルゴリズムが前記連続圧縮アルゴリズムであった場合に、前記非連続圧縮アルゴリズムを使用してデータの圧縮処理を行う非連続データ圧縮手段と、
該非連続データ圧縮手段による前記データの圧縮処理の反復回数をカウントする非連続圧縮回数算定手段と、
前記連続圧縮回数算定手段がカウントした前記データの圧縮処理の反復回数又は前記非連続圧縮回数算定手段がカウントした前記データの圧縮処理の反復回数のいずれかの回数が２５５回となった場合に、前回の圧縮処理で使用した圧縮アルゴリズムの種類に拘らず、前記非連続圧縮アルゴリズムを使用してデータの圧縮処理を行うと共に、前記連続データ圧縮回数算定手段及び前記非連続データ圧縮回数算定手段による前記各カウント数をそれぞれリセットする圧縮処理初期化手段と、
を備えていることを特徴とするデータ圧縮システム。
【請求項２】
非連続データの伸長処理を行う非連続伸長アルゴリズムにより初回の伸長処理を行い、それ以降の伸長処理を、連続データの伸長処理を行う連続伸長アルゴリズムと前記非連続伸長アルゴリズムとを切り換えて行うデータ伸長システムであって、
前回の伸長アルゴリズムが前記非連続伸長アルゴリズムであった場合に、前記連続伸長アルゴリズムを使用してデータの伸長処理を行う連続データ伸長手段と、
該連続データ伸長手段による前記データの伸長処理の反復回数をカウントする連続データ伸長回数算定手段と、
前回の伸長アルゴリズムが前記連続伸長アルゴリズムであった場合に、前記非連続伸長アルゴリズムを使用してデータの伸長処理を行う非連続データ伸長手段と、
該非連続データ伸長手段による前記データの伸長処理の反復回数をカウントする非連続伸長回数算定手段と、
前記連続伸長回数算定手段がカウントした前記データの伸長処理の反復回数又は前記非連続伸長回数算定手段がカウントした前記データの伸長処理の反復回数のいずれかの回数が２５５回となった場合に、前回の伸長処理で使用した伸長アルゴリズムの種類に拘らず、前記非連続伸長アルゴリズムを使用してデータの伸長処理を行うと共に、前記連続データ伸長回数算定手段及び前記非連続データ伸長回数算定手段による前記各カウント数をそれぞれリセットする伸長処理初期化手段と、
を備えていることを特徴とするデータ伸長システム。
【請求項３】
非連続データの圧縮処理を行う非連続圧縮アルゴリズムにより初回の圧縮処理を行い、それ以降の圧縮処理を、連続データの圧縮処理を行う連続圧縮アルゴリズムと前記非連続圧縮アルゴリズムとを切り換えて実行するデータ圧縮プログラムであって、
前回の圧縮アルゴリズムが前記非連続圧縮アルゴリズムであった場合に、連続データ圧縮手段が前記連続圧縮アルゴリズムを使用してデータの圧縮処理を行うステップと、
前記連続データ圧縮手段による前記データの圧縮処理の反復回数を連続データ圧縮回数算定手段がカウントするステップと、
前回の圧縮アルゴリズムが前記連続圧縮アルゴリズムであった場合に、非連続データ圧縮手段が前記非連続圧縮アルゴリズムを使用してデータの圧縮処理を行うステップと、
前記非連続データ圧縮手段による前記データの圧縮処理の反復回数を非連続圧縮回数算定手段がカウントするステップと、
前記連続圧縮回数算定手段がカウントした前記データの圧縮処理の反復回数又は前記非連続圧縮回数算定手段がカウントした前記データの圧縮処理の反復回数のいずれかの回数が２５５回となった場合に、前回の圧縮処理で使用した圧縮アルゴリズムの種類に拘らず、圧縮処理初期化手段が、前記非連続圧縮アルゴリズムを使用してデータの圧縮処理を行うと共に、前記連続データ圧縮回数算定手段及び前記非連続データ圧縮回数算定手段による前記各カウント数をそれぞれリセットするステップと、
をコンピュータに実行させるためのデータ圧縮プログラム。
【請求項４】
非連続データの伸長処理を行う非連続伸長アルゴリズムにより初回の伸長処理を行い、それ以降の伸長処理を、連続データの伸長処理を行う連続伸長アルゴリズムと前記非連続伸長アルゴリズムとを切り換えて実行するデータ伸長プログラムであって、
前回の伸長アルゴリズムが前記非連続伸長アルゴリズムであった場合に、連続データ伸長手段が前記連続伸長アルゴリズムを使用してデータの伸長処理を行うステップと、
前記連続データ伸長手段による前記データの伸長処理の反復回数を連続データ伸長回数算定手段がカウントするステップと、
前回の伸長アルゴリズムが前記連続伸長アルゴリズムであった場合に、非連続データ伸長手段が前記非連続伸長アルゴリズムを使用してデータの伸長処理を行うステップと、
前記非連続データ伸長手段による前記データの伸長処理の反復回数を非連続伸長回数算定手段がカウントするステップと、
前記連続伸長回数算定手段がカウントした前記データの伸長処理の反復回数又は前記非連続伸長回数算定手段がカウントした前記データの伸長処理の反復回数のいずれかの回数が２５５回となった場合に、前回の伸長処理で使用した伸長アルゴリズムの種類に拘らず、伸長処理初期化手段が、前記非連続伸長アルゴリズムを使用してデータの伸長処理を行うと共に、前記連続データ伸長回数算定手段及び前記非連続データ伸長回数算定手段による前記各カウント数をそれぞれリセットするステップと、
をコンピュータに実行させるためのデータ伸長プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを圧縮、伸長するための、データ圧縮システム及びデータ伸長システム並びにデータ圧縮プログラム及びデータ伸長プログラムに関する。
【背景技術】
【０００２】
従来、プリンタ、ファクシミリ装置、複合機を始めとする画像形成装置等において、データの送受信に要する時間を短縮したり、ハードディスク等の記憶装置に効率よくデータを記録したりするため、データの圧縮処理が行われている。
【０００３】
このデータを圧縮する技術の一つとして、ランレングス圧縮（英語名：Run Length Encoding）が知られている。このランレングス短縮は、同一データが連続して並んで構成された連続データを、データの値とそのデータが連続する数で表現し、データの全体長を短縮しようとするものである。しかしながら、このランレングス短縮では、同一データが連続しない非連続データを多く含む場合には、全体として、圧縮後のデータの長さが圧縮前のデータの長さより却って長くなってしまうことがあるといった欠点があった。
【０００４】
そこで、最近では、連続データの圧縮処理を行う連続圧縮アルゴリズムと非連続データの圧縮処理を行う非連続圧縮アルゴリズムとを交互に切り換えて使用する、所謂、スイッチランレングス圧縮（英語名：Switched Run Length Encoding）によりデータの圧縮処理を行う技術が提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００４−３２８７８２号広報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した従来のスイッチランレングス圧縮によるデータの圧縮処理では、保持できるデータの長さが２５６個までに限られているため、同一アルゴリズムによる圧縮処理が２５６回以上繰り返されるデータの場合には圧縮処理を行うことができないといった問題があった。
【０００６】
本発明は上記した課題を解決すべくなされたものであり、同一アルゴリズムが２５６回以上繰り返されるデータの圧縮、伸長処理を行うことのできる、データ圧縮システム及びデータ伸長システム並びにデータ圧縮プログラム及びデータ伸長プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記した目的を達成するため、本発明は、非連続データの圧縮処理を行う非連続圧縮アルゴリズムにより初回の圧縮処理を行い、それ以降の圧縮処理を、連続データの圧縮処理を行う連続圧縮アルゴリズムと前記非連続圧縮アルゴリズムとを切り換えて行うデータ圧縮システムであって、前回の圧縮アルゴリズムが前記非連続圧縮アルゴリズムであった場合に、前記連続圧縮アルゴリズムを使用してデータの圧縮処理を行う連続データ圧縮手段と、該連続データ圧縮手段による前記データの圧縮処理の反復回数をカウントする連続データ圧縮回数算定手段と、前回の圧縮アルゴリズムが前記連続圧縮アルゴリズムであった場合に、前記非連続圧縮アルゴリズムを使用してデータの圧縮処理を行う非連続データ圧縮手段と、該非連続データ圧縮手段による前記データの圧縮処理の反復回数をカウントする非連続圧縮回数算定手段と、前記連続圧縮回数算定手段がカウントした前記データの圧縮処理の反復回数又は前記非連続圧縮回数算定手段がカウントした前記データの圧縮処理の反復回数のいずれかの回数が２５５回となった場合に、前回の圧縮処理で使用した圧縮アルゴリズムの種類に拘らず、前記非連続圧縮アルゴリズムを使用してデータの圧縮処理を行うと共に、前記連続データ圧縮回数算定手段及び前記非連続データ圧縮回数算定手段による前記各カウント数をそれぞれリセットする圧縮処理初期化手段とを備えていることを特徴とする。
【０００８】
また、本発明は、非連続データの伸長処理を行う非連続伸長アルゴリズムにより初回の伸長処理を行い、それ以降の伸長処理を、連続データの伸長処理を行う連続伸長アルゴリズムと前記非連続伸長アルゴリズムとを切り換えて行うデータ伸長システムであって、前回の伸長アルゴリズムが前記非連続伸長アルゴリズムであった場合に、前記連続伸長アルゴリズムを使用してデータの伸長処理を行う連続データ伸長手段と、該連続データ伸長手段による前記データの伸長処理の反復回数をカウントする連続データ伸長回数算定手段と、前回の伸長アルゴリズムが前記連続伸長アルゴリズムであった場合に、前記非連続伸長アルゴリズムを使用してデータの伸長処理を行う非連続データ伸長手段と、該非連続データ伸長手段による前記データの伸長処理の反復回数をカウントする非連続伸長回数算定手段と、前記連続伸長回数算定手段がカウントした前記データの伸長処理の反復回数又は前記非連続伸長回数算定手段がカウントした前記データの伸長処理の反復回数のいずれかの回数が２５５回となった場合に、前回の伸長処理で使用した伸長アルゴリズムの種類に拘らず、前記非連続伸長アルゴリズムを使用してデータの伸長処理を行うと共に、前記連続データ伸長回数算定手段及び前記非連続データ伸長回数算定手段による前記各カウント数をそれぞれリセットする伸長処理初期化手段とを備えていることを特徴とする。
【０００９】
さらに、本発明は、非連続データの圧縮処理を行う非連続圧縮アルゴリズムにより初回の圧縮処理を行い、それ以降の圧縮処理を、連続データの圧縮処理を行う連続圧縮アルゴリズムと前記非連続圧縮アルゴリズムとを切り換えて実行するデータ圧縮プログラムであって、前回の圧縮アルゴリズムが前記非連続圧縮アルゴリズムであった場合に、連続データ圧縮手段が前記連続圧縮アルゴリズムを使用してデータの圧縮処理を行うステップと、前記連続データ圧縮手段による前記データの圧縮処理の反復回数を連続データ圧縮回数算定手段がカウントするステップと、前回の圧縮アルゴリズムが前記連続圧縮アルゴリズムであった場合に、非連続データ圧縮手段が前記非連続圧縮アルゴリズムを使用してデータの圧縮処理を行うステップと、前記非連続データ圧縮手段による前記データの圧縮処理の反復回数を非連続圧縮回数算定手段がカウントするステップと、前記連続圧縮回数算定手段がカウントした前記データの圧縮処理の反復回数又は前記非連続圧縮回数算定手段がカウントした前記データの圧縮処理の反復回数のいずれかの回数が２５５回となった場合に、前回の圧縮処理で使用した圧縮アルゴリズムの種類に拘らず、圧縮処理初期化手段が、前記非連続圧縮アルゴリズムを使用してデータの圧縮処理を行うと共に、前記連続データ圧縮回数算定手段及び前記非連続データ圧縮回数算定手段による前記各カウント数をそれぞれリセットするステップとをコンピュータに実行させることを特徴とする。
【００１０】
さらにまた、本発明は、非連続データの伸長処理を行う非連続伸長アルゴリズムにより初回の伸長処理を行い、それ以降の伸長処理を、連続データの伸長処理を行う連続伸長アルゴリズムと前記非連続伸長アルゴリズムとを切り換えて実行するデータ伸長プログラムであって、前回の伸長アルゴリズムが前記非連続伸長アルゴリズムであった場合に、連続データ伸長手段が前記連続伸長アルゴリズムを使用してデータの伸長処理を行うステップと、前記連続データ伸長手段による前記データの伸長処理の反復回数を連続データ伸長回数算定手段がカウントするステップと、前回の伸長アルゴリズムが前記連続伸長アルゴリズムであった場合に、非連続データ伸長手段が前記非連続伸長アルゴリズムを使用してデータの伸長処理を行うステップと、前記非連続データ伸長手段による前記データの伸長処理の反復回数を非連続伸長回数算定手段がカウントするステップと、前記連続伸長回数算定手段がカウントした前記データの伸長処理の反復回数又は前記非連続伸長回数算定手段がカウントした前記データの伸長処理の反復回数のいずれかの回数が２５５回となった場合に、前回の伸長処理で使用した伸長アルゴリズムの種類に拘らず、伸長処理初期化手段が、前記非連続伸長アルゴリズムを使用してデータの伸長処理を行うと共に、前記連続データ伸長回数算定手段及び前記非連続データ伸長回数算定手段による前記各カウント数をそれぞれリセットするステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、連続圧縮回数算定手段又は連続伸長回数算定手段がカウントしたデータの圧縮又は伸長処理の反復回数、或いは非連続圧縮回数算定手段又は非連続伸長回数算出手段がカウントしたデータの圧縮又は伸長処理の反復回数のいずれかの回数が２５５回となった場合に、前回の圧縮又は伸長処理で使用した圧縮アルゴリズム又は伸長アルゴリズムの種類に拘らず、圧縮処理初期化手段又は伸長処理初期化手段が、非連続圧縮アルゴリズム又は非連続伸長アルゴリズムを使用してデータの圧縮又は伸長処理を行うと共に、連続圧縮回数算定手段又は連続伸長回数算定手段、或いは非連続圧縮回数算定手段又は非連続伸長回数算出手段による各カウント数をそれぞれリセットするように構成されているため、同一アルゴリズムによる圧縮、伸長処理が２５６回以上繰り返されるデータの圧縮、伸長処理を行うことができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しつつ、本発明の実施の形態について説明する。
【００１３】
先ず、図１及び図２を参照しつつ、本発明の実施の形態に係るデータ圧縮システム及びデータ伸長システムについて説明する。ここで、図１は本実施の形態に係るデータ圧縮システムの構成を示すブロック図、図２は本実施の形態に係るデータ伸長システムの構成を示すブロック図である。
【００１４】
本実施の形態に係るデータ圧縮システム１は、図１に示すように、圧縮制御部２と、圧縮関連データ記憶部３とを備えており、圧縮制御部２は、コンピュータのハードディスク（図示省略）に格納されたデータ圧縮プログラムをＣＰＵ（図示省略）が実行することにより機能するようになっている。
【００１５】
圧縮制御部２は、データの圧縮処理が連続圧縮アルゴリズムと非連続圧縮アルゴリズムのいずれの圧縮アルゴリズムにより行われたかを判定する圧縮アルゴリズム判定部４と、前記連続圧縮アルゴリズムを使用してデータの圧縮処理を行う連続データ圧縮部５と、連続データ圧縮部５による前記データの圧縮処理の反復回数をカウントする連続データ圧縮回数算定部６と、前記非連続圧縮アルゴリズムを使用してデータの圧縮処理を行う非連続データ圧縮部７と、非連続データ圧縮部７による前記データの圧縮処理の反復回数をカウントする非連続データ圧縮回数算定部８と、連続データ圧縮回数算定部６がカウントした前記データの圧縮処理の反復回数又は非連続データ圧縮回数算定部８がカウントした前記データの圧縮処理の反復回数のいずれかの回数が２５５回に到達したかどうかを判定する圧縮処理回数判定部９と、前回の圧縮処理で使用した圧縮アルゴリズムの種類に拘らず、前記非連続圧縮アルゴリズムを使用してデータの圧縮処理を行うと共に、連続データ圧縮回数算定部６及び非連続データ圧縮回数算定部８の各カウント数をそれぞれリセットする圧縮処理初期化部１０とを備えている。
【００１６】
また、本実施の形態に係るデータ伸長システム１１は、図２に示すように、伸長制御部１２と、伸長関連データ記憶部１３とを備えており、伸長制御部１２は、コンピュータのハードディスク（図示省略）に格納されたデータ伸長プログラムをＣＰＵ（図示省略）が実行することにより機能するようになっている。
【００１７】
伸長制御部１２は、圧縮データの伸長処理が連続伸長アルゴリズムと非連続伸長アルゴリズムのいずれの伸長アルゴリズムにより行われたかを判定する伸長アルゴリズム判定部１４と、前記連続伸長アルゴリズムを使用してデータの伸長処理を行う連続データ伸長部１５と、連続データ伸長部１５による前記データの伸長処理の反復回数をカウントする連続データ伸長回数算定部１６と、前記非連続伸長アルゴリズムを使用して圧縮データの伸長処理を行う非連続データ伸長部１７と、非連続データ伸長部１７による前記データの伸長処理の反復回数をカウントする非連続データ伸長回数算定部１８と、連続データ伸長回数算定部１６がカウントした前記連続データの伸長処理の反復回数又は非連続データ伸長回数算定部１８がカウントした前記非連続データの伸長処理の反復回数のいずれかの回数が２５５回に到達したかどうかを判定する伸長処理回数判定部１９と、前回の伸長処理で使用した伸長アルゴリズムの種類に拘らず、前記非連続伸長アルゴリズムを使用して圧縮データの伸長処理を行うと共に、連続データ伸長回数算定部１６及び非連続データ伸長回数算定部１８の各カウント数をそれぞれリセットする伸長処理初期化部２０とを備えている。
【００１８】
次に、図３〜図５を参照しつつ、本発明の実施の形態に係るデータ圧縮システム１の動作について説明する。ここで、図３は本実施の形態に係るデータ圧縮システムによるデータの圧縮処理手順を示すフローチャート、図４はデータ圧縮システムにおける非連続圧縮アルゴリズムを示すフローチャート、図５はデータ圧縮システムにおける連続圧縮アルゴリズムを示すフローチャートである。
【００１９】
先ず、図３に示すように、初回の圧縮処理は、データを非連続データとして扱い、前記非連続圧縮アルゴリズムを使用して行う（Ｓ１１０）。
【００２０】
この非連続圧縮アルゴリズムでは、図４に示すように、先ず、圧縮制御部２が，最初のデータと次のデータとを比較し、非連続データであるかどうかを判定する（Ｓ１１１）。その結果、非連続データであると圧縮制御部２が判定した場合には、次のステップ１１２において、非連続データ圧縮回数算定部８が圧縮処理の回数を１回分加算して反復回数をカウントし、該カウント数を圧縮関連データ記憶部３に格納する。なお、前記ステップ１１１において、前記データが非連続データでないと圧縮制御部２が判定した場合には、以降の各ステップをスキップし、ステップ１１４において圧縮処理を行った後、前記非連続圧縮アルゴリズムを終了する。
【００２１】
このように図４の前記ステップ１１２において圧縮処理の反復回数がカウントされると、次いで、圧縮処理回数判定部９は、前記データが終端まで到達しているかどうか、及び直前までの圧縮処理の反復回数が２５５回であるかどうかをそれぞれ判定する（Ｓ１１３）。その結果、前記データが終端まで到達しておらず、且つ圧縮処理の反復回数が２５５回でないと圧縮処理回数判定部９が判定した場合には、再度、前記ステップ１１１に戻り、以降、上記した各ステップの処理を繰り返し行う。
【００２２】
一方、前記ステップ１１３において、圧縮処理回数判定部９が、前記データが終端まで達している判定した場合、或いは、圧縮処理の反復回数が２５５回でないと判定した場合には、次のステップ１１４に進み、非連続データ圧縮部７が前記データを圧縮処理し、該圧縮データを圧縮関連データ記憶部３に格納した後、前記非連続圧縮アルゴリズムを終了する。
【００２３】
このように前記非連続圧縮アルゴリズムを終了すると、次に、図３の次のステップ１２０において、圧縮制御部２は、前記データが終端まで到達しているかどうかを判定し、前記データが終端まで到達していないと圧縮制御部２が判定した場合には、次のステップ１３０において、圧縮処理回数判定部９が、前回の非連続圧縮アルゴリズムによる圧縮処理の反復回数が２５５回であったかどうかを判定する。その結果、圧縮処理の反復回数が２５５回でないと圧縮処理回数判定部９が判定した場合には、さらに、次のステップ１４０において、前回の圧縮アルゴリズムが連続圧縮アルゴリズムであったかどうかを圧縮制御部２が判定する。そして、前回の圧縮アルゴリズムが連続圧縮アルゴリズムであったと圧縮制御部２が判定した場合には、次のステップ１５０に進み、前記連続圧縮アルゴリズムを使用して前記データの圧縮処理を行う。
【００２４】
この連続圧縮アルゴリズムでは、図５に示すように、先ず、圧縮制御部２が、最初のデータと次のデータとを比較し、連続データであるかどうかを判定する（Ｓ１５１）。その結果、連続データであると圧縮制御部２が判定した場合には、次のステップ１５２において、連続データ圧縮回数算定部６が圧縮処理の回数を１回分加算して反復回数をカウントし、該カウント数を圧縮関連データ記憶部３に格納する。なお、前記ステップ１５１において、前記データが連続データでないと圧縮制御部２が判定した場合には、以降の各ステップをスキップし、ステップ１５４において圧縮処理を行った後、前記連続圧縮アルゴリズムを終了する。
【００２５】
このように図５の前記ステップ１５２において圧縮処理の反復回数がカウントされると、次いで、圧縮処理回数判定部９は、前記データが終端まで到達しているかどうか、及び直前までの圧縮処理の反復回数が２５５回であるかどうかをそれぞれ判定する（Ｓ１５３）。その結果、前記データが終端まで到達しておらず、且つ圧縮処理の反復回数が２５５回でないと圧縮処理回数判定部９が判定した場合には、再度、前記ステップ１５１に戻り、以降、上記した各ステップの処理を繰り返し行う。
【００２６】
一方、前記ステップ１５３において、圧縮処理回数判定部９が、前記データが終端まで達している判定した場合、或いは、圧縮処理の反復回数が２５５回でないと判定した場合には、次のステップ１５４に進み、連続データ圧縮部５が前記データを圧縮処理し、該圧縮データを圧縮関連データ記憶部３に格納した後、前記連続圧縮アルゴリズムを終了する。
【００２７】
このように前記連続圧縮アルゴリズムを終了すると、次に、図３のステップ１６０において、圧縮制御部２は、前記データが終端まで到達しているかどうかを判定し、前記データが終端まで到達していないと判定した場合には、再度、前記ステップ１３０に戻り、以降、上記した各ステップの処理を繰り返し行う。一方、前記ステップ１６０において、前記データが終端まで到達していると圧縮制御部２が判定した場合には、圧縮処理を終了する。
【００２８】
これに対して、前記ステップ１３０において、前回の非連続圧縮アルゴリズムによる圧縮処理の反復回数が２５５回であると圧縮処理回数判定部９が判定した場合には、圧縮処理初期化部１０は、図４を参照して既に説明した手順に従って、前記非連続圧縮アルゴリズムにより前記データの圧縮処理を行うと共に、圧縮関連データ記憶部３に格納された連続データ圧縮回数算定部６及び非連続データ圧縮回数算定部８の各カウント数をそれぞれリセットする。
【００２９】
また、前記ステップ１４０において、前回の圧縮アルゴリズムが連続圧縮アルゴリズムであると圧縮制御部２が判定した場合には、図４の手順に従って、前記非連続圧縮アルゴリズムにより前記データの圧縮処理を行う。
【００３０】
そして、このように前記非連続圧縮アルゴリズムを終了すると、前記ステップ１６０において、圧縮制御部２は、前記データが終端まで到達しているかどうかを判定し、既に上記した場合と同様に、その判定結果に基づき、前記ステップ１３０以降の各ステップの処理を繰り返し行うか、或いは、圧縮処理を終了する。
【００３１】
次に、図６〜図８を参照しつつ、本発明の実施の形態に係るデータ伸長システム１１の動作について説明する。ここで、図６は本実施の形態に係るデータ伸長システムによる圧縮データの伸長処理手順を示すフローチャート、図７はデータ伸長システムにおける非連続伸長アルゴリズムを示すフローチャート、図８はデータ伸長システムにおける連続伸長アルゴリズムを示すフローチャートである。
【００３２】
先ず、図６に示すように、初回の伸長処理は、データを非連続データとして扱い、前記非連続伸長アルゴリズムを使用して行う（Ｓ１１０）。
【００３３】
この非連続伸長アルゴリズムでは、図７に示すように、先ず、非連続データ伸長部１７が、最初のデータ（１バイト）をカウンタとして読み出す（Ｓ２１１）。次いで、非連続データ伸長部１７は、その次のデータから、前記ステップ２１１において読み出したカウンタの数に相当する分のデータを読み出し、そのまま出力する（Ｓ２１２）。そして、読み出したデータを伸長関連データ記憶部１３に格納し、前記非連続伸長アルゴリズムを終了する。
【００３４】
このように前記非連続伸長アルゴリズムを終了すると、図６の次のステップ２２０において、伸長制御部１２は、前記データが終端まで到達しているかどうかを判定し、前記データが終端まで到達していないと伸長制御部１２が判定した場合には、次のステップ２３０において、伸長処理回数判定部１９が、前回の非連続伸長アルゴリズムによる伸長処理の反復回数が２５５回であったかどうかを判定する。その結果、伸長処理の反復回数が２５５回でないと伸長処理回数判定部１９が判定した場合には、さらに、次のステップ２４０において、前回の伸長アルゴリズムが連続伸長アルゴリズムであったかどうかを伸長制御部１２が判定する。そして、前回の伸長アルゴリズムが連続伸長アルゴリズムであったと伸長制御部１２が判定した場合には、次のステップ２５０に進み、前記連続伸長アルゴリズムを使用して前記データの伸長処理を行う。
【００３５】
この連続伸長アルゴリズムでは、図８に示すように、先ず、連続データ伸長部１５が、２番目のデータ（１バイト）をカウンタとして読み出す（Ｓ２５１）。次いで、連続データ伸長部１５は、その前のデータを、前記ステップ２５１において読み出したカウンタの数に相当する分、出力する（Ｓ２５２）。そして、読み出したデータを伸長関連データ記憶部１３に格納し、前記連続伸長アルゴリズムを終了する。
【００３６】
このように前記連続伸長アルゴリズムを終了すると、図６のステップ２６０において、伸長制御部１２は、前記データが終端まで到達しているかどうかを判定し、前記データが終端まで到達していないと判定した場合には、再度、前記ステップ２３０に戻り、以降、上記した各ステップの処理を繰り返し行う。一方、前記ステップ２６０において、前記データが終端まで到達していると伸長制御部１２が判定した場合には、伸長処理を終了する。
【００３７】
これに対して、前記ステップ２３０において、前回の非連続伸長アルゴリズムによる伸長処理の反復回数が２５５回であると伸長処理回数判定部１９が判定した場合には、伸長処理初期化部２０は、図７を参照して既に説明した手順に従って、前記非連続伸長アルゴリズムにより前記データの伸長処理を行うと共に、伸長関連データ記憶部１３に格納された連続データ伸長回数算定部１６及び非連続データ伸長回数算定部１８の各カウント数をそれぞれリセットする。
【００３８】
また、前記ステップ２４０において、前回の伸長アルゴリズムが連続伸長アルゴリズムであると伸長制御部１２が判定した場合には、図７の手順に従って、前記非連続伸長アルゴリズムにより前記データの伸長処理を行う。
【００３９】
そして、このように前記非連続伸長アルゴリズムを終了すると、前記ステップ２６０において、伸長制御部１２は、前記データが終端まで到達しているかどうかを判定し、既に上記した場合と同様に、その判定結果に基づき、前記ステップ２３０以降の各ステップの処理を繰り返し行うか、或いは、伸長処理を終了する。
【００４０】
なお、上記した実施の形態において、データ圧縮システム１及びデータ伸長システム１１は、コンピュータのハードディスク（図示省略）に格納されたデータ圧縮プログラム及びデータ伸長プログラムをＣＰＵ（図示省略）がそれぞれ実行することにより機能するようになっているが、本発明は、これらの場合に限定されるものではなく、例えば、プリンタ、ファクシミリ装置、複合機等の画像形成装置に設けたり、さらに、これらの画像形成装置が通信ネットワークを介して複数接続されて構成されるシステムに設けたりしてもよい。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施の形態に係るデータ圧縮システムの構成を示すブロック図である。
【図２】本発明の実施の形態に係るデータ伸長システムの構成を示すブロック図である。
【図３】本発明の実施の形態に係るデータ圧縮システムによるデータの圧縮処理手順を示すフローチャートである。
【図４】本発明の実施の形態に係るデータ圧縮システムにおける非連続圧縮アルゴリズムを示すフローチャートである。
【図５】本発明の実施の形態に係るデータ圧縮システムにおける連続圧縮アルゴリズムを示すフローチャートである。
【図６】本発明の実施の形態に係るデータ伸長システムによる圧縮データの伸長処理手順を示すフローチャートである。
【図７】本発明の実施の形態に係るデータ伸長システムにおける非連続伸長アルゴリズムを示すフローチャートである。
【図８】本発明の実施の形態に係るデータ伸長システムにおける連続伸長アルゴリズムを示すフローチャートである。
【符号の説明】
【００４２】
１          データ圧縮システム
５          連続データ圧縮部
６          連続データ圧縮回数算定部
７          非連続データ圧縮部
８          非連続データ圧縮回数算定部
１０        圧縮処理初期化部
１１        データ伸長システム
１５        連続データ伸長部
１６        連続データ伸長回数算定部
１７        非連続データ伸長部
１８        非連続データ伸長回数算定部
２０        伸長処理初期化部
【図１】
2007194998.tif 000003
【図２】
2007194998.tif 000004
【図３】
2007194998.tif 000005
【図４】
2007194998.tif 000006
【図５】
2007194998.tif 000007
【図６】
2007194998.tif 000008
【図７】
2007194998.tif 000009
【図８】
2007194998.tif 000010