外部からの入力画像データを格納する入力メモリと、前記入力メモリからマクロブロックサイズ毎に画素データを読み出してサブブロックグループの画素データに分割し、分割した画素データを処理ステージ毎に順番に第1の中間メモリに格納するサブブロック分割部と、サブブロックグループ毎に、前記第1の中間メモリから画素データを読み出して垂直方向のサブブロック境界画素を中心にデブロッキングフィルタ処理を行い、処理後の画素データを第2の中間メモリに格納する垂直エッジフィルタ処理部と、サブブロックグループ毎に、前記第2の中間メモリから画素データを読み出して水平方向のサブブロック境界画素を中心にデブロッキングフィルタ処理を行い、処理後の画素データを第3の中間メモリに格納する水平エッジフィルタ処理部と、前記第3の中間メモリから処理ステージ毎に順番に読み出したサブブロックグループの画素データを連結してマクロブロックの画素データに再構成して出力するサブブロック連結部と、を具備するデブロッキングフィルタ装置。請求項1記載のデブロッキングフィルタ装置において、前記垂直エッジフィルタ処理部と前記水平エッジフィルタ処理部とは、同じ処理ステージでそれぞれのフィルタ処理を並列実行するように構成するとともに、前記垂直エッジフィルタ処理部による処理ステージの後に前記水平エッジフィルタ処理部による処理ステージが続くようにパイプライン実行するように構成したことを特徴とするデブロッキングフィルタ装置。請求項1記載のデブロッキングフィルタ装置において、第2の中間メモリを、2面メモリで構成し、2面メモリの一方が、垂直エッジフィルタ処理部の処理データを格納しているときは、2面メモリの他方が、格納データを読み出して水平エッジフィルタ処理部へ供給するように、交互に切り換えるように構成したことを特徴とするデブロッキングフィルタ装置。請求項1記載のデブロッキングフィルタ装置において、更に、外部からフィルタ処理モードを決定するための符号化パラメータを入力して、フィルタ処理モードを決定するためのフィルタ制御部を備えることを特徴とするデブロッキングフィルタ装置。請求項1記載のデブロッキングフィルタ装置において、前記マクロブロックサイズを水平16画素×垂直16画素とし、前記サブブロックグループを、水平4画素×垂直4画素からなるサブブロック4個の集合で構成し、前記サブブロック分割部は、マクロブロックを4個のサブブロックグループに分割するように構成したことを特徴とするデブロッキングフィルタ装置。デブロッキングフィルタとして、請求項1乃至5の何れか1つに記載のデブロッキングフィルタ装置を用いた動画像符号化装置。請求項6記載の動画像符号化装置において、前記デブロッキングフィルタ装置を複数個実装して、複数マクロブロックのデブロッキングフィルタ処理を並列に実行するように構成したことを特徴とする動画像符号化装置。デブロッキングフィルタとして、請求項1乃至5の何れか1つに記載のデブロッキングフィルタ装置を用いた動画像復号化装置。請求項8記載の動画像復号化装置において、前記デブロッキングフィルタ装置を複数個実装して、複数マクロブロックのデブロッキングフィルタ処理を並列に実行するように構成したことを特徴とする動画像復号化装置。入力メモリからマクロブロックサイズ毎に画素データを読み出してサブブロックグループの画素データに分割し、分割した画素データを処理ステージ毎に順番に第1の中間メモリに格納するステップと、サブブロックグループ毎に、前記第1の中間メモリから画素データを読み出して垂直方向のサブブロック境界画素を中心にデブロッキングフィルタ処理を行い、処理後の画素データを第2の中間メモリに格納するステップと、サブブロックグループ毎に、前記第2の中間メモリから画素データを読み出して水平方向のサブブロック境界画素を中心にデブロッキングフィルタ処理を行い、処理後の画素データを第3の中間メモリに格納するステップと、前記第3の中間メモリから処理ステージ毎に順番に読み出したサブブロックグループの画素データを連結してマクロブロックの画素データに再構成して出力するステップと、からなるデブロッキングフィルタ処理方法。請求項10記載のデブロッキングフィルタ処理方法において、垂直方向のサブブロック境界画素を中心とするデブロッキングフィルタ処理と、水平方向のサブブロック境界画素を中心とするデブロッキングフィルタ処理とを、同じ処理ステージで並列実行するように構成するとともに、垂直方向のサブブロック境界画素を中心とするデブロッキングフィルタ処理の処理ステージの後に水平方向のサブブロック境界画素を中心とするデブロッキングフィルタ処理の処理ステージが続くようにパイプライン実行するように構成したことを特徴とするデブロッキングフィルタ処理方法。請求項10記載のデブロッキングフィルタ処理方法において、前記マクロブロックサイズを水平16画素×垂直16画素とし、前記サブブロックグループを、水平4画素×垂直4画素からなるサブブロック4個の集合で構成し、マクロブロックを4個のサブブロックグループに分割するように構成したことを特徴とするデブロッキングフィルタ処理方法。H264AVC動画像符号化方式を用いたコーデック装置において、一般的に扱う動画の画素サイズが大きくなるほど、コーデック処理の所要時間が長くなる課題がある。これは、コーデック処理に必要な演算回数が画素数に比例して増加するためである。この結果、画素サイズが大きくなるほど画像データを入力してからコーデック処理後の画像データ出力を得るまでの期間が長くなるため処理遅延時間が課題となる。特にH264AVC動画像符号化方式のデブロッキングフィルタは、入力した全画素が演算対象となることから処理量が膨大であり、処理遅延時間短縮の大きな障害となっていた。また、H264AVCコーデック処理をハードウエア化する際には、開発コストに大きく影響する使用メモリ量削減が必須である。本発明は、デブロッキングフィルタにおいて、データを入力してからコーデック処理後の画像データ出力を得るまでの処理時間を短縮するとともに、使用メモリ量を削減することを目的としている。上記の課題を解決するために本発明のデブロッキングフィルタ装置は、外部からの入力画像データを格納する入力メモリと、前記入力メモリからマクロブロックサイズ毎に画素データを読み出してサブブロックグループの画素データに分割し、分割した画素データを処理ステージ毎に順番に第1の中間メモリに格納するサブブロック分割部と、サブブロックグループ毎に、前記第1の中間メモリから画素データを読み出して垂直方向のサブブロック境界画素を中心にデブロッキングフィルタ処理を行い、処理後の画素データを第2の中間メモリに格納する垂直エッジフィルタ処理部と、サブブロックグループ毎に、前記第2の中間メモリから画素データを読み出して水平方向のサブブロック境界画素を中心にデブロッキングフィルタ処理を行い、処理後の画素データを第3の中間メモリに格納する水平エッジフィルタ処理部と、前記第3の中間メモリから処理ステージ毎に順番に読み出したサブブロックグループの画素データを連結してマクロブロックの画素データに再構成して出力するサブブロック連結部と、を具備するものである。また、本発明の動画像符号化装置または動画像復号化装置は、デブロッキングフィルタとして、上記のデブロッキングフィルタ装置を用いたものである。本発明のデブロッキングフィルタ処理方法は、入力メモリからマクロブロックサイズ毎に画素データを読み出してサブブロックグループの画素データに分割し、分割した画素データを処理ステージ毎に順番に第1の中間メモリに格納するステップと、サブブロックグループ毎に、前記第1の中間メモリから画素データを読み出して垂直方向のサブブロック境界画素を中心にデブロッキングフィルタ処理を行い、処理後の画素データを第2の中間メモリに格納するステップと、サブブロックグループ毎に、前記第2の中間メモリから画素データを読み出して水平方向のサブブロック境界画素を中心にデブロッキングフィルタ処理を行い、処理後の画素データを第3の中間メモリに格納するステップと、前記第3の中間メモリから処理ステージ毎に順番に読み出したサブブロックグループの画素データを連結してマクロブロックの画素データに再構成して出力するステップと、からなるものである。本発明によれば、デブロッキング処理において、データを入力してからコーデック処理後の画像データ出力を得るまでの処理時間を短縮することができ、コーデック処理の低遅延化に寄与する。また、デブロッキングフィルタの使用メモリ量を削減することができ、ハードウエア開発のコスト低減に寄与する。図1は、本発明の実施例のデブロッキングフィルタ100の構成を示す図である。この実施例のデブロッキングフィルタ100は、外部から非圧縮の入力画像データを格納する入力メモリ105と、入力メモリ105からマクロブロックサイズ水平16画素×垂直16画素毎に読み出して4個のサブブロックグループの画素領域に分割し、分割した画素データを処理ステージ毎に順番に中間メモリ1に格納するサブブロック分割部103と、中間メモリ1から画素データを読み出して後述する所定の手順で垂直方向のサブブロック境界画素を中心にデブロッキングフィルタ処理を行い、処理後の画素データを中間メモリ2に格納する垂直エッジフィルタ処理部101と、中間メモリ2から画素データを読み出して後述する所定の手順で水平方向のサブブロック境界画素を中心にデブロッキングフィルタ処理を行い、処理後の画素データを中間メモリ3に格納する水平エッジフィルタ処理部102と、中間メモリ3から処理ステージ毎に順番に読み出したサブブロックグループ4個分の画素データを連結して1個のマクロブロックの画素データに再構成した後に出力メモリ109に格納し、出力画像データとして外部へ出力するサブブロック連結部104と、外部からフィルタ処理モードを決定するための符号化パラメータを入力して、フィルタ処理モードを決定するためのフィルタ制御部110で構成する。マクロブロックの画素サイズは水平16画素×垂直16画素、サブブロックの画素サイズは水平4画素×垂直4画素である。1個のマクロブロックは16個のサブブロック集合で構成する。サブブロックグループの画素サイズは、水平16画素×垂直4画素であり、4個のサブブロック集合で構成する。垂直エッジフィルタ処理部101は、前段の中間メモリ1から画素データを読み出す時に、処理対象マクロブロックの左隣マクロブロックのマクロブロック右側境界に接している水平4画素×垂直16画素分の画素データのうち、処理対象サブブロックグループに接している水平4画素×垂直4画素分の画素データを同時に読み出してフィルタ処理を行う。水平エッジフィルタ処理部102は、中間メモリ2から読み出した画素データが、処理対象マクロブロックから4個に分割したうちのマクロブロック上側境界に接しているサブブロックグループに該当する時は、処理対象マクロブロックの上隣マクロブロックのマクロブロック下側境界に接している水平16画素×垂直4画素分の画素データを同時に読み出してフィルタ処理を行う。中間メモリ2から読み出した画素データが、マクロブロック上側境界に接しているサブブロックグループに該当しない場合は、中間メモリ2に保持している1つ前の処理ステージで垂直エッジフィルタ処理部101が出力した画素データを同時に読み出してフィルタ処理を行う。フィルタ処理モードは、デブロッキングフィルタ処理を実行する際に、フィルタ演算を行う画素位置、フィルタ特性の調整を指示する情報である。制御部110がフィルタ処理モードを決定するために外部から入力する符号化パラメータは、処理対象マクロブロックがイントラ属性またはインター属性であるかを示す情報、処理対象マクロブロックがDCT係数を使用して符号化されているかを示す情報、処理対象マクロブロックの動きベクトル値を示す情報、処理対象マクロブロックを符号化した際の参照ピクチャ番号、参照ピクチャ枚数を示す情報等がある。これらフィルタ処理モードを決定するために参照する符号化パラメータおよびフィルタ処理モードの決定する手順の詳細は、全てH264AVC国際標準規格で定義されているものであり、本実施例の説明では省略する。次に、H264AVC国際標準規格に定義されている、デブロッキングフィルタ処理の処理手順について図2、図3および図4で説明する。図2は、デブロッキングフィルタ処理を行うマクロブロックの画素位置を示す図である。先に説明した通り、16個のサブブロック201で1個のマクロブロック200を構成する。デブロッキングフィルタ処理では、マクロブロック200を構成する水平16画素×垂直16画素のうち、16個のサブブロック境界に該当する4箇所の垂直方向サブブロックエッジであるエッジ206、エッジ207、エッジ208、エッジ209と、4箇所の水平方向サブブロックエッジであるエッジ202、エッジ203、エッジ204、エッジ205に対して、各エッジ画素を中心とする所定タップ係数を用いたFIRフィルタ演算を行う。H264AVC国際標準規格では、先に垂直エッジのフィルタ処理を行い、続いて水平エッジのフィルタ処理を行うことを定義している。ところで、別途決定するフィルタ処理モードに応じて、フィルタ処理の演算対象外となる垂直エッジおよび水平エッジが生じる場合があるが、以後の本実施例の説明は、垂直方向および水平方向の全サブブロックエッジにフィルタ処理する場合の条件で説明する。尚、フィルタ処理の演算対象外となるサブブロックエッジについては、該当エッジのフィルタ処理をスキップするだけで良いため、本発明の処理方法以外に特別な手段を必要としない。図3は、サブブロックエッジに対するフィルタ処理の詳細を示す図である。サブブロックエッジのフィルタ処理は、垂直エッジが処理対象の時は水平方向に隣接する2個のサブブロックを参照し、水平エッジが処理対象の時は垂直方向に隣接する2個のサブブロックを参照する。例えば、図3に示したように、垂直エッジ306のフィルタ処理では、垂直エッジ306に接しているサブブロックPとサブブロックQを参照する。一方、水平エッジ309のフィルタ処理では、水平エッジ309に接しているサブブロックPとサブブロックRを参照する。隣接する2個のサブブロックのフィルタ処理は、FIRフィルタ演算を4回実施する。1回当たりのFIRフィルタ演算では、8画素を入力して、8画素の出力を得る。図3に垂直エッジ306に対するフィルタ処理を示す。サブブロックPの画素p0、p1、p2、p3の4画素304と、サブブロックQの画素q0、q1、q2、q3の4画素305の合計8画素を入力し、FIRフィルタ演算結果として、サブブロックP301は画素p0’、p1’、p2’、p3’の4画素310を、サブブロックQは画素q0’、q1’、q2’、q3’の4画素311を得る。これを垂直方向に4回実行する。図3に水平エッジ309に対するフィルタ処理を示す。サブブロックPの画素p0、p1、p2、p3の4画素307と、サブブロックRの画素r0、r1、r2、r3の4画素308の合計8画素を入力し、FIRフィルタ演算結果として、サブブロックP301は画素p0’、p1’、p2’、p3’の4画素312を、サブブロックRは画素r0’、r1’、r2’、r3’の4画素313を得る。これを水平方向に4回実行する。図4は、デブロッキングフィルタ処理における従来の水平、垂直方向の処理の順番を示す図である。H264AVC国際標準規格では、先に垂直エッジのフィルタ処理を行い、続いて水平エッジのフィルタ処理を行うことを定義している。即ち、まず先に図4の4箇所全ての垂直エッジのフィルタ処理を行い、次に図4の4箇所全ての水平エッジのフィルタ処理を行うものである。この手順では、中間メモリ1、中間メモリ2および中間メモリ3がそれぞれ1個のマクロブロック画素サイズと同じメモリ容量を持つ必要があるため、マクロブロック×3個分水平16画素×垂直16画素×3と、フィルタ処理に参照する左側の隣接マクロブロックと、上側の隣接マクロブロックの参照画素分とを足し合わせた中間メモリ容量が必要となる。尚、水平エッジのフィルタ処理を先に行い、垂直エッジのフィルタ処理を後に行った場合、H264AVC国際標準規格の処理手順で得た出力画素値と得られる結果が異なるため、同規格が保障する画像品質から外れることになるため、通常は逆方向の処理手順を実施しない。図5は、デブロッキングフィルタ処理における本発明の水平エッジ、垂直エッジの処理の順番を示す図である。まず、入力メモリ105から読み出した処理対象マクロブロックをサブブロック分割部103で4個のサブブロックグループの画素領域に分割する。4個のサブブロックグループとは、番号1、2、3、4の4個のサブブロックで構成するサブブロックグループa、番号5、6、7、8の4個のサブブロックで構成するサブブロックグループb、番号9、10、11、12の4個のサブブロックで構成するサブブロックグループc、番号13、14、15、16の4個のサブブロックで構成するサブブロックグループdを示す。本発明のデブロッキングフィルタ処理の手順は、サブブロックグループ毎に垂直エッジのフィルタ処理と水平エッジのフィルタ処理を分割したグループ単位で行うようにする。サブブロックグループaに含まれている4箇所の垂直エッジに対するフィルタ処理を行い、次に同サブブロックグループaに含まれている4箇所の水平エッジに対するフィルタ処理を行う。残りのサブブロックグループb、サブブロックグループc、サブブロックグループdについても同様に、それぞれのサブブロックグループに含まれている4箇所の垂直エッジに対するフィルタ処理を行い、その次にそれぞれのサブブロックグループに含まれている4箇所の水平エッジに対するフィルタ処理を行うようにする。4個のサブブロックグループの垂直エッジ、水平エッジのフィルタ演算が全て完了した時点で、サブブロック連結部104により、1個のマクロブロックに再構成して出力メモリ109に格納する。図6は、本発明の水平エッジ、垂直エッジの処理を分割したグループ単位で行うための垂直水平エッジフィルタ処理のブロック図である。中間メモリ1からサブブロックグループnの画素データを処理ステージ毎に順次読み出し、垂直エッジフィルタ処理部101でサブブロックグループに含まれている4箇所の垂直エッジに対するフィルタ処理を行い、その結果の画素データを中間メモリ2に格納する。水平エッジフィルタ処理部102は、中間メモリ2からサブブロックグループの画素データを読み出してサブブロックグループに含まれている4箇所の水平エッジに対するフィルタ処理を行い、その結果の画素データを中間メモリ3に格納する。中間メモリ2は、垂直エッジフィルタ処理部101が画素データを書き込むタイミングと、水平エッジフィルタ処理部102が画素データ読み出すタイミングが重なっても支障をきたさないようにするため、2面メモリで構成する。中間メモリ2を2面メモリにすることで、垂直エッジフィルタ処理部101と水平エッジフィルタ処理部102は並列実行が可能となる。ここで、垂直エッジフィルタ処理部101は、前段の中間メモリ1から画素データを読み出す時に、処理対象マクロブロックの左隣マクロブロックのマクロブロック右側境界に接している水平4画素×垂直16画素分の画素データのうち、処理対象サブブロックグループに接している水平4画素×垂直4画素分の画素データを同時に読み出してフィルタ処理を行う。さらに、水平エッジフィルタ処理部102は、中間メモリ2から読み出した画素データが、処理対象マクロブロックから4個に分割したうちのマクロブロック上側境界に接しているサブブロックグループに該当する時は、処理対象マクロブロックの上隣マクロブロックのマクロブロック下側境界に接している水平16画素×垂直4画素分の画素データを同時に読み出してフィルタ処理を行う。中間メモリ2から読み出した画素データが、マクロブロック上側境界に接しているサブブロックグループに該当しない場合は、別途保持した1つ前の処理ステージで垂直エッジフィルタ処理部101が出力した画素データを同時に読み出してフィルタ処理を行う。図7は、処理対象マクロブロック1個辺りの垂直エッジおよび水平エッジのデブロッキングフィルタ処理タイミングを示す図である。ここで、1個のサブブロックグループのフィルタ処理に必要な期間を1ステージとする。図中の記号Vは、1個のサブブロックグループに含まれる4箇所の垂直エッジに対する処理を示し、記号Hは、1個のサブブロックグループに含まれる4箇所の水平エッジに対する処理を示している。図7は、従来方法のデブロッキングフィルタ処理タイミングを示す図である。従来方法は、全ての垂直エッジのフィルタ処理に4処理ステージ、全ての水平エッジのフィルタ処理に4処理ステージの合計8処理ステージが必要である。従来方法で垂直エッジと水平エッジのフィルタ処理がそれぞれ独立しているのは、垂直エッジのフィルタ処理が垂直方向の全16画素を纏めてフィルタ処理する方式であるため、全ての垂直エッジのフィルタ処理が完了しないと、水平エッジのフィルタ処理を開始できないためである。従って、従来方法は、いずれの処理ステージのフィルタ処理も並列実行は不可能である。具体的には処理ステージ毎にVa、Vb、Vc、Vdの順番で垂直エッジのフィルタ処理を行い、続いてHa、Hb、Hc、Hdの順番で水平エッジのフィルタ処理を行う。図7は、本発明のデブロッキングフィルタ処理タイミングを示す図である。前述の通り、垂直エッジフィルタ処理部101と水平エッジフィルタ処理部102は並列実行が可能な構成であるため、垂直エッジのフィルタ処理と水平エッジのフィルタ処理は並列実行が可能である。このため、全体としては、サブブロックグループのフィルタ処理単位でパイプライン実行が可能である。具体的には、処理ステージ1はVaを実行する。処理ステージ2は処理ステージ1のVaの出力を受けてHaおよびVbを実行する。処理ステージ3は処理ステージ2のVbの出力を受けてHbおよびVcを実行する。処理ステージ4は処理ステージ3のVcの出力を受けてHcおよびVdを実行する。処理ステージ5は処理ステージ4のVdの出力を受けてHdを実行する。尚、厳密には処理ステージ1はVaと同時に1個前のマクロブロックのHdを実行し、処理ステージ5はHdと同時に次のマクロブロックのVaを実行するようにして、いずれの処理ステージも常に垂直エッジと水平エッジのフィルタ処理を同時に実行する。この結果、本発明のデブロッキングフィルタ処理は合計5処理ステージに短縮することができ、従来方法のデブロッキングフィルタ処理と比べて3処理ステージ分、処理期間を短縮できる。即ち、デブロッキングフィルタ全体の処理時間を58化に短縮することに等しく、H264符号化処理および復号化処理の低遅延化に寄与する。図8は、垂直水平エッジフィルタ処理ブロック600へのサブブロックグループ画素データの入力順序と出力順序を示す図である。処理対象マクロブロック800の画素データは、サブブロック分割部103で4個のサブブロックグループの画素領域に分割し、垂直エッジフィルタ処理の処理ステージ毎にサブブロックグループa801、サブブロックグループb、サブブロックグループc、サブブロックグループdの順番で中間メモリ1を介して垂直水平エッジフィルタ処理ブロック600へ入力する一方、垂直水平エッジフィルタ処理ブロック600からは、水平エッジフィルタ処理の処理ステージ毎にサブブロックグループa’806、サブブロックグループb’807、サブブロックグループc’808、サブブロックグループd’809の順番で中間メモリ3を介して出力し、サブブロック連結部104で1個のマクロブロック805の画素データに再構成する。図9は、本発明のデブロッキングフィルタ100を組み込んだ装置形態の一例を示す図である。H264AVC動画像符号化方式を用いたコーデック装置に本発明のデブロッキングフィルタ100を実装する場合、最低1個のデブロッキングフィルタ100があれば目的のコーデック動作が可能である。しかし、画素サイズが大きくなるほど画像データを入力してからコーデック処理後の画像データ出力を得るまでの期間が長くなるため処理遅延時間が問題となる。そこで、同図に示すようにコーデック装置にデブロッキングフィルタ100を複数個実装して、複数マクロブロックのデブロッキングフィルタ処理を並列に実行できるようにする。具体的には、N個の本発明のデブロッキングフィルタと、少なくとも1枚の画像データを格納するフレームメモリ1と、フレームメモリ1からN個のマクロブロックを読み出してN個のデブロッキングフィルタへ別々に入力するマクロブロック入力制御部901と、デブロッキングフィルタ100が出力する別々のマクロブロックを受け取り、再び1枚の画像データとなるようにフレームメモリ2へ出力するマクロブロック出力制御部905と、少なくともデブロッキングフィルタ処理後の1枚の画像データを格納するフレームメモリ2とで構成する。上記の構成により、複数個のマクロブロックのデブロッキングフィルタ処理の並列実行が可能となり、画像データ1枚辺りのデブロッキングフィルタ処理時間を短縮することが可能となる。即ち、コーデック装置の処理遅延短縮の効果が得られる。図10は、マクロブロックの一番左側垂直エッジおよび一番上側水平エッジのデブロッキンングフィルタ処理方法を示す図である。処理対象マクロブロックの一番左側垂直エッジと、一番上側水平エッジに対してデブロックフィルタ処理を行う時、それぞれ隣接マクロブロックの画素データを入力してからフィルタ演算を実行する。図10は、処理対象マクロブロックの一番左側垂直エッジのフィルタ処理を行う時の左隣マクロブロックから画素データを読み出す位置関係を示している。垂直エッジフィルタ処理部101は、中間メモリ1から処理対象マクロブロックNの画素データを読み出す時に、同時に左隣マクロブロックMからマクロブロック境界1002に接している水平4画素×垂直16画素分の画素データを入力する。この時、垂直エッジフィルタ処理部101は、1個のマクロブロックを4個のサブブロックグループ毎に処理するため、参照する左隣マクロブロック1001から処理対象サブブロックグループに接している水平4画素×垂直4画素を読み出して中間メモリ1に格納し、フィルタ処理を行う。図10は、処理対象マクロブロックの一番上側垂直エッジのフィルタ処理を行う時の上隣マクロブロックから画素データを読み出す位置関係を示している。水平エッジフィルタ処理部102は、中間メモリ2から読み出した画素データがマクロブロック境界1008に接しているサブブロックグループ1006に該当する時は、同時に上隣マクロブロック1005のマクロブロック境界1008に接している水平16画素×垂直4画素分の画素データを読み出して中間メモリ2に格納し、フィルタ処理を行う。中間メモリ2から読み出した画素データが、マクロブロック上側境界に接していないサブブロックグループに該当する場合は、同時に中間メモリ2に保持している1つ前の処理ステージで垂直エッジフィルタ処理部101が出力した画素データを読み出してフィルタ処理を行う中間メモリ2は、マクロブロックNの水平4画素×垂直16画素分の画素データと、上隣マクロブロックLの水平4画素×垂直16画素分の画素データを同時に保持できる容量のメモリを2個持つ。図11は、中間メモリのメモリ容量を示す図である。中間メモリ1は、1個のサブブロックグループの画素データを格納する水平16画素×垂直4画素と、左隣マクロブロックの水平4画素×垂直4画素を同時に保持できるメモリ容量として合計80画素分を持つ。中間メモリ2は、処理対象マクロブロックの水平16画素×垂直4画素分の画素データと、上隣マクロブロックLの水平4画素×垂直16画素分の画素データまたは1つ前の処理ステージで得たサブブロックグループの画素データを同時に保持できるメモリを2個持つ。中間メモリ2のメモリ容量は合計256画素分である。中間メモリ2で同容量のメモリを2個持つ理由は、図7で示したように垂直エッジのフィルタ処理と水平エッジのフィルタ処理を並列実行するためである。垂直エッジフィルタ処理部101から中間メモリ2への画素データ書き込み動作と、中間メモリ2から水平エッジフィルタ処理部102への画素データ読み出し動作が同時に発生できるようにするため、中間メモリ2を中間メモリ2aと中間メモリ2bの2個のメモリで構成する。それぞれのメモリ容量は、水平16画素×垂直8画素分である。垂直エッジフィルタ処理部102が中間メモリ2aに書き込んでいる時は、水平エッジフィルタ処理部102は中間メモリ2bから読み出しを行う。垂直エッジフィルタ処理部102が中間メモリ2bに書き込んでいる時は、水平エッジフィルタ処理部102は中間メモリ2aから読み出しを行う。中間メモリ2aと中間メモリ2bへの画素データの書き込みと読み出しは、お互いが重ならないように処理ステージ毎に交互に切換えを行う。中間メモリ3は、1個のサブブロックグループの画素データを格納する水平4画素×垂直16画素分のメモリ容量として合計64画素分を持つ。従って、本発明のデブロックフィルタの合計使用メモリ量は400画素分である。一方、従来方法のデブロッキングフィルタは、中間メモリ1と中間メモリ2と中間メモリ3にそれぞれ水平16画素×垂直16画素分のメモリ容量を確保する必要がある。また、左隣マクロブロックから入力する画素データと、さらに上隣マクロブロックから入力する画素データの保存するためのメモリを含めると、合計使用メモリ量は896画素分となる。即ち、従来方法のデブロッキングフィルタと比べて本発明のデブロッキングフィルタの使用メモリ量を約12に削減できる。図12は、本発明の実施例のデブロッキングフィルタ100の全体処理フロー図である。まず初めに、画素データのマクロブロック入力が終了したか否かを判定し、終了していなければ1個のマクロブロック分の画素データを入力して入力メモリ105に格納する。次に、サブブロック分割部103が入力メモリ105から1マクロブロック分の画素データを読み出して4個のサブブロックグループに分割し、サブブロックグループの画素データを順番に垂直エッジフィルタ処理ステージに中間メモリ1を介して転送する。垂直エッジフィルタ処理ステージは、サブブロックグループの画素データに対して垂直エッジのフィルタ処理を行う。垂直エッジフィルタ処理ステージと水平エッジフィルタ処理ステージは並列に動作する。水平エッジフィルタ処理ステージは、垂直エッジフィルタ処理ステージが出力したサブブロックグループの画素データに対して水平エッジのフィルタ処理を行う。垂直エッジフィルタ処理ステージから水平エッジフィルタ処理ステージへの画素データは中間メモリ2を介して転送する。水平エッジフィルタ処理ステージからサブブロック連結部104が中間メモリ3を介して4個のサブブロックグループの画素データを受け取り、1個のマクロブロック分の画素データに連結して出力メモリ109に格納する。なお、図12において、ステップ1202から垂直エッジフィルタ処理ステージと水平エッジフィルタ処理ステージの両方に矢印を記載し、また、垂直エッジフィルタ処理ステージと水平エッジフィルタ処理ステージの両方からステップS1206へ矢印を記載しているのは、垂直エッジフィルタ処理ステージと水平エッジフィルタ処理ステージとが並列に動作することを示すものである。図13は、本発明の実施例の垂直エッジフィルタ処理ステージの処理フロー図である。まず、垂直エッジフィルタ処理ステージは、サブブロック分割部103が出力する4個のサブブロックグループの画素データを4回の処理ステージ毎に分けて中間メモリ1を介して受け取る。サブブロックグループの画素データの受け取り順序は、サブブロックグループa、同b、同c、同dの順番である。次に、中間メモリ1から1個のサブブロックグループの画素データを読み出し、垂直エッジのデブロッキングフィルタ処理を実行する。フィルタ処理を行ったサブブロックグループがサブブロックグループaまたは同cか否かを判定し、サブブロックグループaまたは同cである場合は処理結果の画素データを中間メモリ2aに格納する。サブブロックグループbまたは同dである場合は処理結果の画素データを中間メモリ2bに格納する。最後に、垂直エッジのデブロッキングフィルタ処理がサブブロックグループa、同b、同c、同dの順番で一巡したか否かを判定し、一巡していない場合はステップ1300に戻る。一巡した場合は、同フローを終了する。同フローのうち、ステップ1301からステップ1304またはステップ1305の処理期間が1個の処理ステージ期間に相当する。また、ステップ1300からステップ1306の処理期間が4個の処理ステージ期間に相当する。図14は、本発明の実施例の水平エッジフィルタ処理ステージの処理フロー図である。まず、現在の処理ステージが全体フロー動作を開始してから1番最初の処理ステージであるか否かを判定する。現在の処理ステージが1番最初の処理ステージである場合は1個の処理ステージ期間のウエイトを挿入する。ウエイトを挿入する理由は、1番最初の処理ステージは、垂直エッジフィルタ処理部101から中間メモリ2に有効な画素データが書き込まれていないためである。2番目の処理ステージ以降から有効な画素データが得られるため、1番最初の処理ステージはウエイトを挿入して無効処理を回避する。水平エッジフィルタ処理ステージは、垂直エッジフィルタ処理ステージが出力する4個のサブブロックグループの画素データを4回の処理ステージ毎に分けて中間メモリ2を介して受け取る。サブブロックグループの画素データの受け取り順序は、サブブロックグループa、同b、同c、同dの順番である。次に、現在の処理対象サブブロックグループがサブブロックグループaまたは同cか否かを判定し、サブブロックグループaまたは同cである場合は画素データを中間メモリ2aから読み出す。サブブロックグループbまたは同dである場合は画素データを中間メモリ2bから読み出す。読み出したサブブロックグループの画素データに対してデブロッキングフィルタ処理を実行し、処理結果の画素データを中間メモリ3へ格納する。最後に、水平エッジのデブロッキングフィルタ処理がサブブロックグループa、同b、同c、同dの順番で一巡したか否かを判定し、一巡していない場合はステップ1402に戻る。一巡した場合は、同フローを終了する。同フローのうち、ステップ1403からステップ1407の処理期間が1個の処理ステージ期間に相当する。また、ステップ1402からステップ1408の処理期間が4個の処理ステージ期間に相当する。図15は、本発明のデブロッキングフィルタ100を適用したH264AVC符号化装置のブロック図の一例である。H264AVC符号化とは、符号化対象の画像フレームと過去に符号化した画像フレームを比較することで画像の動きを推定して予測信号を作成し、符号化対象の画像から予測信号を引き算した信号をDCTおよび量子化した後、可変長符号化することで、入力画像データを圧縮して符号化ビットストリームに圧縮変換する技術である。予測信号を作成する過程で過去に符号化した画像フレームを逆DCTおよび逆量子化を経て元の画像データに一旦戻す処理を行うが、この時にマクロブロック単位で符号化処理を行うことに起因してブロックノイズが発生する。ブロックノイズは自然画像ではないため予測信号に大きな誤差が生じる原因となる。デブロッキングフィルタは、ブロックノイズを低減する目的で予測信号の作成過程に挿入する。具体的には、過去に符号化した画像フレームを戻す工程の逆DCTの後段に挿入する。H264AVC符号化装置は、DCT部1500、量子化部1501、逆量子化部1502、逆DCT部1503、動き補償部1505、動きベクトル検出部1506、可変長符号化部1507および本発明のデブロッキングフィルタ1504で構成する。DCT部は、時系列に並んだ画素信号の列を水平周波数成分および垂直周波数成分を表現する信号列に変換する処理を行う。量子化部1501は、入力画像の値と動き補償部1505で求めた予測画像の予測値を差し引くことで求めた予測誤差値を幾つかの代表値に対応づけする処理を行う。逆量子化部1502は、幾つかの代表値に対応づけされた値を元の予測誤差値に戻す処理を行う。即ち、量子化部1501と逆の処理を行う。逆DCT部1503は、水平周波数成分および垂直周波数成分を表現する信号列を時系列に並んだ画素信号の列に変換する処理を行う。即ち、DCT部と逆の処理を行う。動きベクトル検出部1506は、連続する画像フレーム間で画像がどの方向にどれ位動いたかを動きベクトル値として所定の画素単位で検出する処理を行う。動き補償部1505は、動きベクトル検出部1506で求めた動きベクトルから画像が移動した後の予測画像を作成する処理を行う。可変長符号化部1507は、量子化部1501が出力する量子化値および動きベクトル検出部1506が出力する動きベクトル値について、出現頻度の高い値には短い代表値を割り振り、出現頻度の低い値には長い代表値を割り振るようにして平均的な符号長を短くする処理を行う。デブロッキングフィルタ1504は、ブロックノイズを低減する目的で予測信号を作成する過程で実行する本発明のデブロッキングフィルタ100である。図16は、本発明の実施例のデブロッキングフィルタ100を適用したH264AVC復号化装置のブロック図の一例である。H264AVC復号化とは、H264AVC符号化で圧縮した符号化ビットストリームを逆量子化と逆DCTにより復元した予測誤差画像と、過去に復元した画像とを加算することで元の画像データに復元する技術である。H264AVC復号化装置は、可変長復号化部1600と、逆量子化部1601と、逆DCT部1602と、動き補償部1604と、デブロッキングフィルタ部1603で構成する。可変長復号化部1600は、量子化値および動きベクトル値の出現頻度に応じて割り振られた代表値を元の量子化値および動きベクトル値に戻す処理を行う。逆量子化部1601は、幾つかの代表値に対応づけされた値を元の予測誤差値に戻す処理を行う。逆DCT部1602は、水平周波数成分および垂直周波数成分を表現する信号列を時系列に並んだ画素信号の列に変換する処理を行う。動き補償部1604は、符号化装置から送られた動きベクトルから画像が移動した後の予測画像を作成する処理を行う。デブロッキングフィルタ1603は、ブロックノイズを低減する目的で予測画像を作成する過程で実行する本発明のデブロッキングフィルタ100である。H264AVC復号化装置が出力する復号後の画像データは、デブロッキングフィルタ処理後の画像である。本発明のデブロッキングフィルタ100の動作は、H264AVC動画像符号化方式に定義されているフィルタ処理手順に限定されるものではない。入力されたマクロブロック画像データに対して垂直方向および水平方向の処理を伴うその他の画像処理にも適用が可能である。