(57)【特許請求の範囲】
【請求項１】
ブロックベースの予測符号化を行い空間解像度の異なるフレームを処理対象とするスケーラブル符号化方式で用いられるデブロッキング処理方法であって、
現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当しないのか否かを判断する過程と、
現階層のブロック境界位置に対応する下位階層信号が平坦な画像領域であることを示しているのか否かを判断する過程と、
現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当せず、かつ、平坦な画像領域であることを示している場合に、現階層のブロック境界位置に対してデブロッキング処理を実行する過程とを備えることを、
特徴とするデブロッキング処理方法。
【請求項２】
請求項１に記載のデブロッキング処理方法において、
上記デブロッキング処理を実行する過程では、下位階層信号を用いて、現階層のブロック境界の両側における階層間誤差を算出し、その階層間誤差が小さなものとなる方の信号に合わせる形でデブロッキング処理を実行することを、
特徴とするデブロッキング処理方法。
【請求項３】
請求項１に記載のデブロッキング処理方法において、
上記デブロッキング処理を実行する過程では、現階層のブロック境界の両側における信号を用いて、現階層のブロック境界位置に対してデブロッキング処理を実行することを、
特徴とするデブロッキング処理方法。
【請求項４】
請求項３に記載のデブロッキング処理方法において、
上記デブロッキング処理を実行する過程では、現階層のブロック境界の両側における信号の平均値を算出し、それらの平均値を用いて、現階層のブロック境界におけるエッジの形状を規定の関数形状に変形する形でデブロッキング処理を実行することを、
特徴とするデブロッキング処理方法。
【請求項５】
請求項４に記載のデブロッキング処理方法において、
上記デブロッキング処理を実行する過程では、下位階層信号の量子化ステップ幅が大きい場合に、弱いフィルタリングが施されることになるように上記関数形状を決定することを、
特徴とするデブロッキング処理方法。
【請求項６】
ブロックベースの予測符号化を行い空間解像度の異なるフレームを処理対象とするスケーラブル符号化方式で用いられるデブロッキング処理方法であって、
現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当しないのか否かを判断する過程と、
現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当しない場合に、下位階層信号の量子化ステップ幅が小さいほど、より強いフィルタリングが施されることになるようにと、下位階層信号の量子化ステップ幅に応じたデブロッキングフィルタ強度を決定する過程と、
現階層のブロック境界位置に対して、上記決定したデブロッキングフィルタ強度に応じたデブロッキング処理を実行する過程とを備えることを、
特徴とするデブロッキング処理方法。
【請求項７】
ブロックベースの予測符号化を行い空間解像度の異なるフレームを処理対象とするスケーラブル符号化方式で用いられるデブロッキング処理方法であって、
現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当しないのか否かを判断する過程と、
現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当しない場合に、下位階層信号の平坦度が平坦を示すほど、より強いフィルタリングが施されることになるようにと、下位階層信号の平坦度に応じたデブロッキングフィルタ強度を決定する過程と、
現階層のブロック境界位置に対して、上記決定したデブロッキングフィルタ強度に応じたデブロッキング処理を実行する過程とを備えることを、
特徴とするデブロッキング処理方法。
【請求項８】
請求項６または７に記載のデブロッキング処理方法において、
上記デブロッキングフィルタ強度を決定する過程では、Ｈ．２６４／ＡＶＣで定義されているデブロッキングフィルタ強度の中から、現階層のブロック境界位置に施すデブロッキングフィルタの強度を決定することを、
特徴とするデブロッキング処理方法。
【請求項９】
請求項６または７に記載のデブロッキング処理方法において、
上記デブロッキングフィルタ強度を決定する過程では、Ｈ．２６４／ＡＶＣで定義されているデブロッキングフィルタ強度に１つ以上のデブロッキングフィルタ強度を追加することで定義されるデブロッキングフィルタ強度の中から、現階層のブロック境界位置に施すデブロッキングフィルタの強度を決定することを、
特徴とするデブロッキング処理方法。
【請求項１０】
ブロックベースの予測符号化を行い空間解像度の異なるフレームを処理対象とするスケーラブル符号化方式で用いられるデブロッキング処理装置であって、
現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当しないのか否かを判断する手段と、
現階層のブロック境界位置に対応する下位階層信号が平坦な画像領域であることを示しているのか否かを判断する手段と、
現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当せず、かつ、平坦な画像領域であることを示している場合に、現階層のブロック境界位置に対してデブロッキング処理を実行する手段とを備えることを、
特徴とするデブロッキング処理装置。
【請求項１１】
ブロックベースの予測符号化を行い空間解像度の異なるフレームを処理対象とするスケーラブル符号化方式で用いられるデブロッキング処理装置であって、
現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当しないのか否かを判断する手段と、
現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当しない場合に、下位階層信号の量子化ステップ幅が小さいほど、より強いフィルタリングが施されることになるようにと、下位階層信号の量子化ステップ幅に応じたデブロッキングフィルタ強度を決定する手段と、
現階層のブロック境界位置に対して、上記決定したデブロッキングフィルタ強度に応じたデブロッキング処理を実行する手段とを備えることを、
特徴とするデブロッキング処理装置。
【請求項１２】
ブロックベースの予測符号化を行い空間解像度の異なるフレームを処理対象とするスケーラブル符号化方式で用いられるデブロッキング処理装置であって、
現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当しないのか否かを判断する手段と、
現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当しない場合に、下位階層信号の平坦度が平坦を示すほど、より強いフィルタリングが施されることになるようにと、下位階層信号の平坦度に応じたデブロッキングフィルタ強度を決定する手段と、
現階層のブロック境界位置に対して、上記決定したデブロッキングフィルタ強度に応じたデブロッキング処理を実行する手段とを備えることを、
特徴とするデブロッキング処理装置。
【請求項１３】
請求項１ないし９のいずれか１項に記載のデブロッキング処理方法をコンピュータに実行させるためのデブロッキング処理プログラム。
【請求項１４】
請求項１ないし９のいずれか１項に記載のデブロッキング処理方法をコンピュータに実行させるためのデブロッキング処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロックベースの予測符号化を行い空間解像度の異なるフレームを処理対象とするスケーラブル符号化方式を実装する映像符号化装置や映像復号装置で用いられるデブロッキング処理方法及びその装置と、そのデブロッキング処理方法の実現に用いられるデブロッキング処理プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体とに関する。
【背景技術】
【０００２】
近年、多様化するネットワーク環境・端末環境などに対応するためのスケーラブル符号化が注目を集めている。
【０００３】
スケーラブル符号化では、画像信号を階層的に分割し、各階層毎に符号化が行われる。階層分割の方法としては、（イ）空間周波数に関する帯域分割、（ロ）時間周波数に関する帯域分割などがある。（イ）としては wavelet分割（例えば、非特許文献１参照）が代表例であり、（ロ）としては Motion Compensation Temporal Filtering(ＭＣＴＦ)(例えば、非特許文献２参照）が代表例である。
【０００４】
時間・空間・ＳＮＲスケーラビリティに対応した符号化方法として、Scalable Video Coding(ＳＶＣ）が注目されている。
【０００５】
下記に示す非特許文献３で示されたJoint Scalable Video Model（ＪＳＶＭ）は、ＡＶＣ（Ｈ.264／ＡＶＣ）とＭＣＴＦとをベースとした符号化方式であり、時間方向の片方向予測・両方向予測、フレーム内の空間的な予測、下位階層の補間信号を用いた階層間予測を用いている。
【０００６】
ＪＳＶＭにおける予測方式は、いずれもブロックベースの方式であるため、原理上、ブロック歪みの発生を内在する。即ち、ブロック歪みの低減が復号画像の画質向上には不可欠となる。そこで、ＪＳＶＭでは、デブロックキングフィルタによるブロック歪みの低減が行われており、各階層毎に独立にＡＶＣのデブロッキングフィルタを使用している。
【０００７】
この際、デブロッキング処理に先立ち、空間的な位置（マクロブロック境界か否か）、符号化モード（イントラ符号化されたか否か）、直交変換係数の有無、参照フレームの枚数・動きベクトルの差異等によりデブロッキングフィルタの強度を５通りに設定する（ＡＶＣと同様）。この強度を表すのはＢｓ値と呼ばれるパラメータであり、０，１，２，３，４のいずれかの値をとる。
【０００８】
しかし、ＪＳＶＭにおいて利用されるデブロックキングフィルタは、ＡＶＣにおけるデブロックキングフィルタの流用であり、各階層内に閉じたデブロッキング処理に留まっている。
【非特許文献１】"A theory for multiresolution signal decomposition: the wavelet representation", S.G.Mallat, IEEE Trans. Pattern Analysis and Machine Intelligence, Vol.11, No.7, pp.674-693, July.1989
【非特許文献２】"Three-dimensional subband coding with motion compensation", J.R.Ohm, IEEE Trans. Image Processing, Vol.3, No.5, pp.559-571, Sept.1994
【非特許文献３】J.Reichel, M.Wien and H.Schwarz, "Joint Scalable Video Model(JSVM) 2.0 Reference Encoding Algorithm Description", ISO/IEC JTC 1/SC 29/WG 11N 7084, April 2005, Buzan, Korea
【発明の開示】
【発明が解決しようとする課題】
【０００９】
前述のとおり、ＪＳＶＭにおけるデブロックキングフィルタは、単一の時間・空間解像度の信号に対して、適用されることを想定して設計されたフィルタである。このため、このデブロックキングフィルタは異なる時間・空間解像度の階層から構成される信号に対して適用する場合、階層間の相関を利用できるようには、設計されていない。
【００１０】
つまり、ＪＳＶＭにおけるデブロックキングフィルタは、多階層の信号に対するデブロッキングフィルタとしては最適化されておらず、ブロック歪み低減効果に改良の余地が残されている。
【００１１】
本発明はかかる事情に鑑みてなされたものであって、異なる時間・空間解像度の階層から構成される信号に対するブロック歪み低減処理において、階層間の相関を利用してブロック境界部の予測誤差を抑制する新たなデブロッキングフィルタの設計法を確立することを目的とする。
【課題を解決するための手段】
【００１２】
ブロックベースの予測を行った場合、ブロック中心部と比較してブロック境界部に大きな予測誤差が発生する傾向にある。これがブロック歪の原因である。つまり、ブロック歪みの低減には、ブロック境界周辺の予測誤差の抑圧が必要となる。
【００１３】
空間解像度の異なる２つの階層を考えた場合、ブロック境界の画素は、下位階層との位置関係に応じて次の２つに分類できる。
【００１４】
（ｉ）対応する下位階層の位置がブロック境界の近傍ではない画素
（ii）対応する下位階層の位置がブロック境界の近傍となる画素
図１に、（ｉ）および（ii）の例を示す。この図１は空間解像度の異なる２つの階層におけるフレームを示しており、図１における濃い網掛け部は（ｉ）にあたる領域であり、図１における薄い網掛け部は（ii）にあたる領域である。
【００１５】
前述のように単一の空間解像度の信号に対して閉じて設計されたデブロッキングフィルタの場合、（ｉ）および（ii）の領域のいずれに対しても同じ処理が行われる。しかし、ここで、（ｉ）の領域に注目すると、この領域に対応する下位階層の領域はブロック境界ではなく、同領域においてブロック歪は発生しないことが分かる。
【００１６】
そこで、本発明では、（ｉ）の領域に対して、下位階層の信号を利用したデブロッキング処理を適用するという構成を採る。
【００１７】
（１）第１の構成
第１の構成に従う本発明のデブロッキング処理装置は、ブロックベースの予測符号化を行い空間解像度の異なるフレームを処理対象とするスケーラブル符号化方式を実装する映像符号化装置に適用されるものであって、（イ）現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当しないのか否かを判断する第１の判断手段と、（ロ）現階層のブロック境界位置に対応する下位階層信号が平坦な画像領域であることを示しているのか否かを判断する第２の判断手段と、（ハ）現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当せず、かつ、平坦な画像領域であることを示している場合に、現階層のブロック境界位置に対してデブロッキング処理を実行する実行手段とを備える。
【００１８】
この構成を採るときにあって、実行手段は、下位階層信号を用いて、現階層のブロック境界位置に対してデブロッキング処理を実行することがあり、例えば、下位階層信号を用いて、現階層のブロック境界の両側における階層間誤差を算出し、その階層間誤差が小さなものとなる方の信号に合わせる形でデブロッキング処理を実行する。
【００１９】
また、実行手段は、現階層のブロック境界の両側における信号を用いて、現階層のブロック境界位置に対してデブロッキング処理を実行することがあり、例えば、現階層のブロック境界の両側における信号の平均値を算出し、それらの平均値を用いて、現階層のブロック境界におけるエッジの形状を規定の関数形状に変形する形でデブロッキング処理を実行することがある。このとき、下位階層の量子化ステップ幅に応じて関数形状を決定することがある。
【００２０】
以上の各処理手段が動作することで実現される本発明のデブロッキング処理方法はコンピュータプログラムでも実現できるものであり、このコンピュータプログラムは、適当なコンピュータ読み取り可能な記録媒体に記録して提供されたり、ネットワークを介して提供され、本発明を実施する際にインストールされてＣＰＵなどの制御手段上で動作することにより本発明を実現することになる。
【００２１】
このように構成される第１の構成に従う本発明のデブロッキング処理装置では、現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当せず、かつ、平坦な画像領域であることを示している場合に、現階層のブロック境界位置に対してデブロッキング処理を実行する。
【００２２】
そして、このとき、例えば、下位階層信号を用いて、現階層のブロック境界の両側における階層間誤差を算出して、その階層間誤差が小さなものとなる方の信号に合わせる形でデブロッキング処理を実行したり、現階層のブロック境界の両側における信号の平均値を算出して、それらの平均値を用いて、現階層のブロック境界におけるエッジの形状を規定の関数形状に変形する形でデブロッキング処理を実行する。
【００２３】
（２）第２の構成
第２の構成に従う本発明のデブロッキング処理装置は、ブロックベースの予測符号化を行い空間解像度の異なるフレームを処理対象とするスケーラブル符号化方式を実装する映像符号化装置や映像復号装置に適用されるものであって、（イ）現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当しないのか否かを判断する判断手段と、（ロ）現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当しない場合に、それに応じたデブロッキングフィルタ強度を決定する決定手段と、（ハ）現階層のブロック境界位置に対して、決定手段の決定したデブロッキングフィルタ強度に応じたデブロッキング処理を実行する実行手段とを備える。
ここで、決定手段は、下位階層信号の量子化ステップ幅が小さいほど、より強いフィルタリングが施されることになるようにと、下位階層信号の量子化ステップ幅に応じたデブロッキングフィルタ強度を決定したり、下位階層信号の平坦度が平坦を示すほど、より強いフィルタリングが施されることになるようにと、下位階層信号の平坦度に応じたデブロッキングフィルタ強度を決定する。
【００２４】
この構成を採るときにあって、決定手段は、Ｈ．２６４／ＡＶＣで定義されているデブロッキングフィルタ強度の中から、現階層のブロック境界位置に施すデブロッキングフィルタの強度を決定したり、Ｈ．２６４／ＡＶＣで定義されているデブロッキングフィルタ強度に１つ以上のデブロッキングフィルタ強度を追加することで定義されるデブロッキングフィルタ強度の中から、現階層のブロック境界位置に施すデブロッキングフィルタの強度を決定することがある。
【００２６】
以上の各処理手段が動作することで実現される本発明のデブロッキング処理方法はコンピュータプログラムでも実現できるものであり、このコンピュータプログラムは、適当なコンピュータ読み取り可能な記録媒体に記録して提供されたり、ネットワークを介して提供され、本発明を実施する際にインストールされてＣＰＵなどの制御手段上で動作することにより本発明を実現することになる。
【００２７】
このように構成される第２の構成に従う本発明のデブロッキング処理装置では、現階層のブロック境界位置に対応する下位階層信号がブロック境界位置に該当しない場合に、それに応じたデブロッキングフィルタ強度を決定して、現階層のブロック境界位置に対して、その決定したデブロッキングフィルタ強度に応じたデブロッキング処理を実行する。
【００２８】
そして、このとき、下位階層信号の復号信号の量子化ステップ幅や平坦度に応じたデブロッキングフィルタ強度を決定して、その決定したデブロッキングフィルタ強度に応じたデブロッキング処理を実行する。
【発明の効果】
【００２９】
本発明によれば、ブロックベースの予測符号化を行うスケーラブル符号化方式に従って映像を符号化し復号するときに、下位階層の信号を参照することにより、ブロック境界部に局在する予測誤差をより効果的に抑制することが可能となるので、復号画像におけるブロック歪みを大幅に低減できるようになる。
【００３０】
これから、本発明によれば、主観画質の向上を実現できるようになるとともに、客観画質の向上を実現できるようになる。
【発明を実施するための最良の形態】
【００３１】
以下、実施の形態に従って本発明を詳細に説明する。
【００３２】
まず、本発明の説明で用いる記号を整理する。第ｊ階層の時刻ｔのフレーム内の座標（ｘ，ｙ）における画素値をｆj （ｘ，ｙ，ｔ）とし、ｆj （ｘ，ｙ，ｔ）に対する復号信号をｇj （ｘ，ｙ，ｔ）とする。ｆj （ｘ，ｙ，ｔ）はｆj-1 （ｘ，ｙ，ｔ）の２倍の空間解像度となる。例えば、ｆ0 （ｘ，ｙ，ｔ）がＱＣＩＦ（Quarter CIF)サイズであれば、ｆ1 （ｘ，ｙ，ｔ）はＣＩＦサイズとなる。フレーム間予測におけるブロックサイズをＬ×Ｌとする。
【００３３】
以下では、説明の簡単のため、ｘ方向のデブロッキング処理について説明する。ｙ方向のデブロッキング処理についても同様である。
【００３４】
〔１〕本発明のデブロッキング処理の概要
図２を用いて、本発明のデブロッキング処理について簡単に説明する。ここでは、前述の（ｉ）の領域のように、対応する下位階層の位置がブロック境界の近傍ではない場合を例にとる。
【００３５】
図２（ａ）に、第ｋ階層における動き補償あるいはイントラ予測におけるブロック境界付近での信号波形を示す。ここで、黒丸が画素位置を示す。図２（ｂ）に、第ｋ−１階層での対応する位置の信号波形を示す。ここで、網掛けされた丸が画素位置を示す。図２（ｃ）に、図２（ｂ）の信号の半画素位置を補間した場合の信号波形を示す。
【００３６】
このように、対応する下位階層の位置がブロック境界の近傍ではなく、かつ、同位置にエッジが存在せず、上位階層にのみエッジが存在する場合、そのエッジは符号化により発生した人工的なエッジである可能性が高い。両階層の信号値を比較すると、図２（ｄ）に示すように、ブロック境界の左側の信号値の方が下位階層の信号値に近いことが分かる。そこで、図２（ｅ）に示すように、ブロック境界の右側の信号値を補正する。これは、ブロック境界の右側の信号値をその左側の信号値に基づき補正したものである。
【００３７】
〔２〕本発明のデブロッキング処理を実現する６つの発明
次に、本発明のデブロッキング処理を実現する６つの発明について述べる。なお、以下では、デブロッキング処理の対象を第ｋ階層の信号とし、動き補償および直交変換をＬ×Ｌ画素のブロック単位で行う場合を例にして説明する。
【００３８】
〔２−１〕第１の発明
本発明では、まず、空間位置による場合分けを行う。デブロッキング処理の対象となるのは、以下の条件１に示す空間位置に位置する信号（前述の（ｉ）の領域に属する信号）である。以下の条件１を満たすブロック境界を下位階層参照ブロック境界と呼ぶ。
【００３９】
【数１】
0004504291.tif 000002
【００４０】
次に、下位階層（第ｋ−１階層）信号の平坦度に関する条件により、デブロッキング処理を行うのか否かの判定を行う。これは、第ｋ階層のブロック境界近傍のエッジが符号化歪みによるものであるのか否かの判定を行うことである。この判定条件は、以下の４項目である。
【００４１】
【数２】
0004504291.tif 000003
【００４２】
ここで、ｍk （），Ｉr , Ｉl は以下の通りである。
【００４３】
【数３】
0004504291.tif 000004
【００４４】
なお、Ｔk f , Ｔk d ，Ｔk f"，ｌは予め与えられるパラメータとする。また、〔ｘ〕は、実数ｘに対して切り捨てにより整数値化する演算を示し、 "Ｉ＝ arg max｜・・・｜" は、ｍａｘを実現するｉをＩとして返すという関数を示す。
【００４５】
式（１）に現われるｍk （ｘ0 −１，ｙ，ｔ，−Ｉl ）を左側平均と呼び、式（２）に現われるｍk （ｘ0 ，ｙ，ｔ，Ｉr ）を右側平均と呼ぶ。また、Ｉl を左側平坦区間長と呼び、Ｉr を右側平坦区間長と呼ぶ。また、左側平均を算出する際に、左側平坦区間長により指定される区間を左側平坦区間と呼び、右側平均を算出する際に、右側平坦区間長により指定される区間を右側平坦区間と呼ぶ。また、式（１）、式（２）、式（３）、式（４）の左辺に示した値を、各々、左側平坦度、右側平坦度、エッジ強度、下位階層平坦度と呼ぶ。
【００４６】
デブロッキング処理による画素値の補正を以下に示す。まず、右側階層間誤差Ｅr 、左側階層間誤差Ｅl を以下のように定義する。
【００４７】
【数４】
0004504291.tif 000005
【００４８】
ここで、ｆk * （ｘ，ｙ，ｔ）は、次式に示すように、第ｋ−１階層の信号から補間フィルタｈx （）を用いて半画素位置の画素値を生成した補間画像である。
【００４９】
【数５】
0004504291.tif 000006
【００５０】
デブロッキング処理後の画素値ｆk # （ｘ，ｙ，ｔ）は以下のようになる。
【００５１】
【数６】
0004504291.tif 000007
【００５２】
このようにして、第１の発明では、第ｋ−１階層の信号が平坦であることで、第ｋ階層のブロック境界近傍のエッジが符号化歪みによるものであることを判断する場合にあって、ブロック境界の左側の信号値の方が下位階層の信号値に近い場合には、式（１１）に示すように、ブロック境界の左側の信号値についてはそのままとし、ブロック境界の右側の信号値については左側平坦区間長Ｉl の信号値の平均値に置き換えることでデブロッキング処理を実行する。一方、ブロック境界の右側の信号値の方が下位階層の信号値に近い場合には、式（１２）に示すように、ブロック境界の右側の信号値についてはそのままとし、ブロック境界の左側の信号値については右側平坦区間長Ｉr の信号値の平均値に置き換えることでデブロッキング処理を実行するのである。
【００５３】
〔２−２〕第２の発明
前述の第１の発明がステップ関数を用いたデブロッキング処理であるのに対し、ここでは、以下に示すように線形補間を用いたデブロッキング処理を行う。なお、フィルタリング処理を実施する条件は、前述の第１の発明に同じである。
【００５４】
【数７】
0004504291.tif 000008
【００５５】
すなわち、第２の発明では、第ｋ−１階層の信号が平坦であることで、第ｋ階層のブロック境界近傍のエッジが符号化歪みによるものであることを判断する場合には、ブロック境界の左側平坦区間長Ｉl の信号値の平均値と、ブロック境界の右側平坦区間長Ｉr の信号値の平均値とを使って、そのエッジ近傍の信号値を線形補間したものに置き換えることでデブロッキング処理を実行するのである。
【００５６】
なお、式（１３）の線形補間では直線の傾きを調整可能にするパラメータが入っていないが、例えば、いずれか一方の平均値を小さくするようなパラメータを入れることで、直線の傾きを調整可能にするパラメータを入れるようにして、下位階層の量子化ステップ幅が大きな場合には、弱いフィルタリングが施されることになるようにとそのパラメータを設定するようにしてもよい。
【００５７】
〔２−３〕第３の発明
前述の第１の発明がステップ関数を用いたデブロッキング処理であるのに対し、ここでは、以下に示すようにシグモイド関数による補間を用いたデブロッキング処理を行う。なお、フィルタリング処理を実施する条件は、前述の第１の発明に同じである。
【００５８】
【数８】
0004504291.tif 000009
【００５９】
ここで、ｇ（ｘ，ａ）は、
ｇ（ｘ，ａ）＝１／（１＋ｅｘｐ（−ａ・ｘ））
で定義されるシグモイド関数である。なお、ａはシグモイド関数の形状を制御するパラメータであり、下位階層信号に基づき設定される。例えば、下位階層の量子化ステップ幅が大きな場合には、弱いフィルタリングが施されることになるようにとパラメータａが設定されることになる。
【００６０】
すなわち、第３の発明では、第ｋ−１階層の信号が平坦であることで、第ｋ階層のブロック境界近傍のエッジが符号化歪みによるものであることを判断する場合には、ブロック境界の左側平坦区間長Ｉl の信号値の平均値と、ブロック境界の右側平坦区間長Ｉr の信号値の平均値とを使って、そのエッジ近傍の信号値をシグモイド関数により補間したものに置き換えることでデブロッキング処理を実行するのである。
【００６１】
〔２−４〕第４の発明
前述の第１の発明がステップ関数を用いたデブロッキング処理であるのに対し、ここでは、以下に示すように双曲線正接（ハイパボリックタンジェント）関数による補間を用いたデブロッキング処理を行う。なお、フィルタリング処理を実施する条件は、前述の第１の発明に同じである。
【００６２】
【数９】
0004504291.tif 000010
【００６３】
ここで、ｈ（ｘ，ａ）は、
ｈ（ｘ，ａ）＝（ｔａｎｈ（ａ・ｘ）＋１）／２
で定義される双曲線正接関数である。なお、ａは双曲線正接関数の形状を制御するパラメータであり、下位階層信号に基づき設定される。例えば、下位階層の量子化ステップ幅が大きな場合には、弱いフィルタリングが施されることになるようにとパラメータａが設定されることになる。
【００６４】
すなわち、第４の発明では、第ｋ−１階層の信号が平坦であることで、第ｋ階層のブロック境界近傍のエッジが符号化歪みによるものであることを判断する場合には、ブロック境界の左側平坦区間長Ｉl の信号値の平均値と、ブロック境界の右側平坦区間長Ｉr の信号値の平均値とを使って、そのエッジ近傍の信号値を双曲線正接関数により補間したものに置き換えることでデブロッキング処理を実行するのである。
【００６５】
〔２−５〕第５の発明
前述の第１の発明がステップ関数を用いたデブロッキング処理であるのに対し、ここでは、以下に示すようにＪＳＶＭのデブロッキング処理に対する階層間情報を用いた拡張を行う。
【００６６】
（１）前述の第１の発明における条件１を満たさない画素の場合：
ＪＳＶＭで定義されたデブロッキング処理を行う。このとき、Ｂｓ値の定義は図３の通りである。ここで、Ｐ，Ｑのブロックの定義を図４に示す。
【００６７】
（２）前述の第１の発明における条件１を満たす画素の場合：
Ｂｓ値の定義に下位階層信号の条件を付加することで、ＪＳＶＭで定義されたデブロッキング処理を拡張した形のデブロッキング処理を行う。
【００６８】
このＢｓ値の一例を図５〜図８に示す。ここで、図７、図８に記載する各閾値は、
Ｔ4 ≦Ｔ3 ≦Ｔ2 ≦Ｔ1 
Ｆ4 ≦Ｆ3 ≦Ｆ2 ≦Ｆ1 
という条件を満たすものとする。また、図８に記載する平坦度は以下に示す値である。
【００６９】
【数１０】
0004504291.tif 000011
【００７０】
ここで、Ｍk-1 （）は以下の通りである。また、〔ｘ〕は、実数ｘに対して切り捨てにより整数値化する演算を示す。
【００７１】
【数１１】
0004504291.tif 000012
【００７２】
また、ｂl ，ｂr は平坦度算出時に用いる下位階層信号の範囲を表すパラメータであり、例えば以下のような設定法が可能である。
【００７３】
・外部から与えられる；  例）  ｂl ＝２，ｂr ＝２
・ｂl ＝［Ｉl ／２］，ｂr ＝［Ｉr ／２］
図５〜図８に示すＢｓ値について説明するならば、図５〜図８に示すＢｓ値は、０，１，２，３，４のいずれかの値をとり、これからＪＳＶＭのデブロッキング処理をそのまま流用できるという利点を有する。
【００７４】
図５（ａ）に示すＢｓ値には、「Ｂｓ＝４」となる図３の条件に、『または、ＰとＱの境界が下位階層参照ブロック境界となる』という条件が加わっており、図５（ｂ）に示すＢｓ値には、「Ｂｓ＝３」となる図３の条件に、『または、ＰとＱの境界が下位階層参照ブロック境界となる』という条件が加わっており、図６（ａ）に示すＢｓ値には、「Ｂｓ＝２」となる図３の条件に、『または、ＰとＱの境界が下位階層参照ブロック境界となる』という条件が加わっており、図６（ｂ）に示すＢｓ値には、「Ｂｓ＝１」となる図３の条件に、『または、ＰとＱの境界が下位階層参照ブロック境界となる』という条件が加わっている。
【００７５】
また、図７に示すＢｓ値には、「Ｂｓ＝１，２，３，４」となる図３の各条件に、『または、ＰとＱの境界が下位階層参照ブロック境界となり、かつ、下位階層信号においてブロックＰ，Ｑに対応する位置のブロックの量子化ステップ幅がＴi （ｉ＝１〜４）以下となる』という条件が加わっている。
【００７６】
ここで、図７に示すＢｓ値において、下位階層の量子化ステップ幅を考慮しているのは、量子化ステップ幅が小さいということは下位階層の信号が平坦であるという判断が信頼できることを意味しており、それにもかかわらず上位階層にエッジがある場合には、それに合わせて大きなデブロッキング処理を行うようにするという処理を実行できるようにするためである。
【００７７】
また、図８に示すＢｓ値には、「Ｂｓ＝１，２，３，４」となる図３の各条件に、『または、ＰとＱの境界が下位階層参照ブロック境界となり、かつ、下位階層信号においてブロックＰ，Ｑのブロック境界に対応する位置の平坦度がＦi （ｉ＝１〜４）以下となる』という条件が加わっている。
【００７８】
ここで、図８に示すＢｓ値において、下位階層の平坦度を考慮しているのは、平坦度が小さいということは下位階層の信号が平坦であるという判断が信頼できることを意味しており、それにもかかわらず上位階層にエッジがある場合には、それに合わせて大きなデブロッキング処理を行うようにするという処理を実行できるようにするためである。
【００７９】
〔２−６〕第６の発明
前述の第１の発明がステップ関数を用いたデブロッキング処理であるのに対し、ここでは、以下に示すようにＪＳＶＭのデブロッキング処理に対する階層間情報を用いた拡張を行う。
【００８０】
（１）前述の第１の発明における条件１を満たさない画素の場合：
前述の第５の発明と同様に、ＪＳＶＭで定義されたデブロッキング処理を行う。このとき、Ｂｓ値の定義は図３の通りである。
【００８１】
（２）前述の第１の発明における条件１を満たす画素の場合：
Ｂｓ値の定義に下位階層信号の条件を付加することで、ＪＳＶＭで定義されたデブロッキング処理を拡張した形のデブロッキング処理を行う。
【００８２】
このＢｓ値の一例を図９〜図１２に示す。ここで、図１１、図１２に記載する各閾値は、
Ｔ4'≦Ｔ3'≦Ｔ2'≦Ｔ1'
Ｆ4'≦Ｆ3'≦Ｆ2'≦Ｆ1'
という条件を満たすものとする。また、図１２に記載する平坦度は前述した式（１６）に示す値である。
【００８３】
図９〜図１２に示すＢｓ値について説明するならば、図５〜図８に示すＢｓ値と異なって、６段階以上の値をとり、これから、下位階層信号の量子化パラメータを考慮したきめ細やかなデブロッキング処理を実行できるという利点を有する。
【００８４】
図９（ａ）に示すＢｓ値には、『ＰとＱの境界が下位階層参照ブロック境界となる場合には、Ｂｓ＝３．５とする』という定義が加わっており、図９（ｂ）に示すＢｓ値には、『ＰとＱの境界が下位階層参照ブロック境界となる場合には、Ｂｓ＝２．５とする』という定義が加わっており、図１０（ａ）に示すＢｓ値には、『ＰとＱの境界が下位階層参照ブロック境界となる場合には、Ｂｓ＝１．５とする』という定義が加わっており、図１０（ｂ）に示すＢｓ値には、『ＰとＱの境界が下位階層参照ブロック境界となる場合には、Ｂｓ＝０．５とする』という定義が加わっている。
【００８５】
また、図１１に示すＢｓ値には、『ＰとＱの境界が下位階層参照ブロック境界となり、かつ、下位階層信号においてブロックＰ，Ｑに対応する位置のブロックの量子化ステップ幅がＴ4 ' 以下となる場合には、Ｂｓ＝３．５とする』という定義と、『ＰとＱの境界が下位階層参照ブロック境界となり、かつ、下位階層信号においてブロックＰ，Ｑに対応する位置のブロックの量子化ステップ幅がＴ3 ' 以下となる場合には、Ｂｓ＝２．５とする』という定義と、『ＰとＱの境界が下位階層参照ブロック境界となり、かつ、下位階層信号においてブロックＰ，Ｑに対応する位置のブロックの量子化ステップ幅がＴ2 ' 以下となる場合には、Ｂｓ＝１．５とする』という定義と、『ＰとＱの境界が下位階層参照ブロック境界となり、かつ、下位階層信号においてブロックＰ，Ｑに対応する位置のブロックの量子化ステップ幅がＴ1 ' 以下となる場合には、Ｂｓ＝０．５とする』という定義とが加わっている。
【００８６】
ここで、図１１に示すＢｓ値において、下位階層の量子化ステップ幅を考慮しているのは、量子化ステップ幅が小さいということは下位階層の信号が平坦であるという判断が信頼できることを意味しており、それにもかかわらず上位階層にエッジがある場合には、それに合わせて大きなデブロッキング処理を行うようにするという処理を実行できるようにするためである。
【００８７】
また、図１２に示すＢｓ値には、『ＰとＱの境界が下位階層参照ブロック境界となり、かつ、下位階層信号においてブロックＰ，Ｑのブロック境界に対応する位置の平坦度がＦ4 ' 以下となる場合には、Ｂｓ＝３．５とする』という定義と、『ＰとＱの境界が下位階層参照ブロック境界となり、かつ、下位階層信号においてブロックＰ，Ｑのブロック境界に対応する位置の平坦度がＦ3 ' 以下となる場合には、Ｂｓ＝２．５とする』という定義と、『ＰとＱの境界が下位階層参照ブロック境界となり、かつ、下位階層信号においてブロックＰ，Ｑのブロック境界に対応する位置の平坦度がＦ2 ' 以下となる場合には、Ｂｓ＝１．５とする』という定義と、『ＰとＱの境界が下位階層参照ブロック境界となり、かつ、下位階層信号においてブロックＰ，Ｑのブロック境界に対応する位置の平坦度がＦ1 ' 以下となる場合には、Ｂｓ＝０．５とする』という定義とが加わっている。
【００８８】
ここで、図１２に示すＢｓ値において、下位階層の平坦度を考慮しているのは、平坦度が小さいということは下位階層の信号が平坦であるという判断が信頼できることを意味しており、それにもかかわらず上位階層にエッジがある場合には、それに合わせて大きなデブロッキング処理を行うようにするという処理を実行できるようにするためである。
【００８９】
〔３〕本発明のデブロッキング処理の詳細
〔３−１〕第１，２，３，４の発明におけるデブロッキング処理
図１３〜図１５に従って、第１，２，３，４の発明で実行するデブロッキング処理について詳細に説明する。
【００９０】
〔３−１−１〕
先ず最初に、第１，２，３，４の発明で実行するデブロッキング処理の全体的な処理について、図１３のフローチャートに従って説明する。
【００９１】
ステップ１３０１：デブロッキング処理対象となる画素値を読み込み、レジスタに書き出す。
【００９２】
ステップ１３０２：現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ１３０３に移り、そうでなければ、ステップ１３１１に移る。
【００９３】
ステップ１３０３：デブロッキング処理対象となる画素値を入力とし、左側平坦区間長Ｉl および右側平坦区間長Ｉr を算出する処理を行い、算出した値をレジスタに書き出す。具体的な算出方法は、式（６）、式（７）に従う。
【００９４】
ステップ１３０４：デブロッキング処理対象となる画素値、ステップ１３０３で算出した左側平坦区間長Ｉl および右側平坦区間長Ｉr を入力とし、左側平均値および右側平均値を算出する処理を行い、算出した値をレジスタに書き出す。具体的な算出方法は、いずれも式（５）に従う。
【００９５】
ステップ１３０５：デブロッキング処理対象となる画素値、ステップ１３０３で算出した左側平坦区間長Ｉl および右側平坦区間長Ｉr 、ステップ１３０４で算出した左側平均値および右側平均値を入力とし、左側平坦度および右側平坦度を算出する処理を行い、算出した値をレジスタに書き出す。具体的な算出方法は、式（１）の左辺、式（２）の左辺に従う。
【００９６】
ステップ１３０６：デブロッキング処理対象となる画素値を入力とし、エッジ強度を算出する処理を行い、算出した値をレジスタに書き出す。具体的な算出方法は、式（３）の左辺に従う。
【００９７】
ステップ１３０７：デブロッキング処理対象のブロックと対応する位置にある下位階層信号のブロックの画素値を入力とし、下位階層平坦度を算出する処理を行い、算出した値をレジスタに書き出す。具体的な算出方法は、式（４）の左辺に従う。
【００９８】
ステップ１３０８：デブロッキング処理対象のブロックと対応する位置にある下位階層信号のブロックに対する量子化ステップ幅を読み込む。なお、この量子化ステップ幅については、後述するステップ１３１０で第２，３，４の発明がデブロッキング処理を実行するときに用いられることになる。
【００９９】
ステップ１３０９：左側平坦度、右側平坦度、エッジ強度、下位階層平坦度を入力とし、不等式（１），不等式（２），不等式（３），不等式（４）を満たすか否かの判定処理を行い、全て満たす場合は、現在のデブロッキング処理対象のブロック境界のエッジが符号化に起因するものと判断して、ステップ１３１０に移り、満たさない場合は、ステップ１３１１に移る。なお、上述の４つの不等式で用いる閾値は外部から与えられるものとする。
【０１００】
ステップ１３１０：本処理の詳細については、図１４及び図１５のフローチャートで説明する。
【０１０１】
ステップ１３１１：デブロッキング処理対象となる画素値、動きベクトル等の符号化情報を入力として、デブロッキング処理を行う。なお、ここでのデブロッキング処理は、下位階層の信号を参照しない処理であり、例えば、Ｈ．２６４で用いられるデブロッキング処理である。
【０１０２】
ステップ１３１２：フレーム内の全てのブロックに対して、ステップ１３０１〜ステップ１３１１の処理を行う。
【０１０３】
〔３−１−２〕
次に、第１の発明で実行するステップ１３１０の処理の詳細について、図１４のフローチャートに従って説明する。
【０１０４】
ステップ１４０１：デブロッキング処理対象となる画素値、デブロッキング処理対象のブロックと対応する位置にある下位階層信号のブロックの画素値、右側平均値、左側平均値、右側平坦区間長、左側平坦区間長を読み込む。
【０１０５】
ステップ１４０２：デブロッキング処理対象のブロックと対応する位置にある下位階層信号のブロックの画素値を入力とし、補間処理を行い、その処理後の信号をレジスタに書き出す。具体的な補間方法は、式（１０）に従う。
【０１０６】
ステップ１４０３：デブロッキング処理対象となる画素値、ステップ１４０２で出力された補間処理後の下位階層信号を入力とし、左側階層間誤差、右側階層間誤差を算出する処理を行い、算出した値をレジスタに書き出す。具体的な算出方法は、式（９）、式（８）に従う。
【０１０７】
ステップ１４０４：ステップ１４０３で出力された左側階層間誤差、右側階層間誤差を入力とし、両者の大小比較を行い、左側階層間誤差が右側階層間誤差より小さい場合、ステップ１４０５の処理に移り、そうでなければ、ステップ１４０８の処理に移る。
【０１０８】
ステップ１４０５：右側平坦区間長、左側平坦区間長、左側平均値を入力とし、右側平坦区間内の画素値について左側平均値で画素値を置換する処理を行い、置換後の画素値をデブロッキング処理後の画素値として、レジスタに書き出す。具体的には、式（１１）に従う。
【０１０９】
ステップ１４０６：左側階層間誤差が右側階層間誤差より小さい場合、左側平坦区間内の画素値はそのまま保持する。
【０１１０】
ステップ１４０７：ステップ１４０５，１４０６の処理を右側平坦区間内および左側平坦区間内の全ての画素に対して行う。
【０１１１】
ステップ１４０８：右側平坦区間長、左側平坦区間長、右側平均値を入力とし、左側平坦区間内の画素値について右側平均値で画素値を置換する処理を行い、置換後の画素値をデブロッキング処理後の画素値として、レジスタに書き出す。具体的には、式（１２）に従う。
【０１１２】
ステップ１４０９：右側階層間誤差が左側階層間誤差より小さい場合、右側平坦区間内の画素値はそのまま保持する。
【０１１３】
ステップ１４１０：ステップ１４０８，１４０９の処理を右側平坦区間内および左側平坦区間内の全ての画素に対して行う。
【０１１４】
〔３−１−３〕
次に、第２，３，４の発明で実行するステップ１３１０の処理の詳細について、図１５のフローチャートに従って説明する。
【０１１５】
ステップ１５０１：デブロッキング処理対象となる画素値、右側平均値、左側平均値、右側平坦区間長、左側平坦区間長を読み込む。
【０１１６】
ステップ１５０２：デブロッキングフィルタに用いる関数形を読み込む。ここで言う関数形とは、例えば、式（１３）、式（１４）または式（１５）で表されるデブロッキングフィルタである。
【０１１７】
ステップ１５０３：ステップ１５０２で指定されたデブロッキングフィルタの形状を制御するパラメータを下位階層の信号の情報（例えば、ステップ１３０８で読み込んだ下位階層信号の量子化ステップ幅の情報）を基に設定する。
【０１１８】
ステップ１５０４：ステップ１５０２で指定されたデブロッキングフィルタと、ステップ１５０３で設定されたパラメータとを入力として、デブロッキング処理を行い、同デブロッキング処理後の画素値を書き出す。具体的には、式（１３）、式（１４）または式（１５）に従うものとする。
【０１１９】
ステップ１５０５：ステップ１５０５の処理を左側平坦区間内および右側平坦区間内の全ての画素に対して行う。
【０１２０】
〔３−２〕第５，６の発明におけるデブロッキング処理
図１６〜図２８に従って、第５，６の発明で実行するデブロッキング処理について詳細に説明する。
【０１２１】
〔３−２−１〕
先ず最初に、第５，６で実行するデブロッキング処理の全体的な処理について、図１６のフローチャートに従って説明する。
【０１２２】
ステップ１６０１：デブロッキング処理対象となる画素値を読み込み、レジスタに書き出す。
【０１２３】
ステップ１６０２：ＡＶＣのデブロッキング処理に必要となる情報を読み込み、レジスタに書き込む。具体的には、デブロッキング処理対象となるブロックの復号画素値、同ブロックの画素値、同ブロックの量子パラメータ、同ブロックに隣接するブロックの復号画素値、同ブロックに隣接するブロックに対する量子化パラメータ、デブロッキング処理対象となる画素値に隣接するブロックの画素値、デブロッキング処理対象となるブロックの画素値に対する復号信号、ブロックサイズ、マクロブロック中での空間位置、符号化モード（イントラ符号化、インター符号化）、直交変換係数、参照フレームインデックス、参照フレームの枚数、動きベクトルを読み込み、レジスタに書き出すのである。
【０１２４】
ステップ１６０３：デブロッキング処理対象のブロックと対応する位置にある下位階層信号を入力とし、下位階層平坦度を算出する処理を行い、その算出した下位階層平坦度をレジスタに書き出す。具体的な算出は式（１６）に従う。
【０１２５】
ステップ１６０４：下位階層信号の符号化に用いた量子化ステップ幅を読み込む。
【０１２６】
ステップ１６０５：デブロッキングフィルタの強度を表すＢｓ値を算出する処理を行い、その算出したＢｓ値をレジスタに書き出す。本処理の詳細については、図１７〜図２８のフローチャートで説明する。
【０１２７】
ステップ１６０６：デブロッキング処理対象となる画素値、算出したＢｓ値を入力とし、Ｂｓ値に応じたデブロッキング処理を行い、デブロッキング後の画素値をレジスタに書き出す。このとき、Ｂｓ値が整数の場合、デブロッキング処理対象となる画素値を入力とし、対応するＢｓ値に対するＡＶＣで規定されたデブロッキング処理を行う。また、Ｂｓ値が実数の場合、デブロッキング処理対象となる画素値を入力とし、下位階層信号の量子化パラメータに応じたデブロッキング処理を行う。
【０１２８】
ステップ１６０７：以上の処理をフレーム内の全ブロックについて行う。
【０１２９】
〔３−２−２〕
次に、第５の発明が図５（ａ）に示すＢｓ値定義を用いて実行するステップ１６０５の処理の詳細について、図１７のフローチャートに従って説明する。
【０１３０】
ここで、図５（ａ）に示すＢｓ値定義は、図３に示すＢｓ値定義の条件４に、『または、ＰとＱの境界が下位階層参照ブロック境界となる』という条件が加わったものとして定義されている。
【０１３１】
ステップ１７０１：ステップ１６０２でレジスタに書き出した情報を入力とし、処理対象画素がＡＶＣのデブロッキング処理対象となる画素値であり、かつ図３の条件４を満たすか否かの判断を行い、満たす場合は、ステップ１７０２の処理に移り、Ｂｓ値を４として、レジスタに書き出す。一方、これらの条件を満たさなければ、ステップ１７１１の処理に移る。
【０１３２】
ステップ１７０３：ステップ１６０２でレジスタに書き出した情報を入力とし、処理対象画素がＡＶＣのデブロッキング処理対象となる画素値であり、かつ図３の条件３を満たすか否かの判断を行い、満たす場合は、ステップ１７０４の処理に移り、Ｂｓ値を３として、レジスタに書き出す。一方、これらの条件を満たさなければ、ステップ１７０５の処理に移る。
【０１３３】
ステップ１７０５：ステップ１６０２でレジスタに書き出した情報を入力とし、処理対象画素がＡＶＣのデブロッキング処理対象となる画素値であり、かつ図３の条件２を満たすか否かの判断を行い、満たす場合は、ステップ１７０６の処理に移り、Ｂｓ値を２として、レジスタに書き出す。一方、これらの条件を満たさなければ、ステップ１７０７の処理に移る。
【０１３４】
ステップ１７０７：ステップ１６０２でレジスタに書き出した情報を入力とし、処理対象画素がＡＶＣのデブロッキング処理対象となる画素値であり、かつ図３の条件１を満たすか否かの判断を行い、満たす場合は、ステップ１７０８の処理に移り、Ｂｓ値を１として、レジスタに書き出す。一方、これらの条件を満たさなければ、ステップ１７０９の処理に移り、Ｂｓ値を０として、レジスタに書き出す。
【０１３５】
ステップ１７１１：現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ１７０２に移り、そうでなければ、ステップ１７０３に移る。
【０１３６】
ステップ１７１０：以上の処理をブロック内の左側平坦区間内および右側平坦区間内の全ての画素に対して行う。
【０１３７】
〔３−２−３〕
次に、第５の発明が図５（ｂ）に示すＢｓ値定義を用いて実行するステップ１６０５の処理の詳細について、図１８のフローチャートに従って説明する。
【０１３８】
ここで、図５（ｂ）に示すＢｓ値定義は、図３に示すＢｓ値定義の条件３に、『または、ＰとＱの境界が下位階層参照ブロック境界となる』という条件が加わったものとして定義されている。
【０１３９】
ステップ１８０１からステップ１８１０の処理については、各々、ステップ１７０１からステップ１７１０の処理と同様である。なお、条件分岐後の移動先は図１７の例とは異なるが（ステップ１８０３の条件を満たない場合にステップ１８１１に進む）、条件分岐における条件は同一である。
【０１４０】
ステップ１８１１：現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ１８０４に移り、そうでなければ、ステップ１８０５に移る。
【０１４１】
〔３−２−４〕
次に、第５の発明が図６（ａ）に示すＢｓ値定義を用いて実行するステップ１６０５の処理の詳細について、図１９のフローチャートに従って説明する。
【０１４２】
ここで、図６（ａ）に示すＢｓ値定義は、図３に示すＢｓ値定義の条件２に、『または、ＰとＱの境界が下位階層参照ブロック境界となる』という条件が加わったものとして定義されている。
【０１４３】
ステップ１９０１からステップ１９１０の処理については、各々、ステップ１７０１からステップ１７１０の処理と同様である。なお、条件分岐後の移動先は図１７の例とは異なるが（ステップ１９０５の条件を満たない場合にステップ１９１１に進む）、条件分岐における条件は同一である。
【０１４４】
ステップ１９１１：現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ１９０６に移り、そうでなければ、ステップ１９０７に移る。
【０１４５】
〔３−２−５〕
次に、第５の発明が図６（ｂ）に示すＢｓ値定義を用いて実行するステップ１６０５の処理の詳細について、図２０のフローチャートに従って説明する。
【０１４６】
ここで、図６（ｂ）に示すＢｓ値定義は、図３に示すＢｓ値定義の条件１に、『または、ＰとＱの境界が下位階層参照ブロック境界となる』という条件が加わったものとして定義されている。
【０１４７】
ステップ２００１からステップ２０１０の処理については、各々、ステップ１７０１からステップ１７１０の処理と同様である。なお、条件分岐後の移動先は図１７の例とは異なるが（ステップ２００７の条件を満たない場合にステップ２０１１に進む）、条件分岐における条件は同一である。
【０１４８】
ステップ２０１１：現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ２００８に移り、そうでなければ、ステップ２００９に移る。
【０１４９】
〔３−２−６〕
次に、第５の発明が図７に示すＢｓ値定義を用いて実行するステップ１６０５の処理の詳細について、図２１のフローチャートに従って説明する。
【０１５０】
ここで、図７に示すＢｓ値定義は、図３に示すＢｓ値定義の各条件に、『または、ＰとＱの境界が下位階層参照ブロック境界となり、かつ、下位階層信号においてブロックＰ，Ｑに対応する位置のブロックの量子化ステップ幅がＴi （ｉ＝１〜４）以下となる』という条件が加わったものとして定義されている。
【０１５１】
ステップ２１０１からステップ２１１０の処理については、各々、ステップ１７０１からステップ１７１０の処理と同様である。なお、条件分岐後の移動先は図１７の例とは異なるが、条件分岐における条件は同一である。
【０１５２】
ステップ２１１１：ステップ２１０１の条件が満たされない場合に処理に入る。現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ２１１２に移り、そうでなければ、ステップ２１０３に移る。
【０１５３】
ステップ２１１２：現在のデブロッキング処理対象のブロックと対応する位置の下位階層におけるブロックに対する量子化ステップ幅を入力とし、その量子化ステップ幅が閾値Ｔ4 以下であるか否かの判定処理を行い、この閾値以下となる場合は、ステップ２１０２に移り、そうでなければ、ステップ２１０３に移る。
【０１５４】
ステップ２１１３：ステップ２１０３の条件が満たされない場合に処理に入る。現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ２１１４に移り、そうでなければ、ステップ２１０５に移る。
【０１５５】
ステップ２１１４：現在のデブロッキング処理対象のブロックと対応する位置の下位階層におけるブロックに対する量子化ステップ幅を入力とし、その量子化ステップ幅が閾値Ｔ3 以下であるか否かの判定処理を行い、この閾値以下となる場合は、ステップ２１０４に移り、そうでなければ、ステップ２１０５に移る。
【０１５６】
ステップ２１１５：ステップ２１０５の条件が満たされない場合に処理に入る。現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ２１１６に移り、そうでなければ、ステップ２１０７に移る。
【０１５７】
ステップ２１１６：現在のデブロッキング処理対象のブロックと対応する位置の下位階層におけるブロックに対する量子化ステップ幅を入力とし、その量子化ステップ幅が閾値Ｔ2 以下であるか否かの判定処理を行い、この閾値以下となる場合は、ステップ２１０６に移り、そうでなければ、ステップ２１０７に移る。
【０１５８】
ステップ２１１７：ステップ２１０７の条件が満たされない場合に処理に入る。現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ２１１８に移り、そうでなければ、ステップ２１０９に移る。
【０１５９】
ステップ２１１８：現在のデブロッキング処理対象のブロックと対応する位置の下位階層におけるブロックに対する量子化ステップ幅を入力とし、その量子化ステップ幅が閾値Ｔ1 以下であるか否かの判定処理を行い、この閾値以下となる場合は、ステップ２１０８に移り、そうでなければ、ステップ２１０９に移る。
【０１６０】
〔３−２−７〕
次に、第５の発明が図８に示すＢｓ値定義を用いて実行するステップ１６０５の処理の詳細について、図２２のフローチャートに従って説明する。
【０１６１】
ここで、図８に示すＢｓ値定義は、図３に示すＢｓ値定義の各条件に、『または、ＰとＱの境界が下位階層参照ブロック境界となり、かつ、下位階層信号においてブロックＰ，Ｑのブロック境界に対応する位置の平坦度がＦi （ｉ＝１〜４）以下となる』という条件が加わったものとして定義されている。
【０１６２】
このフローチャートは、図２１のフローチャートにおける量子化ステップ幅を平坦度に置き換えるとともに、量子化ステップ幅の閾値Ｔi （ｉ＝１，２，３，４）を平坦度の閾値Ｆi （ｉ＝１，２，３，４）に置き換えたものである。
【０１６３】
〔３−２−８〕
次に、第６の発明が図９（ａ）に示すＢｓ値定義を用いて実行するステップ１６０５の処理の詳細について、図２３のフローチャートに従って説明する。
【０１６４】
ここで、図９（ａ）に示すＢｓ値定義は、図３に示すＢｓ値定義に、『ＰとＱの境界が下位階層参照ブロック境界となる場合には、Ｂｓ＝３．５とする』という定義が加わったものである。
【０１６５】
ステップ２３０１からステップ２３１０の処理については、各々、ステップ１７０１からステップ１７１０の処理と同様である。
【０１６６】
ステップ２３１１：現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ２３１２に移り、Ｂｓ値として３．５をレジスタに書き出す。そうでなければ、ステップ２３０３に移る。
【０１６７】
〔３−２−９〕
次に、第６の発明が図９（ｂ）に示すＢｓ値定義を用いて実行するステップ１６０５の処理の詳細について、図２４のフローチャートに従って説明する。
【０１６８】
ここで、図９（ｂ）に示すＢｓ値定義は、図３に示すＢｓ値定義に、『ＰとＱの境界が下位階層参照ブロック境界となる場合には、Ｂｓ＝２．５とする』という定義が加わったものである。
【０１６９】
ステップ２４０１からステップ２４１０の処理については、各々、ステップ１７０１からステップ１７１０の処理と同様である。なお、条件分岐後の移動先は図１７の例とは異なるが（ステップ２４０３の条件を満たない場合にステップ２４１１に進む）、条件分岐における条件は同一である。
【０１７０】
ステップ２４１１：現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ２４１２に移り、Ｂｓ値として２．５をレジスタに書き出す。そうでなければ、ステップ２４０５に移る。
【０１７１】
〔３−２−１０〕
次に、第６の発明が図１０（ａ）に示すＢｓ値定義を用いて実行するステップ１６０５の処理の詳細について、図２５のフローチャートに従って説明する。
【０１７２】
ここで、図１０（ａ）に示すＢｓ値定義は、図３に示すＢｓ値定義に、『ＰとＱの境界が下位階層参照ブロック境界となる場合には、Ｂｓ＝１．５とする』という定義が加わったものである。
【０１７３】
ステップ２５０１からステップ２５１０の処理については、各々、ステップ１７０１からステップ１７１０の処理と同様である。なお、条件分岐後の移動先は図１７の例とは異なるが（ステップ２５０５の条件を満たない場合にステップ２５１１に進む）、条件分岐における条件は同一である。
【０１７４】
ステップ２５１１：現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ２５１２に移り、Ｂｓ値として１．５をレジスタに書き出す。そうでなければ、ステップ２５０７に移る。
【０１７５】
〔３−２−１１〕
次に、第６の発明が図１０（ｂ）に示すＢｓ値定義を用いて実行するステップ１６０５の処理の詳細について、図２６のフローチャートに従って説明する。
【０１７６】
ここで、図１０（ｂ）に示すＢｓ値定義は、図３に示すＢｓ値定義に、『ＰとＱの境界が下位階層参照ブロック境界となる場合には、Ｂｓ＝０．５とする』という定義が加わったものである。
【０１７７】
ステップ２６０１からステップ２６１０の処理については、各々、ステップ１７０１からステップ１７１０の処理と同様である。なお、条件分岐後の移動先は図１７の例とは異なるが（ステップ２６０７の条件を満たない場合にステップ２６１１に進む）、条件分岐における条件は同一である。
【０１７８】
ステップ２６１１：現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ２６１２に移り、Ｂｓ値として０．５をレジスタに書き出す。そうでなければ、ステップ２６０９に移る。
【０１７９】
〔３−２−１２〕
次に、第６の発明が図１１に示すＢｓ値定義を用いて実行するステップ１６０５の処理の詳細について、図２７のフローチャートに従って説明する。
【０１８０】
ここで、図１１に示すＢｓ値定義は、図３に示すＢｓ値定義に、『下位階層の量子化ステップ幅に応じて、Ｂｓ＝３．５にする』という定義と、『下位階層の量子化ステップ幅に応じて、Ｂｓ＝２．５にする』という定義と、『下位階層の量子化ステップ幅に応じて、Ｂｓ＝１．５にする』という定義と、『下位階層の量子化ステップ幅に応じて、Ｂｓ＝０．５にする』という定義とが加わったものである。
【０１８１】
ステップ２７０１からステップ２７１０の処理については、各々、ステップ１７０１からステップ１７１０の処理と同様である。なお、条件分岐後の移動先は図１７の例とは異なるが、条件分岐における条件は同一である。
【０１８２】
ステップ２７１１：ステップ２７０１の条件が満たされない場合に処理に入る。現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ２７１２に移り、そうでなければ、ステップ２７０３に移る。
【０１８３】
ステップ２７１２：現在のデブロッキング処理対象のブロックと対応する位置の下位階層におけるブロックに対する量子化ステップ幅を入力とし、その量子化ステップ幅が閾値Ｔ4 ' 以下であるか否かの判定処理を行い、この閾値以下となる場合は、ステップ２７１９に移り、Ｂｓ値として３．５をレジスタに書き出す。そうでなければ、ステップ２７０３に移る。
【０１８４】
ステップ２７１３：ステップ２７０３の条件が満たされない場合に処理に入る。現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ２７１４に移り、そうでなければ、ステップ２７０５に移る。
【０１８５】
ステップ２７１４：現在のデブロッキング処理対象のブロックと対応する位置の下位階層におけるブロックに対する量子化ステップ幅を入力とし、その量子化ステップ幅が閾値Ｔ3 ' 以下であるか否かの判定処理を行い、この閾値以下となる場合は、ステップ２７２０に移り、Ｂｓ値として２．５をレジスタに書き出す。そうでなければ、ステップ２７０５に移る。
【０１８６】
ステップ２７１５：ステップ２７０５の条件が満たされない場合に処理に入る。現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ２７１６に移り、そうでなければ、ステップ２７０７に移る。
【０１８７】
ステップ２７１６：現在のデブロッキング処理対象のブロックと対応する位置の下位階層におけるブロックに対する量子化ステップ幅を入力とし、その量子化ステップ幅が閾値Ｔ2 ' 以下であるか否かの判定処理を行い、この閾値以下となる場合は、ステップ２７２１に移り、Ｂｓ値として１．５をレジスタに書き出す。そうでなければ、ステップ２７０７に移る。
【０１８８】
ステップ２７１７：ステップ２７０７の条件が満たされない場合に処理に入る。現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、ステップ２７１８に移り、そうでなければ、ステップ２７０９に移る。
【０１８９】
ステップ２７１８：現在のデブロッキング処理対象のブロックと対応する位置の下位階層におけるブロックに対する量子化ステップ幅を入力とし、その量子化ステップ幅が閾値Ｔ1 ' 以下であるか否かの判定処理を行い、この閾値以下となる場合は、ステップ２７２２に移り、Ｂｓ値として０．５をレジスタに書き出す。そうでなければ、ステップ２７０９に移る。
【０１９０】
〔３−２−１３〕
次に、第６の発明が図１２に示すＢｓ値定義を用いて実行するステップ１６０５の処理の詳細について、図２８のフローチャートに従って説明する。
【０１９１】
ここで、図１２に示すＢｓ値定義は、図３に示すＢｓ値定義に、『下位階層の平坦度に応じて、Ｂｓ＝３．５にする』という定義と、『下位階層の平坦度に応じて、Ｂｓ＝２．５にする』という定義と、『下位階層の平坦度に応じて、Ｂｓ＝１．５にする』という定義と、『下位階層の平坦度に応じて、Ｂｓ＝０．５にする』という定義とが加わったものである。
【０１９２】
このフローチャートは、図２７のフローチャートにおける量子化ステップ幅を平坦度に置き換えるとともに、量子化ステップ幅の閾値Ｔi ' （ｉ＝１，２，３，４）を平坦度の閾値Ｆi ' （ｉ＝１，２，３，４）に置き換えたものである。
【０１９３】
〔４〕本発明のデブロッキング処理装置の構成
次に、本発明のデブロッキング処理を実行する本発明のデブロッキング処理装置の装置構成について説明する。
【０１９４】
〔４−１〕第１，２，３，４の発明を実現するデブロッキング処理装置
図２９〜図３１に従って、第１，２，３，４の発明を実現するデブロッキング処理装置について詳細に説明する。
【０１９５】
〔４−１−１〕
先ず最初に、第１，２，３，４の発明を実現するデブロッキング処理装置の全体的な構成について、図２９に従って説明する。
【０１９６】
２９０１：２９０１は信号記憶部である。この信号記憶部２９０１は、デブロッキングフィルタの対象となる階層のフレーム信号を書き込む。
【０１９７】
２９０２：２９０２は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部２９０２は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるのか否かの判定処理を行い、下位階層参照ブロック境界である場合は、左側平坦区間長算出部２９０３、右側平坦区間長算出部２９０９に処理を渡し、そうでなければ、デフォルトデブロッキング処理部２９２２に処理を渡す。
【０１９８】
２９０３：２９０３は左側平坦区間長算出部である。この左側平坦区間長算出部２９０３は、デブロッキング処理対象となる画素値を入力とし、左側平坦区間長を算出する処理を行い、算出した値を左側平坦区間長記憶部２９０４に格納する。具体的な算出方法は、式（６）に従う。
【０１９９】
２９０５：２９０５は左側平坦度算出部である。この左側平坦度算出部２９０５は、デブロッキング処理対象となる画素値、左側平坦区間長記憶部２９０４から読み出した左側平坦区間長、左側平均値記憶部２９０８から読み出した左側平均値を入力とし、左側平坦度を算出する処理を行い、算出した値を左側平坦度記憶部２９０６に書き出す。具体的な算出方法は、式（１）の左辺に従う。
【０２００】
２９０７：２９０７は左側平均値算出部である。この左側平均値算出部２９０７は、デブロッキング処理対象となる画素値、左側平坦区間長記憶部２９０４から読み出した左側平坦区間長を入力とし、左側平均値を算出する処理を行い、算出した値を左側平均値記憶部２９０８に書き出す。具体的な算出方法は、式（５）に従う。
【０２０１】
２９０９：２９０９は右側平坦区間長算出部である。この右側平坦区間長算出部２９０９は、デブロッキング処理対象となる画素値を入力とし、右側平坦区間長を算出する処理を行い、算出した値を右側平坦区間長記憶部２９１０に格納する。具体的な算出方法は、式（７）に従う。
【０２０２】
２９１１：２９１１は右側平坦度算出部である。この右側平坦度算出部２９１１は、デブロッキング処理対象となる画素値、右側平坦区間長記憶部２９１０から読み出した右側平坦区間長、右側平均値記憶部２９１４から読み出した右側平均値を入力とし、右側平坦度を算出する処理を行い、算出した値を右側平坦度記憶部２９１２に書き出す。具体的な算出方法は、式（２）の左辺に従う。
【０２０３】
２９１３：２９１３は右側平均値算出部である。この右側平均値算出部２９１３は、デブロッキング処理対象となる画素値、右側平坦区間長記憶部２９１０から読み出した右側平坦区間長を入力とし、右側平均値を算出する処理を行い、算出した値を右側平均値記憶部２９１４に書き出す。具体的な算出方法は、式（５）に従う。
【０２０４】
２９１５：２９１５はエッジ強度算出部である。このエッジ強度算出部２９１５は、デブロッキング処理対象となる画素値を入力とし、エッジ強度を算出する処理を行い、算出した値をエッジ強度記憶部２９１６に書き出す。具体的な算出方法は、式（３）の左辺に従う。
【０２０５】
２９１７：２９１７は下位階層平坦度算出部である。この下位階層平坦度算出部２９１７は、デブロッキング処理対象のブロックと対応する位置にある下位階層信号のブロックの画素値を入力とし、下位階層平坦度を算出する処理を行い、算出した値を下位階層平坦度記憶部２９１８に書き出す。具体的な算出方法は、式（４）の左辺に従う。
【０２０６】
２９１９：２９１９は量子化ステップ幅記憶部である。この量子化ステップ幅記憶部２９１９は、デブロッキング処理対象のブロックと対応する位置にある下位階層信号のブロックの量子化ステップ幅を記憶する。この量子化ステップ幅記憶部２９１９に記憶される下位階層の量子化ステップ幅については、後述するデブロッキング処理部２９２１がフィルタ関数の関数形状を決定する際に使用されることになる。
【０２０７】
２９２０：２９２０はエッジ判定部である。このエッジ判定部２９２０は、デブロッキング処理対象となる画素値、左側平坦度記憶部２９０６から読み出した左側平坦度、右側平坦度記憶部２９１２から読み出した右側平坦度、エッジ強度記憶部２９１６から読み出したエッジ強度、下位階層平坦度記憶部２９１８から読み出した下位階層平坦度を入力とし、不等式（１），不等式（２），不等式（３），不等式（４）を満たすか否かの判定処理を行い、満たす場合は、現在のデブロッキング処理対象のブロック境界のエッジが符号化に起因するものと判断し、デブロッキング処理部２９２１に処理を渡し、そうでなければ、デフォルトデブロッキング処理部２９２２に処理を渡す。上述の４つの不等式で用いる閾値は外部から与えられるものとする。
【０２０８】
２９２１：２９２１はデブロッキング処理部である。このデブロッキング処理部２９２１の詳細な構成については、図３０および図３１で説明する。なお、デブロッキング処理部２９２１の処理結果であるデブロッキング処理後の画素値はデブロッキング処理画素値記憶部２９２３に書き出す。
【０２０９】
２９２２：２９２２はデフォルトデブロッキング処理部である。このデフォルトデブロッキング処理部２９２２は、デブロッキング処理対象となる画素値、ＡＶＣのデブロッキング処理に必要となる情報を入力として、デブロッキング処理を行い、デブロッキング処理後の画素値をデブロッキング処理画素値記憶部２９２３に書き出す。
【０２１０】
デフォルトデブロッキング処理部２９２２は、具体的には、デブロッキング処理対象となるブロックの復号画素値、同ブロックの画素値、同ブロックの量子パラメータ、同ブロックに隣接するブロックの復号画素値、同ブロックに隣接するブロックに対する量子化パラメータ、デブロッキング処理対象となる画素値に隣接するブロックの画素値、デブロッキング処理対象となるブロックの画素値に対する復号信号、ブロックサイズ、マクロブロック中での空間位置、符号化モード（イントラ符号化、インター符号化）、直交変換係数、参照フレームインデックス、参照フレームの枚数、動きベクトルを入力として、デブロッキング処理を行い、デブロッキング処理後の画素値をデブロッキング処理画素値記憶部２９２３に書き出す。なお、ここでのデブロッキング処理は、下位階層の信号を参照しない処理であり、例えば、Ｈ．２６４で用いられるデブロッキング処理である。
【０２１１】
〔４−１−２〕
次に、第１の発明を実現するデブロッキング処理部２９２１の詳細な構成について、図３０に従って説明する。
【０２１２】
３００１：３００１は入力データ記憶部である。この入力データ記憶部３００１は、デブロッキング処理対象となる画素値、左側平均値、右側平均値、左側平坦区間長、右側平坦区間長、下位階層信号を格納する。
【０２１３】
３００２：３００２は補間処理部である。この補間処理部３００２は、入力データ記憶部３００１から読み出した下位階層信号を入力とし、補間処理を行い、補間後の信号を信号記憶部３００３に書き出す。具体的な補間処理は、式（１０）に従う。なお、補間フィルタｈx （）は外部から与えられるものとする。
【０２１４】
３００４：３００４は左側階層間誤差算出部である。この左側階層間誤差算出部３００４は、入力データ記憶部３００１から読み出したデブロッキング処理対象となる画素値、下位階層の画素値、信号記憶部３００３から読み出した補間後の信号を入力とし、左側階層間誤差を算出する処理を行い、算出した左側階層間誤差を左側階層間誤差記憶部３００５に書き出す。具体的な左側階層間誤差の算出は、式（９）に従う。
【０２１５】
３００６：３００６は右側階層間誤差算出部である。この右側階層間誤差算出部３００６は、入力データ記憶部３００１から読み出したデブロッキング処理対象となる画素値、下位階層の画素値、信号記憶部３００３から読み出した補間後の信号を入力とし、右側階層間誤差を算出する処理を行い、算出した右側階層間誤差を右側階層間誤差記憶部３００７に書き出す。具体的な右側階層間誤差の算出は、式（８）に従う。
【０２１６】
３００８：３００８は階層間誤差大小比較判定部である。この階層間誤差大小比較判定部３００８は、左側階層間誤差記憶部３００５から読み出した左側階層間誤差、右側階層間誤差記憶部３００７から読み出した右側階層間誤差を入力とし、両者の大小比較を行い、右側階層間誤差が大きい場合は、右側区間デブロッキング処理部３０１２に処理を渡し、そうでない場合は、左側区間デブロッキング処理部３００９に処理を渡す。
【０２１７】
３００９：３００９は左側区間に対するデブロッキング処理を実行する左側区間デブロッキング処理部である。この左側区間デブロッキング処理部３００９は、右側平均値、左側平坦区間長、右側平坦区間長を入力とし、デブロッキング処理を行い、処理後の信号を信号記憶部３０１０に書き出す。具体的なデブロッキング処理は式（１２）に従う。
【０２１８】
３０１１：３０１１は繰返し処理判定部である。この繰返し処理判定部３０１１は、左側区間デブロッキング処理部３００９の処理を左側平坦区間および右側平坦区間内の全ての画素に対して行う。
【０２１９】
３０１２：３０１２は右側区間に対するデブロッキング処理を実行する右側区間デブロッキング処理部である。この右側区間デブロッキング処理部３０１２は、左側平均値、右側平坦区間長、左側平坦区間長を入力とし、デブロッキング処理を行い、処理後の信号を信号記憶部３０１３に書き出す。具体的なデブロッキング処理は式（１１）に従う。
【０２２０】
３０１４：３０１４は繰返し処理判定部である。この繰返し処理判定部３０１４は、右側区間デブロッキング処理部３０１２の処理を左側平坦区間および右側平坦区間内の全ての画素に対して行う。
【０２２１】
〔４−１−３〕
次に、第２，３，４の発明を実現するデブロッキング処理部２９２１の詳細な構成について、図３１に従って説明する。
【０２２２】
３１０１：３１０１は入力データ記憶部である。この入力データ記憶部３１０１は、左側平均値、右側平均値、左側平坦区間長、右側平坦区間長、下位階層信号を格納する。
【０２２３】
３１０２：３１０２はフィルタ関数記憶部である。このフィルタ関数記憶部３０１２は、デブロッキングフィルタの関数形を格納する。ここで言う、関数形とは、例えば、式（１３）、式（１４）または式（１５）で表されるデブロッキングフィルタである。
【０２２４】
３１０３：３１０３はフィルタ関数形状パラメータ設定部である。このフィルタ関数形状パラメータ設定部３１０３は、下位階層信号を入力とし（例えば、量子化ステップ幅記憶部２９１９に記憶される下位階層の量子化ステップ幅を入力とし）、同信号を基にデブロッキングフィルタの形状を制御するパラメータを設定する処理を行い、同パラメータをフィルタ関数形状パラメータ記憶部３１０４に書き出す。
【０２２５】
３１０５：３１０５は画素値補正処理部である。この画素値補正処理部３１０５は、フィルタ関数記憶部３１０２から読み出したフィルタ関数、フィルタ関数形状パラメータ記憶部３１０４から読み出したパラメータ、入力データ記憶部３１０１から読み出したデブロッキング処理対象となる画素を入力として、デブロッキング処理を行い、同デブロッキング処理後の画素値を補正画素値記憶部３１０６に書き出す。具体的には、式（１３）、式（１４）または式（１５）に従うものとする。
【０２２６】
３１０７：３１０７は繰返し処理判定部である。この繰返し処理判定部３１０７は、画素値補正処理部３１０５の処理を左側平坦区間内および右側平坦区間内の全ての画素に対して行う。
【０２２７】
〔４−２〕第５，６の発明を実現するデブロッキング処理装置
図３２〜図４４に従って、第５，６の発明を実現するデブロッキング処理装置について詳細に説明する。
【０２２８】
〔４−２−１〕
先ず最初に、第５，６の発明を実現するデブロッキング処理装置の全体的な構成について、図３２に従って説明する。
【０２２９】
３２０１：３２０１は信号記憶部である。この信号記憶部３２０１は、デブロッキングフィルタの対象となる階層のフレーム信号を書き込む。
【０２３０】
３２０２：３２０２はブロック情報記憶部である。このブロック情報記憶部３２０２は、ＡＶＣのデブロッキング処理に必要となる情報を書き込む。具体的には、デブロッキング処理対象となるブロックの復号画素値、同ブロックの画素値、同ブロックの量子パラメータ、同ブロックに隣接するブロックの復号画素値、同ブロックに隣接するブロックに対する量子化パラメータ、デブロッキング処理対象となる画素値に隣接するブロックの画素値、デブロッキング処理対象となるブロックの画素値に対する復号信号、ブロックサイズ、マクロブロック中での空間位置、符号化モード（イントラ符号化、インター符号化）、直交変換係数、参照フレームインデックス、参照フレームの枚数、動きベクトルを書き込む。
【０２３１】
３２０３：３２０３は下位階層平坦度算出部である。この下位階層平坦度算出部３２０３は、デブロッキング処理対象となるブロックに対応する位置にある下位階層信号を入力とし、下位階層平坦度を算出する処理を行い、算出した下位階層平坦度を下位階層平坦度記憶部３２０４に書き出す。具体的な算出は式（１６）に従う。
【０２３２】
３２０５：３２０５は量子化ステップ幅記憶部である。この量子化ステップ幅記憶部３２０５は、デブロッキング処理対象となるブロックに対応する位置にある下位階層信号のブロックに対する量子化パラメータを書き込む。
【０２３３】
３２０６：３２０６はＢｓ値算出部である。このＢｓ値算出部３２０６は、信号記憶部３２０１から読み出したデブロッキングフィルタの対象となる階層のフレーム信号、ブロック情報記憶部３２０２から読み出したＡＶＣのデブロッキング処理に必要となる情報、下位階層平坦度記憶部３２０４から読み出した下位階層平坦度、量子化ステップ幅記憶部３２０５から読み出した下位階層で対応するブロックの量子化パラメータを入力とし、Ｂｓ値を算出する処理を行い、算出したＢｓ値をＢｓ値記憶部３２０７に書き出す。このＢｓ値算出部３２０６の詳細な構成については、図３３〜図４４で説明する。
【０２３４】
３２０８：３２０８はデブロッキング処理部である。このデブロッキング処理部３２０８は、信号記憶部３２０１から読み出したデブロッキングフィルタの対象となる階層のフレーム信号、ブロック情報記憶部３２０２から読み出したＡＶＣのデブロッキング処理に必要となる情報、量子化ステップ幅記憶部３２０５から読み出した下位階層で対応するブロックの量子化パラメータ、Ｂｓ値記憶部３２０７から読み出したＢｓ値を入力とし、デブロッキング処理を行い、処理後の画素値をデブロッキング処理画素値記憶部３２０９に書き出す。
【０２３５】
〔４−２−２〕
次に、第５の発明を実現するＢｓ値算出部３２０６が図５（ａ）に示すＢｓ値定義を用いる場合の詳細な構成について、図３３に従って説明する。
【０２３６】
ここで、図５（ａ）に示すＢｓ値定義は、図３に示すＢｓ値定義の条件４に、『または、ＰとＱの境界が下位階層参照ブロック境界となる』という条件が加わったものとして定義されている。
【０２３７】
３３０１：３３０１は条件４判定部である。この条件４判定部３３０１は、信号記憶部３２０１、ブロック情報記憶部３２０２、下位階層平坦度記憶部３２０４、量子化ステップ幅記憶部３２０５から読み出した情報を入力とし、処理対象画素がＡＶＣのデブロッキング処理対象となる画素値であり、かつ図３の条件４を満たすか否かの判断を行い、満たす場合は、Ｂｓ値を４として、Ｂｓ値記憶部３３０２に書き出す。一方、これらの条件を満たさなければ、下位階層参照ブロック境界判定部３３１０に処理を渡す。
【０２３８】
３３０３：３３０３は条件３判定部である。この条件３判定部３３０３は、信号記憶部３２０１、ブロック情報記憶部３２０２、下位階層平坦度記憶部３２０４、量子化ステップ幅記憶部３２０５から読み出した情報を入力とし、処理対象画素がＡＶＣのデブロッキング処理対象となる画素値であり、かつ図３の条件３を満たすか否かの判断を行い、満たす場合は、Ｂｓ値を３として、Ｂｓ値記憶部３３０４に書き出す。一方、これらの条件を満たさなければ、条件２判定部３３０５に処理を渡す。
【０２３９】
３３０５：３３０５は条件２判定部である。この条件２判定部３３０５は、信号記憶部３２０１、ブロック情報記憶部３２０２、下位階層平坦度記憶部３２０４、量子化ステップ幅記憶部３２０５から読み出した情報を入力とし、処理対象画素がＡＶＣのデブロッキング処理対象となる画素値であり、かつ図３の条件２を満たすか否かの判断を行い、満たす場合は、Ｂｓ値を２として、Ｂｓ値記憶部３３０６に書き出す。一方、これらの条件を満たさなければ、条件１判定部３３０７に処理を渡す。
【０２４０】
３３０７：３３０７は条件１判定部である。この条件１判定部３３０７は、信号記憶部３２０１、ブロック情報記憶部３２０２、下位階層平坦度記憶部３２０４、量子化ステップ幅記憶部３２０５から読み出した情報を入力とし、処理対象画素がＡＶＣのデブロッキング処理対象となる画素値であり、かつ図３の条件１を満たすか否かの判断を行い、満たす場合は、Ｂｓ値を１として、Ｂｓ値記憶部３３０８に書き出す。一方、これらの条件を満たさなければ、Ｂｓ値を０として、Ｂｓ値記憶部３３０９に書き出す。
【０２４１】
３３１０：３３１０は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部３３１０は、条件４判定部３３０１の条件が満たされない場合に処理に入る。この下位階層参照ブロック境界判定部３３１０は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、Ｂｓ値を４として、Ｂｓ値記憶部３３０２に書き出す。そうでなければ、条件３判定部３３０３に処理を渡す。
【０２４２】
〔４−２−３〕
次に、第５の発明を実現するＢｓ値算出部３２０６が図５（ｂ）に示すＢｓ値定義を用いる場合の詳細な構成について、図３４に従って説明する。
【０２４３】
ここで、図５（ｂ）に示すＢｓ値定義は、図３に示すＢｓ値定義の条件３に、『または、ＰとＱの境界が下位階層参照ブロック境界となる』という条件が加わったものとして定義されている。
【０２４４】
３４０１から３４０９の処理については、各々、３３０１から３３０９の処理と同様である。なお、条件分岐後の移動先は図３３の例とは異なるが、条件分岐における条件は同一である。
【０２４５】
３４１０：３４１０は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部３４１０は、条件３判定部３４０３の条件が満たされない場合に処理に入る。この下位階層参照ブロック境界判定部３４１０は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、Ｂｓ値を３として、Ｂｓ値記憶部３４０４に書き出す。そうでなければ、条件２判定部３４０５に処理を渡す。
【０２４６】
〔４−２−４〕
次に、第５の発明を実現するＢｓ値算出部３２０６が図６（ａ）に示すＢｓ値定義を用いる場合の詳細な構成について、図３５に従って説明する。
【０２４７】
ここで、図６（ａ）に示すＢｓ値定義は、図３に示すＢｓ値定義の条件２に、『または、ＰとＱの境界が下位階層参照ブロック境界となる』という条件が加わったものとして定義されている。
【０２４８】
３５０１から３５０９の処理については、各々、３３０１から３３０９の処理と同様である。なお、条件分岐後の移動先は図３３の例とは異なるが、条件分岐における条件は同一である。
【０２４９】
３５１０：３５１０は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部３５１０は、条件２判定部３５０５の条件が満たされない場合に処理に入る。この下位階層参照ブロック境界判定部３５１０は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、Ｂｓ値を２として、Ｂｓ値記憶部３５０６に書き出す。そうでなければ、条件１判定部３５０７に処理を渡す。
【０２５０】
〔４−２−５〕
次に、第５の発明を実現するＢｓ値算出部３２０６が図６（ｂ）に示すＢｓ値定義を用いる場合の詳細な構成について、図３６に従って説明する。
【０２５１】
ここで、図６（ｂ）に示すＢｓ値定義は、図３に示すＢｓ値定義の条件１に、『または、ＰとＱの境界が下位階層参照ブロック境界となる』という条件が加わったものとして定義されている。
【０２５２】
３６０１から３６０９の処理については、各々、３３０１から３３０９の処理と同様である。なお、条件分岐後の移動先は図３３の例とは異なるが、条件分岐における条件は同一である。
【０２５３】
３６１０：３６１０は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部３６１０は、条件１判定部３６０７の条件が満たされない場合に処理に入る。この下位階層参照ブロック境界判定部３６１０は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、Ｂｓ値を１として、Ｂｓ値記憶部３６０８に書き出す。そうでなければ、Ｂｓ値を０として、Ｂｓ値記憶部３６０９に書き出す。
【０２５４】
〔４−２−６〕
次に、第５の発明を実現するＢｓ値算出部３２０６が図７に示すＢｓ値定義を用いる場合の詳細な構成について、図３７に従って説明する。
【０２５５】
ここで、図７に示すＢｓ値定義は、図３に示すＢｓ値定義の各条件に、『または、ＰとＱの境界が下位階層参照ブロック境界となり、かつ、下位階層信号においてブロックＰ，Ｑに対応する位置のブロックの量子化ステップ幅がＴi （ｉ＝１〜４）以下となる』という条件が加わったものとして定義されている。
【０２５６】
３７０１から３７０９の処理については、各々、３３０１から３３０９の処理と同様である。なお、条件分岐後の移動先は図３３の例とは異なるが、条件分岐における条件は同一である。
【０２５７】
３７１０：３７１０は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部３７１０は、条件４判定部３７０１の条件が満たされない場合に処理に入る。この下位階層参照ブロック境界判定部３７１０は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、量子化ステップ幅閾値判定部３７１１に処理を渡し、そうでなければ、条件３判定部３７０３に処理を渡す。
【０２５８】
３７１１：３７１１は量子化ステップ幅閾値判定部である。この量子化ステップ幅閾値判定部３７１１は、現在のデブロッキング処理対象のブロックと対応する位置の下位階層におけるブロックに対する量子化ステップ幅を入力とし、同量子化ステップ幅が閾値Ｔ4 以下であるか否かの判定処理を行い、この閾値以下となる場合は、Ｂｓ値を４としてＢｓ値記憶部３７０２に書き出す。そうでなければ、条件３判定部３７０３に処理を渡す。
【０２５９】
３７１２：３７１２は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部３７１２は、条件３判定部３７０３の条件が満たされない場合に処理に入る。この下位階層参照ブロック境界判定部３７１２は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、量子化ステップ幅閾値判定部３７１３に処理を渡し、そうでなければ、条件２判定部３７０５に処理を渡す。
【０２６０】
３７１３：３７１３は量子化ステップ幅閾値判定部である。この量子化ステップ幅閾値判定部３７１３は、現在のデブロッキング処理対象のブロックと対応する位置の下位階層におけるブロックに対する量子化ステップ幅を入力とし、同量子化ステップ幅が閾値Ｔ3 以下であるか否かの判定処理を行い、この閾値以下となる場合は、Ｂｓ値を３としてＢｓ値記憶部３７０４に書き出す。そうでなければ、条件２判定部３７０５に処理を渡す。
【０２６１】
３７１４：３７１４は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部３７１４は、条件２判定部３７０５の条件が満たされない場合に処理に入る。この下位階層参照ブロック境界判定部３７１４は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、量子化ステップ幅閾値判定部３７１５に処理を渡し、そうでなければ、条件１判定部３７０７に処理を渡す。
【０２６２】
３７１５：３７１５は量子化ステップ幅閾値判定部である。この量子化ステップ幅閾値判定部３７１５は、現在のデブロッキング処理対象のブロックと対応する位置の下位階層におけるブロックに対する量子化ステップ幅を入力とし、同量子化ステップ幅が閾値Ｔ2 以下であるか否かの判定処理を行い、この閾値以下となる場合は、Ｂｓ値を２としてＢｓ値記憶部３７０６に書き出す。そうでなければ、条件１判定部３７０７に処理を渡す。
【０２６３】
３７１６：３７１６は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部３７１６は、条件１判定部３７０７の条件が満たされない場合に処理に入る。この下位階層参照ブロック境界判定部３７１６は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、量子化ステップ幅閾値判定部３７１７に処理を渡し、そうでなければ、Ｂｓ値を０としてＢｓ値記憶部３７０９に書き出す。
【０２６４】
３７１７：３７１７は量子化ステップ幅閾値判定部である。この量子化ステップ幅閾値判定部３７１７は、現在のデブロッキング処理対象のブロックと対応する位置の下位階層におけるブロックに対する量子化ステップ幅を入力とし、同量子化ステップ幅が閾値Ｔ1 以下であるか否かの判定処理を行い、この閾値以下となる場合は、Ｂｓ値を１としてＢｓ値記憶部３７０８に書き出す。そうでなければ、Ｂｓ値を０としてＢｓ値記憶部３７０９に書き出す。
【０２６５】
〔４−２−７〕
次に、第５の発明を実現するＢｓ値算出部３２０６が図８に示すＢｓ値定義を用いる場合の詳細な構成について、図３８に従って説明する。
【０２６６】
ここで、図８に示すＢｓ値定義は、図３に示すＢｓ値定義の各条件に、『または、ＰとＱの境界が下位階層参照ブロック境界となり、かつ、下位階層信号においてブロックＰ，Ｑのブロック境界に対応する位置の平坦度がＦi （ｉ＝１〜４）以下となる』という条件が加わったものとして定義されている。
【０２６７】
この装置構成は、図３７の装置構成における量子化ステップ幅を平坦度に置き換えるとともに、量子化ステップ幅の閾値Ｔi （ｉ＝１，２，３，４）を平坦度の閾値Ｆi （ｉ＝１，２，３，４）に置き換えたものである。
【０２６８】
〔４−２−８〕
次に、第６の発明を実現するＢｓ値算出部３２０６が図９（ａ）に示すＢｓ値定義を用いる場合の詳細な構成について、図３９に従って説明する。
【０２６９】
ここで、図９（ａ）に示すＢｓ値定義は、図３に示すＢｓ値定義に、『ＰとＱの境界が下位階層参照ブロック境界となる場合には、Ｂｓ＝３．５とする』という定義が加わったものである。
【０２７０】
３９０１から３９０９の処理については、各々、３３０１から３３０９の処理と同様である。
【０２７１】
３９１０：３９１０は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部３９１０は、条件４判定部３９０１の条件が満たされない場合に処理に入る。この下位階層参照ブロック境界判定部３９１０は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、Ｂｓ値を３．５として、Ｂｓ値記憶部３９１１に書き出す。そうでなければ、条件３判定部３９０３に処理を渡す。
【０２７２】
〔４−２−９〕
次に、第６の発明を実現するＢｓ値算出部３２０６が図９（ｂ）に示すＢｓ値定義を用いる場合の詳細な構成について、図４０に従って説明する。
【０２７３】
ここで、図９（ｂ）に示すＢｓ値定義は、図３に示すＢｓ値定義に、『ＰとＱの境界が下位階層参照ブロック境界となる場合には、Ｂｓ＝２．５とする』という定義が加わったものである。
【０２７４】
４００１から４００９の処理については、各々、３３０１から３３０９の処理と同様である。なお、条件分岐後の移動先は図３３の例とは異なるが、条件分岐における条件は同一である。
【０２７５】
４０１０：４０１０は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部４０１０は、条件３判定部４００３の条件が満たされない場合に処理に入る。この下位階層参照ブロック境界判定部４０１０は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、Ｂｓ値を２．５として、Ｂｓ値記憶部４０１１に書き出す。そうでなければ、条件２判定部４００５に処理を渡す。
【０２７６】
〔４−２−１０〕
次に、第６の発明を実現するＢｓ値算出部３２０６が図１０（ａ）に示すＢｓ値定義を用いる場合の詳細な構成について、図４１に従って説明する。
【０２７７】
ここで、図１０（ａ）に示すＢｓ値定義は、図３に示すＢｓ値定義に、『ＰとＱの境界が下位階層参照ブロック境界となる場合には、Ｂｓ＝１．５とする』という定義が加わったものである。
【０２７８】
４１０１から４１０９の処理については、各々、３３０１から３３０９の処理と同様である。なお、条件分岐後の移動先は図３３の例とは異なるが、条件分岐における条件は同一である。
【０２７９】
４１１０：４１１０は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部４１１０は、条件２判定部４１０５の条件が満たされない場合に処理に入る。この下位階層参照ブロック境界判定部４１１０は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、Ｂｓ値を１．５として、Ｂｓ値記憶部４１１１に書き出す。そうでなければ、条件１判定部４１０７に処理を渡す。
【０２８０】
〔４−２−１１〕
次に、第６の発明を実現するＢｓ値算出部３２０６が図１０（ｂ）に示すＢｓ値定義を用いる場合の詳細な構成について、図４２に従って説明する。
【０２８１】
ここで、図１０（ｂ）に示すＢｓ値定義は、図３に示すＢｓ値定義に、『ＰとＱの境界が下位階層参照ブロック境界となる場合には、Ｂｓ＝０．５とする』という定義が加わったものである。
【０２８２】
４２０１から４２０９の処理については、各々、３３０１から３３０９の処理と同様である。なお、条件分岐後の移動先は図３３の例とは異なるが、条件分岐における条件は同一である。
【０２８３】
４２１０：４２１０は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部４２１０は、条件１判定部４２０７の条件が満たされない場合に処理に入る。この下位階層参照ブロック境界判定部４２１０は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、Ｂｓ値を０．５として、Ｂｓ値記憶部４２１１に書き出す。そうでなければ、Ｂｓ値を０として、Ｂｓ値記憶部４２０９に書き出す。
【０２８４】
〔４−２−１２〕
次に、第６の発明を実現するＢｓ値算出部３２０６が図１１に示すＢｓ値定義を用いる場合の詳細な構成について、図４３に従って説明する。
【０２８５】
ここで、図１１に示すＢｓ値定義は、図３に示すＢｓ値定義に、『下位階層の量子化ステップ幅に応じて、Ｂｓ＝３．５にする』という定義と、『下位階層の量子化ステップ幅に応じて、Ｂｓ＝２．５にする』という定義と、『下位階層の量子化ステップ幅に応じて、Ｂｓ＝１．５にする』という定義と、『下位階層の量子化ステップ幅に応じて、Ｂｓ＝０．５にする』という定義とが加わったものである。
【０２８６】
４３０１から４３０９の処理については、各々、３３０１から３３０９の処理と同様である。なお、条件分岐後の移動先は図３３の例とは異なるが、条件分岐における条件は同一である。
【０２８７】
４３１０：４３１０は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部４３１０は、条件４判定部４３０１の条件が満たされない場合に処理に入る。この下位階層参照ブロック境界判定部４３１０は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、量子化ステップ幅閾値判定部４３１１に処理を渡し、そうでなければ、条件３判定部４３０３に処理を渡す。
【０２８８】
４３１１：４３１１は量子化ステップ幅閾値判定部である。この量子化ステップ幅閾値判定部４３１１は、現在のデブロッキング処理対象のブロックと対応する位置の下位階層におけるブロックに対する量子化ステップ幅を入力とし、同量子化ステップ幅が閾値Ｔ4 ' 以下であるか否かの判定処理を行い、この閾値以下となる場合は、Ｂｓ値を３．５として、Ｂｓ値記憶部４３１８に書き出す。そうでなければ、条件３判定部４３０３に処理を渡す。
【０２８９】
４３１２：４３１２は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部４３１２は、条件３判定部４３０３の条件が満たされない場合に処理に入る。この下位階層参照ブロック境界判定部４３１２は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、量子化ステップ幅閾値判定部４３１３に処理を渡し、そうでなければ、条件２判定部４３０５に処理を渡す。
【０２９０】
４３１３：４３１３は量子化ステップ幅閾値判定部である。この量子化ステップ幅閾値判定部４３１３は、現在のデブロッキング処理対象のブロックと対応する位置の下位階層におけるブロックに対する量子化ステップ幅を入力とし、同量子化ステップ幅が閾値Ｔ3 ' 以下であるか否かの判定処理を行い、この閾値以下となる場合は、Ｂｓ値を２．５として、Ｂｓ値記憶部４３１９に書き出す。そうでなければ、条件２判定部４３０５に処理を渡す。
【０２９１】
４３１４：４３１４は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部４３１４は、条件２判定部４３０５の条件が満たされない場合に処理に入る。この下位階層参照ブロック境界判定部４３１４は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、量子化ステップ幅閾値判定部４３１５に処理を渡し、そうでなければ、条件１判定部４３０７に処理を渡す。
【０２９２】
４３１５：４３１５は量子化ステップ幅閾値判定部である。この量子化ステップ幅閾値判定部４３１５は、現在のデブロッキング処理対象のブロックと対応する位置の下位階層におけるブロックに対する量子化ステップ幅を入力とし、同量子化ステップ幅が閾値Ｔ2 ' 以下であるか否かの判定処理を行い、この閾値以下となる場合は、Ｂｓ値を１．５として、Ｂｓ値記憶部４３２０に書き出す。そうでなければ、条件１判定部４３０７に処理を渡す。
【０２９３】
４３１６：４３１６は下位階層参照ブロック境界判定部である。この下位階層参照ブロック境界判定部４３１６は、条件１判定部４３０７の条件が満たされない場合に処理に入る。この下位階層参照ブロック境界判定部４３１６は、現在のデブロッキング処理対象のブロックの空間位置を入力とし、同空間位置が下位階層参照ブロック境界であるか否かの判定処理を行い、下位階層参照ブロック境界である場合は、量子化ステップ幅閾値判定部４３１７に処理を渡し、そうでなければ、Ｂｓ値を０として、Ｂｓ値記憶部４３０９に書き出す。
【０２９４】
４３１７：４３１７は量子化ステップ幅閾値判定部である。この量子化ステップ幅閾値判定部４３１７は、現在のデブロッキング処理対象のブロックと対応する位置の下位階層におけるブロックに対する量子化ステップ幅を入力とし、同量子化ステップ幅が閾値Ｔ1 ' 以下であるか否かの判定処理を行い、この閾値以下となる場合は、Ｂｓ値を０．５として、Ｂｓ値記憶部４３２１に書き出す。そうでなければ、Ｂｓ値を０として、Ｂｓ値記憶部４３０９に書き出す。
【０２９５】
〔４−２−１３〕
次に、第６の発明を実現するＢｓ値算出部３２０６が図１２に示すＢｓ値定義を用いる場合の詳細な構成について、図４４に従って説明する。
【０２９６】
ここで、図１２に示すＢｓ値定義は、図３に示すＢｓ値定義に、『下位階層の平坦度に応じて、Ｂｓ＝３．５にする』という定義と、『下位階層の平坦度に応じて、Ｂｓ＝２．５にする』という定義と、『下位階層の平坦度に応じて、Ｂｓ＝１．５にする』という定義と、『下位階層の平坦度に応じて、Ｂｓ＝０．５にする』という定義とが加わったものである。
【０２９７】
この装置構成は、図４３の装置構成における量子化ステップ幅を平坦度に置き換えるとともに、量子化ステップ幅の閾値Ｔi ' （ｉ＝１，２，３，４）を平坦度の閾値Ｆi ' （ｉ＝１，２，３，４）に置き換えたものである。
【０２９８】
〔５〕本発明のデブロッキング処理を実装する映像符号化装置及び映像復号装置
次に、本発明のデブロッキング処理を実装する映像符号化装置及び映像復号装置の装置構成について説明する。
【０２９９】
第１，２，３，４の発明は原画素値に対して処理を行うことから、映像符号化装置に実装されることになる。一方、第５，６の発明はＨ．２６４で用いられているデブロッキング処理を拡張したものであることから、映像符号化装置及び映像復号装置に実装されることになる。
【０３００】
図４５に、第５，６の発明を実装する映像符号化装置の装置構成を図示し、図４６に、第５，６の発明を実装する映像復号装置の装置構成を図示する。
【０３０１】
次に、これらの図に従って、第５，６の発明を実装する映像符号化装置及び映像復号装置の装置構成について説明する。
【０３０２】
〔５−１〕第５，６の発明を実装する映像符号化装置
（１）入力部の構成
図４５に示す第５，６の発明を実装する映像符号化装置において、階層分離器４５００は、入力画像である符号化対象フレームを入力として、空間解像度の異なる階層に分離し、各階層の信号を各々、基本階層信号記憶部４５０１、拡張階層信号記憶部４５０２に書き出す。
【０３０３】
（２）基本階層符号化部の構成
変換部４５０３は、基本階層信号記憶部４５０１から読み出された基本階層信号と予測信号記憶部４５１４から読み出された予測信号との差分値を入力として、例えば離散コサイン変換などの変換処理を行い、算出した変換係数を変換係数記憶部４５０４に書き出す。量子化部４５０５は、変換係数記憶部４５０４から読み出した変換係数を入力として、量子化処理を行い、その結果を量子化値記憶部４５０６に書き出す。逆量子化部４５０７は、量子化値記憶部４５０６から読み出した量子化値を入力として、逆量子化処理を行い、その結果を逆量子化値記憶部４５０８に書き出す。逆変換部４５０９は、逆量子化値記憶部４５０８から読み出した変換係数（逆量子化値）を入力として、逆変換処理を行い、その結果をローカル復号信号記憶部４５１０に書き出す。
【０３０４】
デブロッキング処理部４５１１は、ローカル復号信号記憶部４５１０から読み出したローカル復号信号を入力として、デブロッキング処理を行い、その結果をデブロッキング信号記憶部４５１２に書き出す。
【０３０５】
予測処理部４５１３は、デブロッキング信号記憶部４５１２から読み出されたデブロッキング処理の施されたローカル復号信号と遅延器４５１５の出力信号との加算値を入力として、予測処理を行い、その結果を予測信号記憶部４５１４に書き出す。ここで、予測信号記憶部４５１４から読み出された予測信号は、遅延器４５１５に入力され、１フレーム分遅延された後、デブロッキング信号記憶部４５１２から読み出されたローカル復号信号と加算されることになる。エントロピ符号化部４５１６は、量子化値記憶部４５０６から読み出した量子化値を入力として、エントロピ符号化処理を行い、符号化結果を符号化ストリーム記憶部４５１７に書き出す。
【０３０６】
（３）拡張階層符号化部の構成
変換部４５１８は、拡張階層信号記憶部４５０２から読み出された拡張階層信号と予測信号記憶部４５３０から読み出された予測信号との差分値を入力として、例えば離散コサイン変換などの変換処理を行い、算出した変換係数を変換係数記憶部４５１９に書き出す。量子化部４５２０は、変換係数記憶部４５１９から読み出した変換係数を入力として、量子化処理を行い、その結果を量子化値記憶部４５２１に書き出す。逆量子化部４５２２は、量子化値記憶部４５２１から読み出した量子化値を入力として、逆量子化処理を行い、その結果を逆量子化値記憶部４５２３に書き出す。逆変換部４５２４は、逆量子化値記憶部４５２３から読み出した変換係数（逆量子化値）を入力として、逆変換処理を行い、その結果をローカル復号信号記憶部４５２５に書き出す。
【０３０７】
デブロッキング処理部４５２６は、本発明に特徴的な処理を行うものであって、ローカル復号信号記憶部４５２５から読み出したローカル復号信号を入力として、下位階層（基本階層）の空間位置に応じた適応的なデブロッキング処理を行い、その結果をデブロッキング信号記憶部４５２７に書き出す。下位階層空間位置識別処理部４５２８は、本発明に特徴的な処理を行うものであって、ローカル復号信号記憶部４５２５から読み出したローカル復号信号を入力として、下位階層（基本階層）の空間位置の識別処理を行って、その結果をデブロッキング処理部４５２６に通知する。
【０３０８】
予測処理部４５２９は、デブロッキング信号記憶部４５２７から読み出されたデブロッキング処理の施されたローカル復号信号と遅延器４５３１の出力信号との加算値を入力として、予測処理を行い、その結果を予測信号記憶部４５３０に書き出す。ここで、予測信号記憶部４５３０から読み出された予測信号は、遅延器４５３１に入力され、１フレーム分遅延された後、デブロッキング信号記憶部４５２７から読み出されたローカル復号信号と加算されることになる。エントロピ符号化部４５３２は、量子化値記憶部４５２１から読み出した量子化値を入力として、エントロピ符号化処理を行い、符号化結果を符号化ストリーム記憶部４５３３に書き出す。
【０３０９】
（４）出力部の構成
多重化器４５３４は、符号化ストリーム記憶部４５１７および符号化ストリーム記憶部４５３３から読み出した符号化ストリームを多重化する処理を行い、スケーラブル符号化結果として出力する。
【０３１０】
〔５−２〕第５，６の発明を実装する映像復号装置
（１）入力部の構成
図４６に示す第５，６の発明を実装する映像復号装置において、分離器４６００は、図４５に示す映像符号化装置（スケーラブル符号化装置）から出力された符号化ストリームを入力として、その符号化ストリームを基本階層符号化ストリームと拡張階層符号化ストリームとに分離して、各々、基本階層符号化ストリーム記憶部４６０１、拡張階層符号化ストリーム記憶部４６０２に書き出す。
【０３１１】
（２）基本階層復号部の構成
エントロピ復号部４６０３は、基本階層符号化ストリーム記憶部４６０１から読み出した符号化ストリームを入力として、エントロピ復号処理を行い、その結果を量子化値記憶部４６０４に書き出す。逆量子化部４６０５は、量子化値記憶部４６０４から読み出した量子化値を入力として、逆量子化処理を行い、その結果を変換係数記憶部４６０６に書き出す。逆変換部４６０７は、変換係数記憶部４６０６から読み出した変換係数を入力として、逆変換処理を行い、その結果を復号信号記憶部４６０８に書き出す。
【０３１２】
デブロッキング処理部４６０９は、復号信号記憶部４６０８から読み出した復号信号を入力として、デブロッキング処理を行い、その結果をデブロッキング信号記憶部４６１０に書き出す。
【０３１３】
加算器４６１１は、デブロッキング信号記憶部４６１０から読み出したデブロッキング処理の施された復号信号と予測信号記憶部４６１５の出力信号との加算値を基本階層信号記憶部４６１２に書き出す。ここで、基本階層信号記憶部４６１２に記憶された基本階層信号は外部に出力されるとともに、遅延器４６１３に出力され、遅延器４６１３において１フレーム分遅延される。予測処理部４６１４は、遅延器４６１３の出力信号を入力として、予測処理を行い、その結果を予測信号記憶部４６１５に書き出す。
【０３１４】
（３）拡張階層復号部の構成
エントロピ復号部４６１６は、拡張階層符号化ストリーム記憶部４６０２から読み出した符号化ストリームを入力として、エントロピ復号処理を行い、その結果を量子化値記憶部４６１７に書き出す。逆量子化部４６１８は、量子化値記憶部４６１７から読み出した量子化値を入力として、逆量子化処理を行い、その結果を変換係数記憶部４６１９に書き出す。逆変換部４６２０は、変換係数記憶部４６１９から読み出した変換係数を入力として、逆変換処理を行い、その結果を復号信号記憶部４６２１に書き出す。
【０３１５】
デブロッキング処理部４６２２は、本発明に特徴的な処理を行うものであって、復号信号記憶部４６２１から読み出した復号信号を入力として、下位階層（基本階層）の空間位置に応じた適応的なデブロッキング処理を行い、その結果をデブロッキング信号記憶部４６２３に書き出す。下位階層空間位置識別処理部４６２４は、本発明に特徴的な処理を行うものであって、復号信号記憶部４６２１から読み出した復号信号を入力として、下位階層（基本階層）の空間位置の識別処理を行って、その結果をデブロッキング処理部４６２２に通知する。
【０３１６】
加算器４６２５は、デブロッキング信号記憶部４６２３から読み出したデブロッキング処理の施された復号信号と予測信号記憶部４６２９の出力信号との加算値を拡張階層信号記憶部４６２６に書き出す。ここで、拡張階層信号記憶部４６２６に記憶された拡張階層信号は外部に出力されるとともに、遅延器４６２７に出力され、遅延器４６２７において１フレーム分遅延される。予測処理部４６２８は、遅延器４６２７の出力信号を入力として、予測処理を行い、その結果を予測信号記憶部４６２９に書き出す。
【産業上の利用可能性】
【０３１７】
以上説明したように、本発明は、ブロックベースの予測符号化を行うスケーラブル符号化方式に従って映像を符号化し復号する場合に適用できるものであり、ブロック境界部に局在する予測誤差をより効果的に抑制することが可能となることで、復号画像におけるブロック歪みを大幅に低減できるようになる。
【図面の簡単な説明】
【０３１８】
【図１】空間解像度の異なる２つの階層におけるブロック境界の説明図である。
【図２】本発明のデブロッキング処理の説明図である。
【図３】ＪＳＶＭで定義されたデブロッキング処理におけるＢｓ値定義の説明図である。
【図４】ＪＳＶＭで定義されたデブロッキング処理におけるブロック定義の説明図である。
【図５】本発明のデブロッキング処理におけるＢｓ値定義の説明図である。
【図６】本発明のデブロッキング処理におけるＢｓ値定義の説明図である。
【図７】本発明のデブロッキング処理におけるＢｓ値定義の説明図である。
【図８】本発明のデブロッキング処理におけるＢｓ値定義の説明図である。
【図９】本発明のデブロッキング処理におけるＢｓ値定義の説明図である。
【図１０】本発明のデブロッキング処理におけるＢｓ値定義の説明図である。
【図１１】本発明のデブロッキング処理におけるＢｓ値定義の説明図である。
【図１２】本発明のデブロッキング処理におけるＢｓ値定義の説明図である。
【図１３】第１，２，３，４の発明が実行するデブロッキング処理の全体的な処理のフローチャートである。
【図１４】第１の発明が実行するステップ１３１０の処理の詳細なフローチャートである。
【図１５】第２，３，４の発明が実行するステップ１３１０の処理の詳細なフローチャートである。
【図１６】第５，６が実行するデブロッキング処理の全体的な処理のフローチャートである。
【図１７】第５の発明が実行するステップ１６０５の処理の詳細なフローチャートである。
【図１８】第５の発明が実行するステップ１６０５の処理の詳細なフローチャートである。
【図１９】第５の発明が実行するステップ１６０５の処理の詳細なフローチャートである。
【図２０】第５の発明が実行するステップ１６０５の処理の詳細なフローチャートである。
【図２１】第５の発明が実行するステップ１６０５の処理の詳細なフローチャートである。
【図２２】第５の発明が実行するステップ１６０５の処理の詳細なフローチャートである。
【図２３】第６の発明が実行するステップ１６０５の処理の詳細なフローチャートである。
【図２４】第６の発明が実行するステップ１６０５の処理の詳細なフローチャートである。
【図２５】第６の発明が実行するステップ１６０５の処理の詳細なフローチャートである。
【図２６】第６の発明が実行するステップ１６０５の処理の詳細なフローチャートである。
【図２７】第６の発明が実行するステップ１６０５の処理の詳細なフローチャートである。
【図２８】第６の発明が実行するステップ１６０５の処理の詳細なフローチャートである。
【図２９】第１，２，３，４の発明を実現するデブロッキング処理装置の全体的な構成図である。
【図３０】第１の発明を実現するデブロッキング処理部の詳細な構成図である。
【図３１】第２，３，４の発明を実現するデブロッキング処理部の詳細な構成図である。
【図３２】第５，６の発明を実現するデブロッキング処理装置の全体的な構成図である。
【図３３】第５の発明を実現するＢｓ値算出部の詳細な構成図である。
【図３４】第５の発明を実現するＢｓ値算出部の詳細な構成図である。
【図３５】第５の発明を実現するＢｓ値算出部の詳細な構成図である。
【図３６】第５の発明を実現するＢｓ値算出部の詳細な構成図である。
【図３７】第５の発明を実現するＢｓ値算出部の詳細な構成図である。
【図３８】第５の発明を実現するＢｓ値算出部の詳細な構成図である。
【図３９】第６の発明を実現するＢｓ値算出部の詳細な構成図である。
【図４０】第６の発明を実現するＢｓ値算出部の詳細な構成図である。
【図４１】第６の発明を実現するＢｓ値算出部の詳細な構成図である。
【図４２】第６の発明を実現するＢｓ値算出部の詳細な構成図である。
【図４３】第６の発明を実現するＢｓ値算出部の詳細な構成図である。
【図４４】第６の発明を実現するＢｓ値算出部の詳細な構成図である。
【図４５】第５，６の発明を実装する映像符号化装置の装置構成図である。
【図４６】第５，６の発明を実装する映像復号装置の装置構成図である。
【符号の説明】
【０３１９】
２９０１  信号記憶部
２９０２  下位階層参照ブロック境界判定部
２９０３  左側平坦区間長算出部
２９０４  左側平坦区間長記憶部
２９０５  左側平坦度算出部
２９０６  左側平坦度記憶部
２９０７  左側平均値算出部
２９０８  左側平均値記憶部
２９０９  右側平坦区間長算出部
２９１０  右側平坦区間長記憶部
２９１１  右側平坦度算出部
２９１２  右側平坦度記憶部
２９１３  右側平均値算出部
２９１４  右側平均値記憶部
２９１５  エッジ強度算出部
２９１６  エッジ強度記憶部
２９１７  下位階層平坦度算出部
２９１８  下位階層平坦度記憶部
２９１９  量子化ステップ幅記憶部
２９２０  エッジ判定部
２９２１  デブロッキング処理部
２９２２  デフォルトデブロッキング処理部
２９２３  デブロッキング処理画素値記憶部
【図１】
0004504291.tif 000013
【図２】
0004504291.tif 000014
【図３】
0004504291.tif 000015
【図４】
0004504291.tif 000016
【図５】
0004504291.tif 000017
【図６】
0004504291.tif 000018
【図７】
0004504291.tif 000019
【図８】
0004504291.tif 000020
【図９】
0004504291.tif 000021
【図１０】
0004504291.tif 000022
【図１１】
0004504291.tif 000023
【図１２】
0004504291.tif 000024
【図１３】
0004504291.tif 000025
【図１４】
0004504291.tif 000026
【図１５】
0004504291.tif 000027
【図１６】
0004504291.tif 000028
【図１７】
0004504291.tif 000029
【図１８】
0004504291.tif 000030
【図１９】
0004504291.tif 000031
【図２０】
0004504291.tif 000032
【図２１】
0004504291.tif 000033
【図２２】
0004504291.tif 000034
【図２３】
0004504291.tif 000035
【図２４】
0004504291.tif 000036
【図２５】
0004504291.tif 000037
【図２６】
0004504291.tif 000038
【図２７】
0004504291.tif 000039
【図２８】
0004504291.tif 000040
【図２９】
0004504291.tif 000041
【図３０】
0004504291.tif 000042
【図３１】
0004504291.tif 000043
【図３２】
0004504291.tif 000044
【図３３】
0004504291.tif 000045
【図３４】
0004504291.tif 000046
【図３５】
0004504291.tif 000047
【図３６】
0004504291.tif 000048
【図３７】
0004504291.tif 000049
【図３８】
0004504291.tif 000050
【図３９】
0004504291.tif 000051
【図４０】
0004504291.tif 000052
【図４１】
0004504291.tif 000053
【図４２】
0004504291.tif 000054
【図４３】
0004504291.tif 000055
【図４４】
0004504291.tif 000056
【図４５】
0004504291.tif 000057
【図４６】
0004504291.tif 000058