JP5045179B2 - テーブル値変換装置 - Google Patents

テーブル値変換装置 Download PDF

Info

Publication number
JP5045179B2
JP5045179B2 JP2007079022A JP2007079022A JP5045179B2 JP 5045179 B2 JP5045179 B2 JP 5045179B2 JP 2007079022 A JP2007079022 A JP 2007079022A JP 2007079022 A JP2007079022 A JP 2007079022A JP 5045179 B2 JP5045179 B2 JP 5045179B2
Authority
JP
Japan
Prior art keywords
value
conversion
conversion module
address
correction
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
Application number
JP2007079022A
Other languages
English (en)
Other versions
JP2007293827A (ja
Inventor
祐司 渡会
邦裕 大原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2007079022A priority Critical patent/JP5045179B2/ja
Publication of JP2007293827A publication Critical patent/JP2007293827A/ja
Priority to US12/056,036 priority patent/US20080189511A1/en
Application granted granted Critical
Publication of JP5045179B2 publication Critical patent/JP5045179B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

本発明は、ルックアップテーブルとして格納されているテーブルメモリの値を変換する上で有益なテーブル値変換装置に関するものである。
通常、電子カメラ、デジタル複写機、レーザプリンタ等には、取得したデジタル画像データを所要に変換処理する画像処理装置が備えられている。そして、この種の画像処理装置には一般に、ルックアップテーブル(LUT)方式のテーブルメモリが設けられており、このテーブルメモリに例えば色補正値として格納されているテーブル値に基づいて画像データを変換することにより色補正が行われる。具体的には、取得した画像データをアドレスとして上記テーブルメモリをアクセスし、そのアドレスに対応したテーブル値を同テーブルメモリから読み出すことによって、この取得した画像データに対する色補正が実行される。
ところで、このようなLUT方式のテーブルメモリを用いて色補正を行う画像処理装置では、例えば出力する画像データのガンマ補正や、コントラスト又は彩度等の特性を強調すべく、上記テーブルメモリに格納されたテーブル値の書き換えが必要になることがある。そこで従来より、このようなテーブルメモリの書き換えを実現するための方法として、図13に例示するようないくつかの方法が提案されている。まず、その第1の方法では、図13(a)に示すように、各種特性に対応する複数のテーブルメモリTMを予めROM60に備えるとともに、例えばコントラストを強調させたいときにその特性に対応するテーブルメモリTMをCPU61を通じて読み込む。そして、その読み込んだテーブルメモリTMの値に基づいてマクロ62の持つLUT63を書き換えるようにしている(例えば特許文献1参照)。
また、第2の方法では、図13(b)に示すように、予め基準となる基準テーブルメモリSTMをROM60に備えるとともに、CPU64を通じてその基準テーブルメモリSTMから読み込んだ値を適宜に補正し、この補正した値に基づいてマクロ62の持つLUT63を書き換えるようにしている(例えば特許文献2参照)。
そして、第3の方法として、図13(c)に示すように、LUT63を有するマクロ62に対して専用の演算器65を設置するようにし、LUT63を介して出力される画像データをこの演算器65を通じて所要に演算処理することによって、上記取得した画像データに必要とされる補正や強調処理等を施すようにした方法なども考えられている。
特開平6−70165号公報 特開平6−133158号公報
これらいずれの方法を採用する場合であれ、LUT方式のテーブルメモリに格納されているテーブル値の書き換え、もしくはテーブル値の演算処理が行われることで、上記取得した画像データに対する各種補正等は確かに可能となる。ただし、これらいずれの方法も、実用上はそれぞれ以下のような不都合の存在が無視できず、いまだ改良の余地を残すものとなっている。
すなわち、図13(a)に示した第1の方法の場合には、通常、プログラムメモリとして用いられるROM60内に複数のテーブルメモリTMを用意することになるため、ROM60自体のメモリ容量が増大するという問題がある。また、図13(b)に示した第2の方法の場合には、CPU64が補正演算を行うことになるため、その演算負荷が増大し、ひいては画像処理にかかる全体の処理時間が増大してしまうといった問題がある。そして、図13(c)に示した第3の方法の場合には、一つのマクロに対して専用の一つの演算器を設置する必要があるため、マクロが増加するとそれに合わせて演算器も増加せざるを得ず、コストの増大が避けられない。
本発明は上記問題点を解決するためになされたものであって、その目的は、ルックアップテーブル方式のテーブルメモリに格納されている値をより簡便且つ効率的に書き換えることのできるテーブル値変換装置を提供することにある。
上記目的を達成するため、請求項1に記載の発明では、基準のテーブル値が格納されているメモリと、前記メモリから前記基準のテーブル値を読み出す中央演算処理装置と、前記中央演算処理装置から出力される前記基準のテーブル値に対して補正演算を行い、前記補正演算の結果に基づいて、特定の処理を行うハードウェアである機能マクロブロックに設けられたルックアップテーブルのテーブル値を変換する変換モジュールと、前記変換モジュールにより前記補正演算の施されたデータに基づき前記テーブル値が書き換えられた前記機能マクロブロックに設けられたルックアップテーブルから前記中央演算処理装置によって読み出される該書き換え後のテーブル値を、前記補正演算の施される前のデータに相当するデータに逆変換して、該逆変換後のデータを前記中央演算処理装置に出力する逆変換モジュールとを備えることとした。
このような構成によれば、中央演算処理装置すなわちCPUは、単に上記メモリから基準のテーブル値を読み出してこれを変換モジュールに出力するのみで、この変換モジュールによる補正演算を通じて自動的に変換されて対応する機能マクロブロックに設けられたルックアップテーブルに書き込まれるようになる。これにより、上記メモリ(ROM)に格納すべきテーブル値についてはこれを最小限に抑えることができるとともに、CPUの演算負荷も大幅に軽減されるようになり、しかも、上記機能マクロブロックの別にたとえ複数のルックアップテーブルが設けられる場合であれ、単一の変換モジュールを通じてそれらルックアップテーブルに書き込むべきテーブル値を変換することが可能となる。すなわち、簡便な構成でありながら、極めて効率のよいテーブル値の変換が実現されるようになる。
また、中央演算処理装置から出力されるライトデータとしてのテーブル値と、リードデータとして中央演算処理装置に入力されるテーブル値、すなわち逆変換後のデータとを同一値にすることができる。従って、例えばライトデータとリードデータとが不一致の場合に書き込みエラーと判断してしまうICE(In-Circuit Emulator)を中央演算処理装置として利用した場合であっても、書き込みエラーと判断されることを好適に抑制することができる。
請求項2に記載の発明では、前記変換モジュールは、前記中央演算処理装置により設定される変換パラメータに基づいて前記補正演算を実行することとした。変換モジュールをこのような構成とすることにより、上記補正演算にかかる自由度が増し、ひいては各種マクロブロックの内容に応じたテーブル値の変換等も可能となる。
請求項3に記載の発明では、前記変換モジュールは、前記中央演算処理装置により設定される変換パラメータに基づいて前記補正演算を実行することとした。変換モジュールをこのような構成とすることにより、上記補正演算にかかる自由度が増し、ひいては各種マクロの内容に応じたテーブル値の変換等も可能となる。また、前記逆変換モジュールは、前記変換パラメータに応じて前記中央演算処理装置により設定される逆変換パラメータに基づいて前記逆変換を実行することとした。この逆変換モジュールに設定される逆変換パラメータにより、自由度の高い補正演算によって変換されたテーブル値についても確実に逆変換を実行することができる。
請求項4に記載の発明では、前記変換モジュールには、前記中央演算処理装置により指定される機能マクロブロックに設けられたルックアップテーブルの所定アドレスが同変換モジュールにおける前記演算値の書き込み先のアドレスとして前記中央演算処理装置から入力され、前記変換モジュールは、同変換モジュールに設定される変換パラメータ及び前記書き込み先のアドレスの少なくとも一方に応じて補正値を生成し、該補正値に基づいて前記特定の補正演算を実行することとした。
変換モジュールをこのような構成とすることにより、例えば書き込み先のアドレスを利用して補正値を生成した場合には、書き込み先のアドレスに応じて変動する補正値を生成することができ、その補正値を通じて上記補正演算にかかる自由度をさらに向上させることができる。
請求項5に記載の発明では、前記変換モジュールは、前記書き込み先のアドレスから所定の基準アドレスを減算して、該書き込み先のアドレスを、前記中央演算処理装置により指定される機能マクロブロックに設けられたルックアップテーブル内におけるアドレスに変換することとした。
変換モジュールをこのような構成とすることにより、中央演算処理装置により書き込み先に指定される機能マクロブロックに設けられたルックアップテーブル内におけるアドレスに応じて変動する補正値を生成することができる。そして、その生成された補正値を通じて、上記補正演算にかかる自由度がさらに増し、ひいては各種機能マクロブロックの内容に応じたテーブル値の変換等も可能となる。
請求項6に記載の発明では、前記変換モジュールには、前記中央演算処理装置により指定される機能マクロブロックに設けられたルックアップテーブルの所定アドレスが同変換モジュールにおける前記演算値の書き込み先のアドレスとして前記中央演算処理装置から入力され、前記変換モジュールは、前記中央演算処理装置により指定される機能マクロブロックに設けられたルックアップテーブルを複数の領域に分割しつつ、前記書き込み先のアドレスの属する前記領域に応じて、前記補正値を生成するための第2演算器に入力される補正係数を設定する係数制御回路を備えることとした。
このような構成によれば、係数制御回路により、書き込み先に指定される機能マクロブロックに設けられたルックアップテーブルの各領域毎に、異なる補正係数を設定することが可能となる。この補正係数を通じて、上記補正演算に利用される補正値の設定の自由度を向上させることができる。
以上説明したように、本発明によれば、ルックアップテーブル方式のテーブルメモリに格納されている値をより簡便且つ効率的に書き換えることができる。
(第1実施形態)
以下、本発明にかかるテーブル値変換装置及びテーブル値変換書き込み方法の第1実施形態を図1〜図3に従って説明する。図1は、本実施形態にかかるテーブル変換装置の全体構成をブロック図として示したものである。
同図1に示されるように、このテーブル値変換装置は、大きくは、中央演算処理装置(CPU)10と、同CPU10の外部バスOB上に介在するように設けられた変換モジュール20と、同外部バスOBに共通接続されたROM30及びマクロ40とを備えて構成されている。
ここで、上記CPU10は、画像取込装置などによって取得されるデジタル画像データ等に基づきそのデータを変換する変換指令やテーブル値変換書き込み指令等をマクロ40(正確にはそのうちの特定のマクロ)に与えるなど、画像処理等にかかる処理を統括的に制御する部分である。
また、上記マクロ40は、特定の画像処理等の処理を行うハードウェア群であり、ここでの例では、マクロA41、マクロB42及びマクロC43といった3種のマクロを含む複数のマクロから構成されている。そして、各マクロA41〜マクロC43は、ルックアップテーブル方式のテーブルメモリとして各々特性の異なるLUT51、52及び53を有しており、通常は、CPU10から上記変換指令とともに何らかのデータ(値)が与えられることで、これを自らが持つLUTに基づき変換するなどの処理を行う。
また、これら各マクロA41〜マクロC43と上記CPU10との間の外部バスOB上に介在する上記変換モジュール20は、乗算・加算・クリップ等の演算機能を有して、主に上記LUT51〜53のテーブル値変換書き込みを実行する際のCPU10の処理を補助、仲介する部分である。すなわち、このテーブル値変換書き込みの実行に際し、上記CPU10は、外部バスOBに共通接続されている上記ROM30からLUT書き換え用の雛形となる基準テーブルメモリSTMのテーブル値TBを読み込んで、この読み込んだテーブル値TBを外部バスOBを介して変換モジュール20に出力する。またこれに先立ち、CPU10は、設定信号SSを通じて、上記テーブル値TBの補正演算に用いるための変換パラメータを変換モジュール20に対して設定する。ちなみに、ここでCPU10が変換モジュール20に対して設定する変換パラメータには、後に詳述するように、乗算値M、加算値A、クリップ上限値H及びクリップ下限値Lがある。こうして変換パラメータが設定され、且つテーブル値TBが与えられた変換モジュール20は、その与えられたテーブル値TBに対して上記設定された変換パラメータに基づく補正演算を実行し、その補正したテーブル値CTBを上記マクロ40のうちCPU10によって指定されている特定のマクロに出力する。これにより、該当するマクロのLUTがこの補正されたテーブル値CTBによって更新、すなわち書き換えられることとなる。
このように、この実施形態では、上記変換モジュール20をCPU10の外部バスOB上に介在させたことで、テーブル値の変換に際しても、CPU10は、単に上記ROM30から雛形となる基準テーブルメモリSTMのテーブル値TBを読み込んでこれを同外部バスOBに出力するのみで済むようになる。そして、こうして出力されたテーブル値TBが上記変換モジュール20による補正演算を通じて自動的に変換されて、指定されているマクロの持つLUTに書き込まれるようになる。
なお、上記変換モジュール20は、CPU10によるROM30からのテーブル値TBの読み込み時には、このROM30から読み出されたテーブル値TBをそのままCPU10に出力するように設定されている。また、同変換モジュール20は、上記各マクロのLUTを通じた通常のデータ変換処理(画像処理)の実行時には動作しないようにも設定されている。すなわち、この実施形態のテーブル値変換装置にあって、LUTを通じたこのようなデータ変換処理の実行中は変換モジュール20がいわゆる「スルー」状態となるように設定されている。
図2は、この実施形態のテーブル値変換装置に採用されている変換モジュール20の特に上記テーブル値変換を行う補正演算回路についてその内部構成例を示したブロック図であり、以下、この図2を参照して、同変換モジュール20による補正演算態様について詳述する。
この変換モジュール20は、その補正演算回路として、基本的には、乗算器21と、加算器22と、クリップ回路23とを備えている。このうち、乗算器21には、CPU10からの設定信号SSによってレジスタ等に設定される変換パラメータである乗算値Mが入力される。そして、この乗算器21は、上記CPU10から入力される基準テーブルメモリSTMのテーブル値TBである入力データDATAinに上記乗算値Mを乗算してその演算値V1を加算器22に出力する。また、加算器22には、同じくCPU10からの設定信号SSによってレジスタ等に設定される変換パラメータである加算値Aが入力される。そして、この加算器22は、上記演算値V1に上記加算値Aを加算してその演算値V2をクリップ回路23に出力する。
一方、クリップ回路23は、第1及び第2比較器25A,25Bと、第1及び第2選択回路26A,26Bを備えている。そしてこのクリップ回路23において、上記演算値V2はまず、第1比較器25A及び第1選択回路26Aに入力される。ここで、第1比較器25Aには、上記加算器22から入力される演算値V2に併せて、上述同様、CPU10からの設定信号SSによってレジスタ等に設定される変換パラメータであるクリップ上限値Hが入力される。そして、この第1比較器25Aでは、上記演算値V2とクリップ上限値Hとを比較して、演算値V2がクリップ上限値Hよりも大きいか否かを示す比較信号S1を第1選択回路26Aに出力する。ここで、この第1選択回路26Aにも、第1比較器25Aと同様に、演算値V2とクリップ上限値Hとが入力されており、この第1選択回路26Aでは、第1比較器25Aから与えられる比較信号S1に基づき、演算値V2及びクリップ上限値Hのうちのいずれか小さい方を選択してこれを出力するように動作する。すなわち、演算値V2がクリップ上限値Hよりも小さい場合には演算値V2が、またクリップ上限値Hが演算値V2よりも小さい場合にはクリップ上限値Hが、それぞれ出力値V3としてこの第1選択回路26Aから第2比較器25B及び第2選択回路26Bに対して出力される。このうち、第2比較器25Bには、この出力値V3に併せて、やはりCPU10からの設定信号SSによってレジスタ等に設定される変換パラメータであるクリップ下限値Lが入力される。そして、この第2比較器25Bでは、第1選択回路26Aによる出力値V3とクリップ下限値Lとを比較して、出力値V3がクリップ下限値Lより小さいか否かを示す比較信号S2を第2選択回路26Bに出力する。この第2選択回路26Bにも、第2比較器25Bと同様に、第1選択回路26Aによる出力値V3とクリップ下限値Lとが入力されており、この第2選択回路26Bでは、上記第2比較器25Bから与えられる比較信号S2に基づき、出力値V3又はクリップ下限値Lのうちのいずれか大きい方を選択してこれを出力するように動作する。すなわち、第1選択回路26Aによる出力値V3がクリップ下限値Lよりも大きい場合には出力値V3が、またクリップ下限値Lが上記出力値V3よりも大きい場合にはクリップ下限値Lが、それぞれ当該変換モジュール20の出力データDATAoutとしてこの第2選択回路26Bからマクロ40に対して出力される。
このように、ここで採用される変換モジュール20は、上記CPU10から入力される上記基準テーブルメモリSTMのテーブル値TB、すなわち入力データDATAinに対して、補正演算

DATAout=max(L,min(H,DATAin×M+A))・・・(1)
ただし、max(a,b):a,bのうちの大きい方を選択する関数
min(a,b):a,bのうちの小さい方を選択する関数

を実行して出力データDATAoutを得るモジュールである。これによって、上記乗算値Mや加算値Aを通じた自由度の高いテーブル値の変換が可能になるとともに、上記クリップ上限値H及びクリップ下限値Lの併用を通じて、いわばノイズ成分となるような所定の範囲から大きく外れるテーブル値の出現を抑制して入力データDATAinを変換することが可能になる。なお、雛形である上記基準テーブルメモリSTMのテーブル値TBのままマクロ40のLUTに書き込む場合には、このテーブル値TBをそのままマクロ40に出力するような設定がCPU10によってなされる。
図3は、こうしたテーブル値変換装置を用いたテーブル値変換書き込み方法についてその処理手順をフローチャートとして示したものであり、次に、この図3に基づいて同変換書き込み方法をさらに詳述する。なおここでは、上記マクロA41〜マクロC43のうち、マクロA41が持つLUT51へのテーブル値変換書き込みを例にとって説明する。
このマクロA41へのテーブル値変換書き込みに際し、上記CPU10はまず、ステップ1の処理として、上記設定信号SSを変換モジュール20に出力して、上記変換モジュール20にマクロA41のLUT51に対応した変換パラメータ、すなわち乗算値M、加算値A、クリップ上限値H及びクリップ下限値Lを設定する。ちなみにこの処理は、例えばユーザによって変換パラメータが入力設定されることに基づきCPU10がその旨を判断し、上記設定信号SSを通じてその設定内容に応じた変換パラメータを変換モジュール20に与えることによって行われる。また、CPU10によって、その都度の撮像環境等に応じた変換パラメータが自動的に変換モジュール20に設定されるようにしてもよい。そして、次にステップ2の処理として、CPU10は、上記ROM30から雛形となる基準テーブルメモリSTMのアドレスiのテーブル値TBを1アドレス分だけ読み込む。ちなみにこの処理は、例えばROM30の基準テーブルメモリSTMがアドレス0〜255のテーブル値TBを有する場合には、アドレス0のテーブル値TBから順に1アドレスずつ読み込む処理として行われる。
このようにテーブル値TBを読み込むと、CPU10は、次にステップ3の処理として、その読み込んだテーブル値TBを、マクロA41が持つLUT51の同一のアドレスiに書き込むべく外部バスOBに出力する。すなわち、上記ステップ2でROM30からアドレス0のテーブル値TBが読み込まれた場合には、CPU10はそのテーブル値TBを、マクロA41が持つLUT51のアドレス0のテーブル値を書き換えるための値として出力する。
次にステップ4の処理として、上記変換モジュール20は、このCPU10から出力されたテーブル値TBに対して上記ステップ1で設定された変換パラメータに基づく補正演算を施し補正処理を行う。具体的には、CPU10から出力されるテーブル値TBを入力データDATAinとし、補正後のテーブル値CTBを出力データDATAoutとして、上記(1)式の補正演算を実行する。
こうしてテーブル値TBが補正されると、変換モジュール20は次に、ステップ5の処理として、この出力データDATAout、すなわち補正後のテーブル値CTBをマクロA41に出力する。すなわち、上記ステップ3でのCPU10による書き込み指令に従って、マクロA41の持つLUT51の所定のアドレスiにこの補正後のテーブル値CTBを書き込む。この処理によって、マクロA41のLUT51のアドレスiのテーブル値が補正後のテーブル値CTBに書き換えられる。
その後、ステップ6の処理として、上記ROM30からのテーブル値読み込みアドレス及び上記マクロA41のLUT51へのテーブル値書き込みアドレスであるアドレスiの値と、ROM30の基準テーブルメモリSTM及びマクロA41のLUT51の総アドレス数kとを比較する。この結果、アドレスiが総アドレス数k未満であると判断された場合には、CPU10は、次にステップ7の処理として、アドレスiをインクリメントして、上記ステップ2の処理に戻る。そして、アドレスiが総アドレス数kに達するまで、すなわち全てのアドレスのテーブル値が書き変わるまで、これらステップ2〜7の処理を繰り返し実行する。そして、ステップ6の処理において、アドレスiが総アドレス数kに達したと判断されると、このマクロA41のLUT51へのテーブル値変換書き込みを終了する。これによって、マクロA41のLUT51のテーブル値を全て、しかも確実に変換することができるようになる。
以上詳述した本実施形態によれば、以下のような効果が得られるようになる。
(1)CPU10とマクロ40との間に、すなわち外部バスOB上に介在するかたちで、基準のテーブル値TBに対して補正演算を施しつつその補正されたテーブル値CTBをマクロ40の持つLUTに変換書き込みする変換モジュール20を設けた。これにより、単一の変換モジュール20を通じて複数のマクロのLUTに対するテーブル値TBの変換書き込みが可能となるため、コストを低減することができるようになる。また、上記ROM30に格納すべき基準テーブルメモリSTMについてもこれを最小限の容量に抑えることができるため、メモリ容量の増大を抑制することができるようになる。しかも、この変
換モジュール20によって、CPU10の演算負荷も大幅に軽減されるため、処理時間を短縮することができるようにもなる。すなわち、簡便な構成でありながら、各マクロの持つLUTへのテーブル値変換書き込みを極めて効率よく実現することが可能になる。
(2)変換モジュール20は、CPU10によって設定される変換パラメータ、すなわち乗算値M、加算値A、クリップ上限値H及びクリップ下限値Lに基づき、補正演算
DATAout=max(L,min(H,DATAin×M+A))・・・(1)を実行して、CPU10からの入力データDATAin(テーブル値TB)をデータDATAout(テーブル値CTB)に変換するものとした。これにより、上記乗算値Mや加算値Aを通じた自由度の高いテーブル値の変換が可能になるとともに、上記クリップ上限値H及びクリップ下限値Lの併用を通じて、いわばノイズ成分となるような所定の範囲から大きく外れるテーブル値の出現を好適に抑制することができるようになる。
(3)上記ROM30及びマクロA41〜マクロC43を上記変換モジュール20が介在するCPU10の外部バスOBに共通接続した。これにより、外部バスOBの利用効率が高められるようになるとともに、特にROM30を上記変換モジュール20の後段にバス接続するようにしたことで、装置全体としての設計自由度も高められるようになる。
(4)各LUT51〜53を用いた通常のデータ変換(画像処理)時には、上記変換モジュール20が動作しないように設定することとした。これにより、通常のデータ変換(画像処理)時における不要な電力の消費を抑えることができるようになる。
(第2実施形態)
以下、本発明にかかるテーブル値変換装置の第2実施形態を図4〜図6に従って説明する。この実施形態のテーブル値変換装置は、変換モジュールが上記第1実施形態と異なっている。以下、第1実施形態との相違点を中心に説明する。
図4は、本実施形態のテーブル値変換装置に採用されている変換モジュール70の特にテーブル値変換を行う補正演算回路についてその内部構成例を示したブロック図である。
図4に示すように、この変換モジュール70は、その補正演算回路として、基本的には、減算器71と、第2演算器を構成する乗算器72及び加算器73とを備えている。このうち、減算器71には、CPU10によって指定される特定のマクロのLUTのアドレスAddrが該CPU10から入力される。すなわち、変換モジュール70に入力されるテーブル値TBの補正後のテーブル値CTBが書き込まれるマクロのアドレスAddrがCPU10から減算器71に入力される。
図5は、CPU10から見たROM30及びマクロ40のアドレスマップである。図5に示すように、アドレス000H〜0FFHがROM30、アドレス180H〜27FHがマクロA41のLUT51、アドレス280H〜37FHがマクロB42のLUT52、アドレス400H〜4FFHがマクロC43のLUT53にそれぞれ割り当てられている。なお、周知ではあるが、「H」はその値が16進数であることを示す。
また、上記減算器71には、CPU10からの設定信号SSによって設定される基準アドレスRAが入力される。そして、減算器71は、上記アドレスAddrから上記基準アドレスRAを減算し、その減算により得られる補正値C1を乗算器72に出力する。本実施形態では、CPU10によって指定されるマクロがマクロA41のときには、基準アドレスRAがマクロA41のLUT51の先頭アドレス180Hに設定される。また、CPU10によって指定されるマクロがマクロB42のときには、基準アドレスRAがマクロB42のLUT52の先頭アドレス280Hに設定される。また、CPU10によって指定されるマクロがマクロC43のときには、基準アドレスRAがマクロC43のLUT53の先頭アドレス400Hに設定される。すなわち、本実施形態では、図6に示すように、各マクロ40のLUTの先頭アドレスがアドレスAddrして変換モジュール70に入力されたときに、補正値C1が「0」になるように基準アドレスRAが設定されている。なお、ここでの補正値C1は、CPU10によって指定される特定のマクロの持つLUT内におけるアドレスとなり、CPU10から入力されるアドレスAddrが先頭アドレスから1アドレス増加する毎にその値が「1」ずつ増加される。
上記補正値C1が入力される乗算器72には、同じくCPU10からの設定信号SSによってレジスタ等に設定される変換パラメータである乗算値Mが入力される。この乗算器72は、上記補正値C1に上記乗算値Mを乗算し、その乗算により得られる補正値C2(図6参照)を加算器73に出力する。
加算器73は、CPU10から入力される基準テーブルメモリSTMのテーブル値TB(図6参照)である入力データDATAinに上記補正値C2を加算してその演算値を、当該変換モジュール70の出力データDATAoutとして特定のマクロが持つLUTの所定のアドレスに出力する。すなわち、加算器73は、補正後のテーブル値CTBを、CPU10によって指定されているLUTのアドレスAddrに出力する。これにより、CPU10によって指定されているLUTのアドレスAddrのテーブル値が補正後のテーブル値CTBに書き換えられる。
このように、ここで採用される変換モジュール70は、上記CPU10から入力される上記基準テーブルメモリSTMのテーブル値TB、すなわち入力データDATAinに対して、補正演算
DATAout=DATAin+{(Addr−RA)×M}・・・(2)
を実行して出力データDATAoutを得るモジュールである。これによって、上記乗算値Mを通じた自由度の高いテーブル値の変換が可能になるとともに、上記アドレスAddr及び基準アドレスRAの併用を通じて、基準テーブルメモリSTMのテーブル値TBの1アドレス毎に値が異なる補正値C2によるテーブル値の変換が可能になる。
以上詳述した本実施形態によれば、第1実施形態の(1)、(3)、(4)の作用効果に加えて、以下のような効果が得られるようになる。
(5)変換モジュール70は、CPU10から入力されるアドレスAddrに所定の演算(本例では、減算と乗算)を施すようにした。これにより、基準テーブルメモリSTMのテーブル値TB(特定のマクロのLUT)の1アドレス毎に値が異なる補正値C2(図6参照)を容易に生成することができる。この補正値C2{=(Addr−RA)×M}を通じて、より自由度の高いテーブル値の変換が可能になる。ひいては、各マクロ40の内容に応じたテーブル値の変換も可能となる。
なお、例えば専用のカウンタを設けて、そのカウンタのカウント値に基づいて変換パラメータを変更することにより、基準テーブルメモリSTMのテーブル値TBの1アドレス毎に値が異なる補正値を生成することができる。しかし、この生成方法では、上記専用のカウンタ等を設置する必要があるため、コストの増大が避けられない。これに対して、本実施形態の変換モジュール70では、CPU10から元々出力されているアドレスAddrに対して所定の演算を施す演算器を追加するのみでよいため、コストの増大を抑制することができる。
(第3実施形態)
以下、本発明にかかるテーブル値変換装置の第3実施形態を図7〜図9に従って説明する。この実施形態のテーブル値変換装置は、変換モジュールが上記第1実施形態と異なっている。以下、第1実施形態との相違点を中心に説明する。
図7は、本実施形態のテーブル値変換装置に採用されている変換モジュール80の特にテーブル値変換を行う補正演算回路についてその内部構成例を示したブロック図である。
図7に示すように、この変換モジュール80は、その補正演算回路として、基本的には、減算器81と、乗算器82と、加算器83と、加算器84と、係数制御回路85とを備えている。このうち、減算器81には、上記第2実施形態の減算器71と同様に、CPU10によって指定される特定のマクロのLUTのアドレスAddrが該CPU10から入力される。この減算器81には、CPU10からの設定信号SSによって設定される基準アドレスRAが入力される。そして、減算器81は、上記アドレスAddrから上記基準アドレスRAを減算し、その減算により得られる補正値C1(図8参照)を乗算器82に出力する。
上記CPU10から入力されるアドレスAddrは、係数制御回路85にも入力される。この係数制御回路85は、入力されるアドレスAddrに応じて、補正係数としての乗算値M及び加算値Aを設定する。詳述すると、係数制御回路85は、図8に示すように、LUT全域を複数個(本例では、3個)の領域R1,R2,R3に分割して、これらの領域R1〜R3毎に異なる乗算値M及び加算値Aを設定する。すなわち、係数制御回路85は、アドレスAddrが領域R1に含まれる場合に、乗算値Mを第1乗算値M1、加算値Aを第1加算値A1に設定する。また、係数制御回路85は、アドレスAddrが領域R2に含まれる場合に、乗算値Mを第2乗算値M2、加算値Aを第2加算値A2に設定する。また、係数制御回路85は、アドレスAddrが領域R3に含まれる場合に、乗算値Mを第3乗算値M3、加算値Aを第3加算値A3に設定する。
上記補正値C1が入力される上記乗算器82には、アドレスAddrに応じて上記係数制御回路85により設定される乗算値M(第1〜第3乗算値M1〜M3)が入力される。この乗算器82は、上記補正値C1に上記乗算値Mを乗算し、その乗算により得られる補正値C2を加算器83に出力する。
加算器83には、アドレスAddrに応じて上記係数制御回路85により設定される加算値A(第1〜第3加算値A1〜A3)が入力される。この加算器83は、上記補正値C2に上記加算値Aを加算し、その加算により得られる補正値C3(図8参照)を加算器84に出力する。ここで得られる補正値C3は、図8に示すように、その傾きが領域R1〜R3毎に異なるようになっている。
加算器84は、CPU10から入力される基準テーブルメモリSTMのテーブル値TB(図8参照)である入力データDATAinに上記補正値C3を加算してその演算値を、当該変換モジュール80の出力データDATAoutとして特定のマクロが持つLUTの所定のアドレスに出力する。すなわち、加算器84は、補正後のテーブル値CTBを、CPU10によって指定されているLUTのアドレスAddrに出力する。これにより、CPU10によって指定されているLUTのアドレスAddrのテーブル値が補正後のテーブル値CTBに書き換えられる。
このように、ここで採用される変換モジュール80は、上記CPU10から入力される上記基準テーブルメモリSTMのテーブル値TB、すなわち入力データDATAinに対して、領域R1〜R3毎に下記式(3)〜(5)による補正演算を実行して出力データDATAoutを得るモジュールである。すなわち、変換モジュール80は、アドレスAddrが領域R1に含まれる場合には、下記式(3)により補正演算を実行し、アドレスAddrが領域R2に含まれる場合には、下記式(4)により補正演算を実行し、アドレスAddrが領域R3に含まれる場合には、下記式(5)により補正演算を実行する。
DATAout=DATAin+{(Addr−RA)×M1+A1}・・・(3)
DATAout=DATAin+{(Addr−RA)×M2+A2}・・・(4)
DATAout=DATAin+{(Addr−RA)×M3+A3}・・・(5)
これによって、係数制御回路85による領域R1〜R3毎の補正係数(乗算値M及び加算値A)の変更を通じて、LUTの1アドレス毎に値が異なり、且つ領域R1〜R3毎に傾きが異なる補正値C3に基づく補正が可能となる。
図9は、上記係数制御回路85による補正係数(乗算値M及び加算値A)の設定方法についてその処理手順をフローチャートとして示したものであり、次に、この図9に基づいて同設定方法をさらに詳述する。
まず係数制御回路85は、ステップ10において、CPU10からアドレスAddrが入力される。このようにアドレスAddrが入力されると、係数制御回路85は、次にステップ11の処理として、その入力されたアドレスAddrと領域R2の先頭アドレスである第1比較アドレスAD1とを比較する。この結果、アドレスAddrが第1比較アドレスAD1未満であると判断された場合、すなわちアドレスAddrが領域R1に含まれると判断された場合には、係数制御回路85は、次にステップ12の処理として、乗算値Mを第1乗算値M1に、加算値Aを第1加算値A1に設定する。
一方、上記ステップ11において、アドレスAddrが第1比較アドレスAD1以上であると判断された場合には、係数制御回路85は、次にステップ13の処理として、上記アドレスAddrと領域R3の先頭アドレスである第2比較アドレスAD2とを比較する。この結果、アドレスAddrが第2比較アドレスAD2未満であると判断された場合、すなわちアドレスAddrが領域R2に含まれると判断された場合には、係数制御回路85は、次にステップ14の処理として、乗算値Mを第2乗算値M2に、加算値Aを第2加算値A2に設定する。
一方、上記ステップ13において、アドレスAddrが第2比較アドレスAD2以上であると判断された場合、すなわちアドレスAddrが領域R3に含まれると判断された場合には、係数制御回路85は、次にステップ15の処理として、乗算値Mを第3乗算値M3に、加算値Aを第3加算値A3に設定する。
以上詳述した本実施形態によれば、第1及び第2実施形態の(1)、(3)、(4)、(5)の作用効果に加えて、以下のような効果が得られるようになる。
(6)変換モジュール80内に備えた係数制御回路85は、CPU10から入力されるアドレスAddrの属する領域に応じて、補正係数としての乗算値M及び加算値Aを変更するようにした。このとき、アドレスAddrの属する領域の判定は、図9に示すように、該アドレスAddrと、各領域R1〜R3毎の先頭アドレスとしての第1及び第2比較アドレスAD1,AD2との比較により容易に判断することができる。これらにより、アドレスAddrに応じて一定の傾きで変化する補正値C1を、図8に示すように、領域R1〜R3毎で傾きの変化する補正値C3(補正値C2)に容易に変換することができる。このような各領域R1〜R3毎の補正係数の設定により、テーブル値の変換に使用される補正値C3の設定の自由度を向上させることができる。さらに、この補正値C3を通じて、より自由度の高いテーブル値の変換が可能になる。ひいては、各マクロ40の内容に応じたテーブル値の変換も可能となる。
(第4実施形態)
以下、本発明にかかるテーブル値変換装置の第4実施形態を図10〜図12に従って説明する。先の図1〜図9に示した部材と同一の部材にはそれぞれ同一の符号を付して示し、それら各要素についての詳細な説明は割愛する。
図10に示すように、このテーブル値変換装置は、大きくは、上記CPU10と、同CPU10の外部バスOB上に介在するように設けられた変換モジュール90及び逆変換モジュール95と、上記ROM30と、上記マクロ40とを備えて構成されている。
ここで、上記変換モジュール90は、上記各実施形態で説明したように、乗算・加算等の演算機能を有して、主にマクロA41,B42にそれぞれ備えられたLUT51,52のテーブル値変換書き込みを実行する際のCPU10の処理を補助、仲介する部分である。すなわち、このテーブル値変換書き込みの実行に際し、CPU10は、上記ROM30から基準テーブルメモリSTMのテーブル値TBを読み込んで、この読み込んだテーブル値TBを変換モジュール90に出力する。またこれに先立ち、CPU10は、設定信号SSを通じて変換パラメータを変換モジュール90に対して設定する。ちなみに、ここでの変換パラメータには、乗算値M、加算値Aがある。こうして変換パラメータが設定され、且つテーブル値TBが与えられた変換モジュール90は、その与えられたテーブル値TBに対して上記設定された変換パラメータに基づく補正演算を実行し、その補正したテーブル値CTBを上記マクロ40のうちCPU10によって指定されている特定のマクロのLUTに出力する。これにより、該当するマクロのLUTがこの補正されたテーブル値CTBによって更新、すなわち書き換えられることとなる。
逆変換モジュール95は、上記変換モジュール90における演算機能とは反対の演算機能(ここでは、除算・減算)を有して、主に上記CPU10により上記LUT51,52から補正後のテーブル値CTBがリードデータとして読み出される際に、その補正後のテーブル値CTBを補正前のテーブル値TBに相当するテーブル値TBaに逆変換する部分である。すなわち、このLUT51,52からの補正後のテーブル値CTB読み出しの実行に際し、CPU10は、外部バスOBに共通接続されているLUT51あるいはLUT52に書き込まれている補正後のテーブル値CTBを読み出す。ここで、CPU10によりLUT51,52から読み出される補正後のテーブル値CTBは、上記逆変換モジュール95を通じてCPU10に入力される。また上記読み出しに先立ち、CPU10は、設定信号SSを通じて、上記補正後のテーブル値CTBの逆変換処理に用いるための逆変換パラメータを逆変換モジュール95に対して設定する。ちなみに、ここでCPU10が逆変換モジュール95に対して設定する逆変換パラメータには、除算値N、減算値Bがある。なお、ここで、逆変換パラメータである除算値N及び減算値Bは、上記テーブル値変換書き込みの際に変換モジュール90に入力された変換パラメータである乗算値M及び加算値Aと同一値になるように設定されている。すなわち、乗算値M=除算値N、加算値A=減算値Bの関係になるように逆変換パラメータが設定されている。
こうして逆変換パラメータが設定され、且つ補正後のテーブル値CTBが与えられた逆変換モジュール95は、その与えられたテーブル値CTBに対して上記設定された逆変換パラメータに基づく逆変換処理を実行し、その逆変換により得られる補正前のテーブル値TBに相当するテーブル値TBaを上記CPU10に出力する。
なお、上記逆変換モジュール95は、CPU10によるROM30からのテーブル値TBの読み込み時には、このROM30から読み出されたテーブル値TBをそのままCPU10に出力するように設定されている。
図11は、本実施形態のテーブル値変換装置に採用されている変換モジュール90のテーブル値変換を行う補正演算回路についてその内部構成例を示したブロック図である。
図11に示すように、この変換モジュール80は、その補正演算回路として、基本的には、乗算器91と、加算器92とを備えている。このうち、乗算器91には、CPU10からの設定信号SSによって設定される変換パラメータである乗算値Mが入力される。そして、この乗算器91は、上記CPU10から入力される基準テーブルメモリSTMのテーブル値TBに上記乗算値Mを乗算してその演算値V11を加算器92に出力する。また、加算器92には、同じくCPU10からの設定信号SSによって設定される変換パラメータである加算値Aが入力される。そして、この加算器92は、上記演算値V11に上記加算値Aを加算してその演算値を、補正後のテーブル値CTBとして特定のマクロの持つLUTの所定のアドレスに出力する。これにより、CPU10によって指定されているアドレスのテーブル値が補正後のテーブル値CTBに書き換えられる。
このように、ここで採用される変換モジュール90は、上記CPU10から入力される上記基準テーブルメモリSTMのテーブル値TBに対して、補正演算
CTB=TB×M+A・・・(6)
を実行してテーブル値CTBを得るモジュールである。
図12は、本実施形態のテーブル値変換装置に採用されている逆変換モジュール95の逆変換処理を行う逆変換処理回路についてその内部構成例を示したブロック図。
図12に示すように、この逆変換モジュール95は、その逆変換処理回路として、基本的には、減算器96と、除算器97とを備えている。このうち、減算器96には、CPU10からの設定信号SSによってレジスタ等に設定される逆変換パラメータである減算値B(=加算値A)が入力される。そして、この減算器96は、CPU10によって指定されるマクロのLUTから入力される補正後のテーブル値CTBから上記減算値Bを減算してその演算値V12を除算器97に出力する。また、除算器97には、同じくCPU10からの設定信号SSによってレジスタ等に設定される逆変換パラメータである除算値N(=乗算値M)が入力される。そして、この除算器97は、上記演算値V12を上記除算値Nにより除算してその演算値をCPU10に出力する。これにより、補正後のテーブル値CTBが補正前のテーブル値TBに相当するテーブル値TBaに逆変換されてCPU10に入力される。
このように、ここで採用される逆変換モジュール95は、上記CPU10によって指定されるマクロのLUTから入力される補正後のテーブル値CTBに対して、逆変換処理
TBa=(CTB−B)/N
=(CTB−A)/M
=TB
を実行して補正前のテーブル値TB(それに相当するテーブル値TBa)を得るモジュールである。
以上詳述した本実施形態によれば、第1実施形態の(1)、(3)、(4)の作用効果に加えて、以下のような効果が得られるようになる。
(7)CPU10によって指定されるマクロのLUTから読み出される補正後のテーブル値CTBを逆変換して補正前のテーブル値TBに相当するテーブル値TBaを生成して、その逆変換後のテーブル値TBaをCPU10に出力する逆変換モジュール95を設けた。これにより、CPU10からライトデータとして出力されるテーブル値TBと、リードデータとしてCPU10に入力される逆変換後のテーブル値TBaとが同一値になる。従って、例えば上記CPU10を、ライトデータとリードデータとが不一致の場合に書き込みエラーと判断してしまうICE(In-Circuit Emulator)に変更したとしても、ライトデータとリードデータとが一致するため、書き込みエラーと判断されることを回避することができる。なお、このICEは、ソフトウェアのデバックやハードウェアの動作確認を行う場合に利用されるもので、組み込み用システムの開発では必須なものである。
(他の実施形態)
なお、上記実施形態は、以下の態様で実施してもよい。
・上記各実施形態では、CPU10の外部バスOB上に設けられた変換モジュール20,70,80,90を介してその後段に、マクロA41〜マクロC43と共々、ROM30を共通接続するようにした。これに代えて、ROM30についてはこれを、CPU10に直接接続されるように設けてもよい。
・上記各実施形態では、そのテーブル値変換書き込み方法として、上記ROM30からテーブル値TBを全てのアドレスについて1アドレスずつ読み込み、それら読み込んだテーブル値TB(正確には補正されたテーブル値CTB)を1アドレスずつ特定のマクロのLUT、例えばマクロA41のLUT51へ書き込むようにした。これに限らず、例えば特定のアドレスの範囲でそれらテーブル値TBを1アドレスずつ読み込み、その特定のアドレス範囲のテーブル値TBに補正演算を施しつつ、その補正されたテーブル値CTBを特定のマクロのLUTの対応するアドレスに書き込むようにしてもよい。全てのテーブル値の書き換えが不要な場合、すなわち一部のアドレス範囲のテーブル値のみの書き換えが必要な場合、これによって上記LUTのテーブル値変換書き込み時間を短縮することができるようになる。
・上記各実施形態における変換モジュール20,70,80,90において、入力されるテーブル値TBに施す補正演算の種類は、特に制限されない。すなわち、上記各実施形態では、変換モジュール20,70,80,90に入力されるテーブル値TBに対して、主に乗算及び加算の補正演算を施すようにした。これに限らず、テーブル値TBに対して減算及び除算の補正演算を施すようにしてもよい。なお、この場合、上記第4実施形態においては、変換モジュール90の有する演算機能とは反対の演算機能を有するように逆変換モジュール95を構成することが望ましい。
・上記第1実施形態では、変換モジュール20が実行する補正演算として、CPU10から出力されるテーブル値TBに対する乗算、加算及びクリッピングを行うようにした。これに限らず、例えばクリッピングを省略した補正演算を実行するようにしてもよい。または、乗算あるいは加算のみの補正演算を実行するようにしてもよい。
・上記第2及び第3実施形態における変換モジュール70,80が、上記第1実施形態の変換モジュール20のクリップ回路23を備えるようにしてもよい。
・上記第2及び第3実施形態における変換モジュール70,80において、CPU10から入力されるアドレスAddrに施す補正演算の種類は、特に制限されない。
・上記第2及び第3実施形態におけるアドレスの割り当ては、図5に示すアドレスマップに特に制限されない。
・上記第2及び第3実施形態では、基準アドレスRAを、各マクロ40のLUTの先頭アドレスがアドレスAddrとして変換モジュール70,80に入力されたときに補正値C1が「0」となるように設定するようにしたが、これに制限されない。例えば、基準アドレスRAを、各マクロ40のLUTの先頭アドレスがアドレスAddrとして入力されたときに補正値C1が例えば「+X(X:整数)」あるいは「−X」となるように設定することにより、LUTのアドレスに+方向あるいは−方向のオフセットを設定することができる。
・上記第2実施形態では、変換モジュール70において、変換パラメータである乗算値Mと、CPU10から入力されるアドレスAddrとに基づいて補正値C2を生成し、テーブル値TBに対してその補正値C2に従って補正演算(加算)を行うようにした。これに限らず、例えば変換パラメータである乗算値Mを、テーブル値TBに対する補正演算における補正値としてそのまま利用してもよい。また、CPU10から入力されるアドレスAddrと基準アドレスRAとに基づいて生成される補正値C1を、テーブル値TBに対する補正演算における補正値としてそのまま利用してもよい。
・上記第2及び第3実施形態における基準アドレスRAを省略してもよい。この場合、CPU10から変換モジュール70,80に入力されるアドレスAddrをそのまま補正値C2の生成に利用するようにしてもよい。あるいは、CPU10から変換モジュール70,80に入力されるアドレスAddrを、テーブル値TBに対する補正演算における補正値としてそのまま利用してもよい。
・上記第3実施形態では、LUT全域を3個の領域R1,R2,R3に分割するようにしたが、この領域の分割数は特に制限されない。
・上記第3実施形態における係数制御回路85は、補正係数として乗算値M及び加算値Aを領域R1〜R3毎に変更するようにした。これに限らず、例えば係数制御回路85により、補正係数として乗算値M及び加算値Aのいずれか一方を領域R1〜R3毎に変更するようにしてもよい。
・上記第3実施形態の変換モジュール80の係数制御回路85を、上記第1及び第4実施形態の変換モジュール20,90及び逆変換モジュール95に適用してもよい。ここで、例えば第1実施形態の変換モジュール20に係数制御回路85を設ける場合には、係数制御回路85により、LUTのアドレスAddrが属する領域に応じて、第1演算器を構成する乗算器21及び加算器22に入力される補正係数としての乗算値M及び加算値Aが変更されるようになる。
以上の様々な実施の形態をまとめると、以下のようになる。
(付記1)
雛形となるテーブル値が格納されているメモリから読み出されるテーブル値を補正し、特定の処理を行うハードウェアである機能マクロの別に設けられたルックアップテーブルのテーブル値を前記補正された値に基づいて書き換えるテーブル値変換装置であって、
前記メモリから雛形となるテーブル値を読み出す中央演算処理装置の外部バス上に、同中央演算処理装置から出力されるデータに対して特定の補正演算を施しつつこの演算値に基づき前記マクロの持つルックアップテーブルのテーブル値を変換する変換モジュールを介在させたことを特徴とするテーブル値変換装置。
(付記2)
前記変換モジュールは、同変換モジュールに設定される変換パラメータに従って前記特定の補正演算を実行するものである付記1に記載のテーブル値変換装置。
(付記3)
前記変換モジュールに設定される変換パラメータが乗算値及び加算値及びクリップ下限値及びクリップ上限値からなり、前記乗算値をM、前記加算値をA、前記クリップ下限値をL、前記クリップ上限値をHとし、前記中央演算処理装置から出力されるデータをDATAin、前記変換モジュールが出力する演算値をDATAoutとするとき、前記変換モジュールは、前記補正演算として、演算

DATAout=max(L,min(H,DATAin×M+A))
ただし、max(a,b):a,bのうちの大きい方を選択する関数
min(a,b):a,bのうちの小さい方を選択する関数

を実行するものである付記2に記載のテーブル値変換装置。
(付記4)
前記メモリ及び前記マクロは前記変換モジュールが介在する前記中央演算処理装置の外部バスの後段に共通接続されており、前記変換モジュールは、同外部バスを介した前記中央演算処理装置による前記メモリからのテーブル値の読み込み時にはこの読み込まれるテーブル値を同中央演算処理装置に対してそのまま渡し、前記マクロの持つルックアップテーブルへのテーブル値の書き換え時に、前記中央演算処理装置から同外部バスに前記データとして出力される前記読み込まれたテーブル値に対して前記特定の演算処理を実行するものである付記1〜3のいずれか一つに記載のテーブル値変換装置。
付記4に記載の発明では、前記メモリ及び前記マクロは前記変換モジュールが介在する前記中央演算処理装置の外部バスの後段に共通接続されており、前記変換モジュールは、同外部バスを介した前記中央演算処理装置による前記メモリからのテーブル値の読み込み時にはこの読み込まれるテーブル値を同中央演算処理装置に対してそのまま渡し、前記マクロの持つルックアップテーブルへのテーブル値の書き換え時に、前記中央演算処理装置から同外部バスに前記データとして出力される前記読み込まれたテーブル値に対して前記特定の演算処理を実行することとした。このようなかたちで外部バスを共通利用することで、同外部バスの利用効率が高められるようになるとともに、特に上記メモリについてもこれを、変換モジュールの後段にバス接続するようにしたことで、装置全体としての設計自由度も高められるようになる。
(付記5)
前記変換モジュールにより前記特定の補正演算の施されたデータに基づき前記テーブル値が書き換えられた前記マクロの持つルックアップテーブルから前記中央演算処理装置によって読み出される該書き換え後のテーブル値を、前記特定の補正演算の施される前のデータに相当するデータに逆変換して、該逆変換後のデータを前記中央演算処理装置に出力する逆変換モジュールを備える付記1又は2に記載のテーブル値変換装置。
(付記6)
前記変換モジュールは、同変換モジュールに設定される変換パラメータに従って前記特定の補正演算を実行し、
前記逆変換モジュールは、前記変換パラメータに応じて該逆変換モジュールに設定される逆変換パラメータに従って前記逆変換を実行するものである付記5に記載のテーブル値変換装置。
(付記7)
前記逆変換モジュールは前記中央演算処理装置の外部バス上に介在されており、前記メモリ及び前記マクロは前記変換モジュール及び前記逆変換モジュールが介在する前記中央演算処理装置の外部バスの後段に共通接続されており、前記逆変換モジュールは、同外部バスを介した前記中央演算処理装置による前記メモリからのテーブル値の読み込み時にはこの読み込まれるテーブル値を同中央演算処理装置に対してそのまま渡すものである付記4〜6のいずれか一つに記載のテーブル値変換装置。
(付記8)
前記変換モジュールには、前記中央演算処理装置により指定される前記マクロの持つルックアップテーブルの所定アドレスが同変換モジュールにおける前記演算値の書き込み先のアドレスとして前記中央演算処理装置から入力され、
前記変換モジュールは、同変換モジュールに設定される変換パラメータ及び前記書き込み先のアドレスの少なくとも一方に応じて補正値を生成し、該補正値に従って前記特定の補正演算を実行する付記1〜7にいずれか一つに記載のテーブル値変換装置。
(付記9)
前記変換モジュールは、前記書き込み先のアドレスから所定の基準アドレスを減算して、該書き込み先のアドレスを、前記中央演算処理装置により指定される前記マクロの持つルックアップテーブル内におけるアドレスに変換する付記8に記載のテーブル値変換装置。
(付記10)
前記基準アドレスが、前記書き込み先に指定される前記マクロの持つルックアップテーブルの先頭アドレスである付記9に記載のテーブル値変換装置。
(付記11)
前記変換モジュールには、前記中央演算処理装置により指定される前記マクロの持つルックアップテーブルの所定アドレスが同変換モジュールにおける前記演算値の書き込み先のアドレスとして前記中央演算処理装置から入力され、
前記変換モジュールは、前記中央演算処理装置により指定される前記マクロの持つルックアップテーブルを複数の領域に分割しつつ、前記書き込み先のアドレスの属する前記領域に応じて、前記特定の補正演算を実行するための第1演算器に入力される補正係数を設定する係数制御回路を備える付記1〜10のいずれか一つに記載のテーブル値変換装置。
(付記12)
前記変換モジュールには、前記中央演算処理装置により指定される前記マクロの持つルックアップテーブルの所定アドレスが同変換モジュールにおける前記演算値の書き込み先のアドレスとして前記中央演算処理装置から入力され、
前記変換モジュールは、前記中央演算処理装置により指定される前記マクロの持つルックアップテーブルを複数の領域に分割しつつ、前記書き込み先のアドレスの属する前記領域に応じて、前記補正値を生成するための第2演算器に入力される補正係数を設定する係数制御回路を備える付記1〜11のいずれか一つに記載のテーブル値変換装置。
(付記13)
雛形となるテーブル値が格納されているメモリから読み出されるテーブル値を補正し、特定の処理を行うハードウェアである機能マクロの別に設けられたルックアップテーブルのテーブル値を前記補正された値に基づき変換して当該ルックアップテーブルに書き込む方法であって、
前記メモリから雛形となるテーブル値を読み出す中央演算処理装置の外部バス上に、同中央演算処理装置から出力されるデータに対して特定の補正演算を施しつつこの演算値に基づき前記マクロの持つルックアップテーブルのテーブル値を変換する変換モジュールを介在させ、同マクロの持つルックアップテーブルへのテーブル値の書き換え時には、この変換モジュールを通じて補正演算された演算値を該当するルックアップテーブルに対して書き込むようにしたことを特徴とするテーブル値変換書き込み方法。
(付記14)
前記変換モジュールを、同変換モジュールに設定される変換パラメータに従った補正演算が実行されるように構成し、前記マクロの持つルックアップテーブルに書き込まれる演算値が、この設定された変換パラメータに応じた値として決定されるようにした付記13に記載のテーブル値変換書き込み方法。
(付記15)
前記変換モジュールに設定する変換パラメータとして乗算値及び加算値及びクリップ下
限値及びクリップ上限値を用意するとともに、前記乗算値をM、前記加算値をA、前記クリップ下限値をL、前記クリップ上限値をHとし、前記中央演算処理装置から出力されるデータをDATAin、前記変換モジュールが出力する演算値をDATAoutとするとき、前記変換モジュールに、前記補正演算として、演算

DATAout=max(L,min(H,DATAin×M+A))
ただし、max(a,b):a,bのうちの大きい方を選択する関数
min(a,b):a,bのうちの小さい方を選択する関数

を実行させて前記マクロの持つルックアップテーブルに書き込むべき演算値を得る付記14に記載のテーブル値変換書き込み方法。
(付記16)
特定のマクロのルックアップテーブルに対応して前記変換モジュールに前記変換パラメータを設定した後、
a.前記中央演算処理装置を通じて前記メモリから前記雛形となるテーブル値を1アドレス分だけ読み込む処理、
b.この読み込みに対応して前記中央演算処理装置から前記特定のマクロのルックアップテーブルに対して書き込むべく出力される当該テーブル値を前記変換モジュールを通じて前記設定された変換パラメータに基づく補正演算により変換する処理、
c.この変換されたテーブル値を前記特定のマクロのルックアップテーブルの所定のアドレスに書き込む処理、
といったa.〜c.の処理を、前記メモリからのテーブル値読み込みアドレスと前記特定のマクロのルックアップテーブルへのテーブル値書き込みアドレスとをインクリメントしつつ、前記ルックアップテーブルの全てのテーブル値が書き換わるまで繰り返し実行する付記13又は14に記載のテーブル値変換書き込み方法。
第1実施形態のテーブル値変換装置の全体構成を示すブロック図。 第1実施形態の変換モジュールの内部構成例を示すブロック図。 第1実施形態のテーブル値変換書き込み方法を示すフローチャート。 第2実施形態の変換モジュールの内部構成例を示すブロック図。 第2実施形態のアドレスマップ。 第2実施形態のテーブル値変換を説明するための説明図。 第3実施形態の変換モジュールの内部構成例を示すブロック図。 第3実施形態のテーブル値変換を説明するための説明図。 第3実施形態の補正係数の設定方法を示すフローチャート。 第4実施形態のテーブル値変換装置の全体構成を示すブロック図。 第4実施形態の変換モジュールの内部構成例を示すブロック図。 第4実施形態の逆変換モジュールの内部構成例を示すブロック図。 (a),(b),(c)は、従来のテーブル値変換装置について、各々その構成の概要を示すブロック図。
符号の説明
10 中央演算処理装置(CPU)
20,70,80,90 変換モジュール
21,91 乗算器(第1演算器)
22,73,84,92 加算器(第1演算器)
30 ROM
40 マクロ
41〜43 マクロA〜マクロC
51〜53 ルックアップテーブル(LUT)
71,81 減算器(第2乗算器)
72,82 乗算器(第2演算器)
83 加算器(第2演算器)
85 係数制御回路
95 逆変換モジュール
OB 外部バス

Claims (6)

  1. 基準のテーブル値が格納されているメモリと、
    前記メモリから前記基準のテーブル値を読み出す中央演算処理装置と、
    前記中央演算処理装置から出力される前記基準のテーブル値に対して補正演算を行い、前記補正演算の結果に基づいて、特定の処理を行うハードウェアである機能マクロブロックに設けられたルックアップテーブルのテーブル値を変換する変換モジュールと
    前記変換モジュールにより前記補正演算の施されたデータに基づき前記テーブル値が書き換えられた前記機能マクロブロックに設けられたルックアップテーブルから前記中央演算処理装置によって読み出される該書き換え後のテーブル値を、前記補正演算の施される前のデータに相当するデータに逆変換して、該逆変換後のデータを前記中央演算処理装置に出力する逆変換モジュールと
    を備えることを特徴とするテーブル値変換装置。
  2. 前記変換モジュールは、前記中央演算処理装置により設定される変換パラメータに基づいて前記補正演算を実行することを特徴とする請求項1に記載のテーブル値変換装置。
  3. 前記変換モジュールは、前記中央演算処理装置により設定される変換パラメータに基づいて前記補正演算を実行し、 前記逆変換モジュールは、前記変換パラメータに応じて前記中央演算処理装置により設定される逆変換パラメータに基づいて前記逆変換を実行することを特徴とする請求項1又は2に記載のテーブル値変換装置。
  4. 前記変換モジュールには、前記中央演算処理装置により指定される前記機能マクロブロックに設けられたルックアップテーブルの所定アドレスが同変換モジュールにおける前記演算値の書き込み先のアドレスとして前記中央演算処理装置から入力され、
    前記変換モジュールは、同変換モジュールに設定される変換パラメータ及び前記書き込み先のアドレスの少なくとも一方に応じて補正値を生成し、該補正値に基づいて前記補正演算を実行することを特徴とする請求項1〜3にいずれか一項に記載のテーブル値変換装置。
  5. 前記変換モジュールは、前記書き込み先のアドレスから所定の基準アドレスを減算して、該書き込み先のアドレスを、前記中央演算処理装置により指定される機能マクロブロックに設けられたルックアップテーブル内におけるアドレスに変換することを特徴とする請求項4に記載のテーブル値変換装置。
  6. 前記変換モジュールには、前記中央演算処理装置により指定される機能マクロブロックに設けられたルックアップテーブルの所定アドレスが同変換モジュールにおける前記演算値の書き込み先のアドレスとして前記中央演算処理装置から入力され、
    前記変換モジュールは、前記中央演算処理装置により指定される機能マクロブロックに設けられたルックアップテーブルを複数の領域に分割しつつ、前記書き込み先のアドレスの属する前記領域に応じて、前記補正値を生成するための第2演算器に入力される補正係数を設定する係数制御回路を備えることを特徴とする請求項1〜5のいずれか一項に記載のテーブル値変換装置。
JP2007079022A 2006-03-29 2007-03-26 テーブル値変換装置 Expired - Fee Related JP5045179B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007079022A JP5045179B2 (ja) 2006-03-29 2007-03-26 テーブル値変換装置
US12/056,036 US20080189511A1 (en) 2006-03-29 2008-03-26 Table value conversion device and method for converting and writing table value

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006091274 2006-03-29
JP2006091274 2006-03-29
JP2007079022A JP5045179B2 (ja) 2006-03-29 2007-03-26 テーブル値変換装置

Publications (2)

Publication Number Publication Date
JP2007293827A JP2007293827A (ja) 2007-11-08
JP5045179B2 true JP5045179B2 (ja) 2012-10-10

Family

ID=38764361

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007079022A Expired - Fee Related JP5045179B2 (ja) 2006-03-29 2007-03-26 テーブル値変換装置

Country Status (1)

Country Link
JP (1) JP5045179B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015216454A (ja) 2014-05-08 2015-12-03 株式会社ソシオネクスト 画像処理装置及び画像処理方法
JP6470474B2 (ja) * 2015-12-09 2019-02-13 ドルビー ラボラトリーズ ライセンシング コーポレイション 補間誤差を抑えた低演算量ルックアップテーブル構築

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69324211T2 (de) * 1992-11-24 1999-11-04 Eastman Kodak Co Tonkonsistenz in einem Netzwerk für Strahlungsbilder
JPH07273972A (ja) * 1994-03-31 1995-10-20 Canon Inc カラー画像処理装置
JPH07264426A (ja) * 1994-03-25 1995-10-13 Canon Inc カラー画像処理装置
JPH07203231A (ja) * 1993-12-28 1995-08-04 Canon Inc カラー画像処理装置
JPH07177366A (ja) * 1993-12-17 1995-07-14 Canon Inc カラー画像処理装置
JPH08212339A (ja) * 1995-02-08 1996-08-20 Fuji Xerox Co Ltd 画像処理装置
EP0920223A4 (en) * 1997-03-14 2002-11-27 Sony Corp COLOR CORRECTION AND IMAGE PROCESSING METHOD AND DEVICE
JP4191854B2 (ja) * 1999-08-20 2008-12-03 東芝テック株式会社 カラー画像処理装置
US6771275B1 (en) * 2000-06-07 2004-08-03 Oak Technology, Inc. Processing system and method using a multi-dimensional look-up table
JP3826931B2 (ja) * 2003-10-30 2006-09-27 村田機械株式会社 カラー画像処理装置

Also Published As

Publication number Publication date
JP2007293827A (ja) 2007-11-08

Similar Documents

Publication Publication Date Title
US9960900B2 (en) Modeling of a physical system using two-dimensional look-up table and linear interpolation
JP5045179B2 (ja) テーブル値変換装置
JP2006293663A (ja) メモリアドレス生成装置及びそれを有したプロセッサ、メモリアドレス生成方法
KR20170036378A (ko) 렌즈 쉐이딩 정정 회로 및 이를 포함하는 장치들
US5381490A (en) Image processing apparatus for emphasizing edge components of an image
JP2014153627A (ja) 画像処理装置、画像処理方法およびプログラム
US20080189511A1 (en) Table value conversion device and method for converting and writing table value
JP6755811B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP2906814B2 (ja) 色信号変換装置
US20070286529A1 (en) Table value conversion device and method for converting and writing table value
CN201877112U (zh) 一种对图像信号进行去抖动处理的装置
JP4892010B2 (ja) 画像生成プログラム、画像生成装置、画像生成方法
JP5441535B2 (ja) 画像処理装置および画像処理方法
JP5111310B2 (ja) 画像処理方法及び画像処理装置
JP5197612B2 (ja) 画像変換装置と画像変換方法及び変換プログラム
US10510135B2 (en) Image processing apparatus, method of controlling the same, and storage medium
WO2009087760A1 (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP3722740B2 (ja) 映像処理装置及び映像処理方法
JP6273764B2 (ja) 画像処理装置
US10672107B2 (en) Image processing apparatus and method of controlling the same
US8209502B2 (en) Semiconductor integrated circuit and access controlling method of semiconductor memory
JP2017208719A (ja) 画像処理装置
JP2021103346A (ja) データ変換装置、データ変換方法、及びプログラム
JP2007300637A (ja) カラープロファイル生成装置及びカラープロファイル生成方法
JP4422825B2 (ja) 信号処理装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080730

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120125

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: 20120619

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: 20120702

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5045179

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees