JP2007143082A - 画像データの圧縮方法および装置 - Google Patents

画像データの圧縮方法および装置 Download PDF

Info

Publication number
JP2007143082A
JP2007143082A JP2005337825A JP2005337825A JP2007143082A JP 2007143082 A JP2007143082 A JP 2007143082A JP 2005337825 A JP2005337825 A JP 2005337825A JP 2005337825 A JP2005337825 A JP 2005337825A JP 2007143082 A JP2007143082 A JP 2007143082A
Authority
JP
Japan
Prior art keywords
block
image data
data
representative value
pattern
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.)
Pending
Application number
JP2005337825A
Other languages
English (en)
Inventor
Toshitsugu Yamamoto
敏嗣 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konica Minolta Business Technologies Inc
Original Assignee
Konica Minolta Business Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Konica Minolta Business Technologies Inc filed Critical Konica Minolta Business Technologies Inc
Priority to JP2005337825A priority Critical patent/JP2007143082A/ja
Priority to US11/601,899 priority patent/US7844120B2/en
Publication of JP2007143082A publication Critical patent/JP2007143082A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/4105Bandwidth or redundancy reduction for halftone screened pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • H04N1/413Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
    • H04N1/415Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information in which the picture-elements are subdivided or grouped into fixed one-dimensional or two-dimensional blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】高速でかつ高い圧縮率で圧縮すること
【解決手段】ディザパターンを用いて擬似階調化された画像データを圧縮する方法であって、画像データを所定のブロックごとに区画し、各ブロック内における画像データの配列パターンを擬似階調化に用いられたディザパターンと代表値とを用いて再現可能である場合に、そのような代表値を算出し、再現可能でない場合に、当該ブロックの画像データの配列パターンと一致する配列パターンがそれより前にあるかないかをチェックし、それより前にある場合に、一致する位置を示す位置データを算出し、それより前にない場合に、当該ブロックの画像データの配列パターンをブロックデータとして取得し、算出されまたは取得された代表値、位置データ、またはブロックデータを用いて圧縮データを作成する。
【選択図】図6

Description

