JP2003174564A - 画像処理装置、画像処理方法、プログラム、及び記憶媒体 - Google Patents

画像処理装置、画像処理方法、プログラム、及び記憶媒体

Info

Publication number
JP2003174564A
JP2003174564A JP2001373269A JP2001373269A JP2003174564A JP 2003174564 A JP2003174564 A JP 2003174564A JP 2001373269 A JP2001373269 A JP 2001373269A JP 2001373269 A JP2001373269 A JP 2001373269A JP 2003174564 A JP2003174564 A JP 2003174564A
Authority
JP
Japan
Prior art keywords
command
image
pixel
column
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.)
Granted
Application number
JP2001373269A
Other languages
English (en)
Other versions
JP4164257B2 (ja
Inventor
Yoichi Sakamoto
陽一 坂本
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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP2001373269A priority Critical patent/JP4164257B2/ja
Priority to EP02258367.8A priority patent/EP1318665B1/en
Priority to CN 200810097396 priority patent/CN101282406B/zh
Priority to CN 200810094578 priority patent/CN101282405B/zh
Priority to CNB02155529XA priority patent/CN100397866C/zh
Priority to CN2008100973975A priority patent/CN101282407B/zh
Priority to US10/310,812 priority patent/US7245396B2/en
Publication of JP2003174564A publication Critical patent/JP2003174564A/ja
Application granted granted Critical
Publication of JP4164257B2 publication Critical patent/JP4164257B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

(57)【要約】 【課題】 周期性を有する画像、特に壁紙などの背景パ
ターンを並べた画像データを符号化する際に画像全体を
より高速に、且つより高圧縮率で圧縮すること。また、
壁紙などの背景パターンを並べた画像を符号化した符号
を復号する復号回路の回路規模を小さくし、かつ大量の
バッファメモリを必要としない低コストで構成可能な復
号を行うこと。 【解決手段】 画像を、ディザマトリクスを使用して変
換する(S8)。次に印刷制御コマンドを出力する(S
9)。次に符号化時に使用する、上複写垂直オフセット
値(マトリクスのサイズに応じた値)、近い左複写水平
オフセット値(マトリクスのサイズに応じた値)、遠い
左複写水平オフセット値(背景パターンの周期に応じた
値)を指定する圧縮パラメタ指定コマンドを出力する
(S10)。次に符号化手順に従い、画像データを符号
化する(S11)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、画像を符号化す
る、もしくは符号化された画像を復号する画像処理装
置、画像処理方法、プログラム、及び記憶媒体に関する
ものである。
【0002】
【従来の技術】壁紙あるいはテクスチャなどと呼ばれ
る、同一の背景パターンを並べて出力するアプリケーシ
ョンプログラムが出力する印刷データを画像データに展
開して印刷する場合において、データサイズを小さくす
るためにこの画像データを圧縮する場合、背景パターン
自体がよく圧縮できる場合は画像データ全体をよく圧縮
することは容易である。しかしながら、背景パターンそ
れ自体があまり圧縮できない場合も多く、そのような場
合には画像データ全体をよく圧縮することは必ずしも容
易ではない。
【0003】図10はそのような印刷データの一例であ
り、図11に示すように、同一のパターンを並べること
により、背景が構成されている。
【0004】従来の圧縮技術では、例えばランレングス
符号化、あるいはデルタロウ符号化のように、画素値が
近隣の画素と同じ値になる傾向が強いことを利用して、
近隣の画素を参照し、値が同一であれば圧縮する符号化
方法がある。
【0005】またLZ77符号化、あるいはLZ78符
号化のように、広い範囲の画素を参照し、値が同一の並
びの画素を検出してこれを利用することにより圧縮する
符号化方法がある。これらの方法によればかなり離れた
位置にある同一の値を有する画素を検出して圧縮に利用
することができるため、上述の壁紙などをよく圧縮する
ことができる。
【0006】またJPEG符号のように、背景パターン
それ自体をよく圧縮できる符号化方法がある。
【0007】また、特願2000−76424にテクス
チャの周期を検出して圧縮を行う方法が示されている。
【0008】
【発明が解決しようとする課題】しかしながら、上記ラ
ンレングス符号化、あるいはデルタロウ符号化によれ
ば、上述の壁紙などを圧縮する場合、その繰り返し周期
が例えば1024画素と大きな値をとるため、近隣の画
素を参照しただけではよく圧縮することができないとい
う欠点がある。
【0009】また、上記LZ77符号化、あるいはL7
8符号化によれば、符号化時に広い範囲の画素を参照す
るため、計算量が多く、符号化に要する時間が長いとい
う欠点がある。またこれらの方法によれば、復号時に広
い範囲の画素を参照するために、大容量のバッファメモ
リが必要となるという欠点があり、例えばプリンタに復
号機能を持たせる場合にコストアップの原因となる。
【0010】また、上記JPEGによれば、符号化時の
計算量が多いため、符号化に要する時間が長いという欠
点がある。又、この方法によれば、復号時の計算量もま
た多いという欠点があり、例えばプリンタに復号機能を
持たせる場合にコストアップの原因となる。
【0011】また、上記特願2000−76424によ
れば、フーリエ解析あるいは自己相関係数によるもの
で、背景パターンのデータを用いて膨大な量の計算を行
う必要があるため、高速に符号化することができない。
【0012】本発明は以上の問題に鑑みて成されたもの
であり、周期性を有する画像、特に壁紙などの背景パタ
ーンを並べた画像データを符号化する際に、画像全体を
より高速に、且つより高圧縮率で圧縮することを目的と
する。
【0013】また本発明の別の目的は、壁紙などの背景
パターンを並べた画像を符号化した符号を復号する復号
回路の回路規模を小さくし、かつ大量のバッファメモリ
を必要としない、低コストで構成可能な復号を行うこと
を目的とする。
【0014】
【課題を解決するための手段】本発明の目的を達成する
ために、例えば本発明の画像処理装置は以下の構成を備
える。
【0015】すなわち、画像を符号化する画像処理装置
であって、画像に対して所定のサイズのマトリクスを用
いて減色処理を施す減色手段と、前記減色処理を施され
た画像のパターンの周期を検出する周期検出手段と、前
記周期及び/又は、前記マトリクスのサイズに応じた画
素の相対位置関係を用いて、前記減色処理を施された画
像を符号化する符号化手段とを備えることを特徴とする
画像処理装置。
【0016】本発明の目的を達成するために、例えば本
発明の画像処理装置は以下の構成を備える。
【0017】すなわち、符号化された画像を復号する画
像処理装置であって、復号した画素列を所定ライン数分
格納する格納手段と、符号化データに含まれるコマンド
群をデコードするデコード手段と、前記デコード手段に
よってデコードされたコマンドに応じて前記格納手段か
ら画素列を読み取り、読みとった画素列を前記格納手段
に格納すると共に、読みとった画素列を所定のバッファ
に順次出力し、更に、前記デコード手段によりデコード
されたコマンドが画像のライン方向に関するコマンドで
ある場合、前記画像のパターンの周期に応じて前記格納
手段から読みとる位置を変更する復号手段とを備えるこ
とを特徴とする画像処理装置。
【0018】
【発明の実施の形態】以下、添付図面を参照して、本発
明を好適な実施形態に従って詳細に説明する。
【0019】[第1の実施形態]図17に本実施形態の
画像処理装置の基本構成を示す。本実施形態では画像処
理装置として一般的なパーソナルコンピュータやワーク
ステーションを用いる。
【0020】1701はCPUで、RAM1702やR
OM1703に格納されたプログラムやデータを用いて
本装置全体の制御を行うと共に、後述の画像圧縮処理も
行う。1702はRAMで、外部記憶装置1704や記
憶媒体ドライブ1709からロードされたプログラムや
データ等を一時的に記憶するエリアを備えると共に、C
PU1701が各種の処理を実行する際に用いるワーク
エリアも備える。1703はROMで、本装置全体の制
御プログラム(例えばブートプログラム)や制御データ
(例えば本装置の設定データ)を格納する。1704は
ハードディスクなどの外部記憶装置で、記憶媒体ドライ
ブ1709からインストールされたプログラムやデータ
などを保存する。また、上述のワークエリアのサイズが
RAM1702内に設けられなくなった場合に、不足分
をファイルとして提供することもできる。1705,1
706は夫々キーボード、マウスで、夫々ポインティン
グデバイスとして用いられ、各種の指示を本装置に入力
することができる。1707は表示装置で、CRTや液
晶画面などにより構成されており、画像や文字などを表
示することができる。1708が画像入力装置で、ディ
ジタルカメラやスキャナなどにより構成されており、撮
像や取り込みなどの操作により画像をディジタルデータ
としてRAM1702や外部記憶装置1704に入力す
ることができる。
【0021】1709は記憶媒体ドライブで、CD−R
OMやDVD−ROMなどの記憶媒体からプログラムや
データなどを読み込み、読み込んだプログラムやデータ
をRAM1702や外部記憶装置1704等に出力す
る。1710はI/F(インターフェース)で、インタ
ーネットやLANなどを介して外部の機器から圧縮処理
対象の画像を受信したり、逆に圧縮した画像を外部の機
器に対して送信する等、外部の機器とのデータの送受信
を行う際のI/Fとして機能する。1711はプリンタ
で、圧縮された画像を伸長して紙などの記録媒体に印刷
を行う画像伸長装置として機能する。1712は上述の
各部を繋ぐバスである。
【0022】図1は画像を印刷する際に用いるソフトウ
ェア群とプリンタとの関係を示す概念図である。外部記
憶装置1704内にはオペレーティングシステム2(以
下、OS)、アプリケーション3、プリンタドライバ
4,ポートドライバ6が格納されている。
【0023】OS2は図1に示した各部(プリンタ17
11は除く)、及びアプリケーション3、プリンタドラ
イバ4、ポートドライバ5などのソフトウェアを管理す
る。アプリケーション3は、例えばワードプロセッサの
ようなアプリケーションソフトウェアであり、操作者か
らキーボード1705やマウス1706を用いて指示さ
れた内容に従って文書の作成・印刷などを行う。4はプ
リンタドライバであり、アプリケーション3が発行した
印刷指令をOS2を介して受け取り、該印刷指令をプリ
ンタ1711が解釈可能なプリンタコマンドに変換す
る。5はポートドライバであり、プリンタドライバ4が
変換したプリンタコマンドをOS2を介して受け取り、
不図示のパラレルポートを介してプリンタ1711に送
信する。そしてプリンタ1711は、ポートドライバ5
から受信したプリンタコマンドに従って印刷を行う。
【0024】図2はプリンタ1111の基本構成を示す
ブロック図である。図中、11はパラレルポートであ
り、ポートドライバ6から出力されたプリンタコマンド
を受信する。12はFIFO(ファーストインファース
トアウト)メモリであり、パラレルポート11が受信し
たプリンタコマンドに含まれる符号化データ(詳細は後
述)を記憶し、記憶したデータを先入れ先出しの順に復
号回路13に出力する。復号回路13は、FIFOメモ
リ12に記憶された符号列データを復号し、復元した画
像データをシフトレジスタ16に出力する。プリンタエ
ンジン14はレーザビームプリンタエンジンであり、制
御回路15の指示により、復号回路13が出力した画像
データに従って印刷を行う。15は制御回路であり,例
えば1チップCPUで構成され、パラレルポート11,
FIFOメモリ12,復号回路13,およびプリンタエ
ンジン14の制御を行う。16はシフトレジスタであ
り、復号回路13が復号したバイトデータを複数の画素
に分割し、画素ごとに順次プリンタエンジン14に出力
する。
【0025】以下、印刷を行う際に、図1,2に示した
各部の動作について以下、説明する。
【0026】操作者がキーボード1105やマウス11
06を用いてアプリケーション3を操作して印刷データ
を生成し、更に、生成した印刷データを印刷する指示を
入力すると、アプリケーション3からOS2を介してプ
リンタドライバ4に印刷指令が渡される。プリンタドラ
イバ4はアプリケーション3から発行された印刷指令に
基づき、印刷対象となる画像データを作成し、次いでこ
の画像データに対してディザマトリックスを用いてディ
ザ処理を行い、2値化処理行う。なお、その際、そし
て、プリンタドライバ4は、後述する符号化手順に基づ
き、2値化処理を施された画像データから符号化データ
を生成し、用紙サイズ、画像データ(ビットマップデー
タ)のラインの長さとライン数などを指定する印刷制御
コマンド、圧縮パラメタを指定する圧縮パラメタコマン
ド、ページ終了を示すページ終了コマンドとともに出力
する。ポートドライバ5は、プリンタドライバ4が作成
した一連のコマンド群と上記符号化データをプリンタ1
711に送信する。
【0027】制御回路15はパラレルポート11を経由
してプリンタコマンドを受信する。受信したプリンタコ
マンドのうち印刷制御コマンド、圧縮パラメタ指定コマ
ンドは、印刷制御のために制御回路15の内部に保持さ
れる。また、受信したプリンタコマンドのうち符号化デ
ータは、FIFOメモリ12に格納される。その後、ペ
ージ終了コマンドの受信などにより、1ページを構成す
るプリンタコマンドの受信が完了したことを制御回路1
5が検出したときに、プリンタエンジン14に印刷の開
始を指示する。印刷の開始が指示されると、プリンタエ
ンジン14は。シフトレジスタ16に画像データの出力
を要求する。シフトレジスタ16は予め復号回路13か
ら復号データを読み出し、読み出した復号データを格納
する。そして、プリンタエンジン14からの出力要求を
受けると格納しておいた復号データをプリンタエンジン
14に出力すると共に、シフトレジスタ16内に空きの
バッファができたときには、復号回路13に引き続く復
号データの出力を要求する。このようにして符号化デー
タは順次復号されて画像データ(復号データ)として出
力され、1ページの画像データの出力が全て終了する
と、印刷が完了する。ここで、アプリケーション3から
背景パターンのイメージ出力指令が発行されると、プリ
ンタドライバ4は後述する手順にてこれを検出し、背景
パターンの周期を求める。プリンタドライバ4はまた、
背景パターンを検出した場合には、画像データを符号化
する際に、後述する手順に従って背景パターンの周期を
利用して符号化を行う。
【0028】次に、図3および図4に示すテーブルを参
照し、図1に示したプリンタドライバ4が生成する符号
について説明する。
【0029】図3は、図1に示したプリンタドライバ4
が生成する符号化データに含まれる各符号の一例を説明
するテーブルである。本実施形態で説明する符号は、所
定ライン上のラインのデータ列を複写する上複写、同一
ラインの所定バイト左のデータ列を複写する近い左複
写、同一ラインの所定バイト左のデータ列を複写する遠
い左複写、およびデータを直接指定する生データの4種
類の操作のうち、一つを指定する。なお、上複写および
近い左複写が参照する所定の位置は、上記ディザマトリ
クスの周期に応じた値であり、遠い左複写が参照する所
定の位置は、背景パターンの周期に応じたものとなる。
【0030】図3に示すように、符号(コマンド符号)
が「0」で開始する場合はRAWコマンドであり、引き
続く8ビットのデータ(<data8>)をそのまま生
データとして指定する。符号が「10」で開始する場合
はCOPY UPコマンドであり、引き続くカウント符
号(<count>)が示すバイト数だけ上複写を行
う。符号「110」で開始する場合はCOPY NEA
R LFTコマンドであり、引き続くカウント符号(<
count>)が示すバイト数だけ近い左複写を行う。
符号「1110」で開始する場合はCOPY FAR
LEFTコマンドであり、引き続くカウント符号(<c
ount>)が示すバイト数だけ遠い左複写を行う。符
号「11110」で開始する場合はCOUNT HIG
Hコマンドであり、引き続くカウント符号(<coun
t>)が示す数の64倍を、後続するCOPY UP、
もしくはCOPY NEAR LEFT、もしくはCO
PYFAR LEFTコマンドのいずれかのカウント符
号に加算することを示す。符号「11111」で開始す
る場合はEOBコマンドであり、符号列の終了を示す。
【0031】図4は上述のカウント符号の一例を示すテ
ーブルを示す図である。同図に示すように、コマンド符
号のビットが「111111」の場合は、COUNT0
符号を示し、カウントが0であることを示す。コマンド
符号のビットが「0」で開始される場合は、COUNT
1符号を示し、カウントが1であることを示す。コマン
ド符号のビットが「10」で開始される場合は、COU
NT2−3符号を示し、後続する1ビットのデータ(<
data1>)が0の場合はコマンド符号としては「0
10」となり、意味としては2バイトを意味することに
なる。一方、後続する1ビットのデータが1の場合はコ
マンド符号としては「011」となり、意味としては3
バイトを意味することになる。つまり、コマンド符号の
ビット列が「01」で開始する場合は、2バイト、もし
くは3バイトの長さを意味することにある。
【0032】また、コマンド符号のビットが「110」
で開始される場合は、COUNT4−7符号を示し、2
ビットのデータが後続することになるので4バイトから
7バイトまでの長さを意味し、コマンド符号のビットが
「1110」で開始される場合は、COUNT8−15
符号を示し、2ビットのデータが後続することになるの
で8バイトから15バイトまでの長さを意味し、コマン
ド符号のビットが「11110」で開始される場合は、
COUNT16−31符号を示し、2ビットのデータが
後続することになるので16バイトから31バイトまで
の長さを意味し、コマンド符号のビットが「11111
0」で開始される場合は、COUNT32−63符号を
示し、2ビットのデータが後続することになるので32
バイトから63バイトを意味することになる。
【0033】次に図5を参照し、図3および図4に示し
た符号の使用例について説明する。なお、同図に示した
符号列は上から記載された順番に解釈されるものとす
る。
【0034】同図において符号列「0 0000000
0」は以下のようにして解釈される。つまり、先頭の
「0」はRAWコマンドなので、引き続く8ビットのデ
ータ「00000000」をそのまま生データとして指
定する。次に、符号列「1100」は、以下のようにし
て解釈される。先頭の「110」は近い左複写コマンド
であり、引き続く「0」はCOUNT1符号なので、1
バイトの近い左複写を示す。次に、符号列「10 10
1」は以下のようにして解釈される。つまり、先頭の
「10」は上複写コマンドであり、引き続く「10」は
COUNT2−3符号であるので、引き続く1ビット
「1」に2を加算した値、すなわち3バイトの上複写を
示す。次に、符号列「11110 10 0」は以下の
ようにして解釈される。つまり、「11110」はCO
UNT HIGHコマンドであり、引き続く「10」は
COUNT2−3符号であるので、引き続く1ビット
「0」に2を加算した値の64倍、すなわち128を後
続するコマンドのカウントに加算することを示す。
【0035】次に、符号列「1110 111111」
は以下のようにして解釈される。つまり、「1110」
は遠い左複写コマンドであり、引き続く「11111
1」はCOUNT0符号なので、0バイトの遠い左複写
を示す。ただし、この場合はCOUNT HIGH 2
コマンドが先行しているため、128が加算され、12
8バイトの遠い左複写を示す。次に、「11111」は
EOBコマンドであり、符号列の終了を示す。引き続く
「0000000」はバイト境界に整列するための詰め
物であり、特別な意味を持たない。なお、上記の符号に
符号化するに際し、上複写位置、近い左複写位置、およ
び遠い左複写位置の選定にあたり、圧縮率を向上するた
めには下記の注意が必要である。
【0036】例えば8ビットのグレイスケール原画像を
1ビットの2値画像、あるいは4ビット以下のグレイス
ケール画像に減色する場合、ディザマトリクスを用いて
各マトリクス内の画素ごとに異なった閾値による演算処
理を行って減色するのが一般的である。この場合、隣接
した画素は異なった閾値によって演算が行われるため、
原画像の画素値が同一であっても、減色後の画素値は異
なった値になることが多く、相関が低いため、隣接した
画素を参照しても圧縮率を向上することが困難である。
【0037】ディザマトリクスは周期的に適用されるた
め、隣接画素ではなく、むしろ少し離れた画素、通常は
ディザマトリクスの周期だけ離れた画素と同じ閾値が適
用されるため、そのような画素との相関が高くなる。し
たがって、隣接画素の代わりに、ディザマトリクスの周
期に応じた、少し離れた画素を参照することにより、圧
縮率を向上することができる。
【0038】上位置に関しては、ディザマトリックスの
周期に等しいライン数をそのまま適用することができる
が、近い左位置および遠い左位置については、符号化の
単位がバイト単位であるため、画素が8ビット未満の場
合にはさらに注意が必要となる。例えば、画素が1ビッ
トで、ディザマトリックスの基本周期が12画素の場
合、1.5バイトの周期となるが、符号化の単位が1バ
イトであるため、バイト単位で同一の閾値が適用される
周期は3バイトとなり、この周期を近い左位置に適用す
る必要がある。遠い左位置についても同様で、例えば画
素が1ビットで、背景パターンの周期が1024画素す
なわち128バイトであり、ディザマトリックスの基本
周期が12画素の場合、背景パターンの1周期違いの位
置には異なった閾値が適用されるため相関が低く、圧縮
率を向上することは困難である。この場合は128バイ
トと3バイトの最小公倍数である384バイト離れた位
置を遠い左位置とする必要がある。
【0039】次に、図6に示すフローチャートを参照
し、プリンタドライバ4の処理の詳細について以下、説
明する。図6はプリンタドライバ4が行うメインの処理
のフローチャートである。プリンタドライバ4がオペレ
ーティングシステム2から呼び出されると、まずステッ
プS1にて呼び出しの種類が描画指令であるか否かを判
定する。呼び出しの種類が描画指令であった場合は、処
理をステップS2に進め、描画処理を行う。描画処理と
して具体的には、オペレーティングシステム2を経由し
てアプリケーション3から指示された文字、図形または
ビットマップ等を8ビットのグレイスケール画像に変換
し、RAM1702、もしくは外部記憶装置1704に
記録する。
【0040】次にステップS3にて呼び出しの種類がビ
ットマップ描画指令であるか否かを判定する。呼び出し
の種類がビットマップ描画指令でなかった場合には処理
を終了する。一方、呼び出しの種類がビットマップ描画
指令だった場合にはステップS4にて、後述する背景パ
ターン周期検出処理を行い、処理を終了する。
【0041】一方、ステップS1にて呼び出しの種類が
描画指令でなかった場合は、処理をステップS7に進
め、呼び出しの種類がページ終了指令であるか判定す
る。呼び出しの種類がページ終了指令であった場合に
は、処理をステップS8に進め、2値化処理を行う。具
体的にはステップS2にてRAM1702、もしくは外
部記憶装置1704に記録された8ビットのグレイスケ
ール画像を、ディザマトリックスを使用して、白黒1ビ
ットの画像に変換する。
【0042】次にステップS9にて印刷制御コマンド、
具体的には用紙サイズ、給紙カセット、解像度、階調
数、1ラインのバイト数、1ページのライン数など、印
刷に必要な条件を指定するコマンドを出力する。次にス
テップS10にて、符号化時に使用する、上複写時に複
写元が何ライン上の位置であるかを指定する上複写垂直
オフセット値、近い左複写時に複写元が同一ラインの何
バイト左の位置であるかを指定する近い左複写水平オフ
セット値、および遠い左複写時に複写元が同一ラインの
何バイト左の位置であるかを指定する遠い左複写水平オ
フセット値を指定する圧縮パラメタ指定コマンドを出力
する。
【0043】ここで、上複写垂直オフセット値および近
い左複写水平オフセット値は、ステップS8にて使用し
たディザマトリックスに応じて、あらかじめ理論的に、
あるいは実験により最適値を求めておき、それを使用す
る。また遠い左複写水平オフセット値は、ステップS4
にて求めた背景パターン周期に応じた値を使用する。
【0044】次にステップS11にて、後述する符号化
手順に従い、画像データを符号化する。このときに、ス
テップS10にて出力した圧縮パラメタ指定コマンドが
指定する、上複写垂直オフセット値、近い左複写水平オ
フセット値、および遠い左複写水平オフセット値を用い
て符号化を行う。次にステップS12にて、ステップS
11にて符号化された画像データのサイズおよびライン
数を指定する画像データコマンドヘッダを出力する。次
にステップS13にて、ステップS11にて符号化され
た画像データを出力する。次にステップS15にて、ペ
ージの終了を指定するコマンド(ページ終了コマンド)
を出力して処理を終了する。
【0045】一方、ステップS7にて呼び出しの種類が
ページ終了指令でなかった場合には処理をステップS1
6に進め、呼び出しの種類に応じたその他の処理、例え
ばページ開始指令あるいはプリンタ能力問い合わせ指令
等に対応する処理を行い、終了する。
【0046】次に図7を参照し、上記ステップS4にお
ける処理の詳細について以下、説明する。図7は上記ス
テップS4における背景パターン周期検出処理の詳細を
示すフローチャートである。
【0047】ビットマップ描画命令を受けると、まずス
テップS21にてこのビットマップ(以下、第1のビッ
トマップ)の幅が256画素以上であるか否かを判定す
る。該ビットマップの幅が256画素以上でない場合は
処理を終了する。これは、背景パターンは例えば102
4画素といった、大きな幅および高さを持つのが一般的
であること、また、小さい幅または高さのビットマップ
を対象に処理を行うと、ビットマップを管理するテーブ
ル(以下、ビットマップ管理テーブル)のサイズが大き
くなり、またビットマップ管理テーブルを検索する処理
時間も長くなることから、小さい幅または高さのビット
マップの場合は背景パターン周期検出処理を行わないよ
うにするためである。ここでビットマップ管理テーブル
とは、1ページ内に含まれるビットマップを管理する予
め定められた固定サイズのテーブルで、本実施形態では
後述の条件を満たしたビットマップに対してのみ、この
ビットマップに関する情報を格納する。具体的には図1
8に例示するように、ビットマップの左上隅のx座標、
y座標、幅、高さを管理する。図18はビットマップ管
理テーブルの構成例を示す図である。また、ビットマッ
プ管理テーブルは、各ページの処理を開始するごとに空
に初期化される。
【0048】図7に戻って、ビットマップの幅が256
画素以上である場合は処理をステップS22に進め、ビ
ットマップの高さが256画素以上であるか判定する。
ビットマップの高さが256画素以上でない場合は処理
を終了する。
【0049】ビットマップの高さが256画素以上であ
る場合は処理をステップS23に進め、ビットマップ管
理テーブルの検索が終了したか否かを判断する。終了し
ていない場合は処理をステップS24に進め、ビットマ
ップ管理テーブルに格納されているビットマップの左上
隅のy座標、高さを参照し、第1のビットマップの左上
隅のy座標、高さと一致するものを検索する。そして一
致しない場合は処理をステップS23に戻し、上記検索
の対象がビットマップ管理テーブルの最後に行き着くま
で行われる。一方、一致するもの(第2のビットマップ
の左上隅のy座標、高さ)が見つかった場合には処理を
ステップS25に進め、第1のビットマップが第2のビ
ットマップの右に隣接しているか否かを判定する。具体
的にはビットマップ管理テーブルを参照し、第2のビッ
トマップの左上隅のX座標+第2のビットマップの幅=
第1のビットマップの左上隅のX座標であれば、第1の
ビットマップが第2のビットマップの右に隣接している
ことになる。右に隣接している場合は処理をステップS
27に進める。
【0050】一方、右に隣接していない場合は処理をス
テップS26に進め、第1のビットマップが、第2のビ
ットマップの左に隣接しているか否かを判定する。具体
的には、第2のビットマップの左上隅のX座標=第1の
ビットマップの左上隅のX座標+第1のビットマップの
幅であれば、第1のビットマップは第2のビットマップ
の左に隣接していることになる。左に隣接している場合
は処理をステップS27に進め、左に隣接していない場
合は処理をステップS23に戻す。
【0051】ステップS27では、第1のビットマップ
の幅と、後述の処理により求まる背景周期とを比較す
る。なお、背景周期は、各ページの処理を開始するごと
に、0に初期化される。背景周期が第1のビットマップ
の幅より大きい場合は、処理をステップS29に進め
る。一方、背景周期が第1のビットマップの幅以下であ
る場合には処理をステップS28に進め、ステップS2
8にて背景周期に第1のビットマップの幅を代入し、処
理をステップS29に進める。
【0052】ステップS29では、第2のビットマップ
の幅と背景周期とを比較する。背景周期が第2のビット
マップの幅より大きい場合には、処理をステップS31
に進める。一方、背景周期がテーブル中の現在のビット
マップの幅以下である場合には、処理をステップS30
に進め、ステップS30にて背景周期に第2のビットマ
ップの幅を代入し、処理をステップS31に進める。こ
のようにして、今までの背景周期、および左右に隣接す
る2つのビットマップの幅のうち、最大の値が新たに背
景周期に代入される。最大の値を用いる理由は、背景ビ
ットマップが用紙の左端または右端でクリップされるこ
とにより周期よりも小さい幅となることがあるため、こ
の影響を除外するためである。
【0053】ステップS31では、ビットマップ管理テ
ーブルがフルであるか否かを判定する。ビットマップ管
理テーブルがフルである場合は、新たにビットマップに
関する情報を格納(登録)する余地がないため、何もせ
ずに処理を終了する。一方、ビットマップ管理テーブル
がフルでない場合は、第1のビットマップの左上隅のX
座標、左上隅のY座標、幅、及び高さをビットマップ管
理テーブルに格納して処理を終了する。
【0054】このようにして1ページの処理が終了する
と、このページ内で隣接するビットマップの幅の最大値
が背景周期に格納されていることになる。また、隣接す
るビットマップがこのページ内に存在しなかった場合
は、背景周期には0が格納されている。
【0055】次に、図8を参照して、図6のステップS
10における処理の詳細について以下、説明する。図8
はステップS10における処理の詳細を示すフローチャ
ートである。まずステップS41にて、上記ステップS
4にて求めた背景周期が0であるか否かを判定する。背
景周期が0でない場合、すなわち背景パターンの周期が
検出された場合は、処理をステップS42に進め、背景
周期と1バイトの画素数の最小公倍数を求める。例え
ば、背景周期が1024画素であり、1画素が1ビット
で構成されている場合(1バイトの画素数が8)、その
最小公倍数は1024となる。また、背景周期が511
画素であり、1画素が4ビットで構成されている場合
(1バイトの画素数が2)、その最小公倍数は1022
となる。この処理は、符号化の単位が1バイトであるた
め、画素単位の周期をバイト単位の周期に変換するため
に行う。
【0056】次にステップS43にて、ステップS42
で求めた最小公倍数をバイト単位に変換する。具体的に
は、最小公倍数を1バイトの画素数で除算する。次にス
テップS44にて、ステップS43で求めたバイト単位
の背景周期と、ディザ周期の最小公倍数を求める。例え
ば、背景周期が128バイトであり、ディザ周期が2バ
イトである場合は、128バイトとなる。また、背景周
期が511バイトであり、ディザ周期が3バイトである
場合は、1533バイトとなる。この処理は、背景周期
がディザ周期の整数倍でない場合は、背景周期だけ離れ
た点に異なったディザ処理がほどこされることにより、
異なった画素値となるため、同一のディザ処理が行われ
る点を参照するようにするために行う。
【0057】次にステップS45にて、ステップS44
で求めた最小公倍数が、ライン長の90%未満であるか
判定する。ライン長の90%未満であった場合は、処理
をステップS47に進め、上記ステップS8の2値化処
理にて使用したディザマトリックスの周期に応じた、上
複写および近い左複写の位置、およびステップS44に
て求めた最小公倍数(遠い左複写の位置)を圧縮パラメ
タを指定するコマンド(圧縮パラメタ指定コマンド)と
して出力し、処理を終了する。
【0058】一方、ステップS41にて背景周期が0で
あった場合、及びステップS45にて、ステップS44
にて求めた最小公倍数がライン長の90%以上であった
場合、処理をステップS46に進め、背景周期をディフ
ォルトの値に設定する。これらの場合は、背景周期が検
出できなかった、あるいは背景周期が過大であり、圧縮
の向上に大きな寄与を与えない場合であるので、かわり
にディフォルト値を設定する。ディフォルト値は、近い
左複写の位置とは異なるようにあらかじめ定めておく。
例えば、ディザ周期が16画素であり、1バイトの画素
数が8である場合、近い左複写の位置は2バイト左とな
る。この場合は背景周期のディフォルト値を1バイトに
定めておく。前述のように、ディザ周期だけ離れた点と
相関が高くなるのが一般的であるが、印刷データが通常
のテキストまたは表のごとく、白黒2値で表現される場
合は、ディザ処理を行わなかった場合と同じ結果とな
る。また、ディザ周期とはかかわりなく隣接する点との
相関が高くなるため、かかる場合には2バイト離れた位
置よりも1バイト離れた位置のほうが相関が高くなり、
圧縮率の向上に寄与することができる。
【0059】次にステップS47にて、上記ステップS
8の2値化処理にて使用したディザマトリックスの周期
に応じた、上複写および近い左複写の位置、およびステ
ップS46にて設定したディフォルトの背景周期(遠い
左複写の位置)を圧縮パラメタを指定するコマンド(圧
縮パラメタ指定コマンド)として出力し、処理を終了す
る。
【0060】次に図9を参照し、図6のステップS11
における符号化処理の詳細について説明する。図9はス
テップS11における符号化処理の詳細を示すフローチ
ャートである。
【0061】まずステップS51にて、ライン番号Yを
0に初期化する。次にステップS52にて、ライン先頭
からのバイトオフセットXを0に初期化する。
【0062】次にステップS53にて、上位置が有効な
画像領域にあるか判定する。具体的には、図8のステッ
プS47にて出力した、上複写位置を示すライン数(以
下、Zで表す)が、ライン番号Yよりも大きいか否かを
判定する。上複写位置を示すライン数Zがライン番号Y
以下である場合は、上位置が有効な画像領域(符号化対
象のビットマップ内に存在する領域)にある場合なの
で、ステップS54にて現在の位置(X、Y)から始ま
るバイト列と、上位置(X、Y−Z)から始まるバイト
列とが連続して一致する長さを求める。なお、この際
に、ライン末まで連続して一致している場合には、ライ
ン末で打ち切るものとする。また、連続して一致する長
さが、カウント符号の最大値である4095バイトを超
える場合には、4095バイトで打ち切るものとする。
【0063】次にステップS55にて、ステップS54
で求めた長さが0であるか否かを判定する。ステップS
54で求めた長さが0でない場合、処理をステップS5
6に進め、ステップS54で求めた長さ(カウント)が
63より大きいか否かを判定する。ステップS54で求
めた長さが63より大きい場合は、処理をステップS5
7に進め、COUNT HIGHコマンドをRAM17
02、もしくは外部記憶装置1704に出力し、次いで
ステップS58にて、ステップS54で求めた長さを6
4で除算した商(カウントの上位)をRAM1702、
もしくは外部記憶装置1704に出力し、処理をステッ
プS59に進める。一方、ステップS56にて、ステッ
プS54で求めた長さが63以下である場合には処理を
ステップS59に進める。
【0064】次にステップS59にてCOPY UPコ
マンドをRAM1702、もしくは外部記憶装置170
4に出力し、次いでステップS60にて、ステップS5
4で求めた長さを64で除算した剰余(カウントの下
位)をRAM1702、もしくは外部記憶装置1704
に出力する。
【0065】一方、ステップS53にて、上複写位置を
示すライン数が、ライン番号Yよりも大きい場合、及び
ステップS55にて求めた長さが0であった場合は、処
理をステップS62に進め、近い左位置が有効な画像領
域にあるか判定する。具体的には、上記ステップS47
にて出力した、近い左複写位置を示すバイト数(以下、
Wで表す)が、ライン先頭からのバイトオフセットXよ
りも大きいか否かを判定する。近い左複写位置を示すバ
イト数Wが、ライン先頭からのバイトオフセットX以下
である場合は、近い左位置が有効な画像領域にある場合
なので、処理をステップS63に進め、現在の位置
(X、Y)から始めるバイト列と、近い左位置(X−
W、Y)から始まるバイト列とが連続して一致する長さ
(カウント)を求める。なお、この際に、ライン末まで
連続して一致している場合には、ライン末で打ち切るも
のとする。また、連続して一致する長さが、カウント符
号の最大値である4095バイトを超える場合には、4
095バイトで打ち切るものとする。
【0066】次にステップS64にて、ステップS63
で求めた長さが0であるか否かを判定する。ステップS
63にて求めた長さが0でない場合には、処理をステッ
プS65に進め、ステップS63にて求めた長さが63
より大きいか否かを判定する。ステップS63にて求め
た長さが63より大きい場合には、処理をステップS6
6に進め、COUNT HIGHコマンドをRAM17
02、もしくは外部記憶装置1704に出力し、次いで
ステップS67にて、カウントの上位、すなわちステッ
プS63にて求めた長さを64で除算した商をRAM1
702、もしくは外部記憶装置1704に出力し、処理
をステップS68に進める。一方、ステップS65に
て、ステップS63で求めた長さが63以下の場合に
は、処理をステップS68に進める。
【0067】次にステップS68にてCOPY NEA
R LEFTコマンドをRAM1702、もしくは外部
記憶装置1704に出力し、次にステップS60にて、
カウントの下位、すなわちステップS63にて求めた長
さを64で除算した剰余をRAM1702、もしくは外
部記憶装置1704に出力する。
【0068】一方、ステップS62にて、近い左複写位
置を示すバイト数Wが、ライン先頭からのバイトオフセ
ットXよりも大きい場合、及びステップS64にて求め
た長さが0であった場合は、処理をステップS69に進
め、遠い左位置が有効な画像領域にあるか判定する。具
体的には、図8のステップS47にて出力した、遠い左
複写位置を示すバイト数(以下、Rで表す)が、ライン
先頭からのバイトオフセットXよりも大きいか否かを判
定する。遠い左複写位置を示すバイト数Rが、ライン先
頭からのバイトオフセットX以下である場合は、遠い左
位置が有効な画像領域にある場合なので、処理をステッ
プS70に進め、現在の位置(X、Y)から始めるバイ
ト列と、遠い左位置(X−R、Y)から始まるバイト列
とが連続して一致する長さ(カウント)を求める。な
お、この際に、ライン末まで連続して一致している場合
には、ライン末で打ち切るものとする。また、連続して
一致する長さが、カウント符号の最大値である4095
バイトを超える場合には、4095バイトで打ち切るも
のとする。次にステップS71にて、ステップS70に
て求めた長さが0であるか否かを判定する。ステップS
70にて求めた長さが0でない場合には、処理をステッ
プS72に進め、ステップS70にて求めた長さが63
より大きいか否かを判定する。ステップS70にて求め
た長さが63より大きい場合には、処理をステップS7
3に進め、COUNT HIGHコマンドをRAM17
02、もしくは外部記憶装置1704に出力し、次いで
ステップS74にて、カウントの上位、すなわちステッ
プS70にて求めた長さを64で除算した商をRAM1
702、もしくは外部記憶装置1704に出力し、処理
をステップS75に進める。一方、ステップS72に
て、ステップS70で求めた長さが63以下である場合
には処理をステップS75に進める。
【0069】ステップS75では、COPY FAR
LEFTコマンドをRAM1702、もしくは外部記憶
装置1704に出力し、次いでステップS60にて、カ
ウントの下位、すなわちステップS70にて求めた長さ
を64で除算した剰余をRAM1702、もしくは外部
記憶装置1704に出力する。
【0070】一方、ステップS69にて、遠い左複写位
置を示すバイト数Rが、ライン先頭からのバイトオフセ
ットXよりも大きい場合、及びステップS71にて求め
た長さが0であった場合は、処理をステップS76に進
め、RAWコマンドをRAM1702、もしくは外部記
憶装置1704に出力し、次に現在の位置(X、Y)の
データ(1バイト分)を生データとしてRAM170
2、もしくは外部記憶装置1704に出力する。
【0071】上記の処理が終了すると処理をステップS
78に進め、処理したバイト数をXに加算する。次にス
テップS79にて、Xがライン末に達したか、すなわち
Xが1ラインのバイト数に等しいか否かを判定する。X
が1ラインのバイト数より小さい場合は、処理をステッ
プS53に戻し、処理を継続する。一方、Xが1ライン
のバイト数と等しい場合は、処理をステップS80に進
め、ライン番号Yに1を加算し、ステップS81にて、
画像の処理が終了したか、すなわちYが画像のライン数
と等しいか判定する。Yが画像のライン数より小さい場
合は、処理をステップS52に戻し、処理を継続する。
一方、Yが画像のライン数と等しい場合は、処理をステ
ップS82に進め、EOBコマンドをRAM1702、
もしくは外部記憶装置1704に出力し、次いでステッ
プS83にて、バイト境界に整列するために必要な数だ
け(例えば上述の符号化処理によりRAM1702、も
しくは外部記憶装置1704に出力されたビット列の長
さが8の倍数となるように)ビット「0」をバッファに
出力し、処理を終了する。
【0072】次に、図12を参照し、図2に示した復号
回路13の構成について詳細に説明する。図12は復号
回路13の詳細な構成を示すブロック図である。
【0073】同図において、入力バッファ21は、FI
FOメモリ12から読み出した符号データを格納する。
入力バッファ21は、少なくとも4バイトのデータを格
納することができ、バッファに空きが生じ、かつFIF
Oメモリ12にデータがある場合はFIFOメモリ12
からデータを読み出して格納する。入力バッファ21は
また、ビットカウンタ23に保持された、処理済ビット
数が8以上になった場合には、不要になった処理済デー
タを破棄する。
【0074】セレクタ22は、例えば11組の8入力セ
レクタであり、入力バッファ21に格納された符号デー
タを、ビットカウンタ23が示す処理済ビット数に従っ
て選択することにより、コマンドデコード回路24が処
理するために必要な、コマンドの開始位置合わせを行
う。これは、入力バッファ21がバイト単位にデータを
保持するのに対し、コマンドはビット単位の可変長デー
タであるため8箇所の開始位置があるために必要なもの
である。
【0075】ビットカウンタ23は、入力バッファ21
に格納された符号データのうち処理済みのビット数を格
納する。ビットカウンタ23はまた、コマンドデコード
回路24から出力された、コマンドのビット数を加算す
ることによりビットカウンタに格納された値を更新す
る。ビットカウンタ23はまた、入力バッファが処理済
データを破棄した場合には、破棄したビット数を減算す
る。ビットカウンタ23はまた、コマンドデコード回路
23がEOBコマンドを復号したときに、コマンドデコ
ード回路23からEOB信号を受信し、バイト境界合わ
せの処理を行う。具体的には、ビットカウンタの下位3
ビットが全て0であれば何もせず、そうでなければ8を
加算するとともに下位3ビットをクリアする。
【0076】コマンドデコード回路24は、例えばリー
ドオンリーメモリ、あるいはワイヤードロジックにより
構成され、セレクタ22によって位置合わせが行われ
た、入力バッファ21に格納された符号データを復号
し、復号したコマンドに従ってカウンタ26、上複写出
力回路27、遠い左複写出力回路28、近い左複写出力
回路29、生データ出力回路30、およびビットカウン
タ23に、前述の、あるいは後述する各種の信号を出力
する。
【0077】ライン長レジスタ25は、制御回路15が
あらかじめ出力した、1ラインのバイト数を保持する。
【0078】カウンタ26は、COPY UP、COP
Y NEAR LEFTあるいはCOPY FAR L
EFTコマンドの処理バイト数を保持し、1バイトのデ
ータ出力が行われる毎に減算される。カウンタ26は上
位6ビットと下位6ビットを独立に設定可能であり、コ
マンドデコード回路23がCOUNT HIGHコマン
ドを復号した時にはコマンドデコード回路23が出力す
る、処理バイト数の加算値をカウンタ26の上位に格納
する。また、コマンドデコード回路23がCOPY U
P、COPY NEAR LEFTあるいはCOPY
FAR LEFTコマンドを復号した時にはコマンドデ
コード回路23が出力する、処理バイト数をカウンタ2
6の下位に格納する。
【0079】上複写出力回路27は、カウンタ26が保
持する処理バイト数に従って、ラインバッファ31が出
力する、上複写位置のデータを読み取り、出力する。遠
い左複写出力回路28は、カウンタ26が保持する処理
バイト数に従って、ラインバッファ31が出力する、遠
い左複写位置のデータを読み取り、出力する。近い左複
写出力回路29は、カウンタ26が保持する処理バイト
数に従って、可変段シフトレジスタ38が出力する、近
い左複写位置のデータを読み取り、出力する。生データ
出力回路30は、コマンドデコード回路24が出力した
1バイトの生データを出力する。
【0080】列カウンタ41は、ラインバッファ31の
現在の列アドレスを保持し、ラインバッファ31に書き
込みが行われる毎に書き込まれたデータのサイズを随時
加算することで、カウント値を求める。そしてこのカウ
ント値がライン長レジスタ25が保持する1ラインのバ
イト数に達した場合、0に復帰する。
【0081】ラインバッファ31は、複数のラインの復
号データを保持し、減算回路40が出力するアドレスに
従って、復号データの入力または出力を行う。
【0082】行カウンタ32は、ラインバッファ31の
現在の行アドレスを保持し、上記カウント値が0に復帰
する毎にカウントアップし、カウントの結果が行数レジ
スタ36が保持するライン数に達した場合には、カウン
トを0に復帰する。行カウンタ32はまた、行数レジス
タ36にライン数が出力されたときには0に復帰する。
【0083】乗算回路33は、行カウンタ32が保持す
る現在の行アドレスと、ライン長レジスタ25が保持す
る1ラインのバイト数との積を計算することにより、ラ
インバッファ31の現在の行の先頭アドレスを出力す
る。加算回路34は、乗算回路33が出力する現在の行
の先頭アドレスと、列カウンタ41が保持する現在の列
アドレスとの和を計算することにより、ラインバッファ
31の現在のアドレスを出力する。背景周期レジスタ3
9は、制御回路15があらかじめ出力した、背景周期バ
イト数を保持する。
【0084】減算回路40は、遠い左複写出力回路よ
り、遠い左複写の読み取りを指示する信号を受信してい
るときは、加算回路34が出力する現在のアドレスか
ら、背景周期レジスタ39が保持する背景周期バイト数
を減算して出力するとともに、遠い左複写出力回路よ
り、遠い左複写の読み取りを指示する信号を受信してい
ないときは、加算回路34が出力する現在のアドレスを
そのまま出力する。
【0085】出力バッファ35は、上複写出力回路2
7、遠い左複写出力回路28、近い左複写出力回路2
9、または生データ出力回路30から復号データが出力
される毎に、出力された復号データを格納する。出力バ
ッファ35はまた、シフトレジスタ16から画像データ
の出力を要求されたときに、格納された復号データを出
力する。
【0086】行数レジスタ36は、制御回路15があら
かじめ出力した、ライン数(上複写垂直オフセット値)
を保持する。
【0087】段数レジスタ37は、制御回路15があら
かじめ出力した、近い左位置を示すバイトオフセット値
を保持する。可変段シフトレジスタ38は、シフトレジ
スタとセレクタによって構成され、段数レジスタ37が
保持する近い左位置を示すバイトオフセット値に等しい
段数のシフトレジスタを構成し、出力された復号データ
を、段数レジスタ37が保持する近い左位置を示すバイ
トオフセット値で指定された値より1だけ小さい回数遅
延したデータを出力する。
【0088】コマンドデコード回路24はCOPY U
Pコマンドをデコードすると、それに引き続くカウント
をデコードし、カウンタ26の下位に格納するととも
に、上複写出力回路27に上複写の読み取りを指示する
信号を出力する。カウンタ26の上位には、COUNT
HIGHコマンドが先行しなかった場合には0が、先
行した場合にはCOUNT HIGHコマンドが示す上
位カウントが格納されている。上複写出力回路27は、
ラインバッファ31において、加算回路34、減算回路
40が出力するアドレス(言い換えれば、現在の位置)
に格納されたデータを読み出し、ラインバッファ31に
出力する(同じデータを上書きすることになるので、こ
の処理は行わなくても良いが)と共に、出力バッファ3
5に出力する。一方、読み出された復号データは可変段
シフトレジスタ38に入力される(以下、先頭から)。
そして可変段シフトレジスタ38に既に保持されていた
データは一段ずつシフトされ、可変段シフトレジスタ3
8の最終段からは、現在の位置の次の位置に対応する近
い左複写位置の1バイトが出力される。次いで列カウン
タ41はカウントアップされ、カウンタ26はカウント
ダウンされる。このようにして、カウンタ26が0に達
するまで、復号データの出力が行われる。
【0089】コマンドデコード回路24はCOPY F
AR LEFTコマンドをデコードすると、引き続くカ
ウントをデコードし、カウンタ26の下位に格納すると
ともに、遠い左複写出力回路28に遠い左複写を指示す
る信号を出力する。カウンタ26の上位には、COUN
T HIGHコマンドが先行しなかった場合には0が、
先行した場合にはCOUNT HIGHコマンドが示す
上位カウントが格納されている。ここで遠い左複写出力
回路は、遠い左位置のデータ読み取りを指示する信号を
一時的に出力するため、ラインバッファ31において、
加算回路40の出力(現在のアドレス)から、背景周期
レジスタ39が保持する背景周期の値を減算した値、す
なわち遠い左位置のアドレスに格納された復号データを
読み取り、ラインバッファ31の現在の位置に書き込む
と共に、出力バッファ35にも出力する。また、読み出
した復号データは可変段シフトレジスタ38に入力され
る。そして、可変段シフトレジスタ38に保持されてい
たデータは一段ずつシフトされ、可変段シフトレジスタ
38の最終段からは、現在の位置の次の位置に対応する
近い左複写位置の1バイトが出力される。次いで列カウ
ンタ41はカウントアップされ、カウンタ26はカウン
トダウンされる。このようにして、カウンタ26が0に
達するまで、復号データの出力が行われる。
【0090】コマンドデコード回路24はCOPY N
EAR LEFTコマンドをデコードすると、引き続く
カウントをデコードし、カウンタ26の下位に格納する
とともに、近い左複写出力回路29に近い左複写を指示
する信号を出力する。カウンタ26の上位には、COU
NT HIGHコマンドが先行しなかった場合には0
が、先行した場合にはCOUNT HIGHコマンドが
示す上位カウントが格納されている。近い左複写回路2
9は、可変段シフトレジスタ38が出力する近い左複写
位置の1バイトの復号データを出力バッファ35に出力
すると共に、ラインバッファ31の現在の位置に書き込
む。又読み出した1バイトの復号データは可変段シフト
レジスタ38に入力する。可変段シフトレジスタ38に
保持されていたデータは一段ずつシフトされ、可変段シ
フトレジスタ38の最終段からは、現在の位置の次の位
置に対応する近い左複写位置の1バイトが出力される。
次いで列カウンタ41はカウントアップされ、カウンタ
26はカウントダウンされる。このようにして、カウン
タ26が0に達するまで、復号データの出力が行われ
る。
【0091】コマンドデコード回路24はRAWコマン
ドをデコードすると、引き続く1バイトの生データ(復
号データ)を生データ出力回路30に出力する。生デー
タ出力回路30はこの復号データを出力バッファ35に
出力すると共に、ラインバッファ31の現在の位置に書
き込む。またこの復号データは可変段シフトレジスタ3
8に入力される。また可変段シフトレジスタ38に保持
されていたデータは一段ずつシフトされ、可変段シフト
レジスタ38の最終段からは、現在の位置の次の位置に
対応する近い左複写位置の1バイトが出力される。
【0092】コマンドデコード回路24はCOUNT
HIGHコマンドをデコードすると、引き続くカウント
をデコードし、カウンタ26の上位に格納する。
【0093】次に図13および図14を参照し、ライン
バッファ31のデータ入出力の動作について説明する。
図13は、符号化前、もしくは復号後の画像データの構
成を示すものであり、一例として1ラインの長さが10
バイトの場合を示す。図に示すように、先頭ラインの左
から00、01、...09の順にバイト(画像デー
タ)が並び、次のラインの左から10、11、...1
9の順にバイトが並ぶ。以降のラインも同様である。
【0094】図14は、ラインバッファ31の各々のア
ドレスに、図13に示す画像データがどのように格納さ
れるのかを説明するものであり、一例として1ラインの
長さが10バイト、上複写位置を示すライン数が3ライ
ンの場合を示す。
【0095】最初に行カウンタ32および列カウンタ4
1がともに0であったとすると、最初のデータ入出力は
行アドレス0かつ列アドレス0に対して行われる。な
お、最初の3ラインの画像が書き込まれるまでは、ライ
ンバッファ31から出力されるデータは不定である。
【0096】ラインバッファ31の、行アドレス0かつ
列アドレス0からデータが読み取られ、次いで同じアド
レスに、図11示のバイト00が書き込まれると、列カ
ウンタ41はカウントアップし、1を保持する。次に行
アドレス0かつ列アドレス1からデータが読み取られ、
次いで同じアドレスに、バイト01が書き込まれると、
列カウンタ42はカウントアップし、2を保持する。こ
のようにして10バイトが書き込まれると、列カウンタ
41は10を保持するので、ライン長レジスタ25が保
持する1ラインのバイト数と等しくなり、列カウンタ4
1は0を保持し、行カウンタ32はカウントアップし、
1を保持する。次に行アドレス1かつ列アドレス0から
データが読み取られ、次いで同じアドレスに、バイト1
0が書き込まれると、列カウンタ30はカウントアップ
し、1を保持する。このようにして、20バイトのデー
タが書き込まれると、列カウンタ41は0を保持すると
ともに、行カウンタ32はカウントアップして3を保持
するので、行数レジスタ36が保持するライン数と等し
くなり、行カウンタ32は0を保持することになる。
【0097】ここで行カウンタ32および列カウンタ3
0はともに0となっているので、最初に書き込まれた、
バイト00が読み取られ、次いでバイト30が書き込ま
れる。このようにして、順次、3ライン上のデータを読
んだ後に現在のラインのデータが上書きされ、ラインバ
ッファ31は、いわゆるリングメモリとして動作する。
【0098】次に図15を参照し、ラインバッファ3
1、および可変段シフトレジスタ38の動作タイミング
を説明する。
【0099】図15は、図13に示す画像データがどの
ようなタイミングで処理されるかを説明するものであ
り、一例として1ラインの長さが10バイト、上複写位
置を示すライン数が3ライン、近い左複写位置を示すバ
イトオフセット値が2バイトの場合を示す。
【0100】図中、A1はちょうど先頭の3ラインの処
理を終えた時点を示す。上述の説明のごとく、このとき
に行カウンタ32および列カウンタ41はともに0に復
帰するので、ラインバッファ35からは図11に示すバ
イト00が読み取られる。A1時点にて、上複写回路2
7が動作している場合には、A2時点にて、ラインバッ
ファ35から読み取っているデータが確定すると、バイ
ト00が上複写回路27に入力される。次に上複写出力
回路27が復号データをA3時点までに出力する。A3
時点において、出力された復号データは、バイト30と
して、ラインバッファ35に格納される。このとき可変
段レジスタ38にクロックが入力され、可変段シフトレ
ジスタ38に保持されていたデータは1段ずつシフトす
るとともに、先頭段のシフトレジスタには出力された復
号データ、すなわちデータバイト30が保持される。ま
た、可変段シフトレジスタ38は、段数レジスタ37が
保持する、近い左位置を示すバイトオフセット値より1
小さい段数のシフトレジスタを構成するため、可変段シ
フトレジスタ38の最終段は、可変段シフトレジスタ3
8の先頭段より1バイト遅れたデータ、すなわちバイト
29が出力される。このようにして、復号データが出力
される毎に、データバッファ35に格納されるととも
に、可変段シフトレジスタ38に保持されたデータは1
段ずつシフトされる。
【0101】C1時点で近い左複写出力回路29が動作
していた場合は、可変段シフトレジスタ38の最終段が
出力している、近い左位置のデータバイト、すなわちデ
ータバイト30が近い左複写出力回路29に入力され
る。次に上複写出力回路27が復号データをA3時点ま
でに出力する。C3時点において、出力された復号デー
タは、データバイト32として、データバッファ35に
格納され、以下上述の例と同様に動作を行う。
【0102】遠い左複写出力回路28、あるいは生デー
タ出力回路30がデータ出力した場合も同様に動作す
る。
【0103】次に図16を参照し、制御回路15が実行
する印刷制御手順を説明する。図16は、制御回路15
が実行する印刷制御手順を示すフローチャートであり、
データの受信などその他の処理(不図示)と並行に動作
する。
【0104】印刷制御手順が起動されると、まずステッ
プS101にて印刷可能ページがあるか、具体的には改
ページコマンドを受信していて未印刷のページがあるか
否かを判定する。印刷可能ページがない場合には、改ペ
ージコマンドを受信して印刷可能ページができるまでス
テップS101にて待機する。
【0105】印刷可能ページがある場合は処理をステッ
プS102に進め、プリンタエンジン14に印刷の開始
を指示する。次にステップS103にて、ページの印刷
条件指定コマンドにて指定された1ラインのバイト数を
ライン長レジスタ25に設定する。次にステップS10
4にて、ページの圧縮パラメタ指定コマンドにて指定さ
れた、上複写位置を示すライン数、近い左複写位置を示
すバイトオフセット値、および遠い左複写位置を示すバ
イトオフセット値を、行数レジスタ36、段数レジスタ
37、および背景周期レジスタ39にそれぞれ設定す
る。次にステップS105にて、1ページの印刷が終了
するまで待つ。印刷が開始されると、復号回路13によ
り、上記のレジスタに設定された値に基づいて復号が行
われる。1ページの印刷が終了すると、処理をステップ
S101に戻し、印刷可能ページを待つ。
【0106】このようにして、符号化の際に使用された
圧縮パラメタを用いて復号が行われるため、常に正しい
復号データが得られる。
【0107】以上の説明により、本実施形態によって、
背景パターンの周期を検出し、検出した周期に応じた位
置を参照して符号化を行うため、背景パターンを効率よ
く圧縮することができる。また、検出した周期に応じた
位置および限られた少数の位置のみを参照して符号化を
行うため、高速に圧縮することができる。また、背景パ
ターンの周期を検出する際に、背景パターンのデータ自
体を使用せず、背景パターンの大きさと位置のみにより
検出するため、高速に周期を検出することができる。ま
た、検出した背景パターンの周期を、1バイトの画素数
およびディザ周期に応じて補正しているため、ディザ処
理が行われた画像であっても効率よく圧縮することがで
きる。また、背景パターンの周期が検出されなかった場
合に、ディフォルトの参照位置を使用して符号化を行う
ため、そのようなことを行わない場合に較べて効率よく
圧縮することができる。
【0108】[第2の実施形態]なお上述の実施形態で
は、画像の左端付近で近い左複写位置が画像の左端から
はみ出る場合には参照しないように構成されているが、
これに代えて他の方法、例えば前ラインの右側に回り込
むように、あるいは画像の左端からはみ出た場合には、
固定値0を参照するようにしても良い。
【0109】また、上述の実施形態では、画像データ1
バイトを単位として符号化および復号が行われている
が、これに代えて他の単位、例えば1画素あるいは2バ
イトなどを単位としても良い。
【0110】また上述の実施形態では、白黒画像を扱っ
ていたが、これに代えてカラー画像を扱うようにしても
よい。
【0111】また上述の実施形態では、1画素が1ビッ
トにより構成されていたが、これに代えて他の値、例え
ば2ビット、4ビットあるいは8ビットとしてもよい。
【0112】また上述の実施形態では、ハードウェアに
よって復号していたが、これに代えてソフトウェアで復
号するようにしてもよい。
【0113】また上述の実施形態では、ディザ処理を行
っているが、これに代えてディザ処理を行わないように
してもよい。
【0114】また上述の実施形態では、背景パターンの
横方向の周期性を利用して圧縮を行っているが、これに
代えて縦方向、あるいは縦横双方の周期性を利用して圧
縮してもよい。
【0115】また上述の実施形態では、異なる周期を検
出した場合に最大値を周期としていたが、これに代え
て、異なる周期のうち最も頻度が高い値を周期としても
よい。
【0116】[他の実施形態]なお、本発明は、複数の
機器(例えばホストコンピュータ、インタフェイス機
器、リーダ、プリンタなど)から構成されるシステムに
適用しても、一つの機器からなる装置(例えば、複写
機、ファクシミリ装置など)に適用してもよい。
【0117】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
録した記憶媒体(または記録媒体)を、システムあるい
は装置に供給し、そのシステムあるいは装置のコンピュ
ータ(またはCPUやMPU)が記憶媒体に格納されたプログ
ラムコードを読み出し実行することによっても、達成さ
れることは言うまでもない。この場合、記憶媒体から読
み出されたプログラムコード自体が前述した実施形態の
機能を実現することになり、そのプログラムコードを記
憶した記憶媒体は本発明を構成することになる。また、
コンピュータが読み出したプログラムコードを実行する
ことにより、前述した実施形態の機能が実現されるだけ
でなく、そのプログラムコードの指示に基づき、コンピ
ュータ上で稼働しているオペレーティングシステム(OS)
などが実際の処理の一部または全部を行い、その処理に
よって前述した実施形態の機能が実現される場合も含ま
れることは言うまでもない。
【0118】さらに、記憶媒体から読み出されたプログ
ラムコードが、コンピュータに挿入された機能拡張カー
ドやコンピュータに接続された機能拡張ユニットに備わ
るメモリに書込まれた後、そのプログラムコードの指示
に基づき、その機能拡張カードや機能拡張ユニットに備
わるCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることは言うまでもない。
【0119】本発明を上記記憶媒体に適用する場合、そ
の記憶媒体には、先に説明した(図6乃至9,16の一
部もしくは全部の)フローチャートに対応するプログラ
ムコードが格納されることになる。
【0120】
【発明の効果】以上の説明したとおり、本発明によれ
ば、周期性を有する画像、特に壁紙などの背景パターン
を並べた画像データを符号化する際に、画像全体をより
高速に、且つより高圧縮率で圧縮することができる。
【0121】また本発明によれば、壁紙などの背景パタ
ーンを並べた画像を符号化した符号を復号する復号回路
の回路規模を小さくし、かつ大量のバッファメモリを必
要としない、低コストで構成可能な復号を行うことがで
きる。
【図面の簡単な説明】
【図1】画像を印刷する際に用いるソフトウェア群とプ
リンタとの関係を示す概念図である。
【図2】プリンタ1111の基本構成を示すブロック図
である。
【図3】図1に示したプリンタドライバ4が生成する符
号化データに含まれる各符号の一例を示すテーブルを示
す図である。
【図4】カウント符号の一例を示すテーブルを示す図で
ある。
【図5】図3及び図4に示した各符号の使用例を説明す
る図である。
【図6】プリンタドライバ4が行うメインの処理のフロ
ーチャートである。
【図7】ステップS4における処理の詳細を示すフロー
チャートである。
【図8】ステップS10における処理の詳細を示すフロ
ーチャートである。
【図9】ステップS11における処理の詳細を示すフロ
ーチャートである。
【図10】印刷データの一例を示す図である。
【図11】図10の印刷データを構成する各パターンを
示す図である。
【図12】復号回路13の詳細な構成を示すブロック図
である。
【図13】符号化前、もしくは復号後の画像データの構
成を示す図である。
【図14】ラインバッファ31の各々のアドレスに、図
13に示す画像データがどのようにして格納されるのか
を説明する図である。
【図15】図13に示す画像データがどのようなタイミ
ングで処理されるかを説明する図である。
【図16】制御回路15が実行する印刷制御処理手順を
示すフローチャートである。
【図17】本発明の実施形態における画像処理装置の基
本構成を示す図である。
【図18】ビットマップ管理テーブルの構成例を示す図
である。

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 画像を符号化する画像処理装置であっ
    て、 画像に対して所定のサイズのマトリクスを用いて減色処
    理を施す減色手段と、 前記減色処理を施された画像のパターンの周期を検出す
    る周期検出手段と、 前記周期及び/又は、前記マトリクスのサイズに応じた
    画素の相対位置関係を用いて、前記減色処理を施された
    画像を符号化する符号化手段とを備えることを特徴とす
    る画像処理装置。
  2. 【請求項2】 前記減色手段は、画像に対して所定のサ
    イズのディザマトリクスを用いてディザ処理を施すこと
    を特徴とする請求項1に記載の画像処理装置。
  3. 【請求項3】 前記周期検出手段は更に、 印刷対象の1ページに含まれる1つ以上の画像のうち、
    所定のサイズ以上の画像に関する情報を格納する画像格
    納手段を備え、 前記画像格納手段に格納されている画像に関する情報を
    用いて、隣接している画像のうちで最も大きいサイズを
    前記周期とすることを特徴とする請求項1に記載の画像
    処理装置。
  4. 【請求項4】 前記画像に関する情報として、画像の左
    上隅の座標、幅、高さを含むことを特徴とする請求項3
    に記載の画像処理装置。
  5. 【請求項5】 前記符号化手段は更に、 符号化対象の列の画素列と、当該列と所定の位置関係に
    ある列の画素列とを比較して、一致する画素列の長さを
    求め、当該一致する画素列として、前記比較内容を示す
    コマンドと共に、前記長さを示すコマンドを出力する第
    1のコマンド出力手段と、 前記長さが0の場合、符号化対象の列の画素列と、当該
    列において所定の位置関係にある画素列とを比較して、
    一致する画素列の長さを求め、当該一致する画素列とし
    て、前記比較内容を示すコマンドと共に、前記長さを示
    すコマンドを出力する第2のコマンド出力手段と、 更に、前記第1のコマンド出力手段により求めた長さ、
    前記第2のコマンド出力手段により求めた長さが共に0
    の場合、符号化対象の画素データを示すコマンドを出力
    する第3のコマンド出力手段と、 第1乃至3のコマンド出力手段のいずれかにより求めた
    長さが所定の長さ以上である場合、当該長さを当該所定
    の長さで除算した商を、所定のコマンドと共に出力する
    第4のコマンド出力手段とを備え、 前記第1乃至4のコマンド出力手段の一部もしくは全部
    によるコマンドを含む符号化データを生成することを特
    徴とする請求項1に記載の画像処理装置。
  6. 【請求項6】 前記第1のコマンド出力手段は、符号化
    対象の列の画素列と、当該列と前記ディザマトリクスの
    サイズに応じて離間した列の画素列とを比較することを
    特徴とする請求項5に記載の画像処理装置。
  7. 【請求項7】 前記第2のコマンド出力手段は更に、 符号化対象の列の画素列と、当該列において第1の位置
    関係にある画素列とを比較して、一致する画素列の長さ
    を求め、当該一致する画素列として、前記比較内容を示
    すコマンドと共に、前記長さを示すコマンドを出力する
    手段と、 符号化対象の列の画素列と、当該列において第2の位置
    関係にある画素列とを比較して、一致する画素列の長さ
    を求め、当該一致する画素列として、前記比較内容を示
    すコマンドと共に、前記長さを示すコマンドを出力する
    手段とを備え、 前記第2の位置関係は前記第1の位置関係よりも遠い位
    置関係を示すことを特徴とする請求項5に記載の画像処
    理装置。
  8. 【請求項8】 前記第1の位置関係は、前記マトリクス
    のサイズに応じて決まることを特徴とする請求項7に記
    載の画像処理装置。
  9. 【請求項9】 前記第2の位置関係は、前記周期に応じ
    て決まることを特徴とする請求項7に記載の画像処理装
    置。
  10. 【請求項10】 符号化された画像を復号する画像処理
    装置であって、 復号した画素列を所定ライン数分格納する格納手段と、 符号化データに含まれるコマンド群をデコードするデコ
    ード手段と、 前記デコード手段によってデコードされたコマンドに応
    じて前記格納手段から画素列を読み取り、読みとった画
    素列を前記格納手段に格納すると共に、読みとった画素
    列を所定のバッファに順次出力し、更に、前記デコード
    手段によりデコードされたコマンドが画像のライン方向
    に関するコマンドである場合、前記画像のパターンの周
    期に応じて前記格納手段から読みとる位置を変更する復
    号手段とを備えることを特徴とする画像処理装置。
  11. 【請求項11】 更に、前記復号手段により復号された
    画素列を所定個数分だけ遅延させた画素のデータを出力
    する遅延手段を備え、 前記所定個数は、前記画像を減色処理する際に用いられ
    たマトリクスのサイズに応じて決まることを特徴とする
    請求項10に記載の画像処理装置。
  12. 【請求項12】 前記格納手段は、前記デコード手段が
    デコードするコマンドに含まれる上複写位置を示すライ
    ン数分、復号した画素列を格納するリングメモリである
    ことを特徴とする請求項10に記載の画像処理装置。
  13. 【請求項13】 前記復号手段は更に、 前記デコード手段がデコードしたコマンドが、復号対象
    のラインよりも上のラインに含まれる画素列を読みとる
    ことを示すコマンドである場合、前記格納手段において
    復号する画素の位置にあるデータを読みとって、当該デ
    ータを前記所定のバッファに順次出力する第1のコマン
    ド復号手段と、 前記デコード手段がデコードしたコマンドが、復号対象
    のラインに含まれる画素列を読みとることを示すコマン
    ドである場合、前記格納手段において復号する画素の位
    置から前記周期に応じて移動した位置にあるデータ、も
    しくは前記遅延手段により出力されるデータを読みとっ
    て、前記格納手段において復号する画素の位置に出力す
    ると共に、当該データを前記所定のバッファに順次出力
    する第2のコマンド復号手段と、 前記デコード手段がデコードしたコマンドが、復号対象
    の画素を示すコマンドである場合、当該コマンドが示す
    データを前記格納手段において復号する画素の位置に出
    力すると共に、当該データを前記所定のバッファに順次
    出力する第3のコマンド復号手段と、 前記デコード手段がデコードしたコマンドが、読みとる
    画素列の長さを示すコマンドである場合、当該コマンド
    で示される長さを所定のバッファに格納する第4のコマ
    ンド復号手段とを備えることを特徴とする請求項10乃
    至12のいずれか1項に記載の画像処理装置。
  14. 【請求項14】 前記第1,2のコマンド復号手段は、
    デコードされたコマンドにより指定される第1の長さ
    と、前記第4のコマンド復号手段によるコマンドにより
    指定される第2の長さとを用いた長さの画素列を前記格
    納手段、もしくは前記遅延手段から読み出すことを特徴
    とする請求項13に記載の画像処理装置。
  15. 【請求項15】 画像を符号化する画像処理方法であっ
    て、 画像に対して所定のサイズのマトリクスを用いて減色処
    理を施す減色工程と、 前記減色処理を施された画像のパターンの周期を検出す
    る周期検出工程と、 前記周期及び/又は、前記マトリクスのサイズに応じた
    画素の相対位置関係を用いて、前記減色処理を施された
    画像を符号化する符号化工程とを備えることを特徴とす
    る画像処理方法。
  16. 【請求項16】 前記周期検出工程は更に、 印刷対象の1ページに含まれる1つ以上の画像のうち、
    所定のサイズ以上の画像に関する情報を所定の格納手段
    に格納する画像格納工程を備え、 前記画像格納工程で格納される画像に関する情報を用い
    て、隣接している画像のうちで最も大きいサイズを前記
    周期とすることを特徴とする請求項15に記載の画像処
    理方法。
  17. 【請求項17】 前記符号化工程は更に、 符号化対象の列の画素列と、当該列と所定の位置関係に
    ある列の画素列とを比較して、一致する画素列の長さを
    求め、当該一致する画素列として、前記比較内容を示す
    コマンドと共に、前記長さを示すコマンドを出力する第
    1のコマンド出力工程と、 前記長さが0の場合、符号化対象の列の画素列と、当該
    列において所定の位置関係にある画素列とを比較して、
    一致する画素列の長さを求め、当該一致する画素列とし
    て、前記比較内容を示すコマンドと共に、前記長さを示
    すコマンドを出力する第2のコマンド出力工程と、 更に、前記第1のコマンド出力工程で求めた長さ、前記
    第2のコマンド出力工程で求めた長さが共に0の場合、
    符号化対象の画素データを示すコマンドを出力する第3
    のコマンド出力工程と、 第1乃至3のコマンド出力工程のいずれかで求めた長さ
    が所定の長さ以上である場合、当該長さを当該所定の長
    さで除算した商を、所定のコマンドと共に出力する第4
    のコマンド出力工程とを備え、 前記第1乃至4のコマンド出力工程による一部もしくは
    全部によるコマンドを含む符号化データを生成すること
    を特徴とする請求項15に記載の画像処理方法。
  18. 【請求項18】 前記第2のコマンド出力工程は更に、 符号化対象の列の画素列と、当該列において第1の位置
    関係にある画素列とを比較して、一致する画素列の長さ
    を求め、当該一致する画素列として、前記比較内容を示
    すコマンドと共に、前記長さを示すコマンドを出力する
    工程と、 符号化対象の列の画素列と、当該列において第2の位置
    関係にある画素列とを比較して、一致する画素列の長さ
    を求め、当該一致する画素列として、前記比較内容を示
    すコマンドと共に、前記長さを示すコマンドを出力する
    工程とを備え、 前記第2の位置関係は前記第1の位置関係よりも遠い位
    置関係を示すことを特徴とする請求項17に記載の画像
    処理方法。
  19. 【請求項19】 符号化された画像を復号する画像処理
    方法であって、 復号した画素列を所定ライン数分所定の格納手段に格納
    しておき、 符号化データに含まれるコマンド群をデコードするデコ
    ード工程と、 前記デコード工程でデコードされたコマンドに応じて前
    記格納手段から画素列を読み取り、読みとった画素列を
    前記格納手段に格納すると共に、読みとった画素列を所
    定のバッファに順次出力し、更に、前記デコード工程で
    デコードされたコマンドが画像のライン方向に関するコ
    マンドである場合、前記画像のパターンの周期に応じて
    前記格納手段から読みとる位置を変更する復号工程とを
    備えることを特徴とする画像処理方法。
  20. 【請求項20】 更に、前記復号工程で復号された画素
    列を所定個数分だけ遅延させた画素のデータを出力する
    遅延工程を備え、 前記所定個数は、前記画像を減色処理する際に用いられ
    たマトリクスのサイズに応じて決まることを特徴とする
    請求項19に記載の画像処理方法。
  21. 【請求項21】 前記復号工程は更に、 前記デコード工程でデコードしたコマンドが、復号対象
    のラインよりも上のラインに含まれる画素列を読みとる
    ことを示すコマンドである場合、前記格納手段において
    復号する画素の位置にあるデータを読みとって、当該デ
    ータを前記所定のバッファに順次出力する第1のコマン
    ド復号工程と、 前記デコード工程でデコードしたコマンドが、復号対象
    のラインに含まれる画素列を読みとることを示すコマン
    ドである場合、前記格納手段において復号する画素の位
    置から前記周期に応じて移動した位置にあるデータ、も
    しくは前記遅延工程で出力されるデータを読みとって、
    前記格納手段において復号する画素の位置に出力すると
    共に、当該データを前記所定のバッファに順次出力する
    第2のコマンド復号工程と、 前記デコード工程でデコードしたコマンドが、復号対象
    の画素を示すコマンドである場合、当該コマンドが示す
    データを前記格納手段において復号する画素の位置に出
    力すると共に、当該データを前記所定のバッファに順次
    出力する第3のコマンド復号工程と、 前記デコード工程でデコードしたコマンドが、読みとる
    画素列の長さを示すコマンドである場合、当該コマンド
    で示される長さを所定のバッファに格納する第4のコマ
    ンド復号工程とを備えることを特徴とする請求項19又
    は20に記載の画像処理方法。
  22. 【請求項22】 情報処理装置に読み込ませることで、
    当該情報処理装置を請求項1乃至14のいずれか1項に
    記載の画像処理装置として機能させるプログラム。
  23. 【請求項23】 請求項15乃至21のいずれか1項に
    記載の画像処理方法を実行するプログラム。
  24. 【請求項24】 請求項22又は23に記載のプログラ
    ムを格納し、コンピュータが読み取り可能な記憶媒体。
JP2001373269A 2001-12-06 2001-12-06 画像処理装置、画像処理方法、プログラム、及び記憶媒体 Expired - Fee Related JP4164257B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2001373269A JP4164257B2 (ja) 2001-12-06 2001-12-06 画像処理装置、画像処理方法、プログラム、及び記憶媒体
EP02258367.8A EP1318665B1 (en) 2001-12-06 2002-12-04 Image processing apparatus and method, program, and storage medium
CN 200810094578 CN101282405B (zh) 2001-12-06 2002-12-05 图像处理装置、图像处理方法
CNB02155529XA CN100397866C (zh) 2001-12-06 2002-12-05 图像处理装置、图像处理方法
CN 200810097396 CN101282406B (zh) 2001-12-06 2002-12-05 图像处理装置
CN2008100973975A CN101282407B (zh) 2001-12-06 2002-12-05 图像处理装置、图像处理方法
US10/310,812 US7245396B2 (en) 2001-12-06 2002-12-06 Image data coding apparatus, image data decoding apparatus, image data coding method and image data decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001373269A JP4164257B2 (ja) 2001-12-06 2001-12-06 画像処理装置、画像処理方法、プログラム、及び記憶媒体

Publications (2)

Publication Number Publication Date
JP2003174564A true JP2003174564A (ja) 2003-06-20
JP4164257B2 JP4164257B2 (ja) 2008-10-15

Family

ID=19182021

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001373269A Expired - Fee Related JP4164257B2 (ja) 2001-12-06 2001-12-06 画像処理装置、画像処理方法、プログラム、及び記憶媒体

Country Status (2)

Country Link
JP (1) JP4164257B2 (ja)
CN (3) CN101282405B (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008504734A (ja) * 2004-06-25 2008-02-14 アボセント コーポレイション デジタル映像圧縮コマンド優先度
JP2010231726A (ja) * 2009-03-30 2010-10-14 Oki Data Corp 情報処理装置
JP2013141165A (ja) * 2012-01-05 2013-07-18 Ricoh Co Ltd 画像処理装置および画像処理方法、ならびに、画像形成装置
US8599918B2 (en) 2007-10-18 2013-12-03 Fujitsu Limited Video compression encoding/decompression device, video compression encoding/decompression program and video generation/output device
CN103729153A (zh) * 2012-10-15 2014-04-16 金蝶软件(中国)有限公司 打印方法和打印装置
JP2015227913A (ja) * 2014-05-30 2015-12-17 セイコーエプソン株式会社 画像処理装置、表示装置、画像処理方法およびプログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2550548A (en) 2016-05-09 2017-11-29 Markes International Ltd A sampling apparatus
CN110830423A (zh) * 2018-08-10 2020-02-21 北京仁光科技有限公司 一种安全网络数据交互系统及方法
CN116779114B (zh) * 2023-08-24 2023-11-03 邹城市人民医院 一种抗肿瘤医疗mri图像信息智能管理系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6229372A (ja) * 1985-07-31 1987-02-07 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 2値デ−タの圧縮方法
US5787192A (en) * 1994-09-27 1998-07-28 Kabushikaisha Equos Research Image data compression apparatus and image data communication system
US5917952A (en) * 1995-09-20 1999-06-29 Hewlett-Packard Company Compression of randomly dithered bi-level images
GB9522077D0 (en) * 1995-10-27 1996-01-03 Univ Strathclyde Data compression
FR2742248B1 (fr) * 1995-12-06 1998-01-23 Thomson Multimedia Sa Procede de traitement de donnees dans des reseaux matriciels dans un systeme d'estimation de mouvement
EP0797348A3 (en) * 1996-03-22 1999-01-20 Hewlett-Packard Company A one dimensional context model for entropy encoding digital halftone images with arithmetic coding
US5915042A (en) * 1996-03-28 1999-06-22 Oki Data Corporation Coding and decoding methods and apparatus for compressing and expanding image data
KR100425615B1 (ko) * 1996-11-07 2004-04-01 마쯔시다덴기산교 가부시키가이샤 부호화 방법 및 장치와 복호화 방법 및 장치
US5930790A (en) * 1997-09-25 1999-07-27 Xerox Corporation String-match array for substitutional compression
JP3095071B2 (ja) * 1998-04-21 2000-10-03 日本電気株式会社 パタンマッチング符号化装置、及びその符号化方法
US6011873A (en) * 1998-04-29 2000-01-04 Penware, Inc. Method and apparatus for lossless compression of signature data
JP3589871B2 (ja) * 1998-09-03 2004-11-17 富士通株式会社 テクスチャ圧縮・復元方法及び装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008504734A (ja) * 2004-06-25 2008-02-14 アボセント コーポレイション デジタル映像圧縮コマンド優先度
US8599918B2 (en) 2007-10-18 2013-12-03 Fujitsu Limited Video compression encoding/decompression device, video compression encoding/decompression program and video generation/output device
JP2010231726A (ja) * 2009-03-30 2010-10-14 Oki Data Corp 情報処理装置
US8427682B2 (en) 2009-03-30 2013-04-23 Oki Data Corporation Information processing device that performs data access control through connecting to multiple devices and method thereof
JP2013141165A (ja) * 2012-01-05 2013-07-18 Ricoh Co Ltd 画像処理装置および画像処理方法、ならびに、画像形成装置
CN103729153A (zh) * 2012-10-15 2014-04-16 金蝶软件(中国)有限公司 打印方法和打印装置
JP2015227913A (ja) * 2014-05-30 2015-12-17 セイコーエプソン株式会社 画像処理装置、表示装置、画像処理方法およびプログラム

Also Published As

Publication number Publication date
CN101282406B (zh) 2013-03-06
CN101282405B (zh) 2012-12-26
CN101282407A (zh) 2008-10-08
CN101282406A (zh) 2008-10-08
JP4164257B2 (ja) 2008-10-15
CN101282407B (zh) 2011-12-21
CN101282405A (zh) 2008-10-08

Similar Documents

Publication Publication Date Title
EP1318665B1 (en) Image processing apparatus and method, program, and storage medium
JP4366408B2 (ja) グラフィック画像の圧縮システムおよび方法
US7468803B2 (en) Image processing apparatus and image processing method
US7119807B2 (en) Image processing apparatus and image processing method
JP2008042688A (ja) 画像処理装置およびその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US7167259B2 (en) System and method for merging line work objects using tokenization and selective compression
JP2000295113A (ja) ハフマン符号化データ圧縮装置
US6958714B2 (en) Encoding method and encoding apparatus, and computer program and computer readable storage medium
JP4164257B2 (ja) 画像処理装置、画像処理方法、プログラム、及び記憶媒体
JP2830690B2 (ja) 画像処理装置
US6785424B1 (en) Encoding method and apparatus for compressing a data structure having two or more dimensions, decoding method, and storage medium
JPH06344601A (ja) 出力装置および出力方法
JP3970007B2 (ja) 画像処理装置、画像処理方法、プログラム、及び記憶媒体
JP3346051B2 (ja) 画像処理装置
US8582168B2 (en) Image processing apparatus and processing method thereof
JP3695498B2 (ja) 画像処理装置
JP3433276B2 (ja) 画像信号圧縮方法及び装置,画像信号復元方法及び装置,画像信号圧縮・復元方法及び装置,並びにプリンタ装置
JPH09167222A (ja) 画像処理装置
JP2003189108A (ja) 画像圧縮方法
CN110913223B (zh) 图像解压缩装置、其控制方法及计算机可读存储介质
JPH06113145A (ja) 画像処理装置
JP3203352B2 (ja) データ伸張処理装置
US20010031080A1 (en) Data compression processing method and apparatus
JP4006351B2 (ja) 画像処理方法及び画像処理装置、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2000251061A (ja) 画像処理装置、画像処理方法および画像処理用記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041001

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080331

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080529

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: 20080714

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080728

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110801

Year of fee payment: 3

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: 20120801

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120801

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130801

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees