"ウェーブレットに基づくデータ圧縮のための方法であって、1組のピクセルと関連するデータを受け取ることと、一連の離散ウェーブレット変換DWTのローパスおよびハイパスフィルタリング動作を適用することによってウェーブレット係数を計算することと、を含んでおり、フィルタリング動作の回数が、前記ローパスフィルタリング動作と前記ハイパスフィルタリング動作との少なくとも一方に対する共通の部分積を識別し、前記ウェーブレット係数の第1の部分を低マグニチュード係数として、前記ウェーブレット係数の第2の部分を高マグニチュード係数として分類し、前記高マグニチュードのウェーブレット係数に対する前記共通の部分積を削除し、前記低マグニチュードのウェーブレット係数に対する乗算動作をシフトおよび加算動作で置き換え、前記共通の部分積を削除することによって、削減され、さらに、残りのフィルタリング動作に基づいて前記DWTを適用することを含む方法。それぞれの処理要素がハイパスフィルタ要素とローパスフィルタ要素とデシメーション要素とを含むマルチコアプロセッサにおける複数の処理要素によって前記DWT変換を実行することをさらに含む、請求項1に記載の方法。シリアルインパラレルアウトSIPO構成要素において前記1組のピクセルと関連する前記データをデータストリームとして受け取ることと、前記SIPO構成要素の出力を前記処理要素に提供することと、パラレルインシリアルアウトPISO構成要素において前記マルチコアプロセッサの出力を受け取ることと、前記ピクセルと関連する前記圧縮されたデータを前記PISO構成要素の出力からのデータストリームとして提供することと、をさらに含む、請求項2に記載の方法。ウェーブレットに基づくデータ圧縮のため方法であって、1組のピクセルと関連するデータを受け取ることと、一連のローパスおよびハイパスフィルタリング動作によって実行される離散ウェーブレット変換DWTのために、それぞれのピクセルをマルチコアプロセッサにワードシリアルな態様でロードすることと、を含んでおり、フィルタリング動作の回数が、前記ローパスフィルタリング動作と前記ハイパスフィルタリング動作との少なくとも一方のために共通の部分積を識別し、それぞれのマグニチュードに基づいて前記フィルタリング動作の結果として生じるウェーブレット係数をソートし、前記ウェーブレット係数の第1の部分を低マグニチュード係数として、前記ウェーブレット係数の第2の部分を高マグニチュード係数として分類し、前記高マグニチュードのウェーブレット係数に対する共通の部分積を削除し、前記低マグニチュードのウェーブレット係数に対する乗算動作をシフトおよび加算動作で置き換えることによって削減され、さらに、それぞれの変換された値をワードシリアルな態様でアンロードすることと、残りのフィルタリング動作に基づいて前記DWTを適用することと、を含む方法。前記フィルタリング動作を実行する複数の処理要素の出力をクロック信号の正のエッジにおいて第1の加算器に提供し、前記クロック信号の負のエッジにおいて第2の加算器に提供することをさらに含む、請求項4に記載の方法。変換された値を、前記第1および第2の加算器の出力において、デュアルバッファとデュアルランダムアクセスメモリRAMとの一方にワードシリアルなアンローディングのために提供することをさらに含む、請求項5に記載の方法。前記複数の処理要素のローパス出力をクロック信号の前記正のエッジにおいて第1の加算器に提供し、前記クロック信号の前記負のエッジにおいて第2の加算器に提供することと、前記複数の処理要素のハイパス出力をクロック信号の前記正のエッジにおいて第3の加算器に提供し、前記クロック信号の前記負のエッジにおいて第4の加算器に提供することと、をさらに含み、前記第1、第2、第3および第4の加算器は、ツリー加算器として動作される、請求項5に記載の方法。ウェーブレットに基づくデータ圧縮を実行するように構成された集積回路ICであって、1組のピクセルと関連するデータを受け取り、それぞれのピクセルを複数のコアにワードシリアルな態様でロードするように構成された第1のネットワークオンチップNOCを含み、前記複数のコアは、それぞれが、離散ウェーブレット変換DWTを実行するために、ハイパス処理要素とローパス処理要素とを備えており、ローパスフィルタリング動作とハイパスフィルタリング動作との少なくとも一方に対する共通の部分積を識別し、前記DWTを実行する際に前記共通の部分積を削除するように構成され、さらに、それぞれの変換された値をワードシリアルな態様で前記複数のコアからアンロードするように構成された第2のNOCと、一方が正のクロックエッジから読み出され、他方が負のクロックエッジから読み出されるデュアルRAMであって、一方が前記正のクロックエッジにおいて与えられ、他方が前記負のクロックエッジにおいて与えられる2つの独立の遅延線に入力を与えるデュアルRAMと、を備えている集積回路。前記複数のコアは、それぞれのマグニチュードに基づいて前記フィルタリング動作の結果として生じるウェーブレット係数をソートし、前記ウェーブレット係数の第1の部分を低マグニチュード係数として、前記ウェーブレット係数の第2の部分を高マグニチュード係数として分類し、前記高マグニチュードのウェーブレット係数に対する共通の部分積を削除し、前記低マグニチュードのウェーブレット係数に対する乗算動作をシフトおよび加算動作で置き換えるようにさらに構成されている、請求項8に記載のIC。それぞれのコアが、デシメーション要素をさらに含み、前記第1のNOCがシリアルインパラレルアウトSIPO構成要素であり、前記第2のNOCがパラレルインシリアルアウトPISO構成要素であり、前記処理要素のローパス出力がクロック信号の正のエッジにおいて第1の加算器に提供され、前記クロック信号の負のエッジにおいて第2の加算器に提供され、前記処理要素のハイパス出力がクロック信号の前記正のエッジにおいて第3の加算器に提供され、前記クロック信号の前記負のエッジにおいて第4の加算器に提供される、請求項8に記載のIC。以下の詳細な説明では添付の図面を参照するが、添付の図面は本明細書の一部を形成するものとする。図面では、類似の記号は、コンテキストからそうではないことが示されない限り、通常は、類似の構成要素を識別するものとする。詳細な説明、図面および特許請求の範囲に記載された説明のための実施形態は、限定を意図したものではない。本明細書に記載されている主題の精神または範囲から逸脱することなく、他の実施形態を用いることができ、他の変更を行うことも可能である。本明細書で一般的に説明され図面で図解されている本開示の態様は、広範囲の異なる構成で配置され、置換され、組み合わされ、分離されおよび設計されることが可能であり、これらは、すべて本明細書に明示的に含まれることは容易に理解できよう。本開示は、概して、とりわけ、ウェーブレットに基づくデータ圧縮に関係する方法、装置、システム、デバイスおよび/またはコンピュータプログラムプロダクトに向けられたものであり、特に、マルチコアプロセッサを用いたウェーブレット変換に向けられている。簡単に述べると、本明細書で一般的に説明される技術は、共通の部分積の識別および削除を用いてフィルタリング動作を減らし、乗算動作の一部を置き換え、それぞれのピクセルのワードシリアルな態様でのローディングとそれぞれの変換された値のワードシリアルな態様でのアンローディングとを可能にするマラープロセッサの周囲のラッパーを生成することによる、マルチコアプロセッサ環境におけるウェーブレット変換の機能向上に関する。図1には、マラーMallat処理モジュールのための例示的なラッパーのためのブロック図が図解されている。ビデオおよびオーディオ信号は、短い時間間隔では統計的に安定的な振る舞いを有する。これらの信号については、1つの時間ウィンドウを横断して計算が可能であり信号の解析を継続するために時間ウィンドウを前方にスライドさせることができる変換技法を用いることの方が、より理にかなっている。信号の離散ウェーブレット変換DWTは、離散的な時間周波数マップを生じる。DWTは、ガウス関数の最適性を用い、ハイゼンベルク積によって決定される最良の局所化を生じさせる。DWTは、高い周波数に対しては短いサンプリング間隔を有し低い周波数に対してはより長いサンプリング間隔を有するブロードバンドおよびナローバンド信号のために調整が可能である。DWTは、連続ウェーブレットの離散バージョンであり、デジタル的な実装に、より適している可能性がある。DWTは、一定のQ分布と称されることもある、中心周波数とQ分布によって表現されるその帯域幅との間に実質的に一定の比率を維持する周波数分布によって特徴付けられる。従来型のウェーブレット変換回路を用いて、多数回の乗算および加算動作を伴う変換を実行することは可能ではあるが、結果的に電力消費が大きくなり得る。少なくともいくつかの実施形態によるマルチコア指向ウェーブレット変換プロセスは、動作の回数を削減することにより、かつ、多くの動作の結果のため必要となるストレージを削減することにより、ウェーブレットに基づく圧縮を達成する効率的な方法を提供するように構成することが可能である。そして、これにより、従来型のウェーブレット変換法と比較して、より少数のゲートカウント、メモリの削減、および/または動作を実行するのに必要な電力消費の削減が結果的に実現され得る。実施形態は、マルチコアプロセッサまたはフィールドプログラマブルゲートアレイFPGAなどの特別の集積回路において、実現可能である。画像または動画のいずれかを表すピクセル群に対して1回計算することが可能な共通の部分積を識別し、最小の係数を選択することができる低マグニチュード係数のための乗算をシフトおよび加算動作によって置き換え、それぞれのピクセルのワードシリアルな態様でのローディングとそれぞれの変換された値のワードシリアルな態様でのアンローディングとを容易にするために用いることができるマラーの周囲のラッパーを生成することによって、電力/構成要素の削減と計算の加速化とを達成することができる。いくつかの例示的な実装によると、最小部分積最初LowestPartialProductFirstLPPFの原理を用いて、その絶対値と最初に最大の係数を用いて計算された部分積とに基づいてウェーブレット係数をソートすることができる。このアプローチにより、最終的な積の総和への比較的迅速な収束が可能になり得る。ダイアグラム100には、本明細書において記載されている少なくともいくつかの実施形態に従って構成された、シリアルインパラレルアウトSIPOモジュール104とパラレルインシリアルアウトPISOモジュール126、124とを備えた例示的な単一段のマラープロセッサ110が図解されている。この例示的なマラープロセッサ110は、ハイパスフィルタ112と、ローパスフィルタ114と、1/2デシメーションブロック116とを備えている。オプションであるが、SIPOモジュール104と分配バス106とPISOモジュール124、126とを備えたラッパーは、その入出力カウントを実質的に減少させるマラープロセッサ110の一体的な部分であり得る。入出力カウントを減少させることにより入出力を切り替えることによる電力消費を削減する付加効果を有する。シリアルで提供される入力102は、プロセッサに与えられるためにパラレルに変換することができ、プロセッサのパラレル出力は、シリアルな出力122に再度変換して戻すことができる。ダイアグラム100における例示的な構成要素および構成は、説明の目的のみのものであり、実施形態への限定を構成しない。DWT動作を実行するマラープロセッサとシリアル/パラレルおよび逆変換のためのラッパーは、多数の異なる構成要素、構成および/またはプロセッサタイプを用いて実装可能である。さらに、いくつかの実施形態による典型的なプロセッサは、カスケード段として実装可能な複数のハイパスフィルタおよび/または複数のローパスフィルタを有し得る。図2には、本明細書に記載される少なくともいくつかの実施形態に従って構成された例示的なマラーフィルタバンクが図解されている。DWTは、離散的な時間領域信号Xnのローパスおよびハイパスフィルタリングの連続的な動作によって計算され得る。なお、nは整数である。これは、マラーアルゴリズムまたはマラーツリー分解と称される。ローパスフィルタ動作214は、Hzによって表され、他方で、ハイパスフィルタ動作212はGzによって表される。マラープロセッサは、任意の数のフィルタリング段を用いるように構成することが可能である。ダイアグラム200における例には、3つのフィルタリング段210、220および230が含まれている。まとめると、DWTは、任意の入力シーケンスX={X0,X1,X2,,XN-1}をローパスサブバンドのa={a0,a1,,aN/2-1}とハイパスサブバンドのd={d0,d1,,dN/2-1}とに分解するのであるが、これは、次のように表すことができる。ただし、k=0からN/2-1までであり、giおよびhiは、それぞれ、ハイパスおよびローパスフィルタの係数である。いくつかの実施形態によると、マラープロセッサのフィルタリング段には、9-7の双直交スプラインフィルタを用いることができる。この9-7双直交スプラインフィルタは、9つのローパスフィルタ係数{h-4,,h-1,h0,h1,,h4}と7つのハイパスフィルタ係数{g-2,g-1,g0,g1,,g4}とを含む。ローパスフィルタ係数は対称的すなわちh-i=hiである。ハイパスフィルタ係数は、およびによって表される関係を有する。なお、によって表されるのは、信号の再構成のために用いることができる7つのローパスフィルタ係数である。したがって、となる。両方のフィルタの動作212、213の出力は、デシメーション要素216および218によってデシメートされ、係数を形成するその結果は次の段に送られ、プロセスはプロセッサのすべてのフィルタリング段を通過するように継続し得る。デシメーション要素は、2の因子によって時間に関するデシメーションを実行し得る。n=0,1,,N/2-1に対するローパスサブバンドサンプルanは、行列形式で表現することができる。この行列は、長さが8の信号ベクトルに対して再構成することが可能であり、例示的な8X8の実装の場合には結果的に次の行列方程式を生じる。この行列は、次のような長い形式で書くことができる。h0x0h1x1h2x2h3x3h4x4=a0h2x0h1x1h0x2h1x3h2x4h3x5h4x6=a1h4x0h3x1h2x2h1x3h0x4h1x5h2x6h3x7=a2h4x2h3x3h2x4h1x5h0x6h1x7=a3h4x4h3x5h2x6h1x7=a4[3]h4x6h3x7=a5共通の項を識別した後では、この行列方程式は次のように書くことができる。h0x0h1x1p3h2x2p9h3x3p10h4x4p8=a0h2x0h1x1p3h0x2h1x3p4h2x4p11h3x5p11h4x6p1=a1h4x0h3x1h2x2p9h1x3p4h0x4h1x5p7h2x6p6h3x7p2=a2h4x2h3x3p10h2x4p11h1x5p7h0x6h1x7p5=a3h4x4p8h3x5p11h2x6p6h1x7p5=a4[4]h4x6p1h3x7p2=a5マラーウェーブレット変換の計算のための乗算動作の総数を計算するためには、帯状の双直交行列は、和と差行列として書くことができる。この行列は、次に、より単純な複数の行列の和に単純化することができる。いかなる最適化も行わない場合の乗算動作の最小回数は、第1列は5回、第2列は7回、第3列は8回、第4列は6回、第4列は4回、第6列は2回浮動小数点を伴う実際の乗算となり得る。したがって、乗算動作の総数は32回である。これは、ローパスフィルタのための上述の方程式における共通の因数の削除を実行する追加的なステップを用いることで、単純化することができる。共通の因数は、次の通りである。h4x6-a1およびa5;h3x7-a1およびa5;h1x1-a0およびa1;h1x3-a1およびa2;h1x7-a3およびa4;h4x4-a0およびa4;h2x6-a2およびa4;h1x5-a2およびa3;h4x4-a0およびa4;h2x2-a0およびa2;h3x3-a0およびa3;h2x4-a1およびa3。共通の項が削除されると、実行される乗算動作の回数に実質的な減少が生じ得るたとえば、32回から20回へ。この乗算の減少は、どのような追加的なハードウェアサイクルも伴わない動作の減少に対応し、また、たとえば、共通の項を削除して回路の実装が可能となるVLSIチップの電力予算の削減に対応する。ローパスフィルタリングのための残りの乗加算についても、動作をさらに削減することができる。12回の乗算動作が削除された後では、h2第2のローパスフィルタ係数は7回の乗算を必要とし、第3のローパスフィルタ係数h3は7回の乗算を必要とする。h2とh3との間では、h3は、5の因数だけ、最小の乗数である。したがって、h3は、最小の全体近似誤差を加算する可能性が高い。係数h2およびh3との乗算を実行する代わりにシフトおよび加算の動作を実行すると、h2のための4回の乗算動作を削除することができる。さらに、h3のための5回の乗算動作も削除することができて、結果的には、合計で9回の乗算動作を追加的に削除することができる。これにより、20回から9回を引いた11回の乗算動作が、ローパス動作のために残ることになる。図5および図6には、本明細書に記載されているさまざまな実施形態によるマラーウェーブレット変換回路における第2および第3のローパスフィルタ係数h2およびh3のためのシフトおよび加算動作のためのブロック図が図解されている。上述したように、2回の乗算を加算およびシフト動作で置き換えることの合計の効果は、45=9回の乗算動作が、残っていた20回の乗算動作から削除されるということになる。シフトおよび加算という技法を用いることにより、20回からさらに9回の乗算動作を削除することが可能になる。たとえば、h2を計算する際には、0.0782232によるすべての乗算を、0.078125との乗算によって置き換えることができる。この新たな乗数は、2つの動作の累乗として実施することが可能である。すなわち、乗算動作を、単純な一連の加算動作とシフト動作とによって置き換えることが可能となる。0.06250.015625-0.0001221-0.0000610.000031=0.078217であり、ここでターゲットとなる乗数は0.0782232である。このように、7回の加算およびシフト動作によって、1回の浮動小数点乗算動作を置き換えることができる。図5のダイアグラム500に図解されているように、入力レジスタ502からの値に対して、2>>42>>6-2>>13-2>>142>>15=0.078217として、CSD正準シフトディジット動作が行われ、次には一連の加算およびシフトブロック504、506、508、510、512が続き、結果である0.078217がh2に対する結果レジスタ518の中に残る。図6のダイアグラム600には、どのようにして、第3のローパスフィルタ係数h3との乗算もまた、2>>62>>102>>122>>15=0.016860604、606、608、610として、入力レジスタ602からの値に対する加算およびシフト動作の組み合わせによって置き換えることができ、結果である0.016860がh3に対する結果レジスタ618の中に残ることができるかが、図解されている。このように、h2およびh3に対するシフトおよび加算動作により、ローパスフィルタプロセスにおいて、それぞれさらに4回および5回の乗算動作を減らすことができる。ローパス動作と同じように、n=0,1,,N/2-1として、ハイパスサブバンドサンプルdnを、行列形式に表現することができる。この行列は、長さ8の信号ベクトルに対して再構成することが可能であり、例示的な8X8の実装の場合には結果的に次の行列方程式を生じる。この行列方程式は、次のような長い形式で書くことができる。g2x0g3x1g4x2=d0g2x0g1x1g2x2g3x3g4x4=d1g4x0g3x1g2x2g1x3g2x4g3x5g4x6=d2g4x2g3x3g2x4g1x5g2x6g3x7=d3g4x4g3x5g2x6g1x7=d4[6]g4x6g3x7=d5共通の項を識別した後で、この行列方程式は、次のように書くことができる。g2x0p11g3x1p9g4x2p10=d0g2x0p11g1x1g2x2p6g3x3p7g4x4p8=d1g4x0g3x1p9g2x2p6g1x3g2x4p4g3x5p3g4x6p5=d2g4x2p10g3x3p7g2x4p4g1x5g2x6p2g3x7p1=d3g4x4p8g3x5p3g2x6p2g1x7=d4[7]g4x6p5g3x7p1=d5方程式群[6]におけるハイパスフィルタ係数のための行列方程式は、ウェーブレット変換の結果を形成するために27回の乗算を必要とする。上述の長い形式の方程式において共通の項が識別されると、以下の乗算動作を削除することができる。すなわち、g3x7-d5およびd3;g4x6-d5およびd2;g4x4-d4およびd1;g3x5-d4およびd2;g2x6-d4およびd3;g2x0-d0およびd1;g3x1-d0およびd2;g4x2-d0およびd3;g3x3-d1およびd3;g2x2-d1およびd2;g2x4-d2およびd3である。このようにして、ハイパスサブバンドサンプルd0、d1、d2、d3の計算においては6回の乗算動作を節約することができ、d4およびd5においては5回の乗算動作を節約することができる。共通積は、方程式群[7]において示されている。マラーアルゴリズムを用いるハイパスフィルタのためには、2つの異なる構成を用いることができるが、一方は共通項の識別に基づき、他方は、シフトおよび加算パイプライン構造による乗算動作の削除に基づく。最低の電力消費を目的にするために、いくつかの実施形態では、両方のアプローチを統合することが可能である。第1のアプローチでは、共通項を削除することにより、11回の冗長な乗算動作を削減することができる。ハイパスマラーフィルタのための乗算動作の元の回数は27であるが、11回の乗算動作を減らすことにより、27から11を引いて16回の乗算動作が残ることになる。11回の動作を削減した後では、ハイパスフィルタ係数g2のための動作は7回の乗算動作を含み、ハイパスフィルタ係数g3のためには8回の乗算動作を含む。これら2つの間では、g3が最小の乗数であるから、最小の全体近似誤差を加算する可能性が高い。したがって、最小の部分積を最初に計算する少なくともいくつかの実施形態によると、g3に関する動作が最初に実行され得る。g2およびg3のための乗算動作の代わりに加算およびシフト動作を実行することによって、追加的な乗算動作を削減することもできる。g2のための4回の乗算動作の代わりに複数回の加算を用いることによって、これらの4回を削減することができる。g3のための追加的な4回の乗算動作は、以下の図4で示されているように、乗算動作をシフトおよび加算動作で置き換えることにより、削減することができる。このようにして、全体で追加的な8回の乗算動作を削減することができて、ハイパス動作のために、16から8を引いた8回の乗算動作が残ることになる。図3および図4に戻ると、ダイアグラム300および400には、マラーウェーブレット変換回路における第2および第3のハイパスフィルタ係数g2およびg3のためのシフトおよび加算動作のためのフローが図解されている。このシフトおよび加算動作は、少なくともいくつかの実施形態によると、8回の乗算を回避するのに役立つ。例示的なシナリオによると、g2のために、0.591271による任意の乗算を、0.591796875との乗算によって置き換えることができる。新たな乗数は、2のベキ乗によって実装することができる。すなわち、乗算動作を、0.50.06250.0156250.0078130.003900.00196-0.0001221=0.5917のような単純な一連の加算およびシフトで置き換えることができる。なお、ここでのターゲットとなる乗数は、0.59127である。図3のダイアグラム300に図解されているように、入力レジスタ302からの値に対して、7回の加算およびシフトにより、2>>12>>42>>62>>72>>82>>9-2>>13=0.5917304、306、308、310、312、314、316のようにして、1回の浮動小数点乗算を置き換えることができ、結果となる0.05917がg2に対する結果レジスタの中に残ることになる。図4のダイアグラム400には、どのようにして、第3のハイパスフィルタ係数g3との乗算もまた、0.0576172=0.062500-0.0078130.0039063-0.00097662>>4-2>>72>>8-2>>10=0.0576404、406、408、410として、加算およびシフト動作の組み合わせによって置き換えることができ、結果である0.0576172がg3に対する結果レジスタ418の中に残ることができるかが、図解されている。このように、g2およびg3に対するシフトおよび加算動作により、ハイパスフィルタプロセスにおいて、それぞれについてさらに4回の乗算動作を減らすことができる。これにより、ウェーブレットプロセッサの消費回路電力も節約することも可能になる。g2およびg3との乗算に関する誤差の大きさは実質的に小さいことを示すことができる。誤差がこのように小さいということは、図3および4で示されているように、g2およびg3との乗算動作をシフトおよび加算動作で置き換えることにより電力を節約できることを意味する。図7では、ダイアグラム700の中に、シリアルインパラレルアウトSIPO-マラー-パラレルインシリアルアウトSIPOラッパーという動作の間の例示的なクロックサイクルが図解されている。SIPO-マラー-PISOラッパーを制御する外部信号は、図1との関係で記載したように、ロード信号と、処理信号と、アンロード信号とを含み得る。第1の状態702の間には、ロードデータストリームXn0-7が、8つのロードサイクルにわたり受け取られ得る。これは、8つの外部クロックサイクルであり得る。ロードデータストリームが受け取られるのと同時に、先行する処理済信号に対するアンロードデータストリームYn-10-7が、アンロードされ得る。このようなラッパーにより、ウェーブレットプロセッサが、FPGAにおいて、または、ソフトもしくはハードIPにおいて実装される場合に、入出力カウントが減少する。第2の状態704の間は、処理データストリームXn0-7が処理されるが、これには、1つまたは2つのクロックサイクルを要し得る。第2の状態704の次には第3の状態706が続き得る。この第3の状態706の間には、処理済データストリームXn0-7と関連するアンロードデータストリームYn0-7がアンロードされ得るが、これは、例示的な実施形態によると約8つの外部クロックサイクルの間継続する。同時に、次のロードデータストリームXn10-7が受け取られ得る。図8には、係数の6サイクル計算のためのマラー変換回路のローパスフィルタ段の例示的なアーキテクチャが図解されている。ダイアグラム800に示されているアーキテクチャでは、奇数番および偶数番の入力サンプルX1、X3、X5など、および、X0、X2、X4などとして分離されている入力サンプルが図解されている。奇数番のサンプルは、ローパスフィルタ係数h0、h2およびh4の計算のための上側の処理要素802、804および806に提供される。偶数番のサンプルは、遅延要素808の後のローパスフィルタ係数h1およびh3のための下側の2つの処理要素810および812に提供される。ローパスフィルタリングのためのそれぞれの処理要素における計算プロセスのより詳細な図解は、図15との関係で、後で示される。図9には、係数の6サイクル計算のためのマラー変換回路のハイパスフィルタ段の例示的なアーキテクチャが図解されている。ダイアグラム900に示されているアーキテクチャでは、奇数番および偶数番の入力サンプルX1、X3、X5など、および、X0、X2、X4などとしても分離されているハイパス動作のための入力サンプルが図解されている。奇数番のサンプルは、ハイパスフィルタ係数g2およびg4の計算のための上側の処理要素902および904に提供される。偶数番のサンプルは、遅延要素906の後のハイパスフィルタ係数g1およびg3のための下側の2つの処理要素908および910に提供される。ハイパスフィルタリングのためのそれぞれの処理要素における計算プロセスのより詳細な図解の例は、図16との関係で、後で示される。図10A~10Dには、いくつかの実施形態による正エッジおよび負エッジ構成を有するローパスおよびハイパスマラー変換回路のための例示的なランダムアクセスメモリRAM構造が図解されている。ダイアグラム1000Aに示されているDWTを実行するためのアーキテクチャは、2つのデータ記憶要素たとえば、RAM1002および1008という構成を用い得る。この構成によって、2つの異なるデータストリームがウェーブレット変換を受けることが可能になり、この際、データフローは、RAM1002とRAM1008との間で一方のイテレーションから他方のイテレーションに方向を交代する。いくつかの実施形態によると、双直交9:7スプラインフィルタを用いることができる。結果的に得られるモデルは、ダイアグラム1000Aに示されているように、キャッシュを備えたm個のコアのアレイにマップされ得る。DWTのための第1の構造すなわちローパス構造は、下記の2つの方程式として表現することができる。奇数番および偶数番のサンプルが、それぞれのイテレーションで交代する態様で、RAM1002および1008から処理要素1010のアレイに与えられ得るが、一方のRAMが奇数番のサイクルで用いられ、他方のRAMが偶数番のサイクルで用いられる。これら2つのRAMには、複数の到着チャネルと複数の循環バッファ図示せずとの構造から入力データが与えられ得るが、それぞれがキャッシュ動作のために構成されたRAMの群に与えられている。それぞれのプロセッサコアは、2つ以上のRAMたとえば、1002、1008を含み得る。マラーの1つの段については、同一のコアが、複数の順方向および逆方向のステップにおいて用いられ得る。ある例示的な順方向ステップが、マラーハイパスフィルタ、ローパスフィルタおよびデシメーション動作を通過する1つのパスを構成することがある。N=88つの入力サンプルという例では、DWTのローパス構造のための方程式は、次のように展開することができる。a0=h0x0h-1x1h-2x2h-3x3h-4x4a1=h2x0h1x1h0x2h-1x3h-2x4h-3x5h-4x6a2=h4x0h3x1h2x2h1h3h0h4h-1x5h-2x6h-3x7a3=0x00x1h4x2h3h3h2x4h1x5h0x6h-1x7a4=0x00x10x20x3h4x4h3x5h2x6h1x7a5=h2x0h1x1h0x2h-1x3h-2x4h-3x5a6=h4x0h3x1h2x2h1x3h0x4h-1x5h-2x6h-3x7[10]a7=h4x2h3x3h2x4h1x3h1x5h0x6h-1x7ハイパスウェーブレットフィルタは、上で方程式群[10]として示されている8つの方程式の形式で書くことができる。それぞれの項hiに対するインデクスiは、異なる時間で識別され、hiiとhi-1との間の相対時間遅延は遅延要素によって提供され得る。たとえば、項h0からh7までの間の時間遅延は、遅延線1004正のエッジと遅延線1006負のエッジとによって提供され得る。これら2つの遅延線には、2つの異なるRAMから同時に入力が与えられる。たとえば、項h1は2つの時間遅延に対応し、項h2は4つの時間遅延に対応し、項h3は6つの時間遅延に対応し、項h4は8つの時間遅延に対応し得る。結果的に、8番目の遅延項はh4ブロックへの入力に対応し、6番目の遅延項はh3ブロックへの入力に対応し得る。ハイパスマラーフィルタのための方程式は、次のようにも表現することができる。c0=g0x0g-1x1g-2x2c1=g2x0g1x1g0x2g-1x3g-2x4c2=g4x0g3x1g2x2g1x3g0x4g-1x5g-2x6c3=g4x2g3x3g2x4g1x5g0x6g-1x7c4=g4x4g3x5g2x6g1x7c5=g2x0g1x1g0x2g-1x3g-2x4g-3x5c6=g4x0g3x1g2x2g1X3g0x4g-1x5g-2x6[11]c7=g4x2g3x3g2x4g1x5g0x6g-1x7a0係数の対称性は、逆流原理counterflowprincipleにおいて下記の構造を生じさせるのに用いることができる。ハイパスおよびローパスのサブバンドサンプルa0およびc0の方程式[10]および[11]を検討すると、係数が変化しない標準的な収縮構造とは異なり、入力サンプルは左から右へシフトされ、出力サンプルは右から左へシフトされることが判明する。係数と結果とがシフトされサンプルがすべて同時にロードされる場合には、方程式の数を単純化することができる。この性質を利用すると、ローパスフィルタ係数を次のように書くことができる。a0=h00x0h10x1h20x2h30x3h40x4a1=h00x2h1x1x3h2x0x4h30x5h40x6[12]a2=h00x4h1x3x5h2x2x6h3x1x7h4x0x8また、ハイパスフィルタのための対応する方程式は、次のように書くことができる。c0=g100g20x0g30x3g40x2c1=g10x1g2x0x2g30x5h40x4[13]c2=g10x3g2x2x4g3x1x5g4x0x6このアーキテクチャは2つのRAM1002および1008を用いるが、左側のRAMは、入力サンプルを保持するように構成することができる。すると、マラーローパス方程式の拡張形式は、次のようなパターンに従い得る。a0=h00x0h10x1h20x2h30x3h40x4a1=h00x2h1x1x3h2x0x4h30x5h40x6a2=h00x4h1x3x5h2x2x6h3x1x7h4x0x8a3=h00x6h1x5x7h2x4x8h3x3x9h4x2x10[14]a4=h00x8h1x7x9h2x6x10h3x5x11h4x4x12上述の方程式群[14]のパターンは、2つのRAMにアクセスすることができる構造を用いて実装することができる。データワードのあるグループは、第1のウェーブレット出力a0が第1のクロックサイクルとその後の2番目ごとのクロックサイクルとにおいて書かれるように、処理され得る。処理要素1010からのローパスおよびハイパス動作の出力は、2つの5出力ツリー加算器1012および1014に結合され得る。1つの加算器を正のエッジにおいて利用可能な出力のために用い1012、別の加算器を負のエッジにおいて利用可能な処理要素の出力を処理するために用いる1014ことによって、データが利用可能な速度を有効に2倍にすることができる。いくつかの実施形態では出力データが外部の出力バッファに書き込まれることがあり、または、他の実施形態では出力データが入力RAMとは異なる他のRAMに書き込まれることがある。ダイアグラム1000Aから1000Dには、デュアルRAM1002および1008が示されており、これらのRAMは2つの遅延線に入力を与えるが、一方は正のクロックエッジで動作され、他方は負のクロックエッジで動作される。ダイアグラム1000A、1000B、1000Cおよび1000Dにおける遅延線、RAMおよび処理要素の詳細な接続は、ローパスの正のエッジ、ローパスの負のエッジ、ハイパスの正のエッジおよびハイパスの負のエッジの構成にそれぞれ対応する。処理要素PE1からPE51010は正および負の両方のエッジにおいて動作を実行するが、その理由は、図11および図12との関係で後述するように、一方が正のエッジで動作し他方が負のエッジで動作する2つの独立の乗算加算パイプラインを有しているからである。図11には、少なくともいくつかの実施形態による図10のRAM構造のローパス構成要素のための例示的な処理要素が図解されている。上述した例示的な収縮アレイでは、それぞれの処理要素は、2段のパイプラインを4つ含み得る。これら4つのパイプラインの中で、2つはローパス係数の計算動作の専用であり、他の2つはハイパス係数の計算動作の専用であり得る。ダイアグラム1100には、例示的なローパス係数の計算専用の2段が示され、そこで入力値はバッファされることがあり1102、加算およびシフト動作1104と乗算動作1106とが行われる。出力バッファまたはレジスタ段1108は、対応する加算器への出力Z_pおよびZ_nを提供するように構成され得る。ローパス計算のための2つのパイプラインは、同時に動作するように構成されることができ、その場合、左側のパイプラインはクロック信号の正のエッジで選択的に結合され、右側のパイプラインはクロック信号の負のエッジで選択的に結合される。図12には、図10のRAM構造のハイパス構成要素のための例示的な処理要素が図解されている。ダイアグラム1200には、例示的なハイパス係数の計算動作専用の2段が示されているが、これは、図11のパイプラインと類似している。入力値はバッファされることがあり1202、加算およびシフト動作1204と乗算動作1206とが行われる。出力バッファまたはレジスタ段1208は、対応するハイパス出力加算器への出力W_pおよびW_nを提供するように構成され得る。ハイパス計算のための2つのパイプラインは、同時に動作するように構成されることもでき、その場合、左側のパイプラインはクロック信号の正のエッジで選択的に結合され、右側のパイプラインはクロック信号の負のエッジで選択的に結合される。ダイアグラム1200における出力W_pおよびW_nは、4入力加算器において加算される前のハイパスフィルタ係数の成分を表す。図11のダイアグラム1100における出力Z_pおよびZ_nは、5入力加算器において加算される前のローパスフィルタ係数を表す。いくつかの実施形態では、W_pは4入力加算器に送られ、4入力加算器はクロックの正のエッジにおいてのみ動作し、図10Aから10Dの左側のRAM1002において生じるデータのためのマラー係数を形成する。W_nは、図10Dにおける負のエッジにおいて動作する加算器に送られる。それぞれの処理要素は4つの出力ポートを有していて、2つはローパスフィルタ係数正のエッジおよび負のエッジのためであり、2つはハイパスフィルタ係数正のエッジおよび負のエッジのためである。加算器の出力は、図1に示されているように、2組のデシメータに送られ得る。デシメータの一方の組正のエッジおよび負のエッジはローパスフィルタ係数に対応し、デシメータの他方の組はハイパスフィルタ係数に対応する。図13には、図10のそれぞれの処理要素のためのローパスおよびハイパスマラー係数のための例示的な構成が図解されている。ダイアグラム1300における処理要素PE1010は、それぞれが、2組のパイプラインにおいて入力値Xiを受け取り同時に処理するように構成され得る。その際に、一方のパイプラインはローパスフィルタ動作のためであり、他方のパイプラインはハイパスフィルタ動作のためである。出力データは、ツリー加算器を通じて処理され、出力バッファまたはRAMに記憶され得る。出力データの速度は、クロック信号処理の正および負のエッジを用いることにより、効果的に2倍にすることができる。いくつかの実施形態によると、第1のデータストリームは、第1のバッファまたはRAMからのすべてのクロックサイクルの正のエッジにおいて処理要素1010によって受け取られ得る。第2のデータストリームは、すべてのクロックサイクルの負のエッジにおいて第2のバッファまたはRAMから受け取られ、これにより、この二重構成の処理要素が満たされる速度が2倍になり得る。それぞれの処理要素のパイプライン1100および1200は、それぞれの対応するクロックエッジにおいて処理されるデータストリームが異なるように、クロックサイクルの正のエッジと負のエッジとの両方で動作するように構成することができる。両方のエッジにおいて動作することにより、サンプル内部での遅延を効率的に半分にすることができる。PE要素1010は、一方の対が正のクロックエッジに対応し他方の対が負のクロックエッジに対応する4つの入力ポートを有するように両方の遅延線によって与えられる。それぞれのPE要素は4つの出力を有するが、ローパスおよびハイパス信号のそれぞれについて、一方が正のエッジに対応し、他方が負のエッジに対応する。ローパスフィルタリングのための正のエッジの加算には5つのPEが必要であり、ハイパスフィルタリングのための正のエッジの加算には4つのPEが必要である。図14には、他の実施形態によるローパスおよびハイパスマラー変換回路の別の例示的なRAM構造が図解されている。ダイアグラム1400は、図10Aから10Dの構成のより抽象的な図である。2つのRAM1002および1008は、2つの遅延線に近接して配置されている。遅延線の一方1402図10Aから10Dでは、1004としても表されているは、正のクロックエッジにおいてのみシフト動作を実行する。第2の遅延線1404図10Aから10Dでは、1006としても表されているは、負のクロックエッジにおいてシフト動作を実行する。これら5つの処理要素1010PE1からPE5までは、2つの遅延線1402および1404によって与えられている。PE要素1010は、ローパスフィルタ係数のために2つの5入力加算器に、そして、ハイパスフィルタ係数のために2つの4入力加算器に、入力を与える。2つのRAM1002および1008は、3次元集積回路における遅延線および処理要素と同じシリコン層の上に配置されることもある。また、これらは、3次元集積回路における遅延線および処理要素とは別のシリコン層の上に配置されることもある。ダイアグラム1400には、2つのRAM1002および1008、5つの処理要素1010、それぞれが8つの遅延を備えた2つの遅延線1402および1404、ならびに2組の加算器1406、1408、1410および1412の別の構成が図解されている。遅延線は、クロック信号の正のエッジ1402またはクロック信号の負のエッジ1404のいずれかにおける入力を用いた動作の専用とすることもできる。同様に、加算器も、クロック信号の正のエッジまたは負のエッジのいずれかにおいて動作する専用とすることもできる。たとえば、ローパスサブバンドサンプル出力のための1つの5入力加算器1406をクロック信号の正のエッジで動作するように構成し、ローパスサブバンドサンプル出力のための別の5入力加算器1408をクロック信号の負のエッジで動作するように構成し、ハイパスサブバンドサンプル出力のための1つの4入力加算器1410をクロック信号の正のエッジで動作するように構成し、ハイパスサブバンドサンプル出力のための1つの4入力加算器1412を、信号の負のエッジで動作するように構成することができる。加算器1406、1408、1410および1412の出力では、4つの独立な組のサブバンドサンプルが利用可能である。すなわち、正のクロックエッジa0p、a1p、a2p、を用いて出力されるローパスサブバンドサンプルと、負のクロックエッジa0n、a1n、a2n、を用いて出力されるローパスサブバンドサンプルと、正のクロックエッジc0p、c1p、c2p、を用いて出力されるハイパスサブバンドサンプルと、負のクロックエッジc0n、c1n、c2n、を用いて出力されるハイパスサブバンドサンプルと、である。いくつかの実施形態によると、これらの5入力および4入力加算器は、動作における遅延を最小化するようにツリー加算器として動作するように構成することができる。図15には、ローパスマラー変換回路のためのネットワークを形成する例示的なプロダクトが図解されている。図8との関係で既に論じたように、入力サンプルは、奇数番のサンプル群と偶数番のサンプル群とに分割することができる。奇数番のサンプルは奇数番のローパス係数計算動作として処理され、他方で、偶数番のサンプルは偶数番のローパス係数計算動作として処理され得る。ダイアグラム1500に示されているように、ローパスフィルタ係数h1、h0およびh4は、通常の符号付きの乗算1502、1504、1506これらは、共通の部分積削除により削減できると共に用いられる。いくつかの実施形態による二次的な動作削減アプローチとして、サブバンドサンプルを、シフトおよび加算SA動作1508、1510を通じて計算することもできる。この際には、乗算の代わりに入力としてローパスフィルタ係数h2およびh3を用いることで、必要なハードウェア、計算時間および構成要素のための電力がさらに削減される。図16には、ハイパスマラー変換回路のためのネットワークを形成する例示的なプロダクトが図解されている。入力サンプルx1~x7は、ハイパス動作において、奇数番のサンプルと偶数番のサンプルとに分けることができる。奇数番のサンプルは、奇数番のハイパスフィルタ係数g1およびg3を用いてサブバンドサンプル計算d0~d5において用いられ、他方で、偶数番のサンプルは、偶数番のハイパスフィルタ係数g2およびg4を用いてサブバンドサンプル計算において用いられ得る。ダイアグラム1600に示されているように、ハイパスフィルタ係数g1およびg4は、通常の符号付きの乗算1602および1604これらは、共通の部分積削除により削減できるを含む。いくつかの実施形態による二次的な動作削減アプローチとして、ハイパスフィルタ係数g2およびg3を、シフトおよび加算動作1606および1608を通じて計算することもできる。これは、乗算が、必要なハードウェア、計算時間および構成要素のための電力をさらに削減するのと対照的である。図17には、汎用計算機が図解されており、この汎用計算機は、本開示の少なくともいくつかの実施形態に従って構成されたウェーブレット変換のための計算環境として用いることができる。コンピュータ1700は、プロセッサ1710と、メモリ1720と、1つまたは複数のドライブ1730とを含む。ドライブ1730と、取り外し可能な記憶媒体1734たとえば、CD-ROM、DVD-ROMや取り外し不可能な記憶媒体1732たとえば、ハードディスクドライブなどそれに関連するコンピュータ記憶媒体が、コンピュータ1700のためのコンピュータ可読な命令、データ構造、プログラムモジュールおよびそれ以外のデータのストレージを提供することができる。ドライブ1730は、オペレーティングシステム1740と、アプリケーションプログラム1750と、プログラムモジュール1760と、データベース1780とを含み得る。コンピュータ1700は、それらを介してユーザがコマンドやデータを入力することができるユーザ入力デバイス1790をさらに含み得る。入力デバイス1790には、電子デジタイザと、マイクロフォン1796と、キーボード1794と、マウスデバイス1792やトラックボールデバイスやタッチパッドデバイスなどのポインティングデバイスとが含まれ得る。他の入力デバイスには、ジョイスティックデバイスや、ゲームパッドデバイスや、衛星ディッシュや、スキャナデバイスなどが含まれ得る。アプリケーションプログラム1750は、1組のピクセルと関連するデータを受け取り処理することができる。アプリケーションプログラム1750の中のマラープロセスモジュール1752は、一連の離散ウェーブレット変換DWTのローパスおよびハイパスフィルタリング動作を適用することによりウェーブレット係数を計算し、ローパスフィルタリング動作とハイパスフィルタリング動作との少なくとも一方について共通の部分積を識別して共通の部分積を削除することによってフィルタリング動作の数を削減することができる。そして、DWTを、残りのフィルタリング動作に基づいて、適用することができる。上述したおよびそれ以外の入力デバイスを、システムバス1705に結合されたユーザ入力インタフェースを介してプロセッサ1710に結合することができるが、パラレルポート、ゲームポートまたはユニバーサルシリアルバスUSBなどのそれ以外のインタフェースおよびバス構造によって結合することもできる。コンピュータ1700などのコンピュータは、さらに、スピーカ1776、プリンタ1774およびディスプレイ1772など他の周辺出力デバイスを含むことがあり、これらは、出力周辺インタフェース1770または類似のものを介して結合されることがある。メモリ1720と取り外し可能な記憶デバイス1734と取り外し不可能な記憶デバイス1732とは、コンピュータ記憶媒体の例である。コンピュータ記憶媒体には、これらに限定されるのではないが、RAM、ROM、EEPROM、フラッシュメモリもしくはそれ以外のメモリ技術、CD-ROM、デジタルバーサタイルディスクDVDもしくはそれ以外の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくはそれ以外の磁気記憶デバイス、または、所望の情報を記憶するのに用いることができコンピュータ1700によってアクセスが可能である任意のそれ以外の媒体が含まれる。任意のそのようなコンピュータ記憶媒体は、コンピュータ1700の一部であり得る。コンピュータ1700は、ネットワークインタフェース1706に接続されたリモートコンピュータなど1つまたは複数のコンピュータへの論理的接続を用いているネットワークされた環境において、動作することができる。リモートコンピュータは、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたはそれ以外の共通のネットワークノードであり、コンピュータ1700に関して上述した要素の多くまたはすべてを含むことがあり得る。ネットワーク環境は、オフィスにおいて通常のものであって、企業の広域エリアネットワークWAN、ローカルエリアネットワークLAN、イントラネットおよびインターネットなどの世界規模のネットワークである。たとえば、本出願の主題においては、コンピュータ1700は、そこからデータが自動ドリルシステムやエッチングシステムなどのマルチレイヤ回路ボード製造システムに移動されるコントローラマシンを含むことがあり、リモートコンピュータは複数のシステムのコントローラを含み得る。しかし、ソースマシンと宛先マシンとはネットワーク1708複数可または任意のそれ以外の手段によって相互に結合されている必要はなく、その代わりに、データは、ソースプラットフォームによって書かれることが可能であり宛先プラットフォーム複数の場合もあるによって読まれることが可能な任意の媒体を介して移動されることもあることを留意すべきである。LANまたはWLANネットワーク環境において用いられるときには、コンピュータ1700は、ネットワークインタフェース1706またはアダプタを介してLANに結合される場合がある。これら1つまたは複数のネットワーク複数可は、サーバ、クライアント、スイッチ、ルータ、モデム、インターネットサービスプロバイダISPおよび任意の適切な通信媒体たとえば、有線または無線通信を用いる任意のトポロジで構成され得る。いくつかの実施形態によるシステムは、静的または動的なネットワークトポロジを有し得る。これら1つまたは複数のネットワーク複数可は、企業ネットワークなどの安全なネットワークたとえば、LAN、WANまたはWLAN、無線のオープンネットワークなどの安全ではないネットワークたとえば、IEEE802.11の無線ネットワークまたはたとえばインターネットなどの世界規模のネットワークを含み得る。これら1つまたは複数のネットワーク複数可は、共に動作するように構成されている複数の別個のネットワークで構成されている場合もある。これらの1つまたは複数のネットワークは、本明細書に記載されているノードの間の通信を提供するように構成されている。たとえば、限定を意味しないが、これらの1つまたは複数のネットワーク複数可は、音響、RF、赤外線およびそれ以外の無線媒体を含み得る。ネットワーク通信リンクは、通信媒体の一例であり得る。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは搬送波もしくはそれ以外の輸送機構などの変調されたデータ信号の中の他のデータによって具体化されるのが典型的であり、任意の情報配送媒体を含み得る。変調されたデータ信号とは、信号の中の情報を符号化するようにその特性の1つまたは複数が設定または変更されている信号であり得る。たとえば、限定ではないが、通信媒体は、有線ネットワークまたは直接の有線接続などの有線媒体と、音響、無線周波数RF、マイクロ波、赤外線IRおよびそれ以外の無線媒体などの無線媒体とを含み得る。本明細書で用いられているコンピュータ可読媒体という用語は、記憶媒体と通信媒体との両方を含み得る。コンピュータ1700は、ポータブル計算機、モバイル計算デバイス、特定アプリケーションデバイス、または以上の機能の任意のものを含むハイブリッドデバイスなどの小型要素のポータブルまたはモバイル電子デバイスの一部として実装可能である。コンピュータ1700は、また、ラップトップコンピュータおよび非ラップトップコンピュータの両方の構成を含むパーソナルコンピュータとしても実装可能である。さらに、コンピュータ1700は、ネットワーク接続されたシステムまたは汎用もしくは専用サーバの一部としても実装可能である。図18は、図17の計算機1700などの計算機によって実行され得る例示的な方法を図解する流れ図である。ブロック1822から1832に記載された動作は、コンピュータ1700のドライブ1730またはプロセッサ1710のメモリなどのコンピュータ可読媒体に、コンピュータ実行可能な命令として記憶され得る。マルチコアプロセッサ中の1つまたは複数のプロセッサたとえば、1710は、以下で述べる動作の1つまたは複数を実行するように構成することができる。ウェーブレット変換を計算するプロセスは、それぞれのピクセルをシリアルにロード動作1822と共に開始し得る。動作1822では、入力値が、図1のSIPO構成要素104などのSIPO構成要素にロードされるが、これは、マラープロセッサ110の処理要素へのシリアルデータとして用いることができる。動作1822の次には、共通の部分積を識別動作1824が続き得る。動作1824では、ローパスおよびハイパス係数行列の方程式における共通の部分積が、識別され得る。動作1824の次には、共通の部分積を削除動作1826が続くが、ここでは、動作1824で先に識別された部分積が、計算から削除され得る。共通の部分積を削除することにより、図10の処理要素1010によって実行される必要のある動作が、より少数になり、つまり、処理要素を、より少数の構成要素で実装できることになり、それにより、消費電力も少なくなり得る。また、動作数が減少することによって、計算時間の短縮も可能になる。動作1826の次には、低マグニチュード係数の乗算をシフトおよび加算で代替動作1828が続き得る。動作1828では、h2、h3またはg3などのマグニチュードがより小さなローパスおよびハイパス係数が、通常の乗算動作の代わりに、シフトおよび加算型の動作たとえば、図16の1606、1608を用いて計算され得る。このような代替によって生じ得る誤差は、無視できるほど小さい。他方で、乗算動作の実質的な回数と乗算動作に要求される関連のハードウェアとを節約することができ、その結果として、計算時間が高速化し、電力消費を削減できる。動作1828の次には、それぞれの変換値をシリアルにアンロード動作1830が続き得る。動作1830では、同時に動作している処理動作たとえば、マルチコアプロセッサの異なる処理コアにおけるパラレル動作の出力を、一連のツリー構造の加算器とPISO構成要素たとえば、図1の加算器126とPISO124によるシリアル出力に変換することができる。マラープロセッサの周囲のラッパーにより、シリアルデータを受け取りかつ提供しながら、ウェーブレット変換のパラレルでマルチコアな処理が可能になる。上述したプロセスに含まれる動作は、説明目的のものである。マルチコアプロセッサを用いたウェーブレット変換の計算は、より少数のまたは追加的な動作を用いた類似のプロセスによって実装可能である。いくつかの例では、これらの動作は、異なる順序で実行されることもあり得る。他のいくつかの例では、さまざまな動作を削除することも可能である。さらに他の例では、さまざまな動作を追加的な動作に分割したり、より少数の動作にまとめたりすることも可能である。図19には、例示的なコンピュータプログラムプロダクトのブロック図が図解されており、すべてが、本明細書に記載されている少なくともいくつかの実施形態に従って構成されている。いくつかの例では、図19に示されているように、コンピュータプログラムプロダクト1900は、たとえばプロセッサによって実行されると図17との関係で上述した機能を提供するマシン可読命令1904をも含む信号発生媒体1902を含み得る。したがって、たとえば、プロセッサ1710を参照すると、図19に示されているタスクの中の1つまたは複数が、本明細書に記載されているマルチコアプロセッサを用いたウェーブレット変換の計算と関連して動作を実行するために媒体1902によってプロセッサ1710に運ばれた命令1904に応答して、実行され得る。これらの命令の中のいくつかは、共通の部分積を識別すること、共通の部分積を削除すること、低マグニチュードの係数の乗算をCSDによって代替すること、および/またはマラー変換の周囲のラッパーを生じさせることを含み得る。いくつかの実装では、図19に示されている信号発生媒体1902は、これらに限定されることはないが、ハードディスクドライブ、コンパクトディスクCD、デジタルビデオディスクDVD、デジタルテープ、メモリなどのコンピュータ可読媒体1906を包み得る。いくつかの実装では、信号発生媒体1902は、これらに限定されることはないが、メモリ、リード/ライトR/W式CD、R/W式DVDなどの記録可能媒体1908を含み得る。いくつかの実装では、信号発生媒体1902は、これらに限定されることはないが、デジタルおよび/またはアナログ通信媒体たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなどなどの通信媒体1910を含み得る。したがって、たとえば、プログラムプロダクト1900は、RF信号発生媒体1902によって、プロセッサ1710の1つまたは複数のモジュールまで運ばれ得るが、ここで、信号発生媒体1902は無線通信媒体1910たとえば、IEEE802.11の標準に従う無線通信媒体によって運ばれる。本開示は、ウェーブレットに基づくデータ圧縮のための方法を提供する。いくつかの例によると、この方法は、1組のピクセルと関連するデータ102を受け取ることと、一連の離散ウェーブレット変換DWTのローパスおよびハイパスフィルタリング動作114、112を適用することによってウェーブレット係数を計算することと、を含む。計算の間に、フィルタリング動作の回数を、ローパスフィルタリング動作とハイパスフィルタリング動作との少なくとも一方に対する共通の部分積を識別し1824、その共通の部分積を削除する1826ことによって、減少させる。この方法は、また、残りのフィルタリング動作に基づいてDWTを適用することも含み得る。他の例によると、この方法は、ウェーブレット係数の第1の部分を低マグニチュード係数として、ウェーブレット係数の第2の部分を高マグニチュード係数として分類することと、高マグニチュードウェーブレット係数に対する共通の部分積を削除することと、低マグニチュードウェーブレット係数に対する乗算動作1502、1506をシフトおよび加算動作1514、1518で代替することと、をさらに含み得る。更なる例によると、この方法は、正準符号付きディジットCSD符号化を用いてシフトおよび加算動作1514を実行すること、それぞれの処理要素がハイパスフィルタ要素112とローパスフィルタ要素114とデシメーション要素116とを含むマルチコアプロセッサにおける複数の処理要素1010によってDWT変換を実行すること、シリアルインパラレルアウトSIPO構成要素104において1組のピクセルと関連するデータをデータストリームとして受け取ること、処理要素1010にSIPO構成要素の出力を提供すること、パラレルインシリアルアウトPISO構成要素124においてマルチコアプロセッサの出力を受け取ること、および/または、ピクセルと関連する圧縮されたデータをPISO構成要素124の出力からのデータストリームとして提供すること、の中の1つまたは複数をさらに含み得る。さらに他の例によると、この方法は、その対応するマグニチュードに基づいてウェーブレット係数をソートすることと、最大のウェーブレット係数404、504から開始してウェーブレット係数を計算することと、予め定義された誤差限度に応じてすべてよりも少ないウェーブレット係数を含む部分和に基づいてDWTを適用することと、をさらに含み得る。1組のピクセルは、静止画像とビデオストリームとの一方と関連し得る。さらに他の例によると、この方法は、5つのローパスフィルタ段1500を用い、その際に、共通の部分積が第1のウェーブレット係数1500と第2のウェーブレット係数1502と第5のウェーブレット係数1510とに対して削除され、第3のウェーブレット係数1518と第4のウェーブレット係数1514とに対する乗算動作がシフトおよび加算動作で代替され、および/または、4つのハイパスフィルタ段1600を用い、共通の部分積が第1のウェーブレット係数1602と第4のウェーブレット係数1604とに対して削除され、第2のウェーブレット係数1612と第3のウェーブレット係数1608とに対する乗算動作がシフトおよび加算動作で代替されることを含み得る。本開示は、さらに、ウェーブレットに基づくデータ圧縮のための別の方法を提供するのであるが、この方法は、1組のピクセルと関連するデータを受け取ることと、一連のローパスおよびハイパスフィルタリング動作によって実行される離散ウェーブレット変換DWTのために、それぞれのピクセルをマルチコアプロセッサ1822にワードシリアルな態様でロードすることと、残りのフィルタリング動作に基づいてDWTを適用することと、を含み得る。計算プロセスにおけるフィルタリング動作の回数は、ローパスフィルタリング動作とハイパスフィルタリング動作との少なくとも一方のために共通の部分積を識別し1824、それぞれのマグニチュードに基づいてフィルタリング動作の結果として生じるウェーブレット係数をソートし、ウェーブレット係数の第1の部分を低マグニチュード係数として、ウェーブレット係数の第2の部分を高マグニチュード係数として分類し、高マグニチュードウェーブレット係数に対する共通の部分積を削除し1826、および/または、低マグニチュードウェーブレット係数に対する乗算動作1502、1506をシフトおよび加算動作1514、1518で代替することによって、減らすことができる。いくつかの例によると、他の方法は、それぞれの変換された値をワードシリアルな態様でアンロードすること1832と、ピクセルをロードすること1822と、変換された値をファーストインファーストアウトFIFOの態様でアンロードすること1832と、をさらに含み得る。部分積は、計算が積の最終和において収束するように最大のウェーブレット係数から開始して計算することができる。他の例によると、他の方法は、さらに、それぞれがDWTを適用する4つの2段パイプライン入力を備えた複数の処理要素1010を用いることを含むことがあり、それぞれの処理要素に対する1対のパイプラインはローパス計算114の専用であり、それぞれの処理要素に対する別の1対のパイプラインはハイパス計算112の専用である。それぞれのパイプライン対の一方のパイプラインには、クロック信号の正のエッジ1004において入力が与えられ、それぞれのパイプライン対の別のパイプラインには、クロック信号の負のエッジ1006において入力が与えられる。更なる例によると、他の方法は、複数の処理要素の出力をクロック信号の正のエッジにおいて第1の加算器1012に提供し、クロック信号の負のエッジにおいて第2の加算器1014に提供することと、変換された値を第1および第2の加算器の出力においてバッファとランダムアクセスメモリRAM1002、1008の一方にワードシリアルなアンローディングのために提供することと、をさらに含み得る。さらに他の例によると、他の方法は、複数の処理要素のローパス出力をクロック信号の正のエッジにおいて第1の加算器1406に提供し、クロック信号の負のエッジにおいて第2の加算器1408に提供することと、複数の処理要素のハイパス出力をクロック信号の正のエッジにおいて第3の加算器1410に提供し、クロック信号の負のエッジにおいて第4の加算器1412に提供することと、をさらに含み得る。第1、第2、第3および第4の加算器1406~1412は、ツリー加算器として動作し得る。本開示は、さらに、ウェーブレットに基づくデータ圧縮を実行するように構成された集積回路IC100を提供する。いくつかの例によると、このICは、1組のピクセルと関連するデータを受け取り、それぞれのピクセルを複数のコアにワードシリアルな態様でロードするように構成された第1のネットワークオンチップNOC104を含み得る。複数のコア110は、それぞれが、離散ウェーブレット変換DWTを実行するために、ハイパス処理要素とローパス処理要素とを備えている。複数のコアは、ローパスフィルタリング動作とハイパスフィルタリング動作との少なくとも一方に対する共通の部分積を識別し、DWTを実行する際にその共通の部分積を削除することができる。ICは、また、それぞれの変換された値をワードシリアルな態様で複数のコアからアンロードするように構成された第2のNOC124を含み得る。他の例によると、ICの複数のコア110は、それぞれのマグニチュードに基づいてフィルタリング動作の結果として生じるウェーブレット係数をソートし、ウェーブレット係数の第1の部分を低マグニチュード係数として、ウェーブレット係数の第2の部分を高マグニチュード係数として分類し、高マグニチュードウェーブレット係数に対する共通の部分積を削除し1826、低マグニチュードウェーブレット係数に対する乗算動作をシフトおよび加算動作で代替し1828、および/または、計算が積の最終和において収束するように、最大のウェーブレット係数から始めてウェーブレット係数を計算することができる。上述した方法と同様に、ICによって実行されるシフトおよび加算動作1518は、正準符号付きディジットCSD符号化を用いて実行され得る。それぞれのコアは、デシメーション要素116をさらに含み得る。第1のNOC104はシリアルインパラレルアウトSIPO構成要素であり得るし、第2のNOC124はパラレルインシリアルアウトPISO構成要素であり得る。さらに、処理要素1010は、4つの2段パイプライン入力を含んでおり、処理要素のそれぞれに対する1方の対のパイプラインがローパス計算専用であり、別の1対のパイプラインはハイパス計算専用である。更なる例によると、それぞれのパイプライン対の一方のパイプラインはクロック信号の正のエッジ1004において入力を受け取り、それぞれのパイプライン対の別のパイプラインはクロック信号の負のエッジ1006において入力を受け取ることができる。処理要素の出力は、クロック信号の正のエッジにおいて第1の加算器1012に提供され、クロック信号の負のエッジにおいて第2の加算器1014に提供され得る。ICは、さらに、ワードシリアルなアンローディングのために第1および第2の加算器から変換された値を受け取るように構成されたバッファまたはランダムアクセスメモリRAM1002、1008を含み得る。処理要素のローパス出力は、クロック信号の正のエッジにおいて第1の加算器1406に提供され、クロック信号の負のエッジにおいて第2の加算器1408に提供され、処理要素のハイパス出力は、クロック信号の正のエッジにおいて第3の加算器1410に提供され、クロック信号の負のエッジにおいて第4の加算器1412に提供され得る。第1、第2、第3および第4の加算器1406~1412は、ツリー加算器として動作し得る。システムの側面でのハードウェアの実装形態とソフトウェアの実装形態との間には、ほとんど相違が残されていない。ハードウェアまたはソフトウェアの使用は、一般にいつもそうではないが、ある状況ではハードウェアとソフトウェアの間の選択が重要になり得るという点でコスト対効果のトレードオフを表す設計上の選択である。本明細書に記載された、プロセスおよび/またはシステムおよび/または他の技術をもたらすことができるさまざまな達成手段がありたとえば、ハードウェア、ソフトウェア、および/またはファームウェア、好ましい達成手段は、プロセスおよび/またはシステムおよび/または他の技術が導入される状況によって異なる。たとえば、実装者が速度と正確性が最も重要であると決定すると、実装者は主にハードウェアおよび/またはファームウェアの達成手段を選択することができる。フレキシビリティが最も重要なら、実装者は主にソフトウェアの実装形態を選択することができる。または、さらに別の代替案として、実装者は、ハードウェア、ソフトウェア、および/またはファームウェアのなんらかの組み合わせを選択することができる。前述の詳細な説明では、ブロック図、フローチャート、および/または例の使用によって、装置および/またはプロセスのさまざまな実施形態を説明してきた。そのようなブロック図、フローチャート、および/または例が1つまたは複数の機能および/または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および/または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組み合わせにより、個別におよび/または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路ASIC、フィールドプログラマブルゲートアレイFPGA、デジタルシグナルプロセッサDSP、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、1つまたは複数のコンピュータ上で動作する1つまたは複数のコンピュータプログラムとしてたとえば、1つまたは複数のコンピュータシステム上で動作する1つまたは複数のプログラムとして、1つまたは複数のプロセッサ上で動作する1つまたは複数のプログラムとしてたとえば、1つまたは複数のマイクロプロセッサ上で動作する1つまたは複数のプログラムとして、ファームウェアとして、あるいは実質上それらの任意の組み合わせとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに/またはソフトウェアおよび/もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。本開示は、本出願に記載されておりさまざまな側面に関する例示として意図されている特定の実施形態に限定されることはない。当業者には明らかである通り、その精神および範囲から逸脱することなく、多くの修正および変更を行うことが可能である。本明細書で列挙されたものに加えて、本開示の範囲に含まれる機能的に均等な方法および装置が、以上の記載から当業者には明らかなはずである。そのような修正および変更は、添付の特許請求の範囲に含まれることが意図されている。本開示は、特許請求の範囲が及ぶ均等物の全範囲と共に、添付の特許請求の範囲の記載によってのみ限定される。本開示は、当然に変動の余地がある特定の方法、材料および構成には限定されないことを理解すべきである。また、用語は特定の実施形態を説明する目的でのみ本明細書において用いられているのであり、限定を意図していないことも理解すべきである。さらに、本明細書に記載された主題のメカニズムをさまざまな形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フロッピー登録商標ディスク、ハードディスクドライブ、コンパクトディスクCD、デジタルビデオディスクDVD、デジタルテープ、コンピュータメモリ、などの記録可能なタイプの媒体、ならびに、デジタル通信媒体および/またはアナログ通信媒体たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなどの通信タイプの媒体が含まれるが、それらには限定されない。本明細書で説明したやり方で装置および/またはプロセスを記載し、その後そのように記載された装置および/またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および/またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインタフェース、およびアプリケーションプログラムのうちの1つもしくは複数、タッチパッドもしくはスクリーンなどの1つもしくは複数の相互作用装置、ならびに/またはフィードバックループおよびコントロールモジュールを含むコントロールシステムたとえば、共通の部分積を判定する、乗算演算をCSD演算に置き換えるなどを含むことを、当業者は理解するであろう。通常のデータ処理システムは、データコンピューティング/通信システムおよび/またはネットワークコンピューティング/通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。本明細書に記載された主題は、さまざまなコンポーネントをしばしば例示しており、これらのコンポーネントは、他のさまざまなコンポーネントに包含されるか、または他のさまざまなコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例示にすぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に関連付けされる。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の2つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに関連付けされていると見ることができる。同様に、そのように関連付けされた任意の2つのコンポーネントは、所望の機能を実現するために、互いに動作可能に接続または動作可能に結合されていると見なすこともでき、そのように関連付け可能な任意の2つのコンポーネントは、所望の機能を実現するために、互いに動作可能に結合できると見なすこともできる。動作可能に結合できる場合の具体例には、物理的に接続可能な、および/もしくは物理的に相互作用するコンポーネント、ならびに/またはワイヤレスに相互作用可能な、および/もしくはワイヤレスに相互作用するコンポーネント、ならびに/または論理的に相互作用する、および/もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。本明細書における実質的にすべての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。さまざまな単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。通常、本明細書において、特に添付の特許請求の範囲たとえば、添付の特許請求の範囲の本体部において使用される用語は、全体を通じてオープンなopen用語として意図されていることが、当業者には理解されようたとえば、用語含むincludingは、含むがそれに限定されないincludingbutnotlimitedtoと解釈されるべきであり、用語有するhavingは、少なくとも有するhavingatleastと解釈されるべきであり、用語含むincludesは、含むがそれに限定されないincludesbutisnotlimitedtoと解釈されるべきである、など。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句少なくとも1つのatleastoneおよび1つまたは複数のoneormoreを使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句1つまたは複数のまたは少なくとも1つのおよびaまたはanなどの不定冠詞を含む場合であっても、不定冠詞aまたはanによる請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に1つのそのような記載を含む実施形態に限定する、ということを示唆していると解釈されるべきではないたとえば、aおよび/またはanは、少なくとも1つのまたは1つまたは複数のを意味すると解釈されるべきである。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されようたとえば、他の修飾語なしでの2つの記載tworecitationsの単なる記載は、少なくとも2つの記載、または2つ以上の記載を意味する。さらに、A、BおよびC、などの少なくとも1つに類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されているたとえば、A、B、およびCの少なくとも1つを有するシステムは、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない。A、B、またはC、などの少なくとも1つに類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されているたとえば、A、B、またはCの少なくとも1つを有するシステムは、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない。2つ以上の代替用語を提示する事実上いかなる離接する語および/または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方oneoftheterms、当該用語のいずれかeitheroftheterms、または両方の用語bothtermsを含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句AまたはBは、AまたはBあるいはAおよびBの可能性を含むことが理解されよう。さらに、本開示の特徴や側面がマーカッシュグループの用語で記載されている場合には、当業者であれば、本開示は、そのマーカッシュグループの個々の構成要素または複数の構成要素からなるサブグループでもまた記載されることを理解すべきである。当業者であれば理解するように、任意のおよびすべての目的について、記載された説明を提供することに関し、本明細書で開示されているすべての範囲は、任意のおよびすべての可能性のある下位の範囲と下位の範囲の組み合わせとに及ぶ。任意のリスト化されている範囲は、同一の範囲が、少なくとも、等しい2分の1、3分の1、4分の1、5分の1、10分の1などに分割されることを十分に説明し可能にしているものとして、容易に認識され得る。非限定的な例として、本明細書で論じられたそれぞれの範囲は、下位の3分の1、中間の3分の1、上位の3分の1などに容易に分割することができる。当業者であれば容易に理解するように、まで、少なくとも、超える、未満などのすべての言葉は、言及された数字を含み、上述したように、以後に下位の範囲に分割することができる範囲にも及ぶ。最後に、当業者に理解されるように、範囲はそれぞれの個別の構成要素を含む。したがって、たとえば、1から3個のセルを有するグループは、1、2または3個のセルを有するグループに及ぶ。同様に、1から5個のセルを有するグループは、1、2、3、4または5個のセルを有するグループに及ぶ、などである。さまざまな態様および実施形態が本明細書で開示されているが、他の態様および実施形態が当業者には明らかになるであろう。本明細書で開示されたさまざまな態様および実施形態は例示の目的のためのものであり、限定を意図したものではなく、真の範囲および精神は、以下の特許請求の範囲によって示されている。"