説明

多次元データを転置することで垂直フィルタと水平フィルタを切替えるためのシステム、データ構造、および方法

【課題】多次元データたとえば画像データをフィルタリングするためのシステム。
【解決手段】プロセッサは、第1データ構造の単一行に水平方向に整列された多次元データ値を結合することで、水平フィルタを実行するための命令を受取ることができる。第2データ構造は、複数の個別アドレス指定可能内部メモリユニットを含んでよい。ロードユニットは、水平方向に整列された値を転置された配列でロードでき、個別アドレス指定可能メモリユニットにおける第2データ構造に、単一列内に垂直方向に整列された値として記憶する。単一列内の転置された各値は、個別アドレス指定可能メモリユニットのそれぞれ互いに異なる一つに別個に記憶され得る。プロセッサは、別個のメモリユニットに独立にアクセスすることで、水平フィルタによって結合用に指定された転置された各値を、独立に操作および結合できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像および画像アプリケーションに関する。より具体的には本発明は、たとえば映像および画像アプリケーションにおいてデータをフィルタリングするための方法に関する。
【背景技術】
【0002】
画像データを処理するために、線形および非線形の幅広いフィルタが用いられる。フィルタは、互いに隣合うピクセルの線形または非線形結合を補間または外挿することで画像のエッジをシャープにし、または画像のシャープなエッジを平滑化することで画質を改善できる。フィルタは、方向性を有してよく、たとえば垂直方向、水平方向、または斜め方向に平滑化または外挿できる。方向性フィルタは、フィルタの特定の方向に整列された互いに隣合うピクセルの値を結合してよい。たとえば垂直フィルタは、1列で垂直方向に整列された互いに隣合うピクセルの値を結合でき、水平フィルタは、1行で水平方向に整列された互いに隣合うピクセルの値を結合できる。
【0003】
動き補償フィルタなどのフィルタは、動きに起因する影響を低減でき、他のフィルタは、画像データの圧縮率または符号化もしくは復号化の精度を改善できる。一例において、画像データを復号化するためにブロック符号化技術が用いられる場合にはマクロブロック間のエッジを平滑にするために、復号化された映像のブロックにデブロッキングフィルタが使用されてよい。別の例において、すべてのピクセル遷移を画像全体で均一に平滑化するために、各ピクセル境界にランニングフィルタが使用され得る。
【0004】
発明と見なされる主題は、明細書の結論部分において具体的に指摘され、明確に請求されている。しかしながら本発明は、作動の組織と方法に関して、対象、特徴および利点と併せ、添付の図面を参照しながら以下の詳細な説明を読むことによって最も良く理解されよう。本発明の特定の実施態様を以下の図面に基づいて説明する。
【0005】
図解を単純で分かりやすくするために、図中に示された要素は、必ずしも縮尺通りに描かれていないことは理解されよう。たとえば分かりやすくするために幾つかの要素の寸法は、他の要素に対して誇張されることがある。さらに、適切と考えられる場合には、対応する要素または類似の要素を示すために図中で参照符号が繰返されることがある。
【0006】
以下の記述において、本発明の種々の側面を記述する。説明の目的のために、本発明の完全な理解を提供すべく、特定の構成および詳細が記される。しかしながら当業者にとって、本発明は、本明細書中に記された特定の詳細なしに実施できることは明白であろう。さらに、本発明を曖昧にしないために、良く知られている特徴は省略するか、単純化することがある。
【0007】
特に別途指摘しない限り、以下の議論から明らかなように、明細書全体を通して「処理」、「コンピューティング」、「計算」、「判定」などの用語を用いた議論は、コンピューティングシステムのレジスタおよび/またはメモリにおいて物理的な量、たとえば電子的な量で表されるデータを、コンピューティングシステムのメモリ、レジスタまたは他の類似の情報記憶ユニット、伝送装置または表示装置における物理的な量として類似に表される他のデータに操作および/または変換するコンピュータ、コンピューティングシステムまたは類似の電子計算装置の動作および/またはプロセスに関係している。
【0008】
コンピュータメモリに記憶されたデータ要素の多次元アレイは、ピクセルの多次元グリッドまたはアレイを含むデジタル画像を表すことができ、各データ要素は、ピクセル値に一意的に対応する。
【発明の概要】
【発明が解決しようとする課題】
【0009】
プロセッサは、内部または外部コンピュータメモリからデータ(たとえばピクセル)値を検索して、プロセッサの内部に存在するか、またはプロセッサによって直接アクセス可能で個別アドレス指定可能メモリユニット、たとえばベクトルレジスタに記憶させることができる。典型的には各ベクトルレジスタは、データアレイの単一行または行セグメントからの一連の値を含むベクトルを記憶する。プロセッサは典型的にはそれぞれ個別アドレス指定可能メモリユニットに記憶された完全なデータセットを一緒に依存的に操作する。しかし、フィルタを使用するためには、プロセッサは、互いに隣合うデータ値を線形結合もしくは非線形結合において、または加重和で結合しなければならず、各値は、互いに異なる重みを持ってよい。互いに異なる重みを持って線形結合または非線形結合において結合された値は、独立に操作され得るので、フィルタは、各計算サイクルにおいて別個のレジスタに記憶された値に対してのみ適用され得る。
【0010】
垂直フィルタは、列内の値を結合し、これらの典型的には別個のレジスタまたはメモリユニットに記憶されるので、プロセッサは、1回のサイクルで垂直方向の値を独立に操作および結合できる。しかしながら、水平フィルタは、典型的には単一行内の値を結合し、これらの値は、同じレジスタまたはメモリユニットに記憶され、それゆえ1回のサイクルで独立に操作してデータを寸法水平方向にフィルタリングすることはできない。
【0011】
従来の画像システムにおいて、この問題を解決して水平フィルタを実行するために、幾つかのプロセッサは、水平ピクセル値の行セグメントをさらに個別レジスタに細分して、各レジスタが個々のピクセルに対する1個の値を記憶して独立に操作されるようにする。この技術は、非常に多数のメモリとアドレス資源を使用し、追加の計算サイクルを加える。他の従来のプロセッサは、線形結合された単一データ値に対して意図された各動作を、同じレジスタまたはメモリユニットに記憶された同じ行からの多数のデータ値の全部で反復的に実行することがある。この技術は、動作が意図されていないデータ値で不必要な動作を実行し、したがってレジスタまたは個別アドレス指定可能メモリユニット内の各データ値に対して意図された動作を実行するために、別個の計算サイクルを要求する。
【課題を解決するための手段】
【0012】
本発明の実施態様は、従来の画像システムの難点を伴わずに水平フィルタに対するデータ値を独立に操作するために、1回の計算サイクルで画像の行セグメントから検索された各データ値を独立にロードまたは記憶するシステム、方法およびプロセッサを対象とする。
【0013】
本発明の実施態様に従い、水平フィルタを実行するプロセッサは、データブロック内の各行のデータ値を検索し、内部メモリに転置された配列で(たとえば行から列に回転して)ロードして記憶する。したがって、従来は、内部メモリ内の単一の個別アドレス指定可能メモリユニットに記憶されて、依存的であって自動的に結合され得ない水平方向に互いに隣合うピクセルまたはその他のデータに対する値が、内部メモリから列として配列されて検索される。それぞれ個別アドレス指定可能メモリユニットは、多次元アレイの単一行に水平方向に配列された要素を記憶し、列内の各要素は、互いに異なる行にあり、再配列された列の各要素は、個別アドレス指定可能メモリユニットのそれぞれ互いに異なる一つに自動的に分離され、そこで独立に操作されてよい。水平フィルタに対するデータ値は、転置された配列で検索し、かつ垂直フィルタに対するデータ値は、転置されない配列で(
これらは既に理想的に配列されている)検索することで、本発明の実施態様に従って動作するプロセッサは、同じ線形結合で結合されるべき互いに隣合うデータ値を、内部プロセッサメモリにおける互いに異なる個別アドレス指定可能メモリユニットに自動的に分離する。したがってプロセッサは、垂直フィルタまたは水平フィルタで結合されたすべての互いに隣合うデータ値を、1回の計算サイクルでそれぞれのレジスタから並行にアクセスして独立に操作できる。
【図面の簡単な説明】
【0014】
【図1】本発明の実施態様に従うシステムの概略的な図解。
【図2】本発明の実施態様の理解に有用な映像データおよび画像データを記憶するためのデータアレイの概略的な図解。
【図3】本発明の実施態様に従ってフィルタリングされる図2Bのデータアレイのデータ構造の概略的な図解。
【図4】本発明の実施態様に従う方法のフローチャート。
【発明を実施するための形態】
【0015】
図1は、本発明の実施態様に従う例示的な装置の概略的な図解を参照する。
装置100は、コンピュータ装置、映像、または画像取込装置または再生装置、セル装置、またはその他の何らかのデジタル装置、たとえば携帯電話、個人用デジタル補助装置(PDA)、ビデオゲームコンソールなどを含んでよい。装置100は、映像データまたは画像データを記録、保存、記憶、処理、編集、表示、投影、受信、送信などして使用または操作するための一連の命令を実行できる装置を含むことができる。装置100は、入力装置101を有することができる。装置100が記録能力を有するときは、入力装置101は、撮像装置、たとえばイメージャ、1個以上のレンズ、プリズムまたはミラーなどを含むカムコーダを備えて、物理的対象の像を、対象から出る光波の反射を介して取込むことができ、および/またはオーディオレコーダ、マイクロホンなどを含む録音装置を備えて、これに投射される音波を記録することができる。
【0016】
装置100が画像処理能力を有するときは、入力装置101は、ユーザが映像または画像処理操作を制御、修正または選択するために、ポインティングデバイス、クリックホイールもしくはマウス、キー、タッチスクリーン、音声認識を用いたレコーダ/マイクロホン、その他の入力コンポーネントを有してよい。装置100は、プロセッサ1によって実行される命令のシーケンスに従って映像データまたは画像データをユーザインタフェースに表示するための出力装置102(たとえばモニター、プロジェクタ、スクリーン、プリンタまたはディスプレイ)を有してよい。
【0017】
例示的な装置100は、プロセッサ1を含むことができる。プロセッサ1は、中央処理装置(CPU)、デジタルシグナルプロセッサ(DSP)、マイクロプロセッサ、コントローラ、チップ、マイクロチップ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)またはその他の何らかの集積回路(IC)、またはその他の何らかの適切な多目的もしくは特定プロセッサまたはコントローラを有してよい。
【0018】
装置100は、外部メモリユニット2とメモリコントローラ3を含んでよい。メモリコントローラ3は、たとえば1個以上のデータバス8を介してプロセッサ1、外部メモリユニット2および出力装置102との間のデータ伝送を制御できる。装置100は、たとえば1個以上のデータバス9を介して出力装置102に表示されるデータ伝送を制御するためのディスプレイコントローラ5を含んでよい。
【0019】
装置100は、記憶ユニット(ストレージユニット)4を備えることができる。記憶ユ
ニット4は、映像データまたは画像データを圧縮して記憶でき、外部メモリユニット2は、映像データまたは画像データを圧縮せずに記憶され得る。しかしながら、圧縮されたデータまたは圧縮されないデータは、いずれのメモリユニットでも記憶されることができ、またデータを1個以上のメモリに記憶するための別の配置構成が使用されてもよい。各圧縮されないデータ要素は、画像または映像フレーム内の1ピクセルに一意的に関連付けられた値を持つことができ、各圧縮されたデータ要素は、1フレーム内のピクセルの値、またはビデオストリームもしくは動画における連続フレームの間のピクセルの値の変動または変化を表すことができる。別途指摘のない限り、本明細書中で使用されるデータ要素は一般に、たとえば単一の画像フレームにおける1ピクセル値またはピクセル成分値(たとえばYUV値またはRGB値)に関係する圧縮されないデータ要素を指し、たとえば連続画像フレームにおけるピクセルの値の間の変化に関係する圧縮されたデータ要素を指すのではない。ピクセルアレイに対する圧縮されないデータは、対応する1個の多次元データアレイ(たとえば図2のうちの2A部分(以下、図2A)と2B部分(以下、図2B)、および図3に示す)において表されてよく、圧縮されたデータは、データストリームまたは一次元(1D)データアレイ(図示せず)として表されてよい。
【0020】
内部メモリユニット14は、直接アクセス可能か、またはプロセッサ1の内部の(物理的に取付けた、もしくは内部に格納された)メモリユニットであることができる。内部メモリユニット14は、短期的メモリユニットであってよく、外部メモリユニット2は、長期的または短期的メモリユニットであってよく、記憶ユニット4は、長期的メモリユニットであってよい。しかしながらこれらのいずれのメモリも長期的メモリユニットまたは短期的メモリユニットであることができる。記憶ユニット4は、1個以上の外部駆動装置、たとえばディスクドライブもしくはテープドライブ、または外部装置、たとえばビデオレコーダ、オーディオレコーダおよび/または画像レコーダ内のメモリを含んでよい。内部メモリユニット14、外部メモリユニット2および記憶ユニット4は、たとえばランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、フラッシュメモリ、キャッシュメモリ、揮発性メモリ、非揮発性メモリまたはその他の適切なメモリユニットもしくは記憶ユニットを含むことができる。内部メモリユニット14、外部メモリユニット2および記憶ユニット4は、各別のメモリユニット(たとえば「オフチップ」)または一体化されたメモリユニット(たとえば「オンチップ」)として実装できる。多層メモリまたはメモリ階層が存在する実施態様において、記憶ユニット4と外部メモリユニット2は、オフチップであってよく、内部メモリユニット14は、オンチップであってよい。たとえば内部メモリユニット14は、密結合メモリ(TCM)、バッファまたはキャッシュ、たとえばL1キャッシュもしくはL2キャッシュを含んでよい。L1キャッシュは、L2キャッシュよりも比較的多くプロセッサ1に一体化され、プロセッサのクロックレートで動作できるのに対し、L2キャッシュは、L1キャッシュよりも比較的少なくプロセッサ1に一体化され、プロセッサのクロックレートとは異なる速度で動作できる。一実施態様において、プロセッサ1は、メモリユニット、たとえば外部メモリユニット2、内部メモリユニット14および/または記憶ユニット4との間でデータの読取り、書込み、および/または伝送を行うためにダイレクトメモリアクセス(DMA)ユニットを使用してよい。その他の、または追加のメモリアーキテクチャーも使用できる。
【0021】
プロセッサ1は、ロードユニット12、マップユニット6および実行ユニット11を含んでよい。プロセッサ1は、外部メモリユニット2、内部メモリユニット14および/または記憶ユニット4からのデータを要求、検索および処理でき、一般にデータで実行された操作のパイプラインフローを制御できる。
【0022】
プロセッサ1は、デジタル映像または画像の1個以上のピクセルをフィルタリングする命令を、たとえばプログラムメモリ(たとえば外部メモリユニット2および/または記憶ユニット4)から受取る。この命令は、フィルタリングされるべきピクセルまたはそのア
ドレスのセット、ピクセルのセットをフィルタリングするために使用される互いに隣合うピクセルの相対的位置、フィルタの加重和の重みまたは式、および/またはフィルタが水平フィルタ、垂直フィルタ、互いに異なる方向を有するフィルタもしくは非方向性フィルタを示してよい。一実施態様において、フラグ値または他のレジスタ値は、フィルタが垂直フィルタ(フラグ値==0)であるか水平フィルタ(フラグ値==1)であるか示すことができる。プロセッサ1は、画像内の各々の順次的なピクセル、行、列、ブロックまたはその他のピクセルのセットで、たとえば全部の画像がフィルタリングされるまで、フィルタを反復的に実行してよい。
【0023】
プロセッサ1は、データ要素を処理するために、複数の個別アドレス指定可能メモリユニット16を含んでよい。個別アドレス指定可能メモリユニット16(たとえばベクトルレジスタ)は、プロセッサ1の内部にあり、内部プロセッサ14の内部に組み込まれているか、または内部プロセッサ14の外部に隔離されてよい。各計算サイクルにおいてロード/記憶ユニット12は、たとえば内部メモリユニット14(または外部メモリユニット2)におけるTCM(密結合メモリ)内のデータ構造の単一行から、順次データ要素のセットまたは「バースト」を検索し、または取り出すことができ、このデータを内部メモリユニット14の個別アドレス指定可能メモリユニット16にロードして記憶できる。代替として、単一行からデータ要素を検索する代わりに、ロード/記憶ユニット12は、各ロード/記憶動作でデータ構造の単一列から順次データ要素を検索してよい。さらに別の実施態様では、各サイクルにおいてロード/記憶ユニット12は、多次元データブロック(たとえば図2Aの多次元データアレイ200)を検索できるが、これはたとえば2010年6月10日に提出され本発明と同じ譲受人に譲渡された同時係属の米国特許出願第12/797727号明細書(特願2011−129228号)で開示されている。
【0024】
従来のベクトルレジスタは、典型的には多次元データ構造の単一行から検索された複数の順次データ値を記憶する。従来のプロセッサは、典型的には同じベクトルレジスタに記憶された各データ値を、同じベクトルの互いに異なる座標のように一緒に処理する。データ構造の列からのデータ値を結合する垂直フィルタを実行するために、従来のプロセッサは、データ構造の互いに異なる行から検索された各データ値を、互いに異なるレジスタに別個に記憶し、ここでデータ値は、同時に独立に操作され得る。しかしながら従来のプロセッサは、典型的には水平フィルタにおいて結合されるべきデータ値をデータ構造の同じ行から検索し、それゆえデータ値を同じレジスタに記憶し、ここではデータ値は、独立に操作され得ない。したがって、水平フィルタリングのために新しい解決が必要とされる。
【0025】
発明の実施態様に従い、プロセッサ1は、水平フィルタを実行し、ロード/記憶ユニット12は、データブロック内の各行のデータ値を、内部メモリユニット14のレジスタまたは個別アドレス指定可能メモリユニット16に転置された配列で(たとえば行から列に回転して)記憶する。したがって画像については、画像の1行水平方向に整列されたピクセル値は、個別アドレス指定可能メモリユニット16における1列に垂直方向に整列される。転置されて垂直方向に整列された各ピクセル値は、互いに異なる行にあり、それゆえ互いに異なる個別アドレス指定可能メモリユニット16に記憶され得る。プロセッサ1は、各々互いに異なるメモリユニット16を独立に操作でき、したがって線形結合における各データ値も同様に1回の計算サイクルで独立に検索および操作され得る。したがってプロセッサ1は、水平フィルタに対する値を、転置された配列で(単一行セグメントに結合されるべき値を垂直方向に整列する)検索し、一方で垂直フィルタに対する値を、転置されない配列で(結合されるべき値は既に垂直方向に整列されている)検索してよく、データ値を自動的に異なるメモリユニット16に分離して、多次元データに垂直フィルタと水平フィルタの双方を適用するために結合された値を同時に独立に操作できる。
【0026】
以下に挙げる例で、本発明の実施態様をより詳細に説明する。この例は、画像の(4x
4)ピクセル小領域を表す(4x4)サブアレイのフィルタリングについて説明しており、各サブアレイは、たとえば次のような(16)ピクセル値pijを含んでいる。(サイズまたは寸法が、これとは異なる他のサブアレイも等しく使用できる)。
【0027】
【表1】

