(57)【特許請求の範囲】
【請求項１】
動画像のピクチャを分割することにより得られるブロック毎にフィルタ処理を行うデブロッキングフィルタであって、
フレームメモリから読み出した前記ピクチャの画素データを格納する第１のメモリと、
前記ピクチャの第１のブロックに対応する第１のフィルタ領域内の水平エッジについてフィルタ処理を行う水平フィルタと、
前記水平フィルタによるフィルタ処理の後に、前記第１のフィルタ領域内の予め決められた特定領域の画素データを格納する第２のメモリと、
前記水平フィルタによるフィルタ処理の後に、前記第１のフィルタ領域内の垂直エッジについてフィルタ処理を行う垂直フィルタと、
前記垂直フィルタによるフィルタ処理の後に、前記第１のフィルタ領域の画素データを前記フレームメモリに送信する送信手段と、を備え、
前記水平フィルタは、前記第１のメモリに格納されている画素データおよび前記第２のメモリに格納されている画素データを利用して、前記第１のブロックに隣接する第２のブロックに対応する第２のフィルタ領域内の水平エッジについてフィルタ処理を行う
ことを特徴とするデブロッキングフィルタ。
【請求項２】
請求項１に記載のデブロッキングフィルタであって、
前記第２のメモリから読み出した画素データで、前記第１のメモリから読み出した画素データの対応する一部を置き換える置換え手段をさらに備え、
前記水平フィルタは、前記置換え手段により得られる画素データを利用して、前記第２のフィルタ領域内の水平エッジについてフィルタ処理を行う
ことを特徴とするデブロッキングフィルタ。
【請求項３】
請求項１に記載のデブロッキングフィルタであって、
前記特定領域は、前記第１のフィルタ領域内で前記第２のブロックに最も近い垂直エッジに隣接する画素が位置する領域である
ことを特徴とするデブロッキングフィルタ。
【請求項４】
動画像のピクチャを分割することにより得られるブロック毎にフィルタ処理を行うデブロッキングフィルタであって、
フレームメモリから読み出した前記ピクチャの画素データを格納する第１のメモリと、
前記ピクチャの第１のブロックに対応する第１のフィルタ領域内の水平エッジについてフィルタ処理を行う水平フィルタと、
前記水平フィルタによるフィルタ処理の後に、前記第１のフィルタ領域内の垂直エッジについてフィルタ処理を行う垂直フィルタと、
前記第１のフィルタ領域内の予め決められた垂直エッジに隣接する画素データについての前記垂直フィルタによる補正値を格納する第２のメモリと、
前記垂直フィルタによるフィルタ処理の後に、前記第１のフィルタ領域の画素データを前記フレームメモリに送信する送信手段と、を備え、
前記水平フィルタは、前記第１のメモリに格納されている画素データおよび前記第２のメモリに格納されている補正値を利用して、前記第１のブロックに隣接する第２のブロックに対応する第２のフィルタ領域内の水平エッジについてフィルタ処理を行う
ことを特徴とするデブロッキングフィルタ。
【請求項５】
請求項４に記載のデブロッキングフィルタであって、
前記第２のメモリから読み出した補正値から画素データを復元する復元手段をさらに備え、
前記水平フィルタは、前記復元手段により得られる画素データを利用して、前記第２の
フィルタ領域内の水平エッジについてフィルタ処理を行う
ことを特徴とするデブロッキングフィルタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像符号装置または動画像復号装置において使用されるデブロッキングフィルタに係わり、特に、インターレースフレームのピクチャを処理するためのデブロッキングフィルタに係わる。
【背景技術】
【０００２】
動画像の符号化／復号化は、一般に、１枚のピクチャを複数の領域に分割することにより得られるブロック毎に行われる。ところが、ブロック毎に符号化／復号化を行う方式では、互いに隣接するブロックの境界でノイズまたは歪が発生する。このため、多くの動画像符号化規格（例えば、ＶＣ−１、Ｈ．２６４等）においては、ブロックノイズを緩和するためのデブロッキングフィルタが規定されている。
【０００３】
図２４は、マクロブロック（１６×１６画素）単位でデブロッキングフィルタ処理を行うシーケンスを説明する図である。デブロッキングフィルタ処理は、復号されたピクチャデータについて行われる。ここで、復号処理は、ピクチャ内の左上のブロックから順番に行われる。このため、デブロッキングフィルタ処理は、基本的に、図２４に示すように、カレントマクロブロック（処理対象のマクロブロック）の左上領域の画素データに対して行われる。
【０００４】
図２５は、デブロッキングフィルタにおいて必要とされる画素データについて説明する図である。ここでは、カレントマクロブロック１０１の画素データが新たに読み込まれるものとする。また、破線で示すフィルタ対象領域１０５は、カレントマクロブロック１０１が指定されたときにフィルタ処理を行うべき領域である。すなわち、フィルタ対象領域１０５内の各水平エッジおよび各垂直エッジについてフィルタ処理が行われる。なお「エッジ」とは、ここでは、ブロックとブロックとの間の「境界」を意味する。
【０００５】
このフィルタ処理を行うためには、カレントマクロブロック１０１の画素データに加えて、領域１０２、１０３、１０４の画素データが必要である。領域１０２は、カレントマクロブロック１０１の左側隣接領域であり、カレンマクロトブロック１０１の直前に処理されたブロックである。領域１０３は、カレントマクロブロック１０１の上側隣接領域である。領域１０４は、カレントマクロブロック１０１の左上側隣接領域である。なお、領域１０４は、領域１０２に対して上側隣接領域である。そして、カレントマクロブロック１０１および領域１０２〜１０４の画素データを利用して、各水平エッジおよび各垂直エッジについてフィルタ処理が行われる。
【０００６】
図２６は、デブロッキングフィルタ処理の概要を説明する図である。デブロッキングフィルタ処理では、互いに隣接するブロック（８×８画素、８×４画素、４×８画素、４×４画素などの整数変換ブロック）どうしの境界の近傍の画素の画素データがフィルタ処理される。すなわち、図２６に示す例では、各エッジ（水平エッジおよび垂直エッジを含む）の両側に位置する画素データＰ１〜Ｐ８が抽出され、これらの画素データＰ１〜Ｐ８に基づいてエッジに隣接する画素データＰ４、Ｐ５が補正される。このフィルタ処理により、ブロック間の境界における画像の乱れが抑えられる。なお、各エッジにおいて、ｘ＝２、０、１、３の順番でフィルタ計算が行われる。
【０００７】
ＶＣ−１では、３種類のピクチャ構造（プログレッシブ、インターレースフィールド、インターレースフレーム）が規定されている。これらの構造のうち、インターレースフレームピクチャは、図２７に示すように、トップフィールド（偶数ライン）およびボトムフ
ィールド（奇数ライン）から構成される。そして、デブロッキングフィルタで水平エッジを処理する際には、トップフィールドの処理およびボトムフィールドの処理が互いに独立して実行される。すなわち、トップフィールドの画素データＰ１〜Ｐ８に基づいて画素データＰ４、Ｐ５が補正され、また、ボトムフィールドの画素データＰ１〜Ｐ８に基づいて画素データＰ４、Ｐ５が補正される。
【０００８】
図２８は、デブロッキングフィルタの一例の構成を示す図である。図２８において、画素入力部５１は、ＲＡＭインタフェースを介して、復号されたカレントマクロブロックの画素データを内部ＲＡＭ５２に格納する。このとき、例えば図２５に示す例おいて、カレントマクロブロック１０１に対応するフィルタ対象領域１０５についてフィルタ処理を行うためには、カレントマクロブロック１０１の画素データに加えて、領域１０２〜１０４の画素データが必要である。ここで、先に復号されている領域の画素データは、外部メモリ５３に格納されているものとする。ただし、領域１０２、１０４の画素データは、前回のフィルタ処理の演算結果であるため、内部ＲＡＭ５２に残っているものとする。そうすると、フィルタ対象領域１０５についてフィルタ処理を行うために、外部メモリ５３から読み込む必要がある画素データは、領域１０３の画素データである。よって、領域１０３の画素データが、外部メモリ５３から内部ＲＡＭ５２へ送信される。
【０００９】
カレントマクロブロック１０１および領域１０２〜１０４の画素データを利用して、水平エッジおよび垂直エッジについてフィルタ演算が行われる。演算結果は、いったん内部ＲＡＭ５２に格納された後、外部メモリ５３へ送信される。このとき、図２９において破線で示す領域１０６の画素データ（フィルタ処理後の画素データを含む）が内部ＲＡＭ５２から外部メモリ５３へ送信される。
【００１０】
動画像の符号化における雑音を低減する装置として、例えば以下のような技術が知られている。アクティビティ計算回路は、ブロック状に符号化された画像データについてのアクティビティを求める。ブロック雑音予測回路は、アクティビティ計算回路により得られたアクティビティに基づいて、ブロック内の平均雑音を予測する。画素雑音予測回路は、ブロック雑音予測回路により得られたブロック雑音予測値およびアクティビティ計算回路により得られたアクティビティから、各画素の雑音予測値を求める。フィルタ係数決定回路は、フィルタ係数を決定する。フィルタ回路は、雑音成分を除去した画像データを予測して出力する。上記予測に際して、雑音低減回路において垂直方向の処理よりも水平方向の処理が先に行われる。
【００１１】
他の技術としては、次のような技術も知られている。画像復号化装置は、可変長復号化部、逆量子化部、逆直交変換部、制御部、およびブロックノイズ除去部を備える。可変長復号化部は、ブロック毎に直交変換、量子化、および可変長符号を用いて圧縮された画像データを可変長復号する。逆量子化部は、可変長復号部により復号化された画像データを逆量子化する。逆直交変換部は、逆量子化部により逆量子化された画像データを逆直交変換することで復号画像データを生成する。復号画像データから所定の画像データを抽出する。ブロックノイズ除去部は、制御部で抽出した画像データのブロック境界部分においてブロックノイズを除去する。
【００１２】
更に他の技術として、水平フィルタ処理および垂直フィルタ処理の依存関係を調整して並列に実行する機能を備えるデブロックフィルタを設けることが知られている。
【特許文献１】特開平７−２３６１４０号公報
【特許文献２】特開２００２−７７９１４号公報
【特許文献３】特開２００６−１７４１３８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
図３０は、非インターレースフレームピクチャのフィルタ処理を説明する図である。非インターレースフレームピクチャは、例えば、プログレッシブピクチャまたはインターレースフィールドピクチャである。以下の説明では、１６×１６画素のマクロブロック毎にフィルタ処理が行われるものとする。また、画素データは、ＹＣｂＣｒ（輝度／色差）系で表されているものとする。なお、図３０において、カレントマクロブロックに対してフィルタ処理を行うべき水平エッジを○印で表し、フィルタ処理を行うべき垂直エッジを□印で表している。
【００１４】
カレントマクロブロックに対応するフィルタ領域においてフィルタ処理を行う場合には、図３０（ａ）に示すように、Ｙデータについては、外部メモリ５３から８ライン分の画素データを読み出す。同様に、ＣｂデータおよびＣｒデータについても、それぞれ外部メモリ５３から８ライン分の画素データを読み出す。
【００１５】
フィルタ処理の演算結果としての得られる画素データは、いったん内部ＲＡＭ５２に格納された後、外部メモリ５３に送信される。このとき、図３０（ｂ）に示すように、Ｙデータについては、２４ライン分の画素データが送信される。また、ＣｂデータデおよびＣｒデータについては、それぞれ、１６ライン分の画素データが送信される。
【００１６】
図３１は、インターレースフレームピクチャのフィルタ処理を説明する図である。インターレースフレームピクチャの水平エッジについてフィルタ処理する場合は、図２７を参照しながら説明したように、非インターレースフレームピクチャと比較して必要な画素数は２倍になる。このため、例えば、図３１（ａ）に示す水平エッジＡについてフィルタ処理を行うためには、そのエッジの上側８ライン分の画素データ、および下側８ライン分の画素データが必要になる。また、垂直エッジのフィルタ処理は、４ライン分のトップフィールドおよび４ライン分のボトムフィールドについて一括して行われる。すなわち、例えば、垂直エッジＢ、Ｃについて一括してフィルタ処理が行われる。
【００１７】
したがって、カレントマクロブロックに対応するフィルタ対象領域についてフィルタ処理を行う場合には、図３１（ａ）に示すように、Ｙデータ、Ｃｂデータ、Ｃｒデータのそれぞれについては、カレントマクロブロックの上側の１６ライン分の画素データが必要になる。すなわち、外部メモリ５３から１６ライン分の画素データが読み出される。また、図３１（ｂ）に示すように、Ｙデータについてのフィルタ演算結果として、３２ライン分の画素データが外部メモリ５３に送信される。ＣｂデータデおよびＣｒデータについては、それぞれ、２４ライン分の画素データが送信される。
【００１８】
図３２は、従来技術のフィルタ処理を行った場合の外部メモリへのアクセス量をまとめた表である。ここでは、動画像は、３０フレーム／秒である。また、１９２０×１０８８画素のピクチャにおいて、１６×１６マクロブロック毎にフィルタ処理が行われる。さらに、各画素のＹデータ、Ｃｂデータ、Ｃｒデータのビット数は、それぞれ８ビットである。この場合、非インターレースフレームピクチャである場合は、外部メモリ５３へのアクセス量（データ読出しおよびデータ書込みの総量）は、２０９ＭＢ（メガバイト）／秒である。また、インターレースフレームピクチャである場合は、３２８ＭＢ／秒である。
【００１９】
このように、従来技術のデブロッキングフィルタにおいては、インターレースフレームピクチャのブロックノイズを除去する際に、外部メモリへのアクセス量が非常に大きくなる。
【００２０】
本発明の課題は、インターレースフレームピクチャのブロックノイズを除去する際のメモリアクセス量を少なくすることである。
【課題を解決するための手段】
【００２１】
本発明の一態様のデブロッキングフィルタは、動画像のピクチャを分割することにより得られるブロック毎にフィルタ処理を行う構成であって、フレームメモリから読み出した前記ピクチャの画素データを格納する第１のメモリと、前記ピクチャの第１のブロックに対応する第１のフィルタ領域内の水平エッジについてフィルタ処理を行う水平フィルタと、前記水平フィルタによるフィルタ処理の後に、前記第１のフィルタ領域内の予め決められた特定領域の画素データを格納する第２のメモリと、前記水平フィルタによるフィルタ処理の後に、前記第１のフィルタ領域内の垂直エッジについてフィルタ処理を行う垂直フィルタと、前記垂直フィルタによるフィルタ処理の後に、前記第１のフィルタ領域の画素データを前記フレームメモリに送信する送信手段と、を備える。そして、前記水平フィルタは、前記第１のメモリに格納されている画素データおよび前記第２のメモリに格納されている画素データを利用して、前記第１のブロックに隣接する第２のブロックに対応する第２のフィルタ領域内の水平エッジについてフィルタ処理を行う。
【００２２】
この構成によれば、第２のメモリには、第１のフィルタ領域内の垂直エッジについてフィルタ処理を行う前の状態の画素データが格納される。そして、第２のフィルタ領域内の水平エッジについてフィルタ処理を行う際には、第２のメモリに格納されている画素データが利用される。すなわち、垂直フィルタ処理が行われた後の画素データに対して水平フィルタ処理が行われることはない。よって、「垂直エッジよりも先に水平エッジについてフィルタ処理を行う」という規定を満足することができる。この結果、上記規定を満たしながら、カレントマクロブロックとそのカレントマクロブロックに対応するフィルタ領域とを近づけるまたは重ねることができるので、外部メモリから読み込むべき画素データの量（および、外部メモリに送信するフィルタ後の画素データの量）を少なくできる。
【００２３】
本発明の他の態様のデブロッキングフィルタは、動画像のピクチャを分割することにより得られるブロック毎にフィルタ処理を行う構成であって、フレームメモリから読み出した前記ピクチャの画素データを格納する第１のメモリと、前記ピクチャの第１のブロックに対応する第１のフィルタ領域内の水平エッジについてフィルタ処理を行う水平フィルタと、前記水平フィルタによるフィルタ処理の後に、前記第１のフィルタ領域内の垂直エッジについてフィルタ処理を行う垂直フィルタと、前記第１のフィルタ領域内の予め決められた垂直エッジに隣接する画素データについての前記垂直フィルタによる補正値を格納する第２のメモリと、前記垂直フィルタによるフィルタ処理の後に、前記第１のフィルタ領域の画素データを前記フレームメモリに送信する送信手段と、を備える。そして、前記水平フィルタは、前記第１のメモリに格納されている画素データおよび前記第２のメモリに格納されている補正値を利用して、前記第１のブロックに隣接する第２のブロックに対応する第２のフィルタ領域内の水平エッジについてフィルタ処理を行う。この構成によれば、上述の態様と比較して、第２のメモリに格納するデータ量が少なくなる。
【発明の効果】
【００２４】
開示のデブロッキングフィルタは、インターレースフレームピクチャのブロックノイズを除去する際のメモリアクセス量を少なくできる、という効果を奏する。
【発明を実施するための最良の形態】
【００２５】
図面を参照しながら本発明の実施形態について説明する。以下では、動画像符号化規格としてＶＣ−１を取り上げて説明するが、本発明はこの規格に限定されるものではない。すなわち、本発明は、動画像のピクチャを分割することにより得られるブロック毎にフィルタ処理を行い、且つ垂直フィルタ処理よりも先に水平フィルタ処理を行う規格に適用可能である。
【００２６】
図１は、実施形態のデブロッキングフィルタを搭載する動画像符号化装置２０の構成を示す図である。動画像データは、フレーム毎に（すなわち、ピクチャ毎に）動画像符号化装置２０に入力される。また、符号化処理は、マクロブロック毎に行われる。
【００２７】
動き補償符号化部２１は、フレーム間予測またはフレーム内予測を選択的に行い、予測誤差データを出力する。フレーム間予測では、入力画像および予測画像に基づいて予測誤差データが生成される。整数変換部２２は、予測誤差データを整数変換する。量子化部２３は、整数変換された予測誤差データを量子化する。エントロピー符号化部２４は、マクロブロックの予測情報および量子化データをエントロピー符号化する。なお、エントロピー符号化部２４は、この実施例では、スキャン変換機能も備えている。これにより符号化データストリームが生成される。
【００２８】
逆量子化部２５は、量子化部２３の出力データを逆量子化する。逆整数変換部２６は、逆量子化部２５の出力データを逆整数変換する。動き補償復号部２７は、フレーム間予測またはフレーム内予測を選択的に行い、符号化データを復号する。デブロッキングフィルタ２８は、動き補償復号部２７により得られる画像データのブロックノイズ（あるいは、ブロック歪）を除去する。フレームメモリ２９は、デブロッキングフィルタ２８の出力データを一時的に格納する。フレームメモリ２９に格納される画像データは、予測画像として、動き補償符号化部２１および動き補償復号部２７に与えられる。
【００２９】
図２は、実施形態のデブロッキングフィルタを搭載する動画像復号装置３０の構成を示す図である。この動画像復号装置３０は、図１に示す動画像符号化装置２０により生成される符号化データストリームを受信して復号する。
【００３０】
エントロピー復号部３１は、符号化データストリームを受信してエントロピー復号を行う。なお、エントロピー復号部３１は、この実施例では、スキャン変換機能も備えている。逆量子化部３２、逆整数変換部３３、動き補償復号部３４、デブロッキングフィルタ３５、フレームメモリ３６は、基本的に、動画像符号化装置２０が備える逆量子化部２５、逆整数変換部２６、動き補償復号部２７、デブロッキングフィルタ２８、フレームメモリ２９と同じである。
【００３１】
本発明の実施形態のデブロッキングフィルタは、図１に示すデブロッキングフィルタ２８または図２に示すデブロッキングフィルタ３５に相当する。すなわち、実施形態のデブロッキングフィルタは、ブロック毎に順番に復号された画像データが与えられ、ブロックノイズを除去するフィルタ処理を行う。なお、復号処理は、図２４に示すように、ピクチャの上方に位置するブロックから順番（ラスタ順）に行われる。具体的には、左上隅のブロックから順番に右方向に向かって進められ、以降同様に、右下隅まで進められる。したがって、デブロッキングフィルタによるフィルタ処理も、これと同じ順序で行われる。
【００３２】
図３は、実施形態のデブロッキングフィルタ１０の構成を示す図である。デブロッキングフィルタ１０は、この実施例では、画素入力部１、内部ＲＡＭ２、外部メモリ入出力部３、水平フィルタ演算部４、垂直フィルタ演算部５、ローカルメモリ６、ローカルメモリ制御部７、ＲＡＭインタフェース８を備える。なお、外部メモリ９は、図１または図２のフレームメモリに相当するものであり、デブロッキングフィルタ１０の一部として提供されてもよい。
【００３３】
画素入力部１は、ブロック毎に与えられる入力画素データを内部ＲＡＭ２に書き込む。画素データは、輝度信号（Ｙデータ）、および色差信号（Ｃｂデータ、Ｃｒデータ）を含む。内部ＲＡＭ２は、例えば半導体メモリであり、画素データを格納する。外部メモリ入出力部３は、外部メモリ９にアクセスし、データの書込みおよびデータの読出しを制御す
る。水平フィルタ演算部４は、水平エッジについてフィルタ処理を実行する。垂直フィルタ演算部５は、垂直エッジについてフィルタ処理を実行する。ローカルメモリ６は、例えば半導体メモリであり、フィルタ演算に使用される画素データを一時的に格納する。ローカルメモリ制御部７は、ローカルメモリ６にアクセスし、データの書込みおよびデータの読出しを制御する。ＲＡＭインタフェース８は、上記各ユニット１〜７を互いに接続し、データの授受を制御する。
【００３４】
水平フィルタ演算部４および垂直フィルタ演算部５は、基本的に、同じフィルタ演算を実行する。すなわち、フィルタ演算部（水平フィルタ演算部４および／または垂直フィルタ演算部５を指すものとする）は、図２６または図２７を参照しながら説明したように、互いに隣接するブロックの境界（水平エッジ、垂直エッジ）の近傍の画素データＰ１〜Ｐ８に基づいて、画素データＰ４、Ｐ５を補正する。なお、この実施例では、画素データＰ１〜Ｐ８に基づいて画素データＰ４、Ｐ５を補正する構成であるが、本発明はこれに限定されるものではない。すなわち、本発明は、例えば、画素データＰ１〜Ｐ８に基づいて画素データＰ３〜Ｐ６が補正される構成にも適用可能である。
【００３５】
図４は、フィルタ演算部によるフィルタ処理の実施例である。フィルタ演算部には、画素データＰ１〜Ｐ８が入力される。画素データは、この実施例では、Ｙデータ、Ｃｂデータ、Ｃｒデータを含む。そして、フィルタ演算部は、Ｙデータ、Ｃｂデータ、Ｃｒデータについて互いに独立して演算を実行する。
【００３６】
図４に示す演算式は、公知の技術であるので、要点のみを簡単に説明する。実施例のフィルタ演算では、まず、画素データＰ１〜Ｐ８に基づいて変数ao〜a3を生成する。続いて、変数a0〜a3に応じて、補正量Ｄを計算する。そして、この補正量Ｄを用いて下記の（１）式および（２）式で画素データＰ４、Ｐ５を補正する。
Ｐ４＝Ｐ４−Ｄ  ・・・（１）
Ｐ５＝Ｐ５＋Ｄ  ・・・（２）
図５は、フィルタ処理の一例を示す図である。図５に示す例では、画素データＰ４、Ｐ５間で不連続性が生じている。そして、フィルタ演算部は、画素データＰ１〜Ｐ８が連続的に変化するように（すなわち、ブロックノイズを除去するように）、画素データＰ４、Ｐ５を補正している。
【００３７】
フィルタ演算部は、カレントマクロブロック内の画素データ、およびカレントマクロブロックの周辺領域の画素データに基づいて、そのカレントマクロブロックに対応するフィルタ対象領域内のエッジ（すなわち、ブロック境界）についてフィルタ処理を行う。
【００３８】
図６は、カレントマクロブロックおよび対応するフィルタ対象領域を示す図である。フィルタ対象領域は、基本的には、図６（ｂ）に示すように、カレントマクロブロックの左上側に設定される。ただし、カレントマクロブロックがピクチャの左端および右端に位置する場合は、フィルタ対象領域は、それぞれ、図６（ａ）および図６（ｃ）に示すように設定される。また、カレントマクロブロックがピクチャの左下端、下端、右下端に位置する場合は、フィルタ対象領域は、それぞれ、図６（ｄ）、図６（ｅ）、図６（ｆ）に示すように設定される。
【００３９】
図７は、フィルタ処理後の画素データを書き出す領域を示す図である。基本的には、図７（ｂ）において破線で囲まれた領域の画素データが書き出される。すなわち、その領域の画素データが外部メモリ９に送信される。ただし、カレントマクロブロックがピクチャの左端および右端に位置する場合は、それぞれ、図７（ａ）および図７（ｃ）に示す領域の画素データが書き出される。
【００４０】
次に、図８〜図１０を参照しながら、実施形態のデブロッキング処理のコンセプトを説明する。ここでは、図８に示すように、マクロブロックＢ１およびその下側に位置するマクロブロックＢ２に着目してフィルタ処理を説明する。ここで、ピクチャの水平方向は、Ｋ個のブロックで構成されるものとする。この場合、ブロックＢ２に対応する領域のフィルタ処理は、ブロックＢ１に対応する領域のフィルタ処理が行われたときから、Ｋ周期後に実行されることになる。
【００４１】
ブロックＢ１の左上側にフィルタ対象領域Ｆ１が設定される。また、ブロックＢ２の左上側にフィルタ対象領域Ｆ２が設定される。そして、フィルタ対象領域Ｆ２は、フィルタ対象領域Ｆ１の下側に隣接して配置されることになる。
【００４２】
図９（ａ）は、ブロックＢ１がカレントマクロブロックである場合のフィルタ処理を示す図である。ここで、○印は、フィルタ処理を行うべき水平エッジを表し、□印は、フィルタ処理を行うべき垂直エッジを表している。
【００４３】
実施形態のデブロッキングフィルタにおいては、カレントブロックの上側１２ライン分の画素データ（図９（ａ）において斜線で示す領域の画素データ）が外部メモリ９から読み出される。これに対して、図３１（ａ）に示す従来技術においては、カレントマクロブロックの上側１６ライン分の画素データが外部メモリ９から読み出される。すなわち、実施形態のデブロッキングフィルタでは、従来技術と比較して、外部メモリ９から読み出される画素データ量が少ない。
【００４４】
図９（ｂ）は、ブロックＢ２がカレントマクロブロックである場合のフィルタ処理を示す図である。この場合、ブロックＢ２の上側１２ライン分の画素データ（斜線で示す領域の画素データ）が外部メモリ９から読み出され、そのブロックＢ２の左上側領域内の水平エッジおよび垂直エッジについてフィルタ処理が行われる。ここで、水平エッジ１〜４に注目する。水平エッジ１〜４についてフィルタ処理を行うためには、インターレースフレームピクチャにおいては、領域ｃ５〜ｃ８の画素データが必要である。具体的には、水平エッジ１〜４についてフィルタ処理を行うときには、図１０に示すように、水平エッジ１〜４（図１０では、水平エッジ１、２のみが描かれている）の上側８画素および下側８画素の各画素データに基づいて、水平エッジ１〜４に隣接する画素の画素データが補正される。
【００４５】
また、実施形態のデブロッキングフィルタは、「垂直エッジよりも先に水平エッジについてフィルタ処理を行う」という規定に従って動作するものとする。そうすると、ブロックＢ１、Ｂ２のみについて考えた場合、以下の順番でフィルタ処理を行う必要がある。
手順１：ブロックＢ１に対応する水平フィルタ処理
手順２：ブロックＢ１に対応する垂直フィルタ処理
手順３：ブロックＢ２に対応する水平フィルタ処理
手順４：ブロックＢ２に対応する垂直フィルタ処理
しかし、図９（ａ）および図９（ｂ）に示すフィルタ処理を単純に実行すると、上記規定を満足できない。すなわち、手順２では、ブロックＢ１に対応する垂直エッジについてのフィルタ処理が行われる。このとき、領域ｃ２〜ｃ５において、各垂直エッジに隣接する画素の画素データが補正される。続いて、手順３では、ブロックＢ２に対応する水平エッジについてフィルタ処理が行われる。このとき、最も上側の水平エッジ（すなわち、水平エッジ１〜４）についてフィルタ処理を行うためには、上述したように、領域ｃ５〜ｃ８の画素データが必要である。
【００４６】
ここで、領域ｃ５に注目する。領域ｃ５の画素データは、図９（ａ）〜図９（ｂ）に示すフィルタ処理を単純に実行する場合には、手順２において垂直フィルタ処理が行われ、
その後、手順３において水平フィルタ処理のために使用される。そうすると、領域ｃ５の画素データについては「垂直エッジよりも先に水平エッジについてフィルタ処理を行う」という規定を満足しないこととなってしまう。
【００４７】
そこで、実施形態のデブロッキングフィルタにおいては、上記規定を満足するために、ブロックＢ１に対応するフィルタ処理において垂直フィルタ処理が行われる画素データであって、ブロックＢ２に対応するブロック処理において水平フィルタ処理のために使用すべき画素データについては、ブロックＢ１の垂直フィルタ処理を行う前にいったんローカルメモリ６に退避させる。そして、ブロックＢ２に対応するブロック処理において、ローカルメモリ６に退避させた画素データを利用する。この手順を導入することにより、領域ｃ５においても、「垂直エッジよりも先に水平エッジについてフィルタ処理を行う」という規定を満足することができる。
【００４８】
上記手順において、領域ｃ５の画素データは、ブロックＢ１に対応する垂直フィルタ処理が行われる前に、ローカルメモリ６に退避される。ただし、実施形態のデブロッキングフィルタは、画素データＰ１〜Ｐ８に基づいて画素データＰ４、Ｐ５を補正する構成である。すなわち、図１０において、垂直エッジ１についてフィルタ処理を行う場合は、画素データＰ１〜Ｐ３、Ｐ６〜Ｐ８は変化することなく、画素データＰ４、Ｐ５のみが補正される。したがって、画素データＰ４、Ｐ５のみをローカルメモリ６に退避すれば、「垂直エッジよりも先に水平エッジについてフィルタ処理を行う」という規定を満足することができる。図１０に示す例では、２×４画素の画素データが退避される。以下、ローカルメモリ６に退避すべき画素データを「退避画素データ」と呼ぶことがある。また、退避画素データを取り出すべき領域を「退避領域」と呼ぶことがある。
【００４９】
なお、図１０に示す水平エッジ１、２についてフィルタ処理を行う場合には、垂直エッジ０、２についてのフィルタ処理を行う前に、垂直エッジ０に隣接する画素データＰ１、および垂直エッジ２に隣接する画素データＰ８も、ローカルメモリ６に退避される。
【００５０】
図９（ｃ）は、図９（ａ）〜図９（ｂ）のフィルタ処理が行われる際の退避領域を示す図である。この実施例では、５つの退避領域Ｅ１〜Ｅ５からそれぞれ画像データが抽出され、ローカルメモリ６に送信される。なお、退避領域Ｅ１、Ｅ５は、それぞれ、１×４画素の画素データである。また、退避領域Ｅ２〜Ｅ４は、それぞれ、２×４画素の画素データである。
【００５１】
図１１は、実施形態のデブロッキングフィルタの処理手順を示すフローチャートである。また、図１２〜図１８は、実施形態のデブロッキングフィルタのデータの流れを示す図である。以下の説明では、先に復号処理およびフィルタ処理が行われたブロックの画素データは、外部メモリ９に格納されているものとする。また、以下の説明では、図９（ｂ）に示すブロックＢ２がカレントマクロブロックであるものとする。この場合、ブロックＢ１に対応するフィルタ処理で得られる退避画素データがローカルメモリ６に格納されている。
【００５２】
ステップＳ１では、図１２に示すように、カレントマクロブロックであるブロックＢ２の上側領域の画素データが外部メモリ９から内部ＲＡＭ２に送信される。図９（ｂ）に示す例では、斜線領域の画素データが読み込まれる。なお、カレントマクロブロックの左側隣接領域および左上側隣接領域の画素データは、直前のマクロブロックについてのフィルタ処理で利用されているので、内部ＲＡＭ２に残っているものとする。
【００５３】
ステップＳ２では、図１３に示すように、カレントマクロブロックの画素データが、画素入力部１を介して内部ＲＡＭ２に格納される。この画素データは、ブロック毎の復号処
理により得られる。
【００５４】
ステップＳ３では、図１４に示すように、ローカルメモリ６から退避画素データを取得する。このとき、退避画素データは、ローカルメモリ制御部７により読み出され、内部ＲＡＭ２に送信される。この実施例では、図９に示すブロックＢ１についてのフィルタ処理で得られた退避画素データ（図９（ｃ）において斜線で示す領域Ｅ１〜Ｅ５の画素データ）が読み出される。なお、この退避画素データは、ブロックＢ１についてのフィルタ処理でローカルメモリ６に書込まれたものである。
【００５５】
退避画素データを内部ＲＡＭ２に書き込む際には、先に内部ＲＡＭ２に格納されている対応する領域の画素データに対して上書きする。すなわち、先に内部ＲＡＭ２に格納されている対応する領域の画素データは、退避画素データによって置き換えられる。
【００５６】
ステップＳ４では、図１５に示すように、ステップＳ１〜Ｓ３で収集した画素データを利用して水平フィルタ処理を行う。このとき、画素データの一部は、ステップＳ３において退避画素データに置きかえられている。そして、その退避画素データは、ブロックＢ１に対応する垂直フィルタ処理を行う前の状態の画素データである。よって、ステップＳ４の水平フィルタ処理は、垂直フィルタ処理が行われる前の状態の画素データに対して行われることになる。なお、水平フィルタ処理の演算結果は、内部ＲＡＭ２に格納される。
【００５７】
ステップＳ５では、図１６に示すように、内部ＲＡＭ２から退避画素データを読み出してローカルメモリ６に退避させる。この実施例では、図９（ｂ）に示す各水平エッジについてのフィルタ処理が終了した後に、垂直エッジ５の右側に隣接する領域（１×４画素）、垂直エッジ６〜８に隣接する領域（２×４画素）、および垂直エッジ９の左側に隣接する領域（１×４画素）の画素データが、退避画素データとしてローカルメモリ６に送信される。
【００５８】
ステップＳ６では、図１７に示すように、内部ＲＡＭ２から画素データが読み出され、垂直フィルタ処理が行われる。この垂直フィルタ処理の演算結果は、再び内部ＲＡＭ２に格納される。そして、ステップＳ７において、図１８に示すように、フィルタ処理後の画素データが、内部ＲＡＭ２から外部メモリ９に送信される。このとき送信される画素データは、図７を参照しながら説明した通りである。図９（ｂ）に示す例では、領域ｃ６〜ｃ１１の画素データが外部メモリ９に送信される。すなわち、２４ライン分の画素データが外部メモリ９へ送信される。
【００５９】
なお、図９〜図１０では、画素データの中のＹデータについてのフィルタ処理を示している。実施形態のデブロッキングフィルタは、ＣｒデータおよびＣｂデータについても同様のフィルタ処理を行う。
【００６０】
図１９（ａ）は、ブロックＢ１がカレントマクロブロックである場合のフィルタ処理を示す図である。この場合、ブロックＢ１の上側領域の１２ライン分の画素データが外部メモリ９から読み込まれる。図１９（ｂ）は、ブロックＢ１についてフィルタ処理を行う場合の退避領域を示す図である。退避領域は、Ｙデータのフィルタ処理と同様であり、２×４画素である。そして、この退避領域の画素データは、ブロックＢ１に対応する水平フィルタ処理の後であって、且つその垂直フィルタ処理の前に、ローカルメモリ６に格納される。また、フィルタ処理後の画素データは、外部メモリ９に送信される。このとき、領域ｃ２〜ｃ７の画素データ（すなわち、２４ライン分の画素データ）が外部メモリ９に送信される。
【００６１】
図１９（ｃ）は、ブロックＢ１の下側に隣接するブロックＢ２がカレントマクロブロッ
クである場合のフィルタ処理を示す図である。この場合、図１９（ｂ）に示す退避領域の画素データは、ローカルメモリ６から取得する。これにより、「垂直エッジよりも先に水平エッジについてフィルタ処理を行う」という規定を満足することができる。
【００６２】
なお、マクロブロック毎のフィルタ処理は、ラスタ順に行われる。このため、図９に示す実施例において、ブロックＢ２に対する処理は、ブロックＢ１に対する処理からＫ番目に実行される。例えば、１９２０×１０８８画素のピクチャにおいて、１６×１６マクロブロック毎にフィルタ処理が行われるものとすると、Ｋ＝１２０である。よって、この場合、ローカルメモリ６には、１２０ブロック分の退避画素データが格納されることとなる。
【００６３】
図２０は、バンド幅についての比較結果を示す表である。ここで、バンド幅とは、単位時間当たりの外部メモリ９へのアクセス量（データ読出およびデータ書込）を意味する。また、従来技術は、図３１を参照しながら説明したフィルタ処理であるものとする。
【００６４】
フィルタ処理を行うべき動画像は、図３２で説明した条件と同じであるものとする。すなわち、動画像は、３０フレーム／秒である。また、１９２０×１０８８画素のピクチャにおいて、１６×１６マクロブロック毎にフィルタ処理が行われる。さらに、各画素のＹデータ、Ｃｂデータ、Ｃｒデータのビット数は、それぞれ８ビットである。
【００６５】
実施形態のデブロッキングフィルタにおいて、外部メモリ９から内部ＲＡＭ２へ送信される画素データのデータ量、および内部ＲＡＭ２から外部メモリ９へ送信される画素データのデータ量は、従来技術と比較して大幅に少なくなる。この結果、実施形態のデブロッキングフィルタにおいて内部ＲＡＭ２と外部メモリ９との間で必要なバンド幅は、従来技術と比較して大幅に削減される。
【００６６】
このように、実施形態のデブロッキングフィルタは、「垂直エッジよりも先に水平エッジについてフィルタ処理を行う」という規定を満たしつつ、内部ＲＡＭと外部メモリとの間で必要なバンド幅を大幅に削減することができる。
【００６７】
なお、実施形態のデブロッキングフィルタは、図２８に示す従来の構成と比べると、ローカルメモリ６を設ける必要がある。しかし、ローカルメモリ６は、退避画素データを格納できれば十分であるので、小型で安価なメモリ素子で実現することができる。
【００６８】
＜他の実施形態＞
図１１〜図１８を参照しながら説明した実施例では、水平フィルタ処理が行われた後であって、且つ垂直フィルタ処理が行われる前の退避領域の画素データがローカルメモリ６に格納される。これに対して、以下に説明する他の実施形態では、ローカルメモリ６に格納すべきデータ量を削減する構成を提供する。
【００６９】
図２１は、他の実施形態のデブロッキングフィルタの処理手順を示すフローチャートである。他の実施形態においては、ステップＳ２に続いて、ステップＳ１１、Ｓ１２が実行される。ステップＳ１１では、図２２に示すように、まず、ローカルメモリ６から補正値Ｄが読み出される。また、先のフィルタ処理においてその補正値Ｄにより補正された画素データが内部ＲＡＭ２から読み出される。この実施例では、画素データＰ１〜Ｐ８に基づいて画素データＰ４、Ｐ５が補正される。したがって、画素データＰ４、Ｐ５が読み出される。
【００７０】
続いて、ステップＳ１２では、上記補正の逆演算により、補正前の画素データを復元する。この実施例では、下記の（３）式および（４）式により、補正前の画素データＰ４、
Ｐ５を復元する。
Ｐ４＝Ｐ４＋Ｄ  ・・・（３）
Ｐ５＝Ｐ５−Ｄ  ・・・（４）
この後、ステップＳ４において水平フィルタ処理を行い、ステップＳ５において垂直フィルタ処理を行う。これらのフィルタ処理は、この実施例では、図４に示した演算式に従う。
【００７１】
ステップＳ１３では、図２３に示すように、垂直フィルタ処理により得られる補正値Ｄをローカルメモリ６に格納する。この補正値Ｄは、カレントマクロブロックの下側に隣接するブロックについてフィルタ処理を行うときに、補正前の画素データを復元するために使用される（ステップＳ１１〜Ｓ１２に相当する）。この後、ステップＳ７において、フィルタ処理が終了した復号画素データが外部メモリ９に送信される。
【００７２】
図１１に示す第１の実施形態および図２１に示す第２の実施形態を比較する。ローカルメモリ６に退避すべき画素データは、第１の実施形態では、画素データＰ４、Ｐ５がローカルメモリ６に格納される。ここで、画素データ（例えば、Ｙデータ）は、０〜２５５を表す８ビットデータである。よって、１フィルタ要素に対して合計１６ビットのデータがローカルメモリ１６に格納される。これに対して、第２の実施形態では、補正値Ｄが−１８〜＋１８を表すものとすると、ローカルメモリ１６に格納されるデータは、１フィルタ要素に対して６ビットである。
【００７３】
この結果、１９２０×１０８８画素のピクチャにおいて、１６×１６マクロブロック毎にフィルタ処理が行われるものとすると、第１の実施形態では、ローカルメモリに格納されるデータは７６８０バイトとなる。一方、第２の実施形態では、ローカルメモリに格納されるデータは２８８０バイトとなる。
【００７４】
上述した各実施形態を含むデブロッキングフィルタに関し、さらに以下の付記を開示する。
（付記１）
動画像のピクチャを分割することにより得られるブロック毎にフィルタ処理を行うデブロッキングフィルタであって、
フレームメモリから読み出した前記ピクチャの画素データを格納する第１のメモリと、
前記ピクチャの第１のブロックに対応する第１のフィルタ領域内の水平エッジについてフィルタ処理を行う水平フィルタと、
前記水平フィルタによるフィルタ処理の後に、前記第１のフィルタ領域内の予め決められた特定領域の画素データを格納する第２のメモリと、
前記水平フィルタによるフィルタ処理の後に、前記第１のフィルタ領域内の垂直エッジについてフィルタ処理を行う垂直フィルタと、
前記垂直フィルタによるフィルタ処理の後に、前記第１のフィルタ領域の画素データを前記フレームメモリに送信する送信手段と、を備え、
前記水平フィルタは、前記第１のメモリに格納されている画素データおよび前記第２のメモリに格納されている画素データを利用して、前記第１のブロックに隣接する第２のブロックに対応する第２のフィルタ領域内の水平エッジについてフィルタ処理を行う
ことを特徴とするデブロッキングフィルタ。
（付記２）
付記１に記載のデブロッキングフィルタであって、
前記第２のメモリから読み出した画素データで、前記第１のメモリから読み出した画素データの対応する一部を置き換える置換え手段をさらに備え、
前記水平フィルタは、前記置換え手段により得られる画素データを利用して、前記第２のフィルタ領域内の水平エッジについてフィルタ処理を行う
ことを特徴とするデブロッキングフィルタ。
（付記３）
付記１に記載のデブロッキングフィルタであって、
前記ピクチャは、インターレースフレームピクチャである
ことを特徴とするデブロッキングフィルタ。
（付記４）
付記１に記載のデブロッキングフィルタであって、
当該デブロッキングフィルタは、ラスタ順にフィルタ処理を行う構成であり、
前記第２のブロックは、前記第１のブロックに下側に隣接する
ことを特徴とするデブロッキングフィルタ。
（付記５）
付記１に記載のデブロッキングフィルタであって、
前記特定領域は、前記第１のフィルタ領域内で前記第２のブロックに最も近い垂直エッジに隣接する画素が位置する領域である
ことを特徴とするデブロッキングフィルタ。
（付記６）
付記１に記載のデブロッキングフィルタであって、
前記水平フィルタは、水平エッジに隣接する画素の画素データを補正し、
前記垂直フィルタは、垂直エッジに隣接する画素の画素データを補正する
ことを特徴とするデブロッキングフィルタ。
（付記７）
動画像のピクチャを分割することにより得られるブロック毎にフィルタ処理を行うデブロッキングフィルタであって、
フレームメモリから読み出した前記ピクチャの画素データを格納する第１のメモリと、
前記ピクチャの第１のブロックに対応する第１のフィルタ領域内の水平エッジについてフィルタ処理を行う水平フィルタと、
前記水平フィルタによるフィルタ処理の後に、前記第１のフィルタ領域内の垂直エッジについてフィルタ処理を行う垂直フィルタと、
前記第１のフィルタ領域内の予め決められた垂直エッジに隣接する画素データについての前記垂直フィルタによる補正値を格納する第２のメモリと、
前記垂直フィルタによるフィルタ処理の後に、前記第１のフィルタ領域の画素データを前記フレームメモリに送信する送信手段と、を備え、
前記水平フィルタは、前記第１のメモリに格納されている画素データおよび前記第２のメモリに格納されている補正値を利用して、前記第１のブロックに隣接する第２のブロックに対応する第２のフィルタ領域内の水平エッジについてフィルタ処理を行う
ことを特徴とするデブロッキングフィルタ。
（付記８）
付記７に記載のデブロッキングフィルタであって、
前記第２のメモリから読み出した補正値から画素データを復元する復元手段をさらに備え、
前記水平フィルタは、前記復元手段により得られる画素データを利用して、前記第２のフィルタ領域内の水平エッジについてフィルタ処理を行う
ことを特徴とするデブロッキングフィルタ。
【図面の簡単な説明】
【００７５】
【図１】実施形態のデブロッキングフィルタを搭載する動画像符号化装置の構成を示す図である。
【図２】実施形態のデブロッキングフィルタを搭載する動画像復号装置の構成を示す図である。
【図３】実施形態のデブロッキングフィルタの構成を示す図である。
【図４】フィルタ演算部によるフィルタ処理の実施例である。
【図５】フィルタ処理の一例を示す図である。
【図６】フィルタ対象領域を示す図である。
【図７】画像データを書き出す領域を示す図である。
【図８】フィルタ処理の順番を説明する図である。
【図９】実施形態のデブロッキングフィルタ処理を説明する図である。
【図１０】退避すべき画素データを説明する図である。
【図１１】実施形態のデブロッキングフィルタの処理手順を示すフローチャートである。
【図１２】データの流れを示す図（その１）である。
【図１３】データの流れを示す図（その２）である。
【図１４】データの流れを示す図（その３）である。
【図１５】データの流れを示す図（その４）である。
【図１６】データの流れを示す図（その５）である。
【図１７】データの流れを示す図（その６）である。
【図１８】データの流れを示す図（その７）である。
【図１９】色差データについてのフィルタ処理を示す図である。
【図２０】実施形態と従来技術との比較結果を示す表である。
【図２１】他の実施形態のデブロッキングフィルタの処理手順を示すフローチャートである。
【図２２】他の実施形態におけるデータの流れを示す図（その１）である。
【図２３】他の実施形態におけるデータの流れを示す図（その２）である。
【図２４】フィルタ処理のシーケンスを説明する図である。
【図２５】フィルタ処理に必要とされる画素データについて説明する図である。
【図２６】デブロッキングフィルタ処理の概要を説明する図である。
【図２７】インターレースフレームピクチャについて説明する図である。
【図２８】デブロッキングフィルタの一例の構成を示す図である。
【図２９】デブロッキングフィルタの演算結果の出力を説明する図である。
【図３０】非インターレースフレームピクチャのフィルタ処理を説明する図である。
【図３１】インターレースフレームピクチャのフィルタ処理を説明する図である。
【図３２】従来技術による外部メモリへのアクセス量をまとめた表である。
【符号の説明】
【００７６】
１      画素入力部
２      内部ＲＡＭ
３      外部メモリ入出力部
４      水平フィルタ演算部
５      垂直フィルタ演算部
６      ローカルメモリ
７      ローカルメモリ制御部
８      ＲＡＭインタフェース
９      外部メモリ
１０    デブロッキングフィルタ
２０    動画像符号化装置
２８    デブロッキングフィルタ
３０    動画像復号装置
３５    デブロッキングフィルタ
【図３】
0004825230.tif 000002
【図９】
0004825230.tif 000003
【図１０】
0004825230.tif 000004
【図１２】
0004825230.tif 000005
【図１３】
0004825230.tif 000006
【図１４】
0004825230.tif 000007
【図１５】
0004825230.tif 000008
【図１６】
0004825230.tif 000009
【図１７】
0004825230.tif 000010
【図１８】
0004825230.tif 000011
【図１９】
0004825230.tif 000012
【図２２】
0004825230.tif 000013
【図２３】
0004825230.tif 000014
【図２８】
0004825230.tif 000015
【図１】
0004825230.tif 000016
【図２】
0004825230.tif 000017
【図４】
0004825230.tif 000018
【図５】
0004825230.tif 000019
【図６】
0004825230.tif 000020
【図７】
0004825230.tif 000021
【図８】
0004825230.tif 000022
【図１１】
0004825230.tif 000023
【図２０】
0004825230.tif 000024
【図２１】
0004825230.tif 000025
【図２４】
0004825230.tif 000026
【図２５】
0004825230.tif 000027
【図２６】
0004825230.tif 000028
【図２７】
0004825230.tif 000029
【図２９】
0004825230.tif 000030
【図３０】
0004825230.tif 000031
【図３１】
0004825230.tif 000032
【図３２】
0004825230.tif 000033