[go: up one dir, main page]

JP2008140007A - Image processor and program - Google Patents

Image processor and program Download PDF

Info

Publication number
JP2008140007A
JP2008140007A JP2006324190A JP2006324190A JP2008140007A JP 2008140007 A JP2008140007 A JP 2008140007A JP 2006324190 A JP2006324190 A JP 2006324190A JP 2006324190 A JP2006324190 A JP 2006324190A JP 2008140007 A JP2008140007 A JP 2008140007A
Authority
JP
Japan
Prior art keywords
image processing
module
image
unit
processing
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.)
Pending
Application number
JP2006324190A
Other languages
Japanese (ja)
Inventor
Takashi Igarashi
貴 五十嵐
Yusuke Sugimoto
裕介 杉本
Kazuyuki Itagaki
和幸 板垣
Yukio Kumazawa
幸夫 熊澤
Takashi Nagao
隆 長尾
Yoichi Isaka
洋一 井坂
Junichi Kaneko
順一 金子
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
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 filed Critical Fuji Xerox Co Ltd
Priority to JP2006324190A priority Critical patent/JP2008140007A/en
Publication of JP2008140007A publication Critical patent/JP2008140007A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)

Abstract

【課題】所定の条件に応じて画像処理モジュール単位で演算方法を切替えることができる画像処理装置及び画像処理プログラムを得る。
【解決手段】所定の画像処理を行う画像処理モジュールを複数連結して画像データに対して複数の画像処理を組み合わせた一連の処理を実行する場合に、該一連の処理を構成する各画像処理の演算形式を所定の条件に応じて(例えば、速度を優先するモードや精度を優先するモード等の処理モードに応じて)変更して該一連の処理を実行するように制御する。
【選択図】図14
An image processing apparatus and an image processing program capable of switching a calculation method in units of image processing modules according to a predetermined condition are obtained.
When executing a series of processes that combine a plurality of image processes on image data by connecting a plurality of image processing modules that perform predetermined image processing, each of the image processes constituting the series of processes is performed. The calculation format is changed according to a predetermined condition (for example, according to a processing mode such as a mode giving priority to speed or a mode giving priority to accuracy), and is controlled to execute the series of processes.
[Selection] Figure 14

Description

本発明は画像処理装置及びプログラムに係り、特に、個々のモジュールを連結して一連の処理を実行することができる画像処理装置、及び、コンピュータを前記画像処理装置として機能させるための画像処理プログラムに関する。   The present invention relates to an image processing apparatus and a program, and more particularly to an image processing apparatus capable of executing a series of processes by connecting individual modules, and an image processing program for causing a computer to function as the image processing apparatus. .

入力された画像データに対して画像処理を行う画像処理装置や、画像を取扱可能なDTP(デスクトップ・パブリッシング)システム、入力された画像データが表す画像を記録材料に記録するプリントシステム等では、入力された画像データに対して拡大・縮小、回転、アフィン変換、色変換、フィルタ処理、画像合成等の各種の画像処理が行われる。画像処理装置では、このような複数の画像処理を組み合わせて実行することにより、高品位な画像データを得ることができる。   In an image processing device that performs image processing on input image data, a DTP (desktop publishing) system that can handle images, a print system that records an image represented by input image data on a recording material, etc. Various types of image processing such as enlargement / reduction, rotation, affine transformation, color conversion, filter processing, and image synthesis are performed on the image data. In the image processing apparatus, high-quality image data can be obtained by executing a combination of such a plurality of image processes.

これらの装置やシステムにおいて、入力される画像データの属性や画像データに対する画像処理の内容・手順・パラメータ等が固定されている場合には、専用に設計したハードウエアによって画像処理を行わせる場合もあるが、例えば色空間や1画素当たりのビット数が異なる様々な画像データが入力されたり、画像処理の内容や手順・パラメータ等が様々に変更される場合には、実行する画像処理をより柔軟に変更可能な構成が必要となる。   In these devices and systems, if the attributes of the input image data and the contents, procedures, parameters, etc. of the image processing for the image data are fixed, the image processing may be performed by specially designed hardware. However, for example, when various image data with different color space and the number of bits per pixel are input, or when the contents, procedures, and parameters of the image processing are changed variously, the image processing to be executed is more flexible. A changeable configuration is required.

このような要求を満たすために、必要な機能モジュールを所望の順番でパイプライン状に接続/初期化し、処理を行うことで柔軟に画像処理を行うパイプライン化画像処理システムが知られている(例えば、特許文献1参照。)。また、複数の要素機能的な画像処理モジュールを任意に組み合わせて多種多様な画像処理機能を実現する際に、処理対象の画像データの再読み出しを可能とする画像処理装置および画像処理方法も知られている(例えば、特許文献2参照。)。   In order to satisfy such a requirement, a pipelined image processing system is known that performs flexible image processing by connecting / initializing necessary functional modules in a pipeline order in a desired order and performing processing ( For example, see Patent Document 1.) Also known are an image processing apparatus and an image processing method that enable re-reading of image data to be processed when realizing a wide variety of image processing functions by arbitrarily combining a plurality of elemental functional image processing modules. (For example, refer to Patent Document 2).

組み合わせて用いる各々の画像処理モジュールは内部で複雑な演算を行うが、演算形式には様々なタイプがある。例えば、小数演算を行う場合には、固定小数演算、浮動小数演算がある。一般的には、浮動小数演算を行った方が演算精度が高いが処理速度が遅く、固定小数演算を行った方が演算速度は向上するが、演算精度が落ちる傾向にある。入力される画像データの属性や画像データに対する画像処理の内容・手順・パラメータ等が固定されている画像処理装置で実行される一連の画像処理では、小数演算を伴う場合の処理は通常、浮動小数を用いて演算を行うか、固定小数を用いて演算を行うかのどちらか一方で統一されており、各処理単位で設定できない場合が一般的である。   Each image processing module used in combination performs complex calculations inside, but there are various types of calculation formats. For example, when performing decimal arithmetic, there are fixed decimal arithmetic and floating decimal arithmetic. In general, the calculation precision is higher when floating point arithmetic is performed, but the processing speed is slower, and the arithmetic speed is improved when fixed decimal arithmetic is performed, but the arithmetic precision tends to be lowered. In a series of image processing executed by an image processing apparatus in which image processing attributes, image processing contents, procedures, parameters, etc. for image data to be input are fixed, processing with decimal arithmetic is usually a floating point number. It is common that either the operation is performed using, or the operation is performed using a fixed decimal, and it is not possible to set each processing unit.

しかしこれでは、要求される演算精度や処理速度、実行する環境やユーザーの設定等に対応することができない等の問題があった。
特開平7−105020号公報 特開2003−281517号公報
However, this has a problem that it cannot cope with required calculation accuracy, processing speed, execution environment, user settings, and the like.
Japanese Patent Laid-Open No. 7-105020 JP 2003-281517 A

本発明は上記事実を考慮して成されたもので、所定の条件に応じて画像処理モジュール単位で演算方法を切替えることができる画像処理装置及び画像処理プログラムを得ることが目的である。   The present invention has been made in consideration of the above facts, and an object of the present invention is to obtain an image processing apparatus and an image processing program capable of switching the calculation method in units of image processing modules in accordance with predetermined conditions.

上記目的を達成するために請求項1記載の発明に係る画像処理装置は、所定の画像処理を行う画像処理モジュールを複数連結して画像データに対して複数の画像処理を組み合わせた一連の処理を実行する画像処理手段と、前記一連の処理を構成する各画像処理の演算形式を所定の条件に応じて変更して前記一連の処理を実行するように前記画像処理手段を制御する制御手段と、を含んで構成されている。   In order to achieve the above object, an image processing apparatus according to a first aspect of the present invention performs a series of processing in which a plurality of image processing modules that perform predetermined image processing are connected and a plurality of image processing is combined with image data. Image processing means for executing, and control means for controlling the image processing means so as to execute the series of processing by changing the calculation format of each image processing constituting the series of processing according to a predetermined condition; It is comprised including.

このような構成によれば、一連の処理を構成する各画像処理の演算形式を所定の条件に応じて変更して実行できるため、所定の条件に適合した処理を行うことができる。   According to such a configuration, the calculation format of each image processing constituting a series of processes can be changed and executed according to a predetermined condition, so that a process suitable for the predetermined condition can be performed.

また、請求項2の発明は、請求項1記載の発明において、前記制御手段は、前記一連の処理を構成する各画像処理の演算形式を、固定小数演算及び浮動小数演算のいずれか一方に変更して前記一連の処理を実行するように前記画像処理手段を制御することを特徴とする。   The invention according to claim 2 is the invention according to claim 1, wherein the control means changes the calculation format of each image processing constituting the series of processing to one of fixed decimal arithmetic and floating decimal arithmetic. The image processing means is controlled to execute the series of processes.

これにより、小数演算を固定小数で行うか浮動小数で行うか、各画像処理単位で変更することができる。   Thereby, it can be changed for each image processing unit whether the decimal calculation is performed with a fixed decimal or a floating decimal.

請求項3の発明は、請求項1記載の発明において、前記制御手段は、前記一連の処理を構成する各画像処理の演算形式として演算ビット数を変更して前記一連の処理を実行するように前記画像処理手段を制御することを特徴とする。   According to a third aspect of the present invention, in the first aspect of the present invention, the control means executes the series of processes by changing the number of calculation bits as the calculation format of each image process constituting the series of processes. The image processing means is controlled.

これにより、各画像処理実行時に所定の条件に応じて最適な演算ビット数で演算することができ、所定の条件に適合した処理を行うことができる。   As a result, when each image process is executed, calculation can be performed with an optimal number of calculation bits according to a predetermined condition, and processing suitable for the predetermined condition can be performed.

請求項4の発明は、請求項1乃至請求項3のいずれか1項記載の発明において、前記所定の条件は、精度を優先するモード及び速度を優先するモードを含む処理モード、前記画像処理手段の動作環境、及び前記画像データのビット深数の少なくとも1つであることを特徴とする。   According to a fourth aspect of the present invention, in the invention according to any one of the first to third aspects, the predetermined condition includes a processing mode including a mode in which accuracy is prioritized and a mode in which speed is prioritized, and the image processing means. And at least one bit depth of the image data.

こうした条件に応じて演算形式を変更することによって、実行環境や利用者の要望を反映し各画像処理、及び一連の処理を効率的に実行することが可能となる。   By changing the calculation format in accordance with these conditions, it is possible to efficiently execute each image processing and a series of processing reflecting the execution environment and the user's request.

請求項5の発明は、請求項4記載の発明において、前記制御手段は、前記処理モードが精度を優先するモードの場合には、前記一連の処理を構成する各画像処理の演算形式を浮動小数演算に変更し、前記処理モードが速度を優先するモードの場合には、前記一連の処理を構成する各画像処理の演算形式を固定小数演算に変更して前記一連の処理を実行するように前記画像処理手段を制御することを特徴とする。   According to a fifth aspect of the present invention, in the invention according to the fourth aspect, when the processing mode is a mode in which accuracy is prioritized, the control means sets a calculation format of each image processing constituting the series of processing as a floating point number. When the processing mode is a mode in which speed is prioritized, the calculation format of each image processing that constitutes the series of processes is changed to a fixed decimal calculation and the series of processes is executed. The image processing means is controlled.

これにより、処理モードに応じて精度を優先する場合は浮動小数を、処理速度を優先する場合は固定小数を用いて演算を行うといった切替えが可能となり、効率良く処理することができる。   As a result, it is possible to perform switching efficiently by using a floating-point number when priority is given to accuracy according to the processing mode, and by using a fixed decimal number when priority is given to processing speed.

請求項6の発明は、請求項4記載の発明において、前記制御手段は、前記処理モードが精度を優先するモードの場合には、前記一連の処理を構成する各画像処理の演算ビット数が大きくなるように演算形式を変更し、前記処理モードが速度を優先するモードの場合には、前記一連の処理を構成する各画像処理の演算ビット数が小さくなるように演算形式を変更して前記一連の処理を実行するように前記画像処理手段を制御することを特徴とする。   According to a sixth aspect of the present invention, in the fourth aspect of the present invention, when the processing mode is a mode in which accuracy is prioritized, the control means has a large number of operation bits for each image processing constituting the series of processing. If the calculation mode is changed so that the processing mode is a mode in which speed is given priority, the calculation format is changed so that the number of calculation bits of each image processing constituting the series of processing is reduced. The image processing means is controlled to execute the process.

これにより、処理モードに応じて精度を優先する場合は演算ビット数を大きく、処理速度を優先する場合は演算ビット数を小さくして演算を行うといった切替えが可能となり、効率良く処理することができる。   As a result, it is possible to perform switching efficiently by increasing the number of operation bits when priority is given to the processing mode, and by reducing the number of operation bits when priority is given to the processing speed. .

請求項7の発明は、請求項5記載の発明において、前記制御手段は、前記処理モードが精度を優先するモードの場合には、前記一連の処理を構成する各画像処理の演算形式を有理数演算に変更することを特徴とする。   The invention according to claim 7 is the invention according to claim 5, wherein, when the processing mode is a mode in which accuracy is prioritized, the control means sets an arithmetic form of each image processing constituting the series of processes as a rational number calculation. It is characterized by changing to.

これにより、より精度高く演算することができる。   Thereby, it is possible to calculate with higher accuracy.

請求項8の発明は、請求項4乃至請求項7のいずれか1項記載の発明において、前記処理モードを設定するための設定手段を更に備えたことを特徴とする。   The invention according to claim 8 is the invention according to any one of claims 4 to 7, further comprising setting means for setting the processing mode.

このような構成により、利用者の意図を反映した演算形式に変更でき、利用者にとって最適な処理を実行させることが可能となる。   With such a configuration, it is possible to change the calculation format to reflect the user's intention, and it is possible to execute the optimum process for the user.

請求項9の発明は、請求項1乃至請求項8のいずれか1項記載の発明において、前記演算形式は、前記画像処理モジュールを連結するとき、または前記一連の処理を実行するときに変更されることを特徴とする。   The invention according to claim 9 is the invention according to any one of claims 1 to 8, wherein the calculation format is changed when the image processing modules are connected or when the series of processes is executed. It is characterized by that.

これにより、柔軟性高く演算形式を変更することができる。   Thereby, the calculation format can be changed with high flexibility.

さらにまた、請求項10の発明の画像処理プログラムは、コンピュータを、所定の画像処理を行う画像処理モジュールを複数連結して画像データに対して複数の画像処理を組み合わせた一連の処理を実行する画像処理手段、及び、前記一連の処理を構成する各画像処理の演算形式を所定の条件に応じて変更して前記一連の処理を実行するように前記画像処理手段を制御する制御手段、として機能させるものである。   Furthermore, an image processing program according to a tenth aspect of the invention is an image for executing a series of processes in which a plurality of image processing modules that perform predetermined image processing are connected to a computer and a plurality of image processes are combined with the image data. A processing unit, and a control unit that controls the image processing unit so as to execute the series of processes by changing a calculation format of each of the image processes constituting the series of processes according to a predetermined condition. Is.

このようなプログラムによれば、一連の処理を構成する各画像処理の演算形式を所定の条件に応じて変更して実行できるため、所定の条件に適合した処理を行うことができる。   According to such a program, the calculation format of each image processing constituting the series of processes can be changed and executed according to a predetermined condition, so that a process suitable for the predetermined condition can be performed.

以上説明したように本発明は、所定の条件に応じて画像処理モジュール単位で演算形式を切替えることができる、という優れた効果を有する。   As described above, the present invention has an excellent effect that the calculation format can be switched for each image processing module according to a predetermined condition.

以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図1には、本発明に係る画像処理装置として機能することが可能なコンピュータ10が示されている。なお、このコンピュータ10は、複写機、プリンタ、ファクシミリ装置、これらの機能を兼ね備えた複合機、スキャナ、写真プリンタ等のように内部で画像処理を行う必要のある任意の画像取扱機器に組み込まれていてもよいし、パーソナル・コンピュータ(PC)等の独立したコンピュータであってもよく、更にPDA(Personal Digital Assistant)や携帯電話機等の携帯機器に組み込まれたコンピュータであってもよい。   Hereinafter, an example of an embodiment of the present invention will be described in detail with reference to the drawings. FIG. 1 shows a computer 10 that can function as an image processing apparatus according to the present invention. The computer 10 is incorporated in any image handling apparatus that needs to perform image processing internally, such as a copying machine, a printer, a facsimile machine, a multifunction machine having these functions, a scanner, a photographic printer, or the like. Alternatively, it may be an independent computer such as a personal computer (PC), or may be a computer incorporated in a portable device such as a PDA (Personal Digital Assistant) or a cellular phone.

コンピュータ10はCPU12、メモリ14、表示部16、操作部18、記憶部20、画像データ供給部22及び画像出力部24を備えており、これらはバス26を介して互いに接続されている。コンピュータ10が上述したような画像取扱機器に組み込まれている場合、表示部16や操作部18としては、画像取扱機器に設けられたLCD等から成る表示パネルやテンキー等を適用することができる。また、コンピュータ10が独立したコンピュータである場合、表示部16や操作部18としては、当該コンピュータに接続されたディスプレイやキーボード、マウス等を適用することができる。また、記憶部20としてはHDD(Hard Disk Drive)が好適であるが、これに代えてフラッシュメモリ等の他の不揮発性記憶手段を用いることも可能である。   The computer 10 includes a CPU 12, a memory 14, a display unit 16, an operation unit 18, a storage unit 20, an image data supply unit 22 and an image output unit 24, which are connected to each other via a bus 26. When the computer 10 is incorporated in the image handling device as described above, a display panel, a numeric keypad, or the like composed of an LCD or the like provided in the image handling device can be applied as the display unit 16 and the operation unit 18. When the computer 10 is an independent computer, a display, a keyboard, a mouse, or the like connected to the computer can be applied as the display unit 16 or the operation unit 18. The storage unit 20 is preferably an HDD (Hard Disk Drive), but other nonvolatile storage means such as a flash memory can be used instead.

また、画像データ供給部22は処理対象の画像データを供給できるものであればよく、例えば紙や写真フィルム等の記録材料に記録されている画像を読み取って画像データを出力する画像読取部、通信回線を介して外部から画像データを受信する受信部、画像データを記憶する画像記憶部(メモリ14又は記憶部20)等を適用することができる。   The image data supply unit 22 only needs to be able to supply image data to be processed. For example, an image reading unit that reads an image recorded on a recording material such as paper or photographic film, and outputs the image data. A receiving unit that receives image data from the outside via a line, an image storage unit (memory 14 or storage unit 20) that stores image data, and the like can be applied.

また、画像出力部24は画像処理を経た画像データ又は該画像データが表す画像を出力するものであればよく、例えば画像データが表す画像を紙や感光材料等の記録材料に記録する画像記録部、画像データが表す画像をディスプレイ等に表示する表示部、画像データを記録メディアに書き込む書込装置、画像データを通信回線を介して送信する送信部を適用することができる。また、画像出力部24は画像処理を経た画像データを単に記憶する画像記憶部(メモリ14又は記憶部20)であっても構わない。   The image output unit 24 may be any unit that outputs image data that has undergone image processing or an image represented by the image data. For example, the image recording unit records an image represented by the image data on a recording material such as paper or a photosensitive material. A display unit that displays an image represented by image data on a display, a writing device that writes image data to a recording medium, and a transmission unit that transmits image data via a communication line can be applied. The image output unit 24 may be an image storage unit (memory 14 or storage unit 20) that simply stores image data that has undergone image processing.

図1に示すように、記憶部20には、CPU12によって実行される各種のプログラムとして、メモリ14等のリソースの管理やCPU12によるプログラムの実行の管理、コンピュータ10と外部との通信等を司るオペレーティングシステム30のプログラム、コンピュータ10を本発明に係る画像処理装置として機能させるための画像処理プログラム群34、CPU12が上記画像処理プログラム群を実行することで実現される画像処理装置に対して所望の画像処理を行わせる各種のアプリケーション32のプログラム(図1ではアプリケーションプログラム群32と表記)が各々記憶されている。   As shown in FIG. 1, the storage unit 20 includes various programs executed by the CPU 12, such as management of resources such as the memory 14, management of execution of programs by the CPU 12, and communication between the computer 10 and the outside. A program of the system 30, an image processing program group 34 for causing the computer 10 to function as an image processing apparatus according to the present invention, and a desired image for the image processing apparatus realized by the CPU 12 executing the image processing program group. Programs of various applications 32 to be processed (represented as application program group 32 in FIG. 1) are stored.

画像処理プログラム群34は、前述した各種の画像取扱機器や携帯機器を開発する際の開発負荷を軽減したり、PC等で利用可能な画像処理プログラムを開発する際の開発負荷を軽減することを目的として、各種の画像取扱機器や携帯機器、PC等の各種機器(プラットフォーム)で共通に使用可能に開発されたプログラムであり、本発明に係る画像処理プログラムに対応している。   The image processing program group 34 reduces the development load when developing the above-described various image handling devices and portable devices, and reduces the development load when developing an image processing program usable on a PC or the like. The purpose is a program developed so that it can be commonly used in various devices (platforms) such as various image handling devices, portable devices, and PCs, and corresponds to the image processing program according to the present invention.

画像処理プログラム群34によって実現される画像処理装置は、アプリケーション32からの構築指示に従い、アプリケーション32が指示した画像処理を行う画像処理部を構築し、アプリケーション32からの実行指示に従い、前記画像処理部によって画像処理を行う(詳細は後述)。画像処理プログラム群34は、所望の画像処理を行う画像処理部(所望の構成の画像処理部)の構築を指示したり、構築された画像処理部による画像処理の実行を指示するためのインタフェースをアプリケーション32に提供している。   The image processing apparatus realized by the image processing program group 34 constructs an image processing unit that performs image processing instructed by the application 32 in accordance with a construction instruction from the application 32, and executes the image processing unit in accordance with an execution instruction from the application 32. To perform image processing (details will be described later). The image processing program group 34 provides an interface for instructing the construction of an image processing unit (an image processing unit having a desired configuration) that performs desired image processing, or for instructing the execution of image processing by the constructed image processing unit. Application 32 is provided.

このため、内部で画像処理を行う必要のある任意の機器を新規開発する等の場合にも、前記画像処理を行うプログラムの開発に関しては、当該機器で必要とされる画像処理を上記のインタフェースを利用して画像処理プログラム群34に行わせるアプリケーション32を開発するのみで済み、実際に画像処理を行うプログラムを新たに開発する必要が無くなるので、開発負荷を軽減することができる。   For this reason, even when newly developing an arbitrary device that needs to perform image processing internally, regarding the development of a program for performing the image processing, the above-described interface is used to perform the image processing required for the device. It is only necessary to develop the application 32 to be used and executed by the image processing program group 34, and it is not necessary to newly develop a program for actually performing image processing, so that the development load can be reduced.

また、画像処理プログラム群34によって実現される画像処理装置は、前述のように、アプリケーション32からの構築指示に従い、アプリケーション32が指示した画像処理を行う画像処理部を構築し、構築した画像処理部によって画像処理を行うので、画像処理装置(画像処理部)によって実行される画像処理を、処理対象の画像データ等に応じて柔軟に変更することができる。   Further, as described above, the image processing apparatus realized by the image processing program group 34 constructs an image processing unit that performs image processing instructed by the application 32 according to the construction instruction from the application 32, and constructs the constructed image processing unit. Therefore, the image processing executed by the image processing apparatus (image processing unit) can be flexibly changed according to the image data to be processed.

以下、画像処理プログラム群34について説明する。図1に示すように、画像処理プログラム群34はモジュールライブラリ36と、処理構築部42のプログラムと、処理管理部46に大別される。   Hereinafter, the image processing program group 34 will be described. As shown in FIG. 1, the image processing program group 34 is roughly divided into a module library 36, a program for the processing construction unit 42, and a processing management unit 46.

本実施形態に係る処理構築部42は、アプリケーションからの指示により、例として図2に示すように、予め定められた画像処理を行う1つ以上の画像処理モジュール38と、個々の画像処理モジュール38の前段及び後段の少なくとも一方に配置され画像データを記憶するためのバッファを備えたバッファモジュール40と、がパイプライン形態又はDAG(Directed Acyclic Graph:有向非循環グラフ)形態で連結されて成る画像処理部50を構築する。   As shown in FIG. 2 as an example, the processing construction unit 42 according to the present embodiment performs one or more image processing modules 38 that perform predetermined image processing and individual image processing modules 38 according to instructions from the application. And a buffer module 40 having a buffer for storing image data arranged in at least one of the preceding stage and the succeeding stage, and connected in a pipeline form or a DAG (Directed Acyclic Graph) form The processing unit 50 is constructed.

画像処理部50を構成する個々の画像処理モジュールの実体はCPU12によって実行されCPU12で所定の画像処理を行わせるための第1プログラム、又は、CPU12によって実行されCPU12により図1に図示されていない外部の画像処理装置(例えば専用画像処理ボード等)に対する処理の実行を指示するための第2プログラムである。上述したモジュールライブラリ36には、予め定められた互いに異なる画像処理(例えば入力処理やフィルタ処理、色変換処理、拡大・縮小処理、スキュー角検知処理、画像回転処理、画像合成処理、出力処理等)を行う複数種の画像処理モジュール38のプログラムが各々登録されている。以下では、説明を簡単にするために、画像処理部50を構成する個々の画像処理モジュールの実体が上記の第1プログラムであるものとして説明する。   The entity of each image processing module constituting the image processing unit 50 is a first program executed by the CPU 12 and causing the CPU 12 to perform predetermined image processing, or an external unit that is executed by the CPU 12 and not shown in FIG. This is a second program for instructing execution of processing for the image processing apparatus (for example, a dedicated image processing board). In the module library 36 described above, predetermined different image processing (for example, input processing, filter processing, color conversion processing, enlargement / reduction processing, skew angle detection processing, image rotation processing, image composition processing, output processing, etc.) A plurality of types of programs of the image processing module 38 are registered. Hereinafter, in order to simplify the description, it is assumed that the individual image processing modules constituting the image processing unit 50 are the first program.

個々の画像処理モジュール38は、例として図3(A)にも示すように、画像データに対する画像処理を所定の単位処理データ量ずつ行う画像処理エンジン38Aと、画像処理モジュール38の前段及び後段のモジュールとの画像データの入出力及び画像処理エンジン38Aの制御を行う制御部38Bから構成されている。   As shown in FIG. 3A as an example, each image processing module 38 includes an image processing engine 38A that performs image processing on image data by a predetermined unit processing data amount, and a front stage and a rear stage of the image processing module 38. The control unit 38B is configured to input / output image data to / from the module and to control the image processing engine 38A.

個々の画像処理モジュール38における単位処理データ量は、画像の1ライン分、画像の複数ライン分、画像の1画素分、画像1面分等を含む任意のバイト数の中から、画像処理エンジン38Aが行う画像処理の種類等に応じて予め選択・設定されている。例えば色変換処理やフィルタ処理を行う画像処理モジュール38では単位処理データ量が1画素分とされ、拡大・縮小処理を行う画像処理モジュール38では単位処理データ量が画像の1ライン分又は画像の複数ライン分とされ、画像回転処理を行う画像処理モジュール38では単位処理データ量が画像1面分とされ、画像圧縮伸長処理を行う画像処理モジュール38では単位処理データ量が実行環境に依存するNバイトとされている。   The unit processing data amount in each image processing module 38 is the image processing engine 38A from an arbitrary number of bytes including one line of the image, a plurality of lines of the image, one pixel of the image, one surface of the image, and the like. Is selected and set in advance in accordance with the type of image processing performed by. For example, in the image processing module 38 that performs color conversion processing and filter processing, the unit processing data amount is one pixel, and in the image processing module 38 that performs enlargement / reduction processing, the unit processing data amount is one line of an image or a plurality of images. In the image processing module 38 that performs line rotation, the image processing module 38 that performs image rotation processing sets the unit processing data amount to one image, and in the image processing module 38 that performs image compression / decompression processing, the unit processing data amount depends on the execution environment. It is said that.

また、モジュールライブラリ36には、画像処理エンジン38Aが実行する画像処理の種類が同一でかつ実行する画像処理の内容が異なる画像処理モジュール38も登録されている(図1では、この種の画像処理モジュールを「モジュール1」「モジュール2」と表記して示している)。   The module library 36 also registers image processing modules 38 having the same type of image processing executed by the image processing engine 38A and different contents of the image processing executed (in FIG. 1, this type of image processing is performed). Modules are indicated as “module 1” and “module 2”).

例えば拡大・縮小処理を行う画像処理モジュール38については、入力された画像データを1画素おきに間引くことで50%に縮小する縮小処理を行う画像処理モジュール38、入力された画像データに対して指定された拡大・縮小率で拡大・縮小処理を行う画像処理モジュール38等の複数の画像処理モジュール38が各々用意されている。また、例えば色変換処理を行う画像処理モジュール38については、RGB色空間をCMY色空間へ変換する画像処理モジュール38やその逆へ変換する画像処理モジュール38、L*a*b*色空間等の他の色空間変換を行う画像処理モジュール38が各々用意されている。   For example, with respect to the image processing module 38 that performs enlargement / reduction processing, the image processing module 38 that performs reduction processing to reduce the input image data to 50% by thinning out every other pixel is designated for the input image data. A plurality of image processing modules 38 such as an image processing module 38 that performs enlargement / reduction processing at the enlarged / reduced rate are prepared. For example, the image processing module 38 that performs color conversion processing includes an image processing module 38 that converts the RGB color space to the CMY color space, an image processing module 38 that converts the color space to the opposite, and an L * a * b * color space. Image processing modules 38 for performing other color space conversions are prepared.

また、モジュールライブラリ36には、画像処理の種類が同一で、演算形式が異なる画像処理モジュール38も登録されている。例えば、小数演算を行う画像処理の画像処理モジュール38では、固定小数演算を行う画像処理モジュール38、浮動小数演算を行う画像処理モジュール38が各々用意されている。また、画像処理の種類によっては、単精度の演算形式の画像処理モジュール38や倍精度の演算形式の画像処理モジュール38が用意されているものもある。さらにまた、有理数(rational)型で演算する画像処理モジュール38、整数型で演算する画像処理モジュール38が用意されているものある。   In the module library 36, image processing modules 38 having the same image processing type and different calculation formats are also registered. For example, in the image processing module 38 for image processing for performing decimal arithmetic, an image processing module 38 for performing fixed decimal arithmetic and an image processing module 38 for performing floating decimal arithmetic are prepared. In addition, depending on the type of image processing, a single-precision calculation format image processing module 38 and a double-precision calculation format image processing module 38 may be provided. Furthermore, there are provided an image processing module 38 for calculating with a rational type and an image processing module 38 for calculating with an integer type.

なお、一般的には、小数演算においては浮動小数演算を行った方が演算精度が高いが処理速度が遅く、固定小数演算を行った方が演算速度は向上するが、演算精度が落ちる傾向にある。倍精度演算は単精度演算より多くの桁数の数値で演算することができ精度が高い。また、有理数型で演算する場合には、整数型や浮動小数型で演算する場合よりも演算精度は高まる。   In general, in floating-point arithmetic, floating-point arithmetic has higher calculation accuracy but processing speed is slower, and fixed-point arithmetic has higher arithmetic speed, but arithmetic accuracy tends to decrease. is there. Double precision computations can be computed with more digits than single precision computations, and are highly accurate. In addition, the calculation accuracy is higher when the arithmetic is performed with the rational number type than when the arithmetic is performed with the integer type or the floating point type.

なお、このように、画像処理モジュール38が演算形式毎に用意され、ユーザの設定に応じて切替えて使用可能な画像処理もあるが、演算形式を切替えて処理することができない(単一の演算形式でのみ処理可能な)画像処理については、該演算可能な演算形式の画像処理モジュール38のみが用意されている。   As described above, the image processing module 38 is prepared for each calculation format, and there is image processing that can be used by switching according to the user's setting, but the processing cannot be performed by switching the calculation format (single calculation). For image processing (which can be processed only in the format), only the image processing module 38 of the calculation format capable of calculation is prepared.

また、画像処理モジュール38の制御部38Bは、画像処理エンジン38Aが単位処理データ量ずつ処理するために必要な画像データを入力するために、自モジュールの前段のモジュール(例えばバッファモジュール40)から画像データを単位読出データ量ずつ取得し、画像処理エンジン38Aから出力される画像データを単位書込データずつ後段のモジュール(例えばバッファモジュール40)へ出力する(画像処理エンジン38Aで圧縮等のデータ量の増減を伴う画像処理が行われなければ単位書込データ量=単位処理データ量となる)か、画像処理エンジン38Aによる画像処理の結果を自モジュールの外部へ出力する(例えば画像処理エンジン38Aがスキュー角検知処理等の画像解析処理を行う場合、画像データに代えてスキュー角検知結果等の画像解析処理結果が出力されることがある)処理を行うが、モジュールライブラリ36には、画像処理エンジン38Aが実行する画像処理の種類及び内容が同一で、上記の単位処理データ量や単位読出データ量、単位書込データ量が異なる画像処理モジュール38も登録されている。例えば、画像回転処理を行う画像処理モジュール38についても、前述のように単位処理データ量が画像1面分の画像処理モジュール38のプログラム以外に、単位処理データ量が画像の1ライン分や画像の複数ライン分の画像処理モジュール38のプログラムがモジュールライブラリ36に登録されていても良い。   In addition, the control unit 38B of the image processing module 38 receives an image from a module (for example, the buffer module 40) in the previous stage of its own module in order to input image data necessary for the image processing engine 38A to process each unit processing data amount. The data is acquired for each unit read data amount, and the image data output from the image processing engine 38A is output to the subsequent module (for example, the buffer module 40) for each unit write data (the amount of data such as compression by the image processing engine 38A). If the image processing with increase / decrease is not performed, the unit writing data amount = the unit processing data amount) or the result of the image processing by the image processing engine 38A is output to the outside of the own module (for example, the image processing engine 38A is skewed). When image analysis processing such as corner detection processing is performed, a scan is performed instead of image data. Image analysis processing results such as corner detection results may be output), but the module library 36 has the same type and content of image processing executed by the image processing engine 38A, and the above unit processing data Image processing modules 38 having different amounts, unit read data amounts, and unit write data amounts are also registered. For example, with respect to the image processing module 38 that performs image rotation processing, the unit processing data amount is equal to one line of the image or the image processing amount other than the program of the image processing module 38 corresponding to one image as described above. A program of the image processing module 38 for a plurality of lines may be registered in the module library 36.

また、モジュールライブラリ36に登録されている個々の画像処理モジュール38のプログラムは、画像処理エンジン38Aに相当するプログラムと制御部38Bに相当するプログラムから構成されているが、制御部38Bに相当するプログラムは部品化されており、個々の画像処理モジュール38のうち単位読出データ量及び単位書込データ量が同一の画像処理モジュール38は、画像処理エンジン38Aで実行される画像処理の種類や内容に拘わらず、制御部38Bに相当するプログラムが共通化されている(制御部38Bに相当するプログラムとして同一のプログラムが用いられている)。これにより、画像処理モジュール38のプログラムの開発にあたっての開発負荷が軽減される。   The program of each image processing module 38 registered in the module library 36 is composed of a program corresponding to the image processing engine 38A and a program corresponding to the control unit 38B, but a program corresponding to the control unit 38B. The image processing module 38 having the same unit read data amount and unit write data amount among the individual image processing modules 38 is concerned with the type and content of image processing executed by the image processing engine 38A. However, the program corresponding to the control unit 38B is shared (the same program is used as the program corresponding to the control unit 38B). Thereby, the development load in developing the program of the image processing module 38 is reduced.

また、本実施形態に係る画像処理プログラム群34は、前述のように各種機器に実装可能であるが、画像処理プログラム群34のうちモジュールライブラリ36に登録する画像処理モジュール38の数や種類等については、画像処理プログラム群34を実装する各種機器で必要とされる画像処理に応じて、適宜追加・削除・入替等が可能であることは言うまでもない。   The image processing program group 34 according to the present embodiment can be mounted on various devices as described above, but the number and types of image processing modules 38 registered in the module library 36 in the image processing program group 34 are described. Needless to say, addition, deletion, replacement, and the like can be appropriately performed in accordance with image processing required by various devices that implement the image processing program group 34.

また、画像処理部50を構成する個々のバッファモジュール40は、例として図3(B)にも示すように、バッファ40Aと、バッファ制御部40Bとから構成されている。バッファ40Aは、コンピュータ10に設けられたメモリ14からオペレーティングシステム30を通じて確保されたメモリ領域で構成される。バッファ制御部40Bは、バッファモジュール40の前段及び後段のモジュールとの画像データの入出力及びバッファ40Aの管理を行う。個々のバッファモジュール40のバッファ制御部40Bもその実体はCPU12によって実行されるプログラムであり、モジュールライブラリ36にはバッファ制御部40Bのプログラムも登録されている(図1ではバッファ制御部40Bのプログラムを「バッファモジュール」と表記して示している)。   Each buffer module 40 constituting the image processing unit 50 includes a buffer 40A and a buffer control unit 40B as shown in FIG. 3B as an example. The buffer 40A is configured by a memory area secured through the operating system 30 from the memory 14 provided in the computer 10. The buffer control unit 40B performs input / output of image data with the upstream and downstream modules of the buffer module 40 and management of the buffer 40A. The buffer control unit 40B of each buffer module 40 is also a program executed by the CPU 12, and the program of the buffer control unit 40B is also registered in the module library 36 (in FIG. 1, the program of the buffer control unit 40B is registered). "Buffer module")

また、アプリケーション32からの指示に従って画像処理部50を構築する処理構築部42は、図1に示すように複数種のモジュール生成部44から構成されている。複数種のモジュール生成部44は互いに異なる画像処理に対応しており、アプリケーション32によって処理管理部46を介して起動されることで、対応する画像処理を実現するための画像処理モジュール38及びバッファモジュール40から成るモジュール群を生成する処理を行う。   Further, the processing construction unit 42 that constructs the image processing unit 50 in accordance with an instruction from the application 32 includes a plurality of types of module generation units 44 as shown in FIG. The plurality of types of module generation units 44 correspond to different image processing, and are activated by the application 32 via the processing management unit 46, whereby an image processing module 38 and a buffer module for realizing the corresponding image processing A process of generating a module group consisting of 40 is performed.

なお、図1ではモジュール生成部44の一例として、モジュールライブラリ36に登録されている個々の画像処理モジュール38が実行する画像処理の種類に対応するモジュール生成部44を示しているが、個々のモジュール生成部44に対応する画像処理は、複数種の画像処理モジュール38によって実現される画像処理(例えばスキュー角検知処理と画像回転処理から成るスキュー補正処理)であってもよい。必要とされる画像処理が複数種の画像処理を組み合わせた処理である場合、アプリケーション32は複数種の画像処理の何れかに対応するモジュール生成部44を処理管理部46を介して順次起動する。これにより、アプリケーション32によって順次起動されたモジュール生成部44により、必要とされる画像処理を行う画像処理部50が構築されることになる。   In FIG. 1, as an example of the module generation unit 44, the module generation unit 44 corresponding to the type of image processing executed by each image processing module 38 registered in the module library 36 is shown. The image processing corresponding to the generation unit 44 may be image processing realized by a plurality of types of image processing modules 38 (for example, skew correction processing including skew angle detection processing and image rotation processing). When the required image processing is processing combining a plurality of types of image processing, the application 32 sequentially activates the module generation unit 44 corresponding to any of the plurality of types of image processing via the processing management unit 46. As a result, an image processing unit 50 that performs necessary image processing is constructed by the module generation unit 44 that is sequentially activated by the application 32.

