JP2016071545A - 画像処理装置、画像処理方法、プログラム - Google Patents

画像処理装置、画像処理方法、プログラム Download PDF

Info

Publication number
JP2016071545A
JP2016071545A JP2014199178A JP2014199178A JP2016071545A JP 2016071545 A JP2016071545 A JP 2016071545A JP 2014199178 A JP2014199178 A JP 2014199178A JP 2014199178 A JP2014199178 A JP 2014199178A JP 2016071545 A JP2016071545 A JP 2016071545A
Authority
JP
Japan
Prior art keywords
raster data
rectangular area
processing unit
data
image processing
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
JP2014199178A
Other languages
English (en)
Other versions
JP6544905B2 (ja
Inventor
健 阿知波
Takeshi Achinami
健 阿知波
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 JP2014199178A priority Critical patent/JP6544905B2/ja
Priority to PCT/JP2015/004728 priority patent/WO2016051703A1/en
Priority to CN201580052845.8A priority patent/CN106716984B/zh
Priority to US15/515,095 priority patent/US10089561B2/en
Publication of JP2016071545A publication Critical patent/JP2016071545A/ja
Application granted granted Critical
Publication of JP6544905B2 publication Critical patent/JP6544905B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K15/1857Generation of the printable image characterized by its workflow involving parallel processing in the same printing apparatus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K15/1861Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time
    • G06K15/1863Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time by rasterizing in sub-page segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/21Intermediate information storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • H04N1/413Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
    • H04N1/415Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information in which the picture-elements are subdivided or grouped into fixed one-dimensional or two-dimensional blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Record Information Processing For Printing (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)
  • Storing Facsimile Image Data (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)

Abstract

【課題】 複数の描画手段を用いてラスタデータを生成する場合でも、生成されるラスタデータを記憶するメモリ量を抑える。【解決手段】 複数の描画手段が、印刷データから所定の高さの矩形領域のラスタデータを生成し、当該生成されたその矩形領域のラスタデータを記憶手段に記憶する際に、前記複数の描画手段のそれぞれは、その矩形領域のラスタデータに含まれる別々の部分のラスタデータを生成する。【選択図】 図5

Description

本発明は、複数の描画処理部で並列に描画処理を実行する技術に関する。
ビットマップ等のラスタデータを、回転処理等の画像処理に適した矩形形状(例:32画素×32画素)のラスタデータに分割することが従来より行われている。この矩形形状(タイル)のラスタデータは、タイルデータとも呼ばれる。
特許文献1は、以下の処理を開示する。(1)レンダラーが、ページ記述言語(PDL)で記述された単一ページの画像データ(印刷データ)から、タイルの高さ(例:32画素)と等しい高さを持つバンドのラスタデータを生成する。(2)タイル分割部が、その生成されたバンドのラスタデータを、回転処理等の画像処理を行う際に好適なタイルデータに分割する。すなわち特許文献1の技術は、1つのレンダラーが生成したタイル高さのバンドのラスタデータを、1つのタイル分割部が複数のタイルデータに分割する。
特開2014−53822
特許文献1では、ラスタデータの生成処理(描画処理)の高速化のために、複数のレンダラーを用いることは考慮されていなかった。
複数のレンダラーのそれぞれが、タイル高さと等しい高さを持つバンドのラスタデータを並列して生成すると、生成された複数バンドのラスタデータをタイル分割が行われるまで記憶しておくメモリが必要となる。すなわち、複数のタイルデータに分割されることになるタイル高さのバンドのラスタデータに、一のレンダラーが生成したラスタデータは含まれるが、別のレンダラーが生成したラスタデータは含まれないので、タイル分割に必要なメモリ量が多くなる。
本発明の画像処理装置は、印刷データから所定の高さの第1の矩形領域のラスタデータを生成し、当該生成された前記第1の矩形領域のラスタデータを記憶手段に記憶する複数の描画手段と、前記記憶手段に記憶された前記第1の矩形領域のラスタデータから前記所定の高さの第2の矩形領域のラスタデータを取得し、当該取得された前記第2の矩形領域のラスタデータに画像処理を行う処理手段と、を有し、前記複数の描画手段のそれぞれは、前記第1の矩形領域のラスタデータに含まれる別々の部分のラスタデータを生成することを特徴とする。
並列化された描画処理によって生成されるラスタデータを記憶するためのメモリ量を抑えることができる。
画像形成装置の構成を示す図である。 画像形成装置におけるPDL印刷処理のデータフローを示す図である。 画像形成装置で扱うページ内での矩形領域の座標系の一例を示す図である。 描画処理に関わるブロック構成を示す図である。 描画処理に関わるブロック構成の一部が停止した状態を示す図である。 PDL印刷処理を示すフローチャートである。 第1の実施例の描画処理設定を示すフローチャートである。 第2の実施例の描画処理設定を示すフローチャートである。 並列描画処理を示すフローチャートである。 バンド単位のライトとブロック単位のリードのアクセス制御を示す図である。 バンド単位と矩形領域ブロック単位の矩形領域の位置関係を示す図である。 ディスプレイリストに含まれる描画オブジェクトの座標更新を説明する図である。
以下、本発明を実施するための形態について図面を用いて説明する。
図1は、本発明の実施例の画像形成装置の構成例を示す図である。図1に示すように、画像形成装置100は、コントローラ101、ネットワーク102、操作部103、読取部104、印刷部105で構成される。ネットワーク102は、LANやWAN(公衆回線)等で実現され、ホストコンピュータやサーバ等の外部装置と画像形成装置100との間で画像データやデバイス情報を送受信する通信部である。操作部103は、ユーザーによる操作を画像処理の制御情報として取得したり、ユーザーに対して画像処理の制御情報を表示したりする処理部である。読取部(スキャナエンジン)104は、画像入力デバイスであって、光学センサ等を用いて画像形成装置100の内部に画像データを取り込む処理部である。印刷部(プリンタエンジン)105は、画像出力デバイスであって、画像形成装置100の内部の画像データを記録媒体に印字して出力する処理部である。
コントローラ101は、ネットワーク102、操作部103、読取部104、印刷部105と接続され、画像形成装置100全体の制御を行う制御部である。コントローラ101は、システムバス106、通信部I/F107、CPU108、RAM109、ROM110、HDD111、操作部I/F112、読取部I/F113、画像処理部114〜117、印刷部I/F118で構成される。
システムバス106は、コントローラ101を構成する各部を接続し、各部の間で画像データや制御情報の送受信を行うための通信路である。通信部I/F107は、例えばLANカード等で実現され、ネットワーク102を介してホストコンピュータやサーバ等の外部装置と画像形成装置100との間で画像データやデバイス情報を送受信するためのインタフェースである。
CPU108は、画像形成装置100全体を制御する処理部である。このCPU108は、特に、PDL印刷処理においては、ネットワーク102を介して外部装置から受信したPDLデータ(印刷データの一例である)を解釈して、DL(ディスプレイリスト)と呼ばれる中間データに変換する。RAM(RandomAccessMemory)109は揮発性メモリであり、CPU108がシステム上で動作するためのワーク領域として使用されたり、画像データを一次記憶するためのバッファ領域として使用されたりする。ROM(ReadOnlyMemory)110は不揮発性メモリであり、CPU108がシステムを起動するためのプログラムが格納されている一次記憶部である。このプログラムは、画像形成装置100の起動時にRAM109に展開され、CPU108により実行される。HDD(ハードディスクドライブ)111は、画像形成装置100の内部で画像データを格納しておくための大容量記憶部である。
操作部I/F112は、ユーザーによる操作を画像処理の制御情報として取得したり、ユーザーに対して画像処理の制御情報を表示したりするためのインタフェースである。読取部I/F(スキャン画像処理部)113は、読取部(スキャナエンジン)104と接続され、読取部104から入力された画像データに対して、読取部104のデバイス特性に合わせた補正のための画像処理を行う画像処理部である。
描画処理部114は、PDLデータからCPU108が生成したベクタ形式の中間データ(DL)に基づいた描画処理を行い、ラスタ形式の画像データ(ラスタデータ)をブロックRAM115に出力する。描画処理部114は、内部にレジスタ(内部レジスタと呼ぶ)、および、複数の描画処理部(第1描画処理部401、第2描画処理部402)を備えている。その内部レジスタは描画処理に関する各情報を記憶する。また複数の描画処理部は、描画処理を並列して行うことが可能である。また、各描画処理部は、起動時に内部レジスタの事前に決められた別々のアドレスを参照しにいくことで、自身の識別情報(ID)を取得する。ブロックRAM115は、ラスタデータを一次保持するメモリとアクセス検知装置を備えており、ブロックRAM115は、自身のメモリにおける特定のアドレスへのラスタデータの書き出し、および、読み出しを検知することができる。圧縮処理部116は、ブロックRAM115に一次保持されたラスタデータのうち、後述する矩形形状(タイル形状)のラスタデータ(タイルデータ)を抽出し、抽出したタイルデータに対して圧縮処理を行うことで圧縮画像データを生成する。つまり圧縮処理部116は、ブロックのラスタデータ単位でバンドを抽出(分割)し、そのラスタデータ単位で圧縮処理を行う。なお圧縮処理部116は、タイルデータに対する画像処理の一例として圧縮処理を行うもので、本発明は、画像処理を圧縮処理に限定しない。
なお、PDL印刷時の描画処理に関わる描画処理部114、ブロックRAM115、圧縮処理部116の動作については、図4を用いて詳細に説明する。
伸張処理部117は、圧縮処理部116で圧縮処理が行われた圧縮画像データに対して伸張処理を行うことで伸張画像データを生成する。
印刷部I/F(プリント画像処理部)118は、印刷部(プリンタエンジン)105と接続されている。この印刷部I/F(プリント画像処理部)118は、伸張処理が行われた伸張画像データに対して印刷部105のデバイス特性に合わせた補正のための画像処理(例えばガンマ補正処理)を行った後に、印刷部105に補正後の画像データを出力する。
次に、図2及び図3を用いて、画像形成装置100におけるPDL印刷処理のデータフロー及び画像データ単位の関係を説明する。図2は、画像形成装置100におけるPDL印刷処理のデータフローを示す図である。図3は、画像形成装置100で扱うページ内でのタイルデータの座標系の例を示す図である。このページとはPDLデータによって表現される。なお、CPU108が、画像形成装置100の起動時に、HDD111に記憶されているプログラムをRAM109に展開し、実行すると、図1に示される各部が統括的に制御されて図2のデータフローは実現される。
図2に示すように、画像形成装置100の通信部I/F107は、ホストコンピュータからPDLデータを受信し、ページ単位のPDLデータ201としてRAM109に記憶する。次に、CPU108は、受信したPDLデータ201を解釈し、ページ単位の中間データ(DL)202を生成し、再びRAM109に記憶する。生成されたページ単位の中間データ(DL)202の一例を図12(a)に示す。図12(a)に例示される中間データ(DL)は、データの終わりを示す情報(EndOfPage)および5つの描画オブジェクト1〜5を含む。各描画オブジェクト1〜5は、それぞれが描画される位置の情報を持ち、副走査方向の座標位置順(Y座標の昇順)でソートされた状態で中間データに含まれる。
CPU108は、中間データを生成すると、この中間データが記憶されるRAM109のアドレスの先頭アドレスを並列描画処理設定情報(単に描画処理設定情報とも呼ぶ)203として描画処理部114の内部レジスタに設定する。またこの際に、CPU108は、描画処理部114の並列動作に関わる情報(例えば、並列動作させる描画処理部の数(並列動作数)や、各描画処理部によって描画されるバンドの副走査方向の画素数(高さ))も、描画処理設定情報203に含めておく。
ここで、バンド単位は、図3(a)及び図3(b)に例示される。すなわち、単一ページ内を副走査方向で分割することで主走査方向(スキャンライン方向、あるいは幅方向とも呼ぶ)の画素数(幅)よりも副走査方向(高さ方向とも呼ぶ)の画素数(高さ)の方が小さい短冊状の矩形領域を意味する。一方で、ブロック単位(タイル単位とも呼ぶ)とは、図3(a)及び図3(b)で示すように、画像形成装置100において予め定めた主走査方向の画素数(幅)と副走査方向の画素数(高さ)が等しい正方形タイル形状の矩形領域を意味する。別の言い方をすると、バンドの幅は、ページの幅と等しく、且つ、ブロック(あるいはタイル)の幅以上である。
図3(a)と図3(b)の違いは、ブロック単位の矩形領域がバンド単位の矩形領域に包含される位置関係にあるか否かである。すなわち、図3(a)は、ブロックがバンドに包含され、単一のバンドには複数のブロックが含まれる。一方で、図3(b)は、描画処理を並列に実行する上で好適なバンド単位を示し、ブロックがバンドに包含されておらず、1つのブロックは少なくとも複数のバンドのデータを含んでいる。言い換えると、隣接するバンドのデータそれぞれは、1つのブロックの別々の部分のデータである。なお、図3(b)での各バンドの副走査方向の画素数(高さ)は、ブロックの副走査方向の画素数(高さ)を並列動作数で割った数となっている。具体的には、図3(b)に示すように、単一のページ1において、バンド11あるいはバンド12の高さは、単一のブロック11の高さを、並列動作数「2」で割ったものである。
本実施例では、図3(b)に示すように、1つの描画処理部によって描画されるバンドは、副走査方向で細かくページが分割されたものに相当する。この理由について説明する。描画処理の並列化において、複数の領域に分割される。ページに含まれる文字、写真、図形等の描画オブジェクトの複雑さにもよるが、一般に、単一の描画オブジェクトが異なる複数の矩形領域に分割されるので描画処理のオーバーヘッドが増えてしまう。この描画処理のオーバーヘッドを低減するために、本実施例は、描画処理アルゴリズムの特性を考慮する。例えば、本実施例の描画処理部が採用する描画処理アルゴリズムがスキャンライン方式(スキャンラインに沿って画素を順次描画する方式)であるとする。この場合、主走査方向でページを分割するよりも、副走査方向でページを分割した方が、描画処理のオーバーヘッドを抑えることができる。すなわち、スキャンライン方式による描画処理を行う描画処理部を複数用いて描画処理を並列化する場合、バンド単位で並列化するのが有効である。
以降の実施例においては、図3(b)で規定されたページ内でのバンド単位、及び、ブロック単位に基づいて説明を行うものとする。
描画処理部(RIP)114は、RAM109に記憶された中間データ(DL)202を参照し、単一ページ内の複数のバンド単位の矩形領域に対する描画処理を並列に実行する。描画処理部114は、この並列描画によって複数のバンドのラスタ形式の画像データ(ラスタデータ)204を生成し、そのラスタデータをブロックRAM115に一次保持する。
続いて、圧縮処理部116は、ブロックRAM115に一次保持された複数のバンド単位のラスタデータを結合し、結合された複数バンドのラスタデータからブロック単位のラスタデータを読み出す。単一ブロックのラスタデータは、複数のバンドのラスタデータを含む。そして圧縮処理部116は、読みだしたブロック単位のラスタデータにJPEG等の圧縮処理を行って圧縮画像データを生成し、その圧縮画像データを再びRAM109に記憶する。
更に、伸張処理部117は、RAM109に記憶されている、単一ページを構成する全てのブロック単位の圧縮画像データに対してJPEG等の伸張処理を行うことで、ページ単位のラスタデータを生成し、再びRAM109に一次記憶する。
この後、印刷部I/F118は、RAM109に一次保持されたページ単位のラスタデータを読み出し、印刷部105のデバイス特性に合わせた補正のための画像処理を行った後に、印刷部105に対してその補正後の画像データを出力する。これを受けて、印刷部(プリンタエンジン)105は、印刷部I/F118から転送された画像データに基づいて印刷を行う。
次に、図4を用いて、本実施例におけるPDL印刷時の描画処理の動作を説明する。図4は、RAM109に一次保持した中間データ(DL)202に対してバンド単位で並列に描画処理を実行した後に、ブロック単位の圧縮画像データ205を再びRAM109に記憶するまでの内部動作を示している。
図4(a)は、図3(a)のように、ブロック単位の矩形領域がバンド単位の矩形領域に包含される場合における例である。図4(a)において、画像形成装置100は、描画処理部114に備わる第1描画処理部401及び第2描画処理部402を用いて、単一ページ内の複数バンドを並列に描画する。例えば、第1描画処理部401は、単一ページ内の奇数バンド目を描画処理し、偶数バンド目を描画処理しないで描画オブジェクトの輪郭のスキャンライン毎の位置座標更新を行う。また例えば、第2描画処理部402は、単一ページ内の偶数バンド目を描画処理し、奇数バンド目を描画処理しないで描画オブジェクトの輪郭のスキャンライン毎の位置座標更新のみを行う。
このように、第1描画処理部401及び第2描画処理部402は、それぞれバンド単位で描画処理対象とする描画オブジェクトを取得する。本実施例では、RAM109に一次記憶された中間データ(DL)202は、ページ単位であるが、バンド単位で描画オブジェクトを取得しやすいバンド単位に予め分割された中間データ(DL)であっても良い。
次に、第1描画処理部401は、ブロックRAM115を構成する第1ブロックRAM411に対して図3(a)で示したバンド1及びバンド3の画像データを順に出力する。一方、第2描画処理部402は、ブロックRAM115を構成する第2ブロックRAM412に対して図3(b)で示したバンド2及びバンド4の画像データを順に出力する。
続いて、圧縮処理部116を構成する第1圧縮処理部421は、第1ブロックRAM411に一次記憶された図3(a)で示したバンド1からブロック単位で画像データを順に読み出し、圧縮処理を実行した後にRAM109に転送する。一方、圧縮処理部116を構成する第2圧縮処理部422は、第2ブロックRAM412に一次記憶された図3(a)で示したバンド2からブロック単位で画像データを順に読み出し、圧縮処理を実行した後にRAM109に転送する。
ここで、第1ブロックRAM411は、第1描画処理部401による書き出し、および、圧縮処理部116による読み出しを同時に実行可能なダブルバッファで構成している。従って、例えば、第1描画処理部401によるバンド3の書き出し処理と第1圧縮処理部421によるバンド1内のブロック11〜14の読み出し処理を同時に実行できる。第2ブロックRAM412も、同様の構成である。
以上で説明したように、図4(a)の例では、描画処理部114の並列処理で必要とするリソースだけでなく、ブロックRAM115、及び、圧縮処理部116も描画処理部114の並列動作数に応じて複数のリソースを必要とすることが分かる。つまり、第1ブロックRAM411、第2ブロックRAM412、第1圧縮処理部421、第2圧縮処理部422が必要となる。
図4(b)は、図3(b)のように、ブロック単位の矩形領域がバンド単位の矩形領域に包含されずに、ブロック単位の副走査方向の画素数を描画処理部114の並列動作数に基づく複数のバンド単位の高さで分割した場合における例である。図4(b)において、画像形成装置100は、描画処理部114を構成する第1描画処理部401及び第2描画処理部402を用いて、単一ページ内の複数バンドを並列に描画する。すなわち描画処理設定情報203の並列動作数は「2」である。第1描画処理部401は、単一ページ内の奇数バンド目を描画処理し、偶数バンド目を描画処理せずに描画オブジェクトのスキャンライン毎の位置座標更新を行う。第2描画処理部402は、単一ページ内の偶数バンド目を描画処理し、奇数バンド目を描画処理せずに描画オブジェクトのスキャンライン毎の位置座標更新を行う。
このように、第1描画処理部401及び第2描画処理部402は、それぞれバンド単位で描画処理対象とする描画オブジェクトを取得する。本実施例では、RAM109に一次記憶された中間データ(DL)202は、ページ単位であるが、バンド単位で描画オブジェクトを取得しやすいバンド単位に予め分割された中間データ(DL)であっても良い。
次に、第1描画処理部401は、ブロックRAM115を構成する第1ブロックRAM411に対して図3(b)で示したバンド11及びバンド21の画像データを順に出力する。一方、第2描画処理部402は、ブロックRAM115を構成する第1ブロックRAM411に対して図3(b)で示したバンド12及びバンド22の画像データを順に出力する。
続いて、圧縮処理部116の第1圧縮処理部421は、第1ブロックRAM411に一次記憶された図3(b)で示したバンド11及びバンド12を結合したバンドからブロック単位で画像データを順に読み出す。そして第1圧縮処理部421は、読みだされたブロック単位の画像データに圧縮処理を実行した後、圧縮された画像データをRAM109に転送する。
ここでも、第1ブロックRAM411および第2ブロックRAM412は、描画処理部401、402による書き出しと圧縮処理部116による読み出しを同時に実行可能なダブルバッファで構成している。
以上で説明したように、図4(b)の例では、描画処理部114の並列処理を実現するために、ブロックRAM115、及び、圧縮処理部116のリソースを変更することなく、描画処理部114の並列処理で必要とするリソースのみで良いことが分かる。
図5は、図4(b)では、第2描画処理部402を停止して、第1描画処理部401のみを動作させた例である。この時、描画処理部114の並列動作数が1になるので、ブロック単位の矩形領域がバンド単位の矩形領域に包含される図3(a)と同様の位置関係になる。
図5において、画像形成装置100は、描画処理部114を構成する第1描画処理部401のみを用いて、単一ページ内のバンド単位で順に描画する。すなわち描画処理設定情報203の並列動作数は「1」である。次に、第1描画処理部401は、ブロックRAM115を構成する第1ブロックRAM411に対して図3(a)で示したバンド1及びバンド2の画像データを順に出力する。続いて、圧縮処理部116を構成する第1圧縮処理部421は、第1ブロックRAM411に一次記憶された図3(a)で示したバンド1に対応するバンド単位からブロック単位で画像データを順に読み出し、圧縮処理を実行した後にRAM109に転送する。ここでも、第1ブロックRAM411は描画処理部401による書き出しと圧縮処理部116による読み出しを、同時に実行可能なダブルバッファで構成している。
以上で説明したように、図5の例では、描画処理部114の描画処理設定を変更し、複数の描画処理部のうちの一部を停止させた場合にも、描画処理の並列動作数とバンドの高さを対応させて変更することで、同様の描画処理を実現できる。
図6は、PDL印刷処理を説明するためのフローチャートである。このフローチャートは、CPU108がROM110に格納されているプログラムを実行することで、図1に示される各部が統括的に制御されて実現される。
まず、CPU108は、ホストコンピュータから送信されたPDLデータを通信部I/F107を介して受信し、ページ単位のPDLデータ201としてRAM109に記憶する(S601)。
次に、CPU108は、受信したPDLデータ201を解釈し(S602)、解釈した情報を元に中間データ(DL)202を生成する(S603)。この中間データ(DL)は前述のように図12(a)に例示されるものである。
次に、CPU108は、描画処理部114のための並列描画処理設定を行う(S604)。具体的には描画処理部114の描画対象とするバンドの高さの設定である。S604については、図7のフローチャートを用いて詳細に説明する。
次に、CPU108は、描画処理部114を制御して描画処理を実行し、ラスタ形式の画像データ(ラスタデータ)204を生成する(S605)。S605については、図9のフローチャートを用いて詳細に説明する。
次に、CPU108は、圧縮処理部116を制御して圧縮処理を実行した後に、RAM109に圧縮画像データ205を記憶する(S606)。S606については、図10を用いて詳細に説明する。
次に、CPU108は、伸張処理部117を制御して、RAM109に記憶された圧縮画像データ205に対して伸張処理を実行した後に、再びRAM109に画像データ206を記憶する(S607)。
次に、CPU108は、印刷部I/F118を制御してRAM109から印刷部105に対して画像データ206を転送する。そして、CPU108は、画像データ206に対して印刷部105のデバイス特性に合わせた補正の画像処理を行った後に、印刷部105に対して画像処理後の画像データを転送する(S608)。
その後、印刷部105は、印刷部I/F118から転送された画像データを記録媒体に印字して出力する(S609)。
図7は、S604の描画処理設定の処理を説明するためのフローチャートである。
まず、CPU108は、画像形成装置100の内部で扱う画像データ単位としてのブロックの高さをROM110から取得する(S701)。本実施例では、このブロックの高さは事前に決められた所定の高さであるが、ユーザーの設定する画像形成装置の動作モードに応じて動的に決定されても良い。ここでは、説明を簡単にするために、ブロック単位を8画素×8画素の正方形タイル形状として説明を行う。
次に、CPU108は、描画処理部114においてバンド単位の描画処理を行うリソースのうちの並列動作数を、描画処理部114の内部レジスタから取得する(S702)。この並列動作数は、ユーザーの設定する画像形成装置の動作モードに応じて異なる値が、S702の処理の前にCPU108によって内部レジスタに設定されている。例えば、ユーザーが動作モードとして省電力印刷モードを指定した場合に、描画処理部114の並列動作数は図5に示されるように「1」が内部レジスタに設定されている。また例えば、ユーザーが動作モードとして省電力印刷モードを指定しなかった場合に、描画処理部114の並列動作数は図4(b)に示されるように「2」が内部レジスタに設定されている。また例えば、ユーザーが動作モードとして高速印刷モードを指定した場合に、描画処理部114の並列動作数は「4」(2以上)が内部レジスタに設定されている。
次に、CPU108は、S702で取得した並列動作数が2以上であるか否かを判定する(S703)。S703で2以上であれば(YES)、S705に遷移し、S703で1であれば(NO)、S704に遷移する。
S704で、CPU108は、S701で取得したブロックの高さを、描画処理部114で処理単位とするバンドの高さとして、内部レジスタの描画処理設定情報203に設定する。例えば、8画素×8画素のブロック単位に対して、並列動作数は1なので、バンドの高さを8画素として、これを描画処理部114の内部レジスタに設定する。
一方で、S705で、CPU108は、S701で取得したブロックの高さを、S702で取得した並列動作数で均等分割するようにバンドの高さを内部レジスタの描画処理設定情報203に設定する(S706)。例えば、8画素×8画素のブロック単位に対して、並列動作数は2なので、バンドの高さを4画素として、これを描画処理部114の内部レジスタに設定する。
以上が描画処理設定の処理フローである。
図9は、描画処理を説明するためのフローチャートである。以下、CPU108の制御に基づいて描画処理部114が動作するものとして説明する。
まず、描画処理部114で動作する各描画処理部の読み出し処理部(図4(b)、図5参照)は、CPU108によって描画処理部114の内部レジスタに描画処理設定情報203として設定された中間データ(DL)の先頭アドレスを取得する(S901)。
次に、描画処理部114は、S604でCPU108によって設定されたバンド高さを内部レジスタから取得する(S902)。
次に、描画処理部114における各描画処理部は、描画処理部114の内部でバンド単位の描画処理を実行する並列動作数と、自身のIDを内部レジスタから取得する(S903)。例えば、図4(b)で示した描画処理部114における第1描画処理部401であれば、並列動作数として「2」、自身のIDとして「1」を取得し、第2描画処理部402であれば、並列動作数として「2」、自身のIDとして「2」を取得する。
以下で説明するS904からS909までの一連の処理は、中間データ(DL)に含まれる先頭のバンドから末尾のバンドまでバンドごとに繰り返される。現在処理の対象となっているバンドのことを、当該バンドと呼ぶ。
描画処理部114の各描画処理部は、当該バンド領域に含まれる描画オブジェクトを中間データ(DL)から取得する(S904)。本実施例では、各描画処理部401、402は、S901で取得された先頭アドレスから末尾アドレスに向かって、ページ単位の中間データ(DL)に順次アクセスすることで描画オブジェクトを取得する。なお本実施例の中間データ(DL)の概要は、図12(a)に示される。すなわちページ単位の中間データ(DL)202は、描画される位置情報(X座標およびY座標)を持った描画オブジェクトが、先頭のバンドから末尾のバンドに向かってソートされた状態で格納されるように、CPU108によって生成されている。そのため、中間データ(DL)の先頭から描画オブジェクトの位置座標(Y座標)を確認することで、当該バンドのX座標およびY座標の範囲内に含まれる描画オブジェクトを、簡単に取得することができる。
次に、描画処理部114における各描画処理部は、当該バンドがS903で取得された自身のIDに対応するかを判定する(S905)。例えばこの判定は、当該バンドの先頭バンドからの順番を並列動作数で割った余りの値が、IDの番号と一致するか否かで判定できる。なお判定方法はこれに限られず、本判定の主旨は、各描画処理部が当該バンドの描画処理を自身で行うか否かを判定することである。
例えば、図4(b)で示した第1描画処理部401は、自身のIDが1であるので、第図3(b)で示したバンド11(バンドの順番で1番目)を描画対象であると判定する。一方で、図4(b)で示した第2描画処理部402は、自身のIDが2であるので、図3(b)で示したバンド11を描画対象でないと判定する。
また、例えば、図4(b)で示した第1描画処理部401は、自身のIDが1であるので、図3(b)で示したバンド12(バンドの順番で2番目)を描画対象でないと判定する。一方で、図4(b)で示した第2描画処理部402は、自身のIDが2であるので、図3(b)で示したバンド12を描画対象であると判定する。
S905で描画対象であると判定した場合(YES)、S906に遷移し、S905で描画対象でないと判定した場合(NO)、S908に遷移する。
次に、S906で、描画処理部114の各描画処理部は、ブロックRAM115に空き領域があるか否かを判定する。空き領域があるか否かは、ブロックRAM115からの通知によって判定される。各描画処理部は、空き領域が無ければ(NO)、S906で空き領域ができるまで待ち状態となり、空き領域があれば(YES)、処理はS907に遷移する。この空き領域の有無の判定(すなわち圧縮処理部116によるラスタデータのブロックRAM115からの読み出しと、各描画処理部によるラスタデータのブロックRAM115への書き出しとの関係)については、図10を用いて後述する。
S907に遷移した場合、描画処理部114の各描画処理部は、当該バンド領域に含まれる描画オブジェクトの輪郭と現在のスキャンライン(Y座標)との交点の位置座標(X座標)を、ディスプレイリストの情報から求める。そして、描画処理部は、求められた位置情報に基づいて、描画オブジェクトを含んだ現在のスキャンラインの描画を行う。この描画は、ラスタデータの生成およびその生成されたラスタデータのブロックRAM115の空き領域への出力(書き出し)を、スキャンラインの画素毎に繰返し行う。そして描画処理部は、次のスキャンラインにおける描画オブジェクトの輪郭の位置座標(X座標)を求め、同様に次のスキャンラインにおける描画を行う。各描画処理部によるラスタデータのブロックRAM115への書き出しと、圧縮処理部116によるラスタデータのブロックRAM115からの読み出しとの関係は、図10を用いて後述される。
なお、次のスキャンラインにおける描画オブジェクトの輪郭の位置座標は、現在のスキャンラインにおいて求められた描画オブジェクトの輪郭の位置情報と、その輪郭の傾き(スキャンライン(Y座標)が進むたびのX座標の移動量)とに基づいて求められる。
一方で、S908に遷移した場合、描画処理部114の各描画処理部は、当該バンド領域に含まれる描画オブジェクトの輪郭とスキャンライン(Y座標)との交点の位置座標(X座標)を、ディスプレイリストの情報から求める。次のスキャンラインにおける描画オブジェクトの輪郭の位置情報は、直前のスキャンラインにおける描画オブジェクトの輪郭の位置情報と、その輪郭の傾き(スキャンライン(Y座標)が進むたびのX座標の移動量)とで求められる。描画処理部は、この新たに求められた位置座標で描画オブジェクトの輪郭の位置座標をスキャンラインごとに逐次、更新していく。なお、この場合の当該バンドは描画処理部の描画対象ではないので、描画処理部は描画処理(ラスタデータの生成)までは行わない。
このように、描画対象でないバンドについても描画オブジェクトの位置座標を求めて更新するのは、その描画オブジェクトが描画対象となる次のバンドにも含まれることになる場合でも、描画オブジェクトを正しい位置に描画するためである。この様子は図12(a)、(b)に例示される。まず第2描画処理部402は、中間データ(DL)202に記載されている三角形の描画オブジェクト4の左辺の傾きls4を、スキャンラインが進むたびに、描画オブジェクトの輪郭の位置座標に加算していく。そうすることで、描画オブジェクト4の左辺の正しい位置が求められる。そして第2描画処理部402は、描画対象ではないバンド31の最終スキャンラインにおける描画オブジェクト4の輪郭のX座標を求めることで、バンド32の先頭スキャンラインを描画する際に、描画オブジェクト4の輪郭の正しい位置を求めることができる。
S909で、描画処理部114の各描画処理部は、RAM109に記憶された中間データ(DL)に描画対象の次のバンドがあるか否かを判定し、次のバンドがあれば(YES)、描画処理を繰り返し、次のバンドが無ければ(NO)、描画処理を終了する。中間データ(DL)は最後(EndOfPage)まで読みだされていれば、次のバンドが無いと判定される。中間データ(DL)が最後まで読みだされていなければ、次のバンドがあると判定される。
図10は、バンド単位の書き出しとブロック単位の読み出しのアクセス制御を示す図である。図10(a)は、ブロックRAM115を構成するメモリ(第1ブロックRAM411と呼ぶ)にバンド単位で並列に書き込まれる画像データを示す図である。図10(a)に示される図10(b)は、ブロックRAM115からブロック単位で読み出される画像データを示す図である。
図10(a)に示すように、バンド11のラスタデータは、描画処理部114の第1描画処理部401によって第1ブロックRAM411に書き込まれる。また、バンド12のラスタデータは、描画処理部114の第2描画処理部402によって第1ブロックRAM411に書き込まれる。ここで、ブロックRAM115は、アクセス検知装置によって、図10(a)でライトアクセス検知と示した複数のアドレス(画素位置)の全てにラスタデータが書き出されたことを検知する。特にブロックRAM115は、第1ブロックRAM411のアドレス1011および1012にラスタデータが書き出されたことを検知する。なぜなら本実施例では、スキャンラインの画素順にラスタデータが第1ブロックRAM411に書き出されるため、各バンドのラスタデータが書き出される最後のアドレスへの書き出しを検知すれば、各バンドの描画が完了したと判定できるからである。
上記した全てのアドレスに対してラスタデータの書き出しが検知された場合、ブロックRAM115は、圧縮処理部116にブロック単位の読み出しの準備が可能となったことを示す情報を通知する。この通知を受けた圧縮処理部116(第1圧縮処理部421)は、第1ブロックRAM411からのブロック単位(例:8画素×8画素)でのラスタデータの読み出しを開始する。すなわち、圧縮処理部116は、図10(b)に示すように、ブロック11〜ブロック14の順で、ラスタデータを読み出す。この読み出しにおいて、ブロックRAM115は、アクセス検知装置によって、図10(b)でリードアクセス検知と示した複数のアドレス(画素位置)1011、1012からラスタデータが読み出されたことを検知する。なぜなら、第1ブロックRAM411のアドレス1011、1012からラスタデータが読み出されたということは、各バンドのラスタデータの全てがブロック単位に分割されて読みだされということを示す。そしてつまりは、第1ブロックRAM411に空き領域ができたと判定できるからである。
この両アドレス1011、1012からラスタデータが読み出されたことを検知すると、ブロックRAM115は、描画処理部114の各描画処理部にブロックRAM115に空き領域があることを示す情報を通知する。この通知に基づいて、S906の判定が行われる。すなわちこの通知が出されると、描画処理部114の各描画処理部は、図10(a)に示したように、バンド単位の書き込みを開始する。
以上述べたように、本実施例によれば、コストアップを抑え、描画処理の並列化するための最小限のハードリソース拡張のみで描画処理を高速化できる。すなわち、ブロックRAM115を構成する第1ブロックRAM411、圧縮処理部116を構成する第1圧縮処理部421のハードリソースを拡張せずに、描画処理部114を構成する第1描画処理部401、第2描画処理部402の並列動作を可能とする。
(変形例1)
図8は、実施例1の変形例おける描画処理設定を説明するためのフローチャートである。図8は、図7で説明したフローチャートにおける変形例であるため、図7と共通する部分の説明を省略し、図7との差分のみを説明する。図8において、S801〜S804は、S701〜S704と同様であるため、説明を省略する。
次に、CPU108は、S805で、並列動作する描画処理部114の各画像処理部の性能仕様差(描画処理能力の差)を示す情報を内部レジスタから取得する。この情報は内部レジスタにCPU108が事前に記憶している。ここで、性能仕様差とは、例えば、第1描画処理部401に対する第2描画処理部402の動作周波数の比率を意味する。また、性能仕様差とは、例えば、第1描画処理部401に対する第2描画処理部402の構成するプロセッサコア数、あるいは、ハードモジュールコア数の比率を意味する。
次に、CPU108は、S806において、S805で取得した性能仕様差の比率を元に、性能仕様差の有無を判定する。ここで、性能仕様差が1:1の比率で、性能仕様差が無いと判定されれば(S806でNO)、S807に遷移し、図7におけるS705〜S706と同様に、S807〜S808の処理を実施する。
一方で、性能仕様差が例えば3:1の比率で、性能仕様差がある(つまり第1描画処理部401の描画処理能力は第2描画処理部402の描画処理能力の3倍である)と判定されれば(S807でYES)、S809に遷移する。
CPU108は、S809において、単一ブロックの高さを並列動作する描画処理部の性能仕様差となる情報に基づいて重み付けて分割する。すなわち、例えば、前述した通り、性能仕様差が例えば3:1の比率で、性能仕様差があると判定されたならば、図10(c)で示すバンド11とバンド12のように、性能仕様差の比率に合わせて、単一ブロックの高さを重み付けて分割する。つまり、CPU108は、描画処理能力がより高い描画処理部には、設定されるバンド高さをより大きいものに決定する。例えば、CPU108は、単一ブロックの高さを8画素とした場合、第1描画処理部401の描画領域の高さを6画素分、第2描画処理部402の描画領域の高さを2画素分、のように分割する。
以上述べたように、本変形例によれば、描画処理部114で並列に動作する複数の描画処理部の性能差を鑑みて、描画速度の差が小さくなるように描画領域を分割することで、並列動作の効率を高めることが可能になる。すなわち、バンド単位の描画処理を並列に実行する場合において、第1描画処理部401と第2描画処理部402のいずれか遅い方に律速した場合に生じる待ち時間を短縮することができる。
(変形例2)
図10(a)に示した単一ブロックの高さを並列動作数で均等に分割する方法として、図10(d)あるいは図10(e)に示すように並列動作数の更に整数倍をもって均等に分割する方法を採用しても良い。すなわち、バンド高さが小さくなるので、バンド単位が細かくなる。例えば、図10(d)の場合、8画素×8画素のブロック単位を描画する描画処理部の並列動作数が2であるのに対して、その2倍の4で均等に分割する。そこにおいて、第1描画処理部401がバンド11及びバンド13を描画し、第2描画処理部402がバンド12及びバンド14を描画するように制御する。あるいは、例えば、図10(e)の場合、8画素×8画素のブロック単位を描画する描画処理部の並列動作数が2であるのに対して、その4倍の8で均等に分割する。そこにおいて、第1描画処理部401がバンド11、バンド13、バンド15、バンド17を描画し、第2描画処理部402がバンド12、バンド14、バンド16、バンド18を描画するように制御する。すなわち、複数の描画処理部は、高さ方向に沿った順番で、繰り返して(交互に)バンドのラスタデータを生成している。
以上述べたように、本変形例によれば、描画処理部114で並列に動作する複数の描画処理部の演算量の差が小さくなるように描画領域を分割することで、並列動作の効率を高めることが可能になる。すなわち、バンド単位の描画処理を並列に実行する場合において、バンドの高さを小さくしていくことで、各バンドに含まれるオブジェクトの数のばらつきを緩和することができる。こうすることで、第1描画処理部401と第2描画処理部402の描画処理にかかる演算量が均一化され、第1描画処理部401と第2描画処理部402のいずれか遅い方に律速した場合に生じる待ち時間を短縮することができる。
(変形例3)
図11は、実施例1の本変形例で定義したページ内のブロックとバンドの関係の例を示すものである。前述した通り、ブロックとは、ページ単位の画像データを画像形成装置内で分割して扱う単位としての矩形領域であって、例えば、32画素×32画素の正方形タイル形状を有するものである。一方で、バンドとは、前述した通り、ブロックよりも主走査方向の画素数が大きく、副走査方向の画素数が小さい矩形領域であって、例えば、図11(b)や図11(d)に示すものである。ここで、図11(a)の関係は、ブロックがバンドに包含される位置関係であるが、本変形例は、図11(a)、図11(b)、図11(d)を画像形成装置の描画処理設定によって切り替えることを含むものとする。なお図11(a)、(b)、(d)に示されるいずれのバンドの幅は、印刷データに対応するページの幅と等しい。
また、本発明は、描画処理のバンドのバンド幅をページの幅に限定せず、バンド幅がページ幅よりも小さくても良い。すなわち図11(c)や図11(e)のように、バンド単位を主走査方向で分割しても良い。この場合、主走査方向に分割されたバンドを図(c)、(e)に示されるところの、左側の複数のバンドをブロックRAM115に描画し、その左側の複数のバンドのラスタデータについて圧縮処理部116によるブロック分割を行うことができる。そしてブロック分割が完了した後に、右側の複数のバンドについても同様に、ブロックRAM115に複数のバンドを描画し、ブロック分割を行うようにする。このように、描画処理の対象となるバンド単位を主走査方向に分割することで、ブロックRAM115で必要とするメモリ容量を更に削減することができる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。

Claims (18)

  1. 印刷データから所定の高さの第1の矩形領域のラスタデータを生成し、当該生成された前記第1の矩形領域のラスタデータを記憶手段に記憶する複数の描画手段と、
    前記記憶手段に記憶された前記第1の矩形領域のラスタデータから前記所定の高さの第2の矩形領域のラスタデータを取得し、当該取得された前記第2の矩形領域のラスタデータに画像処理を行う処理手段と、
    を有し、
    前記複数の描画手段のそれぞれは、前記第1の矩形領域のラスタデータに含まれる別々の部分のラスタデータを生成することを特徴とする画像処理装置。
  2. 前記複数の描画手段のそれぞれは、前記第2の矩形領域のラスタデータに含まれる別々の部分のラスタデータを生成することを特徴とする請求項1に記載の画像処理装置。
  3. 前記複数の描画手段のそれぞれは、前記所定の高さよりも小さい高さ、且つ、前記第1の矩形領域の幅と等しい幅の矩形領域のラスタデータを生成することを特徴とする請求項1または2に記載の画像処理装置。
  4. 前記所定の高さよりも小さい高さは、前記所定の高さを前記複数の描画手段の数に基づいて決定されることを特徴とする請求項3に記載の画像処理装置。
  5. 前記所定の高さよりも小さい高さは、前記所定の高さを前記複数の描画手段の数で割った高さであることを特徴とする請求項4に記載の画像処理装置。
  6. 前記所定の高さよりも小さい高さは、前記所定の高さよりも小さい該高さ、且つ、前記第1の矩形領域の幅と等しい前記幅の矩形領域のラスタデータを生成する描画手段の描画処理能力に基づいて決定されることを特徴とする請求項3に記載の画像処理装置。
  7. 前記複数の描画手段のそれぞれは、それぞれに対応する矩形領域のラスタデータを、高さ方向に沿って順番に繰り返して生成することを特徴とする請求項3乃至6の何れか1項に記載の画像処理装置。
  8. 前記第1の矩形領域の幅は、前記印刷データに対応するページの幅と等しいことを特徴とする請求項1乃至7の何れか1項に記載の画像処理装置。
  9. 前記第1の矩形領域の幅は、前記印刷データに対応するページの幅よりも小さいことを特徴とする請求項1乃至7の何れか1項に記載の画像処理装置。
  10. 前記第1の矩形領域の幅は、前記第2の矩形領域の幅以上であることを特徴とする請求項1乃至9の何れか1項に記載の画像処理装置。
  11. 前記複数の描画手段によって前記第1の矩形領域のラスタデータが前記記憶手段に記憶されたことを検知すると、前記処理手段に所定の情報を通知する検知手段を有し、
    前記処理手段は、前記所定の情報の通知に基づいて、前記画像処理を開始することを特徴とする請求項1乃至10の何れか1項に記載の画像処理装置。
  12. 前記検知手段は、前記処理手段によって前記第2の矩形領域のラスタデータが前記記憶手段から取得されたことを検知すると、前記複数の描画手段に前記所定の情報とは異なる別の情報を通知し、
    前記複数の描画手段は、前記別の情報の通知に基づいて、前記印刷データから、前記第1の矩形領域とは異なる前記所定の高さの矩形領域のラスタデータの生成を開始し、
    前記複数の描画手段のそれぞれは、前記異なる矩形領域のラスタデータに含まれる別々の部分のラスタデータを生成することを特徴とする請求項11に記載の画像処理装置。
  13. 前記複数の描画手段の数は、2つであることを特徴とする請求項1乃至12の何れか1項に記載の画像処理装置。
  14. 前記画像処理は、圧縮処理であることを特徴とする請求項1乃至13の何れか1項に記載の画像処理装置。
  15. 印刷データからラスタデータを生成する複数の描画手段と、
    前記生成されたラスタデータを複数の矩形領域のラスタデータに分割する分割手段と、
    前記分割された矩形領域のラスタデータ単位で画像処理を行う処理手段と、
    を有し、
    前記複数の描画手段のそれぞれは、前記分割により得られる1つの矩形領域のラスタデータに含まれる別々の部分のラスタデータを生成することを特徴とする画像形成装置。
  16. 前記複数の描画手段のそれぞれは、前記印刷データに対応するページが副走査方向に分割された複数のバンドのうち、他の描画手段が描画対象とするバンドとは異なるバンドのラスタデータを生成することで、前記別々の部分のラスタデータを生成することを特徴とする請求項15に記載の画像形成装置。
  17. 印刷データから所定の高さの第1の矩形領域のラスタデータを生成し、当該生成された前記第1の矩形領域のラスタデータを記憶手段に記憶する複数の描画工程と、
    前記記憶手段に記憶された前記第1の矩形領域のラスタデータから前記所定の高さの第2の矩形領域のラスタデータを取得し、当該取得された前記第2の矩形領域のラスタデータに画像処理を行う処理工程と、
    を有し、
    前記複数の描画工程のそれぞれは、並列して、前記第1の矩形領域のラスタデータに含まれる別々の部分のラスタデータを生成することを特徴とする画像処理方法。
  18. 請求項1乃至16の何れか1項に記載の各手段としてコンピュータを機能させるためのプログラム。
JP2014199178A 2014-09-29 2014-09-29 画像処理装置、画像処理方法、プログラム Active JP6544905B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2014199178A JP6544905B2 (ja) 2014-09-29 2014-09-29 画像処理装置、画像処理方法、プログラム
PCT/JP2015/004728 WO2016051703A1 (en) 2014-09-29 2015-09-16 Image processing apparatus, image processing method, and storage medium
CN201580052845.8A CN106716984B (zh) 2014-09-29 2015-09-16 图像处理装置、图像处理方法及存储介质
US15/515,095 US10089561B2 (en) 2014-09-29 2015-09-16 Generating a raster image region by rendering in parallel plural regions of smaller height and segmenting the generated raster image region into plural regions of smaller width

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014199178A JP6544905B2 (ja) 2014-09-29 2014-09-29 画像処理装置、画像処理方法、プログラム

Publications (2)

Publication Number Publication Date
JP2016071545A true JP2016071545A (ja) 2016-05-09
JP6544905B2 JP6544905B2 (ja) 2019-07-17

Family

ID=55629778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014199178A Active JP6544905B2 (ja) 2014-09-29 2014-09-29 画像処理装置、画像処理方法、プログラム

Country Status (4)

Country Link
US (1) US10089561B2 (ja)
JP (1) JP6544905B2 (ja)
CN (1) CN106716984B (ja)
WO (1) WO2016051703A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112394887A (zh) * 2019-08-17 2021-02-23 森大(深圳)技术有限公司 Onepass打印数据高效率处理方法、装置、设备及存储介质
WO2023070291A1 (en) * 2021-10-25 2023-05-04 Shanghaitech University Systems and methods for image rendering

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5594860A (en) * 1995-01-27 1997-01-14 Varis Corporation Method for banding and rasterizing an image in a multiprocessor printing system
JP2000238349A (ja) * 1999-02-24 2000-09-05 Nec Corp 画像形成装置及び方法
JP2004072683A (ja) * 2002-08-09 2004-03-04 Canon Inc 画像処理装置、プリントシステム、及び制御プログラム
JP2011158951A (ja) * 2010-01-29 2011-08-18 Konica Minolta Business Technologies Inc 画像処理装置、プログラム及び画像処理方法
JP2012185697A (ja) * 2011-03-07 2012-09-27 Canon Inc 画像処理装置、画像処理方法及びプログラム
JP2013119242A (ja) * 2011-12-08 2013-06-17 Canon Inc 画像形成装置、画像形成方法、およびプログラム
JP2014053822A (ja) * 2012-09-07 2014-03-20 Canon Inc 画像処理装置、その制御方法、及びプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619624A (en) * 1994-05-20 1997-04-08 Management Graphics, Inc. Apparatus for selecting a rasterizer processing order for a plurality of graphic image files
JP4891273B2 (ja) * 2008-01-30 2012-03-07 キヤノン株式会社 画像形成装置及びその制御方法
JP2012081626A (ja) * 2010-10-08 2012-04-26 Ricoh Co Ltd 画像形成装置、画像処理方法、プログラム
JP6445899B2 (ja) * 2015-02-26 2018-12-26 キヤノン株式会社 画像形成装置及びその制御方法
JP6506577B2 (ja) * 2015-03-17 2019-04-24 キヤノン株式会社 画像処理装置及び方法及び画像記録装置
US10552717B2 (en) * 2016-03-16 2020-02-04 Canon Kabushiki Kaisha Image processing apparatus, control method thereof, and storage medium
JP6385406B2 (ja) * 2016-09-21 2018-09-05 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
JP6772020B2 (ja) * 2016-10-06 2020-10-21 キヤノン株式会社 画像処理装置、画像処理装置の制御方法、及びプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5594860A (en) * 1995-01-27 1997-01-14 Varis Corporation Method for banding and rasterizing an image in a multiprocessor printing system
JP2000238349A (ja) * 1999-02-24 2000-09-05 Nec Corp 画像形成装置及び方法
JP2004072683A (ja) * 2002-08-09 2004-03-04 Canon Inc 画像処理装置、プリントシステム、及び制御プログラム
JP2011158951A (ja) * 2010-01-29 2011-08-18 Konica Minolta Business Technologies Inc 画像処理装置、プログラム及び画像処理方法
JP2012185697A (ja) * 2011-03-07 2012-09-27 Canon Inc 画像処理装置、画像処理方法及びプログラム
JP2013119242A (ja) * 2011-12-08 2013-06-17 Canon Inc 画像形成装置、画像形成方法、およびプログラム
JP2014053822A (ja) * 2012-09-07 2014-03-20 Canon Inc 画像処理装置、その制御方法、及びプログラム

Also Published As

Publication number Publication date
CN106716984A (zh) 2017-05-24
US10089561B2 (en) 2018-10-02
US20170206628A1 (en) 2017-07-20
WO2016051703A1 (en) 2016-04-07
JP6544905B2 (ja) 2019-07-17
CN106716984B (zh) 2019-10-15

Similar Documents

Publication Publication Date Title
US10762401B2 (en) Image processing apparatus controlling the order of storing decompressed data, and method thereof
US8855438B2 (en) Image processing apparatus, image processing method of image processing apparatus, and program
US9600747B2 (en) Image forming apparatus and control method that execute a plurality of rendering processing units in parallel
JP6447564B2 (ja) 画像形成装置、プログラム及び情報処理システム
JP6544905B2 (ja) 画像処理装置、画像処理方法、プログラム
US10325189B2 (en) Image processing apparatus and image processing method that perform, in units of band areas, rasterization based on second intermediate data stored in a first memory area and compressed raster data stored in a second memory area
JP6655963B2 (ja) 画像処理装置、画像処理装置の制御方法。
JP2011139355A (ja) 情報処理装置、画像圧縮方法、及びコンピュータプログラム
US10552717B2 (en) Image processing apparatus, control method thereof, and storage medium
JP6904717B2 (ja) 画像処理装置、その制御方法、およびプログラム
JP2016206934A (ja) 画像処理装置、画像処理方法及びプログラム
JP4200884B2 (ja) 画像伸長装置及びその方法、画像処理システム
JP2007200232A (ja) 画像処理装置および画像形成装置
JP6775558B2 (ja) 画像伸長装置及びその制御方法及びプログラム
JP2006215918A (ja) 画像処理装置および画像処理方法
JP4182428B2 (ja) 画像伸長装置及びその方法、画像処理システム
US20190310810A1 (en) Image processing apparatus and image processing method
JP2016055536A (ja) 画像形成装置、プログラム、および画像形成装置の制御方法
JP2020090075A (ja) 画像形成装置および、画像形成方法
JP5671635B2 (ja) 画像処理装置及びその制御方法
US20180053074A1 (en) Image processing apparatus that performs pixel synthesis processing and image processing method
JP6264757B2 (ja) 画像形成装置、画像形成システム、画像形成装置の制御方法、及び画像形成装置の制御プログラム
JP2019211963A (ja) 情報処理装置、情報処理方法、及びプログラム
JP2018130857A (ja) 画像処理装置、画像処理方法、及びプログラム
JP2016052724A (ja) 画像処理装置、画像処理方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181227

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190618

R151 Written notification of patent or utility model registration

Ref document number: 6544905

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151