JP3866568B2 - Image compression method - Google Patents
Image compression method Download PDFInfo
- Publication number
- JP3866568B2 JP3866568B2 JP2001388931A JP2001388931A JP3866568B2 JP 3866568 B2 JP3866568 B2 JP 3866568B2 JP 2001388931 A JP2001388931 A JP 2001388931A JP 2001388931 A JP2001388931 A JP 2001388931A JP 3866568 B2 JP3866568 B2 JP 3866568B2
- Authority
- JP
- Japan
- Prior art keywords
- pattern
- encoding
- unit pattern
- repetitive
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、2値のビットマップ画像の圧縮率を向上させる圧縮方法に関する。
【0002】
【従来の技術】
近年、パソコンなどの情報機器が普及し、様々な用途に使用されている。特に、パソコンで画像を処理する場合が多く見られ、パソコンにプリンタを接続し、画像を印刷したり、インターネットなどのネットワークを介して画像データを転送するなどの処理が行われている。しかし、画像が複雑になればなるほど、パソコンからプリンタへの画像データの転送や、ネットワークを介しての画像データの転送に時間がかかり過ぎるようになり、画像データを圧縮して転送することが望まれる。画像データを圧縮することによって、送信すべきデータの量が少なくなり、転送時間を節約できるものである。
【0003】
この場合、画像データには、カラーのものや、グレースケールのものなどがあるが、以下では、これらの画像データを2値化した2値化ビットマップ画像の圧縮方法について述べる。
【0004】
従来の2値ビットマップ画像の圧縮方法としては、MH(Modified Huffman)、MR(Modified READ)、MMR(Modified Modified READ)、JBIG(Joint Bi-level Image Group)等があり、ファイルへの格納やFAXなどに広く使用されている。
【0005】
これらの圧縮方法は、符号化処理が複雑であることから、処理速度の高速化をねらった「ビットマップデータの圧縮方法及び圧縮装置」(特開平8−51545号)が発案されている。
【0006】
上記特開平8−51545号の画像圧縮方法では、まず画像を所定のライン数単位に水平方向に走査して行間のように連続する空白ラインを垂直スキップとして符号化し、空白ライン以外の領域を論理行として分離する。次に、分離した論理行を1列単位に垂直方向に走査して文字間のように黒画素を含まない空白領域をスキップし、空白領域以外の黒画素を含む領域を分離する。
【0007】
そして、白画素のみからなる領域と、黒画素のみからなる領域をそれぞれ列数を指定してスキップするように符号化し、同じ画素値の列が連続する領域をその値と繰り返し回数により符号化する。それ以外の領域は画素データをその列数と共にそのまま符号データとして出力する。
【0008】
【発明が解決しようとする課題】
前述のビットマップデータの圧縮方法には、ディザパターンのような一定の大きさのパターンが繰り返し出現する画像の圧縮率が低下するという問題があった。
【0009】
図9は、従来のディザパターンの符号化方法を説明する図である。
同図上に示されるように、画像の走査は、例えば、8ライン単位で行われる。空白行は、何も画像データがない部分であるので、8ライン単位の行を何個スキップするかという情報を符号化する。
【0010】
ディザが含まれている行は論理行として認識され、8ライン毎に、符号化が行われる。同図下は、ディザパターンの符号化方法の説明である。すなわち、従来では、ディザパターンはそのままビットパターンが符号化されており、例えば、8ライン×N画素からなる論理行の符号化は、ディザが含まれている部分領域をそのまま符号化していた。従って、符号データは、符号語、画素幅N、部分領域の画素データ(Nバイト)からなり、Nバイトよりも大きくなっていた。
【0011】
従って、ディザパターンを含むような画像であっても、有効に圧縮できる画像圧縮方法が望まれるところである。
本発明の課題は、連続して繰り返し出現するパターンを符号化することで圧縮率を向上させる符号化方法を提供することである。
【0012】
【課題を解決するための手段】
本発明の画像圧縮方法は、画像データを圧縮する方法であって、2値画像データの内、反復パターンが含まれている行を抽出する抽出ステップと、該反復パターンの単位パターンと、該単位パターンの繰り返し回数を検出する反復パターン検出ステップと、少なくとも、該単位パターンのデータと、反復パターン内における該単位パターンの繰り返し回数とを使って、画像データ内の反復パターンを含む行を符号化する符号化ステップとを備えることを特徴とする。
【0013】
本発明によれば、ディザパターンのように、単位となるパターンが繰り返し出てくる画像データを有効に符号化し、画像データの圧縮率を向上することができる。
【0014】
【発明の実施の形態】
図1は、本発明の実施形態に従った符号化方法の処理全体の流れを示すフローチャートである。
【0015】
まず、入力された画像を所定ライン数単位に水平方向に走査し(ステップS101)、行間のように連続する空白ラインを垂直スキップとして符号化し、空白ライン以外の領域を論理行として分離する(ステップS102)。
【0016】
次に、分離した論理行を1列単位に垂直方向に走査し(ステップS103)、文字間のように黒画素を含まない空白領域をスキップし、空白領域以外の黒画素を含む領域を分離する(ステップS104)。
【0017】
更に、ステップS104の領域分離結果に基づいて、連続して繰り返し出現する同一幅及び同一画素値を有する反復パターンを分離する(ステップS105)。
【0018】
そして、ステップS102、S104、S105で分離した各領域を要素として符号化を行う(S106)。
図2は、本発明の実施形態の第一の原理を示す図である。
【0019】
論理行の中から連続して繰り返し出現するパターンを検出し、繰り返しの基本となる反復パターンの長さと画素値、及びその繰り返し回数を使用して符号化することにより符号データサイズを削減する。これにより、符号データは、符号語、反復回数K、画素幅M、反復パターンの基本パターン(Mバイト)からなり、ディザパターンの符号データの長さが、ほぼN/Kバイトとなり、従来のディザパターンの符号データの長さに比べ、略1/Kの長さとなる。
【0020】
画像の生成過程において、該画像の生成時に使用されるディザパターンの繰り返しの基本要素となるパターンのサイズが既知の場合がある。この場合、繰り返しパターンの検出をこの既知のサイズに限定して行うことで、全てのサイズについて検出を行う場合に比べて検出処理を大幅に削減し、高速に検出することができる。
【0021】
図3は、本発明の実施形態に従った第二の原理を示す図である。
検出した反復パターンをそのまま符号データとして出力する代わりに、反復パターン自体をラインレングス符号化等のデータ圧縮方法により圧縮することで、符号データサイズを更に削減することができる。
【0022】
このとき、反復パターンの圧縮効果が無ければ、該反復パターンを圧縮しないで符号データとして出力する。
同図においては、(A)に示されるようなディザパターンがあったとすると、反復長がM画素の反復パターンの基本パターンがK回繰り返されている。そこで、(B)に示されるように、M画素からなる反復パターンの基本パターンを取り出し、これをランレングス符号かする。ランレングス符号化の方法は、(C)に示されるように、基本パターンの先頭の8行画素からなる列から順に列の中のどこに黒画素があるかを調べる。まず、(B)の最初の4列は同じパターンであるので、1列分の画素パターンが4つ並んでいるという情報を生成する。次に、黒画素がない列が2列並んでおり、以下同様にして、各列毎に、基本となる黒画素のパターンとそのパターンが列方向に何回連続するかの情報を生成し、M’バイトのランレングス符号データを生成する。ランレングス符号化を行うと、行わないよりも更に良い圧縮効果が得られる。
【0023】
ランレングス符号化しない場合は、符号データは、符号語、ランレングスフラグ=0(ランレングス符号化していないことを示す)、パターン長M、反復回数K、パターンデータからなる。ランレングス符号化すると、符号語、ランレングスフラグ=1(ランレングス符号化していることを示す)、ランレングス符号データ長M’バイト、反復回数K、ランレングス符号データという構成の符号データが得られる。
【0024】
図4は、本発明の実施形態の処理の流れを示すフローチャートである。
同図のフローチャートは、図1に示した原理図におけるステップS105とステップS106の処理に対応し、分離された論理行を符号化する処理を示している。空白領域の符号化は従来通りの方法で行う。
【0025】
以下に、処理フローの説明をする。
ステップS201:符号化処理開始前に必要な、作業用メモリ領域の割当てや、内部パラメータの初期化などの初期化処理を行う。後述するパターンテーブルに登録されているパターンの個数をカウントするパラメータもここでゼロに初期化しておく。
【0026】
ステップS202:論理行から連続して繰り返し出現する同一サイズ及び画素値を持つパターンの有無を検出する。
ステップS203:S202の検出結果に基づき、反復パターンが検出された場合には処理をS205に進み、反復パターンが検出されなかった場合には処理をS204に進む。
【0027】
ステップS204:従来の符号化を行う。
ステップS205:検出された反復パターンの領域を符号化する。
ステップS206:全ての論理行の符号化が完了したか否かを判断し、完了していない場合には処理をS202に戻し、完了した場合には符号化処理を終了する。
【0028】
以下、反復パターン検出処理S202と反復パターン符号化S205の各処理について、図面を参照しながら詳細に説明する。
図5は、反復パターン検出の実施形態を示す処理フローであり、図4のS202の処理に対応する。
【0029】
論理行内を1列単位に走査して、連続する反復パターンの単位パターンの有無を確認し、反復パターンの単位パターンがある場合には反復パターンの単位パターンと共にその長さlenと反復回数numを取得する。
【0030】
ステップS301:検出された反復パターンの単位パターンの反復回数を示すnumに0を設定する。また、反復パターンの単位パターンの検出を開始する列を示す変数aに1、すなわち論理行の先頭列を設定する。
【0031】
ステップS302:検出を開始する反復パターンの長さとしてlenにMIN LENを設定する。MIN LENは、予想される反復パターンの単位パターンから適切な値を割り当てればよい。例えば、画像中の反復パターンの単位パターンの幅が4画素以上であることが予め分かっている場合には、MIN LEN=4とする。こうすることで、存在しない反復パターンの検出処理を回避し、処理時間を短縮できる。
【0032】
ステップS303:参照する列番号を示す変数bに、検出する反復パターンのの単位パターン長さlenをaに加えた値を設定する。
ステップS304:aを先頭とするlen列の画像と、bを先頭とするlen列の画像を比較し、一致するか否かを判断する。両者が一致しない場合には処理をステップS305に移し、両者が一致する場合には処理をステップS310に進める。
【0033】
ステップS305:長さlen列の検出する反復パターンの単位パターンの長さlenに1を加えて、検出する反復パターンの単位パターンの長さを1列分長く設定する。
【0034】
ステップS306:反復パターンの単位パターンの長さlenが検出する最大の長さMAX LENに達したか、またはlenが検出処理を適用していない残り列数の半分に達したか否かを確認し、いずれかの条件を満たす場合には処理をステップS303に戻し、両条件ともに満たさない場合には処理をステップS307に進める。ここで、lenが検出処理を適用していない残り列数(WIDTH−a)の半分に達するということは、検出処理しようとしている列位置aから始まる長さlenの単位パターンが、残りの列の中に1つより多くは含まれ得ないことを意味している。従って、反復パターンとはならないので、次のパターン検出処理であるステップS307に進むのである。
【0035】
ステップS307:反復パターン検出開始列を示すaに1を加える。すなわち、反復パターンの単位パターンの検出を開始する列を1列進める。
ステップS308:検出処理を適用していない残り列数が、検出する反復パターンの単位パターンの最短長の2倍以上残っている場合には処理をステップS302に戻し、そうでない場合にはステップS309に処理を進める。ステップS309に進む場合は、検出しようとする単位パターンが残りの列数の中に1つより多く含まれないことになるので、反復パターンとはならないことから、反復パターンの検出処理を終了するための処理に移るものである。
【0036】
ステップS309:論理行内に連続して出現する反復パターンが存在しない旨出力して処理を終了する。
以上の処理をステップS304でYESとなるまで繰り返し行うことにより、論理行内の連続して出現する反復パターンの有無と、反復パターンが存在した場合には、その位置及び反復パターンの単位パターンが検出された場合には更に以下の処理を行う。
【0037】
ステップS310:ここまでの処理により反復パターンが2個連続していることが検出されていることになるため、反復パターンの反復回数をカウントする変数numに2を設定する。
【0038】
ステップS311:反復パターン有無を検出する次の列を示すようにbをlenに加算し、1パターン分の列数だけ先に進める。
ステップS315:次に、1パターン先の検出処理開始位置である列bが、列幅WIDTHからパターンの幅であるlenを引いたものより小さいか否か、すなわち、列bから始まる長さlenのパターンが残りの列数の中に収まるか否かを判断する。bがWIDTH−len以下である場合には、ステップS312に進み、bがWIDTH−lenより大きい場合には、ステップS314に進む。
【0039】
ステップS312:S304と同様に、aを先頭とするlen列の画像と、bを先頭とするlen列の画像を比較し、一致するか否かを判断する。両者が一致しない場合には処理をS314に移し、両者が一致する場合には処理をS313に進める。
【0040】
ステップS313:検出した反復パターンの反復回数を示すカウンタnumに1を加算し、処理をS311に戻す。連続する反復パターンが検出されなくなるまでステップS311〜S313を繰り返し行うことで、反復パターンの連続する個数が検出される。
【0041】
ステップS314:検出された反復パターンの開始位置aと、反復パターンの長さlen及び反復回数numを結果として出力し、処理を終了する。
以上の処理により、論理行内に反復パターンが存在するか否かが判明し、反復パターンが存在する場合には、その開始位置と反復パターンの単位パターンの長さ及び反復回数が得られる。
【0042】
図6は、符号語のビット構成の実施形態を示す図である。
図6(a)は、検出した反復パターンをランレングス符号化しないで反復パターンをそのまま符号として出力する例、図6(b)は反復パターンをランレングス符号化して出力する場合の例である。図6(a)では、ランレングス符号データでないことを示すため、ランレングス符号化フラグを0にセットし、単位パターンの長さを示すデータ長Mで指定された画素幅の反復パターンの単位パターンデータを出力する。図6(b)では、ランレングス符号化されていることを示すため、ランレングス符号化フラグを1にセットし、ランレングス符号化したデータの長さを示すデータ長M’バイトのランレングス符号データを出力する。何れの場合も、符号化データの中には、反復パターンの単位パターンが何回繰り返し出てくるかを示す反復回数Kが設定される。
【0043】
図7は、パターンテーブルの例を示した図である。
前述のパターンテーブルは、ディザパターンを符号化する場合に、例えば、1ページの文書の中で出てきた単位パターンをその長さと共に登録し、1ページの中で同じ単位パターンが現れた時には、前述の符号化データの内のパターンデータあるいは、ランレングス符号データの部分に、パターンテーブルの登録番号を格納するようにする。登録番号は、画像を符号化していく間に、先に出てきた単位パターンから順次設定されるものであり、最初に出てきた単位パターンが登録番号1であり、2番目に出てきた単位パターンが登録番号2という具合である。
【0044】
このパターンテーブルは、画像を符号化する場合に生成されるが、符号化データの中には含まれない。符号化された画像を復号する場合には、符号データから順次単位パターンを読み取り、パターンテーブルを復号側で再生する様にする。すると、符号データ内には、符号化の時に出てきた順番で単位パターンが埋め込まれているので、復号する場合にも、順次符号データを復号しながらパターンテーブルを作成すると、符号化の際に得られたものと同じものが得られることになる。したがって、符号データの中に、パターンテーブルの登録番号が出てきた場合には、復号の際に生成したパターンテーブルの登録番号を参照して、単位パターンを取得すれば、正しく符号データを復号することができる。
【0045】
以上のように、パターンテーブルを使用することにより、符号データに単位パターンのビットデータをそのまま入れるより、圧縮率を上げることができる。更に、ランレングス符号化と併用すれば、画像データの圧縮率を更に上げることができる。
【0046】
図8は、本実施形態の方法をプログラムで実現する場合に情報処理装置に必要とされるハードウェア環境図である。
バス10でCPU11と接続されたROM12には、BIOSなどの基本プログラムが格納される。また、当該プログラムは、バス10でCPU11と接続された、ハードディスクなどの記憶装置17に格納され、RAM13にコピーされて、CPU11によって実行される。読み取り装置18は、フレキシブルディスク、CD−ROM、DVDなどの可搬記録媒体19から当該プログラムを読み取り、情報処理装置21にインストールを可能とするものである。あるいは、可搬記録媒体19から当該プログラムを直接読み込んで、CPU11に実行させても良い。
【0047】
入出力装置20は、キーボード、マウス、テンプレート、ディスプレイなどからなり、情報処理装置21のユーザからの命令をCPU11に伝えたり、CPU11の演算結果をユーザに提示するためのものである。
【0048】
通信インターフェース14は、情報処理装置21をネットワーク15を介して情報提供者16に接続するものである。情報提供者16は、当該プログラムを持っていて、これをネットワーク15経由で情報処理装置21にダウンロードし、インストールして、CPU11が実行しても良い。あるいは、情報提供者16と情報処理装置21とをネットワーク15で接続したまま、ネットワーク環境のもとで、当該プログラムを実行するようにしても良い。
【0049】
(付記1)画像データを圧縮する方法であって、
2値画像データの内、反復パターンが含まれている行を抽出する抽出ステップと、
該反復パターンの単位パターンと、該単位パターンの繰り返し回数を検出する反復パターン検出ステップと、
少なくとも、該単位パターンのデータと、反復パターン内における該単位パターンの繰り返し回数とを使って、画像データ内の反復パターンを含む行を符号化する符号化ステップと、
を備えることを特徴とする画像圧縮方法。
【0050】
(付記2)前記単位パターンの画素幅が予め定められた1以上の固定値であることを特徴とする付記1に記載の画像圧縮方法。
(付記3)前記符号化ステップにおいては、単位パターンを更にデータ圧縮し、該圧縮された単位パターンと該単位パターンの繰り返し回数により符号化することを特徴とする付記1に記載の画像圧縮方法。
【0051】
(付記4)前記符号化ステップは、ランレングス符号化方法を使用することを特徴とする付記1に記載の画像圧縮方法。
(付記5)前記符号化ステップにおいて、出現した単位パターンを登録するテーブルを生成し、該単位パターンと同じ単位パターンが符号化の過程で2回以上出てくる場合には、該単位パターンの代わりに該テーブルにおける該単位パターンの登録番号を用いて、画像データを符号化することを特徴とする付記1に記載の画像圧縮方法。
【0052】
(付記6)画像データを圧縮する方法であって、
2値画像データの内、反復パターンが含まれている行を抽出する抽出ステップと、
該反復パターンの単位パターンと、該単位パターンの繰り返し回数を検出する反復パターン検出ステップと、
少なくとも、該単位パターンのデータと、反復パターン内における該単位パターンの繰り返し回数とを使って、画像データ内の反復パターンを含む行を符号化する符号化ステップと、
を備えることを特徴とする画像圧縮方法を情報処理装置に実現させるプログラム。
【0053】
(付記7)画像データを圧縮する方法であって、
2値画像データの内、反復パターンが含まれている行を抽出する抽出ステップと、
該反復パターンの単位パターンと、該単位パターンの繰り返し回数を検出する反復パターン検出ステップと、
少なくとも、該単位パターンのデータと、反復パターン内における該単位パターンの繰り返し回数とを使って、画像データ内の反復パターンを含む行を符号化する符号化ステップと、
を備えることを特徴とする画像圧縮方法を情報処理装置に実現させるプログラムを格納した、情報処理装置読み取り可能な記録媒体。
【0054】
(付記8)画像データを圧縮する装置であって、
2値画像データの内、反復パターンが含まれている行を抽出する抽出手段と、該反復パターンの単位パターンと、該単位パターンの繰り返し回数を検出する反復パターン検出手段と、
少なくとも、該単位パターンのデータと、反復パターン内における該単位パターンの繰り返し回数とを使って、画像データ内の反復パターンを含む行を符号化する符号化手段と、
を備えることを特徴とする画像圧縮装置。
【0055】
【発明の効果】
以上説明したように、本発明の画像圧縮方法によれば、ディザパターンのように同じパターンが連続して繰り返し出現する画像から繰り返しの基本となる基本パターンを検出して符号化することにより、写真などのディザを含む画像の圧縮率が向上する。このため、データを格納するための記憶容量の削減やデータ転送時間の短縮に大きく寄与する。
【図面の簡単な説明】
【図1】本発明の実施形態に従った符号化方法の処理全体の流れを示すフローチャートである。
【図2】本発明の実施形態の第一の原理を示す図である。
【図3】本発明の実施形態に従った第二の原理を示す図である。
【図4】本発明の実施形態の処理の流れを示すフローチャートである。
【図5】反復パターン検出の実施形態を示す処理フローである。
【図6】符号語のビット構成の実施形態を示す図である。
【図7】パターンテーブルの例を示した図である。
【図8】本実施形態の方法をプログラムで実現する場合に情報処理装置に必要とされるハードウェア環境図である。
【図9】従来のディザパターンの符号化方法を説明する図である。
【符号の説明】
10 バス
11 CPU
12 ROM
13 RAM
14 通信インターフェース
15 ネットワーク
16 情報提供者
17 記憶装置
18 読み取り装置
19 可搬記録媒体
20 入出力装置
21 情報処理装置[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a compression method for improving the compression rate of a binary bitmap image.
[0002]
[Prior art]
In recent years, information devices such as personal computers have become widespread and are used for various purposes. In particular, there are many cases where an image is processed by a personal computer, and processing such as connecting a printer to the personal computer to print an image or transferring image data via a network such as the Internet is performed. However, the more complex the image, the longer it takes to transfer the image data from the personal computer to the printer or the image data over the network, and it is desirable to compress and transfer the image data. It is. By compressing the image data, the amount of data to be transmitted is reduced, and the transfer time can be saved.
[0003]
In this case, the image data includes color data and gray scale data. A compression method of a binary bitmap image obtained by binarizing these image data will be described below.
[0004]
Conventional binary bitmap image compression methods include MH (Modified Huffman), MR (Modified READ), MMR (Modified Modified READ), JBIG (Joint Bi-level Image Group), and the like. Widely used for FAX etc.
[0005]
Since these encoding methods are complicated in encoding processing, a “bitmap data compression method and compression apparatus” (Japanese Patent Laid-Open No. 8-51545) has been proposed that aims to increase the processing speed.
[0006]
In the image compression method disclosed in Japanese Patent Application Laid-Open No. 8-51545, first, an image is scanned in the horizontal direction in units of a predetermined number of lines, and continuous blank lines as between lines are encoded as vertical skips, and regions other than the blank lines are logically processed. Separate as lines. Next, the separated logical rows are scanned in the vertical direction in units of one column to skip blank areas that do not include black pixels, such as between characters, and areas that include black pixels other than the blank areas are separated.
[0007]
Then, an area consisting only of white pixels and an area consisting only of black pixels are encoded so as to be skipped by designating the number of columns, respectively, and an area where consecutive columns of the same pixel value are continuous is encoded by the value and the number of repetitions. . In other areas, the pixel data is output as code data together with the number of columns.
[0008]
[Problems to be solved by the invention]
The above-described bitmap data compression method has a problem in that the compression rate of an image in which a pattern of a certain size such as a dither pattern repeatedly appears decreases.
[0009]
FIG. 9 is a diagram for explaining a conventional dither pattern encoding method.
As shown in the figure, image scanning is performed, for example, in units of 8 lines. Since the blank line is a part where there is no image data, information indicating how many lines of 8 lines are skipped is encoded.
[0010]
A line including dither is recognized as a logical line, and encoding is performed every 8 lines. The lower part of the figure explains the encoding method of the dither pattern. In other words, conventionally, a bit pattern is encoded as it is, and for example, encoding of a logical line composed of 8 lines × N pixels encodes a partial area including dither as it is. Therefore, the code data is composed of a code word, a pixel width N, and pixel data (N bytes) of a partial area, and is larger than N bytes.
[0011]
Accordingly, there is a demand for an image compression method that can effectively compress an image including a dither pattern.
The subject of this invention is providing the encoding method which improves a compression rate by encoding the pattern which appears repeatedly repeatedly.
[0012]
[Means for Solving the Problems]
The image compression method of the present invention is a method for compressing image data, wherein an extraction step for extracting a row including a repetitive pattern from binary image data, a unit pattern of the repetitive pattern, and the unit A line including the repetitive pattern in the image data is encoded using a repetitive pattern detecting step for detecting a repetitive number of the pattern, and at least the data of the unit pattern and the repetitive number of the unit pattern in the repetitive pattern. And an encoding step.
[0013]
According to the present invention, it is possible to effectively encode image data in which a unit pattern repeatedly appears, such as a dither pattern, and improve the compression rate of the image data.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 is a flowchart showing the flow of the entire processing of the encoding method according to the embodiment of the present invention.
[0015]
First, the input image is scanned horizontally in a unit of a predetermined number of lines (step S101), continuous blank lines such as between lines are encoded as vertical skips, and regions other than the blank lines are separated as logical lines (step). S102).
[0016]
Next, the separated logical rows are scanned in the vertical direction in units of columns (step S103), and blank areas that do not include black pixels, such as between characters, are skipped, and areas that include black pixels other than the blank areas are separated. (Step S104).
[0017]
Further, based on the region separation result in step S104, repetitive patterns having the same width and the same pixel value that repeatedly appear repeatedly are separated (step S105).
[0018]
Then, encoding is performed using the regions separated in steps S102, S104, and S105 as elements (S106).
FIG. 2 is a diagram showing the first principle of the embodiment of the present invention.
[0019]
A pattern that repeatedly appears in succession in a logical line is detected, and the code data size is reduced by encoding using the length and pixel value of the repetition pattern that is the basis of repetition and the number of repetitions. As a result, the code data is composed of a code word, the number of repetitions K, the pixel width M, and the basic pattern (M bytes) of the repetition pattern, and the length of the code data of the dither pattern is almost N / K bytes. The length is approximately 1 / K compared to the length of the code data of the pattern.
[0020]
In the image generation process, the size of a pattern that is a basic element for repeating a dither pattern used when generating the image may be known. In this case, the detection of the repetitive pattern is limited to the known size, so that the detection process can be greatly reduced compared to the case where the detection is performed for all the sizes, and the detection can be performed at high speed.
[0021]
FIG. 3 is a diagram illustrating a second principle according to the embodiment of the present invention.
Instead of outputting the detected repetitive pattern as it is as code data, the repetitive pattern itself is compressed by a data compression method such as line length encoding, whereby the code data size can be further reduced.
[0022]
At this time, if there is no compression effect of the repetitive pattern, the repetitive pattern is output as code data without being compressed.
In the figure, if there is a dither pattern as shown in (A), the basic pattern of the repetition pattern having a repetition length of M pixels is repeated K times. Therefore, as shown in (B), a basic pattern of a repetitive pattern consisting of M pixels is taken out and used as a run-length code. In the run-length encoding method, as shown in (C), the black pixel is examined in the column in order from the column composed of the first eight rows of pixels of the basic pattern. First, since the first four columns in (B) are the same pattern, information that four pixel patterns for one column are arranged is generated. Next, two columns without black pixels are arranged, and in the same manner, for each column, information on the basic black pixel pattern and how many times the pattern continues in the column direction is generated, M′-byte run-length code data is generated. When run-length encoding is performed, a better compression effect is obtained than when it is not performed.
[0023]
When run-length encoding is not performed, the code data includes a code word, a run-length flag = 0 (indicating that run-length encoding is not performed), a pattern length M, a repetition count K, and pattern data. When run-length encoding is performed, code data having a code word, a run-length flag = 1 (indicating that run-length encoding is performed), a run-length code data length M ′ bytes, the number of repetitions K, and run-length code data is obtained. It is done.
[0024]
FIG. 4 is a flowchart showing the flow of processing according to the embodiment of the present invention.
The flowchart in the figure corresponds to the processing in steps S105 and S106 in the principle diagram shown in FIG. 1 and shows processing for encoding the separated logical rows. The blank area is encoded by a conventional method.
[0025]
The processing flow will be described below.
Step S201: Initialization processing such as allocation of a working memory area and initialization of internal parameters necessary before starting the encoding processing is performed. A parameter for counting the number of patterns registered in a pattern table described later is also initialized to zero here.
[0026]
Step S202: Detect the presence / absence of a pattern having the same size and pixel value that repeatedly appear repeatedly from the logical row.
Step S203: If a repetitive pattern is detected based on the detection result of S202, the process proceeds to S205. If a repetitive pattern is not detected, the process proceeds to S204.
[0027]
Step S204: Conventional encoding is performed.
Step S205: Encode the region of the detected repetitive pattern.
Step S206: It is determined whether or not encoding of all logical rows has been completed. If not completed, the process returns to S202, and if completed, the encoding process is terminated.
[0028]
Hereinafter, each process of the repetitive pattern detection process S202 and the repetitive pattern encoding S205 will be described in detail with reference to the drawings.
FIG. 5 is a process flow showing an embodiment of repetitive pattern detection, and corresponds to the process of S202 of FIG.
[0029]
The logical row is scanned in units of one column to check whether there is a continuous repetitive pattern unit pattern. If there is a repetitive pattern unit pattern, the length len and the number of repetitions num are obtained together with the repetitive pattern unit pattern. To do.
[0030]
Step S301: 0 is set to num indicating the number of repetitions of the unit pattern of the detected repetition pattern. Further, 1 is set to the variable a indicating the column where the detection of the unit pattern of the repetitive pattern is started, that is, the first column of the logical row.
[0031]
Step S302: len to len as the length of the repetitive pattern for starting detection Set LEN. MIN LEN may be assigned an appropriate value from a unit pattern of an expected repetitive pattern. For example, if it is known in advance that the width of the unit pattern of the repetitive pattern in the image is 4 pixels or more, MIN Let LEN = 4. By doing so, it is possible to avoid the process of detecting a non-existing repetitive pattern and shorten the processing time.
[0032]
Step S303: A value obtained by adding a unit pattern length len of a repetitive pattern to be detected to a variable b indicating a column number to be referred to is set.
Step S304: The len sequence image starting with a and the len sequence image starting with b are compared to determine whether they match. If they do not match, the process proceeds to step S305, and if they match, the process proceeds to step S310.
[0033]
Step S305: 1 is added to the length len of the unit pattern of the repetitive pattern to be detected in the length len column, and the length of the unit pattern of the repetitive pattern to be detected is set longer by one column.
[0034]
Step S306: the maximum length MAX detected by the length len of the unit pattern of the repetitive pattern Check whether LEN has been reached, or whether len has reached half of the number of remaining columns to which detection processing has not been applied. If either condition is met, the process returns to step S303, and both conditions If not, the process proceeds to step S307. Here, len reaches half of the number of remaining columns (WIDTH-a) to which the detection process is not applied. This means that the unit pattern of length len starting from the column position a to be detected is the remaining column. It means that no more than one can be included. Therefore, since it is not a repetitive pattern, the process proceeds to step S307 which is the next pattern detection process.
[0035]
Step S307: 1 is added to a indicating the repetitive pattern detection start sequence. That is, the column for starting the detection of the unit pattern of the repetitive pattern is advanced by one column.
Step S308: If the number of remaining columns to which the detection process is not applied is more than twice the shortest length of the unit pattern of the repetitive pattern to be detected, the process returns to step S302; otherwise, the process returns to step S309. Proceed with the process. In the case of proceeding to step S309, since the unit pattern to be detected is not included in the remaining number of columns more than one, it is not a repetitive pattern, so that the repetitive pattern detection process is terminated. It moves to the processing of.
[0036]
Step S309: Outputs that there is no repetitive pattern that appears continuously in the logical line, and ends the process.
By repeating the above processing until YES is obtained in step S304, the presence / absence of a repetitive pattern continuously appearing in the logical line and, if a repetitive pattern exists, the position and the unit pattern of the repetitive pattern are detected. In the event that a problem occurs, the following processing is further performed.
[0037]
Step S310: Since it has been detected that two repeating patterns are continuous by the processing so far, 2 is set to a variable num for counting the number of repetitions of the repeating pattern.
[0038]
Step S311: b is added to len so as to indicate the next column for detecting the presence / absence of the repetitive pattern, and advanced by the number of columns for one pattern.
Step S315: Next, whether or not the column b which is the detection processing start position of one pattern ahead is smaller than the column width WIDTH minus the pattern width len, that is, the length len starting from the column b It is determined whether the pattern fits in the remaining number of columns. If b is equal to or less than WIDTH-len, the process proceeds to step S312, and if b is greater than WIDTH-len, the process proceeds to step S314.
[0039]
Step S312: Similar to S304, the len sequence image starting from a and the len sequence image starting from b are compared to determine whether they match. If they do not match, the process proceeds to S314, and if they match, the process proceeds to S313.
[0040]
Step S313: 1 is added to the counter num indicating the number of repetitions of the detected repetitive pattern, and the process returns to S311. By repeating steps S311 to S313 until no continuous repetitive pattern is detected, the number of continuous repetitive patterns is detected.
[0041]
Step S314: The start position a of the detected repetitive pattern, the length len of the repetitive pattern, and the number of repetitions num are output as a result, and the process ends.
With the above processing, it is determined whether or not a repetitive pattern exists in a logical line. If a repetitive pattern exists, the start position, the length of the unit pattern of the repetitive pattern, and the number of repetitions are obtained.
[0042]
FIG. 6 is a diagram illustrating an embodiment of a bit structure of a code word.
FIG. 6A shows an example in which a repetitive pattern is directly output as a code without performing run-length encoding on the detected repetitive pattern, and FIG. 6B shows an example in which the repetitive pattern is output after being run-length encoded. In FIG. 6A, in order to indicate that the data is not run-length code data, the run-length encoding flag is set to 0, and the unit pattern of the repetitive pattern having the pixel width specified by the data length M indicating the length of the unit pattern Output data. In FIG. 6B, in order to show that run-length encoding is performed, the run-length encoding flag is set to 1 and a run-length code having a data length M ′ bytes indicating the length of the run-length encoded data is shown. Output data. In any case, the number of repetitions K indicating how many times the unit pattern of the repeated pattern appears repeatedly is set in the encoded data.
[0043]
FIG. 7 is a diagram illustrating an example of a pattern table.
When the above-mentioned pattern table encodes a dither pattern, for example, when a unit pattern that appears in a document of one page is registered along with its length, and the same unit pattern appears in one page, The registration number of the pattern table is stored in the pattern data or the run-length code data in the encoded data. The registration number is set sequentially from the unit pattern that appears first while encoding the image. The unit pattern that appears first is
[0044]
This pattern table is generated when an image is encoded, but is not included in the encoded data. When decoding an encoded image, unit patterns are sequentially read from the code data, and the pattern table is reproduced on the decoding side. Then, since the unit patterns are embedded in the code data in the order in which they came out at the time of encoding, even when decoding, if a pattern table is created while sequentially decoding the code data, The same thing as that obtained will be obtained. Therefore, when the registration number of the pattern table appears in the code data, the code data is correctly decoded by obtaining the unit pattern with reference to the registration number of the pattern table generated at the time of decoding. be able to.
[0045]
As described above, by using the pattern table, the compression rate can be increased as compared with the case where the bit data of the unit pattern is directly included in the code data. Furthermore, if it is used in combination with run-length encoding, the compression rate of image data can be further increased.
[0046]
FIG. 8 is a hardware environment diagram required for the information processing apparatus when the method of the present embodiment is realized by a program.
A basic program such as BIOS is stored in the
[0047]
The input /
[0048]
The communication interface 14 connects the
[0049]
(Appendix 1) A method of compressing image data,
An extraction step for extracting a row including a repetitive pattern from the binary image data;
A unit pattern of the repetitive pattern, and a repetitive pattern detection step of detecting the number of repetitions of the unit pattern;
An encoding step of encoding a row including the repetitive pattern in the image data using at least the data of the unit pattern and the number of repetitions of the unit pattern in the repetitive pattern;
An image compression method comprising:
[0050]
(Supplementary note 2) The image compression method according to
(Supplementary note 3) The image compression method according to
[0051]
(Supplementary note 4) The image compression method according to
(Supplementary note 5) In the encoding step, a table for registering the unit pattern that appears is generated, and if the same unit pattern appears more than once during the encoding process, The image compression method according to
[0052]
(Appendix 6) A method of compressing image data,
An extraction step for extracting a row including a repetitive pattern from the binary image data;
A unit pattern of the repetitive pattern, and a repetitive pattern detection step of detecting the number of repetitions of the unit pattern;
An encoding step of encoding a row including the repetitive pattern in the image data using at least the data of the unit pattern and the number of repetitions of the unit pattern in the repetitive pattern;
A program for causing an information processing apparatus to realize an image compression method.
[0053]
(Appendix 7) A method of compressing image data,
An extraction step for extracting a row including a repetitive pattern from the binary image data;
A unit pattern of the repetitive pattern, and a repetitive pattern detection step of detecting the number of repetitions of the unit pattern;
An encoding step of encoding a row including the repetitive pattern in the image data using at least the data of the unit pattern and the number of repetitions of the unit pattern in the repetitive pattern;
An information processing apparatus-readable recording medium storing a program for causing an information processing apparatus to realize an image compression method.
[0054]
(Appendix 8) A device for compressing image data,
Extraction means for extracting a row including a repetitive pattern in the binary image data, a unit pattern of the repetitive pattern, and a repetitive pattern detection means for detecting the number of repetitions of the unit pattern;
Encoding means for encoding a line including a repetitive pattern in image data using at least the data of the unit pattern and the number of repetitions of the unit pattern in the repetitive pattern;
An image compression apparatus comprising:
[0055]
【The invention's effect】
As described above, according to the image compression method of the present invention, a basic pattern that is the basis of repetition is detected and encoded from an image in which the same pattern appears repeatedly like a dither pattern. The compression ratio of an image including dither is improved. For this reason, it greatly contributes to the reduction of the storage capacity for storing data and the reduction of the data transfer time.
[Brief description of the drawings]
FIG. 1 is a flowchart showing an overall processing flow of an encoding method according to an embodiment of the present invention.
FIG. 2 is a diagram showing a first principle of an embodiment of the present invention.
FIG. 3 is a diagram illustrating a second principle according to an embodiment of the present invention.
FIG. 4 is a flowchart showing a flow of processing according to the embodiment of the present invention.
FIG. 5 is a process flow showing an embodiment of repetitive pattern detection.
FIG. 6 is a diagram showing an embodiment of a bit structure of a code word.
FIG. 7 is a diagram showing an example of a pattern table.
FIG. 8 is a hardware environment diagram required for the information processing apparatus when the method of the present embodiment is realized by a program.
FIG. 9 is a diagram illustrating a conventional dither pattern encoding method.
[Explanation of symbols]
10
12 ROM
13 RAM
14 Communication Interface 15 Network 16
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001388931A JP3866568B2 (en) | 2001-12-21 | 2001-12-21 | Image compression method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001388931A JP3866568B2 (en) | 2001-12-21 | 2001-12-21 | Image compression method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003189108A JP2003189108A (en) | 2003-07-04 |
JP3866568B2 true JP3866568B2 (en) | 2007-01-10 |
Family
ID=27597288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001388931A Expired - Fee Related JP3866568B2 (en) | 2001-12-21 | 2001-12-21 | Image compression method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3866568B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2004068844A1 (en) | 2003-01-30 | 2006-05-25 | 富士通株式会社 | Image compression method, image restoration method, program, and apparatus |
JP4008428B2 (en) | 2004-04-26 | 2007-11-14 | 富士通株式会社 | Image compression method |
JP2006203832A (en) * | 2004-12-22 | 2006-08-03 | Mitsubishi Electric Corp | Image transmission/reception system and method, and computer readable storage medium recording program for executing image transmission procedures and image reception and display procedures |
CN115335787A (en) | 2020-03-24 | 2022-11-11 | 发那科株式会社 | Control device, data transfer system of control device, and data transfer method |
CN114726480B (en) * | 2022-03-08 | 2023-07-25 | 科大讯飞股份有限公司 | Data encoding method and related device, electronic equipment and storage medium |
-
2001
- 2001-12-21 JP JP2001388931A patent/JP3866568B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003189108A (en) | 2003-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4689545B2 (en) | Data compression apparatus and data compression program | |
US6031938A (en) | Image encoding apparatus with selective Markov and predictive coding | |
US8213727B2 (en) | Image encoding apparatus and image decoding apparatus, and control method thereof | |
WO2004068844A1 (en) | Image compression method, image restoration method, program, and apparatus | |
US6912316B2 (en) | Data compression and reconstruction methods and apparatuses for hard copy device | |
CN102224727A (en) | Image processing apparatus, image processing method and program | |
JP3866568B2 (en) | Image compression method | |
JPH11168632A (en) | Binary expression processing method for dither image, method for uncompressing dither image expressed in compression binary representation and compression and uncompression system for dither image | |
JP4893643B2 (en) | Detection method and detection apparatus | |
US8504901B2 (en) | Apparatus, method, and computer program product for detecting embedded information | |
JP3901514B2 (en) | Image compression method, decompression method and program | |
JPH09121170A (en) | Method and device for performing compression and restorationof digital picture signal | |
US7969618B2 (en) | Image forming apparatus, image forming system, computer readable recording medium, and image forming method | |
JP3676078B2 (en) | Run-length encoding method and compression apparatus | |
JPH1117959A (en) | Run length coding method for binary image and recording medium storing run length coding program | |
JP4032236B2 (en) | Image processing apparatus, image processing method, and image processing program | |
JPH08223428A (en) | Image data compressor and image data expander | |
JP4001482B2 (en) | Image compression method, decompression method and program | |
JP2891818B2 (en) | Encoding device | |
JP3862590B2 (en) | Image processing apparatus and method, computer program, and computer-readable storage medium | |
JP3796235B2 (en) | Image compression and decompression method | |
JP2005252531A (en) | Device and program for compressing data | |
JP4743883B2 (en) | Image coding apparatus and control method thereof | |
JP2006279232A (en) | Image reading apparatus and image processing method | |
JP5552945B2 (en) | Method and program for performing compression encoding and decoding of bitmap font |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041202 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060718 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060906 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061003 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061005 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 3866568 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091013 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101013 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101013 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111013 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111013 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121013 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121013 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131013 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |