(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-19
(45)【発行日】2024-08-27
(54)【発明の名称】符号化復号方法、装置及びそのデバイス
(51)【国際特許分類】
H04N 19/82 20140101AFI20240820BHJP
H04N 19/117 20140101ALI20240820BHJP
H04N 19/134 20140101ALI20240820BHJP
H04N 19/182 20140101ALI20240820BHJP
H04N 19/46 20140101ALI20240820BHJP
【FI】
H04N19/82
H04N19/117
H04N19/134
H04N19/182
H04N19/46
(21)【出願番号】P 2023551246
(86)(22)【出願日】2022-02-22
(86)【国際出願番号】 CN2022077298
(87)【国際公開番号】W WO2022179504
(87)【国際公開日】2022-09-01
【審査請求日】2023-08-23
(31)【優先権主張番号】202110204154.2
(32)【優先日】2021-02-23
(33)【優先権主張国・地域又は機関】CN
【早期審査対象出願】
(73)【特許権者】
【識別番号】508219313
【氏名又は名称】杭州海康威視数字技術股▲フン▼有限公司
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】▲陳▼ 方▲棟▼
(72)【発明者】
【氏名】曹 小▲強▼
(72)【発明者】
【氏名】▲孫▼ ▲ユ▼程
【審査官】田中 純一
(56)【参考文献】
【文献】米国特許出願公開第2018/0332309(US,A1)
【文献】米国特許出願公開第2012/0328029(US,A1)
【文献】国際公開第2014/196613(WO,A1)
【文献】特開2014-239338(JP,A)
【文献】米国特許出願公開第2006/0110062(US,A1)
【文献】特開2015-104061(JP,A)
【文献】特表2017-513326(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、前記現在画素点の元画素値及び前記現在画素点の周辺画素点の元画素値に基づいて前記現在画素点の勾配値を決定するステップと、
前記現在画素点の勾配値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定するステップと、を含み、
ここで、前記現在画素点の勾配値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定するステップは、前記現在画素点の勾配値、前記現在画素点の元画素値、第1の調整閾値、第2の調整閾値、第1の調整オフセット値及び第2の調整オフセット値に基づいて、前記現在画素点の調整画素値を決定するステップを含み、
ここで、前記現在画素点の勾配値が第1の調整閾値より大きい場合、前記現在画素点の元画素値及び第1の調整オフセット値に基づいて前記現在画素点の調整画素値を決定し、
前記現在画素点の勾配値が第2の調整閾値より小さい場合、前記現在画素点の元画素値及び第2の調整オフセット値に基づいて前記現在画素点の調整画素値を決定する、
ことを特徴とする復号方法。
【請求項2】
現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、前記方法は、さらに、
前記現在ブロックの隣接ブロックから前記現在画素点に対応する参照画素点を決定し、前記参照画素点の元画素値及び前記参照画素点の周辺画素点の元画素値に基づいて前記参照画素点の勾配値を決定するステップと、
前記参照画素点の勾配値及び前記参照画素点の元画素値に基づいて、前記参照画素点の調整画素値を決定するステップと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記参照画素点の勾配値及び前記参照画素点の元画素値に基づいて、前記参照画素点の調整画素値を決定するステップは、
前記参照画素点の勾配値、前記参照画素点の元画素値、第3の調整閾値、第4の調整閾値、第3の調整オフセット値及び第4の調整オフセット値に基づいて、前記参照画素点の調整画素値を決定するステップを含む、
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記参照画素点の勾配値、前記参照画素点の元画素値、第3の調整閾値、第4の調整閾値、第3の調整オフセット値及び第4の調整オフセット値に基づいて、前記参照画素点の調整画素値を決定するステップは、
前記参照画素点の勾配値が第3の調整閾値より大きい場合、前記参照画素点の元画素値及び第3の調整オフセット値に基づいて前記参照画素点の調整画素値を決定し、前記参照画素点の勾配値が第4の調整閾値より小さい場合、前記参照画素点の元画素値及び第4の調整オフセット値に基づいて前記参照画素点の調整画素値を決定するステップを含む、
ことを特徴とする請求項
3に記載の方法。
【請求項5】
ハイレベルシンタックスから前記現在ブロックに対応する第1の調整閾値、第1の調整オフセット値、第2の調整オフセット値、第3の調整閾値、第3の調整オフセット値及び第4の調整オフセット値を解析するステップをさらに含む、
ことを特徴とする請求項1~4のいずれか一項に記載の方法。
【請求項6】
現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと決定する前に、さらに、
前記現在ブロックに対応する強調調整モードイネーブルフラグビットは現在ブロックが強調調整モードをイネーブルすることを許可すると、前記現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと決定するステップを含む、
ことを特徴とする請求項1~4のいずれか一項に記載の方法。
【請求項7】
ハイレベルシンタックスから前記現在ブロックに対応する強調調整モードイネーブルフラグビットを解析するステップをさらに含む、
ことを特徴とする請求項6に記載の方法。
【請求項8】
前記現在ブロックにおける現在画素点が通常のフィルタリングモードのイネーブル条件を満たすと、前記現在画素点の元画素値に対してデブロッキングフィルタリングを行い、前記現在画素点のフィルタリング画素値を得るステップと、
前記現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすと、前記現在画素点のフィルタリング画素値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定するステップと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項9】
前記現在画素点のフィルタリング画素値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定するステップは、
前記現在画素点のフィルタリング画素値、前記現在画素点の元画素値、第1のフィルタリング閾値、第2のフィルタリング閾値、第1のフィルタリングオフセット値及び第2のフィルタリングオフセット値に基づいて、前記現在画素点の調整画素値を決定するステップを含み、
ここで、第1のフィルタリング閾値と第2のフィルタリング閾値は互いに反数である、
ことを特徴とする請求項8に記載の方法。
【請求項10】
前記現在ブロックにおける現在画素点が通常のフィルタリングモードのイネーブル条件を満たすと、さらに、
前記現在ブロックの隣接ブロックから前記現在画素点に対応する参照画素点を決定するステップと、
前記参照画素点の元画素値に対してデブロッキングフィルタリングを行い、前記参照画素点のフィルタリング画素値を得るステップと、を含み、
前記現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすと、さらに、
前記参照画素点のフィルタリング画素値及び前記参照画素点の元画素値に基づいて、前記参照画素点の調整画素値を決定するステップと、を含む、
ことを特徴とする請求項8に記載の方法。
【請求項11】
前記参照画素点のフィルタリング画素値及び前記参照画素点の元画素値に基づいて、前記参照画素点の調整画素値を決定するステップは、
前記参照画素点のフィルタリング画素値、前記参照画素点の元画素値、第3のフィルタリング閾値、第4のフィルタリング閾値、第3のフィルタリングオフセット値及び第4のフィルタリングオフセット値に基づいて、前記参照画素点の調整画素値を決定するステップを含み、
ここで、第3のフィルタリング閾値と第4のフィルタリング閾値は互いに反数である、
ことを特徴とする請求項10に記載の方法。
【請求項12】
ハイレベルシンタックスから前記現在ブロックに対応する第1のフィルタリング閾値、第1のフィルタリングオフセット値、第2のフィルタリングオフセット値、第4のフィルタリング閾値、第3のフィルタリングオフセット値及び第4のフィルタリングオフセット値を解析するステップをさらに含む、
ことを特徴とする請求項9に記載の方法。
【請求項13】
前記現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすと決定することは、
前記現在ブロックにおける現在画素点に対応するフィルタリング対象境界の境界強度が強調フィルタリングモードのイネーブル条件を満たし、且つ前記現在画素点のフィルタリング画素値と前記現在画素点の元画素値との差分の絶対値が所定の閾値より大きければ、前記現在画素点が強調フィルタリングモードのイネーブル条件を満たすと決定することを含む、
ことを特徴とする請求項8に記載の方法。
【請求項14】
前記現在ブロックにおける現在画素点に対応するフィルタリング対象境界の境界強度が強調フィルタリングモードのイネーブル条件を満たすと決定することは、
現在画素点に対応するフィルタリング対象境界の境界強度が所定の第2の数値であれば、フィルタリング対象境界の境界強度が強調フィルタリングモードのイネーブル条件を満たすと決定することを含む、
ことを特徴とする請求項13に記載の方法。
【請求項15】
前記現在ブロックに対応する強調フィルタリングモードイネーブルフラグビットは前記現在ブロックが強調フィルタリングモードをイネーブルすることを許可すると、前記現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすか否かを決定するステップをさらに含む、
ことを特徴とする請求項8に記載の方法。
【請求項16】
前記現在ブロックにおける現在画素点の画素値は輝度成分又は色度成分である、
ことを特徴とする請求項1~4のいずれか一項に記載の方法。
【請求項17】
現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、前記現在画素点の元画素値及び前記現在画素点の周辺画素点の元画素値に基づいて前記現在画素点の勾配値を決定するステップと、
前記現在画素点の勾配値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定するステップと、を含み、
ここで、前記現在画素点の勾配値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定するステップは、前記現在画素点の勾配値、前記現在画素点の元画素値、第1の調整閾値、第2の調整閾値、第1の調整オフセット値及び第2の調整オフセット値に基づいて、前記現在画素点の調整画素値を決定することを含み、
ここで、前記現在画素点の勾配値が第1の調整閾値より大きい場合、前記現在画素点の元画素値及び第1の調整オフセット値に基づいて前記現在画素点の調整画素値を決定し、
前記現在画素点の勾配値が第2の調整閾値より小さい場合、前記現在画素点の元画素値及び第2の調整オフセット値に基づいて前記現在画素点の調整画素値を決定する、
ことを特徴とする符号化方法。
【請求項18】
ビデオデータを記憶するように構成されるメモリと、
請求項1に記載の方法を実施するように構成される復号器と、を含む、
ことを特徴とする復号装置。
【請求項19】
ビデオデータを記憶するように構成されるメモリと、
請求項17に記載の方法を実施するように構成される符号化器と、を含む、
ことを特徴とする符号化装置。
【請求項20】
プロセッサ及び機械可読記憶媒体を含む復号デバイスであって、前記機械可読記憶媒体には、前記プロセッサによって実行可能な機械実行可能な命令が記憶され、
前記プロセッサは、機械実行可能な命令を実行して、請求項1に記載の方法を実施するために用いられる、
ことを特徴とする復号デバイス。
【請求項21】
プロセッサ及び機械可読記憶媒体を含む符号化デバイスであって、前記機械可読記憶媒体には、前記プロセッサによって実行可能な機械実行可能な命令が記憶され、
前記プロセッサは、機械実行可能な命令を実行して、請求項17に記載の方法を実施するために用いられる、
ことを特徴とする符号化デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は符号化復号技術分野に関し、特に符号化復号方法、装置及びそのデバイスに関する。
【背景技術】
【0002】
空間を節約するという目的を達成するために、ビデオ画像はいずれも符号化されてから伝送され、完全なビデオ符号化方法は予測、変換、量子化、エントロピー符号化、フィルタリングなどのプロセスを含み得る。そのうち、予測符号化はフレーム内符号化及びフレーム間符号化を含み得る。さらに、フレーム間符号化はビデオ時間領域の相関性を利用し、隣接する符号化済み画像の画素を用いて現在画素を予測して、ビデオ時間領域の冗長性を効果的に除去するという目的を達成する。フレーム内符号化は、ビデオ空間領域の相関性を利用し、現在フレームの画像の符号化済みブロックの画素を用いて現在画素を予測して、ビデオ空間領域の冗長性を除去するという目的を達成する。
【0003】
一般的なフィルタ技術は、DBF(DeBlocking Filter、デブロッキングフィルタ)技術、SAO(Sample Adaptive Offset、サンプル適応オフセット)技術、及びALF(Adaptive Loop Filter、適応ループフィルタ)技術を含む。DBF技術はブロック符号化によるブロック境界効果を除去するために用いられる。SAO技術は、サンプルの画素値及び周辺ブロックの勾配値に基づいて分類し、各カテゴリーの画素値に対して異なる補償値を加えることにより、再構成画像を元画像により近づけるものである。ALF技術はウィーナーフィルタにより、再構成画像をフィルタリングし、再構成画像を元画像により近づけるものである。
【0004】
しかし、DBF、SAO及びALFなどのフィルタ技術は、いずれも現在画素点の画素値に基づいて分類し、又は、現在画素点の画素値と周辺画素点の画素値との関係に基づいて分類し、続いて、異なるカテゴリーに基づいて異なるフィルタリング操作を行うため、オーバーフィルタリング現象が発生する可能性があり、すなわち、フィルタリング後の画素値がフィルタリング前の画素値より遥かに大きく又は遥かに小さく、さらに、元画素値より遥かに大きく又は遥かに小さく、フィルタリング効果が悪く、符号化性能が比較的低いなどの問題が存在する。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、符号化性能を向上させることができる符号化復号方法、装置及びそのデバイスを提供する。
【課題を解決するための手段】
【0006】
本発明は符号化復号方法を提供し、前記方法は、
現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、前記現在画素点の元画素値及び前記現在画素点の周辺画素点の元画素値に基づいて前記現在画素点の勾配値を決定するステップと、前記現在画素点の勾配値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定するステップと、を含む。
【0007】
本発明は復号装置を提供し、前記復号装置は、
ビデオデータを記憶するように構成されるメモリと、
現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、前記現在画素点の元画素値及び前記現在画素点の周辺画素点の元画素値に基づいて前記現在画素点の勾配値を決定し、前記現在画素点の勾配値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定することを実施するように構成される復号器と、を含む。
【0008】
本発明は符号化装置を提供し、前記符号化装置は、
ビデオデータを記憶するように構成されるメモリと、
現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、前記現在画素点の元画素値及び前記現在画素点の周辺画素点の元画素値に基づいて前記現在画素点の勾配値を決定し、前記現在画素点の勾配値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定することを実施するように構成される符号化器と、を含む。
【0009】
本発明は、プロセッサ及び機械可読記憶媒体を含む復号デバイスであって、前記機械可読記憶媒体には、前記プロセッサによって実行可能な機械実行可能な命令が記憶され、
前記プロセッサは、機械実行可能な命令を実行して、
現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、前記現在画素点の元画素値及び前記現在画素点の周辺画素点の元画素値に基づいて前記現在画素点の勾配値を決定するステップと、前記現在画素点の勾配値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定するステップとを実施するために用いられる、復号デバイスを提供する。
【0010】
本発明は、プロセッサ及び機械可読記憶媒体を含む符号化デバイスであって、前記機械可読記憶媒体には、前記プロセッサによって実行可能な機械実行可能な命令が記憶され、
前記プロセッサは、機械実行可能な命令を実行して、
現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、前記現在画素点の元画素値及び前記現在画素点の周辺画素点の元画素値に基づいて前記現在画素点の勾配値を決定するステップと、前記現在画素点の勾配値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定するステップとを実施するために用いられる、符号化デバイスを提供する。
【発明の効果】
【0011】
以上の技術的解決手段から分かるように、本発明の実施例において、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、現在画素点の勾配値及び現在画素点の元画素値に基づいて、現在画素点の調整画素値を決定することができ、すなわち、現在画素点の勾配値に基づいて現在画素点の元画素値を調整し、現在画素点の調整画素値を元画素により近づけ、それにより符号化性能を向上させる。例えば、DBF、SAO及びALFなどのフィルタリングプロセスにおいて、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、現在画素点の勾配値に基づいて現在画素点の元画素値を調整することにより、フィルタリング効果を向上させ、符号化性能を向上させることができる。
【図面の簡単な説明】
【0012】
【
図1】本発明の一実施形態における符号化復号フレームワークの模式図である。
【
図2A】本発明の一実施形態におけるブロック分割の模式図である。
【
図2B】本発明の一実施形態におけるブロック分割の模式図である。
【
図3】本発明の一実施形態におけるデブロッキングフィルタリングの模式図である。
【
図4】本発明の一実施形態における符号化復号方法のフローチャートである。
【
図5A】本発明の一実施形態における復号デバイスのハードウェア構成図である。
【
図5B】本発明の一実施形態における符号化デバイスのハードウェア構成図である。
【発明を実施するための形態】
【0013】
本発明の実施例で使用される用語は、特定の実施例を説明するためのものに過ぎず、本発明を限定するものではない。本発明の実施例及び特許請求の範囲で使用される単数形の「一種」、「前記」及び「当該」は、文脈において他の意味が明確に指示されない限り、複数形を含むことも意図している。また、本明細書で使用される用語の「及び/又は」は、1つ以上の関連する列挙項目のいずれか又はあらゆる可能な組み合わせを含むことを意味していることを理解されたい。さらに、本発明の実施例において、第1、第2、第3などの用語を用いて様々な情報を説明することがあるが、これらの情報はこれらの用語に限定されるものではないことを理解されたい。これらの用語は、同じ種類の情報同士を区別するためにのみ使用される。例えば、本発明の実施例の範囲から逸脱することなく、第1の情報を第2の情報と呼んでもよく、同様に、第2の情報を第1の情報と呼んでもよい。さらに、文脈に応じて、使用される用語の「…と」は、「…する時」、「…する場合」又は「決定することに応答し」と解釈されてもよい。
【0014】
以下、当業者が本発明の技術的解決手段をよりよく理解するように、技術用語について簡単に説明する。
【0015】
ビデオ符号化フレームワーク:
図1に示すように、ビデオ符号化フレームワークを用いて本発明の実施例の符号化側の処理フローを実現してもよく、ビデオ復号フレームワークの模式図は
図1と類似してもよく、ここでは重複する説明を省略し、ビデオ復号フレームワークを用いて本発明の実施例の復号側の処理フローを実現してもよい。ビデオ符号化フレームワーク及びビデオ復号化フレームワークにおいて、予測(例えば、フレーム内予測及びフレーム間予測など)、動き推定/動き補償、参照画像バッファ、ループ内フィルタ、再構成、変換、量子化、逆変換、逆量子化、エントロピー符号化器などのモジュールを含み得るが、これらに限定されない。符号化側では、これらのモジュールの間の協力により、符号化側の処理フローが実現され、復号化側では、これらのモジュールの間の協力により、復号化側の処理フローが実現される。
【0016】
ループフィルタは画像のブロック効果(block effect)又は画像効果が不良であるなどの問題を減少させるために用いられ、画像品質を改善することができ、DBF、SAO及びALFの3つのフィルタを含み得、DBFはデブロッキングフィルタリングであり、ブロック符号化によるブロック境界効果を除去するために用いられる。SAOはサンプル適応オフセットフィルタであり、サンプルの画素値及び周辺ブロックの勾配値に基づいて分類し、各カテゴリーの画素値に対して異なる補償値を加えることにより、再構成画像を元画像により近づけるものである。ALFは適応ループフィルタであり、すなわち、ウィーナーフィルタにより、再構成画像をフィルタリングし、再構成画像を元画像により近づけるものである。
【0017】
一例として、ビデオ符号化復号プロセスにおいて、予測プロセスはフレーム内予測及びフレーム間予測を含み得る。フレーム内予測は、隣接するブロックの間に高い空間領域の相関性が存在することを考慮し、周辺において既に再構成された画素を参照画素とし、現在符号化されていないブロックを予測し、元の値を符号化せず、残差値に対して後続する符号化処理を行うだけでよく、それにより空間領域における冗長性を効果的に除去し、圧縮効率を大幅に向上させる。フレーム間予測は、ビデオ時間領域の相関性を利用し、隣接する符号化済み画像の画素を用いて現在画像の画素を予測し、ビデオ時間領域の冗長性を除去するという目的を達成する。
【0018】
一例として、ビデオ符号化復号プロセスにおいて、変換とは、空間領域における画素形式で記述された画像を変換領域に変換し、変換係数の形式で表現することである。ほとんどの画像は多くの平坦領域及び緩やかに変化する領域を含み、したがって、適切な変換プロセスにより画像エネルギーを空間領域における分散した分布から変換領域における相対的集中した分布に変換させ、それにより信号間の周波数領域の相関性を除去することができ、量子化プロセスに合わせて、ビットストリームを効果的に圧縮することができる。
【0019】
一例として、エントロピー符号化とは、情報エントロピーの原理に従って可逆符号化を行う方式であり、ビデオ圧縮の最後の処理モジュールに位置し、ビデオシーケンスを表示するための一連の要素符号を、伝送又は記憶するためのバイナリビットストリームに変換し、入力された符号は量子化された変換係数、動きベクトル情報、予測モード情報、変換量子化関連シンタックスなどを含む可能性があり、エントロピー符号化モジュールの出力データは、元のビデオが圧縮された後の最終的なビットストリームである。エントロピー符号化はこれらのビデオ要素符号の統計冗長性を効果的に除去することができ、ビデオ符号化の圧縮効率を保証する重要なツールの1つである。
【0020】
一例として、ループフィルタは画像のブロック効果又は画像効果が不良であるなどの問題を減少させ、画像品質を改善するために用いられ、DBF、SAO及びALFを含み得るが、これらに限定されない。例えば、ビデオ画像において、画像ブロックの境界は連続的ではなく、圧縮再構成画像は顕著なブロック効果を有し、画像品質に深刻な影響を及ぼし、DBF技術を用いて境界に対してデブロッキングフィルタリングを行うことができる。全ての予測ユニット(Prediction Unit、PU)及び変換ユニット(Transform Unit、TU)の境界に対してデブロッキングフィルタリングを行い、デブロッキングフィルタリングはフィルタリング決定及びフィルタリング操作を含み、フィルタリング決定のプロセスにおいて、境界強度(例えば、フィルタリングしない、弱フィルタリング又は強フィルタリング)及びフィルタリングパラメータを取得する。フィルタリング操作のプロセスにおいて、境界強度及びフィルタリングパラメータに基づいて画素を補正し、例えば境界に対してフィルタリングを行う場合は、強フィルタリング又は弱フィルタリングであってもよく、異なる長さのタップを用いてフィルタリングを行う。
【0021】
SAOフィルタリング:リンギングの除去に用いられる。リンギング効果とは、高周波交流係数の量子化歪みにより、復号後に、エッジ周辺に波紋が発生する現象であり、変換ブロックのサイズが大きければ大きいほど、リンギング効果が顕著となる。SAOの基本原理とは、再構成曲線におけるピーク画素に負値を加えてオフセットを行い、バレー画素に正値を加えてオフセットを行うことである。SAOはCTU(Coding Tree Unit、符号化ツリーユニット)を基本単位とし、エッジオフセット(Edge Offset、EOと略称する)及びバンドオフセット(Band Offset、BOと略称する)という2種類のオフセット形式を含み得、また、パラメータ融合技術も導入される。
【0022】
ALFフィルタリング:元信号と歪み信号に基づいて計算して平均二乗意味での最適なフィルタ、すなわちウィーナーフィルタを得ることができる。ALFのフィルタは、7*7の菱形フィルタ又は5*5の菱形フィルタ、7*7の十字形+3*3の方形の中心対称フィルタ、又は7*7の十字形+5*5の方形の中心対称フィルタを含み得るが、これらに限定されない。
【0023】
フレーム内予測:ビデオ空間領域の相関性を利用し、現在フレームの符号化済みブロックを用いて予測を行って、ビデオ空間領域の冗長性を除去するという目的を達成する。フレーム内予測には、複数種類の予測モードが定義されており、予測モードごとには1種のテクスチャ方向が対応しており(DCモードが除かれる)、例えば、画像のテクスチャが水平に並んでいる場合に、水平予測モードの方が画像情報をよりよく予測することができる。
【0024】
フレーム間予測:ビデオ時間領域の相関性に基づき、ビデオシーケンスが高い時間領域相関性を含むため、隣接する符号化済み画像の画素を用いて現在画像の画素を予測すれば、ビデオ時間領域の冗長性を効果的に除去するという目的を達成することができる。ビデオ符号化の標準フレーム間予測部分はいずれもブロックに基づく動き補償技術を採用し、主な原理は、現在画像の各画素ブロックについて、前に符号化された画像から1つの最適なマッチングブロックを見つけることであり、当該プロセスは動き推定(Motion Estimation、ME)と呼ばれる。
【0025】
動きベクトル(Motion Vector、MV):フレーム間予測では、動きベクトルを用いて、現在フレームの画像の現在ブロックと参照フレームの画像の参照ブロックとの間の相対的な変位を表すことができる。分割されたブロックのそれぞれには、復号側に伝送される対応する動きベクトルがあり、各ブロックの動きベクトルを独立して符号化し伝送すると、特に小サイズの大量のブロックがある場合、多くのビットが消費される。動きベクトルを符号化するためのビット数を低減するために、隣接ブロック間の空間相関性を利用し、隣接する符号化済みブロックの動きベクトルに基づいて現在の符号化対象ブロックの動きベクトルを予測し、続いて、予測差分を符号化し、このように、動きベクトルを表すビット数を効果的に低減することができる。現在ブロックの動きベクトルを符号化する場合は、まず隣接する符号化済みブロックの動きベクトルを用いて現在ブロックの動きベクトルを予測し、続いて、当該動きベクトルの予測値(MVP、Motion Vector Prediction)と動きベクトルの真の推定値との差分(MVD、Motion Vector Difference)を符号化することができる。
【0026】
動き情報(Motion Information):動きベクトルは現在ブロックとある参照ブロックとの位置オフセットを表すものであるため、ブロックを指向する情報を正確に取得するためには、動きベクトルに加えて、現在ブロックがどの参照フレーム画像を用いるかを表す参照フレーム画像のインデックス情報を必要とする。ビデオ符号化技術において、現在フレームの画像に対して、一般的には1つの参照フレームの画像リストを構築してもよく、参照フレームの画像のインデックス情報は現在ブロックが参照フレームの画像リストにおける何番目の参照フレームの画像を用いるかを表す。また、多くの符号化技術は複数の参照画像リストをサポートするので、さらに、1つのインデックス値を用いてどの参照画像リストを用いるかを表してもよく、当該インデックス値は参照方向と呼ばれてもよい。以上をまとめると、ビデオ符号化技術において、動きベクトル、参照フレームのインデックス、参照方向など、動きに関する情報をまとめて動き情報と呼んでもよい。
【0027】
フラグビット符号化(flag coding):ビデオ符号化において、多くのモードが存在する。あるブロックについては、そのうち1つのモードを用いることがある。どのようなモードを用いるかを表すために、各ブロックについて、対応するフラグビットを符号化してマークする必要がある。例えば、符号化側では、符号化側の決定により、当該フラグビットの値を決定し、続いてフラグビットの値を符号化して復号側に伝送する。復号側では、フラグビットの値を解析することにより、対応するモードをイネーブルするか否かを決定する。
【0028】
フラグビットの符号化プロセスにおいて、ハイレベルシンタックスによりフラグビットの符号化を実現することができ、ハイレベルシンタックスはあるモードのイネーブルが許可されるか否かを表すことができ、すなわち、ハイレベルシンタックスによりあるモードのイネーブルが許可されるか、又はあるモードのイネーブルが禁止される。
【0029】
一例として、ハイレベルシンタックスは、シーケンスパラメータセットレベルのハイレベルシンタックス、画像パラメータセットレベルのハイレベルシンタックス、スライスヘッダレベルのハイレベルシンタックス、又は画像ヘッダレベルのハイレベルシンタックスであってもよく、このハイレベルシンタックスについては限定しない。
【0030】
シーケンスパラメータセット(SPS、sequence parameter set)に対するハイレベルシンタックスには、ビデオシーケンス全体(すなわち、マルチフレームビデオ画像)において何らかのモード(ツール/方法)のイネーブルが許可されるか否かを決定するフラグビットが存在する。例えば、フラグビットが値A(例えば、数値1など)であれば、ビデオシーケンスは当該フラグビットに対応するモードのイネーブルを許可してもよく、又は、フラグビットが値B(例えば、数値0など)であれば、ビデオシーケンスは当該フラグビットに対応するモードのイネーブルを許可しなくてもよい。
【0031】
画像パラメータセット(PPS、picture parameter set)に対するハイレベルシンタックスには、あるピクチャ(例えば、ビデオ画像)において何らかのモード(ツール/方法)のイネーブルが許可されるか否かを決定するフラグビットが存在する。フラグビットが値Aであれば、ビデオ画像には当該フラグビットに対応するモードのイネーブルが許可され、フラグビットが値Bであれば、ビデオ画像には当該フラグビットに対応するモードのイネーブルが許可されない。
【0032】
画像ヘッダ(picture header)に対するハイレベルシンタックスには、ある画像ヘッダにおいて何らかのモード(ツール/方法)のイネーブルが許可されるか否かを決定するフラグビットが存在する。フラグビットが値Aであれば、画像ヘッドには当該フラグビットに対応するモードのイネーブルが許可され、フラグビットが値Bであれば、画像ヘッドには当該フラグビットに対応するモードのイネーブルが許可されない。一例として、画像ヘッドには現在画像のみに対する共通情報が保存され、例えば、画像が複数のsliceを含む場合、複数のsliceは画像ヘッドにおける情報を共用することができる。
【0033】
スライスヘッダ(Slice header)に対するハイレベルシンタックスには、あるsliceにおいて何らかのモード(ツール/方法)のイネーブルが許可されるか否かを決定するフラグビットが存在する。フラグビットが値Aであれば、sliceには当該フラグビットに対応するモードのイネーブルが許可され、フラグビットが値Bであれば、sliceには当該フラグビットに対応するモードのイネーブルが許可されない。一例といて、1フレームの画像は1つのslice又は複数のsliceを含んでもよく、スライスヘッダ(Slice header)に対するハイレベルシンタックスは、各sliceに対して配置されるハイレベルシンタックスである。
【0034】
ハイレベルシンタックス:何らかのツール(方法)のイネーブルが許可されるか否かを表すために用いられるものであり、すなわち、ハイレベルシンタックスにより何らかのツール(方法)のイネーブルが許可されるか、又は何らかのツール(方法)のイネーブルが禁止される。一例として、上記説明を参照すると、ハイレベルシンタックスはシーケンスパラメータセットレベルのハイレベルシンタックス、画像パラメータセットレベルのハイレベルシンタックス、スライスヘッダレベルのハイレベルシンタックス、又は画像ヘッダレベルのハイレベルシンタックスであってもよく、このハイレベルシンタックスは、上記機能を実現できれば、限定されない。
【0035】
レート歪み最適化(Rate-Distortion Optimized)原則:符号化効率の評価には、ビットレートとPSNR(Peak Signal to Noise Ratio、ピーク信号対雑音比)の2つの指標があり、ビットストリームが小さければ小さいほど、圧縮率が大きくなり、PSNRが大きければ大きいほど、再構成画像の品質が良くなり、モードを選択する時に、判別式は実質的に両者に対する総合評価である。例えば、モードに対応するコストは、J(mode)=D+λ*Rであり、ここで、DはDistortion(歪み)を表し、一般的にはSSE指標を用いて評価され、SSEとは、再構成画像ブロックと元画像との差分の平均二乗和であり、λはラグランジュ乗数であり、Rは当該モードで画像ブロックの符号化に必要な実際のビット数であり、符号化モード情報、動き情報、残差などに必要なビット数の総和を含む。モードを選択する時に、RDO原則により符号化モードを比較決定すれば、一般的に、符号化性能の最適さを保証することができる。
【0036】
ブロック分割技術:1つの符号化ツリーユニット(Coding Tree Unit、CTUと略称する)は四分木を用いてCU(Coding Unit、符号化ユニット)に再帰的に分割される。葉ノードでCUレベルはフレーム内符号化又はフレーム間符号化を用いるか否かを決定する。CUは2つ又は4つの予測ユニット(Prediction Unit、PUと略称する)に分割することができ、同一のPU内に同じ予測情報が使用される。予測を完了して残差情報を得た後、1つのCUは四分木で複数の変換ユニット(Transform Units、TUと略称する)に分割することができる。例えば、本発明における現在画像ブロックは1つのPUである。さらに、ブロック分割技術を変更することができ、例えば、二分木/三分木/四分木を混合した分割構造を用いて元の分割モードを代替し、CU、PU、TUの概念の区別を取り消し、CUのより柔軟な分割方式をサポートする。CUは正方形分割であってもよいし、矩形分割であってもよい。CTUは、まず四分木の分割を行い、続いて四分木分割の葉ノードは二分木及び三分木の分割を行うことができる。
図2Aに示すように、CUは全部で5種類の分割タイプを有し、それぞれ四分木分割、水平二分木分割、垂直二分木分割、水平三分木分割及び垂直三分木分割であり、
図2Bに示すように、CTU内のCU分割は上記5種類の分割タイプの任意の組み合わせであってもよく、以上から分かるように、異なる分割方式により、各PUの形状が異なり、例えば異なるサイズの矩形、正方形が挙げられる。
【0037】
DBFフィルタリング(すなわちデブロッキングフィルタリング)方法:DBFフィルタリング処理はフィルタリング決定及びフィルタリング操作の2つのプロセスを含む。
【0038】
フィルタリング決定は、1)境界強度(BS値)の取得と、2)フィルタリングイネーブルの決定と、3)フィルタリング強弱の選択と、を含む。色度成分には、ステップ1)のみが存在し、且つ輝度成分のBS値が直接再利用される。色度成分には、BS値が2の場合(すなわち現在ブロックの両側のブロックのうちの少なくとも1つがintra(フレーム内)モードを用いる)のみに、フィルタリング操作を行う。
【0039】
フィルタリング操作は、1)輝度成分に対する強フィルタリング及び弱フィルタリングと、2)色度成分に対するフィルタリングと、を含む。
【0040】
一例として、DBFフィルタリング処理は一般的に8*8を単位として水平境界フィルタリング(水平DBFフィルタリングと呼ばれてもよい)及び垂直境界フィルタリング(垂直DBFフィルタリングと呼ばれてもよい)を行い、且つ最大で境界両側の3つの画素点に対してフィルタリングを行い、且つ最大で境界両側の4つの画素点を利用してフィルタリングを行い、そのため、異なるブロックの水平DBFフィルタリング及び垂直DBFフィルタリングは互いに影響せず、すなわち、水平DBFフィルタリング及び垂直DBFフィルタリングは並行して行うことができる。
【0041】
図3に示すように、現在ブロック(8*8を例とする)に対しては、まず、現在ブロックの左側の3列の画素点及び左側ブロック(すなわち現在ブロックの左側ブロック)の右側の3列の画素点の垂直DBFフィルタリングを行い、そして、現在ブロックの上側の3行の画素点及び上側ブロック(すなわち現在ブロックの上側ブロック)の下側の3行の画素点の水平DBFフィルタリングを行ってもよい。
【0042】
一例として、それぞれ垂直DBFフィルタリング及び水平DBFフィルタリングを行う必要がある画素点に対しては、一般的には、まず、垂直DBFフィルタリングを行ってから、水平DBFフィルタリングを行う。もちろん、まず、水平DBFフィルタリングを行ってから、垂直DBFフィルタリングを行ってもよい。後続する実施例において、まず、垂直DBFフィルタリングを行ってから、水平DBFフィルタリングを行うことを例とする。
【0043】
1つの可能な実施形態において、DBFフィルタリングの処理フローについては、以下のステップを含み得る。
【0044】
ステップS11において、4*4を単位として、水平方向及び垂直方向のedge condition(エッジ条件)値をそれぞれ計算する。
【0045】
CU境界で、且つ8*8境界の場合、edge condition値は2(輝度成分及び色度成分の両方に対してフィルタリング処理を行うことを表すために用いられる)となる。PU(Prediction Unit、予測ユニット)境界(例えば、2N*hNの内部の1/4、1/2、3/4水平線)で、且つ8*8境界の場合、edge condition値は1(輝度成分に対してフィルタリング処理を行うが、色度成分に対してフィルタリング処理を行わないことを表すために用いられる)となる。上記の2種類の場合以外の場合、edge condition値は0となる。
【0046】
ステップS12において、4*4を単位として(フィルタリング処理は8*8を単位とするが、edge condition値などの情報の記憶は4*4を単位とする)、全てのブロックの垂直フィルタリングを完了する。edge condition値が0でない場合、以下のフィルタリング処理プロセスを行う。
【0047】
1、輝度成分フィルタリング(垂直フィルタリングは垂直境界の4行を処理し、水平フィルタリングは水平境界の4列を処理する):
1.1、まず、フィルタリングプロセスをスキップするか否かを判断する。一例として、境界両側のブロックが非フレーム内モードブロックであり、残差がなく、且つ動きが一致する場合は、フィルタリングプロセスをスキップし、それ以外の場合は、いずれもフィルタリングプロセスを行うことを必要とする。
【0048】
1.2、フィルタリングプロセスをスキップしない場合は、以下の処理を行う。
【0049】
1.2.1、現在フレームのフィルタリングタイプ(df_type)がタイプ1であり、且つABS(R0-L0)>=4*Alphaであれば、FSは0となり、それ以外の場合、ステップ1.2.2を行い、FSを決定する。Alphaは所定の数値であり、ABS()は絶対値を取る演算である。
【0050】
1.2.2、FL(Flatness Left、左側平坦度、選択可能な値は0、2、3)及びFR(Flatness Right、右側平坦度、選択可能な値は0、2、3)を計算し、FL及びFRは両側内部の平坦度を判断するために用いられる。続いて、FL及びFRに基づいてFSを決定する。例えば、式のFS=FL+FRを用いてFSを決定してもよい。
【0051】
1.2.2.1、ABS(L1-L0)<Betaであり、且つABS(L2-L0)<Betaであれば、FLは3となり、ABS(L1-L0)<Beta、且つABS(L2-L0)>=Betaであれば、FLは2となり、ABS(L1-L0)>=Betaであり、且つABS(L2-L0)<Betaであれば、FLは1となり、それ以外の場合、FLは0となる。Betaは所定の数値であり、ABS()は絶対値を取る演算である。
【0052】
1.2.2.2、FRの計算方式はFLの計算方式と類似するため、ここでは重複する説明は省略する。
【0053】
1.2.3、FSに基づいてBS値を決定する(FSの選択可能な値は0、2、3、4、5、6であり、BSの選択可能な値は0、1、2、3、4である)。例えば、FSを得た後、FSの値に基づいてBS値を決定してもよい。
【0054】
1.2.3.1、FSが2以下(最大で1辺が中等平坦)であれば、BS=0となる。
【0055】
1.2.3.2、FSが3(1辺のみが高度平坦)であれば、BS=(ABS(L1-R1)<Beta)?1:0となり、すなわち、ABS(L1-R1)<Betaが成立すれば、BS=1となり、それ以外の場合、BS=0となる。
【0056】
1.2.3.3、FSが4(すなわち両辺がいずれも中等平坦)であれば、BS=(FL==2)?2:1となり、すなわち、FL=2であれば、BS=2となり、それ以外の場合、すなわち、FLが2に等しくなければ、BS=1となる。
【0057】
1.2.3.4、FSが5(すなわち一辺が中等平坦で、他辺が高度平坦)であれば、
現在フレームのフィルタリングタイプ(df_type)がタイプ1の場合、BS=(R1==R0&&L0==L1&&ABS(R2-L2)<Alpha)?3:2となり、すなわち、画素点R1の画素値が画素点R0の画素値に等しく、且つ画素点L0の画素値が画素点L1の画素値に等しく、且つ画素点R2の画素値と画素点L2の画素値との間の差分の絶対値がAlpha(すなわち予め設定された数値)より小さい場合、BS=3となり、それ以外の場合、BS=2となる。
【0058】
そうでなく(すなわち、現在フレームのフィルタリングタイプ(df_type)がタイプ1でない)、現在フレームのフィルタリングタイプがタイプ0の場合、BS=(R1==R0&&L0==L1)?3:2となり、すなわち、画素点R1の画素値が画素点R0の画素値に等しく、且つ画素点L0の画素値が画素点L1の画素値に等しい場合、BS=3となり、それ以外の場合、BS=2となる。
【0059】
1.2.3.5、FSが6(すなわち、両辺がいずれも高度平坦)であれば、
現在フレームのフィルタリングタイプ(df_type)がタイプ1の場合、BS=(ABS(R0-R1)<=Beta/4&&ABS(L0-L1)<=Beta/4&&ABS(R0-L0)<Alpha)&&ABS(R0-R3)<=Beta/2&&ABS(L0-L3)<=Beta/2?4:3となり、すなわち、ABS(R0-R1)<=Beta/4、ABS(L0-L1)<=Beta/4、ABS(R0-L0)<Alpha、ABS(R0-R3)<=Beta/2、ABS(L0-L3)<=Beta/2がいずれも成立する場合、BS=4となり、それ以外の場合、BS=3となる。
【0060】
そうでなく(すなわち、現在フレームのフィルタリングタイプ(df_type)がタイプ1でなく)、現在フレームのフィルタリングタイプがタイプ0の場合、BS=(ABS(R0-R1)<=Beta/4&&ABS(L0-L1)<=Beta/4&&ABS(R0-L0)<Alpha)?4:3となり、すなわち、ABS(R0-R1)<=Beta/4、ABS(L0-L1)<=Beta/4、ABS(R0-L0)<Alphaがいずれも成立する場合、BS=4となり、それ以外の場合、BS=3となる。
【0061】
1.2.4、BS値に基づいて、フィルタリング係数、及びフィルタリング画素数を決定する。例えば、境界の左側又は上側の4つの画素点がそれぞれL0~L3(
図3に示すように、
図3において左側を例とする)であり、境界の右側又は下側の4つの画素点がR0~R3(
図3に示すように、
図3において右側を例とする)であるとする。輝度成分については、
1.2.4.1、BS=4であれば、境界両側のそれぞれ3つの画素に対してフィルタリングを行う。
【0062】
L0及びR0に対して、フィルタリング係数は[3,8,10,8,3]/32であり、すなわち、画素点L0のフィルタリング後の画素値を決定するために、それぞれ画素点L2、L1、L0、R0及びR1の画素値の重み付け和を求め、重み付け係数(すなわちフィルタリング係数)は順に3/32、8/32、10/32、8/32及び3/32である。wjがフィルタリング係数であれば、j=-2(現在画素点の左側の2番目の画素点、すなわちL2)の場合、wj=3/32であり、j=-1(現在画素点の左側の1番目の画素点、すなわちL1)の場合、wj=8/32であり、j=0(現在画素点、すなわちL0)の場合、wj=10/32であり、j=1(現在画素点の右側の1番目の画素点、すなわちR0)の場合、wj=8/32であり、j=2(現画素点の右側の2番目の画素点、すなわちR1)の場合、wj=3/32である。画素点R0のフィルタリング後の画素値を決定するために、それぞれ画素点R2、R1、R0、L0及びL1の画素値の重み付け和を求め、重み付け係数は順に3/32、8/32、10/32、8/32及び3/32である。wjがフィルタリング係数であれば、j=-2(現在画素点の右側の2番目の画素点、すなわちR2)の場合、wj=3/32であり、j=-1(現在画素点の右側の1番目の画素点、すなわちR1)の場合、wj=8/32であり、j=0(現在画素点、すなわちR0)の場合、wj=10/32であり、j=1(現画素点の左側の1番目の画素点、すなわちL0)の場合、wj=8/32であり、j=2(現画素点の左側の2番目の画素点、すなわちL1)の場合、wj=3/32である。
【0063】
以上をまとめると、L0′=clip(L2*3+L1*8+L0*10+R0*8+R1*3+16)>>5)であり、L0′は画素点L0のフィルタリング後の画素値であり、L0~L2は画素点L0~L2のフィルタリング前の画素値であり、R0~R1は画素点R0~R1の画素値であり、以下同様である。R0′=clip((R2*3+R1*8+R0*10+L0*8+L1*3+16)>>5)>>5)。
【0064】
上記式において、「>>」は右シフト演算であり、割り算の代わりに用いられ、すなわち、「>>5」は25(すなわち32)で割ることに相当する。乗算(「*」)は左シフトの方式で置き換えることができ、例えば、aに4をかけることは左へ2ビットシフトすることで置き換え、すなわち、a<<2で置き換えることができ、aに10をかけることは、(a<<3)+(a<<1)で置き換えることができる。「<<」は左シフト演算であり、乗算の代わりに用いられ、「a<<2」は22(すなわち4)をかけることに相当する。シフトにより除算を実現する場合、演算結果は通常、整数化され、すなわち、演算結果がN~N+1の間の非整数であれば、結果としてNをとるが、小数部が0.5より大きいとき、結果としてN+1をとると、精度がより高くなることが考慮され、したがって、決定された画素値の正確性を高めるために、計算する際に、上記重み付け和の分子に分母(すなわち被除数)の1/2を加えて、四捨五入の効果を達成してもよい。上記L0′の計算を例にとると、右へ5ビットシフトすることは25(すなわち32)で割ることに相当するので、上記重み付け和の分子に16を加えてもよい。Clip(x)はクリップ操作であり、xが所定の数値範囲の上限を超える場合、xの値を当該所定の数値範囲の上限に設定し、xが所定の数値範囲の下限未満の場合、xの値を当該所定の数値範囲の下限に設定する。
【0065】
L1及びR1に対して、フィルタリング係数は[4,5,4,3]/16であり、これに基づき、L1′=clip((L2*4+L1*5+L0*4+R0*3+8)>>4)、R1′=clip((R2*4+R1*5+R0*4+L0*3+8)>>4)となる。
【0066】
L2及びR2に対して、フィルタリング係数が[2,2,2,1,1]/8であれば、L2′=clip((L3*2+L2*2+L1*2+L0*1+R0*1+4)>>3)、R2′=clip((R3*2+R2*2+R1*2+R0*1+L0*1+4)>>3)となる。
【0067】
1.2.4.2、BS=3であれば、境界両側のそれぞれ2つの画素に対してフィルタリングを行う。
【0068】
L0とR0に対して、フィルタリング係数が[1,4,6,4,1]/16であれば、L0′=clip(L2*1+L1*4+L0*6+R0*4+R1*1+8)>>4、R0′=clip(R2*1+R1*4+R0*6+L0*4+L1*1+8)>>4となる。
【0069】
L1とR1に対して、フィルタリング係数が[3,8,4,1]/16であれば、L1′=clip((L2*3+L1*8+L0*4+R0*1+8)>>4)、R1′=clip(R2*3+R1*8+R0*4+L0*1+8)>>4)となる。
【0070】
1.2.4.3、BS=2であれば、境界両側のそれぞれ1つの画素に対してフィルタリングを行う。
【0071】
L0とR0に対して、フィルタリング係数は[3,10,3]/16であり、これに基づき、L0′=clip(L1*3+L0*10+R0*3+8)>>4、R0′=clip(R1*3+R0*10+L0*3+8)>>4となる。
【0072】
1.2.4.4、BS=1であれば、境界両側のそれぞれ1つの画素に対してフィルタリングを行う。L0とR0に対して、フィルタリング係数は[3,1]/4であれば、L0′=clip(L0*3+R0*1+2)>>2、R0′=clip(R0*3+L0*1+2)>>2となる。
【0073】
1.2.4.5、BS=0であれば、フィルタリングせず、すなわち、境界両側の画素に対してフィルタリングを行わない。
【0074】
2、edge condition値が2の場合、16*16ブロックの境界に対して色度フィルタリングを行い、すなわち、16*16ブロックの境界に対して色度成分のフィルタリング処理を行い、当該色度成分のフィルタリング処理プロセスは以下のとおりである。
【0075】
2.1、まずフィルタリング処理を行う必要があるか否かを判断し、プロセスは輝度成分と類似するため、ここでは重複する説明は省略する。
【0076】
2.2、フィルタリング処理を行う必要があれば(すなわちフィルタリングプロセスをスキップしない)、それぞれFLとFRを計算し、そして、FLとFRに基づいてFSを得、FSに基づいてBS値を得、当該プロセスも輝度成分と類似するため、ここでは重複する説明は省略する。
【0077】
2.3、得られた色度成分のBS値(例えば、4、3、2、1、0など)から1を引き、すなわち、BSの選択可能な値は3、2、1、0としてもよい。BS値に基づいて色度成分のフィルタリング処理を行い、具体的なプロセスは以下のとおりである。
【0078】
BS=3であれば、境界両側のそれぞれ2つの画素に対してフィルタリングを行い、L0とR0に対して、フィルタリング係数が[3,10,3]/16であれば、L0′=clip(L1*3+L0*10+R0*3+8)>>4、R0′=clip(R1*3+R0*10+L0*3+8)>>4となる。L1及びR1に対して、フィルタリング係数が[3,8,3,2]/16であれば、L1′=clip((L2*3+L1*8+L0*3+R0*2+8)>>4)、R1′=clip((R2*3+R1*8+R0*3+L0*2+8)>>4)となる。
【0079】
BS=2、又はBS=1であれば、境界両側のそれぞれ1つの画素に対してフィルタリングを行い、L0とR0に対して、フィルタリング係数が[3,10,3]/16であれば、L0′=clip(L1*3+L0*10+R0*3+8)>>4、R0′=clip(R1*3+R0*10+L0*3+8)>>4となる。BS=0であれば、フィルタリングせず、すなわち、境界両側の画素に対してフィルタリングを行わない。
【0080】
一例として、上記プロセスのAlpha及びBetaは境界両側のブロックのQP平均値に関連し、すなわち、現在ブロックは現在ブロックの左側ブロック(垂直DBFフィルタリングに対して)、又は現在ブロックは現在ブロックの上側ブロック(水平DBFフィルタリングに対して)のQP平均値に関連し、テーブルルックアップによってAlpha及びBetaの値を取得することができ、これについて限定しない。
【0081】
ステップS13において、4*4を単位として(フィルタリング処理は8*8を単位とするが、edge condition値などの情報の記憶は4*4を単位とする)、全てのブロックの水平フィルタリングを完了し、実現方式はステップS12と類似するため、ここでは重複する説明は省略する。
【0082】
関連技術では、DBF、SAO及びALFなどのフィルタ技術は、いずれも現在画素点の画素値に基づいて分類し、又は、現在画素点の画素値と周辺画素点の画素値との関係に基づいて分類し、続いて、異なるカテゴリーに基づいて異なるフィルタリング操作を行うため、オーバーフィルタリング現象が発生する可能性があり、すなわち、フィルタリング後の画素値がフィルタリング前の画素値より遥かに大きく、又は遥かに小さく、元画素値より遥かに大きく、又は遥かに小さく、フィルタリング効果が悪く、符号化性能が比較的低いなどの問題が存在する。
【0083】
上記発見に対して、本実施例は符号化復号方法を提供し、現在画素点の勾配値に基づいて現在画素点の元画素値を調整し、現在画素点の調整画素値を元画素により近づけ、それにより符号化性能を向上させることができる。フィルタリングプロセスにおいて、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、現在画素点の勾配値に基づいて現在画素点の元画素値を調整することにより、フィルタリング効果を向上させ、符号化性能を向上させることができる。
【0084】
以下、具体的な実施例に合わせて、本発明の実施例における符号化復号方法について詳細に説明する。
【0085】
実施例1:本発明の実施例は符号化復号方法を提供し、当該方法は符号化側又は復号側に適用することができ、
図4に示すように、当該符号化復号方法のフローチャートであり、当該方法は以下を含み得る。
【0086】
ステップ401において、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、現在画素点の元画素値と前記現在画素点の周辺画素点の元画素値に基づいて現在画素点の勾配値を決定する。
【0087】
一例として、現在画素点の勾配値は現在画素点の元画素値と周辺画素点の元画素値との差分に基づいて決定されてもよく、すなわち、現在画素点の勾配値は2つの画素値の差分を反映する。
【0088】
一例として、現在画素点の周辺画素点は、現在画素点の隣接画素点であってもよく、現在画素点に隣接しない画素点であってもよい。現在画素点の周辺画素点は、現在ブロックに位置する画素点であってもよく、現在ブロックの隣接ブロックに位置する画素点であってもよい。例えば、現在画素点の周辺画素点は、現在画素点の左側の画素点、現在画素点の右側の画素点、現在画素点の上側の画素点、現在画素点の下側の画素点であってもよく、この現在画素点の周辺画素点の位置については限定しない。
【0089】
例えば、
図3に示すように、現在画素点が現在ブロックにおけるR0であれば、現在画素点の周辺画素点は現在ブロックの左側の隣接ブロックにおけるL0であってもよい。現在画素点が現在ブロックにおける1行目2列目の画素点であれば、現在画素点の周辺画素点は現在ブロックの上側の隣接ブロックにおける8行目2列目の画素点であってもよい。
【0090】
ステップ402において、現在画素点の勾配値及び現在画素点の元画素値に基づいて、現在画素点の調整画素値を決定する。例えば、現在画素点の勾配値、現在画素点の元画素値、第1の調整閾値、第2の調整閾値、第1の調整オフセット値及び第2の調整オフセット値に基づいて、現在画素点の調整画素値を決定してもよい。
【0091】
1つの可能な実施形態において、現在画素点の勾配値が第1の調整閾値より大きければ、現在画素点の元画素値及び第1の調整オフセット値に基づいて現在画素点の調整画素値を決定し、例えば、現在画素点の元画素値と第1の調整オフセット値との和に基づいて現在画素点の調整画素値を決定する。現在画素点の勾配値が第2の調整閾値より小さければ、現在画素点の元画素値及び第2の調整オフセット値に基づいて現在画素点の調整画素値を決定し、例えば、現在画素点の元画素値と第2の調整オフセット値との和に基づいて現在画素点の調整画素値を決定する。一例といて、第1の調整閾値と第2の調整閾値は互いに反数であってもよい。もちろん、第1の調整閾値と第2の調整閾値は互いに反数でなくてもよく、第1の調整閾値と第2の調整閾値を任意に設定することができる。
【0092】
1つの可能な実施形態において、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、さらに、現在ブロックの隣接ブロックから現在画素点に対応する参照画素点を決定し、参照画素点の元画素値及び参照画素点の周辺画素点の元画素値に基づいて参照画素点の勾配値を決定し、参照画素点の勾配値及び参照画素点の元画素値に基づいて参照画素点の調整画素値を決定してもよい。
【0093】
一例として、参照画素点は隣接ブロックにおける現在画素点に隣接する画素点であってもよく、隣接ブロックにおける現在画素点に隣接しない画素点であってもよく、これについては限定しない。例えば、
図3に示すように、現在画素点が現在ブロックにおけるR0であれば、参照画素点は現在ブロックの左側の隣接ブロックにおけるL0であってもよく、現在ブロックの左側の隣接ブロックにおけるL1、L2などであってもよく、これについては限定しない。現在画素点が現在ブロックにおけるR1であれば、参照画素点は現在ブロックの左側の隣接ブロックにおけるL0であってもよく、現在ブロックの左側の隣接ブロックにおけるL1、L2などであってもよく、これについては限定しない。現在画素点が現在ブロックにおける1行目2列目の画素点であれば、参照画素点は現在ブロックの上側の隣接ブロックにおける8行目2列目の画素点であってもよく、現在ブロックの上側の隣接ブロックにおける7行目2列目の画素点であってもよく、これについては限定しない。
【0094】
一例として、参照画素点の勾配値は参照画素点の元画素値と参照画素点の周辺画素点の元画素値との差分に基づいて決定されてもよく、すなわち、勾配値は2つの画素値の差分を反映する。
【0095】
一例として、参照画素点の周辺画素点は、参照画素点の隣接画素点であってもよく、参照画素点に隣接しない画素点であってもよい。参照画素点の周辺画素点は、参照画素点が所在するブロックに位置する画素点であってもよく、参照画素点が所在するブロックの隣接ブロックに位置する画素点であってもよい。参照画素点の周辺画素点は、参照画素点の左側の画素点であってもよく、参照画素点の右側の画素点であってもよく、参照画素点の上側の画素点であってもよく、参照画素点の下側の画素点であってもよく、この参照画素点の周辺画素点の位置については限定しない。
【0096】
1つの可能な実施形態において、参照画素点の周辺画素点は、現在ブロックにおける現在画素点であってもよく、同様に、現在画素点の周辺画素点は、現在ブロックの隣接ブロックにおける参照画素点であってもよい。
【0097】
一例として、参照画素点の勾配値及び参照画素点の元画素値に基づいて、参照画素点の調整画素値を決定するステップは、参照画素点の勾配値、参照画素点の元画素値、第3の調整閾値(第1の調整閾値と同じであってもよく、異なってもよい)、第4の調整閾値(第2の調整閾値と同じであってもよく、異なってもよい)、第3の調整オフセット値(第1の調整オフセット値と同じであってもよく、異なってもよい)及び第4の調整オフセット値(第3の調整オフセット値と同じであってもよく、異なってもよい)に基づいて、参照画素点の調整画素値を決定するステップを含んでもよいが、これに限定されない。
【0098】
例えば、参照画素点の勾配値が第3の調整閾値より大きければ、参照画素点の元画素値及び第3の調整オフセット値に基づいて参照画素点の調整画素値を決定し、例えば、参照画素点の元画素値と第3の調整オフセット値との和に基づいて参照画素点の調整画素値を決定する。参照画素点の勾配値が第4の調整閾値より小さければ、参照画素点の元画素値及び第4の調整オフセット値に基づいて参照画素点の調整画素値を決定し、例えば、参照画素点の元画素値と第4の調整オフセット値との和に基づいて参照画素点の調整画素値を決定する。
【0099】
一例といて、第3の調整閾値と第4の調整閾値は互いに反数であってもよい。もちろん、第3の調整閾値と第4の調整閾値は互いに反数でなくてもよく、第3の調整閾値と第4の調整閾値を任意に設定することができる。
【0100】
1つの可能な実施形態において、ハイレベルシンタックスから現在ブロックに対応する第1の調整閾値、第2の調整閾値、第1の調整オフセット値、第2の調整オフセット値、第3の調整閾値、第4の調整閾値、第3の調整オフセット値及び第4の調整オフセット値を解析してもよい。又は、ハイレベルシンタックスから現在ブロックに対応する第1の調整閾値、第1の調整オフセット値、第2の調整オフセット値、第3の調整閾値、第3の調整オフセット値及び第4の調整オフセット値を解析してもよい。又は、ハイレベルシンタックスから現在ブロックに対応する第2の調整閾値、第1の調整オフセット値、第2の調整オフセット値、第3の調整閾値、第3の調整オフセット値及び第4の調整オフセット値を解析してもよい。又は、ハイレベルシンタックスから現在ブロックに対応する第1の調整閾値、第1の調整オフセット値、第2の調整オフセット値、第4の調整閾値、第3の調整オフセット値及び第4の調整オフセット値を解析してもよい。又は、ハイレベルシンタックスから現在ブロックに対応する第2の調整閾値、第1の調整オフセット値、第2の調整オフセット値、第4の調整閾値、第3の調整オフセット値及び第4の調整オフセット値を解析してもよい。
【0101】
一例として、第1の調整閾値と第2の調整閾値が互いに反数であれば、ハイレベルシンタックスから第1の調整閾値を解析すると、第2の調整閾値を導出することができ、ハイレベルシンタックスから第2の調整閾値を解析すると、第1の調整閾値を導出することができる。第3の調整閾値と第4の調整閾値が互いに反数であれば、ハイレベルシンタックスから第3の調整閾値を解析すると、第4の調整閾値を導出することができ、ハイレベルシンタックスから第4の調整閾値を解析すると、第3の調整閾値を導出することができる。
【0102】
1つの可能な実施形態において、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすことは、現在ブロックにおける現在画素点に対応するフィルタリング対象境界の境界強度が強調調整モードのイネーブル条件を満たすと、現在画素点が強調調整モードのイネーブル条件を満たすと決定することを含み得るが、これに限定されない。例えば、現在画素点に対応するフィルタリング対象境界の境界強度が所定の第1の数値であれば、フィルタリング対象境界の境界強度が強調調整モードのイネーブル条件を満たすと決定してもよい。一例として、所定の第1の数値は0であってもよい。もちろん、所定の第1の数値は他の数値であってもよい。
【0103】
又は、現在ブロックに対応する特徴情報が強調調整モードのイネーブル条件を満たすと、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと決定する。一例として、現在ブロックに対応する特徴情報が強調調整モードのイネーブル条件を満たすとは、現在ブロックに対応する特徴情報に基づいて、現在ブロックに対してフィルタリング操作(例えば、デブロッキングフィルタリング操作など)を開始しないと決定する場合、現在ブロックに対応する特徴情報が強調調整モードのイネーブル条件を満たすと決定することである。
【0104】
一例として、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと決定する前には、まず、現在ブロックに対応する強調調整モードイネーブルフラグビットを取得し、現在ブロックに対応する強調調整モードイネーブルフラグビットは現在ブロックが強調調整モードをイネーブルすることを許可すると、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすか否かを決定し、すなわち、現在画素点が強調調整モードのイネーブル条件を満たし、又は、強調調整モードのイネーブル条件を満たさないと決定する。
【0105】
又は、現在ブロックに対応する強調調整モードイネーブルフラグビットは現在ブロックが強調調整モードをイネーブルすることを許可しないと、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たさないと直接決定する。
【0106】
一例として、復号側は、ハイレベルシンタックスから現在ブロックに対応する強調調整モードイネーブルフラグビットを解析し、続いて強調調整モードイネーブルフラグビットに基づいて現在ブロックが強調調整モードをイネーブルすることを許可するか否かを決定してもよい。
【0107】
例えば、強調調整モードイネーブルフラグビットが第1の値(例えば1)であれば、強調調整モードイネーブルフラグビットは現在ブロックが強調調整モードをイネーブルすることを許可し、強調調整モードイネーブルフラグビットが第2の値(例えば0)であれば、強調調整モードイネーブルフラグビットは現在ブロックが強調調整モードをイネーブルすることを許可しない。
【0108】
1つの可能な実施形態において、当該符号化復号方法が予測プロセス(例えばフレーム内予測又はフレーム間予測)に適用されれば、現在画素点の元画素値はフレーム内予測又はフレーム間予測により得られた予測値であってもよく、現在画素点の調整画素値は現在画素点の目標画素値(予測プロセスの最終画素値)である。当該符号化復号方法がフィルタリングプロセスに適用されれば、現在画素点の元画素値はフィルタリング前の予測値であってもよく、現在画素点の調整画素値は現在画素点の目標画素値(フィルタリングプロセスの最終画素値)である。
【0109】
以上の技術的解決手段から分かるように、本発明の実施例において、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、現在画素点の勾配値及び現在画素点の元画素値に基づいて、現在画素点の調整画素値を決定することができ、すなわち、現在画素点の勾配値に基づいて現在画素点の元画素値を調整し、現在画素点の調整画素値を元画素により近づけ、それにより符号化性能を向上させる。例えば、DBF、SAO及びALFなどのフィルタリングプロセスにおいて、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、現在画素点の勾配値に基づいて現在画素点の元画素値を調整することにより、フィルタリング効果を向上させ、符号化性能を向上させることができる。
【0110】
1つの可能な実施形態において、現在ブロックにおける現在画素点が通常のフィルタリングモードのイネーブル条件を満たすと、さらに、現在画素点の元画素値に対してデブロッキングフィルタリング(すなわちDBFフィルタリング)を行い、現在画素点のフィルタリング画素値を得てもよい。もちろん、デブロッキングフィルタリングは単なる一例であり、他のフィルタリング方式を用いて現在画素点の元画素値に対してフィルタリングを行ってもよく、例えば、現在画素点の元画素値に対してSAOフィルタを行い、現在画素点のフィルタリング画素値を得てもよい。又は、現在画素点の元画素値に対してALFフィルタを行い、現在画素点のフィルタリング画素値を得る。
【0111】
一例として、デブロッキングフィルタリングを例とし、ステップS11~ステップS13には、現在画素点の元画素値に対してデブロッキングフィルタリングを行い、現在画素点のフィルタリング画素値を得るプロセスが示され、ここでは重複する説明は省略する。
【0112】
引き続き、ステップS11~ステップS13を参照し、これらのステップから分かるように、境界両側のブロックが非フレーム内モードブロックであり、残差がなく、且つ動きが一致する場合にのみ、フィルタリングプロセスをスキップし、それ以外の場合は、フィルタリングプロセスを行うことが必要である。フィルタリングプロセスを行う必要がある場合は、さらに、BSの値を取得してもよく、BSが0と等しければ、フィルタリングせず、すなわち、境界両側の画素に対してフィルタリングを行わず、BSが0より大きければ、境界両側の画素に対してフィルタリングを行う。以上をまとめると、境界両側のブロックが非フレーム内モードブロックであり、残差がなく、且つ動きが一致する場合、現在ブロックにおける現在画素点は通常のフィルタリングモードのイネーブル条件を満たさない。境界両側のブロックが非フレーム内モードブロックであり、残差がなく、且つ動きが一致することが成立せず(すなわち、境界両側のブロックが非フレーム内モードブロックでなく、又は境界両側のブロックに残差があり、又は境界両側のブロックの動きが一致しない)、且つBSが0に等しい場合、現在ブロックにおける現在画素点は通常のフィルタリングモードのイネーブル条件を満たさない。境界両側のブロックが非フレーム内モードブロックであり、残差がなく、且つ動きが一致することが成立せず、且つBSが0より大きい場合、現在ブロックにおける現在画素点は通常のフィルタリングモードのイネーブル条件を満たす。
【0113】
なお、現在ブロックにおける現在画素点が通常のフィルタリングモードのイネーブル条件を満たすと、現在ブロックにおける現在画素点は強調調整モードのイネーブル条件を満たさず、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、現在ブロックにおける現在画素点は通常のフィルタリングモードのイネーブル条件を満たさないことに留意されたい。
【0114】
現在画素点が通常のフィルタリングモードのイネーブル条件を満たし、且つ現在画素点の元画素値に対してデブロッキングフィルタリングを行い、現在画素点のフィルタリング画素値を得ることに加えて、現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすか否かを決定する必要がある。現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすと、現在画素点のフィルタリング画素値及び現在画素点の元画素値に基づいて、現在画素点の調整画素値を決定し、すなわち、現在画素点の調整画素値を現在画素点の目標画素値(デブロッキングフィルタリング処理の最終画素値)とする。現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たさないと、現在画素点のフィルタリング画素値を調整せず、現在画素点のフィルタリング画素値を現在画素点の目標画素値(デブロッキングフィルタリングプロセスの最終画素値)とする。
【0115】
一例として、現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすと、現在画素点のフィルタリング画素値及び現在画素点の元画素値に基づいて、現在画素点の調整画素値を決定するステップは、現在画素点のフィルタリング画素値、現在画素点の元画素値、第1のフィルタリング閾値、第2のフィルタリング閾値、第1のフィルタリングオフセット値及び第2のフィルタリングオフセット値に基づいて、現在画素点の調整画素値を決定するステップを含んでもよいが、これに限定されない。
【0116】
一例として、第1のフィルタリング閾値と第1のフィルタリング閾値は互いに反数であってもよく、もちろん、第1のフィルタリング閾値と第2のフィルタリング閾値は互いに反数でなくてもよく、第1のフィルタリング閾値及び第2のフィルタリング閾値を任意に設定することができる。
【0117】
1つの可能な実施形態において、現在ブロックにおける現在画素点が通常のフィルタリングモードのイネーブル条件を満たすと、さらに、現在ブロックの隣接ブロックから現在画素点に対応する参照画素点を決定し、参照画素点の元画素値に対してデブロッキングフィルタリング(すなわちDBFフィルタリング)を行い、参照画素点のフィルタリング画素値を得てもよい。もちろん、デブロッキングフィルタリングは単なる一例であり、他のフィルタリング方式を用いて参照画素点の元画素値に対してフィルタリングを行ってもよく、例えば、参照画素点の元画素値に対してSAOフィルタリング又はALFフィルタリングを行い、参照画素点のフィルタリング画素値を得る。
【0118】
一例として、デブロッキングフィルタリングを例とし、ステップS11~ステップS13には、参照画素点の元画素値に対してデブロッキングフィルタリングを行い、参照画素点のフィルタリング画素値を得るプロセスが示され、ここでは重複する説明は省略する。
【0119】
一例として、参照画素点は隣接ブロックにおける、現在画素点に隣接する画素点であってもよく、参照画素点は隣接ブロックにおける、現在画素点に隣接しない画素点であってもよく、これについては限定しない。
【0120】
現在画素点が通常のフィルタリングモードのイネーブル条件を満たし、且つ参照画素点の元画素値に対してデブロッキングフィルタリングを行い、参照画素点のフィルタリング画素値を得ることに加えて、現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすか否かを決定する必要がある。現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすと、参照画素点のフィルタリング画素値及び参照画素点の元画素値に基づいて、参照画素点の調整画素値を決定し、すなわち、参照画素点の調整画素値を参照画素点の目標画素値(デブロッキングフィルタリング処理の最終画素値)とする。現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たさないと、参照画素点のフィルタリング画素値を調整せず、参照画素点のフィルタリング画素値を参照画素点の目標画素値(デブロッキングフィルタリングプロセスの最終画素値)とする。
【0121】
一例として、参照画素点のフィルタリング画素値及び参照画素点の元画素値に基づいて、参照画素点の調整画素値を決定するステップは、参照画素点のフィルタリング画素値、参照画素点の元画素値、第3のフィルタリング閾値、第4のフィルタリング閾値、第3のフィルタリングオフセット値及び第4のフィルタリングオフセット値に基づいて、参照画素点の調整画素値を決定するステップを含んでもよいが、これに限定されず、ここで、第3のフィルタリング閾値と第4のフィルタリング閾値は互いに反数であってもよく、もちろん、第3のフィルタリング閾値と第4のフィルタリング閾値は互いに反数でなくてもよく、第3のフィルタリング閾値と第4のフィルタリング閾値を任意に設定することができる。
【0122】
1つの可能な実施形態において、ハイレベルシンタックスから現在ブロックに対応する第1のフィルタリング閾値、第2のフィルタリング閾値、第1のフィルタリングオフセット値、第2のフィルタリングオフセット値、第3のフィルタリング閾値、第4のフィルタリング閾値、第3のフィルタリングオフセット値及び第4のフィルタリングオフセット値を解析してもよい。又は、ハイレベルシンタックスから現在ブロックに対応する第1のフィルタリング閾値、第1のフィルタリングオフセット値、第2のフィルタリングオフセット値、第3のフィルタリング閾値、第3のフィルタリングオフセット値及び第4のフィルタリングオフセット値を解析してもよい。又は、ハイレベルシンタックスから現在ブロックに対応する第2のフィルタリング閾値、第1のフィルタリングオフセット値、第2のフィルタリングオフセット値、第3のフィルタリング閾値、第3のフィルタリングオフセット値及び第4のフィルタリングオフセット値を解析してもよい。又は、ハイレベルシンタックスから現在ブロックに対応する第1のフィルタリング閾値、第1のフィルタリングオフセット値、第2のフィルタリングオフセット値、第4のフィルタリング閾値、第3のフィルタリングオフセット値及び第4のフィルタリングオフセット値を解析してもよい。又は、ハイレベルシンタックスから現在ブロックに対応する第2のフィルタリング閾値、第1のフィルタリングオフセット値、第2のフィルタリングオフセット値、第4のフィルタリング閾値、第3のフィルタリングオフセット値及び第4のフィルタリングオフセット値を解析してもよい。
【0123】
一例として、第1のフィルタリング閾値と第2のフィルタリング閾値が互いに反数であれば、ハイレベルシンタックスから第1のフィルタリング閾値を解析すると、第2のフィルタリング閾値を導出することができ、ハイレベルシンタックスから第2のフィルタリング閾値を解析すると、第1のフィルタリング閾値を導出することができる。第3のフィルタリング閾値と第4のフィルタリング閾値が互いに反数であれば、ハイレベルシンタックスから第3のフィルタリング閾値を解析すると、第4のフィルタリング閾値を導出することができ、ハイレベルシンタックスから第4のフィルタリング閾値を解析すると、第3のフィルタリング閾値を導出することができる。
【0124】
1つの可能な実施形態において、現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすことは、現在ブロックにおける現在画素点に対応するフィルタリング対象境界の境界強度が強調フィルタリングモードのイネーブル条件を満たし、且つ現在画素点のフィルタリング画素値と現在画素点の元画素値との差分の絶対値が所定の閾値(当該所定の閾値は正値であり、この所定の閾値については限定せず、例えば、第1のフィルタリング閾値と第2のフィルタリング閾値が互いに反数であれば、第1のフィルタリング閾値が正値の場合、当該所定の閾値は第1のフィルタリング閾値と同じであり、第2のフィルタリング閾値が正値の場合、当該所定の閾値は第2のフィルタリング閾値と同じであり、もちろん、所定の閾値は他の値であってもよい)より大きければ、現在画素点が強調フィルタリングモードのイネーブル条件を満たすと決定することを含み得るが、これに限定されない。一例として、現在ブロックにおける現在画素点に対応するフィルタリング対象境界の境界強度が強調フィルタリングモードのイネーブル条件を満たすことは、現在画素点に対応するフィルタリング対象境界の境界強度が所定の第2の数値(所定の第1の数値とは異なり、すなわち、0ではなく、例えば、所定の第2の数値は0より大きくてもよい)であれば、フィルタリング対象境界の境界強度が強調フィルタリングモードのイネーブル条件を満たすと決定することを含んでもよいが、これに限定されない。
【0125】
一例として、現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすと決定する前には、まず、現在ブロックに対応する強調フィルタリングモードイネーブルフラグビットを取得し、現在ブロックに対応する強調フィルタリングモードイネーブルフラグビットは現在ブロックが強調フィルタリングモードをイネーブルすることを許可すると、現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすか否かを決定し、すなわち、現在画素点が強調フィルタリングモードのイネーブル条件を満たし、又は、強調フィルタリングモードのイネーブル条件を満たさないと決定する。
【0126】
又は、現在ブロックに対応する強調フィルタリングモードイネーブルフラグビットは現在ブロックが強調フィルタリングモードをイネーブルすることを許可しないと、現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たさないと直接決定する。
【0127】
一例として、復号側は、ハイレベルシンタックスから現在ブロックに対応する強調フィルタリングモードイネーブルフラグビットを解析し、続いて強調フィルタリングモードイネーブルフラグビットに基づいて現在ブロックが強調フィルタリングモードをイネーブルすることを許可するか否かを決定してもよい。
【0128】
例えば、強調フィルタリングモードイネーブルフラグビットが第1の値(例えば1)であれば、強調フィルタリングモードイネーブルフラグビットは現在ブロックが強調フィルタリングモードをイネーブルすることを許可し、強調フィルタリングモードイネーブルフラグビットが第2の値(例えば0)であれば、強調フィルタリングモードイネーブルフラグビットは現在ブロックが強調フィルタリングモードをイネーブルすることを許可しない。
【0129】
一例として、上記実施例において、ハイレベルシンタックスは、シーケンスパラメータセットSPSレベルのハイレベルシンタックス、画像パラメータセットPPSレベルのハイレベルシンタックス、画像ヘッダレベルのハイレベルシンタックス、画像レベルのハイレベルシンタックス、スライスヘッダレベルのハイレベルシンタックス、符号化ツリーユニットCTUレベルのハイレベルシンタックス、符号化ユニットCUレベルのハイレベルシンタックスのうちの1つを含んでもよいが、これらに限定されない。
【0130】
一例として、上記実施例において、現在ブロックにおける現在画素点の画素値は輝度成分又は色度成分であってもよい。
【0131】
以上の技術的解決手段から分かるように、現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすと、現在画素点のフィルタリング画素値及び現在画素点の元画素値に基づいて、現在画素点の調整画素値を決定することができ、すなわち、現在画素点のフィルタリング画素値に基づいて現在画素点の元画素値を調整し、現在画素点の調整画素値を元画素により近づけ、それにより符号化性能を向上させる。例えば、DBF、SAO及びALFなどのフィルタリングプロセスにおいて、現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすと、現在画素点のフィルタリング画素値に基づいて現在画素点の元画素値を調整することにより、フィルタリング効果を向上させ、符号化性能を向上させることができる。
【0132】
実施例2:フィルタリング処理を行う必要がある場合は、まず、フィルタリングプロセスをスキップするか否かを判断する必要があり、例えば、境界両側のブロック(すなわち現在ブロックと現在ブロックの隣接ブロックであり、垂直境界に対しては、現在ブロックの左側の隣接ブロックであり、水平境界に対しては、現在ブロックの上側の隣接ブロックである)は非フレーム内モードブロック(すなわち現在ブロックと隣接ブロックはいずれもフレーム内ブロックではない)であり、残差がなく(すなわち現在ブロックと隣接ブロックとの間に残差がなく)、且つ動きが一致する(すなわち現在ブロックと隣接ブロックとの動きが一致する)場合は、フィルタリングプロセスをスキップし、それ以外の場合は、フィルタリングプロセスをスキップしない。これに基づき、「フィルタリングプロセスをスキップすること」を強調調整モードのイネーブル条件とすることができ、すなわち、現在ブロックにおける現在画素点に対してフィルタリングプロセスをスキップすれば、現在ブロックにおける現在画素点は強調調整モードのイネーブル条件を満たす。現在画素点が強調調整モードのイネーブル条件を満たす場合、強調調整モードを用いて現在画素点の元画素値を調整することができ、それにより画素値を元画素により近づける。
【0133】
一例として、現在ブロックに対応する特徴情報が強調調整モードのイネーブル条件を満たすと、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと決定する。現在ブロックに対応する特徴情報は境界両側のブロックが非フレーム内モードブロックであるか否かを表すために用いられ、境界両側のブロックに残差がないか否かを表すために用いられ、また、境界両側のブロックの動きが一致するか否かを表すために用いられる。これに基づき、現在ブロックに対応する特徴情報は境界両側のブロックが非フレーム内モードブロックであることを表すために用いられ、且つ境界両側のブロックに残差がないことを表すために用いられ、且つ境界両側のブロックの動きが一致することを表すために用いられる場合、現在ブロックに対応する特徴情報が強調調整モードのイネーブル条件を満たすことが示され、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと決定し、すなわち、現在ブロックにおける各画素点が強調調整モードのイネーブル条件を満たす。又は、現在ブロックに対応する特徴情報は境界両側のブロックがいずれも非フレーム内モードブロックであるわけではないことを表すために用いられ、及び/又は、現在ブロックに対応する特徴情報は境界両側のブロックに残差があることを表すために用いられ、及び/又は、現在ブロックに対応する特徴情報は境界両側のブロックの動きが一致しないことを表すために用いられる場合、現在ブロックに対応する特徴情報が強調調整モードのイネーブル条件を満たさないことが示され、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たさないと決定し、すなわち、現在ブロックにおける各画素点がいずれも強調調整モードのイネーブル条件を満たさない。
【0134】
一例として、現在画素点が強調調整モードのイネーブル条件を満たす場合、強調調整モードを用いて現在画素点の元画素値を調整してもよく、例えば、まず、現在画素点の元画素値に基づいて現在画素点の勾配値を決定し、現在画素点の勾配値及び現在画素点の元画素値に基づいて、現在画素点の調整画素値を決定してもよく、調整画素値の決定プロセスについては、後続する実施例を参照することができ、ここでは重複する説明は省略する。
【0135】
実施例3:フィルタリング処理を行う必要がある場合は、まず、フィルタリングプロセスをスキップするか否かを判断する必要があり、例えば、境界両側のブロックがいずれも非フレーム内モードブロックであり、残差がなく、且つ動きが一致する場合、フィルタリングプロセスをスキップし、それ以外の場合、フィルタリングプロセスをスキップしない。フィルタリングプロセスをスキップしない場合は、さらに、BS値を決定してもよく、BS値が0より大きければ(例えばBS値が1、2、3、4など)、境界両側の画素に対してフィルタリングを行ってもよい。BS値が0であれば、フィルタリングせず、すなわち、境界両側の画素に対してフィルタリングを行わない。これに基づき、「BS値が0であること」を強調調整モードのイネーブル条件とすることができ、すなわち、現在ブロックにおける現在画素点のBS値が0であれば、現在ブロックにおける現在画素点は強調調整モードのイネーブル条件を満たし、現在ブロックにおける現在画素点のBS値が0より大きければ、現在ブロックにおける現在画素点は強調調整モードのイネーブル条件を満たさない。
【0136】
一例として、現在ブロックにおける現在画素点に対応するフィルタリング対象境界の境界強度が強調調整モードのイネーブル条件を満たすと、現在画素点が強調調整モードのイネーブル条件を満たすと決定する。例えば、まず現在画素点に対応するフィルタリング対象境界の境界強度を決定し、当該境界強度が所定の第1の数値であれば、当該境界強度が強調調整モードのイネーブル条件を満たすと決定してもよい。当該所定の第1の数値は経験に基づいて配置することができ、例えば、所定の第1の数値は0である。以上をまとめると、現在画素点に対応するフィルタリング対象境界の境界強度が0であれば、現在画素点に対応するフィルタリング対象境界の境界強度が強調調整モードのイネーブル条件を満たすことが示され、現在画素点が強調調整モードのイネーブル条件を満たすと決定する。
【0137】
又は、現在ブロックにおける現在画素点に対応するフィルタリング対象境界の境界強度が強調調整モードのイネーブル条件を満たさないと、現在画素点が強調調整モードのイネーブル条件を満たさないと決定する。例えば、現在画素点に対応するフィルタリング対象境界の境界強度が所定の第1の数値でなければ、当該境界強度が強調調整モードのイネーブル条件を満たさないと決定し、それにより現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たさないと決定することができる。
【0138】
一例として、現在画素点が強調調整モードのイネーブル条件を満たす場合は、強調調整モードを用いて現在画素点の元画素値を調整することができ、それにより画素値を元画素により近づける。例えば、まず、現在画素点の元画素値に基づいて現在画素点の勾配値を決定し、現在画素点の勾配値及び現在画素点の元画素値に基づいて、現在画素点の調整画素値を決定してもよく、調整画素値の決定プロセスは、後続する実施例を参照することができる。
【0139】
実施例4:フィルタリング処理を行う必要がある場合は、まず、フィルタリングプロセスをスキップするか否かを判断する必要があり、例えば、境界両側のブロックがいずれも非フレーム内モードブロックであり、残差がなく、且つ動きが一致する場合、フィルタリングプロセスをスキップし、それ以外の場合、フィルタリングプロセスをスキップしない。フィルタリングプロセスをスキップしない場合は、さらに、BS値を決定してもよく、BS値が0より大きければ(例えばBS値が1、2、3、4など)、境界両側の画素に対してフィルタリングを行ってもよい。BS値が0であれば、フィルタリングせず、すなわち、境界両側の画素に対してフィルタリングを行わない。これに基づき、「BS値が0であること」を通常のフィルタリングモードのイネーブル条件とすることができ、すなわち、現在ブロックにおける現在画素点のBS値が0より大きければ、現在ブロックにおける現在画素点は通常のフィルタリングモードのイネーブル条件を満たし、現在ブロックにおける現在画素点のBS値が0と等しければ、現在ブロックにおける現在画素点は通常のフィルタリングモードのイネーブル条件を満たさない。
【0140】
一例として、現在ブロックにおける現在画素点に対応するフィルタリング対象境界の境界強度が通常のフィルタリングモードのイネーブル条件を満たすと、現在画素点が通常のフィルタリングモードのイネーブル条件を満たすと決定する。例えば、まず現在画素点に対応するフィルタリング対象境界の境界強度を決定し、当該境界強度が所定の第2の数値であれば、当該境界強度が通常のフィルタリングモードのイネーブル条件を満たすと決定してもよい。当該所定の第2の数値は経験に基づいて配置することができ、例えば、所定の第2の数値は0より大きくてもよく、例えば、所定の第2の数値は1、2、3、4などであってもよい。以上をまとめると、現在画素点に対応するフィルタリング対象境界の境界強度が0より大きければ(すなわち境界強度が0ではない)、現在画素点に対応するフィルタリング対象境界の境界強度が通常のフィルタリングモードのイネーブル条件を満たすことが示され、現在画素点が通常のフィルタリングモードのイネーブル条件を満たすと決定する。
【0141】
又は、現在ブロックにおける現在画素点に対応するフィルタリング対象境界の境界強度が通常のフィルタリングモードのイネーブル条件を満たさないと、現在画素点が通常のフィルタリングモードのイネーブル条件を満たさないと決定する。例えば、現在画素点に対応するフィルタリング対象境界の境界強度(例えば0)が所定の第2の数値でなければ、当該境界強度が通常のフィルタリングモードのイネーブル条件を満たさないと決定し、それにより現在ブロックにおける現在画素点が通常のフィルタリングモードのイネーブル条件を満たさないと決定することができる。
【0142】
一例として、現在画素点が通常のフィルタリングモードのイネーブル条件を満たす場合は、さらに、現在画素点の元画素値に対してデブロッキングフィルタリング(すなわちDBFフィルタリング、本明細書では、デブロッキングフィルタリングを例とする)を行い、現在画素点のフィルタリング画素値を得てもよい。
【0143】
実施例5:現在ブロックにおける現在画素点が通常のフィルタリングモードのイネーブル条件を満たし、且つ現在画素点の元画素値に対してデブロッキングフィルタリングを行い、現在画素点のフィルタリング画素値を得ることに加えて、現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすか否かを決定してもよい。例えば、現在画素点のフィルタリング画素値と現在画素点の元画素値との差分の絶対値が所定の閾値より大きいか否かを決定し、所定の閾値より大きければ、現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすと決定し、所定の閾値より大きくなければ、現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たさないと決定する。以上をまとめると、現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすことは、現在ブロックにおける現在画素点に対応するフィルタリング対象境界の境界強度が強調フィルタリングモードのイネーブル条件を満たし、且つ現在画素点のフィルタリング画素値と現在画素点の元画素値との差分の絶対値が所定の閾値より大きければ、現在画素点が強調フィルタリングモードのイネーブル条件を満たすと決定することを含み得る。
【0144】
以下、具体的な実施例に合わせて、強調フィルタリングモードのイネーブル条件について説明する。
【0145】
フィルタリング処理を行う必要がある場合は、まず、フィルタリングプロセスをスキップするか否かを判断する必要があり、フィルタリングプロセスをスキップしない場合、さらに、BS値を決定してもよく、BS値が0より大きければ、境界両側の画素に対してフィルタリングを行ってもよい。これに基づき、「BSの値が0より大きいこと」を強調フィルタリングモードのイネーブル条件とすることができ、すなわち、「BSの値が0より大きいこと」を通常のフィルタリングモード及び強調フィルタリングモードの両方のイネーブル条件とすることができる。BS値が0より大きい場合は、現在画素点の元画素値に対してデブロッキングフィルタリングを行い、現在画素点のフィルタリング画素値を得る必要がある。現在画素点のフィルタリング画素値を得た後、さらに、現在画素点のフィルタリング画素値と現在画素点の元画素値との差分の絶対値が所定の閾値より大きいか否かを決定し、「差分の絶対値が所定の閾値より大きいこと」を強調フィルタリングモードのイネーブル条件とすることができる。
【0146】
以上をまとめると、現在ブロックにおける現在画素点に対応するフィルタリング対象境界の境界強度が強調フィルタリングモードのイネーブル条件を満たし、且つ現在画素点のフィルタリング画素値と現在画素点の元画素値との差分の絶対値が所定の閾値より大きければ、現在画素点が強調フィルタリングモードのイネーブル条件を満たすと決定する。それ以外の場合、現在画素点が強調フィルタリングモードのイネーブル条件を満たさないと決定する。例えば、まず現在画素点に対応するフィルタリング対象境界の境界強度を決定し、当該境界強度が所定の第2の数値であれば、当該境界強度が強調フィルタリングモードのイネーブル条件を満たすと決定する。所定の第2の数値は経験に基づいて配置することができ、例えば、所定の第2の数値は0より大きくてもよく、例えば、所定の第2の数値は1、2、3、4などであってもよい。
【0147】
一例として、現在画素点が強調フィルタリングモードのイネーブル条件を満たす場合は、現在画素点のフィルタリング画素値及び現在画素点の元画素値に基づいて、現在画素点の調整画素値を決定し、すなわち、現在画素点の調整画素値を現在画素点の目標画素値(デブロッキングフィルタリング処理の最終画素値)とすることができる。現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たさない場合は、現在画素点のフィルタリング画素値を調整せず、現在画素点のフィルタリング画素値を現在画素点の目標画素値(デブロッキングフィルタリングプロセスの最終画素値)とする。
【0148】
上記実施例1、2、3、4、5から分かるように、本明細書は強調調整モード、通常のフィルタリングモード及び強調フィルタリングモードに関し、強調調整モード、通常のフィルタリングモード又は強調フィルタリングモードに基づいて現在画素点の元画素値を処理し、現在画素点の目標画素値(すなわち最終画素値)を得てもよい。例えば、現在画素点が強調調整モードのイネーブル条件を満たすと、強調調整モードで、現在画素点の勾配値に基づいて現在画素点の元画素値を調整し、現在画素点の調整画素値を得、当該調整画素値を目標画素値としてもよい。また例えば、現在画素点が通常のフィルタリングモードのイネーブル条件を満たすが、強調フィルタリングモードのイネーブル条件を満たさないと、通常のフィルタリングモードで、現在画素点の元画素値をフィルタリングし、現在画素点のフィルタリング画素値を得、当該フィルタリング画素値を目標画素値としてもよい。また例えば、現在画素点が通常のフィルタリングモードのイネーブル条件を満たし、且つ強調フィルタリングモードのイネーブル条件を満たすと、強調フィルタリングモードで、現在画素点の元画素値をフィルタリングし、現在画素点のフィルタリング画素値を得、現在画素点のフィルタリング画素値に基づいて現在画素点の元画素値を調整し、現在画素点の調整画素値を得、当該調整画素値を目標画素値としてもよい。
【0149】
1つの可能な実施形態において、現在ブロックに対してデブロッキングフィルタリングを行う時、強調調整モード、通常のフィルタリングモード又は強調フィルタリングモードを用いて現在画素点の元画素値を処理することができ、すなわち、強調調整モード、通常のフィルタリングモード及び強調フィルタリングモードはいずれもデブロッキングフィルタリングモードに属し、すなわち、強調調整モード、通常のフィルタリングモード及び強調フィルタリングモードはデブロッキングフィルタリングモードにおけるサブモードであってもよい。これに基づき、デブロッキングフィルタリングモードでは、強調調整モードを用いて現在画素点の元画素値を処理し、又は、通常のフィルタリングモードを用いて現在画素点の元画素値を処理し、又は、強調フィルタリングモードを用いて現在画素点の元画素値を処理すると決定してもよい。
【0150】
もちろん、強調調整モード、通常のフィルタリングモード及び強調フィルタリングモードは、例えば、SAOフィルタリングモード又はALFフィルタリングモードなど、他のタイプのフィルタリングモードに属してもよく、すなわち、強調調整モード、通常のフィルタリングモード及び強調フィルタリングモードはSAOフィルタリングモードにおけるサブモードであってもよく、又は、強調調整モード、通常のフィルタリングモード及び強調フィルタリングモードはALFフィルタリングモードにおけるサブモードであってもよい。これに基づき、SAOフィルタリングモード又はALFフィルタリングモードでは、強調調整モードを用いて現在画素点の元画素値を処理し、又は、通常のフィルタリングモードを用いて現在画素点の元画素値を処理し、又は、強調フィルタリングモードを用いて現在画素点の元画素値を処理すると決定してもよい。
【0151】
例示的に、強調調整モード、通常のフィルタリングモード及び強調フィルタリングモードがいずれもデブロッキングフィルタリングモードに属することを例とすると、通常のフィルタリングモードはデブロッキングフィルタリングモードの通常のモードと呼ぶことができ、すなわち、現在画素点の元画素値に対してデブロッキングフィルタリングを行ってフィルタリング画素値を得た後、デブロッキングフィルタリングされたフィルタリング画素値を調整しない。強調フィルタリングモードはデブロッキングフィルタリング調整モード(deblocking refinement、DBRと略称する)と呼ぶことができ、すなわち、現在画素点の元画素値に対してデブロッキングフィルタリングを行ってフィルタリング画素値を得た後、さらに、デブロッキングフィルタリングされたフィルタリング画素値を調整する必要がある。強調調整モードは代替的デブロッキングフィルタリング調整モード(alt deblocking refinement、ADBRと略称)と呼ぶことができ、すなわち、現在画素点の元画素値に対してデブロッキングフィルタリングを行わない上で、現在画素点の元画素値を直接調整する。
【0152】
実施例6:実施例1、実施例2及び実施例3に対して、強調調整モードを用いて現在画素点の元画素値を調整してもよく、元画素値を調整する時、以下のステップを用いてもよい。
【0153】
ステップS21において、現在画素点の元画素値及び現在画素点の周辺画素点の元画素値に基づいて現在画素点の勾配値を決定する。例えば、現在画素点の勾配値は、現在画素点の元画素値と周辺画素点の元画素値との差分に基づいて決定されてもよく、この決定方式については限定しない。
【0154】
ステップS22において、現在ブロックの隣接ブロック(垂直境界に対しては、当該隣接ブロックは現在ブロックの左側の隣接ブロックであり、水平境界に対しては、当該隣接ブロックは現在ブロックの上側の隣接ブロックである)から現在画素点に対応する参照画素点を決定し、参照画素点の元画素値及び参照画素点の周辺画素点の元画素値に基づいて参照画素点の勾配値を決定する。例えば、参照画素点の勾配値は、参照画素点の元画素値と参照画素点の周辺画素点の元画素値との差分に基づいて決定されてもよく、この決定方式については限定しない。
【0155】
一例として、現在画素点の元画素値及び現在画素点の周辺画素点(例えば周辺画素点は参照画素点である)の元画素値に基づいて現在画素点の勾配値を決定し、参照画素点の周辺画素点(例えば周辺画素点は現在画素点である)の元画素値及び参照画素点の元画素値に基づいて参照画素点の勾配値を決定する。
【0156】
例えば、piが現在ブロックにおける現在画素点の元画素値であり、すなわち、参照画素点の周辺画素点の元画素値であり、qiが隣接ブロックにおける参照画素点の元画素値であり、すなわち、現在画素点の周辺画素点の元画素値であり、すなわち、piとqiはそれぞれ境界両側の元画素値であるとすると、現在画素点piの勾配値DPiは、DPi=(pi-qi+2)>>2により決定されてもよく、参照画素点qiの勾配値DQiは、DQi=(qi-pi+2)>>2により決定されてもよい。もちろん、以上は現在画素点の勾配値及び参照画素点の勾配値を決定する例に過ぎず、これについては限定しない。明らかに、現在画素点の勾配値は、現在画素点の元画素値と周辺画素点の元画素値との差分に基づいて決定され得る。参照画素点の勾配値は、参照画素点の元画素値と現在画素点の元画素値との差分に基づいて決定され得る。
【0157】
現在画素点piがp0(
図3のR0に対応する)であり、参照画素点qiがq0(
図3のL0に対応する)であることを例とし、現在画素点p0の勾配値DP0は、DP0=(p0-q0+2)>>2により決定され、参照画素点q0の勾配値DQ0は、DQ0=(q0-p0+2)>>2により決定される。DP0=(p0-q0+2)>>2の別の表現は、DP0=(p0-q0+1)>>1であり、DQ0=(q0-p0+2)>>2の別の表現は、DQ0=(q0-p0+1)>>1である。
【0158】
ステップS23において、現在画素点の勾配値及び現在画素点の元画素値に基づいて、現在画素点の調整画素値を決定する。例えば、現在画素点の勾配値が第1の調整閾値より大きければ、現在画素点の元画素値及び第1の調整オフセット値(第1の調整オフセット量と呼ばれてもよい)に基づいて現在画素点の調整画素値を決定する。現在画素点の勾配値が第2の調整閾値より小さければ、現在画素点の元画素値及び第2の調整オフセット値に基づいて現在画素点の調整画素値を決定する。一例として、第1の調整閾値と第2の調整閾値は互いに反数であってもよい。
【0159】
ステップS24において、参照画素点の勾配値及び参照画素点の元画素値に基づいて、参照画素点の調整画素値を決定する。例えば、参照画素点の勾配値が第3の調整閾値より大きければ、参照画素点の元画素値及び第3の調整オフセット値(第3の調整オフセット量と呼ばれてもよい)に基づいて参照画素点の調整画素値を決定する。参照画素点の勾配値が第4の調整閾値より小さければ、参照画素点の元画素値及び第4の調整オフセット値に基づいて参照画素点の調整画素値を決定する。一例として、第3の調整閾値と第4の調整閾値は互いに反数であってもよい。
【0160】
例えば、現在画素点piの勾配値DPiがalt_dbr_th(alt_dbr_thは第1の調整閾値を表す)より大きければ、現在画素点piの調整画素値Piは、Pi=clip(pi+alt_dbr_offset0)により決定されてもよく、alt_dbr_offset0は第1の調整オフセット値を表すことができる。又は、現在画素点piの勾配値DPiが-alt_dbr_th(-alt_dbr_thは第2の調整閾値を表す)より小さければ、現在画素点piの調整画素値Piは、Pi=clip(pi+alt_dbr_offset1)により決定されてもよく、alt_dbr_offset1は第2の調整オフセット値を表すことができる。
【0161】
上記実施例において、iは0、1、2であってもよく、iが0であることを例として説明すると、DP0>dbr_thであれば、p0=clip(p0+alt_dbr_offset0)となり、DP0<-dbr_thであれば、p0=clip(p0+alt_dbr_offset1)となる。
【0162】
例えば、参照画素点qiの勾配値DQiがalt_dbr_th(alt_dbr_thは第3の調整閾値を表し、ここで、第3の調整閾値が第1の調整閾値と同じであることを例とし、実際の適用では、第3の調整閾値は第1の調整閾値と異なってもよい)より大きければ、参照画素点qiの調整画素値Qiは、Qi=clip(qi+alt_dbr_offset0)により決定されてもよく、alt_dbr_offset0は第3の調整オフセット値を表すことができ、ここで、第3の調整オフセット値が第1の調整オフセット値と同じであることを例とし、実際の適用では、第3の調整オフセット値は第1の調整オフセット値と異なってもよい。
【0163】
又は、参照画素点qiの勾配値DQiが-alt_dbr_th(-alt_dbr_thは第4の調整閾値を表し、ここで、第4の調整閾値が第2の調整閾値と同じであることを例とし、実際の適用では、第4の調整閾値は第2の調整閾値と異なってもよい)より小さければ、参照画素点qiの調整画素値Qiは、Qi=clip(qi+alt_dbr_offset1)により決定されてもよく、alt_dbr_offset1は第4の調整オフセット値を表すことができ、ここで、第4の調整オフセット値が第2の調整オフセット値と同じであることを例とし、実際の適用では、第4の調整オフセット値は第2の調整オフセット値と異なってもよい。
【0164】
上記実施例において、iは0、1、2であってもよく、iが0であることを例として説明すると、DQ0>dbr_thであれば、Q0=clip(q0+alt_dbr_offset0)となり、DQ0<-dbr_thであれば、Q0=clip(q0+alt_dbr_offset1)となる。
【0165】
上記実施例において、piは現在画素点の元画素値を表し、DPiは現在画素点の勾配値を表し、Piは現在画素点の調整画素値を表し、qiは参照画素点の元画素値を表し、DQiは参照画素点の勾配値を表し、Qiは参照画素点の調整画素値を表す。clip(x)は、xを[0,2^(lbit_depth)-1]の間(0と2^(bit_depth)-1を含む)に制限することを表し、bit_depthは画像のビット深度を表し、一般的には、8、10、12などである。
【0166】
1つの可能な実施形態において、復号側は、ハイレベルシンタックスから現在ブロックに対応する第1の調整閾値、第1の調整オフセット値、第2の調整オフセット値、第3の調整閾値、第3の調整オフセット値及び第4の調整オフセット値を解析してもよい。第1の調整閾値と第2の調整閾値は互いに反数であり、第3の調整閾値と第4の調整閾値は互いに反数であるため、復号側は第2の調整閾値と第4の調整閾値を決定することができる。
【0167】
別の可能な実施形態において、復号側は、ハイレベルシンタックスから現在ブロックに対応する第1の調整閾値、第1の調整オフセット値、第2の調整オフセット値、第4の調整閾値、第3の調整オフセット値及び第4の調整オフセット値を解析してもよい。第1の調整閾値と第2の調整閾値は互いに反数であり、第3の調整閾値と第4の調整閾値は互いに反数であるため、復号側は第2の調整閾値と第3の調整閾値を決定することができる。
【0168】
別の可能な実施形態において、復号側には、ハイレベルシンタックスから現在ブロックに対応する第2の調整閾値、第1の調整オフセット値、第2の調整オフセット値、第3の調整閾値、第3の調整オフセット値及び第4の調整オフセット値を解析してもよい。第1の調整閾値と第2の調整閾値は互いに反数であり、第3の調整閾値と第4の調整閾値は互いに反数であるため、復号側は第1の調整閾値と第4の調整閾値を決定することができる。
【0169】
別の可能な実施形態において、復号側には、ハイレベルシンタックスから現在ブロックに対応する第2の調整閾値、第1の調整オフセット値、第2の調整オフセット値、第4の調整閾値、第3の調整オフセット値及び第4の調整オフセット値を解析してもよい。第1の調整閾値と第2の調整閾値は互いに反数であり、第3の調整閾値と第4の調整閾値は互いに反数であるため、復号側は第1の調整閾値と第3の調整閾値を決定することができる。
【0170】
別の可能な実施形態において、復号側は、ハイレベルシンタックスから現在ブロックに対応する第1の調整閾値(又は第2の調整閾値、又は第3の調整閾値、又は第4の調整閾値、すなわち、1つの調整閾値により他の3つの調整閾値を導出することができる)、第1の調整オフセット値(又は第3の調整オフセット値)及び第2の調整オフセット値(又は第4の調整オフセット値)を解析してもよい。これに基づき、第1の調整閾値と第2の調整閾値は互いに反数であるため、第2の調整閾値を決定することができる。第1の調整閾値と第3の調整閾値は同じであるため、第3調整閾値を決定することができる。第3の調整オフセット値と第1の調整オフセット値は同じであるため、第3の調整オフセット値を決定することができる。第4の調整オフセット値と第2の調整オフセット値は同じであるため、第4の調整オフセット値を決定することができる。第3の調整閾値と第4の調整閾値は互いに反数であるため、第4の調整閾値を決定することができる。
【0171】
もちろん、上記形態はいくつかの例に過ぎず、復号化側が第1の調整閾値、第2の調整閾値、第3の調整閾値、第4の調整閾値、第1の調整オフセット値、第2の調整オフセット値、第3の調整オフセット値及び第4の調整オフセット値を取得できれば、これについては限定せず、すなわち、上記各数値は解析又は導出によって得ることができる。
【0172】
上記実施例において、ハイレベルシンタックスは、SPSレベルのハイレベルシンタックス、PPSレベルのハイレベルシンタックス、画像ヘッダレベルのハイレベルシンタックス、画像レベルのハイレベルシンタックス、スライスヘッダレベルのハイレベルシンタックス、CTUレベルのハイレベルシンタックス、CUレベルのハイレベルシンタックスのうちの1つを含み得るが、これらに限定されない。もちろん、以上はハイレベルシンタックスのいくつかの例に過ぎず、ハイレベルシンタックスによって現在ブロックに対応する調整閾値及び調整オフセット値を付加することができれば、このハイレベルシンタックスのタイプについては限定しない。
【0173】
上記実施例において、現在ブロックにおける現在画素点の画素値は輝度成分又は色度成分であってもよい。
【0174】
1つの可能な実施形態において、強調調整モードイネーブルフラグビットにより強調調整モードをイネーブルすることを許可するか否かを表してもよく、強調調整モードイネーブルフラグビットは現在ブロックが強調調整モードをイネーブルすることを許可すると、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすか否かを決定する必要があり、現在画素点が強調調整モードのイネーブル条件を満たすと、強調調整モードを用いて現在画素点の元画素値を調整する。強調調整モードイネーブルフラグビットは現在ブロックが強調調整モードをイネーブルすることを許可しないと、現在ブロックにおける各画素点が強調調整モードのイネーブル条件を満たさないと直接決定し、強調調整モードを用いて現在画素点の元画素値を調整することはない。これに基づき、現在ブロックに対応する強調調整モードイネーブルフラグビットは現在ブロックが強調調整モードをイネーブルすることを許可すると、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすか否かを決定する。現在ブロックに対応する強調調整モードイネーブルフラグビットは現在ブロックが強調調整モードをイネーブルすることを許可しないと、現在ブロックにおける各画素点が強調調整モードのイネーブル条件を満たさないと決定する。
【0175】
一例として、復号側は、ハイレベルシンタックスから現在ブロックに対応する強調調整モードイネーブルフラグビットを解析してもよい。例えば、当該強調調整モードイネーブルフラグビットが第1の値(例えば1)であれば、強調調整モードイネーブルフラグビットは現在ブロックが強調調整モードをイネーブルすることを許可することが示され、当該強調調整モードイネーブルフラグビットが第2の値(例えば0)であれば、強調調整モードイネーブルフラグビットは現在ブロックが強調調整モードをイネーブルすることを許可しないことが示される。
【0176】
上記実施例において、ハイレベルシンタックスは、SPSレベルのハイレベルシンタックス、PPSレベルのハイレベルシンタックス、画像ヘッダレベルのハイレベルシンタックス、画像レベルのハイレベルシンタックス、スライスヘッダレベルのハイレベルシンタックス、CTUレベルのハイレベルシンタックス、CUレベルのハイレベルシンタックスのうちの1つを含み得るが、これらに限定されない。もちろん、以上はハイレベルシンタックスのいくつかの例に過ぎず、ハイレベルシンタックスによって現在ブロックに対応する強調調整モードイネーブルフラグビットを付加することができれば、このハイレベルシンタックスのタイプについては限定しない。
【0177】
実施例7:実施例1及び実施例5に対して、強調フィルタリングモードを用いて現在画素点の元画素値を調整してもよく、現在画素点の元画素値を調整する時、以下のステップを用いてもよい。
【0178】
ステップS31において、現在画素点の元画素値に対してデブロッキングフィルタリングを行い、現在画素点のフィルタリング画素値を得る。
【0179】
ステップS32において、現在ブロックの隣接ブロック(垂直境界に対しては、当該隣接ブロックは現在ブロックの左側の隣接ブロックであり、水平境界に対しては、当該隣接ブロックは現在ブロックの上側の隣接ブロックである)から現在画素点に対応する参照画素点を決定し、参照画素点の元画素値に対してデブロッキングフィルタリングを行い、参照画素点のフィルタリング画素値を得る。
【0180】
一例として、DBFフィルタリング(すなわちデブロッキングフィルタリング)方式を用いて現在画素点の元画素値に対してデブロッキングフィルタリングを行い、現在画素点のフィルタリング画素値を得、DBFフィルタリング方式を用いて参照画素点の元画素値に対してデブロッキングフィルタリングを行い、参照画素点のフィルタリング画素値を得る。もちろん、SAOフィルタリング方式を用いて現在画素点の元画素値に対してフィルタリングを行い、現在画素点のフィルタリング画素値を得、SAOフィルタリング方式を用いて参照画素点の元画素値に対してフィルタリングを行い、参照画素点のフィルタリング画素値を得てもよい。又は、ALFフィルタリング方式を用いて現在画素点の元画素値に対してフィルタリングを行い、現在画素点のフィルタリング画素値を得、ALFフィルタリング方式を用いて参照画素点の元画素値に対してフィルタリングを行い、参照画素点のフィルタリング画素値を得てもよい。説明の便宜上、後続する実施例において、DBFフィルタリング方式を用いて現在画素点及び参照画素点の元画素値に対してデブロッキングフィルタリングを行うことを例とする。
【0181】
図3に示すように、現在画素点の位置に基づいて、現在画素点及び参照画素点に対して水平DBFフィルタリングのみを行ってもよく、現在画素点及び参照画素点に対して垂直DBFフィルタリングのみを行ってもよく、さらに、まず現在画素点及び参照画素点に対して垂直DBFフィルタリングを行ってから、現在画素点及び参照画素点に対して水平DBFフィルタリングを行ってもよい。
【0182】
ステップS33において、現在画素点のフィルタリング画素値及び現在画素点の元画素値に基づいて、現在画素点の調整画素値を決定する。例えば、現在画素点のフィルタリング画素値、現在画素点の元画素値、第1のフィルタリング閾値、第2のフィルタリング閾値、第1のフィルタリングオフセット値及び第2のフィルタリングオフセット値に基づいて、現在画素点の調整画素値を決定し、ここで、当該第1のフィルタリング閾値と当該第2のフィルタリング閾値は互いに反数であってもよい。
【0183】
ステップS34において、参照画素点のフィルタリング画素値及び参照画素点の元画素値に基づいて、参照画素点の調整画素値を決定する。例えば、参照画素点のフィルタリング画素値、参照画素点の元画素値、第3のフィルタリング閾値、第4のフィルタリング閾値、第3のフィルタリングオフセット値及び第4のフィルタリングオフセット値に基づいて、参照画素点の調整画素値を決定し、ここで、当該第3のフィルタリング閾値と当該第4のフィルタリング閾値は互いに反数であってもよい。
【0184】
一例として、現在画素点が通常のフィルタリングモードのイネーブル条件のみを満たし、強調フィルタリングモードのイネーブル条件を満たさないと、ステップS31及びステップS32を実行し、フィルタリング画素値を目標画素値(デブロッキングフィルタリングプロセスの最終画素値)とする。現在画素点が通常のフィルタリングモードのイネーブル条件及び強調フィルタリングモードのイネーブル条件を満たすと、ステップS31~ステップS34を実行し、調整画素値を目標画素値(デブロッキングフィルタリングプロセスの最終画素値)とする。
【0185】
ステップS33及びステップS34において、フィルタリング画素値及びフィルタリング処理されていない元画素値に基づいて、画素点の元画素値に対して強調フィルタリング処理を行うことができ、すなわち、画素点の元画素値に対して強調フィルタリング処理を行い、強調処理された調整画素値を得ることにより、強調処理された調整画素値を、フィルタリング画素値よりも真の画素に近づけ、オーバーフィルタリングによるフィルタリング画素値が画素点の真の画素より遥かに大きく、又は遥かに小さいことを回避し、画像品質を向上させることができる。
【0186】
一例として、ステップS33には、現在画素点のフィルタリング画素値と現在画素点の元画素値との差分が第1のフィルタリング閾値より大きければ、現在画素点のフィルタリング画素値、現在画素点の元画素値及び第1のフィルタリングオフセット値に基づいて、現在画素点の調整画素値を決定してもよい。現在画素点のフィルタリング画素値と現在画素点の元画素値との差分が第2のフィルタリング閾値より小さければ、現在画素点のフィルタリング画素値、現在画素点の元画素値及び第2のフィルタリングオフセット値に基づいて、現在画素点の調整画素値を決定してもよい。
【0187】
例えば、Y1(i)を現在画素点の元画素値、Y2(i)を現在画素点のフィルタリング画素値、Y3(i)を現在画素点の調整画素値を表すようにとし、Yv(i)=(Y1(i)+Y2(i)+1)>>1とする。
【0188】
これに基づき、Y1(i)-Y2(i)>Tvであれば、Y3(i)=Clip(Yv(i)+f0v)となり、Y1(i)-Y2(i)<NTvであれば、Y3(i)=Clip(Yv(i)+f1v)となる。上記式において、Tvは第1のフィルタリング閾値を表すことができ、f0vは第1のフィルタリングオフセット値を表すことができ、NTvは第2のフィルタリング閾値を表すことができ、f1vは第2のフィルタリングオフセット値を表すことができ、NTvは一般的に-Tvとされ、他の値であってもよく、clip(x)はxを所定の値範囲内に制限することを表し、当該範囲は一般的に[0,2D-1]であり、Dは画像ビット深度であり、8ビットの画像に対して、範囲は[0,255]であり、10ビットの画像に対して、範囲は[0,1023]である。
【0189】
強調処理された調整画素値が画素値の値範囲を超えることを回避するために、調整画素値を得る時、Clip(クリップ)操作により、調整画素値を所定の値範囲にClipしてもよい。調整画素値が所定の値範囲の上限より大きい場合、調整画素値を所定の値範囲の上限に設定し、調整画素値が所定の値範囲の下限より小さい場合、調整画素値を所定の値範囲の下限に設定する。例えば、8ビットの画像を例とすると、調整画素値が0より小さい場合、調整画素値を0に設定し、調整画素値が255より大きい場合、調整画素値を255に設定する。
【0190】
一例として、ステップS34には、参照画素点のフィルタリング画素値と参照画素点の元画素値との差分が第3のフィルタリング閾値より大きければ、参照画素点のフィルタリング画素値、参照画素点の元画素値及び第3のフィルタリングオフセット値に基づいて、参照画素点の調整画素値を決定してもよい。参照画素点のフィルタリング画素値と参照画素点の元画素値との差分が第4のフィルタリング閾値より小さければ、参照画素点のフィルタリング画素値、参照画素点の元画素値及び第4のフィルタリングオフセット値に基づいて、参照画素点の調整画素値を決定してもよい。参照画素点の調整画素値の決定方式は現在画素点の調整画素値の決定方式と同様であり、ここでは重複する説明は省略する。
【0191】
一例として、第3のフィルタリング閾値と第1のフィルタリング閾値は同じであってもよく、異なってもよく、第3のフィルタリングオフセット値と第1のフィルタリングオフセット値は同じであってもよく、異なってもよく、第4のフィルタリング閾値と第2のフィルタリング閾値は同じであってもよく、異なってもよく、第4のフィルタリングオフセット値と第2のフィルタリングオフセット値は同じであってもよく、異なってもよい。
【0192】
1つの可能な実施形態において、復号側は、ハイレベルシンタックスから現在ブロックに対応する第1のフィルタリング閾値、第1のフィルタリングオフセット値、第2のフィルタリングオフセット値、第3のフィルタリング閾値、第3のフィルタリングオフセット値及び第4のフィルタリングオフセット値を解析してもよい。第1のフィルタリング閾値と第2のフィルタリング閾値は互いに反数であり、第3のフィルタリング閾値と第4のフィルタリング閾値は互いに反数であるため、復号側は第2のフィルタリング閾値と第4のフィルタリング閾値を決定することができる。
【0193】
別の可能な実施形態において、復号側は、ハイレベルシンタックスから現在ブロックに対応する第1のフィルタリング閾値、第1のフィルタリングオフセット値、第2のフィルタリングオフセット値、第4のフィルタリング閾値、第3のフィルタリングオフセット値及び第4のフィルタリングオフセット値を解析してもよい。第1のフィルタリング閾値と第2のフィルタリング閾値は互いに反数であり、第3のフィルタリング閾値と第4のフィルタリング閾値は互いに反数であるため、復号側は第2のフィルタリング閾値と第3のフィルタリング閾値を決定することができる。
【0194】
別の可能な実施形態において、復号側は、ハイレベルシンタックスから現在ブロックに対応する第2のフィルタリング閾値、第1のフィルタリングオフセット値、第2のフィルタリングオフセット値、第3のフィルタリング閾値、第3のフィルタリングオフセット値及び第4のフィルタリングオフセット値を解析してもよい。第1のフィルタリング閾値と第2のフィルタリング閾値は互いに反数であり、第3のフィルタリング閾値と第4のフィルタリング閾値は互いに反数であるため、復号側は第1のフィルタリング閾値と第4のフィルタリング閾値を決定することができる。
【0195】
別の可能な実施形態において、復号側は、ハイレベルシンタックスから現在ブロックに対応する第2のフィルタリング閾値、第1のフィルタリングオフセット値、第2のフィルタリングオフセット値、第4のフィルタリング閾値、第3のフィルタリングオフセット値及び第4のフィルタリングオフセット値を解析してもよい。第1のフィルタリング閾値と第2のフィルタリング閾値は互いに反数であり、第3のフィルタリング閾値と第4のフィルタリング閾値は互いに反数であるため、復号側は第1のフィルタリング閾値と第3のフィルタリング閾値を決定することができる。
【0196】
別の可能な実施形態において、復号側は、ハイレベルシンタックスから現在ブロックに対応する第1のフィルタリング閾値(又は第2のフィルタリング閾値、又は第3のフィルタリング閾値、又は第4のフィルタリング閾値、すなわち、1つのフィルタリング閾値により他の3つのフィルタリング閾値を導出することができる)、第1のフィルタリングオフセット値(又は第3のフィルタリングオフセット値)及び第2のフィルタリングオフセット値(又は第4のフィルタリングオフセット値)を解析してもよい。これに基づき、第1のフィルタリング閾値と第2のフィルタリング閾値は互いに反数であるため、第2のフィルタリング閾値を決定することができる。第1のフィルタリング閾値と第3のフィルタリング閾値は同じであるため、第3フィルタリング閾値を決定することができる。第3のフィルタリングオフセット値と第1のフィルタリングオフセット値は同じであるため、第3のフィルタリングオフセット値を決定することができる。第4のフィルタリングオフセット値と第2のフィルタリングオフセット値は同じであるため、第4のフィルタリングオフセット値を決定することができる。第3のフィルタリング閾値と第4のフィルタリング閾値は互いに反数であるため、第4のフィルタリング閾値を決定することができる。
【0197】
もちろん、上記形態はいくつかの例に過ぎず、復号化側が第1のフィルタリング閾値、第2のフィルタリング閾値、第3のフィルタリング閾値、第4のフィルタリング閾値、第1のフィルタリングオフセット値、第2のフィルタリングオフセット値、第3のフィルタリングオフセット値及び第4のフィルタリングオフセット値を取得できれば、これについて限定せず、すなわち、上記各数値は解析又は導出によって得ることができる。
【0198】
上記実施例において、ハイレベルシンタックスは、SPSレベルのハイレベルシンタックス、PPSレベルのハイレベルシンタックス、画像ヘッダレベルのハイレベルシンタックス、画像レベルのハイレベルシンタックス、スライスヘッダレベルのハイレベルシンタックス、CTUレベルのハイレベルシンタックス、CUレベルのハイレベルシンタックスのうちの1つを含み得るが、これらに限定されない。もちろん、以上はハイレベルシンタックスのいくつかの例に過ぎず、ハイレベルシンタックスによって現在ブロックに対応するフィルタリング閾値及びフィルタリングオフセット値を付加することができれば、このハイレベルシンタックスのタイプについては限定しない。
【0199】
上記実施例において、現在ブロックにおける現在画素点の画素値は輝度成分又は色度成分であってもよい。
【0200】
1つの可能な実施形態において、強調フィルタリングモードイネーブルフラグビットにより強調フィルタリングモードをイネーブルすることを許可するか否かを表すことができ、強調フィルタリングモードイネーブルフラグビットは現在ブロックが強調フィルタリングモードをイネーブルすることを許可すると、現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすか否かを決定する必要があり、現在画素点が強調フィルタリングモードのイネーブル条件を満たすと、強調フィルタリングモードを用いて現在画素点の元画素値を調整する。強調フィルタリングモードイネーブルフラグビットは現在ブロックが強調フィルタリングモードをイネーブルすることを許可しないと、現在ブロックにおける各画素点が強調フィルタリングモードのイネーブル条件を満たさないと直接決定し、強調フィルタリングモードを用いて現在画素点の元画素値を調整することはない。これに基づき、現在ブロックに対応する強調フィルタリングモードイネーブルフラグビットは現在ブロックが強調フィルタリングモードをイネーブルすることを許可すると、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすか否かを決定する。現在ブロックに対応する強調フィルタリングモードイネーブルフラグビットは現在ブロックが強調フィルタリングモードをイネーブルすることを許可しないと、現在ブロックにおける各画素点が強調フィルタリングモードのイネーブル条件を満たさないと決定する。
【0201】
一例として、復号側は、ハイレベルシンタックスから現在ブロックに対応する強調フィルタリングモードイネーブルフラグビットを解析してもよい。例えば、当該強調フィルタリングモードイネーブルフラグビットが第1の値(例えば1)であれば、強調フィルタリングモードイネーブルフラグビットは現在ブロックが強調フィルタリングモードをイネーブルすることを許可することが示され、当該強調フィルタリングモードイネーブルフラグビットが第2の値(例えば0)であれば、強調フィルタリングモードイネーブルフラグビットは現在ブロックが強調フィルタリングモードをイネーブルすることを許可しないことが示される。
【0202】
上記実施例において、ハイレベルシンタックスは、SPSレベルのハイレベルシンタックス、PPSレベルのハイレベルシンタックス、画像ヘッダレベルのハイレベルシンタックス、画像レベルのハイレベルシンタックス、スライスヘッダレベルのハイレベルシンタックス、CTUレベルのハイレベルシンタックス、CUレベルのハイレベルシンタックスのうちの1つを含み得るが、これらに限定されない。もちろん、以上はハイレベルシンタックスのいくつかの例に過ぎず、ハイレベルシンタックスによって現在ブロックに対応する強調フィルタリングモードイネーブルフラグビットを付加することができれば、このハイレベルシンタックスのタイプについては限定しない。
【0203】
実施例8:通常のフィルタリングモードのイネーブル条件を満たす場合、DBFフィルタリング方式(すなわちデブロッキングフィルタリング方式)を用いて画素点の元画素値に対してデブロッキングフィルタリングを行うことができ、DBFフィルタリングは垂直DBFフィルタリングと水平DBFフィルタリングに分けられるため、以下のステップを用いて画素点の元画素値に対してデブロッキングフィルタリング処理を行ってもよい。
【0204】
ステップ1において、元画素値Y1(i)を垂直DBFフィルタリングによってフィルタリングした後にフィルタリング画素値Y2(i)を得、
ステップ2において、画素値Y2(i)を水平DBFフィルタリングによってフィルタリングした後にフィルタリング画素値Y3(i)を得る。
【0205】
一例として、画素点に対して垂直DBFフィルタリングのみを行えば、ステップ1のみを実行し、画素点のフィルタリング画素値を得る。画素点に対して水平DBFフィルタリングのみを行えば、ステップ2のみを実行し、画素点のフィルタリング画素値を得、ステップ2の画素値Y2(i)を画素点の元画素値に置き換えればよい。画素点に対して、まず垂直DBFフィルタリングを行ってから、水平DBFフィルタリングを行えば、ステップ1及びステップ2を順次実行する。
【0206】
通常のフィルタリングモードのイネーブル条件及び強調フィルタリングモードのイネーブル条件を満たす場合、DBFフィルタリング方式(すなわちデブロッキングフィルタリング方式)を用いて画素点の元画素値に対してデブロッキングフィルタリングを行い、デブロッキングフィルタリングされたフィルタリング画素値を調整してもよく、DBFフィルタリングは垂直DBFフィルタリングと水平DBFフィルタリングに分けられるため、以下のステップを用いて画素点の元画素値に対してデブロッキングフィルタリング処理を行い、デブロッキングフィルタリングされたフィルタリング画素値を調整してもよい。
【0207】
ステップ1において、元画素値Y1(i)を垂直DBFフィルタリングによってフィルタリングした後にフィルタリング画素値Y2(i)を得、
ステップ2において、Y2(i)-Y1(i)に基づいて、調整画素値Y3(i)を得、
ステップ3において、画素値Y3(i)を水平DBFフィルタリングによってフィルタリングした後にフィルタリング画素値Y4(i)を得、
ステップ4において、Y4(i)-Y3(i)に基づいて、調整画素値Y5(i)を得る。
【0208】
一例として、画素点に対して垂直DBFフィルタリングのみを行えば、ステップ1及びステップ2のみを実行し、画素点の調整画素値を得る。画素点に対して水平DBFフィルタリングのみを行えば、ステップ3及びステップ4のみを実行し、画素点の調整画素値を得、ステップ3の画素値Y3(i)を画素点の元画素値に置き換えればよい。画素点に対して、まず垂直DBFフィルタリングを行ってから、水平DBFフィルタリングを行えば、ステップ1、ステップ2、ステップ3及びステップ4を順次実行する。画素点に対して、まず水平DBFフィルタリングを行ってから、垂直DBFフィルタリングを行えば、実行するステップは類似するため、ここでは重複する説明は省略する。
【0209】
一例として、ステップ2及びステップ4は、強調フィルタリングモードのイネーブル条件を満たす場合、強調フィルタリングモードを用いる処理プロセスであり、すなわち、フィルタリング画素値を調整し、調整画素値を得るプロセスである。
【0210】
ステップ2において、Yv(i)=(Y1(i)+Y2(i)+1)>>1とすると、Y1(i)-Y2(i)>Tvであれば、Y3(i)=Clip(Yv(i)+f0v)となり、Y1(i)-Y2(i)<NTvであれば、Y3(i)=Clip(Yv(i)+f1v)となり、それ以外の場合、Y3(i)=Y2(i)となる(一実施例において、この場合はY2(i)に対してフィルタリングを行って、Y3(i)を得てもよく、例えばY3(i)=Y2(i)+f2vである)。
【0211】
一例として、clip(x)はxを所定の画像の値範囲内に制限することを表し、当該画像の値範囲は一般的に[0,2D-1]であり、Dは画像のビット深度であるため、8ビットの画像に対して、当該画像の値範囲は[0,255]であってもよく、10ビットの画像に対して、当該画像の値範囲は[0,1023]である。閾値NTvは、一般的に-Tvとされ、他の値であってもよい。
【0212】
同様に、ステップ2の処理プロセスと類似し、ステップ4において、Yh(i)=(Y3(i)+Y4(i)+1)>>1とすると、Y4(i)-Y3(i)>Thであれば、Y5(i)=Clip(Yh(i)+f0h)となり、Y1(i)-Y2(i)<NThであれば、Y5(i)=Clip(Yh(i)+f1h)となり、それ以外の場合、Y5(i)=Y4(i)となり(一実施例において、この場合はY4(i)に対してフィルタリングを行って、Y5(i)を得てもよく、例えばY5(i)=Y4(i)+f2hである)、NThは一般的に-Thとされ、他の値であってもよい。
【0213】
上記実施例において、Tv及びNTvはフィルタリング閾値であり、f0v、f1v及びf2vはフィルタリングオフセット値であり、clip(x)はxを所定の値範囲内に制限することを表す。例えば、Tvは上記における第1のフィルタリング閾値及び第3のフィルタリング閾値(第1のフィルタリング閾値と第3のフィルタリング閾値が同じであることを例とする)であり、NTvは上記における第2のフィルタリング閾値及び第4のフィルタリング閾値(第2のフィルタリング閾値と第4のフィルタリング閾値が同じであることを例とする)であり、f0vは上記における第1のフィルタリングオフセット値及び第3のフィルタリングオフセット値(第1のフィルタリングオフセット値及び第3のフィルタリングオフセット値が同じであることを例とする)であり、f1vは上記における第2のフィルタリングオフセット値及び第4のフィルタリングオフセット値(第2のフィルタリングオフセット値及び第4のフィルタリングオフセット値が同じであることを例とする)である。NTv=-Tv、すなわち、TvとNTvは互いに反数である。
【0214】
上記実施例において、Th及びNThはフィルタリング閾値であり、f0h、f1h及びf2hはフィルタリングオフセット値であり、clip(x)はxを所定の値範囲内に制限することを表す。例えば、Thは上記における第1のフィルタリング閾値及び第3のフィルタリング閾値(第1のフィルタリング閾値と第3のフィルタリング閾値が同じであることを例とする)であり、NThは上記における第2のフィルタリング閾値及び第4のフィルタリング閾値(第2のフィルタリング閾値と第4のフィルタリング閾値が同じであることを例とする)であり、f0hは上記における第1のフィルタリングオフセット値及び第3のフィルタリングオフセット値(第1のフィルタリングオフセット値及び第3のフィルタリングオフセット値が同じであることを例とする)であり、f1hは上記における第2のフィルタリングオフセット値及び第4のフィルタリングオフセット値(第2のフィルタリングオフセット値及び第4のフィルタリングオフセット値が同じであることを例とする)である。NTh=-Th、すなわち、ThとNThは互いに反数である。
【0215】
実施例9:DBFにおいて、1つの既定の基準に従ってフィルタリングを行うと、オーバーフィルタリング又はアンダーフィルタリングの状況が存在する。例えば、DBFを行う前の再構成値がY1であり、DBFフィルタリングされた画素値がY2であれば、Y2-Y1に基づいて分類してもよい。フィルタリング残差に基づく分類の主な利点は、いくつかのオーバーフィルタリング又は偽フィルタリングされた画素値に対して特別な強調を行って、これらの画素が元の値により近づけるという効果を実現できることである。オーバーフィルタリングとは、Y2がY1より遥かに大きい(又は遥かに小さい)ことで、Y2が元画素値より遥かに大きい(又は遥かに小さい)ことである。偽フィルタリングとは、Y2-Y1が0であり、又は0に接近し、すなわち、これらの画素値がフィルタリングされた後にも変化せず、フィルタリング効果が得られないことである。上記発見については、本実施例において、強調調整モードを用いて画素点の画素値を調整することができ、すなわち、現在ブロックにおける現在画素点に対して強調調整モードをイネーブルすると、通常のフィルタリングモード又は強調フィルタリングモードを用いて画素点の元画素値を調整することなく、強調調整モードを用いて画素点の元画素値を調整することができる。
【0216】
1つの可能な実施形態において、元画素値の調整プロセスは、以下のステップを含み得る。
【0217】
ステップ1において、元画素値Y1(i)を垂直DBFフィルタリングによってフィルタリングした後にフィルタリング画素値Y2(i)を得、
ステップ2において、Y2(i)-Y1(i)に基づいて、調整画素値Y3(i)を得、
ステップ3において、画素値Y3(i)を水平DBFフィルタリングによってフィルタリングした後にフィルタリング画素値Y4(i)を得、
ステップ4において、Y4(i)-Y3(i)に基づいて、調整画素値Y4(i)を得る。
【0218】
ステップ2において、abs(Y2(i)-Y1(i))<閾値及びabs(Y2(i)-Y1(i))が閾値より小さくないという2つの場合が存在し、abs(Y2(i)-Y1(i))<閾値であれば、さらに、BSが0であり、BSが0より大きいという2つの場合に分けられる。一例として、当該閾値は上記実施例の第1のフィルタリング閾値又は第2のフィルタリング閾値であってもよく、例えば、第1のフィルタリング閾値と第2のフィルタリング閾値は互いに反数であり、第1のフィルタリング閾値が正の値であれば、当該閾値は第1のフィルタリング閾値であってもよく、第2のフィルタリング閾値が正の値であれば、当該閾値は第2のフィルタリング閾値であってもよい。
【0219】
以上をまとめると、元画素値の調整プロセスを以下の3つの場合に分けることができる。
【0220】
場合1において、BSは0であり、このとき、フィルタリングを行わない(すなわち、Y2(i)がY1(i)に等しく、元画素値Y1(i)に対して垂直DBFフィルタリングを行わないことに相当し、すなわち、ステップ1を実行しない)が、強調調整モードを用いて元画素値Y1(i)を調整し、調整画素値を得ることができる。
【0221】
場合2において、BSは0より大きいが、abs(Y2(i)-Y1(i))<閾値であり、このとき、フィルタリングを行うことができる(すなわち、元画素値Y1(i)に対して垂直DBFフィルタリングを行い、すなわち、ステップ1を実行する)。ステップ1を実行する上で、さらに、強調フィルタリングモードを用いてフィルタリング画素値Y2(i)を調整し、画素点の調整画素値Y3(i)を得ることができる。
【0222】
場合3において、BSは0より大きいが、abs(Y2(i)-Y1(i))が閾値より小さくなく、このとき、フィルタリングを行うことができる(すなわち、元画素値Y1(i)に対して垂直DBFフィルタリングを行い、すなわち、ステップ1を実行する)。ステップ1を実行する上で、強調フィルタリングモードを用いてフィルタリング画素値Y2(i)を調整せず、すなわち、ステップ2を実行せず、すなわち、Y3(i)=Y2(i)となる。
【0223】
ステップ4では、abs(Y4(i)-Y3(i))<閾値であり、abs(Y4(i)-Y3(i))が閾値より小さくないという2つの場合が存在し、abs(Y4(i)-Y3(i))<閾値であれば、さらに、BSが0であり、BSが0より大きいという2つの場合に分けられる。
【0224】
以上をまとめると、元画素値の調整プロセスを以下の3つの場合に分けることができる。
【0225】
場合1において、BSは0であり、このとき、フィルタリングを行わない(すなわち、Y4(i)がY3(i)に等しく、元画素値Y3(i)に対して水平DBFフィルタリングを行わないことに相当し、ステップ3を実行しない)が、強調調整モードを用いて元画素値Y3(i)を調整し、調整画素値を得ることができる。
【0226】
場合2において、BSは0より大きいが、abs(Y4(i)-Y3(i))<閾値であり、このとき、フィルタリングを行うことができ(すなわち、元画素値Y3(i)に対して水平DBFフィルタリングを行い、すなわち、ステップ3を実行する)、ステップ3を実行する上で、さらに、強調フィルタリングモードを用いて画素点のフィルタリング画素値Y4(i)を調整し、画素点の調整画素値Y5(i)を得ることができる。
【0227】
場合3において、BSは0より大きいが、abs(Y4(i)-Y3(i))は閾値より小さくなく、このとき、フィルタリングを行うことができる(すなわち、元画素値Y3(i)に対して水平DBFフィルタリングを行い、すなわち、ステップ3を実行する)。ステップ3を実行する上で、強調フィルタリングモードを用いてフィルタリング画素値Y4(i)を調整せず、すなわち、ステップ4を実行せず、すなわち、Y5(i)=Y4(i)となる。
【0228】
以上をまとめると、BSが0であれば、強調調整モードを用いて処理し、すなわち、フィルタリング処理を行わなくてもよく、すなわち、Y2(i)=Y1(i)で、且つY4(i)=Y3(i)であり、これに基づき、強調調整モードを用いてY1(i)を調整することができ、強調調整モードを用いてY3(i)を調整することができ、したがって、以下のステップを用いてDBFフィルタリング処理を行うことができる。
【0229】
ステップ1において、元画素値Y1(i)を垂直DBFフィルタリングによってフィルタリングした後にフィルタリング画素値Y2(i)を得る。
【0230】
ステップ2において、BSが0であれば、強調調整モードによりY1(i)を調整し、調整画素値Y3(i)を得る。BSが0より大きく、且つabs(Y2(i)-Y1(i))<閾値であれば、強調フィルタリングモードをイネーブルし、Y2(i)-Y1(i)に基づいて、調整画素値Y3(i)を取得し、実施例8のステップ2を参照する。BSが0より大きく、且つabs(Y2(i)-Y1(i))が閾値より小さくなければ、通常のフィルタリングモードをイネーブルし、フィルタリング画素値Y2(i)を調整せず、すなわち、Y3(i)=Y2(i)となる。
【0231】
一例として、BSが0であれば、実際にはステップ1を実行せず、すなわち、フィルタリング画素値Y2(i)を得る必要がない。
【0232】
ステップ3において、画素値Y3(i)を水平DBFフィルタリングによってフィルタリングした後にフィルタリング画素値Y4(i)を得る。
【0233】
ステップ4において、BSが0であれば、強調調整モードによりY3(i)を調整し、調整画素値Y5(i)を得る。BSが0より大きく、且つabs(Y4(i)-Y3(i))<閾値であれば、強調フィルタリングモードをイネーブルし、Y4(i)-Y3(i)に基づいて、調整画素値Y5(i)を取得し、実施例8のステップ4を参照する。BSが0より大きく、且つabs(Y4(i)-Y3(i))が閾値より小さくなければ、通常のフィルタリングモードをイネーブルし、フィルタリング画素値Y4(i)を調整せず、すなわち、Y5(i)=Y4(i)となる。
【0234】
一例として、BSが0であれば、実際にはステップ3を実行せず、すなわち、フィルタリング画素値Y4(i)を得る必要がない。
【0235】
別の可能な実施形態において、BSが0より大きければ、フィルタリング処理を行うが、フィルタリング処理された後、abs(Y2(i)-Y1(i))<閾値となると、強調フィルタリングモードで処理し、すなわち、以下のステップでDBFフィルタリング処理を行うことができる。
【0236】
ステップ1において、元画素値Y1(i)を垂直DBFフィルタリングによってフィルタリングした後にフィルタリング画素値Y2(i)を得る。
【0237】
ステップ2において、BSが0より大きいが、Y1(i)に対して垂直DBFフィルタリングを行った後、依然としてabs(Y2(i)-Y1(i))<閾値を満たすと、強調フィルタリングモードにより調整画素値Y3(i)を取得し、例えば、Y1(i)に補償値を加えることによりY3(i)を取得する。そうでなく、abs(Y2(i)-Y1(i))が閾値より小さくなければ、Y3(i)=Y2(i)となる。
【0238】
ステップ3において、画素値Y3(i)を水平DBFフィルタリングによってフィルタリングした後にフィルタリング画素値Y4(i)を得る。
【0239】
ステップ4において、BSが0より大きいが、Y3(i)に対して水平DBFフィルタリングを行った後、依然としてabs(Y4(i)-Y3(i))<閾値を満たすと、強調フィルタリングモードにより調整画素値Y5(i)を取得し、例えば、Y3(i)に補償値を加えることによりY5(i)を取得する。そうでなく、abs(Y4(i)-Y3(i))が閾値より小さくなければ、Y5(i)=Y4(i)となる。
【0240】
実施例10:実施例9に対して、BSが0であれば、強調調整モードによりY1(i)を調整し、調整画素値Y3(i)を得、具体的な調整プロセスは以下のステップを参照する。BSが0であれば、強調調整モードによりY3(i)を調整し、調整画素値Y5(i)を得、当該プロセスは調整画素値Y3(i)を得るプロセスと類似するため、ここでは重複する説明は省略する。
【0241】
まず、Y1(i)の勾配値を決定し、Y1(i)は現在画素点の元画素値であってもよく、参照画素点の元画素値であってもよい。垂直境界に対して、Y1(i)の水平勾配値DY1(i)を計算してよく、水平境界に対して、Y1(i)の垂直勾配値DY1(i)を計算してよい。例えば、pi及びqiをそれぞれ現在画素点の元画素値及び参照画素点の元画素値(Y1(i)に対応する)とすると、現在画素点の元画素値piの勾配値DP0を計算し、DP0=(pi-qi+2)>>2となり、参照画素点の元画素値qiの勾配値DQ0を計算し、DQ0=(qi-pi+2)>>2となる。
【0242】
そして、DY1(i)の大きさに基づいて、補償調整を行ってY3(i)を得る。例えば、以下の方式で現在画素点の元画素値piに対応する調整画素値Piを決定する。DPi>alt_dbr_thであれば、Pi=clip(pi+alt_dbr_offset0)となり、DPi<-alt_dbr_thであれば、Pi=clip(pi+alt_dbr_offset1)となり、iは0、1、2などである。以下の方式で参照画素点の元画素値qiに対応する調整画素値Qiを決定する。DQi>alt_dbr_thであれば、Qi=clip(qi+alt_dbr_offset0)となり、DQi<-alt_dbr_thであれば、Qi=clip(qi+alt_dbr_offset1)となり、iは0、1、2である。
【0243】
上記式では、alt_dbr_thは第1の調整閾値及び第3の調整閾値(第3の調整閾値と第1の調整閾値が同じであることを例とする)を表し、alt_dbr_offset0は第1の調整オフセット値及び第3の調整オフセット値(第3の調整オフセット値と第1の調整オフセット値が同じであることを例とする)を表し、alt_dbr_offset1は第2の調整オフセット値及び第4の調整オフセット値(第4の調整オフセット値と第2の調整オフセット値が同じであることを例とする)を表し、-alt_dbr_thは第2の調整閾値と第4の調整閾値(第4の調整閾値と第2の調整閾値が同じであることを例とする)を表し、且つ-alt_dbr_thとalt_dbr_thは互いに反数である。
【0244】
実施例11:ハイレベルシンタックス(例えばSPSレベルのハイレベルシンタックス)により強調調整モードのイネーブルを制御する。例えば、シーケンスヘッダにおいてフラグビットadbr_enable_flagを符号化/復号し、すなわち、符号化側はシーケンスヘッダにおいてフラグビットadbr_enable_flagを符号化し、復号側はシーケンスヘッダからフラグビットadbr_enable_flagを復号する。adbr_enable_flagは二値変数であり、値「1」は強調調整モードが使用可能であることを表し、値「0」は強調調整モードを使用すべきでないことを表す。AdbrEnableFlagの値はadbr_enable_flagに等しく、ビットストリームにadbr_enable_flagが存在しなければ、AdbrEnableFlagの値は0となる。
【0245】
以上をまとめると、復号側は、ハイレベルシンタックスから現在ブロックに対応する強調調整モードイネーブルフラグビット(すなわちAdbrEnableFlag)を解析してもよく、当該強調調整モードイネーブルフラグビットが1であれば、強調調整モードイネーブルフラグビットは現在ブロックが強調調整モードをイネーブルすることを許可することが示され、当該強調調整モードイネーブルフラグビットが0であれば、強調調整モードイネーブルフラグビットは現在ブロックが強調調整モードをイネーブルすることを許可しないことが示される。
【0246】
実施例12:ハイレベルシンタックス(例えばSPSレベルのハイレベルシンタックス)により強調フィルタリングモードのイネーブル及び強調調整モードのイネーブルを同時に制御する。例えば、シーケンスヘッダにおいてフラグビットdbr_enable_flagを符号化/復号し、すなわち、符号化側はシーケンスヘッダにおいてフラグビットdbr_enable_flagを符号化し、復号側はシーケンスヘッダからフラグビットdbr_enable_flagを復号する。
【0247】
dbr_enable_flagは二値変数であり、値「1」は強調フィルタリングモード及び強調調整モードの使用を許可することを表し、値「0」は強調フィルタリングモード及び強調調整モードの使用を許可しないことを表す。DbrEnableFlagの値はdbr_enable_flagに等しく、ビットストリームにdbr_enable_flagが存在しなければ、DbrEnableFlagの値は0となる。
【0248】
以上をまとめると、復号側は、ハイレベルシンタックスから現在ブロックに対応する強調フィルタリングモードイネーブルフラグビット及び強調調整モードイネーブルフラグビット(すなわちDbrEnableFlagであり、つまり、DbrEnableFlagを同時に強調フィルタリングモードイネーブルフラグビット及び強調調整モードイネーブルフラグビットとする)を解析することができ、DbrEnableFlagが1であれば、現在ブロックが強調フィルタリングモード及び強調調整モードをイネーブルすることを許可することが示され、DbrEnableFlagが0であれば、現在ブロックが強調フィルタリングモード及び強調調整モードをイネーブルすることを許可しないことが示される。
【0249】
実施例13:ハイレベルシンタックス(例えば画像ヘッダのハイレベルシンタックス)の1つの表現は表1に示すものを参照することができ、例えば、画像ヘッダにおいて表1に示すシンタックスを符号化/復号する。すなわち、符号化側は画像ヘッダにおいて表1に示すシンタックスを符号化し、復号側は画像ヘッダから表1に示すシンタックスを復号する。
【0250】
【0251】
表1において、関連シンタックスの意味は以下のとおりである。
画像レベルのデブロッキングフィルタリング垂直調整の許可フラグビットpicture_dbr_v_enable_flag:picture_dbr_v_enable_flagは二値変数であり、値「1」は現在画像がデブロッキングフィルタリング垂直調整の使用を許可することを表し、値「0」は現在画像がデブロッキングフィルタリング垂直調整の使用を許可しないことを表す。PictureDbrVEnableFlagの値はpicture_dbr_v_enable_flagの値に等しく、ビットストリームにpicture_dbr_v_enable_flagが存在しなければ、PictureDbrVEnableFlagの値は0となる。
【0252】
一例として、強調調整モードについては、PictureDbrVEnableFlagは強調調整モードイネーブルフラグビットに対応し、垂直DBFフィルタリングに対する強調調整モードイネーブルフラグビットである。すなわち、垂直DBFフィルタリングを行う必要がある場合、PictureDbrVEnableFlagは強調調整モードのイネーブルを許可し、又は強調調整モードのイネーブルを許可しないことを表す。
【0253】
一例として、強調フィルタリングモードについては、PictureDbrVEnableFlagは強調フィルタリングモードイネーブルフラグビットに対応し、垂直DBFフィルタリングに対する強調フィルタリングモードイネーブルフラグビットである。すなわち、垂直DBFフィルタリングを行う必要がある場合、PictureDbrVEnableFlagは強調フィルタリングモードのイネーブルを許可すること、又は強調フィルタリングモードのイネーブルを許可しないことを表す。
【0254】
以上をまとめると、PictureDbrVEnableFlagは垂直DBFフィルタリングに対する強調調整モードイネーブルフラグビット、及び垂直DBFフィルタリングに対する強調フィルタリングモードイネーブルフラグビットを表すことができ、すなわち、強調調整モードイネーブルフラグビットと強調フィルタリングモードイネーブルフラグビットは同一のフラグビットを共有し、すなわち、現在画像は強調調整モードと強調フィルタリングモードの両方のイネーブルを同時に許可し、又は、現在画像は強調調整モードと強調フィルタリングモードの両方のイネーブルを同時に許可しない。
【0255】
デブロッキングフィルタリング垂直調整閾値dbr_v_threshold_minus1:dbr_v_threshold_minus1は現在画像のデブロッキングフィルタリング垂直調整の閾値を決定するために用いられ、値範囲は0~1である。DbrVThresholdの値はdbr_v_threshold_minus1の値に1を加える値に等しく、ビットストリームにdbr_v_threshold_minus1が存在しなければ、DbrVThresholdの値は0となる。
【0256】
例示的に、強調調整モードについては、DbrVThresholdは第1の調整閾値(第3の調整閾値と第1の調整閾値が同じであることを例とする)に対応し、垂直DBFフィルタリングに対する第1の調整閾値である。つまり、垂直DBFフィルタリングを行う必要がある場合、DbrVThresholdは上記実施例の第1の調整閾値を表す。また、上記実施例の第2の調整閾値(第4の調整閾値と第2の調整閾値が同じであることを例とする)と第1の調整閾値は互いに反数であるため、DbrVThresholdに基づいて第2の調整閾値を決定することができる。
【0257】
例示的に、強調フィルタリングモードについては、DbrVThresholdは第1のフィルタリング閾値(第3のフィルタリング閾値と第1のフィルタリング閾値が同じであることを例とする)に対応し、垂直DBFフィルタリングに対する第1のフィルタリング閾値である。つまり、垂直DBFフィルタリングを行う必要がある場合、DbrVThresholdは上記実施例の第1のフィルタリング閾値を表す。また、上記実施例の第2のフィルタリング閾値(第4のフィルタリング閾値と第2のフィルタリング閾値が同じであることを例とする)と第1のフィルタリング閾値は互いに反数であるため、DbrVThresholdに基づいて第2のフィルタリング閾値を決定することができる。
【0258】
以上をまとめると、DbrVThresholdは垂直DBFフィルタリングに対する第1の調整閾値及び第1のフィルタリング閾値を表すことができ、すなわち、第1の調整閾値と第1のフィルタリング閾値は同じであり、両者は同一の値である。
【0259】
デブロッキングフィルタリング垂直調整オフセット値0(dbr_v_offset0_minus1):現在画像のデブロッキングフィルタリング垂直調整のオフセット値0を決定するために用いられ、値範囲は0~3である。DbrVOffset0の値はdbr_v_offset0_minus1の値に1を加えた後に反数にして得られた負の値に等しく、ビットストリームにdbr_v_offset0_minus1が存在しなければ、DbrVOffset0の値は0となる。
【0260】
一例として、強調フィルタリングモードについては、DbrVOffset0は第1のフィルタリングオフセット値(第3のフィルタリングオフセット値と第1のフィルタリングオフセット値が同じであることを例とする)に対応し、垂直DBFフィルタリングに対する第1のフィルタリングオフセット値であり、すなわち、垂直DBFフィルタリングを行う必要がある場合、DbrVOffset0は上記実施例の第1のフィルタリングオフセット値を表す。
【0261】
デブロッキングフィルタリング垂直調整オフセット値1(dbr_v_offset1_minus1):現在画像のデブロッキングフィルタリング垂直調整のオフセット値1を決定するために用いられ、値範囲は0~3であってもよい。DbrVOffset1の値はdbr_v_offset1_minus1の値に1を加える値に等しい。ビットストリームにdbr_v_offset1_minus1が存在しなければ、DbrVOffset1の値は0となる。
【0262】
一例として、強調フィルタリングモードについては、DbrVOffset1は第2のフィルタリングオフセット値(第4のフィルタリングオフセット値と第2のフィルタリングオフセット値が同じであることを例とする)に対応し、垂直DBFフィルタリングに対する第2のフィルタリングオフセット値であり、すなわち、垂直DBFフィルタリングを行う必要がある場合、DbrVOffset1は上記実施例の第2のフィルタリングオフセット値を表す。
【0263】
強調デブロッキングフィルタリング垂直調整オフセット値0(dbr_v_alt_offset0_minus1):dbr_v_alt_offset0_minus1は現在画像のデブロッキングフィルタリングBSが0である時の垂直調整のオフセット値0を決定するために用いられ、dbr_v_alt_offset0_minus1の値範囲は0~3であってもよい。DbrVAltOffset0の値はdbr_v_alt_offset0_minus1の値に1を加えた後に反数にして得られた負の値に等しく、ビットストリームにdbr_v_alt_offset0_minus1が存在しなければ、DbrVAltOffset0の値は0となる。
【0264】
一例として、強調調整モードについては、DbrVAltOffset0は第1の調整オフセット値(第3の調整オフセット値と第1の調整オフセット値が同じであることを例とする)に対応し、垂直DBFフィルタリングに対する第1の調整オフセット値であり、すなわち、垂直DBFフィルタリングを行う必要がある場合、DbrVAltOffset0は上記実施例の第1の調整オフセット値を表す。
【0265】
強調デブロッキングフィルタリング垂直調整オフセット値1(dbr_v_alt_offset1_minus1):dbr_v_alt_offset1_minus1は現在画像のデブロッキングフィルタリングBSが0である時の垂直調整のオフセット値1を決定するために用いられ、dbr_v_alt_offset1_minus1の値範囲は0~3であってもよい。ここで、DbrVAltOffset1の値はdbr_v_alt_offset1_minus1の値に1を加える値に等しく、ビットストリームにdbr_v_alt_offset1_minus1が存在しなければ、DbrVAltOffset1の値は0となる。
【0266】
一例として、強調調整モードについては、DbrVAltOffset1は第2の調整オフセット値(第4の調整オフセット値と第2の調整オフセット値が同じであることを例とする)に対応し、垂直DBFフィルタリングに対する第2の調整オフセット値であり、すなわち、垂直DBFフィルタリングを行う必要がある場合、DbrVAltOffset1は上記実施例の第2の調整オフセット値を表す。
【0267】
画像レベルのデブロッキングフィルタリング水平調整の許可フラグビットpicture_dbr_h_enable_flag:picture_dbr_h_enable_flagは二値変数であり、値「1」は現在画像がデブロッキングフィルタリング水平調整の使用を許可することを表し、値「0」は現在画像がデブロッキングフィルタリング水平調整の使用を許可しないことを表す。PhDbrHEnableFlagの値はpicture_dbr_h_enable_flagの値に等しく、ビットストリームにpicture_dbr_h_enable_flagが存在しなければ、PhDbrHEnableFlagの値は0となる。
【0268】
一例として、強調調整モードについては、PhDbrHEnableFlagは強調調整モードイネーブルフラグビットに対応し、水平DBFフィルタリングに対する強調調整モードイネーブルフラグビットである。すなわち、水平DBFフィルタリングを行う必要がある場合、PhDbrHEnableFlagは強調調整モードのイネーブルを許可し、又は強調調整モードのイネーブルを許可しないことを表す。
【0269】
一例として、強調フィルタリングモードについては、PhDbrHEnableFlagは強調フィルタリングモードイネーブルフラグビットに対応し、水平DBFフィルタリングに対する強調フィルタリングモードイネーブルフラグビットである。すなわち、水平DBFフィルタリングを行う必要がある場合、PhDbrHEnableFlagは強調フィルタリングモードのイネーブルを許可すること、又は強調フィルタリングモードのイネーブルを許可しないことを表す。
【0270】
以上をまとめると、PhDbrHEnableFlagは水平DBFフィルタリングに対する強調調整モードイネーブルフラグビット、及び水平DBFフィルタリングに対する強調フィルタリングモードイネーブルフラグビットを表すことができ、すなわち、強調調整モードイネーブルフラグビットと強調フィルタリングモードイネーブルフラグビットは同一のフラグビットを共有し、すなわち、現在画像は強調調整モードと強調フィルタリングモードの両方のイネーブルを同時に許可し、又は、現在画像は強調調整モードと強調フィルタリングモードの両方のイネーブルを同時に許可しない。
【0271】
デブロッキングフィルタリング水平調整閾値dbr_h_threshold_minus1:dbr_h_threshold_minus1は現在画像のデブロッキングフィルタリング水平調整の閾値を決定するために用いられ、値範囲は0~1である。DbrHThresholdの値はdbr_h_threshold_minus1の値に1を加える値に等しく、ビットストリームにdbr_h_threshold_minus1が存在しなければ、DbrHThresholdの値は0となる。
【0272】
例示的に、強調調整モードについては、DbrHThresholdは第1の調整閾値(第3の調整閾値と第1の調整閾値が同じであることを例とする)に対応し、水平DBFフィルタリングに対する第1の調整閾値である。つまり、水平DBFフィルタリングを行う必要がある場合、DbrHThresholdは上記実施例の第1の調整閾値を表す。また、上記実施例の第2の調整閾値(第4の調整閾値と第2の調整閾値が同じであることを例とする)と第1の調整閾値は互いに反数であるため、DbrHThresholdに基づいて第2の調整閾値を決定することができる。
【0273】
例示的に、強調フィルタリングモードについては、DbrHThresholdは第1のフィルタリング閾値(第3のフィルタリング閾値と第1のフィルタリング閾値が同じであることを例とする)に対応し、水平DBFフィルタリングに対する第1のフィルタリング閾値である。つまり、水平DBFフィルタリングを行う必要がある場合、DbrHThresholdは上記実施例の第1のフィルタリング閾値を表す。また、上記実施例の第2のフィルタリング閾値(第4のフィルタリング閾値と第2のフィルタリング閾値が同じであることを例とする)と第1のフィルタリング閾値は互いに反数であるため、DbrHThresholdに基づいて第2のフィルタリング閾値を決定することができる。
【0274】
以上をまとめると、DbrHThresholdは水平DBFフィルタリングに対する第1の調整閾値及び第1のフィルタリング閾値を表すことができ、すなわち、第1の調整閾値と第1のフィルタリング閾値は同じであり、両者は同一の値である。
【0275】
デブロッキングフィルタリング水平調整オフセット値0(dbr_h_offset0_minus1):現在画像のデブロッキングフィルタリング水平調整のオフセット値0を決定するために用いられ、値範囲は0~3である。DbrHOffset0の値はdbr_h_offset0_minus1の値に1を加えた後に反数にして得られた負の値に等しく、ビットストリームにdbr_h_offset0_minus1が存在しなければ、DbrHOffset0の値は0となる。
【0276】
一例として、強調フィルタリングモードについては、DbrHOffset0は第1のフィルタリングオフセット値(第3のフィルタリングオフセット値と第1のフィルタリングオフセット値が同じであることを例とする)に対応し、水平DBFフィルタリングに対する第1のフィルタリングオフセット値であり、すなわち、水平DBFフィルタリングを行う必要がある場合、DbrHOffset0は上記実施例の第1のフィルタリングオフセット値を表す。
【0277】
デブロッキングフィルタリング水平調整オフセット値1(dbr_h_offset1_minus1):現在画像のデブロッキングフィルタリング水平調整のオフセット値1を決定するために用いられ、値範囲は0~3であってもよい。DbrHOffset1の値はdbr_h_offset1_minus1の値に1を加える値に等しい。ビットストリームにdbr_h_offset1_minus1が存在しなければ、DbrHOffset1の値は0となる。
【0278】
一例として、強調フィルタリングモードについては、DbrHOffset1は第2のフィルタリングオフセット値(第4のフィルタリングオフセット値と第2のフィルタリングオフセット値が同じであることを例とする)に対応し、水平DBFフィルタリングに対する第2のフィルタリングオフセット値であり、すなわち、水平DBFフィルタリングを行う必要がある場合、DbrHOffset1は上記実施例の第2のフィルタリングオフセット値を表す。
【0279】
強調デブロッキングフィルタリング水平調整オフセット値0(dbr_h_alt_offset0_minus1):dbr_h_alt_offset0_minus1は現在画像のデブロッキングフィルタリングBSが0である時の水平調整のオフセット値0を決定するために用いられ、dbr_h_alt_offset0_minus1の値範囲は0~3であってもよい。DbrHAltOffset0の値はdbr_h_alt_offset0_minus1の値に1を加えた後に反数にして得られた負の値に等しく、ビットストリームにdbr_h_alt_offset0_minus1が存在しなければ、DbrHAltOffset0の値は0となる。
【0280】
一例として、強調調整モードについては、DbrHAltOffset0は第1の調整オフセット値(第3の調整オフセット値と第1の調整オフセット値が同じであることを例とする)に対応し、水平DBFフィルタリングに対する第1の調整オフセット値であり、すなわち、水平DBFフィルタリングを行う必要がある場合、DbrHAltOffset0は上記実施例の第1の調整オフセット値を表す。
【0281】
強調デブロッキングフィルタリング水平調整オフセット値1(dbr_h_alt_offset1_minus1):dbr_h_alt_offset1_minus1は現在画像のデブロッキングフィルタリングBSが0である時の水平調整のオフセット値1を決定するために用いられ、dbr_h_alt_offset1_minus1の値範囲は0~3であってもよい。ここで、DbrHAltOffset1の値はdbr_h_alt_offset1_minus1の値に1を加える値に等しく、ビットストリームにdbr_h_alt_offset1_minus1が存在しなければ、DbrHAltOffset1の値は0となる。
【0282】
一例として、強調調整モードについては、DbrHAltOffset1は第2の調整オフセット値(第4の調整オフセット値と第2の調整オフセット値が同じであることを例とする)に対応し、水平DBFフィルタリングに対する第2の調整オフセット値であり、すなわち、水平DBFフィルタリングを行う必要がある場合、DbrHAltOffset1は上記実施例の第2の調整オフセット値を表す。
【0283】
実施例14:ハイレベルシンタックス(例えば画像ヘッダのハイレベルシンタックス)の1つの表現は表2に示すものを参照することができ、例えば、画像ヘッダにおいて表1に示すシンタックスを符号化/復号する。すなわち、符号化側は画像ヘッダにおいて表2に示すシンタックスを符号化し、復号側は画像ヘッダから表2に示すシンタックスを復号する。
【0284】
【0285】
表2において、関連シンタックスの意味は以下のとおりである。
画像レベルの強調垂直調整許可フラグビットpicture_alt_dbr_v_enable_flag:二値変数であり、値「1」は現在画像が強調垂直調整の使用を許可することを表し、値「0」は現在画像が強調垂直調整の使用を許可しないことを表す。PictureAltDbrVEnableFlagの値はpicture_alt_dbr_v_enable_flagに等しくてもよく、ビットストリームにpicture_alt_dbr_v_enable_flagが存在しなければ、PhAltDbrVEnableFlagの値は0となる。
【0286】
一例として、強調調整モードについては、PictureAltDbrVEnableFlagは強調調整モードイネーブルフラグビットに対応し、垂直DBFフィルタリングに対する強調調整モードイネーブルフラグビットであり、すなわち、垂直DBFフィルタリングを行う必要がある場合、PictureAltDbrVEnableFlagは強調調整モードのイネーブルを許可すること、又は強調調整モードのイネーブルを許可しないことを表す。
【0287】
実施例13におけるPictureDbrVEnableFlagとは異なり、PictureAltDbrVEnableFlagは垂直DBFフィルタリングに対する強調フィルタリングモードイネーブルフラグビットではなく、単に垂直DBFフィルタリングに対する強調調整モードイネーブルフラグビットである。
【0288】
画像レベルの強調水平調整許可フラグビットpicture_alt_dbr_h_enable_flagは二値変数であり、値「1」は現在画像が強調水平調整の使用を許可することを表し、値「0」は現在画像が強調水平調整の使用を許可しないことを表す。PictureAltDbrHEnableFlagの値はpicture_alt_dbr_h_enable_flagに等しくてもよく、ビットストリームにpicture_alt_dbr_h_enable_flagが存在しなければ、PhAltDbrHEnableFlagの値は0となる。
【0289】
一例として、強調調整モードについては、PhAltDbrHEnableFlagは強調調整モードイネーブルフラグビットに対応し、水平DBFフィルタリングに対する強調調整モードイネーブルフラグビットであり、すなわち、水平DBFフィルタリングを行う必要がある場合、PhAltDbrHEnableFlagは強調調整モードのイネーブルを許可すること、又は強調調整モードのイネーブルを許可しないことを表す。
【0290】
実施例13におけるPictureDbrHEnableFlagとは異なり、PhAltDbrHEnableFlagは水平DBFフィルタリングに対する強調フィルタリングモードイネーブルフラグビットではなく、単に水平DBFフィルタリングに対する強調調整モードイネーブルフラグビットである。
【0291】
表2における他のシンタックスの意味は、表1における該当シンタックスの意味と同じであり、ここでは重複する説明は省略する。
【0292】
実施例15:実施例11に対して、adbr_enable_flagの符号化及び復号については、デブロッキングフィルタリングモードがイネーブルされた場合にのみadbr_enable_flagの符号化及び復号を行ってもよく、すなわち、まずデブロッキングフィルタリングモードをイネーブルするか否かを決定してもよく、イネーブルする場合、シーケンスヘッダにおいてフラグビットadbr_enable_flagを符号化/復号し、イネーブルしない場合、シーケンスヘッダにおいてフラグビットadbr_enable_flagを符号化/復号しない。以上をまとめると、強調調整モード(adbr_enable_flagは強調調整モードのイネーブルを制御するために用いられる)はデブロッキングフィルタリングモードのサブモードであり、デブロッキングフィルタリングモードがイネーブルされた場合にのみ強調調整モードのイネーブルが許可される。
【0293】
実施例12に対して、dbr_enable_flagの符号化及び復号については、デブロッキングフィルタリングモードがイネーブルされた場合にのみdbr_enable_flagの符号化及び復号を行ってもよく、すなわち、まずデブロッキングフィルタリングモードをイネーブルするか否かを決定してもよく、イネーブルする場合、シーケンスヘッダにおいてフラグビットdbr_enable_flagを符号化/復号し、イネーブルしない場合、シーケンスヘッダにおいてフラグビットdbr_enable_flagを符号化/復号しない。以上をまとめると、強調フィルタリングモード(dbr_enable_flagは強調フィルタリングモードのイネーブルを制御するために用いられる)はデブロッキングフィルタリングモードのサブモードであり、デブロッキングフィルタリングモードがイネーブルされた場合にのみ強調フィルタリングモードのイネーブルが許可される。
【0294】
実施例13に対して、表1に示すハイレベルシンタックス(強調フィルタリングモードのイネーブル及び強調調整モードのイネーブルを制御するために用いられる)の符号化及び復号については、デブロッキングフィルタリングモードがイネーブルされた場合にのみ当該ハイレベルシンタックスの符号化及び復号を行ってもよく、すなわち、まずデブロッキングフィルタリングモードをイネーブルするか否かを決定してもよく、イネーブルする場合、画像ヘッダにおいて表1に示すハイレベルシンタックスを符号化/復号し、イネーブルしない場合、画像ヘッダにおいて表1に示すハイレベルシンタックスを符号化/復号しない。
【0295】
実施例14に対して、表2に示すハイレベルシンタックス(強調フィルタリングモードのイネーブル及び強調調整モードのイネーブルを制御するために用いられる)の符号化及び復号については、デブロッキングフィルタリングモードがイネーブルされた場合にのみ当該ハイレベルシンタックスの符号化及び復号を行ってもよく、すなわち、まずデブロッキングフィルタリングモードをイネーブルするか否かを決定してもよく、イネーブルする場合、画像ヘッダにおいて表2に示すハイレベルシンタックスを符号化/復号し、イネーブルしない場合、画像ヘッダにおいて表2に示すハイレベルシンタックスを符号化/復号しない。
【0296】
実施例16:輝度成分(すなわち現在ブロックは輝度成分である)に対するデブロッキングフィルタリングプロセスは、例えば、強調調整モードを用いて輝度成分を調整し、又は、強調フィルタリングモードを用いて輝度成分を調整する。
【0297】
輝度成分のDBRパラメータの導出プロセスについて、
現在のフィルタリング対象境界が垂直境界であり、且つPictureDbrVEnableFlagの値が1であれば、又は、現在のフィルタリング対象境界が水平境界であり、且つPictureDbrHEnableFlagの値が1であれば、PictureDbrEnableFlagの値が1となり、それ以外の場合、PictureDbrEnableFlagは0となる。また、現在のフィルタリング対象境界が垂直境界であり、且つPictureAltDbrVEnableFlagの値が1であれば、又は、現在のフィルタリング対象境界が水平境界であり、且つPictureAltDbrHEnableFlagの値が1であれば、PictureAltDbrEnableFlagの値が1となり、それ以外の場合、PictureAltDbrEnableFlagは0となる。
【0298】
以下の方法により、dbr_th、dbr_offset0、dbr_offset1、alt_dbr_offset0、alt_dbr_offset1を導出する。
【0299】
垂直境界に対して、dbr_th=DbrVThreshold、dbr_offset0=DbrVOffset0、dbr_offset1=DbrVOffset1、alt_dbr_offset0=DbrVAltOffset0、alt_dbr_offset1=DbrVAltOffset1である。
【0300】
水平境界に対して、dbr_th=DbrHThreshold、dbr_offset0=DbrHOffset0、dbr_offset1=DbrHOffset1、alt_dbr_offset0=DbrHAltOffset0、alt_dbr_offset1=DbrHAltOffset1である。
【0301】
(1)輝度成分のBSが4に等しい場合の境界のフィルタリングプロセス(強調フィルタリングモードで処理する):
BSの値が4である場合、p0、p1、p2及びq0、q1、q2に対するフィルタリング計算プロセスは以下のとおりである。
P0=(p2*3+p1*8+p0*10+q0*8+q1*3+16)>>5、
P1=(p2*4+p1*5+p0*4+q0*3+8)>>4、
P2=(p3*2+p2*2+p1*2+p0*1+q0*1+4)>>3、
Q0=(p1*3+p0*8+q0*10+q1*8+q2×3+16)>>5、
Q1=(p0*3+q0*4+q1*5+q2*4+8)>>4、
Q2=(p0*1+q0*1+q1*2+q2*2+q3*2+4)>>3。
【0302】
P0、P1、P2、Q0、Q1、Q2はいずれもフィルタリング後の値(フィルタリング画素値)である。
【0303】
P0、P1、P2及びQ0、Q1、Q2を得た後、PhDbrEnableFlagが1の場合、
pi>Pi+dbr_thであれば、Pi’=clip((Pi+pi+1)>>1+dbr_offset0)となり、そうでなく、pi<Pi-dbr_thであれば、Pi’=clip((Pi+pi+1)>>1+dbr_offset1)となり、i=0、1、2である。
【0304】
qi>Qi+dbr_thであれば、Qi’=clip((Qi+qi+1)>>1+dbr_offset0)となり、そうでなく、qi<Qi-dbr_thであれば、Qi’=clip((Qi+qi+1)>>1+dbr_offset1)となり、i=0、1、2である。
【0305】
上記式において、piは元画素値を表し、qiは元画素値を表し、Piはフィルタリング画素値を表し、Qiはフィルタリング画素値を表し、Pi’は調整画素値を表し、Qi’は調整画素値を表してもよい。
【0306】
(2)輝度成分のBSが3に等しい場合の境界のフィルタリングプロセス(強調フィルタリングモードで処理する):
BSの値が3である場合、p0、p1及びq0、q1に対するフィルタリング計算プロセスは以下のとおりである。
P0=(p2+(p1<<2)+(p0<<2)+(p0<<1)+(q0<<2)+q1+8)>>4、
P1=((p2<<1)+p2+(p1<<3)+(p0<<2)+q0+8)>>4、
Q0=(p1+(p0<<2)+(q0<<2)+(q0<<1)+(q1<<2)+q2+8)>>4、
Q1=((q2<<1)+q2+(q1<<3)+(q0<<2)+p0+8)>>4。
【0307】
P0、P1及びQ0、Q1はいずれもフィルタリング後の値(フィルタリング画素値)である。
【0308】
P0、P1及びQ0、Q1を得た後、PhDbrEnableFlagが1の場合、
pi>Pi+dbr_thであれば、Pi’=clip((Pi+pi+1)>>1+dbr_offset0)となり、そうでなく、pi<Pi-dbr_thであれば、Pi’=clip((Pi+pi+1)>>1+dbr_offset1)となり、i=0、1である。
【0309】
qi>Qi+dbr_thであれば、Qi’=clip((Qi+qi+1)>>1+dbr_offset0)となり、そうでなく、qi<Qi-dbr_thであれば、Qi’=clip((Qi+qi+1)>>1+dbr_offset1)となり、i=0、1である。
【0310】
上記式において、piは元画素値を表し、qiは元画素値を表し、Piはフィルタリング画素値を表し、Qiはフィルタリング画素値を表し、Pi’は調整画素値を表し、Qi’は調整画素値を表してもよい。
【0311】
(3)輝度成分のBSが2に等しい場合の境界のフィルタリングプロセス(強調フィルタリングモードで処理する):
BSの値が2である場合、p0及びq0に対するフィルタリング計算プロセスは以下のとおりである。
P0=((p1<<1)+p1+(p0<<3)+(p0<<1)+(q0<<1)+q0+8)>>4、
Q0=((p0<<1)+p0+(q0<<3)+(q0<<1)+(q1<<1)+q1+8)>>4。
【0312】
P0及びQ0はいずれもフィルタリング後の値(フィルタリング画素値)である。
【0313】
P0及びQ0を得た後、PhDbrEnableFlagが1の場合、
pi>Pi+dbr_thであれば、Pi’=clip((Pi+pi+1)>>1+dbr_offset0)となり、そうでなく、pi<Pi-dbr_thであれば、Pi’=clip((Pi+pi+1)>>1+dbr_offset1)となり、i=0である。
【0314】
qi>Qi+dbr_thであれば、Qi’=clip((Qi+qi+1)>>1+dbr_offset0)となり、そうでなく、qi<Qi-dbr_thであれば、Qi’=clip((Qi+qi+1)>>1+dbr_offset1)となり、i=0である。
【0315】
上記式において、piは元画素値を表し、qiは元画素値を表し、Piはフィルタリング画素値を表し、Qiはフィルタリング画素値を表し、Pi’は調整画素値を表し、Qi’は調整画素値を表してもよい。
【0316】
(4)輝度成分のBSが1に等しい場合の境界のフィルタリングプロセス(強調フィルタリングモードで処理する):
BSの値が1である場合、p0及びq0に対するフィルタリング計算プロセスは以下のとおりである。
P0=((p0<<1)+p0+q0+2)>>2、
Q0=((q0<<1)+q0+p0+2)>>2。
【0317】
P0及びQ0はいずれもフィルタリング後の値(フィルタリング画素値)である。
【0318】
P0及びQ0を得た後、PhDbrEnableFlagが1の場合、
pi>Pi+dbr_thであれば、Pi’=clip((Pi+pi+1)>>1+dbr_offset0)となり、そうでなく、pi<Pi-dbr_thであれば、Pi’=clip((Pi+pi+1)>>1+dbr_offset1)となり、i=0である。
【0319】
qi>Qi+dbr_thであれば、Qi’=clip((Qi+qi+1)>>1+dbr_offset0)となり、そうでなく、qi<Qi-dbr_thであれば、Qi’=clip((Qi+qi+1)>>1+dbr_offset1)となり、i=0である。
【0320】
上記式において、piは元画素値を表し、qiは元画素値を表し、Piはフィルタリング画素値を表し、Qiはフィルタリング画素値を表し、Pi’は調整画素値を表し、Qi’は調整画素値を表してもよい。
【0321】
(5)輝度成分のBSが0に等しい場合の境界のフィルタリングプロセスの方式1(強調調整モードで処理する):
BSの値が0である場合、pi及びqiに対するフィルタリング計算プロセスは以下のとおりである。
piの勾配値DPi及びqiの勾配値DQiを決定する。例えば、DPi=(pi-qi+2)>>2、DQi=(qi-pi+2)>>2となる。又は、DPi=(pi-qi+1)>>1、DQi=(qi-pi+1)>>1となる。
【0322】
DPi及びDQiを得た後、PhAltDbrEnableFlagが1の場合、
DPi>dbr_thであれば、Pi=clip(pi+alt_dbr_offset0)となり、そうでなく、DPi<-dbr_thであれば、Pi=clip(pi+alt_dbr_offset1)となり、
DQi>dbr_thであれば、Qi=clip(qi+alt_dbr_offset0)となり、そうでなく、DQi<-dbr_thであれば、Qi=clip(qi+alt_dbr_offset1)となる。
【0323】
上記iは0であってもよく、0、1、2などであってもよく、これについて限定しない。
【0324】
上記式において、piは元画素値を表し、qiは元画素値を表し、DPiは勾配値を表し、DQiは勾配値を表し、Piは調整画素値を表し、Qiは調整画素値を表してもよい。
【0325】
(6)輝度成分のBSが0に等しい場合の境界のフィルタリングプロセスの方式2(強調調整モードで処理する):
BSの値が0である場合、pi及びqiに対するフィルタリング計算プロセスは以下のとおりである。
piの勾配値DPi及びqiの勾配値DQiを決定する。例えば、DPi=(pi-qi+1)>>1、DQi=(qi-pi+1)>>1となる。
【0326】
DPi及びDQiを得た後、PhAltDbrEnableFlagが1の場合、
DPi>2*dbr_thであれば、Pi=clip(pi+alt_dbr_offset0)となり、そうでなく、DPi<-2*dbr_thであれば、Pi=clip(pi+alt_dbr_offset1)となり、
DQi>2*dbr_thであれば、Qi=clip(qi+alt_dbr_offset0)となり、そうでなく、DQi<-2*dbr_thであれば、Qi=clip(qi+alt_dbr_offset1)となる。
【0327】
上記2*dbr_th及び-2*dbr_thは、上記実施例における調整閾値であってもよい。
【0328】
上記iは0であってもよく、0、1、2などであってもよく、これについて限定しない。
【0329】
上記式において、piは元画素値を表し、qiは元画素値を表し、DPiは勾配値を表し、DQiは勾配値を表し、Piは調整画素値を表し、Qiは調整画素値を表してもよい。
【0330】
(7)輝度成分のBSが0に等しい場合の境界のフィルタリングプロセスの方式3(強調調整モードで処理する):
BSの値が0である場合、pi及びqiに対するフィルタリング計算プロセスは以下のとおりである。
piの勾配値DPi及びqiの勾配値DQiを決定する。例えば、以下の方式で勾配値DPi及び勾配値DQiを決定してもよい。DPi=((pi<<1)+pi+qi+2)>>2、DQi=((qi<<1)+qi+pi+2)>>2。
【0331】
DPi及びDQiを得た後、PhAltDbrEnableFlagが1の場合、
pi>DPi+dbr_thであれば、Pi=clip(pi+alt_dbr_offset0)となり、そうでなく、pi<DPi-dbr_thであれば、Pi=clip(pi+alt_dbr_offset1)となり、
qi>DQi+dbr_thであれば、Qi=clip(qi+alt_dbr_offset0)となり、そうでなく、qi<DQi-dbr_thであれば、Qi=clip(qi+alt_dbr_offset1)となる。
【0332】
1つの可能な実施形態において、上記表現は等価的に以下のように表されてもよい。
【0333】
piの勾配値DPi及びqiの勾配値DQiを決定する。例えば、以下の方式で勾配値DPi及び勾配値DQiを決定してもよい。DPi=pi-(((pi<<1)+pi+qi+2)>>2)、DQi=qi-(((qi<<1)+qi+pi+2)>>2)。
【0334】
DPi及びDQiを得た後、PhAltDbrEnableFlagが1の場合、
DPi>dbr_thであれば、Pi=clip(pi+alt_dbr_offset0)となり、そうでなく、DPi<-dbr_thであれば、Pi=clip(pi+alt_dbr_offset1)となり、
DQi>dbr_thであれば、Qi=clip(qi+alt_dbr_offset0)となり、そうでなく、DQi<-dbr_thであれば、Qi=clip(qi+alt_dbr_offset1)となる。
【0335】
上記iは0であってもよく、0、1、2などであってもよく、これについて限定しない。
【0336】
上記式において、piは元画素値を表し、qiは元画素値を表し、DPiは勾配値を表し、DQiは勾配値を表し、Piは調整画素値を表し、Qiは調整画素値を表してもよい。
【0337】
上記実施例において、clip(x)は、xを[0,2^(bit_depth)-1]の間(当該区間は0と2^(bit_depth)-1を含んでもよい)に制限することを表す。bit_depthは画像のビット深度を表し、一般的には、8、10、12などである。
【0338】
(8)輝度成分のBSが0に等しい場合の境界のフィルタリングプロセスの方式4(強調調整モードで処理する):
BSの値が0である場合、pi及びqiに対するフィルタリング計算プロセスは以下のとおりである。
piの勾配値DPi及びqiの勾配値DQiを決定する。例えば、以下の方式で勾配値DPi及び勾配値DQiを決定してもよい。DPi=(qi-pi+2)>>2、DQi=(pi-qi+2)>>2。
【0339】
DPi及びDQiを得た後、PhAltDbrEnableFlagが1の場合、
DPi<dbr_thであれば、Pi=clip(pi+dbr_alt_offset0)となり、そうでなく、DPi>-dbr_thであれば、Pi=clip(pi+dbr_alt_offset1)となり、
DQi<dbr_thであれば、Qi=clip(qi+alt_dbr_offset0)となり、そうでなく、DQi>-dbr_thであれば、Qi=clip(qi+dbr_alt_offset1)となる。
【0340】
上記iは0であってもよく、0、1、2などであってもよく、これについて限定しない。
【0341】
上記式において、piは元画素値を表し、qiは元画素値を表し、DPiは勾配値を表し、DQiは勾配値を表し、Piは調整画素値を表し、Qiは調整画素値を表してもよい。
【0342】
(9)輝度成分のBSが0に等しい場合の境界のフィルタリングプロセスの方式5(強調調整モードで処理する):
BSの値が0である場合、pi及びqiに対するフィルタリング計算プロセスは以下のとおりである。
【0343】
piの勾配値DPi及びqiの勾配値DQiを決定する。例えば、以下の方式で勾配値DPi及び勾配値DQiを決定してもよい。DPi=pi-(((pi<<1)+pi+qi+2)>>2)、すなわちDPi=(pi-qi-2)>>2、DQi=qi-(((qi<<1)+qi+pi+2)>>2)、すなわちDQi=(qi-pi-2)>>2。
【0344】
DPi及びDQiを得た後、PhAltDbrEnableFlagが1の場合、
DPi>dbr_thであれば、Pi=clip(pi+dbr_alt_offset0)となり、そうでなく、DPi<-dbr_thであれば、Pi=clip(pi+dbr_alt_offset1)となり、
DQi>dbr_thであれば、Qi=clip(qi+dbr_alt_offset0)となり、そうでなく、DQi<-dbr_thであれば、Qi=clip(qi+dbr_alt_offset1)となる。
【0345】
上記iは0であってもよく、0、1、2などであってもよく、これについて限定しない。
【0346】
上記式において、piは元画素値を表し、qiは元画素値を表し、DPiは勾配値を表し、DQiは勾配値を表し、Piは調整画素値を表し、Qiは調整画素値を表してもよい。
【0347】
実施例17:実施例11及び実施例12に対して、SPSレベルのハイレベルシンタックスを、PPSレベルのハイレベルシンタックス、又は画像ヘッダレベルのハイレベルシンタックス、又は画像レベルのハイレベルシンタックス、又はスライスヘッダレベルのハイレベルシンタックス、又はCTUレベルのハイレベルシンタックス、又はCUレベルのハイレベルシンタックスに置き換えてもよく、このハイレベルシンタックスのタイプについて限定せず、すなわち、様々なタイプのハイレベルシンタックスにより、いずれもdbr_enable_flag又はadbr_enable_flagを伝送することができる。実施例13及び実施例14に対して、画像ヘッダレベルのハイレベルシンタックスをSPSレベルのハイレベルシンタックス、又はPPSレベルのハイレベルシンタックス、又は画像レベルのハイレベルシンタックス、又はスライスヘッダレベルのハイレベルシンタックス、又はCTUレベルのハイレベルシンタックス、又はCUレベルのハイレベルシンタックスに置き換えてもよく、このハイレベルシンタックスのタイプについて限定せず、すなわち、様々なタイプのハイレベルシンタックスにより、いずれも表1又は表2の内容を伝送することができ、すなわち様々なタイプのハイレベルシンタックスにより強調調整モードイネーブルフラグビット、強調フィルタリングモードイネーブルフラグビット、第1の調整閾値、第1のフィルタリング閾値、第1のフィルタリングオフセット値、第2のフィルタリングオフセット値、第1の調整オフセット値、第2の調整オフセット値などのパラメータを伝送し、具体的な実現形態は実施例13及び実施例14の実施形態と類似するため、ここでは重複する説明は省略する。
【0348】
実施例13及び実施例14に対して、画像ヘッダレベルのハイレベルシンタックスをCTUレベルのハイレベルシンタックスに置き換えてもよく、CTUレベルのハイレベルシンタックスによりDBRの関連パラメータを伝送し、DBRの関連パラメータは第1の調整閾値、第1のフィルタリング閾値、第1のフィルタリングオフセット値、第2のフィルタリングオフセット値、第1の調整オフセット値、第2の調整オフセット値などのパラメータなどの内容を含んでもよく、実施例13及び実施例14を参照する。又は、画像ヘッダレベルのハイレベルシンタックスをCUレベルのハイレベルシンタックスに置き換えてもよく、CUレベルのハイレベルシンタックスによりDBRの関連パラメータを伝送し、DBRの関連パラメータは第1の調整閾値、第1のフィルタリング閾値、第1のフィルタリングオフセット値、第2のフィルタリングオフセット値、第1の調整オフセット値、第2の調整オフセット値などのパラメータなどの内容を含んでもよく、実施例13及び実施例14を参照する。
【0349】
実施例18:実施例16に対して、輝度成分に対するデブロッキングフィルタリングプロセスについては、輝度成分を色度成分に置き換えてもよく、すなわち色度成分(すなわち現在ブロックは色度成分である)に対してデブロッキングフィルタリングプロセスを行い、色度成分のデブロッキングフィルタリングプロセスは輝度成分のデブロッキングフィルタリングプロセスと類似するため、実施例16を参照し、ここでは重複する説明は省略する。
【0350】
一例として、上記実施例1~実施例18を単独で実現してもよく、任意に組み合わせてもよく、例えば実施例1と実施例2を組み合わせてもよく、実施例1と実施例3を組み合わせてもよく、実施例1と実施例4を組み合わせてもよく、実施例1と実施例5を組み合わせてもよく、実施例1と実施例8~実施例18のうちの少なくとも1つの実施例を組み合わせてもよく、実施例8~実施例18のうちの少なくとも2つの実施例を任意に組み合わせてもよく、実施例2と実施例8~実施例18のうちの少なくとも1つの実施例を組み合わせてもよく、実施例3と実施例8~実施例18のうちの少なくとも1つの実施例を組み合わせてもよく、実施例4と実施例8~実施例18の少なくとも1つの実施例を組み合わせてもよく、実施例5と実施例8~実施例18のうちの少なくとも1つの実施例を組み合わせてもよく、実施例6と実施例8~実施例18のうちの少なくとも1つの実施例を組み合わせてもよく、実施例7と実施例8~実施例18のうちの少なくとも1つの実施例を組み合わせてもよい。もちろん、以上はいくつかの組み合わせの例に過ぎず、実施例1~実施例18のうち、任意の少なくとも2つの実施例は、いずれも組み合わせて該当プロセスを実現することができる。
【0351】
一例として、上記各実施例において、符号化側の内容を復号側に適用することもでき、すなわち復号側は同じ方式で処理することができ、復号側の内容を符号化側に適用することもでき、すなわち符号化側は同じ方式で処理することができる。
【0352】
実施例19:上記方法と同様の出願構想に基づき、本発明の実施例において復号装置がさらに提供され、前記復号装置は復号側に適用され、前記復号装置は、ビデオデータを記憶するように構成されるメモリと、上記実施例1~実施例18における符号化復号方法、すなわち復号側の処理フローを実施するように構成される復号器と、を含む。
【0353】
例えば、1つの可能な実施形態において、復号器は、
現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、前記現在画素点の元画素値及び前記現在画素点の周辺画素点の元画素値に基づいて前記現在画素点の勾配値を決定し、前記現在画素点の勾配値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定することを実施するように構成される。
【0354】
上記方法と同様の出願構想に基づき、本発明の実施例において符号化装置がさらに提供され、前記符号化装置は符号化側に適用され、前記符号化装置は、ビデオデータを記憶するように構成されるメモリと、上記実施例1~実施例18における符号化復号方法、すなわち符号化側の処理フローを実施するように構成される符号化器と、を含む。
【0355】
例えば、1つの可能な実施形態において、符号化器は、
現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、前記現在画素点の元画素値及び前記現在画素点の周辺画素点の元画素値に基づいて前記現在画素点の勾配値を決定し、前記現在画素点の勾配値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定することを実施するように構成される。
【0356】
上記方法と同様の出願構想に基づき、本発明の実施例にて提供される復号デバイス(ビデオ復号器とも呼ばれる)は、ハードウェア面から、そのハードウェアアーキテクチャの概略図が具体的に
図5Aに示すとおりである。プロセッサ511及び機械可読記憶媒体512を含み、そのうち、前記機械可読記憶媒体512には、前記プロセッサ511によって実行可能な機械実行可能な命令が記憶され、前記プロセッサ511は機械実行可能な命令を実行して、本発明の上記実施例1~18にて開示された方法を実施するために用いられる。例えば、前記プロセッサ511は機械実行可能な命令を実行して、
現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、前記現在画素点の元画素値及び前記現在画素点の周辺画素点の元画素値に基づいて前記現在画素点の勾配値を決定するステップと、前記現在画素点の勾配値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定するステップとを実施するために用いられる。
【0357】
上記方法と同様の出願構想に基づき、本発明の実施例にて提供される符号化デバイス(ビデオ符号化器とも呼ばれる)は、ハードウェア面から、そのハードウェアアーキテクチャの概略図が具体的に
図5Bに示すとおりである。プロセッサ521及び機械可読記憶媒体522を含み、そのうち、前記機械可読記憶媒体522には、前記プロセッサ521によって実行可能な機械実行可能な命令が記憶され、前記プロセッサ521は機械実行可能な命令を実行して、本発明の上記実施例1~18にて開示された方法を実施するために用いられる。例えば、前記プロセッサ521は機械実行可能な命令を実行して、
現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、前記現在画素点の元画素値及び前記現在画素点の周辺画素点の元画素値に基づいて前記現在画素点の勾配値を決定するステップと、前記現在画素点の勾配値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定するステップとを実施するために用いられる。
【0358】
上記方法と同様の出願構想に基づき、本発明の実施例は機械可読記憶媒体をさらに提供し、前記機械可読記憶媒体には、複数のコンピュータ命令が記憶され、前記コンピュータ命令がプロセッサによって実行されると、本発明の上記例にて開示された方法、例えば上記各実施例における符号化復号方法が実施され得る。ここで、上記機械可読記憶媒体は、例えば、実行可能な命令、データなどの情報を含むか、又は記憶することができる、任意の電子的、磁気的、光学的、又は他の物理的記憶装置であってもよい。例えば、機械可読記憶媒体は、RAM(Radom Access Memory、ランダムアクセスメモリ)、揮発性メモリ、不揮発性メモリ、フラッシュメモリ、記憶ドライブ(例えばハードディスクドライブ)、ソリッドステートドライブ、任意のタイプの記憶ディスク(例えば光ディスク、dvdなど)、若しくは類似の記憶媒体、又はそれらの組み合わせであってもよい。
【0359】
上記方法と同様の出願構想に基づき、本発明の実施例はコンピュータアプリケーションプログラムをさらに提供し、前記コンピュータアプリケーションプログラムは、プロセッサによって実行されると、本発明の上記例にて開示された符号化復号方法が実施され得る。
【0360】
上記方法と同様の出願構想に基づき、本発明の実施例は符号化側又は復号側に適用可能な符号化復号装置をさらに提供し、当該符号化復号装置は、
現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、前記現在画素点の元画素値及び前記現在画素点の周辺画素点の元画素値に基づいて前記現在画素点の勾配値を決定するための決定モジュールと、前記現在画素点の勾配値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定するための処理モジュールとを含み得る。
【0361】
一例として、前記処理モジュールは、前記現在画素点の勾配値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定する時に、具体的には、
前記現在画素点の勾配値、前記現在画素点の元画素値、第1の調整閾値、第2の調整閾値、第1の調整オフセット値及び第2の調整オフセット値に基づいて、前記現在画素点の調整画素値を決定するために用いられる。
【0362】
一例として、前記処理モジュールは、前記現在画素点の勾配値、前記現在画素点の元画素値、第1の調整閾値、第2の調整閾値、第1の調整オフセット値及び第2の調整オフセット値に基づいて、前記現在画素点の調整画素値を決定する時に、具体的には、前記現在画素点の勾配値が第1の調整閾値より大きい場合、前記現在画素点の元画素値及び第1の調整オフセット値に基づいて前記現在画素点の調整画素値を決定し、
前記現在画素点の勾配値が第2の調整閾値より小さい場合、前記現在画素点の元画素値及び第2の調整オフセット値に基づいて前記現在画素点の調整画素値を決定するために用いられる。
【0363】
1つの可能な実施形態において、現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たすと、前記決定モジュールは、さらに、前記現在ブロックの隣接ブロックから前記現在画素点に対応する参照画素点を決定し、前記参照画素点の元画素値及び前記参照画素点の周辺画素点の元画素値に基づいて前記参照画素点の勾配値を決定するために用いられ、前記処理モジュールは、さらに、前記参照画素点の勾配値及び前記参照画素点の元画素値に基づいて、前記参照画素点の調整画素値を決定するために用いられる。
【0364】
一例として、前記処理モジュールは、前記参照画素点の勾配値及び前記参照画素点の元画素値に基づいて、前記参照画素点の調整画素値を決定する時に、具体的には、
前記参照画素点の勾配値、前記参照画素点の元画素値、第3の調整閾値、第4の調整閾値、第3の調整オフセット値及び第4の調整オフセット値に基づいて、前記参照画素点の調整画素値を決定するために用いられる。
【0365】
一例として、前記処理モジュールは、前記参照画素点の勾配値、前記参照画素点の元画素値、第3の調整閾値、第4の調整閾値、第3の調整オフセット値及び第4の調整オフセット値に基づいて、前記参照画素点の調整画素値を決定する時に、具体的には、前記参照画素点の勾配値が第3の調整閾値より大きい場合、前記参照画素点の元画素値及び第3の調整オフセット値に基づいて前記参照画素点の調整画素値を決定し、
前記参照画素点の勾配値が第4の調整閾値より小さい場合、前記参照画素点の元画素値及び第4の調整オフセット値に基づいて前記参照画素点の調整画素値を決定するために用いられる。
【0366】
一つの可能な実施形態において、前記決定モジュールは、前記現在ブロックにおける現在画素点が強調調整モードのイネーブル条件を満たす時に、具体的には、前記現在ブロックにおける現在画素点に対応するフィルタリング対象境界の境界強度が強調調整モードのイネーブル条件を満たすと、前記現在画素点が強調調整モードのイネーブル条件を満たすと決定し、又は、前記現在ブロックに対応する特徴情報が強調調整モードのイネーブル条件を満たすと、前記現在ブロックにおける前記現在画素点が強調調整モードのイネーブル条件を満たすと決定するために用いられる。
【0367】
一例として、前記処理モジュールは、さらに、前記現在ブロックにおける現在画素点が通常のフィルタリングモードのイネーブル条件を満たすと、前記現在画素点の元画素値に対してデブロッキングフィルタリングを行い、前記現在画素点のフィルタリング画素値を得、前記現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすと、前記現在画素点のフィルタリング画素値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定するために用いられる。
【0368】
一例として、前記処理モジュールは、前記現在画素点のフィルタリング画素値及び前記現在画素点の元画素値に基づいて、前記現在画素点の調整画素値を決定する時に、具体的には、前記現在画素点のフィルタリング画素値、前記現在画素点の元画素値、第1のフィルタリング閾値、第2のフィルタリング閾値、第1のフィルタリングオフセット値及び第2のフィルタリングオフセット値に基づいて、前記現在画素点の調整画素値を決定するために用いられ、第1のフィルタリング閾値と第2のフィルタリング閾値は互いに反数である。
【0369】
一例として、前記現在ブロックにおける現在画素点が通常のフィルタリングモードのイネーブル条件を満たすと、前記処理モジュールは、さらに、前記現在ブロックの隣接ブロックから前記現在画素点に対応する参照画素点を決定し、前記参照画素点の元画素値に対してデブロッキングフィルタリングを行い、前記参照画素点のフィルタリング画素値を得、
前記現在ブロックにおける現在画素点が強調フィルタリングモードのイネーブル条件を満たすと、前記参照画素点のフィルタリング画素値及び前記参照画素点の元画素値に基づいて、前記参照画素点の調整画素値を決定するために用いられる。
【0370】
一例として、前記処理モジュールは、前記参照画素点のフィルタリング画素値及び前記参照画素点の元画素値に基づいて、前記参照画素点の調整画素値を決定する時に、具体的には、前記参照画素点のフィルタリング画素値、前記参照画素点の元画素値、第3のフィルタリング閾値、第4のフィルタリング閾値、第3のフィルタリングオフセット値及び第4のフィルタリングオフセット値に基づいて、前記参照画素点の調整画素値を決定するために用いられ、第3のフィルタリング閾値と第4のフィルタリング閾値は互いに反数である。
【0371】
上記実施例で説明したシステム、装置、モジュール又はユニットは、具体的には、コンピュータチップ、エンティティ、又は何らかの機能を有する製品によって実現されてもよい。典型的な実現デバイスはコンピュータであり、コンピュータの具体的な形態はパーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ付き電話、スマートフォン、パーソナルデジタルアシスタント、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲーム機、タブレット、ウェアラブルデバイス、又はこれらのデバイスの任意のいくつかの組み合わせであってもよい。説明の便宜上、上記の装置を説明するときに機能によって様々なユニットに分けてそれぞれ説明する。もちろん、本発明を実施する際に、各ユニットの機能を同一又は複数のソフトウェア及び/又はハードウェアで実現することも可能である。
【0372】
当業者であれば分かるように、本発明の実施例が、方法、システム、又はコンピュータプログラム製品として提供されてもよい。本発明は、ハードウェアだけからなる実施例、ソフトウェアだけからなる実施例、又はソフトウェアとハードウェアを組み合わせた実施例なる形態を用いてもよい。本発明の実施例は、コンピュータで使用可能なプログラムコードを含む1つ又は複数のコンピュータで使用可能な記憶媒体(磁気ディスクメモリ、CD-ROM、光学メモリなどを含むが、これらに限定されない)において実施されるコンピュータプログラム製品の形態であってもよい。
【0373】
本発明は、本発明の実施例による方法、デバイス(システム)、及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して説明される。フローチャート及び/又はブロック図における各フロー及び/又はブロック、並びにフローチャート及び/又はブロック図におけるフロー及び/又はブロックの組み合わせは、コンピュータプログラム命令によって実現されてもよいことが理解されるべきである。これらのコンピュータプログラム命令は、マシンを生成するために、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、又は他のプログラム可能なデータ処理デバイスのプロセッサに提供されてもよく、それにより、コンピュータ又は他のプログラム可能なデータ処理デバイスのプロセッサによって実行される命令により、フローチャートの1つ又は複数のフロー、及び/又はブロック図の1つ又は複数のブロックにおいて指定される機能を実現するための装置が生成される。
【0374】
これらのコンピュータプログラム命令は、コンピュータ又は他のプログラム可能なデータ処理デバイスに特定の方法で作業するように指示することができるコンピュータ可読メモリに記憶されてもよく、その結果、当該コンピュータ可読メモリに記憶されている命令により、フローチャートの1つ又は複数のフロー及び/又はブロック図の1つ又は複数のブロックにおいて指定される機能を実現する命令装置を含む製品が生成される。これらのコンピュータプログラム命令は、コンピュータ又は他のプログラム可能なデータ処理デバイスにロードしてもよく、それにより、一連の動作ステップがコンピュータ又は他のプログラム可能なデバイス上で実行されることで、コンピュータにより実施される処理が生成され、それにより、コンピュータ又は他のプログラム可能なデバイス上で実行される命令により、フローチャートの1つ又は複数のフロー、及び/又はブロック図の1つ又は複数のブロック内で指定される機能を実現するためのステップが提供される。上記は、本発明の実施例にすぎず、本発明を限定するために使用されるものではない。当業者にとって、本発明は、様々な変更及び変化があり得る。本発明の趣旨と原理から逸脱することなく修正、同等な置換、改善などを行った場合、いずれも本発明の特許請求の範囲に含まれるものとするべきである。
【符号の説明】
【0375】
511 プロセッサ
512 機械可読記憶媒体
521 プロセッサ
522 機械可読記憶媒体