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

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

Info

Publication number
JP6534492B2
JP6534492B2 JP2018507079A JP2018507079A JP6534492B2 JP 6534492 B2 JP6534492 B2 JP 6534492B2 JP 2018507079 A JP2018507079 A JP 2018507079A JP 2018507079 A JP2018507079 A JP 2018507079A JP 6534492 B2 JP6534492 B2 JP 6534492B2
Authority
JP
Japan
Prior art keywords
image processing
unit
objects
image
divided
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
Application number
JP2018507079A
Other languages
English (en)
Other versions
JPWO2017163591A1 (ja
Inventor
昂生 竹本
昂生 竹本
和幸 板垣
和幸 板垣
長尾 隆
隆 長尾
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.)
Fujifilm Corp
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Corp
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Corp, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Publication of JPWO2017163591A1 publication Critical patent/JPWO2017163591A1/ja
Application granted granted Critical
Publication of JP6534492B2 publication Critical patent/JP6534492B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/162Segmentation; Edge detection involving graph-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20072Graph-based image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)

Description

本開示の技術は、画像処理装置、画像処理方法、及び画像処理プログラムに関する。
従来、画像処理を実行するためのオブジェクトが、DAG(Directed Acyclic Graph:有向非循環(非巡回)グラフ)形態で複数連結されたオブジェクト群に従って、画像処理を行う技術が知られている(特開2012−118932号公報参照)。
また、DAG形態のタスクフローグラフに従って、複数のプロセッサを用いて並列処理を行う技術が知られている(特開2014−164664号公報参照)。この技術では、第1タスクと、第1タスクの先行タスクである第2タスクとが異なるプロセッサに割り当てられている場合に、第2タスクによる出力データが第1タスクに割り当てられている第1プロセッサにより参照可能となるまで、第1タスクの実行を待機する。
また、第1のプロセッサ・コアから第2のプロセッサ・コアへスレッドが移送されることを予測し、スレッドに関連するデータを第1のプロセッサ・コアから第2のプロセッサ・コアへ移送する技術が知られている(特表2013−501296号公報参照)。この技術では、スレッドに関連するデータを第1のプロセッサ・コアから第2のプロセッサ・コアへ移送した後に、スレッドを第1のプロセッサ・コアから第2のプロセッサ・コアへ移送する。
ところで、複数のプロセッサ・コアにより処理を実行する場合に、処理の実行単位であるスレッドを何れのプロセッサ・コア上で実行するかを決定するスケジュール方針の一例として、貪欲スケジュール(greedy schedule)が知られている。貪欲スケジュールとは、処理の実行を終えたスレッドがアイドル状態とならないようにするスケジュール方針であり、処理を実行していないプロセッサ・コアが存在する場合、プロセッサ・コアは直ちに次の処理を実行することになる。従って、貪欲スケジュールでは、同じメモリ上の領域を参照して連続的に実行される処理の各々が、異なるプロセッサ・コアにより実行されてしまうことがあるという問題点がある。
特開2012−118932号公報に記載の技術では、この問題点について考慮されていない。また、特開2014−164664号公報及び特表2013−501296号公報に記載の技術では、異なるプロセッサ・コア間でデータを移送(コピー)する時間がかかってしまい、かつデータを移送している間は、処理の実行が中断される結果、高速に画像処理を行うことができない場合がある。
本開示の技術は、複数の画像処理の各々を異なるプロセッサ・コアにより実行する場合に比較して、高速に画像処理を行うことができる画像処理装置、画像処理方法、及び画像処理プログラムを提供する。
本発明の第1の態様の画像処理装置は、複数のプロセッサ・コアを備えた画像処理装置であって、画像処理を実行するためのオブジェクトが有向非循環グラフ形態で複数連結されたオブジェクト群から直列に連結された複数のオブジェクトを抽出する抽出部と、抽出部により抽出された複数のオブジェクトの各々による画像処理を、複数のプロセッサ・コアの中の同一のプロセッサ・コアに実行させる実行部と、を備えている。
なお、本発明の第2の態様の画像処理装置は、第1の態様の画像処理装置において、抽出部が、直列に連結された複数のオブジェクトとして、前段に連結されたオブジェクト数が0又は1の複数のオブジェクトを抽出してもよい。
また、本発明の第3の態様の画像処理装置は、第1の態様又は第2の態様の画像処理装置において、実行部が、抽出部により抽出された複数のオブジェクトによる画像処理の実行対象とされる画像が複数の領域に分割された分割領域単位で、抽出された複数のオブジェクトの各々による画像処理を同一のプロセッサ・コアに実行させ、かつ分割領域毎に抽出された複数のオブジェクトの各々による画像処理を異なるプロセッサ・コアに実行させてもよい。
また、本発明の第4の態様の画像処理装置は、第3の態様の画像処理装置において、抽出部により抽出された複数のオブジェクトによる画像処理の実行対象とされる画像を、プロセッサ・コアの数以下の複数の分割領域に分割する分割部をさらに備えてもよい。
また、本発明の第5の態様の画像処理装置は、第3の態様の画像処理装置において、抽出部により抽出された複数のオブジェクトによる画像処理の実行対象とされる画像を、画像処理を実行する演算部が有するキャッシュメモリの容量以下のサイズで、複数の分割領域に分割する分割部をさらに備えてもよい。
また、本発明の第6の態様の画像処理装置は、第1の態様から第5の態様の何れか1つの態様の画像処理装置において、複数のプロセッサ・コアが、画像処理に用いられるキャッシュメモリを有してもよい。
本発明の第7の態様の画像処理方法は、複数のプロセッサ・コアを備えた画像処理装置による画像処理方法であって、画像処理を実行するためのオブジェクトが有向非循環グラフ形態で複数連結されたオブジェクト群から直列に連結された複数のオブジェクトを抽出し、抽出した複数のオブジェクトの各々による画像処理を、複数のプロセッサ・コアの中の同一のプロセッサ・コアに実行させるものである。
本発明の第8の態様の画像処理プログラムは、コンピュータを、本発明の第1の態様から第6の態様の何れか1つの態様の画像処理装置の抽出部、及び実行部として機能させるためのものである。
本発明の一実施形態によれば、複数の画像処理の各々を異なるプロセッサ・コアにより実行する場合に比較して、高速に画像処理を行うことができる。
実施の形態に係る画像処理装置として機能するコンピュータの構成の一例を示すブロック図である。 画像処理DAGの一例を示す概略図である。 画像処理DAGに入出力用のメモリを加えた場合の概略図である。 実施の形態に係る処理制御部の機能的な構成の一例を示すブロック図である。 実施の形態に係る合成モジュールの一例の説明に供する概略図である。 実施の形態に係る合成モジュールの一例の説明に供する概略図である。 実施の形態に係る合成モジュールの一例の説明に供する概略図である。 実施の形態に係る合成モジュールの一例の説明に供する概略図である。 入力画像の分割処理の説明に供する概略図である。 画像処理モジュールが部分処理に分割された画像処理DAGの一例を示す概略図である。 画像処理モジュールが部分処理に分割された画像処理DAGの一例を示す概略図である。 実施の形態に係る画像処理プログラムの処理の流れを示すフローチャートである。
以下、図面を参照して、本開示の技術を実施するための形態例を詳細に説明する。
まず、図1を参照して、画像処理装置として機能するコンピュータ10の構成を説明する。なお、コンピュータ10は、複写機、プリンタ、ファクシミリ装置、これらの装置の機能を兼ね備えた複合機、及びスキャナ等の内部で画像処理を行う画像取扱機器に組み込まれたコンピュータであってもよい。また、コンピュータ10は、PC(Personal Computer)等の独立したコンピュータであってもよく、PDA(Personal Digital Assistant)及び携帯電話機等の携帯機器に組み込まれたコンピュータであってもよい。
図1に示すように、本実施の形態に係るコンピュータ10は、第1演算部12A、第2演算部12B、メモリ14、表示部16、操作部18、記憶部20、画像データ供給部22、及び画像出力部24を備えている。また、第1演算部12A、第2演算部12B、メモリ14、表示部16、操作部18、記憶部20、画像データ供給部22、及び画像出力部24の各部は、バス26を介して互いに接続されている。
本実施の形態に係る第1演算部12Aは、コンピュータ10のメイン・プロセッサであり、一例としてCPU(Central Processing Unit)である。また、本実施の形態に係る第2演算部12Bは、一例として内部にローカルメモリ13を有するGPU(Graphics Processing Unit)である。また、本実施の形態に係る第2演算部12Bは、キャッシュメモリ、及び複数(本実施の形態では4つ)のプロセッサ・コアを有する。なお、第2演算部12Bは、第1演算部12Aと同じ種類のCPUでもよいし、異なる種類のCPUでもよい。また、第2演算部12Bは、第1演算部12Aに内蔵されたGPUでもよい。また、第2演算部12Bは内部にローカルメモリ13を有さないGPUでもよい。また、第1演算部12A及び第2演算部12Bは、FPGA(Field Programmable Gate Array)等の演算器でもよい。
メモリ14は、第1演算部12A及び第2演算部12Bが一時的にデータを記憶する不揮発性の記憶手段である。本実施の形態に係る第2演算部12Bにより画像処理を行う場合、第1演算部12Aはメモリ14又は記憶部20の記憶領域に記憶された画像データを第2演算部12Bにバス26を介して転送する。そして、第2演算部12Bは、第1演算部12Aから転送された画像データをローカルメモリ13に記憶し、記憶した画像データに対して画像処理を行う。なお、第2演算部12Bは、メモリ14又は記憶部20に記憶された画像データを直接読み出して画像処理を行ってもよい。
コンピュータ10が前述した画像取扱機器に組み込まれている場合、表示部16及び操作部18は、例えば画像取扱機器に設けられたLCD(Liquid Crystal Display)等の表示パネル及びテンキー等が適用される。また、コンピュータ10が独立したコンピュータである場合、表示部16及び操作部18は、例えばコンピュータ10に接続されたディスプレイ、及びキーボード、マウス等が適用される。また、表示部16及び操作部18は、タッチパネル及びディスプレイが一体化して構成されたタッチパネルディスプレイ等でもよい。また、記憶部20は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、及びフラッシュメモリ等の不揮発性の記憶媒体が適用される。
画像データ供給部22は、処理対象の画像データを供給するものであればよく、例えば紙や写真フィルム等の記録材料に記録されている画像を読み取って画像データを出力する画像読取部が適用される。また、画像データ供給部22は、例えば通信回線を介して外部装置から画像データを受信する受信部、及び画像データを記憶する画像記憶部(メモリ14又は記憶部20)等が適用される。
画像出力部24は、画像処理を経た画像データ又は画像処理を経た画像データが表す画像を出力するものであればよく、例えば画像データが表す画像を紙や感光材料等の記録材料に記録する画像記録部が適用される。また、画像出力部24は、画像データが表す画像をディスプレイ等に表示する表示部(表示部16)、画像データをCD−ROM(Compact Disk Read Only Memory)等の記録媒体に書き込む書込装置が適用される。また、画像出力部24は、画像処理を経た画像データを、通信回線を介して外部装置に送信する送信部が適用される。また、画像出力部24は、画像処理を経た画像データを記憶する画像記憶部(メモリ14又は記憶部20)であってもよい。
図1に示すように、記憶部20には、第1演算部12A及び第2演算部12Bによって実行される各種プログラムが記憶されている。記憶部20には、各種プログラムとして、リソースの管理、プログラムの実行の管理、及びコンピュータ10と外部装置との通信等を司るオペレーティングシステム30のプログラムが記憶されている。また、記憶部20には、各種プログラムとして、コンピュータ10を画像処理装置として機能させるための画像処理プログラム群34が記憶されている。また、記憶部20には、各種プログラムとして、上記画像処理装置に対して所望の画像処理を行わせる各種のアプリケーションプログラム群32(以下、「アプリケーション32」という。)が記憶されている。
画像処理プログラム群34は、前述した画像取扱機器、携帯機器、及びPC等で実行される画像処理プログラムを開発する際の負荷を軽減することを目的として開発されたプログラムである。また、画像処理プログラム群34は、前述した画像取扱機器、携帯機器、及びPC等の各種機器(プラットフォーム)で共通に実行可能に開発されたプログラムである。
画像処理プログラム群34によって実現される画像処理装置は、アプリケーション32からの構築指示に従い、アプリケーション32が指示した画像処理を行う画像処理DAG50A(詳細は後述)を構築する。そして、上記画像処理装置は、アプリケーション32からの実行指示に従い画像処理DAG50Aの処理を実行する。このため、画像処理プログラム群34は、所望の画像処理を行う画像処理DAG50Aの構築を指示したり、構築された画像処理DAG50Aによる画像処理の実行を指示したりするためのインタフェースをアプリケーション32に提供している。
以上の構成により、内部で画像処理を行う必要のある任意の機器を新規に開発する場合等にも、上記画像処理を行うプログラムの開発に関しては、以下に示すように開発すればよい。この場合、上記任意の機器で必要とされる画像処理を、上記インタフェースを利用して画像処理プログラム群34に行わせるアプリケーション32を開発すればよい。従って、開発者は、実際に画像処理を行うプログラムを新たに開発する必要が無くなり、開発者の負荷が軽減される。
次に、本実施の形態に係る画像処理プログラム群34について詳細に説明する。図1に示すように、画像処理プログラム群34は、モジュールライブラリ36、処理構築部42のプログラム、及び処理制御部46のプログラムを含む。
モジュールライブラリ36は、予め定められた互いに異なる画像処理を行う複数種類の画像処理モジュール38のプログラムが各々登録されている。この画像処理としては、例えば、入力処理、フィルタ処理、色変換処理、拡大・縮小処理(図1では「拡縮処理」と表記)、スキュー角検知処理、画像回転処理、画像合成処理、及び出力処理等が挙げられる。
また、モジュールライブラリ36には、画像処理の種類が同一で、かつ実行する画像処理の内容が異なる画像処理モジュール38も登録されている。図1では、この種の画像処理モジュールを「モジュール1」、「モジュール2」と、末尾に数字を付して区別している。例えば、拡大・縮小処理を行う画像処理モジュール38については、入力された画像データを、水平方向及び垂直方向の各方向ともに1画素おきに間引くことで画像の縦横のサイズを50%に縮小する縮小処理を行う画像処理モジュール38が用意されている。さらに、例えば、拡大・縮小処理を行う画像処理モジュール38については、入力された画像データに対して指定された拡大・縮小率で拡大・縮小処理を行う画像処理モジュール38等が用意されている。
また、例えば、色変換処理を行う画像処理モジュール38については、RGB(Red Green Blue)色空間の画像をCMYK(Cyan Magenta Yellow Key-Plate(黒))色空間の画像へ変換する画像処理モジュール38、及びCMYK色空間の画像をRGB色空間の画像へ変換する画像処理モジュール38が用意されている。さらに、例えば、色変換処理を行う画像処理モジュール38については、RGB色空間の画像をYCbCr色空間の画像へ変換する画像処理モジュール38、及びYCbCr色空間の画像をRGB色空間の画像へ変換する画像処理モジュール38等が用意されている。
また、モジュールライブラリ36には、画像データを記憶するための記憶領域(バッファ)を備えたバッファモジュール40も登録されている。
本実施の形態に係る処理構築部42は、アプリケーション32からの指示により、DAG形態の画像処理DAG50Aを構築する。画像処理DAG50Aは、一例として図2Aに示すように、1つ以上の画像処理モジュール38が、個々の画像処理モジュール38の前段及び後段の少なくとも一方に配置されたバッファモジュール40を介して連結される。
なお、個々の画像処理モジュール38は、入力画像データに対して画像処理を実行して出力画像データを出力するオブジェクトの一例である。また、画像処理DAG50Aは、画像処理モジュール38が複数連結されたオブジェクト群の一例である。また、図2Aに示す例では、バッファモジュール40を介して前段に画像処理モジュール38が連結された画像処理モジュール38は、前段の画像処理モジュール38による画像処理が終了した場合に、自身の画像処理の実行が可能となることを示している。また、バッファモジュール40を介して前段に複数の画像処理モジュール38が連結された画像処理モジュール38は、前段の複数の画像処理モジュール38の全ての画像処理が終了した場合に、自身の画像処理の実行が可能となることを示している。
また、図2Aでは、各モジュールのみが処理の順に接続されたDAGを示しているが、このDAGが実行される際には、図2Bに示すようにメモリ14に記憶された画像データが入力されてDAGに従って画像処理が行われる。そして、最終的にメモリ14に処理済みの画像データ等の処理結果が記憶される。なお、各画像処理モジュール38で実行される画像処理を第2演算部12Bにより実行する場合は、図2Bに示したメモリ14がローカルメモリ13となる。
次に、図3を参照して、本実施の形態に係る処理制御部46の機能的な構成を説明する。図3に示すように、処理制御部46は、抽出部60、合成部62、分割部64、実行部66、及び出力部68を備えている。
本実施の形態に係る抽出部60は、処理構築部42により構築された画像処理DAG50Aから直列に連結された複数の画像処理モジュール38を抽出する。本実施の形態では、抽出部60は、直列に連結された複数の画像処理モジュール38として、前段に連結された画像処理モジュール38の数が0又は1の複数の画像処理モジュール38を抽出する。
本実施の形態に係る合成部62は、抽出部60により抽出された複数の画像処理モジュール38を、抽出された複数の画像処理モジュール38を内包する合成モジュール52に置き換えた画像処理DAG50Bを構築する。図4〜図7を参照して、抽出部60及び合成部62による処理について詳細に説明する。なお、図4〜図7は、各々合成部62による処理後の画像処理DAG50Bの一例を示している。
3つの画像処理モジュール38が、図4に示すようにバッファモジュール40を介して一列に連結されている場合、抽出部60は直列に連結された3つの画像処理モジュール38を抽出する。そして、合成部62は、抽出部60により抽出された3つの画像処理モジュール38を、抽出された3つの画像処理モジュール38を内包する合成モジュール52に置き換えた画像処理DAG50Bを構築する。
一方、5つの画像処理モジュール38が、図5に示すようにバッファモジュール40を介して連結されている場合、抽出部60は図5の破線で囲まれた直列に連結された3つの画像処理モジュール38を抽出する。そして、合成部62は、抽出部60により抽出された3つの画像処理モジュール38を、抽出された3つの画像処理モジュール38を内包する合成モジュール52に置き換えた画像処理DAG50Bを構築する。
また、4つの画像処理モジュール38が、図6に示すようにバッファモジュール40を介して連結されている場合、抽出部60は図6の破線で囲まれた直列に連結された3つの画像処理モジュール38を抽出する。そして、合成部62は、抽出部60により抽出された3つの画像処理モジュール38を、抽出された3つの画像処理モジュール38を内包する合成モジュール52に置き換えた画像処理DAG50Bを構築する。なお、この場合、抽出部60は図6の一点鎖線で囲まれた直列に連結された3つの画像処理モジュール38を抽出してもよい。
図6に示すように、抽出部60が抽出対象とする直列に連結された複数の画像処理モジュール38であって、一部の画像処理モジュール38が重複する複数の画像処理モジュール38が複数組存在する場合、抽出部60による抽出方法は特に限定されない。この場合、例えば、抽出部60は、複数組の画像処理モジュール38群のうち、ランダムに何れか1つの画像処理モジュール38群を抽出してもよい。
また、この場合、例えば、抽出部60は、複数組の画像処理モジュール38群のうち、画像処理モジュール38の個数が最も多い画像処理モジュール38群を抽出してもよい。また、この場合、例えば、画像処理モジュール38毎に優先度を予め付与しておき、抽出部60は、複数組の画像処理モジュール38群のうち、優先度の合計値が最も大きい画像処理モジュール38群を抽出してもよい。
さらに、6つの画像処理モジュール38が、図7に示すようにバッファモジュール40を介して連結されている場合、抽出部60は図7の破線で囲まれた直列に連結された3つの画像処理モジュール38を抽出する。また、この場合、抽出部60は図7の一点鎖線で囲まれた直列に連結された2つの画像処理モジュール38も抽出する。そして、合成部62は、抽出部60により抽出された2組の画像処理モジュール38群を、各々抽出された画像処理モジュール38群を内包する合成モジュール52に置き換えた画像処理DAG50Bを構築する。
本実施の形態に係る分割部64は、入力画像データの処理対象とする部分により示される画像を複数の分割画像(分割領域)に分割する。一例として図8に示すように、分割部64は、入力画像データの処理対象とする部分により示される画像Gを、複数(図8に示す例では3つ)の分割画像B1〜B3に分割する。なお、以下では分割画像を示す画像データを「分割画像データ」という。また、入力画像データの処理対象とする部分とは、色変換処理のように入力画像全体を処理対象とする画像処理では、入力画像データ全体が処理対象とする部分を意味する。また、入力画像データの処理対象とする部分とは、切り抜き(トリミング)処理のように、入力画像の一部を対象とする画像処理では、入力画像の一部を意味する。以下では、錯綜を回避するために、入力画像データの処理対象とする部分を、単に「入力画像データ」という。
また、図8に示した例では、分割部64が画像Gを上下に分割しているが、これに限定されない。例えば分割部64は画像Gを左右に分割してもよいし、上下左右に分割してもよい。
本実施の形態では、分割部64は、画像処理DAG50Bによる画像処理を実行する演算部(本実施の形態では第2演算部12B)が有するプロセッサ・コア数以下で、かつ2以上の数に入力画像データを分割する。なお、分割部64は、予め定められた数又はサイズで入力画像データを分割してもよい。
また、分割部64は、画像処理DAG50Bによる画像処理を実行する演算部が有するキャッシュメモリの容量以下のサイズで入力画像データを分割してもよい。この場合、例えば、分割部64は、画像処理DAG50Bによる画像処理を実行する演算部のプロセッサから最も遠いレベルのキャッシュメモリ、所謂LLC(Last Level Cache)の容量以下で、かつLLCの容量に極力一致するサイズで入力画像データを分割する形態が例示される。
また、一例として図9及び図10に示すように、分割部64は、画像処理DAG50Bに対し、各画像処理モジュール38で実行される画像処理を、分割画像データの各々に対応する部分処理39(タスク)に分割して画像処理DAG50Cを構築する。なお、図9は、図4に示した画像処理DAG50Bにおいて、入力画像データを2つの分割画像データに分割した場合の画像処理DAG50Cを示している。また、図10は、図5に示した画像処理DAG50Bにおいて、入力画像データを4つの分割画像データに分割した場合の画像処理DAG50Cを示している。なお、図9及び図10では、錯綜を回避するために、バッファモジュール40の図示を省略している。
さらに、分割部64は、画像処理モジュール38で実行される画像処理の種類に応じて、前段に連結された画像処理モジュール38の部分処理39と、後段に連結された画像処理モジュール38の部分処理39との間で依存関係を付与する。なお、図9及び図10では、この依存関係を破線の矢印で示している。
例えば、色変換処理のように、処理対象とする画素のみに対して画像処理を行う処理は、各部分処理39も1対1の依存関係となる。一方、例えば、フィルタ処理のように、処理対象とする画素の周辺画素も必要な画像処理では、周辺画素に対して画像処理を行う前段の部分処理39にも依存関係を付与することとなる。各部分処理39は、前段に依存関係のある部分処理39が存在しない場合か、又は依存関係のある全ての部分処理39が終了した場合に実行可能となる。
本実施の形態に係る実行部66は、画像処理DAG50Cに従って、第2演算部12Bに画像処理を実行させる。本実施の形態では、実行部66は、合成モジュール52に内包される複数の画像処理モジュール38の各々による画像処理を、第2演算部12Bの複数のプロセッサ・コアの中の同一のプロセッサ・コアに実行させる。具体的には、本実施の形態では、実行部66は、分割画像データ単位で合成モジュール52に内包される複数の画像処理モジュール38の各々による画像処理を同一のプロセッサ・コアに実行させる。また、実行部66は、分割画像データ毎に、合成モジュール52に内包される複数の画像処理モジュール38の各々による画像処理を異なるプロセッサ・コアに実行させる。なお、以下では、合成モジュール52における個々の分割画像データを処理する複数の部分処理39を「部分処理群54」という(図9及び図10も参照)。
例えば、図9に示した画像処理DAG50Cが構築された場合、実行部66は、個々の部分処理群54に内包される部分処理39の各々を、第2演算部12Bの同一のプロセッサ・コアに実行させる。また、この場合、実行部66は、各部分処理群54間では部分処理群54に内包される部分処理39を異なるプロセッサ・コアで実行させる。なお、合成モジュール52以外の画像処理モジュール38については、実行部66は、貪欲スケジュール等の予め定められたスケジュール方針で第2演算部12Bのプロセッサ・コアに実行させればよい。
本実施の形態に係る出力部68は、画像処理DAG50Cの最終段の画像処理モジュール38により実行された画像処理の結果得られた出力画像データを出力する。本実施の形態では、出力部68は、得られた出力画像データを表示部16に表示する。なお、出力部68は、出力画像データを外部装置に出力(送信)してもよい。また、コンピュータ10がプリンタに組み込まれている場合は、出力部68は、出力画像データにより示される出力画像を紙等の記録材料に出力(形成)してもよい。
次に、図11を参照して、本実施の形態に係るコンピュータ10の作用を説明する。なお、図11は、アプリケーション32により画像処理の実行開始の指示が入力された場合に第1演算部12Aによって実行される画像処理プログラムの処理の流れを示すフローチャートである。また、画像処理プログラムは記憶部20に予めインストールされている。また、第1演算部12Aが画像処理プログラムを実行することにより、第1演算部12Aが前述した処理構築部42、抽出部60、合成部62、分割部64、実行部66、及び出力部68として機能する。
図11のステップ100で、処理構築部42は、アプリケーション32からの構築指示に従い、アプリケーション32が指示した画像処理を行う画像処理DAG50Aを構築する。次のステップ102で、抽出部60は、前述したように、ステップ100で構築された画像処理DAG50Aから直列に連結された複数の画像処理モジュール38を抽出する。
次のステップ104で、合成部62は、ステップ102で抽出された複数の画像処理モジュール38を、抽出された複数の画像処理モジュール38を内包する合成モジュール52に置き換えた画像処理DAG50Bを構築する。
次のステップ106で、分割部64は、前述したように、入力画像データを複数の分割画像データに分割する。そして、分割部64は、画像処理モジュール38で実行される画像処理の種類に応じて、前段に連結された画像処理モジュール38の部分処理39と、後段に連結された画像処理モジュール38の部分処理39との間で依存関係を付与する。本ステップ106の処理により、分割部64は画像処理DAG50Cを構築する。
ステップ108で、実行部66は、前述したように、画像処理DAG50Cに従って、第2演算部12Bに画像処理を実行させる。第2演算部12Bは、第1演算部12Aから転送された入力画像データをローカルメモリ13に記憶し、画像処理DAG50Cに従って画像処理を実行する。第2演算部12Bは、画像処理DAG50Cによる画像処理が終了すると、最終的に得られた(すなわち画像処理DAG50Cの最終段の画像処理モジュール38から出力された)出力画像データをローカルメモリ13から第1演算部12Aに転送する。
そこで、ステップ110で、出力部68は、出力画像データの受信待ちを行う。出力部68が出力画像データを受信するとステップ110が肯定判定となり、処理がステップ112に移行する。ステップ112で、出力部68は、ステップ110で受信された出力画像データを表示部16に出力した後、本画像処理を終了する。
以上説明したように、本実施の形態によれば、画像処理DAG50Aから直列に連結された複数の画像処理モジュール38を抽出する。そして、抽出した複数の画像処理モジュール38を合成モジュール52に置き換えて、合成モジュール52を同一のプロセッサ・コアに実行させる。これにより、同じ領域の画像データを処理対象とする画像処理モジュール38による画像処理は同一のプロセッサ・コアにより実行される結果、プロセッサ・コア間でのスレッドの移送、及び画像データの転送の頻度が抑制される。従って、複数の画像処理の各々を異なるプロセッサ・コア上で実行する場合に比較して、高速に画像処理を行うことができる。
さらに、本実施の形態によれば、合成モジュール52を同一のプロセッサ・コアに実行させているので、キャッシュメモリのヒット率も向上する。これにより、複数の画像処理の各々を異なるプロセッサ・コア上で実行する場合に比較して、高速に画像処理を行うことができる。
また、本実施の形態によれば、入力画像データを複数の分割画像データに分割して、分割画像データ単位で画像処理を実行している。これにより、画像処理が並列に実行される度合が向上する結果、より高速に画像処理を行うことができる。
なお、上記実施の形態では、入力画像データを複数の分割画像データに分割する場合について説明したが、これに限定されない。例えば、入力画像データを分割せずに入力画像データに対して画像処理を行う形態としてもよい。この場合の形態例として、画像処理DAG50Bに従って画像処理を実行する形態が例示される。
また、上記実施の形態では、画像処理DAG50Cによる画像処理を第2演算部12Bに実行させる場合について説明したが、これに限定されない。例えば、画像処理DAG50Cによる画像処理を第1演算部12Aに実行させる形態としてもよいし、第1演算部12A及び第2演算部12Bの双方に実行させる形態としてもよい。
また、上記実施の形態では、各種プログラムが記憶部20に予め記憶(インストール)されている態様を説明したが、これに限定されない。各種プログラムは、CD−ROM、DVD−ROM(Digital Versatile Disk Read Only Memory)、USB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、各種プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
2016年3月24日出願の日本国特許出願2016−060523号の開示は、その全体が参照により本明細書に取り込まれる。
本明細書に記載された全ての文献、特許出願、及び技術規格は、個々の文献、特許出願、及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
10 コンピュータ
12A 第1演算部
12B 第2演算部
13 ローカルメモリ
14 メモリ
16 表示部
18 操作部
20 記憶部
22 画像データ供給部
24 画像出力部
26 バス
30 オペレーティングシステム
32 アプリケーションプログラム群
34 画像処理プログラム群
36 モジュールライブラリ
38 画像処理モジュール
39 部分処理
40 バッファモジュール
42 処理構築部
46 処理制御部
50A、50B、50C 画像処理DAG
52 合成モジュール
54 部分処理群
60 抽出部
62 合成部
64 分割部
66 実行部
68 出力部
B1〜B3 分割画像
G 画像

Claims (8)

  1. 複数のプロセッサ・コアを備えた画像処理装置であって、
    画像処理を実行するためのオブジェクトが有向非循環グラフ形態で複数連結されたオブジェクト群から直列に連結された複数のオブジェクトを抽出する抽出部と、
    前記抽出部により抽出された複数のオブジェクトによる画像処理の実行対象とされる画像を、複数の分割領域に分割し、かつ、前記画像処理を、前記分割領域に各々対応する複数のタスクに分割する分割部であって、前記複数のタスクのうちの、前記直列に連結された複数のオブジェクトに含まれる前段に連結されたオブジェクトに対応するタスクと、前記複数のタスクのうちの、前記直列に連結された複数のオブジェクトに含まれる後段に連結されたオブジェクトに対応するタスクとの間で前記画像処理の種類に応じて依存関係を付与する分割部と、
    前記分割部により分割されて得られた前記複数のタスクの各々を、前記複数のプロセッサ・コアのうちの同一のプロセッサ・コアであり、かつ、前記複数のタスク間で異なるプロセッサ・コアに実行させる実行部と、
    を備えた画像処理装置。
  2. 前記抽出部は、前記直列に連結された複数のオブジェクトとして、前段に連結されたオブジェクト数が0又は1の複数のオブジェクトを抽出する
    請求項1記載の画像処理装置。
  3. 前記実行部は、前記抽出部により抽出された複数のオブジェクトによる画像処理の実行対象とされる画像が前記分割領域単位で、該抽出された複数のオブジェクトの各々による画像処理を同一のプロセッサ・コアに実行させ、かつ分割領域毎に該抽出された複数のオブジェクトの各々による画像処理を異なるプロセッサ・コアに実行させる
    請求項1又は請求項2記載の画像処理装置。
  4. 前記分割部は、前記抽出部により抽出された複数のオブジェクトによる画像処理の実行対象とされる画像を、前記プロセッサ・コアの数以下の複数の前記分割領域に分割する
    請求項3記載の画像処理装置。
  5. 前記分割部は、前記抽出部により抽出された複数のオブジェクトによる画像処理の実行対象とされる画像を、前記画像処理を実行する演算部が有するキャッシュメモリの容量以下のサイズで、複数の前記分割領域に分割する
    請求項3記載の画像処理装置。
  6. 前記複数のプロセッサ・コアは、前記画像処理に用いられるキャッシュメモリを有する
    請求項1から請求項5の何れか1項記載の画像処理装置。
  7. 複数のプロセッサ・コアを備えた画像処理装置による画像処理方法であって、
    画像処理を実行するためのオブジェクトが有向非循環グラフ形態で複数連結されたオブジェクト群から直列に連結された複数のオブジェクトを抽出し、
    抽出した複数のオブジェクトによる画像処理の実行対象とされる画像を、複数の分割領域に分割し、前記画像処理を、前記分割領域に各々対応する複数のタスクに分割し、前記複数のタスクのうちの、前記直列に連結された複数のオブジェクトに含まれる前段に連結されたオブジェクトに対応するタスクト、前記複数のタスクのうちの、前記直列に連結された複数のオブジェクトに含まれる後段に連結されたオブジェクトに対応するタスクとの間で前記画像処理の種類に応じて依存関係を付与し、
    分割して得た前記複数のタスクの各々を、前記複数のプロセッサ・コアのうちの同一のプロセッサ・コアであり、かつ、前記複数のタスク間で異なるプロセッサ・コアに実行させる
    画像処理方法。
  8. コンピュータを、請求項1から請求項6の何れか1項記載の画像処理装置の抽出部、分割部、及び実行部として機能させるための画像処理プログラム。
