【文献】
Juyup Lee(外2名),H.264 DECODER OPTIMIZATION EXPLOITING SIMD INSTRUCTIONS,Circuits and Systems, 2004. Proceedings. The 2004 IEEE Asia-Pacific Conference on,米国,IEEE,2004年12月 6日,p.1149-1152
(58)【調査した分野】(Int.Cl.,DB名)
偶数番目の補間されたサブピクセルの前記セットに対する前記初期値を生成するステップが、単一のマシンサイクルの間に行われ、奇数番目の補間されたサブピクセルの前記セットに対する前記初期値を生成するステップが、単一のマシンサイクルの間に行われる、請求項1に記載の方法。
偶数番目の補間されたサブピクセルの前記セットが、4個の偶数番目の補間されたサブピクセルを含み、前記4個の偶数番目の補間されたサブピクセルの各々の前記初期値が、対応する2個の積の合計として生成され、奇数番目の補間されたサブピクセルの前記セットが、4個の奇数番目の補間されたサブピクセルを含み、前記4個の奇数番目の補間されたサブピクセルの各々の前記初期値が、対応する2個の積の合計として生成される、請求項3に記載の方法。
前記4個の偶数番目の補間されたサブピクセルの前記それぞれの値をインクリメントする各ステップが、別の対応する2個の積の合計によって前記値の各々をインクリメントするステップを含み、前記2個の積の各々が、前記シフトするステップによってシフトされ前記ウィンドウレジスタに記憶された前記ピクセルウィンドウからのピクセルの値と、前記タップ係数レジスタ中の係数の別のセットからの係数との積であり、
前記4個の奇数番目の補間されたサブピクセルの前記それぞれの値をインクリメントする各ステップが、別の対応する2個の積の合計によって前記値の各々をインクリメントするステップを含み、前記別の対応する2個の積の各々が、前記再びシフトするステップによってシフトされ前記ウィンドウレジスタに記憶された前記ピクセルウィンドウからのピクセルの値と、前記係数レジスタ中の係数の前記別のセットからの係数との積である、請求項4に記載の方法。
前記タップ係数レジスタ中の係数の前記セットを更新し、前記ウィンドウレジスタ中の前記ピクセルウィンドウをシフトするステップが、前記偶数番目の補間されたサブピクセルの前記それぞれの値をインクリメントするステップと組み合わされて、単一のマシンサイクルの間に行われ、前記奇数番目の補間されたサブピクセルの前記それぞれの値をインクリメントするステップと組み合わされた、前記ウィンドウレジスタ中の前記ピクセルウィンドウを再びシフトする前記ステップが、単一のマシンサイクルの間に行われる、請求項5に記載の方法。
偶数番目の補間されたサブピクセルの前記セットが少なくとも4個の偶数番目の補間されたサブピクセルを含み、前記4個の偶数番目の補間されたサブピクセルの各々の前記初期値が、対応する2個の積の合計として生成され、
奇数番目の補間されたサブピクセルの前記セットが少なくとも4個の奇数番目の補間されたサブピクセルを含み、前記4個の奇数番目の補間されたサブピクセルの各々の前記初期値が、対応する2個の積の合計として生成され、
前記4個の偶数番目の補間されたサブピクセルの前記それぞれの値をインクリメントする各ステップが、別の対応する2個の積の合計によって前記値の各々をインクリメントするステップを含み、前記2個の積の各々が、前記シフトするステップによってシフトされ前記ウィンドウレジスタに記憶された前記ピクセルウィンドウからのピクセルの値と、前記タップ係数レジスタ中の係数の別のセットからの係数との積であり、
前記4個の奇数番目の補間されたサブピクセルの前記それぞれの値をインクリメントする各ステップが、別の対応する2個の積の合計によって前記値の各々をインクリメントするステップを含み、前記2個の積の各々が、前記再びシフトするステップによってシフトされ前記ウィンドウレジスタに記憶された前記ピクセルウィンドウからのピクセルの値と、前記タップ係数レジスタ中の係数の前記別のセットからの係数との積である、請求項1に記載の方法。
前記偶数番目の補間されたサブピクセルの前記値および前記奇数番目の補間されたサブピクセルの前記値を2回累算すると、前記終了条件が満たされる、請求項1に記載の方法。
偶数番目の補間されたサブピクセルの前記セットの前記初期値を生成するステップが、単一のマシンサイクルの間に行われ、奇数番目の補間されたサブピクセルの前記セットの前記初期値を生成するステップが、単一のマシンサイクルの間に行われる、請求項9に記載の方法。
前記偶数番目の補間されたサブピクセルの前記値をインクリメントする各ステップが、偶数番目の補間されたサブピクセルの前記セットを前記メモリから前記累算器レジスタへとロードするステップと、前記シフトするステップによってシフトされ前記ウィンドウレジスタに記憶された前記ピクセルウィンドウからのピクセルの値を、前記タップ係数レジスタ中の前記タップ係数セットからの対応するタップ係数と乗算して、対応する積の合計を生成するステップと、積の前記合計のペアを前記累算器レジスタからの対応する偶数番目の補間されたサブピクセルの値と合計して、累算された積の合計のセットを生成するステップと、累算された積の合計の前記セットを、偶数番目の補間されたサブピクセルの前記セットの更新された値として前記累算器レジスタへとロードするステップと、偶数番目の補間されたサブピクセルの前記セットを、前記累算器レジスタから前記メモリへとオフロードするステップとを含み、
前記奇数番目の補間されたサブピクセルの前記値をインクリメントする各ステップが、奇数番目の補間されたサブピクセルの前記セットを前記メモリから前記累算器レジスタへとロードするステップと、前記再びシフトするステップによってシフトされ前記ウィンドウレジスタに記憶された前記ピクセルウィンドウからのピクセルの値を、前記タップ係数レジスタ中の前記タップ係数セットからの対応するタップ係数と乗算して、対応する積の合計を生成するステップと、積の前記合計のペアを前記累算器レジスタからの対応する奇数番目の補間されたサブピクセルの値と合計して、累算された積の合計のセットを生成するステップと、累算された積の合計の前記セットを、奇数番目の補間されたサブピクセルの前記セットの更新された値として前記累算器レジスタへとロードするステップと、奇数番目の補間されたサブピクセルの前記セットを、前記累算器レジスタから前記メモリへとオフロードするステップとを含む、請求項9に記載の方法。
偶数番目の補間されたサブピクセルの前記セットの前記値をインクリメントするステップが、単一のマシンサイクルの間に行われ、奇数番目の補間されたサブピクセルの前記セットの前記値をインクリメントするステップが、単一のマシンサイクルの間に行われる、請求項11に記載の方法。
偶数番目の補間されたサブピクセルの前記セットが、整数個の偶数番目の補間されたサブピクセルを含み、奇数番目の補間されたサブピクセルの前記セットが、前記整数に等しい数の奇数番目の補間されたサブピクセルを含み、
偶数番目の補間されたサブピクセルの前記セットに対する前記初期値を生成するステップが、各初期値に対応する乗算のペアを同時に実行するステップと、各初期値に対する積の対応するペアを生成するステップと、積の各ペアの加算を同時に実行して、前記整数個の偶数番目の補間されたサブピクセルの各々に対する前記初期値を同時に生成するステップとを含み、
奇数番目の補間されたサブピクセルの前記セットに対する前記初期値を生成するステップが、各初期値に対応する乗算のペアを同時に実行するステップと、各初期値に対する積の対応するペアを生成するステップと、積の各ペアの加算を同時に実行して、前記整数個の奇数番目の補間されたサブピクセルの各々に対する前記初期値を同時に生成するステップとを含む、請求項1に記載の方法。
前記偶数番目の補間されたサブピクセルの前記初期値を、補間された偶数番目のサブピクセルの前記セットに対する記憶された現在値としてメモリにオフロードするステップと、
前記奇数番目の補間されたサブピクセルの前記初期値を、補間された奇数番目のサブピクセルの前記セットの記憶された現在値としてメモリにオフロードするステップとをさらに含み、
補間された偶数番目のサブピクセルの前記セットの前記値をインクリメントするステップが、前記メモリから、インクリメントされるべき補間された偶数番目のサブピクセルの前記セットの前記値として、補間された偶数番目のサブピクセルの前記セットの前記記憶された現在値を取り出すステップと、補間された偶数番目のサブピクセルの前記セットの前記値を、補間された偶数番目のサブピクセルの前記セットの前記記憶された現在値として、インクリメントする前記ステップの後で記憶するステップとを含み、
補間された奇数番目のサブピクセルの前記セットの前記値をインクリメントするステップが、前記メモリから、インクリメントされるべき補間された奇数番目のサブピクセルの前記セットの前記値として、補間された奇数番目のサブピクセルの前記セットの前記記憶された現在値を取り出すステップと、補間された奇数番目のサブピクセルの前記セットの前記値を、補間された奇数番目のサブピクセルの前記セットの前記記憶された現在値として、インクリメントする前記ステップの後で記憶するステップとを含む、請求項1に記載の方法。
タップ係数の前記所与のセットが、整数に等しい数のタップ係数のペアを含み、タップ係数の各ペアが、前記偶数番目の補間されたサブピクセルの1つおよび前記奇数番目の補間されたサブピクセルの1つに対応する、マルチタップ補間フィルタの2個のタップに対応し、
偶数番目の補間されたサブピクセルの前記セットの前記初期値を生成するステップが、
各初期値に対して、タップ係数の対応する1つのペアの1つのタップ係数を前記ピクセルウィンドウ中の1つのピクセルの値と乗算して積を生成するステップと、タップ係数の前記対応する1つのペアの他方のタップ係数を前記ピクセルウィンドウ中の別のピクセルの値と乗算して別の積を生成するステップと、前記積を前記別の積に加算して、2個の積の合計を、前記偶数番目の補間されたサブピクセルの前記初期値として生成するステップとを含み、2個の積の前記合計が、前記偶数番目の補間されたサブピクセルの最終値に対する前記2個のタップの寄与を含み、
奇数番目の補間されたサブピクセルの前記セットの前記初期値を生成するステップが、
各初期値に対して、前記タップ係数の対応する1つのペアの1つのタップ係数を前記シフトされたピクセルウィンドウ中の1つのピクセルの値と乗算して積を生成するステップと、タップ係数の前記対応する1つのペアの他方のタップ係数を前記シフトされたピクセルウィンドウ中の別のピクセルの値と乗算して別の積を生成するステップと、前記積を前記別の積に加算して、2個の積の合計を、前記奇数番目の補間されたサブピクセルの前記初期値として生成するステップとを含み、2個の積の前記合計が、前記奇数番目の補間されたサブピクセルの最終値に対する前記2個のタップの寄与を含む、請求項14に記載の方法。
無線通信システム内のプロセッサ装置により実行されたときに、ピクセルアレイに対する補間されたピクセルを生成するための方法を実行する動作を前記プロセッサ装置に実施させる命令を含み、前記プロセッサ装置に請求項1乃至16の何れか1項に記載の方法を実施させる命令を含む、コンピュータ可読記録媒体。
【発明を実施するための形態】
【0016】
本発明の特定の実施形態を対象とする以下の説明および関連する図面で、本発明の態様が開示される。本発明の範囲から逸脱することなく、代替の実施形態が考案され得る。加えて、本発明の関連する詳細を不明瞭にしないように、本発明のよく知られている要素は詳細に説明されず、または省略される。
【0017】
「例示的な」という言葉は、「例、事例、または例示として機能すること」を意味するように本明細書で使用される。「例示的な」として本明細書で説明される任意の実施形態は、必ずしも他の実施形態よりも好ましいか、または有利であると解釈されるべきではない。同様に、「本発明の実施形態」という用語は、本発明のすべての実施形態が、論じられた特徴、利点または動作モードを含むことを必要としない。
【0018】
本明細書で使用される用語は、特定の実施形態の説明のみを目的とするものであり、本発明の実施形態を限定するものではない。本明細書で使用される単数形「a」、「an」、および「the」は、文脈が別段に明確に示すのでなければ、複数形をも含むものとする。さらに、本明細書で使用される「含む(comprises)」、「含んでいる(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、述べられた特徴、整数、ステップ、動作、要素、および/またはコンポーネントの存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、および/またはそれらのグループの存在または追加を排除しないことを理解されよう。
【0019】
さらに、多くの実施形態が、たとえばコンピューティングデバイスの要素によって実行されるべき、一連の動作に関して説明される。本明細書で説明される様々な動作は、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つまたは複数のプロセッサによって実行されるプログラム命令によって、あるいは両方の組合せによって実行され得ることを認識されよう。加えて、本明細書で説明されるこれらの一連の動作は、実行されると、関連するプロセッサに本明細書で説明される機能を実行させるコンピュータ命令の対応するセットを記憶した、任意の形式のコンピュータ可読記憶媒体内で完全に具現化されるものと見なされ得る。したがって、本発明の様々な態様は、特許請求される主題の範囲内にすべて入ることが企図されているいくつかの異なる形式で具現化され得る。加えて、本明細書で説明される実施形態ごとに、任意のそのような実施形態の対応する形式は、本明細書では、たとえば、説明される動作を実行する「ように構成された論理」として説明されることがある。
【0020】
H.264のようなビデオ圧縮技法では、動き補償(MC)の精度は、たとえば、ルーマサンプル間の距離の1/4の単位である。動きベクトルが整数サンプル位置を指す例では、予測信号は、参照ピクチャの対応するサンプルからなる。動きベクトルが整数サンプル位置以外を指す例では、対応するサンプルは、非整数位置を生成するための補間を使用して取得される。1/2サンプル位置における予測値は、1次元の6タップ有限インパルス応答(FIR)フィルタを水平方向および垂直方向に適用することによって取得され得る。1/4サンプル位置における予測値は、整数位置および1/2サンプル位置におけるサンプルを平均することによって生成され得る。
【0021】
図1は、サンプルa-kおよびn-rに対する分数サンプル補間を示す。bおよびhと標識された1/2サンプル位置におけるサンプルは、それぞれ次のように6タップフィルタを適用することによって、中間値b
1およびh
1をまず計算することによって導出される。
【0022】
b
1=(E-5F+20G+20H-5I+J) Eq. (1)
【0023】
h
1=(A-5C+20G+20M-5R+T) Eq. (2)
【0024】
位置bおよびhに対する最終予測値は、次のように得られ、0〜255の範囲にとどめられ得る。
【0025】
b=(b
1+16)>>5 Eq. (3)
【0026】
h=(h
1+16)>>5 Eq. (4)
【0027】
jと標識された1/2サンプル位置におけるサンプルは、
j
1=cc-5dd+20h
1+20m
1-5ee+ff Eq. (5)
によって得られてよく、cc、dd、ee、m
1、およびffによって示される中間値は、h
1と同様の方式で得られる。そして、最終予測値jは、
j=(j
1+512)>>10 Eq. (6)
として計算され、0〜255nの範囲にとどめられ得る。
【0028】
jの値を得る2つの代替的な方法は、フィルタリング動作が1/2サンプル位置の生成のために分離可能であることを示す。
【0029】
さらに
図1を参照すると、a、c、d、n、f、i、k、およびqと標識された1/4サンプル位置におけるサンプルは、たとえば、
a=(G+b+1)>>1 Eq. (7)
として、整数サンプル位置および1/2サンプル位置における2つの最も近いサンプルの上方丸めを伴って平均することによって導出される。
【0030】
e、g、p、およびrと標識された1/4サンプル位置におけるサンプルは、たとえば、
e=(b+h+1)>>1 Eq. (8)
として、対角方向にある1/2サンプル位置における最も近い2つのサンプルを上方丸めを伴って平均することによって導出される。
【0031】
クロマ成分の予測値は、双線形補間によって得られ得る。クロマのサンプリング格子は、ルーマのサンプリング格子よりも分解能が低いので、クロマのために使用される変位は、1/8サンプル位置の精度を有する。
【0032】
図2を参照すると、例示的なマルチタップ統合補間フィルタ200は、ピクセルウィンドウレジスタ202、乗算器のアレイ、この例では8個の乗算器204-0、204-1、…、204-7(総称的に「乗算器204」または「乗算器アレイ」と呼ばれ、「204」は図面に明確に現れない)、およびタップ係数セットレジスタ206を含む。ピクセルウィンドウレジスタは、複数の、この例では8個のピクセルレジスタ202-0、202-1、…、202-7(総称的に「202-x」と呼ばれ、これは図面には現れない)を有し得る。ある態様では、ピクセルウィンドウレジスタ202を形成する8個のピクセルレジスタ202-xは、パラレルにロード可能なように、パラレルな出力を有するように構成されてよく、たとえば、
図2で右から左として示されるような「方向」に、バケツリレー方式で一緒に、選択的にシフトされるように構成され得る。代替的に、ある態様では、ピクセルレジスタ202-xは、ピクセルウィンドウレジスタ202が8ピクセルのパラレルイン/パラレルアウトシフトレジスタ機能を提供するように構成され得る。ピクセルレジスタ202-xは、Sビットの幅であり得る。限定されることなく、「S」の1つの例示的な値は8ビットである。ピクセルウィンドウレジスタ202の1つの例示的な実装形態は、パラレルなロードおよび出力という特徴を有する、ファーストインファーストアウト(FIFO)またはFIFOパイプラインであり得る。ピクセルウィンドウレジスタ202の具体的な構造に関して、自身の保有するノウハウを本開示に適用する当業者は、様々な構造的な実装形態を容易に特定することができるので、そのような構造のさらなる詳細な説明は省略される。
【0033】
より後のセクションでより詳細に説明されるように、ピクセルウィンドウレジスタ202を通るSビットのピクセルデータの「右から左への」シフトは、一部、畳み込みタイプの演算をもたらし得る。
図3を参照して後のセクションで説明される一例は、ピクセルアレイの例示的な領域(
図2には示されない)の行(
図2には示されない)にわたる8個のピクセル(
図2には示されない)を包含する、ウィンドウのシフトをもたらし得る。
【0034】
図2を続けて参照すると、いくつかの態様に対するさらなる動作を説明する際に図面を参照するときに便利なように、乗算器204-0および204-1は、代替的に「第1の乗算器ペア」204-0/1と呼ばれ、乗算器204-2および204-3は「第2の乗算器ペア」204-2/3と呼ばれ、乗算器204-4および204-5は「第3の乗算器ペア」204-4/5と呼ばれ、乗算器204-6および204-7は「第4の乗算器ペア」204-6/7と呼ばれる。「乗算器ペア」という用語は、いくつかの態様に関する例示的な動作を説明するためだけのものであり、ハードウェアアーキテクチャを定義することは意図されないことを理解されたい。逆に、より後のセクションにおけるさらに詳細な説明から理解されるように、一態様では、乗算器204の出力は、
図2に示されるものとは異なる構成で、加算デバイス208-yに結合され得る。
【0035】
図2をさらに参照すると、ある態様では、乗算器204の各々は、上で説明されたピクセルレジスタ202-xの対応する1つに結合される、または結合されることが可能な第1のオペランドポート(示されているが別々に標識されてはいない)、および、タップ係数セットレジスタ206の対応するタップ係数レジスタ206-xに結合される、または結合されることが可能な第2のオペランドポート(示されているが別々には番号を付けられていない)によって構成され得る。ある態様では、タップ係数セットレジスタ206は、たとえば、第8のタップ係数レジスタ206-7で終わる、第1のタップ係数レジスタ206-0、第2のタップ係数レジスタペア206-1などを含み得る。
【0036】
ある態様では、乗算器204は、固定小数点乗算を実行するように構成されてよく、このことは、例示的な演算を説明するために仮定される。しかし、この仮定は、概念とは関係のない複雑さをもたらすことなく例示的な処理の説明を容易にするためのものにすぎず、考慮される実施形態の範囲を限定することは意図されない。逆に、本開示を読めば、実施形態は浮動小数点の計算を使用して実施され得ることが、当業者により容易に理解されるだろう。
【0037】
図2をさらに参照すると、より後のセクションでより詳細に説明されるように、ある態様では、マルチタップ統合補間フィルタ200は、タップ係数の複数のセット(
図2には特に示されていない)を記憶装置(
図2には特に示されていない)に記憶し、タップ係数のそのようなセットを選択的に取り出し、これらをタップ係数セットレジスタ206にロードするように構成され得る。ピクセルウィンドウレジスタ202およびタップ係数セットレジスタ206は同一の構造を有してよく、たとえば、各々がレジスタアレイ(明確には示されていない)中の論理的に指定されたレジスタであり得ることを理解されたい。
【0038】
図2をさらに参照すると、1つの構成では、第1の乗算器ペア204-0、204-1のそれぞれの出力は、第1の加算デバイス208-0のオペランド入力ポート(示されるが、別々には番号を付けられていない)、第2の加算デバイス208-1のオペランド入力ポート(示されるが、別々には番号を付けられていない)に入力する第2の乗算器ペア204-2、204-3のそれぞれの出力、第3の加算デバイス208-2のオペランド入力ポート(示されるが、別々には番号を付けられていない)に入力する第3の乗算器ペア204-4、204-5のそれぞれの出力、および、第4の加算デバイス208-3のオペランド入力ポート(示されるが、別々には番号を付けられていない)に入力する第4の乗算器ペア204-6、204-7のそれぞれの出力へと、スイッチングされ、ルーティングされ、または別様に結合され得る。例示的な動作の説明を簡潔にするために、第1の加算デバイス208-0、第2の加算デバイス208-1、第3の加算デバイス208-2、および第4の加算デバイス208-3はまた、総称的に、「加算デバイス208-y」として個々に呼ばれ、「加算デバイス208」としてまとめて呼ばれ、「208-y」および「208」という標識は図面には明確には現れないことを理解されたい。
【0039】
加算デバイス208への乗算器204の図示され説明される結合を実施するための、スイッチング、ルーティング、または結合の論理(図示されず)に関して、一態様では、当業者は、本開示に基づいて、従来のデジタルシグナルプロセッサの設計技法を適用することによってそのような論理を選択し、または別様に実装できるので、スイッチング、ルーティング、または結合の論理のさらなる詳細な説明は省略される。
【0040】
図2の参照を続けると、ある態様では、マルチタップ統合補間フィルタ200は、たとえば、4個の累算器レジスタ210-0、210-1、210-2、210-3(総称的に、「累算器レジスタ210-y」として個々に呼ばれ、「210-y」は図面には明確には現れないことが理解される)を有する累算器210を含み得る。4個という量は一例にすぎず、いかなる実施形態の範囲も限定することは意図されないことが理解されよう。累算器レジスタ210-0、210-1、210-2、および210-3は、別々に制御されるとは限らず、または別々に制御可能なレジスタであるとは限らず、代わりに、累算器210のフィールドであり得ることも理解されたい。さらに、累算器レジスタ210-0、210-1、210-2、および210-3は、4個のフィールドのサブセットとして、または、4個よりも多くのフィールドもしくはその等価物を有する実装された累算器210の等価物のサブセットとして実装され得ることが予想される。
【0041】
図2をさらに参照すると、一態様では、各加算デバイス208の出力(示されるが、別々には番号を付けられていない)は、対応する累算器レジスタ210-yに直接入力し得る。さらなる態様では、
図2のマルチタップ統合補間フィルタ200は、加算デバイス208の中の、またはそれと関連した、飽和論理、たとえば、図示された2Sビットの符号付き飽和論理212-0、212-1、212-2、212-3(まとめて「2Sビットの符号付き飽和論理212」と呼ばれ、総称的に「飽和論理」212-yとして個々に呼ばれ、「212」「212-y」という標識は図面に明確に現れないことを理解されたい)を含み得る。
図2の本態様による例では、飽和論理212-yは、各加算デバイス208-yの出力(示されるが、別々には番号を付けられていない)と対応する累算器レジスタ210-yとの間に論理的に配置され得る。ここでの、および本明細書の他の例における「論理的に配置される」とは、「2Sビットの符号付き飽和論理」212-yが、別個のハードウェアまたは専用のハードウェアであるとは限らないことを意味し得ることを理解されたい。たとえば、一態様では、2Sビットの各符号付き飽和論理212-yは、プログラム可能な機能として、対応する加算デバイス208-yを実装する論理(別々には示されていない)へと組み込まれ得る。2Sビットの符号付き飽和論理212の具体的な構造に関して、当業者は、本開示に鑑みて、当業者に知られている標準的なデジタル設計技法および技術を本開示に適用することによって、そのような論理を実装するための技法および構造を容易に特定することができる。したがって、2Sビットの符号付き飽和論理212の構造のさらなる詳細な説明は省略される。
【0042】
2Sビットの符号付き飽和論理212の動作および機能に関して、これらはさらに、8という以前に説明された例示的なSに関する例によって理解され、(この例では)ウィンドウレジスタ202が8ビットの符号なしのデータを保持し、タップ係数セットレジスタ206に記憶されるタップ係数データは符号付きの8ビットデータであることを意味する。したがって、この例では、2Sビットの符号付き飽和論理212の文脈における値「2S」は16に等しい。Sが8に等しく2Sが16に等しい、2Sビットの符号付き飽和論理212の例示的な特徴は、第1の乗算器ペア204-0、204-1、加算デバイス208-0、および2Sビットの符号付き飽和論理212-0を参照することによって理解され得る。より具体的には、乗算器204-0は、ピクセルレジスタ202-0からの8ビットの符号なしピクセルデータを、タップ係数レジスタ206-0からの対応する符号付きの8ビットのタップ係数と乗算し、1つの符号付きの16ビットの積を生成することができ、同様に、乗算器204-1は、ピクセルレジスタ202-1からの別の8ビットの符号なしピクセルデータを、タップ係数レジスタ206-1からの対応する符号付きの8ビットのタップ係数と乗算し、別の符号付きの16ビットの積を生成することができる。2つのそれぞれの符号付きの16ビットの積は、加算デバイス208-0の2つのオペランド入力ポート(示されるが、別々には番号を付けられていない)に入力される。ある態様では、第1の加算デバイス208-0は、たとえば、入力オペランドポート(示されるが、別々には番号を付けられていない)が累算器の第1のレジスタ210-0に結合されるのを可能にすることによって、または、論理(示されていない)が第1の加算デバイス208-0の内部にあることを可能にすることによって、累算器モードで動作するように選択的に構成され得る。第1の加算デバイス208-0は、累算器モードで動作するとき、符号付きの16ビットの積と、累算器の第1のレジスタ210-0の現在の内容とを加算(または符号によっては減算)することができ、積の合計の結果、または、累算された積の合計の結果を、2Sビットの符号付き飽和論理212-0に与えることができる。16ビットを超えると2Sビットの符号付き飽和論理212-0によって16ビットで飽和させられ得る、この積の合計の結果または累算された積の合計の結果が、次いで第1の累算器レジスタ210-0にロードされ得る。残りの乗算器204-2、204-3、…、204-7、および残りの加算デバイス208-1、208-2、および208-3は、ピクセルウィンドウレジスタ202からの対応するピクセルレジスタ202-xの内容およびタップ係数レジスタ206からのタップ係数レジスタ206-xの内容に対して同様に動作することができ、それぞれの16ビットの積の合計または累算された積の合計の結果を、残りの累算器レジスタ210-1、210-2、および210-3のうちの対応する1つに与えることができる。
【0043】
図3は、A、B、C、…、Mと標識された13個の画像ピクセルの行304に沿った位置の6回のステップシーケンスを通じた、ピクセルウィンドウ302のステップ移行のグラフィカルなモデル300を示す。ピクセルウィンドウ302は、8ビットの幅を有するものとして示されるが、これは単なる例であり、実施形態のいずれかの範囲を限定することは意図されない。開始位置302-0において、ピクセルウィンドウ302は、(8ピクセルという例示的な幅を仮定すると)ピクセルA、B、C、D、E、F、G、およびHにまたがり、終了位置302-5は、ピクセルF、G、H、I、J、K、L、およびMにまたがる。一態様では、6回のステップシーケンスは、3回の「偶数番目」のステップが3回の「奇数番目」のステップと交互に来るものと見なされ得る。「偶数番目」および「奇数番目」という標識は任意であることを理解されたい。関連する態様では、かつより後のセクションにおいてより詳細に説明されるように、
図2のマルチタップ統合補間フィルタ200は、6個の状態または構成のシーケンスを通じて構成され操作されてよく、各状態は、シーケンス302-0、…、302-5における、ピクセルウィンドウ302の「偶数番目」または「奇数番目」のステップの1つに対応する。
【0044】
図2および
図3を参照すると、
図2のマルチタップ統合補間フィルタ200のピクセルウィンドウレジスタ202は、シーケンス302-0、…、302-5における
図3のピクセルウィンドウ302のこれらの「偶数番目」または「奇数番目」のステップの各々において、その位置における
図3のピクセルウィンドウ302がまたがるピクセルをロードされる。
図2のマルチタップ統合補間フィルタ200は、一態様では、6個の
図3のピクセルウィンドウ302の位置の各々において、1つまたは複数の例示的な実施形態に従って、補間フィルタプロセスを実行することができる。ある態様では、例示的な動作のより後の説明からさらに理解されるように、6個の
図3のピクセルウィンドウ302の位置の各々において
図2のマルチタップ統合補間フィルタ200によって実行される補間フィルタプロセスは、1つのマシンサイクルにおいて実行され得る。
【0045】
「偶数番目」の
図3のピクセルウィンドウ302の位置302-0、302-2、および302-4に対応する状態において
図2のマルチタップ統合補間フィルタ200によって実行される例示的な補間フィルタプロセスを説明する際に便利なように、これらの例示的な補間フィルタプロセスは、代替的に「偶数番目」のマシンサイクルと呼ばれる。したがって、同様に、「奇数番目」の
図3のピクセルウィンドウ302の位置302-1、302-3、および302-5に対応する状態においてマルチタップ統合補間フィルタ200によって実行される補間フィルタプロセスは、代替的に「奇数番目」のマシンサイクルと呼ばれる。
【0046】
例示的な実施形態による方法およびシステムにおける1つの例示的な6ステップまたは6状態の短縮サイクル補間フィルタプロセスが、
図2および
図3とともに、
図4、
図5、
図6、
図7、
図8、および
図9を参照して以下でより詳細に説明される。概観すると、例は、
図4を参照して説明されるような第1の「偶数番目」のマシンサイクルを含んでよく、このマシンサイクルにおいて、ピクセルウィンドウレジスタ202は、第1の「偶数番目」の位置302-0においてピクセルウィンドウ302がまたがり、第1のタップ係数セットをロードされたタップ係数セットレジスタ206による演算の対象となる、
図3のピクセルをロードされ得る。この演算は、累算器210において、
図3の4個の「偶数番目」の補間された1/2ピクセルa、c、e、およびgの初期値を生成し形成し得る。ある態様では、形成された4個の「偶数番目」の補間された1/2ピクセルa、c、e、およびgは、メモリ(図示されない)にオフロードされ得る。理解されるように、このオフロードは、そのいずれもが累算器210の使用について互いに干渉しない、「偶数番目」のマシンサイクルおよび「奇数番目」のマシンサイクルの交互配置を実現し得る。諒解されるように、この交互配置という特徴により、いくつかの利点の中でもとりわけ、様々な例示的な実施形態による実施において、統合補間フィルタが実現し得る。
【0047】
ある態様では、
図5を参照したより詳細な説明からさらに理解されるように、第1の「奇数番目」のマシンサイクルにおいて、ピクセルウィンドウレジスタ202は、第1の「奇数番目」の位置302-1においてピクセルウィンドウ302がまたがるピクセルを保持するように更新されてよく、ピクセルウィンドウレジスタの内容は、第1の「偶数番目」のマシンサイクルのために使用される同じ第1のタップ係数セットを一態様では有するタップ係数セットレジスタ206による演算の対象となる。この演算は、ある態様では、
図3の例示的な4個の「奇数番目」の1/2ピクセルb、d、f、およびhの初期値を形成することができ、これらは次いでメモリにオフロードされ得る。
図6を参照してより詳細に説明されるように、第2の「偶数番目」のマシンサイクルは、前に形成された4個の「偶数番目」の補間された1/2ピクセルa、c、e、およびgによって累算器210をリロードするステップを含んでよく、ピクセルウィンドウレジスタ202は、第2の「偶数番目」の位置302-2においてピクセルウィンドウ302がまたがる
図3のピクセルを有するように更新され、タップ係数セットレジスタ206は第2のタップ係数セットをロードされる。第2のタップ係数セットを有するタップ係数セットレジスタ206は次いで、
図3の「偶数番目」の位置302-2を有するピクセルウィンドウレジスタ202の内容に対して演算を行い、増分の値(符号が正または負であり得る)を生成することができ、これらの増分の値は、累算器210において、前に形成された4個の「偶数番目」の補間された1/2ピクセルa、c、e、およびgを調整またはインクリメントすることができる。インクリメントされた4個の「偶数番目」の補間された1/2ピクセルa、c、e、およびgは、メモリにオフロードされ得る。
【0048】
次に、
図7を参照してより詳細に説明されるように、第2の「奇数番目」のマシンサイクルにおいて、累算器210は、前に形成された4個の「奇数番目」の補間された1/2ピクセルb、d、f、およびhをロードされてよく、ピクセルウィンドウレジスタ202は、第2の「奇数番目」の位置302-2においてピクセルウィンドウ302がまたがる
図3のピクセルを有するように更新される。タップ係数セットレジスタセット206は、一態様では、第2のタップ係数セットを保持することができる。次いで、「偶数番目」の補間された1/2ピクセルa、c、e、およびgのインクリメントと同様の方式で、
図3の「偶数番目」の位置302-2を有するピクセルウィンドウレジスタ202の内容は、タップ係数セットレジスタ206による演算の対象となり、増分の値を生成することができ、この増分の値は、累算器210において、前に形成された4個の「奇数番目」の補間された1/2ピクセルb、d、f、およびhを調整またはインクリメントすることができ、インクリメントされたピクセルは次いでメモリにオフロードされ得る。
【0049】
概観を続け、
図8を参照してより詳細に説明されるように、第3の「偶数番目」のマシンサイクルは、前にインクリメントされた4個の「偶数番目」の補間された1/2ピクセルa、c、e、およびgを累算器210にリロードするステップ、第3の「偶数番目」の位置302-4においてピクセルウィンドウ302がまたがる
図3のピクセルを有するようにピクセルウィンドウレジスタ202を更新するステップ、第3のタップ係数セットをタップ係数セットレジスタ206にロードするステップ、および、第2の「偶数番目」のマシンサイクルと実質的に同じ算術演算を使用して、4個の「偶数番目」の補間された1/2ピクセルa、c、e、およびgの最終値を累算器210において確立するステップを含み得る。同様に、
図9を参照してより詳細に説明されるように、累算器210は、前にインクリメントされた4個の「奇数番目」の補間された1/2ピクセルb、d、f、およびhをリロードされてよく、ピクセルウィンドウレジスタ202は、第3の「奇数番目」の位置302-5においてピクセルウィンドウ302がまたがる
図3のピクセルを有するように更新される。ある態様では、タップは、第3のタップ係数セットを保持することができ、増分の値は、4個の「奇数番目」の補間された1/2ピクセルb、d、f、およびhの最終値を累算器210において確立するために生成され得る。全体で3回の「偶数番目」のマシンサイクルの間に4個の「偶数番目」の補間された1/2ピクセルa、c、e、およびgを形成し累算することを、全体で3回の「奇数番目」のマシンサイクルの間に4個の「奇数番目」の補間された1/2ピクセルb、d、f、およびhを形成し累算することと交互に行うことによって、様々な例示的な実施形態による実施における統合補間フィルタは、8個の補間された1/2ピクセルa、b、c、d、e、f、g、およびhという完全なセットを、わずか6回のマシンサイクルで提供できることが、本開示を読めば当業者により諒解されるだろう。
【0050】
例示的な実施形態による方法およびシステムにおける例示的な6状態の短縮サイクル補間フィルタプロセスが、ここで、
図2および
図3とともに、
図4、
図5、
図6、
図7、
図8、および
図9を参照して以下でより詳細に説明される。一態様では、第1の「偶数番目」のマシンサイクルおよび第1の「奇数番目」のマシンサイクルは、[1, -5, 1, -5, 1, -5, 1, -5]という第1のタップ係数セットを使用することができる。図面において、[1, -5, 1, -5, 1, -5, 1, -5]という第1のタップ係数セットは、
図4および
図5に現れるタップ係数セットレジスタ206のタップ係数セットレジスタ状態406として標識されている。1つの関連する態様では、タップ係数レジスタ206の
図6および
図7のタップ係数セットレジスタ状態606に反映されるように、第2のタップ係数セットは[20, 20, 20, 20, 20, 20, 20, 20]であってよく、1つのさらなる態様では、
図8および
図9のタップ係数セットレジスタ状態806に反映されるように、第3のタップ係数セットは[-5, 1, -5, 1, -5, 1, -5, 1]であってよい。これらは、第1、第2、および第3のタップ係数セットのそれぞれの値の例にすぎず、他の値が他の所望のフィルタ動作を得るために使用され得ることを理解されたい。実施形態は、2セットよりも多くのタップ係数を有することが考慮されることも理解されたい。
【0051】
図4から
図9のマシン状態において、
図2のマルチタップ統合補間フィルタ200により示される例示的な算術演算を説明する前に、この説明は、様々なデータ経路に挿入される、または、様々な説明される論理および算術デバイス内に挿入される、ラッチ(図示されない)がないと仮定していることを理解されたい。言い換えれば、
図2を参照すると、1つのマシンサイクルにおいて、ピクセルウィンドウレジスタ202からのピクセル値およびタップ係数セットレジスタ206の中のタップ係数値は、乗算器アレイ204に渡され、加算デバイス208および2Sビットの飽和論理212を通過し累算器210にロードされるそれぞれの積を形成するように乗算され得ることが仮定される。ラッチがないというこの仮定は、これらのデータ経路におけるラッチが原因のクロックサイクルの遅延を説明する必要を伴わずに例示的な動作を説明することが目的にすぎないことを理解されたい。しかし、当業者は、説明された概念を、たとえば、説明されたデータ経路におけるラッチを利用する実施に対して容易に適合させることができる。
【0052】
さらに、
図3のシーケン302-0、…、302-5と、例示的な実施形態による実施におけるピクセルアレイにわたる他のピクセルウィンドウの移動とを繰り返す能力を有するピクセルウィンドウレジスタ202を実装し、タップ係数セットレジスタ206を実装するための、様々な技法および構造が、本開示から当業者には明らかとなるので、そのような技法および構造のさらなる詳細な説明は省略される。
【0053】
例示的な実施形態による方法およびシステムにおける、例示的な6状態の短縮サイクル補間フィルタプロセスの、
図4、
図5、
図6、
図7、
図8、および
図9を参照した説明を簡単にする目的で、2Sビットの飽和論理212により実行される具体的な動作は省略される。本開示を読んだ当業者は、当業者が持つ固定小数点算術演算についての一般的なノウハウを開示される概念に適用して、中間の処理結果および最終的な1/2ピクセルの結果a、b、…、hを、所望の数値範囲内に維持することができる。したがって、主題の演算に付随する例を除いて、説明では、乗算および累算の演算によってもたらされる数値的な増大を無視する。
【0054】
図2から
図4を参照すると、例示的な第1の「偶数番目」のマシンサイクルがより詳細に説明される。ある態様では、第1の「偶数番目」のマシンサイクルは、
図4のピクセルウィンドウレジスタ202を状態402へとロードするステップと、
図3のウィンドウ302の位置302-0がまたがるピクセルA、B、C、D、E、F、G、およびHを反映するステップと、タップ係数セットレジスタ206を、[1, -5, 1, -5, 1, -5, 1, -5]という第1のタップ係数セットである状態406へとロードするステップとを含み得る。乗算器204は、ピクセルウィンドウレジスタ202の状態402のピクセルA、B、C、D、E、F、Gを、タップ係数セットレジスタ206の状態406と乗算し、4個の積のペアを生成し、これらを、加算デバイス208の対応する1つのそれぞれのオペランドポート(示されるが標識されていない)に入力することができる。
【0055】
一態様では、乗算演算は、乗算器ペア204-0、204-1が、第1のピクセルレジスタ202-0および第2のピクセルレジスタ202-1からピクセルAおよびBを受け取り、これらのピクセルAおよびBをそれぞれ、[1, -5, 1, -5, 1, -5, 1, -5]という第1のタップ係数セットからの「1」および「-5」と乗算し、次いで、「A」および「-5B」であるそれぞれの積を、第1の加算デバイス208-0のオペランドポートに入力することを含み得る。第1の加算デバイス208-0の出力(A-5B)は、こうして、第1の累算器レジスタ210-0における「偶数番目」の補間された1/2ピクセルaを形成する。第2の乗算器ペア204-2、204-3は同様に、第3のピクセルレジスタ202-2および第4のピクセルレジスタ202-3から、それぞれピクセルCおよびDを受け取り、これらを、状態406における第3のタップ係数レジスタ206-2および第4のタップ係数レジスタ206-3から「1」および「-5」と乗算し、結果の出力である「C」および「-5D」を、第2の加算デバイス208-1の入力オペランドポートに送ることができる。第2の加算デバイス208-0の出力(C-5D)は、こうして、第2の累算器レジスタ210-1における「偶数番目」の補間された1/2ピクセルcを形成することができる。同様に、第3の乗算器ペア204-4、204-5は、第5のピクセルレジスタ202-4および第6のピクセルレジスタ202-5からピクセルEおよびFを受け取り、これらを、第5のタップ係数レジスタ206-4および第6のタップ係数レジスタ206-5からの「1」および「-5」と乗算して、第3の加算デバイス208-2を通じて、第3の累算器レジスタ210-2における「偶数番目」の補間された1/2ピクセルeを形成することができる。同様に、第4の乗算器ペア204-6、204-7は、第7のピクセルレジスタ202-6および第8のピクセルレジスタ202-7からピクセルGおよびHを受け取り、これらを、第7のタップ係数レジスタ206-6および第8のタップ係数レジスタ206-7からの「1」および「-5」と乗算して、第4の加算デバイス208-3を通じて、第4の累算器レジスタ210-3における「偶数番目」の補間された1/2ピクセルgを形成することができる。
【0056】
したがって、累算器210の内容410は、この例では第1の「偶数番目」のマシンサイクルの終わりにおいて、
図4の領域470において示される「偶数番目」の補間された1/2ピクセルa、c、e、gの中間値を有し得る。ある態様では、領域470において示される値を伴う説明された補間された1/2ピクセルa、c、e、gを有する内容410は、メモリにオフロードされ得る。
【0057】
ここで
図3および
図5を参照すると、第1の「奇数番目」のマシンサイクルの例示的なプロセスが説明される。一態様では、
図2のピクセルウィンドウレジスタ202は、B、C、D、E、F、G、H、Iである
図3の第2のピクセルウィンドウ位置302-1に対応するピクセルを包含するように、ピクセルの内容を1ピクセル左にシフトする。これは、
図5のピクセルウィンドウレジスタの状態502において反映されており、ピクセル「I」をシフトする最後のピクセルレジスタ202-7のファーストインファーストアウト(FIFO)動作によって実行されてよく、x=0〜6に対して、ピクセルレジスタ202-xの各々は、(右から左の順で)先行するピクセルレジスタ202-x+1の内容を受け取る。タップ係数セットレジスタ206の内容は状態406のまま、すなわち、[1, -5, 1, -5, 1, -5, 1, -5]という第1のタップ係数セットのままである。ある態様では、乗算器204および加算デバイス208は、タップ係数レジスタ206の状態406、すなわち、[1, -5, 1, -5, 1, -5, 1, -5]という第1のタップ係数セットを、第1の「偶数番目」のサイクルについて説明されたのと同じ方式で、ピクセルB、C、D、E、F、G、Hと乗算して、加算デバイス20を通じて、累算器210において、以下の4個の「奇数番目」の補間された1/2ピクセルb、d、f、およびh、すなわち、第1の累算器レジスタ210-0における補間された1/2ピクセルbの初期値として(B-5C)、第2の累算器レジスタ210-1における補間された1/2ピクセルdの初期値として(D-5E)、第3の累算器レジスタ210-2における補間された1/2ピクセルfの初期値として(F-5G)、および第4の累算器レジスタ210-3における補間された1/2ピクセルhの初期値として(H-5I)を形成する。累算器210の内容510、すなわち、「奇数番目」の補間された1/2ピクセルb、d、f、およびhの初期値が、
図5の領域572において示され、ある態様では、メモリにオフロードされ得る。
【0058】
ここで
図3および
図6を参照すると、例示的な第2の「偶数番目」のマシンサイクルでは、第1の「偶数番目」のマシンサイクルにおいて形成された4個の「偶数番目」の補間された1/2ピクセルa、c、e、およびgの初期値は、基本的には、第1の「偶数番目」のマシンサイクルの演算を繰り返すことによって、しかし、
図3の第3のピクセルウィンドウ位置302-2におけるピクセルおよび第2のタップ係数セット[20, 20, 20, 20, 20, 20, 20, 20]を使用して、かつ、前の4個の「偶数番目」の補間された1/2ピクセルa、c、e、およびgをインクリメントするためにその結果を使用することによって、インクリメントされ得る。
【0059】
図3および
図6をさらに参照すると、ある態様では、第2の「偶数番目」のマシンサイクルは、前に形成された4個の「偶数番目」の補間された1/2ピクセルa、c、e、およびgを累算器210へとリロードするステップと、ピクセルウィンドウレジスタ202を、たとえばFIFO動作によって、ピクセルC、D、E、F、G、H、I、およびJを有するピクセルウィンドウレジスタの状態602へとシフトするステップと、状態606に反映されるように、例示的な第2のタップ係数セット[20, 20, 20, 20, 20, 20, 20, 20]をタップ係数セットレジスタ206にロードするステップとを含み得る。乗算器204は、タップ係数セットレジスタ206の内容または状態606[20, 20, 20, 20, 20, 20, 20, 20]を、ピクセルウィンドウレジスタ202の中のピクセルC、D、E、F、G、H、I、およびJと乗算し、得られた積を加算デバイス208と結合することができる。これらの乗算器204の出力および前に形成された4個の「偶数番目」の補間された1/2ピクセルa、c、e、およびgの
図6に示されるフィードバックを受け取ることによって、加算デバイス208は、
図6の領域672において示される以下の値を有する、インクリメントされた「偶数番目」の1/2ピクセルa、c、e、およびgを累算器210において形成することができる。それらの値は、第1の累算器レジスタ210-0における、(A - 5B + 20C + 20D)に等しいインクリメントされた「偶数番目」の補間された1/2ピクセルa、第2の累算器レジスタ210-1における、(C - 5D + 20E + 20F)に等しいインクリメントされた「偶数番目」の補間された1/2ピクセルc、第3の累算器レジスタ210-2における、(E - 5F + 20G+ 20H)に等しいインクリメントされた「偶数番目」の補間された1/2ピクセルe、および、第4の累算器レジスタ210-3における、(G - 5H + 20I + 20J)に等しいインクリメントされた「偶数番目」の補間された1/2ピクセルgである。ある態様では、これらのインクリメントされた4個の「偶数番目」の補間された1/2ピクセルa、c、e、およびgは、メモリにオフロードされ得る。
【0060】
ここで、
図3および
図7を参照すると、例示的な第2の「奇数番目」のマシンサイクルにおいて、第1の「奇数番目」のマシンサイクルにおいて形成される4個の「奇数番目」の補間された1/2ピクセルb、d、f、およびhの初期値は、第2の「偶数番目」のマシンサイクルの演算を繰り返し、しかし、
図3の第4のピクセルウィンドウ位置302-3におけるピクセルを使用することによって得られる結果により、インクリメントされる。タップ係数レジスタは、第2のタップ係数セット[20, 20, 20, 20, 20, 20, 20, 20]である状態606のままであり得る。ある態様では、ピクセルウィンドウレジスタ202は、
図7のピクセルウィンドウレジスタの状態702によって示されるように、D、E、F、G、H、I、J、およびKである、
図3の第4のピクセルウィンドウ位置302-3に対応するピクセルを包含するようにシフトされてよく、4個の「奇数番目」の補間された1/2ピクセルb、d、f、およびhの初期値をメモリから累算器210へとリロードする。一態様では、第2の「偶数番目」のマシンサイクルについて説明されたのと実質的に同じ演算で、第2の「奇数番目」のマシンサイクルは、累算器210の内容を、
図7の領域772にも示される、「奇数番目」の補間された1/2ピクセルb、d、f、およびhの以下の値へと更新することができる。それらの値は、第1の累算器レジスタ210-0における、(B - 5C + 20D + 20E)に等しいインクリメントされた「奇数番目」の補間された1/2ピクセルb、第2の累算器レジスタ210-1における、(D - 5E + 20F + 20G)に等しいインクリメントされた「奇数番目」の補間された1/2ピクセルd、第3の累算器レジスタ210-2における、(F - 5G + 20H + 20I)に等しいインクリメントされた「奇数番目」の補間された1/2ピクセルf、および、第4の累算器レジスタ210-3における、(H - 5I + 20J + 20K)に等しいインクリメントされた「奇数番目」の補間された1/2ピクセルhである。ある態様では、これらのインクリメントされた4個の「奇数番目」の補間された1/2ピクセルb、d、f、およびhは、メモリにオフロードされ得る。
【0061】
ここで、
図3および
図8を参照すると、一態様では、第3の「偶数番目」のマシンサイクルは、第2の「偶数番目」のマシンサイクルの演算を繰り返すことによって得られる結果を使用して、ただし、
図3の第5のピクセルウィンドウ位置302-4のピクセルE、F、G、H、I、J、K、およびLを包含するようにピクセルウィンドウレジスタ202が状態802にシフトされ、第3のタップ係数セット[-5, 1, -5, 1, -5, 1, -5, 1]である状態806へと係数レジスタ206がロードされた状態で、(上で説明された第2の「偶数番目」のマシンサイクルによって)以前にインクリメントされた、4個の「偶数番目」の補間された1/2ピクセルa、c、e、およびgの値を、最終値へとインクリメントすることができる。ある態様では、以前にインクリメントされた4個の「偶数番目」の補間された1/2ピクセルa、c、e、およびgは、メモリから累算器210にロードされてよく、第2の「偶数番目」のマシンサイクルについて説明されたのと実質的に同じ演算で、第3の「偶数番目」のマシンサイクルは、累算器210の内容を、「偶数番目」の1/2ピクセルa、c、e、およびgの以下の最終値へと更新することができる。それらの最終値は、第1の累算器レジスタ210-0における、(A - 5B + 20C + 20D - 5E + F)に等しい「偶数番目」の補間された1/2ピクセルa、第2の累算器レジスタ210-1における、(C - 5D + 20E + 20F- 5G + H)に等しい「偶数番目」の補間された1/2ピクセルc、第3の累算器レジスタ210-2における、(E - 5F + 20G + 20H - 5I + J)に等しい「偶数番目」の補間された1/2ピクセルe、および、第4の累算器レジスタ210-3における、(G - 5H + 20I + 20J - 5K + L)に等しい「偶数番目」の補間された1/2ピクセルgである。これらの値は、
図8の領域872において示される。
【0062】
ここで、
図3および
図9を参照すると、一態様では、第3の「奇数番目」のマシンサイクルは、第2の「偶数番目」のマシンサイクルの演算を繰り返すことによって得られる結果を使用して、ただし、
図3の第6のピクセルウィンドウ位置302-5のピクセルE、F、G、H、I、J、K、およびMを包含するようにピクセルウィンドウレジスタ202が状態902にシフトされ、
図9の領域972において示される以下の値を有する最終的な「奇数番目」の1/2ピクセルb、d、f、およびhを累算器210において形成する状態で、(上で説明された第2の「奇数番目」のマシンサイクルによって)以前にインクリメントされた、4個の「奇数番目」の補間された1/2ピクセルb、d、f、およびhの値を、最終値へとインクリメントすることができる。上記の値は、第1の累算器レジスタ210-0における(B - 5C + 20D + 20E - 5F + G)に等しい「奇数番目」の補間された1/2ピクセルb、第2の累算器レジスタ210-1における、(D - 5E + 20F + 20G - 5H + I)に等しい「奇数番目」の補間された1/2ピクセルd、第3の累算器レジスタ210-2における、(F - 5G + 20H + 20I - 5J + K)に等しい「奇数番目」の補間された1/2ピクセルf、および、第4の累算器レジスタ210-3における、(H - 5I + 20J + 20K - 5L + M)に等しい「奇数番目」の補間された1/2ピクセルhである。
【0063】
図2のマルチタップ統合補間フィルタ200は、「偶数番目」および「奇数番目」の補間された1/2ピクセルの上で説明された例示的なセットを生成する際に、6タップの補間フィルタプロセスを実行したことを諒解されたい。6タップの補間フィルタは例にすぎず、任意の実施形態より包含される、または任意の実施形態の実施であり得る、実施および構造の範囲を限定することは意図されないことを理解されたい。たとえば、当業者は、6タップの補間フィルタに関して示された概念を容易に適用して、8タップの補間フィルタを実現することができる。
【0064】
図10は、様々な例示的な実施形態による、1つまたは複数の方法およびシステムにおける、短縮マシンサイクルサブピクセル補間の1つのプロセス1000の1つの例示的な論理フローを示す。1つの例示的な動作では、プロセス1000は、1002を経ることで開始してよく、または1002を経ることを含んでよく、ピクセルに割当てられたインデックス(図示されず)に対する「偶数番目」の位置に対応するピクセルを、ピクセルウィンドウレジスタにロードすることができ、または別様にそのピクセルによってピクセルウィンドウレジスタを設定することができる。たとえば、
図3の位置302-0は、1002による「偶数番目」の位置の例であり得る。1つの例示的な動作において、プロセス1000は、1002に対して任意の時間において、しかし好ましくは1006よりも前に、1004において、タップ係数セットをタップ係数レジスタにロードすることができ、または別様にタップ係数セットによってタップ係数レジスタを確立することができる。
図4を参照すると、様々な例示的な実施形態による実施について、1004においてタップ係数レジスタにタップ係数セットをロードするステップの一例は、たとえば、第1のタップ係数セット[1, -5, 1, -5, 1, -5, 1]によって、タップ係数セットレジスタ206を状態406へとロードまたは設定するステップであり得る。
【0065】
図10を参照すると、ある態様の1つの例示的な動作において、プロセス1000は、好ましくは、1002および1004に対応する状態が確立された状態で、1006へ進み、様々な例示的な実施形態による補間マルチタップの「偶数番目」のマシンサイクルによって、「偶数番目」のサブピクセルのセットを形成することができる。様々な例示的な実施形態による、補間マルチタップフィルタの「偶数番目」のマシンサイクルによって「偶数番目」のサブピクセルのセットを形成するステップ1006の一例は、「偶数番目」の補間された1/2ピクセルa、c、e、およびgを形成するための、
図4に関して説明された第1の「偶数番目」のマシンサイクルであり得る。
【0066】
図10の参照を続けると、1つの例示的な動作において、プロセス1000は、様々な例示的な実施形態による補間マルチタップフィルタの「偶数番目」のマシンサイクルによって「偶数番目」のサブピクセルのセットを形成するステップ1006の後で、1008へ進み、たとえば、1002における「偶数番目」の位置と関連付けられるインデックスに対する「奇数番目」の位置に対応するピクセルによって、ピクセルウィンドウレジスタの内容をシフトし、または別様に更新することができる。
図3を参照すると、位置302-1は、1008による「奇数番目」の位置の一例を示す。ある態様では、1つの例示的な動作において、プロセス1000は、好ましくは、ピクセルウィンドウレジスタ状態が1008に対応しタップ係数レジスタが状態1004と関連付けられる状態で、1010へと進み、1つまたは複数の例示的な実施形態による補間マルチタップフィルタの「奇数番目」のマシンサイクルによって、「奇数番目」のサブピクセルのセットを形成することができる。補間マルチタップフィルタの「奇数番目」のマシンサイクルによって「奇数番目」のサブピクセルのセットを形成するステップ1010の一例は、「奇数番目」の補間された1/2ピクセルb、d、f、およびhを形成する、
図5に関して説明された第1の「奇数番目」のマシンサイクルであり得る。
【0067】
図10の参照を続けると、「オプション2」として表される論理フローを有するある態様では、プロセス1000に従った例示的な動作は、「奇数番目」の補間された1/2ピクセルb、d、f、およびhのセットを形成するステップ1010の後で、終了条件脱出ブロック1012へ進み、短縮マシンサイクルのサブピクセル補間に対する所与の終了条件が満たされているかどうかを判定することができる。言い換えれば、「オプション2」として表される論理フローを有する態様では、4個の「偶数番目」の補間された1/2ピクセルa、c、e、およびgと4個の「奇数番目」の補間された1/2ピクセルb、d、f、およびhとの上で説明された形成は、算術演算の全体を含んでよく、言い換えれば、8個の補間された1/2ピクセルa、b、c、d、e、f、g、およびhの完全なセットの最終値を生成することができる。この「オプション2」の態様は、各々が2個の積の合計である、完全なセットの最終的な補間された1/2ピクセルa、b、c、d、e、f、g、およびhの、2マシンサイクルによる生成を実現することができる。本態様による動作では、終了条件脱出ブロック1012のこの第1の例における答は「YES」であり、プロセス1000はブロック1014へ進み、補間された1/2ピクセルa、b、c、d、e、f、g、およびhの形成されたセットを出力することができる。
【0068】
図10についてさらに続けると、「オプション1」として表される論理フローを有する別の態様では、終了条件脱出ブロック1012は、奇数番目の補間された1/2ピクセルを形成するステップ1010の直後に終了条件脱出ブロック1012に入るのではなく、代わりに累算するステップ1050へ進むように構成され得る。以下でより詳細に説明されるように、オプション1では、終了条件脱出ブロック1012の終了条件は、1006および1010において形成されたサブピクセルの「偶数番目」のセットおよび「奇数番目」のセットを累算するステップ1050を繰り返した回数であり得る。
【0069】
1つの例示的な動作では、「オプション1」の態様により構成されるプロセス1000の累算するステップ1050の第1の例は、1014において、別の「偶数番目」の位置に対応するピクセルによって、ピクセルウィンドウレジスタ(たとえば、
図2のピクセルウィンドウレジスタ202)の内容をシフトし、または別様に更新するステップ、および、タップ係数の別のセットをタップ係数レジスタにロードし、または、そのセットによってタップ係数レジスタを別様に更新するステップであり得る。
図3を参照すると、位置302-2は、1014による別の「偶数番目」の位置の一例を示す。
図4を参照すると、たとえば、第2のタップ係数セット[20, 20, 20, 20, 20, 20, 20, 20]によって、
図4のタップ係数セットレジスタ206を状態606へとロードまたは設定するステップは、1014の、別のタップ係数セットをタップ係数セットレジスタにロードするステップ、または別のタップ係数セットによってタップ係数レジスタを別様に更新するステップの一例を示す。
図4のピクセルウィンドウレジスタ202の状態402はまた、1014における、「偶数番目」の位置の上で説明された
図3の例示的な位置302-2を反映する。
【0070】
図10の参照を続けると、ある態様では、「偶数番目」のピクセルウィンドウレジスタの状態およびタップ係数レジスタの状態が1014における更新に従う、繰り返し累算する態様による1つの例示的な動作では、プロセス1000は、1016へ進み、1006において形成された、または、以下でより詳細に説明されるように、ループ1014、1016、1018、1020、および1112の先行する繰り返しによって以前にインクリメントされた、「偶数番目」のサブピクセルのセットを、インクリメントまたは別様に更新することができる。ここで説明される例では、これは、1014の第1の例であるので、インクリメントするステップは、1006において形成される「偶数番目」のサブピクセルのセットに対して行われる。補間マルチタップフィルタの「偶数番目」のマシンサイクルによって「偶数番目」のサブピクセルのセットをインクリメントする、または別様に更新するステップ1016の一例は、「偶数番目」の補間された1/2ピクセルa、c、e、およびgをインクリメントするための、
図6に関して説明された第2の「偶数番目」のマシンサイクルであり得る。
【0071】
図10をさらに参照すると、プロセス1000の1つの例示的な動作において、プロセス1000は、補間マルチタップフィルタの「偶数番目」のマシンサイクルによって「偶数番目」のサブピクセルのセットをインクリメントするステップ1016の後で、1018へ進み、たとえば、1002および1014における「偶数番目」の位置と関連付けられるインデックスに対する別の「奇数番目」の位置に対応するピクセルによって、ピクセルウィンドウレジスタの内容をシフトし、または別様に更新することができる。たとえば、
図3の位置302-3は、1018による「奇数番目」の位置の例であり得る。一態様によれば、例示的な動作において、プロセス1000は、「奇数番目」のピクセルウィンドウレジスタの状態が1018に対応し、同じタップ係数レジスタの状態が1016における「偶数番目」の更新において使用される状態で、1020へと進み、「奇数番目」のサブピクセルのセットをインクリメントし、または別様に更新することができる。これを、1020におけるインクリメントするステップまたは更新するステップの第1の例であると仮定すると、基本的な「奇数番目」のサブピクセルは1010において形成されたセットであり得る。累算するステップ150の次の繰り返しにおいて、基本的な「奇数番目」のサブピクセルは、終了条件脱出ブロック1012によるループとして形成される、累算するステップ、すなわち1014、1016、1018、1020の先行する繰り返しによって以前にインクリメントされたセットであることを理解されたい。補間マルチタップフィルタの「奇数番目」のマシンサイクルによって「奇数番目」の補間されたサブピクセルのセットをインクリメントする、または別様に更新するステップ1020の一例は、「奇数番目」の補間された1/2ピクセルb、d、f、およびhをインクリメントするための、
図7に関して説明された第2の「奇数番目」のマシンサイクルであり得る。
【0072】
図10の参照を続けると、1つの例示的な動作において、プロセス1000は、補間マルチタップフィルタの「奇数番目」のマシンサイクルによって、「奇数番目」のサブピクセルのセットをインクリメントするステップ1020の後で、終了条件脱出ブロック1040へ進み、所与の終了条件、この態様では累算するステップ1050を繰り返した所与の回数が満たされたかどうかを判定することができる。
図10とともに
図8および
図9を参照して以下でさらに詳細に説明される1つのそのような例は、この例では
図8の第2の「偶数番目」のマシンサイクルによるものである「偶数番目」の補間された1/2ピクセルa、c、e、およびgの例示的な第2のインクリメントおよび最後のインクリメントを実行するステップ、および、この例では
図9の第2の「奇数番目」のマシンサイクルによるものである「奇数番目」の補間された1/2ピクセルb、d、f、およびhの例示的な第2のインクリメントおよび最後のインクリメントを実行するステップである。
【0073】
図10をさらに参照すると、この例では、所与の終了条件は、累算するステップ1050の2回以上の繰り返しであるので、終了条件脱出ブロック1012における答は「NO」であることが仮定される。したがって、プロセス1000は、累算するステップ1050に戻る。1014、1016、1018、1020、1012のループは、終了条件脱出ブロック1012における終了条件が満たされるまで続く。
図8および
図9を参照して説明される例を参照すると、これらは、1014、1016、1018、および1020の累算するステップ1050のループの繰り返しの一例を示す。終了条件脱出ブロック1012における終了条件が満たされると、サブピクセルを累算するステップ1050は完了し、プロセス1000は1014へ進み、最終的な補間されたサブピクセルを出力することができる。
図8および
図9を参照すると、最終的な補間されたサブピクセルを出力する1つの例示的なステップ1014は、サブピクセルa、b、c、d、e、f、g、およびhの最終値の説明された生成である。
【0074】
図11は、一例として、1つの例示的な実施形態の2つピクセル行セクション1102_0および1102_1による、短縮サイクルマルチタップ補間フィルタ装置およびフィルタ方法において処理され得る入力1100を示す。「全体の」ピクセル0A、0B、0C、0D、0E、0F、0G、0H、0I、0J、0K、0L、および0M(まとめて「ピクセル0A〜0M」)を有するピクセル行セクション1102_0が示され、「全体の」ピクセル1A、1B、1C、1D、1E、1F、1G、1H、1I、1J、1K、1L、および1M(まとめて「ピクセル1A〜1M」)を有するピクセル行セクション1102_1が示される。例示的な実施形態による例示的なプロセスを説明する際、ピクセル0A〜0Mおよび1A〜1Mは、所与の値、たとえば、限定はされないが、光検出器(図示されない)の出力またはフィルタリングされた出力を有することが仮定される。しかし、語句「ピクセル行セクション」の中の「行」という用語は、ピクセルが行対列のビデオアレイの「行」に由来しなければならないことを必ずしも意味しないことを理解されたい。たとえば、ピクセル行セクション1102_0および1102_1は、アレイの隣接する、または別様に間隔を空けられた「列」(図示されない)、アレイの隣接する対角方向(図示されない)、またはアレイの他のそれぞれの領域に由来するものであってよい。
【0075】
図11の参照を続けると、1/2ピクセル位置0a、0b、0c、0d、0e、0f、0g、および0h(まとめて「1/2ピクセル0a〜0h」)を有するピクセル行セクション1102_0も示され、同様に、1/2ピクセル位置1a、1b、1c、1d、1e、1f、1g、および1h(まとめて「1/2ピクセル1a〜1h」)を有するピクセル行セクション1102_1が示される。
【0076】
付録Aを参照すると、擬似コードセクションA1は、1つの例示的な実施形態による、短縮サイクルマルチタップ補間フィルタ装置およびフィルタ方法のための、かつ、例示的なピクセル行102_0のピクセル0A〜0Mおよびピクセル行102_1のピクセル1A〜1Mを使用して、1つまたは複数の例示的な実施形態による、1/2ピクセル0a〜0hおよび1/2ピクセル1a〜1hを生成する際の演算のための、例示的なコンピュータ実行可能命令を示す。
【0077】
図12は、1つの例示的な実施形態による、
図2の短縮サイクルマルチタップ補間フィルタ200の、インターリーブされたクロマ成分の構成1200の1つの双線形補間を示す。
図12を参照すると、ある態様では、インターリーブされたクロマ成分の構成1200は、Rssレジスタ202の中の8個の8ビットの符号付きバイトを、Rttレジスタ206の中の対応する8ビットの符号なしのバイトと乗算することができ、乗算器204から加算デバイス208に向けられた矢印により示されるような交差するペアにおける乗算結果を加算する方式で、加算デバイス208-0、208-1、208-2、および208-3を構成する。
図2と
図12を比較すると、乗算器204から加算デバイス208への乗算結果のそれぞれのルーティングまたは結合は、様々な説明される動作に従ったものであることが諒解されるだろう。
図2と
図12との間で、加算デバイス208への乗算器204の結合のモードを変更するための、スイッチング、ルーティング、または結合の論理(図示されず)のための技法に関して、一態様では、当業者は、本開示に基づいて、従来のデジタルシグナルプロセッサの設計技法を適用することによってそのような論理を選択し、または別様に実装できるので、さらなる詳細な説明は省略される。
【0078】
図13は、1つの例示的な実施形態による、平面的なクロマ成分の双線形補間に関与し得る、1つの例示的なピクセルのアレイ1300を示す。
【0079】
図14は、
図13の例示的なアレイ1300に基づく、平面的なクロマ成分の双線形補間において生成される1/4ピクセルを有する、1つの例示的なピクセルのアレイ1400を示す。
【0080】
付録Aを参照すると、擬似コードセクションA2は、
図13および
図14を参照して、1つまたは複数の例示的な実施形態による装置および方法における、平面的なクロマ成分の双線形補間において1/4ピクセルを生成するためのコンピュータ実行可能命令の例を示す。
【0081】
図15は、本開示の1つまたは複数の実施形態が有利に利用され得る例示的なワイヤレス通信システム1500を示す。説明のために、例示的なワイヤレス通信システム1500は、3つの遠隔ユニット1520、1530および1550、ならびに2つの基地局1540を示す。従来のワイヤレス通信システムは、はるかに多くのリモートユニットおよび基地局を有する場合があることを認識されよう。リモートユニット1520、1530、および1550は、半導体デバイス1525、1535、および1555を含んでよく、半導体デバイス1525、1535、および1555の1つまたは複数は、様々な例示的な実施形態による1つまたは複数の短縮マルチタップ補間フィルタ、たとえば、限定されることなく、
図3から
図10を参照して説明されたようなサブピクセル補間を実行するように構成可能であり、一態様では、
図12および
図13を参照して説明されたような双線形補間を実行するように、
図11を参照して説明されたように構成可能である、
図2を参照して説明された短縮サイクルマルチタップ補間フィルタを含み得る。
図15は、基地局1540からリモートユニット1520、1530、および1550への順方向リンク信号1580、ならびにリモートユニット1520、1530、および1550から基地局1540への逆方向リンク信号1590を示す。
【0082】
図15を参照すると、リモートユニット1520は携帯電話として示され、リモートユニット1530はポータブルコンピュータとして示され、リモートユニット1550はワイヤレスローカルループシステム内の固定位置リモートユニットとして示される。これらは、リモートユニット1520、1530、および1550のいずれかを実装し得るデバイスの例にすぎないことを理解されたい。たとえば、リモートユニット1520、1530、および1550は、携帯電話、ハンドヘルドパーソナル通信システム(PCS)ユニット、携帯情報端末などのポータブルデータユニット、(GPS対応デバイスなどの)ナビゲーションデバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、メータ読取り機器などの固定位置データユニット、またはデータもしくはコンピュータ命令の記憶もしくは取出しを行う任意の他のデバイス、またはそれらの任意の組合せのうちの、1つまたは複数であり得る。
図15は、本開示の教示による遠隔ユニットを示すが、本開示はこれらの例示的な示されたユニットに限定されない。本開示の実施形態は、試験および特性評価のための、メモリおよびオンチップ回路を含む能動的な集積回路を有する少なくとも1つの半導体ダイを含む、任意のデバイスにおいて適切に採用され得る。
【0083】
情報および信号は、多種多様な技術および技法のいずれかを使用して表され得ることを当業者は諒解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【0084】
さらに、本明細書で開示された実施形態に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップは、上では概してそれらの機能に関して説明された。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、具体的な適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を具体的な適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈されるべきではない。
【0085】
本明細書で開示された実施形態と関連して説明された方法、シーケンス、および/またはアルゴリズムは、ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはその2つの組合せで直接具現化され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。
【0086】
したがって、本発明の一実施形態は、説明された実施形態の方法に従うものとして、受信されたシリアルビットストリームを位相サンプリングするための方法を具現化する、コンピュータ可読媒体を含み得る。したがって、本発明は図示の例に限定されず、本明細書で説明された機能を実行するためのいかなる手段も、本発明の実施形態中に含まれる。
【0087】
上記の開示は本発明の例示的な実施形態を示すが、添付の特許請求の範囲によって規定される本発明の範囲から逸脱することなく、本明細書において様々な変更および修正が行われ得ることに留意されたい。本明細書で説明された本発明の実施形態による方法クレームの機能、ステップおよび/または動作は、特定の順序で実行されなくてもよい。さらに、本発明の要素は、単数形で説明または特許請求されていることがあるが、単数形に限定することが明示的に述べられていない限り、複数形が企図される。