JP2005322049A - Image processor and program - Google Patents
Image processor and program Download PDFInfo
- Publication number
- JP2005322049A JP2005322049A JP2004139961A JP2004139961A JP2005322049A JP 2005322049 A JP2005322049 A JP 2005322049A JP 2004139961 A JP2004139961 A JP 2004139961A JP 2004139961 A JP2004139961 A JP 2004139961A JP 2005322049 A JP2005322049 A JP 2005322049A
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- data
- module
- image processing
- unit
- 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
Links
Images
Abstract
Description
パイプライン方式で画像処理を行う技術に関する。 The present invention relates to a technique for performing image processing by a pipeline method.
入力された画像データに各種画像処理を施して出力する画像処理装置が種々提案されており、その一例としては、特許文献1に開示されたパイプライン方式の画像処理装置が挙げられる。特許文献1には、画像の拡大や縮小、解像度変換や色変換などの基本的な処理を実行するモジュールを各処理毎に備え、これらモジュールを適宜組み合わせてパイプラインを形成し、そのパイプラインを形成するモジュールを順次駆動させることによって、多様な画像処理を柔軟に実現する画像処理装置が開示されている。 Various image processing apparatuses that perform various kinds of image processing on input image data and output them have been proposed. As an example, a pipeline-type image processing apparatus disclosed in Patent Document 1 can be cited. In Patent Document 1, a module that executes basic processing such as image enlargement and reduction, resolution conversion, and color conversion is provided for each processing, and a pipeline is formed by appropriately combining these modules. An image processing apparatus that flexibly realizes various image processing by sequentially driving modules to be formed is disclosed.
ところで、上記パイプライン方式の画像処理装置では、処理を完了したモジュールから次に処理を行うモジュールへ前者の処理結果であるデータを引渡す必要があり、このようなデータの引渡しは、例えば、以下のようにして行われる。すなわち、各モジュールの駆動に先立って、各モジュールにその処理結果であるデータを格納するための記憶領域(以下、バッファ)をメモリ内に割り当てておく。そして、各モジュールはその処理結果であるデータを自身に割り当てられているバッファへ書き込む一方、次に駆動されるモジュールはその直前に処理を完了したモジュールに割り当てられているバッファを参照しその処理結果を取得する。なお、モジュールにバッファを割り当てるとは、例えば図7に示すような管理テーブルに各バッファを一意に識別するバッファ識別子(例えば、上記記憶領域の先頭アドレス)と、そのバッファの大きさと、そのバッファにデータを書き込むモジュールを一意に識別するモジュール識別子(例えば、モジュールの名称を表す文字列など)と、を対応付けて書き込むことである。上記管理テーブルは、あるモジュールに割り当てられているバッファに対応する記憶領域を他のモジュールのバッファとして割り当てないようにするためのものであり、新たにバッファの割り当てを行う場合には、上記管理テーブルに格納されている先頭アドレスの記憶領域を避けてそのバッファを割り当てるようにするためのものである。 By the way, in the pipeline type image processing apparatus, it is necessary to transfer the data as the former processing result from the module that has completed the processing to the module that performs the next processing. This is done. That is, prior to driving each module, a storage area (hereinafter referred to as a buffer) for storing data as a result of processing is allocated to each module in the memory. Each module writes the data that is the processing result to the buffer assigned to itself, while the next driven module refers to the buffer assigned to the module that has completed processing immediately before, and the processing result To get. The assignment of buffers to modules means, for example, a buffer identifier (for example, the start address of the storage area) uniquely identifying each buffer in the management table as shown in FIG. 7, the size of the buffer, and the buffer. This is to write a module identifier (for example, a character string representing the name of the module) that uniquely identifies a module to which data is written, in association with each other. The management table is used to prevent a storage area corresponding to a buffer allocated to a certain module from being allocated as a buffer of another module. When a buffer is newly allocated, the management table This is for allocating the buffer while avoiding the storage area of the head address stored in.
このように、パイプラインを形成する各モジュールに上記バッファを割り当てる際には、そのバッファに格納されるデータのデータサイズを特定しておく必要がある。しかしながら、パイプラインを形成する全てのモジュールについてその処理結果のデータサイズを一意に特定することができる訳ではない。例えば、入力データを所定の圧縮アルゴリズムにしたがって符号化し圧縮するモジュールでは、その入力データの内容に応じて異なるデータサイズのデータが生成される。このため、この種のモジュールについては、実際に圧縮処理が完了するまでその処理結果のデータサイズを特定することはできない。このように、処理結果のデータサイズを一意に特定できない場合には、その処理結果のデータサイズについての理論的に想定し得る最大値で上記バッファを割り当てておくことが一般に行われている。 As described above, when allocating the buffer to each module forming the pipeline, it is necessary to specify the data size of the data stored in the buffer. However, the data size of the processing result cannot be uniquely specified for all modules forming the pipeline. For example, in a module that encodes and compresses input data according to a predetermined compression algorithm, data having different data sizes is generated according to the contents of the input data. For this reason, for this type of module, the data size of the processing result cannot be specified until the actual compression processing is completed. As described above, when the data size of the processing result cannot be uniquely specified, it is generally performed that the buffer is allocated with a theoretically assumed maximum value for the data size of the processing result.
しかしながら、入力データの内容に応じて異なるデータサイズのデータが生成される場合であっても、そのデータサイズが上記最大値に達することは極めて稀である。つまり、上記最大値でバッファを割り当てると、その大部分が利用されないことになってしまう。前述したように、あるモジュールに割り当てられているバッファに対応する記憶領域は、他のモジュールに割り当てられないようになっているため、このように利用されないバッファが割り当てられることは極めて無駄であり、好ましくない。また、パイプラインに処理結果のデータサイズを一意に特定できないモジュールが多数含まれている場合には、実際にはその大部分が利用されることがないにも拘わらず、それら各モジュールについて上記最大値でバッファを割り当てなければならないため、そのパイプラインの実行に大容量のメモリが必要になってしまう。このため、スキャナ装置やプリンタ装置などに組み込まれる画像処理装置のように、小容量のメモリしか有していない画像処理装置では、パイプライン方式の画像処理を実行することが困難な場合も少なくない。 However, even when data having a different data size is generated according to the contents of the input data, the data size rarely reaches the maximum value. In other words, if a buffer is allocated with the above maximum value, most of it will not be used. As described above, since a storage area corresponding to a buffer allocated to a certain module is not allocated to another module, it is extremely useless to allocate a buffer that is not used in this way, It is not preferable. If the pipeline contains a large number of modules that cannot uniquely identify the data size of the processing result, the maximum of the above-mentioned maximum values for each module is used even though most of the modules are not actually used. Since a buffer must be allocated by value, a large amount of memory is required to execute the pipeline. For this reason, in an image processing apparatus having only a small memory, such as an image processing apparatus incorporated in a scanner device or a printer device, it is often difficult to execute pipeline image processing. .
本発明は、上記課題に鑑みてなされたものであり、無用なバッファの割り当てを回避し、パイプライン方式の画像処理を行う際に要するメモリ容量を削減する技術を提供することを目的としている。 The present invention has been made in view of the above problems, and an object of the present invention is to provide a technique for avoiding unnecessary buffer allocation and reducing the memory capacity required for pipelined image processing.
上記課題を解決するために、本発明は、記憶手段と、画像処理を行うモジュールを駆動する制御手段と、前記モジュールが前記制御手段によって駆動される前に、前記モジュールに前記記憶手段内の記憶領域をバッファとして割り当てる割り当て手段と、前記制御手段によって駆動された前記モジュールにより生成されたデータが前記バッファに納まる場合には、該データを前記バッファに書き込み、前記バッファに納まらない場合には、前記バッファを拡張した後に、該データを書き込む書き込み手段とを有する画像処理装置を提供する。 In order to solve the above-described problems, the present invention provides a storage unit, a control unit that drives a module that performs image processing, and a memory stored in the storage unit before the module is driven by the control unit. If the data generated by the module driven by the controller driven by the control means and the allocation means for allocating an area as a buffer is stored in the buffer, the data is written in the buffer, and if the data does not fit in the buffer, An image processing apparatus having writing means for writing the data after expanding a buffer is provided.
また、上記課題を解決するために、本発明は、コンピュータ装置に、画像処理を行うモジュールを駆動する制御機能と、前記モジュールが前記制御機能によって駆動される前に、前記モジュールに当該コンピュータ装置のメモリ内の記憶領域をバッファとして割り当てる割り当て機能と、前記制御機能によって駆動された前記モジュールにより生成されたデータが前記バッファに納まる場合には、該データを前記バッファに書き込み、前記バッファに納まらない場合には、前記バッファを拡張した後に、該データを書き込む書き込み機能とを実現させるプログラムを提供する。 In order to solve the above-described problem, the present invention provides a computer device with a control function for driving a module that performs image processing, and before the module is driven by the control function, An allocation function for allocating a storage area in a memory as a buffer, and when data generated by the module driven by the control function fits in the buffer, the data is written to the buffer and does not fit in the buffer Provides a program for realizing a write function for writing the data after the buffer is expanded.
このような画像処理装置およびプログラムによれば、上記モジュールを駆動させる前に、所定の大きさのバッファがそのモジュールに割り当てられる一方、そのモジュールの処理結果であるデータが上記バッファに納まらない場合には、そのバッファを拡張した後にそのデータの書き込みが行われる。 According to such an image processing apparatus and program, a buffer having a predetermined size is allocated to the module before the module is driven, while data as a result of processing of the module does not fit in the buffer. The data is written after the buffer is expanded.
本発明によれば、パイプラインを形成する各モジュールを駆動する前に、そのモジュールの処理結果であるデータを格納するためのバッファが割り当てられる一方、そのバッファに上記データが納まらない場合には、そのバッファを拡張した後にそのデータの書き込みが行われる。このため、入力データの内容に応じてデータサイズの異なるデータを生成するようなモジュールに対しても、その処理結果のデータサイズについての理論的に想定し得る最大値でバッファを割り当てておく必要はなく、パイプライン方式の画像処理を行う際に要するメモリ容量が削減されるといった効果を奏する。 According to the present invention, before each module forming the pipeline is driven, a buffer for storing data as a result of processing of the module is allocated, but when the data does not fit in the buffer, The data is written after the buffer is expanded. For this reason, it is necessary to allocate a buffer with the maximum value that can be theoretically assumed for the data size of the processing result even for modules that generate data having different data sizes depending on the contents of the input data. In addition, the memory capacity required for pipelined image processing is reduced.
以下、図面を参照しつつ本発明を実施するための最良の形態について説明する。
[A:構成]
図1は、本発明の1実施形態に係る画像読み取り装置10の全体構成の一例を示す図である。この画像読み取り装置10は、図1に示されているように、記憶部110と、画像読み取り部120と、画像処理部130とを有している。この画像読み取り装置10は、画像読み取り部120によって読み取った画像に対応する画像データに所定の画像処理を画像処理部130によって施した後に記憶部110へ書き込むものである。なお、本実施形態では、画像処理部130によって上記画像データを所定の圧縮アルゴリズムにしたがって圧縮し符号化する場合について説明するが、画像処理部130が施す処理は係る圧縮処理に限定されるものではなく、入力データの内容に応じて異なるデータサイズのデータが生成されるような処理であれば、どのような処理であっても良い。また、本実施形態では、画像処理部130の処理結果を記憶部110に格納する場合について説明するが、通信網等を介して他の機器へその処理結果を送信するとしても勿論良く、また、その処理結果に応じた画像を印刷用紙やOHP(Over Head Projector)シートなどの記録材上に形成し出力するとしても勿論良い。
The best mode for carrying out the present invention will be described below with reference to the drawings.
[A: Configuration]
FIG. 1 is a diagram illustrating an example of the overall configuration of an
記憶部110は、例えばハードディスクであり、画像処理部130から引渡されたデータを格納するためのものである。画像読み取り部120は、上述したような記録材上に形成された画像をライン単位で走査して読み取り、読み取った画像に対応する画像データを所定のデータ単位(本実施形態では、1ライン分のデータ)づつ画像処理部130へ引渡すものである。以下では、上記1ライン分の画像データを「単位データ」と呼ぶ。なお、本実施形態では、1ライン分の画像データを上記単位データとする場合について説明するが、複数ライン分の画像データや1ページ分の画像データを上記単位データとしても良いことは勿論である。
The
画像処理部130は、画像読み取り部120から引渡された単位データを所定の圧縮アルゴリズムにしたがって符号化し圧縮した後に記憶部110へ書き込むものである。この画像処理部130は、上記単位データを画像読み取り部120から受け取る処理、圧縮処理および記憶部110への書き込み処理を前述したパイプライン方式で行うものである。以下、図2を参照しつつ画像処理部130について詳細に説明する。
The
図2は、画像処理部130のハードウェア構成の一例を示すブロック図である。図2に示されているように、画像処理部130は、メモリ210と、制御部220と、データ入力モジュール230と、データ圧縮モジュール240と、データ書き込みモジュール250と、を有している。
FIG. 2 is a block diagram illustrating an example of a hardware configuration of the
メモリ210は、例えばRAM(Random Access Memory)であり、上記パイプライン処理の実行に際してワークエリアとして利用されるものである。詳細については後述するが、このメモリ210内には、上記各モジュール間のデータ授受に利用されるバッファが確保される。
The
制御部220は、図2に示されているように、パイプライン制御手段220a、バッファ割り当て手段220bおよびバッファアクセス手段220cを含んでおり、上述したパイプライン処理を実現するためのものである。パイプライン制御手段220aは、上記単位データが画像読み取り部120から引渡される度に、上記3つのモジュールの駆動制御を行い、図3に示すように、データ入力モジュール230、データ圧縮モジュール240、データ書き込みモジュール250の順に駆動させるものである。
As shown in FIG. 2, the
バッファ割り当て手段220bは、パイプライン制御手段220aによってモジュールが駆動される前に、そのモジュールに予め定められた大きさのバッファを割り当てるものである。より詳細に説明すると、バッファ割り当て手段220bは、例えば、前述した管理テーブル(図7参照)の格納内容を更新することなどにより、予め定められた大きさの記憶領域をメモリ210内に確保しその記憶領域をバッファとして割り当てるものである。本実施形態では、バッファ割り当て手段220bは、上述した単位データのデータサイズと等しい大きさのバッファAをデータ入力モジュール230に割り当てる一方、データ圧縮モジュール240の平均の圧縮率に応じた大きさのバッファBをデータ圧縮モジュールに割り当てるものとする。ここで、圧縮率とは、データ圧縮モジュール240に入力されたデータのデータサイズに対する圧縮結果のデータサイズの100分率であり、内容の異なる複数のデータについて上記圧縮率を求め、その加算平均を求めることで上記平均の圧縮率を求めることができる。例えば、上記平均の圧縮率が50%であった場合には、バッファ割り当て手段220bは、上記単位データのデータサイズの半分の大きさで上記バッファBを割り当てる。なお、本実施形態では、各モジュールが駆動される前に、予め定められた大きさのバッファを各モジュールに割り当てる場合について説明したが、各モジュールに、割り当てるべきバッファの大きさをバッファ割り当て手段220bへ通知させ、その通知された大きさのバッファをバッファ割り当て手段220bに割り当てさせるとしても良いことは勿論である。
The
そして、バッファアクセス手段220cは、各モジュールからの要求に応じてそのモジュールの処理結果であるデータをそのモジュールに割り当てられているバッファへ書き込んだり、そのバッファからデータを読み出したりするものである。このバッファアクセス手段220cは、バッファへの書き込みを行う際に、本発明に特徴的な処理を行う。具体的には、図4に示されているように、バッファアクセス手段220cは、各モジュールから引渡されたデータがそのモジュールに割り当てられたバッファに納まらない場合には、例えば前述した管理テーブル(図7参照)の格納内容を更新するなどして、そのバッファを拡張した後に、そのデータを書き込む。 Then, the buffer access means 220c writes data as a processing result of the module to a buffer assigned to the module or reads data from the buffer in response to a request from each module. The buffer access means 220c performs processing characteristic of the present invention when writing to the buffer. Specifically, as shown in FIG. 4, the buffer access means 220c, for example, if the data delivered from each module does not fit in the buffer assigned to that module, for example, the management table (FIG. 7), the data is written after the buffer is expanded by updating the stored contents.
データ入力モジュール230は、画像読み取り部120から引渡された単位データを受け取り、その単位データを上記バッファアクセス手段220cによってバッファAへ書き込むものである。データ圧縮モジュール240は、バッファAに格納されている単位データを上記バッファアクセス手段220cを用いて読み出し、所定の圧縮アルゴリズムにしたがって圧縮した後、その圧縮結果を上記バッファアクセス手段220cによってバッファBへ書き込むものである。そして、データ書き込みモジュール250は、バッファBに格納されているデータ(すなわち、圧縮された単位データ)を上記バッファアクセス手段220cによって読み出し記憶部110へ書き込むものである。なお、本実施形態では、パイプラインを形成する各モジュールをハードウェアで実装する場合について説明したが、これら各モジュールをソフトウェアで実装するとしても良いことは勿論である。
The
ここで、注目すべき点は、データ圧縮モジュール240によって生成されるデータのデータサイズはそのデータ圧縮モジュール240に入力される単位データの内容に応じて変化する点である。本実施形態では、データ圧縮モジュール240による圧縮結果のデータサイズについての理論上想定し得る最大値とは無関係な大きさでバッファBを割り当てているため、上記圧縮結果がバッファBに納まりきらないことが起こり得る。このような場合であっても、上記バッファアクセス手段220cによれば、バッファBが拡張された後に上記圧縮結果の書き込みが行われるため、特段の問題は発生しない。なお、本実施形態では、画像処理部130で実行されるパイプライン処理が3段階で構成されている場合について説明するが、2段階の処理で構成されていても良く、また、4段階以上の処理で構成されていても良いことは勿論である。
Here, it should be noted that the data size of the data generated by the
[B:動作]
次いで、本実施形態に係る画像読み取り装置10が行う動作のうち、その特徴を顕著に示す動作について図面を参照しつつ説明する。
[B: Operation]
Next, among the operations performed by the
(B−1:パイプライン制御動作)
まず、図3を参照しつつ制御部220が行うパイプライン制御動作について説明する。図3は、制御部220が行う制御動作の流れを示すフローチャートである。図3に示されているように、制御部220は、まず、バッファ割り当て手段220bによって初期化処理を行う(ステップSA1)。具体的には、バッファ割り当て手段220bは、上述したバッファAをデータ入力モジュール230に割り当てる一方、上述したバッファBをデータ圧縮モジュール240に割り当てる。
(B-1: Pipeline control operation)
First, the pipeline control operation performed by the
以降、制御部220は、データ入力モジュール230、データ圧縮モジュール240およびデータ書き込みモジュール250をパイプライン制御手段220aによって順次駆動し(ステップSA2〜ステップSA4)、パイプライン処理を実行する。その結果、画像読み取り部120から画像処理部130へ引渡された単位データは、図5に示すデータフローにしたがってデータ入力モジュール230、データ圧縮モジュール240およびデータ書き込みモジュール250によって順次処理され、記憶部110へ書き込まれることになる。そして、データ入力モジュール230とデータ圧縮モジュール240は、各々の処理結果を各々に割り当てられているバッファへ書き込む際に、上述したバッファアクセス手段220cを用いてその書き込みを行う。以下、バッファアクセス手段220cが行う処理について図4を参照しつつ詳細に説明する。
Thereafter, the
(B−2:バッファ書き込み動作)
図4は、バッファアクセス手段220cが、各モジュールから引渡されたデータをそのモジュールに割り当てられているバッファへ書き込む際に行うバッファ書き込み動作の流れを示すフローチャートである。図4に示されているように、バッファアクセス手段220cは、まず、各モジュールから引渡されたデータのデータサイズとその書き込み先のバッファの空き容量とを比較し、そのデータがそのバッファに納まるか否かを判定する(ステップSB1)。具体的には、バッファアクセス手段220cは、上記データのデータサイズが上記空き容量以下である場合には、納まると判定し、逆に、前者が後者よりも大きい場合には、納まらないと判定する。
(B-2: Buffer write operation)
FIG. 4 is a flowchart showing a flow of a buffer write operation performed when the
ステップSB1の判定結果が“Yes”である場合には、バッファアクセス手段220cは、上記データを上記バッファへ書き込み(ステップSB2)、当該書き込み動作を終了する。逆に、ステップSB1の判定結果が“No”である場合には、バッファアクセス手段220cは、まず、上記データの先頭から上記空き容量に対応する部分だけを上記バッファへ書き込み(ステップSB3)、上記データのデータサイズを未書き込み部分のデータサイズに更新する(ステップSB4)。
If the determination result in step SB1 is “Yes”, the
次いで、バッファアクセス手段220cは、メモリ210内で未使用の記憶領域を上記データサイズ分だけ確保して上記バッファを拡張し(ステップSB5)、ステップSB1以降の処理を繰り返し実行する。なお、本実施形態では、バッファの空き容量に不足が生じる場合には、その不足分だけ新たに記憶領域を割り当ててバッファを拡張する場合について説明したが、バッファの空き容量に不足が生じた場合には、所定のデータサイズ(例えば、バッファの初期サイズ)分だけ拡張するとしても良いことは勿論である。また、上記新たな記憶領域を割り当てる際には、図6(a)に示すように既存のバッファと隣接するように新たな記憶領域(図6にてハッチングで示した部分)を割り当てても良く、図6(b)に示すように既存のバッファとは離間して新たな記憶領域を割り当てても良い。後者のように、既存のバッファとは離間して新たな記憶領域を割り当てる場合であっても、以下に述べる要領でバッファアクセス手段220cを動作させれば、何ら問題は発生しない。すなわち、データをバッファへ書き込む際には、そのデータを適宜分割して既存のバッファと上記新たな記憶領域に書き込み、複数の記憶領域に跨るバッファからデータを読み出す際には、各記憶領域から読み出したデータを適宜連結して各モジュールに引渡すようにすれば良い。
Next, the
以上に説明したように、本実施形態によれば、予め定められた大きさでバッファを割り当て、その空き容量に不足が生じた場合に、その不足分だけ記憶領域を確保しバッファを拡張するようにしたため、理論上想定し得る最大値で常にバッファを確保する場合に比較して、不必要に大きなバッファが確保されることはなく、パイプライン処理を実行する際に要するメモリ容量を削減させることが可能になるといった効果を奏する。 As described above, according to the present embodiment, when a buffer is allocated with a predetermined size and a shortage occurs in the free capacity, a storage area is secured and the buffer is expanded by the shortage. Therefore, compared to the case where a buffer is always secured at the maximum value that can be theoretically assumed, an unnecessarily large buffer is not secured, and the memory capacity required for executing pipeline processing is reduced. There is an effect that becomes possible.
[C:変形例]
以上、本発明を実施するための最良の形態について説明したが、係る実施形態を以下に述べるように変形しても良いことは勿論である。
[C: Modification]
Although the best mode for carrying out the present invention has been described above, it is needless to say that the embodiment may be modified as described below.
(C−1:変形例1)
上述した実施形態では、スキャナ装置などの画像読み取り装置に本発明に係る画像処理部を組み込んでおく場合について説明したが、係る画像処理部が組み込まれる対象はスキャナ装置に限定されるものではなく、プリンタ装置や複写機などの画像形成装置であっても勿論良く、また、スキャナ機能とプリンタ機能や複写機機能とを兼ね備えた複合機であっても勿論良い。また、リップサーバなどのような単独の画像処理装置に本発明を適用しても良いことは勿論である。
(C-1: Modification 1)
In the above-described embodiment, the case where the image processing unit according to the present invention is incorporated in an image reading device such as a scanner device has been described. However, the target in which the image processing unit is incorporated is not limited to the scanner device. Of course, it may be an image forming apparatus such as a printer or a copying machine, or may be a multifunction machine having both a scanner function, a printer function, and a copying machine function. Of course, the present invention may be applied to a single image processing apparatus such as a lip server.
(C−2:変形例2)
上述した実施形態では、本発明に特徴的なバッファアクセス手段220cを用いてバッファへデータを書き込んだり、バッファからデータを読み出したりする場合について説明したが、各モジュールに上記バッファアクセス手段220cと同一の機能を付与しておくとしても良いことは勿論である。同様に2、各モジュールに上記バッファ割り当て手段220bと同一の機能を付与しておくとしても勿論良い。さらに、各バッファを一意に識別するデータ(例えば、各バッファの先頭アドレス)やそのバッファの大きさを表すデータと、そのバッファに対するアクセス処理(データの読み出しや書き込み処理)やそのバッファを拡張する処理等の手順が記述されたプログラムとをカプセル化してオブジェクト(以下、バッファオブジェクト)を生成し、係るバッファオブジェクトを各モジュールとリンク可能に画像処理装置に実装しておくとしても勿論良い。
(C-2: Modification 2)
In the above-described embodiment, the case where data is written to and read from the buffer using the
(C−3:変形例3)
上述した実施形態では、本発明に係る画像処理装置に特有な機能をハードウェアモジュール(パイプライン制御手段220a、バッファ割り当て手段220bおよびバッファアクセス手段220c)で実現する場合について説明したが、ソフトウェアモジュールで実現するとしても勿論良い。具体的には、CPU(Central Processing Unit)に上記各手段と同一の機能を実現させるソフトウェアをコンピュータ装置にインストールし、本実施形態に係る画像処理装置と同一の機能を付与するとしても勿論良い。また、係るソフトウェアをCD−ROM(Compact Disk -Read Only Memory)などのコンピュータ装置読み取り可能な記録媒体に記録して配布するとしても良く、また、インターネットなどの通信網を介して上記ソフトウェアを配信するとしても勿論良い。
(C-3: Modification 3)
In the above-described embodiment, the case where functions specific to the image processing apparatus according to the present invention are realized by hardware modules (pipeline control means 220a, buffer allocation means 220b, and buffer access means 220c) has been described. Of course, it may be realized. Specifically, it is of course possible to install software that realizes the same functions as the above means in a CPU (Central Processing Unit) in a computer device and to provide the same functions as those of the image processing apparatus according to the present embodiment. Further, such software may be recorded and distributed on a computer-readable recording medium such as a CD-ROM (Compact Disk-Read Only Memory), and the software is distributed via a communication network such as the Internet. Of course it is good.
10…画像読み取り装置、110…記憶部、120…画像読み取り部、130…画像処理部、210…メモリ、220…制御部、220a…パイプライン制御手段、220b…バッファ割り当て手段、220c…バッファアクセス手段、230…データ入力モジュール、240…データ圧縮モジュール、250…データ書き込みモジュール。
DESCRIPTION OF
Claims (4)
画像処理を行うモジュールを駆動する制御手段と、
前記モジュールが前記制御手段によって駆動される前に、前記モジュールに前記記憶手段内の記憶領域をバッファとして割り当てる割り当て手段と、
前記制御手段によって駆動された前記モジュールにより生成されたデータが前記バッファに納まる場合には、該データを前記バッファに書き込み、前記バッファに納まらない場合には、前記バッファを拡張した後に、該データを書き込む書き込み手段と
を有する画像処理装置。 Storage means;
Control means for driving a module for image processing;
Allocating means for allocating a storage area in the storage means as a buffer to the module before the module is driven by the control means;
When the data generated by the module driven by the control means fits in the buffer, the data is written to the buffer, and when the data does not fit in the buffer, the data is expanded after the buffer is expanded. An image processing apparatus having writing means for writing.
前記制御手段は、
複数の前記モジュールの各々を予め定められた順番で駆動し、
複数の前記モジュールのうち、2番目以降に駆動されるモジュールは、その直前に駆動されたモジュールにより生成されたデータを該直前に駆動されたモジュールに割り当てられた前記バッファから読み出し画像処理を行う
ことを特徴とする請求項1に記載の画像処理装置。 A plurality of modules that perform different image processing from each other,
The control means includes
Driving each of the plurality of modules in a predetermined order;
Of the plurality of modules, the module driven second or later reads out data generated by the module driven immediately before from the buffer assigned to the module driven immediately before and performs image processing. The image processing apparatus according to claim 1.
入力されたデータの内容に応じて異なるデータサイズのデータを生成する画像処理を行う
ことを特徴とする請求項1に記載の画像処理装置。 The module is
The image processing apparatus according to claim 1, wherein image processing is performed to generate data of different data sizes according to the contents of input data.
画像処理を行うモジュールを駆動する制御機能と、
前記モジュールが前記制御機能によって駆動される前に、前記モジュールに当該コンピュータ装置のメモリ内の記憶領域をバッファとして割り当てる割り当て機能と、
前記制御機能によって駆動された前記モジュールにより生成されたデータが前記バッファに納まる場合には、該データを前記バッファに書き込み、前記バッファに納まらない場合には、前記バッファを拡張した後に、該データを書き込む書き込み機能と
を実現させるプログラム。
Computer equipment,
A control function for driving a module for image processing;
An allocation function for allocating a storage area in a memory of the computer device as a buffer to the module before the module is driven by the control function;
When the data generated by the module driven by the control function fits in the buffer, the data is written to the buffer, and when the data does not fit in the buffer, the data is expanded after the buffer is expanded. Program that realizes the writing function.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004139961A JP2005322049A (en) | 2004-05-10 | 2004-05-10 | Image processor and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004139961A JP2005322049A (en) | 2004-05-10 | 2004-05-10 | Image processor and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005322049A true JP2005322049A (en) | 2005-11-17 |
Family
ID=35469284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004139961A Pending JP2005322049A (en) | 2004-05-10 | 2004-05-10 | Image processor and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005322049A (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006338503A (en) * | 2005-06-03 | 2006-12-14 | Fuji Xerox Co Ltd | Image processing device, method, and program |
JP2009098948A (en) * | 2007-10-17 | 2009-05-07 | Ricoh Co Ltd | Image processing device, image processing method and image processing program |
US7593078B2 (en) | 2006-07-13 | 2009-09-22 | Hitachi Displays, Ltd. | Transflective liquid crystal display device having liquid crystal layer in the reflective portion thicker than in the transmissive portion |
JP2013075487A (en) * | 2011-09-30 | 2013-04-25 | Seiko Epson Corp | Printing device and control method thereof |
JP2013138274A (en) * | 2011-12-28 | 2013-07-11 | Kyocera Document Solutions Inc | Image scanning apparatus |
US8775767B2 (en) | 2010-09-10 | 2014-07-08 | International Business Machines Corporation | Method and system for allocating memory to a pipeline |
JP2014146109A (en) * | 2013-01-28 | 2014-08-14 | Kyocera Document Solutions Inc | Information processing device |
CN104980614A (en) * | 2014-04-14 | 2015-10-14 | 京瓷办公信息系统株式会社 | Imaging forming device and memorizer management method |
JP2016112724A (en) * | 2014-12-11 | 2016-06-23 | キヤノン株式会社 | Image processing apparatus, control method therefor, and program |
CN110366740A (en) * | 2017-07-24 | 2019-10-22 | 奥林巴斯株式会社 | Image processing apparatus and photographic device |
-
2004
- 2004-05-10 JP JP2004139961A patent/JP2005322049A/en active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006338503A (en) * | 2005-06-03 | 2006-12-14 | Fuji Xerox Co Ltd | Image processing device, method, and program |
JP4619868B2 (en) * | 2005-06-03 | 2011-01-26 | 富士ゼロックス株式会社 | Image processing apparatus, method, and program |
US7593078B2 (en) | 2006-07-13 | 2009-09-22 | Hitachi Displays, Ltd. | Transflective liquid crystal display device having liquid crystal layer in the reflective portion thicker than in the transmissive portion |
JP2009098948A (en) * | 2007-10-17 | 2009-05-07 | Ricoh Co Ltd | Image processing device, image processing method and image processing program |
US8775767B2 (en) | 2010-09-10 | 2014-07-08 | International Business Machines Corporation | Method and system for allocating memory to a pipeline |
JP2013075487A (en) * | 2011-09-30 | 2013-04-25 | Seiko Epson Corp | Printing device and control method thereof |
JP2013138274A (en) * | 2011-12-28 | 2013-07-11 | Kyocera Document Solutions Inc | Image scanning apparatus |
JP2014146109A (en) * | 2013-01-28 | 2014-08-14 | Kyocera Document Solutions Inc | Information processing device |
US9247079B2 (en) | 2013-01-28 | 2016-01-26 | Kyocera Document Solutions Inc. | Information processing apparatus |
CN104980614A (en) * | 2014-04-14 | 2015-10-14 | 京瓷办公信息系统株式会社 | Imaging forming device and memorizer management method |
JP2015203991A (en) * | 2014-04-14 | 2015-11-16 | 京セラドキュメントソリューションズ株式会社 | Electronic device and memory management method |
JP2016112724A (en) * | 2014-12-11 | 2016-06-23 | キヤノン株式会社 | Image processing apparatus, control method therefor, and program |
CN110366740A (en) * | 2017-07-24 | 2019-10-22 | 奥林巴斯株式会社 | Image processing apparatus and photographic device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5046801B2 (en) | Image processing apparatus and program | |
JP4795138B2 (en) | Image processing apparatus and program | |
US20070248288A1 (en) | Image processing device, and recording medium | |
JP5438371B2 (en) | Image processing apparatus and image processing method | |
JP2005322049A (en) | Image processor and program | |
JP2008009696A (en) | Image processor and program | |
JP2007287084A (en) | Image processor and program | |
JP2011175395A (en) | Information processor, image reading device, portable terminal, memory control method for information processor, and program | |
JP2007323393A (en) | Image processor and program | |
US20120320423A1 (en) | Printing apparatus provided with plural processing systems for generating print data, printing method and recording medium | |
JP2000035870A (en) | Print system and printer | |
US20050105125A1 (en) | Data compression and decompression unit | |
JP5091694B2 (en) | Information processing system and information processing program | |
US20020054342A1 (en) | Image processing apparatus and method, and storage medium | |
JP4964219B2 (en) | Image processing apparatus, method, and program | |
JP2007152623A (en) | Image plotting controller, method for controlling plotting of image, memory medium, and program | |
JP5232728B2 (en) | Image forming apparatus | |
JP2005092737A (en) | Image processing device, image forming device and program thereof | |
JP2007164552A (en) | Memory controller and data transfer method | |
JP5414305B2 (en) | Information processing apparatus, virtual storage management method, and program | |
JP5047139B2 (en) | Image processing apparatus and program | |
JP2020110926A (en) | Image formation apparatus, control method of image formation apparatus, image formation system and program | |
US8732218B2 (en) | File access system | |
JP2008139968A (en) | Image processor and program | |
JP6078954B2 (en) | Image processing device |