(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-30
(45)【発行日】2024-09-09
(54)【発明の名称】データ変換装置、データ変換方法、及びプログラム
(51)【国際特許分類】
G06F 17/17 20060101AFI20240902BHJP
G06T 1/20 20060101ALI20240902BHJP
【FI】
G06F17/17
G06T1/20 A
(21)【出願番号】P 2019233221
(22)【出願日】2019-12-24
【審査請求日】2022-12-22
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】溝口 真彦
(72)【発明者】
【氏名】寳▲崎▼ 健太
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2018-120536(JP,A)
【文献】特開2011-81477(JP,A)
【文献】特表平9-511079(JP,A)
【文献】特開2020-135283(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/17
G06T 1/20
(57)【特許請求の範囲】
【請求項1】
入力データから二次補間処理によって出力データを得るデータ変換装置であって、
前記入力データに基づく補間範囲を決定する決定手段と、
入力データと出力データとの関係を規定しており、第一の格子間隔の範囲と前記第一の
格子間隔と異なる第二の格子間隔の範囲とを有するテーブルデータを用いて、第一の所定
数の参照データを生成する生成手段と、
前記補間範囲および前記第一の所定数の参照データに基づく二次補間処理で、前記入力
データに対応する前記出力データを得る演算手段と、
前記生成手段は、
前記補間範囲に基づき、前記第一の所定数に対応する第二の所定数のデータを前記テー
ブルデータから取得し、前記第二の所定数のデータの少なくとも一部のデータ間で補間処
理を行い、前記第一の所定数の参照データを生成することを特徴とするデータ変換装置。
【請求項2】
第一の所定数は、3つであることを特徴とする請求項1に記載のデータ変換装置。
【請求項3】
前記第二の所定数は4つであり、
前記生成手段は、前記補間範囲が前記第一の格子間隔の範囲と前記第二の格子間隔の範
囲とをまたぐ場合、前記第一の格子間隔の範囲から2つ、前記第二の格子間隔の範囲から
2つのデータを取得するか、前記第二の所定数は、前記第二の格子間隔の範囲の参照データの数よりも多く、前記生成手段は、前記補間範囲が前記第一の格子間隔の範囲と前記第二の格子間隔の範囲とをまたぐ場合、前記第一の格子間隔の範囲から第三の所定数、前記第二の格子間隔の範囲からはすべての参照データを取得することを特徴とする請求項1に記載のデータ変換装置。
【請求項4】
前記決定手段は、前記補間範囲を示すアドレスを、前記入力データに対して、同一の格
子点間隔の区間の格子点の個数と、格子点間隔と、格子点の開始座標から算出して加算し
た入力データの加算値の最上位ビット位置から求めることを特徴とする請求項1乃至請求
項3のいずれか1項に記載のデータ変換装置。
【請求項5】
前記決定手段は、同一の格子点間隔の区間の格子点の個数を2^M、格子点間隔を2^
N、入力データ範囲に0を含む位置をAとした時、入力データに対して(2^M)*(2
^N)+Aで表される加算値Dを加算することを特徴とする請求項4に記載のデータ変換
装置。
【請求項6】
前記生成手段は、上位の制御手段から与えられる演算開始信号が入力された際にすべて
の補間範囲の前記
参照データを生成することを特徴とする請求項
2に記載のデータ変換装置。
【請求項7】
前記生成手段は、隣接する二つの補間範囲に対応した二つの格子間隔が異なる間隔の格
子間隔である場合、前記隣接する二つの補間範囲における
前記二つの補間範囲の境界部に近い
データの変化の傾きが、前記二つの補間範囲で共通した
データの
変化の傾きとなる参照データを生成もしくは取得することを特徴とする請求項1乃至請求項6のいずれか1項に記載のデータ変換装置。
【請求項8】
前記テーブルデータを保持する保持手段を有することを特徴とする請求項1乃至請求項
7のいずれか1項に記載のデータ変換装置。
【請求項9】
前記生成手段は、前記隣接する二つの補間範囲の境界部に最も近い参照データを前記二
つの補間範囲のそれぞれについて前記テーブルデータから取得し、前記取得した参照デー
タを用いて前記テーブルデータに含まれない
1つ以上の参照データを生成することを特徴
とする請求項
7に記載のデータ変換装置。
【請求項10】
前記格子間隔は2のべき乗であることを特徴とする請求項
7に記載のデータ変換装置。
【請求項11】
前記第一の格子間隔と前記第二の格子間隔との比は2であることを特徴とする請求項1
乃至請求項10のいずれか1項に記載のデータ変換装置。
【請求項12】
前記第一の格子間隔は、前記第二の格子間隔よりも密であることを特徴とする請求項1
乃至請求項1
1のいずれか1項に記載のデータ変換装置。
【請求項13】
入力データから二次補間処理によって出力データを得るデータ変換方法であって、
決定手段が、前記入力データに基づく補間範囲を決定する決定工程と、
生成手段が、入力データと出力データとの関係を規定しており、第一の格子間隔の範囲
と前記第一の格子間隔と異なる第二の格子間隔の範囲とを有するテーブルデータを用いて
、第一の所定数の参照データを生成する生成工程と、
演算手段が、前記補間範囲および前記第一の所定数の参照データに基づく二次補間処理
で、前記入力データに対応する前記出力データを得る演算工程と、
前記生成工程は、
前記補間範囲に基づき、前記第一の所定数に対応する第二の所定数のデータを前記テー
ブルデータから取得し、前記第二の所定数のデータの少なくとも一部のデータ間で補間処
理を行い、前記第一の所定数の参照データを生成することを特徴とするデータ変換方法。
【請求項14】
コンピュータを、請求項1乃至請求項1
2のいずれか1項に記載のデータ変換装置の各
手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力データを変換するデータ変換装置、データ変換方法、及びプログラムに関する。
【背景技術】
【0002】
画像の階調を補正・変換する階調変換関数や、画像の形状を補正・変形する幾何変換関数は、画像の座標位置を変数とする大域関数や局所関数によって近似することができ、その多くは多項式や射影変換のような有理多項式で表現される。ただし、局所関数で近似できる場合でも、該局所関数の適用領域をきちんと定めて、該局所関数を領域境界で切り換えるのは困難である。そこで画像の補正や変形等を行うデータ処理では、局所関数値をある画素間隔ごとの格子点で評価した値をLUT(ルックアップテーブル)に保持し、該LUTから読み出した格子点の関数値を補間して、補正値や変形値として用いることが一般的に行われている。
【0003】
LUTに格納するデータは、実時間で計算する必要がないため、複雑な演算を要する高次の多項式や各種関数を用いてなるべく高精度に計算されて生成されている。それに対し、LUTから読み出したデータの補間処理等は、実時間で行う必要があるため、特許文献1に記載されているように、1次補間、あるいは3次補間を行うのが一般的である。また、特許文献2には、前述の1次補間と3次補間の中間の性能および演算規模の2次補間に関する技術も開示されている。
【0004】
しかし、高次の多項式で補間しようとすれば、乗算や加算を何回も行う必要がある上に、該多項式の係数を実時間で計算する必要があるため、回路構成は大規模になってしまう。例えば映像機器では、画素レートと演算回路の動作周波数とがほぼ同じであり、画素毎に演算を行うには、演算式に現れる乗算回数と同じだけの乗算器が必要になる。特に近年は、8K×4Kなどの高解像度映像が登場し、演算回路の動作周波数より画素レートの方が高い状況では演算回路を並列駆動する必要があり、さらに回路規模が大きくなる。
【0005】
ここで、非線形性が強い関数、言い換えると高次関数によるデータ変換を、テーブルデータと補間処理によって高精度に実現するためには、テーブルデータの格子間隔を狭くする、あるいは高次の補間処理が必要になってくる。しかしながら、格子間隔が狭いほどメモリ量は増大し、また、補間処理次数が高次になるほど演算規模は増大してしまう。よって、補間精度を上げるための回路規模が大きくなり、コストが高くなるという課題がある。
【0006】
特許文献3には、高次関数によるデータ処理を高精度かつ少ない演算量で実現可能とし、回路規模の小型化とコストの低減を可能にした、不等格子間隔の2次補間に関する技術が開示されている。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2011-81477号公報
【文献】特表平9-511079号公報
【文献】特願2019-026495号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献3においては、狭い格子間隔のテーブルデータの2点から、広い格子間隔のテーブルデータの2点を生成することにより、不等格子間隔テーブルデータ量を削減し、回路規模の小型化を実現した。一方で、特許文献3においては、補間処理に必要となるテーブルデータ量が一定ではなく、またそのテーブルデータを参照するためのアドレス計算が複雑になるため、回路規模が増大してしまう可能性があった。
【0009】
本発明は、上記課題を鑑みてなされたものであり、高次関数によるデータ変換を、より小回路規模で提供することを目的とする。
【課題を解決するための手段】
【0010】
入力データから二次補間処理によって出力データを得るデータ変換装置であって、
前記入力データに基づく補間範囲を決定する決定手段と、
入力データと出力データとの関係を規定しており、第一の格子間隔の範囲と前記第一の格子間隔と異なる第二の格子間隔の範囲とを有するテーブルデータを用いて、第一の所定数の参照データを生成する生成手段と、
前記補間範囲および前記第一の所定数の参照データに基づく二次補間処理で、前記入力データに対応する前記出力データを得る演算手段と、
前記生成手段は、
前記補間範囲に基づき、前記第一の所定数に対応する第二の所定数のデータを前記テーブルデータから取得し、前記第二の所定数のデータの少なくとも一部のデータ間で補間処理を行い、前記第一の所定数の参照データを生成することを特徴とする。
【発明の効果】
【0011】
本発明によれば、高次関数によるデータ変換を、より小回路規模で提供することが出来る。
【図面の簡単な説明】
【0012】
【
図1】実施形態のデータ処理装置の構成例を示す図である。
【
図3】実施形態における二次補間処理の説明図である。
【
図4】実施形態の二次関数係数演算部の構成例を示す図である。
【
図5】実施形態の参照データ更新部の構成例を示す図である。
【
図6】実施形態の二次補間処理の概要の説明図である。
【
図7】第3実施形態における格子間隔と入力データを示す図である。
【
図8】第3実施形態における補間範囲と参照データの関係を示す図である。
【
図9】第3実施形態における補間範囲決定部の構成例を示す図である。
【
図10】実施形態の処理を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【0014】
図1(A)および
図1(B)は本実施形態のデータ処理装置の一構成例を示した図である。
図1(A)は本実施形態のデータ変換装置100で行われる各処理に応じた各機能部を示した機能ブロック図である。
図1(B)は
図1(A)に示したデータ変換装置100を実現するデータ処理装置110のハードウェア構成例を示した図である。
【0015】
図1(B)に示すように、本実施形態のデータ処理装置110は、CPU111、RAM112、ROM113、通信I/F(インタフェース)114、記録I/F115、表示I/F116等を有しており、パーソナルコンピュータ等であるとする。また、データ処理装置110は、記録I/F115を介してハードディスクや半導体メモリ等の記録媒体120と接続され、表示I/F116を介して液晶ディスプレイ等の表示装置121に接続されているとする。また、データ処理装置110は、通信I/F114を介して、例えば撮像装置130や各種のNW(ネットワーク)131にも接続可能となされている。
【0016】
ROM113は、本実施形態に係るデータ処理プログラムを含む各種プログラム等を保持している。ROM113のプログラムはRAM112に展開されてCPU111により実行される。RAM112は、プログラムが展開される他、CPU111の作業領域として使用され、入力された画像データや処理途中の画像データ等を一時的に記憶する。
【0017】
通信I/F114は、例えば撮像装置130やネットワーク131との間で通信を行う。例えば撮像装置130やネットワーク131から送られてきた画像データなどを、通信I/F114が受信すると、それら画像データは、CPU111による制御の下で、一時的にRAM112に蓄積される。そして、それら画像データは、CPU111により必要に応じて各種画像処理等が施された後、表示I/F116を介して表示装置121の画面上に表示されたり、記録I/F115を介して記録媒体120に記録されたりする。
【0018】
CPU111は、データ処理装置110における各種処理や制御を行い、また、本実施形態に係るデータ処理プログラム等を実行して、後述するようなデータ変換処理を含む各種の画像処理を行うことができる。なお本実施形態では、
図1(A)のデータ変換装置100の各機能部の処理は、CPU111がプログラムを実行するソフトウェア処理で実現する例を挙げるが、勿論、それら各機能部の処理はそれぞれに対応した回路等のハードウェア構成で実現されてもよい。
【0019】
<二次補間処理の概要>
以下、
図1(A)と
図2~
図4と
図10を参照しながら、データ変換装置100の機能構成と、データ変換装置100において行われるデータ補間処理の基本となる二次補間処理の理論について説明する。
図2は二次補間処理の概念を、
図3は本発明で用いる不等格子間隔二次補間処理の概念を説明するための図である。
図4は本発明で用いる二次関数係数演算部を説明するための図である。
【0020】
図10は、データ変換装置100の処理を示すフローチャートである。まず
図10のフローチャートを用いて処理の内容を順に説明する。
【0021】
ステップS1001で、データ変換装置100は入力データ10を受け取ったかどうかの判定を行う。入力データ10を受け取った場合、ステップS1002において、補間範囲決定部102が入力データ10をもとに参照アドレス12と補間距離11を算出して出力する。ステップS1003では、二次関数係数演算部103が参照アドレス12をもとに二次関数係数14を算出して出力する。ステップS1004では、二次補間演算部104で、二次関数係数14と補間距離11とをもとに二次補間処理を行い、出力データ15を出力する。ステップS1001で、入力データ10を受け取らなかった場合は、補間範囲決定部102と二次関数係数演算部103と二次補間演算部104は動作しない。次にそれぞれの構成要素の動作について詳細に説明していく。
【0022】
データ変換装置100は、データ補間処理を実行するために、入力データ10に応じた二次関数係数14の算出に必要な補間範囲情報を補間範囲決定部102において決定し、参照アドレス12として出力する。同時に後述の二次補間演算部104での演算で用いる補間距離11を出力する。そして、二次関数係数演算部103において二次関数係数14を算出する。
【0023】
二次関数係数演算部103における二次関数係数14の生成には、LUTに記録された参照データを基に新たな参照データを生成することが含まれる。参照データはある画素間隔ごとの格子点での離散データである。参照データ生成については後述する。入力データ10は、画像データ、画像の輝度や座標等のデータである。二次関数係数14は、画像の階調を補正・変換する階調変換関数や、画像の形状を補正・変形する幾何変換関数によって決定されるデータである。生成した新たな参照データのうち係数データ演算に用いるデータを更新参照データ21と呼ぶ。
【0024】
ここで、更新参照データ21の一部のみが、LUTデータとして参照データ保存部101に記録されており、そのLUTデータは保存参照データ13として参照データ更新部201に供給される。そして、参照データ更新部201は、後述するような手法により、保存参照データ13の更新参照データ21を基にした演算を行うことで、不足している参照データを生成する。
【0025】
これ以降、更新参照データ21の離散的な格子点ごとの間隔を格子間隔DISと呼ぶ。格子間隔DISの詳細については後述するが、例えば、格子間隔が狭いほど、補間処理におけるデータ変換精度は高精度になるが、保持しておかなければならないテーブルデータ量は多量になる。一方、格子間隔が広いほど、データ変換精度は低精度になるが、テーブルデータ量は少量で済む。
【0026】
図2は二次補間処理の概念図であり、格子間隔DISが一定である場合の例を示している。
図2において、図中のY1、Y2、Y3、Y4は、更新参照データ21のそれぞれ離散データであり、これらY1、Y2、Y3、Y4の間隔である格子間隔DISは一定の間隔となっている。また、補間範囲A,Bは、隣接する参照データ間の中点から次の中点までの範囲であるため、それぞれ補間範囲A,Bの幅は格子間隔DISと一致している。
【0027】
ここで、例えば入力データ10がXIである場合、このデータXIに対応した最近傍の更新参照データ21はY2であり、またこのY2を中心とした前後の近傍の更新参照データ21はY1とY3である。補間範囲は補間範囲決定部102により求められ、
図2の例では、Y1とY2との間の中点M1から、Y2とY3との間の中点M2までが、補間範囲Aとして算出される。この補間範囲Aを求める際に用いられる三つの更新参照データ21は、順にY(-1)=Y1、Y(0)=Y2、Y(1)=Y3である。
【0028】
また、二次補間演算部104は、後述する線分を算出して、当該線分と中点M1、M2とを基に二次近似曲線を求め、その二次近似曲線を用いた補間処理を実行することにより、出力データ15として補間出力データYOを生成する。
【0029】
二次補間演算部104で実行される補間処理の理論式は式(1)で表される。なお、式(1)中のxは補間範囲内における入力データ10の相対位置を格子間隔DISで規格化したものであり、0~1の値をとる。また式(1)中のYは出力データ15である。
Y=(Ca・x+Cb)・x+Cc
Ca=(Y(-1)-2・Y(0)+Y(1))/2
Cb=Y(0)-Y(-1)
Cc=(Y(-1)+Y(0))/2 式(1)
二次補間演算部104は、この式(1)によって表現される二次近似曲線を基に補間処理を行う。ここで前述の二次関数係数14が式(1)のCaとCbとCcであり、また補間距離11が式(1)のxに対応する。
【0030】
二次近似曲線は、
図2の補間範囲AではY1とY2との間の中点M1並びにY2とY3との間の中点M2を通り、且つ、Y1とY2とを結ぶ線分(Y1-Y2)並びにY2とY3とを結ぶ線分(Y2-Y3)に接する曲線となる。なお、
図2の補間範囲Bの二次近似曲線についても、前述した補間範囲Aの場合と同様にして求められる。補間範囲Bにおける二次近似曲線は、Y2とY3との間の中点M2並びにY3とY4との間の中点M3を通り、且つ、Y2とY3を結ぶ線分(Y2-Y3)並びにY3とY4とを結ぶ線分(Y3-Y4)と接する曲線となる。
【0031】
つまり、隣接する補間範囲Aと補間範囲Bとの境界部において中点M2は同一の点であり、また線分(Y2-Y3)は同一の線分である。言い換えると、隣接する補間範囲Aと補間範囲Bとの境界部では中点M2と線分(Y2-Y3)とが共に共通して使用されるため、それら両補間範囲の境界部における二次近似曲線は必ず滑らかに繋がる。
【0032】
ただし、該二次近似曲線は、参照データを通らず、テーブルデータとして保持されている一連の参照データによって、入力データから出力データの変換特性が定まるものである。よって、データ変換装置100では、あらかじめ決められた変換特性を実現したいガンマ変換等に好適なデータ補間を実現することができる。
【0033】
<不等格子間隔二次補間処理の概要>
本発明の対象はテーブルデータにおける格子間隔が複数の格子間隔、つまりは不均等な格子間隔であり、入力データに応じて適用する格子間隔が変わる場合について説明する。このような不均等な格子間隔は、例えば非線形性が強い階調変換関数などに好適である。例えば、非線形性が強い低階調領域では狭い格子間隔を適用し、線形性が強い高階調領域では広い格子間隔を適用することで、低階調から高階調までの全域の階調変換精度を高く維持したまま、保持しなければならないテーブルデータ量を削減可能となる。ただしこの場合、隣接する補間範囲の境界部において、格子間隔並びに補間間隔が異なる状態になることがあるため、それら両範囲の二次近似曲線を滑らかに繋げるための施策が必要となる。本発明が採用する不等格子間隔二次補間ではこのように隣接する補間範囲の境界部において格子間隔並びに補間間隔が異なる場合に、それら両範囲の二次近似曲線を滑らかに繋げることを実現可能とする。
【0034】
<参照データ生成>
参照データ保存部101には、更新参照データ21の一部のみがテーブルデータとして記録されているため、不足している参照データを生成する。具体的には本発明において採用する二次補間の特性から、異なる補間範囲の境界部、つまりは
図3の中点M2の点おいて二次近似曲線を滑らかに繋ぐ必要がある。よって、下記の式(2)ならびに式(3)を満たすような参照データの二つのデータであるY1’とY2’を生成する。
X2+X3=X1’+X2’
Y2+Y3=Y1’+Y2’ 式(2)
式(2)の一つ目の式は各々の入力データの中点が一致することを意味し、二つ目の式は各々の出力データの中点が一致することを意味する。ゆえに、式(2)を満たすことで、補間範囲A並びに補間範囲Bの境界部となる中点M2の座標が一致するため、両補間範囲を跨いだ場合であっても二次近似曲線は連続的に滑らかに繋がることになる。
(Y3-Y2)/(X3-X2)=(Y2’-Y1’)/(X2’-X1’)
X3-X2=DIS_A
X2’-X1’=DIS_B 式(3)
式(3)は隣接する参照データ間を結ぶ線分の傾きが同じであることを意味している。ゆえに、式(3)を満たすことによって、補間範囲A並びに補間範囲Bの境界部となる中点M2の座標における、二次近似曲線の傾きを一致させることができる。
【0035】
図3は、本発明の参照データ更新部201における処理の概念を説明する図である。
図3に示している参照データのうち図中に□で表しているデータY1、Y2、Y3並び
に図中に△で表しているデータY3’はテーブルデータとして参照データ保存部101に保持されている。一方で、図中に〇で表しているデータY1’、Y2’は式(2)および式(3)から導出される式(4)の算出式により、参照データ更新部201で生成される。
Y1’=(1/2)・[(Y2+Y3)+(DIS_B/DIS_A)・(Y3-Y2)]
Y2’=(1/2)・[(Y2+Y3)-(DIS_B/DIS_A)・(Y3-Y2)]式(4)
本発明においては、式(4)を満たすことで、補間範囲A並びに補間範囲Bの境界部となる中点M2の座標における、二次近似曲線の傾きを一致させることができる。
【0036】
以上のようにして、本発明ではテーブルデータを削減することが可能である。
【0037】
なお、本発明の説明において各格子間隔は、テーブルデータを選択する際並びに相対位置xを算出する際並びに式(4)の関係式の演算負荷を軽減するために2のべき乗であることが望ましいが、これに限定されるものではない。さらに
図3で示している格子間隔DIS_BはDIS_Aの2倍として図示しているが、格子間隔の関係はこれに限定されるものではなく、例えば3倍、4倍、あるいは0.5倍、0.25倍などでもよく、正の実数倍であればよい。また、式(4)において、Y2とY3からY1’とY2’を生成する例を示しているが、これに限ったものではなく、Y1’とY2’からY2とY3を生成してもよい。
【0038】
その際は、式(2)および式(3)を基にしてY2とY3について解いた算出式を用いればよい。
【0039】
(第1実施形態)
本発明の特徴は参照データ更新部201で実施される処理を簡便に行うことであり、それにより小回路規模化を図る。
図5(A)に第1実施形態における参照データ更新部201の具体的な構成を示す。
【0040】
アドレス制御部301では、参照アドレス12の情報を基に、保存参照データ13を参照するための第一参照アドレス31を生成する。第1実施形態における第一参照アドレス31は具体的には、入力データ10に応じた補間範囲の格子間隔情報となる。また同様に第二参照アドレス32を生成し、第1実施形態における第二参照アドレス32は具体的には、上記の第一参照アドレス31に示される格子間隔のうち何番目の補間範囲かの情報である。
【0041】
参照データ読出し部302は第一参照アドレス31に従って、参照データ保存部101に保存されたデータのうち、該当する格子間隔のデータの全てと、そのデータに隣接する異なる格子間隔のデータの2つを保存参照データ13として取得する。またそれぞれを第二取得参照データ34、第一取得参照データ33として出力する。具体的には
図6を使って説明する。
図6は本実施例の参照データ更新部201における処理の概念を説明する図であり、記載内容は
図3について説明したものと同等である。
図6は
図3に対して、同一格子間隔がもつ補間範囲が4つの場合を記載している。
図6記載の格子間隔DIS_Bに対応する補間範囲B1、補間範囲B2、補間範囲B3、補間範囲B4がそれに該当する。格子間隔がDIS_Aに対応する補間範囲も4つもつが、そのうちの一つの補間範囲A4のみ図示している。本実施例において保存参照データ13は
図6記載のY3’、Y4’、Y5’、Y6’(第二取得参照データ34)、並びにY5、Y6(第一取得参照データ33)の計6データである。
【0042】
外挿処理部303は、第一取得参照データ33の2つから、式(4)に基づく処理、つまり外挿処理を実施し、Y1’並びにY2’の2つの外挿処理データ35を出力する。なお、式(4)記載の各参照データは
図3に対応したものであるため、
図6に対応するものに一部修正、読み替えが必要である。具体的には、式(4)のY2は
図6のY5であり、式(4)のY3は
図6のY6に対応する。
【0043】
データ選択部304は、外挿処理データ35と第二取得参照データ34、つまりは、
図6のY1’、Y2’、Y3’、Y4’、Y5’、Y6’の6データから第二参照アドレス32を基に、連続する3つのデータを選択し更新参照データ21として出力する。第二参照アドレス32は具体的には
図6の補間範囲B1、補間範囲B2、補間範囲B3、補間範囲B4のいずれかにいるかの情報であるため、第二参照アドレス32が、補間範囲B1を示す場合は更新参照データ21はY1’、Y2’、Y3’である。同様に、補間範囲B2を示す場合は更新参照データ21はY2’、Y3’、Y4’、補間範囲B3を示す場合は更新参照データ21はY3’、Y4’、Y5’、補間範囲B4を示す場合は更新参照データ21はY4’、Y5’、Y6’となる。
【0044】
係数データ演算部204は、式(1)に基づいて更新参照データ21(Y(-1)、Y(0)、Y(1)に対応)から二次関数係数14(Ca、Cb、Ccに対応)を演算し出力する。
【0045】
以上のようにして第1実施形態では、参照データ更新部201の処理が実行される。この処理は、参照データ保存部101から取得する保存参照データ13が常に6つであり一定となっている。また以降の外挿処理、データ選択処理においても、処理の分岐などは発生しない簡便な処理となっている。また簡便な処理であることから処理時間を短くなることも期待でき、ASICやFPGAなどに実装する際にタイミングメットさせやすく、処理に必要なサイクル数つまりは各種データを保持・伝搬させるために必要なフリップフロップの段数を少なくできる。よって、参照データ更新部201を小回路規模で実現できる。
【0046】
(第2実施形態)
第2の実施形態では、第1実施形態と参照データ更新部201の構成と処理内容の一部が異なる。以降、第1の実施形態と異なる部分を説明する。
【0047】
図5(B)に第2実施形態における参照データ更新部201の具体的な構成を示す。
【0048】
アドレス制御部301では、参照アドレス12の情報を基に、保存参照データ13を参照するための第一参照アドレス31を生成する。第1実施形態における第一参照アドレス31は具体的には、入力データ10に応じた補間範囲の格子間隔情報に加え、その格子間隔のうち2倍の格子間隔単位で数えた場合に何番目の補間範囲(粗い補間範囲と称す)かの情報である。また同様に第二参照アドレス32を生成する。第2実施形態における第二参照アドレス32は具体的には、上記の第一参照アドレス31に示される格子間隔の偶数番目かあるいは奇数番目の補間範囲かの情報である。
【0049】
参照データ読出し部302は第一参照アドレス31に従って、参照データ保存部101に保存されたデータのうち、該当する格子間隔および粗い補間範囲に該当する2つのデータ、そのデータに隣接する2つのデータを保存参照データ13として取得する。またそれぞれを第二取得参照データ34、第一取得参照データ33として出力する。本実施例において保存参照データ13は粗い補間範囲が補間範囲B1と補間範囲B2の領域である場合は
図6記載のY3’、Y4’(第二取得参照データ34)、並びにY5、Y6(第一取得参照データ33)の計4データである。同様に粗い補間範囲が補間範囲B3と補間範囲B4の領域である場合は
図6記載のY5’、Y6’(第二取得参照データ34)、並びにY3’、Y4’(第一取得参照データ33)の計4データである。
【0050】
外挿処理部303は、第一取得参照データ33の2つから、式(4)に基づく処理、つまり外挿処理を実施し、Y1’並びにY2’の2つの外挿処理データ35を出力する。なお、式(4)記載の各参照データは
図3に対応したものであるため、一部修正、読み替えが必要である。具体的には、式(4)のY2、Y3に対応するデータは、それぞれ第一取得参照データ33のデータであり、前述のように本実施例では第一取得参照データ33は粗い補間範囲に依存したものである。外挿処理部303の処理は異なる格子間隔の境界においてデータを生成するものであるため、よって粗い補間範囲が補間範囲B1と補間範囲B2の領域の場合のみ、外挿処理データ35は所望の結果を得ることになる。
【0051】
第一データ選択部305は、第一参照アドレス31を基に粗い補間範囲が補間範囲B1と補間範囲B2の領域の場合は外挿処理データ35を選択データ36として出力し、それ以外では第一取得参照データ33を選択データ36として出力する。
【0052】
第二データ選択部306は選択データ36と第二取得参照データ34、具体的には
図6において、粗い補間範囲が補間範囲B1と補間範囲B2の領域の場合は、Y1’、Y2’、Y3’、Y4’となる。それ以外の場合はY3’、Y4’、Y5’、Y6’が入力される。このように前述の第一データ選択部305の処理によって、第二データ選択部306は連続する4データが入力される。第二データ選択部306はこの4データから第二参照アドレス32が偶数番目を示す場合は4データのうち前3つを、奇数番目を示す場合は4データのうち後ろ3つを選択し更新参照データ21として出力する。
【0053】
係数データ演算部204は、式(1)に基づいて更新参照データ21(Y(-1)、Y(0)、Y(1)に対応)から二次関数係数14(Ca、Cb、Ccに対応)を演算し出力する。
【0054】
ここまでは、参照データ読出し部302において、2つの補間範囲をまとめて粗い補間範囲として第一取得参照データ33と第二取得参照データ34を取得する方法を示したが、取得する方法はこれに限らない。例えば、参照データ読出し部302は、補間範囲B1とB2では第一取得参照データ33として
図6記載のY5、Y6を出力し、第二取得参照データ34としてY3’、Y4’を出力する。補間範囲B3では第一取得参照データ33としてY6、Y3’を出力し、第二取得参照データ34としてY4’、Y5’を出力する。以降の補間範囲では取得する格子点を一個ずつずらしていくという取得方法でも良い。この場合、第一データ選択部305は前述と同様の動作をする。そして、第二データ選択部306は、補間範囲B1では入力された4データから前3つを、補間範囲B2以降は4データから後ろ3つを選択し更新参照データ21として出力する。このような方法でも前述と同様の結果を得ることが出来る。
【0055】
以上のようにして第2実施形態では、参照データ更新部201の処理が実行される。第1実施形態では、一つの格子間隔の参照データすべて読み出す必要があるため、場合によっては冗長に読み出すデータ量が多量になってしまい、他の処理が簡素化されている以上に読出し部分で回路規模が大きくなってしまう可能性があった。第2実施形態では第1実施形態と比較し、処理が複雑になってはいるものの、参照データ保存部101から取得する保存参照データ13が常に4つであり一定とすることができるため、一つの格子間隔がもつデータが多い場合に有効である。
【0056】
(第3実施形態)
第3の実施形態では、参照データ保存部101のテーブルデータの持ち方を具体的に例示するとともに、そのテーブルデータに対応する補間範囲決定部102の好適な構成例を示す。
【0057】
本実施例におけるテーブルデータは、すでに述べた
図6の内容に準ずる。つまりは、同一格子間隔がもつテーブルデータが4つ(例えば、
図6のY3’、Y4’、Y5’、Y6’)、ならびに補間範囲が4つ(例えば、
図6のB1、B2、B3、B4)での場合である。本実施例ではさらに格子間隔が1から始まり2のべき乗で大きくなる。これは
図6のDIS_AとDIS_Bの比が1:2であることを意味する。この例における格子間隔が1から4までのテーブルデータは
図7で示すようになる。ここでアドレスが0と1の格子間隔0.5となっているデータは、この2点を使った外挿処理よって格子間隔1のデータを生成するために必要である。例えば、
図6のY1’、Y2’に該当するものであり、
図7に合わせるなら、Y1_1、Y1_2(図中には出てこない、生成されるデータ)に該当する。
図7の入力座標は
図6の横軸、
図7の出力値は
図6の縦軸に対応する。
【0058】
参照データ保存部101には、実際には
図7の出力値列のみが保存されており、参照データ読出し部302から与えられる第一参照アドレスに対して、そのアドレスから第1実施形態では6データを、第2実施形態では4データを参照データ読出し部302に返す。
【0059】
図8に各補間範囲における、格子間隔、入力データ範囲、テーブルデータから読み出すデータ、つまりは、保存参照データ13、ならびに補間に使用するデータつまりは更新参照データ21の具体例を示す。
図8(A)が第1実施形態、
図8(B)が第2実施形態に対応する。
【0060】
図8(A)で示すような保存参照データ13ならびに更新参照データを取得するためのアドレスは、すでに述べたように補間範囲決定部102によって算出される第一参照アドレス31と第二参照アドレス32である。
【0061】
それぞれのアドレス算出は以下の手順によって簡便に求めることができる。具体的には、まず入力値に対して固定値を加算し、補正入力データをえる。この加算値ADD_VALは開始する格子間隔DIS_INIと、各格子間隔が持つデータ数NUMと、入力データ範囲が0である位置ADD_INIによって式(5)で決定される。ADD_INIはNUM個の同一間隔の格子点のうちの何番目に0を含む入力データ範囲が位置するかを示す数値であり、0~NUM-1のいずれかの整数で表される。
ADD_VAL = DIS_INI * NUM + ADD_INI 式(5)
なおDIS_INIならびにNUMはそれぞれ2のべき乗に限定され、本実施例ではそれぞれ1と4であり、かつADD_INI=0なので、ADD_VALは4となる。この補正入力値に対して
図9に示す概念によってアドレス情報を抽出するとともに第一参照アドレスと第二参照アドレスを算出する。まず補正入力データの最上位ビットを探索する。具体的には補正入力データが0になるまで左シフトした際のシフト量、ないしは最上位ビットが1になるまで右シフトした際のシフト量を基に得ることができる。
図9では補正入力データの4ビット目が最上位桁であった場合を示しており、最上位桁情報L=4となっている。補正入力データの4ビット目が最上位桁となるのは入力データ10が12から27の場合であり、
図8記載のように格子間隔が4の範囲をカバーしていることがわかる。説明は省略するが、入力データ10が0から3の場合つまりは格子間隔が1の場合はL=3、入力データ10が4から11の場合つまりは格子間隔が2の場合はL=4として得ることができる。同様に入力データ10が28以降は不図示ではあるが、それぞれの格子間隔に対応する情報が最上位桁情報Lとして得ることができる。なお、格子間隔DISと最上位桁情報Lとの関係は式(6)である。
DIS=2^(L-2) 式(6)
【0062】
よって、第一参照アドレス31は、第1実施形態の例では、式(7)で得られる。
第一参照アドレス=4×(L-2) 式(7)
【0063】
最上位桁情報Lの次の上位桁、
図9で示す例では3ビット目と2ビット目が上位桁データM1M2として取得する。この2ビット情報は、そのまま第二参照アドレスなる。さらに残りのデータ、
図9で示す例では1ビット目と0ビット目のデータNNが補間距離となる。なお、最上位桁情報Lの値によって、補間距離のビット幅は変わる。
【0064】
同様に第2実施例においては、若干アドレス計算方法が変わり、第一参照アドレスは式(8)となる。
第一参照アドレス=4×(L-2)+M1 式(8)
【0065】
第2実施形態の第一データ選択部305で必要となる第一参照アドレス31は実際にはM1のみによってデータ選択が行われる。第二参照アドレスはM2となり、補間距離は第1実施形態と同様にデータNNである。
【0066】
以上のようにして、補間範囲決定部102における第一参照アドレスおよび第二参照アドレスの算出は主に加算処理、ビットシフト、および特定ビットからのデータ切り出しだけでよく、小回路規模で実現可能である。
【0067】
(その他の実施形態)
本発明は、前述の各実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける一つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。
また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0068】
前述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。
【0069】
即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。例えば、二次関数係数演算部の一部は上位の制御手段から与えられる演算開始信号によって動作し、演算結果を保持しておき、画像が入力されている間は、ここで保持したデータ参照するのみにすることで電力を削減することが可能である。
【符号の説明】
【0070】
10 入力データ
11 補間距離
12 参照アドレス
13 保存参照データ
14 二次関数係数
15 出力データ
100 データ変換装置
101 参照データ保存部
102 補間範囲決定部
103 二次関数係数演算部
104 二次補間演算部