JP2011054041A - Image processor - Google Patents
Image processor Download PDFInfo
- Publication number
- JP2011054041A JP2011054041A JP2009203918A JP2009203918A JP2011054041A JP 2011054041 A JP2011054041 A JP 2011054041A JP 2009203918 A JP2009203918 A JP 2009203918A JP 2009203918 A JP2009203918 A JP 2009203918A JP 2011054041 A JP2011054041 A JP 2011054041A
- Authority
- JP
- Japan
- Prior art keywords
- image processing
- intermediate image
- determined
- order
- data
- 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
Landscapes
- Logic Circuits (AREA)
- Image Processing (AREA)
- Microcomputers (AREA)
- Stored Programmes (AREA)
Abstract
Description
本発明は画像処理装置に関する。 The present invention relates to an image processing apparatus.
複写機などの画像処理装置では、画像処理機能をプログラマブル論理回路で実現することが行われている。近年、画像処理機能が複雑になっており、一つのプログラマブル論理回路では実現できない規模にまで複雑化してきている。
この問題に対する一つの解決手法として、異なる時間に異なる論理回路が実現されるようにプログラマブル論理回路の回路構成を処理の途中で再構成する手法が提案されている。この手法によると、プログラマブル論理回路の回路規模に制約がある場合でも、様々な処理を比較的高速に行うことができる。
In an image processing apparatus such as a copying machine, an image processing function is realized by a programmable logic circuit. In recent years, image processing functions have become complex and have become more complex to a scale that cannot be realized with a single programmable logic circuit.
As one solution to this problem, a technique has been proposed in which the circuit configuration of a programmable logic circuit is reconfigured during processing so that different logic circuits are realized at different times. According to this technique, even when the circuit scale of the programmable logic circuit is limited, various processes can be performed at a relatively high speed.
このようなプログラマブル論理回路の再構成に関する発明として、例えば特許文献1には、予め使用する回路情報と順番を保持する回路情報保持手段と、与えられた処理データから前記プログラマブル論理回路の再構成に使用する最初の回路情報を特定するとともに特定された回路情報から前記回路情報保持手段に保持されている順番に前記回路情報により前記プログラマブル論理回路を再構成して処理回路を構成し該処理回路に前記処理データの処理を行わせるインタフェース手段を有する情報処理システムの発明が提案されている。
As an invention relating to the reconfiguration of such a programmable logic circuit, for example, in
プログラマブル論理回路の回路構成を予め決定された設定順序に従って切り替える手法においては、画像処理機能を構成する複数の中間画像処理が直列に接続されるものや、処理単位が1ページ又は1ライン単位のような簡単な画像処理機能であれば、その設定順序を操作者が固定的に決定することは容易であるが、近年における画像処理機能の複雑化(例えば、中間画像処理が複雑に接続され且つ処理単位が中間画像処理毎に異なる、原稿の内容や原稿サイズ等によって処理回数が変わる等)に伴って、設定順序の決定が困難化してきている。 In the method of switching the circuit configuration of the programmable logic circuit in accordance with a predetermined setting order, a plurality of intermediate image processes constituting the image processing function are connected in series, or the processing unit is one page or one line unit. In the case of simple image processing functions, it is easy for the operator to determine the setting order in a fixed manner. However, in recent years, the complexity of image processing functions (for example, intermediate image processing has been complicatedly connected and processed). With the unit being different for each intermediate image processing, the number of times of processing changes depending on the content of the document, the size of the document, etc.), it has become difficult to determine the setting order.
本発明は、画像処理機能を実現するためにプログラマブル論理回路の回路構成を切り替える画像処理装置に関し、プログラマブル論理回路に対する回路情報の設定順序を効率的に決定することが可能な技術を提案することを目的して為されたものである。 The present invention relates to an image processing apparatus that switches a circuit configuration of a programmable logic circuit in order to realize an image processing function, and proposes a technique capable of efficiently determining a setting order of circuit information for the programmable logic circuit. It was made for the purpose.
第1の本発明は、プログラマブル論理回路に設定される画像処理毎の回路情報を記憶する記憶手段と、実行予定の複数の画像処理について、判定対象となる画像処理に応じた読出単位で前段のバッファ領域からデータ読出可能で且つ当該画像処理に応じた書込単位で後段のバッファ領域へデータ書込可能な場合に当該画像処理を実行可能であると判定して前段のバッファ領域のデータ読出位置及び後段のバッファ領域のデータ書込位置を前記読出単位及び前記書込単位に基づいて変化させて当該画像処理を再び判定対象とする一方、他の場合に当該画像処理を実行可能でないと判定して他の画像処理を判定対象に切り替える判定処理を繰り返して行い、実行可能であると判定された順に画像処理の実行順序を決定する決定手段と、実行予定の複数の画像処理を実行するために、前記決定手段により決定された画像処理の実行順序に従って、前記記憶手段に記憶されている該当する画像処理の回路情報をプログラマブル論理回路に設定する設定手段と、を備えたことを特徴とする画像処理装置である。 The first aspect of the present invention is a storage means for storing circuit information for each image processing set in the programmable logic circuit, and a plurality of image processing scheduled to be executed, in a reading unit corresponding to the image processing to be determined. Data reading position in the preceding buffer area when it is determined that the image processing can be executed when data can be read from the buffer area and data can be written in the subsequent buffer area in a writing unit corresponding to the image processing And changing the data writing position of the buffer area in the subsequent stage based on the reading unit and the writing unit to make the image processing a determination target again, while determining that the image processing cannot be executed in other cases. A determination unit that repeatedly performs a determination process for switching another image process to a determination target and determines an execution order of the image processes in an order determined to be executable; Setting means for setting the circuit information of the corresponding image processing stored in the storage means in the programmable logic circuit in accordance with the execution order of the image processing determined by the determination means in order to execute a number of image processing; An image processing apparatus comprising:
第2の本発明は、第1の本発明において、実行予定の複数の画像処理を、各画像処理の前後関係を維持して順序付けする順序付け手段を備え、前記決定手段は、前記順序付け手段による順序付け結果に従った順序で、判定対象の画像処理を切り替える、ことを特徴とする。 According to a second aspect of the present invention, in the first aspect of the present invention, there is provided ordering means for ordering a plurality of image processes to be executed while maintaining the order of the image processes, and the determining means is ordered by the ordering means. The image processing to be determined is switched in the order according to the result.
第1の本発明によると、画像処理で用いるバッファ領域の使用状況の予測に基づいて、
プログラマブル論理回路に対する回路情報の設定順序を決定することができる。
第2の本発明によると、回路情報の設定順序の決定を効率的に行うことができる。
According to the first aspect of the present invention, based on the prediction of the usage status of the buffer area used in image processing,
The setting order of circuit information for the programmable logic circuit can be determined.
According to the second aspect of the present invention, the order of setting circuit information can be determined efficiently.
本発明の一実施形態について、図面を参照して説明する。
図1には、本発明の一実施形態に係る画像処理装置の機能ブロックを例示してある。
本例の画像処理装置では、他の装置(例えば、各種情報の表示出力に用いられる液晶ディスプレイ等の表示装置、操作者による入力操作に用いられるタッチパネルや操作キー等の入力装置、画像データに基づいて出力画像を形成して用紙等の記録媒体に記録する画像形成装置など)との間でデータ入出力を行うためのインターフェースである入出力IF1、画像処理機能を構成する複数の中間画像処理毎の回路情報が順番に設定されて当該画像処理機能を実現するプログラマブル集積回路(プログラマブル論理回路)2、画像処理機能に関する各種データを記憶するメモリ3、プログラマブル集積回路2に対する回路情報の設定に関する各種処理を実行するCPU4、といった各機能部が、バス5を介して接続されている。
An embodiment of the present invention will be described with reference to the drawings.
FIG. 1 illustrates functional blocks of an image processing apparatus according to an embodiment of the present invention.
In the image processing apparatus of this example, other devices (for example, a display device such as a liquid crystal display used for display output of various information, an input device such as a touch panel and operation keys used for an input operation by an operator, and image data) An input / output IF1 that is an interface for performing data input / output with an image forming apparatus that forms an output image and records the output image on a recording medium such as a sheet), and a plurality of intermediate image processes constituting an image processing function Circuit information is set in order, a programmable integrated circuit (programmable logic circuit) 2 that realizes the image processing function, a
本例の画像処理装置による処理の概要について、図2〜図4を参照して説明する。
図3には、本例の画像処理装置により実行される画像処理機能を例示してある。
図3において、丸印は画像処理機能を構成する各中間画像処理F(Function)を示し、四角印は中間画像処理Fの処理対象又は処理結果の画像データDが格納されるバッファB(Buffer)を示し、矢印はバッファBと中間画像処理Fとの間における画像データDの入出力ストリームS(Stream)を示している。すなわち、中間画像処理F及びバッファBをストリームSで結んで作業順序や依存関係を表すことで、画像処理機能の開始から終了までの流れを表現している。なお、中間画像処理F、バッファB、ストリームSによって構成されたものをPipelineと呼ぶ。
An outline of processing by the image processing apparatus of this example will be described with reference to FIGS.
FIG. 3 illustrates an image processing function executed by the image processing apparatus of this example.
In FIG. 3, a circle indicates each intermediate image process F (Function) constituting the image processing function, and a square mark indicates a buffer B (Buffer) in which image data D as a processing target or a process result of the intermediate image process F is stored. The arrow indicates the input / output stream S (Stream) of the image data D between the buffer B and the intermediate image processing F. That is, the flow from the start to the end of the image processing function is expressed by connecting the intermediate image processing F and the buffer B with the stream S to represent the work order and the dependency. Note that what is constituted by the intermediate image processing F, the buffer B, and the stream S is referred to as Pipeline.
図3に示す画像処理機能は、モノクロ変換処理及び縮小処理の2つの中間画像処理Fと3つのバッファ(本例ではページバッファ)を有しており、処理対象として入力された画像データD1を第1のバッファB1に格納し、第1のバッファB1に格納されている画像データD1を第1の中間画像処理F1によりモノクロ変換処理して第2のバッファB2に格納し、第2のバッファB2に格納されているモノクロ変換処理後の画像データD2を第2の中間画像処理F2により縮小処理して第3のバッファB3に格納し、第3のバッファB3に格納されているモノクロ変換及び縮小処理後の画像データD3を処理結果として出力するものである。 The image processing function shown in FIG. 3 has two intermediate image processes F of monochrome conversion processing and reduction processing and three buffers (page buffers in this example), and the image data D1 input as a processing target The image data D1 stored in the first buffer B1 is subjected to monochrome conversion processing by the first intermediate image processing F1 and stored in the second buffer B2, and stored in the second buffer B2. The stored image data D2 after the monochrome conversion processing is reduced by the second intermediate image processing F2, stored in the third buffer B3, and after the monochrome conversion and reduction processing stored in the third buffer B3. The image data D3 is output as a processing result.
本例の画像処理装置では、画像処理機能を実行する前に、図4に例示するような、画像処理機能を構成する各中間画像処理Fの実行順序を表す実行順序リスト(回路情報設定順序リスト)を生成しておき、画像処理機能の実行時において、実行順序リストに従ってプログラマブル集積回路2の回路構成を切り替えることで画像処理機能を実現している。
In the image processing apparatus of this example, before executing the image processing function, an execution order list (circuit information setting order list) representing the execution order of each intermediate image processing F constituting the image processing function as illustrated in FIG. ) And the image processing function is realized by switching the circuit configuration of the programmable
すなわち、図5に示すように、(1)実行順序リストにおける先頭(1番目)の中間画像処理Fであるモノクロ変換処理を実現するための回路構成を表すモノクロ変換回路情報31をメモリ3の回路情報格納領域から読み出してプログラマブル集積回路2に設定し、(2)設定した回路構成でプログラマブル集積回路2を動作させてモノクロ変換処理を実行し、(3)実行順序リストにおける次(2番目)の中間画像処理Fである縮小処理を実現するための回路構成を表す縮小回路情報32をメモリ3の回路情報格納領域から読み出してプログラマブル集積回路2に設定し、(4)設定した回路構成でプログラマブル集積回路2を動作させて縮小処理を実行する。
That is, as shown in FIG. 5, (1) monochrome
図2には、本例の画像処理装置による処理フローの概要を例示してある。
本例に係る画像処理装置では、画像処理機能を実行する前に、まず、画像処理機能を構成する複数の中間画像処理について巡回経路リストを作成し(ステップS1)、巡回経路リストに従って各中間画像処理の実行順序リストを作成する(ステップS2)。
そして、画像処理機能の実行時には、メモリ3に記憶されている各中間画像処理の回路情報を実行順序リストに従ってプログラマブル集積回路2に設定し(ステップS3)、プログラマブル集積回路2を動作させて中間画像処理を実行することを(ステップS4)、実行順序リスト中の全ての回路情報が実行されるまで繰り返す(ステップS5)。
なお、本例では、画像処理機能の各中間画像処理やその処理に用いるバッファ等の構成要素及びその依存関係等を、処理対象の画像や処理内容等の情報に基づいて決定しており、当該決定された内容を示す画像処理構成情報に基づいて、上記の処理(ステップS1〜ステップS5)を行っているが、利用者から画像処理構成情報を受け付けて、当該受け付けた画像処理構成情報に基づいて、上記の処理を行うようにしてもよい。
FIG. 2 illustrates an outline of a processing flow by the image processing apparatus of this example.
In the image processing apparatus according to this example, before executing the image processing function, first, a cyclic route list is created for a plurality of intermediate image processes constituting the image processing function (step S1), and each intermediate image is generated according to the cyclic route list. A process execution order list is created (step S2).
When executing the image processing function, the circuit information of each intermediate image processing stored in the
In this example, each intermediate image processing of the image processing function, components such as a buffer used for the processing, and dependency thereof are determined based on information such as processing target images and processing contents, and the like. Based on the image processing configuration information indicating the determined content, the above processing (steps S1 to S5) is performed. However, the image processing configuration information is received from the user, and based on the received image processing configuration information. Thus, the above processing may be performed.
まず、巡回経路リストの作成について説明する。
巡回経路リストは、画像処理機能を構成するPipeline内の各中間画像処理を画像データが流れる順番に並べ替えて生成される。すなわち、各中間画像処理の前後関係を維持して順序付けしたものが巡回経路リストである。
本例では、適当な中間画像処理Fを基点として、前工程の中間画像処理は1以上、後工程の中間画像処理は1以下となるように全ての中間画像処理について優先度を決定して順序付けする。具体的には、基点となる中間画像処理から前工程の中間画像処理を探索するステップと、基点となる中間画像処理から後工程の中間画像処理を探索するステップの2つのステップにおいて、“前工程の中間画像処理の優先度”>“基点の中間画像処理の優先度”>“後工程の中間画像処理の優先度”となるように優先度を求め、各中間画像処理Fを優先度が高い順に巡回経路リストへ登録していく。
First, creation of a cyclic route list will be described.
The cyclic route list is generated by rearranging the intermediate image processes in Pipeline constituting the image processing function in the order in which the image data flows. That is, the cyclic route list is an order that maintains the order of each intermediate image process and is ordered.
In this example, with the intermediate image processing F as a base point, priority is determined for all intermediate image processing so that the intermediate image processing in the previous process is 1 or more and the intermediate image processing in the subsequent process is 1 or less. To do. Specifically, in the two steps of searching for the intermediate image processing of the previous step from the intermediate image processing serving as the base point and searching for the intermediate image processing of the subsequent step from the intermediate image processing serving as the base point, Priority of intermediate image processing ”>“ Priority of intermediate image processing of base point ”>“ Priority of intermediate image processing of subsequent process ”is obtained, and each intermediate image processing F has a high priority. It registers in the cyclic route list in order.
図6に例示する画像処理機能を参考にして、各中間画像処理に優先度を決定して順序付けする処理を説明する。
図6では、丸印で示す6個の中間画像処理F(A)〜F(F)と、四角印で示す9個のバッファB(1)〜B(9)と、矢印で示す16個の入出力ストリームSr(1)〜Sr(8)及びSw(1)〜Sw(8)によってPipelineが構成されている。
なお、各バッファB(1)〜B(9)は、画像データを1ページ単位で格納(つまり、画像データの全部を格納)するページバッファ(PageBuffer)と、画像データをNライン単位(Nは1以上の整数)で格納(つまり、画像データの一部を格納)するバンドバッファ(BandBuffer)とに分類され、図6では、ページバッファを単純な四角印、バンドバッファを二重線の四角印で表している。すなわち、本例の画像処理機能は、ページバッファB(1),B(5),B(6),B(8),B(9)と、バンドバッファB(2),B(3),B(4),B(7)を有する。
With reference to the image processing function illustrated in FIG. 6, a description will be given of a process for determining and ordering priority for each intermediate image process.
In FIG. 6, six intermediate image processes F (A) to F (F) indicated by circles, nine buffers B (1) to B (9) indicated by square marks, and 16 intermediate image processes indicated by arrows. Pipeline is composed of the input / output streams Sr (1) to Sr (8) and Sw (1) to Sw (8).
Each of the buffers B (1) to B (9) stores a page buffer (PageBuffer) for storing image data in units of one page (that is, stores all of the image data), and image data in units of N lines (N is a value for N). In FIG. 6, the page buffer is a simple square mark, and the band buffer is a double-line square mark. It is represented by That is, the image processing function of this example includes page buffers B (1), B (5), B (6), B (8), B (9) and band buffers B (2), B (3), B (4), B (7).
また、各入出力ストリームSr(1)〜Sr(8)及びSw(1)〜Sw(8)において、Sr(1)〜Sr(8)は、バッファBから中間画像処理Fへのデータの流れを示す入力ストリーム(ReadStream)であり、Sw(1)〜Sw(8)は、中間画像処理FからバッファBへのデータの流れを示す出力ストリーム(WriteStream)である。
また、図6では、各入出力ストリームに対して、その入出力ストリームにおけるデータ入出力の単位(読出単位及び書込単位)を付記してあり、例えば、入力ストリームSr(1)ではページバッファB(1)から中間画像処理F(A)へ1ライン単位で画像データが読み出され、出力ストリームSw(1)では中間画像処理F(A)からバンドバッファB(2)へ2ライン単位で画像データが書き込まれる。
In each of the input / output streams Sr (1) to Sr (8) and Sw (1) to Sw (8), Sr (1) to Sr (8) are data flows from the buffer B to the intermediate image processing F. And Sw (1) to Sw (8) are output streams (WriteStream) indicating the flow of data from the intermediate image processing F to the buffer B.
In FIG. 6, the unit of data input / output (reading unit and writing unit) in the input / output stream is appended to each input / output stream. For example, in the input stream Sr (1), the page buffer B Image data is read in units of one line from (1) to the intermediate image processing F (A). In the output stream Sw (1), images are output in units of two lines from the intermediate image processing F (A) to the band buffer B (2). Data is written.
各中間画像処理に優先度を決定して順序付けする処理は、本例では、まず、任意の1つの中間画像処理を基点として選定し、基点より前工程の中間画像処理は+1以上、基点より後工程の中間画像処理は−1以下となるように、関連する全ての中間画像処理の優先度を算出する。
優先度の算出は、(1)前工程巡回、(2)後工程巡回の2つのステップで行う。
In this example, the process for determining and ordering the priority of each intermediate image process is as follows. First, any one of the intermediate image processes is selected as a base point, and the intermediate image process before the base point is +1 or more and after the base point. Priorities of all related intermediate image processes are calculated so that the intermediate image process of the process is −1 or less.
The priority is calculated in two steps: (1) Pre-process tour and (2) Post-process tour.
(1)前工程巡回
基点の中間画像処理を対象として、当該対象より1つ前工程の中間画像処理を特定してその優先度を算出し、当該前工程の中間画像処理を次の対象に切り替えて、更に1つ前工程の中間画像処理を特定してその優先度を算出することを、前工程の中間画像処理が無くなるまで繰り返す。このとき、「前工程の中間画像処理の優先度が決定していない」又は「前工程の中間画像処理の優先度≦対象の中間画像処理の優先度」の場合は、前工程の中間画像処理の優先度=対象の中間画像処理の優先度+1とする。
(1) Pre-process patrol For intermediate image processing at the base point, the intermediate image processing of the previous step is specified from the target, the priority is calculated, and the intermediate image processing of the previous step is switched to the next target Then, the process of specifying the intermediate image process of the previous process and calculating the priority thereof is repeated until the intermediate image process of the previous process is eliminated. At this time, if “priority of intermediate image processing in the previous step has not been determined” or “priority of intermediate image processing in the previous step ≦ priority of target intermediate image processing”, intermediate image processing in the previous step Priority = Priority of target intermediate
(2)後工程巡回
基点の中間画像処理を対象として、当該対象より1つ後工程の中間画像処理を特定してその優先度を算出し、当該後工程の中間画像処理を次の対象に切り替えて、更に1つ後工程の中間画像処理を特定してその優先度を算出することを、後工程の中間画像処理が無くなるまで繰り返す。このとき、「後工程の中間画像処理の優先度が決定していない」又は「後工程の中間画像処理の優先度≧対象の中間画像処理の優先度」の場合は、後工程の中間画像処理の優先度=対象の中間画像処理の優先度−1とする。
そして、(1)前工程巡回、(2)後工程巡回により全ての中間画像処理の優先度を算出した後に、各中間画像処理を優先度が高い順に巡回順序リストへ登録する。
(2) Post-process patrol For intermediate image processing at the base point, the intermediate image processing of the next post-process is specified from the target, its priority is calculated, and the intermediate image processing of the post-process is switched to the next target Then, the process of specifying the intermediate image process in the next subsequent process and calculating the priority thereof is repeated until there is no intermediate image process in the subsequent process. At this time, if “intermediate image processing priority in the post-process is not determined” or “priority of intermediate image processing in the post-process ≧ priority of target intermediate image processing”, intermediate image processing in the post-process Priority = Priority of target intermediate image processing−1.
Then, after calculating the priority of all intermediate image processing by (1) pre-process tour and (2) post-process tour, each intermediate image process is registered in the cyclic order list in descending order of priority.
図7には、図6のPipelineで表される画像処理機能の各中間画像処理について優先度を算出する過程を例示してある。なお、図7中の丸印は、図6中の丸印(中間画像処理F(A)〜F(F))に対応している。また、図7中の四角印(対象Buffer欄)は、図6中の四角印(バッファB(1)〜B(9))に対応しており、前工程又は後工程の中間画像処理の特定に用いるバッファを示すものである。
図7では、全ての中間画像処理F(A)〜F(F)の優先度を0に初期化した後に(処理No.1)、基点の中間画像処理をF(D)として、その前工程に位置する全ての中間画像処理F(A)〜F(C)について前記の(1)前工程巡回の処理を行って優先度を算出し(処理No.2〜8)、後工程に位置する全ての中間画像処理F(E)、F(F)について前記の(2)後工程巡回の処理を行って優先度を算出している(処理No.9〜12)。
この結果、中間画像処理F(A)〜F(F)の優先度は、それぞれ、+3、+2、+1、0、−1、−1、となり、中間画像処理F(A)〜F(F)はその優先度が高い順に巡回順序リストへ登録される。なお、優先度が同じ値になった場合における巡回順序リストへの登録順は、任意としてもよく、他の条件により決定してもよい。
FIG. 7 illustrates a process of calculating the priority for each intermediate image process of the image processing function represented by Pipeline in FIG. Note that the circles in FIG. 7 correspond to the circles in FIG. 6 (intermediate image processing F (A) to F (F)). Further, the square mark (target Buffer field) in FIG. 7 corresponds to the square mark (buffers B (1) to B (9)) in FIG. 6, and specifies the intermediate image processing in the previous process or the subsequent process. It shows the buffer used for.
In FIG. 7, after the priority of all intermediate image processing F (A) to F (F) is initialized to 0 (processing No. 1), the intermediate image processing at the base point is set to F (D), and the preceding process For all the intermediate image processes F (A) to F (C) located at the position (1), the priority is calculated by performing the process in the previous process (process Nos. 2 to 8) and located in the subsequent process. For all the intermediate image processes F (E) and F (F), the priority is calculated by performing the above-mentioned (2) post-process cyclic processing (process Nos. 9 to 12).
As a result, the priorities of the intermediate image processes F (A) to F (F) are +3, +2, +1, 0, −1, and −1, respectively, and the intermediate image processes F (A) to F (F). Are registered in the cyclic order list in descending order of priority. Note that the order of registration in the cyclic order list when the priorities have the same value may be arbitrary or may be determined according to other conditions.
次に、実行順序リストの作成について説明する。
なお、各バッファについて、バッファ領域の大きさを表すパラメータBufferSizeX(X方向サイズ)及びBufferSizeY(Y方向サイズ)が設定されていると共に、バッファ領域の先頭アドレスを表すパラメータBufferAddressなどが設定されているものとする。また、各入出力ストリームについて、対応する中間画像処理による1回の処理単位に必要なデータ(以下、Swathという)の大きさを表すパラメータSwathSizeX(X方向サイズ)及びSwathSizeY(Y方向サイズ)が設定され、各バッファに関し、次に画像データを読み出す位置及び書き込む位置を示すパラメータReadPosition及びWritePositionが設定されているものとする。
Next, creation of an execution order list will be described.
For each buffer, parameters BufferSizeX (size in the X direction) and BufferSizeY (size in the Y direction) representing the size of the buffer area are set, and parameters BufferAddress and the like representing the head address of the buffer area are set. And In addition, for each input / output stream, parameters SwathSizeX (X direction size) and SwathSizeY (Y direction size) representing the size of data (hereinafter referred to as Swath) necessary for one processing unit by the corresponding intermediate image processing are set. It is assumed that parameters ReadPosition and WritePosition indicating the position where image data is read next and the position where data is written are set for each buffer.
本例では、以下の(処理1)〜(処理8)を行って、実行順序リストを作成する。
(処理1)各バッファのReadPosition、WritePositionを初期化する。具体的には、図8(a)に例示するように、バッファ領域の先頭アドレスをReadPosition及びWritePositionの初期値とする。なお、Pipelineの先頭に位置するバッファ(例えば、図6におけるバッファB(1))のように、ページバッファで且つ画像データの書込元の中間画像処理Fが存在しない場合には、図8(b)に例示するように、WritePositionをImageSizeY(処理対象となる画像データのY方向サイズ)分だけ加算した位置を初期値とする。
In this example, the following (Process 1) to (Process 8) are performed to create an execution order list.
(Process 1) Initialize ReadPosition and WritePosition of each buffer. Specifically, as illustrated in FIG. 8A, the top address of the buffer area is set as the initial value of ReadPosition and WritePosition. In the case where there is no intermediate image processing F that is a page buffer and the image data writing source, such as a buffer located at the beginning of Pipeline (for example, buffer B (1) in FIG. 6), FIG. As illustrated in b), a position obtained by adding WritePosition by an amount corresponding to ImageSizeY (Y-direction size of image data to be processed) is set as an initial value.
(処理2)巡回順序リストに登録されている中間画像処理の順序に従って、以下の(処理3)〜(処理8)を繰り返す。
(処理3)巡回順序リストの先頭の中間画像処理を対象とする。
(Process 2) The following (Process 3) to (Process 8) are repeated in accordance with the order of intermediate image processing registered in the cyclic order list.
(Process 3) The first intermediate image process in the cyclic order list is targeted.
(処理4)対象の中間画像処理が実行可能な状態であるか否かをSwathを考慮して判定し、実行可能な状態であると判定された場合には(処理5)へ移行し、実行不可能な状態であると判定された場合には、巡回順序リストにおける次の中間画像処理を対象として再度(処理4)を行う。
対象の中間画像処理が実行可能な状態であるか否かの判定は、以下の〔条件4−1〕及び〔条件4−2〕に基づいて行う。
〔条件4−1〕は入力ストリームについての判定条件であり、データ読出元のバッファから画像データを読出可能であるかを判定する。具体的には、WritePosition<ReadPosition+ReadSwathSize(読出側のSwathSize(読出単位))の場合に実行不可能であると判定する。すなわち、図9(a)に例示するように、ReadPositionにReadSwathSizeを加えた位置(読み取り対象データの終端位置)より前にWritePositionが位置する場合に実行不可能と判定される。
〔条件4−2〕は出力ストリームについての判定条件であり、データ書込先のバッファへ画像データを書込可能であるか(データ書込先の位置に未処理の画像データが残っていないか)を判定する。具体的には、WritePosition+WriteSwathSize(書込側のSwathSize(書込単位))−ReadPosition>BufferSizeYの場合に実行不可能であると判定する。すなわち、図9(b)に例示するように、バッファ領域の末尾に書き込んだ後は次の書込先が先頭に戻るリングバッファをバンドバッファとして用いる場合において、WritePositionからReadPositionを差し引いた値(未処理の画像データ量)にWriteSwathSizeを加えた値(未処理の画像データ量と書込データ量の合計値)よりBufferSizeYが小さい場合に実行不可能と判定される。
(Process 4) Whether or not the target intermediate image process is executable is determined in consideration of Swath. If it is determined that the target intermediate image process is executable, the process proceeds to (Process 5) and executed. If it is determined that the state is not possible, the next intermediate image processing in the cyclic order list is performed again (processing 4).
Whether or not the target intermediate image processing is executable is determined based on the following [Condition 4-1] and [Condition 4-2].
[Condition 4-1] is a determination condition for the input stream, and determines whether image data can be read from the data reading source buffer. Specifically, if WritePosition <ReadPosition + ReadSwathSize (reading-side SwathSize (reading unit)), it is determined that execution is impossible. That is, as illustrated in FIG. 9A, it is determined that execution is not possible when WritePosition is positioned before the position where ReadSwatSize is added to ReadPosition (end position of the data to be read).
[Condition 4-2] is a determination condition for the output stream. Whether image data can be written to the data write destination buffer (whether unprocessed image data remains at the data write destination position). ). More specifically, it is determined that execution is not possible when WritePosition + WriteSwapSize (Writing SwahSize (Writing Unit)) − ReadPosition> BufferSizeY. That is, as illustrated in FIG. 9B, when a ring buffer in which the next writing destination returns to the top after writing at the end of the buffer area is used as a band buffer, a value obtained by subtracting ReadPosition from WritePosition (not yet) If BufferSizeY is smaller than the value obtained by adding WriteSwizeSize to the processing image data amount (the total value of the unprocessed image data amount and the write data amount), it is determined that execution is impossible.
(処理5)対象の中間画像処理を実行順序リストへ登録する。また、その中間画像処理について、読出元のバッファにおけるデータ読出位置のアドレスを(ReadPosition%BufferSizeY)×BufferSizeX+BufferAddressにて算出し、書込先のバッファにおけるデータ書込位置のアドレスを(WritePosition%BufferSizeY)×BufferSizeX+BufferAddressにて算出して、これらのアドレス情報を対象の中間画像処理に関連付けて実行順序リストへ登録する。 (Process 5) Register the target intermediate image process in the execution order list. For the intermediate image processing, the address of the data reading position in the reading source buffer is calculated by (ReadPosition% BufferSizeY) × BufferSizeX + BufferAddress, and the address of the data writing position in the writing destination buffer is (WritePosition% BufferSizeY) × It is calculated by BufferSizeX + BufferAddress, and these pieces of address information are registered in the execution order list in association with the target intermediate image processing.
(処理6)対象の中間画像処理に対する入力ストリームについてのReadPositionをSwathSizeY分だけ加算すると共に、出力ストリームについてのWritePositionをSwathSizeY分だけ加算する。 (Processing 6) The ReadPosition for the input stream for the target intermediate image process is added by SwatSizeY, and the WritePosition for the output stream is added by SwathSizeY.
(処理7)対象の中間画像処理が処理対象の画像データの全体に対して処理を終えたか否かを判定し、処理を終えたと判定された場合には、対象の中間画像処理を巡回経路リストから削除する。
対象の中間画像処理が処理対象の画像データの全体に対して処理を終えたか否かの判定は、以下の〔条件7−1〕及び〔条件7−2〕に基づいて行う。
〔条件7−1〕は入力ストリームについての判定条件であり、データ読出元のバッファから画像データの全てを読み出し済みであるかを判定する。すなわち、図10(a)に例示するように、ReadPositionがImageSizeYを超えている場合に読み出し済みであると判定する。
〔条件7−2〕は出力ストリームについての判定条件であり、データ書込先のバッファへ画像データの全てを書き込み済みであるかを判定する。すなわち、図10(a)に例示するように、WritePositionがImageSizeYを超えている場合に書き込み済みであると判定する。
(Processing 7) It is determined whether or not the target intermediate image processing has been completed for the entire processing target image data. If it is determined that the processing has been completed, the target intermediate image processing is determined to be a cyclic path list. Delete from.
The determination as to whether or not the target intermediate image processing has been completed for the entire processing target image data is made based on the following [Condition 7-1] and [Condition 7-2].
[Condition 7-1] is a determination condition for the input stream, and determines whether all of the image data has been read from the data read source buffer. That is, as illustrated in FIG. 10A, when ReadPosition exceeds ImageSizeY, it is determined that reading has been completed.
[Condition 7-2] is a determination condition for the output stream, and determines whether all of the image data has been written in the data write destination buffer. That is, as illustrated in FIG. 10A, when WritePosition exceeds ImageSizeY, it is determined that writing has been completed.
(処理8)巡回経路リストが空か否かを判定し、空であると判定された場合には実行順序リストの作成処理を終了し、空でないと判定された場合には(処理3)に戻る。 (Processing 8) It is determined whether or not the cyclic route list is empty. If it is determined that it is empty, the execution order list creation process is terminated. If it is determined that it is not empty, the process proceeds to (Processing 3). Return.
以上のように、本例の画像処理装置では、画像処理機能を実行する前に、その画像処理機能を構成する複数の中間画像処理についての巡回経路リスト作成処理及び実行順序リスト作成処理を行っている。
巡回経路リスト作成処理では、各中間画像処理の前後関係を維持して順序付けした巡回経路リストを作成する。
実行順序リスト作成処理では、巡回経路リストに従った順序で判定対象の中間画像処理を切り替えながら以下の処理を行う。判定対象となる中間画像処理に応じた読出単位で前段のバッファ領域からデータ読出可能で且つ当該中間画像処理に応じた書込単位で後段のバッファ領域へデータ書込可能な場合には、当該中間画像処理を実行可能であると判定して、前段のバッファ領域のデータ読出位置及び後段のバッファ領域のデータ書込位置を前記読出単位及び前記書込単位に基づいて変化させて当該中間画像処理を再び判定対象とする。一方、他の場合には、当該中間画像処理を実行可能でないと判定して、他の中間画像処理を判定対象に切り替える。これらの処理を全ての中間画像処理が実行済みと判断されるまで繰り返し行い、実行可能であると判定された順に従って中間画像処理の実行順序を決定して、その決定時のバッファ情報(データ読出位置やデータ書込位置などのアドレス情報)と共に実行順序リストに登録する。つまり、実行順序リスト作成処理では、中間画像処理の進行に伴うバッファ情報の変化を計算しながら中間画像処理の可否を判断し、中間画像処理の実行順序を決定している。
そして、画像処理機能の実行時には、実行順序リストに登録されている順に中間画像処理の回路情報及びバッファ情報をプログラマブル集積回路2に設定して中間画像処理を実行させることを、実行順序リストが空になるまで繰り返す。
As described above, in the image processing apparatus of the present example, before executing the image processing function, the cyclic route list creation process and the execution order list creation process for the plurality of intermediate image processes constituting the image processing function are performed. Yes.
In the cyclic route list creation process, an ordered cyclic route list is created while maintaining the context of each intermediate image process.
In the execution order list creation processing, the following processing is performed while switching the intermediate image processing to be determined in the order according to the cyclic route list. When data can be read from the preceding buffer area in the reading unit corresponding to the intermediate image processing to be determined and can be written into the subsequent buffer area in the writing unit corresponding to the intermediate image processing, the intermediate It is determined that the image processing can be executed, and the intermediate image processing is performed by changing the data reading position of the preceding buffer area and the data writing position of the subsequent buffer area based on the reading unit and the writing unit. It is determined again. On the other hand, in other cases, it is determined that the intermediate image processing cannot be executed, and the other intermediate image processing is switched to a determination target. These processes are repeated until it is determined that all the intermediate image processes have been executed, and the execution order of the intermediate image processes is determined according to the order determined to be executable, and the buffer information (data read out) at the time of the determination is determined. Address information such as position and data writing position) and the execution order list. That is, in the execution order list creation processing, whether or not intermediate image processing is possible is determined while calculating changes in buffer information accompanying the progress of intermediate image processing, and the execution order of intermediate image processing is determined.
When executing the image processing function, the execution order list is empty to set the circuit information and buffer information of the intermediate image processing in the programmable
なお、本例の画像処理装置では、上記の巡回経路リスト作成処理や実行順序リスト作成処理などの機能に関するプログラムをメモリ3に保持しており、このプログラムをCPU4により実行させることで、巡回経路リスト作成処理や実行順序リスト作成処理などの機能を画像処理装置のコンピュータ上に実現しているが、このようなソフトウェア構成により実現する態様に限定するものではなく、各機能を専用のハードウエアモジュールで実現するようにしてもよい。
Note that in the image processing apparatus of this example, a program relating to functions such as the above-described cyclic route list creation processing and execution order list creation processing is held in the
また、上記の説明における画像処理装置は、1台のコンピュータにより実現されているが、各機能部を複数台のコンピュータに分散して設けて画像処理装置を実現してもよい。
また、上記の説明におけるプログラムは、例えば、当該プログラムを記憶したCD−ROM等の外部記憶媒体から読み込む形式や、通信回線等を介して受信する形式などにより、画像処理装置のコンピュータに設定される。
また、これまで説明した画像処理装置の構成、処理内容、処理手順等は一例に過ぎず、本発明を上記の説明内容に限定するものではない。
In addition, the image processing apparatus in the above description is realized by a single computer, but the image processing apparatus may be realized by distributing each functional unit to a plurality of computers.
In addition, the program in the above description is set in the computer of the image processing apparatus by, for example, a format read from an external storage medium such as a CD-ROM storing the program or a format received via a communication line. .
Further, the configuration, processing contents, processing procedures, and the like of the image processing apparatus described so far are merely examples, and the present invention is not limited to the above description contents.
1:入出力I/F、 2:プログラマブル集積回路、 3:メモリ、 4:CPU、 5:バス 1: Input / output I / F, 2: Programmable integrated circuit, 3: Memory, 4: CPU, 5: Bus
Claims (2)
実行予定の複数の画像処理について、判定対象となる画像処理に応じた読出単位で前段のバッファ領域からデータ読出可能で且つ当該画像処理に応じた書込単位で後段のバッファ領域へデータ書込可能な場合に当該画像処理を実行可能であると判定して前段のバッファ領域のデータ読出位置及び後段のバッファ領域のデータ書込位置を前記読出単位及び前記書込単位に基づいて変化させて当該画像処理を再び判定対象とする一方、他の場合に当該画像処理を実行可能でないと判定して他の画像処理を判定対象に切り替える判定処理を繰り返して行い、実行可能であると判定された順に画像処理の実行順序を決定する決定手段と、
実行予定の複数の画像処理を実行するために、前記決定手段により決定された画像処理の実行順序に従って、前記記憶手段に記憶されている該当する画像処理の回路情報をプログラマブル論理回路に設定する設定手段と、
を備えたことを特徴とする画像処理装置。 Storage means for storing circuit information for each image processing set in the programmable logic circuit;
For multiple image processing scheduled to be executed, data can be read from the previous buffer area in the reading unit corresponding to the image processing to be determined, and data can be written to the subsequent buffer area in the writing unit corresponding to the image processing. In this case, it is determined that the image processing can be executed, and the data reading position of the preceding buffer area and the data writing position of the succeeding buffer area are changed based on the reading unit and the writing unit. While the process is set as the determination target again, it is determined that the image processing cannot be executed in other cases, and the determination process for switching the other image processing to the determination target is repeatedly performed, and the images are determined in the order determined to be executable. A determination means for determining the execution order of the processes;
Setting to set the circuit information of the corresponding image processing stored in the storage means in the programmable logic circuit in accordance with the execution order of the image processing determined by the determination means in order to execute a plurality of image processing scheduled to be executed Means,
An image processing apparatus comprising:
前記決定手段は、前記順序付け手段による順序付け結果に従った順序で、判定対象の画像処理を切り替える、
ことを特徴とする請求項1に記載の画像処理装置。 An ordering unit that orders a plurality of image processes scheduled to be executed while maintaining the context of each image process,
The determination unit switches the image processing to be determined in an order according to the ordering result by the ordering unit.
The image processing apparatus according to claim 1.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009203918A JP2011054041A (en) | 2009-09-03 | 2009-09-03 | Image processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009203918A JP2011054041A (en) | 2009-09-03 | 2009-09-03 | Image processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011054041A true JP2011054041A (en) | 2011-03-17 |
Family
ID=43942957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009203918A Pending JP2011054041A (en) | 2009-09-03 | 2009-09-03 | Image processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011054041A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020535659A (en) * | 2017-09-28 | 2020-12-03 | ザイリンクス インコーポレイテッドXilinx Incorporated | Integration of programmable devices and processing systems in integrated circuit packages |
-
2009
- 2009-09-03 JP JP2009203918A patent/JP2011054041A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020535659A (en) * | 2017-09-28 | 2020-12-03 | ザイリンクス インコーポレイテッドXilinx Incorporated | Integration of programmable devices and processing systems in integrated circuit packages |
JP7244497B2 (en) | 2017-09-28 | 2023-03-22 | ザイリンクス インコーポレイテッド | Integration of programmable devices and processing systems into integrated circuit packages |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101973733B1 (en) | Architecture for high performance, power efficient, programmable image processing processing | |
CN107871301B (en) | Task scheduling in a GPU | |
US10719970B2 (en) | Low latency firmware command selection using a directed acyclic graph | |
JPWO2017163441A1 (en) | Image processing apparatus, image processing method, and image processing program | |
JPWO2007114059A1 (en) | Data processing device | |
JP2020519979A (en) | Image processor with configurable number of active cores and supporting internal network | |
US9424814B2 (en) | Buffer display techniques | |
JP4569934B2 (en) | Information processing apparatus, exception control circuit, and exception control method | |
JP2007058786A (en) | Bridge and its control method | |
WO2019053915A1 (en) | Image processing device, image processing method, and image processing program | |
JP2007215078A (en) | Image forming apparatus | |
JP5726332B2 (en) | Drawing control device | |
JP2011054041A (en) | Image processor | |
CN104335167A (en) | Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media | |
US20110022995A1 (en) | Circuit design information generating equipment, function execution system, and memory medium storing program | |
JP2010152645A (en) | Simulation support program, simulation device, and simulation support method | |
JP2022072452A (en) | Information processing device and program | |
US8799529B2 (en) | Direct memory access controller and operating method thereof | |
US7107478B2 (en) | Data processing system having a Cartesian Controller | |
JP5835498B2 (en) | LSI and LSI manufacturing method | |
JP2012245667A (en) | Image processing apparatus and image processing control program | |
JP2002073351A (en) | Data processing unit, data processing device and control method | |
JP2006309561A (en) | Direct memory access controller and data transfer method therefor | |
Shen et al. | OpenVL: Towards a novel software architecture for computer vision | |
JP2004362176A (en) | Integrated circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20110505 |