(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023159145
(43)【公開日】2023-10-31
(54)【発明の名称】ビデオコーディングにおけるデブロッキングフィルタのための装置および方法
(51)【国際特許分類】
H04N 19/82 20140101AFI20231024BHJP
H04N 19/117 20140101ALI20231024BHJP
H04N 19/134 20140101ALI20231024BHJP
H04N 19/176 20140101ALI20231024BHJP
【FI】
H04N19/82
H04N19/117
H04N19/134
H04N19/176
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023126269
(22)【出願日】2023-08-02
(62)【分割の表示】P 2021520213の分割
【原出願日】2019-10-14
(31)【優先権主張番号】62/745,262
(32)【優先日】2018-10-12
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/768,074
(32)【優先日】2018-11-15
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Blu-ray
(71)【出願人】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133569
【弁理士】
【氏名又は名称】野村 進
(72)【発明者】
【氏名】ジエンレ・チェン
(72)【発明者】
【氏名】アナンド・メヘル・コトラ
(72)【発明者】
【氏名】セミフ・エセンリク
(72)【発明者】
【氏名】ビャオ・ワン
(72)【発明者】
【氏名】ハン・ガオ
(72)【発明者】
【氏名】ジジエ・ジャオ
(57)【要約】
【課題】ビデオコーディングにおけるデブロッキングフィルタのための装置および方法を提供する。
【解決手段】本発明は、ピクチャ処理の分野に関する。特に、本発明は、画像処理デバイスのデブロッキングフィルタを改善することを扱う。ブロックエッジに隣接する第1の画像ブロックの最大でMA個のサンプル値が修正され、ブロックエッジに隣接する第2の画像ブロックの最大でMB個のサンプル値が修正され、MA<MBである。
【選択図】
図17
【特許請求の範囲】
【請求項1】
画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスであって、前記ブロックエッジは、第1の画像ブロックと第2の画像ブロックとの間の、水平ブロックエッジを含み、
前記第1の画像ブロックは、垂直方向にブロックサイズSAを有し、
前記第2の画像ブロックは、前記垂直方向にブロックサイズSBを有し、前記垂直方向は前記水平ブロックエッジに対して垂直であり、
前記デバイスは、
前記水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、
前記第1の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正し、前記最大でMA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第1の画像ブロックの列から得られ、
前記第2の画像ブロックの最大でMB個のサンプルの値を第2のフィルタ出力値として修正し、前記最大でMB個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第2の画像ブロックの列から得られる、ように構成される、デブロッキングフィルタを備え、
前記第1の画像ブロックは前記CTB境界の上のブロックであり、前記第2の画像ブロックは前記CTB境界の下のブロックであり、
MA≠MBであり、MAは、前記CTB境界と関連付けられる行バッファの行バッファサイズに基づいて決定される、デバイス。
【請求項2】
前記デブロッキングフィルタはさらに、前記水平ブロックエッジが前記水平コーディングツリーブロック(CTB)境界と重なる場合、
前記第1の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用し、前記最大でDA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第1の画像ブロックの列から得られ、
前記第2の画像ブロックの最大でDB個のサンプルの値を第2のフィルタ決定値として使用し、前記最大でDB個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第2の画像ブロックの列から得られる、ように構成され、
DA≠DBであり、DAは、前記CTB境界と関連付けられる前記行バッファの前記行バッファサイズに基づいて決定される、請求項1に記載のデバイス。
【請求項3】
前記行バッファがX行の前記行バッファサイズを有する場合、前記第1の画像ブロックについて、MA=X-1であり、Xは正の整数である、請求項1に記載のデバイス。
【請求項4】
前記行バッファがX行の前記行バッファサイズを有する場合、前記第1の画像ブロックについて、DA=XかつMA=X-1であり、Xは正の整数である、請求項2に記載のデバイス。
【請求項5】
前記第1の画像ブロックおよび前記第2の画像ブロックがクロマブロックであるとき、前記行バッファは2行の前記行バッファサイズを有し、または、
前記第1の画像ブロックおよび前記第2の画像ブロックがルマブロックであるとき、前記行バッファは4行の前記行バッファサイズを有する、請求項1から4のいずれか一項に記載のデバイス。
【請求項6】
前記CTB境界と関連付けられる前記行バッファがX行の前記行バッファサイズを有する場合、
前記第1の画像ブロックのサンプルpiは、前記第1の画像ブロックに属し前記行バッファの外側にある他のサンプルを置換するパディングされた値として使用され、i=X-1である、請求項1から5のいずれか一項に記載のデバイス。
【請求項7】
前記第1の画像ブロックのサンプルpiのフィルタ係数は、前記第1の画像ブロックに属し前記行バッファに記憶されることが許容される最も外側のサンプルである前記サンプルpiが、前記第1の画像ブロックに属し前記行バッファの外側にある前記他のサンプルを置換するパディングされた値として使用されるような方法で決定される、請求項1から5のいずれか一項に記載のデバイス。
【請求項8】
前記第1の画像ブロックのサンプルpiと関連付けられるフィルタ係数は、前記サンプルpiがパディングされた値として使用される回数に基づいて決定され、前記サンプルpiは、前記第1の画像ブロックに属し、前記CTB境界と関連付けられる前記行バッファに記憶されることが許容される最も外側のサンプルである、請求項1から5のいずれか一項に記載のデバイス。
【請求項9】
前記第1の画像ブロックと前記第2の画像ブロックの両方がルマブロックであり、SBおよびSAが32以上であるとき、MB=7かつMA=3である、または、
前記第1の画像ブロックと前記第2の画像ブロックの両方がルマブロックであり、SBが32以上でありSAが16以上であるとき、MB=7かつMA=3である、請求項1から8のいずれか一項に記載のデバイス。
【請求項10】
前記第1の画像ブロックと前記第2の画像ブロックの両方がルマブロックであり、SBおよびSAが32以上であるとき、DB=8かつDA=4である、または、
前記第1の画像ブロックと前記第2の画像ブロックの両方がルマブロックであり、SBが32以上でありSAが16以上であるとき、DB=8かつDA=4である、請求項2から9のいずれか一項に記載のデバイス。
【請求項11】
前記第1の画像ブロックと前記第2の画像ブロックがクロマブロックであり、SAおよびSBが8以上であるとき、MB=3かつMA=1である、請求項1から8のいずれか一項に記載のデバイス。
【請求項12】
前記第1の画像ブロックと前記第2の画像ブロックがクロマブロックであり、SBおよびSAが8以上であるとき、DB=4かつDA=2である、請求項2から8および11のいずれか一項に記載のデバイス。
【請求項13】
前記第2の画像ブロックは現在の画像ブロックであり、前記第1の画像ブロックは前記現在の画像ブロックに隣接する近隣の画像ブロックである、請求項1から12のいずれか一項に記載のデバイス。
【請求項14】
前記第1の画像ブロックのサンプルpiはルマサンプルであり、または、前記第1の画像ブロックの前記サンプルpiはクロマサンプルであり、iは{0,1,2,...,SA-1}に属する、請求項1から13のいずれか一項に記載のデバイス。
【請求項15】
前記第1の画像ブロックおよび第2の画像ブロックがクロマブロックであるとき、前記デブロッキングフィルタは、前記水平ブロックエッジが水平クロマCTB境界と重なるかどうかを決定するように構成される、または
前記第1の画像ブロックおよび第2の画像ブロックがルマブロックであるとき、前記デブロッキングは、前記水平ブロックエッジが水平ルマCTB境界と重なるかどうかを決定するように構成される、請求項1から14のいずれか一項に記載のデバイス。
【請求項16】
前記デブロッキングフィルタは、より長いタップフィルタまたは非対称フィルタまたは非対称タップフィルタである、請求項1から15のいずれか一項に記載のデバイス。
【請求項17】
画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスであって、前記ブロックエッジは、第1の画像ブロックと第2の画像ブロックとの間の、水平ブロックエッジを含み、
前記第1の画像ブロックは、垂直方向にブロックサイズSAを有し、前記第2の画像ブロックは、前記垂直方向にブロックサイズSBを有し、前記垂直方向は前記水平ブロックエッジに対して垂直であり、
前記デバイスは、
前記水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、
前記第1の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正し、前記最大でMA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第1の画像ブロックの列から得られ、MA=1であり、
前記第2の画像ブロックの最大でMB個のサンプルの値を第2のフィルタ出力値として修正し、前記最大でMB個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第2の画像ブロックの列から得られ、MB=3である、ように構成される、デブロッキングフィルタを備え、
前記第1の画像ブロックは前記CTB境界の上のクロマブロックであり、前記第2の画像ブロックは前記CTB境界の下の別のクロマブロックであり、SAおよびSBは8以上である、デバイス。
【請求項18】
画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスであって、前記ブロックエッジは、第1の画像ブロックと第2の画像ブロックとの間の、水平ブロックエッジを含み、
前記第1の画像ブロックは、垂直方向にブロックサイズSAを有し、
前記第2の画像ブロックは、前記垂直方向にブロックサイズSBを有し、前記垂直方向は前記水平ブロックエッジに対して垂直であり、
前記デバイスは、前記水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、
前記第1の画像ブロックの最大でDA個のサンプル値の値を第1のフィルタ決定値として使用し、前記最大でDA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第1の画像ブロックの列から得られ、DA=2であり、
前記第2の画像ブロックの最大でDB個のサンプルの値を第2のフィルタ決定値として使用し、前記最大でDB個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第2の画像ブロックの列から得られ、DB=4である、ように構成される、デブロッキングフィルタを備え、
前記第1の画像ブロックは前記CTB境界の上のクロマブロックであり、前記第2の画像ブロックは前記CTB境界の下の別のクロマブロックであり、SAおよびSBは8以上である、デバイス。
【請求項19】
請求項1から18のいずれか一項に記載のデバイスを備える、画像を符号化するためのエンコーダ。
【請求項20】
請求項1から18のいずれか一項に記載のデバイスを備える、画像を復号するためのデコーダ。
【請求項21】
画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法であって、前記ブロックエッジは、第1の画像ブロックと第2の画像ブロックとの間の水平ブロックエッジを含み、
前記第1の画像ブロックは、垂直方向にブロックサイズSAを有し、
前記第2の画像ブロックは、前記垂直方向にブロックサイズSBを有し、前記垂直方向は前記水平ブロックエッジに対して垂直であり、
前記方法は、前記水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、
前記第1の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正するステップであって、前記最大でMA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第1の画像ブロックの列から得られる、ステップと、
前記第2の画像ブロックの最大でMB個のサンプルの値を第2のフィルタ出力値として修正するステップであって、前記最大でMB個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第2の画像ブロックの列から得られる、ステップとを備え、
前記第1の画像ブロックは前記CTB境界の上のブロックであり、前記第2の画像ブロックは前記CTB境界の下のブロックであり、
MA≠MBであり、MAは、前記CTB境界と関連付けられる行バッファの行バッファサイズに基づいて決定される、デブロッキング方法。
【請求項22】
前記方法はさらに、前記水平ブロックエッジが前記水平コーディングツリーブロック(CTB)境界と重なる場合、
前記第1の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するステップであって、前記最大でDA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第1の画像ブロックの列から得られる、ステップと、
前記第2の画像ブロックの最大でDB個のサンプルの値を第2のフィルタ決定値として使用するステップであって、前記最大でDB個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第2の画像ブロックの列から得られる、ステップとを備え、
DA≠DBであり、DAは、前記CTB境界と関連付けられる前記行バッファの前記行バッファサイズに基づいて決定される、請求項1に記載の方法。
【請求項23】
前記行バッファがX行の前記行バッファサイズを有する場合、前記第1の画像ブロックについて、MA=X-1であり、Xは正の整数である、請求項21に記載の方法。
【請求項24】
前記行バッファがX行の前記行バッファサイズを有する場合、前記第1の画像ブロックについて、DA=XかつMA=X-1であり、Xは正の整数である、請求項22に記載の方法。
【請求項25】
前記第1の画像ブロックおよび前記第2の画像ブロックがクロマブロックであるとき、前記行バッファは2行の前記行バッファサイズを有する、または、
前記第1の画像ブロックおよび前記第2の画像ブロックがルマブロックであるとき、前記行バッファは4行の前記行バッファサイズを有する、請求項21から24のいずれか一項に記載の方法。
【請求項26】
前記CTB境界と関連付けられる前記行バッファがX行の前記行バッファサイズを有する場合、
前記第1の画像ブロックのサンプルpiは、前記第1の画像ブロックに属し前記行バッファの外側にある他のサンプルを置換するパディングされた値として使用され、i=X-1である、請求項21から25のいずれか一項に記載の方法。
【請求項27】
前記第1の画像ブロックのサンプルpiのフィルタ係数は、前記第1のブロックに属し前記行バッファに記憶されることが許容される最も外側のサンプルである前記サンプルpiが、前記第1の画像ブロックに属し前記行バッファの外側にある前記他のサンプルを置換するパディングされた値として使用されるような方法で決定される、請求項21から25のいずれか一項に記載の方法。
【請求項28】
前記第1の画像ブロックのサンプルpiと関連付けられるフィルタ係数は、前記サンプルpiがパディングされた値として使用される回数に基づいて決定され、前記サンプルpiは、前記第1の画像ブロックに属し、前記CTB境界と関連付けられる前記行バッファに記憶されることが許容される最も外側のサンプルである、請求項21から25のいずれか一項に記載の方法。
【請求項29】
前記第1の画像ブロックと前記第2の画像ブロックの両方がルマブロックであり、SBおよびSAが32以上であるとき、MB=7かつMA=3である、または、
前記第1の画像ブロックと前記第2の画像ブロックの両方がルマブロックであり、SBが32以上でありSAが16以上であるとき、MB=7かつMA=3である、請求項21から28のいずれか一項に記載の方法。
【請求項30】
前記第1の画像ブロックと前記第2の画像ブロックの両方がルマブロックであり、SBおよびSAが32以上であるとき、DB=8かつDA=4である、または、
前記第1の画像ブロックと前記第2の画像ブロックの両方がルマブロックであり、SBが32以上でありSAが16以上であるとき、DB=8かつDA=4である、請求項22から29のいずれか一項に記載の方法。
【請求項31】
前記第1の画像ブロックと前記第2の画像ブロックがクロマブロックであり、SAおよびSBが8以上であるとき、MB=3かつMA=1である、請求項21から28のいずれか一項に記載の方法。
【請求項32】
前記第1の画像ブロックと前記第2の画像ブロックがクロマブロックであり、SAおよびSAが8以上であるとき、DB=4かつDA=2である、請求項22から28および31のいずれか一項に記載の方法。
【請求項33】
前記第2の画像ブロックは現在の画像ブロックであり、前記第1の画像ブロックは前記現在の画像ブロックに隣接する近隣の画像ブロックである、請求項21から32のいずれか一項に記載の方法。
【請求項34】
前記第1の画像ブロックのサンプルpiはルマサンプルであり、または、前記第1の画像ブロックの前記サンプルpiはクロマサンプルであり、iは{0,1,2,...,SA-1}に属する、請求項21から33のいずれか一項に記載の方法。
【請求項35】
前記方法はさらに、
前記第1の画像ブロックおよび第2の画像ブロックがクロマブロックであるとき、前記水平ブロックエッジが水平クロマCTB境界と重なるかどうかを決定するステップ、または、
前記第1の画像ブロックおよび第2の画像ブロックがルマブロックであるとき、前記水平ブロックエッジが水平ルマCTB境界と重なるかどうかを決定するステップを備える、請求項21から34のいずれか一項に記載の方法。
【請求項36】
前記デブロッキングフィルタは、より長いタップフィルタまたは非対称フィルタまたは非対称タップフィルタである、請求項21から35のいずれか一項に記載の方法。
【請求項37】
画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法であって、前記ブロックエッジは、第1の画像ブロックと第2の画像ブロックとの間の水平ブロックエッジを含み、
前記第1の画像ブロックは、垂直方向にブロックサイズSAを有し、
前記第2の画像ブロックは、前記垂直方向にブロックサイズSBを有し、前記垂直方向は前記水平ブロックエッジに対して垂直であり、
前記方法は、前記水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、
前記第1の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正するステップであって、前記最大でMA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第1の画像ブロックの列から得られ、MA=1である、ステップと、
前記第2の画像ブロックの最大でMB個のサンプルの値を第2のフィルタ出力値として修正するステップであって、前記最大でMB個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第2の画像ブロックの列から得られ、MB=3である、ステップとを備え、
前記第1の画像ブロックは前記CTB境界の上のクロマブロックであり、前記第2の画像ブロックは前記CTB境界の下の別のクロマブロックであり、SAおよびSBは8以上である、デブロッキング方法。
【請求項38】
画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法であって、前記ブロックエッジは、第1の画像ブロックと第2の画像ブロックとの間の水平ブロックエッジを含み、
前記第1の画像ブロックは、垂直方向にブロックサイズSAを有し、
前記第2の画像ブロックは、前記垂直方向にブロックサイズSBを有し、前記垂直方向は前記水平ブロックエッジに対して垂直であり、
前記方法は、前記水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、
前記第1の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するステップであって、前記最大でDA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第1の画像ブロックの列から得られ、DA=2である、ステップと、
前記第2の画像ブロックの最大でDB個のサンプルの値を第2のフィルタ決定値として使用するステップであって、前記最大でDB個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第2の画像ブロックの列から得られ、DB=4である、ステップとのように構成される、デブロッキングフィルタを備え、
前記第1の画像ブロックは前記CTB境界の上のクロマブロックであり、前記第2の画像ブロックは前記CTB境界の下の別のクロマブロックであり、SAおよびSBは8以上である、デブロッキング方法。
【請求項39】
請求項21から38および請求項60から76のいずれか一項に記載のデブロッキング方法を備える、画像を符号化するための符号化方法。
【請求項40】
請求項21から38および請求項60から76のいずれか一項に記載のデブロッキング方法を備える、画像を復号するための復号方法。
【請求項41】
画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスであって、前記ブロックエッジは、現在の画像ブロックと前記現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、前記現在の画像ブロックは前記水平ブロックエッジの上にあり、
前記現在の画像ブロックは、垂直方向にブロックサイズSAを有し、前記垂直方向は前記水平ブロックエッジに対して垂直であり、
前記デバイスは、前記水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、
前記CTB境界と関連付けられる行バッファの行バッファサイズに少なくとも基づいて、前記現在の画像ブロックに対する最大フィルタ長MAを決定し、
前記現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正し、前記最大でMA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記現在の画像ブロックの列から得られる、ように構成される、デブロッキングフィルタを備える、デバイス。
【請求項42】
前記CTB境界と関連付けられる前記行バッファがX行の前記行バッファサイズを有する場合、MA=X-1であり、Xは正の整数である、請求項41に記載のデバイス。
【請求項43】
前記デブロッキングフィルタはさらに、前記水平ブロックエッジが前記水平コーディングツリーブロック(CTB)境界と重なる場合、
前記現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するように構成され、前記最大でDA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記現在の画像ブロックの列から得られる、請求項41または42に記載のデバイス。
【請求項44】
前記CTB境界と関連付けられる前記行バッファがX行の前記行バッファサイズを有する場合、DA=XかつMA=X-1であり、Xは正の整数である、請求項43に記載のデバイス。
【請求項45】
前記現在の画像ブロックがクロマブロックであるとき、前記CTB境界と関連付けられる前記行バッファは2行の前記行バッファサイズを有する、または、
前記現在の画像ブロックがルマブロックであるとき、前記CTB境界と関連付けられる前記行バッファは4行の前記行バッファサイズを有する、請求項41から44のいずれか一項に記載のデバイス。
【請求項46】
前記CTB境界と関連付けられる前記行バッファがX行の前記行バッファサイズを有する場合、
前記現在の画像ブロックのサンプルpiは、前記現在の画像ブロックに属し前記行バッファの外側にある他のサンプルを置換するパディングされた値として使用され、i=X-1である、請求項41から45のいずれか一項に記載のデバイス。
【請求項47】
前記現在の画像ブロックのサンプルpiのフィルタ係数は、前記現在のブロックに属し前記行バッファに記憶されることが許容される最も外側のサンプルである前記サンプルpiが、前記現在の画像ブロックに属し前記行バッファの外側にある前記他のサンプルを置換するパディングされた値として使用されるような方法で決定される、請求項41から45のいずれか一項に記載のデバイス。
【請求項48】
前記現在の画像ブロックのサンプルpiと関連付けられるフィルタ係数は、前記サンプルpiがパディングされた値として使用される回数に基づいて決定され、前記サンプルpiは、前記現在の画像ブロックに属し、前記CTB境界と関連付けられる前記行バッファに記憶されることが許容される最も外側のサンプルである、請求項41から45のいずれか一項に記載のデバイス。
【請求項49】
前記行バッファが2行の前記行バッファサイズを有するとき、前記サンプルpiは前記サンプルp1であり、前記サンプルp1と関連付けられる前記フィルタ係数は3である、請求項47または48に記載のデバイス。
【請求項50】
前記現在の画像ブロックがルマブロックであり、SAが32以上であるとき、MA=3であり、SAは前記現在の画像ブロックの高さである、または、
前記現在の画像ブロックがルマブロックであり、SAが16以上であるとき、MA=3であり、SAは前記現在の画像ブロックの高さである、請求項41から49のいずれか一項に記載のデバイス。
【請求項51】
前記現在の画像ブロックがルマブロックであり、SAが32以上であるとき、DA=4であり、SAは前記現在の画像ブロックの高さである、または、
前記現在の画像ブロックがルマブロックであり、SAが16以上であるとき、DA=4であり、SAは前記現在の画像ブロックの高さである、請求項43または44に記載のデバイス。
【請求項52】
前記現在の画像ブロックがクロマブロックであり、SAが8以上であるとき、MA=1であり、
SAは前記現在の画像ブロックの高さである、請求項41から49のいずれか一項に記載のデバイス。
【請求項53】
前記現在の画像ブロックがクロマブロックであり、SAが8以上であるとき、DA=2であり、
SAは前記現在の画像ブロックの高さである、請求項43から44のいずれか一項に記載のデバイス。
【請求項54】
前記現在の画像ブロックがクロマブロックであるとき、前記デブロッキングフィルタは、前記水平ブロックエッジが水平クロマCTB境界と重なるかどうかを決定するように構成される、または、
前記現在の画像ブロックがルマブロックであるとき、前記デブロッキングは、前記水平ブロックエッジが水平ルマCTB境界と重なるかどうかを決定するように構成される、請求項41から53のいずれか一項に記載のデバイス。
【請求項55】
前記現在の画像ブロックのサンプルpiはルマサンプルであり、または、前記現在の画像ブロックの前記サンプルpiはクロマサンプルであり、iは{0,1,2,...,SA-1}に属する、請求項1から54のいずれか一項に記載のデバイス。
[請求項55a]
前記現在の画像ブロックは変換ブロックである、または、
現在の画像ブロックはコーディングブロックである、請求項41から55のいずれか一項に記載のデバイス。
【請求項56】
画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスであって、前記ブロックエッジは、現在の画像ブロックと前記現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、前記現在の画像ブロックは前記水平ブロックエッジの上にあり、
前記現在の画像ブロックは、垂直方向にブロックサイズSAを有し、前記垂直方向は前記水平ブロックエッジに対して垂直であり、
前記デバイスは、前記水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、
前記現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正し、前記最大でMA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記現在の画像ブロックの列から得られ、
前記現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用し、前記最大でDA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記現在の画像ブロックの列から得られる、ように構成される、デブロッキングフィルタを備え。
前記現在の画像ブロックがルマブロックであり、SAが32以上であるとき、MA=3かつDA=4である、デバイス。
【請求項57】
画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスであって、前記ブロックエッジは、現在の画像ブロックと前記現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、前記現在の画像ブロックは前記水平ブロックエッジの上にあり、
前記現在の画像ブロックは、垂直方向にブロックサイズSAを有し、前記垂直方向は前記水平ブロックエッジに対して垂直であり、
前記デバイスは、前記水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、
前記現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正し、前記最大でMA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記現在の画像ブロックの列から得られ、
前記現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用し、前記最大でDA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記現在の画像ブロックの列から得られる、ように構成される、デブロッキングフィルタを備え。
前記現在の画像ブロックがクロマブロックであり、SAが8以上であるとき、MA=1かつDA=2である、デバイス。
【請求項58】
請求項41から57のいずれか一項に記載のデバイスを備える、画像を符号化するためのエンコーダ。
【請求項59】
請求項41から57のいずれか一項に記載のデバイスを備える、画像を復号するためのデコーダ。
【請求項60】
画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法であって、前記ブロックエッジは、現在の画像ブロックと前記現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、前記現在の画像ブロックは前記水平ブロックエッジの上にあり、
前記現在の画像ブロックは、垂直方向にブロックサイズSAを有し、前記垂直方向は前記水平ブロックエッジに対して垂直であり、
前記方法は、前記水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、
前記CTB境界と関連付けられる行バッファの行バッファサイズに少なくとも基づいて、前記現在の画像ブロックに対する最大フィルタ長MAを決定するステップと、
前記現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正するステップであって、前記最大でMA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記現在の画像ブロックの列から得られる、ステップとを備える、デブロッキング方法。
【請求項61】
前記CTB境界と関連付けられる前記行バッファがX行の前記行バッファサイズを有する場合、MA=X-1であり、Xは正の整数である、請求項60に記載の方法。
【請求項62】
前記方法はさらに、前記水平ブロックエッジが前記水平コーディングツリーブロック(CTB)境界と重なる場合、
前記現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するステップを備え、前記最大でDA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記現在の画像ブロックの列から得られる、請求項60または61に記載の方法。
【請求項63】
前記CTB境界と関連付けられる前記行バッファがX行の前記行バッファサイズを有する場合、DA=XかつMA=X-1であり、Xは正の整数である、請求項62に記載の方法。
【請求項64】
前記現在の画像ブロックがクロマブロックであるとき、前記CTB境界と関連付けられる前記行バッファは2行の前記行バッファサイズを有する、または、
前記現在の画像ブロックがルマブロックであるとき、前記CTB境界と関連付けられる前記行バッファは4行の前記行バッファサイズを有する、請求項60から63のいずれか一項に記載の方法。
【請求項65】
前記CTB境界と関連付けられる前記行バッファがX行の前記行バッファサイズを有する場合、
前記現在の画像ブロックのサンプルpiは、前記現在の画像ブロックに属し前記行バッファの外側にある他のサンプルを置換するパディングされた値として使用され、i=X-1である、請求項60から64のいずれか一項に記載の方法。
【請求項66】
前記現在の画像ブロックのサンプルpiのフィルタ係数は、前記現在の画像ブロックに属し前記行バッファに記憶されることが許容される最も外側のサンプルである前記サンプルpiが、前記現在の画像ブロックに属し前記行バッファの外側にある前記他のサンプルを置換するパディングされた値として使用されるような方法で決定される、請求項60から64のいずれか一項に記載の方法。
【請求項67】
前記現在の画像ブロックのサンプルpiと関連付けられるフィルタ係数は、前記サンプルpiがパディングされた値として使用される回数に基づいて決定され、前記サンプルpiは、前記現在の画像ブロックに属し、前記CTB境界と関連付けられる前記行バッファに記憶されることが許容される最も外側のサンプルである、請求項60から64のいずれか一項に記載の方法。
【請求項68】
前記行バッファが2行の前記行バッファサイズを有するとき、前記サンプルpiは前記サンプルp1であり、前記サンプルp1と関連付けられる前記フィルタ係数は3である、請求項66または67に記載の方法。
【請求項69】
前記現在の画像ブロックがルマブロックであり、SAが32以上であるとき、MA=3であり、SAは前記現在の画像ブロックの高さである、または、
前記現在の画像ブロックがルマブロックであり、SAが16以上であるとき、MA=3であり、SAは前記現在の画像ブロックの高さである、請求項60から68のいずれか一項に記載の方法。
【請求項70】
前記現在の画像ブロックがルマブロックであり、SAが32以上であるとき、DA=4であり、SAは前記現在の画像ブロックの高さである、または、
前記現在の画像ブロックがルマブロックであり、SAが16以上であるとき、DA=4であり、SAは前記現在の画像ブロックの高さである、請求項62または63に記載の方法。
【請求項71】
前記現在の画像ブロックがクロマブロックであり、SAが8以上であるとき、MA=1であり、SAは前記現在の画像ブロックの高さである、請求項60から68のいずれか一項に記載の方法。
【請求項72】
前記現在の画像ブロックがクロマブロックであり、SAが8以上であるとき、DA=2であり、SAは前記現在の画像ブロックの高さである、請求項62または63に記載の方法。
【請求項73】
前記方法はさらに、
前記現在の画像ブロックがクロマブロックであるとき、前記水平ブロックエッジが水平クロマCTB境界と重なるかどうかを決定するステップ、または
前記現在の画像ブロックがルマブロックであるとき、前記水平ブロックエッジが水平ルマCTB境界と重なるかどうかを決定するステップを備える、請求項60から72のいずれか一項に記載の方法。
【請求項74】
前記現在の画像ブロックのサンプルpiはルマサンプルであり、または、前記現在の画像ブロックの前記サンプルpiはクロマサンプルであり、iは{0,1,2,...,SA-1}に属する、請求項1から73のいずれか一項に記載の方法。
【請求項75】
画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法であって、前記ブロックエッジは、現在の画像ブロックと前記現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、前記現在の画像ブロックは前記水平ブロックエッジの上にあり、
前記現在の画像ブロックは、垂直方向にブロックサイズSAを有し、前記垂直方向は前記水平ブロックエッジに対して垂直であり、
前記方法は、前記水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、
前記現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正するステップであって、前記最大でMA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記現在の画像ブロックの列から得られる、ステップと、
前記現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するステップであって、前記最大でDA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記現在の画像ブロックの列から得られる、ステップとを備え、
前記現在の画像ブロックがルマブロックであり、SAが32以上であるとき、MA=3かつDA=4である、デブロッキング方法。
【請求項76】
画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法であって、前記ブロックエッジは、現在の画像ブロックと前記現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、前記現在の画像ブロックは前記水平ブロックエッジの上にあり、
前記現在の画像ブロックは垂直方向にブロックサイズSAを有し、前記垂直方向は前記水平ブロックエッジに対して垂直であり、前記方法は、前記水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、
前記現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正するステップであって、前記最大でMA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記現在の画像ブロックの列から得られる、ステップと、
前記現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するステップであって、前記最大でDA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記現在の画像ブロックの列から得られる、ステップとを備え、
前記現在の画像ブロックがクロマブロックであり、SAが8以上であるとき、MA=1かつDA=2である、デブロッキング方法。
【請求項77】
1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、請求項21から38および請求項60から76のいずれか一項に記載の方法を実行させる、コンピュータ命令を記憶する非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ピクチャ処理の分野に関し、具体的には、ビデオピクチャコーディングに関する。より具体的には、本発明は、再構築されたビデオピクチャをフィルタリングするためのデブロッキングフィルタ装置および方法、ならびに、そのようなデブロッキングフィルタ装置を備える符号化装置および復号装置に関する。
【背景技術】
【0002】
ビデオコーディング(ビデオ符号化および復号)は、広範囲のデジタル画像用途、たとえば、デジタルTV放送、インターネットおよびモバイルネットワークを介したビデオ送信、ビデオチャット、ビデオ会議などのリアルタイム会話用途、DVDおよびBlu-rayディスク、ビデオコンテンツ取得および編集システム、ならびにセキュリティ用途のカムコーダにおいて使用される。
【0003】
1990年のH.261規格におけるブロックベースのハイブリッドビデオコーディング手法の開発以来、新しいビデオコーディングの技法およびツールが開発され、新しいビデオコーディング規格のための基礎が形成された。ほとんどのビデオコーディング規格の目標の1つは、ピクチャ品質を犠牲にすることなく、それ以前の規格と比較してビットレートの低減を達成することであった。さらなるビデオコーディング規格には、MPEG-1ビデオ、MPEG-2ビデオ、ITU-T H.262/MPEG-2、ITU-T H.263、ITU-T H.264/MPEG4, Part 10, Advanced Video Coding(AVC)、ITU-T H.265,High Efficiency Video Coding(HEVC)、ITU-T H.266/Versatile video coding(VVC)、およびこれらの規格の拡張、たとえば、スケーラビリティおよび/または3次元(3D)拡張がある。
【0004】
ブロックベースの画像コーディング方式には、ブロックエッジに沿って、エッジアーティファクトが現れ得るという共通の問題がある。これらのアーティファクトは、コーディングブロックの独立のコーディングによるものである。これらのエッジアーティファクトは、容易にユーザの目に見えることが多い。ブロックベースの画像コーディングの目標は、エッジアーティファクトを閾値の視認性未満に減らすことである。これは、デブロッキングフィルタリングを実行することによって達成される。そのようなデブロッキングフィルタリングは、目に見えるエッジアーティファクトを除去するために復号側において、また、エッジアーティファクトが画像へと符号化されることを完全に防ぐために符号化側において、実行される。
【0005】
したがって、ブロックアーティファクトのより効率的な除去をもたらす、改善されたループ内デブロッキングフィルタ装置および方法が必要とされている。
【発明の概要】
【課題を解決するための手段】
【0006】
上述した課題に鑑みて、本発明は、従来のデブロッキングフィルタリングを改善することを目指す。本発明には、利用可能な行バッファを用いてデブロッキングフィルタリングを実行できる、デブロッキングフィルタ装置、エンコーダ、デコーダ、および対応する方法を提供するという目的がある。さらに、デブロッキングは効率的でなければならない。
【0007】
本発明の実施形態は、独立請求項の特徴によって定義され、実施形態のさらなる有利な実装形態は、従属請求項の特徴によって定義される。特定の実施形態は添付の独立請求項において概説され、他の実施形態は従属請求項において概説される。
【0008】
本発明の第1の態様によれば、画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスが提供され、ブロックエッジは、第1の画像ブロックと第2の画像ブロックとの間の、水平ブロックエッジを含み、
第1の画像ブロックは、垂直方向にブロックサイズSAを有し、
第2の画像ブロックは、垂直方向にブロックサイズSBを有し、垂直方向は水平ブロックエッジに対して垂直であり、
デバイスは、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 第1の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値(またはフィルタ出力値の第1のセット)として修正し、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの列から得られ、
- 第2の画像ブロックの最大でMB個のサンプルの値を第2のフィルタ出力値(またはフィルタ出力値の第2のセット)として修正し、最大でMB個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックの列から得られる、ように構成される、デブロッキングフィルタを備え、
第1の画像ブロックはCTB境界の上のブロックであり、第2の画像ブロックはCTB境界の下のブロックであり、
MA≠MB(MA<MBなど)であり、MAは、CTB境界と関連付けられる行バッファの行バッファサイズに少なくとも基づいて決定される。言い換えると、MAは、CTB境界と関連付けられる行バッファの行バッファサイズに依存する(または、それに基づく、またはそれと関連付けられる)。
行バッファサイズは、CTUベースの復号(たとえば、ハードウェアデコーダ)のためにメモリに記憶される必要があるピクセルの量である。ある例では、ルマブロック(またはルマ成分)のための行バッファサイズは4行であり、クロマブロック(またはクロマ成分)のための行バッファサイズは2行である。
【0009】
MAは第1の画像ブロックに対する最大のフィルタ長として理解されてもよく、MBは第2の画像ブロックに対する最大のフィルタ長として理解されてもよいことが理解され得る。
【0010】
第2の画像ブロックは現在のブロックであり、第1の画像ブロックPは現在のブロックの近隣のブロックであり、それに対応して第2の画像ブロックにおいて、水平ブロックエッジに対して垂直であり隣接する入力サンプルの各列に対して、最大でMB個のサンプルが、出力フィルタリングされたサンプルを生成するために修正され、第1の画像ブロックにおいて、水平ブロックエッジに対して垂直であり隣接する入力サンプルの各列に対して、最大でMA個のサンプルが、出力フィルタリングされたサンプルを生成するために修正される。ある例では、SAおよびSBは32以上である。別の例では、SA(たとえば、第1の画像ブロックの高さ)は16以上であり、SB(たとえば、第2の画像ブロックの高さ)は32以上である。別の例では、SAまたはSB(たとえば、それぞれの画像ブロックの高さ)は8以上である。SAは偶数の整数2n1であり、SBは偶数の整数2n2であり、n1およびn2は互いに同じであっても異なっていてもよいことに留意されたい。
【0011】
変換単位(TU)、予測単位(PU)、コーディング単位(CU)などに対して適用され得る、「ブロック」、「コーディングブロック」、または「画像ブロック」という用語が、本開示において使用されることに留意されたい。VVCでは、一般に、変換単位およびコーディング単位は、TUタイリングまたはサブブロック変換(SBT)が使用されるわずかなシナリオを除き、ほとんどは整列している。「ブロック/画像ブロック/コーディングブロック/変換ブロック」および「ブロックサイズ/変換ブロックサイズ」という用語は、本開示において互いに置き換えられてもよいことが理解され得る。「サンプル/ピクセル」という用語は、本開示において互いに置き換えられてもよい。
【0012】
本発明は、ルマ水平エッジに対して機能する。ルマ水平エッジに対して、第1または第2のコーディングブロック(第1または第2の画像ブロックはルマブロックである)の高さが、32以上(たとえば、32または64)であるかどうかが確認される。ルマ水平エッジに対して、ルマブロックの高さが、高さ≧32であるルマブロックについて検討され、長タップフィルタ(すなわち長いフィルタ)が適用される。
【0013】
本発明は、クロマ水平エッジに対しても機能する。クロマ水平エッジに対して、第1または第2のコーディングブロック(第1または第2の画像ブロックはクロマブロックである)の高さが、8サンプル以上(たとえば、8または16)であるかどうかが確認される。クロマ水平エッジに対して、クロマブロックの高さが、高さ≧8であるクロマブロックについて検討され、長タップフィルタ(すなわち長いフィルタ)が適用される。
【0014】
本開示では、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて、デブロッキングフィルタは、水平ブロックエッジ(CUエッジまたはTUエッジ)の一方の側(すなわち、下側)ではMBサンプルが修正されるが、水平ブロックエッジ(CUエッジまたはTUエッジ)の他方の側(すなわち、上側)ではMAサンプルが修正されるようなフィルタであり、MA≠MBであり、特にMA<MBであり、たとえばMA=3かつMB=7である。デブロッキングフィルタは、水平ブロックエッジ(たとえば、CUエッジまたはTUエッジ)の両側で異なる数のサンプルを修正する、非対称フィルタであり得る。
【0015】
デブロッキングフィルタは、本開示では非対称フィルタであってもよいことが理解され得る。さらに、「長タップフィルタ」、「より長いタップフィルタ」、または「非対称タップフィルタ」または「長い非対称フィルタ」または「非対称フィルタ」という用語は、本開示において互いに置き換えられることがある。
【0016】
したがって、ブロッキングアーティファクトのより効率的な除去を可能にする、改善されたループ内デブロッキングフィルタデバイスが提供される。これは、水平ブロックエッジの2つの側を異なるように扱うことを可能にし、すなわち、フィルタリングの決定およびフィルタリングが利用可能な行バッファに従って調整されることを可能にし、したがって、これは最適な主観品質をもたらす。
【0017】
第1の態様自体による方法の可能な実装形態では、デブロッキングフィルタはさらに、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジがCTB境界と重なるとの決定に応じて)、
- 第1の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用し、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの列から得られ、
- 第2の画像ブロックの最大でDB個のサンプルの値を第2のフィルタ決定値として使用し、最大でDB個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックの列から得られる、ように構成され、
DA≠DB(DA<DB)であり、DAは、CTB境界と関連付けられる行バッファの行バッファサイズに基づいて決定される。
【0018】
本開示では、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて、デブロッキングフィルタは、水平ブロックエッジの一方の側(すなわち、上側)ではフィルタ決定のためにDA個のサンプルを使用し水平ブロックの他方の側(すなわち、下側)ではフィルタ決定のためにDB個のサンプルを使用する、フィルタでもあり、DA≠DBであり、特にDA<DBであり、たとえばDA=4かつDB=8である。一般に、DA=MA+1かつDB=MB+1である。デブロッキングフィルタは、ブロックエッジ(たとえば、CUエッジまたはTUエッジ)の両側で異なる数のサンプルを使用する、非対称フィルタでもあり得る。
【0019】
第1の態様の任意の先行する実装形態または第1の態様自体による方法の可能な実装形態では、行バッファがX行の行バッファサイズを有する場合、第1の画像ブロックについて、MA=X-1であり、Xは正の整数である。
【0020】
第1の態様の任意の先行する実装形態または第1の態様自体による方法の可能な実装形態では、行バッファがX行の行バッファサイズを有する場合、第1の画像ブロックについて、DA=XかつMA=X-1であり、Xは正の整数である。
【0021】
第1の態様の任意の先行する実装形態または第1の態様自体による方法の可能な実装形態では、第1の画像ブロックおよび第2の画像ブロックがクロマブロックであるとき、行バッファは2行の行バッファサイズを有し、または、
第1の画像ブロックおよび第2の画像ブロックがルマブロックであるとき、行バッファは4行の行バッファサイズを有する。
【0022】
第1の態様の任意の先行する実装形態または第1の態様自体による方法の可能な実装形態では、CTB境界と関連付けられる行バッファがX行の行バッファサイズを有する場合、
第1の画像ブロックのサンプルpiが、第1の画像ブロックに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用され、i=X-1である。
【0023】
第1の画像ブロックのサンプルp
iは、水平ブロックエッジに対して垂直であり隣接する列の中のX番目のサンプルであり、CTB境界と関連付けられる行バッファに記憶されることが許容される最も外側のサンプル(
図17に示されるp
3または
図18に示されるp
1または
図16Bに示されるp
5など)でもある。
【0024】
第1の態様の任意の先行する実装形態または第1の態様自体による方法の可能な実装形態では、第1の画像ブロックのサンプルpiのフィルタ係数は、第1の画像ブロックに属し行バッファに記憶されることが許容される最も外側のサンプルであるサンプルpiが、第1の画像ブロックに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用されるような方法で、決定される。
【0025】
これにより、パディングされるサンプルが利用可能なサンプルとして扱われ得るので、元のフィルタ決定およびフィルタリングプロセスが変更される必要がなくなり、特にハードウェアにおいて、計算の複雑さの増大が最小限になることにつながる。
【0026】
第1の態様の任意の先行する実装形態または第1の態様自体による方法の可能な実装形態では、第1の画像ブロックのサンプルpiと関連付けられるフィルタ係数は、サンプルpiがパディングされた値として使用される回数に基づいて決定され、サンプルpiは、第1の画像ブロックに属し、CTB境界と関連付けられる行バッファに記憶されることが許容される最も外側のサンプルである。
【0027】
たとえば、サンプルpiがパディングされた値として使用される回数は2であり、そうすると、第1の画像ブロックのサンプルpiと関連付けられるフィルタ係数は3であり、それは、サンプルpi自体もカウントされるからである。
【0028】
第1の態様の任意の先行する実装形態または第1の態様自体による方法の可能な実装形態では、行バッファが2行の行バッファサイズを有するとき、サンプルpiはサンプルp1であり(たとえば、列は[p0 p1 p2 ...]を含み、p1は列の中の第2の要素である)、サンプルp1と関連付けられるフィルタ係数は、第1のフィルタ出力値の出力サンプルp0'について3である。式p0'=Clip3(p0-tC, p0+tC, (3*p1+2*p0+q0+q1+q2+4)>>3)(8-1151)を参照されたい。
【0029】
第1の態様の任意の先行する実装形態または第1の態様自体による方法の可能な実装形態では、行バッファが2行の行バッファサイズを有するとき、サンプルpiはサンプルp1であり(たとえば、列は[p0 p1 p2 ...]を含み、p1は列の中の第2の要素である)、サンプルp1と関連付けられるフィルタ係数は、第2のフィルタ出力値の出力サンプルq0'について2である。式q0'=Clip3(q0-tC, q0+tC, (2*p1+p0+2*q0+q1+q2+q3+4)>>3)(8-1154)を参照されたい。
【0030】
第1の態様の任意の先行する実装形態または第1の態様自体による方法の可能な実装形態では、第1の画像ブロックと第2の画像ブロックの両方がルマブロックであり、SBおよびSAが32以上であるとき、MB=7かつMA=3である、または、
第1の画像ブロックと第2の画像ブロックの両方がルマブロックであり、SBが32以上でありSAが16以上であるとき、MB=7かつMA=3である。
【0031】
SAはSBとは異なっていてもよく、または、SAはSBと同じであることが理解され得る。
言い換えると、SBおよびSAは同じ値であってもよく、または、SBおよびSAは異なる値であってもよく、たとえば、SAは32であり、SBは64である。たとえば、SAは16であり、SBは32である。
【0032】
第1の態様の任意の先行する実装形態または第1の態様自体による方法の可能な実装形態では、第1の画像ブロックと第2の画像ブロックの両方がルマブロックであり、SBおよびSAが32以上であるとき、DB=8かつDA=4である、または、
第1の画像ブロックと第2の画像ブロックの両方がルマブロックであり、SBが32以上でありSAが16以上であるとき、DB=8かつDA=4である。
【0033】
SAはSBとは異なっていてもよく、または、SAはSBと同じであることが理解され得る。言い換えると、SBおよびSAは同じ値であってもよく、または、SBおよびSAは異なる値であってもよく、たとえば、SAは32であり、SBは64である。たとえば、SAは16であり、SBは32である。
【0034】
第1の態様の任意の先行する実装形態または第1の態様自体による方法の可能な実装形態では、第1の画像ブロックと第2の画像ブロックがクロマブロックであり、SAおよびSBが8以上であるとき、MB=3かつMA=1である。
【0035】
SAはSBとは異なっていてもよく、または、SAはSBと同じであることが理解され得る。言い換えると、SBおよびSAは同じ値であってもよく、または、SBおよびSAは異なる値であってもよく、たとえば、SAは8であり、SBは8である。たとえば、SAは8であり、SBは16である。
【0036】
第1の態様の任意の先行する実装形態または第1の態様自体による方法の可能な実装形態では、第1の画像ブロックと第2の画像ブロックがクロマブロックであり、SBおよびSAが8以上であるとき、DB=4かつDA=2である。
【0037】
SAはSBとは異なっていてもよく、または、SAはSBと同じであることが理解され得る。言い換えると、SBおよびSAは同じ値であってもよく、または、SBおよびSAは異なる値であってもよく、たとえば、SAは8であり、SBは8である。たとえば、SAは8であり、SBは16である。
【0038】
第1の態様の任意の先行する実装形態または第1の態様自体による方法の可能な実装形態では、第2の画像ブロックは現在の画像ブロックであり、第1の画像ブロックは現在の画像ブロックに隣接する近隣の画像ブロックである。
【0039】
第1の態様の任意の先行する実装形態または第1の態様自体による方法の可能な実装形態では、第1の画像ブロックのサンプルpiはルマサンプルであり、または、第1の画像ブロックのサンプルpiはクロマサンプルであり、iの範囲は{0,1,2,...,SA-1}であり得る。
【0040】
同様に、第2の画像ブロックのサンプルqjはルマサンプルであり、または、第2の画像ブロックのサンプルqjはクロマサンプルであり、jの範囲は{0,1,2,...,SB-1}である。
【0041】
特に、piは、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロック(ブロックPなど)のサンプルの列の任意のサンプルを表し、qjは、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロック(ブロックQなど)のサンプルの列の任意のサンプルを表し、たとえば、i,j=0,1,2,...7である、または、たとえば、i,j=0,1,2,...31である。
【0042】
第1の態様の任意の先行する実装形態または第1の態様自体による方法の可能な実装形態では、第1の画像ブロックおよび第2の画像ブロックがクロマブロックであるとき、デブロッキングフィルタは、水平ブロックエッジが水平クロマCTB境界と重なるかどうかを決定するように構成され、または、
第1の画像ブロックおよび第2の画像ブロックがルマブロックであるとき、デブロッキングは、水平ブロックエッジが水平ルマCTB境界と重なるかどうかを決定するように構成される。
【0043】
第1の態様の任意の先行する実装形態または第1の態様自体による方法の可能な実装形態では、デブロッキングフィルタは、より長タップフィルタまたは非対称フィルタまたは非対称タップフィルタである。
【0044】
本発明の第2の態様によれば、画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスが提供され、ブロックエッジは、第1の画像ブロックと第2の画像ブロックとの間の、水平ブロックエッジを含み、
第1の画像ブロックは、垂直方向にブロックサイズSAを有し、第2の画像ブロックは、垂直方向にブロックサイズSBを有し、垂直方向は水平ブロックエッジに対して垂直であり、
デバイスは、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 第1の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正し、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの列から得られ、MA=1であり、
- 第2の画像ブロックの最大でMB個のサンプルの値を第2のフィルタ出力値として修正し、最大でMB個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックの列から得られ、MB=3である、ように構成される、デブロッキングフィルタを備え、
第1の画像ブロックはCTB境界の上のクロマブロックであり、第2の画像ブロックはCTB境界の下の別のクロマブロックであり、SAおよびSBは8以上である。
【0045】
SAはSBとは異なっていてもよく、または、SAはSBと同じであることが理解され得る。言い換えると、SBおよびSAは同じ値であってもよく、または、SBおよびSAは異なる値であってもよく、たとえば、SAは8であり、SBは8である。たとえば、SAは8であり、SBは16である。
【0046】
本発明の第3の態様によれば、画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスが提供され、ブロックエッジは、第1の画像ブロックと第2の画像ブロックとの間の、水平ブロックエッジを含み、
第1の画像ブロックは、垂直方向にブロックサイズSAを有し、
第2の画像ブロックは、垂直方向にブロックサイズSBを有し、垂直方向が水平ブロックエッジに対して垂直であり、
デバイスは、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 第1の画像ブロックの最大でDA個のサンプル値の値を第1のフィルタ決定値として使用し、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの列から得られ、DA=2であり、
- 第2の画像ブロックの最大でDB個のサンプルの値を第2のフィルタ決定値として使用し、最大でDB個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックの列から得られ、DB=4である、ように構成される、デブロッキングフィルタを備え、
第1の画像ブロックはCTB境界の上のクロマブロックであり、第2の画像ブロックはCTB境界の下の別のクロマブロックであり、SAおよびSBは8以上である。
【0047】
SAはSBとは異なっていてもよく、または、SAはSBと同じであることが理解され得る。言い換えると、SBおよびSAは同じ値であってもよく、または、SBおよびSAは異なる値であってもよく、たとえば、SAは8であり、SBは8である。たとえば、SAは8であり、SBは16である。
【0048】
本発明の第4の態様によれば、画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法が提供され、ブロックエッジは、第1の画像ブロックと第2の画像ブロックとの間の水平ブロックエッジを含み、
第1の画像ブロックは、垂直方向にブロックサイズSAを有し、
第2の画像ブロックは、垂直方向にブロックサイズSBを有し、垂直方向が水平ブロックエッジに対して垂直であり、
方法は、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 第1の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正するステップであって、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの列から得られる、ステップと、
- 第2の画像ブロックの最大でMB個のサンプルの値を第2のフィルタ出力値として修正するステップであって、最大でMB個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックの列から得られる、ステップとを備え、
第1の画像ブロックはCTB境界の上のブロックであり、第2の画像ブロックはCTB境界の下のブロックであり、
MA≠MBであり、MAは、CTB境界と関連付けられる行バッファの行バッファサイズに基づいて決定される。
【0049】
これは、フィルタリングの決定およびフィルタリングが、利用可能な行バッファに従って調整されることを可能にし、したがって、これは最適な主観品質をもたらす。
【0050】
第4の態様自体による方法の可能な実装形態では、方法はさらに、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 第1の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するステップであって、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの列から得られる、ステップと、
- 第2の画像ブロックの最大でDB個のサンプルの値を第2のフィルタ決定値として使用するステップであって、最大でDB個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックの列から得られる、ステップとを備え、
DA≠DB(DA<DB)であり、DAは、CTB境界と関連付けられる行バッファの行バッファサイズに基づいて決定される。
【0051】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、行バッファがX行の行バッファサイズを有する場合、第1の画像ブロックについて、MA=X-1であり、Xは正の整数である。
【0052】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、行バッファがX行の行バッファサイズを有する場合、第1の画像ブロックについて、DA=XかつMA=X-1であり、Xは正の整数である。
【0053】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、第1の画像ブロックおよび第2の画像ブロックがクロマブロックであるとき、行バッファは2行の行バッファサイズを有し、または、
第1の画像ブロックおよび第2の画像ブロックがルマブロックであるとき、行バッファは4行の行バッファサイズを有する。
【0054】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、CTB境界と関連付けられる行バッファがX行の行バッファサイズを有する場合、
第1の画像ブロックのサンプルpiが、第1の画像ブロックに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用され、i=X-1である。
【0055】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、第1の画像ブロックのサンプルpiは、水平ブロックエッジに対して垂直であり隣接する列の中のX番目のサンプルであり、CTB境界と関連付けられる行バッファに記憶されることが許容される最も外側のサンプルでもある。
【0056】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、第1の画像ブロックのサンプルpiのフィルタ係数は、第1の画像ブロックに属し行バッファに記憶されることが許容される最も外側のサンプルであるサンプルpiが、第1の画像ブロックに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用されるような方法で、決定される。
【0057】
これにより、パディングされるサンプルが利用可能なサンプルとして扱われ得るので、元のフィルタ決定およびフィルタリングプロセスが変更される必要がなくなり、特にハードウェアにおいて、計算の複雑さの増大が最小限になることにつながる。
【0058】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、第1の画像ブロックのサンプルpiと関連付けられるフィルタ係数は、サンプルpiがパディングされた値として使用される回数に基づいて決定され(このパディングされた値は、第1の画像ブロックに属し行バッファの外側にある他のサンプルを置換する)、サンプルpiは、第1の画像ブロックに属し、CTB境界と関連付けられる行バッファに記憶されることが許容される最も外側のサンプルである。
【0059】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、行バッファが2行の行バッファサイズを有するとき、サンプルpiはサンプルp1であり、サンプルp1と関連付けられるフィルタ係数は、第1のフィルタ出力値の要素について3である。
【0060】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、行バッファが2行の行バッファサイズを有するとき、サンプルpiはサンプルp1であり、サンプルp1と関連付けられるフィルタ係数は、第2のフィルタ出力値の要素について2である。
【0061】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、第1の画像ブロックと第2の画像ブロックの両方がルマブロックであり、SBおよびSAが32以上であるとき、MB=7かつMA=3である、または、
第1の画像ブロックと第2の画像ブロックの両方がルマブロックであり、SBが32以上でありSAが16以上であるとき、MB=7かつMA=3である。
【0062】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、第1の画像ブロックと第2の画像ブロックの両方がルマブロックであり、SBおよびSAが32以上であるとき、DB=8かつDA=4である、または、
第1の画像ブロックと第2の画像ブロックの両方がルマブロックであり、SBが32以上でありSAが16以上であるとき、DB=8かつDA=4である。
【0063】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、第1の画像ブロックと第2の画像ブロックがクロマブロックであり、SAおよびSBが8以上であるとき、MB=3かつMA=1である。
【0064】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、第1の画像ブロックと第2の画像ブロックがクロマブロックであり、SAおよびSAが8以上であるとき、DB=4かつDA=2である。
【0065】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、第2の画像ブロックは現在の画像ブロックであり、第1の画像ブロックは現在の画像ブロックに隣接する近隣の画像ブロックである。
【0066】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、第1の画像ブロックのサンプルpiはルマサンプルであり、または、第1の画像ブロックのサンプルpiはクロマサンプルであり、iは{0,1,2,...,SA-1}に属する。
【0067】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、方法はさらに、
第1の画像ブロックおよび第2の画像ブロックがクロマブロックであるとき、水平ブロックエッジが水平クロマCTB境界と重なるかどうかを決定するステップ、または、
第1の画像ブロックおよび第2の画像ブロックがルマブロックであるとき、水平ブロックエッジが水平ルマCTB境界と重なるかどうかを決定するステップを備える。
【0068】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、デブロッキングフィルタは、より長いタップフィルタまたは非対称フィルタまたは非対称タップフィルタである。
【0069】
本発明の第5の態様によれば、画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法が提供され、ブロックエッジは、第1の画像ブロックと第2の画像ブロックとの間の水平ブロックエッジを含み、
第1の画像ブロックは、垂直方向にブロックサイズSAを有し、
第2の画像ブロックは、垂直方向にブロックサイズSBを有し、垂直方向が水平ブロックエッジに対して垂直であり、
方法は、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 第1の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正するステップであって、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの列から得られ、MA=1である、ステップと、
- 第2の画像ブロックの最大でMB個のサンプルの値を第2のフィルタ出力値として修正するステップであって、最大でMB個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックの列から得られ、MB=3である、ステップとを備え、
第1の画像ブロックはCTB境界の上のクロマブロックであり、第2の画像ブロックはCTB境界の下の別のクロマブロックであり、SAおよびSBは8以上である。
【0070】
本発明の第5の態様によれば、画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法が提供され、ブロックエッジは、第1の画像ブロックと第2の画像ブロックとの間の水平ブロックエッジを含み、
第1の画像ブロックは、垂直方向にブロックサイズSAを有し、
第2の画像ブロックは、垂直方向にブロックサイズSBを有し、垂直方向が水平ブロックエッジに対して垂直であり、
方法は、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 第1の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するステップであって、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの列から得られ、DA=2である、ステップと、
- 第2の画像ブロックの最大でDB個のサンプルの値を第2のフィルタ決定値として使用するステップであって、最大でDB個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックの列から得られ、DB=4である、ステップとのように構成される、デブロッキングフィルタを備え、
第1の画像ブロックはCTB境界の上のクロマブロックであり、第2の画像ブロックはCTB境界の下の別のクロマブロックであり、SAおよびSBは8以上である。
【0071】
本発明の第6の態様によれば、画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスが提供され、ブロックエッジは、現在の画像ブロックと現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、現在の画像ブロックが水平ブロックエッジの上にあり、
現在の画像ブロックは、垂直方向にブロックサイズSAを有し、垂直方向は水平ブロックエッジに対して垂直であり、
デバイスは、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- CTB境界と関連付けられる行バッファの行バッファサイズに少なくとも基づいて、現在の画像ブロックに対する最大フィルタ長MAを決定し、
- 現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正し、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる、ように構成される、デブロッキングフィルタを備える。
【0072】
MAは、現在の画像ブロックに対する最大フィルタ長として、または、水平ブロックエッジに対して垂直であり隣接する各列における、現在の画像ブロックに対して修正されるべきサンプルの最大の数として、理解され得る。
【0073】
本発明の第7の態様によれば、画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法が提供され、ブロックエッジは、現在の画像ブロックと現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、現在の画像ブロックは水平ブロックエッジの上にあり、
現在の画像ブロックは、垂直方向にブロックサイズSAを有し、垂直方向は水平ブロックエッジに対して垂直であり、
方法は、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- CTB境界と関連付けられる行バッファの行バッファサイズに少なくとも基づいて、現在の画像ブロックに対する最大フィルタ長MAを決定するステップと、
- 現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正するステップであって、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる、ステップとを備える。
【0074】
これは、フィルタリングの決定およびフィルタリングが、利用可能な行バッファに従って調整されることを可能にし、したがって、これは最適な主観品質をもたらす。
【0075】
第6または第7の態様自体による可能な実装形態では、CTB境界と関連付けられる行バッファがX行の行バッファサイズを有する場合、MA=X-1であり、Xは正の整数である。
【0076】
第6もしくは第7の態様の任意の先行する実装形態または第6もしくは第7の態様自体による可能な実装形態では、デブロッキングフィルタはさらに、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、
- 現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するように構成され、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる。
【0077】
第6もしくは第7の態様の任意の先行する実装形態または第6もしくは第7の態様自体による可能な実装形態では、CTB境界と関連付けられる行バッファがX行の行バッファサイズを有する場合、DA=XかつMA=X-1であり、Xは正の整数である。
【0078】
第6の態様の任意の先行する実装形態または第6の態様自体による方法の可能な実装形態では、現在の画像ブロックがクロマブロックであるとき、CTB境界と関連付けられる行バッファは2行の行バッファサイズを有し、または、
現在の画像ブロックがルマブロックであるとき、CTB境界と関連付けられる行バッファは4行の行バッファサイズを有する。
【0079】
第6もしくは第7の態様の任意の先行する実装形態または第6もしくは第7の態様自体による可能な実装形態では、CTB境界と関連付けられる行バッファがX行の行バッファサイズを有する場合、
現在の画像ブロックのサンプルpiが、現在の画像ブロックに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用され、i=X-1である。
【0080】
第6もしくは第7の態様の任意の先行する実装形態または第6もしくは第7の態様自体による可能な実装形態では、現在の画像ブロックのサンプルpiは、水平ブロックエッジに対して垂直であり隣接する列の中のX番目のサンプルであり、CTB境界と関連付けられる行バッファに記憶されることが許容される最も外側のサンプルでもある。
【0081】
第6もしくは第7の態様の任意の先行する実装形態または第6もしくは第7の態様自体による可能な実装形態では、現在の画像ブロックのサンプルpiのフィルタ係数は、現在の画像ブロックに属し行バッファに記憶されることが許容される最も外側のサンプルであるサンプルpiが、現在の画像ブロックに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用されるような方法で、決定される。
【0082】
これにより、パディングされるサンプルが利用可能なサンプルとして扱われ得るので、元のフィルタ決定およびフィルタリングプロセスが変更される必要がなくなり、特にハードウェアにおいて、計算の複雑さの増大が最小限になる。
【0083】
第6もしくは第7の態様の任意の先行する実装形態または第6もしくは第7の態様自体による可能な実装形態では、現在の画像ブロックのサンプルpiと関連付けられるフィルタ係数は、サンプルpiがパディングされた値として使用される回数に基づいて決定され、サンプルpiは、現在の画像ブロックに属し、CTB境界と関連付けられる行バッファに記憶されることが許容される最も外側のサンプルである。たとえば、サンプルpiがパディングされた値として使用される回数は2であり、そうすると、現在の画像ブロックのサンプルpiと関連付けられるフィルタ係数は3であり、それは、サンプルpi自体もカウントされるからである。
【0084】
第6もしくは第7の態様の任意の先行する実装形態または第6もしくは第7の態様自体による可能な実装形態では、行バッファが2行の行バッファサイズを有するとき、サンプルpiはサンプルp1であり、サンプルp1と関連付けられるフィルタ係数は3である。
【0085】
第6もしくは第7の態様の任意の先行する実装形態または第6もしくは第7の態様自体による可能な実装形態では、現在の画像ブロックがルマブロックであり、SAが32以上であるとき、MA=3であり、SAは現在の画像ブロックの高さであり、
または、
現在の画像ブロックがルマブロックであり、SAが16以上であるとき、MA=3であり、SAは現在の画像ブロックの高さである。
【0086】
第6もしくは第7の態様の任意の先行する実装形態または第6もしくは第7の態様自体による可能な実装形態では、現在の画像ブロックがルマブロックであり、SAが32以上であるとき、DA=4であり、SAは現在の画像ブロックの高さである、または、
現在の画像ブロックがルマブロックであり、SAが16以上であるとき、DA=4であり、SAは現在の画像ブロックの高さである。
【0087】
第6もしくは第7の態様の任意の先行する実装形態または第6もしくは第7の態様自体による可能な実装形態では、現在の画像ブロックがクロマブロックであり、SAが8以上であるとき、MA=1であり、
SAは現在の画像ブロックの高さである。
【0088】
第6もしくは第7の態様の任意の先行する実装形態または第6もしくは第7の態様自体による可能な実装形態では、現在の画像ブロックがクロマブロックであり、SAが8以上であるとき、DA=2であり、
SAは現在の画像ブロックの高さである。
【0089】
第6もしくは第7の態様の任意の先行する実装形態または第6もしくは第7の態様自体による可能な実装形態では、現在の画像ブロックがクロマブロックであるとき、デブロッキングフィルタは、水平ブロックエッジが水平クロマCTB境界と重なるかどうかを決定するように構成され、または、
現在の画像ブロックがルマブロックであるとき、デブロッキングは、水平ブロックエッジが水平ルマCTB境界と重なるかどうかを決定するように構成される。
【0090】
第6もしくは第7の態様の任意の先行する実装形態または第6もしくは第7の態様自体による可能な実装形態では、現在の画像ブロックのサンプルpiはルマサンプルであり、または、現在の画像ブロックのサンプルpiはクロマサンプルであり、iは{0,1,2,...,SA-1}に属する。
【0091】
第6もしくは第7の態様の任意の先行する実装形態または第6もしくは第7の態様自体による可能な実装形態では、現在の画像ブロックは変換ブロックである、または、
現在の画像ブロックはコーディングブロックである。
【0092】
本発明の第8の態様によれば、画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスが提供され、ブロックエッジは、現在の画像ブロックと現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、現在の画像ブロックは水平ブロックエッジの上にあり、
現在の画像ブロックは、垂直方向にブロックサイズSAを有し、垂直方向は水平ブロックエッジに対して垂直であり、
デバイスは、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正し、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られ、
- 現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用し、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる、ように構成される、デブロッキングフィルタを備え、
現在の画像ブロックがルマブロックであり、SAが32以上であるとき、MA=3かつDA=4である。
【0093】
本発明の第9の態様によれば、画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスが提供され、ブロックエッジは、現在の画像ブロックと現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、現在の画像ブロックは水平ブロックエッジの上にあり、
現在の画像ブロックは、垂直方向にブロックサイズSAを有し、垂直方向は水平ブロックエッジに対して垂直であり、
デバイスは、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正し、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られ、
- 現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用し、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる、ように構成される、デブロッキングフィルタを備え、
現在の画像ブロックがクロマブロックであり、SAが8以上であるとき、MA=1かつDA=2である。
【0094】
本発明の第10の態様によれば、画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法が提供され、ブロックエッジは、現在の画像ブロックと現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、現在の画像ブロックが水平ブロックエッジの上にあり、
現在の画像ブロックは、垂直方向にブロックサイズSAを有し、垂直方向は水平ブロックエッジに対して垂直であり、
方法は、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正するステップであって、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる、ステップと、
- 現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するステップであって、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる、ステップとを備え、
現在の画像ブロックがルマブロックであり、SAが32以上であるとき、MA=3かつDA=4である。
【0095】
本発明の第11の態様によれば、画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法が提供され、ブロックエッジは、現在の画像ブロックと現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、現在の画像ブロックが水平ブロックエッジの上にあり、
現在の画像ブロックは垂直方向にブロックサイズSAを有し、垂直方向は水平ブロックエッジに対して垂直であり、方法は、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正するステップであって、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる、ステップと、
- 現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するステップであって、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる、ステップとを備え、
現在の画像ブロックがクロマブロックであり、SAが8以上であるとき、MA=1かつDA=2である。
【0096】
上のブロック「P」から限定された数の行を使用するための修正されたフィルタ条件留意されたい。
ここでフィルタ係数は、第1のコーディングブロックPに属し行バッファに記憶されることが許容される最も外側のサンプルであるサンプルpjが、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用されるような方法で決定される。
【0097】
上のCTUからメモリに記憶されることが許容されるサンプルは行バッファと呼ばれることが理解され得る。本開示では、行バッファは、たとえば、4行のバッファまたは6行のバッファであり得る。ラインバッファサイズは、CTBベースの復号(たとえば、ハードウェアデコーダ)のためにメモリに記憶する必要があるピクセルの量である。
【0098】
ルマ成分のための行バッファサイズは4行であり、クロマ成分のための行バッファサイズは2行である。したがって、行バッファの外側にあるサンプルを行バッファの中に存在する最も外側のサンプルによってパディングすることによって、第1のフィルタ(長タップフィルタなど)のためのCTU境界において行バッファを減らすことが可能になる。
【0099】
デブロッキング(たとえば、ルマデブロッキングまたはクロマデブロッキング)の際、第1のフィルタが、大きいブロックに属する境界のいずれか一方の側のサンプルに適用される。大きいブロックに属するサンプルは、垂直方向のエッジについて幅≧32であるとき、かつ水平方向のエッジについて高さ≧32であるときとして定義され得る。
【0100】
(ブロック境界に垂直な)ブロック境界の各側のサンプルは、
… p8 p7 p6 p5 p4 p3 p2 p1 p0 | q0 q1 q2 q3 q4 q5 q6 q7 q8 …
として表されてもよく、|はブロック境界またはブロックエッジを表し、たとえば、|は、CTU境界と重なる水平境界または水平エッジを表す。
ここでpiは、第1のコーディングブロックP(略してブロックP)のサンプル値を表し、qiは、第2のコーディングブロックQ(略してブロックQ)のサンプル値を表す。
【0101】
フィルタ条件およびフィルタ式は、既存の技術において説明されるものと同じ論理を使用して導かれ得る。
【0102】
本発明の別の態様によれば、ビデオ符号化装置が提供される。ビデオストリームのピクチャを符号化するためのビデオ符号化装置(100)であって、ビデオ符号化装置(100)は、
ピクチャを再構築するように構成される再構築ユニット(114)と、
再構築されたピクチャをフィルタリングされた再構築されたピクチャへと処理するための以前に説明されたようなフィルタ装置(120)とを備える。
【0103】
これは、画像の非常に効率的で正確な符号化を可能にする。
【0104】
本発明の別の態様によれば、ビデオ復号装置が提供される。符号化されたビデオストリーム(303)のピクチャを復号するためのビデオ復号装置(200)であって、ビデオ復号装置(200)は、
ピクチャを再構築するように構成される再構築ユニット(214)と、
前記再構築されたピクチャをフィルタリングされた再構築されたピクチャへと処理するための以前に説明されたようなループフィルタ装置(220)とを備える。
【0105】
これは、画像の特に正確で効率的な復号を可能にする。
【0106】
ある例では、第1のフィルタ(すなわち、長タップフィルタまたは非対称フィルタまたは非対称タップフィルタ)は、ブロックエッジ(コーディングツリー単位(CTU)境界と重なる水平ブロックエッジなど)の一方の側でのフィルタ決定のために上のブロックの4つのサンプルを使用し、ブロックエッジの他方の側でのフィルタ決定のために下のブロックの8つのサンプルを使用する、フィルタであり、上のブロックの3つのサンプルがブロックエッジ(CUエッジ)の一方の側で修正され、下のブロックの7つのサンプルがブロックエッジ(CUエッジ)の他方の側で修正される。
【0107】
これは、特に正確で効率的なデブロッキングを可能にする。
【0108】
別の態様によれば、本発明は、前に示された、または後で示されるデブロッキング方法を備える、画像を符号化するための符号化方法に関する。
【0109】
これは、画像の非常に効率的で正確な符号化を可能にする。
【0110】
別の態様によれば、本発明は、前に示された、または後で示されるデブロッキング方法を備える、画像を復号するための復号方法に関する。
【0111】
これは、画像の非常に効率的で正確な復号を可能にする。
【0112】
本発明の第4の態様による方法は、本発明の第1の態様による装置によって実行され得る。本発明の第4の態様による方法のさらなる特徴および実装形態は、本発明の第1の態様およびその異なる実装形態による装置の機能から直接得られる。
【0113】
本発明の第11の態様による方法は、本発明の第7の態様による装置によって実行され得る。本発明の第11の態様による方法のさらなる特徴および実装形態は、本発明の第7の態様およびその異なる実装形態による装置の機能から直接得られる。
【0114】
別の態様によれば、本発明は、プロセッサおよびメモリを含むビデオストリームを復号するための装置に関する。メモリは、任意の先行する態様の任意の先行する実装形態または任意の先行する態様自体による、デブロッキング方法をプロセッサに実行させる命令を記憶している。
【0115】
別の態様によれば、本発明は、プロセッサおよびメモリを含むビデオストリームを符号化するための装置に関する。メモリは、任意の先行する態様の任意の先行する実装形態または任意の先行する態様自体による、デブロッキング方法をプロセッサに実行させる命令を記憶している。
【0116】
別の態様によれば、実行されると、ビデオデータをコーディングするように構成される1つまたは複数のプロセッサを引き起こす命令を記憶したコンピュータ可読記憶媒体が提案される。命令は、任意の先行する態様の任意の先行する実装形態または任意の先行する態様自体による、デブロッキング方法を1つまたは複数のプロセッサに実行させる。
【0117】
別の態様によれば、コンピュータプログラムがコンピュータ上で実行されるときに、任意の先行する態様の任意の先行する実装形態または任意の先行する態様自体によるデブロッキング方法を実行するためのプログラムコードを伴うコンピュータプログラム製品が、提供される。
【0118】
1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。他の特徴、目的、および利点が、説明、図面、および特許請求の範囲から明らかになるであろう。
【0119】
以下では、本発明の実施形態は、添付の図と図面を参照してより詳しく説明される。
【図面の簡単な説明】
【0120】
【
図1】本発明の実施形態を実装するように構成されるビデオエンコーダの例を示すブロック図である。
【
図2】本発明の実施形態を実装するように構成されるビデオデコーダの例示的な構造を示すブロック図である。
【
図3】本発明の実施形態を実装するように構成されるビデオコーディングシステムの例を示すブロック図である。
【
図4A】コーディングブロックQがサブPUツールを使用する、2つの例示的なコーディングブロックを示す図である。
【
図4B】2つのコーディングブロックPとQとの間の水平ブロックエッジ、2つの例示的なコーディングブロックを示す図である。
【
図5】2つのコーディングブロックPとQとの間の垂直ブロックエッジ、フィルタリングの間に使用されて修正される2つの例示的なコーディングブロックおよびそれぞれのサンプル値を示す図である。
【
図6】本発明の実施形態による、デブロッキングフィルタの第1の実施形態を示す図である。
【
図7】長タップフィルタが使用されるべきかどうかを決定するための方法を示すフローチャートを示す図である。
【
図8】HEVC強フィルタ条件が満たされるべきかどうかを決定するための方法を示すフローチャートを示す図である。
【
図9】本発明の別の実施形態による、フィルタリングの間に使用され修正される2つの例示的なコーディングブロックおよびサンプル値を示す図である。
【
図10】デブロッキングフィルタリングのための例示的なプロセスを示すフロー図である。
【
図11】デブロッキングフィルタリングのための別の例示的なプロセスを示すフロー図である。
【
図12】デブロッキングフィルタリングのための別の例示的なプロセスを示すフロー図である。
【
図13】例示的な実施形態による、
図3からのソースデバイス310もしくは宛先デバイス320のいずれかまたは両方として使用され得る装置1300の簡略化されたブロック図である。
【
図14】ビデオコーディングのためのデバイスの概略図である。
【
図15】いくつかのコーディングツリー単位CTU1~CTU40を備える画像1500を示す図である。
【
図16A】例示的な実施形態による、CTU境界において重なる水平エッジを示す図である。
【
図16B】行バッファ(6行のバッファなど)が適用されるときの、別の例示的な実施形態に従って水平ルマCTB境界において重なる水平エッジを示す図である。
【
図17】行バッファ(4行のバッファなど)が適用されるときの、別の例示的な実施形態に従って水平ルマCTB境界において重なる水平エッジを示す図である。
【
図18】行バッファ(2行のバッファなど)が適用されるときの、別の例示的な実施形態による水平クロマCTB境界において重なる水平エッジを示す図である。
【
図19】ブロックエッジをデブロッキングするためのデバイスの概略図である。
【
図20】コンテンツ配信サービスを実現するコンテンツ供給システム3100の例示的な構造を示すブロック図である。
【
図21】端末デバイスの例の構造を示すブロック図である。
【発明を実施するための形態】
【0121】
以下では、同一の参照符号は、同一のまたは少なくとも機能的に等価な特徴を指す。部分的に、同じエンティティを指す異なる参照符号が異なる図面において使用された。
【0122】
以下の説明では、本開示の一部を形成し、本発明の実施形態の特定の態様または本発明の実施形態が使用され得る特定の態様を例として示す、添付の図面に対する参照が行われる。本発明の実施形態は、他の態様において使用されてもよく、図面に示されない構造的または論理的な変化を備えてもよいことが理解される。したがって、以下の詳細な説明は、限定する意味で解釈されるべきではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。
【0123】
たとえば、説明される方法に関連する開示は、方法を実行するように構成される対応するデバイスまたはシステムについても当てはまることがあり、その逆も当てはまることが理解される。たとえば、1つまたは複数の特定の方法ステップが説明される場合、対応するデバイスは、説明される1つまたは複数の方法ステップを実行するための1つまたは複数のユニット(たとえば、1つもしくは複数のステップを実行する1つのユニット、または複数のステップのうちの1つもしくは複数を各々実行する複数のユニット)、たとえば機能ユニットを、そのような1つまたは複数のユニットが図面において明示的に説明されず、または示されない場合であっても、含み得る。一方、たとえば、特定の装置が1つまたは複数のユニット、たとえば機能ユニットに基づいて説明される場合、対応する方法は、1つまたは複数のユニットの機能を実行するための1つのステップ(たとえば、1つもしくは複数のユニットの機能を実行する1つのステップ、または、複数のユニットのうちの1つもしくは複数の機能を各々実行する複数のステップ)を、そのような1つまたは複数のステップが図面において明示的に説明されず、または示されない場合であっても、含み得る。さらに、本明細書において説明される様々な例示的な実施形態および/または態様の特徴は、別様に明示的に述べられない限り、互いに組み合わせられてもよいことが理解される。
【0124】
ビデオコーディングは通常、ビデオまたはビデオシーケンスを形成するピクチャのシーケンスの処理を指す。「ピクチャ」という用語ではなく、「フレーム」または「画像」という用語が、ビデオコーディングの分野では同義語として使用され得る。ビデオコーディングは、ビデオ符号化およびビデオ復号という2つの部分を備える。ビデオピクチャを表現するために必要なデータの量を減らすために(より効率的な記憶および/または送信のために)、元のビデオピクチャを(たとえば、圧縮によって)処理することを通常は備える、ビデオ符号化がソース側において実行される。ビデオ復号は、宛先側において実行され、通常は、ビデオピクチャを再構築するためにエンコーダと比較して逆の処理を備える。ビデオピクチャ(または後で説明されるように、一般にピクチャ)の「コーディング」に言及する実施形態は、ビデオピクチャの「符号化」と「復号」の両方に関係するものと理解されるべきである。符号化部分および復号部分の組合せは、CODEC(COdingおよびDECoding)とも呼ばれる。
【0125】
ロスレス・ビデオ・コーディングの場合、元のビデオピクチャを再構築することができ、すなわち、再構築されたビデオピクチャは、元のビデオピクチャと同じ品質を有する(記憶または送信の間に送信損失または他のデータ損失がないと仮定して)。ロッシー・ビデオ・コーディングの場合、ビデオピクチャを表現するデータの量を減らすために、さらなる圧縮が、たとえば量子化によって実行され、このビデオピクチャは、デコーダにおいて完全に再構築することはできず、すなわち、再構築されたビデオピクチャの品質は、元のビデオピクチャの品質と比較してより低く、または悪い。
【0126】
H.261以降のいくつかのビデオコーディング規格は、「ロッシー・ハイブリッド・ビデオ・コーデック」というグループに属する(すなわち、サンプル領域における空間予測および時間予測と、変換領域における量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各ピクチャは通常、重ならないブロックのセットへと分割され、コーディングは通常、ブロックレベルで実行される。言い換えると、エンコーダにおいて、ビデオは通常、たとえば、空間(イントラピクチャ)予測および時間(インターピクチャ)予測を使用して予測ブロックを生成し、現在のブロック(現在処理されている/処理されることになるブロック)から予測ブロックを減算して残差ブロックを取得し、変換領域において残差ブロックを変換し残差ブロックを量子化して送信されることになるデータの量を減らす(圧縮)ことによって、ブロック(ビデオブロック)レベルで処理され、すなわち符号化される。デコーダにおいて、エンコーダにおける処理と比較して逆の処理が、表現のために現在のブロックを再構築するために、符号化または圧縮されたブロックに適用される。さらに、エンコーダは、後続のブロックを処理する、すなわちコーディングするための同一の予測(たとえば、イントラ予測およびインター予測)および/または再構築を両方が生成するように、デコーダ処理ループを繰り返す。
【0127】
ビデオピクチャ処理(動画処理とも呼ばれる)および静止ピクチャ処理(処理という用語はコーディングを含む)は多くの概念と技術または道具を共有するので、以下では、「ピクチャ」という用語は、ビデオピクチャと静止ピクチャとの不要な反復と区別を必要ないならば避けるために、(上述したような)ビデオシーケンスのビデオピクチャをおよび/または静止ピクチャを指すために使用される。説明が静止ピクチャ(または静止画像)のみを指す場合、「静止ピクチャ」という用語を用いるものとする。
【0128】
エンコーダ100の以下の実施形態では、デコーダ200およびコーディングシステム300は、
図4~
図19に基づいてより詳しく本発明の実施形態を説明する前に、
図1から
図3に基づいて説明される。
【0129】
図3は、コーディングシステム300、たとえばピクチャコーディングシステム300の実施形態を示す、概念ブロック図または概略ブロック図であり、コーディングシステム300は、符号化されたデータ330、たとえば符号化されたピクチャ330を、たとえば符号化されたデータ330を復号するために宛先デバイス320に提供するように構成されるソースデバイス310を含む。
【0130】
ソースデバイス310は、エンコーダ100または符号化ユニット100を備え、追加で、すなわち任意選択で、ピクチャソース312、前処理ユニット314、たとえばピクチャ前処理ユニット314、および通信インターフェースまたは通信ユニット318を備える。
【0131】
ピクチャソース312は、たとえば現実世界のピクチャをキャプチャするための、任意の種類のピクチャキャプチャデバイス、ならびに/または、任意の種類のピクチャ生成デバイス、たとえば、コンピュータアニメーションピクチャを生成するためのコンピュータグラフィクスプロセッサ、または、現実世界のピクチャ、コンピュータアニメーションピクチャ(たとえば、スクリーンコンテンツ、仮想現実(VR)ピクチャ)、および/もしくはこれらの任意の組合せ(たとえば、拡張現実(AR)ピクチャ)を取得および/もしくは提供するための任意の種類のデバイスを備え得る。以下では、すべてのこれらの種類のピクチャおよび任意の他の種類のピクチャが、別段特に説明されない限り、「ピクチャ」または「画像」と呼ばれるが、それでも、異なるように明示的に示されない限り、「ビデオピクチャ」および「静止ピクチャ」をカバーする「ピクチャ」という用語に関する以前の説明が当てはまる。
【0132】
(デジタル)ピクチャは、強度値を伴う2次元アレイもしくはサンプルの行列である、またはそのように見なされ得る。アレイの中のサンプルは、ピクセル(ピクチャ要素の短縮形)またはペルとも呼ばれ得る。アレイまたはピクチャの水平方向および垂直方向(または軸)におけるサンプルの数は、ピクチャのサイズおよび/または分解能を定義する。色の表現のために、通常は3つの色成分が利用され、すなわち、ピクチャは3つのサンプルアレイによって表され、またはそれらを含んでもよい。RGBフォーマットまたは色空間では、ピクチャは、対応する赤、緑、および青のサンプルアレイを備える。しかしながら、ビデオコーディングでは、各ピクセルは通常、輝度/色度フォーマットまたは色空間において、たとえばYCbCrにおいて表され、これは、Yによって示される輝度成分(代わりにLも使用されることがある)およびCbとCrによって示される2つの色度成分を備える。輝度(または略してルマ)成分Yは、明るさまたはグレーレベルの強度(たとえば、グレースケールピクチャなどにおける)を表すが、2つの色度(または略してクロマ)成分CbおよびCrは、色度情報成分または色情報成分を表す。したがって、YCbCrフォーマットにおけるピクチャは、輝度サンプル値(Y)の輝度サンプルアレイ、および色度値の2つの色度サンプルアレイ(CbおよびCr)を備える。RGBフォーマットにおけるピクチャは、YCbCrフォーマットへと転換または変換されてもよく、かつその逆も当てはまり、この処理は、色変換または色転換としても知られている。ピクチャがモノクロームである場合、ピクチャは輝度サンプルアレイのみを備え得る。
【0133】
ピクチャソース312は、たとえば、ピクチャをキャプチャするためのカメラ、以前にキャプチャもしくは生成されたピクチャを備える、もしくはそれを記憶するメモリ、たとえばピクチャメモリ、および/または、ピクチャを取得もしくは受信するための任意の種類のインターフェース(内部または外部)であり得る。カメラは、たとえば、ソースデバイスに統合されるローカルのまたは統合されたカメラであってもよく、メモリは、ローカルのまたは統合されたメモリ、たとえばソースデバイスに統合されたメモリであってもよい。インターフェースは、たとえば、外部のビデオソース、たとえば、カメラのような外部のピクチャキャプチャデバイス、外部メモリ、または外部のピクチャ生成デバイス、たとえば、外部のコンピュータグラフィクスプロセッサ、コンピュータ、もしくはサーバから、ピクチャを受信するための外部インターフェースであり得る。インターフェースは、任意のプロプライエタリインターフェースプロトコルまたは標準化されたインターフェースプロトコルに従った、任意の種類のインターフェース、たとえば有線またはワイヤレスインターフェース、光学インターフェースであり得る。ピクチャデータ312を取得するためのインターフェースは、通信インターフェース318と同じインターフェースであってもよく、またはその一部であってもよい。
【0134】
前処理ユニット314および前処理ユニット314によって実行される処理と区別して、ピクチャまたはピクチャデータ313は、生のピクチャまたは生のピクチャデータ313とも呼ばれ得る。
【0135】
前処理ユニット314は、(生の)ピクチャデータ313を受信し、ピクチャデータ313に対して前処理を実行して、前処理されたピクチャ315または前処理されたピクチャデータ315を取得するように構成される。前処理ユニット314によって実行される前処理は、たとえば、トリミング、カラーフォーマット転換(たとえば、RGBからYCbCrへの)、色補正、またはノイズ除去を備え得る。
【0136】
エンコーダ100は、前処理されたピクチャデータ315を受信し、符号化されたピクチャデータ171を提供するように構成される(さらなる詳細が、たとえば
図1に基づいて説明される)。
【0137】
ソースデバイス310の通信インターフェース318は、符号化されたピクチャデータ171を受信し、それを記憶もしくは直接の再構築のために、別のデバイス、たとえば宛先デバイス320もしくは任意の他のデバイスに直接送信するように、または、符号化されたデータ330を記憶する前、および/もしくは符号化されたデータ330を復号もしくは記憶のために別のデバイス、たとえば宛先デバイス320もしくは任意の他のデバイスに送信する前にそれぞれ、符号化されたピクチャデータ171を処理するように構成され得る。
【0138】
宛先デバイス320は、デコーダ200または復号ユニット200を備え、追加で、すなわち任意選択で、通信インターフェースまたは通信ユニット322、後処理ユニット326、および表示デバイス328を備え得る。
【0139】
宛先デバイス320の通信インターフェース322は構成される、符号化されたピクチャデータ171または符号化されたデータ330を、たとえばソースデバイス310から、または任意の他のソース、たとえばメモリ、たとえば符号化ピクチャデータメモリから直接受信する。
【0140】
通信インターフェース318および通信インターフェース322は、ソースデバイス310と宛先デバイス320との間の直接の通信リンク、たとえば、直接の有線もしくはワイヤレス接続を介して、または、任意の種類のネットワーク、たとえば、有線ネットワークもしくはワイヤレスネットワークもしくはこれらの任意の組合せ、もしくは任意の種類のプライベートネットワークおよびパブリックネットワーク、もしくはこれらの任意の種類の組合せを介して、符号化されたピクチャデータ171または符号化されたデータ330を送信それぞれ受信するように構成され得る。
【0141】
通信インターフェース318は、たとえば、符号化されたピクチャデータ171を、通信リンクまたは通信ネットワークを介した送信に適切なフォーマット、たとえばパケットへとパッケージングするように構成されてもよく、データロスの保護およびデータロスの復元をさらに備えてもよい。
【0142】
通信インターフェース318のカウンターパートを形成する通信インターフェース322は、たとえば、符号化されたデータ330をパッケージング解除して符号化されたピクチャデータ171を取得するように構成されてもよく、たとえばエラー隠蔽を含む、データロスの保護およびデータロスの復元を実行するようにさらに構成されてもよい。
【0143】
通信インターフェース318と通信インターフェース322の両方が、
図3においてソースデバイス310から宛先デバイス320を指し示す符号化されたピクチャデータ330についての矢印によって示されるように無指向性の通信インターフェースとして、または双方向通信インターフェースとして構成されてもよく、たとえば、ピクチャデータを含む失われたもしくは遅延したデータに肯定応答し、および/またはそれを再送信し、通信リンクおよび/もしくはデータ送信、たとえば符号化されたピクチャデータの送信に関する任意の他の情報を交換するために、メッセージを送信して受信するように、たとえば接続をセットアップするように構成されてもよい。
【0144】
デコーダ200は、符号化されたピクチャデータ171を受信し、復号されたピクチャデータ231または復号されたピクチャ231を提供するように構成される(さらなる詳細が、たとえば
図2に基づいて説明される)。
【0145】
宛先デバイス320のポストプロセッサ326は、復号されたピクチャデータ231、たとえば復号されたピクチャ231を後処理して、後処理されたピクチャデータ327、たとえば後処理されたピクチャ327を取得するように構成される。後処理ユニット326によって実行される後処理は、たとえば、カラーフォーマット転換(たとえば、YCbCrからRGBへの)、色補正、トリミング、または再サンプリング、または任意の他の処理、たとえば表示デバイス328による表示のために、たとえば復号されたピクチャデータ231を準備することを備え得る。
【0146】
宛先デバイス320の表示デバイス328は、たとえばユーザまたは視聴者にピクチャを表示するために、後処理されたピクチャデータ327を受信するように構成される。表示デバイス328は、再構築されたピクチャを表現するための任意の種類のディスプレイ、たとえば、統合されたまたは外部のディスプレイもしくはモニタであってもよく、またはそれらを備えてもよい。ディスプレイは、たとえば、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイまたは任意の種類の他のディスプレイ…ビーマー、ホログラム(3D)、…を備え得る。
【0147】
図3は、ソースデバイス310と宛先デバイス320を別々のデバイスとして示すが、デバイスの実施形態は、それらの両方または両方の機能、すなわちソースデバイス310または対応する機能および宛先デバイス320または対応する機能も備えてもよい。そのような実施形態では、ソースデバイス310または対応する機能および宛先デバイス320または対応する機能は、同じハードウェアおよび/もしくはソフトウェアを使用して、または、別々のハードウェアおよび/もしくはソフトウェア、もしくはこれらの任意の組合せによって実装され得る。
【0148】
説明に基づくと当業者には明らかになるように、異なるユニットの機能、または
図3に示されるようなソースデバイス310および/もしくは宛先デバイス320内での機能の存在と(正確な)分割は、実際のデバイスおよび適用例に応じて異なり得る。
【0149】
したがって、
図3に示されるようなソースデバイス310および宛先デバイス320は本発明の例示的な実施形態にすぎず、本発明の実施形態は
図3に示されるものに限定されない。
【0150】
ソースデバイス310および宛先デバイス320は、任意の種類のハンドヘルドデバイスまたは固定式デバイス、たとえば、ノートブックまたはラップトップコンピュータ、携帯電話、スマートフォン、タブレットまたはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビジョン、表示デバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、放送受信機デバイスなど(大規模で高度な符号化/復号のためのサーバおよびワークステーション、たとえばネットワークエンティティも)を含む、広範なデバイスのいずれかを備えてもよく、オペレーティングシステムを使用しなくても、または任意の種類のオペレーティングシステムを使用してもよい。
【0151】
図1は、入力102、残差計算ユニット104、変換ユニット106、量子化ユニット108、逆量子化ユニット110、逆変換ユニット112、再構築ユニット114、バッファ118、ループフィルタ120、復号ピクチャバッファ(DPB)130、予測ユニット160[インター推定ユニット142、インター予測ユニット144、イントラ推定ユニット152、イントラ予測ユニット154]、モード選択ユニット162、エントロピー符号化ユニット170、および出力172を備える、エンコーダ100、たとえばピクチャエンコーダ100の実施形態の概略/概念ブロック図を示す。
図1に示されるようなビデオエンコーダ100は、ハイブリッドビデオエンコーダ、またはハイブリッドビデオコーデックに従ったビデオエンコーダとも呼ばれ得る。
【0152】
たとえば、残差計算ユニット104、変換ユニット106、量子化ユニット108、およびエントロピー符号化ユニット170は、エンコーダ100の順方向信号経路を形成し、一方、たとえば逆量子化ユニット110、逆変換ユニット112、再構築ユニット114、バッファ118、ループフィルタ120、復号ピクチャバッファ(DPB)130、インター予測ユニット144、およびイントラ予測ユニット154は、エンコーダの逆方向信号経路を形成し、エンコーダの逆方向信号経路は、デコーダの信号経路に対応する(
図2のデコーダ200を参照されたい)。
【0153】
エンコーダは、たとえば入力102によって、ピクチャ101またはピクチャ101のピクチャブロック103、たとえばビデオまたはビデオシーケンスを形成するピクチャのシーケンスのピクチャを受信するように構成される。ピクチャブロック103は、現在のピクチャブロックまたはコーディングされることになるピクチャブロックとも呼ばれることがあり、ピクチャ101は、現在のピクチャまたはコーディングされることになるピクチャとも呼ばれることがある(特にビデオコーディングでは、現在のピクチャを他のピクチャ、たとえば、同じビデオシーケンスの以前に符号化および/または復号されたピクチャ、すなわち、現在のピクチャも備えるビデオシーケンスと区別するために)。
【0154】
エンコーダ100の実施形態は、分割ユニット(
図1には示されない)を備えてもよく、たとえば、これは、ピクチャ103を複数のブロックへと、たとえば、ブロック103のようなブロックを通常は複数の重ならないブロックへと分割するように構成される、ピクチャ分割ユニットと呼ばれてもよい。分割ユニットは、ビデオシーケンスのすべてのピクチャに対する同じブロックサイズと、そのブロックサイズを画定する対応する格子とを使用するように、または、ピクチャ間で、もしくはピクチャのサブセットもしくはグループ間でブロックサイズを変更し、各ピクチャを対応するブロックへと分割するように構成されてもよい。
【0155】
ピクチャ101のように、ブロック103はやはり、強度値(サンプル値)を伴うサンプルの2次元アレイもしくは行列である、またはそのように見なされ得るが、ピクチャ101より次元が小さい。言い換えると、ブロック103は、たとえば、1サンプルのアレイ(たとえば、モノクロームピクチャ101の場合のルマアレイ)または3サンプルのアレイ(たとえば、カラーピクチャ101の場合のルマアレイおよび2つのクロマアレイ)または適用されるカラーフォーマットに応じた任意の他の数および/もしくは種類のアレイを備え得る。ブロック103の水平方向および垂直方向(または軸)におけるサンプルの数は、ブロック103のサイズを決める。
【0156】
図1に示されるようなエンコーダ100が構成される、ブロックごとにピクチャ101を符号化し、たとえば、符号化および予測はブロック103ごとに実行される。
【0157】
残差計算ユニット104は、たとえば、ピクチャブロック103のサンプル値から予測ブロック165のサンプル値をサンプルごとに(ピクセルごとに)減算して、サンプル領域において残差ブロック105を取得することによって、ピクチャブロック103および予測ブロック165に基づいて残差ブロック105を計算するように構成される(予測ブロック165についてのさらなる詳細が後で提供される)。
【0158】
変換ユニット106は、変換領域において変換された係数107を取得するために、残差ブロック105のサンプル値に対して変換、たとえば、空間周波数変換または線形空間変換、たとえば離散コサイン変換(DCT)または離散サイン変換(DST)を適用するように構成される。変換された係数107は、変換された残差係数とも呼ばれることがあり、変換領域において残差ブロック105を表すことがある。
【0159】
変換ユニット106は、HEVC/H.265について規定されるコア変換などの、DCT/DSTの整数近似を適用するように構成され得る。直交DCT変換と比較して、そのような整数近似は通常、ある因子によりスケーリングされる。順方向変換および逆方向変換によって処理される残差ブロックのノルムを保つために、変換プロセスの一部として追加のスケーリング因子が適用される。スケーリング因子は通常、スケーリング因子がシフト演算のための2のべき乗であること、変換された係数のビット深度、正確さと実装コストのトレードオフなどのような、何らかの制約に基づいて選ばれる。具体的なスケーリング因子は、たとえば、デコーダ200において逆変換ユニット212によって、たとえば逆変換のために指定され(対応する逆変換は、たとえばエンコーダ100において逆変換ユニット112によって指定され)、順方向変換のための対応するスケーリング因子は、たとえばエンコーダ100における変換ユニット106によって、それに従って指定され得る。
【0160】
量子化ユニット108は、たとえば、スカラー量子化またはベクトル量子化を適用することによって、変換された係数107を量子化して量子化された係数109を取得するように構成される。量子化された係数109は、量子化された残差係数109とも呼ばれ得る。たとえば、スカラー量子化では、より細かいまたは粗い量子化を実現するために、異なるスケーリングが適用され得る。より小さい量子化ステップサイズはより細かい量子化に対応するが、より大きい量子化ステップサイズはより粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(QP)によって示され得る。量子化パラメータは、たとえば、適用可能な量子化ステップサイズのあらかじめ定められたセットに対するインデックスであり得る。たとえば、小さい量子化パラメータは細かい量子化(小さい量子化ステップサイズ)に対応することがあり、大きい量子化パラメータは粗い量子化(大きい量子化ステップサイズ)に対応することがある、またはこの逆であることがある。量子化は量子化ステップサイズによる除算を含んでもよく、たとえば逆量子化110による、対応するまたは逆の量子化解除は、量子化ステップサイズによる乗算を含んでもよい。
【0161】
HEVCまたはVVCによる実施形態は、量子化ステップサイズを決定するために量子化パラメータを使用するように構成され得る。一般に、量子化ステップサイズは、除算を含む式の不動点近似を使用した量子化パラメータに基づいて計算され得る。追加のスケーリング因子が、残差ブロックのノルムを復元するための量子化および量子化解除のために導入されてもよく、これは、量子化ステップサイズおよび量子化パラメータの式の不動点近似において使用されるスケーリングが原因で修正され得る。1つの例示的な実装形態では、逆変換および量子化解除のスケーリングは組み合わせられ得る。代替的に、カスタマイズされた量子化テーブルが使用され、たとえばビットストリームにおいて、エンコーダからデコーダにシグナリングされ得る。量子化は損失のある演算であり、損失は量子化ステップサイズの増大とともに増大する。
【0162】
エンコーダ100の(またはそれぞれ量子化ユニット108の)実施形態は、デコーダ200が対応する逆量子化を受信して適用し得るように、たとえば、対応する量子化パラメータによって、量子化方式および量子化ステップサイズを出力するように構成され得る。エンコーダ100(または量子化ユニット108)の実施形態は、量子化方式および量子化ステップサイズを、たとえば直接、または、エントロピー符号化ユニット170もしくは任意の他のエントロピーコーディングユニットを介してエントロピー符号化された状態で、出力するように構成され得る。
【0163】
逆量子化ユニット110は、たとえば、量子化ユニット108と同じ量子化ステップサイズに基づいて、またはそれを使用して、量子化ユニット108によって適用される量子化方式の逆を適用することによって、量子化された係数に対する量子化ユニット108の逆量子化を適用して、量子化解除された係数111を取得するように構成される。量子化解除された係数111は、量子化解除された残差係数111とも呼ばれることがあり、量子化による損失が原因で変換された係数とは通常は同一ではないが、変換された係数108に対応することがある。
【0164】
逆変換ユニット112は、変換ユニット106によって適用される変換の逆変換、たとえば、逆離散コサイン変換(DCT)または逆離散サイン変換(DST)を適用して、サンプル領域において逆変換されたブロック113を取得するように構成される。逆変換されたブロック113は、逆変換された量子化解除されたブロック113または逆変換された残差ブロック113とも呼ばれることがある。
【0165】
再構築ユニット114は、たとえば、復号された残差ブロック113のサンプル値と予測ブロック165のサンプル値をサンプルごとに加算することによって、逆変換されたブロック113および予測ブロック165を合成して、サンプル領域において再構築されたブロック115を取得するように構成される。
【0166】
バッファユニット116(または略して「バッファ」116)、たとえば行バッファ116は、たとえばイントラ推定および/またはイントラ予測のために、再構築されたブロックおよびそれぞれのサンプル値をバッファまたは記憶するように構成される。さらなる実施形態では、エンコーダは、任意の種類の推定および/または予測のために、バッファユニット116に記憶されている、フィルタリングされていない再構築されたブロックおよび/またはそれぞれのサンプル値を使用するように構成され得る。
【0167】
エンコーダ100の実施形態は、たとえば、バッファユニット116がイントラ推定152および/もしくはイントラ予測154のために再構築されたブロック115を記憶するためだけではなく、ループフィルタ120(
図1には示されていない)のためにも使用されるように、ならびに/または、たとえばバッファユニット116および復号ピクチャバッファユニット130が1つのバッファを形成するように、構成され得る。さらなる実施形態は、イントラ推定152および/またはイントラ予測154のための入力または基礎として、フィルタリングされたブロック121および/または復号ピクチャバッファ130からのブロックもしくはサンプル(両方とも
図1には示されていない)を使用するように構成され得る。
【0168】
ループフィルタユニット120(または略して「ループフィルタ」120)は、たとえば、サンプル適応オフセット(SAO)フィルタまたは他のフィルタ、たとえば、鮮鋭化フィルタもしくは平滑化フィルタもしくは協調フィルタを適用することによって、再構築されたブロック115をフィルタリングして、フィルタリングされたブロック121を取得するように構成される。フィルタリングされたブロック121は、フィルタリングされた再構築されたブロック121とも呼ばれ得る。ループフィルタ120は、以下ではデブロッキングフィルタとも呼ばれる。ループフィルタユニット120のさらなる詳細が、たとえば、
図6または
図7または
図10から
図12に基づいて、以下で説明される。
【0169】
ループフィルタユニット120の実施形態は、フィルタ分析ユニットおよび実際のフィルタユニットを備えてもよく(
図1には示されていない)、フィルタ分析ユニットは、実際のフィルタのループフィルタパラメータを決定するように構成される。フィルタ分析ユニットは、固定された所定のフィルタパラメータを実際のループフィルタに適用して、所定のフィルタパラメータのセットからフィルタパラメータを適応的に選択し、または実際のループフィルタのフィルタパラメータを適応的に計算するように構成され得る。
【0170】
ループフィルタユニット120の実施形態は、1つまたは複数のフィルタ(ループフィルタコンポーネント/サブフィルタ)、たとえば、直列にまたは並列にまたはこれらの任意の組合せで接続される、たとえば異なる種類またはタイプのフィルタのうちの1つまたは複数を備えてもよく(
図1には示されていない)、フィルタの各々は、たとえば前の段落において説明されたように、それぞれのループフィルタパラメータを決定するためのフィルタ分析ユニットを、個別に、または複数のフィルタのうちの他のフィルタと一緒に備え得る。
【0171】
エンコーダ100(それぞれループフィルタユニット120)の実施形態は、たとえば、デコーダ200が復号のために同じループフィルタパラメータを受信して適用し得るように、ループフィルタパラメータを、たとえば直接、またはエントロピー符号化ユニット170もしくは任意の他のエントロピーコーディングユニットを介してエントロピー符号化された状態で出力するように構成され得る。
【0172】
復号ピクチャバッファ(DPB)130は、フィルタリングされたブロック121を受信して記憶するように構成される。復号ピクチャバッファ130はさらに、同じ現在のピクチャの、または異なるピクチャ、たとえば以前に再構築されたピクチャの、他の以前にフィルタリングされたブロック、たとえば以前に再構築されフィルタリングされたブロック121を記憶するように構成されてもよく、たとえばインター推定および/またはインター予測のために、完全に以前に再構築された、すなわち復号されたピクチャ(および対応する参照ブロックおよびサンプル)および/または部分的に再構築された現在のピクチャ(および対応する参照ブロックおよびサンプル)を提供してもよい。
【0173】
本発明のさらなる実施形態はまた、任意の種類の推定または予測、たとえばイントラ推定およびインター推定ならびにイントラ予測およびインター予測のために、復号ピクチャバッファ130の以前にフィルタリングされたブロックおよび対応するフィルタリングされたサンプル値を使用するように構成され得る。
【0174】
ブロック予測ユニット160とも呼ばれる予測ユニット160は、バッファ116から、ピクチャブロック103(現在のピクチャ101の現在のピクチャブロック103)および復号された、もしくは少なくとも再構築されたピクチャデータ、たとえば、同じ(現在の)ピクチャの参照サンプルを、および/または、復号ピクチャバッファ130から、1つまたは複数の以前に復号されたピクチャからの復号されたピクチャデータ231を、受信または取得し、予測のために、すなわちインター予測されたブロック145またはイントラ予測されたブロック155であり得る予測ブロック165を提供するために、そのようなデータを処理するように構成される。
【0175】
モード選択ユニット162は、予測モード(たとえば、イントラ予測モードまたはインター予測モード)、および/または、残差ブロック105の計算および再構築されたブロック115の再構築のために予測ブロック165として使用されることになる対応する予測ブロック145もしくは155を選択するように構成され得る。
【0176】
モード選択ユニット162の実施形態は、最良の一致をもたらす、もしくは言い換えると最小の残差をもたらす(最小の残差は送信または記憶のためのより優れた圧縮を意味する)、または、最小のシグナリングオーバーヘッドをもたらす(最小のシグナリングオーバーヘッドは送信または記憶のためのより優れた圧縮を意味する)、または、これらの両方を考慮し、もしくは両方のバランスをとる、予測モードを(たとえば、予測ユニット160によってサポートされるものから)選択するように構成され得る。モード選択ユニット162は、レート歪み最適化(RDO)に基づいて予測モードを決定し、すなわち、最低限のレート歪み最適化をもたらす、またはその関連するレート歪みが少なくとも予測モード選択基準を満たす、予測モードを選択するように構成され得る。
【0177】
以下では、予測処理(たとえば、予測ユニット160および例示的なエンコーダ100によって実行されるモード選択(たとえば、モード選択ユニット162による)が、より詳細に説明される。
【0178】
上で説明されたように、エンコーダ100は、(所定の)予測モードのセットから最良のまたは最適な予測モードを決定または選択するように構成される。予測モードのセットは、たとえば、イントラ予測モードおよび/またはインター予測モードを備え得る。
【0179】
イントラ予測モードのセットは、32個の異なるイントラ予測モード、たとえばDC(または平均)モードおよび平面モードのような無指向性モード、もしくは、たとえばH.264において定義されるような指向性モードを備えてもよく、または、65個の異なるイントラ予測モード、たとえばDC(または平均)モードおよび平面モードのような無指向性モード、もしくは、たとえばH.265において定義されるような指向性モードを備えてもよい。
【0180】
インター予測モードのセット(または可能なインター予測モード)は、利用可能な参照ピクチャ(すなわち、たとえばDBP230に記憶されている、以前に少なくとも部分的に復号されたピクチャ)および他のインター予測パラメータ、たとえば、最もよく一致する参照ブロックを探すために、参照ピクチャの全体が使用されるか、もしくはその一部、たとえば現在のブロックのエリアの周りの探索ウィンドウエリアだけが使用されるか、ならびに/または、たとえばピクセル補間、たとえば2分の1/セミペル補間および/もしくは4分の1ペル補間が適用されるかどうかに、依存する。
【0181】
上の予測モードに加えて、スキップモードおよび/またはダイレクトモードが適用され得る。
【0182】
予測ユニット160はさらに、たとえば、四分木分割(QT)、二分分割(BT)、もしくは三分木分割(TT)、またはこれらの任意の組合せを繰り返し使用して、ブロック103をより小さいブロックパーティションまたはサブブロックへと分割し、たとえばブロックパーティションまたはサブブロックの各々のための予測を実行するように構成されてもよく、モード選択は、分割されたブロック103の木構造およびブロックパーティションまたはサブブロックの各々に適用される予測モードの選択を備える。
【0183】
インターピクチャ推定ユニット142とも呼ばれるインター推定ユニット142は、ピクチャブロック103(現在のピクチャ101の現在のピクチャブロック103)および復号されたピクチャ231、または、少なくとも1つもしくは複数の以前に再構築されたブロック、たとえば、1つもしくは複数の他の/異なる以前に復号されたピクチャ231の再構築されたブロックを、インター推定(または「インターピクチャ推定」)のために、受信または取得するように構成される。たとえば、ビデオシーケンスは、現在のピクチャおよび以前に復号されたピクチャ231を備えてもよく、または言い換えると、現在のピクチャおよび以前に復号されたピクチャ231は、ビデオシーケンスを形成するピクチャのシーケンスの一部であってもよく、またはそれを形成してもよい。
【0184】
エンコーダ100は、たとえば、複数の他のピクチャの同じまたは異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャ(または参照ピクチャインデックス、...)および/または参照ブロックの位置(x、y座標)と現在のブロックの位置との間のオフセット(空間オフセット)をインター推定パラメータ143としてインター予測ユニット144に提供するように構成され得る。このオフセットは動きベクトル(MV)と呼ばれる。インター推定は動き推定(ME)とも呼ばれ、インター予測は動き予測(MP)とも呼ばれる。
【0185】
インター予測ユニット144は、インター予測パラメータ143を取得し、たとえば受信し、インター予測パラメータ143に基づいて、またはそれを使用してインター予測を実行して、インター予測ブロック145を取得するように構成される。
【0186】
図1は、インターコーディング、すなわちインター推定142およびインター予測152のための2つの別個のユニット(またはステップ)を示すが、両方の機能が実行されてもよく、それは、1回の(インター推定)が、たとえば、すべてのあり得るインター予測モードまたはあり得るインター予測モードの所定のサブセットを繰り返し試験しながら、現在の最良のインター予測モードおよびそれぞれのインター予測ブロックを記憶し、別のときにインター予測144を実行することなく現在の最良のインター予測モードおよびそれぞれのインター予測ブロックを(最終的な)インター予測パラメータ143およびインター予測ブロック145として使用することによって、ある/そのインター予測ブロック、すなわち、その「種類」またはある「種類」のインター予測154)を計算することを、必要とする/備えるからである。
【0187】
イントラ推定ユニット152は、イントラ推定のために、ピクチャブロック103(現在のピクチャブロック)および同じピクチャの1つまたは複数の以前に再構築されたブロック、たとえば再構築された近隣のブロックを取得し、たとえば受信するように構成される。エンコーダ100は、たとえば、複数の(所定の)イントラ予測モードからイントラ予測モードを選択し、それをイントラ推定パラメータ153としてイントラ予測ユニット154に提供するように構成され得る。
【0188】
エンコーダ100の実施形態は、最適化基準、たとえば、最小の残差(たとえば、現在のピクチャブロック103に最も類似した予測ブロック155をもたらすイントラ予測モード)または最小のレート歪みに基づいて、イントラ予測モードを選択するように構成され得る。
【0189】
イントラ予測ユニット154は、イントラ予測パラメータ153、たとえば選択されたイントラ予測モード153に基づいて、イントラ予測ブロック155を決定するように構成される。
【0190】
図1は、イントラコーディング、すなわちイントラ推定152およびイントラ予測154のための2つの別個のユニット(またはステップ)を示すが、両方の機能が実行されてもよく、それは、1回の(イントラ推定)が、たとえば、すべてのあり得るイントラ予測モードまたはあり得るイントラ予測モードの所定のサブセットを繰り返し試験しながら、現在の最良のイントラ予測モードおよびそれぞれのイントラ予測ブロックを記憶し、別のときにイントラ予測154を実行することなく現在の最良のイントラ予測モードおよびそれぞれのイントラ予測ブロックを(最終的な)イントラ予測パラメータ153およびイントラ予測ブロック155として使用することによって、イントラ予測ブロック、すなわち、その「種類」またはある「種類」のイントラ予測154)を計算することを、必要とする/備えるからである。
【0191】
エントロピー符号化ユニット170は、エントロピー符号化アルゴリズムまたは方式(たとえば、可変長コーディング(VLC)方式、コンテキスト適応VLC方式(CALVC)、算術コーディング方式、コンテキスト適応バイナリ算術コーディング(CABAC))を、量子化された残差係数109、インター予測パラメータ143、イントラ予測パラメータ153、および/またはループフィルタパラメータを、個別にまたは一緒に適用し(またはまったく適用せず)、たとえば符号化されたビットストリーム171の形で出力172によって出力され得る符号化されたピクチャデータ171を取得するように構成される。
【0192】
ビデオエンコーダ100の他の構造的な変形が、ビデオストリームを符号化するために使用され得る。たとえば、非変換ベースのエンコーダ100は、いくつかのブロックまたはフレームのための変換処理ユニットなしで直接残差信号を量子化することができる。別の実装形態では、エンコーダ100は、単一のユニットへと組み合わせられた量子化ユニットおよび逆量子化ユニットを有し得る。
【0193】
図2は、たとえばエンコーダ100によって符号化された、符号化されたピクチャデータ(たとえば、符号化されたビットストリーム)171を受信して、復号されたピクチャ231を取得するように構成される、例示的なビデオデコーダ200を示す。
【0194】
デコーダ200は、入力202、エントロピー復号ユニット204、逆量子化ユニット210、逆変換ユニット212、再構築ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ230、予測ユニット260、インター予測ユニット244、イントラ予測ユニット254、モード選択ユニット260、および出力232を備える。
【0195】
エントロピー復号ユニット204は、符号化されたピクチャデータ171に対してエントロピー復号を実行して、たとえば、量子化された係数209および/または復号されたコーディングパラメータ(
図2には示されていない)、たとえば(復号された)インター予測パラメータ143、イントラ予測パラメータ153、および/もしくはループフィルタパラメータのいずれかまたはすべてを取得するように構成される。
【0196】
デコーダ200の実施形態では、逆量子化ユニット210、逆変換ユニット212、再構築ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ230、予測ユニット260、およびモード選択ユニット260は、エンコーダ100(およびそれぞれの機能ユニット)の逆処理を実行して、符号化されたピクチャデータ171を復号するように構成される。
【0197】
特に、逆量子化ユニット210は、機能において逆量子化ユニット110と同一であってもよく、逆変換ユニット212は、機能において逆変換ユニット112と同一であってもよく、再構築ユニット214は、機能において再構築ユニット114と同一であってもよく、バッファ216は、機能においてバッファ116と同一であってもよく、ループフィルタ220は、(ループフィルタ220は通常、元の画像101またはブロック103に基づいてフィルタパラメータを決定するためにフィルタ分析ユニットを備えず、たとえばエントロピー復号ユニット204から、符号化のために使用されるフィルタパラメータを(明示的または暗黙的に)受信または取得するので、実際のループフィルタに関して)機能においてループフィルタ220と同一であってもよく、復号ピクチャバッファ230は、機能において復号ピクチャバッファ130と同一であってもよい。
【0198】
予測ユニット260は、インター予測ユニット244およびインター予測ユニット254を備えてもよく、インター予測ユニット144は、機能においてインター予測ユニット144と同一であってもよく、インター予測ユニット154は、機能においてイントラ予測ユニット154と同一であってもよい。予測ユニット260およびモード選択ユニット262は通常、ブロック予測を実行し、ならびに/または、符号化されたデータ171だけから(元の画像101についてのさらなる情報なしで)予測されたブロック265を取得し、予測パラメータ143もしくは153を、および/もしくは、選択された予測モードについての情報を、たとえばエントロピー復号ユニット204から、(明示的にまたは暗黙的に)受信もしくは取得するように構成される。
【0199】
デコーダ200は、ユーザへの提示または視聴のために、たとえば出力232を介して、復号されたピクチャ230を出力するように構成される。
【0200】
本発明の実施形態は、主にビデオコーディングに基づいて説明されたが、エンコーダ100およびデコーダ200(およびそれに対応してシステム300)の実施形態は、静止ピクチャの処理またはコーディングのためにも、すなわち、ビデオコーディングにおけるようないずれの先行するまたは連続するピクチャとも無関係な個々のピクチャの処理またはコーディングのためにも構成され得ることに留意されたい。一般に、ピクチャ処理コーディングが単一のピクチャ101に限定される場合、インター推定142、インター予測144、242のみが利用可能ではない。ビデオエンコーダ100およびビデオデコーダ200のすべてではないが大半の他の機能(ツールまたは技術とも呼ばれる)は、静止ピクチャのために等しく使用され得、たとえば、分割、変換(スケーリング)106、量子化108、逆量子化110、逆変換112、イントラ推定142、イントラ予測154、254、および/またはループフィルタリング120、220、ならびにエントロピーコーディング170およびエントロピー復号204である。
【0201】
本発明は、
図1および
図2においてループフィルタとも呼ばれる、デブロッキングフィルタの内部動作について扱う。ループフィルタユニット120、220のさらなる詳細が、たとえば、
図4から
図19に関して、以下で説明される。
【0202】
H.264/AVC、HEVC、およびVVCなどのビデオコーディング方式は、ブロックベースのハイブリッドビデオコーディングの原理に従って設計される。この原理を使用して、ピクチャはまずブロックへと分割され、次いで、各ブロックは、イントラピクチャまたはインターピクチャ予測を使用することによって予測される。これらのブロックは、近隣のブロックから相対的にコーディングされ、ある程度の類似性で元の信号に近い。コーディングされたブロックは元の信号に近いだけであるので、それらの近似しているものの差は、予測および変換ブロックの境界に不連続性を引き起こす。これらの非連続性はデブロッキングフィルタにより弱められる。HEVCは、64×64ピクセルの最大サイズのコーディングツリー単位(CTU)という概念で、H.264/AVCのマクロブロック構造を置き換える。CTUはさらに、8×8ピクセルの最小サイズまで再分割され得る、より小さいコーディング単位(CU)への四分木分解方式へと分割され得る。HEVCはまた、予測ブロック(PB)および変換ブロック(TB)の概念を導入する。
【0203】
HEVCでは、ノーマルフィルタおよび強フィルタという、2つのフィルタがデブロッキングフィルタにおいて定義される。ノーマルフィルタは、エッジの両側の最大で2つのサンプルを修正する。強フィルタでは、エッジに沿ったサンプル間での3回の追加の確認と、何らかのあらかじめ定められた閾値が評価される。それらの確認のすべてが真であると、強フィルタが適用される。強フィルタは、エッジに沿ったサンプルに対してより強い平滑化効果があり、エッジの両側の最大で3つのサンプルを修正することができる。
【0204】
新しいビデオコーデック: Versatile Video Coding (VVC)は、現在のHEVC規格(スクリーンコンテンツコーディングおよびハイダイナミックレンジコーディングのための、その現在の拡張および目先の拡張を含む)の圧縮能力を大きく超える圧縮能力を目指している。VVC Test Model (VTM)は、四分木プラス二分木プラス三分木(QTBTTT)と呼ばれる新しい分割ブロック構造方式を使用する。
【0205】
QTBTTT構造は、複数の分割タイプという概念をなくし、すなわち、コーディング単位(CU)、予測単位(PU)、および変換単位(TU)の分離をなくす。したがって、CU=PU=TUである。QTBTTTはよりフレキシブルなCU分割形状をサポートし、CUは正方形または長方形のいずれかの形状を有し得る。CUの最小の幅および高さは4サンプルであってもよく、CUのサイズも4×NまたはN×4であってもよく、Nは範囲[4,8,16,32]の中の値をとり得る。さらに、最大のCTUサイズは128×128ピクセルに増やされており、これはHEVCにおけるCTUサイズより4倍大きい。
【0206】
長方形のCUでは、短い方のエッジに近い歪みが明白であることがあり、これは、HEVC強フィルタが適用されてもブロックアーティファクトをもたらす。このブロックアーティファクトは、大きいCUのエッジに沿って観察されることもあり、より大きい予測および変換動作により、歪みは顕著である。
【0207】
今では、より大きいブロック(たとえば、より大きいルマブロックまたはより大きいクロマブロック)に属するブロッキングアーティファクトを除去するために、長タップデブロッキングフィルタが使用されている。より大きいブロック(変換ブロック(TU)、予測単位(PU)、コーディングブロック(CB)など)に対しては特に、デブロッキングフィルタリング(ルマおよびクロマデブロッキングなど)は、水平CTB(またはCTU)境界における行バッファ要件が考慮されなければならない間、たとえば、水平CTB(またはCTU)境界における長タップデブロッキングフィルタに対する行バッファ要件が考慮されなければならない間は、困難であり得る。
【0208】
垂直境界に対するデブロッキングフィルタ動作(四分木プラス二分木プラス三分木(QTBTTT)分割を用いた)が
図4Aに示される。
【0209】
水平境界に対するデブロッキングフィルタ動作(四分木プラス二分木プラス三分木(QTBTTT)分割を用いた)が
図4Bに示される。
【0210】
長タップフィルタは、フィルタ決定および実際のフィルタ動作を実行するためにエッジの両側の4つより多くのサンプルを使用するフィルタである。HEVCデブロッキングフィルタは、フィルタ決定およびフィルタ動作のために最大で4サンプルしか使用しないことに留意されたい。
【0211】
行バッファ要件が満たされなければならない間に「長タップフィルタ」を適用することの問題が、
図4Bに示されている。P、Qとも呼ばれるコーディングブロック401、402は2つのCUであり、CUのサイズは4×16サンプルである。別の例では、
図16Aに示されるように、コーディングブロックP(すなわち、第1のコーディングブロック)はブロック高≧16を有し、コーディングブロックQ(すなわち、第2のコーディングブロック)はブロック高=32を有する。
【0212】
水平ブロックエッジ(ルマブロックエッジなどの、太い黒の線で強調される)がフィルタリングされるとき、ブロックエッジの両側で最大7サンプルが修正される。したがって、サンプルP0,0からP6,0までが修正され、および/またはサンプルQ0,0からQ6,0までが修正される。しかしながら、水平ブロックエッジがCTB境界と重なる場合、行バッファ要件および主観品質に基づいて、トレードオフが導かれる必要がある。非対称の長タップフィルタを使用すると、水平CTB境界において長タップフィルタを完全にオフにすることと比較して、より良好なトレードオフが得られる。非対称の長タップフィルタはさらに、次のように定義される。非対称の長タップフィルタは、フィルタ決定およびフィルタリング動作を行うために、エッジの両側で異なる数のタップを使用する。たとえば、エッジの一方の側では4タップのみが使用され得るが、エッジの他方の側では、最大で8サンプルが使用され得る。
【0213】
本開示では、利用可能な行バッファが限られているときに、最適な主観品質を伴う水平(EDGE_HOR)エッジのデブロッキングフィルタリングをどのように実行するかという問題が、
図9、
図10から
図12、
図15から
図18に示されるような手法によって解決され得る。
【0214】
考慮されるべき態様は、符号化された画像に関してそれぞれのブロックエッジがどこにあるかである。特に、現在フィルタリングされているブロックエッジがコーディングツリーブロック(CTB)境界(またはコーディングツリー単位(CTU)境界)と揃っており、水平ブロックエッジである場合、フィルタ入力値およびフィルタ出力値の数が、符号化を実行するための行メモリの量に大きく影響する。これは
図15に示されている。
【0215】
図15は、いくつかのコーディングツリー単位CTU1~CTU40を備える画像1500を示す。各コーディングツリー単位は、たとえば256×256サンプル値を有する。長タップフィルタリングが実行されることになる場合、ある例では、フィルタ出力値を決定するために、符号化ブロックエッジに沿って8つのサンプル値が考慮され得る。コーディング単位CTU1~CTU40は連続的に処理されるので、これにより、極めて大量の行メモリが必要になり得る。
【0216】
ブロックエッジ1501のデブロッキングフィルタリングが
図15に示されていることを考える。ここでは、ブロックエッジ1501は、コーディング単位CTU17およびCTT25の幅全体に沿って描かれた。しかし実際には、コーディングブロックサイズははるかに小さく、それは、コーディングがコーディングツリー単位の規模で実行されないからである。
【0217】
コーディングツリー単位CTU1~CTU40は連続的に処理されるので、コードブロックエッジ1501のデブロッキングを実行するために、コーディングツリー単位CTU17~CTU24の下側の水平境界領域全体を行メモリ内に保つことが必要である。ここで示される例では、8つのコーディングツリー単位CTU17~CTU24があり、コーディング単位の各々が256サンプルの幅であり、フィルタ入力値として8つの関連するサンプル値があるので、8×256×8=16384サンプルの行メモリのメモリサイズが必要である。各水平コーディングブロックエッジに対して、この問題が生じる。これは、コーディングツリー単位CTU9、CTU17、CTU25、およびCTU33に対しては特に問題であり、それは、これらの事例のいずれにおいても、コーディングツリー単位の前の行の水平境界領域全体が行メモリの中に保たれる必要があるからである。これは、
図9および
図16A、
図16b、または
図17、または
図18においてさらに示される。
【0218】
行バッファの問題は、CTU境界と重なる水平境界について生じることに留意されたい。本開示は、CTB(またはCTU)境界と重なる水平境界、特に、行バッファにおいて利用可能なX行を用いてCTB境界と重なる水平エッジをフィルタリングすることに注目する。
【0219】
たとえば、本開示は、CTB(またはCTU)境界と重なる水平境界、特に、行バッファにおいて利用可能な6行を用いてCTB境界と重なる水平エッジをフィルタリングすることに注目する。
【0220】
基本的に、非対称の長タップフィルタ(基本的に、これはフィルタリング動作または決定を実行するためにエッジの両側で異なる数のサンプルまたはタップを使用する)は、行バッファを侵さないように適用される。
【0221】
ある例では、行バッファは(HEVCのように)4行であり得る。別の例では、行バッファは6行、すなわち6行のバッファであり得る。特に、ルマブロックでは、行バッファは(HEVCのように)4行であり得る。別の例では、行バッファは6行、すなわち6行のバッファであり得る。
【0222】
図9は、4行というラインバッファサイズを示す。
図9において、2つのブロック901、902を備える画像900が示されている。ブロックエッジ903は、ブロック901および902を分割する。例によれば、水平ブロックエッジ903がCTB境界と重なるとき、第1のコーディングブロックPはCTB境界の上のブロック901であり、第2のコーディングブロックQはCTB境界の下のブロック902であり、MA=3、DA=4である。ここで、MAは、水平CTB境界の上のブロック(ブロック901など)に対するフィルタリングプロセスの間に修正されるサンプルの数であり、DAは、水平CTB境界の上のブロック(ブロック901など)に対するフィルタ決定において使用されるサンプルの数である。言い換えると、MAは、水平CTB境界の上のブロック(ブロック901など)の最大フィルタ長として理解され得る。
【0223】
図17はまた、4行というラインバッファサイズを示す。
図17において、たとえば上側ブロックのCTB境界において、4行が行バッファサイズとして使用されることが許可されるとき、フィルタ修正の間に3サンプルが修正され、フィルタ決定において4サンプルが使用され、すなわちMA=3かつDA=4であり、たとえば下側ブロックのCTB境界において、フィルタ修正の間に7サンプルが修正され、フィルタ決定において8サンプルが使用され、すなわちMB=7かつDB=8である。
【0224】
図16Aおよび
図16Bは、行バッファサイズが6行である例を示す。
図16Aまたは
図16Bにおいて、2つのブロック1601、1602を備える画像1600が示されている。ブロックエッジ1603は、ブロック1601および1602を分割する。例によれば、水平ブロックエッジ1603がコーディングブロック(CTB)境界と重なり、第1のコーディングブロック(第1のルマブロックなど)PがCTU境界1603の上のブロック1601であり、第2のコーディングブロック(第2のルマブロックなど)QがCTB境界1603の下のブロック1602であるとき、CTB境界において重なる水平エッジに対して、行バッファをさらに減らすために、DA<DBおよびMA<MBが設定され得る。ここで、DBは、水平CTU境界の下のコーディングブロックに対するフィルタ決定において使用されるサンプルの数であり、MBは、水平CTU境界の下のコーディングブロックに対するフィルタリングプロセスおいて修正されるサンプルの数である。言い換えると、MBは、水平CTU境界の下のコーディングブロック(ブロック902など)の最大フィルタ長として理解され得る。
【0225】
図16Aまたは
図16Bに示されるように、たとえば上側ブロックのCTB境界において、6行が行バッファサイズとして使用されることが許可されるとき、フィルタ修正の間に5サンプルが修正され、フィルタ決定において6サンプルが使用され(最大フィルタ長などの、フィルタリング関連のパラメータを出力するための決定プロセス)、すなわちMA=5かつDA=6である。
【0226】
例において、6行が利用可能なCTB境界と重なる水平エッジのためのフィルタが、以下の表において説明される。
【0227】
【0228】
表から、ブロックPの出力サンプルp0からp4の数は、5に等しいMAである。出力サンプルp0からp4の各々に対して、ブロックPの入力サンプルp5、p4、p3、p2、p1、p0の数は、6に等しいDAである。
【0229】
別の例では、i=0からS-1に対する、第1のフィルタ出力値pi'および第2のフィルタ出力値qi'は、次のように定式化される。
- pi'=(fi*Middles,t+(64-fi)*Ps+32)≫6)、pi±tcPDiにクリッピングされる
- qi'=(gi*Middles,t+(64-gi)*Qs+32)≫6)、qi±tcPDiにクリッピングされる
ここで、tcPDiは位置依存のクリッピングパラメータであり、gi、fi、Middles,t、Ps、およびQsはSに依存し、
piは第1のコーディングブロックPのサンプル値を表し、
qiは第2のコーディングブロックQのサンプル値を表し、
S=第1のコーディングブロックPに対するMA、すなわち、最大でも、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの各列において修正され得るサンプルの数である、または、
S=第2のコーディングブロックQに対するMB、すなわち、最大でも、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックQの各列において修正され得るサンプルの数である。
【0230】
行バッファサイズX=6であるとき、gi、fi、Middles,t、Ps、およびQsは、次のようにSに依存する。
【0231】
【0232】
行バッファのサイズ(たとえば、行バッファサイズ)がX(すなわち、行バッファがX行の行バッファサイズを有する)場合、第1のコーディングブロックPについて、DA=XかつMA=X-1であり、第1のコーディングブロックPのサンプルp
iは、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置き換えるパディングされた値として使用され、行バッファサイズがXである場合、i=X-1である。ここで、サンプルp
iは、行バッファに記憶されることが許容される最も外側のサンプルである。たとえば、水平境界の上の第1のコーディングブロックPのサンプルの列を、(
図4Bに示されるように)[p
0,p
1,p
2,p
3,p
4,p
5,p
6,p
7,....]と表記する。行バッファサイズが4である、すなわちx=4である場合、i=3である。したがって、p
3が、行バッファの外側にあるすべての他のサンプル、すなわちサンプルp
4、p
5...をパディングまたは置換するために使用される。別の例では、許容される行バッファサイズが6である、すなわちx=6である場合、i=5である。したがって、p
5が、行バッファの外側にあるすべての他のサンプルをパディングするためにサンプルとして使用され、すなわちサンプルp
6、p
7...はp
5によって置き換えられる。
【0233】
代替として、行バッファサイズX=4であるとき、gi、fi、Middles,t、Ps、およびQsは、次のようにSに依存する。
【0234】
【0235】
さらに、CTB境界において重なる水平エッジについて、DA<DBかつMA<MBであるとき、行バッファサイズを減らすことができる。
【0236】
ある例では、DB=8かつDA=6であり、MB=7かつMA=5である。
【0237】
ある例では、DB=8かつDA=7であり、MB=7かつMA=6である。
【0238】
ある例では、DB=8かつDA=5であり、MB=7かつMA=4である。
【0239】
ある例では、DB=8かつDA=4であり、MB=7かつMA=3である。
【0240】
図6を参照すると、本開示のある態様による、デブロッキングフィルタ装置が提供される。デブロッキングフィルタ装置は、画像エンコーダおよび/または画像デコーダにおいて使用され得る。デブロッキングフィルタ装置は、
ブロック間のエッジを決定するように構成される、エッジ位置特定ユニット603であって、ブロック間のエッジは、第1のコーディングブロックPと第2のコーディングブロックQとの間の水平ブロックエッジ(たとえば、CUエッジまたはCU境界)を備え、水平ブロックエッジはコーディングツリー単位(CTB)境界と重なり、第1のコーディングブロックPはCTB境界の上のブロックであり、第2のコーディングブロックQはCTB境界の下の別のブロックである、エッジ位置特定ユニット603と、
第1のフィルタ(すなわち、長タップフィルタまたは非対称フィルタまたは非対称タップフィルタまたはHEVCデブロッキングフィルタ)を、
- 第1のフィルタ決定値としての、水平ブロックエッジに隣接する第1のコーディングブロックの最大でDA個のサンプル値、および
- 第2のフィルタ決定値としての、水平ブロックエッジに隣接する第2のコーディングブロックの最大でDB個のサンプル値
に基づいて適用することによって、第1のコーディングブロックPと第2のコーディングブロックQとの間の水平ブロックエッジがフィルタリングされるべきであるかどうかを決定するように構成され、DA≠DBまたはDA<DBであり、DAが行バッファサイズに等しい、デブロッキング決定ユニット604と、
第1のコーディングブロックPと第2のコーディングブロックQとの間の水平ブロックエッジが、第1のフィルタを適用することによってフィルタリングされるべきであると決定されるとき、第1のコーディングブロックPと第2のコーディングブロックQとの間の水平ブロックエッジの近くのサンプルの値に第1のフィルタ(すなわち、長タップフィルタまたは非対称フィルタまたは非対称タップフィルタまたはHEVCデブロッキングフィルタ)を適用するように構成される、デブロッキングフィルタリングユニット606とを備える。
【0241】
いくつかの実施形態では、行バッファのサイズ(たとえば、行バッファサイズ)がX(すなわち、行バッファがX行の行バッファサイズを有する)場合、第1のコーディングブロックPについて、DA=Xである。第1のコーディングブロックPのサンプルpiは、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置き換えるためのパディングされた値として使用される。行バッファサイズがXである場合、i=X-1である。
【0242】
いくつかの実施形態では、水平ブロックエッジに対して垂直であり隣接する第1のコーディングブロックの列(各列など)の最大でMA個のサンプル値が修正され、水平ブロックエッジに対して垂直であり隣接する第2のコーディングブロックの列(各列など)の最大でMB個のサンプル値が修正され、MA≠MBまたはMA<MBである。
【0243】
いくつかの実施形態では、行バッファのサイズ(たとえば、行バッファサイズ)がX(すなわち、行バッファがX行の行バッファサイズを有する)場合、第1のコーディングブロックPについて、MA=X-1であり、
第1のコーディングブロックPのサンプルpiが、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するためのパディングされた値として使用される。行バッファサイズがXである場合、i=X-1である。
【0244】
いくつかの実施形態では、DB=8、DA=6、MB=7、かつMA=5である。
【0245】
いくつかの実施形態では、行バッファのサイズ(たとえば、行バッファサイズ)が6であるとき、第1のコーディングブロックPからの最大でL行が、フィルタリング決定のために使用されることが許容され、L=6である。
【0246】
いくつかの実施形態では、6行のバッファ(たとえば、行バッファサイズが6である行バッファ)が適用されるとき、デブロッキング決定ユニット604は、拡張されたフィルタ条件式sp3'=(sp3+Abs(p5-p3)+1)>> 1が満たされるかどうかを決定するように構成される。x>>yが定義され、すなわち、xの2つの補数表現を二進数のy桁だけ算術右シフトすることであると理解され得る。この関数は、yの非負の整数値だけに対して定義される。右シフトの結果として上位ビット(MSB)へとシフトされるビットは、シフト演算の前はxのMSBに等しい値を有する。
【0247】
拡張されたフィルタ条件式を備える1つまたは複数のフィルタ条件式が満たされるとき、第1のフィルタは、CTU境界と重なる水平ブロックエッジに隣接する、第1のコーディングブロックPのサンプル値に対して適用され、
sp3=Abs(p3-p0)であり、piは、フィルタ決定において使用される第1のコーディングブロックPのサンプル値を表し、i=0、1、2、3、4、または5である。
【0248】
いくつかの実施形態では、6行のバッファが適用され、第2のコーディングブロックQのブロックサイズSB≧所定のサイズ(32など)であるとき、デブロッキング決定ユニット604は、拡張されたフィルタ条件式sq3'=(sq3+Abs(q7-q3)+1)>> 1が満たされるかどうかを決定するように構成される。
【0249】
拡張されたフィルタ条件式を備える1つまたは複数のフィルタ条件式が満たされるとき、第1のフィルタは、CTU境界と重なる水平ブロックエッジに隣接する、第2のコーディングブロックQのサンプル値に対して適用される。ここで、sq3=Abs(q0-q3)であり、qiは、フィルタ決定において使用される第2のコーディングブロックQのサンプル値を表し、i=0、1、2、3、4、…または7である。
【0250】
いくつかの実施形態では、4行のバッファが適用されるとき、デブロッキング決定ユニット604は、拡張されたフィルタ条件式sp3'=(sp3+Abs(p3-p0)+1)>>1が満たされるかどうかを決定するように構成される。
【0251】
拡張されたフィルタ条件式を備える1つまたは複数のフィルタ条件式が満たされるとき、第1のフィルタは、CTU境界と重なる水平ブロックエッジに隣接する、第1のコーディングブロックPのサンプル値に対して適用される。ここで、sp3=Abs(p3-p0)であり、piは、フィルタ決定において使用される第1のコーディングブロックPのサンプル値を表し、i=0、1、2、または3である。
【0252】
いくつかの実施形態では、デブロッキングフィルタリングユニット606は、以下の式に基づいて、i=0からS-1に対して第1のフィルタ出力値pi'および第2のフィルタ出力値qi'を決定するように構成される。
- pi'=(fi*Middles,t+(64-fi)*Ps+32)≫6)、pi±tcPDiにクリッピングされる
- qi'=(gi*Middles,t+(64-gi)*Qs+32)≫6)、qi±tcPDiにクリッピングされる
ここで、tcPDiは位置依存のクリッピングパラメータであり、gi、fi、Middles,t、Ps、およびQsはSに依存し、
piは第1のコーディングブロックPのサンプル値を表し、
qiは第2のコーディングブロックQのサンプル値を表し、
S=第1のコーディングブロックPに対するMA、すなわち、最大でも、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの各列において修正され得るサンプルの数である、または、
S=第2のコーディングブロックQに対するMB、すなわち、最大でも、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックQの各列において修正され得るサンプルの数である。
【0253】
いくつかの実施形態では、行バッファサイズX=6であるとき、gi、fi、Middles,t、Ps、およびQsは、次のようにSに依存する。
【0254】
【0255】
いくつかの実施形態では、行バッファサイズX=4であるとき、gi、fi、Middles,t、Ps、およびQsは、次のようにSに依存する。
【0256】
【0257】
いくつかの実施形態では、第1のコーディングブロックPのサンプルpiのフィルタ係数は、第1のコーディングブロックPに属し行バッファに記憶されることが許容される最も外側のサンプルであるサンプルpjが、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するためのパディングされた値として使用されるような方法で決定される。第1のコーディングブロックPのサンプルpiが、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用されることに留意されたい。
【0258】
いくつかの実施形態では、行バッファは6行という行バッファサイズを有し、サンプルp0からp4はサンプルp0'からp4'となるように第1のコーディングブロックPから修正される。
【0259】
いくつかの実施形態では、第1のコーディングブロックPのサンプルpiは、ルマサンプルおよび/またはクロマサンプルである。
【0260】
6行のバッファが適用されるとき、上のブロック「P」から限定された数の行を使用するためにフィルタ条件が修正されることに留意されたい。許容されるサンプルの最大の数は、最高でp5であり、すなわちDA=6である。
【0261】
サンプルpiのフィルタ係数は、使用することおよび行バッファに記憶されることが許容される第1のブロックに属するサンプルpiが、行バッファの外側にあるすべての他のサンプルを置換するパディングされたバージョンとして使用されるような方法で決定される。
【0262】
たとえば、上の場合には、DB=8かつDA=6であり、MB=7かつMA=5である。
【0263】
上側コーディングブロック(P)から、最大で6個のサンプルを使用することができ、最大で5個のサンプルを修正することができ、一方で下側ブロック(q)に対して、最大で7個のサンプルを修正することができ、最大で8個のサンプルを修正することができる。
【0264】
本開示の実施形態の異なる実装形態によれば、許容される他の可能な値は次の通りであり得る。
DB=8かつDA=7であり、MB=7かつMA=6である
DB=8かつDA=5であり、MB=7かつMA=4である
DB=8かつDA=4であり、MB=7かつMA=3である
【0265】
フィルタ条件およびフィルタ式は、上と同じ論理を使用して導かれ得る。
【0266】
下側ブロックと上側ブロックの両方に対して許容される他の可能な値は次の通りである。
【0267】
加えて、DB=4かつDA=4であり、MB=3かつMA=3である。この組合せは、簡単なHEVC強フィルタを使用することができる。HEVCデブロッキングフィルタは、エッジの両側で最大3サンプルを修正する。
【0268】
図7は、長タップフィルタが使用されるべきかどうかを決定するための方法を示すフローチャートである。
図7に示されるように、「長タップフィルタ」条件が真であるために、HEVC強フィルタ条件が満たされるべきである。ステップ707において、詳細は上で説明された。ステップ709において使用される長タップフィルタは、ステップ708において使用されるノーマル長タップフィルタとは異なり、詳細は上で説明された。いくつかの例では、HEVCフィルタに加えて、ステップ708におけるノーマル長タップフィルタが、エッジの各側でのフィルタ決定のために8サンプルを使用し、エッジの各側で7サンプルが修正される。しかしながら、ステップ709における長タップフィルタは、エッジの各側でのフィルタ決定のために8サンプルを使用し、エッジの一方の側では7サンプルが修正されるが、エッジの他方の側では3サンプルが修正される。
【0269】
HEVC強フィルタ条件が満たされるべきであるかどうかを決定するための詳細が、
図8に示されている。強フィルタリングを用いるかノーマルフィルタリングを用いるかを決定することを含む、ブロック境界のためのデブロッキングフィルタリング決定が、
図8のフローチャートにおいて要約されている。
【0270】
第1のステップ800において、現在フィルタリングされるブロックエッジが8×8符号化サンプルグリッドと揃っているかどうかが確認される。揃っている場合、第2のステップ801において、フィルタリングされることになるブロックエッジが、予測単位または変換単位間の境界であるかどうかが確認される。そうである場合、第3のステップ802において、境界強度Bs>0であるかどうかが確認される。この条件も満たされる場合、第4のステップ803において、条件7.1が真であるかどうかが確認される。
【0271】
条件7.1は、デブロッキングフィルタリングがブロック境界に適用されるかどうかを確認するために使用される。条件は特に、ブロック境界の各側の信号が直線(ランプ)からどれだけずれているかを確認する。
【0272】
この条件が満たされない場合、または、ステップ800、801、および802の確認のいずれもが満たされない場合、第5のステップ804において、フィルタリングが実行されないと決定される。
【0273】
第6のステップ803において、条件7.1が真であることが確認され、次いで第7のステップ806において、さらなる条件7.2、7.3、および7.4が満たされるかどうかが確認される。
【0274】
条件7.2は、ブロック境界の側において、大きな信号の変動がないことを確認する。条件7.3は、両側で信号が平坦であることを検証する。条件7.4は、ブロック境界の側部におけるサンプル値間のステップが小さいことを確実にする。
【0275】
これらの条件のすべてが真である場合、第8のステップ807において、強フィルタリングが実行される。ステップ807は、
図7のステップ702で直接置き換えられる。そうではない場合、第9のステップ808において、ノーマルフィルタリングが実行されると決定される。
【0276】
この解決法は、1回だけのサンプル修正が実行されるように、デブロッキングフローチャートの一部を行う。
【0277】
いくつかの例では、6行または4行が利用可能な状態でCTB境界と重なる水平エッジのために、「非対称」フィルタが使用される。
【0278】
この手法は
図16(=
図16Aおよび
図16B)に従って示される。
図16において、2つのブロック1601、1602を備える画像1600が示されている。ブロックエッジ1603は、ブロック1601および1602を分割する。本発明の第1の実施形態によれば、水平ブロックエッジ1603はコーディングツリーブロック(CTB)境界と重なり、第1のコーディングブロックPはCTB境界1603の上のブロック1601であり、第2のコーディングブロックQはCTB境界1603の下のブロック1602であり、
図16(=
図16Aおよび
図16B)は6行のサイズの行バッファを示す。CTB境界において重なる水平エッジに対して、行バッファをさらに減らすために、DA<DBおよびMA<MBと設定される。本開示は、長タップフィルタの適用のためにすべてのブロックタイプに適用され(ブロック1601および1602はルマブロックまたはクロマブロックであるなど)、水平エッジに対して機能する。
【0279】
言い換えると、コーディングブロックP1601はCTB境界1603の一方の側にあるブロックであり、コーディングブロックQ1602はCTB境界1603の他方の側にあるブロックである。一例では、コーディングブロックP1601はCTB境界1603の上のブロックであり、コーディングブロックQ1602はCTB境界1603の下のブロックであることが理解される。したがって、現在のコーディングブロックは、コーディングブロックQ1602であると考えられる。別の例では、コーディングブロックPがCTB境界の下のブロックであり、コーディングブロックQがCTB境界の上のブロックである場合。したがって、現在のコーディングブロックはコーディングブロックPであると考えられる。水平境界に対して、下側ブロックは現在のコーディングブロックであると理解され得る。本開示はまた、上で説明されたような方法で、これらの2つのシナリオの両方において適用され得る。第1のコーディングブロックPに属し行バッファに記憶されることが許容される最も外側のサンプルであるサンプルpiは、第1の画像ブロックに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用される。
【0280】
第1のフィルタは、ブロックエッジ(たとえば、CUエッジ)の両側で異なる数のサンプルを修正する、非対称フィルタであり得る。
【0281】
一例では、上側ブロックに対するCTB境界において、行バッファのサイズが6行であるとき、最大で5サンプルを修正する「長タップ」フィルタが使用され得る。以下では、ブロックの高さが16サンプル以上であるとき、最大で6サンプルをフィルタ入力値として使用し最大で5サンプルをフィルタ出力値として修正する、「長タップ」フィルタが使用され得る。
【0282】
別の例では、上側ブロックに対するCTB境界において、行バッファのサイズが4行であるとき、3サンプルを修正する「長タップ」フィルタが使用され得る。以下では、ブロックの高さが16サンプル以上であるとき、4サンプルをフィルタ入力値として使用し最大で3サンプルをフィルタ出力値として修正する、「長タップ」フィルタが使用され得る。
【0283】
図16(=
図16Aまたは
図16B)または
図17に示されるように、行バッファのサイズ(たとえば、行バッファサイズ)がXである場合、第1のコーディングブロックPに対して、DA=XかつMA=X-1である。第1のコーディングブロックPのサンプルp
iは、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用され、行バッファサイズがXである場合、i=X-1である。たとえば、サンプルp
iは、行バッファに記憶されることが許容される最も外側のサンプルであり、許容される行バッファサイズが「x」である場合、i=x-1である。たとえば、行バッファサイズが4である場合、すなわちx=4である場合、i=3である(
図17に示されるように)。したがって、p
3が、行バッファの外側にあるすべての他のサンプルをパディングするためのサンプルとして使用される。たとえば、サンプルp
4、p
5...はp
3によって置き換えられる。別の例では、許容される行バッファサイズが6である場合、すなわちx=6である場合、i=5である。したがって、p
5が、行バッファの外側にあるすべての他のサンプルをパディングするためにサンプルとして使用される。たとえば、サンプルp
6、p
7...はp
5によって置き換えられる。
【0284】
まとめると、本発明は、第1のコーディングブロックおよび第2のコーディングブロックがルマブロックであり、行バッファがX行(4行など)の行バッファサイズを有するシナリオに対して適用することができる。
【0285】
本発明はまた、第1のコーディングブロックおよび第2のコーディングブロックがクロマブロックであり、行バッファがX行(2行など)の行バッファサイズを有するシナリオに対して適用できることが理解され得る。
【0286】
起こり得る「大きいブロック」のブロッキングアーティファクトは、水平クロマCTU境界において発生し得るので、本開示は、上側ブロックからのMAサンプルを修正する長タップ非対称フィルタを利用してもよいが、それでも、ブロッキングアーティファクトをより効果的に除去するために、下側ブローから最大でMB個のサンプルを修正することができる。
【0287】
図18は、行バッファサイズが2行である例を示す。
図18において、2つのブロック1801、1802を備える画像1800が示されている。ブロックエッジ1803は、ブロック1801および1802を分割する。例によれば、水平ブロックエッジ1803がコーディングツリーブロック(CTB)境界と重なり、第1のコーディングブロック(第1のルマブロックなど)PがCTB境界1803の上のブロック1801にあり、第2のコーディングブロック(第2のルマブロックなど)QがCTB境界1803の下のブロック1802であるとき、クロマCTB境界において重なる水平エッジに対して、行バッファをさらに減らすために、DA<DBおよびMA<MBが設定され得る。ここで、DBは、水平クロマCTB境界の下のコーディングブロックに対するフィルタ決定において使用されるサンプルの数であり、MBは、水平CTB境界の下のコーディングブロックに対するフィルタリングプロセスおいて修正されるサンプルの数である。言い換えると、MAは、水平クロマCTB境界の上のブロック1801の最大フィルタ長として理解され得る。MBは、水平クロマCTB境界の下のブロック1802の最大フィルタ長として理解されてもよく、MA=1、MB=3、DA=2、DB=4である。
図18に示されるように、両方の2つのブロックのブロックサイズまたは高さは16に等しい。第1の画像ブロックと第2の画像ブロックがクロマブロックであり、SAおよびSBが8以上であるとき、MB=3かつMA=1であることに留意することができる。第1の画像ブロックと第2の画像ブロックがクロマブロックであり、SBおよびSAが8以上であるとき、DB=4かつDA=2である。
【0288】
より長いタップフィルタの決定のための、元のフィルタの式は次の通りである。
dp0=Abs(p2,0-2*p1,0+p0,0)
dp1=Abs(p2,1-2*p1,1+p0,1)
dq0=Abs(q2,0-2*q1,0+q0,0)
dp1=Abs(q2,1-2*q1,1+q0,1)
【0289】
水平CTU境界において、修正されたより長いタップフィルタの決定は次の通りである(p2,0、p2,1が単にp1,0およびp1,1により置き換えられる)。
dp0=Abs(p21,0-2*p1,0+p0,0)
dp1=Abs(p21,1-2*p1,1+p0,1)
dq0=Abs(q2,0-2*q1,0+q0,0)
dp1=Abs(q2,1-2*q1,1+q0,1)
【0290】
クロマのより長いタップデブロッキングのための元のより長いタップフィルタリングの式は次の通りである。
p0'=Clip3(p0-tC,p0+tC,(p3+p2+p1+2*p0+q0+q1+q2+4)>>3)
p1'=Clip3(p1-tC,p1+tC,(2*p3+p2+2*p1+p0+q0+q1+4)>>3)
p2'=Clip3(p2-tC,p2+tC,(3*p3+2*p2+p1+p0+q0+4)>>3)
q0'=Clip3(q0-tC,q0+tC,(p2+p1+p0+2*q0+q1+q2+q3+4)>>3)
q1'=Clip3(q1-tC,q1+tC,(p1+p0+q0+2*q1+q2+2*q3+4)>>3)
q2'=Clip3(q2-tC,q2+tC,(p0+q0+q1+2*q2+3*q3+4)>>3)
【0291】
水平CTU境界において、修正されたより長いタップデブロッキングの式は次の通りである。
p0'=Clip3(p0-tC,p0+tC,(p3 + p2 +3*p1+2*p0+q0+q1+q2+4)>>3)
p1'=Clip3(p1-tC,p1+tC,(2*p3+p2+2*p1+p0+q0+q14)>>3)
p2'=Clip3(p2-tC,p2+tC,(3*p3+2*p2+p1+p0+q0+4)>>3)
q0'=Clip3(q0-tC,q0+tC,(p2 +2*p1+p0+2*q0+q1+q2+q3+4)>>3)
q1'=Clip3(q1-tC,q1+tC,(p1+p0+q0+2*q1+q2+2*q3+4)>>3)
q2'=Clip3(q2-tC,q2+tC,(p0+q0+q1+2*q2+3*q3+4)>>3)
【0292】
フィルタリングの式は単に、コーディングブロックPの側部で最も外側にある利用可能なサンプルに利用不可能なサンプルをパディングすることによって導かれ得る。
【0293】
提案される方法の詳細は、本明細書のフォーマットでは次のように説明される。上で説明された実施形態は、VVCドラフト(パート8.8.3.3)への次の修正として表現され得る。
【0294】
8.8.3.3 変換ブロック境界の導出プロセス
このプロセスへの入力は次の通りである。
- 現在のピクチャの左上サンプルに対して相対的に現在のコーディングブロックの左上サンプルを指定する位置(xCb,yCb)、
- 現在のコーディングブロックの幅を指定する変数nCbW、
- 現在のコーディングブロックの高さを指定する変数nCbH、
- 現在のコーディングブロックの色成分を指定する変数cIdx、
- 変数filterEdgeFlag、
- 2次元(nCbW)x(nCbH)アレイedgeFlags、
- 2次元(nCbW)x(nCbH)アレイmaxFilterLengthQsおよびmaxFilterLengthPs、
- 垂直(EDGE_VER)エッジがフィルタリングされるか、または水平(EDGE_HOR)エッジがフィルタリングされるかを指定する変数edgeType。
【0295】
このプロセスへの出力は次の通りである。
- 修正された2次元(nCbW)x(nCbH)アレイedgeFlags、
- 修正された2次元(nCbW)x(nCbH)アレイmaxFilterLengthQs、maxFilterLengthPs。
【0296】
edgeTypeに応じて、アレイedgeFlags、maxFilterLengthPs、およびmaxFilterLengthQsは次のように導かれる。
- 変数gridSizeが次のように設定される。
gridSize==cIdx==0?4:8 (8-1024)
- edgeTypeがEDGE_VERに等しい場合、次のことが当てはまる。
- 変数numEdgesが、Max(1,nCbW/gridSize)に等しく設定される。
- xEdge=0..numEdges-1およびy=0..nCbH-1に対して、次のことが当てはまる。
- 現在のコーディングブロックの内部の水平位置xが、xEdge*gridSizeに等しく設定される。
- edgeFlags[x][y]の値は次のように導かれる。
- 1に等しいpps_loop_filter_across_virtual_boundaries_disabled_flag、(xCb+x)が任意のn=0..pps_num_ver_virtual_boundaries-1に対してPpsVirtualBoundariesPosX[n]に等しい場合、edgeFlags[x][y]は0に等しく設定される。
- そうではなく、xが0に等しい場合、edgeFlags[x][y]はfilterEdgeFlagに等しく設定される。
- そうではなく、位置(xCb+x,yCb+y)が変換ブロックエッジにある場合、edgeFlags[x][y]は1に等しく設定される。
- edgeFlags[x][y]が1に等しいとき、次のことが当てはまる。
- cIdxが0に等しい場合、次のことが当てはまる。
- maxFilterLengthQs[x][y]の値が次のように導かれる。
- ルマ位置(xCb+x,yCb+y)における変換ブロックのルマサンプルの幅が4以下である、または、ルマ位置(xCb+x-1,yCb+y)における変換ブロックのルマサンプルの幅が4以下である場合、maxFilterLengthQs[x][y]は1に等しく設定される。
- そうではなく、ルマ位置(xCb+x,yCb+y)における変換ブロックのルマサンプルの幅が32以上である場合、maxFilterLengthQs[x][y]は7に等しく設定される。
- それ以外の場合、maxFilterLengthQs[x][y]は3に等しく設定される。
- maxFilterLengthPs[x][y]の値が次のように導かれる。
- ルマ位置(xCb+x,yCb+y)における変換ブロックのルマサンプルの幅が4以下である、または、ルマ位置(xCb+x-1,yCb+y)における変換ブロックのルマサンプルの幅が4以下である場合、maxFilterLengthPs[x][y]は1に等しく設定される。
- そうではなく、ルマ位置(xCb+x-1,yCb+y)における変換ブロックのルマサンプルの幅が32以上である場合、maxFilterLengthPs[x][y]は7に等しく設定される。
- それ以外の場合、maxFilterLengthPs[x][y]は3に等しく設定される。
- それ以外の場合(cIdxが0に等しくない)、maxFilterLengthPs[x][y]およびmaxFilterLengthQs[x][y]の値は次のように導かれる。
- クロマ位置(xCb+x,yCb+y)における変換ブロックのクロマサンプルの幅およびクロマ位置(xCb+x-1,yCb+y)における幅がともに8以上である場合、maxFilterLengthPs[x][y]およびmaxFilterLengthQs[x][y]は3に等しく設定される。
- それ以外の場合、maxFilterLengthPs[x][y]およびmaxFilterLengthQs[x][y]は1に等しく設定される。
- それ以外の場合(edgeTypeがEDGE_HORに等しい)場合、次のことが当てはまる。
- 変数numEdgesが、Max(1,nCbH/gridSize)に等しく設定される。
- yEdge=0..numEdges-1およびx=0..nCbW-1に対して、次のことが当てはまる。
- 現在のコーディングブロックの内部の垂直位置yが、yEdge*gridSizeに等しく設定される。
- edgeFlags[x][y]の値は次のように導かれる。
- 1に等しいpps_loop_filter_across_virtual_boundaries_disabled_flag、(yCb+y)が任意のn=0..pps_num_hor_virtual_boundaries-1に対してPpsVirtualBoundariesPosY[n]に等しい場合、edgeFlags[x][y]は0に等しく設定される。
- そうではなく、yが0に等しい場合、edgeFlags[x][y]はfilterEdgeFlagに等しく設定される。
- そうではなく、位置(xCb+x,yCb+y)が変換ブロックエッジにある場合、edgeFlags[x][y]は1に等しく設定される。
- edgeFlags[x][y]が1に等しいとき、次のことが当てはまる。
- cIdxが0に等しい場合、次のことが当てはまる。
- maxFilterLengthQs[x][y]の値が次のように導かれる。
- ルマ位置(xCb+x,yCb+y)における変換ブロックのルマサンプルの高さが4以下である、または、ルマ位置(xCb+x,yCb+y-1)における変換ブロックのルマサンプルの高さが4以下である場合、maxFilterLengthQs[x][y]は1に等しく設定される。
- そうではなく、ルマ位置(xCb+x,yCb+y)における変換ブロックのルマサンプルの高さが32以上である場合、maxFilterLengthQs[x][y]は7に等しく設定される。
- それ以外の場合、maxFilterLengthQs[x][y]は3に等しく設定される。
- maxFilterLengthPs[x][y]の値が次のように導かれる。
- ルマ位置(xCb+x,yCb+y)における変換ブロックのルマサンプルの高さが4以下である、または、ルマ位置(xCb+x,yCb+y-1)における変換ブロックのルマサンプルの高さが4以下である場合、maxFilterLengthPs[x][y]は1に等しく設定される。
- そうではなく、ルマ位置(xCb+x,yCb+y-1)における変換ブロックのルマサンプルの高さが32以上である場合、maxFilterLengthPs[x][y]は7に等しく設定される。
- それ以外の場合、maxFilterLengthPs[x][y]は3に等しく設定される。
- それ以外の場合(cIdxが0に等しくない)、maxFilterLengthPs[x][y]およびmaxFilterLengthQs[x][y]の値は次のように導かれる。
- 次の条件のすべてが真である場合、maxFilterLengthPs[x][y]およびmaxFilterLengthQs[x][y]は3に等しく設定される:
- クロマ位置(xCb+x,yCb+y)における変換ブロックのクロマサンプルの高さおよびクロマ位置(xCb+x、yCb+y-1)における高さはともに8以上である。
- そうではなく、(yCb+y)%CtbHeightCが0に等しい場合、すなわち、水平エッジが上側のクロマCTB境界と重なり、クロマ位置(xCb+x,yCb+y)における変換ブロックのクロマサンプルの高さおよびクロマ位置(xCb+x、yCb+y-1)における高さがともに8以上である場合、maxFilterLengthPs[x][y]は1に設定され、maxFilterLengthQs[x][y]は3に等しく設定され、変数isHorCTBBoundaryは真として設定される。
- それ以外の場合、maxFilterLengthPs[x][y]およびmaxFilterLengthQs[x][y]は1に等しく設定される。
【0297】
上で説明された実施形態は、VVCドラフト(パート8.8.3.6.3)への次の修正として表現され得る。
【0298】
8.8.3.6.3 クロマブロックエッジのための決定プロセス
……
maxFilterLengthCbCrが3に等しいとき、次の順序付けられたステップが適用される。
1. 変数n1、dpq0、dpq1、dp、dq、およびdは次のように導かれる。
n1=(subSampleC==2)?1:3 (8-1138)
変数isHorCTBBondaryが真である場合、p3,0=p1,0、p2,0=p1,0かつp3,n1=p1,n1、p2,n1=p1,n1である。
dp0=Abs(p2,0-2*p1,0+p0,0) (8-1139)
dp1=Abs(p2,n1-2*p1,n1+p0,n1) (8-1140)
dq0=Abs(q2,0-2*q1,0+q0,0) (8-1141)
dq1=Abs(q2,n1-2*q1,n1+q0,n1) (8-1142)
dpq0=dp0+dq0 (8-1143)
dpq1=dp1+dq1 (8-1144)
dp=dp0+dp1 (8-1145)
dq=dq0+dq1 (8-1146)
d=dpq0+dpq1(8-1147)
……
【0299】
したがって、本開示は、(ルマデブロッキングと同様に)クロマデブロッキングのためにも非対称フィルタを使用することができ、これは、上側ブロックからの1サンプルを修正するが、
図18に示されるように下側下からの最大で3サンプルを修正することができる。より多くのサンプルが修正されるので、フィルタは、エッジの両側で1サンプルしか修正しないノーマルクロマフィルタを使用するときと比較して、ブロッキングアーティファクトをより効率的に除去できるとされている。本開示は、水平クロマCTU境界におけるより大きいブロックに対する主観品質を改善することも可能にする。
【0300】
図6は、本開示において説明される技法による、例示的なデブロッキングフィルタ装置600を示すブロック図である(たとえば
図7、
図8、または
図10から
図12に基づいて、さらなる詳細が以下で説明される)。デブロッキングフィルタ装置600は、本出願において説明される様々な例に従ってデブロッキング技法を実行するように構成され得る。一般に、
図1からのループフィルタ120および
図2からのループフィルタ220の一方または両方が、デブロッキングフィルタ600のコンポーネントと実質的に同様のコンポーネントを含み得る。ビデオエンコーダ、ビデオデコーダ、ビデオエンコーダ/デコーダ(コーデック)などの他のビデオコーディングデバイスも、デブロッキングフィルタ600と実質的に同様のコンポーネントを含み得る。デブロッキングフィルタ600は、ハードウェア、ソフトウェア、もしくはファームウェア、またはこれらの任意の組合せにおいて実装され得る。ソフトウェアまたはファームウェアで実装されるとき、対応するハードウェア(1つまたは複数のプロセッサまたは処理ユニット、および、ソフトウェアまたはファームウェアのための命令を記憶するためのメモリ)も提供され得る。
【0301】
図6の例では、デブロッキングフィルタ装置600は、デブロッキング決定ユニット604、メモリに記憶されているサポート定義602、デブロッキングフィルタリングユニット606、メモリに記憶されているデブロッキングフィルタパラメータ608、エッジ位置特定ユニット603、およびエッジ位置データ構造605を含む。デブロッキングフィルタ600のコンポーネントのいずれかまたはすべてが、機能的に統合されてもよい。デブロッキングフィルタ600のコンポーネントは、例示のみを目的に別々に示されている。一般に、デブロッキングフィルタ600は、たとえば、ブロックに対する残差データを予測データと組み合わせる加算コンポーネント114、214から、復号されたブロックのデータを受信する。データはさらに、ブロックがどのように予測されたかの指示を含み得る。以下で説明される例では、デブロッキングフィルタ装置600は、CTB(またはLCU)と関連付けられる復号されたビデオブロックとCTBに対するCU四分木とを含むデータを受信するように構成され、CU四分木は、CTBがどのようにCUに分割されるかということと、リーフノードCUのPUおよびTUに対する予測モードとを記述する。
【0302】
デブロッキングフィルタ装置600は、デブロッキングフィルタ装置600のメモリに、または、対応するビデオコーディングデバイスによって提供される外部メモリに、エッジ位置データ構造605を維持し得る。いくつかの例では、エッジ位置特定ユニット603は、CTBがCUへとどのように分割されるかを示す、CTBに対応する四分木を受信し得る。エッジ位置特定ユニット603は次いで、CU四分木を分析して、デブロッキングのための候補であるCTBの中のCUのTUおよびPUと関連付けられる復号されたビデオブロック間のエッジを決定し得る。
【0303】
エッジ位置データ構造605は、水平次元、垂直次元、および水平エッジと垂直エッジを表す次元を有する、アレイを備え得る。一般に、ビデオブロック間のエッジは、CTBの最小のサイズのCU、またはCUのTUおよびPUと関連付けられる、2つのビデオブロック間で発生し得る。CTBがN×Nのサイズを有すると仮定し、CTBの最小のサイズのCUがサイズM×Mであると仮定すると、アレイは、[N/M]×[N/M]×2のサイズを備えてもよく、「2」はCU(水平および垂直)間のエッジの2つのあり得る方向を表す。たとえば、CTBが64×64ピクセルおよび8×8の最小サイズのCUを有すると仮定すると、アレイは[8]×[8]×[2]エントリを備え得る。
【0304】
各エントリは一般に、2つのビデオブロック間のあり得るエッジに対応し得る。エッジは実際には、エッジ位置データ構造605のエントリの各々に対応するLCU内の位置の各々に存在しないことがある。したがって、データ構造の値は偽へと初期化され得る。一般に、エッジ位置特定ユニット603は、CU四分木を分析して、CTBのCUのTUおよびPUと関連付けられる2つのビデオブロック間のエッジの位置を決定し、エッジ位置データ構造605の中の対応する値を真に設定し得る。
【0305】
一般に、アレイのエントリは、対応するエッジがデブロッキングのための候補としてCTBの中に存在するかどうかを記述し得る。すなわち、CTBのCUのTUおよびPUと関連付けられる2つの近隣のビデオブロック間のエッジが存在すると、エッジ位置特定ユニット603が決定するとき、エッジ位置特定ユニット603は、エッジが存在することを示すために、エッジ位置データ構造605の中の対応するエントリの値を(たとえば、「真」の値に)設定し得る。
【0306】
デブロッキング決定ユニット604は一般に、2つのブロック間のエッジがデブロッキングされるべきであるかどうかを、2つの近隣のブロックについて決定する。デブロッキング決定ユニット604は、エッジ位置データ構造605を使用してエッジの位置を決定し得る。エッジ位置データ構造605の値がブーリアン値を有するとき、いくつかの例では、デブロッキング決定ユニット604は、「真」の値がエッジの存在を示し、および「偽」の値がエッジの不在を示すと決定し得る。
【0307】
一般に、デブロッキング決定ユニット604は、1つまたは複数のデブロッキング決定機能を用いて構成される。機能は、ブロック間のエッジと交差するピクセルの線に適用される複数の係数を含み得る。たとえば、ルマブロックに対して、機能は、エッジに対して垂直なピクセルの線に適用されてもよく、MA(3、4、または5など)個のピクセルが2つのブロックのうちの一方の中にあり、MB(7など)個のピクセルが2つのブロックのうちの他方の中にある。たとえば、クロマブロックに対して、機能は、エッジに対して垂直なピクセルの線に適用されてもよく、MA(1など)個のピクセルが2つのブロックのうちの一方の中にあり、MB(3など)個のピクセルが2つのブロックのうちの他方の中にある。サポート定義602は、機能のためのサポートを定義する。一般に、「サポート」は、機能が適用されるピクセルに対応する。
【0308】
デブロッキング決定ユニット604は、サポート定義602によって定義されるように、1つまたは複数のデブロッキング決定機能をサポートの1つまたは複数のセットに適用して、ビデオデータの2つのブロック間の特定のエッジがデブロッキングされるべきであるかどうかを決定するように構成され得る。デブロッキング決定ユニット604から発する破線は、フィルタリングされていない、出力されているブロックに対するデータを表す。2つのブロック間のエッジがフィルタリングされるべきではないことをデブロッキング決定ユニット604が決定する場合、デブロッキングフィルタ600は、データを変更することなくブロックに対するデータを出力し得る。すなわち、データはデブロッキングフィルタリングユニット606を迂回し得る。一方、エッジがデブロッキングされるべきであることをデブロッキング決定ユニット604が決定するとき、デブロッキング決定ユニット604は、デブロッキングフィルタリングユニット606に、エッジをデブロッキングするためにエッジの近くのピクセルの値をフィルタリングさせ得る。
【0309】
デブロッキングフィルタリングユニット606は、デブロッキング決定ユニット604によって示されるように、デブロッキングされるべきエッジに対するデブロッキングフィルタパラメータ608からデブロッキングフィルタの定義を取り出す。一般に、エッジのフィルタリングは、デブロッキングされるべき現在のエッジの近くからのピクセルの値を使用する。したがって、デブロッキング決定機能とデブロッキングフィルタの両方が、エッジの両側にあるサポート領域を有し得る。エッジの近くのピクセルにデブロッキングフィルタを適用することによって、デブロッキングフィルタリングユニット606は、エッジの近くでの高頻度の遷移が減るように、ピクセルの値を平滑化し得る。このようにして、エッジの近くのピクセルへのデブロッキングフィルタの適用は、エッジの近くのブロッキネスアーティファクトを減らし得る。
【0310】
本開示は、
図6のデブロッキング決定ユニット604およびデブロッキングフィルタリングユニット606に適用可能である。
【0311】
本明細書において提示される技術は、特定のデブロッキングフィルタの実装形態に限定されず、本開示において説明されるデブロッキングフィルタは、デブロッキングフィルタの実装形態のいくつかの例であることに留意されたい。
【0312】
図10は、本開示において説明される技法による、例示的なデブロッキング方法を示すブロック図である(たとえば
図7、
図8、ならびに
図16(=16Aおよび16B)、
図17、および
図18に基づいて、さらなる詳細が以下で説明される)。ここで、ブロックエッジは、第1のコーディングブロックと第2のコーディングブロックとの間の水平ブロックエッジ(たとえば、CUエッジまたはCU境界)を備え、水平ブロックエッジは、コーディングツリー単位(CTB)境界と重なり、第1のコーディングブロックPはCTB境界の上のブロックであり、第2のコーディングブロックQはCTB境界の下のブロックであり、第1のコーディングブロックは、水平ブロックエッジに対して垂直な垂直方向にブロックサイズSAを有し、第2のコーディングブロックは、水平ブロックエッジに対して垂直な垂直方向にブロックサイズSBを有する。
【0313】
図10において、デブロッキング方法の実施形態が示されている。
ステップ1001において、第1のフィルタ決定値として、水平ブロックエッジに隣接する第1のコーディングブロックの最大でDA個のサンプル値を使用し、
ステップ1002において、第2のフィルタ決定値として、水平ブロックエッジに隣接する第2のコーディングブロックの最大でDB個のサンプル値を使用し、
ステップ1003において、第1のフィルタ出力値として、水平ブロックエッジに隣接する第1のコーディングブロックの最大でMA個のサンプル値を修正し、
ステップ1004において、第2のフィルタ出力値として、水平ブロックエッジに隣接する第2のコーディングブロックの最大でMB個のサンプル値を修正し、
DA≠DBかつMA≠MB、SA>DA>MAかつSB>DB>MBである。
【0314】
行バッファのサイズ(たとえば、行バッファサイズ)がXである場合、第1のコーディングブロックPに対して、DA=XかつMA=X-1であり、
第1のコーディングブロックPのサンプルpiが、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用される。行バッファサイズがXである場合、i=X-1である。
【0315】
実施形態のさらなる可能な実装形態では、SA≠SB、またはSA=SBである。
【0316】
実施形態のさらなる可能な実装形態では、DA<DB、およびMA<MBである。
【0317】
実施形態のさらなる可能な実装形態では、DB=8かつDA=6、MB=7かつMA=5である。
【0318】
実施形態のさらなる可能な実装形態では、DB=8かつDA=7、MB=7かつMA=6である。
【0319】
実施形態のさらなる可能な実装形態では、DB=8かつDA=5、MB=7かつMA=4である。
【0320】
実施形態のさらなる可能な実装形態では、DB=8かつDA=4、MB=7かつMA=3である。
【0321】
実施形態のさらなる可能な実装形態では、6行のバッファ(たとえば、行バッファサイズが6である行バッファ)が適用されるとき、拡張されたフィルタ条件式sp3'=(sp3+Abs(p5-p3)+1)>>1が確認される。
【0322】
拡張されたフィルタ条件式を備える1つまたは複数のフィルタ条件式が満たされるとき、第1のフィルタは、CTB境界と重なる水平ブロックエッジに隣接する、第1のコーディングブロックPのサンプル値に対して適用される。ここで、sp3=Abs(p3-p0)であり、piは、フィルタ決定において使用される第1のコーディングブロックPのサンプル値を表し、i=0、1、2、3、4、または5である。
【0323】
実施形態のさらなる可能な実装形態では、6行のバッファが適用され、第2のコーディングブロックQのブロックサイズSB≧所定のサイズ(32など)であるとき、拡張されたフィルタ条件式sq3'=(sq3+Abs(q7-q3)+1)>>1が確認される。拡張されたフィルタ条件式を備える1つまたは複数のフィルタ条件式が満たされるとき、第1のフィルタは、CTB境界と重なる水平ブロックエッジに隣接する、第2のコーディングブロックQのサンプル値に対して適用される。ここでsq3=Abs(q0-q3)であり、qiは、フィルタ決定において使用される第2のコーディングブロックQのサンプル値を表し、i=0、1、2、3、4、...または7である。
【0324】
実施形態のさらなる可能な実装形態では、4行のバッファが適用されるとき、拡張されたフィルタ条件式sp3'=(sp3+Abs(p3-p0)+1)>>1が確認される。拡張されたフィルタ条件式を備える1つまたは複数のフィルタ条件式が満たされるとき、第1のフィルタは、CTB境界と重なる水平ブロックエッジに隣接する、第1のコーディングブロックPのサンプル値に対して適用される。ここで、sp3=Abs(p3-p0)であり、piは、フィルタ決定において使用される第1のコーディングブロックPのサンプル値を表し、i=0、1、2、または3である。
【0325】
実施形態のさらなる可能な実装形態では、i=0からS-1に対する、第1のフィルタ出力値pi’および第2のフィルタ出力値qi’は、次のように定式化される。
pi'=(fi*Middles,t+(64-fi)*Ps+32)≫6)、pi±tcPDiにクリッピングされる
qi'=(gi*Middles,t+(64-gi)*Qs+32)≫6)、qi±tcPDiにクリッピングされる
ここで、tcPDiは位置依存のクリッピングパラメータであり、gi、fi、Middles,t、Ps、およびQsはSに依存し、
piは第1のコーディングブロックPのサンプル値を表し、
qiは第2のコーディングブロックQのサンプル値を表し、
S=第1のコーディングブロックPに対するMA、すなわち、最大でも、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの各列において修正され得るサンプルの数である、または、
S=第2のコーディングブロックQに対するMB、すなわち、最大でも、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックQの各列において修正され得るサンプルの数である。
【0326】
実施形態のさらなる可能な実装形態では、行バッファサイズX=6であり、gi、fi、Middles,t、Ps、およびQsは、次のようにSに依存する。
【0327】
【0328】
実施形態のさらなる可能な実装形態では、行バッファサイズX=4であり、gi、fi、Middles,t、Ps、およびQsは、次のようにSに依存する。
【0329】
【0330】
実施形態のさらなる可能な実装形態では、第1のコーディングブロックPのサンプルpiのフィルタ係数は、第1のコーディングブロックPに属し行バッファに記憶されることが許容される最も外側のサンプルであるサンプルpjが、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用されるような方法で決定される。
【0331】
実施形態のさらなる可能な実装形態では、行バッファは6行という行バッファサイズを有し、サンプルp0からp4はサンプルp0'からp4'となるように第1のコーディングブロックPから修正される。
【0332】
実施形態のさらなる可能な実装形態では、第1のフィルタは、長タップフィルタまたは非対称フィルタまたは非対称タップフィルタである。
【0333】
実施形態のさらなる可能な実装形態では、第1のコーディングブロックPのサンプルpiは、ルマサンプルおよび/またはクロマサンプルである。
【0334】
フィルタ入力値は、ブロックエッジにおいて開始するブロックエッジに対して垂直であり隣接する連続的な値であることに留意されたい。また、フィルタ出力値は、ブロックエッジにおいて開始するブロックエッジに対して垂直であり隣接する連続的な値である。
【0335】
図11は、本開示において説明される技法による、別の例示的なデブロッキング方法を示すブロック図である(たとえば
図7、
図8、ならびに
図16(=16Aおよび16B)、
図17、および
図18に基づいて、さらなる詳細が以下で説明される)。
【0336】
ステップ1101において、ブロック間のエッジを決定し、ブロック間のエッジは、第1のコーディングブロックPと第2のコーディングブロックQとの間の水平ブロックエッジ(たとえば、CUエッジまたはCU境界)を備え、水平ブロックエッジはコーディングツリー単位(CTB)境界と重なり、第1のコーディングブロックPはCTB境界の上のブロックであり、第2のコーディングブロックQはCTB境界の下のブロックである。
【0337】
ステップ1102において、第1のフィルタ(すなわち、長タップフィルタまたは非対称フィルタまたは非対称タップフィルタまたはHEVCデブロッキングフィルタ)を、
- 第1のフィルタ決定値としての、水平ブロックエッジに隣接する第1のコーディングブロックの最大でDA個のサンプル値、および
- 第2のフィルタ決定値としての、水平ブロックエッジに隣接する第2のコーディングブロックの最大でDB個のサンプル値
に基づいて適用することによって、第1のコーディングブロックPと第2のコーディングブロックQとの間の水平ブロックエッジがフィルタリングされるべきであるかどうかを決定し、DA≠DBまたはDA<DBであり、DAは行バッファサイズに等しい。
【0338】
ステップ1103において、第1のコーディングブロックPと第2のコーディングブロックQとの間の水平ブロックエッジが、第1のフィルタを適用することによってフィルタリングされるべきであると決定されるとき、第1のコーディングブロックPと第2のコーディングブロックQとの間の水平ブロックエッジの近くのサンプルの値に第1のフィルタ(すなわち、長タップフィルタまたは非対称フィルタまたは非対称タップフィルタ)を適用する。
【0339】
実施形態のさらなる可能な実装形態では、行バッファのサイズ(たとえば、行バッファサイズ)がXである場合、第1のコーディングブロックPに対して、DA=Xであり、
第1のコーディングブロックPのサンプルpiは、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用され、行バッファサイズがXである場合、i=X-1である。
【0340】
実施形態のさらなる可能な実装形態では、水平ブロックエッジに隣接する第1のコーディングブロックの最大でMA個のサンプル値が修正され、および水平ブロックエッジに隣接する第2のコーディングブロックの最大でMB個のサンプル値が修正され、MA≠MBまたはMA<MBである。
【0341】
実施形態のさらなる可能な実装形態では、行バッファのサイズ(たとえば、行バッファサイズ)がXである場合、第1のコーディングブロックPに対して、MA=X-1であり、
第1のコーディングブロックPのサンプルpiは、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用され、行バッファサイズがXである場合、i=X-1である。
【0342】
実施形態のさらなる可能な実装形態では、DB=8かつDA=6、MB=7かつMA=5である。
【0343】
実施形態のさらなる可能な実装形態では、行バッファのサイズ(たとえば、行バッファサイズ)が6であるとき、第1のコーディングブロックPからの最大でL行が、フィルタリング決定のために使用されることが許容され、L=6である。
【0344】
実施形態のさらなる可能な実装形態では、6行のバッファ(たとえば、行バッファサイズが6である行バッファ)が適用されるとき、デブロッキング決定ユニットは、拡張されたフィルタ条件式sp3'=(sp3+Abs(p5-p3)+1)>>1が満たされるかどうかを決定するように構成される。拡張されたフィルタ条件式を備える1つまたは複数のフィルタ条件式が満たされるとき、第1のフィルタは、CTB境界と重なる水平ブロックエッジに隣接する、第1のコーディングブロックPのサンプル値に対して適用される。ここで、sp3=Abs(p3-p0)であり、piは、フィルタ決定において使用される第1のコーディングブロックPのサンプル値を表し、i=0、1、2、3、4、または5である。
【0345】
Sp3は基本的に、HEVCではAbs(p3-p0)のように計算されるメトリックである。ここでより大きいブロック、すなわちSA≧32であるブロックに対して、sp3は、式sp3'=(sp3+Abs(p7-p3)+1)>>1によって拡張され、p7はp5によってパディングされる。
【0346】
基本的に、フィルタ条件は主に、コーディングブロックPに対して変化する。コーディングブロックQに対しては、フィルタ条件は、CTB境界におけるエッジとCTB境界にないエッジの両方に対して同じままである。
【0347】
実施形態のさらなる可能な実装形態では、6行のバッファが適用され、第2のコーディングブロックQが所定のサイズ(32など)以上のブロックサイズSBを有するとき、デブロッキング決定ユニットは、拡張されたフィルタ条件式sq3'=(sq3+Abs(q7-q3)+1)>>1が満たされるかどうかを決定するように構成される。
【0348】
拡張されたフィルタ条件式を備える1つまたは複数のフィルタ条件式が満たされるとき、第1のフィルタは、CTB境界と重なる水平ブロックエッジに隣接する、第2のコーディングブロックQのサンプル値に対して適用される。
【0349】
ここでsq3=Abs(q0-q3)であり、qiは、フィルタ決定において使用される第2のコーディングブロックQのサンプル値を表し、i=0、1、2、3、4、...または7である。
【0350】
実施形態のさらなる可能な実装形態では、4行のバッファが適用されるとき、デブロッキング決定ユニットは、拡張されたフィルタ条件式sp3'=(sp3+Abs(p3-p0)+1)>>1が満たされるかどうかを決定するように構成される。
【0351】
拡張されたフィルタ条件式を備える1つまたは複数のフィルタ条件式が満たされるとき、第1のフィルタは、CTB境界と重なる水平ブロックエッジに隣接する、第1のコーディングブロックPのサンプル値に対して適用される。ここで、sp3=Abs(p3-p0)であり、piは、フィルタ決定において使用される第1のコーディングブロックPのサンプル値を表し、i=0、1、2、または3である。
【0352】
実施形態のさらなる可能な実装形態では、デブロッキングフィルタリングユニットは、以下の式に基づいて、i=0からS-1に対して第1のフィルタ出力値pi’および第2のフィルタ出力値qi’を決定するように構成される。
- pi'=(fi*Middles,t+(64-fi)*Ps+32)≫6)、pi±tcPDiにクリッピングされる
- qi'=(gi*Middles,t+(64-gi)*Qs+32)≫6)、qi±tcPDiにクリッピングされる
ここで、tcPDiは位置依存のクリッピングパラメータであり、gi、fi、Middles,t、Ps、およびQsはSに依存し、
Middles,tは、ブロックPおよびQに対するSに基づくMiddle7,7またはMiddle7,3またはMiddle3,7であり、
piは第1のコーディングブロックPのサンプル値を表し、
qiは第2のコーディングブロックQのサンプル値を表し、
S=第1のコーディングブロックPに対するMA、すなわち、最大でも、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの各列において修正され得るサンプルの数である、または、
S=第2のコーディングブロックQに対するMB、すなわち、最大でも、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックQの各列において修正され得るサンプルの数である。
【0353】
実施形態のさらなる可能な実装形態では、行バッファサイズX=6であり、gi、fi、Middles,t、Ps、およびQsは、次のようにSに依存する。
【0354】
【0355】
式において、P7またはP3は基本的にPsであることに留意されたい。同様に、式において、Q7またはQ3は基本的にQsであることに留意されたい。
【0356】
実施形態のさらなる可能な実装形態では、行バッファサイズX=4であり、gi、fi、Middles,t、Ps、およびQsは、次のようにSに依存する。
【0357】
【0358】
実施形態のさらなる可能な実装形態では、第1のコーディングブロックPのサンプルpiのフィルタ係数は、第1のコーディングブロックPに属し行バッファに記憶されることが許容される最も外側のサンプルであるサンプルpjが、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するためのパディングされた値として使用されるような方法で決定される。
【0359】
実施形態のさらなる可能な実装形態では、DB=8かつDA=6、MB=7かつMA=5である。
【0360】
実施形態のさらなる可能な実装形態では、DB=8かつDA=7、MB=7かつMA=6である。
【0361】
実施形態のさらなる可能な実装形態では、DB=8かつDA=5、MB=7かつMA=4である。
【0362】
実施形態のさらなる可能な実装形態では、DB=8かつDA=4、MB=7かつMA=3である。
【0363】
実施形態のさらなる可能な実装形態では、行バッファは6行という行バッファサイズを有し、サンプルp0からp4はサンプルp0'からp4'となるように第1のコーディングブロックPから修正される。
【0364】
実施形態のさらなる可能な実装形態では、第1のコーディングブロックPのサンプルpiは、ルマサンプルおよび/またはクロマサンプルである。基本的に、行バッファ制約の同じ考え方が、クロマ長タップフィルタにも適用され得る。クロマの行バッファサイズに基づいて、対応する最も外側のサンプルが、他のサンプルをパディングするために使用される。
【0365】
図16Aまたは
図16Bに示されるように、上側ブロック(P)から、フィルタ決定において最大で6個のサンプルを使用することができ、最大で5個のサンプルを修正することができ、一方で下側ブロック(q)に対して、フィルタ決定において、最大で7個のサンプルを修正することができ、最大で8個のサンプルを修正することができる。
【0366】
フィルタ入力値は、ブロックエッジにおいて開始するブロックエッジに対して垂直であり隣接する連続的な値であることに留意されたい。また、フィルタ出力値は、ブロックエッジにおいて開始するブロックエッジに対して垂直であり隣接する連続的な値である。
【0367】
図12は、本開示において説明される技法による、例示的なデブロッキング方法を示すブロック図である(たとえば
図7、
図8、ならびに
図16(=16Aおよび16B)、
図17、および
図18に基づいて、さらなる詳細が以下で説明される)。ここで、ブロックエッジは、現在の画像ブロックと現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジ(たとえば、CUエッジまたはCU境界)を備え、現在の画像ブロックは水平ブロックエッジの上にあり、現在の画像ブロックは垂直方向にブロックサイズSAを有し、垂直方向は水平ブロックエッジに対して垂直である。
【0368】
図12において、デブロッキング方法の実施形態が示されている。
【0369】
ステップ1201において、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、CTB境界と関連付けられる行バッファの行バッファサイズに少なくとも基づいて、現在の画像ブロックに対する最大フィルタ長MAを決定する。
【0370】
ステップ1203において、現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正し、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる。
【0371】
フィルタリングの決定およびフィルタリングが、利用可能な行バッファに従って調整されることが可能になり、したがって、これは最適な主観品質をもたらす。
【0372】
CTB境界と関連付けられる行バッファがX行の行バッファサイズを有する場合、MA=X-1であり、Xは正の整数である。
【0373】
方法はさらに、
ステップ1202において、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用し、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる。
【0374】
実施形態のいくつかの可能な実装形態では、CTB境界と関連付けられる行バッファがX行の行バッファサイズを有する場合、DA=XかつMA=X-1であり、Xは正の整数である。
【0375】
実施形態のいくつかの可能な実装形態では、現在の画像ブロックがクロマブロックであるとき、CTB境界と関連付けられる行バッファは2行の行バッファサイズを有し、または、
現在の画像ブロックがルマブロックであるとき、CTB境界と関連付けられる行バッファは4行の行バッファサイズを有する。
【0376】
実施形態のいくつかの可能な実装形態では、CTB境界と関連付けられる行バッファがX行の行バッファサイズを有する場合、
現在の画像ブロックのサンプルpiは、現在の画像ブロックに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用され、i=X-1である。
【0377】
現在の画像ブロックのサンプルpiは、現在のクロマブロックのクロマサンプルpiであることに留意することができる。
【0378】
現在の画像ブロックのサンプルpiは、水平ブロックエッジに対して垂直であり隣接する列の中のX番目のサンプルであり、CTB境界と関連付けられる行バッファに記憶されることが許容される最も外側のサンプルでもあることに留意することができる。
【0379】
実施形態のさらなる可能な実装形態では、現在の画像ブロックのサンプルpiのフィルタ係数は、現在の画像ブロックに属し行バッファに記憶されることが許容される最も外側のサンプルであるサンプルpiが、現在の画像ブロックに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用されるような方法で決定される。言い換えると、現在の画像ブロックのサンプルpiと関連付けられるフィルタ係数は、サンプルpiがパディングされた値として使用される回数に基づいて決定され、サンプルpiは、現在の画像ブロックに属し、CTB境界と関連付けられる行バッファに記憶されることが許容される最も外側のサンプルである。たとえば、サンプルpiがパディングされた値として使用される回数は2であり、そうすると、現在の画像ブロックのサンプルpiと関連付けられるフィルタ係数は3であり、それは、サンプルpi自体もカウントされるからである。
【0380】
実施形態のそのような実装形態によれば、パディングされるサンプルが利用可能なサンプルとして扱われ得るので、元のフィルタ決定およびフィルタリングプロセスが変更される必要がなく、特にハードウェアにおいて、計算の複雑さの増大が最小限になる。
【0381】
ある例では、行バッファが2行の行バッファサイズを有するとき、サンプルpiはサンプルp1であり、サンプルp1と関連付けられるフィルタ係数は3である。
【0382】
実施形態の異なる実装形態では、
現在の画像ブロックがルマブロックであり、SAが32以上であるとき、MA=3であり、SAは現在の画像ブロックの高さであり、または、
現在の画像ブロックがルマブロックであり、SAが16以上であるとき、MA=3であり、SAは現在の画像ブロックの高さである。
【0383】
実施形態の異なる実装形態では、
現在の画像ブロックがルマブロックであり、SAが32以上であるとき、DA=4であり、SAは現在の画像ブロックの高さである、または、
現在の画像ブロックがルマブロックであり、SAが16以上であるとき、DA=4であり、SAは現在の画像ブロックの高さである。
【0384】
実施形態のさらなる可能な実装形態では、現在の画像ブロックがクロマブロックであり、SAが8以上であるとき、MA=1であり、SAは現在の画像ブロックの高さである。
【0385】
実施形態のさらなる可能な実装形態では、
現在の画像ブロックがクロマブロックであり、SAが8以上であるとき、DA=2であり、SAは現在の画像ブロックの高さである。
【0386】
方法はさらに、
ステップ1001において、現在の画像ブロックがクロマブロックであるとき、水平ブロックエッジが水平クロマCTB境界と重なるかどうかを決定するステップ、または、
現在の画像ブロックがルマブロックであるとき、水平ブロックエッジが水平ルマCTB境界と重なるかどうかを決定するステップとを備える。
【0387】
現在の画像ブロックのサンプルpiはルマサンプルであり、または現在の画像ブロックのサンプルpiはクロマサンプルであり、iは{0,1,2,...,SA-1}に属することに留意されたい。
【0388】
現在の画像ブロックは変換ブロックである、または現在の画像ブロックはコーディングブロックであることが理解され得る。
【0389】
図13は、例示的な実施形態による、
図3からのソースデバイス310および宛先デバイス320のいずれかまたは両方として使用され得る装置1300の簡略化されたブロック図である。装置1300は、本開示の技法を実施することができる。装置1300は、複数のコンピューティングデバイスを含むコンピューティングシステムの形式であってもよく、または、単一のコンピューティングデバイス、たとえば、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータなどの形式であってもよい。
【0390】
装置1300のプロセッサ1302は、中央処理装置であり得る。代替的に、プロセッサ1302は、今ある、または今後開発される、情報を操作または処理することが可能な任意の他のタイプのデバイスまたは複数のデバイスであり得る。開示される実装形態は、示されるように単一のプロセッサ、たとえばプロセッサ1302を用いて実践され得るが、1つより多くのプロセッサを使用すると、速さおよび効率性の点で利点を得ることができる。
【0391】
ある実装形態では、装置1300の中のメモリ1304は、読取り専用メモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスであり得る。任意の他の適切なタイプのストレージデバイスがメモリ1304として使用され得る。メモリ1304は、バス1312を使用してプロセッサ1302によってアクセスされるコードおよび/またはデータ1306を記憶するために使用され得る。メモリ1304はさらに、オペレーティングシステム1308およびアプリケーションプログラム1310を記憶するために使用され得る。アプリケーションプログラム1310は、プロセッサ1302がここで説明される方法を実行することを可能にする少なくとも1つのプログラムを含み得る。たとえば、アプリケーションプログラム1310は、アプリケーション1からNを含んでもよく、さらに、ここで説明される方法を実行するビデオコーディングアプリケーションを含んでもよい。装置1300はまた、たとえばモバイルコンピューティングデバイスとともに使用されるメモリカードであり得る、二次的ストレージ1314の形態の追加のメモリを含み得る。ビデオ通信セッションは、大量の情報を含み得るので、処理のために必要とされるものとして、全体または一部が、ストレージ1314に記憶され、メモリ1304にロードされ得る。
【0392】
装置1300はまた、ディスプレイ1318などの1つまたは複数の出力デバイスを含み得る。ディスプレイ1318は、一例では、タッチ入力を感知するように動作可能なタッチ感知素子をディスプレイと組み合わせる、タッチ感知ディスプレイであってもよい。ディスプレイ1318は、バス1312を介してプロセッサ1302に結合され得る。ユーザが装置1300をプログラムすること、または別様に使用することを可能にする他の出力デバイスが、ディスプレイ1318に加えて、またはその代わりに設けられ得る。出力デバイスがディスプレイであるとき、またはそれを含むとき、ディスプレイは、液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイ、プラズマディスプレイ、または、有機LED(OLED)ディスプレイなどの発光ダイオード(LED)ディスプレイによるものを含めて、様々な方法で実装され得る。
【0393】
装置1300はまた、画像感知デバイス1320、たとえばカメラ、または、装置1300を操作するユーザの画像などの画像を感知できる今あるもしくは今後開発される任意の他の画像感知デバイス1320を含んでもよく、またはそれと通信していてもよい。画像感知デバイス1320は、装置1300を操作するユーザの方を向くように配置され得る。ある例では、画像感知デバイス1320の位置および光学軸は、視野が、ディスプレイ1318に直接隣接しそこからディスプレイ1318が見えるエリアを含むように、構成され得る。
【0394】
装置1300はまた、音声感知デバイス1322、たとえばマイクロフォン、または、装置1300の近くの音声を感知できる今あるもしくは今後開発される任意の他の音声感知デバイスを含んでもよく、またはそれと通信していてもよい。音声感知デバイス1322は、装置1300を操作するユーザの方を向くように配置されてもよく、音、たとえば、ユーザが装置1300を操作する間にユーザによる行われる発話または他の発声を受け取るように構成されてもよい。
【0395】
図13は、単一のデバイスに統合されるものとして装置1300のプロセッサ1302およびメモリ1304を示すが、他の構成が利用され得る。プロセッサ1302の動作は、直接結合され得る複数の機械(各機械はプロセッサのうちの1つまたは複数を有する)に、またはローカルエリアネットワークもしくは他のネットワークにわたって分散され得る。メモリ1304は、ネットワークベースのメモリ、または装置1300の動作を実行する複数の機械の中のメモリなどの、複数の機械にわたって分散され得る。ここでは単一のバスとして示されているが、装置1300のバス1312は複数のバスを備え得る。さらに、二次的ストレージ1314は、装置1300の他のコンポーネントに直接結合されてもよく、または、ネットワークを介してアクセスされてもよく、メモリカードなどの単一の統合されたユニットもしくは複数のメモリカードなどの複数のユニットを備えてもよい。したがって、装置1300は、多種多様な構成で実装され得る。
【0396】
図14は、本開示の実施形態による、ビデオコーディングのための例示的なデバイス1400の概略図である。コンピューティングデバイス1400は、本明細書において説明されるような開示される実施形態を実装するのに適している。ある実施形態では、コンピューティングデバイス1400は、
図2のビデオデコーダ200などのデコーダ、または
図1のビデオエンコーダ100などのエンコーダであり得る。ある実施形態では、コンピューティングデバイス1400は、上で説明されたような
図2のビデオデコーダ200または
図1のビデオエンコーダ100の1つまたは複数のコンポーネントであり得る。
【0397】
コンピューティングデバイス1400は、データを受信するための入口ポート1420および受信機ユニット(Rx)1410、データを処理するためのプロセッサ、論理ユニット、または中央処理装置(CPU)1430、データを送信するための送信機ユニット(Tx)1440および出口ポート1450、データを記憶するためのメモリ1460を備える。コンピューティングデバイス1400はまた、光信号または電気信号の放出もしくは進入のために、入口ポート1420、受信機ユニット1410、送信機ユニット1440、および出口ポート1450に結合される、光-電気(OE)コンポーネントおよび電気-光(EO)コンポーネントを備え得る。コンピューティングデバイス1400はまた、いくつかの例では、ワイヤレス送信機および/または受信機を含み得る。
【0398】
プロセッサ1430は、ハードウェアおよびソフトウェアによって実装される。プロセッサ1430は、1つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサのような)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、およびデジタルシグナルプロセッサ(DSP)として実装され得る。プロセッサ1430は、入口ポート1420、受信機ユニット1410、送信機ユニット1440、出口ポート1450、およびメモリ1460と通信している。プロセッサ1430はコーディングモジュール1414を備える。コーディングモジュール1414は、上で説明される開示される実施形態を実装する。たとえば、コーディングモジュール1414は、様々なコーディング動作を実装し、処理し、準備し、または提供する。したがって、コーディングモジュール1414が含まれることは、コンピューティングデバイス1400の機能をかなり改善し、異なる状態へのコンピューティングデバイス1400の変換をもたらす。代替的に、コーディングモジュール1414は、メモリ1460に記憶されている命令として実装され、プロセッサ1430によって(たとえば、非一時的媒体に記憶されるコンピュータプログラム製品として)実行される。
【0399】
メモリ1460は、1つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを備え、プログラムが実行のために選択されるとそのようなプログラムを記憶するために、かつ、プログラム実行の間に読み取られる命令およびデータを記憶するために、オーバーフローデータストレージデバイスとして使用され得る。メモリ1460は、揮発性および/または不揮発性であってもよく、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(TCAM)、および/またはスタティックランダムアクセスメモリ(SRAM)であってもよい。コンピューティングデバイス1400はまた、エンドユーザと対話するための入力/出力(I/O)デバイスを得る。たとえば、コンピューティングデバイス1400は、視覚的な出力のためにモニタなどのディスプレイを、オーディオ出力のためにスピーカーを、およびユーザ入力のためにキーボード/マウス/トラックボールなどを含み得る。
【0400】
図19は、本開示において説明される技法による、例示的なデバイス1900を示すブロック図である(たとえば
図7、
図8、ならびに
図16(=16Aおよび16B)、
図17、および
図18に基づいて、さらなる詳細が以下で説明される)。ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスであって、ブロックエッジは、第1のコーディングブロックPと第2のコーディングブロックQとの間の、水平ブロックエッジ(たとえば、CUエッジまたはCU境界)を備え、
水平ブロックエッジはコーディングツリー単位(CTU)境界と重なり、第1のコーディングブロックPはCTU境界の上のブロックであり、第2のコーディングブロックQはCTU境界の下のブロックであり、
第1のコーディングブロックは、水平ブロックエッジに対して垂直にブロックサイズSAを有し、
第2のコーディングブロックは、水平ブロックエッジに対して垂直にブロックサイズSBを有し、
デバイス1900は、
- 第1のフィルタ出力値として、水平ブロックエッジに隣接する第1のコーディングブロックの最大でMA個のサンプル値を修正し、
- 第2のフィルタ出力値として、水平ブロックエッジに隣接する第2のコーディングブロックの最大でMB個のサンプル値を修正し、
- 第1のフィルタ決定値として、水平ブロックエッジに隣接する第1のコーディングブロックの最大でDA個のサンプル値を使用し、
- 第2のフィルタ決定値として、水平ブロックエッジに隣接する第2のコーディングブロックの最大でDB個のサンプル値を使用する、ように構成される、デブロッキングフィルタを備え、
DA≠DBかつMA≠MB、SA>DA>MAかつSB>DB>MBである。
【0401】
実施形態のいくつかの実装形態では、行バッファのサイズ(たとえば、行バッファサイズ)がXである場合、第1のコーディングブロックPに対して、DA=XかつMA=X-1であり、
第1のコーディングブロックPのサンプルpiは、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用され、行バッファサイズがXである場合、i=X-1である。
【0402】
実施形態のいくつかの実装形態では、DA<DBかつMA<MBである。
【0403】
実施形態のいくつかの実装形態では、DB=8かつDA=6、MB=7かつMA=5である。
【0404】
実施形態のいくつかの実装形態では、DB=8かつDA=7、MB=7かつMA=6である。
【0405】
実施形態のいくつかの実装形態では、DB=8かつDA=5、MB=7かつMA=4である。
【0406】
実施形態のいくつかの実装形態では、DA=8かつDA=4、MB=7かつMA=3である。
【0407】
実施形態のさらなる可能な実装形態では、6行のバッファ(たとえば、行バッファサイズが6である行バッファ)が適用されるとき、拡張されたフィルタ条件式sp3'=(sp3+Abs(p5-p3)+1)>>1が確認され、
拡張されたフィルタ条件式を備える1つまたは複数のフィルタ条件式が満たされるとき、第1のフィルタは、CTU境界と重なる水平ブロックエッジに隣接する、第1のコーディングブロックPのサンプル値に対して適用され、
sp3=Abs(p3-p0)であり、piは、フィルタ決定において使用される第1のコーディングブロックPのサンプル値を表し、i=0、1、2、3、4、または5である。
【0408】
実施形態のさらなる可能な実装形態では、6行のバッファが適用され、第2のコーディングブロックQのブロックサイズSB≧所定のサイズ(32など)であるとき、拡張されたフィルタ条件式sq3'=(sq3+Abs(q7-q3)+1)>>1が確認され、
拡張されたフィルタ条件式を備える1つまたは複数のフィルタ条件式が満たされるとき、第1のフィルタは、CTU境界と重なる水平ブロックエッジに隣接する、第2のコーディングブロックQのサンプル値に対して適用され、
sq3=Abs(q0-q3)であり、qiは、フィルタ決定において使用される第2のコーディングブロックQのサンプル値を表し、i=0、1、2、3、4、...または7である。
【0409】
実施形態のさらなる可能な実装形態では、4行のバッファが適用されるとき、拡張されたフィルタ条件式sp3'=(sp3+Abs(p3-p0)+1)>>1が確認され、
拡張されたフィルタ条件式を備える1つまたは複数のフィルタ条件式が満たされるとき、第1のフィルタは、CTU境界と重なる水平ブロックエッジに隣接する、第1のコーディングブロックPのサンプル値に対して適用され、
sp3=Abs(p3-p0)であり、piは、フィルタ決定において使用される第1のコーディングブロックPのサンプル値を表し、i=0、1、2、または3である。
【0410】
実施形態のさらなる可能な実装形態では、i=0からS-1に対する、第1のフィルタ出力値pi'および第2のフィルタ出力値qi'は、次のように定式化される。
- pi'=(fi*Middles,t+(64-fi)*Ps+32)≫6)、pi±tcPDiにクリッピングされる
- qi'=(gi*Middles,t+(64-gi)*Qs+32)≫6)、qi±tcPDiにクリッピングされる
ここで、tcPDiは位置依存のクリッピングパラメータであり、gi、fi、Middles,t、Ps、およびQsはSに依存し、
piは第1のコーディングブロックPのサンプル値を表し、
qiは第2のコーディングブロックQのサンプル値を表し、
S=第1のコーディングブロックPに対するMA、すなわち、最大でも、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの各列において修正され得るサンプルの数である、または、
S=第2のコーディングブロックQに対するMB、すなわち、最大でも、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックQの各列において修正され得るサンプルの数である。
【0411】
実施形態のいくつかの実装形態では、行バッファサイズX=6であり、gi、fi、Middles,t、Ps、およびQsは、次のようにSに依存する。
【0412】
【0413】
実施形態のいくつかの実装形態では、行バッファサイズX=4であり、gi、fi、Middles,t、Ps、およびQsは、次のようにSに依存する。
【0414】
【0415】
実施形態のいくつかの実装形態では、フィルタ係数は、第1のコーディングブロックPに属し行バッファに記憶されることが許容される最も外側のサンプルであるサンプルpiが、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用されるような方法で決定される。
【0416】
ある例では、行バッファは6行という行バッファサイズを有し、サンプルp0からp4はサンプルp0'からp4'となるように第1のコーディングブロックPから修正される。
【0417】
実施形態のさらなる可能な実装形態では、デブロッキングフィルタは、より長いタップフィルタまたは非対称フィルタまたは非対称タップフィルタである。
【0418】
実施形態のいくつかの実施形態では、サンプルpiは、ルマおよび/またはクロマサンプルである。
【0419】
以下は、上で言及された実施形態において示されるような符号化方法ならびに復号方法、およびそれらを使用するシステムの適用の説明である。
【0420】
図20は、コンテンツ配信サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。コンテンツ供給システム3100は、キャプチャデバイス3102、端末デバイス3106を含み、任意選択でディスプレイ3126を含む。キャプチャデバイス3102は、通信リンク3104を介して端末デバイス3106と通信する。通信リンクは、上で説明された通信チャネル13を含み得る。通信リンク3104は、WIFI、イーサネット、ケーブル、ワイヤレス(3G/4G/5G)、USB、またはこれらの任意の種類の組合せなどを含むが、限定はされない。
【0421】
キャプチャデバイス3102は、データを生成し、上の実施形態において示されるような符号化方法によってデータを符号化し得る。代替的に、キャプチャデバイス3102は、データをストリーミングサーバ(図には示されていない)に配信してもよく、サーバは、データを符号化し、符号化されたデータを端末デバイス3106に送信する。キャプチャデバイス3102は、カメラ、スマートフォンもしくはスマートパッド、コンピュータもしくはラップトップ、ビデオ会議システム、PDA、車載デバイス、またはそれらの任意の組合せなどを含むが、限定はされない。たとえば、キャプチャデバイス3102は、上で説明されたようなソースデバイス12を含み得る。データがビデオを含むとき、キャプチャデバイス3102に含まれるビデオエンコーダ20は、実際にビデオ符号化処理を実行し得る。データがオーディオ(すなわち、ビデオ)を含むとき、キャプチャデバイス3102に含まれるオーディオエンコーダは、実際にビデオ符号化処理を実行し得る。いくつかの実際のシナリオでは、キャプチャデバイス3102は、符号化されたビデオデータおよびオーディオデータを、それらを一緒に多重化することによって配信する。他の実際のシナリオでは、たとえばビデオ会議システムでは、符号化されたオーディオデータおよび符号化されたビデオデータは多重化されない。キャプチャデバイス3102は、符号化されたオーディオデータおよび符号化されたビデオデータを端末デバイス3106へ別々に配信する。
【0422】
コンテンツ供給システム3100において、端末デバイス310は、符号化されたデータを受信して再現する。端末デバイス3106は、上で言及された符号化されたデータを復号することが可能な、スマートフォンもしくはスマートパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、セットトップボックス(STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、携帯情報端末(PDA)3122、車載デバイス3124、またはそれらの任意の組合せなどの、データ受信および復元能力を伴うデバイスであり得る。たとえば、端末デバイス3106は、上で説明されたような宛先デバイス14を含み得る。符号化されたデータがビデオを含むとき、端末デバイスに含まれるビデオデコーダ30は、ビデオ復号を実行することを優先させられる。符号化されたデータがオーディオを含むとき、端末デバイスに含まれるオーディオデコーダは、オーディオ復号処理を実行することを優先させられる。
【0423】
ディスプレイを伴う端末デバイス、たとえば、スマートフォンもしくはスマートパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、携帯情報端末(PDA)3122、または車載デバイス3124では、端末デバイスは、復号されたデータをディスプレイに供給することができる。ディスプレイを装備しない端末デバイス、たとえば、STB3116、ビデオ会議システム3118、またはビデオ監視システム3120では、復号されたデータを受信して示すために、外部ディスプレイ3126が端末において接続される。
【0424】
このシステムの各デバイスが符号化または復号を実行するとき、上で言及された実施形態に示されるように、ピクチャ符号化デバイスまたはピクチャ復号デバイスを使用することができる。
【0425】
図21は、端末デバイス3106の例の構造を示す図である。端末デバイス3106がキャプチャデバイス3102からストリームを受信した後、プロトコル進行ユニット3202は、ストリームの送信プロトコルを分析する。プロトコルは、リアルタイムストリーミングプロトコル(RTSP)、ハイパーテキストトランスファープロトコル(HTTP)、HTTPライブストリーミングプロトコル(HLS)、MPEG-DASH、リアルタイムトランスポートプロトコル(RTP)、リアルタイムメッセージングプロトコル(RTMP)、またはこれらの任意の種類の組合せなどを含むが、限定はされない。
【0426】
プロトコル進行ユニット3202がストリームを処理した後、ストリームファイルが生成される。ファイルは逆多重化ユニット3204に出力される。逆多重化ユニット3204は、多重化されたデータを符号化されたオーディオデータおよび符号化されたビデオデータへと分離することができる。上で説明されたように、いくつかの実際のシナリオでは、たとえばビデオ会議システムでは、符号化されたオーディオデータおよび符号化されたビデオデータは多重化されない。この状況では、符号化されたデータは、逆多重化ユニット3204を通らずに、ビデオデコーダ3206およびオーディオデコーダ3208に送信される。
【0427】
逆多重化処理を介して、ビデオエレメンタリストリーム(ES)、オーディオES、および任意選択で字幕が生成される。上で言及された実施形態において説明されるようなビデオデコーダ30を含むビデオデコーダ3206は、上で言及された実施形態において示されるような復号方法によってビデオESを復号してビデオフレームを生成し、このデータを同期ユニット3212に与える。オーディオデコーダ3208は、オーディオESを復号してオーディオフレームを生成し、このデータを同期ユニット3212に与える。代替的に、ビデオフレームは、同期ユニット3212に与える前に、バッファ(
図Yには示されていない)に記憶してもよい。同様に、オーディオフレームは、同期ユニット3212に供給する前に、バッファ(
図Yには示されていない)に記憶してもよい。
【0428】
同期ユニット3212は、ビデオフレームおよびオーディオフレームを同期し、ビデオ/オーディオをビデオ/オーディオディスプレイ3214に供給する。たとえば、同期ユニット3212は、ビデオ情報およびオーディオ情報の提示を同期する。情報は、データストリーム自体の配信に関する、コーディングされたオーディオおよびビジュアルデータならびにタイムスタンプの提示に関するタイムスタンプを使用して、シンタックスにおいてコーディングし得る。
【0429】
字幕がストリームに含まれる場合、字幕デコーダ3210は、字幕を復号し、それをビデオフレームおよびオーディオフレームと同期し、ビデオ/オーディオ/字幕をビデオ/オーディオ/字幕ディスプレイ3216に供給する。
【0430】
本発明は、上で言及されたシステムに限定されず、上で言及された実施形態におけるピクチャ符号化デバイスまたはピクチャ復号デバイスのいずれかが、他のシステム、たとえば車のシステムに組み込まれ得る。
【0431】
本発明は、本明細書の様々な実施形態に関連して説明された。しかしながら、開示される実施形態に対する他の変形が、図面、本開示、および添付の特許請求の範囲の検討から、特許請求される発明を実践する当業者により理解され、実施され得る。請求項において、「備える」という語は他の要素またはステップを排除せず、不定冠詞「a」または「an」は複数を排除しない。単一のプロセッサまたは他のユニットが、特許請求の範囲において記載されるいくつかの項目の機能を満たしてもよい。ある方策が通常は異なる従属請求項において記載されているという単なる事実は、利益を得るためにこれらの方策の組合せを使用できないことを示すものではない。コンピュータプログラムは、他のハードウェアとともに、またはその一部として供給される、光学記憶媒体またはソリッドステート媒体などの適切な媒体に記憶/分散されてもよいが、インターネットまたは他の有線もしくはワイヤレス通信システムを介するなど、他の形態で分散されてもよい。
【0432】
実施形態および説明が「メモリ」という用語に言及するときは常に、「メモリ」という用語は、別様に明確に述べられない限り、磁気ディスク、光ディスク、読取り専用メモリ(Read-Only Memory、ROM)、もしくはランダムアクセスメモリ(Random Access Memory、RAM)であるものと理解されるものとし、かつ/またはそれらを備えるものとする[すべての可能なメモリの列挙]。
【0433】
実施形態および説明が「ネットワーク」という用語に言及するときは常に、「ネットワーク」という用語は、別様に明確に述べられない限り、であるものとして理解されるものとし、かつ/またはそれらを備えるものとする[すべての可能なメモリの列挙]。
【0434】
様々な図面(方法および装置)の「ブロック」(「ユニット」)は(必ずしもハードウェアまたはソフトウェアの個々の「ユニット」ではなく)本発明の実施形態の機能を表現または記述するので、装置の実施形態ならびに方法の実施形態の機能または特徴を等しく記述する(ユニット=ステップ)ことを、当業者は理解するだろう。
【0435】
「ユニット」という用語は、エンコーダ/デコーダの実施形態の機能を例示するためだけに使用され、本開示を限定することは意図されない。
【0436】
本出願において提供されるいくつかの実施形態では、開示されるシステム、装置、および方法は他の方式で実装され得ることが理解されるべきである。たとえば、説明される装置の実施形態は例示にすぎない。たとえば、ユニットの分割は、論理的な機能の分割にすぎず、実際の実装形態では他の分割であってもよい。たとえば、複数のユニットまたはコンポーネントが、別のシステムへと組み合わされ、もしくは統合されてもよく、または、いくつかの特徴が無視され、もしくは実行されなくてもよい。加えて、表示または議論される、相互の結合または直接の結合または通信接続は、何らかのインターフェースを使用することによって実装され得る。装置またはユニット間の間接的な結合もしくは通信接続は、電気的な、機械的な、または他の形式で実装され得る。
【0437】
別々の部分として説明されるユニットは、物理的に別々であってもなくてもよく、ユニットとして表示される部分は、物理的なユニットであってもなくてもよく、1つの場所に位置していてもよく、または複数のネットワークユニットに分散されていてもよい。ユニットの一部またはすべてが、実施形態の解決法の目的を達成するための実際の必要性に従って選択され得る。
【0438】
加えて、本発明の実施形態の機能ユニットは、1つの処理ユニットへと統合されてもよく、または、ユニットの各々が物理的に単独で存在してもよく、または、2つ以上のユニットが1つのユニットへと統合される。
【0439】
本発明の実施形態はさらに、本明細書において説明される方法および/またはプロセスのいずれかを実行するように構成される処理回路を備える装置、たとえばエンコーダおよび/またはデコーダを備え得る。
【0440】
実施形態は、ハードウェア、ファームウェア、ソフトウェア、またはこれらの任意の組合せとして実装され得る。たとえば、エンコーダ/符号化またはデコーダ/復号の機能は、ファームウェアまたはソフトウェアを伴う、または伴わない処理回路によって、たとえば、プロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)などによって実行され得る。
【0441】
エンコーダ100(および対応する符号化方法100)および/またはデコーダ200(および対応する復号方法200)の機能は、コンピュータ可読媒体に記憶されているプログラム命令によって実装され得る。プログラム命令は、実行されると、符号化および/または復号方法のステップを、処理回路、コンピュータ、プロセッサなどに実行させる。コンピュータ可読媒体は、Blurayディスク、DVD、CD、USB(フラッシュ)ドライブ、ハードディスク、ネットワークを介して利用可能なサーバストレージなどの、プログラムが記憶されている非一時的記憶媒体を含む、任意の媒体であり得る。
【0442】
本発明の実施形態は、コンピュータ上で実行されると、本明細書において説明される方法のいずれかを実行するためのプログラムコードを備えるコンピュータプログラムを備え、またはそのコンピュータプログラムである。
【0443】
本発明の実施形態は、プロセッサによって実行されると、本明細書において説明される方法のいずれかをコンピュータシステムに実行させるプログラムコードを備えるコンピュータ可読媒体を備え、またはそのコンピュータ可読媒体である。
【0444】
1つまたは複数の例では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せにおいて実装され得る。ソフトウェアにおいて実装される場合、機能は、コンピュータ可読媒体に1つまたは複数の命令もしくはコードとして記憶され、またはそれを介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体、または、たとえば通信プロトコルに従った、ある場所から別の場所へのコンピュータプログラムの移動を容易にする任意の媒体を含む通信媒体に対応する、コンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号波もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示において説明される技法の実施のための命令、コード、および/またはデータ構造を取り出すための、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0445】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ディスクストレージ、フラッシュメモリ、または、命令もしくはデータ構造の形で所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、任意の接続がコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、または、赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または、赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに、非一時的な有形の記憶媒体を対象とすることが理解されるべきである。本明細書において使用される場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびBlu-rayディスク(disc)を含み、ディスク(disk)は通常データを磁気的に再生し、ディスク(disc)はレーザーでデータを光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0446】
命令は、1つまたは複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の等価な集積論理回路もしくはディスクリート論理回路などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書において使用される「プロセッサ」という用語は、本明細書において説明される技法の実施に適した前述の構造のいずれかまたは任意の他の構造を指し得る。加えて、いくつかの態様では、本明細書において説明される機能は、符号化および復号のために構成される専用ハードウェアおよび/もしくはソフトウェアモジュール内で提供され、または合成されたコーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素において完全に実装され得る。
【0447】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。様々なコンポーネント、モジュール、またはユニットは、開示される技法を実行するように構成されるデバイスの機能的な態様を強調するために本開示において説明されるが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上で説明されたように、様々なユニットが、コーデックハードウェアユニットにおいて組み合わせられてもよく、または、適切なソフトウェアおよび/もしくはファームウェアとともに、上で説明されたような1つまたは複数のプロセッサを含む、相互運用可能なハードウェアユニットの集合体によって提供されてもよい。
【0448】
いくつかの実施形態が本開示において提供されたが、開示されるシステムおよび方法は、本開示の趣旨または範囲から逸脱することなく多くの他の特定の形式で具現化され得ることが理解されるべきである。この例は、限定ではなく例示として見なされるべきであり、本明細書において与えられる詳細に限定されることは意図されない。たとえば、様々な要素またはコンポーネントが、別のシステムへと組み合わされ、もしくは統合されてもよく、または、いくつかの特徴が省略され、もしくは実装されなくてもよい。
【0449】
加えて、個別または別個であるものとして様々な実施形態において説明され例示される技法、システム、サブシステム、および方法は、本開示の範囲から逸脱することなく、他のシステム、モジュール、技法、もしくは方法と組み合わせられてもよく、または統合されてもよい。結合される、または直接結合される、または互いに通信しているものとして、示されまたは論じられる他の項目は、何らかのインターフェース、デバイス、または中間コンポーネントを通じて、電気的にか、機械的にか、または別様にかにかかわらず、間接的に結合されてもよく、または通信していてもよい。変更、置換、および交替の他の例が、当業者により確認可能であり、本明細書において開示される趣旨および範囲から逸脱することなく行われ得る。
【符号の説明】
【0450】
12 ソースデバイス
13 通信チャネル
14 宛先デバイス
20 ビデオエンコーダ
30 ビデオデコーダ
100 エンコーダ
101 ピクチャ
102 入力
103 ピクチャブロック
104 残差計算ユニット
105 残差ブロック
106 変換ユニット
107 変換された係数
108 変換された係数
108 量子化ユニット
109 量子化された係数、量子化された残差係数
110 逆量子化ユニット
111 量子化解除された係数、量子化解除された残差係数
112 逆変換ユニット
113 逆変換されたブロック、逆変換された量子化解除されたブロック、逆変換された残差ブロック
114 再構築ユニット
115 再構築されたブロック
116 バッファユニット
118 バッファ
120 ループフィルタ
121 フィルタリングされたブロック
130 復号ピクチャバッファ
142 インター推定ユニット
143 インター予測パラメータ
144 インター予測ユニット
145 予測ブロック
152 イントラ推定ユニット
153 イントラ予測パラメータ
154 イントラ予測ユニット
155 イントラ予測されたブロック
160 予測ユニット
162 モード選択ユニット
165 予測ブロック
170 エントロピー符号化ユニット
171 符号がされたピクチャデータ
172 出力
200 デコーダ
202 入力
204 エントロピー復号ユニット
209 量子化された係数
210 逆量子化ユニット
212 逆変換ユニット
214 再構築ユニット
216 バッファ
220 ループフィルタ
230 復号ピクチャバッファ
231 復号されたピクチャデータ
244 インター予測ユニット
254 インター予測ユニット
260 予測ユニット
262 モード選択ユニット
265 予測されたブロック
300 コーディングシステム
310 ソースデバイス
312 ピクチャソース
313 ピクチャデータ
314 プリプロセッサ、前処理ユニット
315 ピクチャデータ
318 通信インターフェース
320 宛先デバイス
322 通信インターフェース
326 ポストプロセッサ、後処理ユニット
327 後処理されたピクチャデータ
328 表示デバイス
330 符号化されたデータ
401 コーディングブロック
402 コーディングブロック
600 デブロッキングフィルタ装置
602 サポート定義
603 エッジ位置特定ユニット
604 デブロッキング決定ユニット
605 エッジ位置データ構造
606 デブロッキングフィルタリングユニット
608 デブロッキングフィルタパラメータ
1300 装置
1302 プロセッサ
1304 メモリ
1306 データ
1308 オペレーティングシステム
1310 アプリケーションプログラム
1312 バス
1314 ストレージ
1318 ディスプレイ
1320 画像感知デバイス
1322 音声感知デバイス
1400 ビデオコーディングデバイス
1410 受信機ユニット
1414 コーディングモジュール
1420 入口ポート
1430 プロセッサ
1440 送信機ユニット
1450 出口ポート
1460 メモリ
1501 ブロックエッジ
1603 ブロック境界
1900 デバイス
1910 デブロッキングフィルタ
3100 コンテンツ供給システム
3102 キャプチャデバイス
3104 通信リンク
3106 端末デバイス
3108 スマートフォン/パッド
3110 コンピュータ/ラップトップ
3112 NVR/DVR
3114 TV
3116 セットトップボックス
3118 ビデオ会議システム
3120 ビデオ監視システム
3122 PDA
3124 車載デバイス
3126 ディスプレイ
3202 プロトコル進行ユニット
3204 逆多重化ユニット
3206 ビデオデコーダ
3208 オーディオデコーダ
3210 字幕デコーダ
3212 同期ユニット
3214 ビデオ/オーディオディスプレイ
3216 ビデオ/オーディオ/字幕ディスプレイ
【手続補正書】
【提出日】2023-09-01
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスであって、前記ブロックエッジは、第1の画像ブロックと第2の画像ブロックとの間の、水平ブロックエッジを含み、
前記第1の画像ブロックは、垂直方向にブロックサイズSAを有し、
前記第2の画像ブロックは、前記垂直方向にブロックサイズSBを有し、前記垂直方向は前記水平ブロックエッジに対して垂直であり、
前記デバイスは、
前記水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、
前記第1の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正し、前記最大でMA個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第1の画像ブロックの列から得られ、
前記第2の画像ブロックの最大でMB個のサンプルの値を第2のフィルタ出力値として修正し、前記最大でMB個のサンプルは、前記水平ブロックエッジに対して垂直であり隣接する前記第2の画像ブロックの列から得られる、ように構成される、デブロッキングフィルタを備え、
前記第1の画像ブロックは前記CTB境界の上のブロックであり、前記第2の画像ブロックは前記CTB境界の下のブロックであり、
MA≠MBであり、MAは、前記CTB境界と関連付けられる行バッファの行バッファサイズに基づいて決定される、デバイス。
【手続補正書】
【提出日】2023-09-08
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0017
【補正方法】変更
【補正の内容】
【0017】
第1の態様自体によるデバイスの可能な実装形態では、デブロッキングフィルタはさらに、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジがCTB境界と重なるとの決定に応じて)、
- 第1の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用し、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの列から得られ、
- 第2の画像ブロックの最大でDB個のサンプルの値を第2のフィルタ決定値として使用し、最大でDB個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックの列から得られる、ように構成され、
DA≠DB(DA<DB)であり、DAは、CTB境界と関連付けられる行バッファの行バッファサイズに基づいて決定される。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0019
【補正方法】変更
【補正の内容】
【0019】
第1の態様の任意の先行する実装形態または第1の態様自体によるデバイスの可能な実装形態では、行バッファがX行の行バッファサイズを有する場合、第1の画像ブロックについて、MA=X-1であり、Xは正の整数である。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0020
【補正方法】変更
【補正の内容】
【0020】
第1の態様の任意の先行する実装形態または第1の態様自体によるデバイスの可能な実装形態では、行バッファがX行の行バッファサイズを有する場合、第1の画像ブロックについて、DA=XかつMA=X-1であり、Xは正の整数である。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0021
【補正方法】変更
【補正の内容】
【0021】
第1の態様の任意の先行する実装形態または第1の態様自体によるデバイスの可能な実装形態では、第1の画像ブロックおよび第2の画像ブロックがクロマブロックであるとき、行バッファは2行の行バッファサイズを有し、または、
第1の画像ブロックおよび第2の画像ブロックがルマブロックであるとき、行バッファは4行の行バッファサイズを有する。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0022
【補正方法】変更
【補正の内容】
【0022】
第1の態様の任意の先行する実装形態または第1の態様自体によるデバイスの可能な実装形態では、CTB境界と関連付けられる行バッファがX行の行バッファサイズを有する場合、
第1の画像ブロックのサンプルpiが、第1の画像ブロックに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用され、i=X-1である。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0024
【補正方法】変更
【補正の内容】
【0024】
第1の態様の任意の先行する実装形態または第1の態様自体によるデバイスの可能な実装形態では、第1の画像ブロックのサンプルpiのフィルタ係数は、第1の画像ブロックに属し行バッファに記憶されることが許容される最も外側のサンプルであるサンプルpiが、第1の画像ブロックに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用されるような方法で、決定される。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0026
【補正方法】変更
【補正の内容】
【0026】
第1の態様の任意の先行する実装形態または第1の態様自体によるデバイスの可能な実装形態では、第1の画像ブロックのサンプルpiと関連付けられるフィルタ係数は、サンプルpiがパディングされた値として使用される回数に基づいて決定され、サンプルpiは、第1の画像ブロックに属し、CTB境界と関連付けられる行バッファに記憶されることが許容される最も外側のサンプルである。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0028
【補正方法】変更
【補正の内容】
【0028】
第1の態様の任意の先行する実装形態または第1の態様自体によるデバイスの可能な実装形態では、行バッファが2行の行バッファサイズを有するとき、サンプルpiはサンプルp1であり(たとえば、列は[p0 p1 p2 ...]を含み、p1は列の中の第2の要素である)、サンプルp1と関連付けられるフィルタ係数は、第1のフィルタ出力値の出力サンプルp0'について3である。式p0'=Clip3(p0-tC, p0+tC, (3*p1+2*p0+q0+q1+q2+4)>>3)(8-1151)を参照されたい。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0029
【補正方法】変更
【補正の内容】
【0029】
第1の態様の任意の先行する実装形態または第1の態様自体によるデバイスの可能な実装形態では、行バッファが2行の行バッファサイズを有するとき、サンプルpiはサンプルp1であり(たとえば、列は[p0 p1 p2 ...]を含み、p1は列の中の第2の要素である)、サンプルp1と関連付けられるフィルタ係数は、第2のフィルタ出力値の出力サンプルq0'について2である。式q0'=Clip3(q0-tC, q0+tC, (2*p1+p0+2*q0+q1+q2+q3+4)>>3)(8-1154)を参照されたい。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0030
【補正方法】変更
【補正の内容】
【0030】
第1の態様の任意の先行する実装形態または第1の態様自体によるデバイスの可能な実装形態では、第1の画像ブロックと第2の画像ブロックの両方がルマブロックであり、SBおよびSAが32以上であるとき、MB=7かつMA=3である、または、
第1の画像ブロックと第2の画像ブロックの両方がルマブロックであり、SBが32以上でありSAが16以上であるとき、MB=7かつMA=3である。
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】0032
【補正方法】変更
【補正の内容】
【0032】
第1の態様の任意の先行する実装形態または第1の態様自体によるデバイスの可能な実装形態では、第1の画像ブロックと第2の画像ブロックの両方がルマブロックであり、SBおよびSAが32以上であるとき、DB=8かつDA=4である、または、
第1の画像ブロックと第2の画像ブロックの両方がルマブロックであり、SBが32以上でありSAが16以上であるとき、DB=8かつDA=4である。
【手続補正12】
【補正対象書類名】明細書
【補正対象項目名】0034
【補正方法】変更
【補正の内容】
【0034】
第1の態様の任意の先行する実装形態または第1の態様自体によるデバイスの可能な実装形態では、第1の画像ブロックと第2の画像ブロックがクロマブロックであり、SAおよびSBが8以上であるとき、MB=3かつMA=1である。
【手続補正13】
【補正対象書類名】明細書
【補正対象項目名】0036
【補正方法】変更
【補正の内容】
【0036】
第1の態様の任意の先行する実装形態または第1の態様自体によるデバイスの可能な実装形態では、第1の画像ブロックと第2の画像ブロックがクロマブロックであり、SBおよびSAが8以上であるとき、DB=4かつDA=2である。
【手続補正14】
【補正対象書類名】明細書
【補正対象項目名】0038
【補正方法】変更
【補正の内容】
【0038】
第1の態様の任意の先行する実装形態または第1の態様自体によるデバイスの可能な実装形態では、第2の画像ブロックは現在の画像ブロックであり、第1の画像ブロックは現在の画像ブロックに隣接する近隣の画像ブロックである。
【手続補正15】
【補正対象書類名】明細書
【補正対象項目名】0039
【補正方法】変更
【補正の内容】
【0039】
第1の態様の任意の先行する実装形態または第1の態様自体によるデバイスの可能な実装形態では、第1の画像ブロックのサンプルpiはルマサンプルであり、または、第1の画像ブロックのサンプルpiはクロマサンプルであり、iの範囲は{0,1,2,...,SA-1}であり得る。
【手続補正16】
【補正対象書類名】明細書
【補正対象項目名】0042
【補正方法】変更
【補正の内容】
【0042】
第1の態様の任意の先行する実装形態または第1の態様自体によるデバイスの可能な実装形態では、第1の画像ブロックおよび第2の画像ブロックがクロマブロックであるとき、デブロッキングフィルタは、水平ブロックエッジが水平クロマCTB境界と重なるかどうかを決定するように構成され、または、
第1の画像ブロックおよび第2の画像ブロックがルマブロックであるとき、デブロッキングフィルタは、水平ブロックエッジが水平ルマCTB境界と重なるかどうかを決定するように構成される。
【手続補正17】
【補正対象書類名】明細書
【補正対象項目名】0043
【補正方法】変更
【補正の内容】
【0043】
第1の態様の任意の先行する実装形態または第1の態様自体によるデバイスの可能な実装形態では、デブロッキングフィルタは、より長タップフィルタまたは非対称フィルタまたは非対称タップフィルタである。
【手続補正18】
【補正対象書類名】明細書
【補正対象項目名】0046
【補正方法】変更
【補正の内容】
【0046】
本発明の第3の態様によれば、画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスが提供され、ブロックエッジは、第1の画像ブロックと第2の画像ブロックとの間の、水平ブロックエッジを含み、
第1の画像ブロックは、垂直方向にブロックサイズSAを有し、
第2の画像ブロックは、垂直方向にブロックサイズSBを有し、垂直方向が水平ブロックエッジに対して垂直であり、
デバイスは、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 第1の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用し、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの列から得られ、DA=2であり、
- 第2の画像ブロックの最大でDB個のサンプルの値を第2のフィルタ決定値として使用し、最大でDB個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックの列から得られ、DB=4である、ように構成される、デブロッキングフィルタを備え、
第1の画像ブロックはCTB境界の上のクロマブロックであり、第2の画像ブロックはCTB境界の下の別のクロマブロックであり、SAおよびSBは8以上である。
【手続補正19】
【補正対象書類名】明細書
【補正対象項目名】0048
【補正方法】変更
【補正の内容】
【0048】
本発明の第4の態様によれば、画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法が提供され、ブロックエッジは、第1の画像ブロックと第2の画像ブロックとの間の水平ブロックエッジを含み、
第1の画像ブロックは、垂直方向にブロックサイズSAを有し、
第2の画像ブロックは、垂直方向にブロックサイズSBを有し、垂直方向が水平ブロックエッジに対して垂直であり、
方法は、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 第1の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正するステップであって、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの列から得られる、ステップと、
- 第2の画像ブロックの最大でMB個のサンプルの値を第2のフィルタ出力値として修正するステップであって、最大でMB個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックの列から得られる、ステップとを備え、
第1の画像ブロックはCTB境界の上のブロックであり、第2の画像ブロックはCTB境界の下のブロックであり、
MA≠MB(MA<MB)であり、MAは、CTB境界と関連付けられる行バッファの行バッファサイズに基づいて決定される。
【手続補正20】
【補正対象書類名】明細書
【補正対象項目名】0064
【補正方法】変更
【補正の内容】
【0064】
第4の態様の任意の先行する実装形態または第4の態様自体による方法の可能な実装形態では、第1の画像ブロックと第2の画像ブロックがクロマブロックであり、SBおよびSAが8以上であるとき、DB=4かつDA=2である。
【手続補正21】
【補正対象書類名】明細書
【補正対象項目名】0070
【補正方法】変更
【補正の内容】
【0070】
本発明の第6の態様によれば、画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法が提供され、ブロックエッジは、第1の画像ブロックと第2の画像ブロックとの間の水平ブロックエッジを含み、
第1の画像ブロックは、垂直方向にブロックサイズSAを有し、
第2の画像ブロックは、垂直方向にブロックサイズSBを有し、垂直方向が水平ブロックエッジに対して垂直であり、
方法は、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 第1の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するステップであって、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第1の画像ブロックの列から得られ、DA=2である、ステップと、
- 第2の画像ブロックの最大でDB個のサンプルの値を第2のフィルタ決定値として使用するステップであって、最大でDB個のサンプルは、水平ブロックエッジに対して垂直であり隣接する第2の画像ブロックの列から得られ、DB=4である、ステップとのように構成される、デブロッキングフィルタを備え、
第1の画像ブロックはCTB境界の上のクロマブロックであり、第2の画像ブロックはCTB境界の下の別のクロマブロックであり、SAおよびSBは8以上である。
【手続補正22】
【補正対象書類名】明細書
【補正対象項目名】0071
【補正方法】変更
【補正の内容】
【0071】
本発明の第7の態様によれば、画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスが提供され、ブロックエッジは、現在の画像ブロックと現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、現在の画像ブロックが水平ブロックエッジの上にあり、
現在の画像ブロックは、垂直方向にブロックサイズSAを有し、垂直方向は水平ブロックエッジに対して垂直であり、
デバイスは、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- CTB境界と関連付けられる行バッファの行バッファサイズに少なくとも基づいて、現在の画像ブロックに対する最大フィルタ長MAを決定し、
- 現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正し、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる、ように構成される、デブロッキングフィルタを備える。
【手続補正23】
【補正対象書類名】明細書
【補正対象項目名】0072
【補正方法】変更
【補正の内容】
【0072】
MAは、現在の画像ブロックに対する最大フィルタ長として、または、水平ブロックエッジにおいて開始する水平ブロックエッジに対して垂直であり隣接する各列における、現在の画像ブロックに対して修正されるべきサンプルの最大の数として、理解され得る。
【手続補正24】
【補正対象書類名】明細書
【補正対象項目名】0073
【補正方法】変更
【補正の内容】
【0073】
本発明の第8の態様によれば、画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法が提供され、ブロックエッジは、現在の画像ブロックと現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、現在の画像ブロックは水平ブロックエッジの上にあり、
現在の画像ブロックは、垂直方向にブロックサイズSAを有し、垂直方向は水平ブロックエッジに対して垂直であり、
方法は、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- CTB境界と関連付けられる行バッファの行バッファサイズに少なくとも基づいて、現在の画像ブロックに対する最大フィルタ長MAを決定するステップと、
- 現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正するステップであって、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる、ステップとを備える。
【手続補正25】
【補正対象書類名】明細書
【補正対象項目名】0075
【補正方法】変更
【補正の内容】
【0075】
第7または第8の態様自体による可能な実装形態では、CTB境界と関連付けられる行バッファがX行の行バッファサイズを有する場合、MA=X-1であり、Xは正の整数である。
【手続補正26】
【補正対象書類名】明細書
【補正対象項目名】0076
【補正方法】変更
【補正の内容】
【0076】
第7もしくは第8の態様の任意の先行する実装形態または第7もしくは第8の態様自体による可能な実装形態では、デブロッキングフィルタはさらに、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合、
- 現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するように構成され、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる。
【手続補正27】
【補正対象書類名】明細書
【補正対象項目名】0077
【補正方法】変更
【補正の内容】
【0077】
第7もしくは第8の態様の任意の先行する実装形態または第7もしくは第8の態様自体による可能な実装形態では、CTB境界と関連付けられる行バッファがX行の行バッファサイズを有する場合、DA=XかつMA=X-1であり、Xは正の整数である。
【手続補正28】
【補正対象書類名】明細書
【補正対象項目名】0079
【補正方法】変更
【補正の内容】
【0079】
第7もしくは第7の態様の任意の先行する実装形態または第6もしくは第7の態様自体による可能な実装形態では、CTB境界と関連付けられる行バッファがX行の行バッファサイズを有する場合、
現在の画像ブロックのサンプルpiが、現在の画像ブロックに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用され、i=X-1である。
【手続補正29】
【補正対象書類名】明細書
【補正対象項目名】0080
【補正方法】変更
【補正の内容】
【0080】
第7もしくは第8の態様の任意の先行する実装形態または第7もしくは第8の態様自体による可能な実装形態では、現在の画像ブロックのサンプルpiは、水平ブロックエッジに対して垂直であり隣接する列の中のX番目のサンプルであり、CTB境界と関連付けられる行バッファに記憶されることが許容される最も外側のサンプルでもある。
【手続補正30】
【補正対象書類名】明細書
【補正対象項目名】0081
【補正方法】変更
【補正の内容】
【0081】
第7もしくは第8の態様の任意の先行する実装形態または第7もしくは第8の態様自体による可能な実装形態では、現在の画像ブロックのサンプルpiのフィルタ係数は、現在の画像ブロックに属し行バッファに記憶されることが許容される最も外側のサンプルであるサンプルpiが、現在の画像ブロックに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用されるような方法で、決定される。
【手続補正31】
【補正対象書類名】明細書
【補正対象項目名】0083
【補正方法】変更
【補正の内容】
【0083】
第7もしくは第8の態様の任意の先行する実装形態または第7もしくは第8の態様自体による可能な実装形態では、現在の画像ブロックのサンプルpiと関連付けられるフィルタ係数は、サンプルpiがパディングされた値として使用される回数に基づいて決定され、サンプルpiは、現在の画像ブロックに属し、CTB境界と関連付けられる行バッファに記憶されることが許容される最も外側のサンプルである。たとえば、サンプルpiがパディングされた値として使用される回数は2であり、そうすると、現在の画像ブロックのサンプルpiと関連付けられるフィルタ係数は3であり、それは、サンプルpi自体もカウントされるからである。
【手続補正32】
【補正対象書類名】明細書
【補正対象項目名】0084
【補正方法】変更
【補正の内容】
【0084】
第7もしくは第8の態様の任意の先行する実装形態または第7もしくは第8の態様自体による可能な実装形態では、行バッファが2行の行バッファサイズを有するとき、サンプルpiはサンプルp1であり、サンプルp1と関連付けられるフィルタ係数は3である。
【手続補正33】
【補正対象書類名】明細書
【補正対象項目名】0085
【補正方法】変更
【補正の内容】
【0085】
第7もしくは第8の態様の任意の先行する実装形態または第7もしくは第8の態様自体による可能な実装形態では、現在の画像ブロックがルマブロックであり、SAが32以上であるとき、MA=3であり、SAは現在の画像ブロックの高さであり、
または、
現在の画像ブロックがルマブロックであり、SAが16以上であるとき、MA=3であり、SAは現在の画像ブロックの高さである。
【手続補正34】
【補正対象書類名】明細書
【補正対象項目名】0086
【補正方法】変更
【補正の内容】
【0086】
第7もしくは第8の態様の任意の先行する実装形態または第7もしくは第8の態様自体による可能な実装形態では、現在の画像ブロックがルマブロックであり、SAが32以上であるとき、DA=4であり、SAは現在の画像ブロックの高さである、または、
現在の画像ブロックがルマブロックであり、SAが16以上であるとき、DA=4であり、SAは現在の画像ブロックの高さである。
【手続補正35】
【補正対象書類名】明細書
【補正対象項目名】0087
【補正方法】変更
【補正の内容】
【0087】
第7もしくは第8の態様の任意の先行する実装形態または第7もしくは第8の態様自体による可能な実装形態では、現在の画像ブロックがクロマブロックであり、SAが8以上であるとき、MA=1であり、
SAは現在の画像ブロックの高さである。
【手続補正36】
【補正対象書類名】明細書
【補正対象項目名】0088
【補正方法】変更
【補正の内容】
【0088】
第7もしくは第8の態様の任意の先行する実装形態または第7もしくは第8の態様自体による可能な実装形態では、現在の画像ブロックがクロマブロックであり、SAが8以上であるとき、DA=2であり、
SAは現在の画像ブロックの高さである。
【手続補正37】
【補正対象書類名】明細書
【補正対象項目名】0089
【補正方法】変更
【補正の内容】
【0089】
第7もしくは第8の態様の任意の先行する実装形態または第7もしくは第8の態様自体による可能な実装形態では、現在の画像ブロックがクロマブロックであるとき、デブロッキングフィルタは、水平ブロックエッジが水平クロマCTB境界と重なるかどうかを決定するように構成され、または、
現在の画像ブロックがルマブロックであるとき、デブロッキングフィルタは、水平ブロックエッジが水平ルマCTB境界と重なるかどうかを決定するように構成される。
【手続補正38】
【補正対象書類名】明細書
【補正対象項目名】0090
【補正方法】変更
【補正の内容】
【0090】
第7もしくは第8の態様の任意の先行する実装形態または第7もしくは第8の態様自体による可能な実装形態では、現在の画像ブロックのサンプルpiはルマサンプルであり、または、現在の画像ブロックのサンプルpiはクロマサンプルであり、iは{0,1,2,...,SA-1}に属する。
【手続補正39】
【補正対象書類名】明細書
【補正対象項目名】0091
【補正方法】変更
【補正の内容】
【0091】
第7もしくは第8の態様の任意の先行する実装形態または第7もしくは第8の態様自体による可能な実装形態では、現在の画像ブロックは変換ブロックである、または、
現在の画像ブロックはコーディングブロックである。
【手続補正40】
【補正対象書類名】明細書
【補正対象項目名】0092
【補正方法】変更
【補正の内容】
【0092】
本発明の第9の態様によれば、画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスが提供され、ブロックエッジは、現在の画像ブロックと現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、現在の画像ブロックは水平ブロックエッジの上にあり、
現在の画像ブロックは、垂直方向にブロックサイズSAを有し、垂直方向は水平ブロックエッジに対して垂直であり、
デバイスは、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正し、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られ、
- 現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用し、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる、ように構成される、デブロッキングフィルタを備え、
現在の画像ブロックがルマブロックであり、SAが32以上であるとき、MA=3かつDA=4である。
【手続補正41】
【補正対象書類名】明細書
【補正対象項目名】0093
【補正方法】変更
【補正の内容】
【0093】
本発明の第10の態様によれば、画像ブロック間のブロックエッジをデブロッキングするための、画像エンコーダおよび/または画像デコーダにおける使用のためのデバイスが提供され、ブロックエッジは、現在の画像ブロックと現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、現在の画像ブロックは水平ブロックエッジの上にあり、
現在の画像ブロックは、垂直方向にブロックサイズSAを有し、垂直方向は水平ブロックエッジに対して垂直であり、
デバイスは、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正し、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られ、
- 現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用し、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる、ように構成される、デブロッキングフィルタを備え、
現在の画像ブロックがクロマブロックであり、SAが8以上であるとき、MA=1かつDA=2である。
【手続補正42】
【補正対象書類名】明細書
【補正対象項目名】0094
【補正方法】変更
【補正の内容】
【0094】
本発明の第11の態様によれば、画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法が提供され、ブロックエッジは、現在の画像ブロックと現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、現在の画像ブロックが水平ブロックエッジの上にあり、
現在の画像ブロックは、垂直方向にブロックサイズSAを有し、垂直方向は水平ブロックエッジに対して垂直であり、
方法は、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正するステップであって、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる、ステップと、
- 現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するステップであって、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる、ステップとを備え、
現在の画像ブロックがルマブロックであり、SAが32以上であるとき、MA=3かつDA=4である。
【手続補正43】
【補正対象書類名】明細書
【補正対象項目名】0095
【補正方法】変更
【補正の内容】
【0095】
本発明の第12の態様によれば、画像符号化および/または画像復号において画像ブロック間のブロックエッジをデブロッキングするためのデブロッキング方法が提供され、ブロックエッジは、現在の画像ブロックと現在の画像ブロックの近隣の画像ブロックとの間の水平ブロックエッジを含み、現在の画像ブロックが水平ブロックエッジの上にあり、
現在の画像ブロックは垂直方向にブロックサイズSAを有し、垂直方向は水平ブロックエッジに対して垂直であり、方法は、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なる場合(または、水平ブロックエッジが水平コーディングツリーブロック(CTB)境界と重なるとの決定に応じて)、
- 現在の画像ブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正するステップであって、最大でMA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる、ステップと、
- 現在の画像ブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するステップであって、最大でDA個のサンプルは、水平ブロックエッジに対して垂直であり隣接する現在の画像ブロックの列から得られる、ステップとを備え、
現在の画像ブロックがクロマブロックであり、SAが8以上であるとき、MA=1かつDA=2である。
【手続補正44】
【補正対象書類名】明細書
【補正対象項目名】0096
【補正方法】変更
【補正の内容】
【0096】
上のブロック「P」から限定された数の行を使用するための修正されたフィルタ条件留意されたい。
ここでフィルタ係数は、第1のコーディングブロックPに属し行バッファに記憶されることが許容される最も外側のサンプルであるサンプルpiが、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用されるような方法で決定される。
【手続補正45】
【補正対象書類名】明細書
【補正対象項目名】0098
【補正方法】変更
【補正の内容】
【0098】
ルマ成分のための行バッファサイズは4行であり、クロマ成分のための行バッファサイズは2行である。したがって、行バッファの外側にあるサンプルを行バッファの中に存在する最も外側のサンプルによってパディングすることによって、デブロッキングフィルタ(長タップフィルタなど)のためのCTU境界において行バッファを減らすことが可能になる。
【手続補正46】
【補正対象書類名】明細書
【補正対象項目名】0099
【補正方法】変更
【補正の内容】
【0099】
デブロッキング(たとえば、ルマデブロッキングまたはクロマデブロッキング)の際、デブロッキングフィルタが、大きいブロックに属する境界のいずれか一方の側のサンプルに適用される。大きいブロックに属するサンプルは、垂直方向のエッジについて幅≧32であるとき、かつ水平方向のエッジについて高さ≧32であるときとして定義され得る。
【手続補正47】
【補正対象書類名】明細書
【補正対象項目名】0102
【補正方法】変更
【補正の内容】
【0102】
本発明の別の態様によれば、ビデオ符号化装置が提供される。ビデオストリームのピクチャを符号化するためのビデオ符号化装置(100)であって、ビデオ符号化装置(100)は、
ピクチャを再構築するように構成される再構築ユニット(114)と、
再構築されたピクチャをフィルタリングされた再構築されたピクチャへと処理するための以前に説明されたようなデバイス(120)とを備える。
【手続補正48】
【補正対象書類名】明細書
【補正対象項目名】0104
【補正方法】変更
【補正の内容】
【0104】
本発明の別の態様によれば、ビデオ復号装置が提供される。符号化されたビデオストリーム(303)のピクチャを復号するためのビデオ復号装置(200)であって、ビデオ復号装置(200)は、
ピクチャを再構築するように構成される再構築ユニット(214)と、
前記再構築されたピクチャをフィルタリングされた再構築されたピクチャへと処理するための以前に説明されたようなデバイス(220)とを備える。
【手続補正49】
【補正対象書類名】明細書
【補正対象項目名】0113
【補正方法】変更
【補正の内容】
【0113】
本発明の第8の態様による方法は、本発明の第7の態様による装置によって実行され得る。本発明の第11の態様による方法のさらなる特徴および実装形態は、本発明の第7の態様およびその異なる実装形態による装置の機能から直接得られる。
【手続補正50】
【補正対象書類名】明細書
【補正対象項目名】0140
【補正方法】変更
【補正の内容】
【0140】
通信インターフェース318および通信インターフェース322は、ソースデバイス310と宛先デバイス320との間の直接の通信リンク、たとえば、直接の有線もしくはワイヤレス接続を介して、または、任意の種類のネットワーク、たとえば、有線ネットワークもしくはワイヤレスネットワークもしくはこれらの任意の組合せ、もしくは任意の種類のプライベートネットワークおよびパブリックネットワーク、もしくはこれらの任意の種類の組合せを介して、符号化されたピクチャデータ171または符号化されたデータ330をそれぞれ送信または受信するように構成され得る。
【手続補正51】
【補正対象書類名】明細書
【補正対象項目名】0160
【補正方法】変更
【補正の内容】
【0160】
量子化ユニット108は、たとえば、スカラー量子化またはベクトル量子化を適用することによって、変換された係数107を量子化して量子化された係数109を取得するように構成される。量子化された係数109は、量子化された残差係数109とも呼ばれ得る。たとえば、スカラー量子化では、より細かいまたは粗い量子化を実現するために、異なるスケーリングが適用され得る。より小さい量子化ステップサイズはより細かい量子化に対応するが、より大きい量子化ステップサイズはより粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(QP)によって示され得る。量子化パラメータは、たとえば、適用可能な量子化ステップサイズのあらかじめ定められたセットに対するインデックスであり得る。たとえば、小さい量子化パラメータは細かい量子化(小さい量子化ステップサイズ)に対応することがあり、大きい量子化パラメータは粗い量子化(大きい量子化ステップサイズ)に対応することがある、またはこの逆であることがある。量子化は量子化ステップサイズによる除算を含んでもよく、たとえば逆量子化ユニット110による、対応するまたは量子化解除は、量子化ステップサイズによる乗算を含んでもよい。
【手続補正52】
【補正対象書類名】明細書
【補正対象項目名】0177
【補正方法】変更
【補正の内容】
【0177】
以下では、予測処理(たとえば、予測ユニット160による)および例示的なエンコーダ100によって実行されるモード選択(たとえば、モード選択ユニット162による)が、より詳細に説明される。
【手続補正53】
【補正対象書類名】明細書
【補正対象項目名】0182
【補正方法】変更
【補正の内容】
【0182】
予測ユニット160はさらに、たとえば、四分木分割(QT)、二分木分割(BT)、もしくは三分木分割(TT)、またはこれらの任意の組合せを繰り返し使用して、ブロック103をより小さいブロックパーティションまたはサブブロックへと分割し、たとえばブロックパーティションまたはサブブロックの各々のための予測を実行するように構成されてもよく、モード選択は、分割されたブロック103の木構造およびブロックパーティションまたはサブブロックの各々に適用される予測モードの選択を備える。
【手続補正54】
【補正対象書類名】明細書
【補正対象項目名】0187
【補正方法】変更
【補正の内容】
【0187】
イントラ推定ユニット152は、イントラ推定のために、ピクチャブロック103(現在のピクチャブロック)および同じピクチャの1つまたは複数の以前に再構築されたブロック、たとえば再構築された近隣のブロックを取得し、たとえば受信するように構成される。エンコーダ100は、たとえば、複数の(所定の)イントラ予測モードからイントラ予測モードを選択し、それをイントラ予測パラメータ153としてイントラ予測ユニット154に提供するように構成され得る。
【手続補正55】
【補正対象書類名】明細書
【補正対象項目名】0194
【補正方法】変更
【補正の内容】
【0194】
デコーダ200は、入力202、エントロピー復号ユニット204、逆量子化ユニット210、逆変換ユニット212、再構築ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ230、予測ユニット260、インター予測ユニット244、イントラ予測ユニット254、モード選択ユニット262、および出力232を備える。
【手続補正56】
【補正対象書類名】明細書
【補正対象項目名】0196
【補正方法】変更
【補正の内容】
【0196】
デコーダ200の実施形態では、逆量子化ユニット210、逆変換ユニット212、再構築ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ230、予測ユニット260、およびモード選択ユニット262は、エンコーダ100(およびそれぞれの機能ユニット)の逆処理を実行して、符号化されたピクチャデータ171を復号するように構成される。
【手続補正57】
【補正対象書類名】明細書
【補正対象項目名】0197
【補正方法】変更
【補正の内容】
【0197】
特に、逆量子化ユニット210は、機能において逆量子化ユニット110と同一であってもよく、逆変換ユニット212は、機能において逆変換ユニット112と同一であってもよく、再構築ユニット214は、機能において再構築ユニット114と同一であってもよく、バッファ216は、機能においてバッファ116と同一であってもよく、ループフィルタ220は、(ループフィルタ220は通常、元の画像101またはブロック103に基づいてフィルタパラメータを決定するためにフィルタ分析ユニットを備えず、たとえばエントロピー復号ユニット204から、符号化のために使用されるフィルタパラメータを(明示的または暗黙的に)受信または取得するので、実際のループフィルタに関して)機能においてループフィルタ120と同一であってもよく、復号ピクチャバッファ230は、機能において復号ピクチャバッファ130と同一であってもよい。
【手続補正58】
【補正対象書類名】明細書
【補正対象項目名】0198
【補正方法】変更
【補正の内容】
【0198】
予測ユニット260は、インター予測ユニット244およびインター予測ユニット254を備えてもよく、インター予測ユニット144は、機能においてインター予測ユニット244と同一であってもよく、インター予測ユニット154は、機能においてイントラ予測ユニット254と同一であってもよい。予測ユニット260およびモード選択ユニット262は通常、ブロック予測を実行し、ならびに/または、符号化されたデータ171だけから(元の画像101についてのさらなる情報なしで)予測されたブロック265を取得し、予測パラメータ143もしくは153を、および/もしくは、選択された予測モードについての情報を、たとえばエントロピー復号ユニット204から、(明示的にまたは暗黙的に)受信もしくは取得するように構成される。
【手続補正59】
【補正対象書類名】明細書
【補正対象項目名】0200
【補正方法】変更
【補正の内容】
【0200】
本発明の実施形態は、主にビデオコーディングに基づいて説明されたが、エンコーダ100およびデコーダ200(およびそれに対応してシステム300)の実施形態は、静止ピクチャの処理またはコーディングのためにも、すなわち、ビデオコーディングにおけるようないずれの先行するまたは連続するピクチャとも無関係な個々のピクチャの処理またはコーディングのためにも構成され得ることに留意されたい。一般に、ピクチャ処理コーディングが単一のピクチャ101に限定される場合、インター推定142、インター予測144、244のみが利用可能ではない。ビデオエンコーダ100およびビデオデコーダ200のすべてではないが大半の他の機能(ツールまたは技術とも呼ばれる)は、静止ピクチャのために等しく使用され得、たとえば、分割、変換(スケーリング)、量子化、逆量子化、逆変換、イントラ推定、イントラ予測、および/またはループフィルタリング、ならびにエントロピーコーディングおよびエントロピー復号である。
【手続補正60】
【補正対象書類名】明細書
【補正対象項目名】0207
【補正方法】変更
【補正の内容】
【0207】
今では、より大きいブロック(たとえば、より大きいルマブロックまたはより大きいクロマブロック)に属するブロッキングアーティファクトを除去するために、長タップデブロッキングフィルタが使用されている。より大きいブロック(変換単位(TU)、予測単位(PU)、コーディングブロック(CB)など)に対しては特に、デブロッキングフィルタリング(ルマおよびクロマデブロッキングなど)は、水平CTB(またはCTU)境界における行バッファ要件が考慮されなければならない間、たとえば、水平CTB(またはCTU)境界における長タップデブロッキングフィルタに対する行バッファ要件が考慮されなければならない間は、困難であり得る。
【手続補正61】
【補正対象書類名】明細書
【補正対象項目名】0240
【補正方法】変更
【補正の内容】
【0240】
図6を参照すると、本開示のある態様による、デブロッキングフィルタ装置が提供される。デブロッキングフィルタ装置は、画像エンコーダおよび/または画像デコーダにおいて使用され得る。デブロッキングフィルタ装置は、
ブロック間のエッジを決定するように構成される、エッジ位置特定ユニット603であって、ブロック間のエッジは、第1のコーディングブロックPと第2のコーディングブロックQとの間の水平ブロックエッジ(たとえば、CUエッジまたはCU境界)を備え、水平ブロックエッジはコーディングツリーブロック(CTB)境界と重なり、第1のコーディングブロックPはCTB境界の上のブロックであり、第2のコーディングブロックQはCTB境界の下の別のブロックである、エッジ位置特定ユニット603と、
第1のフィルタ(すなわち、長タップフィルタまたは非対称フィルタまたは非対称タップフィルタまたはHEVCデブロッキングフィルタ)を、
- 第1のフィルタ決定値としての、水平ブロックエッジに隣接する第1のコーディングブロックの最大でDA個のサンプル値、および
- 第2のフィルタ決定値としての、水平ブロックエッジに隣接する第2のコーディングブロックの最大でDB個のサンプル値
に基づいて適用することによって、第1のコーディングブロックPと第2のコーディングブロックQとの間の水平ブロックエッジがフィルタリングされるべきであるかどうかを決定するように構成され、DA≠DBまたはDA<DBであり、DAが行バッファサイズに等しい、デブロッキング決定ユニット604と、
第1のコーディングブロックPと第2のコーディングブロックQとの間の水平ブロックエッジが、第1のフィルタを適用することによってフィルタリングされるべきであると決定されるとき、第1のコーディングブロックPと第2のコーディングブロックQとの間の水平ブロックエッジの近くのサンプルの値に第1のフィルタ(すなわち、長タップフィルタまたは非対称フィルタまたは非対称タップフィルタまたはHEVCデブロッキングフィルタ)を適用するように構成される、デブロッキングフィルタリングユニット606とを備える。
【手続補正62】
【補正対象書類名】明細書
【補正対象項目名】0257
【補正方法】変更
【補正の内容】
【0257】
いくつかの実施形態では、第1のコーディングブロックPのサンプルpiのフィルタ係数は、第1のコーディングブロックPに属し行バッファに記憶されることが許容される最も外側のサンプルであるサンプルpiが、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するためのパディングされた値として使用されるような方法で決定される。第1のコーディングブロックPのサンプルpiが、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用されることに留意されたい。
【手続補正63】
【補正対象書類名】明細書
【補正対象項目名】0263
【補正方法】変更
【補正の内容】
【0263】
上側コーディングブロック(P)から、最大で6個のサンプルを使用することができ、最大で5個のサンプルを修正することができ、一方で下側ブロック(q)に対して、最大で7個のサンプルを修正することができ、最大で8個のサンプルを使用することができる。
【手続補正64】
【補正対象書類名】明細書
【補正対象項目名】0286
【補正方法】変更
【補正の内容】
【0286】
起こり得る「大きいブロック」のブロッキングアーティファクトは、水平クロマCTU境界において発生し得るので、本開示は、上側ブロックからのMAサンプルを修正する長タップ非対称フィルタを利用してもよいが、それでも、ブロッキングアーティファクトをより効果的に除去するために、下側ブロックから最大でMB個のサンプルを修正することができる。
【手続補正65】
【補正対象書類名】明細書
【補正対象項目名】0299
【補正方法】変更
【補正の内容】
【0299】
したがって、本開示は、(ルマデブロッキングと同様に)クロマデブロッキングのためにも非対称フィルタを使用することができ、これは、上側ブロックからの1サンプルを修正するが、
図18に示されるように下側ブロックからの最大で3サンプルを修正することができる。より多くのサンプルが修正されるので、フィルタは、エッジの両側で1サンプルしか修正しないノーマルクロマフィルタを使用するときと比較して、ブロッキングアーティファクトをより効率的に除去できるとされている。本開示は、水平クロマCTU境界におけるより大きいブロックに対する主観品質を改善することも可能にする。
【手続補正66】
【補正対象書類名】明細書
【補正対象項目名】0312
【補正方法】変更
【補正の内容】
【0312】
図10は、本開示において説明される技法による、例示的なデブロッキング方法を示すブロック図である(たとえば
図7、
図8、ならびに
図16(=16Aおよび16B)、
図17、および
図18に基づいて、さらなる詳細が以下で説明される)。ここで、ブロックエッジは、第1のコーディングブロックと第2のコーディングブロックとの間の水平ブロックエッジ(たとえば、CUエッジまたはCU境界)を備え、水平ブロックエッジは、コーディングツリーブロック(CTB)境界と重なり、第1のコーディングブロックPはCTB境界の上のブロックであり、第2のコーディングブロックQはCTB境界の下のブロックであり、第1のコーディングブロックは、水平ブロックエッジに対して垂直な垂直方向にブロックサイズSAを有し、第2のコーディングブロックは、水平ブロックエッジに対して垂直な垂直方向にブロックサイズSBを有する。
【手続補正67】
【補正対象書類名】明細書
【補正対象項目名】0330
【補正方法】変更
【補正の内容】
【0330】
実施形態のさらなる可能な実装形態では、第1のコーディングブロックPのサンプルpiのフィルタ係数は、第1のコーディングブロックPに属し行バッファに記憶されることが許容される最も外側のサンプルであるサンプルpiが、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するパディングされた値として使用されるような方法で決定される。
【手続補正68】
【補正対象書類名】明細書
【補正対象項目名】0336
【補正方法】変更
【補正の内容】
【0336】
ステップ1101において、ブロック間のエッジを決定し、ブロック間のエッジは、第1のコーディングブロックPと第2のコーディングブロックQとの間の水平ブロックエッジ(たとえば、CUエッジまたはCU境界)を備え、水平ブロックエッジはコーディングツリーブロック(CTB)境界と重なり、第1のコーディングブロックPはCTB境界の上のブロックであり、第2のコーディングブロックQはCTB境界の下のブロックである。
【手続補正69】
【補正対象書類名】明細書
【補正対象項目名】0358
【補正方法】変更
【補正の内容】
【0358】
実施形態のさらなる可能な実装形態では、第1のコーディングブロックPのサンプルpiのフィルタ係数は、第1のコーディングブロックPに属し行バッファに記憶されることが許容される最も外側のサンプルであるサンプルpiが、第1のコーディングブロックPに属し行バッファの外側にある他のサンプルを置換するためのパディングされた値として使用されるような方法で決定される。
【手続補正70】
【補正対象書類名】明細書
【補正対象項目名】0399
【補正方法】変更
【補正の内容】
【0399】
メモリ1460は、1つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを備え、プログラムが実行のために選択されるとそのようなプログラムを記憶するために、かつ、プログラム実行の間に読み取られる命令およびデータを記憶するために、オーバーフローデータストレージデバイスとして使用され得る。メモリ1460は、揮発性および/または不揮発性であってもよく、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(TCAM)、および/またはスタティックランダムアクセスメモリ(SRAM)であってもよい。コンピューティングデバイス1400はまた、エンドユーザと対話するための入力/出力(I/O)デバイスを含み得る。たとえば、コンピューティングデバイス1400は、視覚的な出力のためにモニタなどのディスプレイを、オーディオ出力のためにスピーカーを、およびユーザ入力のためにキーボード/マウス/トラックボールなどを含み得る。
【手続補正71】
【補正対象書類名】明細書
【補正対象項目名】0427
【補正方法】変更
【補正の内容】
【0427】
逆多重化処理を介して、ビデオエレメンタリストリーム(ES)、オーディオES、および任意選択で字幕が生成される。上で言及された実施形態において説明されるようなビデオデコーダ30を含むビデオデコーダ3206は、上で言及された実施形態において示されるような復号方法によってビデオESを復号してビデオフレームを生成し、このデータを同期ユニット3212に与える。オーディオデコーダ3208は、オーディオESを復号してオーディオフレームを生成し、このデータを同期ユニット3212に与える。代替的に、ビデオフレームは、同期ユニット3212に与える前に、バッファ(
図20には示されていない)に記憶してもよい。同様に、オーディオフレームは、同期ユニット3212に供給する前に、バッファ(
図20には示されていない)に記憶してもよい。
【手続補正72】
【補正対象書類名】明細書
【補正対象項目名】0433
【補正方法】変更
【補正の内容】
【0433】
実施形態および説明が「ネットワーク」という用語に言及するときは常に、「ネットワーク」という用語は、別様に明確に述べられない限り、であるものとして理解されるものとし、かつ/またはそれらを備えるものとする。
【手続補正73】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
画像の第1のクロマブロックと第2のクロマブロックとの間のクロマ水平ブロックエッジをデブロッキングするためのデバイスであって、前記第1のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向にSA個のサンプルのブロックサイズを有し、前記第2のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向にSB個のサンプルのブロックサイズを有し、前記画像は、コーディングツリーユニット(CTU)行列に配列された複数のCTUを含み、
前記デバイスは、
前記クロマ水平ブロックエッジが前記複数のCTUのうちの第1のCTUと第2のCTUの間の水平クロマコーディングツリーユニットユニット(CTU)境界と重なるかどうかを決定し、
前記クロマ水平ブロックエッジが前記水平クロマCTU境界と重なると決定したことに応じて、
前記第1のクロマブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用し、前記最大でDA個のサンプルは、前記クロマ水平ブロックエッジに対して垂直な前記第1のクロマブロックの列に配置され、前記最大でDA個のサンプルは、前記クロマ水平ブロックエッジの近傍にあり、
前記第2のクロマブロックの最大でDB個のサンプルの値を第2のフィルタ決定値として使用し、前記最大でDB個のサンプルは、前記クロマ水平ブロックエッジに対して垂直な前記第2のクロマブロックの列に配置され、前記最大でDB個のサンプルは、前記クロマ水平ブロックエッジの近傍にあり、
前記第1のクロマブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正し、前記最大でMA個のサンプルは、前記クロマ水平ブロックエッジに対して垂直な前記第1のクロマブロックの列に配置され、前記最大でMA個のサンプルは、前記クロマ水平ブロックエッジの近傍にあり、
前記第2のクロマブロックの最大でMB個のサンプルの値を第2のフィルタ出力値として修正し、前記最大でMB個のサンプルは、前記クロマ水平ブロックエッジに対して垂直な前記第2のクロマブロックの列に配置され、前記最大でMB個のサンプルは、前記クロマ水平ブロックエッジの近傍にあり、
前記第1のクロマブロックは前記水平クロマCTU境界の上にあり、前記第2のクロマブロックは前記水平クロマCTU境界の下にあり、
SA=SBであり、MA<MBであり、DA<DBであり、SA>DA>MAであり、SB>DB>MBであり、
SAおよびSBは、8以上であり、MB=3であり、MA=1である、
ように構成されたデブロッキングフィルタを含む、
デバイス。
【請求項2】
SAおよびSBは、8以上であり、DB=4であり、DA=2である、
請求項1に記載のデバイス。
【請求項3】
前記CTU行列は、複数のCTU行および複数のCTU列を含み、前記複数のCTUは、前記CTU行列の左上CTUから始まり右下CTUで終わるよう前記デバイスによって処理され、各CTU行は、一つずつ順次に処理され、各CTU行の中で、前記複数のCTUはその行の最も左のCTUからその行の最も右のCTUへ順次に処理される、
請求項1に記載のデバイス。
【請求項4】
前記第1のクロマブロックは、前記第1のCTUの最も下のクロマブロックであり、前記第1のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向に前記SA個のサンプル、前記クロマ水平ブロックエッジに対して平行方向にN個のサンプルの前記ブロックサイズを有する、
請求項1に記載のデバイス。
【請求項5】
前記第2のクロマブロックは、前記第2のCTUの最も上のクロマブロックであり、前記第2のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向に前記SB個のサンプル、前記クロマ水平ブロックエッジに対して平行方向にN個のサンプルの前記ブロックサイズを有する、
請求項1に記載のデバイス。
【請求項6】
前記CTU行列の前記第2のCTUが配置されているCTU行は、前記第1のCTUが配置されているCTU行に連続して続く、
請求項1に記載のデバイス。
【請求項7】
前記CTU行列は、複数のCTU行および複数のCTU列を含み、前記複数のCTUは、前記CTU行列の左上CTUから始まり右下CTUで終わるよう前記デバイスによって処理され、各CTU行は、一つずつ順次に処理され、各CTU行の中で、前記CTUはその行の最も左のCTUからその行の最も右のCTUへ順次に処理され、
前記第1のクロマブロックは、前記複数のCTUのうちの前記第1のCTUの最も下のクロマブロックであり、前記第1のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向に前記SA個のサンプル、前記クロマ水平ブロックエッジに対して平行方向にN個のサンプルの前記ブロックサイズを有し、
前記第2のクロマブロックは、前記複数のCTUのうちの前記第2のCTUの最も上のクロマブロックであり、前記第2のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向に前記SB個のサンプル、前記クロマ水平ブロックエッジに対して平行方向にN個のサンプルの前記ブロックサイズを有し、
前記CTU行列の前記第2のCTUが配置されているCTU行は、前記第1のCTUが配置されているCTU行に連続して続く行である、
請求項1に記載のデバイス。
【請求項8】
画像の第1のクロマブロックと第2のクロマブロックとの間のクロマ水平ブロックエッジをデブロッキングするためのデブロッキング方法であって、前記第1のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向にSA個のサンプルのブロックサイズを有し、前記第2のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向にSB個のサンプルのブロックサイズを有し、前記画像は、コーディングツリーユニット(CTU)行列に配列された複数のCTUを含み、
前記方法は、
前記クロマ水平ブロックエッジが前記複数のCTUのうちの第1のCTUと第2のCTUの間の水平クロマコーディングツリーユニットユニット(CTU)境界と重なるかどうかを決定するステップと、
前記クロマ水平ブロックエッジが前記水平クロマCTU境界と重なると決定したことに応じて、
前記第1のクロマブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するステップであって、前記最大でDA個のサンプルは、前記クロマ水平ブロックエッジに対して垂直な前記第1のクロマブロックの列に配置され、前記最大でDA個のサンプルは、前記クロマ水平ブロックエッジの近傍にある、ステップと、
前記第2のクロマブロックの最大でDB個のサンプルの値を第2のフィルタ決定値として使用するステップであって、前記最大でDB個のサンプルは、前記クロマ水平ブロックエッジに対して垂直な前記第2のクロマブロックの列に配置され、前記最大でDB個のサンプルは、前記クロマ水平ブロックエッジの近傍にある、ステップと、
前記第1のクロマブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正するステップであって、前記最大でMA個のサンプルは、前記クロマ水平ブロックエッジに対して垂直な前記第1のクロマブロックの列に配置され、前記最大でMA個のサンプルは、前記クロマ水平ブロックエッジの近傍にある、ステップと、
前記第2のクロマブロックの最大でMB個のサンプルの値を第2のフィルタ出力値として修正するステップであって、前記最大でMB個のサンプルは、前記クロマ水平ブロックエッジに対して垂直な前記第2のクロマブロックの列に配置され、前記最大でMB個のサンプルは、前記クロマ水平ブロックエッジの近傍にある、ステップと、を含み、
前記第1のクロマブロックは前記水平クロマCTU境界の上にあり、前記第2のクロマブロックは前記水平クロマCTU境界の下にあり、
SA=SBであり、MA<MBであり、DA<DBであり、SA>DA>MAであり、SB>DB>MBであり、
SAおよびSBは、8以上であり、MB=3であり、MA=1である、
方法。
【請求項9】
SAおよびSBは、8以上であり、DB=4であり、DA=2である、
請求項8に記載の方法。
【請求項10】
前記CTU行列は、複数のCTU行および複数のCTU列を含み、前記複数のCTUは、前記CTU行列の左上CTUから始まり右下CTUで終わるよう処理され、各CTU行は、一つずつ順次に処理され、各CTU行の中で、前記複数のCTUはその行の最も左のCTUからその行の最も右のCTUへ順次に処理される、
請求項8に記載の方法。
【請求項11】
前記第1のクロマブロックは、前記第1のCTUの最も下のクロマブロックであり、前記第1のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向に前記SA個のサンプル、前記クロマ水平ブロックエッジに対して平行方向にN個のサンプルの前記ブロックサイズを有する、
請求項8に記載の方法。
【請求項12】
前記第2のクロマブロックは、前記第2のCTUの最も上のクロマブロックであり、前記第2のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向に前記SB個のサンプル、前記クロマ水平ブロックエッジに対して平行方向にN個のサンプルの前記ブロックサイズを有する、
請求項8に記載の方法。
【請求項13】
前記CTU行列の前記第2のCTUが配置されているCTU行は、前記第1のCTUが配置されているCTU行に連続して続く、
請求項8に記載の方法。
【請求項14】
前記CTU行列は、複数のCTU行および複数のCTU列を含み、前記複数のCTUは、前記CTU行列の左上CTUから始まり右下CTUで終わるよう前記デバイスによって処理され、各CTU行は、一つずつ順次に処理され、各CTU行の中で、前記CTUはその行の最も左のCTUからその行の最も右のCTUへ順次に処理され、
前記第1のクロマブロックは、前記複数のCTUのうちの前記第1のCTUの最も下のクロマブロックであり、前記第1のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向に前記SA個のサンプル、前記クロマ水平ブロックエッジに対して平行方向にN個のサンプルの前記ブロックサイズを有し、
前記第2のクロマブロックは、前記複数のCTUのうちの前記第2のCTUの最も上のクロマブロックであり、前記第2のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向に前記SB個のサンプル、前記クロマ水平ブロックエッジに対して平行方向にN個のサンプルの前記ブロックサイズを有し、
前記CTU行列の前記第2のCTUが配置されているCTU行は、前記第1のCTUが配置されているCTU行に連続して続く行である、
請求項8に記載の方法。
【請求項15】
画像の第1のクロマブロックと第2のクロマブロックとの間のクロマ水平ブロックエッジをデブロッキングするためのコンピュータ命令を記憶する非一時的コンピュータ可読媒体であって、前記第1のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向にSA個のサンプルのブロックサイズを有し、前記第2のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向にSB個のサンプルのブロックサイズを有し、前記画像は、コーディングツリーユニット(CTU)行列に配列された複数のCTUを含み、前記命令は、前記命令が実行されると、少なくとも1つのプロセッサを、以下のステップ、すなわち、
前記クロマ水平ブロックエッジが前記複数のCTUのうちの第1のCTUと第2のCTUの間の水平クロマコーディングツリーユニットユニット(CTU)境界と重なるかどうかを決定し、
前記クロマ水平ブロックエッジが前記水平クロマCTU境界と重なると決定したことに応じて、
前記第1のクロマブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用し、前記最大でDA個のサンプルは、前記クロマ水平ブロックエッジに対して垂直な前記第1のクロマブロックの列に配置され、前記最大でDA個のサンプルは、前記クロマ水平ブロックエッジの近傍にあり、
前記第2のクロマブロックの最大でDB個のサンプルの値を第2のフィルタ決定値として使用し、前記最大でDB個のサンプルは、前記クロマ水平ブロックエッジに対して垂直な前記第2のクロマブロックの列に配置され、前記最大でDB個のサンプルは、前記クロマ水平ブロックエッジの近傍にあり、
前記第1のクロマブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正し、前記最大でMA個のサンプルは、前記クロマ水平ブロックエッジに対して垂直な前記第1のクロマブロックの列に配置され、前記最大でMA個のサンプルは、前記クロマ水平ブロックエッジの近傍にあり、
前記第2のクロマブロックの最大でMB個のサンプルの値を第2のフィルタ出力値として修正し、前記最大でMB個のサンプルは、前記クロマ水平ブロックエッジに対して垂直な前記第2のクロマブロックの列に配置され、前記最大でMB個のサンプルは、前記クロマ水平ブロックエッジの近傍にあり、
前記第1のクロマブロックは前記水平クロマCTU境界の上にあり、前記第2のクロマブロックは前記水平クロマCTU境界の下にあり、
SA=SBであり、MA<MBであり、DA<DBであり、SA>DA>MAであり、SB>DB>MBであり、
SAおよびSBは、8以上であり、MB=3であり、MA=1である、
ことを行うよう構成する、
非一時的コンピュータ可読媒体。
【請求項16】
SAおよびSBは、8以上であり、DB=4であり、DA=2である、
請求項15に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記CTU行列は、複数のCTU行および複数のCTU列を含み、前記複数のCTUは、前記CTU行列の左上CTUから始まり右下CTUで終わるよう前記デバイスによって処理され、各CTU行は、一つずつ順次に処理され、各CTU行の中で、前記複数のCTUはその行の最も左のCTUからその行の最も右のCTUへ順次に処理され、
前記第1のクロマブロックは、前記複数のCTUのうちの前記第1のCTUの最も下のクロマブロックであり、前記第1のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向に前記SA個のサンプル、前記クロマ水平ブロックエッジに対して平行方向にN個のサンプルのブロックサイズを有し、
前記第2のクロマブロックは、前記複数のCTUのうちの前記第2のCTUの最も上のクロマブロックであり、前記第2のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向に前記SB個のサンプル、前記クロマ水平ブロックエッジに対して平行方向にN個のサンプルのブロックサイズを有し、
前記CTU行列の前記第2のCTUが配置されているCTU行は、前記第1のCTUが配置されているCTU行に連続して続く行である、
請求項15に記載の非一時的コンピュータ可読媒体。
【請求項18】
画像の第1のクロマブロックと第2のクロマブロックとの間のクロマ水平ブロックエッジをデブロッキングするためのデブロッキングを含む画像符号化によって生成されるビットストリームを含む非一時的コンピュータ可読媒体であって、前記第1のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向にSA個のサンプルのブロックサイズを有し、前記第2のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向にSB個のサンプルのブロックサイズを有し、前記画像は、コーディングツリーユニット(CTU)行列に配列された複数のCTUを含み、前記デブロッキングは、
前記クロマ水平ブロックエッジが前記複数のCTUのうちの前記第1のCTUと前記第2のCTUの間の水平クロマコーディングツリーユニットユニット(CTU)境界と重なるかどうかを決定するステップと、
前記クロマ水平ブロックエッジが前記水平クロマCTU境界と重なると決定したことに応じて、
前記第1のクロマブロックの最大でDA個のサンプルの値を第1のフィルタ決定値として使用するステップであって、前記最大でDA個のサンプルは、前記クロマ水平ブロックエッジに対して垂直な前記第1のクロマブロックの列に配置され、前記最大でDA個のサンプルは、前記クロマ水平ブロックエッジの近傍にある、ステップと、
前記第2のクロマブロックの最大でDB個のサンプルの値を第2のフィルタ決定値として使用するステップであって、前記最大でDB個のサンプルは、前記クロマ水平ブロックエッジに対して垂直な前記第2のクロマブロックの列に配置され、前記最大でDB個のサンプルは、前記クロマ水平ブロックエッジの近傍にある、ステップと、
前記第1のクロマブロックの最大でMA個のサンプルの値を第1のフィルタ出力値として修正するステップであって、前記最大でMA個のサンプルは、前記クロマ水平ブロックエッジに対して垂直な前記第1のクロマブロックの前記列に配置され、前記最大でMA個のサンプルは、前記クロマ水平ブロックエッジの近傍にある、ステップと、
前記第2のクロマブロックの最大でMB個のサンプルの値を第2のフィルタ出力値として修正するステップであって、前記最大でMB個のサンプルは、前記クロマ水平ブロックエッジに対して垂直な前記第2のクロマブロックの前記列に配置され、前記最大でMB個のサンプルは、前記クロマ水平ブロックエッジの近傍にある、ステップとを含み、
前記第1のクロマブロックは前記水平クロマCTU境界の上にあり、前記第2のクロマブロックは前記水平クロマCTU境界の下にあり、
SA=SBであり、MA<MBであり、DA<DBであり、SA>DA>MAであり、SB>DB>MBであり、
SAおよびSBは、8以上であり、MB=3であり、および、MA=1であり、ならびに、DB=4であり、および、DA=2である、
非一時的コンピュータ可読媒体。
【請求項19】
SAおよびSBは、8以上であり、DB=4であり、DA=2である、
請求項18に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記CTU行列は、複数のCTU行および複数のCTU列を含み、前記複数のCTUは、前記CTU行列の左上CTUから始まり右下CTUで終わるよう前記デバイスによって処理され、各CTU行は、一つずつ順次に処理され、各CTU行の中で、前記複数のCTUはその行の最も左のCTUからその行の最も右のCTUへ順次に処理され、
前記第1のクロマブロックは、前記複数のCTUのうちの前記第1のCTUの最も下のクロマブロックであり、前記第1のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向に前記SA個のサンプル、前記クロマ水平ブロックエッジに対して平行方向にN個のサンプルの前記ブロックサイズを有し、
前記第2のクロマブロックは、前記複数のCTUのうちの前記第2のCTUの最も上のクロマブロックであり、前記第2のクロマブロックは、前記クロマ水平ブロックエッジに対して垂直方向に前記SB個のサンプル、前記クロマ水平ブロックエッジに対して平行方向にN個のサンプルの前記ブロックサイズを有し、
前記CTU行列の前記第2のCTUが配置されているCTU行は、前記第1のCTUが配置されているCTU行に連続して続く行である、
請求項18に記載の非一時的コンピュータ可読媒体。
【外国語明細書】