また図1に示すように、処理管理部46は、画像処理部50における画像処理の実行を制御するワークフロー管理部46A、画像処理部50の各モジュールによるメモリ14や各種のファイル等のコンピュータ10のリソースの使用を管理するリソース管理部46B、及び、画像処理部50で発生したエラーを管理するエラー管理部46Cを含んで構成される。   As shown in FIG. 1, the process management unit 46 includes a workflow management unit 46 </ b> A that controls execution of image processing in the image processing unit 50, a memory 14 by each module of the image processing unit 50, and various files of the computer 10. A resource management unit 46B that manages the use of resources and an error management unit 46C that manages errors that have occurred in the image processing unit 50 are configured.

次に本実施形態の作用を図4〜図7のフローチャートを参照して説明する。   Next, the operation of the present embodiment will be described with reference to the flowcharts of FIGS.

まず、画像処理プログラム群34が実装されている機器において、予めユーザは画像処理を行う際の処理モードを設定しておく。図4は、処理モードを設定する設定処理の流れを示すフローチャートである。記憶部20に記憶されているアプリケーションプログラム群32の中には、設定処理を行うためのプログラムが含まれており、CPU12は該プログラムによって該設定処理を実行する。   First, in a device in which the image processing program group 34 is mounted, the user sets a processing mode for performing image processing in advance. FIG. 4 is a flowchart showing the flow of setting processing for setting the processing mode. The application program group 32 stored in the storage unit 20 includes a program for performing a setting process, and the CPU 12 executes the setting process using the program.

ステップ90では、選択可能な処理モードを列挙して表示部16に表示する。処理モードとしては、例えば、処理速度を優先させる処理速度優先モードや、精度を優先させて演算を行わせる精度優先モード等がある。ユーザは列挙された処理モードから操作部18を介して処理モードを選択することができる。   In step 90, selectable processing modes are listed and displayed on the display unit 16. Examples of the processing mode include a processing speed priority mode that prioritizes processing speed and an accuracy priority mode that performs calculation with priority given to accuracy. The user can select a processing mode from the listed processing modes via the operation unit 18.

ステップ92では、ユーザにより処理モードが選択されたか否かを判定し、選択された場合には、ステップ94に移行し、選択結果(選択された処理モードの情報)をメモリ14に記憶して設定する。   In step 92, it is determined whether or not a processing mode has been selected by the user. If so, the process proceeds to step 94, and the selection result (information on the selected processing mode) is stored in the memory 14 and set. To do.

処理管理部46は、このように設定された処理モードに応じて画像処理部50を構築し、処理モードに応じて最適化した一連の画像処理を実行する。詳細は後述する。   The processing management unit 46 constructs the image processing unit 50 according to the processing mode set in this way, and executes a series of image processing optimized according to the processing mode. Details will be described later.

図5は、アプリケーションが実行するモジュール生成処理の流れを示すフローチャートである。   FIG. 5 is a flowchart showing the flow of module generation processing executed by the application.

画像処理プログラム群34が実装されている機器において、何らかの画像処理を行う必要のある状況になると、この状況が特定のアプリケーション32によって検知される。   In a device in which the image processing program group 34 is installed, when a situation where it is necessary to perform some kind of image processing, this situation is detected by a specific application 32.

なお、画像処理を行う必要のある状況としては、例えば画像データ供給部22としての画像読取部によって画像を読み取り、画像出力部24としての画像記録部により記録材料に画像として記録するか、画像出力部24としての表示部に画像として表示させるか、画像出力部24としての書込装置により画像データを記録メディアに書き込むか、画像出力部24としての送信部により画像データを送信するか、画像出力部24としての画像記憶部に記憶させるジョブの実行がユーザによって指示された場合、或いは、画像データ供給部22としての受信部によって受信されるか、画像データ供給部22としての画像記憶部に記憶されている画像データに対して、上記の記録材料への記録、表示部への表示、記録メディアへの書き込み、送信、画像記憶部への記憶の何れかを行うジョブの実行がユーザによって指示された場合が挙げられる。   In addition, as a situation where it is necessary to perform image processing, for example, an image is read by an image reading unit as the image data supply unit 22, and is recorded as an image on a recording material by an image recording unit as the image output unit 24, or image output Whether the image is displayed on the display unit as the unit 24, the image data is written on the recording medium by the writing device as the image output unit 24, the image data is transmitted by the transmission unit as the image output unit 24, or the image output When the execution of a job to be stored in the image storage unit as the unit 24 is instructed by the user, or received by the reception unit as the image data supply unit 22 or stored in the image storage unit as the image data supply unit 22 For the image data being recorded, recording on the recording material, display on the display unit, writing to the recording medium, transmission, Any execution of a job for the storage of the image storage unit include when instructed by the user.

また、画像処理を行う必要のある状況は上記に限られるものではなく、例えばユーザからの指示に応じてアプリケーション32が実行可能な処理の名称等を表示部16に一覧表示している状態で、実行対象の処理がユーザによって選択された等の場合であってもよい。   In addition, the situation where image processing needs to be performed is not limited to the above. For example, in a state where the names of processes that can be executed by the application 32 in accordance with an instruction from the user are displayed in a list on the display unit 16, For example, the execution target process may be selected by the user.

まず、アプリケーション32は、上記状況を検知後、ステップ100で、画像処理対象の画像データを供給する画像データ供給部22の種別を認識し、認識した種別がバッファ領域(メモリ14の一部領域)であった場合には、画像データ供給部22として指定されたバッファ領域を含むバッファモジュール40を生成する。後述するバッファモジュール40の新規生成では、バッファモジュール40のバッファ制御部40Bのプログラムを実行するプロセス、スレッド又はオブジェクトを生成することでバッファ制御部40Bを生成し、生成されたバッファ制御部40Bによりバッファ40Aとして使用するメモリ領域が確保されることによって成されるが、このステップ154におけるバッファモジュール40の生成は、指定されたバッファ領域を既に確保されたバッファ40Aとして(バッファ制御部40Bに)認識させるパラメータを設定してバッファ制御部40Bを生成する処理を行うことによって成される。ここで生成されたバッファモジュール40は画像データ供給部22として機能する。   First, after detecting the above situation, the application 32 recognizes the type of the image data supply unit 22 that supplies the image data to be processed in step 100, and the recognized type is the buffer area (partial area of the memory 14). If so, the buffer module 40 including the buffer area designated as the image data supply unit 22 is generated. In the new generation of the buffer module 40, which will be described later, a buffer control unit 40B is generated by generating a process, a thread, or an object that executes a program of the buffer control unit 40B of the buffer module 40, and the buffer control unit 40B generates a buffer. This is done by securing the memory area to be used as 40A. The generation of the buffer module 40 in step 154 causes the designated buffer area to be recognized as the already secured buffer 40A (by the buffer control unit 40B). This is done by setting a parameter and generating a buffer control unit 40B. The buffer module 40 generated here functions as the image data supply unit 22.

続いてアプリケーション32は、上記と同様に、ステップ102で、画像処理を行った画像データの出力先としての画像出力部24の種別を認識し、認識した種別がバッファ領域(メモリ14の一部領域)であった場合は、画像出力部24として指定されたバッファ領域を含むバッファモジュール40を上記と同様にして生成する)。ここで生成されたバッファモジュール40は画像出力部24として機能する。   Subsequently, in the same manner as described above, the application 32 recognizes the type of the image output unit 24 as the output destination of the image data on which the image processing has been performed, and the recognized type is the buffer area (partial area of the memory 14). ), The buffer module 40 including the buffer area designated as the image output unit 24 is generated in the same manner as described above. The buffer module 40 generated here functions as the image output unit 24.

次にアプリケーション32は、ステップ104で、実行すべき画像処理の内容を認識し、実行すべき画像処理を、個々のモジュール生成部44に対応するレベルの画像処理の組み合わせに分解し、実行すべき画像処理を実現するために必要な画像処理の種類及び個々の画像処理の実行順序を判定する。なお、この判定は、例えば上記の画像処理の種類及び個々の画像処理の実行順序を、ユーザが実行を指示可能なジョブの種類と対応付けて予め情報として登録しておき、アプリケーション32は、実行が指示されたジョブの種類に対応する情報を読み出すことによって実現することができる。   Next, in step 104, the application 32 recognizes the content of the image processing to be executed, decomposes the image processing to be executed into a combination of image processing at a level corresponding to each module generation unit 44, and should be executed. The type of image processing necessary for realizing the image processing and the execution order of the individual image processing are determined. In this determination, for example, the type of image processing and the execution order of the individual image processing are registered in advance as information in association with the type of job that can be instructed by the user. Can be realized by reading out information corresponding to the type of job instructed.

ステップ106では、アプリケーション32は、上記で判定した画像処理の種類、実行順序に基づいて、処理管理部46に対して特定の画像処理に対応する画像処理モジュール38を生成するように指示する。なお、アプリケーション32は、該指示と共に、モジュールの生成に必要な情報として、該生成するモジュールに画像データを入力する入力モジュールを識別するための入力モジュール識別情報、該生成するモジュールが画像データを出力する出力モジュールを識別するための出力モジュール識別情報、該生成するモジュールに入力されるべき入力画像データの属性を表す入力画像属性情報、該生成するモジュールから出力される出力画像データの属性を表す出力画像属性情報、実行すべき画像処理のパラメータを処理管理部46に通知する。   In step 106, the application 32 instructs the process management unit 46 to generate the image processing module 38 corresponding to the specific image processing based on the type and execution order of the image processing determined above. The application 32 outputs the input module identification information for identifying the input module that inputs the image data to the generated module as the information necessary for generating the module together with the instruction, and the generated module outputs the image data. Output module identification information for identifying the output module to be input, input image attribute information indicating the attribute of the input image data to be input to the generated module, and output indicating the attribute of the output image data output from the generated module The image management unit 46 is notified of image attribute information and image processing parameters to be executed.

ステップ108では、モジュール生成部44から生成通知が入力されたか否かを判定する。ここで肯定判定した場合には、ステップ110で、アプリケーション32は、全画像処理種のモジュールを生成したか否か(すなわち、必要とされる画像処理を行う画像処理部50の構築が完了したか否か)を判定する。ここで否定判定した場合には、次の画像処理モジュール38が生成されるように、ステップ106に戻って上記処理を繰り返す。また、ステップ110で肯定判定した場合には、ステップ112に移行し、稼働中の処理管理部46に対して画像処理部50による画像処理の実行を指示する。   In step 108, it is determined whether a generation notification is input from the module generation unit 44. If the determination is affirmative, in step 110, the application 32 has generated all image processing type modules (that is, has the construction of the image processing unit 50 that performs the required image processing completed)? Or not). If the determination is negative, the process returns to step 106 and the above process is repeated so that the next image processing module 38 is generated. If the determination in step 110 is affirmative, the process proceeds to step 112 to instruct the active processing management unit 46 to execute image processing by the image processing unit 50.

図6は、処理管理部46のワークフロー管理部46Aが実行するモジュール生成制御処理の流れを示すフローチャートである。このモジュール生成制御処理は、アプリケーション32からモジュール生成指示が入力されたときに開始される。   FIG. 6 is a flowchart showing the flow of the module generation control process executed by the workflow management unit 46A of the process management unit 46. This module generation control process is started when a module generation instruction is input from the application 32.

ステップ120では、画像処理モジュール38の生成指示を受けた処理管理部46のワークフロー管理部46Aが、設定されている処理モードに対応する演算形式を選択する。ここでは、予めメモリ14あるいは記憶部20に記憶されている演算形式テーブルを参照して選択する。   In step 120, the workflow management unit 46A of the process management unit 46 that has received the generation instruction of the image processing module 38 selects a calculation format corresponding to the set processing mode. Here, the selection is made with reference to the calculation format table stored in the memory 14 or the storage unit 20 in advance.

図8(A)は、演算形式テーブルの一例を示す図である。同図に示すように、処理モードに対応して演算形式が登録されている。例えば、処理速度優先モードは精度よりも処理速度を優先するため、演算形式に固定小数演算形式や整数型演算形式が登録されている。また、精度優先モードは処理速度よりも精度を優先するため、演算形式に浮動小数演算形式や有理数型演算形式が登録されている。   FIG. 8A shows an example of the calculation format table. As shown in the figure, calculation formats are registered corresponding to the processing modes. For example, in the processing speed priority mode, the processing speed is prioritized over the accuracy, and therefore, a fixed decimal arithmetic format and an integer arithmetic format are registered in the arithmetic format. In the precision priority mode, since priority is given to precision over processing speed, a floating-point arithmetic format and a rational number arithmetic format are registered in the arithmetic format.

ステップ122では、処理管理部46は、アプリケーション32から指定された画像処理を実行する画像処理モジュール38を生成するためのモジュール生成部44を選択する。   In step 122, the process management unit 46 selects the module generation unit 44 for generating the image processing module 38 that executes the image processing designated by the application 32.

ステップ124では、該選択したモジュール生成部44を起動して、上記選択した演算形式の情報や各種処理パラメータ等を通知し、画像処理モジュール38を生成させる。   In step 124, the selected module generation unit 44 is activated to notify the selected calculation format information, various processing parameters, and the like, thereby generating the image processing module 38.

ステップ126では、モジュール生成部44からの生成通知を待ち、生成通知を入力した場合には、このモジュール生成制御処理を終了する。   In step 126, the module generation control unit 44 waits for the generation notification from the module generation unit 44. When the generation notification is input, the module generation control process ends.

図7は、モジュール生成部44で実行されるモジュール生成処理の流れを示すフローチャートである。   FIG. 7 is a flowchart showing the flow of module generation processing executed by the module generation unit 44.

モジュール生成部44は、処理管理部46のワークフロー管理部46Aによって起動されると、図7に示すモジュール生成処理を行う。なお、起動時に、処理管理部46のワークフロー管理部46Aからモジュールの生成に必要な情報として、入力画像データの属性、画像処理モジュール38で実行すべき処理パラメータ、ユーザが設定した処理モードに対応する演算形式の情報等が通知される。   When the module generation unit 44 is activated by the workflow management unit 46A of the process management unit 46, the module generation unit 44 performs a module generation process shown in FIG. Note that, at the time of activation, information necessary for generating a module from the workflow management unit 46A of the process management unit 46 corresponds to the attributes of the input image data, the processing parameters to be executed by the image processing module 38, and the processing mode set by the user. Information on the calculation format is notified.

モジュール生成処理では、まずステップ200において、このモジュール生成部44で生成すべき画像処理モジュール38が有るか否かを判定する。判定が否定された場合はモジュール生成処理を終了する。生成すべき画像処理モジュール38が有る場合には、ステップ202で、生成する画像処理モジュール38の後段にバッファモジュール40が必要が否かを判定する。この判定は、画像処理モジュールの後段が出力モジュール(画像出力部24)である場合(例えば図2(A)〜(C)に示す画像処理部50における最後段の画像処理モジュール38を参照)や、例として図2(B)に示す画像処理部50においてスキュー角検知処理を行う画像処理モジュール38のように、画像処理モジュールが、画像データに対して解析等の画像処理を行いその結果を他の画像処理モジュール38へ出力するモジュールである場合は否定され、バッファモジュール40の生成を行うことなくステップ210へ移行するが、上記以外の場合は判定が肯定されてステップ208へ移行し、バッファ制御部40Bを起動する(バッファ制御部40Bのプログラムを実行するプロセス、スレッド又はオブジェクトを生成する)ことで、画像処理モジュールの後段に連結するバッファモジュール40を生成する。   In the module generation process, first, in step 200, it is determined whether or not there is an image processing module 38 to be generated by the module generation unit 44. If the determination is negative, the module generation process ends. If there is an image processing module 38 to be generated, it is determined in step 202 whether or not the buffer module 40 is necessary after the image processing module 38 to be generated. This determination is made when the subsequent stage of the image processing module is the output module (image output unit 24) (see, for example, the last stage image processing module 38 in the image processing unit 50 shown in FIGS. 2A to 2C). As an example, like the image processing module 38 that performs skew angle detection processing in the image processing unit 50 shown in FIG. 2B, the image processing module performs image processing such as analysis on the image data, and the result is the other. If it is a module to be output to the image processing module 38, it is denied, and the process proceeds to step 210 without generating the buffer module 40. However, in other cases, the determination is affirmed and the process proceeds to step 208, where buffer control is performed. By starting the unit 40B (creating a process, thread or object for executing the program of the buffer control unit 40B), Generating a buffer module 40 which connects to the subsequent processing module.

次のステップ206では、前段のモジュール(例えばバッファモジュール40)の情報と後段のバッファモジュール40の情報、画像処理モジュール38に入力される入力画像データの属性、処理パラメータを与えて、画像処理モジュール38を生成する。なお、ステップ206で後段のバッファモジュール40が不要と判断された画像処理モジュール38に対しては後段のバッファモジュール40の情報は与えられず、また例えば50%縮小処理のように処理内容が固定的で特別な画像処理パラメータが必要ない場合には処理パラメータは与えられない。   In the next step 206, the information of the preceding module (for example, the buffer module 40), the information of the succeeding buffer module 40, the attribute of the input image data input to the image processing module 38, and the processing parameters are given. Is generated. It should be noted that the information of the subsequent buffer module 40 is not given to the image processing module 38 for which it is determined in step 206 that the subsequent buffer module 40 is unnecessary, and the processing content is fixed, for example, 50% reduction processing. If no special image processing parameter is required, no processing parameter is given.

このステップ206では、モジュールライブラリ36に登録されており、画像処理モジュール38として利用可能な複数の候補モジュールの中から、上記取得した入力画像データの属性、画像処理モジュール38で実行すべき処理パラメータ、及びユーザが設定した処理モードに対応する演算形式に合致する画像処理モジュール38を選択する。   In this step 206, the attribute of the acquired input image data, the processing parameters to be executed by the image processing module 38, among the plurality of candidate modules registered in the module library 36 and usable as the image processing module 38, Then, the image processing module 38 that matches the calculation format corresponding to the processing mode set by the user is selected.

例えばモジュール生成部44が色変換処理を行うモジュール群を生成するモジュール生成部であり、処理パラメータにより出力画像データの色空間としてCMY色空間が指定され、更に入力画像データがRGB色空間のデータであって、ユーザが設定した処理モードに対応する演算形式が固定小数演算形式であった場合には、モジュールライブラリ36に登録されている各種の色空間処理を行う複数種の画像処理モジュール38の中から、固定小数演算形式で演算を行い、RGB→CMYの色空間変換を行う画像処理モジュール38が選択・生成される。   For example, the module generation unit 44 is a module generation unit that generates a group of modules that perform color conversion processing. The CMY color space is specified as the color space of the output image data by the processing parameter, and the input image data is data in the RGB color space. If the calculation format corresponding to the processing mode set by the user is a fixed decimal calculation format, among the plurality of types of image processing modules 38 that perform various color space processes registered in the module library 36. Then, an image processing module 38 is selected and generated, which performs an operation in a fixed decimal arithmetic format, and performs RGB → CMY color space conversion.

また、画像処理モジュールが拡大・縮小処理を行う画像処理モジュール38であり、指定された拡大縮小率が50%以外であって、ユーザが設定した処理モードに対応する演算形式が浮動小数演算形式であった場合には、浮動小数演算形式で演算を行い、かつ入力された画像データに対して指定された拡大・縮小率で拡大・縮小処理を行う画像処理モジュール38が選択・生成され、指定された拡大縮小率が50%であれば、浮動小数演算形式で演算を行い、かつ拡大縮小率50%に特化した拡大縮小処理、すなわち入力された画像データを1画素おきに間引くことで50%に縮小する縮小処理を行う画像処理モジュール38が選択・生成される。   Also, the image processing module 38 is an image processing module 38 that performs enlargement / reduction processing, and the specified enlargement / reduction ratio is other than 50%, and the operation format corresponding to the processing mode set by the user is a floating-point operation format. If there is, an image processing module 38 that performs the calculation in the floating-point arithmetic format and performs the enlargement / reduction process with the specified enlargement / reduction ratio on the input image data is selected, generated, and designated. If the enlargement / reduction ratio is 50%, the calculation is performed in the floating-point arithmetic format, and the enlargement / reduction process specialized for the enlargement / reduction ratio of 50%, that is, the input image data is thinned out every other pixel is 50%. An image processing module 38 for performing a reduction process for reducing the image to the image is selected and generated.

なお、モジュール生成部44は、図8(B)に示すようなモジュール情報テーブルに従って、ユーザが設定した処理モードに対応する演算形式に合致している画像処理モジュールを選択する。モジュール情報テーブルには、各画像処理モジュールの名称と該画像処理モジュールが演算を実行するときの演算形式の情報とが対応付けて記憶されている。前述したように、画像処理モジュール38には、実行する画像処理の種別は同じであるが、演算形式が異なるモジュールが用意されているものもある。モジュール情報テーブルには、それらの各々について、それぞれ演算形式の情報が対応付けて登録される。もちろん、演算形式を切替えて処理することができない(単一の演算形式でのみ処理可能な)画像処理種別の画像処理モジュールについても、その演算形式の情報が対応付けて登録される。なお、このモジュール情報テーブルは、予めメモリ14または記憶部20等に記憶しておく。   Note that the module generation unit 44 selects an image processing module that matches the calculation format corresponding to the processing mode set by the user, according to the module information table as shown in FIG. In the module information table, the name of each image processing module and the information on the calculation format when the image processing module executes the calculation are stored in association with each other. As described above, some image processing modules 38 are prepared with the same type of image processing to be executed, but with different calculation formats. In the module information table, information on the calculation format is registered in association with each of them. Of course, information on the operation format is also registered in association with an image processing module of an image processing type that cannot be processed by switching the operation format (can only be processed in a single operation format). The module information table is stored in advance in the memory 14 or the storage unit 20.

なお、画像処理モジュール38の選択は上記に限られるものではなく、例えば画像処理エンジン38Aによる画像処理における単位処理データ量が異なる画像処理モジュール38をモジュールライブラリ36に複数登録しておき、画像処理部50へ割当可能なメモリ領域のサイズ等の動作環境に応じて、適切な単位処理データ量の画像処理モジュール38を選択する(例えば上記サイズが小さくなるに従って単位処理データ量の小さい画像処理モジュール38を選択する等)ようにしてもよいし、アプリケーション32或いはユーザに選択させるようにしてもよい。   The selection of the image processing module 38 is not limited to the above. For example, a plurality of image processing modules 38 having different unit processing data amounts in image processing by the image processing engine 38A are registered in the module library 36, and the image processing unit The image processing module 38 having an appropriate unit processing data amount is selected according to the operating environment such as the size of the memory area that can be allocated to 50 (for example, the image processing module 38 having a smaller unit processing data amount as the size decreases). Or the application 32 or the user may select it.

次のステップ208では、モジュール生成通知と共に後段のバッファモジュール40のIDと生成した画像処理モジュール38のIDの組をワークフロー管理部46Aに通知する。このIDは、個々のモジュールを一意に判別できる情報であればよく、例えば個々のモジュールの生成順に付与した番号や、バッファモジュール40や画像処理モジュール38のオブジェクトのメモリ上でのアドレス等でも良い。ワークフロー管理部46Aに通知された情報は、テーブル形式やリスト形式、連想配列形式等でワークフロー管理部46Aの内部に保持され、後の処理で使われる。ここではテーブル形式で保持するものとして説明を続ける。   In the next step 208, the workflow management unit 46A is notified of the combination of the ID of the subsequent buffer module 40 and the ID of the generated image processing module 38 together with the module generation notification. The ID may be information that can uniquely identify each module, and may be, for example, a number given in the order of generation of each module, an address of an object of the buffer module 40 or the image processing module 38 on a memory, or the like. Information notified to the workflow management unit 46A is held in the workflow management unit 46A in a table format, a list format, an associative array format, or the like and used in later processing. Here, the description will be continued assuming that the data is held in a table format.

なお、先程述べた後段のバッファモジュール40を持たない画像処理モジュール38の場合には、例えば下記の方法で処理を行う。図2(A)において出力処理を行う画像処理モジュール38のように、生成する画像処理モジュール38がパイプラインの終点又は有向非循環グラフの終点の一つである場合には、当該画像処理モジュール38をモジュール生成部44の出力として呼び出し元のアプリケーション32に戻す。また、図2(B)においてスキュー角検知処理を行う画像処理モジュール38のように、生成した画像処理モジュール38における画像処理の結果が他の画像処理モジュール(図2(B)では画像回転処理を行う画像処理モジュール38)で使われる場合、モジュール生成部44は、当該画像処理モジュール38に対して処理が終了するまで繰り返し処理実行を指示して、処理結果を取得する。   In the case of the image processing module 38 that does not have the latter buffer module 40 described above, the processing is performed by the following method, for example. Like the image processing module 38 that performs output processing in FIG. 2A, when the generated image processing module 38 is one of the end points of the pipeline or the directed acyclic graph, the image processing module 38 is returned to the calling application 32 as an output of the module generation unit 44. Further, like the image processing module 38 that performs the skew angle detection processing in FIG. 2B, the image processing result in the generated image processing module 38 is the result of other image processing modules (the image rotation processing is performed in FIG. 2B). When used in the image processing module 38), the module generation unit 44 instructs the image processing module 38 to repeatedly execute the process until the process is completed, and acquires the processing result.

次のステップ210では、モジュール生成通知をアプリケーション32にも通知する。   In the next step 210, the module generation notification is also notified to the application 32.

このように、順次起動されたモジュール生成部44によって上述したモジュール生成処理(図7)が順次行われることで、例として図2(A)〜(C)に示すように、必要とされる画像処理を行う画像処理部50が構築されることになる。   In this way, the module generation processing (FIG. 7) described above is sequentially performed by the module generation unit 44 that has been sequentially activated, so that, as an example, as shown in FIGS. An image processing unit 50 that performs processing is constructed.

モジュール生成後は、該生成されたモジュールにより一連の画像処理が実行される。   After the module is generated, a series of image processing is executed by the generated module.

アプリケーション32は、モジュール生成後、稼働中の処理管理部46に対して画像処理部50による画像処理の実行を指示する。   After generating the module, the application 32 instructs the active processing management unit 46 to execute image processing by the image processing unit 50.

処理管理部46は、アプリケーション32から画像処理の実行が指示されると、メモリ14にロードした画像処理部50の各モジュールのプログラムを、オペレーティングシステム30を通じてスレッド(又はプロセス又はオブジェクト)としてCPU12に実行させる。   When the execution of image processing is instructed from the application 32, the processing management unit 46 executes the program of each module of the image processing unit 50 loaded in the memory 14 as a thread (or process or object) to the CPU 12 through the operating system 30. Let

画像処理モジュール38のプログラムがスレッドとして実行されると、個々の画像処理モジュール38の制御部38Bは自モジュールの初期化を行う。画像処理モジュール38の初期化では、まずモジュール生成部44によって設定されたパラメータに基づいて自モジュールの前段のモジュールを判定する。自モジュールの前段にモジュールが存在していない場合には何ら処理を行わないが、前段のモジュールがバッファモジュール40以外、例えば画像データ供給部22や特定のファイル等である場合には、必要に応じてその初期化処理を行う。また、自モジュールの前段にバッファモジュール40が存在している場合には、前段のバッファモジュール40からの1回の画像データの読み出しによって取得する画像データのデータ量(単位読出データ量)を認識する。   When the program of the image processing module 38 is executed as a thread, the control unit 38B of each image processing module 38 initializes its own module. In the initialization of the image processing module 38, first, the module preceding the own module is determined based on the parameters set by the module generation unit 44. No processing is performed when no module exists in the previous stage of the own module, but if the previous module is other than the buffer module 40, for example, the image data supply unit 22, a specific file, or the like, as necessary. The initialization process is performed. When the buffer module 40 exists in the previous stage of the own module, the data amount (unit read data amount) of the image data acquired by reading the image data from the previous buffer module 40 once is recognized. .

この単位読出データ量は、自モジュールの前段のバッファモジュール40の数が1個であれば1個だけであるが、例えば図2(C)に示す画像処理部50において画像合成処理を行う画像処理モジュール38のように、前段のバッファモジュール40の数が複数で、複数のバッファモジュール40から各々取得した画像データを用いて画像処理エンジン38Aが画像処理を行う等の場合、前段の個々のバッファモジュール40に対応する単位読出データ量は、自モジュールの画像処理エンジン38Aが行う画像処理の種類や内容、前段のバッファモジュール40の数等に応じて定まる。そして、認識した単位読出データ量を、前段に存在している全てのバッファモジュール40へ通知することで、前段に存在している全てのバッファモジュール40に単位読出データ量を設定する(図3(A)の(1)も参照)。   This unit read data amount is only one if the number of buffer modules 40 in the previous stage of the own module is one, but for example, image processing for performing image composition processing in the image processing unit 50 shown in FIG. As in the case of the module 38, when there are a plurality of buffer modules 40 in the previous stage and the image processing engine 38A performs image processing using image data acquired from the plurality of buffer modules 40, the individual buffer modules in the previous stage The unit read data amount corresponding to 40 is determined according to the type and content of image processing performed by the image processing engine 38A of the own module, the number of buffer modules 40 in the previous stage, and the like. Then, the unit read data amount is set in all the buffer modules 40 existing in the preceding stage by notifying the recognized unit read data amount to all the buffer modules 40 existing in the preceding stage (FIG. 3 ( (See also A) (1)).

次に、自モジュールの後段のモジュールを判定する。自モジュールの後段のモジュールがバッファモジュール40以外、例えば画像出力部24や特定のファイル等の場合には、必要に応じてその初期化処理(例えば後段のモジュールが画像出力部24であれば、単位書込データ量に相当するデータ量ずつ画像データを出力することを通知する処理等)を行う。また、後段のモジュールがバッファモジュール40であれば、1回の画像データの書き込みにおける画像データのデータ量(単位書込データ量)を認識し、後段のバッファモジュールに当該単位書込データ量を設定(図3(A)の(2)も参照)する。そして、当該画像処理モジュール38の初期化の完了を処理管理部46通知する。   Next, the module following the own module is determined. If the module subsequent to the own module is other than the buffer module 40, such as the image output unit 24 or a specific file, the initialization process is performed as necessary (for example, if the subsequent module is the image output unit 24, the unit For example, processing for notifying output of image data by the amount of data corresponding to the amount of write data). If the subsequent module is the buffer module 40, the amount of image data (unit write data amount) in one image data write is recognized, and the unit write data amount is set in the subsequent buffer module. (See also (2) in FIG. 3A). Then, the process management unit 46 is notified of the completion of initialization of the image processing module 38.

また、バッファモジュール40(のバッファ制御部40B)のプログラムがスレッドとして実行されると、個々のバッファモジュール40のバッファ制御部40Bは自モジュールの初期化を行う。バッファモジュール40の初期化では、まず自モジュールの前段の画像処理モジュール38から単位書込データ量が通知されるか又は自モジュールの後段の画像処理モジュール38から単位読出データ量が通知される毎に、通知された単位書込データ量又は単位読出データ量を記憶する(図3(B)の(1),(2)も参照)。   When the program of the buffer module 40 (the buffer control unit 40B) is executed as a thread, the buffer control unit 40B of each buffer module 40 initializes its own module. When the buffer module 40 is initialized, first, the unit write data amount is notified from the image processing module 38 in the previous stage of the own module or the unit read data amount is notified from the image processing module 38 in the subsequent stage of the own module. The notified unit write data amount or unit read data amount is stored (see also (1) and (2) in FIG. 3B).

自モジュールと連結されている全ての画像処理モジュール38から単位書込データ量又は単位読出データ量が通知されると、自モジュールと連結されている個々の画像処理モジュール38によって各々設定された単位書込データ量及び単位読出データ量に基づいて、自モジュールのバッファ40Aの管理単位である単位バッファ領域のサイズを決定し、決定した単位バッファ領域のサイズを記憶する。単位バッファ領域のサイズとしては、自モジュールに設定された単位書込データ量及び単位読出データ量のうちの最大値が好適であるが、単位書込データ量を設定してもよいし、単位読出データ量(自モジュールの後段に複数の画像処理モジュール38が連結されている場合は、個々の画像処理モジュール38によって各々設定された単位読出データ量の最大値)を設定してもよいし、単位書込データ量と単位読出データ量(の最大値)の最小公倍数を設定してもよいし、この最小公倍数が所定値未満であれば最小公倍数を、最小公倍数が所定値以上であれば別の値(例えば上述した単位書込データ量及び単位読出データ量のうちの最大値、単位書込データ量、単位読出データ量(の最大値)の何れか)を設定するようにしてもよい。   When the unit write data amount or the unit read data amount is notified from all the image processing modules 38 connected to the own module, the unit documents set by the individual image processing modules 38 connected to the own module respectively. The size of the unit buffer area, which is the management unit of the buffer 40A of the own module, is determined based on the embedded data amount and the unit read data amount, and the determined size of the unit buffer area is stored. As the size of the unit buffer area, the maximum value of the unit write data amount and the unit read data amount set in the own module is suitable. However, the unit write data amount may be set or the unit read data amount may be set. The amount of data (the maximum value of the unit read data amount set by each image processing module 38 when a plurality of image processing modules 38 are connected to the subsequent stage of the own module) may be set. The least common multiple of the write data amount and the unit read data amount (the maximum value thereof) may be set. If the least common multiple is less than the predetermined value, the least common multiple is set. A value (for example, any one of the above-mentioned unit write data amount and unit read data amount, the unit write data amount, and the unit read data amount (the maximum value)) may be set.

また、自モジュールが画像データ供給部22又は画像出力部24として機能するバッファモジュール40であった場合には、自モジュールのバッファ40Aとして用いるメモリ領域が既に存在しているので、先に決定した単位バッファ領域のサイズを、自モジュールのバッファ40Aとして用いる既設のメモリ領域のサイズに変更する。更に、自モジュールの後段の個々の画像処理モジュール38に対応する有効データポインタを各々生成し、生成した有効データポインタを初期化する。この有効データポインタは、自モジュールの前段の画像処理モジュールによって自モジュールのバッファ40Aに書き込まれた画像データのうち、対応する後段の画像処理モジュール38によって読み出されていない画像データ(有効データ)の先頭位置(次の読出開始位置)と末尾位置を各々指し示すポインタであり、初期化時には通常、有効データが存在していないことを意味する特定の情報が設定されるが、自モジュールが画像データ供給部22として機能するバッファモジュール40であれば、自モジュールのバッファ40Aとして用いるメモリ領域には既に画像処理対象の画像データが書き込まれていることがあり、この場合は当該画像データの先頭位置及び末尾位置が後段の個々の画像処理モジュール38に対応する有効データポインタに各々設定される。以上の処理によりバッファモジュール40の初期化が完了し、バッファ制御部40Bは初期化の完了を処理管理部46へ通知する。   If the own module is the buffer module 40 functioning as the image data supply unit 22 or the image output unit 24, the memory area used as the buffer 40A of the own module already exists, so the unit determined previously The size of the buffer area is changed to the size of the existing memory area used as the buffer 40A of the own module. Further, valid data pointers corresponding to the individual image processing modules 38 subsequent to the module are generated, and the generated valid data pointers are initialized. This valid data pointer is the image data (valid data) that has not been read by the corresponding subsequent image processing module 38 among the image data written in the buffer 40A of the own module by the preceding image processing module of the own module. These pointers point to the start position (next read start position) and the end position, respectively. At initialization, specific information indicating that valid data does not exist is usually set, but the own module supplies image data. In the case of the buffer module 40 functioning as the unit 22, image data to be processed may already be written in the memory area used as the buffer 40A of the own module. In this case, the start position and the end of the image data Valid data corresponding to each image processing module 38 at the subsequent stage They are respectively set to the interface. With the above processing, the initialization of the buffer module 40 is completed, and the buffer control unit 40B notifies the processing management unit 46 of the completion of initialization.

処理管理部46は、画像処理部50を構成する全てのモジュールから初期化の完了が通知されると、ワークフロー管理部46Aのプログラムを実行するスレッド(又はプロセス又はオブジェクト)を起動し、ワークフロー管理部46Aに対して画像処理部50による画像処理の実行を指示する。   When the completion of initialization is notified from all the modules constituting the image processing unit 50, the processing management unit 46 activates a thread (or process or object) for executing the program of the workflow management unit 46A, and the workflow management unit 46 A is instructed to execute image processing by the image processing unit 50.

これらの処理は、画像処理部50を構成する画像処理モジュール38に処理要求を入力することで、画像処理部50に画像処理を行わせるものであるが、以下では画像処理部50全体の動作説明に先立ち、個々のバッファモジュール40のバッファ制御部40Bによって行われる処理、個々の画像処理モジュール38の制御部38Bによって行われる処理について順に説明する。   In these processes, a processing request is input to the image processing module 38 constituting the image processing unit 50 to cause the image processing unit 50 to perform image processing. Prior to this, processing performed by the buffer control unit 40B of each buffer module 40 and processing performed by the control unit 38B of each image processing module 38 will be described in order.

本実施形態では、画像処理モジュール38が後段のバッファモジュール40に画像データを書き込む場合には、画像処理モジュール38からバッファモジュール40へ書込要求が入力され、画像処理モジュール38が前段のバッファモジュール40から画像データを読み出す場合には、画像処理モジュール38からバッファモジュール40へ読出要求が入力される。   In this embodiment, when the image processing module 38 writes image data to the subsequent buffer module 40, a write request is input from the image processing module 38 to the buffer module 40, and the image processing module 38 receives the previous buffer module 40. When reading image data from the image processing module 38, a read request is input from the image processing module 38 to the buffer module 40.

データ書込処理では、確保すべきメモリ領域のサイズとして単位書込データ量をリソース管理部46Bに通知し、書込用として用いるメモリ領域(書込用バッファ領域:図9(B)も参照)を稼働中の処理管理部46のリソース管理部46Bを介して取得する。次に、自モジュールのバッファ40Aを構成する保管用の単位バッファ領域の中に、単位書込データ量以上の空き領域が有る単位バッファ領域(単位書込データ量の画像データを書き込み可能な単位バッファ領域)が存在しているか否か判定する。モジュール生成部44によって生成されたバッファモジュール40は、当初はバッファ40Aとして用いるメモリ領域(単位バッファ領域)が確保されておらず、メモリ領域の不足が生ずる度に単位バッファ領域を単位として確保されるので、バッファモジュール40に最初に書込要求が入力されたときにはバッファ40Aとして用いるメモリ領域(単位バッファ領域)が存在しておらず、この判定は否定される。また、後述する処理を経てバッファ40Aとして用いる単位バッファ領域が確保された後も、当該単位バッファ領域への画像データの書込に伴って当該単位バッファ領域内の空き領域が単位書込データ量未満になった場合にも上記判定は否定される。   In the data writing process, the resource management unit 46B is notified of the amount of unit write data as the size of the memory area to be secured, and the memory area used for writing (see also the writing buffer area: FIG. 9B) Is acquired via the resource management unit 46B of the active processing management unit 46. Next, a unit buffer area (a unit buffer in which image data of the unit write data amount can be written) has an empty area larger than the unit write data amount in the storage unit buffer area constituting the buffer 40A of the own module. It is determined whether or not (region) exists. In the buffer module 40 generated by the module generation unit 44, a memory area (unit buffer area) used as the buffer 40A is not initially secured, and a unit buffer area is secured as a unit whenever a memory area shortage occurs. Therefore, when a write request is first input to the buffer module 40, there is no memory area (unit buffer area) used as the buffer 40A, and this determination is denied. Further, even after the unit buffer area used as the buffer 40A is secured through the processing described later, the free area in the unit buffer area is less than the unit write data amount as image data is written to the unit buffer area. The above determination is also denied in the case of

単位書込データ量以上の空き領域が有る単位バッファ領域(単位書込データ量の画像データを書き込み可能な単位バッファ領域)が存在していないと判定された場合は、確保すべきメモリ領域のサイズ(単位バッファ領域のサイズ)をリソース管理部46Bに通知して、自モジュールのバッファ40Aとして用いるメモリ領域(画像データの保管に用いる単位バッファ領域)をリソース管理部46Bを介して取得する。そして、先に取得した書込用バッファ領域を書込領域として、当該書込領域の先頭アドレスを書込要求元の画像処理モジュール38へ通知すると共に、書込対象の画像データを通知した先頭アドレスから順に書き込むよう要請する。これにより、書込要求元の画像処理モジュール38は、先頭アドレスが通知された書込用バッファ領域に画像データを書き込む(図9(B)も参照)。   If it is determined that there is no unit buffer area (unit buffer area into which image data of the unit write data amount can be written) that has an empty area greater than the unit write data amount, the size of the memory area to be secured (A size of the unit buffer area) is notified to the resource management unit 46B, and a memory area (unit buffer area used for storing image data) used as the buffer 40A of the own module is acquired via the resource management unit 46B. Then, using the previously obtained write buffer area as a write area, the start address of the write area is notified to the image processing module 38 of the write request source, and the start address that notifies the image data to be written Request to write in order. As a result, the image processing module 38 as the writing request source writes the image data in the writing buffer area notified of the head address (see also FIG. 9B).

例えば単位バッファ領域のサイズが単位書込データ量の整数倍でない場合、バッファ40A(単位バッファ領域)への単位書込データ量の画像データの書込が繰り返されることで、例として図9(A)にも示すように、空き領域有りの単位バッファ領域における空き領域のサイズが単位書込データ量よりも小さい状態が生ずる。この場合、単位書込データ量の画像データが書き込まれる領域が複数の単位バッファ領域に跨ることになるが、本実施形態では、バッファ40Aとして用いるメモリ領域を単位バッファ領域を単位として確保するので、異なるタイミングで確保した単位バッファ領域が実メモリ(メモリ14)上で連続する領域であることは保証されない。これに対して本実施形態では、画像処理モジュール38による画像データの書き込みを、保管用の単位バッファ領域と別に確保した書込用バッファ領域に対して行わせ、図9(C)に示すように、書込用バッファ領域に一旦書き込まれた画像データを保管用の単一又は複数の単位バッファ領域へ複写するので、画像データが書き込まれる領域が複数の単位バッファ領域に跨るか否かに拘わらず、書込要求元の画像処理モジュール38への書込領域の通知は、上記のようにその先頭アドレスを通知するのみで済み、画像処理モジュール38とのインタフェースが簡単になる。   For example, when the size of the unit buffer area is not an integral multiple of the unit write data amount, the writing of the image data of the unit write data amount to the buffer 40A (unit buffer area) is repeated, and as an example, FIG. ), The size of the empty area in the unit buffer area with the empty area is smaller than the unit write data amount. In this case, the area in which the image data of the unit write data amount is written extends over a plurality of unit buffer areas, but in this embodiment, the memory area used as the buffer 40A is secured in units of the unit buffer area. It is not guaranteed that the unit buffer areas secured at different timings are continuous areas on the real memory (memory 14). On the other hand, in the present embodiment, the image processing module 38 writes the image data to the writing buffer area secured separately from the unit buffer area for storage, as shown in FIG. Since the image data once written in the write buffer area is copied to a single unit buffer area or a plurality of unit buffer areas for storage, regardless of whether the area in which the image data is written extends over a plurality of unit buffer areas. As described above, the notification of the write area to the image processing module 38 that is the write request source only needs to be notified of the start address, and the interface with the image processing module 38 is simplified.

