(57)【要約】  本発明の実施例は、2次元（2D）データをフィルタリングする装置である。第１のフィルタは、複数のフィルタ・サイズについて第１の次元において画素ブロックにおける2次元(2D)データを処理する。ブロックは帯形状を有する。レジスタ・ファイルは、プログラム可能な情報に基づいて2次元データを記憶する。第２のフィルタは、記憶2次元データを第２の次元においてフィリタリングして、プログラム可能な情報に基づいて静的モードと動的モードとのうちの１つにおいてフィルタ出力を生成する。静的モードは、帯形状についてフィルタ出力を固定された状態にし、動的モードはフィルタ出力を画素単位で選択する。フィルタ出力は、第１のフィルタ出力及び第２のフィルタ出力を含む。
2007521549.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
複数のフィルタ・サイズについて第１の次元において画素ブロックにおける2次元(2D)データを処理する第１のフィルタを備え、前記ブロックは帯形状を有し、
前記第１のフィルタに結合されて、プログラム可能な情報に基づいて前記２Dデータを記憶するレジスタ・ファイルと、
該レジスタ・ファイルに結合されて、前記記憶２Dデータを第２の次元においてフィルタリングして、前記プログラム可能な情報に基づいて静的モード及び動的モードのうちの１つにおいてフィルタ出力を生成する第２のフィルタとを備え、前記静的モードは前記帯形状について前記フィルタ出力を固定された状態のままにし、前記動的モードは前記フィルタ出力を画素単位で選択し、前記フィルタ出力は第１のフィルタ出力及び第２のフィルタ出力を含むことを特徴とする装置。
【請求項２】
請求項1記載の装置であって、前記第１のフィルタが、
データを水平方向に加算して部分的なフィルタ出力を生成する加算器を備えることを特徴とする装置。
【請求項３】
請求項1記載の装置であって、前記第２のフィルタが、
前記第１のフィルタ出力を生成する低次フィルタと、
前記第２のフィルタ出力を生成する高次フィルタとを備えることを特徴とする装置。
【請求項４】
請求項1記載の装置であって、
前記２Dデータは、前記プログラム可能な情報によって、単一成分入力形式とデュアル成分入力形式と3成分入力形式とのうちの１つと、単一列入力モードとデュアル列入力モードと4列入力モードとのうちの１つとの組み合わせに編成されることを特徴とする装置。
【請求項５】
請求項3記載の装置であって、
前記フィルタ・サイズは、ソース・サイズと、3x3サイズと、5x5サイズと、7x7サイズと、9x9サイズと、11x11サイズとを備えることを特徴とする装置。
【請求項６】
請求項1記載の装置であって、更に、
前記プログラム可能な情報を備えるプログラム可能なレジスタ群を備えることを特徴とする装置。
【請求項７】
請求項1記載の装置であって、更に、
前記プログラム可能な情報によって前記第１のフィルタ出力と前記第２のフィルタ出力とのうちの少なくとも１つに対する後処理動作を行う後処理装置を備えることを特徴とする装置。
【請求項８】
請求項1記載の装置であって、
前記後処理動作が正規化とブレンディング動作とのうちの一方であることを特徴とする装置。
【請求項９】
請求項6記載の装置であって、前記プログラム可能な情報が、
正規化選択と、ブレンディング動作の重み値と、高フィルタ・モードと、低フィルタ・モードと、読み書き優先度と、ブレンド選択と、省電力選択と、リセット選択と、付加データと、帯形状の高さと、入力形式と、入力モードと、デスティネーション・レジスタと、ソース・レジスタと、メモリ・アドレスと、メモリ・データとのうちの少なくとも１つを含むことを特徴とする装置。
【請求項１０】
請求項1記載の装置であって、更に、
ソース・レジスタに結合されて、前記第１のフィルタ用の前記２Dデータを保持するメモリと、
該メモリに結合されて、該メモリのアドレス指定を行うことを特徴とする装置。
【請求項１１】
方法であって、
複数のフィルタ・サイズについて第１の次元において第１のフィルタによって画素ブロックにおける2次元(2D)データを処理する工程を備え、前記ブロックは帯形状を有し、
更に、プログラム可能な情報に基づいて前記２Dデータをレジスタ・ファイル内に記憶する工程と、
前記記憶２Dデータを第２の次元において第２のフィルタによってフィルタリングして、前記プログラム可能な情報に基づいて静的モード及び動的モードのうちの１つにおいてフィルタ出力を生成する工程とを備え、前記静的モードは前記帯形状について前記フィルタ出力を固定された状態のままにし、前記動的モードは前記フィルタ出力を画素単位で選択し、前記フィルタ出力は第１のフィルタ出力及び第２のフィルタ出力を含むことを特徴とする方法。
【請求項１２】
請求項11記載の方法であって、前記第１のフィルタによって処理する工程が、
データを水平方向に加算して部分的なフィルタ出力を生成する工程を備えることを特徴とする方法。
【請求項１３】
請求項11記載の方法であって、前記第２のフィルタによって処理する工程が、
前記第１のフィルタ出力を低次フィルタによって生成する工程と、
前記第２のフィルタ出力を高次フィルタによって生成する工程とを備えることを特徴とする方法。
【請求項１４】
請求項11記載の方法であって、前記２Dデータを処理する工程が、
前記プログラム可能な情報によって、単一成分入力形式とデュアル成分入力形式と3成分入力形式とのうちの１つと、単一列入力モードとデュアル列入力モードと4列入力モードとのうちの１つとの組み合わせに編成される前記２Dデータを処理する工程を備えることを特徴とする方法。
【請求項１５】
請求項13記載の方法であって、
前記フィルタ・サイズは、ソース・サイズと、3x3サイズと、5x5サイズと、7x7サイズと、9x9サイズと、11x11サイズとを備えることを特徴とする方法。
【請求項１６】
請求項11記載の方法であって、更に、
前記プログラム可能な情報を、プログラム可能なレジスタ群によって備える工程を備えることを特徴とする方法。
【請求項１７】
請求項11記載の方法であって、更に、
後処理装置によって、前記プログラム可能な情報によって前記第１のフィルタ出力と前記第２のフィルタ出力とのうちの少なくとも１つに対する後処理動作を行う工程を備えることを特徴とする方法。
【請求項１８】
請求項11記載の方法であって、
前記後処理動作が正規化とブレンディング動作とのうちの一方を行う工程を備えることを特徴とする方法。
【請求項１９】
請求項16記載の方法であって、前記プログラム可能な情報を備える工程が、
正規化選択と、ブレンディング動作の重み値と、高フィルタ・モードと、低フィルタ・モードと、読み書き優先度と、ブレンド選択と、省電力選択と、リセット選択と、付加データと、帯形状の高さと、入力形式と、入力モードと、デスティネーション・レジスタと、ソース・レジスタと、メモリ・アドレスと、メモリ・データとのうちの少なくとも１つを備える工程を備えることを特徴とする方法。
【請求項２０】
請求項11記載の方法であって、更に、
前記第１のフィルタ用の前記２Dデータをメモリに保持する工程と、
アドレス・ジェネレータを用いて該メモリのアドレス指定を行う工程とを備えることを特徴とする方法。
【請求項２１】
システムであって、
ホスト・プロセッサと、
ホスト・バスと、
該ホスト・バスに結合されて、2次元(2D)データをデータ・ストリームにおいて受信するメディア・プロセッサとを備え、該メディア・プロセッサはアクセラレータを含み、該アクセラレータは、
複数のフィルタ・サイズについて第１の次元において画素ブロックにおける前記2Dデータを処理する第１のフィルタを備え、前記ブロックは帯形状を有し、
該アクセラレータは更に、
前記第１のフィルタに結合されて、プログラム可能な情報に基づいて前記２Dデータを記憶するレジスタ・ファイルと、
該レジスタ・ファイルに結合されて、前記記憶２Dデータを第２の次元においてフィルタリングして、前記プログラム可能な情報に基づいて静的モード及び動的モードのうちの１つにおいてフィルタ出力を生成する第２のフィルタとを備え、前記静的モードは前記帯形状について前記フィルタ出力を固定された状態のままにし、前記動的モードは前記フィルタ出力を画素単位で選択し、前記フィルタ出力は第１のフィルタ出力及び第２のフィルタ出力を含むことを特徴とするシステム。
【請求項２２】
請求項21記載のシステムであって、前記第１のフィルタが、
データを水平方向に加算して部分的なフィルタ出力を生成する加算器を備えることを特徴とするシステム。
【請求項２３】
請求項21記載のシステムであって、前記第２のフィルタが、
前記第１のフィルタの出力を生成する低次フィルタと、
前記第２のフィルタの出力を生成する高次フィルタとを備えることを特徴とするシステム。
【請求項２４】
請求項21記載のシステムであって、
前記２Dデータは、前記プログラム可能な情報によって、単一成分入力形式とデュアル成分入力形式と3成分入力形式とのうちの１つと、単一列入力モードとデュアル列入力モードと4列入力モードとのうちの１つとの組み合わせに編成されることを特徴とするシステム。
【請求項２５】
請求項23記載のシステムであって、
前記フィルタ・サイズは、ソース・サイズと、3x3サイズと、5x5サイズと、7x7サイズと、9x9サイズと、11x11サイズとを備えることを特徴とするシステム。
【請求項２６】
請求項21記載のシステムであって、前記アクセラレータは更に、
前記プログラム可能な情報を備えるプログラム可能なレジスタ群を備えることを特徴とするシステム。
【請求項２７】
請求項21記載のシステムであって、前記アクセラレータは更に、
前記プログラム可能な情報によって前記第１のフィルタ出力と前記第２のフィルタ出力とのうちの少なくとも１つに対する後処理動作を行う後処理装置を備えることを特徴とするシステム。
【請求項２８】
請求項21記載のシステムであって、
前記後処理動作が正規化とブレンディング動作とのうちの一方であることを特徴とするシステム。
【請求項２９】
請求項26記載のシステムであって、前記プログラム可能な情報が、
正規化選択と、ブレンディング動作の重み値と、高フィルタ・モードと、低フィルタ・モードと、読み書き優先度と、ブレンド選択と、省電力選択と、リセット選択と、付加データと、帯形状の高さと、入力形式と、入力モードと、デスティネーション・レジスタと、ソース・レジスタと、メモリ・アドレスと、メモリ・データとのうちの少なくとも１つを含むことを特徴とするシステム。
【請求項３０】
請求項21記載のシステムであって、前記アクセラレータは更に、
ソース・レジスタに結合されて、前記第１のフィルタ用の前記２Dデータを保持するメモリと、
該メモリに結合されて、該メモリのアドレス指定を行うことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施例は、画像処理の分野に関し、特に、画像処理用フィルタ・アーキテクチャに関する。
【背景技術】
【０００２】
画像処理は、マルチメディア通信、マシン・ビジョン、パターン認識及び人工知能において多くの重要なアプリケーションを有する。一般的なアプリケーションでは、画像、すなわち映画の画像系列が、前処理、セグメント化及び高位の解釈を含む処理連鎖において処理される。前処理段階は、コンテキスト依存性を有し、後続段階のために画像のエンハンス又は、データ量の削減を行う処理を含む。そのような一般的な処理の１つとして、フィルタリング処理がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
既存の画像フィルタリング手法はいくつかの欠点を有する。まず、処理速度は、リアルタイム速度又はその近くで画像を処理するのに十分速いものでない。第２に、それらの手法は柔軟でない傾向にあり、種々のフィルタ・サイズに対応しないことがあり得る。第３に、フィルタリング処理にパラメータを構成するうえでのプログラマビリティ・サポートがほとんどない。第４に、通常の画像プロセッサにおける他の構成要素との一体化のサポートがない。
【課題を解決するための手段】
【０００４】
本発明は、本発明の実施例を例証するのに用いる以下の記載及び添付図面を参照することによって最もよく分かり得る。
【０００５】
本発明の実施例は、2次元(2D)データをフィルタリングする装置である。第１のフィルタは、複数のフィルタ・サイズについて第１の次元で画素ブロックにおける2次元(2D)データを処理する。ブロックは帯形状を有する。レジスタ・ファイルは2次元データをプログラム可能な情報に基づいて記憶する。第２のフィルタは、記憶2次元データを第２の次元でフィルタリングして静的モードと動的モードとの１つにおいてプログラム可能な情報に基づいてフィルタ出力を生成する。静的モードはフィルタ出力を帯形状について固定状態にし、動的モードはフィルタ出力を画素単位で選択する。フィルタ出力は、第１のフィルタ出力及び第２のフィルタ出力を含む。
【０００６】
以下の記載では、数多くの特定の詳細を表す。しかし、本発明の実施例は、これらの特定の詳細なしで実施し得ることとする。他の場合には、本明細書の理解を分かりにくくしないために周知の回路、構造及び手法を表していない。
［発明を実施するための最良の形態］
【実施例】
【０００７】
図1は、本発明の一実施例を実施できるシステム100を示す図である。システム100は、入力画素ストリーム105と、メディア・プロセッサ110と、メモリ130と、バス140と、ホスト・プロセッサ150と、ホスト・メモリ160と、入出力(I/O)インタフェース170と、ネットワーク・インタフェース180と、大容量記憶装置190とを含む。
【０００８】
入力画素ストリーム105は、画像センサや他の処理エレメントによって備えられる画像データを表す。画像データは、ディジタル複写機、スキャナ、カメラ、プリンタや何れかの他の多機能周辺装置から来るものであり得る。メディア・プロセッサ110は、画像処理や他のメディア処理に最適化された高性能プロセッサである。メディア・プロセッサ110は、データ駆動の共有レジスタ・アーキテクチャを実施する。一実施例では、メディア・プロセッサ110は、16ビットのデータ経路を有し、260MHzを超えるコア周波数を有する。このプロセッサは、画像信号プロセッサ（ISP）115などのいくつかの画像信号プロセッサを含む。これらのISPはプログラム可能なポートを介してお互いに接続される。ISP115は、いくつかの処理エレメント（PE）と、汎用レジスタ（GPR）と、内部ランダム・アクセス・メモリ（RAM）と、局所データ・メモリへのアクセスを省力化するメモリ・コマンド・ハンドラ（MCH）と、いくつかのハードウェア・アクセラレータとを含む。各ISPは特定のタスクについて最適化され、ISPにおけるハードウェア・アクセラレータがその最適化を備える。ハードウェア・アクセラレータには、(1)2次元可変タップ・フィルタと、(2)2値テキスト符号器/復号器と、(3)ハフマン符号器/復号器との３つのタイプがある。アクセラレータ120は、2次元可変タップ・フィルタ（VTF）として用いる。
【０００９】
メモリ130は高速データ記憶を備える。このメモリは、デュアル・データ・レート（DDR）の同期ダイナミック・ランダム・アクセス・メモリ（SDRAM）として実施し得る。一実施例では、DDRメモリ・ポートは、1ギガバイト/秒を超えるデータ転送帯域を備える。バス140はメディア・プロセッサ110とホスト・システムとの間のインタフェースを備える。一実施例では、バス140は、33/66MHz周波数で動作する周辺装置相互接続（PCI）バスである。
【００１０】
ホスト・プロセッサ150は、組み込みプロセッサ、モバイル・プロセッサ、マイクロコントローラ、ディジタル信号プロセッサ、スーパースカラ・コンピュータ、ベクター・プロセッサ、単一命令複数データ（SIMD）コンピュータ、複合命令セット・コンピュータ（CISC）、縮小命令セット・コンピュータ(RISC)、超長命令ワード（VLIW）やハイブリッド・アーキテクチャなどの何れかのタイプのアーキテクチャの中央処理装置を表す。
【００１１】
ホスト・メモリ160は、システム・コード及びデータを記憶する。ホスト・メモリ160は通常、ダイナミック・ランダム・アクセス・メモリ（DRAM）又はスタティック・ランダム・アクセス・メモリ（SRAM）によって実施される。ホスト・メモリ160は、本発明の一実施例を実施するプログラム・コード又はプログラム・コード部分を含み得る。ホスト・メモリ160内の画像処理プログラムは、メディア・プロセッサ110への、マイクロコード、レジスタ構成、レジスタ初期化、割り込みサービス等のダウンロードを含むタスクすなわち処理をプロセッサ150に、プロセッサ150によって実行される場合に行わせる命令を備え得る。ホスト・プロセッサ150は、画像データのアップロード及びダウンロードを行うインタフェースも備え得る。
【００１２】
I/Oインタフェース170は、I/Oデバイスに対するいくつかの、インタフェース、すなわち、ユニバーサル・シリアル・バス(USB)、米国電気電子技術者協会(IEEE)1394、並列ポート、オーディオ（例えば、電話）等などのバス・インタフェースを備える。ネットワーク・インタフェース180はネットワークへのインタフェースを備える。ネットワークは、インターネット、イントラネット、エクストラネット、ワイヤレス・フェデリティ(Wi-Fi)、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク（WAN）等などの何れかの適切なネットワークであり得る。
【００１３】
大容量記憶装置190は、コード、プログラム、ファイル、データ、データベース、アプリケーションやオペレーティング・システムなどのアーカイブ情報を記憶する。大容量記憶装置190は、コンパクト・ディスク（CD）ROM192、ディジタル・ビデオ/多用途ディスク(DVD)193、フロッピー（登録商標）・ドライブ194、ハード・ドライブ196や、テープ・ドライブ、テープ・ライブラリ、冗長ディスクアレイ（RAID）等などの何れかの他の磁気記憶装置や光記憶装置を含み得る。大容量記憶装置190は、マシンアクセス可能な媒体を読み取る機構を備える。マシンアクセス可能な媒体は、以下に説明するタスクを行うコンピュータ判読可能コードを含み得る。
【００１４】
図2は、本発明の一実施例によるアクセラレータ120を示す図である。アクセラレータ120は、バス215と、プログラム可能なレジスタ群210と、ソースGPR220と、内部バス225と、RAM230と、第１のフィルタ240と、レジスタ・ファイル250と、第２のフィルタ260と、後処理装置270と、デスティネーションGPR280とを含む。
【００１５】
アクセラレータ120は、線形係数を備える、三角形の2次元高速平滑化フィルタとして実施し得る。アクセラレータは、2次元の、3x3(F3)、5x5(F5)、7x7(F7)、9x9（F9）及び11x11(F11)のフィルタリングを行うことができる。当業者に公知であるように、他のフィルタ・サイズも対応し得る。
【００１６】
バス215は、メディア・プロセッサにおける主要な装置全てをアクセラレータ120に接続する。このバスは、ホスト・プロセッサ150が、プログラム可能なレジスタ210をプログラムし、RAM230をアクセスすることを可能にする。プログラム可能なレジスタ210の群は、アクセラレータ120の動作を設定し、構成するようプログラム可能な情報を含むいくつかのレジスタを含む。
【００１７】
ソースGPR220は、内部バス225を介して入力をRAM230に備えるのに用いる汎用レジスタの１つである。RAM230は、画像データをGPR240から受信し、列単位で記憶するバッファ・メモリである。当業者に公知であるように、データは行単位で記憶してもよい。RAM230はバス215を介してアクセス可能である。RAMは、RAM0とRAM1との2つの同一のメモリ・バンクを、帯域を増加させるよう有する。各メモリ・バンクは、1Kx16であり、読み書き処理中の選択にバス215によって用いられるそれ自身のアドレスを有する。RAM230における読み書き処理は、プログラム可能なレジスタ210における優先度設定によって制御される。アドレス・ジェネレータ235は、第１のフィルタ240にデータを備えるよう適切なアドレス指定をRAM230に備える。
【００１８】
第１のフィルタ240すなわちステージIフィルタ240は、種々のフィルタ・サイズについて第１の次元において画素ブロックにおける2次元(2D)データを処理する。ブロックは幅と帯形状とを有する。一実施例では、第１の次元は水平方向の次元である。レジスタ・ファイル250は、プログラム可能なレジスタ210の群によって備えられるプログラム可能な情報に基づいて2次元データを記憶する。例えば、レジスタ・ファイルは、プログラム可能な情報におけるバンク選択ビットに応じて記憶データを第２のフィルタ260に備える。更に、レジスタ・ファイル250において記憶されるデータ群が第２のフィルタに送られる順序は、ルミナンス/赤緑青（RGB）データ群が処理されているかクロミナンス/RGBデータ群が処理されているかによって変わってくる。
【００１９】
第２のフィルタ260すなわちステージIIフィルタ260は、記憶2次元データを第２の次元においてフィルタリングして、プログラム可能な情報に基づいて静的モードと動的モードとのうちの１つにおいてフィルタ出力を生成する。要は、第１のフィルタ250と第２のフィルタ260は、各次元を別個に処理するよう分離可能なフィルタを実施している。一実施例では、第２の次元は垂直方向の次元である。フィルタ出力は、第１のフィルタ出力及び第２のフィルタ出力を含む。第２のフィルタ260は、第１のフィルタ出力および第２のフィルタ出力を同時に生成するよう２つの同一の装置を有する。一方の装置は低次フィルタ用のものであり、他方の装置は高次フィルタ用のものである。一実施例では、低次フィルタ出力及び高次フィルタ出力は、19ビットであり、更に処理するよう後処理装置270に送られる。静的モードはフィルタ出力を帯形状について固定の状態にし、動的モードはフィルタ出力を画素単位で選択する。
【００２０】
後処理装置270は、プログラム可能な情報によって第１のフィルタ出力と第２のフィルタ出力とのうちの少なくとも１つに対して後処理動作を行う。一実施例では、後処理動作は、正規化と、ブレンディング動作と、データ付加動作等のうちの何れか１つであり得る。デスティネーションGPR280は、後処理装置270によって処理されるデータを、内部バス225を介して受信する。
【００２１】
図3は、本発明の一実施例による画素ブロックを示す図である。画素ブロックは、幅Hと帯形状の高さHとを有するブロックを示す。データは列方向に読み取られる。
【００２２】
画素データが列形式で入力される一方、画素の種々の成分の順序は構成可能である。入力構成は、単一列形式又は4列形式をサポートし得るものであり、更に、単一成分のタイプ、2成分のタイプ及び３成分のタイプもサポートし得る。Lをクロミナンス・データとし、R及びGを赤色成分及び緑色成分とし、a及びbを、クロミナンス・データのサブサンプル成分とする。入力構成を表１Aに示し得る。
【００２３】
【表１】
2007521549.tif 000003
【００２４】
画素ブロックは、4列及び3成分の形式における交番している列データLaLb,LaLb,…LaLbを示す。帯形状の高さは１から64までプログラム可能である。
【００２５】
単一列・単一成分モードの場合、実施されるフィルタにかかわらず、11番目の列までのデータが利用可能なものとして存在する場合、フィルタは6番目の列から始める。よって、出力は、〔x−10〕*〔y−10〕のサイズであり、x*yは元のサイズである。
【００２６】
単一列・デュアル成分モードの場合、実施されるフィルタにかかわらず、21番目の列までのデータが利用可能なものとして存在する場合、フィルタは11番目の列から始める。よって、出力は、〔x−20〕*〔y−10〕のサイズであり、x*yは元のサイズである。
【００２７】
単一列・3成分モードの場合、実施されるフィルタにかかわらず、23番目の列までのデータが利用可能なものとして存在する場合、フィルタは13番目の列から始める。よって、
23列が利用可能なものとして存在する場合、13番目の列に相当する第１のデータ群が出力され、これは、〔x−22〕によって表す。この式は、第１の出力列についての初期状態の間のみあてはまる。しかし、その後は、14番目の列に相当する次の出力データ群が、26番目の列までのデータが利用可能なものとして存在する場合に出力されることになる。そして更に、アクセラレータに更なるデータがもう書き込まれることなく、15番目の列で形成されるフィルタに相当する別の出力データ列が出力されることになる。よって、ここから先の出力パターンは、〔w−23〕*〔y−10〕のサイズであり、x*yは元のサイズであり、w=〔x−x  mod  2〕である。データがないためにフィルタは13番目の列まで始めることができないので12列が初めに切断され、10列が終わりに切断される。
【００２８】
4列・単一成分モードの場合、実施されるフィルタにかかわらず、11番目の列までのデータが利用可能なものとして存在する場合、フィルタは6番目の列から始める。しかし、入力は4列タイプのものであるので、列番号は４単位で増え得る。よって、12列が利用可能なものとして存在する場合、フィルタは6番目の列から始める。よって、出力は、〔w−10〕*〔y−10〕のサイズであり、x*yは元のサイズであり、w=〔x−x  mod  4〕である。
【００２９】
4列・3成分モードの場合、実施されるフィルタにかかわらず、23番目の列までのデータが利用可能なものとして存在する場合、フィルタは13番目の列から始める。しかし、入力は4列タイプのものであるので、列番号は４単位で増え得る。よって、24列が利用可能なものとして存在する場合、フィルタは13番目の列から始める。よって、出力は、〔w−22〕*〔y−10〕のサイズであり、x*yは元のサイズであり、w=〔x−x  mod  4〕である。
【００３０】
この記載の要約を表１Bに表す。
【００３１】
【表２】
2007521549.tif 000004
【００３２】
図4Aは、本発明の一実施例によるプログラム可能なレジスタ群210を示す図である。群210は、MREG0  410と、MREG1  420と、MREG2  430と、MREG3  440と、MREG4  450と、RAM0  460と、RAM1  461とを含む。各レジスタは、16ビットであり、ホスト・プロセッサ150のアドレス空間にマッピングすることができる。
【００３３】
MREG0  410は、正規化選択（NORM）と、重みと、高フィルタ・モードと、低フィルタ・モードと、読み書き優先度と、ブレンド選択と、省電力選択（ON）と、リセット（SR）とを含む。正規化選択は、フィルタ出力を正規化又は非正規化に設定するのに用いる。正規化がアサートされる場合、正規化出力がデスティネーションGPRに送られる。さもなければ、非正規化低フィルタ出力がデスティネーションGPRに送られる。重みはブレンディング重みを規定するのに用いる。表2に示すように２つの重みビットに相当する４つのブレンディング・タイプがある。FLは低フィルタ出力であり、FHは高フィルタ出力である。ブレンドは、基本的に、25%の倍数で増やされる。例えば、01のブレンド・オプションの場合、出力は、FLの75%にFHの25%を加えたものである。
【００３４】
【表３】
2007521549.tif 000005
【００３５】
図2に示す第２のフィルタ260において、高フィルタ・モードのビットは高フィルタ装置のフィルタ実施形態を選択し、低フィルタ・モードのビットは低フィルタ装置のフィルタ実施形態を選択する。各フィルタは、これらのモード・ビットに応じて動的又は静的であり得る。一実施例では、選択を表3に示す。
【００３６】
【表４】
2007521549.tif 000006
【００３７】
読み書き優先度ビットは、図2に示すRAM230における読み取りと書き込みとの間の優先度を判定する。読み書きビットは、表4に規定している。
【００３８】
【表５】
2007521549.tif 000007
【００３９】
書き込みが高い優先度を有する場合、RAM書き込み動作は、空間が十分ないか利用可能なデータがもう存在しない状態まで続くことになる。次に、読み取り動作を行い得る。読み取りが高い優先度を有する場合、書き込みは、読み取りを維持するのに十分なだけ許される。
【００４０】
ブレンド・ビットは、第２のフィルタ出力がブレンドされるか否かを判定する。第２のフィルタ260は第１のフィルタ出力及び第２のフィルタ出力を同時に出力する。ブレンド・ビットがアサートされる場合、後処理装置270がこれらの２つの出力を、バンク選択情報によって併せてブレンドし、正規化し、デスティネーションGPRに送る。ブレンド・ビットが否定される場合、両方のフィルタ出力はブレンドされず、正規化後デスティネーションGPRに直接送られる。
【００４１】
省電力選択ビットは、レセットされるとアクセラレータ120におけるサブ装置を全てストールし、RAMは省電力モードに入る。このビットがオンにされると、アクセラレータ120はその通常動作を再開する。リセット・ビットSRはアクセラレータ120全体をリセットする。
【００４２】
MREG1  420は、DVSET1及びSWTH  HGHTを含む。DVSET1ビットは、デスティネーションGPRのCVビットを設定するのに用いられる。SWTH  HGHTビットは、帯形状の高さを判定する。高さは１から64までの範囲に及び得る。
【００４３】
MREG2  430は、入力形式と、入力モードと、GPR  DST選択と、GPR  SRC選択とを含む。入力形式ビットは、表5に示すように、入力画像データが単一成分形式か、2成分形式か、3成分形式かを規定する。
【００４４】
【表６】
2007521549.tif 000008
【００４５】
入力モード・ビットは、表6に示すように、入力が単一列にあるか、デュアル列にあるか、4列にあるかを規定する。
【００４６】
【表７】
2007521549.tif 000009
【００４７】
GPR  DSTビットは、後処理装置270の出力が書き込まれる汎用レジスタ280を判定する。GPR  SRCビットは、RAM230のソースとして用いられる汎用レジスタを判定する。
【００４８】
MREG3  440は、バス215が読み書きを行うアドレスを記憶する。RAM  ADDRを用いたRAM230に対する各アクセスの後、アドレスが増やされる。MREG4  450は、列完了状態中に用いる対象のDV設定ビットと、列完了イネーブル（CC_EN）ビットとを記憶する。列処理の終わりに、CC_ENビットがアサートされる場合、列における最後の出力には（MREG1  420において）DVSET1ではなくDVSET2が付加される。CC＿ENビットが否定される場合、DVSET1は常に付加される。
【００４９】
RAM0  460は、RAM0バンクとの間での読み書きを行うデータをRAM230に記憶する。RAM1  470は、RAM230のRAM1バンクとの間で読み書きを行うデータを記憶する。RAM0/RAM1バンクの位置は、MREG3  440にある。
【００５０】
図４Bは、本発明の一実施例による、ソースGPRの形式480を示す図である。形式480は、入力画素データ及びバンク選択情報を含む。
【００５１】
形式480は、RAM230に読み込まれるソースGPRの形式である。入力画素データは下位8ビットを占める一方、バンク選択情報は上位8ビットを占める。バンク選択情報は、フィルタ・モード及び重みを含む。重みビットは、表2に示すブレンディング重みを判定するのに用いる。フィルタ・モード・ビットは、実施されるフィルタをこのビットが判定する動的バンク選択モードの間に用いる。動的バンク選択モードは、MREG0  410におけるフィルタ・モード・ビットを、表3に示す「111」に設定することによって選択される。静的バンク選択モードと動的バンク選択モードとの2つのタイプのバンクがある。
【００５２】
静的バンク選択モードでは、各フィルタ次（すなわち、低又は高）は、特定のバンク選択に設定され、帯形状の終わりまで変わらない状態にされる。各次（すなわち、低又は高）のバンク選択はお互いに無関係である。例えば、「F11」を低次フィルタに割り当て、「SRC」を高次フィルタに割り当て得る。各フィルタ次のバンク選択は、MREG0  410における低フィルタ・モード・ビット及び高フィルタ・モード・ビットによって制御される。
【００５３】
動的バンク選択モードでは、入力データとともに供給されるフィルタ・モードは低/高フィルタにおいて実施されるフィルタを制御する。この場合、実施されるフィルタは入力データとともに変わる。このモードは、MREG0  410におけるフィルタ・モード・ビットを「111」として設定することによって選択される。
【００５４】
アクセラレータ120における各フィルタ次は、静的バンク選択モード又は動的バンク選択モードにおいて動作可能である。これによって、表7に示すように４つの別々のシナリオが生まれる。
【００５５】
【表８】
2007521549.tif 000010
【００５６】
ケース1では、各次のフィルタは静的なものである。低次フィルタ及び高次フィルタにおいて実施されるフィルタは、お互いに独立している。各フィルタ次のバンク選択は、MPEG0  410における低フィルタ・モード・ビット及び高フィルタ・モード・ビットによって制御される。ブレンド・モードの場合、低次フィルタは静的なものであるので、MREG0  410において規定される静的な重みビットが用いられる。
【００５７】
ケース2では、低次フィルタは動的バンク選択モードにある一方、高次フィルタは静的モードにある。このケースでは、低次フィルタにおいて実施されるフィルタは供給される入力データとともに変わる一方、高次フィルタは帯形状全体にわたって同じ状態のままである。よって、低次フィルタ及び高次フィルタにおいて実施されるフィルタは、お互いに独立している。このケースでは、MREG410における低フィルタ・モード・ビットは動的モードにおいて動作するよう「111」に設定される一方、高次フィルタにおいて用いる静的バンク選択は、MREG0  410における高フィルタ・モード・ビットによって判定される。表8は、入力データにおけるフィルタ・モード・ビット〔15:13〕の種々のビット値について低次フィルタにおいて実施されるフィルタを示す。ブレンド・モードの場合、低次フィルタは動的なものであるので、入力データとともに供給される動的重みビットが用いられる。
【００５８】
【表９】
2007521549.tif 000011
【００５９】
ケース3では、低次フィルタは静的バンク選択モードにある一方、高次フィルタは動的モードにある。このケースでは、高次フィルタにおいて実施されるフィルタは供給される入力データとともに変わる一方、高次フィルタは帯形状全体にわたって同じ状態に留まる。よって、低次フィルタ及び高次フィルタにおいて実施されるフィルタはお互いに独立している。このケースでは、MREG0  410における高フィルタ・モード・ビットは動的モードにおいて動作するよう「111」に設定される一方、低次フィルタにおいて用いる静的バンク選択は、MREG0  419における低フィルタ・モード・ビットによって判定される。表9は、入力データにおけるフィルタ・モード・ビット〔15:13〕の別々のビット値について高次フィルタにおいて実施されるフィルタを示す。なお、入力データにおけるフィルタ・モードが同じ場合に低次フィルタにおいて実施されるフィルタと高次フィルタにおいて実施されるフィルタは異なる。ブレンド・モードの場合、低次フィルタは静的なものであるので、MREG0  410に規定される静的重みビットが用いられる。
【００６０】
【表１０】
2007521549.tif 000012
【００６１】
ケース4では、高フィルタ次も低フィルタ次も動的モードにある。このケースでは、高次フィルタ及び低次フィルタにおいて実施されるフィルタは供給される入力データによって変わる。よって、このケースにのみ、低次フィルタ及び高次フィルタにおいて実施されるフィルタはお互いに関係している。このケースの場合、MREG0  410における高フィルタ・モード・ビットも低フィルタ・モード・ビットも「111」に設定される。表10は、入力データにおけるフィルタ・モード・ビット〔15:13〕の種々のビット値について低次フィルタ及び高次フィルタにおいて実施されるフィルタを示す。ブレンド・モードの場合、低次フィルタは動的なものであるので、入力データとともに供給される動的重みビットが用いられる。
【００６２】
【表１１】
2007521549.tif 000013
【００６３】
図5は、本発明の一実施例による第１フィルタ240を示す図である。第１フィルタ240は加算器510を含む。
【００６４】
加算器510は、データを水平方向にフィルタリングする。この加算器は、2つの入力を出力とともに併せて加算して部分的なフィルタ出力を生成する再帰的加算器である。各フィルタ出力は、ソース（SRC）から始まり、F3、F5、F7、F9、及びF11と続く、各クロック・サイクル後に順次、次から次に利用可能である。
【００６５】
一行のデータが、列番号1から列番号32までの、L1、a1、L2、b1、L3、a2、L4、b2、L5、a3、L6、b3、L7、a4、L8、b4、L9、a5、L10、b5、L11、a6、L12、b6、L13、a7、L14、b7、L15、a8、L16、b8、の画素を上記順序で含んでいるとする。追加する対象のデータ系列を3つのケースについて示す。系列対520及び525は、LデータがL7を中心画素として有する場合のものである。系列対530及び535は、a4が中心画素の場合のものである。系列対540及び545は、b4が中心画素の場合のものである。
【００６６】
第１フィルタは更に、相当する画素のバンク選択情報をレジスタ・ファイル250に送る。
【００６７】
図6は、本発明の一実施例による後処理装置270を示す図である。後処理装置270は、乗算器620及び625と、バレル・シフタ・マルチプレクサ630及び635と、レジスタ640と、マルチプレクサ650及び655と、加算器660、670、675及び680と、マルチプレクサ685及び690とを含む。
【００６８】
後処理動作は、正規化及びブレンディング動作を含む。正規化データ出力の場合、低次フィルタ出力610及び高次フィルタ出力615を、フィルタリングに応じて適切な定数522および527によって乗算子620及び627を乗算することによって正規化し、更に、バレル・シフタ630及び635によってシフトして、11ビットの正規化データを得る。用いる定数は表11に示す。正規化データは更に、後データ処理装置におけるモード・レジスタMREG0設定によって併せて補間される。例えば、MREG0(2)が「1」である場合、第２のフィルタ260からの２つのフィルタ出力が併せて補間される。さもなければ、「0」であった場合、両方のフィルタ出力が補間なしで送出される。MREG0(2)が「1」である場合、第２フィルタからの幅11ビットの２つのフィルタ出力が、BNKSELデータ、すなわち、BNKSEL（4:3）において送られる重みビットに応じて補間される。補間後、最終出力は8ビットに、偏りなく丸められる。
【００６９】
MREG0(2)がレセットされる場合、第２のフィルタ260からの幅11ビットの２つのフィルタ出力は、8ビットに、偏りなく丸められ、低次フィルタ装置が下位8ビットを占め、高次フィルタ装置が上位8ビットを占める16ビット幅の出力データに併せてパックされ、デスティネーションGPRに送られる。
【００７０】
非正規化データ出力の場合、幅19ビットの低次フィルタ出力を更に適切に（フィルタリングに応じて）トリミングして16ビットの出力を得る。この出力は、デスティネーションＧＰＲに送られる。正規化データ出力と非正規化データ出力との間での選択は、MREG0(13)ビットを用いて行われる。
【００７１】
後処理後、フィルタリング結果は、DVビットによって付加され、デスティネーションGPRに書き込まれる。付加するDV群の選択は、MREG4におけるCC＿ENビットによって変わってくる。列における最後の出力をGPRに書き込まなければならず、CC_ENビットが設定される場合、MREG4に記憶されるDVSET2ビットが付加される。他の場合の間には全て、MREG1に記憶されるDVSET1が付加される。DVSETビットのトグルは、新たな列の開始についてPEに通知するように行われる。
【００７２】
【表１２】
2007521549.tif 000014
【００７３】
本発明はいくつかの実施例によって記載したが、本発明は説明した実施例に限定されるものでなく、本願の請求項の技術的思想及び範囲に収まる修正及び改変によって実施することができるということを当業者は認識するものである。上記記載はよって、限定的なものでなく例証するものとしてみなすこととする。
【図面の簡単な説明】
【００７４】
【図１】本発明の一実施例を実施できるシステムを示す図である。
【図２】本発明の一実施例によるアクセラレータを示す図である。
【図３】本発明の一実施例による画素ブロックを示す図である。
【図４Ａ】本発明の一実施例によるプログラム可能レジスタ群を示す図である。
【図４Ｂ】本発明の一実施例によるソースGPRの形式を示す図である。
【図５】本発明の一実施例による第１のフィルタを示す図である。
【図６】本発明の一実施例による後処理装置を示す図である。
【図１】
2007521549.tif 000015
【図２】
2007521549.tif 000016
【図３】
2007521549.tif 000017
【図４Ａ】
2007521549.tif 000018
【図４Ｂ】
2007521549.tif 000019
【図５】
2007521549.tif 000020
【図６】
2007521549.tif 000021
【国際調査報告】
2007521549.tif 000022
2007521549.tif 000023
2007521549.tif 000024