【0028】
垂直フィルタを実行するプロセッサ1は、画像の列セグメントからの垂直方向に互いに隣合うピクセルの値を結合して、各々フィルタリングされたピクセル値を生成できる。たとえば上記のデータブロックの第j列からの互いに隣合う垂直ピクセルの線形結合は、(a)*(p1j)+(b)*(p2j)+(c)*(p3j)+(d)*(p4j)であってよく、ここでa、b、cおよびdは、有理数値または整数値である。水平フィルタを実行するプロセッサ1は、画像の行セグメントからの水平方向に互いに隣合うピクセルの値を結合して、各々フィルタリングされたピクセル値を生成できる。たとえば上記のデータブロックの第i行から水平方向に互いに隣合うピクセル値の線形結合は、(e)*(pi1)+(f)*(pi2)+(g)*(pi3)+(h)*(pi4)であってよく、ここでe、f、gおよびhは、有理数値または整数値である。互いに隣合うピクセル値を垂直フィルタまたは水平フィルタで結合するために、プロセッサ1は、結合された各ピクセル値pijに独立に加重和における互いに異なる重みを乗じることができる。
【0029】
プロセッサ1は、データブロックの要素を行毎に検索してそれぞれ(4)ベクトルレジスタ(たとえば個別アドレス指定可能メモリユニット16)のセットに記憶できる。たとえば
レジスタv1は、ピクセル値p11、p12、p13、p14を記憶できる。
【0030】
レジスタv2は、ピクセル値p21、p22、p23、p24を記憶できる。
レジスタv3は、ピクセル値p31、p32、p33、p34を記憶できる。
レジスタv4は、ピクセル値p41、p42、p43、p44を記憶できる。
【0031】
ベクトル(またはアレイ)プロセッサ1は、典型的には同じ計算をすべての要素、たとえば各ベクトルレジスタviに記憶されているピクセル値pi1、pi2、pi3およびpi4で一緒に実行する。各レジスタは、単一行からのデータ要素を記憶し、垂直フィルタは、単一列からのピクセル値を結合するので、プロセッサ1は、結合された各ピクセル値をそれぞれ互いに異なるレジスタv1、v2、v3、v4に分離できる。このようにしてプロセッサ1は、垂直方向に互いに隣合うピクセル値p1j、p2j、p3jおよびp4jを独立に乗算して結合できる。
【0032】
上述した垂直フィルタの線形結合、たとえば(a)*(p11)+(b)*(p21)+(c)*(p31)+(d)*(p41)を計算するために、プロセッサ1は、各レジスタのピクセル値と相応の重みまたは乗数の積を計算する。たとえば線形結合における項(a)*(p1j)を計算するために、プロセッサ1は、ピクセル値p1jを含むレジスタv1内の値に乗数aを乗算して、ベクトル((a)*(p11)、(a)*(p12)
、(a)*(p13)、(a)*(p14)を生成できる。同様に、線形結合における次の項を計算するために、プロセッサ1は、レジスタv2内の値に乗数bを掛けるというように続いてよい。プロセッサ1は、(4)積から関連する項(a)*(p11)、(b)*(p21)、(c)*(p31)および(d)*(p41)を結合して垂直フィルタに対する線形結合(a)*(p11)+(b)*(p21)+(c)*(p31)+(d)*(p41)を生成できる。各ピクセル値は、互いに異なるレジスタ内に存在するので、プロセッサ1は、同じ(または互いに異なる)計算サイクルで各ピクセル値に互いに異なる乗数を掛けることができる。各レジスタ内で単一の項のみ各線形結合に用いられ、ベクトルプロセッサ1は、ベクトルレジスタのすべての要素で同じ計算を実行するので、各ベクトル計算の副産物として追加の項が生成されよう。線形結合においてピクセルの現在の(第1)列をフィルタリングするために使用されない計算された項、たとえば追加の項(a)*(p12)、(a)*(p13)および(a)*(p14)は、同じ計算サイクルで次のそれぞれ空間的に連続するピクセルの(第2、第3および第4)列をフィルタリングするために使用され得る。
【0033】
水平フィルタに対して、水平方向に整列されたピクセルの値pi1、pi2、pi3およびpi4は、従来単一レジスタviに記憶され、それゆえプロセッサ1は、これらのピクセルを同じ計算サイクルで個別に操作または結合できないであろう。この問題を解決するために、水平フィルタを実行するとき、本発明の実施態様に従って動作するプロセッサ1は、各ピクセル値pijを転置された配列pjiで検索してよい。したがってプロセッサ1は、レジスタ内の画像の(第i)行からのピクセルを表すピクセル値pi1、pi2、pi3およびpi4の各セットを(第i)列として記憶してよい。たとえば
レジスタv1は、ピクセル値p11、p21、p31、p41を記憶できる。
【0034】
レジスタv2は、ピクセル値p12、p22、p32、p42を記憶できる。
レジスタv3は、ピクセル値p13、p23、p33、p43を記憶できる。
レジスタv4は、ピクセル値p14、p24、p34、p44を記憶できる。
【0035】
したがってプロセッサ1は、画像内で水平方向に整列されたピクセルの値を列として再配列でき、それによってこれらの値をそれぞれのレジスタv1、v2、v3、v4に分離できる。このような転置は、垂直フィルタに対するピクセル値を検索するためには必要とされず、これらのピクセル値は、既に垂直方向に配列されていてよい。
【0036】
プロセッサ1は、水平フィルタに対しては内部メモリ14の行から、垂直フィルタに対しては、内部メモリ14の列から互いに隣合うピクセル値を、互いに異なるレジスタ(たとえば個別アドレス指定可能メモリユニット16)間で分離された列として検索および記憶できる。このようにしてプロセッサ1は、1回の計算サイクルで、かつ同じ効率をもって各ピクセル値を検索し、水平フィルタまたは垂直フィルタによって結合され得るように別個のレジスタに独立に記憶できる。フィルタによって結合されるべき各ピクセル値が互いに異なるレジスタに記憶されていることで、プロセッサ1は、水平フィルタおよび垂直フィルタの双方に対して線形(または非線形)結合を計算できる。
【0037】
一般に、プロセッサ1は、何らかの方向フィルタに対して列として再配列されて結合されるべきピクセル値を検索できる(たとえば斜め、ラジアンなど)。このようにして、プロセッサ1は、結合されるべき各ピクセル値を、同じ計算サイクルで独立の操作のために別個のレジスタアドレスに個別に記憶できる。さらに、何らかの非方向性フィルタ(たとえば2次元ブロックに及ぶピクセルなど優勢な方向性を持たないフィルタ)に対して、プロセッサ1は、ピクセル値を独立に、たとえば並行または同時に操作するために、フィルタによって結合されるべき各ピクセル値を同じ計算サイクルで別個のレジスタに記憶できる。
【0038】
従来のプロセッサは、典型的には画像の同じ行から検索されたピクセル値を別個のレジスタに独立に記憶するために追加の(多数の)ステップを用いて、これらの値を水平フィルタに対して独立に操作し、他方、垂直フィルタに対してはピクセル値を1回の計算サイクルで検索して独立に記憶する。これとは対照的に、本発明の実施態様に従って動作するプロセッサ1は、いずれのフィルタも同じ効率で適用するために、水平フィルタまたは垂直フィルタによって結合されるべき各ピクセル値を1回の計算サイクルで検索して別個のレジスタに独立に記憶できる。
【0039】
本発明の実施態様のその他の利点は、フィルタリングに使用されるプログラムとメモリ資源を少なくすることである。従来の画像システムでは、水平フィルタと垂直フィルタは、2つの互いに異なる図式で動作する2個の別個のフィルタであり、これらの図式は、たとえば行セグメントまたは、列セグメントにおいて結合されるべき互いに隣合うピクセルの互いに異なる空間的関係を識別する。したがって、従来の水平フィルタと垂直フィルタは、別個の命令図式およびメモリ資源を使用する。しかしながら本発明の実施態様に従い、単にフィルタが動作するデータを転置することで、プロセッサは、自動的に垂直フィルタと水平フィルタの実行を切り替える。すなわち、ピクセル値が転置されると、水平フィルタは、垂直フィルタと等しくなるのである。したがって水平フィルタリングと垂直フィルタリングの双方に対して単一のフィルタを使用することができ、それによってプログラムとメモリ資源を2の倍数で少なくできる。一般に、プロセッサは、何らかのフィルタで結合される何らかのピクセルのセットを内部メモリのレジスタユニットの列に再配列して独立に操作されるようにできる。したがって何らかの方向のフィルタおよび/または非方向性フィルタに対するピクセルを結合するために単一のフィルタが使用されてよく、それによってプログラムとメモリ資源の使用を画像で使用される互いに異なるフィルタの数に等しい倍数だけ少なくできる。ある実施態様において、画像を処理するために使用されるプログラムは、オーバーヘッドおよび/または計算またはメモリ資源を増やすことなく、方向性フィルタまたは非方向性フィルタの数を増すことができる。
【0040】
図2Aは、本発明の実施態様の理解に有用な映像データおよび画像データを記憶するための多次元データアレイ200を概略的に図解する。
データアレイ207は、水平フィルタが実行されるべき(nxm)データブロックである。データアレイ200は、データアレイ207と、データアレイ207で水平フィルタを実行するために使用される互いに隣合うピクセル値とを含む(nx(m+q))データブロックであってよい。水平フィルタに対する線形結合は、データアレイ207における各ピクセル値を、同じ行でこのピクセル値に先行する項および/またはこのピクセル値に後続する項を含め、水平方向に互いに隣合う項(q)と結合できる。線形結合は、フィルタリングされるべき値それ自体を含んでも含まなくてもよく、たとえばそれぞれ(q+1)または(q)ピクセル値を結合できる。
【0041】
図2Aの例では、データアレイ207は、(8x4)データアレイ207をフィルタリングするための(8x9)データブロックであり、線形結合は、(1)フィルタリングされるべきピクセル値と、(q)=(5)水平方向に互いに隣合うピクセル値、たとえば(2)先行ピクセル値および(3)後続ピクセル値とを有する(q+1)=(6)ピクセル値を含んでよい。たとえばフィルタ式は、(q+1)=(6)項の線形加重和、たとえば(x1-5*x2+20*x3+20*x4-5*x5+x6+16)/32であってよく、ここでxiは、レジスタvi内のピクセル値ベクトルである。
【0042】
データアレイ200および207は、他のサイズまたは寸法を有してよく、線形結合は、同じ行からの任意の数の項またはピクセル値、互いに隣合うピクセル値を含んでよく、その場合にフィルタリングされるべきピクセル値に先行するピクセル値のみ、後続するピ
クセル値のみ、先行するピクセル値と後続するピクセル値の双方を含み、フィルタリングされるべきピクセル値を含み、または含まず、これらは順次列挙されてもされなくてもよいことが理解されよう。一実施態様において、水平フィルタに対する線形結合において結合されるピクセル値の数(q)または(q+1)を増すと、データアレイ207を水平方向にフィルタリングするために使用されるデータアレイ200の幅寸法(m+q)が増してよい。同様に、垂直フィルタに対して結合されるピクセルの数を増すと、データアレイ207を垂直方向にフィルタリングするために使用されるデータアレイ200の高さ寸法が増す。図2Aの例は、水平動き補償フィルタに対して使用されてよく代替としてデブロッキングフィルタなど他のタイプのフィルタに対して使用されるか、または使用されるように調整されてよい。
【0043】
発明の実施態様に従い、本明細書において、第1メモリユニットで初期配列を有する図2Aのデータアレイ200からピクセル値を検索してロードし、ピクセル値を第2メモリユニットに転置された配列で(たとえば図2Bの転置されたデータアレイ200’として)記憶することを含む水平フィルタリングのための機構が設けられている。プロセッサは、初期データアレイ200の同じ行から検索された各ピクセル値が、転置されたデータアレイの互いに異なる行に、それゆえ内部メモリユニットの互いに異なるレジスタに記憶され、水平フィルタ動作に対して同時に独立に操作され得るようにできる。ある実施態様において、水平フィルタに対する命令を受取り、垂直フィルタに対する命令を受取らないときは、プロセッサは、転置された検索動作を実行するように指示されてよい。しかしながら各レジスタに記憶されたピクセル値が行に代えて列から検索される別の実施態様では、プロセッサは、垂直フィルタに対する命令を受取り、水平フィルタに対する命令を受取らないときは相応に実行するように指示されてよい。
【0044】
図2Bは、本発明の実施態様に従う水平フィルタを実行するため図2Aのデータアレイ200から転置されたデータアレイ200’を,概略的に図解する。
水平フィルタを実行するプロセッサは、図2Aのデータアレイ200内の初期位置またはインデックスを有するピクセル値を、図2Bのデータアレイ200’内の相対的に転置された新しい位置またはインデックスに転置できる。たとえばデータアレイ200内の各ピクセルpijは、データアレイ200’内の新しい位置pjiに再配列され得る。したがって(nx(m+q))データアレイ200は、((m+q)xn)データアレイ200’に転置されてよく、データアレイ200の各(第n)行の要素は、データアレイ200’の(第n)列として再配列される。たとえばデータアレイ200の第1行のピクセル値(00)−(08)は、データアレイ200’の第1列として再配列され得る。図2Aと図2Bの例では、(8x9)データアレイ200は、(9x8)データアレイ200’に転置されてよい。
【0045】
プロセッサは、ピクセル値を個々に、またはグループで、またはサブアレイ201−206で検索および転置できる。データアレイ200からの各サブアレイ201−206は、転置された配列で再配列されて、データアレイ200’のサブアレイ201’−206’を形成できる。ある実施態様においてサブアレイ201−206は、(8)または(16)ロード/記憶サイクルで行毎に検索されてよい。別の実施態様では、米国特許出願第12/797727号明細書で開示されているように、完全な各サブアレイ201−206が単一の(1)ロード/記憶サイクルで検索され得る。
【0046】
転置されたデータアレイ200’は、内部メモリ(たとえば図1に示す個別アドレス指定可能メモリユニット16)のレジスタ208に行毎に記憶されてよく、各レジスタ208は、ピクセルの値を単一行として配列またはロードされて記憶する。水平フィルタにおいて結合されたデータアレイ200内のピクセル値の行は、転置されたデータアレイ200’における列としてロードされ、各レジスタ208は、単一行としてロードされたピク
セル値を記憶するので、結合されたピクセル値の各々は、(m+q)=(9)レジスタ208、v0−v8に別個に記憶されてよい。プロセッサは、別個のレジスタ208に記憶されたピクセル値を独立に操作することでフィルタを使用できる。プロセッサは、別個のアドレス経由で各レジスタ208に独立にアクセスできる。水平フィルタの各線形結合に使用されるすべてのピクセル値は、それぞれ別個のレジスタ208に記憶されるので、プロセッサは、このようなすべてのピクセル値を独立に検索し、乗算し、結合できる。
【0047】
各レジスタ208は、行として配列されたデータ要素を記憶し、垂直フィルタは、単一列から検索されたピクセル値を結合するので、同じ線形結合で結合されたピクセル値の各セットは、自動的に別個のレジスタ208、v0−v8にロードされ得る。したがって垂直フィルタに対しては、プロセッサは、ピクセル値をデータアレイ200’において元の転置されない配列で記憶できる。
【0048】
図3は、本発明の実施態様に従い映像データおよび画像データにフィルタを摘要するためのデータアレイを、概略的に図解する。プロセッサは、データアレイ200’を使用してデータアレイ207’をフィルタリングしてよく、データアレイ207’は、水平フィルタにとって図2Aの元のデータアレイ207を転置したもの(それゆえフィルタリングの等効物)である。
【0049】
図2Aと図2Bを参照して説明したように、結合されるべき互いに隣合うピクセル値(たとえば水平フィルタと垂直フィルタに対してそれぞれ図2Aのデータアレイ200の水平方向または垂直方向に整列されたピクセル値)は、図2Bのデータアレイ200’の単一列に配列される。したがってプロセッサは、線形結合において結合されるべき各ピクセル値を、垂直フィルタと水平フィルタの双方に対して別個の個別アドレス指定可能レジスタ208に記憶できる。一般にプロセッサは、垂直フィルタまたは水平フィルタ以外の非方向性フィルタまたは方向性フィルタで結合された別個のピクセル値を、それぞれ互いに異なるレジスタ208に分離してもよい。
【0050】
水平フィルタと垂直フィルタの双方を実行するために、プロセッサは、データアレイ200’の各列セグメントで(q+1)垂直方向に整列されたピクセル値を結合して同じ列内の各ピクセルをフィルタリングしてよい。プロセッサは、一度に多数のピクセルをフィルタリングできる。一実施態様において、プロセッサは、データアレイ200’内の各(1xn)行のピクセルをフィルタリングするために、各((q+1)xn)データアレイ209’を、それぞれ((q+1)x1)列セグメントの互いに隣合う値と一緒に使用してよい。たとえばプロセッサは、第1(6x8)データアレイ209’を使用して、データアレイ200’の第1行210をフィルタリングしてよい。プロセッサは、第2(6x8)データアレイ209’(第1データアレイ209’の1行下で垂直方向に順次的な((q+1)xn)データアレイ)を使用して、データアレイ200’内の次の順次的なピクセル行211をフィルタリングできる、というように続く。プロセッサは、全データアレイ207’がフィルタリングされるまで、データアレイ200’の各々の順次的な((q+1)xn)データアレイ209’を使用して、データアレイ207’の順次的な各行210、211、212および213でフィルタリングを継続できる。総じて、(mxn)データアレイ207’内のすべての(m)行を順次的な((q+1)xn)データアレイ209’と一緒にフィルタリングするために、全((m+q)xn)データアレイ200’が使用されてよい。
【0051】
プロセッサは、データアレイ207’とデータアレイ200’の互いに隣合うピクセル値とのフィルタリングされた結合であるフィルタリングされたデータアレイ214’を生成できる。フィルタリングされたデータアレイ214’の各行のフィルタリングされたピクセル値は、内部メモリで別個のレジスタ208、たとえばレジスタv9−v12に記憶
されてよい。
【0052】
フィルタリングされたデータアレイ214’が生成されたら、プロセッサは、フィルタリングされたピクセル値を記憶および使用できる。垂直フィルタが使用されて元のデータアレイ207と200がレジスタ208に対して転置されなかった場合にはプロセッサは、レジスタ208の配列においてフィルタリングされたピクセル値を記憶および使用できる。しかしながら、水平フィルタが使用されて、図2Aの元のデータアレイ207および200が図2Bおよび図3のレジスタ208に転置されたら、プロセッサは、転置されたデータアレイ207’と200’をそれらの元の転置されない配列(たとえば次の動作のために必要とされる配列に依存して)に再配列してよい(または再配列しなくてよい)。転置マッピングを逆にすると他の転置マッピングになるので、転置されたフィルタリングされたデータアレイ214’を、転置されないフィルタリングされたデータアレイ214に戻すために、同じ転置マッピングが使用されてよい。したがって、ちょうどプロセッサが転置マッピングを使用してデータアレイを垂直フィルタリングではなく水平フィルタリング用にレジスタにロードできるように、プロセッサは、同じ転置マッピングを使用して垂直方向ではなく水平方向にフィルタリングされたレジスタからフィルタリングされたデータアレイを伝送できる。
【0053】
一実施態様において、ピクセル値を転置するためにマッピングユニット6が使用されてよい。別の実施態様において、図2Bのレジスタ208は、幾つかのアドレスを含む一連のアドレスポートを有してよく、これらのアドレスポートのアドレスは、それ自体で再配列または転置されている。そのような実施態様では、アドレスポートのアドレスは、ピクセル値がその中に伝送される順序で配列されてよい。たとえば第1レジスタが第1ピクセル値、第2ピクセル値、第3ピクセル値などに対してインデックスを付けられ、またはアドレス指定される代わりに、第1レジスタは、第1ピクセル値、第10ピクセル値、第20ピクセル値などに対してインデックスを付けられてよい。したがってプロセッサ1は、図2Aのデータアレイ200からのピクセル値を、図2Bの複数のレジスタ208の順次アドレスに従って自動的に転置でき、別個のマッピングユニットは、必要とされない(ただし、マッピングユニットは使用されてよい)。
【0054】
本発明の実施態様は、(8x4)の2Dデータアレイにおけるデータをフィルタリングすることに関して記述されているが、任意の方形サブアレイ、たとえば(3x5)、(4x4)、(4x6)、(8x8)、(4x16)、(16x16)、または任意の整数(m)および(n)で任意の(mxn)サブアレイが使用されてよいことが理解されよう。さらに、2Dデータアレイ(たとえば図3のフィルタデータアレイ209’)をフィルタリングするために使用されるデータブロックのサイズは、((q+1)xn)=(6x8)サブアレイであることが示されているが、任意の(sxn)サイズのサブアレイが使用されてよい。また、3Dマトリックスまたはテンソルデータ構造によって表され得る、より高次の、たとえば3次元(3D)のデータアレイが使用されてよいことも理解されよう。一例において輝度データ要素は、2Dデータアレイで表されてよく、色度データ要素は、2Dまたは3Dデータアレイで表されてよい。
【0055】
本発明の実施態様は、別の、もしくは互いに異なる次元の行、列またはデータアレイ、線形または非線形フィルタ結合において結合されたピクセル値の数、元の、または転置されたデータアレイの配列、個別アドレス指定可能レジスタ208の数または配列、および計算サイクルを使用できることが理解されよう。
【0056】
ある実施態様において、プロセッサは、最初にデータ要素を内部メモリ(たとえば図1の内部メモリユニット14)における図2Aのデータアレイ200に記憶してよく、そしてプロセッサは、ピクセル値をレジスタ(たとえば図1のレジスタユニット16)におけ
る図2Bのデータアレイ200’に再配列、マッピング、転置、順序付けなどによって再配置できる。他の実施態様において、プロセッサは、ピクセル値を外部メモリ(たとえば図1の外部メモリユニット2)における図2Bのデータアレイ200’に記憶して、ピクセル値を内部メモリ(たとえば図1の内部メモリユニット14)における図2Bのデータアレイ200’に転置できる。しかしながらその他のメモリ配置も使用されてよい。
【0057】
図4は、本発明の実施態様に従い多次元データをフィルタリングする方法のフローチャートである。
ステップS400において、プロセッサ(たとえば図1のプロセッサ1)は、(たとえば図1の外部メモリ2または記憶ユニット4における)プログラムメモリから命令を受取って、多次元データセットの1個以上の値、たとえばデジタル映像または画像中のピクセルをフィルタリングできる。この命令は、フィルタリング用に結合されるべきピクセルの値またはアドレスを示してよい。命令は、フィルタが水平フィルタであるか垂直フィルタであるか、および/またはフィルタが他の方向性フィルタであるか非方向性フィルタであるかを示すことができる。
【0058】
多次元の第1データ構造は、多次元データセットの値を表すことができる。水平フィルタを実行する命令は、第1データ構造(たとえば図2Aのデータアレイ200)の単一行に水平方向に整列された値の結合を指定するのに対し、垂直フィルタを実行する命令は、第1データ構造の単一列で垂直方向に整列された値の結合を指定できる。一般に、何らかのフィルタを実行する命令は、第1データ構造の何らかの任意のパターンにおける値の結合を指定できる。
【0059】
ステップS410において、プロセッサは、第1データ構造から第2データ構造(たとえば図2Bのデータ構造200’)に結合するように指定された値をロードできる。第2データ構造は、複数の個別アドレス指定可能メモリユニット(たとえば図2Bおよび図3のレジスタ208)を含んでよい。一実施態様において、第1データ構造は、内部メモリに記憶され、第2データ構造は、同じ内部メモリまたは互いに異なる内部メモリの個別アドレス指定可能メモリユニットに記憶されてよい(たとえばそれぞれ図1の内部メモリユニット14と個別アドレス指定可能メモリユニット16)。代替として、両データ構造が内部メモリか外部メモリのどちらか一方に記憶されてよく、またはあるデータ構造は、外部メモリに記憶され、別のデータ構造は、内部メモリに記憶されてもよい。個別アドレス指定可能メモリユニットは、互いに異なるアドレスおよび/またはアドレスポート経由で個別にアクセス可能であってよい。一実施態様において、値はピクセル値であってよく、データ構造は、画像データまたは映像データを表してよいが、他のタイプの多次元データも使用できる。
【0060】
水平フィルタに対しては、第1データ構造の同じ行から検索された値を、水平フィルタリング用に個別に操作するべく別個の個別アドレス指定可能メモリユニットに分離するために、プロセッサは、値を転置された配列で検索できる。したがって、第1データ構造の単一行において水平方向に整列された値は、第2データ構造の単一列に垂直方向に整列され得る。
【0061】
垂直フィルタに対しては、値は、既に単一列に記憶されているから、垂直方向に整列する値は不必要であろう。
したがってプロセッサは、水平フィルタ用の値を転置された配列で検索でき、垂直フィルタ用の値を転置されない配列で検索して、フィルタによって別個の個別アドレス指定可能メモリユニットに結合される値が自動的にロードされ得る。フラグ値またはレジスタ値は、フィルタが垂直フィルタ(フラグ値==0)であるか、水平フィルタ(フラグ値==1)であるかを示す一実施態様において、プロセッサは、フラグの値に基づく配列(たと
えばフラグ値==0に対しては転置されない配列、フラグ値==1に対しては転置された配列)で値を検索できる。
【0062】
ステップS420において、プロセッサは、互いに隣合う値の重み付けられた線形結合または非線形結合を用いて値を、たとえばフィルタ命令によって定義されたように結合できる。フィルタによって結合されるべき値は、互いに異なる個別アドレス指定可能メモリユニットに別個に記憶されるので、プロセッサは、各々の値を独立に乗算して結合できる。生成されるフィルタリングされた値は、たとえば利用可能な個別アドレス指定可能メモリユニットで第3データ構造(たとえば図3のフィルタリングされたデータアレイ214’)に記憶されてよい。
【0063】
ステップS430において、プロセッサは、第3データ構造からのフィルタリングされた値を伝送し、記憶し、処理するなど使用できる。垂直フィルタが使用された場合には第2データ構造と第3データ構造は、第1データ構造と同じ元の配列を有してよく、プロセッサは、フィルタリングされた値を個別アドレス指定可能メモリユニットの最終配列において使用できる。しかしながら、水平フィルタが使用された場合には第2データ構造と第3データ構造は、第1データ構造の元の配列から転置され、プロセッサは、第2データ構造と第3データ構造からの値を転置された配列でロードまたは伝送して、たとえば個別アドレス指定可能メモリユニットの外部に存在する1個以上のメモリユニットに記憶してよく(またはしなくてもよい)。一実施態様において、既に転置されている構造を転置することでフィルタリングされた値をそれらの元の転置されない配列に再配列できる。転置された配列から戻すためにプロセッサは、他の転置マッピングを第3データ構造に適用して、フィルタリングされた値をそれらの元の配列で生成できる(たとえば図3に示す転置されていないフィルタリングされたデータアレイ214)。 プロセッサは、多次元デー
タの各々の順次的なデータアレイが各反復に対する第1データ構造によって表されるようにして、フィルタのステップS400−S430を、たとえば多次元データの全アレイ(たとえば全画像フレームまたは全音声ファイル)がフィルタリングされるまで反復実行してよい。
【0064】
ステップS440において、出力装置(たとえば図1の出力装置102)は、フィルタリングされた多次元データを出力してよい。たとえば出力装置は、フィルタリングされたピクセル値を有する画像またはフィルタリングされた音声値を有する音声ファイルを表示してよい。
【0065】
他の動作または一連の動作が用いられてよい。
本発明の実施態様は、映像データまたは画像データに関して記述されているが、互いに異なるデータタイプに関連して同じかまたは類似のデジタル構造を有する何らかのデータも使用できることは、当業者によって理解されるべきである。たとえば音声データ、グラフィックデータ、マルチメディアデータ、または何らかの多次元データが使用され得る。
【0066】
本発明の幾つかの実施態様は、値を1つのデータアレイから他のデータアレイに転置するためのシステム、データ構造および方法について記述しているが、本発明の別の実施態様では、たとえば値それ自体を実際に動かしたり再位置決めしたりすることなく、元のデータ構造に互いに異なるアドレス図式を等効に割り当てることは、当業者によって理解されるべきである。
【0067】
値を検索するためのバーストが記述され、値を行毎に記憶するためのレジスタが記述されているが、代替として列毎に動作するバーストとレジスタが記述されてよいことは理解されよう。このような実施態様において、水平フィルタにおいて結合されるように水平方向に整列された値は、自動的に転置されない配列でロードされ、垂直フィルタで結合され
るように垂直方向に整列された値は、転置された配列でロードされる。
【0068】
線形フィルタリングは、コンボリューションと呼ばれる動作を使用できることには気づかれよう。コンボリューションは、各出力ピクセルが互いに隣合うピクセル値の加重和であるような動作であり、重みのマトリックスは、「コンボリューションカーネル」または「フィルタ」と呼ばれる。コンボリューションカーネルは、180度回転した相関カーネルである。回転は、転置とは異なるため、フィルタまたは相関カーネルの回転が上述した転置とは異なること、さらにコンボリューションは、相関カーネル(ピクセルアレイ上の演算子)を回転させ、ピクセルアレイそれ自体は回転させないことは、当業者によって理解されるべきである。
【0069】
本発明の実施態様は、プロセッサまたはコントローラ(たとえば図1のプロセッサ1)によって実行されるときに本明細書中に開示された方法を実施する命令を符号化、包含または記憶する物品、たとえばコンピュータまたはプロセッサ可読媒体、コンピュータまたはプロセッサ記憶媒体、たとえばメモリ、ディスクドライブ、USBフラッシュメモリを含むことができる。
【0070】
以上に示された記述された特定の実施態様は、本発明に関連した多くの配分システムにとって有用であることが明らかであるが、本発明の別の修正も当業者に想到されよう。そのような修正は、すべて添付の特許請求の範囲によって定義される本発明の範囲と精神の内部に存在するものと考量される。

【特許請求の範囲】
【請求項1】
多次元の第1データ構造をフィルタリングするためのフィルタリング方法であって、前記フィルタリング方法は、
前記第1データ構造の単一行に、水平方向に整列された値を結合することで、水平フィルタを実行するための命令を受取ることと;
前記第1データ構造の単一行から、少なくとも結合されるべき値を転置された配列でロードして、内部メモリにおける多次元の第2データ構造の単一列として記憶することであって、前記単一列内の転置された各値は、前記内部メモリにおける複数の個別アドレス指定可能メモリユニットのそれぞれ互いに異なる一つに別個に記憶されることと;
転置された各値を記憶する別個の個別アドレス指定可能メモリユニットにアクセスすることで、前記水平フィルタによって結合用に指定された各値を独立に操作および結合することと
を含むことを特徴とする、フィルタリング方法。
【請求項2】
前記フィルタリング方法はさらに、
前記第1データ構造の単一列に垂直方向に整列された値を結合することで垂直方向にフィルタリングするための命令を、受取ることと;
前記第1データ構造の単一列から、結合されるべき値を同じ転置されない配列でロードして、前記内部メモリにデータ構造の単一列として記憶することと
を含む、請求項1記載のフィルタリング方法。
【請求項3】
前記フィルタリング方法はさらに、
前記第1データ構造の何らかの任意のパターンで配置された値を結合することでフィルタリングの命令を受取ることと;
前記第1データ構造から結合されるべき値をロードして、前記内部メモリにおけるデータ構造の単一列として記憶することと
を含む、請求項1記載のフィルタリング方法。
【請求項4】
前記フィルタは、値の線形結合を用いて指定された値を結合する、
請求項1記載のフィルタリング方法。
【請求項5】
前記フィルタは、値の非線形結合を用いて指定された値を結合する、
請求項1記載のフィルタリング方法。
【請求項6】
フラグ値またはレジスタ値は、フィルタが水平フィルタまたは垂直フィルタであるかを示す、
請求項1記載のフィルタリング方法。
【請求項7】
前記第1データ構造は、密結合メモリに初期配列で記憶され、
前記第2データ構造は、個別アドレス指定可能メモリユニットに転置された配列で記憶され、
前記密結合メモリと前記個別アドレス指定可能メモリユニットとは、同じプロセッサの内部に存在するか、またはプロセッサに直接アクセス可能である、
請求項1記載のフィルタリング方法。
【請求項8】
前記フィルタリング方法はさらに、前記第2データ構造から値を転置された配列で伝送して、前記個別アドレス指定可能メモリユニットの外部に存在する1個以上のメモリユニットに記憶することを含む、
請求項1記載のフィルタリング方法。
【請求項9】
前記値は、ピクセル値であり、
前記データ構造は、画像データまたは映像データを表し、
前記フィルタリング方法はさらに、フィルタリングされたピクセル値を有する画像を表示することを含む、
請求項1記載のフィルタリング方法。
【請求項10】
多次元の第1データ構造をフィルタリングするためのプロセッサであって、前記プロセッサは、
前記プロセッサに直接アクセス可能な複数の個別アドレス指定可能メモリユニットを有する内部メモリと;
前記第1データ構造の単一行に水平方向に整列された値を検索して、前記水平方向に整列された値を転置された配列で前記個別アドレス指定可能メモリユニットにおける多次元の第2データ構造の単一列に垂直方向に整列して記憶するためのロードユニットと
を含み、
単一列内の転置された各値は、前記内部メモリにおける複数の前記個別アドレス指定可能メモリユニットのそれぞれ互いに異なる一つに別個に記憶され、前記プロセッサは、転置された各値を記憶する別個の前記個別アドレス指定可能メモリユニットにアクセスすることで、水平フィルタによって結合用に指定された各値を独立に操作および結合する
ことを特徴とする、プロセッサ。
【請求項11】
前記プロセッサが、前記第1データ構造の単一列に垂直方向に整列された値を結合することで、画像を垂直方向にフィルタリングするための命令を受取ると、
前記ロードユニットは、前記第1データ構造の単一列から結合されるべき値を同じ転置されない配列でロードして、前記内部メモリにおけるデータ構造の単一列として記憶する、
請求項10記載のプロセッサ。
【請求項12】
前記プロセッサが、前記第1データ構造の何らかの任意のパターンで配置された値を結合することで、フィルタリングの命令を受取ると、
前記ロードユニットは、前記第1データ構造から結合されるべき値をロードして、前記内部メモリにデータ構造の単一列として記憶する、
請求項10記載のプロセッサ。
【請求項13】
前記ロードユニットは、前記第2データ構造から値を転置された配列で伝送して、前記個別アドレス指定可能メモリユニットの外部に存在する1個以上のメモリユニットに記憶する、
請求項10記載のプロセッサ。
【請求項14】
前記プロセッサは、前記第2データ構造から値を転置された配列でロードして、前記個別アドレス指定可能メモリユニットの外部に存在する1個以上のメモリユニットに記憶する、
請求項10記載のプロセッサ。
【請求項15】
多次元データ構造をフィルタリングするためのフィルタリングシステムであって、前記フィルタリングシステムは、
多次元データの値を記憶するための第1メモリユニットにおける多次元の第1データ構造と;
前記第1データ構造の単一行に水平方向に整列された値を結合することで、水平フィルタを実行するための命令を受取るプロセッサと;
プロセッサに直接アクセスできる複数の個別アドレス指定可能メモリユニットを有する内部メモリユニットである内部メモリにおける、多次元の第2データ構造と;
前記第1データ構造の単一行から少なくとも結合されるべき値を転置された配列でロードして、前記内部メモリの複数の前記個別アドレス指定可能メモリユニットに、前記第2データ構造の単一列として記憶するためのロードユニットと
を含み、
前記単一列の転置された各値が、前記内部メモリにおける複数の前記個別アドレス指定可能メモリユニットの互いに異なる一つに別個に記憶され、さらに前記プロセッサは、転置された各値を記憶する別個の個別アドレス指定可能メモリユニットにアクセスすることで、水平フィルタによって結合用に指定された各値を独立に操作および結合することを特徴とする、フィルタリングシステム。

【図1】
image rotate

【図4】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2012−9025(P2012−9025A)
【公開日】平成24年1月12日(2012.1.12)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−137289(P2011−137289)
【出願日】平成23年6月21日(2011.6.21)
【出願人】(509000482)チェバ ディー.エス.ピー.リミテッド (10)
【氏名又は名称原語表記】CEVA D.S.P.LTD.
【Fターム(参考)】