なお、自モジュールがアプリケーション32によって生成されたバッファモジュール40である場合、すなわちバッファ40Aとして用いるメモリ領域が既に確保されている場合には、既に確保されたメモリ領域のアドレスを画像処理モジュール38に書込領域のアドレスとして通知し、上記メモリ領域への画像データの書き込みを行わせる。前段の画像処理モジュール38による書込領域への画像データの書き込みが完了すると、書込用バッファ領域に書き込まれている画像データに属性情報を付加した後に、保管用バッファ領域にそのまま書き込む。なお、空き領域有りの単位バッファ領域における空き領域のサイズが単位書込データ量よりも小さい場合、書込用バッファ領域に書き込まれた画像データは、図9(C)に示すように、保管用の複数の単位バッファ領域へ分けて書き込まれることになる。   If the own module is the buffer module 40 generated by the application 32, that is, if the memory area used as the buffer 40A is already secured, the address of the already secured memory area is written to the image processing module 38. This is notified as the address of the embedded area, and the image data is written to the memory area. When the writing of the image data to the writing area by the image processing module 38 in the previous stage is completed, the attribute information is added to the image data written in the writing buffer area, and then written in the storage buffer area as it is. When the size of the empty area in the unit buffer area with the empty area is smaller than the unit write data amount, the image data written in the write buffer area is stored as shown in FIG. Are written separately in a plurality of unit buffer areas.

そして、自モジュールの後段の個々の画像処理モジュール38に対応する有効データポインタのうち有効データの末尾位置を表すポインタを、該ポインタが指し示す有効データの末尾位置が単位書込データ量分だけ後へ移動するように更新する(図9(C)も参照)と共に、先に書込用バッファ領域として確保したメモリ領域をリソース管理部46Bによって解放させ、データ書込処理を一旦終了する。なお、書込用バッファ領域はバッファモジュール40の初期化時に確保し、バッファモジュール40の消去時に解放するように構成してもよい。   Then, the pointer indicating the end position of the valid data among the valid data pointers corresponding to the individual image processing modules 38 subsequent to the own module is moved backward by the unit write data amount by the end position of the valid data indicated by the pointer. In addition to updating so as to move (see also FIG. 9C), the memory area previously secured as the buffer area for writing is released by the resource management unit 46B, and the data writing process is temporarily ended. The write buffer area may be secured when the buffer module 40 is initialized and may be released when the buffer module 40 is erased.

続いて、バッファモジュール40のバッファ制御部40Bによって実行されるデータ読出処理について説明する。   Next, a data reading process executed by the buffer control unit 40B of the buffer module 40 will be described.

まず、読出用の待ち行列から先頭に登録されている読出要求情報を取り出し、取り出した読出要求情報に含まれる要求元識別情報に基づいて読出要求元の画像処理モジュール38を認識し、読出要求元の画像処理モジュール38によって設定された単位読出データ量を認識すると共に、読出要求元の画像処理モジュール38に対応する有効データポインタに基づいて、読出要求元の画像処理モジュール38に対応する有効データのバッファ40A上での先頭位置及び末尾位置を認識する。次に、認識した有効データの先頭位置及び末尾位置に基づいて、読出要求元の画像処理モジュール38に対応する有効データ(読出要求元の画像処理モジュール38が読出可能な画像データ)が単位読出データ量以上有るか否か判定する。   First, read request information registered at the head is extracted from the read queue, the image processing module 38 of the read request source is recognized based on the request source identification information included in the read request information, and the read request source The unit read data amount set by the image processing module 38 is recognized, and the valid data corresponding to the read request source image processing module 38 is determined based on the valid data pointer corresponding to the read request source image processing module 38. The head position and end position on the buffer 40A are recognized. Next, based on the recognized start position and end position of valid data, valid data corresponding to the read request source image processing module 38 (image data that can be read by the read request source image processing module 38) is unit read data. Judge whether there is more than the amount.

読出要求元の画像処理モジュール38に対応する有効データが単位読出データ量未満であれば、読出要求元の画像処理モジュール38が読出可能な有効データの末尾が処理対象の画像データの末尾か否か判定する。読出要求元の画像処理モジュール38に対応する有効データがバッファ40Aに単位読出データ量以上記憶されているか、又は、バッファ40Aに記憶されている読出要求元の画像処理モジュール38に対応する有効データが単位読出データ量未満であるものの、当該有効データの末尾が処理対象の画像データの末尾であった場合には、確保すべきメモリ領域のサイズとして読出要求元の画像処理モジュール38に対応する単位読出データ量をリソース管理部46Bに通知すると共に、読出に用いるメモリ領域(読出用バッファ領域:図10(B)も参照)の確保をリソース管理部46Bに要求し、リソース管理部46Bを介して読出用バッファ領域を取得する。   If the valid data corresponding to the image processing module 38 of the read request source is less than the unit read data amount, whether or not the end of the valid data that can be read by the image processing module 38 of the read request source is the end of the image data to be processed judge. Valid data corresponding to the image processing module 38 of the read request source is stored in the buffer 40A at a unit read data amount or more, or valid data corresponding to the image processing module 38 of the read request source stored in the buffer 40A is stored. When the end of the valid data is the end of the image data to be processed although it is less than the unit read data amount, the unit read corresponding to the read request source image processing module 38 is set as the size of the memory area to be secured. Not only the resource management unit 46B is notified of the amount of data, but also requests the resource management unit 46B to secure a memory area used for reading (see also the buffer area for reading: FIG. 10B), and the data is read via the resource management unit 46B. Get the buffer area.

次に、読出対象の有効データをバッファ40Aから単位読出データ量分だけ読み出して読出用バッファ領域に書き込み、読出用バッファ領域の先頭アドレスを読出領域の先頭アドレスとして読出要求元の画像処理モジュール38へ通知すると共に、通知した先頭アドレスから画像データを順に読み出すよう要請する。これにより、読出要求元の画像処理モジュール38は、先頭アドレスが通知された読出領域(読出用バッファ領域)からの画像データの読み出しを行う。なお、読出対象の有効データが処理対象の画像データの末尾に相当するデータであった場合には、画像データの読出要求に際し、読出対象の画像データのサイズと共に、処理対象の画像データの末尾であることも読出要求元の画像処理モジュール38に通知する。また、自モジュールがアプリケーション32によって生成されたバッファモジュール40である場合は、バッファ40Aとして用いているメモリ領域(単位バッファ領域の集合体)は連続領域であるので、読出用バッファ領域の確保、読出対象の画像データの読出用バッファ領域への書き込みを省略し、後段の画像処理モジュール38が単位バッファ領域から直接画像データを読み出すようにしてもよい。   Next, the effective data to be read is read from the buffer 40A by the amount of the unit read data and written to the read buffer area, and the head address of the read buffer area is used as the read area start address to the read request source image processing module 38. Along with the notification, the image data is requested to be read sequentially from the notified head address. As a result, the image processing module 38 as the read request source reads the image data from the read area (read buffer area) to which the head address is notified. When the effective data to be read is data corresponding to the end of the image data to be processed, the size of the image data to be read is requested at the end of the image data to be processed when the image data is requested to be read. This is also notified to the image processing module 38 of the reading request source. When the own module is the buffer module 40 generated by the application 32, the memory area (collection of unit buffer areas) used as the buffer 40A is a continuous area. The writing of the target image data to the reading buffer area may be omitted, and the subsequent image processing module 38 may read the image data directly from the unit buffer area.

なお、例として図10(A)に示すように、有効データの先頭部分の画像データを記憶している単位バッファ領域に記憶されている有効データのデータ量が単位読出データ量未満であり、読出対象の有効データが複数の単位バッファ領域に跨っている場合には、今回の読出対象の有効データが実メモリ(メモリ14)上で連続する領域に記憶されているとは限らないが、上記のデータ読出処理では、図10(B),(C)に示すように、このような場合にも読出対象の画像データを読出用バッファ領域に一旦書き込んだ後に該読出用バッファ領域から画像データを読み出させるので、読出対象の画像データが複数の単位バッファ領域に跨って記憶されているか否かに拘わらず、読出要求元の画像処理モジュール38への読出領域の通知は、上記のようにその先頭アドレスを通知するのみで済み、画像処理モジュール38とのインタフェースが簡単になる。   As an example, as shown in FIG. 10A, the amount of valid data stored in the unit buffer area in which the image data of the head portion of the valid data is stored is less than the unit read data amount. When the target valid data extends over a plurality of unit buffer areas, the valid data to be read this time is not necessarily stored in a continuous area on the real memory (memory 14). In the data reading process, as shown in FIGS. 10B and 10C, even in such a case, the image data to be read is once written in the reading buffer area, and then the image data is read from the reading buffer area. Therefore, regardless of whether or not image data to be read is stored across a plurality of unit buffer areas, the notification of the read area to the image processing module 38 that is the read request source is as described above. It is only necessary to notify the head address, and the interface with the image processing module 38 is simplified.

読出要求元の画像処理モジュール38による読出領域からの画像データの読み出し完了が通知されると、読出用バッファ領域として確保したメモリ領域の先頭アドレス及びサイズをリソース管理部46Bへ通知して、当該メモリ領域をリソース管理部46Bによって解放させる。この読出用バッファ領域についても、バッファモジュール40の初期化時に確保しておき、バッファモジュール40が消去される時に解放するよう構成してもよい。また、読出要求元の画像処理モジュール38に対応する有効データポインタのうち有効データの先頭位置を表すポインタを、該ポインタが指し示す有効データの先頭位置を単位読出データ量分だけ後へ移動させることで更新する(図10(C)も参照)。   When the completion of reading of the image data from the reading area by the image processing module 38 of the reading request source is notified, the start address and size of the memory area secured as the reading buffer area are notified to the resource management unit 46B, and the memory The area is released by the resource management unit 46B. This read buffer area may also be secured when the buffer module 40 is initialized and released when the buffer module 40 is erased. Further, by moving the pointer representing the start position of the valid data among the valid data pointers corresponding to the image processing module 38 that is the read request source, the start position of the valid data indicated by the pointer is moved backward by the unit read data amount. Update (see also FIG. 10C).

次に、後段の個々の画像処理モジュール38に対応する有効データポインタを各々参照し、先のポインタ更新により、バッファ40Aを構成する単位バッファ領域の中に、記憶している画像データの後段の各画像処理モジュール38による読み出しが全て完了した単位バッファ領域、すなわち有効データを記憶していない単位バッファ領域が出現したか否か判定する。判定が否定された場合は、前述した読出用の待ち行列のチェック処理(読出用の待ち行列に読出要求情報が登録されているか否かの判定)を経てデータ読出処理を終了するが、有効データを記憶していない単位バッファ領域が出現した場合は、当該単位バッファ領域をリソース管理部46Bによって解放させた後に読出用の待ち行列のチェック処理を経てデータ読出処理を終了する。   Next, the effective data pointers corresponding to the individual image processing modules 38 in the subsequent stage are respectively referred to, and each of the subsequent stages of the stored image data is stored in the unit buffer area constituting the buffer 40A by updating the previous pointer. It is determined whether or not a unit buffer area that has been completely read by the image processing module 38, that is, a unit buffer area that does not store valid data, has appeared. If the determination is negative, the data reading process is terminated through the above-described reading queue check process (determination as to whether or not read request information is registered in the reading queue), but valid data When a unit buffer area that does not store is appeared, the unit buffer area is released by the resource management unit 46B, and then the data read process is terminated through a check process for the read queue.

一方、バッファ40Aに記憶されており読出要求元の画像処理モジュール38が読出可能な有効データのデータ量が単位読出データ量未満であり、かつ読出可能な有効データの末尾が処理対象の画像データの末尾でない場合(図3(B)の(4)で読出可能な有効データ無が検知された場合)には、新たな画像データを要求するデータ要求をワークフロー管理部46Aへ出力し(図3(B)の(5)も参照)、読出用の待ち行列から取り出した読出要求情報を元の待ち行列(の先頭又は末尾)に再度登録した後に、読出用の待ち行列のチェック処理を経てデータ読出処理を終了する。この場合、ワークフロー管理部46Aにより、自モジュールの前段の画像処理モジュール38に処理要求が入力されることになる。これにより、読出可能な有効データのデータ量が単位読出データ量以上になるか、読出可能な有効データの末尾が処理対象の画像データの末尾であることが検知される迄の間、対応する読出要求情報は読出用の待ち行列に保存されると共に定期的に取り出されて要求された処理の実行が繰り返し試行されることになる。   On the other hand, the amount of valid data stored in the buffer 40A and readable by the image processing module 38 that is the read request source is less than the unit read data amount, and the end of the readable valid data is the image data to be processed. If it is not the end (when no valid data that can be read is detected in (4) of FIG. 3B), a data request for requesting new image data is output to the workflow management unit 46A (FIG. 3 ( (See also (5) of B)) Read request information retrieved from the read queue is re-registered in the original queue (at the beginning or end), and then the data is read through the read queue check process. The process ends. In this case, the workflow management unit 46A inputs a processing request to the image processing module 38 in the previous stage of the own module. As a result, until the amount of valid data that can be read exceeds the unit read data amount or until the end of the valid data that can be read is detected to be the end of the image data to be processed, the corresponding readout is performed. The request information is stored in a read queue and is periodically retrieved to repeatedly execute the requested process.

詳細は後述するが、ワークフロー管理部46Aはバッファモジュール40からデータ要求が入力されると、データ要求元のバッファモジュール40の前段の画像処理モジュール38に処理要求を入力する(図3(B)の(6)も参照)。この処理要求の入力をトリガとして前段の画像処理モジュール38の制御部38Bで行われる処理により、前段の画像処理モジュール38がバッファモジュール40へ画像データを書込可能な状態になると、前段の画像処理モジュール38から書込要求が入力されることで前述したデータ書込処理が行われ、前段の画像処理モジュール38からバッファモジュール40のバッファ40Aに画像データが書き込まれる(図3(B)の(7),(8)も参照)。これにより、後段の画像処理モジュール38によるバッファ40Aからの画像データの読出が行われることになる(図3(B)の(9)も参照)。   Although details will be described later, when a data request is input from the buffer module 40, the workflow management unit 46A inputs the processing request to the image processing module 38 in the preceding stage of the buffer module 40 that is the data request source (see FIG. 3B). (See also (6)). When the processing performed by the control unit 38B of the preceding image processing module 38 using the input of the processing request as a trigger causes the preceding image processing module 38 to be able to write image data into the buffer module 40, the preceding image processing is performed. When the writing request is input from the module 38, the above-described data writing process is performed, and the image data is written from the preceding image processing module 38 to the buffer 40A of the buffer module 40 ((7) in FIG. 3B). ), See also (8)). As a result, the image data is read from the buffer 40A by the image processing module 38 in the subsequent stage (see also (9) in FIG. 3B).

続いて、画像処理部50を構成する個々の画像処理モジュール38に対してワークフロー管理部46Aから処理要求が入力される毎に、個々の画像処理モジュール38の制御部38Bによって各々行われる画像処理モジュール制御処理(図11)を説明する。   Subsequently, each time a processing request is input from the workflow management unit 46A to the individual image processing modules 38 constituting the image processing unit 50, the image processing modules respectively performed by the control unit 38B of the individual image processing module 38. The control process (FIG. 11) will be described.

画像処理モジュール制御処理では、まずステップ218において、自モジュールの画像処理エンジン38Aが行う画像処理の種類や内容等に基づき、自モジュールが使用するメモリのサイズ及び自モジュールが使用する他のリソースの有無を認識する。なお、画像処理モジュール38が使用するメモリは、画像処理エンジン38Aが画像処理を行うために必要なメモリが主であるが、前段のモジュールが画像データ供給部22である場合や後段のモジュールが画像出力部24である場合には、前段又は後段のモジュールとの画像データの送受に際して画像データを一時記憶するためのバッファ用のメモリが必要となることもある。また、処理パラメータにテーブル等の情報が含まれている場合には、それを保持するためのメモリ領域が必要となることもある。そして、認識したサイズのメモリ領域の確保をリソース管理部46Bへ要求し、リソース管理部46Bによって確保されたメモリ領域をリソース管理部46Bから取得する。また、自モジュール(の画像処理エンジン38A)がメモリ以外の他のリソースを必要としていると認識した場合には、上記他のリソースの確保をリソース管理部46Bへ要求し、上記他のリソースをリソース管理部46Bから取得する。   In the image processing module control process, first in step 218, the size of the memory used by the own module and the presence / absence of other resources used by the own module based on the type and contents of the image processing performed by the image processing engine 38A of the own module. Recognize Note that the memory used by the image processing module 38 is mainly a memory necessary for the image processing engine 38A to perform image processing. However, when the former module is the image data supply unit 22 or the latter module is an image. In the case of the output unit 24, a buffer memory for temporarily storing the image data may be required when the image data is transmitted to or received from the preceding or succeeding module. Further, when information such as a table is included in the processing parameter, a memory area for holding it may be required. Then, the resource management unit 46B is requested to secure a memory area of the recognized size, and the memory area secured by the resource management unit 46B is acquired from the resource management unit 46B. If the own module (the image processing engine 38A) recognizes that it needs other resources other than the memory, it requests the resource management unit 46B to secure the other resources and allocates the other resources to the resource. Obtained from the management unit 46B.

次のステップ220では、自モジュールの前段にモジュール(バッファモジュール40や画像データ供給部22、画像処理モジュール38等)が存在している場合に、当該前段のモジュールに対してデータ(画像データ又は解析等の画像処理の処理結果)を要求する。次のステップ222では前段のモジュールからデータが取得可能であるかを判定し、ステップ222の判定が否定された場合はステップ224で全体処理終了が通知されたか否かを判定する。ステップ224の判定が否定された場合はステップ222に戻り、前段のモジュールからデータを取得可能となる迄ステップ222,224を繰り返す。ステップ222の判定が肯定された場合には、ステップ226で前段のモジュールからデータを取得し、取得したデータをステップ218で取得したメモリ領域のうちデータの一時保管用のメモリ領域に書き込むデータ取得処理を行う。   In the next step 220, when a module (buffer module 40, image data supply unit 22, image processing module 38, etc.) exists in the previous stage of its own module, data (image data or analysis) is sent to the preceding module. Image processing result). In the next step 222, it is determined whether data can be acquired from the previous module. If the determination in step 222 is negative, it is determined in step 224 whether the end of the entire process has been notified. If the determination in step 224 is negative, the process returns to step 222, and steps 222 and 224 are repeated until data can be acquired from the preceding module. If the determination in step 222 is affirmative, data acquisition processing for acquiring data from the previous module in step 226 and writing the acquired data in the memory area for temporary storage of data in the memory area acquired in step 218 I do.

ここで、自モジュールの前段のモジュールがバッファモジュール40である場合には、先のステップ220でデータを要求すると(読出要求)、読出可能な有効データがバッファモジュール40のバッファ40Aに単位読出データ量以上記憶されているか、読出可能な有効データの末尾が処理対象の画像データの末尾に一致している状態であれば直ちに、当該状態でなければ、当該バッファモジュール40の前段の画像処理モジュール38が当該バッファモジュール40のバッファ40Aに画像データを書き込んだことに伴って前記状態へ変化した後に、バッファモジュール40から読出領域の先頭アドレスが通知されて画像データの読出が要請される。これにより、ステップ222の判定が肯定されてステップ226へ移行し、前段のバッファモジュール40より先頭アドレスが通知された読出領域から単位読出データ量(又はそれ未満のデータ量)の画像データを読み出し、一時保管用のメモリ領域に書き込むデータ取得処理を行う(図3(A)の(3)も参照)。   Here, if the previous module of the own module is the buffer module 40, when data is requested in the previous step 220 (read request), the readable valid data is transferred to the buffer 40A of the buffer module 40 in the unit read data amount. As long as the end of the valid data that has been stored or readable matches the end of the image data to be processed, the image processing module 38 in the previous stage of the buffer module 40 immediately returns to the state of the image data to be processed. After the image data is written in the buffer 40A of the buffer module 40, the state is changed to the above state, and then the start address of the reading area is notified from the buffer module 40 and the reading of the image data is requested. As a result, the determination at step 222 is affirmed and the routine proceeds to step 226, where image data of a unit read data amount (or a data amount less than that) is read from the read area in which the head address is notified from the preceding buffer module 40, Data acquisition processing to be written in the temporary storage memory area is performed (see also (3) in FIG. 3A).

また、自モジュールの前段のモジュールが画像データ供給部22であれば、先のステップ220でデータ要求を出力すると画像データを取得可能な状態であることが前段の画像データ供給部22から直ちに通知されることで、ステップ222の判定が肯定されてステップ226へ移行し、前段の画像データ供給部22から単位読出データ量の画像データを取得し、一時保管用のメモリ領域に書き込む画像データ取得処理を行う。また、自モジュールの前段のモジュールが画像処理モジュール38であれば、先のステップ220でデータ要求(処理要求)を出力すると、前段の画像処理モジュール38が画像処理を実行可能な状態であれば書込要求が入力されることでデータ(画像処理結果)を取得可能な状態であることが通知されるので、ステップ222の判定が肯定されてステップ226へ移行し、前段の画像処理モジュール38によってデータを書き込ませる一時保管用のメモリ領域のアドレスを通知して書込を要請することで、前段の画像処理モジュール38から出力されるデータを一時保管用のメモリ領域に書き込ませるデータ取得処理を行う。   If the previous module of the own module is the image data supply unit 22, when the data request is output in the previous step 220, it is immediately notified from the previous image data supply unit 22 that the image data can be acquired. As a result, the determination in step 222 is affirmed, and the process proceeds to step 226. Image data acquisition processing for acquiring image data of a unit read data amount from the preceding image data supply unit 22 and writing it to the temporary storage memory area is performed. Do. If the previous module of the own module is the image processing module 38, a data request (processing request) is output in the previous step 220. If the previous image processing module 38 is ready to perform image processing, the data request is written. Since it is notified that the data (image processing result) can be acquired by inputting the load request, the determination in step 222 is affirmed and the process proceeds to step 226. The data acquisition process for writing the data output from the image processing module 38 in the previous stage to the temporary storage memory area is performed by notifying the address of the temporary storage memory area where the data is written and requesting the writing.

次のステップ228では、自モジュールの前段に複数のモジュールが連結されているか否か判定する。判定が否定された場合には何ら処理を行うことなくステップ232へ移行するが、判定が肯定された場合はステップ230へ移行し、前段に連結されている全てのモジュールからデータを取得したか否か判定する。ステップ230の判定が否定された場合はステップ220に戻り、ステップ230の判定が肯定される迄ステップ220〜ステップ230を繰り返す。前段のモジュールから取得すべきデータが全て揃うと、ステップ228の判定が否定されるかステップ230の判定が肯定されてステップ232へ移行する。   In the next step 228, it is determined whether or not a plurality of modules are connected to the previous stage of the own module. If the determination is negative, the process proceeds to step 232 without performing any processing. If the determination is affirmative, the process proceeds to step 230, and whether or not data has been acquired from all modules connected in the previous stage. To determine. If the determination in step 230 is negative, the process returns to step 220, and steps 220 to 230 are repeated until the determination in step 230 is positive. When all the data to be acquired from the previous module is obtained, the determination in step 228 is denied or the determination in step 230 is affirmed, and the process proceeds to step 232.

