JP2005322049A - Image processor and program - Google Patents

Image processor and program Download PDF

Info

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
Application number
JP2004139961A
Other languages
Japanese (ja)
Inventor
Masanori Onda
昌徳 恩田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2004139961A priority Critical patent/JP2005322049A/en
Publication of JP2005322049A publication Critical patent/JP2005322049A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To reduce a memory capacity required at the time of image processing in a pipe line system by preventing the useless assignment of a buffer. <P>SOLUTION: This processor is provided with a storage means, a control means for driving a module for image processing, an assignment means for assigning a storage region in a storage means to the module as a buffer before the module is driven by the control means and a writing means for writing the data generated by the module driven by the control means in the buffer when the memory capacity of the buffer is sufficient for the data, and for writing the data after the buffer is extended when the memory capacity of the buffer is not sufficient for the data. <P>COPYRIGHT: (C)2006,JPO&NCIPI

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.

特開平07−105020号公報Japanese Patent Laid-Open No. 07-105020

ところで、上記パイプライン方式の画像処理装置では、処理を完了したモジュールから次に処理を行うモジュールへ前者の処理結果であるデータを引渡す必要があり、このようなデータの引渡しは、例えば、以下のようにして行われる。すなわち、各モジュールの駆動に先立って、各モジュールにその処理結果であるデータを格納するための記憶領域(以下、バッファ)をメモリ内に割り当てておく。そして、各モジュールはその処理結果であるデータを自身に割り当てられているバッファへ書き込む一方、次に駆動されるモジュールはその直前に処理を完了したモジュールに割り当てられているバッファを参照しその処理結果を取得する。なお、モジュールにバッファを割り当てるとは、例えば図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 image reading apparatus 10 according to an embodiment of the present invention. As illustrated in FIG. 1, the image reading apparatus 10 includes a storage unit 110, an image reading unit 120, and an image processing unit 130. The image reading apparatus 10 performs predetermined image processing on image data corresponding to an image read by the image reading unit 120 by the image processing unit 130 and then writes the image data in the storage unit 110. In the present embodiment, the case where the image processing unit 130 compresses and encodes the image data according to a predetermined compression algorithm will be described. However, the processing performed by the image processing unit 130 is not limited to such compression processing. However, any process may be used as long as data with different data sizes is generated according to the contents of the input data. In this embodiment, the case where the processing result of the image processing unit 130 is stored in the storage unit 110 will be described. However, the processing result may be transmitted to another device via a communication network or the like. Of course, an image corresponding to the processing result may be formed and output on a recording material such as printing paper or an OHP (Over Head Projector) sheet.

記憶部110は、例えばハードディスクであり、画像処理部130から引渡されたデータを格納するためのものである。画像読み取り部120は、上述したような記録材上に形成された画像をライン単位で走査して読み取り、読み取った画像に対応する画像データを所定のデータ単位(本実施形態では、1ライン分のデータ)づつ画像処理部130へ引渡すものである。以下では、上記1ライン分の画像データを「単位データ」と呼ぶ。なお、本実施形態では、1ライン分の画像データを上記単位データとする場合について説明するが、複数ライン分の画像データや1ページ分の画像データを上記単位データとしても良いことは勿論である。   The storage unit 110 is, for example, a hard disk, and stores data delivered from the image processing unit 130. The image reading unit 120 scans and reads an image formed on the recording material as described above in units of lines, and reads image data corresponding to the read images in a predetermined data unit (in this embodiment, for one line). Data) one by one to the image processing unit 130. Hereinafter, the image data for one line is referred to as “unit data”. In this embodiment, a case where image data for one line is used as the unit data will be described. However, it is needless to say that image data for a plurality of lines or image data for one page may be used as the unit data. .

画像処理部130は、画像読み取り部120から引渡された単位データを所定の圧縮アルゴリズムにしたがって符号化し圧縮した後に記憶部110へ書き込むものである。この画像処理部130は、上記単位データを画像読み取り部120から受け取る処理、圧縮処理および記憶部110への書き込み処理を前述したパイプライン方式で行うものである。以下、図2を参照しつつ画像処理部130について詳細に説明する。   The image processing unit 130 encodes and compresses the unit data delivered from the image reading unit 120 according to a predetermined compression algorithm, and then writes the encoded unit data into the storage unit 110. The image processing unit 130 performs processing for receiving the unit data from the image reading unit 120, compression processing, and writing processing to the storage unit 110 by the pipeline method described above. Hereinafter, the image processing unit 130 will be described in detail with reference to FIG.

図2は、画像処理部130のハードウェア構成の一例を示すブロック図である。図2に示されているように、画像処理部130は、メモリ210と、制御部220と、データ入力モジュール230と、データ圧縮モジュール240と、データ書き込みモジュール250と、を有している。   FIG. 2 is a block diagram illustrating an example of a hardware configuration of the image processing unit 130. As shown in FIG. 2, the image processing unit 130 includes a memory 210, a control unit 220, a data input module 230, a data compression module 240, and a data writing module 250.

メモリ210は、例えばRAM(Random Access Memory)であり、上記パイプライン処理の実行に際してワークエリアとして利用されるものである。詳細については後述するが、このメモリ210内には、上記各モジュール間のデータ授受に利用されるバッファが確保される。   The memory 210 is, for example, a RAM (Random Access Memory), and is used as a work area when executing the pipeline processing. Although details will be described later, in the memory 210, a buffer used for data exchange between the modules is secured.

制御部220は、図2に示されているように、パイプライン制御手段220a、バッファ割り当て手段220bおよびバッファアクセス手段220cを含んでおり、上述したパイプライン処理を実現するためのものである。パイプライン制御手段220aは、上記単位データが画像読み取り部120から引渡される度に、上記3つのモジュールの駆動制御を行い、図3に示すように、データ入力モジュール230、データ圧縮モジュール240、データ書き込みモジュール250の順に駆動させるものである。   As shown in FIG. 2, the control unit 220 includes a pipeline control unit 220a, a buffer allocation unit 220b, and a buffer access unit 220c, and implements the above-described pipeline processing. Each time the unit data is delivered from the image reading unit 120, the pipeline control unit 220a performs drive control of the three modules, and as shown in FIG. 3, the data input module 230, the data compression module 240, the data The writing modules 250 are driven in this order.

バッファ割り当て手段220bは、パイプライン制御手段220aによってモジュールが駆動される前に、そのモジュールに予め定められた大きさのバッファを割り当てるものである。より詳細に説明すると、バッファ割り当て手段220bは、例えば、前述した管理テーブル(図7参照)の格納内容を更新することなどにより、予め定められた大きさの記憶領域をメモリ210内に確保しその記憶領域をバッファとして割り当てるものである。本実施形態では、バッファ割り当て手段220bは、上述した単位データのデータサイズと等しい大きさのバッファAをデータ入力モジュール230に割り当てる一方、データ圧縮モジュール240の平均の圧縮率に応じた大きさのバッファBをデータ圧縮モジュールに割り当てるものとする。ここで、圧縮率とは、データ圧縮モジュール240に入力されたデータのデータサイズに対する圧縮結果のデータサイズの100分率であり、内容の異なる複数のデータについて上記圧縮率を求め、その加算平均を求めることで上記平均の圧縮率を求めることができる。例えば、上記平均の圧縮率が50%であった場合には、バッファ割り当て手段220bは、上記単位データのデータサイズの半分の大きさで上記バッファBを割り当てる。なお、本実施形態では、各モジュールが駆動される前に、予め定められた大きさのバッファを各モジュールに割り当てる場合について説明したが、各モジュールに、割り当てるべきバッファの大きさをバッファ割り当て手段220bへ通知させ、その通知された大きさのバッファをバッファ割り当て手段220bに割り当てさせるとしても良いことは勿論である。   The buffer allocation unit 220b allocates a buffer having a predetermined size to the module before the module is driven by the pipeline control unit 220a. More specifically, the buffer allocation unit 220b secures a storage area of a predetermined size in the memory 210, for example, by updating the storage contents of the management table (see FIG. 7) described above. A storage area is allocated as a buffer. In this embodiment, the buffer allocating unit 220b allocates the buffer A having the same size as the data size of the unit data to the data input module 230, while the buffer having a size corresponding to the average compression rate of the data compression module 240. Let B be assigned to the data compression module. Here, the compression rate is a 100-percentage of the data size of the compression result with respect to the data size of the data input to the data compression module 240. The compression rate is obtained for a plurality of pieces of data having different contents, and the average of the compression rates is obtained. By calculating, the above average compression rate can be determined. For example, when the average compression rate is 50%, the buffer allocation unit 220b allocates the buffer B with a size that is half the data size of the unit data. In the present embodiment, a case has been described in which a buffer having a predetermined size is allocated to each module before each module is driven. However, the buffer allocation unit 220b determines the size of the buffer to be allocated to each module. Needless to say, the buffer allocation unit 220b may allocate the buffer having the notified size.

そして、バッファアクセス手段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 data input module 230 receives unit data delivered from the image reading unit 120 and writes the unit data to the buffer A by the buffer access means 220c. The data compression module 240 reads the unit data stored in the buffer A using the buffer access unit 220c, compresses it according to a predetermined compression algorithm, and writes the compression result to the buffer B by the buffer access unit 220c. Is. The data writing module 250 reads the data stored in the buffer B (that is, compressed unit data) by the buffer access means 220c and writes it to the storage unit 110. In the present embodiment, the case where each module forming the pipeline is mounted by hardware has been described. However, it goes without saying that each module may be mounted by software.

ここで、注目すべき点は、データ圧縮モジュール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 data compression module 240 changes according to the contents of the unit data input to the data compression module 240. In this embodiment, since the buffer B is allocated with a size that is irrelevant to the maximum value theoretically assumed for the data size of the compression result by the data compression module 240, the compression result does not fit in the buffer B. Can happen. Even in such a case, according to the buffer access means 220c, since the compression result is written after the buffer B is expanded, no particular problem occurs. In this embodiment, the case where the pipeline processing executed by the image processing unit 130 is configured in three stages will be described. However, the pipeline processing may be configured in two stages, and more than four stages. Of course, it may be configured by processing.

[B:動作]
次いで、本実施形態に係る画像読み取り装置10が行う動作のうち、その特徴を顕著に示す動作について図面を参照しつつ説明する。
[B: Operation]
Next, among the operations performed by the image reading apparatus 10 according to the present embodiment, operations that clearly show the features will be described with reference to the drawings.

(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 control unit 220 will be described with reference to FIG. FIG. 3 is a flowchart showing the flow of the control operation performed by the control unit 220. As shown in FIG. 3, the control unit 220 first performs an initialization process by the buffer allocation unit 220b (step SA1). Specifically, the buffer allocation unit 220b allocates the above-described buffer A to the data input module 230, and allocates the above-described buffer B to the data compression module 240.

以降、制御部220は、データ入力モジュール230、データ圧縮モジュール240およびデータ書き込みモジュール250をパイプライン制御手段220aによって順次駆動し(ステップSA2〜ステップSA4)、パイプライン処理を実行する。その結果、画像読み取り部120から画像処理部130へ引渡された単位データは、図5に示すデータフローにしたがってデータ入力モジュール230、データ圧縮モジュール240およびデータ書き込みモジュール250によって順次処理され、記憶部110へ書き込まれることになる。そして、データ入力モジュール230とデータ圧縮モジュール240は、各々の処理結果を各々に割り当てられているバッファへ書き込む際に、上述したバッファアクセス手段220cを用いてその書き込みを行う。以下、バッファアクセス手段220cが行う処理について図4を参照しつつ詳細に説明する。   Thereafter, the control unit 220 sequentially drives the data input module 230, the data compression module 240, and the data writing module 250 by the pipeline control unit 220a (Step SA2 to Step SA4), and executes pipeline processing. As a result, the unit data delivered from the image reading unit 120 to the image processing unit 130 is sequentially processed by the data input module 230, the data compression module 240, and the data writing module 250 according to the data flow shown in FIG. Will be written to. When the data input module 230 and the data compression module 240 write each processing result to the buffer assigned to each, the data input module 230 and the data compression module 240 perform the writing using the buffer access unit 220c described above. Hereinafter, processing performed by the buffer access unit 220c will be described in detail with reference to FIG.

(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 buffer access unit 220c writes data delivered from each module to a buffer assigned to the module. As shown in FIG. 4, the buffer access means 220c first compares the data size of the data delivered from each module with the free capacity of the write destination buffer, and determines whether the data fits in the buffer. It is determined whether or not (step SB1). Specifically, the buffer access means 220c determines that the data will fit if the data size of the data is less than or equal to the free capacity, and conversely determines that the data will not fit if the former is larger than the latter. .

ステップSB1の判定結果が“Yes”である場合には、バッファアクセス手段220cは、上記データを上記バッファへ書き込み(ステップSB2)、当該書き込み動作を終了する。逆に、ステップSB1の判定結果が“No”である場合には、バッファアクセス手段220cは、まず、上記データの先頭から上記空き容量に対応する部分だけを上記バッファへ書き込み(ステップSB3)、上記データのデータサイズを未書き込み部分のデータサイズに更新する(ステップSB4)。   If the determination result in step SB1 is “Yes”, the buffer access unit 220c writes the data to the buffer (step SB2), and ends the write operation. Conversely, if the determination result in step SB1 is “No”, the buffer access means 220c first writes only the portion corresponding to the free capacity from the top of the data to the buffer (step SB3). The data size of the data is updated to the data size of the unwritten portion (step SB4).

次いで、バッファアクセス手段220cは、メモリ210内で未使用の記憶領域を上記データサイズ分だけ確保して上記バッファを拡張し(ステップSB5)、ステップSB1以降の処理を繰り返し実行する。なお、本実施形態では、バッファの空き容量に不足が生じる場合には、その不足分だけ新たに記憶領域を割り当ててバッファを拡張する場合について説明したが、バッファの空き容量に不足が生じた場合には、所定のデータサイズ(例えば、バッファの初期サイズ)分だけ拡張するとしても良いことは勿論である。また、上記新たな記憶領域を割り当てる際には、図6(a)に示すように既存のバッファと隣接するように新たな記憶領域(図6にてハッチングで示した部分)を割り当てても良く、図6(b)に示すように既存のバッファとは離間して新たな記憶領域を割り当てても良い。後者のように、既存のバッファとは離間して新たな記憶領域を割り当てる場合であっても、以下に述べる要領でバッファアクセス手段220cを動作させれば、何ら問題は発生しない。すなわち、データをバッファへ書き込む際には、そのデータを適宜分割して既存のバッファと上記新たな記憶領域に書き込み、複数の記憶領域に跨るバッファからデータを読み出す際には、各記憶領域から読み出したデータを適宜連結して各モジュールに引渡すようにすれば良い。   Next, the buffer access unit 220c expands the buffer by securing an unused storage area in the memory 210 by the data size (step SB5), and repeatedly executes the processing after step SB1. In this embodiment, when there is a shortage in the free space of the buffer, the case has been described where the buffer is expanded by allocating a new storage area by the shortage, but when there is a shortage in the free space of the buffer Of course, the data may be expanded by a predetermined data size (for example, the initial size of the buffer). Further, when allocating the new storage area, a new storage area (a portion indicated by hatching in FIG. 6) may be allocated so as to be adjacent to the existing buffer as shown in FIG. As shown in FIG. 6B, a new storage area may be allocated apart from the existing buffer. Even if a new storage area is allocated apart from the existing buffer as in the latter case, there is no problem if the buffer access means 220c is operated in the manner described below. In other words, when writing data to the buffer, the data is appropriately divided and written to the existing buffer and the new storage area, and when reading data from the buffer across multiple storage areas, the data is read from each storage area. What is necessary is just to connect the data which were appropriately connected to each module.

以上に説明したように、本実施形態によれば、予め定められた大きさでバッファを割り当て、その空き容量に不足が生じた場合に、その不足分だけ記憶領域を確保しバッファを拡張するようにしたため、理論上想定し得る最大値で常にバッファを確保する場合に比較して、不必要に大きなバッファが確保されることはなく、パイプライン処理を実行する際に要するメモリ容量を削減させることが可能になるといった効果を奏する。   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 buffer access unit 220c characteristic of the present invention has been described. However, the same module as the buffer access unit 220c is used for each module. Of course, it is also possible to add functions. Similarly, it is of course possible that the same function as the buffer allocation means 220b is given to each module. Furthermore, data that uniquely identifies each buffer (for example, the start address of each buffer), data that represents the size of the buffer, access processing (data read / write processing) for the buffer, and processing that expands the buffer Of course, an object (hereinafter referred to as a buffer object) may be generated by encapsulating a program in which the procedure is described, and the buffer object may be mounted on the image processing apparatus so as to be linked to each module.

(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の構成例を示す図である。1 is a diagram illustrating a configuration example of an image reading apparatus 10 according to an embodiment of the present invention. 同画像読み取り装置10の画像処理部130の機能構成の一例を示す図である。3 is a diagram illustrating an example of a functional configuration of an image processing unit 130 of the image reading apparatus 10. FIG. 同画像処理部130が行うパイプライン制御動作の流れを示すフローチャートである。4 is a flowchart showing a flow of pipeline control operation performed by the image processing unit 130. 同画像処理部130が行うバッファ書き込み動作の流れを示すフローチャートである。4 is a flowchart showing a flow of a buffer writing operation performed by the image processing unit 130. 同画像処理部130内でのデータフローの一例を示す図である。3 is a diagram illustrating an example of a data flow in the image processing unit 130. FIG. バッファの拡張態様を説明するための図である。It is a figure for demonstrating the expansion aspect of a buffer. バッファの割り当て状況を管理する管理テーブルの一例を示す図である。It is a figure which shows an example of the management table which manages the allocation condition of a buffer.

符号の説明Explanation of symbols

10…画像読み取り装置、110…記憶部、120…画像読み取り部、130…画像処理部、210…メモリ、220…制御部、220a…パイプライン制御手段、220b…バッファ割り当て手段、220c…バッファアクセス手段、230…データ入力モジュール、240…データ圧縮モジュール、250…データ書き込みモジュール。 DESCRIPTION OF SYMBOLS 10 ... Image reading apparatus, 110 ... Memory | storage part, 120 ... Image reading part, 130 ... Image processing part, 210 ... Memory, 220 ... Control part, 220a ... Pipeline control means, 220b ... Buffer allocation means, 220c ... Buffer access means , 230... Data input module, 240... Data compression module, 250.

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.
JP2004139961A 2004-05-10 2004-05-10 Image processor and program Pending JP2005322049A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (13)

* Cited by examiner, † Cited by third party
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