特許第5763210号(P5763210)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ メディアテック インコーポレイテッドの特許一覧

特許5763210改良されたループ型フィルタリング処理のための方法と装置
<>
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000004
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000005
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000006
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000007
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000008
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000009
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000010
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000011
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000012
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000013
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000014
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000015
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000016
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000017
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000018
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000019
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000020
  • 特許5763210-改良されたループ型フィルタリング処理のための方法と装置 図000021
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5763210
(24)【登録日】2015年6月19日
(45)【発行日】2015年8月12日
(54)【発明の名称】改良されたループ型フィルタリング処理のための方法と装置
(51)【国際特許分類】
   H04N 19/70 20140101AFI20150723BHJP
   H04N 19/117 20140101ALI20150723BHJP
   H04N 19/136 20140101ALI20150723BHJP
   H04N 19/176 20140101ALI20150723BHJP
   H04N 19/182 20140101ALI20150723BHJP
   H04N 19/186 20140101ALI20150723BHJP
   H04N 19/82 20140101ALI20150723BHJP
   H04N 19/86 20140101ALI20150723BHJP
【FI】
   H04N19/70
   H04N19/117
   H04N19/136
   H04N19/176
   H04N19/182
   H04N19/186
   H04N19/82
   H04N19/86
【請求項の数】14
【全頁数】23
(21)【出願番号】特願2013-547809(P2013-547809)
(86)(22)【出願日】2012年4月20日
(65)【公表番号】特表2014-506061(P2014-506061A)
(43)【公表日】2014年3月6日
(86)【国際出願番号】CN2012074456
(87)【国際公開番号】WO2012142966
(87)【国際公開日】20121026
【審査請求日】2013年7月9日
(31)【優先権主張番号】61/477,689
(32)【優先日】2011年4月21日
(33)【優先権主張国】US
(31)【優先権主張番号】61/547,281
(32)【優先日】2011年10月14日
(33)【優先権主張国】US
(31)【優先権主張番号】61/595,914
(32)【優先日】2012年2月7日
(33)【優先権主張国】US
(31)【優先権主張番号】61/597,995
(32)【優先日】2012年2月13日
(33)【優先権主張国】US
(31)【優先権主張番号】61/600,028
(32)【優先日】2012年2月17日
(33)【優先権主張国】US
(31)【優先権主張番号】61/595,900
(32)【優先日】2012年2月7日
(33)【優先権主張国】US
【前置審査】
(73)【特許権者】
【識別番号】504146800
【氏名又は名称】メディアテック インコーポレイテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】フ,チー−ミン
(72)【発明者】
【氏名】チェン,チン−イー
(72)【発明者】
【氏名】ツァイ,チア−ヤン
(72)【発明者】
【氏名】ホアン,ユ−ウェン
(72)【発明者】
【氏名】レイ,シャウ−ミン
【審査官】 岩井 健二
(56)【参考文献】
【文献】 国際公開第2012/092787(WO,A1)
【文献】 国際公開第2012/092777(WO,A1)
【文献】 国際公開第2011/157084(WO,A1)
【文献】 国際公開第2010/146771(WO,A1)
【文献】 国際公開第2009/074117(WO,A1)
【文献】 米国特許出願公開第2010/0329361(US,A1)
【文献】 Chia-Yang Tsai et al.,CE4 Subset3: Slice Common Information Sharing,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,5th Meeting: Geneva, CH,2011年 3月,JCTVC-E045_r1,pp.1-7
【文献】 Chih-Ming Fu et al.,CE13: Sample Adaptive Offset with LCU-Independent Decoding,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,5th Meeting: Geneva, CH,2011年 3月,JCTVC-E049,pp.1-6
【文献】 Stephan Wenger et al.,Adaptation Parameter Set (APS),Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,6th Meeting: Torino, IT,2011年 7月,JCTVC-F747r3,pp.1-10
【文献】 Chih-Wei Hsu et al.,Non-CE1: Unified SAO interleaving syntax in APS and slice header,Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,9th Meeting: Geneva, CH,2012年 4月,JCTVC-I0384,pp.1-3
【文献】 Chih-Ming Fu et al.,CE8 Subset3: Picture Quadtree Adaptive Offset,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,4th Meeting: Daegu, KR,2011年 1月,JCTVC-D122_r3,pp.1-10
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 − 19/98
(57)【特許請求の範囲】
【請求項1】
再構成されたビデオの画素適応オフセット(SAO)処理によってビデオ復号化を実行する方法であって:
映像ビット列から再構成されたビデオのデータを復元するステップ;
前記映像ビット列の個別の符号化ブロックデータからSAOパラメータと関連した情報を受信するステップ;および、
前記再構成されたビデオの符号化ブロックに対して前記SAO処理を適用するステップ、
含み
前記SAOパラメータと関連した情報は、少なくとも2つの異なる色成分の間で共有され、前記映像ビット列内の個別の符号化ブロックによってインタリーブされることを特徴とする、方法。
【請求項2】
前記符号化ブロックは、符号化ユニット(CU)、複数のCU、最大の符号化ユニット(LCU)または複数のLCUに対応する、請求項1記載の方法。
【請求項3】
再構成されたビデオの画素適応オフセット(SAO)処理によってビデオ符号化を実行する方法であって:
再構成されたビデオ・データを受信するステップ;
SAO処理と関連したSAOパラメータを決定するステップであって、前記SAO処理は、前記再構成されたビデオの符号化ブロックに対して適用される、ステップ;および、
映像ビット列内の個別の符号化ブロックによってインタリーブすることによって、前記SAOパラメータと関連した情報を組み込むステップ;
含み、前記SAOパラメータと関連した情報は、少なくとも2つの異なる色成分の間で共有される、方法。
【請求項4】
前記符号化ブロックは、符号化ユニット(CU)、複数のCU、最大の符号化ユニット(LCU)または複数のLCUに対応する、請求項3記載の方法。
【請求項5】
再構成されたビデオの画素適応オフセット(SAO)処理によってビデオ復号化を実行する方法であって:
映像ビット列から再構成されたビデオのデータを復元するステップ;
前記映像ビット列内の個別の符号化ブロック・データからSAOパラメータと関連した情報を受信するステップ;および、
前記再構成されたビデオ・データの符号化ブロックに対して前記SAO処理を適用するステップ;
含み、前記SAOパラメータと関連した前記情報は、少なくとも2つの異なる色成分の間で共有されることを特徴とする、方法。
【請求項6】
前記SAOパラメータは、マージ・フラグ、左方マージ・フラグ、上方マージ・フラグ、SAOタイプ、SAOオフセットまたはこれらの組み合わせを具備する、請求項5記載の方法。
【請求項7】
前記SAOタイプは、SAO処理の有効化、SAO処理の無効化、バンド・オフセットおよびエッジ・オフセットの中のいずれか一つ又はこれらの組み合わせを具備する、請求項6記載の方法。
【請求項8】
前記色成分は、輝度(luma)の色成分、彩度Cbの色成分、および彩度Crの色成分を具備する、請求項5記載の方法。
【請求項9】
前記SAO処理のために、他の色成分のSAOパラメータから所望の色成分のSAOパラメータを導出するステップをさらに備える、請求項5記載の方法。
【請求項10】
再構成されたビデオの画素適応オフセット(SAO)処理によってビデオ符号化を実行する方法であって:
再構成されたビデオのデータを受信するステップ;
SAO処理と関連したSAOパラメータを決定するステップであって、前記SAO処理は、前記再構成されたビデオの符号化ブロックに対して適用される、ステップ;および、
前記SAOパラメータと関連した情報を映像ビット列の中に組み込むステップ;
含み、前記SAOパラメータと関連した前記情報は、少なくとも2つの異なる色成分の間で共有されることを特徴とする、方法。
【請求項11】
前記SAOパラメータは、マージ・フラグ、左方マージ・フラグ、上方マージ・フラグ、SAOタイプ、SAOオフセットまたはこれらの組み合わせを具備する、請求項10記載の方法。
【請求項12】
前記SAOタイプは、SAO処理の有効化、SAO処理の無効化、バンド・オフセットおよびエッジ・オフセットの中のいずれか一つ又はこれらの組み合わせを具備する、請求項11記載の方法。
【請求項13】
前記色成分は、輝度(luma)の色成分、彩度Cbの色成分、および彩度Crの色成分を具備する、請求項10記載の方法。
【請求項14】
前記SAOパラメータを決定するステップは、他の色成分のSAOパラメータから所望の色成分のSAOパラメータを導出するステップをさらに備える、請求項10記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、「Improved Sample Adaptive Offset」と題され、2011年4月21日付けで出願された米国仮特許出願第61/477,689号、「Low Latency Loop Filtering」と題され、2011年10月14日付けで出願された米国仮特許出願第61/547,281号、「Improved Sample Adaptive Offset」と題され、2012年2月17日付けで出願された米国仮特許出願第61/595,900号、「Improved LCU-based Encoding Algorithm of ALF」と題され、2012年2月7日付けで出願された米国仮特許出願第61/595,914号、「Improved ALF and SAO」と題され、2012年2月13日付けで出願された米国仮特許出願第61/597,995号、および、「LCU-based Syntax for SAO and ALF」と題され、2012年2月17日付けで出願された米国仮特許出願第61/600,028号に基づく優先権を主張する。上述した米国仮特許出願は、その開示内容の全体が参照により本願明細書中に組み込まれる。
【0002】
本発明は映像符号化システムに関する。より具体的には、本発明は、改良されたループ内処理(例えばSAOおよびALF)のための方法と装置に関する。
【背景技術】
【0003】
動き推定は、映像シーケンスの時間的冗長性を利用するのに有効なフレーム間符号化技法である。動き補償されたフレーム間符号化は、様々な国際的なビデオ符号化標準において広く使用されている。様々な符号化標準において採用される動き推定は、符号化モードおよび動きベクトルのような動き情報は、マクロ・ブロック毎または同様のブロック構成毎に決定されることを特徴とする「ブロックに基づく技術」であることが多い。加えて、一枚のピクチャが他のピクチャを一切参照することなく処理されることを特徴とする「内部符号化」がさらに適応的に適用される。フレーム間で予測された又はフレーム内部で予測された残差は、通常、圧縮された映像ビット列を生成するために、変換処理、量子化処理およびエントロピー符号化処理によって更に処理される。符号化処理の実行過程の間、特に量子化プロセスにおいて、符号化により生じるアーチファクトが加わってしまう。符号化により生じるアーチファクトを軽減するために、より新しい符号化システムにおいて画質を強化するために、付加的な処理が再構成されたビデオに適用される。多くの場合、改良されたシステム性能を達成するために、符号化器および復号化器が同じ参照用ピクチャを導出ことができるような態様で、付加的な処理がループ内動作において構成される。
【0004】
図1Aは、ループ内処理を組み込んでいる典型的な適応型のフレーム間/フレーム内ビデオ符号化システムを例示する。フレーム間予測に関しては、他の1枚以上のピクチャからのビデオ・データに基づいて予測データを提供するために、動き推定(ME: Motion Estimation)/動き補償(MC: Motion Compensation)112が使用される。スイッチ114はフレーム内予測110またはフレーム間予測データのいずれか一方を選択し、当該選択された予測データは、残差とも呼ばれる予測誤差を形成するために加算器116に供給される。その後、予測誤差は、変換処理(T)118およびそれに続く量子化処理(Q)によって処理される。変換され、さらに量子化された残差は、続いて、圧縮されたビデオ・データに対応する映像ビット列を形成するために、エントロピー符号化器122によって符号化される。変換係数と関係付けられたビット列は、続いて、補助情報と共にパッキングされ、補助情報とは、例えば画像領域と関連した動き、モードおよびその他の情報等である。補助情報は、必要とされる帯域幅を減らすために、さらにエントロピー符号化処理されても良い。従って、補助情報と関係付けられた当該データは、図1Aに示すようにエントロピー符号化器122に提供される。フレーム間予測モードが用いられる場合、1枚以上の基準ピクチャもまた符号化器の側で再構成されなければならない。従って、変換され量子化された残差は、元の残差を復元するために、逆量子化(IQ)124および逆変換(IT)126によって処理される。続いて、当該残差は、ビデオ・データを再構成するために、再構成部(REC)128において、予測データ136に加算される。当該再構成されたビデオ・データは、基準ピクチャ・バッファ134内に格納されることが可能であり、他のフレームを予測するために使用されることが可能である。
【0005】
図1Aに示すように、入って来るビデオ・データは、符号化システム内における一連の処理によって処理される。REC128からの再構成されたビデオ・データは、一連の処理を受けることに起因して様々な損傷を受ける可能性がある。従って、ビデオ品質を改善するために、再構成されたビデオ・データが基準ピクチャ・バッファ134内に格納される前に、様々なループ内処理が再構成されたビデオ・データに対して適用される。研究開発中のHEVC(High Efficiency Video Coding)標準において、逆ブロック化フィルタ(DF)130、画素適応オフセット処理(SAO)131および適応型ループ・フィルター(ALF)132は、画質を強化するために開発されてきた。復号化器が必要とされる情報を適切に復元することができるように、ループ内フィルタの情報はビット列中に組み込まれなければならない可能性がある。従って、SAOおよびALFからのループ内フィルタの情報は、ビット列中に組み込みために、エントロピー符号化器122に提供される。図1Aにおいて、まず最初に、DF130は、再構成されたビデオに適用され;続いて、DF処理されたビデオに対してSAO 131が適用され;そして、SAO処理されたビデオに対してALF132が適用される。しかしながら、DF、SAOおよびALFの3者の間の処理順序は並べ替えられることが可能である。
【0006】
図1Aに示す符号化器に対応する復号化器は、図1Bに示される。映像ビット列は、変換され量子化された残差、SAO/ALF情報および他のシステム情報を復元するために、ビデオ復号化器142によって復号化される。復号化器の側では、ME/MC(動き推定/動き補償)の代わりに動き補償だけが実行される。復号化の処理過程は、符号化器の側における再構成処理ループの類似している。変換され量子化された残差から復元された残差、SAO/ALF情報および他のシステム情報は、ビデオ・データを再構成するために使用される。再構成されたビデオは、最終的な強化された復号化ビデオを生成するために、DF130、SAO131およびALF132によって更に処理される。
【0007】
HEVCは、符号化性能を強化する非逆ブロック化のループ内フィルタとしてALFを採用した。HEVCテスト・モデル・バージョン5.0においては、ピクチャに基づくALF符号化アルゴリズムが説明されている。しかしながら、通常は、より効率的なメモリー使用状況、より少ないメモリ帯域幅または低いハードウェア・コストのために、LCUに基づく符号化方式またはLCUに基づくパイプライン処理が、ビデオ符号化器およびビデオ復号化器を実装するために使われる。従って、LCUに基づくALFは、好適な方法である。しかしながら、ALF処理の性能をより一層高めることが望ましい。
【0008】
SAOは、画質を強化するためにHEVCによって採用されるさらに別のループ内処理である。SAOは、2つの方法から成る。1つはバンド・オフセット(BO)である、そして、その他はエッジ・オフセット(EO)である。BOは画素の輝度に従って複数の画素を複数のバンドに分類するために使用され、各バンド内の画素にオフセットが適用される。EOは近隣の画素との関係に従って複数の画素を複数のカテゴリに分類するために使用され、各カテゴリ内の画素にオフセットが適用される。HM−5.0において、一つの領域は、以下の7種類の異なるSAOタイプを選択することができる。これらは、2つのBOグループ(外側のグループおよび内側グループ)、4種類のEO指向性パターン(0°、90°、135°および45°)および処理無し(OFF)である。さらに、画像は、4分木分割法を用いて複数の領域に更に分割されることが可能であり、または、最大の符号化ユニット(LCU)領域に分割されることが可能であり、各領域はそれ自身のSAOタイプおよびオフセット値を有する。SAOパラメータのシグナリングを改善することによって、SAO処理の性能をより一層高めることが望ましい。
【発明の概要】
【0009】
再構成されたビデオのループ内処理を使用したビデオ復号化処理のための方法および装置が開示される。本発明に係る一実施例に従うならば、本実施例に係る方法は、映像ビット列から再構成されたビデオ・データを復元する工程;前記映像ビット列からフラグを受信する工程;前記フラグの値に応じて、2つ以上の符号化ブロックにより共有される前記映像ビット列内のデータ・ペイロード又は前記映像ビット列内の個々の符号化ブロックのデータからループ内フィルタについてのパラメータに関連した情報を受信する工程;および、ループ内処理を再構成されたビデオの符号化ブロックに適用する工程を具備する。前記ループ内処理は、適応型ループ・フィルター(ALF)または画素適応オフセット(SAO)に対応しても良い。前記符号化ブロックは、符号化ユニット(CU)、複数のCU、最大の符号化ユニット(LCU)または複数のLCUに対応しても良い。前記映像ビット列のデータ・ペイロードは、ピクチャ層、適応パラメータ群(APS)またはスライス・ヘッダの中に含まれている。本発明に係る一実施例においては、前記フラグは、ループ内フィルタについてのパラメータと関連した情報が映像ビット列内のデータ・ペイロード中に組み込まれるのか、それとも映像ビット列内の個々の符号化ブロック・データによってインタリーブされるのかを選択するために使用されるインタリーブ処理フラグである。
【0010】
本発明の他の実施例においては、前記フラグはシーケンス層の中にあり、ループ内フィルタについてのパラメータと関連した情報は、前記フラグの値に応じて、適応パラメータ群(APS)またはスライス・ヘッダの中に組み込まれる。
【0011】
再構成されたビデオのループ内処理を使用したビデオ符号化処理のための方法および装置が開示される。本発明に係る一実施例に従うならば、本実施例に係る方法は、再構成されたビデオ・データを受信する工程;ループ内処理と関連したループ内フィルタについてのパラメータを決定する工程であって、前記ループ内処理は、前記再構成されたビデオの複数の符号化ブロックに対して適用される、工程;フラグの値に応じて、2つ以上の符号化ブロックにより共有される前記映像ビット列内のデータ・ペイロード中にループ内フィルタについてのパラメータと関連した情報を組み込む、又は前記映像ビット列内の個々の符号化ブロックのデータによってループ内フィルタについてのパラメータと関連した情報をインタリーブ処理する工程;を具備する。前記ループ内処理は、適応型ループ・フィルター(ALF)または画素適応オフセット(SAO)に対応することが可能である。前記符号化ブロックは、符号化ユニット(CU)、複数のCU、最大の符号化ユニット(LCU)または複数のLCUに対応しても良い。前記映像ビット列のデータ・ペイロードは、ピクチャ層、適応パラメータ群(APS)またはスライス・ヘッダの中に含まれている。本発明に係る一実施例においては、前記フラグは、ループ内フィルタについてのパラメータと関連した情報が映像ビット列内のデータ・ペイロード中に組み込まれるのか、それとも映像ビット列内の個々の符号化ブロック・データによってインタリーブされるのかを選択するために使用されるインタリーブ処理フラグである。本発明の他の実施例においては、前記フラグはシーケンス層の中にあり、ループ内フィルタについてのパラメータと関連した情報は、前記フラグの値に応じて、適応パラメータ群(APS)またはスライス・ヘッダの中に組み込まれる。
【図面の簡単な説明】
【0012】
図1A】DF、SAOおよびALFによるループ内処理を備える例示的な適応型フレーム間/フレーム内ビデオ符号化システムを示す図。
図1B】DF、SAOおよびALFによるループ内処理を備える例示的な適応型フレーム間/フレーム内ビデオ復号化システムを示す図。
図2】現在のブロックと隣接するブロックとの間でループ内フィルタについてのパラメータを共有することの一例を示す図。
図3】現在の画素とその周辺から構成される3x3のウィンドウ内における8つの隣接した画素に基づいて改良されたエッジ・オフセット分類の一例を示す図。
図4】スライス境界を跨いだSAO処理の適応制御を有効にするためのseq_parameter_set_rbsp()に関する例示的なシンタックス設計を例示する図。
図5】適応SAOパラメータのシグナリングが、スライス内のブロック・データによってインタリーブ処理することを可能にするための、またはSAOパラメータをAPS内に組み込むことを可能にするためのaps_rbsp()に関する例示的なシンタックス設計を例示する図。
図6】APSを参照しており、aps_idを有するスライス内の符号化ブロックが、当該APS内のSAOパラメータを共有することを可能にするaps_sao_param()に関する例示的なシンタックス設計を例示する図。
図7】符号化ブロックに関するSAO情報を組み込むためのsao_unit_vlc()に関する例示的なシンタックス設計を例示する図。
図8】符号化ブロックに関するSAOオフセット値を組み込むためのsao_offset_vlc()に関する例示的なシンタックス設計を例示する図。
図9】適応SAOパラメータに対するブロック・データによるインタリーブ処理を有効にするためのslice_header()に関する例示的なシンタックス設計を例示する図。
図10】適応SAOパラメータに対するブロック・データによるインタリーブ処理を有効にするためのslice_data()に関する例示的なシンタックス設計を例示する図。
図11】適応SAOパラメータに対するブロック・データによるインタリーブ処理を有効にするためのsao_unit_cabac()に関する例示的なシンタックス設計を例示する図。
図12】適応SAOパラメータに対するブロック・データによるインタリーブ処理を有効にするためのsao_offset_cabac()に関する例示的なシンタックス設計を例示する図。
図13】適応ALFパラメータのシグナリングを有効にするためのseq_parameter_set_rbsp()に関する例示的なシンタックス設計を例示する図。
図14】適応ALFパラメータのシグナリングを有効にするためのslice_header()に関する例示的なシンタックス設計を例示する図。
図15】適応ALFパラメータのシグナリングを有効にするためのalf_param()に関する例示的なシンタックス設計を例示する図。
図16】適応ALFパラメータのシグナリングを有効にするためのalf_unit()に関する例示的なシンタックス設計を例示する図。
図17】適応ALFパラメータのシグナリングを有効にするためのalf_info()に関する例示的なシンタックス設計を例示する図。
【発明を実施するための形態】
【0013】
ブロックに基づくループ内フィルタリング処理において、各ブロック毎のループ内フィルタについてのパラメータは、復号化器側での適切なループ内フィルタリング演算のために、復号化器側に伝達されなければならない。ループ内フィルタの具体例は、画素適応オフセット(SAO)または適応型ループ・フィルター(ALF)を含むことができる。本開示において、ループ内フィルタを指す用語として、ループ内フィルタ処理またはループ内処理などの用語を使用することも可能である。本開示において、ループ内パラメータを指す用語として、ループ内情報などの用語を使用することも可能である。例えば、符号化ユニット(CU)または最大のCU(LCU)のようにブロックのサイズが小さい場合、ループ内フィルタについてのパラメータに対応するビットレートは、比較的大きくなる。従って、ループ内フィルタについてのパラメータと関連したビットレートを低減させることが望ましい。本発明に係る一実施例は、現在のブロックが一つ以上の隣接ブロックとの間でループ内フィルタについてのパラメータを共有する場合を示すマージ・フラグを使用する。さらにまた、当該ブロックは、ループ内フィルタについてのパラメータに対応するビットレートを低下させるために、複数のLCUを含むことが可能である。マージ・フラグは、暗黙的に決定されることも可能である。例えば、左および上にあるブロックが、ループ内フィルタについての同じパラメータを有する場合、現在のブロックは、明示的にマージ・フラグを送信する必要なしに、自身の左および上にある隣接ブロックとの間でループ内フィルタについてのパラメータを共有する。ループ内フィルタについての情報は、圧縮された映像ビット列に組み込まれることが可能である。
【0014】
現在のブロックに関するループ内フィルタのパラメータの共有動作は、隣接するブロックのうちの1つを選択することが可能であり、隣接するブロックとは、例えば、現在のブロックから見て左、上、右、左上、下、左下にあるブロックやその他のブロックなどである。2つのブロックが共に合併され、ループ内フィルタについての同じパラメータを共有することを示すためにマージ・シンタックスが使用される。図2は、ループ内フィルタについてのパラメータを、隣接するブロックとの間で共有することの一例を示す。現在のブロックCが、ループ内フィルタについてのパラメータを隣接ブロックと共有しなければならないかどうかを判断するための例示的な方法を以下の通りに説明する。ブロックAのSAO情報がブロックBのSAO情報と等しくない場合、X1の値は1に設定される。さもなければ、X1の値は、ゼロに設定される。ブロックDのSAO情報がブロックBのSAO情報と等しくない場合、X2の値は1に設定される。さもなければ、X2の値は、ゼロに設定される。ブロックDのSAO情報がブロックAのSAO情報と等しくない場合、X3の値は1に設定される。さもなければ、X3の値は、ゼロに設定される。変数Xは、式「X=X3*4+X2*2+X1*1」に従って計算することができる。変数Xは、現在のブロックと合併するための隣接ブロックを選択するために使用することができる。
【0015】
例示的なマージ処理過程において、Xの値が7に等しい場合、マージ・フラグはブロックCがループ内フィルタについての新しいパラメータを使用するかどうかを示すために組み込まれる。マージ・フラグが1の値を有する場合、ブロックCは、ループ内フィルタについての新しいパラメータを使用し、さもなければ、ブロックCは、ループ内フィルタについてのパラメータをブロックAまたはブロックBとの間で共有する。Xの値が5に等しい場合、マージ・フラグは、ブロックCがループ内フィルタについての新しいパラメータを使用するかどうかを示すために組み込まれる。マージ・フラグが1の値を有する場合、ブロックCは、ループ内フィルタについての新しいパラメータを使用し、さもなければ、ブロックCは、ループ内フィルタについてのパラメータをブロックAとの間で共有する。Xの値が3に等しい場合、マージ・フラグは、ブロックCがループ内フィルタについての新しいパラメータを使用するかどうかを示すために組み込まれる。マージ・フラグが1の値を有する場合、ブロックCは新しいループのフィルタパラメータを使用する、そして、さもなければ、ブロックCはループのフィルタパラメータをブロックBとの間で共有する。各ブロックは、CU、複数のCU、LCU、複数のLCUまたは他のブロック構造であっても良い。当該ブロックは、異なるサイズに対応することも可能である。本開示において、当該ブロックは、符号化ブロックとも呼ばれる。
【0016】
従来のアプローチにおいて、SAO処理は、輝度成分に適用されるだけである。本発明に係る実施例は、SAO処理が輝度成分に適用されるならば、SAO処理をさらに彩度成分に対して選択的に適用する。SAO処理が輝度成分に適用される場合、SAO処理が彩度成分に適用されるかどうかを示すために、SAO彩度フラグを使用することが可能である。彩度成分に関するSAO情報は、輝度成分または他の彩度成分に関するSAO情報から導出することが可能である。彩度成分が輝度成分または他の彩度成分との間でSAO情報を共有する場合、SAO情報についての共有フラグはその旨を示すために使用することが可能である。SAO情報は、オフセット値、SAOタイプ(本開示においては、「カテゴリ」または「クラス」とも呼ばれる)およびON/OFF決定を含むことが可能である。一実施例においては、オフセット値のうちの1つを選択するために1つのインデックスが使用されることを可能とするような態様で、オフセット値は予め定義される。SAO情報は、複数のブロックがこれを共有するために、例えばPPSまたはAPSのようなビット列内、またはスライス・ヘッダ内のデータ・ペイロードの中に組み込まれることが可能である。
【0017】
SAOパラメータと関連した情報は、予測的な方法を使用することにより以前に処理されたブロックのSAOパラメータに基づいて符号化されることが可能である。オフセット値による符号化は内部ビット深さの増加量、フレーム間モード情報/フレーム内モード情報、動き情報、変換サイズ、量子化ステップ幅、残差の逆ブロック化情報、画像サイズおよび領域サイズに依存する可能性がある。例えば、内部ビット深さの増加量が1より大きい場合、オフセット値による符号化は1ビット分だけ増加する可能性がある。SAO情報の他の例示的な符号化において、SAOパラメータは、量子化パラメータに従ってその符号化精度を変えることが可能である。SAOパラメータと関連したビットレートを減らすために、オフセット値に関する情報は、時間遅延的な態様に従って符号化されることが可能である。さらにまた、現在のスライスのSAO情報は、他のスライスまたは領域との間で共有されることが可能である。したがって、オフセット情報は、ピクチャ・パラメータ群(PPS)の中に組み込まれることが可能である。現在のスライスまたは領域の符号化ブロックは、同じSAO情報を共有することが可能である。
【0018】
従来のアプローチにおいて、多くの場合、SAO処理は、DF処理の後に適用される。本発明に係る実施例は、1つのブロックに対してDF処理とSAO処理のいずれか一方を選択的に適用することが可能である。代替的に、DF処理およびSAO処理は、再構成された同一のビデオ・データに適用されることが可能であり、両方の処理からの出力は線形結合される。
【0019】
本発明に係る一実施例に従うならば、SAOに関する画素分類方法は、以下のような他の画素分類方法と組み合わされることが可能である。上述した他の画素分類方法とは、例えば、エッジ方向、画素輝度、画素変化、画素分散、画素のラプラシアン合計、高域フィルタリング結果、低域フィルタリング結果、高域フィルタリング結果の絶対値および隣接した複数の画素の平均値などである。例えば、バンド・オフセット(BO)またはエッジ・オフセット(EO)の1つのカテゴリは、EOによって更に分割されることが可能である。他の具体例においては、EOの1つのカテゴリは、BOまたはラプラシアン合計によって更に分割されることが可能である。
【0020】
従来のEO分類において、3x3ウィンドウ内における2つの隣接した画素は、現在の画素を異なるカテゴリまたはクラスに分類するために使用される。本発明に係る実施例は、3x3ウィンドウ内における全ての隣接した画素に基づく改良された分類方法を使用することが可能である。現在の画素Cの周囲にある隣接した画素(P1〜P8)が図3において示される。一つの実施例として、クラス・インデックス「ClassIdx」は、以下の数式により定義されることが可能である:
ClassIdx = Index2ClassTable( f(C, P1) + f(C, P2) + … + f(C, P8))
上記の数式において、f(C, Pn)は比較関数であり、Index2ClassTableは比較結果をクラス・インデックスに写像する写像関数である。上述した比較関数f(x, y)は、以下のように定義されている。
【0021】
【数1】

上記の関数定義において、thは閾値である。
【0022】
別の代替的な比較関数f(x, y)として、比較関数f(x, y)を以下のように定義することも可能である。
【0023】
【数2】

上記の関数定義において、thは閾値であり、sはスケーリング係数である。
【0024】
改良されたEO分類方法は、SAOおよび他の画素分類方法を組み合わせた複合的な画素分類方法に適用されることが可能である。例えば、上述した改良されたEO分類方法によるエッジ・オフセット(EO)のカテゴリは、EOまたはBOによって更に分割されることが可能である。
【0025】
従来のアプローチにおいて、LCUに基づくALF符号化のために使用される処理単位は、常に1つのLCUである。ALFによる歪みの改良は、LCUのサイズと関係している。通常、より小さいLCUは、ALF設計がローカル特性により適合するように調整されることを可能にする。しかしながら、ALFパラメータに関連した情報の量は比較的一定であり、LCUのサイズから独立している。従って、より少ないLCUサイズは、ALFパラメータに対応する情報と関連したより高いビットレートを結果として生じる。従って、符号化ビデオ・データが利用できる正味のビットレートは実質的に減少する可能性があり、システム性能は低下する可能性がある。この課題を解決するために、本発明に係る実施例は、複数のLCUを、本開示においてフィルタ・ユニットまたは符号化ブロックとも呼ばれる1つのユニットにグループ化する。従って、同じALFはフィルタ・ユニットの全てのLCUに適用され、ALFパラメータを組み込むのに必要とされるビットレートを減らすために、ALFパラメータは1つのフィルタ・ユニット内の全てのLCUの間で共有される。ALFパラメータの組は、フィルタ係数、フィルタ特性、フィルタ・サイズ、ON/OFF制御および領域情報から成る一群の中から選択される一つ以上の要素を含むことが可能である。ALF/SAOパラメータの組を格納するためにバッファが使用され、その結果、当該情報が他のフィルタ・ユニット、スライスまたはピクチャによって共有されることが可能となる。フィルタ・ユニットは、1つのピクチャまたは複数のLCUと同じ大きさとすることが可能である。例えば、1つのフィルタ・ユニットは、MxNの複数のLCUから成ることが可能であり、ここで、MおよびNは、ゼロより大きい整数である。1つのフィルタ・ユニットの境界は、LCU境界にアラインメントされることが可能であっても可能でなくても良い。フィルタ・ユニットが用いられる場合、ALFパラメータはフィルタ・ユニットと関連した統計に基づいて設計されることが可能である。設計されるALFパラメータは、フィルタ・ユニット内にある全ての画素に適用されることが可能である。符号化器は、MおよびNの値を決定することが可能であり、フィルタ・サイズ情報をシーケンス層のRBSP(Raw Byte Sequence Payload)またはピクチャ層RBSPの中に組み込むことが可能である。従って、複数のLCUの間でループ内パラメータを共有することによって、ALFに対応する補助情報は減らされることが可能である。
【0026】
1つのフィルタ・ユニットに関する複数のフィルタ候補は、下に位置する複数のフィルタ・ユニットに基づいて導出されることが可能である、または、複数のフィルタ候補は、現在のスライス内において以前に処理されたフィルタ・ユニットによって使用されるフィルタ候補の少なくとも一部を共有することが可能である。しかしながら、スライス内の第1のフィルタ・ユニットに関しては、現在のフィルタ・ユニットが共有すべき「以前に処理されたフィルタ・ユニット」はスライス内には存在しない。従って、第1のフィルタ・ユニットを処理するために、既定のフィルタ候補または他の手段を使用しなければならず、性能は低下する可能性がある。従来のアプローチにおいて、ALFパラメータは、他のフィルタ・ユニットからの情報を一切使用せずに1つのフィルタ・ユニット(一つのLCUまたは一つのピクチャ)から導出される。本発明に係る一実施例は、現在のフィルタ・ユニットに関して幾つかのフィルタ候補を導出するための先行フレームまたは以前に処理されたフィルタ・ユニットからの情報を使用することを可能にする。例えば、先行フレーム内におけるALF−Offモードを有するフィルタ・ユニットの統計は、1つのフィルタに関するパラメータを導出するために使用することが可能であり、当該1つのフィルタは、現在のフィルタ・ユニットに関する1つのフィルタ候補として使用することが可能である。先行フレーム内においてALF−Onフィルタ・ユニットから導出されたフィルタは、その他のフィルタ候補として使用することが可能である。さらに、1枚のピクチャは、複数の区画に分割されることが可能であり、各区画内において、ALF−ONフィルタ・ユニットおよびALF−OFFフィルタ・ユニットのそれぞれに関するフィルタが導出されることが可能である。これらのフィルタの中の1つが、現在のフィルタ・ユニットに関する一つのフィルタ候補として使用されることが可能である。現在のスライス内において以前に処理されたユニットの統計は、蓄積されることが可能であり、その結果、当該累積された統計に基づいてフィルタ候補を導出することが可能となる。
【0027】
従来のALF処理によれば、彩度成分の処理は、輝度成分の処理から独立しているか、または常に輝度成分の処理の後で実行される。本発明に係る実施例は、上記2つの方法を最適な形で合成する。1つのシンタックスは、彩度成分がフィルタリング処理されるかどうか示すために使用され、もう一つのシンタックスは、彩度成分が輝度成分との間でフィルタを共有するか、さもなければ、ビット列内に組み込まれたそれ自身のフィルタを使用するかを示すために使用される。従って、彩度成分のためのフィルタ係数は、輝度フィルタから導出されることが可能であるか、またはビット列から復号化されることが可能である。さらに、ALFパラメータと関連した補助情報を減らすために、彩度成分に関するフィルタのフットプリントは、輝度成分に関するフィルタのサブセットとすることが可能である。
【0028】
以前のALFパラメータが共有される場合、現在のスライスにおける先行するフィルタ・ユニットのパラメータは、後続するフィルタ・ユニットによって再利用されることが可能である。SAO処理に関して、先行する領域のパラメータまたは現在のスライスのLCUは、以下の領域またはLCUによって再利用されることが可能である。便宜上、用語「フィルタ・ユニット」は、「領域」または「LCU」を指して言うことも可能である。以前のALFパラメータをどこまで遡って再利用することが可能であるかは、ユーザによって定義されても良いし、ピクチャのサイズに依存しても良い。ALF/SAO情報が共有される場合、ALF/SAO情報を導出することが可能であり、さもなければ、ALF/SAO情報は、以前に符号化された領域、以前に符号化されたピクチャ、又は以前に定義されたALF/SAO情報から複製することが可能である。ALF情報は、フィルタ係数、フィルタ特性、フィルタ・サイズ、ON/OFF制御および領域情報から成る一群の中から、一つ以上の要素を含むことが可能である。
【0029】
各フィルタ・ユニットは、バッファ中に格納されている以前のALF/SAOパラメータを選択するために、インデックスを使用することが可能である。当該インデックスは、ビットレートを減らすために、適応的にエントロピー符号化されることが可能である。例えば、より高頻度で選択される一組のALF/SAOパラメータは、より短い符号ワードを割り当てられることが可能である。他の具体例においては、一つ以上の最も尤度が高いモードが決定される予測符号化技法を使用することが可能である。現在のインデックスが最も尤度が高いモードの中の1つに等しい場合、インデックスを符号化するために非常に短い符号ワードを使用することが可能である。さもなければ、それは、残りのインデックスの中のどれが現在のインデックスと同一であるかを識別するために、より多くのビットを必要とするだろう。当該技法は、フレーム内符号化モードにおいて使用する最も尤度が高いモードの符号化技法と類似している。当該インデックスに対応するシンタックスは、適応パラメータ群(APS)、ピクチャ・パラメータ群(PPS)、スライス・ヘッダまたはスライス・データの中に組み込まれることが可能である。本発明に係る一実施例に従うならば、ALFに関連した情報は、適応パラメータ群(APS)、スライス・ヘッダ又はスライス・データ内に組み込まれることが可能であり、または、当該情報は、シーケンス・パラメータ群(SPS)、ピクチャ・パラメータ群(PPS)、適応パラメータ群(APS)またはスライス・ヘッダの中に組み込まれたフラグに基づいて、適応的に変更される。
【0030】
適応ALFパラメータのシグナリングを可能にするための他の実施例において、ALFパラメータのインタリーブ処理フラグまたはSAOパラメータのインタリーブ処理フラグは、各フィルタ・ユニット毎のALFパラメータが、スライス内のフィルタ・ユニット・データによってインタリーブされるか否かを指示するために使用することが可能である(前記したように、用語「フィルタ・ユニット」は、一つのLCUまたは一つの領域にを指して言うことが可能である)。ALFパラメータのインタリーブ処理フラグまたはSAOパラメータのインタリーブ処理フラグは、ピクチャ・パラメータ群(PPS)、適応パラメータ群(APS)またはスライス・ヘッダの中に組み込まれることが可能である。さらにまた、インタリーブ処理を指示するための当該フラグは、APSおよびスライス・ヘッダのような複数のRBSPの中に同時に組み込まれることが可能である。インタリーブ処理を指示するための当該フラグが複数のRBSPの中に存在する場合、当該フラグは複数のRBSPの中において同一の値を有しなければならない。したがって、本発明に係る実施例は、インタリーブ処理フラグを保護する冗長性の機能をさらに提供する。
【0031】
SAOに関して、1つのSAO処理領域内におけるLCUの最大数を示すために、フラグ「sao_max_region_size_minus_one」を使用することが可能である。1つのSAO処理領域内におけるLCUの最大数は、「sao_max_region_size_minus_one」+1に等しい。フラグ「sao_max_region_size_minus_one」は、ピクチャ・パラメータ群(PPS)、シーケンス・パラメータ群(SPS)、適応パラメータ群(APS)、スライス・ヘッダまたは上述したものの中の1つ以上の中に組み込まれることが可能である。同じSAO処理領域内における複数のLCUは、同一のSAOパラメータを共有することができる。例えば、「sao_max_region_size_minus_one」の値がゼロに等しい場合、1つのSAO処理領域内におけるLCUの最大数は1に設定される。LCUに基づくシンタックス設計および「run」符号化が使用される場合、「run」値は、同じSAOパラメータを共有しているLCUの個数を示す。アプリケーションによっては、小さいLCUサイズ(例えば16x16)を使用することが可能である。この場合、SAOパラメータを共有している領域内における連続的なLCUのランレングス符号化と関連したビットレートは、比較的高くなる可能性がある。従って、「run」値は、同じSAOパラメータを共有している領域の個数を示すために使用される。
【0032】
ランレングス符号化は、ALFパラメータにも同様に適用されることが可能である。フィルタ・ユニットは1つのLCUから成ることができ、この場合、フィルタ・ユニットに基づく処理はLCUに基づく処理と同一になる。連続的なフィルタ・ユニットは、同じALFパラメータを共有することができる。ランレングス符号化は、現在のフィルタ・ユニットとの間でALFパラメータを共有している連続的なフィルタ・ユニットの個数を示すために使用され、その結果、ALFパラメータが共有されていることを示すためのビットレートを減らすことができる。
【0033】
細かい粒度のスライスの場合、粒度ブロックは、1つのLCUより小さくても良い。この場合、1つのLCUは複数のスライス・データを含むことができる、すなわち、1つのLCUはALF/SAOパラメータの複数の群を含むことができる。本発明に係る一実施例は、1つのLCU内における全てのループ内フィルタのパラメータが同じ値となるように強制するだろう。
【0034】
完全なピクチャが利用可能となるまで、ピクチャに基づくループ内設計は待機していなければならない。それは、処理遅延の原因となることがある。しかしながら、それは、基準ピクチャ以外のピクチャに関しては問題とはならない可能性がある。フィルタ・パラメータが導出された後に、本発明に係る実施例は、実際のフィルタリング処理ステップをスキップすることが可能である。そのかわりに、ピクチャに基づく方法においては、ループ内処理は、余分な符号化待ち時間や追加的な画像メモリ・アクセスを一切引き起こすこと無く、基準ピクチャ以外のピクチャに適用されることが可能である。
【0035】
符号化器の側におけるループ内フィルタ処理は、2つの別々の処理ステップを必要とする。第1ステップにおいては、下に位置するLCUまたはピクチャから統計が収集される。続いて、収集された統計に基づいて、ループ内フィルタについてのパラメータが導出される。第2ステップにおいては、ループ内フィルタについての当該導出されたパラメータに基づいて、LCUまたはピクチャ内の画素に対してループ内フィルタ処理が適用される。例えばALF処理などのようなループ内処理の各々は、別々のステップで実行されるので、それは大量のデータ・アクセスを引き起こす可能性がある。本発明に係る一実施例は、関連するデータ・アクセスの量を減らすために、ループ内フィルタ処理ステップのうちの1つを他のループ内フィルタ処理と組み合わせる。例えば、ALF/SAO処理の第1ステップは統計を収集することであるが、それは例えば逆ブロック化プロセスのような他のLCUに基づく符号化ツールと並行して実行されることが可能である。したがって、逆ブロック化プロセスの間、ALF/SAO処理に関する統計を収集することが可能である。従って、ALF/SAOパラメータは、追加的な画像メモリ・アクセスを一切行うこと無しに、導出されることが可能である。ALF/SAO処理の第2ステップは画素データに対してフィルタリング処理を適用することを含み、それは後の動き推定プロセスの実行期間中に実行されることが可能である。従って、別個のメモリ・アクセスを一切実行すること無く、符号化器の側におけるALF/SAO処理プロセスを実行することが可能であり、それは本開示において、「ゼロ−パス符号化」と呼ばれる。復号化器の側においては、ALF/SAOフィルタ設計のために統計を収集する必要は無い。にもかかわらず、復号化器は、動き補償の実行の間、ALF/SAOフィルタリング処理を実行することによって、ゼロ−パス復号化の利点を得ることができる。
【0036】
一部の低レイテンシ・アプリケーションに関しては、フィルタ・ユニットに基づく処理が好適である。フィルタ・ユニットに基づく符号化に関しては、フィルタ・ユニットの符号化結果が一旦利用可能となった後は、1つのフィルタ・ユニットのON/OFF制御の決定は完了していると予測される。さらにまた、フィルタ・ユニットと関連した圧縮データは、1つのスライス内におけるループ内フィルタのパラメータによってインタリーブされるようにすることが好適である。一部の低レイテンシ・アプリケーションに関しては、スライス層におけるON/OFF制御は、符号化待ち時間が長くなる原因となることがある。したがって、ループ内フィルタについてのパラメータが、1つのスライス内において符号化され、フィルタ・ユニット・データ(本開示においては、ブロック・データとも呼ばれる)によってインタリーブされる場合、本発明に係る一実施例は、スライス層におけるON/OFF制御のフラグを常に明示的にONを示すように設定する。代替的に、本発明に係る一実施例は、スライス層におけるON/OFF制御のフラグを条件に応じて無効化することができる。ループ内フィルタについてのパラメータが1つのスライスにおいて符号化され、インタリーブされる場合、スライス層におけるON/OFF制御のフラグは送信されない。さもなければ、スライス層におけるON/OFF制御のフラグは、送信される。
【0037】
従来の手法において、BOおよびEOに関する各領域内のオフセットの個数は異なっている。本発明に係る一実施例は、BOおよびEOに関する各領域内のオフセットの個数を画一化する。したがって、BOグループの個数は8に変更され、各BOグループは各領域について4個のオフセットを有する。グループ毎のオフセットの個数を減らすことにより、関連するビットレートを減らすことが可能となる。当該オフセットと関連したビットレートは、本発明に係る別の一実施例によっても減らすことが可能である。例えば、オフセットの範囲は、より狭い範囲に制約されることが可能である。これは、オフセットがより小さいことが予想される小さい領域に関して有益である。本発明に係る一実施例によれば、隣接ブロックに基づくオフセットの予測のために必要とされるバッファを減らすことができる。例えば、オフセットの予測は、現在のLCUより上に位置するLCUに関するオフセットを使用するのを回避することが可能である。ループ内フィルタリング演算は、非ブロック化フィルタ、SAOおよびALFを含む。本発明に係る一実施例によれば、輝度SAO処理が有効化されているか否かに依存している彩度SAO処理を条件付きで有効化することによって、彩度SAO処理を改善することが可能である。本発明に係るもう一つの実施例では、EOが選択される場合に、彩度成分および輝度成分に関するオフセットは共有されることが可能である。
【0038】
様々なシンタックス設計は、本発明に係る例示的な実施形態として、本願明細書において図示される。図4は、本発明に従い、loop_filter_across_slice_flagが組み込まれた例示的なシーケンス・パラメータ群のシンタックス構造を図示する。loop_filter_across_slice_flagの値が1に等しい場合、ループ内フィルタリング演算はスライスの境界に跨って実行されることが可能である。loop_filter_across_slice_flagの値がゼロに等しい場合、ループ内フィルタリング演算はスライスから独立しており、演算はスライスの境界を跨いで実行されない。したがって、本発明に係る一実施例によれば、隣接ブロックに基づいてループ内フィルタに関するパラメータを予測する処理のために必要とされるバッファは、減らされることができる。
【0039】
図5は、SAOパラメータのインタリーブ処理フラグをAPS内に組み込むことの一例を図示する。図5において、aps_idは、スライス・ヘッダ中において対応するaps_idを有するスライス内の符号化ブロックによって参照される適応パラメータ群(APS)を識別する。SAOパラメータのインタリーブ処理フラグ(すなわち、「aps_sao_interleaving_flag」)の値が1に等しい場合、aps_idによって示されるように、SAOパラメータは当該APSを参照しているスライスに関するフィルタ・ユニット・データによってインタリーブされる。「aps_sao_interleaving_flag」の値がゼロに等しい場合、SAOパラメータは当該APSを参照しているスライスに関するAPSの中に組み込まれる。他のフラグ(すなわち、「aps_sample_adaptive_offset_flag」)は、フィルタのON/OFFを制御するために、当該APSの中に組み込まれる。「aps_sample_adaptive_offset_flag」の値が1に等しい場合、SAO処理はaps_idによって示されるAPSを参照しているスライスについてONされる。一方では、「aps_sample_adaptive_offset_flag」の値がゼロに等しい場合、SAO処理はaps_idによって示されるAPSを参照しているスライスについてOFFされる。
【0040】
図6は、本発明に係る一実施例に従い、APS内におけるSAOパラメータに関する例示的なシンタックス設計(aps_sao_param( ))を例示する。当該シンタックス構造は、SAO処理のために必要とされるSAO情報を含む。例えば、当該シンタックス構造は、図6に示すsao_cb_enable_flagおよびsao_cr_enable_flagなどのフラグ類を含むことができ、これらのフラグは、SAO処理が現在のピクチャのそれぞれの彩度成分に適用されるか否かを決定するためのものである。当該シンタックス構造は、LCUのサイズという意味でのピクチャのサイズに関する情報(例えば図6の「sao_num_lcu_in_width_minus1」および「sao_num_lcu_in_height_minus1」)をさらに含むことも可能である。当該シンタックス構造は、最大の符号化ユニット又はフィルタ・ユニットの各々毎に同じSAOパラメータ又は個別のSAOパラメータを使用して1つのスライス内の全ての符号化ユニットが処理されるか否かについての情報を含むことも可能であり、これらの情報は、図6中においてそれぞれ「sao_one_luma_unit_flag」、「sao_one_cb_unit_flag」、および「sao_one_cr_unit_flag」として示される。上述したフラグの中のいずれかが1の値を有する場合、組み込まれるであろうSAOオフセット値は、共有すべきスライス内の符号化ブロックのそれぞれについてのsao_offset_vlc( )である。当該シンタックス構造は、例えばsao_repeat_row_flag[cIdx]などの表示をさらに含むことが可能であり、当該表示は、符号化ブロックの現在の行(例えばLCUの一つの行)内における符号化ブロックに関するSAOパラメータが、それぞれの色成分インデックス(cIdx)について、上に位置する符号化ブロックと同一かどうかに関する表示である。
【0041】
上記の例示的なシンタックス構造「aps_sao_param( )」においては、SAOブロック構造「sao_unit_vlc( )」もまた、それぞれのrepeat-rowフラグと共に組み込まれる。図7は例示的なシンタックス構造「sao_unit_vlc()」を例示し、当該シンタックス構造は符号化ブロック間でのSAOパラメータの共有情報と関連した情報を含み、これらの情報は、例えば「sao_run_diff」および「sao_merge_up_flag」などである。符号化ブロックに対応するSAOパラメータが、同じ行内において後続する複数の符号化ブロックにわたって反復される回数は、配列“saoRun[cIdx][rx][ry]”によって表される。上述した配列のインデックスcIdxは、色成分を特定する;cIdxは、それぞれ輝度luma、彩度Cbまたは彩度Crに対応する0、1または2の値を有する。配列のインデックスrxおよびryは、ピクチャの左上にある符号化ブロックから相対的に見て下に位置する符号化ブロックの位置を特定する。構文要素「sao_run_diff」は、現在行が第1の行である場合、現在の符号化ブロックの“saoRun[ ][ ][ ]”を特定し、さもなければ、現在の符号化ブロックの走査と上に位置する符号化ブロックの走査との間の差分を特定する。“saoRun[ ][ ][ ]”がゼロ以上の場合、sao_offset_vlc( )内に含まれる複数の構文要素は左の符号化ブロックの対応する構文要素から導出される。構文要素「sao_run_diff」の長さは、Ceil(Log2(sao_num_lcu_in_width_ minus1−rx+2))の値に等しいビット数である。フラグ「sao_merge_up_flag」の値が1に等しい場合、「sao_offset_vlc( )」内に含まれる構文要素は、上に位置する符号化ブロックの対応する構文要素から導出される。フラグ「sao_merge_up_flag」がゼロに等しい場合、「sao_offset_vlc( )」内に含まれる構文要素は、上に位置する符号化ブロックの対応する構文要素から導出されない。「sao_merge_up_flag」が存在しないときに、その値はゼロであると推定される。
【0042】
図8は、本発明に係る一実施例に従って、「sao_offset_vlc()」に関する例示的なシンタックス構造を図示する。構文要素“sao_type_idx[cIdx][rx][ry]”は、BO(Band Offset)またはEO(Edge Offset)であっても良いSAOタイプを示す。“sao_type_idx[cIdx][rx][ry]”が0の値を有する場合、それはSAO処理がOFFであることを示し;“sao_type_idx[cIdx][rx][ry]”が1〜4の値を有する場合、それは、0°、90°、135°および45°に対応する4つのEOカテゴリの中の一つが使用されることを示し;そして、“sao_type_idx[cIdx][rx][ry]”が5の値を有する場合、それは、BOが使用されることを示す。上記の実施例において、BOタイプおよびEOタイプの両者は、4個のSAOオフセット値を有する。
【0043】
図9は、本発明に係る一実施例に従い、SAOパラメータが一つのスライス・ヘッダ内に適応的に組み込まれることを可能とするためのスライス・ヘッダに関する例示的なシンタックス構造を図示する。SAO処理が有効化にされる場合、フラグ「sample_adaptive_offset_enabled_flag」によって示されるような他の条件に加えて、2つの追加的なフラグ、すなわち、「slice_sao_interleaving_flag」および「slice_sample_adaptive_offset_flag」がスライス・ヘッダ内に組み込まれる。「slice_sao_interleaving_flag」の値が1に等しい場合、SAOパラメータはスライス・データ内におけるフィルタ・ユニット・データによってインタリーブされる。「slice_sao_interleaving_flag」の値がゼロに等しい場合、SAOパラメータは、aps_idによって参照されるAPS内に組み込まれている情報を使用する。インタリーブ処理を示すためのフラグは、例えばAPSおよびスライス・ヘッダ等のような複数のRBSP内に同時に組み込まれることが可能である。インタリーブ処理を示すためのフラグが複数のRBSPの中に存在する場合、当該フラグは複数のRBSP内において同一の値を有しなければならない。したがって、アクティブなAPSが存在する場合、スライス・ヘッダ内における「slice_ sao_interleaving _flag」の値はAPS内における「aps_sao_interleaving_flag」の値と同一となるだろう。「slice_sample_adaptive_offset_flag」の値が1に等しい場合、現在のスライスに関してSAO処理はON状態である。「slice_sample_adaptive_offset_flag」の値がゼロに等しい場合、現在のスライスに関してSAO処理はOFF状態である。同様に、アクティブなAPSが存在する場合、「slice_sample_adaptive_ offset_flag」の値は「aps_sample_adaptive_offset_flag」の値と同一となるだろう。したがって、本発明に係る実施例は、インタリーブ処理フラグを保護するための冗長性の機能をさらに提供する。
【0044】
図10は、本発明に係る一実施例に従って、スライス・データが適応的なSAOパラメータのシグナリングをサポートするための例示的なシンタックス構造「slice_data( )」を図示する。図10に示すように、「slice_ sao_interleaving _flag」が1の値を有する場合、それぞれのSAO有効化フラグがONであるならば、個々のSAOユニット・データ(すなわち、sao_unit_cabac( ))が組み込まれる。
【0045】
図11は、本発明に係る一実施例に従って、SAOユニット・データに関する例示的なシンタックス構造「sao_unit_cabac( )」を図示する。マージ・フラグ「sao_merge_left_flag」および「sao_merge_up_flag」は、現在の符号化ブロックが左に位置する符号化ユニットおよび上に位置する符号化ユニットのそれぞれとの間でSAOオフセットを共有するか否かを示すために用いる。現在の符号化ユニットがSAOパラメータを左に位置する隣接ブロックまたは上に位置する隣接ブロックとの間で共有しない場合、SAOオフセット「sao_offset_cabac()」が現在の符号化ブロックに関して組み込まれる。
【0046】
図12は、本発明に係る一実施例に従って、sao_offset_cabac( )に関する例示的なシンタックス構造を図示する。構文要素“sao_type_idx[cIdx][rx][ry]”は、「BO(Band Offset)」または「EO(Edge Offset)」であっても良いSAOタイプを示す。“sao_type_idx[cIdx][rx][ry]”が0の値を有する場合、それはSAO処理がOFF状態であることを示し;“sao_type_idx[cIdx][rx][ry]”が1〜4の値を有する場合、それは、0°、90°、135°および45°に対応する4つのEOカテゴリの中の1つが使用されることを示し;そして、“sao_type_idx[cIdx][rx][ry]”が5の値を有する場合、それは、BOが使用されることを示す。上記の実施例において、BOタイプおよびEOタイプの両者は、4個のSAOオフセット値を有する。“sao_type_idx[cIdx][rx][ry]”が存在しない場合、“sao_type_ idx[cIdx][rx][ry]”は推定されることが可能である。例えば、「sao_merge_up_flag」の値が1に等しい場合、“sao_type_idx[cIdx][rx][ry]”は“sao_type_idx[cIdx][rx][ry−1]”に等しく設定される。さもなければ、“sao_type_idx[cIdx][rx][ry]”は、“sao_type_ idx[cIdx][rx - 1][ry]”と等しくなるように設定される。
【0047】
図13は、ALF情報を適応的に組み込むためのフラグをSPSがサポートするためのシンタックス設計「seq_parameter_set_rbsp( )」の実施例を図示する。図13に示すように、フラグ「adaptive_loop_filter_enabled_flag」は、適応的なALFパラメータの組み込み操作が許可されるか否かを示すために使用される。「adaptive_loop_filter_enabled_flag」によって示されるように適応的なALFパラメータの組み込み操作が有効化される場合、別のもう一つのフラグ「alf_coef_in_slice_flag」はALFパラメータがどこに組み込まれるかについて示すために使用される。「alf_coef_in_slice_flag」の値が1に等しい場合、ALFパラメータに関するシンタックス「alf_param()」がスライス・ヘッダ内に組み込まれる。「alf_coef_in_slice_flag」の値がゼロに等しい場合、ALFパラメータに関するシンタックスalf_param()は、APS内に組み込まれる。スライス層のシンタックスにおいて、「alf_coef_in_slice_flag」の値が1に等しい場合、ALFパラメータはスライス・ヘッダ内に組み込まれることが可能である。さらにまた、ALFのCUに関するON/OFF制御パラメータは、スライス層内に組み込まれない。
【0048】
図14は、図13に関して上述した「adaptive_loop_filter_enabled_flag」および「alf_coef_in_slice_flag」の値に従って、ALFパラメータがスライス・ヘッダ内に適応的に組み込まれることを可能にする例示的なスライス・ヘッダ設計を図示する。「adaptive_loop_filter_enabled_flag」によって示されるとおりにALFが有効化される場合、スライス層においてALFが適用されるか否かを示すために、他のフラグ「slice_adaptive_loop_filter_flag」が使用される。スライス層においてALFが適用され、ALFパラメータがスライス・ヘッダ内に組み込まれていることを「alf_coef_in_slice_flag」が示す場合、シンタックス「alf_param( )」はスライス・ヘッダ内に組み込まれる。一方では、スライス層においてALFが適用され、ALFパラメータがスライス・ヘッダ内に組み込まれないことを「alf_coef_in_slice_flag」が示す場合、シンタックス「alf_cu_control_param( )」はスライス・ヘッダ内に組み込まれる。
【0049】
図15は、本発明に係る一実施例に従って、ALFパラメータに関する例示的なシンタックス設計を図示する。当該シンタックス構造は、ALF処理のために必要とされるALF情報を含んでいる。例えば、当該シンタックス構造は、例えばalf_cb_enable_flag等のようなフラグ、および、ALF処理が現在のピクチャのそれぞれの彩度成分に対して適用されるか否かを決定する図15記載の「alf_cr_enable_flag」を含むことができる。当該シンタックス構造は、LCUサイズを意味するピクチャ・サイズに関する情報(例えば、図15記載の「alf_num_lcu_in_width_minus1」および「alf_num_lcu_in_height_minus1」)を含むこともできる。図15において、「alf_one_luma_unit_flag」、「alf_one_cb_unit_flag」および「alf_one_cr_unit_flag」によってそれぞれ示されるように、当該シンタックス構造は1つのスライス内における全ての符号化ユニットが同一のALFパラメータを使用して処理されるのか、それとも最大の符号化ユニット毎に個別のALFパラメータ、又はフィルタ・ユニット毎に個別のALFパラメータを使用して処理されるのかに関する情報を含むこともできる。当該シンタックス構造は、例えば"alf_repeat_row_flag[cIdx]"等のように、符号化ブロックの現在の行内における符号化ブロックのALFパラメータが、それぞれの色成分インデックスcIdxに関して上に位置する符号化ブロックのALFパラメータと同一かどうかに関する表示をさらに含むこともできる。
【0050】
図16は、本発明に係る一実施例に従って、ALF符号化ブロックに関する例示的なシンタックス構造「alf_unit( )」を図示する。シンタックス「alf_unit( )」は、複数の符号化ブロックの間におけるALFパラメータの共有情報と関連した情報を含み、これらは例えば、「alf_run_diff」および「alf_merge_up_flag」等である。符号化ブロックに対応するALFパラメータが、同じ行内において後続する複数の符号化ブロックにわたって反復される回数は、配列”alfRun[cIdx][rx][ry]”によって表される。当該配列のインデックスcIdxは色成分を特定し、cIdxは、それぞれ輝度luma、彩度Cbまたは彩度Crに対応する0、1または2の値を有する。当該配列のインデックスrxおよびryは、ピクチャ内の左上に位置する符号化ブロックから相対的に見て下に位置する符号化ブロックの位置を特定する。構文要素「alf_run_diff」は、現在の行が最初の行である場合、現在の符号化ブロックの"alfRun[ ][ ][ ]"を特定し、さもなければ、現在の符号化ブロックの走査と上に位置する符号化ブロックの走査との間の差分を特定する。alfRun[ ][ ][ ]がゼロ以上の場合、「alf_info( )」内に含まれる構文要素は左に位置する符号化ブロックの対応する構文要素から導出される。構文要素「alf_run_diff」の長さは、Ceil(Log2(alf_num_lcu_in_width_ minus1 − rx + 2))の値に等しいビット数である。フラグ「alf_merge_up_flag」の値が1に等しい場合、「alf_info( )」内に含まれる構文要素は、上に位置する符号化ブロックの対応する構文要素から導出される。フラグ「alf_merge_up_flag」の値がゼロに等しい場合、alf_info( )内に含まれる構文要素は、上に位置する符号化ブロックの対応する構文要素から導出されない。「alf_merge_up_flag」が存在しない場合、その値はゼロであると推定される。
【0051】
図17は、本発明に係る一実施例に従って、ALF情報「alf_info( )」に関する例示的なシンタックス構造を図示する。シンタックス「alf_info( )」は、ALFフィルタと関連した情報を含んでいる。例示的なシンタックス設計は、ALFバッファ内に格納されている複数のALFフィルタの中の1つを選択するためにインデックスを使用することができるような態様で、ALFバッファの使用をサポートする。例えば、「alf_new_filter_set_flag」の値が1に等しい場合、それは現在の符号化ブロックが新規なフィルタ群を使用することを示す。さもなければ、現在の符号化ブロックは、”alf_stored_filter_set_idx[cIdx]”の値に等しいバッファ・インデックスを有する格納されたフィルタ群を使用する。「alf_new_filter_set_flag」が存在しない場合、その値は1であると推定される。「alf_new_filter_set_flag」の値が1に等しい場合、"NumALFFiltersInStoredBuffer[cIdx]"の値はは1つだけインクリメントされ、ここで、NumALFFiltersInStoredBuffer[cIdx]は、フィルタ群内におけるフィルタの個数である。シンタックス"alf_stored_filter_set_idx[cIdx]"は、「cIdx」によって表される色成分に関する格納されたフィルタのバッファ・インデックスを特定する。構文要素"alf_stored_filter_set_idx[cIdx]"の長さは、Floor(Log2(Min(1, NumALFFiltersInStoredBuffer[cIdx] − 1 ) + 1の値に等しいビット数である 。構文要素「alf_no_filters_minus1」は、現在の符号化ブロックに関するフィルタ群の個数を導出するために使用され、ここで、「alf_no_filters_minus1」は、0から2までの値を有する。構文要素「alf_start_second_filter」は、第2のフィルタが適用される輝度サンプルに関するブロック適応(BA)モードのインデックスを特定する。構文要素”alf_filter_pattern_flag[cIdx][ry][rx][i]”の値が1に等しい場合、i番目のBAモード・インデックスに関するフィルタ・インデックスは1だけインクリメントされる。構文要素”alf_filter_pattern_flag[cIdx][ry][rx][i]”の値がゼロに等しい場合、i番目のBAモード・インデックスに関するフィルタ・インデックスは(i−1)番目のBAモード・インデックスと同一である。構文要素"alf_pred_flag[ ][ ][ ][ ]"の値が1に等しい場合、現在の符号化ブロックに関するフィルタ係数は予測的な方法で符号化され、さもなければ、フィルタ係数は、直接符号化される。構文要素「alf_min_kstart_minus1」+1は、適応型ループ・フィルタに関する輝度フィルタ係数についてのk次指数Golomb符号の最小次数kを指定する。構文要素"alf_golomb_index_flag[i]"は、輝度フィルタ係数のi番目のグループと(i+1)番目のグループとの間におけるk次指数Golomb符号の次数の差を指定する。各グループが異なる次数kを有することが可能な輝度フィルタ係数の複数のグループが存在する。構文要素"alf_nb_pred_luma_flag[cIdx][ry][rx][i]"の値が1に等しい場合、現在の符号化ブロックに関するi番目のフィルタのフィルタ係数は、空間的に隣接したフィルタ係数に基づいて予測的な方法で符号化され、さもなければ、フィルタ係数は、空間的に隣接したフィルタ係数を使用して符号化されない。構文要素”alf_filt_coeff[cIdx][ry][rx][i”]は、現在の符号化ブロックに関する適応型ループのフィルタリング処理において使用するi番目のフィルタのj番目のフィルタ係数を指定する。
【0052】
上記の通りに本発明による改良されたSAOおよび/またはALF処理を組み込んでいるビデオ符号化システムの実施例は、様々なハードウェア、ソフトウェア・コードまたは両方の組合せによって実装ことができる。例えば、本発明の実施例は、ビデオ圧縮チップに集積される回路または本願明細書において記載されている処理を実行するためにビデオ圧縮ソフトウェアに組み込まれるプログラムコードであり得る。本発明の実施例は、本願明細書において記載されている処理を実行するためにデジタル信号プロセッサ(DSP)によって実行されるプログラムコードであってもよい。本発明は、コンピュータのプロセッサ、デジタル信号処理装置、マイクロプロセッサまたはフィールド・プログラマブル・ゲートアレイ(FPGA)等によって実行される多くの関数をさらに含むこともできる。本発明によって実施される特定の方法を定義し、かつ機械で読み取ることができるソフトウェア・コードまたはファームウェア・コードを実行することによって、これらのプロセッサは、本発明の教示に従う特定のタスクを遂行するように構成されることができる。ソフトウェア・コードまたはファームウェア・コードは、異なるプログラミング言語および異なるフォーマットまたはスタイルで開発されることが可能である。ソフトウェア・コードは、異なるターゲット・プラットホームのためにコンパイルされることも可能である。しかしながら、本発明に従うタスクを遂行するようにコードを構成するソフトウェア・コードおよび他の手段の異なるコード・フォーマット、スタイルおよび言語は、本発明の精神と範囲から逸脱しない。
【0053】
本発明は、その精神または主要な特徴を逸脱しない範囲で他の多種多様な形態で実施されることが可能である。本明細書中で説明されている実施例はあらゆる点で、単に例示的なものであって限定的なものではないと看做されるべきである。従って本発明の範囲は、上述した実施例の説明によってではなく、むしろ特許請求の範囲によって示される。請求項の記載の発明の技術的解釈と均等論の範囲内に属する全ての変形実施例は、本発明の技術的範囲内であるとされる。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17