JP3904370B2 - データ圧縮処理方法及びその装置 - Google Patents
データ圧縮処理方法及びその装置 Download PDFInfo
- Publication number
- JP3904370B2 JP3904370B2 JP2000110760A JP2000110760A JP3904370B2 JP 3904370 B2 JP3904370 B2 JP 3904370B2 JP 2000110760 A JP2000110760 A JP 2000110760A JP 2000110760 A JP2000110760 A JP 2000110760A JP 3904370 B2 JP3904370 B2 JP 3904370B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- line
- pixel
- byte
- encoding
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
- H04N1/411—Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
- H04N1/413—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
- H04N1/417—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information using predictive or differential encoding
- H04N1/4175—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information using predictive or differential encoding involving the encoding of tone transitions with respect to tone transitions in a reference line
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明は、静止画像データのデータ圧縮処理方法及びその装置に関し、特に、MMR符号化方式による静止画像データの圧縮処理において、処理時間を短縮して高速化を図ったデータ圧縮処理方法及びその装置に関する。
【0002】
【従来の技術】
現在、ファクシミリで取り扱うような文書などの静止画像は、基本的には白か黒の2レベルで表現された画像であり、2値化された画像データで構成されている。
そして、ファクシミリで取り扱うような2値文書画像では、白画素あるいは黒画素がある程度連続して出現することが多い。そこで、通常、この大量の2値化された画像データについて、MMR符号化方式を用いて連続する白または黒が変化する部分を符号化することによってデータ圧縮処理を行っている。
【0003】
図1に、このMMR符号化方式のデータ圧縮処理装置の構成を示す。
データ圧縮処理装置1の入力側には、圧縮前データ記憶部2が、そして、出力側には、圧縮後データ記憶部3が接続されている。
圧縮処理装置1は、入力バッファ4、圧縮処理部5、出力バッファ6及び参照テーブル部7によって構成されている。
【0004】
圧縮前データ記憶部2には、例えば、文書をファクシミリ送信するために読み込まれた2値化画像データが格納される。また、圧縮後データ記憶部3には、圧縮処理装置1で符号化された画像データが逐次格納される。
圧縮処理装置1内での圧縮処理は、先ず、入力バッファ4に1mm当たり8ビットでサンプリングした2値化画像データを圧縮前バッファ読み込み、これを圧縮処理部5に送る。圧縮処理部5では、参照テーブル部7に格納されているMH符号表、MR符号表を参照して、読み込まれた画像データを符号化する。符号化されたデータは、出力バッファ6に送られ、さらに、圧縮後データ記憶部3に格納されていく。
【0005】
ここで、2値化画像データが符号化されて圧縮処理される概要について、図2(A)を参照して説明する。
図2(A)では、圧縮前データ記憶部2から入力バッファ4に読み込まれた2値化画像データのビット配列を模式的に表し、四角枠の一つが1ビットを示している。そして、細線枠が白画素を、また、太線枠が黒画素をそれぞれ表している。
【0006】
さらに、上段の行は、参照ラインを示し、下段の行が符号化ラインである。参照ラインの画像データは、直前に符号化され伝送済みの画像データの行が用いられ、符号化ラインの画像データは、圧縮前データ記憶部2から入力バッファ4に新たに読み込まれたものである。
MMR符号化方式では、画素の行について、配列する画素の白と黒の変化画素の位置を符号化し、参照ラインにおける画素の白と黒の変化画素との距離を符号化するものである。そこで、図2(A)のようであれば、下段の符号化ラインについては、行の変化点の画素であるa0 、a1 及びa2 について、そして、上段の参照ラインについては、行の変化点の画素であるb1 、b2 の位置を検出しなければならない。
【0007】
ここで、符号化ラインにおいて、a0 は、起点変化画素を、a1 は、a0 より右の最初の変化画素を、a2 は、a1 より右の最初の変化画素をそれぞれ表し、参照ラインにおいて、b1 は、a0 より右でa0 とは反対色の最初の変化画素を、b2 は、b1 より右の最初の変化画素をそれぞれ表している。
次に、図2(A)に示されるように、符号化ライン及び参照ライン上に、白及び黒の画素が配列されていたとき、画像データの符号化について説明する。
【0008】
符号化は、起点変化画素a0 と参照変化画素a1 、a2 、b1 及びb2 との位置関係により、パスモード、垂直モード、水平モードに分けて行われる。
パスモードとは、変化画素b2 を見て、これがa1 よりも左側にある場合を指している。このパスモードのときには、a0 の位置をb2 の真下に移す。図2(a)では、a0 の位置は、パスモードとして符号化が済み、b2 の真下に移されてa0 となった状態を示している。
【0009】
図2(A)に示されるb2 の位置は、a1 よりも右側にあるので、a1 についての符号化は、垂直モードであり、a1 とb1 の距離が3画素以内であるので、参照テーブル部7にあるMR符号テーブルから、距離1に対応する垂直モードの符号コード010を読み出して出力バッファ6に伝送する。そして、a0 をa1 の位置(a0 )まで移され、a1 がa2 の位置(a1 )に、b1 がb2 の位置(b1 )にそれぞれ移される。
【0010】
次に、(a0 )を起点として見ると、(a1 )についての符号化は、やはり垂直モードであり、MR符号テーブルから、距離0に対応する垂直モードの符号コード1を読み出して出力バッファ6に伝送する。また(a0 )を(a1 )の位置に移す。
パスモードでも垂直モードでもないとき、水平モードとして、a0 からa1 までの長さと、a1 からa2 までの長さを、それぞれ参照テーブル部7のMH符号テーブルから、それぞれの白または黒の長さに対応する符号を読み出して出力バッファ6に伝送する。そして、a0 はa2 の位置(a0 )に移される。
【0011】
このようにして、図2(A)に示される画素の位置の場合、その符号化は、符号コード・・・0101・・・のようになり、符号化ライン上の画素の位置が参照ライン上の画素の位置との距離に関係して符号化される。
【0012】
【発明が解決しようとする課題】
しかし、画像データが高解像度のものとなると、例えば、図2(B)に示されるように、起点変化画素a0 から変化画素a1 までの距離が長く、ビット数が多大なものとなる。
従来の方式では、a0 の位置から黒が検出されるまで1ビットずつシフトし、黒の位置をa1 としている。また、シフトした回数をa0 の位置からa1 の位置までの距離としている。
【0013】
この処理手順を、図2(B)で具体的に説明する。ここで、細線枠は白の、そして太線枠は黒の画素を表す。
先ず、a0 の位置のビットを取り出し、白か黒かを判断する。a0 は白と判断される。次に、参照する位置を1ビット右にシフトする。そこで、シフトした位置のビットを取り出し、白か黒かを判断する。
【0014】
このようにして、黒が検出されるまで、繰り返して処理を進める。そして、黒が検出された位置をa1 とする。図2(B)の場合、a1 の位置を求めるためには、シフトの回数は、20回を必要とする。
a1 の位置ばかりでなく、a2 、b1 、b2 の各位置についても1ビットずつシフトしながら処理を進めることになる。そのため、静止画像の高解像度化に伴って、シフト回数は増大し、符号化の処理時間を要する結果となっている。
【0015】
従って、本発明は、MMR方式による圧縮処理において、変化画素a1 、a2 、b1 、b2 の位置を求めるための繰り返し処理回数を減らし、高速化を図ることを目的とする。
【0016】
【課題を解決するための手段】
以上の課題を解決するため、本発明では、
画像から取得した画素データから1ライン毎のビット列を作成し、該ビット列に基づいて参照ラインと符号化ラインを設定して、前記参照ラインと前記符号化ラインの各々のビット列を作成し、該参照ラインと該符号化ラインのビット列の各々において同じ位置から順次、参照ライン側の1バイト及び符号化側の1バイトずつを取り出し、取り出された前記参照ライン側の1バイト及び前記符号化ライン側の1バイトにおけるビットパターンに従って、前記変化画素のビットより右にある該ビットと同じ色の連続したビット数を夫々検出し、前記参照ライン側の1バイト及び前記符号化ライン側の1バイトにおける前記変化画素からの画素列の長さを夫々求め、求められた各々の前記長さのビット数に1を加算した位置にある画素を前記変化画素と異なる色の変化画素とし、前記参照ラインのビット列及び前記符号化ラインのビット列上における該変化画素の位置を夫々求め、前記参照ラインのビット列及び前記符号化ラインのビット列上の前記各変化画素との間の距離を夫々演算し、該各距離と前記各変化画素の位置とに基づいて前記符号化ラインのビット列に対してMMR符号化を行うデータ圧縮処理方法とした。
【0017】
さらに、前記ビットパターンに基づいた同じ色の連続したビット数の検出には、1バイト中でxビット目から右に連続している白の数を示した第1テーブル、1バイト中でxビット目から右に連続している黒の数を示した第2テーブル、1バイト中で左端から連続する黒の数を示す第3テーブル、1バイト中で左端から連続する白の数を示す第4テーブル、そして、1バイト中でxビット目の白か黒かの色を示す第5テーブルが用いられることとした。
そして、前記参照ラインのビット列における前記画素列の長さを求めるとき、前記符号化ラインのビット列から取り出した1バイト中に存在する前記変化画素のビットの位置を、前記画素列の長さを求める前記参照ライン上の起点変化画素の位置とするデータ圧縮処理方法とした。
【0018】
また、データ圧縮処理装置では、入力された画像の画素データから作成された1ライン毎のビット列に基づいて参照ラインと符号化ラインを設定して、前記参照ラインと前記符号化ラインの各々のビット列を作成して保持する入力バッファと、1バイト中に含まれるビットにより表される全てのビットパターンについて、1バイト中で色の変化画素のビットより右にある該変化画素のビットと同じ色のビット数が記述されたテーブルを少なくとも格納している参照テーブル部と、前記参照ラインと前記符号化ラインのビット列の各々において同じ位置から順次、参照ライン側の1バイト及び符号化側の1バイトずつを取り出された前記参照ライン側の1バイト及び前記符号化ライン側の1バイトにおけるビットパターンに従って、前記変化画素のビットより右にある該ビットと同じ色の連続したビット数を夫々検出し、前記参照ライン側の1バイト及び前記符号化ライン側の1バイトにおける前記変化画素からの画素列の長さを夫々求める長さ演算部と、求められた各々の前記長さのビット数に1を加算した位置にある画素を前記変化画素と異なる色の変化画素とし、前記参照ラインのビット列及び前記符号化ラインのビット列上における該変化画素の位置を夫々求める画素位置演算部と、前記参照ラインのビット列及び前記符号化ラインのビット列上の前記各変化画素との間の距離を夫々演算し、該各距離と前記各変化画素の位置とに基づいて前記符号化ラインのビット列に対してMMR符号化を行って、前記画像データの圧縮処理を実行する圧縮処理部とを有し、前記画素データに基づいて参照ラインと符号化ラインを設定し、前記入力バッファから前記参照ラインと前記符号化ラインの各々について順次1バイトずつ読み込み、該バイト中のビットで表されるビットパターンに従って前記テーブルから検出できた同じ色のビット数に基づいて、変化画素の位置を求め、前記変化画素間の距離を演算してMMR符号化を行うデータ圧縮処理をするようにした。
【0019】
【発明の実施の形態】
本発明の実施形態について、図3乃至図16を参照して説明する。
従来のMMR符号化方式による圧縮処理では、変化画素a1 、a2 、b1 及びb2 の位置を検出するに当たって、1ビットずつ処理が行われ、符号化には、MR符号テーブル、MH符号テーブルを参照して符号化が行われていた。
【0020】
本実施形態においては、変化画素a1 、a2 、b1 及びb2 の位置を1ビットずつ検出処理を行うのではなく、白または黒からなる画素の行を1バイトずつに区切り、1バイト内の白と黒のパターンを検出し、用意されたビットパターンのテーブルから、同じ色の画素列の長さと変化画素の位置を求めるようにした。このテーブルを図1に示した圧縮処理装置1の参照テーブル部7に格納しておく。
【0021】
そこで、1バイトを8ビットとして、画素の行を区切ったとき、8画素による白または黒の配列パターンを得ることができるが、白または黒による配列パターンの全て、つまり256通りのパターンを予測できる。この1画素を1ビットとし、例えば、白画素を0、黒画素を1とすると、0と1による256通りのビットパターンを作成できる。
【0022】
ここで、MMR符号方式による圧縮処理において、画素の行を1バイトずつに区切って同じ色の画素列の長さと色の変化画素の位置を求めるためには、5種類のテーブルを用意する。
その5種類のテーブルとは、1バイト中でxビット目から右に連続している白の数を示したAテーブル、1バイト中でxビット目から右に連続している黒の数を示したBテーブル、1バイト中で左端から連続する黒の数を示すCテーブル、1バイト中で左端から連続する白の数を示すDテーブル、そして、1バイト中でxビット目の色(白か黒か)を示すEテーブルである。
【0023】
図3にAテーブルを示す。なお、図では、一部を切り欠いて示した。8ビットの0と1の全ての配列は256通りのパターンがあるので、そのビットパターンをテーブルの縦方向に配置してある。テーブルの横方向、つまりx方向には、xビット目より右に連続する白の数がビットパターンに対応して記述されている。実際のAテーブルとしては、ビットパターン自体に対応して白の数が記述されているわけではなく、ビットパターンが2進数で表されているので、これを10進数で表記すると、0から255となって、Aテーブル中のNO欄に示されるように、ビットパターンを256通りで示すことができる。
【0024】
Aテーブル中の白の数には、当該画素を含めないので、例えば、NO.0で見ると、0ビット目の画素から右に連続した白の数は7となり、3ビット目であれば、その数は4となる。また、NO.4を見ると、4ビット目の画素から右に続く白の画素が無いので、白の数は0となり、5ビット目の画素は黒であるが、当該画素から続く白の画素が一つ存在するので、その白の数は1となる。
【0025】
図4にBテーブルを示す。BテーブルもAテーブルと同様な手法により作成されているが、テーブルの横方向、つまりx方向には、xビット目より右に連続している黒の数がビットパターンに対応して記述されている。テーブルの見方は、Aテーブルと同様である。
図5にCテーブル及びDテーブルを示す。これらのテーブルは、各ビットパターンに対応して、1バイト中における左端のビットからの連続した同じ色の画素数を表している。これらのテーブルでは、当該画素も含めた数となっており、縦方向には、A、Bテーブル同様に、ビットパターンの256通りが配置されている。
【0026】
Cテーブルでは、左端のビットからの連続した色が白の場合を、そして、Dテーブルでは、黒の場合を示している。例えば、NO.0を見ると、8ビット全てが白の画素であるので、Cテーブルでは、黒の数は0であり、また、Dテーブルでは、白の数は8となる。さらに、NO.4を見ると、5ビット目に黒の画素が一つ存在するが、Cテーブルでは、左端から連続した黒でないので、黒の数は0であり、また、Dテーブルでは、左端から白が続いて存在するので、白の数は5となる。
【0027】
図6にEテーブルを示す。1バイト中でxビット目の色を示すものであり、縦方向には、他のテーブル同様に、256通りのビットパターンに従って、1バイト中のxビット目の色が各ビット毎に記述されている。この色は、ここでは、白と黒の画素の場合であるので、白の画素を0を、黒の画素を1として表している。
【0028】
例えば、NO.0を見ると、8ビット全てが白の画素であるので、各ビット全て0である。さらに、NO.4を見ると、5ビット目に黒の画素が一つ存在するので、5ビット目が黒でることを1で示し、他のビットは0と記述される。
以上のA乃至Eの5種類のテーブルを参照テーブル部7に格納しておき、圧縮処理部5において、変化画素a1 、a2 、b1 及びb2 の位置、または、同じ画素の長さを検出するために、各テーブルを当該画素が白か黒かで使い分けて参照する。
【0029】
ここで、具体的な例を、図2に示された符号化ラインにおける画素a1 の位置を求める場合ついて説明する。
図2(A)では、a0 が白の場合であり、1バイト中にa0 とa1 とがともに存在する場合である。
この1バイトを見ると、ビット配列は、00000111であることが分かるので、Aテーブル上で、このビットパターンをサーチする。このビットパターンは7を表しているので、Aテーブル上のNO.7を見ることになる。そして、a0 は、1ビット目であるから、NO.7の行で、1ビット目の欄を見ると、この1ビット目から右に連続する白の数は、3であることが読める。
【0030】
そうすると、a0 が1バイト中の先頭から2ビットであるので、先頭から白の画素が続く数は、2+3=5となる。変化画素、ここでは黒の画素はこれらの白の画素に続くとして、白の5ビットの次をa1 の位置とすることによって、図2(A)の符号化ラインにおけるa1 の位置を求めることができる。
なお、a0 の色が黒である場合には、Aテーブルでなく、Bテーブルを参照することになる。
【0031】
次に、図2(B)に示すように、a0 とa1 とが異なるバイトに跨って存在する場合において、a1 の位置を求める例を説明する。この場合、a0 は白であるとする。
先ず、最初の1バイト中のa0 から右に何ビット白が連続しているかを、Aテーブル上でサーチする。8ビット全て白であるから、NO.0と分かり、1ビット目の欄を見ると、6であることが読める。
【0032】
次に、次の1バイトについて、Dテーブル上でサーチする。ところが、このバイト中には、黒がなく、全て白であるので、NO.0と分かる。このバイトでは、このバイトの先頭のビットについて見なければならないから、0ビット目の欄を見ると、白の連続する数が8であることが読める。
そして、図2(B)の場合には、3番目の1バイト中で初めて黒が登場する。このビットパターンは00000111であるので、NO.7と分かり、Dテーブル上のNO.7により、このバイトの先頭から右に連続する白の数は、0ビット目の欄をみて、白の連続する数が5であることが読める。
【0033】
このようにして、白が連続した後に最初に黒が検出される位置まで、1バイトずつ繰り返しAテーブル及びDテーブルを参照してサーチを行う。黒が検出されると、最初の黒の位置をa1 とするので、a1 のアドレスは、a0 の2バイト先で先頭から6番目となる。a0 から連続した白の数は、6+8+5=19となり、さらに+1をして、a1 の位置は、a0 から右に20ビット目となる。
【0034】
なお、この場合もa0 を白としたが、a0 が黒の場合には、Bテーブル及びCテーブルを参照することになる。
以上のように、1バイト毎のビットパターンに従って各テーブルを参照することによって、変化画素の位置及び同じ色の連続する画素の長さを検出するようにしたので、従来の1ビット毎に検出を行う場合に比較して、大幅に処理時間の短縮を図ることができる。例えば、図2(B)の場合では、従来であれば、変化画素a1 の位置を求めるのに、20回処理を行わなければならなかったが、この実施形態によれば、6回の処理を行えばその位置を求めることができる。
【0035】
これまで、1バイト毎のビットパターンに従って各テーブルを参照することについて説明したが、次に、MMR符号化方式による圧縮処理において、符号化ラインの変化画素a0 、a1 及びa2 、そして参照ラインのb0 、b1 及びb2 に関して検出し、それぞれの距離を求める処理の詳細を、図7の具体的ビットパターンを参照しつつ、図8乃至図16に示したフローチャートを参照して説明する。
【0036】
図7は、図2(B)と同様であるが、符号化ラインの上に参照ラインを付加して示しており、白の画素は細線で示し、0を挿入した。黒の画素は太線で示し、1を挿入した。そして、図7に示したビットパターンはある途中の行に対する符号化処理を行っているとして示した。
ここで、図2(B)に示した従来のMMR符号化方式による場合には、参照ラインにある変化画素b1 の位置を求めるには、起点変化画素a0 から1ビットずつシフトして行っていたので、参照ライン上の起点変化画素b0 を必要としなかったが、この実施形態では、1バイト毎のビットパターンに従って各テーブルを参照することによって、各ライン上で各変化画素の位置を求めることから参照ライン上の起点画素b0 を必要とする。
【0037】
図8は、この実施形態によるMMR符号化方式による圧縮処理の全体的な概略を説明するフローチャートであり、このフローチャート中に示した各ステップの詳細については図9乃至図16を参照して後述する。
図7を参照しつつ圧縮処理の概要を説明する。
前の符号化が終了して、白の起点変化画素をa0 (2番ビット)と設定されたとする。このとき参照ライン上においても、起点画素を設定する必要があるので、参照ライン上で白の起点変化画素a0 の真上の画素を起点画素b0 (2番ビット)とする(ステップS1)。
【0038】
ここで、処理の高速化のために、a0 が白か黒かで処理を分けている(ステップS2)。
図7の場合には、白であり(Y)、次に、設定した参照ラインの起点画素b0 が白か黒かを判断する(ステップS3)。
ところで、参照ライン上の変化画素b1 が、起点変化画素a0 より右で、a0 とは反対色の最初の変化画素でなければならない。そうすると、b0 が白である場合には(N)、b0 に連続して続く白の数を求めることによって、a0 とは反対色の最初の変化画素b1 を簡単に検出できる(ステップS6)。
【0039】
しかし、b0 がa0 と反対色の黒であると(Y)、このb0 に続いて黒の画素がどこまで連続するかを検出しなければならない。そして、黒の最初の変化画素を検出するには、b0 に続く黒の画素列の次にくる白の画素(4番ビット)を検出しなければならない。そのため、参照ライン上でb0 の位置から最初の白の位置を求める必要がある(ステップS4)。
【0040】
次いで、b0 の位置から最初の白の位置が分かれば、この最初の白の位置から連続する白の数を求めれば、最初の黒の変化画素b1 (23番ビット)を検出できる(ステップS5)。
変化画素b1 の位置が検出できれば、黒の画素がb1 に連続して数を求めれば、変化画素b2 の位置(27番ビット)を求めることができる(ステップS7)。
【0041】
これまで、参照ライン上のb1 及びb2 の位置を求めることができたので、次に、符号化ライン上の変化画素a1 の位置を求める(ステップS8)。ここでは、a0 が白の画素であるので、a0 に連続した白の数を検出することにより、符号化ライン上の最初の変化画素a1 の位置を求めることができる。
ここで、変化画素a1 、b1 及びb2 の位置を求めることができたので、a0 からa1 の、a0 からb1 の、そして、a0 からb2 までの各距離を演算して求める。これらの位置関係と各距離に基づいて、水平モード、垂直モード及びパスモードの符号化処理を行う(ステップS9)。
【0042】
このステップS9では、さらに、変化画素a2 の位置(27番ビット)を求め、求めたa2 の位置を次の符号化のための起点変化画素a0 の位置とする。
これで、新たな起点変化画素a0 に基づき符号化処理を行い、順次符号化処理を行い、当該行について符号化が終了したならば、今符号化を終了したラインを次の符号化のための参照ラインに設定して、次のラインを符号化していく(ステップS10)。
【0043】
以上の処理フローは、図7に示すように、起点変化画素a0 が白の場合であったが、図8に示したステップS11からステップS17の処理フローは、起点変化画素a0 が黒の場合を示している。しかし、a0 が黒の場合の処理フローは、基本的にはa0 が白の場合の処理フローと同様であるので、説明を省略する。
ただ、a0 が黒の場合の処理フローでは、a0 が白の場合の処理フローでの色を反転したものであり、このとき、位置を求める際の参照テーブルが異なっている。
【0044】
図8を参照して、本実施形態によるMMR符号化方式の圧縮処理に関する全体フローについて説明したが、次に、図9乃至図16を参照して、図8における各ステップの詳細を説明する。
先ず、図8のステップS1の詳細フローを図9に示す。図9に示したステップS101乃至ステップS105は、符号化ラインの起点画素a0 及び参照ラインの起点画素b0 を初期化し設定する処理フローを示している。
【0045】
参照ラインを初期化する(ステップS101)。符号化ラインが1行目の場合には、参照ラインを設定できないので、1行目だけは、MH符号化方式で実行する。次の行の符号化で参照ラインを設定する(ステップS102)。
次いで、符号化ライン上の起点変化画素a0 の初期化を行う(ステップS103)。そして、このa0 の初期化は1行が終了するまで、順次繰り返して実行される(ステップS104)。
【0046】
符号化ライン上の起点変化画素a0 が決まると、参照ライン上でa0 の真上の画素(2番ビット)を参照ライン上の起点画素とし、b0 と設定する(ステップS105)。
ここで、行の一番先頭の処理の場合には、b0 の色を白と設定するが、その他の場合には、図6のEテーブルをサーチして、b0 の色が何であるかを求める。例えば、図7のようであれば、1バイトのビットパターンが11100000であるので、このパターンは、NO.224に該当し、そして、b0 は1ビット目であるので、b0 の色は、Eテーブルから黒であることが分かる。
【0047】
次に、参照ライン上で起点画素b0 が設定されると、a0 が白か黒かで処理が分かれる(ステップS2)。
図7に示した符号化ラインによれば、a0 の位置の画素は白であるので(Y)、ステップS3に進む。a0 の位置の画素は黒であれば(N)、ステップS11に進む。
【0048】
ステップS3では、起点画素b0 の色が白か黒かによって、参照ライン上で変化画素b1 の位置を求めるための処理手順が異なるので、2方向に分かれる。
ステップS105で設定されたb0 は、図7に示した参照ラインによれば、Eテーブルをサーチして、その画素の色が黒となっているので(Y)、ステップS4に進む。ステップS4の詳細が図10に示される。
【0049】
変化画素b1 は、参照ライン上にあって、a0 より右で、a0 とは反対の色の最初の変化画素である。そのため、図7のように、起点画素b0 の色が黒であると、b0 に連続する黒がどこまで続くのかを求める。参照ライン上のb0 画を含まれる1バイトのビットパターンから、b0 が存在するアドレスの中でb0 の位置から右にいくつ黒が連続しているかを図4のBテーブルを参照して求める(ステップS111)。
【0050】
このビットパターン11100000はNO.224であり、b0 が1ビット目であるので、Bテーブルから、黒の連続数が1と求まる。
ここで、この黒の連続状態がどこまで続くのかが判断される(ステップS112)。最初の1バイト中でb0 の位置とステップS111で求めた黒の連続数を加算して、2+1=3となる。この数が8以下であることは(N)、b0 を含む黒の連続状態が1バイト中に納まっており、続いて白の画素が存在することになる。そのため、連続黒数3に1を加算した位置(4番ビット)を白の変化画素の位置とする(ステップS115)。
【0051】
一方、ステップS112で、黒の連続数が8となった場合(Y)には、1バイト中の全てが黒であることを意味する。そのため、b0 が存在するアドレスから、1行終わるか白が見つかるまで、1バイトずつ順次サーチしていく(ステップS113)。
そこで、参照ラインが終わっても、白が検出されない場合、次の行の先頭を白にする。白が検出された場合、白が検出された1バイトのビットパターンに従って、図5のCテーブルから、そのバイトの先頭からの連続黒数を求め、b0 からの連続黒数を演算する。そして、この連続黒数に1を加算して、その数の位置を白の変化画素とする(ステップS114)。
【0052】
ここで、参照ラインにおけるb0 を含む連続黒の次に続く白の変化画素を求めることができたので、ステップS5に進む。ステップS5の詳細なフローが図11に示される。
上で求めた白の変化画素が次の行の先頭であるかが判断される(ステップS121)。この白の変化画素が次の行の先頭にある場合(Y)、この白の変化画素の位置をb1 とする(ステップS122)。
【0053】
一方、図7に示されるように、変化画素の白(4番ビット)が次の行の先頭でない場合(N)、次の白が存在するアドレスの中で、白の位置から右にいくつ白が連続しているかを求める(ステップS123)。ここで、ビットパターン11100000に基づき、図3のAテーブルを使用すると、NO.224の3ビット目をみると、この1バイト中で、4番ビットの白から右に連続白数が4と分かる。
【0054】
そこで、4番ビットの白から、白の画素がどこまで存在するのかを見なければならない。1バイト中で白の位置と連続白数を加算して8になるかを判断する(ステップS124)。
1バイト中で白の位置と連続白数が加算されて、その数が8より少ない場合(N)、1バイト中に再び黒の画素が存在することを意味する。この場合には、1バイト中で白の位置と連続白数を加算した次の位置を黒の変化画素b1 とする(ステップS127)。
【0055】
ステップS124で加算結果が8である場合(Y)、1バイトの最後のビットまで白(8番ビット)が存在することになるので、次の1バイト(9番ビットから16番ビットまで)について、黒が検出するサーチを行う(ステップS125)。白の存在するアドレスから1行終わるか黒(23番ビット)が検出されるまで、1バイトずつ順次サーチを行う。
【0056】
参照ラインが終わっても黒が検出されない場合、黒の変化画素b1 の位置を次の行の先頭にするが、図7のように、3番目の1バイト(17番ビットから24番ビットまで)で検出されたとすると、図5のDテーブル2を使用して、連続白数を求める。ビットパターン00000011に基づいて、NO.3を見ると、連続白数が6と求まる。そして、この連続白数6に1を加算して得た位置を、黒の変化画素b1 の位置(23番ビット)とする(ステップS126)。
【0057】
一方、ステップS3で、b0 が黒でなく白の場合には(N)、ステップS6に進む。ステップS6の詳細フローを図12に示す。
図12に示すフローの手順は、図10に示したステップS111乃至ステップS114において、黒を白に読み替えると、基本的に同様であるので、ここでは説明を省略する。ただ、参照するテーブルが、図10のフローでは、Bテーブル及びCテーブルであるのに対し、図12のフローでは、b0 が白であることから、Aテーブル及びDテーブルに変えて使用される。
【0058】
そして、図12に示したフローでは、b0 が白であるので、連続白数が求まれば、b0 より右で最初の黒の変化画素を直ぐに検出でき、この連続白数に1加算した位置を変化画素b1 とする(ステップS135)。また、図7のように、連続白数が1バイトの8を超える場合であっても、サーチしたバイト数分の8を含めた数に1を加算すれば、b1 の位置を求めることができる(ステップS134)。
【0059】
次に、ステップS5又はステップS6で、変化画素b1 の位置が求められると、ステップS7に進み、参照ライン上の変化画素b2 を求める。
ステップS7の詳細なフローを図13に示すが、図13に示されたフローは、図11に示されたフローと基本的には、同様のものであるので、詳細な説明を省略する。
【0060】
ただ、図13では、図11におけるフロー中の白の位置を、b1 の位置と読み替えればよい。また、図11では、Aテーブル及びDテーブルを使用したのに対し、図13では、ステップS143でBテーブルを、そしてステップS146でCテーブルを使用する点が、そして、図11のステップS122、ステップS126及びステップS127におけるb1 を、図13のステップS142、ステップS146及びステップS14においてはb2 となっている。
【0061】
以上で、参照ライン上の起点画素b0 、変化画素b1 及びb2 の位置が求められたので、次に、ステップS8に進み、符号化ライン上の変化画素a1 の位置を求めることになる。
ステップS8の詳細なフローを図14に示すが、図14に示されたフローは、図12に示されたb1 の位置を求めるフローと基本的には、同様のものであるので、ここでは詳細な説明を省略する。
【0062】
ただ、図14では、図12におけるフロー中のb0 をa0 に、b1 をa1 にそれぞれ読み替えればよい。また、図12では、Aテーブル及びDテーブルを使用しているが、図14でも、同様に、ステップS151でAテーブルを、そしてステップS154でDテーブルを使用している。
図14に示されたステップS8で、a0 の位置からa1 の位置が求められると、符号化に必要な変化画素の全ての位置が特定されたことになり、パスモード、垂直モード及び水平モードを判断できる。そこで、ステップS9に進む。
【0063】
ステップS9の詳細フローを図15に示す。
先ず、a0 からa1 まで、a0 からb1 まで、そしてa0 からb2 までの距離を求める(ステップS161)。図7であれば、a0 −a1 が20、a0 −b1 が21、a0 −b2 が25となる。
次に、a1 の左側にb2 が存在するかどうかが判断される(ステップS162)。
【0064】
ここで、b2 がa1 の左側にある場合(Y)、パスモードであると判断し、パスモード符号化処理を実行する(ステップS163)。
このとき、b2 の真下に存在する符号化ライン上の画素を次の起点画素とする(ステップS164)。
一方、a1 がb2 の左側にある場合(N)、a1 とb1 の相対距離を求め、その距離が3以下であるかどうかが判断される(ステップS165)。
【0065】
そこで、図7のように、a1 とb1 との相対距離は1である場合(Y)、垂直モード符号化処理を実行する(ステップS166)。図7の場合には、a1 がb1 の左側で、距離1に対応するコードを、MR符号テーブルから読み出し、コード010を出力する。
そして、a1 の位置について符号化が終了したので、a1 の位置を次の起点画素a0 とする(ステップS167)。
【0066】
ステップS165で、a1 とb1 との相対距離が3を超える場合(N)、a1 の位置より右にある最初の変化画素a2 の位置を求めなければならない。このa2 の位置を求めるには、図12に示した詳細フローと同様の手順で実行すればよい。ただ、図12におけるb0 をa1 に、b1 をa2 に置き替え必要があり、a1 が白か黒かで参照するテーブルが異なり、白であれば、Aテーブル及びDテーブルを、黒であれば、Bテーブル及びCテーブルを使用して、a2 の位置を求めることになる。
【0067】
a1 とb1 との相対距離が3を超える場合は水平モードとし、符号化処理を実行する(ステップS169)。MR符号テーブルから水平モードのコード001を読み出し、さらに、MH符号テーブルからその相対距離に対応するコードを読み出して付加する。
ここで、符号化が終了すると、a2 の位置を次の起点画素a0 とする(ステップS170)。
【0068】
以上で、変化画素a0 、a1 、a2 、b0 、b1 及びb2 のそれぞれの位置を求め、符号化を終了し、順次、次の起点画素a0 が設定されると、この起点画素a0 を含む1バイトのビット列を読み出し、ステップS10に進む。ステップS10の詳細フローを図16に示す。符号化ラインの1行全てについて符号化が終了するまで、図9のステップS104に戻る(ステップS171)。
【0069】
そして、1行の符号化が終了すると、今回の符号化ラインを次の参照ラインにし、次に符号化する次の行を符号化ラインにする(ステップS172)。
さらに、符号化すべき全ての行について、以上の処理を終了するまで、図9のステップS102に戻り、以上の処理を繰り返す(ステップS173)。全ての行について、圧縮処理が行われるとフローは終了となる。
【0070】
なお、これまで、MMR符号化方式による圧縮処理を説明したが、他の符号化方式、例えば、MH符号化方式による場合であっても、本実施形態で示したように、画素列を1バイト毎に区切り、このビットパターンに従ってA乃至Eテーブルを参照し、当該ビットに連続する該ビットと同じ色の連続数を求め、変化画素の位置及び距離を演算する圧縮処理を適用できる。
【0071】
以上に説明したように、本実施形態によれば、参照ライン上の起点画素b0 及び変化画素b1 、b2 の位置、符号化ライン上の変化画素a1 、a2 の位置を求めるために、各ラインのビット列を1バイトずつに区切って、そのビットパターンに対応した1バイト中に連続する色の数を求めるようにしたので、変化画素の位置を1ビットずつシフトして処理する手順に比較して、大幅に処理時間を短縮することができる。さらには、起点画素a0 の色によって処理フローを分けることができるので、一層の処理時間の短縮化を図れる。
【0072】
【発明の効果】
従って、本発明によれば、MMR符号化方式による圧縮処理において、符号化ラインと参照ラインでの変化画素の位置を1バイトずつで順次処理できるので、圧縮処理の高速化を図ることができる。
【図面の簡単な説明】
【図1】圧縮処理装置の概要を説明する図である。
【図2】MMR符号化方式による画素列の具体例を示す図である。
【図3】1バイト中でxビット目より右に連続している白の数を表すAテーブルを示す表である。
【図4】1バイト中でxビット目より右に連続している黒の数を表すBテーブルを示す表である。
【図5】1バイト中で左からの連続黒数を表すCテーブルと、連続白数を表すDテーブルを示す表である。
【図6】1バイト中でxビット目の色を表すEテーブルを示す表である。
【図7】本実施形態における画素列の具体例を示す図である。
【図8】本実施形態の圧縮処理における全体フローを示す図である。
【図9】図8のステップS1の詳細処理フローを示す図である。
【図10】図8のステップS4の詳細処理フローを示す図である。
【図11】図8のステップS5の詳細処理フローを示す図である。
【図12】図8のステップS6の詳細処理フローを示す図である。
【図13】図8のステップS7の詳細処理フローを示す図である。
【図14】図8のステップS8の詳細処理フローを示す図である。
【図15】図8のステップS9の詳細処理フローを示す図である。
【図16】図8のステップS10の詳細処理フローを示す図である。
【符号の説明】
1…圧縮処理装置
2…圧縮前データ記憶部
3…圧縮後データ記憶部
4…入力バッファ
5…圧縮処理部
6…出力バッファ
7…参照テーブル
a0 、a1 、a2 …符号化ライン上の変化画素
b0 、b1 、b2 …参照ライン上の変化画素
Claims (4)
- 画像から取得した画素データから1ライン毎のビット列を作成し、
前記ビット列に基づいて参照ラインと符号化ラインを設定して、前記参照ラインと前記符号化ラインの各々のビット列を作成し、
前記参照ラインと前記符号化ラインのビット列の各々において同じ位置から順次、参照ライン側の1バイト及び符号化側の1バイトずつを取り出し、
取り出された前記参照ライン側の1バイト及び前記符号化ライン側の1バイトにおけるビットパターンに従って、前記変化画素のビットより右にある該ビットと同じ色の連続したビット数を夫々検出し、前記参照ライン側の1バイト及び前記符号化ライン側の1バイトにおける前記変化画素からの画素列の長さを夫々求め、
求められた各々の前記長さのビット数に1を加算した位置にある画素を前記変化画素と異なる色の変化画素とし、前記参照ラインのビット列及び前記符号化ラインのビット列上における該変化画素の位置を夫々求め、
前記参照ラインのビット列及び前記符号化ラインのビット列上の前記各変化画素との間の距離を夫々演算し、該各距離と前記各変化画素の位置とに基づいて前記符号化ラインのビット列に対してMMR符号化を行うデータ圧縮処理方法。 - 前記ビットパターンに基づいた同じ色の連続したビット数の検出には、1バイト中でxビット目から右に連続している白の数を示した第1テーブル、1バイト中でxビット目から右に連続している黒の数を示した第2テーブル、1バイト中で左端から連続する黒の数を示す第3テーブル、1バイト中で左端から連続する白の数を示す第4テーブル、そして、1バイト中でxビット目の白か黒かの色を示す第5テーブルが用いられることを特徴とする請求項1に記載のデータ圧縮処理方法。
- 前記参照ラインのビット列における前記画素列の長さを求めるとき、前記符号化ラインのビット列から取り出した1バイト中に存在する前記変化画素のビットの位置を、前記画素列の長さを求める前記参照ライン上の起点変化画素の位置とする請求項1又は2に記載のデータ圧縮処理方法。
- 入力された画像の画素データから作成された1ライン毎のビット列に基づいて参照ラインと符号化ラインを設定して、前記参照ラインと前記符号化ラインの各々のビット列を作成して保持する入力バッファと、
1バイト中に含まれるビットにより表される全てのビットパターンについて、1バイト中で色の変化画素のビットより右にある該変化画素のビットと同じ色のビット数が記述されたテーブルを少なくとも格納している参照テーブル部と、
前記参照ラインと前記符号化ラインのビット列の各々において同じ位置から順次、参照ライン側の1バイト及び符号化側の1バイトずつを取り出された前記参照ライン側の1バイト及び前記符号化ライン側の1バイトにおけるビットパターンに従って、前記変化画素のビットより右にある該ビットと同じ色の連続したビット数を夫々検出し、前記参照ライン側の1バイト及び前記符号化ライン側の1バイトにおける前記変化画素からの画素列の長さを夫々求める長さ演算部と、
求められた各々の前記長さのビット数に1を加算した位置にある画素を前記変化画素と異なる色の変化画素とし、前記参照ラインのビット列及び前記符号化ラインのビット列上における該変化画素の位置を夫々求める画素位置演算部と、
前記参照ラインのビット列及び前記符号化ラインのビット列上の前記各変化画素との間の距離を夫々演算し、該各距離と前記各変化画素の位置とに基づいて前記符号化ラインのビット列に対してMMR符号化を行って、前記画像データの圧縮処理を実行する圧縮処理部とを有することを特徴とするデータ圧縮処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000110760A JP3904370B2 (ja) | 2000-04-12 | 2000-04-12 | データ圧縮処理方法及びその装置 |
US09/740,996 US6674912B2 (en) | 2000-04-12 | 2000-12-21 | Data compression processing method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000110760A JP3904370B2 (ja) | 2000-04-12 | 2000-04-12 | データ圧縮処理方法及びその装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001298624A JP2001298624A (ja) | 2001-10-26 |
JP3904370B2 true JP3904370B2 (ja) | 2007-04-11 |
Family
ID=18623220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000110760A Expired - Fee Related JP3904370B2 (ja) | 2000-04-12 | 2000-04-12 | データ圧縮処理方法及びその装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6674912B2 (ja) |
JP (1) | JP3904370B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020186403A1 (en) * | 2001-06-06 | 2002-12-12 | Toshiba Tec Kabushiki Kaisha | Image forming apparatus |
JP3854849B2 (ja) | 2001-11-07 | 2006-12-06 | 富士通株式会社 | データ伸長処理方法およびデータ伸長処理装置 |
US8457432B2 (en) * | 2008-06-25 | 2013-06-04 | Microsoft Corporation | High information density of reduced-size images of web pages |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5958971A (ja) | 1982-09-29 | 1984-04-04 | Hitachi Ltd | 符号化回路 |
JPS61224731A (ja) | 1985-03-29 | 1986-10-06 | Fujitsu Ltd | 変化点検出方式 |
KR930006750B1 (ko) * | 1989-06-29 | 1993-07-23 | 삼성전자 주식회사 | 화상데이터 부호화장치 |
IL91221A (en) * | 1989-08-04 | 1995-03-30 | Ibm Israel | Binary text compression method |
JPH05260322A (ja) | 1992-03-13 | 1993-10-08 | Hitachi Software Eng Co Ltd | 2値画像圧縮方式 |
JP2595900B2 (ja) * | 1994-05-24 | 1997-04-02 | 日本電気株式会社 | 2値画像データの変化点座標検出装置 |
-
2000
- 2000-04-12 JP JP2000110760A patent/JP3904370B2/ja not_active Expired - Fee Related
- 2000-12-21 US US09/740,996 patent/US6674912B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2001298624A (ja) | 2001-10-26 |
US20010031080A1 (en) | 2001-10-18 |
US6674912B2 (en) | 2004-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1318665A2 (en) | Image processing apparatus and method, program, and storage medium | |
JP4152789B2 (ja) | クラスタリングシステムおよびクラスタリング方法 | |
US7689048B2 (en) | Image encoding apparatus, method, and computer-readable storage medium for encoding a pixel value | |
JPH06334870A (ja) | 符号化装置 | |
KR20080004411A (ko) | 데이터 압축 장치 및 데이터 압축 프로그램 기억 매체 | |
JP3904370B2 (ja) | データ圧縮処理方法及びその装置 | |
JPH10198809A (ja) | 輪郭線トレーシング方法 | |
US5774596A (en) | Adaptive contour coding method for encoding a contour image in a video signal | |
KR0139251B1 (ko) | 부호화방식및부호화복호방법 | |
JP2007088687A (ja) | 画像処理装置、画像処理方法及びそのプログラム | |
US6021230A (en) | Interpolation method for binary image | |
KR102161746B1 (ko) | 반복 길이 부호화된 스트림을 업데이트하기 위한 방법 및 시스템 | |
US20010012398A1 (en) | Multi-color image encoding apparatus and method, multi-color image decoding apparatus and method | |
KR101029479B1 (ko) | 벡터 그래픽 데이터 처리 방법 및 묘화 장치 | |
US20050047502A1 (en) | Method and apparatus for the efficient representation of interpolated video frames for motion-compensated coding | |
JP4164257B2 (ja) | 画像処理装置、画像処理方法、プログラム、及び記憶媒体 | |
US20080025620A1 (en) | Data compression apparatus and data compressing program storage medium | |
JP3854849B2 (ja) | データ伸長処理方法およびデータ伸長処理装置 | |
CN117440154B (zh) | 一种考虑浮点数位拆分的深度图序列压缩方法 | |
JPH1013842A (ja) | マルコフモデル画像符号化装置 | |
JP3652754B2 (ja) | 減色画像処理装置 | |
US5537616A (en) | Image compressing apparatus | |
JP2005277932A (ja) | データ圧縮装置およびデータ圧縮プログラム | |
US6219445B1 (en) | Multi-color image encoding and/or decoding apparatus containing color order table and the method thereof | |
SKARBEK et al. | Compression of dithered binary images using Hilbert scan |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060117 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060124 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060327 |
|
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: 20060912 |
|
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: 20061212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070109 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110119 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110119 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120119 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130119 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130119 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140119 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |