JP2014119848A - 画像処理装置及びプログラム - Google Patents

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

Info

Publication number
JP2014119848A
JP2014119848A JP2012273085A JP2012273085A JP2014119848A JP 2014119848 A JP2014119848 A JP 2014119848A JP 2012273085 A JP2012273085 A JP 2012273085A JP 2012273085 A JP2012273085 A JP 2012273085A JP 2014119848 A JP2014119848 A JP 2014119848A
Authority
JP
Japan
Prior art keywords
instruction
image processing
executed
setting means
condition
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
JP2012273085A
Other languages
English (en)
Other versions
JP5880418B2 (ja
Inventor
Noriaki Seki
範顕 関
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 Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 filed Critical Fuji Xerox Co Ltd
Priority to JP2012273085A priority Critical patent/JP5880418B2/ja
Publication of JP2014119848A publication Critical patent/JP2014119848A/ja
Application granted granted Critical
Publication of JP5880418B2 publication Critical patent/JP5880418B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)

Abstract

【課題】利用者が、画像処理命令に用いられる属性の型を意識せずに、複数の画像処理の実行指示が記述された画像処理指示情報を作成できるようにする。
【解決手段】解釈部14は、条件を満足する場合に実行されることが画像処理指示情報に記述されている識別情報に対応付けられる命令を、実行対象の命令として設定し、当該命令が実行された後に実行される命令として、当該条件を満足する場合に当該命令の実行結果を戻り値として返し、当該条件を満足しない場合に値がないことを示す戻り値を返す命令を設定する。解釈部14は、条件分岐での条件のすべてについて実行することが設定された命令が実行された後に実行される命令として、値がないことを示す戻り値とは異なる戻り値を画像処理指示情報に応じた命令での最終的な戻り値として返す命令を設定する。
【選択図】図1

Description

本発明は、画像処理装置及びプログラムに関する。
画像に対して、例えば、フォーマット変換、色変換、拡大、縮小、などといった画像処理を実行する画像処理装置が存在する。特許文献1には、スクリプトが表す実行順序を解釈して、解釈された実行順序で画像処理を実行する技術が記載されている。特許文献2には、取得した画像を、指示書によって指定された複数種類の画像に変換する技術が記載されている。
特開2001−243460号公報 特開2004−112514号公報
本発明の目的の1つは、利用者が、画像処理命令に用いられる属性の型を意識せずに、複数の画像処理の実行指示が記述された画像処理指示情報を作成できるようにすることにある。
請求項1に記載の発明は、画像処理装置であって、複数の画像処理の識別情報、並びに、条件分岐が記述された画像処理指示情報を取得する取得手段と、前記条件分岐での条件のそれぞれについて、条件を満足する場合に実行されることが前記画像処理指示情報に記述されている前記識別情報に対応付けられる命令を、実行対象の命令として設定する第1設定手段と、前記条件分岐での条件のそれぞれについて、前記第1設定手段で設定された命令が実行された後に実行される命令として、当該条件を満足する場合に前記第1設定手段で設定された命令の実行結果を戻り値として返し、当該条件を満足しない場合に値がないことを示す戻り値を返す命令を設定する第2設定手段と、前記条件分岐での条件のすべてについて前記第1設定手段及び前記第2設定手段で実行することが設定された命令が実行された後に実行される命令として、前記条件分岐での条件のそれぞれについての前記第2設定手段で設定された命令の戻り値のうち、値がないことを示す戻り値とは異なる戻り値を、前記画像処理指示情報に応じた命令での最終的な戻り値として返す命令を設定する第3設定手段と、前記第1設定手段、前記第2設定手段、及び、前記第3設定手段で設定された命令を実行する実行手段と、を含むこととしたものである。
請求項2に記載の発明は、請求項1に記載の画像処理装置であって、前記条件分岐での条件のそれぞれについて、前記第1設定手段で設定された命令が実行される前に実行される命令として、当該条件を満足する場合に当該命令の前に実行される命令の実行結果を戻り値として返し、当該条件を満足しない場合に値がないことを示す戻り値を返す命令を設定する第4設定手段、をさらに含み、前記実行手段は、前記第1設定手段、前記第2設定手段、前記第3設定手段、及び、前記第4設定手段で設定された命令を実行することとしたものである。
請求項3に記載の発明は、請求項1又は2に記載の画像処理装置であって、前記画像処理指示情報には、条件分岐前に実行される画像処理の識別情報が記述されており、前記第1設定手段は、条件分岐前に実行されることが前記画像処理指示情報に記述されている識別情報に対応付けられる命令を、条件を満足する場合に実行されることが前記画像処理指示情報に記述されている前記識別情報に対応付けられる命令よりも前に実行される命令として設定し、前記第3設定手段は、満足する場合に実行される画像処理が前記画像処理指示情報に記述されていない前記条件分岐での条件が存在する際には、前記条件分岐での条件のすべてについて前記第1設定手段及び前記第2設定手段で実行することが設定された命令が実行された後に実行される命令として、前記条件分岐での条件のそれぞれについての前記第2設定手段で設定された命令の戻り値がすべて、値がないことを示す戻り値である場合は、条件分岐前に実行されることが前記画像処理指示情報に記述されている識別情報に対応付けられる命令の戻り値を、前記画像処理指示情報に応じた命令での最終的な戻り値として返す命令を設定することとしたものである。
請求項4に記載の発明は、請求項1から3のいずれか一項に記載の画像処理装置であって、前記条件分岐での条件のそれぞれについて、当該条件を満足しない場合に、前記実行手段により命令が実行される際に発生するエラーが出力されることを抑制する抑制手段、をさらに含むこととしたものである。
請求項5に記載の発明は、プログラムであって、複数の画像処理の識別情報、並びに、条件分岐が記述された画像処理指示情報を取得する取得手段、前記条件分岐での条件のそれぞれについて、条件を満足する場合に実行されることが前記画像処理指示情報に記述されている前記識別情報に対応付けられる命令を、実行対象の命令として設定する第1設定手段、前記条件分岐での条件のそれぞれについて、前記第1設定手段で設定された命令が実行された後に実行される命令として、当該条件を満足する場合に前記第1設定手段で設定された命令の実行結果を戻り値として返し、当該条件を満足しない場合に値がないことを示す戻り値を返す命令を設定する第2設定手段、前記条件分岐での条件のすべてについて前記第1設定手段及び前記第2設定手段で実行することが設定された命令が実行された後に実行される命令として、前記条件分岐での条件のそれぞれについての前記第2設定手段で設定された命令の戻り値のうち、値がないことを示す戻り値とは異なる戻り値を、前記画像処理指示情報に応じた命令での最終的な戻り値として返す命令を設定する第3設定手段、前記第1設定手段、前記第2設定手段、及び、前記第3設定手段で設定された命令を実行する実行手段、としてコンピュータを機能させることとしたものである。
請求項1,5に記載の発明によれば、利用者が、画像処理命令に用いられる属性の型を意識せずに、複数の画像処理の実行指示が記述された画像処理指示情報を作成できることとなる。
請求項2に記載の発明によれば、本構成を有しない場合と比較して、処理の負荷が低減される。
請求項3に記載の発明によれば、満足する場合に実行される画像処理が画像処理指示情報に記述されていない条件分岐での条件が存在する場合についても、利用者が、画像処理命令に用いられる属性の型を意識せずに、複数の画像処理の実行指示が記述された画像処理指示情報を作成できることとなる。
請求項4に記載の発明によれば、満足しない条件に対応付けて設定された命令について発生するエラーが出力されることが防止できる。
本発明の一実施形態に係る画像処理装置により実現される機能の一例を示す機能ブロック図である。 画像処理指示書の一例を示す図である。 画像処理指示書に記述された内容の一例を模式的に示した図である。 本発明の一実施形態に係る画像処理装置により行われる処理の流れの一例を示すフロー図である。 サブパイプラインの一例を模式的に示す図である。 本発明の一実施形態に係る画像処理装置により行われる処理の流れの一例を示すフロー図である。 画像処理指示書に記述された内容の一例を模式的に示した図である。 サブパイプラインの一例を模式的に示す図である。 画像処理指示書に記述された内容の一例を模式的に示した図である。 サブパイプラインの一例を模式的に示す図である。 サブパイプラインの一例を模式的に示す図である。
以下、本発明の一実施形態について図面に基づき詳細に説明する。
図1は、本実施形態における画像処理装置10により実現される機能の一例を示す機能ブロック図である。図1に示すように、本実施形態における画像処理装置10は、機能的には、例えば、取得部12、解釈部14、実行部16、を含んでいる。
本実施形態に係る画像処理装置10は、例えば、パーソナルコンピュータなどであり、画像処理装置10にインストールされるプログラムに従って動作するCPU等のプログラム制御デバイスである制御部、ROMやRAM等の記憶素子やハードディスクドライブなどである記憶部、ディスプレイ、キーボード、マウス、等を含んでいる。そして、図1に示す各部の機能は、コンピュータである画像処理装置10にインストールされた、図1に示す各部の機能に対応する命令を含むプログラムを、画像処理装置10の制御部で実行することにより実現されている。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ可読な情報記憶媒体を介して、あるいは、インターネットなどの通信手段を介して画像処理装置10に供給される。
取得部12は、複数の画像処理の実行指示が記述された画像処理指示情報を取得する。本実施形態では、取得部12は、例えば、画像処理指示情報の一例として、画像処理装置10の記憶部に予め記憶されている、図2に例示する画像処理指示書20を取得する。
図2に例示する画像処理指示書20は、XML形式の文書である。本実施形態に係る画像処理指示書20には、複数の画像処理の識別情報、並びに、条件分岐が記述されている。図3は、図2に例示する画像処理指示書20に記述された内容の一例を模式的に示した図である。図2に例示する画像処理指示書20には、以下の処理が記述されている。なお、図2には、以下に示す処理のそれぞれについて、画像処理指示書20内における、処理に対応する文字列が記載されている位置に、以下の記載において当該処理に割り振られている番号と同一の番号が配置されている。
(1−1)画像処理装置10は、ファイルパス“/tmp/input.tiff”を、バイトストリームの出力元となるファイル入力ストレージの所在を示す情報として設定する。
(1−2)画像処理装置10は、(1−1)で設定されたファイル入力ストレージから、バイトストリームをTIFFフォーマットと解釈して、情報を読み出す。
(1−3)画像処理装置10は、(1−2)で読み出されたバイトストリームから画像の情報を取得する。
(1−4)画像処理装置10は、(1−3)で取得された画像の情報のうち、チャンネル当たりのビット数を取得する。
(1−5)画像処理装置10は、(1−4)で取得したビット数が1である場合は、画像を8ビット化する。
(1−6)画像処理装置10は、(1−4)で取得したビット数が1でない場合は、画像をグレー化する。
(1−7)画像処理装置10は、ファイルパス“/tmp/output.jpg”を、バイトストリームの出力先となるファイル出力ストレージの所在を示す情報として設定する。
(1−8)画像処理装置10は、(1−7)で設定されたファイル出力ストレージに、8ビット化又はグレー化された画像のバイトストリームをJPEGフォーマットで書き出す。
(1−9)画像処理装置10は、以上のようにして設定された命令を実行する。
本実施形態では、処理の単位となる1又は複数の命令が、画像処理ライブラリ等のモジュールとして管理されている。そして、モジュールに対応するプログラムが、予め、画像処理装置10の記憶部に記憶されている。そして、解釈部14は、画像処理指示書20を解釈して、複数のモジュールから構成されたパイプラインを構築する。また、本実施形態に係るパイプラインが、複数のサブパイプラインから構成されていてもよい。
本実施形態では、解釈部14は、例えば、条件分岐までの処理である上述の(1−1)〜(1−4)の処理については、上述の(1−1)〜(1−4)の順序が実行順序として定義された、それぞれの処理に対応付けられるモジュールから構成されるサブパイプラインを構築する。そして、解釈部14は、当該サブパイプラインに後続するサブパイプラインとして、条件分岐での条件のそれぞれについての、条件を満足する場合に実行される処理である上述の(1−5)、(1−6)に対応付けられるサブパイプライン(ここでは、例えば、2つのサブパイプライン)を接続する。上述の(1−5)、(1−6)の処理は、図3では、破線で囲まれた領域内の部分に相当する。そして、解釈部14は、上述のようにして構成されたサブパイプライン群に後続するサブパイプラインとして、上述の(1−7)、(1−8)の順序が実行順序として定義された、それぞれの処理に対応付けられるモジュールから構成されるサブパイプラインを接続する。このようにして、複数のサブパイプラインから構成されるパイプラインが構築される。
そして、実行部16は、解釈部14が構築したパイプラインに相当する命令を実行する。本実施形態では、例えば、パイプラインを構成する最初のモジュールから順に、モジュールの出力が、当該モジュールに後続するモジュールへの入力として用いられることで、パイプラインを構成するモジュール群の全体に相当する命令が実行されることとなる。
ここで、解釈部14による、条件分岐での条件のそれぞれについての、条件を満足する場合に実行される処理に対応付けられるサブパイプラインの構築処理の流れの一例を、図4に例示するフロー図を参照しながら説明する。
まず、解釈部14は、条件分岐での条件の数(ここでは、例えば、n)だけ、構築されるサブパイプラインへの入力となる画像を複製分岐させる命令に対応するモジュールを、最初のモジュールとして設定する(S101)。これによって、本実施形態では、例えば、入力画像が、要素の数がnである配列aryの各要素から参照可能となる。当該配列aryの各要素を、ary[0]〜ary[n−1]と呼ぶこととする。
そして、解釈部14は、条件数カウンタiの値に、0を設定する(S102)。そして、解釈部14は、カウンタiの値がn未満であるか否かを確認する(S103)。そして、カウンタiの値がn未満である場合は(S103:Y)、(i+1)番目の分岐、すなわち、(i+1)番目の配列要素であるary[i]に後続するモジュールとして、第1条件判定モジュールを接続する(S104)。ここで、第1条件判定モジュールとは、条件分岐における(i+1)番目の条件を満足する場合は、直前の処理の実行結果を戻り値として返し、条件分岐における(i+1)番目の条件を満足しない場合は、値がないことを示す戻り値を返す、すなわち、Nullを戻り値として返す命令に対応するモジュールである。
そして、解釈部14は、第1条件判定モジュールに後続するモジュールとして、条件分岐における(i+1)番目の条件を満足する場合に実行されることが記述されている画像処理に相当する1又は複数のモジュール(サブパイプライン)を接続する(S105)。S105に示す処理は、例えば、条件分岐における(i+1)番目の条件を満足する場合に実行されることが記述されている画像処理に相当する1又は複数のモジュール(サブパイプライン)への入力モジュール名を、第1条件判定モジュールの名称に変更した上で、当該サブパイプラインを構築することによって実装される。
そして、解釈部14は、S105に示す処理で接続された1又は複数のモジュール(サブパイプライン)に後続するモジュールとして、第2条件判定モジュールを接続する(S106)。ここで、第2条件判定モジュールとは、条件分岐における(i+1)番目の条件を満足する場合は、直前の処理の実行結果を戻り値として返し、条件分岐における(i+1)番目の条件を満足しない場合は、値がないことを示す戻り値を返す、すなわち、Nullを戻り値として返す命令に対応するモジュールである。
そして、解釈部14は、(i+1)番目の配列要素であるary[i]を、第2条件判定モジュールの出力に置換する(S107)。
そして、解釈部14は、カウンタiの値を1増加させて(S108)、S103に示す処理に戻る。
S103に示す処理で、カウンタiの値がn未満ではないことが確認された場合は(S103:N)、解釈部14は、(i+1)番目の配列要素であるary[i](ここでは、第2条件判定モジュールの出力(戻り値)である。)のうち、Nullではないものの中で値iが最小であるものを出力するモジュールを、上述のS101〜S108に示す処理で構築されたパイプラインを構成するモジュールの実行後に実行されるモジュールとして設定して(S109)、本処理例に示す処理を終了する。このようにして構築されるサブパイプラインでは、(i+1)番目の配列要素であるary[i]のうち、Nullではないものの中で値iが最小であるものが出力され、当該要素が、上述のようにして構築されたサブパイプラインに後続するサブパイプラインへの入力となる。
このように、本実施形態では、解釈部14は、S105に示す処理で、条件分岐での条件のそれぞれについて、条件を満足する場合に実行されることが画像処理指示書20に記述されている識別情報に対応付けられる命令を、実行対象の命令として設定する。
また、本実施形態では、S104に示す処理で、解釈部14は、条件分岐での条件のそれぞれについて、S105に示す処理で接続されるサブパイプラインに相当する命令として設定された命令が実行される前に実行される命令として、当該条件を満足する場合に当該命令の前に実行される命令の実行結果を戻り値として返し、当該条件を満足しない場合に値がないことを示す戻り値(ここでは、Null)を返す命令を設定する。
また、本実施形態では、S106に示す処理で、解釈部14は、条件分岐での条件のそれぞれについて、S105に示す処理で接続されるサブパイプラインに相当する命令が実行された後に実行される命令として、当該条件を満足する場合に実行対象の命令として設定された命令の実行結果を戻り値として返し、当該条件を満足しない場合に値がないことを示す戻り値(ここでは、Null)を返す命令を設定する。
また、本実施形態では、解釈部14は、S109に示す処理で、条件分岐での条件のすべてについて、S101〜S108に示す処理で実行することが設定された命令が実行された後に実行される命令として、条件分岐での条件のそれぞれについての戻り値のうちの、Nullでない戻り値を、以上のようにして構築されるサブパイプラインにおける最終的な戻り値として返す命令を設定する。
図5は、上述の処理によって、図2に例示する画像処理指示書における上述の(1−5)、(1−6)に示す処理に相当するサブパイプラインの一例を模式的に示す図である。図5には、上下に分かれて2つのサブパイプラインが示されている。
図5に示されている上側のサブパイプラインの左側には、ary[0]のビット数が1である場合は、ary[0]が戻り値として返され、8ビット化のモジュールへの入力となることが示されている。また、ary[0]のビット数が1でない場合は、Nullが戻り値として返され、8ビット化のモジュールへの入力となることが示されている。この場合は、8ビット化には、Nullが入力されるため、8ビット化は実行されない。
また、図5に示されている上側のサブパイプラインの右側には、ary[0]のビット数が1である場合は、ary[0]に対する8ビット化の戻り値であるbitconv0が、ary[0]に設定され、ary[0]のビット数が1でない場合は、Nullがary[0]に設定されることが示されている。
また、図5に示されている下側のサブパイプラインの左側には、ary[1]のビット数が1でない場合は、ary[1]が戻り値として返され、グレー化のモジュールへの入力となることが示されている。また、ary[1]のビット数が1である場合は、Nullが戻り値として返され、グレー化のモジュールへの入力となることが示されている。この場合は、グレー化には、Nullが入力されるため、グレー化は実行されない。
また、図5に示されている下側のサブパイプラインの右側には、ary[1]のビット数が1でない場合は、ary[1]に対するグレー化の戻り値であるgray0が、ary[1]に設定され、ary[1]のビット数が1である場合は、Nullがary[1]に設定されることが示されている。
そして、図5の右端には、ary[0]又はary[1]のうち、Nullでない最初の要素が、図5に示されているサブパイプラインに後続するサブパイプラインへの入力となることが示されている。
次に、解釈部14による、条件分岐での条件のそれぞれについての、条件を満足する場合に実行される処理に対応付けられるパイプラインの構築処理の流れの別の一例を、図6に例示するフロー図を参照しながら説明する。
まず、解釈部14は、条件分岐での条件の数(ここでは、例えば、n)だけ、構築されるサブパイプラインへの入力となる画像を複製分岐させる命令に対応するモジュールを、最初のモジュールとして設定する(S201)。これによって、本実施形態では、例えば、入力画像が、要素の数がnである配列aryの各要素から参照可能となる。当該配列aryの各要素を、ary[0]〜ary[n−1]と呼ぶこととする。
そして、解釈部14は、条件数カウンタiの値に、0を設定する(S202)。そして、解釈部14は、カウンタiの値がn未満であるか否かを確認する(S203)。そして、カウンタiの値がn未満である場合は(S203:Y)、(i+1)番目の分岐、すなわち、(i+1)番目の配列要素であるary[i]に、条件分岐における(i+1)番目の条件を満足する場合に実行されることが記述されている画像処理に相当する1又は複数のモジュール(サブパイプライン)を接続する(S204)。S204に示す処理は、例えば、サブパイプラインへの入力モジュール名を、(i+1)番目の配列要素ary[i]に変更した上で、当該サブパイプラインを構築することによって実装される。
そして、解釈部14は、S204に示す処理で接続された1又は複数のモジュール(サブパイプライン)に後続するモジュールとして、本処理例における条件判定モジュールを接続する(S205)。ここで、S205に示す処理で接続される条件判定モジュールとは、条件分岐における(i+1)番目の条件を満足する場合は、直前の処理の実行結果を戻り値として返し、条件分岐における(i+1)番目の条件を満足しない場合は、値がないことを示す戻り値を返す、すなわち、Nullを戻り値として返す命令に対応するモジュールである。
そして、解釈部14は、(i+1)番目の配列要素であるary[i]を、条件判定モジュールの出力に置換する(S206)。
そして、解釈部14は、カウンタiの値を1増加させて(S207)、S203に示す処理に戻る。
S203に示す処理で、カウンタiの値がn未満ではないことが確認された場合は(S203:N)、解釈部14は、(i+1)番目の配列要素であるary[i](ここでは、条件判定モジュールの出力(戻り値)である。)のうち、Nullではないものの中で値iが最小であるものを出力するモジュールを、上述のS201〜S207に示す処理で構築されたパイプラインを構成するモジュールの実行後に実行されるモジュールとして設定して(S208)、本処理例に示す処理を終了する。このようにして構築されるサブパイプラインでは、(i+1)番目の配列要素であるary[i]のうち、Nullではないものの中で値iが最小であるものが出力され、当該要素が、上述のようにして構築されたサブパイプラインに後続するサブパイプラインへの入力となる。
図7は、上述のS201〜S208に示す処理の対象となる画像処理指示書20に記述された内容の一例を模式的に示した図である。図7に示すように、上述のS201〜S208に示す処理の対象となる画像処理指示書20には、以下の処理が記述されている。
(2−1)画像処理装置10は、ファイルパス“/tmp/input.tiff”を、バイトストリームの出力元となるファイル入力ストレージの所在を示す情報として設定する。
(2−2)画像処理装置10は、(2−1)で設定されたファイル入力ストレージから、バイトストリームをTIFFフォーマットと解釈して、情報を読み出す。
(2−3)画像処理装置10は、(2−2)で読み出されたバイトストリームから画像の情報を取得する。
(2−4)画像処理装置10は、(2−3)で取得された画像の情報のうち、チャンネル当たりのビット数を取得する。
(2−5)画像処理装置10は、(2−4)で取得したビット数が1である場合は、ファイルパス“/tmp/input.jpeg”を、新たなバイトストリームの出力元となるファイル入力ストレージの所在を示す情報として設定する。
(2−6)画像処理装置10は、(2−5)で設定されたファイル入力ストレージから、バイトストリームをJPEGフォーマットと解釈して、情報を読み出す。
(2−7)画像処理装置10は、(2−4)で取得したビット数が1でない場合は、画像をグレー化する。
(2−8)画像処理装置10は、ファイルパス“/tmp/output.jpg”を、バイトストリームの出力先となるファイル出力ストレージの所在を示す情報として設定する。
(2−9)画像処理装置10は、(2−8)で設定されたファイル出力ストレージに、(2−5)で設定されたファイル入力ストレージから読み出されたバイトストリーム、又は、(2−7)によりグレー化された画像のバイトストリームをJPEGフォーマットで書き出す。
(2−10)画像処理装置10は、以上のようにして設定された命令を実行する。
上述の例では、解釈部14は、例えば、条件分岐までの処理である上述の(2−1)〜(2−4)の処理については、上述の(2−1)〜(2−4)の順序が実行順序として定義された、それぞれの処理に対応付けられるモジュールから構成されるサブパイプラインを構築する。そして、解釈部14は、当該サブパイプラインに後続するサブパイプラインとして、条件分岐での条件のそれぞれについての、条件を満足する場合に実行される処理である上述の(2−5)〜(2−7)に対応付けられるサブパイプライン(ここでは、例えば、2つのサブパイプライン)を接続する。上述の(2−5)〜(2−7)の処理は、図7では、破線で囲まれた領域内の部分に相当する。そして、解釈部14は、上述のようにして構成されたサブパイプライン群に後続するサブパイプラインとして、上述の(2−8)、(2−9)の順序が実行順序として定義された、それぞれの処理に対応付けられるモジュールから構成されるサブパイプラインを接続する。このようにして、複数のサブパイプラインから構成されるパイプラインが構築される。
そして、実行部16は、解釈部14が構築したパイプラインに相当する命令を実行する。本実施形態では、例えば、パイプラインを構成する最初のモジュールから順に、モジュールの出力が、当該モジュールに後続するモジュールへの入力として用いられることで、パイプラインを構成するモジュール群の全体に相当する命令が実行されることとなる。
図8は、上述の(2−5)〜(2−7)に示す処理に相当するサブパイプラインの一例を模式的に示す図である。図8には、上下に分かれて2つのサブパイプラインが示されている。
図8に示されている上側のサブパイプラインには、ary[0]のビット数が1である場合は、JPEG読み出しの戻り値であるread1が、ary[0]に設定され、ary[0]のビット数が1でない場合は、Nullがary[0]に設定されることが示されている。
図8に示されている下側のサブパイプラインには、ary[1]のビット数が1でない場合は、ary[1]に対するグレー化の戻り値であるgray0がary[1]に設定され、当該パイプラインに入力されるTIFF画像のビット数が1である場合は、Nullがary[1]に設定されることが示されている。
そして、図8の右端には、ary[0]又はary[1]のうち、Nullでない最初の要素が、図5に示されているサブパイプラインに後続するサブパイプラインへの入力となることが示されている。
なお、上述のS201に示す処理において、条件分岐での条件の数(ここでは、例えば、n)だけ入力画像を複製分岐させる命令に対応するモジュールの代わりに、条件分岐での条件の数に1加えた数(ここでは、例えば、n+1)だけ入力画像を複製分岐させる命令に対応するモジュールを、最初のモジュールとして設定してもよい。
図9は、条件分岐での条件の数に1加えた数(ここでは、例えば、n+1)だけ入力画像を複製分岐させる命令に対応するモジュールが、最初のモジュールとして設定される場合における処理の対象となる画像処理指示書20に記述された内容の一例を模式的に示した図である。図9に示すように、条件分岐での条件の数に1加えた数(ここでは、例えば、n+1)だけ入力画像を複製分岐させる命令に対応するモジュールが、最初のモジュールとして設定される場合における処理の対象となる画像処理指示書20には、以下の処理が記述されている。
(3−1)画像処理装置10は、ファイルパス“/tmp/input.tiff”を、バイトストリームの出力元となるファイル入力ストレージの所在を示す情報として設定する。
(3−2)画像処理装置10は、(3−1)で設定されたファイル入力ストレージから、バイトストリームをTIFFフォーマットと解釈して、情報を読み出す。
(3−3)画像処理装置10は、(3−2)で読み出されたバイトストリームから画像の情報を取得する。
(3−4)画像処理装置10は、(3−3)で取得された画像の情報のうち、チャンネル当たりのビット数とチャンネル数を取得する。
(3−5)画像処理装置10は、(3−4)で取得したビット数とチャンネル数の積が1である場合は、画像を8ビット化する。
(3−6)画像処理装置10は、(3−4)で取得したビット数とチャンネル数の積が32である場合は、画像をYCbCr化する。
(3−7)画像処理装置10は、ファイルパス“/tmp/output.jpg”を、バイトストリームの出力先となるファイル出力ストレージの所在を示す情報として設定する。
(3−8)画像処理装置10は、(3−7)で設定されたファイル出力ストレージに、(3−5)により8ビット化された画像、(3−6)によりYCbCr化された画像、又は、上記(3−5)若しくは(3−6)の処理が実行されなかった画像のバイトストリームをJPEGフォーマットで書き出す。
(3−9)画像処理装置10は、以上のようにして設定された命令を実行する。
なお、以上の記述において、チャンネル数とは、画像の色空間の成分数を指す。例えば、CMYK色空間の画素値で表現された画像のチャンネル数は4であり。RGB色空間、YCbCr色空間で表現された画像のチャンネル数は3であり、グレースケールで表現された画像のチャンネル数は1である。
また、以上の記述における(3−8)において、(3−4)で取得したビット数とチャンネル数の積が1でも32でもない場合に、上記(3−5)若しくは(3−6)の処理が実行されなかった画像のバイトストリームがJPEGフォーマットで書き出される。
上述の例では、解釈部14は、例えば、条件分岐までの処理である上述の(3−1)〜(3−4)の処理については、上述の(3−1)〜(3−4)の順序が実行順序として定義された、それぞれの処理に対応付けられるモジュールから構成されるサブパイプラインを構築する。そして、解釈部14は、当該サブパイプラインに後続するサブパイプラインとして、条件分岐での条件のそれぞれについての、条件を満足する場合に実行される処理である上述の(3−5)、(3−6)に対応付けられるサブパイプライン(ここでは、例えば、3つのサブパイプライン)を接続する。上述の(3−5)、(3−6)の処理は、図9では、破線で囲まれた領域内の部分に相当する。そして、解釈部14は、上述のようにして構成されたサブパイプライン群に後続するサブパイプラインとして、上述の(3−7)、(3−8)の順序が実行順序として定義された、それぞれの処理に対応付けられるモジュールから構成されるサブパイプラインを接続する。このようにして、複数のサブパイプラインから構成されるパイプラインが構築される。
そして、実行部16は、解釈部14が構築したパイプラインに相当する命令を実行する。本実施形態では、例えば、パイプラインを構成する最初のモジュールから順に、モジュールの出力が、当該モジュールに後続するモジュールへの入力として用いられることで、パイプラインを構成するモジュール群の全体に相当する命令が実行されることとなる。
図10は、上述の(3−5)、(3−6)に示す処理に相当するパイプラインの一例を模式的に示す図である。図10には、上中下に分かれて3つのサブパイプラインが示されている。
図10に示されている上側のサブパイプラインには、ary[0]のビット数とチャンネル数との積が1である場合は、ary[0]に対する8ビット化の戻り値であるbitconv0が、ary[0]に設定され、ary[0]のビット数とチャンネル数との積が1でない場合は、Nullがary[0]に設定されることが示されている。
図10に示されている中央のサブパイプラインには、ary[1]のビット数とチャンネル数との積が32である場合は、ary[1]に対するYCbCr化の戻り値であるcolorconv0が、ary[1]に設定され、ary[1]のビット数とチャンネル数との積が32でない場合は、Nullがary[1]に設定されることが示されている。
図10に示されている下側のサブパイプラインには、ary[2]がそのまま、図10の右端に示されているモジュールへの入力となることが示されている。
そして、図10の右端には、ary[0]、ary[1]、又は、ary[2]のうち、Nullでない最初の要素を戻り値として返し、後続の処理への入力となることが示されている。
このように、解釈部14が、満足する場合に実行される画像処理が画像処理指示書20に記述されていない条件分岐での条件が存在する際には、条件分岐での条件のすべてについて実行することが設定された命令が実行された後に実行される命令として、条件分岐での条件のそれぞれに対応するサブパイプラインに相当する戻り値がすべて、値がないことを示す戻り値(ここでは、Null)である場合は、条件分岐前に実行されることが画像処理指示書20に記述されている識別情報に対応付けられる命令の戻り値を、上述のようにして構築されるサブパイプラインに相当する命令における最終的な戻り値として返す命令を設定してもよい。
また、上述のS101に示す処理において、条件分岐での条件の数(ここでは、例えば、n)だけ入力画像を複製分岐させる命令に対応するモジュールの代わりに、条件分岐での条件の数に1加えた数(ここでは、例えば、n+1)だけ入力画像を複製分岐させる命令に対応するモジュールを、最初のモジュールとして設定してもよい。
本実施形態では、属性の型は、画像処理ライブラリ等のモジュール側でのみ扱われ、画像処理指示書20や、パイプラインを構築する解釈部14といった、インタプリタ側では、属性の型を意識する必要がない。本実施形態によれば、画像処理装置10の利用者が、画像処理命令に用いられる属性の型を意識せずに、複数の画像処理の実行指示が記述された画像処理指示情報を作成できることとなる。
また、本実施形態では、画像処理装置10の利用者が、用いられるモジュールにおける属性の型を指定することなく、画像処理指示情報を作成できることとなる。
なお、本発明は上述の実施形態に限定されるものではない。
例えば、上述の図7および上述の(2−1)〜(2−10)に模式的に示されている画像処理指示書20の内容を実行するにあたって、条件に合致するサブパイプラインでの処理で発生したエラーだけが外部に出力されるようにしてもよい。具体的には、例えば、上述の図7に模式的に示されている画像処理指示書20の内容を実行するにあたって、条件に合致するサブパイプラインでの処理で発生したエラーだけが、ディスプレイの画面を介して利用者に通知されるようにしてもよい。
図11は、この場合における、上述の(2−5)〜(2−7)に示す処理に相当するパイプラインの一例を模式的に示す図である。図11には、上下に分かれて2つのサブパイプラインが示されている。
当該パイプラインについては、実行部16は、命令の実行を開始する際に、「未選択」、「選択中」、又は、「選択済」のいずれかの値をとるデータである分岐選択状態データstを生成して、画像処理装置10の記憶部に記憶させる。
図11に示されている上側のサブパイプラインの左側には、分岐選択状態データstの値が「未選択」であり、ary[0]のビット数が1である場合は、分岐選択状態データstの値が「選択中」に変更されるとともに、ary[0]が戻り値として返され、JPEG読み込みモジュールへの入力となり、そうでない場合は、Nullが戻り値として返され、JPEG読み込みモジュールへの入力となることが示されている。
その右には、ary[0]のビット数が1である場合は、JPEG読み出しの戻り値であるread1がary[0]に設定され、ary[0]のビット数が1でない場合は、Nullがary[0]に設定されることが示されている。
さらにその右には、分岐選択状態データstの値が「選択中」でない場合に、ary[0]についてのサブパイプラインでの処理で発生したエラーのクリアが実行され、そうでない場合に、分岐選択状態データstの値が「選択済」に変更されることが示されている。
図11に示されている下側のサブパイプラインの左側には、分岐選択状態データstの値が「未選択」であり、ary[1]のビット数が1でない場合は、分岐選択状態データstの値が「選択中」に変更されるとともに、ary[1]が戻り値として返され、グレー化モジュールへの入力となり、そうでない場合は、Nullが戻り値として返され、グレー化モジュールへの入力となることが示されている。
その右には、ary[1]のビット数が1でない場合は、ary[1]に対するグレー化の戻り値であるgray0が、ary[1]に設定され、ary[1]のビット数が1である場合は、Nullがary[1]に設定されることが示されている。
さらにその右には、分岐選択状態データstの値が「選択中」でない場合に、ary[1]についてのサブパイプラインでの処理で発生したエラーのクリアが実行され、そうでない場合に、分岐選択状態データstの値が「選択済」に変更されることが示されている。
そして、図11の右端には、ary[0]又はary[1]のうち、Nullでない最初の要素を戻り値として返し、後続の処理への入力となることが示されている。
以上の処理を実現するにあたって、例えば、解釈部14が、以下説明する点以外については、上述のS101〜S109に示す処理を実行するようにしてもよい。
ここで、解釈部14は、上述のS104に示す処理の代わりに、(i+1)番目の分岐、すなわち、(i+1)番目の配列要素であるary[i]に後続するモジュールとして、分岐選択状態データstの値が「未選択」であり、条件分岐における(i+1)番目の条件を満足する場合に、分岐選択状態データstの値を「選択中」に変更するとともに、ary[i]を戻り値として返し、そうでない場合は、値がないことを示す戻り値を返すモジュールである第3条件判定モジュールを接続する処理を実行してもよい。
そして、解釈部14は、上述のS108に示す処理の代わりに、分岐選択状態データstの値が「選択中」でない場合に、ary[i]についてのサブパイプラインでの処理で発生したエラーのクリアを実行し、そうでない場合に、分岐選択状態データstの値が「選択済」に変更する処理を実行してから、カウンタiの値を1増加させた上で、S103に示す処理に戻ってもよい。
実行部16は、上述のようにして構築されたパイプラインに相当する命令を実行するにあたって、条件分岐での条件のそれぞれについて、当該条件を満足しない場合に、当該条件に対応するサブパイプラインに相当する命令が実行される際に発生するエラーが出力されることを抑制する。
なお、本実施形態における画像処理装置10が複数の筐体から構成されていてもよい。また、明細書中の具体的な文字列や数値、並びに、図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。
10 画像処理装置、12 取得部、14 解釈部、16 実行部、20 画像処理指示書。