JP2018507079A 2016-03-24 2017-01-25 画像処理装置、画像処理方法、及び画像処理プログラム Active JP6534492B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016060523 2016-03-24
JP2016060523 2016-03-24
PCT/JP2017/002573 WO2017163591A1 (ja) 2016-03-24 2017-01-25 画像処理装置、画像処理方法、及び画像処理プログラム

Publications (2)

Publication Number Publication Date
JPWO2017163591A1 JPWO2017163591A1 (ja) 2018-08-09
JP6534492B2 true JP6534492B2 (ja) 2019-06-26

Family

ID=59901143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018507079A Active JP6534492B2 (ja) 2016-03-24 2017-01-25 画像処理装置、画像処理方法、及び画像処理プログラム

Country Status (4)

Country Link
US (1) US10949942B2 (ja)
JP (1) JP6534492B2 (ja)
CN (1) CN108885776B (ja)
WO (1) WO2017163591A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022500755A (ja) * 2018-09-11 2022-01-04 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 順次計算dagのための異種スケジューリング
JP7367365B2 (ja) * 2019-07-23 2023-10-24 富士通株式会社 タスク実行管理装置、タスク実行管理方法、および、タスク実行管理プログラム
CN112750079A (zh) * 2020-12-29 2021-05-04 深圳市鸿合创新信息技术有限责任公司 图像处理方法、装置及一体机

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4694270B2 (ja) * 2005-06-03 2011-06-08 富士ゼロックス株式会社 画像処理装置、方法及びプログラム
US7554550B2 (en) * 2005-06-24 2009-06-30 Microsoft Corporation Non-destructive processing of digital image data
JP2007287084A (ja) * 2006-04-20 2007-11-01 Fuji Xerox Co Ltd 画像処理装置及びプログラム
JP4942095B2 (ja) * 2007-01-25 2012-05-30 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチコア・プロセッサにより演算を行う技術
JP2009054001A (ja) * 2007-08-28 2009-03-12 Fujifilm Corp 画像処理装置及びプログラム
US20110066830A1 (en) 2009-09-11 2011-03-17 Andrew Wolfe Cache prefill on thread migration
JP2011048579A (ja) * 2009-08-26 2011-03-10 Univ Of Tokyo 画像処理装置及び画像処理方法
JP2012118932A (ja) 2010-12-03 2012-06-21 Fuji Xerox Co Ltd 情報処理装置及びプログラム
CN102193826B (zh) * 2011-05-24 2012-12-19 哈尔滨工程大学 一种异构多核处理器高效任务调度方法
JP5775386B2 (ja) * 2011-07-14 2015-09-09 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 並列化方法、システム、及びプログラム
JP5479519B2 (ja) * 2012-03-30 2014-04-23 富士フイルム株式会社 画像処理装置、方法及びプログラム
JP6011006B2 (ja) * 2012-04-27 2016-10-19 ブラザー工業株式会社 液滴噴射装置
CN102707952A (zh) * 2012-05-16 2012-10-03 上海大学 嵌入式异构多核处理器上基于用户描述的程序设计方法
US9384522B2 (en) 2012-12-28 2016-07-05 Qualcomm Incorporated Reordering of command streams for graphical processing units (GPUs)
JP2014164664A (ja) 2013-02-27 2014-09-08 Nec Corp タスク並列処理方法、装置及びプログラム
CN103336713A (zh) * 2013-06-19 2013-10-02 西北工业大学 一种基于任务复制与聚簇的并行任务分配方法
US9934043B2 (en) * 2013-08-08 2018-04-03 Linear Algebra Technologies Limited Apparatus, systems, and methods for providing computational imaging pipeline
AU2013260722A1 (en) * 2013-11-22 2015-06-11 Canon Kabushiki Kaisha Scheduling interpreting and rasterising tasks in a multi-threaded RIP
US9223551B1 (en) * 2014-07-22 2015-12-29 Here Global B.V. Rendergraph compilation method and use thereof for low-latency execution
US9652817B2 (en) * 2015-03-12 2017-05-16 Samsung Electronics Co., Ltd. Automated compute kernel fusion, resizing, and interleave
US9965824B2 (en) * 2015-04-23 2018-05-08 Google Llc Architecture for high performance, power efficient, programmable image processing
US10387988B2 (en) * 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform

Also Published As

Publication number Publication date
US20190019270A1 (en) 2019-01-17
JPWO2017163591A1 (ja) 2018-08-09
WO2017163591A1 (ja) 2017-09-28
CN108885776A (zh) 2018-11-23
CN108885776B (zh) 2022-09-27
US10949942B2 (en) 2021-03-16

Similar Documents

Publication Publication Date Title
US10650481B2 (en) Image processing device, image processing method, and non-transitory computer readable medium for image processing
JP6534492B2 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
US11257178B2 (en) Image processing device, image processing method, and storage medium
US10795725B2 (en) Image processing device, image processing method, and non-transitory computer readable medium for image processing
US10878526B2 (en) Image processing apparatus, image processing method, and image processing program
US11315212B2 (en) Image processing apparatus, image processing method, and computer readable medium for executing partial processes on image-section data items
US11341599B2 (en) Image processing apparatus, image processing method, and computer readable medium storing image processing program
US10783604B2 (en) Image processing apparatus, image processing method, and image processing program
JP7039424B2 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A5211

Effective date: 20180418

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180418

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190528

R150 Certificate of patent or registration of utility model

Ref document number: 6534492

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250