(57)【要約】【課題】処理時間を短縮することができる。【解決手段】デブロッキングフィルタ１は、複数のブロックに区分された動画像データのブロックのエッジを挟んで、エッジと交差する方向に並んだ所定個数の画素群について、ブロック歪みを低減させるエッジフィルタ処理を行う。デブロッキングフィルタ１は、処理部２と並び替え部３とを有する。処理部２は、処理対象のマクロブロック４の列方向のエッジを挟んで行方向に並ぶ画素群を複数列同時に処理する列方向エッジフィルタ処理を行う。並び替え部３は、処理部２によって処理した画素群のうち処理対象のマクロブロック４の画素群を列方向毎に並び替える。【選択図】図１
2008048181.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロックに区分された動画像データの前記ブロックのエッジを挟んで、前記エッジと交差する方向に並んだ所定個数の画素群について、ブロック歪みを低減させるエッジフィルタ処理を行うデブロッキングフィルタにおいて、
処理対象のマクロブロックの列方向の前記エッジを挟んで行方向に並ぶ前記画素群を複数列同時に処理する列方向エッジフィルタ処理を行う処理部と、
前記処理部によって処理した前記画素群のうち前記処理対象の前記マクロブロックの画素群を列方向毎に並び替える並び替え部と、
を有することを特徴とするデブロッキングフィルタ。
【請求項２】
前記処理部は、行方向エッジフィルタ処理１サイクル分の行方向に並ぶ前記画素群を１サイクルで複数列同時に処理する列方向エッジフィルタ処理を行うことを特徴とする請求項１記載のデブロッキングフィルタ。
【請求項３】
行方向に並ぶ前記画素群は、今回の処理対象のカレント側画素群と前回以前に処理を行った隣接側画素群とで構成されていることを特徴とする請求項１記載のデブロッキングフィルタ。
【請求項４】
前記処理部は、１／２サイクル毎に１つの行方向に並ぶ前記画素群の前記エッジフィルタ処理を行うＮ（Ｎ≧２）個のフィルタ回路と、
前記カレント側画素群を前記各フィルタ回路に出力するカレント側画素群出力部と、
前記隣接側画素群を前記各フィルタ回路に出力する隣接側画素群出力部と、
実質的に前記エッジフィルタ処理に要する時間をＮ／２サイクルとするサイクル調整用回路とを有し、
前記並び替え部は、前記サイクル調整用回路から出力された行方向に並ぶ前記画素群を、列毎に並び替えて前記カレント側画素群出力部に出力することを特徴とする請求項３記載のデブロッキングフィルタ。
【請求項５】
前記フィルタ回路は、前記画素群の各画素の演算式における共通演算項をまとめて演算する演算部を有することを特徴とする請求項４記載のデブロッキングフィルタ。
【請求項６】
前記隣接側画素群がインタレースであり、前記カレント側画素群がノンインタレースであるとき、前記列方向エッジフィルタ処理において列方向に隣接する各サブブロックの前記エッジを挟んで行方向に並ぶ前記画素群を同時に処理することを特徴とする請求項４記載のデブロッキングフィルタ。
【請求項７】
前記カレント側画素群出力部は、行方向エッジフィルタ処理において、予め格納されている列方向の前記画素群を出力するカレントメモリと、前記カレントメモリからの前記画素群と前記サイクル調整用回路から出力された前記画素群のうち前記処理対象の前記マクロブロックの画素群を列方向毎に並び替えた前記画素群とを選択して出力する選択回路とを有することを特徴とする請求項６記載のデブロッキングフィルタ。
【請求項８】
前記処理部は、前記行方向エッジフィルタ処理において、一定期間前記フィルタ回路に対し前記カレントメモリからの前記画素群の出力を停止する停止期間を設け、前記停止期間において前記フィルタ回路は、前記選択回路から出力された前記画素群のみを用いて前記エッジフィルタ処理を行うことを特徴とする請求項７記載のデブロッキングフィルタ。
【請求項９】
複数のブロックに区分された動画像データの前記ブロックのエッジを挟んで、前記エッジと交差する方向に並んだ所定個数の画素群について、ブロック歪みを低減させるエッジフィルタ処理を行う画像符号化装置において、
処理対象のマクロブロックの列方向の前記エッジを挟んで行方向に並ぶ前記画素群を複数列同時に処理する列方向エッジフィルタ処理を行う処理部と、
前記処理部によって処理した前記画素群のうち前記処理対象の前記マクロブロックの画素群を列方向毎に並び替える並び替え部と、
を有することを特徴とする画像符号化装置。
【請求項１０】
複数のブロックに区分された動画像データの前記ブロックのエッジを挟んで、前記エッジと交差する方向に並んだ所定個数の画素群について、ブロック歪みを低減させるエッジフィルタ処理を行う画像復号化装置において、
処理対象のマクロブロックの列方向の前記エッジを挟んで行方向に並ぶ前記画素群を複数列同時に処理する列方向エッジフィルタ処理を行う処理部と、
前記処理部によって処理した前記画素群のうち前記処理対象の前記マクロブロックの画素群を列方向毎に並び替える並び替え部と、
を有することを特徴とする画像復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデブロッキングフィルタ、画像符号化装置および画像復号化装置に関し、特に、ブロック歪みを低減させるデブロッキングフィルタ、画像符号化装置および画像復号化装置に関する。
【背景技術】
【０００２】
動画像信号の圧縮符号化方式として、ＭＰＥＧ（Moving Picture Expert Group）や、Ｈ．２６４等が知られている。
基本的なマクロブロックのブロックサイズは、１６×１６画素であるが、例えばＨ．２６４では必要に応じて４×４画素を用いることができる。
【０００３】
ＭＰＥＧ、Ｈ．２６４等においては、低ビットレートでの画質を改善するため、画像からブロック歪を除去するデブロッキングフィルタが用いられている。
一般的なデブロッキングフィルタは、エッジを跨いだカレント側４画素、隣接側４画素、および、フィルタ強度設定によって、カレント側４画素、隣接側４画素の画素値をそれぞれ変更するエッジフィルタ処理を行う。画素値の変更により、互いに隣接する画素において相関関係が強化され、見た目上、ブロック歪が軽減される。エッジフィルタ処理は、垂直方向（列方向）のエッジのフィルタ処理を行う垂直（列方向）エッジフィルタ処理と水平方向（行方向）のエッジのフィルタ処理を行う水平（行方向）エッジフィルタ処理とで構成される。
【０００４】
デブロッキングフィルタは、まず、垂直エッジフィルタ処理を行い、その後水平エッジフィルタ処理を行う。今回のエッジフィルタ処理を行う際には前回のエッジフィルタ処理を施した画素を使用する（例えば、特許文献１参照）。
【０００５】
図３６は、従来のデブロッキングフィルタの垂直エッジフィルタを示す図である。
なお、以下では、行方向の画素の位置をＡ〜Ｔで表し、列方向の画素の位置を０〜１９で表す。例えば、１行１列目の画素を「画素（Ａ０）」、２０行２０列目の画素を「画素（Ｔ１９）」のように表す。また、図３６において「クロック」はデブロッキングフィルタ動作用のクロック、「カレント」はカレント側４画素、「隣接」は隣接側４画素、「Ｗｒｉｔｅ」はメモリへの書き込みを行った画素を示す。
【０００６】
マクロブロック９１は、１６×１６画素のマクロブロックである。
従来の垂直エッジフィルタ処理は、まず、前回以前にエッジフィルタ処理を施したマクロブロックの画素群（Ｅ０〜Ｅ３）を隣接側４画素とし、マクロブロック９１の画素群（Ｅ４〜Ｅ７）をカレント側４画素として画素（Ｅ３、Ｅ４）間のエッジのフィルタ処理を行う。次のクロックで、処理した画素群（Ｅ４〜Ｅ７）を次の処理の隣接側４画素とし、画素群（Ｅ８〜Ｅ１１）をカレント側４画素として画素（Ｅ７、Ｅ８）間のフィルタ処理を行う。その後も同様に処理を行う。
【０００７】
このように、カレント４画素を処理した後、行方向（画素並びと同方向）の隣接４画素を処理する際は、このカレント４画素が隣接４画素として認識される。したがって、フィルタ処理が終了した画素をそのままメモリに格納すると、次の画素を処理する際に再び呼び出す必要が生じるため非効率となる。従来の処理順として、この非効率を生じさせないため、１回処理された４画素は比較的読み出すことが容易なレジスタ等に１度格納した後、順方向に隣接側の処理に遷移し、画素を再利用していた。具体的には、カレント側画素群を図示しない記憶回路から読み出した後、予め準備しておいた隣接側画素群との関係およびフィルタ強度設定によりフィルタ処理が行われ、処理が終了した画素を順番に記憶回路に格納していた。格納される際のデータ並びは行方向であった。
【０００８】
図３７は、従来のデブロッキングフィルタの水平エッジフィルタを示す図である。
従来の水平エッジフィルタ処理では、４クロック毎に水平エッジフィルタ１回分の画素群（Ｅ４〜Ｈ４）が用意され、画素群（Ａ４〜Ｄ４）を隣接側４画素とし、マクロブロック９１の画素群（Ｅ４〜Ｈ４）をカレント側４画素として画素群（Ｄ４、Ｅ４）間のエッジのフィルタ処理を行う。その後も同様に処理を行う。
【特許文献１】特表２００５−５３５１９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来の水平エッジフィルタ処理では、カレント側画素群を記憶回路から読み出す際、垂直エッジフィルタ後の格納データ並びが水平方向であったため、処理に必要な画素が揃うまでエッジフィルタ処理が実行できず、処理時間が大きくなるという問題があった。このため、特に画面サイズの大きな画像処理では処理時間の不足が問題となっていた。
【００１０】
本発明はこのような点に鑑みてなされたものであり、処理時間を短縮することができるデブロッキングフィルタ、画像符号化装置および画像復号化装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明では上記問題を解決するために、図１に示すようなデブロッキングフィルタが提供される。
本発明に係るデブロッキングフィルタ１は、複数のブロックに区分された動画像データのブロックのエッジを挟んで、エッジと交差する方向に並んだ所定個数の画素群について、ブロック歪みを低減させるエッジフィルタ処理を行う。
【００１２】
デブロッキングフィルタ１は、処理部２と並び替え部３とを有する。
処理部２は、処理対象のマクロブロック４の列方向のエッジを挟んで行方向に並ぶ画素群を複数列同時に処理する列方向エッジフィルタ処理を行う。
【００１３】
並び替え部３は、処理部２によって処理した画素群のうち処理対象のマクロブロック４の画素群を列方向毎に並び替える。
このようなデブロッキングフィルタ１によれば、処理部２により、マクロブロック４の列方向のエッジを挟んで行方向に並ぶ画素群が複数列同時に処理される列方向エッジフィルタ処理が行われる。また、並び替え部３により、処理部２によって処理された画素群のうち処理対象のマクロブロック４の画素群が列方向毎に並び替えられる。
【００１４】
また、上記課題を解決するために、複数のブロックに区分された動画像データの前記ロブロックのエッジを挟んで、前記エッジと交差する方向に並んだ所定個数の画素群について、ブロック歪みを低減させるエッジフィルタ処理を行う画像符号化装置において、処理対象のマクロブロックの列方向の前記エッジを挟んで行方向に並ぶ前記画素群を複数列同時に処理する列方向エッジフィルタ処理を行う処理部と、前記処理部によって処理した前記画素群のうち前記処理対象の前記マクロブロックの画素群を列方向毎に並び替える並び替え部と、を有することを特徴とする画像符号化装置が提供される。
【００１５】
このような画像符号化装置によれば、上記デブロッキングフィルタと同様の処理が実行される。
また、上記課題を解決するために、複数のブロックに区分された動画像データの前記ブロックのエッジを挟んで、前記エッジと交差する方向に並んだ所定個数の画素群について、ブロック歪みを低減させるエッジフィルタ処理を行う画像復号化装置において、処理対象のマクロブロックの列方向の前記エッジを挟んで行方向に並ぶ前記画素群を複数列同時に処理する列方向エッジフィルタ処理を行う処理部と、前記処理部によって処理した前記画素群のうち前記処理対象の前記マクロブロックの画素群を列方向毎に並び替える並び替え部と、を有することを特徴とする画像復号化装置が提供される。
【００１６】
このような画像復号化装置によれば、上記デブロッキングフィルタと同様の処理が実行される。
【発明の効果】
【００１７】
本発明では、処理部が行方向に並ぶ画素群を複数列同時に処理することにより、行方向エッジフィルタ処理に用いる画素を迅速に取得することができる。また、並び替え部が取得した画素群を列方向に並び替えることにより、列方向エッジフィルタ処理を迅速に行うことができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
まず、本発明の概要について説明し、その後、実施の形態を説明する。
図１は、本発明の概要を示す図である。
【００１９】
なお、以下、図１の紙面上側を「上」、下側を「下」、左側を「左」、右側を「右」という。
また、図１中上から下に向かう方向を「列方向」または「垂直方向」といい、左から右に向かう方向を「行方向」または「水平方向」という。
【００２０】
また、図１中、斜線部分の画素は、前回のエッジフィルタ処理にて処理されたマクロブロック（以下、参照マクロブロックという）の画素を示しており、点部分の画素は、今回処理を行うマクロブロック（以下、対象マクロブロックという）の画素を示している。また、マクロブロック内の矢印は、処理の順番を示している。
【００２１】
図１に示すデブロッキングフィルタ１は、複数のマクロブロック及び４×４画素ブロックに区分された動画像データのブロックのエッジを挟んで、エッジと交差する方向に並んだ所定個数の画素群について、ブロック歪みを低減させるエッジフィルタ処理を行う。
【００２２】
デブロッキングフィルタ１は、処理部２と並び替え部３とを有する。
処理部２は、対象のマクロブロック４の列方向のエッジを挟んで行方向に並ぶ画素群（例えばＥ０〜Ｅ７）を複数列同時（例えばＥ０〜Ｅ７、Ｇ０〜Ｇ７）に処理する列方向エッジフィルタ処理を行う。
【００２３】
なお、図１では、１クロック目で画素群（Ｅ４〜Ｅ７、Ｇ４〜Ｇ７）の処理を行い、２クロック目で画素群（Ｆ４〜Ｆ７、Ｈ４〜Ｈ７）の処理を行っている。
並び替え部３は、処理部２によって処理した画素群（例えば画素群（Ｅ４〜Ｅ７、Ｆ４〜Ｆ７、Ｇ４〜Ｇ７、Ｈ４〜Ｈ７））のうち対象のマクロブロック４の画素群を列毎（例えば画素群（Ｅ４〜Ｈ４、Ｅ５〜Ｈ５、Ｅ６〜Ｈ６、Ｅ７〜Ｈ７））に並び替える。
【００２４】
このようなデブロッキングフィルタによれば、処理部２により、対象のマクロブロック４の列方向のエッジを挟んで行方向に並ぶ画素群を複数列同時に処理する列方向エッジフィルタ処理が行われる。また、並び替え部３により、処理部２によって処理された画素群のうち対象のマクロブロック４の画素群が列方向に並び替えられる。
【００２５】
デブロッキングフィルタ１は、行方向エッジフィルタ処理においては、マクロブロック４の行方向のエッジを挟んで列方向に並ぶ画素群を複数行同時に処理する処理を行うため、行方向エッジフィルタ処理に用いる画素群を予め列毎に並び替えておくことにより迅速に処理を行うことができる。
【００２６】
以下、本発明の実施の形態を説明する。なお、以下ではＨ．２６４に基づく符号化および復号処理を行う画像符号化装置と画像復号化装置に適用した場合を例に図面を参照して詳細に説明する。Ｈ．２６４では、１６×１６の基本マクロブロックに加え、１６×８、８×１６、及び８×８の４種類のマクロブロックが選択可能となっている。さらに、８×８サイズのマクロブロックについては、８×８、８×４、４×８、４×４の４種類のサブブロック分割を指定することもできる。基本的なアルゴリズムは、符号化処理では、フレームを基本処理単位のマクロブロックに分割し、マクロブロック毎に、フレーム内の空間的冗長性を利用したフレーム内予測と、フレーム間の時間的冗長性を利用したフレーム間予測とを適宜切り替えて、入力画像の符号化を行う。復号処理では、その逆動作が行われる。なお、Ｈ．２６４では、両方向の参照フレームを用いることができるが、以下では、片方向の場合で説明する。両方向の場合には、両方向のＭＶ（Motion Vector）を格納するための領域が増えるが、処理は片方向と同様に行われる。
【００２７】
図２は、本発明の実施の形態の画像符号化装置の構成を示したブロック図である。
本発明の実施の形態の画像符号化装置１００は、ＭＢ（マクロブロック）分割部１０１、動きベクトル検出部１０２、過去のフレームバッファ１０３、フレーム間予測部１０４、フレーム内予測部１０５、現フレームバッファ１０６、予測モード選択部１０７、減算器１０８、直交変換量子化部１０９、エントロピー符号化部１１０、逆量子化逆直交変換部１１１、加算器１１２、デブロッキングフィルタ１１３、及びフレームバッファ管理部１１４を有する。
【００２８】
このような画像符号化装置１００では、入力画像は、ＭＢ分割部１０１によって所定の大きさのマクロブロックに分割される。１マクロブロックは、４つのブロックを備える輝度成分（Ｙ成分）とそれぞれ１つのブロックを備える色差成分（Ｃｂ、Ｃｒ成分）との計６つのブロックで構成される。動きベクトル検出部１０２は、入力したマクロブロック単位の画像信号と、過去のフレームバッファ１０３に格納される参照画像とを用いて、対象マクロブロックのＭＶを検出する。ＭＶは、通常、周辺領域との相関が高いので、フレーム間予測部１０４では、周辺領域のＭＶを予測値として、周辺のＭＶに基づいてＭＶＰ（Motion Vector Predictor）を算出し、ＭＶとの間のＭＶＤ（予測差分値）を算出する。フレーム内予測部１０５は、現フレームバッファ１０６のフレーム内予測を行う。予測モード選択部１０７は、フレーム間予測部１０４とフレーム内予測部１０５の予測誤差を比較する等して、当該マクロブロックを最も効率よく符号化することができる符号化モードを選択し、符号化モード情報を生成する。この符号化モード情報も、符号化対象情報として、エントロピー符号化部１１０へ受け渡される。符号化モード情報には、マクロブロックを分割した分割マクロブロックのサイズと、分割マクロブロックをさらに分割したサブマクロブロックのサイズが含まれる。
【００２９】
予測モード選択部１０７としてフレーム内予測が選択される場合は、ＭＢ分割部１０１を経由したマクロブロックの入力画像がそのまま直交変換量子化部１０９へ出力され、直交変換と量子化が施される。こうして生成された直交変数係数データは、エントロピー符号化部１１０へ受け渡される。また、この直交変換係数データは、逆量子化逆直交変換部１１１によってデコードされ、現フレームバッファ１０６に書き込まれる。
【００３０】
予測モード選択部１０７としてフレーム間予測部１０４が選択される場合は、フレーム間予測部１０４が算出したＭＶＤが符号化対象として選択され、エントロピー符号化部１１０へ受け渡される。また、予測モード選択部１０７経由でＭＶＰに基づく予測画像が減算器１０８へ出力される。減算器１０８では、マクロブロック単位の入力画像と、予測画像との差分が算出され、直交変換量子化部１０９へ出力される。この出力は、逆量子化逆直交変換部１１１によってデコードされ、加算器１１２によって予測モード選択部１０７からの予測画像を加算した後、現フレームバッファ１０６に書き込まれる。
【００３１】
エントロピー符号化部１１０は、符号化対象データのエントロピー符号化部を行い、画像圧縮符号化信号として出力する。また、現フレームバッファ１０６に格納される参照画像は、デブロッキングフィルタ１１３によりデブロッキングフィルタ処理（以下、「エッジフィルタ処理」という）が行われてマクロブロックのエッジが平滑化され、フレームバッファ管理部１１４を経由して、過去のフレームバッファ１０３に格納される。
【００３２】
次に、画像復号化装置について説明する。
図３は、本発明の実施の形態の画像復号化装置の構成を示したブロック図である。
本発明の実施の形態の画像復号化装置２００は、エントロピー復号化部２０１、逆量子化逆直交変換部２０２、加算器２０３、現フレームバッファ２０４、フレーム内予測部２０５、予測モード選択部２０６、デブロッキングフィルタ２０７、フレームバッファ管理部２０８、過去のフレームバッファ２０９、及びフレーム間予測部２１０、を具備し、図２に示した画像符号化装置１００が生成した画像圧縮符号化信号を復号する。
【００３３】
画像圧縮符号化信号は、エントロピー復号化部２０１によってエントロピー復号が施された後、逆量子化逆直交変換部２０２によって逆量子化と逆直交変換が施される。フレーム間予測によって符号化されている場合は、ＭＶＤの形式で符号化されている動きベクトルデータを復号化する。予測モード選択部２０６は、逆量子化逆直交変換部２０２によって復元された符号化モード情報に基づき、フレーム内予測部２０５またはフレーム間予測部２１０を選択する。
【００３４】
予測モード選択部２０６としてフレーム内予測部２０５が選択される場合は、逆量子化逆直交変換部２０２によって復元された画像が現フレームバッファ２０４に書き込まれる。
【００３５】
予測モード選択部２０６としてフレーム間予測部２１０が選択される場合は、ＭＶＤの形式で復号された動きベクトルを、各動きベクトル適用単位領域、すなわち、分割マクロブロックの領域毎に、各動きベクトル適用単位領域で使用された動きベクトルデータ（ＭＶ）へ復号する。復号されたＭＶに基づいて予測画像が復元され、予測モード選択部２０６経由で加算器２０３に入力する。そして、逆量子化逆直交変換部２０２により復号された予測誤差と加算されることによって、画像が復号化され、現フレームバッファ２０４に格納される。
【００３６】
現フレームバッファ２０４に格納された画像データは、デブロッキングフィルタ２０７、フレームバッファ管理部２０８を経由して、過去のフレームバッファ２０９に格納される。
【００３７】
次に、デブロッキングフィルタ１１３、２０７の回路構成について説明する。なお、デブロッキングフィルタ１１３とデブロッキングフィルタ２０７の構成は互いに等しいため、以下、代表的にデブロッキングフィルタ１１３の回路構成について説明する。
【００３８】
図４は、本実施の形態のデブロッキングフィルタを示す回路図である。
デブロッキングフィルタ１１３は、画素選択回路１１３ａ、１１３ｂと、タイミングコントローラ１１３ｃと、ライトメモリコントローラ１１３ｄと、リードメモリコントローラ１１３ｅと、カレント画素格納用メモリ（以下、単に「カレントメモリ」という）１１３ｆと、隣接上画素群格納用メモリ（以下、単に「隣接上メモリ」という）１１３ｇと、隣接左画素群格納用メモリ（以下、単に「隣接左メモリ」という）１１３ｈと、カレント画素選択回路１１３ｉと、隣接画素選択回路１１３ｊと、フィルタ回路１１３ｋ、１１３ｍと、フィルタリングパラメータ保持回路１１３ｎと、遅延回路１１３ｏと、外部メモリインタフェース１１３ｐ、１１３ｑと、外部メモリ１１３ｒとを有している。
【００３９】
画素選択回路１１３ａの入力側には遅延回路１１３ｏの出力端子と外部メモリ１１３ｒの出力端子とが接続されており、入力された画素群のうち隣接上メモリ１１３ｇに出力する画素群を選択し、出力する。
【００４０】
画素選択回路１１３ｂの入力側には現フレームバッファ１０６から１フレーム分の画素を入力する画素入力部と遅延回路１１３ｏの出力端子とが接続されており、入力された画素群のうちカレントメモリ１１３ｆに出力する画素群を選択し、出力する。画素選択回路１１３ｂは、４ビット×４ビットのレジスタを有しており、垂直エッジフィルタ処理後の画素を、水平エッジフィルタ処理の入力基準に合わせるよう、列方向毎に並び替えて（転置して）出力する。
【００４１】
タイミングコントローラ１１３ｃは、各部の動作用の信号の入出力（リード／ライト）のタイミングを制御するものであり、基準タイミングを受け取り、ライトメモリコントローラ１１３ｄとリードメモリコントローラ１１３ｅとフィルタリングパラメータ保持回路１１３ｎと外部メモリインタフェース１１３ｐ、１１３ｑとにそれぞれメモリインタフェース開始信号を送る。
【００４２】
ライトメモリコントローラ１１３ｄは、メモリインタフェース開始信号により、カレントメモリ１１３ｆと隣接上メモリ１１３ｇと隣接左メモリ１１３ｈとのうちの１つまたは複数にライトアドレスとライトイネーブル信号とを出力する。
【００４３】
リードメモリコントローラ１１３ｅは、メモリインタフェース開始信号により、カレントメモリ１１３ｆと隣接上メモリ１１３ｇと隣接左メモリ１１３ｈとのうちの１つまたは複数にリードアドレスとインヒビット信号とを出力する。
【００４４】
カレントメモリ１１３ｆは、ライトメモリコントローラ１１３ｄからのライトイネーブル信号に応じて画素選択回路１１３ｂを介して現フレームバッファ１０６から１マクロブロック分の画素群を入力し保持する。そして、リードメモリコントローラ１１３ｅからのインヒビット信号に応じて読み出し対象となる画素群（カレント側画素群）を出力する。なお、これらの信号や画素群の入出力はＦＦ（フリップフロップ）を介して行われる（隣接上メモリ１１３ｇ、隣接左メモリ１１３ｈについても同様）。
【００４５】
図５は、カレントメモリのメモリ構成を示す図である。
カレントメモリ１１３ｆは、１つのアドレスに４画素×２ライン分の画素群（例えば画素群（Ｅ４〜Ｅ７）および画素群（Ｇ４〜Ｇ７））を保持することができる。そして、輝度成分の保持領域（アドレス＃０〜アドレス＃３１）および色差成分（アドレス＃３２〜アドレス＃４７、アドレス＃４８〜アドレス＃６３）それぞれの保持領域を有している。
【００４６】
再び図４に戻って説明する。
隣接上メモリ１１３ｇは、ライトメモリコントローラ１１３ｄからのライトイネーブル信号に応じて画素選択回路１１３ａが出力する画素群（隣接上画素群）を入力し保持する。そして、リードメモリコントローラ１１３ｅからのインヒビット信号に応じて隣接上画素群を出力する。
【００４７】
隣接左メモリ１１３ｈは、ライトメモリコントローラ１１３ｄからのライトイネーブル信号に応じて遅延回路１１３ｏが出力する画素群（隣接左画素群）を入力し保持する。そして、リードメモリコントローラ１１３ｅからのインヒビット信号に応じて隣接左画素群を出力する。
【００４８】
カレント画素選択回路１１３ｉの入力側にはカレントメモリ１１３ｆの出力が接続されており、入力されたカレント側画素群のうちフィルタ回路１１３ｋ、１１３ｍにそれぞれ出力する画素群を選択し、出力する。
【００４９】
隣接画素選択回路１１３ｊの入力側には遅延回路１１３ｏの出力端子と隣接上メモリ１１３ｇの出力と隣接左メモリ１１３ｈの出力とが接続されており、入力されたデータのうちフィルタ回路１１３ｋ、１１３ｍにそれぞれ出力する隣接上画素群または隣接左画素群（以下、これらを「隣接側画素群」ともいう）を選択し、出力する。
【００５０】
フィルタ回路１１３ｋ、１１３ｍは、それぞれカレント画素選択回路１１３ｉから出力されたカレント側画素群および隣接画素選択回路１１３ｊから出力された隣接側画素群に対してエッジフィルタ処理を施す。この際、フィルタリングパラメータ保持回路１１３ｎから入力されるフィルタ強度を示すフィルタリングパラメータが適用される。このように本実施の形態のデブロッキングフィルタ１１３は、フィルタ回路１１３ｋ、１１３ｍ（２系統の処理系）を有し、２並列で同時に処理を実行する。
【００５１】
遅延回路１１３ｏは、フィルタ回路１１３ｋ、１１３ｍからそれぞれ出力されたデータを２クロック経過後に出力する。この２クロックは、後述する１サイクルが２クロックであることに起因している。
【００５２】
外部メモリインタフェース１１３ｐは、タイミングコントローラ１１３ｃのタイミング信号により、外部メモリ１１３ｒにライトアクセスを出力する。
外部メモリインタフェース１１３ｑは、タイミングコントローラ１１３ｃのタイミング信号により、外部メモリ１１３ｒにリードアクセスを出力する。
【００５３】
外部メモリ１１３ｒは、例えばＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等で構成されており、ライトアクセスがあると、カレントメモリ１１３ｆから出力された画素群を読み込む。また、リードアクセスがあると、指定された画素群を画素選択回路１１３ａに出力する。
【００５４】
次に、デブロッキングフィルタ１１３の処理について説明する。
＜第１のエッジフィルタ処理＞
第１のエッジフィルタ処理は、隣接側のマクロブロック、カレント側のマクロブロックがともにノンインタレースの場合の処理である。
【００５５】
図６および図７は、垂直エッジフィルタ処理を示す図である。
なお、図６中、図６（ａ）、図６（ｂ）および図６（ｃ）にのみエッジを図示し、それ以外は図示を省略する。
【００５６】
垂直エッジフィルタ処理では、垂直方向４画素水平方向８画素群（以下、（４×８）画素群という）ずつ、左上側から右下側に向かって移動しながら図６（ａ）〜図６（ｈ）、図７（ａ）〜図７（ｈ）の順にエッジを処理する。以下、詳しく説明する。
【００５７】
まず、１クロック目に画素（Ｅ３）と画素（Ｅ４）との間のエッジと、画素（Ｇ３）と画素（Ｇ４）との間のエッジとを同時に処理する。このように垂直エッジフィルタ処理では、列方向に存在するエッジを処理する。
【００５８】
具体的には、画素群（Ｅ０〜Ｅ７）をフィルタ回路１１３ｋにて処理し、画素群（Ｇ０〜Ｇ７）をフィルタ回路１１３ｍにて処理する（図６（ａ）参照）。
そして、２クロック目に画素（Ｆ３）と画素（Ｆ４）との間のエッジと、画素（Ｈ３）と画素（Ｈ４）との間のエッジとを同時に処理する。
【００５９】
具体的には画素群（Ｆ０〜Ｆ７）フィルタ回路１１３ｋにて処理し、画素群（Ｈ０〜Ｈ７）をフィルタ回路１１３ｍにて処理する（図６（ａ）参照）。このように本実施の形態の垂直エッジフィルタ処理では、水平方向（走査方向）と９０度異なるエッジ間の画素群を順に処理する。
【００６０】
この２クロックが１サイクル（処理単位時間）を構成しており、１サイクル毎に４画素分右方向に移動して、該当するエッジに属する（４×８）画素群について同様の処理を行う（図６（ｂ）、図６（ｃ）参照）。
【００６１】
そして対象マクロブロックの右側の端部まで処理を終えると（図６（ｄ）参照）、次に対象マクロブロック左側の端部における４画素下に存在するエッジの処理を行う（図６（ｅ）参照）。
【００６２】
そして、対象マクロブロックの最下端の右側の端部まで処理を終えると処理を終了する（図７（ｈ）参照）。
このようにして、デブロッキングフィルタ１１３は、対象マクロブロック中に存在する全ての画素を読み出しつつ、エッジの処理を行う。
【００６３】
なお、前述したように、図６および図７は、フィルタ回路１１３ｋ、１１３ｍでの処理順を示す図であって、カレントメモリ１１３ｆから画素を読み出す順番を示す図ではない。
【００６４】
次に、エッジフィルタ処理を行う際に、カレントメモリ１１３ｆからフィルタ回路１１３ｋ、１１３ｍに画素が読みされる順番について説明する。
図８および図９は、垂直エッジフィルタ時の画素読み出しを説明する図である。
【００６５】
垂直エッジフィルタ処理では、リードメモリコントローラ１１３ｅがカレントメモリ１１３ｆから（４×４）画素群ずつ、左上側から右下側に向かって移動しながら図８（ａ）〜図８（ｈ）、図９（ａ）〜図９（ｈ）の順に画素群を読み出す。
【００６６】
まず、リードメモリコントローラ１１３ｅは、１クロック目は水平方向に４画素２ライン分の画素群（Ｅ４〜Ｅ７、Ｇ４〜Ｇ７）を読み出す。２クロック目は１サイクル目で読み込んだ画素群に対し、垂直方向に1画素移動した位置に存在する画素群（Ｆ４〜Ｆ７、Ｈ４〜Ｈ７）を読み出す（図８（ａ）参照）。
【００６７】
２サイクル目の１クロック目で水平方向に４画素移動した位置に存在する４画素２ライン分の画素群（Ｅ８〜Ｅ１１、Ｇ８〜Ｇ１１）を読み出す。２クロック目は１クロック目で読み出した画素群に対し、垂直方向に1画素移動した位置に存在する画素群（Ｆ８〜Ｆ１１、Ｈ８〜Ｈ１１）を読み出す（図８（ｂ）参照）。対象マクロブロックの右側の端部まで読み出すと、対象マクロブロック左側の端部における４画素ライン下に存在する４画素２ライン分の画素群を読み出す。すなわち図８（ｃ）に示すように、１クロック目は画素群（Ｉ７〜Ｉ１１、Ｋ７〜Ｋ１１）を読み出す。２クロック目は１クロック目で読み出したデータに対し、垂直方向に１画素移動した位置に存在する画素群（Ｊ７〜Ｊ１１、Ｌ７〜Ｌ１１）を読み出す。リードメモリコントローラ１１３ｅは、この動作を同様に繰り返し、対象マクロブロック中に存在するすべての画素を読み出す。
【００６８】
読み出された画素群２ライン分はフィルタ回路１１３ｋ、１１３ｍに対し１ラインずつ入力し、フィルタ回路１１３ｋ、１１３ｍによってフィルタリングされた後、遅延回路１１３ｏにより１サイクル遅延させて、画素選択回路１１３ａに入力する。この１サイクル遅延は、前述した処理単位時間が１サイクルであることに起因している。よって、例えば処理単位時間が２サイクルであれば、遅延回路の遅延時間も２サイクルとなる。
【００６９】
次に、デブロッキングフィルタ１１３の垂直エッジフィルタ処理時の各部の動作について説明する。
図１０〜図１３は、第１のエッジフィルタ処理の垂直エッジフィルタ処理時の各部の動作を示す図である。
【００７０】
＜第１ステップ＞
まず、図１０に示すように、１クロック目に、カレントメモリ１１３ｆから画素群（Ｅ４〜Ｅ７、Ｇ４〜Ｇ７）がカレント画素選択回路１１３ｉに出力される。カレント画素選択回路１１３ｉは、画素群（Ｅ４〜Ｅ７）をフィルタ回路１１３ｋに出力し、画素群（Ｇ４〜Ｇ７）をフィルタ回路１１３ｍに出力する。また、隣接左メモリ１１３ｈが、前処理で予め蓄えられた画素群（Ｅ０〜Ｅ３、Ｇ０〜Ｇ３）を隣接画素選択回路１１３ｊに出力する。隣接画素選択回路１１３ｊは、画素群（Ｅ０〜Ｅ３）をフィルタ回路１１３ｋに出力し、画素群（Ｇ０〜Ｇ３）をフィルタ回路１１３ｍに出力する。
【００７１】
フィルタ回路１１３ｋは、前述したように、カレント画素選択回路１１３ｉによって選択されたカレントメモリ１１３ｆからの画素群（Ｅ４〜Ｅ７）と隣接画素選択回路１１３ｊによって選択された隣接左メモリ１１３ｈからの画素群（Ｅ０〜Ｅ３）とを用いて垂直エッジフィルタ処理を行い、結果を遅延回路１１３ｏに出力する。
【００７２】
フィルタ回路１１３ｍは、カレント画素選択回路１１３ｉによって選択されたカレントメモリ１１３ｆからの画素群（Ｇ４〜Ｇ７）と隣接画素選択回路１１３ｊによって選択された隣接左メモリ１１３ｈからの画素群（Ｇ０〜Ｇ３）とを用いて垂直エッジフィルタ処理を行い、結果を遅延回路１１３ｏに出力する。
【００７３】
＜第２ステップ＞
図１１に示すように、２クロック目にカレントメモリ１１３ｆから画素群（Ｆ４〜Ｆ７、Ｈ４〜Ｈ７）がカレント画素選択回路１１３ｉに出力される。カレント画素選択回路１１３ｉは、画素群（Ｆ４〜Ｆ７）をフィルタ回路１１３ｋに出力し、画素群（Ｈ４〜Ｈ７）をフィルタ回路１１３ｍに出力する。また、隣接左メモリ１１３ｈが、前処理で予め蓄えられた画素群（Ｆ０〜Ｆ３、Ｈ０〜Ｈ３）隣接画素選択回路１１３ｊに出力する。隣接画素選択回路１１３ｊは、画素群（Ｆ０〜Ｆ３）をフィルタ回路１１３ｋに出力し、画素群（Ｈ０〜Ｈ３）をフィルタ回路１１３ｍに出力する。
【００７４】
フィルタ回路１１３ｋは、前述したように、カレント画素選択回路１１３ｉによって選択されたカレントメモリ出力の画素群（Ｆ４〜Ｆ７）と隣接画素選択回路１１３ｊによって選択された隣接左メモリ１１３ｈからの画素群（Ｆ０〜Ｆ３）とを用いて垂直エッジフィルタ処理を行い、結果を遅延回路１１３ｏに出力する。
【００７５】
フィルタ回路１１３ｍは、カレント画素選択回路１１３ｉによって選択されたカレントメモリ出力の画素群（Ｈ４〜Ｈ７）と隣接画素選択回路１１３ｊによって選択された隣接左メモリ１１３ｈからの画素群（Ｈ０〜Ｈ３）とを用いて垂直エッジフィルタ処理を行い、結果を遅延回路１１３ｏに出力する。
【００７６】
＜第３ステップ＞
１サイクル経過後、図１２に示すように、遅延回路１１３ｏが画素群（Ｅ４〜Ｅ７）および画素群（Ｇ４〜Ｇ７）をそれぞれ出力する。
【００７７】
隣接画素選択回路１１３ｊは、遅延回路１１３ｏから出力された画素群（Ｅ４〜Ｅ７、Ｇ４〜Ｇ７）のうち、画素群（Ｅ４〜Ｅ７）をフィルタ回路１１３ｋに出力し、画素群（Ｇ４〜Ｇ７）をフィルタ回路１１３ｍに出力する。
【００７８】
フィルタ回路１１３ｋは、前述したように、カレント画素選択回路１１３ｉによって選択されたカレントメモリ出力の画素群（Ｅ８〜Ｅ１１）と隣接画素選択回路１１３ｊによって選択された遅延回路１１３ｏからの画素群（Ｅ４〜Ｅ７）とを用いて垂直エッジフィルタ処理を行う。
【００７９】
また、画素選択回路１１３ｂは、遅延回路１１３ｏから出力された画素群（Ｅ４〜Ｅ７、Ｇ４〜Ｇ７）を読み込む。
＜第４ステップ＞
次に、図１３に示すように、遅延回路１１３ｏが、画素群（Ｆ４〜Ｆ７）および画素群（Ｈ４〜Ｈ７）をそれぞれ出力する。
【００８０】
隣接画素選択回路１１３ｊは、遅延回路１１３ｏから出力された画素群（Ｆ４〜Ｆ７、Ｈ４〜Ｈ７）のうち、画素群（Ｆ４〜Ｆ７）をフィルタ回路１１３ｋに出力し、画素群（Ｈ４〜Ｈ７）をフィルタ回路１１３ｍに出力する。
【００８１】
フィルタ回路１１３ｋは、カレント画素選択回路１１３ｉによって選択されたカレントメモリ出力の画素群（Ｆ８〜Ｆ１１）と隣接画素選択回路１１３ｊによって選択された遅延回路１１３ｏからの画素群（Ｆ４〜Ｆ７）とを用いて垂直エッジフィルタ処理を行う。
【００８２】
また、画素選択回路１１３ｂは、第３ステップにて得られた画素群（Ｅ４〜Ｅ７、Ｇ４〜Ｇ７）と本ステップにて得られた画素群（Ｆ４〜Ｆ７、Ｈ４〜Ｈ７）とを転置して画素群（Ｅ４〜Ｈ４、Ｅ５〜Ｈ５、Ｅ６〜Ｈ６、Ｅ７〜Ｈ７）をカレントメモリ１１３ｆに出力する。ライトメモリコントローラ１１３ｄは、カレントメモリ１１３ｆのアドレス＃０に画素群（Ｅ４〜Ｈ４）および画素群（Ｅ６〜Ｈ６）を格納し、アドレス＃１に画素群（Ｅ５〜Ｈ５）および画素群（Ｅ７〜Ｈ７）を格納する。
【００８３】
以降、隣接左画素群が参照マクロブロックの場合は、第１ステップおよび第２ステップを行い、隣接左画素群が対象マクロブロックの場合は、第３ステップおよび第４ステップを行う。
【００８４】
また、今回の垂直エッジフィルタ処理にて、図６（ｄ）、図６（ｈ）、図７（ｄ）および図７（ｈ）に示す処理を行ったときに得られる画素群（Ｅ１６〜Ｅ１９、Ｆ１６〜Ｆ１９、・・・、Ｓ１６〜Ｓ１９、Ｔ１６〜Ｔ１９）をそれぞれ次回の垂直エッジフィルタ処理に用いる隣接左画素群として隣接左メモリ１１３ｈに格納する。
【００８５】
図１４は、垂直エッジフィルタ処理前後におけるデータの格納状態を示す図である。
図１４に示すように、第３ステップの垂直エッジフィルタ処理を行う前は、遅延回路１１３ｏには画素群（Ｅ４〜Ｅ７、Ｆ４〜Ｆ７、Ｇ４〜Ｇ７、Ｈ４〜Ｈ７）が格納されている。また、アドレス＃０は、第１ステップにてフィルタ回路１１３ｋ、１１３ｍに読み出された画素群（Ｅ４〜Ｅ７、Ｇ４〜Ｇ７）が格納されていた部分であるため空になっている。アドレス＃１も同様に第２ステップにてフィルタ回路１１３ｋ、１１３ｍに読み出された画素群（Ｆ４〜Ｆ７、Ｈ４〜Ｈ７）が格納された部分であるため空になっている。
【００８６】
第３ステップおよび第４ステップを行った後は、遅延回路１１３ｏには画素群（Ｅ８〜Ｅ１１、Ｆ８〜Ｆ１１、Ｇ８〜Ｇ１１、Ｈ８〜Ｈ１１）が格納される。
そして、アドレス＃０には今回の垂直エッジフィルタ処理により画素選択回路１１３ｂにて並び替えられた画素群（Ｅ４、Ｆ４、Ｇ４、Ｈ４）および画素群（Ｅ６、Ｆ６、Ｇ６、Ｈ６）が格納され、アドレス＃１にも今回の垂直エッジフィルタ処理により画素選択回路１１３ｂにて並び替えられた画素群（Ｅ５、Ｆ５、Ｇ５、Ｈ５）および画素群（Ｅ７、Ｆ７、Ｇ７、Ｈ７）が格納される。
【００８７】
図１５は、本実施の形態のデブロッキングフィルタの動作を示すシーケンス図である。なお、図１５において、「カレント」は、カレントメモリ１１３ｆから読み出される画素群を示し、「隣接」は隣接左メモリ１１３ｈから読み出される画素群を示し、「フィルタ後データ」は、遅延回路１１３ｏから出力される画素を示し、「Ｗｒｉｔｅ」は、画素選択回路１１３ｂからカレントメモリ１１３ｆに書き戻される画素群を示し、白抜きの矢印はエッジフィルタ処理を行う画素群の組み合わせを示している。
【００８８】
前述したように最初の１サイクル（２クロック）にて第１ステップおよび第２ステップが実行される。そして、次の１サイクルにて第３ステップおよび第４ステップが実行される。このようにして処理が進み、３サイクル目の１クロック目には、画素選択回路１１３ｂからマクロブロック４行目〜７行目の水平エッジフィルタ処理が可能な画素群がカレントメモリ１１３ｆに書き戻される。４サイクル目の１クロック目には、画素選択回路１１３ｂからマクロブロック８行目〜１１行目の水平エッジフィルタ処理が可能な画素群が書き戻される。５サイクル目の１クロック目には、画素選択回路１１３ｂにてマクロブロック１２行目〜１５行目の水平エッジフィルタ処理が可能な画素群が書き戻される。
【００８９】
このように垂直エッジフィルタ処理が終了した時点で、水平エッジフィルタ処理を行うための画素の配列の準備が終了する。これにより、迅速に水平エッジフィルタを行うことができる。
【００９０】
次に、水平エッジフィルタ処理について説明する。
図１６および図１７は、水平エッジフィルタの処理を示す図である。
水平エッジフィルタ処理では、（８×４）画素を左上側から右下側に向かって処理部分を移動しながら図１６（ａ）〜図１６（ｈ）、図１７（ａ）〜図１７（ｈ）の順にエッジを処理する。以下、詳しく説明する。
【００９１】
まず、１サイクル目の１クロック目に画素（Ｄ４）と画素（Ｅ４）との間のエッジと、画素（Ｄ６）と画素（Ｅ６）との間のエッジとを同時に処理する。このように水平エッジフィルタ処理では、行方向に存在するエッジを処理する。
【００９２】
具体的には、画素群（Ａ４〜Ｈ４）をフィルタ回路１１３ｋにて処理し、画素群（Ａ６〜Ｈ６）をフィルタ回路１１３ｍにて処理する（図１６（ａ）参照）。
そして、２サイクル目に画素（Ｄ５）と画素（Ｅ５）との間のエッジと、画素（Ｄ７）と画素（Ｅ７）との間のエッジとを同時に処理する。
【００９３】
具体的には画素群（Ａ５〜Ｈ５）をフィルタ回路１１３ｋにて処理し、画素群（Ａ７〜Ｈ７）をフィルタ回路１１３ｍにて処理する（図１６（ａ）参照）。
そして、１サイクル毎に４画素分下に移動して、該当するエッジに属する（８×４）画素群について同様の処理を行う（図１６（ｂ）参照）。
【００９４】
そして、対象マクロブロックの下側の端部まで処理を終えると（図１６（ｄ）参照）、次に対象マクロブロック上側の端部における４画素右に存在するエッジの処理を行う（図１６（ｅ）参照）。
【００９５】
そして、マクロブロックの最下端の右側の端部まで処理を終えると処理を終了する（図１７（ｈ）参照）。
なお、水平エッジフィルタ処理を行うために用いる参照マクロブロックの画素群（Ａ４〜Ｄ４、Ａ５〜Ｄ５、・・・、Ａ１８〜Ｄ１８、Ａ１９〜Ｄ１９）は、それぞれ前回の水平エッジフィルタ処理にて外部メモリ１１３ｒに予め列方向に整列された状態で格納されている。そして、今回の水平エッジフィルタ処理を行うときに画素選択回路１１３ａを介して隣接上メモリ１１３ｇに入力される。
【００９６】
具体的には図１６（ａ）、図１６（ｅ）、図１７（ａ）および図１７（ｅ）において、それぞれ外部メモリ１１３ｒから画素選択回路１１３ａを介して隣接上メモリ１１３ｇに入力した画素が読み出される。
【００９７】
また、今回の水平エッジフィルタ処理にて、次回の水平エッジフィルタ処理に用いる上隣接４画素を外部メモリ１１３ｒに格納する。具体的には、図１６（ｄ）、図１６（ｈ）、図１７（ｄ）および図１７（ｈ）に示す処理を行ったときの画素群（Ｑ４〜Ｔ４、Ｑ５〜Ｔ５、・・・、Ｑ１８〜Ｔ１８、Ｑ１９〜Ｔ１９）を外部メモリ１１３ｒに格納する。
【００９８】
次に、水平エッジフィルタ処理時の画素読み出しについて説明する。
図１８および図１９は、水平エッジフィルタ処理時に読み出す画素の順番を示す図である。
【００９９】
水平エッジフィルタ処理では、リードメモリコントローラ１１３ｅがカレントメモリ１１３ｆから（４×４）画素群ずつ、左上側から右下側に向かって移動しながら図１８（ａ）〜図１８（ｈ）、図１９（ａ）〜図１９（ｈ）の順に画素群を読み出す。
【０１００】
まず、リードメモリコントローラ１１３ｅは、１クロック目は垂直方向に４画素２ライン分の画素群（Ｅ４〜Ｈ４、Ｅ６〜Ｈ６）を読み出す。２クロック目は１サイクル目で読み出したデータに対し、水平方向に１画素移動した位置に存在する画素群（Ｅ５〜Ｈ５、Ｅ７〜Ｈ７）を読み出す（図１８（ａ）参照）。
【０１０１】
２サイクル目の1クロック目で垂直方向に４画素移動した位置に存在する４画素２ライン分の画素群（Ｉ４〜Ｌ４、Ｉ６〜Ｌ６）を読み出す。２クロック目は１クロック目で読み出した画素群に対し、水平方向に１画素移動した位置に存在する画素群（Ｉ５〜Ｌ５、Ｉ７〜Ｈ７）を読み出す（図１８（ｂ）参照）。対象マクロブロックの下側の端部まで読み出すと、対象マクロブロック上側の端部における４画素右に存在する４画素２ライン分の画素群を読み出す。すなわち図１８（ｃ）に示すように、１クロック目は、画素群（Ｅ８〜Ｈ８、Ｅ１０〜Ｈ１０）を読み出す。２クロック目は１クロック目で読み出した画素群に対し、垂直方向に１画素移動した位置に存在する画素群（Ｅ９〜Ｈ９、Ｅ１１〜Ｈ１１）を読み出す。リードメモリコントローラ１１３ｅは、この動作を同様に繰り返し、対象マクロブロック中に存在するすべての画素を読み出す。
【０１０２】
以上述べたように、本実施の形態によれば、フィルタ回路１１３ｋ、１１３ｍが、垂直エッジフィルタ処理において行方向に並ぶ画素群を複数列同時に処理することにより、水平エッジフィルタ処理に用いる画素を迅速に取得することができる。そして、画素選択回路１１３ｂが垂直エッジフィルタ処理後の画素群を列方向に並び替えてカレントメモリ１１３ｆに書き戻すことにより、水平エッジフィルタ処理においてリードメモリコントローラ１１３ｅが、カレントメモリ１１３ｆからの画素群の連続読み出しを行うことができる。
【０１０３】
また、一度に読み出す画素群を４画素２ライン分とすることで、カレントメモリ１１３ｆの１アドレス当たりの容量を８画素分とすることができるため水平エッジフィルタ処理を行うために１アドレス当たりの容量が１６画素分必要であった従来に比べてメモリを効率よく使用することができる。
【０１０４】
また、フィルタ回路１１３ｋ、１１３ｍを並列化して設けたことにより、垂直エッジフィルタ処理後、水平エッジフィルタ処理に必要な画素を迅速に用意することができる。例えば、１フレームが１９２０×１０８８画素サイズである場合、従来のデブロッキングフィルタの１マクロブロック分の垂直エッジフィルタ処理に必要な時間は、以下の通りである。
【０１０５】
輝度成分：４（クロック）×１６（ライン）＝６４（クロック）
色差成分：２（クロック）×１６（ライン）＝３２（クロック）
垂直エッジフィルタ処理サイクル：６４＋３２＝９６（クロック）
また、１マクロブロック分の水平エッジフィルタ処理に必要な時間は、以下の通りである。
【０１０６】
輝度成分の１画素当たり：４（クロック）×４（エッジ）＋４（クロック）＝２０（クロック）
輝度成分全体：２０（クロック）×１６（ライン）＝３２０サイクル
色差成分の１画素当たり：６（クロック（読み出し＋フィルタ））＋２（クロック（書込用））＝８（クロック）
色差成分全体：３２０（クロック）＋１２８（クロック）＝４４８（クロック）
よってフィルタ処理に必要なサイクルは、９６（クロック）＋４４８（クロック）＝５４４（クロック）となる。これによりデブロッキングフィルタの動作周波数が１００ＭＨｚである場合、１フレーム当たりの処理時間は、以下の通りである。
【０１０７】
処理時間：５４４（クロック）×１２０（ＭＢ行）×６８（ＭＢ列）×９．２（ｎｓ）＝４０．８３９（ｍｓ）
よって、例えば１（ｓ）で３０枚のフレームを処理する場合は、４０．８３９（ｍｓ）×３０（ｓ）＝１．２２５（ｓ）＞１（ｓ）となってしまう。
【０１０８】
これに対し、本実施の形態のデブロッキングフィルタ１１３の１マクロブロック分の垂直エッジフィルタ処理に必要な時間は、以下の通りである。
輝度成分：２（クロック）×１６（画素）＝３２（クロック）
各色差成分：２（クロック）×４（画素）＝８（クロック）
垂直エッジフィルタ処理サイクル：３２＋８＋８＝４８（クロック）
また、１マクロブロック分の水平エッジフィルタ処理に必要な時間は、以下の通りである。
【０１０９】
輝度成分の１サブブロック：４（クロック）×１６＝６４（クロック）
終端時のライトサイクル：４（クロック）×４＝１６（クロック）
バッファの遅延：２５（クロック）×２＝５０（クロック）
輝度成分全体：６４（クロック）＋１６（クロック）＋５０（クロック）＝１３０サイクル
色差成分の１サブブロック：４（クロック）×８＝３２（クロック）
終端時のライトサイクル：４（クロック）×２＝８（クロック）
バッファの遅延：１７（クロック）×２＝３４（クロック）
色差成分全体：３２（クロック）＋８（クロック）＋３４（クロック）＝７４（クロック）
水平エッジフィルタ処理サイクル：１３０（クロック）＋７４（クロック）＝２０４（クロック）
よってフィルタ処理に必要なサイクルは、４８（クロック）＋２０４（クロック）＝２５２（クロック）となる。
【０１１０】
よって、１フレーム当たりの処理時間は、以下の通りである。
２５２（クロック）×１２０（ＭＢ行）×６８（ＭＢ列）×９．２（ｎｓ）＝１８．９１８（ｍｓ）
よって、例えば１（ｓ）で３０枚のフレームを処理する場合は、１８．９１８（ｍｓ）×３０（ｓ）＝０．５６８（ｓ）＜１（ｓ）となる。
【０１１１】
このように、本実施の形態のデブロッキングフィルタ１１３によれば、１マクロブロック分のエッジフィルタ処理に必要な時間を従来に比べ２倍以上高速化することができる。
次に、第２の実施の形態のデブロッキングフィルタについて説明する。
【０１１２】
以下、第２の実施の形態のデブロッキングフィルタについて、前述した第１の実施の形態のデブロッキングフィルタ１１３との相違点を中心に説明し、同様の事項については、その説明を省略する。
【０１１３】
図２０は、第２の実施の形態のデブロッキングフィルタを示す回路図である。
第２の実施の形態のデブロッキングフィルタ１１３は、カレント画素選択回路１１３ｓを有している点が、第１の実施の形態のデブロッキングフィルタ１１３と異なっている。
【０１１４】
カレント画素選択回路１１３ｓの入力側には遅延回路１１３ｏの出力端子とカレントメモリ１１３ｆの出力とが接続されており、入力されたデータのうちフィルタ回路１１３ｋ、１１３ｍにそれぞれ出力するデータを選択し、出力する。
【０１１５】
また、隣接画素選択回路１１３ｊおよびカレント画素選択回路１１３ｓは、それぞれ（２×２）画素群を格納することができる４つのバッファを有している。
＜第２のエッジフィルタ処理＞
次に、第２のエッジフィルタ処理について説明する。
【０１１６】
以下、第２のエッジフィルタ処理について、前述したエッジフィルタ処理との相違点を中心に説明し、同様の事項については、その説明を省略する。
第２の実施の形態のデブロッキングフィルタ１１３の処理は、対象マクロブロックがノンインタレースであり、参照マクロブロックが、インタレースである場合、すなわちマクロブロック境界を挟み、インタレース／ノンインタレースの組み合わせが存在する場合の処理である。
【０１１７】
図２１は、第２のエッジフィルタ処理の垂直エッジフィルタ処理を示す図である。
対象マクロブロックがノンインタレースであり、参照マクロブロックがインタレースの場合、画素群（Ｅ４〜Ｅ１９、Ｆ４〜Ｆ１９、・・・、Ｋ４〜Ｋ１９、Ｌ４〜Ｌ１９）に関しては、水平エッジフィルタ処理を意識した垂直エッジフィルタ処理を行う。具体的には、まず、列方向に隣接するサブブロックの行方向に並ぶ上から（Ａ列から）数えて奇数列の複数の画素群を同時に処理する。次に、偶数列の複数の画素群を同時に処理する。
【０１１８】
以下、具体例を用いて説明する。
まず、１サイクル目の１クロック目に画素（Ｅ３）と画素（Ｅ４）との間のエッジと、画素（Ｉ３）と画素（Ｉ４）との間のエッジとを同時に処理する。具体的には画素群（Ｅ０〜Ｅ７）をフィルタ回路１１３ｋにて処理し、画素群（Ｉ０〜Ｉ７）をフィルタ回路１１３ｍにて処理する（図２１（ａ）参照）。
【０１１９】
そして、２クロック目に画素（Ｇ３）と画素（Ｇ４）との間のエッジと、画素（Ｋ３）と画素（Ｋ４）との間のエッジとを同時に処理する（図２１（ａ）参照）。以後、１サイクル毎に４画素分右方向に移動して、該当するエッジに属する（４×８）画素群について同様の処理を行う（図２１（ｂ）、図２１（ｃ）参照）。
【０１２０】
そして対象マクロブロックの右側の端部まで処理を終えると（図２１（ｄ）参照）、２サイクル目の１クロック目に画素（Ｆ３）と画素（Ｆ４）との間のエッジと、画素（Ｊ３）と画素（Ｊ４）との間のエッジとを同時に処理する（図２１（ｅ）参照）。
【０１２１】
そして、２クロック目に画素（Ｇ３）と画素（Ｇ４）との間のエッジと、画素（Ｋ３）と画素（Ｋ４）との間のエッジとを同時に処理する（図２１（ｅ）参照）。
そして対象マクロブロックの右側の端部まで処理を終えると（図２１（ｈ）参照）、以降は、図７（ａ）〜図７（ｈ）に示す処理と同様の処理を行う。
【０１２２】
このようにして、デブロッキングフィルタ１１３は、対象マクロブロック中に存在する全ての画素を読み出しつつ、エッジの処理を行う。
図２２〜図２５は、第２のエッジフィルタ処理の水平エッジフィルタ処理を示す図である。
【０１２３】
水平エッジフィルタ処理では、（８×４）画素を左上側から右下側に向かって処理部分を移動しながら図２２（ａ）〜図２２（ｈ）、図２３（ａ）〜図２３（ｈ）、図２４（ａ）〜図２４（ｈ）、図２５（ａ）〜図２５（ｈ）の順にエッジを処理する。
【０１２４】
対象マクロブロックがノンインタレースであり、参照マクロブロックが、インタレースである場合、対象マクロブロックと参照マクロブロックの境界の部分におけるエッジの処理は、ライン毎（１つおき）に行う。すなわち、まず、４行〜７行目の画素において、１クロック目に上から（Ａ列から）数えて奇数番目（トップフィールド）の画素群（Ａ４、Ｃ４、Ｅ４、Ｇ４、Ｉ４、Ｋ４、Ｍ４、Ｏ４）をフィルタ回路１１３ｋにて処理し、画素群（Ａ６、Ｃ６、Ｅ６、Ｇ６、Ｉ６、Ｋ６、Ｍ６、Ｏ６）をフィルタ回路１１３ｍにて処理する（図２２（ａ）参照）。
【０１２５】
そして、２クロック目に画素群（Ａ５、Ｃ５、Ｅ５、Ｇ５、Ｉ５、Ｋ５、Ｍ５、Ｏ５）をフィルタ回路１１３ｋにて処理し、画素群（Ａ７、Ｃ７、Ｅ７、Ｇ７、Ｉ７、Ｋ７、Ｍ７、Ｏ７）をフィルタ回路１１３ｍにて処理する（図２２（ａ）参照）。
【０１２６】
次に、１サイクル間をあけて３サイクル目の１クロック目に上から数えて偶数番目（ボトムフィールド）の画素群（Ｂ４、Ｄ４、Ｆ４、Ｈ４、Ｊ４、Ｌ４、Ｎ４、Ｐ４）をフィルタ回路１１３ｋにて処理し、画素群（Ｂ６、Ｄ６、Ｆ６、Ｈ６、Ｊ６、Ｌ６、Ｎ６、Ｐ６）をフィルタ回路１１３ｍにて処理する（図２２（ｂ）参照）。
【０１２７】
そして、２クロック目に画素群（Ｂ５、Ｄ５、Ｆ５、Ｈ５、Ｊ５、Ｌ５、Ｎ５、Ｐ５）をフィルタ回路１１３ｋにて処理し、画素群（Ｂ７、Ｄ７、Ｆ７、Ｈ７、Ｊ７、Ｌ７、Ｎ７、Ｐ７）をフィルタ回路１１３ｍにて処理する（図２２（ｂ）参照）。
【０１２８】
その後、ノンインタレース側の画素の水平エッジフィルタ処理を行うが、この処理は、第１の実施の形態の処理と同様にして行う（図２２（ｃ）〜図２２（ｅ）参照）。
そして、対象マクロブロックの下側の端部まで処理を終えると（図２２（ｅ）参照）、次に図２２（ａ）および図２２（ｂ）に示した方法と同様の方法で対象マクロブロック上側の端部における４画素右に存在するエッジの処理を行う（図２３（ａ）、図２３（ｂ）参照）。
【０１２９】
そして、マクロブロックの最下端の右側の端部まで処理を終えると処理を終了する（図２５（ｅ）参照）。
図２６〜図３２は、第２のエッジフィルタ処理の水平エッジフィルタ処理時の各部の動作を示す図である。
【０１３０】
＜第１ステップ＞
まず、画素群（Ａ４〜Ａ７、Ｃ４〜Ｃ７、Ｅ４〜Ｅ７、Ｇ４〜Ｇ７）と画素群（Ｉ４〜Ｉ７、Ｋ４〜Ｋ７、Ｍ４〜Ｍ７、Ｏ４〜Ｏ７）とを用いてエッジフィルタ処理を行う（図２６参照）。
【０１３１】
具体的には１サイクル目の１クロック目に隣接上メモリ１１３ｇから画素群（Ａ４、Ｃ４、Ｅ４、Ｇ４）および画素群（Ａ６、Ｃ６、Ｅ６、Ｇ６）を読み出し、カレントメモリ１１３ｆから画素群（Ｉ４、Ｋ４、Ｍ４、Ｏ４）および画素群（Ｉ６、Ｋ６、Ｍ６、Ｏ６）を読み出す。そしてカレント画素選択回路１１３ｓが、画素群（Ｉ４、Ｋ４、Ｍ４、Ｏ４）をフィルタ回路１１３ｋに出力し、画素群（Ｉ６、Ｋ６、Ｍ６、Ｏ６）をフィルタ回路１１３ｍに出力する。
【０１３２】
また、隣接画素選択回路１１３ｊが、画素群（Ａ４、Ｃ４、Ｅ４、Ｇ４）をフィルタ回路１１３ｋに出力し、画素群（Ａ６、Ｃ６、Ｅ６、Ｇ６）をフィルタ回路１１３ｍに出力する。フィルタ回路１１３ｋ、１１３ｍは、これらの画素を用いてそれぞれ水平エッジフィルタ処理を行う。
【０１３３】
なお、第1ステップで隣接上メモリ１１３ｇから読み出した画素群は、画素選択回路１１３ａが、前回のエッジフィルタ処理において外部メモリ１１３ｒに格納されたものを隣接上メモリ１１３ｇに格納する。
【０１３４】
次に、１サイクル目の２クロック目に隣接上メモリ１１３ｇから画素群（Ａ５、Ｃ５、Ｅ５、Ｇ５）および（Ａ７、Ｃ７、Ｅ７、Ｇ７）を読み出し、カレントメモリ１１３ｆから画素群（Ｉ５、Ｋ５、Ｍ５、Ｏ５）および画素群（Ｉ７、Ｋ７、Ｍ７、Ｏ７）を読み出す。そしてカレント画素選択回路１１３ｓが、画素群（Ｉ５、Ｋ５、Ｍ５、Ｏ５）をフィルタ回路１１３ｋに出力し、画素群（Ｉ７、Ｋ７、Ｍ７、Ｏ７）をフィルタ回路１１３ｍに出力する（図２７参照）。
【０１３５】
また、隣接画素選択回路１１３ｊが、画素群（Ａ５、Ｃ５、Ｅ５、Ｇ５）をフィルタ回路１１３ｋに出力し、画素群（Ａ７、Ｃ７、Ｅ７、Ｇ７）をフィルタ回路１１３ｍに出力する。フィルタ回路１１３ｋ、１１３ｍは、これらの画素を用いてそれぞれ水平エッジフィルタ処理を行う。
【０１３６】
＜第２ステップ＞
２サイクル目の１クロック目に遅延回路１１３ｏから出力される画素群（Ｉ４、Ｋ４、Ｍ４、Ｏ４）および画素群（Ｉ６、Ｋ６、Ｍ６、Ｏ６）のうち、画素群（Ｍ４、Ｏ４、Ｍ６、Ｏ６）をカレント画素選択回路１１３ｓに格納し、画素群（Ｉ４、Ｋ４、Ｉ６、Ｋ６）を隣接画素選択回路１１３ｊに格納する（図２８参照）。
【０１３７】
次に、２サイクル目の２クロック目に遅延回路１１３ｏから出力される画素群（Ｉ５、Ｋ５、Ｍ５、Ｏ５）および画素群（Ｉ７、Ｋ７、Ｍ７、Ｏ７）のうち、画素群（Ｍ５、Ｏ５、Ｍ７、Ｏ７）をカレント画素選択回路１１３ｓに格納し、画素群（Ｉ５、Ｋ５、Ｉ７、Ｋ７）を隣接画素選択回路１１３ｊに格納する（図２９参照）。
【０１３８】
＜第３ステップ＞
３サイクル目の１クロック目に隣接上メモリ１１３ｇから画素群（Ｂ４、Ｄ４、Ｆ４、Ｈ４）および画素群（Ｂ６、Ｄ６、Ｆ６、Ｈ６）を読み出し、カレントメモリ１１３ｆから画素群（Ｊ４、Ｌ４、Ｎ４、Ｐ４）および画素群（Ｊ６、Ｌ６、Ｎ６、Ｐ６）を読み出し、フィルタ回路１１３ｋ、１１３ｍがこれらの画素を用いて水平エッジフィルタ処理を行う（図３０参照）。
【０１３９】
３サイクル目の２クロック目に隣接上メモリ１１３ｇから画素群（Ｂ５、Ｄ５、Ｆ５、Ｈ５）および画素群（Ｂ７、Ｄ７、Ｆ７、Ｈ７）を読み出し、カレントメモリ１１３ｆから画素群（Ｊ５、Ｌ５、Ｎ５、Ｐ５）および画素群（Ｊ７、Ｌ７、Ｎ７、Ｐ７）を読み出し、フィルタ回路１１３ｋ、１１３ｍがこれらの画素を用いて水平エッジフィルタ処理を行う（図３１参照）。
【０１４０】
＜第４ステップ＞
４サイクル目の１クロック目に遅延回路１１３ｏから出力される画素群（Ｊ４、Ｌ４、Ｎ４、Ｐ４）および画素群（Ｊ６、Ｌ６、Ｎ６、Ｐ６）のうち、画素群（Ｊ４、Ｌ４、Ｊ６、Ｌ６）を隣接画素選択回路１１３ｊに入力し、画素群（Ｎ４、Ｐ４、Ｎ６、Ｐ６）をカレント画素選択回路１１３ｓに入力する。
【０１４１】
そして、隣接画素選択回路１１３ｊが隣接上画素群として、２サイクル目に得られた画素群（Ｉ４、Ｋ４）と、入力された画素群（Ｊ４、Ｌ４）とによって得られた画素群（Ｉ４〜Ｌ４）をフィルタ回路１１３ｋに出力する。また、２サイクル目に得られた画素群（Ｉ６、Ｋ６）と、入力された画素群（Ｊ６、Ｌ６）とによって得られた画素群（Ｉ６〜Ｌ６）をフィルタ回路１１３ｍに出力する。
【０１４２】
また、カレント画素選択回路１１３ｓがカレント側画素群として、２サイクル目に得られた画素群（Ｍ４、Ｏ４）と、入力された画素群（Ｎ４、Ｐ４）とによって得られた画素群（Ｍ４〜Ｐ４）をフィルタ回路１１３ｋに出力する。また、２サイクル目に得られた画素群（Ｍ６、Ｏ６）と、入力された画素群（Ｎ６、Ｏ６）とによって得られた画素群（Ｍ６〜Ｐ６）をフィルタ回路１１３ｍに出力する。フィルタ回路１１３ｋ、１１３ｍがこれらの画素を用いて水平エッジフィルタ処理を行う（図３２参照）。
【０１４３】
図３３は、第２のエッジフィルタ処理を示すシーケンス図である。
対象マクロブロックがノンインタレースであり、参照マクロブロックがインタレースの場合、第１のエッジフィルタ処理に比べて処理パターンが増加する部分が存在する（例えば図１６（ａ）に対し、図２２（ａ）および図２２（ｂ））。一方、第１のフィルタ処理と共通の処理パターンも存在する（例えば図１６（ｂ）〜図１６（ｄ）に対し、図２２（ｃ）〜図２２（ｅ））。このためトータルでの処理時間が変動する。
【０１４４】
この第２のフィルタ処理によれば、フィルタ処理とフィルタ処理との間に、敢えて遅延回路１１３ｏから出力された画素を処理するための空きサイクル（２サイクル目および４サイクル目）を挿入することにより、処理の遅延を防止することができる。これにより処理時間が固定されるため、動作が安定する。また、正確な検証時間を把握することができるため、回路検証を容易に行うことができる。
【０１４５】
また、カレント側画素群の入力の際、フィルタ後のデータを選択できるよう、隣接画素選択回路１１３ｉを設けたので、エッジが増加する場合に対応することができる。
ところで、フィルタ回路１１３ｋ、１１３ｍは、入力された各画素群（８画素）に対し全て異なる演算式を用いてエッジフィルタ処理を施している。演算に際し、共通の演算項が存在するためこの部分を共有してハードリソースの共有化を図っている。
【０１４６】
図３４は、フィルタ回路に入力された各画素と演算式との関係を示す図である。
図３４中、「ｑ」はカレント側画素を示し、「ｐ」は隣接側画素を示す。数字の大小は、エッジからの距離を示す。すなわちｐ０、ｑ０は、それぞれエッジを挟んで互いに隣接する位置の画素を示す。ｐ１は、ｐ０の左側に位置する画素を示す。ｑ１は、ｑ０の右側に位置する画素を示す。ｐ２は、ｐ１の左側に位置する画素を示す。ｑ２は、ｑ１の右側に位置する画素を示す。ｐ３は、ｐ１の左側に位置する画素を示す。ｑ３は、ｑ１の右側に位置する画素を示す。
【０１４７】
図３５は、ハードリソースの共有を示す図である。
図３５中、「ａｐ０」〜「ａｐ２」は、それぞれｐ０〜ｐ２のフィルタ処理後の画素を示す。「ａｑ０」〜「ａｑ２」は、それぞれｑ０〜ｑ２のフィルタ処理後の画素を示す。「ｂｓ」はフィルタ強度を示す。「ｃｈｒｏｍａＥｄｇｅＦｌａｇ＝０」は、輝度を示す。「ｃｈｒｏｍａＥｄｇｅＦｌａｇ＝１」は、色差を示す。
【０１４８】
また、演算項において「−ｔｃ０」、「ｔｃ０」は、フィルタ強度から求められるスレッショルドのパラメータを示す。このパラメータは、フィルタ回路１１３ｋ、１１３ｍがそれぞれ有している。「Ｃｌｉｐ」は、カッコ内のカンマで区切られている３つの値のうち、左側２つがスレッショルドを示し、右側が演算式を示す。−ｔｃ０〜ｔｃ０の間で演算式を計算する。演算式の演算結果がｔｃ０になった場合はｔｃ０にクリップする。−ｔｃ０になった場合は−ｔｃ０にクリップする。それ以外の場合は演算結果を出力する。「＞＞」は１ビット左シフト（乗算）を示す。「＜＜」は、１ビット右シフト（除算）を示す。
【０１４９】
例えばａｐ１の演算を行う場合とａｑ１の演算を行う場合とにおいてはいずれも（ｐ０＋ｑ０＋１）＞＞１を演算する必要がある。よって、この演算について処理回路を単一化し、出力を分岐することで等価回路を実現する。
【０１５０】
図３５中「ＡＤＤ１」〜「ＡＤＤ７」と「ＤＩＶ」とがハードリソース共有部（演算部）である。例えば「ＡＤＤ４」は、（ｐ０＋ｑ０）を行う。「ＡＤＤ７」は、（ＡＤＤ４＋１）＝（ｐ０＋ｑ０＋１）を行う。「ＤＩＶ」は、（ＡＤＤ７＞＞１）＝（（ｐ０＋ｑ０＋１）＞＞１）を行う。
【０１５１】
このように、フィルタ回路１１３ｋ、１１３ｍにおいて異なる画素の演算について同一演算項を同じハードリソースを用いて演算するようにしたので、回路の簡素化を図ることができる。
【０１５２】
以上、本発明のデブロッキングフィルタ、画像符号化装置および画像復号化装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０１５３】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、画像符号化装置および画像復号化装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクとしては、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。光磁気記録媒体としては、例えば、ＭＯ（Magneto-Optical disk）等が挙げられる。
【０１５４】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１５５】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１５６】
（付記１）  複数のブロックに区分された動画像データの前記ブロックのエッジを挟んで、前記エッジと交差する方向に並んだ所定個数の画素群について、ブロック歪みを低減させるエッジフィルタ処理を行うデブロッキングフィルタにおいて、
処理対象のマクロブロックの列方向の前記エッジを挟んで行方向に並ぶ前記画素群を複数列同時に処理する列方向エッジフィルタ処理を行う処理部と、
前記処理部によって処理した前記画素群のうち前記処理対象の前記マクロブロックの画素群を列方向毎に並び替える並び替え部と、
を有することを特徴とするデブロッキングフィルタ。
【０１５７】
（付記２）  前記処理部は、行方向エッジフィルタ処理１サイクル分の行方向に並ぶ前記画素群を１サイクルで複数列同時に処理する列方向エッジフィルタ処理を行うことを特徴とする付記１記載のデブロッキングフィルタ。
【０１５８】
（付記３）  前記処理部は、サブブロックの列方向の前記エッジを挟んで行方向に並ぶ前記画素群を１サイクルで複数列同時に処理する列方向エッジフィルタ処理を行い、処理が終了すると、行方向に隣接する前記サブブロックの列方向の前記エッジを挟んで行方向に並ぶ前記画素群を１サイクルで複数列同時に処理する列方向エッジフィルタ処理を行うことを特徴とする付記１記載のデブロッキングフィルタ。
【０１５９】
（付記４）  行方向に並ぶ前記画素群は、今回の処理対象のカレント側画素群と前回以前に処理を行った隣接側画素群とで構成されていることを特徴とする付記１記載のデブロッキングフィルタ。
【０１６０】
（付記５）  前記処理部は、１／２サイクル毎に１つの行方向に並ぶ前記画素群の前記エッジフィルタ処理を行うＮ（Ｎ≧２）個のフィルタ回路と、
前記カレント側画素群を前記各フィルタ回路に出力するカレント側画素群出力部と、
前記隣接側画素群を前記各フィルタ回路に出力する隣接側画素群出力部と、
実質的に前記エッジフィルタ処理に要する時間をＮ／２サイクルとするサイクル調整用回路とを有し、
前記並び替え部は、前記サイクル調整用回路から出力された行方向に並ぶ前記画素群を、列毎に並び替えて前記カレント側画素群出力部に出力することを特徴とする付記４記載のデブロッキングフィルタ。
【０１６１】
（付記６）  Ｎ＝２であることを特徴とする付記５記載のデブロッキングフィルタ。
（付記７）  前記カレント側画素群出力部は、１アドレス当たりに前記フィルタ回路に一度に読み出すＮ個の前記カレント側画素群を格納するカレントメモリを有することを特徴とする付記５記載のデブロッキングフィルタ。
【０１６２】
（付記８）  前記隣接側画素群出力部は、予め格納されている前記隣接側画素群を出力する隣接側メモリと、前記サイクル調整用回路からの前記画素群とを選択する選択回路とを有することを特徴とする付記５記載のデブロッキングフィルタ。
【０１６３】
（付記９）  前記フィルタ回路は、前記画素群の各画素の演算式における共通演算項をまとめて演算する演算部を有することを特徴とする付記５記載のデブロッキングフィルタ。
【０１６４】
（付記１０）  前記隣接側画素群がインタレースであり、前記カレント側画素群がノンインタレースであるとき、前記列方向エッジフィルタ処理において列方向に隣接する各サブブロックの前記エッジを挟んで行方向に並ぶ前記画素群を同時に処理することを特徴とする付記５記載のデブロッキングフィルタ。
【０１６５】
（付記１１）  前記カレント側画素群出力部は、行方向エッジフィルタ処理において、予め格納されている列方向の前記画素群を出力するカレントメモリと、前記カレントメモリからの前記画素群と前記サイクル調整用回路から出力された前記画素群のうち前記処理対象の前記マクロブロックの画素群を列方向毎に並び替えた前記画素群とを選択して出力する選択回路とを有することを特徴とする付記１０記載のデブロッキングフィルタ。
【０１６６】
（付記１２）  前記処理部は、前記行方向エッジフィルタ処理において、一定期間前記フィルタ回路に対し前記カレントメモリからの前記画素群の出力を停止する停止期間を設け、前記停止期間において前記フィルタ回路は、前記選択回路から出力された前記画素群のみを用いて前記エッジフィルタ処理を行うことを特徴とする付記１１記載のデブロッキングフィルタ。
【０１６７】
（付記１３）  複数のブロックに区分された動画像データの前記ブロックのエッジを挟んで、前記エッジと交差する方向に並んだ所定個数の画素群について、ブロック歪みを低減させるエッジフィルタ処理を行う画像符号化装置において、
処理対象のマクロブロックの列方向の前記エッジを挟んで行方向に並ぶ前記画素群を複数列同時に処理する列方向エッジフィルタ処理を行う処理部と、
前記処理部によって処理した前記画素群のうち前記処理対象の前記マクロブロックの画素群を列方向毎に並び替える並び替え部と、
を有することを特徴とする画像符号化装置。
【０１６８】
（付記１４）  複数のブロックに区分された動画像データの前記ブロックのエッジを挟んで、前記エッジと交差する方向に並んだ所定個数の画素群について、ブロック歪みを低減させるエッジフィルタ処理を行う画像復号化装置において、
処理対象のマクロブロックの列方向の前記エッジを挟んで行方向に並ぶ前記画素群を複数列同時に処理する列方向エッジフィルタ処理を行う処理部と、
前記処理部によって処理した前記画素群のうち前記処理対象の前記マクロブロックの画素群を列方向毎に並び替える並び替え部と、
を有することを特徴とする画像復号化装置。
【図面の簡単な説明】
【０１６９】
【図１】本発明の概要を示す図である。
【図２】本発明の実施の形態の画像符号化装置の構成を示したブロック図である。
【図３】本発明の実施の形態の画像復号化装置の構成を示したブロック図である。
【図４】本実施の形態のデブロッキングフィルタを示す回路図である。
【図５】カレントメモリのメモリ構成を示す図である。
【図６】垂直エッジフィルタ処理を示す図である。
【図７】垂直エッジフィルタ処理を示す図である。
【図８】垂直エッジフィルタ時の画素読み出しを説明する図である。
【図９】垂直エッジフィルタ時の画素読み出しを説明する図である。
【図１０】第１のエッジフィルタ処理の垂直エッジフィルタ処理時の各部の動作を示す図である。
【図１１】第１のエッジフィルタ処理の垂直エッジフィルタ処理時の各部の動作を示す図である。
【図１２】第１のエッジフィルタ処理の垂直エッジフィルタ処理時の各部の動作を示す図である。
【図１３】第１のエッジフィルタ処理の垂直エッジフィルタ処理時の各部の動作を示す図である。
【図１４】垂直エッジフィルタ処理前後におけるデータの格納状態を示す図である。
【図１５】本実施の形態のデブロッキングフィルタの動作を示すシーケンス図である。
【図１６】水平エッジフィルタの処理を示す図である。
【図１７】水平エッジフィルタの処理を示す図である。
【図１８】水平エッジフィルタ処理時に読み出す画素の順番を示す図である。
【図１９】水平エッジフィルタ処理時に読み出す画素の順番を示す図である。
【図２０】第２の実施の形態のデブロッキングフィルタを示す回路図である。
【図２１】第２のエッジフィルタ処理の垂直エッジフィルタ処理を示す図である。
【図２２】第２のエッジフィルタ処理の水平エッジフィルタ処理を示す図である。
【図２３】第２のエッジフィルタ処理の水平エッジフィルタ処理を示す図である。
【図２４】第２のエッジフィルタ処理の水平エッジフィルタ処理を示す図である。
【図２５】第２のエッジフィルタ処理の水平エッジフィルタ処理を示す図である。
【図２６】第２のエッジフィルタ処理の水平エッジフィルタ処理時の各部の動作を示す図である。
【図２７】第２のエッジフィルタ処理の水平エッジフィルタ処理時の各部の動作を示す図である。
【図２８】第２のエッジフィルタ処理の水平エッジフィルタ処理時の各部の動作を示す図である。
【図２９】第２のエッジフィルタ処理の水平エッジフィルタ処理時の各部の動作を示す図である。
【図３０】第２のエッジフィルタ処理の水平エッジフィルタ処理時の各部の動作を示す図である。
【図３１】第２のエッジフィルタ処理の水平エッジフィルタ処理時の各部の動作を示す図である。
【図３２】第２のエッジフィルタ処理の水平エッジフィルタ処理時の各部の動作を示す図である。
【図３３】第２のエッジフィルタ処理を示すシーケンス図である。
【図３４】フィルタ回路に入力された各画素と演算式との関係を示す図である。
【図３５】ハードリソースの共有を示す図である。
【図３６】従来のデブロッキングフィルタの垂直エッジフィルタを示す図である。
【図３７】従来のデブロッキングフィルタの水平エッジフィルタを示す図である。
【符号の説明】
【０１７０】
１、１１３、２０７  デブロッキングフィルタ
２  処理部
３  並び替え部
４  マクロブロック
１００  画像符号化装置
１０１  ＭＢ分割部
１０２  動きベクトル検出部
１０３、２０９  過去のフレームバッファ
１０４、２１０  フレーム間予測部
１０５、２０５  フレーム内予測部
１０６、２０４  現フレームバッファ
１０７、２０６  予測モード選択部
１０８  減算器
１０９  直交変換量子化部
１１０  エントロピー符号化部
１１１、２０２  逆量子化逆直交変換部
１１２、２０３  加算器
１１３ａ、１１３ｂ  画素選択回路
１１３ｃ  タイミングコントローラ
１１３ｄ  ライトメモリコントローラ
１１３ｅ  リードメモリコントローラ
１１３ｆ  カレントメモリ
１１３ｇ  隣接上メモリ
１１３ｈ  隣接左メモリ
１１３ｉ、１１３ｓ  カレント画素選択回路
１１３ｊ  隣接画素選択回路
１１３ｋ、１１３ｍ  フィルタ回路
１１３ｎ  フィルタリングパラメータ保持回路
１１３ｏ  遅延回路
１１３ｐ、１１３ｑ  外部メモリインタフェース
１１３ｒ  外部メモリ
１１４、２０８  フレームバッファ管理部
２００  画像復号化装置
２０１  エントロピー復号化部
【図１】
2008048181.tif 000003
【図２】
2008048181.tif 000004
【図３】
2008048181.tif 000005
【図４】
2008048181.tif 000006
【図５】
2008048181.tif 000007
【図６】
2008048181.tif 000008
【図７】
2008048181.tif 000009
【図８】
2008048181.tif 000010
【図９】
2008048181.tif 000011
【図１０】
2008048181.tif 000012
【図１１】
2008048181.tif 000013
【図１２】
2008048181.tif 000014
【図１３】
2008048181.tif 000015
【図１４】
2008048181.tif 000016
【図１５】
2008048181.tif 000017
【図１６】
2008048181.tif 000018
【図１７】
2008048181.tif 000019
【図１８】
2008048181.tif 000020
【図１９】
2008048181.tif 000021
【図２０】
2008048181.tif 000022
【図２１】
2008048181.tif 000023
【図２２】
2008048181.tif 000024
【図２３】
2008048181.tif 000025
【図２４】
2008048181.tif 000026
【図２５】
2008048181.tif 000027
【図２６】
2008048181.tif 000028
【図２７】
2008048181.tif 000029
【図２８】
2008048181.tif 000030
【図２９】
2008048181.tif 000031
【図３０】
2008048181.tif 000032
【図３１】
2008048181.tif 000033
【図３２】
2008048181.tif 000034
【図３３】
2008048181.tif 000035
【図３４】
2008048181.tif 000036
【図３５】
2008048181.tif 000037
【図３６】
2008048181.tif 000038
【図３７】
2008048181.tif 000039