(57)【特許請求の範囲】
【請求項１】
映像フレームにおける複数の画素（１１、１３、１５、１７）のブロック（１０）と、複数の画素（２１、２３、２５、２７）の隣接ブロック（２０）との間のブロック境界（１）におけるブロッキングアーチファクトを低減する方法であって、
（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））＞＞４に等しい第１のオフセットを算出するステップ（Ｓ１）と、
この式中、＞＞は右シフト演算を示し、ｐ０は前記ブロック（１０）における前記ブロック境界（１）に対して垂直である画素（１１、１３、１５、１７）のライン（１２）の前記ブロック境界（１）に最近接する画素（１１）の画素値を示し、ｐ１は画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に２番目に最近接する画素（１３）の画素値を示し、ｑ０は前記隣接ブロック（２０）における前記ブロック境界（１）に対して垂直である画素（２１、２３、２５、２７）の対応するライン（２２）の前記ブロック境界（１）に最近接する画素（２１）の画素値を示し、ｑ１は画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に２番目に最近接する画素（２３）の画素値を示す；
前記第１のオフセットを、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記画素値ｐ０に加算して、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の変更後の画素値ｐ０’を形成することにより、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記画素値ｐ０を変更するステップ（Ｓ２）と、
画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記画素値ｑ０から前記第１のオフセットを減算して、画素（１１、１３、１５、１７）の前記対応するライン（１２）の前記ブロック境界（１）に最近接する前記画素（２１）の変更された画素値ｑ０’を形成することにより、画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記画素値ｑ０を変更するステップ（Ｓ３）と、
を有することを特徴とする方法。
【請求項２】
前記第１のオフセットを、−ｔCより小さい場合に−ｔCに等しくなるように前記第１のオフセットを設定し、且つ前記第１のオフセットがｔCより大きい場合にｔCに等しくなるように前記第１のオフセットを設定することにより、−ｔCとｔCとの間隔内になるように前記第１のオフセットをクリップするステップ（Ｓ１１）を更に備える、
ここで、ｔCは、前記ブロック（１０）に割り当てられた量子化パラメータ値に依存する閾値である、
ことを特徴とする請求項１記載の方法。
【請求項３】
画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記変更後の画素値ｐ０’がゼロより小さい場合にゼロに等しくなるように、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記変更された画素値ｐ０’を設定し、且つ画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記変更後の画素値ｐ０’が規定の最大値より大きい場合に前記規定の最大値に等しくなるように画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記変更された画素値ｐ０’を設定することにより、ゼロと前記規定の最大値との間隔内になるように画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記変更後の画素値ｐ０’をクリップするステップ（Ｓ２１）と、
画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記変更後の画素値ｑ０’がゼロより小さい場合にゼロに等しくなるように画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記変更された画素値ｑ０’を設定し、且つ画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記変更された画素値ｑ０’が前記規定の最大値より大きい場合に前記規定の最大に等しくなるように画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記変更された画素値ｑ０’を設定することにより、ゼロと前記規定の最大値との間隔内になるように画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記変更された画素値ｑ０’をクリップするステップ（Ｓ２１）と
を更に有することを特徴とする請求項１又は２に記載の方法。
【請求項４】
（ｐ２＋ｐ０−２×ｐ１＋２×Δ）／４に基づくように第２のオフセットを算出するステップ（Ｓ３０）と、
この式中、ｐ２は画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に３番目に最近接する画素（１５）の画素値を示し、Δは前記第１のオフセットを示す；
（ｑ２＋ｑ０−２×ｑ１−２×Δ）／４に基づくように第３のオフセットを算出するステップ（Ｓ３１）と、
この式中、ｑ２は画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に３番目に最近接する画素（２５）の画素値を示す；
前記第２のオフセットを画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に２番目に最近接する前記画素（１３）の前記画素値ｐ１に加算し、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に２番目に最近接する前記画素（１３）の変更後の画素値ｐ１’を形成することにより、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に２番目に最近接する前記画素（１３）の前記画素値ｐ１を変更するステップ（Ｓ３２）と、
前記第３のオフセットを画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に２番目に最近接する前記画素（２３）の前記画素値ｑ１に加算し、画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に２番目に最近接する前記画素（２３）の変更後の画素値ｑ１’を形成することにより、画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に２番目に最近接する前記画素（２３）の前記画素値ｑ１を変更するステップ（Ｓ３３）と
を更に有することを特徴とする請求項１乃至３のいずれか１項に記載の方法。
【請求項５】
前記第２のオフセットを算出するステップ（Ｓ３０）は、＞＞が右シフト演算を示す場合に、
（（（ｐ２＋ｐ０＋１）＞＞１）−ｐ１＋Δ）＞＞１
に等しくなるように前記第２のオフセットを算出するステップ（Ｓ３０）を含み、
前記第３のオフセットを算出するステップ（Ｓ３１）は、
（（（ｑ２＋ｑ０＋１）＞＞１）−ｑ１−Δ）＞＞１
に等しくなるように前記第３のオフセットを算出するステップ（Ｓ３１）を含むことを特徴とする請求項４記載の方法。
【請求項６】
前記第２のオフセットが−ｔC2より小さい場合に−ｔC2に等しくなるように前記第２のオフセットを設定し、且つ前記第２のオフセットがｔC2より大きい場合にｔC2に等しくなるように前記第２のオフセットを設定することにより、−ｔC2とｔC2との間隔内になるように前記第２のオフセットをクリップするステップ（Ｓ４１）と、
ここで、ｔC2は、前記ブロック（１０）に割り当てられた量子化パラメータ値に依存する閾値である；
前記第３のオフセットが−ｔC2より小さい場合に−ｔC2に等しくなるように前記第３のオフセットを設定し、且つ前記第３のオフセットがｔC2より大きい場合にｔC2に等しくなるように前記第３のオフセットを設定することにより、−ｔC2とｔC2の間隔内に前記第３のオフセットをクリップするステップ（Ｓ４１）と
を更に備えることを特徴とする請求項４又は５記載の方法。
【請求項７】
画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に２番目に最近接する前記画素（１３）の前記変更された画素値ｐ１’がゼロより小さい場合にゼロに等しくなるように、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に２番目に最近接する前記画素（１３）の前記変更後の画素値ｐ１’を設定し、且つ画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に２番目に最近接する前記画素（１３）の前記変更後の画素値ｐ１’が規定の最大値より大きい場合に前記規定の最大値に等しくなるように画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に２番目に最近接する前記画素（１３）の前記変更された画素値ｐ１’を設定することにより、ゼロと前記規定の最大値との間隔内になるように画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に２番目に最近接する前記画素（１３）の前記変更された画素値ｐ１’をクリップするステップ（Ｓ２１）と、
画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に２番目に最近接する前記画素（２３）の前記変更された画素値ｑ１’がゼロより小さい場合にゼロに等しくなるように画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に２番目に最近接する前記画素（２３）の前記変更後の画素値ｑ１’を設定し、且つ画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に２番目に最近接する前記画素（２３）の前記変更された画素値ｑ１’が前記規定の最大値より大きい場合に前記規定の最大に等しくなるように前記画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に２番目に最近接する前記画素（２３）の前記変更された画素値ｑ１’を設定することにより、ゼロと前記規定の最大値との間隔内になるように画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に２番目に最近接する前記画素（２３）の前記変更された画素値ｑ１’をクリップするステップ（Ｓ２１）と
を更に有することを特徴とする請求項４乃至６のいずれか１項に記載の方法。
【請求項８】
（ｐ３＋ｐ１−２×ｐ２＋２×Δp1）／４に基づくように第４のオフセットを算出するステップ（Ｓ５０）と、
この式中、ｐ３は画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に４番目に最近接する画素（１７）の画素値を示し、Δp1は前記第２のオフセットを示す；
（ｑ３＋ｑ１−２×ｑ２＋２×Δq1）／４に基づくように第５のオフセットを算出するステップ（Ｓ５１）と、
この式中、ｑ３は画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に３番目に最近接する画素（２７）の画素値を示し、Δq1は前記第３のオフセットを示す；
前記第４のオフセットを画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に３番目に最近接する前記画素（１５）の前記画素値ｐ２に加算し、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に３番目に最近接する前記画素（１５）の変更後の画素値ｐ２’を形成することにより、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に３番目に最近接する前記画素（１５）の前記画素値ｐ２を変更するステップ（Ｓ５２）と、
前記第５のオフセットを画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に３番目に最近接する前記画素（２５）の前記画素値ｑ２に加算し、画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に３番目に最近接する前記画素（２５）の変更後の画素値ｑ２’を形成することにより、画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に３番目に最近接する前記画素（２５）の前記画素値ｑ２を変更するステップ（Ｓ５３）と
を更に有することを特徴とする請求項４又は７に記載の方法。
【請求項９】
前記第４のオフセットを算出するステップ（Ｓ５１）は、＞＞が右シフト演算を示す場合に、
（（（ｐ３＋ｐ１＋１）＞＞１）−ｐ２＋Δp1）＞＞１
に等しくなるように前記第４のオフセットを算出するステップ（Ｓ５１）を含み、
前記第５のオフセットを算出するステップ（Ｓ５２）は、
（（（ｑ３＋ｑ１＋１）＞＞１）−ｑ２＋Δq1）＞＞１
に等しくなるように前記第５のオフセットを算出するステップ（Ｓ５２）を含む
ことを特徴とする請求項８に記載の方法。
【請求項１０】
前記第１のオフセットを算出するステップ（Ｓ１）は、（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））／１６に基づくように前記第１のオフセットを算出する（Ｓ１）デブロッキングフィルタユニット（１００、２００、３００）を備え、
前記画素値ｐ０を変更するステップ（Ｓ２）は、前記第１のオフセットを、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記画素値ｐ０に加算し、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記変更後の画素値ｐ０’を形成することにより、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記画素値ｐ０を変更する（Ｓ２）前記デブロッキングフィルタユニット（１００、２００、３００）を備え、
前記画素値ｑ０を変更するステップ（Ｓ３）は、画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記画素値ｑ０から前記第１のオフセットを減算し、画素（１１、１３、１５、１７）の前記対応するライン（１２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記変更された画素値ｑ０’を形成することにより、画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記画素値ｑ０を変更する（Ｓ３）前記デブロッキングフィルタユニット（１００、２００、３００）を備える
ことを特徴とする請求項１乃至９のいずれか１項に記載の方法。
【請求項１１】
映像フレームにおける複数の画素（１１、１３、１５、１７）のブロック（１０）と複数の画素（２１、２３、２５、２７）の隣接ブロック（２０）との間のブロック境界（１）におけるブロッキングアーチファクトを低減するデブロッキングフィルタユニット（１００、２００）であって、
（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））＞＞４に等しい第１のオフセットを算出するように構成された第１のオフセット算出器（１１０、２１０）と、
この式中、＞＞は右シフト演算を示し、ｐ０は前記ブロック（１０）における前記ブロック境界（１）に対して垂直である画素（１１、１３、１５、１７）のライン（１２）の前記ブロック境界（１）に最近接する画素（１１）の画素値を示し、ｐ１は画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に２番目に最近接する画素（１３）の画素値を示し、ｑ０は前記隣接ブロック（２０）における前記ブロック境界（１）に対して垂直である画素（２１、２３、２５、２７）の対応するライン（２２）の前記ブロック境界（１）に最近接する画素（２１）の画素値を示し、ｑ１は画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に２番目に最近接する画素（２３）の画素値を示す；
前記第１のオフセットを画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記画素値ｐ０に加算し、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の変更後の画素値ｐ０’を形成することにより、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）のｐ０前記画素値を変更し、且つ、画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記画素値ｑ０から前記第１のオフセットを減算し、画素（１１、１３、１５、１７）の前記対応するライン（１２）の前記ブロック境界（１）に最近接する前記画素（２１）の変更後の画素値ｑ０’を形成することにより、画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記画素値ｑ０を変更するように構成された画素値変更器（１２０、２２０）と、
を有することを特徴とするデブロッキングフィルタユニット（１００、２００）。
【請求項１２】
前記第１のオフセットが−ｔCより小さい場合に−ｔCに等しくなるように前記第１のオフセットを設定し、且つ前記第１のオフセットがｔCより大きい場合にｔCに等しくなるように前記第１のオフセットを設定することにより、−ｔCとｔCとの間隔内になるように前記第１のオフセットをクリップするように構成された第１のクリッピングユニット（２３０）を更に備える、
ここで、ｔCは前記ブロック（１０）に割り当てられた量子化パラメータ値に依存する閾値である；
ことを特徴とする請求項１１に記載のデブロッキングフィルタユニット。
【請求項１３】
画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記変更された画素値ｐ０’がゼロより小さい場合にゼロに等しくなるように、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記変更後の画素値ｐ０’を設定し、且つ画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記変更された画素値ｐ０’が規定の最大値より大きい場合に前記規定の最大値に等しくなるように画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記変更後の画素値ｐ０’を設定することにより、ゼロと前記規定の最大値との間隔内になるように画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記変更された画素値ｐ０’をクリップし、且つ、画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記変更された画素値ｑ０’がゼロより小さい場合にゼロに等しくなるように画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記変更後の画素値ｑ０’を設定し、且つ、画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記変更後の画素値ｑ０’が前記規定の最大値より大きい場合に前記規定の最大に等しくなるように前記画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記変更された画素値ｑ０’を設定することにより、ゼロと前記規定の最大値との間隔内になるように画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記変更された画素値ｑ０’をクリップするように構成された第２のクリッピングユニット（２４０）を更に有する
ことを特徴とする請求項１１又は１２に記載のデブロッキングフィルタユニット。
【請求項１４】
（ｐ２＋ｐ０−２×ｐ１＋２×Δ）／４に基づくように第２のオフセットを算出するように構成された第２のオフセット算出器（２５０）と、
この式中、ｐ２は画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に３番目に最近接する画素（１５）の画素値を示し、Δは前記第１のオフセットを示す；
（ｑ２＋ｑ０−２×ｑ１−２×Δ）／４に基づくように第３のオフセットを算出するように構成された第３のオフセット算出器（２６０）と、
この式中、ｑ２は画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に３番目に最近接する画素（２５）の画素値を示す；
を更に有し、
前記画素値変更器（２２０）は、前記第２のオフセットを画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に３番目に最近接する前記画素（１３）の前記画素値ｐ２に加算し、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に３番目に最近接する前記画素（１５）の変更後の画素値ｐ２’を形成することにより、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に３番目に最近接する前記画素（１５）の前記画素値ｐ２を変更し、且つ、前記第３のオフセットを画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に３番目に最近接する前記画素（２５）の前記画素値ｑ２に加算し、画素（１１、１３、１５、１７）の前記対応するライン（１２）の前記ブロック境界（１）に３番目に最近接する変更後の画素値ｑ２’を形成することにより、画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に３番目に最近接する前記画素（２５）の変更された画素値ｑ２を変更するように構成されることを特徴とする請求項１１乃至１３のいずれか１項に記載のデブロッキングフィルタユニット。
【請求項１５】
前記第２のオフセット算出器（２５０）は、＞＞が右シフト演算を示す場合に（（（ｐ２＋ｐ０＋１）＞＞１）−ｐ１＋Δ）＞＞１に等しくなるように前記第２のオフセットを算出するように構成され、
前記第３のオフセット算出器（２６０）は、（（（ｑ２＋ｑ０＋１）＞＞１）−ｑ１−Δ）＞＞１に等しくなるように前記第３のオフセットを算出するように構成されることを特徴とする請求項１４記載のデブロッキングフィルタユニット。
【請求項１６】
前記第２のオフセットが−ｔC2より小さい場合に−ｔC2に等しくなるように前記第２のオフセットを設定し且つ前記第２のオフセットがｔC2より大きい場合にｔC2に等しくなるように前記第２のオフセットを設定することにより、−ｔC2とｔC2との間隔内になるように前記第２のオフセットをクリップし、且つ、前記第３のオフセットが−ｔC2より小さい場合に−ｔC2に等しくなるように前記第３のオフセットを設定し且つ前記第３のオフセットがｔC2より大きい場合にｔC2に等しくなるように前記第３のオフセットを設定することにより、−ｔC2とｔC2との間隔内に前記第３のオフセットをクリップするように構成された第３のクリッピングユニット（２７０）を更に備える、
ここで、ｔC2は前記ブロックに割り当てられた量子化パラメータ値に依存する閾値である；
ことを特徴とする請求項１４又は１５記載のデブロッキングフィルタユニット。
【請求項１７】
画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に２番目に最近接する前記画素（１３）の前記変更された画素値ｐ１’がゼロより小さい場合にゼロに等しくなるように画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に２番目に最近接する前記画素（１３）の前記変更後の画素値ｐ１’を設定し、且つ、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に２番目に最近接する前記画素（１３）の前記変更された画素値ｐ１’が規定の最大値より大きい場合に前記規定の最大値に等しくなるように画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に２番目に最近接する前記画素（１３）の前記変更された画素値ｐ１’を設定することにより、ゼロと前記規定の最大値との間隔内になるように画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に２番目に最近接する前記画素（１３）の前記変更された画素値ｐ１’をクリップし、且つ、画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に２番目に最近接する前記画素（２３）の前記変更された画素値ｑ１’がゼロより小さい場合にゼロに等しくなるように画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に２番目に最近接する前記画素（２３）の前記変更後の画素値ｑ１’を設定し、且つ、画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に２番目に最近接する前記画素（２３）の前記変更された画素値ｑ１’が前記規定の最大値より大きい場合に前記規定の最大に等しくなるように画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に２番目に最近接する前記画素（２３）の前記変更後の画素値ｑ１’を設定することにより、ゼロと前記規定の最大値との間隔内になるように画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に２番目に最近接する前記画素（２３）の前記変更された画素値ｑ１’をクリップするように構成された第２のクリッピングユニット（２４０）を更に備える
ことを特徴とする請求項１４乃至１６のいずれか１項に記載のデブロッキングフィルタユニット。
【請求項１８】
（ｐ３＋ｐ１−２×ｐ２＋２×Δp1）／４に基づくように第４のオフセットを算出するように構成された第４のオフセット算出器（２８０）と、
この式中、ｐ３は画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に４番目に最近接する画素（１７）の画素値を示し、Δp1は前記第２のオフセットを示す；
（ｑ３＋ｑ１−２×ｑ２＋２×Δq1）／４に基づくように第５のオフセットを算出するように構成された第５のオフセット算出器（２９０）と、
この式中、ｑ３は画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に３番目（２７）に最近接する画素の画素値を示し、Δq1は前記第３のオフセットを示す;
を更に備え、
前記画素値変更器（２２０）は、前記第４のオフセットを画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に３番目に最近接する前記画素（１５）の前記画素値ｐ２に加算し、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に３番目に最近接する前記画素（１５）の変更後の画素値ｐ２’を形成することにより、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に３番目に最近接する前記画素（１５）の前記画素値ｐ２を変更し、且つ前記第５のオフセットを画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に３番目に最近接する前記画素（２５）の前記画素値ｑ２に加算して画素（１１、１３、１５、１７）の前記対応するライン（１２）の前記ブロック境界（１）に３番目に最近接する前記画素（２５）の前記変更後の画素値ｑ２’を形成することにより、画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に３番目に最近接する前記画素（２５）の前記画素値ｑ２を変更するように構成される
ことを特徴とする請求項１４乃至１７のいずれか１項に記載のデブロッキングフィルタユニット。
【請求項１９】
前記第４のオフセット算出器（２８０）は、＞＞が右シフト演算を示す場合に（（（ｐ３＋ｐ１＋１）＞＞１）−ｐ２＋Δｐ１）＞＞１に等しくなるように前記第４のオフセットを算出するように構成され、
前記第５のオフセット算出器（２９０）は、（（（ｑ３＋ｑ１＋１）＞＞１）−ｑ２＋Δｑ１）＞＞１に等しくなるように前記第５のオフセットを算出するように構成される
ことを特徴とする請求項１８に記載のデブロッキングフィルタユニット。
【請求項２０】
請求項１１乃至１９のいずれか１項に記載のデブロッキングフィルタユニット（１００）を備えることを特徴とする符号器（４０）。
【請求項２１】
請求項１１乃至１９のいずれか１項に記載のデブロッキングフィルタユニット（１００）を備えることを特徴とする復号器（６０）。
【請求項２２】
ユーザ機器であって、
符号化映像フレームを格納するように構成されたメモリ（８４）と、
前記符号化映像フレームを復号化映像フレームに復号化するように構成された請求項２１記載の復号器（６０）と、
前記復号化映像フレームをディスプレイ（８８）上に表示可能な映像データにレンダリングするように構成されたメディアプレーヤ（８６）と、
を備えることを特徴とするユーザ機器（８０）。
【請求項２３】
送出ユニット（３４）と受信ユーザ機器（３６）との間の通信ネットワーク内のネットワークノードとなる、もしくはそれに属するネットワークデバイス（３０）であって、請求項２０に記載の符号器（４０）及び／又は請求項２１に記載の復号器（６０）を有することを特徴とするネットワークデバイス。
【請求項２４】
映像フレームにおける複数の画素（１１、１３、１５、１７）のブロック（１０）と複数の画素（２１、２３、２５、２７）の隣接ブロック（２０）との間のブロック境界（１）におけるブロッキングアーチファクトを低減するコンピュータプログラム（７４）であって、コンピュータ（７０）上で実行される場合に、前記コンピュータを、
（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））＞＞４に等しい第１のオフセットを算出させ、
この式中、＞＞は右シフト演算を示し、ｐ０は前記ブロック（１０）における前記ブロック境界（１）に対して垂直である画素（１１、１３、１５、１７）のライン（１２）の前記ブロック境界（１）に最近接する画素（１１）の画素値を示し、ｐ１は画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に２番目に最近接する画素（１３）の画素値を示し、ｑ０は前記隣接ブロック（２０）における前記ブロック境界（１）に対して垂直である画素（２１、２３、２５、２７）の対応するライン（２２）の前記ブロック境界（１）に最近接する画素（２１）の画素値を示し、ｑ１は画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に２番目に最近接する画素（２３）の画素値を示す；
前記第１のオフセットを画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記画素値に加算することにより、画素（１１、１３、１５、１７）の前記ライン（１２）の前記ブロック境界（１）に最近接する前記画素（１１）の前記画素値を変更させ、
画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記画素値から前記第１のオフセットを減算することにより、画素（２１、２３、２５、２７）の前記対応するライン（２２）の前記ブロック境界（１）に最近接する前記画素（２１）の前記画素値を変更させる、
ためのコード手段を有することを特徴とするコンピュータプログラム（７４）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロック境界におけるブロッキングアーチファクトを低減するデブロッキングフィルタリングに関する。
【背景技術】
【０００２】
デブロッキングフィルタは、ブロッキングアーチファクトを抑制するために映像符号化規格において使用される。元の映像が相対的に個別に処理されるブロックに分割されるため、ブロッキングアーチファクトが発生する。ブロッキングアーチファクトは、ブロックの種々のイントラ予測、量子化効果及び動き補償のために発生しうる。デブロッキングの２つの特定の変形例を以下に説明する。
【０００３】
Ｈ．２６４デブロッキング
Ｈ．２６４等の最新の映像符号化において、後続フレームを符号化又は復号化する場合に後で参照するために、予測及び残差再構成の後であるが再構成の格納前に、ループフィルタとも示されるデブロッキングフィルタがある。デブロッキングフィルタリング処理は、フィルタ決定、フィルタリング動作、クリッピング関数及び画素値の変化等のいくつかのステップから構成される。ボーダーをフィルタリングするか否かは、いくつかの条件の評価に基づいて決定される。フィルタ決定は、マクロブロック（ＭＢ）の種類、隣接ブロック間の動きベクトル（ＭＶ）の差分、隣接ブロックが残差を符号化したか、並びに現在のブロック及び／又は隣接ブロックの局所構造に依存する。
【０００４】
画素に対するフィルタリングの量は、特に、ブロックボーダー、すなわちブロック境界と比較した画素の位置及び残差符号化のために使用された量子化パラメータ（ＱＰ）値に依存する。
【０００５】
フィルタ決定は、３つの画素差分と３つの閾値との比較に基づく。閾値は、量子化パラメータ（ＱＰ）に適応される。例えば、以下の垂直ブロック境界を仮定する。
ａｂｃｄ｜ｅｆｇｈ
ここで、ａ、ｂ  ｃ及びｄは、現在のブロックにおける画素の行の画素の画素値を示し、ｅ、ｆ、ｇ及びｈは、隣接ブロックにおける画素の対応する行の画素の対応する画素値を示す。以下の条件を満たす場合、フィルタ決定は肯定となる。例えば、
ａｂｓ（ｄ−ｅ）＜ｔｈｒ１、ａｂｓ（ｃ−ｄ）＜ｔｈｒ２及びａｂｓ（ｅ−ｆ）＜ｔｈｒ２
ここで、ｔｈｒ１及びｔｈｒ２はＱＰに基づいて適応される。
【０００６】
Ｈ．２６４において２つのフィルタリングモードがある。通常のフィルタリングと呼ばれる第１のフィルタリングモードにおいて、フィルタリングは、フィルタリングが現在の値を変更するｄｅｌｔａ値で示される。ブロック境界に最近接する画素に対するフィルタリングは、ｄ’＝ｄ＋ｄｅｌｔａ及びｅ’＝ｅ−ｄｅｌｔａであり、式中、ｄｅｌｔａはＱＰにより制限される値に対する閾値±ｔｈｒ３にクリップされている。小さいＱＰより大きいＱＰに対しての方が更なるフィルタリングが可能である。クリッピングは、ｄｅｌｔａ＿ｃｌｉｐｐｅｄ＝ｍａｘ（−ｔｈｒ３，ｍｉｎ（ｔｈｒ３，ｄｅｌｔａ））として示され、式中、ｔｈｒ３はフィルタ強度を制御している。ｔｈｒ３のより大きな値はフィルタリングがより強いことを意味し、これは、より強いローパスフィルタリング効果が発生することを意味する。
【０００７】
フィルタ強度は、以下の２つの条件のいずれかを満足する場合に、増加できる。ａｂｓ（ｂ−ｄ）＜ｔｈｒ２、及び、ａｂｓ（ｅ−ｇ）＜ｔｈｒ２。フィルタ強度は、ｄｅｌｔａをより小さくクリップすることで、例えば更なる変形を可能にすることで適応される。
【０００８】
第２のフィルタリングモードは強いフィルタリングと呼ばれるもので、条件：ａｂｓ（ｄ−ｅ）＜ｔｈｒ１／４を満たす場合、マクロブロック内境界にのみ適用されるものである。
【０００９】
Ｈ．２６４におけるデブロッキングフィルタリングの更なる情報は、Ｌｉｓｔ他のＡｄａｐｔｉｖｅ  Ｄｅｂｌｏｃｋｉｎｇ  Ｆｉｌｔｅｒ、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｃｉｒｃｕｉｔｓ  ａｎｄ  Ｓｙｓｔｅｍｓ  ｆｏｒ  Ｖｉｄｅｏ  Ｔｅｃｈｎｏｌｏｇｙ、ｖｏｌ．１３、ｎｏ．７、２００３年７月を参照されたい。
【００１０】
ＨＥＶＣ草案におけるデブロッキング
草案ＨＥＶＣ（高効率映像符号化）仕様書「Ｔｅｓｔ  Ｍｏｄｅｌ  ｕｎｄｅｒ  Ｃｏｎｓｉｄｅｒａｔｉｏｎ」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３文書、ＪＣＴＶＣ−Ｂ２０５、第６．５章のＩｎ−ｌｏｏｐ  ｆｉｌｔｅｒ  ｐｒｏｃｅｓｓにおいて、デブロッキングフィルタはＨ．２６４とは異なる方法で動作する。境界側のブロックのうちの少なくとも１つがイントラ符号化であるか、あるいは非ゼロ係数を有する場合、又はブロックの動きベクトル成分間の差分が１つの整数画素以上である場合、フィルタリングは実行される。例えば、以下の垂直ブロック境界によりブロック間のボーダーをフィルタリングする場合、
ｐ３i  ｐ２i  ｐ１i  ｐ０i｜ｑ０i  ｑ１i  ｑ２i  ｑ３i
ｐｊiは、現在のブロックにおける行番号ｉの画素番号ｊの画素値を示し、ｑｊiは、隣接ブロックにおける行番号ｉの画素番号ｊの画素値を示し、ｉ＝０．．．７、ｊ＝０．．．３であり、以下の条件も満足すべきである。
ｄ＝｜ｐ２2−２×ｐ１2＋ｐ０2｜＋｜ｑ２2−２×ｑ１2＋ｑ０2｜＋
｜ｐ２5−２×ｐ１5＋ｐ０5｜＋｜ｑ２5−２×ｑ１5＋ｑ０5｜＜β
式中、βはＱＰに依存する。上述のＨＥＶＣ仕様書において、ＱＰと共に増加するβのテーブルがある。
【００１１】
この条件を満たし且つ現在のブロックと隣接ブロックとの間でフィルタリングが行われる場合、それぞれ弱いフィルタリング及び強いフィルタリングと呼ばれる２つの種類のフィルタリングのうちの１つが実行される。強いフィルタリング及び弱いフィルタリングは、以下の条件に依存して行毎に個別に選択される。行ｉ＝０．．．７毎に、以下の全ての条件が真である場合に強いフィルタリングが実行され、以下の全ての条件が真でない場合には弱いフィルタリングが実行される。
ｄ＜（β＞＞２）
（｜ｐ３i−ｐ０i｜＋｜ｑ０i−ｑ３i｜）＜（β＞＞３）
｜ｐ０i−ｑ０i｜＜（（５×ｔC＋１）＞＞１）
式中、ｔC及びβはＱＰに依存し、＞＞は右シフト演算子を示す。
【００１２】
ＨＥＶＣ草案における弱いフィルタリング
弱いフィルタリングは、上述の条件に基づいて実行される。実際のフィルタリングは、オフセット（Δ）を算出し、それを元の画素値に加算し、且つその和を０〜２５５の範囲のフィルタリングされた出力画素値にクリップするようにで動作する。
Δ＝Ｃｌｉｐ（−ｔC，ｔC，（１３×（ｑ０i−ｐ０i）＋４×（ｑ１i−ｐ１i）−５×（ｑ２i−ｐ２i）＋１６）＞＞５））
ｐ０i＝Ｃｌｉｐ0-255（ｐ０i＋Δ）
ｑ０i＝Ｃｌｉｐ0-255（ｑ０i−Δ）
ｐ１i＝Ｃｌｉｐ0-255（ｐ１i＋Δ／２）
ｑ１i＝Ｃｌｉｐ0-255（ｑ１i−Δ／２）
ここで、クリップ関数Ｃｌｉｐ（Ａ，Ｂ，ｘ）は、ｘ＜Ａの場合にＣｌｉｐ（Ａ，Ｂ，ｘ）＝Ａ、ｘ＞Ｂの場合にＣｌｉｐ（Ａ，Ｂ，ｘ）＝Ｂ、Ａ≦ｘ≦Ｂの場合にＣｌｉｐ（Ａ，Ｂ，ｘ）＝ｘとして規定され、Ｃｌｉｐ0-255（ｘ）はＣｌｉｐ（０，２５５，ｘ）として規定される。
【００１３】
ＨＥＶＣ草案における強いフィルタリング
強いフィルタリングモードは、以下の演算の集合により実行される。
ｐ０i＝Ｃｌｉｐ0-255（（ｐ２i＋２×ｐ１i＋２×ｐ０i＋２×ｑ０i＋ｑ１i＋４）＞＞３）
ｑ０i＝Ｃｌｉｐ0-255（（ｐ１i＋２×ｐ０i＋２×ｑ０i＋２×ｑ１i＋ｑ２i＋４）＞＞３）
ｐ１i＝Ｃｌｉｐ0-255（（ｐ２i＋ｐ１i＋ｐ０i＋ｑ０i＋２）＞＞２）
ｑ１i＝Ｃｌｉｐ0-255（（ｐ０i＋ｑ０i＋ｑ１i＋ｑ２i＋２）＞＞２）
ｐ２i＝Ｃｌｉｐ0-255（（２×ｐ３i＋３×ｐ２i＋ｐ１i＋ｐ０i＋ｑ０i＋４）＞＞３）
ｑ２i＝Ｃｌｉｐ0-255（（ｐ０i＋ｑ０i＋ｑ１i＋３×ｑ２i＋２×ｑ３i＋４）＞＞３）
【００１４】
ＨＥＶＣにおけるデブロッキングに関する１つの問題は、弱いフィルタが良好なローパス特性を有さないことである。ブロックボーダーから１番目の画素及び２番目の画素が、それぞれΔ及びΔ／２を加算又は減算することで変更されることが分かる。そのようなフィルタでは、ブロックボーダーの近くに現れる可能性のある高周波数及びリンギング(ringing)を除去できない。また、ＨＥＶＣにおけるフィルタの周波数特性は、ブロック境界から２番目の画素（ｐ１i及びｑ１i）をフィルタリングする場合により高い周波数の僅かな増幅を示し、その結果、符号器のレート歪み（ＲＤ）性能は悪化しうる。また、信号の構造がブロック境界の異なる側で異なってよいが、画素ｐ１iに対するオフセットは、画素ｑ１iのオフセットと大きさが等しい。従って、ＨＥＶＣフィルタは、ブロック境界側の局所構造にあまり適応しない。
【００１５】
従って、ブロック境界におけるブロッキングアーチファクトを低減するために使用可能であるが、上述の欠点を有さない効率的なブロッキングフィルタが必要である。
【発明の概要】
【００１６】
本発明の一般的な目的は、映像フレームの画素のブロック間のブロック境界におけるブロッキングアーチファクトを抑制することである。
【００１７】
この目的及び他の目的は、本明細書において開示されるように実施形態により達成される。
【００１８】
実施形態の一態様は、映像フレームの画素のブロックと画素の隣接ブロックとの間のブロック境界におけるブロッキングアーチファクトを低減する方法を規定する。この方法は、（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））／１６に基づくように第１のオフセットを算出する。この式中、ｐ０はブロックにおける画素のラインのブロック境界に最近接する画素の画素値を示し、ｐ１は画素のラインのブロック境界に２番目に最近接する画素の画素値を示し、ｑ０は隣接ブロックにおける画素の対応するラインのブロック境界に最近接する画素の画素値を示し、ｑ１は画素の対応するラインのブロック境界に２番目に最近接する画素の画素値を示す。そして、画素のライン及び画素の対応するラインは、ブロック境界に対して垂直である。画素のラインのブロック境界に最近接する画素の画素値は、第１のオフセットをこの画素の画素値に加算し、変更後の画素値を形成することで変更される。同様に、画素の対応するラインではあるがブロック境界に最近接する画素の画素値は、この画素の画素値から第１のオフセットを減算して変更された画素値を形成することで変更される。
【００１９】
この態様のオプションの一実施形態において、第１のオフセットは、＞＞が右シフト演算を示す場合に（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１）＋８）＞＞４に等しくなるように算出される。
【００２０】
この態様のオプションの一実施形態において、この方法は、第１のオフセットが−ｔCより小さい場合に−ｔCに等しくなるように第１のオフセットを設定し、且つ第１のオフセットがｔCより大きい場合にｔCに等しくなるように第１のオフセットを設定することにより、−ｔCとｔCとの間隔内になるように第１のオフセットをクリップすることを更に備える。ただし、ｔCは、ブロックに割り当てられた量子化パラメータ値に依存する閾値である。
【００２１】
この態様のオプションの一実施形態において、この方法は、ゼロと規定の最大値との間隔内になるように画素のラインの前記ブロック境界に最近接する画素の変更された画素値をクリップし、ゼロと規定の最大値との間隔内になるように画素の対応するラインのブロック境界に最近接する画素の変更された画素値をクリップするステップＳを更に備える。このオプションのクリッピングは、変更された画素値がゼロより小さい場合にゼロに等しくなるように変更された画素値を設定し、且つ変更された画素値が規定の最大値より大きい場合に規定の最大値に等しくなるように変更された画素値を設定することにより実現される。
【００２２】
この態様のオプションの一実施形態において、方法は、（ｐ２＋ｐ０−２×ｐ１＋２×Δ）／４に基づくように第２のオフセットを算出するステップを更に備える。この式中、ｐ２は画素のラインのブロック境界に３番目に最近接する画素の画素値を示し、Δは第１のオフセットを示す。オプションの本実施形態において、この方法は、（ｑ２＋ｑ０−２×ｑ１−２×Δ）／４に基づくように第３のオフセットを算出するステップを更に備える。この式中、ｑ２は画素の対応するラインのブロック境界に３番目に最近接する画素の画素値を示す。そして、画素のラインのブロック境界に２番目に最近接する画素の画素値は、第２のオフセットを画素のラインのブロック境界に２番目に最近接する画素の画素値に加算して変更後の画素値を形成することで変更される。同様に、オプションの本実施形態において、方法は、第３のオフセットを画素の対応するラインのブロック境界に２番目に最近接する画素の画素値に加算して変更後の画素値を形成することにより、画素の対応するラインのブロック境界に２番目に最近接する画素の画素値を変更するステップを更に備える。
【００２３】
この態様のオプションの一実施形態において、第２のオフセットは、＞＞が右シフト演算を示す場合に（（（ｐ２＋ｐ０＋１）＞＞１）−ｐ１＋Δ）＞＞１に等しくなるように算出され、第３のオフセットは、（（（ｑ２＋ｑ０＋１）＞＞１）−ｑ１−Δ）＞＞１に等しくなるように算出される。
【００２４】
この態様のオプションの一実施形態において、この方法は、ブロックに割り当てられた量子化パラメータ値に依存する閾値ｔC2について、−ｔC2とｔC2との間隔内に第２のオフセットをクリップするステップと、−ｔC2とｔC2との間隔内に第３のオフセットをクリップするステップとを更に有する。このオプションのクリッピングは、第２のオフセット又は第３のオフセットが−ｔC2より小さい場合に−ｔC2に等しくなるように第２のオフセット又は第３のオフセットを設定し、且つ第２のオフセット又は第３のオフセットがｔC2より大きい場合にｔC2に等しくなるように第２のオフセット又は第３のオフセットを設定することにより実現される。
【００２５】
この態様のオプションの一実施形態において、方法は、ゼロと規定の最大値との間隔内に画素のラインの前記ブロック境界に２番目に最近接する画素の変更された画素値をクリップするステップと、ゼロと規定の最大値との間隔内に画素の対応するラインのブロック境界に最近接する次の画素の変更された画素値をクリップするステップとを更に有する。このオプションのクリッピングは、変更後の画素値がゼロより小さい場合にゼロに等しくなるように変更された画素値を設定し、且つ変更後の画素値が規定の最大値より大きい場合に規定の最大値に等しくなるように変更後の画素値を設定することにより実現される。
【００２６】
この態様のオプションの一実施形態において、方法は、（ｐ３＋ｐ１−２×ｐ２＋２×Δp1）／４に基づくように第４のオフセットを算出するステップを更に有する。この式中、ｐ３は画素のラインのブロック境界に４番目に最近接する画素の画素値を示し、Δp1は第２のオフセットを示す。オプションの本実施形態において、方法は、（ｑ３＋ｑ１−２×ｑ２＋２×Δq1）／４に基づくように第５のオフセットを算出するステップを更に有する。この式中、ｑ３は画素の対応するラインのブロック境界に３番目に最近接する画素の画素値を示し、Δq1は第３のオフセットを示す。画素のラインのブロック境界に３番目に最近接する画素の画素値は、第４のオフセットを、画素のラインのブロック境界に３番目に最近接する画素の画素値に加算し、変更後の画素値を形成することで変更される。オプションの本実施形態において、この方法は、第５のオフセットを、画素の対応するラインのブロック境界に３番目に最近接する画素の画素値に加算し、変更後の画素値を形成することにより、画素の対応するラインのブロック境界に３番目に最近接する画素の画素値を変更するステップを更に有する。
【００２７】
この態様のオプションの一実施形態において、第４のオフセットは、＞＞が右シフト演算を示す場合に（（（ｐ３＋ｐ１＋１）＞＞１）−ｐ２＋Δp1）＞＞１に等しくなるように算出され、第５のオフセットは、（（（ｑ３＋ｑ１＋１）＞＞１）−ｑ２＋Δq1）＞＞１に等しくなるように算出される。
【００２８】
この態様のオプションの一実施形態において、デブロッキングフィルタユニットは、（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））／１６に基づくように第１のオフセットを算出する。デブロッキングフィルタユニットは、第１のオフセットを画素のラインのブロック境界に最近接する画素の画素値に加算して変更後の画素値を形成することにより、画素のラインのブロック境界に最近接する画素の画素値を変更する。デブロッキングフィルタユニットは、画素の対応するラインのブロック境界に最近接する画素の画素値から第１のオフセットを減算して変更後の画素値を形成することにより、画素の対応するラインのブロック境界に最近接する画素の画素値を更に変更する。
【００２９】
実施形態の別の態様は、映像フレームの画素のブロックと画素の隣接ブロックとの間のブロック境界におけるブロッキングアーチファクトを低減するデブロッキングフィルタユニットを規定する。このデブロッキングフィルタユニットは、（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））／１６に基づくように第１のオフセットを算出するように構成された第１のオフセット算出器を有する。この式中、ｐ０はブロックにおける画素のラインのブロック境界に最近接する画素の画素値を示し、ｐ１は画素のラインのブロック境界に２番目に最近接する画素の画素値を示し、ｑ０は隣接ブロックにおける画素の対応するラインのブロック境界に最近接する画素の画素値を示し、ｑ１は画素の対応するラインのブロック境界に２番目に最近接する画素の画素値を示す。画素のライン及び画素の対応するラインは、ブロック境界に対して垂直である。デブロッキングフィルタユニットは、第１のオフセットを画素のラインのブロック境界に最近接する画素の画素値に加算して変更後の画素値を形成することにより、この画素の画素値を変更するように構成された画素値変更器を更に備える。画素値変更器は、画素の対応するラインではあるがブロック境界に最近接する画素の画素値から第１のオフセットを減算して変更後の画素値を形成することにより、この画素の画素値を変更するように更に構成される。
【００３０】
この態様のオプションの一実施形態において、第１のオフセット算出器は、＞＞が右シフト演算を示す場合に（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１）＋８）＞＞４に等しくなるように第１のオフセットを算出するように構成される。
【００３１】
この態様のオプションの一実施形態において、デブロッキングフィルタユニットは、第１のオフセットが−ｔCより小さい場合に−ｔCに等しくなるように第１のオフセットを設定し、且つ第１のオフセットがｔCより大きい場合にｔCに等しくなるように第１のオフセットを設定することにより、−ｔCとｔCとの間隔内になるように第１のオフセットをクリップするように構成された第１のクリッピングユニットを備える。ただし、ｔCは、ブロックに割り当てられた量子化パラメータ値に依存する閾値である
この態様のオプションの一実施形態において、デブロッキングフィルタユニットは、ゼロと規定の最大値との間隔内に画素のラインの前記ブロック境界に最近接する画素の変更後の画素値をクリップし、且つゼロと規定の最大値との間隔内に画素の対応するラインのブロック境界に最近接する画素の変更後の画素値をクリップするように構成された第２のクリッピングユニットを備える。オプションの第２のクリッピングユニットによるこのオプションのクリッピングは、変更された画素値がゼロより小さい場合にゼロに等しくなるように変更後の画素値を設定し、且つ変更された画素値が規定の最大値より大きい場合に規定の最大値に等しくなるように変更後の画素値を設定することにより実現される。
この態様のオプションの一実施形態において、デブロッキングフィルタユニットは、（ｐ２＋ｐ０−２×ｐ１＋２×Δ）／４に基づくように第２のオフセットを算出するように構成された第２のオフセット算出器を有する。この式中、ｐ２は画素のラインのブロック境界に３番目に最近接する画素の画素値を示し、Δは第１のオフセットを示す。オプションの本実施形態において、デブロッキングフィルタユニットは、（ｑ２＋ｑ０−２×ｑ１−２×Δ）／４に基づくように第３のオフセットを算出するように構成された第３のオフセット算出器を更に有する。この式中、ｑ２は画素の対応するラインのブロック境界に３番目に最近接する画素の画素値を示す。オプションの本実施形態において、画素値変更器は、第２のオフセットを画素のラインのブロック境界に２番目に最近接する画素の画素値に加算し、変更後の画素値を形成することにより、画素のラインのブロック境界に２番目に最近接する画素の画素値を変更し、且つ第３のオフセットを画素の対応するラインのブロック境界に２番目に最近接する画素の画素値に加算し、変更後の画素値を形成することにより、画素の対応するラインのブロック境界に２番目に最近接する画素の画素値を変更するように構成される。
【００３２】
この態様のオプションの一実施形態において、第２のオフセット算出器は、＞＞が右シフト演算を示す場合に（（（ｐ２＋ｐ０＋１）＞＞１）−ｐ１＋Δ）＞＞１に等しくなるように第２のオフセットを算出するように構成され、第３のオフセット算出器は、（（（ｑ２＋ｑ０＋１）＞＞１）−ｑ１−Δ）＞＞１に等しくなるように第３のオフセットを算出するように構成される。
【００３３】
この態様のオプションの一実施形態において、デブロッキングフィルタユニットは、ブロックに割り当てられた量子化パラメータ値に依存する閾値ｔC2について、−ｔC2とｔC2との間隔内に第２のオフセットをクリップし、且つ−ｔC2とｔC2との間隔内に第３のオフセットをクリップするように構成された第３のクリッピングユニットを備える。オプションの第３のクリッピングユニットによるこのオプションのクリッピングは、第２のオフセット又は第３のオフセットが−ｔC2より小さい場合に−ｔC2に等しくなるように第２のオフセット又は第３のオフセットを設定し、且つ第２のオフセット又は第３のオフセットがｔC2より大きい場合にｔC2に等しくなるように第２のオフセット又は第３のオフセットを設定することにより実現される。
【００３４】
この態様のオプションの一実施形態において、デブロッキングフィルタユニットは、ゼロと規定の最大値との間隔内に画素のラインの前記ブロック境界に２番目に最近接する画素の変更後の画素値をクリップし、且つゼロと規定の最大値との間隔内に画素の対応するラインのブロック境界に最近接する次の画素の変更後の画素値をクリップするように構成された第２のクリッピングユニットを備える。オプションの第２のクリッピングユニットによるこのオプションのクリッピングは、変更後の画素値がゼロより小さい場合にゼロに等しくなるように変更後の画素値を設定し、且つ変更後の画素値が規定の最大値より大きい場合に規定の最大値に等しくなるように変更後の画素値を設定することにより実現される。
【００３５】
この態様のオプションの一実施形態において、デブロッキングフィルタユニットは、（ｐ３＋ｐ１−２×ｐ２＋２×Δp1）／４に基づくように第４のオフセットを算出するように構成された第４のオフセット算出器を有する。この式中、ｐ３は画素のラインのブロック境界に４番目に最近接する画素の画素値を示し、Δp1は第２のオフセットを示す。オプションの本実施形態において、デブロッキングフィルタユニットは、（ｑ３＋ｑ１−２×ｑ２＋２×Δq1）／４に基づくように第５のオフセットを算出するように構成された第５のオフセット算出器を更に有する。この式中、ｑ３は画素の対応するラインのブロック境界に３番目に最近接する画素の画素値を示し、Δq1は第３のオフセットを示す。オプションの本実施形態において、画素値変更器は、第４のオフセットを画素のラインのブロック境界に３番目に最近接する画素の画素値に加算し、変更後の画素値を形成することにより、画素のラインのブロック境界に３番目に最近接する画素の画素値を変更し、且つ第５のオフセットを画素の対応するラインのブロック境界に３番目に最近接する画素の画素値に加算して変更後の画素値を形成することにより、画素の対応するラインのブロック境界に３番目に最近接する画素の画素値を変更するように構成される。
【００３６】
この態様のオプションの一実施形態において、第４のオフセット算出器は、＞＞が右シフト演算を示す場合に（（（ｐ３＋ｐ１＋１）＞＞１）−ｐ２＋Δｐ１）＞＞１に等しくなるように第４のオフセットを算出するように構成され、第５のオフセット算出器は、（（（ｑ３＋ｑ１＋１）＞＞１）−ｑ２＋Δｑ１）＞＞１に等しくなるように第５のオフセットを算出するように構成される。
【００３７】
実施形態の更なる態様は、上述のデブロッキングフィルタユニットを備える符号器及び復号器をそれぞれ規定する。
【００３８】
更に実施形態の一態様は、符号化映像フレームを格納するように構成されたメモリと、符号化映像フレームを復号化映像フレームに復号化するように構成された上述の復号器と、復号化映像フレームをディスプレイ上に表示可能な映像データにレンダリングするように構成されたメディアプレーヤとを備えるユーザ機器を規定する。
【００３９】
別の態様は、送出ユニットと受信ユーザ機器との間の通信ネットワークにおけるネットワークノードとなる、或いは、それに属するネットワーク装置を規定する。この場合のネットワーク装置は、上述の符号器及び／又は復号器を備える。
【００４０】
実施形態の更なる態様は、映像フレームの画素のブロックと画素の隣接ブロックとの間のブロック境界におけるブロッキングアーチファクトを低減するコンピュータプログラムを規定する。コンピュータプログラムは、コンピュータ上で実行される場合に（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））／１６に基づくようにオフセットを算出することをコンピュータに実行させるコード手段を備える。この式中、ｐ０はブロックにおける画素のラインのブロック境界に最近接する画素の画素値を示し、ｐ１は画素のラインのブロック境界に２番目に最近接する画素の画素値を示し、ｑ０は隣接ブロックにおける画素の対応するラインのブロック境界に最近接する画素の画素値を示し、ｑ１は画素の対応するラインのブロック境界に２番目に最近接する画素の画素値を示す。画素のライン及び画素の対応するラインは、ブロック境界に対して垂直である。更にコンピュータにより、オフセットを画素のラインのブロック境界に最近接する画素の画素値に加算することでこの画素の画素値を変更する。更にコード手段は、画素の対応するラインのブロック境界に最近接する画素の画素値からオフセットを減算することにより、この画素の画素値をコンピュータに変更させる。
【００４１】
実施形態の更に別の態様は、コンピュータ可読手段に格納された上述したようなコンピュータ可読コード手段及びコンピュータプログラムを含むコンピュータプログラム製品を規定する。
【００４２】
本発明の実施形態は、ブロックアーチファクトを効率的に低減できるようにし、良好なローパス特性を更に有する。
【００４３】
本発明は、添付の図面と共に以下の説明を参照することにより、本発明の更なる目的及び利点と共に最もよく理解されるだろう。
【図面の簡単な説明】
【００４４】
【図１】図１は、一実施形態に係るブロッキングアーチファクトを低減する方法を示すフローチャートである。
【図２Ａ】、
【図２Ｂ】図２Ａ及び図２Ｂは、隣接ブロック及びデブロッキングフィルタリングを適用できるブロック境界の２つの実施形態を示す図である。
【図３】図３は、一実施形態に係る図１の方法の更なるオプションのステップを示すフローチャートである。
【図４】図４は、一実施形態に係る図１及び図５の方法の更なるオプションのステップを示すフローチャートである。
【図５】図５は、別の実施形態に係る図１の方法の更なるオプションのステップを示すフローチャートである。
【図６】図６は、一実施形態に係る図５の方法の更なるオプションのステップを示すフローチャートである。
【図７】図７は、別の実施形態に係る図５の方法の更なるオプションのステップを示すフローチャートである。
【図８】図８は、一実施形態に係るデブロッキングフィルタユニットを示す概略ブロック図である。
【図９】図９は、別の実施形態に係るデブロッキングフィルタユニットを示す概略ブロック図である。
【図１０】図１０は、一実施形態に係るコンピュータにおけるデブロッキングフィルタモジュールのソフトウェアの実現例を示す概略ブロック図である。
【図１１】図１１は、一実施形態に係る符号器を示す概略ブロック図である。
【図１２】図１２は、一実施形態に係る復号器を示す概略ブロック図である。
【図１３】図１３は、一実施形態に係るユーザ機器を示す概略ブロック図である。
【図１４】図１４は、一実施形態に係るネットワーク装置を備える通信ネットワークの一部を示す概略図である。
【発明を実施するための形態】
【００４５】
図面において、同一の符号は、同様の要素又は対応する要素に対して使用される。
【００４６】
実施形態は、一般に、映像フレームのブロック境界にわたるブロッキングアーチファクトを抑制するデブロッキングフィルタリングに関する。実施形態は、良好な周波数特性を有するデブロッキングフィルタを使用する。本発明のデブロッキングフィルタは、ブロック境界にわたる画素値が徐々に増減（ramp）する場合にそれら画素値を変更しないが、段階的な値である場合にそれら画素値を平滑にするように構成される。これは、デブロッキングフィルタが、良好なローパス特性を有し、ブロック境界の近くに現れる可能性のある高周波数を除去できることを示す。
【００４７】
図１は、一実施形態に係る映像フレームの多数の画素のブロックと多数の画素の隣接ブロックとの間のブロック境界におけるブロッキングアーチファクトを低減する方法を示すフローチャートである。当技術分野において既知であるように、映像フレームは、種々の使用可能なイントラ符号化モード及びインター符号化モードに従って符号化及び復号化される画素のオーバーラップしないブロックに分割される。一般に映像フレームは、１６×１６画素のオーバーラップしないマクロブロックに分割される。そのようなマクロブロックは、４×４画素又は８×８画素等の異なるサイズのより小さなブロックに更に分割される。しかし、４×８、８×４、８×１６又は１６×８等の矩形ブロックも実施形態に従って可能である。実施形態は、画素のマクロブロック又はより大きなブロックを含む画素のそのようなあらゆるブロックに適用可能である。
【００４８】
新しい高効率映像符号化（ＨＥＶＣ）規格においては、符号化単位（ＣＵ）、予測単位（ＰＵ）及び変換単位（ＴＵ）が利用される。予測単位は、符号単位内部で規定され、イントラ予測モード又はインター予測モードを含む。変換単位は符号単位内部で規定され、最大変換サイズが３２×３２画素及び最小サイズが４×４画素である。現在、ＣＵのサイズは、６４×６４画素（最大）から４×４画素（最小）の間で変動している。このように、最大ＣＵは、フレームの局所的な特徴に依存する「粒度のレベル」を有するより小さなＣＵに分割される。これは、最大ＣＵが種々のサイズのより小さなＣＵに分割されてもよいことを意味する。実施形態は、本明細書において使用されるように「画素のブロック」という表現により含まれるものと考えられるそのような符号化単位と関連して更に使用可能である。
【００４９】
ブロックにおける各画素はそれぞれの画素値を有する。一般に映像フレームは、画素に割り当てられた色値を有する。色値は規定の色形式で表される。色形式のうちの１つは、画素毎に１つの輝度成分及び２つの色差成分を使用するものであるが、例えば画素毎に赤成分、緑成分及び青成分を使用する他の形式も存在する。
【００５０】
従来、輝度成分及び色差成分は、場合によっては異なるフィルタリング決定及び異なるデブロッキングフィルタを採用して個別にフィルタリングされる。しかし、ＨＥＶＣにおいてのように色差フィルタリングにおいて輝度フィルタリング決定を使用できる。実施形態は、輝度成分、色差成分又は輝度成分及び色差成分の双方をフィルタリングするように適用可能である。特定の一実施形態において、実施形態は、輝度フィルタリング又はルマ(luma)フィルタリングを実現するように適用される。ルマ等の一方の成分に対するフィルタリング決定又はフィルタリング決定の一部は、クロマ等の他方の成分に対するフィルタリング決定を行う場合に使用可能である。
【００５１】
デブロッキングフィルリングは、隣接ブロック間の境界、エッジ又はボーダーにわたり実行される。その結果、そのような境界は、図２Ａに示されるように、映像フレームにおいて並んで存在する２つの隣接ブロック１０、２０間の垂直境界１でありうる。あるいは、境界は、図２Ｂに示されるように、２つの隣接ブロック１０、２０間の水平境界１であり、この場合、一方のブロック１０は、映像フレームにおいて他方のブロック２０の上に位置することになる。特定の一実施形態において、垂直境界は、最初にフィルタリングされ、幾何学的順序で最も左の境界から開始し右側に向かって境界を進む。水平境界は、次にフィルタリングされ、幾何学的順序で上部の境界から開始し下部に向かって境界を進む。しかし、実施形態は、この特定のフィルタリング順序に限定されず、実際には事前定義されたあらゆるフィルタリング順序に適用可能である。特定の一実施形態において、映像フレームのエッジにおける境界は、フィルタリングされずにデブロッキングフィルタリングから除外されることが好ましい。
【００５２】
本実施形態の方法はステップＳ１から開始し、第１のオフセット又はｄｅｌｔａは、ブロック１０における画素１１、１３、１５、１７のライン１２に対して算出される。実施形態によると、この第１のオフセットは、（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））／１６に基づいて算出される。この式中、ｐ０はブロック１０における画素１１、１３、１５、１７のライン１２のブロック境界１に最近接する画素１１の画素値を示し、ｐ１は画素１１、１３、１５、１７のライン１２のブロック境界１に２番目に最近接する画素１３の画素値を示し、ｑ０は隣接ブロック２０における画素２１、２３、２５、２７の対応するライン２２、すなわち反対側のライン２２のブロック境界１に最近接する画素２１の画素値を示し、ｑ１は画素２１、２３、２５、２７の対応するライン２２のブロック境界１に２番目に最近接する画素２３の画素値を示す。
【００５３】
ブロック１０における画素１１、１３、１５、１７のライン１２及び隣接ブロック２０における画素２１、２３、２５、２７の対応するライン２２は、図２Ａに示されるように垂直境界１をまたがる画素の同一の水平線、すなわち画素の行又は図２Ｂに示されるように水平境界１にまたがる画素の同一の垂直線、すなわち画素の列に属する。従って、画素１１、１３、１５、１７のライン１２及び画素２１、２３、２５、２７の対応するライン２２は、ブロック１０と隣接ブロック２０との間のブロック境界１に対して垂直である。また、ブロック１０における画素１１、１３、１５、１７のライン１２及び隣接ブロック２０における画素２１、２３、２５、２７の対応するライン２２は、同一のライン番号を有する。例えば、ブロック１０及び隣接ブロック２０の各々が行番号又は列番号ｉ＝０．．．Ｎ−１を有する８個などのＮ個の画素の行又は列を含む場合、画素１１、１３、１５、１７のライン１０は、ブロック１０においてライン番号を有し、画素２１、２３、２５、２７の対応するライン２０は、隣接ブロック２０ではあるがライン番号ｉを更に有する。従って、ブロックにおける画素１１、１３、１５、１７のライン１２及び隣接ブロック２０における画素２１、２３、２５、２７の対応するライン２２は、ブロック境界１に対して反対側のラインである。
【００５４】
実施形態によると、「画素のライン」及び「画素の対応するライン」は、図２Ａのような垂直ブロック境界の場合に「画素の行」及び「画素の対応する行」を示し、且つ図２Ｂのような水平ブロック境界の場合に「画素の列」及び「画素の対応する列」を示すように採用される。
【００５５】
次のステップＳ２は、ステップＳ１で算出された第１のオフセットを、画素１１、１３、１５、１７のライン１２のブロック境界１に最近接する画素１１の画素値に加算して変更された画素値ｐ０’を形成することにより、この画素１１の画素値を変更する。従って、この画素１１に対して変更された画素値ｐ０’はｐ０’＝ｐ０＋Δであり、式中、ΔはステップＳ１からの第１のオフセットを示す。同様に、隣接ブロック２０における画素２１、２３、２５、２７の対応するライン２２ではあるがブロック境界１に最近接する画素２１の画素値は、この画素２１の画素値から第１のオフセットを減算して変更された画素値ｑ０’を形成することによりステップＳ３で変更される。従って、変更された画素値ｑ０’は、ｑ０’＝ｑ０−Δとして算出される。
【００５６】
ステップＳ２でのブロック１０における画素１１、１３、１５、１７のライン１２のブロック境界１に最近接する画素１１に対する画素値の変更、及び、ステップＳ３での隣接ブロック２０における画素２１、２３、２５、２７の対応するライン２２のブロック境界１に最近接する画素２１に対する画素値の変更は、図１に示されるように連続して実行されるか、あるいは連続してではあるが逆の順序、すなわちステップＳ２の前にステップＳ３が実行しても構わない。あるいは、２つのステップＳ２及びＳ３は、少なくとも部分的に並列に実行されても構わない。
【００５７】
ステップＳ１〜Ｓ３を含む図１に示された方法により、ブロックにおける画素１１、１３、１５、１７の１つのライン１１及び隣接ブロック２０における画素２１、２３、２５、２７の対応するライン２２の画素を処理することにより、ブロック境界１におけるブロックアーチファクトを低減する。このような画素の変更は、ブロック１０におけるライン１２（水平又は垂直の）うちの１つ又はブロック１０における複数のライン、すなわち少なくとも２つのライン１２に対して、場合によってはブロック１０における全てのライン１２（水平又は垂直の）に対して実行される。これをラインＬ１により概略的に示す。
【００５８】
一般に、上述したように、デブロッキングフィルタリングは、デブロッキングフィルタがブロックに対して水平又は垂直のブロック境界にわたり適用されるかを判定するフィルタ決定を含む。そのような判定が肯定である場合、デブロッキングフィルタは、場合によってはブロックの全ての列（垂直ライン）又は行（水平ライン）に適用される。あるいは、デブロッキングフィルタが適用されるか否か及び／又はその特定の列又は行に対して使用されるデブロッキングフィルタの種類を決定するために、列又は行毎に更なるフィルタリング決定が行われる。従って、図１に示されるような方法は、映像フレームの画素のブロックにおいて少なくとも１つの列及び少なくとも１つの行に対して列、行、多数の列、多数の行又はそれら全てに適用可能である。デブロッキングフィルタリングが必ずしも映像フレームの全てのブロックに適用されなくてもよいことが更に予想される。明らかに対照的に、そのようなデブロッキングフィルタリングは、１つ以上のフィルタ決定により判定されたようなブロッキングアーチファクトがあるブロックに及びブロック境界にわたってのみ適用されることが好ましい。
【００５９】
次に、種々の実現例の実施形態に関連して、デブロッキングフィルタリングを本明細書において更に説明する。
【００６０】
第１のオフセットが一実施形態においてクリップされることにより、第１のオフセットの値は、−ｔCとｔCとの間隔内に制限される。閾値ｔCは、ブロックに割り当てられた量子化パラメータ（ＱＰ）値に依存することが好ましい。そのような場合、種々のＱＰ値に対する種々の閾値のテーブルを使用できる。以下に一覧表示されたテーブル１は、そのようなテーブルの一例である。
【００６１】
【表１】
0005540163.tif 000002
【００６２】
しかし、本発明の実施形態は、テーブル１に示されたようなｔCとＱＰとの特定の関係に制限されず、他の何らかの方法でブロックに対するＱＰ値に基づいてブロックに対するｔC値を判定してよい。
【００６３】
図３は、このようなクリッピング動作を示す。そして、方法は図１のステップＳ１から継続する。次のステップＳ１０は、第１のオフセットが−ｔCとｔCとの間隔内にあるか、すなわち−ｔC≦Δ≦ｔCであるかを調査する。そのような場合、図１のステップＳ２に進み、第１のオフセットを変更する必要はない。しかし、第１のオフセットがステップＳ１０で判定されたような間隔内にない場合、ステップＳ１１に進み、第１のオフセットは、間隔内に値を有するようにクリップされる。従って、Δ＜−ｔCの場合、第１のオフセットは、ステップＳ１１で−ｔCの値を有するように設定される。同様に、Δ＞ｔCの場合、第１のオフセットは、ステップＳ１１でｔCの値を有するように設定される。次に、図２のステップＳ２に進む。
【００６４】
同様に、図１のステップＳ２及びＳ３で算出された変更された画素値は、許容間隔内になるようにクリップされる。これを図４のフローチャートにより概略的に示す。方法は、図１のステップＳ２又はＳ３から継続し、次のステップＳ２０は、変更された画素値、すなわちｐ０’又はｑ０’が０とＭとの許容間隔内にあるかを調査する。パラメータＭは、変更された画素値が仮定できる規定の最大値を示す。特定の一実施形態において、この最大値は、画素値に対して使用されるビット数に基づいて規定される。従って、画素値がｍビット値の形式であると仮定すると、Ｍは２m−１に等しくなることが好ましい。例えば、各画素値が８ビット値であり、すなわちｍ＝８である場合、Ｍ＝２５５である。従って、ステップＳ２０は、０≦ｐ０’≦Ｍ又は０≦ｑ０’≦Ｍであるかを調査する。変更された画素値が間隔［０，Ｍ］内にある場合、図１のステップＳ３に進むかあるいは終了する。しかし、変更された画素値は、間隔外にある場合、間隔内に値を有するようにステップＳ２１でクリップされる。換言すると、ｐ０’＜０又はｑ０’＜０の場合、変更された画素値は、ｐ０’＝０又はｑ０’＝０になるようにステップＳ２１で設定される。同様に、ｐ０’＞Ｍ又はｑ０’＞Ｍの場合、ステップＳ２１は、ｐ０’＝Ｍ又はｑ０’＝Ｍになるように変更された画素値を設定する。
【００６５】
図１のステップＳ１は、（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））／１６に基づくように第１のオフセットを算出する。特定の一実施形態において、第１のオフセットは、（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））／１６に等しくなるようにステップＳ１で算出される。一実施形態において、従って、画素値は、以下の計算を使用することで提案されたデブロッキングフィルタにより更新される。
Δ＝（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））／１６
ｐ０’＝ｐ０＋Δ
ｑ０’＝ｑ０−Δ
図３及び図４に示されるような第１のオフセット及び／又は変更された画素値のクリッピングも使用できる。
【００６６】
別の一実施形態において、オフセットは、（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））／１６の関数として算出される。そのような関数は、第１のオフセットがハードウェアで効率的に算出されるように規定される。そのような場合、一般に、第１のオフセットが整数値になるように、除算を全く有さず且つ／あるいは関数を規定しないことが好まれる。一実施形態において、＞＞が右シフト演算を示す場合に（Ｘ＋８）＞＞４はＸ／１６の整数表現として使用される。従って、特定の一実施形態において、ステップＳ１は、（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１）＋８）＞＞４に基づき且つ好ましくはそれに等しくなるように第１のオフセットを算出する。
【００６７】
本実施形態において、従って、画素値は、以下の計算を使用することで提案されたデブロッキングフィルタにより更新される。
Δ＝（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１）＋８）＞＞４
ｐ０’＝ｐ０＋Δ
ｑ０’＝ｑ０−Δ
又はクリッピングが使用される場合に以下の通りである。
Δ＝Ｃｌｉｐ３（−ｔＣ，ｔＣ，（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１）＋８）＞＞４）
ｐ０’＝Ｃｌｉｐ（ｐ０＋Δ）
ｑ０’＝Ｃｌｉｐ（ｑ０＋Δ）
ここで、Ｃｌｉｐ３（Ａ，Ｂ，ｘ）は、ｘ＜Ａの場合にＣｌｉｐ３（Ａ，Ｂ，ｘ）＝Ａ、ｘ＞Ｂの場合にＣｌｉｐ３（Ａ，Ｂ，ｘ）＝Ｂ、Ａ≦ｘ≦Ｂの場合にＣｌｉｐ３（Ａ，Ｂ，ｘ）＝ｘとして規定され、Ｃｌｉｐ（ｘ）は、Ｃｌｉｐ（０，Ｍ，ｘ）として規定される。
【００６８】
別の実施形態において、（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））／１６の整数表現及び好ましくはハードウェアで効率的に実現されるそのような整数表現等の他の実現例が使用される。
【００６９】
上述の実施形態は、画素値の直線的にランプに適用される場合にほぼゼロ、好ましくは厳密にゼロを生成し且つ画素値のステップに適用される場合に画素値におけるステップを平滑にするオフセット値を生成する式によりブロック境界に最近接する画素に対する第１のオフセットを生成するデブロッキングフィルタを規定する。例えばランプは、１０、２０、３０、４０等の直線的に増加又は減少する画素値として説明される。これらの画素値に対する第１のオフセット、すなわちｐ１＝１０、ｐ０＝２０、ｑ０＝３０、ｑ１＝４０を算出する場合、第１のオフセットはゼロになる。同様に段差（ステップ）は、１０、１０、２０、２０等の画素値における段差（ステップ）の増加又は減少として説明される。これらの画素値に対する第１のオフセット、すなわちｐ１＝１０、ｐ０＝１０、ｑ０＝２０、ｑ１＝２０を算出する場合、第１のオフセットは、Δ＝（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））／１６の場合に３．７５になり、Δ＝（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１）＋８）＞＞４の場合に４になる。変更された画素値が、１０、１３．７５、１６．２５、３０又は１０、１４、１６、２０になることにより、ステップの平滑化を実現する。第１のオフセットは、平坦なラインに対してもゼロであり、すなわち画素値が等しい場合にｐ０＝ｐ１＝ｑ０＝ｑ１である。
【００７０】
特定の一実施形態において、ブロック境界に２番目に最近接する画素の画素値も変更可能である。図２Ａ、図２Ｂ及び図５を参照して、これを本明細書において更に説明する。方法は、図１のステップＳ３又はステップＳ２、あるいは実際にはステップＳ１から継続する。次のステップＳ３０は、（ｐ２＋ｐ０−２×ｐ１＋２×Δ）／４に基づくように第２のオフセットを算出し、式中、ｐ２はブロック１０における画素１１、１３、１５、１７のライン１２のブロック境界１に３番目に最近接する画素１５の画素値を示す。次のステップＳ３１は、（ｑ２＋ｑ０−２×ｑ１−２×Δ）／４に基づくように第３のオフセットを算出し、ｑ２は、隣接ブロック２０における画素２１、２３、２５、２７の対応するライン２２のブロック境界１に３番目に最近接する画素２５の画素値を示す。ステップＳ３０及びＳ３１は、あらゆる順序で連続して又は少なくとも部分的に同時に実行される。
【００７１】
ステップＳ３０で算出された第２のオフセットは、画素１１、１３、１５、１７のライン１２のブロック境界１に２番目に最近接する画素１３の画素値を変更するためにステップＳ３２で使用される。一実施形態において、第２のオフセットは、この画素１３の画素値に加算されて変更された画素値を取得する。同様にステップＳ３３は、第３のオフセットを画素２１、２３、２５、２７の対応するライン２２のブロック境界１に２番目に最近接する画素２３の画素値に加算して変更された画素値を形成することにより、この画素２３の画素値を変更する。ステップＳ３２及びＳ３３は、あらゆる連続した順序で又は少なくとも部分的に同時に実行される。
【００７２】
本実施形態において、提案されたデブロッキングフィルタは、全てのフィルタ位置ｐ０、ｐ１、ｑ０、ｑ１上のローパスフィルタである。ランプ(ramp)信号に適用される場合、Δ、第２のオフセットを示すΔp、第３のオフセットを示すΔqが全てゼロに等しくなるため、デブロッキングフィルタはランプ信号を変更しない。段差（step)信号、すなわちデブロッキングアーチファクトに適用される場合、デブロッキングフィルタは段差信号を平滑にする、すなわちブロッキングアーチファクトを低減する。現在のＨＥＶＣフィルタとは明らかに対照的に、提案されたデブロッキングフィルタは、ブロック境界側の小さなリプルを平滑にすることで減衰する。
【００７３】
上述の実施形態において、ブロック境界から２番目の位置にある係数（ｐ１、ｑ１）に対するフィルタは、第１のオフセットと対称のローパスフィルタとの組合せを使用することで生成される。本実施形態の利点は、ブロック境界に３番目に最近接する画素に対するオフセットがより適切な局所適応を可能にする種々の値を有することができることである。
【００７４】
第１のオフセットと同様に、第２のオフセット及び第３のオフセットは、−ｔC2とｔC2との間隔内になるようにクリップされ、閾値ｔC2は、ブロックに割り当てられたＱＰ値に基づいて判定される。特定の一実施形態において、閾値ｔC2は、図３において第１のオフセットをクリップするために使用された閾値ｔCに基づいて判定される。例えば、ｔC2＝ｔC／２、又はハードウェアに適応した実現例を用いる場合にはｔC2＝ｔC＞＞１である。
【００７５】
図６は、第２のオフセット及び第３のオフセットのそのようなクリッピングを示すフローチャートである。この方法は、図５のステップＳ３０又はＳ３１から継続する。次のステップＳ４０は、第２のオフセット又は第３のオフセットが−ｔC2とｔC2との間隔内にあるかを調査する。これが真の場合、図５のステップＳ３２又はＳ３３に進む。しかし、第２のオフセット又は第３のオフセットが−ｔC2より小さいかあるいはｔC2より大きい場合、ステップＳ４１に進む。このステップＳ４１は、Δｐ，ｑ＜−ｔC2の場合に−ｔC2になるように第２のオフセット又は第３のオフセットをクリップするか、あるいはΔp,q＞ｔC2の場合に第２のオフセット又は第３のオフセットをｔC2に設定する。
【００７６】
ブロック境界に２番目に最近接する画素の変更された画素値は、ブロック境界に最近接する画素に対する変更された画素値と同様に、０とＭとの間隔内になるようにクリップされることが好ましい。従って、図４の方法ステップは、これらの画素に対しても適用可能であり、画素値を強制的に［０，Ｍ］内にする。
【００７７】
一実施形態において、ブロック境界１に２番目に最近接する画素１３、２３の変更後の画素値は、以下のように算出される。
Δｐ＝（ｐ２＋ｐ０−２×ｐ１＋２×Δ）／４
ｐ１’＝ｐ１＋Δｐ
Δｑ＝（ｑ２＋ｑ０−２×ｑ１−２×Δ）／４
ｑ１’＝ｑ１＋Δｑ
【００７８】
上述したような第２のオフセット及び第３のオフセット、並びに／又は変更された画素値のクリッピングが選択的に使用される。
【００７９】
別の実施形態において、オフセットは互いに依存せずに算出される。
Δ＝（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１）＋８）＞＞４
ｐ０’＝ｐ０＋Δ
ｑ０’＝ｑ０−Δ
Δp＝（ｐ０＋ｐ２−２×ｐ１）／４
ｐ１’＝ｐ１＋Δp＋Δ／２
Δq＝（ｑ０＋ｑ２−２×ｑ１）／４
ｑ１’＝ｑ１＋Δq−Δ／２
数学的に、これは上述の実施形態と等しい。本実施形態に対してオプションのクリッピングが更に行われてよい。
【００８０】
別の一実施形態において、第２のオフセット及び第３のオフセットは、例えばそれぞれ（ｐ２＋ｐ０−２×ｐ１＋２×Δ）／４及び（ｑ２＋ｑ０−２×ｑ１−２×Δ）／４の関数に基づいて算出される。例えばそのような関数は、ハードウェアの実現例、並びに／又は（ｐ２＋ｐ０−２×ｐ１＋２×Δ）／４及び（ｑ２＋ｑ０−２×ｑ１−２×Δ）／４の整数表現に適応される。整数値を生成するそのようなハードウェアの実現例の特定の一例は、（（（ｐ２＋ｐ０＋１）＞＞１）−ｐ１＋Δ）＞＞１に基づくように、好ましくはそれに等しくなるように第２のオフセットを算出することである。同様に第３のオフセットは、（（（ｑ２＋ｑ０＋１）＞＞１）−ｑ１−Δ）＞＞１に基づくように、好ましくはそれに等しくなるように算出されることが好ましい。
【００８１】
そのような場合、変更された画素値は、以下のように算出される。
Δp＝（（（ｐ２＋ｐ０＋１）＞＞１）−ｐ１＋Δ）＞＞１
Δ１’＝ｐ１＋Δp
Δq＝（（（ｑ２＋ｑ０＋１）＞＞１）−ｑ１−Δ）＞＞１
ｑ１’＝ｑ１＋Δq
または、クリッピングが使用される場合は以下の通りである。
Δp＝Ｃｌｉｐ３（−ｔC2,ｔC2,（（（ｐ２＋ｐ０＋１）＞＞１）−ｐ１＋Δ）＞＞１）
ｐ１’＝Ｃｌｉｐ（ｐ１＋Δp）
Δq＝Ｃｌｉｐ３（−ｔC2,ｔC2,（（（ｑ２＋ｑ０＋１）＞＞１）−ｑ１−Δ）＞＞１）
ｑ１’＝Ｃｌｉｐ（ｑ１＋Δq）
【００８２】
ハードウェアの実現例に適応される第２のオフセット及び第３のオフセットを算出する別の一実施形態は、以下の通りである。
Δp＝Ｃｌｉｐ３（−ｔC2, ｔC2, （（ｐ２＋ｐ０−（（ｐ１−Δ）＜＜１）＋２）＞＞２））
Δq＝Ｃｌｉｐ３（−ｔC2, ｔC2, （（ｑ２＋ａ０−（（ｑ１＋Δ）＜＜１）＋２）＞＞２））
式中、＜＜は左シフト演算を示す。
【００８３】
ハードウェアの実現例に適応される第２のオフセット及び第３のオフセットを算出する更に別の実施形態は、以下の通りである。
Δp＝Ｃｌｉｐ３（−ｔC2，ｔC2，（（（（ｐ２＋ｐ０＋１）＞＞１）−ｐ１＋Δ＋１）＞＞１））
Δq＝Ｃｌｉｐ３（−ｔC2，ｔC2，（（（（ｑ２＋ｑ０＋１）＞＞１）−ｑ１−Δ＋１）＞＞１））
【００８４】
別の実施形態において、第１のオフセットと比較してより強いローパスフィルタを使用できる。この場合、第２のオフセットは、（ｐ２＋ｐ０−２×ｐ１＋Δ）／２に基づいて、例えばそれに等しくなるように、あるいはハードウェアに適応した実現例において、（（ｐ２＋ｐ０＋１＋Δ）＞＞１）−ｐ１又は（（ｐ２＋ｐ０＋Δ−（ｐ１＜＜１）＋１）＞＞１）に基づいて、好ましくはそれに等しくなるように算出される。第３のオフセットは、（ｑ２＋ｑ０−２×ｑ１−Δ）／２に基づいて、例えばそれに等しくなるように、あるいはハードウェアに適応した実現例において、（（ｑ２＋ｑ０＋１−Δ）＞＞１）−ｑ１又は（（ｑ２＋ｑ０−Δ−（ｑ１＜＜１）＋１）＞＞１）に基づいて、好ましくはそれに等しくなるように算出される。
【００８５】
特定の一実施形態において、ブロックにおける画素のラインに対する第１のオフセット、第２のオフセット及び第３のオフセットを算出することにより、ブロック境界に最近接する画素及びブロック境界に２番目に最近接する画素の双方の画素値を変更する。
【００８６】
別の一実施形態において、第２のオフセット及び第３のオフセットを算出するか、且つそれにより、ブロック境界に最近接する画素の画素値に加えてブロック境界に２番目に最近接する画素の画素値を変更するかがが最初に決定される。
【００８７】
上述したブロック境界に２番目に最近接する画素の画素値を変更するための第２のオフセット及び第３のオフセットの計算において開示された実施形態と同様に、第４のオフセット及び第５のオフセットを、ブロック境界に３番目に最近接する画素の画素値を変更するために算出できる。
【００８８】
図７は、そのような一実施形態を示すフローチャートである。この方法は、図５のステップＳ３３から継続する。次のステップＳ５０は、（ｐ３＋ｐ１−２×ｐ２＋２×Δp1）／４に基づいて第４のオフセットを算出し、式中、ｐ３はブロック１０における画素１１、１３、１５、１７のライン１２のブロック境界１に４番目に最近接する画素１７の画素値を示し、Δp1は第２のオフセットを示す。同様にステップＳ５１は、（ｑ３＋ｑ１−２×ｑ２＋２×Δq1）／４に基づくように第５のオフセットを算出し、式中、ｑ３は隣接ブロック２０における画素２１、２３、２５、２７の対応するライン２２のブロック境界１に４番目に最近接する画素２７の画素値を示し、Δq1は第３のオフセットを示す。ステップＳ５０及びＳ５１は、あらゆる順序で連続して又は少なくとも部分的に同時に実行される。
【００８９】
別の一実施形態において、第４のオフセット及び第５のオフセットは、それぞれ（ｐ３＋ｐ１−２×ｐ２＋Δp1）／２及び（ｑ３＋ｑ１−２×ｑ２＋Δq1）／２、又は、（ｐ３＋ｐ１−２×ｐ２＋２×Δq1）／４及び（ｑ３＋ｑ１−２×ｑ２＋２×Δp2）／４に基づくように算出される。
【００９０】
次の２つのステップは、第４のオフセット及び第５のオフセットに基づいて画素値を変更する。従って、ステップＳ５２は、第４のオフセットを、ブロック１０における画素１１、１３、１５、１７のライン１２のブロック境界１に３番目に最近接する画素１５の画素値に加算して変更された画素値を形成することにより、この画素１５の画素値を変更する。同様にステップＳ５３では、第５のオフセットを、隣接ブロック２０における画素２１、２３、２５、２７の対応するライン２２のブロック境界１に３番目に最近接する画素２５の画素値に加算して変更された画素値を形成することにより、この画素２５の画素値を変更する。ステップＳ５２及びＳ５３は、いかなる順序で連続して実行しても良いし、少なくとも部分的に並列に実行しても良い。
この概念は、ブロック境界から４つ以上の画素を変更するフィルタに対しても一般化される。例えば、ブロック境界１から４番目の画素１７、２７は、３番目の画素１５、２５に対するオフセット（あるいは、２番目の画素１３、２３からのオフセット又は１番目の画素１１、２１からのオフセット）と対称のローパスフィルタとの組合せを使用して取得される。より長いフィルタでも可能である。
前の実施形態と同様に、第４のオフセット及び第５のオフセットが更にクリップされる。そのような場合、第２のオフセットと第３のオフセットとの間隔と同一の間隔、又はその間隔の半分が使用可能である。別の一実施形態において、クリッピング間隔は−ｔC3〜ｔC3であり、閾値ｔＣ３は、ブロックと関連付けられたＱＰ値に基づいて判定される。また、ブロック境界に３番目に最近接する画素の変更された画素値は、図４に開示されたように０とＭとの間隔内になるようにクリップされる。
【００９１】
特定の一実施形態において、これらの画素値の変更は、以下に従って実行される。
Δp2＝（ｐ３＋ｐ１−２×ｐ２＋２×Δp1）／４
ｐ２’＝ｐ２＋Δp2
Δq2＝（ｑ３＋ｑ１−２×ｑ２＋２×Δq1）／４
ｑ２’＝ｑ２＋Δq2
式中、Δｐ２、Δｑ２はそれぞれ第４のオフセット及び第５のオフセットを示す。選択的に、クリッピングは上述したように行われる。
【００９２】
ハードウェアの実現例に適した（ｐ３＋ｐ１−２×ｐ２＋２×Δp1）／４及び（ｑ３＋ｑ１−２×ｑ２＋２×Δq1）／４の表現は、第４のオフセット及び第５のオフセットを整数値として取得するために使用可能である。特定の一実施形態において、第４のオフセットは、（（（ｐ３＋ｐ１＋１）＞＞１）−ｐ２＋Δp1）＞＞１に基づくように、好ましくはそれに等しくなるように算出される。同様に、（（（ｑ３＋ｑ１＋１）＞＞１）−ｑ２＋Δq1）＞＞１は、第５のオフセットに対する整数表現である。
【００９３】
本発明の実施形態は、映像フレームの符号化及び復号化に関連してブロッキングアーチファクトを抑制するように構成される。従って、実施形態は、映像フレームを画素のブロックに分割することによりブロック境界にわたりブロッキングアーチファクトを有する危険を冒すそのような映像の符号化及び復号化の規格に適用可能である。本発明の実施形態を適用できるそのような規格の例は、Ｈ．２６４及びＨＥＶＣである。特にＨＥＶＣは、弱いフィルタリングモードか強いフィルタリングモードかを選択する手段を有する。本発明の実施形態は、ブロック境界にわたり画素のライン及び画素の対応するラインにおける画素値を変形するように採用されるオフセットを算出するために、弱いフィルタリングモードで使用可能であるという利点がある。従って、従来技術のＨＥＶＣに従ってそのようなデブロッキングフィルタリングを実行するかを決定することは、本発明の実施形態に対して使用可能であるという利点がある。
【００９４】
特定の態様は、映像フレームの多数の画素のブロックと多数の画素の隣接ブロックとの間のブロック境界におけるブロッキングアーチファクトを低減する方法に関する。図１を参照すると、方法は、ブロックにおける画素のラインのブロック境界に最近接する画素の画素値、画素のラインのブロック境界に２番目に最近接する画素の画素値、隣接ブロックにおける画素の対応するライン、すなわち反対側のラインのブロック境界に最近接する画素の画素値及び画素の対応するラインのブロック境界に２番目に最近接する画素の画素値に基づいて第１のオフセットをステップＳ１で算出することを備える。画素のライン及び画素の隣接ラインは、ブロック境界に対して垂直である。第１のオフセットは、画素値が直線的に増加又は減少している場合にゼロに近似し、好ましくはゼロに等しいか、あるいは画素のライン及び画素の対応するラインに沿って移動している際に同一であるオフセット値を生成し、且つ画素のライン及び画素の対応するラインに沿って移動している際に画素値が段差をもって増加又は減少する場合に画素値における段差を平滑にするオフセット値を生成する式、並びにこれらの画素値に基づいて算出される。方法は、第１のオフセットを画素のラインのブロック境界に最近接する画素の画素値に加算することにより、画素のラインのブロック境界に最近接する画素の画素値をステップＳ２で変更することを更に備える。次のステップＳ３は、画素の対応するラインのブロック境界に最近接する画素の画素から第１のオフセットを減算することにより、画素の対応するラインのブロック境界に最近接する画素の画素値を変更する。
【００９５】
この特定の態様は、図１〜図７と関連して上述された実施形態と組み合わされる。
【００９６】
図１に開示された実施形態に従ってブロッキングアーチファクトを低減する方法は、デブロッキングフィルタユニットにより実行されることが好ましい。従って、そのようなデブロッキングフィルタユニットは、ステップＳ１で第１のオフセットを算出し、ステップＳ２及びＳ３でブロック境界に最近接する画素の画素値を変更する。図８は、そのようなデブロッキングフィルタユニット１００の一実施形態を示す概略ブロック図である。
【００９７】
デブロッキングフィルタユニット１００は、映像フレームの画素のブロックにおける画素のラインに対して本明細書で上述したように、（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））／１６に基づいて第１のオフセットを算出するように構成された第１のオフセット算出器１１０を備える。デブロッキングフィルタユニット１００の画素変更器１２０は、第１のオフセット算出器１１０により算出された第１のオフセットをブロックにおける画素のラインのブロック境界に最近接する画素の画素値に加算して変更後の画素値を形成することにより、この画素の画素値を変更するように構成される。画素変更器１２０は、映像フレームの画素の隣接ブロックにおける画素の対応するラインではあるが、ブロック境界に最近接する画素の画素値を更に変更する。画素値変更器１２０によるこのような変更は、この画素の画素値から第１のオフセット算出器１１０により算出された第１のオフセットを減算して変更された画素値を形成することにより達成される。
【００９８】
従って、特定の一実施形態において、画素変更器１２０は、第１のオフセットを画素のラインのブロック境界に最近接する画素の画素値に加算して変更後の画素値を形成するように構成される。画素変更器１２０は、画素の対応するラインのブロック境界に最近接する画素の画素値から第１のオフセットを減算して変更後の画素値を形成するように更に構成される。
【００９９】
特定の一実施形態において、第１のオフセット算出器１１０は、ｆ（（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））／１６）、すなわち関数ｆ（）又は（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））／１６の表現になるよう第１のオフセットを算出するように構成される。好ましくはハードウェアの実現例に適したこの関数は、（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１））／１６の整数表現を出力することが好ましい。一実施形態において、第１のオフセット算出器１１０は、（９×（ｑ０−ｐ０）−３×（ｑ１−ｐ１）＋８）＞＞４に基づくように、好ましくはそれに等しくなるように第１のオフセットを算出するように構成される。
【０１００】
図９は、別の実施形態に係るデブロッキングフィルタユニット２００を示す概略ブロック図である。デブロッキングフィルタユニット２００は、第１のオフセット算出器２１０と、画素値変更器２２０とを備える。これらのユニット２１０、２２０は、図８に関連して上述されたように動作する。デブロッキングフィルタユニット２００は、第１のクリッピングユニット２３０を更に備えることが好ましい。この第１のクリッピングユニット２３０は、−ｔCとｔCとの間隔内になるように第１のオフセットをクリップするように構成される。閾値ｔCは、ブロックと関連付けられたＱＰ値に依存し、例えばブロックのＱＰ値に基づいてテーブル１から選択可能である。
【０１０１】
オプションの第２のクリッピングユニット２４０は、画素値変更器２２０により算出された変更された画素値をクリップするデブロッキングフィルタユニット２００において実現される。従って、第２のクリッピングユニット２４０は、ゼロと規定の最大値Ｍとの間隔内になるようにこれらの変更された画素値を制限する。
【０１０２】
好適な一実施形態において、デブロッキングフィルタユニット２００は、ブロックにおける画素のラインに対して（ｐ２＋ｐ０−２×ｐ１＋２×Δ）／４に基づいて第２のオフセットを算出するように構成された第２のオフセット算出器２５０を更に備える。
【０１０３】
特定の一実施形態において、第２のオフセット算出器２５０は、ｇ（（ｐ２＋ｐ０−２×ｐ１＋２×Δ）／４）、すなわち関数ｇ（）又は（ｐ２＋ｐ０−２×ｐ１＋２×Δ）／４の表現になるよう第２のオフセットを算出するように構成される。好ましくはハードウェアの実現例に適したこの関数は、（ｐ２＋ｐ０−２×ｐ１＋２×Δ）／４の整数表現を出力することが好ましい。一実施形態において、第２のオフセット算出器２５０は、（（（ｐ２＋ｐ０＋１）＞＞１）−ｐ１＋Δ）＞＞１に基づくように、好ましくはそれに等しくなるように第２のオフセットを算出するように構成される。
【０１０４】
デブロッキングフィルタユニット２００は、隣接ブロックにおける画素の対応するラインに対して（ｑ２＋ｑ０−２×ｑ１−２×Δ）／４に基づいて第３のオフセットを算出するように構成された第３のオフセット算出器２６０を備えることが好ましい。
【０１０５】
特定の一実施形態において、第３のオフセット算出器２６０は、ｈ（（ｑ２＋ｑ０−２×ｑ１−２×Δ）／４）、すなわち関数ｈ（）又は（ｑ２＋ｑ０−２×ｑ１−２×Δ）／４の表現になるよう第３のオフセットを算出するように構成される。好ましくはハードウェアの実現例に適したこの関数は、（ｑ２＋ｑ０−２×ｑ１−２×Δ）／４の整数表現を出力することが好ましい。一実施形態において、第３のオフセット算出器２６０は、（（（ｑ２＋ｑ０＋１）＞＞１）−ｑ１−Δ）＞＞１に基づくように、好ましくはそれに等しくなるように第３のオフセットを算出するように構成される。
【０１０６】
デブロッキングフィルタユニット２００の画素変更器２２０は、ブロックにおける画素のラインのブロック境界に２番目に最近接する画素の画素値を変更するように更に構成される。画素変更器２２０は、第２のオフセット算出器２５０により算出された第２のオフセットをこの画素の画素値に加算する。画素変更器２２０は、隣接ブロックにおける画素の対応するラインではあるが、ブロック境界に２番目に最近接する画素の画素値を変更するように更に構成される。このような変更は、第３のオフセット算出器２６０により算出された第３のオフセットをこの画素の画素値に加算することにより実現される。
【０１０７】
デブロッキングフィルタユニット２００のオプションの第３のクリッピングユニット２７０は、−ｔC2とｔC2との間隔内になるように第２のオフセット算出器２５０により算出された第２のオフセット及び第３のオフセット算出器２６０により算出された第３のオフセットをクリップするように構成される。閾値ｔC2は、ブロックと関連付けられたＱＰ値に依存することが好ましく、第１のオフセットをクリップするために使用された閾値ｔCに基づいて算出されることが有利である。別の一実施形態において、第３のクリッピングユニット２７０は省略され、第２のオフセット及び第３のオフセットのあらゆるクリッピングが、第１のクリッピングユニット２３０により代わりに実行される。
【０１０８】
第２のクリッピングユニット２４０は、ブロック境界に最近接する画素の変更された画素値だけではなく、ブロック境界に２番目に最近接する画素の変更された画素値もクリップし、それぞれ第２のオフセット及び第３のオフセットを使用して算出されることが好ましい。従って、これらの変更された画素値もゼロ〜既定の最大値Ｍの間隔内になるように制限されることが好ましい。
【０１０９】
第２のオフセット算出器２５０及び第３のオフセット算出器２６０は、ブロックと隣接ブロックとの間のブロック境界にわたりデブロッキングフィルタリングが適用される画素のライン及び画素の対応するライン毎に第２のオフセット及び第３のオフセットを算出するように構成される。別の手法において、デブロッキングフィルタユニット２００は、第１のオフセットのみを算出することでブロック境界に最近接する画素の画素値のみを変更するか、あるいは第１のオフセット、第２のオフセット及び第３のオフセットの全てを算出することでブロック境界に最近接する画素の画素値及びブロック境界に２番目に最近接する画素の画素値を変更するかの選択を行う。
【０１１０】
オプションの一実施形態において、デブロッキングフィルタユニット２００は、（ｐ３＋ｐ１−２×ｐ２＋２×Δp1）／４に基づくように第４のオフセットを算出するように構成された第４のオフセット算出器２８０を備えてよい。
【０１１１】
特定の一実施形態において、第４のオフセット算出器２８０は、ｂ（（ｐ３＋ｐ１−２×ｐ２＋２×Δp1）／４）、すなわち関数ｂ（）又は（ｐ３＋ｐ１−２×ｐ２＋２×Δp1）／４の表現になるよう第４のオフセットを算出するように構成される。好ましくはハードウェアの実現例に適したこの関数は、（ｐ３＋ｐ１−２×ｐ２＋２×Δp1）／４の整数表現を出力することが好ましい。一実施形態において、第４のオフセット算出器２８０は、（（（ｐ３＋ｐ１＋１）＞＞１）−ｐ２＋Δp1）＞＞１に基づくように、好ましくはそれに等しくなるように第４のオフセットを算出するように構成される。
【０１１２】
デブロッキングフィルタ２００は、（ｑ３＋ｑ１−２×ｑ２＋２×Δq1）／４に基づくように第５のオフセットを算出するように構成されたオプションの第５のオフセット算出器２９０を更に備えてよい。
【０１１３】
特定の一実施形態において、第５のオフセット算出器２９０は、ｋ（（ｑ３＋ｑ１−２×ｑ２＋２×Δq1）／４）、すなわち関数ｋ（）又は（ｑ３＋ｑ１−２×ｑ２＋２×Δq1）／４の表現になるよう第５のオフセットを算出するように構成される。好ましくはハードウェアの実現例に適したこの関数は、（ｑ３＋ｑ１−２×ｑ２＋２×Δq1）／４の整数表現を出力することが好ましい。一実施形態において、第５のオフセット算出器２９０は、（（（ｑ３＋ｑ１＋１）＞＞１）−ｑ２＋Δq1）＞＞１に基づくように、好ましくはそれに等しくなるように第５のオフセットを算出するように構成される。
【０１１４】
本実施形態において、画素値変更器２２０は、第４のオフセット算出器２８０により算出された第４のオフセットをブロックにおける画素のラインのブロック境界に３番目に最近接する画素の画素値に加算することにより、この画素の画素値を変更するように更に構成される。画素値変更器２２０は、第５のオフセット算出器により算出された第５のオフセットを隣接ブロックにおける画素の対応するラインのブロック境界に３番目に最近接する画素の画素値に加算することにより、この画素の画素値を本実施形態において更に変更する。
【０１１５】
第２のクリッピングユニット２４０は、変更された画素をゼロと事前定義済みの最大値Ｍとの間隔内に制限するようにそれらを処理することが好ましい。第３のクリッピングユニット２７０は、第２のオフセット及び第３のオフセットと同様に第４のオフセット及び第５のオフセットをクリップするために更に使用可能である。あるいは、デブロッキングフィルタユニット２００は、ブロックのＱＰ値及び好ましくは閾値ｔCに基づいて規定される終点を有する間隔内になるように第４のオフセット及び第５のオフセットをクリップするように構成された第４のクリッピングユニットを備える。
【０１１６】
特定の態様は、映像フレームの多数の画素のブロックと多数の画素の隣接ブロックとの間のブロック境界におけるブロッキングアーチファクトを低減するデブロッキングフィルタユニットに関する。図８を参照すると、デブロッキングフィルタユニット１００は、ブロックにおける画素のラインのブロック境界に最近接する画素の画素値、画素のラインのブロック境界に２番目に最近接する画素の画素、隣接ブロックにおける画素の対応するライン、すなわち反対側のラインのブロック境界に最近接する画素の画素値及び画素の対応するラインのブロック境界に２番目に最近接する画素の画素値に基づいて第１のオフセットを算出するように構成された第１のオフセット算出器１１０を備える。画素のライン及び画素の隣接ラインは、ブロック境界に対して垂直である。第１のオフセットは、画素のライン及び画素の対応するラインに沿って移動している際に、画素値が直線的に増加又は減少している、或いは同一である場合にゼロに近似し、好ましくはゼロに等しいオフセット値を生成する。また、画素のライン及び画素の対応するラインに沿って移動している際に画素値が段差をもってて増加又は減少する場合に画素値における段差を平滑にするオフセット値を生成する式、並びにこれらの画素値に基づいて、第１のオフセット算出器１１０により算出される。デブロッキングフィルタユニット１００は、第１のオフセットを画素のラインのブロック境界に最近接する画素の画素値に加算して変更された画素値を形成することにより、画素のラインのブロック境界に最近接する画素の画素値を変更するように構成された画素値変更器１２０を更に備える。画素値変更器１２０は、画素の対応するラインのブロック境界に最近接する画素の画素から第１のオフセットを減算して変更された画素値を形成することにより、画素の対応するラインのブロック境界に最近接する画素の画素値を変更するように更に構成される。
【０１１７】
図８及び図９に関連して開示されたそれぞれのユニット１１０、１２０及び２１０〜２９０は、装置１００、２００において物理的に別個のユニット１１０、１２０及び２１０〜２９０として開示されており、且つそれらは全てＡＳＩＣ（特定用途向け集積回路）等の専用回路であってもよいが、ユニット１１０、１２０及び２１０〜２９０の一部又は全てが汎用プロセッサ上で実行するコンピュータプログラムモジュールとして実現される装置１００、２００の別の実施形態が可能である。そのような一実施形態を図１０に開示する。
【０１１８】
図１０は、例えばＤＳＰ（デジタル信号プロセッサ）又はＣＰＵ（中央処理装置）等の処理ユニット７２を有するコンピュータ７０の一実施形態を概略的に示す。処理ユニット７２は、本明細書において説明する方法の種々のステップを実行する単一のユニット又は複数のユニットであってよい。コンピュータ７０は、記録又は生成された映像フレーム、あるいは１つ又は複数の符号化映像フレーム、あるいは復号化映像データを受信する入出力（Ｉ／Ｏ）ユニット７１を更に備える。Ｉ／Ｏユニット７１は、図１０において単一のユニットとして示されているが、同様に別個の入力ユニット及び別個の出力ユニットの形態であってよい。
【０１１９】
更にコンピュータ７０は、ＥＥＰＲＯＭ（電気的消去可能プログラマブル読み出し専用メモリ）、フラッシュメモリ又はディスクドライブ等の不揮発性メモリの形態の少なくとも１つのコンピュータプログラム製品７３を備える。コンピュータプログラム製品７３は、コンピュータ７０上で実行される場合に例えば処理ユニット７２により、図１に関連して上述した方法のステップをコンピュータ７０に実行させるコード手段を備えるコンピュータプログラム７４を含む。従って、一実施形態において、コンピュータプログラム７４のコード手段は、第１のオフセットを算出する第１のオフセット算出モジュール、すなわち第１のオフセット算出器３１０と、デブロッキングフィルタモジュール３００、すなわちデブロッキングフィルタ装置の画素値を変更する画素値変更モジュール、すなわち画素値変更器３２０とを備える。これらのモジュール３１０、３２０は、実質的に、処理ユニット７２上で実行される場合に図１におけるフローチャートのステップを実行する。従って、種々のモジュール３１０、３２０は、処理ユニット７２上で実行される場合に図８の対応するユニット１１０、１２０及び図９の対応するユニット２１０、２２０に対応する。
【０１２０】
コンピュータプログラム７４は、図９の対応するユニット２３０〜２９０の動作を実行するために、第１のクリッピングモジュールと、第２のクリッピングモジュールと、第２のオフセット算出モジュールと、第３のオフセット算出モジュール及び選択的に更なる第３のクリッピングモジュールと、第４のオフセット算出モジュールと、第５のオフセット算出モジュールとを更に備えてもよい。
【０１２１】
図１０のコンピュータ７０は、ユーザ機器であってよく、あるいはユーザ機器８０に存在してよい。そのような場合、更にユーザ機器８０は、映像データを表示するディスプレイ８８を含むかあるいはそれに接続されてもよい。
【０１２２】
図８のデブロッキングフィルタユニット１００及び図９のデブロッキングフィルタユニット２００は、映像符号化において使用されることが好ましい。それは、機能するために映像符号器及び映像復号器の双方において実現されることが好ましい。ビデオ復号器は、ハードウェアで実現されることが好ましいが、ソフトウェアでも実現されてよい。同じことが映像符号器についてもあてはまる。
【０１２３】
図１１は、一実施形態に係る例えば映像シーケンスの映像フレームの画素のブロックを符号化する符号器４０を示す概略ブロック図である。
【０１２４】
画素の現在のブロックは、動き推定器５０により動き推定を実行することにより、同一のフレーム又は前のフレームにおいて既に提供された画素のブロックから予測される。インター予測の場合、動き推定の結果、基準ブロックと関連付けられた動きベクトル又は変位ベクトルが得られる。動きベクトルは、画素のブロックのインター予測値を出力する動き補償器５０により利用される。
【０１２５】
イントラ予測器４９は、画素の現在のブロックのイントラ予測値を算出する。動き推定器／補償器５０及びイントラ予測器４９からの出力は、画素の現在のブロックのイントラ予測又はインター予測のいずれかを選択する選択器５１において入力される。選択器５１からの出力は、画素の現在のブロックの画素値を更に受信する加算器４１の形態で誤差算出器に入力される。加算器４１は、画素のブロックとその予測との間の画素値の差分として残差誤差を算出及び出力する。
【０１２６】
誤差は、離散コサイン変換等により変換器４２において変換され、量子化器４３により量子化され、その後エントロピー符号器等の符号器４４において符号化される。インター符号化において、更に推定された動きベクトルは、画素の現在のブロックの符号化表現を生成する符号器４４にもたらされる。
【０１２７】
画素の現在のブロックに対して変換され且つ量子化された残差誤差は、逆量子化器４５及び逆変換器４６に更に提供され、元の残差誤差を検索する。この誤差は、加算器４７により動き補償器５０又はイントラ予測器４９からのブロック予測出力に加算され、画素の次のブロックを予測及び符号化するために使用可能な画素の基準ブロックを作成する。この新しい基準ブロックは、デブロッキングフィルタリングを実行してあらゆるブロッキングアーチファクトを抑制するために、実施形態に係るデブロッキングフィルタユニット１００により最初に処理される。処理された新しい基準ブロックは、フレームバッファ４８に一時的に格納され、イントラ予測器４９及び動き推定器／補償器５０に対して使用可能である。
【０１２８】
図１２は、実施形態に係るデブロッキングフィルタユニット１００を備える復号器６０を示す対応する概略ブロック図である。復号器６０は、画素のブロックの符号化表現を復号化し、量子化され且つ変換された残差誤差の集合を取得するエントロピー復号器等の復号器６１を備える。これらの残差誤差は、逆量子化器６２において逆量子化され、逆変換器６３により逆変換され、残差誤差の集合を取得する。
【０１２９】
これらの残差誤差は、加算器６４において画素の基準ブロックの画素値に加算される。基準ブロックは、インター予測又はイントラ予測が実行されるかに依存して動き推定器／補償器６７又はイントラ予測器６６により判定される。選択器６８は、加算器６４、動き推定器／補償器６７及びイントラ予測器６６に相互接続される。加算器６４から出力された結果として得られる画素の復号化ブロックは、あらゆるブロッキングアーチファクトをデブロッキングフィルタリングするために、実施形態に係るデブロッキングフィルタユニット１００に入力される。フィルタリングされた画素のブロックは、復号器６０から出力され、フレームバッファ６５に更に一時的に提供されることが好ましく、復号化される画素の後続ブロックに対して画素の基準ブロックとして使用可能である。フレームバッファ６５は、動き推定器／補償器６７に接続され、動き推定器／補償器６７が格納された画素のブロックを使用できるようにする。
【０１３０】
加算器６４からの出力は、イントラ予測器６６に更に入力され、フィルタリングされない画素の基準ブロックとして使用されることが好ましい。
【０１３１】
図１１及び図１２に開示された実施形態において、デブロッキングフィルタユニット１００は、いわゆるインループフィルタリングと呼ばれるようなデブロッキングフィルタリングを実行する。復号器６０における別の一実現例において、デブロッキングフィルタユニット１００は、いわゆる後処理フィルタリングを実行するように構成される。そのような場合、デブロッキングフィルタユニット１００は、加算器６４、フレームバッファ６５、イントラ予測器６６、動き推定器／補償器６７及び選択器６８により形成されたループの外側の出力フレームに対して動作する。その後、一般に符号器においてデブロッキングフィルタリングは行われない。
【０１３２】
図１３は、デブロッキングフィルタユニットを含む復号器６０を収容するユーザ機器又はメディア端末８０を示す概略ブロック図である。ユーザ機器８０は、符号化映像フレームの符号化映像ストリームに対して動作することにより、映像フレームを復号化して映像データを使用可能にするメディア復号化機能を有するあらゆる装置であってよい。そのような装置の非限定例には、移動電話及び他のポータブルメディアプレーヤ、タブレット、デスクトップ、ノートブック、パーソナル映像レコーダ、マルチメディアプレーヤ、映像ストリーミングサーバ、セットトップボックス、ＴＶ、コンピュータ、復号器、ゲーム機等が含まれる。ユーザ機器８０は、符号化映像フレームを格納するように構成されたメモリ８４を含む。これらの符号化映像フレームは、ユーザ機器８０自体により生成されている。そのような場合、ユーザ機器８０は、図１１の符号器等の接続された符号器と共にメディアエンジン又はレコーダを備えることが好ましい。あるいは、符号化映像フレームは、他の何らかの装置により生成され、ユーザ機器８０に無線通信又は有線通信される。ユーザ機器８０は、送受信機（送信機及び受信機）又は入出力ポート８２を備え、データ伝送を実現する。
【０１３３】
符号化映像フレームは、メモリ８４から図１２に示された復号器等の復号器６０にもたらされる。復号器６０は、実施形態に係るデブロッキングフィルタユニット１００を備える。復号器６０は、符号化映像フレームを復号化映像フレームに復号化する。復号化映像フレームは、ユーザ機器８０のディスプレイ又は画面８８、あるいはユーザ機器８０に接続されたディスプレイ又は画面８８上に表示可能な映像データに復号化映像フレームをレンダリングするように構成されるメディアプレーヤ８６に提供される。
【０１３４】
図１３において、ユーザ機器８０は、復号器６０及びメディアプレーヤ８６の双方を備えるものとして示されており、復号器６０はメディアプレーヤ８６の一部として実現される。しかし、これは、単にユーザ機器８０の一実現例の例示であり、これに限定されるものではないと考えられるべきである。また、本明細書において使用されたようなユーザ機器８０の範囲内において、復号器６０及びメディアプレーヤ８６が２つの物理的に分離された装置に提供されることが可能である分散型実現例が可能である。ディスプレイ８８は、実際のデータ処理が行われているユーザ機器８０に接続された別個の装置として更に提供される。
【０１３５】
図１４に示されるように、それぞれ図１１及び図１２に示されたような符号器４０及び／又は復号器６０は、送出ユニット３４と受信ユーザ機器３６との間の通信ネットワーク３２におけるネットワークノードであるかあるいはそれに属するネットワーク装置３０において実現されてもよい。例えば、受信ユーザ機器３６が送出ユニット３４から送出された映像符号化規格とは別の映像符号化規格のみに対応するか、あるいはそれを好む場合、そのようなネットワーク装置３０は、１つの映像符号化規格に従う映像を別の映像符号化規格に変換する装置であってもよい。ネットワーク装置３０は、無線ベースのネットワーク等の通信ネットワーク３２における無線基地局、Ｎｏｄｅ−Ｂ又は他のあらゆるネットワークノードの形態であってよく、あるいはそれらに含まれてよい。
【０１３６】
上述の実施形態は、本発明のいくつかの例示的な例として理解されるべきである。本発明の範囲から逸脱せずに種々の変形、組合せ及び変更が実施形態に対して行われてもよいことは、当業者により理解されるだろう。特に、技術的に可能である場合、種々の実施形態における種々の部分的な解決方法は、他の構成において組み合わされてよい。しかし、本発明の範囲は添付の特許請求の範囲により規定される。
【図１】
0005540163.tif 000003
【図２Ａ】
0005540163.tif 000004
【図２Ｂ】
0005540163.tif 000005
【図３】
0005540163.tif 000006
【図４】
0005540163.tif 000007
【図５】
0005540163.tif 000008
【図６】
0005540163.tif 000009
【図７】
0005540163.tif 000010
【図８】
0005540163.tif 000011
【図９】
0005540163.tif 000012
【図１０】
0005540163.tif 000013
【図１１】
0005540163.tif 000014
【図１２】
0005540163.tif 000015
【図１３】
0005540163.tif 000016
【図１４】
0005540163.tif 000017