JP2007521549A - 画像処理用可変タップ・フィルタ・アーキテクチャ - Google Patents

画像処理用可変タップ・フィルタ・アーキテクチャ Download PDF

Info

Publication number
JP2007521549A
JP2007521549A JP2006515371A JP2006515371A JP2007521549A JP 2007521549 A JP2007521549 A JP 2007521549A JP 2006515371 A JP2006515371 A JP 2006515371A JP 2006515371 A JP2006515371 A JP 2006515371A JP 2007521549 A JP2007521549 A JP 2007521549A
Authority
JP
Japan
Prior art keywords
filter
data
mode
output
filter output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006515371A
Other languages
English (en)
Other versions
JP4413922B2 (ja
Inventor
リッピンコット,ルイス
タダス,シャシキラン
Original Assignee
インテル コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2007521549A publication Critical patent/JP2007521549A/ja
Application granted granted Critical
Publication of JP4413922B2 publication Critical patent/JP4413922B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/10Image enhancement or restoration by non-spatial domain filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration by the use of local operators

Abstract

本発明の実施例は、2次元(2D)データをフィルタリングする装置である。第1のフィルタは、複数のフィルタ・サイズについて第1の次元において画素ブロックにおける2次元(2D)データを処理する。ブロックは帯形状を有する。レジスタ・ファイルは、プログラム可能な情報に基づいて2次元データを記憶する。第2のフィルタは、記憶2次元データを第2の次元においてフィリタリングして、プログラム可能な情報に基づいて静的モードと動的モードとのうちの1つにおいてフィルタ出力を生成する。静的モードは、帯形状についてフィルタ出力を固定された状態にし、動的モードはフィルタ出力を画素単位で選択する。フィルタ出力は、第1のフィルタ出力及び第2のフィルタ出力を含む。

Description

本発明の実施例は、画像処理の分野に関し、特に、画像処理用フィルタ・アーキテクチャに関する。
画像処理は、マルチメディア通信、マシン・ビジョン、パターン認識及び人工知能において多くの重要なアプリケーションを有する。一般的なアプリケーションでは、画像、すなわち映画の画像系列が、前処理、セグメント化及び高位の解釈を含む処理連鎖において処理される。前処理段階は、コンテキスト依存性を有し、後続段階のために画像のエンハンス又は、データ量の削減を行う処理を含む。そのような一般的な処理の1つとして、フィルタリング処理がある。
既存の画像フィルタリング手法はいくつかの欠点を有する。まず、処理速度は、リアルタイム速度又はその近くで画像を処理するのに十分速いものでない。第2に、それらの手法は柔軟でない傾向にあり、種々のフィルタ・サイズに対応しないことがあり得る。第3に、フィルタリング処理にパラメータを構成するうえでのプログラマビリティ・サポートがほとんどない。第4に、通常の画像プロセッサにおける他の構成要素との一体化のサポートがない。
本発明は、本発明の実施例を例証するのに用いる以下の記載及び添付図面を参照することによって最もよく分かり得る。
本発明の実施例は、2次元(2D)データをフィルタリングする装置である。第1のフィルタは、複数のフィルタ・サイズについて第1の次元で画素ブロックにおける2次元(2D)データを処理する。ブロックは帯形状を有する。レジスタ・ファイルは2次元データをプログラム可能な情報に基づいて記憶する。第2のフィルタは、記憶2次元データを第2の次元でフィルタリングして静的モードと動的モードとの1つにおいてプログラム可能な情報に基づいてフィルタ出力を生成する。静的モードはフィルタ出力を帯形状について固定状態にし、動的モードはフィルタ出力を画素単位で選択する。フィルタ出力は、第1のフィルタ出力及び第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)ハフマン符号器/復号器との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と、第1のフィルタ240と、レジスタ・ファイル250と、第2のフィルタ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に備えるのに用いる汎用レジスタの1つである。RAM230は、画像データをGPR240から受信し、列単位で記憶するバッファ・メモリである。当業者に公知であるように、データは行単位で記憶してもよい。RAM230はバス215を介してアクセス可能である。RAMは、RAM0とRAM1との2つの同一のメモリ・バンクを、帯域を増加させるよう有する。各メモリ・バンクは、1Kx16であり、読み書き処理中の選択にバス215によって用いられるそれ自身のアドレスを有する。RAM230における読み書き処理は、プログラム可能なレジスタ210における優先度設定によって制御される。アドレス・ジェネレータ235は、第1のフィルタ240にデータを備えるよう適切なアドレス指定をRAM230に備える。
第1のフィルタ240すなわちステージIフィルタ240は、種々のフィルタ・サイズについて第1の次元において画素ブロックにおける2次元(2D)データを処理する。ブロックは幅と帯形状とを有する。一実施例では、第1の次元は水平方向の次元である。レジスタ・ファイル250は、プログラム可能なレジスタ210の群によって備えられるプログラム可能な情報に基づいて2次元データを記憶する。例えば、レジスタ・ファイルは、プログラム可能な情報におけるバンク選択ビットに応じて記憶データを第2のフィルタ260に備える。更に、レジスタ・ファイル250において記憶されるデータ群が第2のフィルタに送られる順序は、ルミナンス/赤緑青(RGB)データ群が処理されているかクロミナンス/RGBデータ群が処理されているかによって変わってくる。
第2のフィルタ260すなわちステージIIフィルタ260は、記憶2次元データを第2の次元においてフィルタリングして、プログラム可能な情報に基づいて静的モードと動的モードとのうちの1つにおいてフィルタ出力を生成する。要は、第1のフィルタ250と第2のフィルタ260は、各次元を別個に処理するよう分離可能なフィルタを実施している。一実施例では、第2の次元は垂直方向の次元である。フィルタ出力は、第1のフィルタ出力及び第2のフィルタ出力を含む。第2のフィルタ260は、第1のフィルタ出力および第2のフィルタ出力を同時に生成するよう2つの同一の装置を有する。一方の装置は低次フィルタ用のものであり、他方の装置は高次フィルタ用のものである。一実施例では、低次フィルタ出力及び高次フィルタ出力は、19ビットであり、更に処理するよう後処理装置270に送られる。静的モードはフィルタ出力を帯形状について固定の状態にし、動的モードはフィルタ出力を画素単位で選択する。
後処理装置270は、プログラム可能な情報によって第1のフィルタ出力と第2のフィルタ出力とのうちの少なくとも1つに対して後処理動作を行う。一実施例では、後処理動作は、正規化と、ブレンディング動作と、データ付加動作等のうちの何れか1つであり得る。デスティネーションGPR280は、後処理装置270によって処理されるデータを、内部バス225を介して受信する。
図3は、本発明の一実施例による画素ブロックを示す図である。画素ブロックは、幅Hと帯形状の高さHとを有するブロックを示す。データは列方向に読み取られる。
画素データが列形式で入力される一方、画素の種々の成分の順序は構成可能である。入力構成は、単一列形式又は4列形式をサポートし得るものであり、更に、単一成分のタイプ、2成分のタイプ及び3成分のタイプもサポートし得る。Lをクロミナンス・データとし、R及びGを赤色成分及び緑色成分とし、a及びbを、クロミナンス・データのサブサンプル成分とする。入力構成を表1Aに示し得る。
Figure 2007521549
画素ブロックは、4列及び3成分の形式における交番している列データLaLb,LaLb,…LaLbを示す。帯形状の高さは1から64までプログラム可能である。
単一列・単一成分モードの場合、実施されるフィルタにかかわらず、11番目の列までのデータが利用可能なものとして存在する場合、フィルタは6番目の列から始める。よって、出力は、〔x−10〕*〔y−10〕のサイズであり、x*yは元のサイズである。
単一列・デュアル成分モードの場合、実施されるフィルタにかかわらず、21番目の列までのデータが利用可能なものとして存在する場合、フィルタは11番目の列から始める。よって、出力は、〔x−20〕*〔y−10〕のサイズであり、x*yは元のサイズである。
単一列・3成分モードの場合、実施されるフィルタにかかわらず、23番目の列までのデータが利用可能なものとして存在する場合、フィルタは13番目の列から始める。よって、
23列が利用可能なものとして存在する場合、13番目の列に相当する第1のデータ群が出力され、これは、〔x−22〕によって表す。この式は、第1の出力列についての初期状態の間のみあてはまる。しかし、その後は、14番目の列に相当する次の出力データ群が、26番目の列までのデータが利用可能なものとして存在する場合に出力されることになる。そして更に、アクセラレータに更なるデータがもう書き込まれることなく、15番目の列で形成されるフィルタに相当する別の出力データ列が出力されることになる。よって、ここから先の出力パターンは、〔w−23〕*〔y−10〕のサイズであり、x*yは元のサイズであり、w=〔x−x mod 2〕である。データがないためにフィルタは13番目の列まで始めることができないので12列が初めに切断され、10列が終わりに切断される。
4列・単一成分モードの場合、実施されるフィルタにかかわらず、11番目の列までのデータが利用可能なものとして存在する場合、フィルタは6番目の列から始める。しかし、入力は4列タイプのものであるので、列番号は4単位で増え得る。よって、12列が利用可能なものとして存在する場合、フィルタは6番目の列から始める。よって、出力は、〔w−10〕*〔y−10〕のサイズであり、x*yは元のサイズであり、w=〔x−x mod 4〕である。
4列・3成分モードの場合、実施されるフィルタにかかわらず、23番目の列までのデータが利用可能なものとして存在する場合、フィルタは13番目の列から始める。しかし、入力は4列タイプのものであるので、列番号は4単位で増え得る。よって、24列が利用可能なものとして存在する場合、フィルタは13番目の列から始める。よって、出力は、〔w−22〕*〔y−10〕のサイズであり、x*yは元のサイズであり、w=〔x−x mod 4〕である。
この記載の要約を表1Bに表す。
Figure 2007521549
図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に示すように2つの重みビットに相当する4つのブレンディング・タイプがある。FLは低フィルタ出力であり、FHは高フィルタ出力である。ブレンドは、基本的に、25%の倍数で増やされる。例えば、01のブレンド・オプションの場合、出力は、FLの75%にFHの25%を加えたものである。
Figure 2007521549
図2に示す第2のフィルタ260において、高フィルタ・モードのビットは高フィルタ装置のフィルタ実施形態を選択し、低フィルタ・モードのビットは低フィルタ装置のフィルタ実施形態を選択する。各フィルタは、これらのモード・ビットに応じて動的又は静的であり得る。一実施例では、選択を表3に示す。
Figure 2007521549
読み書き優先度ビットは、図2に示すRAM230における読み取りと書き込みとの間の優先度を判定する。読み書きビットは、表4に規定している。
Figure 2007521549
書き込みが高い優先度を有する場合、RAM書き込み動作は、空間が十分ないか利用可能なデータがもう存在しない状態まで続くことになる。次に、読み取り動作を行い得る。読み取りが高い優先度を有する場合、書き込みは、読み取りを維持するのに十分なだけ許される。
ブレンド・ビットは、第2のフィルタ出力がブレンドされるか否かを判定する。第2のフィルタ260は第1のフィルタ出力及び第2のフィルタ出力を同時に出力する。ブレンド・ビットがアサートされる場合、後処理装置270がこれらの2つの出力を、バンク選択情報によって併せてブレンドし、正規化し、デスティネーションGPRに送る。ブレンド・ビットが否定される場合、両方のフィルタ出力はブレンドされず、正規化後デスティネーションGPRに直接送られる。
省電力選択ビットは、レセットされるとアクセラレータ120におけるサブ装置を全てストールし、RAMは省電力モードに入る。このビットがオンにされると、アクセラレータ120はその通常動作を再開する。リセット・ビットSRはアクセラレータ120全体をリセットする。
MREG1 420は、DVSET1及びSWTH HGHTを含む。DVSET1ビットは、デスティネーションGPRのCVビットを設定するのに用いられる。SWTH HGHTビットは、帯形状の高さを判定する。高さは1から64までの範囲に及び得る。
MREG2 430は、入力形式と、入力モードと、GPR DST選択と、GPR SRC選択とを含む。入力形式ビットは、表5に示すように、入力画像データが単一成分形式か、2成分形式か、3成分形式かを規定する。
Figure 2007521549
入力モード・ビットは、表6に示すように、入力が単一列にあるか、デュアル列にあるか、4列にあるかを規定する。
Figure 2007521549
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にある。
図4Bは、本発明の一実施例による、ソースGPRの形式480を示す図である。形式480は、入力画素データ及びバンク選択情報を含む。
形式480は、RAM230に読み込まれるソースGPRの形式である。入力画素データは下位8ビットを占める一方、バンク選択情報は上位8ビットを占める。バンク選択情報は、フィルタ・モード及び重みを含む。重みビットは、表2に示すブレンディング重みを判定するのに用いる。フィルタ・モード・ビットは、実施されるフィルタをこのビットが判定する動的バンク選択モードの間に用いる。動的バンク選択モードは、MREG0 410におけるフィルタ・モード・ビットを、表3に示す「111」に設定することによって選択される。静的バンク選択モードと動的バンク選択モードとの2つのタイプのバンクがある。
静的バンク選択モードでは、各フィルタ次(すなわち、低又は高)は、特定のバンク選択に設定され、帯形状の終わりまで変わらない状態にされる。各次(すなわち、低又は高)のバンク選択はお互いに無関係である。例えば、「F11」を低次フィルタに割り当て、「SRC」を高次フィルタに割り当て得る。各フィルタ次のバンク選択は、MREG0 410における低フィルタ・モード・ビット及び高フィルタ・モード・ビットによって制御される。
動的バンク選択モードでは、入力データとともに供給されるフィルタ・モードは低/高フィルタにおいて実施されるフィルタを制御する。この場合、実施されるフィルタは入力データとともに変わる。このモードは、MREG0 410におけるフィルタ・モード・ビットを「111」として設定することによって選択される。
アクセラレータ120における各フィルタ次は、静的バンク選択モード又は動的バンク選択モードにおいて動作可能である。これによって、表7に示すように4つの別々のシナリオが生まれる。
Figure 2007521549
ケース1では、各次のフィルタは静的なものである。低次フィルタ及び高次フィルタにおいて実施されるフィルタは、お互いに独立している。各フィルタ次のバンク選択は、MPEG0 410における低フィルタ・モード・ビット及び高フィルタ・モード・ビットによって制御される。ブレンド・モードの場合、低次フィルタは静的なものであるので、MREG0 410において規定される静的な重みビットが用いられる。
ケース2では、低次フィルタは動的バンク選択モードにある一方、高次フィルタは静的モードにある。このケースでは、低次フィルタにおいて実施されるフィルタは供給される入力データとともに変わる一方、高次フィルタは帯形状全体にわたって同じ状態のままである。よって、低次フィルタ及び高次フィルタにおいて実施されるフィルタは、お互いに独立している。このケースでは、MREG410における低フィルタ・モード・ビットは動的モードにおいて動作するよう「111」に設定される一方、高次フィルタにおいて用いる静的バンク選択は、MREG0 410における高フィルタ・モード・ビットによって判定される。表8は、入力データにおけるフィルタ・モード・ビット〔15:13〕の種々のビット値について低次フィルタにおいて実施されるフィルタを示す。ブレンド・モードの場合、低次フィルタは動的なものであるので、入力データとともに供給される動的重みビットが用いられる。
Figure 2007521549
ケース3では、低次フィルタは静的バンク選択モードにある一方、高次フィルタは動的モードにある。このケースでは、高次フィルタにおいて実施されるフィルタは供給される入力データとともに変わる一方、高次フィルタは帯形状全体にわたって同じ状態に留まる。よって、低次フィルタ及び高次フィルタにおいて実施されるフィルタはお互いに独立している。このケースでは、MREG0 410における高フィルタ・モード・ビットは動的モードにおいて動作するよう「111」に設定される一方、低次フィルタにおいて用いる静的バンク選択は、MREG0 419における低フィルタ・モード・ビットによって判定される。表9は、入力データにおけるフィルタ・モード・ビット〔15:13〕の別々のビット値について高次フィルタにおいて実施されるフィルタを示す。なお、入力データにおけるフィルタ・モードが同じ場合に低次フィルタにおいて実施されるフィルタと高次フィルタにおいて実施されるフィルタは異なる。ブレンド・モードの場合、低次フィルタは静的なものであるので、MREG0 410に規定される静的重みビットが用いられる。
Figure 2007521549
ケース4では、高フィルタ次も低フィルタ次も動的モードにある。このケースでは、高次フィルタ及び低次フィルタにおいて実施されるフィルタは供給される入力データによって変わる。よって、このケースにのみ、低次フィルタ及び高次フィルタにおいて実施されるフィルタはお互いに関係している。このケースの場合、MREG0 410における高フィルタ・モード・ビットも低フィルタ・モード・ビットも「111」に設定される。表10は、入力データにおけるフィルタ・モード・ビット〔15:13〕の種々のビット値について低次フィルタ及び高次フィルタにおいて実施されるフィルタを示す。ブレンド・モードの場合、低次フィルタは動的なものであるので、入力データとともに供給される動的重みビットが用いられる。
Figure 2007521549
図5は、本発明の一実施例による第1フィルタ240を示す図である。第1フィルタ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が中心画素の場合のものである。
第1フィルタは更に、相当する画素のバンク選択情報をレジスタ・ファイル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」である場合、第2のフィルタ260からの2つのフィルタ出力が併せて補間される。さもなければ、「0」であった場合、両方のフィルタ出力が補間なしで送出される。MREG0(2)が「1」である場合、第2フィルタからの幅11ビットの2つのフィルタ出力が、BNKSELデータ、すなわち、BNKSEL(4:3)において送られる重みビットに応じて補間される。補間後、最終出力は8ビットに、偏りなく丸められる。
MREG0(2)がレセットされる場合、第2のフィルタ260からの幅11ビットの2つのフィルタ出力は、8ビットに、偏りなく丸められ、低次フィルタ装置が下位8ビットを占め、高次フィルタ装置が上位8ビットを占める16ビット幅の出力データに併せてパックされ、デスティネーションGPRに送られる。
非正規化データ出力の場合、幅19ビットの低次フィルタ出力を更に適切に(フィルタリングに応じて)トリミングして16ビットの出力を得る。この出力は、デスティネーションGPRに送られる。正規化データ出力と非正規化データ出力との間での選択は、MREG0(13)ビットを用いて行われる。
後処理後、フィルタリング結果は、DVビットによって付加され、デスティネーションGPRに書き込まれる。付加するDV群の選択は、MREG4におけるCC_ENビットによって変わってくる。列における最後の出力をGPRに書き込まなければならず、CC_ENビットが設定される場合、MREG4に記憶されるDVSET2ビットが付加される。他の場合の間には全て、MREG1に記憶されるDVSET1が付加される。DVSETビットのトグルは、新たな列の開始についてPEに通知するように行われる。
Figure 2007521549
本発明はいくつかの実施例によって記載したが、本発明は説明した実施例に限定されるものでなく、本願の請求項の技術的思想及び範囲に収まる修正及び改変によって実施することができるということを当業者は認識するものである。上記記載はよって、限定的なものでなく例証するものとしてみなすこととする。
本発明の一実施例を実施できるシステムを示す図である。 本発明の一実施例によるアクセラレータを示す図である。 本発明の一実施例による画素ブロックを示す図である。 本発明の一実施例によるプログラム可能レジスタ群を示す図である。 本発明の一実施例によるソースGPRの形式を示す図である。 本発明の一実施例による第1のフィルタを示す図である。 本発明の一実施例による後処理装置を示す図である。

