(57)【要約】レジスタアレイ内のデータを連続する画素ブロックをフィルタリングするために再使用するフィルタリング装置を用いることで、信号の処理が改善される。本発明の一つの実施例によると、ある画像に対応し、それらの間にあるエッジを共有する、画素データの連続するブロックがフィルタリングされる。画素データの連続するブロックが読み出され、レジスタアレイの第一と第二の半分内にロードされ（１１０）、エッジの両側のレジスタ内の画素データがフィルタリングされ（１２０）、レジスタアレイに戻される。フィルタリングを終えると、レジスタアレイの第一の半分内のデータはアンロードされ、メモリ内に書き戻される（１３０）。その後、レジスタアレイの第二の半分内のデータが、レジスタアレイの第一の半分内にシフトされ（１４０）、追加の画素データが読み出され、レジスタアレイの第二の半分内にロードされる（１５０）。
2005535198.tif 000002
【特許請求の範囲】
【請求項１】
水平及び垂直の両方向のビデオ画像データを単一タイプのデータレジスタアレイを用いてフィルタリングするように構成された信号フィルタリング装置であって、
コントローラとレジスタアレイとを備え、これらコントローラとレジスタアレイは、
前記レジスタアレイに、１つのロード／アンロードサイクルの間に、メモリから、それらの間にエッジを有するビデオ画素データの少なくとも２つの連続する集合をロードし、
前記ロードされたビデオ画素データの、ビデオ画素データの前記２つの集合の各々からのエッジデータに対応する部分をフィルタリングし、前記レジスタアレイに戻し、
前記ロードされたビデオデータの前記部分のフィルタリングを終えた後に、１つのロード／アンロードサイクルの間に、前記ビデオ画素データの第一の集合を前記メモリ内にアンロードし、前記格納装置内の前記ビデオ画素データの第二の集合を後続のビデオ画素データをフィルタリングするためにシフトするように、構成されることを特徴とする信号フィルタリング装置。
【請求項２】
前記コントローラは、更に、前記ロード／アンロードサイクルの１つのサイクルの間に、前記ビデオ画素データの前記第二の集合のシフティングを制御するように、構成されることを特徴とする請求項１記載の信号フィルタリング装置。
【請求項３】
前記レジスタアレイは、２次元レジスタアレイから成り、ある１つのロード／アンロードサイクルの間に、前記ビデオ画素アレイを、水平及び垂直の両方向のエッジフィルタリングのために、異なる側からロードするように構成されるとともに、前記ビデオ画素データの前記第二の集合を、前記レジスタの一方の部分からもう一方の部分にシフトするように、構成されることを特徴とする請求項２記載の信号フィルタリング装置。
【請求項４】
前記二次元シフトレジスタは、更に、前記コントローラの制御下において、前記二次元シフトレジスタ内のデータの水平行を、垂直エッジフィルタリングのためにフィルタリングし、前記二次元シフトレジスタ内のデータの垂直列を、水平エッジフィルタリングのためにフィルタリングするように、構成されることを特徴とする請求項３記載の信号フィルタリング装置。
【請求項５】
ビデオ信号フィルタリング装置であって、
ある画像に対する画素データを格納するように構成されたメモリと、
前記画素データの連続するブロック間のあるエッジに対応するエッジデータをフィルタリングするように構成されたフィルタリング回路と、
レジスタの列と行のから成る二次元レジスタアレイと、
制御コントローラとを備え、
前記二次元レジスタアレイは、画素データを、このレジスタアレイ内での二次元シフトを用いてロード及びアンロードするように構成され、このレジスタアレイの第一の半分と第二の半分は、ある画像に対する画素データの、それらの間にエッジを有する、連続するブロックを格納するように構成され、
前記回路コントローラは、前記画素データの連続するブロックを表すデータの、前記メモリからの読出し及び前記レジスタアレイへの書き込みと、前記レジスタ内のデータの、前記フィルタリング回路を介してのフィルタリング、前記レジスタ内でのシフト、及び前記レジスタからのアンロード及び前記メモリへの書き戻しを、制御するように構成され、
前記制御コントローラは、ある単一のクロックサイクルの間に、前記レジスタアレイの前記第二の半分内に格納されているデータの前記レジスタアレイの前記第一の半分内へのシフトを制御するとともに、前記メモリからのデータの読出し及びこのデータの前記レジスタアレイの前記第二の半分内へのロードを制御するように構成される、ことを特徴とするビデオ信号フィルタリング装置。
【請求項６】
前記回路コントローラは、更に、フィルタリングされるべき前記エッジの両側の画素データが、エッジと交差する列内のある選択された数の連続するレジスタを制御することで、前記フィルタリング回路を介してフィルタリングこと、及び前記レジスタアレイにロードバックされることを制御するように構成されたことを特徴とする請求項５記載のビデオ信号フィルタリング装置。
【請求項７】
前記回路コントローラは、前記レジスタアレイ内の前記エッジを中心として位置する１０個のレジスタから成る１列からの画素データが、前記フィルタリング回路に送られること、及び、前記１０個のレジスタから成る列内の、前記エッジを中心として位置する、８個のレジスタに対応する画素データが、前記フィルタリング回路から前記レジスタアレイに戻されることを制御するように構成されることを特徴とする請求項６記載のビデオ信号フィルタリング装置。
【請求項８】
前記二次元レジスタアレイは、８個の列と１６個の行とから構成され、前記回路コントローラは、更に、前記レジスタアレイ内の画素データをフィルタリングするために、前記８個の列の各々内の１０個のレジスタ内のデータが右にシフトされ、結果として、レジスタの最も右の列内のデータがフィルタリングされ、最も左の列内にラップバックされること、及び他の各列内のデータは１列だけ右にシフトされることを制御するように構成されることを特徴とする請求項７記載のビデオ信号フィルタリング装置。
【請求項９】
前記回路コントローラは、フィルタリングされるべきある画像に対応する画素アレイのサイズを検出し、その画素アレイのサイズはそのレジスタアレイのサイズに均等に分割できない場合、前記レジスタアレイ内でフィルタリングされるべき一連のフィルタデータの最後の集合のフィルタリング動作を、前記最後の集合のフィルタデータが前記レジスタアレイを完全には満たさない場合は、変更するように構成される、ことを特徴とする請求項６記載のビデオ信号フィルタリング装置。
【請求項１０】
前記回路コントローラは、更に、画素データによって表されるある画像の水平及び垂直の両方向のエッジをフィルタリングするために、データが前記レジスタアレイにロードされること、及びアンロードされることを制御するように構成されることを特徴とする請求項５記載のビデオ信号フィルタリング装置。
【請求項１１】
前記回路コントローラは、水平及び垂直の両方向のエッジフィルタリングを施されたデータをアンロードし、メモリ内に書き込むように構成されることを特徴とする請求項１０記載のビデオ信号フィルタリング装置。
【請求項１２】
前記二次元レジスタアレイは、レジスタの１６個の水平行と１６個の列とを有する１６×１６レジスタアレイから成り、前記回路コントローラは、前記フィルタリング回路及び前記レジスタアレイを制御することで、レジスタの上側の８行と下側の８行との間の水平エッジに沿う水平エッジデータをフィルタリングし、前記１６×１６レジスタアレイの８個の上側行内の、８個の左側列と８個の右側列との間の垂直エッジに沿う垂直エッジデータをフィルタリングし、レジスタアレイの上側８行内のこうしてフィルタリングされた水平及び垂直エッジデータをアンロードして前記メモリ内に書き込むように構成されることを特徴とする請求項１１記載のビデオ信号フィルタリング装置。
【請求項１３】
前記レジスタアレイは、レジスタの８個の水平行と３２個の垂直列とを有する３２×８レジスタアレイから成り、前記回路コントローラは、前記フィルタリング回路及び前記３２×８レジスタアレイを制御することで、先に前記１６×１６レジスタアレイを用いてフィルタリングされた画素データの、１６×１６ブロック間の垂直エッジに沿う垂直エッジデータをフィルタリングするように構成されることを特徴とする請求項１２記載のビデオ信号フィルタリング装置。
【請求項１４】
前記回路コントローラは、垂直エッジフィルタリングに対しては、前記アレイ内にロードされるデータを、バイトの順番が逆転されるように制御するように構成されることを特徴とする請求項５記載のビデオ信号フィルタリング装置。
【請求項１５】
ビデオ画素データをフィルタリングするための方法であって、
メモリから、画素データの、ある画像と対応し、それらの間にその画像のエッジの部分を共有する第一と第二の連続するブロックを読出し、これら画素データの連続するブロックを、レジスタの垂直列と水平行とを有するレジスタアレイの、それぞれ、第一と第二の半分内にロードするステップと、
前記レジスタアレイの前記第一と第二の半分内の、少なくとも、前記エッジに隣接する画素に対応するデータをフィルタリングするステップと、
フィルタリングの後に、前記レジスタアレイの前記第一の半分からデータをアンロードし、アンロードされたデータを前記メモリ内に書き込むステップと、
前記レジスタアレイの前記第二の半分からデータを前記レジスタアレイの前記第一の半分内にシフトするステップと、
前記メモリから、前記画像に対応する、前記レジスタアレイの前記第一の半分内にシフトされた画素ブロックと隣接しこれとあるエッジを共有する、画素データの追加のブロックを読み出し、この追加のブロックを前記レジスタアレイの前記第二の半分内にロードし、上述のフィルタリングステップとアンローディングステップを反復するステップと、を含むことを特徴とする方法。
【請求項１６】
更に、前記データをシフトするステップ、画素データの追加のブロックを読み込むステップ、データを、フィルタリングし、フィルタリングされたデータをアンロードし、メモリ内に書き戻すステップを、画像の複数の連続する画素ブロックに対して反復するステップを含むことを特徴とする請求項１５記載の方法。
【請求項１７】
フィルタリングは、前記画素データの連続するブロックによって共有される画像の水平エッジ部分に隣接する画素に対応するデータをフィルタリングするステップと、画素データの連続するブロックによって共有される画像の垂直エッジ部分に隣接する画素に対応するデータをフィルタリングするステップとを含むことを特徴とする請求項１５記載の方法。
【請求項１８】
フィルタリングは、画素データの連続するブロックによって共有される画像の垂直エッジ部分に隣接する画素に対応するデータをフィルタリングするステップに加えて、さらに、前記レジスタアレイ内での垂直方向のフィルタリングに対して、データの方向を変えるために、データのバイトの順番を逆転させるステップを含むことを特徴とする請求項１５記載の方法。
【請求項１９】
更に、
前記レジスタアレイ内の、連続する画素ブロック間のエッジの両側の画素に対応する、レジスタの列から、データをフィルタリング回路に送るステップと、
前記レジスタの列にしてフィルタリングされたデータを、前記フィルタリング回路から、前記レジスタアレイに戻すステップとを含むことを特徴とする請求項１５記載の方法。
【請求項２０】
更に、レジスタのある列からデータを送るステップと、フィルタリングされたデータを戻すステップとを、前記レジスタアレイ内の各列に対して、各列内のデータが１列だけ右にシフトされ、最も右の列がフィルタリングされ、各列はフィルタリングの後に最も左の列にラップバックされるようなやり方にて、反復するステップを含むことを特徴とする請求項１９記載の方法。
【請求項２１】
前記レジスタの列に対してフィルタリングされたデータをレジスタアレイに戻すステップは、前記フィルタリング回路に送られたデータの内の一部のみを返すことから成り、更に、前記レジスタ内の、前記フィルタリング回路に送られたが、返されなかった、まだフィルタリングされてないデータを、最も右の列から最も左の列にシフトするステップを含むことを特徴とする請求項２０記載の方法。
【請求項２２】
前記画素データの第一と第二の連続するブロックは、画像の垂直方向に隣接する部分に対応し、ある水平エッジを共有し、フィルタリングは、前記水平エッジの両側のデータをフィルタリングすることから成り、データのシフトは、データを前記レジスタアレイの下側半分から前記レジスタアレイの上側半分にシフトすることから成る、ことを特徴とする請求項１５記載の方法。
【請求項２３】
画素データの前記第一と第二の連続するブロックは、画像の水平方向に隣接する部分に対応し、ある垂直エッジを共有し、フィルタリングは、前記垂直エッジの両側のデータをフィルタリングすることから成り、前記データのシフトは、データを前記レジスタアレイの下側半分から前記レジスタアレイの上側半分にシフトすることから成り、更に、画素データの前記第一と第二の連続するブロックに対する画素データのバイトの順番を、これら連続するブロックを前記レジスタアレイ内にロードする前に、逆転されるステップと、画素データの前記追加のブロックのバイトの順番を、これら追加のブロックを前記レジスタアレイの前記第二の半分内にロードする前に、反転するステップとを含み、前記レジスタアレイの第一の半分からデータをアンロードするステップは、フィルタリングされたデータをアンロードし、フィルタリングされたデータのバイトの順番を、そのデータの向きを、メモリ内の画像の向きと合わせるために逆転されるステップを含む、ことを特徴とする請求項１５記載の方法。
【請求項２４】
ビデオ画素データをフィルタリングする方法であって、
メモリから、各々がある画像に対応し、それらの間に位置するその画像のあるエッジ部分を共有する、画素データの第一と第二の連続するブロックを読み出し、画素データのこれら連続するブロックを、レジスタの垂直の列と水平の行を有するレジスタアレイの、それぞれ、第一と第二の半分内に、前記エッジが前記レジスタアレイの前記第一と第二の間のエッジと対応するようなやり方にて、ロードするステップと、
前記エッジの両側の選択された行内の画素データを、前記レジスタアレイの最も右の列から読出し、こうして読み出された画素データの少なくとも一部をフィルタリングするステップと、
前記レジスタ内の前記選択された行に対応するデータを、前記最も右の列からのフィルタリングされたデータと、前記選択された行内の、最も右の列から読み出された、まだフィルタリングされてない画素データは、最も左の列にシフトされるようなやり方にて、１列だけ右にシフトさせるステップと、
前記画素データを読み出すステップと、前記レジスタ内のデータをシフトさせるステップとを、前記レジスタ内の全ての列内のデータがフィルタリングされ、フィルタリングされたデータが元の列内にシフトバックされるまで、反復するステップと、
フィルタリングの後、前記レジスタアレイの第一の半分からデータをアンロードし、アンロードされたデータを前記メモリ内に書き込むステップと、
データを前記レジスタアレイの前記第二の半分から前記レジスタアレイの第一の半分内にシフトさせるステップと、
前記メモリから、前記レジスタアレイの第一の半分内にシフトされた前記画素ブロックと隣接し、これとあるエッジを共有する、追加の画素ブロックを読み出し、この追加のブロックを前記レジスタアレイの第二の半分内にロードし、前記フィルタリングステップとアンローディングステップとを反復するステップと、を含むことを特徴とする方法。
【請求項２５】
ビデオ画素データをフィルタリングするためのシステムであって、
メモリから、各々がある画像と対応し、それらの間に位置する画像のエッジ部分を共有する、画素データの第一と第二の連続するブロックを読出し、画素データのこれら連続するブロックを、レジスタの垂直の列と水平の行を有するレジスタアレイの、それぞれ、第一と第二の半分内にロードするための手段と、
前記レジスタアレイの前記第一と第二の半分の各々内の、少なくとも前記エッジと隣接する画素に対応するデータをフィルタリングするための手段と、
フィルタリングの後、前記レジスタアレイの前記第一の半分からデータをアンロードし、アンロードされたデータを前記メモリ内に書き込むための手段と、
データを前記レジスタアレイの第二の半分から前記レジスタアレイの第一の半分内にシフトさせるための手段と、
前記メモリから、前記画像と対応する、前記レジスタアレイの第一の半分内にシフトされた前記画素ブロックと隣接し、これとあるエッジを共有する、画素データの追加のブロックを読み出し、この追加のブロックを前記レジスタアレイの第二の半分内にロードし、前記フィルタリングステップと前記アンロードステップとを反復するための手段と、を備えることを特徴とするシステム。
【請求項２６】
ビデオ画素データをフィルタリングするためのシステムであって、
メモリと、
レジスタの垂直の列と水平の行とを有するレジスタアレイと、
前記メモリからの、ある画像と対応し、それらの間に位置する画像のあるエッジ部分を共有する、画素データの第一と第二の連続するブロックの読み出しと、（これらブロックの）前記レジスタアレイの、それぞれ、第一と第二の半分内へのロードとを制御するように構成されたコントローラと、
前記レジスタアレイの前記第一と第二の半分の各々内の、少なくとも前記エッジに隣接する画素に対応するデータをフィルタリングするように構成されたフィルタリング回路とを備え、
前記コントローラは、更に、前記フィルタリングの後に、前記レジスタアレイの第一の半分からのデータのアンロードと前記メモリ内への書き込みと、前記レジスタアレイの第二の半分から前記レジスタアレイの第一の半分内へのデータのシフトと、前記メモリからの、前記画像に対応する、前記レジスタアレイの第一の半分内にシフトされた画素ブロックと隣接し、これとあるエッジを共有する、画素データ追加のブロックの読み出しと、（この追加のブロックの）前記レジスタアレイの第二の半分内へのロードと、前記フィルタリングステップとアンロードステップの反復と、を制御するように構成される、ことを特徴とするシステム。
【請求項２７】
前記コントローラは、単一のクロックサイクルの間に、前記レジスタアレイの第二の半分内に格納されているデータを前記レジスタアレイの第一の半分内にシフトし、前記メモリからデータの読出し、前記レジスタの第二の半分内にロードするように、構成されることを特徴とする請求項２６記載のシステム。
【請求項２８】
前記フィルタリング回路は、フィルタ計算論理回路の２つの独立したブロックを含み、前記レジスタアレイは、フィルタ計算論理回路の各々のブロックに対する、少なくとも２つの集合のタップポイントを有し、第一の集合のタップポイントは、前記レジスタアレイ内の第一の集合の列のタッピングのために用いられ、第二の集合のタップポイントは、前記レジスタアレイ内の第二の集合の列をタッピングのために用いられる、ことを特徴とする請求項２６記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は信号処理、より詳細には、信号処理における非ブロック化（deblocking）フィルタリングに係る。
【背景技術】
【０００２】
コンピュータ装置は、マイクロプロセッサ及びデジタル信号プロセッサを含め、広範な範囲のアプリケーションに対して設計されており、事実上あらゆる産業において用いられている。様々な理由から、これらアプリケーションの多くは、ビデオやオーディオデータ等のデータ処理に向けられており、低消費電力とコンパクト化が要求される。更に、幾つかのアプリケーションにおいては、リアルタイム或いはほぼリアルタイムにて実行が可能な高速計算エンジンが要求される。これらデータ処理アプリケーションの多くは、かつてない速度にて複数の機能を遂行する能力を有するデータ信号処理回路を必要としている。
【０００３】
様々なビデオ及びオーディオ信号処理アプリケーション、例えば、ＭＰＥＧ−４、デジタルＴＶ、対話型グラフィックアプリケーション（例えば、合成コンテンツ）、対話型マルチメディア等を含むＭＰＥＧ（moving pictures experts groups）は、様々なタイプのデータを様々なアプリケーションに対して統合化する能力を有する標準化された技術要素を採用する。例えば、ビデオアプリケーション、例えば、デジタルＴＶ、対話型グラフィックアプリケーション（例えば、合成コンテンツ）、対話型マルチメディア（例えば、World Wide Web、コンテンツの配信とコンテンツへのアクセス）の、製作、配信及びコンテンツアクセスなるパラダイムは統合化することができる。ＭＰＥＧ−４標準は、これら及び他のアプリケーションに対して、製作者、サービスプロバイダ、及び末端ユーザ等の需要を満たすための集合の技術を提供し、これらアプリケーションの統合化を助ける。ＭＰＥＧ−４標準に関する更なる情報については、ＭＰＥＧ（動画エクスパートグルーム）から、the International Organisation for Standardisation, at the Telecom Italia Lab of Torino, Italyにおいて得られる”Overview of the MPEG-4 Standard（ＭＰＥＧ−４標準の概要）”を参照されたい。
【０００４】
ＭＰＥＧ−４標準は、”メディアオブジェクト（media objects）”と呼ばれる、ある単位のコンテンツ、例えば、オーラル、ビジュアル及び／或いはオーディオビジュアルコンテンツを表現するための標準化されたやり方を提供する。これらマルチメディアオブジェクトは、自然なものであることも、合成されたものであることもある。例えば、カメラ或いはマイクロホンにて撮像・録音された自然のコンテンツであることも、合成コンピュータにて生成されたコンテンツであることもある。これらメディアコンテンツの組成を指定に従って混合することで、複号メディアオブジェクトが形成され、その結果としてオーディオビジュアルシーンが形成される。メディアオブジェクトと関連するデータは、ネットワークチャネルを通じて、特定のメディアオブジェクトの特性に対して適当なＱｏＳ（quality of service）にて、伝送できるように多重化及び合成され、受信者端の所で生成されるオーディオビジュアルシーンと相互作用する。
【０００５】
信号処理アプリケーション、例えば、ＭＰＥＧ−４標準を採用する処理アプリケーションにおいては、しばしば、信号データをフィルタリングすることは有益である。例えば、ＭＰＥＧ−４圧縮は、画素の８×８に関して動作するが、これらブロックは、通常は、メモリとの間で、３２−ビットバスを用いて、８回の２ワードバスアクセスを介して、読み書きされる。メモリ内においては、これら画素は、小さなエンディアンlittle endian）にすぎず、より大きなバイトアドレスは、より多くの画素を含み、各画素は、８−ビット値を有する。このアプローチによると、１つの３２ビットワードは、４画素を含み、この４画素は、通常、クワッド（quad）と呼ばれる。ＭＰＥＧ−４圧縮は劣化を伴う。つまり、解凍過程の結果として得られる画素の８×８ブロックが、圧縮過程に入力された８×８ブロックと異なることがある。このため、画素の複数の８×８ブロックが、ある画像に組立てられた場合、これら８×８ブロック間の境界が目障りとなることがある（例えば、画像が水平及び垂直エッジの形態にて”ブロック性（blockiness）”を示すことがある）。このブロック性に対処するためには、画素位置によって決定されるビデオオブジェクトのエッジを区画するデータが、より良い画像が得られるように、フィルタリングされる。ただし、このフィルタリングは非常に挑戦的な課題である。これは、様々なタイプのデータを、例えば水平及び垂直エッジフィルタリングのためにフィルタリングするためには、典型的には、異なるタイプのフィルタが必要となるためである。加えて、多くの従来のフィルタリングアプローチは、ゲート及び／或いはメモリサイクルを効率的には用いず、このため、不当に大きな帯域幅とメモリが要求される。
【０００６】
本発明は、上述の信号処理アプリケーションを含む、信号処理アプリケーションの実現と統合化に対する課題、並びに、ＭＰＥＧ４における信号のフィルタリング、及び他のタイプの信号の処理に対する課題を解決することに向けられる。
【発明の開示】
【０００７】
本発明の様々な態様は、信号処理アプリケーションにおけるフィルタリングに向けられる。より具体的なアプリケーションとしては、ＭＰＥＧ−４アプリケーションに着目され、本発明は、このＭＰＥＧ−４アプリケーションとの関連では、非ブロック化フィルタリング（deblocking filtering）に向けられる。
【０００８】
本発明の一つの実施例によると、ビデオ信号に対する画素データのブロック間のエッジデータが、データ格納装置及びフィルタリング回路を用いてフィルタリングされる。本発明によると、垂直及び水平両方向のフィルタリングに対して、単一のデータ格納装置を用いることが可能となり、第一のステップにおいて格納及びフィルタリングされたデータは、次のステップにおいて再使用され、その後、メモリ内に書き戻される。このアプローチでは、データをいったんメモリ内に書き戻し、後のある時点でデータを再び書き込むのではなく、次のフィルタリング動作のために格納装置内にデータを維持できることにより、メモリ帯域幅が低減することが可能となる。加えて、ロード及び／或いはアンロード（メモリからの読み込み及びメモリへの書き込み）は、データの、格納装置の第一の部分から第二の部分への移動（シフト）と同時に行うことが可能となるが、このやり方は、単一のクロックサイクルの間にこれを達成できるという点で、効率的である。
【０００９】
本発明のより具体的な実施例においては、ある画像内のあるエッジを共有する画素データの連続するブロックが、レジスタアレイの、それぞれ、第一と第二の半分内に、レジスタアレイの第一と第二の半分によって共有されるあるエッジが、画像内のエッジと対応するようなやり方にて、ロードされる。次に、レジスタアレイ内のエッジの両側のレジスタ内のデータがフィルタリング回路に送られ、その後、レジスタに戻される。このエッジに沿うデータが全てフィルタリングされると、レジスタアレイの第一の半分内のデータは、アンロードされ、メモリ内に書き込まれる。レジスタアレイの第二の半分内のデータはレジスタアレイの第一の半分内にシフトされ、レジスタアレイの第二の半分内には新たな画素データがロードされる。この新たな画素データは、レジスタアレイの第一の半分内にシフトされたデータとその画像内のあるエッジを共有する画素データのブロックと対応する。データが再び上述のようにしてフィルタリング回路に送られ、フィルタリング、アンロード及びロードが、その画像のある列或いは行内のデータが全てフィルタリングされるまで反復される。その行或いは列の終端に達すると、レジスタアレイの両方の半分内のデータはアンロードされ、メモリ内に書き込まれ；このレジスタアレイへのデータの読み込み、フィルタリング及びアンロードが、その画像データの追加の行或いは列に対して反復される。もう一つの具体的な実現（a more particular implementation）においては、ある画像に対する水平及び垂直方向の両方のエッジデータは、このレジスタアレイにて、メモリを通じての別個のパスを用いて、フィルタリングされる。もう一つのより具体的な態様においては、水平及び垂直の両方向のエッジデータが、レジスタアレイの第一の半分内でフィルタリングされた上で、データがアンロードされ、データがメモリ内に書き戻される。
【００１０】
上述の本発明の概要は、解説しようとする個々の実施例（embodiment）或いは全ての実現（implementation）を説明することを意図するものではなく、これら実施例については、後に図面を用いて詳しく例示される。
【００１１】
本発明は、以下の本発明の様々な実施例の添付の図面を用いての詳細な説明を読むことでより完全に理解できるものである。
【００１２】
本発明は、様々に修正及び変更することが可能であるが、図面には、単に例示として、特定の実施例が示されており、以下では、これらについて詳細に説明する。ただし、本発明は、説明されるこれら特定の実施例に制限されるものではなく、むしろ、本発明は、添付のクレームによって定義される本発明の精神及び範囲内に入る、全ての修正物、同等物及び代替物をカバーすることを意図する。
【００１３】
本発明は、信号を処理するための方法及び装置、例えば、ＭＰＥＧ−４タイプのアプリケーションにおけるビデオ信号の処理にとりわけ適するものと信ずる。本発明は、隣接する画素ブロック（例えば、８×８アレイ）内の垂直及び水平エッジをフィルタリングするための、ビデオデータの処理に対してとりわけ有効なことが発見されている。本発明は、必ずしも、このようなアプリケーションに限定されるものではないが、本発明の様々な態様が、このような環境（アプリケーション）内での幾つかの実施例を通じて最も良く理解できるものである。
【発明を実施するための最良の形態】
【００１４】
本発明の一つの実施例によると、ビデオ画素データは、連続的なフィルタリング動作の際に、その内部に格納されたデータを再利用するように構成されたレジスタアレイ或いはメモリ等の格納装置を用いてフィルタリングされる。この格納装置に格納されるデータは、それらの間にあるエッジを有するビデオ画素データの２つの集合に対応し、各集合は、それぞれ、この格納装置の第一及び第二の部分内に格納される。ビデオ画素データは、例えば、コンピュータ、デジタルＴＶ、対話型グラフィックアプリケーション及び／或いは対話型メディアアプリケーションにおいて用いられる連続的なビデオデータに対応する。この格納装置内の、エッジに向き合う（隣接する）両方のビデオ画素データ集合からのデータに対応するデータがフィルタリングされる。例えば、エッジのいずれかの側から外側に向かって延びるデータの２から４個程度の連続する画素（contiguous pixels）が、エッジ近傍の画素に対応するビデオデータの表示の外観を平滑化するため、或いは、例えば、ブロック性（blockiness）を訂正するために変更するためにフィルタリングされる。フィルタリングの後に、格納装置の第一の部分からデータはメモリ内に書き込まれ、格納装置の第二の部分からのデータはそのデータ格納装置内に維持され（例えば、第一の部分内に転送され）、新たなデータが格納装置内に読み込まれる。これら新たなデータは、格納装置の第二の部分内に前に格納されていた画素データと対応する画素と隣接し、これらともう一つのエッジを共有する画素に対応する。アレイ（格納装置）内のデータが、再び、上述のようにフィルタリングされが、今度は、前から格納装置の第二の部分内に存在していたデータがメモリ内に書き込まれ、この新たなデータは格納装置内に維持され、その後、第二の集合の新たなデータが、同様にして格納装置内に読み込まれる。このアプローチでは、水平或いは垂直フィルタリングを、単一タイプの格納装置を用いて達成することが可能となる。加えて、水平或いは垂直フィルタリングの各ステップに対して、データをたった１度だけメモリから読出す或いはこれに書き込むことのみで、データをフィルタリングすることが可能となる。本発明との関連で用いることができるフィルタリング回路及びフィルタリングアルゴリズムに関するより詳細な情報については、上で参照された”Overview of the MPEG-4 Standard（ＭＰＥＧ−４標準の概要）”なる資料を参照されたい。
【００１５】
図１は、本発明のもう一つの実施例による、ビデオ画像を表す画素データをフィルタリングするための流れ図である。ブロック１１０から開始して、画素データの第一と第二のブロックがメモリから、レジスタアレイの、それぞれ、第一と第二の半分内に読み込まれる。これら第一と第二のブロックの各々は、画素データの、それらの間にあるエッジを共有する、互いに隣接するブロックに対応する。例えば、これら第一と第二のブロックは、連続する画像データを表す画素の８×８ブロックを含み、各ブロックは共有されるエッジに隣接する８画素のブロックから成る。垂直に隣接する画像データに対応する画素ブロックがフィルタリングされる際には、これら２つのブロック間には、水平エッジが存在する。同様にして、水平に隣接する画像データに対応する画素のブロックがフィルタリングされる際には、これら２つのブロックの間には垂直エッジが存在する。ブロック１２０において、共有されるエッジに沿う画素データのこれら第一と第二のブロックの各々からの画素データがフィルタリングされる。フィルタリングの後、ブロック１３０において、レジスタアレイの第一の半分内のフィルタリングされたデータを含むデータはメモリ内に書き込まれる。ブロック１４０において、レジスタアレイの第二の半分内のフィルタリングされたデータを含むデータが、レジスタアレイの第一の半分内に書き込まれる。次に、ブロック１５０において、第二のブロックに隣接する画素に対するデータの追加のブロックがレジスタアレイの第二の半分内に書き込まれる。このプロセスは、その後、ブロック１２０から再開され、画素データのこの追加のブロックと画素データの第二のブロックとによって共有されるあるエッジに対応するデータがフィルタリングされる。ブロック１２０から１５０における、読み込み、フィルタリング、及び書き込みのシーケンスがビデオ画像に対応する追加の複数のブロックに対して反復される。
【００１６】
レジスタアレイは、本発明から逸脱することなく、多様なサイズ及び方向（オリエンテーション）にて実現することが可能である。図２Ａは、本発明の一つの実施例による、画素の８×１６ブロックを格納するように構成されたレジスタアレイ２００を示す。レジスタアレイ２００は、０−７にてラベル付けされた８個の列と、１６個の行を含み、これらによって、画素レジスタの８×１６アレイが構成される。各レジスタは、１画素に対するデータを格納する能力を有する８ビットレジスタから成る。水平エッジフィルタリングのためには、（例えば、図１のブロック１１０におけるようなやり方にて）、エッジ領域２１０を共有する画素が、レジスタアレイ２００の、それぞれ、上側及び下側８×８画素ブロック部分２２０、２２５内に読み込まれる。スライス２３０から開始して、レジスタアレイ２００の中央部分２０５内のレジスタ内に格納されている画素の１×１０スライスがフィルタリングされ、エッジ領域２１０のいずれかの側の４個のレジスタに対応するこうしてフィルタリングされた画素の１×８スライスがレジスタアレイ２００に戻される。フィルタリングがレジスタアレイ２００の中央部分２０５内の列０−７内の画素が全てフィルタリングされるまで反復される。
【００１７】
レジスタアレイの中央部分２０５に対する各列内の画素のフィルタリングを終えた後に、レジスタ内のデータは、下側の８×８画素ブロック部分２２５内の画素とある下側エッジを共有するある８×８画素ブロックに対する次のフィルタリングサイクルに対して更新される。上側の８×８画素ブロック部分２２０内に格納されていた画素はメモリ内に書き込まれ、下側の８×８画素ブロック部分２２５内に格納されていた画素が上側の８×８画素ブロック部分２２０内にシフトされ、画素の新たな８×８ブロックがメモリから読み出され、下側の８×８画素ブロック部分２２５内に読み込まれる。これら書き込み、シフト、及び読込み動作は、例えば、単一のメモリアクセスサイクルにて遂行される。データがシフトされた後においては、上側の８×８画素ブロック部分２２０内の画素の上側の４行はフィルタリングされたデータを含み、上側（下側）の８×８画素ブロック部分２２０（２２５）内の画素の下側の４行はまだフィルタリングされてないデータを含む。エッジデータのスライスが、再び、上述と類似するやり方にて、スライス２３０から開始して、フィルタリングされる。いったんデータのフィルタリングを終えると、書き込み、シフト及び読込み動作が再び遂行され、画素のもう一つの新たな８×８画素ブロックがレジスタアレイ２００内に読み込まれる。８×８画素ブロックのある列の終端に達し、このフィルタリングも終了すると、このレジスタアレイの両方の半分がメモリ内に書き込まれる。８×８画素ブロックのある別の列をフルタリングすることが必要とされる場合は、新たな８×８画素ブロックが上側（２２０）と下側（２２５）８×８画素ブロック部分の両方内に読み込まれ、このプロセスが上述のように続けられる。
【００１８】
図２Ｂは、本発明のより具体的な実施例による、図２Ａ内のレジスタアレイ２００の一つの実現に対するブロック図２４０である。この実現においては、レジスタアレイ２００（２４０）は、先入れ先出し（first-in first-out, ＦＩＦＯ）アレイ（例えば、シフトレジスタ）として動作する、つまり、レジスタアレイ２４０は、メモリ読出しポートからロードされ、このアレイ内のデータは、水平エッジフィルタリングに対しては、それぞれ、水平ロード及びアンロードポート２４２、２４４を介して、下から上へとシフトされる。データはフィルタリングを終えると、レジスタアレイからアンロードポート２４４を介してレジスタの外にシフトアウトされ、メモリに書き戻される。垂直エッジフィルタリングに対しても、データは、レジスタアレイ内を同様にシフトされるが、ただし、下から上へではなく、それぞれ、ロード及びアンロードポート２４６、２４８を用いて、左から右へとシフトされる。レジスタアレイ２００（２４０）は、レジスタ内の画素データをシフトし、画素をフィルタリングのためにフィルタ計算論理（図示せず）に供給するためシフトレジスタとして機能するとともに、フルタリングされた結果を保存する機能も有する。
【００１９】
行及び列インデックス２５２及び２５４は、それぞれ、８‐ビット画素レジスタが、このアレイ内のどこに位置するかを示す。このアレイ内に読み込まれた８×８画素ブロック間の境界は、水平及び垂直エッジフィルタリングの両方に対して、行７と８の間の境界に対応する。矢印”↑”及び”→”は、アレイ内をデータがシフトされる方向を示し、ブロック図２４０上の定義された各領域は水平及び垂直シフトを実行するために一意的に制御される。行と列のアレイの外側のボックスは、コアレジスタアレイの内でのシフトから見て外側に位置する多重化（マルチプレキシング）を表す。上へのシフトは以下のように表される：つまり、”Ａ↑”は、行０−７、列３−０内におけるアレイの４×８スライスの上へのシフトを示し；”Ｂ↑”は、行０−７、列７−４内におけるアレイの４×８スライスの上へのシフトを示し；”Ｃ↑”は、行８−１５、列３−０におけるアレイの４×８スライスの上へのシフトを示し；”Ｄ↑”は、行８−１５、列７−４におけるアレイの４×８スライスの上へのシフトを示す。Ｃ↑及びＤ↑は、シフトの際に下側のレジスタをロードするとき用いられる。アレイの右へのシフト、つまり、Ｅ→、Ｆ→、Ｇ→、Ｈ→、及びＪ→なるシフトは、垂直エッジフィルタリングのためにデータをローディングするため、及び／或いはフィルタリングの際にデータをシフトするために用いられる。
【００２０】
一つの実現においては、水平エッジフィルタリングは、ブロック図２４０を用いて、以下のように行なわれる。２つの８×８画素ブロックがアレイ２００内にロードされる。第一の８×８画素ブロックは画像の上側部分から得られ、第二の８×８画素ブロックは、その画像の、第一の８×８画素ブロックの直ぐ下の、これと隣接する部分から得られる。画素データを、行１５内にロードするためには、下位アドレスクワッド（４ビットに相当する部分）についてはＡ↑及びＣ↑が用いられ、上位アドレスクワッドについてはＢ↑及びＤ↑が用いられる。ここで、各クワッド（quad）は、データの４画素幅集合を含む。いったん画素データがレジスタアレイ２００内にロードされると、次に、フィルタリングアルゴリズムによってデータが右にシフトされる。例えば、Ｆ→、Ｇ→、Ｈ→、及びＩ→を用いて新たにフィルタリングされたデータが列７、行４−１１にロードされ、同時に、列０、行３−１２からの新たなまだフィルタリングされてないデータがフィルタリングアルゴリズムに供給される。フィルタリングの際には、フィルタリング計算から戻されるのは行４−１１のみであるため、列０、行３が列７、行３にラップバックされ；同様にして、列０、行１２が列７、行１２にラップバックされる。各フィルタリング動作に対して、レジスタアレイ内の各列内のデータは、一列だけ右にシフトされ、最も右の列（０）はフィルタリングされた上で、最も左の列（７）に書き戻される。このフィルタリング及びシフティングが、行４−１１内の全てのデータがフィルタリングされ、アレイ２００内の元の位置にシフトバックされるまで行なわれる（例えば、８回のフィルタリング及びシフティング動作の後に、フィルタリングされたデータは、それが開始時にまだフィルタリングされてないデータとして置かれていた元の列内に戻る）。
【００２１】
水平エッジのフィルタリングを終えた後に、アレイ２００の上側の８個の行（０−７）は、Ａ↑及びＢ↑を用いて、行０のデータタップポイントの所からメモリ内にアンロードされる。下位アドレスクワッドに対しては列０−３が用いられ、上位アドレスクワッドに対しては列４−７が用いられる。上位アドレスがメモリ内に書き込まれると、Ａ↑及びＢ↑がアクティブとなり、アレイ２００の上側の８×８セクションが上にシフトされる。このアンロードステップの際には、アレイの下側の８行（８−１５）はシフトされない。一つの態様においては、このアンロードステップの際に行８内のデータが行０−７内に複製される。複製されたデータを有する行０−７は、その後、新たなデータがアレイの下側にロードされるとき上書きされる。
【００２２】
第一の８×８画素ブロックのアンロードを終えると、新たな８×８画素ブロックがメモリアレイ２００内にロードされる。この新たな８×８画素ブロックは、画像内の、第二の８×８画素ブロックと隣接する、この直ぐ下のブロックから成る。画素データを行１５内にロードする際には、下位アドレスクワッドに対してはＡ↑及びＣ↑シフト、上位アドレスクワッドに対してはＢ↑及びＤ↑シフトを用いて、行８−１５内のデータが、これらの内容を保存するために、行０−７内にシフトされる。このフィルタリング、アンロード及びロード（及び対応する行８−１５からデータの行０−７への対応するシフト）が、その画像内の８×８画素ブロックのある列全体がフィルタリングされるまで反復される。ある列内の少なくとも２つの８×８画素ブロックによって共有されるある水平エッジのフィルタリングが完了すると、アレイ内の両方の８×８画素ブロックがアンロードされ、メモリ内に書き込まれる。このとき、下位アドレスクワッドをアンロードするためにはＡ↑及びＣ↑が用いられ、上位アドレスクワッドをアンロードするためにはＢ↑及びＤ↑が用いられる。
【００２３】
もう一つの実現においては、垂直エッジフィルタリングが、レジスタアレイ２００を用いて、ブロック図２４０に示されるようなやり方にて、以下のように行なわれる。２つの８×８画素ブロックがアレイ２００内にロードされる。第一の８×８画素ブロックはある画像の左エッジから得られ、第二の８×８画素ブロックは、その画像の、データの第一の８×８画素ブロックの右に隣接する部分から得られる。この８×８画素データは、列７、行０−１５内に、第一のアドレスクワッド（行０−３）についてはＥ→及びＦ→シフトを用いて、第二のアドレスクワッド（行４−７）についてはＧ→シフトを用いて、第三のアドレスクワッド（行８−１１）についてはＨ→シフトを用いて、そして、第四のアドレスクワッド（行１２−１５）についてはＩ→及びＪ→シフトを用いて、ロードされる。ロードされる画素データのバイトの順番が、上述の水平モードのデータのロードの場合と比較して逆転される（例えば、仮想メモリアドレスとオブジェクト識別子とが入れ換えられる）。これは、通常、スイズル（swizzle）と呼ばれ、これによって、データがフィルタリングのための適当な（水平或いは垂直の）方向に向けられる（オリエンテーション）される。より具体的には、バイトの順番を逆転されることで、垂直エッジに沿うデータが、フィルタリングの計算に対しては、行７と８との間のエッジと対応するようにされる。後に説明するように、フィルタリングの後、データのバイトの順番は、再び、逆転、すなわち、アンスイズル（unswizzle）された上で、メモリ内にアンロードされる。
【００２４】
レジスタアレイ内にロードされた後、これら垂直にロードされた８×８画素ブロックは、水平エッジフィルタリングとの関連で上で説明したそれと類似するやり方にて、フィルタリングされる。Ｆ→、Ｇ→、Ｈ→、及びＩ→なるシフトが用いて、列０、行３−１２の所のまだフィルタリングされてないデータがフィルタリングアルゴリズムに供給され、同時に、新たにフィルタリングされたデータが、列７、行４−１１内にロードされる。列０、行３及び１２の所のデータは、それぞれ、列７、行３及び１２内にラップバックされる。
【００２５】
フィルタリングの後、フィルタリングされた境界データのみが、レジスタアレイ２００からメモリ内にアンロードされる。ブロックの境界（例えば、行７と８との間の境界）のいずれかの側の１クワッド（４画素ビット）がメモリ内に書き戻される。この際のアンロードに対するタップポイントとしては、下位アドレスクワッドに対しては列０、行４−７が用いられ、上位アドレスクワッドに対しては列０、行８−１１が用いられる。このアンロードにおいては、データのあるアレイ全体をメモリ内に書き込むことは要求されず、一つの態様においては、境界のいずれかの側のクワッド（４画素ビット）に対応する行４−１１のみがメモリ内に書き込まれる。上位アドレスクワッドが書き込まれると、アレイ全体がＥ→、Ｆ→、Ｇ→、Ｈ→、Ｉ→及びＪ→なるシフトを用いて右にシフトされ、列０、行８−１５が列７、行０−７にラップバックされ、その後、新たな８×８画素ブロックが行８−１５内にロードされる。この新たな８×８画素ブロックは、Ｈ→、Ｉ→及びＪ→なるシフトを用いてロードされ、データをアレイの列７、行８−１５の所に供給する。このフィルタリング、アンロード及びロード（及びこれに対応するデータのシフト）が、その画像内の８×８画素ブロックのある行全体がフィルタリングされるまで反復される。
【００２６】
本発明のもう一つの実施例においては、フィルタ計算パス内の中間ポイントの計算をパイプライン化（pipelining）するために、列１、行３−１２の所にタップポイントが追加される。このパイプライン化は、例えば、計算論理が複数のクッロクを必要とし、高いフィルタ帯域幅が必要とされる場合に有効である。フィルタリング回路は、中間結果を保持するように構成されたレジスタを含む。フィルタリング動作の第一のクロックにおいては、列０からのデータを用いて、中間値が計算及び格納される。第二から第九番目のクロックにおいては、列１からのデータを用いて中間値が計算される。最終的なフィルタリングされたデータは、列０と、前に格納された中間値を用いて計算される。このアプローチによると、長い計算パスを有するフィルタにて、より高い周波数にて動作することが可能となる。このアプローチでは、８回のフィルタ計算から成る各集合に対して１つの追加のクロックが必要となるが、ただし、結果として、全体として見ると、計算時間を（１列当り２クロックが必要とされる場合）１６クロックから９クロックに削減することが可能となる。この９クロックの内訳として、（８個の）各列に対して１クロックが必要となることに加えて、パイプラインを整える（prime）するために１クロックが必要となる。
【００２７】
本発明のもう一つの実施例においては、このフィルタリングシステムは、フィルタ計算論理の、２つの同一の独立したブロックから構成される。レジスタアレイは、計算論理の各ブロックに対して１つの、２集合のタップポイントを有する。第一の集合のタップポイントは、まだフィルタリングされてないデータのために、列０、行３−１２の所に設けられる。フィルタリングされたデータは、列３、行４−１１内に戻され、まだフィルタリングされてないデータは列３、行３と１２にラップバックされる。第二の集合のタップポイントは、まだフィルタリングされてないデータのために、列４、行３−１２の所に設けられる。フィルタリングされたデータは列７、行４−１１に戻され、まだフィルタリングされてないデータは、列７、行３と１２内にラップバックされる。こうして、フィルタリングを遂行するために要求されるシフトの回数は、８回から４回に低減される。このフィルタ計算論理のパイレル化は、高速アプリケーションのためのもので、１６×１６等のより大きなサイズのレジスタアレイに適する。
【００２８】
以下の説明においては、フィルタリングアプローチ及び技術は、レジスタアレイ２００及び上でブロック図２４０との関連で説明した対応するフィルタリングアプローチを用いるものと想定される。より大きなレジスタアレイを用いる態様においても、類似するローディング、アンローディング、フィルタリング及びシフティング技術を用いることができるが、ただし、以下の説明では、本発明のこのようなより大きなレジスタアレイを用いる態様の具体的な実施例については簡素化のために割愛される。
【００２９】
図３Ａ及び３Ｂは、本発明のもう一つの実施例による、図２Ａに示されるレジスタアレイ２００のようなレジスタアレイを用いてのフィルタリングを施される画素のアレイ３０５を示す。図３Ａは、一例として、図２Ａのレジスタアレイ２００を用いて、８×−列３５２内の、８×行３４１と８×行３４２の所の８×８画素ブロックによって共有される水平エッジ３２１に沿う画素データがフィルタリングされる際の様子を示す（ここで、８×行或いは８×列は、８×８画素ブロックの行或いは列を表す）。最初に、８×行３４１、８×列３５２の所の８×８画素ブロック内のデータがメモリから読み出され、（図２Ａ）の上側画素ブロック部分２２０内にロードされ、８×行３４２、８×列３５２の所の８×８画素ブロック内のデータがメモリから読み出され、（図２Ａの）下側画素ブロック部分２２５内にロードされる。エッジ３２１の両側の画素ブロックの部分３２０のスライス（１×１０列）が、上述のフィルタリング回路及びフィルタリングアルゴリズムを用いるフィルタリング回路に送られる。これらスライスは、例えば、上で図２Ｂのブロック図２４０との関連で説明したように、シフトレジスタを用いて、列１−７の各々を右に１列だけシフトさせることで列０から得ることができる。フィルタリングの後、上側画素ブロック部分２２０は、レジスタアレイからアンロードされ、メモリ内に書き戻される。下側画素ブロック部分２２０は、上側画素ブロック部分２２０内にシフトされ、８×行３４３、８×列３５２の所の８×８画素ブロックがメモリから読み出され、下側画素ブロック部分２２５内にロードされる。次に、８×列３５２内の、エッジ３２２の両側のエッジデータが同様にしてフィルタリングされる。８×列３５２内の、エッジ３２１及び３２２近傍のデータのフィルタリングを終えると、隣接する８×列３５１或いは８×列３５３内の、８×行３４１及び３４２からの新たなデータが、レジスタアレイ２００の上側部分と下側部分の両方に読み込まれ、類似のフィルタリング動作が遂行される。
【００３０】
図３Ｂに示される本発明のもう一つの実施例においては、垂直エッジデータが、図３Ａにおいて遂行されたフィルタリング動作と類似するやり方にて、ただし、水平方向に配置（オリエント）された１６×８レジスタアレイを用いて（例えば、図２Ａのレジスタアレイ２００の辺を回転されることで）フィルタリングされる。８×行３４２内のデータが、左から右に向かって８×列３５１、３５２から開始してフィルタリングされ、これが８×列３５３へと続けられる。８×行３４２内の、８×列３５１及び３５２内の８×８画素ブロックの所のデータが、この１６×８アレイの左半分と右半分内に書き込まれる。８×行３４２内の、エッジ３３１の両側の８×列３５１及び３５２の部分３３０内のエッジ画素のデータのスライス（１０×１行）を、フィルタリングアルゴリズム内で用いることで、８×行３４２内の、エッジ３３１の両側の４画素のおのおの内の画素データがフィルタリングされる。フィルタリングを終えると、フィルタリングされたデータはレジスタアレイの中央部分（例えば、８×行３４２内の、エッジ３３１のいずれかの側に延びる４画素から成る８×８ブロック）がアンロードされ、メモリ内に書き戻される。レジスタアレイの右半分内のデータがレジスタアレイ内の左半分にシフトされ、；８×行３４２内の、８×列３５３の所の８×８画素ブロック内のデータがメモリから読み出され、レジスタアレイの右半分内にロードされる。次に、８×行３４２内の、エッジ３３２の両側の画素データが、１０×１スライスを用いて、類似のやり方にてフィルタリングされ、必要であれば、このプロセスが、再び、８×行３４１及び／或いは３４３の所から続けられる。
【００３１】
図４Ａから４Ｄに示される本発明のもう一つの実施例においては、画素のアレイ４００（図にはこれら画素によって表されるある画像の左上部分が示されている）が、水平及び垂直両方のエッジデータをフィルタリングするための１６×１６レジスタアレイ（図示せず）を用いて、フィルタリングされる。この１６×１６レジスタアレイは、上で図２Ａ及び２Ｂとの関連で説明した８×１６レジスタアレイと類似する。アレイ４００は、１６×行４４１及び４４２と、１６×列４５１及び４５２内の画素データの１６×１６ブロックを含むが、各１６×１６ブロックは、個々の８×８画素ブロック間に垂直エッジ部分及び水平ヘッジ部分を有する（ここで、１６×行或いは１６×列は、１６×１６画素ブロックの行或いは列を表す）。垂直エッジ４３１、４３２、４３３；水平エッジ４２１、４２２、４２３は、個々の８×８画素ブロックを分離する。このアレイ４００が、水平エッジフィルタリングのためのこのアレイを通じての第一のパス、及び垂直エッジフィルタリングの第一の半分を用いることに加えて、垂直エッジフィルタリングの残りの半分に対するこのアレイを通じての第二のパスを用いることでフィルタリングされる。第二のパスの際には、メモリ内にはデータの半分のみを書き込むことで、メモリ書き込みサイクルが、８×１６なるサイズのレジスタアレイを用いる場合と比較して低減される。
【００３２】
図４Ｂは、１６×行４４１、１６×列４５１の所の１６×１６ブロック内の、水平エッジ４２１に沿う画素データと、垂直エッジ４３１に沿う画素データがフィルタリングされる様子を示す。フィルタリングは、画像の左上角の所から開始され、画素の１６×１６ブロックがこの１６×１６レジスタアレイ内にロードされる。データの各行に対して４ワード（クワッド）が読み込まれる。この１６×１６レジスタアレイにおいては、フィルタリングは、最初に、１６画素列に対して、全水平エッジ４２１に関して遂行され、水平エッジ４２１に最も近い４行内の画素が、例えば、上述のそれと類似するやり方にてフィルタリングされる。
【００３３】
次に、この１６×１６レジスタアレイ内の上側８画素行に対する垂直エッジ４３１が、例えば、上側８行の各々に対するエッジ４３１の両側の４列をフィルタリングすることで、フィルタリングされる。一つの態様においては、最も上の行からのデータの水平スライスが得られ、フィルタリング回路に送られ、フィルタリングされたデータは、フィルタリング回路から水平エッジ４２１に隣接する行内に戻され、他の８画素行の各々は、１行だけ上にシフトされる。加えて、水平スライス内の、フィルタリングのためには用いられたが、ただし、（水平エッジ４２１に隣接する行内には）戻されなかったデータは、最も上の行から、水平エッジ４２１に隣接する行内にラップバックされる。垂直エッジ４３１のフィルタリングを終えると、１６×１６レジスタアレイの上側半分（エッジ４２１の上側の８画素行）は、アレイからアンロードされ、メモリ内に書き込まれる。
【００３４】
１６×１６レジスタアレイの上側８行をアレイからアンロードした後、１６×１６レジスタアレイの下側の８行が、エッジ４２１に隣接する４行内のフィルタリングされたデータも含めて、１６×１６レジスタアレイの上側８行内にシフトされる。次に、図４Ｂ内のエッジ４２２の下側の８画素行がメモリから読み出され、この１６×１６レジスタアレイの下側８行内にロードされる。結果として、この１６×１６レジスタアレイは、１６×行４４１の下側半分に対するデータと、１６×行４４２の上側半分に対するデータとを含むこととなる。
【００３５】
図４Ｃは、図４Ｂに示される動作に続くフィルタリング動作、つまり、画素データの連続する８行に対して、上で説明されたフィルタリング、アンローディング、及びローディングのシーケンスが反復される様子を示す。アレイ４００内のある列の最も下（図示せず）に到達すると、１６×１６レジスタアレイ内に格納されている垂直エッジに関する垂直エッジフィルタリングは全て完了し、１６×１６レジスタアレイの１６行の全てがアンロードされ、メモリ内に書き込まれる。フィルタリング動作は、次に、４Ｄに示されるように、アレイ４００内の、次の１６×列４５２に移動し、１６×行４４１内の、１６×列４５２の所の１６×１６画素ブロック内のデータが、１６×１６レジスタアレイにロードされる。フィルタリングが、同様にして、この１６×列４５２が全てフィルタリングされるまで遂行される。
【００３６】
図４Ａから４Ｄとの関連で上で説明したようにアレイ４００内の、列の各々を通じての第一のパスを終えると、アレイ４００を通じて第二のパスが、１６×１６ブロック間の垂直エッジデータ（例えば、垂直エッジ４３２に対するデータ）をフィルタリングするために遂行される。一つの態様においては、データの１６×１６ブロックが再び１６×１６レジスタアレイ内にロードされ、この垂直エッジデータがフィルタリングされる。例えば、これら１６×１６ブロックを１つの８×８ブロックだけ右にオフセットすることで、垂直エッジが１６×１６アレイの中央に置かれる。フィルタリングを終えると、１６×１６アレイの中央の８×１６スライスのみがメモリ内に書き戻される。
【００３７】
もう一つの態様においては、後の詳細に説明するように、３２×８画素ブロックが３２×８レジスタアレイ内に読み込まれる。このアプローチでは、画素データを伝送するために用いられるバスのバースト能力（bursting capability）を利用することで、４ワードを読み込むことで１６×１６アレイの１行を満たす代わりに、８ワードを読み込むことで３２×８アレイの１行が満たされる。このため、このアプローチは、１６×１６アレイアプローチと比較してより効率的である。
【００３８】
本発明のもう一つの態様においては、用いられているレジスタアレイのザイズに均等に分割できない画素数を有する画素アレイが、上で説明された幾つかの実施例と類似のやり方にてフィルタリングされる。例えば、８８画素幅のアレイが１６×１６レジスタアレイを用いてフィルタリングされる場合、１６画素幅を有する５列と、たった８画素幅しか有さない１列が存在することとなる。この例においては、フィルタリングは、同一でない列幅に対処できるように変更される（例えば、幅が検出され、上で図４Ｂから４Ｃとの関連で説明した、列の各々を通じての第一のパスと類似するやり方にて、水平及び垂直の両方のエッジフィルタリングが遂行される。ただし、異なる点として、水平エッジフィルタリングは、メモリアレイの最後の８×列に対応する１６×１６アレイの一方の１半分についてのみ遂行される）。
【００３９】
図５Ａから５Ｃに示される本発明のもう一つの実施例においては、画素アレイ５００の垂直エッジ部分が、３２×８画素ブロックと３２×８レジスタアレイとを用いてフィルタリングされる。画素アレイ５００は、例えば、図４Ａから４Ｄに示されるアレイ４００と同一なものであり、上述の水平及び垂直フィルタリングステップが既に遂行されており、アレイ４００内の１６×１６ブロック間の垂直エッジのみがまだフィルタリングされていないものと想定される。このアプローチにおいては、１６×１６フィルタリングは上述のやり方にて達成され、まだフィルタリングされてない垂直エッジの残りの部分が、フィルタリングされるべき残りのエッジ部分の数が限られているために、１６×１６フィルタリングアプローチをもう一度用いるより効率的なやり方にてフィルタリングされる。例えば、３２×８レジスタアレイは、このアレイ内の２つの別個のエッジ部分を、別個のフィルタリング論理を用いて、同時にフィルタリングするために、特に有効である。二重２のフィルタリング論理を用いることで、両方のエッジを、１つのエッジをフィルタリングするために通常要求されるのと同一の時間にてフィルタリングすることが可能となる。
【００４０】
図５Ａにおいては、８×８画素ブロックの２つの１つ置きのエッジ（エッジ５３１と５３２）に対応する垂直エッジ画素のデータが、例えば、上述のような２次元シフトレジスタ（two-dimensional shift register）を用いてフィルタリングされる。８×列５２１の３２×画素幅部分５１０が、図２Ａに示される８×１６レジスタアレイ２００と類似する、３２×８レジスタアレイ（図示せず）内に読み込まれる。（上述のように１６×１６フィルタリングの際に垂直エッジの半分は既にフィルタリングされているため）、１つ置きのエッジからのエッジデータをフィルタリングすることのみが必要されるために、３２×８レジスタアレイの１半分から、上で８×１６及び１６×１６レジスタアレイとの関連で行なわれるように、データを読み込むことは要求されず、ここでは、フィルタリングされる垂直エッジのいずれかの側の５画素を含むデータの１×１０スライスがフィルタリングされることとなる。エッジ５３１との関連では、１×１０スライス５５１が得られ、上述のようなフィルタリング動作が二次元シフトレジスタを用いて遂行される。同様にして、エッジ５３１に対するデータをフィルタリングした後に、垂直エッジ５３２の両側の５画素を含むスライスがフィルタリング計算に送られる。このフィルタリングが完了すると、垂直エッジ５３２と５３２の各々を水平方向から見て中心として位置するフィルタリングを終えた８×８画素ブロックが３２×８レジスタアレイからアンロードされ、メモリ内に書き込まれる。
【００４１】
図５Ｂにおいては、８×行５１２内の、隣接する３２×８画素ブロック５１２が３２×８レジスタアレイ内に読み込まれ、フィルタリングが、画素ブロック５１０との関連で上で説明したようなやり方にて遂行される。垂直エッジ５３３と５３４を水平方向から見て中心として位置する８×８画素ブロックが、同様にして、フィルタリングされ、アンロードされ、メモリ内に書き戻される。いったんある行の端に到達すると、この３２×８フィルタリングは、図５Ｃに示されるように、部分５１０の直ぐ下の、部分５１１内の、次の８×行５２２から再開される。エッジ５３１と５３２を有する部分５１１が、上で説明された部分５１０のフィルタリングと類似するやり方にて、フィルタリングされる。同様にして、追加の行が、アレイ５００全体のフィルタリングを終えるまで、フィルタリングされる。
【００４２】
図６は、本発明の一つの実施例による、画素データのブロックをフィルタリングするために構成されたシステム６００を示す。システム６００は、例えば、ＴＶ或いはコンピュータの画面上に表示されるべき画素に対する画像データを格納するように構成されたメモリ６１０を含む。メモリ６１０は、画素データを転送するように設計されたバス６０５、例えば、上述のような画素データを表すワードを伝送するように構成された３２‐ビットバスと接続される。バス６０５は、メモリ６１０を、コントローラ６４０及びレジスタアレイ６２０とに接続する。コントローラ６４０は、メモリ６１０とレジスタアレイ６２０との間のデータの移動、並びにレジスタアレイ６２０とフィルタ回路６３０との間のデータの移動を制御するように適合化される。レジスタアレイ６２０とフィルタ回路６３０は、画素エッジのデータをフィルタリングする際に、レジスタアレイ６２０内のデータを、後続のエッジのフィルタリングのために、シフトし、再使用するように構成される。一つの態様によると、レジスタアレイ６２０は、図２Ａ及び２Ｂとの関連で上で説明されたそれと一貫するやり方にて、コントローラ６４０を介して動作するように構成される。
【００４３】
本発明の一つ或いは複数の実施例（example embodiments）と一貫するフィルタリングシーケンス及びアプローチに関する更なる詳細、及び一つ或いは複数の実施例の更なる形態（implementations）に関しては、添付の付録（パーツＡ及びＢ）を参照されたい。
【００４４】
本発明は、上で説明された特定の実施例に制限されるものと解されるべきではない。例えば、フィルタリングの順番を変えることも（例えば、上から下、下から上、右から左、左から右等、とすることも）、レジスタアレイのサイズを変えることも、及び／或いは他の類似のバリエーションを考えることもできる。様々な修正物、同等なプロセス、並びに本発明を適用することができる様々な構成が添付のクレームに定義される本発明の範囲内に入るものである。
【図面の簡単な説明】
【００４５】
【図１】本発明の一つの実施例による、水平及び垂直の方向の両方のエッジをフィルタリングするために構成されたレジスタアレイを用いてデータをフィルタリングするための方法を示す流れ図である。
【図２Ａ】本発明の一つの実施例による、水平或いは垂直エッジデータをフィルタリングするために構成されたレジスタアレイを示す図である。
【図２Ｂ】本発明の一つの実施例による、図２Ａのレジスタアレイに対する一つの実現態様を示すブロック図である。
【図３Ａ】本発明の一つの実施例による、水平エッジデータフィルタリングのために構成されたレジスタアレイを用いての、データの水平エッジフィルタリングを示す図である。
【図３Ｂ】本発明の一つの実施例による、垂直エッジデータフィルタリングのために構成されたレジスタアレイを用いての、データの垂直エッジフィルタリングを示す図である。
【図４Ａ】本発明のもう一つの実施例による、１６×１６画素ブロックのアレイのデータの、垂直エッジフィルタリングと水平エッジフィルタリングとを組み合わせるやり方を示す図である。
【図４Ｂ】本発明のもう一つの実施例による、１６×１６画素ブロックのアレイのデータの、垂直エッジフィルタリングと水平エッジフィルタリングとを組み合わせるやり方を示す図である。
【図４Ｃ】本発明のもう一つの実施例による、１６×１６画素ブロックのアレイのデータの、垂直エッジフィルタリングと水平エッジフィルタリングとを組み合わせるやり方を示す図である。
【図４Ｄ】本発明のもう一つの実施例による、１６×１６画素ブロックのアレイのデータの、垂直エッジフィルタリングと水平エッジフィルタリングとを組み合わせるやり方を示す図である。
【図５Ａ】本発明のもう一つの実施例による、８×３２画素ブロックのアレイのデータの、垂直エッジフィルタリングを示す図である。
【図５Ｂ】本発明のもう一つの実施例による、８×３２画素ブロックのアレイのデータの、垂直エッジフィルタリングを示す図である。
【図５Ｃ】本発明のもう一つの実施例による、８×３２画素ブロックのアレイのデータの、垂直エッジフィルタリングを示す図である。
【図６】本発明のもう一つの実施例による、画素データをフィルタリングするためのシステムを示す図である。
【符号の説明】
【００４６】
６００  システム
６０５  バス
６１０  メモリ
６２０  レジスタアレイ
６４０  コントローラ
【図１】
2005535198.tif 000003
2005535198.tif 000004
【図２Ｂ】
2005535198.tif 000005
【図３Ａ】
2005535198.tif 000006
【図３Ｂ】
2005535198.tif 000007
【図４Ａ】
2005535198.tif 000008
【図４Ｂ】
2005535198.tif 000009
【図４Ｃ】
2005535198.tif 000010
【図４Ｄ】
2005535198.tif 000011
【図５Ａ】
2005535198.tif 000012
【図５Ｂ】
2005535198.tif 000013
【図５Ｃ】
2005535198.tif 000014
【図６】
2005535198.tif 000015
【国際調査報告】
2005535198.tif 000016
2005535198.tif 000017
2005535198.tif 000018