本発明は、画像データを圧縮する方法および装置に関し、特にディザパターンを用いて擬似階調化された画像データを圧縮する方法および装置に関する。
一般に、コンピュータとプリンタなどから構成されるプリントシステムが用いられている。このようなプリントシステムにおいては、プリントすべき画像データに対して、擬似階調化などの画像処理をコンピュータ側で行い、プリンタ側ではコンピュータから送信される画像データに対して特別な処理を行うことなく、そのまま出力して用紙にプリントするという方式がある。
従来より、この方式に使用されるプリンタとしてラスタプリンタが知られている。ラスタプリンタは、プリンタ側で特別な画像処理を行わないため、小規模なハードウェアを用いて安価に実現できる。しかし、その反面、そのまま用紙にプリント可能な画像データをプリンタに送信するため、送信するデータ量が大きくなってしまうという欠点がある。また、画像データに文字データを含む場合に、文字を鮮明にプリントするために解像度を上げなければならず、その結果、プリンタに送信するデータ量がさらに大きくなってしまう。そのため、コンピュータからプリンタへの画像データの送信に多くの時間を要することとなる。
この問題を解消するために、コンピュータ側において画像データを圧縮する必要がある。しかし、圧縮のための処理が複雑であった場合には、圧縮処理自体に時間を要してしまい、プリンタ側においても展開処理に時間を要したりそのためのハードウェアの規模が大きくなって高価となる。
したがって、安価なプリンタの使用を可能とし、全体として処理を高速に行えるプリントシステムを実現するために、圧縮時の処理が軽く、小規模なハードウェアで展開でき、かつ高い圧縮率を実現できる圧縮技術が望まれる。
ところで、多階調の画像データをプリンタでプリントするには、多くの場合、その画像データを擬似階調化しなければならない。擬似階調化の方法として、ディザ法が従来からよく知られている。ディザ法では、ディザパターンを用い、ディザパターンの各しきい値と画像データの各画素の値とを比較して2値化する。
ディザパターンに着目した圧縮技術として、特許文献1に開示された方法がある。特許文献1に示された方法によると、2値化された画像データを所定の大きさのブロックに分割する。任意の画像ブロックに含まれるドットの個数に対応する基準パターンと当該画像ブロックとの比較を行い、画像ブロックと基準パターンとが一致した場合は基準パターンを示す符号を割当て、そうでない場合は比較結果を符号化する。
また、2値化された画像データのための圧縮技術として、ITU(国際電気通信連合)−T勧告により採用が認められたJBIG方式が知られている。
また、ディザパターンにより擬似階調化された画像データを圧縮する方法が特許文献2に開示されている。特許文献2に記載の方法によると、各画素についての画素値がしきい値と比較され、これによって各画素ごとにレンジが求められる。
特開平6−152986 USP6201614
しかし、上に述べた特許文献1の方法では、指定した画像ブロックと基準パターンが一致した場合に、基準パターンを符号化するため、基準パターンの符号の分だけ送信するデータ量が増大してしまう。
これに対して、JBIG方式では、圧縮処理が比較的軽く、コンピュータ上でも高速に圧縮処理を行うことができる。しかし、JBIG方式によると、LZS方式またはLZW方式などの他の方式に比べて圧縮率があまり高くなく、特に中間調のデータが増えた場合に圧縮率が低下する。
また、特許文献2の方法では、各画素ごとに値を決定するので、それだけでは情報量が減らない。したがって、情報量を減らすためには別途圧縮する手段が必要である。
これらに対して、ディザパターンを用いて擬似階調化された画像データを高速でかつ高い圧縮率で圧縮することができ、しかも小規模なハードウェアで高速で復元することができる圧縮方法および装置を本出願人は先に提案した。
本発明は、先に提案した圧縮方法および装置に対して、さらに高速でかつ高い圧縮率で圧縮することを可能にすることを目的とする。
本発明に係る方法は、画像データを圧縮する方法であって、前記画像データを所定のブロックごとに区画し、各ブロック内における濃度に関する代表値を用いて当該ブロックの画像データを再現可能である場合にそのような代表値を算出し、再現可能でない場合に、当該ブロックの画像データの配列パターンと一致する配列パターンがそれより前にあるかないかをチェックし、それより前にある場合に、一致する位置を示す位置データを算出し、それより前にない場合に、当該ブロックの画像データの配列パターンをブロックデータとして取得し、算出されまたは取得された代表値、位置データ、またはブロックデータを用いて圧縮データを作成する。
また、ディザパターンを用いて擬似階調化された画像データを圧縮する。この場合には、各ブロック内における画像データの配列パターンを擬似階調化に用いられたディザパターンと代表値とを用いて再現可能である場合に、そのような代表値を算出する。
前記代表値を算出するに際して、前記ブロックのうちの1つの領域である注目ブロックについて、当該注目ブロックの代表値および当該注目ブロックに隣接する1つまたは複数のブロックの代表値を用い予め定められた補間ルールにしたがって当該注目ブロックにおける各画素の濃度を補間して求めさらに前記ディザパターンを用いて擬似階調化を行った場合に当該注目ブロックにおける前記擬似階調画像が再現されるような、そのような代表値を求めて当該注目ブロックの代表値として決定する。
好ましくは、前記ブロックは、前記画像データをライン方向およびその直角方向である副走査方向に区画したものであり且つ複数のラインにわたっており、濃度に関する情報であって前記代表値に代わるべきまたは前記代表値に追加すべき情報がある場合に、それを付加情報として、前記各ブロックにおける1つのラインごとまたは前記ブロックのライン数よりも少ない複数のラインごとに求め、前記付加情報をも用いて圧縮データを生成する。
本発明に係る装置は、前記画像データを区画して複数のブロックを画定する手段と、前記ブロック内における画像データの配列パターンを擬似階調化に用いられたディザパターンと代表値とを用いて再現可能である場合にそのような代表値を算出する手段と、前記ブロックの画像データの配列パターンと一致する配列パターンがそれより前にある場合にその一致する位置を示す位置データを算出する手段と、を有し、各ブロックについて、前記代表値、前記位置データ、または当該ブロックの画像データの配列パターン、のうちから少なくとも1つを選択して圧縮データを作成する。
好ましくは、前記代表値、前記位置データ、または前記ブロックの画像データの配列パターンをエントロピー符号化することによって圧縮データを作成する。
また、前記代表値と前記位置データとのうち、符号化したときにより短い符号となる方を選択して圧縮データを作成する。
また、前記代表値と前記位置データとのうち、早く算出された方を選択して圧縮データを作成する。
また、本発明に係る装置は、前記画像データを区画して複数のブロックを画定する手段と、前記ブロックの画像データの配列パターンを予め設定された複数のパターンと比較して一致するパターンを探す手段と、前記ブロックの画像データの配列パターンと一致する配列パターンがそれより前にある場合にその一致する位置を示す位置データを算出する手段と、を有し、各ブロックについて、前記パターン、前記位置データ、または当該ブロックの画像データの配列パターン、のうちから少なくとも1つを選択して圧縮データを作成する。
好ましくは、前記ブロックを更に細かい小ブロックに再区画する手段を有し、前記ブロックにおいて一致する前記パターンがない場合に、前記小ブロックに対して一致する前記パターンを探す。
また、一致する前記パターンがない場合に、前記ブロックの画像データの配列パターンを選択する。
また、前記パターン、前記位置データ、または当該ブロックの画像データの配列パターンをエントロピー符号化することによって圧縮データを作成する。
また、前記パターンと前記位置データとのうち、符号化したときにより短い符号となる方を選択して圧縮データを作成する。
また、前記パターンと前記位置データとのうち、早く算出された方を選択して圧縮データを作成する。
本発明によると、先に提案した圧縮方法および装置に対して、さらに高速でかつ高い圧縮率で圧縮することが可能となる。
〔第1の実施形態〕
〔システム全体の構成〕
図1は本発明に係る画像データの圧縮方法を適用したプリントシステム1の全体構成を示す図、図2はプリントシステム1における画像データの概略の流れを示すフローチャートである。
なお、以下において、「画像データ」「階調画像データ」「擬似階調画像データ」などについて、「データ」を省略し、「画像」「階調画像」「擬似階調画像」などと記載することがある。
図1において、プリントシステム1は、コンピュータ本体11、ディスプレイ12、プリンタ13、キーボード14、およびマウス15などから構成される。
コンピュータ本体11は、外部から入力された画像データまたは内部で生成した画像データ(原画像データ)などを圧縮してプリンタ13に転送する。
本実施形態において、画像データFDは、2値または多値の擬似階調画像データである。画像データFDが、例えばRGBまたはCMY各色256階調の階調画像データのように、擬似階調画像データでない場合には、後に述べるようにディザ法によりディザパターンを用いて擬似階調化される。
プリンタ13は、本実施形態では電子写真方式のプリントエンジンを搭載したレーザプリンタである。つまり、レーザダイオードの発するレーザ光をポリゴンミラーなどによって偏向し、感光体ドラムなどの表面を走査して静電潜像を形成する。レーザダイオードのレーザ光は強度変調される。強度変調を行うために、復元された画像データが用いられる。つまり、圧縮データを復元して得られた画像データが、レーザ光による感光体ドラムの走査と同期して、その画像データを記録したバッファメモリから画素順に読み出され、強度データとしてレーザダイオードの駆動回路であるレーザ駆動部に出力される。
図2に示すように、コンピュータ本体11において、対象となる画像データFDについて(#11)、圧縮を行って圧縮データを生成し(#12)、圧縮データをプリンタ13に転送する(#13)。プリンタ13において、圧縮データを展開して用紙などに印刷する(#14)。
ここで、画像データFDが階調画像データである場合に、上に述べたように、圧縮の前に擬似階調化が行われる。つまり、ステップ#11において、擬似階調化された画像データFDを準備する。
なお、コンピュータ本体11として、パーソナルコンピュータ、ワークステーション、その他の種々のコンピュータが用いられ、プリンタ13として、ラスタプリンタ、GDIプリンタ、その他の種々のプリンタが用いられる。
図3はコンピュータ本体11の機能的な構成を示すブロック図、図4は圧縮データ作成部100の機能的な構成の例を示すブロック図、図5はプリンタ13の機能的な構成を示すブロック図である。
図3において、コンピュータ本体11は、画像データベース150、ディザパターン記憶部160、擬似階調化部170、および圧縮データ作成部100などから構成される。
画像データベース150は、多数の画像データ(原画像データ)FD1、FD2、…FDnを保持する。画像データFD1〜nの全部または一部を「画像データFD」と記載することがある。なお、画像データFDの多くはカラー画像であり、その場合に、1つの画像データFDが、C(シアン)、M(マジェンタ)、Y(イエロー)、K(ブラック)の各色の画像データによって構成される。画像データFDは、例えば、スキャナ、デジタルカメラ、その他外部から入力され、または内部の編集により生成され、場合によって擬似階調化されることによって得られる。
ディザパターン記憶部160は、複数種類のディザパターンDPを保持する。ディザパターンDPは、C、M、Y、Kの各色について、文字領域用、画像領域用、およびチャート領域用などがそれぞれ設けられている。
擬似階調化部170は、必要に応じて、ディザパターンDPを用いて画像データFDを2値または多値の擬似階調画像データに変換する。擬似階調化された画像データを「画像データFDh」または「擬似階調画像データFDh」と記載することがある。擬似階調化は、ハーフトーン化と呼称されることもある。擬似階調化された画像は、擬似階調画像、ハーフトーン画像などという。擬似階調化として、2値化または4値化などの多値化が行われる。
圧縮データ作成部100は、圧縮処理を行って圧縮データD2を生成する。すなわち、図4に示すように、圧縮データ作成部100には、ブロック区画部101、代表値算出部102、過去データ検索部103、ブロックデータ抽出部104、および符号化部105などが設けられる。
ブロック区画部101は、画像データFDを複数のブロックに区画しまたは分割する。後述する代表値が算出できない場合に、そのブロックをさらに複数の小ブロックに区画することもある。
代表値算出部102は、各ブロック内における濃度に関する代表値を用いて当該ブロックの画像データを再現可能である場合に、そのような代表値APを算出する。本実施形態では、各ブロック内における画像データの配列パターンを擬似階調化に用いられたディザパターンDPと代表値とを用いて再現可能である場合に、そのような代表値APを算出する。
過去データ検索部103は、当該ブロックの画像データの配列パターンと一致する配列パターンがそれより前にあるかないかをチェックし、それより前にある場合に、その一致する位置を示す位置データTDを算出する。
ブロックデータ抽出部104は、当該ブロックの画像データの配列パターンをブロックデータBDとして抽出し、取得する。
符号化部105は、代表値AP、位置データTD、またはブロックデータBDを含んだデータを符号化し、圧縮データD2を生成する。符号化部105には、符号化に必要なデコード表が記憶されている。また、そのデコード表をプリンタ13に予め送信しておいてもよい。また、各ブロックにおける各画素の濃度値を補間して求めるための補間ルールなどについても、必要に応じてプリンタ13に予め送信する。
なお、符号化を行う場合に、例えば代表値APをそのまま符号化してもよいが、これに代えて、例えば、隣り合うブロック間の代表値APの差分情報を求め、求めた差分情報を符号化してもよい。これによって圧縮率を向上させることができる。
図5において、プリンタ13は、ディザパターン記憶部360、データ復元部300、デコード表記憶部370、レーザ駆動部390、およびプリントエンジン400などから構成される。
ディザパターン記憶部360は、コンピュータ本体11のディザパターン記憶部160に記憶されているディザパターンDPと同様のものを保持する。ディザパターンDPは、コンピュータ本体11から予め送信しておいてもよく、同じディザパターンDPを適当なメモリに格納したものを予めプリンタ13に内蔵しておいてもよい。
デコード表記憶部370は、コンピュータ本体11から送信されたデコード表DCを格納する。
データ復元部300は、コンピュータ本体11から圧縮データD2を受信し、受信した圧縮データD2を復元し、元の画像データFDまたは擬似階調画像データFDhと同じドットパターンを再現する。復元処理のために、ワークメモリ301およびバッファメモリ302などが設けられている。復元の際に、必要に応じて、ディザパターンDPまたはデコード表DCなどが参照される。なお、データ復元部300には、圧縮データ作成部100で行われる圧縮処理に対応した復元処理を行うための処理手順やルールが、それを実行するプログラムやハード的な処理回路として設けられている。
レーザ駆動部390は、バッファメモリ302から読み出された画像データに基づいて、レーザダイオードLDを強度変調して発光させる。プリントエンジン400は、上に述べたように電子写真方式によって用紙に印刷を行う。
次に、ステップ#12における圧縮処理について説明する。
図6は圧縮処理の概略の流れを示すフローチャート、図7は圧縮処理の他の例の概略の流れを示すフローチャートである。
図6において、まず、画像データFDをブロックに区画する(#21)。つまり、画像データFDを、主走査方向であるライン方向、および副走査方向に区画し、マトリックス状に配置された多数のブロックを画定する。各ブロックは、主走査方向には複数のラインにわたるサイズを有する。なお、画像データFDをブロックに区画するに当たっては、画像データFDの全体を前もって区画する必要は必ずしもなく、例えば処理を行うブロックについての画像データをその時点で切り出すことでもよい。つまり、区画は仮想的なものでもよい。
そして、各ブロックにおける濃度に関する代表値APを算出し(#22)、算出された場合には(#22でイエス)、その代表値APを保持する(#23)。この「代表値AP」は、各ブロック内の濃度値を代表するパラメータ(領域パラメータ)である。代表値APによって、そのブロック内の各画素の濃度値を相当な正確さで再現することができる。このような代表値APを求める方法として、後述するように種々の方法を用いることができる。
代表値APが算出されなかった場合には(#22でノー)、そのブロック内の画像データFDの配列パターンと一致する配列パターンがそれより前にあるかないかをチェックする(#24)。それより前にある場合に(#24でイエス)、一致する位置を示す位置データTDを算出して保持する(#25)。
ブロック内の画像データFDの配列パターンと一致する配列パターンがそれより前にない場合に(#24でノー)、そのブロックの画像データFDの配列パターンをブロックデータBDとして取得する(#26)。
算出されまたは取得された代表値AP、位置データTD、またはブロックデータBDのいずれかを用いて圧縮データを作成する(#27)。その際に、上に述べたように、代表値APについてはその差分情報を用いて圧縮データを作成してもよい。
図7において、画像データFDをブロックに区画する(#31)。各ブロックにおいて、代表値APの算出(#32)、および画像データFDの配列パターンと一致する配列パターンがそれより前にあるかないかのチェック(#34)を、並行して行う。そして、代表値APまたは位置データTDが得られた場合に、それを保持する(#33、35)。得られた代表値AP、位置データTD、およびブロックデータBDの中から、1つを選択し(#37)、選択したデータを用いて圧縮データを作成する(#38)。
ステップ#37での選択の際に、例えば、データ量の少ない方を選択する。通常、代表値APの方がデータ量が少ないので、代表値APが選択される。また、時間的に早く得られたものを選択してもよい。例えば、当該ブロックに近い位置に一致する配列パターンがあったために位置データTDを早く得られた場合に、その位置データTDを選択する。
このように、並行して処理を行うことは、代表値APまたは位置データTDをハード回路によって算出する場合により効果的である。つまり、ハード回路によって算出する場合には、処理が極めて高速に行え且つシステムの負担にもならないので、全体として効率がよくなる。
このように、代表値APが算出できない場合に、それに代えて位置データTDを算出することによって、または代表値APの算出と位置データTDの算出とを並行して行って選択することによって、画像データFDをさらに高速でかつ高い圧縮率で圧縮することができる。
以下、さらに詳しく説明する。
〔ブロックの区画〕
図8は画像データFDをブロックに区画する方法の例を示す図である。
図8において、1ページ分の画像データFDの例が示されており、この画像データFDは、マトリックス状に配置された多数のブロックTLに区画される。図8に示す例では、画像データFDは、ライン方向に沿って5つのブロックTLに区画されている。ライン上に並ぶ5つのブロックTL1〜5の領域の全体を「バンドBD」と呼称する。1つのブロックTLは、縦4画素、横6画素の領域からなる。つまり、各ブロックTLは、主走査方向に4ライン分のサイズを有する。
なお、ブロックTLのサイズは種々変更可能である。1つのブロックTLを、例えば、96個(6×16個)の画素、または48個(6×8個)の画素からなる矩形の領域としてもよい。
各ブロックTLに対して、さらに細かく区画して複数の小ブロックとすることがある。その場合に、各小ブロックは、例えば、そのライン数がブロックTLのライン数と同じになるように、つまりライン方向に沿って区画される。小ブロックに区画した場合に、小ブロックごとに、代表値が求められ、また小ブロック内におけるラインごとの付加情報が求められる。
〔代表値の算出〕
区画されたそれぞれのブロックTLについて、代表値APが算出される。つまり、1つのブロックTLに含まれる画素GSの濃度値の全体が、1つの代表値APで代表される。
また、1つのブロックTLに含まれる画素GSの濃度値の全体を、1つの代表値APとラインごとの付加情報FJで表すことも可能である。このようにラインごとの付加情報FJを用いた場合には、プリンタ13での展開処理においてライン単位で復元することができ、展開に用いるバッファメモリ302が1ライン分あればよく、メモリ容量を低減することができる。これによって、ASICなどへのメモリの内蔵が容易になり、高速且つ低コストの画像展開が行える。
ところで、代表値APの求め方として、種々の手法があるが、その例を次に示す。
(1) 画像データFDがディザパターンにより擬似階調化された擬似階調画像データFDhである場合に、擬似階調化に用いられたディザパターンを用いて特定の濃度値を擬似階調化した場合にそれによって得られる擬似階調画像がブロックTLの画像データと一致するような、そのような特定の濃度値の中から選んだ値を代表値とする。つまり、この場合には、例えば、そのディザパターンのしきい値が画像データFDの濃度値よりも大きい場合のしきい値の最小値KとディザパターンDPのしきい値が画像データFDの濃度値よりも小さい場合のしきい値の最大値Jとの間の値を代表値とすることになる。
(2) 当該ブロックTL内における特定の画素の濃度値を代表値とする。
(3) 当該ブロックTL内における複数の画素または全部の画素の濃度値の中間値を代表値とする。この場合に、中間値として、平均値、加重平均値、2乗平均値などを用いてもよい。また、特異点を除いた値について平均などを求めてもよい。
(4) 当該ブロックTL内の特定の画素を含むその周辺の画素の濃度値の中間値を代表値とする。
(5) 当該ブロックTL内の画像データを関数により表現するためのパラメータを代表値とする。つまり、例えば、スプライン補間のように元の画像データFDを近似する関数の引数とする。
(6) 一旦求めた代表値について、その代表値によって画像データが良好に再現されるかどうかの判断を行い、良好に再現されると判断された場合にそれを実際の代表値として用いる。例えば、擬似階調画像データFDhについての代表値に対して、次のような手順で再現性の判断を行う。1つのブロックTLを注目ブロックとし、注目ブロックの代表値またはそれと注目ブロックに隣接する1つまたは複数のブロックTLの代表値とに対し、適当な補間ルールを適用し、注目ブロックに含まれる各画素の濃度値を補間により求める。求めた各画素の濃度値に対して、擬似階調化に用いたディザパターンを用いて擬似階調化を行い、これによって得られる擬似階調画像が元の擬似階調画像データFDhに対して所定の誤差範囲で再現されているかどうかを判定する。所定の誤差範囲で再現されている場合に再現性が良好であると判断し、その注目ブロックの代表値を実際の代表値として用いる。なお、この場合に、最初に注目ブロックとしたブロックTLについては、先に代表値の決定された隣接ブロックが存在しないので、その注目ブロックにおける周辺部または端部、特に頂点部に位置する画素の濃度値などを考慮して代表値を決定すればよい。
また、付加情報FJの求め方としても種々の手法があるが、その例を次に示す。
(1) 当該ブロックTL内の各ライン内の特定の画素の濃度値と代表値との差分を付加情報とする。
(2) 当該ブロックTL内の各ライン内の画素の濃度値の中間値と代表値との差分を付加情報とする。中間値として、平均値、加重平均値、2乗平均値などを用いてもよい。また、特異点を除いた値について平均などを求めてもよい。また、代表値と付加情報とで中間値の算出方法を統一しておけばよい。
(3) 当該ブロックTL内の画像データを関数により表現するためのパラメータを代表値とした場合に、当該ブロックTL内の各ラインの画素の濃度値と関数で表現される画像データとの差分を付加情報とする。
(4) 代表値によって当該ブロックTL内の各ラインの画像データが良好に再現されるかどうかを判断し、良好に再現されないと判断したときに、他のデータ、例えば当該ラインの画像データFD自体を付加情報とし、または良好に再現されるように修正するための適当な情報を付加情報とする。
〔位置データTDの算出〕
次に、位置データTDの求め方について説明する。
図9は位置データTDの求め方を説明する図である。
図9において、バンドBD1に含まれたブロックTL4についての位置データTDを求めるものとする。ブロックTL4の画像データFDの配列パターンと一致する配列パターンがそれより前にあるかないかをチェックする。そうすると、ブロックTLを4画素分遡った位置に、つまり図9において4画素分左へ移行した部分TLA1に、同じ配列パターンが存在する。したがって、この場合に、位置データTDは算出可能であり、その値は「4画素分」または「4」である。
また、例えば、1画素が16値つまり16階調であったとすると、1画素は4bitであり、2画素で1byteになるので、位置データTDの値は「2byte」または「2」と表現することも可能である。
このように、位置データTDの値をどのように定義するかは自由であり、決められた定義(ルール)にしたがって位置データTDの値を算出すればよい。
なお、図9において、ブロックTL4について、8画素分左へ移行した部分TLA2にも、同じ配列パターンが存在する。したがって、この場合に、位置データTDを「8画素分」または「8」とすることも可能である。しかし、通常、当該ブロックTLに最も近い位置の位置データTDを用いる。
また、図9のブロックTL4について、位置データTDを「4画素分」とした場合に、位置データTDからブロックTL4の配列パターンを展開するには、例えばブロックTL4の左側の画素GSから順に展開していけばよい。
また、一致する配列パターンがあるか否かのチェックに際して、1画素ずつすらせてチェックを行ってもよいし、2画素ずつでもよい。また、ブロック単位でずらせてもよい。しかし、例えば、上に述べたように1画素が16階調である場合には、2画素ずつずらせるようにするとbyte単位で処理が行われるので都合がよい。
また、どこまで遡ってチェックをするかということについては、画像データFDの最初まで遡ってもよいが、画像データFDがワークメモリに記憶されている範囲でチェックを行うのが処理効率がよい。例えば、当該ブロックTLが含まれるバンドBD内において遡ってチェックすればよい。また、位置データTDの範囲を1byteで表現できる範囲とした場合には、その範囲は、画素数またはbyte数などの表現で「1」〜「255」となる。
そして、チェックした範囲で一致する配列パターンが見つからない場合には、位置データTDは算出不可能とする。その場合に、例えば、当該ブロックTLのブロックデータBDを用いたり、ブロックTLをさらに小ブロックに分割したりして代表値APまたは位置データTDの算出を試みる。
このように、位置データTDを求め、位置データTDを用いて圧縮データD2を作成すると、圧縮率が向上する。特に、画像データFDが文字や線画である場合には、黒一色または白一色のパターンが頻繁に出てくるので、近い位置に位置データTDが求められることが多く、圧縮率が高くなる。
ところで、種々の画像処理ソフトなどにおいて、透明度を設定できない描画系で半透明の描画を実現するために、半透明オブジェクトの画像データとその背景のオブジェクトの画像データとを1〜数画素ごとに交互に出力することで対応するアプリケーションが存在する。
このようなアプリケーションにおいて半透明画像を処理した場合に、非常に短い周期で、例えば1画素ごとまたは4画素ごとに、画像が切り替わる。そのため、この部分ではハーフトーンの画像データFDとディザパターンDPとがほとんど一致せず、結果として圧縮率が低下する。
これに対して、本実施形態のように、一致する配列パターンがあるか否かをチェックして位置データTDを算出すると、上のようなアプリケーションが発生するパターンにも、ディザパターンDPにも、周期性があるので、多くの場合に同じ配列パターンがみつかる。なお、ここではディザパターンDPとの比較は行わない。
本実施形態においては、一致する配列パターンが見つかった場合に、位置データTDが算出されたことを示す信号として、4bit程度を割り当て、例えば、属性コードとして「260」を割り当ててコード1で符号化する。また、位置データTDの値として、8bit程度の固定長のデータとする。つまり、この場合には位置データTDが全部で12bitで表現される。
1つのブロックTLが例えば24個(4×6個)の画素からなり、1画素当たり4bitとすると、1ブロックTLのデータ量は96bitであるから、これを12bitで表現することにより、8分の1に圧縮できることとなる。
また、半透明画像の場合には、繰返し周期が一定であるため、同じ位置情報が繰り返される場合が多い。本実施形態においては、前回の位置データTDと同じであった場合に、それを示すのに、位置データTDの値に代えて1bitの専用のフラグを立てることとする。したがって、前回の位置データTDと同じであった場合は、位置データTDが算出されたことを示す4bit程度の信号と、位置データTDに変わる1bitの専用のフラグの合計5bitで表現されるので、概ね20分の1に圧縮されることとなる。
上にも述べたように、画像データFDが文字や線画である場合に、位置データTDを用いることによって圧縮率が大きく改善され、効果が大きい。
〔第2の実施形態〕
次に、本発明に係る第2の実施形態について説明する。第2の実施形態の説明においては、第1の実施形態との相違点について、その要点のみを説明する。
〔代表値の算出その2〕
代表値算出部102において、代表値APの算出のために、ブロックTLのドットパターンとディザパターンDPとを比較し、これらが互いに一致しているか否かを判別する。一致しているか否かの判別は次のようにして行う。
すなわち、全ての画素がある1つの濃度値(または階調値)を有した均一な画像データを仮想する。仮想した画像データを当該ディザパターンDPによって2値化したときに得られるドットパターンが、ブロックTLのドットパターンと等しい場合に、そのブロックTLのドットパターンは当該ディザパターンDPと一致すると判別する。判別に用いる濃度値としてはどの様な値であってもよい。つまり、換言すれば、ディザパターンDPを用いてドットパターンを生成したときにドットパターンが互いに等しくなるような濃度値が存在する場合に、一致すると判別する、といえる。したがって、そのような濃度値は特定の1つの値の場合もあり、またある範囲における複数の値をとり得る場合もある。この濃度値が、上に述べた代表値APである。
代表値算出部102において、ブロックTLのドットパターンとディザパターンDPとの比較は、擬似階調化された、例えば2値の画像データD1について、その左から右にかつ上から下に、1つのブロックごとに順番に行われる。例えば、上にある複数の単位行(バンドBD)について、左端から右方向にむかって1つのブロックTLごとに行われ、1つの単位行が終わればその下にある単位行の左端に戻り、再度右方向に1つのブロックTLごとに順番に行われ、右下端のブロックTLで終わる。
比較に用いられるディザパターンDPは、2値画像データD1の各色に対応したディザパターンDPが用いられる。そして、各色に対応して、最初に文字領域用ディザパターンDPが用いられる。文字領域用ディザパターンDPが一致しなかった場合に、次に画像領域用ディザパターンDPが用いられ、これも一致しなかった場合にチャート領域用ディザパターンDPが用いられる。このように、一致しなかった場合に、ディザパターンDPが順に切り換えられる。ディザパターンDPの切り換えを行ったという情報は、用いたディザパターンDPを特定するための情報として符号化の際に用いられる。いずれのディザパターンDPでも一致しなかった場合には、「一致しない」という判別結果を出力する。
判別結果が一致した場合に、代表値APを次のようにして求める。
図10は区画されたブロックTLとディザパターンDPとの例を示す図である。
図10(a)に示すブロックTLは、96個(6×16個)の画素からなり、2値化された画像データD1が示されている。
図10(a)において、黒の画素が、ドットが打たれた画素である。ここで、2値化が行われる前の階調性のある画像データのうち、ブロックTLに対応する領域の画像データについて考える。そのような画像データを、ここでは「画像データFDL」とする。そして、画像データFDLの各画素の濃度値が、図10(b)に示すディザパターンDPの対応する画素のしきい値未満であったときに、その画素にドットが打たれたものとする。つまり、ここでは濃度値が小さいほど濃度が高いものと仮定する。
その場合に、ある画素でドットが打たれているときは、その画素の濃度値がディザパターンDPの対応する画素のしきい値未満であったということができる。これは、その画素の濃度の上限値が、ディザパターンDPの対応する画素のしきい値より「1」だけ小さい値であった、と言い換えることができる。逆に、ドットが打たれていないときは、その画素の濃度値はディザパターンDPの対応する画素のしきい値以上であったということになる。これは、その画素の濃度の下限値が、ディザパターンDPの対応する画素のしきい値であったと言い換えることができる。
そこで、ブロックTLとディザパターンDPとにおいて、各画素の上限値および下限値を集計し、上限値の最小値Jおよび下限値の最大値Kを求める。これら上限値の最小値Jと下限値の最大値Kについて、
J≧K ……(1)
の関係が成り立つならば、
J≧a≧K ……(2)
を満たす「a」が存在する。この「a」が代表値APの値である。換言すれば、上の(1)式が成り立つときには、ブロックTLのドットパターンとディザパターンDPとが一致し、代表値aが存在する。代表値aが分かれば、ディザパターンDPからブロックTLのドットパターンを復元することが可能である。つまり、画像情報成分として各領域におけるただ1つの代表値aを求めるだけで、当該ブロックTLに一致するディザパターンDPを用いてその領域の2値画像データD1を再現することが可能となるのである。
なお、代表値APの値である「a」を、「代表値a」と記載することがある。
したがって、この代表値aをプリンタ13に伝えることによって、プリンタ13において、2値画像データD1を得たときと同じ適当なディザパターンDPを用いて、2値画像データD1のドットパターンを再現できるのである。
なお、図10の例では、画像データFDLの各画素の濃度値がディザパターンDPのしきい値未満であったときにドットが打たれたものとしたが、これとは逆に、後の例で述べるように、画像データFDLの各画素の濃度値がディザパターンDP5のしきい値以上であったときにドットが打たれるものとしてもよい。つまり、濃度値が大きいほど濃度が高いものとしてもよい。この場合には、ある画素でドットが打たれているときは、その画素の濃度値がディザパターンDP5の対応する画素のしきい値以上であったということ、つまり、その画素の濃度の下限値はディザパターンDP5の対応する画素のしきい値であった、ということになる。そして、ドットが打たれていないときは、その画素の濃度値はディザパターンDP5の対応する画素のしきい値未満であったということ、つまり、ディザパターンDP5の対応する画素のしきい値より「1」だけ小さい値であった、ということになる。そして、この場合に、上と同様に、(2)式を満たす「a」を代表値APとする。
さて、画像データFDが各色について256階調であるとすると、代表値aは、8ビットの情報量を持つことになる。図10に示す実施形態において、ブロックTLは6×16=96ビットの情報量を持っており、これを8ビットで表現できるので、情報量を概ね10分の1に圧縮できることになる。また、ほとんどの画像データFDについて、近隣のブロックTLにおいては代表値aが互いに接近している。つまり、近隣の領域では濃度の差分が小さく、そのため代表値aの差が小さい、という性質がある。したがって、あるブロックTLの代表値aについて、その直前に求めたブロックTLの代表値aとの差をとると、多くの場合に差が「0」となり、差の統計的な頻度の偏りが大きくなる。つまり、代表値aそれ自体に代えて、代表値aの差分を用いることにより、ハフマン法の符号化でさらに高い圧縮率で圧縮することが可能となる。これにより、符号化において例えばさらに数分の1に圧縮することが可能である。
なお、図10の例では、ブロックTLのサイズがディザパターンDPのサイズと同じとなるように区画した例を示したが、これらのサイズが互いに異なってもよい。
さて、上に述べた代表値APは、上の説明で明らかなように、種々の方法で求めることが可能である。次に、その1つの例として、予め作成したテーブルを参照して代表値APを求める方法について説明する。
上に述べたように、代表値APを求めるのに必要なものは、ある領域のドットパターンに対応する各画素値の上限値の最小値Jと下限値の最大値Kである。これらは、ディザパターンDPが与えられると、そのディザパターンDP内における位置と領域のドットパターンとによって決まってくる。ディザパターンDP内の位置は、領域の先頭画素の座標として2変数で表すことができる。ドットパターンは、8画素ごとに1つのブロックと考えてこれを数値化すると、1ブロック当たり0〜255の整数値で表すことができる(図16参照)。この場合に、8画素のドットパターンをそのまま数値と解釈するだけで整数値が得られるので、何らの変換も不要である。したがって、ディザパターンDPの各画素について、それぞれ0〜255の256個のドットパターンに対応して上限値の最小値Jと下限値の最大値Kとを記述したテーブルがあればよい。つまり、ディザパターンDPの画素数×256個のデータを変換するテーブルがあれば全てを記述することができる。そのようなテーブルがあれば、ディザパターンDP内の位置座標とドットパターンの整数値とから、その位置に記述された値(最小値Jおよび最大値K)を容易に高速で取り出すことができる。本実施形態では、そのようなテーブルを上下限テーブルTJKとして作成しておく。
図11は上下限テーブルTJKの例を示す図である。
図11に示す上下限テーブルTJKには、あるディザパターンDPについて、そのディザパターンDP内の座標およびドットパターンと、上限値の最小値Jと下限値の最大値Kとの対応関係が示されている。
そこで、上に述べたブロックTLを、8画素ごとの12の微細ブロックに区画し、各微細ブロックごとに最小値Jと最大値Kを求める。例えば、ある微細ブロックのディザパターンDP内の座標が(0,2)であり、ドットパターンの整数値が「0」である場合には、上下限テーブルTJKから、最小値Jが「255」、最大値Kが「141」であることが分かる。
このようにして得られた12個の微細ブロックの最小値Jと最大値Kに基づいて、ブロックTLの全体の最小値Jと最大値Kを求める。つまり、ブロックTLの最小値Jは、12個の最小値Jの内の最も小さいものであり、ブロックTLの最大値Kは、12個の最大値Kの内の最も大きなものである。
このように、上下限テーブルTJKを用いることによって、代表値aの算出のための処理を、高々2Mバイト程度の上下限テーブルTJKからデータを読み出す作業によって実現することができる。テーブルからの読み出しは高速で行えるので、代表値aを高速に求めることができ、しかも、この処理は圧縮処理全体の中でも大きな負荷であるので、全体の処理時間を大幅に短縮することができる。
なお、上下限テーブルTJKは、8画素の微細ブロックがディザパターンDPと一致しているか否かを判別するためにも用いることができる。
上に述べたように、得られた最小値Jと最大値Kから代表値aが得られる。代表値aは、特定の1つの値の場合もあり、ある範囲に広がった複数の値をとり得る場合もある。しかし、プリンタ13において2値画像データD1のドットパターンを再現するには、代表値aは1つの値のみで十分である。そこで、得られた代表値aがある範囲に広がった場合に、それを特定の1つの値に絞り込む方法について説明する。
図12は複数のブロックTLについての代表値の推移の例を示す図である。
図12において、横軸はブロックTLの番号、縦軸は代表値を示す。図12に示すように、代表値はある範囲ETを持っている。そこで、代表値aの変化ができるだけ少なくなるように、つまり隣合うブロックTLの代表値aの差分ができるだけ「0」となるように、代表値aを決める。
すなわち、図9の最も左側である最初のブロックTLの代表値aを、その範囲内における中央の値と決め、その右隣である2番目のブロックTLの代表値aを、最初の代表値aと同じ値とする。3番目のブロックTLの代表値aは、2番目の代表値aと同じ値とすると範囲から出てしまうので、範囲内に入るように代表値aを決める。4番目についても、3番目と同様に、範囲内に入るように代表値aを決める。5番目の代表値aは、4番目の代表値aと同じ値とする。このようにして決めた代表値aについて、その差分が図の下方に示されている。代表値aの差分として「0」が多くなることで、頻度の偏りが大きくなり、ハフマン法の符号化において高い圧縮率が得られる。
ところで、代表値aの取り得る値の範囲は0〜255であるから、単純な引き算を行った場合には、差分の範囲は−255〜+255となり、これを表すのに必要な情報量は9ビットとなる。しかし、本実施形態では、差分を単純な引き算によって求めるのではなく、代表値aが0〜255の循環整数であるとして差分を求める。これによって、差分は、全て0〜255の整数で表され、これを表すのに必要な情報量は8ビットとなり、半分に減少する。
次に、循環整数であるとして差分を求める方法について説明する。説明を簡単化するため、0〜8の循環整数について説明する。
図13は0〜8の循環整数を示す図である。
図13において、ある数Aを基準とし、これとある数Bとの差分Cを求めるには、循環整数の中の数Aの示す位置から、数Bに相当する位置数を左方向に回転し、止まった位置の数値を差分Cとする。例えば、「5」と「3」の差分は、循環整数の「5」の位置から3つ左方向に回転して得られる「2」が答である。他の例では、「0」と「8」の差分は、循環整数の「0」の位置から8つ左方向に回転して得られる「1」が答である。さらに他の例では、「3」と「5」の差分は、循環整数の「3」の位置から5つ左方向に回転して得られる「7」が答である。このようにして、差分が0〜8の範囲内の整数値として得られる。
また、ある数Bに差分Cを加算することによってある数Aが求まる。この場合には、循環整数のある数Bの示す位置から、差分Cに相当する位置数を右方向に回転し、止まった位置の数値を数Aとする。このようにして完全に復元することができる。
図14は画像における代表値aの差分の出現頻度の分布を表す図である。
図14に示すように、差分が「0」〜「20」程度および「230」〜「255」程度の範囲で出現頻度が高い。このような分布は、画像の種類によらずほぼ同じであり、且つ偏りが非常に大きいので、差分を用いることによって大抵の画像をハフマン法によって大幅に圧縮することができる。
画像にもよるが、1つのブロックTLをl〜2ビット程度に圧縮できる。また、6×16画素のブロックTLのドットパターンがディザパターンDPと一致する確率は、大抵の画像において95%程度になる。つまり、画像全体の概ね95%の領域で、元々96ビットであったデータが1〜2ビットで表現できることとなり、この時点において数十倍という高い圧縮率で圧縮を行えることとなる。
なお、図14において、代表値aの差分である0〜255の後に、「256」「257」「258」の3つの値についての出現頻度が示されている。これは、所定の状態が生じたときにその状態を特定の3つの数値で示し、これによって情報量をさらに低減し、圧縮率をさらに高めるためのものである。
例えば、画像において同じ濃度の画素が長く続くことも頻繁に起こるので、後述するように同じ濃度が50領域にわたって続いた場合、つまり差分「0」が50回続いた場合に、それを「257」という1つの属性コードで表すのである。「256」は、あるブロックTLがいずれのディザパターンDPとも一致しなかったことを表す属性コード、「258」は、ディザパターンDPの切り換えを行ったこと、つまりあるブロックTLが切り換えられた他のディザパターンDPに一致したことを表す属性コードである。2回切り換えられたときは、「258」が2回出力される。
上に述べたように、代表値算出部102において、ブロックTLについて、順に代表値aが求められ、隣合う領域との間の差分が求められる。差分および属性値などによって、符号化部105に送るデータが作成される。
例えば、差分として「0」が50回連続した場合に、属性値「257」が符号化部108に出力される。差分「0」の値は出力されない。差分「0」が50回連続しなかった場合は、それまで連続していた個数だけ「0」が出力され、その後に、「0」でない差分が出力される。ディザパターンDPの切り換えが行われた場合には、属性コード「258」が切り換え回数分出力される。ブロックTLがいずれのディザパターンDPとも一致しなかった場合には、属性コード「256」が出力される。この場合には、そのブロックTLは、例えば、さらに小ブロックTMに区画して処理することが可能である。
〔小ブロックでの処理〕
図15はブロックTLおよび小ブロックTMを示す図、図16はドットパターンの数値化を説明するための図、図17は各ドットパターンの出現頻度の分布を表す図である。
図15に示すように、6×16画素ブロックTLを、3×8画素の4つの小ブロックTMに区画することができる。
各小ブロックTMにおいて、それぞれのドットパターンがディザパターンDPの一部と一致するか否かを、ブロックTLの場合と同様な方法で判別する。つまり、小ブロックTMは、8画素の3つの微細ブロックTSから構成されているので、上に述べた上下限テーブルTJKから最小値Jおよび最大値Kを3回読み出して集計することによって、ディザパターンDPと一致するか否かを判別することができる。なお、ディザパターンDPと一致するか否かの判別を小ブロックTMで行うのは、領域が小さくなれば一致の頻度が高くなるからである。
小ブロックTMがディザパターンDPと一致した場合に、小ブロックTMに打たれているドットの個数、例えば黒ドットの個数を、代表値として求める。小ブロックTMでは、全部で24ドットであるので、ドット数を代表値としても情報量はそれほど多くなく、またドット数をカウントする処理も速い。ドット数から元のドットパターンを復元することが可能である。そして、得られた代表値に基づいて、隣合う小ブロックTMの間の代表値の差分が、上に述べたブロックTLの場合と同様にして算出される。ここでの差分は、上に述べた循環整数を用いるので、0〜24の範囲となる。
なお、1つのブロックTLについての4つの小ブロックTMの処理が終わると、再度、ブロックTLについての処理に戻ればよい。
〔ディザパターンと一致しなかったときの処理〕
小ブロックTMにおいても一致しなかった場合に、小ブロックTMをさらに8画素の3つの微細ブロックTSに区画し、この微細ブロックTSのドットパターンを数値化する。ドットパターンの数値化においては、例えば、図16に示すように、ドットの打たれている画素を「1」、打たれていない画素を「0」として2進数で表し、これを10進数に変換し、これを属性コードとして出力する。
また、画像データFDが16階調の場合には、2画素をまとめて1byteのデータで表す。
図17に示すように、特定の値に集中するかなり偏った分布であることが分かる。したがって、この場合においても、ハフマン法の符号化によって高い圧縮率を得ることができる。例えば2倍程度の圧縮率を得ることができる。
符号化部105では、入力されるデータ、つまり、代表値aの差分、ドット数の差分、および属性コードなどを、ハフマン法によって符号化する。ハフマン法による圧縮は、信号の頻度分布が大きく変化しない対象に対して非常に有効である。ハフマン法それ自体については公知であるのでここでの説明は省略する。
〔4値の画像データ〕
ここで、多値の画像データの例として、4値の画像データについて説明する。4値の場合も、2値の画像データを圧縮する場合と基本的には同じである。
図18はブロックTLとディザパターンDPとの例を示す図、図19は4値の画像データ(4値画像データ)D5を説明するための図、図20は2値の画像データ(2値画像データ)D1を説明するための図、図21はブロックTLをさらに4つの小ブロックTMに区画した例を示す図である。
図18において、ブロックTLは、48個(6×8個)の画素GSからなる矩形の領域である。図18(a)に示すブロックTLにおいて、黒の画素が、ドットが打たれた画素である。ドットの大きさは、画素値に応じて3段階に変化する。つまり、ドットが打たれていない状態を「0」とすると、1画素における約3分の1の領域にドットが打たれた状態を「1」、約3分の2の領域にドットが打たれた状態を「2」、1画素の全領域にドットが打たれた状態を「3」と表すことができる。
図19に示すように、各状態「0」「1」「2」「3」に対応して、例えばプリンタのレーザの発光時間を制御(パルス幅制御)することによって、画素の濃度を4段階に変化させることができる。このように、これらの状態「0」「1」「2」「3」は、階調値に対応している。
すなわち、状態「0」では、レーザが発光せず、その画素は「白」となる。状態「1」では、レーザ光は画素幅の約3分の1の時間だけ発光し、画素の約3分の1の領域が「黒」となる。同様に、状態「2」または「3」では、それぞれ、レーザ光は画素幅の約3分の2または約3分の3の時間だけ発光し、画素の約3分の2の領域または全体が「黒」となる。つまり、状態の値に対応して4階調の濃度が得られる。4階調を表す4つの状態は、2ビットで表すことができる。したがって、8ビットによって、4階調の画素を4個表すことができる。
なお、レーザの発光時間、それによって打たれるドットの大きさ、および、それをマクロ的に見た濃度について、これらの相互関係は複雑であり、上に述べた例は説明のための一例にすぎない。
ディザパターンDPのしきい値は、0〜255の範囲の値であり、各画素に対して3つのしきい値が設定されている。各画素において、3つのしきい値に対して、低い順に、「1」「2」「3」のインデックス(番号)がそれぞれ与えられている。インデックスが「1」である最も低いしきい値よりも小さい濃度の画像データFDは、状態「0」となる。インデックス「1」のしきい値とインデックス「2」のしきい値との間の濃度の画像データFDは、状態「1」となる。インデックス「2」のしきい値とインデックス「3」のしきい値との間の濃度の画像データFDは、状態「2」となる。インデックスが「3」である最も高いしきい値よりも大きい濃度の画像データFDは、状態「3」となる。通常、画素が異なれば、同じインデックスに対するしきい値も異なる。
ここで、比較のために2値画像データについても説明する。
図20に示すように、2値画像データでは、各状態「0」「1」に対応して、例えばプリンタのレーザをオンオフ制御することによって、画素の濃度を白黒2段階に変化させることができる。
すなわち、状態「0」では、レーザが発光せず、その画素は「白」となる。状態「1」では、レーザ光が発光し、その画素は「黒」となる。つまり、状態の値に対応して2階調の濃度が得られる。
さて、ここでは、画像データFDの各画素の濃度値が、ディザパターンDPの対応する画素のいずれかのしきい値以上であったときに、その画素のしきい値に対応してドットが打たれるものとする。つまり、この場合にドットを打つ打たないは、画素に対応してではなく画素に対応した3つの各しきい値に対応して、ということになる。なお、ここでは、上の「代表値の算出その2」での例とは逆に、濃度値が大きいほど濃度が高いものとする。
その場合に、ある画素のしきい値でドットが打たれているときは、その画素の濃度値が対応するしきい値以上であったということができる。これは、その画素の濃度の下限値が、対応するしきい値と同じ値であった、と言い換えることができる。逆に、ドットが打たれていないときは、その画素の濃度値は対応するしきい値未満であったということになる。これは、その画素の濃度の上限値が、対応するしきい値より「1」だけ小さい値であった、と言い換えることができる。
このようにして、ディザパターンDPの各画素に割り当てられた各しきい値に対して、上限値および下限値を集計し、上限値の最小値Jおよび下限値の最大値Kを求める。そして、上と同様に、(2)式を満たす「a」を代表値とする。
(2)式を満たす「a」が複数ある場合、つまり、ある範囲(レンジ)の中に代表値aがある場合には、上にも述べたように、そのような代表値aのうち、隣り合う領域との代表値の差分が最小となる値を代表値aとして用いる。
なお、代表値が得られない場合に、図21に示すように、6×8画素の領域からなるブロックTLを、3×4画素の領域からなる小ブロックTMに区画することがある。必要に応じて、さらに4画素の3つの微細ブロックTSに区画することがある。
図21においては、ブロックTLについて、そのドットパターンとディザパターンDPとを比較し、これらが互いに一致している場合には上に述べたように代表値aを求める。ブロックTLにおいて代表値aが求められない場合に、小ブロックTMがディザパターンDPと一致しているかどうかをチェックする。小ブロックTMと一致する場合に、(2)式を満たす代表値aを求める。代表値aが得られた場合に、それに基づいて、隣合う小ブロックTMの間の代表値の差分が算出される。
また、小ブロックTMにおいていずれのディザパターンDPとも一致しなかった場合に、コード2で「256」を出力し、領域をさらに微細ブロックTSに区画し、微細ブロックTSのドットパターンを数値化する。
〔復元処理〕
次に、プリンタ13における復元処理について説明する。
データ復元部300において、所定のディザパターンDPおよびデコード表DCを参照して、元の画像データFDのドットパターンを再現する。圧縮データD2の復元に際して、例えば、最初にブロックTL用のデコード表DC1を用いてデコード1による復元処理が行われ、条件に応じて、小ブロックTM用のデコード表DC2を用いたデコード2による復元処理、または微細ブロックTS用のデコード表DC3を用いたデコード3による復元処理がそれぞれ行われる。つまり、コード1,2,3で符号化した圧縮データD2に対して、それぞれ、デコード1,2,3で復元することとなる。
図22はデコード表DC2の例を示す図である。
図22において、デコード表DC2は、記号数、Root、子0、子1などの項目を有する。入力されるデータをもとに、Root=24の位置から表を順にたどることで元のデータを得ることができる。例えば、入力されたデータが「011011」であった場合に、データの先頭が「0」であるから、まず、Root=24の子0より始める。Root=24の子0の値が「23」であり、データの次の値が「1」であるので、次は、Root=23の子1を見る。Root=23の子1の値が「22」であり、データの次の値が「1」であるので、次は、Root=22の子1を見る。以下同様の作業を繰り返し、子0または子1の値が負になった時点で終了する。最後に得られた値(負の値)と記号数(この場合「26」)との和が、元のデータである。以下、データの次の値から同様の処理を行い、データの展開が完了するまで繰り返す。
ドットパターンの再現においては、まずデコード1によって復元処理が行われる。デコード表DC1によって復元された値が「258」であった場合は、ディザパターンDPが切り換えられたことを示している。「258」が複数続く場合は、続いた回数分だけディザパターンDPが順に切り換えられ、切り換えた後のディザパターンDPが、以降使用するディザパターン(カレントディザパターン)DPとして設定される。
復元した値が「256」であった場合は、以降の処理が小ブロックTM用のデコード表DC2を用いたデコード2による復元処理に切り換えられる。復元した値が「257」であった場合は、代表値の差分について「0」が50回続いたことを表しているので、カレントディザパターンDPにより、50領域分、前回算出したブロックTLの代表値と同じ値でドットパターンが再現され、ラインバッファ例えばバッファメモリ302に送られる。50領域分の処理が完了する前に行末に達したときは、その残りが次の行のデータとしてラインバッファに送られる。復元した値がこれいずれでもない場合は、その値は代表値の差分である。この場合は、前回算出したブロックTLの代表値aを初期値とし、初期値に差分を加算することによって今回の代表値aを得る。このように、差分を累計することによって全てのブロックTLの代表値aが得られる。今回が初回であった場合は、初期値を「0」として代表値aを得る。そして、得られた代表値aとカレントディザパターンDPとからドットパターンが再現され、ラインバッファに送られる。
デコード2による復元処理では、微細ブロックTS用のデコード表DC2によって復元が行われる。デコード2によって復元された値が「25」であった場合は、以降の処理が微細ブロックTS用のデコード3の復元処理に切り換えられる。復元した値が「25」でない場合は、その値は小ブロックTMの代表値(ドット数)の差分である。この場合は、ブロックTLの場合と同様に累計によって代表値を求める。得られた代表値とカレントディザパターンDPとから、小ブロックTMのドットパターンが再現される。4つの小ブロックTMについての処理が終わると、デコード1に戻る。
デコード3による復元処理では、微細ブロックTS用のデコード表DC3によって復元が行われる。デコード3によって復元された結果は、8画素分のドットの並びを表わしている。3つの微細ブロックTSについての復元が繰り返され、これによって1つの小ブロックTMのドットパターンが再現される。これにより、小ブロックTMの復元処理が1つ完了したことがカウントされ、呼び出し元の処理のデコード2へ戻る。
このように、属性コード「256」「25」は、領域間におけるコード切り換え信号として機能し、これらの属性コードが現れることによって、間違いなくコード1からコード2へまたはコード2からコード3へ切り換えることができる。
ラインバッファでは、データ復元部300より送られた2値画像データが一時的に格納される。ラインバッファに格納された2値画像データは、例えば6行分ごとに出力され、用紙にプリントアウトされる。
〔ライン単位での復元処理〕
ここで、ライン単位で復元処理を行う方法について説明する。
上に述べたように、1つのブロックTLに含まれる画素GSの濃度値の全体を、1つの代表値APとラインごとの付加情報FJで表すことにより、ライン単位で復元することができる。
すなわち、レーザダイオードLDを強度変調して発光させるために、画像データをライン単位でデータを取り出す必要があり、そのためラインバッファが必要である。ブロック単位で復元を行うとした場合には、ブロック単位のデータを展開するバッファと、データを取り出すのにデータが途切れないようにするためのバッファとが必要である。したがって、ブロックTLの縦サイズ(ライン数)が「4」であるとすると、合計8ライン分のラインバッファが必要となる。
このようにラインバッファの容量が増大することを避けるため、データの圧縮をブロック単位で行いながら展開側(復元側)ではライン単で行えるようにするため、バンド内においてどのラインでも同じ値であって繰り返し使用されるブロック単位のデータと、ラインごとに異なり、ラインごとに1度だけ使用されるデータとを分けて送信する。
図23はバッファメモリへライン単位で展開する様子を説明するための図である。
図23において、ある1つのバンドBDについての代表値AP1〜5が入力された場合が示されている。1バンド分の代表値AP1〜5は、この順にワークメモリ301に記録される。ワークメモリ301に記録された代表値AP1〜5は、そのバンドBDについての復元が終了するまでワークメモリ301に保持され、次のバンドBDの代表値APが入力されるとそれに書き換えられる。
代表値APは、通常、ブロックTLの1ライン分のデータよりも少ないので、ワークメモリ301の容量(長さ)は画像データFDの1ライン分を必要としない。つまり、バッファメモリ302は1ライン分の容量を必要とするが、ワークメモリ301の容量は例えば1ライン分の2分の1程度でよい。
ワークメモリ301に記録された代表値APに基づいて、まず、1番目のラインの復元が行われる。最初に、代表値AP1に基づいて1番目のブロックTL1の分が復元され、その復元データD3がバッファメモリ302のブロックTL1に対応する位置に記録される(書き込まれる)。次に、代表値AP2に基づいて2番目のブロックTL2の分が復元され、その復元データD3がバッファメモリ302のブロックTL2に対応する位置に記録される。
次に、代表値AP3に基づいて3番目のブロックTL3の分が復元されようとするが、この例では代表値AP3は真の代表値ではなく仮の代表値(拡張代表値ともいう)であったので、代表値AP3によっては復元することができない。この場合に、ブロックTL3の1番目のラインについての付加情報FJが用いられ、その付加情報FJによって復元され、その復元データD3がバッファメモリ302のブロックTL3に対応する位置に記録される。
代表値AP4に基づいて4番目のブロックTL4の分が復元され、その復元データD3がバッファメモリ302のブロックTL4に対応する位置に記録される。代表値AP5に基づいて5番目のブロックTL5の分が復元されようとするが、この例では仮の代表値AP5によっては復元することができず、ブロックTL5の1番目のラインについての付加情報FJによって復元され、その復元データD3がバッファメモリ302のブロックTL5に対応する位置に記録される。
バッファメモリ302の内容である復元データD3は、バッファメモリ302の先頭のアドレスから順に読み出され、レーザ駆動部390に送られる。
バッファメモリ302から復元データD3が読み出されると、2番目のラインの復元が行われる。2番目のラインの復元において、3番目および5番目のブロックTL3,5については、それぞれのブロックTL3,5の2番目のラインについての付加情報FJによって復元される。
なお、バッファメモリ302への書き込みは復元データD3を読み出した直後から行うことが可能であるので、2番目のラインの復元は、1番目の全ての復元データD3の読み出しを待つことなく行われる。
そして、2番目のラインについても、バッファメモリ302に記録された復元データD3が順に読み出され、レーザ駆動部390に送られる。
このようにして、4番目のラインまで、代表値AP1〜5および付加情報FJに基づく復元データD3の記録と、記録された復元データD3の読み出しとが順次行われる。これによって1バンド分の復元が行われる。1バンド分の復元が行われた後は、途切れることなく、次のバンドBDについて、同様に復元が行われる。
ここで、バッファメモリ302からの復元データD3の読み出しは、プリントエンジン400における画像形成の速度に同期して行われるので、バッファメモリ302からの読み出しが一旦開始されると、全部の画像データFDの形成が終わるまで同じ速度で読み出しを行う必要がある。したがって、バッファメモリ302への復元データD3の記録の速度を、復元データD3の読み出しの速度よりも高速にしておく必要がある。換言すると、復元データD3の読み出しを待って、次のラインの復元データD3の記録を行うような状態の制御が行われる。
このように、1つのバンドBDの復元に際して、代表値AP1〜5は4ライン分について繰り返して4回用いられ、それぞれの付加情報FJは該当するラインについて1回のみ用いられる。
なお、1番目のラインの復元は、全部の代表値AP1〜5をバッファメモリ302に記録した後で行ってもよく、またはそれぞれの代表値AP1〜5をバッファメモリ302に記録しながら同時に行ってもよい。
また、1番目のラインの復元において、付加情報FJによる復元は、当該ブロックTLの代表値APによる復元が行われるべきタイミングで行ってもよく、また、代表値APによる復元が可能なブロックTLの復元が全て終わってから行ってもよい。
なお、このような復元処理のための制御は、上に述べたようにデータ復元部300に設けられた処理回路やプログラムの実行などによって行われる。
図24はバンドBDにおけるブロックTLとラインとの関係を示す図である。
図24において、バンドBDは4ラインからなり、画像データは、上に述べたように各ラインごとに復元される。ブロックTLをライン方向に沿って区画することによって小ブロックTM1〜3とされているので、小ブロックTM1〜3もブロックTLと同じ4ラインからなる。したがって、小ブロックTMの代表値は、ラインが変わっても変化しない。
既に述べたように、ブロックTLについて、代表値(真の代表値)APが見つからないとき、すでに圧縮が終わった以前の領域に同じデータがあるかどうかが検索され、あった場合に位置データTDが得られている。位置データTDも、ラインが変わっても変化しないデータである。
代表値APも位置データTDもなかったブロックTLについては、2画素分まとめて8bitのデータとなっている。このデータはラインごとに異なっている。
ラインごとに変化しない圧縮データ(代表値AP)は、1ライン目のラインごとに変化するデータ(付加情報FJ)とともにブロックTLの最初で圧縮されている。2ライン目以降は付加情報FJのみが圧縮されている。
〔ライン単位処理の具体例による説明〕
次に、ライン単位での圧縮処理および展開処理の具体的な例について説明する。
図25は擬似階調画像データFDhの例を示す図、図26は図25の擬似階調画像データFDhのバンド1についての代表値APを示す図、図27は図25の擬似階調画像データFDhのバンド1についての圧縮データD2を示す図、図28は図27の展開処理において圧縮データD2を記録したワークメモリ301の内容を示す図、図29はライン1について復元された画像データを記録したバッファメモリ302の内容を示す図である。
図25において、擬似階調画像データFDhは、16値の画像データである。したがって、それぞれの画素GSは、十進で0〜15の値を取りうる。擬似階調画像データFDhは、ライン方向に5つに区画され、これによって、縦4画素、横6画素のブロックTLに区画されている。つまり、1つのバンドは4ラインからなる。バンド1において、3番目および4番目のブロックTL3、4は、さらに3つの小ブロックTM1〜3に再区画されている。
図26において、それぞれのブロックTLまたは小ブロックTMの代表値APが示されている。例えば、1番目および2番目のブロックTLの代表値APはいずれも「108」である。3番目のブロックTL3については、1〜3番目の小ブロックTM1〜3の代表値APが、それぞれ、「112」「115」「116」である。
4番目のブロックTL4については、その2番目の小ブロックTM2に代表値APがなく、それぞれのラインにおいて付加情報FJが示されている。この付加情報FJは、各ラインにおける2つの画素GSの値を1バイトのデータとしたときの十進数で示されている。
5番目のブロックTL5については、当該ブロックTL5の画素GSの配列が、4画素分つまり2バイト分、過去に遡った画素GSと同じであるので、「2バイトシフト」と示されている。
また、それぞれの代表値APについて、隣り合うブロックTLまたは小ブロックTMの代表値APとの差分が示されている。差分は、当該代表値APから前の代表値APを差し引くことによって得られる。当該代表値APよりも前の代表値APの方が値が大きい場合には、差の値に「256」を加えて正の値にする。つまり、初期値を「0」とし、初期値と1番目の代表値APとの差分は「108」であり、1番目と2番目の代表値APとの差分は「0」である。2番目のブロックTL2と3番目のブロックTL3の1番目の小ブロックTM1との代表値APの差分は「4」であり、3番目のブロックTL3の1番目と2番目の小ブロックTMの代表値APの差分は「3」である。3番目のブロックTL3の3番目の小ブロックTM3と4番目のブロックTL4の1番目の小ブロックTM1との差分は、差の値「−1」に「256」を加えた「255」である。
図26に示す「P0」「P1」「P2」などは、圧縮データD2として出力される順番を示す。
図27において、1番目のライン分の圧縮データD2がライン1として示されている。ライン1では、まず、1番目のブロックTL1の代表値APの差分である「108」、次に2番目のブロックTL2の代表値APの差分である「0」が出力される。その次に、3番目のブロックTL3が区画(分割)されることを示す分割信号である「256」、区画された各小ブロックTM1〜3について代表値APの有無を示す「<111>」が出力される。代表値APの有無を示す「<111>」は、3ビットのデータであり、それぞれの位置が小ブロックTM1〜3の位置を示し、「1」が代表値有り、「0」が代表値無しを示す。
そして、3番目のブロックTL3の1〜3番目の小ブロックTM1〜3の代表値APの差分である「4」「3」「1」が出力される。次に、4番目のブロックTL4の分割信号である「256」、各小ブロックTMの代表値APの有無を示す「<101>」が出力される。小ブロックTMの代表値APの有無を示す「<101>」によって、2番目の小ブロックTM2には代表値APがないことが示される。したがって、小ブロックTM2については後で付加情報FJに基づいて復元されることとなる。その1番目のラインについて付加情報FJである「0」が、次に出力される。
そして、4番目のブロックTL4の1、3番目の小ブロックTM1、3の代表値APの差分である「141」が出力され、次に、5番目のブロックTL5が過去に遡った画素GSと一致することを示す「260」、そのシフトのバイト数である「2」が出力される。
ここまでのライン1の圧縮データD2によって、バンド1についての全部の代表値AP、およびバンド1のライン1の付加情報FJが表されている。
次に、ライン2では、4番目のブロックTL4の2番目の小ブロックTM2のライン2の付加情報FJが出力され、ライン3、4では、同じ小ブロックTM2のライン3、4の付加情報FJが出力される。
他のバンドについても同様な処理が行われ、且つ符号化が行われ、生成された圧縮データD2がプリンタ13に転送される。
なお、このような圧縮処理を行うための処理回路またはプログラムなどが、圧縮データ作成部100に設けられており、これに対応した手順によって復元処理を行うための処理回路またはプログラムなどがデータ復元部300に設けられている。上に述べた圧縮データD2を受信したプリンタ13は、次のような復元処理を行う。
すなわち、図28において、ワークメモリ301は、それぞれのブロックTL1〜5に対応する圧縮データD2の記録位置が決められており、ライン1の圧縮データD2に基づいてワークメモリ301に記録すべきデータが算出され、それぞれの位置に記録される。1番目のブロックTL1に対応する位置には、図28の一番上に示されるように、ブロックTL1の代表値APである「108」が、再区画における小ブロックTMの個数に等しい3個記録されている。このようにしておくと、再分割の有無によって代表値APの個数が変わることがない。なお、これによって小ブロックTM単位で復元を行うこととするのも可能である。1個のみの代表値APを記録するようにしてもよい。
代表値APの下には、順に、展開方法を示す情報である「<0>」、再分割の有無を示す情報である「<0>」、再分割時の代表値APの有無を示す情報である「<000>」、使用したディザパターンDPを示す情報である「<0>」が記録されている。
なお、展開方法を示す情報は、「0」がディザパターンDPを用いての展開、「1」が過去のデータをコピーすることによる展開を示す。再分割の有無を示す情報は、「0」が再分割無し、「1」が再分割ありを示す。再分割時の代表値APの有無を示す情報は、「0」が代表値無し、「1」が代表値有りを示す。使用したディザパターンを示す情報は、そのディザパターンDPを特定するためのコードである。
したがって、ブロックTL1については、ディザパターンDPを用いての展開、再分割無し、コード「0」のディザパターンDPを用いる、ということになる。
また、2番目のブロックTL2については、ブロックTL2の代表値APである「108」が3個記録され、ディザパターンDPを用いての展開、再分割無し、コード「0」のディザパターンDPを用いる、ということが記録されている。
3番目のブロックTL3については、3つの小ブロックTM1〜3について、それぞれの代表値APが「112」「115」「116」であること、ディザパターンDPを用いての展開、再分割有り、小ブロックTM1〜3のいずれにも代表値APが有り、コード「0」のディザパターンDPを用いる、ということが記録されている。
4番目のブロックTL4については、2つの小ブロックTM1、3について、それぞれの代表値APが「115」「0」であること、中央の小ブロックTM2については付加情報FJで復元するので代表値APとしての値はないこと、ディザパターンDPを用いての展開、再分割有り、2つの小ブロックTM1、3についてのみ代表値APが有り、コード「0」のディザパターンDPを用いる、ということが記録されている。
5番目のブロックTL5については、過去のデータへのシフトのバイト数である「2」、過去のデータをコピーすることによる展開、再分割無し、ということが記録されている。
ワークメモリ301に記録された代表値APなどの圧縮データD2、および各ラインの付加情報FJに基づいて、復元が行われる。
図29に示すように、まず1番目のラインに対して復元が行われる。つまり、1番目のブロックTL1について、代表値「108」をコード「0」のディザパターンDPにより擬似階調化し、その結果をバッファメモリ302のブロックTL1の位置に記録する。次に、2番目のブロックTL2について、代表値「108」をコード「0」のディザパターンDPにより擬似階調化し、その結果をバッファメモリ302のブロックTL2の位置に記録する。なお、同じディザパターンDPを用いても画素値が異なるのは、使用するディザパターンDPの位置が異なるためである。3番目のブロックTL3については、代表値「112」を擬似階調化してブロックTL3の1番目の小ブロックTMの位置に記録し、同様に代表値「115」「116」を擬似階調化して2番目および3番目の小ブロックTMの位置に記録する。
4番目のブロックTL4については、代表値「115」を擬似階調化して1番目の小ブロックTMの位置に記録し、ライン1の付加情報FJである「0」を用いて復元して2番目の小ブロックTMの位置に記録し、代表値「0」を擬似階調化して3番目の小ブロックTMの位置に記録する。
5番目のブロックTL5については、2バイト前のデータをコピーして5番目のブロックTL5の位置に記録する。なお、その際に、1回のコピーでは不足するデータがあるので、複数回のコピーを行う。
また、2〜4番目のラインについては、ワークメモリ301に記録された代表値APなどの圧縮データD2とライン2〜4の付加情報FJとに基づいて復元が行われる。
〔2次元の場合の代表値の算出〕
上に述べた図19、図20での説明では、区画されたブロックTLが1次元であると仮定して代表値APの求め方を説明した。しかし、実際にはブロックTLは2次元であるので、2次元の場合についてここで説明する。2次元である場合については、1次元の場合の補間ルールHRにおける「直線」を「平面」に置き換えればよい。
図30は各ブロックTLにおける代表値aの位置を示す図、図31はブロックTLにおける各画素の濃度を補間で求める際の補間ルールHRの例を説明するための図である。
図30において、2値画像データD1の一部について、各ブロックTLにおける代表値APの位置が示されている。図に示すように、各ブロックTLmnの代表値位置APmnは、それぞれのブロックTLmnにおける右下端に位置する。2値画像データD1の領域外においても、ブロックTLと同様な区画を行ったと仮定した場合のそれぞれの右下端に代表値位置APがある。
図31(A)(B)に示すように、まず、 最初の代表値AP00,10,01を決める。最初の代表値AP00,10,01は、2値画像データD1の領域外であるので、どのような値でもとり得るが、ブロックTL11の代表値位置APに最も近い画素GSについての濃度値(ハーフトーンデータ)と、それに対応するディザパターンDPのしきい値となどに基づいて算出される画像データの範囲の中間値とするのがよい。
そして、最初のブロックであるブロックTL11を注目領域とし、注目領域を図31に示すように2つの三角形PA1,2に分ける。一方の三角形PA1の領域について、領域内の白画素に着目する。最初の代表値AP00,10,01のうち、三角形PA1の頂点に近い2つの代表値位置AP00,10を通り、 かつ注目領域内の白画素に対応するしきい値を通る平面を求める。
それらの平面のうち最も低い位置にある平面を選択し、その平面を延長して当該注目領域の最後の画素TPの位置との交点を上限候補位置とする。他方の三角形PA2の領域についても、これと同様にして上限候補位置を求める。得られた2つの上限候補位置のうちの小さい方を、注目領域における代表値上限APmaxとする。
白画素と同様の処理を黒画素についても行い、注目領域における代表値下限APminを求める。なお、図31(B)において、TPは各画素に対応する位置を示している。
このようにして求めた代表値上限APmaxが代表値下限APminよりの大きいとき、つまり上の(1)式が成り立つとき、代表値上限APmaxと代表値下限APminとの間の値、例えばその中央値を、ブロックTL11の代表値AP11として決定する。
このようにして決定した代表値AP11を用いると、隣接する領域のそれぞれの代表値AP00,10または代表値AP00,01とで定義される三角形PA1,2と、ディザパターンDPとを用いることによって、ブロックTL11における2値画像データD1を完全に再現することができる。
もし、上の(1)式が成り立たない場合には、前回の代表値AP00,10,01を修正する。修正した代表値APを用いて、再度、上のようにして当該注目領域の代表値AP11を求める。
それでも代表値APが求まらない場合には、代表値APが決定できない旨を記録した上で、別途の処理を行う。別途の処理として、1次元の場合と同様に、例えば、注目領域を半分または4分の1の小領域に区画し、各小領域内において上のような処理を行って代表値APを決定する。
また、小領域において代表値APが求まらない場合に、代表値上限APmaxと代表値下限APminとを適当に仮に定め、その範囲内の中間値を代表値APとして決定する。〔フローチャートによる説明〕
次に、コンピュータ本体11およびプリンタ13における処理について、フローチャートを参照して説明する。
図32および図33は圧縮データ作成部100における圧縮処理のフローチャート、図34および図35はデータ復元部300における復元処理のフローチャートである。なお、これらのフローチャートは、CMYKの内の1つの色成分についての処理を示す。
図32および図33において、まず、ディザパターンDPおよびデコード表DCを読み込む(#101,102)。また、これらディザパターンDPおよびデコード表DCをプリンタ13に送信しておく。画像データの内の1バンド分を入力し(#104)、その左端から1つのブロックTLの分について、ディザパターンDPと一致するか否かを判別する(#105)。一致する場合に、上下限テーブルTJKを参照して代表値aを取得し(#106)、代表値差分を算出する(#107)。
代表値差分が「0」であれば(#108でイエス)、連続回数を示す変数nを1つ加算する(#109)。変数nが「50」になった場合に(#110でイエス)、代表値差分「0」が50回続いたことを示す属性コード「257」をコード1で符号化して圧縮データD2として出力し(#111)、変数nを「0」に初期化する(#112)。
ステップ#105でノーの場合、つまりディザパターンDPと一致しない場合には、代表値差分「0」をコード1でそれまでの回数分符号化して出力し(#120)、変数nを「0」に初期化する(#121)。そして、他のディザパターンDPと一致するか否かをチェックする(#122)。一致するディザパターンDPがあれば(#122でイエス)、そのディザパターンDPに切り換え(#123)、ディザパターンDPを切り換えたことを示す属性コード「258」をコード1で切り換え回数分符号化して出力し(#124)、代表値aを取得し(#225)、ステップ#107に移行する。
ステップ#108でノーの場合、つまり代表値差分が「0」でなければ(#108でノー)、代表値差分「0」をコード1でそれまでの回数分符号化して出力し(#126)、変数nを「0」に初期化する(#127)。そして、その代表値差分をコード1で符号化して出力し(#128)、ステップ#113に戻る。
入力したバンドの右端まで処理が済んでいなければ(#113でノー)、同じバンドについて順次右隣のブロックTLの処理を行うために、ステップ#105以降を繰り返す。バンドについての処理が終わり(#113でイエス)、未処理のラインがあれば(#114でノー)、画像データの次のバンド分を入力し(#104)、これを画像データの全部の処理が終了するまで繰り返す(#114)。
ステップ#122でノー、つまり一致するディザパターンDPがない場合には、本発明の特徴的な処理の1つである位置データ算出処理を行う。
すなわち、そのブロックTL内の画像データの配列パターンと一致する配列パターンがそれより前にあるかないかをチェックする(#131)。それより前にある場合に(#131でイエス)、属性コード「260」をコード1で出力し(132)、一致する位置を示す位置データTDを算出して出力する(#133)。
ブロック内の画像データの配列パターンと一致する配列パターンがそれより前にない場合に(#131でノー)、ブロックTLの代表値APおよび位置データTDが算出できなかったことを示す属性コード「256」をコード1で符号化して出力し(#134)、小ブロックTMの処理であるステップ#135以降を行う。
小ブロックTMの処理では、ブロックTLを再区画した各小ブロックTMについて、どの小ブロックTMで一致するかを示す信号を出力し(#135)、いずれかのディザパターンDPと一致するか否かを判別する(#136)。一致する場合は(#136でイエス)、その小ブロックTMの代表値差分をコード2で符号化して出力する(#137)。一致しない場合は(#136でノー)、その小ブロックTMの画像データの配列パターンをブロックデータBDとして取得する(#139)。これを当該ブロックTLについて終了するまで行う(#138)。
図34および図35において、まず、ディザパターンDPおよびデコード表DCを読み込む(#201,202)。そして、コンピュータ本体11から送信されてきた圧縮データD2を受信し、その先頭から順に復元のための処理を行う。最初はデコード1によって復元する(#203)。
復元によって得られた値dc1が属性コード「258」「256」「260」でない場合には(#204〜206でノー)、モード0とし(#207)、さらに属性コード「257」でない場合には(#208でノー)、値dc1は代表値aの差分であるので、これに基づいて代表値aを取得する(#209)。代表値aの取得に当たっては、例えば、それまでの累計値k1に値dc1を加算し、得られた値を新たな累計値k1とする。累計値k1が「255」を超えた場合には、代表値aの最大値を超えているので、累計値k1から「256」を差し引く。
そして、累計値k1を代表値aとして、パターン番号pnで特定されるディザパターンDPを用いてドットパターンを復元する(#210)。そのドットパターンをラインバッファに転送し(#211)、領域番号nbに1を加算する(#212)。なお、領域番号nbは、処理対象のブロックTLのバンド内における位置を示す番号である。
同じバンド分についての展開が終了するまで(#213でノー)、ステップ#203以降を繰り返す。バンド分についての展開が終了すると(#213でイエス)、領域番号nbを「0」に初期化し(#214)、展開したバンド分のデータ(2値画像データ)をバッファメモリに転送して印刷する(#215)。全ての圧縮データD2についての処理が済むまで繰り返す(#216)。
ステップ#204でイエス、つまり復元によって得られた値dc1が「258」である場合には、パターン番号pnに「1」を加算する(#221)。パターン番号pnが「3」であった場合は(#222でイエス)、パターン番号pnから「3」を差し引く。つまり、パターン番号pnは、「0」「1」「2」のいずれかの値となり、これによって3種類のディザパターンDPのいずれかが特定される。このようにして、準備された全てのディザパターンDPについてチェックが行われる。
ステップ#205でイエス、つまり値dc1が「256」である場合には、小ブロックTMの処理であるステップ#271に移行する。ステップ#271において、モード1とし(#271)、どの小ブロックTMで一致するかを示す信号に基づいて処理を行う(#272)。デコード2によって復元し(#273)、パターンと一致した旨を示す場合には(#274でイエス)、それに基づいて代表値APを取得し(#275)、パターン番号pnで特定されるディザパターンDPを用いてドットパターンを復元する(#276)。
パターンと一致しなかった旨を示す場合には(#274でノー)、デコード3によって復元し(#278)、そのデータをドットパターンとして出力する(#279)。当該ブロックTLについての復元が終わるまで繰り返す(#277)。
ステップ#206でイエス、つまり値dc1が「260」である場合には、モード2とし(#281)、位置データTDを取得し(#282)、位置データTDにより特定される領域のドットパターンを当該ブロックTLにコピーする(#283)。
ステップ#208でイエス、つまり値dc1が「257」である場合には、累計値k1を代表値aとして、パターン番号pnで特定されるディザパターンDPを用いてドットパターンを復元する(#231)。そのドットパターンをラインバッファに転送し(#232)、領域番号nbに1を加算する(#233)。これを50回繰り返す(#234)。これによって、差分「0」が50回続いたときの代表値aに基づいて50個のブロックTLの2値画像データが再現される。なお、この処理中においてラインの右端まできたときは、一旦処理を中断し、ステップ#214以降の処理を行い、新たに次のラインの先頭からドットパターンを書き込むようにする。
次に、ライン単位で圧縮および展開を行う場合についての概略の処理の流れをフローチャートで説明する。
図36はライン単位で圧縮する場合の概略の処理の流れを示すフローチャート、図37はライン単位で展開する場合の概略の処理の流れを示すフローチャートである。
図36において、各ブロックの代表値APとともに当該バンドにおける1番目のラインの付加情報FJが出力され、その後に2番目以降の各ラインの付加情報FJが出力される。
すなわち、代表値APが求められると、その代表値APが出力され(#51)、その代表値APと同じブロックTLの1番目のラインの付加情報FJがある場合にそれが出力される(#52)。これが繰り返され、1バンド分について、代表値APおよびその1番目のラインの付加情報FJが出力される(#53)。
その後で、当該バンドBDについて、2番目以降のラインの付加情報FJが先頭から順に出力される(#54、55)。1バンド分について終了すると(#56でイエス)、次の1つのバンドBDについてステップ#51〜56が繰り返され、全部の画像データについて出力されると終了する(#57)。
図37に示す展開処理では、受信された代表値APを順次ワークメモリ301に書き込む(#81)とともに、それによる復元と付加情報FJによる1番目のラインの復元とを行う(#82〜84)。そして、ワークメモリ301に書き込んだ代表値APによって復元してバッファメモリ302に書き込み(#85)、付加情報FJがある場合にそれによる復元を行ってバッファメモリ302に書き込む(#86)。ステップ#85〜87を1バンド分が終了するまで繰り返し(#88)、画像データの全体が復元されるまでステップ#81〜87を繰り返す。
なお、展開処理において、コンピュータ本体11から受信した圧縮データD2は符号化されているので、プリンタ13において復号化することによって代表値APや付加情報FJが得られる。このような処理はワークメモリ301への書き込みやバッファメモリ302への復元に先立って行っておけばよい。
このように、圧縮処理に際して、2値画像データD1をディザパターン情報成分と画像情報成分とに分離し、圧縮データD2にはディザパターン情報成分を含めないことにより、高い圧縮率と高速処理を実現することができる。また、代表値aの算出のための処理を上下限テーブルTJKからデータを読み出すことで高速に行うことができ、全体の処理時間の短縮に大きく寄与する。
本実施形態において、代表値APと位置データTDとのうち、符号化したときにより短い符号となる方を選択して圧縮データを作成してもよい。また、代表値APと位置データTDとのうち、早く算出された方を選択して圧縮データを作成してもよい。また、代表値AP、位置データTD、ブロックデータBDの配列パターンをエントロピー符号化することによって圧縮データを作成してもよい。
上に述べた実施形態においては、各ブロック内における濃度に関する代表値APを用いたが、これに代えて、種々のドット配列パターンを有した複数のパターン(画像パターン)PN1,2,3…を予め設定しておき、これらと各ブロックTLの画像データFDの配列パターンとを比較して一致するものがないかどうかを探してもよい。一致するものがある場合には、例えば、一致するパターンPNを特定するパターン番号PNNを取得し、これを代表値APとする。一致するパターンPNがない場合には、上に説明したように当該画像データFDにおける過去のデータの中に当該ブロックTLと一致するデータがないかどうかを探索し、ある場合に位置データTDを取得する。
また、各ブロックTLの画像データFDの配列パターンと一致するパターンPNを探すに当たって、例えば、ブロックTLにおいて一致するパターンPNがない場合に、小ブロックTMに対して一致するパターンPNを探す。また、一致するパターンPNがない場合に、ブロックTLの画像データの配列パターンを選択する。また、パターンPN、位置データTD、または当該ブロックTLの画像データの配列パターンをエントロピー符号化することによって圧縮データを作成する。また、パターンPNと位置データTDとのうち、符号化したときにより短い符号となる方を選択して圧縮データを作成する。また、パターンPNと位置データTDとのうち、早く算出された方を選択して圧縮データを作成する。このように、パターンPNに関した種々の情報を選択して圧縮データを作成することができる。
上に述べた種々の実施形態において、それらを種々の態様で組み合わせて実施することが可能である。
本発明に係るプリントシステムの全体構成を示す図である。 画像データの概略の流れを示すフローチャートである。 コンピュータ本体の機能的な構成を示すブロック図である。 圧縮データ作成部の機能的な構成の例を示すブロック図である。 プリンタの機能的な構成を示すブロック図である。 圧縮処理の概略の流れを示すフローチャートである。 圧縮処理の他の例の概略の流れを示すフローチャートである。 画像データをブロックに区画する方法の例を示す図である。 位置データの求め方を説明する図である。 区画されたブロックとディザパターンとの例を示す図である。 上下限テーブルの例を示す図である。 複数のブロックについての代表値の推移の例を示す図である。 循環整数を示す図である。 画像における代表値の差分の出現頻度の分布を表す図である。 ブロックおよび小ブロックを示す図である。 ドットパターンの数値化を説明するための図である。 各ドットパターンの出現頻度の分布を表す図である。 ブロックとディザパターンとの例を示す図である。 4値の画像データを説明するための図である。 2値の画像データを説明するための図である。 ブロックをさらに4つの小ブロックに区画した例を示す図である。 デコード表の例を示す図である。 バッファメモリへライン単位で展開する様子を説明するための図である。 バンドにおけるブロックとラインとの関係を示す図である。 擬似階調画像データの例を示す図である。 図25のバンド1についての代表値を示す図である。 図25のバンド1についての圧縮データを示す図である。 圧縮データを記録したワークメモリの内容を示す図である。 復元された画像データを記録したバッファメモリの内容を示す図である。 各ブロックにおける代表値の位置を示す図である。 補間ルールの例を説明するための図である。 圧縮データ作成部における圧縮処理のフローチャートである。 圧縮データ作成部における圧縮処理のフローチャートである。 データ復元部における復元処理のフローチャートである。 データ復元部における復元処理のフローチャートである。 ライン単位で圧縮する場合の処理の流れを示すフローチャートである。 ライン単位で展開する場合の処理の流れを示すフローチャートである。
符号の説明
1 プリントシステム 11 コンピュータ本体(画像データの圧縮装置)
13 プリンタ
100 圧縮データ作成部
101 ブロック区画部(ブロックを画定する手段)
102 代表値算出部(代表値を算出する手段)
103 過去データ検索部(位置データを算出する手段)
104 ブロックデータ抽出部()
105 符号化部
300 データ復元部
FD 画像データ
FDh 擬似階調画像データ(画像データ)
D1 2値画像データ(画像データ)
D2 圧縮データ
D5 4値画像データ(画像データ)
DP ディザパターン
TL ブロック
TM 小ブロック
AP 代表値
TD 位置データ
BD ブロックデータ
FJ 付加情報

Claims (18)

  1. 画像データを圧縮する方法であって、
    前記画像データを所定のブロックごとに区画し、
    各ブロック内における濃度に関する代表値を用いて当該ブロックの画像データを再現可能である場合にそのような代表値を算出し、
    再現可能でない場合に、当該ブロックの画像データの配列パターンと一致する配列パターンがそれより前にあるかないかをチェックし、それより前にある場合に、一致する位置を示す位置データを算出し、
    それより前にない場合に、当該ブロックの画像データの配列パターンをブロックデータとして取得し、
    算出されまたは取得された代表値、位置データ、またはブロックデータを用いて圧縮データを作成する、
    ことを特徴とする画像データの圧縮方法。
  2. ディザパターンを用いて擬似階調化された画像データを圧縮する方法であって、
    前記画像データを所定のブロックごとに区画し、
    各ブロック内における画像データの配列パターンを擬似階調化に用いられたディザパターンと代表値とを用いて再現可能である場合に、そのような代表値を算出し、
    再現可能でない場合に、当該ブロックの画像データの配列パターンと一致する配列パターンがそれより前にあるかないかをチェックし、それより前にある場合に、一致する位置を示す位置データを算出し、
    それより前にない場合に、当該ブロックの画像データの配列パターンをブロックデータとして取得し、
    算出されまたは取得された代表値、位置データ、またはブロックデータを用いて圧縮データを作成する、
    ことを特徴とする画像データの圧縮方法。
  3. 前記代表値を算出するに際し、
    前記ブロックのうちの1つの領域である注目ブロックについて、当該注目ブロックの代表値および当該注目ブロックに隣接する1つまたは複数のブロックの代表値を用い予め定められた補間ルールにしたがって当該注目ブロックにおける各画素の濃度を補間して求めさらに前記ディザパターンを用いて擬似階調化を行った場合に当該注目ブロックにおける前記擬似階調画像が再現されるような、そのような代表値を求めて当該注目ブロックの代表値として決定する、
    請求項1記載の画像データの圧縮方法。
  4. 前記ブロックは、前記画像データをライン方向およびその直角方向である副走査方向に区画したものであり且つ複数のラインにわたっており、
    濃度に関する情報であって前記代表値に代わるべきまたは前記代表値に追加すべき情報がある場合に、それを付加情報として、前記各ブロックにおける1つのラインごとまたは前記ブロックのライン数よりも少ない複数のラインごとに求め、
    前記付加情報をも用いて圧縮データを生成する、
    請求項2または3記載の画像データの圧縮方法。
  5. ディザパターンを用いて擬似階調化された画像データを圧縮する装置であって、
    前記画像データを区画して複数のブロックを画定する手段と、
    前記ブロック内における画像データの配列パターンを擬似階調化に用いられたディザパターンと代表値とを用いて再現可能である場合にそのような代表値を算出する手段と、
    前記ブロックの画像データの配列パターンと一致する配列パターンがそれより前にある場合にその一致する位置を示す位置データを算出する手段と、を有し、
    各ブロックについて、前記代表値、前記位置データ、または当該ブロックの画像データの配列パターン、のうちから少なくとも1つを選択して圧縮データを作成する、
    ことを特徴とする画像データの圧縮装置。
  6. 前記代表値を算出する手段は、
    前記ブロックのうちの1つの領域である注目ブロックについて、当該注目ブロックの代表値および当該注目ブロックに隣接する1つまたは複数のブロックの代表値を用い予め定められた補間ルールにしたがって当該注目ブロックにおける各画素の濃度を補間して求めさらに前記ディザパターンを用いて擬似階調化を行った場合に当該注目ブロックにおける前記擬似階調画像が再現されるような、そのような代表値を求めて当該注目ブロックの代表値として決定する、
    請求項5記載の画像データの圧縮装置。
  7. 前記ブロックは、前記画像データをライン方向およびその直角方向である副走査方向に区画したものであり且つ複数のラインにわたっており、
    濃度に関する情報であって前記代表値に代わるべきまたは前記代表値に追加すべき情報がある場合に、それを付加情報として、前記各ブロックにおける1つのラインごとまたは前記ブロックのライン数よりも少ない複数のラインごとに求め、
    前記付加情報をも用いて圧縮データを生成する、
    請求項5または6記載の画像データの圧縮装置。
  8. 前記ブロックを更に細かい小ブロックに再区画する手段を有し、
    前記ブロックにおいて代表値または前記位置データが算出されない場合に、前記小ブロックに対して前記代表値または前記位置データを算出する、
    請求項5ないし7のいずれかに記載の画像データの圧縮装置。
  9. 前記代表値または前記位置データが算出されない場合に、前記ブロックの画像データの配列パターンを選択する、
    請求項5ないし8のいずれかに記載の画像データの圧縮装置。
  10. 前記代表値、前記位置データ、または前記ブロックの画像データの配列パターンをエントロピー符号化することによって圧縮データを作成する、
    請求項5ないし9のいずれかに記載の画像データの圧縮装置。
  11. 前記代表値と前記位置データとのうち、符号化したときにより短い符号となる方を選択して圧縮データを作成する、
    請求項5ないし10のいずれかに記載の画像データの圧縮装置。
  12. 前記代表値と前記位置データとのうち、早く算出された方を選択して圧縮データを作成する、
    請求項5ないし11のいずれかに記載の画像データの圧縮装置。
  13. ディザパターンを用いて擬似階調化された画像データを圧縮する装置であって、
    前記画像データを区画して複数のブロックを画定する手段と、
    前記ブロックの画像データの配列パターンを予め設定された複数のパターンと比較して一致するパターンを探す手段と、
    前記ブロックの画像データの配列パターンと一致する配列パターンがそれより前にある場合にその一致する位置を示す位置データを算出する手段と、を有し、
    各ブロックについて、前記パターン、前記位置データ、または当該ブロックの画像データの配列パターン、のうちから少なくとも1つを選択して圧縮データを作成する、
    ことを特徴とする画像データの圧縮装置。
  14. 前記ブロックを更に細かい小ブロックに再区画する手段を有し、
    前記ブロックにおいて一致する前記パターンがない場合に、前記小ブロックに対して一致する前記パターンを探す、
    請求項13記載の画像データの圧縮装置。
  15. 一致する前記パターンがない場合に、前記ブロックの画像データの配列パターンを選択する、
    請求項13または14記載の画像データの圧縮装置。
  16. 前記パターン、前記位置データ、または当該ブロックの画像データの配列パターンをエントロピー符号化することによって圧縮データを作成する、
    請求項13ないし15のいずれかに記載の画像データの圧縮装置。
  17. 前記パターンと前記位置データとのうち、符号化したときにより短い符号となる方を選択して圧縮データを作成する、
    請求項13ないし16のいずれかに記載の画像データの圧縮装置。
  18. 前記パターンと前記位置データとのうち、早く算出された方を選択して圧縮データを作成する、
    請求項13ないし17のいずれかに記載の画像データの圧縮装置。
JP2005337825A 2005-11-22 2005-11-22 画像データの圧縮方法および装置 Pending JP2007143082A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005337825A JP2007143082A (ja) 2005-11-22 2005-11-22 画像データの圧縮方法および装置
US11/601,899 US7844120B2 (en) 2005-11-22 2006-11-20 Method and device for compressing image data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005337825A JP2007143082A (ja) 2005-11-22 2005-11-22 画像データの圧縮方法および装置

Publications (1)

Publication Number Publication Date
JP2007143082A true JP2007143082A (ja) 2007-06-07

Family

ID=38053610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005337825A Pending JP2007143082A (ja) 2005-11-22 2005-11-22 画像データの圧縮方法および装置

Country Status (2)

Country Link
US (1) US7844120B2 (ja)
JP (1) JP2007143082A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8494261B2 (en) 2010-04-30 2013-07-23 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and computer-readable medium
US8498475B2 (en) 2010-06-24 2013-07-30 Canon Kabushiki Kaisha Image processing apparatus, control method and computer-readable medium
US8780414B2 (en) 2010-03-16 2014-07-15 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and computer-readable medium for image data compression
US8837021B2 (en) 2010-03-16 2014-09-16 Canon Kabushiki Kaisha Image processing apparatus, control method, and computer-readable medium
US8953220B2 (en) 2010-03-15 2015-02-10 Canon Kabushiki Kaisha Image processing for rotation of compressed image data

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4844331B2 (ja) * 2005-10-31 2011-12-28 コニカミノルタビジネステクノロジーズ株式会社 画像データの処理方法および装置
JP5267422B2 (ja) * 2009-10-28 2013-08-21 セイコーエプソン株式会社 画像処理方法およびプログラム、画像処理装置
JP5338630B2 (ja) * 2009-11-18 2013-11-13 セイコーエプソン株式会社 画像処理方法およびプログラム、画像処理装置
JP2012070304A (ja) * 2010-09-27 2012-04-05 Canon Inc 画像処理装置、画像処理装置のデータ処理方法及びプログラム
US8600158B2 (en) 2010-11-16 2013-12-03 Hand Held Products, Inc. Method and system operative to process color image data
US8571307B2 (en) 2010-11-16 2013-10-29 Hand Held Products, Inc. Method and system operative to process monochrome image data
GB2499799B (en) * 2012-02-28 2019-06-26 Snell Advanced Media Ltd Identifying points of interest in an image
US9977992B2 (en) 2012-02-28 2018-05-22 Snell Advanced Media Limited Identifying points of interest in an image
US8848250B2 (en) * 2012-10-23 2014-09-30 Kyocera Document Solutions Inc. Compression of halftoned digital images
CN106228519B (zh) * 2016-07-18 2019-08-30 Oppo广东移动通信有限公司 一种图像修复方法及终端
CN115914519A (zh) * 2021-09-30 2023-04-04 晶门科技(深圳)有限公司 基于定向调制和抖动的帧速率转换装置及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05151349A (ja) * 1991-11-29 1993-06-18 Fujitsu Ltd 画像データ圧縮方法および符号化回路
JPH06152986A (ja) * 1992-11-10 1994-05-31 Fuji Xerox Co Ltd 画像圧縮方法及び装置
JPH0779352A (ja) * 1993-03-26 1995-03-20 Toshiba Corp 画像処理装置
JP2001111840A (ja) * 1999-10-13 2001-04-20 Ricoh Co Ltd 画像圧縮方法、画像圧縮装置および画像入力装置
JP2001238083A (ja) * 2000-02-21 2001-08-31 Ricoh Co Ltd 階調デジタル画像データの圧縮装置、階調デジタル画像データの圧縮方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6201614B1 (en) 1998-12-24 2001-03-13 Electronics For Imaging, Inc. Dithered image compression system
JP3647405B2 (ja) * 2001-09-26 2005-05-11 キヤノン株式会社 画像処理装置及び画像処理方法
US7586649B2 (en) * 2004-12-27 2009-09-08 Konica Minolta Business Technologies, Inc. Method and device for compressing image data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05151349A (ja) * 1991-11-29 1993-06-18 Fujitsu Ltd 画像データ圧縮方法および符号化回路
JPH06152986A (ja) * 1992-11-10 1994-05-31 Fuji Xerox Co Ltd 画像圧縮方法及び装置
JPH0779352A (ja) * 1993-03-26 1995-03-20 Toshiba Corp 画像処理装置
JP2001111840A (ja) * 1999-10-13 2001-04-20 Ricoh Co Ltd 画像圧縮方法、画像圧縮装置および画像入力装置
JP2001238083A (ja) * 2000-02-21 2001-08-31 Ricoh Co Ltd 階調デジタル画像データの圧縮装置、階調デジタル画像データの圧縮方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8953220B2 (en) 2010-03-15 2015-02-10 Canon Kabushiki Kaisha Image processing for rotation of compressed image data
US8780414B2 (en) 2010-03-16 2014-07-15 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and computer-readable medium for image data compression
US8837021B2 (en) 2010-03-16 2014-09-16 Canon Kabushiki Kaisha Image processing apparatus, control method, and computer-readable medium
US8494261B2 (en) 2010-04-30 2013-07-23 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and computer-readable medium
US8498475B2 (en) 2010-06-24 2013-07-30 Canon Kabushiki Kaisha Image processing apparatus, control method and computer-readable medium

Also Published As

Publication number Publication date
US7844120B2 (en) 2010-11-30
US20070116367A1 (en) 2007-05-24

Similar Documents

Publication Publication Date Title
US7844120B2 (en) Method and device for compressing image data
CN102577345B (zh) 图像处理设备及其处理方法
JP4418762B2 (ja) 画像符号化装置及び画像復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP4844331B2 (ja) 画像データの処理方法および装置
US5729663A (en) Method and apparatus for gray screening
US6332666B1 (en) Printing apparatus, resolution conversion printing method for printing apparatus, and storage medium storing computer-readable program
KR950001543A (ko) 화상 형성 장치 및 그 방법
US7710605B2 (en) Print system and printer
JP2003178277A (ja) 2次元コード,2次元コードの作成方法、2次元コードの復号方法,それらの方法を実行する装置、それらの方法をコンピュータで実行する為のプログラム、及び、そのプログラムを記録したコンピュータ読み取り可能記録媒体
US5819010A (en) Image recording with adaptation of resolution to printer
JP2006262436A (ja) 画像処理装置
US7746501B2 (en) Method and device for compressing image data
JPH11168632A (ja) ディザ画像の2値表現処理方法、ディザ画像の圧縮2値表現圧縮解除方法、及びディザ画像の圧縮及び圧縮解除システム
JP5264412B2 (ja) 画像処理装置および画像処理方法
US7586649B2 (en) Method and device for compressing image data
JP4696738B2 (ja) 画像データの圧縮方法および装置並びに擬似階調画像の復元方法
JP4529681B2 (ja) 画像データの圧縮方法および装置
JP3768560B2 (ja) 画像処理装置および方法
JP2007129441A (ja) 閾値マトリクス作成法および画像処理方法
KR20050113510A (ko) 하프토닝 처리장치 및 방법
JP2002237952A (ja) 画像形成装置、画像形成システム、符号化制御方法及び記憶媒体
JP2010028649A (ja) データ圧縮装置およびデータ圧縮プログラム
JP2020043461A (ja) 画像処理装置と画像処理方法、及びプログラム
JP2002077627A (ja) 画像符号化方法、画像符号化装置、画像復号化方法、画像復号化装置、画像形成装置及び記録媒体
JP2001103281A (ja) 画像処理装置及び画像処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081030

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110304

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110920