IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ベイジン バイトダンス ネットワーク テクノロジー カンパニー リミテッドの特許一覧 ▶ バイトダンス インコーポレイテッドの特許一覧

特許7393550クロス成分適応ループフィルタリングのためのサンプルパディング
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】クロス成分適応ループフィルタリングのためのサンプルパディング
(51)【国際特許分類】
   H04N 19/117 20140101AFI20231129BHJP
   H04N 19/167 20140101ALI20231129BHJP
   H04N 19/186 20140101ALI20231129BHJP
   H04N 19/426 20140101ALI20231129BHJP
   H04N 19/82 20140101ALI20231129BHJP
【FI】
H04N19/117
H04N19/167
H04N19/186
H04N19/426
H04N19/82
【請求項の数】 15
(21)【出願番号】P 2022535772
(86)(22)【出願日】2020-12-10
(65)【公表番号】
(43)【公表日】2023-02-14
(86)【国際出願番号】 CN2020135134
(87)【国際公開番号】W WO2021115362
(87)【国際公開日】2021-06-17
【審査請求日】2022-06-22
(31)【優先権主張番号】PCT/CN2019/124481
(32)【優先日】2019-12-11
(33)【優先権主張国・地域又は機関】CN
【早期審査対象出願】
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】ワン ヤン
(72)【発明者】
【氏名】ジャン リー
(72)【発明者】
【氏名】リウ ホンビン
(72)【発明者】
【氏名】ジャン カイ
(72)【発明者】
【氏名】ドン ジピン
(72)【発明者】
【氏名】ワン ユエ
【審査官】久保 光宏
(56)【参考文献】
【文献】K. Misra, et al.,"CE5-related: On the design of CC-ALF",Document: JVET-P1008-v2, [online],JVET-P1008 (version 2),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年10月09日,Pages 1-6,[令和5年5月10日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=8823> and <URL: https://jvet-experts.org/doc_end_user/documents/16_Geneva/wg11/JVET-P1008-v2.zip>.
【文献】Jianle Chen, et al.,"Algorithm description for Versatile Video Coding and Test Model 7 (VTM 7)",Document: JVET-P2002-v1, [online],JVET-P2002 (version 1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年11月10日,Pages 66-70,[令和5年5月10日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=8858> and <URL: https://jvet-experts.org/doc_end_user/documents/16_Geneva/wg11/JVET-P2002-v1.zip>.
【文献】Kiran Misra, et al.,"Cross-Component Adaptive Loop Filter for chroma",Document: JVET-O0636_r1, [online],JVET-O0636 (version 2),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年07月07日,Pages 1-9,[令和5年4月19日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=7252> and <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O0636-v2.zip>.,(See document file "JVET-O0636_r1.docx" in the zip file "JVET-O0636-v2.zip".)
【文献】Kiran Misra, et al.,"On Cross Component Adaptive Loop Filter for Video Compression",Proceedings of 2019 Picture Coding Symposium (PCS),IEEE,2019年11月15日,全5頁,ISBN: 978-1-7281-4704-8, <DOI: 10.1109/PCS48520.2019.8954547>.
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
映像データを処理する方法であって、
映像の映像ユニットと前記映像のビットストリームとの間での変換について、仮想境界が前記映像ユニットに適用される場合、クロスコンポーネント適応ループフィルタ(CC-ALF)ツールを前記映像ユニットに適用する間、前記仮想境界によって利用不可の利用不可輝度サンプルをパディングするためのミラーパディング処理を使用することを決定することと、
前記決定に基づいて前記変換を行うことと、を含み、
前記ミラーパディング処理は、前記利用不可の輝度サンプルの対応するサンプルをパディングすることと、前記対応するサンプルが前記仮想境界に利用可能であったとしても、前記対応するサンプルを利用不可と見なすこととを含み、それによって、前記対応するサンプルは、前記CC-ALFツールのフィルタサポート領域に位置し、
前記利用不可の輝度サンプルは、前記映像ユニットの行Mに位置すると表され、パディング対象の前記対応するサンプルは、前記映像ユニットの行Nに位置すると表され、ここで、d(C,M)=d(N,C)であり、式中のd(x,y)は、行xと行yとの間の距離を表し、式中のCは、前記映像ユニットにおいて、代表的な輝度サンプルが位置する行を表し、C、M、及びNは整数であり、MがNに等しくなく、前記代表的な輝度サンプルは、前記映像ユニットにおいてフィルタリング対象のクロマサンプルの並置された輝度サンプルである、方法。
【請求項2】
前記クロマサンプルの前記並置された輝度サンプルの位置は、前記映像のカラーフォーマットに依存する、請求項1に記載の方法。
【請求項3】
(x,y)に位置する前記クロマサンプルの前記並置された輝度サンプルは、前記カラーフォーマットが4:2:0である場合、(2x,2y)に位置する輝度サンプルと定義され、前記カラーフォーマットが4:2:2である場合、(2x,y)に位置する輝度サンプルと定義され、前記カラーフォーマットが4:4:4である場合には、(x,y)に位置する輝度サンプルと定義される、請求項2に記載の方法。
【請求項4】
前記CC-ALFツールは、K×Lフィルタ形状を有し、ここで、K=4、L=3であり、yM1、yL、yP1、yP2は、前記K×Lフィルタ形状における4つのサンプル行のy座標であり、ここで、yM1=-1、yL=0、yP1=1、yP2=2であり、前記代表的な輝度サンプルは、行yL=0であり、前記仮想境界は、前記映像ユニットにおける行CtbSizeY-4に位置し、CtbSizeYは、コーディングツリーユニット(CTU)である前記映像ユニットのサイズを表す、請求項1に記載の方法。
【請求項5】
前記仮想境界が前記代表的な輝度サンプルの上にある場合、前記利用不可の輝度サンプルを、前記仮想境界の下の最も近い利用可能な行を使用してパディングし、前記対応するサンプルを、前記対応するサンプルを含む行の上の最も近い利用可能な行を使用してパディングする、請求項4に記載の方法。
【請求項6】
yLがCtbSizeY-3に等しく、yM1より上の行が利用不可である場合、yP2の行における対応するサンプル(x,yP2)を、yP1の行におけるサンプル(x,yP1)を使用してパディングする、請求項5に記載の方法。
【請求項7】
yLがCtbSizeY-4に等しく、yM1の上の行およびyM1の行が利用不可である場合、yM1の行における利用不可の輝度サンプル(x,yM1)を、yLの行におけるサンプル(x,yL)を使用してパディングし、yP1の行における対応するサンプル(x,yP1)は、yLの行におけるサンプル(x,YL)を使用してパディングし、yP2の行における対応するサンプル(x,yP2)を、yLの行におけるサンプル(x,yL)を使用してパディングする、請求項5に記載の方法。
【請求項8】
前記仮想境界が前記代表的な輝度サンプルの下にある場合、前記利用不可の輝度サンプルを、前記仮想境界の上の最も近い利用可能な行を使用してパディングし、前記対応するサンプルを、前記対応するサンプルを含む行の下の最も近い利用可能な行を使用してパディングする、請求項4に記載の方法。
【請求項9】
yLがCtbSizeY-6に等しく、yP2の行が利用不可である場合、yP2の前記行における前記利用不可の輝度サンプル(x,yP2)を、yP1の行におけるサンプル(x,yP1)を使用してパディングする、請求項8に記載の方法。
【請求項10】
yLがCtbSizeY-5に等しく、yP2およびyP1の行が利用不可である場合、yP2の行における利用不可の輝度サンプル(x、yP2)は、前記yLの行におけるサンプル(x,yL)を使用してパディングされ、行yP1における利用不可の輝度サンプル(x,yP1)は、前記yLの行における前記サンプル(x、yL)を使用してパディングされ、yM1の行における対応するサンプル(x,yM1)は、前記yLの行における前記サンプル(x、yL)を使用してパディングされる、請求項8に記載の方法。
【請求項11】
前記変換は、前記映像を前記ビットストリームに符号化することを含む、請求項1に記載の方法。
【請求項12】
前記変換は、前記映像を前記ビットストリームから復号することを含む、請求項1に記載の方法。
【請求項13】
プロセッサと、命令を保持する非一時的メモリとを含む映像データを処理するための装置であって、前記プロセッサに実行されると、前記命令が前記プロセッサに、
映像の映像ユニットと前記映像のビットストリームとの間での変換について、仮想境界が前記映像ユニットに適用される場合、クロスコンポーネント適応ループフィルタ(CC-ALF)ツールを前記映像ユニットに適用する間、前記仮想境界によって利用不可の利用不可輝度サンプルをパディングするためのミラーパディング処理を使用することを決定することと、
前記決定に基づいて前記変換を行うことと、を行わせ、
前記ミラーパディング処理は、前記利用不可の輝度サンプルの対応するサンプルをパディングすることと、前記対応するサンプルが前記仮想境界に利用可能であったとしても、前記対応するサンプルを利用不可と見なすこととを含み、それによって、前記対応するサンプルは、前記CC-ALFツールのフィルタサポート領域に位置し、
前記利用不可の輝度サンプルは、前記映像ユニットの行Mに位置すると表され、パディング対象の前記対応するサンプルは、前記映像ユニットの行Nに位置すると表され、ここで、d(C,M)=d(N,C)であり、式中のd(x,y)は、行xと行yとの間の距離を表し、式中のCは、前記映像ユニットにおいて、代表的な輝度サンプルが位置する行を表し、C、M、及びNは整数であり、MがNに等しくなく、前記代表的な輝度サンプルは、前記映像ユニットにおいてフィルタリング対象のクロマサンプルの並置された輝度サンプルである、装置。
【請求項14】
プロセッサに実行させる命令を記憶した非一時的なコンピュータ可読記憶媒体であって、前記命令は前記プロセッサに、
映像の映像ユニットと前記映像のビットストリームとの間での変換について、仮想境界が前記映像ユニットに適用される場合、クロスコンポーネント適応ループフィルタ(CC-ALF)ツールを前記映像ユニットに適用する間、前記仮想境界によって利用不可の利用不可輝度サンプルをパディングするためのミラーパディング処理を使用することを決定することと、
前記決定に基づいて前記変換を行うことと、を行わせるものであり、
前記ミラーパディング処理は、前記利用不可の輝度サンプルの対応するサンプルをパディングすることと、前記対応するサンプルが前記仮想境界に利用可能であったとしても、前記対応するサンプルを利用不可と見なすこととを含み、それによって、前記対応するサンプルは、前記CCALFツールのフィルタサポート領域に位置し、
前記利用不可の輝度サンプルは、前記映像ユニットの行Mに位置すると表され、パディング対象の前記対応するサンプルは、前記映像ユニットの行Nに位置すると表され、ここで、d(C,M)=d(N,C)であり、式中のd(x,y)は、行xと行yとの間の距離を表し、式中のCは、前記映像ユニットにおいて、代表的な輝度サンプルが位置する行を表し、C、M、及びNは整数であり、MがNに等しくなく、前記代表的な輝度サンプルは、前記映像ユニットにおいてフィルタリング対象のクロマサンプルの並置された輝度サンプルである、非一時的なコンピュータ可読記憶媒体。
【請求項15】
像のビットストリームを記憶する方であって
仮想境界が映像ユニットに適用される場合、クロスコンポーネント適応ループフィルタ(CC-ALF)ツールを映像の前記映像ユニットに適用する間、前記仮想境界によって利用不可の利用不可輝度サンプルをパディングするためのミラーパディング処理を使用することを決定することと、
前記決定に基づいて前記ビットストリームを生成することと、
前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することと、を含み、
前記ミラーパディング処理は、前記利用不可の輝度サンプルの対応するサンプルをパディングすることと、前記対応するサンプルが前記仮想境界に利用可能であったとしても、前記対応するサンプルを利用不可と見なすこととを含み、それよって前記対応するサンプルは、前記CC-ALFツールのフィルタサポート領域に位置し、
前記利用不可の輝度サンプルは、前記映像ユニットの行Mに位置すると表され、パディング対象の前記対応するサンプルは、前記映像ユニットの行Nに位置すると表され、ここで、d(C,M)=d(N,C)であり、式中のd(x,y)は、行xと行yとの間の距離を表し、式中のCは、前記映像ユニットにおいて、代表的な輝度サンプルが位置する行を表し、C、M、及びNは整数であり、MがNに等しくなく、前記代表的な輝度サンプルは、前記映像ユニットにおいてフィルタリング対象のクロマサンプルの同一位置に配置された輝度サンプルである、方法

【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2019年12月11日出願の国際特許出願第PCT/CN2019/124481号の優先権と利益を主張する、2020年12月10日出願の国際特許出願第PCT/CN2020/135134号に基づく。前述のすべての特許出願は、その全体が参照により本明細書に組み込まれる。
【0002】
この特許明細書は、画像および映像の符号化および復号に関する。
【背景技術】
【0003】
デジタル映像は、インターネット及び他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像を受信及び表示することが可能である接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
本明細書は、映像符号化または復号中にクロス成分適応ループフィルタリングを行うために、映像エンコーダおよびデコーダによって使用され得る技術を開示する。
【0005】
1つの例示的な態様において、映像処理の方法が開示される。この方法は、映像の映像ユニットと映像のビットストリーム表現との変換のために、映像ユニットにループフィルタリングツールを適用している間に利用不可の輝度サンプルをパディングするためのミラーパディング処理を有効化するかどうかを決定することと、前記決定に基づいて前記変換を行うことと、を含む。
【0006】
別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の映像ユニットと映像のビットストリーム表現との変換のために、映像ユニットのコーディング情報に基づいて、仮想境界に位置するサンプルをパディングするために、反復パディング処理および/またはミラーパディング処理を適用するかどうかを決定することと、前記決定に基づいて前記変換を行うことと、を含む。
【0007】
さらに別の例示的な態様において、映像エンコーダ装置が開示される。この映像エンコーダは、上述した方法を実装するように構成された処理装置を備える。
【0008】
さらに別の例示的な態様において、映像デコーダ装置が開示される。この映像デコーダは、上述した方法を実装するように構成されたプロセッサを備える。
【0009】
さらに別の例示的な態様では、コードが記憶されたコンピュータ可読媒体が開示される。このコードは、本明細書に記載の方法の1つをプロセッサが実行可能なコードの形式で実施する。
【0010】
これらの及び他の特徴は、本文書全体にわたって説明される。
【図面の簡単な説明】
【0011】
図1】ピクチャにおける4:2:2の輝度およびクロマサンプルの名目上の垂直および水平の位置を示す。
図2】エンコーダブロック図の例を示す。
図3】12個のタイルと3つのラスタスキャンスライスに分割された、18×12個の輝度CTUを有する画像を示す。
図4】24個のタイルと9個の矩形スライスに分割された、18×12個の輝度CTUを有する画像を示す。
図5】4つのタイルと4つの矩形スライスに区分された画像を示す。
図6】15個のタイル、24個のスライス、及び24個のサブピクチャに分割されたピクチャを示す。
図7A】CTBが下側のピクチャの境界と交差していることを示す。
図7B】CTBが右側のピクチャの境界と交差していることを示す。
図7C】CTBが右下のピクチャの境界と交差していることを示す。
図8】ピクチャサンプルと、8×8のグリッド上の水平および垂直のブロック境界と、8×8のサンプルの重複していないブロックとを示し、これらは並列に非ブロック化され得る。
図9】フィルタのオン/オフ決定および強/弱フィルタの選択に関与する画素を示す。
図10】EOサンプルの分類のための4つの1次元方向パターンである、水平(EOクラス=0)、垂直(EOクラス=1)、斜め135°(EOクラス=2)、斜め45°(EOクラス=3)を示す。
図11】ALFフィルタの形状の例を示す(彩度:5×5菱形、輝度:7×7菱形)。
図12A】垂直方向勾配用のサブサンプリング位置を示す。
図12B】水平方向勾配用のサブサンプリング位置を示す。
図12C】対角勾配用のサブサンプリング位置を示す。
図12D】対角勾配用のサブサンプリング位置を示す。
図13】輝度成分用VTM-4.0中のループフィルタラインバッファ要件の例を示す。
図14】クロマ成分用VTM-4.0中のループフィルタラインバッファ要件を図示する。
図15】仮想境界における修正された区分の例を示す。
図16】仮想境界における輝度成分のための修正されたALFフィルタリングの例を示す。
図17A】VBの上/下にある(辺ごとに)パディングされるべき1つの必要なラインを示す。
図17B】VBの上/下にある(辺ごとに)パディングされるべき2つの必要なラインを示す。
図17C】VBの上/下にある(辺ごとに)パディングされるべき3つの必要なラインを示す。
図18】ピクチャ/サブピクチャ/スライス/タイルの境界における輝度ALFフィルタリングのための反復パディングの例を示す。
図19】VVCにおける水平ラップアラウンドの動き補償の例を示す。
図20】3×2レイアウトのHEC画像を示す。
図21A】他のループフィルタに対するCC-ALFの配置を示す。
図21B】菱形フィルタを示す。
図22】JVET-P0080におけるCC-ALFのためのALF仮想境界における反復パディングの例を示す。
図23】8つの固有の係数を有する3×4菱形フィルタを示す。
図24】JVET-P1008におけるCC-ALFのためのALF仮想境界における反復パディングの例である。
図25】JVET-P0106における8つの係数のCC-ALFフィルタ形状を示す。
図26】JVET-P0173における6つの係数のCC-ALFフィルタ形状を示す。
図27】JVET-P0251における6つの係数のCC-ALFフィルタ形状を示す。
図28】JC-CCALFワークフローの例を示す。
図29】8タップ4×3フィルタ形状を有するCC-ALFフィルタリング法においてパディング対象のサンプルの例示的な位置を示す。
図30】ミラーパディング方法1の例を示す。
図31】ミラーパディング方法2の例を示す。
図32】開示された技術を実装することができる例示的な映像処理システムを示すブロック図である。
図33】映像処理方法に使用されるハードウェアプラットフォームの例を示すブロック図である。
図34】映像処理方法の一例を示すフローチャートである。
図35】本開示のいくつかの実施形態による映像コーディングシステムを示すブロック図である。
図36】本発明のいくつかの実施形態によるエンコーダを示すブロック図である。
図37】本発明のいくつかの実施形態によるデコーダを示すブロック図である。
図38A】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートである。
図38B】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートである。
【発明を実施するための形態】
【0012】
本明細書では、理解を容易にするために章の見出しを使用しており、その技術および各章に記載された実施形態の適用可能性をその章のみに限定するものではない。さらに、H.266という用語は、ある説明において、理解を容易にするためだけに用いられ、開示される技術の範囲を限定するために用いられたものではない。このように、本明細書で説明される技術は、他の映像コーデックプロトコル及び設計にも適用可能である。
【0013】
1.発明の概要
本明細書は、映像コーディング技術に関する。具体的には、本発明は、ピクチャ/サブピクチャ/スライス/タイル境界、360度映像仮想境界およびALF仮想境界コーディングに関し、特に、画像/映像コーディングにおけるクロス成分適応ループフィルタ(CC-ALF)および他のコーディングツールに関する。HEVCのような既存の映像コーディング規格に適用してもよいし、規格(Versatile Video Coding)を確定させるために適用してもよい。本発明は、将来の映像コーディング規格または映像コーデックにも適用可能である。
【0014】
2. 映像コーディングの導入
映像コーディング規格は、主に周知のITU-TおよびISO/IEC規格の開発によって発展してきた。ITU-TはH.261とH.263を作り、ISO/IECはMPEG-1とMPEG-4 Visualを作り、両団体はH.262/MPEG-2 VideoとH.264/MPEG-4 AVC(Advanced Video Coding)とH.265/HEVC規格を共同で作った。H.262以来、映像コーディング規格は、時間予測と変換コーディングが利用されるハイブリッド映像コーディング構造に基づく。HEVCを超えた将来の映像コーディング技術を探索するため、2015年には、VCEGとMPEGが共同でJVET(Joint Video Exploration Team)を設立した。それ以来、多くの新しい方法がJVETによって採用され、JEM(Joint Exploration Mode)と呼ばれる参照ソフトウェアに組み込まれてきた。2018年4月には、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)の間にJoint Video Expert Team(JVET)が発足し、HEVCと比較して50%のビットレート削減を目標にVVC規格の策定に取り組んでいる。
【0015】
2.1. 色空間及びクロマサブサンプリング
色空間は、カラーモデル(又はカラーシステム)としても知られ、色の範囲を数字のタプル(tuple)として簡単に記述する抽象的な数学モデルであり、典型的には3又は4つの値又は色成分(例えばRGB)である。基本的には、色空間は座標系とサブ空間とを精緻化したものである。
【0016】
映像圧縮の場合、最も頻繁に使用される色空間は、YCbCr及びRGBである。
【0017】
YCbCr,Y’CbCr,orY Pb/Cb Pr/Crは、YCBCRorY’CBCRとも記述され、カラー画像のパイプライン映像およびデジタル写真システムの一部として使用される色空間のファミリーである。Y’は輝度成分であり、CBとCRは青色差及び赤色差のクロマ成分である。Y’(プライム付き)は、輝度であるYと区別され、ガンマ補正されたRGBプライマリーに基づいて光強度が非線形に符号化されることを意味する。
【0018】
クロマサブサンプリングは、人間の視覚システムが、輝度よりも色差の方が知覚が低いことを利用して、輝度情報よりもクロマ情報の方が解像度が低くなるように実装して画像を符号化する方法である。
【0019】
2.1.1. 4:4:4
3つのY’CbCr成分のそれぞれは、同じサンプルレートを有し、従って、クロマサブサンプリングはない。この方式は、ハイエンドフィルムスキャナ及びシネマティックポストプロダクションに用いられることがある。
【0020】
2.1.2. 4:4:4
2つのクロマ成分は、輝度のサンプルレートの半分でサンプリングされ、水平クロマ解像度は半分にされ、垂直クロマ解像度は変化しない。これにより、視覚的にほとんどまたは全く差がなく、非圧縮の映像信号の帯域幅を1/3に低減することができる。4:2:2カラーフォーマットの名目上の垂直および水平の位置の例が、例えば、VVC作業草案の図1に示されている。
【0021】
2.1.3. 4:2:0
4:2:0では、水平サンプリングは4:1:1に比べて2倍になるが、この方式ではCbとCrチャンネルを各交互のラインでのみサンプリングするため、垂直解像度が半分になる。従って、データレートは同じである。Cb及びCrはそれぞれ水平及び垂直方向の両方に2倍ずつサブサンプリングされる。異なる水平及び垂直位置を有する4:2:0スキームの3つの変形がある。
MPEG-2において、Cb及びCrは水平方向に共座している。CbおよびCrは垂直方向の画素間に位置する(格子間に位置する)。
JPEG/JFIF、H.261、及びMPEG-1において、Cb及びCrは、交互の輝度サンプルの中間に間欠的に位置する。
4:2:0DVにおいて、Cb及びCrは、水平方向に共座している。垂直方向には、それらは交互に共座している。
【0022】
【表1】
【0023】
2.2. 典型的な映像コーデックのコーディングフロー
図2は、3つのインループフィルタリングブロック、すなわちデブロッキングフィルタ(DF)、サンプル適応オフセット(SAO)およびALFを含むVVCのエンコーダブロック図の例を示す。DF(予め定義されたフィルタを使用する)とは異なり、SAOおよびALFは、現在のピクチャのオリジナルサンプルを利用し、オフセットおよびフィルタ係数を信号通知するコーディングサイド情報を用いて、オフセットを追加し、有限インパルス応答(FIR)フィルタを適用することをそれぞれ行うことにより、元のサンプルと再構成サンプルとの間の平均二乗誤差を低減する。ALFは、各ピクチャの最後の処理段階に位置し、前の段階で生成されたアーチファクトを捕捉および修正しようとするツールと見なすことができる。
【0024】
2.3.映像ユニットの定義例
1つのピクチャは、1つ以上のタイル行および1つ以上のタイル列に分割される。1つのタイルは、1つの画像の1つの矩形領域を覆う1つのCTUのシーケンスである。1つのタイルにおけるCTUは、そのタイル内でラスタスキャン順にスキャンされる。
【0025】
1つのスライスは、1つのピクチャのタイル内において、整数個の完全なタイルまたは整数個の連続した完全なCTU行からなる。
【0026】
2つのモードのスライス、即ちラスタスキャンスライスモードおよび矩形スライスモードがサポートされる。ラスタスキャンスライスモードにおいて、1つのスライスは、1つのピクチャのタイルラスタスキャンにおける1つの完全なタイルのシーケンスを含む。矩形スライスモードにおいて、1つのスライスは、ピクチャの矩形領域を集合的に形成する複数の完全なタイル、またはピクチャの矩形領域を集合的に形成する1つのタイルの複数の連続した完全なCTU行のいずれかを含む。矩形スライス内のタイルを、そのスライスに対応する矩形領域内で、タイルラスタスキャンの順にスキャンする。
【0027】
1つのサブピクチャは、1つのピクチャの矩形領域を集合的に覆う1つ以上のスライスを含む。
【0028】
図3は、ピクチャのラスタスキャンスライス区分の例を示し、ピクチャは、12個のタイルおよび3個のラスタスキャンスライスに分割する。
【0029】
VVCの仕様における図4は、ピクチャの矩形スライス分割の例を示し、ピクチャは、24個のタイル(6個のタイル列および4個のタイル行)と9個の矩形スライスとに分割される。
【0030】
図4は、24個のタイルと9個の矩形スライスに分割された、18×12個の輝度CTUを有する画像である。
【0031】
図5は、タイルおよび矩形のスライスに分割されたピクチャの例を示し、このピクチャは、4つのタイル(2つのタイルの列および2つのタイルの行)と4つの矩形スライスとに分割される。
【0032】
図6は、ピクチャをサブピクチャで分割する例を示し、ピクチャは、4×4個のCTU、24個のスライス、および24個の異なる寸法のサブピクチャを含む15個のタイルに分割される。
【0033】
2.3.1.CTU/CTB サイズ
VVCにおいて、構文要素log2_ctu_size_minus2によりSPSに信号通知されるCTUのサイズは、4×4と小さなものであってもよい。
【0034】
【表2】
【表3】
【0035】
log2_ctu_size_minus2+2は、各CTUの輝度コーディングツリーブロックのサイズを規定する。
log2_min_luma_coding_block_size_minus2+2は、最小輝度コーディングブロックサイズを規定する。
変数CtbLog2SizeY,CtbSizeY,MinCbLog2SizeY,MinCbSizeY,MinTbLog2SizeY,MaxTbLog2SizeY,MinTbSizeY,MaxTbSizeY,PicWidthInCtbsY,PicHeightInCtbsY,PicSizeInCtbsY,PicWidthInMinCbsY,PicHeightInMinCbsY,PicSizeInMinCbsY,PicSizeInSamplesY,PicWidthInSamplesCおよびPicHeightInSamplesCは、以下のように導出される。
CtbLog2SizeY=log2_ctu_size_minus2+2 (7-9)
CtbSizeY=1<<CtbLog2SizeY (7-10)
MinCbLog2SizeY=log2_min_luma_coding_block_size_minus2+2 (7-11)
MinCbSizeY=1<<MinCbLog2SizeY (7-12)
MinTbLog2SizeY=2 (7-13)
MaxTbLog2SizeY=6 (7-14)
MinTbSizeY=1<<MinTbLog2SizeY (7-15)
MaxTbSizeY=1<<MaxTbLog2SizeY (7-16)
PicWidthInCtbsY=Ceil(pic_width_in_luma_samples÷CtbSizeY) (7-17)
PicHeightInCtbsY=Ceil(pic_height_in_luma_samples÷CtbSizeY) (7-18)
PicSizeInCtbsY=PicWidthInCtbsY*PicHeightInCtbsY (7-19)
PicWidthInMinCbsY=pic_width_in_luma_samples/MinCbSizeY (7-20)
PicHeightInMinCbsY=pic_height_in_luma_samples/MinCbSizeY (7-21)
PicSizeInMinCbsY=PicWidthInMinCbsY*PicHeightInMinCbsY (7-22)
PicSizeInSamplesY=pic_width_in_luma_samples*pic_height_in_luma_samples (7-23)
PicWidthInSamplesC=pic_width_in_luma_samples/SubWidthC (7-24)
PicHeightInSamplesC=pic_height_in_luma_samples/SubHeightC (7-25)
【0036】
2.3.2.ピクチャにおけるCTU
M×N(一般的に、HEVC/VVCに定義されるように、MはNに等しい)によって示されるCTB/LCUサイズを想定し、ピクチャ(またはタイル、またはスライス、または他の種のタイプがあるが、ピクチャの境界を例として取り上げる)境界に位置するCTBの場合、K×L個のサンプルは、K<MまたはL<Nの場合、ピクチャの境界内にある。図7A図7Cに示されるCTBの場合、CTBのサイズは依然としてM×Nに等しいが、CTBの下側境界/右側境界はピクチャの外側にある。
【0037】
図7は、ピクチャの境界と交差するCTBの例を示しており、(a)K=M,L<N;(b)K<M,L=N;(c)K<M,L<Nである。また、(a)CTBが下側のピクチャの境界と交差していることを示し、(b)CTBが右側のピクチャの境界と交差していることを示し、(c)はCTBが右下のピクチャの境界と交差していることを示す。
【0038】
2.4.デブロッキングフィルタ(DB)
DBの入力は、インループフィルタの前に再構成されたサンプルである。
【0039】
まずピクチャの垂直エッジを選別する。そして、垂直エッジフィルタリング処理で修正されたサンプルを入力として、ピクチャの水平エッジをフィルタリングする。各CTUのCTBにおける垂直および水平エッジは、コーディングユニットごとに別個に処理される。コーディングユニットにおけるコーディングブロックの垂直エッジは、コーディングブロックの左側のエッジから始まり、コーディングブロックの右側に向かってそれらの幾何学的な順序でエッジを通って進むようにフィルタリングされる。コーディングユニットにおけるコーディングブロックの水平エッジは、コーディングブロックの上側のエッジから始まり、コーディングブロックの下側に向かってそれらの幾何学的な順序でエッジを通って進むようにフィルタリングされる。
【0040】
図8は、ピクチャサンプルと、8×8のグリッド上の水平および垂直のブロック境界と、8×8のサンプルの重複していないブロックとを示し、これらは並列にデブロッキングされ得る。
【0041】
2.4.1. 境界の決定
8×8のブロック境界にフィルタリングを適用する。さらに、それは、(例えば、アフィン動き予測、ATMVPを使用しているため)変換ブロックの境界またはコーディングサブブロックの境界でなければならない。そのような境界でない場合、フィルタは無効にされる。
【0042】
2.4.2. 境界強度計算
変換ブロックの境界/コーディングサブブロックの境界に対して、それが8×8グリッドに位置する場合、それをフィルタリングしてもよく、このエッジに対するbS[xDi][yDj]([xDi][yDj]は座標を表す)の設定は、それぞれ、表2-2および表2-3で定義している。
【0043】
【表4】
【0044】
【表5】
【0045】
2.4.3. 輝度成分のデブロッキング決定
デブロッキング決定処理は、このサブセクションで説明する。
【0046】
より広く、強い輝度フィルタは、条件1、条件2、および条件3の全てがTRUEである場合にのみ使用されるフィルタである。
条件1は、「ラージブロック条件」である。この条件は、P側およびQ側のサンプルが、それぞれ変数bSidePisLargeBlkおよびbSideQisLargeBlkによって表現されるラージブロックに属するかどうかを検出する。bSidePisLargeBlkおよびbSideQisLargeBlkは、以下のように定義される。
bSidePisLargeBlk=((edge type is vertical and p belongs to CU with width>=32)||(edge type is horizontal and p belongs to CU with height>=32))?TRUE:FALSE
bSideQisLargeBlk=((edge type is vertical and q belongs to CU with width>=32)||(edge type is horizontal and q belongs to CU with height>=32))?TRUE:FALSE
bSidePisLargeBlkおよびbSideQisLargeBlkに基づいて、条件1を以下のように定義する。
Condition1=(bSidePisLargeBlk || bSidePisLargeBlk)?TRUE:FALSE
次に、条件1が真である場合、さらに条件2をチェックする。まず、以下の変数を導出する。
-dp0,dp3,dq0,dq3をまずHEVCとして導出する
-if (p side is greater than or equal to 32)
dp0=(dp0+Abs(p5-2*p4+p3)+1)>>1
dp3=(dp3+Abs(p5-2*p4+p3)+1)>>1
-if(q side is greater than or equal to 32)
dq0=(dq0+Abs(q5-2*q4+q3)+1)>>1
dq3=(dq3+Abs(q5-2*q4+q3)+1)>>1
Condition2=(d<β)?TRUE:FALSE
where d=dp0+dq0+dp3+dq3.
条件1および条件2が有効である場合、いずれかのブロックがサブブロックを使用するかどうかをさらにチェックする。
If(bSidePisLargeBlk)

If(mode block P==SUBBLOCKMODE)
Sp=5
else
Sp=7

else
Sp=3

If(bSideQisLargeBlk)

If(mode block Q==SUBBLOCKMODE)
Sq=5
else
Sq=7

else
Sq=3
最後に、条件1および条件2の両方が有効である場合、提案されたデブロッキング方法は、以下のように定義される条件3(ラージブロックの強いフィルタ条件)をチェックする。
条件3のStrongFilterConditionにおいて、以下の変数を導出する。
dpqはHEVCと同様に導出される。
sp=Abs(p-p)、HEVCと同様に導出される
if(p側が32以上)
if(Sp==5)
sp=(sp+Abs(p-p)+1)>>1
else
sp=(sp+Abs(p-p)+1)>>1
sq=Abs(q-q)は、HEVCと同様に導出される
if(q側が32以上)
If(Sq==5)
sq=(sq+Abs(q-q)+1)>>1
else
sq=(sq+Abs(q-q)+1)>>1
HEVCと同様に、StrongFilterCondition=(dpqは(β>>2)未満、sp+sqは(3*β>>5)未満、およびAbs(p-q)は(5*t+1)>>1)?TRUE:FALSE.
【0047】
2.4.4.輝度のためのより強いデブロッキングフィルタ(よりラージのブロックのために設計される)
バイリニアフィルタは、境界の両側のサンプルが1つのラージブロックに属する場合に用いられる。1つのラージブロックに属する1つのサンプルは、垂直エッジの場合、幅≧32であり、水平エッジの場合、高さ≧32であるときとして定義される。
【0048】
バイリニアフィルタを以下に示す。
【0049】
次に、上述のHEVCデブロッキングにおいて、i=0~Sp-1では、ブロックの境界サンプルp、j=0~Sq-1ではq(pi、qiは、垂直エッジをフィルタリングする行内のi番目のサンプル、または水平エッジをフィルタリングする列内のi番目のサンプル)を、以下のように線形補間によって置き換える。
【0050】
【数1】
【0051】
tcPDおよびtcPD項は、章2.4.7に記載の位置依存クリッピングであり、g,f,Middles,t,PおよびQは、以下に示される。
【0052】
2.4.5.クロマのデブロッキング制御
クロマの強いフィルタは、ブロックの境界の両側に用いられる。ここで、クロマフィルタは、クロマエッジの両側が8(クロマ位置)以上である場合に選択され、次の3つの条件を満たす決定が行われる。第1は、ラージブロックと同様に境界強度の決定である。提案されたフィルタは、クロマサンプルドメインにおいて、ブロックのエッジに直交するブロックの幅または高さが8以上である場合に適用できる。第2および第3は、基本的にはHEVC輝度のデブロッキングの決定と同じであり、それぞれオン/オフの決定、および、強いフィルタの決定である。
【0053】
第1の決定において、クロマフィルタリングのために境界強度(bS)が修正され、条件が順次チェックされる。条件が満たされている場合、残りの優先順位の低い条件はスキップされる。
【0054】
ラージブロックの境界が検出された場合、bSが2に等しいか、またはbSが1に等しいとき、クロマデブロッキングが行われる。
【0055】
第2および第3の条件は、基本的には、以下のように、HEVC輝度の強いフィルタの決定と同様である。
第2の条件において、
その後、HEVC輝度デブロッキングと同様にdを導出する。
第2の条件は、dがβより小さい場合、TRUEとなる。
第3の条件において、StrongFilterConditionは、以下のように導出される。
dpqはHEVCと同様に導出される。
sp=Abs(p-p)、HEVCと同様に導出される
sq=Abs(q-q)はHEVCと同様に導出される
【0056】
HEVC設計におけるように、StrongFilterCondition=(dpqが(β>>2)未満であり、sp+sqが(β>>3)未満であり、Abs(p_q)が(5*t+1)>>1未満である。)
2.4.6.クロマ用の強いデブロッキングフィルタ
【0057】
以下のようなクロマ用の強いデブロッキングフィルタが定義される。
’=(3*p+2*p+p+p+q+4)>>3
’=(2*p+p+2*p+p+q+q+4)>>3
’=(p+p+p+2*p+q+q+q+4)>>3
【0058】
提案されたクロマフィルタは、4×4クロマサンプルグリッドに対してデブロッキングを行う。
【0059】
2.4.7. 位置依存クリッピング
位置依存クリッピングtcPDは、境界で7個、5個、および3個のサンプルを修正する強く長いフィルタを含む輝度フィルタリング処理の出力サンプルに適用される。量子化誤差分布を仮定して、より高い量子化ノイズを有すると予想されるサンプルに対して、クリッピング値を増加させることが提案され、よって、再構成されたサンプル値の真のサンプル値からのより高い偏差を有することが予想される。
【0060】
非対称フィルタでフィルタリングされた各PまたはQ境界について、章2.4.2における意思決定処理の結果に基づいて、位置依存閾値テーブルが、サイド情報としてデコーダに提供される2つのテーブル(即ち、Tc7およびTc3を以下にまとめる)から選択される。
Tc7={6,5,4,3,2,1,1};Tc3={6,4,2};
tcPD=(Sp==3)?Tc3:Tc7;
tcQD=(Sq==3)?Tc3:Tc7;
【0061】
短い対称フィルタでフィルタリングされるPまたはQ境界に対しては、より小さい位置依存閾値が適用される。
Tc3={3,2,1};
【0062】
閾値を定義した後、tcPおよびtcQクリッピング値に従って、フィルタリングされたp’およびq’サンプル値をクリッピングする。
p’’=Clip3(p’+tcP,p’-tcP,p’);
q’’=Clip3(q’+tcQ,q’-tcQ,q’);
【0063】
ここで、p’、q’はフィルタリングされたサンプル値であり、p”、q”はクリッピング後の出力サンプル値であり、tcP tcPはVVC tcパラメータ、tcPD、tcQDから導出されるクリッピング閾値である。関数Clip3は、VVCに規定されているような、クリッピング関数である。
【0064】
2.4.8.サブブロックのデブロッキング調整
両方のロングフィルタを使用する並列フレンドリなデブロッキングおよびサブブロックデブロッキングを可能にするために、ロングフィルタは、ロングフィルタのための輝度制御に示すように、サブブロックデブロッキング(AFFINE、ATMVP、またはDMVR)を使用する側でのサンプルの修正が、最大で5つまでに制限される。さらに、サブブロックのデブロッキングは、CUまたは暗黙のTU境界に近い8×8グリッド上のサブブロック境界の修正が、各側において最大2つまでのサンプルに制限されるように調整される。
以下は、CU境界と整列されていないサブブロック境界に適用される。
If(mode block Q==SUBBLOCKMODE && edge !=0){
if(!(implicitTU && (edge==(64/4))))
if(edge==2 || edge==(orthogonalLength-2) || edge==(56/4) || edge==(72/4))
Sp=Sq=2;
else
Sp=Sq=3;
else
Sp=Sq=bSideQisLargeBlk?5:3
【0065】
この場合、0に等しいエッジはCU境界に対応し、2に等しいかまたはorthogonalLength-2に等しいエッジは、CU境界からのサブブロックの境界8サンプルに対応する。ここで、TUの暗黙的分割が使用される場合、暗黙的TUは真である。
【0066】
2.5. サンプル適応オフセット(Sample Adaptive Offset:SAO)
SAOの入力は、DBの後に再構成されたサンプルである。SAOの概念は、まず、選択された分類子を使用して領域サンプルを複数のカテゴリに分類し、各カテゴリにオフセットを取得し、次いで、カテゴリの各サンプルにそのオフセットを加えることによって、領域の平均のサンプル歪みを低減することであり、そこで、分類子のインデックスと領域のオフセットとがビットストリームにおいてコーディングされる。HEVCおよびVVCにおいて、この領域(SAOパラメータ信号通知の単位)は、CTUとして定義される。
【0067】
HEVCには、低複雑性の要件を満たすことができる2つのSAOタイプが採用されている。これらの2つのタイプは、エッジオフセット(EO)およびバンドオフセット(BO)であり、これらについては以下でさらに詳細に説明する。SAOタイプのインデックスがコーディングされる(これは、[0,2]の範囲内にある)。EOの場合、サンプル分類は、水平、垂直、135°の対角線、および45°の対角線方向などの1次元方向パターンに従って、現在のサンプルと近傍のサンプルとを比較することに基づく。
【0068】
図10A図10Dは、EOサンプルの分類のための4つの1次元方向パターンである、水平(EOクラス=0)、垂直(EOクラス=1)、斜め135°(EOクラス=2)、斜め45°(EOクラス=3)を示す。
【0069】
所与のEOクラスに対して、CTB内の各サンプルを5つのカテゴリの1つに分類される。「c」とラベル付けされた現在のサンプル値を、選択された1次元パターンに沿った(「a」および「b」とラベル付けされた)その2つの近傍部分と比較する。各サンプルの分類規則を表2-4にまとめる。カテゴリ1および4は、それぞれ、選択された1次元パターンに沿った局所的な谷および局所的なピークに関連付けられる。カテゴリ2および3は、それぞれ、選択された1次元パターンに沿った凹面および凸面の角に関連付けられる。現在のサンプルがEOカテゴリ1~4に属さない場合、それはカテゴリ0であり、SAOは適用されない。
【0070】
【表6】
【0071】
2.6. 適応ループフィルタ(ALF)
VVCにおいて、ブロックに基づくフィルタ適応を伴う適応ループフィルタ(ALF)が適用される。輝度成分は、局所勾配の方向および働きに基づいて、4×4ブロックごとに25個のフィルタのうち1つを選択する。
【0072】
2.6.1. フィルタ形状
2つの菱形フィルタ形状(図11に示す)が使用される。輝度成分には7×7菱形を適用し、クロマ成分には5×5菱形を適用する。
【0073】
図11はALFフィルタの形状を示す(彩度:5×5菱形、輝度:7×7菱形)。
【0074】
2.6.2. ブロック区分
輝度成分の場合、各4×4ブロックを25個のクラスのうちの1つに分類する。分類インデックスCは、その方向性DおよびアクティビティA^の量子化値に基づいて、以下のように導出される。
【0075】
【数2】
【0076】
DおよびA^を計算するために、まず、1-Dラプラシアンを使用して、水平、垂直および2つの対角線方向の勾配を計算する。
【0077】
【数3】
【0078】
ここで、インデックスiおよびjは、4×4ブロック内の左上のサンプルの座標を表し、R(i,j)は、座標R(i,j)における再構成されたサンプルを示す。
【0079】
ブロック区分の複雑性を低減するために、サブサンプリングされた1-Dラプラシアン計算が適用される。図12はサブサンプリングされたラプラシアン計算を示す。図12Aは垂直方向勾配用のサブサンプリング位置を示し、図12Bは水平方向勾配用のサブサンプリング位置を示し、図12Cは対角勾配用のサブサンプリング位置を示し、図12Dは対角勾配用のサブサンプリング位置を示す。
【0080】
そして、水平方向および垂直方向の勾配のD最大値およびD最小値を以下のように設定する。
【0081】
【数4】
【0082】
2つの対角線方向の勾配の最大値および最小値は、以下のように設定される。
【0083】
【数5】
【0084】
指向性Dの値を導出するために、これらの値を互いに且つ2つの閾値tおよびtと比較する。
【0085】
【数6】
【0086】
アクティビティ値Aは、以下のように計算される。
【0087】
【数7】
【0088】
Aをさらに0~4の範囲に量子化し、量子化された値をA^とする。
【0089】
ピクチャにおけるクロマ成分に対して、分類方法は適用されず、即ち、単一のALF係数のセットが各クロマ成分に対して適用される。
【0090】
2.6.3. フィルタ係数およびクリッピング値の幾何学的変換
各4×4輝度ブロックをフィルタリングする前に、そのブロックに対して計算された勾配値に基づいて、フィルタ係数f(k,l)および対応するフィルタクリッピング値c(k,l)に対して、回転または対角線および垂直方向の反転等の幾何学的変換を施す。これは、これらの変換をフィルタサポート領域内のサンプルに適用することに等しい。その考えは、ALFが適用される異なるブロックを、それらの方向性を揃えることによって、より類似させることである。
対角線、垂直方向の反転および回転を含む3つの幾何学的変換を紹介する。
【0091】
【数8】
【0092】
ここで、Kはフィルタのサイズであり、0≦k,l≦K-1が係数座標であり、位置(0,0)は左上隅にあり、位置(K-1,K-1)は右下隅にある。この変換は、そのブロックに対して計算された勾配値に基づいて、フィルタ係数f(k,l)およびクリッピング値c(k,l)に適用される。変換と4方向の4つの勾配との関係を以下の表にまとめる。
【0093】
【表7】
【0094】
2.6.4.フィルタパラメータ信号通知
ALFフィルタパラメータは、適応パラメータセット(APS)において信号通知される。1つのAPSにおいて、最大25組の輝度フィルタ係数およびクリッピング値インデックス、並びに最大8組のクロマフィルタ係数およびクリッピング値インデックスを信号通知することができる。ビットオーバーヘッドを低減するために、輝度成分の異なる分類のフィルタ係数をマージすることができる。スライスヘッダにおいて、現在のスライスに使用されるAPSのインデックスが信号通知される。
【0095】
APSから復号されたクリッピング値インデックスは、輝度およびクロマ成分両方に対するクリッピング値のテーブルを使用してクリッピング値を判定することを可能にする。これらのクリッピング値は、内部ビット深度に依存する。より正確には、クリッピング値は、以下の式によって求められる。
【0096】
【数9】
【0097】
ここで、Bは内部ビット深度に等しく、αは予め定義された定数2.35に等しく、NはVVCにおいて許容されるクリッピング値の数である4に等しい。
【0098】
スライスヘッダにおいて、現在のスライスに使用される輝度フィルタ集合を規定するように、最大7つのAPSインデックスを信号通知することができる。フィルタリング処理はCTBレベルでさらに制御されてもよい。ALFが輝度CTBに適用されるかどうかを示すために、常に1つのフラグが信号通知される。1つの輝度CTBは、16個の固定フィルタセットと複数のAPSからのフィルタセットから、1つのフィルタセットを選択することができる。どのフィルタセットが適用されるかを示すように、輝度CTBのためにフィルタセットインデックスが信号通知される。エンコーダおよびデコーダの両方において、16個の固定フィルタセットを予め規定し、ハードコードする。
【0099】
クロマ成分の場合、現在のスライスに使用されているクロマフィルタセットを示すように、スライスヘッダにAPSインデックスを信号通知する。CTBレベルにおいて、APSにおいて複数のクロマフィルタセットが存在する場合、各クロマCTBごとにフィルタインデックスを信号通知する。
【0100】
フィルタ係数は、128に等しいノルムで量子化される。乗算の複雑性を抑えるために、非中心位置の係数値が-2~2-1の範囲内に含まれるように、ビットストリーム適合性が適用される。中心位置係数はビットストリームにおいて信号通知されず、128に等しいと見なされる。
【0101】
2.6.5.フィルタリング処理
デコーダ側において、CTBのためにALFが有効化されると、CU内の各サンプルR(i,j)がフィルタリングされ、その結果、以下に示すように、サンプル値R’(i,j)が得られる。
【0102】
【数10】
【0103】
この場合、f(k,l)は復号されたフィルタ係数を表し、K(x,y)はクリッピング関数であり、c(k,l)は復号されたクリッピングパラメータを表す。変数kおよびlは、(-L/2)と(L/2)との間で変化し、ここで、Lはフィルタ長を表す。機能Clip3(-y,y,x)に対応するクリッピング関数K(x,y)=min(y,max(-y,x))。
【0104】
2.6.6. 行バッファ削減のための仮想境界フィルタリング処理
ハードウェアおよび組み込みソフトウェアにおいて、ピクチャに基づく処理は、その高いピクチャバッファ要件のために、実際には受け入れられない。オンチップピクチャバッファの使用は非常に高価であり、オフチップピクチャバッファの使用は、外部メモリアクセス、電力消費、およびデータアクセス待ち時間を大幅に増加させる。そのため、実際の製品において、DF、SAO、ALFを画像に基づく復号からLCUに基づく復号に変更することになる。DF、SAO、ALFにLCUに基づく処理を使用する場合、複数のLCUを並列処理するために、LCUパイプライン方式を用いたラスタスキャンでLCUごとに全体の復号処理を行うことができる。この場合、1つのLCU行を処理するには上側LCU行からのピクセルが必要であるので、DF、SAO、およびALFのためにラインバッファが必要である。オフチップラインバッファ(例えば、DRAM)を使用する場合、外部メモリの帯域幅および消費電力が増大し、オンチップラインバッファ(例えば、SRAM)を使用する場合、チップ面積が増大する。従って、ラインバッファは既にピクチャバッファよりも遥かに小さいが、ラインバッファを低減することが依然として望ましい。
【0105】
VTM-4.0において、図13に示すように、輝度成分に必要なラインバッファの総数は11.25ラインである。ラインバッファ要件の説明は以下のとおりである。CTUエッジと重複する水平エッジのデブロッキングは、決定およびフィルタリングには、第1のCTUからのラインK,L,M,M、および最下CTUからのラインO,Pを必要とするので、行うことができない。そのため、CTU境界と重なる水平エッジのデブロッキングは、下側CTUが来るまで延期される。従って、ラインK,L,M,Nに対して、再構成された輝度サンプルをラインバッファ(4ライン)に記憶しなければならない。次に、ラインA~Jに対してSAOフィルタリングを行うことができる。ラインJはSAOフィルタリングすることができ、これは、デブロッキングによってラインKにおけるサンプルが変化しないためである。ラインKのSAOフィルタリングの場合、エッジオフセット分類決定はラインバッファにのみ記憶される(これは0.25輝度ラインである)。ALFフィルタリングは、ラインA~Fに対してのみ行い得る。図13に示すように、4×4ブロックごとにALF分類を行う。各4×4ブロック分類は、8×8のサイズのアクティビティ窓を必要とし、このアクティビティ窓は、1dラプラシアンを計算して勾配を決定するために9×9の窓を必要とする。
【0106】
従って、ラインG、H、I、Jと重なる4×4ブロックのブロック分類のために、Jは、仮想境界より下のSAOフィルタリングされたサンプルを必要とする。さらに、ALF分類のために、ラインD、E、FのSAOフィルタリングされたサンプルが必要である。さらに、ラインGのALFフィルタリングは、上側ラインから3つのSAOフィルタリングされたラインD、E、Fを必要とする。従って、総ラインバッファ要件は、以下のとおりである。
-ラインK-N(水平DFピクセル):4ライン
-ラインD-J(SAOフィルタリングされたピクセル):7ライン
-ラインJとラインKとの間のSAOエッジオフセット分類子値:0.25ライン
【0107】
従って、必要とされる輝度ラインの総数は、7+4+0.25=11.25である。
【0108】
同様に、クロマ成分のラインバッファ要件は図14に例示されている。クロマ成分のためのラインバッファ要件は、6.25ラインであると評価される。
【0109】
図13は、輝度成分用VTM-4.0中のループフィルタラインバッファ要件を示す。
【0110】
図14は、クロマ成分用のVTM-4.0中のループフィルタラインバッファ要件を示す。
【0111】
SAOおよびALFのラインバッファ要件を排除するために、最近のVVCにおいて、仮想境界(VB)の概念が導入されてALFのラインバッファ要件を低減する。水平CTU境界付近のサンプルに対して修正されたブロック区分およびフィルタリングが用いられる。図13に示すように、VBは、水平LCU境界においてN個のピクセルだけ上向きにシフトされている。LCUごとに、SAOおよびALFは、下側LCUが来る前に、VBより上のピクセルを処理することができるが、下側LCUが来るまで、VBより下のピクセルを処理することはできず、これは、DFによってもたらされる。ハードウェアの実施費用を勘案し、提案したVBと水平LCU境界との間の空間を、輝度成分が4ピクセル(即ち、図13または図15におけるN=4)、クロマ成分が2ピクセル(即ち、N=2)として設定する。
【0112】
図15は、仮想境界における修正された区分を示す。
【0113】
図16に示すように、輝度成分に対して修正されたブロック区分を適用する。仮想境界より上の4×4ブロックの1Dラプラシアン勾配計算のために、仮想境界より上のサンプルのみを使用する。同様に、仮想境界より下の4×4ブロックの1Dラプラシアン勾配計算のために、仮想境界より下のサンプルのみを使用する。従って、1Dラプラシアン勾配計算に使用されるサンプルの低減された数を考慮に入れることで、アクティビティ値Aの量子化を拡大縮小する。
【0114】
フィルタリング処理のために、仮想境界におけるミラーリングされた(対称)パディング演算が、輝度成分およびクロマ成分の両方に使用される。図16に示すように、フィルタリングされるサンプルが仮想境界の下に位置する場合、仮想境界の上に位置する近傍のサンプルにパディングを行う。一方、他方の側の対応するサンプルもまた、対称的にパディングされる。
【0115】
図16は、仮想境界における輝度成分のための修正されたALFフィルタリングを示す。
【0116】
他の例として、(i,j)に位置する1つのサンプル(例えば、図17Bに点線を有するP0A)をパディングする場合、図17A~17Cに示すように、同じフィルタ係数を共有する(m,n)に位置する対応するサンプル(例えば、図17Bに点線を有するP3B)もまた、サンプルが利用可能でもパディングを行う。
【0117】
図17Aは、VBの上/下に1つの必要な線を(一辺ごとに)パディングする必要があることを示している。
【0118】
図17Bは、VBの上/下に2つの必要な線を(一辺ごとに)パディングする必要があることを示している。
【0119】
図17Cは、VBの上/下に3つの必要な線を(一辺ごとに)パディングする必要があることを示している。
【0120】
図27は、仮想境界における修正輝度ALFフィルタリングの例を示す。
【0121】
水平CTU境界で使用されるミラー(対称)パディング方法とは異なり、境界を横切るフィルタリングが無効にされる場合、スライス、タイル、およびサブピクチャの境界に対して反復(片側)パディング処理が適用される。ピクチャの境界においても、反復(片側)パディング処理が適用される。パディングされたサンプルは、分類およびフィルタリング処理の両方に使用される。図18は、ピクチャ/サブピクチャ/スライス/タイル境界における輝度ALFフィルタリングのための反復パディング法の例を示す。
【0122】
図18は、ピクチャ/サブピクチャ/スライス/タイルの境界における輝度ALFフィルタリングのための反復パディングの例を示す。
【0123】
2.7. 360度映像符号化
VTM5における水平ラップアラウンドの動き補償は、等長方形(ERP)投影フォーマットにおける再構成された360度映像の視覚品質を改善するように設計された360度固有のコーディングツールである。従来の動き補償において、動きベクトルが参照ピクチャにおけるピクチャの境界を超えるサンプルを指す場合、反復パディングを適用し、対応するピクチャの境界における最も近い近傍のものからコピーすることによって、境界外サンプルの値を導出する。360度映像の場合、この反復パディング方法は適しておらず、再構成されたビューポート映像において、「シームアーチファクト」と呼ばれる視覚的アーチファクトを引き起こす可能性がある。360度の映像は球面上で撮影され、本質的に「境界」を有していないため、投影されたドメインにおいて参照ピクチャの境界外の参照サンプルは、常に球面ドメインにおける近傍のサンプルから得ることができる。一般的な投影フォーマットの場合、2Dから3Dおよび3Dから2Dへの座標変換、並びに端数のサンプルの位置のためのサンプル補間を含むので、球面ドメインにおける対応する近傍のサンプルを導出することは困難となり得る。この問題は、ERP投影フォーマットの左右の境界の場合ははるかに簡単である。何故なら、左側のピクチャの境界外の球面の近傍部分は、右側のピクチャの境界の内側のサンプルから得ることができ、逆もまた同様であるからである。図19は、VVCにおける水平ラップアラウンドの動き補償の例を示す。
【0124】
水平ラップアラウンドの動き補償処理は、図19に示すように行われる。参照ブロックの一部が、投影されたドメインにおいて参照ピクチャの左(または右)境界外にある場合、反復パディングの代わりに、「境界外」の部分が、参照ピクチャ内に位置する対応する球面の近傍部分から、投影されたドメインにおける右(または左)境界に向かって行われる。反復パディングは、上側ピクチャの境界および下側ピクチャの境界に対してのみ使用される図19に示すように、水平ラップアラウンドの動き補償は、360度の映像コーディングによく使用される非標準的なパディング法と組み合わせることができる。VVCにおいて、これは、ラップアラウンドオフセットを示すためにハイレベルな構文要素を信号通知することによって達成され、このことは、パディングの前にERPピクチャ幅に設定されるべきである。つまり、この構文は、水平ラップアラウンドの位置を適宜調整するために使用される。この構文は、左右のピクチャの境界における特定のパディング量の影響を受けないので、当然ながら、ERPピクチャの非対称パディング、すなわち左右のパディングが異なる場合でも対応する。水平ラップアラウンドの動き補償は、参照サンプルが参照ピクチャの左右の境界の外側にある場合、動き補償のためのより有意義な情報を提供する。
【0125】
複数の面からなる投影フォーマットの場合、どの種のコンパクトなフレームパッキング配列を使用しても、フレームパッキングされたピクチャにおいて、2つ以上の隣り合う面間に不連続部分が現れる。例えば、図20に示された3×2フレームパッキング構成を考えてみると、上半分の3つの面は、3D形状において連続しており、下半分の3つの面は、3D形状において連続しているが、フレームパッキングされたピクチャの上半分および下半分は、3D形状において不連続である。この不連続部分にわたってインループフィルタリング動作を行うと、再構成された映像において面のシームアーチファクトが見えるようになることがある。
【0126】
面のシームアーチファクトを軽減するには、フレームパックキングされたピクチャにおける不連続部分にわたりインループフィルタリング動作を無効化すればよい。インループフィルタリング動作が無効化される垂直方向および/または水平方向の仮想境界を信号通知するための構文が提案されている。2つのタイル(連続した面の各集合に対して1つずつ)を使用し、タイル間のインループフィルタリング動作を無効化することと比較して、提案される信号通知方法は、面のサイズがCTUのサイズの倍数である必要がないので、より柔軟である。
【0127】
図20は、3×2レイアウトにおけるHECの画像を示す。
【0128】
2.8. JVET-P0080:CE5-2.1,CE5-2.2:クロス成分適応ループフィルタ
図21Aは、他のループフィルタに対するCC-ALFの配置を示す。CC-ALFは、クロマ成分ごとに輝度チャネルに線形菱形フィルタ図21Bを適用することによって動作し、以下のように表される。
【0129】
【数11】
【0130】
ここで
(x,y)は、微調整されたクロマ成分iの位置である。
(x,y)は、(x,y)に基づく輝度位置である。
は、クロマ成分iのための輝度におけるフィルタサポートである。
(x,y)は、フィルタ係数を表す。(2-14)
【0131】
図21Aは他のループフィルタに対するCC-ALFの配置を示す。図21Bは菱形フィルタを示す。
【0132】
輝度平面とクロマ平面との間の空間倍率に基づいて、サポート領域の中心となる輝度位置(xC,yC)を計算する。すべてのフィルタ係数はAPSで送信され、8ビットのダイナミックレンジを有する。スライスヘッダにおいて、APSが参照されてもよい。スライスのクロマ成分ごとに使用されるCC-ALF係数も、時間的サブレイヤに対応するバッファに記憶される。これらの時間的サブレイヤフィルタ係数セットの再利用は、スライスレベルフラグを使用して容易になる。CC-ALFフィルタの適用は、可変ブロックサイズ(即ち、16×16、32×32、64×64、128×128)で制御され、サンプルのブロックごとに受信されたコンテキスト符号化フラグによって信号通知される。ブロックサイズは、CC-ALF有効化フラグと共に、クロマ成分ごとにスライスレベルで受信される。水平方向の仮想境界のための境界パディングは、繰り返しを利用する。残りの境界については、通常のALFと同じタイプのパディングを使用する。
【0133】
2.8.1. JVET-P0080におけるCC-ALFの仕様
x.x.x.x クロマサンプルのブロックのためのクロス成分フィルタリング処理
この処理の入力は以下の通りである。
-輝度適応ループフィルタリング処理の前に再構成された輝度ピクチャサンプルアレイrecPicture
-フィルタリングされた再構成クロマピクチャサンプルアレイalfPicture
-現在のピクチャの左上のサンプルに対するクロマサンプルの現在のブロックの左上のサンプルを規定する位置(xC,yC)
-クロマサンプルのブロックの幅ccAlfWidth
-クロマサンプルのブロックの高さccAlfheight
-j=0..13であるクロス成分フィルタ係数CcAlfCoeff[j]
この処理の出力は、修正され、フィルタリングされ、再構成されたクロマピクチャサンプルアレイccAlfPictureである。
コーディングツリーブロック輝度位置(xCtb,yCtb)は、以下のように導出される。
xCtb=(((xC*SubWidthC)>>CtbLog2SizeY)<<CtbLog2SizeY (8-1229)
yCtb=(((yC*SubHeightC)>>CtbLog2SizeY)<<CtbLog2SizeY (8-1229)
フィルタリングされた再構成クロマサンプルccAlfPicture[xC+x][yC+y]を導出するために、サンプルalfPicture[xC+x][yC+y](但し、x=0..ccAlfWidth-1,y=0..ccAlfHeight-1)の現在のクロマブロック内部の各々の再構成されたクロマサンプルは、以下のようにフィルタリングされる。
-クロマ位置(xC+x,yC+y)における現在のクロマサンプルに対応する輝度位置(xL,yL)は、((xC+x)*SubWidthC,(yC+y)*SubHeightC)に等しく設定される。
-i=-2..2,j=-2..3の場合、配列recPicture内の輝度位置(hxL+i,vyL+j)は、以下のように導出される。
-pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosX[n]%CtbSizeYが0に等しくなく、且つ、n=0..pps_num_ver_virtual_boundaries-1においてxL-PpsVirtualBoundariesPosX[n]が0以上3未満である場合、以下が適用される。
xL+i=Clip3(PpsVirtualBoundariesPosX[n],pic_width_in_luma_samples-1,xL+i) (8-1229)
-あるいは、pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosX[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_ver_virtual_boundaries-1においてPpsVirtualBoundariesPosX[n]が0より大きく4未満である場合、以下が適用される。
x+i=Clip3(0,PpsVirtualBoundariesPosX[n]-1,xL+i) (8-1230)
-そうでない場合、以下が適用される。
x+i=Clip3(0,pic_width_in_luma_samples-1,xL+i) (8-1231)
-pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosY[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_hor_virtual_boundaries-1においてyL-PpsVirtualBoundariesPosY[n]が0以上3未満である場合、以下が適用される。
y+j=Clip3(PpsVirtualBoundariesPosY[n],pic_height_in_luma_samples-1,yL+j) (8-1232)
-あるいは、pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosY[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_hor_virtual_boundaries-1においてPpsVirtualBoundariesPosY[n]-yLが0より大きく4未満である場合、以下が適用される。
y+j=Clip3(0,PpsVirtualBoundariesPosY[n]-1,yL+j) (8-1233)
-そうでない場合、以下が適用される。
y+j=Clip3(0, pic_height_in_luma_samples-1,yL+j) (8-1234)
-変数clipLeftPos、clipRightPos、clipTopPos、およびclipBottomPosは、(xCtb,yCtb)および(xL-xCtb,yL-yCtb)を入力として、8.8.5.5項で規定されるように、ALF境界位置導出処理を呼び出すことによって導出される。
-垂直方向のサンプルの位置yL、clipLeftPos、およびclipRightPosに応じた垂直方向の輝度サンプルの位置のオフセットyM2、yM1、yP1、yP2、yP3を表2-6で規定する。
-水平方向の輝度サンプルの位置xL、clipLeftPos、およびclipRightPosに応じた水平サンプル位置オフセットxM1,xM2,xP1、xP2を表2-7で規定する。
変数currは、以下のように導出される。
curr=alfPicture[xC+x,yC+y] (8-1286)
-クロス成分フィルタ係数f[j]のアレイは、j=0..13として以下のように導出される。
f[j]=CcAlfCoeff[j] (8-1287)
変数sumは、以下のように導出される。
sum=f[0]*recPicture[h,vy+yM2]+
f[1]*recPicture[hx+xM1,vy+yM1]+
f[2]*recPicture[h,vy+yM1]+
f[3]*recPicture[hx+xP1,vy+yM1]+
f[4]*recPicture[hx+xM2,v]+
f[5]*recPicture[hx+xM1,v]+
f[6]*recPicture[h,v]+
f[7]*recPicture[hx+xP1,v]+
f[4]*recPicture[hx+xP2,v]+ (8-1289)
f[4]*recPicture[hx+xM2,vy+yP1]+
f[8]*recPicture[hx+xM1,vy+yP1]+
f[9]*recPicture[h,vy+yP1]+
f[10]*recPicture[hx+xP1,vy+yP1]+
f[4]*recPicture[hx+xP2,vy+yP1]+
f[11]*recPicture[hx+xM1,vy+yP2]+
f[12]*recPicture[h,vy+yP2]+
f[13]*recPicture[hx+xP1,vy+yP2]+
f[0]*recPicture[h,vy+yP3
sum=curr+(sum+64)>>7) (8-1290)
-修正されフィルタリングされた再構成クロマピクチャサンプルアレイccAlfPicture[xC+x][yC+y]は、以下のように導出される。
ccAlfPicture[xC+x][yC+y]=Clip3(0,(1<<BitDepth)-1,sum) (8-1291)
【0134】
【表8】
【0135】
【表9】
【0136】
2.8.2. JVET-P0080における仮想境界におけるパディング方法
輝度ALF/クロマALFと同様に、JVET-P0080におけるCC-ALFの場合、ALF仮想境界において反復パディングが利用される。図22に示すように、ALF仮想境界より上または下の輝度サンプルが利用不可である場合、最も近いサンプル線をパディングに利用する。詳細なパディング方法を表2-6に示す。
【0137】
2.9. JVET-P1008:CE5-関連:CC-ALFの設計について
JVET-O0636[1]およびCE5-2.1[2]において、クロス成分適応ループフィルタ(CC-ALF)を導入し、検討した。このフィルタは、線形フィルタを使用して輝度サンプル値をフィルタリングし、並置されフィルタリングされた出力からクロマチャネルのための残差補正を生成する。このフィルタは、既存の輝度ALFと並列に動作するように設計されている。
【0138】
簡素化され、且つ、既存のALFとより整合性があると断定されるCC-ALF設計が提案される。この設計は、8つの独自の係数を有する3×4菱形を使用する。これにより、CE5-2.1で検討された5×6設計に比較して、乗数が43%削減される。CTUのクロマ成分に対して、クロマALFまたはCC-ALFのいずれかを有効化する制限を設ける場合、ピクセル当たりの乗数カウントを16に制限する(現在のALFは15である)。フィルタ係数のダイナミックレンジは、6ビットの符号付きに限定される。提案された解決策およびCE5-2.1解決策の両方のためのフィルタの説明を図23に示す。
【0139】
既存のALF設計により整合させるために、APSにおいてフィルタ係数を信号通知する。4つまでのフィルタがサポートされ、CTUレベルでのフィルタ選択が示される。ALFとさらに調和させるために、仮想境界で対称線選択を使用する。最後に、補正出力に必要な記憶容量を制限するために、CC-ALF残差出力を-2BitDepthC-1から2BitDepthC-1-1にクリップする。
【0140】
JVET-P1008におけるCC-ALFの仕様
x.x.x.x クロマサンプルのブロックのためのクロス成分フィルタリング処理
この処理の入力は以下の通りである。
-輝度適応ループフィルタリング処理の前に再構成された輝度ピクチャサンプルアレイrecPicture
-フィルタリングされた再構成クロマピクチャサンプルアレイalfPicture
-現在のピクチャの左上のサンプルに対する現在のクロマコーディングツリーブロックの左上のサンプルを規定するクロマ位置(xCtbC,yCtbC)
-クロマサンプルのブロックの幅ccAlfWidth
-クロマサンプルのブロックの高さccAlfheight
-j=0..7であるクロス成分フィルタ係数CcAlfCoeff[j]
この処理の出力は、修正され、フィルタリングされ、再構成されたクロマピクチャサンプルアレイccAlfPictureである。
コーディングツリーブロック輝度位置(xCtb,yCtb)は、以下のように導出される。
xCtb=(((xCtbC*SubWidthC)>>CtbLog2SizeY)<<CtbLog2SizeY (8-1229)
yCtb=(((yCtbC*SubHeightC)>>CtbLog2SizeY)<<CtbLog2SizeY (8-1229)
フィルタリングされた再構成クロマサンプルccAlfPicture[xCtbC+x][yCtbC+y]を導出するために、サンプルalfPicture[xCtbC+x][yCtbC+y](但し、x=0..ccAlfWidth-1,y=0..ccAlfHeight-1)の現在のクロマブロック内部の各々の再構成されたクロマサンプルは、以下のようにフィルタリングされる。
-クロマ位置(xCtbC+x,yCtbC+y)における現在のクロマサンプルに対応する輝度位置(xL,yL)は、((xCtbC+x)*SubWidthC,(yCtbC+y)*SubHeightC)に等しく設定される。
配列recPicture内の、-i=-1..1,j=-1..2の場合の輝度位置(hxL+i,vyL+j)は、以下のように導出される。
-pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosX[n]%CtbSizeYが0に等しくなく、且つ、n=0..pps_num_ver_virtual_boundaries-1においてxL-PpsVirtualBoundariesPosX[n]が0以上3未満である場合、以下が適用される。
xL+i=Clip3(PpsVirtualBoundariesPosX[n],pic_width_in_luma_samples-1,xL+i) (8-1229)
-あるいは、pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosX[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_ver_virtual_boundaries-1においてPpsVirtualBoundariesPosX[n]が0より大きく4未満である場合、以下が適用される。
x+i=Clip3(0,PpsVirtualBoundariesPosX[n]-1,xL+i) (8-1230)
-そうでない場合、以下が適用される。
x+i=Clip3(0, pic_width_in_luma_samples-1,xL+i) (8-1231)
-pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosY[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_hor_virtual_boundaries-1においてyL-PpsVirtualBoundariesPosY[n]が0以上3未満である場合、以下が適用される。
y+j=Clip3(PpsVirtualBoundariesPosY[n],pic_height_in_luma_samples-1,yL+j) (8-1232)
-あるいは、pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosY[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_hor_virtual_boundaries-1においてPpsVirtualBoundariesPosY[n]-yLが0より大きく4未満である場合、以下が適用される。
y+j=Clip3(0,PpsVirtualBoundariesPosY[n]-1,yL+j) (8-1233)
-そうでない場合、以下が適用される。
y+j=Clip3(0, pic_height_in_luma_samples-1,yL+j) (8-1234)
-変数clipLeftPos、clipRightPos、clipTopPos、およびclipBottomPosは、(xCtb,yCtb)および(xL-xCtb,yL-yCtb)を入力として、8.8.5.5項で規定されるように、ALF境界位置導出処理を呼び出すことによって導出される。
-垂直方向のサンプルの位置yL、clipLeftPos、およびclipRightPosに応じた垂直方向の輝度サンプルの位置のオフセットyM1、yP1、yP2を表2-8で規定する。
-水平方向の輝度サンプルの位置xL、clipLeftPos、およびclipRightPosに応じた水平サンプル位置オフセットxM1およびxP1を表2-9で規定する。
変数currは、以下のように導出される。
curr=alfPicture[xCtbC+x,yCtbC+y] (8-1286)
-クロス成分フィルタ係数f[j]のアレイは、j=0..7の場合、以下のように導出される。
f[j]=CcAlfCoeff[j] (8-1287)
変数sumは、以下のように導出される。
sum=f[0]*recPicture[h,vy+yM1]+
f[1]*recPicture[hx+xM1,v]+
f[2]*recPicture[h,v]+
f[3]*recPicture[hx+xP1,v]+ (8-1289)
f[4]*recPicture[hx+xM1,vy+yP1]+
f[5]*recPicture[h,vy+yP1]+
f[6]*recPicture[hx+xP1,vy+yP1]+
f[7]*recPicture[h,vy+yP2
sum=Clip3(-(1<<(BitDepth-1)),(1<<(BitDepth-1))-1,sum) (8-1290)
sum=curr+(sum+64)>>(7+(BitDepth-BitDepth)) (8-1290)
-修正されフィルタリングされた再構成クロマピクチャサンプルアレイccAlfPicture[xCtbC+x][yCtbC+y]は、以下のように導出される。
ccAlfPicture[xCtbC+x][yCtbC+y]=Clip3(0,(1<<BitDepth)-1,sum) (8-1291)
【0141】
【表10】
【0142】
【表11】
【0143】
2.9.1. JVET-P1008における仮想境界におけるパディング方法
JVET-P1008のCC-ALFに対しては、ALF仮想境界でミラー(対称)パディングが使用される。図24に示すように、ALF仮想境界より上または下の輝度サンプルが利用不可である場合、最も近いサンプル線をパディングに利用し、対応するサンプルもパディングする必要がある。詳細なパディング方法は表2-9にも示されている。
【0144】
2.10.JVET-P2025におけるCC-ALFの簡単な方法
2.10.1代替のフィルタ形状
CC-ALFフィルタ形状は、以下の図に示すように、8個または6個の係数を有するように修正される。
【0145】
図25は、JVET-P0106における8つの係数のCC-ALFフィルタ形状を示す。
【0146】
図26は、JVET-P0173における6つの係数のCC-ALFフィルタ形状を示す。
【0147】
図27は、JVET-P0251における6つの係数のCC-ALFフィルタ形状を示す。
【0148】
2.10.2. ジョイントクロマクロス成分適応フィルタリング
ジョイントクロマクロス成分適応ループフィルタ(JC-CCALF)は、エンコーダでトレーニングされた1つのCCALFフィルタ係数のみを使用して、1つのフィルタリングされた出力を微調整信号として生成し、これをCb成分に直接追加し、適切に重み付けた後Cr成分に追加する。フィルタはCTUレベルで示されるか、またはブロックサイズで示されて、1つのスライスごとに信号通知される。
【0149】
サポートされるこのようなクロマブロックサイズは、最小クロマCTUサイズから現在のクロマCTUサイズまでの範囲にわたる。最小クロマCTUサイズは、クロマCTUの可能な最小の幅と高さとの間の最小値、すなわち、Min(32/SubWidthC,32/SubHeightC)であり、現在のクロマCTUのサイズは、現在のクロマCTUの幅と高さの間の最小値、すなわちMin(CtbWidthC,CtbHeightC)である。例えば、CTUサイズを最大128×128に設定すると、1つのスライスのJC-CCALFクロマブロックサイズは、4:4:4映像の場合、32×32、64×64、128×128のいずれか1つ、または4:2:0、4:2:2映像の場合、16×16、32×32、64×64のいずれか1つとなる。
【0150】
図28は、JC-CCALFの作業の流れを示している。
【0151】
3. 本明細書に開示される技術的解決策によって解決される技術的課題
CC-ALFのための境界パディングの現在の設計は、以下の問題を有する。
1.CC-ALFにおけるALF仮想境界でのパディング方法は、あまり効率的でない可能性があるパディングされたサンプルが利用されるので、準最適となる場合がある。
2.ALF仮想境界および映像ユニットの境界(例えば、ピクチャ/サブピクチャ/スライス/タイルの境界)並びに360度の仮想境界を処理するための異なる方法、即ち、異なるパディング方法が存在する。
3.ALFにおいて、ミラーパディングが適用され、現在のサンプルまでの距離が計算され、どの対応するサンプルをパディングする必要があるかが決定される。しかしながら、CC-ALFにおいて、特に4:2:0の場合、1つのクロマサンプルをフィルタリングするために、複数の輝度サンプルが関与する。どの対応するサンプルをパディングする必要があるかを決定する方法は不明である。
【0152】
4. 技術および実施形態の例示一覧
以下に列記されるものは、一般的な概念を説明するための例であると考えられるべきである。これら項目は狭い意味で解釈されるべきではない。さらに、これらの項目は、任意の方法で組み合わせることができる。
【0153】
本開示で説明されるいくつかの実施形態において、「CC-ALF」という用語は、第2の色成分(例えば、Y)または複数の色成分(例えば、YおよびCrの両方)におけるサンプル値を利用して、第1の色成分(例えば、Cb)におけるサンプルを精緻化するコーディングツールを表す。本発明は、[1]~[4]に記載されるCC-ALF技術に限定されない。「対応するフィルタリングサンプルのセット」は、フィルタサポートに含まれるサンプルを表すために使用してもよく、例えば、CC-ALFの場合、「対応するフィルタリングサンプルのセット」は、クロマサンプルの微調整/オフセットを導出するために使用されるクロマサンプルの並置された輝度サンプルおよび並置されたクロマサンプルの近傍の輝度サンプルを表すために使用されてもよい。
【0154】
ALF仮想境界に使用されるパディング方法は、「ミラーパディング」と表してもよく、(i,j)に位置する第1の利用不可のサンプルに対してパディングを行い、たとえ第2のサンプルが利用可能であっても、ALFのフィルタサポートにおける「第1のサンプルの対応するサンプル」によって定義される第2のサンプル(例えば、現在の輝度サンプルから同じ距離を共有する(m,n)に位置する対応するサンプル)にもパディングを行う。
【0155】
一例において、垂直方向のパディングが利用されて、例えば、(x,y1)に位置するパディング対象のサンプルは、(x,y2)に位置するサンプルに等しく設定され、そのために、y1は、サンプルまたは対応するサンプルのy座標を表し、y2は、パディングに利用されるサンプルのy座標を表す。
【0156】
一例において、水平方向のパディングが利用され、例えば、(x1,y)に位置するパディング対象のサンプルは、(x2,y)に位置するサンプルに等しく設定され、そこで、x1は、サンプルまたは対応するサンプルのx座標を表し、x2は、パディングに利用されるサンプルのx座標を表す。
【0157】
ピクチャ/サブピクチャ/スライス/タイルの境界/360度の映像の仮想境界、通常の境界(例えば、最上および最下の境界)に使用されるパディング方法は、「反復パディング」と呼ばれることもあり、使用される1つのサンプルが境界の外側にある場合、そのサンプルは、ピクチャの内側の利用可能なサンプルからコピーされる。
【0158】
本開示において、近傍の(隣接または非隣接)サンプルは、異なる映像処理ユニット(例えば、現在のピクチャ、または現在のサブピクチャ、または現在のタイル、または現在のスライス、または現在のブリック、または現在のCTU、または現在の処理ユニット(例えば、ALF処理ユニットまたは狭いALF処理ユニット)の外にあるか、または任意の他の現在の映像ユニットである)に位置する場合、または再構成されていない、またはクロスフィルタリング映像処理ユニットが許可されない場合には、「利用不可」である。
CC-ALFのALF仮想境界の処理
1.ALF仮想境界において利用不可の輝度サンプルをパディングするために、ミラーパディングを利用して、利用不可の輝度サンプルと、利用不可の輝度サンプルの1つまたは複数の対応する輝度サンプルとを導出し、CC-ALFにおいてフィルタリングすることができる。すなわち、利用不可のサンプルの少なくとも1つの対応する輝度サンプルは、それが利用可能であっても同様にパディングすることが必要である。
a.一例において、ミラーパディング方法を使用して、利用不可の輝度サンプルの対応するサンプルとして決定された輝度サンプルをパディングしてもよい。
b.一例において、(対応するフィルタリングサンプルのセットにおける)輝度サンプルが、利用不可のサンプルの対応するサンプルとして決定されるかどうかは、代表的な輝度サンプルに対するサンプルの距離、または/および代表的な輝度サンプルに対する利用不可のサンプルの距離に依存することもある。ここで、代表的な輝度サンプルが位置している中央の行をCで示す。K行におけるサンプルとL列のサンプルとを利用するK×Lフィルタ形状をCC-ALFにおいて使用するとする。
i.一例において、代表的な輝度サンプルは、フィルタリング対象の現在のクロマサンプルの並置された輝度サンプルとして定義される。
1)一例において、現在のクロマサンプルの並置された輝度サンプルの位置は、カラーフォーマットに依存することもある。
a)一例において、(x,y)に位置するクロマサンプルの並置された輝度サンプルは、4:2:0のクロマフォーマットにおける(2x,2y)に位置するものとして定義される。
b)一例において、(x,y)に位置するクロマサンプルの並置された輝度サンプルは、4:2:2のクロマフォーマットにおける(2x,y)に位置するものとして定義される。
c)一例において、(x,y)に位置するクロマサンプルの並置された輝度サンプルは、4:4:4のクロマフォーマットにおける(x,y)に位置するものとして定義される。
ii.一例において、この距離は、輝度サンプルを含む行と代表的な輝度サンプルを含む行との垂直距離を指してもよい。例えば、この距離は、輝度サンプルと代表的な輝度サンプルとの絶対y座標差として計算されてもよい。
1)図29に示すように、代表的な輝度サンプルが位置する中央の行、利用不可のサンプルの行、対応するサンプルの行をそれぞれC、M、Nと表しており、MとNは等しくない。d(x,y)をxとyの絶対y座標差として表しており、これは、行xと行yとの距離を意味する。
iii.一例において、ミラーパディングにおいてパディング対象の対応するサンプルの決定は、フィルタ形状によって利用されるサンプルの行数に依存することもある。
iv.一例において、利用不可のサンプルが行Mに位置している場合(例えば、M<C<NまたはM>C>N)は、d(C,M)=d(N,C)のとき、行Nに位置しているサンプルは、パディング対象の対応するサンプルであると決定される。
1)一例において、値K(例えば、K×L CC-ALFフィルタ形状)が奇数である場合、ALFのためのミラーパディング方法(例えば、図16)をCC-ALFに利用することができ、そこで、中央の輝度サンプルが代表的な輝度サンプルとして選択される。
a)一例において、K=5とし、表4-5に示す5つのサンプル行のy座標をそれぞれyM2=-2、yM1=-1、yL=0、yP1=1、yP2=2として表す。ALF仮想境界はCtbSizeY-4に等しい。
i.一例において、ALF仮想境界が代表的な輝度サンプルよりも上である場合、ALF仮想境界よりも下の最も近い行を使用して、利用不可のサンプルをパディングしてもよい。一方、対応するサンプルは、対応するサンプルが位置する行の上の最も近い行を使用してパディングしてもよい。
1.一例において、yLがCtbSizeY-3に等しく、行yM2が利用不可である場合、行yM2におけるサンプル(x,yM2)は、行yM1におけるサンプル(x,yM1)を使用してパディングしてもよい。一方、対応する行yP2のサンプル(x,yP2)は、行yP1のサンプル(x,yP1)を使用してパディングしてもよい。
2.一例において、yLがCtbSizeY-4に等しく、行yM2およびyM1が利用不可である場合、行yM2およびyM1におけるサンプル(x,yM2)および(x,yM1)は、行yLにおけるサンプル(x,yL)を使用してパディングしてもよい。一方、対応する行yP2およびyP1におけるサンプル(x,yP2)および(x,yP1)は、行yLにおけるサンプル(x,yL)を使用してパディングしてもよい。
ii.一例において、ALF仮想境界が代表的な輝度サンプルよりも下である場合、ALF仮想境界よりも上の最も近い行を使用して、利用不可のサンプルをパディングしてもよい。一方、対応するサンプルは、対応するサンプルが位置する行の下の最も近い行を使用してパディングしてもよい。
1.一例において、yLがCtbSizeY-6に等しく、行yP2が利用不可である場合、行yP2におけるサンプル(x,yP2)は、行yP1におけるサンプル(x,yP1)を使用してパディングしてもよい。一方、対応する行yM2におけるサンプル(x,yM2)は、行yM1におけるサンプル(x,yM1)を使用してパディングしてもよい。
2.一例において、yLがCtbSizeY-5に等しく、行yP2およびyP1が利用不可である場合、行yP2およびyP1におけるサンプル(x,yP2)および(x,yP1)は、行yLにおけるサンプル(x,yL)を使用してパディングしてもよい。一方、対応する行yM2およびyM1におけるサンプル(x,yM2)および(x,yM1)は、行yLにおけるサンプル(x,yL)を使用してパディングしてもよい。
2)一例において、値K(例えば、K×L CC-ALFフィルタ形状)が偶数である場合、図30に定義されたミラーパディング方法を利用してもよい。利用不可のサンプルがALF仮想境界の上(下)の行M(N)に位置している場合は、ALF仮想境界の下(上)の最も近いサンプル行からパディングされる。ALF仮想境界の下(上)の行N(M)に位置する対応するサンプルは、行N(M)の上(下)の最も近いサンプル行からパディングしてもよいことが提案される。
a)一例において、K=2とし、表4-1に示す2つのサンプル行のy座標をそれぞれyL=0、yP1=1として表す。ALF仮想境界はCtbSizeY-4に等しい。
i.一例において、ALF仮想境界が代表的な輝度サンプルよりも上である場合、ALF仮想境界よりも下の最も近い行を使用して、利用不可のサンプルをパディングしてもよい。一方、対応するサンプルは、対応するサンプルが位置する行の上の最も近い行を使用してパディングしてもよい。
1.一例において、yLがCtbSizeY-4に等しく、yLより上の行が利用不可である場合、対応する行yP1におけるサンプル(x,yP1)は、行yLにおけるサンプル(x,yL)を使用してパディングしてもよい。
ii.一例において、ALF仮想境界が代表的な輝度サンプルよりも下である場合、ALF仮想境界よりも上の最も近い行を使用して、利用不可のサンプルをパディングしてもよい。一方、対応するサンプルは、対応するサンプルが位置する行の下の最も近い行を使用してパディングしてもよい。
1.一例において、yLがCtbSizeY-5に等しく、行yP1が利用不可である場合、行yP1におけるサンプル(x,yP1)は、行yLにおけるサンプル(x,yL)を使用してパディングしてもよい。
a)一例において、K=4とし、表4-3に示す4つのサンプル行のy座標をそれぞれyM1=-1、yM1=-1、yL=0、yP1=1、yP2=2として表す。ALF仮想境界はCtbSizeY-4に等しい。
i.一例において、ALF仮想境界が代表的な輝度サンプルよりも上である場合、ALF仮想境界よりも下の最も近い行を使用して、利用不可のサンプルをパディングしてもよい。一方、対応するサンプルは、対応するサンプルが位置する行の上の最も近い行を使用してパディングしてもよい。
1.一例において、yLがCtbSizeY-3に等しく、yM1の上の行が利用不可である場合、対応する行yP2におけるサンプル(x,yP2)は、行yP1におけるサンプル(x,yP1)を使用してパディングしてもよい。
2.一例において、yLがCtbSizeY-4に等しく、yM1およびyM1の上の行が利用不可である場合、行yM1におけるサンプル(x,yM1)は、行yLにおけるサンプル(x,yL)を使用してパディングしてもよい。一方、対応する行yP2およびyP1におけるサンプル(x,yP2)および(x,yP1)は、行yLにおけるサンプル(x,yL)を使用してパディングしてもよい。
ii.一例において、ALF仮想境界が代表的な輝度サンプルよりも下である場合、ALF仮想境界よりも上の最も近い行を使用して、利用不可のサンプルをパディングしてもよい。一方、対応するサンプルは、対応するサンプルが位置する行の下の最も近い行を使用してパディングしてもよい。
1.一例において、yLがCtbSizeY-6に等しく、行yP2が利用不可である場合、行yP2におけるサンプル(x,yP2)は、行yP1におけるサンプル(x,yP1)を使用してパディングしてもよい。
2.一例において、yLがCtbSizeY-5に等しく、行yP2およびyP1が利用不可である場合、行yP2およびyP1におけるサンプル(x,yP2)および(x,yP1)は、行yLにおけるサンプル(x,yL)を使用してパディングしてもよい。一方、対応する行yM1のサンプル(x,yM1)は、行yLのサンプル(x,yL)を使用してパディングしてもよい。
c)一例において、K=6であり、yM2=-2、yM1=-1、yL=0、yP1=1、yP2=2、yP3=3をそれぞれ表4-6に示す6つのサンプル行のy座標として表す。ALF仮想境界はCtbSizeY-4に等しい。
i.一例において、ALF仮想境界が代表的な輝度サンプルよりも上である場合、ALF仮想境界よりも下の最も近い行を使用して、利用不可のサンプルをパディングしてもよい。一方、対応するサンプルは、対応するサンプルが位置する行の上の最も近い行を使用してパディングしてもよい。
1.一例において、yLがCtbSizeY-2に等しく、yM2の上の行が利用不可である場合、対応する行yP3におけるサンプル(x,yP3)は、行yP2におけるサンプル(x,yP2)を使用してパディングしてもよい。
2.一例において、yLがCtbSizeY-3に等しく、yM2およびyM2の上の行が利用不可である場合、行yM2におけるサンプル(x,yM2)は、行yM1におけるサンプル(x,yM1)を使用してパディングしてもよい。一方、対応する行yP3およびyP2におけるサンプル(x,yP3)および(x,yP2)は、行yP1におけるサンプル(x,yP1)を使用してパディングしてもよい。
3.一例において、yLがCtbSizeY-4に等しく、yM2の上の行、yM2、およびyM1が利用不可である場合、行yM2およびyM1におけるサンプル(x、yM2)および(x、yM1)は、行yLにおけるサンプル(x、yL)を使用してパディングしてもよい。一方、対応する行yP3、yP2、yP1におけるサンプル(x、yP3)、(x、yP2)、および(x、yP1)は、行yLにおけるサンプル(x、yL)を使用してパディングしてもよい。
ii.一例において、ALF仮想境界が代表的な輝度サンプルよりも下である場合、ALF仮想境界よりも上の最も近い行を使用して、利用不可のサンプルをパディングしてもよい。一方、対応するサンプルは、対応するサンプルが位置する行の下の最も近い行を使用してパディングしてもよい。
1.一例において、yLがCtbSizeY-7に等しく、行yP3が利用不可である場合、行yP3におけるサンプル(x,yP3)は、行yP2におけるサンプル(x,yP2)を使用してパディングしてもよい。
2.一例において、yLがCtbSizeY-6に等しく、行yP3およびyP2が利用不可である場合、行yP3およびyP2におけるサンプル(x,yP3)および(x,yP2)は、その行におけるサンプル(x,yP1)を使用してパディングしてもよい。一方、対応する行yM2におけるサンプル(x,yM2)は、行yM1におけるサンプル(x,yM1)を使用してパディングしてもよい。
3.一例において、yLがCtbSizeY-5に等しく、行yP3、yP2、yP1が利用不可である場合、行yP3、yP2、yP1におけるサンプル(x、yP3)、(x、yP2)、(x、yP1)は、行yLにおけるサンプル(x、yL)を使用してパディングしてもよい。一方、対応する行yM2およびyM1におけるサンプル(x,yM2)および(x,yM1)は、その行におけるサンプル(x,yL)を使用してパディングしてもよい。
v.一例において、利用不可のサンプルが行Mに位置している場合(例えば、M<C)は、d(C,M)=d(N,C)-offset(offsetは整数値、例えば、1)またはd(C,M)<d(N,C)のとき、行Nに位置しているサンプルは、パディング対象の対応するサンプルであると決定される。
1)一例において、利用不可のサンプルが行Mに位置している場合(例えば、M<C)は、d(C,M)=d(N,C)-offset(offsetは整数値、例えば、1)またはd(C,M)<d(N,C)のとき、行Nに位置しているサンプルは、パディング対象の対応するサンプルとして取り扱われる。
2)一例において、図31に定義されたミラーパディング方法を利用することができる。利用不可のサンプルがALF仮想境界の上(下)の行M(N)に位置している場合は、ALF仮想境界の下(上)の最も近いサンプル行からパディングされる。ALF仮想境界の下(上)の行N(M)に位置する対応するサンプルは、行N(M)の上(下)の最も近いサンプル行からパディングしてもよいことが提案される。
a)一例において、K=2とし、表4-2に示す2つのサンプル行のy座標をそれぞれyL=0、yP1=1として表す。ALF仮想境界はCtbSizeY-4に等しい。
i.一例において、ALF仮想境界が代表的な輝度サンプルよりも下である場合、ALF仮想境界よりも上の最も近い行を使用して、利用不可のサンプルをパディングしてもよい。一方、対応するサンプルは、対応するサンプルが位置する行の下の最も近い行を使用してパディングしてもよい。
1.一例において、yLがCtbSizeY-5に等しく、行yP1が利用不可である場合、行yP1におけるサンプル(x,yP1)は、行yLにおけるサンプル(x,yL)を使用してパディングしてもよい。
a)一例において、K=4とし、表4-4に示す4つのサンプル行のy座標をそれぞれyM1=-1、yL=0、yP1=1、yP2=2として表す。ALF仮想境界はCtbSizeY-4に等しい。
i.一例において、ALF仮想境界が代表的な輝度サンプルよりも上である場合、ALF仮想境界よりも下の最も近い行を使用して、利用不可のサンプルをパディングしてもよい。一方、対応するサンプルは、対応するサンプルが位置する行の上の最も近い行を使用してパディングしてもよい。
1.一例において、yLがCtbSizeY-4に等しく、yM1およびyM1の上の行が利用不可である場合、行yM1におけるサンプル(x,yM1)は、行yLにおけるサンプル(x,yL)を使用してパディングしてもよい。一方、対応する行yP2のサンプル(x,yP2)は、行yP1のサンプル(x,yP1)を使用してパディングしてもよい。
ii.一例において、ALF仮想境界が代表的な輝度サンプルよりも下である場合、ALF仮想境界よりも上の最も近い行を使用して、利用不可のサンプルをパディングしてもよい。一方、対応するサンプルは、対応するサンプルが位置する行の下の最も近い行を使用してパディングしてもよい。
1.一例において、yLがCtbSizeY-6に等しく、行yP2が利用不可である場合、行yP2におけるサンプル(x,yP2)は、行yP1におけるサンプル(x,yP1)を使用してパディングしてもよい。
2.一例において、yLがCtbSizeY-5に等しく、行yP2およびyP1が利用不可である場合、行yP2およびyP1におけるサンプル(x,yP2)および(x,yP1)は、行yLにおけるサンプル(x,yL)を使用してパディングしてもよい。一方、対応する行yM1のサンプル(x,yM1)は、行yLのサンプル(x,yL)を使用してパディングしてもよい。
c)一例において、K=6であり、yM2=-2、yM1=-1、yL=0、yP1=1、yP2=2、yP3=3をそれぞれ表4-7に示す6つのサンプル行のy座標として表す。ALF仮想境界はCtbSizeY-4に等しい。
i.一例において、ALF仮想境界が代表的な輝度サンプルよりも上である場合、ALF仮想境界よりも下の最も近い行を使用して、利用不可のサンプルをパディングしてもよい。一方、対応するサンプルは、対応するサンプルが位置する行の上の最も近い行を使用してパディングしてもよい。
1.一例において、yLがCtbSizeY-3に等しく、yM2およびyM2の上の行が利用不可である場合、行yM2におけるサンプル(x,yM2)は、行yM1におけるサンプル(x,yM1)を使用してパディングしてもよい。一方、対応する行yP3のサンプル(x,yP3)は、行yP2のサンプル(x,yP2)を使用してパディングしてもよい。
2.一例において、yLがCtbSizeY-4に等しく、yM2の上の行、yM2、およびyM1が利用不可である場合、行yM2およびyM1におけるサンプル(x、yM2)および(x、yM1)は、行yLにおけるサンプル(x、yL)を使用してパディングしてもよい。一方、対応する行yP3およびyP2におけるサンプル(x,yP3)および(x,yP2)は、行yP1におけるサンプル(x,yP1)を使用してパディングしてもよい。
ii.一例において、ALF仮想境界が代表的な輝度サンプルよりも下である場合、ALF仮想境界よりも上の最も近い行を使用して、利用不可のサンプルをパディングしてもよい。一方、対応するサンプルは、対応するサンプルが位置する行の下の最も近い行を使用してパディングしてもよい。
1.一例において、yLがCtbSizeY-7に等しく、行yP3が利用不可である場合、行yP3におけるサンプル(x,yP3)は、行yP2におけるサンプル(x,yP2)を使用してパディングしてもよい。一方、対応する行yM2におけるサンプル(x,yM2)は、行yM1におけるサンプル(x,yM1)を使用してパディングしてもよい。
2.一例において、yLがCtbSizeY-6に等しく、行yP3およびyP2が利用不可である場合、行yP3およびyP2におけるサンプル(x,yP3)および(x,yP2)は、行yP1におけるサンプル(x,yP1)を使用してパディングしてもよい。一方、対応する行yM2およびyM1におけるサンプル(x,yM2)および(x,yM1)は、行yLにおけるサンプル(x,yL)を使用してパディングしてもよい。
3.一例において、yLがCtbSizeY-5に等しく、行yP3、yP2、yP1が利用不可である場合、行yP3、yP2、yP1におけるサンプル(x、yP3)、(x、yP2)、(x、yP1)は、yLにおけるサンプル(x、yL)を使用してパディングしてもよい。一方、対応する行yM2およびyM1におけるサンプル(x,yM2)および(x,yM1)は、行yLにおけるサンプル(x,yL)を使用してパディングしてもよい。
c.図29は、(X,Y)に位置する現在のクロマサンプルをフィルタリングするときの、(ALF仮想境界の上、C0で表される)利用不可のサンプルの位置およびその対応するサンプル(C7で表される)の例を示す。
d.一例において、CC-ALF/クロマALF/輝度ALF/他の種類のフィルタリング方法のために、ALF仮想境界における鏡面パディングを有効化するかまたは無効化するかは、例えば、シーケンスヘッダ/ピクチャヘッダ/SPS/VPS/DPS/PPS/APS/スライスヘッダ/タイルグループヘッダのようなシーケンスレベル/ピクチャレベル/スライスレベル/タイルグループレベルで信号通知してもよい。
e.一例において、ALF仮想境界における反復パディングおよび/またはミラーパディングを有効化または無効化するかどうかは、コーディング情報に依存することもある。
i.一例において、コーディング情報は、CTU/CTBサイズ等のブロックサイズを指すこともある。
1)一例において、CTU/CTBのサイズがTよりも大きいまたはTに等しい場合、例えばT=32/64/128である場合、ALF仮想境界においてミラーパディングを利用してもよい。
2)一例において、CTU/CTBのサイズがT以下である場合、例えばT=4/8/16である場合、ALF仮想境界において反復パディングを利用してもよい。
2.上記黒丸において、垂直方向のパディングは水平方向のパディングに置き換えられてもよい。
a.さらに代替的に、どのパディング方向(垂直または水平)を使用するかどうかは、境界が水平境界であるか垂直境界であるかに依存してもよい。
b.さらに代替的に、垂直距離を水平距離に置き換えてもよい。
3.黒丸1におけるミラーパディング方法は、ピクチャ/サブピクチャ/スライス/タイル境界および/または360度の境界に利用されてもよい。
一般的な解決策
4.上記開示された方法を適用するかどうかおよび/またはどのように適用するかは、例えば、シーケンスヘッダ/ピクチャヘッダ/SPS/VPS/DPS/PPS/APS/スライスヘッダ/タイルグループヘッダにおいて、シーケンスレベル/ピクチャレベル/スライスレベル/タイルグループレベルで信号通知してもよい。
5.上述した開示された方法を適用するかどうか、および/またはどのように適用するかは、カラーフォーマット、シングル/デュアルツリー分割、サンプルの位置(例えば、CU/CTUに対して)等のコーディング情報に依存してもよい。
【0159】
【表12】
【0160】
【表13】
【0161】
【表14】
【0162】
【表15】
【0163】
【表16】
【0164】
【表17】
【0165】
【表18】
【0166】
5.実施形態
変更は削除と追加を示すことで強調される。
【0167】
5.1.実施形態#1
JVET-P0080で規定される作業草案は、次のように変更することができる。
x.x.x.x クロマサンプルのブロックのためのクロス成分フィルタリング処理
この処理の入力は以下の通りである。
-輝度適応ループフィルタリング処理の前に再構成された輝度ピクチャサンプルアレイrecPicture
-フィルタリングされた再構成クロマピクチャサンプルアレイalfPicture
-現在のピクチャの左上のサンプルに対するクロマサンプルの現在のブロックの左上のサンプルを規定する位置(xC,yC)
-クロマサンプルのブロックの幅ccAlfWidth
-クロマサンプルのブロックの高さccAlfheight
-j=0..13であるクロス成分フィルタ係数CcAlfCoeff[j]
この処理の出力は、修正され、フィルタリングされ、再構成されたクロマピクチャサンプルアレイccAlfPictureである。
コーディングツリーブロック輝度位置(xCtb,yCtb)は、以下のように導出される。
xCtb=(((xC*SubWidthC)>>CtbLog2SizeY)<<CtbLog2SizeY (8-1229)
yCtb=(((yC*SubHeightC)>>CtbLog2SizeY)<<CtbLog2SizeY (8-1229)
フィルタリングされた再構成クロマサンプルccAlfPicture[xC+x][yC+y]を導出するために、サンプルalfPicture[xC+x][yC+y](但し、x=0..ccAlfWidth-1,y=0..ccAlfHeight-1)の現在のクロマブロック内部の各々の再構成されたクロマサンプルは、以下のようにフィルタリングされる。
-クロマ位置(xC+x,yC+y)における現在のクロマサンプルに対応する輝度位置(xL,yL)は、((xC+x)*SubWidthC,(yC+y)*SubHeightC)に等しく設定される。
-i=-2..2,j=-2..3の場合、配列recPicture内の輝度位置(hxL+i,vyL+j)は、以下のように導出される。
-pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosX[n]%CtbSizeYが0に等しくなく、且つ、n=0..pps_num_ver_virtual_boundaries-1においてxL-PpsVirtualBoundariesPosX[n]が0以上3未満である場合、以下が適用される。
xL+i=Clip3(PpsVirtualBoundariesPosX[n],pic_width_in_luma_samples-1,xL+i) (8-1229)
-あるいは、pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosX[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_ver_virtual_boundaries-1においてPpsVirtualBoundariesPosX[n]が0より大きく4未満である場合、以下が適用される。
x+i=Clip3(0,PpsVirtualBoundariesPosX[n]-1,xL+i) (8-1230)
-そうでない場合、以下が適用される。
x+i=Clip3(0,pic_width_in_luma_samples-1,xL+i) (8-1231)
-pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosY[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_hor_virtual_boundaries-1においてyL-PpsVirtualBoundariesPosY[n]が0以上3未満である場合、以下が適用される。
y+j=Clip3(PpsVirtualBoundariesPosY[n],pic_height_in_luma_samples-1,yL+j) (8-1232)
-あるいは、pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosY[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_hor_virtual_boundaries-1においてPpsVirtualBoundariesPosY[n]-yLが0より大きく4未満である場合、以下が適用される。
y+j=Clip3(0,PpsVirtualBoundariesPosY[n]-1,yL+j) (8-1233)
-そうでない場合、以下が適用される。
y+j=Clip3(0,pic_height_in_luma_samples-1,yL+j) (8-1234)
-変数clipLeftPos、clipRightPos、clipTopPos、およびclipBottomPosは、(xCtb,yCtb)および(xL-xCtb,yL-yCtb)を入力として、8.8.5.5項で規定されるように、ALF境界位置導出処理を呼び出すことによって導出される。
-表4-1に、垂直方向のサンプルの位置のオフセットyM2、yM1、yP1、yP2、yP3を規定している。垂直方向の輝度サンプルの位置yLおよびapplyAlfLineBundaryに応じたyP1の規定
【0168】
【表19】
【0169】
【表20】
【0170】
-垂直方向の輝度サンプルの位置yL,clipLeftPos,clipRightPosに応じる
-水平方向の輝度サンプルの位置xL、clipLeftPos、およびclipRightPosに応じた水平方向のサンプルの位置のオフセットxM1、xM2、xP1、およびxP2が、表y-yyyyで規定される。
-変数currは、以下のように導出される。
curr=alfPicture[xC+x,yC+y] (8-1286)
-クロス成分フィルタ係数f[j]のアレイは、j=0..13として以下のように導出される。
f[j]=CcAlfCoeff[j] (8-1287)
-変数sumは、以下のように導出される。
sum=f[0]*recPicture[h,vy+yM2]+
f[1]*recPicture[hx+xM1,vy+yM1]+
f[2]*recPicture[h,vy+yM1]+
f[3]*recPicture[hx+xP1,vy+yM1]+
f[4]*recPicture[hx+xM2,v]+
f[5]*recPicture[hx+xM1,v]+
f[6]*recPicture[h,v]+
f[7]*recPicture[hx+xP1,v]+
f[4]*recPicture[hx+xP2,v]+ (8-1289)
f[4]*recPicture[hx+xM2,vy+yP1]+
f[8]*recPicture[hx+xM1,vy+yP1]+
f[9]*recPicture[h,vy+yP1]+
f[10]*recPicture[hx+xP1,vy+yP1]+
f[4]*recPicture[hx+xP2,vy+yP1]+
f[11]*recPicture[hx+xM1,vy+yP2]+
f[12]*recPicture[h,vy+yP2]+
f[13]*recPicture[hx+xP1,vy+yP2]+
f[0]*recPicture[h,vy+yP3]+
sum=curr+(sum+64)>>7) (8-1290)
-修正されフィルタリングされた再構成クロマピクチャサンプルアレイccAlfPicture[xC+x][yC+y]は、以下のように導出される。
ccAlfPicture[xC+x][yC+y]=Clip3(0,(1<<BitDepth)-1,sum) (8-1291)
表x-xx -垂直方向の輝度サンプルの位置yL、clipTopPos、clipBottomPosに応じたyM1、yM2、yP1、yP2、yP3の規定
【0171】
【表21】
【0172】
【表22】
【0173】
【表23】
【0174】
5.2.実施形態♯2
JVET-P0080で規定される作業草案は、次のように変更することができる。
x.x.x.x クロマサンプルのブロックのためのクロス成分フィルタリング処理
この処理の入力は以下の通りである。
-輝度適応ループフィルタリング処理の前に再構成された輝度ピクチャサンプルアレイrecPicture
-フィルタリングされた再構成クロマピクチャサンプルアレイalfPicture
-現在のピクチャの左上のサンプルに対するクロマサンプルの現在のブロックの左上のサンプルを規定する位置(xC,yC)
-クロマサンプルのブロックの幅ccAlfWidth
-クロマサンプルのブロックの高さccAlfheight
-j=0..13であるクロス成分フィルタ係数CcAlfCoeff[j]
この処理の出力は、修正され、フィルタリングされ、再構成されたクロマピクチャサンプルアレイccAlfPictureである。
コーディングツリーブロック輝度位置(xCtb,yCtb)は、以下のように導出される。
xCtb=(((xC*SubWidthC)>>CtbLog2SizeY)<<CtbLog2SizeY (8-1229)
yCtb=(((yC*SubHeightC)>>CtbLog2SizeY)<<CtbLog2SizeY (8-1229)
フィルタリングされた再構成クロマサンプルccAlfPicture[xC+x][yC+y]を導出するために、サンプルalfPicture[xC+x][yC+y](但し、x=0..ccAlfWidth-1,y=0..ccAlfHeight-1)の現在のクロマブロック内部の各々の再構成されたクロマサンプルは、以下のようにフィルタリングされる。
-クロマ位置(xC+x,yC+y)における現在のクロマサンプルに対応する輝度位置(xL,yL)は、((xC+x)*SubWidthC,(yC+y)*SubHeightC)に等しく設定される。
-i=-2..2,j=-2..3の場合、配列recPicture内の輝度位置(hxL+i,vyL+j)は、以下のように導出される。
-pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosX[n]%CtbSizeYが0に等しくなく、且つ、n=0..pps_num_ver_virtual_boundaries-1においてxL-PpsVirtualBoundariesPosX[n]が0以上3未満である場合、以下が適用される。
xL+i=Clip3(PpsVirtualBoundariesPosX[n],pic_width_in_luma_samples-1,xL+i) (8-1229)
-あるいは、pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosX[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_ver_virtual_boundaries-1においてPpsVirtualBoundariesPosX[n]が0より大きく4未満である場合、以下が適用される。
x+i=Clip3(0,PpsVirtualBoundariesPosX[n]-1,xL+i) (8-1230)
-そうでない場合、以下が適用される。
x+i=Clip3(0,pic_width_in_luma_samples-1,xL+i) (8-1231)
-pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosY[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_hor_virtual_boundaries-1においてyL-PpsVirtualBoundariesPosY[n]が0以上3未満である場合、以下が適用される。
y+j=Clip3(PpsVirtualBoundariesPosY[n],pic_height_in_luma_samples-1,yL+j) (8-1232)
-あるいは、pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosY[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_hor_virtual_boundaries-1においてPpsVirtualBoundariesPosY[n]-yLが0より大きく4未満である場合、以下が適用される。
y+j=Clip3(0,PpsVirtualBoundariesPosY[n]-1,yL+j) (8-1233)
-そうでない場合、以下が適用される。
y+j=Clip3(0,pic_height_in_luma_samples-1,yL+j) (8-1234)
-変数clipLeftPos、clipRightPos、clipTopPos、およびclipBottomPosは、(xCtb,yCtb)および(xL-xCtb,yL-yCtb)を入力として、8.8.5.5項で規定されるように、ALF境界位置導出処理を呼び出すことによって導出される。
-表4-1に、垂直方向のサンプルの位置のオフセットyM2、yM1、yP1、yP2、yP3を規定している。垂直方向の輝度サンプルの位置yLおよびapplyAlfLineBundaryに応じたyP1の規定
【0175】
【表24】
【0176】
【表25】
【0177】
-垂直方向の輝度サンプルの位置yL,clipLeftPos,clipRightPosに応じる
-水平方向の輝度サンプルの位置xL、clipLeftPos、およびclipRightPosに応じた水平方向のサンプルの位置のオフセットxM1、xM2、xP1、およびxP2が、表y-yyyyで規定される。
変数currは、以下のように導出される。
curr=alfPicture[xC+x,yC+y] (8-1286)
-クロス成分フィルタ係数f[j]のアレイは、j=0..13として以下のように導出される。
f[j]=CcAlfCoeff[j] (8-1287)
変数sumは、以下のように導出される。
sum=f[0]*recPicture[h,vy+yM2]+
f[1]*recPicture[hx+xM1,vy+yM1]+
f[2]*recPicture[h,vy+yM1]+
f[3]*recPicture[hx+xP1,vy+yM1]+
f[4]*recPicture[hx+xM2,v]+
f[5]*recPicture[hx+xM1,v]+
f[6]*recPicture[h,v]+
f[7]*recPicture[hx+xP1,v]+
f[4]*recPicture[hx+xP2,v]+ (8-1289)
f[4]*recPicture[hx+xM2,vy+yP1]+
f[8]*recPicture[hx+xM1,vy+yP1]+
f[9]*recPicture[h,vy+yP1]+
f[10]*recPicture[hx+xP1,vy+yP1]+
f[4]*recPicture[hx+xP2,vy+yP1]+
f[11]*recPicture[hx+xM1,vy+yP2]+
f[12]*recPicture[h,vy+yP2]+
f[13]*recPicture[hx+xP1,vy+yP2]+
f[0]*recPicture[h,vy+yP3]+
sum=curr+(sum+64)>>7) (8-1290)
-修正されフィルタリングされた再構成クロマピクチャサンプルアレイccAlfPicture[xC+x][yC+y]は、以下のように導出される。
ccAlfPicture[xC+x][yC+y]=Clip3(0,(1<<BitDepth)-1,sum) (8-1291)
表x-xx-垂直方向の輝度サンプルの位置yL、clipTopPos、clipBottomPosに応じたyM1、yM2、yP1、yP2、yP3の規定
【0178】
【表26】
【0179】
【表27】
【0180】
【表28】
【0181】
5.3. 実施形態#3
JVET-P1008で規定される作業草案は、次のように変更することができる。
x.x.x.xクロマサンプルのブロックのためのクロス成分フィルタリング処理
この処理の入力は以下の通りである。
-輝度適応ループフィルタリング処理の前に再構成された輝度ピクチャサンプルアレイrecPicture
-フィルタリングされた再構成クロマピクチャサンプルアレイalfPicture
-現在のピクチャの左上のサンプルに対する現在のクロマコーディングツリーブロックの左上のサンプルを規定するクロマ位置(xCtbC,yCtbC)
-クロマサンプルのブロックの幅ccAlfWidth
-クロマサンプルのブロックの高さccAlfheight
-j=0..7であるクロス成分フィルタ係数CcAlfCoeff[j]
この処理の出力は、修正され、フィルタリングされ、再構成されたクロマピクチャサンプルアレイccAlfPictureである。
コーディングツリーブロック輝度位置(xCtb,yCtb)は、以下のように導出される。
xCtb=(((xCtbC*SubWidthC)>>CtbLog2SizeY)<<CtbLog2SizeY (8-1229)
yCtb=(((yCtbC*SubHeightC)>>CtbLog2SizeY)<<CtbLog2SizeY (8-1229)
フィルタリングされた再構成クロマサンプルccAlfPicture[xCtbC+x][yCtbC+y]を導出するために、サンプルalfPicture[xCtbC+x][yCtbC+y](但し、x=0..ccAlfWidth-1,y=0..ccAlfHeight-1)の現在のクロマブロック内部の各々の再構成されたクロマサンプルは、以下のようにフィルタリングされる。
-クロマ位置(xCtbC+x,yCtbC+y)における現在のクロマサンプルに対応する輝度位置(xL,yL)は、((xCtbC+x)*SubWidthC,(yCtbC+y)*SubHeightC)に等しく設定される。
配列recPicture内の、-i=-1..1,j=-1..2の場合の輝度位置(hxL+i,vyL+j)は、以下のように導出される。
-pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosX[n]%CtbSizeYが0に等しくなく、且つ、n=0..pps_num_ver_virtual_boundaries-1においてxL-PpsVirtualBoundariesPosX[n]が0以上3未満である場合、以下が適用される。
xL+i=Clip3(PpsVirtualBoundariesPosX[n],pic_width_in_luma_samples-1,xL+i) (8-1229)
-あるいは、pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosX[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_ver_virtual_boundaries-1においてPpsVirtualBoundariesPosX[n]が0より大きく4未満である場合、以下が適用される。
x+i=Clip3(0,PpsVirtualBoundariesPosX[n]-1,xL+i) (8-1230)
-そうでない場合、以下が適用される。
x+i=Clip3(0,pic_width_in_luma_samples-1,xL+i) (8-1231)
-pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosY[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_hor_virtual_boundaries-1においてyL-PpsVirtualBoundariesPosY[n]が0以上3未満である場合、以下が適用される。
y+j=Clip3(PpsVirtualBoundariesPosY[n],pic_height_in_luma_samples-1,yL+j) (8-1232)
-あるいは、pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosY[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_hor_virtual_boundaries-1においてPpsVirtualBoundariesPosY[n]-yLが0より大きく4未満である場合、以下が適用される。
y+j=Clip3(0,PpsVirtualBoundariesPosY[n]-1,yL+j) (8-1233)
-そうでない場合、以下が適用される。
y+j=Clip3(0,pic_height_in_luma_samples-1,yL+j) (8-1234)
-変数clipLeftPos、clipRightPos、clipTopPos、およびclipBottomPosは、(xCtb,yCtb)および(xL-xCtb,yL-yCtb)を入力として、8.8.5.5項で規定されるように、ALF境界位置導出処理を呼び出すことによって導出される。
-表4-1に、垂直方向のサンプルの位置のオフセットyM1、yP1、yP2を規定している。垂直方向の輝度サンプルの位置yLおよびapplyAlfLineBundaryに応じたyP1の規定
【0182】
【表29】
【0183】
【表30】
【0184】
-垂直方向の輝度サンプルの位置yL,clipLeftPos,clipRightPosに応じる
-水平方向の輝度サンプルの位置xL、clipLeftPos、およびclipRightPosに応じた水平サンプル位置オフセットxM1およびxP1を表y-yyyyで規定する。
-変数currは、以下のように導出される。
curr=alfPicture[xCtbC+x,yCtbC+y] (8-1286)
-クロス成分フィルタ係数f[j]のアレイは、j=0..7の場合、以下のように導出される。
f[j]=CcAlfCoeff[j] (8-1287)
-変数sumは、以下のように導出される。
sum=f[0]*recPicture[h,vy+yM1]+
f[1]*recPicture[hx+xM1,v]+
f[2]*recPicture[h,v]+
f[3]*recPicture[hx+xP1,v]+ (8-1289)
f[4]*recPicture[hx+xM1,vy+yP1]+
f[5]*recPicture[h,vy+yP1]+
f[6]*recPicture[hx+xP1,vy+yP1]+
f[7]*recPicture[h,vy+yP2
sum=Clip3(-(1<<(BitDepth-1)),(1<<(BitDepth-1))-1,sum) (8-1290)
sum=curr+(sum+64)>>(7+(BitDepth-BitDepth)) (8-1290)
-修正されフィルタリングされた再構成クロマピクチャサンプルアレイccAlfPicture[xCtbC+x][yCtbC+y]は、以下のように導出される。
ccAlfPicture[xCtbC+x][yCtbC+y]=Clip3(0,(1<<BitDepth)-1,sum) (8-1291)
表x-xx -垂直方向の輝度サンプルの位置yL、clipTopPos、clipBottomPosに応じたyM1、yP1、yP2の規定
【0185】
【表31】
【0186】
【表32】
【0187】
【表33】
【0188】
5.4.実施形態#4
JVET-P1008で規定される作業草案は、次のように変更することができる。
x.x.x.x クロマサンプルのブロックのためのクロス成分フィルタリング処理
この処理の入力は以下の通りである。
-輝度適応ループフィルタリング処理の前に再構成された輝度ピクチャサンプルアレイrecPicture
-フィルタリングされた再構成クロマピクチャサンプルアレイalfPicture
-現在のピクチャの左上のサンプルに対する現在のクロマコーディングツリーブロックの左上のサンプルを規定するクロマ位置(xCtbC,yCtbC)
-クロマサンプルのブロックの幅ccAlfWidth
-クロマサンプルのブロックの高さccAlfheight
-j=0..7であるクロス成分フィルタ係数CcAlfCoeff[j]
この処理の出力は、修正され、フィルタリングされ、再構成されたクロマピクチャサンプルアレイccAlfPictureである。
コーディングツリーブロック輝度位置(xCtb,yCtb)は、以下のように導出される。
xCtb=(((xCtbC*SubWidthC)>>CtbLog2SizeY)<<CtbLog2SizeY (8-1229)
yCtb=(((yCtbC*SubHeightC)>>CtbLog2SizeY)<<CtbLog2SizeY (8-1229)
フィルタリングされた再構成クロマサンプルccAlfPicture[xCtbC+x][yCtbC+y]を導出するために、サンプルalfPicture[xCtbC+x][yCtbC+y](但し、x=0..ccAlfWidth-1,y=0..ccAlfHeight-1)の現在のクロマブロック内部の各々の再構成されたクロマサンプルは、以下のようにフィルタリングされる。
-クロマ位置(xCtbC+x,yCtbC+y)における現在のクロマサンプルに対応する輝度位置(xL,yL)は、((xCtbC+x)*SubWidthC,(yCtbC+y)*SubHeightC)に等しく設定される。
-配列recPicture内の、-i=-1..1,j=-1..2の場合の輝度位置(hxL+i,vyL+j)は、以下のように導出される。
-pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosX[n]%CtbSizeYが0に等しくなく、且つ、n=0..pps_num_ver_virtual_boundaries-1においてxL-PpsVirtualBoundariesPosX[n]が0以上3未満である場合、以下が適用される。
xL+i=Clip3(PpsVirtualBoundariesPosX[n],pic_width_in_luma_samples-1,xL+i) (8-1229)
-あるいは、pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosX[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_ver_virtual_boundaries-1においてPpsVirtualBoundariesPosX[n]が0より大きく4未満である場合、以下が適用される。
x+i=Clip3(0,PpsVirtualBoundariesPosX[n]-1,xL+i) (8-1230)
-そうでない場合、以下が適用される。
x+i=Clip3(0,pic_width_in_luma_samples-1,xL+i) (8-1231)
-pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosY[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_hor_virtual_boundaries-1においてyL-PpsVirtualBoundariesPosY[n]が0以上3未満である場合、以下が適用される。
y+j=Clip3(PpsVirtualBoundariesPosY[n],pic_height_in_luma_samples-1,yL+j) (8-1232)
-あるいは、pps_loop_filter_across_virtual_boundaries_disabled_flagが1に等しく、PpsVirtualBoundariesPosY[n]%CtbSizeYが0に等しくなく、且つn=0..pps_num_hor_virtual_boundaries-1においてPpsVirtualBoundariesPosY[n]-yLが0より大きく4未満である場合、以下が適用される。
y+j=Clip3(0,PpsVirtualBoundariesPosY[n]-1,yL+j) (8-1233)
-そうでない場合、以下が適用される。
y+j=Clip3(0,pic_height_in_luma_samples-1,yL+j) (8-1234)
-変数clipLeftPos、clipRightPos、clipTopPos、およびclipBottomPosは、(xCtb,yCtb)および(xL-xCtb,yL-yCtb)を入力として、8.8.5.5項で規定されるように、ALF境界位置導出処理を呼び出すことによって導出される。
-表4-1に、垂直方向のサンプルの位置のオフセットyM1、yP1、yP2を規定している。垂直方向の輝度サンプルの位置yLおよびapplyAlfLineBundaryに応じたyP1の規定
【0189】
【表34】
【0190】
【表35】
【0191】
-垂直方向の輝度サンプルの位置yL,clipLeftPos,clipRightPosに応じる
-水平方向の輝度サンプルの位置xL、clipLeftPos、およびclipRightPosに応じた水平サンプル位置オフセットxM1およびxP1を表y-yyyyで規定する。
-変数currは、以下のように導出される。
curr=alfPicture[xCtbC+x,yCtbC+y] (8-1286)
-クロス成分フィルタ係数f[j]のアレイは、j=0..7の場合、以下のように導出される。
f[j]=CcAlfCoeff[j] (8-1287)
-変数sumは、以下のように導出される。
sum= f[0]*recPicture[h,vy+yM1]+
f[1]*recPicture[hx+xM1,v]+
f[2]*recPicture[h,v]+
f[3]*recPicture[hx+xP1,v]+ (8-1289)
f[4]*recPicture[hx+xM1,vy+yP1]+
f[5]*recPicture[h,vy+yP1]+
f[6]*recPicture[hx+xP1,vy+yP1]+
f[7]*recPicture[h,vy+yP2
sum=Clip3(-(1<<(BitDepth-1)),(1<<(BitDepth-1))-1,sum) (8-1290)
sum=curr+(sum+64)>>(7+(BitDepth-BitDepth)) (8-1290)
-修正されフィルタリングされた再構成クロマピクチャサンプルアレイccAlfPicture[xCtbC+x][yCtbC+y]は、以下のように導出される。
ccAlfPicture[xCtbC+x][yCtbC+y]=Clip3(0,(1<<BitDepth)-1,sum) (8-1291)
表x-xx -垂直方向の輝度サンプルの位置yL、clipTopPos、clipBottomPosに応じたyM1、yP1、yP2の規定
【0192】
【表36】
【0193】
【表37】
【0194】
【表38】
【0195】
図32は、本明細書で開示される様々な技術が実装され得る例示的な映像処理システム1900を示すブロック図である。様々な実装形態は、システム1900のコンポーネントの一部又は全部を含んでもよい。システム1900は、映像コンテンツを受信するための入力ユニット1902を含んでもよい。映像コンテンツは、未加工又は非圧縮フォーマット、例えば、8又は10ビットのマルチコンポーネント画素値で受信されてもよく、又は圧縮又は符号化フォーマットで受信されてもよい。入力ユニット1902は、ネットワークインターフェース、周辺バスインターフェース、又は記憶インターフェースを表してもよい。ネットワークインターフェースの例は、イーサネット(登録商標)、パッシブ光ネットワーク(PON)等の有線インターフェース、およびWi-Fi(登録商標)またはセルラーインターフェース等の無線インターフェースを含む。
【0196】
システム1900は、本明細書に記載される様々なコーディング又は符号化方法を実装することができるコーディングコンポーネント1904を含んでもよい。コーディングコンポーネント1904は、入力ユニット1902からの映像の平均ビットレートをコーディングコンポーネント1904の出力に低減し、映像の符号化表現を生成してもよい。従って、このコーディング技術は、映像圧縮または映像トランスコーディング技術と呼ばれることがある。コーディングコンポーネント1904の出力は、コンポーネント1906によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力ユニット1902において受信された、記憶された又は通信された映像のビットストリーム(又は符号化)表現は、コンポーネント1908によって使用されて、表示インターフェース1910に送信される画素値又は表示可能な映像を生成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理は、映像伸張(映像展開)と呼ばれることがある。さらに、特定の映像処理操作を「コーディング」操作又はツールと呼ぶが、符号化ツール又は操作は、エンコーダで使用され、符号化の結果を逆にする、それに対応する復号ツール又は操作は、デコーダによって行われることが理解されよう。
【0197】
周辺バスインターフェースまたは表示インターフェースの例は、ユニバーサルシリアルバス(USB)または高精細マルチメディアインターフェース(HDMI(登録商標))またはディスプレイポート等を含んでもよい。ストレージインターフェースの例は、シリアルアドバンスドテクノロジーアタッチメント(SATA)、PCI、IDEインターフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、又はデジタルデータ処理及び/又は映像表示を実施可能な他のデバイス等の様々な電子デバイスに実施されてもよい。
【0198】
図33は、映像処理装置3600のブロック図である。装置3600は、本明細書に記載の方法の1つ以上を実装するために使用してもよい。装置3600は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機等に実施されてもよい。装置3600は、1つ以上のプロセッサ3602と、1つ以上のメモリ3604と、映像処理ハードウェア3606と、を含んでもよい。1つまたは複数のプロセッサ3602は、本明細書に記載される1つ以上の方法を実装するように構成されてもよい。メモリ(複数可)3604は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア3606は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。
【0199】
図35は、本開示の技法を利用し得る例示的な映像コーディングシステム100を示すブロック図である。
【0200】
図35に示すように、映像コーディングシステム100は、送信元デバイス110と、送信先デバイス120と、を備えてもよい。送信元デバイス110は、映像符号化デバイスとも称され得る符号化映像データを生成する。送信先デバイス120は、映像復号デバイスと称され得る送信元デバイス110によって生成された符号化映像データを復号し得る。
【0201】
送信元デバイス110は、映像ソース112と、映像エンコーダ114と、入出力(I/O)インターフェース116と、を備えてもよい。
【0202】
映像ソース112は、映像キャプチャデバイスなどのソース、映像コンテンツプロバイダからの映像データを受信するためのインターフェース、および/または映像データを生成するためのコンピュータグラフィックスシステム、またはこれらのソースの組み合わせを含んでもよい。映像データは、1つ以上のピクチャを含んでもよい。映像エンコーダ114は、映像ソース112からの映像データを符号化し、ビットストリームを生成する。ビットストリームは、映像データの符号化表現を形成するビットシーケンスを含んでもよい。ビットストリームは、符号化ピクチャおよび関連付けられたデータを含んでもよい。符号化ピクチャは、ピクチャの符号化表現である。関連付けられたデータは、シーケンスパラメータセット、ピクチャパラメータセット、および他の構文構造を含んでもよい。I/Oインターフェース116は、変復調器(モデム)および/または送信機を含んでもよい。符号化された映像データは、ネットワーク130aを介して、I/Oインターフェース116を介して直接送信先デバイス120に送信されることができる。符号化された映像データは、送信先デバイス120がアクセスするために、記憶媒体/サーバ130bに記憶してもよい。
【0203】
送信先デバイス120は、I/Oインターフェース126、映像デコーダ124、および表示デバイス122を含んでもよい。
【0204】
I/Oインターフェース126は、受信機および/またはモデムを含んでもよい。I/Oインターフェース126は、送信元デバイス110または記憶媒体/サーバ130bから符号化映像データを取得してもよい。映像デコーダ124は、符号化された映像データを復号してもよい。表示デバイス122は、復号した映像データをユーザに表示してもよい。表示デバイス122は、送信先デバイス120と一体化されてもよく、または外部表示デバイスとインターフェースで接続するように構成される送信先デバイス120の外部にあってもよい。
【0205】
映像エンコーダ114および映像デコーダ124は、高効率映像コード化(HEVC)規格、汎用映像コーディング(VVVM)規格、および他の現在のおよび/またはさらなる規格等の映像圧縮規格に従って動作してもよい。
【0206】
図36は、映像エンコーダ114の一例を示すブロック図であり、この映像エンコーダ114は、図36に示されるシステム100における映像エンコーダ114であってもよい。
【0207】
映像エンコーダ200は、本開示の技術のいずれか又は全部を実行するように構成されてもよい。図36の実施例において、映像エンコーダ200は、複数の機能コンポーネントを備える。本開示で説明される技法は、映像エンコーダ200の様々なコンポーネント間で共有されてもよい。いくつかの例では、プロセッサは、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
【0208】
映像エンコーダ200の機能コンポーネントは、分割ユニット201と、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205及びイントラ予測ユニット206を含んでもよい予測ユニット202と、残差生成ユニット207と、変換ユニット208と、量子化ユニット209と、逆量子化ユニット210と、逆変換ユニット211と、再構成ユニット212と、バッファ213と、エントロピー符号化ユニット214とを含んでもよい。
【0209】
他の例において、映像エンコーダ200は、より多くの、より少ない、又は異なる機能コンポーネントを含んでもよい。一例において、予測ユニット202は、イントラブロックコピー(IBC)ユニットを含んでもよい。IBCユニットは、少なくとも1つの参照ピクチャが現在の映像ブロックが位置するピクチャであるIBCモードにおいて予測を行うことができる。
【0210】
さらに、動き推定ユニット204及び動き補償ユニット205などのいくつかのコンポーネントは、高度に統合されてもよいが、説明のために、図36の例においては別々に表されている。
【0211】
分割ユニット201は、1つのピクチャを1つ以上の映像ブロックに分割することができる。映像エンコーダ200及び映像デコーダ300は、様々な映像ブロックサイズをサポートしてもよい。
【0212】
モード選択ユニット203は、例えば、エラー結果に基づいて、イントラ又はインターのいずれかのコーディングモードの1つを選択し、得られたイントラ又はインターコーディングブロックを、残差生成ユニット207に供給して残差ブロックデータを生成し、また再構成ユニット212に供給して参照ピクチャとして使用するために符号化ブロックを再構成してもよい。本発明の実施例において、モード選択ユニット203は、インター予測信号およびイントラ予測信号に基づいて予測を行うイントラおよびインター予測(CIIP)モードの組み合わせを選択してもよい。また、モード選択ユニット203は、インター予測の場合、ブロックのために動きベクトルの解像度(例えば、サブピクセル又は整数ピクセル精度)を選択してもよい。
【0213】
現在の映像ブロックに対してインター予測を実行するために、動き推定ユニット204は、バッファ213からの1つ以上の参照フレームと現在の映像ブロックとを比較することで、現在の映像ブロックのために動き情報を生成してもよい。動き補償ユニット205は、現在の映像ブロックに関連付けられたピクチャ以外のバッファ213からのピクチャの動き情報及び復号化サンプルに基づいて、現在の映像ブロックのために予測映像ブロックを判定してもよい。
【0214】
動き推定ユニット204及び動き補償ユニット205は、例えば、現在の映像ブロックがIスライスであるか、Pスライスであるか、又はBスライスであるかに基づいて、現在の映像ブロックに対して異なる演算を実行してもよい。
【0215】
いくつかの例において、動き推定ユニット204は、現在の映像ブロックに対して単方向予測を実行し、動き推定ユニット204は、現在の映像ブロックに対して、リスト0又はリスト1の参照ピクチャを検索して、参照映像ブロックを求めてもよい。そして、動き推定ユニット204は、参照映像ブロックと、現在の映像ブロックと参照映像ブロックとの間の空間的変位を示す動きベクトルとを含む、リスト0またはリスト1における参照ピクチャを示す参照インデックスを生成してもよい。動き推定ユニット204は、参照インデックス、予測方向インジケータ、および動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償ユニット205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在のブロックの予測映像ブロックを生成してもよい。
【0216】
他の例において、動き推定ユニット204は、現在の映像ブロックを双方向予測してもよく、動き推定ユニット204は、リスト0における参照ピクチャの中から現在の映像ブロックために参照映像ブロックを検索してもよく、また、リスト1における参照ピクチャの中から現在の映像ブロックのために別の参照映像ブロックを検索してもよい。そして、動き推定ユニット204は、参照映像ブロックを含むリスト0およびリスト1における参照ピクチャを示す参照インデックスと、参照映像ブロックと現在の映像ブロックとの間の空間的変位を示す動きベクトルとを生成してもよい。動き推定ユニット204は、現在の映像ブロックの参照インデックスおよび動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償ユニット205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在の映像ブロックの予測映像ブロックを生成してもよい。
【0217】
いくつかの例において、動き推定ユニット204は、デコーダの復号処理のために、動き情報のフルセットを出力してもよい。
【0218】
いくつかの例では、動き推定ユニット204は、現在の映像のために動き情報のフルセットを出力しなくてもよい。むしろ、動き推定ユニット204は、別の映像ブロックの動き情報を参照して、現在の映像ブロックの動き情報を信号通知してもよい。例えば、動き推定ユニット204は、現在の映像ブロックの動き情報が近傍の映像ブロックの動き情報に十分に類似していると判定してもよい。
【0219】
一例において、動き推定ユニット204は、現在の映像ブロックに関連付けられた構文構造において、現在の映像ブロックが別の映像ブロックと同じ動き情報を有することを映像デコーダ300に示す値を示してもよい。
【0220】
別の例において、動き推定ユニット204は、現在の映像ブロックに関連付けられた構文構造において、別の映像ブロックと、動きベクトル差(MVD)とを識別してもよい。動きベクトルの差分は、現在の映像ブロックの動きベクトルと、示された映像ブロックの動きベクトルとの差分を示す。映像デコーダ300は、指示された映像ブロックの動きベクトルと、動きベクトルの差分を用いて、現在の映像ブロックの動きベクトルを判定してもよい。
【0221】
上述したように、映像エンコーダ200は、動きベクトルを予測的に信号通知してもよい。映像エンコーダ200によって実装され得る予測信号通知技法の2つの例は、高度動きベクトル予測(AMVP)およびマージモード信号通知を含む。
【0222】
イントラ予測ユニット206は、現在の映像ブロックに対してイントラ予測を行ってもよい。イントラ予測ユニット206が現在の映像ブロックをイントラ予測する場合、イントラ予測ユニット206は、同じピクチャにおける他の映像ブロックの復号されたサンプルに基づいて、現在の映像ブロックのための予測データを生成してもよい。現在の映像ブロックのための予測データは、予測された映像ブロック及び様々な構文要素を含んでもよい。
【0223】
残差生成ユニット207は、現在の映像ブロックから現在の映像ブロックの予測された映像ブロックを減算することによって(例えば、マイナス符号によって示されている)、現在の映像ブロックのために残差データを生成してもよい。現在の映像ブロックの残差データは、現在の映像ブロックにおけるサンプルの異なるサンプル成分に対応する残差映像ブロックを含んでもよい。
【0224】
他の例において、例えば、スキップモードにおいて、現在の映像ブロックのための残差データがなくてもよく、残差生成ユニット207は、減算演算を実行しなくてもよい。
【0225】
変換処理ユニット208は、現在の映像ブロックに関連付けられた残差映像ブロックに1つ以上の変換を適用することによって、現在の映像ブロックのために1つ以上の変換係数映像ブロックを生成してもよい。
【0226】
変換処理ユニット208が現在の映像ブロックに関連付けられた変換係数映像ブロックを生成した後、量子化ユニット209は、現在の映像ブロックに関連付けられた1つ以上の量子化パラメータ(QP)値に基づいて、現在の映像ブロックに関連付けられた変換係数映像ブロックを量子化してもよい。
【0227】
逆量子化ユニット210および逆変換ユニット211は、変換係数映像ブロックに逆量子化および逆変換をそれぞれ適用し、変換係数映像ブロックから残差映像ブロックを再構成してもよい。再構成ユニット212は、予測ユニット202が生成した1つ以上の予測映像ブロックから対応するサンプルに再構成された残差映像ブロックを加え、現在のブロックに関連付けられた再構成映像ブロックを生成し、バッファ213に記憶することができる。
【0228】
再構成ユニット212が映像ブロックを再構成した後、映像ブロックにおける映像ブロッキングアーチファクトを縮小するために、ループフィルタリング動作を行ってもよい。
【0229】
エントロピー符号化ユニット214は、映像エンコーダ200の他の機能コンポーネントからデータを受信してもよい。エントロピー符号化ユニット214は、データを受信すると、1つ以上のエントロピー符号化演算を行い、エントロピー符号化データを生成し、エントロピー符号化データを含むビットストリームを出力してもよい。
【0230】
図37は、映像デコーダ300の一例を示すブロック図であり、この映像デコーダ300は、図35に示されるシステム100における映像デコーダ114であってもよい。
【0231】
映像デコーダ300は、本開示の技術のいずれか又は全部を実行するように構成されてもよい。図37の実施例において、映像デコーダ300は、複数の機能コンポーネントを備える。本開示で説明される技法は、映像デコーダ300の様々なコンポーネント間で共有されてもよい。いくつかの例では、プロセッサは、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
【0232】
図37の実施例において、映像デコーダ300は、エントロピー復号ユニット301、動き補償ユニット302、イントラ予測ユニット303、逆量子化ユニット304、逆変換ユニット305、及び再構成ユニット306、並びにバッファ307を備える。映像デコーダ300は、いくつかの例では、映像エンコーダ200(図36)に関して説明した符号化パスとほぼ逆の復号パスを行ってもよい。
【0233】
エントロピー復号ユニット301は、符号化ビットストリームを取り出す。符号化ビットストリームは、エントロピー符号化された映像データ(例えば、映像データの符号化ブロック)を含んでもよい。エントロピー復号ユニット301は、エントロピー符号化された映像データを復号し、エントロピー復号された映像データから、動き補償ユニット302は、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、および他の動き情報を含む動き情報を決定してもよい。動き補償ユニット302は、例えば、AMVP及びマージモードを実行することで、このような情報を判定してもよい。
【0234】
動き補償ユニット302は、動き補償されたブロックを生成してもよく、場合によっては、補間フィルタに基づいて補間を実行する。構文要素には、サブピクセルの精度で使用される補間フィルタのための識別子が含まれてもよい。
【0235】
動き補償ユニット302は、映像ブロックの符号化中に映像エンコーダ20によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数ピクセルのための補間値を計算してもよい。動き補償ユニット302は、受信した構文情報に基づいて、映像エンコーダ200が使用する補間フィルタを決定し、この補間フィルタを使用して予測ブロックを生成してもよい。
【0236】
動き補償ユニット302は、構文情報の一部を用いて、符号化された映像シーケンスのフレーム(複数可)および/またはスライス(複数可)を符号化するために使用されるブロックのサイズ、符号化された映像シーケンスのピクチャの各マクロブロックがどのように分割されるかを記述する分割情報、各分割がどのように符号化されるかを示すモード、インター符号化ブロック間の各1つ以上の参照フレーム(および参照フレームリスト)、および符号化された映像シーケンスを復号するための他の情報を決定してもよい。
【0237】
イントラ予測ユニット303は、例えば、ビットストリームにおいて受信したイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成してもよい。逆量子化ユニット303は、ビットストリームに提供され、エントロピー復号ユニット301によって復号された量子化された映像ブロック係数を逆量子化(すなわち、逆量子化)する。逆変換ユニット303は、逆変換を適用する。
【0238】
再構成ユニット306は、残差ブロックと、動き補償ユニット202又はイントラ予測ユニット303によって生成された対応する予測ブロックとを合計し、復号されたブロックを形成してもよい。所望であれば、ブロックアーチファクトを除去するために、復号されたブロックをフィルタリングするためにデブロッキングフィルタを適用してもよい。復号された映像ブロックは、バッファ307に記憶され、バッファ307は、後続の動き補償/イントラ予測のために参照ブロックを提供し、且つ表示デバイスに表示するために復号された映像を生成する。
【0239】
いくつかの実施形態を、以下の項に基づくフォーマットを使用して説明することができる。第1の項目セットは、前章(例えば、例示的な実施形態の項目1)に記載された技術の例示的な実施形態を示す。
【0240】
1.映像の映像ユニットと映像の符号化表現との変換のために、判定基準に基づき、クロス成分適応ループフィルタ動作を使用することを決定すること(3402)であって、前記クロス成分適応ループフィルタは、利用不可の輝度サンプルに対してミラーパディング技術を使用する、決定することと、前記決定に基づいて変換を行うこと(3404)と、を含む、映像処理方法(例えば図34の方法3400)。本明細書は、クロス成分適応ループフィルタの様々な実施形態、その動作およびミラーパディング技術、並びに仮想バッファ境界との関係を開示する。
【0241】
2.前記ミラーパディング技術をさらに使用して、前記利用不可の輝度サンプルのうちの1つ以上の対応する輝度サンプルを導出する、項目1に記載の方法。
【0242】
3.前記1つ以上の対応する輝度サンプルは、代表的な輝度サンプルからの前記1つ以上の対応する輝度サンプルの距離または前記代表的な輝度サンプルからの前記利用不可のサンプルの距離に基づいて決定される、項目2に記載の方法。
【0243】
4.前記代表的な輝度サンプルは、クロス成分適応ループフィルタリング技術が使用されるクロマサンプルの位置に対応する、項目3に記載の方法。
【0244】
5.前記代表的な輝度サンプルの位置は、前記映像のカラーフォーマットに依存する、項目3に記載の方法。
【0245】
6.前記距離は、1つ以上の輝度サンプルを含む第2の方向に沿ったピクセルラインと前記代表的なサンプルを含む行との第1の方向における距離に対応する、項目3~4のいずれかに記載の方法。
【0246】
7.Cは、代表的な輝度サンプルが位置する第2の方向に沿った中心線を表し、Mは、利用不可のサンプルが位置する第2の方向に沿った線を表し、Nは、1つ以上の輝度サンプルが位置する第2の方向に沿った線を表し、そこで、C、M、Nは正の整数であり、Mは、Nに等しくなく、次いで、クロス成分適応ループフィルタのサイズおよび形状に基づいて、ミラーパディング技術を適用する、項目6に記載の方法。
【0247】
8.前記クロス成分適応ループフィルタは、Kは偶数であり、Lは正の整数のとき、KxLフィルタ形状を有し、ミラーパディング技術は、前記クロス成分適応ループフィルタの仮想境界から離れた第2の方向MまたはNに沿った1本の線に位置する利用不可のサンプルを、前記仮想境界の近くの最も近いサンプル線からパディングすることを含む、項目1に記載の方法。
【0248】
9.前記クロス成分適応ループフィルタの仮想境界が前記第2の方向において前記代表的な輝度サンプルの下にある場合、前記仮想境界の上の第2の方向における最も近い線を使用して、前記利用不可のサンプルをパディングする、項目3に記載の方法。
【0249】
10.利用不可のサンプルが行Mに位置し、MがC未満の整数であり、Cが代表的な輝度サンプルの第2の方向に沿った中心線を示す整数である場合、d(C,M)=d(N,C)-offset(offsetは整数値)のとき、またはd(C,M)<d(N,C)(d()は距離関数)であるとき、第2の方向の線Nに位置するサンプルが対応するサンプルであると判定する、項目3に記載の方法。
【0250】
以下の項目は、前章(例えば、項目2)に記載された技術の例示的な実施形態を示す。
【0251】
11.前記第1の方向が垂直方向であり、前記第2の方向が水平方向である、項目1~10のいずれかに記載の方法。
【0252】
12.前記第1の方向が水平方向であり、前記第2の方向が垂直方向である、項目1~10のいずれかに記載の方法。
【0253】
13.前記第1の方向および前記第2の方向の方位は、前記仮想バッファの境界の方位に依存する、項目11~12のいずれかに記載の方法。
【0254】
以下の項目は、前章(例えば、項目3)に記載された技術の例示的な実施形態を示す。
【0255】
14.前記映像ユニットは、映像ピクチャ、映像サブピクチャ、映像スライス、映像タイル、または映像の360度の境界を含む、項目1~13のいずれかに記載の方法。
【0256】
15.前記変換を行うことは、前記映像を符号化して前記符号化表現を生成することを含む、項目1~14のいずれかに記載の方法。
【0257】
16.前記変換を行うことは、前記符号化表現を構文解析し、復号して前記映像を生成することを含む、項目1~14のいずれかに記載の方法。
【0258】
上述した項目において、方位は水平または垂直であってよく、それに対応して、第1の方向および第2の方向は、ピクセル列およびピクセル行と呼ばれる垂直または水平方向であってもよい。
【0259】
17.項目1~16の1項目以上に記載の方法を実装するように構成されたプロセッサを備える、映像復号装置。
【0260】
18.項目1~16の1項目以上に記載の方法を実装するように構成されたプロセッサを備える映像符号化装置。
【0261】
19.コンピュータコードが記憶されたコンピュータプログラム製品であって、前記コードは、プロセッサにより実行されると、前記プロセッサに、請求項1~16のいずれかに記載の方法を実装させるコンピュータプログラム製品。
【0262】
20.本明細書に記載の方法、装置またはシステム。
【0263】
第2の項目セットは、前章(例えば、例示的な実施形態の項目1~3)に記載された技術の例示的な実施形態を示す。
【0264】
1.映像の映像ユニットと映像のビットストリーム表現との変換のために、映像ユニットにループフィルタリングツールを適用している間に利用不可の輝度サンプルをパディングするためのミラーパディング処理を有効化するかどうかを決定すること(3812)と、前記決定に基づいて前記変換を行うこと(3814)と、を含む、映像処理方法(例えば図38Aの方法3810)。
【0265】
2.前記ループフィルタリングツールは、クロス成分適応ループフィルタ(CC-ALF)ツールを含む、項目1に記載の方法。
【0266】
3.前記ループフィルタリングツールは、適応ループフィルタリング(ALF)ツールを含む、項目1に記載の方法。
【0267】
4.前記ミラーパディング処理は、前記ループフィルタリングツールにおいてフィルタサポート領域内の第1のサンプルの対応するサンプルである第2のサンプルが利用可能であっても、前記第2のサンプルをパディングすることを含み、前記第1のサンプルは利用不可でパディング対象である、項目1に記載の方法。
【0268】
5.ミラーパディング処理をさらに使用して、利用不可の輝度サンプルを導出し、前記利用不可の輝度サンプルの1つ以上の輝度サンプルを導出する、項目1に記載の方法。
【0269】
6.代表的な輝度サンプルからの対応する輝度サンプルの距離および/または前記代表的な輝度サンプルからの利用不可のサンプルの距離に基づいて、対応する輝度サンプルを決定する、項目5に記載の方法。
【0270】
7.前記代表的な輝度サンプルは、フィルタリング対象のクロマサンプルの並置された輝度サンプルとして定義される、項目6に記載の方法。
【0271】
8.前記クロマサンプルの前記並置された輝度サンプルの位置は、前記映像のカラーフォーマットに依存する、項目7に記載の方法。
【0272】
9.(x,y)に位置するクロマサンプルの前記並置された輝度サンプルは、4:2:0である前記カラーフォーマットにおいて、(2x,2y)に位置するものとして定義される、項目8に記載の方法。
【0273】
10.(x,y)に位置するクロマサンプルの並置された輝度サンプルは、4:2:2であるカラーフォーマットにおいて、(2x,y)に位置するものとして定義される、第8項に記載の方法。
【0274】
11.(x,y)に位置するクロマサンプルの並置された輝度サンプルは、4:4:4であるカラーフォーマットにおいて、(x,y)に位置するものとして定義される、第8項に記載の方法。
【0275】
12.前記距離は、前記対応する輝度サンプルを含む第1の行と、前記代表的な輝度サンプルを含む第2の行との、第1の方向に沿った距離を指す、項目6に記載の方法。
【0276】
13.前記距離は、対応する輝度サンプルを含む第2の方向に沿うピクセルラインと、代表的な輝度サンプルを含む行との、第1の方向に沿う差として算出される、項目6に記載の方法。
【0277】
14.Cは、代表的な輝度サンプルが位置する第2の方向に沿った中心線を表し、Mは、利用不可のサンプルが位置する第2の方向に沿った線を表し、Nは、対応する輝度サンプルが位置する第2の方向に沿った線を表し、ここで、C、M、Nは正の整数であり、Mは、Nに等しくない、項目13に記載の方法。
【0278】
15.前記ミラーパディング処理においてパディング対象の1つ以上の対応する輝度サンプルは、CC-ALFツールによって使用されるフィルタ形状によって利用されるサンプルの行数に基づく、項目5に記載の方法。
【0279】
16.利用不可の輝度サンプルが行Mに位置し、行Nに位置するサンプルが、パディング対象の1つ以上の対応する輝度サンプルとして決定され、d(C,M)=d(N,C)であり、式中、d(x,y)は、行xと行yとの距離を表し、M,C,Nは正の整数である、項目5に記載の方法。
【0280】
17.ミラーパディング処理は、1)中央の輝度サンプルを代表的な輝度サンプルとして選択し、2)CC-ALFツールがK×Lのフィルタ形状を有し、そのために、Kが奇数であり、Lが正の整数である場合、適応ループフィルタリング(ALF)ツールの適用中に使用される処理に対応する、項目6に記載の方法。
【0281】
18.CC-ALFツールがK×Lのフィルタ形状を有し、利用不可の輝度サンプルが仮想境界より上の行Mまたはそれより下の行Nに位置する場合、前記ミラーパディング処理は、行NまたはMに位置する前記1つ以上の対応する輝度サンプルを、行Nより上または行Mより下の最も近いサンプル行から前記仮想境界から離れてパディングすることを含み、そのために、Kは奇数であり、L、M、Nは正の整数である、項目6に記載の方法。
【0282】
19.前記仮想境界が前記代表的な輝度サンプルの上にある場合、前記利用不可の輝度サンプルを、前記仮想境界の下の最も近い行を使用してパディングし、前記仮想境界が前記代表的な輝度サンプルの上にある場合、前記1つ以上の対応する輝度サンプルを、前記1つ以上の対応する輝度サンプルを含む行の上の最も近い行を使用してパディングする、項目18に記載の方法。
【0283】
20.前記仮想境界が前記代表的な輝度サンプルの下にある場合、前記利用不可の輝度サンプルを、前記仮想境界の上の最も近い行を使用してパディングし、前記仮想境界が前記代表的な輝度サンプルの下にある場合、前記1つ以上の対応する輝度サンプルを、前記1つ以上の対応する輝度サンプルを含む行の下の最も近い行を使用してパディングする、項目18に記載の方法。
【0284】
21.K=2、yL=0、yP1=1であり、前記仮想境界がCtbSizeY-4に等しく、そのために、yLおよびyP1は、2つのサンプル行のy座標であり、CtbSizeYが、コーディングツリーユニット(CTU)のサイズを表す、項目19または20に記載の方法。
【0285】
22.yLがCtbSizeY-4に等しく、yLより上の行が利用不可である場合、yP1の行におけるサンプル(x,yP1)を、yLの行におけるサンプル(x,yL)を使用してパディングする、項目21に記載の方法。
【0286】
23.K=4、yM1=-1、yL=0、yP1=1、yP2=2であり、前記仮想境界がCtbSizeY-4に等しく、そのために、yM1、yL、yP1、yP2は、4つのサンプル行のy座標であり、CtbSizeYは、コーディングツリーユニット(CTU)のサイズを表す、項目19または20に記載の方法。
【0287】
24.yLがCtbSizeY-3に等しく、yM1より上の行が利用不可である場合、yP2の行におけるサンプル(x,yP2)を、yP1の行におけるサンプル(x,yP1)を使用してパディングする、項目23に記載の方法。
【0288】
25.yLがCtbSizeY-4に等しく、yM1より上の行が利用不可である場合、yM1の行におけるサンプル(x,yM1)を、yLの行におけるサンプル(x,yL)を使用してパディングし、yP2およびyP1の行におけるサンプル(x,yP2)および(x,yP1)を、yLの前記行におけるサンプル(x,yL)を使用してパディングする、項目23に記載の方法。
【0289】
26.K=6、yM2=-2、yM1=-1、yL=0、yP1=1、yP2=2、yP3=3であり、前記仮想境界がCtbSizeY-4に等しく、そのために、yM2、yM1、yL、yP1、yP2、yP3は、6つのサンプル行のy座標であり、CtbSizeYは、コーディングツリーユニット(CTU)のサイズを表す、項目19または20に記載の方法。
【0290】
27.yLがCtbSizeY-2に等しく、yM2より上の行が利用不可である場合、yP3の行におけるサンプル(x,yP3)を、yP2の行におけるサンプル(x,yP2)を使用してパディングする、項目26に記載の方法。
【0291】
28.yLがCtbSizeY-3に等しく、yM2およびyM2より上の行が利用不可である場合、yM2の行におけるサンプル(x,yM2)を、yM1の行におけるサンプル(x,yM1)を使用してパディングし、yP3およびyP2の行におけるサンプル(x,yP3)および(x,yP2)を、yP1の前記行におけるサンプル(x,yP1)を使用してパディングする、項目26に記載の方法。
【0292】
29.yLがCtbSizeY-4に等しく、yM2より上の行、yM2の行およびyM1の行が利用不可である場合、yM2およびyM1の行におけるサンプル(x,yM2)および(x,yM1)を、yLの行におけるサンプル(x,yL)を使用してパディングし、yP3、yP2、およびyP1の行におけるサンプル(x,yP3)、(x,yP2)、および(x,yP1)を、yLの前記行におけるサンプル(x,yL)を使用してパディングする、項目26に記載の方法。
【0293】
30.yLがCtbSizeY-5に等しく、yP1の行が利用不可である場合、yP1の行におけるサンプル(x,yP1)を、yLの行におけるサンプル(x,yL)を使用してパディングする、項目21に記載の方法。
【0294】
31.yLがCtbSizeY-6に等しく、yP2の行が利用不可である場合、yP2の行におけるサンプル(x,yP2)を、yP1の行におけるサンプル(x,yP1)を使用してパディングする、項目23に記載の方法。
【0295】
32.yLがCtbSizeY-5に等しく、yP2およびyP1の行が利用不可である場合、yP1の行におけるサンプル(x,yP1)およびyP2の行におけるサンプル(x,yP2)を、yLの行におけるサンプル(x,yL)を使用してパディングし、yM1の行におけるサンプル(x,yM1)を、yLの行におけるサンプル(x,yL)を使用してパディングする、項目23に記載の方法。
【0296】
33.yLがCtbSizeY-7に等しく、yP3の行が利用不可である場合、yP3の行におけるサンプル(x,yP3)を、yP2の行におけるサンプル(x,yP2)を使用してパディングする、項目26に記載の方法。
【0297】
34.yLがCtbSizeY-6に等しく、yP3の行およびyP2の行が利用不可である場合、yP3の行におけるサンプル(x,yP3)およびyP2の行におけるサンプル(x,yP2)を、yP1の行におけるサンプル(x,yP1)を使用してパディングし、サンプル(x,yM2)を、yM1の行におけるサンプル(x,yM1)を使用してパディングする、項目26に記載の方法。
【0298】
35.yLがCtbSizeY-5に等しく、yP3、yP2、およびyP1の行が利用不可である場合、yP3の行におけるサンプル(x、yP3)、yP2の行におけるサンプル(x、yP2)、およびyP1の行におけるサンプル(x、yP1)を、yLの行におけるサンプル(x、yL)、yM2の行におけるサンプル(x、yM2)、yM1の行におけるサンプル(x、yM1)を使用してパディングする、項目26に記載の方法。
【0299】
36.利用不可の輝度サンプルが行Mに位置し、行Nに位置するサンプルが、パディング対象の1つ以上の対応する輝度サンプルとして決定され、d(C,M)=d(N,C)-offsetまたはd(C,M)<d(N,C)であり、そのために、d(x,y)は、行xと行yとの距離を表し、offsetは整数であり、M,C,Nは正の整数である、項目5に記載の方法。
【0300】
37.利用不可の輝度サンプルが行Mに位置し、行Nに位置するサンプルが、パディング対象の1つ以上の対応する輝度サンプルとして決定され、d(M,C)=d(C,N)-offsetまたはd(C,M)<d(N,C)であり、そのために、d(x,y)は、行xと行yとの距離を表し、offsetは整数であり、M,C,Nは正の整数である、項目5に記載の方法。
【0301】
38.前記オフセットが1に等しい、項目36または37に記載の方法。
【0302】
39.利用不可の輝度サンプルが仮想境界より上の行Mまたはそれより下の行Nに位置する場合、前記ミラーパディング処理は、前記仮想境界より下の行N、あるいは、行Nより上または行Mより下の最も近いサンプル行から仮想境界より上の行Mに位置する前記1つ以上の対応する輝度サンプルをパディングすることを含み、そのために、M、Nは正の整数である、項目36に記載の方法。
【0303】
40.前記仮想境界が前記代表的な輝度サンプルの下にある場合、前記利用不可の輝度サンプルを、前記仮想境界の上の最も近い行を使用してパディングし、前記1つ以上の対応する輝度サンプルを、前記1つ以上の対応する輝度サンプルを含む行の下の最も近い行を使用してパディングする、項目39に記載の方法。
【0304】
41.前記仮想境界が前記代表的な輝度サンプルの上にある場合、前記利用不可の輝度サンプルを、前記仮想境界の下の最も近い行を使用してパディングし、前記1つ以上の対応するサンプルを、前記1つ以上の対応する輝度サンプルを含む行の上の最も近い行を使用してパディングする、項目39に記載の方法。
【0305】
42.K=2、yL=0、yP1=1であり、前記仮想境界がCtbSizeY-4に等しく、そのために、yLおよびyP1は、2つのサンプル行のy座標であり、CtbSizeYが、コーディングツリーユニット(CTU)のサイズを表す、項目40または41に記載の方法。
【0306】
43.yLがCtbSizeY-5に等しく、yP1の行が利用不可である場合、yP1の行におけるサンプル(x,yP1)を、yLの行におけるサンプル(x,yL)を使用してパディングする、項目42に記載の方法。
【0307】
44.K=4、yM1=-1、yL=0、yP1=1、yP2=2であり、前記仮想境界がCtbSizeY-4に等しく、そのために、yM1、yL、yP1、yP2は、4つのサンプル行のy座標であり、CtbSizeYは、コーディングツリーユニット(CTU)のサイズを表す、項目40または41に記載の方法。
【0308】
45.yLがCtbSizeY-4に等しく、yM1の上の行およびyM1の上の行が利用不可である場合、yM1の行におけるサンプル(x,yM1)を、yLの行におけるサンプル(x,yL)を使用してパディングし、yP2の行におけるサンプル(x,yP2)を、yP1の行におけるサンプル(x,yP1)を使用してパディングする、項目44に記載の方法。
【0309】
46.yLがCtbSizeY-6に等しく、yP2の行が利用不可である場合、yP2の前記行におけるサンプル(x,yP2)を、yP1の行におけるサンプル(x,yP1)を使用してパディングする、項目44に記載の方法。
【0310】
47.yLがCtbSizeY-5に等しく、yP2およびyP1の行が利用不可である場合、yP2の行におけるサンプル(x,yP2)を、yLの行におけるサンプル(x,yL)を使用してパディングし、yM1の行におけるサンプル(x,yM1)をyLの行におけるサンプル(x,yL)を使用してパディングする、項目44に記載の方法。
【0311】
48.K=6、yM2=-2、yM1=-1、yL=0、yP1=1、yP2=2、yP3=3であり、前記仮想境界がCtbSizeY-4に等しく、そのために、yM2、yM1、yL、yP1、yP2、yP3は、6つのサンプル行のy座標であり、CtbSizeYは、コーディングツリーユニット(CTU)のサイズを表す、項目40または41に記載の方法。
【0312】
49.yLがCtbSizeY-3に等しく、yM2の上の行およびyM2の上の行が利用不可である場合、yM2の行におけるサンプル(x,yM2)を、yM1の行におけるサンプル(x,yM1)を使用してパディングし、yP3の行におけるサンプル(x,yP3)を、yP2の行におけるサンプル(x,yP2)を使用してパディングする、項目48に記載の方法。
【0313】
50.yLがCtbSizeY-4に等しく、yM2の上の行、yM2の行、およびyM1の行が利用不可である場合、yM2およびyM1の行におけるサンプル(x,yM2)および(x,yM1)を、yLの行におけるサンプル(x,yL)を使用してパディングし、yP3およびyP2の行におけるサンプル(x,yP3)および(x,yP2)を、yP1の行におけるサンプル(x,yP1)を使用してパディングする、項目48に記載の方法。
【0314】
51.yLがCtbSizeY-7に等しく、yP3の行が利用不可である場合、yP3の行におけるサンプル(x,yP3)を、yP2の行におけるサンプル(x,yP2)を使用してパディングし、yM2の行におけるサンプル(x,yM2)を、yM1の行におけるサンプル(x,yM1)を使用してパディングする、項目48に記載の方法。
【0315】
52.yLがCtbSizeY-6に等しく、yP3の行およびyP2の行が利用不可である場合、yP3の行におけるサンプル(x,yP3)およびyP2の行におけるサンプル(x,yP2)を、yP1の行におけるサンプル(x,yP1)を使用してパディングし、yM2の行におけるサンプル(x,yM2)およびyM1の行におけるサンプル(x,yM1)を、yLの行におけるサンプル(x,yL)を使用してパディングする、項目48に記載の方法。
【0316】
53.yLがCtbSizeY-5に等しく、yP3、yP2、およびyP1の行が利用不可である場合、yP3の行におけるサンプル(x、yP3)、yP2の行におけるサンプル(x、yP2)、およびyP1の行におけるサンプル(x、yP1)を、yLの行におけるサンプル(x、yL)、yM2の行におけるサンプル(x、yM2)、yM1の行におけるサンプル(x、yM1)を使用してパディングする、項目48に記載の方法。
【0317】
54.前記決定の結果は、シーケンスレベル、ピクチャレベル、スライスレベル、またはタイルグループレベルのビットストリーム表現に含まれる、項目1に記載の方法。
【0318】
55.第1の方向は垂直方向であり、第2の方向は水平方向である、先行する項目のいずれかに記載の方法。
【0319】
56.第1の方向は水平方向であり、第2の方向は垂直方向である、先行する項目のいずれかに記載の方法。
【0320】
57.第1の方向および第2の方向の方位は、仮想バッファの境界の方位に依存する、項目55または56に記載の方法。
【0321】
58.映像の映像ユニットと前記映像のビットストリーム表現との変換のために、前記映像ユニットのコーディング情報に基づいて、仮想境界に位置するサンプルをパディングするために、反復パディング処理および/またはミラーパディング処理を適用するかどうかを決定すること(3822)と、前記決定に基づいて前記変換を行うこと(3824)と、を含む、映像処理方法(例えば図38Bに示す方法3820)。
【0322】
59.前記コーディング情報は、コーディングツリーユニット(CTU)またはコーディングツリーブロック(CTB)である前記映像ユニットのサイズを含む、項目58に記載の方法。
【0323】
60.前記CTUまたはCTBのサイズがT以上であり、そのために、Tが正の整数である場合、ミラーパディング処理が適用される、項目59に記載の方法。
【0324】
61.前記CTUまたはCTBのサイズがT以下であり、そのために、Tが正の整数である場合、反復パディング処理が適用される、項目59に記載の方法。
【0325】
62.前記映像ユニットは、前記映像のピクチャ、サブピクチャ、スライス、タイルまたは360度の境界を含む、先行する項目のいずれかに記載の方法。
【0326】
63.CC-ALFツールにおいて、映像コンポーネントの前記映像ユニットのサンプル値は、別の映像コンポーネントの前記映像ユニットのサンプル値から予測される、先行する項目のいずれかに記載の方法。
【0327】
64.前記変換は、前記映像を前記ビットストリーム表現に符号化することを含む、項目1~63のいずれかに記載の方法。
【0328】
65.変換は、ビットストリーム表現から映像を復号することを含む、項目1~63のいずれかに記載の方法。
【0329】
66.項目1~65のずれか1項目以上に記載の方法を実装するように構成されたプロセッサを備える映像処理装置。
【0330】
67.実行されると、項目1~65のいずれか1つ以上に記載の方法をプロセッサに実装させるプログラムコードを記憶するコンピュータ可読媒体。
【0331】
68.上述した方法のいずれかに従って生成された符号化表現またはビットストリーム表現を記憶する、コンピュータ可読媒体。
【0332】
本明細書では、「映像処理」という用語は、映像符号化、映像復号、映像圧縮、または映像展開を指すことができる。例えば、映像圧縮アルゴリズムは、映像の画素表現から対応するビットストリーム表現への変換、またはその逆の変換中に適用されてもよい。現在の映像ブロックのビットストリーム表現は、例えば、構文によって規定されるように、ビットストリーム内の同じ場所または異なる場所に拡散されるビットに対応していてもよい。例えば、1つのマクロブロックは、変換および符号化された誤り残差値の観点から、且つビットストリームにおけるヘッダおよび他のフィールドにおけるビットを使用して符号化されてもよい。
【0333】
本明細書に記載された開示された、およびその他の解決策、実施例、実施形態、モジュール、および機能動作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1つ以上の組み合わせで実施してもよい。開示された、およびその他の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置によって実装されるため、またはデータ処理装置の動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実施することができる。このコンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、またはこれらの1つ以上の組み合わせであってもよい。「データ処理装置」という用語は、例えば、プログラマブル処理装置、コンピュータ、または複数の処理装置、若しくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、処理装置ファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1つ以上の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成した信号、例えば、機械で生成した電気、光、または電磁信号であり、適切な受信装置に送信するための情報を符号化するために生成される。
【0334】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、コンポーネント、サブルーチン、または他のユニットとして含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。1つのコンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開することも可能である。
【0335】
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
【0336】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用および専用マイクロプロセッサの両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般的に、プロセッサは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1つ以上のメモリデバイスとである。一般的に、コンピュータは、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM、EEPROM、フラッシュ記憶装置、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスク等の半導体記憶装置を含む。プロセッサおよびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
【0337】
本特許明細書は多くの詳細を含むが、これらは、任意の主題の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態のコンテキストで説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例のコンテキストで説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0338】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で行われること、または示された全ての動作が行われることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている例における様々なシステムの構成要素の分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0339】
いくつかの実装形態および例のみが記載されており、この特許文献に記載され図示されているコンテンツに基づいて、他の実施形態、拡張および変形が可能である。
図1
図2
図3
図4
図5
図6
図7A
図7B
図7C
図8
図9
図10
図11
図12A
図12B
図12C
図12D
図13
図14
図15
図16
図17A
図17B
図17C
図18
図19
図20
図21A
図21B
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38A
図38B