Claims (30)

  1. 装置であって、
    複数のフィルタ・サイズについて第1の次元において画素ブロックにおける2次元(2D)データを処理する第1のフィルタを備え、前記ブロックは帯形状を有し、
    前記第1のフィルタに結合されて、プログラム可能な情報に基づいて前記2Dデータを記憶するレジスタ・ファイルと、
    該レジスタ・ファイルに結合されて、前記記憶2Dデータを第2の次元においてフィルタリングして、前記プログラム可能な情報に基づいて静的モード及び動的モードのうちの1つにおいてフィルタ出力を生成する第2のフィルタとを備え、前記静的モードは前記帯形状について前記フィルタ出力を固定された状態のままにし、前記動的モードは前記フィルタ出力を画素単位で選択し、前記フィルタ出力は第1のフィルタ出力及び第2のフィルタ出力を含むことを特徴とする装置。
  2. 請求項1記載の装置であって、前記第1のフィルタが、
    データを水平方向に加算して部分的なフィルタ出力を生成する加算器を備えることを特徴とする装置。
  3. 請求項1記載の装置であって、前記第2のフィルタが、
    前記第1のフィルタ出力を生成する低次フィルタと、
    前記第2のフィルタ出力を生成する高次フィルタとを備えることを特徴とする装置。
  4. 請求項1記載の装置であって、
    前記2Dデータは、前記プログラム可能な情報によって、単一成分入力形式とデュアル成分入力形式と3成分入力形式とのうちの1つと、単一列入力モードとデュアル列入力モードと4列入力モードとのうちの1つとの組み合わせに編成されることを特徴とする装置。
  5. 請求項3記載の装置であって、
    前記フィルタ・サイズは、ソース・サイズと、3x3サイズと、5x5サイズと、7x7サイズと、9x9サイズと、11x11サイズとを備えることを特徴とする装置。
  6. 請求項1記載の装置であって、更に、
    前記プログラム可能な情報を備えるプログラム可能なレジスタ群を備えることを特徴とする装置。
  7. 請求項1記載の装置であって、更に、
    前記プログラム可能な情報によって前記第1のフィルタ出力と前記第2のフィルタ出力とのうちの少なくとも1つに対する後処理動作を行う後処理装置を備えることを特徴とする装置。
  8. 請求項1記載の装置であって、
    前記後処理動作が正規化とブレンディング動作とのうちの一方であることを特徴とする装置。
  9. 請求項6記載の装置であって、前記プログラム可能な情報が、
    正規化選択と、ブレンディング動作の重み値と、高フィルタ・モードと、低フィルタ・モードと、読み書き優先度と、ブレンド選択と、省電力選択と、リセット選択と、付加データと、帯形状の高さと、入力形式と、入力モードと、デスティネーション・レジスタと、ソース・レジスタと、メモリ・アドレスと、メモリ・データとのうちの少なくとも1つを含むことを特徴とする装置。
  10. 請求項1記載の装置であって、更に、
    ソース・レジスタに結合されて、前記第1のフィルタ用の前記2Dデータを保持するメモリと、
    該メモリに結合されて、該メモリのアドレス指定を行うことを特徴とする装置。
  11. 方法であって、
    複数のフィルタ・サイズについて第1の次元において第1のフィルタによって画素ブロックにおける2次元(2D)データを処理する工程を備え、前記ブロックは帯形状を有し、
    更に、プログラム可能な情報に基づいて前記2Dデータをレジスタ・ファイル内に記憶する工程と、
    前記記憶2Dデータを第2の次元において第2のフィルタによってフィルタリングして、前記プログラム可能な情報に基づいて静的モード及び動的モードのうちの1つにおいてフィルタ出力を生成する工程とを備え、前記静的モードは前記帯形状について前記フィルタ出力を固定された状態のままにし、前記動的モードは前記フィルタ出力を画素単位で選択し、前記フィルタ出力は第1のフィルタ出力及び第2のフィルタ出力を含むことを特徴とする方法。
  12. 請求項11記載の方法であって、前記第1のフィルタによって処理する工程が、
    データを水平方向に加算して部分的なフィルタ出力を生成する工程を備えることを特徴とする方法。
  13. 請求項11記載の方法であって、前記第2のフィルタによって処理する工程が、
    前記第1のフィルタ出力を低次フィルタによって生成する工程と、
    前記第2のフィルタ出力を高次フィルタによって生成する工程とを備えることを特徴とする方法。
  14. 請求項11記載の方法であって、前記2Dデータを処理する工程が、
    前記プログラム可能な情報によって、単一成分入力形式とデュアル成分入力形式と3成分入力形式とのうちの1つと、単一列入力モードとデュアル列入力モードと4列入力モードとのうちの1つとの組み合わせに編成される前記2Dデータを処理する工程を備えることを特徴とする方法。
  15. 請求項13記載の方法であって、
    前記フィルタ・サイズは、ソース・サイズと、3x3サイズと、5x5サイズと、7x7サイズと、9x9サイズと、11x11サイズとを備えることを特徴とする方法。
  16. 請求項11記載の方法であって、更に、
    前記プログラム可能な情報を、プログラム可能なレジスタ群によって備える工程を備えることを特徴とする方法。
  17. 請求項11記載の方法であって、更に、
    後処理装置によって、前記プログラム可能な情報によって前記第1のフィルタ出力と前記第2のフィルタ出力とのうちの少なくとも1つに対する後処理動作を行う工程を備えることを特徴とする方法。
  18. 請求項11記載の方法であって、
    前記後処理動作が正規化とブレンディング動作とのうちの一方を行う工程を備えることを特徴とする方法。
  19. 請求項16記載の方法であって、前記プログラム可能な情報を備える工程が、
    正規化選択と、ブレンディング動作の重み値と、高フィルタ・モードと、低フィルタ・モードと、読み書き優先度と、ブレンド選択と、省電力選択と、リセット選択と、付加データと、帯形状の高さと、入力形式と、入力モードと、デスティネーション・レジスタと、ソース・レジスタと、メモリ・アドレスと、メモリ・データとのうちの少なくとも1つを備える工程を備えることを特徴とする方法。
  20. 請求項11記載の方法であって、更に、
    前記第1のフィルタ用の前記2Dデータをメモリに保持する工程と、
    アドレス・ジェネレータを用いて該メモリのアドレス指定を行う工程とを備えることを特徴とする方法。
  21. システムであって、
    ホスト・プロセッサと、
    ホスト・バスと、
    該ホスト・バスに結合されて、2次元(2D)データをデータ・ストリームにおいて受信するメディア・プロセッサとを備え、該メディア・プロセッサはアクセラレータを含み、該アクセラレータは、
    複数のフィルタ・サイズについて第1の次元において画素ブロックにおける前記2Dデータを処理する第1のフィルタを備え、前記ブロックは帯形状を有し、
    該アクセラレータは更に、
    前記第1のフィルタに結合されて、プログラム可能な情報に基づいて前記2Dデータを記憶するレジスタ・ファイルと、
    該レジスタ・ファイルに結合されて、前記記憶2Dデータを第2の次元においてフィルタリングして、前記プログラム可能な情報に基づいて静的モード及び動的モードのうちの1つにおいてフィルタ出力を生成する第2のフィルタとを備え、前記静的モードは前記帯形状について前記フィルタ出力を固定された状態のままにし、前記動的モードは前記フィルタ出力を画素単位で選択し、前記フィルタ出力は第1のフィルタ出力及び第2のフィルタ出力を含むことを特徴とするシステム。
  22. 請求項21記載のシステムであって、前記第1のフィルタが、
    データを水平方向に加算して部分的なフィルタ出力を生成する加算器を備えることを特徴とするシステム。
  23. 請求項21記載のシステムであって、前記第2のフィルタが、
    前記第1のフィルタの出力を生成する低次フィルタと、
    前記第2のフィルタの出力を生成する高次フィルタとを備えることを特徴とするシステム。
  24. 請求項21記載のシステムであって、
    前記2Dデータは、前記プログラム可能な情報によって、単一成分入力形式とデュアル成分入力形式と3成分入力形式とのうちの1つと、単一列入力モードとデュアル列入力モードと4列入力モードとのうちの1つとの組み合わせに編成されることを特徴とするシステム。
  25. 請求項23記載のシステムであって、
    前記フィルタ・サイズは、ソース・サイズと、3x3サイズと、5x5サイズと、7x7サイズと、9x9サイズと、11x11サイズとを備えることを特徴とするシステム。
  26. 請求項21記載のシステムであって、前記アクセラレータは更に、
    前記プログラム可能な情報を備えるプログラム可能なレジスタ群を備えることを特徴とするシステム。
  27. 請求項21記載のシステムであって、前記アクセラレータは更に、
    前記プログラム可能な情報によって前記第1のフィルタ出力と前記第2のフィルタ出力とのうちの少なくとも1つに対する後処理動作を行う後処理装置を備えることを特徴とするシステム。
  28. 請求項21記載のシステムであって、
    前記後処理動作が正規化とブレンディング動作とのうちの一方であることを特徴とするシステム。
  29. 請求項26記載のシステムであって、前記プログラム可能な情報が、
    正規化選択と、ブレンディング動作の重み値と、高フィルタ・モードと、低フィルタ・モードと、読み書き優先度と、ブレンド選択と、省電力選択と、リセット選択と、付加データと、帯形状の高さと、入力形式と、入力モードと、デスティネーション・レジスタと、ソース・レジスタと、メモリ・アドレスと、メモリ・データとのうちの少なくとも1つを含むことを特徴とするシステム。
  30. 請求項21記載のシステムであって、前記アクセラレータは更に、
    ソース・レジスタに結合されて、前記第1のフィルタ用の前記2Dデータを保持するメモリと、
    該メモリに結合されて、該メモリのアドレス指定を行うことを特徴とするシステム。
JP2006515371A 2003-06-30 2004-06-24 画像処理用可変タップ・フィルタ・アーキテクチャ Expired - Fee Related JP4413922B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/611,071 US7356197B2 (en) 2003-06-30 2003-06-30 Variable tap filter architecture for image processing
PCT/US2004/020603 WO2005006253A1 (en) 2003-06-30 2004-06-24 Variable tap filter architecture for image processing

Publications (2)

Publication Number Publication Date
JP2007521549A true JP2007521549A (ja) 2007-08-02
JP4413922B2 JP4413922B2 (ja) 2010-02-10

Family

ID=33541241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006515371A Expired - Fee Related JP4413922B2 (ja) 2003-06-30 2004-06-24 画像処理用可変タップ・フィルタ・アーキテクチャ

Country Status (9)

Country Link
US (1) US7356197B2 (ja)
EP (1) EP1639543B1 (ja)
JP (1) JP4413922B2 (ja)
KR (1) KR100823379B1 (ja)
AT (1) ATE449389T1 (ja)
DE (1) DE602004024201D1 (ja)
MY (1) MY136906A (ja)
TW (1) TWI251787B (ja)
WO (1) WO2005006253A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8666172B2 (en) * 2001-03-29 2014-03-04 Intel Corporation Providing multiple symmetrical filters
US7038688B2 (en) * 2003-12-29 2006-05-02 Intel Corporation Filter mechanism
US7590867B2 (en) 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US7471844B2 (en) * 2004-12-27 2008-12-30 Intel Corporation Method, apparatus and system for multi-feature programmable tap filter image processing
US7636442B2 (en) * 2005-05-13 2009-12-22 Intel Corporation Method and apparatus for migrating software-based security coprocessors
US7571312B2 (en) * 2005-05-13 2009-08-04 Intel Corporation Methods and apparatus for generating endorsement credentials for software-based security coprocessors
US7587595B2 (en) * 2005-05-13 2009-09-08 Intel Corporation Method and apparatus for providing software-based security coprocessors
US8074262B2 (en) 2005-05-13 2011-12-06 Intel Corporation Method and apparatus for migrating virtual trusted platform modules
US7613921B2 (en) 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
JP4501855B2 (ja) * 2005-12-22 2010-07-14 ソニー株式会社 画像信号処理装置、撮像装置、および画像信号処理方法、並びにコンピュータ・プログラム
US8108668B2 (en) 2006-06-26 2012-01-31 Intel Corporation Associating a multi-context trusted platform module with distributed platforms
US9280659B2 (en) 2006-12-29 2016-03-08 Intel Corporation Methods and apparatus for remeasuring a virtual machine monitor
US8060876B2 (en) * 2007-08-10 2011-11-15 Intel Corporation Methods and apparatus for creating an isolated partition for a virtual trusted platform module
US8064605B2 (en) * 2007-09-27 2011-11-22 Intel Corporation Methods and apparatus for providing upgradeable key bindings for trusted platform modules
US8249257B2 (en) 2007-09-28 2012-08-21 Intel Corporation Virtual TPM keys rooted in a hardware TPM
US8584229B2 (en) * 2007-12-21 2013-11-12 Intel Corporation Methods and apparatus supporting access to physical and virtual trusted platform modules
US8798385B2 (en) * 2009-02-16 2014-08-05 Raytheon Company Suppressing interference in imaging systems
US10284908B2 (en) 2013-02-26 2019-05-07 Comcast Cable Communications, Llc Providing multiple data transmissions

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5359674A (en) * 1991-12-11 1994-10-25 David Sarnoff Research Center, Inc. Pyramid processor integrated circuit
FI96260C (fi) * 1993-10-29 1996-05-27 Rautaruukki Oy Suodatusmenetelmä ja suodatin
US6256068B1 (en) 1996-05-08 2001-07-03 Matsushita Electric Industrial Co., Ltd. Image data format conversion apparatus
US5977947A (en) * 1996-08-19 1999-11-02 International Business Machines Corp. Method and apparatus for resizing block ordered video image frames with reduced on-chip cache
US6199084B1 (en) * 1998-09-09 2001-03-06 Hitachi America, Ltd. Methods and apparatus for implementing weighted median filters
US6556193B1 (en) * 1999-04-02 2003-04-29 Teralogic, Inc. De-interlacing video images using patch-based processing
US6791609B2 (en) 1999-12-20 2004-09-14 Texas Instruments Incorporated Digital still camera system and method
US8666172B2 (en) * 2001-03-29 2014-03-04 Intel Corporation Providing multiple symmetrical filters
US6983076B2 (en) * 2002-07-01 2006-01-03 Xerox Corporation Control system for digital de-screening of documents

Also Published As

Publication number Publication date
US20040264797A1 (en) 2004-12-30
EP1639543B1 (en) 2009-11-18
MY136906A (en) 2008-11-28
KR100823379B1 (ko) 2008-04-18
US7356197B2 (en) 2008-04-08
EP1639543A1 (en) 2006-03-29
WO2005006253A1 (en) 2005-01-20
TWI251787B (en) 2006-03-21
ATE449389T1 (de) 2009-12-15
JP4413922B2 (ja) 2010-02-10
TW200512664A (en) 2005-04-01
KR20060025582A (ko) 2006-03-21
DE602004024201D1 (de) 2009-12-31

Similar Documents

Publication Publication Date Title
JP4413922B2 (ja) 画像処理用可変タップ・フィルタ・アーキテクチャ
CN107403221B (zh) 用于实现卷积神经网络的方法和硬件、制造方法和系统
KR100818819B1 (ko) 데이터 구동 아키텍처를 갖는 화상 신호 프로세서용 메모리명령 핸들러
US7860337B2 (en) Blur computation algorithm
US20050160406A1 (en) Programmable digital image processor
WO2019127517A1 (zh) 数据处理方法、设备、dma控制器及计算机可读存储介质
WO2006053168A9 (en) Sequential processing of video data
CN111324294B (zh) 存取张量数据的方法和装置
US10402196B2 (en) Multi-dimensional sliding window operation for a vector processor, including dividing a filter into a plurality of patterns for selecting data elements from a plurality of input registers and performing calculations in parallel using groups of the data elements and coefficients
EP3217289A2 (en) System and method for preventing cache contention
JP4212676B2 (ja) 情報処理システムおよび情報処理方法
AU2013273768A1 (en) Parallel rendering of region-based graphics representations
JP3877002B2 (ja) 情報処理システムおよび情報処理方法
JPH09259268A (ja) データストリームのブロックストップフィルタリング処理方法及びブロックストップフィルタリング処理を実行するコンピュータプログラムを記録した媒体
Wang et al. Efficient super-resolution using mobilenetv3
CN114202657A (zh) 用于图像处理的方法和设备
KR102494565B1 (ko) 콘볼루션 신경망의 하드웨어 구조 최적화 방법
US11321819B2 (en) System and method for performing a convolution operation
US20210142144A1 (en) Multi-size convolutional layer
JP3738802B2 (ja) 情報処理システム
Nickel et al. High-performance AKAZE implementation including parametrizable and generic HLS modules
JP4014486B2 (ja) 画像処理方法及び画像処理装置
CN112306949B (zh) 数据处理方法及装置以及相关产品
US20220398685A1 (en) Device and method with data preprocessing
US20230127476A1 (en) Method and apparatus with image processing

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090403

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090903

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091020

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091118

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121127

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121127

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131127

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees