JP6636083B2 - 画像処理装置、制御方法、及びプログラム - Google Patents
画像処理装置、制御方法、及びプログラム Download PDFInfo
- Publication number
- JP6636083B2 JP6636083B2 JP2018095500A JP2018095500A JP6636083B2 JP 6636083 B2 JP6636083 B2 JP 6636083B2 JP 2018095500 A JP2018095500 A JP 2018095500A JP 2018095500 A JP2018095500 A JP 2018095500A JP 6636083 B2 JP6636083 B2 JP 6636083B2
- Authority
- JP
- Japan
- Prior art keywords
- intermediate data
- raster image
- group
- rendering
- objects
- 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.)
- Active
Links
Images
Landscapes
- Image Generation (AREA)
Description
(画像処理装置100の構成)
図1は、実施例1における画像処理装置100の構成を示すブロック図である。画像処理装置は、入力部101と、解釈部102と、ラスタ画像処理部103と、出力部104とから成る。入力部101は、画像処理装置100に接続されている外部装置から入力データを受け取る。解釈部102は、入力部101で受け取った入力データを解釈して描画命令を抽出し、背面から前面への描画順に描画命令をソートする。実施例1における入力データはPDL(Page Description Language)で記述されたPDLデータである。入力データの好適なフォーマットは非特許文献2に記載のPDFであり、好適な描画命令は該PDFのオブジェクトである。ラスタ画像処理部103は、解釈部102により抽出された描画命令に基づきラスタ画像を生成する。出力部104は、ラスタ画像処理部103により生成されたラスタ画像に対して、ハーフトーン処理等の画像処理を施して出力データを生成し、該生成した出力データを出力する。
図2は、画像処理装置100におけるデータフローを示す図である。ラスタ画像処理部103は、中間データ生成部200と、レンダリング部201と、合成部202とから成る。中間データ生成部200は、描画命令204から中間データ205を生成する。レンダリング部201は、中間データ205をレンダリングしてラスタ画像206を生成する。中間データ生成部200及びレンダリング部201は、夫々の処理において、合成部202を用いて中間データの合成処理を行う。
図3は、中間データ生成部200により実行される処理のフローチャートである。ステップS300(以降、「ステップS300」を「S300」と略記し、他のステップも同様に略記する。)で、中間データ205のデータサイズが予め定めた閾値以上であるか否かを判断する。中間データ205のデータサイズが閾値以上であると判断した場合、S301で、合成部202を用いて中間データ205を合成し、フラット化したラスタ画像を新たな描画命令にする。中間データ205のデータサイズが閾値以上ではないと判断した場合、又は、S301で中間データ205を合成すると、次にS302で、描画命令204のうち1つを取り出す。次いで、S303で該取り出した描画命令からオブジェクトの描画座標を計算し、S304でオブジェクトのFill情報を生成する。このオブジェクトの描画座標の計算では、ページ座標系から出力座標系への変換を行う。また、オブジェクトがベクタ形式であれば、オブジェクトの輪郭の座標を出力座標系で求める。次いで、S305で、オブジェクトの座標情報及びFill情報に基づき中間データを更新する。ここで未だ中間データを生成していなかった場合には、中間データを新規生成する。次いで、S306で、描画命令204を全て取り出したか否かを判断する。描画命令204を全て取り出していないと判断した場合、S300に戻る。描画命令204を全て取り出していると判断した場合、処理を終了する。
以下、中間データ205を詳細に説明する。
以下、レンダリング部201が中間データ205をレンダリングしてラスタ画像206を生成する処理を説明する。
図11は、S1003で合成部202を使って合成スタックに含まれる合成ノードを合成する処理のフローチャートである。なお、スタックにおけるpushとpopの操作は、当該スタックのトップに存在するノードに対して行われるものとする。また、一時データへのデータ格納は上書きで行われるものとする。まずS1100で、合成スタックに合成ノードが2つ以上あるか否かを判断する。判断の結果、合成スタックに合成ノードが2つ以上ある場合、S1101に進み、合成スタックに合成ノードが2つ以上ない場合、処理を終了する。S1101で、合成スタックから合成ノードをpopして、一時データDestとして格納する。次いで、S1102に進む。S1102で、さらに合成スタックから合成ノードをpopして、一時データSrcとして格納する。次いで、S1103に進む。S1103で、一時データSrcがグループノードか否かを判断する(グループノードについては後で詳しく説明する)。判断の結果、Srcがグループノードである場合、S1104に進み、そうでない場合、S1105に進む。ここではグループノードが存在しないものとして説明する(S1103→S1105)。Srcがグループノードでない場合、S1105で、SrcとDestとの合成演算子709に従って、SrcとDestとの合成結果を計算して、該計算結果を一時データResとして格納する。次いで、S1106に進む。S1106で、Srcとして格納された合成ノードに対する参照カウント803を更新する。次いで、S1107に進む。S1107で、Destとして格納された合成ノードに対する参照カウント803を更新する。次いで、S1108に進む。S1108で、Resとして格納されたノードのFill情報がFillテーブル800にあるか否かを判断する。判断の結果、Resして格納されたノードのFill情報がFillテーブル800にある場合、S1110に進み、Resして格納されたノードのFill情報がFillテーブル800にない場合、S1109に進む。S1109で、Resとして格納されたノードに対応するFill識別子と、Fill情報と、参照カウントとを、Fillテーブル800に追加する。次いで、S1110に進む。S1110で、Resとして格納された合成ノードを合成スタックにpushする。次いで、S1100に戻る。S1100で、合成スタックに合成ノードが2つ以上ないと判断された場合、即ち、合成スタックに合成ノードが1つだけ残っている場合に、処理を終了する。処理を終了する際に、Src、Dest、Resとして格納されていた一時データは破棄される。
図12は、S1106及びS1107における、参照カウント803の更新処理のフローチャートである。まずS1200で、対応する参照カウント803を1つ減らす。次いで、S1201に進む。S1201で、参照カウントが0になったか否かを判断する。判断の結果、参照カウントが0になった場合、S1202に進み、参照カウントが0になっていない場合、処理を終了する。S1202で、対応するFill識別子801と、Fill情報802と、参照カウント803との項目を、Fillテーブル800から行ごと削除し、処理を終了する。
以下、グループについて説明する。
図11のS1103でSrcがグループノードであると判断した場合、S1104でグループノードを処理して、S1100に戻る。図15は、S1104の詳細なフローチャートである。まずS1500で、グループノードがグループスタートであるか否かを判断する。判断の結果、グループノードがグループスタートである場合、S1501に進み、グループノードがグループスタートではない(即ち、グループノードがグループエンドである)場合、S1507に進む。S1501で、グループ演算子を参照して合成方法がKnockoutであるか否かを判断する。判断の結果、合成方法がKnockoutである場合、S1502に進み、合成方法がKnockoutではない場合、S1503に進む。S1502で、グループの最前面以外のグループ要素を削除する。次いで、S1503に進む。S1503で、グループ演算子を参照して合成方法がIsolatedであるか否かを判断する。判断の結果、合成方法がIsolatedである場合、S1504に進み、合成方法がIsolatedではない場合、S1505に進む。S1504で、完全に透明な合成ノードを作成し、合成スタックにpushする。次いで、S1506に進む。一方、S1503の判断の結果、合成方法がIsolatedではない場合、S1505で、Destのコピーの合成ノードを作成し、合成スタックにpushする。次いで、S1506に進む。S1504又はS1505で、合成スタックに合成ノードをpushすると、続いてS1506で、Destをグループスタックという一時スタックにpushして、処理を終了する。なお、グループスタックは初期状態で空である。S1500で、グループノードがグループスタートではない(即ち、グループノードがグループエンドである)と判断した場合、S1507で、Destを合成スタックにpushする。次いで、S1508に進む。S1508で、グループスタックから合成ノードをpopして、該popした合成ノードを合成スタックにpushして、処理を終了する。
以下、フラット化について説明する。
グループの合成方法がIsolatedのときに、合成処理を行う色空間をグループ演算子で指定するようにしてもよい。
本発明の目的は、前述した実施例の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システム又は装置に供給し、システム又は装置(具体的にはCPUやMPU)がプログラムコードを読み出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
Claims (10)
- 入力された描画命令からラスタ画像を生成する画像処理装置であって、
前記描画命令から中間データを生成する中間データ生成手段と、
前記中間データをレンダリングして前記ラスタ画像を生成するレンダリング手段と
を有し、
前記レンダリング手段は、グループを構成する複数のオブジェクトを合成して前記ラスタ画像を生成する場合であって、前記グループの合成方法として所定の合成方法が指定されている場合には、前記複数のオブジェクトと所定の合成データとを合成して当該ラスタ画像を生成し、
前記レンダリング手段は、前記描画命令の一部から生成された中間データに基づいてラスタ画像を生成する処理を行い、前記描画命令の残りの少なくとも一部から生成された中間データと前記処理によって生成された当該ラスタ画像とに基づいて新たなラスタ画像を生成し、
前記レンダリング手段は、前記グループの合成方法として前記所定の合成方法が指定されている場合、前記複数のオブジェクトのうちの一部のみのオブジェクトの中間データに基づいて前記処理を行って生成したラスタ画像と、前記複数のオブジェクトのうち残りの少なくとも一部のオブジェクトの中間データとに基づいて新たなラスタ画像を生成する際に、前記所定の合成データの合成を行わないことを特徴とする画像処理装置。 - 入力された描画命令からラスタ画像を生成する画像処理装置であって、
前記描画命令から中間データを生成する中間データ生成手段と、
前記中間データをレンダリングして前記ラスタ画像を生成するレンダリング手段と
を有し、
前記レンダリング手段は、前記描画命令の一部から生成された中間データに基づいてラスタ画像を生成する処理を行い、前記描画命令の残りの少なくとも一部から生成された中間データと前記処理によって生成された当該ラスタ画像とに基づいて新たなラスタ画像を生成し、
前記レンダリング手段は、グループを構成する複数のオブジェクトの全体と背景オブジェクトを含む中間データに基づいて前記処理を行う場合には、前記複数のオブジェクトの全体と背景オブジェクトを合成してラスタ画像を生成し、グループを構成する複数のオブジェクトの一部のみのオブジェクトと背景オブジェクトを含む中間データに基づいて前記処理を行う場合には、前記背景オブジェクトを前記処理の対象外とすることを特徴とする画像処理装置。 - 前記中間データ生成手段が生成した前記中間データを保持する保持手段を有し、
前記レンダリング手段は、前記保持手段が保持する前記中間データのデータサイズが閾値を超える場合に、前記保持手段に保持された前記中間データに基づいて前記処理を実行することを特徴とする請求項1又は2に記載の画像処理装置。 - 前記レンダリング手段は、前記グループの合成方法として前記所定の合成方法が指定されている場合、前記複数のオブジェクトのうちの一部のみのオブジェクトの中間データに基づいて前記処理を行って前記ラスタ画像を生成する際に、前記合成データの合成を行い、前記処理を行って生成した前記ラスタ画像と前記複数のオブジェクトのうち残りの少なくとも一部のオブジェクトの中間データとに基づいて新たなラスタ画像を生成する際には、前記所定の合成データの合成を行わないことを特徴とする請求項1に記載の画像処理装置。
- 前記所定の合成方法はKnockoutであることを特徴とする請求項1に記載の画像処理装置。
- 前記所定の合成方法はIsolatedであり、前記所定の合成データは透明な合成データであることを特徴とする請求項1に記載の画像処理装置。
- 前記描画命令はPDLデータから抽出され、前記PDLデータは、PDFで表現されることを特徴とする請求項1乃至6の何れか一項に記載の画像処理装置。
- 入力された描画命令からラスタ画像を生成する画像処理装置の制御方法であって、
前記描画命令から中間データを生成する中間データ生成ステップと、
前記中間データをレンダリングして前記ラスタ画像を生成するレンダリングステップと
を有し、
前記レンダリングステップにおいて、グループを構成する複数のオブジェクトを合成して前記ラスタ画像を生成する場合であって、前記グループの合成方法として所定の合成方法が指定されている場合には、前記複数のオブジェクトと所定の合成データとを合成して当該ラスタ画像を生成し、
前記レンダリングステップにおいて、前記描画命令の一部から生成された中間データに基づいてラスタ画像を生成する処理を行い、前記描画命令の残りの少なくとも一部から生成された中間データと前記処理によって生成された当該ラスタ画像とに基づいて新たなラスタ画像を生成し、
前記レンダリングステップにおいて、前記グループの合成方法として前記所定の合成方法が指定されている場合、前記複数のオブジェクトのうちの一部のみのオブジェクトの中間データに基づいて前記処理を行って生成したラスタ画像と、前記複数のオブジェクトのうち残りの少なくとも一部のオブジェクトの中間データとに基づいて新たなラスタ画像を生成する際に、前記所定の合成データの合成を行わないことを特徴とする制御方法。 - 入力された描画命令からラスタ画像を生成する画像処理装置の制御方法であって、
前記描画命令から中間データを生成する中間データ生成ステップと、
前記中間データをレンダリングして前記ラスタ画像を生成するレンダリングステップとを有し、
前記レンダリングステップにおいて、前記描画命令の一部から生成された中間データに基づいてラスタ画像を生成する処理を行い、前記描画命令の残りの少なくとも一部から生成された中間データと前記処理によって生成された当該ラスタ画像とに基づいて新たなラスタ画像を生成し、
前記レンダリングステップにおいて、グループを構成する複数のオブジェクトの全体と背景オブジェクトを含む中間データに基づいて前記処理を行う場合には、前記複数のオブジェクトの全体と背景オブジェクトを合成してラスタ画像を生成し、グループを構成する複数のオブジェクトの一部のみのオブジェクトと背景オブジェクトを含む中間データに基づいて前記処理を行う場合には、前記背景オブジェクトを前記処理の対象外とすることを特徴とする制御方法。 - コンピュータを、請求項1乃至7の何れか一項に記載の画像処理装置として機能させるための、プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018095500A JP6636083B2 (ja) | 2018-05-17 | 2018-05-17 | 画像処理装置、制御方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018095500A JP6636083B2 (ja) | 2018-05-17 | 2018-05-17 | 画像処理装置、制御方法、及びプログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014079721A Division JP6341732B2 (ja) | 2014-04-08 | 2014-04-08 | 印刷装置、印刷方法、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018152113A JP2018152113A (ja) | 2018-09-27 |
JP6636083B2 true JP6636083B2 (ja) | 2020-01-29 |
Family
ID=63680438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018095500A Active JP6636083B2 (ja) | 2018-05-17 | 2018-05-17 | 画像処理装置、制御方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6636083B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021115764A (ja) | 2020-01-24 | 2021-08-10 | キヤノン株式会社 | 画像処理装置、画像処理方法 |
-
2018
- 2018-05-17 JP JP2018095500A patent/JP6636083B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018152113A (ja) | 2018-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4365950B2 (ja) | 高速ラスタ形式レンダリングのためのグラフィックオブジェクト処理方法および装置 | |
JP3667025B2 (ja) | 解像度変換モジュールとそれが組み込まれたプリンタドライバ、及びその画像解像度変換方法 | |
JP4343344B2 (ja) | ラスタ形式のグラフィックオブジェクトを用いたイメージの高速レンダリング方法 | |
US7755629B2 (en) | Method of rendering graphic objects | |
US7593012B2 (en) | Graphics image generation method, program and statistical data drawing apparatus | |
US7692652B2 (en) | Selectively transforming overlapping illustration artwork | |
JPH0251786A (ja) | 走査変換方法 | |
US6252677B1 (en) | Method and apparatus for rendering object oriented image data using multiple rendering states selected based on imaging operator type | |
US5966136A (en) | Efficient method for clipping numerous objects against an arbitrary clipping path | |
US7719538B1 (en) | Assignments for parallel rasterization | |
EP0706689A1 (en) | Method and apparatus for defining and selectively repeating unit image cells | |
JP6636083B2 (ja) | 画像処理装置、制御方法、及びプログラム | |
JP5675445B2 (ja) | 情報処理装置、情報処理装置の制御方法、及びコンピュータプログラム | |
JPH01304588A (ja) | クリッピング処理方式 | |
JP6341732B2 (ja) | 印刷装置、印刷方法、及びプログラム | |
JP4646436B2 (ja) | デジタル画像の画像処理装置 | |
AU2007203061A1 (en) | Efficient banded hybrid rendering | |
JP4143613B2 (ja) | 描画方法、描画装置 | |
JP2009054001A (ja) | 画像処理装置及びプログラム | |
JP4109740B2 (ja) | 畳み込み走査ラインレンダリング | |
JP3110041B2 (ja) | 画像情報処理装置 | |
KR102076550B1 (ko) | 스프레드시트 편집 장치 및 방법 | |
US20060104544A1 (en) | Automatic image feature embedding | |
JP6218643B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
US9953249B2 (en) | Method and system for generating a drawing order list for multiple drawing objects based on scanlines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180618 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190610 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190618 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190814 |
|
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: 20191119 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191217 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6636083 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |