JP5968497B2 - 制御方法、システム及びプログラム - Google Patents
制御方法、システム及びプログラム Download PDFInfo
- Publication number
- JP5968497B2 JP5968497B2 JP2015094891A JP2015094891A JP5968497B2 JP 5968497 B2 JP5968497 B2 JP 5968497B2 JP 2015094891 A JP2015094891 A JP 2015094891A JP 2015094891 A JP2015094891 A JP 2015094891A JP 5968497 B2 JP5968497 B2 JP 5968497B2
- Authority
- JP
- Japan
- Prior art keywords
- edge extraction
- cores
- execution
- processing
- edge
- 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
Description
図1は、従来のレンダラの処理の一例を示す図である。ここでは入力図形をバンドに分割して処理を行っている。グラフィックス処理を実行するにあたり、このようなシステムで問題となるのは、多くのグラフィックスオブジェクトが入力された場合にレンダリング速度の低下が発生することである。そこで図1にあるようにバンドで分割された場合の処理では、それぞれのバンドに対して独立した処理単位(スレッド)を割り当てることで処理速度の向上を試みるものが提案されている(特許文献2)。
図2は、画像処理装置のハードウェア構成の一例を示す図である。
図2において、CPU101は、ROM103又はハードディスク111からRAM102にロードされたOSや一般アプリケーション等のプログラムを実行し、後述するソフトウェアの機能及びフローチャートの処理を実現する。
RAM102は、CPU101の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)105は、キーボード109や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)106は、CRTディスプレイ110の表示を制御する。ディスクコントローラ(DKC)107は、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル等を記憶するハードディスク(HD)111やフレキシブルディスク(FD)等とのアクセスを制御する。PRTC108は、接続されたプリンタ107との間の信号の交換を制御する。NC112は、ネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。
なお、本実施形態では、以下に示す画像処理装置の機能は、ソフトウェアにより実現されるものと説明するが、各機能を専用のハードウェアで画像処理装置に実装するようにしても良い。
なお、本実施形態のCPU101は、マルチコアのCPUであるものとする。画像処理装置が、複数のCPUを有していても良い。
図4は、各図形においてエッジ抽出処理を各々独立に適用した場合の概念図である。ページ上の図形ごとにエッジ抽出処理を実施する様子を示している。図形ごとに抽出されたエッジ情報は再度ページ上の座標にマップされ合成処理がなされる。それぞれの処理は各々依存性がないために独立に実行することが出来る。つまり、図形のデータが入力された後、各図形のエッジ抽出の処理、及び各抽出処理後のデータをマージする処理(データ合成)それぞれについて複数のスレッドを割り当てることが可能である。スレッドの処理はそれを実行するユニット(CPUコア)にマップされ各コアが時間独立に処理を実行することで、並列で動作することが出来る。
更には、本実施形態のレンダラではコアの割り振りを決定するに際し、各データの分析した結果(例えば、PDL関連情報)に基づいて割り当てを決定するコア管理機構を有し、制御に基づいて並列処理を行う。システム上利用可能なコア数が多い場合に、処理の効率を更に高める目的で、PDLデータの受け取り処理の部分においては各図形の基本情報であるPDL関連情報を抽出する。そして、レンダラは、ベクタライズ等の処理を後段のパイプライン処理にマップすることでデータ処理の負荷分散を図るよう構成されており、コア数が増大した場合でもスケーラブルに性能が向上する。
図5は、画像処理装置のソフトウェア構成(システム構成)等の一例を示す図である。図にあるようにPDLデータは、描画インターフェースを経由して、RIPシステム側に受け渡される。RIPシステム側では「データ受け取り」の処理ブロックが図形、文字、画像等のPDLオブジェクトを受け取り、不図示の内部スプーラに適時データを蓄えた後に後段の処理ユニットにデータを流すよう構成されている。PDLオブジェクトが図形等であった場合は、「データ受け取り」は、図5にあるエッジ抽出処理(スレッド)にデータを受け渡す。一方、PDLオブジェクトがイメージであった場合は、「データ受け取り」は、画像処理(スレッド)にデータを受け渡す。図形がページに複数存在する場合は、それぞれに対してエッジ抽出処理が割り当てられる。それぞれのエッジ抽出処理で抽出されたエッジデータは、適宜後段のデータ合成処理(スレッド)に渡され、ページ上に合成(重ね合わせの処理)がなされると同時にタイル状のデータにフォーマットされた上でスプーラにRIP中間データとして書き出される。タイル上にフォーマットされたRIP中間データは更に後段のタイル処理(スレッド)により各タイルにおいてピクセルの展開処理が行われる。それぞれのタイルの処理は、時間独立で実行がなされる。
まず、ステップS11では、「エッジ抽出処理」は、入力された図形のデータについて初期化処理を行う。この処理の中では、「エッジ抽出処理」は、スキャンの範囲等を決定し後段の処理が実行出来るよう、ループ数のパラメータ群をセットする。
次にステップS12において、「エッジ抽出処理」は、スキャンラインのY方向へのループ処理を開始する。ステップS13では、「エッジ抽出処理」は、現在のスキャンラインにかかる図形(図形の輪郭を形成する辺のデータ)を拾い出し、かつ、スキャンライン上に存在するエッジ情報(カレントのエッジデータリスト)を、更新する必要があるか否かを判断する。「エッジ抽出処理」は、もし更新の必要がなければステップS17へ進むが更新の必要があれば、ステップS14へ進む。
ステップS17は、カレントのスキャンラインにおけるX方向のエッジ情報を抽出するための処理である。ステップS18では、「エッジ抽出処理」は、エッジデータリスト上の各ノードに順次アクセスしていく。エッジ情報は、カレント(Y値)のスキャンラインにおけるデータ値(DA)を線分の傾き等の情報から更新するよう構成されており、データの更新処理はステップS19にて、実行される。ステップS20の処理は、Xループのためのカウンタ減算処理である。ステップS21では、「エッジ抽出処理」は、X方向ループの終了有無を判定する。ステップS17からステップ21mではX方向のループであったが、ステップS12からステップS22まではY方向のループであり、これら二重のループにて平面上の図形の輪郭情報(エッジ情報)を抽出するよう構成されている。
本実施形態の処理方式では、重なりの状況によって、領域に関して保持すべき色情報の数が増えることもある。例えば図形1が赤の単色(不透明)で塗られており、図形2が青の単色(透過)で塗られている場合で、かつ、図形2が図形1の上に重なっている場合は透過合成の計算により重なっている領域の色が計算される。例えば、青と赤とを合成すると紫となるため、スレッド3の処理においては赤、青、紫の色情報が保持される。
このグラフの例では、CPU1コアのシステムでは1ページ分の処理時間はトータルで700ms必要であって、その内訳は、PDL処理に160msを要し、その後のエッジ抽出処理には540ms要していることになる。
これを同様にCPU2コアのシステムで実行した場合は、PDL処理とエッジ抽出処理とをそれぞれ独立して動作出来るために、1ページ分のPDL図形の処理が完了する前にエッジ抽出処理を開始することが出来る。例えば端的には最初の図形PDL処理から渡された時点からエッジ抽出処理を開始しても良いし、一定時間、複数の図形を蓄えてから処理を開始しても良い。図9の例ではPDL処理を開始後、10ms経過した時点でエッジ抽出処理を開始している。その後はエッジ抽出処理が進むにつれてPDL処理が必要なデータを同時に生成していくことになる。加えてエッジ抽出処理は2つの処理群に分けられて処理が行われる。このケースではコアが2つ同時に動作するためにエッジ抽出処理全体の処理が加速される。PDL処理が動作している間はどちらかのコアでPDL処理とエッジ抽出処理とが時分割で行われるが、もう一方のコアはエッジ抽出処理だけを担当する(或いは時々に役割を交代することも可能である)ため、総合すると全体の処理を短縮することが出来る。
図10は、実施形態1の構成について適用するコア数を増やしていった場合の性能の変化を示した図である。図10にあるようにCPU1コア時の1ページの処理時間が700msであった場合、CPU2コアの場合は370ms(1.9倍高速)、CPU4コアの場合は200ms(3.5倍高速)、CPU8コアの場合は180ms(3.9倍高速)となった。つまり実施形態1の構成によりコア数に応じてパフォーマンス(RIP処理速度)を向上出来るようになった。
ここで更にコア数を増やしていった場合のことも勘案し、コア数が増えた場合の内部処理状況の分析を行った。
この状況を分析した所、図12でいうところの「データ受け取り」の処理にボトルネックが発生していることが判明した。データ受け取りの部分では受け取った図形が直線データだけで構成されている場合は直ちにデータを受け取れるが、曲線データであった場合は、ベクタライズと呼ばれる直線化処理を行っている。通常は十分に高速処理出来る処理も、曲線を持つ図形が多く入力されると、この処理に時間がかかり、その結果、後段のエッジ抽出処理へのデータ入力が間に合わなくなってくる。データを受け取れないエッジ抽出処理は処理を開始出来ずにアイドル時間でデータを待機する状態となってしまう。
実施形態2の提案では、図13の(b)にあるように、ベクタライズ処理自体は後段の別スレッドのタスクにより「処理1」を実行する時間とは別の独立した時間(独立時間)で実行される。後段のベクタライズ処理ではデータリスト1のデータのうち、ベクタライズが必要なデータが適宜ピックアップされ、ベクタライズ処理が行われる(この動作は図にあるように適宜、複数スレッドで行っても良い)。ベクタライズされたデータはデータリスト2に格納され、後段のエッジ抽出処理に適宜渡される。つまり、マーキングを施されなかったデータリスト1に保持されている図形が後段のエッジ抽出処理に渡されると共に、データリスト2に保持されている図形が後段のエッジ抽出処理に渡される。データリスト2は、第二のデータ保持部の一例である。
図13(a)中のグラフからわかるように、このような構成をとることでCPUコア数が8となった場合でもエッジ抽出処理へのデータ供給が途切れず、その結果常に並列で動作が可能となり全体のパフォーマンスを向上させることが出来る。
図15は、実施形態2の構成を適用した場合の、コア数に対する、性能の変化をグラフで示した図である。図にあるようにCPU1コア時の1ページの処理時間が700msであった場合、CPU2コアの場合は370ms(1.9倍高速)、CPU4コアの場合は200ms(3.5倍高速)、CPU8コアの場合は135ms(5.2倍高速)となる。つまり、実施形態2の構成によりコア数に応じたパフォーマンス(RIP処理速度)を引き出すことが出来る。
実施形態2では、コア数は8までのケースについて説明したが勿論CPUのコア数に制限があるわけではない。また8コアのケースにおける多段構成とした処理部は図5中のデータ受け取り処理を挙げたが同様の効果が挙げられる箇所があればそれらは別の箇所の処理でも良く特に処理箇所に依存しているものではない。8コア以上のケースを考えた場合、更にエッジ抽出に要する時間は短縮されることが想定される。その場合にはデータ受け取りの処理を更に高速に行えるように新規の処理フローを導入しても良いが、供給側のデータを十分に積み上げてから処理を開始するように開始しても良い。コア数が増えることによってデータを処理していく処理ユニットにおいて入力と出力量とのバランスの調整が必要となるがそれらは実験的に求めても良いし理論的なモデル又は予測に基づいても良い。コア数が増えることにより各ブロックの処理自体を違う方法で実現しても良い。
図16は、コア数に応じて処理フローが切り替わるシステムの構成の一例を示す図である。ここでは切り替えが行われる各処理フローにおいて、それぞれが共通で用いる機能ブロックをモジュール化し、プログラムサイズを最小化する構成を示している。また想定される別のシナリオとしては、処理負荷が重くないページが多く入力されてきた場合等には、例えばコア数が4の場合にはCPUコア自体にアイドル時間が多く発生することも考えられる。そのような状態のときにはスプーラ内に処理済みのページが十分に蓄積され、その結果、エンジン出力速度をキープする上で、当面の間、ページの加速処理を行う必要がない場合も考えられる。そのような場合を想定して調停機能(コア数に応じてアイドル時間の調整を行うようなシステム)を設けるようにしても良い。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
なお、上述した構成は、プリンタ装置、ディスプレイ等の表示装置、画像出力デバイス等に利用することが出来る。
Claims (11)
- 図形のエッジを抽出するエッジ抽出処理を実行するシステムが行う制御方法であって、
前記システム内の第1の数のコアで第1のエッジ抽出処理アルゴリズムに従うエッジ抽出処理を実行する第1の実行工程と、
前記第1の数とは異なる前記システム内の第2の数のコアで前記第1のエッジ抽出アルゴリズムとは異なる第2のエッジ抽出処理アルゴリズムに従うエッジ抽出処理を実行する第2の実行工程と、
前記システム内の利用可能なコアの数を取得する取得工程と、
前記取得されたコアの数に基づいて、前記第1の実行工程と前記第2の実行工程のうちの1つを、実行すべき実行工程として選択する選択工程と、
を有することを特徴とする制御方法。 - 前記選択工程は、前記取得されたコアの数が前記第1の数であれば前記第1の実行工程を選択することを特徴とする請求項1に記載の制御方法。
- 前記選択工程は、前記取得されたコアの数が前記第2の数であれば前記第2の実行工程を選択することを特徴とする請求項1又は2に記載の制御方法。
- 前記選択された実行工程によって実行されたエッジ抽出処理で抽出されたエッジの情報に基づいて印刷処理を行う印刷工程を有することを特徴とする請求項1乃至3の何れか1項に記載の制御方法。
- 前記第1のエッジ抽出アルゴリズムの第1の実行プログラムと、前記第2のエッジ抽出アルゴリズムの第2の実行プログラムとを記憶する記憶工程を有し、
前記第1の実行プログラムと前記第2の実行プログラムとで共通する処理の部分は共用モジュール化されていることを特徴とする請求項1乃至4の何れか1項に記載の制御方法。 - 図形のエッジを抽出するエッジ抽出処理を実行するシステムであって、
前記システム内の第1の数のコアで第1のエッジ抽出処理アルゴリズムに従うエッジ抽出処理を実行する第1の実行手段と、
前記第1の数とは異なる前記システム内の第2の数のコアで前記第1のエッジ抽出アルゴリズムとは異なる第2のエッジ抽出処理アルゴリズムに従うエッジ抽出処理を実行する第2の実行手段と、
前記システム内の利用可能なコアの数を取得する取得手段と、
前記取得されたコアの数に基づいて、前記第1の実行手段と前記第2の実行手段のうちの1つを、エッジ抽出処理を実行すべき実行手段として選択する選択手段と、
を有することを特徴とするシステム。 - 前記選択手段は、前記取得されたコアの数が前記第1の数であれば前記第1の実行手段を選択することを特徴とする請求項6に記載のシステム。
- 前記選択手段は、前記取得されたコアの数が前記第2の数であれば前記第2の実行手段を選択することを特徴とする請求項6又は7に記載のシステム。
- 前記選択された実行手段によって実行されたエッジ抽出処理で抽出されたエッジの情報に基づいて印刷処理を行う印刷手段を有することを特徴とする請求項6乃至8の何れか1項に記載のシステム。
- 前記第1のエッジ抽出アルゴリズムの第1の実行プログラムと、前記第2のエッジ抽出アルゴリズムの第2の実行プログラムとを記憶する記憶手段を有し、
前記第1の実行プログラムと前記第2の実行プログラムとで共通する処理の部分は共用モジュール化されていることを特徴とする請求項6乃至9の何れか1項に記載のシステム。 - 請求項6乃至10の何れか1項に記載のシステムの各手段としてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015094891A JP5968497B2 (ja) | 2015-05-07 | 2015-05-07 | 制御方法、システム及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015094891A JP5968497B2 (ja) | 2015-05-07 | 2015-05-07 | 制御方法、システム及びプログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011048654A Division JP5744574B2 (ja) | 2011-03-07 | 2011-03-07 | 画像処理装置、画像処理方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015181016A JP2015181016A (ja) | 2015-10-15 |
JP5968497B2 true JP5968497B2 (ja) | 2016-08-10 |
Family
ID=54329228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015094891A Active JP5968497B2 (ja) | 2015-05-07 | 2015-05-07 | 制御方法、システム及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5968497B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6385406B2 (ja) * | 2016-09-21 | 2018-09-05 | キヤノン株式会社 | 画像処理装置、画像処理方法、及びプログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04170686A (ja) * | 1990-11-05 | 1992-06-18 | Canon Inc | 画像処理装置 |
JPH05324844A (ja) * | 1992-05-25 | 1993-12-10 | Seiko Epson Corp | 図形出力装置 |
EP0600204A3 (en) * | 1992-11-30 | 1994-07-27 | Ibm | Method and apparatus for rendering primitives with multiple processors. |
JP2003051019A (ja) * | 2001-08-08 | 2003-02-21 | Canon Inc | 画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体 |
JP2008276407A (ja) * | 2007-04-26 | 2008-11-13 | Canon Inc | 画像処理装置及びその方法 |
-
2015
- 2015-05-07 JP JP2015094891A patent/JP5968497B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015181016A (ja) | 2015-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5744574B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP5956770B2 (ja) | タイルベースのグラフィックスシステム及びこのようなシステムの動作方法 | |
US10922868B2 (en) | Split frame rendering | |
US20170148371A1 (en) | Method, apparatus and system for dithering an image | |
KR102346119B1 (ko) | 입력 인덱스 스트림 내 프리미티브의 식별 | |
US10762401B2 (en) | Image processing apparatus controlling the order of storing decompressed data, and method thereof | |
JP5706754B2 (ja) | データ処理装置及びデータ処理方法 | |
US20160189417A1 (en) | Method, apparatus and system for rendering an image | |
US9542127B2 (en) | Image processing method and image processing apparatus | |
JP2015532989A (ja) | 中央プロセッサ、およびグラフィックプロセッサ用ハイブリッドエンジン | |
KR101869939B1 (ko) | 멀티-쓰레딩을 사용하는 그래픽 처리를 위한 방법 및 장치 | |
JP6195342B2 (ja) | 情報処理装置およびメモリアクセス制御方法 | |
JP2007535267A (ja) | 画像処理装置及び方法 | |
JP5968497B2 (ja) | 制御方法、システム及びプログラム | |
JP4690723B2 (ja) | 画像片とサーキュラーアドレッシング構成を使用する画像データ処理方法及び装置 | |
US20130342549A1 (en) | Apparatus and method for processing rendering data | |
JP5245713B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP7014173B2 (ja) | 分散処理システム | |
JP2006099579A (ja) | 情報処理装置及び情報処理方法 | |
JP2010218130A (ja) | 描画制御装置 | |
CN114756377A (zh) | 处理器、指令处理方法、芯片、计算机设备及存储介质 | |
JP5146270B2 (ja) | 正規化相関処理装置 | |
JP2019191896A (ja) | 情報処理装置、情報処理方法およびコンピュータプログラム | |
JP2019194816A (ja) | 画像処理装置、画像処理方法およびコンピュータプログラム | |
JP2015026332A (ja) | 情報処理装置、情報処理方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160315 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160329 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160405 |
|
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: 20160607 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160705 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5968497 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |