JP3582675B2 - 画像データをメモリに蓄積する装置及び方法 - Google Patents
画像データをメモリに蓄積する装置及び方法 Download PDFInfo
- Publication number
- JP3582675B2 JP3582675B2 JP22689395A JP22689395A JP3582675B2 JP 3582675 B2 JP3582675 B2 JP 3582675B2 JP 22689395 A JP22689395 A JP 22689395A JP 22689395 A JP22689395 A JP 22689395A JP 3582675 B2 JP3582675 B2 JP 3582675B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- format
- image data
- intermediate code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/0005—Accepting output data; Preparing data for the controlling system
- G06K2215/0014—Transforming the printer input data into internal codes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Record Information Processing For Printing (AREA)
- Image Input (AREA)
- Image Processing (AREA)
- Storing Facsimile Image Data (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Description
【発明の属する技術分野】
本発明は、一般には画像データをメモリに蓄積する装置及び方法に関し、特に、画像データを不十分な容量のメモリに蓄積できるようにするために画像データを圧縮したり又はそのデータ形式を変更したりするための技術に関する。
【0002】
【従来の技術】
ディスプレイドライバやプリンタのような画像形成装置は、一般に、画像形成の過程において、ホスト装置から受信した全ての画像データを一旦中間コードの形でメモリ上に蓄積し、それを順次読み出し実画像に変換してディスプレイにしたりプリントエンジンを介してプリントアウトするようになっている。
【0003】
従来の画像処理システムの一つの具体例は、図1に示すように、ホスト装置1、画像形成装置2及び画像表示出力装置3から構成される。ここで、一般的なコンピュータシステムにおいては、ホスト装置1は例えばパーソナルコンピュータであり、画像形成装置2はプリンタ内部の制御回路又はディスプレイへの信号出力回路であり、また画像表示出力装置3はプリンタのプリントエンジン又はディスプレイである。
【0004】
さて、画像形成装置2は、データ受信部4、メモリ5、6、画像処理部7、メモリ管理部8、画像表示部9及び表示バッファ10を備える。
【0005】
データ受信部4は、ホスト装置1からのデータを受信して、システムヒープとしてのメモリ5に受信データを一時的に蓄積する。画像処理部7は、このメモリ5から受信データを読出して解析し、中間コードの形式の画像データを作成する。
【0006】
メモリ管理部8はアプリケーションヒープとしてのメモリ6の確保及び解放を行うもので、画像処理部7より要求されたサイズの空きメモリ領域を、メモリ6中から探し出し、その空きメモリ領域に画像処理部7からの中間コード形式の画像データを蓄積する。ここで、もし、空きメモリ領域が確保できないときには、メモリ管理部8は、直ちに画像処理部7に対してメモリエラーを出力する。
【0007】
画像表示部9は、メモリ6から中間コード形式の画像データを順次読出し、これを完全なビットマップ形式の実画像データに変換して表示バッファ10上に展開する。この実画像は、表示バッファ10から画像表示出力装置3に読み込まれて、ディスプレイ又はプリントアウトされる。
【0008】
従来の画像形成装置2は、メモリ消費を節約すべく、画像データを全て中間コードの形式でメモリ122に蓄積している。しかしながら、画像データによっては、中間コードの方が実画像データよりもサイズが大きくなってしまうことがあり、中間コードにしたために、返ってメモリの消費量が増大するという不具合を生じることがある。即ち、中間コードは例えば、テキストは各文字のビットマップデータとページ内での位置情報により、また図形はその形状を規定したパスデータにより、また写真のようなイメージはそのビットマップデータとページ内での位置情報より構成されるが、細かく複雑な文字や図形がページ内に多数存在する場合には、文字や図形の位置情報やパスデータの量が膨大となるため、実画像データよりもデータ量が増大してしまう。
【0009】
また、メモリ管理部8が、画像データを蓄積するための空きメモリ領域をメモリ6内で見つけることができないときには、直ちにメモリエラーを画像処理部120に返すため、特に大きい画像データを処理する時にメモリオーバーエラーが発生し易く、しかも、これにより画像処理部7では、空きメモリ領域の確保に失敗したときの複雑な処理を行わなければならない。
【0010】
更に、画像表示部9では、メモリ6中に蓄積されている複雑な中間コードを実画像に変換する処理と、この実画像を、表示バッファ10上に展開する処理とを行わなければならないので、中間コードの量が多くなったり、或いは、中間コードによる画像形成処理が複雑化したりして画像形成処理が間に合わなくなると、画像形成が失敗し易くなるという問題点もある。
【0011】
こうした問題は、メモリを増設してメモリ容量を増やせば一気に解決される。しかし、印刷ができない或は印刷に長時間を要する事態が発生した時、その原因がメモリ不足にあるか否かはユーザにとって明確ではないから、メモリ増設を行うべきか否かユーザには判断しがたい。
【0012】
また、プリンタにおいて、メモリ不足が生じたことによる印字処理の中断を防止するために、プリンタが高解像度モードに設定されている場合には、低解像度モードに変更し、高解像度で作成した画像データを低解像度の画像データに変換することにより、メモリ不足の解消を図ったものが知られている(特開平6−79955号公報参照)。
【0013】
しかし、元の高解像度の画像データを低解像度の画像データに変換する場合、プリントエンジンやメカニズムコントローラの仕様に従って、元画像データを、予め設定された特定レベルの低解像度の画像データにしか変換することができない。例えば、600dpiの高解像度モードと300dpiの低解像度モードとを持つ仕様である場合、元の600dpi×600dpiの画像データを、300dpi×300dpiの画像データにしか変換できないこととなる。
【0014】
そのため、300dpi×300dpiの画像データでは依然としてメモリ不足を解消できない場合、更にこれを圧縮して最終的にメモリ不足の解消を図ることができず、メモリ不足によるエラーとなってしまい、印字処理の中断という不具合が生じてしまう。また、300dpi×300dpiまで解像度を低下させなくてもメモリ不足が解消できる場合でも、300dpi×300dpiまで一気に解像度を落としてしまうので、必要以上の画質劣化を引き起こす。要するに、上記従来技術では、実質的に無段階に圧縮率を調節することができないので、圧縮不足又は圧縮し過ぎとなる場合があり、圧縮率を必要十分な程度にコントロールすることができない。
【0015】
また、300dpi×300dpiの画像データは、元画像データより画素数にして1/4に縮小されているため、300dpi×300dpiの画像データを、そのままディスプレイ又はプリントアウトすると面積において元画像の1/4の小サイズの画像が出力されてしまう。そこで、元の画像と同じサイズの画像を出力させるために、プリンタのレーザビーム径やドット径を2倍に拡大したり、ディスプレイ装置の走査線本数を2倍にする等の方法を採る必要があり、プリンタエンジンやエンジンコントローラの構成をそうした操作が可能な複雑なものとしなければならない。つまり、単一の解像度に対応したハード及びソフト構成を用いることができない。
【0016】
更には、元画像データを、単に解像度を1/2にした画像データに変換する処理だけしか行わないために、変換後のデータから元画像データを復元することが不可能となり、結果として、元の高画質の画像を形成することができない。つまり、画質を実質的に落とすことなくメモリ不足を解消することができない。
【0017】
【発明が解決しようとする課題】
本発明の一つの目的は、画像データをメモリに蓄積するとき、必要なメモリ領域のサイズをできるだけ小さくすることにある。
【0019】
更に別の目的は、メモリに原則として中間コードの形で画像データを蓄積する場合に、画像形成時において、中間コードを実画像に変換する処理が過大にならないように制限し、もって画像形成処理におけるエラーが未然に防止できるようにすることにある。
【0023】
【課題を解決するための手段】
【0025】
本発明の第1の側面に従う装置によれば、画像データを例えば中間コードのような第1のデータ形式でメモリに蓄積した後、このメモリから画像データを読み出して例えばビットマップデータのような第2のデータ形式に変換して出力する装置において、画像データを第1のデータ形式でメモリに蓄積しようとする際に、画像データの各要素について、第1のデータ形式におけるデータサイズが所定の閾値を超えているか否かが判定される。そして、この判定結果が肯定的であるとき、画像データの各要素は第1のデータ形式でなく、第2のデータ形式のデータを圧縮した形式でメモリに格納される。
【0026】
この発明によれば、メモリの無駄な消費を節約することができ、結果として、メモリエラーが発生しにくい。
【0030】
本発明の第2の側面に従う装置は、画像データを中間コード形式でメモリに蓄積した後、このメモリから画像データを読み出してビットマップデータ形式に変換して出力する装置において、画像データを中間コード形式でメモリに蓄積しようとする際に、画像データの各要素について、各要素に含まれる中間コードから予測される、各要素のビットマップデータ形式における描画面積が、所定の限界面積を超えているか否かが判定され、この判定結果が肯定的であるとき、各要素は中間コード形式でなく、ビットマップデータ形式のデータを圧縮した形式でメモリに蓄積される。
【0031】
ここで、画像データを前記中間コード形式でメモリに蓄積しようとする際、更に、中間コード形式におけるデータサイズが所定の閾値を超えているか否かの判定も、各要素について行って、その判定結果が肯定的であるときにも、中間コード形式でなくビットマップデータ形式のデータを圧縮した形式で、各要素をメモリに格納するようにしてもよい。
【0032】
この発明によれば、例えばメモリに蓄積された中間コードをビットマップデータに変換してディスプレイ又はプリントアウトする画像形成装置において、ディスプレイ又はプリントアウトの段階で中間コードからビットマップデータに変換する作業量が減り、この作業の遅れに起因するエラーを減らすことができる。
【0036】
本発明は更に、上述した装置によって実行される画像データのメモリへの蓄積方法も提供する。
【0037】
尚、本発明の装置や方法は、プリンタやディスプレイのような画像形成装置に好適であるが、これに限らず、制限されたサイズのメモリの下で画像処理を行わざる得ない種々の分野に応用することができる。
【0038】
【発明の実施の形態】
図2は本発明の印刷情報処理装置の一実施例において、1ページをバンドに区切って処理する方式の概略を説明する図である。
【0039】
1ページの印刷用紙11をNの仮想バンド12に分割し、これらの仮想バンド12を順番にRAM上の複数の物理バンド13で処理していく。ここで、物理バンドの個数は処理効率の最適性から3つにしている。その理由は、仮想バンドの処理を待ち時間なく効率的に行うと共に冗長なメモリを消費しないためには、3個の物理バンドが最適だからである。
【0040】
図3は、本実施例におけるRAMの使用マップである。物理バンド13と作業用メモリ22とが別の領域に設けてある。また、ホストコンピュータからの印刷情報を受ける受信バッファ23もRAM上の別エリアに確保されている。
【0041】
図4は本実施例の機能構成を示す。この図に沿って、処理対象としてのある仮想バンドで印刷情報30の処理がどのように流れていくかを説明する。
【0042】
仮想バンド内に「ABC」等の文字データとビットイメージで表現される図形データ、そしてベクトルで表現される図形データが含まれていたとする。例えば、文字データたる「A」がキーボード等の入力部から入力された場合、通信経路を通じてホストから送られてくる印刷情報30はアスキーコードの「41」という値や出力する位置、大きさ等である。一方、ビットイメージによる図形データの場合はビットの構成情報そのものや出力する位置、大きさ等であり、ベクトルで表現される図形データの場合は数式、描画位置、大きさ等である。そこで印刷情報受信部31である受信バッファ23によりこれらの印刷情報30を受信し、格納する。
【0043】
次に、該印刷情報受信部31で取り込んだ印刷情報30から情報解析部32により印刷情報30がどの様な種類の情報か、特徴はどこか、どこに印字するのか等の情報を解析し、その結果を基に第一の中間コード作成部33により中間コードを作成する。この中間コードは、前記印刷情報30がどの様な種類の情報か、描画に必要なデータがどこに格納されているか、ページのどこに描画するのか等の情報をその種類ごとに決まっている所定の形式で保持しているインデックスデータである。
【0044】
図5はこの中間コードの諸形式を示している。展開形式による分類では5種類以上あるが、ここでは代表的な3種類のみ記した。どの中間コードも最初に情報の種類を示すコード名(CN)51を有している。このコード名51はソースデータが16ビットのワード型か、8ビットのバイト型か、あるいはその混合か、というソースの型や図のような展開の型の情報を有している。
【0045】
図5(A)に示す標準型は、ソースの格納場所を示すソースポインタ(SP)52と書込み先を示すオブジェクトポインタ(OP)53を少なくとも有し、さらにソースデータに対する拡大縮小が加わる時にはオブジェクトの幅(OW)54とオブジェクトの高さ(OH)55の情報が加わる。1つの中間コードが60バイト程度である。
【0046】
図5(B)に示す直線型は、ベクトルで表現される図形データに対して適用される中間コードであり、ソースの情報は直線と決まっているのでソースポインタ52を持っていない。ベクトルの図形データはラスタ方向の直線で全て表現され、個々の直線に対して中間コードが作成される。
【0047】
図5(C)に示す圧縮型は、1つの仮想バンドをビットイメージに展開し、圧縮した場合にこれを管理するために1つ作られる中間コードである。圧縮したビットイメージの格納場所を示すSP52とどこに書込むかというOP53、そして伸張されてくる連続データ群の切れ目を示すOW54で構成される。
【0048】
解析された印刷情報30をこのように分類された中間コードを作成して管理することで印刷情報30を極めて少ないメモリ量で分り安く保持し、処理することが可能となっている。印刷情報30を加工していく過程において、まず処理を行う情報がNバンドの内のどの仮想バンドのものかが判断され、該当する仮想バンドの領域に所定の形式の中間コードが作成され、印刷情報処理及び保持部37に格納されていく。印刷情報処理及び保持部37は、具体的にはRAMで実現されており、図3でいえば作業用メモリ22の部分である。その際、圧縮必要性判断部34により随時次の3つの条件をチェックし、条件を満たした時点で加工中のデータに対して圧縮処理が必要であると判断し、印刷情報展開圧縮部35へと分岐する。
【0049】
(1)1つの仮想バンドに対して中間コードのみが作成されていく過程で、その合計のメモリ容量が1つのバンドバッファのサイズを越えた場合
(2)1つの仮想バンドに対して中間コードと圧縮済みビットイメージが作成されていく過程で、その合計のメモリ容量が1つのバンドバッファのサイズを越えた場合
(3)1つの仮想バンドに対して中間コードが作成されていく過程で、展開に比較的時間がかかる特定種の中間コードの数が所定の基準を越えて多くなった場合
例えば、印刷情報30として[ABC」という全角文字が文字飾り無しで入力された場合、ワードタイプの標準型のコード名51が記載され、その後に1ページのどこに展開されるかという座標と、「A][B][C]という文字フォントのビットマップが格納されているROM上のアドレスが書込まれる。その後、印刷情報処理及び保持部37によって順次これらの中間コードは保持されていく。この場合、圧縮は必要ないと判断され、次の印刷情報30の処理に進む。
【0050】
しかし、文字情報が大量に含まれていた場合、あるいは処理対象の仮想バンドに大量の中間コードが入っていた場合等では、1つの仮想バンドの全ての中間コードの容量が展開したビットイメージよりも大きくなってしまう、或は、容量は問題ないがその後の展開において極めて処理時間がかかるという理由から圧縮が必要であると判断し、該当する仮想バンドの情報は印刷情報展開圧縮部35へと送られる。
【0051】
印刷情報展開圧縮部35では、処理対象の仮想バンド用に既に作成された中間コードはビットイメージに展開し、さらにそれ以降の印刷情報30に関しては中間コード化せずに直接ビットイメージに展開していき、仮想バンドの全ての情報がビットイメージに展開された時点で所定の圧縮方法により圧縮処理が行われる。例えば、ランレングス圧縮法を用いた場合、下記のようになる。
【0052】
元データ00111111
圧縮後データ0216
これはxがデータの数値を、Nが繰り返し数を示しているとして一般的に表すると{xN}という記述である。圧縮処理によってできるのが圧縮済みビットイメージデータである。
【0053】
その後、第2の中間コード作成部36により圧縮済みビットイメージデータを管理するための中間コードが作成される。この中間コードこそが図5(C)に示す圧縮型であり、この仮想バンドを管理するために一つだけ作成される。
【0054】
なお、この図のように同じバンドバッファ内にビットマップイメージや文字が混在している場合は、処理方法に以下の2つが考えられるが作業用メモリ22をなるべく使わないようにすることが重要であることから、(1)の方法を採用している。
【0055】
(1)文字データや図形データが混在する一つの仮想バンドをまるごとビットイメージに展開し、圧縮し、一つの中間コードで管理する方法(この方法だと、作業用RAMの圧縮データのメモリは多く必要となるが、中間コードのメモリの方は比較的少なくてすむ)。
【0056】
(2)文字データや図形データが混在する一つのバンドバッファにおいて、展開に時間のかかる中間コードや、多くの容量を必要とする中間コードのみを選択的にビットイメージに展開し、圧縮し、他の情報は中間コードのままで管理する方法(この方法だと、作業用メモリ202の圧縮データの容量は比較的少なくてすむが、中間コードのメモリの方が逆に比較的多く必要となる)。
【0057】
上記のデータの作業用メモリ22への書込みの方法としては、図3に示すように作業用メモリ22のアドレス番号の例えば低いところから昇順に中間コードを記入し、一方、アドレス番号の高いところから降順に圧縮済みビットイメージを書込んでいくことが考えられる。その際、まだ使われていない中間辺りの領域でその他の展開処理などを行えばよい。
【0058】
なお、圧縮方法をデータの種類に応じて取捨選択することで更にメモリの使用効率を上げることが可能であることはいうまでもない。
【0059】
いままでの処理によって通信経路を通じて送られてきた印刷情報30を印刷情報処理及び保持部37のRAMによって加工し、必要なデータは中間コード又は圧縮済みビットイメージに変換して、記憶する保存処理が完了する。1ページ分の印刷情報30に対する保存処理が終わった時点で作業用メモリ22には、1ページ内の全ての中間コードと必要に応じた圧縮済ビットイメージの保存が完了している。この後、後述する処理によってプリンタエンジンへのビットイメージの転送が行われるが、その間にRAMの空いた領域を用いて次のページの保存処理が行われる。1ページのプリンタエンジンへの転送が終わった時点で今度は次のページの転送に入り、更にその間に次の次のページの保存処理が行われていく。このようにして効率よくローテーションが行われていく。
【0060】
さて、以上のようにして各ページの保存処理が行われている間、各ページ内で圧縮済ビットイメージへの変換処理(以下、圧縮処理という)が行われた回数を圧縮回数処理部45が計数している。即ち、圧縮回数処理部45は、各ページ毎に、その保存処理において印刷情報展開圧縮部35が中間コード又は印刷情報をビットイメージに展開してこれを圧縮した回数(つまり、圧縮済ビットイメージにした文字や図形等の個数であり、以下、「圧縮回数」という)を計数する。そして、各ページ毎の圧縮回数の計数値が所定の閾値回数に達してしまうと、圧縮回数処理部45はカウントアップ信号48をメッセージ表示部47に出力する。
【0061】
圧縮回数処理部45からカウントアップ信号47が出力されると、これは、1ページ当たりの圧縮回数が非常に多くなっているために保存処理に多大な時間がかかっていることを意味する。この多大な処理時間の1つの主たる原因は、RAMの容量が小さいために1ページを全て中間コードに変換しで保持するのに必要な十分な容量のバンドバッファ13又は作業用エリア22が確保できないことにあり、これを解消するにはRAMを増設すればよい。そこで、圧縮回数処理部45からカウントアップ信号47が出力されると、メッセージ表示部47が所定のメッセージをプリンタの液晶表示器又はホストコンピュータのディスプレイなどを用いて表示する。このメッセージは、快適な印刷環境を作るためにRAMの増設が好ましいことをユーザに知らせるためのもので、例えば「この印刷は非常に時間がかかり、時間を短縮するためにはメモリの増設が必要です」といったものである。
【0062】
このメッセージ表示は、ユーザの注意を喚起するのに適当な時期に適当な長さの時間だけ行われる。例えば、カウントアップ信号47が出力された時に一定時間だけ表示する、或は、カウントアップ信号47が一旦出力された時点からそのページの保存処理又は印刷が終了するまでの間、継続的に又は間欠的に表示する、或は、その文書全体の印刷が完了するまで継続的に又は間欠的に表示する、等の方法が採用し得る。
【0063】
なお、このメッセージ表示を行うための別の構成として、上記した圧縮回数処理部45に代えて又はこれに加えて、図4に破線で示すようなタイマー処理部44を設けてもよい。このタイマー処理部44は、各ページの印刷情報30が印刷情報受信部31に入った時点で各ページに関する時間計数をスタートし、各ページの保存処理が完了するまで各ページに関する時間計測を続けようとし、その間に、その時間計数値が予め規定した閾値時間に達してしまうと、タイムアップ信号46をメッセージ表示部47に出力する。このタイムアップ信号46を受けると、メッセージ表示部47は、前述のカウントアップ信号47を受けた場合と同様に、上記メッセージを上記の適当な方法で表示する。
【0064】
次に、以上のようにして保存した中間コードと圧縮済みビットイメージをビットイメージに展開し、プリンタエンジンへと転送する過程について説明する。
【0065】
中間コード解釈判定部38では、中間コードのコード名51を読み取り、まず圧縮データであるかどうかを解釈判定する。そこで圧縮データでない場合は、非圧縮データ展開部39へと進み、圧縮データであった場合は圧縮データ伸張部40へと進む。
【0066】
非圧縮データ展開部39では処理対象の仮想バンドに含まれる中間コードの管理する情報を基にして、あるソースデータをビットイメージに展開し、これを展開用記憶部41、具体的にはRAM上の所定の物理バンド13の指定の位置に書込む。このようにして作成される仮想バンドのビットイメージは、出力の際に用いられるプリンタエンジンの解像度と1対1に対応しているものであり、この時点で文字データであるか、ベクトルの図形データか、ビットイメージの図形データかは区別が無くなる。
【0067】
一方、圧縮データ伸張部40においては、前記印刷情報処理及び保持部37のRAMによって保存されている圧縮ビットイメージを所定の伸張方法によって伸張していき、そのデータを処理対象の仮想バンドに含まれる中間コードの管理する情報を基にして展開用記憶部41の物理バンド13に書込んでいく。このようにして作成される仮想バンドのビットイメージも勿論、出力の際に用いられるプリンタエンジンの解像度と1対1に対応している。
【0068】
以上の過程を経て処理対象である仮想バンドのすべての印刷情報30は、前記展開記憶部41の物理バンド13に書込まれ、揃ったところでビットイメージデータ転送部42により一気にプリンタのプリンタエンジンに出力される。
【0069】
以上によってRAMに保存されている中間コードと圧縮済ビットイメージはビットイメージに変換され、プリンタエンジンへと転送される転送処理が完了する。
【0070】
図6は本実施例における1ページ分の印刷情報30の作業用メモリ22への保存処理の流れを示す保存処理のフローチャートである。
【0071】
ホストより送られてきた印刷情報30はRAM上の受信バッファ23にて順次受信されていく(S61)。次に、そこからの情報が情報解析部32により順番に作業用メモリ22に取り込まれ、中間コードの作成に入る(S62)。これを作成していく過程で圧縮する必要が生じたら(S63)、まず、該当する仮想バンドのための作成済の中間コードを全て作業用メモリ22の中でビットイメージに展開し(S64)、次に、受信バッファ23から該当する仮想バンドの後続の印刷情報30を取り込み(S65)、これを中間コードに変換せずに直接的に作業用メモリ22上でビットイメージに展開する(S66)。
【0072】
この仮想バンドについてのビットイメージが全て揃ったところで、これを圧縮して作業用メモリ22に保存する(S68)。このとき、1つの文字や図形等を圧縮する度に圧縮回数を1回づつ増加させていき(S69)、圧縮回数を計数する。該当する仮想バンドのビットイメージの圧縮及び保存が完了すると、、再びRAM上の受信バッファ23から次の仮想バンドについての印刷情報30を受信する。
【0073】
1ページ分の保存処理が終了しないうちに圧縮回数が規定の閾値を越えると(S70、S71)、前述のメッセージを表示する。
【0074】
図7及び図8は、タイマー処理部44によってメッセージ表示を行うか否か判断する構成における1ページ分の保存処理の流れを示したものである。
【0075】
この場合には、図7に示すように、ホストから1ページ分の印刷情報の入力が開始された時点で監視タイマーをスタートさせ(S73)、そして、既に説明した図6の場合と同様の保存処理を開始し、1ページ分の保存処理が完了するまで監視タイマーは作動する。監視タイマーは定期的に割り込み信号を発生し、この割り込みにより、図8に示すタイマー処理が実行される。タイマー処理では、時間計数値を増加させ(S81)、この計数値が規定の閾値に達したなら(S82)、前述のメッセージを表示する(S83)。
【0076】
以上のように、本実施例では、1ページ分の印刷情報を中間コードに変換して、又は必要に応じて圧縮済ビットイメージに変換してRAMに保存する過程で、圧縮回数又は処理時間を監視してRAMの容量が十分か否かを判断し、十分でない場合には、メッセージを出力することによりユーザに対しRAMの増設を提案するようになっている。この提案を無視するか否かはユーザの自由ではあるが、頻繁にこのメッセージが表示されるようであれば、そのユーザの一般的な使用条件に対してRAMの容量が不十分であることを意味するから、その提案に従ってRAMを増設することにより、ビットイメージ圧縮の機会を減少させて従来より短時間で印刷処理を完了させ得るようになる。従って、ユーザにとって、自己の使用条件に適するように印刷装置のメモリ容量を調整することが容易となる。
【0077】
尚、上述の実施例は、本発明の要旨を逸脱しない範囲内で種々の変形を加えることができる。例えば、印刷情報をメモリに保持する形式として、上記実施例のようなバンド単位の中間コード及び圧縮済みビットイメージの形式だけでなく、ページ単位の中間コード及び圧縮済みビットイメージの形式や、ビットイメージ及び圧縮済みビットイメージの形式等を採用することができる。
【0078】
次に、本発明の第2の実施例を説明する。
【0079】
図9は、本発明の第2の実施例の全体構成を示す。
【0080】
このシステムは、図9に示すように、ホスト装置110、画像形成装置120及び画像表示出力装置140を備える。なお、一般的なコンピュータシステムにおいては、ホスト装置110は、例えば、パーソナルコンピュータであり、画像形成装置120は、プリンタ内部の制御回路又はディスプレイへの信号出力回路であり、また、画像表示出力装置140は、プリンタのプリントエンジン又はディスプレイである。
【0081】
画像形成装置120は、データ受信部130、コマンド解析部131、画像形成部132、メモリ管理部133、画像表示部134、システムヒープとしてのメモリ170、アプリケーションヒープとしてのメモリ171及び表示バッファ172を備える。
【0082】
画像形成部132は、サイズ限界判定部150、面積限界判定部151及び実画像作成部152を備える。また、メモリ管理部133は、同期解放部160、メモリ圧縮部161及びデータ変換部162を備える。
【0083】
以下、各部の機能を説明する。
【0084】
データ受信部130は、ホスト装置110からのデータを受信して、メモリ171内に設定された受信バッファに蓄積する。コマンド解析部131は、この受信バッファに蓄積されたデータを読出し解析し、対応する描画要求を画像形成部132に送出する。なお、上記描画要求とは、画像形成部132が有する種々の描画関数を呼出すための一連のファンクションコールによって構成される。
【0085】
画像形成部132は、処理対象となる1ページを複数本のバンドに分割し、各バンド単位で、コマンド解析部131からの描画要求を中間コードに変換する。この中間コードは、メモリ管理部133を通してメモリ171に登録される前に、サイズ限界判定部150及び面積限界判定部151によってチェックされる。
【0086】
サイズ限界判定部150は、各バンドの中間コードのデータサイズが実画像のデータサイズを超えているか否かを判定するもので、中間コードのデータサイズを予め設定されている閾値と比較することにより判定する。なお、閾値としては、例えば、処理対象のページの最大ブロックサイズをそのページのバンド本数で割って得られた値に所定の係数を掛けて得られた値を用いる。
【0087】
面積限界判定部151は、後述する画像表示部134による中間コードから実画像への変換(描画処理)が、画像表示出力装置140の画像形成動作に対して時間的に間に合わなくなって画像形成が失敗(オーバーランエラー)する可能性があるか否かを判定するもので、予め、画像形成が失敗しない限界面積を算定し、この限界面積と中間コードにより指定される描画面積とを比較することにより判定する。ここで、上記限界面積とは、或るバンドに対して規定時間内に描画可能な面積を指す。なお、この面積は、例えば、各中間コードの評価関数を求め、この評価関数から得られる、各中間コードについて論理演算、シフト処理、マスク処理、拡大処理等の全ての手続が1バンド展開に許される描画時間内で実行可能である描画面積のことである。
【0088】
これらサイズ限界判定部150及び面積限界判定部151による判定の結果、中間コードが実画像のデータサイズを超えることなく且つオーバランエラーの可能性もない場合には、中間コードはそのままメモリ管理部133によってメモリ171に登録される。一方、中間コードが実画像のデータを超えている場合、又はオーバランエラーの可能性がある場合には、その中間コードは実画像作成部152に渡される。実画像作成部152は、その中間コードを完全なビットマップ形式の実画像データに変換する(以下、この変換を「事前展開」という)。事前展開された実画像データは、メモリ管理部133によってメモリ171に登録される。
【0089】
メモリ管理部133は、画像形成部132によって作成された中間コード又は事前展開された実画像データを、メモリ171に登録する。この登録に際して、メモリ管理部133は、登録に必要な容量の空きメモリ領域をメモリ171内で検索してこれを確保することを試みる。この空きメモリ領域の確保に成功すれば、上記登録は正常に行われる。しかし、十分な容量の空きメモリ領域が確保できない場合には、メモリ管理部133内の同期解放部160が呼出される。
【0090】
同期解放部160は、空きメモリ領域が確保できなかったときに起動されて、画像表示出力装置140への表示待ちデータがメモリ171中に存在するか否かをチェックする。このチェックの結果、存在すると判定した場合には、画像表示出力装置140への表示が終了した時点で、上記データを、表示済みデータとして解放(=メモリ171から消去)することにより、メモリ171内の空きメモリ領域を増加させる。一方、上記チェックの結果、表示待ちデータが存在しないと判定した場合や、表示済みデータを解放しても未だ十分な空きメモリ領域が確保できない場合には、次にメモリ圧縮部161が呼出される。
【0091】
メモリ圧縮部161は、メモリ171に蓄積されているバンド単位の中間コードをメモリ171上に事前展開するために、該中間コードを実画像データに変換した後、該実画像データを圧縮し、これによりメモリ171内の空きメモリ領域を増大させる。しかし、実画像データの圧縮だけでは十分な空きメモリ領域の増大が得られない場合は、メモリ圧縮部161は、後述するデータ変換部162を呼出して実画像データを渡すことにより、この実画像データを圧縮しやすい形態のデータに変換してもらい、その後に、この圧縮し易い形態のデータに対して圧縮を試みる。後に詳述するように、データ変換部162によるデータ変換は、複数通りの変換方法を選択的に用いながら複数回行えるようになっており、回を重ねるごとに徐々に圧縮率が高まり易くなるよう、段階的に変換方法が選択できるようになっている。
【0092】
従って、メモリ圧縮部161は、まず初段階のデータ変換方法を選択して、その方法により変換されたデータに対して圧縮を試み、その結果、メモリ171内の空きメモリ領域が確保できれば、圧縮成功と判断してその圧縮処理を完了させるが、未だ空きメモリ領域が確保できない場合には、更に圧縮率が高まり易い次段階の変換方法を選択して、その方法により変換されたデータに対して圧縮をデータ試み、空きメモリ領域が確保できたか否かをチェックする、という動作を、十分な容量の空きメモリ領域が確保できるまで繰り返す。
【0093】
しかしながら、上記動作を最終段階の変換方法まで繰り返したが依然として空きメモリ領域が確保できなかった場合には、メモリ圧縮部161は、空きメモリ領域が確保できなかったことを示すエラーを、コマンド解析部131に出力する。
【0094】
また、このメモリ圧縮部161は、圧縮済みの実画像データを表示又は印刷する時、又は、空きメモリ領域が増大して圧縮した形で蓄積しておく必要が無くなった時には、メモリ171内の圧縮済みの実画像データを元の中間コードに伸張する。
【0095】
データ変換部162は、メモリ圧縮部161から要求があったときに、メモリ171内の実画像データを圧縮しやすい形態のデータに変換する。このデータ変換部162には、徐々に圧縮率が高まり易くなるような複数段階の変換方法が用意されていて、メモリ圧縮部161から指定された変換方法が選択される。
【0096】
ここで、圧縮しやすい形態のデータとは、繰り返しパターンが元のデータより多く出現する形態のデータである。そして、徐々に圧縮率が高まり易くなるような複数段階の変換方法とは、繰り返しパターンの出現頻度が徐々に高くなるような複数段階の変換方法のことである。
【0097】
より具体的に説明すれば、線画やテキストのような2値画像に関しては、例えば、
▲1▼画像の横方向の空間周波数だけを低下させる、
▲2▼縦方向の空間周波数だけを低下させる、
▲3▼横と縦の両方向の空間周波数を低下させる、
といった3種類の変換方法が挙られる。尚、上記空間周波数とは、画像を構成するドットパターンの目の細かさ、つまりドットパターンが変化する最小画素数のことであり、実質的な解像度ともいえる。このように、横(又は縦)方向だけ目を荒くする→縦(又は横)方向だけ目を荒くする→両方向とも目を荒くする、というように変換方法を順番に選択することにより、徐々に繰り返しパターンの出現頻度が高くなるような形態のデータを段階的に得ることができる。尚、目の荒くさせ方、つまり空間周波数の低下のさせ方も、元の画像の1画素単位から、2画素単位→3画素単位→…というように、段階的に行うようにしてもよい。
【0098】
尚、ここで注意すべきことは、空間周波数つまり実質的な解像度を低下させても、画像のサイズつまり縦横の画素数つまり形式的な解像度は変化させないということである。例えば、元の画像の解像度が600dpi×600dpiであった場合、縦横両方向の空間周波数を1/2に低下させた変換を行ったと仮定する。この場合、変換後の画像でも、そのサイズつまり形式的な解像度は600dpi×600dpiで同じであり、ただ、画像内のドットパターンの変化ステップつまり実質的な解像度が、元の画像では1ドット単位であったのに対し、変換後の画像では2ドット単位(300dpi相当)となっている。
【0099】
他方、写真のようなハーフトーン画像に対する複数段階の変換方法としては、例えば、階調数の異なる複数種のハーフトーン用ドットパターン(図15及び図16参照)を用意しておいて、これを段階的に使い分けることにより、元の画像データを、指定された階調数のハーフトーン用ドットパターンで表現した画像データに変換する方法がある。この方法については、後に詳細に説明する。
【0100】
さて、このようにしてデータ変換部162が元の実画像データを圧縮しやすい形態のデータに変換すると、既に述べたように、この圧縮しやすい形態のデータがメモリ圧縮部161に送られて圧縮される。
【0101】
画像表示部134は、メモリ171内の画像データをバンド単位で読み出して実画像データの形式で表示バッファ172に展開する。その際、その画像データが中間コードの形式でメモリ171に登録されているときには、その中間コードを読み出して実画像データに変換した後、これを表示バッファ172に展開する。一方、その画像データが実画像データの形式でメモリ171に登録されているときには、それを読み出してそのまま表示バッファ172に展開する。また、その画像データが圧縮されたデータである場合は、これを実画像データに伸張して表示バッファ172に展開する。表示バッファ172に展開された実画像データは、画像表意時出力装置140に送出されて、表示或いはプリントアウトされる。
【0102】
以下、上記構成中の主要部の機能をより詳細に説明する。
【0103】
図10は、コマンド解析部131におけるコマンド解析処理のフローチャートを示す。
【0104】
図10において、まず、メモリ170内の受信バッファからデータを読み出し(ステップS201)、ホスト装置110から送出されたコマンドを解析する(ステップS202)。この解析の結果、上記コマンドが描画コマンドであると認識すると(ステップS203)、対応する描画要求を画像形成部132に対して発行する(ステップS204)。一方、ステップS202におけるコマンド解析の結果、描画コマンドでないと認識すると、描画コマンド以外のコマンドとして相応の処理を行うこととなる(ステップS205)。
【0105】
図11は、画像形成部132における画像形成処理のフローチャートを示す。
【0106】
図11において、まず、コマンド解析部131からの描画要求に従い、バンド毎に、呼出された描画関数を用いて、例えばテキストの個々の文字のビットマップを作る、個々の文字のページ内で位置情報を計算する、図形のパスデータや位置情報を計算する等の画像形成処理を行い(ステップS206)、この結果に基づいて中間コードを作成する(ステップS207)。
【0107】
次いで、この中間コードのデータサイズが実画像データのデータサイズを超えているか否かの判定を行い、結果が否であれば、更に、その中間コードに関してオーバランエラーにならない限界面積を算定し、その中間コードが指定する描画面積が算定した限界面積を超えているか否か判定する(ステップS208)。その結果、もし、中間コードのデータサイズが実画像のデータサイズを超えている、又は、中間コードの描画面積が限界面積を超えている場合には、その中間コードを実画像データに変換し(ステップS209)、この実画像データをメモリ171に登録することをメモリ管理部33に要求する(ステップS210)。
【0108】
一方上記判定結果がいずれも否である場合には、ステップS207で作成した中間コードをそのままメモリ171に登録することをメモリ管理部133に要求する(ステップS210)。
【0109】
図12は、メモリ管理部133におけるメモリ確保処理のフローチャートを示す。
【0110】
図12において、まず、登録の要求された中間コード又は実画像データのデータサイズに相当する空き領域をもつブロックを、メモリ171中から検索する(ステップS310)。この検索の結果、空き領域が見つかったら(ステップS311)、空き領域のポインタをコマンド解析部131に返すことにより、メモリ確保成功で終了する(ステップS312)。
【0111】
一方、ステップS310での検索の結果、そのデータサイズの空き領域が見つからないときは、次に画像表示出力装置140へ出力処理中のバンド(=表示画像)がメモリ171内にあるか否かチェックし(ステップS313)、表示画像がある場合はその表示終了を待って(ステップS314)、表示終了した画像のデータを解放し(ステップS315)、その後に、空き領域の再確保を試みる(ステップS310)。
【0112】
一方、ステップS313において表示画像がないと判断した場合は、メモリ圧縮要求をメモリ圧縮部161に出す(ステップS316)。その結果、メモリ圧縮が成功すると、メモリ171に空き領域ができた可能性があるので、再度空き領域確保を試みる(ステップS310)。一方、メモリ圧縮が失敗した場合には、メモリエラーをコマンド解析部131に出力する。
【0113】
図13は、メモリ圧縮部161におけるメモリ圧縮処理のフローチャートを示す。
【0114】
図13において、まず、メモリ171内に圧縮可能なデータ(つまり、メモリ171上に事前展開するために中間コード形式から実画像に変換されたデータ)があるか否かを調べる(ステップS420)。調べた結果、あると判断した場合には、該実画像データ(即ち、元画像データ)を圧縮する(ステップS421)。次に、ステップS423でのデータ圧縮に成功したか否か(つまり空きメモリ領域が確保できたか否か)を調べ(ステップ422)、成功したと判断した場合には、圧縮が成功した旨をコマンド解析部131に通知する(ステップS423)。
【0115】
一方、ステップS422で圧縮が失敗した(つまり空きメモリ領域が確保できなかった)と判断した場合には、次に、元の実画像データを圧縮し易い形態のデータへ変換してから圧縮するための処理に入る。
【0116】
まず、データ変換部162を呼出し、圧縮しやすい形態にするためのデータ変換方法が指定できるか否かを調べる(ステップS426)。即ち、既に述べたように、段階的な複数種類の変換方法が用意されているから、その中で未だ試みてない段階の変換方法が有るか否かを調べる。このチェック結果は最初は当然にYESとなる。そこで、まず、データ変換部162に対して、初段階の変換方法を指定して(テップS425)、その変換方法による元画像データの変換を要求する(ステップS426)。その後、データ変換部162により変換されたデータを受取り、これを圧縮し(ステップS421)、続いて、このデータ圧縮に成功したか否かを調べる(ステップS422)。その結果、圧縮に成功しすれば、圧縮が成功した旨をコマンド解析部131に通知する(ステップS423)。
【0117】
しかし、依然として圧縮に失敗した場合は、更に圧縮しやすい形態のデータに変換した後に圧縮するために、再びステップS424へ進んで、次段階のデータ変換方法があるか否かを調べ、次段階の変換方法があれば、それを用いたデータ変換を要求し、変換後のデータを圧縮し、そして圧縮成功か否かをチェックする(ステップS425、S426、S421、S422)。
【0118】
このように、より圧縮しやすい形態へと段階的に元画像データを変換して圧縮する、という動作を圧縮が成功するまで、つまり空きメモリ領域が確保できるまで繰り返す。これにより、圧縮率が段階的に徐々に高められて行く。特に、この段階が多い場合は、実質的に無段階に近い形で高められていく。結果として、必要十分な圧縮率で圧縮が行われることになり、画質の低下も必要最低限度に抑えられる。
【0119】
他方、最終段階のデータ変換方法で変換し圧縮したが依然として圧縮失敗に終わった場合は、ステップS424でこれ以上の変換方法が指定できないと判断し、圧縮が失敗した旨をコマンド解析部131に通知する(ステップS427)。同様に、ステップS420で圧縮可能なデータがなかった場合にも、圧縮が失敗した旨をコマンド解析部131に通知する(ステップS427)。
【0120】
図14は、データ変換部162におけるデータ変換処理のフローチャートを示す。ここでは、元画像データが写真のようなハーフトーン画像である場合を例にあげて説明する。この場合、データ変換方法の指定は、ハーフトーン画像の階調数を指定することにより行われる。この例では、初段階で5階調が指定され、次段階で17階調が指定されるものとする。
【0121】
図14に示すように、まず、元画像データの最初のバイトから順に(ステップS501)、指定された階調数に対応するデータを切出して階調化し(ステップS502)、指定された階調数に対応するハーフトンテーブル(後述の図15、16に示すようなドットパターンが格納されている)から対応するドットパターンを取り出し、元画像データと置き換える(ステップS503)。そして、ステップS501で元画像データの最終バイトに達したと判断すると、元画像データの変換が終了したことをメモリ圧縮部161に通知する(ステップS504)。
【0122】
尚、上記ハーフトーンテーブルとは、後述の図15及び図16に示す5階調用及び17階調用のドットパターン607、707と、元の画像データのドットパターンとの対応関係を表したテーブルであり、予めプロブラムされている。このテーブルの対応関係に従って元画像データを5階調用又は17階調用のドットパターン607又は707に置き換えることにより、元画像データを5階調化又は17階調化した圧縮しやすい形態のデータに変換することができる。
【0123】
以下、このデータ変換について、より具体的に説明する。
【0124】
図15は初段階で5階調が指定された場合の変換過程の説明図であり、図16は第2段階で17階調が指定された場合の変換過程の説明図である。
【0125】
図15において、5階調化した圧縮し易い形態のデータとは、符号603で示すような2×2画素の4画素マトリックスを1個のハーフトーン領域と定義して、この1個のハーフトーン領域の濃度を、符号607に示す5種類のドットパターンを用いて5階調で表現するようにした形態のデータをいう。この5階調化データは、本来は、個々のハーフ領域の濃度値(0〜4)に対し、符号605で示すようなディザマトリクスを適用することにより作られるものであるが、このデータ変換では上述のように、予め用意したハーフトーンテーブルに従って単純にパターンの置き換えを行うことにより作成される。
【0126】
この5階調化データでは、符号604で示すように第1バイト及び第2バイトの2バイトによって4個のハーフトーン領域が形成されており、よって、符号601で示すように1バイト中には4個のハーフトーン領域の上半分又は下半分が割り当てられる。そして、個々のハーフトーン領域の上半分又は下半分の2画素がとり得るドットパターンのバリエーションは、符号607で示す5種のパターンから判るように、上半分及び下半分共に「00」、「01」、「11」の3種類である。従って、1つのバイトでは、3×3×3×3=81種類のドットパターンが形成され得ることになる。
【0127】
一方、図16において、17階調化した圧縮し易いデータとは、符号703で示すような4×4画素の16画素マトリックスで1個のハーフトーン領域を定義し、1個のハーフトーン領域の濃度を、符号707として一部例示したようなドットパターンを用いて17階調で表現した形態のデータである。この17階調化データは、本来は、個々のハーフ領域の濃度値(0〜16)に対し、符号705で示すようなディザマトリクスを適用することにより作られるものであるが、このデータ変換では上述のように、予め用意したハーフトーンテーブルに従って単純にパターンの置き換えを行うことにより作成される。
【0128】
この17階調化データでは、符号704で示すように第1バイト〜第4バイトの4バイトによって2個のハーフトーン領域が形成されており、よって、符号701で示すように1バイト中には2個のハーフトーン領域の1/4部分が割り当てられる。そして、個々のハーフトーン領域の1/4部分の4画素が取り得るドットパターンは、以下のようになる。
【0129】
▲1▼ 第1バイト
「0000」、「0100」、「0110」、「0111」、「1111」
▲2▼ 第2バイト
「0000」、「0010」、「0110」、「0111」、「1111」
▲3▼ 第3バイト
「0000」、「0010」、「0110」、「1110」、「1111」
▲4▼ 第4バイト
「0000」、「0010」、「0110」、「0111」、「1111」
従って、1/4部分がとり得る全てのパターンは「0000」、「0010」、「0100」、「0110」、「0111」、「1110」、「1111」の7種類であるから、1バイトがとり得るパターンのバリエーションは7×7=49種類となる。但し、「0010」と「0100」の組合せの2種類と、「0111」と「1110」の組合せの2種類と、「0100」と「1110」の組合せの2種類の合計6種類の組合せは、実際には出現しないので、実際に1バイト中に出現するパターンは49−6=43種類である。
【0130】
以上の考察に基づいて、次に、5階調化データと17階調化データとを比較すると、1バイトに出現するドットパターンが、5階調化データでは81種類であるのに対し、17階調化データでは43種類である。つまり、17階調化データの方が、5階調化データよりも出現するドットパターンの種類が少ないことになる。ここで、ドットパターンの種類が少ないほど、隣り合うバイト同士のパターンが一致する確率が高くなる、つまり繰り返しパターンの出願頻度が高くなるから、より圧縮し易いことになる。従って、5階調化データよりも、17階調化データの方が、より圧縮し易いデータ形態であるといえる。
【0131】
一般には、高階調化すればするほど、より圧縮し易いデータとなり得るので、圧縮率が高くなる。その反面、形式的な解像度を変えずに高階調化するため、1個のハーフトーン領域の面積が大きくなってドットパターンの目が荒くなり、画質が低下することになる。しかし、人間の肉眼で見て顕著な画質低下を感じない範囲内で、高い階調化を行えば実質的に問題となる画質低下を引き起こすことなく、圧縮率を高めることができる。実際、600dpi×600dpiの元画像に対して、5階調化と17階調化とを行ってみたところ、肉眼で見て明らかな画質劣化は認められなかった。
【0132】
尚、以上はハーフトーン画像についてのデータ変換であるが、線画やテキストのような2値画像については、既に述べたように、縦横の一方向又は両方向の空間周波数を段階的に低下させることにより、圧縮し易いデータに変換する。個々の変換方法の具体内容については、当業者であれば格別の説明なく理解できるであろうから、その説明は省略する。
【0133】
このようにして、データ変換部162は、元の画像データを段階的により圧縮しやすい形態のデータに変換していく。この場合、最終段階の変換方法は、プリントアウト後の画像と元画像との間の差異が人間の肉眼によって顕著な差異と識別されない限界に設定される。
【0134】
以上説明したよに、この実施例は、中間コードから実画像データに変換されてメモリ171上に事前展開される実画像データのサイズが、メモリ171の空き領域よりも大きいと判定された場合、プリントアウト後の画像と元画像との間の差異が人間の肉眼によって顕著な差異と識別されない限界まで、元画像データを段階的に圧縮し易い形態の画像データに変換し、これを圧縮する。その結果、画質を大きく低下させることなく、実質的に無段階に近い圧縮率調節の下で必要最小限度のデータ圧縮を行って、メモリ不足を解消することができる。
【0135】
また、元画像データを圧縮し易い形態のデータに変換する場合、形式的な解像度は変化させないので、プリントエンジンやメカニズムコントローラは単一の解像度に対応したもので十分である。
【0136】
また、変換されたデータの圧縮は、主として同一パターンの繰り返しに着目して圧縮する方法で行うため、圧縮後のデータ中から元のデータを復元するのに必要なデータまで消去してしまう虞は小さく、実質的に可逆的な圧縮である。従って、データ変換に起因する画質劣化は許容せざるを得ないが、そのデータ変換の画質劣化を実質的に問題のない範囲に抑えておけば、高画質の画像を復元することができる。
【0137】
以上説明した内容は、あくまで本発明の代表的な実施例に関するものであって、本発明が上記内容のみに限定されることを意味するものでないのは勿論である。例えば、第2実施例で説明した5階調化や17階調化などのデータ変換は単なる例示にすぎす、本発明の趣旨を逸脱することなく他の種々のデータ変換方法を採用することもできる。
【図面の簡単な説明】
【図1】従来の画像データ処理システムの機能ブロック図。
【図2】本発明の第1の実施例におけるバンド方式の処理の概念を説明する図。
【図3】同実施例におけるRAMの内部の構成を示す図。
【図4】同実施例の構成を示す図。
【図5】中間コードの展開形式による分類を示す図。
【図6】同実施例における1ページ分の印刷情報300の保存処理を示すフ ローチャート。
【図7】同実施例における1ページ分の印刷情報300の保存処理の変形例 を示すフローチャート。
【図8】同変形例におけるタイマー処理を示すフローチャート。
【図9】本発明の第2の実施例の全体構成を示すブロック図。
【図10】コマンド解析部による解析処理動作のフローチャート。
【図11】画像形成部による画像形成処理動作のフローチャート。
【図12】メモリ管理部によるメモリ確保処理動作のフローチャート。
【図13】メモリ圧縮部によるメモリ圧縮処理動作のフローチャート。
【図14】データ変換部によるデータ変換処理動作のフローチャート。
【図15】5階調化した圧縮し易い画像データの説明図。
【図16】17階調化した圧縮し易い画像データの説明図。
Claims (7)
- 画像データを第1のデータ形式でメモリに蓄積した後、前記メモリから前記画像データを読み出し第2のデータ形式に変換して出力する装置において、
前記画像データを前記第1のデータ形式でメモリに蓄積しようとする際に、前記画像データの各要素について、前記第1のデータ形式におけるデータサイズが所定の閾値を超えているか否かを判定する判定手段と、
前記判定手段の判定結果が肯定的であるとき、前記各要素を前記第1のデータ形式に代えて、前記第2のデータ形式のデータを圧縮した形式で前記メモリに格納するデータ形式変換手段と、
前記判定手段の判定結果が否定的であるとき、前記各要素を前記第1のデータ形式で前記メモリに格納する手段と、
を備えることを特徴とする装置。 - 請求項1記載の装置において、
前記第1のデータ形式が中間コードであり、前記第2のデータ形式がビットマップデータであることを特徴とする装置。 - 画像データを第1のデータ形式でメモリに蓄積した後、前記メモリから前記画像データを読み出し第2のデータ形式に変換して出力する装置における、前記画像データを前記メモリに蓄積する方法において、
前記画像データを前記第1のデータ形式で前記メモリに蓄積しようとする際に、前記画像データの各要素について、前記第1のデータ形式におけるデータサイズが所定の閾値を超えているか否かを判定するステップと、
前記判定のステップからの結果が肯定的であるとき、前記各要素を前記第1のデータ形式に代えて、前記第2のデータ形式のデータを圧縮した形式で前記メモリに格納し、
前記判定のステップからの結果が否定的であるとき、前記各要素を前記第1のデータ形式で前記メモリに格納するステップと、
を備えることを特徴とする方法。 - 画像データを中間コード形式でメモリに蓄積した後、前記メモリから前記画像データを読み出しビットマップデータ形式に変換して出力する装置において、
前記画像データを前記中間コード形式で前記メモリに蓄積しようとする際に、前記画像データの各要素ついて、各要素に含まれる中間コードから予測される、各要素のビットマップデータ形式における描画面積が、所定の限界面積を超えているか否かを判定する面積限界判定手段と、
前記面積限界判定手段からの判定結果が肯定的であるとき、前記各要素を前記中間コード形式に代えて、前記ビットマップデータ形式のデータを圧縮した形式で前記メモリに蓄積するデータ形式変換手段と、
前記面積限界判定手段からの判定結果が否定的であるとき、前記各要素を前記中間コード形式で前記メモリに蓄積するデータ蓄積手段と、
を備えることを特徴とする装置。 - 請求項4記載の装置において、
前記画像データを前記中間コード形式でメモリに蓄積しようとする際に、前記画像データの各要素について、前記中間コード形式におけるデータサイズが所定の閾値を越えているか否かを判定するサイズ限界判定手段を更に備え、
前記データ形式変換手段は、前記サイズ限界判定手段の判定結果が肯定的であるときにも、前記各要素を前記中間コード形式に代えて、前記ビットマップデータ形式のデータを圧縮した形式で前記メモリに蓄積し、
前記データ蓄積手段は、前記面積限界判定手段および前記サイズ限界判定手段のいずれの判定結果も否定的であるときに、前記各要素を前記中間コード形式で前記メモリに蓄積することを特徴とする装置。 - 画像データを中間コード形式でメモリに蓄積した後、前記メモリから前記画像データを読み出しビットマップデータ形式に変換して出力する装置における、前記画像データを前記メモリに蓄積する方法において、
前記画像データを前記中間コード形式で前記メモリに蓄積しようとする際に、前記画像データの各要素ついて、各要素に含まれる中間コードから予測される、各要素のビットマップデータ形式における描画面積が、所定の限界面積を超えているか否かを判定する面積限界判定ステップと、
前記面積限界判定ステップからの結果が肯定的であるとき、前記各要素を前記中間コード形式に代えて、前記ビットマップ形式のデータを圧縮した形式で前記メモリに蓄積するステップと、
前記面積限界判定ステップからの結果が否定的であるとき、前記各要素を前記中間コード形式で前記メモリに蓄積するステップと、
を備えることを特徴とする方法。 - 画像データを中間コード形式でメモリに蓄積した後、前記メモリから前記画像データを読み出しビットマップデータ形式に変換して出力する装置における、前記画像データを前記メモリに蓄積する方法において、
前記画像データを前記中間コード形式で前記メモリに蓄積しようとする際に、前記画像データの各要素ついて、各要素に含まれる中間コードから予測される、各要素のビットマップデータ形式における描画面積が、所定の限界面積を超えているか否かを判定する面積限界判定ステップと、
前記画像データを前記中間コード形式でメモリに蓄積しようとする際に、前記画像データの各要素について、前記中間コード形式におけるデータサイズが所定の閾値を越えているか否かを判定するサイズ限界判定ステップと、
前記面積限界判定ステップおよび前記サイズ限界判定ステップの少なくともいずれか一方の判定結果が肯定的であるとき、前記各要素を前記中間コード形式に代えて、前記ビットマップ形式のデータを圧縮した形式で前記メモリに蓄積するステップと、
前記面積限界判定ステップおよび前記サイズ限界判定ステップの判定結果のいずれもが否定的であるとき、前記各要素を前記中間コード形式で前記メモリに蓄積するステップと、
を備えることを特徴とする方法。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22689395A JP3582675B2 (ja) | 1994-10-28 | 1995-09-04 | 画像データをメモリに蓄積する装置及び方法 |
| DE69534054T DE69534054T2 (de) | 1994-10-28 | 1995-10-27 | Verfahren und Vorrichtung zur Bilddatenkompression |
| EP95307694A EP0712095B1 (en) | 1994-10-28 | 1995-10-27 | Method and apparatus for image data compression |
| US08/549,527 US5852710A (en) | 1994-10-28 | 1995-10-27 | Apparatus and method for storing image data into memory |
Applications Claiming Priority (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP26506994 | 1994-10-28 | ||
| JP6-265069 | 1994-10-28 | ||
| JP32563794 | 1994-12-27 | ||
| JP6-325637 | 1994-12-27 | ||
| JP7-27175 | 1995-02-15 | ||
| JP2717595 | 1995-02-15 | ||
| JP22689395A JP3582675B2 (ja) | 1994-10-28 | 1995-09-04 | 画像データをメモリに蓄積する装置及び方法 |
Related Child Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000013928A Division JP2000165634A (ja) | 1994-10-28 | 2000-01-18 | 画像デ―タをメモリに蓄積する装置及び方法 |
| JP2003111655A Division JP2003309728A (ja) | 1994-10-28 | 2003-04-16 | 画像データをメモリに蓄積する装置及び方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH08289107A JPH08289107A (ja) | 1996-11-01 |
| JP3582675B2 true JP3582675B2 (ja) | 2004-10-27 |
Family
ID=27458638
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP22689395A Expired - Lifetime JP3582675B2 (ja) | 1994-10-28 | 1995-09-04 | 画像データをメモリに蓄積する装置及び方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5852710A (ja) |
| EP (1) | EP0712095B1 (ja) |
| JP (1) | JP3582675B2 (ja) |
| DE (1) | DE69534054T2 (ja) |
Families Citing this family (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0919909B1 (en) * | 1996-03-04 | 2007-05-09 | Canon Finetech Inc. | Image processor |
| US6538764B2 (en) * | 1996-04-12 | 2003-03-25 | Canon Kabushiki Kaisha | Printing apparatus, information processing apparatus, data processing method for use in such an apparatus, and storage medium storing computer-readable program |
| JPH1023271A (ja) * | 1996-07-05 | 1998-01-23 | Canon Inc | 画像形成方法とその装置 |
| JP3580982B2 (ja) * | 1997-04-30 | 2004-10-27 | パイオニア株式会社 | 情報記録方法及び装置 |
| US6112208A (en) * | 1997-08-25 | 2000-08-29 | Fujitsu Limited | Data compressing method and apparatus to generate bit maps in accordance with extracted data symbols |
| US6577769B1 (en) | 1999-09-18 | 2003-06-10 | Wildtangent, Inc. | Data compression through adaptive data size reduction |
| JP4500393B2 (ja) * | 1999-12-28 | 2010-07-14 | キヤノン株式会社 | 画像形成システム、情報処理装置、及び、画像処理装置の制御方法 |
| JP3922568B2 (ja) * | 2002-03-18 | 2007-05-30 | 株式会社リコー | 画像処理装置、描画処理方法及び該方法を実行するためのプログラム |
| JP2004348706A (ja) * | 2003-04-30 | 2004-12-09 | Canon Inc | 情報処理装置及び情報処理方法ならびに記憶媒体、プログラム |
| JP4241228B2 (ja) * | 2003-07-11 | 2009-03-18 | キヤノン株式会社 | 撮像装置 |
| JP2005059479A (ja) * | 2003-08-18 | 2005-03-10 | Minolta Co Ltd | データ出力装置 |
| JP2005297362A (ja) * | 2004-04-12 | 2005-10-27 | Canon Inc | 印刷装置及びその制御方法、プログラム |
| JP4517987B2 (ja) * | 2004-09-10 | 2010-08-04 | 富士ゼロックス株式会社 | 画像処理方法及び画像処理装置 |
| JP4702936B2 (ja) * | 2005-06-28 | 2011-06-15 | キヤノン株式会社 | 情報処理装置及び制御方法、プログラム |
| JP2007207194A (ja) * | 2006-02-06 | 2007-08-16 | Canon Inc | 印刷装置、外部装置、印刷システム及び印刷装置の制御方法 |
| US8130867B2 (en) | 2007-01-05 | 2012-03-06 | Qualcomm Incorporated | Pilot design for improved channel and interference estimation |
| JP5257751B2 (ja) * | 2008-04-07 | 2013-08-07 | コニカミノルタビジネステクノロジーズ株式会社 | 画像処理システム及びメモリ管理方法並びにメモリ管理プログラム |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4394774A (en) * | 1978-12-15 | 1983-07-19 | Compression Labs, Inc. | Digital video compression system and methods utilizing scene adaptive coding with rate buffer feedback |
| JPS5588176A (en) * | 1978-12-27 | 1980-07-03 | Hitachi Ltd | Picture processor |
| US4437681A (en) * | 1980-06-03 | 1984-03-20 | Thiokol Corporation | Inflator for a protective inflatable cushion system |
| JP2577553B2 (ja) * | 1987-01-28 | 1997-02-05 | キヤノン株式会社 | 端末装置 |
| JPH0753454B2 (ja) * | 1990-07-06 | 1995-06-07 | 株式会社日立製作所 | テキスト情報処理装置 |
| JP3105906B2 (ja) * | 1990-07-31 | 2000-11-06 | キヤノン株式会社 | 画像処理装置 |
| JP2887928B2 (ja) * | 1991-03-22 | 1999-05-10 | ブラザー工業株式会社 | イメージデータ出力装置 |
| JP3080982B2 (ja) * | 1990-11-19 | 2000-08-28 | キヤノン株式会社 | 画像処理装置 |
| JP3170317B2 (ja) * | 1991-08-30 | 2001-05-28 | キヤノン株式会社 | 画像処理装置 |
| JPH05110867A (ja) * | 1991-10-17 | 1993-04-30 | Canon Inc | 画像処理装置 |
| DE69132002T2 (de) * | 1990-11-19 | 2000-08-03 | Canon K.K., Tokio/Tokyo | Bildverarbeitungsgerät und -Verfahren |
| JP3203660B2 (ja) * | 1990-12-13 | 2001-08-27 | 富士ゼロックス株式会社 | 画像記録装置 |
| JPH04313960A (ja) * | 1991-04-12 | 1992-11-05 | Murata Mach Ltd | 画データ送信装置及び画データ受信装置 |
| US5129049A (en) * | 1991-05-16 | 1992-07-07 | Hewlett-Packard Company | Method and apparatus for preventing print overruns |
| JPH05207296A (ja) * | 1992-01-29 | 1993-08-13 | Fuji Xerox Co Ltd | 画像処理装置 |
| US5238385A (en) * | 1992-05-22 | 1993-08-24 | Nestec S.A. | Extrusion die assembly |
| JPH05334257A (ja) * | 1992-06-03 | 1993-12-17 | Matsushita Electric Ind Co Ltd | 並列プロセッサ |
| JPH0628284A (ja) * | 1992-07-10 | 1994-02-04 | Daikin Ind Ltd | 画像データ転送方法およびその装置 |
| JPH0679955A (ja) | 1992-09-02 | 1994-03-22 | Minolta Camera Co Ltd | プリンタ装置 |
| US5768424A (en) * | 1993-01-15 | 1998-06-16 | Canon, Inc. | Compression factor adjustment to facilitate image display |
| US5500928A (en) * | 1993-03-01 | 1996-03-19 | Xionics Document Technologies, Inc. | Digital printing system and process using adaptive compression |
| FR2702580B1 (fr) * | 1993-03-09 | 1995-06-16 | Blondel Gerard | Procédé de compression d'une image numérique à une taille prédéterminée, et procédé de décompression correspondant. |
| JPH07266633A (ja) * | 1994-03-29 | 1995-10-17 | Matsushita Electric Ind Co Ltd | 印字装置 |
| JPH0818752A (ja) * | 1994-06-28 | 1996-01-19 | Toshiba Corp | 画像形成装置 |
-
1995
- 1995-09-04 JP JP22689395A patent/JP3582675B2/ja not_active Expired - Lifetime
- 1995-10-27 DE DE69534054T patent/DE69534054T2/de not_active Expired - Lifetime
- 1995-10-27 EP EP95307694A patent/EP0712095B1/en not_active Expired - Lifetime
- 1995-10-27 US US08/549,527 patent/US5852710A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| EP0712095A3 (en) | 1996-10-30 |
| DE69534054T2 (de) | 2005-07-21 |
| EP0712095B1 (en) | 2005-03-09 |
| EP0712095A2 (en) | 1996-05-15 |
| JPH08289107A (ja) | 1996-11-01 |
| US5852710A (en) | 1998-12-22 |
| DE69534054D1 (de) | 2005-04-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3582675B2 (ja) | 画像データをメモリに蓄積する装置及び方法 | |
| US5500928A (en) | Digital printing system and process using adaptive compression | |
| JPH0863606A (ja) | グラフィック画像の圧縮システムおよび方法 | |
| US7555170B2 (en) | Image processing apparatus for scaling images | |
| US5367620A (en) | Character output device | |
| JPH02301464A (ja) | 情報処理装置及び方法 | |
| TW449997B (en) | Character processing apparatus, character processing method and memory | |
| JP2000165634A (ja) | 画像デ―タをメモリに蓄積する装置及び方法 | |
| JP2003309728A (ja) | 画像データをメモリに蓄積する装置及び方法 | |
| JP2833092B2 (ja) | 輪郭線データの圧縮装置および復元装置 | |
| JP2973260B2 (ja) | 印刷情報処理装置 | |
| JP2887928B2 (ja) | イメージデータ出力装置 | |
| JPH09168092A (ja) | 画像処理装置 | |
| JP2683506B2 (ja) | データ圧縮方法及び装置、データ伸長方法及び装置 | |
| US5971633A (en) | Method and device for printing objects on a medium using square sub-bands | |
| JPH09270919A (ja) | ページプリンタにおけるデータ圧縮方法 | |
| JP2945553B2 (ja) | 画像データの高速復元方法 | |
| JP2000092315A (ja) | 画像処理装置 | |
| JPH09163154A (ja) | 画像処理装置 | |
| JPH11105354A (ja) | 画像処理装置 | |
| JPH09138677A (ja) | キャラクタのデータ記憶装置及びキャラクタ出力装置 | |
| JPH06186951A (ja) | 文字出力装置 | |
| JPH04268960A (ja) | 文書作成装置 | |
| JP2001160148A (ja) | 画像処理装置 | |
| JPH0325495A (ja) | プリンタ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040323 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040524 |
|
| 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: 20040709 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040722 |
|
| 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: 20070806 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080806 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080806 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090806 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090806 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100806 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110806 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120806 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130806 Year of fee payment: 9 |
|
| EXPY | Cancellation because of completion of term |