JP5034738B2 - Data processing apparatus and data processing program - Google Patents
Data processing apparatus and data processing program Download PDFInfo
- Publication number
- JP5034738B2 JP5034738B2 JP2007186850A JP2007186850A JP5034738B2 JP 5034738 B2 JP5034738 B2 JP 5034738B2 JP 2007186850 A JP2007186850 A JP 2007186850A JP 2007186850 A JP2007186850 A JP 2007186850A JP 5034738 B2 JP5034738 B2 JP 5034738B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- partial
- reference table
- unit
- partial reference
- 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.)
- Expired - Fee Related
Links
Images
Description
本発明は、データ処理装置またはデータ処理プログラムに関する。 The present invention relates to a data processing apparatus or a data processing program.
下記特許文献1には、画像データに対し、LUT(ルックアップテーブル)を用いた色変換処理を行う技術が開示されている。この技術では、大容量低速メモリに格納されたLUTの一部を、小容量高速メモリに記憶させて変換に使用する。そして、参照したいデータが小容量高速メモリにない場合は、小容量高速メモリのデータの書き換えを行う。 Japanese Patent Application Laid-Open No. 2004-228688 discloses a technique for performing color conversion processing using LUT (lookup table) on image data. In this technique, a part of the LUT stored in the large-capacity low-speed memory is stored in the small-capacity high-speed memory and used for conversion. When the data to be referred to is not in the small-capacity high-speed memory, the data in the small-capacity high-speed memory is rewritten.
下記特許文献2にも、画像データに対し、LUTを用いた色変換処理を行う技術が開示されている。この技術では、ミスヒットがあったときには、FIFO(FirstInFirstOut)を用いて処理を遅延させ、その間にLUTを更新している。
本発明の目的は、部分参照表を用いたデータ処理の効率を高めることにある。 An object of the present invention is to increase the efficiency of data processing using a partial reference table.
本発明のデータ処理装置の一態様においては、処理対象データを入力する入力手段と、前記処理対象データがとり得るすべてのデータ値の各々について当該データ値に対応する参照データが登録された表である参照表を記憶する第1の記憶手段と、参照表を構成する複数の参照データの部分集合である部分参照表を複数記憶する第2の記憶手段であって、前記第2の記憶手段の容量は前記参照表全体のデータ量よりも小さいため前記第2の記憶手段に記憶された複数の部分参照表は前記参照表全体のうちの一部しかカバーしておらず、かつ前記第2の記憶手段に記憶された複数の部分参照表は、それぞれ当該部分参照表に含まれる参照データに対応する前記データ値の範囲であるデータ範囲が互いに異なっていることを特徴とする第2の記憶手段と、入力した処理対象データの前記データ値に応じて、前記第2の記憶手段に記憶された前記複数の部分参照表の中に当該データ値に対応する前記データ範囲を持つ部分参照表がある場合には、当該部分参照表を選択部分参照表として選択し、前記第2の記憶手段に記憶された前記複数の部分参照表の中に当該データ値に対応するデータ範囲を持つ部分参照表がない場合には、当該データ値に対応するデータ範囲を持つ部分参照表を前記参照表から取得し、前記第2の記憶手段に記憶されている前記複数の部分参照表のうちのいずれかを当該取得した部分参照表に変更してから、前記第2の記憶手段内にある当該変更された部分参照表を選択部分参照表として選択し、選択した当該選択部分参照表から当該データ値に対応する参照データを参照する参照手段と、前記入力した処理対象データの前記データ値に応じて前記参照手段が前記第2の記憶手段内の前記選択部分参照表から参照した前記参照データを用いて、前記処理対象データに対するデータ処理を行うデータ処理手段と、前記入力した処理対象データのデータ値から、今後入力される処理対象データの前記データ値を予測する予測手段と、前記予測手段が予測した前記今後入力される処理対象データの前記データ値が、前記第2の記憶手段に記憶された前記複数の部分参照表のいずれの前記データ範囲にも含まれない場合に、前記今後入力される処理対象データの前記データ値を含んだ前記データ範囲に対応する部分参照表を前記参照表から取得し、前記第2の記憶手段に記憶された前記複数の部分参照表のうち、前記選択部分参照表以外の一又は二以上の部分参照表を、当該取得した部分参照表に変更する変更手段と、論理仕様を再構成可能な再構成可能回路と、前記再構成可能回路の論理仕様を再構成する再構成手段と、を備え、前記参照手段、前記データ処理手段、及び前記変更手段による各処理の少なくとも一部は、前記再構成可能回路に設定された論理に基づいて行われ、前記再構成手段は、前記予測手段が予測した前記今後入力される処理対象データの前記データ値が、前記記憶手段に記憶された前記複数の部分参照表のいずれの前記データ範囲にも含まれない場合に、前記再構成可能回路を再構成して、変更対象となった前記部分参照表を前記変更手段が変更する論理を設定し、かつ、前記部分参照表が変更された後に前記再構成可能回路を再構成して、変更された前記部分参照表を前記参照手段が参照する論理、及び、変更された前記部分参照表の参照結果に基づいて前記データ処理手段がデータ処理を行う論理を設定する。 In one aspect of the data processing device of the present invention, an input means for inputting processing target data and a table in which reference data corresponding to the data value is registered for each of all data values that can be taken by the processing target data. a second storage means for storing a plurality of the first memory means for storing certain reference table, the partial reference tables is a subset of a plurality of reference data constituting the reference table, before Symbol second storage means Is smaller than the data amount of the entire reference table, the plurality of partial reference tables stored in the second storage means cover only a part of the entire reference table, and the second a plurality of partial reference table stored in the storage means, the second memory, characterized in that the data range are different from each other in the range of the data values corresponding to the reference data respectively included in the partial reference table And the step, in response to the data values of the processing target data input, partial reference table with the data range corresponding to the data value in said plurality of partial reference table stored in the second storage means In some cases, the partial reference table is selected as the selected partial reference table, and the partial reference table having a data range corresponding to the data value in the plurality of partial reference tables stored in the second storage unit If there is not, a partial reference table having a data range corresponding to the data value is acquired from the reference table, and any one of the plurality of partial reference tables stored in the second storage unit is obtained. After changing to the acquired partial reference table, select the changed partial reference table in the second storage means as the selected partial reference table, and correspond to the data value from the selected selected partial reference table Reference data Using a reference means for referring, the reference data to which the reference means is referenced from said selected portion reference table in the second memory means in accordance with the data values of the processing target data the input, the processing object data Data processing means for performing data processing on the data , prediction means for predicting the data value of the processing target data to be input from the data value of the input processing target data, and the future input predicted by the prediction means The data of the processing target data to be input in the future when the data value of the processing target data is not included in any of the data ranges of the plurality of partial reference tables stored in the second storage unit A partial reference table corresponding to the data range including a value is acquired from the reference table, and among the plurality of partial reference tables stored in the second storage unit, Changing means for changing one or more partial reference tables other than the selected partial reference table to the acquired partial reference table, a reconfigurable circuit capable of reconfiguring a logical specification, and a logical specification of the reconfigurable circuit Reconfiguring means for reconfiguring , and at least a part of each processing by the reference means, the data processing means, and the changing means is performed based on a logic set in the reconfigurable circuit, In the restructuring unit, the data value of the processing target data input in the future predicted by the prediction unit is not included in any of the data ranges of the plurality of partial reference tables stored in the storage unit In this case, the reconfigurable circuit is reconfigured, the logic for changing the partial reference table to be changed is set by the changing means, and the reconfigurable circuit is changed after the partial reference table is changed. Re-circuit Form, the logic referenced by the reference means to the partial reference tables modified, and said data processing means for setting a logic for performing data processing based on the reference result of the partial reference tables modified.
参考例においては、前記参照手段または前記データ処理手段による処理の実行と、前記変更手段による処理の実行とは、少なくともその一部が並列的に行われる。 In the reference example , at least a part of the execution of the process by the reference unit or the data processing unit and the execution of the process by the change unit are performed in parallel.
本発明のデータ処理装置の一態様においては、前記再構成可能回路は、論理仕様を変更可能な複数の記憶回路を備え、前記記憶手段は、二以上の前記論理回路に一又は二以上の前記部分参照表を記憶し、前記変更手段は、前記選択部分参照表が記憶されていない前記論理回路に記憶された一又は二以上の前記部分参照表を変更する。 In one aspect of the data processing apparatus of the present invention, the reconfigurable circuit includes a plurality of storage circuits whose logic specifications can be changed, and the storage means includes one or more of the two or more logic circuits. A partial reference table is stored, and the changing means changes one or more partial reference tables stored in the logic circuit in which the selected partial reference table is not stored.
本発明のデータ処理装置の一態様においては、前記記憶回路の容量は前記参照表の大きさに比べて小さい。 In one aspect of the data processing apparatus of the present invention, the capacity of the storage circuit is smaller than the size of the reference table.
本発明のデータ処理装置の一態様においては、前記参照手段により選択されるべき部分参照表が前記記憶手段により記憶されていない場合に、前記予測手段による前記処理対象データの予測態様を変更する予測態様変更手段を備える。 In one aspect of the data processing apparatus of the present invention, when the partial reference table to be selected by the reference unit is not stored in the storage unit, the prediction for changing the prediction mode of the processing target data by the prediction unit A mode change means is provided.
本発明のデータ処理装置の一態様においては、前記処理対象データは、画像を構成する複数の画素データであり、前記データ値は、前記画素データの画素値である。 In one aspect of the data processing apparatus of the present invention, the processing target data is a plurality of pixel data constituting an image, and the data value is a pixel value of the pixel data.
参考例のデータプログラムの一態様においては、コンピュータを、処理対象データを入力する入力手段と、参照表を構成する複数の参照データの部分集合である部分参照表を複数記憶する記憶手段であって、前記参照表は、前記処理対象データがとり得るすべてのデータ値の各々について当該データ値に対応する参照データが登録された表であり、前記記憶手段の容量は前記参照表全体のデータ量よりも小さいため前記記憶手段に記憶された複数の部分参照表は前記参照表全体のうちの一部しかカバーしておらず、かつ前記記憶手段に記憶された複数の部分参照表は、それぞれ当該部分参照表に含まれる参照データに対応する前記データ値の範囲であるデータ範囲が互いに異なっていることを特徴とする記憶手段と、入力した処理対象データの前記データ値に応じて、前記記憶手段に記憶された前記複数の部分参照表の中に当該データ値に対応する前記データ範囲を持つ部分参照表がある場合には、当該部分参照表を選択部分参照表として選択し、前記記憶手段に記憶された前記複数の部分参照表の中に当該データ値に対応するデータ範囲を持つ部分参照表がない場合には、当該データ値に対応するデータ範囲を持つ部分参照表を前記参照表から取得し、前記記憶手段に記憶されている前記複数の部分参照表のうちのいずれかを当該取得した部分参照表に変更してから、前記記憶手段内にある当該変更された部分参照表を選択部分参照表として選択し、選択した当該選択部分参照表から当該データ値に対応する参照データを参照する参照手段と、前記入力した処理対象データの前記データ値に応じて前記参照手段が前記記憶手段内の前記選択部分参照表から参照した前記参照データを用いて、前記処理対象データに対するデータ処理を行うデータ処理手段と、前記入力した処理対象データとの関連性に基づいて、今後入力される処理対象データの前記データ値を予測する予測手段と、前記予測手段が予測した前記今後入力される処理対象データの前記データ値が、前記記憶手段に記憶された前記複数の部分参照表のいずれの前記データ範囲にも含まれない場合に、前記今後入力される処理対象データの前記データ値を含んだ前記データ範囲に対応する部分参照表を前記参照表から取得し、前記記憶手段に記憶された前記複数の部分参照表のうち、前記選択部分参照表以外の一又は二以上の部分参照表を、当該取得した部分参照表に変更する変更手段、として機能させる。 In one embodiment of the data program reference example, computer, a input means and storage means for storing a plurality of partial reference tables is a subset of the plurality of reference data constituting a reference table for inputting the processing target data The reference table is a table in which the reference data corresponding to the data value is registered for each of all the data values that the processing target data can take, and the capacity of the storage means is the data amount of the entire reference table The plurality of partial reference tables stored in the storage means cover only a part of the entire reference table, and the plurality of partial reference tables stored in the storage means Storage means characterized in that the data ranges corresponding to the reference data included in the partial reference table are different from each other, and the input processing target data When there is a partial reference table having the data range corresponding to the data value in the plurality of partial reference tables stored in the storage unit according to the data value, the partial reference table is selected When there is no partial reference table having a data range corresponding to the data value in the plurality of partial reference tables selected as a reference table and stored in the storage means, the data range corresponding to the data value is A partial reference table is acquired from the reference table, and any one of the plurality of partial reference tables stored in the storage unit is changed to the acquired partial reference table, and then stored in the storage unit Selecting the changed partial reference table as a selected partial reference table, referring to the selected reference partial reference table corresponding to the data value from the selected partial reference table, and the input of the processing target data Using the reference data to which the reference means is referenced from said selected portion reference table in the storage means in accordance with chromatography data value, a data processing means for performing data processing on the processing object data, processed with pre-filled force Prediction means for predicting the data value of processing target data to be input in the future based on the relationship with data, and the data value of the processing target data to be input in the future predicted by the prediction means is the storage means A partial reference table corresponding to the data range including the data value of the processing target data to be input in the future when the data range is not included in any of the data ranges of the plurality of partial reference tables stored in Among the plurality of partial reference tables acquired from the reference table and stored in the storage unit, one or more partial reference tables other than the selected partial reference table are obtained. It is made to function as a changing means for changing to the reference table.
請求項1に記載の発明によれば、部分参照表を用いたデータ処理において、参照される蓋然性が高い部分参照表が用意されるため、データ処理の効率を高めることが可能となる。また、部分参照表を参照する過程と、部分参照表を変更する過程とが、再構成により切り換えられて実行されるため、データ処理の効率を高めることが可能となる。 According to the first aspect of the present invention, in the data processing using the partial reference table, the partial reference table having a high probability of being referred to is prepared. Therefore, the efficiency of the data processing can be increased. In addition, since the process of referring to the partial reference table and the process of changing the partial reference table are switched and executed by reconfiguration, the efficiency of data processing can be improved.
参考例によれば、参照データの参照あるいは処理対象データに対するデータ処理が行われている間を利用して、参照されていない部分参照表の変更が行われるため、データ処理の効率を高めることができる。 According to the reference example , since the partial reference table that is not referred to is changed while the reference data is being referred to or the data processing on the processing target data is being performed, the efficiency of the data processing can be improved. it can.
請求項2に記載の発明によれば、部分参照表の参照と、部分参照表の変更とにおいて、同一の記憶回路の競合が発生することを防止できる。 According to the second aspect of the present invention, it is possible to prevent contention of the same storage circuit between the reference of the partial reference table and the change of the partial reference table.
請求項3に記載の発明によれば、記憶回路が参照表を記憶する容量を有しない場合においても、効率を高めたデータ処理が可能となる。 According to the third aspect of the present invention, even when the storage circuit does not have a capacity for storing the reference table, data processing with improved efficiency is possible.
請求項4に記載の発明によれば、予測が精度よく行われていない場合に、予測態様を変更して予測精度の向上を試みることが可能となる。 According to invention of Claim 4 , when prediction is not performed with sufficient precision, it becomes possible to try the improvement of a prediction precision by changing a prediction aspect.
請求項5に記載の発明によれば、画像データに対する処理効率を向上させることが可能となる。 According to the fifth aspect of the present invention, it is possible to improve the processing efficiency for image data.
参考例によれば、参照される蓋然性が高い部分参照表が用意され、データ処理の効率を高めることが可能なデータ処理プログラムが提供される。 According to the reference example , a partial reference table having a high probability of being referred to is prepared, and a data processing program capable of improving the efficiency of data processing is provided.
[用語等の説明] ここでは、特許請求の範囲、明細書、または図面において用いられる用語や概念等について説明する。 [Explanation of Terms, etc.] Here, terms and concepts used in the claims, the specification, or the drawings will be described.
データ処理装置は、コンピュータハードウエアと、その動作を規定するプログラム(ソフトウエア)を用いて構築される装置である。コンピュータハードウエアは、プログラムの制御によって、入力手段、記憶手段、参照手段、データ処理手段、予測手段、変更手段、予測態様変更手段などの各手段として機能することになる。データ処理装置は、単体のコンピュータハードウエアを利用した集中処理システムとして構築されてもよいし、通信可能な複数のコンピュータハードウエアを利用した分散処理システムとして構築されてもよい。 A data processing device is a device constructed using computer hardware and a program (software) that defines its operation. The computer hardware functions as each unit such as an input unit, a storage unit, a reference unit, a data processing unit, a prediction unit, a change unit, and a prediction mode change unit under program control. The data processing apparatus may be constructed as a centralized processing system using a single computer hardware, or may be constructed as a distributed processing system using a plurality of communicable computer hardware.
入力手段は、複数の処理対象データを入力する手段である。処理対象データは、1自由度(1ビット)からなるデータであっても、複数自由度(複数ビット)からなるデータであってもよい。また、処理対象データは、例えば、一つの要素をもつもの(1次元データ)であってもよいし、複数の要素をもつもの(多次元データ)であってもよい。入力される複数の処理対象データの間には、データ特性になんらかの関連性がある。データ特性の例としては、その処理対象データ自体がもつ絶対的な特性(例えばデータ値の大きさ)、他の処理対象データとの比較により求められる相対的な特性(例えばデータ分布)、あるいは、処理対象データに対し適当な演算を施すことにより判別可能な特性(例えばデータ変換後のデータ値の大きさ)などを挙げることができる。また、関連性とは、例えば、全体として意味あるデータ群を構成する(例えば全体として画像を構成したり、全体として時系列データを構成したりする)ものや、相互に相関をもつもの(相互に対比対象となる実験・観測データなど)などを例示することができる。 The input means is means for inputting a plurality of processing target data. The processing target data may be data having one degree of freedom (1 bit) or data having a plurality of degrees of freedom (multiple bits). Further, the processing target data may be, for example, data having one element (one-dimensional data) or data having a plurality of elements (multi-dimensional data). There is some relationship in data characteristics between a plurality of input data to be processed. Examples of data characteristics include absolute characteristics of the processing target data itself (for example, the magnitude of the data value), relative characteristics (for example, data distribution) obtained by comparison with other processing target data, or A characteristic (for example, the magnitude of the data value after data conversion) that can be discriminated by performing an appropriate operation on the processing target data can be mentioned. In addition, the relationship is, for example, a data group that is meaningful as a whole (for example, an image is formed as a whole or time-series data is formed as a whole), or a correlation (mutually). (Experiment / observation data, etc.) to be compared.
記憶手段は、半導体メモリなどの記憶装置に、参照表の一部である部分参照表を複数記憶する手段である。ここで、参照表は全参照データによって構成されるデータ構造であり、部分参照表は全参照データの部分集合によって構成されるデータ構造である。参照表は、所望のデータを参照(読み出し)できるようにデータ構造が設定されたデータ群を指す。参照表には、しばしばハッシュやツリーなどの探索アルゴリズムが用いられる。参照表の典型例としては、ルックアップテーブル(LUT)を挙げることができる。なお、参照表自体は、当該データ処理装置内に別途記憶されてもよいし、外部から取得されてもよい。 The storage means is means for storing a plurality of partial reference tables, which are part of the reference table, in a storage device such as a semiconductor memory. Here, the reference table is a data structure composed of all reference data, and the partial reference table is a data structure composed of a subset of all reference data. The reference table indicates a data group in which a data structure is set so that desired data can be referred (read). For lookup tables, search algorithms such as hashes and trees are often used. A typical example of the lookup table is a lookup table (LUT). Note that the reference table itself may be separately stored in the data processing apparatus or may be acquired from the outside.
参照手段は、入力した処理対象データのデータ特性に応じた参照データを参照する。この参照過程では、複数ある部分参照表の中から、参照に用いる部分参照表(選択部分参照表と呼ぶ)を選択し、この選択部分参照表の中から参照データを参照する。 The reference means refers to reference data corresponding to the data characteristics of the input processing target data. In this reference process, a partial reference table (referred to as a selected partial reference table) used for reference is selected from a plurality of partial reference tables, and reference data is referenced from the selected partial reference table.
データ処理手段は、入力した処理対象データに対してデータ処理を行う手段である。データ処理の例としては、データ変換処理、フィルタ処理、統計処理などを挙げることができる。データ処理は、例えば、入力した各処理対象データに対して行われてもよいし、選択された一部の処理対象データに対して行われてもよい。また、二以上の処理対象データをひとまとまりとして行われてもよい。データ処理は、部分参照表の中から処理対象データのデータ特性に応じた参照データを参照して行われる。参照データは、例えば、処理対象データの置き換え、処理対象データとの対比、実行する演算のパラメータなどに用いられる。なお、データ処理においては、参照手段により行われる参照データを参照するための演算結果が使用されてもよい。 The data processing means is means for performing data processing on the input processing target data. Examples of data processing include data conversion processing, filter processing, statistical processing, and the like. For example, the data processing may be performed on each input processing target data, or may be performed on some selected processing target data. Further, two or more process target data may be performed as a group. Data processing is performed by referring to the reference data corresponding to the data characteristics of the processing target data from the partial reference table. The reference data is used, for example, for replacement of the processing target data, comparison with the processing target data, parameters for the operation to be executed, and the like. In the data processing, a calculation result for referring to the reference data performed by the reference unit may be used.
予測手段は、予測を開始する時点ではまだ入力されていない処理対象データ、つまり、まだデータ特性を吟味することのできない処理対象データについて、そのデータ特性を予測する。データ特性の予測は、入力が完了した(処理済みても、未処理でも、その両方であってもよい)一または二以上の処理対象データとのデータ特性が関連することを利用して行われる。予測は、例えば、補間処理、確率・統計処理など様々な態様で行うことが可能である。 The prediction means predicts the data characteristics of the processing target data that has not yet been input at the time of starting the prediction, that is, the processing target data for which the data characteristics cannot be examined yet. Prediction of data characteristics is performed by utilizing the relationship between data characteristics of one or more target data for which input has been completed (processed, unprocessed, or both). . Prediction can be performed in various modes such as interpolation processing and probability / statistical processing.
予測態様変更手段は、予測の精度が悪く、参照に必要となる部分参照表が前記記憶手段により記憶されていない場合、つまりミスヒットが発生する場合に、予測手段による予測態様を変更する。予測態様の変更は、ミスヒットが発生した場合に直ちに行うようにしてもよいし、ミスヒットの発生が許容範囲以上発生した場合に行うようにしてもよい。予測態様の変更の例としては、時間間隔を短くする(予測頻度を高める)、予測アルゴリズム(補間関数など)の精度を上げる、遠未来から近未来と予測時間を短縮するなどの態様を挙げることができる。 The prediction mode changing means changes the prediction mode by the prediction means when the prediction accuracy is poor and the partial reference table required for reference is not stored in the storage means, that is, when a miss hit occurs. The prediction mode may be changed immediately when a miss hit occurs, or may be performed when a miss hit occurs in an allowable range or more. Examples of prediction mode changes include shortening the time interval (increasing the prediction frequency), increasing the accuracy of the prediction algorithm (interpolation function, etc.), and shortening the prediction time from the near future to the near future. Can do.
変更手段は、予測結果に応じて、記憶手段により記憶された部分参照表を変更(更新)する。変更される部分参照表は、選択部分参照表に含まれないものの中から選ばれる。なお、参照手段による択部分参照表の参照あるいはデータ処理手段による参照結果を利用したデータ処理と、変更手段による部分参照表の変更は、並列的に実行することができる。ここで、並列的とは、少なくとも一部が同時刻帯に実行されることをいう。 The changing unit changes (updates) the partial reference table stored in the storage unit according to the prediction result. The partial reference table to be changed is selected from those not included in the selected partial reference table. It should be noted that the data processing using the reference of the selected partial reference table by the reference means or the reference result by the data processing means and the change of the partial reference table by the changing means can be executed in parallel. Here, parallel means that at least a part is executed in the same time zone.
コンピュータハードウエアとしては、典型的には、その論理仕様が固定されたものが用いられる。しかし、例えば、そのコンピュータハードウエアが備える演算装置の一部または全部を、論理仕様を再構成可能な再構成可能回路(リコンフィギュラブル回路)によって構築することも可能である。再構成可能回路は、典型的には、主として演算処理を行う算術論理演算部(ALU)などの演算回路と、主としてデータの記憶を行うランダムアクセスメモリ(RAM)などの記憶回路とを含んでいる。そして、再構成論理回路では、ハードウエア的に規定された論理仕様をソフトウエア的(プログラム的に)に変更することが可能である。特に、論理仕様を数サイクル以内に切り換えることができる場合には、一連の処理の最中に論理仕様を変更する動的再構成が可能となる。 As the computer hardware, typically, those whose logic specifications are fixed are used. However, for example, a part or all of the arithmetic device provided in the computer hardware can be constructed by a reconfigurable circuit (reconfigurable circuit) capable of reconfiguring the logic specification. The reconfigurable circuit typically includes an arithmetic circuit such as an arithmetic logic unit (ALU) that mainly performs arithmetic processing and a storage circuit such as a random access memory (RAM) that mainly stores data. . In the reconfigurable logic circuit, the logic specification defined in hardware can be changed into software (in a program). In particular, when the logical specification can be switched within a few cycles, dynamic reconfiguration is possible in which the logical specification is changed during a series of processes.
切り換え対象となる論理仕様には、例えば、演算回路で行われる演算処理の態様を定めた演算論理仕様、再構成論理回路内の配線の態様を定めた結線論理仕様、再構成論理回路と外部装置との配線の態様を定めた入出力論理仕様などが含まれる。なお、記憶回路では、典型的には内部的な論理仕様が固定され、結線論理仕様あるいは入出力論理仕様などが再構成可能に構築されるが、例えば、内部的な論理仕様を再構成可能とされてもよい。 The logical specifications to be switched include, for example, an arithmetic logic specification that defines the mode of arithmetic processing performed in the arithmetic circuit, a wiring logic specification that defines the wiring mode in the reconfigurable logic circuit, a reconfigurable logic circuit, and an external device And input / output logic specifications that define the manner of wiring. In the memory circuit, the internal logic specifications are typically fixed and the connection logic specifications or the input / output logic specifications are reconfigurable. For example, the internal logic specifications can be reconfigured. May be.
再構成可能回路は、典型的には、分散配置(例えばチップ上に2次元アレイ状に配置)された複数の要素(エレメント)からなる。具体的には、演算回路を複数の演算要素によって構築したり、記憶回路を複数の記憶要素によって構築したりする例が挙げられる。再構成のためのプログラミングが、こうした演算要素や記憶要素を単位として行われることも多い。 A reconfigurable circuit typically includes a plurality of elements (elements) arranged in a distributed manner (for example, arranged in a two-dimensional array on a chip). Specifically, there are examples in which an arithmetic circuit is constructed by a plurality of arithmetic elements, and a memory circuit is constructed by a plurality of memory elements. In many cases, programming for reconstruction is performed in units of such arithmetic elements and storage elements.
再構成手段は、再構成可能回路の論理仕様を再構成し、データ処理手段の機能の一部または全部を実現するデータ処理論理、あるいは、変更手段の機能の一部または全部を実現する変更論理などを設定する。再構成にあたっては、記憶回路に記憶されているデータ、あるいは、演算回路のレジスタに記憶されているデータを初期化してもよいし、保全して(破壊しないで)再構成後に再利用するようにしてもよい。 The reconfiguring means reconfigures the logic specification of the reconfigurable circuit and implements data processing logic that realizes part or all of the functions of the data processing means, or change logic that realizes part or all of the functions of the changing means. And so on. In reconfiguration, the data stored in the memory circuit or the data stored in the register of the arithmetic circuit may be initialized, and the data may be saved (not destroyed) and reused after the reconfiguration. May be.
[実施の形態] 以下に本発明の実施の形態を例示する。 Embodiment An embodiment of the present invention is illustrated below.
図1は、本実施の形態にかかる画像処理装置10の構成例を示す概略図である。画像処理装置10は、データ処理装置の一種であり、図示した例においては単体の筐体をもつ装置として構成されている。画像処理装置10の内部には、内部通信路としての内部バス11が設けられている。そして、内部バス11には、CPU(中央処理装置)12、ROM(ReadOnlyMemory)14、RAM(RandomAccessMemory)16、HDD(HardDiscDrive)18、再構成可能システム20、UI(UserInterface)21、スキャナ22、プリンタ24、CDD(CompactDiscDrive)26、及びネットワークインタフェース28の各構成装置が接続されている。
FIG. 1 is a schematic diagram illustrating a configuration example of an image processing apparatus 10 according to the present embodiment. The image processing apparatus 10 is a kind of data processing apparatus, and in the illustrated example, is configured as an apparatus having a single casing. Inside the image processing apparatus 10, an internal bus 11 is provided as an internal communication path. The internal bus 11 includes a CPU (Central Processing Unit) 12, a ROM (Read Only Memory) 14, a RAM (Random Access Memory) 16, an HDD (Hard Disc Drive) 18, a
CPU12は、ROM14などに格納されたプログラムに従って、画像処理装置10の各構成装置の制御や、画像処理等を行う装置である。ROM14は長期的な記憶が可能な半導体メモリ(記憶装置)であり、各種のプログラムや設定情報などを記憶する。RAM16は主として短期的な記憶に用いられる半導体メモリである。DRAM(ダイナミックRAM)を用いた場合には、比較的大容量だがランダムアクセス読み出しがやや遅い記憶装置となり、SRAM(スタティックRAM)を用いた場合には、比較的小容量だがランダムアクセス読み出しがやや早い記憶装置となる。RAM16には、処理対象となる画像データなどが記憶される。RAM16と再構成可能システム20との入出力を高速化するために、内部バス11を介さずに両者を直結したり、DDR(ダブルデータレート)方式を用いたりする場合もある。HDD18は磁気ディスクなどを用いて構成された大容量の記憶装置であり、画像データの長期的な記憶などに用いられる。
The
再構成可能システム20は、コンフィグメモリ32とリコンフィギュラブルプロセッサ34とを含む装置であり、典型的には、同一のチップ上にこうした装置を設置されている。コンフィグメモリ32は、リコンフィギュラブルプロセッサ34の論理仕様を規定する論理仕様データが入力される記憶装置である。コンフィグメモリ32は、例えば、選択可能な複数の論理仕様データをスイッチで切り替えることで、採用する論理仕様データを数サイクル(例えば1サイクル)で選択できるように設定されている。
The
リコンフィギュラブルプロセッサ34は、再構成可能回路としての装置であり、アレイ状に配置された複数のプロセッサエレメント(PE)を備えている。プロセッサエレメントは、リコンフィギュラブルプロセッサ34を構成する小回路であり、例えば、演算要素としてのALUエレメント、あるいは、記憶要素としてのRAMエレメントなどからなる。このうち、ALUエレメントは、再構成された論理仕様に基づいて、データに対する演算処理を行う小回路であり、RAMエレメントは、データの入出力及び記憶が行われる小回路であり、例えば、高速な入出力が可能なSRAMを用いて構築される。RAMエレメントは、外部設置されるROM14やRAM16などに比べて容量が小さいことが多い。ALUエレメントの内部的な論理仕様である演算論理仕様や、他のALUエレメントやRAMエレメントとの接続を規定する結線論理仕様、外部装置との接続を規定する入出力論理仕様などは、コンフィグメモリ32に設定された論理仕様データに基づいて再構成される。なお、リコンフィギュラブルプロセッサ34には、外部装置との入出力を高速に行う専用入出力I/F(インタフェース)や、論理仕様が固定された(再構成不可能な)小演算回路などが設けられることも多い。再構成可能システム20は、論理仕様データの選択や再構成時期などを制御する制御部を自装置内に備えて自らの動作を制御するものであってもよいし、CPU12などの外部装置によって動作を制御されるものであってもよい。こうした制御部あるいはCPU12は、プログラムに従って、コンフィグメモリ32にコンフィグデータを入力してリコンフィギュラブルプロセッサ34に画像処理論理などのコンフィギュレーションを設定し、それを実行させる。コンフィグデータは、ROM14、RAM16、HDD18などに格納されている。
The
UI21は、液晶ディスプレイや発光ダイオードなどの表示装置、及び、タッチパネルやキーボードなどの入力装置を備え、画像処理装置10のユーザにデータを表示したり、ユーザから操作命令を受け付けたりする。スキャナ22は、用紙表面の画像を読み取って画像データを生成する読取装置である。プリンタ24は、画像データに基づいて用紙に印刷を行う印刷装置である。CDD26は、記録媒体としてのCD(コンパクトディスク)に記録されたデータを読み取る装置であり、例えば、CPU12や再構成可能システム20を制御するためのプログラムがCDD26により提供された場合にこのプログラムを読み取るために用いられる。ネットワークインタフェース28は、インターネットなどのネットワーク30に接続してデータを入出力するためのインタフェースであり、例えば、CPU12や再構成可能システム20を制御するためのプログラムがネットワーク30を通じて提供される場合、このプログラムのデータ信号を受信するために用いられる。
The
続いて、図2乃至図4を参照して、図1に示した画像処理装置10を用いて行う画像処理の概要について説明する。 Next, an overview of image processing performed using the image processing apparatus 10 illustrated in FIG. 1 will be described with reference to FIGS. 2 to 4.
図2は、画像処理(データ処理)の一例である色変換処理の流れを説明する図であり、L*a*b*表色系で表現された画像データを、CMYK表色系に変換する処理の例を示している。この例では、画像データを構成する各画素データのL*成分、a*成分、b*成分が順次入力され、アドレス変換処理部40でL*a*b*値に対応したアドレスに変換される。変換により与えられるアドレスは、データメモリ42,44,46,48に格納されたCMYK色変換用の各ルックアップテーブル(それぞれ、C−LUT,M−LUT,Y−LUT,K−LUTと呼ぶ)の格納位置に対応したものである。すなわち、アドレス変換処理部40が与えるアドレスに従ってデータメモリ42〜48を参照すると、入力した画素値の近傍におけるCMYKの各成分の値が得られる。そして、得られた値を基に補間処理部50,52,54,56で補間処理を行うことで、入力した画素値に対応したC成分、M成分、Y成分、K成分の値が出力される。
FIG. 2 is a diagram for explaining the flow of color conversion processing, which is an example of image processing (data processing). Image data expressed in the L * a * b * color system is converted into the CMYK color system. An example of processing is shown. In this example, the L * component, a * component, and b * component of each pixel data constituting the image data are sequentially input and converted into an address corresponding to the L * a * b * value by the address
図3は、図2で説明したC−LUTの例を模式的に示す図である。C−LUTは、3次元空間(L*,a*,b*)上で定義されており、L*成分、a*成分、b*成分の値と、C成分との関係を表している。図には、入力済みの画素データIN3,IN2,IN1,IN0と、これから入力される画素データINa,INb,INc,INd,INeが図示されている。これらの各画素データに対しては、そのC−LUTを用いて変換を行うことで、近傍のCの値を求めることができる。しかし、C−LUTは一般にサイズが大きく、全てをメモリに格納するのは困難であることが多い。そこで、C−LUTの部分集合である部分LUT(これは部分参照表の例である)が用いられる。例えば、図3の例では、入力済みの画素データIN3,IN2,IN1,IN0に対しては、C−LUT1を用いて変換が行われる。 FIG. 3 is a diagram schematically illustrating an example of the C-LUT described in FIG. The C-LUT is defined on a three-dimensional space (L * , a * , b * ) and represents the relationship between the values of the L * component, a * component, and b * component and the C component. In the figure, input pixel data IN3, IN2, IN1, and IN0 and pixel data INa, INb, INc, INd, and INe to be input from now on are shown. For each of these pixel data, a C value in the vicinity can be obtained by performing conversion using the C-LUT. However, the C-LUT is generally large in size, and it is often difficult to store all of them in memory. Therefore, a partial LUT that is a subset of the C-LUT (this is an example of a partial reference table) is used. For example, in the example of FIG. 3, the input pixel data IN3, IN2, IN1, and IN0 are converted using the C-LUT1.
ところが、入力がなされていない画素データINa,INb,INc,INd,INeに対しては、どの部分LUTを用いればよいかは自明ではない。すなわち、画素データINa,INb,INcに対してはC−LUT2を適用すればよいことや、画素データINc,INd,INeに対してはC−LUT3を適用すればよいことは、これらが未入力の段階ではまだわからない。 However, it is not obvious which partial LUT should be used for pixel data INa, INb, INc, INd, and INe that have not been input. That is, the fact that the C-LUT2 may be applied to the pixel data INa, INb, and INc and the C-LUT3 should be applied to the pixel data INc, INd, and Ine are not input. I still don't know at this stage.
図4に図示したグラフは、未入力の画素データに必要な部分LUTの予測態様を説明するものである。グラフの横軸は時間(サイクル)を表し、縦軸は、L*の値を表している。そして、グラフ中には、図3に示した画素データIN3,IN2,IN1と、これから線形補間(線形補外)した予測画素データM1,M2,M3が図示されている。すなわち、ある時刻に入力されたIN3、それからsサイクル後に入力されたIN2、さらにsサイクル後に入力されたIN3の各L*成分を基に3点補間を行って、未来に入力される予測画素データM1,M2,M3のL*成分値を予測している。図示した例では、画素データM1,M2,M3はIN1から3s,4s,5sサイクル後にそれぞれ入力され、その値は形式的には、次式で表される。
M1=((IN1−IN2)+(IN2−IN3))/2s × 4s + IN2
M2=((IN1−IN2)+(IN2−IN3))/2s × 5s + IN2
M3=((IN1−IN2)+(IN2−IN3))/2s × 6s + IN2
The graph shown in FIG. 4 explains the prediction mode of the partial LUT necessary for non-input pixel data. The horizontal axis of the graph represents time (cycle), and the vertical axis represents the value of L * . In the graph, pixel data IN3, IN2, and IN1 shown in FIG. 3 and predicted pixel data M1, M2, and M3 obtained by linear interpolation (linear extrapolation) are shown. That is, prediction pixel data input in the future by performing three-point interpolation based on IN3 input at a certain time, IN2 input after s cycles, and each L * component of IN3 input after s cycles L * component values of M1, M2 and M3 are predicted. In the illustrated example, the pixel data M1, M2, and M3 are input after 3s, 4s, and 5s cycles from IN1, respectively, and the values are formally expressed by the following equations.
M1 = ((IN1-IN2) + (IN2-IN3)) / 2s × 4s + IN2
M2 = ((IN1-IN2) + (IN2-IN3)) / 2s × 5s + IN2
M3 = ((IN1-IN2) + (IN2-IN3)) / 2s × 6s + IN2
画像データにおいては、各画素の色や輝度は、近傍の画素間で類似する傾向にあり、距離とともに比較的滑らかに変化することが多い。ここでは、このデータ特性を利用して、予測画素データM1,M2,M3の入力を予測し、これらの予測画素を範囲に含む部分LUTを対応する時刻に用意することとした。図示した例では、画素データIN3,IN2,IN1などの変換に用いている部分LUT60を備えていると仮定している。そこで、更新する部分LUT62は、予測画素データM1,M2,M3の両側にバランスよく拡がるような範囲に設定されている。このため、部分LUT60と部分LUT62は一部の範囲が重複している。なお、予測画素データM1,M2,M3の値によっては、部分LUT60と部分LUT62とが重複することも接することもなく、ジャンプする可能性もある。このような時には、例えば、画像の連続性を考慮してジャンプを作らないことを優先してもよいし、予測結果を優先するようにしてもよい。なお、同様の処理は、a*成分及びb*成分に対しても行われる。
In image data, the color and brightness of each pixel tend to be similar between neighboring pixels and often change relatively smoothly with distance. Here, the input of the predicted pixel data M1, M2, and M3 is predicted using this data characteristic, and a partial LUT that includes these predicted pixels in the range is prepared at the corresponding time. In the illustrated example, it is assumed that a
続いて、図5〜図8を用いて、以上に説明した処理を行うための構成について説明する。図5は、リコンフィギュラブルプロセッサ34に設定した論理について説明する図である。リコンフィギュラブルプロセッサ34には、参照処理部70、参照部76、及び画像処理部78が設けられている。
Then, the structure for performing the process demonstrated above is demonstrated using FIGS. FIG. 5 is a diagram for explaining the logic set in the
参照処理部70は、参照手段として機能する処理部であり、参照部76のデータを参照するための処理を行っている。具体的には、入力される画素データを順次シフトして出力するシフトレジスタ72、シフトレジスタ72からデータを入力し、先入れ先出し方式で出力するFIFO74、部分LUTの選択を行う部分LUT選択制御部80、及び、部分LUTの変更(更新)についての処理を行う部分LUT予測部82を備えている。
The
参照部76は、部分参照表を記憶する記憶手段としての構成要素であり、部分参照表の例である色変換用の部分LUTを記憶し管理する。ここでは、リコンフィギュラブルプロセッサ34に設けられているRAMエレメントの容量が小さく、全LUT(現在一般的に用いられているものは1色につき40キロバイト、4色で160キロバイト程度である)を格納できないことを想定しており、参照部76では、RAMエレメントの容量に応じた部分LUT(例えば1色につき4キロバイト、4色で16キロバイトのもの)を管理している。参照部76には、RAMエレメントとしての2つのデータメモリ86,88と、このデータメモリ86,88からの出力切り換えを行うSEL(選択部)90が設けられている。そして、データメモリ86,88には、それぞれ部分LUTであるLUT−A87と、LUT−B89が設定されている。
The
画像処理部78は、データ処理手段の例であり、参照部76から、部分LUTの参照結果(参照データ)を入力し、補間処理などの画像処理を行って、その結果を出力する。なお、部分LUTとして入力するLUT92は、RAM16に格納されている。そして、LUT92からの参照データ出力は、CPU12あるいはDMA(直接メモリアクセス)コントローラなどを利用したDRAM(ダイナミックRAM)制御部84によって制御されている。
The
図6は、部分LUT選択制御部80の構成を説明するブロック図である。部分LUT選択制御部80には、指示処理部100、適合判定部102、タグデータ変更部104、及びタグデータ106が設けられている。指示処理部100は、FIFO74に対し画素データの読み出しを開始あるいは停止させる指示、部分LUT予測部82に対しLUT−A87とLUT−B89のいずれを更新用とするかの指示、SEL90に対しLUT−A87とLUT−B89のいずれの出力を採用するかの指示などを行う。適合判定部102は、FIFO74から出力される画素データが、LUT−A87またはLUT−B89に適合しているか(変換可能な範囲に含まれるか)を判定する。タグデータ106は、部分LUTの更新を行った場合に、タグデータ106を対応する値に変更する処理を行う。タグデータ106は、部分LUTに含まれる範囲の情報を与えるデータである。適合判定部102における適合性の判定は、画素データに対応するタグデータを参照して行われる。
FIG. 6 is a block diagram illustrating the configuration of the partial LUT
図7は、部分LUT選択制御部80の選択動作を説明する表である。列110と列112は、適合判定部102によるLUT−A87とLUT−B89の適合結果を表している。部分LUT選択制御部80は、この適合結果に基づいて処理を行うものであり、列114は部分LUTに対する処理を示しており、列116はFIFOに対する処理態様を示している。
FIG. 7 is a table for explaining the selection operation of the partial LUT
例えば、色変換対象となる画素データがLUT−A87に適合、LUT−B89には不適合である場合には、LUT−A87が参照対象と採用され、その旨の指令が指示処理部100からSEL90に送られる。そして、LUT−B89は更新用となり、LUT−A87よりも優先的に更新されるべき旨の指令が部分LUT予測部82に送られる。また、FIFO74に対しては、通過の指令、つまり読み出しを継続する指令が行われる。なお、入力された画素データが、LUT−A87とLUT−B89の両方に適合した場合にも、ここに示した場合と同様の処理が行われる。他方、入力された画素データが、LUT−A87に不適合、LUT−B89に適合する場合には、これとは逆の態様で処理が行われる。
For example, when the pixel data to be color-converted conforms to LUT-A87 and does not conform to LUT-B89, LUT-A87 is adopted as the reference object, and a command to that effect is sent from the
これに対し、LUT−A87とLUT−B89の両方に不適合であった場合には、LUT−B89を直ちに更新する指令が部分LUT予測部82を経由してDRAM制御部84に送られる。そして、LUT−A87は更新対象となり、次回以降にLUT−B89よりも優先的に更新されるべき旨の指令が部分LUT予測部82に送られる。また、FIFO74に対しては、LUT−B89の更新が終了するまでは、一旦読み出しを中止するべき旨の指令がなされる。
On the other hand, if it is incompatible with both LUT-
図8は、予測手段としての部分LUT予測部82の構成を説明するブロック図である。部分LUT予測部82は、予測画素データ演算部120、予測時間変更部122、ヒット率評価部126、及び更新処理部124が設けられている。予測画素データ演算部120は、図4を用いて説明したように、入力済みの複数の画素データを基に線形補間を行って、適当な時間後に入力される画素データである予測画素データを求める。予測時間変更部122は、予測画素データ演算部120がどれだけ先の予測画疎データを求めるかを決める予測時間の変更を行う。更新処理部124は、予測画素データ演算部120の予測結果に基づいて、部分LUTを更新するか否か、LUT−A87とLUT−B89のいずれを更新するか、どの範囲をカバーする部分LUTに更新するかなどを決定する。そして、変更手段としてのDRAM制御部84に対し指示を行う。また、ヒット率評価部126は、部分LUT選択制御部80からの情報に基づいて、入力された画素データが参照部76に設定された部分LUTに適合した度合い(これをヒット率と呼ぶ)を評価する。そして、ヒット率に基づいて、予測時間変更部122に予測時間の変更を行わせるか否か決定する。ヒット率評価部126及び予測時間変更部122は、予測態様変更手段の例である。
FIG. 8 is a block diagram illustrating a configuration of the partial
続いて、図5〜図8に示した構成の動作について説明する。リコンフィギュラブルプロセッサ34の参照処理部70に対しては、RAM16などから画像を構成する画素データが順次入力される。シフトレジスタ72では、その時点で最も新しい(後から入力された)画素データIN0をFIFOに出力する。画素データIN0は、参照部76に入力され、部分LUTに対応するアドレスに変換されて、LUT−A87とLUT−B89に入力される。そして、LUT−A87とLUT−B89は、入力されたアドレスに対応するCMYKの各成分のデータをSEL90に出力する。そして、SEL90で選択されたデータは画像処理部78に出力され、必要な補間処理を受けた後に、RAM16などに出力される。
Next, the operation of the configuration shown in FIGS. 5 to 8 will be described. Pixel data constituting an image is sequentially input from the
ここで、この過程における部分LUT選択制御部80の制御について、図9を用いて説明する。部分LUT選択制御部80では、FIFO74による画素データIN0の入力(及び出力)が開始されると(S10)、タグデータ106を参照した上で、適合判定部102が部分LUTの適合性を判定する。図9の例では、LUT−B89が更新用の部分LUTに設定されていることを過程しており、まず、画素データIN0がLUT−A87に適合するか否かが判定される(S12)。その結果、LUT−A87に適合する場合には、LUT−A87が採用される(S14)。そして、指示処理部100は、図7の表に示したように、SEL90に対しLUT−A87の出力を選択するように指示し、FIFO74に対しては読み込みの継続を指示する。なお、更新用の部分LUTはLUT−B89に設定されたまま変更されない。
Here, the control of the partial LUT
他方、LUT−A87に適合しない場合には、LUT−B89に適合するか否かが判定される(S16)。そして、LUT−B89に適合した場合には、LUT−B89が採用され(S18)、SEL90に対してはLUT−B89からの出力を選択する指示がなされる。また、部分LUT予測部82に対しては、LUT−A87を更新用に設定する旨の指示が送られる(S20)。
On the other hand, if it does not conform to LUT-A87, it is determined whether or not it conforms to LUT-B89 (S16). If the LUT-B89 is matched, the LUT-B89 is adopted (S18), and the SEL90 is instructed to select the output from the LUT-B89. Also, an instruction to set the LUT-
LUT−B89にも適合しなかった場合には、SEL90に対しては、LUT−B89からの出力を選択するよう指示がなされる一方、FIFO74に対して読み込みの停止が指示される(S24)。そして、部分LUT予測部82を通じてLUT−B89の更新が行われ(S26)、更新が完了するとFIFO74に対し読み込み再開が指示される(S28)。最後に、LUT−A87が更新用に設定される(S30)。
If the LUT-
続いて、図10を用いて、部分LUT予測部82の動作について説明する。画素データが参照処理部70に入力されると(S40)、シフトレジスタ72は、画素データIN0よりも前に入力された三つの画素データIN3,IN2,IN1(これらは連続して入力されたものでも、何個か置きに選択されたものでもよい)を生成し、部分LUT予測部82に入力する(S42)。予測画素データ演算部120では、画素データIN3,IN2,IN1を用いて、線形補間を行い、予測画素データM1〜M3を順次生成する(S44)。次いで、更新処理部124は、まずM1を選択して(S46)、更新用の部分LUTとM1との適合性を調べ、更新用LUTを更新する必要があるか否かを確認する(S48,S50)。その結果、更新の必要性がないと判定された場合には、M2,M3の順で同様の処理を繰り返す(S52,S54,S46)。そして、M3に対しても更新の必要性がないと判断されたときは、次の画素データの組を対象として同様の処理を繰り返す(S54,S42)。他方、更新の必要があると判定された場合には、更新処理部124は、どの範囲の部分LUTへと更新するかを決定し(S56)、DRAM制御部84に更新用の部分LUTを更新させる(S58)。なお、更新処理部124では、部分LUT選択制御部80から、適合する部分LUTがない旨の連絡を受けると、更新用の部分LUTに対する更新を行い、処理中の画素データIN0の値に適合するデータを設定する。
Next, the operation of the partial
次に、図11と図12を用いて、部分LUT予測部82の予測時間変更部122及びヒット率評価部126の動作について説明する。図11は、動作の流れを表すフローチャートであり、図12は、図4に対応する模式的な説明図である。
Next, the operations of the prediction
図11に示すように、予測時間変更部122は、はじめ、予測時間をTαサイクル(制御信号のサイクルで時間を表現している)に設定して予測を行う。予測時間のTαサイクルは、予測の結果、部分LUTの更新を行うことになった場合に必要となる所要時間に基づいて決められているおり、例えば所要時間と同じサイクル数(部分LUTの大きさにもよるが1000サイクル程度)に設定される。図12に示した例では、画素データIN3,IN2,IN1の線形補間の結果、予測時間をTαサイクルの後には、予測画素データMαが入力されると予測されている。この予測結果は、実際に入力される画素データINαとは大きく相違している。このため、画素データINαは、その時点で参照部76に設定されているLUT−A87とLUT−B89のいずれにも適合せず、ミスヒットが発生することになる。予測時間変更部122は、このようなミスヒットがY回中X回以上発生するまでは、予測時間をTαにサイクル維持する(S62)。そして、ミスヒットがY回中X回以上発生した場合には、予測時間変更部122は、予測画素データ演算部120における予測時間をTαサイクルよりも短いTβサイクルに変更する(S64)。これは、図12に示した例では、画素データIN3,IN2,IN1を線形補間してTβ時間後に予測画素データMβが入力されると予測することに相当する。これにより、一般的には、実際に入力される画素データINβとの差(予測誤差)が減少する。
As shown in FIG. 11, the prediction
その後、Y回連続してヒットに成功(ミスヒットがない)場合には(S66)、再び予測時間をTαに設定し、予測に要する時間の節約が図られる。他方、Y回中X回以上ミスヒットが発生しない場合には、予測時間Tβが維持され(S68)、再びY回中X回以上ミスヒットが発生した場合には、予測時間変更部122は、予測画素データ演算部120における予測時間をTβよりも短いTγサイクルに変更する(S70)。図12に示したように、一般に、予測時間がTγサイクルの場合における予測画素データMγと実際に入力される画素データINγとの差は、予測時間がTβサイクルの場合に比べてさらに小さくなり、ミスヒットも減少する。そして、Y回連続してヒットに成功した場合には、予測時間がTβサイクルに戻される(S72)。予測時間をどの程度に変更するか、また、どのような条件を満たしたときに変更するかは、全体の所要時間を短縮化することを考えて決定される。
Thereafter, if the hit succeeds Y times consecutively (no miss hit) (S66), the prediction time is set to Tα again, and the time required for prediction is saved. On the other hand, when no miss occurs in X times in Y times, the prediction time Tβ is maintained (S68), and when a miss occurs in X times in Y times again, the prediction
最後に、図13を用いて、リコンフィギュラブルプロセッサ34を再構成して、部分LUTの更新を行う例について説明する。図13(a)は、図5のリコンフィギュラブルプロセッサ34に対応する図である。すなわち、参照処理部70、参照部76、及び画像処理部78が設けられ、参照部76には部分LUTとしてのLUT−A87とLUT−B89が構築されている。ここで、部分LUT予測部82によって、LUT−B89を更新すべき旨の判定が下されたとする。このとき、図5に示した例では、リコンフィギュラブルプロセッサ34の外部にあるDRAM制御部84によって、RAM16に格納されたLUT92の一部が読み出され、データメモリ86,88の所定のアドレスに格納された。これに対し、図13に示した例では、リコンフィギュラブルプロセッサ34の再構成が行われ、図13(b)に示す論理が設定される。具体的には、図13(b)では、参照処理部70と画像処理部78とが、図13(a)と同じ位置に設けられている。また、参照部76中のLUT−A87は、再構成後まで値が保全されている。そして、参照処理部70によってLUT−A87を参照し、参照結果を画像処理部78に出力する結線論理も図13(a)と同様にして設定されている。しかし、参照処理部70によってLUT−B89を参照し、参照結果を画像処理部78に出力する結線論理は、図13(b)では設定されていない。
Finally, an example in which the
代わりに、図13(b)では、リコンフィギュラブルプロセッサ34中の未使用のALUエレメントの論理仕様を変更することにより、部分LUTセット部130が設定されている。この部分LUTセット部130は、図5に示したRAM16からLUT92の一部のデータを入力し、適当なアドレスを設定してLUT−B89を更新するものである。部分LUTセット部130は、その論理をハードウエア的に構築されているため、ソフトウエア的な処理に比べて高速に(例えば書き込み時間が1/1000程度になる)LUT−B89の更新を行う。そして、これと並列的に、参照処理部70によるLUT−A87の参照と、画像処理部78による参照結果を利用した色変換処理が行われる。やがて、LUT−B89の更新が完了すると、再び図13(a)に示す論理が設定され、LUT−A87とLUT−B89を選択した色変換処理が行われる。
Instead, in FIG. 13B, the partial
10 画像処理装置、11 内部バス、12 CPU、14 ROM、16 RAM、18 HDD、20 再構成可能システム、21 UI、22 スキャナ、24 プリンタ、26 CDD、28 ネットワークインタフェース、30 ネットワーク、32 コンフィグメモリ、34 リコンフィギュラブルプロセッサ、40 アドレス変換処理部、42〜48,86,88 データメモリ、50〜56 補間処理部、70 参照処理部、72 シフトレジスタ、76 参照部、78 画像処理部、80 部分LUT選択制御部、82 部分LUT予測部、84 DRAM制御部、87 LUT−A、89 LUT−B、90 SEL、100 指示処理部、102 適合判定部、104 タグデータ変更部、106 タグデータ、120 予測画素データ演算部、122 予測時間変更部、124 更新処理部、126 ヒット率評価部、130 部分LUTセット部。 10 image processing apparatus, 11 internal bus, 12 CPU, 14 ROM, 16 RAM, 18 HDD, 20 reconfigurable system, 21 UI, 22 scanner, 24 printer, 26 CDD, 28 network interface, 30 network, 32 configuration memory, 34 reconfigurable processor, 40 address conversion processing unit, 42 to 48, 86, 88 data memory, 50 to 56 interpolation processing unit, 70 reference processing unit, 72 shift register, 76 reference unit, 78 image processing unit, 80 partial LUT Selection control unit, 82 partial LUT prediction unit, 84 DRAM control unit, 87 LUT-A, 89 LUT-B, 90 SEL, 100 instruction processing unit, 102 conformity determination unit, 104 tag data change unit, 106 tag data, 120 prediction Pixel data calculation , 122 estimated time changing unit, 124 update processing unit, 126 hit rate evaluation unit, 130 partial LUT set unit.
Claims (5)
前記処理対象データがとり得るすべてのデータ値の各々について当該データ値に対応する参照データが登録された表である参照表を記憶する第1の記憶手段と、
参照表を構成する複数の参照データの部分集合である部分参照表を複数記憶する第2の記憶手段であって、前記第2の記憶手段の容量は前記参照表全体のデータ量よりも小さいため前記第2の記憶手段に記憶された複数の部分参照表は前記参照表全体のうちの一部しかカバーしておらず、かつ前記第2の記憶手段に記憶された複数の部分参照表は、それぞれ当該部分参照表に含まれる参照データに対応する前記データ値の範囲であるデータ範囲が互いに異なっていることを特徴とする第2の記憶手段と、
入力した処理対象データの前記データ値に応じて、前記第2の記憶手段に記憶された前記複数の部分参照表の中に当該データ値に対応する前記データ範囲を持つ部分参照表がある場合には、当該部分参照表を選択部分参照表として選択し、前記第2の記憶手段に記憶された前記複数の部分参照表の中に当該データ値に対応するデータ範囲を持つ部分参照表がない場合には、当該データ値に対応するデータ範囲を持つ部分参照表を前記参照表から取得し、前記第2の記憶手段に記憶されている前記複数の部分参照表のうちのいずれかを当該取得した部分参照表に変更してから、前記第2の記憶手段内にある当該変更された部分参照表を選択部分参照表として選択し、選択した当該選択部分参照表から当該データ値に対応する参照データを参照する参照手段と、
前記入力した処理対象データの前記データ値に応じて前記参照手段が前記第2の記憶手段内の前記選択部分参照表から参照した前記参照データを用いて、前記処理対象データに対するデータ処理を行うデータ処理手段と、
前記入力した処理対象データのデータ値から、今後入力される処理対象データの前記データ値を予測する予測手段と、
前記予測手段が予測した前記今後入力される処理対象データの前記データ値が、前記第2の記憶手段に記憶された前記複数の部分参照表のいずれの前記データ範囲にも含まれない場合に、前記今後入力される処理対象データの前記データ値を含んだ前記データ範囲に対応する部分参照表を前記参照表から取得し、前記第2の記憶手段に記憶された前記複数の部分参照表のうち、前記選択部分参照表以外の一又は二以上の部分参照表を、当該取得した部分参照表に変更する変更手段と、
論理仕様を再構成可能な再構成可能回路と、
前記再構成可能回路の論理仕様を再構成する再構成手段と、
を備え、
前記参照手段、前記データ処理手段、及び前記変更手段による各処理の少なくとも一部は、前記再構成可能回路に設定された論理に基づいて行われ、
前記再構成手段は、前記予測手段が予測した前記今後入力される処理対象データの前記データ値が、前記記憶手段に記憶された前記複数の部分参照表のいずれの前記データ範囲にも含まれない場合に、前記再構成可能回路を再構成して、変更対象となった前記部分参照表を前記変更手段が変更する論理を設定し、かつ、前記部分参照表が変更された後に前記再構成可能回路を再構成して、変更された前記部分参照表を前記参照手段が参照する論理、及び、変更された前記部分参照表の参照結果に基づいて前記データ処理手段がデータ処理を行う論理を設定する、
ことを特徴とするデータ処理装置。 An input means for inputting data to be processed;
First storage means for storing a reference table that is a table in which reference data corresponding to the data value is registered for each of all the data values that can be taken by the processing target data;
The partial reference tables is a subset of the plurality of reference data constituting the reference table and a second storage means for storing a plurality, the capacity before Symbol second storage means is smaller than the data amount of the entire lookup table Therefore, the plurality of partial reference tables stored in the second storage means cover only a part of the entire reference table, and the plurality of partial reference tables stored in the second storage means are A second storage means characterized in that data ranges that are ranges of the data values corresponding to the reference data included in the partial reference table are different from each other;
When there is a partial reference table having the data range corresponding to the data value in the plurality of partial reference tables stored in the second storage unit according to the data value of the input processing target data Selects the partial reference table as the selected partial reference table, and there is no partial reference table having a data range corresponding to the data value in the plurality of partial reference tables stored in the second storage unit For acquiring a partial reference table having a data range corresponding to the data value from the reference table, and acquiring any one of the plurality of partial reference tables stored in the second storage means After changing to the partial reference table, the changed partial reference table in the second storage means is selected as the selected partial reference table, and the reference data corresponding to the data value from the selected selected partial reference table Refer to A reference means,
Data that performs data processing on the processing target data using the reference data that the reference unit refers to from the selected part reference table in the second storage unit according to the data value of the input processing target data Processing means;
A prediction means for predicting the data value of the processing target data to be input in the future from the data value of the input processing target data;
When the data value of the processing target data that is input in the future predicted by the prediction unit is not included in any of the data ranges of the plurality of partial reference tables stored in the second storage unit, The partial reference table corresponding to the data range including the data value of the processing target data to be input in the future is acquired from the reference table, and among the plurality of partial reference tables stored in the second storage unit A changing means for changing one or more partial reference tables other than the selected partial reference table to the acquired partial reference table;
A reconfigurable circuit capable of reconfiguring the logic specification; and
Reconfiguring means for reconfiguring the logic specification of the reconfigurable circuit;
Equipped with a,
At least a part of each processing by the reference unit, the data processing unit, and the changing unit is performed based on logic set in the reconfigurable circuit,
In the restructuring unit, the data value of the processing target data input in the future predicted by the prediction unit is not included in any of the data ranges of the plurality of partial reference tables stored in the storage unit In this case, the reconfigurable circuit is reconfigured, the logic for changing the partial reference table to be changed is set by the changing means, and the reconfigurable circuit is changed after the partial reference table is changed. Reconfigure the circuit and set the logic for the reference means to reference the changed partial reference table, and the logic for the data processing means to perform data processing based on the reference result of the changed partial reference table To
A data processing apparatus.
前記再構成可能回路は、論理仕様を変更可能な複数の記憶回路を備え、
前記第2の記憶手段は、二以上の前記論理回路に一又は二以上の前記部分参照表を記憶し、
前記変更手段は、前記選択部分参照表が記憶されていない前記論理回路に記憶された一又は二以上の前記部分参照表を変更する、
ことを特徴とするデータ処理装置。 The data processing apparatus according to claim 1 ,
The reconfigurable circuit includes a plurality of storage circuits capable of changing a logical specification,
The second storage means stores one or more partial reference tables in two or more logic circuits,
The changing means changes one or more of the partial reference tables stored in the logic circuit in which the selected partial reference table is not stored.
A data processing apparatus.
前記記憶回路の容量は前記参照表の大きさに比べて小さい、ことを特徴とするデータ処理装置。 The data processing apparatus according to claim 2 , wherein
The data processing apparatus according to claim 1, wherein a capacity of the storage circuit is smaller than a size of the reference table.
前記参照手段により選択されるべき部分参照表が前記第2の記憶手段により記憶されていない場合に、前記予測手段による前記処理対象データの予測態様を変更する予測態様変更手段を備える、ことを特徴とするデータ処理装置。 The data processing apparatus according to claim 1,
And a prediction mode changing unit that changes a prediction mode of the processing target data by the prediction unit when a partial reference table to be selected by the reference unit is not stored in the second storage unit. A data processing device.
前記処理対象データは、画像を構成する画素データであり、
前記データ値は、前記画素データの画素値である、ことを特徴とするデータ処理装置。 The data processing device according to any one of claims 1 to 4 , wherein the processing target data is pixel data constituting an image,
The data processing device according to claim 1, wherein the data value is a pixel value of the pixel data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007186850A JP5034738B2 (en) | 2007-07-18 | 2007-07-18 | Data processing apparatus and data processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007186850A JP5034738B2 (en) | 2007-07-18 | 2007-07-18 | Data processing apparatus and data processing program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009025954A JP2009025954A (en) | 2009-02-05 |
JP5034738B2 true JP5034738B2 (en) | 2012-09-26 |
Family
ID=40397720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007186850A Expired - Fee Related JP5034738B2 (en) | 2007-07-18 | 2007-07-18 | Data processing apparatus and data processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5034738B2 (en) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02260027A (en) * | 1989-03-31 | 1990-10-22 | Canon Inc | Printer |
JP3305266B2 (en) * | 1998-07-24 | 2002-07-22 | キヤノン株式会社 | Image processing method |
JP2002057910A (en) * | 2000-08-07 | 2002-02-22 | Canon Inc | Image processing unit, image processing method, and storage medium |
JP2004274131A (en) * | 2003-03-05 | 2004-09-30 | Canon Inc | Color conversion apparatus |
JP3756888B2 (en) * | 2003-04-17 | 2006-03-15 | 株式会社東芝 | Graphics processor, graphics card and graphics processing system |
JP4284520B2 (en) * | 2003-12-02 | 2009-06-24 | 富士ゼロックス株式会社 | Image forming apparatus, calibration method, and program thereof |
JP2007124230A (en) * | 2005-10-27 | 2007-05-17 | Seiko Epson Corp | Image forming apparatus, color converting device, and method of generating color conversion look-up table |
JP2007158968A (en) * | 2005-12-07 | 2007-06-21 | Canon Inc | Information processing apparatus and information processing method |
-
2007
- 2007-07-18 JP JP2007186850A patent/JP5034738B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009025954A (en) | 2009-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5504985B2 (en) | Data processing device | |
JP2010118081A (en) | Array transformation in behavioral synthesis tool | |
JPH06131155A (en) | Sequential processing apparatus which can be reconstituted | |
KR20060025582A (en) | Variable tap filter architecture for image processing | |
JP5023856B2 (en) | Arithmetic processing device and arithmetic processing program | |
US20100228958A1 (en) | Information processing apparatus, method for controlling information processing apparatus and computer readable medium | |
JP5776306B2 (en) | Image data processing apparatus and program | |
US7680980B2 (en) | Image forming apparatus | |
JP5034738B2 (en) | Data processing apparatus and data processing program | |
JP5277615B2 (en) | Data processing apparatus and data processing program | |
WO2017010127A1 (en) | Information processing device, method, and program | |
JP2006302132A (en) | Signal processor, reconfigurable logic circuit device and reconfigurable sequential circuit | |
JP5205843B2 (en) | Arithmetic processing device and arithmetic processing program | |
JP5835498B2 (en) | LSI and LSI manufacturing method | |
JP3836109B2 (en) | Programmable logic circuit control device, programmable logic circuit control method, and program | |
JP2002229771A (en) | Pointer register device and pointer value updating method | |
JP6919072B2 (en) | Image processing device | |
JP2005190343A (en) | Programmable logic circuit control device, method and program | |
KR102290229B1 (en) | Data generating device for parallel processing | |
JP7012168B2 (en) | Arithmetic processing unit | |
JP4646854B2 (en) | Control information supply device | |
JP6379757B2 (en) | Image processing apparatus and image forming apparatus | |
JP4760819B2 (en) | Information processing apparatus and information processing program | |
JP4821427B2 (en) | Data processing apparatus and program thereof | |
WO2011147442A1 (en) | Indirect register access for a programmable logic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100622 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110829 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110906 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111031 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120313 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120509 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120605 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120618 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150713 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |