(57)【要約】  フィルタリング領域に含まれる任意のデータ位置におけるデータにフィルタリングを実施し、かつ当該任意のデータ位置におけるフィルタリングの実行判定を行うフィルタ処理部と、フィルタ処理部によるフィルタリングの制御を行なう制御部とを備える。制御部は、任意のデータ位置の一つである第２データ位置のフィルタリングの実行判定に必要となる第１データ位置群におけるフィルタリングをフィルタ処理部で実施させたうえで第１データ位置群においてフィルタ処理部が実施する実行判定の結果が真なら、第２データ位置におけるフィルタリングを前記フィルタ処理部で実行させる。
2010035403.tif 000002
【特許請求の範囲】
【請求項１】
フィルタリング領域に含まれる任意のデータ位置におけるデータに、フィルタリング順序および少なくとも一部のフィルタリングの実行自体に依存関係を有するフィルタリングを実施し、かつ当該任意のデータ位置におけるフィルタリングの実行判定を行うフィルタ処理部と、
前記フィルタ処理部によるフィルタリングの制御を行なう制御部と、
を備え、
前記制御部は、前記任意のデータ位置の一つである第２データ位置のフィルタリングの実行判定に必要となる第１データ位置群におけるフィルタリングを前記フィルタ処理部で実施させたうえで前記第１データ位置群において前記フィルタ処理部が実施する実行判定の結果が真なら、前記第２データ位置におけるフィルタリングを前記フィルタ処理部で実行させる、
フィルタ装置。
【請求項２】
前記フィルタ処理部の実行判定結果を記憶する実行判定結果記憶部を、
さらに備え、
前記制御部は、前記第１データ位置群における前記実行判定結果を前記実行判定結果記憶部に記憶させたうえで、前記実行判定結果記憶部から前記第１データ位置群における前記実行判定結果を読み出し、読み出した前記実行判定結果が真なら、前記第２データ位置における前記フィルタ処理部によるフィルタリングを実行させる、
請求項１のフィルタ装置。
【請求項３】
前記実行判定結果記憶部は、Ｅ箇所のデータ位置（Ｅ＞＝２となる整数）における前記フィルタ処理部の前記実行判定結果を記憶し、
前記第１データ位置群におけるデータ位置数Ｘは、Ｘ＞＝Ｅとなる整数であり、
前記Ｅは、前記Ｘと、前記実行判定結果記憶部に対する実行判定結果の送信と受信が同時に発生する回数ＲＷ（ＲＷ＞＝０となる整数）とを変数とする式（Ｅ＝Ｘ−ＲＷ）で表される、
請求項２のフィルタ装置。
【請求項４】
前記フィルタリングは、第１方向にフィルタリングを実施した後、前記第１方向に直交する第２方向にフィルタリングを実施する２次元フィルタリングである、
請求項１のフィルタ装置。
【請求項５】
前記２次元フィルタリングはデブロッキングフィルタリングである、
請求項４のフィルタ装置。
【請求項６】
前記デブロッキングフィルタリングはＶＣ−１規格のものである、
請求項５のフィルタ装置。
【請求項７】
前記第１方向は水平方向であり、前記第２方向は垂直方向である、
請求項４のフィルタ装置。
【請求項８】
前記フィルタリング領域は、４Ｍ×４Ｎ個（Ｍ,Ｎは１以上の整数）の前記データの領域である、
請求項１のフィルタ装置。
【請求項９】
前記データは、画素データであり、
前記データ位置は前記画素データにおけるデータ位置である、
請求項１のフィルタ装置。
【請求項１０】
前記制御部は、前記第１方向の前記第１データ位置群における前記データと前記第２方向の前記第１データ位置群における前記データとの全てが先にフィルタリングされるように、前記フィルタ処理部を制御する、
請求項４のフィルタ装置。
【請求項１１】
前記制御部は、前記第１方向の前記第１データ位置群における前記データの全て、または前記第２方向の前記第１データ位置群における前記データの全てが先にフィルタされるように、前記フィルタ処理部を制御する、
請求項４のフィルタ装置。
【請求項１２】
前記制御部は、二次元配置された複数の前記データからなるブロック単位とその周囲に位置する複数の隣接ブロック単位との間にあるブロック境界群のうちの１つにおいて、全ての前記第１データ位置における前記データを先にフィルタリングするように制御する、
請求項９のフィルタ装置。
【請求項１３】
前記フィルタリング領域の前記データを記憶する１つ以上の記憶装置と、
前記第２方向の前記第１データ位置群に含まれる複数の第１データ位置における前記データを記憶する複製メモリと、
前記記憶装置で記憶している前記データと前記複製メモリで記憶している前記データとを選択して前記フィルタ処理部に出力するデータ選択部と、
をさらに備える、
請求項１０のフィルタ装置。
【請求項１４】
前記フィルタリング領域の前記データを記憶する１つ以上の記憶装置と、
前記第２方向の前記第１データ位置群に含まれる複数の第１データ位置のデータに前記フィルタ処理部がフィルタリングを実行した結果であるフィルタリング後データを記憶する退避メモリと、
前記フィルタ処理部の出力と前記退避メモリで記憶している前記フィルタリング後データとを選択し前記記憶装置に出力する出力データ選択部と、
をさらに備える、
請求項１０のフィルタ装置。
【請求項１５】
前記フィルタ処理部は、
前記第１データ位置群のフィルタリングを行なう第１フィルタ処理部と、
前記第２データ位置のフィルタリングを行なう第２フィルタ処理部と、
を備える、
請求項１のフィルタ装置。
【請求項１６】
前記複製メモリによって前記データが記憶される前記第１のデータ位置は、前記フィルタ処理部のフィルタリングによってデータが更新されるデータ位置であり、
前記データ選択部は、
前記複製メモリに前記データが記憶されているデータ位置では、前記複製メモリに記憶されている前記データを選択し、前記複製メモリに前記データが記憶されていないデータ位置では、前記記憶装置に記憶されている前記データを選択する、
請求項１３のフィルタ装置。
【請求項１７】
前記記憶装置で記憶している前記データと前記退避メモリで記憶している前記フィルタリング後データとを選択して前記フィルタ処理部に出力する入力データ選択部をさらに備える、
請求項１４のフィルタ装置。
【請求項１８】
前記退避メモリによって前記フィルタリング後データが記憶される前記第１のデータ位置は、前記フィルタ処理部のフィルタリングによってデータが更新されるデータ位置であり、
前記入力データ選択部は、
前記第２方向の前記第１データ位置におけるフィルタリング時に、前記退避メモリに前記フィルタリング後データが記憶されているデータ位置では、前記退避メモリに記憶されている前記フィルタリング後データを選択し、前記退避メモリに前記フィルタリング後データが記憶されていないデータ位置では、前記記憶装置に記憶されている前記データを選択する、
請求項１７のフィルタ装置。
【請求項１９】
前記退避メモリによって前記フィルタリング後データが記憶される前記第１のデータ位置は、前記フィルタ処理部でフィルタリングによってデータが更新されるデータ位置であり、
前記出力データ選択部は、
前記退避メモリに前記フィルタリング後データが記憶されているデータ位置では、前記退避メモリに記憶されている前記フィルタリング後データを選択し、前記退避メモリに前記フィルタリング後データが記憶されていないデータ位置では、前記フィルタリング処理部の出力を選択する、
請求項１４のフィルタ装置。
【請求項２０】
前記制御部は、
前記フィルタリング後データが前記退避メモリに記憶された前記第２方向の前記第１データ位置におけるフィルタリング時には、前記フィルタリング後データが前記退避メモリに書込まれ、前記フィルタリング後データが前記退避メモリに記憶された前記第２方向の前記第１データ位置以外のデータ位置におけるフィルタリング時には、前記フィルタリング後データが前記記憶装置に書込まれるように、前記フィルタ処理部を制御する、
請求項１４のフィルタ装置。
【請求項２１】
前記制御部は、
前記実行判定結果が真なら、前記第２フィルタ処理部がフィルタリングを実施するように制御する、
請求項１５のフィルタ装置。
【請求項２２】
前記フィルタ処理部は、前記データと１つ以上の閾値との比較に基づいて前記フィルタリングの実行判定を行い、当該実行判定の結果が真なら、前記データに前記フィルタリングを実施する、
請求項１のフィルタ装置。
【請求項２３】
前記１つ以上の閾値は、前記フィルタ処理部が保持する、もしくは前記制御部から前記フィルタ処理部に与えられる、
請求項２２のフィルタ装置。
【請求項２４】
前記データは、画像データにおける一つのデータ単位となる画素データであり、
前記データ位置は前記画像データにおけるデータ位置であり、
前記第１データ位置は、前記画像データのセグメントにおける基端ラインから３ライン目に位置するデータ位置である、
請求項４のフィルタ装置。
【請求項２５】
前記第２データ位置は、前記セグメントにおける基端ラインから１,２,４ライン目に位置するデータ位置である、
請求項２４のフィルタ装置。
【請求項２６】
フィルタリング領域に含まれる任意のデータ位置におけるデータに、フィルタリング順序および少なくとも一部のフィルタリングの実行自体に依存関係を有するフィルタリングを実施するフィルタ方法であって、
前記任意のデータ位置の一つである第２データ位置のフィルタリングの実行判定に必要となる第１データ位置群における前記データに実行判定を含むフィルタリングを実施する第１ステップと、
前記第１ステップの実行判定の結果が真なら前記第２データ位置における前記データのフィルタリングを実行する第２ステップと、
を含むフィルタ方法。
【請求項２７】
前記第１ステップでは、前記第１データ位置群における前記実行判定結果を記憶し、
前記第２ステップでは、前記第１ステップで記憶した前記第１データ位置群における前記実行判定結果を読み出し、読み出した前記実行判定結果が真なら、前記第２データ位置におけるフィルタリングを実行する、
請求項２６のフィルタ方法。
【請求項２８】
前記第１ステップでは、Ｅ箇所のデータ位置（Ｅ＞＝２となる整数）における前記実行判定結果を記憶し、
前記第１データ位置群におけるデータ位置数Ｘは、Ｘ＞＝Ｅとなる整数であり、
前記Ｅは、前記Ｘと、前記実行判定結果記憶部に対する実行判定結果の送信と受信が同時に発生する回数ＲＷ（ＲＷ＞＝０となる整数）とを変数とする式（Ｅ＝Ｘ−ＲＷ）で表される、
請求項２６のフィルタ方法。
【請求項２９】
前記フィルタリングは第１方向にフィルタリングを実施した後、前記第１方向に直交する第２方向にフィルタリングを実施する２次元フィルタである、
請求項２６のフィルタ方法。
【請求項３０】
前記２次元フィルタはデブロッキングフィルタである、
請求項２９のフィルタ方法。
【請求項３１】
前記デブロッキングフィルタはＶＣ−１規格のものである、
請求項３０のフィルタ方法。
【請求項３２】
第１方向は水平方向であり、前記第２方向は垂直方向である、
請求項２９のフィルタ方法。
【請求項３３】
前記データは、画素データであり、
前記データ位置は前記画素データのデータ位置である、
請求項２６のフィルタ方法。
【請求項３４】
前記第１ステップでは、前記第１方向の前記第１データ位置群における前記データと前記第２方向の前記第１データ位置群における前記データとの全てを先にフィルタリングする、
請求項２９のフィルタ方法。
【請求項３５】
前記第１ステップでは、前記第１方向の前記第１データ位置群における前記データの全て、または前記第２方向の前記第１データ位置群における前記データの全てを先にフィルタリングする、
請求項２９のフィルタ方法。
【請求項３６】
前記第１ステップでは、二次元配置された複数の前記データからなるブロック単位とその周囲に位置する複数の隣接ブロック単位との間にあるブロック境界群のうちの１つにおいて、全ての前記第１データ位置における前記データを先にフィルタリングする、
請求項３３のフィルタ方法。
【請求項３７】
前記第１ステップでは、前記第２方向の前記第１データ位置群に含まれる複数の第１データ位置における前記データを複製し、
前記第２ステップでは、前記複数の第２データ位置におけるフィルタリングを、前記第１ステップで実施した複製結果に基づいて実施する、
請求項３４のフィルタ方法。
【請求項３８】
前記第１ステップでは、前記第２方向の前記第１データ位置群に含まれかつ前記実行判定の結果が真となるデータ位置において、フィルタリング後データを記憶し、
前記第２ステップでは、前記第２データ位置における前記データを前記フィルタリングにより更新する際、前記第１ステップでフィルタリング後データが記憶されたデータ位置では、記録している前記フィルタリング後データを、前記フィルタリングにより更新されたデータとして扱う、
請求項３４のフィルタ方法。
【請求項３９】
前記第１ステップで前記実行判定結果が記憶され次第、前記第２ステップを並列に実行する、
請求項２６のフィルタ方法。
【請求項４０】
前記第１ステップでは、前記データと１つ以上の閾値との比較に基づいて前記フィルタリングの実行判定を算出する、
請求項２６のフィルタ方法。
【請求項４１】
前記データは、画像データにおける一つのデータ単位となる画素データであり、
前記データ位置は前記画像データにおけるデータ位置であり、
前記第１データ位置は、前記画像データのセグメントにおける基端ラインから３ライン目に位置するデータ位置である、
請求項２９のフィルタ方法。
【請求項４２】
前記第２位置は、前記セグメントにおける基端ラインから１,２,４ライン目に位置するデータ位置である、
請求項４１のフィルタ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像に対してフィルタをかけるためのフィルタ装置およびフィルタ方法に関する。より詳細には、動画像の符号化や復号を画素ブロック単位で行なう場合に、ブロック境界に生じるノイズを低減するための、デブロッキングフィルタ（以降ＤＢＦと称す）を実施するためのフィルタ装置およびフィルタ方法に関する。
【背景技術】
【０００２】
本出願は、２００８年９月２５日に出願された、明細書,図面、特許請求の範囲を含む日本特許出願２００８−２４６０４９号の全てを、ここに参照として本明細書に組み入れている。【０００３】
近年用いられる動画像符号化方式は、複数個の画素データで構成されるブロック単位で符号化・復号化するものが多く、それらの方式においてはブロック境界においてノイズが生じるという問題があり、ブロック境界に生ずるノイズを低減させるためのＤＢＦが採用されている。このＤＢＦの方式にはいくつかの方式が用いられている。例えばＳＭＰＴＥ(Society of Motion Picture and Television Engineers)から提案されているＶＣ−１と呼ばれる動画像符号化方式等の規格で用いられているＤＢＦ方式のように、フィルタの実行順序および実行そのものに制約が掛かっているものが従来から知られている。以下にＶＣ−１の方式を例に図を用いて、対象となる方式の特徴を説明する。【０００４】
図２９においてピクチャ２９０１内部の円は画素を表している。ＤＢＦは２次元フィルタである。２次元フィルタＤＢＦは、
・８ｘ８個の画素からなる画素ブロックどうしの水平境界（以下、水平８ｘ８ブロック境界という）２９０２と、
・８ｘ４個の画素からなる画素ブロックどうしの水平境界（以下、水平８ｘ４ブロック境界という）２９０３と、
・８ｘ８個の画素からなる画素ブロックどうしの垂直境界（以下、垂直８ｘ８ブロック境界という）２９０４と、
・８ｘ４個の画素からなる画素ブロックどうしの垂直境界（以下、垂直８ｘ４ブロック境界という）２９０５と、
において、セグメント単位２９０６でフィルタリングを実施する。【０００５】
ＶＣ−１の場合では、水平８ｘ８ブロック境界２９０２、水平８ｘ４ブロック境界２９０３、垂直８ｘ８ブロック境界２９０４、垂直４ｘ８ブロック境界２９０５の順でフィルタリングが実施される。セグメント２９０６は４つのライン２９０７で構成される。各ラインのフィルタリングでは１つ以上の閾値とブロック境界とを跨ぐデータ位置Ｐ１〜Ｐ８の８つの画素データ（図２９参照）が参照され、実行判定結果とフィルタ演算結果とが算出される。ここで実行判定結果が真であるならば、フィルタ演算結果において、黒円で表されるブロック境界を跨ぐデータ位置Ｐ４,Ｐ５における２つの画素データ（図２９参照）は、フィルタ演算が施されたものになる。【０００６】
各セグメントでは、セグメント内のラインを左（上）から数えて３ライン目（以降、実行判定結果算出ラインと呼ぶ）を最初にフィルタリングし、算出された実行判定結果を残りの１,２,４ライン目（以降、これらのラインを実行判定結果参照ラインと呼ぶ）のフィルタリングを実施するかの条件にする（以降、これを特徴１と呼ぶ）。【０００７】
また、近年のコーデックは、高画質化を実現するため、フィルタリングにおけるフィルタ演算結果や実行判定結果を算出するための演算段数が多く、また、画素数の増加に伴いフィルタリングすべきライン数も増加している（以降、これを特徴２と呼ぶ）。さらに、ＨＤサイズなどの高解像度の動画を符号化／復号するために、高い処理性能が要求されており、携帯機器などにもコーデックを搭載するために、小面積や低消費電力も要求されている。【０００８】
上記要求に応えられるフィルタ装置を映像処理装置に実装するうえで、特徴１,特徴２に関して以下の不都合がある。【０００９】
（特徴１に関する不都合）
実行判定結果参照ラインのフィルタリングを実施するためには、実行判定結果算出ラインの実行判定結果が算出されるのを待たなければならない。【００１０】
（特徴２に関する不都合）
演算段数が多いため、フィルタ演算結果と実行判定結果の算出に時間がかかる。【００１１】
これらの不都合を解消するためにはクロック周波数を上げて処理性能を上げればよいのであるが、クロック周波数を上げると算出レイテンシが増えてしまう。算出レイテンシが増えるとスループットが低下して、クロック周波数の上昇により向上させた処理性能が飽和してしまう。さらにはフィルタリングすべきライン数が多いため、ＤＢＦを完了するまでに要する処理サイクルが大きくなる。【００１２】
そこで従来では、クロック周波数を上昇させることなく上記不都合を解消するために図３０に示すフィルタ装置３０００が用いられている。フィルタ装置３０００は、１つ以上の記憶装置３００１と、フィルタ処理部３００２と、制御部３００３とを備える。記憶装置３００１は、フィルタ処理単位のフィルタリングに必要な画素データが記憶される。フィルタ処理部３００２は、画素データを送受信してフィルタリングを実施する。制御部３００３は、フィルタ処理単位のフィルタリングを適切に実施するように、記憶装置３００１とフィルタ処理部３００２とを制御する。ここで、フィルタ処理単位とは２次元フィルタを実施する単位である。図３１はＶＣ−１のフィルタ処理単位の例であって、このフィルタ処理単位では、ピクチャやマクロブロック（１６ｘ１６画素）や８ｘ８画素ブロックなどが選択可能である。【００１３】
（フィルタ装置３０００における特徴２に関する不都合の対策）
フィルタ装置３０００は、以下に示す第１、第２の対策によって処理サイクル数を削減することで、特徴２に関する不都合の解消を図っている。第１の対策では、フィルタ処理部３００２でパイプライン処理を行うことで、フィルタ演算結果算出のレイテンシを隠蔽して処理サイクル数を減らしている。第１の対策の具体例として特許文献１が挙げられる。特許文献１には、Ｈ．２６４／ＡＶＣのＤＢＦを例に４ｘ４ブロック単位でフィルタリングをパイプライン処理するフィルタ装置が開示されている。【００１４】
第２の対策では、フィルタ処理部３００２でフィルタリングの並列度を上げて処理サイクル数を減らしている。第２の対策の具体例として特許文献２が挙げられる。特許文献２には、Ｈ．２６４／ＡＶＣのＤＢＦを例に水平及び垂直フィルタリングを同時に行うフィルタ装置が開示されている。【００１５】
（フィルタ装置３０００における特徴１に関する不都合の対策）
フィルタ装置３０００は、以下に示す第３の対策によって特徴１に関する不都合の解消を図っている。すなわち、第３の対策では、制御部３００３は、実行判定結果参照ラインのフィルタリングを投機実行したうえで、後に算出される実行判定結果算出ラインの実行判定結果が真なら、投機実行したフィルタリング結果をフィルタ演算結果として更新することでスループットの低下を抑制している。【００１６】
図３２は上記投機実行を行なわない場合(例えば特許文献１,特許文献２)における波形図である。セグメント３２０１では、例えばライン１,２,３,４の順にフィルタリングを行なう。なお、実行判定結果参照ライン２,３,４のフィルタリング順序はＶＣ−１で規定されていないので、適宜変更可能である。フィルタ処理部３００２はパイプライン処理を行なっており、フィルタ演算結果算出レイテンシと実行判定結果算出レイテンシとは共に３サイクルとしている。数字Ｎ（Ｎは自然数）が記載された四角形は、ラインＮの画素データ入力および画素データ／実行判定結果出力を表している。制御部３００３は、記憶装置３００１とフィルタ処理部３００２との間で各ラインの画素データが送受信されるように、記憶装置３００１にアドレス等の制御信号を適切に送信する。【００１７】
波形３２０２では、実行判定結果参照ライン２,３,４のフィルタリングを実施するためには、実行判定算出ライン１の実行判定結果を待たなければならないので、実行判定結果算出レイテンシ分のストール（フィルタ処理部３００２へ画素データが入力されない期間）が発生してしまう。【００１８】
図３３Ａ,図３３Ｂを参照して、上記投機実行によってスループット低下を抑制できる理由を説明する。図３３Ａ,図３３Ｂにおける波形３３０１,３３０２は、セグメント３２０１における実行判定結果算出ライン１の実行判定結果がそれぞれ真および偽だった場合の波形である。【００１９】
波形３３０１では、実行判定結果算出ライン１の実行判定結果を待つことなく、実行判定結果参照ライン２,３,４には、実行判定結果算出ライン１に画素データ入力された次サイクルから画素データが入力されている。次に、実行判定結果算出ライン１の実行判定結果が出力されたサイクルでは、実行判定結果が真なので、画素データ出力で記憶装置３００１上の画素データが更新される。その次サイクル以降は実行判定結果参照ライン２,３,４の実行判定結果に応じて、画素データ出力で記憶装置３００１上の画素データが適宜更新される。【００２０】
波形３３０２では、画素データ入力の波形は波形３２０２と同様である。実行判定結果算出ライン１の実行判定結果が出力されたサイクルでは、実行判定結果が偽なので、画素データ出力で記憶装置３００１上の画素データが更新されない。その次サイクル以降は実行判定結果参照ライン２,３,４の実行判定結果に依らず、画素データ出力で記憶装置３００１上の画素データが更新されない。なお、実行判定結果が偽でフィルタリングを実施しない場合は、画素データ入力と同じ画素データを画素データ出力として更新してもよい。このようにして、従来は実行判定結果参照ラインのフィルタリングを投機実行することによって、効率的なパイプライン処理を実現していた。
【先行技術文献】
【特許文献】
【００２１】
【特許文献１】特開２００６−１５７９２５号公報
【特許文献２】特開２００６−１７４４８６号公報
【発明の概要】
【発明が解決しようとする課題】
【００２２】
しかしながら、特徴１に関する不都合の対策である第３の対策を実施しない特許文献１,２では、実行判定結果算出ラインのフィルタリングと実行判定結果参照ラインのフィルタリングとの間で、セグメント毎に実行判定結果算出レイテンシ分のストールが発生し、パイプライン処理のスループットが低下する。また、第３の対策において実施する実行判定結果参照ラインにおけるフィルタリングの投機実行では、実行判定結果算出ラインの実行判定結果が偽だったときに、投機実行されたフィルタリング結果が不要で、フィルタリングに費やされた処理サイクルと電力が無駄になる。【００２３】
本発明の目的は、効率的にパイプライン処理を行うことができるフィルタ装置およびフィルタ方法を提供することである。【００２４】
なお、ここでいう効率的とは、結果が不要になるようなフィルタリング実行が無いこと、またはフィルタリング可能なラインが他にある状態において先行処理の実行結果待ちによるスループット低下が起こらないことを意味する。
【課題を解決するための手段】
【００２５】
本発明のポイントは、複数個の実行判定結果算出ラインのフィルタリングを先に行なって、実行判定結果算出レイテンシをパイプライン処理によって隠蔽することである。そのために本発明にかかるフィルタ装置は、実行判定結果算出ラインのフィルタリング後に、実行判定結果を参照して実行判定結果参照ラインのフィルタリング実行判定を行なったうえでフィルタ処理単位のフィルタリングを実施する制御部を備える。【００２６】
なお、本発明にかかるフィルタ装置には、記憶装置とフィルタ処理部と制御部で構成される従来のフィルタ装置に加えて、実行判定結果算出ラインで算出した複数個の実行判定結果を記憶する実行判定結果記憶部を備えるという態様がある。これによって、構成要素の実装に要する基板等の面積における僅かな増加だけで、先行してフィルタリングされる実行判定結果算出ライン数が実行判定結果算出レイテンシより大きい場合における効率的なパイプライン処理ができる。【００２７】
本発明には、制御部が１次元目と２次元目ブロック境界両方の全実行判定結果算出ラインを先にフィルタリングするように制御するという態様がある。これにより、定められたフィルタ処理単位において、隠蔽可能な実行判定結果算出レイテンシを最大化できるので、より効率的なパイプライン処理ができる。ただし、適用する２次元フィルタには、以下の何れの条件も満たさないことが必要である。【００２８】
（条件１）２次元目ブロック境界の実行判定結果算出ラインのフィルタリングで、１次元目ブロック境界のフィルタリングで更新される画素データを参照する。【００２９】
（条件２）１次元目ブロック境界のフィルタリングで、２次元目ブロック境界における実行判定結果算出ラインで更新される画素データを参照する。【００３０】
本発明には、
フィルタリング領域のデータを記憶する１つ以上の記憶装置と、
第２方向の第１データ位置群に含まれる複数の第１データ位置における前記データを記憶する複製メモリと、
前記記憶装置で記憶している前記データと前記複製メモリで記憶している前記データとを選択して前記フィルタ処理部に出力するデータ選択部と、
を備えるという態様がある。【００３１】
また本発明には、
前記フィルタリング領域の前記データを記憶する１つ以上の記憶装置と、
前記第２方向の前記第１データ位置群に含まれる複数の第１データ位置のデータに前記フィルタ処理部がフィルタリングを実行した結果であるフィルタリング後データを記憶する退避メモリと、
前記フィルタ処理部のフィルタリング出力と前記退避メモリで記憶している前記フィルタリング後データとを選択し前記記憶装置に出力する出力データ選択部と、
をさらに備えるという態様がある。これらにより、構成要素の実装に要する基板等の面積における僅かな増加だけで、本発明にかかるフィルタ装置の効果が得られる２次元フィルタの適用範囲を広げることができる。より詳細には、２次元フィルタが（条件２）を満たす場合も本発明にかかるフィルタ装置を適用することができる。【００３２】
本発明には、
前記フィルタ処理部は、
前記第１データ位置群のフィルタリングを行なう第１フィルタ処理部と、
前記第２データ位置のフィルタリングを行なう第２フィルタ処理部と、
を備える、
という態様がある。これにより、実行判定結果算出レイテンシを隠蔽できるサイクル数を減らさずに並列処理ができる。また、前記実行判定結果記憶部における、実行判定結果の保持期間と保持量を減らすことができる。【００３３】
本発明にかかるフィルタ方法は、
フィルタリング領域に含まれる任意のデータ位置におけるデータに、フィルタリング順序および少なくとも一部のフィルタリングの実行自体に依存関係を有するフィルタリングを実施するフィルタ方法であって、
前記任意のデータ位置の一つである第２データ位置のフィルタリングの実行判定に必要となる第１データ位置群における前記データに実行判定を含むフィルタリングを実施する第１ステップと、
前記第１ステップの実行判定の結果が真なら前記第２データ位置における前記データのフィルタリングを実行する第２ステップと、
を含む。これによって、効率的なパイプライン処理ができる。
【発明の効果】
【００３４】
本発明によれば、構成要素の実装に要する基板等の面積における僅かな増加だけで、実行判定結果算出レイテンシをパイプライン処理によって隠蔽できるので、効率的なパイプライン処理ができる。より詳細には、本発明のフィルタ装置およびフィルタ方法の処理性能は、投機実行しない構成に比して向上するうえに、全セグメントの実行判定結果が真で無ければ投機実行する構成に比して向上する。【００３５】
また、本発明のフィルタ装置およびフィルタ方法は、不要なフィルタリングを行なわないので投機実行する構成に比べて消費電力が少なくなる。また、投機実行しない構成に比べると、処理サイクル数が少ないので同じ時間で処理を行うのであればクロック周波数を下げることが可能になって消費電力が少なくなる。【００３６】
また、本発明の他の特徴によれば、定められたフィルタ処理単位において隠蔽可能な実行判定結果算出レイテンシを最大化できるので、より効率的なパイプライン処理ができる。【００３７】
また、本発明の他の特徴によれば、フィルタリング前画素データの複製とフィルタリング後画素データの退避とを、必要に応じて切替えて実行するので、効果が得られる２次元フィルタの適用範囲を広げることができる。【００３８】
また、複製メモリや退避メモリが記憶する情報は２次元目の実行判定結果算出ラインのフィルタリングで更新される位置にある画素データのみとなるため、記憶装置の記憶する情報に比べて少なくなって、構成要素の実装に要する基板等の面積増加は僅かとなる。【００３９】
また、本発明の他の特徴によれば、実行判定結果算出ラインと実行判定結果参照ラインとをそれぞれ並列処理するので、実行判定結果算出レイテンシを隠蔽できるサイクル数を減らさずに並列処理を行うことが可能となる。
【図面の簡単な説明】
【００４０】
【図１】図１は本発明のフィルタ装置を適用する２次元フィルタのフィルタリングを示す図である。
【図２】図２は本発明のフィルタ装置を適用する２次元フィルタのセグメントを示す図である。
【図３】図３は本発明の実施の形態１におけるフィルタ装置の構成を示すブロック図である。
【図４Ａ】図４Ａは本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御する、フィルタ処理単位のフィルタリングを示すフローチャートのその１である。
【図４Ｂ】図４Ｂは本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御する、フィルタ処理単位のフィルタリングを示すフローチャートのその２である。
【図４Ｃ】図４Ｃは本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御する、フィルタ処理単位のフィルタリングを示すフローチャートのその３である。
【図５】図５は本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御する、ステップ４０１で行なうフィルタリングを示すフローチャートである。
【図６】図６は本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御する、ステップ４０２で行なうフィルタリングを示すフローチャートである。
【図７】図７は本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御する、ステップ６０３で行なうフィルタリングを示すフローチャートである。
【図８】図８は本発明の実施の形態１におけるフィルタ装置の先行実行単位がブロック境界１本の場合における、制御部３０３が制御するフィルタリング順序を示す図である。
【図９】図９は本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御するフィルタリング順序が図８で示される状態における波形を示す図である。
【図１０】図１０は本発明の実施の形態１におけるフィルタ装置の先行実行単位が水平または垂直ブロック境界全部の場合における、制御部３０３が制御するフィルタリング順序を示す図である。
【図１１】図１１は本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御するフィルタリング順序が図１０で示される時の波形を示す図である。
【図１２】図１２は本発明の実施の形態１におけるフィルタ装置の先行実行単位がフィルタ処理単位における水平と垂直ブロック境界全部の場合における、制御部３０３が制御するフィルタリング順序を示す図である。
【図１３】図１３は本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御するフィルタリング順序が図１２で示される状態における波形を示す図である。
【図１４】図１４は本発明の実施の形態１におけるフィルタ装置の課題を示す図である。
【図１５】図１５は本発明の実施の形態２におけるフィルタ装置の構成を示すブロック図である。
【図１６】図１６は本発明の実施の形態２におけるフィルタ装置の制御部１５０３が制御する、ステップ４０１で行なうフィルタリングを示すフローチャートである。
【図１７】図１７は本発明の実施の形態２におけるフィルタ装置の制御部１５０３が制御する、ステップ４０２で行なうフィルタリングを示すフローチャートである。
【図１８】図１８は本発明の実施の形態２におけるフィルタ装置の制御部１５０３が制御する、ステップ１７０３で行なうフィルタリングを示すフローチャートである。
【図１９】図１９は本発明の実施の形態２におけるフィルタ装置の制御部１５０３が制御するフィルタリング順序が図１４で示される時の波形を示す図である。
【図２０】図２０は本発明の実施の形態３におけるフィルタ装置の構成を示すブロック図である。
【図２１】図２１は本発明の実施の形態３におけるフィルタ装置の制御部２００３が制御する、ステップ４０１で行なうフィルタリングを示すフローチャートである。
【図２２】図２２は本発明の実施の形態３におけるフィルタ装置の制御部２００３が制御する、ステップ４０２で行なうフィルタリングを示すフローチャートである。
【図２３】図２３は本発明の実施の形態３におけるフィルタ装置の制御部２００３が制御する、ステップ２２０３で行なうフィルタリングを示すフローチャートである。
【図２４】図２４は本発明の実施の形態３におけるフィルタ装置の制御部２００３が制御するフィルタリング順序が図１４で示される状態における波形を示す図である。
【図２５】図２５は本発明の実施の形態１を基に、実行判定算出ラインをフィルタリングする並列度を上げたフィルタ装置の課題を示す図である。
【図２６】図２６は本発明の実施の形態４におけるフィルタ装置の構成を示すブロック図である。
【図２７】図２７は本発明の実施の形態４におけるフィルタ装置の制御部２６０２が制御するフィルタリング順序を示す図である。
【図２８】図２８は本発明の実施の形態４におけるフィルタ装置の制御部２６０２が制御するフィルタリング順序が図２７で示される時の波形を示す図である。
【図２９】図２９はＶＣ−１方式のＤＢＦの特徴を示す図である。
【図３０】図３０は従来のフィルタ装置の構成を示すブロック図である。
【図３１】図３１はＶＣ−１方式のフィルタ処理単位の例を示す図である。
【図３２】図３２は特許文献１および特許文献２の方法で、ＶＣ−１のフィルタリングを実施した状態における波形を示す図である。
【図３３Ａ】図３３Ａは投機実行を用いて、ＶＣ−１のフィルタリングを実施した状態における第１の波形を示す図である。
【図３３Ｂ】図３３Ｂは投機実行を用いて、ＶＣ−１のフィルタリングを実施した状態における第２の波形を示す図である。
【発明を実施するための形態】
【００４１】
各実施の形態について説明する前に、本発明のフィルタ装置が適用する２次元フィルタの範囲を定義する。
【００４２】
（２次元フィルタが実施するブロック境界順序）
２次元フィルタが実施するブロック境界順序は、１次元目が水平方向で、２次元目が垂直方向である規格であっても良いし、逆でも良い。各方向では、ブロック境界を左（上）からフィルタリングする規格であっても良いし、ＶＣ−１のように８ｘ８個の画素のブロック境界を先に行なうような規格であっても良い。
【００４３】
（フィルタリング）
図１はブロック境界の各ラインに実施するフィルタリングを表したものである。各ラインのフィルタリングでは、ブロック境界を跨ぐ位置にある２Ｍ個（ＭはＭ＞＝１を満たす整数）の画素データ（以下、この画素を参照画素といい、この画素データを参照画素データという）を参照し、参照画素データを１つ以上の閾値に比較することで実行判定結果を算出する。算出した実行判定結果が真ならば、ブロック境界を跨ぐ位置にある２Ｎ個（Ｎは１＜＝Ｎ＜＝Ｍを満たす整数）の画素データがフィルタ演算を施した画素データに更新される。フィルタリングを実施するブロック境界の最小間隔は、符号化をする画素ブロックの最小サイズＡｘＢ（Ａ,ＢはＡ,Ｂ＞＝１を満たす整数）で決まる。図１はＡ＝Ｂ＝４、Ｍ＝４、Ｎ＝１の例である。
【００４４】
（セグメント）
セグメントとは、ブロック境界上にある連続する複数個のラインである。セグメント内におけるライン数はＳ（ＳはＳ＞＝１を満たす整数）とする。図２はセグメントの例であって、（ａ）はＳ＝４であり、（ｂ）はＳ＝８である。
【００４５】
（実行判定結果算出ラインと実行判定結果参照ライン）
セグメントは、１つ以上の実行判定結果算出ラインと残りの実行判定結果参照ラインとを含む。実行判定結果算出ラインとは、当該ラインのフィルタリングで算出する実行判定結果を、セグメントのフィルタ実行判定に用いるラインである。実行判定結果算出ラインは第１データ位置となる。また上記実行判定結果が真なら、実行判定結果算出ライン自体もその参照データを更新する。実行判定結果参照ラインとは、当該ラインが属するセグメントのフィルタ実行判定結果（実行判定結果算出ラインにおいて実施される）に従ってフィルタリングを行なうラインである。実行判定結果参照ラインは第２データ位置となる。セグメントのフィルタ実行判定結果（実行判定結果算出ラインにおいて実施される）が真であれば、セグメント内の全実行判定結果参照ラインのフィルタリングを行なってその参照データを更新する。
【００４６】
実行判定結果算出ラインと実行判定結果参照ラインとが、それぞれ全セグメントで同じライン番号にあるとする。つまり、ＶＣ−１の例を挙げると、それぞれ全セグメントで、実行判定結果算出ラインは３ライン目に、実行判定結果参照ラインは１,２,４ライン目にそれぞれあるとする。図２を参照して実行判定結果算出ラインと実行判定結果参照ラインとを説明する。セグメント内の実行判定結果算出ライン数がＣ（Ｃは１＜＝Ｃ＜Ｓを満たす整数）とすると、実行判定結果参照ライン数はＳ−Ｃとなる。Ｃ個の実行判定結果算出ラインのライン番号はＬ（１）、…、Ｌ（Ｃ）とする。図２の（ａ）でＣ＝１、Ｌ（１）＝３であり、（ｂ）でＣ＝２、Ｌ（１）＝４、Ｌ（２）＝５である。
【００４７】
（実施の形態１）
図３は、本発明の実施の形態１におけるフィルタ装置の構成図である。本発明の実施の形態１におけるフィルタ装置は、記憶装置３０１と、フィルタ処理部３０２と、制御部３０３と、実行判定結果記憶部３０４とを備える。
【００４８】
実行判定結果記憶部３０４は、フィルタリング領域に含まれる実行判定結果算出ライン（このラインに第１データ位置が存在する）における画素データのフィルタリングを実施したフィルタ処理部３０２が出力する実行判定結果を複数個記憶する。制御部３０３は、実行判定結果算出ラインである複数の第１データ位置のフィルタリングを実施した後、実行判定結果記憶部３０４から受信する実行判定結果を参照する。制御部３０３は、この実行参照結果に基づいて実行判定結果参照ラインである第２データ位置におけるフィルタリング実行判定を行なうように、記憶装置３０１および実行判定結果記憶部３０４に制御信号を送信し、さらにフィルタ処理部３０２との間で制御信号を送受信する。なお、以降の説明では記憶装置３０１は１つとし、フィルタリング前後の画素データが同じ場所に格納されるとする。
【００４９】
図４Ａ−図４Ｃは、制御部３０３が制御するフィルタ処理単位のフィルタリングを示すフローチャートである。これらフローチャート（図４Ａ−図４Ｃ）は、先に実行判定結果算出ラインをフィルタリングする単位（先行実行単位と呼ぶ）が、
・ブロック境界１本である（図４Ａ）、
・水平ブロック境界全部または垂直ブロック境界全部である（図４Ｂ）、
・フィルタ処理単位における水平ブロック境界と垂直ブロック境界との全部である（図４Ｃ）、
場合におけるフローチャートをそれぞれ表している。
【００５０】
ステップ４０１では、先行実行単位における全ての実行判定結果算出ラインがフィルタリングされる。ステップ４０２では、２次元フィルタの定めるブロック境界順序に従って、先行実行単位の全セグメントで、実行判定結果算出ラインの実行判定結果に応じて、実行判定結果参照ラインがフィルタリングされる。
【００５１】
先行実行単位を、フィルタ処理単位における水平ブロック全部と垂直ブロック境界全部とに設定するには、適用する２次元フィルタが以下に示す（条件１）と（条件２）との何れも満たさないことが必要となる。
【００５２】
（条件１）
２次元目ブロック境界の実行判定結果算出ラインのフィルタリングで、１次元目ブロック境界のフィルタリングで更新される画素データを参照する。
【００５３】
（条件２）
１次元目ブロック境界のフィルタリングで、２次元目ブロック境界における実行判定結果算出ラインで更新される画素データを参照する。
【００５４】
２次元フィルタが（条件１）を満たす場合、１次元目ブロック境界の各ラインのフィルタリングが完了してからでないと、２次元目ブロック境界の実行判定結果算出ラインのフィルタリングができない。そのため、フィルタ処理単位における水平垂直ブロック境界と垂直ブロック境界との全部に先行実行単位を設定することができない。
【００５５】
なお、２次元フィルタが（条件２）を満たす場合、フィルタ処理単位における水平ブロック境界全部と垂直ブロック境界全部とに先行実行単位を設定できない理由は、後述する実施の形態２において説明する。
【００５６】
図５は、ステップ４０２で制御部３０３が制御する、先行実行単位の全実行判定結果算出ラインのフィルタリングを示すフローチャートである。ステップ５０１では、当該ラインのフィルタリングに必要な画素データが記憶装置３０１からフィルタ処理部３０２に送信される。ステップ５０２では、フィルタ処理部３０２で算出された実行判定結果が、制御部３０３と実行判定結果記憶部３０４とに送信される。先行実行単位における各セグメントの実行判定結果は、実行判定結果記憶部３０４でそれぞれ別の場所に記憶される。ステップ５０３では、制御部３０３が、フィルタ処理部３０２から受信した実行判定結果が真であるか否かを判定し、真ならステップ５０４に進み、偽なら当該ラインのフィルタリングを行うことなくこの処理を完了する。ステップ５０４では、フィルタ演算処理された画素データがフィルタ処理部３０２から記憶装置３０１に送信される。
【００５７】
図６は、ステップ４０２で制御部３０３が制御する、先行実行単位の全実行判定結果参照ラインのフィルタリングを示すフローチャートである。ステップ６０１では、当該セグメント内の全実行判定結果算出ラインの実行判定結果が実行判定結果記憶部３０４から制御部３０３に送信される。ステップ６０２では、制御部３０３が、受信した全実行判定結果算出ラインの実行判定結果が当該セグメントのフィルタ実施条件を満たすか否かを判定する。制御部３０３が前記条件を満たすと判定するならば、当該セグメントの全実行判定結果参照ラインフィルタリング６０３が実施され、満たさないと判定するならば当該セグメントのフィルタリングが実施されることなくこの処理が完了する。
【００５８】
図７は、ステップ６０３で制御部３０３が制御する、セグメント内の全実行判定結果参照ラインのフィルタリングを示すフローチャートである。ステップ７０２では、フィルタ処理部３０２が、算出した実行判定結果を制御部３０３に送信する。なお、ステップ７０１,７０３,７０４は、それぞれステップ５０１,５０３,５０４と同様である。
【００５９】
以降、本発明の実施の形態１におけるフィルタ装置の動作を、適用する２次元フィルタが以下で定義される場合を例にして説明する。
・フィルタ処理単位：マクロブロック
・フィルタリング順序：垂直−＞水平を左また上のブロック境界から実施
・その他の各パラメータ：Ｍ＝１,Ｎ＝１,Ｂ＝４,Ａ＝１,Ｌ（１）＝２
なお、この場合、２次元フィルタは、
・（条件１）と（条件２）との両方を満たさない、
・セグメントのフィルタ実施条件においてセグメントの全実行判定結果算出ラインの実行判定結果が真である、
こととする。
【００６０】
先行実行単位がブロック境界におけるライン１本の場合における輝度成分のフィルタリングでは、例えば図８に示す順序でフィルタリングが実施されるように、制御部３０３が制御信号を出力する。フィルタリングによって更新される画素の近くにある数字はフィルタリング順序を示している。まず、ブロック境界（１）の４セグメントの実行判定結果算出ラインを先に（１〜４番目）にフィルタリングする。その後実行判定結果算出ラインの実行判定結果に応じて、４セグメントの実行判定結果参照ライン（５〜１６番目）をフィルタリングする。記載の無い８〜１６番目については、各セグメントを５〜７番目と同様の順序でフィルタリングする。また、ブロック境界（２）〜（８）についても同様の順序でフィルタリングする。
【００６１】
図９は図８に示す順序でフィルタリングを実施した状態における波形図である。各種レイテンシは図３２と同様としている。実行判定結果算出ライン１における実行判定結果は、同一セグメントの実行判定結果参照ライン５〜７にフィルタリングするより前サイクルの時点で算出される。そのため、パイプライン処理のスループットは低下しない。また、パイプライン処理により実行判定結果算出レイテンシが３サイクル隠蔽されている。
【００６２】
記憶装置３０１は、最小でフィルタ処理単位のフィルタリングに必要な画素データを記憶する必要がある。１画素データは８ビットなので、最小記憶ビット数は８ｘ（２０ｘ２０−４ｘ４）＝３０７２となる。また、図９の波形図における４回の実行判定結果書込みにおいて１回の実行判定結果読出しが同時に発生するので、実行判定結果記憶部３０４の記憶ビット数は４−１＝３となる。
【００６３】
先行実行単位がフィルタ処理単位における水平ブロック境界全部または垂直ブロック境界全部に設定された場合における輝度成分のフィルタリングでは、例えば図１０に示す順序でフィルタリングが実施されるように、制御部３０３が制御信号を出力する。まず、ブロック境界（１）〜（４）における１６セグメントの実行判定結果算出ラインが先に（１〜１６番目）フィルタリングされる。その後実行判定結果算出ラインの実行判定結果に応じて、１６セグメントの実行判定結果参照ライン（１７〜６４番目）がフィルタリングされる。記載の無い２０〜６４番目では、各セグメントが１７〜１９番目と同様の順序でフィルタリングされる。また、ブロック境界（５）〜（８）も同様の順序でフィルタリングされる。
【００６４】
図１１は図１０に示す順序でフィルタリングが実施された状態における波形図である。各種レイテンシは図３２と同様としている。この例では、実行判定結果算出ライン１の実行判定結果を偽、実行判定結果算出ライン２の実行判定結果を真としている。この場合、同一セグメントの実行判定結果参照ライン１７〜１９は無駄なくスキップされている。また、実行判定結果算出ライン２の実行判定結果が、同一セグメントの実行判定結果参照ライン２０〜２２にフィルタリングするより前サイクルの時点で算出される。そのため、パイプライン処理のスループットは低下しない。また、実行判定結果算出レイテンシはパイプライン処理で１５サイクル隠蔽されている。
【００６５】
フィルタ処理単位がマクロブロックなので、記憶装置３０１の最小記憶ビット数は３０７２となる。また、図１１の波形図における１６回の実行判定結果書込みにおいて１回の実行判定結果読出しが同時に発生するので、実行判定結果記憶部３０４の記憶ビット数は１６−１＝１５となる。
【００６６】
フィルタ処理単位における水平ブロック境界と垂直ブロック境界との全部に先行実行単位が設定された場合における輝度成分のフィルタリングでは、例えば図１２に示す順序でフィルタリングが実施されるように、制御部３０３が制御信号を出力する。まず、ブロック境界（１）〜（８）における３２セグメントの実行判定結果算出ラインが先に（１〜３２番目）にフィルタリングされる。その後実行判定結果算出ラインの実行判定結果に応じて、３２セグメントの実行判定結果参照ライン（３３〜１２８番目）がフィルタリングされる。記載の無い３６〜１２８番目は、各セグメントを３３〜３５番目と同様の順序でフィルタリングされる。
【００６７】
図１３は図１２に示す順序でフィルタリングが実施された状態における波形図である。各種レイテンシは図３２と同様としている。この例では、実行判定結果算出ライン１の実行判定結果が、同一セグメントの実行判定結果参照ライン３３〜３５にフィルタリングするより前サイクルの時点で算出される。そのため、パイプライン処理のスループットが低下していない。また、実行判定結果算出レイテンシはパイプライン処理で３１サイクル隠蔽されている。
【００６８】
フィルタ処理単位がマクロブロックなので、記憶装置３０１の最小記憶ビット数は３０７２となる。また、実行判定結果記憶部３０４は、図１３の波形図における３２回の実行判定結果書込みにおいて１回の実行判定結果読出しが同時に発生するので、実行判定結果記憶部３０４の記憶ビット数は３２−１＝３１となる。
【００６９】
以上、説明した本発明の実施の形態１におけるフィルタ装置によれば、複数個の実行判定結果算出ラインを先にフィルタリングするので、実行判定結果算出レイテンシをパイプライン処理によって隠蔽することができる。そのため、先行してフィルタリングされる実行判定結果算出ライン数が実行判定結果算出レイテンシより大きければ、スループット低下が防止される。また、セグメントの実行判定結果算出ラインの実行判定結果が偽である場合は、セグメントの実行判定結果参照ラインのフィルタリングを無駄なくスキップすることができるので、不要なフィルタリングをなくすことができる。また、先行実行単位をフィルタ処理単位における水平ブロック境界全部と垂直ブロック境界全部とにした場合には、実行判定結果算出レイテンシの隠蔽量を最大にすることができる。そのため、スループット低下がさらに防止される。また、実行判定結果記憶部が記憶する情報は、実行判定結果算出ラインの実行判定結果のみであり、記憶装置の記憶する情報に比べて少ない。そのため、実行判定結果記憶部を追加することによって生じる構成要素の実装に要する基板等の面積増加は僅かとなる。
【００７０】
（実施の形態２）
本発明の実施の形態１におけるフィルタ装置には、２次元フィルタが前述した（条件２）を満たす場合には、先行実行単位を、フィルタ処理単位における水平垂直ブロック境界全部と垂直ブロック境界全部とにすることができない。ＶＣ−１は（条件２）を満たす２次元フィルタであり、ＶＣ−１を実施する構成において本発明を実施する場合にはこの不都合は看過できない。
【００７１】
図１４を参照してこの不都合をさらに説明する。図１４は、本発明の実施の形態１が実施された、フィルタ処理単位（８ｘ８個の画素ブロック）のフィルタ装置にＶＣ−１を適用した例である。この例では、実行判定結果参照ライン１１のフィルタリングにおいてブロック境界を跨ぐ８画素が参照されるが、データ位置Ｐ３の画素データ（図２９参照）は先に実行判定結果算出ライン４でフィルタリングされている。しかしながら、２次元フィルタは１次元目の後に２次元目のフィルタリングを行なわなければならない。したがって、２次元フィルタが（条件２）を満たす場合は、本発明の実施の形態１におけるフィルタ装置において、フィルタ処理単位における水平ブロック境界全部と垂直ブロック境界全部とに先行実行単位を設定することができない。
【００７２】
以上でＶＣ−１を実施する構成において本発明を実施する場合に生じる不都合の説明を終える。次にこの不都合を解消した本発明の実施の形態２のフィルタ装置を図１５を参照して説明する。実施の形態２のフィルタ装置は、フィルタ処理部１５０１と、実行判定結果記憶部１５０２と、制御部１５０３と、画素メモリ１５０４と、複製メモリ１５０５と、画素選択部１５０６とを備える。画素メモリ１５０４は、画像の一部または全部の画素データを記憶する。複製メモリ１５０５は、２次元目ブロック境界の実行判定結果算出ライン（以下、第１ラインと呼ぶ）で更新される２Ｎ個のフィルタリング前画素データを記憶する。画素選択部１５０６は、１次元目ブロック境界のフィルタリングを行う際に第１ラインで更新される２Ｎ個のデータ位置にある画素データを参照するときには複製メモリ１５０５の画素データを選択し、それ以外のデータ位置にある画素データを参照するときには、画素メモリ１５０４の画素データを選択する。制御部１５０３は、複数個の実行判定結果算出ラインのフィルタリングが実施された後に、実行判定結果記憶部１５０２から受信する実行判定結果を参照して、実行判定結果参照ラインのフィルタリング実行判定を行うように、画素メモリ１５０４、複製メモリ１５０５、画素選択部１５０６、および実行判定結果記憶部１５０２に制御信号を送信する。さらに制御部１５０３は、上記実行判定を行うために、フィルタ処理部１５０１との間で、別途、制御信号の送受信を行う。なお、以降の説明では、画素メモリ１５０４は１つとし、画素メモリ１５０４においてフィルタリング前後の画素データは同じ場所に格納されるとする。
【００７３】
制御部１５０３が制御するフィルタ処理単位のフィルタリングを示すフローチャートは、図４Ｃと同様である。図１６は、ステップ４０１で制御部１５０３が制御する、先行実行単位の全実行判定結果算出ラインのフィルタリングを示すフローチャートである。ステップ１６０１では、画素選択部１５０６が、当該ラインのフィルタリングに必要な全画素データを、画素メモリ１５０４から選択してフィルタ処理部１５０１に送信する。ステップ１６０２では、フィルタ処理部１５０１が、入力される画素データに基づいてフィルタリング実行判定を行ったうえで、算出した実行判定結果を、制御部１５０３と実行判定結果記憶部１５０２とに送信する。ステップ１６０３では、制御部１５０３が、フィルタ処理部１５０１から受信した実行判定結果が真であるか否かを判定し、真ならステップ１６０４に進み、偽なら当該ラインのフィルタリングを実施することなくこの処理を完了する。ステップ１６０４では、フィルタ処理部１５０１が当該ラインのフィルタリングを実施しフィルタ演算を施した画素データを画素メモリ１５０４に送信する。
【００７４】
図１７は、ステップ４０２で制御部１５０３が制御する、先行実行単位の全実行判定結果参照ラインのフィルタリングを示すフローチャートである。ステップ１７０１では、実行判定結果記憶部１５０２が、当該セグメント内の全実行判定結果算出ラインの実行判定結果を制御部１５０３に送信する。ステップ１７０２では、制御部１５０３が、受信した全実行判定結果算出ラインの実行判定結果が当該セグメントのフィルタ実施条件を満たすか否かを判定する。ステップ１７０２で当該セグメントのフィルタ実施条件を満たすと制御部１５０３が判定する場合には、フィルタ処理部１５０１は、参照ラインフィルタリング１７０３を実施し、満たさないと制御部１５０３が判定する場合には、当該セグメントのフィルタリングを実施することなくこの処理を完了する。
【００７５】
図１８は、ステップ１７０３で制御部１５０３が制御する、セグメント内の全実行判定結果参照ラインのフィルタリングを示すフローチャートである。ステップ１８０１では、参照画素が第１ラインで更新される２Ｎ個のデータ位置にある画素データを含むか否かを、制御部１５０３が判定する。含むと判定されるならば、ステップ１８０２に進み、含まないと判定されるならば、ステップ１８０３に進む。ステップ１８０２では、画素選択部１５０６が、当該ラインのフィルタリングに必要な画素データ群において、第１ラインで更新される２Ｎ個のデータ位置にある画素データ群は複製メモリ１５０５から選択し、残りの画素データ群は画素メモリ１５０４から選択して、フィルタ処理部１５０１に送信する。ステップ１８０４では、フィルタ処理部１５０１が判定した実行判定結果が、制御部１５０３に送信される。なお、ステップ１８０３,１８０５,１８０６は、それぞれステップ１６０１,１６０３,１６０４と同様である。
【００７６】
以降、本発明の実施の形態２におけるフィルタ装置の動作を、適用する２次元フィルタが以下で定義される場合を例にして説明する。
・フィルタ処理単位：８ｘ８画素からなる画素ブロック
・フィルタリング順序：水平−＞垂直を８ｘ８個の画素からなる画素ブロック境界から実施する、
・その他の各パラメータ：Ｍ＝４、Ｎ＝１、Ｂ＝４、Ａ＝１、Ｌ（１）＝３
なお、この場合、２次元フィルタは、
・（条件２）を満たす、
・フィルタ実施条件はセグメントの実行判定結果算出ラインの全実行判定結果が真である、
こととする。
【００７７】
輝度成分のフィルタリングにおいては、例えば図１４に示すように、ブロック境界（１）〜（４）における８セグメントの実行判定結果算出ラインが先に（１〜８番目）にフィルタリングされるように、制御部１５０３が制御信号を出力する。その後、実行判定結果算出ラインの実行判定結果に応じて、８セグメントの実行判定結果参照ライン（９〜３２番目）がフィルタリングされる。記載の無い１２〜３２番目の実行判定結果算出ラインでは、各セグメントが９〜１１番目と同様の順序でフィルタリングされる。
【００７８】
図１９は図１４に示す順序でフィルタリングが実施された場合の波形図である。各種レイテンシは図３２と同様としている。この例では、実行判定結果算出ライン１の実行判定結果が、同一セグメントの実行判定結果参照ライン９〜１１にフィルタリングするより前サイクルの時点で算出される。そのため、パイプライン処理のスループットは低下しない。また、１次元目ブロック境界のライン９,１１(参照画素として第１ラインで更新するデータ位置の画素データを含む)のフィルタリング時には、画素選択部１５０６は、データ位置Ｐ３の画素データ（図２９参照）として、複製メモリ１５０５からの画素データを選択し、残りの画素データを画素メモリ１５０４から選択してフィルタ処理部１５０１に送信する。したがって、先行実行単位を、フィルタ処理単位における水平ブロック全部と垂直ブロック境界全部とにしても、規格通りの順序でフィルタリングした場合と同様の画像が得られる。
【００７９】
フィルタ処理単位が８ｘ８画素ブロックなので、画素メモリ１５０４の最小記憶ビット数は、８ｘ（１２ｘ１２−４ｘ４）＝１０２４となる。また、図１９の波形図における８回の実行判定結果書込みにおいて１回の実行判定結果読出しが同時に発生するので、実行判定結果記憶部１５０２の記憶ビット数は８−１＝７となる。また、第１ライン３,４のデータ位置Ｐ４,Ｐ５の画素データ（図２９参照）と、第１ライン７,８のデータ位置Ｐ５の画素データ（図２９参照）を記憶するので、複製メモリ１５０５の記憶ビット数は８ｘ６＝４８となる。
【００８０】
以上、本発明の実施の形態２におけるフィルタ装置によれば、適用する２次元フィルタが（条件２）を満たす場合でも、先行実行単位をフィルタ処理単位における水平ブロック境界全部と垂直ブロック境界全部とに設定することができる。また、複製メモリ１５０５で記憶する画素データは第１ラインで更新される２Ｎ個の画素データのみで済む。そのため、構成要素の実装に要する基板等の面積増加は僅かとなる。
【００８１】
（実施の形態３）
本発明の実施の形態３におけるフィルタ装置は、上述した実施の形態２で述べた不都合を別の構成で解消したものであって、図２０に示す構成を有する。本発明の実施の形態３におけるフィルタ装置は、フィルタ処理部２００１と、実行判定結果記憶部２００２と、画素メモリ２００４と、制御部２００３と、退避メモリ２００５と、出力画素選択部２００６と、入力画素選択部２００７とを備える。
【００８２】
退避メモリ２００５は、第１ラインで更新される２Ｎ個のフィルタリング後画素データを記憶する。出力画素選択部２００６は、１次元目ブロック境界のフィルタリング時において、第１ラインで更新される２Ｎ個のデータ位置群にある画素データを更新するときには退避メモリ２００５から供給される画素データを選択し、それ以外のデータ位置にある画素データを更新するときにはフィルタ処理部２００１から供給される画素データを選択する。入力画素選択部２００７は、第１ラインのフィルタリング時において、隣接ブロック境界で更新される２Ｎ個のデータ位置群にある画素データを参照するときには、退避メモリ２００５から供給される画素データを選択し、それ以外の画素データを参照するときには、画素メモリ２００４から供給される画素データを選択する。制御部２００３は、複数個の実行判定結果算出ラインのフィルタリング後に実行判定結果記憶部２００２から受信する実行判定結果を参照して実行判定結果参照ラインのフィルタリング実行判定を行うように、画素メモリ２００４,退避メモリ２００５,出力画素選択部２００６,入力画素選択部２００７,および実行判定結果記憶部２００２に制御信号を送信する。さらに制御部２００３は、上記実行判定を行うためにフィルタ処理部２００１との間で別途、制御信号の送受信を行う。なお、以降の説明では、画素メモリ１５０４は１つとし、画素メモリ２００４においてフィルタリング前後の画素データは同じ場所に格納されるとする。制御部２００３が制御するフィルタ処理単位のフィルタリングを示すフローチャートは、図４Ｃと同様である。
【００８３】
図２１は、ステップ４０１で制御部２００３が制御する、先行実行単位の全実行判定結果算出ラインのフィルタリングを示すフローチャートである。ステップ２１０１では、参照画素に第１ラインで更新される２Ｎ個のデータ位置群にある画素データを含むか否かを、制御部２００３が判定する。含むと判定するならば、ステップ２１０２に進み、含まないと判定するならばステップ２１０３に進む。ステップ２１０２では、入力画素選択部２００７が、当該ラインのフィルタリングに必要となる画素データ群において、第１ラインで更新される２Ｎ個のデータ位置群にある画素データ群は退避メモリ２００５から選択し、残りの画素データは画素メモリ２００４からの画素データを選択し、フィルタ処理部２００１に送信する。ステップ２１０３では、入力画素選択部２００７が、当該ラインのフィルタリングに必要な全画素データを、画素メモリ２００４から選択し、フィルタ処理部２００１に送信する。ステップ２１０４では、フィルタ処理部２００１が判定した実行判定結果が制御部２００３と実行判定結果記憶部２００２とに送信される。ステップ２１０５では、制御部２００３が、フィルタ処理部２００１から受信した実行判定結果が真であるか否かを判定し、真ならばステップ２１０６に進み、偽ならば当該ラインのフィルタリングを実施することなくこの処理を完了する。ステップ２１０６では、制御部２００３は当該ラインが第１ラインであるか否かを判定し、第１ラインであると制御部２００３が判定する場合にはステップ２１０７に進み、それ以外のラインであると判定する場合にはステップ２１０８に進む。ステップ２１０７では、フィルタ処理部２００１は、フィルタ演算が施された画素データを退避メモリ２００５に送信する。ステップ２１０８では、出力画素選択部２００６は、フィルタ処理部２００１が出力するフィルタ演算を施された画素データ群の中から、当該ラインのフィルタリングに必要な全画素データを選択して、画素メモリ２００４に送信する。
【００８４】
図２２は、ステップ４０２で制御部２００３が制御する、先行実行単位の全実行判定結果参照ラインのフィルタリングを示すフローチャートである。ステップ２２０１では、当該セグメント内の全実行判定結果が実行判定結果記憶部２００２から制御部２００３に送信される。ステップ２２０２では、制御部２００３は、受信した全実行判定結果が当該セグメントのフィルタ実施条件を満たすか否かを判定し、条件を満たすと制御部２００３が判定するならば、ステップ２２０３にて当該セグメントの全実行判定結果参照ラインのフィルタリングが実施され、条件を満たさないと制御部２００３が判定するならば、当該セグメントのフィルタリングを実施することなくこの処理を完了する。
【００８５】
図２３は、ステップ２２０３で制御部２００３が制御する、セグメント内の全実行判定結果参照ラインのフィルタリングを示すフローチャートである。ステップ２３０１では、入力画素選択部２００７が、当該ラインのフィルタリングに必要となる全画素データを、画素メモリ２００４から選択してフィルタ処理部２００１に送信する。ステップ２３０２では、フィルタ処理部２００１が実行判定結果を算出したうえで、その実行判定結果を制御部２００３に送信する。ステップ２３０３では、制御部２００３が、参照画素データは第１ラインで更新される２Ｎ個のデータ位置群にある画素データ群を含むか否かを判定する。含むと判定する場合はステップ２３０４に進み、含まないと判定する場合はステップ２３０５に進む。ステップ２３０４では、制御部２００３が、フィルタ処理部２００１から受信した実行判定結果が真であるかどうかを判定し、真であると判定する場合はステップ２３０６に進み、偽であると判定する場合はステップ２３０７に進む。ステップ２３０５では、制御部２００３が、フィルタ処理部２００１から受信した実行判定結果が真であるか否かを判定する。真であると判定する場合はステップ２３０８に進み、偽であると判定する場合は当該ラインのフィルタリングを実施することなくこの処理を完了する。ステップ２３０６,２３０７では、出力画素選択部２００６が、当該ラインのフィルタリングに必要な画素データを次のように選択して画素メモリ２００４に送信する。具体的には第１ラインで更新される２Ｎ個のデータ位置群にある画素データ群は退避メモリ２００５から選択され、残りの画素データはフィルタ処理部２００１から選択される。ただし、ステップ２３０７では、画素メモリ２００４における画素データは、フィルタ処理部２００１からの画素データで更新されない。なお、ステップ２３０１,２３０８は、それぞれステップ２１０３,２１０８と同様である。
【００８６】
以降、適用する２次元フィルタが前述した実施の形態２と同様である場合を例にして、本発明の実施の形態３におけるフィルタ装置の動作を説明する。輝度成分のフィルタリングにおいては、例えば実施の形態２と同様、図１４に示す順序でその処理が実施されるように、制御部２００３が制御信号を出力する。図２４は図１４に示す順序でフィルタリングが実施された場合の波形図である。各種レイテンシは図３２と同様としている。この例では、実行判定結果算出ライン１の実行判定結果が、同一セグメントの実行判定結果参照ライン９〜１１にフィルタリングするより前サイクルの時点で算出される。そのため、パイプライン処理のスループットが低下しない。また、第１ライン３,４,７,８のフィルタリング時には、データ位置Ｐ４,Ｐ５の画素データ（図２９参照）を退避メモリ２００５に送信する。また、１次元目ブロック境界のライン９,１１上の画素データ群（参照画素として第１ラインで更新するデータ位置の画素データを含む）のフィルタリング時には、出力画素選択部２００６は、データ位置Ｐ３の画素データ（図２９参照）として、退避メモリ２００５からの画素データを選択して画素メモリ２００４に送信し、残りの画素データとして、フィルタ処理部２００１からの画素データを選択して画素メモリ２００４に送信する。また、第１ライン７,８上の画素データ群（参照画素に隣接する第１ラインで更新する位置の画素データを含む）のフィルタリング時には、入力画素選択部２００７はデータ位置Ｐ８の画素データ（図２９参照）として、退避メモリ２００５からの画素データを選択してフィルタ処理部２００１に送信し、残りの画素データとして画素メモリ２００４からの画素データを選択してフィルタ処理部２００１に送信する。したがって、先行実行単位をフィルタ処理単位における水平ブロック境界と垂直ブロック境界との全部にしても、規格通りの順序でフィルタリングした場合と同様の画像が得られる。
【００８７】
画素メモリ２００４の最小記憶ビット数は、フィルタ処理単位が８ｘ８個の画素からなる画素ブロックなので、１０２４となる。また、実行判定結果記憶部２００２は、図２４から８つの実行判定結果を書込む間に１つの実行判定結果を読出すので、記憶ビット数は７となる。また、退避メモリ２００５は、第１ライン３,４のデータ位置Ｐ４,Ｐ５の画素データ（図２９参照）と、第１ライン７,８のデータ位置Ｐ５の画素データ（図２９参照）を記憶しているので、記憶ビット数は８ｘ６＝４８となる。
【００８８】
以上、本発明の実施の形態３におけるフィルタ装置によれば、適用する２次元フィルタが（条件２）を満たす場合であっても、フィルタ処理単位における水平ブロック境界全部と垂直ブロック境界全部とに先行実行単位を設定することが可能となる。また、退避メモリ２００５で記憶する画素データは第１ラインで更新される２Ｎ個の画素データのみで済むので、構成要素の実装に要する基板等の面積増加は僅かとなる。
【００８９】
なお、実施の形態３で適用した２次元フィルタは、以下の（条件３）を満たし、退避メモリ内の隣接第１ラインの更新画素データを参照する必要があるため、入力画素選択部２００７が必要になる。
【００９０】
（条件３）第１ラインのフィルタリングの参照画素に、隣接ブロック境界のフィルタリングで更新した画素データを含む。
【００９１】
しかしながら、（条件３）を満たさないような２次元フィルタ（例えば、実施の形態３で適用した２次元フィルタをＭ＝１にしたものなど）であれば、入力画素選択部２００７が不要となり、常に画素メモリ２００４からの画素データをフィルタ処理部２００１に送信すればよい。
【００９２】
（実施の形態４）
処理サイクル数をさらに減少させるために、前述した実施の形態１のフィルタ装置において、実行判定結果算出ラインをフィルタリングする並列度を上げることが考えられる。しかしながら、そうすると実行判定結果算出レイテンシとフィルタ結果算出レイテンシとをパイプライン処理で隠蔽できるサイクル数が減少してしまう。
【００９３】
図２５は実施の形態２及び３で適用したものと同様の２次元フィルタで、実行判定結果算出ラインをフィルタリングする並列度を２にした例である。この場合、先に実行判定結果算出ラインをフィルタリングするのに要するサイクル数は８から４に減少する。また、１（２）番目のフィルタリングで更新した画素データを３（４）番目で参照していることがわかる。したがって、実行判定結果算出ラインをフィルタリングする並列度を２にして、フィルタリング順序を図１４から図２５にすると、パイプライン処理で隠蔽できる、実行判定結果算出レイテンシとフィルタ結果算出レイテンシは、７から３に、３から１にそれぞれ減少してしまう。
【００９４】
このような不都合を解消したのが本発明の実施の形態４のフィルタ装置である。実施の形態４は図２６に示す構成を有する。実施の形態４のフィルタ装置は、記憶装置２６０３（図３の実施の形態１のフィルタ装置の記憶装置３０１と同様）、実行判定結果記憶部２６０１（図３の実施の形態１のフィルタ装置の実行判定結果記憶部３０４と同様）,制御部２６０２,第１フィルタ処理部２６０４,および第２フィルタ処理部２６０５を備える。
【００９５】
第１フィルタ処理部２６０４は記憶装置２６０３との間で画素データを送受信しながら実行判定結果算出ラインのフィルタリングを実施する。第２フィルタ処理部２６０５は記憶装置２６０３との間で画素データを送受信しながら実行判定結果参照ラインのフィルタリングを実施する。制御部２６０２は、第１フィルタ処理部２６０４で複数個の実行判定結果算出ラインをフィルタリングさせた後に、実行判定結果記憶部２６０１から受信する実行判定結果を参照して以下の制御を行う。すなわち、参照結果がフィルタ実行判定を満たす場合、制御部２６０２は、第２フィルタ処理部２６０５で実行判定結果参照ラインのフィルタリングが実施されるように、
・記憶装置２６０３と実行判定結果記憶部２６０１とに制御信号を送信し、
・第１フィルタ処理部２６０４と第２フィルタ処理部２６０５との間で制御信号の送受信を行う。
【００９６】
なお、以降の説明では記憶装置２６０３は１つとし、フィルタリング前後の画素データが同じ場所に格納されるとする。
【００９７】
制御部２６０２が制御するフィルタ処理単位のフィルタリングを示すフローチャートは、図４Ｃと同様である。先行実行単位の全実行判定結果算出ラインのフィルタリング（ステップ４０１で制御部２６０２によって制御される）を示すフローチャートは、図５のフィルタ処理部３０２を第１フィルタ処理部２６０４に置き換え、制御部３０３を制御部２６０２に置き換えたものと同様である。
【００９８】
先行実行単位の全実行判定結果参照ラインのフィルタリング（ステップ４０２で制御部２６０２によって制御される）を示すフローチャートは、図６と同様である。
【００９９】
セグメント内の全実行判定結果参照ラインのフィルタリング（ステップ６０３で制御部２６０２によって制御される）を示すフローチャートは、図７のフィルタ処理部３０２を第２フィルタ処理部２６０５に置き換え、制御部３０３を制御部２６０２に置き換えたものと同様である。
【０１００】
以降、本発明の実施の形態４におけるフィルタ装置の動作を、適用する２次元フィルタが以下で定義される場合を例にして説明する。フィルタ実施条件はセグメントの実行判定結果算出ラインの全実行判定結果が真であることとする。
・フィルタ処理単位：８ｘ８個の画素からなる画素ブロック
・フィルタリング順序：水平−＞垂直を８ｘ８個の画素からなる画素ブロック境界から実施される
・その他の各パラメータ：Ｍ＝１,Ｎ＝１,Ｂ＝４,Ａ＝１,Ｌ（１）＝３
輝度成分のフィルタリングにおいては、例えば図２７に示すように、制御部２６０２が制御信号を出力する。第１フィルタ処理部２６０４はブロック境界（１）〜（４）の８セグメントの実行判定結果算出ラインを先に（１〜８番目）にフィルタリングする。その後、実行判定結果算出ラインの実行判定結果に応じて、第２フィルタ処理部２６０５が、８セグメントの実行判定結果参照ライン（１’〜２４’番目）をフィルタリングする。記載の無い１０’〜２４’番目の実行判定結果算出ラインは、各セグメントを１’〜３’番目と同様の順序でフィルタリングされる。
【０１０１】
図２８は図２７に示す順序でフィルタリングが実施された状態における波形図である。各種レイテンシは図３２と同様としている。この例では、実行判定結果算出ライン２の実行判定結果は偽であるので、同一セグメントの実行判定結果参照ライン４’,５’,６’のフィルタリングは無駄なくスキップされる。また、実行判定結果算出ラインのフィルタリングを行なうのは第１フィルタ処理部２６０４のみであるので、実行判定結果算出レイテンシを隠蔽できるサイクル数は減少していない。また、第２フィルタ処理部２６０５は実行判定結果参照ラインのみをフィルタリングするので、第１フィルタ処理部２６０４と並列にフィルタリング処理が可能となる。また、第１フィルタ処理部２６０４から実行判定結果記憶部２６０１に書き込まれた実行判定結果を、第１のフィルタ処理部２６０４と並列にフィルタリング処理を行っている第２フィルタ処理部２６０５が順次読出していくので、実行判定結果の保持期間と保持量とが減少する。
【０１０２】
フィルタ処理単位が８ｘ８画素ブロックなので、記憶装置２６０３の最小記憶ビット数は、８ｘ（１２ｘ１２−４ｘ４）＝１０２４となる。また、実行判定結果記憶部２６０１は、図２８から書込まれる実行判定結果が全て真であれば、８回の実行判定結果書込みの内、３回の実行判定結果読出しが同時に発生するので、記憶ビット数は８−３＝５となる。
【０１０３】
以上、本発明の実施の形態４におけるフィルタ装置によれば、実行判定結果算出レイテンシを隠蔽できるサイクル数を減らさずに並列処理ができる。また、実行判定結果記憶部における、実行判定結果の保持期間と保持量を減らすことができる。
【０１０４】
なお、実施の形態１〜４では、輝度成分のフィルタリング制御例のみを用いて説明したが、色差成分と輝度成分のフィルタリングは同じであり、また色差フォーマットが４：２：０等の場合でも、同一フィルタ処理単位におけるブロック境界とライン数が異なるのみなので、色差成分に対しても同様のフィルタリング制御が可能である。
【０１０５】
なお、実施の形態１と実施の形態４とでは、記憶装置３０１,２６０３は１つで、フィルタリング前後の画素データが同じ場所に格納されるとして説明したが、画素データを格納すべき記憶装置上の場所または記憶装置がフィルタリング前後で別々であってもよい。この場合、あるセグメントの実行判定結果算出ラインの実行判定結果が偽の場合に、同一セグメント内の実行判定結果参照ラインのフィルタリングは実施しないが、画素データのコピーが実施される。画素データのコピーは記憶装置３０１,２６０３内部で実施されても良いし、フィルタ処理部３０２,２６０４,２６０５を経由して実施されてもよい。
【０１０６】
なお、実施の形態２と実施の形態３とでは、画素メモリ１５０４,２００４は１つで、フィルタリング前後の画素データが同じ場所に格納されるとして説明したが、画素データを格納すべき画素メモリ上の場所または画素メモリがフィルタリング前後で別々であってもよい。この場合、あるセグメントの実行判定結果算出ラインの実行判定結果が偽の場合、同一セグメント内の実行判定結果参照ラインのフィルタリングは実施しないが、画素データのコピーが実施される。画素データのコピーは画素メモリ１５０４,２００４内部で実施されても良いし、フィルタ処理部１５０１,２００１を経由して実施されてもよい。
【産業上の利用可能性】
【０１０７】
本発明のフィルタ装置は、画像符号化装置及び画像復号装置に適用可能である。
【符号の説明】
【０１０８】
３０１,２６０３  １つ以上の記憶装置
３０２,１５０１,２００１  フィルタ処理部
３０３,１５０３,２００３,２６０２  制御部
３０４,１５０２,２００２,２６０１  実行判定記憶部
４０１  全実行判定結果算出ラインフィルタリングステップ
４０２  全実行判定結果参照ラインフィルタリングステップ
１５０４,２００４  １つ以上の画素メモリ
１５０５  複製メモリ
１５０６  画素選択部
２００５  退避メモリ
２００６  出力画素選択部
２００７  入力画素選択部
２６０４  第１フィルタ処理部
２６０５  第２フィルタ処理部
【図１】
2010035403.tif 000003
【図２】
2010035403.tif 000004
【図３】
2010035403.tif 000005
【図４Ａ】
2010035403.tif 000006
【図４Ｂ】
2010035403.tif 000007
【図４Ｃ】
2010035403.tif 000008
【図５】
2010035403.tif 000009
【図６】
2010035403.tif 000010
【図７】
2010035403.tif 000011
【図８】
2010035403.tif 000012
【図９】
2010035403.tif 000013
【図１０】
2010035403.tif 000014
【図１１】
2010035403.tif 000015
【図１２】
2010035403.tif 000016
【図１３】
2010035403.tif 000017
【図１４】
2010035403.tif 000018
【図１５】
2010035403.tif 000019
【図１６】
2010035403.tif 000020
【図１７】
2010035403.tif 000021
【図１８】
2010035403.tif 000022
【図１９】
2010035403.tif 000023
【図２０】
2010035403.tif 000024
【図２１】
2010035403.tif 000025
【図２２】
2010035403.tif 000026
【図２３】
2010035403.tif 000027
【図２４】
2010035403.tif 000028
【図２５】
2010035403.tif 000029
【図２６】
2010035403.tif 000030
【図２７】
2010035403.tif 000031
【図２８】
2010035403.tif 000032
【図２９】
2010035403.tif 000033
【図３０】
2010035403.tif 000034
【図３１】
2010035403.tif 000035
【図３２】
2010035403.tif 000036
【図３３Ａ】
2010035403.tif 000037
【図３３Ｂ】
2010035403.tif 000038
【手続補正書】
【提出日】平成23年3月8日(2011.3.8)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像に対してフィルタをかけるためのフィルタ装置およびフィルタ方法に関する。より詳細には、動画像の符号化や復号を画素ブロック単位で行なう場合に、ブロック境界に生じるノイズを低減するための、デブロッキングフィルタ（以降ＤＢＦと称す）を実施するためのフィルタ装置およびフィルタ方法に関する。
【背景技術】
【０００２】
近年用いられる動画像符号化方式は、複数個の画素データで構成されるブロック単位で符号化・復号化するものが多く、それらの方式においてはブロック境界においてノイズが生じるという問題があり、ブロック境界に生ずるノイズを低減させるためのＤＢＦが採用されている。このＤＢＦの方式にはいくつかの方式が用いられている。例えばＳＭＰＴＥ(Society of Motion Picture and Television Engineers)から提案されているＶＣ−１と呼ばれる動画像符号化方式等の規格で用いられているＤＢＦ方式のように、フィルタの実行順序および実行そのものに制約が掛かっているものが従来から知られている。以下にＶＣ−１の方式を例に図を用いて、対象となる方式の特徴を説明する。
【０００３】
図２９においてピクチャ２９０１内部の円は画素を表している。ＤＢＦは２次元フィルタである。２次元フィルタＤＢＦは、
・８ｘ８個の画素からなる画素ブロックどうしの水平境界（以下、水平８ｘ８ブロック境界という）２９０２と、
・８ｘ４個の画素からなる画素ブロックどうしの水平境界（以下、水平８ｘ４ブロック境界という）２９０３と、
・８ｘ８個の画素からなる画素ブロックどうしの垂直境界（以下、垂直８ｘ８ブロック境界という）２９０４と、
・８ｘ４個の画素からなる画素ブロックどうしの垂直境界（以下、垂直８ｘ４ブロック境界という）２９０５と、
において、セグメント単位２９０６でフィルタリングを実施する。
【０００４】
ＶＣ−１の場合では、水平８ｘ８ブロック境界２９０２、水平８ｘ４ブロック境界２９０３、垂直８ｘ８ブロック境界２９０４、垂直４ｘ８ブロック境界２９０５の順でフィルタリングが実施される。セグメント２９０６は４つのライン２９０７で構成される。各ラインのフィルタリングでは１つ以上の閾値とブロック境界とを跨ぐデータ位置Ｐ１〜Ｐ８の８つの画素データ（図２９参照）が参照され、実行判定結果とフィルタ演算結果とが算出される。ここで実行判定結果が真であるならば、フィルタ演算結果において、黒円で表されるブロック境界を跨ぐデータ位置Ｐ４,Ｐ５における２つの画素データ（図２９参照）は、フィルタ演算が施されたものになる。
【０００５】
各セグメントでは、セグメント内のラインを左（上）から数えて３ライン目（以降、実行判定結果算出ラインと呼ぶ）を最初にフィルタリングし、算出された実行判定結果を残りの１,２,４ライン目（以降、これらのラインを実行判定結果参照ラインと呼ぶ）のフィルタリングを実施するかの条件にする（以降、これを特徴１と呼ぶ）。
【０００６】
また、近年のコーデックは、高画質化を実現するため、フィルタリングにおけるフィルタ演算結果や実行判定結果を算出するための演算段数が多く、また、画素数の増加に伴いフィルタリングすべきライン数も増加している（以降、これを特徴２と呼ぶ）。さらに、ＨＤサイズなどの高解像度の動画を符号化／復号するために、高い処理性能が要求されており、携帯機器などにもコーデックを搭載するために、小面積や低消費電力も要求されている。
【０００７】
上記要求に応えられるフィルタ装置を映像処理装置に実装するうえで、特徴１,特徴２に関して以下の不都合がある。
【０００８】
（特徴１に関する不都合）
実行判定結果参照ラインのフィルタリングを実施するためには、実行判定結果算出ラインの実行判定結果が算出されるのを待たなければならない。
【０００９】
（特徴２に関する不都合）
演算段数が多いため、フィルタ演算結果と実行判定結果の算出に時間がかかる。
【００１０】
これらの不都合を解消するためにはクロック周波数を上げて処理性能を上げればよいのであるが、クロック周波数を上げると算出レイテンシが増えてしまう。算出レイテンシが増えるとスループットが低下して、クロック周波数の上昇により向上させた処理性能が飽和してしまう。さらにはフィルタリングすべきライン数が多いため、ＤＢＦを完了するまでに要する処理サイクルが大きくなる。
【００１１】
そこで従来では、クロック周波数を上昇させることなく上記不都合を解消するために図３０に示すフィルタ装置３０００が用いられている。フィルタ装置３０００は、１つ以上の記憶装置３００１と、フィルタ処理部３００２と、制御部３００３とを備える。記憶装置３００１は、フィルタ処理単位のフィルタリングに必要な画素データが記憶される。フィルタ処理部３００２は、画素データを送受信してフィルタリングを実施する。制御部３００３は、フィルタ処理単位のフィルタリングを適切に実施するように、記憶装置３００１とフィルタ処理部３００２とを制御する。ここで、フィルタ処理単位とは２次元フィルタを実施する単位である。図３１はＶＣ−１のフィルタ処理単位の例であって、このフィルタ処理単位では、ピクチャやマクロブロック（１６ｘ１６画素）や８ｘ８画素ブロックなどが選択可能である。
【００１２】
（フィルタ装置３０００における特徴２に関する不都合の対策）
フィルタ装置３０００は、以下に示す第１、第２の対策によって処理サイクル数を削減することで、特徴２に関する不都合の解消を図っている。第１の対策では、フィルタ処理部３００２でパイプライン処理を行うことで、フィルタ演算結果算出のレイテンシを隠蔽して処理サイクル数を減らしている。第１の対策の具体例として特許文献１が挙げられる。特許文献１には、Ｈ．２６４／ＡＶＣのＤＢＦを例に４ｘ４ブロック単位でフィルタリングをパイプライン処理するフィルタ装置が開示されている。
【００１３】
第２の対策では、フィルタ処理部３００２でフィルタリングの並列度を上げて処理サイクル数を減らしている。第２の対策の具体例として特許文献２が挙げられる。特許文献２には、Ｈ．２６４／ＡＶＣのＤＢＦを例に水平及び垂直フィルタリングを同時に行うフィルタ装置が開示されている。
【００１４】
（フィルタ装置３０００における特徴１に関する不都合の対策）
フィルタ装置３０００は、以下に示す第３の対策によって特徴１に関する不都合の解消を図っている。すなわち、第３の対策では、制御部３００３は、実行判定結果参照ラインのフィルタリングを投機実行したうえで、後に算出される実行判定結果算出ラインの実行判定結果が真なら、投機実行したフィルタリング結果をフィルタ演算結果として更新することでスループットの低下を抑制している。
【００１５】
図３２は上記投機実行を行なわない場合(例えば特許文献１,特許文献２)における波形図である。セグメント３２０１では、例えばライン１,２,３,４の順にフィルタリングを行なう。なお、実行判定結果参照ライン２,３,４のフィルタリング順序はＶＣ−１で規定されていないので、適宜変更可能である。フィルタ処理部３００２はパイプライン処理を行なっており、フィルタ演算結果算出レイテンシと実行判定結果算出レイテンシとは共に３サイクルとしている。数字Ｎ（Ｎは自然数）が記載された四角形は、ラインＮの画素データ入力および画素データ／実行判定結果出力を表している。制御部３００３は、記憶装置３００１とフィルタ処理部３００２との間で各ラインの画素データが送受信されるように、記憶装置３００１にアドレス等の制御信号を適切に送信する。
【００１６】
波形３２０２では、実行判定結果参照ライン２,３,４のフィルタリングを実施するためには、実行判定算出ライン１の実行判定結果を待たなければならないので、実行判定結果算出レイテンシ分のストール（フィルタ処理部３００２へ画素データが入力されない期間）が発生してしまう。
【００１７】
図３３Ａ,図３３Ｂを参照して、上記投機実行によってスループット低下を抑制できる理由を説明する。図３３Ａ,図３３Ｂにおける波形３３０１,３３０２は、セグメント３２０１における実行判定結果算出ライン１の実行判定結果がそれぞれ真および偽だった場合の波形である。
【００１８】
波形３３０１では、実行判定結果算出ライン１の実行判定結果を待つことなく、実行判定結果参照ライン２,３,４には、実行判定結果算出ライン１に画素データ入力された次サイクルから画素データが入力されている。次に、実行判定結果算出ライン１の実行判定結果が出力されたサイクルでは、実行判定結果が真なので、画素データ出力で記憶装置３００１上の画素データが更新される。その次サイクル以降は実行判定結果参照ライン２,３,４の実行判定結果に応じて、画素データ出力で記憶装置３００１上の画素データが適宜更新される。
【００１９】
波形３３０２では、画素データ入力の波形は波形３２０２と同様である。実行判定結果算出ライン１の実行判定結果が出力されたサイクルでは、実行判定結果が偽なので、画素データ出力で記憶装置３００１上の画素データが更新されない。その次サイクル以降は実行判定結果参照ライン２,３,４の実行判定結果に依らず、画素データ出力で記憶装置３００１上の画素データが更新されない。なお、実行判定結果が偽でフィルタリングを実施しない場合は、画素データ入力と同じ画素データを画素データ出力として更新してもよい。このようにして、従来は実行判定結果参照ラインのフィルタリングを投機実行することによって、効率的なパイプライン処理を実現していた。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】特開２００６−１５７９２５号公報
【特許文献２】特開２００６−１７４４８６号公報
【発明の概要】
【発明が解決しようとする課題】
【００２１】
しかしながら、特徴１に関する不都合の対策である第３の対策を実施しない特許文献１,２では、実行判定結果算出ラインのフィルタリングと実行判定結果参照ラインのフィルタリングとの間で、セグメント毎に実行判定結果算出レイテンシ分のストールが発生し、パイプライン処理のスループットが低下する。また、第３の対策において実施する実行判定結果参照ラインにおけるフィルタリングの投機実行では、実行判定結果算出ラインの実行判定結果が偽だったときに、投機実行されたフィルタリング結果が不要で、フィルタリングに費やされた処理サイクルと電力が無駄になる。
【００２２】
本発明の目的は、効率的にパイプライン処理を行うことができるフィルタ装置およびフィルタ方法を提供することである。
【００２３】
なお、ここでいう効率的とは、結果が不要になるようなフィルタリング実行が無いこと、またはフィルタリング可能なラインが他にある状態において先行処理の実行結果待ちによるスループット低下が起こらないことを意味する。
【課題を解決するための手段】
【００２４】
本発明のポイントは、複数個の実行判定結果算出ラインのフィルタリングを先に行なって、実行判定結果算出レイテンシをパイプライン処理によって隠蔽することである。そのために本発明にかかるフィルタ装置は、実行判定結果算出ラインのフィルタリング後に、実行判定結果を参照して実行判定結果参照ラインのフィルタリング実行判定を行なったうえでフィルタ処理単位のフィルタリングを実施する制御部を備える。
【００２５】
なお、本発明にかかるフィルタ装置には、記憶装置とフィルタ処理部と制御部で構成される従来のフィルタ装置に加えて、実行判定結果算出ラインで算出した複数個の実行判定結果を記憶する実行判定結果記憶部を備えるという態様がある。これによって、構成要素の実装に要する基板等の面積における僅かな増加だけで、先行してフィルタリングされる実行判定結果算出ライン数が実行判定結果算出レイテンシより大きい場合における効率的なパイプライン処理ができる。
【００２６】
本発明には、制御部が１次元目と２次元目ブロック境界両方の全実行判定結果算出ラインを先にフィルタリングするように制御するという態様がある。これにより、定められたフィルタ処理単位において、隠蔽可能な実行判定結果算出レイテンシを最大化できるので、より効率的なパイプライン処理ができる。ただし、適用する２次元フィルタには、以下の何れの条件も満たさないことが必要である。
【００２７】
（条件１）２次元目ブロック境界の実行判定結果算出ラインのフィルタリングで、１次元目ブロック境界のフィルタリングで更新される画素データを参照する。
【００２８】
（条件２）１次元目ブロック境界のフィルタリングで、２次元目ブロック境界における実行判定結果算出ラインで更新される画素データを参照する。
【００２９】
本発明には、
フィルタリング領域のデータを記憶する１つ以上の記憶装置と、
第２方向の第１データ位置群に含まれる複数の第１データ位置における前記データを記憶する複製メモリと、
前記記憶装置で記憶している前記データと前記複製メモリで記憶している前記データとを選択して前記フィルタ処理部に出力するデータ選択部と、
を備えるという態様がある。
【００３０】
また本発明には、
前記フィルタリング領域の前記データを記憶する１つ以上の記憶装置と、
前記第２方向の前記第１データ位置群に含まれる複数の第１データ位置のデータに前記フィルタ処理部がフィルタリングを実行した結果であるフィルタリング後データを記憶する退避メモリと、
前記フィルタ処理部のフィルタリング出力と前記退避メモリで記憶している前記フィルタリング後データとを選択し前記記憶装置に出力する出力データ選択部と、
をさらに備えるという態様がある。これらにより、構成要素の実装に要する基板等の面積における僅かな増加だけで、本発明にかかるフィルタ装置の効果が得られる２次元フィルタの適用範囲を広げることができる。より詳細には、２次元フィルタが（条件２）を満たす場合も本発明にかかるフィルタ装置を適用することができる。
【００３１】
本発明には、
前記フィルタ処理部は、
前記第１データ位置群のフィルタリングを行なう第１フィルタ処理部と、
前記第２データ位置のフィルタリングを行なう第２フィルタ処理部と、
を備える、
という態様がある。これにより、実行判定結果算出レイテンシを隠蔽できるサイクル数を減らさずに並列処理ができる。また、前記実行判定結果記憶部における、実行判定結果の保持期間と保持量を減らすことができる。
【００３２】
本発明にかかるフィルタ方法は、
フィルタリング領域に含まれる任意のデータ位置におけるデータに、フィルタリング順序および少なくとも一部のフィルタリングの実行自体に依存関係を有するフィルタリングを実施するフィルタ方法であって、
前記任意のデータ位置の一つである第２データ位置のフィルタリングの実行判定に必要となる第１データ位置群における前記データに実行判定を含むフィルタリングを実施する第１ステップと、
前記第１ステップの実行判定の結果が真なら前記第２データ位置における前記データのフィルタリングを実行する第２ステップと、
を含む。これによって、効率的なパイプライン処理ができる。
【発明の効果】
【００３３】
本発明によれば、構成要素の実装に要する基板等の面積における僅かな増加だけで、実行判定結果算出レイテンシをパイプライン処理によって隠蔽できるので、効率的なパイプライン処理ができる。より詳細には、本発明のフィルタ装置およびフィルタ方法の処理性能は、投機実行しない構成に比して向上するうえに、全セグメントの実行判定結果が真で無ければ投機実行する構成に比して向上する。
【００３４】
また、本発明のフィルタ装置およびフィルタ方法は、不要なフィルタリングを行なわないので投機実行する構成に比べて消費電力が少なくなる。また、投機実行しない構成に比べると、処理サイクル数が少ないので同じ時間で処理を行うのであればクロック周波数を下げることが可能になって消費電力が少なくなる。
【００３５】
また、本発明の他の特徴によれば、定められたフィルタ処理単位において隠蔽可能な実行判定結果算出レイテンシを最大化できるので、より効率的なパイプライン処理ができる。
【００３６】
また、本発明の他の特徴によれば、フィルタリング前画素データの複製とフィルタリング後画素データの退避とを、必要に応じて切替えて実行するので、効果が得られる２次元フィルタの適用範囲を広げることができる。
【００３７】
また、複製メモリや退避メモリが記憶する情報は２次元目の実行判定結果算出ラインのフィルタリングで更新される位置にある画素データのみとなるため、記憶装置の記憶する情報に比べて少なくなって、構成要素の実装に要する基板等の面積増加は僅かとなる。
【００３８】
また、本発明の他の特徴によれば、実行判定結果算出ラインと実行判定結果参照ラインとをそれぞれ並列処理するので、実行判定結果算出レイテンシを隠蔽できるサイクル数を減らさずに並列処理を行うことが可能となる。
【図面の簡単な説明】
【００３９】
【図１】図１は本発明のフィルタ装置を適用する２次元フィルタのフィルタリングを示す図である。
【図２】図２は本発明のフィルタ装置を適用する２次元フィルタのセグメントを示す図である。
【図３】図３は本発明の実施の形態１におけるフィルタ装置の構成を示すブロック図である。
【図４Ａ】図４Ａは本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御する、フィルタ処理単位のフィルタリングを示すフローチャートのその１である。
【図４Ｂ】図４Ｂは本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御する、フィルタ処理単位のフィルタリングを示すフローチャートのその２である。
【図４Ｃ】図４Ｃは本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御する、フィルタ処理単位のフィルタリングを示すフローチャートのその３である。
【図５】図５は本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御する、ステップ４０１で行なうフィルタリングを示すフローチャートである。
【図６】図６は本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御する、ステップ４０２で行なうフィルタリングを示すフローチャートである。
【図７】図７は本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御する、ステップ６０３で行なうフィルタリングを示すフローチャートである。
【図８】図８は本発明の実施の形態１におけるフィルタ装置の先行実行単位がブロック境界１本の場合における、制御部３０３が制御するフィルタリング順序を示す図である。
【図９】図９は本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御するフィルタリング順序が図８で示される状態における波形を示す図である。
【図１０】図１０は本発明の実施の形態１におけるフィルタ装置の先行実行単位が水平または垂直ブロック境界全部の場合における、制御部３０３が制御するフィルタリング順序を示す図である。
【図１１】図１１は本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御するフィルタリング順序が図１０で示される時の波形を示す図である。
【図１２】図１２は本発明の実施の形態１におけるフィルタ装置の先行実行単位がフィルタ処理単位における水平と垂直ブロック境界全部の場合における、制御部３０３が制御するフィルタリング順序を示す図である。
【図１３】図１３は本発明の実施の形態１におけるフィルタ装置の制御部３０３が制御するフィルタリング順序が図１２で示される状態における波形を示す図である。
【図１４】図１４は本発明の実施の形態１におけるフィルタ装置の課題を示す図である。
【図１５】図１５は本発明の実施の形態２におけるフィルタ装置の構成を示すブロック図である。
【図１６】図１６は本発明の実施の形態２におけるフィルタ装置の制御部１５０３が制御する、ステップ４０１で行なうフィルタリングを示すフローチャートである。
【図１７】図１７は本発明の実施の形態２におけるフィルタ装置の制御部１５０３が制御する、ステップ４０２で行なうフィルタリングを示すフローチャートである。
【図１８】図１８は本発明の実施の形態２におけるフィルタ装置の制御部１５０３が制御する、ステップ１７０３で行なうフィルタリングを示すフローチャートである。
【図１９】図１９は本発明の実施の形態２におけるフィルタ装置の制御部１５０３が制御するフィルタリング順序が図１４で示される時の波形を示す図である。
【図２０】図２０は本発明の実施の形態３におけるフィルタ装置の構成を示すブロック図である。
【図２１】図２１は本発明の実施の形態３におけるフィルタ装置の制御部２００３が制御する、ステップ４０１で行なうフィルタリングを示すフローチャートである。
【図２２】図２２は本発明の実施の形態３におけるフィルタ装置の制御部２００３が制御する、ステップ４０２で行なうフィルタリングを示すフローチャートである。
【図２３】図２３は本発明の実施の形態３におけるフィルタ装置の制御部２００３が制御する、ステップ２２０３で行なうフィルタリングを示すフローチャートである。
【図２４】図２４は本発明の実施の形態３におけるフィルタ装置の制御部２００３が制御するフィルタリング順序が図１４で示される状態における波形を示す図である。
【図２５】図２５は本発明の実施の形態１を基に、実行判定算出ラインをフィルタリングする並列度を上げたフィルタ装置の課題を示す図である。
【図２６】図２６は本発明の実施の形態４におけるフィルタ装置の構成を示すブロック図である。
【図２７】図２７は本発明の実施の形態４におけるフィルタ装置の制御部２６０２が制御するフィルタリング順序を示す図である。
【図２８】図２８は本発明の実施の形態４におけるフィルタ装置の制御部２６０２が制御するフィルタリング順序が図２７で示される時の波形を示す図である。
【図２９】図２９はＶＣ−１方式のＤＢＦの特徴を示す図である。
【図３０】図３０は従来のフィルタ装置の構成を示すブロック図である。
【図３１】図３１はＶＣ−１方式のフィルタ処理単位の例を示す図である。
【図３２】図３２は特許文献１および特許文献２の方法で、ＶＣ−１のフィルタリングを実施した状態における波形を示す図である。
【図３３Ａ】図３３Ａは投機実行を用いて、ＶＣ−１のフィルタリングを実施した状態における第１の波形を示す図である。
【図３３Ｂ】図３３Ｂは投機実行を用いて、ＶＣ−１のフィルタリングを実施した状態における第２の波形を示す図である。
【発明を実施するための形態】
【００４０】
各実施の形態について説明する前に、本発明のフィルタ装置が適用する２次元フィルタの範囲を定義する。
【００４１】
（２次元フィルタが実施するブロック境界順序）
２次元フィルタが実施するブロック境界順序は、１次元目が水平方向で、２次元目が垂直方向である規格であっても良いし、逆でも良い。各方向では、ブロック境界を左（上）からフィルタリングする規格であっても良いし、ＶＣ−１のように８ｘ８個の画素のブロック境界を先に行なうような規格であっても良い。
【００４２】
（フィルタリング）
図１はブロック境界の各ラインに実施するフィルタリングを表したものである。各ラインのフィルタリングでは、ブロック境界を跨ぐ位置にある２Ｍ個（ＭはＭ＞＝１を満たす整数）の画素データ（以下、この画素を参照画素といい、この画素データを参照画素データという）を参照し、参照画素データを１つ以上の閾値に比較することで実行判定結果を算出する。算出した実行判定結果が真ならば、ブロック境界を跨ぐ位置にある２Ｎ個（Ｎは１＜＝Ｎ＜＝Ｍを満たす整数）の画素データがフィルタ演算を施した画素データに更新される。フィルタリングを実施するブロック境界の最小間隔は、符号化をする画素ブロックの最小サイズＡｘＢ（Ａ,ＢはＡ,Ｂ＞＝１を満たす整数）で決まる。図１はＡ＝Ｂ＝４、Ｍ＝４、Ｎ＝１の例である。
【００４３】
（セグメント）
セグメントとは、ブロック境界上にある連続する複数個のラインである。セグメント内におけるライン数はＳ（ＳはＳ＞＝１を満たす整数）とする。図２はセグメントの例であって、（ａ）はＳ＝４であり、（ｂ）はＳ＝８である。
【００４４】
（実行判定結果算出ラインと実行判定結果参照ライン）
セグメントは、１つ以上の実行判定結果算出ラインと残りの実行判定結果参照ラインとを含む。実行判定結果算出ラインとは、当該ラインのフィルタリングで算出する実行判定結果を、セグメントのフィルタ実行判定に用いるラインである。実行判定結果算出ラインは第１データ位置となる。また上記実行判定結果が真なら、実行判定結果算出ライン自体もその参照データを更新する。実行判定結果参照ラインとは、当該ラインが属するセグメントのフィルタ実行判定結果（実行判定結果算出ラインにおいて実施される）に従ってフィルタリングを行なうラインである。実行判定結果参照ラインは第２データ位置となる。セグメントのフィルタ実行判定結果（実行判定結果算出ラインにおいて実施される）が真であれば、セグメント内の全実行判定結果参照ラインのフィルタリングを行なってその参照データを更新する。
【００４５】
実行判定結果算出ラインと実行判定結果参照ラインとが、それぞれ全セグメントで同じライン番号にあるとする。つまり、ＶＣ−１の例を挙げると、それぞれ全セグメントで、実行判定結果算出ラインは３ライン目に、実行判定結果参照ラインは１,２,４ライン目にそれぞれあるとする。図２を参照して実行判定結果算出ラインと実行判定結果参照ラインとを説明する。セグメント内の実行判定結果算出ライン数がＣ（Ｃは１＜＝Ｃ＜Ｓを満たす整数）とすると、実行判定結果参照ライン数はＳ−Ｃとなる。Ｃ個の実行判定結果算出ラインのライン番号はＬ（１）、…、Ｌ（Ｃ）とする。図２の（ａ）でＣ＝１、Ｌ（１）＝３であり、（ｂ）でＣ＝２、Ｌ（１）＝４、Ｌ（２）＝５である。
【００４６】
（実施の形態１）
図３は、本発明の実施の形態１におけるフィルタ装置の構成図である。本発明の実施の形態１におけるフィルタ装置は、記憶装置３０１と、フィルタ処理部３０２と、制御部３０３と、実行判定結果記憶部３０４とを備える。
【００４７】
実行判定結果記憶部３０４は、フィルタリング領域に含まれる実行判定結果算出ライン（このラインに第１データ位置が存在する）における画素データのフィルタリングを実施したフィルタ処理部３０２が出力する実行判定結果を複数個記憶する。制御部３０３は、実行判定結果算出ラインである複数の第１データ位置のフィルタリングを実施した後、実行判定結果記憶部３０４から受信する実行判定結果を参照する。制御部３０３は、この実行参照結果に基づいて実行判定結果参照ラインである第２データ位置におけるフィルタリング実行判定を行なうように、記憶装置３０１および実行判定結果記憶部３０４に制御信号を送信し、さらにフィルタ処理部３０２との間で制御信号を送受信する。なお、以降の説明では記憶装置３０１は１つとし、フィルタリング前後の画素データが同じ場所に格納されるとする。
【００４８】
図４Ａ−図４Ｃは、制御部３０３が制御するフィルタ処理単位のフィルタリングを示すフローチャートである。これらフローチャート（図４Ａ−図４Ｃ）は、先に実行判定結果算出ラインをフィルタリングする単位（先行実行単位と呼ぶ）が、
・ブロック境界１本である（図４Ａ）、
・水平ブロック境界全部または垂直ブロック境界全部である（図４Ｂ）、
・フィルタ処理単位における水平ブロック境界と垂直ブロック境界との全部である（図４Ｃ）、
場合におけるフローチャートをそれぞれ表している。
【００４９】
ステップ４０１では、先行実行単位における全ての実行判定結果算出ラインがフィルタリングされる。ステップ４０２では、２次元フィルタの定めるブロック境界順序に従って、先行実行単位の全セグメントで、実行判定結果算出ラインの実行判定結果に応じて、実行判定結果参照ラインがフィルタリングされる。
【００５０】
先行実行単位を、フィルタ処理単位における水平ブロック全部と垂直ブロック境界全部とに設定するには、適用する２次元フィルタが以下に示す（条件１）と（条件２）との何れも満たさないことが必要となる。
【００５１】
（条件１）
２次元目ブロック境界の実行判定結果算出ラインのフィルタリングで、１次元目ブロック境界のフィルタリングで更新される画素データを参照する。
【００５２】
（条件２）
１次元目ブロック境界のフィルタリングで、２次元目ブロック境界における実行判定結果算出ラインで更新される画素データを参照する。
【００５３】
２次元フィルタが（条件１）を満たす場合、１次元目ブロック境界の各ラインのフィルタリングが完了してからでないと、２次元目ブロック境界の実行判定結果算出ラインのフィルタリングができない。そのため、フィルタ処理単位における水平垂直ブロック境界と垂直ブロック境界との全部に先行実行単位を設定することができない。
【００５４】
なお、２次元フィルタが（条件２）を満たす場合、フィルタ処理単位における水平ブロック境界全部と垂直ブロック境界全部とに先行実行単位を設定できない理由は、後述する実施の形態２において説明する。
【００５５】
図５は、ステップ４０２で制御部３０３が制御する、先行実行単位の全実行判定結果算出ラインのフィルタリングを示すフローチャートである。ステップ５０１では、当該ラインのフィルタリングに必要な画素データが記憶装置３０１からフィルタ処理部３０２に送信される。ステップ５０２では、フィルタ処理部３０２で算出された実行判定結果が、制御部３０３と実行判定結果記憶部３０４とに送信される。先行実行単位における各セグメントの実行判定結果は、実行判定結果記憶部３０４でそれぞれ別の場所に記憶される。ステップ５０３では、制御部３０３が、フィルタ処理部３０２から受信した実行判定結果が真であるか否かを判定し、真ならステップ５０４に進み、偽なら当該ラインのフィルタリングを行うことなくこの処理を完了する。ステップ５０４では、フィルタ演算処理された画素データがフィルタ処理部３０２から記憶装置３０１に送信される。
【００５６】
図６は、ステップ４０２で制御部３０３が制御する、先行実行単位の全実行判定結果参照ラインのフィルタリングを示すフローチャートである。ステップ６０１では、当該セグメント内の全実行判定結果算出ラインの実行判定結果が実行判定結果記憶部３０４から制御部３０３に送信される。ステップ６０２では、制御部３０３が、受信した全実行判定結果算出ラインの実行判定結果が当該セグメントのフィルタ実施条件を満たすか否かを判定する。制御部３０３が前記条件を満たすと判定するならば、当該セグメントの全実行判定結果参照ラインフィルタリング６０３が実施され、満たさないと判定するならば当該セグメントのフィルタリングが実施されることなくこの処理が完了する。
【００５７】
図７は、ステップ６０３で制御部３０３が制御する、セグメント内の全実行判定結果参照ラインのフィルタリングを示すフローチャートである。ステップ７０２では、フィルタ処理部３０２が、算出した実行判定結果を制御部３０３に送信する。なお、ステップ７０１,７０３,７０４は、それぞれステップ５０１,５０３,５０４と同様である。
【００５８】
以降、本発明の実施の形態１におけるフィルタ装置の動作を、適用する２次元フィルタが以下で定義される場合を例にして説明する。
・フィルタ処理単位：マクロブロック
・フィルタリング順序：垂直−＞水平を左また上のブロック境界から実施
・その他の各パラメータ：Ｍ＝１,Ｎ＝１,Ｂ＝４,Ａ＝１,Ｌ（１）＝２
なお、この場合、２次元フィルタは、
・（条件１）と（条件２）との両方を満たさない、
・セグメントのフィルタ実施条件においてセグメントの全実行判定結果算出ラインの実行判定結果が真である、
こととする。
【００５９】
先行実行単位がブロック境界におけるライン１本の場合における輝度成分のフィルタリングでは、例えば図８に示す順序でフィルタリングが実施されるように、制御部３０３が制御信号を出力する。フィルタリングによって更新される画素の近くにある数字はフィルタリング順序を示している。まず、ブロック境界（１）の４セグメントの実行判定結果算出ラインを先に（１〜４番目）にフィルタリングする。その後実行判定結果算出ラインの実行判定結果に応じて、４セグメントの実行判定結果参照ライン（５〜１６番目）をフィルタリングする。記載の無い８〜１６番目については、各セグメントを５〜７番目と同様の順序でフィルタリングする。また、ブロック境界（２）〜（８）についても同様の順序でフィルタリングする。
【００６０】
図９は図８に示す順序でフィルタリングを実施した状態における波形図である。各種レイテンシは図３２と同様としている。実行判定結果算出ライン１における実行判定結果は、同一セグメントの実行判定結果参照ライン５〜７にフィルタリングするより前サイクルの時点で算出される。そのため、パイプライン処理のスループットは低下しない。また、パイプライン処理により実行判定結果算出レイテンシが３サイクル隠蔽されている。
【００６１】
記憶装置３０１は、最小でフィルタ処理単位のフィルタリングに必要な画素データを記憶する必要がある。１画素データは８ビットなので、最小記憶ビット数は８ｘ（２０ｘ２０−４ｘ４）＝３０７２となる。また、図９の波形図における４回の実行判定結果書込みにおいて１回の実行判定結果読出しが同時に発生するので、実行判定結果記憶部３０４の記憶ビット数は４−１＝３となる。
【００６２】
先行実行単位がフィルタ処理単位における水平ブロック境界全部または垂直ブロック境界全部に設定された場合における輝度成分のフィルタリングでは、例えば図１０に示す順序でフィルタリングが実施されるように、制御部３０３が制御信号を出力する。まず、ブロック境界（１）〜（４）における１６セグメントの実行判定結果算出ラインが先に（１〜１６番目）フィルタリングされる。その後実行判定結果算出ラインの実行判定結果に応じて、１６セグメントの実行判定結果参照ライン（１７〜６４番目）がフィルタリングされる。記載の無い２０〜６４番目では、各セグメントが１７〜１９番目と同様の順序でフィルタリングされる。また、ブロック境界（５）〜（８）も同様の順序でフィルタリングされる。
【００６３】
図１１は図１０に示す順序でフィルタリングが実施された状態における波形図である。各種レイテンシは図３２と同様としている。この例では、実行判定結果算出ライン１の実行判定結果を偽、実行判定結果算出ライン２の実行判定結果を真としている。この場合、同一セグメントの実行判定結果参照ライン１７〜１９は無駄なくスキップされている。また、実行判定結果算出ライン２の実行判定結果が、同一セグメントの実行判定結果参照ライン２０〜２２にフィルタリングするより前サイクルの時点で算出される。そのため、パイプライン処理のスループットは低下しない。また、実行判定結果算出レイテンシはパイプライン処理で１５サイクル隠蔽されている。
【００６４】
フィルタ処理単位がマクロブロックなので、記憶装置３０１の最小記憶ビット数は３０７２となる。また、図１１の波形図における１６回の実行判定結果書込みにおいて１回の実行判定結果読出しが同時に発生するので、実行判定結果記憶部３０４の記憶ビット数は１６−１＝１５となる。
【００６５】
フィルタ処理単位における水平ブロック境界と垂直ブロック境界との全部に先行実行単位が設定された場合における輝度成分のフィルタリングでは、例えば図１２に示す順序でフィルタリングが実施されるように、制御部３０３が制御信号を出力する。まず、ブロック境界（１）〜（８）における３２セグメントの実行判定結果算出ラインが先に（１〜３２番目）にフィルタリングされる。その後実行判定結果算出ラインの実行判定結果に応じて、３２セグメントの実行判定結果参照ライン（３３〜１２８番目）がフィルタリングされる。記載の無い３６〜１２８番目は、各セグメントを３３〜３５番目と同様の順序でフィルタリングされる。
【００６６】
図１３は図１２に示す順序でフィルタリングが実施された状態における波形図である。各種レイテンシは図３２と同様としている。この例では、実行判定結果算出ライン１の実行判定結果が、同一セグメントの実行判定結果参照ライン３３〜３５にフィルタリングするより前サイクルの時点で算出される。そのため、パイプライン処理のスループットが低下していない。また、実行判定結果算出レイテンシはパイプライン処理で３１サイクル隠蔽されている。
【００６７】
フィルタ処理単位がマクロブロックなので、記憶装置３０１の最小記憶ビット数は３０７２となる。また、実行判定結果記憶部３０４は、図１３の波形図における３２回の実行判定結果書込みにおいて１回の実行判定結果読出しが同時に発生するので、実行判定結果記憶部３０４の記憶ビット数は３２−１＝３１となる。
【００６８】
以上、説明した本発明の実施の形態１におけるフィルタ装置によれば、複数個の実行判定結果算出ラインを先にフィルタリングするので、実行判定結果算出レイテンシをパイプライン処理によって隠蔽することができる。そのため、先行してフィルタリングされる実行判定結果算出ライン数が実行判定結果算出レイテンシより大きければ、スループット低下が防止される。また、セグメントの実行判定結果算出ラインの実行判定結果が偽である場合は、セグメントの実行判定結果参照ラインのフィルタリングを無駄なくスキップすることができるので、不要なフィルタリングをなくすことができる。また、先行実行単位をフィルタ処理単位における水平ブロック境界全部と垂直ブロック境界全部とにした場合には、実行判定結果算出レイテンシの隠蔽量を最大にすることができる。そのため、スループット低下がさらに防止される。また、実行判定結果記憶部が記憶する情報は、実行判定結果算出ラインの実行判定結果のみであり、記憶装置の記憶する情報に比べて少ない。そのため、実行判定結果記憶部を追加することによって生じる構成要素の実装に要する基板等の面積増加は僅かとなる。
【００６９】
（実施の形態２）
本発明の実施の形態１におけるフィルタ装置には、２次元フィルタが前述した（条件２）を満たす場合には、先行実行単位を、フィルタ処理単位における水平垂直ブロック境界全部と垂直ブロック境界全部とにすることができない。ＶＣ−１は（条件２）を満たす２次元フィルタであり、ＶＣ−１を実施する構成において本発明を実施する場合にはこの不都合は看過できない。
【００７０】
図１４を参照してこの不都合をさらに説明する。図１４は、本発明の実施の形態１が実施された、フィルタ処理単位（８ｘ８個の画素ブロック）のフィルタ装置にＶＣ−１を適用した例である。この例では、実行判定結果参照ライン１１のフィルタリングにおいてブロック境界を跨ぐ８画素が参照されるが、データ位置Ｐ３の画素データ（図２９参照）は先に実行判定結果算出ライン４でフィルタリングされている。しかしながら、２次元フィルタは１次元目の後に２次元目のフィルタリングを行なわなければならない。したがって、２次元フィルタが（条件２）を満たす場合は、本発明の実施の形態１におけるフィルタ装置において、フィルタ処理単位における水平ブロック境界全部と垂直ブロック境界全部とに先行実行単位を設定することができない。
【００７１】
以上でＶＣ−１を実施する構成において本発明を実施する場合に生じる不都合の説明を終える。次にこの不都合を解消した本発明の実施の形態２のフィルタ装置を図１５を参照して説明する。実施の形態２のフィルタ装置は、フィルタ処理部１５０１と、実行判定結果記憶部１５０２と、制御部１５０３と、画素メモリ１５０４と、複製メモリ１５０５と、画素選択部１５０６とを備える。画素メモリ１５０４は、画像の一部または全部の画素データを記憶する。複製メモリ１５０５は、２次元目ブロック境界の実行判定結果算出ライン（以下、第１ラインと呼ぶ）で更新される２Ｎ個のフィルタリング前画素データを記憶する。画素選択部１５０６は、１次元目ブロック境界のフィルタリングを行う際に第１ラインで更新される２Ｎ個のデータ位置にある画素データを参照するときには複製メモリ１５０５の画素データを選択し、それ以外のデータ位置にある画素データを参照するときには、画素メモリ１５０４の画素データを選択する。制御部１５０３は、複数個の実行判定結果算出ラインのフィルタリングが実施された後に、実行判定結果記憶部１５０２から受信する実行判定結果を参照して、実行判定結果参照ラインのフィルタリング実行判定を行うように、画素メモリ１５０４、複製メモリ１５０５、画素選択部１５０６、および実行判定結果記憶部１５０２に制御信号を送信する。さらに制御部１５０３は、上記実行判定を行うために、フィルタ処理部１５０１との間で、別途、制御信号の送受信を行う。なお、以降の説明では、画素メモリ１５０４は１つとし、画素メモリ１５０４においてフィルタリング前後の画素データは同じ場所に格納されるとする。
【００７２】
制御部１５０３が制御するフィルタ処理単位のフィルタリングを示すフローチャートは、図４Ｃと同様である。図１６は、ステップ４０１で制御部１５０３が制御する、先行実行単位の全実行判定結果算出ラインのフィルタリングを示すフローチャートである。ステップ１６０１では、画素選択部１５０６が、当該ラインのフィルタリングに必要な全画素データを、画素メモリ１５０４から選択してフィルタ処理部１５０１に送信する。ステップ１６０２では、フィルタ処理部１５０１が、入力される画素データに基づいてフィルタリング実行判定を行ったうえで、算出した実行判定結果を、制御部１５０３と実行判定結果記憶部１５０２とに送信する。ステップ１６０３では、制御部１５０３が、フィルタ処理部１５０１から受信した実行判定結果が真であるか否かを判定し、真ならステップ１６０４に進み、偽なら当該ラインのフィルタリングを実施することなくこの処理を完了する。ステップ１６０４では、フィルタ処理部１５０１が当該ラインのフィルタリングを実施しフィルタ演算を施した画素データを画素メモリ１５０４に送信する。
【００７３】
図１７は、ステップ４０２で制御部１５０３が制御する、先行実行単位の全実行判定結果参照ラインのフィルタリングを示すフローチャートである。ステップ１７０１では、実行判定結果記憶部１５０２が、当該セグメント内の全実行判定結果算出ラインの実行判定結果を制御部１５０３に送信する。ステップ１７０２では、制御部１５０３が、受信した全実行判定結果算出ラインの実行判定結果が当該セグメントのフィルタ実施条件を満たすか否かを判定する。ステップ１７０２で当該セグメントのフィルタ実施条件を満たすと制御部１５０３が判定する場合には、フィルタ処理部１５０１は、参照ラインフィルタリング１７０３を実施し、満たさないと制御部１５０３が判定する場合には、当該セグメントのフィルタリングを実施することなくこの処理を完了する。
【００７４】
図１８は、ステップ１７０３で制御部１５０３が制御する、セグメント内の全実行判定結果参照ラインのフィルタリングを示すフローチャートである。ステップ１８０１では、参照画素が第１ラインで更新される２Ｎ個のデータ位置にある画素データを含むか否かを、制御部１５０３が判定する。含むと判定されるならば、ステップ１８０２に進み、含まないと判定されるならば、ステップ１８０３に進む。ステップ１８０２では、画素選択部１５０６が、当該ラインのフィルタリングに必要な画素データ群において、第１ラインで更新される２Ｎ個のデータ位置にある画素データ群は複製メモリ１５０５から選択し、残りの画素データ群は画素メモリ１５０４から選択して、フィルタ処理部１５０１に送信する。ステップ１８０４では、フィルタ処理部１５０１が判定した実行判定結果が、制御部１５０３に送信される。なお、ステップ１８０３,１８０５,１８０６は、それぞれステップ１６０１,１６０３,１６０４と同様である。
【００７５】
以降、本発明の実施の形態２におけるフィルタ装置の動作を、適用する２次元フィルタが以下で定義される場合を例にして説明する。
・フィルタ処理単位：８ｘ８画素からなる画素ブロック
・フィルタリング順序：水平−＞垂直を８ｘ８個の画素からなる画素ブロック境界から実施する、
・その他の各パラメータ：Ｍ＝４、Ｎ＝１、Ｂ＝４、Ａ＝１、Ｌ（１）＝３
なお、この場合、２次元フィルタは、
・（条件２）を満たす、
・フィルタ実施条件はセグメントの実行判定結果算出ラインの全実行判定結果が真である、
こととする。
【００７６】
輝度成分のフィルタリングにおいては、例えば図１４に示すように、ブロック境界（１）〜（４）における８セグメントの実行判定結果算出ラインが先に（１〜８番目）にフィルタリングされるように、制御部１５０３が制御信号を出力する。その後、実行判定結果算出ラインの実行判定結果に応じて、８セグメントの実行判定結果参照ライン（９〜３２番目）がフィルタリングされる。記載の無い１２〜３２番目の実行判定結果算出ラインでは、各セグメントが９〜１１番目と同様の順序でフィルタリングされる。
【００７７】
図１９は図１４に示す順序でフィルタリングが実施された場合の波形図である。各種レイテンシは図３２と同様としている。この例では、実行判定結果算出ライン１の実行判定結果が、同一セグメントの実行判定結果参照ライン９〜１１にフィルタリングするより前サイクルの時点で算出される。そのため、パイプライン処理のスループットは低下しない。また、１次元目ブロック境界のライン９,１１(参照画素として第１ラインで更新するデータ位置の画素データを含む)のフィルタリング時には、画素選択部１５０６は、データ位置Ｐ３の画素データ（図２９参照）として、複製メモリ１５０５からの画素データを選択し、残りの画素データを画素メモリ１５０４から選択してフィルタ処理部１５０１に送信する。したがって、先行実行単位を、フィルタ処理単位における水平ブロック全部と垂直ブロック境界全部とにしても、規格通りの順序でフィルタリングした場合と同様の画像が得られる。
【００７８】
フィルタ処理単位が８ｘ８画素ブロックなので、画素メモリ１５０４の最小記憶ビット数は、８ｘ（１２ｘ１２−４ｘ４）＝１０２４となる。また、図１９の波形図における８回の実行判定結果書込みにおいて１回の実行判定結果読出しが同時に発生するので、実行判定結果記憶部１５０２の記憶ビット数は８−１＝７となる。また、第１ライン３,４のデータ位置Ｐ４,Ｐ５の画素データ（図２９参照）と、第１ライン７,８のデータ位置Ｐ５の画素データ（図２９参照）を記憶するので、複製メモリ１５０５の記憶ビット数は８ｘ６＝４８となる。
【００７９】
以上、本発明の実施の形態２におけるフィルタ装置によれば、適用する２次元フィルタが（条件２）を満たす場合でも、先行実行単位をフィルタ処理単位における水平ブロック境界全部と垂直ブロック境界全部とに設定することができる。また、複製メモリ１５０５で記憶する画素データは第１ラインで更新される２Ｎ個の画素データのみで済む。そのため、構成要素の実装に要する基板等の面積増加は僅かとなる。
【００８０】
（実施の形態３）
本発明の実施の形態３におけるフィルタ装置は、上述した実施の形態２で述べた不都合を別の構成で解消したものであって、図２０に示す構成を有する。本発明の実施の形態３におけるフィルタ装置は、フィルタ処理部２００１と、実行判定結果記憶部２００２と、画素メモリ２００４と、制御部２００３と、退避メモリ２００５と、出力画素選択部２００６と、入力画素選択部２００７とを備える。
【００８１】
退避メモリ２００５は、第１ラインで更新される２Ｎ個のフィルタリング後画素データを記憶する。出力画素選択部２００６は、１次元目ブロック境界のフィルタリング時において、第１ラインで更新される２Ｎ個のデータ位置群にある画素データを更新するときには退避メモリ２００５から供給される画素データを選択し、それ以外のデータ位置にある画素データを更新するときにはフィルタ処理部２００１から供給される画素データを選択する。入力画素選択部２００７は、第１ラインのフィルタリング時において、隣接ブロック境界で更新される２Ｎ個のデータ位置群にある画素データを参照するときには、退避メモリ２００５から供給される画素データを選択し、それ以外の画素データを参照するときには、画素メモリ２００４から供給される画素データを選択する。制御部２００３は、複数個の実行判定結果算出ラインのフィルタリング後に実行判定結果記憶部２００２から受信する実行判定結果を参照して実行判定結果参照ラインのフィルタリング実行判定を行うように、画素メモリ２００４,退避メモリ２００５,出力画素選択部２００６,入力画素選択部２００７,および実行判定結果記憶部２００２に制御信号を送信する。さらに制御部２００３は、上記実行判定を行うためにフィルタ処理部２００１との間で別途、制御信号の送受信を行う。なお、以降の説明では、画素メモリ２００４は１つとし、画素メモリ２００４においてフィルタリング前後の画素データは同じ場所に格納されるとする。制御部２００３が制御するフィルタ処理単位のフィルタリングを示すフローチャートは、図４Ｃと同様である。
【００８２】
図２１は、ステップ４０１で制御部２００３が制御する、先行実行単位の全実行判定結果算出ラインのフィルタリングを示すフローチャートである。ステップ２１０１では、参照画素に第１ラインで更新される２Ｎ個のデータ位置群にある画素データを含むか否かを、制御部２００３が判定する。含むと判定するならば、ステップ２１０２に進み、含まないと判定するならばステップ２１０３に進む。ステップ２１０２では、入力画素選択部２００７が、当該ラインのフィルタリングに必要となる画素データ群において、第１ラインで更新される２Ｎ個のデータ位置群にある画素データ群は退避メモリ２００５から選択し、残りの画素データは画素メモリ２００４からの画素データを選択し、フィルタ処理部２００１に送信する。ステップ２１０３では、入力画素選択部２００７が、当該ラインのフィルタリングに必要な全画素データを、画素メモリ２００４から選択し、フィルタ処理部２００１に送信する。ステップ２１０４では、フィルタ処理部２００１が判定した実行判定結果が制御部２００３と実行判定結果記憶部２００２とに送信される。ステップ２１０５では、制御部２００３が、フィルタ処理部２００１から受信した実行判定結果が真であるか否かを判定し、真ならばステップ２１０６に進み、偽ならば当該ラインのフィルタリングを実施することなくこの処理を完了する。ステップ２１０６では、制御部２００３は当該ラインが第１ラインであるか否かを判定し、第１ラインであると制御部２００３が判定する場合にはステップ２１０７に進み、それ以外のラインであると判定する場合にはステップ２１０８に進む。ステップ２１０７では、フィルタ処理部２００１は、フィルタ演算が施された画素データを退避メモリ２００５に送信する。ステップ２１０８では、出力画素選択部２００６は、フィルタ処理部２００１が出力するフィルタ演算を施された画素データ群の中から、当該ラインのフィルタリングに必要な全画素データを選択して、画素メモリ２００４に送信する。
【００８３】
図２２は、ステップ４０２で制御部２００３が制御する、先行実行単位の全実行判定結果参照ラインのフィルタリングを示すフローチャートである。ステップ２２０１では、当該セグメント内の全実行判定結果が実行判定結果記憶部２００２から制御部２００３に送信される。ステップ２２０２では、制御部２００３は、受信した全実行判定結果が当該セグメントのフィルタ実施条件を満たすか否かを判定し、条件を満たすと制御部２００３が判定するならば、ステップ２２０３にて当該セグメントの全実行判定結果参照ラインのフィルタリングが実施され、条件を満たさないと制御部２００３が判定するならば、当該セグメントのフィルタリングを実施することなくこの処理を完了する。
【００８４】
図２３は、ステップ２２０３で制御部２００３が制御する、セグメント内の全実行判定結果参照ラインのフィルタリングを示すフローチャートである。ステップ２３０１では、入力画素選択部２００７が、当該ラインのフィルタリングに必要となる全画素データを、画素メモリ２００４から選択してフィルタ処理部２００１に送信する。ステップ２３０２では、フィルタ処理部２００１が実行判定結果を算出したうえで、その実行判定結果を制御部２００３に送信する。ステップ２３０３では、制御部２００３が、参照画素データは第１ラインで更新される２Ｎ個のデータ位置群にある画素データ群を含むか否かを判定する。含むと判定する場合はステップ２３０４に進み、含まないと判定する場合はステップ２３０５に進む。ステップ２３０４では、制御部２００３が、フィルタ処理部２００１から受信した実行判定結果が真であるかどうかを判定し、真であると判定する場合はステップ２３０６に進み、偽であると判定する場合はステップ２３０７に進む。ステップ２３０５では、制御部２００３が、フィルタ処理部２００１から受信した実行判定結果が真であるか否かを判定する。真であると判定する場合はステップ２３０８に進み、偽であると判定する場合は当該ラインのフィルタリングを実施することなくこの処理を完了する。ステップ２３０６,２３０７では、出力画素選択部２００６が、当該ラインのフィルタリングに必要な画素データを次のように選択して画素メモリ２００４に送信する。具体的には第１ラインで更新される２Ｎ個のデータ位置群にある画素データ群は退避メモリ２００５から選択され、残りの画素データはフィルタ処理部２００１から選択される。ただし、ステップ２３０７では、画素メモリ２００４における画素データは、フィルタ処理部２００１からの画素データで更新されない。なお、ステップ２３０１,２３０８は、それぞれステップ２１０３,２１０８と同様である。
【００８５】
以降、適用する２次元フィルタが前述した実施の形態２と同様である場合を例にして、本発明の実施の形態３におけるフィルタ装置の動作を説明する。輝度成分のフィルタリングにおいては、例えば実施の形態２と同様、図１４に示す順序でその処理が実施されるように、制御部２００３が制御信号を出力する。図２４は図１４に示す順序でフィルタリングが実施された場合の波形図である。各種レイテンシは図３２と同様としている。この例では、実行判定結果算出ライン１の実行判定結果が、同一セグメントの実行判定結果参照ライン９〜１１にフィルタリングするより前サイクルの時点で算出される。そのため、パイプライン処理のスループットが低下しない。また、第１ライン３,４,７,８のフィルタリング時には、データ位置Ｐ４,Ｐ５の画素データ（図２９参照）を退避メモリ２００５に送信する。また、１次元目ブロック境界のライン９,１１上の画素データ群（参照画素として第１ラインで更新するデータ位置の画素データを含む）のフィルタリング時には、出力画素選択部２００６は、データ位置Ｐ３の画素データ（図２９参照）として、退避メモリ２００５からの画素データを選択して画素メモリ２００４に送信し、残りの画素データとして、フィルタ処理部２００１からの画素データを選択して画素メモリ２００４に送信する。また、第１ライン７,８上の画素データ群（参照画素に隣接する第１ラインで更新する位置の画素データを含む）のフィルタリング時には、入力画素選択部２００７はデータ位置Ｐ８の画素データ（図２９参照）として、退避メモリ２００５からの画素データを選択してフィルタ処理部２００１に送信し、残りの画素データとして画素メモリ２００４からの画素データを選択してフィルタ処理部２００１に送信する。したがって、先行実行単位をフィルタ処理単位における水平ブロック境界と垂直ブロック境界との全部にしても、規格通りの順序でフィルタリングした場合と同様の画像が得られる。
【００８６】
画素メモリ２００４の最小記憶ビット数は、フィルタ処理単位が８ｘ８個の画素からなる画素ブロックなので、１０２４となる。また、実行判定結果記憶部２００２は、図２４から８つの実行判定結果を書込む間に１つの実行判定結果を読出すので、記憶ビット数は７となる。また、退避メモリ２００５は、第１ライン３,４のデータ位置Ｐ４,Ｐ５の画素データ（図２９参照）と、第１ライン７,８のデータ位置Ｐ５の画素データ（図２９参照）を記憶しているので、記憶ビット数は８ｘ６＝４８となる。
【００８７】
以上、本発明の実施の形態３におけるフィルタ装置によれば、適用する２次元フィルタが（条件２）を満たす場合であっても、フィルタ処理単位における水平ブロック境界全部と垂直ブロック境界全部とに先行実行単位を設定することが可能となる。また、退避メモリ２００５で記憶する画素データは第１ラインで更新される２Ｎ個の画素データのみで済むので、構成要素の実装に要する基板等の面積増加は僅かとなる。
【００８８】
なお、実施の形態３で適用した２次元フィルタは、以下の（条件３）を満たし、退避メモリ内の隣接第１ラインの更新画素データを参照する必要があるため、入力画素選択部２００７が必要になる。
【００８９】
（条件３）
第１ラインのフィルタリングの参照画素に、隣接ブロック境界のフィルタリングで更新した画素データを含む。
【００９０】
しかしながら、（条件３）を満たさないような２次元フィルタ（例えば、実施の形態３で適用した２次元フィルタをＭ＝１にしたものなど）であれば、入力画素選択部２００７が不要となり、常に画素メモリ２００４からの画素データをフィルタ処理部２００１に送信すればよい。
【００９１】
（実施の形態４）
処理サイクル数をさらに減少させるために、前述した実施の形態１のフィルタ装置において、実行判定結果算出ラインをフィルタリングする並列度を上げることが考えられる。しかしながら、そうすると実行判定結果算出レイテンシとフィルタ結果算出レイテンシとをパイプライン処理で隠蔽できるサイクル数が減少してしまう。
【００９２】
図２５は実施の形態２及び３で適用したものと同様の２次元フィルタで、実行判定結果算出ラインをフィルタリングする並列度を２にした例である。この場合、先に実行判定結果算出ラインをフィルタリングするのに要するサイクル数は８から４に減少する。また、１（２）番目のフィルタリングで更新した画素データを３（４）番目で参照していることがわかる。したがって、実行判定結果算出ラインをフィルタリングする並列度を２にして、フィルタリング順序を図１４から図２５にすると、パイプライン処理で隠蔽できる、実行判定結果算出レイテンシとフィルタ結果算出レイテンシは、７から３に、３から１にそれぞれ減少してしまう。
【００９３】
このような不都合を解消したのが本発明の実施の形態４のフィルタ装置である。実施の形態４は図２６に示す構成を有する。実施の形態４のフィルタ装置は、記憶装置２６０３（図３の実施の形態１のフィルタ装置の記憶装置３０１と同様）、実行判定結果記憶部２６０１（図３の実施の形態１のフィルタ装置の実行判定結果記憶部３０４と同様）,制御部２６０２,第１フィルタ処理部２６０４,および第２フィルタ処理部２６０５を備える。
【００９４】
第１フィルタ処理部２６０４は記憶装置２６０３との間で画素データを送受信しながら実行判定結果算出ラインのフィルタリングを実施する。第２フィルタ処理部２６０５は記憶装置２６０３との間で画素データを送受信しながら実行判定結果参照ラインのフィルタリングを実施する。制御部２６０２は、第１フィルタ処理部２６０４で複数個の実行判定結果算出ラインをフィルタリングさせた後に、実行判定結果記憶部２６０１から受信する実行判定結果を参照して以下の制御を行う。すなわち、参照結果がフィルタ実行判定を満たす場合、制御部２６０２は、第２フィルタ処理部２６０５で実行判定結果参照ラインのフィルタリングが実施されるように、
・記憶装置２６０３と実行判定結果記憶部２６０１とに制御信号を送信し、
・第１フィルタ処理部２６０４と第２フィルタ処理部２６０５との間で制御信号の送受信を行う。
【００９５】
なお、以降の説明では記憶装置２６０３は１つとし、フィルタリング前後の画素データが同じ場所に格納されるとする。
【００９６】
制御部２６０２が制御するフィルタ処理単位のフィルタリングを示すフローチャートは、図４Ｃと同様である。先行実行単位の全実行判定結果算出ラインのフィルタリング（ステップ４０１で制御部２６０２によって制御される）を示すフローチャートは、図５のフィルタ処理部３０２を第１フィルタ処理部２６０４に置き換え、制御部３０３を制御部２６０２に置き換えたものと同様である。
【００９７】
先行実行単位の全実行判定結果参照ラインのフィルタリング（ステップ４０２で制御部２６０２によって制御される）を示すフローチャートは、図６と同様である。
【００９８】
セグメント内の全実行判定結果参照ラインのフィルタリング（ステップ６０３で制御部２６０２によって制御される）を示すフローチャートは、図７のフィルタ処理部３０２を第２フィルタ処理部２６０５に置き換え、制御部３０３を制御部２６０２に置き換えたものと同様である。
【００９９】
以降、本発明の実施の形態４におけるフィルタ装置の動作を、適用する２次元フィルタが以下で定義される場合を例にして説明する。フィルタ実施条件はセグメントの実行判定結果算出ラインの全実行判定結果が真であることとする。
・フィルタ処理単位：８ｘ８個の画素からなる画素ブロック
・フィルタリング順序：水平−＞垂直を８ｘ８個の画素からなる画素ブロック境界から実施される、
・その他の各パラメータ：Ｍ＝１,Ｎ＝１,Ｂ＝４,Ａ＝１,Ｌ（１）＝３
輝度成分のフィルタリングにおいては、例えば図２７に示すように、制御部２６０２が制御信号を出力する。第１フィルタ処理部２６０４はブロック境界（１）〜（４）の８セグメントの実行判定結果算出ラインを先に（１〜８番目）にフィルタリングする。その後、実行判定結果算出ラインの実行判定結果に応じて、第２フィルタ処理部２６０５が、８セグメントの実行判定結果参照ライン（１'〜２４'番目）をフィルタリングする。記載の無い１０'〜２４'番目の実行判定結果算出ラインは、各セグメントを１'〜３'番目と同様の順序でフィルタリングされる。
【０１００】
図２８は図２７に示す順序でフィルタリングが実施された状態における波形図である。各種レイテンシは図３２と同様としている。この例では、実行判定結果算出ライン２の実行判定結果は偽であるので、同一セグメントの実行判定結果参照ライン４',５',６'のフィルタリングは無駄なくスキップされる。また、実行判定結果算出ラインのフィルタリングを行なうのは第１フィルタ処理部２６０４のみであるので、実行判定結果算出レイテンシを隠蔽できるサイクル数は減少していない。また、第２フィルタ処理部２６０５は実行判定結果参照ラインのみをフィルタリングするので、第１フィルタ処理部２６０４と並列にフィルタリング処理が可能となる。また、第１フィルタ処理部２６０４から実行判定結果記憶部２６０１に書き込まれた実行判定結果を、第１のフィルタ処理部２６０４と並列にフィルタリング処理を行っている第２フィルタ処理部２６０５が順次読出していくので、実行判定結果の保持期間と保持量とが減少する。
【０１０１】
フィルタ処理単位が８ｘ８画素ブロックなので、記憶装置２６０３の最小記憶ビット数は、８ｘ（１２ｘ１２−４ｘ４）＝１０２４となる。また、実行判定結果記憶部２６０１は、図２８から書込まれる実行判定結果が全て真であれば、８回の実行判定結果書込みの内、３回の実行判定結果読出しが同時に発生するので、記憶ビット数は８−３＝５となる。
【０１０２】
以上、本発明の実施の形態４におけるフィルタ装置によれば、実行判定結果算出レイテンシを隠蔽できるサイクル数を減らさずに並列処理ができる。また、実行判定結果記憶部における、実行判定結果の保持期間と保持量を減らすことができる。
【０１０３】
なお、実施の形態１〜４では、輝度成分のフィルタリング制御例のみを用いて説明したが、色差成分と輝度成分のフィルタリングは同じであり、また色差フォーマットが４：２：０等の場合でも、同一フィルタ処理単位におけるブロック境界とライン数が異なるのみなので、色差成分に対しても同様のフィルタリング制御が可能である。
【０１０４】
なお、実施の形態１と実施の形態４とでは、記憶装置３０１,２６０３は１つで、フィルタリング前後の画素データが同じ場所に格納されるとして説明したが、画素データを格納すべき記憶装置上の場所または記憶装置がフィルタリング前後で別々であってもよい。この場合、あるセグメントの実行判定結果算出ラインの実行判定結果が偽の場合に、同一セグメント内の実行判定結果参照ラインのフィルタリングは実施しないが、画素データのコピーが実施される。画素データのコピーは記憶装置３０１,２６０３内部で実施されても良いし、フィルタ処理部３０２,２６０４,２６０５を経由して実施されてもよい。
【０１０５】
なお、実施の形態２と実施の形態３とでは、画素メモリ１５０４,２００４は１つで、フィルタリング前後の画素データが同じ場所に格納されるとして説明したが、画素データを格納すべき画素メモリ上の場所または画素メモリがフィルタリング前後で別々であってもよい。この場合、あるセグメントの実行判定結果算出ラインの実行判定結果が偽の場合、同一セグメント内の実行判定結果参照ラインのフィルタリングは実施しないが、画素データのコピーが実施される。画素データのコピーは画素メモリ１５０４,２００４内部で実施されても良いし、フィルタ処理部１５０１,２００１を経由して実施されてもよい。
【産業上の利用可能性】
【０１０６】
本発明のフィルタ装置は、画像符号化装置及び画像復号装置に適用可能である。
【符号の説明】
【０１０７】
３０１,２６０３  １つ以上の記憶装置
３０２,１５０１,２００１  フィルタ処理部
３０３,１５０３,２００３,２６０２  制御部
３０４,１５０２,２００２,２６０１  実行判定記憶部
４０１  全実行判定結果算出ラインフィルタリングステップ
４０２  全実行判定結果参照ラインフィルタリングステップ
１５０４,２００４  １つ以上の画素メモリ
１５０５  複製メモリ
１５０６  画素選択部
２００５  退避メモリ
２００６  出力画素選択部
２００７  入力画素選択部
２６０４  第１フィルタ処理部
２６０５  第２フィルタ処理部
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フィルタリング領域に含まれる任意のデータ位置におけるデータに、フィルタリング順序および少なくとも一部のフィルタリングの実行自体に依存関係を有するフィルタリングを実施し、かつ当該任意のデータ位置におけるフィルタリングの実行判定を行うフィルタ処理部と、
前記フィルタ処理部によるフィルタリングの制御を行なう制御部と、
を備え、
前記制御部は、前記任意のデータ位置の一つである第２データ位置のフィルタリングの実行判定に必要となる第１データ位置群におけるフィルタリングを前記フィルタ処理部で実施させたうえで前記第１データ位置群において前記フィルタ処理部が実施する実行判定の結果が真なら、前記第２データ位置におけるフィルタリングを前記フィルタ処理部で実行させる、
フィルタ装置。
【請求項２】
前記フィルタ処理部の実行判定結果を記憶する実行判定結果記憶部を、
さらに備え、
前記制御部は、前記第１データ位置群における前記実行判定結果を前記実行判定結果記憶部に記憶させたうえで、前記実行判定結果記憶部から前記第１データ位置群における前記実行判定結果を読み出し、読み出した前記実行判定結果が真なら、前記第２データ位置における前記フィルタ処理部によるフィルタリングを実行させる、
請求項１のフィルタ装置。
【請求項３】
前記実行判定結果記憶部は、Ｅ箇所のデータ位置（Ｅ＞＝２となる整数）における前記フィルタ処理部の前記実行判定結果を記憶し、
前記第１データ位置群におけるデータ位置数Ｘは、Ｘ＞＝Ｅとなる整数であり、
前記Ｅは、前記Ｘと、前記実行判定結果記憶部に対する実行判定結果の送信と受信が同時に発生する回数ＲＷ（ＲＷ＞＝０となる整数）とを変数とする式（Ｅ＝Ｘ−ＲＷ）で表される、
請求項２のフィルタ装置。
【請求項４】
前記フィルタリングは、第１方向にフィルタリングを実施した後、前記第１方向に直交する第２方向にフィルタリングを実施する２次元フィルタリングである、
請求項１のフィルタ装置。
【請求項５】
前記２次元フィルタリングはデブロッキングフィルタリングである、
請求項４のフィルタ装置。
【請求項６】
前記デブロッキングフィルタリングはＶＣ−１規格のものである、
請求項５のフィルタ装置。
【請求項７】
前記第１方向は水平方向であり、前記第２方向は垂直方向である、
請求項４のフィルタ装置。
【請求項８】
前記フィルタリング領域は、４Ｍ×４Ｎ個（Ｍ,Ｎは１以上の整数）の前記データの領域である、
請求項１のフィルタ装置。
【請求項９】
前記データは、画素データであり、
前記データ位置は前記画素データにおけるデータ位置である、
請求項１のフィルタ装置。
【請求項１０】
前記制御部は、前記第１方向の前記第１データ位置群における前記データと前記第２方向の前記第１データ位置群における前記データとの全てが先にフィルタリングされるように、前記フィルタ処理部を制御する、
請求項４のフィルタ装置。
【請求項１１】
前記制御部は、前記第１方向の前記第１データ位置群における前記データの全て、または前記第２方向の前記第１データ位置群における前記データの全てが先にフィルタされるように、前記フィルタ処理部を制御する、
請求項４のフィルタ装置。
【請求項１２】
前記制御部は、二次元配置された複数の前記データからなるブロック単位とその周囲に位置する複数の隣接ブロック単位との間にあるブロック境界群のうちの１つにおいて、全ての前記第１データ位置における前記データを先にフィルタリングするように制御する、
請求項９のフィルタ装置。
【請求項１３】
前記フィルタリング領域の前記データを記憶する１つ以上の記憶装置と、
前記第２方向の前記第１データ位置群に含まれる複数の第１データ位置における前記データを記憶する複製メモリと、
前記記憶装置で記憶している前記データと前記複製メモリで記憶している前記データとを選択して前記フィルタ処理部に出力するデータ選択部と、
をさらに備える、
請求項１０のフィルタ装置。
【請求項１４】
前記フィルタリング領域の前記データを記憶する１つ以上の記憶装置と、
前記第２方向の前記第１データ位置群に含まれる複数の第１データ位置のデータに前記フィルタ処理部がフィルタリングを実行した結果であるフィルタリング後データを記憶する退避メモリと、
前記フィルタ処理部の出力と前記退避メモリで記憶している前記フィルタリング後データとを選択し前記記憶装置に出力する出力データ選択部と、
をさらに備える、
請求項１０のフィルタ装置。
【請求項１５】
前記フィルタ処理部は、
前記第１データ位置群のフィルタリングを行なう第１フィルタ処理部と、
前記第２データ位置のフィルタリングを行なう第２フィルタ処理部と、
を備える、
請求項１のフィルタ装置。
【請求項１６】
前記複製メモリによって前記データが記憶される前記第１のデータ位置は、前記フィルタ処理部のフィルタリングによってデータが更新されるデータ位置であり、
前記データ選択部は、
前記複製メモリに前記データが記憶されているデータ位置では、前記複製メモリに記憶されている前記データを選択し、前記複製メモリに前記データが記憶されていないデータ位置では、前記記憶装置に記憶されている前記データを選択する、
請求項１３のフィルタ装置。
【請求項１７】
前記記憶装置で記憶している前記データと前記退避メモリで記憶している前記フィルタリング後データとを選択して前記フィルタ処理部に出力する入力データ選択部をさらに備える、
請求項１４のフィルタ装置。
【請求項１８】
前記退避メモリによって前記フィルタリング後データが記憶される前記第１のデータ位置は、前記フィルタ処理部のフィルタリングによってデータが更新されるデータ位置であり、
前記入力データ選択部は、
前記第２方向の前記第１データ位置におけるフィルタリング時に、前記退避メモリに前記フィルタリング後データが記憶されているデータ位置では、前記退避メモリに記憶されている前記フィルタリング後データを選択し、前記退避メモリに前記フィルタリング後データが記憶されていないデータ位置では、前記記憶装置に記憶されている前記データを選択する、
請求項１７のフィルタ装置。
【請求項１９】
前記退避メモリによって前記フィルタリング後データが記憶される前記第１のデータ位置は、前記フィルタ処理部でフィルタリングによってデータが更新されるデータ位置であり、
前記出力データ選択部は、
前記退避メモリに前記フィルタリング後データが記憶されているデータ位置では、前記退避メモリに記憶されている前記フィルタリング後データを選択し、前記退避メモリに前記フィルタリング後データが記憶されていないデータ位置では、前記フィルタリング処理部の出力を選択する、
請求項１４のフィルタ装置。
【請求項２０】
前記制御部は、
前記フィルタリング後データが前記退避メモリに記憶された前記第２方向の前記第１データ位置におけるフィルタリング時には、前記フィルタリング後データが前記退避メモリに書込まれ、前記フィルタリング後データが前記退避メモリに記憶された前記第２方向の前記第１データ位置以外のデータ位置におけるフィルタリング時には、前記フィルタリング後データが前記記憶装置に書込まれるように、前記フィルタ処理部を制御する、
請求項１４のフィルタ装置。
【請求項２１】
前記制御部は、
前記実行判定結果が真なら、前記第２フィルタ処理部がフィルタリングを実施するように制御する、
請求項１５のフィルタ装置。
【請求項２２】
前記フィルタ処理部は、前記データと１つ以上の閾値との比較に基づいて前記フィルタリングの実行判定を行い、当該実行判定の結果が真なら、前記データに前記フィルタリングを実施する、
請求項１のフィルタ装置。
【請求項２３】
前記１つ以上の閾値は、前記フィルタ処理部が保持する、もしくは前記制御部から前記フィルタ処理部に与えられる、
請求項２２のフィルタ装置。
【請求項２４】
前記データは、画像データにおける一つのデータ単位となる画素データであり、
前記データ位置は前記画像データにおけるデータ位置であり、
前記第１データ位置は、前記画像データのセグメントにおける基端ラインから３ライン目に位置するデータ位置である、
請求項４のフィルタ装置。
【請求項２５】
前記第２データ位置は、前記セグメントにおける基端ラインから１,２,４ライン目に位置するデータ位置である、
請求項２４のフィルタ装置。
【請求項２６】
フィルタリング領域に含まれる任意のデータ位置におけるデータに、フィルタリング順序および少なくとも一部のフィルタリングの実行自体に依存関係を有するフィルタリングを実施するフィルタ方法であって、
前記任意のデータ位置の一つである第２データ位置のフィルタリングの実行判定に必要となる第１データ位置群における前記データに実行判定を含むフィルタリングを実施する第１ステップと、
前記第１ステップの実行判定の結果が真なら前記第２データ位置における前記データのフィルタリングを実行する第２ステップと、
を含むフィルタ方法。
【請求項２７】
前記第１ステップでは、前記第１データ位置群における前記実行判定結果を記憶し、
前記第２ステップでは、前記第１ステップで記憶した前記第１データ位置群における前記実行判定結果を読み出し、読み出した前記実行判定結果が真なら、前記第２データ位置におけるフィルタリングを実行する、
請求項２６のフィルタ方法。
【請求項２８】
前記第１ステップでは、Ｅ箇所のデータ位置（Ｅ＞＝２となる整数）における前記実行判定結果を記憶し、
前記第１データ位置群におけるデータ位置数Ｘは、Ｘ＞＝Ｅとなる整数であり、
前記Ｅは、前記Ｘと、前記実行判定結果記憶部に対する実行判定結果の送信と受信が同時に発生する回数ＲＷ（ＲＷ＞＝０となる整数）とを変数とする式（Ｅ＝Ｘ−ＲＷ）で表される、
請求項２６のフィルタ方法。
【請求項２９】
前記フィルタリングは第１方向にフィルタリングを実施した後、前記第１方向に直交する第２方向にフィルタリングを実施する２次元フィルタである、
請求項２６のフィルタ方法。
【請求項３０】
前記２次元フィルタはデブロッキングフィルタである、
請求項２９のフィルタ方法。
【請求項３１】
前記デブロッキングフィルタはＶＣ−１規格のものである、
請求項３０のフィルタ方法。
【請求項３２】
第１方向は水平方向であり、前記第２方向は垂直方向である、
請求項２９のフィルタ方法。
【請求項３３】
前記データは、画素データであり、
前記データ位置は前記画素データのデータ位置である、
請求項２６のフィルタ方法。
【請求項３４】
前記第１ステップでは、前記第１方向の前記第１データ位置群における前記データと前記第２方向の前記第１データ位置群における前記データとの全てを先にフィルタリングする、
請求項２９のフィルタ方法。
【請求項３５】
前記第１ステップでは、前記第１方向の前記第１データ位置群における前記データの全て、または前記第２方向の前記第１データ位置群における前記データの全てを先にフィルタリングする、
請求項２９のフィルタ方法。
【請求項３６】
前記第１ステップでは、二次元配置された複数の前記データからなるブロック単位とその周囲に位置する複数の隣接ブロック単位との間にあるブロック境界群のうちの１つにおいて、全ての前記第１データ位置における前記データを先にフィルタリングする、
請求項３３のフィルタ方法。
【請求項３７】
前記第１ステップでは、前記第２方向の前記第１データ位置群に含まれる複数の第１データ位置における前記データを複製し、
前記第２ステップでは、前記複数の第２データ位置におけるフィルタリングを、前記第１ステップで実施した複製結果に基づいて実施する、
請求項３４のフィルタ方法。
【請求項３８】
前記第１ステップでは、前記第２方向の前記第１データ位置群に含まれかつ前記実行判定の結果が真となるデータ位置において、フィルタリング後データを記憶し、
前記第２ステップでは、前記第２データ位置における前記データを前記フィルタリングにより更新する際、前記第１ステップでフィルタリング後データが記憶されたデータ位置では、記録している前記フィルタリング後データを、前記フィルタリングにより更新されたデータとして扱う、
請求項３４のフィルタ方法。
【請求項３９】
前記第１ステップで前記実行判定結果が記憶され次第、前記第２ステップを並列に実行する、
請求項２６のフィルタ方法。
【請求項４０】
前記第１ステップでは、前記データと１つ以上の閾値との比較に基づいて前記フィルタリングの実行判定を算出する、
請求項２６のフィルタ方法。
【請求項４１】
前記データは、画像データにおける一つのデータ単位となる画素データであり、
前記データ位置は前記画像データにおけるデータ位置であり、
前記第１データ位置は、前記画像データのセグメントにおける基端ラインから３ライン目に位置するデータ位置である、
請求項２９のフィルタ方法。
【請求項４２】
前記第２位置は、前記セグメントにおける基端ラインから１,２,４ライン目に位置するデータ位置である、
請求項４１のフィルタ方法。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2010035403.tif 000039
【図２】
2010035403.tif 000040
【図３】
2010035403.tif 000041
【図４Ａ】
2010035403.tif 000042
【図４Ｂ】
2010035403.tif 000043
【図４Ｃ】
2010035403.tif 000044
【図５】
2010035403.tif 000045
【図６】
2010035403.tif 000046
【図７】
2010035403.tif 000047
【図８】
2010035403.tif 000048
【図９】
2010035403.tif 000049
【図１０】
2010035403.tif 000050
【図１１】
2010035403.tif 000051
【図１２】
2010035403.tif 000052
【図１３】
2010035403.tif 000053
【図１４】
2010035403.tif 000054
【図１５】
2010035403.tif 000055
【図１６】
2010035403.tif 000056
【図１７】
2010035403.tif 000057
【図１８】
2010035403.tif 000058
【図１９】
2010035403.tif 000059
【図２０】
2010035403.tif 000060
【図２１】
2010035403.tif 000061
【図２２】
2010035403.tif 000062
【図２３】
2010035403.tif 000063
【図２４】
2010035403.tif 000064
【図２５】
2010035403.tif 000065
【図２６】
2010035403.tif 000066
【図２７】
2010035403.tif 000067
【図２８】
2010035403.tif 000068
【図２９】
2010035403.tif 000069
【図３０】
2010035403.tif 000070
【図３１】
2010035403.tif 000071
【図３２】
2010035403.tif 000072
【図３３Ａ】
2010035403.tif 000073
【図３３Ｂ】
2010035403.tif 000074
【国際調査報告】
2010035403.tif 000075
2010035403.tif 000076