Claims (5)

  1. 複数の画像処理の識別情報、並びに、条件分岐が記述された画像処理指示情報を取得する取得手段と、
    前記条件分岐での条件のそれぞれについて、条件を満足する場合に実行されることが前記画像処理指示情報に記述されている前記識別情報に対応付けられる命令を、実行対象の命令として設定する第1設定手段と、
    前記条件分岐での条件のそれぞれについて、前記第1設定手段で設定された命令が実行された後に実行される命令として、当該条件を満足する場合に前記第1設定手段で設定された命令の実行結果を戻り値として返し、当該条件を満足しない場合に値がないことを示す戻り値を返す命令を設定する第2設定手段と、
    前記条件分岐での条件のすべてについて前記第1設定手段及び前記第2設定手段で実行することが設定された命令が実行された後に実行される命令として、前記条件分岐での条件のそれぞれについての前記第2設定手段で設定された命令の戻り値のうち、値がないことを示す戻り値とは異なる戻り値を、前記画像処理指示情報に応じた命令での最終的な戻り値として返す命令を設定する第3設定手段と、
    前記第1設定手段、前記第2設定手段、及び、前記第3設定手段で設定された命令を実行する実行手段と、
    を含むことを特徴とする画像処理装置。
  2. 前記条件分岐での条件のそれぞれについて、前記第1設定手段で設定された命令が実行される前に実行される命令として、当該条件を満足する場合に当該命令の前に実行される命令の実行結果を戻り値として返し、当該条件を満足しない場合に値がないことを示す戻り値を返す命令を設定する第4設定手段、をさらに含み、
    前記実行手段は、前記第1設定手段、前記第2設定手段、前記第3設定手段、及び、前記第4設定手段で設定された命令を実行する、
    ことを特徴とする請求項1に記載の画像処理装置。
  3. 前記画像処理指示情報には、条件分岐前に実行される画像処理の識別情報が記述されており、
    前記第1設定手段は、条件分岐前に実行されることが前記画像処理指示情報に記述されている識別情報に対応付けられる命令を、条件を満足する場合に実行されることが前記画像処理指示情報に記述されている前記識別情報に対応付けられる命令よりも前に実行される命令として設定し、
    前記第3設定手段は、満足する場合に実行される画像処理が前記画像処理指示情報に記述されていない前記条件分岐での条件が存在する際には、前記条件分岐での条件のすべてについて前記第1設定手段及び前記第2設定手段で実行することが設定された命令が実行された後に実行される命令として、前記条件分岐での条件のそれぞれについての前記第2設定手段で設定された命令の戻り値がすべて、値がないことを示す戻り値である場合は、条件分岐前に実行されることが前記画像処理指示情報に記述されている識別情報に対応付けられる命令の戻り値を、前記画像処理指示情報に応じた命令での最終的な戻り値として返す命令を設定する、
    ことを特徴とする請求項1又は2に記載の画像処理装置。
  4. 前記条件分岐での条件のそれぞれについて、当該条件を満足しない場合に、前記実行手段により命令が実行される際に発生するエラーが出力されることを抑制する抑制手段、をさらに含む、
    ことを特徴とする請求項1から3のいずれか一項に記載の画像処理装置。
  5. 複数の画像処理の識別情報、並びに、条件分岐が記述された画像処理指示情報を取得する取得手段、
    前記条件分岐での条件のそれぞれについて、条件を満足する場合に実行されることが前記画像処理指示情報に記述されている前記識別情報に対応付けられる命令を、実行対象の命令として設定する第1設定手段、
    前記条件分岐での条件のそれぞれについて、前記第1設定手段で設定された命令が実行された後に実行される命令として、当該条件を満足する場合に前記第1設定手段で設定された命令の実行結果を戻り値として返し、当該条件を満足しない場合に値がないことを示す戻り値を返す命令を設定する第2設定手段、
    前記条件分岐での条件のすべてについて前記第1設定手段及び前記第2設定手段で実行することが設定された命令が実行された後に実行される命令として、前記条件分岐での条件のそれぞれについての前記第2設定手段で設定された命令の戻り値のうち、値がないことを示す戻り値とは異なる戻り値を、前記画像処理指示情報に応じた命令での最終的な戻り値として返す命令を設定する第3設定手段、
    前記第1設定手段、前記第2設定手段、及び、前記第3設定手段で設定された命令を実行する実行手段、
    としてコンピュータを機能させることを特徴とするプログラム。
