JP4525880B2 - 画像処理装置 - Google Patents
画像処理装置 Download PDFInfo
- Publication number
- JP4525880B2 JP4525880B2 JP2000314758A JP2000314758A JP4525880B2 JP 4525880 B2 JP4525880 B2 JP 4525880B2 JP 2000314758 A JP2000314758 A JP 2000314758A JP 2000314758 A JP2000314758 A JP 2000314758A JP 4525880 B2 JP4525880 B2 JP 4525880B2
- Authority
- JP
- Japan
- Prior art keywords
- image data
- intermediate code
- code image
- management
- band
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Record Information Processing For Printing (AREA)
- Processing Or Creating Images (AREA)
Description
【発明の属する技術分野】
本発明は、入力された描画情報をバンド毎に中間コード画像データに変換し、変換された中間コード画像データをバンドバッファへ展開しつつ順次出力装置へ送信する画像処理装置に関するものであり、特に、入力画像情報がイメージの場合における中間コード画像データとイメージデータの管理に関するものである。
【0002】
【従来の技術】
近年の出力装置の高解像度化や装置の低価格化などのため、1ページ分のビットマップデータを保持するメモリを持たず、1ページを複数のバンドに分割して、そのバンドのサイズに相当するバッファ(以後、バンドバッファと呼ぶ)を1ないし複数持つ画像処理装置が開発されている。このような画像処理装置においては、ページ記述言語(PDL)などによってページ単位で記述された入力画像情報を、各バンド毎の中間コード画像データの形式に一旦変換する必要がある。中間コード画像データのフォーマットとしては、例えば抽象度の低いランレングス形式のものや、抽象度の高いディスプレイリストと呼ばれるものがある。
【0003】
ページ記述言語で記述される入力画像情報(以後、描画オブジェクトと呼ぶ)としては、主にフォント、グラフィックス、イメージの3つがあり、上述のシステムにおいてはそれぞれ中間コード画像データに変換されることになる。このとき、例えばイメージデータそのものをランレングス形式の中間コード画像データで表現しようとした場合、イメージデータは通常ドット毎に色が異なるため圧縮効果は期待できない。逆に、元のイメージ量より中間コード画像データ量の方が大きくなる場合もあり、イメージデータを中間コード画像データで表現することには問題がある。
【0004】
そこで、例えば特許第2836092号公報に記載されている「画像供給装置」では、イメージデータを中間コード画像データでは表現せずにそのままの状態で別の領域に保持し、出力解像度に合わせたイメージデータを表現するパラメータのみを中間コード画像データのヘッダ部に生成する。それとともに、中間コード画像データのヘッダ部にそのイメージデータへのポインタを持たせておく。これによって、イメージデータを中間コード画像データに変換することによるメモリ量および処理時間の増大を抑えている。
【0005】
しかし、上記の技術では描画されるイメージの形が矩形の場合にはよいが、任意形状の場合には中間コード画像データのヘッダ部のパラメータではその形状を表現できないため問題が発生する。そこで、例えば特開平9−171564号公報に記載されている「描画装置」や特開平10−215367号公報に記載されている「画像処理装置」では、出力解像度に合わせたイメージデータが描画されるライン毎の位置情報を中間コード画像データとして持ち、かつ中間コード画像データのヘッダ部にそのイメージデータへのポインタを持たせている。これによって、任意形状のイメージ描画に対応することができる。
【0006】
また、特許第2842009号公報や特許第2842011号公報に記載されている「画像データ生成装置」では、出力解像度に合わせたイメージデータが描画される位置情報を線分データとして中間コード画像データに持ち、かつイメージデータおよびその管理情報をイメージ情報データとして中間コード画像データとは別に持っている。そして、中間コード画像データに、対応するイメージ情報データのIDを持たせることにより、任意形状のイメージ描画に対応している。
【0007】
上述のように複数の描画オブジェクトを順次中間コード画像データに変換してゆく過程において、メモリ不足が発生する場合がある。また、中間コード画像データをもとにレンダリング処理を行ってビットマップデータを生成する処理が、出力装置の記録時間に間に合わず、オーバーランエラーにより白抜けを起こす場合がある。このような場合の対応策として、既にメモリに格納してあるイメージデータ、あるいはバンドそのものに対して操作(間引き/圧縮など)を加えることが考えられている。しかし、上述のように中間コード画像データにイメージデータへのポインタを持たせたり、イメージ情報データのIDを持たせるだけであると、メモリ不足や描画時間が間に合わない場合にイメージデータ等に操作を加えた際の情報を中間コード画像データに迅速に反映できないという問題がある。ましてや、一つのイメージデータに対して複数の中間コード画像データが生成されている場合には、より困難である。
【0008】
例えば特開平9−39340号公報に記載されている「印刷装置」では、一つのイメージデータに対して生成された複数の中間コード画像データを結び付けておく。そして、デコンポーズ処理途中においてメモリ不足が発生した場合や描画時間が間に合わない場合には、結び付けられた中間コード画像データが管理するイメージデータを一つの連続したイメージデータとして解像度を落としてページバッファに書き込む方式を採っている。これにより、一つのイメージデータに対して複数の中間コード画像データが生成されている場合にも、イメージデータに対する間引き処理に伴うイメージデータのアドレスやデータ量などの修正された情報を、複数の中間コード画像データに迅速に反映することができる。この技術では、ページバッファに対してレンダリング処理イメージデータの書込みを行っているため、中間コード画像データ間の結び付けが意味を持っている。しかし、ページバッファではなくバンドバッファに書込みを行い、かつイメージデータがバンドをまたぐことにより複数の中間コード画像データが生成された場合には、中間コード画像データはバンド単位でレンダリング処理されるので、個々の中間コード画像データを結びつける意味はない。
【0009】
また、特開平9−307717号公報に記載されている「画像形成装置」では、描画オブジェクトがイメージの場合、中間コード画像データ(ディスプレイリスト)にリンクしているイメージデータが圧縮されているか否かの情報を持ち、またイメージデータの先頭にどの中間コード画像データにリンクしているかの情報を持たせている。これにより、デコンポーズ処理途中においてメモリ不足が発生した場合に、イメージデータに圧縮処理を施したことによるイメージデータ量の変化およびメモリ内での再配置によるアドレス値の変化を中間コード画像データに迅速に反映することができる。
【0010】
しかし、圧縮方式が非可逆方式の場合、画質を保証するためにイメージ描画オブジェクト単位に圧縮を行わなければならない。複数のイメージ描画オブジェクトが存在し、かつ一つのイメージデータに対して複数の中間コード画像データが生成されている状況においては、上記の技術ではイメージデータが中間コード画像データ毎に分割されていて、なおかつメモリ上で再配置されている場合がある。従って、上記の技術ではイメージ描画オブジェクト単位に圧縮することができない場合が発生する。
【0011】
以上のように、描画情報がイメージの場合における中間コード画像データとイメージデータの管理に関して、従来技術では1つのイメージ描画オブジェクトが複数のバンドに分割され、バンド毎にレンダリング処理を行うような場合には、1つの描画オブジェクト毎の加工を迅速に中間コード画像データに反映することができないなどの問題があった。
【0012】
また、メモリに格納されているイメージデータの解像度が出力解像度に等しくない場合には、レンダリング時に拡大処理を行わなければならない。例えば特開平5−246077号公報に記載されている「印刷装置」では、低解像度のデータを整数倍に拡大して高解像度で保持されているデータと合成することにより低解像度でストアされているデータの拡大処理に対応している。しかし、バンド単位で処理を行う場合、拡大率が整数倍であっても、それぞれ拡大されるデータの境界がバンドの境界と一致しないことがある。そのような場合には、バンド境界で絵がずれることになる。
【0013】
また特開平10−51627号公報に記載されている「画像処理方法とその装置」では、バンド単位で拡大処理を行う際に、出力解像度に合わせたイメージデータの全体の周期が変わらないように、第1バンドの終わりの描画部分と第2バンドの始めの描画部分に対して画像ラインを挿入し、バンド境界における画像のずれに対応している。しかし、画質の点でバンド単位で拡大処理を行う場合は少なく、通常は拡大の対象はイメージの描画オブジェクト単位である。このように描画オブジェクト単位で拡大処理を行うとき、同一バンド中に複数のバンドにまたがるイメージの描画オブジェクトが複数存在する場合には、上記の技術では第2バンドに対する補正情報を複数持てないことにより対応できないという問題があった。
【0014】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、イメージの入力画像情報を中間コード画像データとイメージデータにより管理する際に、イメージデータに対して操作(間引き/圧縮など)が加わった場合でも、修正された情報を中間コード画像データに迅速に反映することができる画像処理装置を提供することを目的とするものである。
【0015】
【課題を解決するための手段】
本発明は、入力された描画情報をバンド毎の中間コード画像データとして管理する画像処理装置において、バンド毎に生成された中間コード画像データを保持する中間コード画像データ保持手段と、前記中間コード画像データをバンド毎に管理する中間コード画像データ管理手段と、前記描画情報のイメージデータ部分を保持するイメージデータ保持手段と、前記イメージデータ部分を管理するイメージデータ管理手段を有し、該イメージデータ管理手段は、前記イメージデータ保持手段に保持されているイメージデータ部分と該イメージデータ部分の少なくとも一部を描画する領域に対応付けて生成された前記中間コード画像データ保持手段内の1ないし複数の中間コード画像データを相互に関連づける管理情報により管理することを特徴とするものである。このとき、イメージデータ管理手段は、前記イメージデータ部分を入力解像度で管理し、中間コード画像データ管理手段は、前記イメージデータ部分の少なくとも一部が出力解像度に合わせて描画される領域に対して生成された1ないし複数の中間コード画像データを管理するように構成することができる。さらに、前記イメージデータ管理手段によって管理している1ないし複数の前記イメージデータ部分をページ単位で管理するとともに前記イメージデータ保持手段の領域管理を行う総イメージデータ管理手段を設けることができる。
【0016】
このように本発明では、イメージデータ管理手段が管理情報によって、イメージデータ部分と、そのイメージデータ部分の少なくとも一部を描画する領域に対応付けて生成された1ないし複数の中間コード画像データを相互に関連づけている。上述のように、複数のイメージコマンドが存在する場合や、イメージデータがバンドをまたぐことにより複数の中間コード画像データが生成された場合において、中間コード画像データを生成する途中のメモリ不足が発生する場合がある。また、レンダリング処理直前における描画時間予測において描画時間が出力装置における記録時間に間に合わないバンドが存在する場合がある。このような場合に、イメージデータに対して間引き/圧縮などの操作を加える。本発明では、このようなイメージデータに対する操作を加えた場合でも、イメージデータ部分と中間コード画像データ相互の関連づけによって、修正された情報を中間コード画像データに迅速に反映することができる。これにより、例えば拡大処理におけるバンド境界の補正値や、レンダリング処理をハードウェアで実行させる場合でのイメージデータのDMA転送量を正確に得ることが可能となり、画質を向上させ、また処理速度を高速化することができる。さらに、限られたメモリ量で複数のイメージコマンドに対応可能となる。
【0017】
【発明の実施の形態】
図1は、本発明の画像処理装置の実施の一形態を示すブロック図である。図中、11は画像処理装置、12は上位処理部、13は予測データ採取部、14は中間コード画像データ保持ブロック管理部、15は総イメージデータ管理部、16は予測処理部、17は中間コード画像データ保持ブロック保持部、18はイメージデータ管理部、19はイメージデータ/圧縮コード保持部、20は重畳図形処理部、21は圧縮処理部、22は間引き処理部、23はレンダリング処理部、24,25はバンドバッファである。本発明の画像処理装置11は、ネットワークあるいは外部ディスクなどから、例えばPDL(ページ記述言語)などで記述されたデータが入力画像情報として与えられ、入力描画情報をバンド毎の中間コード画像データに変換し、変換された中間コード画像データをバンド毎にビットマップデータに展開しつつ、順次出力装置へ送出するものである。その構成として、画像処理装置11、上位処理部12、予測データ採取部13、中間コード画像データ保持ブロック管理部14、総イメージデータ管理部15、予測処理部16、中間コード画像データ保持ブロック保持部17、イメージデータ管理部18、イメージデータ/圧縮コード保持部19、重畳図形処理部20、圧縮処理部21、間引き処理部22、レンダリング処理部23、バンドバッファ24,25等を有している。
【0018】
上位処理部12は、与えられた入力画像情報を1語1語解釈し、描画オブジェクト(グラフィックス、フォント、イメージなど)を表現するデータである場合には、その位置情報から対応するバンド番号を割り出し、バンド毎の中間コード画像データに変換する。変換した中間コード画像データは、中間コード画像データ保持ブロック管理部14に渡される。また、描画オブジェクトがイメージである場合には、イメージデータが総イメージデータ管理部15に渡される。
【0019】
予測データ採取部13は、上位処理部12で中間コード画像データが作成された時に、予測処理部16でレンダリング処理時間を予測する際のデータを採取する。
【0020】
中間コード画像データ保持ブロック管理部14は、上位処理部12で変換した中間コード画像データをバンド毎に中間コード画像データ保持ブロック保持部17に保持させて管理する。ここで、中間コード画像データが生成される毎に中間コード画像データ保持ブロック保持部17のメモリ領域の獲得を行っていると、メモリ領域の断片化が発生しやすく、メモリ使用効率が悪くなる。そのため、一定サイズのブロック(以降、中間コード画像データ保持ブロックと呼ぶ)を複数事前に用意し、この中間コード画像データ保持ブロックごとに中間コード画像データ保持ブロック保持部に対してメモリ領域の獲得あるいは解放を行う。
【0021】
図2は、中間コード画像データ保持ブロック管理部14において中間コード画像データを管理する際のデータ構造の一例の説明図、図3は、同じく中間コード画像データのデータ構造の一例の説明図である。図2(A)に示すように、中間コード画像データ保持ブロックはバンド単位で管理されている。同一バンドの中間コード画像データ保持ブロック同士は獲得した順序で双方向リンクにより連結され、また各バンドにおいて最初に獲得した中間コード画像データ保持ブロックとバンド管理情報とが双方向リンクにより連結されている。なお、中間コード画像データ保持ブロックの使用効率を高めるため、描画オブジェクトが存在しないバンドに対しては中間コード画像データ保持ブロックは与えない。また、中間コード画像データ保持ブロックは、必要になった時点で獲得し、双方向ポインタなどで連結して使用する。
【0022】
バンド管理情報は、図2(B)に示すように、先頭の中間コード画像データ保持ブロックへのポインタや、後述する重畳図形処理部20による重畳図形処理を行って重なりがないことが保証されているか否かを示す重なり情報などを含んでいる。
【0023】
中間コード画像データ保持ブロックは、図2(C)に示すように、管理情報領域と中間コード画像データ保持領域を有している。管理情報領域には、バンド管理情報あるいは手前の中間コード画像データ保持ブロックを指し示すポインタや後続の中間コード画像データ保持ブロックを指し示すポインタなどを含んでいる。中間コード画像データ保持領域には、中間コード画像データが格納される。なお、そのデータ量を黒く塗り潰して示しており、中間コード画像データ保持領域がすべて黒く塗り潰されている場合には、その中間コード画像データ保持ブロックにはそれ以上の中間コード画像データが格納できないことを示している。実際には一杯となっても中間コード画像データ保持領域に隙間が発生することもあるが、ここではそのような隙間の発生は省略している。
【0024】
中間コード画像データは、図2(D)に示すように、管理情報領域とエッジ情報領域を有している。特にイメージの中間コード画像データの管理情報領域には、図3(A)に示すように、描画オブジェクトID、イメージデータ管理部18の管理情報へのアドレス、各色ごとのイメージデータまたは圧縮コードが格納されているイメージデータ/圧縮コード保持部19内のアドレスとそのデータサイズ、その他のパラメータが格納される。このうち、描画オブジェクトIDは、イメージデータ/圧縮コード保持部19に格納されているデータがイメージデータであるのかあるいは圧縮された圧縮コードであるのかの別、及び、イメージデータである場合に拡大の必要の有無を示している。例えばイメージデータで拡大の必要がない場合を‘0’、間引きされていて拡大する必要のあるイメージデータの場合を‘1’,圧縮コードの場合を‘2’等とすることができる。
【0025】
エッジ情報は、イメージデータを出力解像度で描画する際の当該バンドにおける各ラインごとの始点とその幅の情報を保持したものである。例えば図3(B)において黒く塗り潰した形状のイメージデータが与えられているとき、図3(C)に示すようなエッジ情報が中間コード画像データのエッジ情報領域に格納される。このようなエッジ情報の作成方法については、従来と同様であるのでここでは説明を省略する。
【0026】
図1に戻り、総イメージデータ管理部15は、上位処理部12から渡されるイメージコマンドのイメージデータ部分をイメージデータ/圧縮コード保持部19に格納するとともに、イメージデータ管理部18に当該イメージデータ部分の管理情報を作成させる。総イメージデータ管理部15は、このようにしてイメージデータ管理部18がイメージデータ部分毎に作成した管理情報及び管理リストによって管理し、これによってイメージデータ管理部18が管理する1ないし複数のイメージデータ部分をページ単位で管理する。さらに総イメージデータ管理部15は、レンダリング処理部23の処理の軽減を図るため、色空間変換/色補正処理、および回転がある場合の回転処理を入力解像度の状態で先に実行することができる。これらの処理を行う場合は、使用可能なメモリ量を考慮してライン単位で行い、順次、結果をイメージデータ/圧縮コード保持部19に格納する。ただし、レンダリング処理部23において、色空間変換/色補正処理あるいは回転処理をサポートしている場合には、これらの処理は省略してもよい。さらに、圧縮処理部21で圧縮処理された圧縮コードや、間引き処理部22で間引き処理されたイメージデータのイメージデータ/圧縮コード保持部19への格納及びイメージデータ管理部18の管理情報などへのデータ修正、さらには中間コード情報データ保持ブロック管理部14への中間コード情報データの修正依頼などを行う。
【0027】
図4は、総イメージデータ管理部15における管理情報のフォーマットの一例の説明図である。総イメージデータ管理部15の管理情報としては、図4(A)に示すように、イメージデータ/圧縮コード保持部19を管理するために、イメージデータ/圧縮コード保持部19の先頭アドレス及び総サイズと、未使用領域の先頭アドレスを有している。これらについては図4(B)にその関係を示している。また、管理情報としてイメージデータ管理部18が各イメージデータを管理するための管理情報を指し示す管理リストのうち、先頭の管理リストのアドレスを有している。このアドレス情報によって、イメージデータ管理部18の管理リストを介して各イメージデータの管理情報を参照することが可能である。
【0028】
図1に戻り、予測処理部16は、予測データ採取部13が中間コード画像データ作成時に採取したデータをもとに、レンダリング処理部23によるレンダリング処理時間が出力装置の記録速度に間に合うか否かの判定を行う。記録速度に間に合わないバンドが存在し、そのバンドのバンド管理情報中の重なり情報が重なりがある状態の場合には、重畳図形処理部20で重畳図形処理を行う。それでもレンダリング処理時間が記録時間に間に合わない場合、あるいは重なり情報が重なりがない状態を示している場合には、例えば例外処理として事前に別の領域に確保したバンドバッファ領域に展開するなどして、必ず記録速度に間に合うようにする。
【0029】
中間コード画像データ保持ブロック保持部17は、例えば図2に示す中間コード情報データ保持ブロックを保持する。もちろん、バンド管理情報などについても保持してもよい。
【0030】
イメージデータ管理部18は、イメージデータ/圧縮コード保持部19に保持されているイメージデータごとに管理情報により管理しており、この管理情報は管理リストによってページ単位で連結されている。また、当該イメージデータに対応する中間コード情報データを管理するための中間コード画像データ管理リストを保持しており、管理情報と中間コード画像データ管理リストによって、イメージデータ/圧縮コード保持部19内のイメージデータと、そのイメージデータ部分の少なくとも一部を描画する領域に対応付けて生成された中間コード画像データ保持ブロック保持部17内の1ないし複数の中間コード画像データを相互に関連づけている。
【0031】
図5は、イメージデータ管理部18において管理する管理リストのフォーマットの一例の説明図、図6は、同じく管理情報のフォーマットの一例の説明図、図7は、同じく中間コード画像データ管理リストのフォーマットの一例の説明図である。管理リストは各管理情報に対して生成され、図5(A)に示すように、次の管理リストのアドレスと管理情報のアドレスを有している。この管理リストによって、複数のイメージデータが存在する場合には図5(B)に示すように管理リストが連結されるため、それら複数のイメージデータを管理することができる。
【0032】
管理情報は、図6(A)に示すように、イメージデータ状態IDと、イメージデータ状態パラメータ、総イメージデータ管理部の管理情報のアドレス、それぞれの色ごとのイメージデータあるいは圧縮コードが保持されているイメージデータ/圧縮コード保持部19のアドレスと総データサイズ、イメージデータの入力解像度における高さと幅、出力解像度における高さと幅、描画位置情報(オフセットX、Y)、それに先頭の中間コード画像データ管理リストのアドレスなどの情報を有している。
【0033】
イメージデータ状態IDは、イメージデータ/圧縮コード保持部19に格納されているデータがイメージデータなのかあるいは圧縮コードなのか、及び、イメージデータであれば拡大の必要の有無、圧縮コードであればバンド全体の圧縮であるのか否かなどの状態を示している。例えばイメージデータで拡大の必要がない場合を‘0’、間引き処理されたイメージデータで拡大の必要がある場合を‘1’、圧縮コードでバンド全体を圧縮している場合を‘2’、圧縮コードでその他の場合を‘3’とすることができる。もちろんこれに限られるものではない。イメージデータ状態パラメータは、イメージデータの解像度や、圧縮されている場合にはその圧縮率などの情報が格納されている。総イメージデータ管理部の管理情報のアドレスは、イメージデータの管理情報から総イメージデータ管理部15の管理情報をアクセスするために用いられる。それぞれの色ごとのイメージデータあるいは圧縮コードが保持されているイメージデータ/圧縮コード保持部19のアドレスと総データサイズは、図6(B)に示すように、各色ごとに格納されているデータの先頭アドレスとデータサイズが格納されている。イメージデータの入力解像度における高さと幅は、実際にイメージデータ/圧縮コード保持部19に格納されているイメージデータの大きさに対応し、また、出力解像度における高さと幅、描画位置情報(オフセットX、Y)は、レンダリング処理の際に描画される大きさ及び位置を示すもので、それぞれ、図6(C)に示すものである。先頭の中間コード画像データ管理リストのアドレスは、当該イメージデータが複数のバンドに跨っているとき、そのイメージデータに対応した中間コード画像データが複数生成される。この複数の中間コード画像データをイメージデータと対応付けるためのものである。
【0034】
中間コード画像データ管理リストは、図7(A)に示すように、次の中間コード画像データ管理リストのアドレスと、バンド内の開始ライン及び終了ライン、それに、中間コード画像データのアドレスを含んでいる。次の中間コード画像データ管理リストのアドレスによって、図7(B)に示すように、中間コード画像データ管理リストは連結され、中間コード画像データが複数存在していても1つのイメージデータに対応付けることができる。また、中間コード画像データのアドレスによって、図7(B)に示すように、例えば図2に示したような中間コード画像データ保持ブロック中の中間コード画像データとイメージデータとを対応付けることができる。
【0035】
また、上述のようにイメージデータ管理部18はバンド境界を意識せずにイメージデータを管理しており、これによりイメージデータ管理部18の管理情報中のイメージデータに関する位置情報(オフセットX、オフセットY、高さ、幅)はページの原点を基準にした値を持つ。これに対して中間コード画像データのイメージデータに関する位置情報は、図3に示すように、各バンドの原点を基準にした値であり、また一つのイメージデータから複数のイメージの中間コード画像データが作成される場合がある。そのため、それぞれの中間コード画像データ管理リストに、ページの原点を基準にした対応する中間コード画像データが表現するイメージデータのY座標の始点と終点の値(Y始点、Y終点)を設定可能に構成している。
【0036】
イメージデータ/圧縮コード保持部19は、総イメージデータ管理部15によってその領域が管理されており、イメージデータを保持し、また圧縮処理部21でイメージデータが圧縮処理された場合には圧縮コードを保持する。
【0037】
重畳図形処理部20は、描画オブジェクトの重なりをなくす処理を行う。上位処理部12における1ページ分のPDLから中間コード画像データへの変換処理途中において、中間コード画像データを保持する中間コード画像データ保持ブロックが枯渇した場合、中間コード画像データ保持ブロックを回収する必要がある。そのため、中間コード画像データ保持ブロック管理部14によってこの重畳図形処理部20が起動される。あるいは、レンダリング処理直前において、レンダリング処理時間の予測値が出力装置の記録時間に間に合わない場合にも起動される。
【0038】
重畳図形処理部20は、重畳図形処理を行っておらず、かつ中間コード画像データ保持ブロックが多いバンド、あるいはメモリ書込み量の多いバンドなどを処理対象として、バンド単位で重畳図形処理を行う。重畳図形処理は、処理対象のバンドについて、そのバンドで生成された全ての中間コード画像データに対し、生成順とは逆に一つ一つ重なり具合を調べてゆく。そして、重ならない部分が残る場合には、再度中間コード画像データに戻す。このような処理を繰り返すことにより、描画オブジェクトの重なりを無くすことができる。通常、重畳図形処理後においては、中間コード画像データの総データ量は処理前と比較して小さくなるため、中間コード画像データ保持ブロックの一部が不要となる。不要となった中間コード画像データ保持ブロックは中間コード画像データ保持ブロック管理部14により回収されて再利用される。また、この重畳図形処理によって描画オブジェクトの重なりがなくなることから、レンダリング処理時間を短縮することができる。
【0039】
なお、この重畳図形処理によって中間コード画像データの先頭アドレスの値が変わるので、オブジェクトの種類がイメージの場合には、イメージの中間コード画像データのアドレスを保持する中間コード画像データ管理リストのアドレス値の更新を行う。また、他の描画オブジェクトとの重なり具合によっては、イメージの中間コード画像データの描画領域が削減される場合がある。このような場合には、中間コード画像データ管理リスト中のY始点、Y終点の値についても更新する。
【0040】
圧縮処理部21は、イメージデータ/圧縮コード保持部19の領域が枯渇した場合に、その領域の回収を目的として起動され、既にイメージデータ/圧縮コード保持部19に格納されているイメージデータに対して圧縮処理を行う。あるいは、中間コード画像データ保持ブロック保持部17の中間コード画像データ保持ブロックが枯渇し、重畳図形処理部20による重畳図形処理を行っても中間コード画像データ保持ブロックが回収できない場合に、あるバンドの中間コード画像データをすべてバンドバッファに展開した後に、そのバンドバッファ内のイメージデータに対して圧縮を行う。これによって多数の描画オブジェクトに対する中間コード画像データは圧縮コードに対する中間コード画像データのみとなり、大幅に中間コード画像データを削減して中間コード画像データ保持ブロックを回収することができる。
【0041】
間引き処理部22は、イメージデータ/圧縮コード保持部19の領域が枯渇したとき、その領域の回収を目的として起動される。すでにイメージデータ/圧縮コード保持部19に格納されているイメージデータ(拡大必要なし/あり)に対して間引き処理(解像度変換)を行う。間引き処理後、イメージデータを間引いたことにより捻出した領域を未使用領域として回収可能とする。イメージデータを間引いたことにより捻出した未使用領域は、処理対象となったイメージデータがイメージデータ/圧縮コード保持部19の領域の最後尾である場合を除き、イメージデータ/圧縮コード領域の使用領域の途中に存在する。そのため、この未使用領域をイメージデータ/圧縮コード保持部19の領域の最後尾に移動しておくとよい。
【0042】
レンダリング処理部23は、バンドバッファ24あるいはバンドバッファ25をクリアした後に、対応するバンドのバンド管理情報から先頭の中間コード画像データ保持ブロックのアドレスを得て、中間コード画像データ保持ブロックを順に読み込み、その中に保持されている中間コード画像データの解釈を行う。そして、ビットマップデータをバンドバッファ24あるいはバンドバッファ25へ書き込む。
【0043】
バンドバッファ24,25は、レンダリング処理部23でレンダリング処理を行った結果得られる1バンド分のビットマップデータを格納する。このバンドバッファ24,25は交代バッファとして用いられ、一方にレンダリング処理結果が書き込まれているとき、他方に書き込まれたビットマップデータが出力装置に対して転送される。もちろん、バンドバッファを3つ以上設けてもよい。
【0044】
図8は、総イメージデータ管理部15,イメージデータ管理部18,中間コード画像データ保持ブロック管理部14で管理される各情報の関係の一例を示す説明図、図9は、図8に示すデータ構造によって管理されるイメージデータの一例の説明図である。図中、31は総イメージデータ管理部15で管理される管理情報、32,33はイメージデータ管理部18で管理される管理リスト、34,35はイメージデータ管理部18で管理される管理情報、36〜38は中間コード画像データ管理リスト、39〜41は中間コード画像データである。ここでは、図9に示すような2つのイメージデータ部分を含むコマンドが入力描画情報として入力されたものとする。図9における左側のイメージデータは2つのバンドに跨って描画されるものであり、それぞれ▲1▼、▲2▼として各バンドの部分を示している。また、右側のイメージデータはバンド内に収まっており、これを▲3▼として示している。なお、これらのイメージデータの各部分に相当するデータについては、なるべく▲1▼〜▲3▼の符号を付して示している。
【0045】
イメージデータ/圧縮コード保持部19には、図9に示した▲1▼及び▲2▼のイメージデータが1つのイメージデータとして入力解像度のまま格納される。また、▲3▼のイメージデータについては、圧縮処理を受けて圧縮コードとして格納されているものとして図8に示している。総イメージデータ管理部15の管理情報31は、このイメージデータ/圧縮コード保持部19の先頭アドレス及び未使用領域アドレスを保持している。
【0046】
また、図9の左側に示した▲1▼,▲2▼のイメージデータに対応してイメージデータ管理部18の管理情報34が設けられ、また図9の右側に示した▲3▼のイメージデータに対応してイメージデータ管理部18の管理情報35が設けられる。さらに、それぞれのイメージデータ管理部18の管理情報34,35に対応してイメージデータ管理部18の管理リスト32,33が設けられ、イメージデータ管理部18の管理リスト32の次の管理リストのアドレスによって、イメージデータ管理部18の管理リスト33が連結されている。さらに、イメージデータ管理部18の管理リスト32のアドレスが総イメージデータ管理部15の管理情報31中に格納されており、総イメージデータ管理部15の管理情報31からイメージデータ管理部18の管理リスト32、33を介してイメージデータ管理部18の管理情報34,35が参照可能に構成されている。
【0047】
イメージデータ管理部18の管理情報34には、イメージデータ/圧縮コード保持部19内のイメージデータ▲1▼、▲2▼のそれぞれの色ごとの先頭アドレスが格納されるとともに、先頭の中間コード画像データ管理リスト36のアドレスが格納されている。中間コード画像データは各バンド毎に生成されるため、1つのイメージデータでも例えば図9の左側の図形では▲1▼の部分と▲2▼の部分の2つの中間コード画像データが生成される。ここでは、▲1▼の部分に対応して中間コード画像データ39が、▲2▼の部分に対応して中間コード画像データ40が生成されている。中間コード画像データ管理リストについても、生成される中間コード画像データ毎に生成されている。ここでは、中間コード画像データ管理リスト36はイメージデータ▲1▼に対応して生成され、中間コード画像データ39のアドレスを有している。また、中間コード画像データ管理リスト37はイメージデータ▲2▼に対応して生成され、中間コード画像データ40のアドレスを有している。そして、中間コード画像データ管理リスト36に中間コード画像データ管理リスト37のアドレスを保持し、中間コード画像データ管理リスト36,37を連結している。これによって、イメージデータ管理部15の管理情報から、当該イメージデータに対応して生成されている中間コード画像データを、中間コード画像データ管理リストを介して参照できるように構成されている。また、中間コード画像データ39,40にも、対応するイメージデータ管理部15の管理情報34を参照するためのアドレスが格納されている。
【0048】
同様に、イメージデータ管理部18の管理情報35には、イメージデータ/圧縮コード保持部19内のイメージデータ▲3▼(ここでは圧縮コード)のそれぞれの色ごとの先頭アドレスが格納されるとともに、先頭の中間コード画像データ管理リスト38のアドレスが格納されている。この場合には、中間コード画像データ41は1つだけ生成されており、それに対応して中間コード画像データ管理リスト38が1つだけ生成されている。そして、中間コード画像データ管理リスト38には中間コード画像データ41のアドレスが格納されており、イメージデータ管理部15の管理情報35から中間コード画像データ41が参照可能に構成されている。また、中間コード画像データ41にも、対応するイメージデータ管理部15の管理情報35を参照するためのアドレスが格納されている。
【0049】
このようなデータ構造によって、イメージデータをバンド毎に分割せずに管理するとともに、バンド毎に生成されている中間コード画像データとの対応を図り、さらにそれぞれの管理情報を容易に参照可能に構成している。以下に説明するように、このようなデータ構造によって、圧縮処理部21や間引き処理部22によりイメージデータの間引き処理や圧縮処理を行った場合にも、迅速にその修正内容を中間コード画像データに反映できるし、逆に例えば重畳図形処理部20で中間コード画像データに対して重畳図形処理を施した場合でも、その情報をそれぞれの管理情報に反映することができる。
【0050】
以下、本発明の画像処理装置の実施の一形態における動作の一例について説明してゆく。図10は、本発明の画像処理装置の実施の一形態における動作の一例の概要を示すフローチャートである。ネットワークあるいは外部ディスクなどからPDL(ページ記述言語)等によって記述された入力画像情報が与えられると、まずS51において、上位処理装置12により1語1語解釈が行われる。S52において、入力画像情報が描画オブジェクト(グラフィックス、フォント、イメージなど)を表現するデータであるか否かを判断し、描画オブジェクトである場合には以下のS53〜S60の処理を行う。なお、入力画像情報が描画オブジェクトでない場合にはS61へ進む。
【0051】
描画オブジェクトについては、その位置情報から対応するバンド番号を割り出し、バンド毎に中間コード画像データに変換を行う。このとき、S53においてイメージの描画オブジェクトか否かを判断し、イメージの描画オブジェクトについてはS59及びS60の処理を、グラフィックスやフォントなどのイメージ以外の描画オブジェクトの場合にはS54〜S58の処理を行う。
【0052】
イメージ以外の描画オブジェクトの場合には、その描画オブジェクトが跨る各各バンド毎に、S54とS58で挟まれているS55〜S57の処理を行う。なお、S54における上隅を切り欠いた矩形と、S58における下隅を切り欠いた矩形とが対応し、この間の処理を繰り返すことを示している。以下の図においても同様である。ここでは1番目のバンドからm番目のバンドまでについて、S55〜S57の処理を繰り返すことになる。
【0053】
S55において、まず中間コード画像データ保持ブロック管理部14に対して中間コード画像データを格納するための領域を検査する処理(格納領域検査処理)を行わせる。この格納領域検査処理については後述する。ここで、すでに獲得している中間コード画像データ保持ブロックに格納領域が残っていればよいが、新たな中間コード画像データ保持ブロックが必要な場合には、中間コード画像データ保持ブロックを中間コード画像データ保持ブロック格納部14から獲得する。さらにことのき、中間コード画像データ保持ブロックが枯渇していて取得できない場合には、重畳図形処理部20による重畳図形処理を行って中間コード画像データ保持ブロックを回収してから、改めて中間コード画像データ保持ブロックの獲得を行うことになる。
【0054】
このようにして中間コード画像データを格納する領域をチェックした後、S56において、上位処理部12は入力された描画オブジェクトによって描画される位置の情報から当該バンドの中間コード画像データを生成する。そして生成された中間コード画像データを中間コード画像データ保持ブロック管理部14に渡し、中間コード画像データ保持ブロック保持部17の中間コード画像データ保持ブロックに格納する。
【0055】
さらに、S57において、レンダリング処理時間の予測を行うためのデータ採取が行われる。レンダリング処理時間の予測を行うためのデータ採取は、中間コード画像データが生成されたときに行うことが最も効率的である。そのため、中間コード画像データの生成直後のS57において、予測データ採取部13によって予測データの採取を行う。
【0056】
このようにS54及びS58間のS55〜S57の処理を、描画オブジェクトが跨る各バンドについて繰り返して実行してゆく。1つの描画オブジェクトについての処理終了したら、S61へ進む。
【0057】
S53で描画オブジェクトがイメージであると判断された場合には、S59におけるイメージデータ管理部18の管理情報などの生成処理と、S60におけるイメージの中間コード画像データ生成処理を行う。描画オブジェクトがイメージである場合には、イメージデータがイメージコマンドと一緒に上位処理部12に入力される。このイメージデータの解像度は出力装置の解像度(400dpiとか600dpi相当)とは無関係であり、スキャナなどにより取り込まれた解像度(72dpiとか200dpi)のままであることが多い。またこれにより、複数のイメージコマンドが存在するドキュメントの場合、それぞれのイメージデータの解像度はまちまちの値となる。そのため、レンダリング処理部23において拡大機能がサポートされていない場合には、イメージコマンド解釈時にイメージデータを出力解像度に合わせて拡大する必要がある。しかし、例えばイメージデータの内容がカラーで出力装置の解像度が400dpiとか600dpiの場合には多大なメモリを必要とすることになる。ここでは、レンダリング処理部23は、拡大機能および伸長機能を持つものとし、イメージデータは入力解像度のままイメージデータ/圧縮コード保持部19に保持する。そして、総イメージデータ管理部15の管理情報の更新を行うとともに、そのイメージデータを管理するための情報として、イメージデータ管理部18の管理リスト、管理情報、中間コード画像データ管理リストなどを生成することになる。このS59におけるイメージデータ管理部の管理情報生成処理については後述する。
【0058】
さらにS60において、出力解像度に合わせたイメージデータが描画されるライン毎の位置情報をバンド単位に中間コード画像データを生成する。上述のように、中間コード画像データはバンド毎に一定サイズの中間コード画像データ保持ブロックに保持されるので、イメージ以外の描画オブジェクトの場合と同様に中間コード画像データを作成する前に格納領域のチェックを行う。バンドで最初の中間コード画像データの場合や現在使用中の中間コード画像データ保持ブロックの未使用格納領域が中間コード画像データの管理情報サイズ以下の場合には新たにブロックの獲得を行い、格納領域の確保が保証された後に中間コード画像データの管理情報の生成および初期化を行う。そして、例えば図3に示したように、出力解像度に合わせたイメージデータが描画されるライン毎の位置情報をエッジリストに変換し、図2に示した中間コード画像データのエッジ情報として中間コード保持ブロックに順次格納する。なお、イメージが描画される形状として任意図形を想定しており、中間コード画像データの総エッジ情報のサイズは事前にはわからないので、エッジリストを生成する毎に格納領域のチェックを行い、格納できない場合には新たに中間コード画像データを生成し、残りのラインに対してエッジリストの作成を行う。これにより一つのイメージデータに対して、同一バンド内において複数のイメージの中間コード画像データが生成されることになる。さらに、このような複数のイメージの中間コード画像データをイメージデータ管理部18が容易に管理できるように、図7に示したような中間コード画像データ管理リストを生成し、イメージデータ管理部18に登録を行う。さらに、イメージデータ管理部18が管理する管理情報中の位置情報(オフセットX、オフセットY、高さ、幅)などについての更新も行う。また、予測データ採取部13による予測データの採取も行う。
【0059】
このようにして1つの描画オブジェクトについての処理を終えたら、S61において、入力画像情報が終了したか否かを判定し、まだ入力画像情報が存在する場合にはS51へ戻って処理を繰り返す。1ページ分の入力画像情報について、中間コード画像データへの変換処理が終了したら、以降の予測及びレンダリング処理を行う。
【0060】
S62では、レンダリング処理の前に、予測処理部16において各バンドのレンダリング処理速度がバンド当たりの記録速度に間に合うか否かの判定を行う。ここで、レンダリング処理速度が記録速度に間に合わないバンドが存在し、そのバンドのバンド管理情報中の重なり情報フィールドの値が重なりがある状態(0)の場合には、予測処理部16は重畳図形処理部20を起動して当該バンドに対して重畳図形処理を行う。そして重畳図形処理終了後、再度、記録速度との比較を行う。また重なりがない状態(1)の場合には、重畳図形処理を行っても意味がないので、例外処理として事前に別の領域に確保したバンドバッファ領域に展開し、圧縮処理部21による圧縮処理や間引き処理部22による間引き処理などを施してイメージデータとしてイメージデータ/圧縮コード保持部19に保持させる。このようにして、必ず記録速度に間に合うようにしておく。
【0061】
このような予測処理を行った後、レンダリング処理部18によるレンダリング処理を行う。ここではS63において印刷モードを判定し、白黒モードである場合にはS64〜S66の処理を、カラーモードである場合にはS67〜S71の処理を行う。白黒モードでは、S64及びS66によって、S65におけるバンド毎のKについてのレンダリング処理を繰り返して行う。また、カラーモードの場合には、S69における当該バンドの当該色のレンダリング処理を、各バンドについてS68ないしS70によって繰り返し実行する。また、S67ないしS71によってK、Y、M、Cの各色ごとのレンダリング処理を行う。
【0062】
レンダリング処理部23は、バンドバッファ24あるいはバンドバッファ25を指定された色でクリアした後に、対応するバンドのバンド管理情報から先頭の中間コード画像データ保持ブロックのアドレスを得て、中間コード画像データ保持ブロックを順に読み込み、その中に保持されている中間コード画像データの解釈を始める。中間コード画像データがイメージ関連の場合には、図3に示したように中間コード画像データの管理情報のIDにイメージデータの状態が記録されている。このIDからイメージデータの状態を判別して、それぞれの状態に応じた処理を行う。例えばID=0の場合には、イメージデータの解像度は出力解像度と等しく拡大の必要がないので、イメージデータ/圧縮コード領域からイメージデータを読み出し、中間コード画像データのエッジ情報でクリップを行った結果をバンドバッファ24に書き込めばよい。またID=1の場合には、イメージデータを出力解像度に拡大する必要があるので、レンダリング処理部23の拡大機能によりイメージデータの拡大処理を行った後、中間コード画像データのエッジ情報でクリップを行った結果をバンドバッファ24に書き込めばよい。さらにID=2の場合には、イメージデータは圧縮されているので、レンダリング処理部23の伸長機能によりイメージデータの伸長処理を行った後に、中間コード画像データのエッジ情報でクリップを行い、その結果をバンドバッファ24に書き込めばよい。
【0063】
そして、対象とするバンドの中間コード画像データ保持ブロックの読み込み、および中間コード画像データの解釈、およびバンドバッファ24またはバンドバッファ25への書込み処理が完了すると、バンドバッファの内容を出力装置へ転送する。このような処理をそれぞれのバンド毎に書き込むバンドバッファを切り替えながら行ってゆく。白黒モードであればKについてのすべてのバンドについて繰り返し、レンダリング処理を終える。また、カラーモードであれば、各色ごとに、すべてのバンドについてのレンダリング処理を繰り返し、4色について繰り返したらすべてのレンダリング処理を終える。
【0064】
なお、図10ではカラーモードのレンダリング時に1色ずつすべてのバンドについてのレンダリング処理を行っているが、出力装置の構成によっては、1つのバンドについてそれぞれの色のビットマップデータが必要な場合もある。このような場合には、S67,S71のループを削除し、S69のレンダリング処理において各色のビットマップデータに展開及び書込みを行えばよい。
【0065】
次に、図10に示した動作概要について、いくつかの処理を詳細に説明してゆく。図11は、イメージデータ管理部の管理情報生成処理の一例を示すフローチャートである。この処理は、図10のS59で行われる処理である。イメージコマンドが上位処理部12で解釈され、イメージコマンド中のイメージデータ部分が総イメージデータ管理部15に送られてくる。総イメージデータ管理部15は、受け取ったイメージデータ部分を入力解像度で一括管理するため、S81において、イメージデータ管理部18に当該イメージデータ部分に対応する管理情報を生成させる。生成する管理情報は、例えば図6(A)に示すようなものである。生成された管理情報は、初期化される。
【0066】
また、イメージデータ毎に生成される複数のイメージデータ管理部18の管理情報を総イメージデータ管理部15が容易に管理できるようにするため、S82において、例えば図5に示すようなイメージデータ管理部管理リストを生成し、初期化を行う。
【0067】
そしてS83において、総イメージデータ管理部15はイメージデータ/圧縮コード保持部19の未使用領域のチェックを行う。未使用領域が少なく、イメージデータを格納することができない場合には、S84において、後述する領域獲得処理を行ってイメージデータ/圧縮コード保持部19の未使用領域を増加させる。
【0068】
イメージデータ/圧縮コード保持部19における領域の確保が保証された後、レンダリング処理部23の処理の軽減を図るため、色空間変換/色補正処理、および回転がある場合の回転処理を入力解像度の状態で先に実行する。これらの処理は使用可能なメモリ量を考慮してライン単位で行い、順次、結果をイメージデータ/圧縮コード領域にストアする。すなわち、S85及びS90によりラインを順次選択し、選択されているラインについて、S86で色空間変換処理や色補正処理を行い、S87で回転の必要があると判断される場合にはS88において回転処理を行う。そして、色空間変換処理や色補正処理及び必要に応じて回転処理を施したラインイメージを、S89においてイメージデータ/圧縮コード保持部19に格納する。なお、レンダリング処理部23において、色空間変換/色補正処理あるいは回転処理を行う場合には、S86〜S88の処理を省略して、イメージデータ/圧縮コード保持部19への格納だけを行えばよい。
【0069】
全てのイメージデータの格納が完了した後、S91において、イメージデータ管理部18の管理情報に確定値を設定する。さらにS92において、総イメージデータ管理部15がイメージデータ管理部18の管理情報にアクセスできるように、イメージデータ管理部18の管理リストにイメージデータ管理部18の管理情報等の確定値を設定する。ここで、S93において1個目のイメージデータの格納であるか否かを判定し、1個目であれば、S94において、新たに生成されたイメージデータ管理部18の管理リストのアドレスを総イメージデータ管理部15の管理情報に登録する。また2個目以降の場合には、S95において、新たに生成されたイメージデータ管理部18の管理リストのアドレスを、最後尾のイメージデータ管理部18の管理リストに登録して、管理リストの連結を図る。
【0070】
また、総イメージデータ管理部15は、新たにイメージデータがイメージデータ/圧縮コード保持部19へ格納されたことにより、例えば図4に示した総イメージデータ管理部15の管理情報中のイメージデータ/圧縮コード保持部19の管理情報の修正を行う。すなわち、S96において、総イメージデータ管理部15の管理情報の未使用領域の先頭アドレスを更新する。
【0071】
さらに、S97において、出力解像度に合わせたイメージデータが描画される領域に対する中間コード画像データを生成するため、中間コード画像データ保持ブロック管理部14を起動する。このとき、イメージデータ管理部18の管理情報のアドレスを引数として通知する。
【0072】
このようにして、イメージの描画オブジェクトが入力された場合に、イメージデータ部分をイメージデータ/圧縮コード保持部19に格納するとともに、総イメージデータ管理部15の管理情報及びイメージデータ管理部18の管理情報及び管理リストを生成及び設定を行う。
【0073】
図12は、イメージの中間コード画像データ生成処理の一例を示すフローチャートである。この処理は、図10のS60において実行される処理であり、上述のように図11に示したイメージデータ管理部18の管理情報生成処理に続いて行われる処理である。中間コード画像データ保持ブロック管理部14は、出力解像度に合わせたイメージデータが描画されるライン毎の位置情報を、バンド単位に中間コード画像データへの変換を行う。
【0074】
このイメージの中間コード画像データ生成処理は、S101及びS114で挟まれているS102乃至S113の処理を、イメージデータが跨るそれぞれのバンドについて繰り返して実行することによって行われる。中間コード画像データは、バンド毎に一定サイズのブロックに保持されるので、中間コード画像データを作成する前に、S102において中間コード画像データ保持ブロック保持部17における格納領域のチェックを行う。バンドで最初の中間コード画像データの場合や、現在使用中の中間コード画像データ保持ブロックの未使用格納領域が中間コード画像データの管理情報サイズ以下の場合には、新たにブロックの獲得を行う。格納領域の確保が保証された後、S103において中間コード画像データの管理情報の生成および初期化を行う。
【0075】
そして、上述の図3に示したように、出力解像度に合わせたイメージデータが描画されるライン毎の位置情報をエッジリストに変換し、図2に示した中間コード画像データのエッジ情報として中間コード保持ブロックに順次格納する。このような処理を、次のバンドのラインに達するまで繰り返す。次のバンドのラインに達した時点で、新たに中間コード画像データの管理情報の作成および初期化を行い、全てのラインを中間コード画像データに変換するまで処理を繰り返す。
【0076】
ここで、イメージが描画される形状として任意図形を想定しており、中間コード画像データの総エッジ情報のサイズは事前にはわからない。従ってエッジリストを生成する毎に格納領域のチェックを行い、格納できない場合には新たに中間コード画像データを生成し、残りのラインに対してエッジリストの作成を行う。このために図12に示す処理では完了フラグを使用し、ブロックのライン途中で格納領域が不足した場合には、中間コード画像データ保持ブロックの取得と新たな中間コード画像データの管理情報の作成および初期化を行っている。
【0077】
具体的には、S104及びS107によりバンド内の各ラインごとに、S105における格納領域の有無の判定を行い、格納領域が存在すれば106において出力解像度に合わせたイメージデータが描画される当該ラインにおける位置情報をエッジリストとして生成し、中間コード画像データ保持ブロックに保持させる。バンド内の最終ラインまで処理を終えたら、S108において完了フラグをONにする。また、途中のラインで格納領域が不足してしまった場合にはS109で完了フラグをOFFにしておく。このようにして1つの中間コード画像データの処理が終了する。
【0078】
S110において、生成した中間コード画像データに関する各種の管理情報の登録を行うイメージ中間コード画像データ登録処理を行う。図13は、イメージ中間コード画像データ登録処理の一例を示すフローチャートである。S121において、生成した中間コード画像データに対応する中間コード画像データ管理リストを生成及び初期化し、S122において、その中間コード画像データ管理リストに確定値を設定する。このとき、中間コード画像データのアドレスや、当該中間コード画像データにより描画されるイメージデータ中のバンド内の位置を示すY始点やY終点などの情報を設定する。
【0079】
ここで、S123において、生成されたイメージの中間コード画像データが1個目であるか否かを判定し、1個目であれば、S124において、新たに生成された中間コード画像データ管理リストのアドレスをイメージデータ管理部18の管理情報に登録する。また2個目以降の場合には、S125において、新たに生成された中間コード画像データ管理リストのアドレスを、最後尾の中間コード画像データ管理リストに登録して、中間コード画像データ管理リストの連結を図る。
【0080】
図12に戻り、さらにS111において、S103で生成した中間コード画像データの管理情報に確定値を設定する。さらに、生成した中間コード画像データについて、S112において予測データ採取部13は予測処理部16におけるレンダリング処理時間の予測に必要な予測データを採取する。
【0081】
S113において完了フラグを調べ、完了フラグがOFFであれば、S102へ戻って、S102の格納領域検査処理において新たな中間コード画像データ保持ブロックの取得を行い、新たな中間コード画像データを生成することになる。このように、同じバンドにおいても複数の中間コード画像データが生成されることがある。
【0082】
完了フラグがONであれば1つのバンドについての処理を終えているので、S101及びS114により次のバンドの処理に移る。このようにして、各バンド毎に、1乃至複数の中間コード画像データが生成されてゆく。また、1つのイメージデータに対して生成された1ないし複数のイメージの中間コード画像データをイメージデータ管理部18が容易に管理できるように、総イメージデータ管理部15から得たイメージデータ管理部18のアドレスをもとに、生成された中間コード画像データに対応してS110で中間コード画像データ管理リストの生成やイメージデータ管理部18の管理情報の更新などが行われる。
【0083】
このようにして、1つのイメージデータに対して1乃至複数の中間コード画像データが生成され、それに対応して中間コード画像データ管理リストが生成されて、それぞれ、イメージデータ管理部18の管理情報と対応付けられる。これにより、イメージデータ管理部18は、1つのイメージデータがどのように中間コード画像データにより分割管理されているのかを容易に管理することができる。また、以下の2点の効果がある。
【0084】
まず、イメージデータ/圧縮コードのDMA転送量を正確に算出できるという効果がある。レンダリング処理部23をハードウェアで、それ以外の機能をソフトウェアで実現した場合、中間コード画像データ保持ブロックとイメージデータ/圧縮コードをそれぞれの格納領域からDMA等でレンダリング処理部23に転送する必要がある。その場合に、各イメージの中間コード画像データが管理するイメージデータの領域が正確に把握できるので、無駄なイメージデータの転送を防ぐことができ、レンダリング処理の高速化が得られる。
【0085】
また、拡大処理におけるバンド境界の補正値の算出が容易になるという効果がある。イメージデータの解像度が出力解像度に等しくない場合、レンダリング処理部23において拡大処理を行う必要がある。このとき、バンド境界の補正値を正確に算出できるので、バンドの境界での描画のずれを防止し、画質の劣化を防止することができる。
【0086】
次に、一度生成されたイメージの中間コード画像データとすでに格納済みのイメージデータに対して修正が施される場合における説明を行う。まず、一度生成されたイメージの中間コード画像データに対して修正が施される場合として、重畳図形処理及び展開圧縮処理がある。まず、これらの処理を要求する格納領域検査処理について説明し、その後、重畳図形処理及び展開圧縮処理について説明する。
【0087】
図14は、格納領域検査処理の一例を示すフローチャートである。この処理は、図10のS55及び図12のS102で実行される処理である。この格納領域検査処理によって、上位処理部12で生成した中間コード画像データを格納するための領域をチェックする。まずS131において、中間コード画像データを格納するための中間コード画像データ保持ブロックが存在するか否かを判定する。中間コード画像データ保持ブロックが存在すれば、さらにS132において中間コード画像データを格納するだけの空き領域が残っているか否かを判定する。空き領域が残っていれば、その空き領域に中間コード画像データを格納可能であるとする。
【0088】
このとき、新たな中間コード画像データの格納による重なり情報の更新処理も行っておく。すなわち、S133においてバンド管理情報中の重なり情報の値を判定し、重なりがない旨(1)を示している場合には、新たな中間コード画像データの格納によって重なりがない状態を保証できなくなるので、S134で重なり情報を重なりがあることを示す値(0)に更新する。重なり情報が重なりがある旨の値(0)の場合には、そのままでよい。このようにして、中間コード画像データ保持ブロックが存在し、空き領域が存在する場合のチェックを終了する。
【0089】
S131において中間コード画像データ保持ブロックが存在しないと判定された場合や、S132において中間コード画像データ保持ブロックが存在しているものの空き領域が存在しないと判定された場合には、S135において、新たに中間コード画像データ保持ブロックの確保を試みる。このとき、S136において中間コード画像データ保持ブロックを確保できたか否かを判定する。中間コード画像データ保持ブロックを確保できた場合には、S142以降のポインタの登録処理に移る。
【0090】
中間コード画像データ保持ブロックを確保できない場合には、S137において重畳図形処理部20による重畳図形処理を行って重なりを排除し、中間コード画像データを削減して、不要となった中間コード画像データ保持ブロックを解放する。重畳図形処理については後述する。そしてS138において、再度、中間コード画像データ保持ブロックの確保を試みる。これによって中間コード画像データ保持ブロックを確保できたか否かをS139で判定し、確保できればS142に進む。これでも中間コード画像データ保持ブロックが確保できない場合には、S140においてすべてのバンドについて重畳図形処理を行ったか否かを判断し、例えばバンド管理情報の重なり情報が重なりあり(0)を示しているバンドが存在する場合には、S137へ戻って、そのバンドについて重畳図形処理を行う。これによって中間コード画像データ保持ブロックが確保できれば、S141に進む。
【0091】
また、例えばすべてのバンドのバンド管理情報中の重なり情報が1となり、すべてのバンドについて重畳図形処理を行っている場合には、S141において、レンダリング処理部23及び圧縮処理部21による展開圧縮処理を行う。この処理は、後述するように中間コード画像データをビットマップイメージに展開してバンド単位のイメージデータを作成する。これによって多くの中間コード画像データの格納されていた領域を解放することができる。そのままではデータ量が多いので、圧縮処理部21により圧縮し、圧縮コードとしてイメージデータ/圧縮コード保持部19に格納する。このようにして展開圧縮処理を行うことにより中間コード画像データの多くを削除することができるので、S138へ戻って中間コード画像データ保持ブロックの確保を行えばよい。
【0092】
このようにして中間コード画像データ保持ブロックが確保できたら、S142において、確保した中間コード画像データ保持ブロックが当該バンドで最初の中間コード画像データ保持ブロックであるか否かを判定する。最初の中間コード画像データ保持ブロックである場合には、S143において、確保した中間コード画像データ保持ブロックへのポインタをバンド管理情報に登録するとともに、確保した中間コード画像データ保持ブロックにバンド管理情報へのポインタを登録する。また、当該バンドにおいて最初の中間コード画像データ保持ブロックではない場合には、S144において、当該バンドにおける最後尾の中間コード画像データ保持ブロックに確保した中間コード画像データ保持ブロックへのポインタを登録するとともに、その中間コード画像データ保持ブロックへのポインタを確保した中間コード画像データ保持ブロックに登録する。このようにしてバンド管理情報と中間コード画像データ保持ブロック間あるいは中間コード画像データ保持ブロック同士の間で相互参照ポインタを設定し、格納領域検査処理を終える。
【0093】
図15は、重畳図形処理の一例を示すフローチャートである。この重畳図形処理は、図14に示した格納領域検査処理のS137等において中間コード画像データ保持ブロックが不足している場合や、予測処理においてレンダリング処理時間が記録時間よりも長い場合などにおいて実行される。この重畳図形処理はバンド単位で処理を行い、重畳図形処理を行っておらず、かつ中間コード画像データ保持ブロックが多いバンド、あるいはメモリ書込み量の多いバンドが処理対象となる。
【0094】
S151において、この重畳図形処理によって中間コード画像データは重なりがなくなることから、当該バンドのバンド管理情報中の重なり情報に‘1’を設定して、重なりがないことを示しておく。そして、S152及びS164において、当該バンドの中間コード画像データ保持ブロックについて、最後尾から先頭への順で、各中間コード画像データ保持ブロックについてS153〜S163の処理を繰り返して実行する。さらに、S152で選択された中間コード画像データ保持ブロックについて、S153及びS162において中間コード画像データ保持ブロック中の各中間コード画像データを、最後尾から先頭への順で1つずつ選択して、S154〜S161における処理を繰り返して実行する。
【0095】
S154では、選択された中間コード画像データについて重なり除去処理を行う。このとき、上述のようにS152及びS153において最後尾から先頭へという選択順序によって、当該バンドで生成された全ての中間コード画像データについて、生成順とは逆に一つ一つ重なり具合を調べてゆくことができる。そして、重ならない部分が残る場合には、中間コード画像データを再生成する。この重なり除去処理については、従来より用いられている方法を適用すればよい。ここで、S155において、重なり除去処理により生成された中間コード画像データを中間コード画像データ保持ブロックに格納できるか否かを、上述の図14に示した格納領域検査処理によりチェックし、中間コード画像データを格納できる領域を確保する。そしてS156において、重なりをなくした中間コード画像データを中間コード画像データ保持ブロックに格納する。
【0096】
ここで、重なりを除去した後の中間コード画像データの再生成によって、中間コード画像データの先頭アドレスの値は変わる。そのため、描画オブジェクトの種類がイメージの場合には、イメージの中間コード画像データのアドレスを保持する中間コード画像データ管理リストのアドレス値の更新を行う必要がある。そのため、S157において描画オブジェクトがイメージか否かを判定し、描画オブジェクトがイメージである場合には、S158においてイメージデータ管理部18の管理リスト中の中間コード画像データのアドレスを更新する。
【0097】
さらに、描画オブジェクトがイメージの場合には、S154の重なり除去処理によってイメージデータの描画領域が削減されたか否かをS159で判定する。例えばイメージ上に別のイメージやグラフィックなどが描画されている場合、この重なり除去処理によってイメージの一部は描画しなくてよくなる。そのため、描画領域は削減される。このような場合には、S160において、イメージデータ管理部18の中間コード画像データ管理リスト中のY始点及びY終点の情報を更新する。描画領域が削減されない場合には、S160の処理は不要である。なお、描画オブジェクトがイメージでない場合には、S158〜S160の処理を行わなくてよい。
【0098】
再生成した中間コード画像データを中間コード画像データ保持ブロックに格納し、またイメージの描画オブジェクトについては中間コード画像データ管理リストの更新を行ったら、S161において、予測データ採取部13による予測データの採取処理を行う。これは、重畳図形処理によって予測時間が変化するために、処理後の予測データを採取しておくものである。
【0099】
このようなS153〜S162間の処理を、中間コード画像データ保持ブロック内のそれぞれの中間コード画像データについて行う。中間コード画像データ保持ブロック内のすべての中間コード画像データについて処理を行ったら、S163において、処理済みの中間コード画像データ保持ブロック(すなわち、重畳図形処理を行う前の中間コード画像データが格納されていた中間コード画像データ保持ブロック)を解放する。以上のようなS152〜S164間の処理を、重畳図形処理を行う前の中間コード画像データが格納されていたそれぞれの中間コード画像データ保持ブロックについて行い、重畳図形処理を終了する。
【0100】
このような重畳図形処理によって描画オブジェクトの重なりを無くすことができ、通常、重畳図形処理後においては中間コード画像データが減少するため、中間コード画像データ保持ブロックの数も減少することが期待できる。そのため、未使用の中間コード画像データ保持ブロックを増加させることができる。また、描画オブジェクトの重なりがなくなることにより、レンダリング処理時間を削減することができる。
【0101】
また、このような重畳処理によって中間コード画像データ保持ブロック内の中間コード画像データが変化しても、それに対応してイメージデータ管理部18の中間コード画像データ管理リストを更新することができる。
【0102】
図16は、展開圧縮処理の一例を示すフローチャートである。この展開圧縮処理は、図14のS141において実行され、中間コード画像データを保持する中間コード画像データ保持ブロックが枯渇したことによりブロックの回収を目的として重畳図形処理を起動したが、それでもブロックが回収できない場合に起動される処理である。この展開圧縮処理は、すでに生成されているあるバンドの中間コード画像データを全てバンドバッファに展開した後にバンドバッファの内容に対して圧縮を行う処理であり、バンドを単位として行われる。特に、中間コード画像データ保持ブロックが多いバンドを処理対象とすると効率がよい。
【0103】
S171及びS181で挟まれるS172〜S180の処理を、各色(K、Y、M、C)毎に繰り返して実行する。またS171で選択した色について、S173で当該バンドの各中間コード画像データ保持ブロックを先頭から最後尾への順で選択し、選択した中間コード画像データ保持ブロックについて、S172及びS179で挟まれるS173〜S177の処理を行う。さらに、S172で選択した中間コード画像データ保持ブロックについて、S173で当該中間コード画像データ保持ブロック中の各中間コード画像データを先頭から順に選択し、S173及びS178で挟まれるS174〜S177の処理を行う。
【0104】
S174において、S171で選択された色について、S172で選択された中間コード画像データ保持ブロック中のS173で選択された中間コード画像データの解釈及びバンドバッファ24または25への書込みをレンダリング処理部23で行う。ここで、描画オブジェクトがイメージか否かをS175で判断し、描画オブジェクトがイメージである場合には、さらにS176で最後の色(例えばC色)までレンダリング処理を行ったか否かを判断し、最後の色まで処理を行っていれば、S177において、後述する当該イメージの中間コード画像データの抹消処理を行う。これは、レンダリング処理によって中間コード画像データが不要となり、それに伴ってイメージデータ管理部15の中間コード画像データ管理リストの修正などが必要となるために行われる。また、バンド内に収まっているイメージデータについては、そのイメージデータ自体もイメージデータ/圧縮コード保持部19から削除することが可能である。なお、イメージの描画オブジェクトでない場合及び最後の色でない場合にはS177を行わない。
【0105】
このようなS174〜S177の処理を、中間コード画像データ保持ブロック内の各中間コード画像データについて行い、さらに各中間コード画像データ保持ブロックについて繰り返して実行する。
【0106】
1バンド分のすべての中間コード画像データ保持ブロックについて、すべての中間コード画像データに対するレンダリング処理を行ったら、S180において、圧縮処理部21によってバンドバッファ内のイメージデータを圧縮し、圧縮コードをイメージデータ/圧縮コード保持部19に格納する圧縮コード登録処理を行う。
【0107】
このような処理を、S171〜S181により各色ごとに繰り返して行う。これによって、各色ごとにレンダリング処理したイメージデータの圧縮コードがイメージデータ/圧縮コード保持部19に登録される。
【0108】
このようにして1バンド分の中間コード画像データについてレンダリング処理を行ってイメージデータを生成し、圧縮して圧縮コードをイメージデータ/圧縮コード保持部19に登録したら、S182において、そのとき処理したバンドのすべての中間コード画像データ保持ブロックは不要となるので解放する。これによって、中間コード画像データ保持ブロックの回収が可能になる。
【0109】
そして、S183において図14に示した格納領域検査処理を行って、この場合には実質的に新たに中間コード画像データ保持ブロックを取得する。さらにS184で登録すべき中間コード画像データの管理情報の生成及び初期化を行い、S185において中間コード画像データを生成する。このとき生成する中間コード画像データの管理情報中の描画オブジェクトIDには、圧縮コードである旨を示す値を設定しておく。
【0110】
上述のように、レンダリング処理を行ったことによってイメージデータが作成されているので、S186において、図13に示したイメージの中間コード画像データを登録する処理を行う。このとき、イメージデータ管理部18の管理リスト、管理情報、中間コード画像データ管理リストなどの生成および設定や、圧縮コードをイメージデータ/圧縮コード保持部19に登録することによる総イメージデータ管理部15の管理情報の更新などを行う。そして、イメージデータ管理部15の管理情報の生成等を受け、S187において中間コード画像データの管理情報に確定値を設定する。最後にS188において、新たに生成された中間コード画像データに対する予測データの採取を予測データ採取部13で行って、展開圧縮処理を終える。
【0111】
このように、展開圧縮処理においては、中間コード画像データ保持ブロックの獲得を目的として行われるが、新たにイメージデータを生成して圧縮し、圧縮コードをイメージデータ/圧縮コード保持部19に登録する。従って、新たなイメージデータの圧縮コードについて、総イメージデータ管理部15、イメージデータ管理部18における各種情報の生成及び更新を行って、圧縮コードの管理を行っている。
【0112】
上述の展開圧縮処理において実行するイメージデータの中間コード画像データ抹消処理及び圧縮コード登録処理について、その詳細を以下に説明する。図17は、イメージデータの中間コード画像データの抹消処理の一例を示すフローチャートである。この処理は、図16に示した展開圧縮処理中のS177において実行される処理である。この処理では、当該イメージの描画オブジェクトに対応する中間コード画像データからイメージデータ管理部18の管理情報が分かるので、その管理情報で指し示される中間コード画像データ管理リストについて、S191及びS201により、先頭から1つずつ中間コード画像データ管理リストを選択してS192〜S200の処理を行う。
【0113】
S191で選択された中間コード画像データ管理リストについて、S192で当該中間コード画像データに対応するものか否かを判定し、異なる場合にはなにもしない。選択された中間コード画像データ管理リストが当該中間コード画像データに対応するものである場合には、その中間コード画像データ管理リストも抹消の対象である。S193において後続の中間コード画像データ管理リストが存在するか否かを判定し、後続の中間コード画像データ管理リストがなければ最後尾の中間コード画像データ管理リストである。その場合には、S194において直前に中間コード画像データ管理リストが存在するか否かを判定する。直前の中間コード画像データ管理リストが存在しなければ、当該中間コード画像データ管理リストは唯一の中間コード画像データ管理リストである。また、この場合には中間コード画像データの削除によって対応するイメージデータも必要なくなる場合でもある。従ってS195において、後述するイメージデータ管理部管理情報抹消処理を行って、当該イメージデータの削除とともに、関連するすべての管理のための情報を削除する。
【0114】
S194で直前に中間コード画像データ管理リストが存在する場合には、S196において、直前の中間コード画像データ管理リストに後続の中間コード画像データ管理リストが存在しないことを登録し、S200において、最後尾の当該中間コード画像データ管理リストの消去を行う。
【0115】
S193で後続の中間コード画像データ管理リストが存在すると判定された場合には、さらにS197において、直前に中間コード画像データ管理リストが存在するか否かを判定する。直前に中間コード画像データ管理リストが存在しない場合には当該中間コード画像データ管理リストが先頭である。この場合には、S198においてイメージデータ管理部18の管理情報に後続の中間コード画像データ管理リストのアドレスを登録し、S200において、先頭であった当該中間コード画像データ管理リストを消去する。
【0116】
S197で直前にも中間コード画像データ管理リストが存在する場合には、当該中間コード画像データ管理リストは中間に存在している。この場合には、S199において、直前の中間コード画像データ管理リストに後続の中間コード画像データ管理リストを登録し、S200において、当該中間コード画像データ管理リストを消去する。
【0117】
このように、このイメージの中間コード画像データの抹消処理では、1つのイメージデータについて複数の中間コード画像データが生成されている場合には、削除の対象となっている中間コード画像データに対応する中間コード画像データ管理リストのみを削除する。また、唯一の中間コード画像データが生成されている場合には、その中間コード画像データの削除時に、次に説明するイメージデータ管理部管理情報抹消処理でイメージデータごと削除する処理を行う。
【0118】
図18は、イメージデータ管理部管理情報抹消処理の一例を示すフローチャートである。この処理は、図17に示したイメージの中間コード画像データの抹消処理におけるS195において実行される処理であり、中間コード画像データ及び中間コード画像データ管理リストの消去とともにイメージデータも消去する場合の処理である。
【0119】
この処理では、当該イメージの描画オブジェクトに対応する中間コード画像データからイメージデータ管理部18の管理情報が分かり、その管理情報で指し示される総イメージデータ管理部15の管理情報からイメージデータ管理部18の先頭の管理リストがわかる。このイメージデータ管理部18の管理リストについて、S211及びS221により、先頭から1つずつイメージデータ管理部18の管理リストを選択してS212〜S220の処理を行う。
【0120】
S211で選択されたイメージデータ管理部18の管理リストについて、S212で抹消の対象となっている中間コード画像データに対応したイメージデータ管理部18の管理情報に対するものか否かを判定し、異なる場合にはなにもしない。選択された中間コード画像データ管理リストがイメージデータ管理部18の当該管理情報に対するものである場合には、その管理リストも抹消の対象である。S213において後続の管理リストが存在するか否かを判定し、後続の管理リストがなければ最後尾の管理リストである。その場合には、S215において直前に管理リストが存在するか否かを判定する。直前の管理リストが存在しなければ、当該管理リストは唯一の管理リストである。この場合には、S216において、総イメージデータ管理部15の管理情報にイメージデータ管理部18の管理リストが存在しないことを登録し、S220においてイメージデータ管理部18の当該管理リストを消去する。
【0121】
S214で直前に管理リストが存在する場合には、S216において、直前の管理リストに後続の管理リストが存在しないことを登録し、S220において、最後尾の当該管理リストの消去を行う。
【0122】
S213で後続の管理リストが存在すると判定された場合には、さらにS217において、直前に管理リストが存在するか否かを判定する。直前に管理リストが存在しない場合には当該管理リストが先頭である。この場合には、S218において総イメージデータ管理部15の管理情報にイメージデータ管理部18の後続の管理リストのアドレスを登録し、S220において、先頭であった当該管理リストを消去する。
【0123】
S217で直前にも管理リストが存在する場合には、当該管理リストは中間に存在している。この場合には、S219において、直前の管理リストに後続の管理リストを登録し、S220において、当該管理リストを消去する。
【0124】
このようにしてイメージデータ管理部18の管理リストの抹消処理を行った後、S222において、対応するイメージデータ管理部18の管理情報が最後尾であるか否かを判定する。抹消したイメージデータ管理部18の管理リストが最後尾であった場合、すなわちS213で後続の管理リストがないと判断された場合、イメージデータ管理部18の管理情報は最後尾である。イメージデータ管理部18の管理情報が最後尾の場合には、イメージデータ/圧縮コード保持部19内の対応するイメージデータも最後尾に存在するので、そのまま削除が可能である。しかし、イメージデータ管理部18の管理情報が最後尾以外の場合には、イメージデータ/圧縮コード保持部19に保持されている対応するイメージデータが領域の途中に存在するため、S223において、他のイメージデータや圧縮コードを詰めて移動させ、移動させたイメージデータや圧縮コードに対応する中間コード画像データやイメージデータ管理部18の管理情報などの更新を行う。この処理は、イメージデータ/圧縮コード領域更新処理として後述する。
【0125】
そしてS224において、抹消したイメージデータ管理部18の管理リストに対応するイメージデータ管理部18の管理情報を消去し、S225において、総イメージデータ管理部15の管理情報の管理情報中の未使用領域の先頭アドレスを更新し、イメージデータ管理部管理情報抹消処理を終える。
【0126】
図19は、圧縮コード登録処理の一例を示すフローチャートである。この処理は図16に示した展開圧縮処理において、レンダリング処理によってバンドバッファに展開された1バンド分のイメージデータを圧縮処理部21で圧縮して、圧縮コードをイメージデータ/圧縮コード保持部19に格納する処理である。
【0127】
まずS231において、最初の色のイメージデータを展開したのか否かを判定する。図16に示す例では最初にK(黒)色のイメージ展開を行っているので、ここではK色か否かを判定する。最初の色のイメージ展開である場合には、S232においてイメージデータ管理部18の管理情報の生成及び初期化を行い、S233において対応するイメージデータ管理部18の管理リストの生成及び初期化を行う。なお、2番目以降の色のイメージ展開の際には、既にイメージデータ管理部18の管理情報及び管理リストが生成されているので、S232及びS233の処理をスキップする。
【0128】
S234において、イメージデータ/圧縮コード保持部19内に空き領域があるか否かを判定し、空き領域がなければS235において後述する領域獲得処理を行って、イメージデータ/圧縮コード保持部19に空き領域を確保する。空き領域があれば、S235の処理を行わずにS236に進む。
【0129】
S236において、展開されているバンドバッファの内容を圧縮処理部21によりすべて圧縮する。そしてS237において、圧縮コードをイメージデータ/圧縮コード保持部19に格納する。圧縮コードを格納した先頭アドレスなどの確定値をS238においてイメージデータ管理部18の管理情報に設定するとともに、S239においてイメージデータ管理部18の管理リストに確定値を設定する。
【0130】
さらに、S240においてイメージデータ管理部18の管理情報が1個目であるか否かを判定し、1個目である場合には、S241においてイメージデータ管理部18の管理リストを総イメージデータ管理部15の管理情報に登録する。2個目以降である場合には、S242においてイメージデータ管理部18の管理リストを最後尾の管理リストに登録する。
【0131】
このようにしてイメージデータ管理部18の管理情報及び管理リストの設定を行った後、S243において総イメージデータ管理部15の管理情報中の未使用領域の先頭アドレスを更新する。さらに、S244において最初の色の圧縮コード登録処理であると判定されたときのみ、S245において、中間コード画像データ管理部14に対してイメージデータ管理部18の管理情報のアドレスを通知し、圧縮コード登録処理を終える。
【0132】
最後に、既にイメージデータ/圧縮コード保持部19に格納されているイメージデータに対して修正を施す場合における説明を行う。まず、既にイメージデータ/圧縮コード保持部19に格納されているイメージデータに対して修正を施す場合として間引き処理及び圧縮処理が挙げられる。まず、これらの処理を要求する領域獲得処理について説明し、その後、間引き処理及び圧縮処理について説明する。
【0133】
図20は、領域獲得処理の一例を示すフローチャートである。この処理は、図19に示した圧縮コード登録処理のS235において、圧縮コードを格納する領域がイメージデータ/圧縮コード保持部19に空いていない場合に実行される。まずS251及びS258によってイメージデータ管理部18の各管理リストについて順に選択し、選択された管理リストについてS252〜S257の処理を行う。
【0134】
イメージデータ管理部18の管理情報中のイメージデータ状態IDをS252においてチェックし、S253で間引き処理を行えるか否か、及びS255で圧縮処理を行えるか否かを判定する。間引き処理が可能であれば、S254において後述する間引き処理を行い、圧縮処理が可能であればS256において後述する圧縮処理を行う。S254の間引き処理あるいはS256の圧縮処理によってイメージデータ/圧縮コード保持部19に空き領域ができたか否かをS257で判定し、空き領域ができれば領域獲得処理を終了して戻る。まだ十分な空き領域ができていない場合にはS258に進み、S251及びS258のループにより次のイメージデータ管理部18の管理リストについて同様の処理を繰り返す。
【0135】
このようにしてイメージデータ管理部18の管理リストを順次選択し、間引き処理あるいは圧縮処理を行って十分な空き領域を確保できるまで繰り返す。すべての管理リストについて処理を行った後、S259でイメージデータ/圧縮コード保持部19に十分な空き領域が得られたか否かを判定し、十分な空き領域が得られていれば領域獲得処理を終了する。十分な空き領域が得られていない場合には、S260においてエラー処理を行う。
【0136】
図21は、間引き処理の一例を示すフローチャートである。この処理は、図20に示した領域獲得処理により、イメージデータ/圧縮コード保持部19の空き領域が枯渇したことによる領域の回収を目的として起動される。そして、すでにイメージデータ/圧縮コード保持部19に格納されているイメージデータ(拡大必要なし/あり)に対して間引き処理(解像度変換)を行う。
【0137】
S271及びS278に挟まれるS272〜S277の処理について、各色についてそれぞれ実行する。S272において、間引き処理の対象となっているイメージデータに対応するイメージデータ管理部18の管理情報から、イメージデータのアドレス、総データサイズ、ソースイメージの幅及び高さを獲得する。そしてS273及びS276でイメージデータのスキャンラインを1ラインずつ選択してゆき、選択されたラインが間引かれるラインか否かをS274で調べる。間引かれるラインについてはそのままなにもせず、間引かれずに残るラインについては、S275において、間引かれずに残った1つ前のラインの次の領域に移動する。このようにして、間引かれるラインが抜けて間引かれないラインが詰められる。この処理をS273及びS276のループで繰り返すことによって、イメージデータの間引きを行うことができる。
【0138】
イメージデータの間引きを行ったら、S277において、間引き後のイメージデータの情報によりイメージデータ管理部18の管理情報中のイメージデータのアドレス、総データサイズ、ソースイメージの幅及び高さを更新する。
【0139】
このような処理を、各色ごとに繰り返して行った後、S279において、イメージの中間コード画像データの更新処理を行って、変更されたイメージデータのアドレス等を中間コード画像データに設定する。
【0140】
S280において、処理対象のイメージデータがイメージデータ/圧縮コード保持部19内の最後尾であるか否かを判定する。処理対象のイメージデータが最後尾であった場合、空いた領域はそのまま空き領域として確保できる。しかし、イメージデータがイメージデータ/圧縮コード保持部19の最後尾ではない場合には、イメージデータ/圧縮コード保持部19に保持されているイメージデータあるいは圧縮コードの途中に空き領域ができてしまう。そのため、S281において、他のイメージデータや圧縮コードを詰めて移動させ、移動させたイメージデータや圧縮コードに対応する中間コード画像データやイメージデータ管理部18の管理情報などの更新を行う。この処理は、イメージデータ/圧縮コード領域更新処理として後述する。
【0141】
そしてS282において、間引き処理によってできた空き領域にもとづいて、総イメージデータ管理部15の管理情報の管理情報中の未使用領域の先頭アドレスを更新し、間引き処理を終える。このようにして、イメージデータに対する間引き処理部22による間引き処理によって、イメージデータ/圧縮コード保持部19内に空き領域を生成することができる。
【0142】
図22は、圧縮処理の一例を示すフローチャートである。この処理は、図20に示した領域獲得処理により、イメージデータ/圧縮コード保持部19が枯渇したことによる領域の回収を目的として起動される。そして、すでにイメージデータ/圧縮コード保持部19に格納されているイメージデータ(拡大必要なし/あり)に対して圧縮処理を行う。
【0143】
S291及びS301に挟まれるS292〜S300の処理について、各色についてそれぞれ実行する。S292において、圧縮処理の対象となっているイメージデータに対応するイメージデータ管理部18の管理情報から、イメージデータのアドレス、総データサイズ、ソースイメージの幅及び高さを獲得する。そしてS293及びS299で圧縮処理の対象となっているイメージデータに対応する1ないし複数の中間コード画像データのそれぞれについて、S294〜S298の処理を行う。
【0144】
S294において、イメージデータの解像度が出力解像度であるか否かを判定する。この判定は、S293で選択されている中間コード画像データの描画オブジェクトIDが拡大の必要がない旨を示していれば、イメージデータの解像度は出力解像度である。この場合にはそのままS296へ進む。しかし、中間コード画像データの描画オブジェクトIDか拡大の必要がある旨を示している場合には、イメージデータの解像度は出力解像度ではない。その場合には、S295において、イメージデータが出力解像度となるように拡大処理してバンドバッファに展開する。この処理はレンダリング処理部23の拡大機能を利用することが可能である。
【0145】
S296において、圧縮処理部21によりイメージデータを圧縮し、S297において、1つ前の圧縮コードの次のメモリ領域に移動する。これによってイメージデータ/圧縮コード保持部19内に空き領域を生成する。そしてS298において、イメージの中間コード画像データの更新処理を行って、変更された圧縮コードのアドレス等を中間コード画像データに設定する。
【0146】
このような処理を、1つのイメージデータに対応する1ないし複数の中間コード画像データのそれぞれについて行う。その後、S300において、圧縮処理後の圧縮コードの情報によりイメージデータ管理部18の管理情報中の圧縮コードのアドレス、総データサイズ等を更新する。
【0147】
このような処理を、各色ごとに繰り返して行った後、S302において、処理対象のイメージデータがイメージデータ/圧縮コード保持部19内の最後尾であるか否かを判定する。処理対象のイメージデータが最後尾であった場合、空いた領域はそのまま空き領域として確保できる。しかし、イメージデータがイメージデータ/圧縮コード保持部19の最後尾ではない場合には、イメージデータ/圧縮コード保持部19に保持されているイメージデータあるいは圧縮コードの途中に空き領域ができてしまう。そのため、S303において、他のイメージデータや圧縮コードを詰めて移動させ、移動させたイメージデータや圧縮コードに対応する中間コード画像データやイメージデータ管理部18の管理情報などの更新を行う。この処理は、イメージデータ/圧縮コード領域更新処理として後述する。
【0148】
そしてS304において、圧縮処理によってできた空き領域にもとづいて、総イメージデータ管理部15の管理情報の管理情報中の未使用領域の先頭アドレスを更新し、圧縮処理を終える。このようにして、イメージデータに対する圧縮処理部21による圧縮処理によって、イメージデータ/圧縮コード保持部19内に空き領域を生成することができる。
【0149】
図23は、イメージデータ/圧縮コード領域更新処理の一例を示すフローチャートである。この処理は、図21に示した間引き処理のS281及び図22に示した圧縮処理のS303において、イメージデータ/圧縮コード保持部19の領域の途中に生成された空き領域を詰める処理を行う。
【0150】
S311及びS319において、イメージデータ管理部18の管理リストのうち、空き領域が生成されたイメージデータの次のイメージデータに対応する管理リストから以降の管理リストについて、管理リスト(及び対応するイメージデータ)を順に選択して、S312〜S319の処理を行う。さらに、S312及びS318において、各色ごとにS313〜S317の処理を繰り返す。
【0151】
S313において、選択されている管理リスト及び色に対応するイメージデータ/圧縮コード保持部19内のイメージデータを移動して空き領域を詰め、S314において、移動後の状態においてイメージデータ管理部18の管理情報中のイメージデータあるいは圧縮コードのアドレスを更新する。また、当該イメージデータに対応する1乃至複数の中間コード画像データをS315及びS317により順次選択し、それぞれの中間コード画像データについて、S316において中間コード画像データのイメージデータあるいは圧縮コードのアドレスを更新する。
【0152】
このような処理を1つのイメージデータあるいは圧縮コードにおける各色について行い、さらに、移動させる各イメージデータあるいは圧縮コードについて繰り返す。そして、最後尾のイメージデータあるいは圧縮コードまで移動が終了したら、S320において、総イメージデータ管理部15の管理情報中の未使用領域の先頭アドレスを更新し、イメージデータ/圧縮コード領域更新処理を終える。
【0153】
上述のように、間引き処理及び圧縮処理によってイメージデータ/圧縮コード保持部19内のイメージデータ等に処理を施す場合でも、その情報を迅速に中間コード画像データなどに反映することができる。
【0154】
【発明の効果】
以上の説明から明らかなように、本発明によれば、イメージの入力画像情報を中間コード画像データとイメージデータにより管理する際に、イメージデータに対して操作(間引き/圧縮など)が加わった場合でも、修正された情報を中間コード画像データに迅速に反映することができる。例えば中間コード画像データへの変換処理途中におけるメモリ不足や、レンダリング処理直前における描画時間予測において描画時間が間に合わないバンドが存在する場合、イメージデータに対して操作(間引き/圧縮など)が必要となる。このような操作を加えた場合に、その修正された情報を中間コード画像データに迅速に反映し、また逆に中間コード画像データの変更をイメージデータの管理情報に迅速に反映することができる。このとき、複数のイメージコマンドが存在する場合や、イメージデータがバンドをまたぐことにより複数の中間コード画像データが生成された場合においても同様であり、修正された情報を迅速に中間コード画像データに反映することができる。
【0155】
また拡大処理におけるバンド境界の補正値を正確に算出することができ、バンドの境界における描画のずれを防止して画質を向上させることができる。さらに、レンダリング処理をハードウェアで実行させる場合などでは、イメージデータのDMA転送量を正確に得ることが可能となり、無駄な転送を防ぐことによる処理速度の高速化を図ることができるという効果がある。
【図面の簡単な説明】
【図1】 本発明の画像処理装置の実施の一形態を示すブロック図である。
【図2】 中間コード画像データ保持ブロック管理部14において中間コード画像データを管理する際のデータ構造の一例の説明図である。
【図3】 中間コード画像データ保持ブロック管理部14における中間コード画像データのデータ構造の一例の説明図である。
【図4】 総イメージデータ管理部15における管理情報のフォーマットの一例の説明図である。
【図5】 イメージデータ管理部18において管理する管理リストのフォーマットの一例の説明図である。
【図6】 イメージデータ管理部18において管理する管理情報のフォーマットの一例の説明図である。
【図7】 イメージデータ管理部18において管理する中間コード画像データ管理リストのフォーマットの一例の説明図である。
【図8】 総イメージデータ管理部15,イメージデータ管理部18,中間コード画像データ保持ブロック管理部14で管理される各情報の関係の一例を示す説明図である。
【図9】 図8に示すデータ構造によって管理されるイメージデータの一例の説明図である。
【図10】 本発明の画像処理装置の実施の一形態における動作の一例の概要を示すフローチャートである。
【図11】 イメージデータ管理部の管理情報生成処理の一例を示すフローチャートである。
【図12】 イメージの中間コード画像データ生成処理の一例を示すフローチャートである。
【図13】 イメージ中間コード画像データ登録処理の一例を示すフローチャートである。
【図14】 格納領域検査処理の一例を示すフローチャートである。
【図15】 重畳図形処理の一例を示すフローチャートである。
【図16】 展開圧縮処理の一例を示すフローチャートである。
【図17】 イメージデータの中間コード画像データの抹消処理の一例を示すフローチャートである。
【図18】 イメージデータ管理部管理情報抹消処理の一例を示すフローチャートである。
【図19】 圧縮コード登録処理の一例を示すフローチャートである。
【図20】 領域獲得処理の一例を示すフローチャートである。
【図21】 間引き処理の一例を示すフローチャートである。
【図22】 圧縮処理の一例を示すフローチャートである。
【図23】 イメージデータ/圧縮コード領域更新処理の一例を示すフローチャートである。
【符号の説明】
11…画像処理装置、12…上位処理部、13…予測データ採取部、14…中間コード画像データ保持ブロック管理部、15…総イメージデータ管理部、16…予測処理部、17…中間コード画像データ保持ブロック保持部、18…イメージデータ管理部、19…イメージデータ/圧縮コード保持部、20…重畳図形処理部、21…圧縮処理部、22…間引き処理部、23…レンダリング処理部、24,25…バンドバッファ、31…総イメージデータ管理部15で管理される管理情報、32,33…イメージデータ管理部18で管理される管理リスト、34,35…イメージデータ管理部18で管理される管理情報、36〜38…中間コード画像データ管理リスト、39〜41…中間コード画像データ。
Claims (3)
- 入力された描画情報をバンド毎の中間コード画像データとして管理する画像処理装置において、バンド毎に生成された中間コード画像データを保持する中間コード画像データ保持手段と、前記中間コード画像データをバンド毎に管理する中間コード画像データ管理手段と、前記描画情報のイメージデータ部分を保持するイメージデータ保持手段と、前記イメージデータ部分を管理するイメージデータ管理手段を有し、該イメージデータ管理手段は、前記イメージデータ保持手段に保持されているイメージデータ部分と該イメージデータ部分の少なくとも一部を描画する領域に対応付けて生成された前記中間コード画像データ保持手段内の1ないし複数の中間コード画像データを相互に関連づける管理情報により管理することを特徴とする画像処理装置。
- 前記イメージデータ管理手段は、前記イメージデータ部分を入力解像度で管理し、前記中間コード画像データ管理手段は、前記イメージデータ部分の少なくとも一部が出力解像度に合わせて描画される領域に対して生成された1ないし複数の中間コード画像データを管理することを特徴とする請求項1に記載の画像処理装置。
- さらに、前記イメージデータ管理手段によって管理している1ないし複数の前記イメージデータ部分をページ単位で管理するとともに前記イメージデータ保持手段の領域管理を行う総イメージデータ管理手段を有することを特徴とする請求項1または請求項2に記載の画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000314758A JP4525880B2 (ja) | 2000-10-16 | 2000-10-16 | 画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000314758A JP4525880B2 (ja) | 2000-10-16 | 2000-10-16 | 画像処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002120416A JP2002120416A (ja) | 2002-04-23 |
JP4525880B2 true JP4525880B2 (ja) | 2010-08-18 |
Family
ID=18793958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000314758A Expired - Fee Related JP4525880B2 (ja) | 2000-10-16 | 2000-10-16 | 画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4525880B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4306698B2 (ja) | 2006-06-26 | 2009-08-05 | ブラザー工業株式会社 | 印刷装置 |
JP7150487B2 (ja) * | 2018-06-04 | 2022-10-11 | キヤノン株式会社 | 情報処理装置、情報処理方法、及びプログラム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000158724A (ja) * | 1998-11-30 | 2000-06-13 | Fuji Xerox Co Ltd | 画像処理装置、画像処理方法および記録媒体 |
-
2000
- 2000-10-16 JP JP2000314758A patent/JP4525880B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000158724A (ja) * | 1998-11-30 | 2000-06-13 | Fuji Xerox Co Ltd | 画像処理装置、画像処理方法および記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
JP2002120416A (ja) | 2002-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH08115178A (ja) | ページ記述言語における可変データフイールド | |
JP4525880B2 (ja) | 画像処理装置 | |
CN108984323B (zh) | 一种共享存储空间的调度方法及系统 | |
KR100253103B1 (ko) | 인쇄 시스템 | |
US6580429B1 (en) | Method of generating data for three-dimensional graphic recording medium and three-dimensional graphic system | |
JP3814373B2 (ja) | 情報処理装置及び印刷制御装置及び方法とプログラム記憶媒体 | |
JP5353427B2 (ja) | 画像処理装置、プログラム及び画像処理システム | |
JP2001075759A (ja) | 情報処理装置および情報処理方法 | |
JP4208350B2 (ja) | 描画装置及び描画方法、記憶媒体 | |
JPH1132207A (ja) | 画像処理装置及びその方法並びにメモリ媒体 | |
JP7480612B2 (ja) | 画像処理装置、画像形成装置およびプログラム | |
JP4195955B2 (ja) | 画像処理システムおよびそのデータ編集方法 | |
JP2004276537A (ja) | 画像処理装置及び画像処理方法 | |
JP4136505B2 (ja) | 情報処理装置および情報処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラム | |
JP2000255125A (ja) | 印刷処理装置および印刷処理方法 | |
JP3822464B2 (ja) | 画像抽出方法、画像処理装置及びプログラムを記録した記録媒体 | |
JP2000322300A (ja) | 日付管理装置および日付管理方法 | |
JP4078747B2 (ja) | 画像処理装置 | |
JPH09300769A (ja) | 印刷装置及びデータ登録方法及び制御プログラムを記憶した記憶媒体 | |
JPH11129553A (ja) | メモリ管理方法及びそれを用いた印刷装置と印刷システム | |
JP2965681B2 (ja) | 画像形成装置 | |
JP3610143B2 (ja) | 印刷制御装置及び印刷制御方法 | |
JP2002269553A (ja) | 画像処理装置及び画像形成装置 | |
JP2000255121A (ja) | 印刷処理装置および印刷処理方法 | |
JP2001205862A (ja) | 画像処理装置およびその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070913 |
|
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: 20100512 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130611 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4525880 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100525 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140611 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |