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

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

Info

Publication number
JP6891153B2
JP6891153B2 JP2018173740A JP2018173740A JP6891153B2 JP 6891153 B2 JP6891153 B2 JP 6891153B2 JP 2018173740 A JP2018173740 A JP 2018173740A JP 2018173740 A JP2018173740 A JP 2018173740A JP 6891153 B2 JP6891153 B2 JP 6891153B2
Authority
JP
Japan
Prior art keywords
partial
priority
image processing
processing
image
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
JP2018173740A
Other languages
English (en)
Other versions
JP2020046826A (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
Priority to JP2018173740A priority Critical patent/JP6891153B2/ja
Priority to PCT/JP2019/000094 priority patent/WO2020059161A1/ja
Priority to CN201980024797.XA priority patent/CN111937029B/zh
Publication of JP2020046826A publication Critical patent/JP2020046826A/ja
Priority to US17/010,950 priority patent/US11315212B2/en
Application granted granted Critical
Publication of JP6891153B2 publication Critical patent/JP6891153B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Processing (AREA)

Description

本発明は、画像処理装置、画像処理方法、及び画像処理プログラムに関する。
従来、画像処理を実行するオブジェクトが、DAG(Directed Acyclic Graph:有向非循環(非巡回)グラフ)形態で複数連結されたオブジェクト群に従って、画像処理を行う技術が知られている(特許文献1参照)。この技術では、各オブジェクトで、入力画像データにより示される入力画像が部分領域毎に分割された各分割画像データに対して部分処理を行う。また、この技術では、連結されたオブジェクト間の部分処理に処理の依存関係を付与する。また、この技術では、DAGの前段側のオブジェクトの部分処理から順に優先度を付与し、付与した優先度に従って部分処理を実行する。
国際公開第2017/163592号
しかしながら、上記特許文献1に記載の技術では、必ずしも画像処理の処理効率が高い順番で部分処理が実行されない場合がある結果、画像処理の処理効率が低下してしまう場合があった。
本発明は、DAGの前段側のオブジェクトの部分処理から順に優先度を付与する場合に比較して、画像処理の処理効率の低下を抑制することができる画像処理装置、画像処理方法、及び画像処理プログラムを提供することを目的とする。
上記目的を達成するために、請求項1に記載の画像処理装置の発明は、画像処理を実行するオブジェクトが有向非循環グラフ形態で複数連結されたオブジェクト群の各オブジェクトで、入力画像データにより示される入力画像が部分領域毎に分割された各分割画像データに対して部分処理を行う画像処理装置であって、連結された前記オブジェクト間の前記部分処理に処理の依存関係を付与する依存関係付与部と、前記オブジェクト群の末端のオブジェクトの部分処理に優先度を付与し、かつ後段側に依存関係が付与されている部分処理を有する前段側のオブジェクトの部分処理の優先度として、依存関係が付与されている後段側の部分処理の優先度の最大値を付与する優先度付与部と、前記依存関係に基づいて実行可能となった部分処理を、付与された前記優先度に従って実行する実行部と、を備える。
請求項2に記載の発明は、請求項1に記載の発明において、前記優先度付与部は、前記末端のオブジェクトの部分処理に優先度を付与する際に、出力画像の正面視下に位置する分割画像を示す分割画像データを処理する部分処理よりも、出力画像の正面視上に位置する分割画像を示す分割画像データを処理する部分処理に高い優先度を付与する。
請求項3に記載の発明は、請求項1又は請求項2に記載の発明において、前記優先度付与部は、前記オブジェクト群に複数の前記末端のオブジェクトが存在する場合、前記複数の前記末端のオブジェクトの部分処理に優先度を付与する際に、オブジェクト単位で順番に画像処理が実行される優先度を付与するか、又はオブジェクト間で各オブジェクトの部分処理が順番に実行される優先度を付与する。
請求項4に記載の発明は、請求項3に記載の発明において、前記優先度付与部は、オブジェクト単位で順番に画像処理が実行される優先度を付与するか、又はオブジェクト間で各オブジェクトの部分処理が順番に実行される優先度を付与するかが選択可能とされる。
請求項5に記載の発明は、請求項1から請求項4の何れか1項に記載の発明において、前記優先度付与部は、後段側の部分処理に依存関係が付与されていない部分処理については、優先度を付与しないか、又は部分処理を実行しないことを表す優先度として予め定められた優先度を付与し、前記実行部は、優先度が付与されていない部分処理、又は前記予め定められた優先度が付与された部分処理については、実行対象としない。
請求項6に記載の発明は、請求項1から請求項5の何れか1項に記載の発明において、前記実行部は、実行可能で、かつ優先度が同一の部分処理が複数存在する場合、優先度が同一の複数の部分処理の各々について、部分処理の実行完了後に実行可能となる、当該部分処理に依存し、かつ当該部分処理と同じ優先度の部分処理の数である第1の数、部分処理の実行完了後に実行可能とならない、当該部分処理に依存し、かつ当該部分処理と同じ優先度の部分処理の数である第2の数、部分処理の実行完了後に実行可能となる、当該部分処理に依存し、かつ当該部分処理よりも低い優先度の部分処理の数である第3の数、及び部分処理の実行完了後に実行可能とならない、当該部分処理に依存し、かつ当該部分処理よりも低い優先度の部分処理の数である第4の数の少なくとも1つを求め、優先度が同一の複数の部分処理の各々について求めた数が最大の部分処理を実行する。
請求項7に記載の発明は、請求項6に記載の発明において、前記実行部は、前記第1の数、前記第2の数、前記第3の数、及び前記第4の数を、前記第1の数、前記第2の数、前記第3の数、及び前記第4の数の順番で求め、優先度が同一の複数の部分処理の各々について求めた数が異なる時点で、求めた数が最大の部分処理を実行する。
請求項8に記載の発明は、請求項1から請求項5の何れか1項に記載の発明において、前記実行部は、実行可能で、かつ優先度が同一の部分処理が複数存在する場合、優先度が同一の複数の部分処理の各々について、部分処理の実行のために必要となる出力領域のメモリ量に対する部分処理の実行完了後に開放される入力領域のメモリ量の差が最小の部分処理を実行する。
請求項9に記載の発明は、請求項1から請求項5の何れか1項に記載の発明において、前記実行部は、実行可能で、かつ優先度が同一の部分処理が複数存在する場合、優先度が同一の複数の部分処理の各々について、部分処理の実行完了後に実行可能となる、当該部分処理に依存し、かつ当該部分処理と同じ優先度の部分処理の数である第1の数、部分処理の実行完了後に実行可能とならない、当該部分処理に依存し、かつ当該部分処理と同じ優先度の部分処理の数である第2の数、部分処理の実行完了後に実行可能となる、当該部分処理に依存し、かつ当該部分処理よりも低い優先度の部分処理の数である第3の数、及び部分処理の実行完了後に実行可能とならない、当該部分処理に依存し、かつ当該部分処理よりも低い優先度の部分処理の数である第4の数の少なくとも1つを求め、優先度が同一の複数の部分処理の各々について求めた数が最大の部分処理を実行する第1の方式と、優先度が同一の複数の部分処理の各々について、部分処理の実行のために必要となる出力領域のメモリ量に対する部分処理の実行完了後に開放される入力領域のメモリ量の差が最小の部分処理を実行する第2の方式と、の何れを用いるか、又は組み合わせて用いるかが選択可能とされる。
請求項10に記載の画像処理方法の発明は、画像処理を実行するオブジェクトが有向非循環グラフ形態で複数連結されたオブジェクト群の各オブジェクトで、入力画像データにより示される入力画像が部分領域毎に分割された各分割画像データに対して部分処理を行う画像処理装置による画像処理方法であって、連結された前記オブジェクト間の前記部分処理に処理の依存関係を付与し、前記オブジェクト群の末端のオブジェクトの部分処理に優先度を付与し、かつ後段側に依存関係が付与されている部分処理を有する前段側のオブジェクトの部分処理の優先度として、依存関係が付与されている後段側の部分処理の優先度の最大値を付与し、前記依存関係に基づいて実行可能となった部分処理を、付与した前記優先度に従って実行するものである。
請求項11に記載の画像処理プログラムの発明は、コンピュータを、請求項1から請求項9の何れか1項記載の画像処理装置の依存関係付与部、優先度付与部、及び実行部として機能させるためのものである。
請求項1、10、11に記載の発明によれば、DAGの前段側のオブジェクトの部分処理から順に優先度を付与する場合に比較して、画像処理の処理効率の低下を抑制することができる、という効果を有する。
請求項2に記載の発明によれば、出力画像の正面視の位置を考慮せずに部分処理に優先度を付与する場合に比較して、画像処理の処理効率の低下を抑制することができる、という効果を有する。
請求項3に記載の発明によれば、複数の末端のオブジェクトの部分処理にランダムに優先度を付与する場合に比較して、望ましい順番で部分処理を実行することができる、という効果を有する。
請求項4に記載の発明によれば、ユーザが所望する順番で部分処理を実行することができる、という効果を有する。
請求項5に記載の発明によれば、無駄な部分処理の実行を抑制することができる、という効果を有する。
請求項6に記載の発明によれば、ランダムに部分処理を選択する場合に比較して、画像処理の処理効率の低下を抑制することができる、という効果を有する。
請求項7に記載の発明によれば、上記第1の数〜第4の数を全て求める場合に比較して、演算量を低減することができる、という効果を有する。
請求項8に記載の発明によれば、ランダムに部分処理を選択する場合に比較して、消費メモリ量を低減することができる、という効果を有する。
請求項9に記載の発明によれば、システム要求及びユーザの要望等に応じた方式を選択することができる、という効果を有する。
DAGの前段側のオブジェクトの部分処理から順に優先度を付与する方式の問題点の一例を説明するための図である。 DAGの前段側のオブジェクトの部分処理から順に優先度を付与する方式の問題点の一例を説明するための図である。 DAGの前段側のオブジェクトの部分処理から順に優先度を付与する方式の問題点の一例を説明するための図である。 DAGの前段側のオブジェクトの部分処理から順に優先度を付与する方式の問題点の一例を説明するための図である。 実施形態に係る画像処理装置として機能するコンピュータの構成の一例を示すブロック図である。 画像処理DAGの一例を示す概略図である。 画像処理DAGに入出力用のメモリを加えた場合の一例を示す概略図である。 実施形態に係る処理制御部の機能的な構成の一例を示すブロック図である。 入力画像の分割処理の一例の説明に供する概略図である。 入力画像の分割処理の一例の説明に供する概略図である。 画像処理モジュールが部分処理に分割された画像処理DAGの一例を示す概略図である。 末端の画像処理モジュールが1個の画像処理DAGの部分処理に優先度を付与する処理を説明するための図である。 末端の画像処理モジュールが1個の画像処理DAGの部分処理に優先度を付与する処理を説明するための図である。 末端の画像処理モジュールが1個の画像処理DAGの部分処理に優先度を付与する処理を説明するための図である。 末端の画像処理モジュールが1個の画像処理DAGの部分処理に優先度を付与する処理を説明するための図である。 末端の画像処理モジュールが複数個の画像処理DAGの部分処理に優先度を付与する処理を説明するための図である。 末端の画像処理モジュールが複数個の画像処理DAGの部分処理に優先度を付与する処理を説明するための図である。 末端の画像処理モジュールが複数個の画像処理DAGの部分処理に優先度を付与する処理を説明するための図である。 末端の画像処理モジュールが複数個の画像処理DAGの部分処理に優先度を付与する処理を説明するための図である。 末端の画像処理モジュールが複数個の画像処理DAGの部分処理に優先度を付与する処理を説明するための図である。 末端の画像処理モジュールが複数個の画像処理DAGの部分処理に優先度を付与する処理を説明するための図である。 実施形態に係る優先度が付与された画像処理DAGの一例を示す概略図である。 実施形態に係る優先度が付与された画像処理DAGの一例を示す概略図である。 実施形態に係る優先度が付与された画像処理DAGの一例を示す概略図である。 図14に示す画像処理DAGの各部分処理の実行順序を説明するための図である。 実施形態に係る優先度が付与された画像処理DAGの一例を示す概略図である。 図16に示す画像処理DAGの各部分処理の実行順序を説明するための図である。 実施形態に係る優先度付与処理プログラムの処理の流れを示すフローチャートである。 実施形態に係る画像処理プログラムの処理の流れを示すフローチャートである。
まず、実施形態の詳細を説明する前に、DAGの前段側のオブジェクトの部分処理から順に優先度を付与する方式の問題点を詳細に説明する。
上記方式では、例えば、後段側のオブジェクトの部分処理に対して、依存関係のある前段側のオブジェクトの部分処理よりも高い優先度を付与する。また、例えば、後段側のオブジェクトの部分処理に対して、依存関係のある前段側のオブジェクトの部分処理の優先度に従った優先度を付与する。この方式では、以下に示す問題が発生する。
例えば、図1に示すように、入力画像に対して何らかの画像処理(図1では「処理A」と表記)を行った後に、トリミング処理を行う場合を考える。なお、図1では、T11、T12等の「T」+「数字」が内部に記載された矩形が部分処理を表し、矩形の左上の数字(例えば、「T11」に対する「10」等)が部分処理に付与された優先度を表す。
この場合、図1に示すように、前段側のオブジェクトの部分処理から優先度を付与すると、トリミング処理によって出力画像を得るためには不要な分割画像も部分処理T11によって実行されてしまう。すなわち、無駄な画像処理が実行される結果、画像処理の処理効率が低下する。なお、この問題は、トリミング処理に限定されず、画像の一部を処理対象とする画像処理においても発生する可能性がある。
次に、図2に示すように、例えば、縮小処理のように、画像全体に対して1つの部分処理(図2の例ではT21)を行うオブジェクトがDAGに含まれる場合を考える。この場合、図2に示すように、前段側のオブジェクトの部分処理から優先度を付与すると、処理Bの各部分処理T41〜T44は、縮小処理(すなわち、部分処理T21)が終了しないと処理が開始できない。このため、処理Bが実行可能となった時点では、処理Aの部分処理T31〜T34のそれぞれの出力画像がメモリ上に蓄積されてしまう。
これに対し、例えば、部分処理T21に対して部分処理T31〜T34よりも高い優先度を付与すると、処理A、Bは、T31、T41、T32、T42、…といった順で部分処理が実行される。従って、例えば、部分処理T41が終了した時点で、部分処理T31の出力メモリ(すなわち、部分処理T41の入力メモリ)が解放される結果、消費メモリ量が低減される。このため、画像処理の処理効率の低下が抑制される。
次に、図3に示すように、入力画像の正面視上下を反転させずに画像処理を行うオブジェクトの後に、正面視上下を反転させる画像処理を行うオブジェクトが連結された場合を考える。一般に、表示部への画像の表示及び紙等の記録材料への画像の形成は、ラスタースキャンにより行われることが多いため、出力画像は正面視上から順に出力されることが好ましい場合が多い。これに対し、前段側のオブジェクトの部分処理から優先度を付与すると、画像の正面視上下を反転させる画像処理を行うオブジェクトに対し、出力画像の正面視上の位置の分割画像を処理する部分処理から順に高い優先度を付与しても、以下の問題が発生する。すなわち、この場合、図3の例では、部分処理T11、T21、T12、T22、T13、T23の順に部分処理が実行されるため、出力画像は正面視下から順に出力されてしまう。
次に、図4に示すように、DAGの末端のオブジェクトが複数(図4の例では2個)存在する場合を考える。この場合、上記方式では、消費メモリ量の節約のために、末端のオブジェクト間で部分処理が順番に実行される。図4の例では、部分処理T31、T51、T32、T52、T33、T53の順に部分処理が実行される。しかしながら、例えば、末端の複数のオブジェクトの出力画像が複数ページの画像群である場合、1ページ目の画像、2ページ目の画像とページ順に出力画像が出力されることが好ましい。上記方式では、この場合に、好ましい順番で出力画像が出力されない場合がある。
以下の実施形態では、以上説明した問題に対応するために、DAGの末端のオブジェクトの部分処理に優先度を付与し、前段側のオブジェクトの部分処理には、その部分処理に依存関係のある後段側のオブジェクトの部分処理の優先度の最大値を伝播させる。以下、図面を参照して、本発明を実施するための形態例を詳細に説明する。
まず、図5を参照して、画像処理装置として機能するコンピュータ10の構成を説明する。なお、コンピュータ10は、複写機、プリンタ、ファクシミリ装置、これらの装置の機能を兼ね備えた複合機、及びスキャナ等の内部で画像処理を行う画像取扱機器に組み込まれたコンピュータであってもよい。また、コンピュータ10は、PC(Personal Computer)等の独立したコンピュータであってもよく、PDA(Personal Digital Assistant)及び携帯電話機等の携帯機器に組み込まれたコンピュータであってもよい。
図5に示すように、本実施形態に係るコンピュータ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は、第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 Disc Read Only Memory)等の記録媒体に書き込む書込装置が適用される。また、画像出力部24は、画像処理を経た画像データを、通信回線を介して外部装置に送信する送信部が適用される。また、画像出力部24は、画像処理を経た画像データを記憶する画像記憶部(メモリ14又は記憶部20)であってもよい。
図5に示すように、記憶部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について詳細に説明する。図5に示すように、画像処理プログラム群34は、モジュールライブラリ36、処理構築部42のプログラム、及び処理制御部46のプログラムを含む。
モジュールライブラリ36は、予め定められた互いに異なる画像処理を行う複数種類の画像処理モジュール38のプログラムが各々登録されている。この画像処理としては、例えば、入力処理、フィルタ処理、色変換処理、拡大・縮小処理(図5では「拡縮処理」と表記)、スキュー角検知処理、画像回転処理、画像合成処理、及び出力処理等が挙げられる。
また、モジュールライブラリ36には、画像処理の種類が同一で、かつ実行する画像処理の内容が異なる画像処理モジュール38も登録されている。図5では、この種の画像処理モジュールを「モジュール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等が用意されている。
また、本実施形態に係る画像処理モジュール38には、個々の画像処理モジュール38を、第1演算部12A及び第2演算部12Bの何れの演算部で実行するかを示す演算部情報が含まれている。なお、演算部情報は、画像処理モジュール38の種類及び画像処理の内容の少なくとも一方に応じて予め設定されていてもよいし、アプリケーション32からの指示により、後述する処理構築部42による画像処理DAG50Aの構築時に設定されてもよい。
また、モジュールライブラリ36には、画像データを記憶するための記憶領域(バッファ)を備えたバッファモジュール40も登録されている。
本実施形態に係る処理構築部42は、アプリケーション32からの指示により、DAG形態の画像処理DAG50Aを構築する。画像処理DAG50Aは、一例として図6Aに示すように、1つ以上の画像処理モジュール38が、個々の画像処理モジュール38の前段及び後段の少なくとも一方に配置されたバッファモジュール40を介して連結される。
なお、個々の画像処理モジュール38は、入力画像データに対して画像処理を実行して出力画像データを出力するオブジェクトの一例である。また、画像処理DAG50Aは、画像処理モジュール38が複数連結されたオブジェクト群の一例である。また、図6Aに示す例では、バッファモジュール40を介して前段に画像処理モジュール38が連結された画像処理モジュール38は、前段の画像処理モジュール38による画像処理が終了した場合に、自身の画像処理の実行が可能となることを示している。また、バッファモジュール40を介して前段に複数の画像処理モジュール38が連結された画像処理モジュール38は、前段の複数の画像処理モジュール38の全ての画像処理が終了した場合に、自身の画像処理の実行が可能となることを示している。
また、図6Aでは、各モジュールのみが処理の順に接続されたDAGを示しているが、このDAGが実行される際には、図6Bに示すようにメモリ14に記憶された画像データが入力されてDAGに従って画像処理が行われる。そして、最終的にメモリ14に処理済みの画像データ等の処理結果が記憶される。なお、各画像処理モジュール38で実行される画像処理を第2演算部12Bにより実行する場合は、図6Bに示したメモリ14がローカルメモリ13となる。
次に、図7を参照して、本実施形態に係る処理制御部46の機能的な構成を説明する。図7に示すように、処理制御部46は、分割部60、依存関係付与部62、優先度付与部64、実行可能部分処理記憶部66、実行部68、及び出力部70を備えている。
本実施形態に係る分割部60は、入力画像データの処理対象とする部分により示される画像を複数の部分領域(以下、「分割画像」という。)に分割する。一例として図8Aに示すように、分割部60は、入力画像データの処理対象とする部分により示される画像Gを、複数(図8Aに示す例では3つ)の分割画像B1〜B3に分割する。なお、以下では分割画像を示す画像データを「分割画像データ」という。また、入力画像データの処理対象とする部分とは、色変換処理のように入力画像全体を処理対象とする画像処理では、入力画像データ全体が処理対象とする部分を意味する。また、入力画像データの処理対象とする部分とは、切り抜き(トリミング)処理のように、入力画像の一部を処理対象とする画像処理では、入力画像の一部を意味する。以下では、錯綜を回避するために、入力画像データの処理対象とする部分を、単に「入力画像データ」という。
また、図8Aに示した例では、分割部60が画像Gを正面視上下に分割しているが、これに限定されない。例えば分割部60は画像Gを正面視左右に分割してもよいし、図8Bに示すように、正面視上下左右に分割してもよい。
なお、分割部60による入力画像データの分割数は特に限定されない。例えば、分割部60は、予め定められた数又はサイズで入力画像データを分割してもよい。また、例えば、分割部60は、画像処理モジュール38による画像処理を実行する演算部が有するプロセッサ・コア数以下で、かつ2以上の数に入力画像データを分割してもよい。
また、例えば、分割部60は、画像処理モジュール38による画像処理を実行する演算部が有するキャッシュメモリの容量以下のサイズで入力画像データを分割してもよい。この場合、例えば、分割部60は、画像処理モジュール38による画像処理を実行する演算部のプロセッサから最も遠いレベルのキャッシュメモリ、所謂LLC(Last Level Cache)の容量以下で、かつLLCの容量に極力一致するサイズで入力画像データを分割する形態が例示される。
また、一例として図9に示すように、分割部60は、画像処理DAG50Aに対し、各画像処理モジュール38で実行される画像処理を、分割画像データの各々に対応する部分処理39(タスク)に分割して画像処理DAG50Bを構築する。なお、図9は、図6Aに示した画像処理DAG50Aにおいて、入力画像データを4つの分割画像データに分割した場合の画像処理DAG50Bを示している。図9では、錯綜を回避するために、バッファモジュール40の図示を省略している。また、後述する図10A〜D、図11A〜F、図12〜図14、及び図16でも同様に、バッファモジュール40の図示を省略している。
本実施形態に係る依存関係付与部62は、画像処理モジュール38で実行される画像処理の種類に応じて、前段に連結された画像処理モジュール38の部分処理39と、後段に連結された画像処理モジュール38の部分処理39との間で依存関係を付与する。なお、図9では、この依存関係を破線の矢印で示している。
例えば、色変換処理のように、処理対象とする画素のみに対して画像処理を行う処理は、各部分処理39も1対1の依存関係となる。一方、例えば、フィルタ処理のように、処理対象とする画素の周辺画素も必要な画像処理では、周辺画素に対して画像処理を行う前段の部分処理39にも依存関係を付与することとなる。すなわち、この依存関係は、連結された画像処理モジュール38間において、前段に連結された画像処理モジュール38の部分処理39が終了した場合に、後段に連結された画像処理モジュール38の部分処理39が実行可能となる関係である。従って、各部分処理39は、前段に依存関係が付与された部分処理39が存在しない場合か、又は依存関係が付与された前段の全ての部分処理39が終了した場合に実行可能となる。
具体的には、例えば、図9に示す部分処理39A及び部分処理39Bは、画像処理DAG50Bによる画像処理の実行開始時に実行可能となる。また、例えば、図9に示す部分処理39Cは、依存関係が付与された前段の部分処理39A及び部分処理39Bの双方の処理が終了した場合に実行可能となる。
本実施形態に係る優先度付与部64は、各部分処理39に対して、部分処理39の実行順の優先順位を表す優先度を付与する。本実施形態に係る優先度付与部64は、優先度として、優先度が高いほど大きい値を付与する。すなわち、本実施形態では、同時に複数の部分処理39が実行可能となった場合、優先度として付与された値が大きい部分処理39から順に実行される。なお、優先度付与部64は、優先度として、優先度が高いほど小さい値を付与してもよい。この場合は、同時に複数の部分処理39が実行可能となった場合、優先度として付与された値が小さい部分処理39から順に実行される。
具体的には、優先度付与部64は、画像処理DAG50Bの各画像処理モジュール38のうち、後段側に依存関係が付与された画像処理モジュール38が存在しない末端の画像処理モジュール38の部分処理39に対し、予め定められた付与ルールに従って優先度を付与する。この付与ルールは、固定的に設定されてもよいし、複数の付与ルールの中から、ユーザにより指定されてもよいし、システム要求等に基づいて選択してもよい。
本実施形態では、付与ルールの一例として、末端の画像処理モジュール38が1個の場合は、末端の画像処理モジュール38の入力画像における正面視左上に位置する分割画像の優先度を最高とし、正面視右下に向かうほど低い優先度を付与するルールを適用した場合を説明する。これは、一般に、表示部への画像の表示、紙等の記録材料への画像の形成、ネットワークを介した画像データの転送等は、ラスタースキャンにより行われることが多く、出力画像は正面視上から順に出力されることが好ましい場合が多いためである。
この付与ルールに従って、図10Aに示す画像処理DAG50Bにおける末端の画像処理モジュール38の部分処理39に優先度が付与された一例を図10Bに示す。なお、図10A、10Bにおける各部分処理39の内部の文字列(「T11」等)は、各部分処理39を区別するための文字列であり、以下では、各部分処理39を区別して説明する場合は、部分処理T11のように末尾に内部の文字列を付与して説明する。また、図10Bにおける部分処理39の左上の数字(「10」等)は、各部分処理39に付与された優先度を示している。また、図10A、10Bの部分処理39について、左上に数字が記載されていない部分処理39は、優先度が付与されていない部分処理39を示している。なお、図10A、10Bを例にして説明した部分処理39の内部の文字列、及び優先度は、後述する図10C〜D、図11A〜F、図12〜図14、及び図16についても同様である。
図10Bの例では、優先度付与部64は、出力画像の正面視下に位置する分割画像を示す分割画像データを処理する部分処理39よりも、出力画像の正面視上に位置する分割画像を示す分割画像データを処理する部分処理39に高い優先度を付与する。なお、図10Bの例では、部分処理39の位置が出力画像の正面視の位置に対応するものとする。すなわち、図10Bの例では、優先度付与部64は、部分処理T31、T32、T33の順に低くなる優先度を付与する。この場合の優先度の値は、優先度の高低を判定可能であればよいため、図10Bに示すように、等間隔で連続していなくてもよいし、例えば、負の値でもよい。
また、本実施形態では、画像処理DAG50Bに末端の画像処理モジュール38が複数存在する場合、以下に示す2つの付与ルールが選択可能とされる。
まず、第1の付与ルールは、画像処理モジュール38単位で順番に画像処理が実行される優先度を付与するというルールである。このルールは、末端の複数の画像処理モジュール38の出力画像が複数ページの画像群である場合、ページ順に出力画像が出力されるためのルールである。第1の付与ルールに従って、図11Aに示す画像処理DAG50Bにおける末端の画像処理モジュール38の部分処理39に優先度が付与された一例を図11Bに示す。
図11Bに示すように、第1の付与ルールでは、ページ番号が小さい出力画像を出力する画像処理モジュール38の部分処理39ほど高い優先度が付与される。なお、例えば、画像処理モジュール38内での各部分処理39への優先度の付与ルールは、前述した付与ルールと同様でよい。
次に、第2の付与ルールは、画像処理モジュール38間で各画像処理モジュール38の部分処理39が順番に実行される優先度を付与するというルールである。第2の付与ルールに従って、図11Aに示す画像処理DAG50Bにおける末端の画像処理モジュール38の部分処理39に優先度が付与された一例を図11Cに示す。
図11Cに示すように、第2の付与ルールでは、末端の画像処理モジュール38間で各画像処理モジュール38の部分処理39が順番に実行される。なお、例えば、各画像処理モジュール38内での各部分処理39への優先度の付与ルールは、前述した付与ルールと同様でよい。また、複数の末端の画像処理モジュール38のうち、何れの画像処理モジュール38の優先度を高くするかは、特に限定されず、例えば、ランダムでもよいし、アプリケーション32からの画像処理DAGの構築指示に含んでもよい。
優先度付与部64は、末端の画像処理モジュール38の部分処理39への優先度の付与が終わると、後段側に依存関係が付与されている部分処理39を有する前段側の画像処理モジュール38の部分処理39に対して優先度を付与する。本実施形態では、優先度付与部64は、後段側に依存関係が付与されている部分処理39を有する前段側の画像処理モジュール38の部分処理39の優先度として、依存関係が付与されている後段側の部分処理39の優先度の最大値を付与する。
図10Bに示す前段側の部分処理39に1つの後段側の部分処理39が依存している例では、図10Cに示すように、優先度付与部64は、後段側の部分処理39の優先度を前段側の画像処理モジュール38の部分処理39に付与する。同様に、図10Dに示すように、優先度付与部64は、最前段の画像処理モジュール38の部分処理39まで、後段側の部分処理39の優先度を付与する。
また、図11Bに示す前段側の部分処理39に複数の後段側の部分処理39が依存している例では、図11Dに示すように、優先度付与部64は、後段側の部分処理39の優先度の最大値を前段側の画像処理モジュール38の部分処理39に付与する。具体的な一例として、図11Dでは、部分処理T21の優先度として、部分処理T31の優先度である30と、部分処理T51の優先度である27とのうちの最大値である30が付与される。同様に、図11Eに示すように、優先度付与部64は、最前段の画像処理モジュール38の部分処理39まで、後段側の部分処理39の優先度を付与する。また、図11Cに示す画像処理DAG50Bの全ての部分処理39に優先度を付与した状態を図11Fに示す。
なお、第1の付与ルール及び第2の付与ルールの何れを用いるかは、例えば、ユーザ指定によって選択されてもよいし、システム要求に従って選択されてもよい。
また、優先度付与部64は、後段側の部分処理39に依存関係が付与されていない部分処理39については、優先度を付与しない。
本実施形態に係る実行可能部分処理記憶部66は、画像処理DAG50Bに従って、各部分処理39間で付与された依存関係に基づいて実行可能となった部分処理39のうち、優先度が最高の部分処理39が格納される記憶領域を含む。
本実施形態に係る実行部68は、画像処理DAG50Bに従って、各部分処理39間で付与された依存関係に基づいて実行可能となった部分処理39のうち、優先度が最高の部分処理39を実行可能部分処理記憶部66に格納する。また、実行部68は、実行可能部分処理記憶部66に格納された部分処理39を実行する。また、実行部68は、優先度が付与されていない部分処理39については、実行可能となった場合でも、実行可能部分処理記憶部66に格納しないことによって、実行対象としない。
このように、本実施形態に係る優先度付与部64は、末端の画像処理モジュール38の部分処理39から優先度を付与している。従って、図12に示すように、入力画像の正面視上下を反転させずに画像処理を行う画像処理モジュール38の後に、正面視上下を反転させる画像処理を行う画像処理モジュール38が連結された場合でも、出力画像が正面視上から順に出力される優先度が付与される。
また、図13に示すように、後段側に依存関係が付与された部分処理39を有しない部分処理39(図13の例では部分処理T11)には優先度が付与されないため、無駄な画像処理が実行されない。
また、本実施形態に係る優先度付与部64は、後段側に依存関係が付与されている部分処理39を有する前段側の画像処理モジュール38の部分処理39の優先度として、依存関係が付与されている後段側の部分処理39の優先度の最大値を付与している。従って、実行可能で、かつ優先度が同一の部分処理39が複数存在する場合がある。次に、実行可能で、かつ優先度が同一の部分処理39が複数存在する場合における実行部68の機能を説明する。
まず、実行可能で、かつ優先度が同一の部分処理39が複数存在する場合における実行部68が実行対象とする部分処理39を選択する方式の一例としての第1の方式を説明する。
第1の方式では、実行部68は、実行可能部分処理記憶部66に格納された優先度が同一の複数の部分処理39の各々について、以下に示す(1)から(4)までの数を、(1)から(4)の順番で求める。
(1)部分処理39の実行完了後に実行可能となる、当該部分処理39に依存し、かつ当該部分処理39と同じ優先度の部分処理39の数(以下、「第1の数」という)。
(2)部分処理39の実行完了後に実行可能とならない、当該部分処理39に依存し、かつ当該部分処理39と同じ優先度の部分処理39の数(以下、「第2の数」という)。
(3)部分処理39の実行完了後に実行可能となる、当該部分処理39に依存し、かつ当該部分処理39よりも低い優先度の部分処理39の数(以下、「第3の数」という)。
(4)部分処理39の実行完了後に実行可能とならない、当該部分処理39に依存し、かつ当該部分処理39よりも低い優先度の部分処理39の数(以下、「第4の数」という)。
実行部68は、これらの数を求める際、各部分処理39について求めた数が異なる時点で、求めた数が最大の部分処理39を選択して実行する。また、この場合、実行部68は、以降の数を求めない。具体的には、実行部68は、例えば、各部分処理39について求めた第1の数が異なる場合、第1の数が最大の部分処理39を実行し、第2の数、第3の数、及び第4の数は求めない。これにより、第1の数から第4の数まで全て求める場合に比較して、演算量が低減される。
次に、実行可能で、かつ優先度が同一の部分処理39が複数存在する場合における実行部68が実行対象とする部分処理39を選択する方式の一例としての第2の方式を説明する。
第2の方式では、実行部68は、実行可能部分処理記憶部66に格納された優先度が同一の複数の部分処理39の各々について、以下に示す差Dを求める。すなわち、この場合、実行部68は、部分処理39の実行のために必要となる出力領域のメモリ量に対する部分処理39の実行完了後に開放される入力領域のメモリ量の差Dを求める。具体的には、実行部68は、以下の(1)式に従って、差Dを求める。なお、(1)式におけるOは部分処理39の実行のために必要となる部分処理39の出力領域のメモリ量を表し、Iは部分処理39の実行完了後に開放される部分処理39の入力領域のメモリ量を表す。
D=O−I・・・(1)
そして、実行部68は、各部分処理39について求めた差Dが最小の部分処理39を選択して実行する。
一例として、図14に示すように優先度が付与された画像処理DAG50Bに従って、第1の方式を用いて画像処理を実行する場合の部分処理39の実行順序を、図15を参照して説明する。
図15に示すように、画像処理の実行開始の時点t0では、部分処理T11〜T14が実行可能となる。また、部分処理T11〜T14には、同一の優先度である10が付与されている。
従って、実行部68は、第1の方式に従って、部分処理T11〜T14の各々について、第1の数を求める。具体的には、部分処理T11の実行完了後に実行可能となる、部分処理T11に依存し、かつ部分処理T11と同じ優先度の部分処理39は、部分処理T31のみであるため、第1の数は1となる。一方、部分処理T12の実行完了後に実行可能となる、部分処理T12に依存し、かつ部分処理T12と同じ優先度の部分処理39は存在しないため、第1の数は0となる。同様に、部分処理T13、T14についても第1の数は0となる。
従って、実行部68は、部分処理T11〜T14の各々について求めた第1の数が最大の部分処理T11を選択して実行する。また、この場合、実行部68は、部分処理T11〜T14の各々について第2の数〜第4の数は求めない。
部分処理T11の実行が完了すると新たに部分処理T31が実行可能となるため、時点t1では、部分処理T12〜T14、T31が実行可能となる。また、部分処理T12〜T14、T31には、同一の優先度である10が付与されている。
従って、実行部68は、第1の方式に従って、部分処理T12〜T14、T31の各々について、第1の数を求める。部分処理T12〜T14、T31は、それぞれ実行完了後に実行可能となる、部分処理T12〜T14、T31に依存し、かつ部分処理T12〜T14、T31と同じ優先度の部分処理39は存在しないため、第1の数は0となる。部分処理T12〜T14、T31の各々について求めた第1の数が同じであるため、次に、実行部68は、第2の数を求める。
具体的には、部分処理T12の実行完了後に実行可能とならない、部分処理T12に依存し、かつ部分処理T12と同じ優先度の部分処理39は、部分処理T21のみであるため、第2の数は1となる。同様に、部分処理T13、T14の実行完了後に実行可能とならない、部分処理T13、T14に依存し、かつ部分処理T13、T14と同じ優先度の部分処理39は、部分処理T21のみであるため、第2の数は1となる。また、部分処理T31の実行完了後に実行可能とならない、部分処理T31に依存し、かつ部分処理T31と同じ優先度の部分処理39は、部分処理T41のみであるため、第2の数は1となる。部分処理T12〜T14、T31の各々について求めた第2の数が同じであるため、次に、実行部68は、第3の数を求める。
具体的には、部分処理T12の実行完了後に実行可能となる、部分処理T12に依存し、かつ部分処理T12よりも低い優先度(ここでは、部分処理T12の優先度の値より1小さい優先度が9)の部分処理39は、部分処理T32のみであるため、第2の数は1となる。一方、部分処理T13、T14、T31の実行完了後に実行可能となる、部分処理T13、T14、T31に依存し、かつ優先度が9の部分処理39は存在しないため、第3の数は0となる。
従って、実行部68は、部分処理T12〜T14、T31の各々について求めた第3の数が最大の部分処理T12を選択して実行する。また、この場合、実行部68は、部分処理T12〜T14、T31の各々について第4の数は求めない。
部分処理T12の実行が完了すると新たに部分処理T32が実行可能となるため、時点t2では、部分処理T13、T14、T31、T32が実行可能となる。また、部分処理T13、T14、T31、T32の優先度うち、最高の優先度は10であり、優先度として10が付与されている部分処理39は、部分処理T13、T14、T31の3個が存在する。
従って、実行部68は、第1の方式に従って、部分処理T13、T14、T31の各々について、第1の数を求める。なお、第1の数から第4の数の求め方は前述したため、以下では詳細な説明を省略する。図15に示すように、部分処理T13、T14、T31の各々について、第1の数は0となり、第2の数は1となる。また、部分処理T13、T14、T31の各々について、優先度が9の部分処理39に関する第3の数及び第4の数は0となる。
この場合、本実施形態では、実行部68は、部分処理T13、T14、T31の各々について、更に優先度が低い優先度が8の部分処理39に関する第3の数を求める。優先度が8の部分処理39に関する第3の数は、部分処理T13については1となり、部分処理T14、T31については0となる。従って、実行部68は、部分処理T13を選択して実行する。
同様に、時点t3では、部分処理T14、T31のうちの第1の数が最大の部分処理T14が選択されて実行され、時点t4では、部分処理T21、T31のうちの第4の数が最大の部分処理T21が選択されて実行される。時点t5以降は、実行可能で、かつ優先度が最高の部分処理39が1個であるため、その部分処理39が実行される。
次に、一例として、図16に示すように優先度が付与された画像処理DAG50Bに従って、第1の方式及び第2の方式の組み合わせを用いて画像処理を実行する場合の部分処理39の実行順序を、図17を参照して説明する。なお、ここでは、第1の方式及び第2の方式の組み合わせの一例として、第1の方式に従って第1の数及び第2の数を求め、求めた数が同じ場合に第2の方式を用いる形態例を説明する。
また、図16に示す画像処理DAG50Bでは、2つの入力画像を処理対象とし、第1の入力画像の縦及び横の画素数が第2の入力画像の半分、すなわち、第1の入力画像を示す画像データの容量が第2の入力画像を示す画像データの容量の1/4であるものとする。また、図16に示す例では、第1の入力画像を2個の同じ容量の分割画像に分割し、第2の入力画像を4個の同じ容量の分割画像に分割するものとする。また、本実施形態では、各分割画像を記憶するために必要なメモリ量を相対値で取り扱う。具体的には、第1の入力画像を分割して得られた分割画像を記憶するために必要なメモリ量を1とする。従って、第2の入力画像を分割して得られた分割画像を記憶するために必要なメモリ量は、以下の(2)式に従って2となる。
第2の入力画像を分割して得られた分割画像を記憶するために必要なメモリ量=第1の入力画像を記憶するために必要なメモリ量(1×2=2)×4(倍)÷4(個)=2・・・(2)
図17に示すように、画像処理の実行開始の時点t0で実行可能で、かつ優先度が最高(図17の例では10)の部分処理39は、部分処理T11、T31、T32の3個である。従って、実行部68は、第1の方式に従って、部分処理T11、T31、T32の各々について、第1の数を求める。図17に示すように、部分処理T11については第1の数が1となり、部分処理T31、T32については第1の数が0となるため、部分処理T11が選択されて実行される。
部分処理T11の実行が完了すると新たに部分処理T21が実行可能となるため、時点t1で実行可能で、かつ優先度が最高の部分処理39は、部分処理T21、T31、T32の3個である。従って、実行部68は、第1の方式に従って、部分処理T21、T31、T32の各々について、第1の数を求める。図17に示すように、部分処理T21、T31、T32の各々について、第1の数は0となり、第2の数は1となる。部分処理T21、T31、T32の各々について、第1の数及び第2の数が同じであるため、第2の方式が用いられる。
実行部68は、部分処理T21、T31、T32の各々について、上記(1)式に従って差D(図17ではメモリ量増減と表記)を求める。具体的には、部分処理T21の実行のために必要となる出力領域のメモリ量は1であり、部分処理T21の実行完了後に開放される入力領域(すなわち、部分処理T11の出力領域)のメモリ量は1であるため、差Dは0(=1−1)となる。一方、部分処理T31の実行のために必要となる出力領域のメモリ量は2であり、部分処理T31の実行完了後に開放される入力領域のメモリ量は0であるため、差Dは2(=2−0)となる。同様に、部分処理T32についても差Dは2(=2−0)となる。なお、本実施形態では、画像処理DAG50Bの最前段の画像処理モジュール38に入力される入力画像が記憶された記憶領域は、画像処理DAG50Bの全画像処理モジュール38による画像処理が終了するまで開放されないものとする。
従って、実行部68は、部分処理T21、T31、T32の各々について差Dが最小の部分処理T21を選択して実行する。部分処理T21の実行が完了しても新たに実行可能となる部分処理39が存在しないため、時点t2では、部分処理T31、T32が実行可能で、最高の優先度の部分処理39となる。従って、実行部68は、第1の方式に従って、部分処理T31、T32の各々について、第1の数を求める。図17に示すように、部分処理T31、T32の各々について、第1の数は0となり、第2の数は1となる。部分処理T31、T32の各々について、第1の数及び第2の数が同じであるため、第2の方式が用いられる。
実行部68は、部分処理T31、T32の各々について、上記(1)式に従って差Dを求める。具体的には、部分処理T31の実行のために必要となる出力領域のメモリ量は2であり、部分処理T31の実行完了後に開放される入力領域のメモリ量は0であるため、差Dは2(=2−0)となる。同様に、部分処理T32についても差Dは2(=2−0)となる。部分処理T31、T32は、差Dも同じであるため、実行部68は、何れを優先して実行してもよいと判断し、部分処理T31を選択して実行する。
時点t3〜t8では、実行可能で、かつ優先度が最高の部分処理39が1個であるため、その部分処理39が実行される。時点t9では、部分処理T12、T34が実行可能で、かつ最高の優先度の部分処理39となる。従って、実行部68は、第1の方式に従って、部分処理T12、T34の各々について、第1の数を求める。図17に示すように、部分処理T12、T34の各々について、第1の数は0となり、第2の数は1となる。部分処理T12、T34の各々について、第1の数及び第2の数がそれぞれ同じであるため、第2の方式が用いられる。
実行部68は、部分処理T12、T34の各々について、上記(1)式に従って差Dを求める。具体的には、部分処理T12の実行のために必要となる出力領域のメモリ量は1であり、部分処理T12の実行完了後に開放される入力領域のメモリ量は0であるため、差Dは1(=1−0)となる。一方、部分処理T34の実行のために必要となる出力領域のメモリ量は2であり、部分処理T31の実行完了後に開放される入力領域のメモリ量は0であるため、差Dは2(=2−0)となる。従って、実行部68は、部分処理T12、T34の各々について求めた差Dが最小の部分処理T12を選択して実行する。
以降も同様であるため詳細な説明は省略するが、時点t10では、部分処理T22、T34のうちの第1の数が最大の部分処理T34が選択されて実行される。時点t11では、部分処理T22、T43の各々について第1の数、第2の数、及び差Dが同じであるため、部分処理T22が選択されて実行される。時点t12以降は、実行可能で、かつ優先度が最高の部分処理39が1個であるため、その部分処理39が実行される。
なお、第1の方式を単独で用いるか、第2の方式を単独で用いるか、又は第1の方式と第2の方式とを組み合わせて用いるかは、特に限定されず、例えば、ユーザ指定によって選択されてもよいし、システム要求に従って選択されてもよい。
本実施形態に係る出力部70は、画像処理DAG50Bの最終段の画像処理モジュール38の部分処理39により実行された画像処理の結果得られた出力画像データを出力する。本実施形態では、出力部70は、得られた出力画像データを表示部16に表示する。なお、出力部70は、出力画像データを外部装置に出力(送信)してもよい。また、コンピュータ10がプリンタに組み込まれている場合は、出力部70は、出力画像データにより示される出力画像を紙等の記録材料に出力(形成)してもよい。
次に、図18及び図19を参照して、本実施形態に係るコンピュータ10の作用を説明する。なお、図18は、アプリケーション32により画像処理の実行開始の指示が入力された場合に第1演算部12Aが備えるコアの何れか1つによって実行される優先度付与処理プログラムの処理の流れを示すフローチャートである。また、この優先度付与処理プログラムは記憶部20に予めインストールされている。また、第1演算部12Aが備えるコアが画像処理プログラムを実行することにより、第1演算部12Aが前述した処理構築部42、分割部60、依存関係付与部62、及び優先度付与部64として機能する。
また、図19は、図18に示す優先度付与処理の終了後に、第1演算部12Aが備えるコアによって実行される画像処理プログラムの処理の流れを示すフローチャートである。また、この画像処理プログラムは記憶部20に予めインストールされている。また、第1演算部12Aのコアが画像処理プログラムを実行することにより、第1演算部12Aが前述した実行部68及び出力部70として機能する。なお、図19に示す画像処理は、第1演算部12Aの1つのコアにより実行されてもよいし、第1演算部12Aの複数のコアにより並列に実行されてもよい。
図18のステップ100で、処理構築部42は、アプリケーション32からの構築指示に従い、アプリケーション32が指示した画像処理を行う画像処理DAG50Aを構築する。ステップ102で、分割部60は、前述したように、入力画像データを複数の分割画像データに分割する。そして、分割部60は、ステップ100で構築された画像処理DAG50Aに対し、各画像処理モジュール38で実行される画像処理を、分割画像データの各々に対応する部分処理39に分割して画像処理DAG50Bを構築する。
ステップ104で、依存関係付与部62は、画像処理モジュール38で実行される画像処理の種類に応じて、前段に連結された画像処理モジュール38の部分処理39と、後段に連結された画像処理モジュール38の部分処理39との間で依存関係を付与する。ステップ106で、優先度付与部64は、前述したように、画像処理DAG50Bの各画像処理モジュール38のうち、末端の画像処理モジュール38の部分処理39に対し、予め定められた付与ルールに従って優先度を付与する。
ステップ108で、優先度付与部64は、既に優先度が付与された部分処理39に依存関係が付与された前段側の画像処理モジュール38の部分処理39が存在するか否かを判定する。この判定が肯定判定となった場合は、処理はステップ110に移行する。
ステップ110で、優先度付与部64は、前述したように、後段側に依存関係が付与されている部分処理39を有する前段側の画像処理モジュール38の部分処理39の優先度として、依存関係が付与されている後段側の部分処理39の優先度の最大値を付与する。ステップ110の処理が終了すると処理はステップ108に戻る。一方、ステップ108の判定が否定判定となった場合は、本優先度付与処理が終了する。
図19のステップ120で、実行部68は、画像処理DAG50Bに従って、各部分処理39間で付与された依存関係に基づいて実行可能となった部分処理39のうち、実行可能となった部分処理39が存在するか否かを判定する。この判定が肯定判定となった場合は、処理はステップ122に移行する。
ステップ122で、実行部68は、ステップ120で実行可能となったと判定された部分処理39のうち、優先度が最高の部分処理39を実行可能部分処理記憶部66に格納する。ステップ124で、実行部68は、実行可能部分処理記憶部66に格納された部分処理39の数が1よりも大きいか否かを判定する。この判定が否定判定となった場合は、処理はステップ128に移行し、肯定判定となった場合は、処理はステップ126に移行する。
ステップ126で、実行部68は、前述したように、実行可能部分処理記憶部66に格納された部分処理39から、第1の方式、第2の方式、又は第1の方式と第2の方式との組み合わせに従って、1つの部分処理39を選択する。ステップ128で、実行部68は、実行可能部分処理記憶部66に格納された部分処理39の数が1であるか否かを判定する。この判定が否定判定となった場合は、処理はステップ120に戻り、肯定判定となった場合は、処理はステップ130に移行する。ステップ130で、実行部68は、実行可能部分処理記憶部66に格納された部分処理39を取得することによって、実行対象とする部分処理39を選択する。ステップ126又はステップ130の処理が終了すると、処理はステップ132に移行する。
ステップ132で、実行部68は、ステップ126又はステップ130で選択された部分処理39を実行する。この際、実行部68は、一例として画像処理モジュール38の演算部情報により示される演算部が第2演算部12Bである場合は、第2演算部12Bに部分処理39を実行させ、第2演算部12Bから実行結果を取得することによって部分処理39を実行する。また、実行部68は、部分処理39の実行後に、画像処理DAG50Bの依存関係を更新する。また、実行部68により実行された部分処理39が画像処理DAG50Bの末端の画像処理モジュール38の部分処理39である場合は、出力部70は、前述したように、部分処理39により実行された画像処理の結果得られた出力画像データを出力する。
ステップ134で、実行部68は、画像処理DAG50Bに従って、新たに実行可能となり、かつ実行可能部分処理記憶部66に格納された部分処理39に付与された優先度と同一の優先度が付与された部分処理39が存在するか否かを判定する。この判定が否定判定となった場合は、処理はステップ124に戻り、肯定判定となった場合は、処理はステップ136に移行する。
ステップ136で、実行部68は、新たに実行可能となり、かつ実行可能部分処理記憶部66に格納された部分処理39に付与された優先度と同一の優先度が付与された部分処理39を実行可能部分処理記憶部66に格納する。ステップ136の処理が終了すると、処理はステップ124に戻る。一方、ステップ120の判定が否定判定となった場合は、本画像処理が終了する。
以上説明したように、本実施形態によれば、画像処理DAG50Bの末端の画像処理モジュール38の部分処理39に優先度を付与している。そして、後段側に依存関係が付与されている部分処理39を有する前段側の画像処理モジュール38の部分処理39の優先度として、依存関係が付与されている後段側の部分処理39の優先度の最大値を付与している。従って、DAGの前段側のオブジェクトの部分処理から順に優先度を付与する場合に比較して、画像処理の処理効率の低下が抑制される。
また、本実施形態によれば、出力画像の正面視下に位置する分割画像を示す分割画像データを処理する部分処理39よりも、出力画像の正面視上に位置する分割画像を示す分割画像データを処理する部分処理39に高い優先度を付与する。これにより、正面視上に位置する分割画像を示す分割画像データを処理する部分処理39は、正面視下に位置する分割画像を示す分割画像データを処理する部分処理39よりも早く終了する。
なお、上記実施形態では、後段側の部分処理39に依存関係が付与されていない部分処理39については、優先度を付与しない場合について説明したが、これに限定されない。例えば、後段側の部分処理39に依存関係が付与されていない部分処理39については、部分処理39を実行しないことを表す優先度として予め定められた優先度を付与する形態としてもよい。この場合、実行部68は、上記予め定められた優先度が付与された部分処理39については、実行対象としない形態が例示される。また、この場合、上記実施形態のように各部分処理39に正の整数の優先度を付与した場合、上記予め定められた優先度として負の整数を付与する形態が例示される。
また、上記実施形態では、第1の方式において、第1の数、第2の数、第3の数、及び第4の数を順番に求める場合について説明したが、これに限定されない。第1の方式において、第1の数、第2の数、第3の数、及び第4の数のうちの何れか1つを求める形態としてもよい。この場合、求めた数が最大の部分処理39を選択して実行する形態が例示される。また、第1の方式において、第1の数、第2の数、第3の数、及び第4の数のうちの2つ以上を求める形態としてもよい。この場合、求めた数の合算値が最大の部分処理39を選択して実行する形態が例示される。
また、末端の画像処理モジュール38の部分処理39に優先度を付与する手法は、上記実施形態で示した例に限定されない。例えば、演算部情報に従って部分処理39に優先度を付与する形態としてもよい。この形態例の場合、例えば第1演算部12Aよりも第2演算部12Bの方が、画像処理の速度性能が高い場合は、次に示す形態が例示される。すなわち、この場合、第2演算部12Bで実行される画像処理モジュール38の部分処理39の優先度を、第1演算部12Aで実行される画像処理モジュール38の部分処理39の優先度よりも高くする形態が例示される。
また、上記実施形態では、画像処理モジュール38による画像処理を演算部情報により示される演算部に実行させる場合について説明したが、これに限定されない。例えば、図9の上段の連結された3つの画像処理モジュール38のように、同じ画像に対して画像処理を行う画像処理モジュール38による画像処理は同じ演算部に実行させる形態としてもよい。
また、上記実施形態では、各種プログラムが記憶部20に予め記憶(インストール)されている態様を説明したが、これに限定されない。各種プログラムは、CD−ROM、DVD−ROM(Digital Versatile Disc Read Only Memory)、USB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、各種プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
10 コンピュータ
12A 第1演算部
12B 第2演算部
14 メモリ
20 記憶部
38 画像処理モジュール
39 部分処理
42 処理構築部
46 処理制御部
DAG50A、50B 画像処理
60 分割部
62 依存関係付与部
64 優先度付与部
66 実行可能部分処理記憶部
68 実行部
70 出力部

Claims (11)

  1. 画像処理を実行するオブジェクトが有向非循環グラフ形態で複数連結されたオブジェクト群の各オブジェクトで、入力画像データにより示される入力画像が部分領域毎に分割された各分割画像データに対して部分処理を行う画像処理装置であって、
    連結された前記オブジェクト間の前記部分処理に処理の依存関係を付与する依存関係付与部と、
    前記オブジェクト群の末端のオブジェクトの部分処理に優先度を付与し、かつ後段側に依存関係が付与されている部分処理を有する前段側のオブジェクトの部分処理の優先度として、依存関係が付与されている後段側の部分処理の優先度の最大値を付与する優先度付与部と、
    前記依存関係に基づいて実行可能となった部分処理を、付与された前記優先度に従って実行する実行部と、
    を備えた画像処理装置。
  2. 前記優先度付与部は、前記末端のオブジェクトの部分処理に優先度を付与する際に、出力画像の正面視下に位置する分割画像を示す分割画像データを処理する部分処理よりも、出力画像の正面視上に位置する分割画像を示す分割画像データを処理する部分処理に高い優先度を付与する
    請求項1に記載の画像処理装置。
  3. 前記優先度付与部は、前記オブジェクト群に複数の前記末端のオブジェクトが存在する場合、前記複数の前記末端のオブジェクトの部分処理に優先度を付与する際に、オブジェクト単位で順番に画像処理が実行される優先度を付与するか、又はオブジェクト間で各オブジェクトの部分処理が順番に実行される優先度を付与する
    請求項1又は請求項2に記載の画像処理装置。
  4. 前記優先度付与部は、オブジェクト単位で順番に画像処理が実行される優先度を付与するか、又はオブジェクト間で各オブジェクトの部分処理が順番に実行される優先度を付与するかが選択可能とされる
    請求項3に記載の画像処理装置。
  5. 前記優先度付与部は、後段側の部分処理に依存関係が付与されていない部分処理については、優先度を付与しないか、又は部分処理を実行しないことを表す優先度として予め定められた優先度を付与し、
    前記実行部は、優先度が付与されていない部分処理、又は前記予め定められた優先度が付与された部分処理については、実行対象としない
    請求項1から請求項4の何れか1項に記載の画像処理装置。
  6. 前記実行部は、実行可能で、かつ優先度が同一の部分処理が複数存在する場合、
    優先度が同一の複数の部分処理の各々について、部分処理の実行完了後に実行可能となる、当該部分処理に依存し、かつ当該部分処理と同じ優先度の部分処理の数である第1の数、
    部分処理の実行完了後に実行可能とならない、当該部分処理に依存し、かつ当該部分処理と同じ優先度の部分処理の数である第2の数、
    部分処理の実行完了後に実行可能となる、当該部分処理に依存し、かつ当該部分処理よりも低い優先度の部分処理の数である第3の数、及び
    部分処理の実行完了後に実行可能とならない、当該部分処理に依存し、かつ当該部分処理よりも低い優先度の部分処理の数である第4の数の少なくとも1つを求め、
    優先度が同一の複数の部分処理の各々について求めた数が最大の部分処理を実行する
    請求項1から請求項5の何れか1項に記載の画像処理装置。
  7. 前記実行部は、前記第1の数、前記第2の数、前記第3の数、及び前記第4の数を、前記第1の数、前記第2の数、前記第3の数、及び前記第4の数の順番で求め、
    優先度が同一の複数の部分処理の各々について求めた数が異なる時点で、求めた数が最大の部分処理を実行する
    請求項6に記載の画像処理装置。
  8. 前記実行部は、実行可能で、かつ優先度が同一の部分処理が複数存在する場合、
    優先度が同一の複数の部分処理の各々について、部分処理の実行のために必要となる出力領域のメモリ量に対する部分処理の実行完了後に開放される入力領域のメモリ量の差が最小の部分処理を実行する
    請求項1から請求項5の何れか1項に記載の画像処理装置。
  9. 前記実行部は、実行可能で、かつ優先度が同一の部分処理が複数存在する場合、
    優先度が同一の複数の部分処理の各々について、部分処理の実行完了後に実行可能となる、当該部分処理に依存し、かつ当該部分処理と同じ優先度の部分処理の数である第1の数、
    部分処理の実行完了後に実行可能とならない、当該部分処理に依存し、かつ当該部分処理と同じ優先度の部分処理の数である第2の数、
    部分処理の実行完了後に実行可能となる、当該部分処理に依存し、かつ当該部分処理よりも低い優先度の部分処理の数である第3の数、及び
    部分処理の実行完了後に実行可能とならない、当該部分処理に依存し、かつ当該部分処理よりも低い優先度の部分処理の数である第4の数の少なくとも1つを求め、
    優先度が同一の複数の部分処理の各々について求めた数が最大の部分処理を実行する第1の方式と、
    優先度が同一の複数の部分処理の各々について、部分処理の実行のために必要となる出力領域のメモリ量に対する部分処理の実行完了後に開放される入力領域のメモリ量の差が最小の部分処理を実行する第2の方式と、の何れを用いるか、又は組み合わせて用いるかが選択可能とされる
    請求項1から請求項5の何れか1項に記載の画像処理装置。
  10. 画像処理を実行するオブジェクトが有向非循環グラフ形態で複数連結されたオブジェクト群の各オブジェクトで、入力画像データにより示される入力画像が部分領域毎に分割された各分割画像データに対して部分処理を行う画像処理装置による画像処理方法であって、
    連結された前記オブジェクト間の前記部分処理に処理の依存関係を付与し、
    前記オブジェクト群の末端のオブジェクトの部分処理に優先度を付与し、かつ後段側に依存関係が付与されている部分処理を有する前段側のオブジェクトの部分処理の優先度として、依存関係が付与されている後段側の部分処理の優先度の最大値を付与し、
    前記依存関係に基づいて実行可能となった部分処理を、付与した前記優先度に従って実行する
    画像処理方法。
  11. コンピュータを、請求項1から請求項9の何れか1項記載の画像処理装置の依存関係付与部、優先度付与部、及び実行部として機能させるための画像処理プログラム。
JP2018173740A 2018-09-18 2018-09-18 画像処理装置、画像処理方法、及び画像処理プログラム Active JP6891153B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018173740A JP6891153B2 (ja) 2018-09-18 2018-09-18 画像処理装置、画像処理方法、及び画像処理プログラム
PCT/JP2019/000094 WO2020059161A1 (ja) 2018-09-18 2019-01-07 画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体
CN201980024797.XA CN111937029B (zh) 2018-09-18 2019-01-07 图像处理装置、图像处理方法、图像处理程序和存储介质
US17/010,950 US11315212B2 (en) 2018-09-18 2020-09-03 Image processing apparatus, image processing method, and computer readable medium for executing partial processes on image-section data items

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018173740A JP6891153B2 (ja) 2018-09-18 2018-09-18 画像処理装置、画像処理方法、及び画像処理プログラム

Publications (2)

Publication Number Publication Date
JP2020046826A JP2020046826A (ja) 2020-03-26
JP6891153B2 true JP6891153B2 (ja) 2021-06-18

Family

ID=69886736

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018173740A Active JP6891153B2 (ja) 2018-09-18 2018-09-18 画像処理装置、画像処理方法、及び画像処理プログラム

Country Status (4)

Country Link
US (1) US11315212B2 (ja)
JP (1) JP6891153B2 (ja)
CN (1) CN111937029B (ja)
WO (1) WO2020059161A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021047827A (ja) * 2019-09-20 2021-03-25 キヤノン株式会社 デバイス、システム、制御方法、及びプログラム
CN115987751B (zh) * 2023-03-20 2023-06-13 阿里云计算有限公司 云网络架构和用于维护具有依赖关系的实体对象的方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3258122B2 (ja) * 1993-03-31 2002-02-18 株式会社東芝 画像処理装置
JP2004120135A (ja) * 2002-09-24 2004-04-15 Canon Inc 画像処理装置、及び、その制御方法
JP2007287085A (ja) * 2006-04-20 2007-11-01 Fuji Xerox Co Ltd 画像処理装置及びプログラム
JP4687593B2 (ja) * 2006-07-12 2011-05-25 富士ゼロックス株式会社 画像処理装置およびプログラム
JP2008021228A (ja) * 2006-07-14 2008-01-31 Renesas Technology Corp データ処理装置
JP4965995B2 (ja) 2006-12-22 2012-07-04 株式会社東芝 プログラム処理方法、処理プログラム及び情報処理装置
JP4436858B2 (ja) * 2007-04-09 2010-03-24 シャープ株式会社 画像処理装置、画像形成装置、画像送信装置、画像読取装置、画像処理システム、画像処理方法、画像処理プログラムおよびその記録媒体
JP5154468B2 (ja) * 2009-02-12 2013-02-27 シャープ株式会社 情報処理装置、通信端末装置、情報処理装置の制御方法、通信端末装置の制御方法、制御プログラム、および、記録媒体
CN101661613B (zh) * 2009-08-27 2011-11-09 北京交通大学 一种基于图像分割的图像修复方法及系统
JP5140105B2 (ja) * 2010-03-23 2013-02-06 Necシステムテクノロジー株式会社 命令スケジューリング装置、命令スケジューリング方法および命令スケジューリングプログラム
CN104537682B (zh) * 2015-01-26 2018-09-07 四川众亿得科技有限责任公司 一种医学影像的分割与调度方法
JP6592184B2 (ja) * 2016-03-24 2019-10-16 富士フイルム株式会社 画像処理装置、画像処理方法、及び画像処理プログラム
JP6648257B2 (ja) * 2016-03-24 2020-02-14 富士ゼロックス株式会社 画像処理装置、画像処理方法、及び画像処理プログラム

Also Published As

Publication number Publication date
US11315212B2 (en) 2022-04-26
JP2020046826A (ja) 2020-03-26
CN111937029A (zh) 2020-11-13
US20200402197A1 (en) 2020-12-24
WO2020059161A1 (ja) 2020-03-26
CN111937029B (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
JP6632709B2 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
JP6891153B2 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
US10878526B2 (en) Image processing apparatus, image processing method, and image processing program
CN108475213B (zh) 图像处理装置、图像处理方法和图像处理程序
US10949942B2 (en) Image processing apparatus, image processing method, and image processing program
US11257178B2 (en) Image processing device, image processing method, and storage medium
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) 画像処理装置、画像処理方法、及び画像処理プログラム
JP2014076624A (ja) プレビュー画像生成装置、プレビュー画像生成方法およびコンピュータープログラム
JP2016021641A (ja) 情報処理装置およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200731

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210526

R150 Certificate of patent or registration of utility model

Ref document number: 6891153

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250