JP2012273085A 2012-12-14 2012-12-14 画像処理装置及びプログラム Expired - Fee Related JP5880418B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012273085A JP5880418B2 (ja) 2012-12-14 2012-12-14 画像処理装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012273085A JP5880418B2 (ja) 2012-12-14 2012-12-14 画像処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2014119848A true JP2014119848A (ja) 2014-06-30
JP5880418B2 JP5880418B2 (ja) 2016-03-09

Family

ID=51174656

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012273085A Expired - Fee Related JP5880418B2 (ja) 2012-12-14 2012-12-14 画像処理装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5880418B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001243460A (ja) * 2000-02-29 2001-09-07 Fuji Photo Film Co Ltd 画像処理装置および画像処理プログラム記憶媒体
JP2004112514A (ja) * 2002-09-19 2004-04-08 Fuji Xerox Co Ltd 画像処理方法および装置
JP2006338507A (ja) * 2005-06-03 2006-12-14 Fujifilm Holdings Corp 処理装置及び処理方法
JP2011087181A (ja) * 2009-10-16 2011-04-28 Canon Inc 画像処理装置、および画像処理装置におけるスクリプト補正方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001243460A (ja) * 2000-02-29 2001-09-07 Fuji Photo Film Co Ltd 画像処理装置および画像処理プログラム記憶媒体
JP2004112514A (ja) * 2002-09-19 2004-04-08 Fuji Xerox Co Ltd 画像処理方法および装置
JP2006338507A (ja) * 2005-06-03 2006-12-14 Fujifilm Holdings Corp 処理装置及び処理方法
JP2011087181A (ja) * 2009-10-16 2011-04-28 Canon Inc 画像処理装置、および画像処理装置におけるスクリプト補正方法

Also Published As

Publication number Publication date
JP5880418B2 (ja) 2016-03-09

Similar Documents

Publication Publication Date Title
JP5028372B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
US8243322B2 (en) Image data processor and image data processing program storage medium for variable printing
TW200620997A (en) Method and apparatus for efficient processing of color conversion
US9141596B2 (en) System and method for processing markup language templates from partial input data
JP5267255B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP6210319B2 (ja) 印刷方法及び印刷システム
US20180032849A1 (en) Information processing apparatus, information processing method, storage medium, and image forming apparatus
US12003681B2 (en) Information processing apparatus and non-transitory computer readable medium storing program for performing to display elements representing in workflow and indicating a branch destination in determining
JP5880418B2 (ja) 画像処理装置及びプログラム
JP2005278171A (ja) カラー画像処理装置およびカラー画像処理方法
JP5523047B2 (ja) 電子文書生成方法及び電子文書生成装置
JP2017027319A (ja) 帳票文書データの表示・編集・保存方法、装置、処理プログラム
JP2009122933A (ja) Xml文書変換の定義情報再構築装置、その方法およびプログラム
JP2015139062A (ja) 印刷システム、情報処理装置およびその制御方法、並びにプログラム
WO2017043284A1 (ja) 情報処理システム、情報処理方法、情報処理プログラム、及び記憶媒体
JP2008108266A (ja) 2レベル形態規則をコンパイルするための方法及びその装置
JP5139779B2 (ja) 画像形成装置および画像形成方法
JP2011025539A (ja) プリンタ装置、画像出力システム、レンダリング方法、及びプログラム
JP2010244098A (ja) 画像処理装置、印刷システム、画像処理方法およびプログラム
JP5007291B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP5325744B2 (ja) 画像処理装置および画像処理プログラム
JP6404865B2 (ja) 乗算済みデータにおける色変換を支援する方法
JP5033746B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP5033747B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP2008009676A (ja) 文書管理情報表示プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160118

R150 Certificate of patent or registration of utility model

Ref document number: 5880418

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees