(57)【要約】 【課題】  テーブルサイズを小さくするとともに、Ｙ＝Ｘｍ／ｎを小さい誤差で演算することができる信号処理装置を提供する。【解決手段】  スケール変換部１は、入力値Ｘを２のべき数で表現したときのそのべき数に応じて定まるスケール変換量Ｅを生成すると共に、スケール変換量Ｅを用いてＸをスケール変換することにより修正入力値Ｇを生成する。係数演算部２は、スケール変換量Ｅとｍおよびｎとによって定まる補正係数ｋとビットシフト量Ｆとを算出する。ＬＵＴ３は、修正入力値に対応する修正出力値を定める。演算部４は、補正係数ｋを用いて修正出力値Ｈを補正すると共に、その補正結果をビットシフト量Ｆ分ビットシフトして出力値Ｙを求める。【選択図】    図１
2006129352.tif 000002
【特許請求の範囲】
【請求項１】
入力値Ｘに対して出力値Ｙ＝Ｘｍ／ｎ（ｍ＜ｎ）を求める信号処理装置であって、
前記Ｘを２のべき数で表現したときのそのべき数に応じて定まるスケール変換量を生成すると共に、前記スケール変換量を用いて前記Ｘをスケール変換することにより修正入力値を生成するスケール変換部と、
前記スケール変換量と前記ｍおよびｎとによって定まる補正係数とビットシフト量とを算出する係数算出部と、
前記修正入力値に対応する修正出力値を定めるテーブルと、
前記補正係数を用いて前記修正出力値を補正すると共に、その補正結果を前記ビットシフト量分ビットシフトして前記出力値Ｙを求める演算部と、
を具備することを特徴とする信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力値Ｘに対して出力値Ｙ＝Ｘｍ／ｎ（ｍ＜ｎ）を求める信号処理装置に関する。
【背景技術】
【０００２】
デジタル信号処理において、入力値Ｘに対して、Ｘｍ／ｎ（ｍおよびｎは正の整数）の演算が必要な状況が多々存在する。例えば、映像信号処理においては、ＲＧＢやＹＣｒＣｂ空間で色調整を行うよりも人間の視覚特性に対応付けやすいＬ＊ａ＊ｂ＊空間（１９７６年にＣＩＥ（国際照明委員会）が定めた均等色空間の一つ）のような均等色空間で色を扱った方が調整しやすいが、ＲＧＢやＹＣｒＣｂ空間から均等色空間に変換するためには立方根演算が必要となる。また、音声信号処理においても、ＭＰＥＧ２オーディオ符号化方式ＡＡＣのように、符号化ビットストリームの量子化信号の４／３乗の演算が必要となる。
【０００３】
一般に、これらの演算をハードウエアで実現する際には、入力値と出力値との対応関係を予め記憶し、入力値に対応する出力値を定めるテーブルを用いて演算を行う方法が公知であるが、この方法においてはテーブルが非常に大きくなってしまうという問題があった。この問題を解決するため、特許文献１においては、入力値Ｘに対して、ある大きさを超えたＸに対しては、スケール変換を施して値を小さくしてからテーブルに入力し、テーブルからの出力に対してスケール変換の影響を相殺する処理を施すことによって結果を得る方法が提案されている。
【０００４】
この方法によれば、入力値Ｘの値域の全てをテーブルとして持つ必要はなく、０から所定の領域までをテーブルとして持つだけでよくなり、テーブルのサイズが小さくなる。入力値をスケール変換すると誤差が大きくなってくるが、この誤差を小さくするため、理想の入力値を挟む２つの入力値から得られる出力値ＰとＱとから線形補間することにより出力値を理想値に近づけている。
【特許文献１】特許第３４９３５７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示された方法では、テーブルとして持っておく領域は、０から所定の領域までであり、入力値が所定の領域の範囲内の値である場合には、入力値はスケール変換されず、その入力値に対応した出力値が出力される。一方、入力値が所定の領域を超えてスケール変換された場合には、スケール変換された値は、図５に示す、テーブルで持っておく範囲のうち、（所定の領域の最大値÷２）から所定の領域の最大値までの間に必ず入る。言い換えると、テーブルで持っておく範囲のうち、入力値Ｘが０から（所定の領域の最大値÷２）までの範囲のテーブルは、入力値Ｘの値が元々その範囲にあったときだけしか利用されていない。
【０００６】
上記の方法において、入力値Ｘをスケール変換して得られる値をＧとすると、ＸとＧの関係は図６のようになる。図中の「所定の領域の最大値」は、図５に示す「所定の領域の最大値」に等しい。図６に示すように、Ｇが０から（所定の領域の最大値÷２）までの値となるのは、Ｘが０から（所定の領域の最大値÷２）までの値のときだけであり、それ以外のＸに対応するＧは必ず（所定の領域の最大値÷２）から所定の領域の最大値までとなる。このため、図５に示すように、入力値Ｘが０から（所定の領域の最大値÷２）までの範囲のテーブルは、入力値Ｘの値が元々その範囲にあったときだけしか利用されていないのである。
【０００７】
特に、Ｙ＝Ｘｍ／ｎにおいて、ｍ＜ｎの場合は、図５に示すように入力値Ｘが０から（所定の領域の最大値÷２）までのテーブルからの出力値Ｙの値域が広いので、出力Ｙを大きく確保しなければならない。このために、小さいテーブルでは出力Ｙの有効数字を十分に確保することができない。さらに、入力値Ｘがスケール変換された時のテーブルからの出力は一層誤差が大きくなってしまうので、線形補間を用いて誤差を小さくする必要に迫られる。
【０００８】
本発明は、上述した問題点に鑑みてなされたものであって、テーブルサイズを小さくするとともに、Ｙ＝Ｘｍ／ｎを小さい誤差で演算することができる信号処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は上記の課題を解決するためになされたもので、請求項１に記載の発明は、入力値Ｘに対して出力値Ｙ＝Ｘｍ／ｎ（ｍ＜ｎ）を求める信号処理装置であって、前記Ｘを２のべき数で表現したときのそのべき数に応じて定まるスケール変換量を生成すると共に、前記スケール変換量を用いて前記Ｘをスケール変換することにより修正入力値を生成するスケール変換部と、前記スケール変換量と前記ｍおよびｎとによって定まる補正係数とビットシフト量とを算出する係数算出部と、前記修正入力値に対応する修正出力値を定めるテーブルと、前記補正係数を用いて前記修正出力値を補正すると共に、その補正結果を前記ビットシフト量分ビットシフトして前記出力値Ｙを求める演算部とを具備することを特徴とする信号処理装置である。
【発明の効果】
【００１０】
本発明によれば、テーブルサイズを小さくするとともに、Ｙ＝Ｘｍ／ｎを小さい誤差で演算することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照し、本発明を実施するための最良の形態について説明する。以下の説明においては各種の定数が用いられるが、その値はあくまで一例であって、後述する値に限定されるわけではない。図１は、本発明の一実施形態による信号処理装置の構成を示すブロック図である。以下、図中の各構成について説明する。
【００１２】
スケール変換部１は、入力値信号Ｘに対して以下の［数１］に従うスケール変換を行い、修正入力値Ｇとスケール変換量Ｅを算出する。
【００１３】
【数１】
2006129352.tif 000003
【００１４】
ここで、ｉｎｔ（Ｘ）はＸの整数部を抽出する関数である。Ｑは正数であり、後述するようにＬＵＴ（Look Up Table）３の大きさを表している。［数１］に示されるように、Ｅは、入力値Ｘ以下でＸに最も近い２のべき数に応じて定まる数であり、係数算出部２の入力となる。Ｇは、スケール変換によって入力値Ｘを所定の範囲内（２Ｑ〜２Ｑ＋１）に変換し、さらにその値域が０〜２Ｑとなるように変換することにより生成された数であり、ＬＵＴ３の入力となる。出力Ｘ０は、Ｘ＝０以外の通常のＸに対してＸ０＝０であり、Ｘ＝０の時にのみＸ０＝１となる識別信号である。
【００１５】
係数算出部２は、以下の［数２］および［数３］に従って補正係数ｋおよびビットシフト量Ｆの算出を行う。
【００１６】
【数２】
2006129352.tif 000004
【００１７】
【数３】
2006129352.tif 000005
【００１８】
［数２］において、ｍｏｄ（Ｘ，Ｙ）は、ＸをＹで割った余りを得る関数であり、Ａは定数である。ｋは、後述する修正出力値Ｈの補正に用いられる数であり、Ｆはその補正結果をビットシフトする際のビットシフト量である。算出されたｋおよびＦは演算部４に入力される。
【００１９】
ＬＵＴ３は、修正入力値Ｇに対して、以下の［数４］で示される修正出力値Ｈを出力するテーブルである。［数４］においてＲは整数であり、後述するようにＬＵＴ３の有効数字を表している。
【００２０】
【数４】
2006129352.tif 000006
【００２１】
演算部４は、以下の［数５］に基づいた演算を行う。ここで、［数５］のｓｈｉｆｔ（Ｘ，Ｙ）は、ＸをＹビットシフトする関数であり、Ｙ＞０の時は左シフト、Ｙ＜０の時は右シフトを表す。
【００２２】
【数５】
2006129352.tif 000007
【００２３】
次に、本実施形態による演算について説明する。本実施形態の信号処理装置が行う処理は以下の［数６］を基本としている。
【００２４】
【数６】
2006129352.tif 000008
【００２５】
［数６］は、Ｙ＝Ｘｍ／ｎの計算が、定数とテーブル出力との四則演算およびビットシフトで近似的に実現可能であることを示している。入力される信号Ｘはスケール変換部１によって、ＧとＥに分解される。ＧがＬＵＴ３への入力となる。Ｘが１６ｂｉｔ、Ｑ＝９であるとすると、ＧとＸの関係は、図２に示すように、任意のＸに対してＧの値域が０〜２９となる。ここで、特徴的なところは、スケール変換部１によって変換されたＧは、従来のようにテーブルの上半分（２８〜２９）の間に変換されるのではなく、テーブル全域（０〜２９）に一様に変換されている。
【００２６】
なお、Ｇの値域が０〜２Ｑとなることから、Ｑは保有するテーブルの大きさを表している。スケール変換された修正入力値ＧはＬＵＴ３に入力され、ＬＵＴ３はＨを出力する。ＧとＨの関係は図３で表されるが、これは図４において「テーブルで持っておく範囲」として示した囲い部分に相当する。ここで、ＲはＬＵＴ３の出力の有効数字である。また、ＬＵＴ３の入力値および出力値の範囲が、図４における「テーブルで持っておく範囲」となるのは、［数６］における下から４つの式に基づいている。
【００２７】
［数６］に示すように、所望の結果Ｙを得るためには、ＬＵＴ３の出力Ｈを用いて、以下の［数７］を計算する必要がある。
【００２８】
【数７】
2006129352.tif 000009
【００２９】
［数７］で示される演算は演算部４が行う。［数７］は［数５］と同じ結果をもたらす。Ｘ０＝０のときの［数７］における前半の項２Ｆ−Ｒ×ｋ／Ａは、ＬＵＴ３への入力値Ｇを生成するために入力値Ｘを調整したスケール変換量Ｅの影響を相殺するためのものであり、この項中のｋおよびＦは係数算出部２で予め計算される。
【００３０】
上述した構成および作用によって、図４に示すように、入力値Ｘ（Ｘ＞０）の変換値を２Ｑ〜２Ｑ＋１の範囲に収めることができ、この範囲での入力に応じた出力を行うテーブルを用意すればよい。したがって、テーブルの入力値および出力値の範囲が非常に狭くなり、テーブルの全域を有効に活用し、テーブルサイズを格段に小さくすることができる。また、出力値の有効数字を少々大きく確保しても、テーブルサイズが極端に大きくなることはなく、この無駄なく規模の小さいテーブルを用いれば、線形補間による誤差縮小を行わなくても、Ｙ＝Ｘｍ／ｎの演算を小さい誤差で行うことができる。
【実施例】
【００３１】
以下、本発明の実施例について説明する。本実施例においては、Ｘが１６ｂｉｔ、Ｑ＝９、Ｒ＝１０、Ａ＝２１２とし、入力値Ｘに対する立方根Ｙ＝Ｘ１／３を算出する例を説明する。前述した［数６］に上記の数値を当てはめると、以下の［数８］のようになる。
【００３２】
【数８】
2006129352.tif 000010
【００３３】
［数８］に示す通り、Ｘの立方根Ｙは、定数（ｋ／２１２と２１３）とテーブルからの出力（Ｈ）とビットシフト（２Ｆ−１０）で近似的に実現することができる。なお、本実施例の場合には、［数８］において、ｋは［数９］で表されるように３通りの値を持つ固定値とすることができる。したがって、係数算出部２において、ｋの算出には［数９］で示される３つの値を選択出力する処理を備えるとよい。
【００３４】
【数９】
2006129352.tif 000011
【００３５】
上述した信号処理装置は、映像信号処理におけるＲＧＢやＹＣｒＣｂ空間から均等色空間に変換する処理や、音声信号処理における符号化ビットストリームの量子化信号の演算等に好適である。
【００３６】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【００３７】
【図１】本発明の一実施形態による信号処理装置の構成を示すブロック図である。
【図２】同実施形態における入力値Ｘと修正入力値Ｇとの関係を示すグラフである。
【図３】同実施形態におけるＬＵＴ３の入力値Ｇと出力値Ｈとの関係を示すグラフである。
【図４】同実施形態における入力値Ｘと出力値Ｙとの関係およびテーブルで持っておく範囲を示すグラフである。
【図５】従来の方法における入力値Ｘと出力値Ｙとの関係およびテーブルで持っておく範囲を示すグラフである。
【図６】従来の方法における入力値Ｘとスケール変換後の値Ｇとの関係を示すグラフあである。
【符号の説明】
【００３８】
１・・・スケール変換部、２・・・係数算出部、３・・・ＬＵＴ、４・・・演算部。
【図１】
2006129352.tif 000012
【図２】
2006129352.tif 000013
【図３】
2006129352.tif 000014
【図４】
2006129352.tif 000015
【図５】
2006129352.tif 000016
【図６】
2006129352.tif 000017