(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-02
(45)【発行日】2024-08-13
(54)【発明の名称】装置、方法、及びプログラム
(51)【国際特許分類】
G06F 17/18 20060101AFI20240805BHJP
【FI】
G06F17/18 Z
(21)【出願番号】P 2020090514
(22)【出願日】2020-05-25
【審査請求日】2023-05-23
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】溝口 真彦
【審査官】三坂 敏夫
(56)【参考文献】
【文献】米国特許出願公開第2003/0187613(US,A1)
【文献】特開2019-016002(JP,A)
【文献】特開平10-145590(JP,A)
【文献】永山 忍 他,二次近似法に基づくプログラマブル数値計算回路の構成とその合成法,情報処理学会研究報告,社団法人情報処理学会,2006年01月18日,第2006巻 第4号,第25頁~第30頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/00-17/18
(57)【特許請求の範囲】
【請求項1】
入力データに基づいて、補間範囲を決定する決定手段と、
前記入力データと出力データとの関係が複数の格子間隔で離散的に表された複数の設定値データを保持する第1テーブル内の第1テーブルデータに基づいて、第1補間範囲に対応する第1参照値データを生成する第1参照データ生成手段と、
前記第1テーブルデータと、前記第1参照値データとに基づいて、前記第1補間範囲
と隣接する第2補間範囲に対応する、第2参照値データを生成する第2参照データ生成手段と、
各補間範囲に対応する3つの参照値データのうち、近傍2つの参照値データごとに得られる2つの中点を通り、かつ該近傍2つの参照値データごとに得られる2つの線分に接する2次近似曲線を描くための2次関数係数を求める第1演算手段と、
前記2次関数係数を用いた2次補間演算により、前記入力データに対応する出力データを求める第2演算手段と、
を有することを特徴とする装置。
【請求項2】
前記複数の設定値データが、前記第1テーブル内の前記第1テーブルデータとして保存される設定値データ保存手段と、
前記第1参照値データと、前記第2参照値データとを含む参照値データが、前記第1テーブルと異なる第2テーブル内の第2テーブルデータとして保存される参照データ保存手段と、
を更に有することを特徴とする請求項1に記載の装置。
【請求項3】
前記第2参照データ生成手段は、隣接する2つの補間範囲に対応する2つの格子間隔が異なる間隔の格子間隔である場合、該隣接する2つの補間範囲における前記中点のうち該2つの補間範囲の境界部に近い中点が、該隣接する2つの補間範囲で共通となる第2参照値データを生成する、
ことを特徴とする請求項2に記載の装置。
【請求項4】
前記第2参照データ生成手段は、隣接する2つの補間範囲に対応する2つの格子間隔が異なる間隔の格子間隔である場合、該隣接する2つの補間範囲における前記線分のうち該2つの補間範囲の境界部に近い線分の傾きが、該隣接する2つの補間範囲で共通となる第2参照値データを生成する、
ことを特徴とする請求項2または3に記載の装置。
【請求項5】
前記第1参照データ生成手段は、所定の基準点と、前記第1テーブルデータに含まれる第1設定値データとに基づいて、前記第1参照値データを生成し、
前記第2参照データ生成手段は、前記第1テーブルデータに含まれる第2設定値データと、前記第1参照値データとに基づいて、前記第2参照値データを生成する、
ことを特徴とする請求項2乃至4の何れか1項に記載の装置。
【請求項6】
上位の制御手段から与えられる演算開始信号が入力された場合に、前記第1参照データ生成手段は前記第1参照値データを生成し、前記第1演算手段は前記2次関数係数を求める、
ことを特徴とする請求項2乃至5の何れか1項に記載の装置。
【請求項7】
前記入力データが入力されていないタイミングで、前記演算開始信号は入力される、
ことを特徴とする請求項6に記載の装置。
【請求項8】
前記参照データ保存手段で保存される前記第2テーブルデータが更新されたタイミングで、前記演算開始信号は入力される、
ことを特徴とする請求項6に記載の装置。
【請求項9】
前記入力データが複数ある場合に、前記参照データ保存手段は、該複数の入力データに対して共有される、
ことを特徴とする請求項2乃至8の何れか1項に記載の装置。
【請求項10】
前記複数の格子間隔の各値
の比は、2のべき乗であることを特徴とする請求項2乃至9の何れか1項に記載の装置。
【請求項11】
前記参照データ保存手段に保存される参照値データには、格子間隔が密な参照値データと、格子間隔が疎な参照データとが含まれる、
ことを特徴とする
請求項2乃至10の何れか1項に記載の装置。
【請求項12】
入力データに基づいて、補間範囲を決定するステップと、
前記入力データと出力データとの関係が複数の格子間隔で離散的に表された複数の設定値データを保持する第1テーブル内の第1テーブルデータに基づいて、第1補間範囲に対応する第1参照値データを生成するステップと、
前記第1テーブルデータと、前記第1参照値データとに基づいて、前記第1補間範囲
と隣接する第2補間範囲に対応する、第2参照値データを生成するステップと、
各補間範囲に対応する3つの参照値データのうち、近傍2つの参照値データごとに得られる2つの中点を通り、かつ該近傍2つの参照値データごとに得られる2つの線分に接する2次近似曲線を描くための2次関数係数を求めるステップと、
前記2次関数係数を用いた2次補間演算により、前記入力データに対応する出力データを求めるステップと、
を有することを特徴とする方法。
【請求項13】
コンピュータに請求項12に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像等のデータを処理するデータ処理技術に関する。
【背景技術】
【0002】
画像の階調を補正つまり変換する階調変換関数や、画像の形状を補正つまり変形する幾何変換関数は、画像の座標位置を変数とする大域関数や局所関数によって近似することができ、その多くは多項式や射影変換のような有理多項式で表現される。但し、局所関数で近似できる場合でも、該局所関数の適用領域をきちんと定めて、該局所関数を領域境界で切り換えるのは困難である。
【0003】
そこで階調補正や形状変形等を行うデータ処理では、局所関数値をある画素間隔ごとの格子点で評価した値をLUT(ルックアップテーブル)に保持し、該LUTから読み出した格子点の関数値を補間して、補正値や変形値として用いることが一般的に行われている。
【0004】
LUTに保持するデータは、実時間で計算する必要がないため、複雑な演算を要する高次の多項式や各種関数を用いてなるべく高精度に計算されて生成されている。それに対し、LUTから読み出したデータの補間処理等は、実時間で行う必要があるため、特許文献1に記載されているように、1次補間、或いは3次補間を行うのが一般的である。また、特許文献2には、前述の1次補間と3次補間との中間の性能および演算規模の2次補間に関する技術も開示されている。
【0005】
しかし、高次の多項式で補間しようとすれば、乗算や加算を何回も行う必要がある上に、該多項式の係数を実時間で計算する必要があるため、回路構成は大規模になってしまう。例えば映像機器では、画素レートと演算回路の動作周波数とがほぼ同じであり、画素毎に演算を行うには、演算式に現れる乗算回数と同じだけの乗算器が必要になる。特に近年は、8K×4Kなどの高解像度映像が登場し、演算回路の動作周波数より画素レートの方が高い状況では演算回路を並列駆動する必要があり、さらに回路規模が大きくなる。
【0006】
ここで、非線形性が強い関数、言い換えると高次関数によるデータ変換を、テーブルデータと補間処理によって高精度に実現するためには、テーブルデータの格子間隔を狭くする、あるいは高次の補間処理が必要になってくる。しかしながら、格子間隔が狭いほどメモリ量は増大し、また、補間処理次数が高次になるほど演算規模は増大してしまう。よって、補間精度を上げるための回路規模が大きくなり、コストが高くなるという課題がある。
【0007】
そこで出願人は、特許文献3において、高次関数によるデータ処理を高精度かつ少ない演算量で実現可能とし、回路規模の小型化とコストの低減を可能にした、不均等格子間隔の2次補間に関する技術を開示した。
【先行技術文献】
【特許文献】
【0008】
【文献】特開2011-81477号公報
【文献】特表平9-511079号公報
【文献】特願2019-026495
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、特許文献3において採用する2次補間処理では、出力する補間曲線が設定点を通らないため、設定値の算出が複雑となってしまうという課題があった。
【0010】
そこで本発明の一実施形態は、上記の課題に鑑み、設定値を容易に算出可能な高次関数によるデータ変換を、簡便な構成で実現することを目的とする。
【課題を解決するための手段】
【0011】
本発明の一実施形態は、入力データに基づいて、補間範囲を決定する決定手段と、前記入力データと出力データとの関係が複数の格子間隔で離散的に表された複数の設定値データを保持する第1テーブル内の第1テーブルデータに基づいて、第1補間範囲に対応する第1参照値データを生成する第1参照データ生成手段と、前記第1テーブルデータと、前記第1参照値データとに基づいて、前記第1補間範囲と隣接する第2補間範囲に対応する、第2参照値データを生成する第2参照データ生成手段と、各補間範囲に対応する3つの参照値データのうち、近傍2つの参照値データごとに得られる2つの中点を通り、かつ該近傍2つの参照値データごとに得られる2つの線分に接する2次近似曲線を描くための2次関数係数を求める第1演算手段と、前記2次関数係数を用いた2次補間演算により、前記入力データに対応する出力データを求める第2演算手段と、を有することを特徴とする装置である。
【発明の効果】
【0012】
本発明の一実施形態によれば、設定値を容易に算出可能な高次関数によるデータ変換を、簡便な構成で実現することが可能になる。
【図面の簡単な説明】
【0013】
【
図1】第1の実施形態における装置の構成を示すブロック図
【
図2】格子間隔DISが一定である場合の2次補間処理の説明図
【
図3】格子間隔DISが一定でない場合の2次補間処理の説明図
【
図4】第1の実施形態における係数演算部の詳細な構成を示すブロック図
【
図5】第1の実施形態における参照データ生成部が実行する処理のフローチャート
【
図6】第2の実施形態におけるデータ変換装置の構成を示すブロック図
【
図7】第1の実施形態における2次補間処理の別の例の説明図
【
図8】第1の実施形態における参照データ生成部が実行する処理の説明図
【
図9】第2の実施形態におけるデータ処理装置が実行する処理のフローチャート
【発明を実施するための形態】
【0014】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。尚、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【0015】
[第1の実施形態]
<データ処理装置の構成>
図1(a)及び
図1(b)は、本実施形態における装置の一構成例を示す図である。
図1(a)は、本実施形態におけるデータ変換装置100で行われる各処理に応じた各機能部を示す機能ブロック図である。
図1(b)は、
図1(a)に示したデータ変換装置100を実現するデータ処理装置110のハードウェア構成を示すブロック図である。
【0016】
データ処理装置110は、具体的にはパーソナルコンピュータ等であり、
図1(b)に示すように、CPU111と、RAM112と、ROM113と、通信インタフェース(以下I/Fと略記する)114と、記憶I/F115と、表示I/F116と、を有する。また、データ処理装置110は、記憶I/F115を介してハードディスクや半導体メモリ等の記憶媒体120と接続され、表示I/F116を介して液晶ディスプレイ等の表示装置121に接続されている。また、データ処理装置110は、通信I/F114を介して、例えばカメラ等の撮像装置130や各種のネットワーク(NWと略記する)131にも接続されている。尚、データ処理装置は、情報処理装置とも呼ばれる。
【0017】
ROM113には、本実施形態に係るデータ処理プログラムを含む各種プログラム等が記憶されている。ROM113に記憶されているプログラムは、RAM112に展開されてCPU111により実行される。RAM112は、プログラムが展開される他、CPU111の作業領域として使用され、入力された画像データや処理途中の画像データ等が一時的に記憶される。
【0018】
通信I/F114は、例えば撮像装置130やネットワーク131との間で通信を行う。例えば、撮像装置130やネットワーク131から送られてきた画像データ等を、通信I/F114が受信した場合、それら画像データは、CPU111による制御の下で、RAM112に一時的に記憶される。そして、それら画像データは、CPU111により必要に応じて各種画像処理等が施される。その後、画像データに基づいて、表示I/F116を介して表示装置121の画面上に画像が表示されたり、画像データが、記憶I/F115を介して記憶媒体120に記憶されたりする。
【0019】
CPU111は、データ処理装置110における各種処理や制御を行い、また、本実施形態に係るデータ処理プログラム等を実行して、後述するようなデータ変換処理を含む各種の画像処理を行う。尚、本実施形態では、
図1(a)に示したデータ変換装置100の各機能部の処理は、CPU111がプログラムを実行するソフトウェア処理で実現するものとして説明する。但し、勿論、それら各機能部の処理を、それぞれに対応した回路等のハードウェア構成で実現してもよい。
【0020】
<2次補間処理の概要>
以下、
図1(a)及び
図2~
図4を参照しながら、データ変換装置100の機能構成と、データ変換装置100において行われるデータ補間処理の基本となる2次補間処理の理論とについて説明する。
図2は、2次補間処理の概念を説明するための図である。
図3は、本実施形態で採用する不均等な格子間隔の2次補間処理の概念を説明するための図である。
図4は、本実施形態における係数演算部の機能構成の一例を示すブロック図である。
【0021】
データ変換装置100は、データ補間処理を実行するために、入力データ10に応じた補間範囲情報を範囲決定部102において決定し、参照アドレス12として出力する。係数演算部103は、参照アドレス12に応じたLUTつまりは参照データ保存部101に保存される参照値テーブル内に保持されるデータ(参照値テーブルデータとする)13に基づいて、2次関数係数14を算出する。係数演算部103ではまず、参照値テーブルデータ13に基づいて、新たな参照データである更新参照データ21を、参照データ更新部201(
図4参照)で生成する。更新参照データ21は、ある画素間隔ごとの格子点での離散データである。参照データ生成については後述する。この更新参照データ21に基づいて、係数データ演算部204にて2次関数係数14を算出する。
【0022】
入力データ10は、画像データ、画像の輝度や座標等のデータである。2次関数係数14は、画像の階調を補正(具体的には変換)する階調変換関数や、画像の形状を補正(具体的には変形)する幾何変換関数によって決定されるデータである。2次関数係数14と入力データ10とに基づいて、補間演算部104は、2次近似曲線である出力データ15を算出し、出力する。
【0023】
これ以降、更新参照データ21の離散的な格子点ごとの間隔を格子間隔DISと呼ぶ。格子間隔DISの詳細については後述するが、例えば、格子間隔が狭いほど、補間処理におけるデータ変換精度は高精度になるが、保持しておかなければならないテーブルデータ量は多量になる。一方、格子間隔が広いほど、データ変換精度は低精度になるが、保持しておかなければならないテーブルデータ量は少量で済む。
【0024】
図2は、2次補間処理の概念図であり、格子間隔DISが一定である場合の例を示している。
図2中のY
1、Y
2、Y
3、Y
4はそれぞれ、更新参照データ21における離散データであり、これらY
1、Y
2、Y
3、Y
4の間隔である格子間隔DISは一定の間隔となっている。また、補間範囲A及び補間範囲Bはそれぞれ、隣接する参照データ間の中点から次の中点までの範囲であるため、補間範囲Aと補間範囲Bとの各幅は格子間隔DISと一致している。
【0025】
ここで、例えば入力データ10がX
Iである場合、このデータX
Iに対応する最近傍の更新参照データ21はY
2であり、またこのY
2を中心とした近傍2つの(前後の)更新参照データ21はY
1とY
3である。補間範囲は範囲決定部102により求められ、
図2の例では、Y
1とY
2との間の中点M
1から、Y
2とY
3との間の中点M
2までが、補間範囲Aとして算出される。この補間範囲Aを求める際に用いられる3つの更新参照データ21は、順にY(-1)=Y
1、Y(0)=Y
2、Y(1)=Y
3である。
【0026】
また、補間演算部104は、後述する線分を算出して、当該線分と中点M1、M2とに基づき2次近似曲線を求め、その2次近似曲線を用いた補間処理を実行することにより、出力データ15として補間出力データY0を生成する。
【0027】
補間演算部104で実行される補間処理の理論式は、式(1)~(4)で表される。尚、式(1)中のxは、補間範囲内における入力データ10の相対位置を格子間隔DISで規格化したものであり、0~1の値をとる。また、式(1)~(4)中のYは、出力データ15である。
【0028】
【0029】
【0030】
【0031】
【0032】
補間演算部104は、式(1)によって表現される2次近似曲線に基づく補間処理を行う。2次近似曲線は、
図2中の補間範囲AではY
1とY
2との間の中点M
1及びY
2とY
3との間の中点M
2を通り、且つ、Y
1とY
2とを結ぶ線分(Y
1-Y
2)及びY
2とY
3とを結ぶ線分(Y
2-Y
3)に接する曲線となる。尚、
図2中の補間範囲Bの2次近似曲線についても、前述した補間範囲Aの場合と同様に求められる。補間範囲Bにおける2次近似曲線は、Y
2とY
3との間の中点M
2及びY
3とY
4との間の中点M
3を通り、且つ、Y
2とY
3とを結ぶ線分(Y
2-Y
3)及びY
3とY
4とを結ぶ線分(Y
3-Y
4)に接する曲線となる。
【0033】
つまり、隣接する補間範囲Aと補間範囲Bとの境界部において中点M2は同一の点であり、また線分(Y2-Y3)は同一の線分である。言い換えると、隣接する補間範囲Aと補間範囲Bとの境界部では、中点M2と線分(Y2-Y3)とが共に共通して使用されるため、それら両補間範囲の境界部における2次近似曲線は必ず滑らかに繋がる。尚、この2次近似曲線は、参照データ生成部を通らずに、テーブルデータとして保持されている一連の参照データによって、入力データから出力データの変換特性が定まるものである。従って、データ変換装置100では、予め決められた変換特性を実現したいガンマ変換等に好適なデータ補間を実現することができる。
【0034】
<格子間隔DISが一定でない場合の2次補間処理の概要>
本実施形態の特徴の一つは、テーブルデータにおける格子間隔の各値が一定でない場合、つまりは格子間隔が不均等な場合を考慮することである。以下、入力データに応じて適用する格子間隔が変わる場合について説明する。
【0035】
このような不均等な格子間隔は、非線形性が強い階調変換関数などに好適である。例えば、非線形性が強い低階調領域では狭い格子間隔を適用し、線形性が強い高階調領域では広い格子間隔を適用することで、低階調から高階調までの全域の階調変換精度を高く維持したまま、保持しなければならないテーブルデータ量を低減可能となる。但しこの場合、隣接する補間範囲の境界部において、格子間隔と補間間隔とが異なる状態になることがあるため、それら両補間範囲の2次近似曲線を滑らかに繋げるための施策が必要となる。本実施形態における格子間隔が不均等な場合の2次補間では、このように隣接する補間範囲の境界部において格子間隔と補間間隔とが異なる場合に、それら両補間範囲の2次近似曲線を滑らかに繋げることを実現可能とする。
【0036】
<参照データ生成>
参照データ保存部101には、必要な更新参照データ21の一部のみがテーブルデータとして保存されているため、不足している参照データを参照データ更新部201にて生成する。具体的には、本実施形態において採用する2次補間の特性から、異なる補間範囲の境界部、つまりは
図3の中点M
2において2次近似曲線を滑らかに繋ぐために、下記の式(5)~(9)を満たすような、参照データの2データであるY
1’とY
2’を生成する。
【0037】
【0038】
【0039】
式(5)は各々の入力データの中点が一致することを意味し、式(6)は各々の出力データの中点が一致することを意味する。従って、式(5)及び式(6)を満たすことで、補間範囲A及び補間範囲Bの境界部となる中点M2の座標が一致するため、両補間範囲を跨いだ場合であっても2次近似曲線は連続的に滑らかに繋がることになる。
【0040】
【0041】
【0042】
【0043】
式(7)は隣接する参照データ間を結ぶ線分の傾きが同じであることを意味している。従って、式(7)を満たすことで、補間範囲A及び補間範囲Bの境界部となる中点M2の座標における、2次近似曲線の傾きを一致させることができる。
【0044】
図3は、本実施形態における参照データ更新部201による処理の概念を説明する図である。
図3に示している参照データのうち、□で表しているデータY
1、Y
2、Y
3及び△で表しているデータY
3’はテーブルデータとして参照データ保存部101に保持されている。一方で、図中に〇で表しているデータY
1’、Y
2’は、式(5)~(9)から導出される、式(10)及び式(11)に従って、参照データ更新部201で生成される。
【0045】
【0046】
【0047】
本実施形態では、式(10)及び式(11)を満たすことで、補間範囲A及び補間範囲Bの境界部となる中点M2の座標における、2次近似曲線の傾きを一致させることができる。
【0048】
尚、前述の説明における各格子間隔の値は、テーブルデータを選択する際及び相対位置xを算出する際、並びに、式(10)及び式(11)の関係式の演算負荷を軽減するために2のべき乗であることが望ましいが、これに限定されるものではない。さらに、
図3で示している格子間隔DIS_BはDIS_Aの2倍としているが、格子間隔の関係はこれに限定されるものではなく、例えば3倍、4倍、または0.5倍、0.25倍などでもよく、正の実数倍であればよい。また、式(10)及び式(11)を用いて、Y
2とY
3とに基づいて、Y
1’とY
2’を生成する例を示しているが、これに限ったものではなく、Y
1’とY
2’とに基づいて、Y
2とY
3を生成してもよい。その際は、式(5)~(9)に基づいて、Y
2とY
3とについて解いた算出式を用いればよい。
【0049】
さらには、テーブルデータの持ち方に関しても前述したものに限定されない。例えば、
図7は、本実施形態に係る参照データ更新部201における処理の概念の別の例を説明する図である。
図7に示している参照データのうち、図中に□で表しているデータY
1、Y
2、及び、図中に△で表しているデータY
2’、Y
3’は、テーブルデータとして参照データ保存部101に保持されている。一方で、図中に〇で表しているデータY
3及びY
1’は、式(5)~(9)に基づいて導出される式(12)及び式(13)の算出式に従って、参照データ更新部201で生成される。
【0050】
【0051】
【0052】
本実施形態の特徴は、係数演算部103が必要とする参照データ保存部101に保存される参照値テーブルデータ13を、設定値データ保存部105に保存されている設定値テーブルデータ16に基づいて、参照データ生成部106で生成することである。
【0053】
設定値データ保存部105には、上位の制御手段から与えられる設定値であり、本実施形態におけるデータ変換装置100の2次補間の演算結果の出力データ15において実際に通したいデータが保存される。
【0054】
図8は、本実施形態における参照データ生成処理の概念を説明するための図である。これはある特定の格子間隔に対して4つの補間範囲を持つ例であり、格子間隔DIS_Aと格子間隔DIS_Bとの2つの格子間隔の領域を図示している。尚、格子間隔DIS_Bの部分については補間範囲B1、補間範囲B2、補間範囲B3、補間範囲B4が記載されているが、格子間隔DIS_Aの部分については補間範囲A4のみ記載している。(補間範囲A1、補間範囲A2、補間範囲A3は省略している。)
【0055】
設定値データ保存部105には、
図8に記載しているM1~M5の設定値データが設定値テーブルデータ16の一部として保存されており、これらM1~M5はデータ変換装置100の出力、つまりは2次近似曲線のカーブが実際に通るポイントとなる。また、
図8中のY
4、Y
5、Y
6、Y
3’、Y
4’、Y
5’、Y
6’が、参照データ保存部101に保存しなければならない参照値テーブルデータ13の一部である。設定値テーブルデータ16の位置(横軸)は、参照値テーブルデータ13の各点の位置(横軸)の中点に配置される。これは、本実施形態で採用する2次補間演算の結果出力される2次近似曲線(つまり出力データ15)が、前述の参照値テーブルデータ13に収められている各データの中点を通ることを考慮している。即ち、新たな設定値テーブルデータ16のポイントをその中点に配置し、かつ、該ポイントを通るように参照値テーブルデータを生成することで、本実施形態の目的である設定点を通る2次近似曲線を実現する。
【0056】
<参照データ生成部106が実行する処理>
図5は、参照データ生成部106が実行する一連の処理のフローチャートである。まず処理開始時、つまりは参照データ生成の1回目では、ステップS501にて、設定値テーブルデータ16の1つと所定の基準点とに基づいて、参照データを生成する。具体的には、
図8中の設定値データM
5と基準点Pとに対する外挿演算あるいは内挿演算である式(14)~(16)の演算によって、参照値データY
4’、Y
5’、Y
6’を生成する。尚、この基準点とは例えば、入力データ10の最大階調のポイントである。
【0057】
【0058】
【0059】
【0060】
ここでDIS_Bは求める参照値データの格子間隔であり、Y4’、Y5’、Y6’の場合はDIS_Bであるが、別の格子間隔の場合はその値となる。以上の通り、Y4’とY6’は設定値データM5と基準点Pの外挿点であり、Y5’は設定値データM5と基準点Pの内挿点であるため、Y4’~ Y6’は直線に乗ることになる。つまり、この3つの参照点を使う補間範囲である補間範囲B4は、2次近似曲線ではなく直線の出力特性となる。
【0061】
次にステップS502にて、格子間隔の境界面かを判定する。本ステップの判定結果が真の場合、ステップS503に移る一方、該判定結果が偽の場合、S504に移る。具体的に説明すると、例えば
図8のケースでは、Y
1’のデータまでを参照したか判定する。1回目のステップS502では、Y
4’のデータまでしか参照していないため、ステップS504に移る。
【0062】
ステップS504にて、全ての補間範囲の参照値データを生成したかを判定する。本ステップの判定結果が真の場合、ステップS506に移る一方、該判定結果が偽の場合、S505に移る。1回目のステップS504では、まだ全ての補間範囲の参照値データを生成していないので、ステップS505に移る。
【0063】
ステップS505では、ステップS501で算出した参照値データY4’と新たな設定値データM4とに対する外挿演算である式(17)の演算によって、参照値データY3’を生成する。
【0064】
【0065】
図8に示すように、Y
3’を算出する式(17)は、Y
4’とM
4とを用いた、同一の格子間隔DIS_Bの外挿演算となっている。
【0066】
以上の処理ステップを繰り返し、Y1’まで算出されたときステップS502の条件分岐によってステップS503に移る。ステップS503では、格子間隔が異なる境界面での処理を行う。具体的に本ステップで生成する参照値データは、格子間隔がDIS_AであるY6、Y5であり、これらを算出するために仮参照データとしたY2’とY1’とに対する内挿演算である式(18)及び式(19)の演算によって、参照値データY5、Y6を生成する。
【0067】
【0068】
【0069】
図8に示すように、Y
2’とY
1’との格子間隔はDIS_B、Y
5とY
6との格子間隔はDIS_Aとなっており、式(18)及び式(19)は、異格子間隔の内挿演算となっている。尚、次回以降の格子間隔がDIS_Aと変わるのでその値を保存する。そして再び、同一格子間隔の処理であるステップS506に移る。
【0070】
以上の処理を全ての補間範囲の参照値データが生成されるまで繰り返し、処理が完了したらステップS504の条件分岐を抜けてステップS506によって生成した参照値データを参照データ保存部101に保存する。
【0071】
以上のようにして本実施形態では、出力データ15を、外部から設定される設定値テーブルデータ16を通る2次近似曲線とすることができる。これにより、外部からの設定者が余計な演算を実行する必要がなくなり、設定にかかる手間を省略することが可能となる。
【0072】
第1の実施形態では基準点、つまりは入力階調の最大ポイントが補間範囲B4にある場合について説明したが、基準点の位置は補間範囲B2、補間範囲B3にあってもよい。その場合は、入力階調の最大ポイントが補間範囲B4にある場合と同様の手順によって処理が実行される。さらに基準点の位置が格子間隔の境界面となる補間範囲B1にある場合も同様の手順でよく、まず該境界面の処理から実行されることになる。
【0073】
尚、基準点は入力階調の最大ポイントに限られず、それ以外のポイントを採用してよい。例えば、入力階調の最小ポイントを基準点として採用してもよく、その場合は、すでに述べた手順が低階調側から実行されることになる。また、基準点が入力階調の任意の1ポイントであった場合、そのポイントから低階調側に決定していく工程と高階調側に決定していく工程との2工程を実行すればよい。さらには、基準点は入力階調の範囲外の点であってもよく、例えば基準点が入力階調の最大ポイントを超えるポイントの場合は、前述の手順と同様の手順で高階調側から決めていけばよい。一方、基準点が入力階調の最小ポイントより小さいポイントの場合は、前述の手順と同様の手順で低階調側から決めていけばよい。
【0074】
また、前述の形態では、全ての補間範囲の参照値データの生成が完了した後に、参照値データを保存するフローを例示したが、参照値データを保存するタイミングはこれに限られず、保存すべき参照値データを参照データ保存部101に適宜保存してよい。さらに、本実施形態で述べた初期参照値データのY4’、Y5’、Y6’のうち、Y4’のみが次回の処理過程で使用される。従って、Y4’のみ参照データ生成部106で生成してもよい。但しその場合、Y5’、Y6’を生成するための演算を係数演算部103で実行する必要がある。
【0075】
[第2の実施形態]
本実施形態の特徴は、参照データ生成部106と参照データ保存部101とが演算開始信号が入力された場合にのみ動作することである。尚、以降では、既述の実施形態との差分について主に説明し、既述の実施形態と同様の内容については説明を適宜省略する。
【0076】
図6は、本実施形態におけるデータ変換装置100で行われる各処理に応じた各機能部を示す機能ブロック図である。
図9は、本実施形態におけるデータ変換装置100が実行する一連の処理のフローチャートである。
【0077】
第1の実施形態に対して、本実施形態におけるデータ変換装置100では、演算開始信号11が追加されている。参照データ生成部106と参照データ保存部101とは、この演算開始信号11が入力された際に動作する。つまり、ステップS901において、CPU111は、演算開始信号11を受け取ったかの判定を行う。
【0078】
演算開始信号11を受け取った場合、ステップS902にて、参照データ生成部106による処理が実行される。尚、ステップS902の処理内容は、第1の実施形態と同様の処理、具体的にはステップS500の処理である(
図5参照)。
【0079】
尚、演算開始信号11を受け取らなかった場合は、参照データ生成部106は動作せず、参照データ保存部101に保存される参照値テーブルデータ13は更新されない。
【0080】
次に、入力データ10の入力に基づいて実行される処理を説明する。ステップS903において、CPU111は、入力データ10が入力されたかの判定を行う。
【0081】
入力データ10が入力された場合(S903でYESの場合)、ステップS904にて、範囲決定部102による処理が実行され、ステップS905にて、係数演算部103による処理が実行され、ステップS906にて、補間演算部104による処理が実行される。それぞれの処理内容は、第1の実施形態で述べた処理内容と同じである。特に、係数演算部103が読み出す参照値テーブルデータ13は、前述のステップS902において生成された参照値テーブルデータ13となる。
【0082】
尚、入力データ10が入力されない場合(S903でNOの場合)は、範囲決定部102、係数演算部103、及び補間演算部104は動作しない。
【0083】
このように、本実施形態におけるデータ変換装置100では、主に参照データ生成部106と参照データ保存部101とが演算開始信号11が入力された場合にのみ動作するため、その消費電力を低減することができる。
【0084】
尚、演算開始信号11は、入力データ10が入力されている期間以外であればいつ入力されてもよい。例えば画像処理装置の場合、演算開始信号11の入力タイミングは画像入力期間以外であればいつでもよい。参照データ保存部101のデータが更新された場合や、入力データ10が一時的に入力されていない期間であるフレーム間の非画像入力期間(Vブランキング)や水平走査間の非画像入力期間(Hブランキング)が例として考えられる。これにより、参照値テーブルデータ13は入力データ10が入力される以前に決定されており、入力データ10の入力中は参照データ保存部101から読み出されるのみとなる結果、データ変換装置100の処理速度を向上できる。
【0085】
[その他の実施形態]
本発明は、前述の各実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0086】
前述の実施形態は、何れも本発明を実施するにあたっての具体例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならない。
【0087】
即ち、本発明は、その技術的思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。各実施形態では入力データが1つの場合を記載したが、例えばRGBなど3つの入力データに対して補間処理を実施する場合にも適用可能である。このとき、第2実施形態においてRGBの補間カーブが同一である場合、3つの入力データに対して設定値データ保存部と参照データ生成部と参照データ保存部の全てあるいはいずれかを共有することで回路規模を削減することが可能である。さらには、前述の共有する回路は、非画像入力期間に演算を完了させればよいため、マルチサイクルでの演算を実施することでさらに回路規模を削減することが可能である。
【0088】
尚、前述の実施形態では、複数の格子間隔を持つ例、つまり不均等な格子間隔の例について述べたが、単一の格子間隔のみの場合においても、前述の実施形態を適用可能である。その場合は、異なる格子間隔の境界部での処理が省略される。
【符号の説明】
【0089】
10 入力データ
13 参照値テーブルデータ
14 2次関数係数
15 出力データ
100 データ変換装置
101 参照データ保存部
102 範囲決定部
103 係数演算部
104 補間演算部
105 設定値データ保存部
106 参照データ生成部