(57)【要約】スループットを著しく高めることにより、比較的短い時間で比較的多量の２進数を処理できるように、算術計算回路が実行される。一実施形態において、算術計算回路は、Ｎビットの第１の２進数オペランドとＭビットの第２の２進数オペランドとを加算するようになっている。この場合、Ｎは、Ｍより大きく又はＭと等しい。回路は、加算器とマルチプレクサ回路とを有している。加算器は、第１の２進数オペランドの最下位ビットの代表的なセットと、第２の２進数オペランドの最下位ビットの代表的なセットとを加算して、最下位ビットの部分和およびキャリーアウトを形成するようになっている。マルチプレクサ回路は、第１の２進数オペランドの最上位ビットの代表的なセット、および、第１の２進数オペランドの最上位ビットの代表的なセットのオフセットのうちの一方を通ることにより、最上位ビットの部分和を出力するようになっている。これらの入力の選択は、第１の２進数オペランドの最下位ビットの代表的なセットのうちの最上位ビットの関数である選択データに対応している。
2005508541.tif 000002
【特許請求の範囲】
【請求項１】
Ｎビットの第１の２進数オペランドとＭビットの第２の２進数オペランドとを加算するための回路構成であって、ＮがＭより大きく又はＮがＭと等しい回路構成において、
前記第１の２進数オペランドの最下位ビットの代表的なセットと、前記第２の２進数オペランドの最下位ビットの代表的なセットとを加算して、最下位ビットの部分和およびキャリーアウトを形成するようになっている加算器と、
前記加算器に接続されるとともに、選択データに応答して、前記第１の２進数オペランドの最上位ビットの代表的なセットおよび前記第１の２進数オペランドの最上位ビットの代表的なセットのオフセットのうちの一方を通ることにより、最上位ビットの部分和を出力するようになっているマルチプレクサ回路であって、前記選択データが、前記第１の２進数オペランドの最下位ビットの前記代表的なセットのうちの最上位ビットの関数であるマルチプレクサ回路と、を備えている、回路構成。
【請求項２】
前記加算器がＭビット加算器であり、前記第１および第２の２進数オペランドの最下位ビットの代表的なセットのそれぞれは、Ｍビットの長さを有しており、前記選択データは、前記Ｍビット加算器からのキャリーアウトと、前記第１の２進数オペランドのＭ番目のビットとを含んでいる、請求項１に記載の回路構成。
【請求項３】
前記Ｎ−Ｍビットの最上位ビットの部分和は、前記第１の２進数オペランドの（Ｎ−Ｍ）個の最上位ビット、１を加算される前記第１の２進数オペランドの（Ｎ−Ｍ）個の最上位ビット、１を減算される前記第１の２進数オペランドの（Ｎ−Ｍ）個の最上位ビットのうちの１つである、請求項２に記載の回路構成。
【請求項４】
前記第１の２進数オペランドの最上位ビットの前記代表的なセットのオフセットは、第１の増分オフセットおよび第２の減少オフセットを含んでいる、請求項１に記載の回路構成。
【請求項５】
前記第１の増分オフセットは、１を加算される前記第１の２進数オペランドの最上位ビットの前記代表的なセットであり、前記第２の減少オフセットは、１を減算される前記第１の２進数オペランドの最上位ビットの前記代表的なセットである、請求項４に記載の回路構成。
【請求項６】
前記選択データは、前記第１の２進数オペランドの最下位ビットの前記代表的なセットのうちの最上位ビットと、前記加算器からのキャリーアウトとを含んでいる、請求項１に記載の回路構成。
【請求項７】
前記キャリーアウトは、前記最下位ビットの部分和の前に、前記加算器から得られる、請求項６に記載の回路構成。
【請求項８】
Ｎ−Ｍが１であり、前記マルチプレクサ回路は、排他的論理和ゲートとして動作するように構成されており、前記選択データは、前記加算器からのキャリーアウトおよび前記第１の２進数オペランドの最上位ビットである、請求項１に記載の回路構成。
【請求項９】
Ｎビットの第１の２進数オペランドとＭビットの第２の２進数オペランドとを加算するための方法であって、ＮがＭより大きく又はＮがＭと等しい方法において、
前記第１の２進数オペランドの最下位ビットの代表的なセットと、前記第２の２進数オペランドの最下位ビットの代表的なセットとを加算して、最下位ビットの部分和およびキャリーアウトを形成し、
選択データに応答し、前記第１の２進数オペランドの最上位ビットの代表的なセットおよび前記第１の２進数オペランドの最上位ビットの代表的なセットのオフセットのうちの一方を通ることにより、最上位ビットの部分和を出力し、前記選択データは、前記第１の２進数オペランドの最下位ビットの前記代表的なセットのうちの最上位ビットの関数である、方法。
【請求項１０】
第１のＮビット２進数オペランドの最も重要なＭ個のビットと、第２のＮビット２進数オペランドの最も重要なＭ個のビットとを加算するためのコンピュータで実行される方法において、
前記第１の２進数オペランドの最下位ビットの代表的なセットと、前記第２の２進数オペランドの最下位ビットの代表的なセットとを加算して、Ｎ−Ｍ＋１ビットの部分和を形成するようになっている加算器と、
前記加算器に接続されるとともに、第１の選択データセットに応答して、前記加算器の（Ｎ−Ｍ）番目ビット内部キャリービットを示す出力を形成するようになっている第１のマルチプレクサ回路であって、前記第１の選択データセットは、前記２進数オペランドの各（Ｎ−Ｍ＋１）番目のビットと、前記部分和の（Ｎ−Ｍ＋１）番目のビットとをそれぞれ含んでいる第１のマルチプレクサ回路と、
前記第１のマルチプレクサ回路に接続されるとともに、前記第１のマルチプレクサの出力に応答して、前記第２の２進数オペランドの最上位ビットの代表的なセットおよび前記第２の２進数オペランドの最上位ビットの前記代表的なセットのオフセットのうちの一方を通ることにより、最上位ビットの部分和を出力するようになっている第２のマルチプレクサ回路と、を含んでいる、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルデータ処理に関し、特に、時間に依存するデジタル処理の用途において複雑なデータパス算術演算のための処理時間を短縮することに関する。
【背景技術】
【０００２】
演算論理データ処理回路は、幅広い用途において設計され、殆ど全ての産業で使用されてきた。数ある中で、これらの用途としては、プログラム化されたコンピュータ装置、ディスクリート論理回路、半プログラム化された論理構成要素を使用して実施される用途を挙げることができる。様々な理由により、これらの用途の多くは、ビデオデータを処理することに向けられており、また、特定の処理演算を最小の時間で完了することを要求してきた。また、幾つかの用途は、比較的簡単な算術演算のために一般に割り当てられる時間と同じ最小時間枠で複雑な算術演算を行なうことができる高速演算するエンジンを求めてきた。
【０００３】
ビデオデータ処理は、比較的複雑な演算を必要とする多くの用途のうちの一例である。これらのビデオデータ処理の用途の多くは、益々複雑化する数学的機能をかつてないほどの速い速度で行なうことができる信号処理回路を必要とする。残念ながら、高速データ処理を達成することと、時間のかかるデータパス算術演算を必要とする更に複雑な数学的演算にしたがってデジタルデータを操作することとは、相対する事柄である。
【０００４】
ビデオデータをリアルタイムで圧縮および解凍するような専門化されたビデオ信号処理技術においては、様々なビデオデータフィルタが使用されている。幾つかの用途においては、「多相」フィルタとして知られるある種の専門のビデオデータフィルタが有用である。ビデオ処理の用途においては、時として、多相フィルタを使用して、ディスプレイをリフレッシュするために使用される水平および垂直ラインを表わすために記憶されるデータを操作することにより、ピクセルのサイズを変更する。そのような用途においては、入力ピクセルの数に対する出力ピクセルの数の比が、ズーム因子として規定され、これに対して多目的フィルタリングの場合には、出力ピクセルの数は入力ピクセルの数に等しい。また、サイズ変更演算は、ズーム因子が１よりも大きい場合には拡張サンプリングまたはアップサンプリングとして知られており、そうでない場合には、一般に、圧縮サンプリングまたはダウンサンプリングとして知られている。通常、画像をサイズ変更（拡張または縮小）して所定のズームを与えるため、多相フィルタは、処理されるピクセルの位置または位相の関数として規定されるその係数を用いて実施される。
【０００５】
高精度ビデオの用途でサイズ変更する場合、多相フィルタリングは、精度を達成するために必要な計算に対応する非常に独特のアーキテクチャを用いて実施される。一般的には、この種の多相フィルタリングは、「多相転置」フィルタリングと称される形態で実施される。より一般的なビデオの用途の場合、多相フィルタリングは、有限インパルス応答（ＦＩＲ）フィルタリング等の多目的フィルタリングに共通な計算アーキテクチャを使用する多相直接フィルタとして実施される。しかしながら、カスタム論理回路を使用してデータパス算術演算を必要な速度で処理することは、実施して確認するのに時間がかかるとともに、コストもかかる。そのような機能性を与えるために使用される集積回路の設計、製造、維持に伴ってかなりのコストがかかる。従来の回路またはライブラリ論理回路を使用すると、実施および確認が容易であり、したがって、コストがかからないが、ストレートな「オフザシェルフ（ｏｆｆ−ｔｈｅ−ｓｈｅｌｆ）」演算で使用される場合には、必要な動作速度を達成しない。
【０００６】
データ処理フィルタに関連付けられた必要な計算は、一般に、一連の基本的な算術演算によって達成される。一連の演算は、ビデオディスプレイの各ピクセル毎に繰り返される。計算データパスデザインにおけるパイプライン段階の長さは、通常、目標とするクロックサイクル内で達成できる算術演算の最大数によって決定される。目標とするクロックサイクルは、リアルタイムの単位当たりで処理してビデオをサポートしなければならないピクセルの数から決定される。高次の数学的演算を実施する内在する繰り返しの初等算術演算における効率は、繰り返しにより、著しい全体の処理の向上へと組合される。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、目標とするクロックサイクル内でデータ処理のスループットおよび全体のデータパス演算を向上させるように構成された従来の機能ブロックまたはライブラリ機能ブロックを使用するビデオ処理フィルタアーキテクチャを開発する必要性があることが良く認識される。
【課題を解決するための手段】
【０００８】
本発明は、前述した課題を扱い且つ算術計算を実行するために必要な時間を短縮するデータ処理回路に関する。本発明は、多数の実施および用途で実証される。その幾つかを以下に要約する。
【０００９】
一実施形態において、本発明は、一連のサブ算術演算および論理演算として基本的な算術演算（例えば、加算および／または減算）を実行する算術計算回路に関する。
【００１０】
本発明は、様々な異なるタイプのフィルタリングの用途に適用できると考えられ、また、ビデオフィルタリングの用途および比較的多い２進数を比較的高速で加算および減算できるデータ処理回路によって利益を受ける他の用途において特に有益であることが分かった。
【００１１】
本発明の一般的な回路構成の一例において、２進数計算は、各２進数の一部に基づく算術演算と、入力された２進数の更なる部分を含む論理演算との組み合わせとして実行される。回路構成は、Ｎビットの第１の２進数オペランドとＭビットの第２の２進数オペランドとを加算するようになっており、Ｎは、Ｍより大きく又はＭと等しい。回路構成は、マルチプレクサ回路に接続された加算器を有している。第１の２進数オペランドの最下位ビットの代表的なセットと、第２の２進数オペランドの最下位ビットの代表的なセットとが加算されることにより、最下位ビットの部分和およびキャリーアウトが形成される。４−１デマルチプレクサ等の論理回路または他の同様に機能するデータ処理回路は、第１の２進数オペランドの最上位ビットの代表的なセットまたは第１の２進数オペランドの最上位ビットの代表的なセットのオフセットのいずれかを通ることにより、最上位ビットの部分和を出力として形成するように構成されている。データ処理回路は、選択データに対応している。選択データは、第１の２進数オペランドの最下位ビットの代表的なセットのうちの最上位ビットの関数である。
【００１２】
更に特有の一実施形態においては、回路構成がＭビット加算器を有しており、マルチプレクサ回路は、第１のオペランドのＭ番目のビットおよびＭビット加算器のキャリーアウトに対応する（Ｎ−Ｍ）個の最上位ビットの部分和を選択する。
【００１３】
他の特有の実施形態において、各オペランドは、その最も重要な各ビットとして、符号ビットを有している。また、マルチプレクサ回路は、第１のオペランドの（Ｎ−Ｍ）個の最上位ビット、第１のオペランドの（Ｎ−Ｍ）個の最上位ビット＋１、または、第１のオペランドの（Ｎ−Ｍ）個の最上位ビット−１のいずれかを選択するように構成されている。
【００１４】
他の特有の実施形態においては、オペランドに符号が付けられておらず、Ｎ−Ｍ＝１であり、マルチプレクサ回路が排他的論理和（ＸＯＲ）論理を実行する。
【００１５】
更に特有の他の実施形態において、前述した特徴的な手法は、スケーリングおよび多相フィルタリング等の様々なフィルタリング用途のために使用するピクセル−データデジタルフィルタの一部として実行される。
【００１６】
他の態様および利点は、本発明の特定の実施形態に記載されている。
【００１７】
本発明の前述した要約は、例示された各実施形態または本発明の全ての実施を説明しようとしたものではない。以下の図面および詳細な説明は、これらの実施形態を特に例示する。
【００１８】
添付図面を参照しながら、本発明の様々な実施形態の以下の詳細な説明を考慮すると、本発明を更に完全に理解することができる。
【００１９】
本発明は、様々な修正および他の形式に従うことができるが、その具体的な内容を一例として図面に示すとともに、詳細に説明する。しかしながら、本発明が以下の特定の実施形態に限定されないことは言うまでもない。逆に言うと、本発明は添付の請求項によって規定される本発明の思想および範囲内に入る全ての変更、等価物、変形を網羅することを意図している。
【発明を実施するための最良の形態】
【００２０】
本発明は、様々な異なるタイプのフィルタリングの用途に適用できると考えられ、また、ビデオフィルタリングの用途および比較的多い２進数を比較的高速で加算および減算できるデータ処理回路によって利益を受ける他の用途において特に有益であることが分かった。本発明の様々な態様が、これらの用途を用いた例についての議論を通して、正しく理解されるであろう。
【００２１】
長い２進数を含む算術計算は、結果を与えるために複数のクロックサイクルを必要とし得る。本発明の一般的な回路構成の一例において、２進数計算は、各２進数の一部に基づく算術演算と、入力された２進数の更なる部分を含む論理演算との組み合わせとして実行される。そのような算術計算を行なうために必要な時間を短縮することにより、例えば、複数のクロックサイクルを１つのクロックサイクルに減らすことにより、データスループットが著しく向上する。あるいは、スループットを犠牲にすることなく、単位クロックサイクル当たりの計算量が多くなる。
【００２２】
本発明の一般的な第１の実施形態において、回路構成は、Ｎビットの第１の２進数オペランドとＭビットの第２の２進数オペランドとを加算するようになっており、Ｎは、Ｍより大きく又はＭと等しい。回路構成は、マルチプレクサ回路に接続された加算器を有している。第１の２進数オペランドの最下位ビットの代表的なセットと、第２の２進数オペランドの最下位ビットの代表的なセットとが加算されることにより、最下位ビットの部分和およびキャリーアウトが形成される。４−１デマルチプレクサ回路等の論理回路または他の同様に機能するデータ処理回路は、第１の２進数オペランドの最上位ビットの代表的なセットまたは第１の２進数オペランドの最上位ビットの代表的なセットのオフセットのいずれかを通ることにより、最上位ビットの部分和を出力として形成するように構成されている。データ処理回路は、選択データに対応している。選択データは、第１の２進数オペランドの最下位ビットの代表的なセットのうちの最上位ビットの関数である。回路構成はＭビット加算器を有していても良く、マルチプレクサ回路は、第１のオペランドのＭ番目のビットおよびＭビット加算器のキャリーアウトに対応する（Ｎ−Ｍ）個の最上位ビットの部分和を選択するように実施されても良い。
【００２３】
本発明の他の態様は、前述した手段の変形例を含んでいる。そのような一態様において、各オペランドは、その最も重要な各ビットとして、符号ビットを有している。また、マルチプレクサ回路は、第１のオペランドの（Ｎ−Ｍ）個の最上位ビット、第１のオペランドの（Ｎ−Ｍ）個の最上位ビット＋１、または、第１のオペランドの（Ｎ−Ｍ）個の最上位ビット−１のいずれかを選択するように構成されている。他の態様においては、オペランドに符号が付けられておらず、Ｎ−Ｍ＝１であり、また、マルチプレクサ回路は、ＸＯＲゲート等の論理回路を使用して実施される。
【００２４】
本発明の他の重要な態様および用途がデジタルフィルタリング回路１００として図１に示されている。データパスユニット１０２は、足し算、引き算、掛け算等の算術演算および／またはＡＮＤ、ＯＲ、ＮＯＴ、ＭＵＬＴＩＰＬＥＸ、ＳＨＩＦＴ等の論理演算を含む組み合わせ論理回路１１０ａ、１１０ｂのパイプラインカスケードである。既に実行している組み合わせ論理回路の結果を次の組み合わせ論理回路に入力するため、各組み合わせ論理回路の後には、パイプラインレジスタ１１２ａ、１１２等が使用されている。データパス１０２は、制御／モードプロセッサ１２０によって制御される。この場合、データは、パイプラインデータパスユニット１０２によって処理するためにメモリ１３０を介して入力されて送られる。演算速度は、多くの事柄によって決まるが、その中には例えばクロックサイクル時間が含まれる。また、クロックサイクル時間は、任意の２つのパイプラインステージ間の論理量によって決まる。パイプラインレジスタ間の論理量が少なければ少ないほど、クロックを速くすることができ、これにより、スループットが向上する。しかしながら、論理をあまり薄く広げると、初期待ち時間がかなり長くなる場合には、パイプステージの数が多くなる。
【００２５】
１つの特定の用途例において、図２は、本発明の１つの用途例、すなわち、パノラマ画像ズーム機能を実行する際に複雑な数学的スケーリング演算を行なうために使用されるメディアプロセッサチップのための水平フィルタ２００を示している。ズーム因子は、ビデオ画像にどのように拡張縮小するかを決定する。１未満のズーム値は画像圧縮を示しており、１を上回るズーム値は画像拡張を示している。ビデオ画像を再び拡張縮小するため、アルゴリズムを使用して、正確な時間に、一定の特徴を有するビデオ画像の出力ピクセルを生成するべきか否かを決定する。
【００２６】
多相直接フィルタリングモードで演算するビデオフィルタ２００は、ビデオ画像の圧縮または拡張のために使用される。圧縮モードにおいて、フィルタは、繰り返しのクロックサイクルに基づいて、ピクセル入力パス２１０からの一連の入力ピクセルのそれぞれを連続的に消費する（例えば、シフトインして、適当なフィルタ方程式係数を用いて乗算を行なって、累積する）。出力ピクセルの生成は、特定の「状況」の評価に基づいて決定される。この「状況」は、機能的ユニットデータパス２２０内の一連の演算によって評価される。「状況」の評価は、フィルタリングのモード、および、ビデオ画像の圧縮または拡張が必要か否かによって決まる。「状況」の評価から、ピクセル出力パス２４０に沿って出力ピクセルが定期的に生成される。「状況」評価が各クロックサイクルを生じ、クロック信号は、クロックパス２３０を介してフィルタに受けられる。スケーリング演算は、スケーリングパラメータによって規定される。スケーリングパラメータ規定された初期スケーリング変数設定は、メモリ１２０から入力データインタフェース１２２を介してフィルタに入力する。
【００２７】
入力画像に対するビデオ画像処理の当該場所を辿るため、入力ピクセル位置ポインタ「ｐｏｓ（ｎ）」は、入力ピクセル毎に１回更新される。一実施例において、圧縮演算中のｐｏｓ（ｎ）を規定する式は、以下の通りである。
・ｐｏｓ（０）＝０；及び
・ｐｏｓ（ｎ＋１）＝ｐｏｓ（ｎ）＋ｚ（ｎ＋１）＝ｚ（１）＋ｚ（２）＋．．．．．．．＋ｚ（ｎ＋１）
【００２８】
ここでｚ（ｎ）はピクセルｘ（ｎ）におけるズーム因子である。このピクセル位置は、このズーム因子によって修正される最後のピクセル位置である。変数ｐｏｓ（ｎ）は、出力ピクセルに対するｘ（ｎ）のピクセル場所を表わしている。ピクセルｘ（ｎ）は、ｙ（ｆｌｏｏｒ（ｐｏｓ（ｎ）））とｙ（ｃｅｉｌ（ｐｏｓ（ｎ）））との間に位置している。
【００２９】
拡張モードにおいて、フィルタは、それが消費するピクセルよりも多い出力ピクセルを生成するが、出力ピクセルの生成は、特定の「状況」の評価に基づいて同様に決定される。拡張モードにおいて、ピクセル位置ポインタ「ｐｏｓ（ｎ）」は、出力ピクセル生成に関するビデオ画像処理の当該場所を辿る。直接多相フィルタの場合、ｐｏｓ（ｎ）を規定する式は、消費された入力ピクセルと生成された出力ピクセルとの間の関係を決定する際に、逆ズーム値を使用する。ポインタ変数ｐｏｓ（ｎ）は、以下のように、出力ピクセル毎に１回更新される。
・ｐｏｓ（０）＝０；及び
・ｐｏｓ（ｎ＋１）＝ｐｏｓ（ｎ）＋ｉｚ（ｎ＋１）＝ｉｚ（１）＋ｉｚ（２）＋．．．．．．．＋ｉｚ（ｎ＋１）
【００３０】
ここで、ｉｚ（ｎ）は、ピクセルｙ（ｎ）におけるズーム因子の逆数である。このピクセル位置は、この逆ズーム因子によって修正される最後のピクセル位置である。変数ｐｏｓ（ｎ）は、入力ピクセルに対するｙ（ｎ）のピクセル場所を表わしている。ピクセルｙ（ｎ）は、ｘ（ｆｌｏｏｒ（ｐｏｓ（ｎ）））とｘ（ｃｅｉｌ（ｐｏｓ（ｎ）））との間に位置している。
【００３１】
均一なズーム機能を果たすため、ズーム値は一定である。例えば、定数ｚ（ｎ）により均一な圧縮が行なわれ、また、定数ｉｚ（ｎ）により均一な拡張が達成される。ズームが可変の場合、ズーム値ｚ（ｎ）およびｉｚ（ｎ）は一定ではない。多相直接フィルタリングモードでのみ使用されるパノラマズームは、連続的に変化するｉｚ（ｎ）により行なわれる。一実施例において、逆ズーム値は、２次多項式にしたがって変えることができ、多項式の係数が制御レジスタ内にプログラムされる。
【００３２】
出力ピクセル生成を決定するために評価される「状況」は、関数ｐｏｓ（ｎ）から得られる。一実施例において、関数ｐｏｓ（ｎ）は、整数部分と小数部分とを有している。「状況」は、ｐｏｓ（ｎ）の小数部分に対して成された変更に関連している。
【００３３】
ズーム値によって決まる前述した「状況」の評価は、一般に、スケーリングフィルタ機能における処理速度障害（処理速度ボトルネック）、および、ｐｏｓ（ｎ）の評価において行なわれる長いビット幅にわたる正確な演算であり、究極的には、「状況」である。処理作業量はかなり多く、そのため、例えばパノラマズームモードの場合と同様にズーム値が可変である場合には、ｚｏｏｍ変数が各クロックサイクルと共に連続的に変化するため、時間をかなり要する。
【００３４】
効率の観点から、各クロックサイクルで「状況」を評価することが望ましい。特に複雑な「状況」演算あるいは「状況」評価を含む一連の長い演算を複数のクロックサイクルにわたって広げることにより、「状況」評価それ自体に誤りが生じない。しかしながら、これにより、広げられた「状況」評価演算が終了するのを待っている間、他のフィルタハードウェアが定期的に使用されないままの状態すなわち重要な演算を行なわない状態となる。各ピクセルでのこれらの遅れは、ピクセル処理速度をかなり制限し、間接的には、リアルタイムで高いピクセル濃度をサポートする能力を制限する。
【００３５】
パノラマモードでの多相直接フィルタ演算は、以下に規定されるような入力パラメータを有している。
【００３６】
（ａ）ＨＳＲＣ＿ＺＯＯＭは、ズーム値の逆数、すなわち、１６ビットの符号が付けられていない入力量のｉｚ．ＨＳＲＣ＿ＺＯＯＭであり、最も重要な４ビットは整数部分を示し、殆ど重要でない１２ビットは小数部分を示している。ＨＳＲＣ＿ＺＯＯＭは、入力画像の拡張縮小方法を決定するために指定される。小数部分を示す１２ビットのうちの最も重要な６ビットは、位相を決定し、したがって、フィルタリング係数のセットを決定する。
【００３７】
（ｂ）ＨＳＲＣ＿ＤＺＯＯＭは、符号が付けられた１６ビット入力値であり、２次多項式の一部は、パノラマモードでズームがどのように連続的に変化するかを表わしている。
【００３８】
（ｃ）ＨＳＲＣ＿ＤＤＺＯＯＭは、符号が付けられていない８ビット入力値であり、２次多項式の他の部分は、パノラマモードでズームがどのように連続的に変化するかを表わしている。
【００３９】
「状況」は、各クロックサイクルで評価され、「状況」は、中間ｚｏｏｍ変数演算のカスケード表示から得られる。中間ｚｏｏｍ変数は、以下のように、前述した入力パラメータを使用してスケーリング演算の最初に初期化される。
・ｚｏｏｍ［２３：０］＜−｛８｛０｝，  ＨＳＲＣ＿ＺＯＯＭ［１５：０］｝
・ｄｚｏｏｍ［１５：０］＜−ＨＳＲＣ＿ＤＺＯＯＭ［１５：０］
・ｄｄｚｏｏｍ［７：０］＜−ＨＳＲＣ＿ＤＤＺＯＯＭ［７：０］
・ｐｏｓ［２４：０］＜−０
【００４０】
ここで使用される表記は、２進数変数名であり、その後に、最上位ビット場所と殆ど重要ではないビット場所とが角括弧内にコロンで分けて示されている。２進数変数名の後の１つの角括弧が付けられた数字Ｎは、名前が付けられた２進数変数のＮ番目のビットを示している。例えばｄｚｏｏｍ［１５］は、２進数変数ｄｚｏｏｍの１５番目のビットを示している。表記「｛ｘ，ｙ｝」は、最初の括弧書きの２進数値ｘと２番目の括弧書きの２進数値ｙとの連続演算を示している。表記「８｛ｘ｝」は、８個のｘの連続を示しており、８｛ｘ｝は２進数００００００００を示している。変数ｐｏｓ［ｘ：ｙ］は、整数部分と小数部分とを有するピクセル位置カウンタであり、ビット［２４：２０］は整数部分であり、ビット［１９：０］は小数部分である。
【００４１】
初期後の各クロックサイクル毎に、演算が行なわれ、前述した変数が「状況」変数ｓｖａｌ［ｘ，ｙ］と共に更新される。これにより、変数は、時間の関数として、以下のように表わされる。
・ｄｚｏｏｍ［１５：０］（ｔ）＝ｄｚｏｏｍ［１５：０］（ｔ−１）−｛８｛０｝，ｄｄｚｏｏｍ［７：０］｝
・ｚｏｏｍ［２３：０］（ｔ）＝ｚｏｏｍ［２３：０］（ｔ−１）＋｛８｛ｄｚｏｏｍ［１５］｝，  ｄｚｏｏｍ［１５：０］｝（ｔ）
・ｐｏｓ［２４：０］（ｔ）＝ｐｏｓ［２４：０］（ｔ−１）＋｛｛０｝，  ｚｏｏｍ［２３：０］｝（ｔ）
・ｓｖａｌ［４：０］（ｔ）＝ｐｏｓ［２４：２０］（ｔ）−ｐｏｓ［２４：２０］（ｔ−１）
【００４２】
変数ｐｏｓ［ｘ：ｙ］は、位相のトラックをピクセルの現在の位置に維持する。リコールｐｏｓ［ｘ：ｙ］は、最も重要なものから殆ど重要でないものまで、１つの符号ビットと、４つの整数代表ビットと、小数部分を示すビットのバランスとを含んでいる。ｐｏｓ［ｘ：ｙ］が各クロックサイクル毎に評価されると、変数ｓｖａｌ［４：０］は、ｓｖａｌ［４：０］の値と等しい「状況」を決定する。この場合、「状況」は、ｐｏｓ［ｘ：ｙ］の整数部分への変化である。「状況」（ｓｖａｌ［４：０］の値）は、その後、消費される入力ピクセルに対して出力ピクセルが生成される時期を決定する。
【００４３】
前述した４つの変数計算は、各クロックサイクル毎に完了するフィルタリング演算に不可欠である。同時に、方程式は、クロックサイクルが大きくない場合には、１つのクロックサイクルにおいて完了するかなりの数の算術計算を含んでいる。本発明の一実施形態において、回路構成は、前述したフィルタリング演算のセットのための解法時間を短くして全体の計算時間を最小限に抑えるように成される。
【００４４】
前述した時間に依存する可変関数は、時間ｔに関して以下のように表わすことができる。
・Ｅｑｎ  Ａ：ｄｚｏｏｍｎ［１５：０］＝ｄｚｏｏｍ［１５：０］−｛８｛０｝，  ｄｄｚｏｏｍ［７：０］｝；
・Ｅｑｎ  Ｂ：ｚｏｏｍｎ［２３：０］＝ｚｏｏｍ［２３：０］＋｛８｛ｄｚｏｏｍｎ［１５］｝，  ｄｚｏｏｍｎ［１５：０］｝；
・Ｅｑｎ  Ｃ：ｐｏｓｎ［２４：０］＝ｐｏｓ［２４：０］＋｛｛０｝，  ｚｏｏｍｎ［２３：０］｝；及び
・Ｅｑｎ  Ｄ：ｓｖａｌ［４：０］＝ｐｏｓｎ［２４：２０］−ｐｏｓ［２４：２０］
【００４５】
変数名に添えられた指名者「ｎ」は、現在のクロックサイクルの「新しい」値または可変値（すなわち、時間「ｔ」における可変値）を示しており、また、「ｎ」が添えられていない変数は、前の又は最後のクロックサイクルの時点において決定された可変値を示している。
【００４６】
前記方程式ＡからＤによって表わされるビット操作が図３に示されている。方程式Ａにおいて、時間「ｔ」におけるｄｚｏｏｍの新たな２進数値３１０（すなわち、ｄｚｏｏｍｎ）は、ｄｚｏｏｍの最後の値（すなわち、前の又は「最後」のクロックサイクルでの値）３１２から、８個の更に重要な０ビットと結び付けられたｄｄｚｏｏｍ変数３１４の現在の値を引いた値に等しい。方程式Ｂにおいて、時間「ｔ」におけるｚｏｏｍの新たな２進数値３３０（すなわち、ｚｏｏｍｎ）は、ｚｏｏｍの最後の値（すなわち、前の又は「最後」のクロックサイクルでの値）３３２と、８個の更に重要なビット３３４と結び付けられたｄｚｏｏｍ変数３１０の現在の値とを足した値に等しい。この場合、８個のビット３１４のそれぞれは、新しいｄｚｏｏｍ変数の最上位ビット（すなわち、ｄｚｏｏｍｎのビット数１５、つまり、ｄｚｏｏｍｎ［１５］）と等しい値を有する。したがって、ｄｚｏｏｍは、８個の前の１、または、８個の前の０と結び付けられる。方程式Ｃにおいて、時間「ｔ」における位置カウンタｐｏｓ（ｉｔｉｏｎ）の新たな２進数値３５０（すなわち、位置）は、位置の最後の値（すなわち、前の又は「最後」のクロックサイクルでの値）３５２から、最も重要な１つの０ビット３５４と結び付けられたｚｏｏｍ変数３３０の現在の値を引いた値に等しい。最後に、方程式Ｄにおいて、時間「ｔ」における「状況」ｓｖａｌの新たな２進数値３７０は、位置変数の現在の値の整数部分３７２（すなわち、前の又は「最後」のクロックサイクルでの値）すなわちビット２０から２４から、位置変数の整数部分の最後の値（すなわち、位置、ビット２０から２４）３７４を引いた値に等しい。
【００４７】
明らかなように、「状況」変数ｓｖａｌ［４：０］の評価は、連鎖する一連の２進数算術計算の最後（結末）である。例えば２４ビット加算器を使用し且つその後に非標準的な２５ビット加算器を使用して方程式Ｃを演算し、次に４ビット加算器を使用して「状況」値を計算する従来の２進数関数演算による各方程式のストレートな計算は、時間的効率が悪い。マルチクロックサイクル演算または十分な持続時間を有する単一のクロックサイクルが必要である。
【００４８】
本発明の一態様において、長い２進数変数は、複数の部分へとバラバラにされる。これらの部分は、演算速度を高めるために操作される。方程式Ａは、ｄｚｏｏｍの新しい値（すなわち、ｄｚｏｏｍｎ）を計算するために１６ビット２進数加算器を使用して評価される。方程式Ｂの計算は、１５番目のビットでバラバラにされ、その後に結び付けられる２つの部分において個別に評価される。あるいは、方程式Ｂの結果であるｚｏｏｍ［２３：０］は、前述した別個の演算によって生じるビットの連なりとして、以下のような方程式Ｂ１として表わされる。
Ｅｑｎ  Ｂ１：ｚｏｏｍｎ［２３：０］＝｛ｚｏｏｍｎ［２３：１６］，  ｚｏｏｍｎ［１５：０］｝
【００４９】
前記連なりの各部分は個別に評価されるが、ｚｏｏｍｎ［２３：１６］の評価は、ｚｏｏｍｎ［１５：０］の評価によって生じるキャリーアウトＣ１５と見なさなければならない。図３において３６６で示されているキャリーアウトＣ１５は、ｚｏｏｍｎ［１５］の値を決定することによって得られるキャリーアウトであり、更に具体的には、ｚｏｏｍｎ［１５：０］の決定によるキャリーアウトである。一実施形態において、キャリーアウトＣ１５は、ｚｏｏｍ［１５：０］およびｄｚｏｏｍ［１５：０］の入力部を有する１６ビット加算器（図示せず）から得られる。加算器キャリーアウトを使用すると、本発明の速度に拍車がかかる。これは、加算器キャリーアウトを更なる用途（後述する論理回路）で使用でき、加算器の合計前の幾つかのゲート遅れが安定化し且つ利用可能となるからである。したがって、方程式Ｂを使用すると、
｛Ｃ１５，  ｚｏｏｍｎ［１５：０］｝＝ｚｏｏｍ［１５：０］＋ｄｚｏｏｍｎ［１５：０］
【００５０】
方程式Ａを使用してｚｏｏｍｎ［１５：０］を置き換えることにより単純化すると、
｛Ｃ１５，  ｚｏｏｍｎ［１５：０］｝＝ｚｏｏｍ［１５：０］＋（ｄｚｏｏｍ［１５：０］−｛８｛０｝，  ｄｄｚｏｏｍ［７：０］｝）
【００５１】
変数ｄｄｚｏｏｍは、各クロックサイクルと共に更新されず、したがって、その初期値と等しく一定のままである。前記方程式は、以下のように表わすことができる（方程式Ｂ２）。
｛Ｃ１５，  ｚｏｏｍｎ［１５：０］｝＝ｚｏｏｍ［１５：０］＋ｄｚｏｏｍ［１５：０］−｛８｛０｝，  ＨＳＲＣ＿ＤＤＺＯＯＭ｝
【００５２】
方程式Ｂを使用すると、方程式Ｂ１の連なりの最初の部分は、以下のように表わすことができる（方程式Ｂ３）。
ｚｏｏｍｎ［２３：１６］＝ｚｏｏｍ［２３：１６］＋８｛ｄｚｏｏｍｎ［１５］｝＋Ｃ１５
【００５３】
ここで、２進数の項「８｛ｄｚｏｏｍｎ［１５］｝」は、ｄｚｏｏｍｎ［１５］に依存する８個の１または８個の０の連なりである。この特性は、もう１つの方法として、（方程式Ｄ１）として表わされる。
８｛ｄｚｏｏｍｎ［１５］｝＝ｄｚｏｏｍｎ［１５］？１１１１１１１１：００００００００
＝ｄｚｏｏｍｎ［１５］？８'ｈｆｆ：８'ｂ０
【００５４】
ここで、「８'ｈｆｆ」は、「ｆｆ」１６進数における８桁の２進数であり、「８'ｂ０」は、８桁の２進数０である。Ｎビット数Ａにおいては、以下のようになる（方程式Ｄ２）。
Ａ＋１１１１１１１１＝Ａ＋８'ｈｆｆ＝Ａ−１
【００５５】
また、（方程式Ｄ３）は、
Ａ＋００００００００＝Ａ＋８'ｂ０＝Ａ
【００５６】
したがって、方程式Ｄ１からＤ３を使用して置換を行なうと、方程式Ｂ３は、以下のように表わすことができる（方程式Ｂ４）。
ｚｏｏｍｎ［２３：１６］＝ｚｏｏｍ［２３：１６］＋（ｄｚｏｏｍｎ［１５］？８'ｈｆｆ：８'ｂ０）＋Ｃ１５
＝（ｄｚｏｏｍｎ［１５］？ｚｏｏｍ［２３：１６］：ｚｏｏｍ［２３：１６］−１）＋Ｃ１５
＝ｄｚｏｏｍｎ［１５］？（Ｃ１５？ｚｏｏｍ［２３：１６］：ｚｏｏｍ［２３：１６］−１）
（Ｃ１５？ｚｏｏｍ［２３：１６］＋１：ｚｏｏｍ［２３：１６］）
【００５７】
図４は、前記方程式Ｂ４を実行する回路構成４００の一実施例を示している。新しい「ｚｏｏｍ」変数の上側の８個のビットは、Ｃ１５およびｄｚｏｏｍｎ［１５］における各値に依存して、ｚｏｏｍ［２３：１６］，ｚｏｏｍ［２３：１６］＋１，ｚｏｏｍ［２３：１６］−１のうちの１つとなるように選択される。考えられる各選択は、「ｚｏｏｍ」変数の先の値から得られる。図３からの先の「ｚｏｏｍ」は、図４において３３２で示されている。先の「ｚｏｏｍ」変数（すなわち、ｚｏｏｍ［２３：１６］）の上側の８個のビット４１０は、４×１（なお、ワンホットコーディングが全く不要であるため、それについて説明しない）マルチプレクサ（「ｍｕｘ」）４２０へと、一つの選択可能な入力４１２として導かれる。また、ｚｏｏｍ［２３：１６］−１およびｚｏｏｍ［２３：１６］＋１をそれぞれ簡単且つ迅速に実行するために、ｚｏｏｍ［２３：１６］は、減少器４３０および増加器４４０を介して導かれる。増加器４４０の出力は、ｚｏｏｍ［２３：１６］＋１であり、他の選択可能な入力４１４としてｍｕｘ４２０に導かれる。減少器４３０の出力は、ｚｏｏｍ［２３：１６］−１であり、図示のように、第３の選択可能な入力４１６としてｍｕｘ４２０に導かれる。減少機能および増加機能は、図示のように平行して時間的に効率良く行なわれる。Ｍｕｘへの第４の入力４１８は、この実行においては使用されない。既に使用可能な現在のｚｏｏｍ（すなわち、ｄｚｏｏｍｎ［１５］）１６番目のビットは、第１のｍｕｘ選択４２２として使用され、キャリーアウトＣ１５は、第２のｍｕｘ選択４２４として使用される。Ｍｕｘ４２０の出力４２６は、「ｚｏｏｍ」の上側の８個のビットの現在の値（すなわち、ｚｏｏｍｎ［２３：１６］）である。以下の表は、回路構成４００における選択論理を示している。
【００５８】
【表１】
2005508541.tif 000003
【００５９】
前述した本発明の実施例において、２４ビット２進加算（方程式Ｂ）は、
（ａ）オペランドをバラバラにすることにより；
（ｂ）１６ビット加算器を使用して、各加数におけるより下位のビット部分を加えることにより；
（ｃ）その後、マルチプレクサに基づく選択の選択論理として、加算器オペランドのうちの１つの最上位ビットと共に、１６ビット加算器からのキャリーアウト（合計が安定化する前に利用可能なキャリーアウト）を使用して、長い当初のオペランドのより重要なビット部分又はそのオフセット（例えば、オペランドのうちの１つが１である場合には、それに対する８ビット加算／減算）を選択することにより；
達成される。
【００６０】
前述した方法および回路構成は、一般に、ＮがＭよりも大きい場合あるいはＮがＭと等しい場合、Ｎビット２進数オペランドとＭビット２進数オペランドとの和に適用することができる。各オペランドの最上位ビットは符号ビットである。Ｍビット２進数オペランドは、最も重要な（符号）ビットを反復することにより、長さがＮとなるまで「伸長される」。オペランドは、２つの部分、すなわち、あまり重要でないＭ個のビットと、より重要な（Ｎ−Ｍ）個のビットとに分割される。Ｍビット加算器は、最も重要でない部分を加算するために使用される。当初のＮビットオペランドのＭ番目のビットと共にＭビット加算からのキャリーアウトが使用されることにより、論理回路（例えば、４×１マルチプレクサ）を使用して、以下のうちの１つとなるように最も重要な（Ｎ−Ｍ）個のビットが選択される。
・当初のＮビットオペランドの（Ｎ−Ｍ）個の最上位ビット
・当初のＮビットオペランド＋１の（Ｎ−Ｍ）個の最上位ビット
・当初のＮビットオペランド−１の（Ｎ−Ｍ）個の最上位ビット
【００６１】
１つのオペランドが当初のＮビットオペランドの最も重要な（Ｎ−Ｍ）個のビットである場合、増加され及び減少された選択は、Ｎ−Ｍビット加算器／減算器によって得られ、他方のオペランドは１である。論理回路から得られる結果は、最上位ビットとして、Ｍビット加算の結果に結び付けられる。
【００６２】
本発明の更に他の特定の実施例においては、複数のオペランドが同じ長さを有しているが、これらのオペランドのうちの少なくとも１つは、その最上位ビットとして、複数の同一の符号拡張ビットを含んでいる。各オペランドは、同じビット位置で、最も重要でない部分と最も重要な部分とに「分割され」、これにより、オペランドのうちの１つの最も重要でないＭビット部分が１つの符号ビットを含み、同じオペランドの最も重要な（Ｎ−Ｍ）ビット部分が符号拡張ビットだけを含むようになる。その後、最も重要でない部分および最も重要な部分が前述したように操作される。本発明のこの特定の実施例の方法は、一般に、その最上位ビット部分の全てのビットが全て同一となるように１つのオペランドを分割できる場合に適用することができる。
【００６３】
本発明の回路構成の他の実施形態においては、Ｎビット２進数オペランドとＭビット２進数オペランドとが加えられる。オペランドは、符号が付けられていない２進数である。加数は、同じビット位置で、最下位ビット部分と最上位ビット部分とに分割される。最下位ビットの部分和を決定するために、最下位ビット部分が加算器を使用して加算される。論理回路を使用して最上位ビット部分を処理することにより、最上位ビットの部分和を選択する。これは、加算器を使用して各加数の最上位ビット部分を合計するのに要する時間よりも短い時間で行なわれる。本発明の一実施例において、論理回路（例えば、マルチプレクサ、ＸＯＲゲート、または、ＸＯＲ論理を実行する多重化回路）は、選択データに対応する最上位ビットの部分和を選択する。論理回路は、複数の所定の部分和のうちの１つを選択する。考えられる各選択は、複数の加数のうちの少なくとも１つの周知の特性から予め決定される。例えば、加数の最上位ビット部分のうちの少なくとも１つが全て１または全て０である場合には、他の加数の他の最上位ビット部分に応じて、考えられる一組の選択が予め決定される。
【００６４】
本発明の回路構成の他の実施形態においては、Ｎ−Ｍが１である場合、Ｎビット２進数オペランドとＭビット２進数オペランドとが加算される。これらのオペランドは、符号が付けられていない２進数である。Ｍビット２進数オペランドの長さが「伸長され」、０の値が付いた（例えば「０」）最上位ビットをぶらさげる。オペランドは、２つの部分、すなわち、あまり重要でないＭ個のビットと、より重要な重要な（Ｎ−Ｍ）個のビットとに分割される。あまり重要でない部分を加算するためにＭビット加算器が使用される。当初のＮビットオペランドのＭ番目のビットと共にＭビット加算からのキャリーアウトが使用されることにより、論理回路（例えば、ＸＯＲゲートまたはＸＯＲ機能を実行するマルチプレクサ）を使用して、Ｎビット加算のうちの１つとなるように最上位ビットが選択される。
【００６５】
本発明の回路構成の他の実施形態においては、Ｎ−Ｍが１である場合、Ｎビット２進数オペランドとＭビット２進数オペランドとが加算される。これらのオペランドは、符号が付けられていない２進数である。Ｍビット２進数オペランドの長さが「伸長され」、０でない値が付いた（例えば「１」）最上位ビットをぶらさげる。オペランドは、２つの部分、すなわち、最も重要でないＭ個のビットと、より重要な重要な（Ｎ−Ｍ）個のビットとに分割される。最も重要でない部分を加算するためにＭビット加算器が使用される。当初のＮビットオペランドのＭ番目のビットと共にＭビット加算からの逆キャリーアウトが使用されることにより、論理回路（例えば、ＸＯＲゲートまたはＸＯＲ機能を実行するマルチプレクサ）を使用して、Ｎビット加算のうちの１つとなるように最上位ビットが選択される。
【００６６】
１つの適用例において、方程式Ｃ（前述した）に従った符号が付けられていないオペランドの２５ビット加算は、部分的に、図５Ａの回路構成５００によって実行される。方程式Ｃは、以下のように表わされる。
Ｐｏｓｎ［２４：０］＝ｐｏｓ［２４：０］＋｛｛０｝，  ｚｏｏｍｎ［２３：０］｝
【００６７】
２５ビット加算器を使用して２５ビット位置変数を繰り返し演算すると、費用がかかる。これは、２５ビット加算が一般に非標準的な機能だからである。この場合も同様に、オペランドが２つの部分に分割され、各部分が個別に評価される。合計経路よりも速いキャリーアウト経路を有する加算器を使用して、最下位ビットの部分和を生成するために、各オペランドの最下位ビット部分同士が加算される。最上位ビットの部分和を選択するために、論理回路５０５が使用される。この場合、選択は、加算器からのキャリーアウトに応じて、オペランドのうちの１つの最上位ビット部分またはそのオフセットである。方程式Ｃを実行する際に、ＸＯＲ論理回路が使用される。
【００６８】
幅が８の倍数である加算器は、簡単に利用できるライブラリ関数であり、例えば２４ビット加算器である。評価のために２４番目のビットで分割される場合、方程式Ｃは、以下のように表わされる。
ｐｏｓｎ［２４：０］＝ｐｏｓｎ［２４］＋ｐｏｓｎ［２３：０］
【００６９】
ここで、加算器によるｐｏｓｎ［２３：０］の演算によっても、キャリーアウトＣ２３が形成される。したがって、方程式Ｃ（方程式Ｃ１）から、
｛Ｃ２３，  ｐｏｓｎ［２３：０］｝＝ｐｏｓ［２３：０］＋ｚｏｏｍｎ［２３：０］
また、（方程式Ｃ２）から、
ｐｏｓｎ［２４］＝ｐｏｓ［２４］＾Ｃ２３
【００７０】
ここで、演算子＾は、位置変数５１０の最後の演算の既に利用可能な２５番目のビットと２４ビット加算のキャリーアウトＣ２３、５２０とを使用して２４ビットの最下位ビットの部分和を決定する論理ＸＯＲ演算を示している。図３は、これらの選択データ部分のための各ソースを示している。キャリーアウトＣ２３は、更なる使用のために合計量が十分に安定化する前に、約２ゲート遅延で、最適化されたキャリーパスを介して、２４ビット加算器から利用できる。
【００７１】
デジタルフィルタリング実施例適用のための最後の方程式すなわち方程式Ｄは、
ｓｖａｌ［４：０］＝ｐｏｓｎ［２４：２０］−ｐｏｓ［２４：２０］
【００７２】
方程式Ｃから、ｐｏｓｎ［２４：２０］は以下のように表わすことができる（方程式Ｅ１）。
ｐｏｓｎ［２４：２０］＝ｐｏｓ［２４：２０］＋｛０，ｚｏｏｍｎ［２３：２０］｝＋Ｃ１９
【００７３】
ここで、Ｃ１９（標準的なライブラリ加算器から得られない）は、単一ビットｚｏｏｍｎ［１９］とｐｏｓｎ［１９］とを加算することによって形成される。
【００７４】
方程式Ｅ１を方程式Ｄに置き換えると、以下のようになる。
Ｓｖａｌ［４：０］＝（ｐｏｓ［２４：２０］＋｛０，ｚｏｏｍｎ［２３：２０］｝＋Ｃ１９）−ｐｏｓ［２４：２０］
＝ｚｏｏｍｎ［２３：２０］＋Ｃ１９
＝Ｃ１９？ｚｏｏｍｎ［２３：２０］＋１：ｚｏｏｍｎ［２３：２０］
【００７５】
「状況」変数ｓｖａｌ［４：０］は、ｚｏｏｍｎ［２３：２０］＋１またはＣ１９の値に依存するｚｏｏｍｎ［２３：２０］である。ｚｏｏｍｎ［２３：２０］は、既に利用可能であり、方程式Ｂの結果の４つの最上位ビットであるため、ｚｏｏｍｎ［２３：２０］またはその増分（インクリメンタまたは４ビット加算器によりｚｏｏｍｎ［２３：２０］を使用して予め計算された）の選択により、中間キャリーＣ１９の値が出る。
【００７６】
中間キャリーＣ１９は、中間キャリーを外部に引き出さない一般的な２４ビット加算器から容易に利用することができなくても良い。任意の２オペランド２進数加算の場合、合計のＭ番目のビットは、１番目のオペランドのＭ番目のビットと、２番目のオペランドのＭ番目のビットと、合計のあまり重要でないビットを計算する際に形成される任意のキャリーとの合計に等しい。例えば、方程式Ｃ（方程式Ｅ２）から、
ｐｏｓｎ［２０］＝ｐｏｓ［２０］＋ｚｏｏｍｎ［２０］＋Ｃ１９
【００７７】
したがって、キャリーＣ１９は、方程式Ｅ２にしたがって他の３つの変数の特定の値のためのｐｏｓｎ［２０］の値を決定するために使用される以下の表から「逆に形成され」ても良い。
【００７８】
【表２】
2005508541.tif 000004
【００７９】
上記表から、以下の（方程式Ｅ３）が得られる。
Ｃ１９＝ｐｏｓ［２０］＾ｚｏｏｍｎ［２０］＾ｐｏｓｎ［２０］
【００８０】
図５Ｂは、方程式Ｅ３を実行する回路構成５５０の一例を示している。８×１ｍｕｘ５６０は、３つの選択端子を有している。第１の選択端子５６２は、ｐｏｓ［２０］を受け、第２の選択端子５６４はｚｏｏｍｎ［２０］を受け、第３の選択端子５６６はｐｏｓｎ［２０］を受ける。図示のように、ｍｕｘ入力部１、２、４、７は論理「１」に結合されており、ｍｕｘ入力部０、３、５、６は論理「０」に結合されている。Ｍｕｘ出力端子５６８は、上記表にしたがってＣ１９を形成する。
【００８１】
図５Ｃは、Ｃ１９に対応する選択論理を実行する回路構成５７０の一例を示している。回路構成５７０は、図５Ｂのｍｕｘ５６０からＣ１９を受けるための１つの選択入力端子５８２を有する２×１ｍｕｘ５８０を備えている。Ｍｕｘ５８０は、第１の入力端子５８４に導かれたｚｏｏｍｎ［２３：２０］または第２の入力端子５８６に導かれたｚｏｏｍｎ［２３：２０］のオフセット（例えば、ｚｏｏｍ［２３：２０］＋１）を選択する。オフセットは、ｚｏｏｍｎ［２３：２０］に基づいて演算するインクリメンタ５９０から得られる。回路構成の他の実施形態において、回路構成５５０，５７０は、ｚｏｏｍｎ［２３：２０］である第１の入力信号と、ｚｏｏｍｎ［２３：２０］＋１等のｚｏｏｍｎ［２３：２０］のオフセットである第２の入力信号とを受けるようになっている１つのマルチプレクサ回路内に組み込まれる。入力のうちの１つは、回路構成５５０の選択論理を使用して選択される。
【００８２】
したがって、方程式Ｄを演算するための４ビット加算は、方程式Ｃの解を得る前に解くことができる。ｚｏｏｍｎ［２３：２０］の値は、方程式Ｂを解いた後に利用でき、また、ｐｏｓｎ［２０］の値は、前述した方法により方程式Ｃを計算する際に得られる中間値である。マルチプレクサ選択論理で最後に到達する信号（ｐｏｓｎ［２０］）が先の方程式から得られる場合であっても、ｐｏｓｎ［２０］信号は、先の方程式における完全な結果よりも早く利用できる。
【００８３】
したがって、例えばビデオ信号処理、暗号法、他のコンピュータで実行される制御アプリケーション等で実行される一連の符号付き及び符号無し２進数計算のための高速加算を行なうために、本発明の様々な実施形態を実現できる。一般に、本発明の回路構成および方法は、ＡＬＵが使用される場合にはいつでも適用することができる。前述した様々な実施形態は、単なる一例として与えられており、本発明を制限するものと解釈すべきではない。前述した説明および図面に基づいて、当業者であれば分かるように、ここに図示して説明した典型的な実施形態および用途に厳密に従うことなく、本発明に対して様々な修正および変更を行なうことができる。そのような修正および変更は、以下の請求項に記載された本発明の真の思想および範囲から逸脱しない。
【００８４】
一般的な新たな観点から、Ｎビットの第１の２進数オペランドとＭビットの第２の２進数オペランドとを加算するための回路構成は、ＮがＭより大きく又はＮがＭと等しい場合において、
第１の２進数オペランドの最下位ビットの代表的なセットと、第２の２進数オペランドの最下位ビットの代表的なセットとを加算して、最下位ビットの部分和およびキャリーアウトを形成する手段と、
選択データに対応する第１の２進数オペランドの最上位ビットの代表的なセットおよび第１の２進数オペランドの最上位ビットの代表的なセットのオフセットのうちの一方を通ることにより、最上位ビットの部分和を出力する手段であって、選択データが、第１の２進数オペランドの最下位ビットの代表的なセットのうちの最上位ビットの関数である手段と、
を備えている。
【００８５】
回路構成の特定の実施形態においては、Ｎ＝Ｍであり、第２の２進数オペランドの最上位ビットが０であり、また、マルチプレクサ回路は、排他的論理和ゲートとして動作するように構成されており、選択データは、加算器からのキャリーアウトおよび第１の２進数オペランドの最上位ビットである。
【００８６】
キャリーアウトは、最下位ビットの部分和の前に加算器から利用することができる。
【００８７】
回路構成の他の特定の実施形態において、オペランドは、符号が付けられていない２進数であり、また、マルチプレクサ回路は、排他的論理和ゲートとして動作するように構成されており、選択データは、加算器からのキャリーアウトおよび第１の２進数オペランドの最上位ビットである。
【００８８】
回路構成の他の特定の実施形態において、オペランドは、符号が付けられていない２進数である。
【図面の簡単な説明】
【００８９】
【図１】本発明に係るデータ処理回路の一例の概略ブロック図を示す。
【図２】本発明に係る再構成可能なデジタルフィルタのための機能的データパスユニットの一例の概略ブロック図を示す。
【図３】本発明に係るパノラマモードで動作する多相直接フィルタのズーム演算のためのデータパスによるデータ操作例のフローチャートを示す。
【図４】本発明に係るデジタルフィルタ内での２４ビット加算演算を加速するための選択論理のブロック図を示す。
【図５Ａ】本発明に係るデジタルフィルタ内での２５ビット加算演算を加速するための選択論理のブロック図を示す。
【図５Ｂ】本発明に係るデジタルフィルタの２５ビット加算演算内で中間キャリーアウトを決定するための選択論理のブロック図を示す。
【図５Ｃ】本発明に係るデジタルフィルタ内での４ビット加算演算を加速するための選択論理のブロック図を示す。
【符号の説明】
【００９０】
１００  デジタルフィルタリング回路
１０２  データパスユニット
１１０ａ、１１０ｂ  組み合わせ論理回路
１１２ａ、１１２ｂ  パイプラインレジスタ
１２０  制御／モードプロセッサ
２００  ビデオフィルタ
２１０  ピクセル入力パス
２２０  機能的ユニットデータパス
２３０  クロックパス
２４０  ピクセル出力パス
４２０  マルチプレクサ
【図１】
2005508541.tif 000005
【図２】
2005508541.tif 000006
【図３】
2005508541.tif 000007
【図４】
2005508541.tif 000008
【図５Ａ】
2005508541.tif 000009
【図５Ｂ】
2005508541.tif 000010
【図５Ｃ】
2005508541.tif 000011
【国際公開パンフレット】
2005508541.tif 000012
2005508541.tif 000013
2005508541.tif 000014
2005508541.tif 000015
2005508541.tif 000016
2005508541.tif 000017
2005508541.tif 000018
2005508541.tif 000019
2005508541.tif 000020
2005508541.tif 000021
2005508541.tif 000022
2005508541.tif 000023
2005508541.tif 000024
2005508541.tif 000025
2005508541.tif 000026
2005508541.tif 000027
2005508541.tif 000028
2005508541.tif 000029
2005508541.tif 000030
2005508541.tif 000031
2005508541.tif 000032
2005508541.tif 000033
2005508541.tif 000034
2005508541.tif 000035
2005508541.tif 000036
2005508541.tif 000037
2005508541.tif 000038
2005508541.tif 000039
2005508541.tif 000040
【国際公開パンフレット（コレクトバージョン）】
2005508541.tif 000041
【国際調査報告】
2005508541.tif 000042
2005508541.tif 000043
2005508541.tif 000044
2005508541.tif 000045
2005508541.tif 000046