次のステップ232では自モジュールの後段のモジュールに対してデータ出力用の領域を要求し、ステップ232でデータ出力領域が取得できる迄(データ出力領域の先頭アドレスが通知される迄)繰り返し判定を行う。なお、後段のモジュールがバッファモジュール40であれば、上記のデータ出力用領域の要求は当該バッファモジュール40に対して書込要求を出力することによって成される。データ出力領域(後段のモジュールがバッファモジュール40であれば当該バッファモジュール40から先頭アドレスが通知された書込領域)が取得できたら(図3(A)の(4)も参照)、次のステップ236において、先のデータ取得処理で取得したデータ、後段のモジュールから取得したデータ出力領域(の先頭アドレス)、先のステップ218で取得したメモリ領域のうち画像処理エンジンによる画像処理用のメモリ領域(の先頭アドレス及びサイズ)を画像処理エンジン38Aに入力し、入力したデータに対し画像処理用のメモリ領域を使用して所定の画像処理を行わせる(図3(A)の(5)も参照)と共に、処理後のデータをデータ出力領域に書き込ませる(図3(A)の(6)も参照)。画像処理エンジン38Aへの単位読出データ量のデータの入力が完了し、画像処理エンジン38Aから出力されたデータがデータ出力領域に全て書き込まれると、次のステップ238で出力が完了したことを後段のモジュールに通知する。   In the next step 232, an area for data output is requested to the module subsequent to the module, and the determination is repeated until the data output area can be acquired in step 232 (until the start address of the data output area is notified). . If the subsequent module is the buffer module 40, the request for the data output area is made by outputting a write request to the buffer module 40. Once the data output area (the write area in which the start address is notified from the buffer module 40 if the subsequent module is the buffer module 40) can be obtained (see also (4) in FIG. 3A), the next step In 236, the memory area for image processing by the image processing engine among the data acquired in the previous data acquisition process, the data output area acquired from the subsequent module (first address), and the memory area acquired in the previous step 218 ( Is input to the image processing engine 38A, and the input data is subjected to predetermined image processing using a memory area for image processing (see also (5) in FIG. 3A). At the same time, the processed data is written in the data output area (see also (6) in FIG. 3A). When the input of the unit read data amount to the image processing engine 38A is completed and all the data output from the image processing engine 38A is written in the data output area, the subsequent step 238 indicates that the output has been completed. Notify the module.

上記のステップ220〜ステップ238により画像処理モジュール38における単位処理データ量のデータに対する処理(単位処理)が完了するが、ワークフロー管理部46Aから画像処理モジュール38に入力される処理要求では、ワークフロー管理部46Aによって単位処理の実行回数が指定されることがある。このためステップ240では、単位処理の実行回数が、入力された処理要求によって指示された実行回数に達したか否か判定する。指示された単位処理の実行回数が1回の場合、この判定は無条件に肯定されるが、指示された単位処理の実行回数が2回以上の場合はステップ220に戻り、ステップ240の判定が肯定される迄ステップ220〜ステップ240を繰り返す。ステップ240の判定が肯定されるとステップ242へ移行し、ワークフロー管理部46Aへ処理完了通知を出力することで、入力された処理要求に対応する処理が完了したことをワークフロー管理部46Aへ通知し、画像処理モジュール制御処理を終了する。   The processing (unit processing) for the data of the unit processing data amount in the image processing module 38 is completed by the above steps 220 to 238. However, in the processing request input from the workflow management unit 46A to the image processing module 38, the workflow management unit The number of executions of unit processing may be specified by 46A. Therefore, in step 240, it is determined whether the number of executions of the unit process has reached the number of executions instructed by the input processing request. If the number of executions of the instructed unit process is 1, this determination is unconditionally affirmed. However, if the number of executions of the instructed unit process is 2 or more, the process returns to Step 220, and the determination in Step 240 is performed. Steps 220 to 240 are repeated until affirmative. If the determination in step 240 is affirmed, the process proceeds to step 242 to output a processing completion notification to the workflow management unit 46A, thereby notifying the workflow management unit 46A that the processing corresponding to the input processing request has been completed. Then, the image processing module control process ends.

また、ワークフロー管理部46Aから処理要求が入力される毎に上述した処理が繰り返されることで処理対象の画像データを末尾まで処理すると、前段のモジュールから処理対象の画像データの終了が通知されることで、ステップ224の判定が肯定されてステップ244へ移行し、処理対象の画像データ(なお、処理対象の画像データは1頁分の画像データであることが多いが、複数頁分の画像データであってもよい)に対する処理が終了したことを意味する全体処理終了通知をワークフロー管理部46A及び後段のモジュールへ各々出力する。また、次のステップ246では取得していた全てのリソースの解放を要求して自モジュールを消去する処理を行い、画像処理モジュール制御処理を終了する。   Further, when the processing image data is processed to the end by repeating the above-described processing every time a processing request is input from the workflow management unit 46A, the end of the processing target image data is notified from the preceding module. Thus, the determination in step 224 is affirmed, and the process proceeds to step 244. The image data to be processed (note that the image data to be processed is often image data for one page, but is image data for a plurality of pages. An overall process end notification that means that the process for (which may be present) has ended is output to the workflow management unit 46A and the subsequent module. In the next step 246, a process for requesting the release of all acquired resources and deleting the own module is performed, and the image processing module control process is terminated.

ワークフロー管理部46Aは、ブロック単位での画像処理の実行が指示されると、図12(A)に示すブロック単位制御処理1を行い、バッファモジュール40からデータ要求が入力される毎に図12(B)に示すブロック単位制御処理2を行い、画像処理モジュール38から処理完了通知が入力される毎に図12(C)に示すブロック単位制御処理3を行い、画像処理モジュール38から全体処理終了通知が入力される毎に図12(D)に示すブロック単位制御処理4を行う。   When the execution of image processing in units of blocks is instructed, the workflow management unit 46A performs block unit control processing 1 shown in FIG. 12A, and each time a data request is input from the buffer module 40, the workflow management unit 46A performs processing shown in FIG. B), the block unit control process 2 shown in FIG. 12B is performed, and every time a process completion notification is input from the image processing module 38, the block unit control process 3 shown in FIG. Each time is input, the block unit control process 4 shown in FIG.

先にも述べたように、ブロック単位制御処理1では、ワークフロー管理部46Aによる画像処理部50の個々の画像処理モジュール38への処理要求の入力では、単位処理の実行回数を指定可能とされているが、ステップ500では、1回の処理要求で指定する単位処理の実行回数を個々の画像処理モジュール38毎に決定する。この処理要求1回当りの単位処理の実行回数は、例えば処理対象の画像データ全体を処理する間の個々の画像処理モジュール38への処理要求の入力回数が平均化されるように定めることができるが、他の基準に従って定めてもよい。そして次のステップ502において、画像処理部50のうち最後段の画像処理モジュール38に処理要求を入力し(図13の(1)も参照)、ブロック単位制御処理1を終了する。   As described above, in the block unit control process 1, the number of executions of the unit process can be specified by inputting a process request to each image processing module 38 of the image processing unit 50 by the workflow management unit 46A. However, in step 500, the number of executions of the unit process designated by one processing request is determined for each image processing module 38. The number of executions of unit processing per processing request can be determined so that, for example, the number of processing requests input to individual image processing modules 38 during the processing of the entire image data to be processed is averaged. However, it may be determined according to other criteria. In the next step 502, a processing request is input to the last image processing module 38 in the image processing unit 50 (see also (1) in FIG. 13), and the block unit control processing 1 is terminated.

ここで、図13に示す画像処理部50において、ワークフロー管理部46Aから最後段の画像処理モジュール384に処理要求が入力されると、画像処理モジュール384の制御部38Bは前段のバッファモジュール403に読出要求を入力する(図13の(2)参照)。このとき、バッファモジュール403のバッファ40Aには画像処理モジュール384が読出可能な有効データ(画像データ)が記憶されていないので、バッファモジュール403のバッファ制御部40Bはワークフロー管理部46Aにデータ要求を入力する(図13の(3)参照)。 Here, in the image processing unit 50 illustrated in FIG. 13, when the process from the workflow management unit 46A to the image processing module 38 4 of the last stage request is input, the control unit 38B of the image processing module 38 4 preceding buffer module 40 A read request is input to 3 (see (2) in FIG. 13). At this time, since the image processing module 38 4 readable valid data in the buffer 40A of the buffer module 40 3 (image data) is not stored, the buffer controller 40B of the buffer module 40 3 data in the workflow management unit 46A A request is input (see (3) in FIG. 13).

ワークフロー管理部46Aは、バッファモジュール40からデータ要求が入力される毎に、図12(B)に示すブロック単位制御処理2を行う。このブロック単位制御処理2では、ステップ504において、データ要求入力元のバッファモジュール40(ここではバッファモジュール403)の前段の画像処理モジュール38(ここでは画像処理モジュール383)を認識し、認識した前段の画像処理モジュール38に処理要求を入力(図13の(4)参照)して処理を終了する。 Each time the data request is input from the buffer module 40, the workflow management unit 46A performs the block unit control processing 2 shown in FIG. In this block unit control processing 2, in step 504, the image processing module 38 (here, the image processing module 38 3 ) of the preceding stage of the buffer module 40 (here, the buffer module 40 3 ) of the data request input is recognized and recognized. A processing request is input to the preceding image processing module 38 (see (4) in FIG. 13), and the processing ends.

画像処理モジュール383の制御部38Bは、処理要求が入力されると前段のバッファモジュール402に読出要求を入力し(図13の(5)参照)、バッファモジュール402のバッファ40Aにも読出可能な画像データが記憶されていないので、バッファモジュール402のバッファ制御部40Bはワークフロー管理部46Aにデータ要求を入力する(図13の(6)参照)。ワークフロー管理部46Aは、バッファモジュール402からデータ要求が入力された場合も、前述のブロック単位制御処理2を再度行うことで、その前段の画像処理モジュール382に処理要求を入力し(図13の(7)参照)、画像処理モジュール383の制御部38Bは前段のバッファモジュール401に読出要求を入力する(図13の(8)参照)。また、バッファモジュール401のバッファ40Aにも読出可能な画像データが記憶されていないので、バッファモジュール401のバッファ制御部40Bもワークフロー管理部46Aにデータ要求を入力し(図13の(9)参照)。ワークフロー管理部46Aは、バッファモジュール401からデータ要求が入力された場合も、前述のブロック単位制御処理2を再度行うことで、その前段の画像処理モジュール381に処理要求を入力する(図13の(10)参照)。 Control unit 38B of the image processing module 38 3, the processing request is input to the input a read request preceding the buffer module 40 2 (see (5) in FIG. 13), read in the buffer 40A of the buffer module 40 2 since possible image data is not stored, the buffer controller 40B of the buffer module 40 2 inputs the data request to the workflow management unit 46A (see (6) in FIG. 13). Workflow management unit 46A, even if the data request is input from the buffer module 40 2, by performing the block unit control processing 2 described above again, enter the processing request to the image processing module 38 2 of the previous stage (FIG. 13 (7)), the control unit 38B of the image processing module 38 3 inputs the read request to the buffer module 40 1 of the front reference ((8 in FIG. 13)). Further, since the readable image data to the buffer 40A of the buffer module 40 1 is not stored, the buffer controller 40B of the buffer module 40 1 also inputs the data request to the workflow management unit 46A (FIG. 13 (9) reference). Even when a data request is input from the buffer module 40 1 , the workflow management unit 46A performs the block unit control processing 2 again to input the processing request to the preceding image processing module 38 1 (FIG. 13). (See (10)).

ここで、画像処理モジュール381の前段のモジュールは画像データ供給部22であるので、画像処理モジュール381の制御部38Bは、画像データ供給部22にデータ要求を入力することで画像データ供給部22から単位読出データ量の画像データを取得し(図13の(11)参照)、取得した画像データに対して画像処理エンジン38Aが画像処理を行うことで得られた画像データを、後段のバッファモジュール401のバッファ40Aに書き込む(図13の(12)参照)。 Here, since the previous module of the image processing module 38 1 is the image data supply unit 22, the control unit 38 B of the image processing module 38 1 inputs a data request to the image data supply unit 22, and thereby the image data supply unit 22. The image data of the unit read data amount is acquired from the image data 22 (see (11) in FIG. 13), and the image data obtained by the image processing engine 38A performing image processing on the acquired image data is stored in the subsequent buffer. write module 40 first buffer 40A (see (12) in FIG. 13).

また、バッファモジュール401のバッファ制御部40Bは、後段の画像処理モジュール382が読出可能な単位読出データ量以上の有効データが書き込まれると画像処理モジュール382に対して読出を要請し、これに伴い画像処理モジュール382の制御部38Bは、バッファモジュール401のバッファ40Aから単位読出データ量の画像データを読み出し(図13の(13)参照)、取得した画像データに対して画像処理エンジン38Aが画像処理を行うことで得られた画像データを、後段のバッファモジュール402のバッファ40Aに書き込む(図13の(14)参照)。バッファモジュール402のバッファ制御部40Bは、後段の画像処理モジュール383が読出可能な単位読出データ量以上の有効データが書き込まれると画像処理モジュール383へ読出を要請し、画像処理モジュール383の制御部38Bは、バッファモジュール402のバッファ40Aから単位読出データ量の画像データを読み出し(図13の(15)参照)、取得した画像データに対して画像処理エンジン38Aが画像処理を行うことで得られた画像データを、後段のバッファモジュール403のバッファ40Aに書き込む(図13の(16)参照)。 Further, the buffer control unit 40B of the buffer module 40 1 requests the image processing module 38 2 to read when valid data exceeding the unit read data amount that can be read by the subsequent image processing module 38 2 is written. the image processing module 38 and second control unit 38B with the reads image data of the unit read data amount from the buffer module 40 1 of buffer 40A (see (13) in FIG. 13), the image processing engine on the acquired image data 38A is an image data obtained by performing image processing, written in the following buffer module 40 second buffer 40A (see (14) in FIG. 13). The buffer control unit 40B of the buffer module 40 2 requests the image processing module 38 3 to read when valid data exceeding the unit read data amount that can be read by the subsequent image processing module 38 3 is written, and the image processing module 38 3. the control unit 38B of the (see (15) in FIG. 13) reads out the image data of the unit read data amount from the buffer module 40 2 of the buffer 40A, the image processing engine 38A on the acquired image data to perform image processing the image data obtained by, written to the subsequent buffer module 40 third buffer 40A (see (16) in FIG. 13).

更に、バッファモジュール403のバッファ制御部40Bは、後段の画像処理モジュール384が読出可能な単位読出データ量以上の有効データが書き込まれると画像処理モジュール384に対して読出を要請し、これに伴い画像処理モジュール384の制御部38Bは、バッファモジュール403のバッファ40Aから単位読出データ量の画像データを読み出し(図13の(17)参照)、取得した画像データに対して画像処理エンジン38Aが画像処理を行うことで得られた画像データを、後段のモジュールである画像出力部24へ出力する(図13の(18)参照)。 Furthermore, the buffer controller 40B of the buffer module 40 3 may request a read to the image processing module 38 4 When the subsequent image processing module 38 4 readable unit read data amount or more valid data is written, which control unit 38B of the image processing module 38 4 with the reads the image data of the unit read data amount from the buffer module 40 third buffer 40A (see (17) in FIG. 13), the image processing engine on the acquired image data The image data obtained by the image processing performed by 38A is output to the image output unit 24, which is a subsequent module (see (18) in FIG. 13).

また、個々の画像処理モジュール38の制御部38Bは、後段のバッファモジュール40のバッファ40Aへの画像データの書き込みを完了すると、ワークフロー管理部46Aへ処理完了通知を入力する。ワークフロー管理部46Aは、画像処理モジュール38から処理完了通知が入力される毎に、図12(C)に示すブロック単位制御処理3を行う。このブロック単位制御処理3では、まずステップ506において、処理完了通知元の画像処理モジュール38が最後段の画像処理モジュール38か否か判定する。判定が否定された場合は何ら処理を行うことなくブロック単位制御処理3を終了する。また、判定が肯定された場合はステップ508へ移行し、処理完了通知元の画像処理モジュール38に処理要求を再度入力して処理を終了する。   In addition, when the control unit 38B of each image processing module 38 completes the writing of the image data to the buffer 40A of the subsequent buffer module 40, the control unit 38B inputs a processing completion notification to the workflow management unit 46A. The workflow management unit 46A performs block unit control processing 3 shown in FIG. 12C every time a processing completion notification is input from the image processing module 38. In this block unit control process 3, first, in step 506, it is determined whether or not the process completion notification source image processing module 38 is the last stage image processing module 38. If the determination is negative, the block unit control process 3 is terminated without performing any process. If the determination is affirmative, the process proceeds to step 508, where the processing request is input again to the image processing module 38 that is the processing completion notification source, and the processing ends.

また、ワークフロー管理部46Aは、画像処理モジュール38から全体処理終了通知が入力される毎に、図12(D)に示すブロック単位制御処理4を行う。このブロック単位制御処理4では、ステップ510において、全体処理終了通知入力元の画像処理モジュール38が最後段の画像処理モジュール38か否か判定する。判定が否定された場合は何ら処理を行うことなく処理を終了するが、処理対象の画像データに対して必要な画像処理が行われた画像データが画像出力部24へ全て出力されることで、最後段の画像処理モジュール38から全体処理終了通知が入力された場合には、ステップ510の判定が肯定されてステップ512へ移行し、アプリケーション32に対して画像処理の完了を通知し、ブロック単位制御処理を終了する。そして、画像処理の完了が通知されたアプリケーション32は、ユーザに対して画像処理の完了を通知する。   The workflow management unit 46A performs the block unit control process 4 shown in FIG. 12D every time an overall process end notification is input from the image processing module 38. In this block unit control process 4, in step 510, it is determined whether or not the image processing module 38 that is the input source of the overall process end notification is the last stage image processing module 38. If the determination is negative, the process ends without performing any process, but all the image data that has undergone the necessary image processing on the image data to be processed is output to the image output unit 24. When an overall process end notification is input from the last-stage image processing module 38, the determination in step 510 is affirmed, the process proceeds to step 512, the application 32 is notified of the completion of image processing, and block unit control is performed. The process ends. The application 32 notified of the completion of the image processing notifies the user of the completion of the image processing.

このように、ブロック単位処理では、最後段の画像処理モジュール38に入力された処理要求がより前段の画像処理モジュール38へ遡り、最前段の画像処理モジュール38に到達すると、最前段の画像処理モジュール38で画像処理が行われて後段のバッファモジュール40にデータが書き込まれ、それでデータが足りるようならば処理が後段のモジュールへ進んで行くという流れで一連の画像処理が行われる。   As described above, in the block unit processing, when the processing request input to the last-stage image processing module 38 goes back to the preceding-stage image processing module 38 and reaches the foremost-stage image processing module 38, the foremost-stage image processing module 38 At 38, image processing is performed and data is written into the subsequent buffer module 40. If the data is sufficient, a series of image processing is performed in such a manner that the processing proceeds to the subsequent module.

なお、上記では画像処理部の個々の画像処理モジュール38が、画像1面分よりも小さいデータ量を単位として後段へ画像データを引き渡しながら画像処理を行うように動作させることで、画像処理部が全体としてブロック単位処理を行うようにワークフロー管理部46Aが制御する態様を説明したが、これに限定されるものではなく、画像処理部の個々の画像処理モジュール38が、前段の画像処理モジュール38が画像1面分の画像データに対する画像処理を完了した後に、後段の画像処理モジュール38が画像1面分の画像データに対する画像処理を行うように動作させることで、画像処理部が全体として面単位処理を行うことも可能なように、ワークフロー管理部46Aを構成してもよい。   In the above description, the individual image processing modules 38 of the image processing unit operate so as to perform image processing while transferring image data to the subsequent stage in units of data amount smaller than one image surface. Although the aspect in which the workflow management unit 46A controls to perform block unit processing as a whole has been described, the present invention is not limited to this, and the individual image processing modules 38 of the image processing unit are replaced by the previous image processing module 38. After the image processing for the image data for one image is completed, the image processing module 38 in the subsequent stage is operated so as to perform image processing for the image data for one image, so that the image processing unit as a whole performs surface unit processing. The workflow management unit 46A may be configured so that the above can be performed.

また、上記のようにワークフロー管理部46Aが制御を行っている間、処理管理部46のエラー管理部46Cも動作している。エラー管理部46Cは、画像処理部50が画像処理を実行している途中でエラーが発生した場合に、発生したエラーの種別・発生箇所等のエラー情報を取得し、画像処理プログラム群34がインストールされたコンピュータ10が組み込まれている機器の種別や構成等を表す装置環境情報を記憶部20等から取得し、取得した装置環境情報が表す装置環境に応じたエラー通知方法を判断し、判断したエラー通知方法でエラーの発生を通知する処理を行う。   Further, while the workflow management unit 46A performs control as described above, the error management unit 46C of the process management unit 46 also operates. When an error occurs while the image processing unit 50 is executing image processing, the error management unit 46C acquires error information such as the type and location of the error that has occurred, and the image processing program group 34 is installed. The device environment information representing the type or configuration of the device in which the computer 10 is incorporated is acquired from the storage unit 20 or the like, and an error notification method according to the device environment represented by the acquired device environment information is determined and determined. Performs processing to notify the occurrence of an error using the error notification method.

ここで、画像処理1、画像処理2、画像処理3の3つの処理を連続して行う一連の画像処理を行う画像処理部50を構築する場合を例に挙げ、本実施の形態の画像処理部50の構築について具体的に説明する。画像処理1、3については、固定小数演算と浮動小数演算のいずれの演算形式でも処理可能なように、モジュールライブラリ36には各演算形式に対応した画像処理モジュール38のプログラムが登録されているものとし、画像処理2については、浮動小数演算で処理する画像処理モジュール38のプログラムのみが登録されているものとする。   Here, taking as an example the case of constructing an image processing unit 50 that performs a series of image processings in which image processing 1, image processing 2, and image processing 3 are performed in succession, the image processing unit of the present embodiment The construction of 50 will be specifically described. For the image processing 1 and 3, the module library 36 is registered with a program for the image processing module 38 corresponding to each operation format so that the processing can be performed in either fixed decimal arithmetic or floating decimal arithmetic. As for image processing 2, only the program of the image processing module 38 to be processed by floating point arithmetic is registered.

図14(A)は、ユーザが処理速度を優先させる処理モードを選択して設定した場合に構築される画像処理部50で実行される一連の画像処理を示す図である。ここでは、バッファモジュール40の機能については図示を省略し、画像処理モジュール38によって実現する画像処理についてのみ図示して、一連の画像処理を簡略的に示してある。同図に示すように、処理速度を優先させるため、画像処理1、3については、固定小数演算で処理が行われるようにモジュールライブラリ36から固定小数演算に対応する画像処理モジュール38のプログラムが選択されて画像処理モジュール38が生成され実行される。画像処理2については、浮動小数演算で処理する画像処理モジュール38のプログラムのみが登録されているため、該プログラムが選択されて画像処理モジュール38が生成され実行される。   FIG. 14A is a diagram showing a series of image processing executed by the image processing unit 50 constructed when the user selects and sets a processing mode that prioritizes processing speed. Here, illustration of the function of the buffer module 40 is omitted, and only image processing realized by the image processing module 38 is illustrated, and a series of image processing is simply shown. As shown in the figure, in order to prioritize the processing speed, the image processing module 38 corresponding to the fixed decimal arithmetic is selected from the module library 36 so that the processing for the image processing 1 and 3 is performed by the fixed decimal arithmetic. Then, the image processing module 38 is generated and executed. As for the image processing 2, since only the program of the image processing module 38 to be processed by floating point arithmetic is registered, the program is selected and the image processing module 38 is generated and executed.

このように、処理速度優先モードでは、演算形式を切替ることができる画像処理モジュール38については、演算速度の速い固定小数演算で画像処理が行われるように生成することができる。また、演算形式を切替えることができない画像処理モジュールについては、予め定められた演算形式で画像処理が行われるように生成することができる。   As described above, in the processing speed priority mode, the image processing module 38 capable of switching the calculation format can be generated so that the image processing is performed by the fixed decimal calculation having a high calculation speed. An image processing module whose operation format cannot be switched can be generated so that image processing is performed in a predetermined operation format.

図14(B)は、ユーザが精度を優先させる処理モードを選択して設定した場合に構築される画像処理部50で実行される一連の画像処理を示す図である。ここでも、バッファモジュール40の機能については図示を省略し、画像処理モジュール38によって実現する画像処理についてのみ図示して、一連の画像処理を簡略的に示してある。同図に示すように、精度を優先させるため、画像処理1、3については、浮動小数演算で処理が行われるようにモジュールライブラリ36から浮動小数演算に対応する画像処理モジュール38のプログラムが選択されて画像処理モジュール38が生成され実行される。画像処理2については、浮動小数演算で処理する画像処理モジュール38のプログラムのみが登録されているため、該プログラムが選択されて画像処理モジュール38が生成され実行される。   FIG. 14B is a diagram showing a series of image processing executed by the image processing unit 50 constructed when the user selects and sets a processing mode in which accuracy is prioritized. Again, the function of the buffer module 40 is not shown, only the image processing realized by the image processing module 38 is shown, and a series of image processing is simply shown. As shown in the figure, in order to prioritize accuracy, the image processing module 38 corresponding to the floating-point arithmetic is selected from the module library 36 so that the processing is performed by the floating-point arithmetic for the image processing 1 and 3. Then, the image processing module 38 is generated and executed. As for the image processing 2, since only the program of the image processing module 38 to be processed by floating point arithmetic is registered, the program is selected and the image processing module 38 is generated and executed.

このように、精度優先の処理モードでは、演算形式を切替ることができる画像処理モジュールについては、精度の高い浮動小数演算で画像処理が行われるように生成することができる。また、演算形式を切替えることができない画像処理モジュールについては、予め定められた演算形式で画像処理が行われるように生成することができる。   As described above, in the accuracy priority processing mode, the image processing module that can switch the calculation format can be generated so that the image processing is performed by the floating point arithmetic with high accuracy. An image processing module whose operation format cannot be switched can be generated so that image processing is performed in a predetermined operation format.

なお、より精度を高める場合には、有理数型の演算形式で画像処理が実行されるように画像処理モジュール38を生成するようにしてもよい。   In order to further improve the accuracy, the image processing module 38 may be generated so that the image processing is executed in a rational number type calculation format.

また、上記では、選択起動部45が、予めユーザにより設定された処理モードに応じて演算形式を選択してモジュール生成部44にモジュール生成させる例について説明したが、これに限定されるものではなく、例えば、画像処理モジュール群を生成する装置の動作環境(CPUの数、速度、処理ビット数等)や、処理対象の画像データのビット深度などに応じて、演算形式を選択し、切替えても良い。   In the above description, the example has been described in which the selection activation unit 45 selects the calculation format according to the processing mode set in advance by the user and causes the module generation unit 44 to generate a module. However, the present invention is not limited to this. For example, depending on the operating environment (number of CPUs, speed, number of processing bits, etc.) of the device that generates the image processing module group and the bit depth of the image data to be processed, the calculation format can be selected and switched. good.

例えば、画像処理を実行する装置の処理ビット数が32ビットであれば、固定小数32ビットで処理する画像処理モジュール38を生成し、画像処理を実行する装置の処理ビット数が64ビットであれば、固定小数64ビットで処理する画像処理モジュール38を生成するようにすることができる。これにより、動作環境に最適な演算が行われる。   For example, if the number of processing bits of a device that performs image processing is 32 bits, an image processing module 38 that processes with a fixed decimal number of 32 bits is generated. If the number of processing bits of a device that performs image processing is 64 bits, The image processing module 38 for processing with fixed decimal 64 bits can be generated. As a result, the optimum calculation for the operating environment is performed.

また、処理対象の画像データの画像ビット深度が8ビットの場合には、固定小数演算が行われるようにし、画像ビット深度が16ビットの場合には、浮動小数演算が行われるように画像処理モジュール38を生成するようにすることもできる。   Further, the image processing module is configured such that when the image bit depth of the image data to be processed is 8 bits, fixed decimal arithmetic is performed, and when the image bit depth is 16 bits, floating decimal arithmetic is performed. 38 can also be generated.

また、ユーザが設定した処理モード、画像処理モジュール群を生成する装置の動作環境、及び処理対象の画像データのビット深度の少なくとも2つの要素に基づいて画像処理モジュール38のプログラムを選択し、画像処理モジュール38を生成することもできる。この場合、優先する条件を画像処理の種別毎に設定しておくこともできる。   Further, the program of the image processing module 38 is selected based on at least two elements of the processing mode set by the user, the operating environment of the apparatus for generating the image processing module group, and the bit depth of the image data to be processed. Module 38 can also be generated. In this case, priority conditions can be set for each type of image processing.

例えば、一連の画像処理において、ある画像処理の種別では、ユーザが設定した処理モードに応じた演算形式を優先し、他の画像処理の種別では、画像データのビット深度に応じた演算形式を優先する、ように設定しておくことができる。   For example, in a series of image processing, priority is given to the calculation format according to the processing mode set by the user for a certain image processing type, and priority is given to the calculation format according to the bit depth of the image data for other image processing types. You can set it to

また、上記では、画像処理モジュール38のプログラムを複数の演算形式に対応してモジュールライブラリに36各々登録しておき、実行すべき演算形式に対応する画像処理モジュール38を該登録済プログラムから選択して生成する場合を例に挙げて説明したが、複数の演算形式に対応するように画像処理モジュール38を構成し、画像処理実行時に外部(例えば処理管理部46)から画像処理モジュール38に対して、確定した演算形式を指定して内部的に演算形式を切替えられるようにしてもよい。   In the above, the program of the image processing module 38 is registered in the module library 36 corresponding to a plurality of calculation formats, and the image processing module 38 corresponding to the calculation format to be executed is selected from the registered programs. The image processing module 38 is configured so as to correspond to a plurality of calculation formats, and the image processing module 38 is externally (for example, the processing management unit 46) to the image processing module 38 when executing the image processing. Alternatively, the calculation format may be switched internally by designating a fixed calculation format.

この場合には、複数の演算形式に対応可能な画像処理モジュール38が生成されるようなプログラムを予め用意しておき、モジュールライブラリ36に登録しておく。これにより、演算形式に応じて複数のプログラムを用意しておく必要がなくなり、画像処理モジュール38の生成時には、演算形式を考慮せずにプログラムを選択して生成することができる。   In this case, a program for generating an image processing module 38 that can handle a plurality of calculation formats is prepared in advance and registered in the module library 36. Accordingly, it is not necessary to prepare a plurality of programs according to the calculation format, and when generating the image processing module 38, the program can be selected and generated without considering the calculation format.

この場合の処理管理部46によるモジュール生成制御処理では、上記図6に示したフローチャートのステップ120を除くステップが実行される。   In the module generation control process by the process management unit 46 in this case, steps other than step 120 in the flowchart shown in FIG. 6 are executed.

また、モジュール生成部44で実行されるモジュール生成処理では、演算形式を考慮せずにモジュールライブラリ36から画像処理モジュール38を選択して生成する。   Further, in the module generation process executed by the module generation unit 44, the image processing module 38 is selected and generated from the module library 36 without considering the calculation format.

このように生成された画像処理モジュール38は、図15に示すように、画像処理エンジン38Aが複数個備えられ、制御部38Bが外部(処理管理部46)から通知された演算形式に応じて該複数個の画像処理エンジン38Aを切替えて用い、画像処理を実行させる。   As shown in FIG. 15, the image processing module 38 generated in this way is provided with a plurality of image processing engines 38A, and the control unit 38B corresponds to the calculation format notified from the outside (processing management unit 46). A plurality of image processing engines 38A are switched and used to execute image processing.

例えば、2種類の画像処理エンジン38Aの一方が固定小数演算を行う画像処理エンジン38Aであって、他方が浮動小数演算を行う画像処理エンジン38Aであり、ユーザが処理速度優先の処理モードを設定した場合には、画像処理モジュール38の制御部38Bに処理管理部46から演算形式として固定小数演算が指定された処理要求が入力され、画像処理モジュール38の制御部38Bは、該処理要求に応じて固定小数演算を行う画像処理エンジン38Aを選択し、該選択した画像処理エンジン38Aに画像データを渡して処理を実行させる。画像処理の実行の流れは、処理管理部46から各モジュール38に対して入力される処理要求で演算形式が指定される以外は前述と同様である。   For example, one of the two types of image processing engines 38A is an image processing engine 38A that performs fixed decimal arithmetic, and the other is an image processing engine 38A that performs floating decimal arithmetic, and the user has set a processing speed priority processing mode. In this case, a processing request in which fixed decimal arithmetic is specified as an arithmetic format is input from the processing management unit 46 to the control unit 38B of the image processing module 38, and the control unit 38B of the image processing module 38 responds to the processing request. The image processing engine 38A that performs fixed decimal arithmetic is selected, and image data is passed to the selected image processing engine 38A to execute processing. The flow of execution of image processing is the same as described above, except that the calculation format is specified by the processing request input from the processing management unit 46 to each module 38.

図16は、処理管理部46のワークフロー管理部46Aが実行する処理要求生成処理の流れを示すフローチャートである。   FIG. 16 is a flowchart showing the flow of processing request generation processing executed by the workflow management unit 46A of the processing management unit 46.

ステップ600では、メモリ14あるいは記憶部20等に予め記憶されたモジュール情報テーブル(図1では不図示)を参照する。ここでは、図8(B)に示すようなモジュール情報テーブルに代えて、図17に示すようなモジュール情報テーブルを用いる。図17に示すように、このモジュール情報テーブルには画像処理モジュール名と、演算形式とが対応付けて記憶されている。例えば、生成する画像処理モジュール38が固定小数演算と浮動小数演算とを切替えて実行できる場合には(画像処理エンジン38Aが固定小数演算と浮動小数演算とに応じて設けられた画像処理モジュール38を生成できる場合には)、該演算形式の各々を示す情報が登録され、演算形式を切替えて実行できない場合には、予め定められた単一の演算形式を示す情報が登録される。   In step 600, a module information table (not shown in FIG. 1) stored in advance in the memory 14 or the storage unit 20 is referred to. Here, a module information table as shown in FIG. 17 is used instead of the module information table as shown in FIG. As shown in FIG. 17, the module information table stores an image processing module name and an operation format in association with each other. For example, if the image processing module 38 to be generated can execute switching between fixed-point arithmetic and floating-point arithmetic (the image processing engine 38A uses an image processing module 38 provided according to fixed-point arithmetic and floating-point arithmetic). If it can be generated), information indicating each of the calculation formats is registered. If the calculation format cannot be switched and executed, information indicating a predetermined single calculation format is registered.

ステップ602では、処理要求を入力させる画像処理モジュール38が、処理モード(あるいは動作環境や画像データのビット深度)に応じた演算形式が選択可能なモジュールか否かを判定する。ここでは、該当の画像処理モジュール名に対応してモジュール情報テーブルに登録されている演算形式の情報が、処理モード等に応じた演算形式を含んでいる場合には肯定判定され、それ以外は、否定判定される。   In step 602, it is determined whether the image processing module 38 to which a processing request is input is a module that can select an operation format according to the processing mode (or the operating environment and the bit depth of the image data). Here, when the information of the calculation format registered in the module information table corresponding to the corresponding image processing module name includes the calculation format according to the processing mode or the like, an affirmative determination is made. Negative determination is made.

ステップ602で肯定判定した場合には、ステップ604に移行し、演算形式を指定した処理要求を生成する。また、ステップ602で否定判定した場合には、演算形式を指定しない処理要求を生成する。   If the determination in step 602 is affirmative, the process proceeds to step 604, and a processing request specifying the calculation format is generated. If a negative determination is made in step 602, a processing request that does not specify the calculation format is generated.

画像処理モジュール38に演算形式が指定された処理要求が入力された場合には、制御部38Bは、該指定された演算形式で演算されるように画像処理エンジン38Aを選択して画像処理を実行させる。   When a processing request in which the calculation format is specified is input to the image processing module 38, the control unit 38B selects the image processing engine 38A to execute the image processing so that the calculation is performed in the specified calculation format. Let

例えば、ユーザが設定した処理モードが処理速度優先の処理モードであった場合には、上記実施の形態で説明したように、演算形式として固定小数演算を指定すべきである。従って、処理要求の入力対象の画像処理モジュール38に対して固定小数演算を指定した処理要求を生成する。   For example, when the processing mode set by the user is a processing mode with processing speed priority, as described in the above embodiment, fixed decimal arithmetic should be specified as the arithmetic format. Accordingly, a processing request designating fixed decimal arithmetic is generated for the image processing module 38 that is the input target of the processing request.

しかしながら、画像処理モジュール38が単一の画像処理エンジン38Aを有する場合には、演算形式を切替えることはできない。従って、どのような場合であっても、制御部38Bは、該単一の画像処理エンジン38Aに画像処理を実行させることとなる。   However, when the image processing module 38 has a single image processing engine 38A, the calculation format cannot be switched. Therefore, in any case, the control unit 38B causes the single image processing engine 38A to execute image processing.

例えば、処理要求の入力対象の画像処理モジュール38が浮動小数演算のみ可能であって固定小数演算を指定できない処理モジュールである場合には、該画像処理モジュール38に対しては、演算形式を指定せずに処理要求を生成する。   For example, if the image processing module 38 that is the input target of the processing request is a processing module that can only perform floating-point arithmetic and cannot specify fixed-point arithmetic, specify the arithmetic format for the image processing module 38. Process request.

また、複数の画像処理エンジン38Aを有し、演算形式を切替えて実行可能な画像処理モジュール38であっても、指定された演算形式だけでは画像処理エンジン38Aを選択できないものもある。例えば、浮動小数演算形式かつ演算ビット数が16ビットの画像処理エンジン38Aと、浮動小数演算形式かつ演算ビット数が8ビットの画像処理エンジン38Aとを有する画像処理モジュール38の場合であって、浮動小数演算形式のみが指定された処理要求が入力された場合には、双方の画像処理エンジン38Aが選択可能である。その場合には、予め定められた画像処理エンジン38Aを選択して実行させる。   Even if the image processing module 38 has a plurality of image processing engines 38A and can be executed by switching the calculation format, there are some that cannot select the image processing engine 38A only by the designated calculation format. For example, in the case of an image processing module 38 having an image processing engine 38A having a floating-point arithmetic format and 16 bits of arithmetic bits and an image processing engine 38A having a floating-point arithmetic format and 8 bits of arithmetic bits. When a processing request designating only the decimal arithmetic format is input, both image processing engines 38A can be selected. In that case, a predetermined image processing engine 38A is selected and executed.

このように、画像処理モジュール38の制御部38Bは、処理要求に応じて、画像処理エンジン38Aを選択し、該選択した画像処理エンジン38Aに対して、取得した入力データやデータ出力領域を入力し、入力したデータに対し画像処理用のメモリ領域を使用して所定の画像処理を行わせると共に、処理後のデータをデータ出力領域に書き込ませる。   As described above, the control unit 38B of the image processing module 38 selects the image processing engine 38A in response to the processing request, and inputs the acquired input data and data output area to the selected image processing engine 38A. The input data is subjected to predetermined image processing using an image processing memory area, and the processed data is written to the data output area.

このような構成によっても、上記実施の形態と同様に、個々の画像処理の演算形式を切替えて画像処理を実行できる。   Even with such a configuration, the image processing can be executed by switching the calculation format of the individual image processing as in the above embodiment.

なお、上記実施の形態では、処理管理部46のプログラムが、記憶部20に固定的に記憶されている場合を説明したが、これに限定されず、コンピュータ10の外部から、例えばUSBメモリ等の外部記憶装置や通信回線等を介して、新たな処理管理部のプログラムを追加したり、既登録の処理管理部のプログラムを上書き更新可能としてもよい。   In the above-described embodiment, the case where the program of the processing management unit 46 is fixedly stored in the storage unit 20 has been described. However, the present invention is not limited to this. A new program for the processing management unit may be added or an already registered program for the processing management unit may be overwritten and updated via an external storage device or a communication line.

また、上記では本発明に係る画像処理プログラムに対応する画像処理プログラム群34が記憶部20に予め記憶(インストール)されている態様を説明したが、本発明に係る画像処理プログラムは、CD−ROMやDVD−ROM等の記録媒体に記録されている形態で提供することも可能である。   In the above description, the image processing program group 34 corresponding to the image processing program according to the present invention is stored (installed) in the storage unit 20 in advance. However, the image processing program according to the present invention is a CD-ROM. It is also possible to provide the information in a form recorded on a recording medium such as DVD-ROM.

本実施形態に係るコンピュータ(画像処理装置)の概略構成を示すブロック図である。It is a block diagram which shows schematic structure of the computer (image processing apparatus) which concerns on this embodiment. 画像処理部の構成例を示すブロック図である。It is a block diagram which shows the structural example of an image process part. (A)は画像処理モジュール、(B)はバッファモジュールの概略構成及び実行される処理を各々示すブロック図である。(A) is an image processing module, and (B) is a block diagram showing a schematic configuration of a buffer module and processing to be executed. 処理モードを設定する設定処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the setting process which sets a processing mode. アプリケーションが実行するモジュール生成処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the module production | generation process which an application performs. 処理管理部のワークフロー管理部が実行するモジュール生成制御処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the module production | generation control processing which the workflow management part of a process management part performs. モジュール生成部で実行されるモジュール生成処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the module production | generation process performed with a module production | generation part. (A)は、演算形式テーブルの一例を示す図であり、(B)は、モジュール情報テーブルの一例を示す図である。(A) is a figure which shows an example of a calculation format table, (B) is a figure which shows an example of a module information table. 書込対象の画像データが複数の保管用単位バッファ領域に跨る場合を説明する概略図である。It is the schematic explaining the case where the image data to be written straddles a plurality of storage unit buffer areas. 読出対象の画像データが複数の保管用単位バッファ領域に跨っていた場合を説明する概略図である。It is the schematic explaining the case where the image data to be read straddles a plurality of storage unit buffer areas. 画像処理モジュールの制御部によって実行される画像処理モジュール制御処理の内容を示すフローチャートである。It is a flowchart which shows the content of the image processing module control process performed by the control part of an image processing module. 処理管理部のワークフロー管理部によって実行されるブロック単位制御処理の内容を示すフローチャートである。It is a flowchart which shows the content of the block unit control process performed by the workflow management part of a process management part. 画像処理部における画像処理の流れを説明する概略図である。It is the schematic explaining the flow of the image processing in an image process part. (A)は、ユーザが処理速度を優先させる処理モードを選択して設定した場合に構築される画像処理部で実行される一連の画像処理を示す図であり、(B)は、ユーザが精度を優先させる処理モードを選択して設定した場合に構築される画像処理部で実行される一連の画像処理を示す図である。(A) is a figure which shows a series of image processing performed by the image processing part constructed | assembled when a user selects and sets the processing mode which gives priority to a processing speed, (B) is a figure with a user precision. It is a figure which shows a series of image processing performed by the image processing part constructed | assembled when the processing mode which gives priority to is selected and set. 画像処理モジュールの概略構成及び実行される処理の他の例を示すブロック図である。It is a block diagram which shows the schematic structure of an image processing module, and the other example of the process performed. 処理管理部のワークフロー管理部が実行する処理要求生成処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process request production | generation process which the workflow management part of a process management part performs. モジュール情報テーブルの一例を示す図である。It is a figure which shows an example of a module information table.

符号の説明Explanation of symbols

10 コンピュータ
12 CPU
20 記憶部
22 画像データ供給部
24 画像出力部
34 画像処理プログラム群
38 画像処理モジュール
40 バッファモジュール
46 処理管理部
10 Computer 12 CPU
20 Storage Unit 22 Image Data Supply Unit 24 Image Output Unit 34 Image Processing Program Group 38 Image Processing Module 40 Buffer Module 46 Processing Management Unit

Claims (10)

所定の画像処理を行う画像処理モジュールを複数連結して画像データに対して複数の画像処理を組み合わせた一連の処理を実行する画像処理手段と、
前記一連の処理を構成する各画像処理の演算形式を所定の条件に応じて変更して前記一連の処理を実行するように前記画像処理手段を制御する制御手段と、
を含む画像処理装置。
Image processing means for executing a series of processes in which a plurality of image processing modules that perform predetermined image processing are connected to combine image processing on image data;
Control means for controlling the image processing means so as to execute the series of processes by changing the calculation format of each image process constituting the series of processes according to a predetermined condition;
An image processing apparatus.
前記制御手段は、前記一連の処理を構成する各画像処理の演算形式を、固定小数演算及び浮動小数演算のいずれか一方に変更して前記一連の処理を実行するように前記画像処理手段を制御する請求項1記載の画像処理装置。   The control means controls the image processing means so as to execute the series of processes by changing the calculation format of each image process constituting the series of processes to either a fixed decimal calculation or a floating-point calculation. The image processing apparatus according to claim 1. 前記制御手段は、前記一連の処理を構成する各画像処理の演算形式として演算ビット数を変更して前記一連の処理を実行するように前記画像処理手段を制御する請求項1記載の画像処理装置。   The image processing apparatus according to claim 1, wherein the control unit controls the image processing unit so as to execute the series of processes by changing the number of calculation bits as a calculation format of each image process constituting the series of processes. . 前記所定の条件は、精度を優先するモード及び速度を優先するモードを含む処理モード、前記画像処理手段の動作環境、及び前記画像データのビット深数の少なくとも1つである請求項1乃至請求項3のいずれか1項記載の画像処理装置。   2. The predetermined condition is at least one of a processing mode including a mode in which accuracy is prioritized and a mode in which speed is prioritized, an operating environment of the image processing unit, and a bit depth of the image data. 4. The image processing apparatus according to any one of items 3. 前記制御手段は、前記処理モードが精度を優先するモードの場合には、前記一連の処理を構成する各画像処理の演算形式を浮動小数演算に変更し、前記処理モードが速度を優先するモードの場合には、前記一連の処理を構成する各画像処理の演算形式を固定小数演算に変更して前記一連の処理を実行するように前記画像処理手段を制御する請求項4記載の画像処理装置。   When the processing mode is a mode in which accuracy is given priority, the control means changes the calculation format of each image processing constituting the series of processing to a floating-point arithmetic, and the processing mode is a mode in which speed is given priority. 5. The image processing apparatus according to claim 4, wherein the image processing unit is controlled to execute the series of processes by changing the calculation format of the image processes constituting the series of processes to a fixed decimal calculation. 前記制御手段は、前記処理モードが精度を優先するモードの場合には、前記一連の処理を構成する各画像処理の演算ビット数が大きくなるように演算形式を変更し、前記処理モードが速度を優先するモードの場合には、前記一連の処理を構成する各画像処理の演算ビット数が小さくなるように演算形式を変更して前記一連の処理を実行するように前記画像処理手段を制御する請求項4記載の画像処理装置。   When the processing mode is a mode in which accuracy is given priority, the control means changes the calculation format so that the number of calculation bits of each image processing constituting the series of processing is increased, and the processing mode increases the speed. In the case of the priority mode, the image processing means is controlled to execute the series of processes by changing the calculation format so that the number of calculation bits of each of the image processes constituting the series of processes is small. Item 5. The image processing apparatus according to Item 4. 前記制御手段は、前記処理モードが精度を優先するモードの場合には、前記一連の処理を構成する各画像処理の演算形式を有理数演算に変更する請求項5記載の画像処理装置。   The image processing apparatus according to claim 5, wherein when the processing mode is a mode in which accuracy is prioritized, the control unit changes a calculation format of each image processing constituting the series of processes to a rational number calculation. 前記処理モードを設定するための設定手段を更に備えた請求項4乃至請求項7のいずれか1項記載の画像処理装置。   The image processing apparatus according to claim 4, further comprising setting means for setting the processing mode. 前記演算形式は、前記画像処理モジュールを連結するとき、または前記一連の処理を実行するときに変更される請求項1乃至請求項8のいずれか1項記載の画像処理装置。   The image processing apparatus according to claim 1, wherein the calculation format is changed when the image processing modules are connected or when the series of processes is executed. コンピュータを、
所定の画像処理を行う画像処理モジュールを複数連結して画像データに対して複数の画像処理を組み合わせた一連の処理を実行する画像処理手段、
及び、前記一連の処理を構成する各画像処理の演算形式を所定の条件に応じて変更して前記一連の処理を実行するように前記画像処理手段を制御する制御手段、
として機能させる画像処理プログラム。
Computer
Image processing means for connecting a plurality of image processing modules for performing predetermined image processing and executing a series of processes in which a plurality of image processes are combined with image data;
And control means for controlling the image processing means so as to execute the series of processes by changing the calculation format of the image processes constituting the series of processes according to a predetermined condition,
An image processing program that functions as
JP2006324190A 2006-11-30 2006-11-30 Image processor and program Pending JP2008140007A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006324190A JP2008140007A (en) 2006-11-30 2006-11-30 Image processor and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006324190A JP2008140007A (en) 2006-11-30 2006-11-30 Image processor and program

Publications (1)

Publication Number Publication Date
JP2008140007A true JP2008140007A (en) 2008-06-19

Family

ID=39601421

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006324190A Pending JP2008140007A (en) 2006-11-30 2006-11-30 Image processor and program

Country Status (1)

Country Link
JP (1) JP2008140007A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011004265A (en) * 2009-06-19 2011-01-06 Fuji Xerox Co Ltd Image processing apparatus and program
JP2011053787A (en) * 2009-08-31 2011-03-17 Omron Corp Image processing apparatus and image processing program
WO2012108125A1 (en) * 2011-02-09 2012-08-16 日本電気株式会社 Analysis engine control device

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011004265A (en) * 2009-06-19 2011-01-06 Fuji Xerox Co Ltd Image processing apparatus and program
JP2011053787A (en) * 2009-08-31 2011-03-17 Omron Corp Image processing apparatus and image processing program
US8698815B2 (en) 2009-08-31 2014-04-15 Omron Corporation Image processing apparatus
WO2012108125A1 (en) * 2011-02-09 2012-08-16 日本電気株式会社 Analysis engine control device
JP5880451B2 (en) * 2011-02-09 2016-03-09 日本電気株式会社 Analysis engine controller
US9811373B2 (en) 2011-02-09 2017-11-07 Nec Corporation Analysis engine control device

Similar Documents

Publication Publication Date Title
JP4694266B2 (en) Image processing apparatus, method, and program
JP5703729B2 (en) Data processing apparatus and program
CN103366338B (en) Image processing device and image processing method
JP5046801B2 (en) Image processing apparatus and program
JP4694267B2 (en) Image processing apparatus, method, and program
JP4694270B2 (en) Image processing apparatus, method, and program
JP4694268B2 (en) Image processing apparatus, method, and program
JP4979287B2 (en) Image processing apparatus and program
JP4795138B2 (en) Image processing apparatus and program
JP2008140046A (en) Image processing apparatus and image processing program
JP4694265B2 (en) Image processing apparatus, method, and program
JP2006338498A (en) Image processing apparatus, method, and program
JP4619868B2 (en) Image processing apparatus, method, and program
JP4694269B2 (en) Image processing apparatus, method, and program
JP2008140007A (en) Image processor and program
JP4818893B2 (en) Image processing apparatus and program
JP2007287084A (en) Image processor and program
JP5440129B2 (en) Image processing apparatus, image forming apparatus, and image processing program
JP4762865B2 (en) Image processing apparatus and image processing program
JP4869890B2 (en) Image processing apparatus and program
JP5047139B2 (en) Image processing apparatus and program
JP5036588B2 (en) Image processing apparatus and image processing program
JP2012043096A (en) Device, method and program of image processing
JP2008140170A (en) Image processing apparatus and program
JP2009053829A (en) Information processing apparatus and information processing program