(57)【要約】【課題】短い周期で各種階調のデータが出現したり、長い周期で同じ階調のデータが出現したりする処理対象データに対しても高い圧縮率が得られる。【解決手段】コンピュータ１は、画像データを連長圧縮の対象とした場合の連長数に基づいて、連長表記可変ヘッダにおける表記部を構成するビット数を決定する。連長数表記可変ヘッダの表記部を可変としているので、連長数が小さいときは表記部を短縮させ、連長数が大きいときは表記部を拡大させる。そして、連長数表記可変ヘッダによる格納方式に基づいて処理対象データを格納する。連長数の表記部に続くデータの羅列数の長さを抑制できるので、高い圧縮率を得ることができる。また、表記部に記載可能な連長数を大きくでき、ヘッダ数を抑制できるので、高い圧縮率を得ることができる。【選択図】図２
2015056725.tif 000002
【特許請求の範囲】
【請求項１】
処理対象データを圧縮するデータ圧縮方法において、
前記処理対象データを連長圧縮の対象とした場合の連長数を確認する過程と、
前記連長数に基づいて、非連長／連長を含む連続性の種別を規定する種別部と、非連長数／連長数を含む連続数を規定する表記部とを含む連長数表記可変ヘッダにおける表記部を構成するビット数を決める過程と、
前記連長数表記可変ヘッダによる格納方式に基づいて前記処理対象データを格納する過程と、
を有することを特徴とするデータ圧縮方法。
【請求項２】
請求項１に記載のデータ圧縮方法において、
前記連長数を確認する過程に先だって、前記処理データに対して、一定の範囲内の値のデータを予め決められた値に変更する前処理を行うことを特徴とするデータ圧縮方法。
【請求項３】
請求項１または２に記載のデータ圧縮方法において、
前記表記部を構成するビット数を決める過程は、前記表記部を構成するビット数と圧縮率との関係を表す評価関数に基づいて、圧縮率が高くなるビット数を決定することを特徴とするデータ圧縮方法。
【請求項４】
処理対象データを圧縮するデータ圧縮装置において、
前記処理対象データを連長圧縮の対象とした場合の連長数を確認する連長数確認手段と、
前記連長数確認手段の連長数に基づいて、非連長／連長を含む連続性の種別を規定する種別部と、非連長数／連長数を含む連続数を規定する表記部とを含む連長数表記可変ヘッダにおける表記部を構成するビット数を決めるビット数決定手段と、
前記ビット数決定手段で決定された前記連長数表記可変ヘッダによる格納方式に基づいて前記処理対象データを格納する連長圧縮手段と、
を備えていることを特徴とするデータ圧縮装置。
【請求項５】
請求項４に記載のデータ圧縮装置において、
前記連長数確認手段に与えられる前の処理対象データに対して、一定の範囲内の値のデータを予め決められた値に変更する前処理を行うための前処理手段をさらに備えていることを特徴とするデータ圧縮装置。
【請求項６】
請求項４または５に記載のデータ圧縮装置において、
前記ビット数決定手段は、前記表記部を構成するビット数を決めるために、前記表記部を構成するビット数と圧縮率との関係を表す評価関数に基づいて、圧縮率が高くなるビット数を決定することを特徴とするデータ圧縮装置。
【請求項７】
処理対象データをコンピュータによって圧縮するデータ圧縮プログラムであって、
前記コンピュータのＣＰＵがメモリで実行することにより、
前記処理対象データを連長圧縮の対象とした場合の連長数を確認する機能と、
前記連長数に基づいて、非連長／連長を含む連続性の種別を規定する種別部と、非連長数／連長数を含む連続数を規定する表記部とを含む連長数表記可変ヘッダにおける表記部を構成するビット数を決める機能と、
前記連長数表記可変ヘッダによる格納方式に基づいて前記処理対象データを格納する機能と、
を実現させるためのデータ圧縮プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データなどの処理対象データを圧縮するデータ圧縮方法及びその装置並びにそのプログラムに係り、特に、連続するデータを連長圧縮する技術に関する。
【背景技術】
【０００２】
従来、この種の方法として、画像データなどのデータ圧縮のために、同一データの連続性に着目したPack Bits（連長圧縮やランレングス圧縮とも呼ばれる）がある（例えば、特許文献１参照）。このPack Bitsは、同一データの連続／不連続の長さを記録することでデータの可逆圧縮を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２７７９３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、このような構成を有する従来例の場合には、次のような問題がある。
すなわち、従来の方法では、データ中における同一階調の連続データ部でしか圧縮ができず、データが写真などの自然画像である場合には圧縮率が上がらないという欠点がある。そこで、本出願人は、従来のPack Bits方式を改良し、同一階調ではないが階調の上位データが一致している連続箇所に対して、半同一データという概念を採用して圧縮を行うデータ圧縮方法を出願している（特願２０１２−１８１０９７号）。しかしながら、このデータ圧縮方法でも、特に階調変化の周期が短く、データの上位及び下位が同一で圧縮可能な同一階調部と、データの上位だけが同じ半同一階調部と、データの上位及び下位が非同一で圧縮ができない非同一階調部とが広く散在するデータである場合には、改良の効果が発揮されにくいという問題がある。
【０００５】
また、従来のPack Bits方式において、連長圧縮が効果的に行われるように前処理を施すためのフィルタが本出願人により出願されている（特開２０１０−２０６５９９号公報参照）。このフィルタは、比較的短い同一階調部と、半同一階調部と、非同一階調部とに非同一データを変化させるので、ほとんど圧縮がきかなかった部分において圧縮が可能となるものの、同一データなどの属性を表すヘッダ数が著しく増加する。したがって、ヘッダ数の増加に伴い、最大圧縮率が伸び悩むという問題がある。
【０００６】
また、上述したような階調変化が短い周期とは反対に、階調変化が長い周期である場合にも、ヘッダに連長数が収まりきれないので、やはりヘッダ数が増加することに伴い、最大圧縮率が伸び悩むという問題がある。
【０００７】
本発明は、このような事情に鑑みてなされたものであって、短い周期で各種階調のデータが出現したり、長い周期で同じ階調のデータが出現したりする処理対象データに対しても高い圧縮率が得られるデータ圧縮方法及びその装置並びにそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、このような目的を達成するために、次のような構成をとる。
すなわち、請求項１に記載の発明は、処理対象データを圧縮するデータ圧縮方法において、前記処理対象データを連長圧縮の対象とした場合の連長数を確認する過程と、前記連長数に基づいて、非連長／連長を含む連続性の種別を規定する種別部と、非連長数／連長数を含む連続数を規定する表記部とを含む連長数表記可変ヘッダにおける表記部を構成するビット数を決める過程と、前記連長数表記可変ヘッダによる格納方式に基づいて前記処理対象データを格納する過程と、を有することを特徴とするものである。
【０００９】
［作用・効果］請求項１に記載の発明によれば、確認した処理対象データの連長数に基づいて、連長数表記可変ヘッダにおける表記部を構成するビット数を決定する。連長数表記可変ヘッダの表記部を可変としているので、連長数が小さいときは表記部を短縮させ、連長数が大きいときは表記部を拡大させる。そして、連長数表記可変ヘッダによる格納方式に基づいて処理対象データを格納する。連長数が小さいときは、標準のPack Bitsで利用されている表記部よりもビット数を少なくするので、連長数の表記部に続くデータの羅列を連長数表記可変ヘッダに前詰めにできる。したがって、短い周期で各種階調のデータが出現する処理対象データであっても、連長数の表記部に続くデータの羅列数の長さを抑制できるので、高い圧縮率を得ることができる。また、連長数が大きいときは、標準のPack Bitsで利用されている表記部よりもビット数を多くするので、表記部に記載可能な連長数を大きくできる。したがって、標準のPack Bitsで利用されている表記部では収まりきれないほど連長数が大きい場合であっても、ヘッダ数を抑制できるので、高い圧縮率を得ることができる。
【００１０】
また、本発明において、前記連長数を確認する過程に先だって、前記処理データに対して、一定の範囲内の値のデータを予め決められた値に変更する前処理を行うことが好ましい（請求項２）。
【００１１】
前処理を行うことにより、通常は連長圧縮されないばらついたデータが予め決められた値に変更されるので、連長圧縮の対象となる。したがって、圧縮率を向上することができるものの、一定の範囲ごとに短い周期の各種階調のデータが散在することがあるが、連長数表記可変ヘッダにより効率的に圧縮ができる。
【００１２】
また、本発明において、前記表記部を構成するビット数を決める過程は、前記表記部を構成するビット数と圧縮率との関係を表す評価関数に基づいて、圧縮率が高くなるビット数を決定することが好ましい（請求項３）。
【００１３】
表記部のビット数と圧縮率との関係を表す評価関数を用いて、圧縮率が高くなるビット数で表記部のビット数を決める。したがって、最適な表記部のビット数を決めることができるので、高い圧縮率を得ることができる。
【００１４】
また、請求項４に記載の発明は、処理対象データを圧縮するデータ圧縮装置において、前記処理対象データを連長圧縮の対象とした場合の連長数を確認する連長数確認手段と、前記連長数確認手段の連長数に基づいて、非連長／連長を含む連続性の種別を規定する種別部と、非連長数／連長数を含む連続数を規定する表記部とを含む連長数表記可変ヘッダにおける表記部を構成するビット数を決めるビット数決定手段と、前記ビット数決定手段で決定された前記連長数表記可変ヘッダによる格納方式に基づいて前記処理対象データを格納する格納手段と、を備えていることを特徴とするものである。
【００１５】
［作用・効果］請求項４に記載の発明によれば、連長数確認手段により確認した処理対象データの連長数に基づいて、ビット数決定手段が連長表記可変ヘッダにおける表記部を構成するビット数を決定する。連長数表記可変ヘッダの表記部を可変としているので、連長数が小さいときは表記部を短縮させ、連長数が大きいときは表記部を拡大させる。そして、格納手段は、連長数表記可変ヘッダによる格納方式に基づいて処理対象データを格納する。連長数が小さいときは、標準のPack Bitsで利用されている表記部よりもビット数を少なくするので、連長数の表記部に続くデータの羅列を連長数表記可変ヘッダに前詰めにできる。したがって、短い周期で各種階調のデータが出現する処理対象データであっても、連長数の表記部に続くデータの羅列数の長さを抑制できるので、高い圧縮率を得ることができる。また、連長数が大きいときは、標準のPack Bitsで利用されている表記部よりもビット数を多くするので、表記部に記載可能な連長数を大きくできる。したがって、標準のPack Bitsで利用されている表記部では収まりきれないほど連長数が大きい場合であっても、ヘッダ数を抑制できるので、高い圧縮率を得ることができる。
【発明の効果】
【００１６】
本発明に係るデータ圧縮方法によれば、確認した処理対象データの連長数に基づいて、連長数表記可変ヘッダにおける表記部を構成するビット数を決定する。連長数表記可変ヘッダの表記部を可変としているので、連長数が小さいときは表記部を短縮させ、連長数が大きいときは表記部を拡大させる。そして、連長数表記可変ヘッダによる格納方式に基づいて処理対象データを格納する。連長数が小さいときは、標準のPack Bitsで利用されている表記部よりもビット数を少なくするので、連長数の表記部に続くデータの羅列を連長数表記可変ヘッダに前詰めにできる。したがって、短い周期で各種階調のデータが出現する処理対象データであっても、連長数の表記部に続くデータの羅列数の長さを抑制できるので、高い圧縮率を得ることができる。また、連長数が大きいときは、標準のPack Bitsで利用されている表記部よりもビット数を多くするので、表記部に記載可能な連長数を大きくできる。したがって、標準のPack Bitsで利用されている表記部では収まりきれないほど連長数が大きい場合であっても、ヘッダ数を抑制できるので、高い圧縮率を得ることができる。
【図面の簡単な説明】
【００１７】
【図１】実施例に係るデータ圧縮装置の概略構成を示すブロック図である。
【図２】評価関数の説明に供するグラフである。
【図３】非同一データにおける連長数表記可変ヘッダ（表記部短縮）の構造を示す模式図である。
【図４】同一データにおける連長数表記可変ヘッダ（表記部短縮）の構造を示す模式図である。
【図５】データ圧縮装置の動作を示すフローチャートである。
【図６】画像データの一例を示す模式図である。
【図７】Pack Bits圧縮後の画像データを示す模式図である。
【図８】本実施例による圧縮後の画像データを示す模式図である。
【図９】非同一データにおける連長数表記可変ヘッダ（表記部拡大）の他の構造を示す模式図である。
【図１０】同一データにおける連長数表記可変ヘッダ（表記部拡大）の他の構造を示す模式図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して本発明の一実施例について説明する。
図１は、実施例に係るデータ圧縮装置の概略構成を示すブロック図である。
【００１９】
実施例に係るデータ圧縮装置は、処理対象データとして画像データを与えられ、この画像データを圧縮画像データとして出力する。データ圧縮装置は、コンピュータ１から構成されている。コンピュータ１は、ＣＰＵ３やメモリ５などで構成されている。コンピュータ１には、ディスクドライブ７が接続されている。このディスクドライブ７は、記憶メディア９を着脱自在に構成されている。記憶メディア９には、後述するプログラムＰが記憶されている。このプログラムＰは、記憶メディア９からディスクドライブ７を介してメモリ５にロードされる。コンピュータ１は、メモリ５にロードされたプログラムＰをＣＰＵ３で実行することによって、後述する処理を行う。
【００２０】
コンピュータ１は、上述したようにＣＰＵ３やメモリ５で構成されているが、機能的には、Pack Bits圧縮処理部１１と、読み取り部１３と、評価部１５と、切り換えアドレス記憶部１７と、圧縮データメモリ１９と、アドレス管理部２１と、ヘッダ生成部２３と、合成部２５とを備えている。なお、Pack Bits圧縮処理部１１の前段には、画像データに対して前処理を行う前処理部２７を設けてもよい。但し、ここでは前処理部２７を設けていない場合について説明する。
【００２１】
Pack Bits圧縮処理部１１は、従来からある標準的なPack Bits圧縮を行う。つまり、非連長／連長を含む連続性の種別を示す１ビットからなる種別部と、非連長数／連長数を含む連続数を規定する７ビットからなる表記部とを含むヘッダに続いて、非連長のデータまたは連長のデータを羅列して格納する。読み取り部１３は、Pack Bits圧縮処理部１１により圧縮された画像データのデータを、所定の長さのデータごと順に読み取ってゆく。所定の長さは、例えば、数バイト単位や、数十バイト単位である。
【００２２】
評価部１５は、Pack Bits圧縮された画像データのうちの所定長さのデータのうち、ヘッダだけを受け取って、連長数の評価を行う。具体的には、評価関数を用いて、ヘッダの表記部におけるビット数を圧縮率が高くなるように決める。この評価部１５によって評価を行うか否かは、データ圧縮処理を行う際に、オペレータによって選択できるようにするのが好ましい。なお、本発明においては、表記部のビット数を可変とすることから、ヘッダを連長数表記可変ヘッダと称する。ここで、評価関数の具体例について説明するために図２を参照する。図２は、評価関数の説明に供するグラフである。
【００２３】
図２は、連長数と圧縮率との関係を、表記部のビット数をパラメータにして描いたものである。連長数表記部可変ヘッダにおける表記部のビット数は、この例では、４ビット、６ビット、８ビット、１０ビット、１２ビットの５種類としている。この評価関数のグラフから、連長数が８個までであれば、表記部のビット数を４ビットにすると圧縮率が高くできることがわかる。また、連長数が１０個以上になると、表記部のビット数を６ビットとすることで圧縮率を高くでき、連長数が４８個以上になると、表記部のビット数を１０ビットや１２ビットにすることで高圧縮率にできることがわかる。このように、評価部１５は、ヘッダの表記部と評価関数とに基づいて、連長数表記可変ヘッダにおける表記部のビット数を決定する。なお、以下の説明においては、表記部のビット数が４ビットで圧縮率が高くなる場合を例にとって説明する。
【００２４】
ここで、図３及び図４を参照する。なお、図３は、非同一データにおける連長数表記可変ヘッダ（表記部短縮）の構造を示す模式図であり、図４は、同一データにおける連長数表記可変ヘッダ（表記部短縮）の構造を示す模式図である。
【００２５】
非同一データの場合における連長数表記可変ヘッダは、図３に示すように、１ビットで構成された種別部が非連長であることを表す「０」とされ、４ビット（半ビット）で構成された表記部が非連長データの個数を格納し、表記部の後に非連長データが羅列されて格納されるデータ部が続く。なお、表記部が４ビットで構成されているので、０〜７までの個数を表現できるが、個数が０であることはあり得ないので、０〜７を１〜８または２〜９に対応させるのが好ましい。これにより、表記部を４ビットとした場合には、非連長数を８または９まで表すことができる。
【００２６】
また、同一データの場合における連長数表記可変ヘッダは、図４に示すように、１ビットで構成された種別が連長であることを表す「１」とされ、４ビット（半ビット）で構成された表記部が連長データの個数を格納し、表記部の後に連長データが羅列されて格納されるデータ部が続く。なお、表記部が４ビットで構成されていることから、０〜７までを１〜８または２〜９に対応させるのが好ましいのは上記と同様である。
【００２７】
上述したように連長数表記可変ヘッダの種別部と表記部を合わせて４ビット（１バイトの半分）で構成することにより、データ処理を容易に行うことができる。
【００２８】
切り換えアドレス記憶部１７は、連長数表記可変ヘッダを採用しているので、標準的なPack Bits圧縮のヘッダとは異なる位置に非連長／連長データが位置することになる。そこで、採用した連長数表記可変ヘッダの表記部におけるビット幅に応じて、非連長／連長データが羅列して格納する位置を表すアドレスを記憶し、そのアドレスをアドレス管理部２１へ出力する。圧縮データメモリ１９は、標準的なPack Bits圧縮のヘッダに続いて羅列されている非連長／連長データだけを読み取り部１３から受け取り、アドレス管理部２１が切り換えアドレス記憶部１７から受け取った、連長数に基づくアドレスに応じて合成部２５に対して出力する。ヘッダ生成部２３は、評価部１５から受け取った表記部のビット幅及びアドレス管理部２１を介して受け取ったアドレスに応じてヘッダ及びそれに続くデータを変換して連長数表記可変ヘッダを生成して、合成部２５に対して出力する。合成部２５は、連長数表記可変ヘッダに、受け取った非連長／連長データを格納するように合成して出力する。これにより、圧縮画像データが生成される。
【００２９】
なお、上述したアドレス管理部２１が本発明における「連長数確認手段」及び「ビット数決定手段」に相当し、合成部２５が本発明における「格納手段」に相当し、前処理部２７が本発明における「前処理手段」に相当する。
【００３０】
次に、図５を参照して、上述したコンピュータ１の動作について説明する。なお、図５は、データ圧縮装置の動作を示すフローチャートである。
【００３１】
ステップＳ１
Pack Bits圧縮部１１は、画像データを受け取って、標準的なPack Bits圧縮処理を行う。
【００３２】
ステップＳ２
読み取り部１３は、Pack Bits圧縮部１１により標準的なPack Bits圧縮された圧縮済の画像データを順次に読み取る。
【００３３】
ステップＳ３〜Ｓ５
ステップＳ３では、予め指示されている評価実行の指示に基づき処理を分岐する。評価実行が指示されている場合には、ステップＳ４において評価部１５による評価処理を行い、その結果、ヘッダを連長数表記可変ヘッダにする方が圧縮率を高くできると判断されたか否かに応じてステップＳ５において処理を分岐する。ステップ５において、圧縮効果があると判断された場合には、ステップＳ６へ分岐し、圧縮効果がないと判断された場合には、ステップＳ７に分岐する。なお、評価処理の結果、標準のヘッダとは異なるビット数の表記部を採用することになった場合には、そのことを示すヘッダ切り換えコードを配置し、標準のヘッダと同じビット数の表記部を採用することになった場合には、標準のヘッダとは異なるビット数の表記部がここで終了することを示す終了コードを配置するのが好ましい。
【００３４】
また、ここで終了することを示す終了コードを配置する、または標準のヘッドとは異なるビット数の表記部を採用することになった場合には、そのことを示すヘッダ切り換えコードを配置し、続いて標準とは異なるヘッダが続くデータ数を配置し、予め決められたデータ数のヘッダを配置した後に標準のヘッダを続けて配置することが望ましい。例えば、切り換えコードの後を切り換えたコードのビット幅ヘッダが続く数を指定する方式では、８ビットヘッダ、データ、切り換えコード、４ビットのヘッダが続く数、４ビットヘッダ、データ、４ビットヘッダ、データ、４ビットヘッダ、データ、４ビットヘッダ、データ、８ビットヘッダ、データとなる。この例では、４ビットのヘッダが続く数が４となる。
【００３５】
ステップＳ６
ステップＳ５において連長数表記可変ヘッダにより圧縮効果があると判断された場合には、ヘッダ生成部２３により連長数表記可変ヘッダに変換を行う。
【００３６】
ステップＳ７
標準ヘッダまたは連長数表記可変ヘッダに非連長／連長データを羅列したデータの出力を行う。
【００３７】
ステップＳ８
最終データである場合には処理を終了し、最終データでない場合にはステップＳ２に戻って次の圧縮データを読み取る。
【００３８】
次に、図６〜図８を参照して、具体的な圧縮例について説明する。なお、図６は、画像データの一例を示す模式図であり、図７は、Pack Bits圧縮後の画像データを示す模式図であり、図８は、本実施例による圧縮後の画像データを示す模式図である。
【００３９】
図６に示すように、この例における画像データは、３個の０Ａと、２個の１Ｂと、４個の４Ｃと、１個の２１と、３個の１Ｃと、２個の２２と、１個の２５と、１個の２９と、２個の３４のデータにより構成された１９バイトの長さとなる。つまり、連長数は最大で４個となっており、図２に示す評価関数による評価では、４ビットの表記部とすることで圧縮率を高められるものである。なお、図６〜図９では、横に並ぶ２個の数字が８ビットで表現されている。
【００４０】
図７は、図６に示す画像データを標準のPack Bits圧縮を行ったものである。この図において、種別部（１ビット）が「−」で表されているのは同一データによる連長であることを示し、種別部（７ビット）が「＋」で表されているのは非同一データで非連長であることを示し、その後に記載されている数字が非連長／連長の連続数を示す表記部である。つまり、３個の連長である同一データ０Ａと、２個の連長である同一データ１Ｂと、４個の連長である同一データ４Ｃと、１個の非同一データ２１と、３個の連長である同一データ１Ｃと、２個の連長である同一データ２２と、２個の非同一データ２５，２９と、２個の連長である同一データ３４とから表現される１７バイトのデータに圧縮される。
【００４１】
図８は、本実施例による圧縮を行ったものである。この図でも横に並ぶ２個の数字が８ビットで表されているが、１ビットの種別部と、３ビットの表記部との４ビットで連長数表記可変ヘッダを構成し、それに続く４ビットの部分から、後続の同一または非同一データの上位４ビットが詰めて羅列されている。そのため、１ビットの種別部については、表記部の上部に記載してある。
【００４２】
したがって、ヘッダ−３が４ビットで表現され、それに３個続く同一データ０Ａの上位４ビットのデータ０が前詰めされ、「−３０」で８ビットのデータとされる。同一データ０Ａの下位４ビットのデータＡと、これに続くヘッダ−２が４ビットで表現され、「Ａ−２」で８ビットのデータとされる。非同一データ１Ｂがそのまま「１Ｂ」で８ビットのデータとされる。ヘッダ−４が４ビットで表現され、それに続く同一データ４Ｃの上位４ビットのデータ４が前詰めされ、「−４４」で８ビットのデータとされる。同一データ４Ｃの下位４ビットのデータＣと、これに続くヘッダ＋１が４ビットで表現され、Ｃ＋１で８ビットのデータとされる。非同一データ２１がそのまま「２１」で８ビットのデータとされる。ヘッダ−３が４ビット表現され、それに３個続く同一データ１Ｃの上位４ビットのデータ１が前詰めされ、「−３１」で８ビットのデータとされる。同一データ１Ｃの下位４ビットのデータＣと、これに続くヘッダ−２が４ビットで表現され、「Ｃ−２」で８ビットのデータとされる。同一データ２２がそのまま「２２」で８ビットのデータとされる。ヘッダ＋２が４ビットで表現され、これに２個続く非同一データ２５の上位４ビットのデータ２が前詰めされ、「＋２２」で８ビットのデータとされる。非同一データ２５の下位４ビットのデータ５と、これに続く非同一データの上位４ビットのデータ２とが「５２」で８ビットのデータとされる。非同一データ２９の下位４ビットのデータ９と、これに続くヘッダ−２が４ビットで表現され、「９−２」が８ビットのデータとされる。同一データ３４がそのまま「３４」で８ビットのデータとされる。これにより、本実施例による圧縮後は、１３バイトのデータとなり、元の画像データから高い圧縮率で圧縮できる。
【００４３】
なお、上述した例では、連長数表記可変ヘッダの表記部を標準のPack Bits圧縮よりも小さなビット数とした。しかし、図９及び図１０の例に示すように、連長数表記可変ヘッダの表記部を標準のPack Bits圧縮よりも大きなビット数としてもよい。この例では、連長数表記可変ヘッダの表記を１２ビット幅としている。この場合には、標準のPack Bits圧縮で用いられるヘッダの表記部が７ビットであるので、連長数が７ビットで表される１２８個よりも多い場合に、ヘッダの個数を抑制でき、高い圧縮率で圧縮できる。なお、表記部を１２ビットとすることにより、後続のデータの格納位置がずれていく。そのため、最後の部分があまるが、その部分にはダミーデータを格納すればよい。
【００４４】
上述した実施例によると、画像データの連長数に基づいて、連長表記可変ヘッダにおける表記部を構成するビット数を決定する。連長数表記可変ヘッダの表記部を可変としているので、連長数が小さいときは表記部を短縮させ、連長数が大きいときは表記部を拡大させる。そして、連長数表記可変ヘッダによる格納方式に基づいて処理対象データを格納する。連長数が小さいときは、標準のPack Bitsで利用されている表記部よりもビット数を少なくするので、連長数の表記部に続くデータの羅列を連長数表記可変ヘッダに前詰めにできる。したがって、短い周期で各種階調のデータが出現する処理対象データであっても、連長数の表記部に続くデータの羅列数の長さを抑制できるので、高い圧縮率を得ることができる。また、連長数が大きいときは、標準のPack Bitsで利用されている表記部よりもビット数を多くするので、表記部に記載可能な連長数を大きくできる。したがって、標準のPack Bitsで利用されている表記部では収まりきれないほど連長数が大きい場合であっても、ヘッダ数を抑制できるので、高い圧縮率を得ることができる。
【００４５】
本発明は、上記実施形態に限られることはなく、下記のように変形実施することができる。
【００４６】
（１）上述した実施例では、評価部１５にて評価関数による評価を行って連長数表記可変ヘッダの表記部のビット数を決定した。しかしながら、本発明は、評価部１５による評価を必須とするものではない。例えば、予め連長数が所定値以下であることがわかっている場合には、標準のPack Bits圧縮のヘッダの表記部よりも小さい、予め決められたビット数とされた表記部の連長数表記可変ヘッダを用いるように構成してもよい。この場合には、アドレス管理部２１が読み取り部１３からヘッダだけを受け取り、連長数を確認し、連長数表記可変ヘッダの表記部のビット数に応じたアドレス管理を行う。これにより評価部１５及び切り換えアドレス記憶部１７を省略でき、処理速度を向上できるとともにコストを抑制できる。
【００４７】
（２）上述した実施例では、画像データをPack Bits圧縮処理部１１で圧縮しているが、その前に前処理部２７により一定の範囲内の値のデータを予め決められた値に変更する前処理を行うようにしてもよい。前処理を行うことにより、通常は連長圧縮されないばらついたデータが予め決められた値に変更されるので、連長圧縮の対象となる。したがって、圧縮率を向上することができるものの、一定の範囲ごとに短い周期の各種階調のデータが散在することがあるが、連長数表記可変ヘッダにより効率的に圧縮ができる。
【００４８】
（３）上述した実施例では、同一／非同一データでのみ連長圧縮しているが、同一階調ではないが階調の上位データが一致している連続箇所に対しても圧縮を行うデータ圧縮方法（特願２０１２−１８１０９７号）を適用し、半同一データをも考慮して処理するようにしてもよい。
【符号の説明】
【００４９】
１  …  コンピュータ
３  …  ＣＰＵ
５  …  メモリ
７  …  ディスクドライブ
９  …  記憶メディア
Ｐ  …  プログラム
１１  …  Pack Bits圧縮処理部
１３  …  読み取り部
１５  …  評価部
１７  …  切り換えアドレス記憶部
１９  …  圧縮データメモリ
２１  …  アドレス管理部
２３  …  ヘッダ生成部
２５  …  合成部
２７  …  前処理部
【図１】
2015056725.tif 000003
【図２】
2015056725.tif 000004
【図３】
2015056725.tif 000005
【図４】
2015056725.tif 000006
【図５】
2015056725.tif 000007
【図６】
2015056725.tif 000008
【図７】
2015056725.tif 000009
【図８】
2015056725.tif 000010
【図９】
2015056725.tif 000011
【図１０】
2015056725.tif 000012
【手続補正書】
【提出日】平成26年4月23日(2014.4.23)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
図２は、連長数と圧縮率との関係を、連長数表記可変ヘッダのビット数をパラメータにして描いたものである。連長数表記可変ヘッダのビット数は、この例では、４ビット、６ビット、８ビット、１０ビット、１２ビットの５種類としている。この評価関数のグラフから、連長数が８個までであれば、連長数表記可変ヘッダのビット数を４ビットにすると圧縮率が高くできることがわかる。また、連長数が１０個以上になると、連長数表記可変ヘッダのビット数を６ビットとすることで圧縮率を高くでき、連長数が４８個以上になると、連長数表記可変ヘッダのビット数を１０ビットや１２ビットにすることで高圧縮率にできることがわかる。このように、評価部１５は、ヘッダのビット数と評価関数とに基づいて、連長数表記可変ヘッダのビット数を決定する。なお、以下の説明においては、連長数表記可変ヘッダのビット数が４ビットで圧縮率が高くなる場合を例にとって説明する。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
非同一データの場合における連長数表記可変ヘッダは、図３に示すように、１ビットで構成された種別部が非連長であることを表す「０」とされ、３ビットで構成された表記部が非連長データの個数を格納し、表記部の後に非連長データが羅列されて格納されるデータ部が続く。なお、表記部が３ビットで構成されているので、０〜７までの個数を表現できるが、個数が０であることはあり得ないので、０〜７を１〜８または２〜９に対応させるのが好ましい。これにより、表記部を３ビットとした場合には、非連長数を８または９まで表すことができる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
また、同一データの場合における連長数表記可変ヘッダは、図４に示すように、１ビットで構成された種別が連長であることを表す「１」とされ、３ビットで構成された表記部が連長データの個数を格納し、表記部の後に連長データが羅列されて格納されるデータ部が続く。なお、表記部が３ビットで構成されていることから、０〜７までを１〜８または２〜９に対応させるのが好ましいのは上記と同様である。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
なお、上述した例では、連長数表記可変ヘッダの表記部を標準のPack Bits圧縮よりも小さなビット数とした。しかし、図９及び図１０の例に示すように、連長数表記可変ヘッダの表記部を標準のPack Bits圧縮よりも大きなビット数としてもよい。この例では、連長数表記可変ヘッダの表記部を１１ビット幅としている。この場合には、標準のPack Bits圧縮で用いられるヘッダの表記部が７ビットであるので、連長数が７ビットで表される１２８個よりも多い場合に、ヘッダの個数を抑制でき、高い圧縮率で圧縮できる。なお、表記部を１１ビットとすることにより、後続のデータの格納位置がずれていく。そのため、最後の部分があまるが、その部分にはダミーデータを格納すればよい。
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2015056725.tif 000013